aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/admin_audit/l10n/bg.js4
-rw-r--r--apps/admin_audit/l10n/bg.json4
-rw-r--r--apps/admin_audit/l10n/eo.js2
-rw-r--r--apps/admin_audit/l10n/eo.json2
-rw-r--r--apps/admin_audit/l10n/es_CR.js3
-rw-r--r--apps/admin_audit/l10n/es_CR.json3
-rw-r--r--apps/admin_audit/l10n/id.js4
-rw-r--r--apps/admin_audit/l10n/id.json4
-rw-r--r--apps/admin_audit/l10n/sw.js7
-rw-r--r--apps/admin_audit/l10n/sw.json5
-rw-r--r--apps/admin_audit/lib/Actions/Files.php23
-rw-r--r--apps/admin_audit/lib/AppInfo/Application.php8
-rw-r--r--apps/cloud_federation_api/appinfo/info.xml2
-rw-r--r--apps/cloud_federation_api/appinfo/routes.php12
-rw-r--r--apps/cloud_federation_api/composer/composer/autoload_classmap.php4
-rw-r--r--apps/cloud_federation_api/composer/composer/autoload_static.php4
-rw-r--r--apps/cloud_federation_api/l10n/pt_PT.js8
-rw-r--r--apps/cloud_federation_api/l10n/pt_PT.json6
-rw-r--r--apps/cloud_federation_api/lib/Capabilities.php27
-rw-r--r--apps/cloud_federation_api/lib/Controller/RequestHandlerController.php111
-rw-r--r--apps/cloud_federation_api/lib/Db/FederatedInvite.php62
-rw-r--r--apps/cloud_federation_api/lib/Db/FederatedInviteMapper.php33
-rw-r--r--apps/cloud_federation_api/lib/Events/FederatedInviteAcceptedEvent.php24
-rw-r--r--apps/cloud_federation_api/lib/Migration/Version1016Date202502262004.php89
-rw-r--r--apps/cloud_federation_api/openapi.json238
-rw-r--r--apps/cloud_federation_api/tests/RequestHandlerControllerTest.php136
-rw-r--r--apps/comments/l10n/af.js20
-rw-r--r--apps/comments/l10n/af.json18
-rw-r--r--apps/comments/l10n/az.js8
-rw-r--r--apps/comments/l10n/az.json6
-rw-r--r--apps/comments/l10n/bn_BD.js8
-rw-r--r--apps/comments/l10n/bn_BD.json6
-rw-r--r--apps/comments/l10n/bs.js8
-rw-r--r--apps/comments/l10n/bs.json6
-rw-r--r--apps/comments/l10n/cy_GB.js7
-rw-r--r--apps/comments/l10n/cy_GB.json5
-rw-r--r--apps/comments/l10n/eo.js21
-rw-r--r--apps/comments/l10n/eo.json19
-rw-r--r--apps/comments/l10n/es_419.js20
-rw-r--r--apps/comments/l10n/es_419.json18
-rw-r--r--apps/comments/l10n/es_AR.js20
-rw-r--r--apps/comments/l10n/es_AR.json18
-rw-r--r--apps/comments/l10n/es_CL.js20
-rw-r--r--apps/comments/l10n/es_CL.json18
-rw-r--r--apps/comments/l10n/es_CO.js20
-rw-r--r--apps/comments/l10n/es_CO.json18
-rw-r--r--apps/comments/l10n/es_CR.js20
-rw-r--r--apps/comments/l10n/es_CR.json18
-rw-r--r--apps/comments/l10n/es_DO.js20
-rw-r--r--apps/comments/l10n/es_DO.json18
-rw-r--r--apps/comments/l10n/es_GT.js20
-rw-r--r--apps/comments/l10n/es_GT.json18
-rw-r--r--apps/comments/l10n/es_HN.js20
-rw-r--r--apps/comments/l10n/es_HN.json18
-rw-r--r--apps/comments/l10n/es_NI.js20
-rw-r--r--apps/comments/l10n/es_NI.json18
-rw-r--r--apps/comments/l10n/es_PA.js20
-rw-r--r--apps/comments/l10n/es_PA.json18
-rw-r--r--apps/comments/l10n/es_PE.js20
-rw-r--r--apps/comments/l10n/es_PE.json18
-rw-r--r--apps/comments/l10n/es_PR.js20
-rw-r--r--apps/comments/l10n/es_PR.json18
-rw-r--r--apps/comments/l10n/es_PY.js20
-rw-r--r--apps/comments/l10n/es_PY.json18
-rw-r--r--apps/comments/l10n/es_SV.js20
-rw-r--r--apps/comments/l10n/es_SV.json18
-rw-r--r--apps/comments/l10n/es_UY.js20
-rw-r--r--apps/comments/l10n/es_UY.json18
-rw-r--r--apps/comments/l10n/hy.js7
-rw-r--r--apps/comments/l10n/hy.json5
-rw-r--r--apps/comments/l10n/ia.js19
-rw-r--r--apps/comments/l10n/ia.json17
-rw-r--r--apps/comments/l10n/ka_GE.js20
-rw-r--r--apps/comments/l10n/ka_GE.json18
-rw-r--r--apps/comments/l10n/km.js7
-rw-r--r--apps/comments/l10n/km.json5
-rw-r--r--apps/comments/l10n/kn.js7
-rw-r--r--apps/comments/l10n/kn.json5
-rw-r--r--apps/comments/l10n/lb.js8
-rw-r--r--apps/comments/l10n/lb.json6
-rw-r--r--apps/comments/l10n/lv.js20
-rw-r--r--apps/comments/l10n/lv.json18
-rw-r--r--apps/comments/l10n/mn.js19
-rw-r--r--apps/comments/l10n/mn.json17
-rw-r--r--apps/comments/l10n/ms_MY.js7
-rw-r--r--apps/comments/l10n/ms_MY.json5
-rw-r--r--apps/comments/l10n/nl.js20
-rw-r--r--apps/comments/l10n/nl.json20
-rw-r--r--apps/comments/l10n/nn_NO.js24
-rw-r--r--apps/comments/l10n/nn_NO.json22
-rw-r--r--apps/comments/l10n/ps.js19
-rw-r--r--apps/comments/l10n/ps.json17
-rw-r--r--apps/comments/l10n/si.js20
-rw-r--r--apps/comments/l10n/si.json18
-rw-r--r--apps/comments/l10n/sq.js20
-rw-r--r--apps/comments/l10n/sq.json18
-rw-r--r--apps/comments/l10n/sr@latin.js7
-rw-r--r--apps/comments/l10n/sr@latin.json5
-rw-r--r--apps/comments/l10n/th.js25
-rw-r--r--apps/comments/l10n/th.json23
-rw-r--r--apps/comments/l10n/tr.js2
-rw-r--r--apps/comments/l10n/tr.json2
-rw-r--r--apps/comments/l10n/ur_PK.js7
-rw-r--r--apps/comments/l10n/ur_PK.json5
-rw-r--r--apps/comments/src/comments-activity-tab.ts6
-rw-r--r--apps/comments/src/components/Comment.vue2
-rw-r--r--apps/comments/tests/Unit/Activity/ListenerTest.php40
-rw-r--r--apps/comments/tests/Unit/AppInfo/ApplicationTest.php19
-rw-r--r--apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php9
-rw-r--r--apps/comments/tests/Unit/Controller/NotificationsTest.php30
-rw-r--r--apps/comments/tests/Unit/EventHandlerTest.php49
-rw-r--r--apps/comments/tests/Unit/Notification/ListenerTest.php82
-rw-r--r--apps/comments/tests/Unit/Notification/NotifierTest.php37
-rw-r--r--apps/contactsinteraction/l10n/fr.js2
-rw-r--r--apps/contactsinteraction/l10n/fr.json2
-rw-r--r--apps/contactsinteraction/l10n/nl.js4
-rw-r--r--apps/contactsinteraction/l10n/nl.json4
-rw-r--r--apps/contactsinteraction/tests/Db/RecentContactMapperTest.php8
-rw-r--r--apps/dashboard/l10n/ar.js1
-rw-r--r--apps/dashboard/l10n/ar.json1
-rw-r--r--apps/dashboard/l10n/ast.js1
-rw-r--r--apps/dashboard/l10n/ast.json1
-rw-r--r--apps/dashboard/l10n/bg.js1
-rw-r--r--apps/dashboard/l10n/bg.json1
-rw-r--r--apps/dashboard/l10n/ca.js1
-rw-r--r--apps/dashboard/l10n/ca.json1
-rw-r--r--apps/dashboard/l10n/cs.js1
-rw-r--r--apps/dashboard/l10n/cs.json1
-rw-r--r--apps/dashboard/l10n/da.js5
-rw-r--r--apps/dashboard/l10n/da.json5
-rw-r--r--apps/dashboard/l10n/de.js1
-rw-r--r--apps/dashboard/l10n/de.json1
-rw-r--r--apps/dashboard/l10n/de_DE.js1
-rw-r--r--apps/dashboard/l10n/de_DE.json1
-rw-r--r--apps/dashboard/l10n/en_GB.js1
-rw-r--r--apps/dashboard/l10n/en_GB.json1
-rw-r--r--apps/dashboard/l10n/es.js1
-rw-r--r--apps/dashboard/l10n/es.json1
-rw-r--r--apps/dashboard/l10n/es_EC.js1
-rw-r--r--apps/dashboard/l10n/es_EC.json1
-rw-r--r--apps/dashboard/l10n/es_MX.js1
-rw-r--r--apps/dashboard/l10n/es_MX.json1
-rw-r--r--apps/dashboard/l10n/et_EE.js5
-rw-r--r--apps/dashboard/l10n/et_EE.json5
-rw-r--r--apps/dashboard/l10n/eu.js1
-rw-r--r--apps/dashboard/l10n/eu.json1
-rw-r--r--apps/dashboard/l10n/fa.js6
-rw-r--r--apps/dashboard/l10n/fa.json6
-rw-r--r--apps/dashboard/l10n/fr.js1
-rw-r--r--apps/dashboard/l10n/fr.json1
-rw-r--r--apps/dashboard/l10n/ga.js1
-rw-r--r--apps/dashboard/l10n/ga.json1
-rw-r--r--apps/dashboard/l10n/gl.js1
-rw-r--r--apps/dashboard/l10n/gl.json1
-rw-r--r--apps/dashboard/l10n/hu.js1
-rw-r--r--apps/dashboard/l10n/hu.json1
-rw-r--r--apps/dashboard/l10n/is.js1
-rw-r--r--apps/dashboard/l10n/is.json1
-rw-r--r--apps/dashboard/l10n/it.js1
-rw-r--r--apps/dashboard/l10n/it.json1
-rw-r--r--apps/dashboard/l10n/ja.js1
-rw-r--r--apps/dashboard/l10n/ja.json1
-rw-r--r--apps/dashboard/l10n/lt_LT.js1
-rw-r--r--apps/dashboard/l10n/lt_LT.json1
-rw-r--r--apps/dashboard/l10n/mk.js1
-rw-r--r--apps/dashboard/l10n/mk.json1
-rw-r--r--apps/dashboard/l10n/nb.js1
-rw-r--r--apps/dashboard/l10n/nb.json1
-rw-r--r--apps/dashboard/l10n/nl.js3
-rw-r--r--apps/dashboard/l10n/nl.json3
-rw-r--r--apps/dashboard/l10n/pl.js1
-rw-r--r--apps/dashboard/l10n/pl.json1
-rw-r--r--apps/dashboard/l10n/pt_BR.js3
-rw-r--r--apps/dashboard/l10n/pt_BR.json3
-rw-r--r--apps/dashboard/l10n/ro.js2
-rw-r--r--apps/dashboard/l10n/ro.json2
-rw-r--r--apps/dashboard/l10n/ru.js3
-rw-r--r--apps/dashboard/l10n/ru.json3
-rw-r--r--apps/dashboard/l10n/sk.js1
-rw-r--r--apps/dashboard/l10n/sk.json1
-rw-r--r--apps/dashboard/l10n/sl.js1
-rw-r--r--apps/dashboard/l10n/sl.json1
-rw-r--r--apps/dashboard/l10n/sr.js1
-rw-r--r--apps/dashboard/l10n/sr.json1
-rw-r--r--apps/dashboard/l10n/sv.js1
-rw-r--r--apps/dashboard/l10n/sv.json1
-rw-r--r--apps/dashboard/l10n/tr.js1
-rw-r--r--apps/dashboard/l10n/tr.json1
-rw-r--r--apps/dashboard/l10n/ug.js1
-rw-r--r--apps/dashboard/l10n/ug.json1
-rw-r--r--apps/dashboard/l10n/uk.js1
-rw-r--r--apps/dashboard/l10n/uk.json1
-rw-r--r--apps/dashboard/l10n/uz.js1
-rw-r--r--apps/dashboard/l10n/uz.json1
-rw-r--r--apps/dashboard/l10n/vi.js1
-rw-r--r--apps/dashboard/l10n/vi.json1
-rw-r--r--apps/dashboard/l10n/zh_CN.js1
-rw-r--r--apps/dashboard/l10n/zh_CN.json1
-rw-r--r--apps/dashboard/l10n/zh_HK.js1
-rw-r--r--apps/dashboard/l10n/zh_HK.json1
-rw-r--r--apps/dashboard/l10n/zh_TW.js1
-rw-r--r--apps/dashboard/l10n/zh_TW.json1
-rw-r--r--apps/dashboard/src/DashboardApp.vue25
-rw-r--r--apps/dashboard/tests/DashboardServiceTest.php8
-rw-r--r--apps/dav/appinfo/info.xml5
-rw-r--r--apps/dav/appinfo/routes.php2
-rw-r--r--apps/dav/appinfo/v1/carddav.php6
-rw-r--r--apps/dav/appinfo/v1/publicwebdav.php6
-rw-r--r--apps/dav/appinfo/v1/webdav.php2
-rw-r--r--apps/dav/appinfo/v2/publicremote.php19
-rw-r--r--apps/dav/composer/composer/autoload_classmap.php13
-rw-r--r--apps/dav/composer/composer/autoload_static.php13
-rw-r--r--apps/dav/css/schedule-response.css1
-rw-r--r--apps/dav/l10n/ar.js30
-rw-r--r--apps/dav/l10n/ar.json30
-rw-r--r--apps/dav/l10n/ast.js13
-rw-r--r--apps/dav/l10n/ast.json13
-rw-r--r--apps/dav/l10n/bg.js26
-rw-r--r--apps/dav/l10n/bg.json26
-rw-r--r--apps/dav/l10n/ca.js13
-rw-r--r--apps/dav/l10n/ca.json13
-rw-r--r--apps/dav/l10n/cs.js40
-rw-r--r--apps/dav/l10n/cs.json40
-rw-r--r--apps/dav/l10n/da.js30
-rw-r--r--apps/dav/l10n/da.json30
-rw-r--r--apps/dav/l10n/de.js56
-rw-r--r--apps/dav/l10n/de.json56
-rw-r--r--apps/dav/l10n/de_DE.js54
-rw-r--r--apps/dav/l10n/de_DE.json54
-rw-r--r--apps/dav/l10n/el.js120
-rw-r--r--apps/dav/l10n/el.json118
-rw-r--r--apps/dav/l10n/en_GB.js40
-rw-r--r--apps/dav/l10n/en_GB.json40
-rw-r--r--apps/dav/l10n/eo.js104
-rw-r--r--apps/dav/l10n/eo.json102
-rw-r--r--apps/dav/l10n/es.js13
-rw-r--r--apps/dav/l10n/es.json13
-rw-r--r--apps/dav/l10n/es_419.js66
-rw-r--r--apps/dav/l10n/es_419.json64
-rw-r--r--apps/dav/l10n/es_AR.js56
-rw-r--r--apps/dav/l10n/es_AR.json54
-rw-r--r--apps/dav/l10n/es_CL.js66
-rw-r--r--apps/dav/l10n/es_CL.json64
-rw-r--r--apps/dav/l10n/es_CO.js66
-rw-r--r--apps/dav/l10n/es_CO.json64
-rw-r--r--apps/dav/l10n/es_CR.js66
-rw-r--r--apps/dav/l10n/es_CR.json64
-rw-r--r--apps/dav/l10n/es_DO.js66
-rw-r--r--apps/dav/l10n/es_DO.json64
-rw-r--r--apps/dav/l10n/es_EC.js13
-rw-r--r--apps/dav/l10n/es_EC.json13
-rw-r--r--apps/dav/l10n/es_GT.js66
-rw-r--r--apps/dav/l10n/es_GT.json64
-rw-r--r--apps/dav/l10n/es_HN.js66
-rw-r--r--apps/dav/l10n/es_HN.json64
-rw-r--r--apps/dav/l10n/es_MX.js13
-rw-r--r--apps/dav/l10n/es_MX.json13
-rw-r--r--apps/dav/l10n/es_NI.js66
-rw-r--r--apps/dav/l10n/es_NI.json64
-rw-r--r--apps/dav/l10n/es_PA.js66
-rw-r--r--apps/dav/l10n/es_PA.json64
-rw-r--r--apps/dav/l10n/es_PE.js66
-rw-r--r--apps/dav/l10n/es_PE.json64
-rw-r--r--apps/dav/l10n/es_PR.js66
-rw-r--r--apps/dav/l10n/es_PR.json64
-rw-r--r--apps/dav/l10n/es_PY.js66
-rw-r--r--apps/dav/l10n/es_PY.json64
-rw-r--r--apps/dav/l10n/es_SV.js66
-rw-r--r--apps/dav/l10n/es_SV.json64
-rw-r--r--apps/dav/l10n/es_UY.js66
-rw-r--r--apps/dav/l10n/es_UY.json64
-rw-r--r--apps/dav/l10n/et_EE.js173
-rw-r--r--apps/dav/l10n/et_EE.json173
-rw-r--r--apps/dav/l10n/eu.js13
-rw-r--r--apps/dav/l10n/eu.json13
-rw-r--r--apps/dav/l10n/fa.js451
-rw-r--r--apps/dav/l10n/fa.json451
-rw-r--r--apps/dav/l10n/fi.js165
-rw-r--r--apps/dav/l10n/fi.json163
-rw-r--r--apps/dav/l10n/fr.js81
-rw-r--r--apps/dav/l10n/fr.json81
-rw-r--r--apps/dav/l10n/ga.js40
-rw-r--r--apps/dav/l10n/ga.json40
-rw-r--r--apps/dav/l10n/gl.js13
-rw-r--r--apps/dav/l10n/gl.json13
-rw-r--r--apps/dav/l10n/he.js101
-rw-r--r--apps/dav/l10n/he.json99
-rw-r--r--apps/dav/l10n/hr.js157
-rw-r--r--apps/dav/l10n/hr.json155
-rw-r--r--apps/dav/l10n/hu.js17
-rw-r--r--apps/dav/l10n/hu.json17
-rw-r--r--apps/dav/l10n/id.js11
-rw-r--r--apps/dav/l10n/id.json9
-rw-r--r--apps/dav/l10n/is.js13
-rw-r--r--apps/dav/l10n/is.json13
-rw-r--r--apps/dav/l10n/it.js13
-rw-r--r--apps/dav/l10n/it.json13
-rw-r--r--apps/dav/l10n/ja.js30
-rw-r--r--apps/dav/l10n/ja.json30
-rw-r--r--apps/dav/l10n/ka.js13
-rw-r--r--apps/dav/l10n/ka.json13
-rw-r--r--apps/dav/l10n/ka_GE.js66
-rw-r--r--apps/dav/l10n/ka_GE.json64
-rw-r--r--apps/dav/l10n/ko.js13
-rw-r--r--apps/dav/l10n/ko.json13
-rw-r--r--apps/dav/l10n/lt_LT.js111
-rw-r--r--apps/dav/l10n/lt_LT.json109
-rw-r--r--apps/dav/l10n/lv.js11
-rw-r--r--apps/dav/l10n/lv.json9
-rw-r--r--apps/dav/l10n/mk.js9
-rw-r--r--apps/dav/l10n/mk.json9
-rw-r--r--apps/dav/l10n/nb.js13
-rw-r--r--apps/dav/l10n/nb.json13
-rw-r--r--apps/dav/l10n/nl.js13
-rw-r--r--apps/dav/l10n/nl.json13
-rw-r--r--apps/dav/l10n/nn_NO.js43
-rw-r--r--apps/dav/l10n/nn_NO.json41
-rw-r--r--apps/dav/l10n/pl.js36
-rw-r--r--apps/dav/l10n/pl.json36
-rw-r--r--apps/dav/l10n/pt_BR.js88
-rw-r--r--apps/dav/l10n/pt_BR.json88
-rw-r--r--apps/dav/l10n/pt_PT.js336
-rw-r--r--apps/dav/l10n/pt_PT.json334
-rw-r--r--apps/dav/l10n/ro.js60
-rw-r--r--apps/dav/l10n/ro.json58
-rw-r--r--apps/dav/l10n/ru.js109
-rw-r--r--apps/dav/l10n/ru.json109
-rw-r--r--apps/dav/l10n/sc.js151
-rw-r--r--apps/dav/l10n/sc.json149
-rw-r--r--apps/dav/l10n/sk.js30
-rw-r--r--apps/dav/l10n/sk.json30
-rw-r--r--apps/dav/l10n/sl.js13
-rw-r--r--apps/dav/l10n/sl.json13
-rw-r--r--apps/dav/l10n/sq.js63
-rw-r--r--apps/dav/l10n/sq.json61
-rw-r--r--apps/dav/l10n/sr.js40
-rw-r--r--apps/dav/l10n/sr.json40
-rw-r--r--apps/dav/l10n/sv.js40
-rw-r--r--apps/dav/l10n/sv.json40
-rw-r--r--apps/dav/l10n/tr.js46
-rw-r--r--apps/dav/l10n/tr.json46
-rw-r--r--apps/dav/l10n/ug.js13
-rw-r--r--apps/dav/l10n/ug.json13
-rw-r--r--apps/dav/l10n/uk.js18
-rw-r--r--apps/dav/l10n/uk.json18
-rw-r--r--apps/dav/l10n/zh_CN.js48
-rw-r--r--apps/dav/l10n/zh_CN.json48
-rw-r--r--apps/dav/l10n/zh_HK.js40
-rw-r--r--apps/dav/l10n/zh_HK.json40
-rw-r--r--apps/dav/l10n/zh_TW.js40
-rw-r--r--apps/dav/l10n/zh_TW.json40
-rw-r--r--apps/dav/lib/AppInfo/Application.php8
-rw-r--r--apps/dav/lib/BulkUpload/MultipartRequestParser.php6
-rw-r--r--apps/dav/lib/CalDAV/Activity/Provider/Event.php9
-rw-r--r--apps/dav/lib/CalDAV/CachedSubscriptionImpl.php20
-rw-r--r--apps/dav/lib/CalDAV/CalDavBackend.php111
-rw-r--r--apps/dav/lib/CalDAV/Calendar.php8
-rw-r--r--apps/dav/lib/CalDAV/CalendarImpl.php48
-rw-r--r--apps/dav/lib/CalDAV/CalendarProvider.php23
-rw-r--r--apps/dav/lib/CalDAV/Export/ExportService.php107
-rw-r--r--apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php12
-rw-r--r--apps/dav/lib/CalDAV/Schedule/IMipPlugin.php9
-rw-r--r--apps/dav/lib/CalDAV/Schedule/IMipService.php45
-rw-r--r--apps/dav/lib/CalDAV/UpcomingEventsService.php44
-rw-r--r--apps/dav/lib/Capabilities.php3
-rw-r--r--apps/dav/lib/CardDAV/CardDavBackend.php3
-rw-r--r--apps/dav/lib/CardDAV/PhotoCache.php24
-rw-r--r--apps/dav/lib/Command/ClearCalendarUnshares.php114
-rw-r--r--apps/dav/lib/Command/ClearContactsPhotoCache.php75
-rw-r--r--apps/dav/lib/Command/ExportCalendar.php95
-rw-r--r--apps/dav/lib/Command/ListCalendarShares.php131
-rw-r--r--apps/dav/lib/Connector/Sabre/ChecksumUpdatePlugin.php14
-rw-r--r--apps/dav/lib/Connector/Sabre/Directory.php22
-rw-r--r--apps/dav/lib/Connector/Sabre/File.php7
-rw-r--r--apps/dav/lib/Connector/Sabre/FilesPlugin.php25
-rw-r--r--apps/dav/lib/Connector/Sabre/Principal.php11
-rw-r--r--apps/dav/lib/Connector/Sabre/PublicAuth.php44
-rw-r--r--apps/dav/lib/Connector/Sabre/ServerFactory.php76
-rw-r--r--apps/dav/lib/Connector/Sabre/TagsPlugin.php44
-rw-r--r--apps/dav/lib/Controller/ExampleContentController.php86
-rw-r--r--apps/dav/lib/DAV/GroupPrincipalBackend.php12
-rw-r--r--apps/dav/lib/DAV/Sharing/Backend.php49
-rw-r--r--apps/dav/lib/DAV/Sharing/SharingMapper.php24
-rw-r--r--apps/dav/lib/DAV/Sharing/SharingService.php10
-rw-r--r--apps/dav/lib/Db/PropertyMapper.php14
-rw-r--r--apps/dav/lib/Direct/DirectHome.php2
-rw-r--r--apps/dav/lib/Events/CalendarShareUpdatedEvent.php11
-rw-r--r--apps/dav/lib/Exception/ExampleEventException.php13
-rw-r--r--apps/dav/lib/Files/BrowserErrorPagePlugin.php6
-rw-r--r--apps/dav/lib/Files/FileSearchBackend.php3
-rw-r--r--apps/dav/lib/Files/Sharing/FilesDropPlugin.php172
-rw-r--r--apps/dav/lib/Files/Sharing/RootCollection.php32
-rw-r--r--apps/dav/lib/Listener/AddMissingIndicesListener.php5
-rw-r--r--apps/dav/lib/Listener/UserEventsListener.php30
-rw-r--r--apps/dav/lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php30
-rw-r--r--apps/dav/lib/Migration/Version1006Date20180628111625.php1
-rw-r--r--apps/dav/lib/Model/ExampleEvent.php31
-rw-r--r--apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php2
-rw-r--r--apps/dav/lib/RootCollection.php1
-rw-r--r--apps/dav/lib/Server.php9
-rw-r--r--apps/dav/lib/Service/DefaultContactService.php77
-rw-r--r--apps/dav/lib/Service/ExampleContactService.php132
-rw-r--r--apps/dav/lib/Service/ExampleEventService.php205
-rw-r--r--apps/dav/lib/Settings/ExampleContentSettings.php45
-rw-r--r--apps/dav/lib/Upload/CleanupService.php10
-rw-r--r--apps/dav/lib/Upload/RootCollection.php10
-rw-r--r--apps/dav/lib/Upload/UploadAutoMkcolPlugin.php68
-rw-r--r--apps/dav/lib/Upload/UploadFolder.php3
-rw-r--r--apps/dav/lib/Upload/UploadHome.php35
-rw-r--r--apps/dav/openapi.json9
-rw-r--r--apps/dav/src/components/ExampleContactSettings.vue (renamed from apps/dav/src/views/ExampleContactSettings.vue)104
-rw-r--r--apps/dav/src/components/ExampleContentDownloadButton.vue57
-rw-r--r--apps/dav/src/components/ExampleEventSettings.vue217
-rw-r--r--apps/dav/src/service/ExampleEventService.js43
-rw-r--r--apps/dav/src/settings-example-content.js11
-rw-r--r--apps/dav/src/views/ExampleContentSettingsSection.vue38
-rw-r--r--apps/dav/templates/settings-example-content.php2
-rw-r--r--apps/dav/tests/integration/DAV/Sharing/CalDavSharingBackendTest.php251
-rw-r--r--apps/dav/tests/integration/DAV/Sharing/SharingMapperTest.php2
-rw-r--r--apps/dav/tests/unit/AppInfo/ApplicationTest.php1
-rw-r--r--apps/dav/tests/unit/AppInfo/PluginManagerTest.php2
-rw-r--r--apps/dav/tests/unit/Avatars/AvatarHomeTest.php20
-rw-r--r--apps/dav/tests/unit/Avatars/AvatarNodeTest.php8
-rw-r--r--apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php12
-rw-r--r--apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php31
-rw-r--r--apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php29
-rw-r--r--apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php16
-rw-r--r--apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php20
-rw-r--r--apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php22
-rw-r--r--apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php22
-rw-r--r--apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php48
-rw-r--r--apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php12
-rw-r--r--apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php19
-rw-r--r--apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php20
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/BackendTest.php57
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php15
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php25
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php15
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php42
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php66
-rw-r--r--apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php28
-rw-r--r--apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php17
-rw-r--r--apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php7
-rw-r--r--apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php23
-rw-r--r--apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php5
-rw-r--r--apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php6
-rw-r--r--apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php3
-rw-r--r--apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php48
-rw-r--r--apps/dav/tests/unit/CalDAV/CalDavBackendTest.php59
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarHomeTest.php28
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarImplTest.php74
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarManagerTest.php23
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarTest.php83
-rw-r--r--apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php3
-rw-r--r--apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php81
-rw-r--r--apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php9
-rw-r--r--apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php19
-rw-r--r--apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php15
-rw-r--r--apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php27
-rw-r--r--apps/dav/tests/unit/CalDAV/OutboxTest.php11
-rw-r--r--apps/dav/tests/unit/CalDAV/PluginTest.php12
-rw-r--r--apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php39
-rw-r--r--apps/dav/tests/unit/CalDAV/PublicCalendarTest.php22
-rw-r--r--apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php8
-rw-r--r--apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php27
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php49
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTestCase.php (renamed from apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTest.php)45
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php82
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php25
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php4
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php36
-rw-r--r--apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php202
-rw-r--r--apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php (renamed from apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTest.php)119
-rw-r--r--apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php4
-rw-r--r--apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php4
-rw-r--r--apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php176
-rw-r--r--apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php86
-rw-r--r--apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php66
-rw-r--r--apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php14
-rw-r--r--apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php2
-rw-r--r--apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php10
-rw-r--r--apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php18
-rw-r--r--apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php1
-rw-r--r--apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php12
-rw-r--r--apps/dav/tests/unit/CalDAV/TipBrokerTest.php14
-rw-r--r--apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php14
-rw-r--r--apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php7
-rw-r--r--apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php2
-rw-r--r--apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php34
-rw-r--r--apps/dav/tests/unit/CapabilitiesTest.php5
-rw-r--r--apps/dav/tests/unit/CardDAV/Activity/BackendTest.php62
-rw-r--r--apps/dav/tests/unit/CardDAV/AddressBookImplTest.php75
-rw-r--r--apps/dav/tests/unit/CardDAV/AddressBookTest.php32
-rw-r--r--apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php130
-rw-r--r--apps/dav/tests/unit/CardDAV/CardDavBackendTest.php107
-rw-r--r--apps/dav/tests/unit/CardDAV/ContactsManagerTest.php12
-rw-r--r--apps/dav/tests/unit/CardDAV/ConverterTest.php43
-rw-r--r--apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php69
-rw-r--r--apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php10
-rw-r--r--apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php28
-rw-r--r--apps/dav/tests/unit/CardDAV/SyncServiceTest.php46
-rw-r--r--apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php12
-rw-r--r--apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php14
-rw-r--r--apps/dav/tests/unit/Command/DeleteCalendarTest.php25
-rw-r--r--apps/dav/tests/unit/Command/ListAddressbooksTest.php9
-rw-r--r--apps/dav/tests/unit/Command/ListCalendarSharesTest.php172
-rw-r--r--apps/dav/tests/unit/Command/ListCalendarsTest.php19
-rw-r--r--apps/dav/tests/unit/Command/MoveCalendarTest.php204
-rw-r--r--apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php14
-rw-r--r--apps/dav/tests/unit/Comments/CommentsNodeTest.php91
-rw-r--r--apps/dav/tests/unit/Comments/CommentsPluginTest.php50
-rw-r--r--apps/dav/tests/unit/Comments/EntityCollectionTest.php44
-rw-r--r--apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php42
-rw-r--r--apps/dav/tests/unit/Comments/RootCollectionTest.php52
-rw-r--r--apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php74
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/AuthTest.php221
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php18
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php2
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php80
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php17
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php48
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php66
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php17
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php6
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php6
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php16
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php69
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FileTest.php106
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php139
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php221
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php15
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/NodeTest.php70
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php51
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php98
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php3
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php119
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php51
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php5
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php7
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php3
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php3
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php4
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php20
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php9
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php51
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php143
-rw-r--r--apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php52
-rw-r--r--apps/dav/tests/unit/Controller/DirectControllerTest.php31
-rw-r--r--apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php30
-rw-r--r--apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php7
-rw-r--r--apps/dav/tests/unit/DAV/AnonymousOptionsTest.php6
-rw-r--r--apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php18
-rw-r--r--apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php42
-rw-r--r--apps/dav/tests/unit/DAV/GroupPrincipalTest.php40
-rw-r--r--apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php47
-rw-r--r--apps/dav/tests/unit/DAV/Sharing/BackendTest.php38
-rw-r--r--apps/dav/tests/unit/DAV/Sharing/PluginTest.php22
-rw-r--r--apps/dav/tests/unit/DAV/Sharing/SharingServiceTest.php58
-rw-r--r--apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php38
-rw-r--r--apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php24
-rw-r--r--apps/dav/tests/unit/Direct/DirectFileTest.php27
-rw-r--r--apps/dav/tests/unit/Direct/DirectHomeTest.php33
-rw-r--r--apps/dav/tests/unit/Files/FileSearchBackendTest.php94
-rw-r--r--apps/dav/tests/unit/Files/MultipartRequestParserTest.php37
-rw-r--r--apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php219
-rw-r--r--apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php12
-rw-r--r--apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php26
-rw-r--r--apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php22
-rw-r--r--apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php40
-rw-r--r--apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php4
-rw-r--r--apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php52
-rw-r--r--apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php15
-rw-r--r--apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php54
-rw-r--r--apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php13
-rw-r--r--apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php74
-rw-r--r--apps/dav/tests/unit/Search/ContactsSearchProviderTest.php36
-rw-r--r--apps/dav/tests/unit/Search/EventsSearchProviderTest.php74
-rw-r--r--apps/dav/tests/unit/Search/TasksSearchProviderTest.php67
-rw-r--r--apps/dav/tests/unit/ServerTest.php5
-rw-r--r--apps/dav/tests/unit/Service/AbsenceServiceTest.php23
-rw-r--r--apps/dav/tests/unit/Service/ExampleContactServiceTest.php (renamed from apps/dav/tests/unit/Service/DefaultContactServiceTest.php)101
-rw-r--r--apps/dav/tests/unit/Service/ExampleEventServiceTest.php196
-rw-r--r--apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php12
-rw-r--r--apps/dav/tests/unit/Settings/CalDAVSettingsTest.php58
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php31
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php79
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php185
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php69
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php40
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php46
-rw-r--r--apps/dav/tests/unit/Upload/AssemblyStreamTest.php73
-rw-r--r--apps/dav/tests/unit/Upload/ChunkingPluginTest.php109
-rw-r--r--apps/dav/tests/unit/Upload/FutureFileTest.php14
-rw-r--r--apps/dav/tests/unit/Upload/UploadAutoMkcolPluginTest.php135
-rw-r--r--apps/dav/tests/unit/test_fixtures/example-event-default-expected.ics20
-rw-r--r--apps/dav/tests/unit/test_fixtures/example-event-default-expected.ics.license2
-rw-r--r--apps/dav/tests/unit/test_fixtures/example-event-expected.ics18
-rw-r--r--apps/dav/tests/unit/test_fixtures/example-event-expected.ics.license2
-rw-r--r--apps/dav/tests/unit/test_fixtures/example-event-with-attendees.ics21
-rw-r--r--apps/dav/tests/unit/test_fixtures/example-event-with-attendees.ics.license2
-rw-r--r--apps/dav/tests/unit/test_fixtures/example-event.ics18
-rw-r--r--apps/dav/tests/unit/test_fixtures/example-event.ics.license2
-rw-r--r--apps/encryption/l10n/ast.js29
-rw-r--r--apps/encryption/l10n/ast.json27
-rw-r--r--apps/encryption/l10n/az.js35
-rw-r--r--apps/encryption/l10n/az.json33
-rw-r--r--apps/encryption/l10n/bn_BD.js13
-rw-r--r--apps/encryption/l10n/bn_BD.json11
-rw-r--r--apps/encryption/l10n/bs.js11
-rw-r--r--apps/encryption/l10n/bs.json9
-rw-r--r--apps/encryption/l10n/de.js2
-rw-r--r--apps/encryption/l10n/de.json2
-rw-r--r--apps/encryption/l10n/de_DE.js4
-rw-r--r--apps/encryption/l10n/de_DE.json4
-rw-r--r--apps/encryption/l10n/et_EE.js61
-rw-r--r--apps/encryption/l10n/et_EE.json61
-rw-r--r--apps/encryption/l10n/fr.js1
-rw-r--r--apps/encryption/l10n/fr.json1
-rw-r--r--apps/encryption/l10n/hu.js1
-rw-r--r--apps/encryption/l10n/hu.json1
-rw-r--r--apps/encryption/l10n/ia.js7
-rw-r--r--apps/encryption/l10n/ia.json5
-rw-r--r--apps/encryption/l10n/km.js10
-rw-r--r--apps/encryption/l10n/km.json8
-rw-r--r--apps/encryption/l10n/kn.js8
-rw-r--r--apps/encryption/l10n/kn.json6
-rw-r--r--apps/encryption/l10n/lb.js9
-rw-r--r--apps/encryption/l10n/lb.json7
-rw-r--r--apps/encryption/l10n/mk.js17
-rw-r--r--apps/encryption/l10n/mk.json15
-rw-r--r--apps/encryption/l10n/oc.js59
-rw-r--r--apps/encryption/l10n/oc.json57
-rw-r--r--apps/encryption/l10n/pt_BR.js14
-rw-r--r--apps/encryption/l10n/pt_BR.json14
-rw-r--r--apps/encryption/l10n/sr@latin.js10
-rw-r--r--apps/encryption/l10n/sr@latin.json8
-rw-r--r--apps/encryption/l10n/tr.js46
-rw-r--r--apps/encryption/l10n/tr.json46
-rw-r--r--apps/encryption/l10n/ur_PK.js6
-rw-r--r--apps/encryption/l10n/ur_PK.json4
-rw-r--r--apps/encryption/l10n/vi.js26
-rw-r--r--apps/encryption/l10n/vi.json24
-rw-r--r--apps/encryption/lib/AppInfo/Application.php26
-rw-r--r--apps/encryption/lib/Command/FixEncryptedVersion.php3
-rw-r--r--apps/encryption/lib/Services/PassphraseService.php5
-rw-r--r--apps/encryption/tests/Command/FixEncryptedVersionTest.php14
-rw-r--r--apps/encryption/tests/Command/TestEnableMasterKey.php2
-rw-r--r--apps/encryption/tests/Controller/RecoveryControllerTest.php29
-rw-r--r--apps/encryption/tests/Controller/SettingsControllerTest.php61
-rw-r--r--apps/encryption/tests/Controller/StatusControllerTest.php23
-rw-r--r--apps/encryption/tests/Crypto/CryptTest.php85
-rw-r--r--apps/encryption/tests/Crypto/DecryptAllTest.php28
-rw-r--r--apps/encryption/tests/Crypto/EncryptAllTest.php134
-rw-r--r--apps/encryption/tests/Crypto/EncryptionTest.php46
-rw-r--r--apps/encryption/tests/KeyManagerTest.php116
-rw-r--r--apps/encryption/tests/RecoveryTest.php2
-rw-r--r--apps/encryption/tests/SessionTest.php18
-rw-r--r--apps/encryption/tests/Settings/AdminTest.php27
-rw-r--r--apps/encryption/tests/Users/SetupTest.php22
-rw-r--r--apps/encryption/tests/UtilTest.php28
-rw-r--r--apps/federatedfilesharing/l10n/ar.js8
-rw-r--r--apps/federatedfilesharing/l10n/ar.json8
-rw-r--r--apps/federatedfilesharing/l10n/ast.js8
-rw-r--r--apps/federatedfilesharing/l10n/ast.json8
-rw-r--r--apps/federatedfilesharing/l10n/az.js9
-rw-r--r--apps/federatedfilesharing/l10n/az.json7
-rw-r--r--apps/federatedfilesharing/l10n/bg.js9
-rw-r--r--apps/federatedfilesharing/l10n/bg.json9
-rw-r--r--apps/federatedfilesharing/l10n/ca.js8
-rw-r--r--apps/federatedfilesharing/l10n/ca.json8
-rw-r--r--apps/federatedfilesharing/l10n/cs.js8
-rw-r--r--apps/federatedfilesharing/l10n/cs.json8
-rw-r--r--apps/federatedfilesharing/l10n/da.js8
-rw-r--r--apps/federatedfilesharing/l10n/da.json8
-rw-r--r--apps/federatedfilesharing/l10n/de.js8
-rw-r--r--apps/federatedfilesharing/l10n/de.json8
-rw-r--r--apps/federatedfilesharing/l10n/de_DE.js10
-rw-r--r--apps/federatedfilesharing/l10n/de_DE.json10
-rw-r--r--apps/federatedfilesharing/l10n/el.js7
-rw-r--r--apps/federatedfilesharing/l10n/el.json7
-rw-r--r--apps/federatedfilesharing/l10n/en_GB.js8
-rw-r--r--apps/federatedfilesharing/l10n/en_GB.json8
-rw-r--r--apps/federatedfilesharing/l10n/eo.js6
-rw-r--r--apps/federatedfilesharing/l10n/eo.json6
-rw-r--r--apps/federatedfilesharing/l10n/es.js8
-rw-r--r--apps/federatedfilesharing/l10n/es.json8
-rw-r--r--apps/federatedfilesharing/l10n/es_419.js38
-rw-r--r--apps/federatedfilesharing/l10n/es_419.json36
-rw-r--r--apps/federatedfilesharing/l10n/es_AR.js36
-rw-r--r--apps/federatedfilesharing/l10n/es_AR.json34
-rw-r--r--apps/federatedfilesharing/l10n/es_CL.js36
-rw-r--r--apps/federatedfilesharing/l10n/es_CL.json34
-rw-r--r--apps/federatedfilesharing/l10n/es_CO.js36
-rw-r--r--apps/federatedfilesharing/l10n/es_CO.json34
-rw-r--r--apps/federatedfilesharing/l10n/es_CR.js36
-rw-r--r--apps/federatedfilesharing/l10n/es_CR.json34
-rw-r--r--apps/federatedfilesharing/l10n/es_DO.js36
-rw-r--r--apps/federatedfilesharing/l10n/es_DO.json34
-rw-r--r--apps/federatedfilesharing/l10n/es_EC.js8
-rw-r--r--apps/federatedfilesharing/l10n/es_EC.json8
-rw-r--r--apps/federatedfilesharing/l10n/es_GT.js36
-rw-r--r--apps/federatedfilesharing/l10n/es_GT.json34
-rw-r--r--apps/federatedfilesharing/l10n/es_HN.js38
-rw-r--r--apps/federatedfilesharing/l10n/es_HN.json36
-rw-r--r--apps/federatedfilesharing/l10n/es_MX.js8
-rw-r--r--apps/federatedfilesharing/l10n/es_MX.json8
-rw-r--r--apps/federatedfilesharing/l10n/es_NI.js38
-rw-r--r--apps/federatedfilesharing/l10n/es_NI.json36
-rw-r--r--apps/federatedfilesharing/l10n/es_PA.js38
-rw-r--r--apps/federatedfilesharing/l10n/es_PA.json36
-rw-r--r--apps/federatedfilesharing/l10n/es_PE.js38
-rw-r--r--apps/federatedfilesharing/l10n/es_PE.json36
-rw-r--r--apps/federatedfilesharing/l10n/es_PR.js38
-rw-r--r--apps/federatedfilesharing/l10n/es_PR.json36
-rw-r--r--apps/federatedfilesharing/l10n/es_PY.js38
-rw-r--r--apps/federatedfilesharing/l10n/es_PY.json36
-rw-r--r--apps/federatedfilesharing/l10n/es_SV.js36
-rw-r--r--apps/federatedfilesharing/l10n/es_SV.json34
-rw-r--r--apps/federatedfilesharing/l10n/es_UY.js38
-rw-r--r--apps/federatedfilesharing/l10n/es_UY.json36
-rw-r--r--apps/federatedfilesharing/l10n/et_EE.js14
-rw-r--r--apps/federatedfilesharing/l10n/et_EE.json14
-rw-r--r--apps/federatedfilesharing/l10n/eu.js8
-rw-r--r--apps/federatedfilesharing/l10n/eu.json8
-rw-r--r--apps/federatedfilesharing/l10n/fa.js9
-rw-r--r--apps/federatedfilesharing/l10n/fa.json9
-rw-r--r--apps/federatedfilesharing/l10n/fi.js8
-rw-r--r--apps/federatedfilesharing/l10n/fi.json8
-rw-r--r--apps/federatedfilesharing/l10n/fr.js17
-rw-r--r--apps/federatedfilesharing/l10n/fr.json17
-rw-r--r--apps/federatedfilesharing/l10n/ga.js8
-rw-r--r--apps/federatedfilesharing/l10n/ga.json8
-rw-r--r--apps/federatedfilesharing/l10n/gl.js8
-rw-r--r--apps/federatedfilesharing/l10n/gl.json8
-rw-r--r--apps/federatedfilesharing/l10n/he.js36
-rw-r--r--apps/federatedfilesharing/l10n/he.json34
-rw-r--r--apps/federatedfilesharing/l10n/hr.js6
-rw-r--r--apps/federatedfilesharing/l10n/hr.json6
-rw-r--r--apps/federatedfilesharing/l10n/hu.js8
-rw-r--r--apps/federatedfilesharing/l10n/hu.json8
-rw-r--r--apps/federatedfilesharing/l10n/ia.js34
-rw-r--r--apps/federatedfilesharing/l10n/ia.json32
-rw-r--r--apps/federatedfilesharing/l10n/id.js37
-rw-r--r--apps/federatedfilesharing/l10n/id.json35
-rw-r--r--apps/federatedfilesharing/l10n/is.js8
-rw-r--r--apps/federatedfilesharing/l10n/is.json8
-rw-r--r--apps/federatedfilesharing/l10n/it.js8
-rw-r--r--apps/federatedfilesharing/l10n/it.json8
-rw-r--r--apps/federatedfilesharing/l10n/ja.js8
-rw-r--r--apps/federatedfilesharing/l10n/ja.json8
-rw-r--r--apps/federatedfilesharing/l10n/ka.js8
-rw-r--r--apps/federatedfilesharing/l10n/ka.json8
-rw-r--r--apps/federatedfilesharing/l10n/ka_GE.js35
-rw-r--r--apps/federatedfilesharing/l10n/ka_GE.json33
-rw-r--r--apps/federatedfilesharing/l10n/ko.js7
-rw-r--r--apps/federatedfilesharing/l10n/ko.json7
-rw-r--r--apps/federatedfilesharing/l10n/lb.js6
-rw-r--r--apps/federatedfilesharing/l10n/lb.json4
-rw-r--r--apps/federatedfilesharing/l10n/lt_LT.js40
-rw-r--r--apps/federatedfilesharing/l10n/lt_LT.json38
-rw-r--r--apps/federatedfilesharing/l10n/lv.js31
-rw-r--r--apps/federatedfilesharing/l10n/lv.json29
-rw-r--r--apps/federatedfilesharing/l10n/mk.js8
-rw-r--r--apps/federatedfilesharing/l10n/mk.json8
-rw-r--r--apps/federatedfilesharing/l10n/nb.js8
-rw-r--r--apps/federatedfilesharing/l10n/nb.json8
-rw-r--r--apps/federatedfilesharing/l10n/nl.js9
-rw-r--r--apps/federatedfilesharing/l10n/nl.json9
-rw-r--r--apps/federatedfilesharing/l10n/oc.js24
-rw-r--r--apps/federatedfilesharing/l10n/oc.json22
-rw-r--r--apps/federatedfilesharing/l10n/pl.js11
-rw-r--r--apps/federatedfilesharing/l10n/pl.json11
-rw-r--r--apps/federatedfilesharing/l10n/pt_BR.js14
-rw-r--r--apps/federatedfilesharing/l10n/pt_BR.json14
-rw-r--r--apps/federatedfilesharing/l10n/pt_PT.js36
-rw-r--r--apps/federatedfilesharing/l10n/pt_PT.json34
-rw-r--r--apps/federatedfilesharing/l10n/ro.js35
-rw-r--r--apps/federatedfilesharing/l10n/ro.json33
-rw-r--r--apps/federatedfilesharing/l10n/ru.js18
-rw-r--r--apps/federatedfilesharing/l10n/ru.json18
-rw-r--r--apps/federatedfilesharing/l10n/sc.js6
-rw-r--r--apps/federatedfilesharing/l10n/sc.json6
-rw-r--r--apps/federatedfilesharing/l10n/sk.js8
-rw-r--r--apps/federatedfilesharing/l10n/sk.json8
-rw-r--r--apps/federatedfilesharing/l10n/sl.js8
-rw-r--r--apps/federatedfilesharing/l10n/sl.json8
-rw-r--r--apps/federatedfilesharing/l10n/sq.js35
-rw-r--r--apps/federatedfilesharing/l10n/sq.json33
-rw-r--r--apps/federatedfilesharing/l10n/sr.js8
-rw-r--r--apps/federatedfilesharing/l10n/sr.json8
-rw-r--r--apps/federatedfilesharing/l10n/sr@latin.js7
-rw-r--r--apps/federatedfilesharing/l10n/sr@latin.json5
-rw-r--r--apps/federatedfilesharing/l10n/sv.js8
-rw-r--r--apps/federatedfilesharing/l10n/sv.json8
-rw-r--r--apps/federatedfilesharing/l10n/th.js35
-rw-r--r--apps/federatedfilesharing/l10n/th.json33
-rw-r--r--apps/federatedfilesharing/l10n/tr.js10
-rw-r--r--apps/federatedfilesharing/l10n/tr.json10
-rw-r--r--apps/federatedfilesharing/l10n/ug.js8
-rw-r--r--apps/federatedfilesharing/l10n/ug.json8
-rw-r--r--apps/federatedfilesharing/l10n/uk.js8
-rw-r--r--apps/federatedfilesharing/l10n/uk.json8
-rw-r--r--apps/federatedfilesharing/l10n/zh_CN.js8
-rw-r--r--apps/federatedfilesharing/l10n/zh_CN.json8
-rw-r--r--apps/federatedfilesharing/l10n/zh_HK.js8
-rw-r--r--apps/federatedfilesharing/l10n/zh_HK.json8
-rw-r--r--apps/federatedfilesharing/l10n/zh_TW.js8
-rw-r--r--apps/federatedfilesharing/l10n/zh_TW.json8
-rw-r--r--apps/federatedfilesharing/lib/FederatedShareProvider.php39
-rw-r--r--apps/federatedfilesharing/openapi.json20
-rw-r--r--apps/federatedfilesharing/tests/AddressHandlerTest.php72
-rw-r--r--apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php106
-rw-r--r--apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php93
-rw-r--r--apps/federatedfilesharing/tests/FederatedShareProviderTest.php159
-rw-r--r--apps/federatedfilesharing/tests/NotificationsTest.php89
-rw-r--r--apps/federatedfilesharing/tests/Settings/AdminTest.php48
-rw-r--r--apps/federatedfilesharing/tests/TestCase.php11
-rw-r--r--apps/federatedfilesharing/tests/TokenHandlerTest.php14
-rw-r--r--apps/federation/l10n/de.js2
-rw-r--r--apps/federation/l10n/de.json2
-rw-r--r--apps/federation/l10n/de_DE.js2
-rw-r--r--apps/federation/l10n/de_DE.json2
-rw-r--r--apps/federation/l10n/hu.js6
-rw-r--r--apps/federation/l10n/hu.json6
-rw-r--r--apps/federation/l10n/lb.js15
-rw-r--r--apps/federation/l10n/lb.json13
-rw-r--r--apps/federation/l10n/nl.js7
-rw-r--r--apps/federation/l10n/nl.json7
-rw-r--r--apps/federation/l10n/oc.js9
-rw-r--r--apps/federation/l10n/oc.json7
-rw-r--r--apps/federation/l10n/ro.js15
-rw-r--r--apps/federation/l10n/ro.json13
-rw-r--r--apps/federation/lib/BackgroundJob/GetSharedSecret.php7
-rw-r--r--apps/federation/lib/BackgroundJob/RequestSharedSecret.php8
-rw-r--r--apps/federation/lib/Controller/OCSAuthAPIController.php10
-rw-r--r--apps/federation/lib/SyncJob.php1
-rw-r--r--apps/federation/lib/TrustedServers.php1
-rw-r--r--apps/federation/tests/BackgroundJob/GetSharedSecretTest.php34
-rw-r--r--apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php92
-rw-r--r--apps/federation/tests/Controller/OCSAuthAPIControllerTest.php49
-rw-r--r--apps/federation/tests/Controller/SettingsControllerTest.php30
-rw-r--r--apps/federation/tests/DAV/FedAuthTest.php16
-rw-r--r--apps/federation/tests/DbHandlerTest.php83
-rw-r--r--apps/federation/tests/Settings/AdminTest.php11
-rw-r--r--apps/federation/tests/SyncFederationAddressbooksTest.php52
-rw-r--r--apps/federation/tests/TrustedServersTest.php114
-rw-r--r--apps/files/appinfo/info.xml2
-rw-r--r--apps/files/appinfo/routes.php5
-rw-r--r--apps/files/composer/composer/autoload_classmap.php2
-rw-r--r--apps/files/composer/composer/autoload_static.php2
-rw-r--r--apps/files/l10n/ach.js9
-rw-r--r--apps/files/l10n/ach.json7
-rw-r--r--apps/files/l10n/ady.js9
-rw-r--r--apps/files/l10n/ady.json7
-rw-r--r--apps/files/l10n/af.js137
-rw-r--r--apps/files/l10n/af.json135
-rw-r--r--apps/files/l10n/ak.js9
-rw-r--r--apps/files/l10n/ak.json7
-rw-r--r--apps/files/l10n/am_ET.js9
-rw-r--r--apps/files/l10n/am_ET.json7
-rw-r--r--apps/files/l10n/ar.js51
-rw-r--r--apps/files/l10n/ar.json51
-rw-r--r--apps/files/l10n/ast.js25
-rw-r--r--apps/files/l10n/ast.json25
-rw-r--r--apps/files/l10n/az.js104
-rw-r--r--apps/files/l10n/az.json102
-rw-r--r--apps/files/l10n/be.js6
-rw-r--r--apps/files/l10n/be.json4
-rw-r--r--apps/files/l10n/bg.js41
-rw-r--r--apps/files/l10n/bg.json41
-rw-r--r--apps/files/l10n/bn_BD.js65
-rw-r--r--apps/files/l10n/bn_BD.json63
-rw-r--r--apps/files/l10n/br.js187
-rw-r--r--apps/files/l10n/br.json185
-rw-r--r--apps/files/l10n/bs.js75
-rw-r--r--apps/files/l10n/bs.json73
-rw-r--r--apps/files/l10n/ca.js45
-rw-r--r--apps/files/l10n/ca.json45
-rw-r--r--apps/files/l10n/cs.js58
-rw-r--r--apps/files/l10n/cs.json58
-rw-r--r--apps/files/l10n/cy_GB.js45
-rw-r--r--apps/files/l10n/cy_GB.json43
-rw-r--r--apps/files/l10n/da.js45
-rw-r--r--apps/files/l10n/da.json45
-rw-r--r--apps/files/l10n/de.js84
-rw-r--r--apps/files/l10n/de.json84
-rw-r--r--apps/files/l10n/de_DE.js76
-rw-r--r--apps/files/l10n/de_DE.json76
-rw-r--r--apps/files/l10n/el.js28
-rw-r--r--apps/files/l10n/el.json28
-rw-r--r--apps/files/l10n/en_GB.js57
-rw-r--r--apps/files/l10n/en_GB.json57
-rw-r--r--apps/files/l10n/eo.js178
-rw-r--r--apps/files/l10n/eo.json176
-rw-r--r--apps/files/l10n/es.js49
-rw-r--r--apps/files/l10n/es.json49
-rw-r--r--apps/files/l10n/es_419.js137
-rw-r--r--apps/files/l10n/es_419.json135
-rw-r--r--apps/files/l10n/es_AR.js149
-rw-r--r--apps/files/l10n/es_AR.json147
-rw-r--r--apps/files/l10n/es_CL.js154
-rw-r--r--apps/files/l10n/es_CL.json152
-rw-r--r--apps/files/l10n/es_CO.js154
-rw-r--r--apps/files/l10n/es_CO.json152
-rw-r--r--apps/files/l10n/es_CR.js152
-rw-r--r--apps/files/l10n/es_CR.json150
-rw-r--r--apps/files/l10n/es_DO.js153
-rw-r--r--apps/files/l10n/es_DO.json151
-rw-r--r--apps/files/l10n/es_EC.js24
-rw-r--r--apps/files/l10n/es_EC.json24
-rw-r--r--apps/files/l10n/es_GT.js152
-rw-r--r--apps/files/l10n/es_GT.json150
-rw-r--r--apps/files/l10n/es_HN.js137
-rw-r--r--apps/files/l10n/es_HN.json135
-rw-r--r--apps/files/l10n/es_MX.js39
-rw-r--r--apps/files/l10n/es_MX.json39
-rw-r--r--apps/files/l10n/es_NI.js137
-rw-r--r--apps/files/l10n/es_NI.json135
-rw-r--r--apps/files/l10n/es_PA.js137
-rw-r--r--apps/files/l10n/es_PA.json135
-rw-r--r--apps/files/l10n/es_PE.js166
-rw-r--r--apps/files/l10n/es_PE.json164
-rw-r--r--apps/files/l10n/es_PR.js137
-rw-r--r--apps/files/l10n/es_PR.json135
-rw-r--r--apps/files/l10n/es_PY.js156
-rw-r--r--apps/files/l10n/es_PY.json154
-rw-r--r--apps/files/l10n/es_SV.js153
-rw-r--r--apps/files/l10n/es_SV.json151
-rw-r--r--apps/files/l10n/es_UY.js137
-rw-r--r--apps/files/l10n/es_UY.json135
-rw-r--r--apps/files/l10n/et_EE.js74
-rw-r--r--apps/files/l10n/et_EE.json74
-rw-r--r--apps/files/l10n/eu.js42
-rw-r--r--apps/files/l10n/eu.json42
-rw-r--r--apps/files/l10n/fa.js228
-rw-r--r--apps/files/l10n/fa.json228
-rw-r--r--apps/files/l10n/fi.js44
-rw-r--r--apps/files/l10n/fi.json44
-rw-r--r--apps/files/l10n/fr.js61
-rw-r--r--apps/files/l10n/fr.json61
-rw-r--r--apps/files/l10n/fy_NL.js9
-rw-r--r--apps/files/l10n/fy_NL.json7
-rw-r--r--apps/files/l10n/ga.js56
-rw-r--r--apps/files/l10n/ga.json56
-rw-r--r--apps/files/l10n/gl.js48
-rw-r--r--apps/files/l10n/gl.json48
-rw-r--r--apps/files/l10n/gu.js9
-rw-r--r--apps/files/l10n/gu.json7
-rw-r--r--apps/files/l10n/he.js200
-rw-r--r--apps/files/l10n/he.json198
-rw-r--r--apps/files/l10n/hr.js216
-rw-r--r--apps/files/l10n/hr.json214
-rw-r--r--apps/files/l10n/hu.js110
-rw-r--r--apps/files/l10n/hu.json110
-rw-r--r--apps/files/l10n/hy.js40
-rw-r--r--apps/files/l10n/hy.json38
-rw-r--r--apps/files/l10n/ia.js124
-rw-r--r--apps/files/l10n/ia.json122
-rw-r--r--apps/files/l10n/id.js17
-rw-r--r--apps/files/l10n/id.json17
-rw-r--r--apps/files/l10n/io.js9
-rw-r--r--apps/files/l10n/io.json7
-rw-r--r--apps/files/l10n/is.js42
-rw-r--r--apps/files/l10n/is.json42
-rw-r--r--apps/files/l10n/it.js56
-rw-r--r--apps/files/l10n/it.json56
-rw-r--r--apps/files/l10n/ja.js58
-rw-r--r--apps/files/l10n/ja.json58
-rw-r--r--apps/files/l10n/ka.js27
-rw-r--r--apps/files/l10n/ka.json27
-rw-r--r--apps/files/l10n/ka_GE.js152
-rw-r--r--apps/files/l10n/ka_GE.json150
-rw-r--r--apps/files/l10n/km.js38
-rw-r--r--apps/files/l10n/km.json36
-rw-r--r--apps/files/l10n/kn.js61
-rw-r--r--apps/files/l10n/kn.json59
-rw-r--r--apps/files/l10n/ko.js42
-rw-r--r--apps/files/l10n/ko.json42
-rw-r--r--apps/files/l10n/lb.js118
-rw-r--r--apps/files/l10n/lb.json116
-rw-r--r--apps/files/l10n/lo.js9
-rw-r--r--apps/files/l10n/lo.json7
-rw-r--r--apps/files/l10n/lt_LT.js24
-rw-r--r--apps/files/l10n/lt_LT.json24
-rw-r--r--apps/files/l10n/lv.js152
-rw-r--r--apps/files/l10n/lv.json150
-rw-r--r--apps/files/l10n/mg.js9
-rw-r--r--apps/files/l10n/mg.json7
-rw-r--r--apps/files/l10n/mk.js38
-rw-r--r--apps/files/l10n/mk.json38
-rw-r--r--apps/files/l10n/ml.js9
-rw-r--r--apps/files/l10n/ml.json7
-rw-r--r--apps/files/l10n/mn.js141
-rw-r--r--apps/files/l10n/mn.json139
-rw-r--r--apps/files/l10n/mr.js9
-rw-r--r--apps/files/l10n/mr.json7
-rw-r--r--apps/files/l10n/ms_MY.js37
-rw-r--r--apps/files/l10n/ms_MY.json35
-rw-r--r--apps/files/l10n/mt_MT.js9
-rw-r--r--apps/files/l10n/mt_MT.json7
-rw-r--r--apps/files/l10n/nb.js41
-rw-r--r--apps/files/l10n/nb.json41
-rw-r--r--apps/files/l10n/nl.js56
-rw-r--r--apps/files/l10n/nl.json56
-rw-r--r--apps/files/l10n/nn_NO.js71
-rw-r--r--apps/files/l10n/nn_NO.json69
-rw-r--r--apps/files/l10n/nqo.js9
-rw-r--r--apps/files/l10n/nqo.json7
-rw-r--r--apps/files/l10n/oc.js127
-rw-r--r--apps/files/l10n/oc.json125
-rw-r--r--apps/files/l10n/pl.js56
-rw-r--r--apps/files/l10n/pl.json56
-rw-r--r--apps/files/l10n/ps.js135
-rw-r--r--apps/files/l10n/ps.json133
-rw-r--r--apps/files/l10n/pt_BR.js121
-rw-r--r--apps/files/l10n/pt_BR.json121
-rw-r--r--apps/files/l10n/pt_PT.js23
-rw-r--r--apps/files/l10n/pt_PT.json23
-rw-r--r--apps/files/l10n/ro.js22
-rw-r--r--apps/files/l10n/ro.json22
-rw-r--r--apps/files/l10n/ru.js56
-rw-r--r--apps/files/l10n/ru.json56
-rw-r--r--apps/files/l10n/sc.js33
-rw-r--r--apps/files/l10n/sc.json33
-rw-r--r--apps/files/l10n/sk.js46
-rw-r--r--apps/files/l10n/sk.json46
-rw-r--r--apps/files/l10n/sl.js91
-rw-r--r--apps/files/l10n/sl.json91
-rw-r--r--apps/files/l10n/sq.js131
-rw-r--r--apps/files/l10n/sq.json129
-rw-r--r--apps/files/l10n/sr.js56
-rw-r--r--apps/files/l10n/sr.json56
-rw-r--r--apps/files/l10n/sr@latin.js95
-rw-r--r--apps/files/l10n/sr@latin.json93
-rw-r--r--apps/files/l10n/su.js9
-rw-r--r--apps/files/l10n/su.json7
-rw-r--r--apps/files/l10n/sv.js56
-rw-r--r--apps/files/l10n/sv.json56
-rw-r--r--apps/files/l10n/sw.js460
-rw-r--r--apps/files/l10n/sw.json458
-rw-r--r--apps/files/l10n/sw_KE.js9
-rw-r--r--apps/files/l10n/sw_KE.json7
-rw-r--r--apps/files/l10n/tg_TJ.js9
-rw-r--r--apps/files/l10n/tg_TJ.json7
-rw-r--r--apps/files/l10n/th.js17
-rw-r--r--apps/files/l10n/th.json17
-rw-r--r--apps/files/l10n/tl_PH.js9
-rw-r--r--apps/files/l10n/tl_PH.json7
-rw-r--r--apps/files/l10n/tr.js63
-rw-r--r--apps/files/l10n/tr.json63
-rw-r--r--apps/files/l10n/tzm.js9
-rw-r--r--apps/files/l10n/tzm.json7
-rw-r--r--apps/files/l10n/ug.js39
-rw-r--r--apps/files/l10n/ug.json39
-rw-r--r--apps/files/l10n/uk.js56
-rw-r--r--apps/files/l10n/uk.json56
-rw-r--r--apps/files/l10n/ur_PK.js13
-rw-r--r--apps/files/l10n/ur_PK.json11
-rw-r--r--apps/files/l10n/vi.js39
-rw-r--r--apps/files/l10n/vi.json39
-rw-r--r--apps/files/l10n/zh_CN.js64
-rw-r--r--apps/files/l10n/zh_CN.json64
-rw-r--r--apps/files/l10n/zh_HK.js57
-rw-r--r--apps/files/l10n/zh_HK.json57
-rw-r--r--apps/files/l10n/zh_TW.js56
-rw-r--r--apps/files/l10n/zh_TW.json56
-rw-r--r--apps/files/lib/Activity/Provider.php6
-rw-r--r--apps/files/lib/AppInfo/Application.php8
-rw-r--r--apps/files/lib/BackgroundJob/ScanFiles.php6
-rw-r--r--apps/files/lib/Command/Copy.php7
-rw-r--r--apps/files/lib/Command/Move.php7
-rw-r--r--apps/files/lib/Command/SanitizeFilenames.php151
-rw-r--r--apps/files/lib/Command/Scan.php55
-rw-r--r--apps/files/lib/Command/TransferOwnership.php46
-rw-r--r--apps/files/lib/Command/WindowsCompatibleFilenames.php52
-rw-r--r--apps/files/lib/Controller/TemplateController.php18
-rw-r--r--apps/files/lib/Helper.php105
-rw-r--r--apps/files/lib/Listener/SyncLivePhotosListener.php10
-rw-r--r--apps/files/lib/Service/OwnershipTransferService.php79
-rw-r--r--apps/files/lib/Service/UserConfig.php6
-rw-r--r--apps/files/lib/Settings/DeclarativeAdminSettings.php9
-rw-r--r--apps/files/openapi.json78
-rw-r--r--apps/files/src/actions/openLocallyAction.ts139
-rw-r--r--apps/files/src/components/FileEntry.vue46
-rw-r--r--apps/files/src/components/FileEntry/FileEntryPreview.vue12
-rw-r--r--apps/files/src/components/FileEntryMixin.ts6
-rw-r--r--apps/files/src/components/FilesListTableFooter.vue8
-rw-r--r--apps/files/src/components/FilesListTableHeader.vue12
-rw-r--r--apps/files/src/components/FilesListVirtual.vue26
-rw-r--r--apps/files/src/router/router.ts62
-rw-r--r--apps/files/src/services/HotKeysService.spec.ts61
-rw-r--r--apps/files/src/services/Templates.js5
-rw-r--r--apps/files/src/store/renaming.ts10
-rw-r--r--apps/files/src/store/userconfig.ts1
-rw-r--r--apps/files/src/types.ts1
-rw-r--r--apps/files/src/views/FilesList.vue7
-rw-r--r--apps/files/src/views/Settings.vue5
-rw-r--r--apps/files/src/views/TemplatePicker.vue17
-rw-r--r--apps/files/tests/Activity/Filter/GenericTest.php25
-rw-r--r--apps/files/tests/Activity/ProviderTest.php46
-rw-r--r--apps/files/tests/Activity/Setting/GenericTest.php28
-rw-r--r--apps/files/tests/AdvancedCapabilitiesTest.php1
-rw-r--r--apps/files/tests/BackgroundJob/DeleteOrphanedItemsJobTest.php49
-rw-r--r--apps/files/tests/BackgroundJob/ScanFilesTest.php15
-rw-r--r--apps/files/tests/Command/DeleteOrphanedFilesTest.php27
-rw-r--r--apps/files/tests/Controller/ApiControllerTest.php64
-rw-r--r--apps/files/tests/Controller/ConversionApiControllerTest.php7
-rw-r--r--apps/files/tests/Controller/ViewControllerTest.php15
-rw-r--r--apps/files/tests/HelperTest.php48
-rw-r--r--apps/files/tests/Service/TagServiceTest.php49
-rw-r--r--apps/files_external/appinfo/info.xml1
-rw-r--r--apps/files_external/composer/composer/autoload_classmap.php2
-rw-r--r--apps/files_external/composer/composer/autoload_static.php2
-rw-r--r--apps/files_external/l10n/az.js65
-rw-r--r--apps/files_external/l10n/az.json63
-rw-r--r--apps/files_external/l10n/bg.js2
-rw-r--r--apps/files_external/l10n/bg.json2
-rw-r--r--apps/files_external/l10n/bn_BD.js39
-rw-r--r--apps/files_external/l10n/bn_BD.json37
-rw-r--r--apps/files_external/l10n/bs.js19
-rw-r--r--apps/files_external/l10n/bs.json17
-rw-r--r--apps/files_external/l10n/cy_GB.js16
-rw-r--r--apps/files_external/l10n/cy_GB.json14
-rw-r--r--apps/files_external/l10n/de.js10
-rw-r--r--apps/files_external/l10n/de.json10
-rw-r--r--apps/files_external/l10n/de_DE.js10
-rw-r--r--apps/files_external/l10n/de_DE.json10
-rw-r--r--apps/files_external/l10n/et_EE.js74
-rw-r--r--apps/files_external/l10n/et_EE.json74
-rw-r--r--apps/files_external/l10n/fr.js5
-rw-r--r--apps/files_external/l10n/fr.json5
-rw-r--r--apps/files_external/l10n/hu.js25
-rw-r--r--apps/files_external/l10n/hu.json25
-rw-r--r--apps/files_external/l10n/hy.js17
-rw-r--r--apps/files_external/l10n/hy.json15
-rw-r--r--apps/files_external/l10n/ia.js77
-rw-r--r--apps/files_external/l10n/ia.json75
-rw-r--r--apps/files_external/l10n/km.js25
-rw-r--r--apps/files_external/l10n/km.json23
-rw-r--r--apps/files_external/l10n/kn.js19
-rw-r--r--apps/files_external/l10n/kn.json17
-rw-r--r--apps/files_external/l10n/lb.js24
-rw-r--r--apps/files_external/l10n/lb.json22
-rw-r--r--apps/files_external/l10n/lv.js82
-rw-r--r--apps/files_external/l10n/lv.json80
-rw-r--r--apps/files_external/l10n/mn.js9
-rw-r--r--apps/files_external/l10n/mn.json7
-rw-r--r--apps/files_external/l10n/ms_MY.js16
-rw-r--r--apps/files_external/l10n/ms_MY.json14
-rw-r--r--apps/files_external/l10n/nl.js83
-rw-r--r--apps/files_external/l10n/nl.json83
-rw-r--r--apps/files_external/l10n/nn_NO.js20
-rw-r--r--apps/files_external/l10n/nn_NO.json18
-rw-r--r--apps/files_external/l10n/oc.js107
-rw-r--r--apps/files_external/l10n/oc.json105
-rw-r--r--apps/files_external/l10n/pt_BR.js40
-rw-r--r--apps/files_external/l10n/pt_BR.json40
-rw-r--r--apps/files_external/l10n/ro.js85
-rw-r--r--apps/files_external/l10n/ro.json83
-rw-r--r--apps/files_external/l10n/ru.js8
-rw-r--r--apps/files_external/l10n/ru.json8
-rw-r--r--apps/files_external/l10n/sr@latin.js55
-rw-r--r--apps/files_external/l10n/sr@latin.json53
-rw-r--r--apps/files_external/l10n/tr.js16
-rw-r--r--apps/files_external/l10n/tr.json16
-rw-r--r--apps/files_external/l10n/ur_PK.js14
-rw-r--r--apps/files_external/l10n/ur_PK.json12
-rw-r--r--apps/files_external/l10n/vi.js27
-rw-r--r--apps/files_external/l10n/vi.json25
-rw-r--r--apps/files_external/lib/AppInfo/Application.php2
-rw-r--r--apps/files_external/lib/Command/Backends.php2
-rw-r--r--apps/files_external/lib/Command/Dependencies.php56
-rw-r--r--apps/files_external/lib/Command/Scan.php28
-rw-r--r--apps/files_external/lib/ConfigLexicon.php41
-rw-r--r--apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php9
-rw-r--r--apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php6
-rw-r--r--apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php4
-rw-r--r--apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php4
-rw-r--r--apps/files_external/lib/Lib/Auth/PublicKey/RSA.php3
-rw-r--r--apps/files_external/lib/Lib/Backend/LegacyBackend.php4
-rw-r--r--apps/files_external/lib/Lib/Backend/SMB.php28
-rw-r--r--apps/files_external/lib/Lib/DefinitionParameter.php2
-rw-r--r--apps/files_external/lib/Lib/MissingDependency.php13
-rw-r--r--apps/files_external/lib/Lib/Storage/SMB.php10
-rw-r--r--apps/files_external/lib/Lib/Storage/Swift.php26
-rw-r--r--apps/files_external/lib/Listener/LoadAdditionalListener.php7
-rw-r--r--apps/files_external/lib/Service/BackendService.php21
-rw-r--r--apps/files_external/src/settings.js8
-rw-r--r--apps/files_external/templates/settings.php58
-rw-r--r--apps/files_external/tests/Auth/AuthMechanismTest.php18
-rw-r--r--apps/files_external/tests/Auth/Password/GlobalAuthTest.php (renamed from apps/files_external/tests/Auth/Password/GlobalAuth.php)24
-rw-r--r--apps/files_external/tests/Backend/BackendTest.php10
-rw-r--r--apps/files_external/tests/Backend/LegacyBackendTest.php21
-rw-r--r--apps/files_external/tests/Command/ApplicableTest.php11
-rw-r--r--apps/files_external/tests/Command/CommandTestCase.php (renamed from apps/files_external/tests/Command/CommandTest.php)17
-rw-r--r--apps/files_external/tests/Command/ListCommandTest.php22
-rw-r--r--apps/files_external/tests/Config/UserPlaceholderHandlerTest.php36
-rw-r--r--apps/files_external/tests/Controller/AjaxControllerTest.php32
-rw-r--r--apps/files_external/tests/Controller/GlobalStoragesControllerTest.php9
-rw-r--r--apps/files_external/tests/Controller/StoragesControllerTestCase.php (renamed from apps/files_external/tests/Controller/StoragesControllerTest.php)72
-rw-r--r--apps/files_external/tests/Controller/UserStoragesControllerTest.php18
-rw-r--r--apps/files_external/tests/DefinitionParameterTest.php15
-rw-r--r--apps/files_external/tests/FrontendDefinitionTraitTest.php10
-rw-r--r--apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php8
-rw-r--r--apps/files_external/tests/Listener/StorePasswordListenerTest.php7
-rw-r--r--apps/files_external/tests/OwnCloudFunctionsTest.php6
-rw-r--r--apps/files_external/tests/PersonalMountTest.php11
-rw-r--r--apps/files_external/tests/Service/BackendServiceTest.php71
-rw-r--r--apps/files_external/tests/Service/DBConfigServiceTest.php20
-rw-r--r--apps/files_external/tests/Service/GlobalStoragesServiceTest.php32
-rw-r--r--apps/files_external/tests/Service/StoragesServiceTestCase.php (renamed from apps/files_external/tests/Service/StoragesServiceTest.php)83
-rw-r--r--apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php24
-rw-r--r--apps/files_external/tests/Service/UserStoragesServiceTest.php15
-rw-r--r--apps/files_external/tests/Settings/AdminTest.php18
-rw-r--r--apps/files_external/tests/Settings/SectionTest.php16
-rw-r--r--apps/files_external/tests/Storage/Amazons3MultiPartTest.php11
-rw-r--r--apps/files_external/tests/Storage/Amazons3Test.php11
-rw-r--r--apps/files_external/tests/Storage/FtpTest.php4
-rw-r--r--apps/files_external/tests/Storage/OwncloudTest.php2
-rw-r--r--apps/files_external/tests/Storage/SFTP_KeyTest.php12
-rw-r--r--apps/files_external/tests/Storage/SftpTest.php4
-rw-r--r--apps/files_external/tests/Storage/SmbTest.php4
-rw-r--r--apps/files_external/tests/Storage/SwiftTest.php2
-rw-r--r--apps/files_external/tests/Storage/VersionedAmazonS3Test.php9
-rw-r--r--apps/files_external/tests/Storage/WebdavTest.php2
-rw-r--r--apps/files_external/tests/StorageConfigTest.php14
-rw-r--r--apps/files_external/tests/appSpec.js84
-rw-r--r--apps/files_external/tests/js/mountsfilelistSpec.js148
-rw-r--r--apps/files_external/tests/js/settingsSpec.js447
-rw-r--r--apps/files_reminders/l10n/en_GB.js2
-rw-r--r--apps/files_reminders/l10n/en_GB.json2
-rw-r--r--apps/files_reminders/l10n/fr.js11
-rw-r--r--apps/files_reminders/l10n/fr.json11
-rw-r--r--apps/files_reminders/l10n/sc.js19
-rw-r--r--apps/files_reminders/l10n/sc.json17
-rw-r--r--apps/files_reminders/l10n/tr.js4
-rw-r--r--apps/files_reminders/l10n/tr.json4
-rw-r--r--apps/files_reminders/l10n/zh_HK.js6
-rw-r--r--apps/files_reminders/l10n/zh_HK.json6
-rw-r--r--apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php6
-rw-r--r--apps/files_reminders/lib/Db/ReminderMapper.php22
-rw-r--r--apps/files_sharing/composer/composer/autoload_classmap.php1
-rw-r--r--apps/files_sharing/composer/composer/autoload_static.php1
-rw-r--r--apps/files_sharing/css/404.css2
-rw-r--r--apps/files_sharing/l10n/ar.js28
-rw-r--r--apps/files_sharing/l10n/ar.json28
-rw-r--r--apps/files_sharing/l10n/ast.js4
-rw-r--r--apps/files_sharing/l10n/ast.json4
-rw-r--r--apps/files_sharing/l10n/az.js60
-rw-r--r--apps/files_sharing/l10n/az.json58
-rw-r--r--apps/files_sharing/l10n/bg.js8
-rw-r--r--apps/files_sharing/l10n/bg.json8
-rw-r--r--apps/files_sharing/l10n/bn_BD.js35
-rw-r--r--apps/files_sharing/l10n/bn_BD.json33
-rw-r--r--apps/files_sharing/l10n/bs.js11
-rw-r--r--apps/files_sharing/l10n/bs.json9
-rw-r--r--apps/files_sharing/l10n/ca.js28
-rw-r--r--apps/files_sharing/l10n/ca.json28
-rw-r--r--apps/files_sharing/l10n/cs.js45
-rw-r--r--apps/files_sharing/l10n/cs.json45
-rw-r--r--apps/files_sharing/l10n/cy_GB.js10
-rw-r--r--apps/files_sharing/l10n/cy_GB.json8
-rw-r--r--apps/files_sharing/l10n/da.js28
-rw-r--r--apps/files_sharing/l10n/da.json28
-rw-r--r--apps/files_sharing/l10n/de.js59
-rw-r--r--apps/files_sharing/l10n/de.json59
-rw-r--r--apps/files_sharing/l10n/de_DE.js65
-rw-r--r--apps/files_sharing/l10n/de_DE.json65
-rw-r--r--apps/files_sharing/l10n/el.js8
-rw-r--r--apps/files_sharing/l10n/el.json8
-rw-r--r--apps/files_sharing/l10n/en_GB.js43
-rw-r--r--apps/files_sharing/l10n/en_GB.json43
-rw-r--r--apps/files_sharing/l10n/eo.js208
-rw-r--r--apps/files_sharing/l10n/eo.json206
-rw-r--r--apps/files_sharing/l10n/es.js30
-rw-r--r--apps/files_sharing/l10n/es.json30
-rw-r--r--apps/files_sharing/l10n/es_419.js138
-rw-r--r--apps/files_sharing/l10n/es_419.json136
-rw-r--r--apps/files_sharing/l10n/es_AR.js218
-rw-r--r--apps/files_sharing/l10n/es_AR.json216
-rw-r--r--apps/files_sharing/l10n/es_CL.js138
-rw-r--r--apps/files_sharing/l10n/es_CL.json136
-rw-r--r--apps/files_sharing/l10n/es_CO.js143
-rw-r--r--apps/files_sharing/l10n/es_CO.json141
-rw-r--r--apps/files_sharing/l10n/es_CR.js138
-rw-r--r--apps/files_sharing/l10n/es_CR.json136
-rw-r--r--apps/files_sharing/l10n/es_DO.js144
-rw-r--r--apps/files_sharing/l10n/es_DO.json142
-rw-r--r--apps/files_sharing/l10n/es_EC.js4
-rw-r--r--apps/files_sharing/l10n/es_EC.json4
-rw-r--r--apps/files_sharing/l10n/es_GT.js138
-rw-r--r--apps/files_sharing/l10n/es_GT.json136
-rw-r--r--apps/files_sharing/l10n/es_HN.js136
-rw-r--r--apps/files_sharing/l10n/es_HN.json134
-rw-r--r--apps/files_sharing/l10n/es_MX.js21
-rw-r--r--apps/files_sharing/l10n/es_MX.json21
-rw-r--r--apps/files_sharing/l10n/es_NI.js135
-rw-r--r--apps/files_sharing/l10n/es_NI.json133
-rw-r--r--apps/files_sharing/l10n/es_PA.js135
-rw-r--r--apps/files_sharing/l10n/es_PA.json133
-rw-r--r--apps/files_sharing/l10n/es_PE.js138
-rw-r--r--apps/files_sharing/l10n/es_PE.json136
-rw-r--r--apps/files_sharing/l10n/es_PR.js135
-rw-r--r--apps/files_sharing/l10n/es_PR.json133
-rw-r--r--apps/files_sharing/l10n/es_PY.js136
-rw-r--r--apps/files_sharing/l10n/es_PY.json134
-rw-r--r--apps/files_sharing/l10n/es_SV.js138
-rw-r--r--apps/files_sharing/l10n/es_SV.json136
-rw-r--r--apps/files_sharing/l10n/es_UY.js138
-rw-r--r--apps/files_sharing/l10n/es_UY.json136
-rw-r--r--apps/files_sharing/l10n/et_EE.js173
-rw-r--r--apps/files_sharing/l10n/et_EE.json173
-rw-r--r--apps/files_sharing/l10n/eu.js51
-rw-r--r--apps/files_sharing/l10n/eu.json51
-rw-r--r--apps/files_sharing/l10n/fa.js24
-rw-r--r--apps/files_sharing/l10n/fa.json24
-rw-r--r--apps/files_sharing/l10n/fi.js13
-rw-r--r--apps/files_sharing/l10n/fi.json13
-rw-r--r--apps/files_sharing/l10n/fr.js53
-rw-r--r--apps/files_sharing/l10n/fr.json53
-rw-r--r--apps/files_sharing/l10n/ga.js43
-rw-r--r--apps/files_sharing/l10n/ga.json43
-rw-r--r--apps/files_sharing/l10n/gl.js28
-rw-r--r--apps/files_sharing/l10n/gl.json28
-rw-r--r--apps/files_sharing/l10n/he.js214
-rw-r--r--apps/files_sharing/l10n/he.json212
-rw-r--r--apps/files_sharing/l10n/hr.js8
-rw-r--r--apps/files_sharing/l10n/hr.json8
-rw-r--r--apps/files_sharing/l10n/hu.js13
-rw-r--r--apps/files_sharing/l10n/hu.json13
-rw-r--r--apps/files_sharing/l10n/hy.js10
-rw-r--r--apps/files_sharing/l10n/hy.json8
-rw-r--r--apps/files_sharing/l10n/ia.js15
-rw-r--r--apps/files_sharing/l10n/ia.json13
-rw-r--r--apps/files_sharing/l10n/id.js69
-rw-r--r--apps/files_sharing/l10n/id.json67
-rw-r--r--apps/files_sharing/l10n/is.js26
-rw-r--r--apps/files_sharing/l10n/is.json26
-rw-r--r--apps/files_sharing/l10n/it.js44
-rw-r--r--apps/files_sharing/l10n/it.json44
-rw-r--r--apps/files_sharing/l10n/ja.js45
-rw-r--r--apps/files_sharing/l10n/ja.json45
-rw-r--r--apps/files_sharing/l10n/ka.js6
-rw-r--r--apps/files_sharing/l10n/ka.json6
-rw-r--r--apps/files_sharing/l10n/ka_GE.js135
-rw-r--r--apps/files_sharing/l10n/ka_GE.json133
-rw-r--r--apps/files_sharing/l10n/km.js27
-rw-r--r--apps/files_sharing/l10n/km.json25
-rw-r--r--apps/files_sharing/l10n/kn.js10
-rw-r--r--apps/files_sharing/l10n/kn.json8
-rw-r--r--apps/files_sharing/l10n/ko.js34
-rw-r--r--apps/files_sharing/l10n/ko.json34
-rw-r--r--apps/files_sharing/l10n/lb.js16
-rw-r--r--apps/files_sharing/l10n/lb.json14
-rw-r--r--apps/files_sharing/l10n/lo.js6
-rw-r--r--apps/files_sharing/l10n/lo.json4
-rw-r--r--apps/files_sharing/l10n/lt_LT.js12
-rw-r--r--apps/files_sharing/l10n/lt_LT.json12
-rw-r--r--apps/files_sharing/l10n/lv.js204
-rw-r--r--apps/files_sharing/l10n/lv.json202
-rw-r--r--apps/files_sharing/l10n/mk.js36
-rw-r--r--apps/files_sharing/l10n/mk.json36
-rw-r--r--apps/files_sharing/l10n/mn.js13
-rw-r--r--apps/files_sharing/l10n/mn.json11
-rw-r--r--apps/files_sharing/l10n/ms_MY.js13
-rw-r--r--apps/files_sharing/l10n/ms_MY.json11
-rw-r--r--apps/files_sharing/l10n/nb.js21
-rw-r--r--apps/files_sharing/l10n/nb.json21
-rw-r--r--apps/files_sharing/l10n/nl.js93
-rw-r--r--apps/files_sharing/l10n/nl.json93
-rw-r--r--apps/files_sharing/l10n/nn_NO.js24
-rw-r--r--apps/files_sharing/l10n/nn_NO.json22
-rw-r--r--apps/files_sharing/l10n/oc.js72
-rw-r--r--apps/files_sharing/l10n/oc.json70
-rw-r--r--apps/files_sharing/l10n/pl.js44
-rw-r--r--apps/files_sharing/l10n/pl.json44
-rw-r--r--apps/files_sharing/l10n/pt_BR.js117
-rw-r--r--apps/files_sharing/l10n/pt_BR.json117
-rw-r--r--apps/files_sharing/l10n/pt_PT.js168
-rw-r--r--apps/files_sharing/l10n/pt_PT.json166
-rw-r--r--apps/files_sharing/l10n/ro.js215
-rw-r--r--apps/files_sharing/l10n/ro.json213
-rw-r--r--apps/files_sharing/l10n/ru.js56
-rw-r--r--apps/files_sharing/l10n/ru.json56
-rw-r--r--apps/files_sharing/l10n/sc.js14
-rw-r--r--apps/files_sharing/l10n/sc.json14
-rw-r--r--apps/files_sharing/l10n/sk.js29
-rw-r--r--apps/files_sharing/l10n/sk.json29
-rw-r--r--apps/files_sharing/l10n/sl.js12
-rw-r--r--apps/files_sharing/l10n/sl.json12
-rw-r--r--apps/files_sharing/l10n/sq.js144
-rw-r--r--apps/files_sharing/l10n/sq.json142
-rw-r--r--apps/files_sharing/l10n/sr.js44
-rw-r--r--apps/files_sharing/l10n/sr.json44
-rw-r--r--apps/files_sharing/l10n/sr@latin.js56
-rw-r--r--apps/files_sharing/l10n/sr@latin.json54
-rw-r--r--apps/files_sharing/l10n/sv.js45
-rw-r--r--apps/files_sharing/l10n/sv.json45
-rw-r--r--apps/files_sharing/l10n/tr.js81
-rw-r--r--apps/files_sharing/l10n/tr.json81
-rw-r--r--apps/files_sharing/l10n/ug.js18
-rw-r--r--apps/files_sharing/l10n/ug.json18
-rw-r--r--apps/files_sharing/l10n/uk.js43
-rw-r--r--apps/files_sharing/l10n/uk.json43
-rw-r--r--apps/files_sharing/l10n/ur_PK.js10
-rw-r--r--apps/files_sharing/l10n/ur_PK.json8
-rw-r--r--apps/files_sharing/l10n/vi.js5
-rw-r--r--apps/files_sharing/l10n/vi.json5
-rw-r--r--apps/files_sharing/l10n/zh_CN.js54
-rw-r--r--apps/files_sharing/l10n/zh_CN.json54
-rw-r--r--apps/files_sharing/l10n/zh_HK.js43
-rw-r--r--apps/files_sharing/l10n/zh_HK.json43
-rw-r--r--apps/files_sharing/l10n/zh_TW.js43
-rw-r--r--apps/files_sharing/l10n/zh_TW.json43
-rw-r--r--apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php2
-rw-r--r--apps/files_sharing/lib/AppInfo/Application.php4
-rw-r--r--apps/files_sharing/lib/Cache.php2
-rw-r--r--apps/files_sharing/lib/Config/ConfigLexicon.php39
-rw-r--r--apps/files_sharing/lib/Controller/PublicPreviewController.php16
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php47
-rw-r--r--apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php13
-rw-r--r--apps/files_sharing/lib/External/Scanner.php3
-rw-r--r--apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php10
-rw-r--r--apps/files_sharing/lib/Listener/LoadSidebarListener.php5
-rw-r--r--apps/files_sharing/lib/MountProvider.php7
-rw-r--r--apps/files_sharing/lib/SharedStorage.php5
-rw-r--r--apps/files_sharing/openapi.json56
-rw-r--r--apps/files_sharing/src/components/ShareExpiryTime.vue2
-rw-r--r--apps/files_sharing/src/components/SharingEntryLink.vue38
-rw-r--r--apps/files_sharing/src/components/SharingInput.vue11
-rw-r--r--apps/files_sharing/src/files_filters/AccountFilter.ts6
-rw-r--r--apps/files_sharing/src/files_views/publicFileDrop.ts7
-rw-r--r--apps/files_sharing/src/public-file-request.ts57
-rw-r--r--apps/files_sharing/src/public-nickname-handler.ts86
-rw-r--r--apps/files_sharing/src/services/ConfigService.ts9
-rw-r--r--apps/files_sharing/src/services/GuestNameValidity.ts45
-rw-r--r--apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue93
-rw-r--r--apps/files_sharing/src/views/PublicAuthPrompt.vue123
-rw-r--r--apps/files_sharing/src/views/SharingDetailsTab.vue29
-rw-r--r--apps/files_sharing/src/views/SharingTab.vue53
-rw-r--r--apps/files_sharing/tests/ApiTest.php3
-rw-r--r--apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php38
-rw-r--r--apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php8
-rw-r--r--apps/files_sharing/tests/Controller/ShareAPIControllerTest.php193
-rw-r--r--apps/files_sharing/tests/Controller/ShareControllerTest.php26
-rw-r--r--apps/files_sharing/tests/Controller/ShareInfoControllerTest.php21
-rw-r--r--apps/files_sharing/tests/EncryptedSizePropagationTest.php20
-rw-r--r--apps/files_sharing/tests/External/ManagerTest.php66
-rw-r--r--apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php120
-rw-r--r--apps/files_sharing/tests/MountProviderTest.php79
-rw-r--r--apps/files_sharing/tests/TestCase.php4
-rw-r--r--apps/files_trashbin/l10n/af.js15
-rw-r--r--apps/files_trashbin/l10n/af.json13
-rw-r--r--apps/files_trashbin/l10n/az.js16
-rw-r--r--apps/files_trashbin/l10n/az.json14
-rw-r--r--apps/files_trashbin/l10n/be.js6
-rw-r--r--apps/files_trashbin/l10n/be.json4
-rw-r--r--apps/files_trashbin/l10n/bg.js22
-rw-r--r--apps/files_trashbin/l10n/bg.json20
-rw-r--r--apps/files_trashbin/l10n/bn_BD.js14
-rw-r--r--apps/files_trashbin/l10n/bn_BD.json12
-rw-r--r--apps/files_trashbin/l10n/br.js20
-rw-r--r--apps/files_trashbin/l10n/br.json18
-rw-r--r--apps/files_trashbin/l10n/bs.js10
-rw-r--r--apps/files_trashbin/l10n/bs.json8
-rw-r--r--apps/files_trashbin/l10n/cs.js6
-rw-r--r--apps/files_trashbin/l10n/cs.json6
-rw-r--r--apps/files_trashbin/l10n/cy_GB.js14
-rw-r--r--apps/files_trashbin/l10n/cy_GB.json12
-rw-r--r--apps/files_trashbin/l10n/de.js18
-rw-r--r--apps/files_trashbin/l10n/de.json18
-rw-r--r--apps/files_trashbin/l10n/de_DE.js12
-rw-r--r--apps/files_trashbin/l10n/de_DE.json12
-rw-r--r--apps/files_trashbin/l10n/el.js17
-rw-r--r--apps/files_trashbin/l10n/el.json15
-rw-r--r--apps/files_trashbin/l10n/en_GB.js2
-rw-r--r--apps/files_trashbin/l10n/en_GB.json2
-rw-r--r--apps/files_trashbin/l10n/eo.js19
-rw-r--r--apps/files_trashbin/l10n/eo.json17
-rw-r--r--apps/files_trashbin/l10n/es_419.js17
-rw-r--r--apps/files_trashbin/l10n/es_419.json15
-rw-r--r--apps/files_trashbin/l10n/es_AR.js19
-rw-r--r--apps/files_trashbin/l10n/es_AR.json17
-rw-r--r--apps/files_trashbin/l10n/es_CL.js17
-rw-r--r--apps/files_trashbin/l10n/es_CL.json15
-rw-r--r--apps/files_trashbin/l10n/es_CO.js17
-rw-r--r--apps/files_trashbin/l10n/es_CO.json15
-rw-r--r--apps/files_trashbin/l10n/es_CR.js17
-rw-r--r--apps/files_trashbin/l10n/es_CR.json15
-rw-r--r--apps/files_trashbin/l10n/es_DO.js17
-rw-r--r--apps/files_trashbin/l10n/es_DO.json15
-rw-r--r--apps/files_trashbin/l10n/es_EC.js17
-rw-r--r--apps/files_trashbin/l10n/es_EC.json15
-rw-r--r--apps/files_trashbin/l10n/es_GT.js17
-rw-r--r--apps/files_trashbin/l10n/es_GT.json15
-rw-r--r--apps/files_trashbin/l10n/es_HN.js17
-rw-r--r--apps/files_trashbin/l10n/es_HN.json15
-rw-r--r--apps/files_trashbin/l10n/es_NI.js17
-rw-r--r--apps/files_trashbin/l10n/es_NI.json15
-rw-r--r--apps/files_trashbin/l10n/es_PA.js17
-rw-r--r--apps/files_trashbin/l10n/es_PA.json15
-rw-r--r--apps/files_trashbin/l10n/es_PE.js17
-rw-r--r--apps/files_trashbin/l10n/es_PE.json15
-rw-r--r--apps/files_trashbin/l10n/es_PR.js17
-rw-r--r--apps/files_trashbin/l10n/es_PR.json15
-rw-r--r--apps/files_trashbin/l10n/es_PY.js16
-rw-r--r--apps/files_trashbin/l10n/es_PY.json14
-rw-r--r--apps/files_trashbin/l10n/es_SV.js17
-rw-r--r--apps/files_trashbin/l10n/es_SV.json15
-rw-r--r--apps/files_trashbin/l10n/es_UY.js17
-rw-r--r--apps/files_trashbin/l10n/es_UY.json15
-rw-r--r--apps/files_trashbin/l10n/et_EE.js14
-rw-r--r--apps/files_trashbin/l10n/et_EE.json14
-rw-r--r--apps/files_trashbin/l10n/fa.js2
-rw-r--r--apps/files_trashbin/l10n/fa.json2
-rw-r--r--apps/files_trashbin/l10n/fi.js1
-rw-r--r--apps/files_trashbin/l10n/fi.json1
-rw-r--r--apps/files_trashbin/l10n/fr.js8
-rw-r--r--apps/files_trashbin/l10n/fr.json8
-rw-r--r--apps/files_trashbin/l10n/ga.js2
-rw-r--r--apps/files_trashbin/l10n/ga.json2
-rw-r--r--apps/files_trashbin/l10n/he.js19
-rw-r--r--apps/files_trashbin/l10n/he.json17
-rw-r--r--apps/files_trashbin/l10n/hr.js20
-rw-r--r--apps/files_trashbin/l10n/hr.json18
-rw-r--r--apps/files_trashbin/l10n/hy.js15
-rw-r--r--apps/files_trashbin/l10n/hy.json13
-rw-r--r--apps/files_trashbin/l10n/ia.js17
-rw-r--r--apps/files_trashbin/l10n/ia.json15
-rw-r--r--apps/files_trashbin/l10n/id.js19
-rw-r--r--apps/files_trashbin/l10n/id.json17
-rw-r--r--apps/files_trashbin/l10n/ja.js2
-rw-r--r--apps/files_trashbin/l10n/ja.json2
-rw-r--r--apps/files_trashbin/l10n/ka.js17
-rw-r--r--apps/files_trashbin/l10n/ka.json15
-rw-r--r--apps/files_trashbin/l10n/ka_GE.js17
-rw-r--r--apps/files_trashbin/l10n/ka_GE.json15
-rw-r--r--apps/files_trashbin/l10n/km.js15
-rw-r--r--apps/files_trashbin/l10n/km.json13
-rw-r--r--apps/files_trashbin/l10n/kn.js10
-rw-r--r--apps/files_trashbin/l10n/kn.json8
-rw-r--r--apps/files_trashbin/l10n/lb.js17
-rw-r--r--apps/files_trashbin/l10n/lb.json15
-rw-r--r--apps/files_trashbin/l10n/lv.js17
-rw-r--r--apps/files_trashbin/l10n/lv.json15
-rw-r--r--apps/files_trashbin/l10n/mn.js16
-rw-r--r--apps/files_trashbin/l10n/mn.json14
-rw-r--r--apps/files_trashbin/l10n/ms_MY.js14
-rw-r--r--apps/files_trashbin/l10n/ms_MY.json12
-rw-r--r--apps/files_trashbin/l10n/nl.js28
-rw-r--r--apps/files_trashbin/l10n/nl.json28
-rw-r--r--apps/files_trashbin/l10n/nn_NO.js16
-rw-r--r--apps/files_trashbin/l10n/nn_NO.json14
-rw-r--r--apps/files_trashbin/l10n/oc.js21
-rw-r--r--apps/files_trashbin/l10n/oc.json19
-rw-r--r--apps/files_trashbin/l10n/pl.js2
-rw-r--r--apps/files_trashbin/l10n/pl.json2
-rw-r--r--apps/files_trashbin/l10n/pt_BR.js6
-rw-r--r--apps/files_trashbin/l10n/pt_BR.json6
-rw-r--r--apps/files_trashbin/l10n/pt_PT.js19
-rw-r--r--apps/files_trashbin/l10n/pt_PT.json17
-rw-r--r--apps/files_trashbin/l10n/ro.js17
-rw-r--r--apps/files_trashbin/l10n/ro.json15
-rw-r--r--apps/files_trashbin/l10n/ru.js2
-rw-r--r--apps/files_trashbin/l10n/ru.json2
-rw-r--r--apps/files_trashbin/l10n/sc.js21
-rw-r--r--apps/files_trashbin/l10n/sc.json19
-rw-r--r--apps/files_trashbin/l10n/sl.js17
-rw-r--r--apps/files_trashbin/l10n/sl.json15
-rw-r--r--apps/files_trashbin/l10n/sq.js17
-rw-r--r--apps/files_trashbin/l10n/sq.json15
-rw-r--r--apps/files_trashbin/l10n/sr.js2
-rw-r--r--apps/files_trashbin/l10n/sr.json2
-rw-r--r--apps/files_trashbin/l10n/sr@latin.js19
-rw-r--r--apps/files_trashbin/l10n/sr@latin.json17
-rw-r--r--apps/files_trashbin/l10n/sv.js6
-rw-r--r--apps/files_trashbin/l10n/sv.json6
-rw-r--r--apps/files_trashbin/l10n/th.js17
-rw-r--r--apps/files_trashbin/l10n/th.json15
-rw-r--r--apps/files_trashbin/l10n/tr.js6
-rw-r--r--apps/files_trashbin/l10n/tr.json6
-rw-r--r--apps/files_trashbin/l10n/uk.js2
-rw-r--r--apps/files_trashbin/l10n/uk.json2
-rw-r--r--apps/files_trashbin/l10n/ur_PK.js14
-rw-r--r--apps/files_trashbin/l10n/ur_PK.json12
-rw-r--r--apps/files_trashbin/l10n/zh_CN.js2
-rw-r--r--apps/files_trashbin/l10n/zh_CN.json2
-rw-r--r--apps/files_trashbin/l10n/zh_HK.js2
-rw-r--r--apps/files_trashbin/l10n/zh_HK.json2
-rw-r--r--apps/files_trashbin/l10n/zh_TW.js2
-rw-r--r--apps/files_trashbin/l10n/zh_TW.json2
-rw-r--r--apps/files_trashbin/lib/Command/CleanUp.php3
-rw-r--r--apps/files_trashbin/lib/Command/Size.php9
-rw-r--r--apps/files_trashbin/lib/Sabre/TrashbinPlugin.php48
-rw-r--r--apps/files_trashbin/src/files_actions/restoreAction.ts4
-rw-r--r--apps/files_trashbin/src/files_views/columns.spec.ts18
-rw-r--r--apps/files_trashbin/src/files_views/columns.ts10
-rw-r--r--apps/files_trashbin/tests/BackgroundJob/ExpireTrashTest.php25
-rw-r--r--apps/files_trashbin/tests/CapabilitiesTest.php6
-rw-r--r--apps/files_trashbin/tests/Command/CleanUpTest.php80
-rw-r--r--apps/files_trashbin/tests/Command/ExpireTest.php2
-rw-r--r--apps/files_trashbin/tests/Controller/PreviewControllerTest.php34
-rw-r--r--apps/files_trashbin/tests/ExpirationTest.php25
-rw-r--r--apps/files_trashbin/tests/Sabre/TrashbinPluginTest.php72
-rw-r--r--apps/files_trashbin/tests/StorageTest.php118
-rw-r--r--apps/files_trashbin/tests/TrashbinTest.php67
-rw-r--r--apps/files_versions/appinfo/routes.php10
-rw-r--r--apps/files_versions/l10n/af.js9
-rw-r--r--apps/files_versions/l10n/af.json7
-rw-r--r--apps/files_versions/l10n/az.js9
-rw-r--r--apps/files_versions/l10n/az.json7
-rw-r--r--apps/files_versions/l10n/bn_BD.js9
-rw-r--r--apps/files_versions/l10n/bn_BD.json7
-rw-r--r--apps/files_versions/l10n/br.js13
-rw-r--r--apps/files_versions/l10n/br.json11
-rw-r--r--apps/files_versions/l10n/bs.js9
-rw-r--r--apps/files_versions/l10n/bs.json7
-rw-r--r--apps/files_versions/l10n/cs.js2
-rw-r--r--apps/files_versions/l10n/cs.json2
-rw-r--r--apps/files_versions/l10n/cy_GB.js6
-rw-r--r--apps/files_versions/l10n/cy_GB.json4
-rw-r--r--apps/files_versions/l10n/eo.js13
-rw-r--r--apps/files_versions/l10n/eo.json11
-rw-r--r--apps/files_versions/l10n/es_419.js9
-rw-r--r--apps/files_versions/l10n/es_419.json7
-rw-r--r--apps/files_versions/l10n/es_AR.js10
-rw-r--r--apps/files_versions/l10n/es_AR.json8
-rw-r--r--apps/files_versions/l10n/es_CL.js9
-rw-r--r--apps/files_versions/l10n/es_CL.json7
-rw-r--r--apps/files_versions/l10n/es_CO.js9
-rw-r--r--apps/files_versions/l10n/es_CO.json7
-rw-r--r--apps/files_versions/l10n/es_CR.js9
-rw-r--r--apps/files_versions/l10n/es_CR.json7
-rw-r--r--apps/files_versions/l10n/es_DO.js9
-rw-r--r--apps/files_versions/l10n/es_DO.json7
-rw-r--r--apps/files_versions/l10n/es_GT.js9
-rw-r--r--apps/files_versions/l10n/es_GT.json7
-rw-r--r--apps/files_versions/l10n/es_HN.js9
-rw-r--r--apps/files_versions/l10n/es_HN.json7
-rw-r--r--apps/files_versions/l10n/es_NI.js9
-rw-r--r--apps/files_versions/l10n/es_NI.json7
-rw-r--r--apps/files_versions/l10n/es_PA.js9
-rw-r--r--apps/files_versions/l10n/es_PA.json7
-rw-r--r--apps/files_versions/l10n/es_PE.js9
-rw-r--r--apps/files_versions/l10n/es_PE.json7
-rw-r--r--apps/files_versions/l10n/es_PR.js9
-rw-r--r--apps/files_versions/l10n/es_PR.json7
-rw-r--r--apps/files_versions/l10n/es_PY.js9
-rw-r--r--apps/files_versions/l10n/es_PY.json7
-rw-r--r--apps/files_versions/l10n/es_SV.js9
-rw-r--r--apps/files_versions/l10n/es_SV.json7
-rw-r--r--apps/files_versions/l10n/es_UY.js9
-rw-r--r--apps/files_versions/l10n/es_UY.json7
-rw-r--r--apps/files_versions/l10n/fa.js1
-rw-r--r--apps/files_versions/l10n/fa.json1
-rw-r--r--apps/files_versions/l10n/fr.js3
-rw-r--r--apps/files_versions/l10n/fr.json3
-rw-r--r--apps/files_versions/l10n/he.js13
-rw-r--r--apps/files_versions/l10n/he.json11
-rw-r--r--apps/files_versions/l10n/hr.js13
-rw-r--r--apps/files_versions/l10n/hr.json11
-rw-r--r--apps/files_versions/l10n/hy.js8
-rw-r--r--apps/files_versions/l10n/hy.json6
-rw-r--r--apps/files_versions/l10n/ia.js10
-rw-r--r--apps/files_versions/l10n/ia.json8
-rw-r--r--apps/files_versions/l10n/id.js13
-rw-r--r--apps/files_versions/l10n/id.json11
-rw-r--r--apps/files_versions/l10n/ka_GE.js9
-rw-r--r--apps/files_versions/l10n/ka_GE.json7
-rw-r--r--apps/files_versions/l10n/km.js9
-rw-r--r--apps/files_versions/l10n/km.json7
-rw-r--r--apps/files_versions/l10n/kn.js9
-rw-r--r--apps/files_versions/l10n/kn.json7
-rw-r--r--apps/files_versions/l10n/lb.js10
-rw-r--r--apps/files_versions/l10n/lb.json8
-rw-r--r--apps/files_versions/l10n/lv.js12
-rw-r--r--apps/files_versions/l10n/lv.json10
-rw-r--r--apps/files_versions/l10n/ms_MY.js9
-rw-r--r--apps/files_versions/l10n/ms_MY.json7
-rw-r--r--apps/files_versions/l10n/nl.js4
-rw-r--r--apps/files_versions/l10n/nl.json4
-rw-r--r--apps/files_versions/l10n/nn_NO.js9
-rw-r--r--apps/files_versions/l10n/nn_NO.json7
-rw-r--r--apps/files_versions/l10n/oc.js9
-rw-r--r--apps/files_versions/l10n/oc.json7
-rw-r--r--apps/files_versions/l10n/pt_PT.js10
-rw-r--r--apps/files_versions/l10n/pt_PT.json8
-rw-r--r--apps/files_versions/l10n/ro.js13
-rw-r--r--apps/files_versions/l10n/ro.json11
-rw-r--r--apps/files_versions/l10n/ru.js3
-rw-r--r--apps/files_versions/l10n/ru.json3
-rw-r--r--apps/files_versions/l10n/sc.js13
-rw-r--r--apps/files_versions/l10n/sc.json11
-rw-r--r--apps/files_versions/l10n/sq.js10
-rw-r--r--apps/files_versions/l10n/sq.json8
-rw-r--r--apps/files_versions/l10n/sr@latin.js11
-rw-r--r--apps/files_versions/l10n/sr@latin.json9
-rw-r--r--apps/files_versions/l10n/th.js10
-rw-r--r--apps/files_versions/l10n/th.json8
-rw-r--r--apps/files_versions/l10n/tr.js2
-rw-r--r--apps/files_versions/l10n/tr.json2
-rw-r--r--apps/files_versions/l10n/ur_PK.js6
-rw-r--r--apps/files_versions/l10n/ur_PK.json4
-rw-r--r--apps/files_versions/lib/Listener/FileEventsListener.php9
-rw-r--r--apps/files_versions/lib/Storage.php31
-rw-r--r--apps/files_versions/lib/Versions/LegacyVersionsBackend.php12
-rw-r--r--apps/files_versions/src/components/Version.vue12
-rw-r--r--apps/files_versions/src/views/VersionTab.vue2
-rw-r--r--apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php17
-rw-r--r--apps/files_versions/tests/Command/CleanupTest.php53
-rw-r--r--apps/files_versions/tests/Command/ExpireTest.php2
-rw-r--r--apps/files_versions/tests/Controller/PreviewControllerTest.php30
-rw-r--r--apps/files_versions/tests/ExpirationTest.php24
-rw-r--r--apps/files_versions/tests/StorageTest.php8
-rw-r--r--apps/files_versions/tests/VersioningTest.php39
-rw-r--r--apps/files_versions/tests/Versions/VersionManagerTest.php7
-rw-r--r--apps/oauth2/l10n/af.js13
-rw-r--r--apps/oauth2/l10n/af.json11
-rw-r--r--apps/oauth2/l10n/es_419.js13
-rw-r--r--apps/oauth2/l10n/es_419.json11
-rw-r--r--apps/oauth2/l10n/es_HN.js13
-rw-r--r--apps/oauth2/l10n/es_HN.json11
-rw-r--r--apps/oauth2/l10n/es_NI.js13
-rw-r--r--apps/oauth2/l10n/es_NI.json11
-rw-r--r--apps/oauth2/l10n/es_PA.js13
-rw-r--r--apps/oauth2/l10n/es_PA.json11
-rw-r--r--apps/oauth2/l10n/es_PE.js13
-rw-r--r--apps/oauth2/l10n/es_PE.json11
-rw-r--r--apps/oauth2/l10n/es_PR.js13
-rw-r--r--apps/oauth2/l10n/es_PR.json11
-rw-r--r--apps/oauth2/l10n/es_PY.js13
-rw-r--r--apps/oauth2/l10n/es_PY.json11
-rw-r--r--apps/oauth2/l10n/es_UY.js13
-rw-r--r--apps/oauth2/l10n/es_UY.json11
-rw-r--r--apps/oauth2/l10n/hu.js7
-rw-r--r--apps/oauth2/l10n/hu.json7
-rw-r--r--apps/oauth2/l10n/id.js13
-rw-r--r--apps/oauth2/l10n/id.json11
-rw-r--r--apps/oauth2/l10n/nl.js5
-rw-r--r--apps/oauth2/l10n/nl.json5
-rw-r--r--apps/profile/l10n/nl.js2
-rw-r--r--apps/profile/l10n/nl.json2
-rw-r--r--apps/profile/l10n/pt_PT.js13
-rw-r--r--apps/profile/l10n/pt_PT.json11
-rw-r--r--apps/profile/l10n/sw.js13
-rw-r--r--apps/profile/l10n/sw.json11
-rw-r--r--apps/provisioning_api/appinfo/routes.php1
-rw-r--r--apps/provisioning_api/l10n/bg.js18
-rw-r--r--apps/provisioning_api/l10n/bg.json16
-rw-r--r--apps/provisioning_api/l10n/de.js6
-rw-r--r--apps/provisioning_api/l10n/de.json6
-rw-r--r--apps/provisioning_api/l10n/el.js16
-rw-r--r--apps/provisioning_api/l10n/el.json14
-rw-r--r--apps/provisioning_api/l10n/es_EC.js18
-rw-r--r--apps/provisioning_api/l10n/es_EC.json16
-rw-r--r--apps/provisioning_api/l10n/fa.js18
-rw-r--r--apps/provisioning_api/l10n/fa.json16
-rw-r--r--apps/provisioning_api/l10n/hr.js18
-rw-r--r--apps/provisioning_api/l10n/hr.json16
-rw-r--r--apps/provisioning_api/l10n/hu.js18
-rw-r--r--apps/provisioning_api/l10n/hu.json16
-rw-r--r--apps/provisioning_api/l10n/is.js15
-rw-r--r--apps/provisioning_api/l10n/is.json13
-rw-r--r--apps/provisioning_api/l10n/it.js18
-rw-r--r--apps/provisioning_api/l10n/it.json16
-rw-r--r--apps/provisioning_api/l10n/nl.js18
-rw-r--r--apps/provisioning_api/l10n/nl.json16
-rw-r--r--apps/provisioning_api/l10n/pl.js18
-rw-r--r--apps/provisioning_api/l10n/pl.json16
-rw-r--r--apps/provisioning_api/l10n/pt_PT.js17
-rw-r--r--apps/provisioning_api/l10n/pt_PT.json15
-rw-r--r--apps/provisioning_api/l10n/ro.js18
-rw-r--r--apps/provisioning_api/l10n/ro.json16
-rw-r--r--apps/provisioning_api/l10n/ru.js31
-rw-r--r--apps/provisioning_api/l10n/ru.json31
-rw-r--r--apps/provisioning_api/l10n/sc.js8
-rw-r--r--apps/provisioning_api/l10n/sc.json6
-rw-r--r--apps/provisioning_api/l10n/sl.js12
-rw-r--r--apps/provisioning_api/l10n/sl.json10
-rw-r--r--apps/provisioning_api/l10n/tr.js2
-rw-r--r--apps/provisioning_api/l10n/tr.json2
-rw-r--r--apps/provisioning_api/lib/Controller/AppsController.php16
-rw-r--r--apps/provisioning_api/lib/Controller/GroupsController.php1
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php15
-rw-r--r--apps/provisioning_api/openapi-administration.json6
-rw-r--r--apps/provisioning_api/openapi-full.json97
-rw-r--r--apps/provisioning_api/openapi.json91
-rw-r--r--apps/provisioning_api/tests/CapabilitiesTest.php15
-rw-r--r--apps/provisioning_api/tests/Controller/AppConfigControllerTest.php63
-rw-r--r--apps/provisioning_api/tests/Controller/AppsControllerTest.php26
-rw-r--r--apps/provisioning_api/tests/Controller/GroupsControllerTest.php56
-rw-r--r--apps/provisioning_api/tests/Controller/UsersControllerTest.php149
-rw-r--r--apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php40
-rw-r--r--apps/settings/appinfo/routes.php1
-rw-r--r--apps/settings/composer/composer/autoload_classmap.php1
-rw-r--r--apps/settings/composer/composer/autoload_static.php1
-rw-r--r--apps/settings/l10n/af.js117
-rw-r--r--apps/settings/l10n/af.json115
-rw-r--r--apps/settings/l10n/ar.js342
-rw-r--r--apps/settings/l10n/ar.json342
-rw-r--r--apps/settings/l10n/ast.js224
-rw-r--r--apps/settings/l10n/ast.json224
-rw-r--r--apps/settings/l10n/az.js188
-rw-r--r--apps/settings/l10n/az.json186
-rw-r--r--apps/settings/l10n/bg.js205
-rw-r--r--apps/settings/l10n/bg.json205
-rw-r--r--apps/settings/l10n/br.js111
-rw-r--r--apps/settings/l10n/br.json111
-rw-r--r--apps/settings/l10n/bs.js104
-rw-r--r--apps/settings/l10n/bs.json102
-rw-r--r--apps/settings/l10n/ca.js339
-rw-r--r--apps/settings/l10n/ca.json339
-rw-r--r--apps/settings/l10n/cs.js351
-rw-r--r--apps/settings/l10n/cs.json351
-rw-r--r--apps/settings/l10n/da.js342
-rw-r--r--apps/settings/l10n/da.json342
-rw-r--r--apps/settings/l10n/de.js403
-rw-r--r--apps/settings/l10n/de.json403
-rw-r--r--apps/settings/l10n/de_DE.js421
-rw-r--r--apps/settings/l10n/de_DE.json421
-rw-r--r--apps/settings/l10n/el.js339
-rw-r--r--apps/settings/l10n/el.json339
-rw-r--r--apps/settings/l10n/en_GB.js349
-rw-r--r--apps/settings/l10n/en_GB.json349
-rw-r--r--apps/settings/l10n/eo.js102
-rw-r--r--apps/settings/l10n/eo.json102
-rw-r--r--apps/settings/l10n/es.js342
-rw-r--r--apps/settings/l10n/es.json342
-rw-r--r--apps/settings/l10n/es_419.js83
-rw-r--r--apps/settings/l10n/es_419.json83
-rw-r--r--apps/settings/l10n/es_AR.js233
-rw-r--r--apps/settings/l10n/es_AR.json233
-rw-r--r--apps/settings/l10n/es_CL.js84
-rw-r--r--apps/settings/l10n/es_CL.json84
-rw-r--r--apps/settings/l10n/es_CO.js83
-rw-r--r--apps/settings/l10n/es_CO.json83
-rw-r--r--apps/settings/l10n/es_CR.js82
-rw-r--r--apps/settings/l10n/es_CR.json82
-rw-r--r--apps/settings/l10n/es_DO.js82
-rw-r--r--apps/settings/l10n/es_DO.json82
-rw-r--r--apps/settings/l10n/es_EC.js211
-rw-r--r--apps/settings/l10n/es_EC.json211
-rw-r--r--apps/settings/l10n/es_GT.js84
-rw-r--r--apps/settings/l10n/es_GT.json84
-rw-r--r--apps/settings/l10n/es_HN.js82
-rw-r--r--apps/settings/l10n/es_HN.json82
-rw-r--r--apps/settings/l10n/es_MX.js301
-rw-r--r--apps/settings/l10n/es_MX.json301
-rw-r--r--apps/settings/l10n/es_NI.js81
-rw-r--r--apps/settings/l10n/es_NI.json81
-rw-r--r--apps/settings/l10n/es_PA.js82
-rw-r--r--apps/settings/l10n/es_PA.json82
-rw-r--r--apps/settings/l10n/es_PE.js82
-rw-r--r--apps/settings/l10n/es_PE.json82
-rw-r--r--apps/settings/l10n/es_PR.js82
-rw-r--r--apps/settings/l10n/es_PR.json82
-rw-r--r--apps/settings/l10n/es_PY.js82
-rw-r--r--apps/settings/l10n/es_PY.json82
-rw-r--r--apps/settings/l10n/es_SV.js84
-rw-r--r--apps/settings/l10n/es_SV.json84
-rw-r--r--apps/settings/l10n/es_UY.js81
-rw-r--r--apps/settings/l10n/es_UY.json81
-rw-r--r--apps/settings/l10n/et_EE.js372
-rw-r--r--apps/settings/l10n/et_EE.json372
-rw-r--r--apps/settings/l10n/eu.js313
-rw-r--r--apps/settings/l10n/eu.json313
-rw-r--r--apps/settings/l10n/fa.js220
-rw-r--r--apps/settings/l10n/fa.json220
-rw-r--r--apps/settings/l10n/fi.js240
-rw-r--r--apps/settings/l10n/fi.json240
-rw-r--r--apps/settings/l10n/fo.js105
-rw-r--r--apps/settings/l10n/fo.json103
-rw-r--r--apps/settings/l10n/fr.js353
-rw-r--r--apps/settings/l10n/fr.json353
-rw-r--r--apps/settings/l10n/ga.js349
-rw-r--r--apps/settings/l10n/ga.json349
-rw-r--r--apps/settings/l10n/gl.js339
-rw-r--r--apps/settings/l10n/gl.json339
-rw-r--r--apps/settings/l10n/he.js121
-rw-r--r--apps/settings/l10n/he.json121
-rw-r--r--apps/settings/l10n/hr.js151
-rw-r--r--apps/settings/l10n/hr.json151
-rw-r--r--apps/settings/l10n/hu.js271
-rw-r--r--apps/settings/l10n/hu.json271
-rw-r--r--apps/settings/l10n/ia.js134
-rw-r--r--apps/settings/l10n/ia.json132
-rw-r--r--apps/settings/l10n/id.js108
-rw-r--r--apps/settings/l10n/id.json108
-rw-r--r--apps/settings/l10n/is.js309
-rw-r--r--apps/settings/l10n/is.json309
-rw-r--r--apps/settings/l10n/it.js257
-rw-r--r--apps/settings/l10n/it.json257
-rw-r--r--apps/settings/l10n/ja.js349
-rw-r--r--apps/settings/l10n/ja.json349
-rw-r--r--apps/settings/l10n/ka.js225
-rw-r--r--apps/settings/l10n/ka.json225
-rw-r--r--apps/settings/l10n/ka_GE.js82
-rw-r--r--apps/settings/l10n/ka_GE.json82
-rw-r--r--apps/settings/l10n/ko.js265
-rw-r--r--apps/settings/l10n/ko.json265
-rw-r--r--apps/settings/l10n/lt_LT.js210
-rw-r--r--apps/settings/l10n/lt_LT.json210
-rw-r--r--apps/settings/l10n/lv.js103
-rw-r--r--apps/settings/l10n/lv.json103
-rw-r--r--apps/settings/l10n/mk.js205
-rw-r--r--apps/settings/l10n/mk.json205
-rw-r--r--apps/settings/l10n/mn.js111
-rw-r--r--apps/settings/l10n/mn.json109
-rw-r--r--apps/settings/l10n/nb.js313
-rw-r--r--apps/settings/l10n/nb.json313
-rw-r--r--apps/settings/l10n/nl.js271
-rw-r--r--apps/settings/l10n/nl.json271
-rw-r--r--apps/settings/l10n/nn_NO.js122
-rw-r--r--apps/settings/l10n/nn_NO.json120
-rw-r--r--apps/settings/l10n/oc.js101
-rw-r--r--apps/settings/l10n/oc.json101
-rw-r--r--apps/settings/l10n/pl.js301
-rw-r--r--apps/settings/l10n/pl.json301
-rw-r--r--apps/settings/l10n/pt_BR.js353
-rw-r--r--apps/settings/l10n/pt_BR.json353
-rw-r--r--apps/settings/l10n/pt_PT.js107
-rw-r--r--apps/settings/l10n/pt_PT.json107
-rw-r--r--apps/settings/l10n/ro.js81
-rw-r--r--apps/settings/l10n/ro.json81
-rw-r--r--apps/settings/l10n/ru.js354
-rw-r--r--apps/settings/l10n/ru.json354
-rw-r--r--apps/settings/l10n/sc.js147
-rw-r--r--apps/settings/l10n/sc.json147
-rw-r--r--apps/settings/l10n/sk.js341
-rw-r--r--apps/settings/l10n/sk.json341
-rw-r--r--apps/settings/l10n/sl.js285
-rw-r--r--apps/settings/l10n/sl.json285
-rw-r--r--apps/settings/l10n/sq.js86
-rw-r--r--apps/settings/l10n/sq.json86
-rw-r--r--apps/settings/l10n/sr.js349
-rw-r--r--apps/settings/l10n/sr.json349
-rw-r--r--apps/settings/l10n/sv.js302
-rw-r--r--apps/settings/l10n/sv.json302
-rw-r--r--apps/settings/l10n/th.js116
-rw-r--r--apps/settings/l10n/th.json116
-rw-r--r--apps/settings/l10n/tr.js441
-rw-r--r--apps/settings/l10n/tr.json441
-rw-r--r--apps/settings/l10n/ug.js304
-rw-r--r--apps/settings/l10n/ug.json304
-rw-r--r--apps/settings/l10n/uk.js295
-rw-r--r--apps/settings/l10n/uk.json295
-rw-r--r--apps/settings/l10n/vi.js213
-rw-r--r--apps/settings/l10n/vi.json213
-rw-r--r--apps/settings/l10n/zh_CN.js349
-rw-r--r--apps/settings/l10n/zh_CN.json349
-rw-r--r--apps/settings/l10n/zh_HK.js349
-rw-r--r--apps/settings/l10n/zh_HK.json349
-rw-r--r--apps/settings/l10n/zh_TW.js349
-rw-r--r--apps/settings/l10n/zh_TW.json349
-rw-r--r--apps/settings/lib/AppInfo/Application.php2
-rw-r--r--apps/settings/lib/Controller/CommonSettingsTrait.php8
-rw-r--r--apps/settings/lib/Controller/DeclarativeSettingsController.php40
-rw-r--r--apps/settings/lib/ResponseDefinitions.php1
-rw-r--r--apps/settings/lib/Settings/Admin/Mail.php3
-rw-r--r--apps/settings/lib/Settings/Personal/PersonalInfo.php5
-rw-r--r--apps/settings/lib/SetupChecks/MimeTypeMigrationAvailable.php5
-rw-r--r--apps/settings/lib/SetupChecks/SecurityHeaders.php5
-rw-r--r--apps/settings/lib/SetupChecks/TaskProcessingPickupSpeed.php63
-rw-r--r--apps/settings/lib/UserMigration/AccountMigrator.php5
-rw-r--r--apps/settings/openapi-full.json137
-rw-r--r--apps/settings/openapi.json137
-rw-r--r--apps/settings/src/components/AppList.vue10
-rw-r--r--apps/settings/src/components/AppNavigationGroupList.vue16
-rw-r--r--apps/settings/src/components/DeclarativeSettings/DeclarativeSection.vue15
-rw-r--r--apps/settings/src/components/GroupListItem.vue6
-rw-r--r--apps/settings/src/components/PersonalInfo/PronounsSection.vue24
-rw-r--r--apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue3
-rw-r--r--apps/settings/src/components/Users/NewUserDialog.vue29
-rw-r--r--apps/settings/src/components/Users/UserRow.vue68
-rw-r--r--apps/settings/src/composables/useGroupsNavigation.ts8
-rw-r--r--apps/settings/src/main-declarative-settings-forms.ts1
-rw-r--r--apps/settings/src/mixins/UserRowMixin.js4
-rw-r--r--apps/settings/src/store/users.js35
-rw-r--r--apps/settings/tests/Activity/SecurityFilterTest.php12
-rw-r--r--apps/settings/tests/Activity/SecurityProviderTest.php28
-rw-r--r--apps/settings/tests/Activity/SecuritySettingTest.php4
-rw-r--r--apps/settings/tests/AppInfo/ApplicationTest.php15
-rw-r--r--apps/settings/tests/Controller/AppSettingsControllerTest.php48
-rw-r--r--apps/settings/tests/Controller/AuthSettingsControllerTest.php39
-rw-r--r--apps/settings/tests/Controller/CheckSetupControllerTest.php67
-rw-r--r--apps/settings/tests/Controller/DelegationControllerTest.php21
-rw-r--r--apps/settings/tests/Controller/MailSettingsControllerTest.php82
-rw-r--r--apps/settings/tests/Controller/TwoFactorSettingsControllerTest.php14
-rw-r--r--apps/settings/tests/Controller/UsersControllerTest.php122
-rw-r--r--apps/settings/tests/Mailer/NewUserMailHelperTest.php41
-rw-r--r--apps/settings/tests/Middleware/SubadminMiddlewareTest.php23
-rw-r--r--apps/settings/tests/Settings/Admin/MailTest.php4
-rw-r--r--apps/settings/tests/Settings/Admin/SecurityTest.php27
-rw-r--r--apps/settings/tests/Settings/Admin/ServerTest.php27
-rw-r--r--apps/settings/tests/Settings/Admin/SharingTest.php40
-rw-r--r--apps/settings/tests/Settings/Personal/Security/AuthtokensTest.php81
-rw-r--r--apps/settings/tests/Settings/Personal/Security/PasswordTest.php12
-rw-r--r--apps/settings/tests/SetupChecks/AppDirsWithDifferentOwnerTest.php5
-rw-r--r--apps/settings/tests/SetupChecks/CodeIntegrityTest.php7
-rw-r--r--apps/settings/tests/SetupChecks/DataDirectoryProtectedTest.php6
-rw-r--r--apps/settings/tests/SetupChecks/ForwardedForHeadersTest.php7
-rw-r--r--apps/settings/tests/SetupChecks/LoggingLevelTest.php4
-rw-r--r--apps/settings/tests/SetupChecks/OcxProvicersTest.php6
-rw-r--r--apps/settings/tests/SetupChecks/PhpDefaultCharsetTest.php5
-rw-r--r--apps/settings/tests/SetupChecks/PhpOutputBufferingTest.php5
-rw-r--r--apps/settings/tests/SetupChecks/SecurityHeadersTest.php31
-rw-r--r--apps/settings/tests/SetupChecks/SupportedDatabaseTest.php8
-rw-r--r--apps/settings/tests/SetupChecks/TaskProcessingPickupSpeedTest.php73
-rw-r--r--apps/settings/tests/SetupChecks/WellKnownUrlsTest.php21
-rw-r--r--apps/settings/tests/UserMigration/AccountMigratorTest.php49
-rw-r--r--apps/sharebymail/l10n/ar.js13
-rw-r--r--apps/sharebymail/l10n/ar.json13
-rw-r--r--apps/sharebymail/l10n/ast.js13
-rw-r--r--apps/sharebymail/l10n/ast.json13
-rw-r--r--apps/sharebymail/l10n/bg.js13
-rw-r--r--apps/sharebymail/l10n/bg.json13
-rw-r--r--apps/sharebymail/l10n/ca.js13
-rw-r--r--apps/sharebymail/l10n/ca.json13
-rw-r--r--apps/sharebymail/l10n/cs.js13
-rw-r--r--apps/sharebymail/l10n/cs.json13
-rw-r--r--apps/sharebymail/l10n/da.js13
-rw-r--r--apps/sharebymail/l10n/da.json13
-rw-r--r--apps/sharebymail/l10n/de.js15
-rw-r--r--apps/sharebymail/l10n/de.json15
-rw-r--r--apps/sharebymail/l10n/de_DE.js15
-rw-r--r--apps/sharebymail/l10n/de_DE.json15
-rw-r--r--apps/sharebymail/l10n/el.js13
-rw-r--r--apps/sharebymail/l10n/el.json13
-rw-r--r--apps/sharebymail/l10n/en_GB.js13
-rw-r--r--apps/sharebymail/l10n/en_GB.json13
-rw-r--r--apps/sharebymail/l10n/es.js13
-rw-r--r--apps/sharebymail/l10n/es.json13
-rw-r--r--apps/sharebymail/l10n/es_419.js31
-rw-r--r--apps/sharebymail/l10n/es_419.json29
-rw-r--r--apps/sharebymail/l10n/es_AR.js13
-rw-r--r--apps/sharebymail/l10n/es_AR.json13
-rw-r--r--apps/sharebymail/l10n/es_CL.js31
-rw-r--r--apps/sharebymail/l10n/es_CL.json29
-rw-r--r--apps/sharebymail/l10n/es_CO.js31
-rw-r--r--apps/sharebymail/l10n/es_CO.json29
-rw-r--r--apps/sharebymail/l10n/es_CR.js31
-rw-r--r--apps/sharebymail/l10n/es_CR.json29
-rw-r--r--apps/sharebymail/l10n/es_DO.js31
-rw-r--r--apps/sharebymail/l10n/es_DO.json29
-rw-r--r--apps/sharebymail/l10n/es_EC.js13
-rw-r--r--apps/sharebymail/l10n/es_EC.json13
-rw-r--r--apps/sharebymail/l10n/es_GT.js31
-rw-r--r--apps/sharebymail/l10n/es_GT.json29
-rw-r--r--apps/sharebymail/l10n/es_HN.js31
-rw-r--r--apps/sharebymail/l10n/es_HN.json29
-rw-r--r--apps/sharebymail/l10n/es_MX.js13
-rw-r--r--apps/sharebymail/l10n/es_MX.json13
-rw-r--r--apps/sharebymail/l10n/es_NI.js31
-rw-r--r--apps/sharebymail/l10n/es_NI.json29
-rw-r--r--apps/sharebymail/l10n/es_PA.js31
-rw-r--r--apps/sharebymail/l10n/es_PA.json29
-rw-r--r--apps/sharebymail/l10n/es_PE.js31
-rw-r--r--apps/sharebymail/l10n/es_PE.json29
-rw-r--r--apps/sharebymail/l10n/es_PR.js31
-rw-r--r--apps/sharebymail/l10n/es_PR.json29
-rw-r--r--apps/sharebymail/l10n/es_PY.js31
-rw-r--r--apps/sharebymail/l10n/es_PY.json29
-rw-r--r--apps/sharebymail/l10n/es_SV.js31
-rw-r--r--apps/sharebymail/l10n/es_SV.json29
-rw-r--r--apps/sharebymail/l10n/es_UY.js31
-rw-r--r--apps/sharebymail/l10n/es_UY.json29
-rw-r--r--apps/sharebymail/l10n/et_EE.js39
-rw-r--r--apps/sharebymail/l10n/et_EE.json39
-rw-r--r--apps/sharebymail/l10n/eu.js13
-rw-r--r--apps/sharebymail/l10n/eu.json13
-rw-r--r--apps/sharebymail/l10n/fa.js19
-rw-r--r--apps/sharebymail/l10n/fa.json19
-rw-r--r--apps/sharebymail/l10n/fi.js10
-rw-r--r--apps/sharebymail/l10n/fi.json10
-rw-r--r--apps/sharebymail/l10n/fr.js13
-rw-r--r--apps/sharebymail/l10n/fr.json13
-rw-r--r--apps/sharebymail/l10n/ga.js13
-rw-r--r--apps/sharebymail/l10n/ga.json13
-rw-r--r--apps/sharebymail/l10n/gl.js13
-rw-r--r--apps/sharebymail/l10n/gl.json13
-rw-r--r--apps/sharebymail/l10n/he.js13
-rw-r--r--apps/sharebymail/l10n/he.json13
-rw-r--r--apps/sharebymail/l10n/hr.js13
-rw-r--r--apps/sharebymail/l10n/hr.json13
-rw-r--r--apps/sharebymail/l10n/hu.js13
-rw-r--r--apps/sharebymail/l10n/hu.json13
-rw-r--r--apps/sharebymail/l10n/ia.js24
-rw-r--r--apps/sharebymail/l10n/ia.json22
-rw-r--r--apps/sharebymail/l10n/id.js24
-rw-r--r--apps/sharebymail/l10n/id.json22
-rw-r--r--apps/sharebymail/l10n/is.js13
-rw-r--r--apps/sharebymail/l10n/is.json13
-rw-r--r--apps/sharebymail/l10n/it.js13
-rw-r--r--apps/sharebymail/l10n/it.json13
-rw-r--r--apps/sharebymail/l10n/ja.js13
-rw-r--r--apps/sharebymail/l10n/ja.json13
-rw-r--r--apps/sharebymail/l10n/ka.js13
-rw-r--r--apps/sharebymail/l10n/ka.json13
-rw-r--r--apps/sharebymail/l10n/ka_GE.js31
-rw-r--r--apps/sharebymail/l10n/ka_GE.json29
-rw-r--r--apps/sharebymail/l10n/ko.js31
-rw-r--r--apps/sharebymail/l10n/ko.json29
-rw-r--r--apps/sharebymail/l10n/lt_LT.js13
-rw-r--r--apps/sharebymail/l10n/lt_LT.json13
-rw-r--r--apps/sharebymail/l10n/mk.js13
-rw-r--r--apps/sharebymail/l10n/mk.json13
-rw-r--r--apps/sharebymail/l10n/nb.js13
-rw-r--r--apps/sharebymail/l10n/nb.json13
-rw-r--r--apps/sharebymail/l10n/nl.js29
-rw-r--r--apps/sharebymail/l10n/nl.json29
-rw-r--r--apps/sharebymail/l10n/pl.js17
-rw-r--r--apps/sharebymail/l10n/pl.json17
-rw-r--r--apps/sharebymail/l10n/pt_BR.js13
-rw-r--r--apps/sharebymail/l10n/pt_BR.json13
-rw-r--r--apps/sharebymail/l10n/pt_PT.js36
-rw-r--r--apps/sharebymail/l10n/pt_PT.json34
-rw-r--r--apps/sharebymail/l10n/ro.js27
-rw-r--r--apps/sharebymail/l10n/ro.json25
-rw-r--r--apps/sharebymail/l10n/ru.js23
-rw-r--r--apps/sharebymail/l10n/ru.json23
-rw-r--r--apps/sharebymail/l10n/sc.js13
-rw-r--r--apps/sharebymail/l10n/sc.json13
-rw-r--r--apps/sharebymail/l10n/sk.js13
-rw-r--r--apps/sharebymail/l10n/sk.json13
-rw-r--r--apps/sharebymail/l10n/sl.js13
-rw-r--r--apps/sharebymail/l10n/sl.json13
-rw-r--r--apps/sharebymail/l10n/sq.js31
-rw-r--r--apps/sharebymail/l10n/sq.json29
-rw-r--r--apps/sharebymail/l10n/sr.js13
-rw-r--r--apps/sharebymail/l10n/sr.json13
-rw-r--r--apps/sharebymail/l10n/sv.js13
-rw-r--r--apps/sharebymail/l10n/sv.json13
-rw-r--r--apps/sharebymail/l10n/tr.js13
-rw-r--r--apps/sharebymail/l10n/tr.json13
-rw-r--r--apps/sharebymail/l10n/ug.js13
-rw-r--r--apps/sharebymail/l10n/ug.json13
-rw-r--r--apps/sharebymail/l10n/uk.js13
-rw-r--r--apps/sharebymail/l10n/uk.json13
-rw-r--r--apps/sharebymail/l10n/zh_CN.js13
-rw-r--r--apps/sharebymail/l10n/zh_CN.json13
-rw-r--r--apps/sharebymail/l10n/zh_HK.js13
-rw-r--r--apps/sharebymail/l10n/zh_HK.json13
-rw-r--r--apps/sharebymail/l10n/zh_TW.js13
-rw-r--r--apps/sharebymail/l10n/zh_TW.json13
-rw-r--r--apps/sharebymail/lib/ShareByMailProvider.php37
-rw-r--r--apps/sharebymail/tests/CapabilitiesTest.php19
-rw-r--r--apps/sharebymail/tests/ShareByMailProviderTest.php259
-rw-r--r--apps/systemtags/l10n/ar.js4
-rw-r--r--apps/systemtags/l10n/ar.json4
-rw-r--r--apps/systemtags/l10n/ast.js4
-rw-r--r--apps/systemtags/l10n/ast.json4
-rw-r--r--apps/systemtags/l10n/az.js11
-rw-r--r--apps/systemtags/l10n/az.json9
-rw-r--r--apps/systemtags/l10n/bn_BD.js9
-rw-r--r--apps/systemtags/l10n/bn_BD.json7
-rw-r--r--apps/systemtags/l10n/bs.js8
-rw-r--r--apps/systemtags/l10n/bs.json6
-rw-r--r--apps/systemtags/l10n/ca.js4
-rw-r--r--apps/systemtags/l10n/ca.json4
-rw-r--r--apps/systemtags/l10n/cs.js4
-rw-r--r--apps/systemtags/l10n/cs.json4
-rw-r--r--apps/systemtags/l10n/cy_GB.js9
-rw-r--r--apps/systemtags/l10n/cy_GB.json7
-rw-r--r--apps/systemtags/l10n/da.js4
-rw-r--r--apps/systemtags/l10n/da.json4
-rw-r--r--apps/systemtags/l10n/de.js6
-rw-r--r--apps/systemtags/l10n/de.json6
-rw-r--r--apps/systemtags/l10n/de_DE.js6
-rw-r--r--apps/systemtags/l10n/de_DE.json6
-rw-r--r--apps/systemtags/l10n/el.js4
-rw-r--r--apps/systemtags/l10n/el.json4
-rw-r--r--apps/systemtags/l10n/en_GB.js4
-rw-r--r--apps/systemtags/l10n/en_GB.json4
-rw-r--r--apps/systemtags/l10n/eo.js62
-rw-r--r--apps/systemtags/l10n/eo.json60
-rw-r--r--apps/systemtags/l10n/es.js4
-rw-r--r--apps/systemtags/l10n/es.json4
-rw-r--r--apps/systemtags/l10n/es_419.js52
-rw-r--r--apps/systemtags/l10n/es_419.json50
-rw-r--r--apps/systemtags/l10n/es_AR.js52
-rw-r--r--apps/systemtags/l10n/es_AR.json50
-rw-r--r--apps/systemtags/l10n/es_CL.js52
-rw-r--r--apps/systemtags/l10n/es_CL.json50
-rw-r--r--apps/systemtags/l10n/es_CO.js52
-rw-r--r--apps/systemtags/l10n/es_CO.json50
-rw-r--r--apps/systemtags/l10n/es_CR.js52
-rw-r--r--apps/systemtags/l10n/es_CR.json50
-rw-r--r--apps/systemtags/l10n/es_DO.js52
-rw-r--r--apps/systemtags/l10n/es_DO.json50
-rw-r--r--apps/systemtags/l10n/es_EC.js4
-rw-r--r--apps/systemtags/l10n/es_EC.json4
-rw-r--r--apps/systemtags/l10n/es_GT.js52
-rw-r--r--apps/systemtags/l10n/es_GT.json50
-rw-r--r--apps/systemtags/l10n/es_HN.js52
-rw-r--r--apps/systemtags/l10n/es_HN.json50
-rw-r--r--apps/systemtags/l10n/es_MX.js4
-rw-r--r--apps/systemtags/l10n/es_MX.json4
-rw-r--r--apps/systemtags/l10n/es_NI.js52
-rw-r--r--apps/systemtags/l10n/es_NI.json50
-rw-r--r--apps/systemtags/l10n/es_PA.js52
-rw-r--r--apps/systemtags/l10n/es_PA.json50
-rw-r--r--apps/systemtags/l10n/es_PE.js52
-rw-r--r--apps/systemtags/l10n/es_PE.json50
-rw-r--r--apps/systemtags/l10n/es_PR.js52
-rw-r--r--apps/systemtags/l10n/es_PR.json50
-rw-r--r--apps/systemtags/l10n/es_PY.js52
-rw-r--r--apps/systemtags/l10n/es_PY.json50
-rw-r--r--apps/systemtags/l10n/es_SV.js52
-rw-r--r--apps/systemtags/l10n/es_SV.json50
-rw-r--r--apps/systemtags/l10n/es_UY.js52
-rw-r--r--apps/systemtags/l10n/es_UY.json50
-rw-r--r--apps/systemtags/l10n/et_EE.js6
-rw-r--r--apps/systemtags/l10n/et_EE.json6
-rw-r--r--apps/systemtags/l10n/eu.js4
-rw-r--r--apps/systemtags/l10n/eu.json4
-rw-r--r--apps/systemtags/l10n/fa.js5
-rw-r--r--apps/systemtags/l10n/fa.json5
-rw-r--r--apps/systemtags/l10n/fi.js4
-rw-r--r--apps/systemtags/l10n/fi.json4
-rw-r--r--apps/systemtags/l10n/fr.js4
-rw-r--r--apps/systemtags/l10n/fr.json4
-rw-r--r--apps/systemtags/l10n/ga.js4
-rw-r--r--apps/systemtags/l10n/ga.json4
-rw-r--r--apps/systemtags/l10n/gl.js4
-rw-r--r--apps/systemtags/l10n/gl.json4
-rw-r--r--apps/systemtags/l10n/hr.js58
-rw-r--r--apps/systemtags/l10n/hr.json56
-rw-r--r--apps/systemtags/l10n/hu.js4
-rw-r--r--apps/systemtags/l10n/hu.json4
-rw-r--r--apps/systemtags/l10n/hy.js9
-rw-r--r--apps/systemtags/l10n/hy.json7
-rw-r--r--apps/systemtags/l10n/ia.js51
-rw-r--r--apps/systemtags/l10n/ia.json49
-rw-r--r--apps/systemtags/l10n/id.js42
-rw-r--r--apps/systemtags/l10n/id.json40
-rw-r--r--apps/systemtags/l10n/is.js4
-rw-r--r--apps/systemtags/l10n/is.json4
-rw-r--r--apps/systemtags/l10n/it.js4
-rw-r--r--apps/systemtags/l10n/it.json4
-rw-r--r--apps/systemtags/l10n/ja.js4
-rw-r--r--apps/systemtags/l10n/ja.json4
-rw-r--r--apps/systemtags/l10n/ka.js4
-rw-r--r--apps/systemtags/l10n/ka.json4
-rw-r--r--apps/systemtags/l10n/ka_GE.js52
-rw-r--r--apps/systemtags/l10n/ka_GE.json50
-rw-r--r--apps/systemtags/l10n/km.js9
-rw-r--r--apps/systemtags/l10n/km.json7
-rw-r--r--apps/systemtags/l10n/kn.js8
-rw-r--r--apps/systemtags/l10n/kn.json6
-rw-r--r--apps/systemtags/l10n/ko.js4
-rw-r--r--apps/systemtags/l10n/ko.json4
-rw-r--r--apps/systemtags/l10n/lb.js32
-rw-r--r--apps/systemtags/l10n/lb.json30
-rw-r--r--apps/systemtags/l10n/lt_LT.js3
-rw-r--r--apps/systemtags/l10n/lt_LT.json3
-rw-r--r--apps/systemtags/l10n/lv.js9
-rw-r--r--apps/systemtags/l10n/lv.json9
-rw-r--r--apps/systemtags/l10n/mk.js4
-rw-r--r--apps/systemtags/l10n/mk.json4
-rw-r--r--apps/systemtags/l10n/ms_MY.js8
-rw-r--r--apps/systemtags/l10n/ms_MY.json6
-rw-r--r--apps/systemtags/l10n/nb.js4
-rw-r--r--apps/systemtags/l10n/nb.json4
-rw-r--r--apps/systemtags/l10n/nn_NO.js9
-rw-r--r--apps/systemtags/l10n/nn_NO.json7
-rw-r--r--apps/systemtags/l10n/oc.js12
-rw-r--r--apps/systemtags/l10n/oc.json10
-rw-r--r--apps/systemtags/l10n/pl.js4
-rw-r--r--apps/systemtags/l10n/pl.json4
-rw-r--r--apps/systemtags/l10n/pt_BR.js4
-rw-r--r--apps/systemtags/l10n/pt_BR.json4
-rw-r--r--apps/systemtags/l10n/pt_PT.js32
-rw-r--r--apps/systemtags/l10n/pt_PT.json30
-rw-r--r--apps/systemtags/l10n/ro.js32
-rw-r--r--apps/systemtags/l10n/ro.json30
-rw-r--r--apps/systemtags/l10n/ru.js26
-rw-r--r--apps/systemtags/l10n/ru.json26
-rw-r--r--apps/systemtags/l10n/sc.js61
-rw-r--r--apps/systemtags/l10n/sc.json59
-rw-r--r--apps/systemtags/l10n/sk.js4
-rw-r--r--apps/systemtags/l10n/sk.json4
-rw-r--r--apps/systemtags/l10n/sl.js4
-rw-r--r--apps/systemtags/l10n/sl.json4
-rw-r--r--apps/systemtags/l10n/sq.js52
-rw-r--r--apps/systemtags/l10n/sq.json50
-rw-r--r--apps/systemtags/l10n/sr.js4
-rw-r--r--apps/systemtags/l10n/sr.json4
-rw-r--r--apps/systemtags/l10n/sr@latin.js11
-rw-r--r--apps/systemtags/l10n/sr@latin.json9
-rw-r--r--apps/systemtags/l10n/sv.js4
-rw-r--r--apps/systemtags/l10n/sv.json4
-rw-r--r--apps/systemtags/l10n/th.js54
-rw-r--r--apps/systemtags/l10n/th.json52
-rw-r--r--apps/systemtags/l10n/tr.js6
-rw-r--r--apps/systemtags/l10n/tr.json6
-rw-r--r--apps/systemtags/l10n/ug.js4
-rw-r--r--apps/systemtags/l10n/ug.json4
-rw-r--r--apps/systemtags/l10n/uk.js4
-rw-r--r--apps/systemtags/l10n/uk.json4
-rw-r--r--apps/systemtags/l10n/ur_PK.js6
-rw-r--r--apps/systemtags/l10n/ur_PK.json4
-rw-r--r--apps/systemtags/l10n/vi.js61
-rw-r--r--apps/systemtags/l10n/vi.json59
-rw-r--r--apps/systemtags/l10n/zh_CN.js4
-rw-r--r--apps/systemtags/l10n/zh_CN.json4
-rw-r--r--apps/systemtags/l10n/zh_HK.js4
-rw-r--r--apps/systemtags/l10n/zh_HK.json4
-rw-r--r--apps/systemtags/l10n/zh_TW.js4
-rw-r--r--apps/systemtags/l10n/zh_TW.json4
-rw-r--r--apps/systemtags/src/components/SystemTagPicker.vue2
-rw-r--r--apps/systemtags/src/components/SystemTags.vue91
-rw-r--r--apps/systemtags/src/components/SystemTagsCreationControl.vue14
-rw-r--r--apps/systemtags/src/services/HotKeysService.spec.ts19
-rw-r--r--apps/testing/composer/composer/autoload_classmap.php1
-rw-r--r--apps/testing/composer/composer/autoload_static.php1
-rw-r--r--apps/testing/lib/AppInfo/Application.php5
-rw-r--r--apps/testing/lib/HiddenGroupBackend.php47
-rw-r--r--apps/testing/lib/Settings/DeclarativeSettingsForm.php30
-rw-r--r--apps/theming/l10n/af.js48
-rw-r--r--apps/theming/l10n/af.json46
-rw-r--r--apps/theming/l10n/ar.js7
-rw-r--r--apps/theming/l10n/ar.json7
-rw-r--r--apps/theming/l10n/ast.js7
-rw-r--r--apps/theming/l10n/ast.json7
-rw-r--r--apps/theming/l10n/bg.js7
-rw-r--r--apps/theming/l10n/bg.json7
-rw-r--r--apps/theming/l10n/ca.js7
-rw-r--r--apps/theming/l10n/ca.json7
-rw-r--r--apps/theming/l10n/cs.js7
-rw-r--r--apps/theming/l10n/cs.json7
-rw-r--r--apps/theming/l10n/da.js7
-rw-r--r--apps/theming/l10n/da.json7
-rw-r--r--apps/theming/l10n/de.js15
-rw-r--r--apps/theming/l10n/de.json15
-rw-r--r--apps/theming/l10n/de_DE.js15
-rw-r--r--apps/theming/l10n/de_DE.json15
-rw-r--r--apps/theming/l10n/el.js6
-rw-r--r--apps/theming/l10n/el.json6
-rw-r--r--apps/theming/l10n/en_GB.js7
-rw-r--r--apps/theming/l10n/en_GB.json7
-rw-r--r--apps/theming/l10n/eo.js64
-rw-r--r--apps/theming/l10n/eo.json62
-rw-r--r--apps/theming/l10n/es.js7
-rw-r--r--apps/theming/l10n/es.json7
-rw-r--r--apps/theming/l10n/es_419.js36
-rw-r--r--apps/theming/l10n/es_419.json34
-rw-r--r--apps/theming/l10n/es_AR.js41
-rw-r--r--apps/theming/l10n/es_AR.json39
-rw-r--r--apps/theming/l10n/es_CL.js56
-rw-r--r--apps/theming/l10n/es_CL.json54
-rw-r--r--apps/theming/l10n/es_CO.js57
-rw-r--r--apps/theming/l10n/es_CO.json55
-rw-r--r--apps/theming/l10n/es_CR.js57
-rw-r--r--apps/theming/l10n/es_CR.json55
-rw-r--r--apps/theming/l10n/es_DO.js57
-rw-r--r--apps/theming/l10n/es_DO.json55
-rw-r--r--apps/theming/l10n/es_EC.js7
-rw-r--r--apps/theming/l10n/es_EC.json7
-rw-r--r--apps/theming/l10n/es_GT.js57
-rw-r--r--apps/theming/l10n/es_GT.json55
-rw-r--r--apps/theming/l10n/es_HN.js32
-rw-r--r--apps/theming/l10n/es_HN.json30
-rw-r--r--apps/theming/l10n/es_MX.js7
-rw-r--r--apps/theming/l10n/es_MX.json7
-rw-r--r--apps/theming/l10n/es_NI.js32
-rw-r--r--apps/theming/l10n/es_NI.json30
-rw-r--r--apps/theming/l10n/es_PA.js32
-rw-r--r--apps/theming/l10n/es_PA.json30
-rw-r--r--apps/theming/l10n/es_PE.js32
-rw-r--r--apps/theming/l10n/es_PE.json30
-rw-r--r--apps/theming/l10n/es_PR.js32
-rw-r--r--apps/theming/l10n/es_PR.json30
-rw-r--r--apps/theming/l10n/es_PY.js32
-rw-r--r--apps/theming/l10n/es_PY.json30
-rw-r--r--apps/theming/l10n/es_SV.js48
-rw-r--r--apps/theming/l10n/es_SV.json46
-rw-r--r--apps/theming/l10n/es_UY.js32
-rw-r--r--apps/theming/l10n/es_UY.json30
-rw-r--r--apps/theming/l10n/et_EE.js9
-rw-r--r--apps/theming/l10n/et_EE.json9
-rw-r--r--apps/theming/l10n/eu.js7
-rw-r--r--apps/theming/l10n/eu.json7
-rw-r--r--apps/theming/l10n/fa.js7
-rw-r--r--apps/theming/l10n/fa.json7
-rw-r--r--apps/theming/l10n/fi.js7
-rw-r--r--apps/theming/l10n/fi.json7
-rw-r--r--apps/theming/l10n/fr.js8
-rw-r--r--apps/theming/l10n/fr.json8
-rw-r--r--apps/theming/l10n/ga.js7
-rw-r--r--apps/theming/l10n/ga.json7
-rw-r--r--apps/theming/l10n/gl.js7
-rw-r--r--apps/theming/l10n/gl.json7
-rw-r--r--apps/theming/l10n/he.js62
-rw-r--r--apps/theming/l10n/he.json60
-rw-r--r--apps/theming/l10n/hr.js63
-rw-r--r--apps/theming/l10n/hr.json61
-rw-r--r--apps/theming/l10n/hu.js13
-rw-r--r--apps/theming/l10n/hu.json13
-rw-r--r--apps/theming/l10n/id.js41
-rw-r--r--apps/theming/l10n/id.json39
-rw-r--r--apps/theming/l10n/is.js7
-rw-r--r--apps/theming/l10n/is.json7
-rw-r--r--apps/theming/l10n/it.js7
-rw-r--r--apps/theming/l10n/it.json7
-rw-r--r--apps/theming/l10n/ja.js7
-rw-r--r--apps/theming/l10n/ja.json7
-rw-r--r--apps/theming/l10n/ka.js7
-rw-r--r--apps/theming/l10n/ka.json7
-rw-r--r--apps/theming/l10n/ka_GE.js46
-rw-r--r--apps/theming/l10n/ka_GE.json44
-rw-r--r--apps/theming/l10n/ko.js7
-rw-r--r--apps/theming/l10n/ko.json7
-rw-r--r--apps/theming/l10n/lt_LT.js6
-rw-r--r--apps/theming/l10n/lt_LT.json6
-rw-r--r--apps/theming/l10n/lv.js40
-rw-r--r--apps/theming/l10n/lv.json38
-rw-r--r--apps/theming/l10n/mk.js7
-rw-r--r--apps/theming/l10n/mk.json7
-rw-r--r--apps/theming/l10n/mn.js29
-rw-r--r--apps/theming/l10n/mn.json27
-rw-r--r--apps/theming/l10n/nb.js7
-rw-r--r--apps/theming/l10n/nb.json7
-rw-r--r--apps/theming/l10n/nl.js11
-rw-r--r--apps/theming/l10n/nl.json11
-rw-r--r--apps/theming/l10n/pl.js7
-rw-r--r--apps/theming/l10n/pl.json7
-rw-r--r--apps/theming/l10n/pt_BR.js41
-rw-r--r--apps/theming/l10n/pt_BR.json41
-rw-r--r--apps/theming/l10n/pt_PT.js67
-rw-r--r--apps/theming/l10n/pt_PT.json65
-rw-r--r--apps/theming/l10n/ru.js8
-rw-r--r--apps/theming/l10n/ru.json8
-rw-r--r--apps/theming/l10n/sc.js7
-rw-r--r--apps/theming/l10n/sc.json7
-rw-r--r--apps/theming/l10n/sk.js7
-rw-r--r--apps/theming/l10n/sk.json7
-rw-r--r--apps/theming/l10n/sl.js7
-rw-r--r--apps/theming/l10n/sl.json7
-rw-r--r--apps/theming/l10n/sq.js41
-rw-r--r--apps/theming/l10n/sq.json39
-rw-r--r--apps/theming/l10n/sr.js7
-rw-r--r--apps/theming/l10n/sr.json7
-rw-r--r--apps/theming/l10n/sv.js7
-rw-r--r--apps/theming/l10n/sv.json7
-rw-r--r--apps/theming/l10n/tr.js17
-rw-r--r--apps/theming/l10n/tr.json17
-rw-r--r--apps/theming/l10n/ug.js7
-rw-r--r--apps/theming/l10n/ug.json7
-rw-r--r--apps/theming/l10n/uk.js7
-rw-r--r--apps/theming/l10n/uk.json7
-rw-r--r--apps/theming/l10n/vi.js7
-rw-r--r--apps/theming/l10n/vi.json7
-rw-r--r--apps/theming/l10n/zh_CN.js7
-rw-r--r--apps/theming/l10n/zh_CN.json7
-rw-r--r--apps/theming/l10n/zh_HK.js7
-rw-r--r--apps/theming/l10n/zh_HK.json7
-rw-r--r--apps/theming/l10n/zh_TW.js7
-rw-r--r--apps/theming/l10n/zh_TW.json7
-rw-r--r--apps/theming/lib/Capabilities.php2
-rw-r--r--apps/theming/lib/IconBuilder.php15
-rw-r--r--apps/theming/openapi.json5
-rw-r--r--apps/theming/tests/CapabilitiesTest.php44
-rw-r--r--apps/theming/tests/Controller/IconControllerTest.php30
-rw-r--r--apps/theming/tests/Controller/ThemingControllerTest.php48
-rw-r--r--apps/theming/tests/Controller/UserThemeControllerTest.php38
-rw-r--r--apps/theming/tests/IconBuilderTest.php52
-rw-r--r--apps/theming/tests/ImageManagerTest.php36
-rw-r--r--apps/theming/tests/Service/ThemesServiceTest.php33
-rw-r--r--apps/theming/tests/ServicesTest.php16
-rw-r--r--apps/theming/tests/Settings/AdminSectionTest.php12
-rw-r--r--apps/theming/tests/Settings/AdminTest.php17
-rw-r--r--apps/theming/tests/Settings/PersonalTest.php10
-rw-r--r--apps/theming/tests/Themes/AccessibleThemeTestCase.php10
-rw-r--r--apps/theming/tests/Themes/DarkHighContrastThemeTest.php23
-rw-r--r--apps/theming/tests/Themes/DarkThemeTest.php23
-rw-r--r--apps/theming/tests/Themes/DefaultThemeTest.php23
-rw-r--r--apps/theming/tests/Themes/DyslexiaFontTest.php30
-rw-r--r--apps/theming/tests/Themes/HighContrastThemeTest.php25
-rw-r--r--apps/theming/tests/ThemingDefaultsTest.php66
-rw-r--r--apps/theming/tests/UtilTest.php22
-rw-r--r--apps/twofactor_backupcodes/l10n/af.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/af.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ar.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ar.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ast.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ast.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/bg.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/bg.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ca.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ca.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/cs.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/cs.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/da.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/da.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/de.js7
-rw-r--r--apps/twofactor_backupcodes/l10n/de.json7
-rw-r--r--apps/twofactor_backupcodes/l10n/de_DE.js7
-rw-r--r--apps/twofactor_backupcodes/l10n/de_DE.json7
-rw-r--r--apps/twofactor_backupcodes/l10n/el.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/el.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/en_GB.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/en_GB.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/eo.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/eo.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_419.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_419.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_AR.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_AR.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_CL.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_CL.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_CO.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_CO.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_CR.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_CR.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_DO.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_DO.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_EC.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_EC.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_GT.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_GT.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_HN.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_HN.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_MX.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_MX.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_NI.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_NI.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_PA.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_PA.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_PE.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_PE.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_PR.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_PR.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_PY.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_PY.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_SV.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_SV.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_UY.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/es_UY.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/et_EE.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/et_EE.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/eu.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/eu.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/fa.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/fa.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/fi.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/fi.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/fr.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/fr.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ga.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ga.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/gl.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/gl.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/hr.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/hr.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/hu.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/hu.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/is.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/is.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/it.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/it.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ja.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ja.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ka.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ka.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ka_GE.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ka_GE.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ko.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ko.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/lt_LT.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/lt_LT.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/lv.js5
-rw-r--r--apps/twofactor_backupcodes/l10n/lv.json5
-rw-r--r--apps/twofactor_backupcodes/l10n/mk.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/mk.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/mn.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/mn.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/nb.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/nb.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/nl.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/nl.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/pl.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/pl.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/pt_BR.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/pt_BR.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/pt_PT.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/pt_PT.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ru.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ru.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/sc.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/sc.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/sk.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/sk.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/sl.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/sl.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/sq.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/sq.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/sr.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/sr.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/sv.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/sv.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/tr.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/tr.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/ug.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/ug.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/uk.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/uk.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/zh_CN.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/zh_CN.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/zh_HK.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/zh_HK.json3
-rw-r--r--apps/twofactor_backupcodes/l10n/zh_TW.js3
-rw-r--r--apps/twofactor_backupcodes/l10n/zh_TW.json3
-rw-r--r--apps/twofactor_backupcodes/tests/Db/BackupCodeMapperTest.php12
-rw-r--r--apps/twofactor_backupcodes/tests/Service/BackupCodeStorageTest.php13
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php21
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/BackgroundJob/CheckBackupCodeTest.php24
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php25
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Controller/SettingsControllerTest.php27
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Listener/ActivityPublisherTest.php11
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php9
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Listener/ProviderDisabledTest.php5
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Listener/ProviderEnabledTest.php5
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Listener/RegistryUpdaterTest.php13
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Migration/CheckBackupCodeTest.php9
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Notification/NotifierTest.php19
-rw-r--r--apps/twofactor_backupcodes/tests/Unit/Service/BackupCodeStorageTest.php21
-rw-r--r--apps/updatenotification/composer/autoload.php5
-rw-r--r--apps/updatenotification/composer/composer/autoload_classmap.php1
-rw-r--r--apps/updatenotification/composer/composer/autoload_static.php1
-rw-r--r--apps/updatenotification/l10n/af.js25
-rw-r--r--apps/updatenotification/l10n/af.json23
-rw-r--r--apps/updatenotification/l10n/az.js7
-rw-r--r--apps/updatenotification/l10n/az.json5
-rw-r--r--apps/updatenotification/l10n/bn_BD.js6
-rw-r--r--apps/updatenotification/l10n/bn_BD.json4
-rw-r--r--apps/updatenotification/l10n/bs.js7
-rw-r--r--apps/updatenotification/l10n/bs.json5
-rw-r--r--apps/updatenotification/l10n/de.js4
-rw-r--r--apps/updatenotification/l10n/de.json4
-rw-r--r--apps/updatenotification/l10n/de_DE.js4
-rw-r--r--apps/updatenotification/l10n/de_DE.json4
-rw-r--r--apps/updatenotification/l10n/es_419.js27
-rw-r--r--apps/updatenotification/l10n/es_419.json25
-rw-r--r--apps/updatenotification/l10n/es_CL.js29
-rw-r--r--apps/updatenotification/l10n/es_CL.json27
-rw-r--r--apps/updatenotification/l10n/es_CO.js29
-rw-r--r--apps/updatenotification/l10n/es_CO.json27
-rw-r--r--apps/updatenotification/l10n/es_CR.js29
-rw-r--r--apps/updatenotification/l10n/es_CR.json27
-rw-r--r--apps/updatenotification/l10n/es_DO.js29
-rw-r--r--apps/updatenotification/l10n/es_DO.json27
-rw-r--r--apps/updatenotification/l10n/es_GT.js29
-rw-r--r--apps/updatenotification/l10n/es_GT.json27
-rw-r--r--apps/updatenotification/l10n/es_HN.js27
-rw-r--r--apps/updatenotification/l10n/es_HN.json25
-rw-r--r--apps/updatenotification/l10n/es_NI.js27
-rw-r--r--apps/updatenotification/l10n/es_NI.json25
-rw-r--r--apps/updatenotification/l10n/es_PA.js27
-rw-r--r--apps/updatenotification/l10n/es_PA.json25
-rw-r--r--apps/updatenotification/l10n/es_PE.js27
-rw-r--r--apps/updatenotification/l10n/es_PE.json25
-rw-r--r--apps/updatenotification/l10n/es_PR.js27
-rw-r--r--apps/updatenotification/l10n/es_PR.json25
-rw-r--r--apps/updatenotification/l10n/es_PY.js27
-rw-r--r--apps/updatenotification/l10n/es_PY.json25
-rw-r--r--apps/updatenotification/l10n/es_SV.js29
-rw-r--r--apps/updatenotification/l10n/es_SV.json27
-rw-r--r--apps/updatenotification/l10n/es_UY.js27
-rw-r--r--apps/updatenotification/l10n/es_UY.json25
-rw-r--r--apps/updatenotification/l10n/et_EE.js29
-rw-r--r--apps/updatenotification/l10n/et_EE.json29
-rw-r--r--apps/updatenotification/l10n/he.js32
-rw-r--r--apps/updatenotification/l10n/he.json30
-rw-r--r--apps/updatenotification/l10n/ia.js23
-rw-r--r--apps/updatenotification/l10n/ia.json21
-rw-r--r--apps/updatenotification/l10n/id.js23
-rw-r--r--apps/updatenotification/l10n/id.json21
-rw-r--r--apps/updatenotification/l10n/ka_GE.js29
-rw-r--r--apps/updatenotification/l10n/ka_GE.json27
-rw-r--r--apps/updatenotification/l10n/lb.js15
-rw-r--r--apps/updatenotification/l10n/lb.json13
-rw-r--r--apps/updatenotification/l10n/lv.js25
-rw-r--r--apps/updatenotification/l10n/lv.json23
-rw-r--r--apps/updatenotification/l10n/oc.js9
-rw-r--r--apps/updatenotification/l10n/oc.json7
-rw-r--r--apps/updatenotification/l10n/pt_PT.js17
-rw-r--r--apps/updatenotification/l10n/pt_PT.json15
-rw-r--r--apps/updatenotification/l10n/ro.js30
-rw-r--r--apps/updatenotification/l10n/ro.json28
-rw-r--r--apps/updatenotification/l10n/sq.js26
-rw-r--r--apps/updatenotification/l10n/sq.json24
-rw-r--r--apps/updatenotification/l10n/tr.js4
-rw-r--r--apps/updatenotification/l10n/tr.json4
-rw-r--r--apps/updatenotification/l10n/vi.js20
-rw-r--r--apps/updatenotification/l10n/vi.json18
-rw-r--r--apps/updatenotification/lib/AppInfo/Application.php2
-rw-r--r--apps/updatenotification/lib/BackgroundJob/UpdateAvailableNotifications.php47
-rw-r--r--apps/updatenotification/lib/Command/Check.php16
-rw-r--r--apps/updatenotification/lib/Controller/APIController.php19
-rw-r--r--apps/updatenotification/lib/Controller/AdminController.php5
-rw-r--r--apps/updatenotification/lib/Manager.php2
-rw-r--r--apps/updatenotification/lib/Migration/Version011901Date20240305120000.php58
-rw-r--r--apps/updatenotification/lib/Notification/Notifier.php24
-rw-r--r--apps/updatenotification/lib/Settings/Admin.php17
-rw-r--r--apps/updatenotification/lib/UpdateChecker.php1
-rw-r--r--apps/updatenotification/openapi.json3
-rw-r--r--apps/updatenotification/tests/BackgroundJob/ResetTokenTest.php6
-rw-r--r--apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php72
-rw-r--r--apps/updatenotification/tests/Controller/AdminControllerTest.php14
-rw-r--r--apps/updatenotification/tests/Notification/NotifierTest.php21
-rw-r--r--apps/updatenotification/tests/Settings/AdminTest.php131
-rw-r--r--apps/user_ldap/ajax/deleteConfiguration.php4
-rw-r--r--apps/user_ldap/ajax/getNewServerConfigPrefix.php4
-rw-r--r--apps/user_ldap/css/renewPassword.css1
-rw-r--r--apps/user_ldap/css/settings.css2
-rw-r--r--apps/user_ldap/l10n/ach.js7
-rw-r--r--apps/user_ldap/l10n/ach.json5
-rw-r--r--apps/user_ldap/l10n/ady.js7
-rw-r--r--apps/user_ldap/l10n/ady.json5
-rw-r--r--apps/user_ldap/l10n/ak.js7
-rw-r--r--apps/user_ldap/l10n/ak.json5
-rw-r--r--apps/user_ldap/l10n/am_ET.js7
-rw-r--r--apps/user_ldap/l10n/am_ET.json5
-rw-r--r--apps/user_ldap/l10n/ast.js152
-rw-r--r--apps/user_ldap/l10n/ast.json150
-rw-r--r--apps/user_ldap/l10n/az.js37
-rw-r--r--apps/user_ldap/l10n/az.json35
-rw-r--r--apps/user_ldap/l10n/be.js6
-rw-r--r--apps/user_ldap/l10n/be.json4
-rw-r--r--apps/user_ldap/l10n/bg.js3
-rw-r--r--apps/user_ldap/l10n/bg.json3
-rw-r--r--apps/user_ldap/l10n/bn_BD.js80
-rw-r--r--apps/user_ldap/l10n/bn_BD.json78
-rw-r--r--apps/user_ldap/l10n/bs.js12
-rw-r--r--apps/user_ldap/l10n/bs.json10
-rw-r--r--apps/user_ldap/l10n/cy_GB.js10
-rw-r--r--apps/user_ldap/l10n/cy_GB.json8
-rw-r--r--apps/user_ldap/l10n/da.js14
-rw-r--r--apps/user_ldap/l10n/da.json14
-rw-r--r--apps/user_ldap/l10n/de.js2
-rw-r--r--apps/user_ldap/l10n/de.json2
-rw-r--r--apps/user_ldap/l10n/de_DE.js2
-rw-r--r--apps/user_ldap/l10n/de_DE.json2
-rw-r--r--apps/user_ldap/l10n/eo.js63
-rw-r--r--apps/user_ldap/l10n/eo.json61
-rw-r--r--apps/user_ldap/l10n/et_EE.js53
-rw-r--r--apps/user_ldap/l10n/et_EE.json53
-rw-r--r--apps/user_ldap/l10n/fr.js10
-rw-r--r--apps/user_ldap/l10n/fr.json10
-rw-r--r--apps/user_ldap/l10n/fy_NL.js7
-rw-r--r--apps/user_ldap/l10n/fy_NL.json5
-rw-r--r--apps/user_ldap/l10n/gl.js1
-rw-r--r--apps/user_ldap/l10n/gl.json1
-rw-r--r--apps/user_ldap/l10n/gu.js7
-rw-r--r--apps/user_ldap/l10n/gu.json5
-rw-r--r--apps/user_ldap/l10n/hy.js9
-rw-r--r--apps/user_ldap/l10n/hy.json7
-rw-r--r--apps/user_ldap/l10n/ia.js12
-rw-r--r--apps/user_ldap/l10n/ia.json10
-rw-r--r--apps/user_ldap/l10n/io.js7
-rw-r--r--apps/user_ldap/l10n/io.json5
-rw-r--r--apps/user_ldap/l10n/is.js100
-rw-r--r--apps/user_ldap/l10n/is.json98
-rw-r--r--apps/user_ldap/l10n/km.js17
-rw-r--r--apps/user_ldap/l10n/km.json15
-rw-r--r--apps/user_ldap/l10n/kn.js12
-rw-r--r--apps/user_ldap/l10n/kn.json10
-rw-r--r--apps/user_ldap/l10n/lb.js51
-rw-r--r--apps/user_ldap/l10n/lb.json49
-rw-r--r--apps/user_ldap/l10n/lo.js7
-rw-r--r--apps/user_ldap/l10n/lo.json5
-rw-r--r--apps/user_ldap/l10n/lv.js114
-rw-r--r--apps/user_ldap/l10n/lv.json112
-rw-r--r--apps/user_ldap/l10n/mg.js7
-rw-r--r--apps/user_ldap/l10n/mg.json5
-rw-r--r--apps/user_ldap/l10n/mk.js18
-rw-r--r--apps/user_ldap/l10n/mk.json16
-rw-r--r--apps/user_ldap/l10n/ml.js7
-rw-r--r--apps/user_ldap/l10n/ml.json5
-rw-r--r--apps/user_ldap/l10n/mn.js6
-rw-r--r--apps/user_ldap/l10n/mn.json4
-rw-r--r--apps/user_ldap/l10n/mr.js7
-rw-r--r--apps/user_ldap/l10n/mr.json5
-rw-r--r--apps/user_ldap/l10n/ms_MY.js11
-rw-r--r--apps/user_ldap/l10n/ms_MY.json9
-rw-r--r--apps/user_ldap/l10n/mt_MT.js7
-rw-r--r--apps/user_ldap/l10n/mt_MT.json5
-rw-r--r--apps/user_ldap/l10n/nn_NO.js14
-rw-r--r--apps/user_ldap/l10n/nn_NO.json12
-rw-r--r--apps/user_ldap/l10n/nqo.js7
-rw-r--r--apps/user_ldap/l10n/nqo.json5
-rw-r--r--apps/user_ldap/l10n/oc.js157
-rw-r--r--apps/user_ldap/l10n/oc.json155
-rw-r--r--apps/user_ldap/l10n/ro.js101
-rw-r--r--apps/user_ldap/l10n/ro.json99
-rw-r--r--apps/user_ldap/l10n/ru.js20
-rw-r--r--apps/user_ldap/l10n/ru.json20
-rw-r--r--apps/user_ldap/l10n/sr@latin.js14
-rw-r--r--apps/user_ldap/l10n/sr@latin.json12
-rw-r--r--apps/user_ldap/l10n/su.js7
-rw-r--r--apps/user_ldap/l10n/su.json5
-rw-r--r--apps/user_ldap/l10n/sw_KE.js7
-rw-r--r--apps/user_ldap/l10n/sw_KE.json5
-rw-r--r--apps/user_ldap/l10n/tg_TJ.js7
-rw-r--r--apps/user_ldap/l10n/tg_TJ.json5
-rw-r--r--apps/user_ldap/l10n/tl_PH.js7
-rw-r--r--apps/user_ldap/l10n/tl_PH.json5
-rw-r--r--apps/user_ldap/l10n/tr.js18
-rw-r--r--apps/user_ldap/l10n/tr.json18
-rw-r--r--apps/user_ldap/l10n/tzm.js7
-rw-r--r--apps/user_ldap/l10n/tzm.json5
-rw-r--r--apps/user_ldap/l10n/ur_PK.js9
-rw-r--r--apps/user_ldap/l10n/ur_PK.json7
-rw-r--r--apps/user_ldap/l10n/vi.js45
-rw-r--r--apps/user_ldap/l10n/vi.json43
-rw-r--r--apps/user_ldap/lib/Command/Search.php3
-rw-r--r--apps/user_ldap/lib/Command/SetConfig.php4
-rw-r--r--apps/user_ldap/lib/Connection.php4
-rw-r--r--apps/user_ldap/lib/Helper.php96
-rw-r--r--apps/user_ldap/lib/Jobs/CleanUp.php2
-rw-r--r--apps/user_ldap/lib/LDAP.php46
-rw-r--r--apps/user_ldap/lib/Settings/Admin.php4
-rw-r--r--apps/user_ldap/lib/User/User.php4
-rw-r--r--apps/user_ldap/tests/AccessTest.php114
-rw-r--r--apps/user_ldap/tests/ConfigurationTest.php14
-rw-r--r--apps/user_ldap/tests/ConnectionTest.php13
-rw-r--r--apps/user_ldap/tests/GroupLDAPPluginTest.php40
-rw-r--r--apps/user_ldap/tests/Group_LDAPTest.php85
-rw-r--r--apps/user_ldap/tests/HelperTest.php89
-rw-r--r--apps/user_ldap/tests/Integration/AbstractIntegrationTest.php3
-rw-r--r--apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php2
-rw-r--r--apps/user_ldap/tests/Jobs/CleanUpTest.php9
-rw-r--r--apps/user_ldap/tests/Jobs/SyncTest.php101
-rw-r--r--apps/user_ldap/tests/LDAPGroupPluginDummy.php2
-rw-r--r--apps/user_ldap/tests/LDAPProviderTest.php311
-rw-r--r--apps/user_ldap/tests/LDAPTest.php12
-rw-r--r--apps/user_ldap/tests/LDAPUserPluginDummy.php10
-rw-r--r--apps/user_ldap/tests/Mapping/AbstractMappingTestCase.php (renamed from apps/user_ldap/tests/Mapping/AbstractMappingTest.php)33
-rw-r--r--apps/user_ldap/tests/Mapping/GroupMappingTest.php3
-rw-r--r--apps/user_ldap/tests/Mapping/UserMappingTest.php3
-rw-r--r--apps/user_ldap/tests/Migration/AbstractUUIDFixTestCase.php (renamed from apps/user_ldap/tests/Migration/AbstractUUIDFixTest.php)41
-rw-r--r--apps/user_ldap/tests/Migration/UUIDFixGroupTest.php7
-rw-r--r--apps/user_ldap/tests/Migration/UUIDFixInsertTest.php48
-rw-r--r--apps/user_ldap/tests/Migration/UUIDFixUserTest.php4
-rw-r--r--apps/user_ldap/tests/Service/BirthdateParserServiceTest.php5
-rw-r--r--apps/user_ldap/tests/Service/UpdateGroupsServiceTest.php31
-rw-r--r--apps/user_ldap/tests/Settings/AdminTest.php8
-rw-r--r--apps/user_ldap/tests/Settings/SectionTest.php12
-rw-r--r--apps/user_ldap/tests/User/DeletedUsersIndexTest.php21
-rw-r--r--apps/user_ldap/tests/User/ManagerTest.php60
-rw-r--r--apps/user_ldap/tests/User/OfflineUserTest.php19
-rw-r--r--apps/user_ldap/tests/User/UserTest.php66
-rw-r--r--apps/user_ldap/tests/UserLDAPPluginTest.php64
-rw-r--r--apps/user_ldap/tests/User_LDAPTest.php79
-rw-r--r--apps/user_ldap/tests/User_ProxyTest.php28
-rw-r--r--apps/user_ldap/tests/WizardTest.php21
-rw-r--r--apps/user_status/l10n/bg.js14
-rw-r--r--apps/user_status/l10n/bg.json14
-rw-r--r--apps/user_status/l10n/es_AR.js22
-rw-r--r--apps/user_status/l10n/es_AR.json20
-rw-r--r--apps/user_status/l10n/hu.js2
-rw-r--r--apps/user_status/l10n/hu.json2
-rw-r--r--apps/user_status/l10n/lo.js24
-rw-r--r--apps/user_status/l10n/lo.json22
-rw-r--r--apps/user_status/l10n/nl.js6
-rw-r--r--apps/user_status/l10n/nl.json6
-rw-r--r--apps/user_status/l10n/pt_BR.js8
-rw-r--r--apps/user_status/l10n/pt_BR.json8
-rw-r--r--apps/user_status/l10n/ru.js38
-rw-r--r--apps/user_status/l10n/ru.json38
-rw-r--r--apps/user_status/l10n/sw.js28
-rw-r--r--apps/user_status/l10n/sw.json26
-rw-r--r--apps/user_status/lib/Service/StatusService.php20
-rw-r--r--apps/user_status/openapi.json4
-rw-r--r--apps/user_status/tests/Unit/BackgroundJob/ClearOldStatusesBackgroundJobTest.php13
-rw-r--r--apps/user_status/tests/Unit/CapabilitiesTest.php13
-rw-r--r--apps/user_status/tests/Unit/Connector/UserStatusProviderTest.php9
-rw-r--r--apps/user_status/tests/Unit/Controller/PredefinedStatusControllerTest.php12
-rw-r--r--apps/user_status/tests/Unit/Controller/StatusesControllerTest.php9
-rw-r--r--apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php68
-rw-r--r--apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php33
-rw-r--r--apps/user_status/tests/Unit/Db/UserStatusMapperTest.php16
-rw-r--r--apps/user_status/tests/Unit/Listener/UserDeletedListenerTest.php9
-rw-r--r--apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php37
-rw-r--r--apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php33
-rw-r--r--apps/user_status/tests/Unit/Service/StatusServiceTest.php86
-rw-r--r--apps/weather_status/l10n/af.js30
-rw-r--r--apps/weather_status/l10n/af.json28
-rw-r--r--apps/weather_status/l10n/bg.js18
-rw-r--r--apps/weather_status/l10n/bg.json18
-rw-r--r--apps/weather_status/l10n/he.js27
-rw-r--r--apps/weather_status/l10n/he.json25
-rw-r--r--apps/weather_status/l10n/hr.js28
-rw-r--r--apps/weather_status/l10n/hr.json26
-rw-r--r--apps/weather_status/l10n/ko.js45
-rw-r--r--apps/weather_status/l10n/ko.json45
-rw-r--r--apps/weather_status/l10n/nl.js10
-rw-r--r--apps/weather_status/l10n/nl.json10
-rw-r--r--apps/weather_status/l10n/pt_BR.js44
-rw-r--r--apps/weather_status/l10n/pt_BR.json44
-rw-r--r--apps/weather_status/l10n/ru.js14
-rw-r--r--apps/weather_status/l10n/ru.json14
-rw-r--r--apps/weather_status/l10n/sc.js28
-rw-r--r--apps/weather_status/l10n/sc.json26
-rw-r--r--apps/webhook_listeners/l10n/et_EE.js7
-rw-r--r--apps/webhook_listeners/l10n/et_EE.json5
-rw-r--r--apps/webhook_listeners/l10n/ja.js7
-rw-r--r--apps/webhook_listeners/l10n/ja.json5
-rw-r--r--apps/webhook_listeners/l10n/nl.js7
-rw-r--r--apps/webhook_listeners/l10n/nl.json5
-rw-r--r--apps/webhook_listeners/lib/BackgroundJobs/WebhookCall.php3
-rw-r--r--apps/webhook_listeners/lib/Controller/WebhooksController.php6
-rw-r--r--apps/webhook_listeners/lib/Listener/WebhooksEventListener.php1
-rw-r--r--apps/webhook_listeners/openapi.json19
-rw-r--r--apps/webhook_listeners/tests/Db/WebhookListenerMapperTest.php2
-rw-r--r--apps/workflowengine/l10n/bg.js16
-rw-r--r--apps/workflowengine/l10n/bg.json16
-rw-r--r--apps/workflowengine/l10n/es_419.js63
-rw-r--r--apps/workflowengine/l10n/es_419.json61
-rw-r--r--apps/workflowengine/l10n/es_AR.js62
-rw-r--r--apps/workflowengine/l10n/es_AR.json60
-rw-r--r--apps/workflowengine/l10n/es_CL.js63
-rw-r--r--apps/workflowengine/l10n/es_CL.json61
-rw-r--r--apps/workflowengine/l10n/es_CO.js63
-rw-r--r--apps/workflowengine/l10n/es_CO.json61
-rw-r--r--apps/workflowengine/l10n/es_CR.js63
-rw-r--r--apps/workflowengine/l10n/es_CR.json61
-rw-r--r--apps/workflowengine/l10n/es_DO.js63
-rw-r--r--apps/workflowengine/l10n/es_DO.json61
-rw-r--r--apps/workflowengine/l10n/es_GT.js63
-rw-r--r--apps/workflowengine/l10n/es_GT.json61
-rw-r--r--apps/workflowengine/l10n/es_HN.js63
-rw-r--r--apps/workflowengine/l10n/es_HN.json61
-rw-r--r--apps/workflowengine/l10n/es_NI.js63
-rw-r--r--apps/workflowengine/l10n/es_NI.json61
-rw-r--r--apps/workflowengine/l10n/es_PA.js63
-rw-r--r--apps/workflowengine/l10n/es_PA.json61
-rw-r--r--apps/workflowengine/l10n/es_PE.js63
-rw-r--r--apps/workflowengine/l10n/es_PE.json61
-rw-r--r--apps/workflowengine/l10n/es_PR.js63
-rw-r--r--apps/workflowengine/l10n/es_PR.json61
-rw-r--r--apps/workflowengine/l10n/es_PY.js63
-rw-r--r--apps/workflowengine/l10n/es_PY.json61
-rw-r--r--apps/workflowengine/l10n/es_SV.js63
-rw-r--r--apps/workflowengine/l10n/es_SV.json61
-rw-r--r--apps/workflowengine/l10n/es_UY.js63
-rw-r--r--apps/workflowengine/l10n/es_UY.json61
-rw-r--r--apps/workflowengine/l10n/et_EE.js74
-rw-r--r--apps/workflowengine/l10n/et_EE.json72
-rw-r--r--apps/workflowengine/l10n/ia.js46
-rw-r--r--apps/workflowengine/l10n/ia.json44
-rw-r--r--apps/workflowengine/l10n/id.js63
-rw-r--r--apps/workflowengine/l10n/id.json61
-rw-r--r--apps/workflowengine/l10n/ka_GE.js63
-rw-r--r--apps/workflowengine/l10n/ka_GE.json61
-rw-r--r--apps/workflowengine/l10n/lv.js1
-rw-r--r--apps/workflowengine/l10n/lv.json1
-rw-r--r--apps/workflowengine/l10n/mn.js70
-rw-r--r--apps/workflowengine/l10n/mn.json68
-rw-r--r--apps/workflowengine/l10n/nl.js5
-rw-r--r--apps/workflowengine/l10n/nl.json5
-rw-r--r--apps/workflowengine/l10n/pt_BR.js16
-rw-r--r--apps/workflowengine/l10n/pt_BR.json16
-rw-r--r--apps/workflowengine/l10n/sq.js62
-rw-r--r--apps/workflowengine/l10n/sq.json60
-rw-r--r--apps/workflowengine/l10n/tr.js2
-rw-r--r--apps/workflowengine/l10n/tr.json2
-rw-r--r--apps/workflowengine/src/components/Checks/RequestUserGroup.vue37
-rw-r--r--apps/workflowengine/tests/Check/AbstractStringCheckTest.php38
-rw-r--r--apps/workflowengine/tests/Check/RequestRemoteAddressTest.php43
-rw-r--r--apps/workflowengine/tests/Check/RequestTimeTest.php46
-rw-r--r--apps/workflowengine/tests/Check/RequestUserAgentTest.php26
2977 files changed, 27665 insertions, 94888 deletions
diff --git a/apps/admin_audit/l10n/bg.js b/apps/admin_audit/l10n/bg.js
index cd82e96ec73..2769c6899f8 100644
--- a/apps/admin_audit/l10n/bg.js
+++ b/apps/admin_audit/l10n/bg.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"admin_audit",
{
- "Auditing / Logging" : "Одитиране/създаване на регистри",
- "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Предоставя възможности за регистриране в Nextcloud, като например достъп до файлове за регистриране или други чувствителни действия."
+ "Auditing / Logging" : "Одитиране / Регистри на действията",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Предоставя възможности за създаване на регистри на действията в \"Nextcloud\", като например кой е осъществил достъп до файл или други действия."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/admin_audit/l10n/bg.json b/apps/admin_audit/l10n/bg.json
index 770ffcbf35a..4d3ac67c0a6 100644
--- a/apps/admin_audit/l10n/bg.json
+++ b/apps/admin_audit/l10n/bg.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Auditing / Logging" : "Одитиране/създаване на регистри",
- "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Предоставя възможности за регистриране в Nextcloud, като например достъп до файлове за регистриране или други чувствителни действия."
+ "Auditing / Logging" : "Одитиране / Регистри на действията",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Предоставя възможности за създаване на регистри на действията в \"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
index 3ab916b0b54..17becacc88e 100644
--- a/apps/admin_audit/l10n/eo.js
+++ b/apps/admin_audit/l10n/eo.js
@@ -2,6 +2,6 @@ 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."
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Ebligas protokoladon, 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
index eef1c6821c5..293d8cce025 100644
--- a/apps/admin_audit/l10n/eo.json
+++ b/apps/admin_audit/l10n/eo.json
@@ -1,5 +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."
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Ebligas protokoladon, 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/admin_audit/l10n/es_CR.js b/apps/admin_audit/l10n/es_CR.js
index 554f249b125..a051b8053d3 100644
--- a/apps/admin_audit/l10n/es_CR.js
+++ b/apps/admin_audit/l10n/es_CR.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"admin_audit",
{
- "Auditing / Logging" : "Auditoría / Registros"
+ "Auditing / Logging" : "Auditoría / Registros",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el registro de accesos a archivos o acciones sensibles."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/admin_audit/l10n/es_CR.json b/apps/admin_audit/l10n/es_CR.json
index 772c7486a7b..00a101b11b8 100644
--- a/apps/admin_audit/l10n/es_CR.json
+++ b/apps/admin_audit/l10n/es_CR.json
@@ -1,4 +1,5 @@
{ "translations": {
- "Auditing / Logging" : "Auditoría / Registros"
+ "Auditing / Logging" : "Auditoría / Registros",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Proporciona capacidades de registro para Nextcloud, como el registro de accesos a archivos o acciones sensibles."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/admin_audit/l10n/id.js b/apps/admin_audit/l10n/id.js
index 441f1940069..144a85299f1 100644
--- a/apps/admin_audit/l10n/id.js
+++ b/apps/admin_audit/l10n/id.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"admin_audit",
{
- "Auditing / Logging" : "Pemeriksaan / Pencatatan",
- "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kemampuan pencatatan untuk Nextcloud seperti pencatatan akses berkas atau tindakan sensitif lainnya."
+ "Auditing / Logging" : "Pengauditan/Pencatatan",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kemampuan pencatatan untuk Nextcloud, misalnya pencatatan akses file atau tindakan sensitif lainnya."
},
"nplurals=1; plural=0;");
diff --git a/apps/admin_audit/l10n/id.json b/apps/admin_audit/l10n/id.json
index 91af029f895..868f7c94d32 100644
--- a/apps/admin_audit/l10n/id.json
+++ b/apps/admin_audit/l10n/id.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Auditing / Logging" : "Pemeriksaan / Pencatatan",
- "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kemampuan pencatatan untuk Nextcloud seperti pencatatan akses berkas atau tindakan sensitif lainnya."
+ "Auditing / Logging" : "Pengauditan/Pencatatan",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kemampuan pencatatan untuk Nextcloud, misalnya pencatatan akses file atau tindakan sensitif lainnya."
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/admin_audit/l10n/sw.js b/apps/admin_audit/l10n/sw.js
new file mode 100644
index 00000000000..58fd34da654
--- /dev/null
+++ b/apps/admin_audit/l10n/sw.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "admin_audit",
+ {
+ "Auditing / Logging" : "Ukaguzi/kuweka kumbukumbu",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Hutoa uwezo wa kuweka kumbukumbu kwa Nextcloud kama vile ufikiaji wa faili za kumbukumbu au vitendo nyeti."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/admin_audit/l10n/sw.json b/apps/admin_audit/l10n/sw.json
new file mode 100644
index 00000000000..3775e3f2982
--- /dev/null
+++ b/apps/admin_audit/l10n/sw.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "Auditing / Logging" : "Ukaguzi/kuweka kumbukumbu",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Hutoa uwezo wa kuweka kumbukumbu kwa Nextcloud kama vile ufikiaji wa faili za kumbukumbu au vitendo nyeti."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/admin_audit/lib/Actions/Files.php b/apps/admin_audit/lib/Actions/Files.php
index f07ed254272..7be4a7cd581 100644
--- a/apps/admin_audit/lib/Actions/Files.php
+++ b/apps/admin_audit/lib/Actions/Files.php
@@ -10,7 +10,6 @@ namespace OCA\AdminAudit\Actions;
use OC\Files\Node\NonExistingFile;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent;
-use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent;
@@ -26,9 +25,6 @@ use Psr\Log\LoggerInterface;
* @package OCA\AdminAudit\Actions
*/
class Files extends Action {
-
- private array $renamedNodes = [];
-
/**
* Logs file read actions
*/
@@ -55,28 +51,13 @@ class Files extends Action {
/**
* Logs rename actions of files
*/
- public function beforeRename(BeforeNodeRenamedEvent $event): void {
- try {
- $source = $event->getSource();
- $this->renamedNodes[$source->getId()] = $source;
- } catch (InvalidPathException|NotFoundException $e) {
- Server::get(LoggerInterface::class)->error(
- 'Exception thrown in file rename: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
- );
- return;
- }
- }
-
- /**
- * Logs rename actions of files
- */
public function afterRename(NodeRenamedEvent $event): void {
try {
$target = $event->getTarget();
- $originalSource = $this->renamedNodes[$target->getId()];
+ $source = $event->getSource();
$params = [
'newid' => $target->getId(),
- 'oldpath' => $originalSource->getPath(),
+ 'oldpath' => $source->getPath(),
'newpath' => $target->getPath(),
];
} catch (InvalidPathException|NotFoundException $e) {
diff --git a/apps/admin_audit/lib/AppInfo/Application.php b/apps/admin_audit/lib/AppInfo/Application.php
index baf73b92b0d..63a1d065bc8 100644
--- a/apps/admin_audit/lib/AppInfo/Application.php
+++ b/apps/admin_audit/lib/AppInfo/Application.php
@@ -42,7 +42,6 @@ use OCP\Console\ConsoleEvent;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent;
-use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent;
@@ -171,13 +170,6 @@ class Application extends App implements IBootstrap {
$fileActions = new Files($logger);
$eventDispatcher->addListener(
- BeforeNodeRenamedEvent::class,
- function (BeforeNodeRenamedEvent $event) use ($fileActions): void {
- $fileActions->beforeRename($event);
- }
- );
-
- $eventDispatcher->addListener(
NodeRenamedEvent::class,
function (NodeRenamedEvent $event) use ($fileActions): void {
$fileActions->afterRename($event);
diff --git a/apps/cloud_federation_api/appinfo/info.xml b/apps/cloud_federation_api/appinfo/info.xml
index 57a8d9b50a0..81343cb49bf 100644
--- a/apps/cloud_federation_api/appinfo/info.xml
+++ b/apps/cloud_federation_api/appinfo/info.xml
@@ -9,7 +9,7 @@
<name>Cloud Federation API</name>
<summary>Enable clouds to communicate with each other and exchange data</summary>
<description>The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.</description>
- <version>1.15.0</version>
+ <version>1.16.0</version>
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<namespace>CloudFederationAPI</namespace>
diff --git a/apps/cloud_federation_api/appinfo/routes.php b/apps/cloud_federation_api/appinfo/routes.php
index 6b0774627a4..6467005e21b 100644
--- a/apps/cloud_federation_api/appinfo/routes.php
+++ b/apps/cloud_federation_api/appinfo/routes.php
@@ -20,11 +20,11 @@ return [
'verb' => 'POST',
'root' => '/ocm',
],
- // [
- // 'name' => 'RequestHandler#inviteAccepted',
- // 'url' => '/invite-accepted',
- // 'verb' => 'POST',
- // 'root' => '/ocm',
- // ]
+ [
+ 'name' => 'RequestHandler#inviteAccepted',
+ 'url' => '/invite-accepted',
+ 'verb' => 'POST',
+ 'root' => '/ocm',
+ ]
],
];
diff --git a/apps/cloud_federation_api/composer/composer/autoload_classmap.php b/apps/cloud_federation_api/composer/composer/autoload_classmap.php
index dd096ebf563..3cadc540c88 100644
--- a/apps/cloud_federation_api/composer/composer/autoload_classmap.php
+++ b/apps/cloud_federation_api/composer/composer/autoload_classmap.php
@@ -11,5 +11,9 @@ return array(
'OCA\\CloudFederationAPI\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
'OCA\\CloudFederationAPI\\Config' => $baseDir . '/../lib/Config.php',
'OCA\\CloudFederationAPI\\Controller\\RequestHandlerController' => $baseDir . '/../lib/Controller/RequestHandlerController.php',
+ 'OCA\\CloudFederationAPI\\Db\\FederatedInvite' => $baseDir . '/../lib/Db/FederatedInvite.php',
+ 'OCA\\CloudFederationAPI\\Db\\FederatedInviteMapper' => $baseDir . '/../lib/Db/FederatedInviteMapper.php',
+ 'OCA\\CloudFederationAPI\\Events\\FederatedInviteAcceptedEvent' => $baseDir . '/../lib/Events/FederatedInviteAcceptedEvent.php',
+ 'OCA\\CloudFederationAPI\\Migration\\Version1016Date202502262004' => $baseDir . '/../lib/Migration/Version1016Date202502262004.php',
'OCA\\CloudFederationAPI\\ResponseDefinitions' => $baseDir . '/../lib/ResponseDefinitions.php',
);
diff --git a/apps/cloud_federation_api/composer/composer/autoload_static.php b/apps/cloud_federation_api/composer/composer/autoload_static.php
index 75557a20126..849b755cd2f 100644
--- a/apps/cloud_federation_api/composer/composer/autoload_static.php
+++ b/apps/cloud_federation_api/composer/composer/autoload_static.php
@@ -26,6 +26,10 @@ class ComposerStaticInitCloudFederationAPI
'OCA\\CloudFederationAPI\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
'OCA\\CloudFederationAPI\\Config' => __DIR__ . '/..' . '/../lib/Config.php',
'OCA\\CloudFederationAPI\\Controller\\RequestHandlerController' => __DIR__ . '/..' . '/../lib/Controller/RequestHandlerController.php',
+ 'OCA\\CloudFederationAPI\\Db\\FederatedInvite' => __DIR__ . '/..' . '/../lib/Db/FederatedInvite.php',
+ 'OCA\\CloudFederationAPI\\Db\\FederatedInviteMapper' => __DIR__ . '/..' . '/../lib/Db/FederatedInviteMapper.php',
+ 'OCA\\CloudFederationAPI\\Events\\FederatedInviteAcceptedEvent' => __DIR__ . '/..' . '/../lib/Events/FederatedInviteAcceptedEvent.php',
+ 'OCA\\CloudFederationAPI\\Migration\\Version1016Date202502262004' => __DIR__ . '/..' . '/../lib/Migration/Version1016Date202502262004.php',
'OCA\\CloudFederationAPI\\ResponseDefinitions' => __DIR__ . '/..' . '/../lib/ResponseDefinitions.php',
);
diff --git a/apps/cloud_federation_api/l10n/pt_PT.js b/apps/cloud_federation_api/l10n/pt_PT.js
new file mode 100644
index 00000000000..db0fadb64f8
--- /dev/null
+++ b/apps/cloud_federation_api/l10n/pt_PT.js
@@ -0,0 +1,8 @@
+OC.L10N.register(
+ "cloud_federation_api",
+ {
+ "Cloud Federation API" : "API de Federação Cloud",
+ "Enable clouds to communicate with each other and exchange data" : "Enable clouds to communicate with each other and exchange data",
+ "The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data."
+},
+"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/cloud_federation_api/l10n/pt_PT.json b/apps/cloud_federation_api/l10n/pt_PT.json
new file mode 100644
index 00000000000..78fdf12910a
--- /dev/null
+++ b/apps/cloud_federation_api/l10n/pt_PT.json
@@ -0,0 +1,6 @@
+{ "translations": {
+ "Cloud Federation API" : "API de Federação Cloud",
+ "Enable clouds to communicate with each other and exchange data" : "Enable clouds to communicate with each other and exchange data",
+ "The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data."
+},"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/cloud_federation_api/lib/Capabilities.php b/apps/cloud_federation_api/lib/Capabilities.php
index 0348f6e7c11..599733123b3 100644
--- a/apps/cloud_federation_api/lib/Capabilities.php
+++ b/apps/cloud_federation_api/lib/Capabilities.php
@@ -6,6 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
+
namespace OCA\CloudFederationAPI;
use NCU\Security\Signature\Exceptions\IdentityNotFoundException;
@@ -16,16 +17,16 @@ use OCP\Capabilities\IInitialStateExcludedCapability;
use OCP\IAppConfig;
use OCP\IURLGenerator;
use OCP\OCM\Exceptions\OCMArgumentException;
-use OCP\OCM\IOCMProvider;
+use OCP\OCM\ICapabilityAwareOCMProvider;
use Psr\Log\LoggerInterface;
class Capabilities implements ICapability, IInitialStateExcludedCapability {
- public const API_VERSION = '1.1'; // informative, real version.
+ public const API_VERSION = '1.1.0';
public function __construct(
private IURLGenerator $urlGenerator,
private IAppConfig $appConfig,
- private IOCMProvider $provider,
+ private ICapabilityAwareOCMProvider $provider,
private readonly OCMSignatoryManager $ocmSignatoryManager,
private readonly LoggerInterface $logger,
) {
@@ -34,23 +35,7 @@ class Capabilities implements ICapability, IInitialStateExcludedCapability {
/**
* Function an app uses to return the capabilities
*
- * @return array{
- * ocm: array{
- * apiVersion: '1.0-proposal1',
- * enabled: bool,
- * endPoint: string,
- * publicKey?: array{
- * keyId: string,
- * publicKeyPem: string,
- * },
- * resourceTypes: list<array{
- * name: string,
- * shareTypes: list<string>,
- * protocols: array<string, string>
- * }>,
- * version: string
- * }
- * }
+ * @return array<string, array<string, mixed>>
* @throws OCMArgumentException
*/
public function getCapabilities() {
@@ -62,6 +47,8 @@ class Capabilities implements ICapability, IInitialStateExcludedCapability {
$this->provider->setEnabled(true);
$this->provider->setApiVersion(self::API_VERSION);
+ $this->provider->setCapabilities(['/invite-accepted', '/notifications', '/shares']);
+
$this->provider->setEndPoint(substr($url, 0, $pos));
$resource = $this->provider->createNewResourceType();
diff --git a/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php b/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php
index cbd66f52382..23fe509c081 100644
--- a/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php
+++ b/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php
@@ -1,8 +1,10 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
+
namespace OCA\CloudFederationAPI\Controller;
use NCU\Federation\ISignedCloudFederationProvider;
@@ -15,15 +17,20 @@ use NCU\Security\Signature\IIncomingSignedRequest;
use NCU\Security\Signature\ISignatureManager;
use OC\OCM\OCMSignatoryManager;
use OCA\CloudFederationAPI\Config;
+use OCA\CloudFederationAPI\Db\FederatedInviteMapper;
+use OCA\CloudFederationAPI\Events\FederatedInviteAcceptedEvent;
use OCA\CloudFederationAPI\ResponseDefinitions;
use OCA\FederatedFileSharing\AddressHandler;
use OCP\AppFramework\Controller;
+use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\BruteForceProtection;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\Attribute\OpenAPI;
use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\JSONResponse;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\Exceptions\ActionNotSupportedException;
use OCP\Federation\Exceptions\AuthenticationFailedException;
use OCP\Federation\Exceptions\BadRequestException;
@@ -61,12 +68,15 @@ class RequestHandlerController extends Controller {
private IURLGenerator $urlGenerator,
private ICloudFederationProviderManager $cloudFederationProviderManager,
private Config $config,
+ private IEventDispatcher $dispatcher,
+ private FederatedInviteMapper $federatedInviteMapper,
private readonly AddressHandler $addressHandler,
private readonly IAppConfig $appConfig,
private ICloudFederationFactory $factory,
private ICloudIdManager $cloudIdManager,
private readonly ISignatureManager $signatureManager,
private readonly OCMSignatoryManager $signatoryManager,
+ private ITimeFactory $timeFactory,
) {
parent::__construct($appName, $request);
}
@@ -107,7 +117,8 @@ class RequestHandlerController extends Controller {
}
// check if all required parameters are set
- if ($shareWith === null ||
+ if (
+ $shareWith === null ||
$name === null ||
$providerId === null ||
$resourceType === null ||
@@ -214,6 +225,101 @@ class RequestHandlerController extends Controller {
}
/**
+ * Inform the sender that an invitation was accepted to start sharing
+ *
+ * Inform about an accepted invitation so the user on the sender provider's side
+ * can initiate the OCM share creation. To protect the identity of the parties,
+ * for shares created following an OCM invitation, the user id MAY be hashed,
+ * and recipients implementing the OCM invitation workflow MAY refuse to process
+ * shares coming from unknown parties.
+ * @link https://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1invite-accepted/post
+ *
+ * @param string $recipientProvider The address of the recipent's provider
+ * @param string $token The token used for the invitation
+ * @param string $userId The userId of the recipient at the recipient's provider
+ * @param string $email The email address of the recipient
+ * @param string $name The display name of the recipient
+ *
+ * @return JSONResponse<Http::STATUS_OK, array{userID: string, email: string, name: string}, array{}>|JSONResponse<Http::STATUS_FORBIDDEN|Http::STATUS_BAD_REQUEST|Http::STATUS_CONFLICT, array{message: string, error: true}, array{}>
+ *
+ * Note: Not implementing 404 Invitation token does not exist, instead using 400
+ * 200: Invitation accepted
+ * 400: Invalid token
+ * 403: Invitation token does not exist
+ * 409: User is already known by the OCM provider
+ */
+ #[PublicPage]
+ #[NoCSRFRequired]
+ #[BruteForceProtection(action: 'inviteAccepted')]
+ public function inviteAccepted(string $recipientProvider, string $token, string $userId, string $email, string $name): JSONResponse {
+ $this->logger->debug('Processing share invitation for ' . $userId . ' with token ' . $token . ' and email ' . $email . ' and name ' . $name);
+
+ $updated = $this->timeFactory->getTime();
+
+ if ($token === '') {
+ $response = new JSONResponse(['message' => 'Invalid or non existing token', 'error' => true], Http::STATUS_BAD_REQUEST);
+ $response->throttle();
+ return $response;
+ }
+
+ try {
+ $invitation = $this->federatedInviteMapper->findByToken($token);
+ } catch (DoesNotExistException) {
+ $response = ['message' => 'Invalid or non existing token', 'error' => true];
+ $status = Http::STATUS_BAD_REQUEST;
+ $response = new JSONResponse($response, $status);
+ $response->throttle();
+ return $response;
+ }
+
+ if ($invitation->isAccepted() === true) {
+ $response = ['message' => 'Invite already accepted', 'error' => true];
+ $status = Http::STATUS_CONFLICT;
+ return new JSONResponse($response, $status);
+ }
+
+ if ($invitation->getExpiredAt() !== null && $updated > $invitation->getExpiredAt()) {
+ $response = ['message' => 'Invitation expired', 'error' => true];
+ $status = Http::STATUS_BAD_REQUEST;
+ return new JSONResponse($response, $status);
+ }
+ $localUser = $this->userManager->get($invitation->getUserId());
+ if ($localUser === null) {
+ $response = ['message' => 'Invalid or non existing token', 'error' => true];
+ $status = Http::STATUS_BAD_REQUEST;
+ $response = new JSONResponse($response, $status);
+ $response->throttle();
+ return $response;
+ }
+
+ $sharedFromEmail = $localUser->getEMailAddress();
+ if ($sharedFromEmail === null) {
+ $response = ['message' => 'Invalid or non existing token', 'error' => true];
+ $status = Http::STATUS_BAD_REQUEST;
+ $response = new JSONResponse($response, $status);
+ $response->throttle();
+ return $response;
+ }
+ $sharedFromDisplayName = $localUser->getDisplayName();
+
+ $response = ['userID' => $localUser->getUID(), 'email' => $sharedFromEmail, 'name' => $sharedFromDisplayName];
+ $status = Http::STATUS_OK;
+
+ $invitation->setAccepted(true);
+ $invitation->setRecipientEmail($email);
+ $invitation->setRecipientName($name);
+ $invitation->setRecipientProvider($recipientProvider);
+ $invitation->setRecipientUserId($userId);
+ $invitation->setAcceptedAt($updated);
+ $invitation = $this->federatedInviteMapper->update($invitation);
+
+ $event = new FederatedInviteAcceptedEvent($invitation);
+ $this->dispatcher->dispatchTyped($event);
+
+ return new JSONResponse($response, $status);
+ }
+
+ /**
* Send a notification about an existing share
*
* @param string $notificationType Notification type, e.g. SHARE_ACCEPTED
@@ -233,7 +339,8 @@ class RequestHandlerController extends Controller {
#[BruteForceProtection(action: 'receiveFederatedShareNotification')]
public function receiveNotification($notificationType, $resourceType, $providerId, ?array $notification) {
// check if all required parameters are set
- if ($notificationType === null ||
+ if (
+ $notificationType === null ||
$resourceType === null ||
$providerId === null ||
!is_array($notification)
diff --git a/apps/cloud_federation_api/lib/Db/FederatedInvite.php b/apps/cloud_federation_api/lib/Db/FederatedInvite.php
new file mode 100644
index 00000000000..b2447ff4e23
--- /dev/null
+++ b/apps/cloud_federation_api/lib/Db/FederatedInvite.php
@@ -0,0 +1,62 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\CloudFederationAPI\Db;
+
+use OCP\AppFramework\Db\Entity;
+use OCP\DB\Types;
+
+/**
+ * @method bool isAccepted()
+ * @method void setAccepted(bool $accepted)
+ * @method int|null getAcceptedAt()
+ * @method void setAcceptedAt(int $acceptedAt)
+ * @method int|null getCreatedAt()
+ * @method void setCreatedAt(int $createdAt)
+ * @method int|null getExpiredAt()
+ * @method void setExpiredAt(int $expiredAt)
+ * @method string|null getRecipientEmail()
+ * @method void setRecipientEmail(string $recipientEmail)
+ * @method string|null getRecipientName()
+ * @method void setRecipientName(string $recipientName)
+ * @method string|null getRecipientProvider()
+ * @method void setRecipientProvider(string $recipientProvider)
+ * @method string|null getRecipientUserId()
+ * @method void setRecipientUserId(string $recipientUserId)
+ * @method string getToken()
+ * @method void setToken(string $token)
+ * @method string|null getUserId()
+ * @method void setUserId(string $userId)
+ */
+
+class FederatedInvite extends Entity {
+ protected bool $accepted = false;
+ protected ?int $acceptedAt = 0;
+ protected int $createdAt = 0;
+ protected ?int $expiredAt = 0;
+ protected ?string $recipientEmail = null;
+ protected ?string $recipientName = null;
+ protected ?string $recipientProvider = null;
+ protected ?string $recipientUserId = null;
+ protected string $token = '';
+ protected string $userId = '';
+
+ public function __construct() {
+ $this->addType('accepted', Types::BOOLEAN);
+ $this->addType('acceptedAt', Types::BIGINT);
+ $this->addType('createdAt', Types::BIGINT);
+ $this->addType('expiredAt', Types::BIGINT);
+ $this->addType('recipientEmail', Types::STRING);
+ $this->addType('recipientName', Types::STRING);
+ $this->addType('recipientProvider', Types::STRING);
+ $this->addType('recipientUserId', Types::STRING);
+ $this->addType('token', Types::STRING);
+ $this->addType('userId', Types::STRING);
+ }
+}
diff --git a/apps/cloud_federation_api/lib/Db/FederatedInviteMapper.php b/apps/cloud_federation_api/lib/Db/FederatedInviteMapper.php
new file mode 100644
index 00000000000..5feb08b2c7f
--- /dev/null
+++ b/apps/cloud_federation_api/lib/Db/FederatedInviteMapper.php
@@ -0,0 +1,33 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\CloudFederationAPI\Db;
+
+use OCP\AppFramework\Db\QBMapper;
+use OCP\IDBConnection;
+
+/**
+ * @template-extends QBMapper<FederatedInvite>
+ */
+class FederatedInviteMapper extends QBMapper {
+ public const TABLE_NAME = 'federated_invites';
+
+ public function __construct(IDBConnection $db) {
+ parent::__construct($db, self::TABLE_NAME);
+ }
+
+ public function findByToken(string $token): FederatedInvite {
+ $qb = $this->db->getQueryBuilder();
+ $qb->select('*')
+ ->from('federated_invites')
+ ->where($qb->expr()->eq('token', $qb->createNamedParameter($token)));
+ return $this->findEntity($qb);
+ }
+
+}
diff --git a/apps/cloud_federation_api/lib/Events/FederatedInviteAcceptedEvent.php b/apps/cloud_federation_api/lib/Events/FederatedInviteAcceptedEvent.php
new file mode 100644
index 00000000000..c4d079d083e
--- /dev/null
+++ b/apps/cloud_federation_api/lib/Events/FederatedInviteAcceptedEvent.php
@@ -0,0 +1,24 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+namespace OCA\CloudFederationAPI\Events;
+
+use OCA\CloudFederationAPI\Db\FederatedInvite;
+use OCP\EventDispatcher\Event;
+
+class FederatedInviteAcceptedEvent extends Event {
+ public function __construct(
+ private FederatedInvite $invitation,
+ ) {
+ parent::__construct();
+ }
+
+ public function getInvitation(): FederatedInvite {
+ return $this->invitation;
+ }
+}
diff --git a/apps/cloud_federation_api/lib/Migration/Version1016Date202502262004.php b/apps/cloud_federation_api/lib/Migration/Version1016Date202502262004.php
new file mode 100644
index 00000000000..a3523d45e38
--- /dev/null
+++ b/apps/cloud_federation_api/lib/Migration/Version1016Date202502262004.php
@@ -0,0 +1,89 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\CloudFederationAPI\Migration;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\Types;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version1016Date202502262004 extends SimpleMigrationStep {
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+ $table_name = 'federated_invites';
+
+ if (!$schema->hasTable($table_name)) {
+ $table = $schema->createTable($table_name);
+ $table->addColumn('id', Types::BIGINT, [
+ 'autoincrement' => true,
+ 'notnull' => true,
+ 'length' => 11,
+ 'unsigned' => true,
+ ]);
+ $table->addColumn('user_id', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 64,
+
+ ]);
+ // https://saturncloud.io/blog/what-is-the-maximum-length-of-a-url-in-different-browsers/#maximum-url-length-in-different-browsers
+ // We use the least common denominator, the minimum length supported by browsers
+ $table->addColumn('recipient_provider', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 2083,
+ ]);
+ $table->addColumn('recipient_user_id', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 1024,
+ ]);
+ $table->addColumn('recipient_name', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 1024,
+ ]);
+ // https://www.directedignorance.com/blog/maximum-length-of-email-address
+ $table->addColumn('recipient_email', Types::STRING, [
+ 'notnull' => false,
+ 'length' => 320,
+ ]);
+ $table->addColumn('token', Types::STRING, [
+ 'notnull' => true,
+ 'length' => 60,
+ ]);
+ $table->addColumn('accepted', Types::BOOLEAN, [
+ 'notnull' => false,
+ 'default' => false
+ ]);
+ $table->addColumn('created_at', Types::BIGINT, [
+ 'notnull' => true,
+ ]);
+
+ $table->addColumn('expired_at', Types::BIGINT, [
+ 'notnull' => false,
+ ]);
+
+ $table->addColumn('accepted_at', Types::BIGINT, [
+ 'notnull' => false,
+ ]);
+
+ $table->addUniqueConstraint(['token']);
+ $table->setPrimaryKey(['id']);
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/apps/cloud_federation_api/openapi.json b/apps/cloud_federation_api/openapi.json
index 730af73628f..9c92a152bf8 100644
--- a/apps/cloud_federation_api/openapi.json
+++ b/apps/cloud_federation_api/openapi.json
@@ -36,79 +36,10 @@
},
"Capabilities": {
"type": "object",
- "required": [
- "ocm"
- ],
- "properties": {
- "ocm": {
- "type": "object",
- "required": [
- "apiVersion",
- "enabled",
- "endPoint",
- "resourceTypes",
- "version"
- ],
- "properties": {
- "apiVersion": {
- "type": "string",
- "enum": [
- "1.0-proposal1"
- ]
- },
- "enabled": {
- "type": "boolean"
- },
- "endPoint": {
- "type": "string"
- },
- "publicKey": {
- "type": "object",
- "required": [
- "keyId",
- "publicKeyPem"
- ],
- "properties": {
- "keyId": {
- "type": "string"
- },
- "publicKeyPem": {
- "type": "string"
- }
- }
- },
- "resourceTypes": {
- "type": "array",
- "items": {
- "type": "object",
- "required": [
- "name",
- "shareTypes",
- "protocols"
- ],
- "properties": {
- "name": {
- "type": "string"
- },
- "shareTypes": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "protocols": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- }
- }
- }
- }
- },
- "version": {
- "type": "string"
- }
- }
+ "additionalProperties": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "object"
}
}
},
@@ -396,6 +327,167 @@
}
}
}
+ },
+ "/index.php/ocm/invite-accepted": {
+ "post": {
+ "operationId": "request_handler-invite-accepted",
+ "summary": "Inform the sender that an invitation was accepted to start sharing",
+ "description": "Inform about an accepted invitation so the user on the sender provider's side can initiate the OCM share creation. To protect the identity of the parties, for shares created following an OCM invitation, the user id MAY be hashed, and recipients implementing the OCM invitation workflow MAY refuse to process shares coming from unknown parties.\nhttps://cs3org.github.io/OCM-API/docs.html?branch=v1.1.0&repo=OCM-API&user=cs3org#/paths/~1invite-accepted/post\nNote: Not implementing 404 Invitation token does not exist, instead using 400",
+ "tags": [
+ "request_handler"
+ ],
+ "security": [
+ {},
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "recipientProvider",
+ "token",
+ "userId",
+ "email",
+ "name"
+ ],
+ "properties": {
+ "recipientProvider": {
+ "type": "string",
+ "description": "The address of the recipent's provider"
+ },
+ "token": {
+ "type": "string",
+ "description": "The token used for the invitation"
+ },
+ "userId": {
+ "type": "string",
+ "description": "The userId of the recipient at the recipient's provider"
+ },
+ "email": {
+ "type": "string",
+ "description": "The email address of the recipient"
+ },
+ "name": {
+ "type": "string",
+ "description": "The display name of the recipient"
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Invitation accepted",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "userID",
+ "email",
+ "name"
+ ],
+ "properties": {
+ "userID": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Invitation token does not exist",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "message",
+ "error"
+ ],
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "error": {
+ "type": "boolean",
+ "enum": [
+ true
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid token",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "message",
+ "error"
+ ],
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "error": {
+ "type": "boolean",
+ "enum": [
+ true
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "409": {
+ "description": "User is already known by the OCM provider",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "message",
+ "error"
+ ],
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "error": {
+ "type": "boolean",
+ "enum": [
+ true
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
},
"tags": [
diff --git a/apps/cloud_federation_api/tests/RequestHandlerControllerTest.php b/apps/cloud_federation_api/tests/RequestHandlerControllerTest.php
new file mode 100644
index 00000000000..769e0a2dbff
--- /dev/null
+++ b/apps/cloud_federation_api/tests/RequestHandlerControllerTest.php
@@ -0,0 +1,136 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\CloudFederationApi\Tests;
+
+use NCU\Security\Signature\ISignatureManager;
+use OC\OCM\OCMSignatoryManager;
+use OCA\CloudFederationAPI\Config;
+use OCA\CloudFederationAPI\Controller\RequestHandlerController;
+use OCA\CloudFederationAPI\Db\FederatedInvite;
+use OCA\CloudFederationAPI\Db\FederatedInviteMapper;
+use OCA\FederatedFileSharing\AddressHandler;
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\JSONResponse;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\EventDispatcher\IEventDispatcher;
+use OCP\Federation\ICloudFederationFactory;
+use OCP\Federation\ICloudFederationProviderManager;
+use OCP\Federation\ICloudIdManager;
+use OCP\IAppConfig;
+use OCP\IGroupManager;
+use OCP\IRequest;
+use OCP\IURLGenerator;
+use OCP\IUser;
+use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Log\LoggerInterface;
+use Test\TestCase;
+
+class RequestHandlerControllerTest extends TestCase {
+ private IRequest&MockObject $request;
+ private LoggerInterface&MockObject $logger;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private IURLGenerator&MockObject $urlGenerator;
+ private ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
+ private Config&MockObject $config;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private FederatedInviteMapper&MockObject $federatedInviteMapper;
+ private AddressHandler&MockObject $addressHandler;
+ private IAppConfig&MockObject $appConfig;
+ private ICloudFederationFactory&MockObject $cloudFederationFactory;
+ private ICloudIdManager&MockObject $cloudIdManager;
+ private ISignatureManager&MockObject $signatureManager;
+ private OCMSignatoryManager&MockObject $signatoryManager;
+ private ITimeFactory&MockObject $timeFactory;
+
+ private RequestHandlerController $requestHandlerController;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->request = $this->createMock(IRequest::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->groupManager = $this->createMock(IGroupManager::class);
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
+ $this->cloudFederationProviderManager = $this->createMock(ICloudFederationProviderManager::class);
+ $this->config = $this->createMock(Config::class);
+ $this->eventDispatcher = $this->createMock(IEventDispatcher::class);
+ $this->federatedInviteMapper = $this->createMock(FederatedInviteMapper::class);
+ $this->addressHandler = $this->createMock(AddressHandler::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
+ $this->cloudFederationFactory = $this->createMock(ICloudFederationFactory::class);
+ $this->cloudIdManager = $this->createMock(ICloudIdManager::class);
+ $this->signatureManager = $this->createMock(ISignatureManager::class);
+ $this->signatoryManager = $this->createMock(OCMSignatoryManager::class);
+ $this->timeFactory = $this->createMock(ITimeFactory::class);
+
+ $this->requestHandlerController = new RequestHandlerController(
+ 'cloud_federation_api',
+ $this->request,
+ $this->logger,
+ $this->userManager,
+ $this->groupManager,
+ $this->urlGenerator,
+ $this->cloudFederationProviderManager,
+ $this->config,
+ $this->eventDispatcher,
+ $this->federatedInviteMapper,
+ $this->addressHandler,
+ $this->appConfig,
+ $this->cloudFederationFactory,
+ $this->cloudIdManager,
+ $this->signatureManager,
+ $this->signatoryManager,
+ $this->timeFactory,
+ );
+ }
+
+ public function testInviteAccepted(): void {
+ $token = 'token';
+ $userId = 'userId';
+ $invite = new FederatedInvite();
+ $invite->setCreatedAt(1);
+ $invite->setUserId($userId);
+ $invite->setToken($token);
+
+ $this->federatedInviteMapper->expects(self::once())
+ ->method('findByToken')
+ ->with($token)
+ ->willReturn($invite);
+
+ $this->federatedInviteMapper->expects(self::once())
+ ->method('update')
+ ->willReturnArgument(0);
+
+ $user = $this->createMock(IUser::class);
+ $user->method('getUID')
+ ->willReturn($userId);
+ $user->method('getEMailAddress')
+ ->willReturn('email');
+ $user->method('getDisplayName')
+ ->willReturn('displayName');
+
+ $this->userManager->expects(self::once())
+ ->method('get')
+ ->with($userId)
+ ->willReturn($user);
+
+ $recipientProvider = 'http://127.0.0.1';
+ $recipientId = 'remote';
+ $recipientEmail = 'remote@example.org';
+ $recipientName = 'Remote Remoteson';
+ $response = ['userID' => $userId, 'email' => 'email', 'name' => 'displayName'];
+ $json = new JSONResponse($response, Http::STATUS_OK);
+
+ $this->assertEquals($json, $this->requestHandlerController->inviteAccepted($recipientProvider, $token, $recipientId, $recipientEmail, $recipientName));
+ }
+}
diff --git a/apps/comments/l10n/af.js b/apps/comments/l10n/af.js
deleted file mode 100644
index 3d4eb4d6c9c..00000000000
--- a/apps/comments/l10n/af.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Kommentare",
- "You commented" : "U het kommentaar gelewer",
- "{author} commented" : "{outeur} het kommentaar gelewer",
- "You commented on %1$s" : "U het op %1$s kommentaar gelewer",
- "You commented on {file}" : "U het op {lêer} kommentaar gelewer",
- "%1$s commented on %2$s" : "%1$s het op %2$s kommentaar gelewer",
- "{author} commented on {file}" : "{outeur} het op {lêer} kommentaar gelewer",
- "<strong>Comments</strong> for files" : "<strong>Kommentare</strong> vir lêers",
- "Files app plugin to add comments to files" : "Lêertoepinprop om kommentaar op lêers te lewer",
- "Edit comment" : "Wysig kommentaar",
- "Delete comment" : "Skrap kommentaar",
- "No comments yet, start the conversation!" : "Nog geen kommentaar, begin die gesprek!",
- "Retry" : "Herprobeer",
- "Comment" : "Kommentaar",
- "_%n unread comment_::_%n unread comments_" : ["%n ongelese kommentaar","%n ongelese kommentare"]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/af.json b/apps/comments/l10n/af.json
deleted file mode 100644
index cbcf0291da4..00000000000
--- a/apps/comments/l10n/af.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Kommentare",
- "You commented" : "U het kommentaar gelewer",
- "{author} commented" : "{outeur} het kommentaar gelewer",
- "You commented on %1$s" : "U het op %1$s kommentaar gelewer",
- "You commented on {file}" : "U het op {lêer} kommentaar gelewer",
- "%1$s commented on %2$s" : "%1$s het op %2$s kommentaar gelewer",
- "{author} commented on {file}" : "{outeur} het op {lêer} kommentaar gelewer",
- "<strong>Comments</strong> for files" : "<strong>Kommentare</strong> vir lêers",
- "Files app plugin to add comments to files" : "Lêertoepinprop om kommentaar op lêers te lewer",
- "Edit comment" : "Wysig kommentaar",
- "Delete comment" : "Skrap kommentaar",
- "No comments yet, start the conversation!" : "Nog geen kommentaar, begin die gesprek!",
- "Retry" : "Herprobeer",
- "Comment" : "Kommentaar",
- "_%n unread comment_::_%n unread comments_" : ["%n ongelese kommentaar","%n ongelese kommentare"]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/az.js b/apps/comments/l10n/az.js
deleted file mode 100644
index 75428f67cc5..00000000000
--- a/apps/comments/l10n/az.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "Dayandır",
- "Save" : "Saxla",
- "Comment" : "Komentariya"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/az.json b/apps/comments/l10n/az.json
deleted file mode 100644
index c54d6648c59..00000000000
--- a/apps/comments/l10n/az.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Cancel" : "Dayandır",
- "Save" : "Saxla",
- "Comment" : "Komentariya"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/bn_BD.js b/apps/comments/l10n/bn_BD.js
deleted file mode 100644
index fcff25b8402..00000000000
--- a/apps/comments/l10n/bn_BD.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "বাতিল",
- "Save" : "সংরক্ষণ",
- "Comment" : "মন্তব্য"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/bn_BD.json b/apps/comments/l10n/bn_BD.json
deleted file mode 100644
index 81cd8fe1a48..00000000000
--- a/apps/comments/l10n/bn_BD.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Cancel" : "বাতিল",
- "Save" : "সংরক্ষণ",
- "Comment" : "মন্তব্য"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/bs.js b/apps/comments/l10n/bs.js
deleted file mode 100644
index b1f98fedfa6..00000000000
--- a/apps/comments/l10n/bs.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "Odustani",
- "Save" : "Spremi",
- "Comment" : "Komentar"
-},
-"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/comments/l10n/bs.json b/apps/comments/l10n/bs.json
deleted file mode 100644
index d73df1a46c6..00000000000
--- a/apps/comments/l10n/bs.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Cancel" : "Odustani",
- "Save" : "Spremi",
- "Comment" : "Komentar"
-},"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/comments/l10n/cy_GB.js b/apps/comments/l10n/cy_GB.js
deleted file mode 100644
index 4e1c6a57f6e..00000000000
--- a/apps/comments/l10n/cy_GB.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "Diddymu",
- "Save" : "Cadw"
-},
-"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/apps/comments/l10n/cy_GB.json b/apps/comments/l10n/cy_GB.json
deleted file mode 100644
index 1ea3eafef30..00000000000
--- a/apps/comments/l10n/cy_GB.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Cancel" : "Diddymu",
- "Save" : "Cadw"
-},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/eo.js b/apps/comments/l10n/eo.js
deleted file mode 100644
index 6cfa79a31c0..00000000000
--- a/apps/comments/l10n/eo.js
+++ /dev/null
@@ -1,21 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Komentoj",
- "You commented" : "Vi komentis",
- "{author} commented" : "{author} komentis",
- "You commented on %1$s" : "Vi komentis %1$s",
- "You commented on {file}" : "Vi komentis pri {file}",
- "%1$s commented on %2$s" : "%1$s komentis %2$s",
- "{author} commented on {file}" : "{author} komentis pri {file}",
- "<strong>Comments</strong> for files" : "<strong>Komentoj</strong> por dosieroj",
- "Files app plugin to add comments to files" : "Kromprogramo por la aplikaĵo „Dosieroj“ por aldoni komentojn al dosieroj",
- "Edit comment" : "Redakti komenton",
- "Delete comment" : "Forigi komenton",
- "No comments yet, start the conversation!" : "Neniu komento, ekkonversaciu!",
- "Retry" : "Reprovi",
- "_1 new comment_::_{unread} new comments_" : ["1 nova komento","{unread} novaj komentoj"],
- "Comment" : "Komento",
- "_%n unread comment_::_%n unread comments_" : ["%n nelegataj komentoj","%n nelegataj komentoj"]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/eo.json b/apps/comments/l10n/eo.json
deleted file mode 100644
index 8679e3c2429..00000000000
--- a/apps/comments/l10n/eo.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{ "translations": {
- "Comments" : "Komentoj",
- "You commented" : "Vi komentis",
- "{author} commented" : "{author} komentis",
- "You commented on %1$s" : "Vi komentis %1$s",
- "You commented on {file}" : "Vi komentis pri {file}",
- "%1$s commented on %2$s" : "%1$s komentis %2$s",
- "{author} commented on {file}" : "{author} komentis pri {file}",
- "<strong>Comments</strong> for files" : "<strong>Komentoj</strong> por dosieroj",
- "Files app plugin to add comments to files" : "Kromprogramo por la aplikaĵo „Dosieroj“ por aldoni komentojn al dosieroj",
- "Edit comment" : "Redakti komenton",
- "Delete comment" : "Forigi komenton",
- "No comments yet, start the conversation!" : "Neniu komento, ekkonversaciu!",
- "Retry" : "Reprovi",
- "_1 new comment_::_{unread} new comments_" : ["1 nova komento","{unread} novaj komentoj"],
- "Comment" : "Komento",
- "_%n unread comment_::_%n unread comments_" : ["%n nelegataj komentoj","%n nelegataj komentoj"]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_419.js b/apps/comments/l10n/es_419.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_419.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_419.json b/apps/comments/l10n/es_419.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_419.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_AR.js b/apps/comments/l10n/es_AR.js
deleted file mode 100644
index 0893a9edb75..00000000000
--- a/apps/comments/l10n/es_AR.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Ud. ha comentado",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Ud. ah comentado en %1$s",
- "You commented on {file}" : "Ud. ha comentado en {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> en archivos",
- "Files app plugin to add comments to files" : "Complemento de aplicación de archivos para agregar comentarios a los archivos.",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentar",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_AR.json b/apps/comments/l10n/es_AR.json
deleted file mode 100644
index d59bec3cafc..00000000000
--- a/apps/comments/l10n/es_AR.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Ud. ha comentado",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Ud. ah comentado en %1$s",
- "You commented on {file}" : "Ud. ha comentado en {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> en archivos",
- "Files app plugin to add comments to files" : "Complemento de aplicación de archivos para agregar comentarios a los archivos.",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentar",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_CL.js b/apps/comments/l10n/es_CL.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_CL.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_CL.json b/apps/comments/l10n/es_CL.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_CL.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_CO.js b/apps/comments/l10n/es_CO.js
deleted file mode 100644
index 58d08fdb451..00000000000
--- a/apps/comments/l10n/es_CO.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "Comment deleted" : "Comentario borrado",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_CO.json b/apps/comments/l10n/es_CO.json
deleted file mode 100644
index a6eab53d1cd..00000000000
--- a/apps/comments/l10n/es_CO.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "Comment deleted" : "Comentario borrado",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_CR.js b/apps/comments/l10n/es_CR.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_CR.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_CR.json b/apps/comments/l10n/es_CR.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_CR.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_DO.js b/apps/comments/l10n/es_DO.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_DO.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_DO.json b/apps/comments/l10n/es_DO.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_DO.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_GT.js b/apps/comments/l10n/es_GT.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_GT.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_GT.json b/apps/comments/l10n/es_GT.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_GT.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_HN.js b/apps/comments/l10n/es_HN.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_HN.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_HN.json b/apps/comments/l10n/es_HN.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_HN.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_NI.js b/apps/comments/l10n/es_NI.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_NI.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_NI.json b/apps/comments/l10n/es_NI.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_NI.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_PA.js b/apps/comments/l10n/es_PA.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_PA.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_PA.json b/apps/comments/l10n/es_PA.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_PA.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_PE.js b/apps/comments/l10n/es_PE.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_PE.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_PE.json b/apps/comments/l10n/es_PE.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_PE.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_PR.js b/apps/comments/l10n/es_PR.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_PR.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_PR.json b/apps/comments/l10n/es_PR.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_PR.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_PY.js b/apps/comments/l10n/es_PY.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_PY.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_PY.json b/apps/comments/l10n/es_PY.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_PY.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_SV.js b/apps/comments/l10n/es_SV.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_SV.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_SV.json b/apps/comments/l10n/es_SV.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_SV.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/es_UY.js b/apps/comments/l10n/es_UY.js
deleted file mode 100644
index 45adf25b98b..00000000000
--- a/apps/comments/l10n/es_UY.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/comments/l10n/es_UY.json b/apps/comments/l10n/es_UY.json
deleted file mode 100644
index 5d49e27e466..00000000000
--- a/apps/comments/l10n/es_UY.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Comentarios",
- "You commented" : "Comentaste",
- "{author} commented" : "{author} comentó",
- "You commented on %1$s" : "Usted comentó en %1$s",
- "You commented on {file}" : "Hiciste un comentario de {file}",
- "%1$s commented on %2$s" : "%1$s comentó en %2$s",
- "{author} commented on {file}" : "{author} comentó en {file}",
- "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
- "Edit comment" : "Editar comentario",
- "Delete comment" : "Borrar comentario",
- "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
- "Retry" : "Reintentar",
- "Comment" : "Comentario",
- "%1$s commented" : "%1$s comentó",
- "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/hy.js b/apps/comments/l10n/hy.js
deleted file mode 100644
index 6e6fa514244..00000000000
--- a/apps/comments/l10n/hy.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "Չեղարկել",
- "Save" : "Պահպանել"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/hy.json b/apps/comments/l10n/hy.json
deleted file mode 100644
index 1d692e6d00d..00000000000
--- a/apps/comments/l10n/hy.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Cancel" : "Չեղարկել",
- "Save" : "Պահպանել"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/ia.js b/apps/comments/l10n/ia.js
deleted file mode 100644
index 425cd480ec8..00000000000
--- a/apps/comments/l10n/ia.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Commentarios",
- "You commented" : "Tu commentava",
- "{author} commented" : "{author} commentava",
- "You commented on %1$s" : "Tu commentava in %1$s",
- "You commented on {file}" : "Tu commentava in {file}",
- "%1$s commented on %2$s" : "%1$s commentava in %2$s",
- "{author} commented on {file}" : "{author} commentava in {file}",
- "<strong>Comments</strong> for files" : "<strong>Commentarios</strong> pro files",
- "Edit comment" : "Modificar commentario",
- "Delete comment" : "Deler commentario",
- "No comments yet, start the conversation!" : "Il ha nulle commentarios ancora, initia le conversation!",
- "Comment" : "Commentario",
- "%1$s commented" : "%1$s commentava",
- "_%n unread comment_::_%n unread comments_" : ["%n commentario non legite","%n commentarios non legite"]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/ia.json b/apps/comments/l10n/ia.json
deleted file mode 100644
index bb51efd690c..00000000000
--- a/apps/comments/l10n/ia.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "Comments" : "Commentarios",
- "You commented" : "Tu commentava",
- "{author} commented" : "{author} commentava",
- "You commented on %1$s" : "Tu commentava in %1$s",
- "You commented on {file}" : "Tu commentava in {file}",
- "%1$s commented on %2$s" : "%1$s commentava in %2$s",
- "{author} commented on {file}" : "{author} commentava in {file}",
- "<strong>Comments</strong> for files" : "<strong>Commentarios</strong> pro files",
- "Edit comment" : "Modificar commentario",
- "Delete comment" : "Deler commentario",
- "No comments yet, start the conversation!" : "Il ha nulle commentarios ancora, initia le conversation!",
- "Comment" : "Commentario",
- "%1$s commented" : "%1$s commentava",
- "_%n unread comment_::_%n unread comments_" : ["%n commentario non legite","%n commentarios non legite"]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/ka_GE.js b/apps/comments/l10n/ka_GE.js
deleted file mode 100644
index 9cc339703d0..00000000000
--- a/apps/comments/l10n/ka_GE.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "კომენტარები",
- "You commented" : "თქვენ გააკეთეთ კომენტარი",
- "{author} commented" : "{author} მომხმარებელმა გააკეთა კომენტარი",
- "You commented on %1$s" : "თქვენ გააკეთეთ კომენტარი %1$s-ზე",
- "You commented on {file}" : "თქვენ გააკეთეთ კომენტარი {file}-ზე",
- "%1$s commented on %2$s" : "%1$s მომხმარებელმა გააკეთა კომენტარი %2$s-ზე",
- "{author} commented on {file}" : "{author} მომხმარებელმა გააკეთა კომენტარი {file}-ზე",
- "<strong>Comments</strong> for files" : "<strong>კომენტარები</strong> ფაილებზე",
- "Edit comment" : "კომენტარის ცვლილება",
- "Delete comment" : "კომენტარის გაუქმება",
- "No comments yet, start the conversation!" : "ჯერ კომენტარები არაა, დაიწყეთ საუბარი! ",
- "Retry" : "ვცადოთ ახლიდან",
- "Comment" : "კომენტარის დამატება",
- "%1$s commented" : "%1$s მოხმარებელმა გააკეთა კომენტარი",
- "_%n unread comment_::_%n unread comments_" : ["%n წაუკუთხავი კომენტარი","%n წაუკუთხავი კომენტარი"]
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/comments/l10n/ka_GE.json b/apps/comments/l10n/ka_GE.json
deleted file mode 100644
index 79c3152074e..00000000000
--- a/apps/comments/l10n/ka_GE.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "კომენტარები",
- "You commented" : "თქვენ გააკეთეთ კომენტარი",
- "{author} commented" : "{author} მომხმარებელმა გააკეთა კომენტარი",
- "You commented on %1$s" : "თქვენ გააკეთეთ კომენტარი %1$s-ზე",
- "You commented on {file}" : "თქვენ გააკეთეთ კომენტარი {file}-ზე",
- "%1$s commented on %2$s" : "%1$s მომხმარებელმა გააკეთა კომენტარი %2$s-ზე",
- "{author} commented on {file}" : "{author} მომხმარებელმა გააკეთა კომენტარი {file}-ზე",
- "<strong>Comments</strong> for files" : "<strong>კომენტარები</strong> ფაილებზე",
- "Edit comment" : "კომენტარის ცვლილება",
- "Delete comment" : "კომენტარის გაუქმება",
- "No comments yet, start the conversation!" : "ჯერ კომენტარები არაა, დაიწყეთ საუბარი! ",
- "Retry" : "ვცადოთ ახლიდან",
- "Comment" : "კომენტარის დამატება",
- "%1$s commented" : "%1$s მოხმარებელმა გააკეთა კომენტარი",
- "_%n unread comment_::_%n unread comments_" : ["%n წაუკუთხავი კომენტარი","%n წაუკუთხავი კომენტარი"]
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/km.js b/apps/comments/l10n/km.js
deleted file mode 100644
index 16f065c86b3..00000000000
--- a/apps/comments/l10n/km.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "បោះបង់",
- "Save" : "រក្សាទុក"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/comments/l10n/km.json b/apps/comments/l10n/km.json
deleted file mode 100644
index 20de21d56a1..00000000000
--- a/apps/comments/l10n/km.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Cancel" : "បោះបង់",
- "Save" : "រក្សាទុក"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/kn.js b/apps/comments/l10n/kn.js
deleted file mode 100644
index 97a48f9cb3e..00000000000
--- a/apps/comments/l10n/kn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "ರದ್ದು",
- "Save" : "ಉಳಿಸಿ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/comments/l10n/kn.json b/apps/comments/l10n/kn.json
deleted file mode 100644
index 8a2b49fc262..00000000000
--- a/apps/comments/l10n/kn.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Cancel" : "ರದ್ದು",
- "Save" : "ಉಳಿಸಿ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/lb.js b/apps/comments/l10n/lb.js
deleted file mode 100644
index d7f8c5884ac..00000000000
--- a/apps/comments/l10n/lb.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "Ofbriechen",
- "Save" : "Späicheren",
- "Comment" : "Kommentar"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/lb.json b/apps/comments/l10n/lb.json
deleted file mode 100644
index bfa307a7e8d..00000000000
--- a/apps/comments/l10n/lb.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Cancel" : "Ofbriechen",
- "Save" : "Späicheren",
- "Comment" : "Kommentar"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/lv.js b/apps/comments/l10n/lv.js
deleted file mode 100644
index 7fcc1f885f1..00000000000
--- a/apps/comments/l10n/lv.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Komentāri",
- "You commented" : "Tu komentēji",
- "{author} commented" : "{author} komentēja",
- "You commented on %1$s" : "Tu komentēji %1$s",
- "You commented on {file}" : "Tu komentēji {file}",
- "%1$s commented on %2$s" : "%1$s komentēja %2$s",
- "{author} commented on {file}" : "{author} komentārs {file}",
- "<strong>Comments</strong> for files" : "<strong>Komentāri</strong> datnēm",
- "Edit comment" : "Rediģēt komentāru",
- "Delete comment" : "Dzēst komentāru",
- "No comments yet, start the conversation!" : "Vēl nav komentāru, uzsāciet sarunu!",
- "Retry" : "Mēģināt vēlreiz",
- "Comment" : "Komentārs",
- "%1$s commented" : "%1$s komentēja",
- "_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri","%n nelasīti komentāri"]
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/comments/l10n/lv.json b/apps/comments/l10n/lv.json
deleted file mode 100644
index 4e4de3a5567..00000000000
--- a/apps/comments/l10n/lv.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Komentāri",
- "You commented" : "Tu komentēji",
- "{author} commented" : "{author} komentēja",
- "You commented on %1$s" : "Tu komentēji %1$s",
- "You commented on {file}" : "Tu komentēji {file}",
- "%1$s commented on %2$s" : "%1$s komentēja %2$s",
- "{author} commented on {file}" : "{author} komentārs {file}",
- "<strong>Comments</strong> for files" : "<strong>Komentāri</strong> datnēm",
- "Edit comment" : "Rediģēt komentāru",
- "Delete comment" : "Dzēst komentāru",
- "No comments yet, start the conversation!" : "Vēl nav komentāru, uzsāciet sarunu!",
- "Retry" : "Mēģināt vēlreiz",
- "Comment" : "Komentārs",
- "%1$s commented" : "%1$s komentēja",
- "_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri","%n nelasīti komentāri"]
-},"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/comments/l10n/mn.js b/apps/comments/l10n/mn.js
deleted file mode 100644
index 6bc594d0e27..00000000000
--- a/apps/comments/l10n/mn.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Сэтгэгдэл",
- "You commented" : "Та сэтгэгдэл бичсэн байна",
- "{author} commented" : "{author} сэтгэгдэл бичсэн",
- "You commented on %1$s" : "Та %1$s нийтлэл дээр сэтгэгдэл бичсэн байна",
- "You commented on {file}" : "Та {file} сэтгэгдэл бичсэн байна",
- "%1$s commented on %2$s" : "%1$s нь %2$s-д сэтгэгдэл бичсэн",
- "{author} commented on {file}" : "{author} нь {file}-д сэтгэгдэл бичсэн",
- "<strong>Comments</strong> for files" : "Файлууд дахь<strong>Сэтгэгдэлүүд</strong>",
- "Edit comment" : "Сэтгэгдэл засах",
- "Delete comment" : "Сэтгэгдэл устгах",
- "No comments yet, start the conversation!" : "Сэтгэгдэл байхгүй байна",
- "Retry" : "Дахин оролдох",
- "Comment" : "Сэтгэгдэл",
- "%1$s commented" : "%1$s сэтгэгдэл бичсэн"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/mn.json b/apps/comments/l10n/mn.json
deleted file mode 100644
index b54ba223ed3..00000000000
--- a/apps/comments/l10n/mn.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "Comments" : "Сэтгэгдэл",
- "You commented" : "Та сэтгэгдэл бичсэн байна",
- "{author} commented" : "{author} сэтгэгдэл бичсэн",
- "You commented on %1$s" : "Та %1$s нийтлэл дээр сэтгэгдэл бичсэн байна",
- "You commented on {file}" : "Та {file} сэтгэгдэл бичсэн байна",
- "%1$s commented on %2$s" : "%1$s нь %2$s-д сэтгэгдэл бичсэн",
- "{author} commented on {file}" : "{author} нь {file}-д сэтгэгдэл бичсэн",
- "<strong>Comments</strong> for files" : "Файлууд дахь<strong>Сэтгэгдэлүүд</strong>",
- "Edit comment" : "Сэтгэгдэл засах",
- "Delete comment" : "Сэтгэгдэл устгах",
- "No comments yet, start the conversation!" : "Сэтгэгдэл байхгүй байна",
- "Retry" : "Дахин оролдох",
- "Comment" : "Сэтгэгдэл",
- "%1$s commented" : "%1$s сэтгэгдэл бичсэн"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/ms_MY.js b/apps/comments/l10n/ms_MY.js
deleted file mode 100644
index 37e8518632d..00000000000
--- a/apps/comments/l10n/ms_MY.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "Batal",
- "Save" : "Simpan"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/comments/l10n/ms_MY.json b/apps/comments/l10n/ms_MY.json
deleted file mode 100644
index dd6b20cbd7b..00000000000
--- a/apps/comments/l10n/ms_MY.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Cancel" : "Batal",
- "Save" : "Simpan"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/nl.js b/apps/comments/l10n/nl.js
index bcd7d47fbda..cb42f547b7c 100644
--- a/apps/comments/l10n/nl.js
+++ b/apps/comments/l10n/nl.js
@@ -10,23 +10,27 @@ OC.L10N.register(
"{author} commented on {file}" : "{author} reageerde op {file}",
"<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden",
"Files" : "Bestanden",
+ "You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een opmerking van een account dat intussen is verwijderd",
"{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"",
"Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen",
- "Edit comment" : "Bewerk reactie",
- "Delete comment" : "Verwijder reactie",
- "Cancel edit" : "Annuleer bewerking",
+ "Edit comment" : "Reactie bewerken",
+ "Delete comment" : "Reactie verwijderen",
+ "Cancel edit" : "Bewerking annuleren",
"New comment" : "Nieuwe reactie",
- "Post comment" : "Plaats reactie",
- "@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor smart picker",
+ "Write a comment …" : "Schrijf een reactie…",
+ "Post comment" : "Reactie plaatsen",
+ "@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor Smart Picker",
+ "Could not reload comments" : "Kon reactie niet opnieuw laden",
+ "Failed to mark comments as read" : "Kon reacties niet als gelezen markeren",
"Unable to load the comments list" : "Kan reactielijst niet laden",
"No comments yet, start the conversation!" : "Nog geen reacties, start de discussie!",
"No more messages" : "Geen berichten meer",
"Retry" : "Opnieuw proberen",
"_1 new comment_::_{unread} new comments_" : ["1 nieuwe reactie","{unread} nieuwe reacties"],
"Comment" : "Reactie",
- "An error occurred while trying to edit the comment" : "Er trad een fout op bij het bewerken van de reactie",
+ "An error occurred while trying to edit the comment" : "Er is een fout opgetreden bij het bewerken van de reactie",
"Comment deleted" : "Reactie verwijderd",
- "An error occurred while trying to delete the comment" : "Er trad een fout op bij het verwijderen van de reactie",
- "An error occurred while trying to create the comment" : "Er trad een fout op bij het creëren van de reactie"
+ "An error occurred while trying to delete the comment" : "Er is een fout opgetreden bij het verwijderen van de reactie",
+ "An error occurred while trying to create the comment" : "Er is een fout opgetreden bij het aanmaken van de reactie"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/nl.json b/apps/comments/l10n/nl.json
index 89026ab81f0..6d660138be1 100644
--- a/apps/comments/l10n/nl.json
+++ b/apps/comments/l10n/nl.json
@@ -8,23 +8,27 @@
"{author} commented on {file}" : "{author} reageerde op {file}",
"<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden",
"Files" : "Bestanden",
+ "You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een opmerking van een account dat intussen is verwijderd",
"{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"",
"Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen",
- "Edit comment" : "Bewerk reactie",
- "Delete comment" : "Verwijder reactie",
- "Cancel edit" : "Annuleer bewerking",
+ "Edit comment" : "Reactie bewerken",
+ "Delete comment" : "Reactie verwijderen",
+ "Cancel edit" : "Bewerking annuleren",
"New comment" : "Nieuwe reactie",
- "Post comment" : "Plaats reactie",
- "@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor smart picker",
+ "Write a comment …" : "Schrijf een reactie…",
+ "Post comment" : "Reactie plaatsen",
+ "@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor Smart Picker",
+ "Could not reload comments" : "Kon reactie niet opnieuw laden",
+ "Failed to mark comments as read" : "Kon reacties niet als gelezen markeren",
"Unable to load the comments list" : "Kan reactielijst niet laden",
"No comments yet, start the conversation!" : "Nog geen reacties, start de discussie!",
"No more messages" : "Geen berichten meer",
"Retry" : "Opnieuw proberen",
"_1 new comment_::_{unread} new comments_" : ["1 nieuwe reactie","{unread} nieuwe reacties"],
"Comment" : "Reactie",
- "An error occurred while trying to edit the comment" : "Er trad een fout op bij het bewerken van de reactie",
+ "An error occurred while trying to edit the comment" : "Er is een fout opgetreden bij het bewerken van de reactie",
"Comment deleted" : "Reactie verwijderd",
- "An error occurred while trying to delete the comment" : "Er trad een fout op bij het verwijderen van de reactie",
- "An error occurred while trying to create the comment" : "Er trad een fout op bij het creëren van de reactie"
+ "An error occurred while trying to delete the comment" : "Er is een fout opgetreden bij het verwijderen van de reactie",
+ "An error occurred while trying to create the comment" : "Er is een fout opgetreden bij het aanmaken van de reactie"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/comments/l10n/nn_NO.js b/apps/comments/l10n/nn_NO.js
deleted file mode 100644
index 0e7b091d45c..00000000000
--- a/apps/comments/l10n/nn_NO.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Kommentarar",
- "You commented" : "Du kommenterte",
- "%1$s commented" : "%1$skommenterte",
- "{author} commented" : "{author} kommenterte",
- "You commented on %1$s" : "Du kommenterte på %1$s",
- "You commented on {file}" : "Du kommenterte på {file}",
- "%1$s commented on %2$s" : "%1$s kommenterte på %2$s",
- "Edit comment" : "Rediger kommentar",
- "Delete comment" : "Slett kommentar",
- "No comments yet, start the conversation!" : "Ingen kommetarar enno, start samtala!",
- "Retry" : "Forsøk att",
- "Comment" : "Kommentér",
- "New comment …" : "Ny kommentar...",
- "Post" : "Publiser",
- "Cancel" : "Avbryt",
- "[Deleted user]" : "[Sletta brukar]",
- "More comments …" : "Fleire kommentarar...",
- "Save" : "Lagra",
- "Allowed characters {count} of {max}" : "Tillate tegnmengde {count} av {max}"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/nn_NO.json b/apps/comments/l10n/nn_NO.json
deleted file mode 100644
index ceaac51378d..00000000000
--- a/apps/comments/l10n/nn_NO.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Comments" : "Kommentarar",
- "You commented" : "Du kommenterte",
- "%1$s commented" : "%1$skommenterte",
- "{author} commented" : "{author} kommenterte",
- "You commented on %1$s" : "Du kommenterte på %1$s",
- "You commented on {file}" : "Du kommenterte på {file}",
- "%1$s commented on %2$s" : "%1$s kommenterte på %2$s",
- "Edit comment" : "Rediger kommentar",
- "Delete comment" : "Slett kommentar",
- "No comments yet, start the conversation!" : "Ingen kommetarar enno, start samtala!",
- "Retry" : "Forsøk att",
- "Comment" : "Kommentér",
- "New comment …" : "Ny kommentar...",
- "Post" : "Publiser",
- "Cancel" : "Avbryt",
- "[Deleted user]" : "[Sletta brukar]",
- "More comments …" : "Fleire kommentarar...",
- "Save" : "Lagra",
- "Allowed characters {count} of {max}" : "Tillate tegnmengde {count} av {max}"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/ps.js b/apps/comments/l10n/ps.js
deleted file mode 100644
index a6d30c47411..00000000000
--- a/apps/comments/l10n/ps.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "تبصرې",
- "You commented" : "تاسې تبصره کړې",
- "{author} commented" : "{author} تبصره کړې",
- "You commented on %1$s" : "تاسې په %1$s تبصره کړې",
- "You commented on {file}" : "تاسې په {file} فایل تبصره کړې",
- "%1$s commented on %2$s" : "%1$s په %2$s تبصره کړې",
- "{author} commented on {file}" : "{author} په {file} فایل تبصره کړې",
- "<strong>Comments</strong> for files" : "د فایلونو لپاره <strong>تبصرې</strong>",
- "Edit comment" : "تبصره سمول",
- "Delete comment" : "تبسره ړنګول",
- "No comments yet, start the conversation!" : "تر اوسه تبصره نشته!",
- "Comment" : "تبصره",
- "%1$s commented" : "%1$s تبصره کړې",
- "_%n unread comment_::_%n unread comments_" : ["%n نالوستلې تبصره","%n نالوستلې تبصرې"]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/ps.json b/apps/comments/l10n/ps.json
deleted file mode 100644
index b91e1bc9550..00000000000
--- a/apps/comments/l10n/ps.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "Comments" : "تبصرې",
- "You commented" : "تاسې تبصره کړې",
- "{author} commented" : "{author} تبصره کړې",
- "You commented on %1$s" : "تاسې په %1$s تبصره کړې",
- "You commented on {file}" : "تاسې په {file} فایل تبصره کړې",
- "%1$s commented on %2$s" : "%1$s په %2$s تبصره کړې",
- "{author} commented on {file}" : "{author} په {file} فایل تبصره کړې",
- "<strong>Comments</strong> for files" : "د فایلونو لپاره <strong>تبصرې</strong>",
- "Edit comment" : "تبصره سمول",
- "Delete comment" : "تبسره ړنګول",
- "No comments yet, start the conversation!" : "تر اوسه تبصره نشته!",
- "Comment" : "تبصره",
- "%1$s commented" : "%1$s تبصره کړې",
- "_%n unread comment_::_%n unread comments_" : ["%n نالوستلې تبصره","%n نالوستلې تبصرې"]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/si.js b/apps/comments/l10n/si.js
deleted file mode 100644
index 70c6018c48a..00000000000
--- a/apps/comments/l10n/si.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "අදහස්",
- "You commented" : "ඔබ අදහස් දැක්වා ඇත ",
- "{author} commented" : "{author} අදහස් දැක්වා ඇත",
- "You commented on {file}" : "ඔබ {file} හි අදහස් දැක්වා ඇත",
- "<strong>Comments</strong> for files" : "ගොනු සඳහා <strong>අදහස්</strong>",
- "Edit comment" : "අදහස සංස්කරණය",
- "Post comment" : "අදහසක් පළ කරන්න",
- "No comments yet, start the conversation!" : "තවම අදහස් නැත, සංවාදය ආරම්භ කරන්න!",
- "No more messages" : "තවත් පණිවිඩ නැත",
- "Retry" : "නැවත උත්සාහ කරන්න",
- "Unable to load the comments list" : "අදහස් ලැයිස්තුව පූරණය කළ නොහැකිය",
- "Comment" : "අදහස",
- "An error occurred while trying to edit the comment" : "අදහස සංස්කරණය කිරීමට උත්සාහ කිරීමේදී දෝෂයක් ඇතිවිය",
- "An error occurred while trying to create the comment" : "අදහස සෑදීමට උත්සාහ කිරීමේදී දෝෂයක් ඇතිවිය",
- "%1$s commented" : "%1$s අදහස් දැක්වා ඇත"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/si.json b/apps/comments/l10n/si.json
deleted file mode 100644
index 25c7d43f169..00000000000
--- a/apps/comments/l10n/si.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "අදහස්",
- "You commented" : "ඔබ අදහස් දැක්වා ඇත ",
- "{author} commented" : "{author} අදහස් දැක්වා ඇත",
- "You commented on {file}" : "ඔබ {file} හි අදහස් දැක්වා ඇත",
- "<strong>Comments</strong> for files" : "ගොනු සඳහා <strong>අදහස්</strong>",
- "Edit comment" : "අදහස සංස්කරණය",
- "Post comment" : "අදහසක් පළ කරන්න",
- "No comments yet, start the conversation!" : "තවම අදහස් නැත, සංවාදය ආරම්භ කරන්න!",
- "No more messages" : "තවත් පණිවිඩ නැත",
- "Retry" : "නැවත උත්සාහ කරන්න",
- "Unable to load the comments list" : "අදහස් ලැයිස්තුව පූරණය කළ නොහැකිය",
- "Comment" : "අදහස",
- "An error occurred while trying to edit the comment" : "අදහස සංස්කරණය කිරීමට උත්සාහ කිරීමේදී දෝෂයක් ඇතිවිය",
- "An error occurred while trying to create the comment" : "අදහස සෑදීමට උත්සාහ කිරීමේදී දෝෂයක් ඇතිවිය",
- "%1$s commented" : "%1$s අදහස් දැක්වා ඇත"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/sq.js b/apps/comments/l10n/sq.js
deleted file mode 100644
index 12d0626739c..00000000000
--- a/apps/comments/l10n/sq.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "Komente",
- "You commented" : "Komentuat",
- "{author} commented" : "{autori} u komentua",
- "You commented on %1$s" : "Ju komentuat në %1$s",
- "You commented on {file}" : "Ju komentuat në {file}",
- "%1$s commented on %2$s" : "%1$s komentoi te %2$s",
- "{author} commented on {file}" : "{author} komentoi në {file}",
- "<strong>Comments</strong> for files" : "<strong>Komente</strong> për skedarët",
- "Edit comment" : "Përpunoni komentin",
- "Delete comment" : "Fshije komentin",
- "No comments yet, start the conversation!" : "Akoma asnjë koment, fillo një bisedë!",
- "Retry" : "Riprovoni",
- "Comment" : "Koment",
- "%1$s commented" : "%1$s komentoi",
- "_%n unread comment_::_%n unread comments_" : ["%n komente të palexuara","%n komente të palexuara "]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/sq.json b/apps/comments/l10n/sq.json
deleted file mode 100644
index 76418c4ae6f..00000000000
--- a/apps/comments/l10n/sq.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Comments" : "Komente",
- "You commented" : "Komentuat",
- "{author} commented" : "{autori} u komentua",
- "You commented on %1$s" : "Ju komentuat në %1$s",
- "You commented on {file}" : "Ju komentuat në {file}",
- "%1$s commented on %2$s" : "%1$s komentoi te %2$s",
- "{author} commented on {file}" : "{author} komentoi në {file}",
- "<strong>Comments</strong> for files" : "<strong>Komente</strong> për skedarët",
- "Edit comment" : "Përpunoni komentin",
- "Delete comment" : "Fshije komentin",
- "No comments yet, start the conversation!" : "Akoma asnjë koment, fillo një bisedë!",
- "Retry" : "Riprovoni",
- "Comment" : "Koment",
- "%1$s commented" : "%1$s komentoi",
- "_%n unread comment_::_%n unread comments_" : ["%n komente të palexuara","%n komente të palexuara "]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/sr@latin.js b/apps/comments/l10n/sr@latin.js
deleted file mode 100644
index c2185e95e92..00000000000
--- a/apps/comments/l10n/sr@latin.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "Odustani",
- "Save" : "Sačuvaj"
-},
-"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/comments/l10n/sr@latin.json b/apps/comments/l10n/sr@latin.json
deleted file mode 100644
index f61bed4853a..00000000000
--- a/apps/comments/l10n/sr@latin.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Cancel" : "Odustani",
- "Save" : "Sačuvaj"
-},"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/comments/l10n/th.js b/apps/comments/l10n/th.js
deleted file mode 100644
index 3cf2be63462..00000000000
--- a/apps/comments/l10n/th.js
+++ /dev/null
@@ -1,25 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Comments" : "ความคิดเห็น",
- "You commented" : "คุณได้แสดงความคิดเห็น",
- "%1$s commented" : "%1$s ได้แสดงความคิดเห็น",
- "You commented on %1$s" : "คุณได้แสดงความคิดเห็นบน %1$s",
- "%1$s commented on %2$s" : "%1$s ได้แสดงความคิดเห็นบน %2$s",
- "Edit comment" : "แก้ไขความคิดเห็น",
- "Delete comment" : "ลบความคิดเห็น",
- "No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความคิดเห็นเลย!",
- "_%n unread comment_::_%n unread comments_" : ["%nความคิดเห็นที่ยังไม่ได้อ่าน"],
- "_1 new comment_::_{unread} new comments_" : ["{unread} ความคิดเห็นใหม่"],
- "Comment" : "แสดงความคิดเห็น",
- "New comment …" : "ความคิดเห็นใหม่ ...",
- "Post" : "โพสต์",
- "Cancel" : "ยกเลิก",
- "[Deleted user]" : "[ผู้ใช้ที่ถูกลบ]",
- "More comments …" : "ความคิดเห็นอื่นๆ ...",
- "Save" : "บันทึก",
- "Allowed characters {count} of {max}" : "อนุญาตให้ใช้ {count} จากทั้งหมด {max} ตัวอักษร",
- "Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะอัปเดตความคิดเห็นด้วย id {id}",
- "Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะโพสต์ความคิดเห็น"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/comments/l10n/th.json b/apps/comments/l10n/th.json
deleted file mode 100644
index 06fc6552b38..00000000000
--- a/apps/comments/l10n/th.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{ "translations": {
- "Comments" : "ความคิดเห็น",
- "You commented" : "คุณได้แสดงความคิดเห็น",
- "%1$s commented" : "%1$s ได้แสดงความคิดเห็น",
- "You commented on %1$s" : "คุณได้แสดงความคิดเห็นบน %1$s",
- "%1$s commented on %2$s" : "%1$s ได้แสดงความคิดเห็นบน %2$s",
- "Edit comment" : "แก้ไขความคิดเห็น",
- "Delete comment" : "ลบความคิดเห็น",
- "No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความคิดเห็นเลย!",
- "_%n unread comment_::_%n unread comments_" : ["%nความคิดเห็นที่ยังไม่ได้อ่าน"],
- "_1 new comment_::_{unread} new comments_" : ["{unread} ความคิดเห็นใหม่"],
- "Comment" : "แสดงความคิดเห็น",
- "New comment …" : "ความคิดเห็นใหม่ ...",
- "Post" : "โพสต์",
- "Cancel" : "ยกเลิก",
- "[Deleted user]" : "[ผู้ใช้ที่ถูกลบ]",
- "More comments …" : "ความคิดเห็นอื่นๆ ...",
- "Save" : "บันทึก",
- "Allowed characters {count} of {max}" : "อนุญาตให้ใช้ {count} จากทั้งหมด {max} ตัวอักษร",
- "Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะอัปเดตความคิดเห็นด้วย id {id}",
- "Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะโพสต์ความคิดเห็น"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/comments/l10n/tr.js b/apps/comments/l10n/tr.js
index 25ff8844a18..c8294d0ec30 100644
--- a/apps/comments/l10n/tr.js
+++ b/apps/comments/l10n/tr.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"Files" : "Dosyalar",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "\"{file}\" hakkında bir yorumda silinmiş bir hesap tarafından anıldınız",
"{user} mentioned you in a comment on \"{file}\"" : "{user}, \"{file}\" hakkındaki bir yorumda sizi andı",
- "Files app plugin to add comments to files" : "Dosyalara notlar eklenmesini sağlayan dosyalar uygulaması eki",
+ "Files app plugin to add comments to files" : "Dosyalara notlar eklenmesini sağlayan Dosyalar uygulaması eklentisi",
"Edit comment" : "Yorumu düzenle",
"Delete comment" : "Yorumu sil",
"Cancel edit" : "Düzenlemeyi iptal et",
diff --git a/apps/comments/l10n/tr.json b/apps/comments/l10n/tr.json
index 097cbb5543c..4664a265367 100644
--- a/apps/comments/l10n/tr.json
+++ b/apps/comments/l10n/tr.json
@@ -10,7 +10,7 @@
"Files" : "Dosyalar",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "\"{file}\" hakkında bir yorumda silinmiş bir hesap tarafından anıldınız",
"{user} mentioned you in a comment on \"{file}\"" : "{user}, \"{file}\" hakkındaki bir yorumda sizi andı",
- "Files app plugin to add comments to files" : "Dosyalara notlar eklenmesini sağlayan dosyalar uygulaması eki",
+ "Files app plugin to add comments to files" : "Dosyalara notlar eklenmesini sağlayan Dosyalar uygulaması eklentisi",
"Edit comment" : "Yorumu düzenle",
"Delete comment" : "Yorumu sil",
"Cancel edit" : "Düzenlemeyi iptal et",
diff --git a/apps/comments/l10n/ur_PK.js b/apps/comments/l10n/ur_PK.js
deleted file mode 100644
index 2808425d15a..00000000000
--- a/apps/comments/l10n/ur_PK.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "comments",
- {
- "Cancel" : "منسوخ کریں",
- "Save" : "حفظ"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/comments/l10n/ur_PK.json b/apps/comments/l10n/ur_PK.json
deleted file mode 100644
index 83df86652d2..00000000000
--- a/apps/comments/l10n/ur_PK.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Cancel" : "منسوخ کریں",
- "Save" : "حفظ"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/comments/src/comments-activity-tab.ts b/apps/comments/src/comments-activity-tab.ts
index f092f2b8f5b..77f6c9bca04 100644
--- a/apps/comments/src/comments-activity-tab.ts
+++ b/apps/comments/src/comments-activity-tab.ts
@@ -19,7 +19,7 @@ let ActivityTabPluginInstance
*/
export function registerCommentsPlugins() {
window.OCA.Activity.registerSidebarAction({
- mount: async (el, { context, fileInfo, reload }) => {
+ mount: async (el, { fileInfo, reload }) => {
const pinia = createPinia()
if (!ActivityTabPluginView) {
@@ -29,7 +29,6 @@ export function registerCommentsPlugins() {
}
ActivityTabPluginInstance = new ActivityTabPluginView({
el,
- parent: context,
pinia,
propsData: {
reloadCallback: reload,
@@ -58,10 +57,9 @@ export function registerCommentsPlugins() {
timestamp: moment(comment.props?.creationDateTime).toDate().getTime(),
- mount(element: HTMLElement, { context, reload }) {
+ mount(element: HTMLElement, { reload }) {
this._CommentsViewInstance = new CommentsViewObject({
el: element,
- parent: context,
propsData: {
comment,
resourceId: fileInfo.id,
diff --git a/apps/comments/src/components/Comment.vue b/apps/comments/src/components/Comment.vue
index fb08778b9d2..c8b2b176f42 100644
--- a/apps/comments/src/components/Comment.vue
+++ b/apps/comments/src/components/Comment.vue
@@ -364,7 +364,7 @@ $comment-padding: 10px;
&__message {
white-space: pre-wrap;
- word-break: break-word;
+ word-break: normal;
max-height: 70px;
overflow: hidden;
margin-top: -6px;
diff --git a/apps/comments/tests/Unit/Activity/ListenerTest.php b/apps/comments/tests/Unit/Activity/ListenerTest.php
index 70dec741978..675a28a16b1 100644
--- a/apps/comments/tests/Unit/Activity/ListenerTest.php
+++ b/apps/comments/tests/Unit/Activity/ListenerTest.php
@@ -1,4 +1,7 @@
<?php
+
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,30 +23,17 @@ use OCP\Files\Node;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Share\IShareHelper;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ListenerTest extends TestCase {
-
- /** @var Listener */
- protected $listener;
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $activityManager;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $session;
-
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $appManager;
-
- /** @var IMountProviderCollection|\PHPUnit\Framework\MockObject\MockObject */
- protected $mountProviderCollection;
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- protected $rootFolder;
-
- /** @var IShareHelper|\PHPUnit\Framework\MockObject\MockObject */
- protected $shareHelper;
+ protected IManager&MockObject $activityManager;
+ protected IUserSession&MockObject $session;
+ protected IAppManager&MockObject $appManager;
+ protected IMountProviderCollection&MockObject $mountProviderCollection;
+ protected IRootFolder&MockObject $rootFolder;
+ protected IShareHelper&MockObject $shareHelper;
+ protected Listener $listener;
protected function setUp(): void {
parent::setUp();
@@ -76,7 +66,7 @@ class ListenerTest extends TestCase {
->method('getObjectType')
->willReturn('files');
- /** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
+ /** @var CommentsEvent|MockObject $event */
$event = $this->createMock(CommentsEvent::class);
$event->expects($this->any())
->method('getComment')
@@ -85,13 +75,13 @@ class ListenerTest extends TestCase {
->method('getEvent')
->willReturn(CommentsEvent::EVENT_ADD);
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject $ownerUser */
+ /** @var IUser|MockObject $ownerUser */
$ownerUser = $this->createMock(IUser::class);
$ownerUser->expects($this->any())
->method('getUID')
->willReturn('937393');
- /** @var \PHPUnit\Framework\MockObject\MockObject $mount */
+ /** @var MockObject $mount */
$mount = $this->createMock(ICachedMountFileInfo::class);
$mount->expects($this->any())
->method('getUser')
@@ -133,7 +123,7 @@ class ListenerTest extends TestCase {
->method('getUser')
->willReturn($ownerUser);
- /** @var \PHPUnit\Framework\MockObject\MockObject $activity */
+ /** @var MockObject $activity */
$activity = $this->createMock(IEvent::class);
$activity->expects($this->exactly(count($al['users'])))
->method('setAffectedUser');
diff --git a/apps/comments/tests/Unit/AppInfo/ApplicationTest.php b/apps/comments/tests/Unit/AppInfo/ApplicationTest.php
index abd5b188d44..119db5333b5 100644
--- a/apps/comments/tests/Unit/AppInfo/ApplicationTest.php
+++ b/apps/comments/tests/Unit/AppInfo/ApplicationTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -7,7 +9,12 @@
*/
namespace OCA\Comments\Tests\Unit\AppInfo;
+use OCA\Comments\Activity\Filter;
+use OCA\Comments\Activity\Listener;
+use OCA\Comments\Activity\Provider;
+use OCA\Comments\Activity\Setting;
use OCA\Comments\AppInfo\Application;
+use OCA\Comments\Controller\NotificationsController;
use OCA\Comments\Notification\Notifier;
use OCP\IUserManager;
use OCP\IUserSession;
@@ -38,12 +45,12 @@ class ApplicationTest extends TestCase {
$c = $app->getContainer();
$services = [
- 'OCA\Comments\Controller\NotificationsController',
- 'OCA\Comments\Activity\Filter',
- 'OCA\Comments\Activity\Listener',
- 'OCA\Comments\Activity\Provider',
- 'OCA\Comments\Activity\Setting',
- 'OCA\Comments\Notification\Listener',
+ NotificationsController::class,
+ Filter::class,
+ Listener::class,
+ Provider::class,
+ Setting::class,
+ \OCA\Comments\Notification\Listener::class,
Notifier::class,
];
diff --git a/apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php b/apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php
index c0de0016c31..525bf5e67c8 100644
--- a/apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php
+++ b/apps/comments/tests/Unit/Collaboration/CommentersSorterTest.php
@@ -8,13 +8,12 @@ namespace OCA\Comments\Tests\Unit\Collaboration;
use OCA\Comments\Collaboration\CommentersSorter;
use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CommentersSorterTest extends TestCase {
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
- /** @var CommentersSorter */
- protected $sorter;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected CommentersSorter $sorter;
protected function setUp(): void {
parent::setUp();
@@ -55,7 +54,7 @@ class CommentersSorterTest extends TestCase {
$this->assertEquals($data['expected'], $workArray);
}
- public function sortDataProvider() {
+ public static function sortDataProvider(): array {
return [[
[
#1 – sort properly and otherwise keep existing order
diff --git a/apps/comments/tests/Unit/Controller/NotificationsTest.php b/apps/comments/tests/Unit/Controller/NotificationsTest.php
index ccd808895c8..59d0b9ccb00 100644
--- a/apps/comments/tests/Unit/Controller/NotificationsTest.php
+++ b/apps/comments/tests/Unit/Controller/NotificationsTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -22,26 +24,16 @@ use OCP\IUser;
use OCP\IUserSession;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class NotificationsTest extends TestCase {
- /** @var NotificationsController */
- protected $notificationsController;
-
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- protected $rootFolder;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $session;
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $notificationManager;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $urlGenerator;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IRootFolder&MockObject $rootFolder;
+ protected IUserSession&MockObject $session;
+ protected IManager&MockObject $notificationManager;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected NotificationsController $notificationsController;
protected function setUp(): void {
parent::setUp();
@@ -81,10 +73,6 @@ class NotificationsTest extends TestCase {
$this->urlGenerator->expects($this->exactly(2))
->method('linkToRoute')
- ->withConsecutive(
- ['comments.Notifications.view', ['id' => '42']],
- ['core.login.showLoginForm', ['redirect_url' => 'link-to-comment']]
- )
->willReturnMap([
['comments.Notifications.view', ['id' => '42'], 'link-to-comment'],
['core.login.showLoginForm', ['redirect_url' => 'link-to-comment'], 'link-to-login'],
diff --git a/apps/comments/tests/Unit/EventHandlerTest.php b/apps/comments/tests/Unit/EventHandlerTest.php
index 83ce1af57da..df2876e20a3 100644
--- a/apps/comments/tests/Unit/EventHandlerTest.php
+++ b/apps/comments/tests/Unit/EventHandlerTest.php
@@ -1,4 +1,7 @@
<?php
+
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -10,43 +13,32 @@ use OCA\Comments\Listener\CommentsEventListener;
use OCA\Comments\Notification\Listener as NotificationListener;
use OCP\Comments\CommentsEvent;
use OCP\Comments\IComment;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class EventHandlerTest extends TestCase {
- /** @var CommentsEventListener */
- protected $eventHandler;
-
- /** @var ActivityListener|\PHPUnit\Framework\MockObject\MockObject */
- protected $activityListener;
-
- /** @var NotificationListener|\PHPUnit\Framework\MockObject\MockObject */
- protected $notificationListener;
+ protected ActivityListener&MockObject $activityListener;
+ protected NotificationListener&MockObject $notificationListener;
+ protected CommentsEventListener $eventHandler;
protected function setUp(): void {
parent::setUp();
- $this->activityListener = $this->getMockBuilder(ActivityListener::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->notificationListener = $this->getMockBuilder(NotificationListener::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->activityListener = $this->createMock(ActivityListener::class);
+ $this->notificationListener = $this->createMock(NotificationListener::class);
$this->eventHandler = new CommentsEventListener($this->activityListener, $this->notificationListener);
}
public function testNotFiles(): void {
- /** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
- $comment = $this->getMockBuilder(IComment::class)->getMock();
+ /** @var IComment|MockObject $comment */
+ $comment = $this->createMock(IComment::class);
$comment->expects($this->once())
->method('getObjectType')
->willReturn('smiles');
- /** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
- $event = $this->getMockBuilder(CommentsEvent::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var CommentsEvent|MockObject $event */
+ $event = $this->createMock(CommentsEvent::class);
$event->expects($this->once())
->method('getComment')
->willReturn($comment);
@@ -56,7 +48,7 @@ class EventHandlerTest extends TestCase {
$this->eventHandler->handle($event);
}
- public function handledProvider() {
+ public static function handledProvider(): array {
return [
[CommentsEvent::EVENT_DELETE],
[CommentsEvent::EVENT_UPDATE],
@@ -67,19 +59,16 @@ class EventHandlerTest extends TestCase {
/**
* @dataProvider handledProvider
- * @param string $eventType
*/
- public function testHandled($eventType): void {
- /** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
- $comment = $this->getMockBuilder(IComment::class)->getMock();
+ public function testHandled(string $eventType): void {
+ /** @var IComment|MockObject $comment */
+ $comment = $this->createMock(IComment::class);
$comment->expects($this->once())
->method('getObjectType')
->willReturn('files');
- /** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
- $event = $this->getMockBuilder(CommentsEvent::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var CommentsEvent|MockObject $event */
+ $event = $this->createMock(CommentsEvent::class);
$event->expects($this->atLeastOnce())
->method('getComment')
->willReturn($comment);
diff --git a/apps/comments/tests/Unit/Notification/ListenerTest.php b/apps/comments/tests/Unit/Notification/ListenerTest.php
index a9175b7e203..ae5a3c40bc6 100644
--- a/apps/comments/tests/Unit/Notification/ListenerTest.php
+++ b/apps/comments/tests/Unit/Notification/ListenerTest.php
@@ -14,25 +14,19 @@ use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ListenerTest extends TestCase {
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $notificationManager;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $urlGenerator;
-
- /** @var Listener */
- protected $listener;
+ protected IManager&MockObject $notificationManager;
+ protected IUserManager&MockObject $userManager;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected Listener $listener;
protected function setUp(): void {
parent::setUp();
- $this->notificationManager = $this->createMock(\OCP\Notification\IManager::class);
+ $this->notificationManager = $this->createMock(IManager::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->listener = new Listener(
@@ -41,7 +35,7 @@ class ListenerTest extends TestCase {
);
}
- public function eventProvider() {
+ public static function eventProvider(): array {
return [
[CommentsEvent::EVENT_ADD, 'notify'],
[CommentsEvent::EVENT_UPDATE, 'notify'],
@@ -56,8 +50,8 @@ class ListenerTest extends TestCase {
* @param string $notificationMethod
*/
public function testEvaluate($eventType, $notificationMethod): void {
- /** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
- $comment = $this->getMockBuilder(IComment::class)->getMock();
+ /** @var IComment|MockObject $comment */
+ $comment = $this->createMock(IComment::class);
$comment->expects($this->any())
->method('getObjectType')
->willReturn('files');
@@ -78,10 +72,8 @@ class ListenerTest extends TestCase {
->method('getId')
->willReturn('1234');
- /** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
- $event = $this->getMockBuilder(CommentsEvent::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var CommentsEvent|MockObject $event */
+ $event = $this->createMock(CommentsEvent::class);
$event->expects($this->once())
->method('getComment')
->willReturn($comment);
@@ -89,8 +81,8 @@ class ListenerTest extends TestCase {
->method(('getEvent'))
->willReturn($eventType);
- /** @var INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
- $notification = $this->getMockBuilder(INotification::class)->getMock();
+ /** @var INotification|MockObject $notification */
+ $notification = $this->createMock(INotification::class);
$notification->expects($this->any())
->method($this->anything())
->willReturn($notification);
@@ -106,26 +98,24 @@ class ListenerTest extends TestCase {
$this->userManager->expects($this->exactly(6))
->method('userExists')
- ->withConsecutive(
- ['foobar'],
- ['barfoo'],
- ['foo@bar.com'],
- ['bar@foo.org@foobar.io'],
- ['23452-4333-54353-2342'],
- ['yolo']
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['foobar', true],
+ ['barfoo', true],
+ ['foo@bar.com', true],
+ ['bar@foo.org@foobar.io', true],
+ ['23452-4333-54353-2342', true],
+ ['yolo', true]
+ ]);
$this->listener->evaluate($event);
}
/**
* @dataProvider eventProvider
- * @param string $eventType
*/
- public function testEvaluateNoMentions($eventType): void {
- /** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
- $comment = $this->getMockBuilder(IComment::class)->getMock();
+ public function testEvaluateNoMentions(string $eventType): void {
+ /** @var IComment|MockObject $comment */
+ $comment = $this->createMock(IComment::class);
$comment->expects($this->any())
->method('getObjectType')
->willReturn('files');
@@ -136,10 +126,8 @@ class ListenerTest extends TestCase {
->method('getMentions')
->willReturn([]);
- /** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
- $event = $this->getMockBuilder(CommentsEvent::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var CommentsEvent|MockObject $event */
+ $event = $this->createMock(CommentsEvent::class);
$event->expects($this->once())
->method('getComment')
->willReturn($comment);
@@ -161,8 +149,8 @@ class ListenerTest extends TestCase {
}
public function testEvaluateUserDoesNotExist(): void {
- /** @var IComment|\PHPUnit\Framework\MockObject\MockObject $comment */
- $comment = $this->getMockBuilder(IComment::class)->getMock();
+ /** @var IComment|MockObject $comment */
+ $comment = $this->createMock(IComment::class);
$comment->expects($this->any())
->method('getObjectType')
->willReturn('files');
@@ -176,10 +164,8 @@ class ListenerTest extends TestCase {
->method('getId')
->willReturn('1234');
- /** @var CommentsEvent|\PHPUnit\Framework\MockObject\MockObject $event */
- $event = $this->getMockBuilder(CommentsEvent::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var CommentsEvent|MockObject $event */
+ $event = $this->createMock(CommentsEvent::class);
$event->expects($this->once())
->method('getComment')
->willReturn($comment);
@@ -187,8 +173,8 @@ class ListenerTest extends TestCase {
->method(('getEvent'))
->willReturn(CommentsEvent::EVENT_ADD);
- /** @var INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
- $notification = $this->getMockBuilder(INotification::class)->getMock();
+ /** @var INotification|MockObject $notification */
+ $notification = $this->createMock(INotification::class);
$notification->expects($this->any())
->method($this->anything())
->willReturn($notification);
@@ -203,9 +189,7 @@ class ListenerTest extends TestCase {
$this->userManager->expects($this->once())
->method('userExists')
- ->withConsecutive(
- ['foobar']
- )
+ ->with('foobar')
->willReturn(false);
$this->listener->evaluate($event);
diff --git a/apps/comments/tests/Unit/Notification/NotifierTest.php b/apps/comments/tests/Unit/Notification/NotifierTest.php
index 87b87e646af..37cad0b43df 100644
--- a/apps/comments/tests/Unit/Notification/NotifierTest.php
+++ b/apps/comments/tests/Unit/Notification/NotifierTest.php
@@ -1,4 +1,7 @@
<?php
+
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -23,26 +26,16 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class NotifierTest extends TestCase {
- /** @var Notifier */
- protected $notifier;
- /** @var IFactory|MockObject */
- protected $l10nFactory;
- /** @var IL10N|MockObject */
- protected $l;
- /** @var IRootFolder|MockObject */
- protected $folder;
- /** @var ICommentsManager|MockObject */
- protected $commentsManager;
- /** @var IURLGenerator|MockObject */
- protected $url;
- /** @var IUserManager|MockObject */
- protected $userManager;
- /** @var INotification|MockObject */
- protected $notification;
- /** @var IComment|MockObject */
- protected $comment;
- /** @var string */
- protected $lc = 'tlh_KX';
+ protected IFactory&MockObject $l10nFactory;
+ protected IL10N&MockObject $l;
+ protected IRootFolder&MockObject $folder;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IURLGenerator&MockObject $url;
+ protected IUserManager&MockObject $userManager;
+ protected INotification&MockObject $notification;
+ protected IComment&MockObject $comment;
+ protected Notifier $notifier;
+ protected string $lc = 'tlh_KX';
protected function setUp(): void {
parent::setUp();
@@ -75,9 +68,8 @@ class NotifierTest extends TestCase {
public function testPrepareSuccess(): void {
$fileName = 'Gre\'thor.odp';
$displayName = 'Huraga';
- $message = '@Huraga mentioned you in a comment on "Gre\'thor.odp"';
- /** @var Node|MockObject $node */
+ /** @var Node&MockObject $node */
$node = $this->createMock(Node::class);
$node
->expects($this->atLeastOnce())
@@ -192,7 +184,6 @@ class NotifierTest extends TestCase {
public function testPrepareSuccessDeletedUser(): void {
$fileName = 'Gre\'thor.odp';
- $message = 'You were mentioned on "Gre\'thor.odp", in a comment by an account that has since been deleted';
/** @var Node|MockObject $node */
$node = $this->createMock(Node::class);
diff --git a/apps/contactsinteraction/l10n/fr.js b/apps/contactsinteraction/l10n/fr.js
index 2318a1d66a8..f93ab8d71a5 100644
--- a/apps/contactsinteraction/l10n/fr.js
+++ b/apps/contactsinteraction/l10n/fr.js
@@ -4,6 +4,6 @@ OC.L10N.register(
"Recently contacted" : "Contacté récemment",
"Contacts Interaction" : "Interaction avec les contacts",
"Manages interaction between accounts and contacts" : "Gère l'interaction entre les comptes et les contacts",
- "Collect data about accounts and contacts interactions and provide an address book for the data" : "Collectez des données sur les interactions entre les comptes et les contacts et fournissez un répertoire pour ces données"
+ "Collect data about accounts and contacts interactions and provide an address book for the data" : "Collecte des données sur les interactions entre les comptes et les contacts et fournit un répertoire pour ces données"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/contactsinteraction/l10n/fr.json b/apps/contactsinteraction/l10n/fr.json
index bd51f4d59a5..0f825180e8d 100644
--- a/apps/contactsinteraction/l10n/fr.json
+++ b/apps/contactsinteraction/l10n/fr.json
@@ -2,6 +2,6 @@
"Recently contacted" : "Contacté récemment",
"Contacts Interaction" : "Interaction avec les contacts",
"Manages interaction between accounts and contacts" : "Gère l'interaction entre les comptes et les contacts",
- "Collect data about accounts and contacts interactions and provide an address book for the data" : "Collectez des données sur les interactions entre les comptes et les contacts et fournissez un répertoire pour ces données"
+ "Collect data about accounts and contacts interactions and provide an address book for the data" : "Collecte des données sur les interactions entre les comptes et les contacts et fournit un répertoire pour ces données"
},"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/contactsinteraction/l10n/nl.js b/apps/contactsinteraction/l10n/nl.js
index b351704e257..3c33fb3c464 100644
--- a/apps/contactsinteraction/l10n/nl.js
+++ b/apps/contactsinteraction/l10n/nl.js
@@ -2,6 +2,8 @@ OC.L10N.register(
"contactsinteraction",
{
"Recently contacted" : "Recentelijk gecontacteerd",
- "Contacts Interaction" : "Contactpersoneninteractie"
+ "Contacts Interaction" : "Contactpersoneninteractie",
+ "Manages interaction between accounts and contacts" : "Beheert de interactie tussen accounts en contacten",
+ "Collect data about accounts and contacts interactions and provide an address book for the data" : "Verzamel gegevens over interacties van accounts en contacten en bied een adresboek voor de gegevens"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/contactsinteraction/l10n/nl.json b/apps/contactsinteraction/l10n/nl.json
index b573d989642..648a52aa99d 100644
--- a/apps/contactsinteraction/l10n/nl.json
+++ b/apps/contactsinteraction/l10n/nl.json
@@ -1,5 +1,7 @@
{ "translations": {
"Recently contacted" : "Recentelijk gecontacteerd",
- "Contacts Interaction" : "Contactpersoneninteractie"
+ "Contacts Interaction" : "Contactpersoneninteractie",
+ "Manages interaction between accounts and contacts" : "Beheert de interactie tussen accounts en contacten",
+ "Collect data about accounts and contacts interactions and provide an address book for the data" : "Verzamel gegevens over interacties van accounts en contacten en bied een adresboek voor de gegevens"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/contactsinteraction/tests/Db/RecentContactMapperTest.php b/apps/contactsinteraction/tests/Db/RecentContactMapperTest.php
index 89e192d9da7..f5df27820d7 100644
--- a/apps/contactsinteraction/tests/Db/RecentContactMapperTest.php
+++ b/apps/contactsinteraction/tests/Db/RecentContactMapperTest.php
@@ -21,12 +21,8 @@ use Test\TestCase;
* @group DB
*/
class RecentContactMapperTest extends TestCase {
-
- /** @var RecentContactMapper */
- private $recentContactMapper;
-
- /** @var ITimeFactory */
- private $time;
+ private RecentContactMapper $recentContactMapper;
+ private ITimeFactory $time;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dashboard/l10n/ar.js b/apps/dashboard/l10n/ar.js
index cbc7e805515..0f470b39637 100644
--- a/apps/dashboard/l10n/ar.js
+++ b/apps/dashboard/l10n/ar.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "أهلا، {name} ",
"Happy birthday 🥳🤩🎂🎉" : "عيد ميلاد سعيد 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "عيد ميلاد سعيد, يا {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} أيقونة\"",
"Customize" : "تعديل",
"Edit widgets" : "تعديل أدوات الصفحة الرئيسية",
"Get more widgets from the App Store" : "يمكنك الحصول على المزيد من الأدوات من متجر التطبيقات",
diff --git a/apps/dashboard/l10n/ar.json b/apps/dashboard/l10n/ar.json
index 15ec6f00dcb..45a0facbe46 100644
--- a/apps/dashboard/l10n/ar.json
+++ b/apps/dashboard/l10n/ar.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "أهلا، {name} ",
"Happy birthday 🥳🤩🎂🎉" : "عيد ميلاد سعيد 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "عيد ميلاد سعيد, يا {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} أيقونة\"",
"Customize" : "تعديل",
"Edit widgets" : "تعديل أدوات الصفحة الرئيسية",
"Get more widgets from the App Store" : "يمكنك الحصول على المزيد من الأدوات من متجر التطبيقات",
diff --git a/apps/dashboard/l10n/ast.js b/apps/dashboard/l10n/ast.js
index 068a13291f2..30325efa25e 100644
--- a/apps/dashboard/l10n/ast.js
+++ b/apps/dashboard/l10n/ast.js
@@ -14,7 +14,6 @@ OC.L10N.register(
"Good evening, {name}" : "Bones nueches, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
- "\"{title} icon\"" : "«Iconu de: {title}»",
"Customize" : "Personalizar",
"Edit widgets" : "Editar los widgets",
"Get more widgets from the App Store" : "Consigui más widgets de l'App Store",
diff --git a/apps/dashboard/l10n/ast.json b/apps/dashboard/l10n/ast.json
index 6adf8dae335..65ddc086f24 100644
--- a/apps/dashboard/l10n/ast.json
+++ b/apps/dashboard/l10n/ast.json
@@ -12,7 +12,6 @@
"Good evening, {name}" : "Bones nueches, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
- "\"{title} icon\"" : "«Iconu de: {title}»",
"Customize" : "Personalizar",
"Edit widgets" : "Editar los widgets",
"Get more widgets from the App Store" : "Consigui más widgets de l'App Store",
diff --git a/apps/dashboard/l10n/bg.js b/apps/dashboard/l10n/bg.js
index a3d874b9dde..52bf79b3acc 100644
--- a/apps/dashboard/l10n/bg.js
+++ b/apps/dashboard/l10n/bg.js
@@ -13,7 +13,6 @@ OC.L10N.register(
"Good evening, {name}" : "Добър вечер, {name}",
"Hello" : "Здравейте",
"Hello, {name}" : "Здравейте, {name}",
- "\"{title} icon\"" : "„икона {title}“",
"Customize" : "Персонизиране",
"Edit widgets" : "Редактиране на изпълнимите модули",
"Get more widgets from the App Store" : "Вземете повече приспособления от App Store",
diff --git a/apps/dashboard/l10n/bg.json b/apps/dashboard/l10n/bg.json
index 6efd79f09be..1d240b3440e 100644
--- a/apps/dashboard/l10n/bg.json
+++ b/apps/dashboard/l10n/bg.json
@@ -11,7 +11,6 @@
"Good evening, {name}" : "Добър вечер, {name}",
"Hello" : "Здравейте",
"Hello, {name}" : "Здравейте, {name}",
- "\"{title} icon\"" : "„икона {title}“",
"Customize" : "Персонизиране",
"Edit widgets" : "Редактиране на изпълнимите модули",
"Get more widgets from the App Store" : "Вземете повече приспособления от App Store",
diff --git a/apps/dashboard/l10n/ca.js b/apps/dashboard/l10n/ca.js
index 9866240236a..e1c49734018 100644
--- a/apps/dashboard/l10n/ca.js
+++ b/apps/dashboard/l10n/ca.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Per molts anys 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Per molts anys, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"icona de {title}\"",
"Customize" : "Personalitza",
"Edit widgets" : "Edita els ginys",
"Get more widgets from the App Store" : "Obtén més ginys a la botiga d'aplicacions",
diff --git a/apps/dashboard/l10n/ca.json b/apps/dashboard/l10n/ca.json
index 6a568cb896b..1a96361720c 100644
--- a/apps/dashboard/l10n/ca.json
+++ b/apps/dashboard/l10n/ca.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Per molts anys 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Per molts anys, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"icona de {title}\"",
"Customize" : "Personalitza",
"Edit widgets" : "Edita els ginys",
"Get more widgets from the App Store" : "Obtén més ginys a la botiga d'aplicacions",
diff --git a/apps/dashboard/l10n/cs.js b/apps/dashboard/l10n/cs.js
index 9210dc79f46..a50199ce469 100644
--- a/apps/dashboard/l10n/cs.js
+++ b/apps/dashboard/l10n/cs.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Dobrý den, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Všechno nejlepší k narozeninám 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Všechno nejlepší k narozeninám, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„ikona {title}“",
"Customize" : "Přizpůsobit si",
"Edit widgets" : "Upravit ovládací prvky",
"Get more widgets from the App Store" : "Získat další ovládací prvky z katalogu aplikací",
diff --git a/apps/dashboard/l10n/cs.json b/apps/dashboard/l10n/cs.json
index c64b3280635..8e0d2b79295 100644
--- a/apps/dashboard/l10n/cs.json
+++ b/apps/dashboard/l10n/cs.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Dobrý den, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Všechno nejlepší k narozeninám 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Všechno nejlepší k narozeninám, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„ikona {title}“",
"Customize" : "Přizpůsobit si",
"Edit widgets" : "Upravit ovládací prvky",
"Get more widgets from the App Store" : "Získat další ovládací prvky z katalogu aplikací",
diff --git a/apps/dashboard/l10n/da.js b/apps/dashboard/l10n/da.js
index 6dbf3240587..3f12d287e1f 100644
--- a/apps/dashboard/l10n/da.js
+++ b/apps/dashboard/l10n/da.js
@@ -16,9 +16,8 @@ OC.L10N.register(
"Hello, {name}" : "Hej {name}",
"Happy birthday 🥳🤩🎂🎉" : "Tillykke med fødselsdagen 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Tillykke med fødselsdagen, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} ikon\"",
- "Customize" : "Brugerdefiner",
- "Edit widgets" : "Rediger widgets",
+ "Customize" : "Tilpas",
+ "Edit widgets" : "Tilpas widgets",
"Get more widgets from the App Store" : "Få flere widgets fra App Store",
"Weather service" : "Vejret",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv, er det din Nextcloud-server der henter vejr-data og udbyderen modtager således ingen oplysninger om dig.",
diff --git a/apps/dashboard/l10n/da.json b/apps/dashboard/l10n/da.json
index 8b184ce6989..c110ae91b79 100644
--- a/apps/dashboard/l10n/da.json
+++ b/apps/dashboard/l10n/da.json
@@ -14,9 +14,8 @@
"Hello, {name}" : "Hej {name}",
"Happy birthday 🥳🤩🎂🎉" : "Tillykke med fødselsdagen 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Tillykke med fødselsdagen, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} ikon\"",
- "Customize" : "Brugerdefiner",
- "Edit widgets" : "Rediger widgets",
+ "Customize" : "Tilpas",
+ "Edit widgets" : "Tilpas widgets",
"Get more widgets from the App Store" : "Få flere widgets fra App Store",
"Weather service" : "Vejret",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv, er det din Nextcloud-server der henter vejr-data og udbyderen modtager således ingen oplysninger om dig.",
diff --git a/apps/dashboard/l10n/de.js b/apps/dashboard/l10n/de.js
index 9fc197d7167..b7cbd1adb43 100644
--- a/apps/dashboard/l10n/de.js
+++ b/apps/dashboard/l10n/de.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hallo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title}-Symbol\"",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Hole dir weitere Widgets aus dem App-Store",
diff --git a/apps/dashboard/l10n/de.json b/apps/dashboard/l10n/de.json
index 230f4a87ece..bb44568bf30 100644
--- a/apps/dashboard/l10n/de.json
+++ b/apps/dashboard/l10n/de.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hallo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title}-Symbol\"",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Hole dir weitere Widgets aus dem App-Store",
diff --git a/apps/dashboard/l10n/de_DE.js b/apps/dashboard/l10n/de_DE.js
index f1b2916cd67..4b9b21e1a34 100644
--- a/apps/dashboard/l10n/de_DE.js
+++ b/apps/dashboard/l10n/de_DE.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hallo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title}-Symbol\"",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Holen Sie sich weitere Widgets aus dem App-Store",
diff --git a/apps/dashboard/l10n/de_DE.json b/apps/dashboard/l10n/de_DE.json
index ba2ab517a4a..4c8ffbec68d 100644
--- a/apps/dashboard/l10n/de_DE.json
+++ b/apps/dashboard/l10n/de_DE.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hallo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Alles Gute zum Geburtstag, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title}-Symbol\"",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Holen Sie sich weitere Widgets aus dem App-Store",
diff --git a/apps/dashboard/l10n/en_GB.js b/apps/dashboard/l10n/en_GB.js
index f4050daff2a..0a277fddf96 100644
--- a/apps/dashboard/l10n/en_GB.js
+++ b/apps/dashboard/l10n/en_GB.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hello, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Happy birthday 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Happy birthday, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} icon\"",
"Customize" : "Customise",
"Edit widgets" : "Edit widgets",
"Get more widgets from the App Store" : "Get more widgets from the App Store",
diff --git a/apps/dashboard/l10n/en_GB.json b/apps/dashboard/l10n/en_GB.json
index c0d7640f04b..456645e9a65 100644
--- a/apps/dashboard/l10n/en_GB.json
+++ b/apps/dashboard/l10n/en_GB.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hello, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Happy birthday 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Happy birthday, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} icon\"",
"Customize" : "Customise",
"Edit widgets" : "Edit widgets",
"Get more widgets from the App Store" : "Get more widgets from the App Store",
diff --git a/apps/dashboard/l10n/es.js b/apps/dashboard/l10n/es.js
index 3c27523d67b..e8c266813f6 100644
--- a/apps/dashboard/l10n/es.js
+++ b/apps/dashboard/l10n/es.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Feliz cumpleaños 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Feliz cumpleaños, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"icono {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
diff --git a/apps/dashboard/l10n/es.json b/apps/dashboard/l10n/es.json
index 5099c13e47a..07776366228 100644
--- a/apps/dashboard/l10n/es.json
+++ b/apps/dashboard/l10n/es.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Feliz cumpleaños 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Feliz cumpleaños, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"icono {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
diff --git a/apps/dashboard/l10n/es_EC.js b/apps/dashboard/l10n/es_EC.js
index 2bad48d3946..4a68faffe73 100644
--- a/apps/dashboard/l10n/es_EC.js
+++ b/apps/dashboard/l10n/es_EC.js
@@ -13,7 +13,6 @@ OC.L10N.register(
"Good evening, {name}" : "Buenas noches, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
- "\"{title} icon\"" : "\"icono {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
diff --git a/apps/dashboard/l10n/es_EC.json b/apps/dashboard/l10n/es_EC.json
index aa891ede5fb..fd17cc8eb02 100644
--- a/apps/dashboard/l10n/es_EC.json
+++ b/apps/dashboard/l10n/es_EC.json
@@ -11,7 +11,6 @@
"Good evening, {name}" : "Buenas noches, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
- "\"{title} icon\"" : "\"icono {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
diff --git a/apps/dashboard/l10n/es_MX.js b/apps/dashboard/l10n/es_MX.js
index 34da665b988..48520d3066e 100644
--- a/apps/dashboard/l10n/es_MX.js
+++ b/apps/dashboard/l10n/es_MX.js
@@ -14,7 +14,6 @@ OC.L10N.register(
"Good evening, {name}" : "Buenas tardes, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
- "\"{title} icon\"" : "\"ícono de {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
diff --git a/apps/dashboard/l10n/es_MX.json b/apps/dashboard/l10n/es_MX.json
index bbe9417cd30..737d4e16add 100644
--- a/apps/dashboard/l10n/es_MX.json
+++ b/apps/dashboard/l10n/es_MX.json
@@ -12,7 +12,6 @@
"Good evening, {name}" : "Buenas tardes, {name}",
"Hello" : "Hola",
"Hello, {name}" : "Hola, {name}",
- "\"{title} icon\"" : "\"ícono de {title}\"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Conseguir más widgets desde la tienda de Apps",
diff --git a/apps/dashboard/l10n/et_EE.js b/apps/dashboard/l10n/et_EE.js
index 8c313ee08e8..0fb3ed71058 100644
--- a/apps/dashboard/l10n/et_EE.js
+++ b/apps/dashboard/l10n/et_EE.js
@@ -16,13 +16,12 @@ OC.L10N.register(
"Hello, {name}" : "Tere, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Palju õnne sünnipäevaks 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Palju õnne, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„{title} ikoon“",
"Customize" : "Kohanda",
"Edit widgets" : "Muuda vidinaid",
- "Get more widgets from the App Store" : "Hangi rohkem vidinaid Rakenduste Poest",
+ "Get more widgets from the App Store" : "Rakenduste Poest leiad veel vidinaid",
"Weather service" : "Ilmateenus",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Sinu privaatsuse huvides küsib su nimel ilmaandmeid Nextcloudi server, nii et ilmateenistus ei saa isiklikku teavet.",
- "Weather data from Met.no" : "Ilmaandmed Met.no-st",
+ "Weather data from Met.no" : "Met.no ilmaennustus",
"geocoding with Nominatim" : "geoprogrammeerimine Nominatimiga",
"elevation data from OpenTopoData" : "kõrgusandmed OpenTopoDatast"
},
diff --git a/apps/dashboard/l10n/et_EE.json b/apps/dashboard/l10n/et_EE.json
index 39b5fa632f1..e0e04bd32ba 100644
--- a/apps/dashboard/l10n/et_EE.json
+++ b/apps/dashboard/l10n/et_EE.json
@@ -14,13 +14,12 @@
"Hello, {name}" : "Tere, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Palju õnne sünnipäevaks 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Palju õnne, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„{title} ikoon“",
"Customize" : "Kohanda",
"Edit widgets" : "Muuda vidinaid",
- "Get more widgets from the App Store" : "Hangi rohkem vidinaid Rakenduste Poest",
+ "Get more widgets from the App Store" : "Rakenduste Poest leiad veel vidinaid",
"Weather service" : "Ilmateenus",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Sinu privaatsuse huvides küsib su nimel ilmaandmeid Nextcloudi server, nii et ilmateenistus ei saa isiklikku teavet.",
- "Weather data from Met.no" : "Ilmaandmed Met.no-st",
+ "Weather data from Met.no" : "Met.no ilmaennustus",
"geocoding with Nominatim" : "geoprogrammeerimine Nominatimiga",
"elevation data from OpenTopoData" : "kõrgusandmed OpenTopoDatast"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/dashboard/l10n/eu.js b/apps/dashboard/l10n/eu.js
index eccb212ea76..b448a10cc77 100644
--- a/apps/dashboard/l10n/eu.js
+++ b/apps/dashboard/l10n/eu.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Kaixo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Zorionak 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Zorionak, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} ikonoa\"",
"Customize" : "Pertsonalizatu",
"Edit widgets" : "Editatu trepetak",
"Get more widgets from the App Store" : "Lortu trepeta (widget) gehiago Aplikazioen Dendatik",
diff --git a/apps/dashboard/l10n/eu.json b/apps/dashboard/l10n/eu.json
index 7d07259c94b..7aa15665f4a 100644
--- a/apps/dashboard/l10n/eu.json
+++ b/apps/dashboard/l10n/eu.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Kaixo, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Zorionak 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Zorionak, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} ikonoa\"",
"Customize" : "Pertsonalizatu",
"Edit widgets" : "Editatu trepetak",
"Get more widgets from the App Store" : "Lortu trepeta (widget) gehiago Aplikazioen Dendatik",
diff --git a/apps/dashboard/l10n/fa.js b/apps/dashboard/l10n/fa.js
index 18f97b30576..919a62e38b7 100644
--- a/apps/dashboard/l10n/fa.js
+++ b/apps/dashboard/l10n/fa.js
@@ -14,13 +14,15 @@ OC.L10N.register(
"Good evening, {name}" : " عصر به‌خیر {name}",
"Hello" : "درود",
"Hello, {name}" : "درود {name}",
- "\"{title} icon\"" : "«نقشک {title}»",
+ "Happy birthday 🥳🤩🎂🎉" : "تولدت مبارک 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "تولدت مبارک، {name} 🥳🤩🎂🎉",
"Customize" : "سفارشی‌سازی",
"Edit widgets" : "ویرایش ابزارک‌ها",
- "Get more widgets from the App Store" : "گرفتن ابزارک‌های بیش‌تر از فروشکاه کاره",
+ "Get more widgets from the App Store" : "گرفتن ابزارک‌های بیش‌تر از فروشگاه کاره",
"Weather service" : "خدمت هواشناسی",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "برای محرمانگیتان، داده‌های آب و هوا از طرف کارساز نکست‌کلودتان درخواست می‌شود تا خدمت آب و هوا هیچ اطّلاعات شخصی‌ای دریافت نکند.",
"Weather data from Met.no" : "اطلاعات هواشناسی از Met.no",
+ "geocoding with Nominatim" : "کدگذاری جغرافیایی با Nominatim",
"elevation data from OpenTopoData" : "داده‌های ارتفاع از OpenTopoData"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/dashboard/l10n/fa.json b/apps/dashboard/l10n/fa.json
index 512ebbe0a1d..4f199569778 100644
--- a/apps/dashboard/l10n/fa.json
+++ b/apps/dashboard/l10n/fa.json
@@ -12,13 +12,15 @@
"Good evening, {name}" : " عصر به‌خیر {name}",
"Hello" : "درود",
"Hello, {name}" : "درود {name}",
- "\"{title} icon\"" : "«نقشک {title}»",
+ "Happy birthday 🥳🤩🎂🎉" : "تولدت مبارک 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "تولدت مبارک، {name} 🥳🤩🎂🎉",
"Customize" : "سفارشی‌سازی",
"Edit widgets" : "ویرایش ابزارک‌ها",
- "Get more widgets from the App Store" : "گرفتن ابزارک‌های بیش‌تر از فروشکاه کاره",
+ "Get more widgets from the App Store" : "گرفتن ابزارک‌های بیش‌تر از فروشگاه کاره",
"Weather service" : "خدمت هواشناسی",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "برای محرمانگیتان، داده‌های آب و هوا از طرف کارساز نکست‌کلودتان درخواست می‌شود تا خدمت آب و هوا هیچ اطّلاعات شخصی‌ای دریافت نکند.",
"Weather data from Met.no" : "اطلاعات هواشناسی از Met.no",
+ "geocoding with Nominatim" : "کدگذاری جغرافیایی با Nominatim",
"elevation data from OpenTopoData" : "داده‌های ارتفاع از OpenTopoData"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/dashboard/l10n/fr.js b/apps/dashboard/l10n/fr.js
index 7f3470a59f0..1d4000fb4da 100644
--- a/apps/dashboard/l10n/fr.js
+++ b/apps/dashboard/l10n/fr.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Bonjour {name}",
"Happy birthday 🥳🤩🎂🎉" : "Joyeux anniversaire ! 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Joyeux anniversaire, {name}! 🥳🤩🎂🎉",
- "\"{title} icon\"" : "« Icône {title} »",
"Customize" : "Personnaliser",
"Edit widgets" : "Modifier les widgets",
"Get more widgets from the App Store" : "Obtenez plus de widgets depuis le magasin d’applications",
diff --git a/apps/dashboard/l10n/fr.json b/apps/dashboard/l10n/fr.json
index 9f4fd034b6e..d8a3a6c2a3d 100644
--- a/apps/dashboard/l10n/fr.json
+++ b/apps/dashboard/l10n/fr.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Bonjour {name}",
"Happy birthday 🥳🤩🎂🎉" : "Joyeux anniversaire ! 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Joyeux anniversaire, {name}! 🥳🤩🎂🎉",
- "\"{title} icon\"" : "« Icône {title} »",
"Customize" : "Personnaliser",
"Edit widgets" : "Modifier les widgets",
"Get more widgets from the App Store" : "Obtenez plus de widgets depuis le magasin d’applications",
diff --git a/apps/dashboard/l10n/ga.js b/apps/dashboard/l10n/ga.js
index 2ad756df2c0..822af0b13b6 100644
--- a/apps/dashboard/l10n/ga.js
+++ b/apps/dashboard/l10n/ga.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Dia dhuit, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Lá breithe shona duit 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Lá breithe shona duit, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} deilbhín\"",
"Customize" : "Saincheap",
"Edit widgets" : "Cuir giuirléidí in eagar",
"Get more widgets from the App Store" : "Faigh tuilleadh giuirléidí ón Siopa Aip",
diff --git a/apps/dashboard/l10n/ga.json b/apps/dashboard/l10n/ga.json
index afc8137bab7..15a81edad3a 100644
--- a/apps/dashboard/l10n/ga.json
+++ b/apps/dashboard/l10n/ga.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Dia dhuit, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Lá breithe shona duit 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Lá breithe shona duit, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} deilbhín\"",
"Customize" : "Saincheap",
"Edit widgets" : "Cuir giuirléidí in eagar",
"Get more widgets from the App Store" : "Faigh tuilleadh giuirléidí ón Siopa Aip",
diff --git a/apps/dashboard/l10n/gl.js b/apps/dashboard/l10n/gl.js
index 2f81e867b15..7fadf650ba6 100644
--- a/apps/dashboard/l10n/gl.js
+++ b/apps/dashboard/l10n/gl.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Ola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Feliz aniversario 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Feliz aniversario, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "«icona {title}»",
"Customize" : "Personalizar",
"Edit widgets" : "Editar trebellos",
"Get more widgets from the App Store" : "Obter máis trebellos na tenda de aplicacións",
diff --git a/apps/dashboard/l10n/gl.json b/apps/dashboard/l10n/gl.json
index 9793d2e25a1..16691d49cf4 100644
--- a/apps/dashboard/l10n/gl.json
+++ b/apps/dashboard/l10n/gl.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Ola, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Feliz aniversario 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Feliz aniversario, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "«icona {title}»",
"Customize" : "Personalizar",
"Edit widgets" : "Editar trebellos",
"Get more widgets from the App Store" : "Obter máis trebellos na tenda de aplicacións",
diff --git a/apps/dashboard/l10n/hu.js b/apps/dashboard/l10n/hu.js
index 615abab2904..1d0666068f2 100644
--- a/apps/dashboard/l10n/hu.js
+++ b/apps/dashboard/l10n/hu.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Üdv {name}!",
"Happy birthday 🥳🤩🎂🎉" : "Boldog születésnapot 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Boldog születésnapot, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„{title} ikon”",
"Customize" : "Testreszabás",
"Edit widgets" : "Modulok szerkesztése",
"Get more widgets from the App Store" : "További modulok letöltése az alkalmazástárból.",
diff --git a/apps/dashboard/l10n/hu.json b/apps/dashboard/l10n/hu.json
index 29eb14f730d..97fa9de655c 100644
--- a/apps/dashboard/l10n/hu.json
+++ b/apps/dashboard/l10n/hu.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Üdv {name}!",
"Happy birthday 🥳🤩🎂🎉" : "Boldog születésnapot 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Boldog születésnapot, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„{title} ikon”",
"Customize" : "Testreszabás",
"Edit widgets" : "Modulok szerkesztése",
"Get more widgets from the App Store" : "További modulok letöltése az alkalmazástárból.",
diff --git a/apps/dashboard/l10n/is.js b/apps/dashboard/l10n/is.js
index 2d9e5e89ca5..dd76d9f206b 100644
--- a/apps/dashboard/l10n/is.js
+++ b/apps/dashboard/l10n/is.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Halló, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Til hamingju með afmælið 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Til hamingju með afmælið {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} táknmynd\"",
"Customize" : "Sérsníða",
"Edit widgets" : "Breyta viðmótshlutum",
"Get more widgets from the App Store" : "Náðu í fleiri viðmótshluta í forritasafninu",
diff --git a/apps/dashboard/l10n/is.json b/apps/dashboard/l10n/is.json
index c943afc1f47..3ff21287fd0 100644
--- a/apps/dashboard/l10n/is.json
+++ b/apps/dashboard/l10n/is.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Halló, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Til hamingju með afmælið 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Til hamingju með afmælið {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} táknmynd\"",
"Customize" : "Sérsníða",
"Edit widgets" : "Breyta viðmótshlutum",
"Get more widgets from the App Store" : "Náðu í fleiri viðmótshluta í forritasafninu",
diff --git a/apps/dashboard/l10n/it.js b/apps/dashboard/l10n/it.js
index f8fc5449f76..99e14e72265 100644
--- a/apps/dashboard/l10n/it.js
+++ b/apps/dashboard/l10n/it.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Ciao {name}",
"Happy birthday 🥳🤩🎂🎉" : "Buon compleanno 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Buon compleanno, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"Icona {title}\"",
"Customize" : "Personalizza",
"Edit widgets" : "Modifica widget",
"Get more widgets from the App Store" : "Ottieni altri widget dal negozio delle applicazioni",
diff --git a/apps/dashboard/l10n/it.json b/apps/dashboard/l10n/it.json
index 13fb2b32604..bd8d7040eb5 100644
--- a/apps/dashboard/l10n/it.json
+++ b/apps/dashboard/l10n/it.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Ciao {name}",
"Happy birthday 🥳🤩🎂🎉" : "Buon compleanno 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Buon compleanno, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"Icona {title}\"",
"Customize" : "Personalizza",
"Edit widgets" : "Modifica widget",
"Get more widgets from the App Store" : "Ottieni altri widget dal negozio delle applicazioni",
diff --git a/apps/dashboard/l10n/ja.js b/apps/dashboard/l10n/ja.js
index 97410539843..68bd7d2c15c 100644
--- a/apps/dashboard/l10n/ja.js
+++ b/apps/dashboard/l10n/ja.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "こんにちは、{name} さん",
"Happy birthday 🥳🤩🎂🎉" : "お誕生日おめでとう 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "お誕生日おめでとう、{name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} アイコン\"",
"Customize" : "カスタマイズ",
"Edit widgets" : "ウィジェットを編集",
"Get more widgets from the App Store" : "アプリストアから他のガジェットを入手",
diff --git a/apps/dashboard/l10n/ja.json b/apps/dashboard/l10n/ja.json
index ff121e729e4..a62e26cdddd 100644
--- a/apps/dashboard/l10n/ja.json
+++ b/apps/dashboard/l10n/ja.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "こんにちは、{name} さん",
"Happy birthday 🥳🤩🎂🎉" : "お誕生日おめでとう 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "お誕生日おめでとう、{name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} アイコン\"",
"Customize" : "カスタマイズ",
"Edit widgets" : "ウィジェットを編集",
"Get more widgets from the App Store" : "アプリストアから他のガジェットを入手",
diff --git a/apps/dashboard/l10n/lt_LT.js b/apps/dashboard/l10n/lt_LT.js
index 40181a59310..7552e456c5d 100644
--- a/apps/dashboard/l10n/lt_LT.js
+++ b/apps/dashboard/l10n/lt_LT.js
@@ -15,7 +15,6 @@ OC.L10N.register(
"Hello, {name}" : "Sveiki, {name},",
"Happy birthday 🥳🤩🎂🎉" : "Su gimtadieniu 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Su gimtadieniu, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„{title} piktograma“",
"Customize" : "Tinkinti",
"Edit widgets" : "Taisyti valdiklius",
"Get more widgets from the App Store" : "Parsisiųsti įskiepių iš App Store",
diff --git a/apps/dashboard/l10n/lt_LT.json b/apps/dashboard/l10n/lt_LT.json
index c2df9016135..535d6f28253 100644
--- a/apps/dashboard/l10n/lt_LT.json
+++ b/apps/dashboard/l10n/lt_LT.json
@@ -13,7 +13,6 @@
"Hello, {name}" : "Sveiki, {name},",
"Happy birthday 🥳🤩🎂🎉" : "Su gimtadieniu 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Su gimtadieniu, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„{title} piktograma“",
"Customize" : "Tinkinti",
"Edit widgets" : "Taisyti valdiklius",
"Get more widgets from the App Store" : "Parsisiųsti įskiepių iš App Store",
diff --git a/apps/dashboard/l10n/mk.js b/apps/dashboard/l10n/mk.js
index 650179098bd..576e9a45c02 100644
--- a/apps/dashboard/l10n/mk.js
+++ b/apps/dashboard/l10n/mk.js
@@ -13,7 +13,6 @@ OC.L10N.register(
"Good evening, {name}" : "Добровечер, {name}",
"Hello" : "Здраво",
"Hello, {name}" : "Здраво, {name}",
- "\"{title} icon\"" : "\"{title} икона\"",
"Customize" : "Прилагоди",
"Edit widgets" : "Уреди графички контроли",
"Get more widgets from the App Store" : "Преземи повеќе графички контроли од продавницата со апликации",
diff --git a/apps/dashboard/l10n/mk.json b/apps/dashboard/l10n/mk.json
index 163c188073e..c3c5e0e1f68 100644
--- a/apps/dashboard/l10n/mk.json
+++ b/apps/dashboard/l10n/mk.json
@@ -11,7 +11,6 @@
"Good evening, {name}" : "Добровечер, {name}",
"Hello" : "Здраво",
"Hello, {name}" : "Здраво, {name}",
- "\"{title} icon\"" : "\"{title} икона\"",
"Customize" : "Прилагоди",
"Edit widgets" : "Уреди графички контроли",
"Get more widgets from the App Store" : "Преземи повеќе графички контроли од продавницата со апликации",
diff --git a/apps/dashboard/l10n/nb.js b/apps/dashboard/l10n/nb.js
index 5bc7a9ba998..4bcb04b188d 100644
--- a/apps/dashboard/l10n/nb.js
+++ b/apps/dashboard/l10n/nb.js
@@ -14,7 +14,6 @@ OC.L10N.register(
"Good evening, {name}" : "God kveld, {name}",
"Hello" : "Hallo",
"Hello, {name}" : "Hallo, {name}",
- "\"{title} icon\"" : "\"{title} ikon\"",
"Customize" : "Tilpass",
"Edit widgets" : "Rediger widgets",
"Get more widgets from the App Store" : "Få flere widgets fra app-butikken",
diff --git a/apps/dashboard/l10n/nb.json b/apps/dashboard/l10n/nb.json
index fccc6d0686a..9f1ad8bc524 100644
--- a/apps/dashboard/l10n/nb.json
+++ b/apps/dashboard/l10n/nb.json
@@ -12,7 +12,6 @@
"Good evening, {name}" : "God kveld, {name}",
"Hello" : "Hallo",
"Hello, {name}" : "Hallo, {name}",
- "\"{title} icon\"" : "\"{title} ikon\"",
"Customize" : "Tilpass",
"Edit widgets" : "Rediger widgets",
"Get more widgets from the App Store" : "Få flere widgets fra app-butikken",
diff --git a/apps/dashboard/l10n/nl.js b/apps/dashboard/l10n/nl.js
index bc4ca77bd69..7fc3bdc2177 100644
--- a/apps/dashboard/l10n/nl.js
+++ b/apps/dashboard/l10n/nl.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Dashboard" : "Dashboard",
"Dashboard app" : "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! People can add the widgets they like and change the background to their liking." : "Begin je dag geïnformeerd\n\nHet Nextcloud Dashboard is je startpunt van de dag en biedt je een overzicht van je aankomende afspraken, dringende e-mails, chatberichten, binnenkomende tickets, laatste tweets en nog veel meer! Mensen kunnen de widgets toevoegen die ze leuk vinden en de achtergrond naar wens aanpassen.",
"Weather" : "Weer",
"Status" : "Status",
"Good morning" : "Goedemorgen",
@@ -13,6 +14,8 @@ OC.L10N.register(
"Good evening, {name}" : "Goedenavond, {name}",
"Hello" : "Hallo",
"Hello, {name}" : "Hallo, {name}",
+ "Happy birthday 🥳🤩🎂🎉" : "Fijne verjaardag 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "Fijne verjaardag, {name} 🥳🤩🎂🎉",
"Customize" : "Aanpassen",
"Edit widgets" : "Widgets bewerken",
"Get more widgets from the App Store" : "Haal meer widgets op uit de App Store",
diff --git a/apps/dashboard/l10n/nl.json b/apps/dashboard/l10n/nl.json
index bce68caa408..5b56e7b0cb9 100644
--- a/apps/dashboard/l10n/nl.json
+++ b/apps/dashboard/l10n/nl.json
@@ -1,6 +1,7 @@
{ "translations": {
"Dashboard" : "Dashboard",
"Dashboard app" : "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! People can add the widgets they like and change the background to their liking." : "Begin je dag geïnformeerd\n\nHet Nextcloud Dashboard is je startpunt van de dag en biedt je een overzicht van je aankomende afspraken, dringende e-mails, chatberichten, binnenkomende tickets, laatste tweets en nog veel meer! Mensen kunnen de widgets toevoegen die ze leuk vinden en de achtergrond naar wens aanpassen.",
"Weather" : "Weer",
"Status" : "Status",
"Good morning" : "Goedemorgen",
@@ -11,6 +12,8 @@
"Good evening, {name}" : "Goedenavond, {name}",
"Hello" : "Hallo",
"Hello, {name}" : "Hallo, {name}",
+ "Happy birthday 🥳🤩🎂🎉" : "Fijne verjaardag 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "Fijne verjaardag, {name} 🥳🤩🎂🎉",
"Customize" : "Aanpassen",
"Edit widgets" : "Widgets bewerken",
"Get more widgets from the App Store" : "Haal meer widgets op uit de App Store",
diff --git a/apps/dashboard/l10n/pl.js b/apps/dashboard/l10n/pl.js
index 34c60ac18ba..e82dafdff97 100644
--- a/apps/dashboard/l10n/pl.js
+++ b/apps/dashboard/l10n/pl.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Witaj {name}",
"Happy birthday 🥳🤩🎂🎉" : "Najlepsze życzenia urodzinowe 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Najlepsze życzenia urodzinowe, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"ikona {title}\"",
"Customize" : "Dostosuj",
"Edit widgets" : "Edytuj widżety",
"Get more widgets from the App Store" : "Pobierz więcej widżetów z Nextcloud App Store",
diff --git a/apps/dashboard/l10n/pl.json b/apps/dashboard/l10n/pl.json
index 3e80ee3ca3d..5659df99fc7 100644
--- a/apps/dashboard/l10n/pl.json
+++ b/apps/dashboard/l10n/pl.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Witaj {name}",
"Happy birthday 🥳🤩🎂🎉" : "Najlepsze życzenia urodzinowe 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Najlepsze życzenia urodzinowe, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"ikona {title}\"",
"Customize" : "Dostosuj",
"Edit widgets" : "Edytuj widżety",
"Get more widgets from the App Store" : "Pobierz więcej widżetów z Nextcloud App Store",
diff --git a/apps/dashboard/l10n/pt_BR.js b/apps/dashboard/l10n/pt_BR.js
index df0ca910594..ebdafb1859f 100644
--- a/apps/dashboard/l10n/pt_BR.js
+++ b/apps/dashboard/l10n/pt_BR.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"Dashboard" : "Painel",
"Dashboard app" : "Aplicativo Painel",
- "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! People can add the widgets they like and change the background to their liking." : "Comece o dia informado \n\nO Painel do Nextcloud (Nextcloud Dashboard) é o seu ponto de partida do dia, oferecendo uma visão geral de seus próximos agendamentos, e-mails urgentes, mensagens de bate-papo, tickets recebidos, tweets mais recentes e muito mais! As pessoas podem adicionar os widgets que desejarem e alterar o plano de fundo de acordo com sua preferência.",
+ "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! People can add the widgets they like and change the background to their liking." : "Comece o dia informado \n\nO Painel do Nextcloud (Nextcloud Dashboard) é o seu ponto de partida do dia, oferecendo uma visão geral de seus próximos compromissos, e-mails urgentes, mensagens de bate-papo, tickets recebidos, tweets mais recentes e muito mais! As pessoas podem adicionar os widgets que desejarem e alterar o plano de fundo de acordo com sua preferência.",
"Weather" : "Clima",
"Status" : "Status",
"Good morning" : "Bom dia",
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Olá, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Feliz Aniversário 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Feliz Aniversário, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"ícone de {title} \"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Obtenha mais widgets na Loja de Aplicativos",
diff --git a/apps/dashboard/l10n/pt_BR.json b/apps/dashboard/l10n/pt_BR.json
index 3d02d95d5b8..d0f5b67d72f 100644
--- a/apps/dashboard/l10n/pt_BR.json
+++ b/apps/dashboard/l10n/pt_BR.json
@@ -1,7 +1,7 @@
{ "translations": {
"Dashboard" : "Painel",
"Dashboard app" : "Aplicativo Painel",
- "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! People can add the widgets they like and change the background to their liking." : "Comece o dia informado \n\nO Painel do Nextcloud (Nextcloud Dashboard) é o seu ponto de partida do dia, oferecendo uma visão geral de seus próximos agendamentos, e-mails urgentes, mensagens de bate-papo, tickets recebidos, tweets mais recentes e muito mais! As pessoas podem adicionar os widgets que desejarem e alterar o plano de fundo de acordo com sua preferência.",
+ "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! People can add the widgets they like and change the background to their liking." : "Comece o dia informado \n\nO Painel do Nextcloud (Nextcloud Dashboard) é o seu ponto de partida do dia, oferecendo uma visão geral de seus próximos compromissos, e-mails urgentes, mensagens de bate-papo, tickets recebidos, tweets mais recentes e muito mais! As pessoas podem adicionar os widgets que desejarem e alterar o plano de fundo de acordo com sua preferência.",
"Weather" : "Clima",
"Status" : "Status",
"Good morning" : "Bom dia",
@@ -14,7 +14,6 @@
"Hello, {name}" : "Olá, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Feliz Aniversário 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Feliz Aniversário, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"ícone de {title} \"",
"Customize" : "Personalizar",
"Edit widgets" : "Editar widgets",
"Get more widgets from the App Store" : "Obtenha mais widgets na Loja de Aplicativos",
diff --git a/apps/dashboard/l10n/ro.js b/apps/dashboard/l10n/ro.js
index 8b522b96c13..994add35f36 100644
--- a/apps/dashboard/l10n/ro.js
+++ b/apps/dashboard/l10n/ro.js
@@ -13,6 +13,8 @@ OC.L10N.register(
"Good evening, {name}" : "Bună seara, {name}",
"Hello" : "Bună",
"Hello, {name}" : "Bună, {name}",
+ "Happy birthday 🥳🤩🎂🎉" : "La mulți ani 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "La mulți ani, {name} 🥳🤩🎂🎉",
"Customize" : "Personalizează",
"Edit widgets" : "Editează widget",
"Get more widgets from the App Store" : "Obține mai multe widget-uri din App Store",
diff --git a/apps/dashboard/l10n/ro.json b/apps/dashboard/l10n/ro.json
index 9c1ab72eaa9..02048973360 100644
--- a/apps/dashboard/l10n/ro.json
+++ b/apps/dashboard/l10n/ro.json
@@ -11,6 +11,8 @@
"Good evening, {name}" : "Bună seara, {name}",
"Hello" : "Bună",
"Hello, {name}" : "Bună, {name}",
+ "Happy birthday 🥳🤩🎂🎉" : "La mulți ani 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "La mulți ani, {name} 🥳🤩🎂🎉",
"Customize" : "Personalizează",
"Edit widgets" : "Editează widget",
"Get more widgets from the App Store" : "Obține mai multe widget-uri din App Store",
diff --git a/apps/dashboard/l10n/ru.js b/apps/dashboard/l10n/ru.js
index 16c595ac1cf..0185325a1df 100644
--- a/apps/dashboard/l10n/ru.js
+++ b/apps/dashboard/l10n/ru.js
@@ -14,7 +14,8 @@ OC.L10N.register(
"Good evening, {name}" : "Добрый вечер, {name}",
"Hello" : "Здравствуйте",
"Hello, {name}" : "Здравствуйте, {name}!",
- "\"{title} icon\"" : "\"{title} иконка\"",
+ "Happy birthday 🥳🤩🎂🎉" : "С днём рождения! 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "С днём рождения, {name}! 🥳🤩🎂🎉",
"Customize" : "Настроить",
"Edit widgets" : "Редактировать виджеты",
"Get more widgets from the App Store" : "Загрузить виджеты из магазина приложений",
diff --git a/apps/dashboard/l10n/ru.json b/apps/dashboard/l10n/ru.json
index 14dac286388..34f140d3171 100644
--- a/apps/dashboard/l10n/ru.json
+++ b/apps/dashboard/l10n/ru.json
@@ -12,7 +12,8 @@
"Good evening, {name}" : "Добрый вечер, {name}",
"Hello" : "Здравствуйте",
"Hello, {name}" : "Здравствуйте, {name}!",
- "\"{title} icon\"" : "\"{title} иконка\"",
+ "Happy birthday 🥳🤩🎂🎉" : "С днём рождения! 🥳🤩🎂🎉",
+ "Happy birthday, {name} 🥳🤩🎂🎉" : "С днём рождения, {name}! 🥳🤩🎂🎉",
"Customize" : "Настроить",
"Edit widgets" : "Редактировать виджеты",
"Get more widgets from the App Store" : "Загрузить виджеты из магазина приложений",
diff --git a/apps/dashboard/l10n/sk.js b/apps/dashboard/l10n/sk.js
index 5a37ecbc0a5..2716325c7e8 100644
--- a/apps/dashboard/l10n/sk.js
+++ b/apps/dashboard/l10n/sk.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Ahoj, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Všetko najlepšie k narodeninám 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Všetko najlepšie k narodeninám, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} ikona\"",
"Customize" : "Prispôsobiť",
"Edit widgets" : "Upraviť miniaplikácie",
"Get more widgets from the App Store" : "Získať viac miniaplikácií v Obchode s aplikáciami",
diff --git a/apps/dashboard/l10n/sk.json b/apps/dashboard/l10n/sk.json
index 615529d33e4..c74b055cb5d 100644
--- a/apps/dashboard/l10n/sk.json
+++ b/apps/dashboard/l10n/sk.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Ahoj, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Všetko najlepšie k narodeninám 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Všetko najlepšie k narodeninám, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} ikona\"",
"Customize" : "Prispôsobiť",
"Edit widgets" : "Upraviť miniaplikácie",
"Get more widgets from the App Store" : "Získať viac miniaplikácií v Obchode s aplikáciami",
diff --git a/apps/dashboard/l10n/sl.js b/apps/dashboard/l10n/sl.js
index e198ee9d615..9ee87af3e6e 100644
--- a/apps/dashboard/l10n/sl.js
+++ b/apps/dashboard/l10n/sl.js
@@ -14,7 +14,6 @@ OC.L10N.register(
"Good evening, {name}" : "Dober večer, {name}",
"Hello" : "Pozdravljeni",
"Hello, {name}" : "Pozdravljeni, {name}",
- "\"{title} icon\"" : "»Ikona {title}«",
"Customize" : "Prilagodi",
"Edit widgets" : "Izbor gradnikov",
"Get more widgets from the App Store" : "Pridobi več gradnikov s spletišča App Store",
diff --git a/apps/dashboard/l10n/sl.json b/apps/dashboard/l10n/sl.json
index bb34855f945..fd64b0e1b56 100644
--- a/apps/dashboard/l10n/sl.json
+++ b/apps/dashboard/l10n/sl.json
@@ -12,7 +12,6 @@
"Good evening, {name}" : "Dober večer, {name}",
"Hello" : "Pozdravljeni",
"Hello, {name}" : "Pozdravljeni, {name}",
- "\"{title} icon\"" : "»Ikona {title}«",
"Customize" : "Prilagodi",
"Edit widgets" : "Izbor gradnikov",
"Get more widgets from the App Store" : "Pridobi več gradnikov s spletišča App Store",
diff --git a/apps/dashboard/l10n/sr.js b/apps/dashboard/l10n/sr.js
index 00ebbddca65..e647f915fe7 100644
--- a/apps/dashboard/l10n/sr.js
+++ b/apps/dashboard/l10n/sr.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Здраво, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Срећан рођендан 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Срећан рођендан {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„{title} икона”",
"Customize" : "Прилагођавање",
"Edit widgets" : "Уређивање виџета",
"Get more widgets from the App Store" : "Преузмите још виџета из Продавнице апликација",
diff --git a/apps/dashboard/l10n/sr.json b/apps/dashboard/l10n/sr.json
index c8d6cf78e3b..05f1f7dda72 100644
--- a/apps/dashboard/l10n/sr.json
+++ b/apps/dashboard/l10n/sr.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Здраво, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Срећан рођендан 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Срећан рођендан {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "„{title} икона”",
"Customize" : "Прилагођавање",
"Edit widgets" : "Уређивање виџета",
"Get more widgets from the App Store" : "Преузмите још виџета из Продавнице апликација",
diff --git a/apps/dashboard/l10n/sv.js b/apps/dashboard/l10n/sv.js
index 5760124eb6e..8e7c46e93c4 100644
--- a/apps/dashboard/l10n/sv.js
+++ b/apps/dashboard/l10n/sv.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Hej, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Grattis på födelsedagen 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Grattis på födelsedagen, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title}-ikon\"",
"Customize" : "Anpassa",
"Edit widgets" : "Ändra widgetar",
"Get more widgets from the App Store" : "Hämta fler widgetar från Appstore",
diff --git a/apps/dashboard/l10n/sv.json b/apps/dashboard/l10n/sv.json
index 942930ce188..4c6b6d239c4 100644
--- a/apps/dashboard/l10n/sv.json
+++ b/apps/dashboard/l10n/sv.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Hej, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Grattis på födelsedagen 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Grattis på födelsedagen, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title}-ikon\"",
"Customize" : "Anpassa",
"Edit widgets" : "Ändra widgetar",
"Get more widgets from the App Store" : "Hämta fler widgetar från Appstore",
diff --git a/apps/dashboard/l10n/tr.js b/apps/dashboard/l10n/tr.js
index d20d2426fdd..0ca94d0a5d0 100644
--- a/apps/dashboard/l10n/tr.js
+++ b/apps/dashboard/l10n/tr.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Merhaba {name}",
"Happy birthday 🥳🤩🎂🎉" : "Mutlu yıllar 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Mutlu yıllar, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} simgesi\"",
"Customize" : "Özelleştir",
"Edit widgets" : "Pano bileşenlerini düzenle",
"Get more widgets from the App Store" : "Uygulama mağazasından başka pano bileşenleri alın",
diff --git a/apps/dashboard/l10n/tr.json b/apps/dashboard/l10n/tr.json
index 7bb9204043a..714f1c70745 100644
--- a/apps/dashboard/l10n/tr.json
+++ b/apps/dashboard/l10n/tr.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Merhaba {name}",
"Happy birthday 🥳🤩🎂🎉" : "Mutlu yıllar 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Mutlu yıllar, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} simgesi\"",
"Customize" : "Özelleştir",
"Edit widgets" : "Pano bileşenlerini düzenle",
"Get more widgets from the App Store" : "Uygulama mağazasından başka pano bileşenleri alın",
diff --git a/apps/dashboard/l10n/ug.js b/apps/dashboard/l10n/ug.js
index d3ff800a05d..40ef3144e77 100644
--- a/apps/dashboard/l10n/ug.js
+++ b/apps/dashboard/l10n/ug.js
@@ -14,7 +14,6 @@ OC.L10N.register(
"Good evening, {name}" : "خەيرلىك كەچ ، {name}",
"Hello" : "ياخشىمۇسىز",
"Hello, {name}" : "ياخشىمۇسىز ، {name}",
- "\"{title} icon\"" : "\"{title} سىنبەلگىسى\"",
"Customize" : "Customize",
"Edit widgets" : "كىچىك قوراللارنى تەھرىرلەش",
"Get more widgets from the App Store" : "ئەپ دۇكىنىدىن تېخىمۇ كۆپ كىچىك قوراللارغا ئېرىشىڭ",
diff --git a/apps/dashboard/l10n/ug.json b/apps/dashboard/l10n/ug.json
index e962429e80f..3b551538828 100644
--- a/apps/dashboard/l10n/ug.json
+++ b/apps/dashboard/l10n/ug.json
@@ -12,7 +12,6 @@
"Good evening, {name}" : "خەيرلىك كەچ ، {name}",
"Hello" : "ياخشىمۇسىز",
"Hello, {name}" : "ياخشىمۇسىز ، {name}",
- "\"{title} icon\"" : "\"{title} سىنبەلگىسى\"",
"Customize" : "Customize",
"Edit widgets" : "كىچىك قوراللارنى تەھرىرلەش",
"Get more widgets from the App Store" : "ئەپ دۇكىنىدىن تېخىمۇ كۆپ كىچىك قوراللارغا ئېرىشىڭ",
diff --git a/apps/dashboard/l10n/uk.js b/apps/dashboard/l10n/uk.js
index 9c7131b52e7..c611c807349 100644
--- a/apps/dashboard/l10n/uk.js
+++ b/apps/dashboard/l10n/uk.js
@@ -15,7 +15,6 @@ OC.L10N.register(
"Hello, {name}" : "Привіт, {name}",
"Happy birthday 🥳🤩🎂🎉" : "З Днем народження 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "З Днем народження, {name} 🥳🤩🎂🎉",
- "\"{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 231c1aa9cbc..d3f3c712dc3 100644
--- a/apps/dashboard/l10n/uk.json
+++ b/apps/dashboard/l10n/uk.json
@@ -13,7 +13,6 @@
"Hello, {name}" : "Привіт, {name}",
"Happy birthday 🥳🤩🎂🎉" : "З Днем народження 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "З Днем народження, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} \"іконка\"",
"Customize" : "Редагувати",
"Edit widgets" : "Редагувати віджети",
"Get more widgets from the App Store" : "Більше віджетів у каталозі застосунків",
diff --git a/apps/dashboard/l10n/uz.js b/apps/dashboard/l10n/uz.js
index e85d5ea9296..23282080b47 100644
--- a/apps/dashboard/l10n/uz.js
+++ b/apps/dashboard/l10n/uz.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "Assalomu aleykum, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Tug'ilgan kun muborak bo'lsin 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Tug'ilgan kun muborak bo'lsin, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} belgisi\"",
"Customize" : "Moslashtirish",
"Edit widgets" : "Vidjetlarni tahrirlash",
"Get more widgets from the App Store" : "App Store'dan ko'proq vidjetlarni oling",
diff --git a/apps/dashboard/l10n/uz.json b/apps/dashboard/l10n/uz.json
index 22ce852402a..b2b24b7dcdb 100644
--- a/apps/dashboard/l10n/uz.json
+++ b/apps/dashboard/l10n/uz.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "Assalomu aleykum, {name}",
"Happy birthday 🥳🤩🎂🎉" : "Tug'ilgan kun muborak bo'lsin 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "Tug'ilgan kun muborak bo'lsin, {name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} belgisi\"",
"Customize" : "Moslashtirish",
"Edit widgets" : "Vidjetlarni tahrirlash",
"Get more widgets from the App Store" : "App Store'dan ko'proq vidjetlarni oling",
diff --git a/apps/dashboard/l10n/vi.js b/apps/dashboard/l10n/vi.js
index 6be5e56c41a..dbe1b126d44 100644
--- a/apps/dashboard/l10n/vi.js
+++ b/apps/dashboard/l10n/vi.js
@@ -13,7 +13,6 @@ OC.L10N.register(
"Good evening, {name}" : "Chào buổi tối, {name}",
"Hello" : "Xin chào",
"Hello, {name}" : "Xin chào, {name}",
- "\"{title} icon\"" : "\"{title} icon\"",
"Customize" : "Tuỳ chỉnh",
"Edit widgets" : "Chỉnh sửa widget",
"Get more widgets from the App Store" : "Tải thêm widget từ App Store",
diff --git a/apps/dashboard/l10n/vi.json b/apps/dashboard/l10n/vi.json
index bd2743a9b1d..7b302629c4a 100644
--- a/apps/dashboard/l10n/vi.json
+++ b/apps/dashboard/l10n/vi.json
@@ -11,7 +11,6 @@
"Good evening, {name}" : "Chào buổi tối, {name}",
"Hello" : "Xin chào",
"Hello, {name}" : "Xin chào, {name}",
- "\"{title} icon\"" : "\"{title} icon\"",
"Customize" : "Tuỳ chỉnh",
"Edit widgets" : "Chỉnh sửa widget",
"Get more widgets from the App Store" : "Tải thêm widget từ App Store",
diff --git a/apps/dashboard/l10n/zh_CN.js b/apps/dashboard/l10n/zh_CN.js
index 18a0d42f636..0f6c8dcd4c3 100644
--- a/apps/dashboard/l10n/zh_CN.js
+++ b/apps/dashboard/l10n/zh_CN.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "你好, {name}",
"Happy birthday 🥳🤩🎂🎉" : "生日快乐 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "生日快乐,{name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "{title} 图标",
"Customize" : "自定义",
"Edit widgets" : "编辑小部件",
"Get more widgets from the App Store" : "从应用商店获取更多小部件",
diff --git a/apps/dashboard/l10n/zh_CN.json b/apps/dashboard/l10n/zh_CN.json
index 32ae48e0a52..49d2e660723 100644
--- a/apps/dashboard/l10n/zh_CN.json
+++ b/apps/dashboard/l10n/zh_CN.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "你好, {name}",
"Happy birthday 🥳🤩🎂🎉" : "生日快乐 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "生日快乐,{name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "{title} 图标",
"Customize" : "自定义",
"Edit widgets" : "编辑小部件",
"Get more widgets from the App Store" : "从应用商店获取更多小部件",
diff --git a/apps/dashboard/l10n/zh_HK.js b/apps/dashboard/l10n/zh_HK.js
index 15905b4633d..3ec3def4cc4 100644
--- a/apps/dashboard/l10n/zh_HK.js
+++ b/apps/dashboard/l10n/zh_HK.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "哈囉,{name}",
"Happy birthday 🥳🤩🎂🎉" : "生日快樂 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "生日快樂,{name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} 圖示\"",
"Customize" : "自訂",
"Edit widgets" : "編輯小工具",
"Get more widgets from the App Store" : "從 App Store 取得更多小工具",
diff --git a/apps/dashboard/l10n/zh_HK.json b/apps/dashboard/l10n/zh_HK.json
index 46333510a82..6efb17e03a4 100644
--- a/apps/dashboard/l10n/zh_HK.json
+++ b/apps/dashboard/l10n/zh_HK.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "哈囉,{name}",
"Happy birthday 🥳🤩🎂🎉" : "生日快樂 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "生日快樂,{name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "\"{title} 圖示\"",
"Customize" : "自訂",
"Edit widgets" : "編輯小工具",
"Get more widgets from the App Store" : "從 App Store 取得更多小工具",
diff --git a/apps/dashboard/l10n/zh_TW.js b/apps/dashboard/l10n/zh_TW.js
index 472c1ecb5bd..274caee814d 100644
--- a/apps/dashboard/l10n/zh_TW.js
+++ b/apps/dashboard/l10n/zh_TW.js
@@ -16,7 +16,6 @@ OC.L10N.register(
"Hello, {name}" : "嗨,{name}",
"Happy birthday 🥳🤩🎂🎉" : "生日快樂 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "生日快樂,{name} 🥳🤩🎂🎉",
- "\"{title} icon\"" : "「{title} 圖示」",
"Customize" : "自訂",
"Edit widgets" : "編輯小工具",
"Get more widgets from the App Store" : "從應用程式商店取得更多小工具",
diff --git a/apps/dashboard/l10n/zh_TW.json b/apps/dashboard/l10n/zh_TW.json
index 142e61dac51..381dc1b6254 100644
--- a/apps/dashboard/l10n/zh_TW.json
+++ b/apps/dashboard/l10n/zh_TW.json
@@ -14,7 +14,6 @@
"Hello, {name}" : "嗨,{name}",
"Happy birthday 🥳🤩🎂🎉" : "生日快樂 🥳🤩🎂🎉",
"Happy birthday, {name} 🥳🤩🎂🎉" : "生日快樂,{name} 🥳🤩🎂🎉",
- "\"{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 42879a5fc0f..afc874be2c9 100644
--- a/apps/dashboard/src/DashboardApp.vue
+++ b/apps/dashboard/src/DashboardApp.vue
@@ -24,20 +24,10 @@
class="panel">
<div class="panel--header">
<h2>
- <img v-if="apiWidgets[panels[panelId].id].icon_url"
- :alt="apiWidgets[panels[panelId].id].title + ' icon'"
- :src="apiWidgets[panels[panelId].id].icon_url"
- aria-hidden="true">
- <span v-else
- :aria-labelledby="`panel-${panels[panelId].id}--header--icon--description`"
- aria-hidden="true"
- :class="apiWidgets[panels[panelId].id].icon_class"
- role="img" />
+ <img v-if="apiWidgets[panels[panelId].id].icon_url" :src="apiWidgets[panels[panelId].id].icon_url" alt="">
+ <span v-else :class="apiWidgets[panels[panelId].id].icon_class" aria-hidden="true" />
{{ apiWidgets[panels[panelId].id].title }}
</h2>
- <span :id="`panel-${panels[panelId].id}--header--icon--description`" class="hidden-visually">
- {{ t('dashboard', '"{title} icon"', { title: apiWidgets[panels[panelId].id].title }) }}
- </span>
</div>
<div class="panel--content">
<ApiDashboardWidget :widget="apiWidgets[panels[panelId].id]"
@@ -48,13 +38,9 @@
<div v-else :key="panels[panelId].id" class="panel">
<div class="panel--header">
<h2>
- <span :aria-labelledby="`panel-${panels[panelId].id}--header--icon--description`"
- aria-hidden="true"
- :class="panels[panelId].iconClass"
- role="img" />
+ <span :class="panels[panelId].iconClass" aria-hidden="true" />
{{ panels[panelId].title }}
</h2>
- <span :id="`panel-${panels[panelId].id}--header--icon--description`" class="hidden-visually"> {{ t('dashboard', '"{title} icon"', { title: panels[panelId].title }) }} </span>
</div>
<div class="panel--content" :class="{ loading: !panels[panelId].mounted }">
<div :ref="panels[panelId].id" :data-id="panels[panelId].id" />
@@ -102,10 +88,7 @@
:checked="isActive(panel)"
@input="updateCheckbox(panel, $event.target.checked)">
<label :for="'panel-checkbox-' + panel.id" :class="{ draggable: isActive(panel) }">
- <img v-if="panel.iconUrl"
- :alt="panel.title + ' icon'"
- :src="panel.iconUrl"
- aria-hidden="true">
+ <img v-if="panel.iconUrl" alt="" :src="panel.iconUrl">
<span v-else :class="panel.iconClass" aria-hidden="true" />
{{ panel.title }}
</label>
diff --git a/apps/dashboard/tests/DashboardServiceTest.php b/apps/dashboard/tests/DashboardServiceTest.php
index c603b88e7ff..ebcd06cdf03 100644
--- a/apps/dashboard/tests/DashboardServiceTest.php
+++ b/apps/dashboard/tests/DashboardServiceTest.php
@@ -40,7 +40,7 @@ class DashboardServiceTest extends TestCase {
);
}
- public function testGetBirthdate() {
+ public function testGetBirthdate(): void {
$user = $this->createMock(IUser::class);
$this->userManager->method('get')
->willReturn($user);
@@ -61,7 +61,7 @@ class DashboardServiceTest extends TestCase {
$this->assertEquals('2024-12-10T00:00:00.000Z', $birthdate);
}
- public function testGetBirthdatePropertyDoesNotExist() {
+ public function testGetBirthdatePropertyDoesNotExist(): void {
$user = $this->createMock(IUser::class);
$this->userManager->method('get')
->willReturn($user);
@@ -75,7 +75,7 @@ class DashboardServiceTest extends TestCase {
$this->assertEquals('', $birthdate);
}
- public function testGetBirthdateUserNotFound() {
+ public function testGetBirthdateUserNotFound(): void {
$this->userManager->method('get')
->willReturn(null);
@@ -84,7 +84,7 @@ class DashboardServiceTest extends TestCase {
$this->assertEquals('', $birthdate);
}
- public function testGetBirthdateNoUserId() {
+ public function testGetBirthdateNoUserId(): void {
$service = new DashboardService(
$this->config,
null,
diff --git a/apps/dav/appinfo/info.xml b/apps/dav/appinfo/info.xml
index a99bea224b6..a4ce51fd89c 100644
--- a/apps/dav/appinfo/info.xml
+++ b/apps/dav/appinfo/info.xml
@@ -41,6 +41,7 @@
<step>OCA\DAV\Migration\BuildSocialSearchIndex</step>
<step>OCA\DAV\Migration\RefreshWebcalJobRegistrar</step>
<step>OCA\DAV\Migration\RegisterBuildReminderIndexBackgroundJob</step>
+ <step>OCA\DAV\Migration\RegisterUpdateCalendarResourcesRoomBackgroundJob</step>
<step>OCA\DAV\Migration\RemoveOrphanEventsAndContacts</step>
<step>OCA\DAV\Migration\RemoveClassifiedEventActivity</step>
<step>OCA\DAV\Migration\RemoveDeletedUsersCalendarSubscriptions</step>
@@ -55,13 +56,17 @@
</repair-steps>
<commands>
+ <command>OCA\DAV\Command\ClearCalendarUnshares</command>
+ <command>OCA\DAV\Command\ClearContactsPhotoCache</command>
<command>OCA\DAV\Command\CreateAddressBook</command>
<command>OCA\DAV\Command\CreateCalendar</command>
<command>OCA\DAV\Command\CreateSubscription</command>
<command>OCA\DAV\Command\DeleteCalendar</command>
<command>OCA\DAV\Command\DeleteSubscription</command>
+ <command>OCA\DAV\Command\ExportCalendar</command>
<command>OCA\DAV\Command\FixCalendarSyncCommand</command>
<command>OCA\DAV\Command\ListAddressbooks</command>
+ <command>OCA\DAV\Command\ListCalendarShares</command>
<command>OCA\DAV\Command\ListCalendars</command>
<command>OCA\DAV\Command\ListSubscriptions</command>
<command>OCA\DAV\Command\MoveCalendar</command>
diff --git a/apps/dav/appinfo/routes.php b/apps/dav/appinfo/routes.php
index 67bfa44e995..91c1ba58ea2 100644
--- a/apps/dav/appinfo/routes.php
+++ b/apps/dav/appinfo/routes.php
@@ -11,8 +11,6 @@ return [
['name' => 'invitation_response#decline', 'url' => '/invitation/decline/{token}', 'verb' => 'GET'],
['name' => 'invitation_response#options', 'url' => '/invitation/moreOptions/{token}', 'verb' => 'GET'],
['name' => 'invitation_response#processMoreOptionsResult', 'url' => '/invitation/moreOptions/{token}', 'verb' => 'POST'],
- ['name' => 'example_content#setDefaultContact', 'url' => '/api/defaultcontact/contact', 'verb' => 'PUT'],
- ['name' => 'example_content#setEnableDefaultContact', 'url' => '/api/defaultcontact/config', 'verb' => 'PUT'],
],
'ocs' => [
['name' => 'direct#getUrl', 'url' => '/api/v1/direct', 'verb' => 'POST'],
diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php
index 0220332297e..bcd66e47090 100644
--- a/apps/dav/appinfo/v1/carddav.php
+++ b/apps/dav/appinfo/v1/carddav.php
@@ -23,7 +23,6 @@ use OCA\DAV\Connector\Sabre\Principal;
use OCP\Accounts\IAccountManager;
use OCP\App\IAppManager;
use OCP\EventDispatcher\IEventDispatcher;
-use OCP\Files\AppData\IAppDataFactory;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IGroupManager;
@@ -98,10 +97,7 @@ if ($debugging) {
$server->addPlugin(new \Sabre\DAV\Sync\Plugin());
$server->addPlugin(new \Sabre\CardDAV\VCFExportPlugin());
-$server->addPlugin(new ImageExportPlugin(new PhotoCache(
- Server::get(IAppDataFactory::class)->get('dav-photocache'),
- Server::get(LoggerInterface::class)
-)));
+$server->addPlugin(new ImageExportPlugin(Server::get(PhotoCache::class)));
$server->addPlugin(new ExceptionLoggerPlugin('carddav', Server::get(LoggerInterface::class)));
$server->addPlugin(Server::get(CardDavRateLimitingPlugin::class));
$server->addPlugin(Server::get(CardDavValidatePlugin::class));
diff --git a/apps/dav/appinfo/v1/publicwebdav.php b/apps/dav/appinfo/v1/publicwebdav.php
index 85dbb19d290..af49ca5462c 100644
--- a/apps/dav/appinfo/v1/publicwebdav.php
+++ b/apps/dav/appinfo/v1/publicwebdav.php
@@ -68,7 +68,7 @@ $requestUri = Server::get(IRequest::class)->getRequestUri();
$linkCheckPlugin = new PublicLinkCheckPlugin();
$filesDropPlugin = new FilesDropPlugin();
-$server = $serverFactory->createServer($baseuri, $requestUri, $authPlugin, function (\Sabre\DAV\Server $server) use ($authBackend, $linkCheckPlugin, $filesDropPlugin) {
+$server = $serverFactory->createServer(false, $baseuri, $requestUri, $authPlugin, function (\Sabre\DAV\Server $server) use ($authBackend, $linkCheckPlugin, $filesDropPlugin) {
$isAjax = in_array('XMLHttpRequest', explode(',', $_SERVER['HTTP_X_REQUESTED_WITH'] ?? ''));
/** @var FederatedShareProvider $shareProvider */
$federatedShareProvider = Server::get(FederatedShareProvider::class);
@@ -104,11 +104,9 @@ $server = $serverFactory->createServer($baseuri, $requestUri, $authPlugin, funct
if (!$isReadable) {
$filesDropPlugin->enable();
}
-
- $view = new View($node->getPath());
- $filesDropPlugin->setView($view);
$filesDropPlugin->setShare($share);
+ $view = new View($node->getPath());
return $view;
});
diff --git a/apps/dav/appinfo/v1/webdav.php b/apps/dav/appinfo/v1/webdav.php
index baeae66bb20..92ff55c850e 100644
--- a/apps/dav/appinfo/v1/webdav.php
+++ b/apps/dav/appinfo/v1/webdav.php
@@ -68,7 +68,7 @@ $authPlugin->addBackend($bearerAuthPlugin);
$requestUri = Server::get(IRequest::class)->getRequestUri();
-$server = $serverFactory->createServer($baseuri, $requestUri, $authPlugin, function () {
+$server = $serverFactory->createServer(false, $baseuri, $requestUri, $authPlugin, function () {
// use the view for the logged in user
return Filesystem::getView();
});
diff --git a/apps/dav/appinfo/v2/publicremote.php b/apps/dav/appinfo/v2/publicremote.php
index 27b8716f6ae..e089fa7bb62 100644
--- a/apps/dav/appinfo/v2/publicremote.php
+++ b/apps/dav/appinfo/v2/publicremote.php
@@ -14,18 +14,22 @@ use OCA\DAV\Files\Sharing\FilesDropPlugin;
use OCA\DAV\Files\Sharing\PublicLinkCheckPlugin;
use OCA\DAV\Storage\PublicOwnerWrapper;
use OCA\DAV\Storage\PublicShareWrapper;
+use OCA\DAV\Upload\ChunkingPlugin;
+use OCA\DAV\Upload\ChunkingV2Plugin;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCP\BeforeSabrePubliclyLoadedEvent;
use OCP\Constants;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IRootFolder;
use OCP\Files\Mount\IMountManager;
+use OCP\ICacheFactory;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IPreview;
use OCP\IRequest;
use OCP\ISession;
use OCP\ITagManager;
+use OCP\IURLGenerator;
use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\Security\Bruteforce\IThrottler;
@@ -53,7 +57,8 @@ $authBackend = new PublicAuth(
Server::get(IManager::class),
$session,
Server::get(IThrottler::class),
- Server::get(LoggerInterface::class)
+ Server::get(LoggerInterface::class),
+ Server::get(IURLGenerator::class),
);
$authPlugin = new \Sabre\DAV\Auth\Plugin($authBackend);
@@ -75,12 +80,8 @@ $serverFactory = new ServerFactory(
$linkCheckPlugin = new PublicLinkCheckPlugin();
$filesDropPlugin = new FilesDropPlugin();
-// Define root url with /public.php/dav/files/TOKEN
/** @var string $baseuri defined in public.php */
-preg_match('/(^files\/[a-z0-9-_]+)/i', substr($requestUri, strlen($baseuri)), $match);
-$baseuri = $baseuri . $match[0];
-
-$server = $serverFactory->createServer($baseuri, $requestUri, $authPlugin, function (\Sabre\DAV\Server $server) use ($authBackend, $linkCheckPlugin, $filesDropPlugin) {
+$server = $serverFactory->createServer(true, $baseuri, $requestUri, $authPlugin, function (\Sabre\DAV\Server $server) use ($authBackend, $linkCheckPlugin, $filesDropPlugin) {
// GET must be allowed for e.g. showing images and allowing Zip downloads
if ($server->httpRequest->getMethod() !== 'GET') {
// If this is *not* a GET request we only allow access to public DAV from AJAX or when Server2Server is allowed
@@ -132,16 +133,16 @@ $server = $serverFactory->createServer($baseuri, $requestUri, $authPlugin, funct
if (!$isReadable) {
$filesDropPlugin->enable();
}
-
- $view = new View($node->getPath());
- $filesDropPlugin->setView($view);
$filesDropPlugin->setShare($share);
+ $view = new View($node->getPath());
return $view;
});
$server->addPlugin($linkCheckPlugin);
$server->addPlugin($filesDropPlugin);
+$server->addPlugin(new ChunkingV2Plugin(Server::get(ICacheFactory::class)));
+$server->addPlugin(new ChunkingPlugin());
// allow setup of additional plugins
$event = new BeforeSabrePubliclyLoadedEvent($server);
diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php
index 0e0ae51bb7a..28dfeaed498 100644
--- a/apps/dav/composer/composer/autoload_classmap.php
+++ b/apps/dav/composer/composer/autoload_classmap.php
@@ -64,6 +64,7 @@ return array(
'OCA\\DAV\\CalDAV\\EventReader' => $baseDir . '/../lib/CalDAV/EventReader.php',
'OCA\\DAV\\CalDAV\\EventReaderRDate' => $baseDir . '/../lib/CalDAV/EventReaderRDate.php',
'OCA\\DAV\\CalDAV\\EventReaderRRule' => $baseDir . '/../lib/CalDAV/EventReaderRRule.php',
+ 'OCA\\DAV\\CalDAV\\Export\\ExportService' => $baseDir . '/../lib/CalDAV/Export/ExportService.php',
'OCA\\DAV\\CalDAV\\FreeBusy\\FreeBusyGenerator' => $baseDir . '/../lib/CalDAV/FreeBusy/FreeBusyGenerator.php',
'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => $baseDir . '/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
'OCA\\DAV\\CalDAV\\IRestorable' => $baseDir . '/../lib/CalDAV/IRestorable.php',
@@ -154,13 +155,17 @@ return array(
'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir . '/../lib/CardDAV/UserAddressBooks.php',
'OCA\\DAV\\CardDAV\\Validation\\CardDavValidatePlugin' => $baseDir . '/../lib/CardDAV/Validation/CardDavValidatePlugin.php',
'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir . '/../lib/CardDAV/Xml/Groups.php',
+ 'OCA\\DAV\\Command\\ClearCalendarUnshares' => $baseDir . '/../lib/Command/ClearCalendarUnshares.php',
+ 'OCA\\DAV\\Command\\ClearContactsPhotoCache' => $baseDir . '/../lib/Command/ClearContactsPhotoCache.php',
'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir . '/../lib/Command/CreateAddressBook.php',
'OCA\\DAV\\Command\\CreateCalendar' => $baseDir . '/../lib/Command/CreateCalendar.php',
'OCA\\DAV\\Command\\CreateSubscription' => $baseDir . '/../lib/Command/CreateSubscription.php',
'OCA\\DAV\\Command\\DeleteCalendar' => $baseDir . '/../lib/Command/DeleteCalendar.php',
'OCA\\DAV\\Command\\DeleteSubscription' => $baseDir . '/../lib/Command/DeleteSubscription.php',
+ 'OCA\\DAV\\Command\\ExportCalendar' => $baseDir . '/../lib/Command/ExportCalendar.php',
'OCA\\DAV\\Command\\FixCalendarSyncCommand' => $baseDir . '/../lib/Command/FixCalendarSyncCommand.php',
'OCA\\DAV\\Command\\ListAddressbooks' => $baseDir . '/../lib/Command/ListAddressbooks.php',
+ 'OCA\\DAV\\Command\\ListCalendarShares' => $baseDir . '/../lib/Command/ListCalendarShares.php',
'OCA\\DAV\\Command\\ListCalendars' => $baseDir . '/../lib/Command/ListCalendars.php',
'OCA\\DAV\\Command\\ListSubscriptions' => $baseDir . '/../lib/Command/ListSubscriptions.php',
'OCA\\DAV\\Command\\MoveCalendar' => $baseDir . '/../lib/Command/MoveCalendar.php',
@@ -273,6 +278,7 @@ return array(
'OCA\\DAV\\Events\\SubscriptionCreatedEvent' => $baseDir . '/../lib/Events/SubscriptionCreatedEvent.php',
'OCA\\DAV\\Events\\SubscriptionDeletedEvent' => $baseDir . '/../lib/Events/SubscriptionDeletedEvent.php',
'OCA\\DAV\\Events\\SubscriptionUpdatedEvent' => $baseDir . '/../lib/Events/SubscriptionUpdatedEvent.php',
+ 'OCA\\DAV\\Exception\\ExampleEventException' => $baseDir . '/../lib/Exception/ExampleEventException.php',
'OCA\\DAV\\Exception\\ServerMaintenanceMode' => $baseDir . '/../lib/Exception/ServerMaintenanceMode.php',
'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => $baseDir . '/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir . '/../lib/Files/BrowserErrorPagePlugin.php',
@@ -282,6 +288,7 @@ return array(
'OCA\\DAV\\Files\\RootCollection' => $baseDir . '/../lib/Files/RootCollection.php',
'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir . '/../lib/Files/Sharing/FilesDropPlugin.php',
'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
+ 'OCA\\DAV\\Files\\Sharing\\RootCollection' => $baseDir . '/../lib/Files/Sharing/RootCollection.php',
'OCA\\DAV\\Listener\\ActivityUpdaterListener' => $baseDir . '/../lib/Listener/ActivityUpdaterListener.php',
'OCA\\DAV\\Listener\\AddMissingIndicesListener' => $baseDir . '/../lib/Listener/AddMissingIndicesListener.php',
'OCA\\DAV\\Listener\\AddressbookListener' => $baseDir . '/../lib/Listener/AddressbookListener.php',
@@ -311,6 +318,7 @@ return array(
'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => $baseDir . '/../lib/Migration/RefreshWebcalJobRegistrar.php',
'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => $baseDir . '/../lib/Migration/RegenerateBirthdayCalendars.php',
'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => $baseDir . '/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
+ 'OCA\\DAV\\Migration\\RegisterUpdateCalendarResourcesRoomBackgroundJob' => $baseDir . '/../lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php',
'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => $baseDir . '/../lib/Migration/RemoveClassifiedEventActivity.php',
'OCA\\DAV\\Migration\\RemoveDeletedUsersCalendarSubscriptions' => $baseDir . '/../lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php',
'OCA\\DAV\\Migration\\RemoveObjectProperties' => $baseDir . '/../lib/Migration/RemoveObjectProperties.php',
@@ -342,6 +350,7 @@ return array(
'OCA\\DAV\\Migration\\Version1029Date20231004091403' => $baseDir . '/../lib/Migration/Version1029Date20231004091403.php',
'OCA\\DAV\\Migration\\Version1030Date20240205103243' => $baseDir . '/../lib/Migration/Version1030Date20240205103243.php',
'OCA\\DAV\\Migration\\Version1031Date20240610134258' => $baseDir . '/../lib/Migration/Version1031Date20240610134258.php',
+ 'OCA\\DAV\\Model\\ExampleEvent' => $baseDir . '/../lib/Model/ExampleEvent.php',
'OCA\\DAV\\Paginate\\LimitedCopyIterator' => $baseDir . '/../lib/Paginate/LimitedCopyIterator.php',
'OCA\\DAV\\Paginate\\PaginateCache' => $baseDir . '/../lib/Paginate/PaginateCache.php',
'OCA\\DAV\\Paginate\\PaginatePlugin' => $baseDir . '/../lib/Paginate/PaginatePlugin.php',
@@ -357,7 +366,8 @@ return array(
'OCA\\DAV\\Server' => $baseDir . '/../lib/Server.php',
'OCA\\DAV\\ServerFactory' => $baseDir . '/../lib/ServerFactory.php',
'OCA\\DAV\\Service\\AbsenceService' => $baseDir . '/../lib/Service/AbsenceService.php',
- 'OCA\\DAV\\Service\\DefaultContactService' => $baseDir . '/../lib/Service/DefaultContactService.php',
+ 'OCA\\DAV\\Service\\ExampleContactService' => $baseDir . '/../lib/Service/ExampleContactService.php',
+ 'OCA\\DAV\\Service\\ExampleEventService' => $baseDir . '/../lib/Service/ExampleEventService.php',
'OCA\\DAV\\Settings\\Admin\\SystemAddressBookSettings' => $baseDir . '/../lib/Settings/Admin/SystemAddressBookSettings.php',
'OCA\\DAV\\Settings\\AvailabilitySettings' => $baseDir . '/../lib/Settings/AvailabilitySettings.php',
'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir . '/../lib/Settings/CalDAVSettings.php',
@@ -385,6 +395,7 @@ return array(
'OCA\\DAV\\Upload\\FutureFile' => $baseDir . '/../lib/Upload/FutureFile.php',
'OCA\\DAV\\Upload\\PartFile' => $baseDir . '/../lib/Upload/PartFile.php',
'OCA\\DAV\\Upload\\RootCollection' => $baseDir . '/../lib/Upload/RootCollection.php',
+ 'OCA\\DAV\\Upload\\UploadAutoMkcolPlugin' => $baseDir . '/../lib/Upload/UploadAutoMkcolPlugin.php',
'OCA\\DAV\\Upload\\UploadFile' => $baseDir . '/../lib/Upload/UploadFile.php',
'OCA\\DAV\\Upload\\UploadFolder' => $baseDir . '/../lib/Upload/UploadFolder.php',
'OCA\\DAV\\Upload\\UploadHome' => $baseDir . '/../lib/Upload/UploadHome.php',
diff --git a/apps/dav/composer/composer/autoload_static.php b/apps/dav/composer/composer/autoload_static.php
index c6ac9757c5b..83661b73a30 100644
--- a/apps/dav/composer/composer/autoload_static.php
+++ b/apps/dav/composer/composer/autoload_static.php
@@ -79,6 +79,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\CalDAV\\EventReader' => __DIR__ . '/..' . '/../lib/CalDAV/EventReader.php',
'OCA\\DAV\\CalDAV\\EventReaderRDate' => __DIR__ . '/..' . '/../lib/CalDAV/EventReaderRDate.php',
'OCA\\DAV\\CalDAV\\EventReaderRRule' => __DIR__ . '/..' . '/../lib/CalDAV/EventReaderRRule.php',
+ 'OCA\\DAV\\CalDAV\\Export\\ExportService' => __DIR__ . '/..' . '/../lib/CalDAV/Export/ExportService.php',
'OCA\\DAV\\CalDAV\\FreeBusy\\FreeBusyGenerator' => __DIR__ . '/..' . '/../lib/CalDAV/FreeBusy/FreeBusyGenerator.php',
'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
'OCA\\DAV\\CalDAV\\IRestorable' => __DIR__ . '/..' . '/../lib/CalDAV/IRestorable.php',
@@ -169,13 +170,17 @@ class ComposerStaticInitDAV
'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__ . '/..' . '/../lib/CardDAV/UserAddressBooks.php',
'OCA\\DAV\\CardDAV\\Validation\\CardDavValidatePlugin' => __DIR__ . '/..' . '/../lib/CardDAV/Validation/CardDavValidatePlugin.php',
'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__ . '/..' . '/../lib/CardDAV/Xml/Groups.php',
+ 'OCA\\DAV\\Command\\ClearCalendarUnshares' => __DIR__ . '/..' . '/../lib/Command/ClearCalendarUnshares.php',
+ 'OCA\\DAV\\Command\\ClearContactsPhotoCache' => __DIR__ . '/..' . '/../lib/Command/ClearContactsPhotoCache.php',
'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__ . '/..' . '/../lib/Command/CreateAddressBook.php',
'OCA\\DAV\\Command\\CreateCalendar' => __DIR__ . '/..' . '/../lib/Command/CreateCalendar.php',
'OCA\\DAV\\Command\\CreateSubscription' => __DIR__ . '/..' . '/../lib/Command/CreateSubscription.php',
'OCA\\DAV\\Command\\DeleteCalendar' => __DIR__ . '/..' . '/../lib/Command/DeleteCalendar.php',
'OCA\\DAV\\Command\\DeleteSubscription' => __DIR__ . '/..' . '/../lib/Command/DeleteSubscription.php',
+ 'OCA\\DAV\\Command\\ExportCalendar' => __DIR__ . '/..' . '/../lib/Command/ExportCalendar.php',
'OCA\\DAV\\Command\\FixCalendarSyncCommand' => __DIR__ . '/..' . '/../lib/Command/FixCalendarSyncCommand.php',
'OCA\\DAV\\Command\\ListAddressbooks' => __DIR__ . '/..' . '/../lib/Command/ListAddressbooks.php',
+ 'OCA\\DAV\\Command\\ListCalendarShares' => __DIR__ . '/..' . '/../lib/Command/ListCalendarShares.php',
'OCA\\DAV\\Command\\ListCalendars' => __DIR__ . '/..' . '/../lib/Command/ListCalendars.php',
'OCA\\DAV\\Command\\ListSubscriptions' => __DIR__ . '/..' . '/../lib/Command/ListSubscriptions.php',
'OCA\\DAV\\Command\\MoveCalendar' => __DIR__ . '/..' . '/../lib/Command/MoveCalendar.php',
@@ -288,6 +293,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Events\\SubscriptionCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/SubscriptionCreatedEvent.php',
'OCA\\DAV\\Events\\SubscriptionDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/SubscriptionDeletedEvent.php',
'OCA\\DAV\\Events\\SubscriptionUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/SubscriptionUpdatedEvent.php',
+ 'OCA\\DAV\\Exception\\ExampleEventException' => __DIR__ . '/..' . '/../lib/Exception/ExampleEventException.php',
'OCA\\DAV\\Exception\\ServerMaintenanceMode' => __DIR__ . '/..' . '/../lib/Exception/ServerMaintenanceMode.php',
'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => __DIR__ . '/..' . '/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__ . '/..' . '/../lib/Files/BrowserErrorPagePlugin.php',
@@ -297,6 +303,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Files\\RootCollection' => __DIR__ . '/..' . '/../lib/Files/RootCollection.php',
'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/FilesDropPlugin.php',
'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
+ 'OCA\\DAV\\Files\\Sharing\\RootCollection' => __DIR__ . '/..' . '/../lib/Files/Sharing/RootCollection.php',
'OCA\\DAV\\Listener\\ActivityUpdaterListener' => __DIR__ . '/..' . '/../lib/Listener/ActivityUpdaterListener.php',
'OCA\\DAV\\Listener\\AddMissingIndicesListener' => __DIR__ . '/..' . '/../lib/Listener/AddMissingIndicesListener.php',
'OCA\\DAV\\Listener\\AddressbookListener' => __DIR__ . '/..' . '/../lib/Listener/AddressbookListener.php',
@@ -326,6 +333,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => __DIR__ . '/..' . '/../lib/Migration/RefreshWebcalJobRegistrar.php',
'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => __DIR__ . '/..' . '/../lib/Migration/RegenerateBirthdayCalendars.php',
'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
+ 'OCA\\DAV\\Migration\\RegisterUpdateCalendarResourcesRoomBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php',
'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => __DIR__ . '/..' . '/../lib/Migration/RemoveClassifiedEventActivity.php',
'OCA\\DAV\\Migration\\RemoveDeletedUsersCalendarSubscriptions' => __DIR__ . '/..' . '/../lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php',
'OCA\\DAV\\Migration\\RemoveObjectProperties' => __DIR__ . '/..' . '/../lib/Migration/RemoveObjectProperties.php',
@@ -357,6 +365,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Migration\\Version1029Date20231004091403' => __DIR__ . '/..' . '/../lib/Migration/Version1029Date20231004091403.php',
'OCA\\DAV\\Migration\\Version1030Date20240205103243' => __DIR__ . '/..' . '/../lib/Migration/Version1030Date20240205103243.php',
'OCA\\DAV\\Migration\\Version1031Date20240610134258' => __DIR__ . '/..' . '/../lib/Migration/Version1031Date20240610134258.php',
+ 'OCA\\DAV\\Model\\ExampleEvent' => __DIR__ . '/..' . '/../lib/Model/ExampleEvent.php',
'OCA\\DAV\\Paginate\\LimitedCopyIterator' => __DIR__ . '/..' . '/../lib/Paginate/LimitedCopyIterator.php',
'OCA\\DAV\\Paginate\\PaginateCache' => __DIR__ . '/..' . '/../lib/Paginate/PaginateCache.php',
'OCA\\DAV\\Paginate\\PaginatePlugin' => __DIR__ . '/..' . '/../lib/Paginate/PaginatePlugin.php',
@@ -372,7 +381,8 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Server' => __DIR__ . '/..' . '/../lib/Server.php',
'OCA\\DAV\\ServerFactory' => __DIR__ . '/..' . '/../lib/ServerFactory.php',
'OCA\\DAV\\Service\\AbsenceService' => __DIR__ . '/..' . '/../lib/Service/AbsenceService.php',
- 'OCA\\DAV\\Service\\DefaultContactService' => __DIR__ . '/..' . '/../lib/Service/DefaultContactService.php',
+ 'OCA\\DAV\\Service\\ExampleContactService' => __DIR__ . '/..' . '/../lib/Service/ExampleContactService.php',
+ 'OCA\\DAV\\Service\\ExampleEventService' => __DIR__ . '/..' . '/../lib/Service/ExampleEventService.php',
'OCA\\DAV\\Settings\\Admin\\SystemAddressBookSettings' => __DIR__ . '/..' . '/../lib/Settings/Admin/SystemAddressBookSettings.php',
'OCA\\DAV\\Settings\\AvailabilitySettings' => __DIR__ . '/..' . '/../lib/Settings/AvailabilitySettings.php',
'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__ . '/..' . '/../lib/Settings/CalDAVSettings.php',
@@ -400,6 +410,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Upload\\FutureFile' => __DIR__ . '/..' . '/../lib/Upload/FutureFile.php',
'OCA\\DAV\\Upload\\PartFile' => __DIR__ . '/..' . '/../lib/Upload/PartFile.php',
'OCA\\DAV\\Upload\\RootCollection' => __DIR__ . '/..' . '/../lib/Upload/RootCollection.php',
+ 'OCA\\DAV\\Upload\\UploadAutoMkcolPlugin' => __DIR__ . '/..' . '/../lib/Upload/UploadAutoMkcolPlugin.php',
'OCA\\DAV\\Upload\\UploadFile' => __DIR__ . '/..' . '/../lib/Upload/UploadFile.php',
'OCA\\DAV\\Upload\\UploadFolder' => __DIR__ . '/..' . '/../lib/Upload/UploadFolder.php',
'OCA\\DAV\\Upload\\UploadHome' => __DIR__ . '/..' . '/../lib/Upload/UploadHome.php',
diff --git a/apps/dav/css/schedule-response.css b/apps/dav/css/schedule-response.css
index eef571027c5..85a03cb63e1 100644
--- a/apps/dav/css/schedule-response.css
+++ b/apps/dav/css/schedule-response.css
@@ -56,6 +56,7 @@ form #selectPartStatForm label span {
display: block;
line-height: normal;
}
+
form #selectPartStatForm label.ui-state-hover,
form #selectPartStatForm label.ui-state-active {
color:#000;
diff --git a/apps/dav/l10n/ar.js b/apps/dav/l10n/ar.js
index 53dc3590cde..a058786dd54 100644
--- a/apps/dav/l10n/ar.js
+++ b/apps/dav/l10n/ar.js
@@ -290,6 +290,17 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "إختَر وقت البدء ليوم {dayName}",
"Pick a end time for {dayName}" : "إختَر وقت الانتهاء ليوم {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "قم بتعيين حالة المستخدم تلقائيًا على \"عدم الإزعاج\" خارج نطاق أوقات التواجد لكتم جميع الإشعارات",
+ "Cancel" : "إلغاء",
+ "Import" : "إستيراد",
+ "Error while saving settings" : "خطأ أثناء حفظ الإعدادات",
+ "Contact reset successfully" : "تمّت إعادة تعيين جهة الاتصال بنجاحٍ",
+ "Error while resetting contact" : "خطأ أثناء إعادة تعيين جهة الاتصال",
+ "Contact imported successfully" : "تمّ استيراد جهة الاتصال بنجاحٍ",
+ "Error while importing contact" : "خطأ أثناء استيراد جهة الاتصال",
+ "Import contact" : "استيراد جهة اتصال",
+ "Reset to default" : "اعادة تعيين الافتراضيات",
+ "Import contacts" : "استيراد جهات اتصال",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "استيراد ملف .cvf جديد سوف يؤدي إلى حذف جهات الاتصال التلقائية الحالية واستبدالها بالجديدة. هل ترغب في الاستمرار؟",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
@@ -306,27 +317,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "أرسل إشعارات للتذكير إلى المشتركين بالتقويم كذلك",
"Reminders are always sent to organizers and attendees." : "إشعارات التذكير يتم إرسالها دائماً إلى مُنظّم أو مُنظّمي الحدث و المستهدفين بحضوره.",
"Enable notifications for events via push" : "تمكين الإشعارات حول الأحداث عن طريق أسلوب دفع الإشعارات Push",
- "Cancel" : "إلغاء",
- "Import" : "إستيراد",
- "Error while saving settings" : "خطأ أثناء حفظ الإعدادات",
- "Contact reset successfully" : "تمّت إعادة تعيين جهة الاتصال بنجاحٍ",
- "Error while resetting contact" : "خطأ أثناء إعادة تعيين جهة الاتصال",
- "Contact imported successfully" : "تمّ استيراد جهة الاتصال بنجاحٍ",
- "Error while importing contact" : "خطأ أثناء استيراد جهة الاتصال",
- "Example Content" : "نموذج للمحتوى",
- "Set example content to be created on new user first login." : "عيِّن نموذجاً للمحتوى ليتم إنشاؤه عند تسجيل المستخدِم دخوله لأول مرةٍ.",
- "Import contact" : "استيراد جهة اتصال",
- "Reset to default contact" : "إعادة التعيين لجهة اتصال تلقائية ",
- "Import contacts" : "استيراد جهات اتصال",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "استيراد ملف .cvf جديد سوف يؤدي إلى حذف جهات الاتصال التلقائية الحالية واستبدالها بالجديدة. هل ترغب في الاستمرار؟",
"There was an error updating your attendance status." : "حدث خطأ في تحديث حالة حضورك.",
"Please contact the organizer directly." : "يرجى الاتصال بالمنظم مباشرةً",
"Are you accepting the invitation?" : "هل تقبل الدعوة؟",
"Tentative" : "مبدئي",
- "Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ",
- "Time:" : "الوقت:",
- "Could not open file" : "تعذّر فتح الملف",
- "Invalid chunk name" : "اسم كتلة chunk غير صحيح",
- "Could not rename part file assembled from chunks" : "تعذّرت إعادة تسمية ملف جزئي مُجمّعٍ من كُتلٍ chunks"
+ "Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/dav/l10n/ar.json b/apps/dav/l10n/ar.json
index 34884cde46a..212dc54ee03 100644
--- a/apps/dav/l10n/ar.json
+++ b/apps/dav/l10n/ar.json
@@ -288,6 +288,17 @@
"Pick a start time for {dayName}" : "إختَر وقت البدء ليوم {dayName}",
"Pick a end time for {dayName}" : "إختَر وقت الانتهاء ليوم {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "قم بتعيين حالة المستخدم تلقائيًا على \"عدم الإزعاج\" خارج نطاق أوقات التواجد لكتم جميع الإشعارات",
+ "Cancel" : "إلغاء",
+ "Import" : "إستيراد",
+ "Error while saving settings" : "خطأ أثناء حفظ الإعدادات",
+ "Contact reset successfully" : "تمّت إعادة تعيين جهة الاتصال بنجاحٍ",
+ "Error while resetting contact" : "خطأ أثناء إعادة تعيين جهة الاتصال",
+ "Contact imported successfully" : "تمّ استيراد جهة الاتصال بنجاحٍ",
+ "Error while importing contact" : "خطأ أثناء استيراد جهة الاتصال",
+ "Import contact" : "استيراد جهة اتصال",
+ "Reset to default" : "اعادة تعيين الافتراضيات",
+ "Import contacts" : "استيراد جهات اتصال",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "استيراد ملف .cvf جديد سوف يؤدي إلى حذف جهات الاتصال التلقائية الحالية واستبدالها بالجديدة. هل ترغب في الاستمرار؟",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
@@ -304,27 +315,10 @@
"Send reminder notifications to calendar sharees as well" : "أرسل إشعارات للتذكير إلى المشتركين بالتقويم كذلك",
"Reminders are always sent to organizers and attendees." : "إشعارات التذكير يتم إرسالها دائماً إلى مُنظّم أو مُنظّمي الحدث و المستهدفين بحضوره.",
"Enable notifications for events via push" : "تمكين الإشعارات حول الأحداث عن طريق أسلوب دفع الإشعارات Push",
- "Cancel" : "إلغاء",
- "Import" : "إستيراد",
- "Error while saving settings" : "خطأ أثناء حفظ الإعدادات",
- "Contact reset successfully" : "تمّت إعادة تعيين جهة الاتصال بنجاحٍ",
- "Error while resetting contact" : "خطأ أثناء إعادة تعيين جهة الاتصال",
- "Contact imported successfully" : "تمّ استيراد جهة الاتصال بنجاحٍ",
- "Error while importing contact" : "خطأ أثناء استيراد جهة الاتصال",
- "Example Content" : "نموذج للمحتوى",
- "Set example content to be created on new user first login." : "عيِّن نموذجاً للمحتوى ليتم إنشاؤه عند تسجيل المستخدِم دخوله لأول مرةٍ.",
- "Import contact" : "استيراد جهة اتصال",
- "Reset to default contact" : "إعادة التعيين لجهة اتصال تلقائية ",
- "Import contacts" : "استيراد جهات اتصال",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "استيراد ملف .cvf جديد سوف يؤدي إلى حذف جهات الاتصال التلقائية الحالية واستبدالها بالجديدة. هل ترغب في الاستمرار؟",
"There was an error updating your attendance status." : "حدث خطأ في تحديث حالة حضورك.",
"Please contact the organizer directly." : "يرجى الاتصال بالمنظم مباشرةً",
"Are you accepting the invitation?" : "هل تقبل الدعوة؟",
"Tentative" : "مبدئي",
- "Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ",
- "Time:" : "الوقت:",
- "Could not open file" : "تعذّر فتح الملف",
- "Invalid chunk name" : "اسم كتلة chunk غير صحيح",
- "Could not rename part file assembled from chunks" : "تعذّرت إعادة تسمية ملف جزئي مُجمّعٍ من كُتلٍ chunks"
+ "Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ast.js b/apps/dav/l10n/ast.js
index a75c384f6b5..b0cba5d934f 100644
--- a/apps/dav/l10n/ast.js
+++ b/apps/dav/l10n/ast.js
@@ -195,6 +195,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Escueyi una hora de comienzu pal {dayName}",
"Pick a end time for {dayName}" : "Escueyi una hora de fin pal {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Afitar automáticamente l'estáu a «Nun molestar» fuera de la disponibilidá pa desactivar tolos avisos.",
+ "Cancel" : "Encaboxar",
+ "Import" : "Importa",
+ "Error while saving settings" : "Hebo un error mentanto se guardaba la configuración",
+ "Reset to default" : "Reafitar los valores",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
@@ -211,17 +215,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Unvia tamién avisos de recordatoriu pa les persones coles que se compartiere'l calendariu",
"Reminders are always sent to organizers and attendees." : "Los recordatorios únviense siempres a organizadores y asistentes",
"Enable notifications for events via push" : "Acriva los avisos automáticos pa los eventos",
- "Cancel" : "Encaboxar",
- "Import" : "Importa",
- "Error while saving settings" : "Hebo un error mentanto se guardaba la configuración",
"There was an error updating your attendance status." : "Hebo un error al anovar l'estáu de l'asistencia.",
"Please contact the organizer directly." : "Ponte en contautu direutamente cola organización.",
"Are you accepting the invitation?" : "¿Aceptes la invitación?",
"Tentative" : "Provisional",
- "Your attendance was updated successfully." : "La to asistencia anovóse correutamente.",
- "Time:" : "Hora:",
- "Could not open file" : "Nun se pudo abrir el ficheru",
- "Invalid chunk name" : "El nome del cachu ye inválidu",
- "Could not rename part file assembled from chunks" : "Nun se pudo renomar el ficheru parcial ensambláu de los cachos"
+ "Your attendance was updated successfully." : "La to asistencia anovóse correutamente."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/ast.json b/apps/dav/l10n/ast.json
index 584b58f5b1a..519aa700951 100644
--- a/apps/dav/l10n/ast.json
+++ b/apps/dav/l10n/ast.json
@@ -193,6 +193,10 @@
"Pick a start time for {dayName}" : "Escueyi una hora de comienzu pal {dayName}",
"Pick a end time for {dayName}" : "Escueyi una hora de fin pal {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Afitar automáticamente l'estáu a «Nun molestar» fuera de la disponibilidá pa desactivar tolos avisos.",
+ "Cancel" : "Encaboxar",
+ "Import" : "Importa",
+ "Error while saving settings" : "Hebo un error mentanto se guardaba la configuración",
+ "Reset to default" : "Reafitar los valores",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
@@ -209,17 +213,10 @@
"Send reminder notifications to calendar sharees as well" : "Unvia tamién avisos de recordatoriu pa les persones coles que se compartiere'l calendariu",
"Reminders are always sent to organizers and attendees." : "Los recordatorios únviense siempres a organizadores y asistentes",
"Enable notifications for events via push" : "Acriva los avisos automáticos pa los eventos",
- "Cancel" : "Encaboxar",
- "Import" : "Importa",
- "Error while saving settings" : "Hebo un error mentanto se guardaba la configuración",
"There was an error updating your attendance status." : "Hebo un error al anovar l'estáu de l'asistencia.",
"Please contact the organizer directly." : "Ponte en contautu direutamente cola organización.",
"Are you accepting the invitation?" : "¿Aceptes la invitación?",
"Tentative" : "Provisional",
- "Your attendance was updated successfully." : "La to asistencia anovóse correutamente.",
- "Time:" : "Hora:",
- "Could not open file" : "Nun se pudo abrir el ficheru",
- "Invalid chunk name" : "El nome del cachu ye inválidu",
- "Could not rename part file assembled from chunks" : "Nun se pudo renomar el ficheru parcial ensambláu de los cachos"
+ "Your attendance was updated successfully." : "La to asistencia anovóse correutamente."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/bg.js b/apps/dav/l10n/bg.js
index ad4ae1539aa..d8d27bc7d4b 100644
--- a/apps/dav/l10n/bg.js
+++ b/apps/dav/l10n/bg.js
@@ -138,6 +138,7 @@ OC.L10N.register(
"{actor} updated contact {card} in address book {addressbook}" : "{actor} актуализира контакт {card} в адресна книга {addressbook}",
"You updated contact {card} in address book {addressbook}" : "Вие актуализирахте контакт {card} в адресна книга {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Един <strong>contact</strong> или <strong>address book</strong> са променени",
+ "Accounts" : "Профили",
"File is not updatable: %1$s" : "Файлът не подлежи на актуализиране: %1$s",
"Could not write to final file, canceled by hook" : "Не можа да се запише в крайния файл, анулирано от кука",
"Could not write file contents" : "Съдържанието на файла не можа да се запише",
@@ -168,8 +169,16 @@ OC.L10N.register(
"Calendars including events, details and attendees" : "Календари, включително събития, подробности и участници",
"Contacts and groups" : "Контакти и групи",
"WebDAV" : "WebDAV",
+ "Absence saved" : "Отсъствието е запаметено",
+ "Failed to save your absence settings" : "Неуспешно запаметяване на настройките за отсъствие",
+ "Absence cleared" : "Отсъствието е изчистено",
+ "Failed to clear your absence settings" : "Неуспешно изчистване на настройките за отсъствие",
"First day" : "Първи ден",
+ "Last day (inclusive)" : "До (включително)",
+ "Short absence status" : "Кратко описание за периода на отсъствие",
+ "Long absence Message" : "Съобщение, използвано за периода на отсъствие.",
"Save" : "Запазване",
+ "Disable absence" : "Изключи известието за отсъствие",
"Failed to load availability" : "Неуспешно зареждане на наличност",
"Saved availability" : "Запазена наличност",
"Failed to save availability" : "Неуспешно записване на наличност",
@@ -179,7 +188,13 @@ OC.L10N.register(
"No working hours set" : "Няма зададено работно време",
"Add slot" : "Добавяне на слот",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично задаване на потребителският статус на „Не безпокойте“ извън достъпността, за заглушаване на всички известия.",
- "Availability" : "Наличност",
+ "Cancel" : "Отказ",
+ "Import" : "Импортиране /внасяне/",
+ "Error while saving settings" : "Грешка при запазване на настройките",
+ "Reset to default" : "Настройки по подразбиране",
+ "Availability" : "Работно време",
+ "Absence" : "Отсъствия",
+ "Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Също така инсталирайте приложението {calendarappstoreopen}Календар{linkclose} или {calendardocopen}, свържете вашия настолен компютър и мобилен телефон за синхронизиране ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Моля, уверете се, че сте настроили правилно {emailopen} имейл сървъра{linkclose}.",
"Calendar server" : "Сървър на календар",
@@ -192,17 +207,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Изпращане на известия за напомняния и до споделящите календар",
"Reminders are always sent to organizers and attendees." : "Напомнянията винаги се изпращат до организаторите и присъстващите.",
"Enable notifications for events via push" : "Активиране на известията за събития чрез push",
- "Cancel" : "Отказ",
- "Import" : "Импортиране /внасяне/",
- "Error while saving settings" : "Грешка при запазване на настройките",
"There was an error updating your attendance status." : "Възникна грешка при актуализиране на състоянието на присъствието Ви.",
"Please contact the organizer directly." : "Моля, свържете се директно с организатора.",
"Are you accepting the invitation?" : "Приемате ли поканата?",
"Tentative" : "Несигурно",
- "Your attendance was updated successfully." : "Вашето присъствие е актуализирано успешно.",
- "Time:" : "Час:",
- "Could not open file" : "Файлът не можа да се отвори",
- "Invalid chunk name" : "Невалидно име на блок",
- "Could not rename part file assembled from chunks" : "Не можа да се преименува частичен файл, сглобен от блок"
+ "Your attendance was updated successfully." : "Вашето присъствие е актуализирано успешно."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/bg.json b/apps/dav/l10n/bg.json
index 075e9d18d7a..6ebc3b0f6ab 100644
--- a/apps/dav/l10n/bg.json
+++ b/apps/dav/l10n/bg.json
@@ -136,6 +136,7 @@
"{actor} updated contact {card} in address book {addressbook}" : "{actor} актуализира контакт {card} в адресна книга {addressbook}",
"You updated contact {card} in address book {addressbook}" : "Вие актуализирахте контакт {card} в адресна книга {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Един <strong>contact</strong> или <strong>address book</strong> са променени",
+ "Accounts" : "Профили",
"File is not updatable: %1$s" : "Файлът не подлежи на актуализиране: %1$s",
"Could not write to final file, canceled by hook" : "Не можа да се запише в крайния файл, анулирано от кука",
"Could not write file contents" : "Съдържанието на файла не можа да се запише",
@@ -166,8 +167,16 @@
"Calendars including events, details and attendees" : "Календари, включително събития, подробности и участници",
"Contacts and groups" : "Контакти и групи",
"WebDAV" : "WebDAV",
+ "Absence saved" : "Отсъствието е запаметено",
+ "Failed to save your absence settings" : "Неуспешно запаметяване на настройките за отсъствие",
+ "Absence cleared" : "Отсъствието е изчистено",
+ "Failed to clear your absence settings" : "Неуспешно изчистване на настройките за отсъствие",
"First day" : "Първи ден",
+ "Last day (inclusive)" : "До (включително)",
+ "Short absence status" : "Кратко описание за периода на отсъствие",
+ "Long absence Message" : "Съобщение, използвано за периода на отсъствие.",
"Save" : "Запазване",
+ "Disable absence" : "Изключи известието за отсъствие",
"Failed to load availability" : "Неуспешно зареждане на наличност",
"Saved availability" : "Запазена наличност",
"Failed to save availability" : "Неуспешно записване на наличност",
@@ -177,7 +186,13 @@
"No working hours set" : "Няма зададено работно време",
"Add slot" : "Добавяне на слот",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично задаване на потребителският статус на „Не безпокойте“ извън достъпността, за заглушаване на всички известия.",
- "Availability" : "Наличност",
+ "Cancel" : "Отказ",
+ "Import" : "Импортиране /внасяне/",
+ "Error while saving settings" : "Грешка при запазване на настройките",
+ "Reset to default" : "Настройки по подразбиране",
+ "Availability" : "Работно време",
+ "Absence" : "Отсъствия",
+ "Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Също така инсталирайте приложението {calendarappstoreopen}Календар{linkclose} или {calendardocopen}, свържете вашия настолен компютър и мобилен телефон за синхронизиране ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Моля, уверете се, че сте настроили правилно {emailopen} имейл сървъра{linkclose}.",
"Calendar server" : "Сървър на календар",
@@ -190,17 +205,10 @@
"Send reminder notifications to calendar sharees as well" : "Изпращане на известия за напомняния и до споделящите календар",
"Reminders are always sent to organizers and attendees." : "Напомнянията винаги се изпращат до организаторите и присъстващите.",
"Enable notifications for events via push" : "Активиране на известията за събития чрез push",
- "Cancel" : "Отказ",
- "Import" : "Импортиране /внасяне/",
- "Error while saving settings" : "Грешка при запазване на настройките",
"There was an error updating your attendance status." : "Възникна грешка при актуализиране на състоянието на присъствието Ви.",
"Please contact the organizer directly." : "Моля, свържете се директно с организатора.",
"Are you accepting the invitation?" : "Приемате ли поканата?",
"Tentative" : "Несигурно",
- "Your attendance was updated successfully." : "Вашето присъствие е актуализирано успешно.",
- "Time:" : "Час:",
- "Could not open file" : "Файлът не можа да се отвори",
- "Invalid chunk name" : "Невалидно име на блок",
- "Could not rename part file assembled from chunks" : "Не можа да се преименува частичен файл, сглобен от блок"
+ "Your attendance was updated successfully." : "Вашето присъствие е актуализирано успешно."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ca.js b/apps/dav/l10n/ca.js
index 047c3e0c6c2..6ed5523a0e5 100644
--- a/apps/dav/l10n/ca.js
+++ b/apps/dav/l10n/ca.js
@@ -290,6 +290,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Trieu una hora d'inici per a {dayName}",
"Pick a end time for {dayName}" : "Trieu una hora de finalització per a {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Estableix automàticament l'estat de l'usuari com a \"No molesteu” fora de la disponibilitat per a silenciar totes les notificacions.",
+ "Cancel" : "Cancel·la",
+ "Import" : "Importa",
+ "Error while saving settings" : "S'ha produït un error en desar els paràmetres",
+ "Reset to default" : "Reinicialitza els valors per defecte",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
@@ -306,17 +310,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Envia també notificacions de recordatori als usuaris amb qui s'ha compartit el calendari",
"Reminders are always sent to organizers and attendees." : "Sempre s'envien recordatoris als organitzadors i als assistents.",
"Enable notifications for events via push" : "Habilita les notificacions automàtiques per als esdeveniments",
- "Cancel" : "Cancel·la",
- "Import" : "Importa",
- "Error while saving settings" : "S'ha produït un error en desar els paràmetres",
"There was an error updating your attendance status." : "S'ha produït un error en actualitzar l'estat d'assistència.",
"Please contact the organizer directly." : "Contacteu amb l'organització directament.",
"Are you accepting the invitation?" : "Accepteu la invitació?",
"Tentative" : "Provisional",
- "Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència.",
- "Time:" : "Hora:",
- "Could not open file" : "No s'ha pogut obrir el fitxer",
- "Invalid chunk name" : "El nom del fragment no és vàlid",
- "Could not rename part file assembled from chunks" : "No s'ha pogut canviar el nom del fitxer de part muntat a partir de fragments"
+ "Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/ca.json b/apps/dav/l10n/ca.json
index 94d94ed7523..88cb071325a 100644
--- a/apps/dav/l10n/ca.json
+++ b/apps/dav/l10n/ca.json
@@ -288,6 +288,10 @@
"Pick a start time for {dayName}" : "Trieu una hora d'inici per a {dayName}",
"Pick a end time for {dayName}" : "Trieu una hora de finalització per a {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Estableix automàticament l'estat de l'usuari com a \"No molesteu” fora de la disponibilitat per a silenciar totes les notificacions.",
+ "Cancel" : "Cancel·la",
+ "Import" : "Importa",
+ "Error while saving settings" : "S'ha produït un error en desar els paràmetres",
+ "Reset to default" : "Reinicialitza els valors per defecte",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
@@ -304,17 +308,10 @@
"Send reminder notifications to calendar sharees as well" : "Envia també notificacions de recordatori als usuaris amb qui s'ha compartit el calendari",
"Reminders are always sent to organizers and attendees." : "Sempre s'envien recordatoris als organitzadors i als assistents.",
"Enable notifications for events via push" : "Habilita les notificacions automàtiques per als esdeveniments",
- "Cancel" : "Cancel·la",
- "Import" : "Importa",
- "Error while saving settings" : "S'ha produït un error en desar els paràmetres",
"There was an error updating your attendance status." : "S'ha produït un error en actualitzar l'estat d'assistència.",
"Please contact the organizer directly." : "Contacteu amb l'organització directament.",
"Are you accepting the invitation?" : "Accepteu la invitació?",
"Tentative" : "Provisional",
- "Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència.",
- "Time:" : "Hora:",
- "Could not open file" : "No s'ha pogut obrir el fitxer",
- "Invalid chunk name" : "El nom del fragment no és vàlid",
- "Could not rename part file assembled from chunks" : "No s'ha pogut canviar el nom del fitxer de part muntat a partir de fragments"
+ "Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/cs.js b/apps/dav/l10n/cs.js
index ce5b1b83203..c2d10ac429d 100644
--- a/apps/dav/l10n/cs.js
+++ b/apps/dav/l10n/cs.js
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Vyberte začátek pro {dayName}",
"Pick a end time for {dayName}" : "Vyberte konec pro {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "V době, kdy není k dispozici, automaticky nastavit stav uživatele na „Nerušit“ a ztlumit tak veškerá upozornění.",
+ "Cancel" : "Storno",
+ "Import" : "Naimportovat",
+ "Error while saving settings" : "Chyba při ukládání nastavení",
+ "Contact reset successfully" : "Kontakt úspěšně resetován",
+ "Error while resetting contact" : "Chyba při resetování kontaktu",
+ "Contact imported successfully" : "Kontakt úspěšně naimportován",
+ "Error while importing contact" : "Chyba při importování kontaktu",
+ "Import contact" : "Importovat kontakt",
+ "Reset to default" : "Vrátit zpět na výchozí hodnoty",
+ "Import contacts" : "Importovat kontakty",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Naimportování nového .vcf souboru smaže stávající výchozí kontakt a nahradí ho novým. Chcete pokračovat?",
+ "Failed to save example event creation setting" : "Nepodařilo se uložit nastavení vytváření události pro ukázku",
+ "Failed to upload the example event" : "Nepodařilo se nahrát událost pro ukázku",
+ "Custom example event was saved successfully" : "Uživatelsky určená událost pro ukázku byla úspěšně uložena",
+ "Failed to delete the custom example event" : "Nepodařilo se smazat uživatelsky určenou událost pro ukázku",
+ "Custom example event was deleted successfully" : "Uživatelsky určená událost pro ukázku byla úspěšně smazána",
+ "Import calendar event" : "Naimportovat událost kalendáře",
+ "Uploading a new event will overwrite the existing one." : "Nahrání nové události přepíše tu existující.",
+ "Upload event" : "Nahrát událost",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
@@ -306,27 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Poslat připomínky také těm, kteří mají tento sdílený kalendář připojený",
"Reminders are always sent to organizers and attendees." : "Připomínky jsou vždy poslány organizátorům a účastníkům.",
"Enable notifications for events via push" : "Upozorňovat na události prostřednictvím služby push",
- "Cancel" : "Storno",
- "Import" : "Naimportovat",
- "Error while saving settings" : "Chyba při ukládání nastavení",
- "Contact reset successfully" : "Kontakt úspěšně resetován",
- "Error while resetting contact" : "Chyba při resetování kontaktu",
- "Contact imported successfully" : "Kontakt úspěšně naimportován",
- "Error while importing contact" : "Chyba při importování kontaktu",
- "Example Content" : "Obsah pro ukázku",
- "Set example content to be created on new user first login." : "Nastavit obsah pro ukázku, který vytvořit při prvním přihlášení nového uživatele.",
- "Import contact" : "Importovat kontakt",
- "Reset to default contact" : "Vrátit na výchozí kontakt",
- "Import contacts" : "Importovat kontakty",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Naimportování nového .vcf souboru smaže stávající výchozí kontakt a nahradí ho novým. Chcete pokračovat?",
+ "Example content" : "Obsah pro ukázku",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Obsah pro ukázku slouží pro předvedení funkcí Nextcloud. Výchozí obsah je dodáván s Nextcloud a je možné ho nahradit uživatelsky určeným.",
"There was an error updating your attendance status." : "Vyskytla se chyba při aktualizaci vašeho stavu účasti.",
"Please contact the organizer directly." : "Kontaktujte organizátora přímo.",
"Are you accepting the invitation?" : "Přijímáte pozvání?",
"Tentative" : "Nezávazně",
- "Your attendance was updated successfully." : "Vaše účast byla úspěšně aktualizována.",
- "Time:" : "Čas:",
- "Could not open file" : "Nedaří se otevřít soubor",
- "Invalid chunk name" : "Neplatný název pro shluk (chunk)",
- "Could not rename part file assembled from chunks" : "Nedaří se přejmenovat částečný soubor složený ze shluků"
+ "Your attendance was updated successfully." : "Vaše účast byla úspěšně aktualizována."
},
"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/dav/l10n/cs.json b/apps/dav/l10n/cs.json
index 0355b986132..69be44bbd4e 100644
--- a/apps/dav/l10n/cs.json
+++ b/apps/dav/l10n/cs.json
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "Vyberte začátek pro {dayName}",
"Pick a end time for {dayName}" : "Vyberte konec pro {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "V době, kdy není k dispozici, automaticky nastavit stav uživatele na „Nerušit“ a ztlumit tak veškerá upozornění.",
+ "Cancel" : "Storno",
+ "Import" : "Naimportovat",
+ "Error while saving settings" : "Chyba při ukládání nastavení",
+ "Contact reset successfully" : "Kontakt úspěšně resetován",
+ "Error while resetting contact" : "Chyba při resetování kontaktu",
+ "Contact imported successfully" : "Kontakt úspěšně naimportován",
+ "Error while importing contact" : "Chyba při importování kontaktu",
+ "Import contact" : "Importovat kontakt",
+ "Reset to default" : "Vrátit zpět na výchozí hodnoty",
+ "Import contacts" : "Importovat kontakty",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Naimportování nového .vcf souboru smaže stávající výchozí kontakt a nahradí ho novým. Chcete pokračovat?",
+ "Failed to save example event creation setting" : "Nepodařilo se uložit nastavení vytváření události pro ukázku",
+ "Failed to upload the example event" : "Nepodařilo se nahrát událost pro ukázku",
+ "Custom example event was saved successfully" : "Uživatelsky určená událost pro ukázku byla úspěšně uložena",
+ "Failed to delete the custom example event" : "Nepodařilo se smazat uživatelsky určenou událost pro ukázku",
+ "Custom example event was deleted successfully" : "Uživatelsky určená událost pro ukázku byla úspěšně smazána",
+ "Import calendar event" : "Naimportovat událost kalendáře",
+ "Uploading a new event will overwrite the existing one." : "Nahrání nové události přepíše tu existující.",
+ "Upload event" : "Nahrát událost",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
@@ -304,27 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "Poslat připomínky také těm, kteří mají tento sdílený kalendář připojený",
"Reminders are always sent to organizers and attendees." : "Připomínky jsou vždy poslány organizátorům a účastníkům.",
"Enable notifications for events via push" : "Upozorňovat na události prostřednictvím služby push",
- "Cancel" : "Storno",
- "Import" : "Naimportovat",
- "Error while saving settings" : "Chyba při ukládání nastavení",
- "Contact reset successfully" : "Kontakt úspěšně resetován",
- "Error while resetting contact" : "Chyba při resetování kontaktu",
- "Contact imported successfully" : "Kontakt úspěšně naimportován",
- "Error while importing contact" : "Chyba při importování kontaktu",
- "Example Content" : "Obsah pro ukázku",
- "Set example content to be created on new user first login." : "Nastavit obsah pro ukázku, který vytvořit při prvním přihlášení nového uživatele.",
- "Import contact" : "Importovat kontakt",
- "Reset to default contact" : "Vrátit na výchozí kontakt",
- "Import contacts" : "Importovat kontakty",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Naimportování nového .vcf souboru smaže stávající výchozí kontakt a nahradí ho novým. Chcete pokračovat?",
+ "Example content" : "Obsah pro ukázku",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Obsah pro ukázku slouží pro předvedení funkcí Nextcloud. Výchozí obsah je dodáván s Nextcloud a je možné ho nahradit uživatelsky určeným.",
"There was an error updating your attendance status." : "Vyskytla se chyba při aktualizaci vašeho stavu účasti.",
"Please contact the organizer directly." : "Kontaktujte organizátora přímo.",
"Are you accepting the invitation?" : "Přijímáte pozvání?",
"Tentative" : "Nezávazně",
- "Your attendance was updated successfully." : "Vaše účast byla úspěšně aktualizována.",
- "Time:" : "Čas:",
- "Could not open file" : "Nedaří se otevřít soubor",
- "Invalid chunk name" : "Neplatný název pro shluk (chunk)",
- "Could not rename part file assembled from chunks" : "Nedaří se přejmenovat částečný soubor složený ze shluků"
+ "Your attendance was updated successfully." : "Vaše účast byla úspěšně aktualizována."
},"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/dav/l10n/da.js b/apps/dav/l10n/da.js
index a6a2bdbe29b..782f0a3b21b 100644
--- a/apps/dav/l10n/da.js
+++ b/apps/dav/l10n/da.js
@@ -290,6 +290,17 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Vælg et starttidspunkt for {dayName}",
"Pick a end time for {dayName}" : "Vælg et sluttidspunkt for {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Indstil automatisk brugerstatus til \"Forstyr ikke\" uden for tilgængelighed for at slå alle notifikationer fra.",
+ "Cancel" : "Annuller",
+ "Import" : "Importér",
+ "Error while saving settings" : "Der opstod en fejl under lagring af indstillinger",
+ "Contact reset successfully" : "Kontakten blev nulstillet",
+ "Error while resetting contact" : "Fejl under nulstilling af kontakt",
+ "Contact imported successfully" : "Kontakten blev importeret",
+ "Error while importing contact" : "Fejl under import af kontakt",
+ "Import contact" : "Importér kontakt",
+ "Reset to default" : "Nulstil",
+ "Import contacts" : "Importér kontakter",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Import af en ny .vcf-fil vil slette den eksisterende standardkontakt og erstatte den med den nye. Vil du fortsætte?",
"Availability" : "tilgængelighed",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer dine arbejdstider, vil andre se, når du er fraværende, når de booker et møde.",
"Absence" : "Fravær",
@@ -306,27 +317,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Send også påmindelsesmeddelelser til kalenderdelinger",
"Reminders are always sent to organizers and attendees." : "Påmindelser sendes altid til arrangører og deltagere.",
"Enable notifications for events via push" : "Aktiver notifikationer for begivenheder via push",
- "Cancel" : "Annuller",
- "Import" : "Importer",
- "Error while saving settings" : "Der opstod en fejl under lagring af indstillinger",
- "Contact reset successfully" : "Kontakten blev nulstillet",
- "Error while resetting contact" : "Fejl under nulstilling af kontakt",
- "Contact imported successfully" : "Kontakten blev importeret",
- "Error while importing contact" : "Fejl under import af kontakt",
- "Example Content" : "Eksempelindhold",
- "Set example content to be created on new user first login." : "Indstil eksempel på indhold, der skal oprettes ved ny brugers første login.",
- "Import contact" : "Importér kontakt",
- "Reset to default contact" : "Nulstil til standardkontakt",
- "Import contacts" : "Importér kontakter",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Import af en ny .vcf-fil vil slette den eksisterende standardkontakt og erstatte den med den nye. Vil du fortsætte?",
"There was an error updating your attendance status." : "Der opstod en fejl under opdatering af din fremmødestatus.",
"Please contact the organizer directly." : "Kontakt venligst arrangøren direkte.",
"Are you accepting the invitation?" : "Accepter du invitationen?",
"Tentative" : "Foreløbig",
- "Your attendance was updated successfully." : "Dit tilstedeværelse blev opdateret.",
- "Time:" : "Tid:",
- "Could not open file" : "Kunne ikke åbne fil",
- "Invalid chunk name" : "Ugyldigt stykke navn",
- "Could not rename part file assembled from chunks" : "Kunne ikke omdøbe delfilen samlet fra stykker"
+ "Your attendance was updated successfully." : "Dit tilstedeværelse blev opdateret."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/da.json b/apps/dav/l10n/da.json
index 0fc9cb3690d..1007a84bb10 100644
--- a/apps/dav/l10n/da.json
+++ b/apps/dav/l10n/da.json
@@ -288,6 +288,17 @@
"Pick a start time for {dayName}" : "Vælg et starttidspunkt for {dayName}",
"Pick a end time for {dayName}" : "Vælg et sluttidspunkt for {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Indstil automatisk brugerstatus til \"Forstyr ikke\" uden for tilgængelighed for at slå alle notifikationer fra.",
+ "Cancel" : "Annuller",
+ "Import" : "Importér",
+ "Error while saving settings" : "Der opstod en fejl under lagring af indstillinger",
+ "Contact reset successfully" : "Kontakten blev nulstillet",
+ "Error while resetting contact" : "Fejl under nulstilling af kontakt",
+ "Contact imported successfully" : "Kontakten blev importeret",
+ "Error while importing contact" : "Fejl under import af kontakt",
+ "Import contact" : "Importér kontakt",
+ "Reset to default" : "Nulstil",
+ "Import contacts" : "Importér kontakter",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Import af en ny .vcf-fil vil slette den eksisterende standardkontakt og erstatte den med den nye. Vil du fortsætte?",
"Availability" : "tilgængelighed",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer dine arbejdstider, vil andre se, når du er fraværende, når de booker et møde.",
"Absence" : "Fravær",
@@ -304,27 +315,10 @@
"Send reminder notifications to calendar sharees as well" : "Send også påmindelsesmeddelelser til kalenderdelinger",
"Reminders are always sent to organizers and attendees." : "Påmindelser sendes altid til arrangører og deltagere.",
"Enable notifications for events via push" : "Aktiver notifikationer for begivenheder via push",
- "Cancel" : "Annuller",
- "Import" : "Importer",
- "Error while saving settings" : "Der opstod en fejl under lagring af indstillinger",
- "Contact reset successfully" : "Kontakten blev nulstillet",
- "Error while resetting contact" : "Fejl under nulstilling af kontakt",
- "Contact imported successfully" : "Kontakten blev importeret",
- "Error while importing contact" : "Fejl under import af kontakt",
- "Example Content" : "Eksempelindhold",
- "Set example content to be created on new user first login." : "Indstil eksempel på indhold, der skal oprettes ved ny brugers første login.",
- "Import contact" : "Importér kontakt",
- "Reset to default contact" : "Nulstil til standardkontakt",
- "Import contacts" : "Importér kontakter",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Import af en ny .vcf-fil vil slette den eksisterende standardkontakt og erstatte den med den nye. Vil du fortsætte?",
"There was an error updating your attendance status." : "Der opstod en fejl under opdatering af din fremmødestatus.",
"Please contact the organizer directly." : "Kontakt venligst arrangøren direkte.",
"Are you accepting the invitation?" : "Accepter du invitationen?",
"Tentative" : "Foreløbig",
- "Your attendance was updated successfully." : "Dit tilstedeværelse blev opdateret.",
- "Time:" : "Tid:",
- "Could not open file" : "Kunne ikke åbne fil",
- "Invalid chunk name" : "Ugyldigt stykke navn",
- "Could not rename part file assembled from chunks" : "Kunne ikke omdøbe delfilen samlet fra stykker"
+ "Your attendance was updated successfully." : "Dit tilstedeværelse blev opdateret."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js
index e22163e7731..3ba68d336ed 100644
--- a/apps/dav/l10n/de.js
+++ b/apps/dav/l10n/de.js
@@ -161,7 +161,7 @@ OC.L10N.register(
"When:" : "Wann:",
"Location:" : "Ort:",
"Link:" : "Link:",
- "Occurring:" : "Vorkommend:",
+ "Occurring:" : "Findet statt:",
"Accept" : "Akzeptieren",
"Decline" : "Ablehnen",
"More options …" : "Weitere Optionen …",
@@ -274,15 +274,15 @@ OC.L10N.register(
"Name of the replacement" : "Name der Vertretung",
"No results." : "Keine Ergebnisse",
"Start typing." : "Mit dem Schreiben beginnen.",
- "Short absence status" : "Kurze Abwesenheits Meldung",
- "Long absence Message" : "Lange Abwesenheits Meldung",
+ "Short absence status" : "Kurzer Abwesenheitsstatus",
+ "Long absence Message" : "Lange Abwesenheitsnachricht",
"Save" : "Speichern",
- "Disable absence" : "Abwesenheitmeldungen deaktivieren",
+ "Disable absence" : "Abwesenheit deaktivieren",
"Failed to load availability" : "Verfügbarkeit konnte nicht geladen werden",
"Saved availability" : "Verfügbarkeit gespeichert",
"Failed to save availability" : "Verfügbarkeit konnte nicht gespeichert werden",
"Time zone:" : "Zeitzone:",
- "to" : "an",
+ "to" : "bis",
"Delete slot" : "Slot löschen",
"No working hours set" : "Keine Arbeitszeiten konfiguriert",
"Add slot" : "Slot hinzufügen",
@@ -290,8 +290,27 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Eine Startzeit für {dayName} wählen",
"Pick a end time for {dayName}" : "Eine Endezeit für {dayName} wählen",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setze den Benutzerstatus außerhalb deiner Verfügbarkeit automatisch auf \"Nicht stören\", um alle Benachrichtigungen stumm zu schalten.",
+ "Cancel" : "Abbrechen",
+ "Import" : "Importieren",
+ "Error while saving settings" : "Fehler beim Speichern der Einstellungen",
+ "Contact reset successfully" : "Kontakt zurückgesetzt",
+ "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts",
+ "Contact imported successfully" : "Kontakt importiert",
+ "Error while importing contact" : "Fehler beim Import des Kontakts",
+ "Import contact" : "Kontakt importieren",
+ "Reset to default" : "Auf Standard zurücksetzen ",
+ "Import contacts" : "Kontakte importieren",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
+ "Failed to save example event creation setting" : "Einstellung für die Beispiels-Ereigniserstellung konnte nicht gespeichert werden",
+ "Failed to upload the example event" : "Das Beispielsereignis konnte nicht hochgeladen werden",
+ "Custom example event was saved successfully" : "Benutzerdefiniertes Beispielereignis gespeichert",
+ "Failed to delete the custom example event" : "Benutzerdefiniertes Beispielsereignis konnte nicht gelöscht werden",
+ "Custom example event was deleted successfully" : "Benutzerdefiniertes Beispielsereignis wurde gelöscht",
+ "Import calendar event" : "Kalenderereignis importieren",
+ "Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Ereignisses wird das bestehende Ereignis überschreiben.",
+ "Upload event" : "Ereignis hochladen",
"Availability" : "Verfügbarkeit",
- "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten konfigurierst, können andere Benutzer sehen, wann du nicht im Büro bist, wenn sie eine Besprechung buchen.",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richte deinen nächsten Abwesenheitszeitraum ein.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installiere außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinde deinen Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
@@ -299,34 +318,19 @@ OC.L10N.register(
"Calendar server" : "Kalender-Server",
"Send invitations to attendees" : "Einladungen an die Teilnehmer senden",
"Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen",
- "Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einem Hintergrund-Auftrag erstellt",
+ "Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einer Hintergrundaufgabe erstellt",
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es bis zur Anzeige ein wenig dauern.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
- "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs gesendet, so dass diese häufig genug ausgeführt werden.",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundaufgaben gesendet, so dass diese häufig genug ausgeführt werden.",
"Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden",
"Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
- "Cancel" : "Abbrechen",
- "Import" : "Importieren",
- "Error while saving settings" : "Fehler beim Speichern der Einstellungen",
- "Contact reset successfully" : "Kontakt erfolgreich zurückgesetzt",
- "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts",
- "Contact imported successfully" : "Kontakt erfolgreich importiert",
- "Error while importing contact" : "Fehler beim Import des Kontakts",
- "Example Content" : "Beispielinhalt",
- "Set example content to be created on new user first login." : "Beispielinhalte festlegen, die bei der ersten Anmeldung eines neuen Benutzers erstellt werden sollen.",
- "Import contact" : "Kontakt importieren",
- "Reset to default contact" : "Standardkontakt zurücksetzen",
- "Import contacts" : "Kontakte importieren",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
+ "Example content" : "Beispielsinhalt",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.",
"There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren deines Teilnehmerstatus aufgetreten.",
"Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.",
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
- "Your attendance was updated successfully." : "Dein Teilnehmerstatus wurde aktualisiert.",
- "Time:" : "Zeit:",
- "Could not open file" : "Datei konnte nicht geöffnet werden",
- "Invalid chunk name" : "Ungültiger Chunk-Name",
- "Could not rename part file assembled from chunks" : "Aus Chunks zusammengesetzte temporäre Datei konnte nicht umbenannt werden"
+ "Your attendance was updated successfully." : "Dein Teilnehmerstatus wurde aktualisiert."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json
index 02a0a5707ab..c152c3aa8cc 100644
--- a/apps/dav/l10n/de.json
+++ b/apps/dav/l10n/de.json
@@ -159,7 +159,7 @@
"When:" : "Wann:",
"Location:" : "Ort:",
"Link:" : "Link:",
- "Occurring:" : "Vorkommend:",
+ "Occurring:" : "Findet statt:",
"Accept" : "Akzeptieren",
"Decline" : "Ablehnen",
"More options …" : "Weitere Optionen …",
@@ -272,15 +272,15 @@
"Name of the replacement" : "Name der Vertretung",
"No results." : "Keine Ergebnisse",
"Start typing." : "Mit dem Schreiben beginnen.",
- "Short absence status" : "Kurze Abwesenheits Meldung",
- "Long absence Message" : "Lange Abwesenheits Meldung",
+ "Short absence status" : "Kurzer Abwesenheitsstatus",
+ "Long absence Message" : "Lange Abwesenheitsnachricht",
"Save" : "Speichern",
- "Disable absence" : "Abwesenheitmeldungen deaktivieren",
+ "Disable absence" : "Abwesenheit deaktivieren",
"Failed to load availability" : "Verfügbarkeit konnte nicht geladen werden",
"Saved availability" : "Verfügbarkeit gespeichert",
"Failed to save availability" : "Verfügbarkeit konnte nicht gespeichert werden",
"Time zone:" : "Zeitzone:",
- "to" : "an",
+ "to" : "bis",
"Delete slot" : "Slot löschen",
"No working hours set" : "Keine Arbeitszeiten konfiguriert",
"Add slot" : "Slot hinzufügen",
@@ -288,8 +288,27 @@
"Pick a start time for {dayName}" : "Eine Startzeit für {dayName} wählen",
"Pick a end time for {dayName}" : "Eine Endezeit für {dayName} wählen",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setze den Benutzerstatus außerhalb deiner Verfügbarkeit automatisch auf \"Nicht stören\", um alle Benachrichtigungen stumm zu schalten.",
+ "Cancel" : "Abbrechen",
+ "Import" : "Importieren",
+ "Error while saving settings" : "Fehler beim Speichern der Einstellungen",
+ "Contact reset successfully" : "Kontakt zurückgesetzt",
+ "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts",
+ "Contact imported successfully" : "Kontakt importiert",
+ "Error while importing contact" : "Fehler beim Import des Kontakts",
+ "Import contact" : "Kontakt importieren",
+ "Reset to default" : "Auf Standard zurücksetzen ",
+ "Import contacts" : "Kontakte importieren",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
+ "Failed to save example event creation setting" : "Einstellung für die Beispiels-Ereigniserstellung konnte nicht gespeichert werden",
+ "Failed to upload the example event" : "Das Beispielsereignis konnte nicht hochgeladen werden",
+ "Custom example event was saved successfully" : "Benutzerdefiniertes Beispielereignis gespeichert",
+ "Failed to delete the custom example event" : "Benutzerdefiniertes Beispielsereignis konnte nicht gelöscht werden",
+ "Custom example event was deleted successfully" : "Benutzerdefiniertes Beispielsereignis wurde gelöscht",
+ "Import calendar event" : "Kalenderereignis importieren",
+ "Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Ereignisses wird das bestehende Ereignis überschreiben.",
+ "Upload event" : "Ereignis hochladen",
"Availability" : "Verfügbarkeit",
- "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten konfigurierst, können andere Benutzer sehen, wann du nicht im Büro bist, wenn sie eine Besprechung buchen.",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richte deinen nächsten Abwesenheitszeitraum ein.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installiere außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinde deinen Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
@@ -297,34 +316,19 @@
"Calendar server" : "Kalender-Server",
"Send invitations to attendees" : "Einladungen an die Teilnehmer senden",
"Automatically generate a birthday calendar" : "Automatisch einen Kalender für Geburtstage erstellen",
- "Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einem Hintergrund-Auftrag erstellt",
+ "Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einer Hintergrundaufgabe erstellt",
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es bis zur Anzeige ein wenig dauern.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
- "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs gesendet, so dass diese häufig genug ausgeführt werden.",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundaufgaben gesendet, so dass diese häufig genug ausgeführt werden.",
"Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden",
"Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
- "Cancel" : "Abbrechen",
- "Import" : "Importieren",
- "Error while saving settings" : "Fehler beim Speichern der Einstellungen",
- "Contact reset successfully" : "Kontakt erfolgreich zurückgesetzt",
- "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts",
- "Contact imported successfully" : "Kontakt erfolgreich importiert",
- "Error while importing contact" : "Fehler beim Import des Kontakts",
- "Example Content" : "Beispielinhalt",
- "Set example content to be created on new user first login." : "Beispielinhalte festlegen, die bei der ersten Anmeldung eines neuen Benutzers erstellt werden sollen.",
- "Import contact" : "Kontakt importieren",
- "Reset to default contact" : "Standardkontakt zurücksetzen",
- "Import contacts" : "Kontakte importieren",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
+ "Example content" : "Beispielsinhalt",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.",
"There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren deines Teilnehmerstatus aufgetreten.",
"Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.",
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
- "Your attendance was updated successfully." : "Dein Teilnehmerstatus wurde aktualisiert.",
- "Time:" : "Zeit:",
- "Could not open file" : "Datei konnte nicht geöffnet werden",
- "Invalid chunk name" : "Ungültiger Chunk-Name",
- "Could not rename part file assembled from chunks" : "Aus Chunks zusammengesetzte temporäre Datei konnte nicht umbenannt werden"
+ "Your attendance was updated successfully." : "Dein Teilnehmerstatus wurde aktualisiert."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/de_DE.js b/apps/dav/l10n/de_DE.js
index f513d35cdc9..efdf32b9c34 100644
--- a/apps/dav/l10n/de_DE.js
+++ b/apps/dav/l10n/de_DE.js
@@ -161,7 +161,7 @@ OC.L10N.register(
"When:" : "Wann:",
"Location:" : "Ort:",
"Link:" : "Link:",
- "Occurring:" : "Vorkommend:",
+ "Occurring:" : "Findet statt:",
"Accept" : "Akzeptieren",
"Decline" : "Ablehnen",
"More options …" : "Weitere Optionen …",
@@ -274,7 +274,7 @@ OC.L10N.register(
"Name of the replacement" : "Name der Vertretung",
"No results." : "Keine Ergebnisse.",
"Start typing." : "Anfangen zu tippen.",
- "Short absence status" : "Kurzer Abwesenheitsstaus",
+ "Short absence status" : "Kurzer Abwesenheitsstatus",
"Long absence Message" : "Lange Abwesenheitsnachricht",
"Save" : "Speichern",
"Disable absence" : "Abwesenheit deaktivieren",
@@ -282,18 +282,37 @@ OC.L10N.register(
"Saved availability" : "Verfügbarkeit gespeichert",
"Failed to save availability" : "Verfügbarkeit konnte nicht gespeichert werden",
"Time zone:" : "Zeitzone:",
- "to" : "an",
+ "to" : "bis",
"Delete slot" : "Zeitfenster löschen",
- "No working hours set" : "Arbeitsfreie Stunden gesetzt",
+ "No working hours set" : "Keine Arbeitszeiten konfiguriert",
"Add slot" : "Zeitfenster hinzufügen",
"Weekdays" : "Wochentage",
"Pick a start time for {dayName}" : "Eine Startzeit für {dayName} wählen",
"Pick a end time for {dayName}" : "Eine Endezeit für {dayName} wählen",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setzen Sie den Benutzerstatus außerhalb Ihrer Verfügbarkeit automatisch auf \"Nicht stören\", um alle Benachrichtigungen stumm zu schalten.",
+ "Cancel" : "Abbrechen",
+ "Import" : "Importieren",
+ "Error while saving settings" : "Fehler beim Speichern der Einstellungen",
+ "Contact reset successfully" : "Kontakt zurückgesetzt",
+ "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts",
+ "Contact imported successfully" : "Kontakt importiert",
+ "Error while importing contact" : "Fehler beim Import des Kontakts",
+ "Import contact" : "Kontakt importieren",
+ "Reset to default" : "Auf Standard zurücksetzen ",
+ "Import contacts" : "Kontakte importieren",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
+ "Failed to save example event creation setting" : "Einstellung für die Beispiels-Terminerstellung konnte nicht gespeichert werden",
+ "Failed to upload the example event" : "Der Beispieltermin konnte nicht hochgeladen werden",
+ "Custom example event was saved successfully" : "Benutzerdefinierter Beispieltermin gespeichert",
+ "Failed to delete the custom example event" : "Benutzerdefinierter Beispieltermin konnte nicht gelöscht werden",
+ "Custom example event was deleted successfully" : "Benutzerdefinierter Beispieltermin wurde gelöscht",
+ "Import calendar event" : "Kalendertermin importieren",
+ "Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Termins wird den bestehenden Termin überschreiben.",
+ "Upload event" : "Termin hochladen",
"Availability" : "Verfügbarkeit",
- "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können Andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.",
"Absence" : "Abwesenheit",
- "Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein",
+ "Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installieren Sie außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinden Sie Ihren Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stellen Sie sicher, dass Sie {emailopen}den E-Mail Server{linkclose} ordnungsgemäß eingerichtet haben.",
"Calendar server" : "Kalender-Server",
@@ -302,31 +321,16 @@ OC.L10N.register(
"Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einem Hintergrund-Auftrag erstellt",
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es ein wenig dauern bis zur Anzeige.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
- "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs versendet, so dass diese häufig genug ausgeführt werden müssen.",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundaufgaben versendet, so dass diese häufig genug ausgeführt werden müssen.",
"Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die Kalenderfreigaben senden",
"Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
- "Cancel" : "Abbrechen",
- "Import" : "Importieren",
- "Error while saving settings" : "Fehler beim Speichern der Einstellungen",
- "Contact reset successfully" : "Kontakt zurückgesetzt",
- "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts",
- "Contact imported successfully" : "Kontakt importiert",
- "Error while importing contact" : "Fehler beim Import des Kontakts",
- "Example Content" : "Beispielinhalt",
- "Set example content to be created on new user first login." : "Beispielinhalte festlegen, die bei der ersten Anmeldung eines neuen Benutzers erstellt werden sollen.",
- "Import contact" : "Kontakt importieren",
- "Reset to default contact" : "Standardkontakt zurücksetzen",
- "Import contacts" : "Kontakte importieren",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
+ "Example content" : "Beispielsinhalt",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.",
"There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren Ihres Teilnehmerstatus aufgetreten.",
"Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.",
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
- "Your attendance was updated successfully." : "Ihr Teilnehmerstatus wurde aktualisiert.",
- "Time:" : "Zeit:",
- "Could not open file" : "Datei konnte nicht geöffnet werden",
- "Invalid chunk name" : "Ungültiger Chunk-Name",
- "Could not rename part file assembled from chunks" : "Aus Chunks zusammengesetzte Teildatei konnte nicht umbenannt werden"
+ "Your attendance was updated successfully." : "Ihr Teilnehmerstatus wurde aktualisiert."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/de_DE.json b/apps/dav/l10n/de_DE.json
index e27822fbaa6..7170849d1a9 100644
--- a/apps/dav/l10n/de_DE.json
+++ b/apps/dav/l10n/de_DE.json
@@ -159,7 +159,7 @@
"When:" : "Wann:",
"Location:" : "Ort:",
"Link:" : "Link:",
- "Occurring:" : "Vorkommend:",
+ "Occurring:" : "Findet statt:",
"Accept" : "Akzeptieren",
"Decline" : "Ablehnen",
"More options …" : "Weitere Optionen …",
@@ -272,7 +272,7 @@
"Name of the replacement" : "Name der Vertretung",
"No results." : "Keine Ergebnisse.",
"Start typing." : "Anfangen zu tippen.",
- "Short absence status" : "Kurzer Abwesenheitsstaus",
+ "Short absence status" : "Kurzer Abwesenheitsstatus",
"Long absence Message" : "Lange Abwesenheitsnachricht",
"Save" : "Speichern",
"Disable absence" : "Abwesenheit deaktivieren",
@@ -280,18 +280,37 @@
"Saved availability" : "Verfügbarkeit gespeichert",
"Failed to save availability" : "Verfügbarkeit konnte nicht gespeichert werden",
"Time zone:" : "Zeitzone:",
- "to" : "an",
+ "to" : "bis",
"Delete slot" : "Zeitfenster löschen",
- "No working hours set" : "Arbeitsfreie Stunden gesetzt",
+ "No working hours set" : "Keine Arbeitszeiten konfiguriert",
"Add slot" : "Zeitfenster hinzufügen",
"Weekdays" : "Wochentage",
"Pick a start time for {dayName}" : "Eine Startzeit für {dayName} wählen",
"Pick a end time for {dayName}" : "Eine Endezeit für {dayName} wählen",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setzen Sie den Benutzerstatus außerhalb Ihrer Verfügbarkeit automatisch auf \"Nicht stören\", um alle Benachrichtigungen stumm zu schalten.",
+ "Cancel" : "Abbrechen",
+ "Import" : "Importieren",
+ "Error while saving settings" : "Fehler beim Speichern der Einstellungen",
+ "Contact reset successfully" : "Kontakt zurückgesetzt",
+ "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts",
+ "Contact imported successfully" : "Kontakt importiert",
+ "Error while importing contact" : "Fehler beim Import des Kontakts",
+ "Import contact" : "Kontakt importieren",
+ "Reset to default" : "Auf Standard zurücksetzen ",
+ "Import contacts" : "Kontakte importieren",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
+ "Failed to save example event creation setting" : "Einstellung für die Beispiels-Terminerstellung konnte nicht gespeichert werden",
+ "Failed to upload the example event" : "Der Beispieltermin konnte nicht hochgeladen werden",
+ "Custom example event was saved successfully" : "Benutzerdefinierter Beispieltermin gespeichert",
+ "Failed to delete the custom example event" : "Benutzerdefinierter Beispieltermin konnte nicht gelöscht werden",
+ "Custom example event was deleted successfully" : "Benutzerdefinierter Beispieltermin wurde gelöscht",
+ "Import calendar event" : "Kalendertermin importieren",
+ "Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Termins wird den bestehenden Termin überschreiben.",
+ "Upload event" : "Termin hochladen",
"Availability" : "Verfügbarkeit",
- "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können Andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.",
"Absence" : "Abwesenheit",
- "Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein",
+ "Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installieren Sie außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinden Sie Ihren Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stellen Sie sicher, dass Sie {emailopen}den E-Mail Server{linkclose} ordnungsgemäß eingerichtet haben.",
"Calendar server" : "Kalender-Server",
@@ -300,31 +319,16 @@
"Birthday calendars will be generated by a background job." : "Kalender für Geburtstage werden von einem Hintergrund-Auftrag erstellt",
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es ein wenig dauern bis zur Anzeige.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
- "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs versendet, so dass diese häufig genug ausgeführt werden müssen.",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundaufgaben versendet, so dass diese häufig genug ausgeführt werden müssen.",
"Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die Kalenderfreigaben senden",
"Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
- "Cancel" : "Abbrechen",
- "Import" : "Importieren",
- "Error while saving settings" : "Fehler beim Speichern der Einstellungen",
- "Contact reset successfully" : "Kontakt zurückgesetzt",
- "Error while resetting contact" : "Fehler beim Zurücksetzen des Kontakts",
- "Contact imported successfully" : "Kontakt importiert",
- "Error while importing contact" : "Fehler beim Import des Kontakts",
- "Example Content" : "Beispielinhalt",
- "Set example content to be created on new user first login." : "Beispielinhalte festlegen, die bei der ersten Anmeldung eines neuen Benutzers erstellt werden sollen.",
- "Import contact" : "Kontakt importieren",
- "Reset to default contact" : "Standardkontakt zurücksetzen",
- "Import contacts" : "Kontakte importieren",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
+ "Example content" : "Beispielsinhalt",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.",
"There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren Ihres Teilnehmerstatus aufgetreten.",
"Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.",
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
- "Your attendance was updated successfully." : "Ihr Teilnehmerstatus wurde aktualisiert.",
- "Time:" : "Zeit:",
- "Could not open file" : "Datei konnte nicht geöffnet werden",
- "Invalid chunk name" : "Ungültiger Chunk-Name",
- "Could not rename part file assembled from chunks" : "Aus Chunks zusammengesetzte Teildatei konnte nicht umbenannt werden"
+ "Your attendance was updated successfully." : "Ihr Teilnehmerstatus wurde aktualisiert."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/el.js b/apps/dav/l10n/el.js
deleted file mode 100644
index 640819dd14c..00000000000
--- a/apps/dav/l10n/el.js
+++ /dev/null
@@ -1,120 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Ημερολόγιο",
- "Tasks" : "Εργασίες",
- "Personal" : "Προσωπικά",
- "{actor} created calendar {calendar}" : "{actor} δημιουργήθηκε το ημερολόγιο {calendar}",
- "You created calendar {calendar}" : "Δημιουργήσατε ημερολόγιο {ημερολόγιο}",
- "{actor} deleted calendar {calendar}" : "{actor} διέγραψε το ημερολόγιο {calendar}",
- "You deleted calendar {calendar}" : "Διαγράψατε το ημερολόγιο {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} ενημέρωσε το ημερολόγιο {calendar}",
- "You updated calendar {calendar}" : "Έχετε ενημερώσει το ημερολόγιο {calendar}",
- "You restored calendar {calendar}" : "Επαναφέρατε το ημερολόγιο {calendar}",
- "You shared calendar {calendar} as public link" : "Μοιραστήκατε το ημερολόγιο {calendar} με δημόσιο σύνδεσμο.",
- "You removed public link for calendar {calendar}" : "Αφαιρέσατε τον δημόσιο σύνδεσμο για το ημερολόγιο {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} διαμοιράστηκε το ημερολόγιο {calendar} με εσάς",
- "You shared calendar {calendar} with {user}" : "Διαμοιραστήκατε το ημερολογίου {calendar} με {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} διαμοίρασε το ημερολόγιο {calendar} με {user}",
- "{actor} unshared calendar {calendar} from you" : "Ο {actor} σταμάτησε τον διαμοιρασμό του ημερολογίου {calendar} από εσάς",
- "You unshared calendar {calendar} from {user}" : "Σταματήσατε τον διαμοιρασμό ημερολογίου {calendar} από {user}",
- "{actor} unshared calendar {calendar} from {user}" : "Ο {actor} σταμάτησε τον διαμοιρασμό του ημερολογίου {calendar} από τον χρήστη {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} σταμάτησε το διαμοιρασμένο ημερολόγιο {calendar} από τον εαυτό τους",
- "You shared calendar {calendar} with group {group}" : "Διαμοιραστείκατε ένα ημερολόγιο {calendar} με την ομάδα {group}",
- "{actor} shared calendar {calendar} with group {group}" : "Ο {actor} διαμοιράστηκε το ημερολόγιο {calendar} με την ομάδα {group}",
- "You unshared calendar {calendar} from group {group}" : "Σταματήσατε τον διαμοιρασμό του ημερολογίου {calendar} από την ομάδα {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} σταμάτησε το διαμοιρασμένο ημερολόγιο {calendar} από την ομάδα {group}",
- "Untitled event" : "Συμβάν χωρίς τίτλο",
- "{actor} created event {event} in calendar {calendar}" : "Ο {actor} δημιούργησε το γεγονός {event} στο ημερολόγιο {calendar}",
- "You created event {event} in calendar {calendar}" : "Δημιουργήσατε το γεγονός {event} στο ημερολόγιο {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "Ο {actor} διέγραψε το γεγονός {event} από το ημερολόγιο {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Διαγράψατε το συμβάν {event} από το ημερολόγιο {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "Ο {actor} ενημέρωσε το γεγονός {event} στο ημερολόγιο {calendar}",
- "You updated event {event} in calendar {calendar}" : "Ενημερώσατε το συμβάν {event} στο ημερολόγιο {calendar}",
- "Busy" : "Απασχολημένος",
- "Calendar, contacts and tasks" : "Ημερολόγιο, επαφές και εργασίες",
- "A <strong>calendar</strong> was modified" : "Τροποποιήθηκε ένα <strong>ημερολόγιο</strong> ",
- "A calendar <strong>event</strong> was modified" : "Τροποποιήθηκε ένα <strong>γεγονός</strong> του ημερολογίου",
- "A calendar <strong>to-do</strong> was modified" : "Τροποποιήθηκε μια <strong>εκκρεμότητα</strong> ημερολογίου",
- "Contact birthdays" : "Γενέθλια επαφών",
- "Death of %s" : "Θάνατος του %s",
- "Untitled calendar" : "Ημερολόγιο χωρίς τίτλο",
- "Calendar:" : "Ημερολόγιο:",
- "Date:" : "Ημερομηνία:",
- "Where:" : "Που:",
- "Description:" : "Περιγραφή:",
- "_%n year_::_%n years_" : ["%n χρόνος/χρονιά","%n χρόνια"],
- "_%n month_::_%n months_" : ["%n μήνας","%d μήνες"],
- "_%n day_::_%n days_" : ["%n ημέρα","%n ημέρες"],
- "_%n hour_::_%n hours_" : ["%nώρα","%nώρες"],
- "_%n minute_::_%n minutes_" : ["%n λεπτό","%n λεπτά"],
- "%s (in %s)" : "%s (σε %s)",
- "%s (%s ago)" : "%s (%s πριν)",
- "Calendar: %s" : "Ημερολόγιο:%s",
- "Date: %s" : "Ημερομηνία:%s",
- "Description: %s" : "Περιγραφή:%s",
- "Where: %s" : "Που:%s",
- "%1$s via %2$s" : "%1$s μέσω %2$s",
- "Organizer:" : "Διοργανωτής:",
- "Attendees:" : "Συμμετέχοντες:",
- "Title:" : "Τίτλος:",
- "Location:" : "Τοποθεσία:",
- "Link:" : "Σύνδεσμος:",
- "Accept" : "Αποδοχή",
- "Decline" : "Απόρριψη",
- "More options …" : "Περισσότερες επιλογές...",
- "More options at %s" : "Περισσότερες επιλογές στο %s",
- "Contacts" : "Επαφές",
- "You created contact {card} in address book {addressbook}" : "Δημιουργήσατε την επαφή {card} στο βιβλίο διευθύνσεων {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "Διαγράψατε την επαφή {card} από το βιβλίο διευθύνσεων {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "Ενημερώσατε την επαφή {card} στο βιβλίο διευθύνσεων {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "Τροποποιήθηκε μια <strong>επαφή</strong> ή ένα <strong>βιβλίο διευθύνσεων</strong>",
- "System is in maintenance mode." : "Το σύστημα βρίσκεται σε λειτουργία συντήρησης.",
- "Upgrade needed" : "Απαιτείται αναβάθμιση",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Το %s θα πρέπει να ρυθμιστεί για να χρησιμοποιεί HTTPS για την χρήση του CalDAV και του CardDAV με το iOS/macOS.",
- "Configures a CalDAV account" : "Ρυθμίσεις λογαριασμού CalDAV",
- "Configures a CardDAV account" : "Ρυθμίσεις λογαριασμού CardDAV",
- "Events" : "Συμβάντα",
- "Untitled task" : "Εργασία χωρίς όνομα",
- "Completed on %s" : "Ολοκληρώθηκε %s",
- "WebDAV endpoint" : "Τερματικό WebDAV",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Ο διακομιστής σας δεν έχει ρυθμιστεί ακόμη κατάλληλα ώστε να επιτρέπει τον συγχρονισμό αρχείων, διότι η διεπαφή WebDAV φαίνεται να μη λειτουργεί.",
- "Contacts and groups" : "Επαφές και ομάδες",
- "WebDAV" : "WebDAV",
- "Save" : "Αποθήκευση",
- "Time zone:" : "Ζώνη ώρας:",
- "to" : "προς",
- "Delete slot" : "Διαγραφή θέσης",
- "No working hours set" : "Δεν έχει οριστεί ωράριο εργασίας",
- "Monday" : "Δευτέρα",
- "Tuesday" : "Τρίτη",
- "Wednesday" : "Τετάρτη",
- "Thursday" : "Πέμπτη",
- "Friday" : "Παρασκευή",
- "Saturday" : "Σάββατο",
- "Sunday" : "Κυριακή",
- "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Ορισμός αυτόματα της κατάστασης χρήστη σε \"Μην ενοχλείτε\" εκτός διαθεσιμότητας για σίγαση όλων των ειδοποιήσεων.",
- "Failed to load availability" : "Αποτυχία φόρτωσης της διαθεσιμότητας",
- "Failed to save availability" : "Αποτυχία αποθήκευσης της διαθεσιμότητας",
- "Availability" : "Διαθεσιμότητα",
- "Calendar server" : "Διακομιστής ημερολογίου",
- "Send invitations to attendees" : "Αποστολή προσκλήσεων στους συμμετέχοντες.",
- "Automatically generate a birthday calendar" : "Δημιουργία ημερολογίου γενεθλίων αυτόματα",
- "Birthday calendars will be generated by a background job." : "Τα ημερολόγια γενεθλίων θα δημιουργηθούν από μία εργασία παρασκηνίου.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Ως εκ τούτου, δεν θα είναι διαθέσιμα αμέσως μετά την ενεργοποίηση, αλλά θα εμφανιστούν μετά από λίγη ώρα.",
- "Send notifications for events" : "Αποστολή ειδοποιήσεων για γεγονότα",
- "Notifications are sent via background jobs, so these must occur often enough." : "Οι ειδοποιήσεις αποστέλλονται μέσω εργασιών παρασκηνίου, οπότε πρέπει να εμφανίζονται αρκετά συχνά.",
- "Send reminder notifications to calendar sharees as well" : "Αποστολή ειδοποιήσεων υπενθύμισης και στους κοινούς χρήστες του ημερολογίου",
- "Reminders are always sent to organizers and attendees." : "Οι υπενθυμίσεις αποστέλλονται πάντα στους διοργανωτές και στους συμμετέχοντες.",
- "Enable notifications for events via push" : "Ενεργοποίηση ειδοποιήσεων μέσω push",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Εγκαταστήστε επίσης την {calendarappstoreopen}Εφαρμογή ημερολογίου{linkclose}, ή {calendardocopen}συνδέστε τον υπολογιστή & το κινητό σας για συγχρονισμό ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Παρακαλώ σιγουρευτείτε για την σωστή ρύθμιση {emailopen}του διακομιστή αλληλογραφίας{linkclose}.",
- "There was an error updating your attendance status." : "Σφάλμα ενημέρωσης κατάστασής σας.",
- "Please contact the organizer directly." : "Παρακαλώ επικοινωνήστε απ' ευθείας με τον διοργανωτή.",
- "Are you accepting the invitation?" : "Αποδέχεστε την πρόσκληση;",
- "Tentative" : "Δοκιμαστικό",
- "Your attendance was updated successfully." : "Η παρουσία σας ενημερώθηκε με επιτυχία.",
- "Time:" : "Ώρα:",
- "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Εάν διαμορφώσετε τις ώρες εργασίας σας, οι άλλοι χρήστες θα βλέπουν πότε είστε εκτός γραφείου όταν κάνουν κράτηση για μια συνάντηση."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/el.json b/apps/dav/l10n/el.json
deleted file mode 100644
index 35dc70af33f..00000000000
--- a/apps/dav/l10n/el.json
+++ /dev/null
@@ -1,118 +0,0 @@
-{ "translations": {
- "Calendar" : "Ημερολόγιο",
- "Tasks" : "Εργασίες",
- "Personal" : "Προσωπικά",
- "{actor} created calendar {calendar}" : "{actor} δημιουργήθηκε το ημερολόγιο {calendar}",
- "You created calendar {calendar}" : "Δημιουργήσατε ημερολόγιο {ημερολόγιο}",
- "{actor} deleted calendar {calendar}" : "{actor} διέγραψε το ημερολόγιο {calendar}",
- "You deleted calendar {calendar}" : "Διαγράψατε το ημερολόγιο {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} ενημέρωσε το ημερολόγιο {calendar}",
- "You updated calendar {calendar}" : "Έχετε ενημερώσει το ημερολόγιο {calendar}",
- "You restored calendar {calendar}" : "Επαναφέρατε το ημερολόγιο {calendar}",
- "You shared calendar {calendar} as public link" : "Μοιραστήκατε το ημερολόγιο {calendar} με δημόσιο σύνδεσμο.",
- "You removed public link for calendar {calendar}" : "Αφαιρέσατε τον δημόσιο σύνδεσμο για το ημερολόγιο {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} διαμοιράστηκε το ημερολόγιο {calendar} με εσάς",
- "You shared calendar {calendar} with {user}" : "Διαμοιραστήκατε το ημερολογίου {calendar} με {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} διαμοίρασε το ημερολόγιο {calendar} με {user}",
- "{actor} unshared calendar {calendar} from you" : "Ο {actor} σταμάτησε τον διαμοιρασμό του ημερολογίου {calendar} από εσάς",
- "You unshared calendar {calendar} from {user}" : "Σταματήσατε τον διαμοιρασμό ημερολογίου {calendar} από {user}",
- "{actor} unshared calendar {calendar} from {user}" : "Ο {actor} σταμάτησε τον διαμοιρασμό του ημερολογίου {calendar} από τον χρήστη {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} σταμάτησε το διαμοιρασμένο ημερολόγιο {calendar} από τον εαυτό τους",
- "You shared calendar {calendar} with group {group}" : "Διαμοιραστείκατε ένα ημερολόγιο {calendar} με την ομάδα {group}",
- "{actor} shared calendar {calendar} with group {group}" : "Ο {actor} διαμοιράστηκε το ημερολόγιο {calendar} με την ομάδα {group}",
- "You unshared calendar {calendar} from group {group}" : "Σταματήσατε τον διαμοιρασμό του ημερολογίου {calendar} από την ομάδα {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} σταμάτησε το διαμοιρασμένο ημερολόγιο {calendar} από την ομάδα {group}",
- "Untitled event" : "Συμβάν χωρίς τίτλο",
- "{actor} created event {event} in calendar {calendar}" : "Ο {actor} δημιούργησε το γεγονός {event} στο ημερολόγιο {calendar}",
- "You created event {event} in calendar {calendar}" : "Δημιουργήσατε το γεγονός {event} στο ημερολόγιο {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "Ο {actor} διέγραψε το γεγονός {event} από το ημερολόγιο {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Διαγράψατε το συμβάν {event} από το ημερολόγιο {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "Ο {actor} ενημέρωσε το γεγονός {event} στο ημερολόγιο {calendar}",
- "You updated event {event} in calendar {calendar}" : "Ενημερώσατε το συμβάν {event} στο ημερολόγιο {calendar}",
- "Busy" : "Απασχολημένος",
- "Calendar, contacts and tasks" : "Ημερολόγιο, επαφές και εργασίες",
- "A <strong>calendar</strong> was modified" : "Τροποποιήθηκε ένα <strong>ημερολόγιο</strong> ",
- "A calendar <strong>event</strong> was modified" : "Τροποποιήθηκε ένα <strong>γεγονός</strong> του ημερολογίου",
- "A calendar <strong>to-do</strong> was modified" : "Τροποποιήθηκε μια <strong>εκκρεμότητα</strong> ημερολογίου",
- "Contact birthdays" : "Γενέθλια επαφών",
- "Death of %s" : "Θάνατος του %s",
- "Untitled calendar" : "Ημερολόγιο χωρίς τίτλο",
- "Calendar:" : "Ημερολόγιο:",
- "Date:" : "Ημερομηνία:",
- "Where:" : "Που:",
- "Description:" : "Περιγραφή:",
- "_%n year_::_%n years_" : ["%n χρόνος/χρονιά","%n χρόνια"],
- "_%n month_::_%n months_" : ["%n μήνας","%d μήνες"],
- "_%n day_::_%n days_" : ["%n ημέρα","%n ημέρες"],
- "_%n hour_::_%n hours_" : ["%nώρα","%nώρες"],
- "_%n minute_::_%n minutes_" : ["%n λεπτό","%n λεπτά"],
- "%s (in %s)" : "%s (σε %s)",
- "%s (%s ago)" : "%s (%s πριν)",
- "Calendar: %s" : "Ημερολόγιο:%s",
- "Date: %s" : "Ημερομηνία:%s",
- "Description: %s" : "Περιγραφή:%s",
- "Where: %s" : "Που:%s",
- "%1$s via %2$s" : "%1$s μέσω %2$s",
- "Organizer:" : "Διοργανωτής:",
- "Attendees:" : "Συμμετέχοντες:",
- "Title:" : "Τίτλος:",
- "Location:" : "Τοποθεσία:",
- "Link:" : "Σύνδεσμος:",
- "Accept" : "Αποδοχή",
- "Decline" : "Απόρριψη",
- "More options …" : "Περισσότερες επιλογές...",
- "More options at %s" : "Περισσότερες επιλογές στο %s",
- "Contacts" : "Επαφές",
- "You created contact {card} in address book {addressbook}" : "Δημιουργήσατε την επαφή {card} στο βιβλίο διευθύνσεων {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "Διαγράψατε την επαφή {card} από το βιβλίο διευθύνσεων {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "Ενημερώσατε την επαφή {card} στο βιβλίο διευθύνσεων {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "Τροποποιήθηκε μια <strong>επαφή</strong> ή ένα <strong>βιβλίο διευθύνσεων</strong>",
- "System is in maintenance mode." : "Το σύστημα βρίσκεται σε λειτουργία συντήρησης.",
- "Upgrade needed" : "Απαιτείται αναβάθμιση",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Το %s θα πρέπει να ρυθμιστεί για να χρησιμοποιεί HTTPS για την χρήση του CalDAV και του CardDAV με το iOS/macOS.",
- "Configures a CalDAV account" : "Ρυθμίσεις λογαριασμού CalDAV",
- "Configures a CardDAV account" : "Ρυθμίσεις λογαριασμού CardDAV",
- "Events" : "Συμβάντα",
- "Untitled task" : "Εργασία χωρίς όνομα",
- "Completed on %s" : "Ολοκληρώθηκε %s",
- "WebDAV endpoint" : "Τερματικό WebDAV",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Ο διακομιστής σας δεν έχει ρυθμιστεί ακόμη κατάλληλα ώστε να επιτρέπει τον συγχρονισμό αρχείων, διότι η διεπαφή WebDAV φαίνεται να μη λειτουργεί.",
- "Contacts and groups" : "Επαφές και ομάδες",
- "WebDAV" : "WebDAV",
- "Save" : "Αποθήκευση",
- "Time zone:" : "Ζώνη ώρας:",
- "to" : "προς",
- "Delete slot" : "Διαγραφή θέσης",
- "No working hours set" : "Δεν έχει οριστεί ωράριο εργασίας",
- "Monday" : "Δευτέρα",
- "Tuesday" : "Τρίτη",
- "Wednesday" : "Τετάρτη",
- "Thursday" : "Πέμπτη",
- "Friday" : "Παρασκευή",
- "Saturday" : "Σάββατο",
- "Sunday" : "Κυριακή",
- "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Ορισμός αυτόματα της κατάστασης χρήστη σε \"Μην ενοχλείτε\" εκτός διαθεσιμότητας για σίγαση όλων των ειδοποιήσεων.",
- "Failed to load availability" : "Αποτυχία φόρτωσης της διαθεσιμότητας",
- "Failed to save availability" : "Αποτυχία αποθήκευσης της διαθεσιμότητας",
- "Availability" : "Διαθεσιμότητα",
- "Calendar server" : "Διακομιστής ημερολογίου",
- "Send invitations to attendees" : "Αποστολή προσκλήσεων στους συμμετέχοντες.",
- "Automatically generate a birthday calendar" : "Δημιουργία ημερολογίου γενεθλίων αυτόματα",
- "Birthday calendars will be generated by a background job." : "Τα ημερολόγια γενεθλίων θα δημιουργηθούν από μία εργασία παρασκηνίου.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Ως εκ τούτου, δεν θα είναι διαθέσιμα αμέσως μετά την ενεργοποίηση, αλλά θα εμφανιστούν μετά από λίγη ώρα.",
- "Send notifications for events" : "Αποστολή ειδοποιήσεων για γεγονότα",
- "Notifications are sent via background jobs, so these must occur often enough." : "Οι ειδοποιήσεις αποστέλλονται μέσω εργασιών παρασκηνίου, οπότε πρέπει να εμφανίζονται αρκετά συχνά.",
- "Send reminder notifications to calendar sharees as well" : "Αποστολή ειδοποιήσεων υπενθύμισης και στους κοινούς χρήστες του ημερολογίου",
- "Reminders are always sent to organizers and attendees." : "Οι υπενθυμίσεις αποστέλλονται πάντα στους διοργανωτές και στους συμμετέχοντες.",
- "Enable notifications for events via push" : "Ενεργοποίηση ειδοποιήσεων μέσω push",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Εγκαταστήστε επίσης την {calendarappstoreopen}Εφαρμογή ημερολογίου{linkclose}, ή {calendardocopen}συνδέστε τον υπολογιστή & το κινητό σας για συγχρονισμό ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Παρακαλώ σιγουρευτείτε για την σωστή ρύθμιση {emailopen}του διακομιστή αλληλογραφίας{linkclose}.",
- "There was an error updating your attendance status." : "Σφάλμα ενημέρωσης κατάστασής σας.",
- "Please contact the organizer directly." : "Παρακαλώ επικοινωνήστε απ' ευθείας με τον διοργανωτή.",
- "Are you accepting the invitation?" : "Αποδέχεστε την πρόσκληση;",
- "Tentative" : "Δοκιμαστικό",
- "Your attendance was updated successfully." : "Η παρουσία σας ενημερώθηκε με επιτυχία.",
- "Time:" : "Ώρα:",
- "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Εάν διαμορφώσετε τις ώρες εργασίας σας, οι άλλοι χρήστες θα βλέπουν πότε είστε εκτός γραφείου όταν κάνουν κράτηση για μια συνάντηση."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/en_GB.js b/apps/dav/l10n/en_GB.js
index 8303faf330b..75233b334ed 100644
--- a/apps/dav/l10n/en_GB.js
+++ b/apps/dav/l10n/en_GB.js
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Pick a start time for {dayName}",
"Pick a end time for {dayName}" : "Pick a end time for {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.",
+ "Cancel" : "Cancel",
+ "Import" : "Import",
+ "Error while saving settings" : "Error while saving settings",
+ "Contact reset successfully" : "Contact reset successfully",
+ "Error while resetting contact" : "Error while resetting contact",
+ "Contact imported successfully" : "Contact imported successfully",
+ "Error while importing contact" : "Error while importing contact",
+ "Import contact" : "Import contact",
+ "Reset to default" : "Reset to default",
+ "Import contacts" : "Import contacts",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?",
+ "Failed to save example event creation setting" : "Failed to save example event creation setting",
+ "Failed to upload the example event" : "Failed to upload the example event",
+ "Custom example event was saved successfully" : "Custom example event was saved successfully",
+ "Failed to delete the custom example event" : "Failed to delete the custom example event",
+ "Custom example event was deleted successfully" : "Custom example event was deleted successfully",
+ "Import calendar event" : "Import calendar event",
+ "Uploading a new event will overwrite the existing one." : "Uploading a new event will overwrite the existing one.",
+ "Upload event" : "Upload event",
"Availability" : "Availability",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "If you configure your working hours, other people will see when you are out of office when they book a meeting.",
"Absence" : "Absence",
@@ -306,27 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Send reminder notifications to calendar sharees as well",
"Reminders are always sent to organizers and attendees." : "Reminders are always sent to organisers and attendees.",
"Enable notifications for events via push" : "Enable notifications for events via push",
- "Cancel" : "Cancel",
- "Import" : "Import",
- "Error while saving settings" : "Error while saving settings",
- "Contact reset successfully" : "Contact reset successfully",
- "Error while resetting contact" : "Error while resetting contact",
- "Contact imported successfully" : "Contact imported successfully",
- "Error while importing contact" : "Error while importing contact",
- "Example Content" : "Example Content",
- "Set example content to be created on new user first login." : "Set example content to be created on new user first login.",
- "Import contact" : "Import contact",
- "Reset to default contact" : "Reset to default contact",
- "Import contacts" : "Import contacts",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?",
+ "Example content" : "Example content",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.",
"There was an error updating your attendance status." : "There was an error updating your attendance status.",
"Please contact the organizer directly." : "Please contact the organiser directly.",
"Are you accepting the invitation?" : "Are you accepting the invitation?",
"Tentative" : "Tentative",
- "Your attendance was updated successfully." : "Your attendance was updated successfully.",
- "Time:" : "Time:",
- "Could not open file" : "Could not open file",
- "Invalid chunk name" : "Invalid chunk name",
- "Could not rename part file assembled from chunks" : "Could not rename part file assembled from chunks"
+ "Your attendance was updated successfully." : "Your attendance was updated successfully."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/en_GB.json b/apps/dav/l10n/en_GB.json
index 5c826dc4d7f..0fbdf464438 100644
--- a/apps/dav/l10n/en_GB.json
+++ b/apps/dav/l10n/en_GB.json
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "Pick a start time for {dayName}",
"Pick a end time for {dayName}" : "Pick a end time for {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.",
+ "Cancel" : "Cancel",
+ "Import" : "Import",
+ "Error while saving settings" : "Error while saving settings",
+ "Contact reset successfully" : "Contact reset successfully",
+ "Error while resetting contact" : "Error while resetting contact",
+ "Contact imported successfully" : "Contact imported successfully",
+ "Error while importing contact" : "Error while importing contact",
+ "Import contact" : "Import contact",
+ "Reset to default" : "Reset to default",
+ "Import contacts" : "Import contacts",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?",
+ "Failed to save example event creation setting" : "Failed to save example event creation setting",
+ "Failed to upload the example event" : "Failed to upload the example event",
+ "Custom example event was saved successfully" : "Custom example event was saved successfully",
+ "Failed to delete the custom example event" : "Failed to delete the custom example event",
+ "Custom example event was deleted successfully" : "Custom example event was deleted successfully",
+ "Import calendar event" : "Import calendar event",
+ "Uploading a new event will overwrite the existing one." : "Uploading a new event will overwrite the existing one.",
+ "Upload event" : "Upload event",
"Availability" : "Availability",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "If you configure your working hours, other people will see when you are out of office when they book a meeting.",
"Absence" : "Absence",
@@ -304,27 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "Send reminder notifications to calendar sharees as well",
"Reminders are always sent to organizers and attendees." : "Reminders are always sent to organisers and attendees.",
"Enable notifications for events via push" : "Enable notifications for events via push",
- "Cancel" : "Cancel",
- "Import" : "Import",
- "Error while saving settings" : "Error while saving settings",
- "Contact reset successfully" : "Contact reset successfully",
- "Error while resetting contact" : "Error while resetting contact",
- "Contact imported successfully" : "Contact imported successfully",
- "Error while importing contact" : "Error while importing contact",
- "Example Content" : "Example Content",
- "Set example content to be created on new user first login." : "Set example content to be created on new user first login.",
- "Import contact" : "Import contact",
- "Reset to default contact" : "Reset to default contact",
- "Import contacts" : "Import contacts",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?",
+ "Example content" : "Example content",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.",
"There was an error updating your attendance status." : "There was an error updating your attendance status.",
"Please contact the organizer directly." : "Please contact the organiser directly.",
"Are you accepting the invitation?" : "Are you accepting the invitation?",
"Tentative" : "Tentative",
- "Your attendance was updated successfully." : "Your attendance was updated successfully.",
- "Time:" : "Time:",
- "Could not open file" : "Could not open file",
- "Invalid chunk name" : "Invalid chunk name",
- "Could not rename part file assembled from chunks" : "Could not rename part file assembled from chunks"
+ "Your attendance was updated successfully." : "Your attendance was updated successfully."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/eo.js b/apps/dav/l10n/eo.js
deleted file mode 100644
index e87ec548476..00000000000
--- a/apps/dav/l10n/eo.js
+++ /dev/null
@@ -1,104 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Kalendaro",
- "Personal" : "Persona",
- "{actor} created calendar {calendar}" : "{actor} kreis kalendaron {calendar}",
- "You created calendar {calendar}" : "Vi kreis kalendaron {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} forigis kalendaron {calendar}",
- "You deleted calendar {calendar}" : "Vi forigis kalendaron {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} ĝisdatigis kalendaron {calendar}",
- "You updated calendar {calendar}" : "Vi ĝisdatigis kalendaron {calendar}",
- "You shared calendar {calendar} as public link" : "Vi kunhavigis kalendaron {calendar} per publika ligilo",
- "You removed public link for calendar {calendar}" : "Vi forigis publikan ligilon por kalendaro {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} kunhavigis kalendaron {calendar} kun vi",
- "You shared calendar {calendar} with {user}" : "Vi kunhavigis kalendaron {calendar} kun {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} kunhavigis kalendaron {calendar} kun {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} malkunhavigis kalendaron {calendar} kun vi",
- "You unshared calendar {calendar} from {user}" : "Vi malkunhavigis kalendaron {calendar} kun {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} malkunhavigis kalendaron {calendar} kun {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} malkunhavigis kalendaron {calendar} kun si mem",
- "You shared calendar {calendar} with group {group}" : "Vi kunhavigis kalendaron {calendar} kun grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} kunhavigis kalendaron {calendar} kun grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Vi malkunhavigis kalendaron {calendar} kun grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} malkunhavigis kalendaron {calendar} kun grupo {group}",
- "Untitled event" : "Sentitola okazaĵo",
- "{actor} created event {event} in calendar {calendar}" : "{actor} kreis okazaĵon {event} en kalendaro {calendar}",
- "You created event {event} in calendar {calendar}" : "Vi kreis okazaĵon {event} en kalendaro {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} forigis okazaĵon {event} en kalendaro {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Vi forigis okazaĵon {event} en kalendaro {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} ĝisdatigis okazaĵon {event} en kalendaro {calendar}",
- "You updated event {event} in calendar {calendar}" : "Vi ĝisdatigis okazaĵon {event} en kalendaro {calendar}",
- "Busy" : "Okupita",
- "A <strong>calendar</strong> was modified" : "<strong>Kalendaro</strong> estis modifita",
- "A calendar <strong>event</strong> was modified" : "Kalendara <strong>okazaĵo</strong> estis modifita",
- "Contact birthdays" : "Kontaktaj datrevenoj",
- "Death of %s" : "Morto de %s",
- "Calendar:" : "Kalendaro:",
- "Date:" : "Dato:",
- "Where:" : "Kie:",
- "Description:" : "Priskribo:",
- "_%n year_::_%n years_" : ["%n jaro","%n jaroj"],
- "_%n month_::_%n months_" : ["%n monato","%n monatoj"],
- "_%n day_::_%n days_" : ["%n tago","%n tagoj"],
- "_%n hour_::_%n hours_" : ["%n horo","%n horoj"],
- "_%n minute_::_%n minutes_" : ["%n minuto","%n minutoj"],
- "%s (in %s)" : "%s (en %s)",
- "%s (%s ago)" : "%s (antaŭ %s)",
- "Calendar: %s" : "Kalendaro: %s",
- "Date: %s" : "Dato: %s",
- "Description: %s" : "Priskribo: %s",
- "Where: %s" : "Kie: %s",
- "%1$s via %2$s" : "%1$s pere de %2$s",
- "Location:" : "Loko:",
- "Link:" : "Ligilo:",
- "Accept" : "Akcepti",
- "Decline" : "Malakcepti",
- "More options …" : "Pli da opcioj...",
- "More options at %s" : "Pli da opcioj je %s",
- "Contacts" : "Kontaktoj",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Via %s uzu HTTPS, por ke vi povu uzi CalDAV kaj CardDAV kun iOS aŭ macOS.",
- "Configures a CalDAV account" : "Agordas CalDAV-konton.",
- "Configures a CardDAV account" : "Agordas CardlDAV-konton.",
- "Tasks" : "Taskoj",
- "WebDAV" : "WebDAV",
- "WebDAV endpoint" : "WebDAV-finpunkto",
- "to" : "al",
- "Monday" : "lundo",
- "Tuesday" : "mardo",
- "Wednesday" : "merkredo",
- "Thursday" : "ĵaŭdo",
- "Friday" : "vendredo",
- "Saturday" : "sabato",
- "Sunday" : "dimanĉo",
- "Save" : "Konservi",
- "Calendar server" : "Kalendara servilo",
- "Send invitations to attendees" : "Sendi invitojn al ĉeestantoj",
- "Automatically generate a birthday calendar" : "Aŭtomate estigi datrevenan kalendaron",
- "Birthday calendars will be generated by a background job." : "Datrevenaj kalendaroj estos kreitaj de fona tasko.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Tial, ili disponeblos nur post kelke da tempo.",
- "Send notifications for events" : "Sendi sciigojn pri okazaĵoj",
- "Enable notifications for events via push" : "Ebligi sciigojn pri okazaĵoj per puŝteĥniko",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Ankaŭ instalu la aplikaĵon {calendarappstoreopen}Kalendaro{linkclose} aŭ {calendardocopen}konektu vian surtablan kaj porteblan aparaton por eksinkronigi ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bv. certigi, ke via {emailopen}retpoŝtserva servilo{linkclose} estas bone agordita.",
- "There was an error updating your attendance status." : "Estis eraro dum ĝisdatigo de via ĉeesta stato.",
- "Please contact the organizer directly." : "Bv. senpere kontakti la organizanton.",
- "Are you accepting the invitation?" : "Ĉu vi akceptas la inviton?",
- "Tentative" : "Nekonfirmita",
- "Your attendance was updated successfully." : "Via ĉeesto sukcese ĝisdatiĝis.",
- "Todos" : "Taskoj",
- "{actor} created todo {todo} in list {calendar}" : "{actor} kreis farendaĵon {todo} en listo {calendar}",
- "You created todo {todo} in list {calendar}" : "Vi kreis farendaĵon {todo} en listo {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} forigis farendaĵon {todo} en listo {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Vi forigis farendaĵon {todo} en listo {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} ĝisdatigis farendaĵon {todo} en listo {calendar}",
- "You updated todo {todo} in list {calendar}" : "Vi ĝisdatigis farendaĵon {todo} en listo {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} plenumis farendaĵon {todo} en listo {calendar}",
- "You solved todo {todo} in list {calendar}" : "Vi plenumis farendaĵon {todo} en listo {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} remalfermis farendaĵon {todo} en listo {calendar}",
- "You reopened todo {todo} in list {calendar}" : "Vi remalfermis farendaĵon {todo} en listo {calendar}",
- "A calendar <strong>todo</strong> was modified" : "Kalendara <strong>farendaĵo</strong> estis modifita",
- "Invitation canceled" : "Invito nuligita",
- "Invitation updated" : "Invito ĝisdatigita"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/eo.json b/apps/dav/l10n/eo.json
deleted file mode 100644
index 67fd37faca9..00000000000
--- a/apps/dav/l10n/eo.json
+++ /dev/null
@@ -1,102 +0,0 @@
-{ "translations": {
- "Calendar" : "Kalendaro",
- "Personal" : "Persona",
- "{actor} created calendar {calendar}" : "{actor} kreis kalendaron {calendar}",
- "You created calendar {calendar}" : "Vi kreis kalendaron {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} forigis kalendaron {calendar}",
- "You deleted calendar {calendar}" : "Vi forigis kalendaron {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} ĝisdatigis kalendaron {calendar}",
- "You updated calendar {calendar}" : "Vi ĝisdatigis kalendaron {calendar}",
- "You shared calendar {calendar} as public link" : "Vi kunhavigis kalendaron {calendar} per publika ligilo",
- "You removed public link for calendar {calendar}" : "Vi forigis publikan ligilon por kalendaro {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} kunhavigis kalendaron {calendar} kun vi",
- "You shared calendar {calendar} with {user}" : "Vi kunhavigis kalendaron {calendar} kun {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} kunhavigis kalendaron {calendar} kun {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} malkunhavigis kalendaron {calendar} kun vi",
- "You unshared calendar {calendar} from {user}" : "Vi malkunhavigis kalendaron {calendar} kun {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} malkunhavigis kalendaron {calendar} kun {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} malkunhavigis kalendaron {calendar} kun si mem",
- "You shared calendar {calendar} with group {group}" : "Vi kunhavigis kalendaron {calendar} kun grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} kunhavigis kalendaron {calendar} kun grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Vi malkunhavigis kalendaron {calendar} kun grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} malkunhavigis kalendaron {calendar} kun grupo {group}",
- "Untitled event" : "Sentitola okazaĵo",
- "{actor} created event {event} in calendar {calendar}" : "{actor} kreis okazaĵon {event} en kalendaro {calendar}",
- "You created event {event} in calendar {calendar}" : "Vi kreis okazaĵon {event} en kalendaro {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} forigis okazaĵon {event} en kalendaro {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Vi forigis okazaĵon {event} en kalendaro {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} ĝisdatigis okazaĵon {event} en kalendaro {calendar}",
- "You updated event {event} in calendar {calendar}" : "Vi ĝisdatigis okazaĵon {event} en kalendaro {calendar}",
- "Busy" : "Okupita",
- "A <strong>calendar</strong> was modified" : "<strong>Kalendaro</strong> estis modifita",
- "A calendar <strong>event</strong> was modified" : "Kalendara <strong>okazaĵo</strong> estis modifita",
- "Contact birthdays" : "Kontaktaj datrevenoj",
- "Death of %s" : "Morto de %s",
- "Calendar:" : "Kalendaro:",
- "Date:" : "Dato:",
- "Where:" : "Kie:",
- "Description:" : "Priskribo:",
- "_%n year_::_%n years_" : ["%n jaro","%n jaroj"],
- "_%n month_::_%n months_" : ["%n monato","%n monatoj"],
- "_%n day_::_%n days_" : ["%n tago","%n tagoj"],
- "_%n hour_::_%n hours_" : ["%n horo","%n horoj"],
- "_%n minute_::_%n minutes_" : ["%n minuto","%n minutoj"],
- "%s (in %s)" : "%s (en %s)",
- "%s (%s ago)" : "%s (antaŭ %s)",
- "Calendar: %s" : "Kalendaro: %s",
- "Date: %s" : "Dato: %s",
- "Description: %s" : "Priskribo: %s",
- "Where: %s" : "Kie: %s",
- "%1$s via %2$s" : "%1$s pere de %2$s",
- "Location:" : "Loko:",
- "Link:" : "Ligilo:",
- "Accept" : "Akcepti",
- "Decline" : "Malakcepti",
- "More options …" : "Pli da opcioj...",
- "More options at %s" : "Pli da opcioj je %s",
- "Contacts" : "Kontaktoj",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Via %s uzu HTTPS, por ke vi povu uzi CalDAV kaj CardDAV kun iOS aŭ macOS.",
- "Configures a CalDAV account" : "Agordas CalDAV-konton.",
- "Configures a CardDAV account" : "Agordas CardlDAV-konton.",
- "Tasks" : "Taskoj",
- "WebDAV" : "WebDAV",
- "WebDAV endpoint" : "WebDAV-finpunkto",
- "to" : "al",
- "Monday" : "lundo",
- "Tuesday" : "mardo",
- "Wednesday" : "merkredo",
- "Thursday" : "ĵaŭdo",
- "Friday" : "vendredo",
- "Saturday" : "sabato",
- "Sunday" : "dimanĉo",
- "Save" : "Konservi",
- "Calendar server" : "Kalendara servilo",
- "Send invitations to attendees" : "Sendi invitojn al ĉeestantoj",
- "Automatically generate a birthday calendar" : "Aŭtomate estigi datrevenan kalendaron",
- "Birthday calendars will be generated by a background job." : "Datrevenaj kalendaroj estos kreitaj de fona tasko.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Tial, ili disponeblos nur post kelke da tempo.",
- "Send notifications for events" : "Sendi sciigojn pri okazaĵoj",
- "Enable notifications for events via push" : "Ebligi sciigojn pri okazaĵoj per puŝteĥniko",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Ankaŭ instalu la aplikaĵon {calendarappstoreopen}Kalendaro{linkclose} aŭ {calendardocopen}konektu vian surtablan kaj porteblan aparaton por eksinkronigi ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bv. certigi, ke via {emailopen}retpoŝtserva servilo{linkclose} estas bone agordita.",
- "There was an error updating your attendance status." : "Estis eraro dum ĝisdatigo de via ĉeesta stato.",
- "Please contact the organizer directly." : "Bv. senpere kontakti la organizanton.",
- "Are you accepting the invitation?" : "Ĉu vi akceptas la inviton?",
- "Tentative" : "Nekonfirmita",
- "Your attendance was updated successfully." : "Via ĉeesto sukcese ĝisdatiĝis.",
- "Todos" : "Taskoj",
- "{actor} created todo {todo} in list {calendar}" : "{actor} kreis farendaĵon {todo} en listo {calendar}",
- "You created todo {todo} in list {calendar}" : "Vi kreis farendaĵon {todo} en listo {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} forigis farendaĵon {todo} en listo {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Vi forigis farendaĵon {todo} en listo {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} ĝisdatigis farendaĵon {todo} en listo {calendar}",
- "You updated todo {todo} in list {calendar}" : "Vi ĝisdatigis farendaĵon {todo} en listo {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} plenumis farendaĵon {todo} en listo {calendar}",
- "You solved todo {todo} in list {calendar}" : "Vi plenumis farendaĵon {todo} en listo {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} remalfermis farendaĵon {todo} en listo {calendar}",
- "You reopened todo {todo} in list {calendar}" : "Vi remalfermis farendaĵon {todo} en listo {calendar}",
- "A calendar <strong>todo</strong> was modified" : "Kalendara <strong>farendaĵo</strong> estis modifita",
- "Invitation canceled" : "Invito nuligita",
- "Invitation updated" : "Invito ĝisdatigita"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es.js b/apps/dav/l10n/es.js
index 39dc736727d..22365efe29b 100644
--- a/apps/dav/l10n/es.js
+++ b/apps/dav/l10n/es.js
@@ -285,6 +285,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Elija una hora de inicio para {dayName}",
"Pick a end time for {dayName}" : "Elija una hora fin para {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Cambiar automáticamente el estado del usuario a \"No molestar\" cuando no esté disponible para silenciar todas las notificaciones.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Error al guardar los ajustes",
+ "Reset to default" : "Reestablecer a predeterminado",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuando está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
@@ -301,17 +305,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorio también a los usuarios con los que se comparte el calendario",
"Reminders are always sent to organizers and attendees." : "Los recordatorios siempre se envían a los organizadores y asistentes.",
"Enable notifications for events via push" : "Activar notificaciones push para eventos",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Error al guardar los ajustes",
"There was an error updating your attendance status." : "Ha habido un error al actualizar tu estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacta directamente con el organizador.",
"Are you accepting the invitation?" : "¿Aceptas la invitación?",
"Tentative" : "Provisional",
- "Your attendance was updated successfully." : "Tu asistencia se ha actualizado con éxito.",
- "Time:" : "Hora:",
- "Could not open file" : "No se ha podido abrir el archivo",
- "Invalid chunk name" : "Nombre de trozo inválido",
- "Could not rename part file assembled from chunks" : "No se ha podido renombrar el archivo parcial formado por los fragmentos"
+ "Your attendance was updated successfully." : "Tu asistencia se ha actualizado con éxito."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/es.json b/apps/dav/l10n/es.json
index 9a717e4eaca..bed92b5fd76 100644
--- a/apps/dav/l10n/es.json
+++ b/apps/dav/l10n/es.json
@@ -283,6 +283,10 @@
"Pick a start time for {dayName}" : "Elija una hora de inicio para {dayName}",
"Pick a end time for {dayName}" : "Elija una hora fin para {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Cambiar automáticamente el estado del usuario a \"No molestar\" cuando no esté disponible para silenciar todas las notificaciones.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Error al guardar los ajustes",
+ "Reset to default" : "Reestablecer a predeterminado",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuando está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
@@ -299,17 +303,10 @@
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorio también a los usuarios con los que se comparte el calendario",
"Reminders are always sent to organizers and attendees." : "Los recordatorios siempre se envían a los organizadores y asistentes.",
"Enable notifications for events via push" : "Activar notificaciones push para eventos",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Error al guardar los ajustes",
"There was an error updating your attendance status." : "Ha habido un error al actualizar tu estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacta directamente con el organizador.",
"Are you accepting the invitation?" : "¿Aceptas la invitación?",
"Tentative" : "Provisional",
- "Your attendance was updated successfully." : "Tu asistencia se ha actualizado con éxito.",
- "Time:" : "Hora:",
- "Could not open file" : "No se ha podido abrir el archivo",
- "Invalid chunk name" : "Nombre de trozo inválido",
- "Could not rename part file assembled from chunks" : "No se ha podido renombrar el archivo parcial formado por los fragmentos"
+ "Your attendance was updated successfully." : "Tu asistencia se ha actualizado con éxito."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/es_419.js b/apps/dav/l10n/es_419.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_419.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_419.json b/apps/dav/l10n/es_419.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_419.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_AR.js b/apps/dav/l10n/es_AR.js
deleted file mode 100644
index b15ab1b367e..00000000000
--- a/apps/dav/l10n/es_AR.js
+++ /dev/null
@@ -1,56 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Usted creó el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Usted borró el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Usted actualizó el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} con usted",
- "You shared calendar {calendar} with {user}" : "Usted ha compartido el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} con usted",
- "You unshared calendar {calendar} from {user}" : "Usted ha dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Usted ha compartido el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Usted ha dejado de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Usted creó el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Usted borró el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Usted actualizó el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Usted creo el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Usted borró el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Usted actualizó el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Usted resolvió el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Usted reabrió el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Hello %s," : "Hola %s:",
- "Link:" : "Link:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Technical details" : "Detalles técnicos",
- "Remote Address: %s" : "Dirección remota: %s",
- "Request ID: %s" : "ID de solicitud: %s"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_AR.json b/apps/dav/l10n/es_AR.json
deleted file mode 100644
index 40f99876c49..00000000000
--- a/apps/dav/l10n/es_AR.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Usted creó el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Usted borró el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Usted actualizó el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} con usted",
- "You shared calendar {calendar} with {user}" : "Usted ha compartido el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} con usted",
- "You unshared calendar {calendar} from {user}" : "Usted ha dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Usted ha compartido el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Usted ha dejado de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Usted creó el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Usted borró el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Usted actualizó el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Usted creo el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Usted borró el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Usted actualizó el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Usted resolvió el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Usted reabrió el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Hello %s," : "Hola %s:",
- "Link:" : "Link:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Technical details" : "Detalles técnicos",
- "Remote Address: %s" : "Dirección remota: %s",
- "Request ID: %s" : "ID de solicitud: %s"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_CL.js b/apps/dav/l10n/es_CL.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_CL.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_CL.json b/apps/dav/l10n/es_CL.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_CL.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_CO.js b/apps/dav/l10n/es_CO.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_CO.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_CO.json b/apps/dav/l10n/es_CO.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_CO.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_CR.js b/apps/dav/l10n/es_CR.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_CR.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_CR.json b/apps/dav/l10n/es_CR.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_CR.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_DO.js b/apps/dav/l10n/es_DO.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_DO.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_DO.json b/apps/dav/l10n/es_DO.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_DO.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_EC.js b/apps/dav/l10n/es_EC.js
index bf69429e716..bc36002e1e8 100644
--- a/apps/dav/l10n/es_EC.js
+++ b/apps/dav/l10n/es_EC.js
@@ -182,6 +182,10 @@ OC.L10N.register(
"No working hours set" : "No se han establecido horas de trabajo",
"Add slot" : "Agregar ranura",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Configurar automáticamente el estado del usuario como \"No molestar\" fuera de la disponibilidad para silenciar todas las notificaciones.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Error al guardar la configuración.",
+ "Reset to default" : "Restablecer al predeterminado",
"Availability" : "Disponibilidad",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "También instala la {calendarappstoreopen}aplicación Calendario{linkclose}, o {calendardocopen}conecta tu escritorio y móvil para sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrate de configurar correctamente {emailopen}el servidor de correo electrónico{linkclose}.",
@@ -195,17 +199,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorios a los asistentes del calendario también",
"Reminders are always sent to organizers and attendees." : "Los recordatorios siempre se envían a los organizadores y asistentes.",
"Enable notifications for events via push" : "Habilitar notificaciones para eventos mediante push",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Error al guardar la configuración.",
"There was an error updating your attendance status." : "Hubo un error al actualizar tu estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacta directamente al organizador.",
"Are you accepting the invitation?" : "¿Aceptas la invitación?",
"Tentative" : "Tentativo",
- "Your attendance was updated successfully." : "Tu asistencia se actualizó correctamente.",
- "Time:" : "Hora:",
- "Could not open file" : "No se pudo abrir el archivo",
- "Invalid chunk name" : "Nombre de fragmento no válido",
- "Could not rename part file assembled from chunks" : "No se pudo renombrar el archivo parcial ensamblado a archivo final"
+ "Your attendance was updated successfully." : "Tu asistencia se actualizó correctamente."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/es_EC.json b/apps/dav/l10n/es_EC.json
index 2a496cbc268..5e04a22c11b 100644
--- a/apps/dav/l10n/es_EC.json
+++ b/apps/dav/l10n/es_EC.json
@@ -180,6 +180,10 @@
"No working hours set" : "No se han establecido horas de trabajo",
"Add slot" : "Agregar ranura",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Configurar automáticamente el estado del usuario como \"No molestar\" fuera de la disponibilidad para silenciar todas las notificaciones.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Error al guardar la configuración.",
+ "Reset to default" : "Restablecer al predeterminado",
"Availability" : "Disponibilidad",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "También instala la {calendarappstoreopen}aplicación Calendario{linkclose}, o {calendardocopen}conecta tu escritorio y móvil para sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrate de configurar correctamente {emailopen}el servidor de correo electrónico{linkclose}.",
@@ -193,17 +197,10 @@
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorios a los asistentes del calendario también",
"Reminders are always sent to organizers and attendees." : "Los recordatorios siempre se envían a los organizadores y asistentes.",
"Enable notifications for events via push" : "Habilitar notificaciones para eventos mediante push",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Error al guardar la configuración.",
"There was an error updating your attendance status." : "Hubo un error al actualizar tu estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacta directamente al organizador.",
"Are you accepting the invitation?" : "¿Aceptas la invitación?",
"Tentative" : "Tentativo",
- "Your attendance was updated successfully." : "Tu asistencia se actualizó correctamente.",
- "Time:" : "Hora:",
- "Could not open file" : "No se pudo abrir el archivo",
- "Invalid chunk name" : "Nombre de fragmento no válido",
- "Could not rename part file assembled from chunks" : "No se pudo renombrar el archivo parcial ensamblado a archivo final"
+ "Your attendance was updated successfully." : "Tu asistencia se actualizó correctamente."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/es_GT.js b/apps/dav/l10n/es_GT.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_GT.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_GT.json b/apps/dav/l10n/es_GT.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_GT.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_HN.js b/apps/dav/l10n/es_HN.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_HN.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_HN.json b/apps/dav/l10n/es_HN.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_HN.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_MX.js b/apps/dav/l10n/es_MX.js
index 3815d91f708..4c58640df1a 100644
--- a/apps/dav/l10n/es_MX.js
+++ b/apps/dav/l10n/es_MX.js
@@ -220,6 +220,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Elija una hora de inicio para {dayName}",
"Pick a end time for {dayName}" : "Elija una hora fin para {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Establecer automáticamente el estado de usuario como \"No molestar\" fuera de la disponibilidad para silenciar todas las notificaciones.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Error al guardar la configuración",
+ "Reset to default" : "Restablecer al predeterminado",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuándo está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
@@ -236,17 +240,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorio también a los usuarios con los que se comparte el calendario",
"Reminders are always sent to organizers and attendees." : "Los recordatorios se envían siempre a los organizadores y asistentes.",
"Enable notifications for events via push" : "Habilitar notificaciones para eventos mediante push",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Error al guardar la configuración",
"There was an error updating your attendance status." : "Ocurrió un error al actualizar su estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacte al organizador directamente.",
"Are you accepting the invitation?" : "¿Acepta la invitación?",
"Tentative" : "Tentativo",
- "Your attendance was updated successfully." : "Su asistencia se actualizó correctamente.",
- "Time:" : "Hora:",
- "Could not open file" : "No se pudo abrir el archivo",
- "Invalid chunk name" : "Nombre de fragmento inválido",
- "Could not rename part file assembled from chunks" : "No se pudo renombrar el archivo parcial ensamblado por fragmentos"
+ "Your attendance was updated successfully." : "Su asistencia se actualizó correctamente."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/es_MX.json b/apps/dav/l10n/es_MX.json
index ce57525938b..646747cfc68 100644
--- a/apps/dav/l10n/es_MX.json
+++ b/apps/dav/l10n/es_MX.json
@@ -218,6 +218,10 @@
"Pick a start time for {dayName}" : "Elija una hora de inicio para {dayName}",
"Pick a end time for {dayName}" : "Elija una hora fin para {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Establecer automáticamente el estado de usuario como \"No molestar\" fuera de la disponibilidad para silenciar todas las notificaciones.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Error al guardar la configuración",
+ "Reset to default" : "Restablecer al predeterminado",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuándo está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
@@ -234,17 +238,10 @@
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorio también a los usuarios con los que se comparte el calendario",
"Reminders are always sent to organizers and attendees." : "Los recordatorios se envían siempre a los organizadores y asistentes.",
"Enable notifications for events via push" : "Habilitar notificaciones para eventos mediante push",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Error al guardar la configuración",
"There was an error updating your attendance status." : "Ocurrió un error al actualizar su estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacte al organizador directamente.",
"Are you accepting the invitation?" : "¿Acepta la invitación?",
"Tentative" : "Tentativo",
- "Your attendance was updated successfully." : "Su asistencia se actualizó correctamente.",
- "Time:" : "Hora:",
- "Could not open file" : "No se pudo abrir el archivo",
- "Invalid chunk name" : "Nombre de fragmento inválido",
- "Could not rename part file assembled from chunks" : "No se pudo renombrar el archivo parcial ensamblado por fragmentos"
+ "Your attendance was updated successfully." : "Su asistencia se actualizó correctamente."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/es_NI.js b/apps/dav/l10n/es_NI.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_NI.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_NI.json b/apps/dav/l10n/es_NI.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_NI.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_PA.js b/apps/dav/l10n/es_PA.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_PA.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_PA.json b/apps/dav/l10n/es_PA.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_PA.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_PE.js b/apps/dav/l10n/es_PE.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_PE.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_PE.json b/apps/dav/l10n/es_PE.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_PE.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_PR.js b/apps/dav/l10n/es_PR.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_PR.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_PR.json b/apps/dav/l10n/es_PR.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_PR.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_PY.js b/apps/dav/l10n/es_PY.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_PY.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_PY.json b/apps/dav/l10n/es_PY.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_PY.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_SV.js b/apps/dav/l10n/es_SV.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_SV.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_SV.json b/apps/dav/l10n/es_SV.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_SV.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/es_UY.js b/apps/dav/l10n/es_UY.js
deleted file mode 100644
index ba78d8940a8..00000000000
--- a/apps/dav/l10n/es_UY.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/es_UY.json b/apps/dav/l10n/es_UY.json
deleted file mode 100644
index ec79fad2802..00000000000
--- a/apps/dav/l10n/es_UY.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendario",
- "Todos" : "Pendientes",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}",
- "You created calendar {calendar}" : "Creaste el calendario {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}",
- "You deleted calendar {calendar}" : "Borraste el calendario {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}",
- "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Compartiste el calendario {calendar} como una liga pública",
- "You removed public link for calendar {calendar}" : "Eliminaste la liga pública para el calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo",
- "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo",
- "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo",
- "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}",
- "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado",
- "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado",
- "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado",
- "Contact birthdays" : "Cumpleaños del contacto",
- "Where:" : "Dónde:",
- "Description:" : "Descripción:",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Location:" : "Ubicación:",
- "Link:" : "Enlace:",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "Contacts" : "Contactos",
- "Tasks" : "Tareas",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativo",
- "Save" : "Guardar",
- "Send invitations to attendees" : "Enviar invitaciones a los asistentes",
- "Automatically generate a birthday calendar" : "Generar automaticamente un calendario para cumpleaños",
- "Birthday calendars will be generated by a background job." : "Los calendarios de cumpleaños serán generados por un trabajo de segundo plano",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Por lo tanto no estarán disponbiles inmediatamente después de habilitarlos pero se mostrarán después de un tiempo.",
- "Hello %s," : "Hola %s,",
- "When:" : "Cuándo:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/et_EE.js b/apps/dav/l10n/et_EE.js
index d32f6895bc3..2e915b6927b 100644
--- a/apps/dav/l10n/et_EE.js
+++ b/apps/dav/l10n/et_EE.js
@@ -31,7 +31,11 @@ OC.L10N.register(
"{actor} deleted event {event} from calendar {calendar}" : "{actor} kustutas sündmuse {event} kalendrist {calendar}",
"You deleted event {event} from calendar {calendar}" : "Sa kustutasid sündmuse {event} kalendrist {calendar}",
"{actor} updated event {event} in calendar {calendar}" : "{actor} uuendas sündmust {event} kalendris {calendar}",
- "You updated event {event} in calendar {calendar}" : "Sa uuendasid sündmust {event} kalendris {calendar}",
+ "You updated event {event} in calendar {calendar}" : "Sa uuendasid „{event}“ sündmust „{calendar}“ kalendris",
+ "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} teisaldas „{event}“ sündmuse „{sourceCalendar}“ kalendrist „{targetCalendar}“ kalendrisse",
+ "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Sina teisaldasid „{event}“ sündmuse „{sourceCalendar}“ kalendrist „{targetCalendar}“ kalendrisse",
+ "{actor} restored event {event} of calendar {calendar}" : "{actor} taastas „{event}“ sündmuse „{calendar}“ kalendris",
+ "You restored event {event} of calendar {calendar}" : "Sina taastasid „{event}“ sündmuse „{calendar}“ kalendris",
"Busy" : "Hõivatud",
"{actor} created to-do {todo} in list {calendar}" : "{actor} lisas {todo} ülesande {calendar} loendissse",
"You created to-do {todo} in list {calendar}" : "Sina lisasid {todo} ülesande {calendar} loendisse",
@@ -68,11 +72,100 @@ OC.L10N.register(
"Description: %s" : "Kirjeldus: %s",
"Where: %s" : "Kus: %s",
"%1$s via %2$s" : "%1$s %2$s kaudu",
+ "In the past on %1$s for the entire day" : "Minevikus kogu päeva: %1$s",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["%n minuti pärast kogu päeva: %1$s","%n minuti pärast kogu päeva: %1$s"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["%n tunni pärast kogu päeva: %1$s","%n tunni pärast kogu päeva: %1$s"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["%n päeva pärast kogu päeva: %1$s","%n päeva pärast kogu päeva: %1$s"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["%n nädala pärast kogu päeva: %1$s","%n nädala pärast kogu päeva: %1$s"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["%n kuu pärast kogu päeva: %1$s","%n kuu pärast kogu päeva: %1$s"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["%n aasta pärast kogu päeva: %1$s","%n aasta pärast kogu päeva: %1$s"],
+ "In the past on %1$s between %2$s - %3$s" : "Minevikus: %1$s ajavahemikus %2$s - %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["%n minuti pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n minuti pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["%n tunni pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n tunni pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["%n päeva pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n päeva pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["%n nädala pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n nädala pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["%n kuu pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n kuu pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["%n aasta pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n aasta pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "Could not generate when statement" : "Ei õnnestunud koostada tingimuslikku „when“ lausendit",
+ "Every Day for the entire day" : "Iga päev kogu päeva jooksul",
+ "Every Day for the entire day until %1$s" : "Iga päev kogu päeva jooksul kuni %1$s",
+ "Every Day between %1$s - %2$s" : "Iga päev ajavahemikus %1$s - %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "Iga päev ajavahemikus %1$s - %2$s kuni %3$s",
+ "Every %1$d Days for the entire day" : "Iga %1$d. päev kogu päeva jooksul",
+ "Every %1$d Days for the entire day until %2$s" : "Iga %1$d. päev kogu päeva jooksul kuni %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "Iga %1$d. päev kogu päeva jooksul ajavahemikus %2$s - %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "Iga %1$d. päev kogu päeva jooksul ajavahemikus %2$s - %3$s, kuni %4$s",
+ "Could not generate event recurrence statement" : "Ei õnnestunud koostada ürituse kordumise lausendit",
+ "Every Week on %1$s for the entire day" : "Kogu päeva kestel igal nädalal: %1$s",
+ "Every Week on %1$s for the entire day until %2$s" : "Kogu päeva kestel igal nädalal kuni %2$s: %1$s",
+ "Every Week on %1$s between %2$s - %3$s" : "Igal nädalal: %1$s ajavahemikus %2$s - %3$s",
+ "Every Week on %1$s between %2$s - %3$s until %4$s" : "Igal nädalal kuni %2$s: %1$s ajavahemikus %3$s - %4$s",
+ "Every %1$d Weeks on %2$s for the entire day" : "Igal %1$d-l nädalal kogu päeva kestel: %2$s",
+ "Every %1$d Weeks on %2$s for the entire day until %3$s" : "Igal %1$d-l nädalal kuni %3$s kogu päeva kestel: %2$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s" : "Igal %1$d-l nädalal ajavahemikus %3$s - %4$s: %2$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Igal %1$d-l nädalal kuni %5$s ajavahemikus %3$s - %4$s: %2$s",
+ "Every Month on the %1$s for the entire day" : "Kogu päeva kestel igal kuul: %1$s",
+ "Every Month on the %1$s for the entire day until %2$s" : "Kogu päeva kestel igal kuul kuni %2$s: %1$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "Igal kuul: %1$s ajavahemikus %2$s - %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Igal kuul kuni %2$s: %1$s ajavahemikus %3$s - %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "Igal %1$d-l kuul kogu päeva kestel: %2$s",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "Igal %1$d-l kuul kuni %3$s kogu päeva kestel: %2$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "Igal %1$d-l kuul ajavahemikus %3$s - %4$s: %2$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Igal %1$d-l kuul kuni %5$s ajavahemikus %3$s - %4$s: %2$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "Kogu päeva kestel igal aastal: %1$s, %2$s",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Kogu päeva kestel igal aastal kuni %3$s: %1$s, %2$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Igal aastal ajavahemikus %3$s - %4$s: %1$s, %2$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Igal aastal kuni %5$sajavahemikus %3$s - %4$s: %1$s, %2$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "Igal %1$d-l aastal kogu päeva kestel: %2$s, %3$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Kogu päeva kestel igal %1$d-l aastal kuni %4$s: %2$s, %3$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Igal %1$d-l aastal ajavahemikus %4$s - %5$s: %2$s, %3$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Igal %1$d-l aastal kuni %6$s ajavahemikus %4$s - %5$s: %2$s, %3$s",
+ "On specific dates for the entire day until %1$s" : "Kindlatel päevadel kogu päeva jooksul kuni %1$s",
+ "On specific dates between %1$s - %2$s until %3$s" : "Kindlatel päevadel ajavahemikus %1$s - %2$s kuni %3$s",
+ "In the past on %1$s" : "Minevikus %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Ühe minuti pärast: %1$s","%n minuti pärast: %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Tunni pärast: %1$s","%n tunni pärast: %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Päeva möödudes: %1$s","%n päeva möödudes: %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Nädala möödudes: %1$s","%n nädala möödudes: %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Kuu möödudes: %1$s","%n kuu möödudes: %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["Aasta möödudes: %1$s","%n aasta möödudes: %1$s"],
+ "In the past on %1$s then on %2$s" : "Minevikus: %1$s ja siis %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Minuti pärast: %1$s ja siis %2$s","%n minuti pärast: %1$s ja siis %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Tunni pärast: %1$s ja siis %2$s","%n tunni pärast: %1$s ja siis %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Päeva möödudes: %1$s ja siis %2$s","%n päeva möödudes: %1$s ja siis %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Nädala möödudes: %1$s ja siis %2$s","%n nädala möödudes: %1$s ja siis %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Kuu möödudes: %1$s ja siis %2$s","%n kuu möödudes: %1$s ja siis %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Aasta möödudes: %1$s ja siis %2$s","%n aasta möödudes: %1$s ja siis %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "Minevikus: %1$s ja siis %2$s ning %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Minuti pärast: %1$s ja siis %2$s ning %3$s","%n minuti pärast: %1$s ja siis %2$s ning %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Tunni pärast: %1$s ja siis %2$s ning %3$s","%n tunni pärast: %1$s ja siis %2$s ning %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Päeva möödudes: %1$s ja siis %2$s ning %3$s","%n päeva möödudes: %1$s ja siis %2$s ning %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Nädala möödudes: %1$s ja siis %2$s ning %3$s","%n nädala möödudes: %1$s ja siis %2$s ning %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Kuu möödudes: %1$s ja siis %2$s ning %3$s","%n kuu möödudes: %1$s ja siis %2$s ning %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Aasta möödudes: %1$s ja siis %2$s ning %3$s","%n aasta möödudes: %1$s ja siis %2$s ning %3$s"],
+ "Could not generate next recurrence statement" : "Ei õnnestunud koostada korduva ürituse järgmise toimumise lausendit",
+ "Cancelled: %1$s" : "Tühistatud: %1$s",
+ "\"%1$s\" has been canceled" : "„%1$s“ on tühistatud",
+ "Re: %1$s" : "Re: %1$s",
+ "%1$s has accepted your invitation" : "„%1$s“ on nõustunud sinu kutsega",
+ "%1$s has tentatively accepted your invitation" : "„%1$s“ on esialgselt nõustunud sinu kutsega",
+ "%1$s has declined your invitation" : "„%1$s“ on sinu kutsest keeldunud",
+ "%1$s has responded to your invitation" : "„%1$s“ on vastanud sinu kutsele",
+ "Invitation updated: %1$s" : "Kutse on uuendatud: %1$s",
+ "%1$s updated the event \"%2$s\"" : "„%1$s“ uuendas sündmust „%2$s“",
+ "Invitation: %1$s" : "Kutse: %1$s",
+ "%1$s would like to invite you to \"%2$s\"" : "„%1$s“ soovib saata sulle „%2$s“ kutset",
+ "Organizer:" : "Korraldaja:",
+ "Attendees:" : "Osalejad:",
+ "Title:" : "Pealkiri:",
"When:" : "Millal:",
"Location:" : "Asukoht:",
"Link:" : "Link:",
+ "Occurring:" : "Toimub:",
"Accept" : "Nõustu",
"Decline" : "Keeldu",
+ "More options …" : "Täiendavad valikud…",
+ "More options at %s" : "Lisavalikud: %s",
"Monday" : "Esmaspäev",
"Tuesday" : "Teisipäev",
"Wednesday" : "Kolmapäev",
@@ -98,13 +191,46 @@ OC.L10N.register(
"Fourth" : "Neljas",
"Fifth" : "Viies",
"Last" : "Viimane",
+ "Second Last" : "Teiseks viimane",
+ "Third Last" : "Kolmandks viimane",
+ "Fourth Last" : "Neljandaks viimane",
+ "Fifth Last" : "Viiendaks viimane",
"Contacts" : "Kontaktid",
+ "{actor} created address book {addressbook}" : "{actor} lõi aadressiraamatu „{addressbook}“",
+ "You created address book {addressbook}" : "Sa lõid aadressiraamatu „{addressbook}“",
+ "{actor} deleted address book {addressbook}" : "„{actor}“ kustutas „{addressbook}“ aadressiraamatu",
+ "You deleted address book {addressbook}" : "Sa kustutasid aadressiraamatu „{addressbook}“",
+ "{actor} updated address book {addressbook}" : "{actor} uuendasaadressiraamatut „{addressbook}“",
+ "You updated address book {addressbook}" : "Sa uuendasid aadressiraamatut „{addressbook}“",
+ "{actor} shared address book {addressbook} with you" : "{actor} jagas „{addressbook}“ aadressiraamatut sinuga",
+ "You shared address book {addressbook} with {user}" : "Sa jagasid „{addressbook}“ aadressiraamatut kasutajaga „{user}“",
+ "{actor} shared address book {addressbook} with {user}" : "{actor} jagas „{addressbook}“ aadressiraamatut kasutajaga „{user}“",
+ "{actor} unshared address book {addressbook} from you" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise sinult",
+ "You unshared address book {addressbook} from {user}" : "Sina lõpetasid „{addressbook}“ aadressiraamatu jagamise kasutajalt {user}",
+ "{actor} unshared address book {addressbook} from {user}" : "{actor} lõpetas „{addressbook}“ aadressiraamatu kasutajalt {user}",
+ "{actor} unshared address book {addressbook} from themselves" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise iseendalt",
+ "You shared address book {addressbook} with group {group}" : "Sina jagasid „{addressbook}“ aadressiraamatut grupiga {group}",
+ "{actor} shared address book {addressbook} with group {group}" : "{actor} jagas „{addressbook}“ aadressiraamatut grupiga {group}",
+ "You unshared address book {addressbook} from group {group}" : "Sina lõpetasid „{addressbook}“ aadressiraamatu jagamise grupiga {group}",
+ "{actor} unshared address book {addressbook} from group {group}" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise grupiga {group}",
+ "{actor} created contact {card} in address book {addressbook}" : "{actor} lisas „{card}“ kontakti „{addressbook}“ aadressiraamatusse",
+ "You created contact {card} in address book {addressbook}" : "Sina lisasid „{card}“ kontakti „{addressbook}“ aadressiraamatusse",
+ "{actor} deleted contact {card} from address book {addressbook}" : "{actor} kustutas „{card}“ kontakti „{addressbook}“ aadressiraamatus",
+ "You deleted contact {card} from address book {addressbook}" : "Sa kustutasid „{card}“ kontakti „{addressbook}“ aadressiraamatus",
+ "{actor} updated contact {card} in address book {addressbook}" : "{actor} uuendas „{card}“ kontakti „{addressbook}“ aadressiraamatus",
+ "You updated contact {card} in address book {addressbook}" : "Sa uuendasid „{card}“ kontakti „{addressbook}“ aadressiraamatus",
+ "A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>Kontakti</strong> või <strong>aadressiraamatut</strong> muudeti",
"Accounts" : "Kasutajakontod",
"System address book which holds all accounts" : "Süsteemne aadressiraamat, kus leiduvad kõik kasutajakontod",
"File is not updatable: %1$s" : "Fail pole uuendatav: %1$s",
"Failed to get storage for file" : "Failile ei õnnestunud eraldada andmeruumi",
+ "Could not write to final file, canceled by hook" : "Lõppfaili kirjutamine ei õnnestunud, selle katkestas programmi haak",
"Could not write file contents" : "Ei õnnestunud kirjutada faili sisu",
"_%n byte_::_%n bytes_" : ["%n bait","%n baiti"],
+ "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Viga faili kopeerimisel sihtkausta (kopeerisin %1$s, aga suuruseks eeldasin %2$s)",
+ "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Eeldasin faili suuruseks %1$s, aga lugesin (Nextcloudi kliendilt) ja kirjutasin (Nextcloudi andmeruumi) %2$s. Tegemist võib olla võrguühenduse veaga saatja poolel või andmeruumi kirjutamise veaga serveri poolel.",
+ "Could not rename part file to final file, canceled by hook" : "Osalise faili nime muutmine lõplikuks nimeks ei õnnestunud, selle katkestas programmi haak",
+ "Could not rename part file to final file" : "Osalise faili nime muutmine lõplikuks nimeks ei õnnestunud",
"Failed to check file size: %1$s" : "Faili suuruse kontrollimine ei õnnestunud: %1$s",
"Could not open file: %1$s, file does seem to exist" : "„%1$s“ faili avamine ei õnnestunud - aga tundub, et ta on olemas",
"Could not open file: %1$s, file doesn't seem to exist" : "„%1$s“ faili avamine ei õnnestunud - tundub, et teda pole olemas",
@@ -113,21 +239,28 @@ OC.L10N.register(
"Failed to unlink: %1$s" : "Lingi eemaldamine ei õnnestunud: %1$s",
"Failed to write file contents: %1$s" : "Faili sisu salvestamine ei õnnestunud: %1$s",
"File not found: %1$s" : "Faili ei leidu: %1$s",
+ "Invalid target path" : "Vigane sihtasukoht",
"System is in maintenance mode." : "Server on hooldusrežiimis.",
"Upgrade needed" : "Uuendus on vajalik",
+ "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Selleks, et sinu %s toimiks iOS-is/macOS-is CalDAV-i ja CardDAV-iga peab https olema seadistatud.",
"Configures a CalDAV account" : "Seadistab CalDAV-i kasutajakonto",
"Configures a CardDAV account" : "Seadistab CardDAV-i kasutajakonto",
"Events" : "Sündmused",
"Untitled task" : "Ilma nimeta pealkiri",
+ "Completed on %s" : "Lõpetatud %s",
+ "Due on %s by %s" : "Tähtaeg: %s, täitjaks %s",
"Due on %s" : "Tähtaeg: %s",
"System Address Book" : "Süsteemne aadressiraamat",
"The system address book contains contact information for all users in your instance." : "Süsteemses aadressiraamatus leiduvad kõikde selle serveri kasutajate kontaktteave.",
"Enable System Address Book" : "Kasuta süsteemset aadressiraamatut",
"DAV system address book" : "DAV-i süsteemne aadressiraamat",
+ "No outstanding DAV system address book sync." : "Pole DAV-i süsteemse aadressiraamatu sünkroniseerimist.",
+ "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Kuna selles serveris on üle 1000 kasutaja, siis DAV-i süsteemse aadressiraamatu sünkroonomist poel veel toimunud. Aga võis ka juhtuda viga. Palun käivita ta käsurealt ise käsuga „occ dav:sync-system-addressbook“.",
"WebDAV endpoint" : "WebDAV-i teenuse otspunkt",
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Ei õnnestunud kontrollida, kas sinu veebiserver on korrektselt seadistatud ja võimaldab kasutada failide sünkroniseerimist WebDAV-i vahendusel. Palun kontrolli seda käsitsi.",
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Sinu veebiserver pole veel failide sünkroniseerimiseks vajalikult seadistatud, kuna WebDAV liides paistab olevat katki.",
"Your web server is properly set up to allow file synchronization over WebDAV." : "Sinu veebiserver on korrektselt seadistatud ja võimaldab kasutada failide sünkroniseerimist WebDAV-i vahendusel.",
+ "Migrated calendar (%1$s)" : "Ümberkolitud kalender (%1$s)",
"Calendars including events, details and attendees" : "Kalendrid, sealhulgas sündmused, üksikasjad ja osalejad",
"Contacts and groups" : "Kontaktid ja grupid",
"WebDAV" : "WebDAV",
@@ -137,6 +270,8 @@ OC.L10N.register(
"Failed to clear your absence settings" : "Sinu äraoleku seadistuste eemaldamine ei õnnestunud",
"First day" : "Esimene päev",
"Last day (inclusive)" : "Viimane päev (kaasaarvatud)",
+ "Out of office replacement (optional)" : "Asendaja äraoleku ajaks (valikuline)",
+ "Name of the replacement" : "Asendaja nimi",
"No results." : "Vasteid ei leitud.",
"Start typing." : "Alusta kirjutamist.",
"Short absence status" : "Äraoleku lühinimi",
@@ -148,11 +283,13 @@ OC.L10N.register(
"Failed to save availability" : "Saadavuse salvestamine ei õnnestunud",
"Time zone:" : "Ajavöönd:",
"to" : "saaja",
- "Availability" : "Saadavus",
- "Absence" : "Äraolek",
- "Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
- "Send invitations to attendees" : "Saada osalejatele kutsed",
- "Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused",
+ "Delete slot" : "Kustuta ajavahemik",
+ "No working hours set" : "Tööajad on sisestamata",
+ "Add slot" : "Lisa ajavahemik",
+ "Weekdays" : "Nädalapäevad",
+ "Pick a start time for {dayName}" : "Vali algusaeg: {dayName}",
+ "Pick a end time for {dayName}" : "Vali lõpuaeg: {dayName}",
+ "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Kõikide teavituste summutamiseks määra automaatselt kasutajale olek „Ära sega“ nendele aegadele, kus ta vaba ei ole.",
"Cancel" : "Tühista",
"Import" : "Impordi",
"Error while saving settings" : "Viga seadistuste salvestamisel",
@@ -160,18 +297,30 @@ OC.L10N.register(
"Error while resetting contact" : "Viga kontakti lähtestamisel",
"Contact imported successfully" : "Kontakti importimine õnnestus",
"Error while importing contact" : "Viga kontakti importimisel",
- "Example Content" : "Sisunäidis",
- "Set example content to be created on new user first login." : "Kirjelda näidissisu, mis uue kasutaja esimesel sisselogimisel luuakse.",
"Import contact" : "Impordi kontakt",
- "Reset to default contact" : "Lähtesta vaikimisi kontakstiks",
+ "Reset to default" : "Taasta vaikeseadistused",
"Import contacts" : "Impordi kontaktid",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Uue .vcf faili importimisel olemasolev vaikimisi kontakt kustutatakse ja asendatakse uuega. Kas sa soovid jätkata?",
+ "Availability" : "Saadavus",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Kui seadistad oma tööajad, siis teised saavad kohtumise broneerimisel arvestada sellega, millal sind kohal pole.",
+ "Absence" : "Äraolek",
+ "Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
+ "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Palun paigalda ka {calendarappstoreopen}Kalendrirakendus{linkclose} või {calendardocopen}lisa sünkroniseerimine oma töölaule ja nutiseadmesse ↗{linkclose}.",
+ "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Palun kontrolli, et {emailopen}e-posti server{linkclose} on seadistatud korrektselt.",
+ "Calendar server" : "Kalendriserver",
+ "Send invitations to attendees" : "Saada osalejatele kutsed",
+ "Automatically generate a birthday calendar" : "Koosta sünnipäevade kalender automaatselt",
+ "Birthday calendars will be generated by a background job." : "Sünnipäevade kalender luuakse automaatselt taustateenuse poolt.",
+ "Hence they will not be available immediately after enabling but will show up after some time." : "Seega pole need andmed kohe saadaval, vaid ilmuvad mingi aja pärast.",
+ "Send notifications for events" : "Saada sündmuste teavitusi",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Teavitused saadetakse taustateenuste poolt. See eeldab, et vastavaid skripte käivitatakse piisavalt tihti.",
+ "Send reminder notifications to calendar sharees as well" : "Saada meeldetuletused ka neile, kes ürituse on lisanud oma kalendrisse",
+ "Reminders are always sent to organizers and attendees." : "Meeldetuletused on alati saadetud korraldajatele ja osalejatele.",
+ "Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused",
"There was an error updating your attendance status." : "Sinu osalemise oleku muutmisel tekkis viga.",
"Please contact the organizer directly." : "Palun võta ühendust korraldajaga otse.",
"Are you accepting the invitation?" : "Kas sa nõustud kutsega?",
"Tentative" : "Esialgne",
- "Your attendance was updated successfully." : "Sinu osalemise oleku muutmine õnnestus.",
- "Time:" : "Aeg:",
- "Could not open file" : "Ei õnnestunud avada faili"
+ "Your attendance was updated successfully." : "Sinu osalemise oleku muutmine õnnestus."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/et_EE.json b/apps/dav/l10n/et_EE.json
index 06543cb78bc..c01dc468808 100644
--- a/apps/dav/l10n/et_EE.json
+++ b/apps/dav/l10n/et_EE.json
@@ -29,7 +29,11 @@
"{actor} deleted event {event} from calendar {calendar}" : "{actor} kustutas sündmuse {event} kalendrist {calendar}",
"You deleted event {event} from calendar {calendar}" : "Sa kustutasid sündmuse {event} kalendrist {calendar}",
"{actor} updated event {event} in calendar {calendar}" : "{actor} uuendas sündmust {event} kalendris {calendar}",
- "You updated event {event} in calendar {calendar}" : "Sa uuendasid sündmust {event} kalendris {calendar}",
+ "You updated event {event} in calendar {calendar}" : "Sa uuendasid „{event}“ sündmust „{calendar}“ kalendris",
+ "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} teisaldas „{event}“ sündmuse „{sourceCalendar}“ kalendrist „{targetCalendar}“ kalendrisse",
+ "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Sina teisaldasid „{event}“ sündmuse „{sourceCalendar}“ kalendrist „{targetCalendar}“ kalendrisse",
+ "{actor} restored event {event} of calendar {calendar}" : "{actor} taastas „{event}“ sündmuse „{calendar}“ kalendris",
+ "You restored event {event} of calendar {calendar}" : "Sina taastasid „{event}“ sündmuse „{calendar}“ kalendris",
"Busy" : "Hõivatud",
"{actor} created to-do {todo} in list {calendar}" : "{actor} lisas {todo} ülesande {calendar} loendissse",
"You created to-do {todo} in list {calendar}" : "Sina lisasid {todo} ülesande {calendar} loendisse",
@@ -66,11 +70,100 @@
"Description: %s" : "Kirjeldus: %s",
"Where: %s" : "Kus: %s",
"%1$s via %2$s" : "%1$s %2$s kaudu",
+ "In the past on %1$s for the entire day" : "Minevikus kogu päeva: %1$s",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["%n minuti pärast kogu päeva: %1$s","%n minuti pärast kogu päeva: %1$s"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["%n tunni pärast kogu päeva: %1$s","%n tunni pärast kogu päeva: %1$s"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["%n päeva pärast kogu päeva: %1$s","%n päeva pärast kogu päeva: %1$s"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["%n nädala pärast kogu päeva: %1$s","%n nädala pärast kogu päeva: %1$s"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["%n kuu pärast kogu päeva: %1$s","%n kuu pärast kogu päeva: %1$s"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["%n aasta pärast kogu päeva: %1$s","%n aasta pärast kogu päeva: %1$s"],
+ "In the past on %1$s between %2$s - %3$s" : "Minevikus: %1$s ajavahemikus %2$s - %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["%n minuti pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n minuti pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["%n tunni pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n tunni pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["%n päeva pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n päeva pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["%n nädala pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n nädala pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["%n kuu pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n kuu pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["%n aasta pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s","%n aasta pärast ajavahemikus %2$s -%3$s kogu päeva: %1$s"],
+ "Could not generate when statement" : "Ei õnnestunud koostada tingimuslikku „when“ lausendit",
+ "Every Day for the entire day" : "Iga päev kogu päeva jooksul",
+ "Every Day for the entire day until %1$s" : "Iga päev kogu päeva jooksul kuni %1$s",
+ "Every Day between %1$s - %2$s" : "Iga päev ajavahemikus %1$s - %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "Iga päev ajavahemikus %1$s - %2$s kuni %3$s",
+ "Every %1$d Days for the entire day" : "Iga %1$d. päev kogu päeva jooksul",
+ "Every %1$d Days for the entire day until %2$s" : "Iga %1$d. päev kogu päeva jooksul kuni %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "Iga %1$d. päev kogu päeva jooksul ajavahemikus %2$s - %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "Iga %1$d. päev kogu päeva jooksul ajavahemikus %2$s - %3$s, kuni %4$s",
+ "Could not generate event recurrence statement" : "Ei õnnestunud koostada ürituse kordumise lausendit",
+ "Every Week on %1$s for the entire day" : "Kogu päeva kestel igal nädalal: %1$s",
+ "Every Week on %1$s for the entire day until %2$s" : "Kogu päeva kestel igal nädalal kuni %2$s: %1$s",
+ "Every Week on %1$s between %2$s - %3$s" : "Igal nädalal: %1$s ajavahemikus %2$s - %3$s",
+ "Every Week on %1$s between %2$s - %3$s until %4$s" : "Igal nädalal kuni %2$s: %1$s ajavahemikus %3$s - %4$s",
+ "Every %1$d Weeks on %2$s for the entire day" : "Igal %1$d-l nädalal kogu päeva kestel: %2$s",
+ "Every %1$d Weeks on %2$s for the entire day until %3$s" : "Igal %1$d-l nädalal kuni %3$s kogu päeva kestel: %2$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s" : "Igal %1$d-l nädalal ajavahemikus %3$s - %4$s: %2$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Igal %1$d-l nädalal kuni %5$s ajavahemikus %3$s - %4$s: %2$s",
+ "Every Month on the %1$s for the entire day" : "Kogu päeva kestel igal kuul: %1$s",
+ "Every Month on the %1$s for the entire day until %2$s" : "Kogu päeva kestel igal kuul kuni %2$s: %1$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "Igal kuul: %1$s ajavahemikus %2$s - %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Igal kuul kuni %2$s: %1$s ajavahemikus %3$s - %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "Igal %1$d-l kuul kogu päeva kestel: %2$s",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "Igal %1$d-l kuul kuni %3$s kogu päeva kestel: %2$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "Igal %1$d-l kuul ajavahemikus %3$s - %4$s: %2$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Igal %1$d-l kuul kuni %5$s ajavahemikus %3$s - %4$s: %2$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "Kogu päeva kestel igal aastal: %1$s, %2$s",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Kogu päeva kestel igal aastal kuni %3$s: %1$s, %2$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Igal aastal ajavahemikus %3$s - %4$s: %1$s, %2$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Igal aastal kuni %5$sajavahemikus %3$s - %4$s: %1$s, %2$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "Igal %1$d-l aastal kogu päeva kestel: %2$s, %3$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Kogu päeva kestel igal %1$d-l aastal kuni %4$s: %2$s, %3$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Igal %1$d-l aastal ajavahemikus %4$s - %5$s: %2$s, %3$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Igal %1$d-l aastal kuni %6$s ajavahemikus %4$s - %5$s: %2$s, %3$s",
+ "On specific dates for the entire day until %1$s" : "Kindlatel päevadel kogu päeva jooksul kuni %1$s",
+ "On specific dates between %1$s - %2$s until %3$s" : "Kindlatel päevadel ajavahemikus %1$s - %2$s kuni %3$s",
+ "In the past on %1$s" : "Minevikus %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Ühe minuti pärast: %1$s","%n minuti pärast: %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Tunni pärast: %1$s","%n tunni pärast: %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Päeva möödudes: %1$s","%n päeva möödudes: %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Nädala möödudes: %1$s","%n nädala möödudes: %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Kuu möödudes: %1$s","%n kuu möödudes: %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["Aasta möödudes: %1$s","%n aasta möödudes: %1$s"],
+ "In the past on %1$s then on %2$s" : "Minevikus: %1$s ja siis %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Minuti pärast: %1$s ja siis %2$s","%n minuti pärast: %1$s ja siis %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Tunni pärast: %1$s ja siis %2$s","%n tunni pärast: %1$s ja siis %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Päeva möödudes: %1$s ja siis %2$s","%n päeva möödudes: %1$s ja siis %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Nädala möödudes: %1$s ja siis %2$s","%n nädala möödudes: %1$s ja siis %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Kuu möödudes: %1$s ja siis %2$s","%n kuu möödudes: %1$s ja siis %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Aasta möödudes: %1$s ja siis %2$s","%n aasta möödudes: %1$s ja siis %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "Minevikus: %1$s ja siis %2$s ning %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Minuti pärast: %1$s ja siis %2$s ning %3$s","%n minuti pärast: %1$s ja siis %2$s ning %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Tunni pärast: %1$s ja siis %2$s ning %3$s","%n tunni pärast: %1$s ja siis %2$s ning %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Päeva möödudes: %1$s ja siis %2$s ning %3$s","%n päeva möödudes: %1$s ja siis %2$s ning %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Nädala möödudes: %1$s ja siis %2$s ning %3$s","%n nädala möödudes: %1$s ja siis %2$s ning %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Kuu möödudes: %1$s ja siis %2$s ning %3$s","%n kuu möödudes: %1$s ja siis %2$s ning %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Aasta möödudes: %1$s ja siis %2$s ning %3$s","%n aasta möödudes: %1$s ja siis %2$s ning %3$s"],
+ "Could not generate next recurrence statement" : "Ei õnnestunud koostada korduva ürituse järgmise toimumise lausendit",
+ "Cancelled: %1$s" : "Tühistatud: %1$s",
+ "\"%1$s\" has been canceled" : "„%1$s“ on tühistatud",
+ "Re: %1$s" : "Re: %1$s",
+ "%1$s has accepted your invitation" : "„%1$s“ on nõustunud sinu kutsega",
+ "%1$s has tentatively accepted your invitation" : "„%1$s“ on esialgselt nõustunud sinu kutsega",
+ "%1$s has declined your invitation" : "„%1$s“ on sinu kutsest keeldunud",
+ "%1$s has responded to your invitation" : "„%1$s“ on vastanud sinu kutsele",
+ "Invitation updated: %1$s" : "Kutse on uuendatud: %1$s",
+ "%1$s updated the event \"%2$s\"" : "„%1$s“ uuendas sündmust „%2$s“",
+ "Invitation: %1$s" : "Kutse: %1$s",
+ "%1$s would like to invite you to \"%2$s\"" : "„%1$s“ soovib saata sulle „%2$s“ kutset",
+ "Organizer:" : "Korraldaja:",
+ "Attendees:" : "Osalejad:",
+ "Title:" : "Pealkiri:",
"When:" : "Millal:",
"Location:" : "Asukoht:",
"Link:" : "Link:",
+ "Occurring:" : "Toimub:",
"Accept" : "Nõustu",
"Decline" : "Keeldu",
+ "More options …" : "Täiendavad valikud…",
+ "More options at %s" : "Lisavalikud: %s",
"Monday" : "Esmaspäev",
"Tuesday" : "Teisipäev",
"Wednesday" : "Kolmapäev",
@@ -96,13 +189,46 @@
"Fourth" : "Neljas",
"Fifth" : "Viies",
"Last" : "Viimane",
+ "Second Last" : "Teiseks viimane",
+ "Third Last" : "Kolmandks viimane",
+ "Fourth Last" : "Neljandaks viimane",
+ "Fifth Last" : "Viiendaks viimane",
"Contacts" : "Kontaktid",
+ "{actor} created address book {addressbook}" : "{actor} lõi aadressiraamatu „{addressbook}“",
+ "You created address book {addressbook}" : "Sa lõid aadressiraamatu „{addressbook}“",
+ "{actor} deleted address book {addressbook}" : "„{actor}“ kustutas „{addressbook}“ aadressiraamatu",
+ "You deleted address book {addressbook}" : "Sa kustutasid aadressiraamatu „{addressbook}“",
+ "{actor} updated address book {addressbook}" : "{actor} uuendasaadressiraamatut „{addressbook}“",
+ "You updated address book {addressbook}" : "Sa uuendasid aadressiraamatut „{addressbook}“",
+ "{actor} shared address book {addressbook} with you" : "{actor} jagas „{addressbook}“ aadressiraamatut sinuga",
+ "You shared address book {addressbook} with {user}" : "Sa jagasid „{addressbook}“ aadressiraamatut kasutajaga „{user}“",
+ "{actor} shared address book {addressbook} with {user}" : "{actor} jagas „{addressbook}“ aadressiraamatut kasutajaga „{user}“",
+ "{actor} unshared address book {addressbook} from you" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise sinult",
+ "You unshared address book {addressbook} from {user}" : "Sina lõpetasid „{addressbook}“ aadressiraamatu jagamise kasutajalt {user}",
+ "{actor} unshared address book {addressbook} from {user}" : "{actor} lõpetas „{addressbook}“ aadressiraamatu kasutajalt {user}",
+ "{actor} unshared address book {addressbook} from themselves" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise iseendalt",
+ "You shared address book {addressbook} with group {group}" : "Sina jagasid „{addressbook}“ aadressiraamatut grupiga {group}",
+ "{actor} shared address book {addressbook} with group {group}" : "{actor} jagas „{addressbook}“ aadressiraamatut grupiga {group}",
+ "You unshared address book {addressbook} from group {group}" : "Sina lõpetasid „{addressbook}“ aadressiraamatu jagamise grupiga {group}",
+ "{actor} unshared address book {addressbook} from group {group}" : "{actor} lõpetas „{addressbook}“ aadressiraamatu jagamise grupiga {group}",
+ "{actor} created contact {card} in address book {addressbook}" : "{actor} lisas „{card}“ kontakti „{addressbook}“ aadressiraamatusse",
+ "You created contact {card} in address book {addressbook}" : "Sina lisasid „{card}“ kontakti „{addressbook}“ aadressiraamatusse",
+ "{actor} deleted contact {card} from address book {addressbook}" : "{actor} kustutas „{card}“ kontakti „{addressbook}“ aadressiraamatus",
+ "You deleted contact {card} from address book {addressbook}" : "Sa kustutasid „{card}“ kontakti „{addressbook}“ aadressiraamatus",
+ "{actor} updated contact {card} in address book {addressbook}" : "{actor} uuendas „{card}“ kontakti „{addressbook}“ aadressiraamatus",
+ "You updated contact {card} in address book {addressbook}" : "Sa uuendasid „{card}“ kontakti „{addressbook}“ aadressiraamatus",
+ "A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>Kontakti</strong> või <strong>aadressiraamatut</strong> muudeti",
"Accounts" : "Kasutajakontod",
"System address book which holds all accounts" : "Süsteemne aadressiraamat, kus leiduvad kõik kasutajakontod",
"File is not updatable: %1$s" : "Fail pole uuendatav: %1$s",
"Failed to get storage for file" : "Failile ei õnnestunud eraldada andmeruumi",
+ "Could not write to final file, canceled by hook" : "Lõppfaili kirjutamine ei õnnestunud, selle katkestas programmi haak",
"Could not write file contents" : "Ei õnnestunud kirjutada faili sisu",
"_%n byte_::_%n bytes_" : ["%n bait","%n baiti"],
+ "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Viga faili kopeerimisel sihtkausta (kopeerisin %1$s, aga suuruseks eeldasin %2$s)",
+ "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Eeldasin faili suuruseks %1$s, aga lugesin (Nextcloudi kliendilt) ja kirjutasin (Nextcloudi andmeruumi) %2$s. Tegemist võib olla võrguühenduse veaga saatja poolel või andmeruumi kirjutamise veaga serveri poolel.",
+ "Could not rename part file to final file, canceled by hook" : "Osalise faili nime muutmine lõplikuks nimeks ei õnnestunud, selle katkestas programmi haak",
+ "Could not rename part file to final file" : "Osalise faili nime muutmine lõplikuks nimeks ei õnnestunud",
"Failed to check file size: %1$s" : "Faili suuruse kontrollimine ei õnnestunud: %1$s",
"Could not open file: %1$s, file does seem to exist" : "„%1$s“ faili avamine ei õnnestunud - aga tundub, et ta on olemas",
"Could not open file: %1$s, file doesn't seem to exist" : "„%1$s“ faili avamine ei õnnestunud - tundub, et teda pole olemas",
@@ -111,21 +237,28 @@
"Failed to unlink: %1$s" : "Lingi eemaldamine ei õnnestunud: %1$s",
"Failed to write file contents: %1$s" : "Faili sisu salvestamine ei õnnestunud: %1$s",
"File not found: %1$s" : "Faili ei leidu: %1$s",
+ "Invalid target path" : "Vigane sihtasukoht",
"System is in maintenance mode." : "Server on hooldusrežiimis.",
"Upgrade needed" : "Uuendus on vajalik",
+ "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Selleks, et sinu %s toimiks iOS-is/macOS-is CalDAV-i ja CardDAV-iga peab https olema seadistatud.",
"Configures a CalDAV account" : "Seadistab CalDAV-i kasutajakonto",
"Configures a CardDAV account" : "Seadistab CardDAV-i kasutajakonto",
"Events" : "Sündmused",
"Untitled task" : "Ilma nimeta pealkiri",
+ "Completed on %s" : "Lõpetatud %s",
+ "Due on %s by %s" : "Tähtaeg: %s, täitjaks %s",
"Due on %s" : "Tähtaeg: %s",
"System Address Book" : "Süsteemne aadressiraamat",
"The system address book contains contact information for all users in your instance." : "Süsteemses aadressiraamatus leiduvad kõikde selle serveri kasutajate kontaktteave.",
"Enable System Address Book" : "Kasuta süsteemset aadressiraamatut",
"DAV system address book" : "DAV-i süsteemne aadressiraamat",
+ "No outstanding DAV system address book sync." : "Pole DAV-i süsteemse aadressiraamatu sünkroniseerimist.",
+ "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Kuna selles serveris on üle 1000 kasutaja, siis DAV-i süsteemse aadressiraamatu sünkroonomist poel veel toimunud. Aga võis ka juhtuda viga. Palun käivita ta käsurealt ise käsuga „occ dav:sync-system-addressbook“.",
"WebDAV endpoint" : "WebDAV-i teenuse otspunkt",
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Ei õnnestunud kontrollida, kas sinu veebiserver on korrektselt seadistatud ja võimaldab kasutada failide sünkroniseerimist WebDAV-i vahendusel. Palun kontrolli seda käsitsi.",
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Sinu veebiserver pole veel failide sünkroniseerimiseks vajalikult seadistatud, kuna WebDAV liides paistab olevat katki.",
"Your web server is properly set up to allow file synchronization over WebDAV." : "Sinu veebiserver on korrektselt seadistatud ja võimaldab kasutada failide sünkroniseerimist WebDAV-i vahendusel.",
+ "Migrated calendar (%1$s)" : "Ümberkolitud kalender (%1$s)",
"Calendars including events, details and attendees" : "Kalendrid, sealhulgas sündmused, üksikasjad ja osalejad",
"Contacts and groups" : "Kontaktid ja grupid",
"WebDAV" : "WebDAV",
@@ -135,6 +268,8 @@
"Failed to clear your absence settings" : "Sinu äraoleku seadistuste eemaldamine ei õnnestunud",
"First day" : "Esimene päev",
"Last day (inclusive)" : "Viimane päev (kaasaarvatud)",
+ "Out of office replacement (optional)" : "Asendaja äraoleku ajaks (valikuline)",
+ "Name of the replacement" : "Asendaja nimi",
"No results." : "Vasteid ei leitud.",
"Start typing." : "Alusta kirjutamist.",
"Short absence status" : "Äraoleku lühinimi",
@@ -146,11 +281,13 @@
"Failed to save availability" : "Saadavuse salvestamine ei õnnestunud",
"Time zone:" : "Ajavöönd:",
"to" : "saaja",
- "Availability" : "Saadavus",
- "Absence" : "Äraolek",
- "Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
- "Send invitations to attendees" : "Saada osalejatele kutsed",
- "Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused",
+ "Delete slot" : "Kustuta ajavahemik",
+ "No working hours set" : "Tööajad on sisestamata",
+ "Add slot" : "Lisa ajavahemik",
+ "Weekdays" : "Nädalapäevad",
+ "Pick a start time for {dayName}" : "Vali algusaeg: {dayName}",
+ "Pick a end time for {dayName}" : "Vali lõpuaeg: {dayName}",
+ "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Kõikide teavituste summutamiseks määra automaatselt kasutajale olek „Ära sega“ nendele aegadele, kus ta vaba ei ole.",
"Cancel" : "Tühista",
"Import" : "Impordi",
"Error while saving settings" : "Viga seadistuste salvestamisel",
@@ -158,18 +295,30 @@
"Error while resetting contact" : "Viga kontakti lähtestamisel",
"Contact imported successfully" : "Kontakti importimine õnnestus",
"Error while importing contact" : "Viga kontakti importimisel",
- "Example Content" : "Sisunäidis",
- "Set example content to be created on new user first login." : "Kirjelda näidissisu, mis uue kasutaja esimesel sisselogimisel luuakse.",
"Import contact" : "Impordi kontakt",
- "Reset to default contact" : "Lähtesta vaikimisi kontakstiks",
+ "Reset to default" : "Taasta vaikeseadistused",
"Import contacts" : "Impordi kontaktid",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Uue .vcf faili importimisel olemasolev vaikimisi kontakt kustutatakse ja asendatakse uuega. Kas sa soovid jätkata?",
+ "Availability" : "Saadavus",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Kui seadistad oma tööajad, siis teised saavad kohtumise broneerimisel arvestada sellega, millal sind kohal pole.",
+ "Absence" : "Äraolek",
+ "Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
+ "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Palun paigalda ka {calendarappstoreopen}Kalendrirakendus{linkclose} või {calendardocopen}lisa sünkroniseerimine oma töölaule ja nutiseadmesse ↗{linkclose}.",
+ "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Palun kontrolli, et {emailopen}e-posti server{linkclose} on seadistatud korrektselt.",
+ "Calendar server" : "Kalendriserver",
+ "Send invitations to attendees" : "Saada osalejatele kutsed",
+ "Automatically generate a birthday calendar" : "Koosta sünnipäevade kalender automaatselt",
+ "Birthday calendars will be generated by a background job." : "Sünnipäevade kalender luuakse automaatselt taustateenuse poolt.",
+ "Hence they will not be available immediately after enabling but will show up after some time." : "Seega pole need andmed kohe saadaval, vaid ilmuvad mingi aja pärast.",
+ "Send notifications for events" : "Saada sündmuste teavitusi",
+ "Notifications are sent via background jobs, so these must occur often enough." : "Teavitused saadetakse taustateenuste poolt. See eeldab, et vastavaid skripte käivitatakse piisavalt tihti.",
+ "Send reminder notifications to calendar sharees as well" : "Saada meeldetuletused ka neile, kes ürituse on lisanud oma kalendrisse",
+ "Reminders are always sent to organizers and attendees." : "Meeldetuletused on alati saadetud korraldajatele ja osalejatele.",
+ "Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused",
"There was an error updating your attendance status." : "Sinu osalemise oleku muutmisel tekkis viga.",
"Please contact the organizer directly." : "Palun võta ühendust korraldajaga otse.",
"Are you accepting the invitation?" : "Kas sa nõustud kutsega?",
"Tentative" : "Esialgne",
- "Your attendance was updated successfully." : "Sinu osalemise oleku muutmine õnnestus.",
- "Time:" : "Aeg:",
- "Could not open file" : "Ei õnnestunud avada faili"
+ "Your attendance was updated successfully." : "Sinu osalemise oleku muutmine õnnestus."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/eu.js b/apps/dav/l10n/eu.js
index 2a897a6ae73..4deb8172bed 100644
--- a/apps/dav/l10n/eu.js
+++ b/apps/dav/l10n/eu.js
@@ -285,6 +285,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Hautatu hasiera ordu bat {dayName}(e)rako",
"Pick a end time for {dayName}" : "Hautatu bukaera ordu bat {dayName}(e)rako",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Eskuragarri ez egotean, ezarri automatikoki erabiltzailearen egoera \"Ez molestatu\" moduan jakinarazpen guztiak isilarazteko.",
+ "Cancel" : "Utzi",
+ "Import" : "Inportatu",
+ "Error while saving settings" : "Errorea ezarpenak gordetzean",
+ "Reset to default" : "Berezarri balio lehenetsira",
"Availability" : "Eskuragarritasuna",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Zure lan orduak konfiguratzen badituzu, beste pertsonek bulegotik kanpo zaudela ikusiko dute bilera bat erreserbatzen dutenean.",
"Absence" : "Absentzia",
@@ -301,17 +305,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Bidali gogorarazpen jakinarazpenak egutegi partekatzea dutenei ere",
"Reminders are always sent to organizers and attendees." : "Gogorarazpenak beti bidaltzen zaizkie antolatzaileei eta parte-hartzaileei.",
"Enable notifications for events via push" : "Gaitu push bidezko jakinarazpenak gertaerentzat",
- "Cancel" : "Utzi",
- "Import" : "Inportatu",
- "Error while saving settings" : "Errorea ezarpenak gordetzean",
"There was an error updating your attendance status." : "Errore bat gertatu da zure parte-hartze egoera eguneratzerakoan.",
"Please contact the organizer directly." : "Mesedez jarri harremanetan antolatzailearekin zuzenean.",
"Are you accepting the invitation?" : "Gonbidapena onartzen duzu?",
"Tentative" : "Behin behinekoa",
- "Your attendance was updated successfully." : "Zure parte-hartzea ondo eguneratu da.",
- "Time:" : "Noiz:",
- "Could not open file" : "Ezin izan da fitxategia ireki",
- "Invalid chunk name" : "Zati izen baliogabea",
- "Could not rename part file assembled from chunks" : "Ezin izan da zati-fitxategiaren izena aldatu zenbait zatiz osatuta dagoelako"
+ "Your attendance was updated successfully." : "Zure parte-hartzea ondo eguneratu da."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/eu.json b/apps/dav/l10n/eu.json
index ab0924414c4..ac11ede49c3 100644
--- a/apps/dav/l10n/eu.json
+++ b/apps/dav/l10n/eu.json
@@ -283,6 +283,10 @@
"Pick a start time for {dayName}" : "Hautatu hasiera ordu bat {dayName}(e)rako",
"Pick a end time for {dayName}" : "Hautatu bukaera ordu bat {dayName}(e)rako",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Eskuragarri ez egotean, ezarri automatikoki erabiltzailearen egoera \"Ez molestatu\" moduan jakinarazpen guztiak isilarazteko.",
+ "Cancel" : "Utzi",
+ "Import" : "Inportatu",
+ "Error while saving settings" : "Errorea ezarpenak gordetzean",
+ "Reset to default" : "Berezarri balio lehenetsira",
"Availability" : "Eskuragarritasuna",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Zure lan orduak konfiguratzen badituzu, beste pertsonek bulegotik kanpo zaudela ikusiko dute bilera bat erreserbatzen dutenean.",
"Absence" : "Absentzia",
@@ -299,17 +303,10 @@
"Send reminder notifications to calendar sharees as well" : "Bidali gogorarazpen jakinarazpenak egutegi partekatzea dutenei ere",
"Reminders are always sent to organizers and attendees." : "Gogorarazpenak beti bidaltzen zaizkie antolatzaileei eta parte-hartzaileei.",
"Enable notifications for events via push" : "Gaitu push bidezko jakinarazpenak gertaerentzat",
- "Cancel" : "Utzi",
- "Import" : "Inportatu",
- "Error while saving settings" : "Errorea ezarpenak gordetzean",
"There was an error updating your attendance status." : "Errore bat gertatu da zure parte-hartze egoera eguneratzerakoan.",
"Please contact the organizer directly." : "Mesedez jarri harremanetan antolatzailearekin zuzenean.",
"Are you accepting the invitation?" : "Gonbidapena onartzen duzu?",
"Tentative" : "Behin behinekoa",
- "Your attendance was updated successfully." : "Zure parte-hartzea ondo eguneratu da.",
- "Time:" : "Noiz:",
- "Could not open file" : "Ezin izan da fitxategia ireki",
- "Invalid chunk name" : "Zati izen baliogabea",
- "Could not rename part file assembled from chunks" : "Ezin izan da zati-fitxategiaren izena aldatu zenbait zatiz osatuta dagoelako"
+ "Your attendance was updated successfully." : "Zure parte-hartzea ondo eguneratu da."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/fa.js b/apps/dav/l10n/fa.js
index 03bc4a221ba..4ce74a149f2 100644
--- a/apps/dav/l10n/fa.js
+++ b/apps/dav/l10n/fa.js
@@ -4,96 +4,170 @@ OC.L10N.register(
"Calendar" : "تقویم",
"Tasks" : "وظایف",
"Personal" : "شخصی",
- "{actor} created calendar {calendar}" : "{actor} created calendar {calendar}",
- "You created calendar {calendar}" : "تقویم ساخته شد",
- "{actor} deleted calendar {calendar}" : "{actor} deleted calendar {calendar}",
- "You deleted calendar {calendar}" : "You deleted calendar {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} updated calendar {calendar}",
- "You updated calendar {calendar}" : "You updated calendar {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} restored calendar {calendar}",
- "You restored calendar {calendar}" : "You restored calendar {calendar}",
- "You shared calendar {calendar} as public link" : "You shared calendar {calendar} as public link",
- "You removed public link for calendar {calendar}" : "You removed public link for calendar {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} shared calendar {calendar} with you",
- "You shared calendar {calendar} with {user}" : "You shared calendar {calendar} with {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} shared calendar {calendar} with {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} unshared calendar {calendar} from you",
- "You unshared calendar {calendar} from {user}" : "You unshared calendar {calendar} from {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} unshared calendar {calendar} from {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} unshared calendar {calendar} from themselves",
- "You shared calendar {calendar} with group {group}" : "You shared calendar {calendar} with group {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} shared calendar {calendar} with group {group}",
- "You unshared calendar {calendar} from group {group}" : "You unshared calendar {calendar} from group {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} unshared calendar {calendar} from group {group}",
+ "{actor} created calendar {calendar}" : "{actor} تقویم {calendar} را ایجاد کرد",
+ "You created calendar {calendar}" : "شما تقویم {calendar} را ایجاد کردید",
+ "{actor} deleted calendar {calendar}" : "{actor} تقویم {calendar} را حذف کرد",
+ "You deleted calendar {calendar}" : "شما تقویم {calendar} را حذف کردید",
+ "{actor} updated calendar {calendar}" : "{actor} تقویم {calendar} را به‌روزرسانی کرد",
+ "You updated calendar {calendar}" : "شما تقویم {calendar} را به‌روزرسانی کردید",
+ "{actor} restored calendar {calendar}" : "{actor} تقویم {calendar} را بازیابی کرد",
+ "You restored calendar {calendar}" : "شما تقویم {calendar} را بازیابی کردید",
+ "You shared calendar {calendar} as public link" : "شما تقویم {calendar} را به‌عنوان پیوند عمومی به اشتراک گذاشتید",
+ "You removed public link for calendar {calendar}" : "شما پیوند عمومی تقویم {calendar} را حذف کردید",
+ "{actor} shared calendar {calendar} with you" : "{actor} تقویم {calendar} را با شما به اشتراک گذاشت",
+ "You shared calendar {calendar} with {user}" : "شما تقویم {calendar} را با {user} به اشتراک گذاشتید",
+ "{actor} shared calendar {calendar} with {user}" : "{actor} تقویم {calendar} را با {user} به اشتراک گذاشت",
+ "{actor} unshared calendar {calendar} from you" : "{actor} اشتراک‌گذاری تقویم {calendar} را از شما لغو کرد",
+ "You unshared calendar {calendar} from {user}" : "شما اشتراک‌گذاری تقویم {calendar} را از {user} لغو کردید",
+ "{actor} unshared calendar {calendar} from {user}" : "{actor} اشتراک‌گذاری تقویم {calendar} را از {user} لغو کرد",
+ "{actor} unshared calendar {calendar} from themselves" : "{actor} اشتراک‌گذاری تقویم {calendar} را از خود لغو کرد",
+ "You shared calendar {calendar} with group {group}" : "شما تقویم {calendar} را با گروه {group} به اشتراک گذاشتید",
+ "{actor} shared calendar {calendar} with group {group}" : "{actor} تقویم {calendar} را با گروه {group} به اشتراک گذاشت",
+ "You unshared calendar {calendar} from group {group}" : "شما اشتراک‌گذاری تقویم {calendar} را از گروه {group} لغو کردید",
+ "{actor} unshared calendar {calendar} from group {group}" : "{actor} اشتراک‌گذاری تقویم {calendar} را از گروه {group} لغو کرد",
"Untitled event" : "رویداد بدون عنوان",
- "{actor} created event {event} in calendar {calendar}" : "{actor} created event {event} in calendar {calendar}",
- "You created event {event} in calendar {calendar}" : "You created event {event} in calendar {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} deleted event {event} from calendar {calendar}",
- "You deleted event {event} from calendar {calendar}" : "You deleted event {event} from calendar {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} updated event {event} in calendar {calendar}",
- "You updated event {event} in calendar {calendar}" : "You updated event {event} in calendar {calendar}",
- "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}",
- "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}",
- "{actor} restored event {event} of calendar {calendar}" : "{actor} restored event {event} of calendar {calendar}",
- "You restored event {event} of calendar {calendar}" : "You restored event {event} of calendar {calendar}",
+ "{actor} created event {event} in calendar {calendar}" : "{actor} رویداد {event} را در تقویم {calendar} ایجاد کرد",
+ "You created event {event} in calendar {calendar}" : "شما رویداد {event} را در تقویم {calendar} ایجاد کردید",
+ "{actor} deleted event {event} from calendar {calendar}" : "{actor} رویداد {event} را از تقویم {calendar} حذف کرد",
+ "You deleted event {event} from calendar {calendar}" : "شما رویداد {event} را از تقویم {calendar} حذف کردید",
+ "{actor} updated event {event} in calendar {calendar}" : "{actor} رویداد {event} را در تقویم {calendar} به‌روزرسانی کرد",
+ "You updated event {event} in calendar {calendar}" : "شما رویداد {event} را در تقویم {calendar} به‌روزرسانی کردید",
+ "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} رویداد {event} را از تقویم {sourceCalendar} به تقویم {targetCalendar} منتقل کرد",
+ "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "شما رویداد {event} را از تقویم {sourceCalendar} به تقویم {targetCalendar} منتقل کردید",
+ "{actor} restored event {event} of calendar {calendar}" : "{actor} رویداد {event} را از تقویم {calendar} بازیابی کرد",
+ "You restored event {event} of calendar {calendar}" : "شما رویداد {event} را از تقویم {calendar} بازیابی کردید",
"Busy" : "مشغول",
- "{actor} created to-do {todo} in list {calendar}" : "{actor} created to-do {todo} in list {calendar}",
- "You created to-do {todo} in list {calendar}" : "You created to-do {todo} in list {calendar}",
- "{actor} deleted to-do {todo} from list {calendar}" : "{actor} deleted to-do {todo} from list {calendar}",
- "You deleted to-do {todo} from list {calendar}" : "You deleted to-do {todo} from list {calendar}",
- "{actor} updated to-do {todo} in list {calendar}" : "{actor} updated to-do {todo} in list {calendar}",
- "You updated to-do {todo} in list {calendar}" : "You updated to-do {todo} in list {calendar}",
- "{actor} solved to-do {todo} in list {calendar}" : "{actor} solved to-do {todo} in list {calendar}",
- "You solved to-do {todo} in list {calendar}" : "You solved to-do {todo} in list {calendar}",
- "{actor} reopened to-do {todo} in list {calendar}" : "{actor} reopened to-do {todo} in list {calendar}",
- "You reopened to-do {todo} in list {calendar}" : "You reopened to-do {todo} in list {calendar}",
- "{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}",
- "You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}",
- "Calendar, contacts and tasks" : "Calendar, contacts and tasks",
- "A <strong>calendar</strong> was modified" : "یک تقویم تغییر کرد",
- "A calendar <strong>event</strong> was modified" : "یک رویداد ثبت شده در تقویم تغییر کرد",
- "A calendar <strong>to-do</strong> was modified" : "یک کار ثبت شده در تقویم تغییر کرد",
- "Contact birthdays" : "Contact birthdays",
- "Death of %s" : "Death of %s",
+ "{actor} created to-do {todo} in list {calendar}" : "{actor} کار {todo} را در لیست {calendar} ایجاد کرد",
+ "You created to-do {todo} in list {calendar}" : "شما کار {todo} را در لیست {calendar} ایجاد کردید",
+ "{actor} deleted to-do {todo} from list {calendar}" : "{actor} کار {todo} را از لیست {calendar} حذف کرد",
+ "You deleted to-do {todo} from list {calendar}" : "شما کار {todo} را از لیست {calendar} حذف کردید",
+ "{actor} updated to-do {todo} in list {calendar}" : "{actor} کار {todo} را در لیست {calendar} به‌روزرسانی کرد",
+ "You updated to-do {todo} in list {calendar}" : "شما کار {todo} را در لیست {calendar} به‌روزرسانی کردید",
+ "{actor} solved to-do {todo} in list {calendar}" : "{actor} کار {todo} را در لیست {calendar} حل کرد",
+ "You solved to-do {todo} in list {calendar}" : "شما کار {todo} را در لیست {calendar} حل کردید",
+ "{actor} reopened to-do {todo} in list {calendar}" : "{actor} کار {todo} را در لیست {calendar} بازگشایی کرد",
+ "You reopened to-do {todo} in list {calendar}" : "شما کار {todo} را در لیست {calendar} بازگشایی کردید",
+ "{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} کار {todo} را از لیست {sourceCalendar} به لیست {targetCalendar} منتقل کرد",
+ "You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "شما کار {todo} را از لیست {sourceCalendar} به لیست {targetCalendar} منتقل کردید",
+ "Calendar, contacts and tasks" : "تقویم، مخاطبین و وظایف",
+ "A <strong>calendar</strong> was modified" : "یک <strong>تقویم</strong> تغییر کرد",
+ "A calendar <strong>event</strong> was modified" : "یک <strong>رویداد</strong> تقویم تغییر کرد",
+ "A calendar <strong>to-do</strong> was modified" : "یک <strong>کار</strong> تقویم تغییر کرد",
+ "Contact birthdays" : "تولد مخاطبین",
+ "Death of %s" : "فوت %s",
"Untitled calendar" : "تقویم بدون عنوان",
- "Calendar:" : "Calendar:",
+ "Calendar:" : "تقویم:",
"Date:" : "تاریخ:",
"Where:" : "مکان:",
"Description:" : "توضیحات:",
- "_%n year_::_%n years_" : ["%n year","%n years"],
- "_%n month_::_%n months_" : ["%n month","%n months"],
- "_%n day_::_%n days_" : ["%n day","%n days"],
- "_%n hour_::_%n hours_" : ["%n hour","%n hours"],
- "_%n minute_::_%n minutes_" : ["%n minute","%n minutes"],
- "%s (in %s)" : "%s (in %s)",
- "%s (%s ago)" : "%s (%s ago)",
- "Calendar: %s" : "Calendar: %s",
- "Date: %s" : "Date: %s",
- "Description: %s" : "Description: %s",
- "Where: %s" : "Where: %s",
+ "_%n year_::_%n years_" : ["%n سال","%n سال"],
+ "_%n month_::_%n months_" : ["%n ماه","%n ماه"],
+ "_%n day_::_%n days_" : ["%n روز","%n روز"],
+ "_%n hour_::_%n hours_" : ["%n ساعت","%n ساعت"],
+ "_%n minute_::_%n minutes_" : ["%n دقیقه","%n دقیقه"],
+ "%s (in %s)" : "%s (در %s)",
+ "%s (%s ago)" : "%s (%s پیش)",
+ "Calendar: %s" : "تقویم: %s",
+ "Date: %s" : "تاریخ: %s",
+ "Description: %s" : "توضیحات: %s",
+ "Where: %s" : "مکان: %s",
"%1$s via %2$s" : "%1$s از طریق %2$s",
- "Cancelled: %1$s" : "Cancelled: %1$s",
- "\"%1$s\" has been canceled" : "\"%1$s\" has been canceled",
- "Re: %1$s" : "Re: %1$s",
- "%1$s has accepted your invitation" : "%1$s has accepted your invitation",
- "%1$s has tentatively accepted your invitation" : "%1$s has tentatively accepted your invitation",
- "%1$s has declined your invitation" : "%1$s has declined your invitation",
- "%1$s has responded to your invitation" : "%1$s has responded to your invitation",
- "Invitation updated: %1$s" : "Invitation updated: %1$s",
- "%1$s updated the event \"%2$s\"" : "%1$s updated the event \"%2$s\"",
- "Invitation: %1$s" : "Invitation: %1$s",
- "%1$s would like to invite you to \"%2$s\"" : "%1$s would like to invite you to \"%2$s\"",
- "Organizer:" : "Organizer:",
- "Attendees:" : "Attendees:",
+ "In the past on %1$s for the entire day" : "در گذشته در %1$s برای کل روز",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["در یک دقیقه در %1$s برای کل روز","در %n دقیقه در %1$s برای کل روز"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["در یک ساعت در %1$s برای کل روز","در %n ساعت در %1$s برای کل روز"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["در یک روز در %1$s برای کل روز","در %n روز در %1$s برای کل روز"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["در یک هفته در %1$s برای کل روز","در %n هفته در %1$s برای کل روز"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["در یک ماه در %1$s برای کل روز","در %n ماه در %1$s برای کل روز"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["در یک سال در %1$s برای کل روز","در %n سال در %1$s برای کل روز"],
+ "In the past on %1$s between %2$s - %3$s" : "در گذشته در %1$s بین %2$s - %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["در یک دقیقه در %1$s بین %2$s - %3$s","در %n دقیقه در %1$s بین %2$s - %3$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["در یک ساعت در %1$s بین %2$s - %3$s","در %n ساعت در %1$s بین %2$s - %3$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["در یک روز در %1$s بین %2$s - %3$s","در %n روز در %1$s بین %2$s - %3$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["در یک هفته در %1$s بین %2$s - %3$s","در %n هفته در %1$s بین %2$s - %3$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["در یک ماه در %1$s بین %2$s - %3$s","در %n ماه در %1$s بین %2$s - %3$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["در یک سال در %1$s بین %2$s - %3$s","در %n سال در %1$s بین %2$s - %3$s"],
+ "Could not generate when statement" : "امکان ایجاد عبارت زمان وجود ندارد",
+ "Every Day for the entire day" : "هر روز برای کل روز",
+ "Every Day for the entire day until %1$s" : "هر روز برای کل روز تا %1$s",
+ "Every Day between %1$s - %2$s" : "هر روز بین %1$s - %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "هر روز بین %1$s - %2$s تا %3$s",
+ "Every %1$d Days for the entire day" : "هر %1$d روز برای کل روز",
+ "Every %1$d Days for the entire day until %2$s" : "هر %1$d روز برای کل روز تا %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "هر %1$d روز بین %2$s - %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "هر %1$d روز بین %2$s - %3$s تا %4$s",
+ "Could not generate event recurrence statement" : "امکان ایجاد عبارت تکرار رویداد وجود ندارد",
+ "Every Week on %1$s for the entire day" : "هر هفته در %1$s برای کل روز",
+ "Every Week on %1$s for the entire day until %2$s" : "هر هفته در %1$s برای کل روز تا %2$s",
+ "Every Week on %1$s between %2$s - %3$s" : "هر هفته در %1$s بین %2$s - %3$s",
+ "Every Week on %1$s between %2$s - %3$s until %4$s" : "هر هفته در %1$s بین %2$s - %3$s تا %4$s",
+ "Every %1$d Weeks on %2$s for the entire day" : "هر %1$d هفته در %2$s برای کل روز",
+ "Every %1$d Weeks on %2$s for the entire day until %3$s" : "هر %1$d هفته در %2$s برای کل روز تا %3$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s" : "هر %1$d هفته در %2$s بین %3$s - %4$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "هر %1$d هفته در %2$s بین %3$s - %4$s تا %5$s",
+ "Every Month on the %1$s for the entire day" : "هر ماه در %1$s برای کل روز",
+ "Every Month on the %1$s for the entire day until %2$s" : "هر ماه در %1$s برای کل روز تا %2$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "هر ماه در %1$s بین %2$s - %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "هر ماه در %1$s بین %2$s - %3$s تا %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "هر %1$d ماه در %2$s برای کل روز",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "هر %1$d ماه در %2$s برای کل روز تا %3$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "هر %1$d ماه در %2$s بین %3$s - %4$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "هر %1$d ماه در %2$s بین %3$s - %4$s تا %5$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "هر سال در %1$s در %2$s برای کل روز",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "هر سال در %1$s در %2$s برای کل روز تا %3$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "هر سال در %1$s در %2$s بین %3$s - %4$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "هر سال در %1$s در %2$s بین %3$s - %4$s تا %5$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "هر %1$d سال در %2$s در %3$s برای کل روز",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "هر %1$d سال در %2$s در %3$s برای کل روز تا %4$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "هر %1$d سال در %2$s در %3$s بین %4$s - %5$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "هر %1$d سال در %2$s در %3$s بین %4$s - %5$s تا %6$s",
+ "On specific dates for the entire day until %1$s" : "در تاریخ‌های مشخص برای کل روز تا %1$s",
+ "On specific dates between %1$s - %2$s until %3$s" : "در تاریخ‌های مشخص بین %1$s - %2$s تا %3$s",
+ "In the past on %1$s" : "در گذشته در %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["در یک دقیقه در %1$s","در %n دقیقه در %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["در یک ساعت در %1$s","در %n ساعت در %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["در یک روز در %1$s","در %n روز در %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["در یک هفته در %1$s","در %n هفته در %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["در یک ماه در %1$s","در %n ماه در %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["در یک سال در %1$s","در %n سال در %1$s"],
+ "In the past on %1$s then on %2$s" : "در گذشته در %1$s سپس در %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["در یک دقیقه در %1$s سپس در %2$s","در %n دقیقه در %1$s سپس در %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["در یک ساعت در %1$s سپس در %2$s","در %n ساعت در %1$s سپس در %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["در یک روز در %1$s سپس در %2$s","در %n روز در %1$s سپس در %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["در یک هفته در %1$s سپس در %2$s","در %n هفته در %1$s سپس در %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["در یک ماه در %1$s سپس در %2$s","در %n ماه در %1$s سپس در %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["در یک سال در %1$s سپس در %2$s","در %n سال در %1$s سپس در %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "در گذشته در %1$s سپس در %2$s و %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["در یک دقیقه در %1$s سپس در %2$s و %3$s","در %n دقیقه در %1$s سپس در %2$s و %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["در یک ساعت در %1$s سپس در %2$s و %3$s","در %n ساعت در %1$s سپس در %2$s و %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["در یک روز در %1$s سپس در %2$s و %3$s","در %n روز در %1$s سپس در %2$s و %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["در یک هفته در %1$s سپس در %2$s و %3$s","در %n هفته در %1$s سپس در %2$s و %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["در یک ماه در %1$s سپس در %2$s و %3$s","در %n ماه در %1$s سپس در %2$s و %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["در یک سال در %1$s سپس در %2$s و %3$s","در %n سال در %1$s سپس در %2$s و %3$s"],
+ "Could not generate next recurrence statement" : "امکان ایجاد عبارت تکرار بعدی وجود ندارد",
+ "Cancelled: %1$s" : "لغو شد: %1$s",
+ "\"%1$s\" has been canceled" : "\"%1$s\" لغو شده است",
+ "Re: %1$s" : "پاسخ: %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\" را به‌روزرسانی کرد",
+ "Invitation: %1$s" : "دعوت: %1$s",
+ "%1$s would like to invite you to \"%2$s\"" : "%1$s مایل است شما را به \"%2$s\" دعوت کند",
+ "Organizer:" : "برگزارکننده:",
+ "Attendees:" : "شرکت‌کنندگان:",
"Title:" : "عنوان:",
+ "When:" : "چه زمانی:",
"Location:" : "مکان:",
- "Link:" : "Link:",
- "Accept" : "قبول",
- "Decline" : "کاهش می یابد",
- "More options …" : "More options …",
- "More options at %s" : "More options at %s",
+ "Link:" : "پیوند:",
+ "Occurring:" : "در حال وقوع:",
+ "Accept" : "پذیرفتن",
+ "Decline" : "رد کردن",
+ "More options …" : "گزینه‌های بیشتر…",
+ "More options at %s" : "گزینه‌های بیشتر در %s",
"Monday" : "دوشنبه",
- "Tuesday" : "سه شنبه",
+ "Tuesday" : "سه‌شنبه",
"Wednesday" : "چهارشنبه",
"Thursday" : "پنجشنبه",
"Friday" : "جمعه",
@@ -105,105 +179,148 @@ OC.L10N.register(
"April" : "آوریل",
"May" : "مه",
"June" : "ژوئن",
- "July" : "جولای",
+ "July" : "ژوئیه",
"August" : "اوت",
"September" : "سپتامبر",
"October" : "اکتبر",
"November" : "نوامبر",
"December" : "دسامبر",
- "First" : "First",
- "Last" : "Last",
+ "First" : "اول",
+ "Second" : "دوم",
+ "Third" : "سوم",
+ "Fourth" : "چهارم",
+ "Fifth" : "پنجم",
+ "Last" : "آخر",
+ "Second Last" : "دومی از آخر",
+ "Third Last" : "سومی از آخر",
+ "Fourth Last" : "چهارمی از آخر",
+ "Fifth Last" : "پنجمی از آخر",
"Contacts" : "مخاطبین",
- "{actor} created address book {addressbook}" : "{actor} created address book {addressbook}",
- "You created address book {addressbook}" : "دفترچه آدرس ساخته شد",
- "{actor} deleted address book {addressbook}" : "{actor} deleted address book {addressbook}",
- "You deleted address book {addressbook}" : "You deleted address book {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} updated address book {addressbook}",
- "You updated address book {addressbook}" : "You updated address book {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} shared address book {addressbook} with you",
- "You shared address book {addressbook} with {user}" : "You shared address book {addressbook} with {user}",
- "{actor} shared address book {addressbook} with {user}" : "{actor} shared address book {addressbook} with {user}",
- "{actor} unshared address book {addressbook} from you" : "{actor} unshared address book {addressbook} from you",
- "You unshared address book {addressbook} from {user}" : "You unshared address book {addressbook} from {user}",
- "{actor} unshared address book {addressbook} from {user}" : "{actor} unshared address book {addressbook} from {user}",
- "{actor} unshared address book {addressbook} from themselves" : "{actor} unshared address book {addressbook} from themselves",
- "You shared address book {addressbook} with group {group}" : "You shared address book {addressbook} with group {group}",
- "{actor} shared address book {addressbook} with group {group}" : "{actor} shared address book {addressbook} with group {group}",
- "You unshared address book {addressbook} from group {group}" : "You unshared address book {addressbook} from group {group}",
- "{actor} unshared address book {addressbook} from group {group}" : "{actor} unshared address book {addressbook} from group {group}",
- "{actor} created contact {card} in address book {addressbook}" : "{actor} created contact {card} in address book {addressbook}",
- "You created contact {card} in address book {addressbook}" : "You created contact {card} in address book {addressbook}",
- "{actor} deleted contact {card} from address book {addressbook}" : "{actor} deleted contact {card} from address book {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "You deleted contact {card} from address book {addressbook}",
- "{actor} updated contact {card} in address book {addressbook}" : "{actor} updated contact {card} in address book {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "You updated contact {card} in address book {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "یک مخاطب یا دفترچه آدرس تغییر کرد",
+ "{actor} created address book {addressbook}" : "{actor} دفترچه آدرس {addressbook} را ایجاد کرد",
+ "You created address book {addressbook}" : "شما دفترچه آدرس {addressbook} را ایجاد کردید",
+ "{actor} deleted address book {addressbook}" : "{actor} دفترچه آدرس {addressbook} را حذف کرد",
+ "You deleted address book {addressbook}" : "شما دفترچه آدرس {addressbook} را حذف کردید",
+ "{actor} updated address book {addressbook}" : "{actor} دفترچه آدرس {addressbook} را به‌روزرسانی کرد",
+ "You updated address book {addressbook}" : "شما دفترچه آدرس {addressbook} را به‌روزرسانی کردید",
+ "{actor} shared address book {addressbook} with you" : "{actor} دفترچه آدرس {addressbook} را با شما به اشتراک گذاشت",
+ "You shared address book {addressbook} with {user}" : "شما دفترچه آدرس {addressbook} را با {user} به اشتراک گذاشتید",
+ "{actor} shared address book {addressbook} with {user}" : "{actor} دفترچه آدرس {addressbook} را با {user} به اشتراک گذاشت",
+ "{actor} unshared address book {addressbook} from you" : "{actor} اشتراک‌گذاری دفترچه آدرس {addressbook} را از شما لغو کرد",
+ "You unshared address book {addressbook} from {user}" : "شما اشتراک‌گذاری دفترچه آدرس {addressbook} را از {user} لغو کردید",
+ "{actor} unshared address book {addressbook} from {user}" : "{actor} اشتراک‌گذاری دفترچه آدرس {addressbook} را از {user} لغو کرد",
+ "{actor} unshared address book {addressbook} from themselves" : "{actor} اشتراک‌گذاری دفترچه آدرس {addressbook} را از خود لغو کرد",
+ "You shared address book {addressbook} with group {group}" : "شما دفترچه آدرس {addressbook} را با گروه {group} به اشتراک گذاشتید",
+ "{actor} shared address book {addressbook} with group {group}" : "{actor} دفترچه آدرس {addressbook} را با گروه {group} به اشتراک گذاشت",
+ "You unshared address book {addressbook} from group {group}" : "شما اشتراک‌گذاری دفترچه آدرس {addressbook} را از گروه {group} لغو کردید",
+ "{actor} unshared address book {addressbook} from group {group}" : "{actor} اشتراک‌گذاری دفترچه آدرس {addressbook} را از گروه {group} لغو کرد",
+ "{actor} created contact {card} in address book {addressbook}" : "{actor} مخاطب {card} را در دفترچه آدرس {addressbook} ایجاد کرد",
+ "You created contact {card} in address book {addressbook}" : "شما مخاطب {card} را در دفترچه آدرس {addressbook} ایجاد کردید",
+ "{actor} deleted contact {card} from address book {addressbook}" : "{actor} مخاطب {card} را از دفترچه آدرس {addressbook} حذف کرد",
+ "You deleted contact {card} from address book {addressbook}" : "شما مخاطب {card} را از دفترچه آدرس {addressbook} حذف کردید",
+ "{actor} updated contact {card} in address book {addressbook}" : "{actor} مخاطب {card} را در دفترچه آدرس {addressbook} به‌روزرسانی کرد",
+ "You updated contact {card} in address book {addressbook}" : "شما مخاطب {card} را در دفترچه آدرس {addressbook} به‌روزرسانی کردید",
+ "A <strong>contact</strong> or <strong>address book</strong> was modified" : "یک <strong>مخاطب</strong> یا <strong>دفترچه آدرس</strong> تغییر کرد",
"Accounts" : "حساب‌ها",
- "File is not updatable: %1$s" : "File is not updatable: %1$s",
- "Could not write to final file, canceled by hook" : "Could not write to final file, canceled by hook",
- "Could not write file contents" : "Could not write file contents",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)",
- "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side.",
- "Could not rename part file to final file, canceled by hook" : "Could not rename part file to final file, canceled by hook",
- "Could not rename part file to final file" : "Could not rename part file to final file",
- "Failed to check file size: %1$s" : "Failed to check file size: %1$s",
- "Encryption not ready: %1$s" : "Encryption not ready: %1$s",
- "Failed to open file: %1$s" : "Failed to open file: %1$s",
- "Failed to unlink: %1$s" : "Failed to unlink: %1$s",
- "Failed to write file contents: %1$s" : "Failed to write file contents: %1$s",
- "File not found: %1$s" : "File not found: %1$s",
- "System is in maintenance mode." : "System is in maintenance mode.",
- "Upgrade needed" : "Upgrade needed",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS.",
- "Configures a CalDAV account" : "Configures a CalDAV account",
- "Configures a CardDAV account" : "Configures a CardDAV account",
- "Events" : "Events",
+ "System address book which holds all accounts" : "دفترچه آدرس سیستمی که شامل تمام حساب‌ها است",
+ "File is not updatable: %1$s" : "فایل قابل به‌روزرسانی نیست: %1$s",
+ "Failed to get storage for file" : "دریافت فضای ذخیره‌سازی برای فایل با شکست مواجه شد",
+ "Could not write to final file, canceled by hook" : "نوشتن در فایل نهایی امکان‌پذیر نبود، توسط هوک لغو شد",
+ "Could not write file contents" : "امکان نوشتن محتویات فایل وجود ندارد",
+ "_%n byte_::_%n bytes_" : ["%n بایت","%n بایت"],
+ "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "خطا هنگام کپی فایل به مکان مقصد (کپی شده: %1$s، حجم فایل مورد انتظار: %2$s)",
+ "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "حجم فایل مورد انتظار %1$s بود اما %2$s خوانده (از کلاینت Nextcloud) و نوشته (در فضای ذخیره‌سازی Nextcloud) شد. این می‌تواند ناشی از مشکل شبکه در سمت ارسال یا مشکل نوشتن در فضای ذخیره‌سازی در سمت سرور باشد.",
+ "Could not rename part file to final file, canceled by hook" : "امکان تغییر نام فایل جزئی به فایل نهایی وجود نداشت، توسط هوک لغو شد",
+ "Could not rename part file to final file" : "امکان تغییر نام فایل جزئی به فایل نهایی وجود ندارد",
+ "Failed to check file size: %1$s" : "بررسی حجم فایل با شکست مواجه شد: %1$s",
+ "Could not open file: %1$s, file does seem to exist" : "امکان باز کردن فایل وجود ندارد: %1$s، به نظر می‌رسد فایل وجود دارد",
+ "Could not open file: %1$s, file doesn't seem to exist" : "امکان باز کردن فایل وجود ندارد: %1$s، به نظر می‌رسد فایل وجود ندارد",
+ "Encryption not ready: %1$s" : "رمزگذاری آماده نیست: %1$s",
+ "Failed to open file: %1$s" : "باز کردن فایل با شکست مواجه شد: %1$s",
+ "Failed to unlink: %1$s" : "حذف پیوند با شکست مواجه شد: %1$s",
+ "Failed to write file contents: %1$s" : "نوشتن محتویات فایل با شکست مواجه شد: %1$s",
+ "File not found: %1$s" : "فایل یافت نشد: %1$s",
+ "Invalid target path" : "مسیر مقصد نامعتبر است",
+ "System is in maintenance mode." : "سیستم در حالت نگهداری است.",
+ "Upgrade needed" : "نیاز به ارتقا",
+ "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "برای استفاده از CalDAV و CardDAV با iOS/macOS، %s شما باید برای استفاده از HTTPS پیکربندی شود.",
+ "Configures a CalDAV account" : "یک حساب CalDAV را پیکربندی می‌کند",
+ "Configures a CardDAV account" : "یک حساب CardDAV را پیکربندی می‌کند",
+ "Events" : "رویدادها",
"Untitled task" : "کار بدون عنوان",
- "Completed on %s" : "Completed on %s",
- "Due on %s by %s" : "Due on %s by %s",
- "Due on %s" : "Due on %s",
- "WebDAV endpoint" : "WebDAV endpoint",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken.",
- "Migrated calendar (%1$s)" : "Migrated calendar (%1$s)",
- "Calendars including events, details and attendees" : "Calendars including events, details and attendees",
- "Contacts and groups" : "Contacts and groups",
- "WebDAV" : "WebDAV",
- "First day" : "First day",
+ "Completed on %s" : "تکمیل شده در %s",
+ "Due on %s by %s" : "موعد در %s توسط %s",
+ "Due on %s" : "موعد در %s",
+ "System Address Book" : "دفترچه آدرس سیستم",
+ "The system address book contains contact information for all users in your instance." : "دفترچه آدرس سیستم شامل اطلاعات تماس برای همه کاربران در نمونه شما است.",
+ "Enable System Address Book" : "فعال کردن دفترچه آدرس سیستم",
+ "DAV system address book" : "دفترچه آدرس سیستم DAV",
+ "No outstanding DAV system address book sync." : "هیچ همگام‌سازی دفترچه آدرس سیستم DAV در انتظار نیست.",
+ "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "همگام‌سازی دفترچه آدرس سیستم DAV هنوز اجرا نشده است زیرا نمونه شما بیش از ۱۰۰۰ کاربر دارد یا خطایی رخ داده است. لطفاً آن را به‌صورت دستی با فراخوانی \"occ dav:sync-system-addressbook\" اجرا کنید.",
+ "WebDAV endpoint" : "نقطه پایانی WebDAV",
+ "Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "امکان بررسی اینکه سرور وب شما به درستی برای همگام‌سازی فایل از طریق WebDAV تنظیم شده است، وجود ندارد. لطفاً به صورت دستی بررسی کنید.",
+ "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "سرور وب شما هنوز به درستی برای همگام‌سازی فایل تنظیم نشده است، زیرا به نظر می‌رسد رابط WebDAV خراب است.",
+ "Your web server is properly set up to allow file synchronization over WebDAV." : "سرور وب شما به درستی برای همگام‌سازی فایل از طریق WebDAV تنظیم شده است.",
+ "Migrated calendar (%1$s)" : "تقویم منتقل شده (%1$s)",
+ "Calendars including events, details and attendees" : "تقویم‌ها شامل رویدادها، جزئیات و شرکت‌کنندگان",
+ "Contacts and groups" : "مخاطبین و گروه‌ها",
+ "WebDAV" : "وب‌دَو",
+ "Absence saved" : "غیبت ذخیره شد",
+ "Failed to save your absence settings" : "ذخیره تنظیمات غیبت شما با شکست مواجه شد",
+ "Absence cleared" : "غیبت پاک شد",
+ "Failed to clear your absence settings" : "پاک کردن تنظیمات غیبت شما با شکست مواجه شد",
+ "First day" : "روز اول",
+ "Last day (inclusive)" : "روز آخر (شامل)",
+ "Out of office replacement (optional)" : "جایگزین خارج از دفتر (اختیاری)",
+ "Name of the replacement" : "نام جایگزین",
+ "No results." : "نتیجه‌ای یافت نشد.",
+ "Start typing." : "شروع به تایپ کنید.",
+ "Short absence status" : "وضعیت کوتاه غیبت",
+ "Long absence Message" : "پیام طولانی غیبت",
"Save" : "ذخیره",
- "Failed to load availability" : "Failed to load availability",
- "Saved availability" : "Saved availability",
- "Failed to save availability" : "Failed to save availability",
+ "Disable absence" : "غیرفعال کردن غیبت",
+ "Failed to load availability" : "بارگذاری در دسترس بودن با شکست مواجه شد",
+ "Saved availability" : "در دسترس بودن ذخیره شد",
+ "Failed to save availability" : "ذخیره در دسترس بودن با شکست مواجه شد",
"Time zone:" : "منطقه زمانی:",
- "to" : "به",
- "Delete slot" : "Delete slot",
+ "to" : "تا",
+ "Delete slot" : "حذف بازه زمانی",
"No working hours set" : "ساعات کاری تعیین نشده است",
- "Add slot" : "Add slot",
- "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "وضعیت کاربر بصورت خودکار به \"مزاحم نشوید\" تغییر داده شود تا همه ی اعلان ها خاموش شوند",
- "Availability" : "موجود بودن",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Please make sure to properly set up {emailopen}the email server{linkclose}.",
- "Calendar server" : "Calendar server",
- "Send invitations to attendees" : "Send invitations to attendees",
- "Automatically generate a birthday calendar" : "Automatically generate a birthday calendar",
- "Birthday calendars will be generated by a background job." : "Birthday calendars will be generated by a background job.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Hence they will not be available immediately after enabling but will show up after some time.",
- "Send notifications for events" : "Send notifications for events",
- "Notifications are sent via background jobs, so these must occur often enough." : "Notifications are sent via background jobs, so these must occur often enough.",
- "Send reminder notifications to calendar sharees as well" : "Send reminder notifications to calendar sharees as well",
- "Reminders are always sent to organizers and attendees." : "Reminders are always sent to organizers and attendees.",
- "Enable notifications for events via push" : "Enable notifications for events via push",
- "Cancel" : "ردکردن",
+ "Add slot" : "افزودن بازه زمانی",
+ "Weekdays" : "روزهای هفته",
+ "Pick a start time for {dayName}" : "زمان شروع برای {dayName} را انتخاب کنید",
+ "Pick a end time for {dayName}" : "زمان پایان برای {dayName} را انتخاب کنید",
+ "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "وضعیت کاربر بصورت خودکار به \"مزاحم نشوید\" تغییر داده شود تا همه ی اعلان ها خاموش شوند.",
+ "Cancel" : "لغو",
"Import" : "وارد کردن",
- "Error while saving settings" : "Error while saving settings",
- "There was an error updating your attendance status." : "There was an error updating your attendance status.",
- "Please contact the organizer directly." : "Please contact the organizer directly.",
- "Are you accepting the invitation?" : "Are you accepting the invitation?",
+ "Error while saving settings" : "خطا هنگام ذخیره تنظیمات",
+ "Contact reset successfully" : "مخاطب با موفقیت بازنشانی شد",
+ "Error while resetting contact" : "خطا هنگام بازنشانی مخاطب",
+ "Contact imported successfully" : "مخاطب با موفقیت وارد شد",
+ "Error while importing contact" : "خطا هنگام وارد کردن مخاطب",
+ "Import contact" : "وارد کردن مخاطب",
+ "Reset to default" : "بازنشانی به پیش‌گزیده",
+ "Import contacts" : "وارد کردن مخاطبین",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "وارد کردن یک فایل .vcf جدید، مخاطب پیش‌فرض موجود را حذف کرده و آن را با مخاطب جدید جایگزین می‌کند. آیا می‌خواهید ادامه دهید؟",
+ "Availability" : "در دسترس بودن",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "اگر ساعات کاری خود را پیکربندی کنید، دیگران هنگام رزرو جلسه متوجه خواهند شد که شما در دفتر نیستید.",
+ "Absence" : "غیبت",
+ "Configure your next absence period." : "دوره غیبت بعدی خود را پیکربندی کنید.",
+ "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "همچنین {calendarappstoreopen}برنامه تقویم{linkclose} را نصب کنید، یا {calendardocopen}دسکتاپ و موبایل خود را برای همگام‌سازی متصل کنید ↗{linkclose}.",
+ "Please make sure to properly set up {emailopen}the email server{linkclose}." : "لطفاً مطمئن شوید که {emailopen}سرور ایمیل{linkclose} را به درستی تنظیم کرده‌اید.",
+ "Calendar server" : "سرور تقویم",
+ "Send invitations to attendees" : "ارسال دعوت‌نامه‌ها به شرکت‌کنندگان",
+ "Automatically generate a birthday calendar" : "به‌طور خودکار یک تقویم تولد ایجاد کنید",
+ "Birthday calendars will be generated by a background job." : "تقویم‌های تولد توسط یک کار پس‌زمینه ایجاد خواهند شد.",
+ "Hence they will not be available immediately after enabling but will show up after some time." : "بنابراین بلافاصله پس از فعال‌سازی در دسترس نخواهند بود، اما پس از مدتی نمایان می‌شوند.",
+ "Send notifications for events" : "ارسال اعلان‌ها برای رویدادها",
+ "Notifications are sent via background jobs, so these must occur often enough." : "اعلان‌ها از طریق کارهای پس‌زمینه ارسال می‌شوند، بنابراین این کارها باید به اندازه کافی مکرر انجام شوند.",
+ "Send reminder notifications to calendar sharees as well" : "ارسال اعلان‌های یادآوری به اشتراک‌گذاران تقویم نیز",
+ "Reminders are always sent to organizers and attendees." : "یادآوری‌ها همیشه برای برگزارکنندگان و شرکت‌کنندگان ارسال می‌شوند.",
+ "Enable notifications for events via push" : "فعال کردن اعلان‌ها برای رویدادها از طریق پوش",
+ "There was an error updating your attendance status." : "خطایی در به‌روزرسانی وضعیت حضور شما رخ داد.",
+ "Please contact the organizer directly." : "لطفاً مستقیماً با برگزارکننده تماس بگیرید.",
+ "Are you accepting the invitation?" : "آیا دعوت را می‌پذیرید؟",
"Tentative" : "آزمایشی",
- "Your attendance was updated successfully." : "Your attendance was updated successfully.",
- "Time:" : "Time:",
- "Could not open file" : "Could not open file",
- "Invalid chunk name" : "Invalid chunk name",
- "Could not rename part file assembled from chunks" : "Could not rename part file assembled from chunks"
+ "Your attendance was updated successfully." : "وضعیت حضور شما با موفقیت به‌روزرسانی شد."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/dav/l10n/fa.json b/apps/dav/l10n/fa.json
index 97e7a950714..ca3b31c1f55 100644
--- a/apps/dav/l10n/fa.json
+++ b/apps/dav/l10n/fa.json
@@ -2,96 +2,170 @@
"Calendar" : "تقویم",
"Tasks" : "وظایف",
"Personal" : "شخصی",
- "{actor} created calendar {calendar}" : "{actor} created calendar {calendar}",
- "You created calendar {calendar}" : "تقویم ساخته شد",
- "{actor} deleted calendar {calendar}" : "{actor} deleted calendar {calendar}",
- "You deleted calendar {calendar}" : "You deleted calendar {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} updated calendar {calendar}",
- "You updated calendar {calendar}" : "You updated calendar {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} restored calendar {calendar}",
- "You restored calendar {calendar}" : "You restored calendar {calendar}",
- "You shared calendar {calendar} as public link" : "You shared calendar {calendar} as public link",
- "You removed public link for calendar {calendar}" : "You removed public link for calendar {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} shared calendar {calendar} with you",
- "You shared calendar {calendar} with {user}" : "You shared calendar {calendar} with {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} shared calendar {calendar} with {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} unshared calendar {calendar} from you",
- "You unshared calendar {calendar} from {user}" : "You unshared calendar {calendar} from {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} unshared calendar {calendar} from {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} unshared calendar {calendar} from themselves",
- "You shared calendar {calendar} with group {group}" : "You shared calendar {calendar} with group {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} shared calendar {calendar} with group {group}",
- "You unshared calendar {calendar} from group {group}" : "You unshared calendar {calendar} from group {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} unshared calendar {calendar} from group {group}",
+ "{actor} created calendar {calendar}" : "{actor} تقویم {calendar} را ایجاد کرد",
+ "You created calendar {calendar}" : "شما تقویم {calendar} را ایجاد کردید",
+ "{actor} deleted calendar {calendar}" : "{actor} تقویم {calendar} را حذف کرد",
+ "You deleted calendar {calendar}" : "شما تقویم {calendar} را حذف کردید",
+ "{actor} updated calendar {calendar}" : "{actor} تقویم {calendar} را به‌روزرسانی کرد",
+ "You updated calendar {calendar}" : "شما تقویم {calendar} را به‌روزرسانی کردید",
+ "{actor} restored calendar {calendar}" : "{actor} تقویم {calendar} را بازیابی کرد",
+ "You restored calendar {calendar}" : "شما تقویم {calendar} را بازیابی کردید",
+ "You shared calendar {calendar} as public link" : "شما تقویم {calendar} را به‌عنوان پیوند عمومی به اشتراک گذاشتید",
+ "You removed public link for calendar {calendar}" : "شما پیوند عمومی تقویم {calendar} را حذف کردید",
+ "{actor} shared calendar {calendar} with you" : "{actor} تقویم {calendar} را با شما به اشتراک گذاشت",
+ "You shared calendar {calendar} with {user}" : "شما تقویم {calendar} را با {user} به اشتراک گذاشتید",
+ "{actor} shared calendar {calendar} with {user}" : "{actor} تقویم {calendar} را با {user} به اشتراک گذاشت",
+ "{actor} unshared calendar {calendar} from you" : "{actor} اشتراک‌گذاری تقویم {calendar} را از شما لغو کرد",
+ "You unshared calendar {calendar} from {user}" : "شما اشتراک‌گذاری تقویم {calendar} را از {user} لغو کردید",
+ "{actor} unshared calendar {calendar} from {user}" : "{actor} اشتراک‌گذاری تقویم {calendar} را از {user} لغو کرد",
+ "{actor} unshared calendar {calendar} from themselves" : "{actor} اشتراک‌گذاری تقویم {calendar} را از خود لغو کرد",
+ "You shared calendar {calendar} with group {group}" : "شما تقویم {calendar} را با گروه {group} به اشتراک گذاشتید",
+ "{actor} shared calendar {calendar} with group {group}" : "{actor} تقویم {calendar} را با گروه {group} به اشتراک گذاشت",
+ "You unshared calendar {calendar} from group {group}" : "شما اشتراک‌گذاری تقویم {calendar} را از گروه {group} لغو کردید",
+ "{actor} unshared calendar {calendar} from group {group}" : "{actor} اشتراک‌گذاری تقویم {calendar} را از گروه {group} لغو کرد",
"Untitled event" : "رویداد بدون عنوان",
- "{actor} created event {event} in calendar {calendar}" : "{actor} created event {event} in calendar {calendar}",
- "You created event {event} in calendar {calendar}" : "You created event {event} in calendar {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} deleted event {event} from calendar {calendar}",
- "You deleted event {event} from calendar {calendar}" : "You deleted event {event} from calendar {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} updated event {event} in calendar {calendar}",
- "You updated event {event} in calendar {calendar}" : "You updated event {event} in calendar {calendar}",
- "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}",
- "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}",
- "{actor} restored event {event} of calendar {calendar}" : "{actor} restored event {event} of calendar {calendar}",
- "You restored event {event} of calendar {calendar}" : "You restored event {event} of calendar {calendar}",
+ "{actor} created event {event} in calendar {calendar}" : "{actor} رویداد {event} را در تقویم {calendar} ایجاد کرد",
+ "You created event {event} in calendar {calendar}" : "شما رویداد {event} را در تقویم {calendar} ایجاد کردید",
+ "{actor} deleted event {event} from calendar {calendar}" : "{actor} رویداد {event} را از تقویم {calendar} حذف کرد",
+ "You deleted event {event} from calendar {calendar}" : "شما رویداد {event} را از تقویم {calendar} حذف کردید",
+ "{actor} updated event {event} in calendar {calendar}" : "{actor} رویداد {event} را در تقویم {calendar} به‌روزرسانی کرد",
+ "You updated event {event} in calendar {calendar}" : "شما رویداد {event} را در تقویم {calendar} به‌روزرسانی کردید",
+ "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} رویداد {event} را از تقویم {sourceCalendar} به تقویم {targetCalendar} منتقل کرد",
+ "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "شما رویداد {event} را از تقویم {sourceCalendar} به تقویم {targetCalendar} منتقل کردید",
+ "{actor} restored event {event} of calendar {calendar}" : "{actor} رویداد {event} را از تقویم {calendar} بازیابی کرد",
+ "You restored event {event} of calendar {calendar}" : "شما رویداد {event} را از تقویم {calendar} بازیابی کردید",
"Busy" : "مشغول",
- "{actor} created to-do {todo} in list {calendar}" : "{actor} created to-do {todo} in list {calendar}",
- "You created to-do {todo} in list {calendar}" : "You created to-do {todo} in list {calendar}",
- "{actor} deleted to-do {todo} from list {calendar}" : "{actor} deleted to-do {todo} from list {calendar}",
- "You deleted to-do {todo} from list {calendar}" : "You deleted to-do {todo} from list {calendar}",
- "{actor} updated to-do {todo} in list {calendar}" : "{actor} updated to-do {todo} in list {calendar}",
- "You updated to-do {todo} in list {calendar}" : "You updated to-do {todo} in list {calendar}",
- "{actor} solved to-do {todo} in list {calendar}" : "{actor} solved to-do {todo} in list {calendar}",
- "You solved to-do {todo} in list {calendar}" : "You solved to-do {todo} in list {calendar}",
- "{actor} reopened to-do {todo} in list {calendar}" : "{actor} reopened to-do {todo} in list {calendar}",
- "You reopened to-do {todo} in list {calendar}" : "You reopened to-do {todo} in list {calendar}",
- "{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}",
- "You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}",
- "Calendar, contacts and tasks" : "Calendar, contacts and tasks",
- "A <strong>calendar</strong> was modified" : "یک تقویم تغییر کرد",
- "A calendar <strong>event</strong> was modified" : "یک رویداد ثبت شده در تقویم تغییر کرد",
- "A calendar <strong>to-do</strong> was modified" : "یک کار ثبت شده در تقویم تغییر کرد",
- "Contact birthdays" : "Contact birthdays",
- "Death of %s" : "Death of %s",
+ "{actor} created to-do {todo} in list {calendar}" : "{actor} کار {todo} را در لیست {calendar} ایجاد کرد",
+ "You created to-do {todo} in list {calendar}" : "شما کار {todo} را در لیست {calendar} ایجاد کردید",
+ "{actor} deleted to-do {todo} from list {calendar}" : "{actor} کار {todo} را از لیست {calendar} حذف کرد",
+ "You deleted to-do {todo} from list {calendar}" : "شما کار {todo} را از لیست {calendar} حذف کردید",
+ "{actor} updated to-do {todo} in list {calendar}" : "{actor} کار {todo} را در لیست {calendar} به‌روزرسانی کرد",
+ "You updated to-do {todo} in list {calendar}" : "شما کار {todo} را در لیست {calendar} به‌روزرسانی کردید",
+ "{actor} solved to-do {todo} in list {calendar}" : "{actor} کار {todo} را در لیست {calendar} حل کرد",
+ "You solved to-do {todo} in list {calendar}" : "شما کار {todo} را در لیست {calendar} حل کردید",
+ "{actor} reopened to-do {todo} in list {calendar}" : "{actor} کار {todo} را در لیست {calendar} بازگشایی کرد",
+ "You reopened to-do {todo} in list {calendar}" : "شما کار {todo} را در لیست {calendar} بازگشایی کردید",
+ "{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} کار {todo} را از لیست {sourceCalendar} به لیست {targetCalendar} منتقل کرد",
+ "You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "شما کار {todo} را از لیست {sourceCalendar} به لیست {targetCalendar} منتقل کردید",
+ "Calendar, contacts and tasks" : "تقویم، مخاطبین و وظایف",
+ "A <strong>calendar</strong> was modified" : "یک <strong>تقویم</strong> تغییر کرد",
+ "A calendar <strong>event</strong> was modified" : "یک <strong>رویداد</strong> تقویم تغییر کرد",
+ "A calendar <strong>to-do</strong> was modified" : "یک <strong>کار</strong> تقویم تغییر کرد",
+ "Contact birthdays" : "تولد مخاطبین",
+ "Death of %s" : "فوت %s",
"Untitled calendar" : "تقویم بدون عنوان",
- "Calendar:" : "Calendar:",
+ "Calendar:" : "تقویم:",
"Date:" : "تاریخ:",
"Where:" : "مکان:",
"Description:" : "توضیحات:",
- "_%n year_::_%n years_" : ["%n year","%n years"],
- "_%n month_::_%n months_" : ["%n month","%n months"],
- "_%n day_::_%n days_" : ["%n day","%n days"],
- "_%n hour_::_%n hours_" : ["%n hour","%n hours"],
- "_%n minute_::_%n minutes_" : ["%n minute","%n minutes"],
- "%s (in %s)" : "%s (in %s)",
- "%s (%s ago)" : "%s (%s ago)",
- "Calendar: %s" : "Calendar: %s",
- "Date: %s" : "Date: %s",
- "Description: %s" : "Description: %s",
- "Where: %s" : "Where: %s",
+ "_%n year_::_%n years_" : ["%n سال","%n سال"],
+ "_%n month_::_%n months_" : ["%n ماه","%n ماه"],
+ "_%n day_::_%n days_" : ["%n روز","%n روز"],
+ "_%n hour_::_%n hours_" : ["%n ساعت","%n ساعت"],
+ "_%n minute_::_%n minutes_" : ["%n دقیقه","%n دقیقه"],
+ "%s (in %s)" : "%s (در %s)",
+ "%s (%s ago)" : "%s (%s پیش)",
+ "Calendar: %s" : "تقویم: %s",
+ "Date: %s" : "تاریخ: %s",
+ "Description: %s" : "توضیحات: %s",
+ "Where: %s" : "مکان: %s",
"%1$s via %2$s" : "%1$s از طریق %2$s",
- "Cancelled: %1$s" : "Cancelled: %1$s",
- "\"%1$s\" has been canceled" : "\"%1$s\" has been canceled",
- "Re: %1$s" : "Re: %1$s",
- "%1$s has accepted your invitation" : "%1$s has accepted your invitation",
- "%1$s has tentatively accepted your invitation" : "%1$s has tentatively accepted your invitation",
- "%1$s has declined your invitation" : "%1$s has declined your invitation",
- "%1$s has responded to your invitation" : "%1$s has responded to your invitation",
- "Invitation updated: %1$s" : "Invitation updated: %1$s",
- "%1$s updated the event \"%2$s\"" : "%1$s updated the event \"%2$s\"",
- "Invitation: %1$s" : "Invitation: %1$s",
- "%1$s would like to invite you to \"%2$s\"" : "%1$s would like to invite you to \"%2$s\"",
- "Organizer:" : "Organizer:",
- "Attendees:" : "Attendees:",
+ "In the past on %1$s for the entire day" : "در گذشته در %1$s برای کل روز",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["در یک دقیقه در %1$s برای کل روز","در %n دقیقه در %1$s برای کل روز"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["در یک ساعت در %1$s برای کل روز","در %n ساعت در %1$s برای کل روز"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["در یک روز در %1$s برای کل روز","در %n روز در %1$s برای کل روز"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["در یک هفته در %1$s برای کل روز","در %n هفته در %1$s برای کل روز"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["در یک ماه در %1$s برای کل روز","در %n ماه در %1$s برای کل روز"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["در یک سال در %1$s برای کل روز","در %n سال در %1$s برای کل روز"],
+ "In the past on %1$s between %2$s - %3$s" : "در گذشته در %1$s بین %2$s - %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["در یک دقیقه در %1$s بین %2$s - %3$s","در %n دقیقه در %1$s بین %2$s - %3$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["در یک ساعت در %1$s بین %2$s - %3$s","در %n ساعت در %1$s بین %2$s - %3$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["در یک روز در %1$s بین %2$s - %3$s","در %n روز در %1$s بین %2$s - %3$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["در یک هفته در %1$s بین %2$s - %3$s","در %n هفته در %1$s بین %2$s - %3$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["در یک ماه در %1$s بین %2$s - %3$s","در %n ماه در %1$s بین %2$s - %3$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["در یک سال در %1$s بین %2$s - %3$s","در %n سال در %1$s بین %2$s - %3$s"],
+ "Could not generate when statement" : "امکان ایجاد عبارت زمان وجود ندارد",
+ "Every Day for the entire day" : "هر روز برای کل روز",
+ "Every Day for the entire day until %1$s" : "هر روز برای کل روز تا %1$s",
+ "Every Day between %1$s - %2$s" : "هر روز بین %1$s - %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "هر روز بین %1$s - %2$s تا %3$s",
+ "Every %1$d Days for the entire day" : "هر %1$d روز برای کل روز",
+ "Every %1$d Days for the entire day until %2$s" : "هر %1$d روز برای کل روز تا %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "هر %1$d روز بین %2$s - %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "هر %1$d روز بین %2$s - %3$s تا %4$s",
+ "Could not generate event recurrence statement" : "امکان ایجاد عبارت تکرار رویداد وجود ندارد",
+ "Every Week on %1$s for the entire day" : "هر هفته در %1$s برای کل روز",
+ "Every Week on %1$s for the entire day until %2$s" : "هر هفته در %1$s برای کل روز تا %2$s",
+ "Every Week on %1$s between %2$s - %3$s" : "هر هفته در %1$s بین %2$s - %3$s",
+ "Every Week on %1$s between %2$s - %3$s until %4$s" : "هر هفته در %1$s بین %2$s - %3$s تا %4$s",
+ "Every %1$d Weeks on %2$s for the entire day" : "هر %1$d هفته در %2$s برای کل روز",
+ "Every %1$d Weeks on %2$s for the entire day until %3$s" : "هر %1$d هفته در %2$s برای کل روز تا %3$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s" : "هر %1$d هفته در %2$s بین %3$s - %4$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "هر %1$d هفته در %2$s بین %3$s - %4$s تا %5$s",
+ "Every Month on the %1$s for the entire day" : "هر ماه در %1$s برای کل روز",
+ "Every Month on the %1$s for the entire day until %2$s" : "هر ماه در %1$s برای کل روز تا %2$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "هر ماه در %1$s بین %2$s - %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "هر ماه در %1$s بین %2$s - %3$s تا %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "هر %1$d ماه در %2$s برای کل روز",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "هر %1$d ماه در %2$s برای کل روز تا %3$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "هر %1$d ماه در %2$s بین %3$s - %4$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "هر %1$d ماه در %2$s بین %3$s - %4$s تا %5$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "هر سال در %1$s در %2$s برای کل روز",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "هر سال در %1$s در %2$s برای کل روز تا %3$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "هر سال در %1$s در %2$s بین %3$s - %4$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "هر سال در %1$s در %2$s بین %3$s - %4$s تا %5$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "هر %1$d سال در %2$s در %3$s برای کل روز",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "هر %1$d سال در %2$s در %3$s برای کل روز تا %4$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "هر %1$d سال در %2$s در %3$s بین %4$s - %5$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "هر %1$d سال در %2$s در %3$s بین %4$s - %5$s تا %6$s",
+ "On specific dates for the entire day until %1$s" : "در تاریخ‌های مشخص برای کل روز تا %1$s",
+ "On specific dates between %1$s - %2$s until %3$s" : "در تاریخ‌های مشخص بین %1$s - %2$s تا %3$s",
+ "In the past on %1$s" : "در گذشته در %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["در یک دقیقه در %1$s","در %n دقیقه در %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["در یک ساعت در %1$s","در %n ساعت در %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["در یک روز در %1$s","در %n روز در %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["در یک هفته در %1$s","در %n هفته در %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["در یک ماه در %1$s","در %n ماه در %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["در یک سال در %1$s","در %n سال در %1$s"],
+ "In the past on %1$s then on %2$s" : "در گذشته در %1$s سپس در %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["در یک دقیقه در %1$s سپس در %2$s","در %n دقیقه در %1$s سپس در %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["در یک ساعت در %1$s سپس در %2$s","در %n ساعت در %1$s سپس در %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["در یک روز در %1$s سپس در %2$s","در %n روز در %1$s سپس در %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["در یک هفته در %1$s سپس در %2$s","در %n هفته در %1$s سپس در %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["در یک ماه در %1$s سپس در %2$s","در %n ماه در %1$s سپس در %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["در یک سال در %1$s سپس در %2$s","در %n سال در %1$s سپس در %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "در گذشته در %1$s سپس در %2$s و %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["در یک دقیقه در %1$s سپس در %2$s و %3$s","در %n دقیقه در %1$s سپس در %2$s و %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["در یک ساعت در %1$s سپس در %2$s و %3$s","در %n ساعت در %1$s سپس در %2$s و %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["در یک روز در %1$s سپس در %2$s و %3$s","در %n روز در %1$s سپس در %2$s و %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["در یک هفته در %1$s سپس در %2$s و %3$s","در %n هفته در %1$s سپس در %2$s و %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["در یک ماه در %1$s سپس در %2$s و %3$s","در %n ماه در %1$s سپس در %2$s و %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["در یک سال در %1$s سپس در %2$s و %3$s","در %n سال در %1$s سپس در %2$s و %3$s"],
+ "Could not generate next recurrence statement" : "امکان ایجاد عبارت تکرار بعدی وجود ندارد",
+ "Cancelled: %1$s" : "لغو شد: %1$s",
+ "\"%1$s\" has been canceled" : "\"%1$s\" لغو شده است",
+ "Re: %1$s" : "پاسخ: %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\" را به‌روزرسانی کرد",
+ "Invitation: %1$s" : "دعوت: %1$s",
+ "%1$s would like to invite you to \"%2$s\"" : "%1$s مایل است شما را به \"%2$s\" دعوت کند",
+ "Organizer:" : "برگزارکننده:",
+ "Attendees:" : "شرکت‌کنندگان:",
"Title:" : "عنوان:",
+ "When:" : "چه زمانی:",
"Location:" : "مکان:",
- "Link:" : "Link:",
- "Accept" : "قبول",
- "Decline" : "کاهش می یابد",
- "More options …" : "More options …",
- "More options at %s" : "More options at %s",
+ "Link:" : "پیوند:",
+ "Occurring:" : "در حال وقوع:",
+ "Accept" : "پذیرفتن",
+ "Decline" : "رد کردن",
+ "More options …" : "گزینه‌های بیشتر…",
+ "More options at %s" : "گزینه‌های بیشتر در %s",
"Monday" : "دوشنبه",
- "Tuesday" : "سه شنبه",
+ "Tuesday" : "سه‌شنبه",
"Wednesday" : "چهارشنبه",
"Thursday" : "پنجشنبه",
"Friday" : "جمعه",
@@ -103,105 +177,148 @@
"April" : "آوریل",
"May" : "مه",
"June" : "ژوئن",
- "July" : "جولای",
+ "July" : "ژوئیه",
"August" : "اوت",
"September" : "سپتامبر",
"October" : "اکتبر",
"November" : "نوامبر",
"December" : "دسامبر",
- "First" : "First",
- "Last" : "Last",
+ "First" : "اول",
+ "Second" : "دوم",
+ "Third" : "سوم",
+ "Fourth" : "چهارم",
+ "Fifth" : "پنجم",
+ "Last" : "آخر",
+ "Second Last" : "دومی از آخر",
+ "Third Last" : "سومی از آخر",
+ "Fourth Last" : "چهارمی از آخر",
+ "Fifth Last" : "پنجمی از آخر",
"Contacts" : "مخاطبین",
- "{actor} created address book {addressbook}" : "{actor} created address book {addressbook}",
- "You created address book {addressbook}" : "دفترچه آدرس ساخته شد",
- "{actor} deleted address book {addressbook}" : "{actor} deleted address book {addressbook}",
- "You deleted address book {addressbook}" : "You deleted address book {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} updated address book {addressbook}",
- "You updated address book {addressbook}" : "You updated address book {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} shared address book {addressbook} with you",
- "You shared address book {addressbook} with {user}" : "You shared address book {addressbook} with {user}",
- "{actor} shared address book {addressbook} with {user}" : "{actor} shared address book {addressbook} with {user}",
- "{actor} unshared address book {addressbook} from you" : "{actor} unshared address book {addressbook} from you",
- "You unshared address book {addressbook} from {user}" : "You unshared address book {addressbook} from {user}",
- "{actor} unshared address book {addressbook} from {user}" : "{actor} unshared address book {addressbook} from {user}",
- "{actor} unshared address book {addressbook} from themselves" : "{actor} unshared address book {addressbook} from themselves",
- "You shared address book {addressbook} with group {group}" : "You shared address book {addressbook} with group {group}",
- "{actor} shared address book {addressbook} with group {group}" : "{actor} shared address book {addressbook} with group {group}",
- "You unshared address book {addressbook} from group {group}" : "You unshared address book {addressbook} from group {group}",
- "{actor} unshared address book {addressbook} from group {group}" : "{actor} unshared address book {addressbook} from group {group}",
- "{actor} created contact {card} in address book {addressbook}" : "{actor} created contact {card} in address book {addressbook}",
- "You created contact {card} in address book {addressbook}" : "You created contact {card} in address book {addressbook}",
- "{actor} deleted contact {card} from address book {addressbook}" : "{actor} deleted contact {card} from address book {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "You deleted contact {card} from address book {addressbook}",
- "{actor} updated contact {card} in address book {addressbook}" : "{actor} updated contact {card} in address book {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "You updated contact {card} in address book {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "یک مخاطب یا دفترچه آدرس تغییر کرد",
+ "{actor} created address book {addressbook}" : "{actor} دفترچه آدرس {addressbook} را ایجاد کرد",
+ "You created address book {addressbook}" : "شما دفترچه آدرس {addressbook} را ایجاد کردید",
+ "{actor} deleted address book {addressbook}" : "{actor} دفترچه آدرس {addressbook} را حذف کرد",
+ "You deleted address book {addressbook}" : "شما دفترچه آدرس {addressbook} را حذف کردید",
+ "{actor} updated address book {addressbook}" : "{actor} دفترچه آدرس {addressbook} را به‌روزرسانی کرد",
+ "You updated address book {addressbook}" : "شما دفترچه آدرس {addressbook} را به‌روزرسانی کردید",
+ "{actor} shared address book {addressbook} with you" : "{actor} دفترچه آدرس {addressbook} را با شما به اشتراک گذاشت",
+ "You shared address book {addressbook} with {user}" : "شما دفترچه آدرس {addressbook} را با {user} به اشتراک گذاشتید",
+ "{actor} shared address book {addressbook} with {user}" : "{actor} دفترچه آدرس {addressbook} را با {user} به اشتراک گذاشت",
+ "{actor} unshared address book {addressbook} from you" : "{actor} اشتراک‌گذاری دفترچه آدرس {addressbook} را از شما لغو کرد",
+ "You unshared address book {addressbook} from {user}" : "شما اشتراک‌گذاری دفترچه آدرس {addressbook} را از {user} لغو کردید",
+ "{actor} unshared address book {addressbook} from {user}" : "{actor} اشتراک‌گذاری دفترچه آدرس {addressbook} را از {user} لغو کرد",
+ "{actor} unshared address book {addressbook} from themselves" : "{actor} اشتراک‌گذاری دفترچه آدرس {addressbook} را از خود لغو کرد",
+ "You shared address book {addressbook} with group {group}" : "شما دفترچه آدرس {addressbook} را با گروه {group} به اشتراک گذاشتید",
+ "{actor} shared address book {addressbook} with group {group}" : "{actor} دفترچه آدرس {addressbook} را با گروه {group} به اشتراک گذاشت",
+ "You unshared address book {addressbook} from group {group}" : "شما اشتراک‌گذاری دفترچه آدرس {addressbook} را از گروه {group} لغو کردید",
+ "{actor} unshared address book {addressbook} from group {group}" : "{actor} اشتراک‌گذاری دفترچه آدرس {addressbook} را از گروه {group} لغو کرد",
+ "{actor} created contact {card} in address book {addressbook}" : "{actor} مخاطب {card} را در دفترچه آدرس {addressbook} ایجاد کرد",
+ "You created contact {card} in address book {addressbook}" : "شما مخاطب {card} را در دفترچه آدرس {addressbook} ایجاد کردید",
+ "{actor} deleted contact {card} from address book {addressbook}" : "{actor} مخاطب {card} را از دفترچه آدرس {addressbook} حذف کرد",
+ "You deleted contact {card} from address book {addressbook}" : "شما مخاطب {card} را از دفترچه آدرس {addressbook} حذف کردید",
+ "{actor} updated contact {card} in address book {addressbook}" : "{actor} مخاطب {card} را در دفترچه آدرس {addressbook} به‌روزرسانی کرد",
+ "You updated contact {card} in address book {addressbook}" : "شما مخاطب {card} را در دفترچه آدرس {addressbook} به‌روزرسانی کردید",
+ "A <strong>contact</strong> or <strong>address book</strong> was modified" : "یک <strong>مخاطب</strong> یا <strong>دفترچه آدرس</strong> تغییر کرد",
"Accounts" : "حساب‌ها",
- "File is not updatable: %1$s" : "File is not updatable: %1$s",
- "Could not write to final file, canceled by hook" : "Could not write to final file, canceled by hook",
- "Could not write file contents" : "Could not write file contents",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)",
- "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side.",
- "Could not rename part file to final file, canceled by hook" : "Could not rename part file to final file, canceled by hook",
- "Could not rename part file to final file" : "Could not rename part file to final file",
- "Failed to check file size: %1$s" : "Failed to check file size: %1$s",
- "Encryption not ready: %1$s" : "Encryption not ready: %1$s",
- "Failed to open file: %1$s" : "Failed to open file: %1$s",
- "Failed to unlink: %1$s" : "Failed to unlink: %1$s",
- "Failed to write file contents: %1$s" : "Failed to write file contents: %1$s",
- "File not found: %1$s" : "File not found: %1$s",
- "System is in maintenance mode." : "System is in maintenance mode.",
- "Upgrade needed" : "Upgrade needed",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS.",
- "Configures a CalDAV account" : "Configures a CalDAV account",
- "Configures a CardDAV account" : "Configures a CardDAV account",
- "Events" : "Events",
+ "System address book which holds all accounts" : "دفترچه آدرس سیستمی که شامل تمام حساب‌ها است",
+ "File is not updatable: %1$s" : "فایل قابل به‌روزرسانی نیست: %1$s",
+ "Failed to get storage for file" : "دریافت فضای ذخیره‌سازی برای فایل با شکست مواجه شد",
+ "Could not write to final file, canceled by hook" : "نوشتن در فایل نهایی امکان‌پذیر نبود، توسط هوک لغو شد",
+ "Could not write file contents" : "امکان نوشتن محتویات فایل وجود ندارد",
+ "_%n byte_::_%n bytes_" : ["%n بایت","%n بایت"],
+ "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "خطا هنگام کپی فایل به مکان مقصد (کپی شده: %1$s، حجم فایل مورد انتظار: %2$s)",
+ "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "حجم فایل مورد انتظار %1$s بود اما %2$s خوانده (از کلاینت Nextcloud) و نوشته (در فضای ذخیره‌سازی Nextcloud) شد. این می‌تواند ناشی از مشکل شبکه در سمت ارسال یا مشکل نوشتن در فضای ذخیره‌سازی در سمت سرور باشد.",
+ "Could not rename part file to final file, canceled by hook" : "امکان تغییر نام فایل جزئی به فایل نهایی وجود نداشت، توسط هوک لغو شد",
+ "Could not rename part file to final file" : "امکان تغییر نام فایل جزئی به فایل نهایی وجود ندارد",
+ "Failed to check file size: %1$s" : "بررسی حجم فایل با شکست مواجه شد: %1$s",
+ "Could not open file: %1$s, file does seem to exist" : "امکان باز کردن فایل وجود ندارد: %1$s، به نظر می‌رسد فایل وجود دارد",
+ "Could not open file: %1$s, file doesn't seem to exist" : "امکان باز کردن فایل وجود ندارد: %1$s، به نظر می‌رسد فایل وجود ندارد",
+ "Encryption not ready: %1$s" : "رمزگذاری آماده نیست: %1$s",
+ "Failed to open file: %1$s" : "باز کردن فایل با شکست مواجه شد: %1$s",
+ "Failed to unlink: %1$s" : "حذف پیوند با شکست مواجه شد: %1$s",
+ "Failed to write file contents: %1$s" : "نوشتن محتویات فایل با شکست مواجه شد: %1$s",
+ "File not found: %1$s" : "فایل یافت نشد: %1$s",
+ "Invalid target path" : "مسیر مقصد نامعتبر است",
+ "System is in maintenance mode." : "سیستم در حالت نگهداری است.",
+ "Upgrade needed" : "نیاز به ارتقا",
+ "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "برای استفاده از CalDAV و CardDAV با iOS/macOS، %s شما باید برای استفاده از HTTPS پیکربندی شود.",
+ "Configures a CalDAV account" : "یک حساب CalDAV را پیکربندی می‌کند",
+ "Configures a CardDAV account" : "یک حساب CardDAV را پیکربندی می‌کند",
+ "Events" : "رویدادها",
"Untitled task" : "کار بدون عنوان",
- "Completed on %s" : "Completed on %s",
- "Due on %s by %s" : "Due on %s by %s",
- "Due on %s" : "Due on %s",
- "WebDAV endpoint" : "WebDAV endpoint",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken.",
- "Migrated calendar (%1$s)" : "Migrated calendar (%1$s)",
- "Calendars including events, details and attendees" : "Calendars including events, details and attendees",
- "Contacts and groups" : "Contacts and groups",
- "WebDAV" : "WebDAV",
- "First day" : "First day",
+ "Completed on %s" : "تکمیل شده در %s",
+ "Due on %s by %s" : "موعد در %s توسط %s",
+ "Due on %s" : "موعد در %s",
+ "System Address Book" : "دفترچه آدرس سیستم",
+ "The system address book contains contact information for all users in your instance." : "دفترچه آدرس سیستم شامل اطلاعات تماس برای همه کاربران در نمونه شما است.",
+ "Enable System Address Book" : "فعال کردن دفترچه آدرس سیستم",
+ "DAV system address book" : "دفترچه آدرس سیستم DAV",
+ "No outstanding DAV system address book sync." : "هیچ همگام‌سازی دفترچه آدرس سیستم DAV در انتظار نیست.",
+ "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "همگام‌سازی دفترچه آدرس سیستم DAV هنوز اجرا نشده است زیرا نمونه شما بیش از ۱۰۰۰ کاربر دارد یا خطایی رخ داده است. لطفاً آن را به‌صورت دستی با فراخوانی \"occ dav:sync-system-addressbook\" اجرا کنید.",
+ "WebDAV endpoint" : "نقطه پایانی WebDAV",
+ "Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "امکان بررسی اینکه سرور وب شما به درستی برای همگام‌سازی فایل از طریق WebDAV تنظیم شده است، وجود ندارد. لطفاً به صورت دستی بررسی کنید.",
+ "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "سرور وب شما هنوز به درستی برای همگام‌سازی فایل تنظیم نشده است، زیرا به نظر می‌رسد رابط WebDAV خراب است.",
+ "Your web server is properly set up to allow file synchronization over WebDAV." : "سرور وب شما به درستی برای همگام‌سازی فایل از طریق WebDAV تنظیم شده است.",
+ "Migrated calendar (%1$s)" : "تقویم منتقل شده (%1$s)",
+ "Calendars including events, details and attendees" : "تقویم‌ها شامل رویدادها، جزئیات و شرکت‌کنندگان",
+ "Contacts and groups" : "مخاطبین و گروه‌ها",
+ "WebDAV" : "وب‌دَو",
+ "Absence saved" : "غیبت ذخیره شد",
+ "Failed to save your absence settings" : "ذخیره تنظیمات غیبت شما با شکست مواجه شد",
+ "Absence cleared" : "غیبت پاک شد",
+ "Failed to clear your absence settings" : "پاک کردن تنظیمات غیبت شما با شکست مواجه شد",
+ "First day" : "روز اول",
+ "Last day (inclusive)" : "روز آخر (شامل)",
+ "Out of office replacement (optional)" : "جایگزین خارج از دفتر (اختیاری)",
+ "Name of the replacement" : "نام جایگزین",
+ "No results." : "نتیجه‌ای یافت نشد.",
+ "Start typing." : "شروع به تایپ کنید.",
+ "Short absence status" : "وضعیت کوتاه غیبت",
+ "Long absence Message" : "پیام طولانی غیبت",
"Save" : "ذخیره",
- "Failed to load availability" : "Failed to load availability",
- "Saved availability" : "Saved availability",
- "Failed to save availability" : "Failed to save availability",
+ "Disable absence" : "غیرفعال کردن غیبت",
+ "Failed to load availability" : "بارگذاری در دسترس بودن با شکست مواجه شد",
+ "Saved availability" : "در دسترس بودن ذخیره شد",
+ "Failed to save availability" : "ذخیره در دسترس بودن با شکست مواجه شد",
"Time zone:" : "منطقه زمانی:",
- "to" : "به",
- "Delete slot" : "Delete slot",
+ "to" : "تا",
+ "Delete slot" : "حذف بازه زمانی",
"No working hours set" : "ساعات کاری تعیین نشده است",
- "Add slot" : "Add slot",
- "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "وضعیت کاربر بصورت خودکار به \"مزاحم نشوید\" تغییر داده شود تا همه ی اعلان ها خاموش شوند",
- "Availability" : "موجود بودن",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Please make sure to properly set up {emailopen}the email server{linkclose}.",
- "Calendar server" : "Calendar server",
- "Send invitations to attendees" : "Send invitations to attendees",
- "Automatically generate a birthday calendar" : "Automatically generate a birthday calendar",
- "Birthday calendars will be generated by a background job." : "Birthday calendars will be generated by a background job.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Hence they will not be available immediately after enabling but will show up after some time.",
- "Send notifications for events" : "Send notifications for events",
- "Notifications are sent via background jobs, so these must occur often enough." : "Notifications are sent via background jobs, so these must occur often enough.",
- "Send reminder notifications to calendar sharees as well" : "Send reminder notifications to calendar sharees as well",
- "Reminders are always sent to organizers and attendees." : "Reminders are always sent to organizers and attendees.",
- "Enable notifications for events via push" : "Enable notifications for events via push",
- "Cancel" : "ردکردن",
+ "Add slot" : "افزودن بازه زمانی",
+ "Weekdays" : "روزهای هفته",
+ "Pick a start time for {dayName}" : "زمان شروع برای {dayName} را انتخاب کنید",
+ "Pick a end time for {dayName}" : "زمان پایان برای {dayName} را انتخاب کنید",
+ "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "وضعیت کاربر بصورت خودکار به \"مزاحم نشوید\" تغییر داده شود تا همه ی اعلان ها خاموش شوند.",
+ "Cancel" : "لغو",
"Import" : "وارد کردن",
- "Error while saving settings" : "Error while saving settings",
- "There was an error updating your attendance status." : "There was an error updating your attendance status.",
- "Please contact the organizer directly." : "Please contact the organizer directly.",
- "Are you accepting the invitation?" : "Are you accepting the invitation?",
+ "Error while saving settings" : "خطا هنگام ذخیره تنظیمات",
+ "Contact reset successfully" : "مخاطب با موفقیت بازنشانی شد",
+ "Error while resetting contact" : "خطا هنگام بازنشانی مخاطب",
+ "Contact imported successfully" : "مخاطب با موفقیت وارد شد",
+ "Error while importing contact" : "خطا هنگام وارد کردن مخاطب",
+ "Import contact" : "وارد کردن مخاطب",
+ "Reset to default" : "بازنشانی به پیش‌گزیده",
+ "Import contacts" : "وارد کردن مخاطبین",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "وارد کردن یک فایل .vcf جدید، مخاطب پیش‌فرض موجود را حذف کرده و آن را با مخاطب جدید جایگزین می‌کند. آیا می‌خواهید ادامه دهید؟",
+ "Availability" : "در دسترس بودن",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "اگر ساعات کاری خود را پیکربندی کنید، دیگران هنگام رزرو جلسه متوجه خواهند شد که شما در دفتر نیستید.",
+ "Absence" : "غیبت",
+ "Configure your next absence period." : "دوره غیبت بعدی خود را پیکربندی کنید.",
+ "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "همچنین {calendarappstoreopen}برنامه تقویم{linkclose} را نصب کنید، یا {calendardocopen}دسکتاپ و موبایل خود را برای همگام‌سازی متصل کنید ↗{linkclose}.",
+ "Please make sure to properly set up {emailopen}the email server{linkclose}." : "لطفاً مطمئن شوید که {emailopen}سرور ایمیل{linkclose} را به درستی تنظیم کرده‌اید.",
+ "Calendar server" : "سرور تقویم",
+ "Send invitations to attendees" : "ارسال دعوت‌نامه‌ها به شرکت‌کنندگان",
+ "Automatically generate a birthday calendar" : "به‌طور خودکار یک تقویم تولد ایجاد کنید",
+ "Birthday calendars will be generated by a background job." : "تقویم‌های تولد توسط یک کار پس‌زمینه ایجاد خواهند شد.",
+ "Hence they will not be available immediately after enabling but will show up after some time." : "بنابراین بلافاصله پس از فعال‌سازی در دسترس نخواهند بود، اما پس از مدتی نمایان می‌شوند.",
+ "Send notifications for events" : "ارسال اعلان‌ها برای رویدادها",
+ "Notifications are sent via background jobs, so these must occur often enough." : "اعلان‌ها از طریق کارهای پس‌زمینه ارسال می‌شوند، بنابراین این کارها باید به اندازه کافی مکرر انجام شوند.",
+ "Send reminder notifications to calendar sharees as well" : "ارسال اعلان‌های یادآوری به اشتراک‌گذاران تقویم نیز",
+ "Reminders are always sent to organizers and attendees." : "یادآوری‌ها همیشه برای برگزارکنندگان و شرکت‌کنندگان ارسال می‌شوند.",
+ "Enable notifications for events via push" : "فعال کردن اعلان‌ها برای رویدادها از طریق پوش",
+ "There was an error updating your attendance status." : "خطایی در به‌روزرسانی وضعیت حضور شما رخ داد.",
+ "Please contact the organizer directly." : "لطفاً مستقیماً با برگزارکننده تماس بگیرید.",
+ "Are you accepting the invitation?" : "آیا دعوت را می‌پذیرید؟",
"Tentative" : "آزمایشی",
- "Your attendance was updated successfully." : "Your attendance was updated successfully.",
- "Time:" : "Time:",
- "Could not open file" : "Could not open file",
- "Invalid chunk name" : "Invalid chunk name",
- "Could not rename part file assembled from chunks" : "Could not rename part file assembled from chunks"
+ "Your attendance was updated successfully." : "وضعیت حضور شما با موفقیت به‌روزرسانی شد."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/fi.js b/apps/dav/l10n/fi.js
deleted file mode 100644
index b0f93e740c4..00000000000
--- a/apps/dav/l10n/fi.js
+++ /dev/null
@@ -1,165 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Kalenteri",
- "Tasks" : "Tehtävät",
- "Personal" : "Henkilökohtainen",
- "{actor} created calendar {calendar}" : "{actor} loi kalenterin {calendar}",
- "You created calendar {calendar}" : "Loit kalenterin {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} poisti kalenterin {calendar}",
- "You deleted calendar {calendar}" : "Poistit kalenterin {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} päivitti kalenterin {calendar}",
- "You updated calendar {calendar}" : "Päivitit kalenterin {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} palautti kalenterin {calendar}",
- "You restored calendar {calendar}" : "Palautit kalenterin {calendar}",
- "You shared calendar {calendar} as public link" : "Jaoit kalenterin {calendar} julkisena linkkinä",
- "You removed public link for calendar {calendar}" : "Poistit julkisen linkin kalenterilta {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} jakoi kalenterin {calendar} kanssasi",
- "You shared calendar {calendar} with {user}" : "Jaoit kalenterin {calendar} käyttäjälle {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} jakoi kalenterin {calendar} käyttäjälle {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} lopetti kalenterin {calendar} jakamisen kanssasi",
- "You unshared calendar {calendar} from {user}" : "Lopetit kalenterin {calendar} jakamisen käyttäjälle {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} lopetti kalenterin {calendar} jakamisen käyttäjälle {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} lopetti kalenterin {calendar} jakamisen itselleen",
- "You shared calendar {calendar} with group {group}" : "Jaoit kalenterin {calendar} ryhmälle {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} jakoi kalenterin {calendar} ryhmälle {group}",
- "You unshared calendar {calendar} from group {group}" : "Lopetit kalenterin {calendar} jakamisen ryhmälle {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} lopetti kalenterin {calendar} jakamisen ryhmälle {group}",
- "Untitled event" : "Nimetön tapahtuma",
- "{actor} created event {event} in calendar {calendar}" : "{actor} loi tapahtuman {event} kalenteriin {calendar}",
- "You created event {event} in calendar {calendar}" : "Loit tapahtuman {event} kalenteriin {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} poisti tapahtuman {event} kalenterista {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Poistit tapahtuman {event} kalenterista {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} päivitti tapahtuman {event} kalenteriin {calendar}",
- "You updated event {event} in calendar {calendar}" : "Päivitit tapahtuman {event} kalenteriin {calendar}",
- "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Siirsit tapahtuman {event} kalenterista {sourceCalendar} kalenteriin {targetCalendar}",
- "Busy" : "Varattu",
- "Calendar, contacts and tasks" : "Kalenteri, yhteystiedot ja tehtävät",
- "A <strong>calendar</strong> was modified" : "<strong>Kalenteria</strong> on muokattu",
- "A calendar <strong>event</strong> was modified" : "Kalenterin <strong>tapahtumaa</strong> on muokattu",
- "Contact birthdays" : "Yhteystietojen syntymäpäivät",
- "Death of %s" : "%s kuolema",
- "Untitled calendar" : "Nimetön kalenteri",
- "Calendar:" : "Kalenteri:",
- "Date:" : "Päiväys:",
- "Where:" : "Missä:",
- "Description:" : "Kuvaus:",
- "_%n year_::_%n years_" : ["%n vuosi","%n vuotta"],
- "_%n month_::_%n months_" : ["%n kuukausi","%n kuukautta"],
- "_%n day_::_%n days_" : ["%n päivä","%n päivää"],
- "_%n hour_::_%n hours_" : ["%n tunti","%n tuntia"],
- "_%n minute_::_%n minutes_" : ["%n minuutti","%n minuuttia"],
- "%s (%s ago)" : "%s (%s sitten)",
- "Calendar: %s" : "Kalenteri: %s",
- "Date: %s" : "Päiväys: %s",
- "Description: %s" : "Kuvaus: %s",
- "Where: %s" : "Missä: %s",
- "%1$s via %2$s" : "%1$s palvelun %2$s kautta",
- "Cancelled: %1$s" : "Peruutettu: %1$s",
- "\"%1$s\" has been canceled" : "\"%1$s\" on peruttu",
- "%1$s has accepted your invitation" : "%1$s on hyväksynyt kutsusi",
- "%1$s has declined your invitation" : "%1$s on kieltäytynyt kutsustasi",
- "%1$s has responded to your invitation" : "%1$s on vastannut kutsuusi",
- "Invitation updated: %1$s" : "Kutsu päivitetty: %1$s",
- "%1$s updated the event \"%2$s\"" : "%1$s päivitti tapahtuman \"%2$s\"",
- "Invitation: %1$s" : "Kutsu: %1$s",
- "Organizer:" : "Järjestäjä:",
- "Attendees:" : "Osallistujat:",
- "Title:" : "Otsikko:",
- "When:" : "Milloin:",
- "Location:" : "Sijainti:",
- "Link:" : "Linkki:",
- "Accept" : "Hyväksy",
- "Decline" : "Kieltäydy",
- "More options …" : "Lisää valintoja…",
- "More options at %s" : "Lisää valintoja kohteessa %s",
- "Monday" : "Maanantai",
- "Tuesday" : "Tiistai",
- "Wednesday" : "Keskiviikko",
- "Thursday" : "Torstai",
- "Friday" : "Perjantai",
- "Saturday" : "Lauantai",
- "Sunday" : "Sunnuntai",
- "January" : "tammikuu",
- "February" : "helmikuu",
- "March" : "maaliskuu",
- "April" : "huhtikuu",
- "May" : "toukokuu",
- "June" : "kesäkuu",
- "July" : "heinäkuu",
- "August" : "elokuu",
- "September" : "syyskuu",
- "October" : "lokakuu",
- "November" : "marraskuu",
- "December" : "joulukuu",
- "First" : "Ensimmäinen",
- "Last" : "Viimeinen",
- "Contacts" : "Yhteystiedot",
- "{actor} created address book {addressbook}" : "{actor} loi osoitekirjan {addressbook}",
- "You created address book {addressbook}" : "Loit osoitekirjan {addressbook}",
- "{actor} deleted address book {addressbook}" : "{actor} poisti osoitekirjan {addressbook}",
- "You deleted address book {addressbook}" : "Sinä poistit osoitekirjan {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} päivitti osoitekirjaa {addressbook}",
- "You updated address book {addressbook}" : "Sinä päivitit osoitekirjaa {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} jakoi osoitekirjan {addressbook} kanssasi",
- "You shared address book {addressbook} with {user}" : "Jaoit osoitekirjan {addressbook} käyttäjän {user} kanssa",
- "{actor} shared address book {addressbook} with {user}" : "{actor} jakoi osoitekirjan {addressbook} käyttäjän {user} kanssa",
- "{actor} unshared address book {addressbook} from you" : "{actor} lopetti osoitekirjan {addressbook} jakamisen kanssasi",
- "You unshared address book {addressbook} from {user}" : "Lopetit osoitekirjan {addressbook} jakamisen käyttäjän {user} kanssa",
- "{actor} unshared address book {addressbook} from {user}" : "{actor} lopetti osoitekirjan {addressbook} jakamisen käyttäjän {user} kanssa",
- "You shared address book {addressbook} with group {group}" : "Jaoit osoitekirjan {addressbook} ryhmän {group} kanssa",
- "{actor} shared address book {addressbook} with group {group}" : "{actor} jakoi osoitekirjan {addressbook} ryhmän {group} kanssa",
- "You unshared address book {addressbook} from group {group}" : "Lopetit osoitekirjan {addressbook} jakamisen ryhmän {group} kanssa",
- "{actor} unshared address book {addressbook} from group {group}" : "{actor} lopetti osoitekirjan {addressbook} jakamisen ryhmän {group} kanssa",
- "{actor} created contact {card} in address book {addressbook}" : "{actor} loi yhteystiedon {card} osoitekirjaan {addressbook}",
- "You created contact {card} in address book {addressbook}" : "Loit yhteystiedon {card} osoitekirjaan {addressbook}",
- "{actor} deleted contact {card} from address book {addressbook}" : "{actor} poisti yhteystiedon {card} osoitekirjasta {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "Poistit yhteystiedon {card} osoitekirjasta {addressbook}",
- "{actor} updated contact {card} in address book {addressbook}" : "{actor} päivitti yhteystietoa {card} osoitekirjassa {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "Päivitit yhteystiedon {card} osoitekirjassa {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>Yhteystietoa</strong> tai <strong>osoitekirjaa</strong> muokattiin",
- "Accounts" : "Tilit",
- "File is not updatable: %1$s" : "Tiedosto ei ole päivitettävissä: %1$s",
- "_%n byte_::_%n bytes_" : ["%n tavu","%n tavua"],
- "Failed to check file size: %1$s" : "Tiedoston koon tarkistaminen epäonnistui: %1$s",
- "Encryption not ready: %1$s" : "Salaus ei ole valmis: %1$s",
- "Failed to open file: %1$s" : "Tiedoston avaaminen epäonnistui: %1$s",
- "File not found: %1$s" : "Tiedostoa ei löydy: %1$s",
- "System is in maintenance mode." : "Järjestelmä on huoltotilassa",
- "Upgrade needed" : "Päivitys tarvitaan",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "%s tulee asettaa käyttämään HTTPS-yhteyttä, jotta CalDAVia ja CardDAVia voi käyttää iOSilla tai macOS:llä.",
- "Configures a CalDAV account" : "Määrittää CalDAV-tilin",
- "Configures a CardDAV account" : "Määrittää CardDAV-tilin",
- "Events" : "Tapahtumat",
- "Untitled task" : "Nimetön tehtävä",
- "WebDAV endpoint" : "WebDAV-päätepiste",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Palvelintasi ei ole määritetty oikein tiedostojen synkronointia varten, koska WebDAV-liitäntä vaikuttaa olevan rikki.",
- "Contacts and groups" : "Yhteystiedot ja ryhmät",
- "WebDAV" : "WebDAV",
- "First day" : "Ensimmäinen päivä",
- "Save" : "Tallenna",
- "Failed to load availability" : "Saatavuuden lataaminen epäonnistui",
- "Time zone:" : "Aikavyöhyke:",
- "to" : "Vastaanottaja",
- "Delete slot" : "Poista aikarako",
- "No working hours set" : "Työskentelytunteja ei ole asetettu",
- "Add slot" : "Lisää aikarako",
- "Weekdays" : "Viikonpäivät",
- "Availability" : "Saatavuus",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Asenna myös {calendarappstoreopen}kalenterisovellus{linkclose}, tai {calendardocopen}yhdistä tietokoneesi ja mobiililaitteesi synkronointiyhteyteen ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Varmista että määrität {emailopen}sähköpostipalvelimen{linkclose} asetukset oikein.",
- "Calendar server" : "Kalenteripalvelin",
- "Send invitations to attendees" : "Lähetä kutsut osallistujille",
- "Automatically generate a birthday calendar" : "Luo syntymäpäiväkalenteri automaattisesti",
- "Birthday calendars will be generated by a background job." : "Syntymäpäiväkalenterit luodaan taustatyön toimesta.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Sen vuoksi ne eivät ole välittömästi saatavilla käyttöönoton jälkeen, vaan ne tulevat näkyviin pienellä viiveellä.",
- "Send notifications for events" : "Lähetä ilmoitukset tapahtumista",
- "There was an error updating your attendance status." : "Osallistumisesi tilaa päivittäessä tapahtui virhe.",
- "Please contact the organizer directly." : "Ota yhteys suoraan järjestäjään.",
- "Are you accepting the invitation?" : "Hyväksytkö kutsun?",
- "Tentative" : "Alustava",
- "Your attendance was updated successfully." : "Osallistumisesi päivitettiin onnistuneesti.",
- "Time:" : "Aika:",
- "Could not open file" : "Tiedoston avaaminen ei onnistunut"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/fi.json b/apps/dav/l10n/fi.json
deleted file mode 100644
index cabd5d48efb..00000000000
--- a/apps/dav/l10n/fi.json
+++ /dev/null
@@ -1,163 +0,0 @@
-{ "translations": {
- "Calendar" : "Kalenteri",
- "Tasks" : "Tehtävät",
- "Personal" : "Henkilökohtainen",
- "{actor} created calendar {calendar}" : "{actor} loi kalenterin {calendar}",
- "You created calendar {calendar}" : "Loit kalenterin {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} poisti kalenterin {calendar}",
- "You deleted calendar {calendar}" : "Poistit kalenterin {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} päivitti kalenterin {calendar}",
- "You updated calendar {calendar}" : "Päivitit kalenterin {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} palautti kalenterin {calendar}",
- "You restored calendar {calendar}" : "Palautit kalenterin {calendar}",
- "You shared calendar {calendar} as public link" : "Jaoit kalenterin {calendar} julkisena linkkinä",
- "You removed public link for calendar {calendar}" : "Poistit julkisen linkin kalenterilta {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} jakoi kalenterin {calendar} kanssasi",
- "You shared calendar {calendar} with {user}" : "Jaoit kalenterin {calendar} käyttäjälle {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} jakoi kalenterin {calendar} käyttäjälle {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} lopetti kalenterin {calendar} jakamisen kanssasi",
- "You unshared calendar {calendar} from {user}" : "Lopetit kalenterin {calendar} jakamisen käyttäjälle {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} lopetti kalenterin {calendar} jakamisen käyttäjälle {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} lopetti kalenterin {calendar} jakamisen itselleen",
- "You shared calendar {calendar} with group {group}" : "Jaoit kalenterin {calendar} ryhmälle {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} jakoi kalenterin {calendar} ryhmälle {group}",
- "You unshared calendar {calendar} from group {group}" : "Lopetit kalenterin {calendar} jakamisen ryhmälle {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} lopetti kalenterin {calendar} jakamisen ryhmälle {group}",
- "Untitled event" : "Nimetön tapahtuma",
- "{actor} created event {event} in calendar {calendar}" : "{actor} loi tapahtuman {event} kalenteriin {calendar}",
- "You created event {event} in calendar {calendar}" : "Loit tapahtuman {event} kalenteriin {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} poisti tapahtuman {event} kalenterista {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Poistit tapahtuman {event} kalenterista {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} päivitti tapahtuman {event} kalenteriin {calendar}",
- "You updated event {event} in calendar {calendar}" : "Päivitit tapahtuman {event} kalenteriin {calendar}",
- "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Siirsit tapahtuman {event} kalenterista {sourceCalendar} kalenteriin {targetCalendar}",
- "Busy" : "Varattu",
- "Calendar, contacts and tasks" : "Kalenteri, yhteystiedot ja tehtävät",
- "A <strong>calendar</strong> was modified" : "<strong>Kalenteria</strong> on muokattu",
- "A calendar <strong>event</strong> was modified" : "Kalenterin <strong>tapahtumaa</strong> on muokattu",
- "Contact birthdays" : "Yhteystietojen syntymäpäivät",
- "Death of %s" : "%s kuolema",
- "Untitled calendar" : "Nimetön kalenteri",
- "Calendar:" : "Kalenteri:",
- "Date:" : "Päiväys:",
- "Where:" : "Missä:",
- "Description:" : "Kuvaus:",
- "_%n year_::_%n years_" : ["%n vuosi","%n vuotta"],
- "_%n month_::_%n months_" : ["%n kuukausi","%n kuukautta"],
- "_%n day_::_%n days_" : ["%n päivä","%n päivää"],
- "_%n hour_::_%n hours_" : ["%n tunti","%n tuntia"],
- "_%n minute_::_%n minutes_" : ["%n minuutti","%n minuuttia"],
- "%s (%s ago)" : "%s (%s sitten)",
- "Calendar: %s" : "Kalenteri: %s",
- "Date: %s" : "Päiväys: %s",
- "Description: %s" : "Kuvaus: %s",
- "Where: %s" : "Missä: %s",
- "%1$s via %2$s" : "%1$s palvelun %2$s kautta",
- "Cancelled: %1$s" : "Peruutettu: %1$s",
- "\"%1$s\" has been canceled" : "\"%1$s\" on peruttu",
- "%1$s has accepted your invitation" : "%1$s on hyväksynyt kutsusi",
- "%1$s has declined your invitation" : "%1$s on kieltäytynyt kutsustasi",
- "%1$s has responded to your invitation" : "%1$s on vastannut kutsuusi",
- "Invitation updated: %1$s" : "Kutsu päivitetty: %1$s",
- "%1$s updated the event \"%2$s\"" : "%1$s päivitti tapahtuman \"%2$s\"",
- "Invitation: %1$s" : "Kutsu: %1$s",
- "Organizer:" : "Järjestäjä:",
- "Attendees:" : "Osallistujat:",
- "Title:" : "Otsikko:",
- "When:" : "Milloin:",
- "Location:" : "Sijainti:",
- "Link:" : "Linkki:",
- "Accept" : "Hyväksy",
- "Decline" : "Kieltäydy",
- "More options …" : "Lisää valintoja…",
- "More options at %s" : "Lisää valintoja kohteessa %s",
- "Monday" : "Maanantai",
- "Tuesday" : "Tiistai",
- "Wednesday" : "Keskiviikko",
- "Thursday" : "Torstai",
- "Friday" : "Perjantai",
- "Saturday" : "Lauantai",
- "Sunday" : "Sunnuntai",
- "January" : "tammikuu",
- "February" : "helmikuu",
- "March" : "maaliskuu",
- "April" : "huhtikuu",
- "May" : "toukokuu",
- "June" : "kesäkuu",
- "July" : "heinäkuu",
- "August" : "elokuu",
- "September" : "syyskuu",
- "October" : "lokakuu",
- "November" : "marraskuu",
- "December" : "joulukuu",
- "First" : "Ensimmäinen",
- "Last" : "Viimeinen",
- "Contacts" : "Yhteystiedot",
- "{actor} created address book {addressbook}" : "{actor} loi osoitekirjan {addressbook}",
- "You created address book {addressbook}" : "Loit osoitekirjan {addressbook}",
- "{actor} deleted address book {addressbook}" : "{actor} poisti osoitekirjan {addressbook}",
- "You deleted address book {addressbook}" : "Sinä poistit osoitekirjan {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} päivitti osoitekirjaa {addressbook}",
- "You updated address book {addressbook}" : "Sinä päivitit osoitekirjaa {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} jakoi osoitekirjan {addressbook} kanssasi",
- "You shared address book {addressbook} with {user}" : "Jaoit osoitekirjan {addressbook} käyttäjän {user} kanssa",
- "{actor} shared address book {addressbook} with {user}" : "{actor} jakoi osoitekirjan {addressbook} käyttäjän {user} kanssa",
- "{actor} unshared address book {addressbook} from you" : "{actor} lopetti osoitekirjan {addressbook} jakamisen kanssasi",
- "You unshared address book {addressbook} from {user}" : "Lopetit osoitekirjan {addressbook} jakamisen käyttäjän {user} kanssa",
- "{actor} unshared address book {addressbook} from {user}" : "{actor} lopetti osoitekirjan {addressbook} jakamisen käyttäjän {user} kanssa",
- "You shared address book {addressbook} with group {group}" : "Jaoit osoitekirjan {addressbook} ryhmän {group} kanssa",
- "{actor} shared address book {addressbook} with group {group}" : "{actor} jakoi osoitekirjan {addressbook} ryhmän {group} kanssa",
- "You unshared address book {addressbook} from group {group}" : "Lopetit osoitekirjan {addressbook} jakamisen ryhmän {group} kanssa",
- "{actor} unshared address book {addressbook} from group {group}" : "{actor} lopetti osoitekirjan {addressbook} jakamisen ryhmän {group} kanssa",
- "{actor} created contact {card} in address book {addressbook}" : "{actor} loi yhteystiedon {card} osoitekirjaan {addressbook}",
- "You created contact {card} in address book {addressbook}" : "Loit yhteystiedon {card} osoitekirjaan {addressbook}",
- "{actor} deleted contact {card} from address book {addressbook}" : "{actor} poisti yhteystiedon {card} osoitekirjasta {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "Poistit yhteystiedon {card} osoitekirjasta {addressbook}",
- "{actor} updated contact {card} in address book {addressbook}" : "{actor} päivitti yhteystietoa {card} osoitekirjassa {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "Päivitit yhteystiedon {card} osoitekirjassa {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>Yhteystietoa</strong> tai <strong>osoitekirjaa</strong> muokattiin",
- "Accounts" : "Tilit",
- "File is not updatable: %1$s" : "Tiedosto ei ole päivitettävissä: %1$s",
- "_%n byte_::_%n bytes_" : ["%n tavu","%n tavua"],
- "Failed to check file size: %1$s" : "Tiedoston koon tarkistaminen epäonnistui: %1$s",
- "Encryption not ready: %1$s" : "Salaus ei ole valmis: %1$s",
- "Failed to open file: %1$s" : "Tiedoston avaaminen epäonnistui: %1$s",
- "File not found: %1$s" : "Tiedostoa ei löydy: %1$s",
- "System is in maintenance mode." : "Järjestelmä on huoltotilassa",
- "Upgrade needed" : "Päivitys tarvitaan",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "%s tulee asettaa käyttämään HTTPS-yhteyttä, jotta CalDAVia ja CardDAVia voi käyttää iOSilla tai macOS:llä.",
- "Configures a CalDAV account" : "Määrittää CalDAV-tilin",
- "Configures a CardDAV account" : "Määrittää CardDAV-tilin",
- "Events" : "Tapahtumat",
- "Untitled task" : "Nimetön tehtävä",
- "WebDAV endpoint" : "WebDAV-päätepiste",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Palvelintasi ei ole määritetty oikein tiedostojen synkronointia varten, koska WebDAV-liitäntä vaikuttaa olevan rikki.",
- "Contacts and groups" : "Yhteystiedot ja ryhmät",
- "WebDAV" : "WebDAV",
- "First day" : "Ensimmäinen päivä",
- "Save" : "Tallenna",
- "Failed to load availability" : "Saatavuuden lataaminen epäonnistui",
- "Time zone:" : "Aikavyöhyke:",
- "to" : "Vastaanottaja",
- "Delete slot" : "Poista aikarako",
- "No working hours set" : "Työskentelytunteja ei ole asetettu",
- "Add slot" : "Lisää aikarako",
- "Weekdays" : "Viikonpäivät",
- "Availability" : "Saatavuus",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Asenna myös {calendarappstoreopen}kalenterisovellus{linkclose}, tai {calendardocopen}yhdistä tietokoneesi ja mobiililaitteesi synkronointiyhteyteen ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Varmista että määrität {emailopen}sähköpostipalvelimen{linkclose} asetukset oikein.",
- "Calendar server" : "Kalenteripalvelin",
- "Send invitations to attendees" : "Lähetä kutsut osallistujille",
- "Automatically generate a birthday calendar" : "Luo syntymäpäiväkalenteri automaattisesti",
- "Birthday calendars will be generated by a background job." : "Syntymäpäiväkalenterit luodaan taustatyön toimesta.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Sen vuoksi ne eivät ole välittömästi saatavilla käyttöönoton jälkeen, vaan ne tulevat näkyviin pienellä viiveellä.",
- "Send notifications for events" : "Lähetä ilmoitukset tapahtumista",
- "There was an error updating your attendance status." : "Osallistumisesi tilaa päivittäessä tapahtui virhe.",
- "Please contact the organizer directly." : "Ota yhteys suoraan järjestäjään.",
- "Are you accepting the invitation?" : "Hyväksytkö kutsun?",
- "Tentative" : "Alustava",
- "Your attendance was updated successfully." : "Osallistumisesi päivitettiin onnistuneesti.",
- "Time:" : "Aika:",
- "Could not open file" : "Tiedoston avaaminen ei onnistunut"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/fr.js b/apps/dav/l10n/fr.js
index 736d0c450c2..667666b94dc 100644
--- a/apps/dav/l10n/fr.js
+++ b/apps/dav/l10n/fr.js
@@ -72,10 +72,20 @@ OC.L10N.register(
"Description: %s" : "Description : %s",
"Where: %s" : "Où : %s",
"%1$s via %2$s" : "%1$s via %2$s",
+ "In the past on %1$s for the entire day" : "Dans le passé toute la journée du %1$s ",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Dans une minute le %1$s pour la journée entière","Dans %n minutes le %1$s pour la journée entière","Dans %n minutes le %1$s pour la journée entière"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Dans une heure le %1$s pour la journée entière","Dans %n heures le %1$s pour la journée entière","Dans %n heures le %1$s pour la journée entière"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Dans un jour le %1$s pour la journée entière","Dans %n jours le %1$s pour la journée entière","Dans %n jours le %1$s pour la journée entière"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Dans une semaine le %1$s pour la journée entière","Dans %n semaines le %1$s pour la journée entière","Dans %n semaines le %1$s pour la journée entière"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Dans un mois toute la journée du %1$s","Dans %n mois toute la journée du %1$s","Dans %n mois toute la journée du %1$s"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Dans un an toute la journée du %1$s","Dans %n années toute la journée du %1$s","Dans %n années toute la journée du %1$s"],
+ "In the past on %1$s between %2$s - %3$s" : "Dans le passé le %1$s entre %2$s - %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Dans une minute le %1$s entre %2$s - %3$s","Dans %n minutes le %1$s entre %2$s - %3$s","Dans %n minutes le %1$s entre %2$s - %3$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Dans une heure le %1$s entre %2$s et %3$s","Dans %n heures le %1$s entre %2$s et %3$s","Dans %n heures le %1$s entre %2$s et %3$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Demain le %1$s entre %2$s et %3$s","Dans %n jours le %1$s entre %2$s et %3$s","Dans %n jours le %1$s entre %2$s et %3$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["La semaine prochaine le %1$s entre %2$s et %3$s","Dans %n semaines le %1$s entre %2$s et %3$s","Dans %n semaines le %1$s entre %2$s et %3$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Dans un mois le %1$s entre %2$s et %3$s","Dans %n mois le %1$s entre %2$s et %3$s","Dans %n mois le %1$s entre %2$s et %3$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["L'an prochain le %1$s entre %2$s et %3$s","Dans %n ans le %1$s entre %2$s et %3$s","Dans %n ans le %1$s entre %2$s et %3$s"],
"Could not generate when statement" : "Impossible de déterminer quand",
"Every Day for the entire day" : "Chaque jour pour toute la journée",
"Every Day for the entire day until %1$s" : "Chaque jour pour toute la journée jusqu'au %1$s",
@@ -112,6 +122,27 @@ OC.L10N.register(
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Tous les %1$d ans en %2$s le %3$s entre %4$s - %5$s jusqu'au %6$s",
"On specific dates for the entire day until %1$s" : "À une date spécifique pour la journée entière jusqu'au %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "À des dates spécifiques entre %1$s et %2$s jusqu'au %3$s",
+ "In the past on %1$s" : "Dans le passé sur %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Dans une minute sur %1$s","Dans %n minutes sur %1$s","Dans %n minutes sur %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Dans une heure sur %1$s","Dans %n heures sur %1$s","Dans %n sur %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Demain le %1$s","Dans %n jours le %1$s","Dans %n jours le %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["La semaine prochaine le %1$s","Dans %n semaines le %1$s","Dans %n semaines le %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Le mois prochain le %1$s","Dans %n mois le %1$s","Dans %n mois le %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["L'an prochain le %1$s","Dans %n ans le %1$s","Dans %n ans le %1$s"],
+ "In the past on %1$s then on %2$s" : "Dans le passé le %1$s puis le %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Dans une minute le %1$s puis le %2$s","Dans %n minutes le %1$s puis le %2$s","Dans %n minutes le %1$s puis le %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Dans une heure le %1$s puis le %2$s","Dans %n heures le %1$s puis le %2$s","Dans %n heures le %1$s puis le %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Demain le %1$s puis le %2$s","Dans %n jours le %1$s puis le %2$s","Dans %n jours le %1$s puis le %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["La semaine prochaine le %1$s puis le %2$s","Dans %n semaines le %1$s puis le %2$s","Dans %n semaines le %1$s puis le %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Le mois prochain le %1$s puis le %2$s","Dans %n mois le %1$s puis le %2$s","Dans %n mois le %1$s puis le %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["L'an prochain le %1$s puis le %2$s","Dans %n ans le %1$s puis le %2$s","Dans %n ans le %1$s puis le %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "Dans le passé le %1$s puis le %2$s et %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Dans une minute le %1$s puis le %2$s et %3$s","Dans %n minutes le %1$s puis le %2$s et %3$s","Dans %n minutes le %1$s puis le %2$s et %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Dans une heure le %1$s puis le %2$s et %3$s","Dans %n heures le %1$s puis le %2$s et %3$s","Dans %n heures le %1$s puis le %2$s et %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Demain le %1$s puis le %2$s et %3$s","Dans %n jours le %1$s puis le %2$s et %3$s","Dans %n jours le %1$s puis le %2$s et %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["La semaine prochaine le %1$s puis le %2$s et %3$s","Dans %n semaines le %1$s puis le %2$s et %3$s","Dans %n semaines le %1$s puis le %2$s et %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Dans un mois le %1$s puis le %2$s et %3$s","Dans %n mois le %1$s puis le %2$s et %3$s","Dans %n mois le %1$s puis le %2$s et %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Dans un an sur %1$spuis sur %2$s et %3$s","Dans %n années sur %1$s puis sur %2$s et %3$s","Dans %n années sur %1$s puis sur %2$s et %3$s"],
"Could not generate next recurrence statement" : "Impossible de déterminer la prochaine récurrence",
"Cancelled: %1$s" : "Annulé : %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" a été annulé(e)",
@@ -159,11 +190,11 @@ OC.L10N.register(
"Third" : "Troisième",
"Fourth" : "Quatrième",
"Fifth" : "Cinquième",
- "Last" : "Dernière",
- "Second Last" : "Avant dernier",
- "Third Last" : "Antépénultième",
- "Fourth Last" : "Pré-antépénultième",
- "Fifth Last" : "Cinq Derniers",
+ "Last" : "Dernièr",
+ "Second Last" : "Avant-dernier",
+ "Third Last" : "Troisième dernier",
+ "Fourth Last" : "Quatrième dernier",
+ "Fifth Last" : "Cinquième dernier",
"Contacts" : "Contacts",
"{actor} created address book {addressbook}" : "{actor} a créé le carnet d'adresses {addressbook}",
"You created address book {addressbook}" : "Vous avez créé le carnet d'adresses {addressbook}",
@@ -219,6 +250,9 @@ OC.L10N.register(
"Completed on %s" : "Terminé le %s",
"Due on %s by %s" : "Echéance le %s pour %s",
"Due on %s" : "Echéance le %s",
+ "System Address Book" : "Carnet d'adresses du système",
+ "The system address book contains contact information for all users in your instance." : "Le carnet d'adresses du système contient les informations de contact de tous les utilisateurs de votre instance.",
+ "Enable System Address Book" : "Activer le carnet d'adresses du système",
"DAV system address book" : "Carnet d'adresses système DAV",
"No outstanding DAV system address book sync." : "Pas de synchronisation DAV en cours du carnet d'adresses système.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "La synchronisation du carnet d'adresses système DAV n'a pas encore été effectuée car votre instance a plus de 1 000 utilisateurs ou parce qu'une erreur est survenue. Merci de l'exécuter manuellement en tapant la commande \"occ dav:sync-system-addressbook\".",
@@ -256,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Choisissez une heure de début pour {dayName}",
"Pick a end time for {dayName}" : "Choisissez une heure de fin pour {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Définir automatiquement le statut « Ne pas déranger » en dehors des heures de disponibilités pour désactiver toutes les notifications.",
+ "Cancel" : "Annuler",
+ "Import" : "Importation",
+ "Error while saving settings" : "Erreur lors de l'enregistrement des paramètres",
+ "Contact reset successfully" : "Contact réinitialisé avec succès",
+ "Error while resetting contact" : "Erreur lors de la remise à zéro du contact",
+ "Contact imported successfully" : "Contact importé avec succès",
+ "Error while importing contact" : "Erreur lors de l'importation du contact",
+ "Import contact" : "Importer un contact",
+ "Reset to default" : "Restaurer les valeurs par défaut",
+ "Import contacts" : "Importer des contacts",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importer un nouveau fichier .vcf supprimera le contact par défaut existant et le remplacera. Voulez-vous continuer ?",
+ "Failed to save example event creation setting" : "Échec de la sauvegarde du paramètre de l'exemple de création d'événement",
+ "Failed to upload the example event" : "Échec du téléversement de l'exemple d'événement",
+ "Custom example event was saved successfully" : "L'exemple d'événement personnalisé a bien été enregistré",
+ "Failed to delete the custom example event" : "Échec de la suppression de l'exemple d'événement personnalisé ",
+ "Custom example event was deleted successfully" : "L'exemple de contenu personnalisé a bien été supprimé",
+ "Import calendar event" : "Importer l'événement du calendrier",
+ "Uploading a new event will overwrite the existing one." : "Charger un nouvel événement qui va remplacer l'actuel.",
+ "Upload event" : "Téléverser un événement",
"Availability" : "Disponibilités",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si vous configurez vos heures de travail, les autres personnes verront si vous êtes disponible quand ils planifient une réunion.",
"Absence" : "Absence",
@@ -272,24 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Envoyez également des notifications de rappel aux personnes partageant le calendrier",
"Reminders are always sent to organizers and attendees." : "Des rappels sont toujours envoyés aux organisateurs et aux participants.",
"Enable notifications for events via push" : "Activer les notifications push pour les évènements",
- "Cancel" : "Annuler",
- "Import" : "Importation",
- "Error while saving settings" : "Erreur lors de l'enregistrement des paramètres",
- "Contact reset successfully" : "Contact réinitialisé avec succès",
- "Error while resetting contact" : "Erreur lors de la remise à zéro du contact",
- "Contact imported successfully" : "Contact importé avec succès",
- "Error while importing contact" : "Erreur lors de l'importation du contact",
- "Import contact" : "Importer un contact",
- "Import contacts" : "Importer des contacts",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importer un nouveau fichier .vcf supprimera le contact par défaut existant et le remplacera. Voulez-vous continuer ?",
+ "Example content" : "Exemple de contenu",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Les exemples de contenu servent à présenter les fonctionnalités de Nextcloud. Le contenu par défaut est fourni avec Nextcloud et peut être remplacé par du contenu personnalisé.",
"There was an error updating your attendance status." : "Une erreur s'est produite lors de la mise à jour de votre statut de présence.",
"Please contact the organizer directly." : "Merci de contacter l'organisateur directement.",
"Are you accepting the invitation?" : "Acceptez-vous l'invitation ?",
"Tentative" : "Tentative",
- "Your attendance was updated successfully." : "Votre présence a été mise à jour avec succès.",
- "Time:" : "Heure :",
- "Could not open file" : "Impossible d'ouvrir le fichier",
- "Invalid chunk name" : "Nom de morceau invalide",
- "Could not rename part file assembled from chunks" : "Impossible de renommer le fichier partiel à partir des morceaux"
+ "Your attendance was updated successfully." : "Votre présence a été mise à jour avec succès."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/fr.json b/apps/dav/l10n/fr.json
index 8f64a867349..b9a5a65e888 100644
--- a/apps/dav/l10n/fr.json
+++ b/apps/dav/l10n/fr.json
@@ -70,10 +70,20 @@
"Description: %s" : "Description : %s",
"Where: %s" : "Où : %s",
"%1$s via %2$s" : "%1$s via %2$s",
+ "In the past on %1$s for the entire day" : "Dans le passé toute la journée du %1$s ",
"_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Dans une minute le %1$s pour la journée entière","Dans %n minutes le %1$s pour la journée entière","Dans %n minutes le %1$s pour la journée entière"],
"_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Dans une heure le %1$s pour la journée entière","Dans %n heures le %1$s pour la journée entière","Dans %n heures le %1$s pour la journée entière"],
"_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Dans un jour le %1$s pour la journée entière","Dans %n jours le %1$s pour la journée entière","Dans %n jours le %1$s pour la journée entière"],
"_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Dans une semaine le %1$s pour la journée entière","Dans %n semaines le %1$s pour la journée entière","Dans %n semaines le %1$s pour la journée entière"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Dans un mois toute la journée du %1$s","Dans %n mois toute la journée du %1$s","Dans %n mois toute la journée du %1$s"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Dans un an toute la journée du %1$s","Dans %n années toute la journée du %1$s","Dans %n années toute la journée du %1$s"],
+ "In the past on %1$s between %2$s - %3$s" : "Dans le passé le %1$s entre %2$s - %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Dans une minute le %1$s entre %2$s - %3$s","Dans %n minutes le %1$s entre %2$s - %3$s","Dans %n minutes le %1$s entre %2$s - %3$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Dans une heure le %1$s entre %2$s et %3$s","Dans %n heures le %1$s entre %2$s et %3$s","Dans %n heures le %1$s entre %2$s et %3$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Demain le %1$s entre %2$s et %3$s","Dans %n jours le %1$s entre %2$s et %3$s","Dans %n jours le %1$s entre %2$s et %3$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["La semaine prochaine le %1$s entre %2$s et %3$s","Dans %n semaines le %1$s entre %2$s et %3$s","Dans %n semaines le %1$s entre %2$s et %3$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Dans un mois le %1$s entre %2$s et %3$s","Dans %n mois le %1$s entre %2$s et %3$s","Dans %n mois le %1$s entre %2$s et %3$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["L'an prochain le %1$s entre %2$s et %3$s","Dans %n ans le %1$s entre %2$s et %3$s","Dans %n ans le %1$s entre %2$s et %3$s"],
"Could not generate when statement" : "Impossible de déterminer quand",
"Every Day for the entire day" : "Chaque jour pour toute la journée",
"Every Day for the entire day until %1$s" : "Chaque jour pour toute la journée jusqu'au %1$s",
@@ -110,6 +120,27 @@
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Tous les %1$d ans en %2$s le %3$s entre %4$s - %5$s jusqu'au %6$s",
"On specific dates for the entire day until %1$s" : "À une date spécifique pour la journée entière jusqu'au %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "À des dates spécifiques entre %1$s et %2$s jusqu'au %3$s",
+ "In the past on %1$s" : "Dans le passé sur %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Dans une minute sur %1$s","Dans %n minutes sur %1$s","Dans %n minutes sur %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Dans une heure sur %1$s","Dans %n heures sur %1$s","Dans %n sur %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Demain le %1$s","Dans %n jours le %1$s","Dans %n jours le %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["La semaine prochaine le %1$s","Dans %n semaines le %1$s","Dans %n semaines le %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Le mois prochain le %1$s","Dans %n mois le %1$s","Dans %n mois le %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["L'an prochain le %1$s","Dans %n ans le %1$s","Dans %n ans le %1$s"],
+ "In the past on %1$s then on %2$s" : "Dans le passé le %1$s puis le %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Dans une minute le %1$s puis le %2$s","Dans %n minutes le %1$s puis le %2$s","Dans %n minutes le %1$s puis le %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Dans une heure le %1$s puis le %2$s","Dans %n heures le %1$s puis le %2$s","Dans %n heures le %1$s puis le %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Demain le %1$s puis le %2$s","Dans %n jours le %1$s puis le %2$s","Dans %n jours le %1$s puis le %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["La semaine prochaine le %1$s puis le %2$s","Dans %n semaines le %1$s puis le %2$s","Dans %n semaines le %1$s puis le %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Le mois prochain le %1$s puis le %2$s","Dans %n mois le %1$s puis le %2$s","Dans %n mois le %1$s puis le %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["L'an prochain le %1$s puis le %2$s","Dans %n ans le %1$s puis le %2$s","Dans %n ans le %1$s puis le %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "Dans le passé le %1$s puis le %2$s et %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Dans une minute le %1$s puis le %2$s et %3$s","Dans %n minutes le %1$s puis le %2$s et %3$s","Dans %n minutes le %1$s puis le %2$s et %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Dans une heure le %1$s puis le %2$s et %3$s","Dans %n heures le %1$s puis le %2$s et %3$s","Dans %n heures le %1$s puis le %2$s et %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Demain le %1$s puis le %2$s et %3$s","Dans %n jours le %1$s puis le %2$s et %3$s","Dans %n jours le %1$s puis le %2$s et %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["La semaine prochaine le %1$s puis le %2$s et %3$s","Dans %n semaines le %1$s puis le %2$s et %3$s","Dans %n semaines le %1$s puis le %2$s et %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Dans un mois le %1$s puis le %2$s et %3$s","Dans %n mois le %1$s puis le %2$s et %3$s","Dans %n mois le %1$s puis le %2$s et %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Dans un an sur %1$spuis sur %2$s et %3$s","Dans %n années sur %1$s puis sur %2$s et %3$s","Dans %n années sur %1$s puis sur %2$s et %3$s"],
"Could not generate next recurrence statement" : "Impossible de déterminer la prochaine récurrence",
"Cancelled: %1$s" : "Annulé : %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" a été annulé(e)",
@@ -157,11 +188,11 @@
"Third" : "Troisième",
"Fourth" : "Quatrième",
"Fifth" : "Cinquième",
- "Last" : "Dernière",
- "Second Last" : "Avant dernier",
- "Third Last" : "Antépénultième",
- "Fourth Last" : "Pré-antépénultième",
- "Fifth Last" : "Cinq Derniers",
+ "Last" : "Dernièr",
+ "Second Last" : "Avant-dernier",
+ "Third Last" : "Troisième dernier",
+ "Fourth Last" : "Quatrième dernier",
+ "Fifth Last" : "Cinquième dernier",
"Contacts" : "Contacts",
"{actor} created address book {addressbook}" : "{actor} a créé le carnet d'adresses {addressbook}",
"You created address book {addressbook}" : "Vous avez créé le carnet d'adresses {addressbook}",
@@ -217,6 +248,9 @@
"Completed on %s" : "Terminé le %s",
"Due on %s by %s" : "Echéance le %s pour %s",
"Due on %s" : "Echéance le %s",
+ "System Address Book" : "Carnet d'adresses du système",
+ "The system address book contains contact information for all users in your instance." : "Le carnet d'adresses du système contient les informations de contact de tous les utilisateurs de votre instance.",
+ "Enable System Address Book" : "Activer le carnet d'adresses du système",
"DAV system address book" : "Carnet d'adresses système DAV",
"No outstanding DAV system address book sync." : "Pas de synchronisation DAV en cours du carnet d'adresses système.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "La synchronisation du carnet d'adresses système DAV n'a pas encore été effectuée car votre instance a plus de 1 000 utilisateurs ou parce qu'une erreur est survenue. Merci de l'exécuter manuellement en tapant la commande \"occ dav:sync-system-addressbook\".",
@@ -254,6 +288,25 @@
"Pick a start time for {dayName}" : "Choisissez une heure de début pour {dayName}",
"Pick a end time for {dayName}" : "Choisissez une heure de fin pour {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Définir automatiquement le statut « Ne pas déranger » en dehors des heures de disponibilités pour désactiver toutes les notifications.",
+ "Cancel" : "Annuler",
+ "Import" : "Importation",
+ "Error while saving settings" : "Erreur lors de l'enregistrement des paramètres",
+ "Contact reset successfully" : "Contact réinitialisé avec succès",
+ "Error while resetting contact" : "Erreur lors de la remise à zéro du contact",
+ "Contact imported successfully" : "Contact importé avec succès",
+ "Error while importing contact" : "Erreur lors de l'importation du contact",
+ "Import contact" : "Importer un contact",
+ "Reset to default" : "Restaurer les valeurs par défaut",
+ "Import contacts" : "Importer des contacts",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importer un nouveau fichier .vcf supprimera le contact par défaut existant et le remplacera. Voulez-vous continuer ?",
+ "Failed to save example event creation setting" : "Échec de la sauvegarde du paramètre de l'exemple de création d'événement",
+ "Failed to upload the example event" : "Échec du téléversement de l'exemple d'événement",
+ "Custom example event was saved successfully" : "L'exemple d'événement personnalisé a bien été enregistré",
+ "Failed to delete the custom example event" : "Échec de la suppression de l'exemple d'événement personnalisé ",
+ "Custom example event was deleted successfully" : "L'exemple de contenu personnalisé a bien été supprimé",
+ "Import calendar event" : "Importer l'événement du calendrier",
+ "Uploading a new event will overwrite the existing one." : "Charger un nouvel événement qui va remplacer l'actuel.",
+ "Upload event" : "Téléverser un événement",
"Availability" : "Disponibilités",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si vous configurez vos heures de travail, les autres personnes verront si vous êtes disponible quand ils planifient une réunion.",
"Absence" : "Absence",
@@ -270,24 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "Envoyez également des notifications de rappel aux personnes partageant le calendrier",
"Reminders are always sent to organizers and attendees." : "Des rappels sont toujours envoyés aux organisateurs et aux participants.",
"Enable notifications for events via push" : "Activer les notifications push pour les évènements",
- "Cancel" : "Annuler",
- "Import" : "Importation",
- "Error while saving settings" : "Erreur lors de l'enregistrement des paramètres",
- "Contact reset successfully" : "Contact réinitialisé avec succès",
- "Error while resetting contact" : "Erreur lors de la remise à zéro du contact",
- "Contact imported successfully" : "Contact importé avec succès",
- "Error while importing contact" : "Erreur lors de l'importation du contact",
- "Import contact" : "Importer un contact",
- "Import contacts" : "Importer des contacts",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importer un nouveau fichier .vcf supprimera le contact par défaut existant et le remplacera. Voulez-vous continuer ?",
+ "Example content" : "Exemple de contenu",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Les exemples de contenu servent à présenter les fonctionnalités de Nextcloud. Le contenu par défaut est fourni avec Nextcloud et peut être remplacé par du contenu personnalisé.",
"There was an error updating your attendance status." : "Une erreur s'est produite lors de la mise à jour de votre statut de présence.",
"Please contact the organizer directly." : "Merci de contacter l'organisateur directement.",
"Are you accepting the invitation?" : "Acceptez-vous l'invitation ?",
"Tentative" : "Tentative",
- "Your attendance was updated successfully." : "Votre présence a été mise à jour avec succès.",
- "Time:" : "Heure :",
- "Could not open file" : "Impossible d'ouvrir le fichier",
- "Invalid chunk name" : "Nom de morceau invalide",
- "Could not rename part file assembled from chunks" : "Impossible de renommer le fichier partiel à partir des morceaux"
+ "Your attendance was updated successfully." : "Votre présence a été mise à jour avec succès."
},"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/dav/l10n/ga.js b/apps/dav/l10n/ga.js
index 1d3d0d75c89..fe197df1bd8 100644
--- a/apps/dav/l10n/ga.js
+++ b/apps/dav/l10n/ga.js
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Roghnaigh am tosaithe le haghaidh {dayName}",
"Pick a end time for {dayName}" : "Roghnaigh am críochnaithe le haghaidh {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Socraigh stádas úsáideora go huathoibríoch mar \"Ná cuir isteach\" taobh amuigh den infhaighteacht chun gach fógra a bhalbhú.",
+ "Cancel" : "Cealaigh",
+ "Import" : "Iompórtáil",
+ "Error while saving settings" : "Earráid agus na socruithe á sábháil",
+ "Contact reset successfully" : "D'éirigh le hathshocrú teagmhála",
+ "Error while resetting contact" : "Earráid agus an teagmhálaí á athshocrú",
+ "Contact imported successfully" : "D'éirigh le hiompórtáil an teagmhálaí",
+ "Error while importing contact" : "Earráid agus an teagmhálaí á iompórtáil",
+ "Import contact" : "Iompórtáil teagmhála",
+ "Reset to default" : "Athshocraigh go réamhshocrú",
+ "Import contacts" : "Teagmhálaithe a allmhairiú",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Má dhéantar comhad .vcf nua a iompórtáil, scriosfar an teagmhálaí réamhshocraithe atá ann cheana féin agus cuirfear an ceann nua ina ionad. Ar mhaith leat leanúint ar aghaidh?",
+ "Failed to save example event creation setting" : "Theip ar shocrú cruthaithe imeachta samplach a shábháil",
+ "Failed to upload the example event" : "Theip ar an imeacht samplach a uaslódáil",
+ "Custom example event was saved successfully" : "Sábháladh imeacht samplach saincheaptha go rathúil",
+ "Failed to delete the custom example event" : "Theip ar an imeacht samplach saincheaptha a scriosadh",
+ "Custom example event was deleted successfully" : "Scriosadh imeacht samplach saincheaptha go rathúil",
+ "Import calendar event" : "Imeacht féilire a allmhairiú",
+ "Uploading a new event will overwrite the existing one." : "Scríobhfar an ceann atá ann cheana má uaslódálann tú imeacht nua.",
+ "Upload event" : "Uaslódáil imeacht",
"Availability" : "Infhaighteacht",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Má dhéanann tú do chuid uaireanta oibre a chumrú, feicfidh daoine eile nuair a bhíonn tú as oifig nuair a chuireann siad cruinniú in áirithe.",
"Absence" : "Neamhláithreacht",
@@ -306,27 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Seol fógraí meabhrúcháin chuig scaireanna féilire freisin",
"Reminders are always sent to organizers and attendees." : "Seoltar meabhrúcháin chuig na heagraithe agus an lucht freastail i gcónaí.",
"Enable notifications for events via push" : "Cumasaigh fógraí le haghaidh imeachtaí trí bhrú",
- "Cancel" : "Cealaigh",
- "Import" : "Iompórtáil",
- "Error while saving settings" : "Earráid agus na socruithe á sábháil",
- "Contact reset successfully" : "D'éirigh le hathshocrú teagmhála",
- "Error while resetting contact" : "Earráid agus an teagmhálaí á athshocrú",
- "Contact imported successfully" : "D'éirigh le hiompórtáil an teagmhálaí",
- "Error while importing contact" : "Earráid agus an teagmhálaí á iompórtáil",
- "Example Content" : "Ábhar Samplach",
- "Set example content to be created on new user first login." : "Socraigh ábhar samplach le cruthú ar an gcéad logáil isteach úsáideora nua.",
- "Import contact" : "Iompórtáil teagmhála",
- "Reset to default contact" : "Athshocraigh go teagmhálaí réamhshocraithe",
- "Import contacts" : "Teagmhálaithe a allmhairiú",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Má dhéantar comhad .vcf nua a iompórtáil, scriosfar an teagmhálaí réamhshocraithe atá ann cheana féin agus cuirfear an ceann nua ina ionad. Ar mhaith leat leanúint ar aghaidh?",
+ "Example content" : "Ábhar samplach",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Feidhmíonn ábhar samplach chun gnéithe Nextcloud a thaispeáint. Seoltar ábhar réamhshocraithe le Nextcloud, agus is féidir ábhar saincheaptha a chur ina áit.",
"There was an error updating your attendance status." : "Tharla earráid agus do stádas freastail á nuashonrú.",
"Please contact the organizer directly." : "Téigh i dteagmháil leis an eagraí go díreach le do thoil.",
"Are you accepting the invitation?" : "An bhfuil tú ag glacadh leis an gcuireadh?",
"Tentative" : "Sealadach",
- "Your attendance was updated successfully." : "D'éirigh le do thinreamh a nuashonrú.",
- "Time:" : "Am:",
- "Could not open file" : "Níorbh fhéidir an comhad a oscailt",
- "Invalid chunk name" : "Ainm smután neamhbhailí",
- "Could not rename part file assembled from chunks" : "Níorbh fhéidir páirtchomhad a athainmniú as smután"
+ "Your attendance was updated successfully." : "D'éirigh le do thinreamh a nuashonrú."
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/dav/l10n/ga.json b/apps/dav/l10n/ga.json
index 0012739b177..cde6b45cf5f 100644
--- a/apps/dav/l10n/ga.json
+++ b/apps/dav/l10n/ga.json
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "Roghnaigh am tosaithe le haghaidh {dayName}",
"Pick a end time for {dayName}" : "Roghnaigh am críochnaithe le haghaidh {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Socraigh stádas úsáideora go huathoibríoch mar \"Ná cuir isteach\" taobh amuigh den infhaighteacht chun gach fógra a bhalbhú.",
+ "Cancel" : "Cealaigh",
+ "Import" : "Iompórtáil",
+ "Error while saving settings" : "Earráid agus na socruithe á sábháil",
+ "Contact reset successfully" : "D'éirigh le hathshocrú teagmhála",
+ "Error while resetting contact" : "Earráid agus an teagmhálaí á athshocrú",
+ "Contact imported successfully" : "D'éirigh le hiompórtáil an teagmhálaí",
+ "Error while importing contact" : "Earráid agus an teagmhálaí á iompórtáil",
+ "Import contact" : "Iompórtáil teagmhála",
+ "Reset to default" : "Athshocraigh go réamhshocrú",
+ "Import contacts" : "Teagmhálaithe a allmhairiú",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Má dhéantar comhad .vcf nua a iompórtáil, scriosfar an teagmhálaí réamhshocraithe atá ann cheana féin agus cuirfear an ceann nua ina ionad. Ar mhaith leat leanúint ar aghaidh?",
+ "Failed to save example event creation setting" : "Theip ar shocrú cruthaithe imeachta samplach a shábháil",
+ "Failed to upload the example event" : "Theip ar an imeacht samplach a uaslódáil",
+ "Custom example event was saved successfully" : "Sábháladh imeacht samplach saincheaptha go rathúil",
+ "Failed to delete the custom example event" : "Theip ar an imeacht samplach saincheaptha a scriosadh",
+ "Custom example event was deleted successfully" : "Scriosadh imeacht samplach saincheaptha go rathúil",
+ "Import calendar event" : "Imeacht féilire a allmhairiú",
+ "Uploading a new event will overwrite the existing one." : "Scríobhfar an ceann atá ann cheana má uaslódálann tú imeacht nua.",
+ "Upload event" : "Uaslódáil imeacht",
"Availability" : "Infhaighteacht",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Má dhéanann tú do chuid uaireanta oibre a chumrú, feicfidh daoine eile nuair a bhíonn tú as oifig nuair a chuireann siad cruinniú in áirithe.",
"Absence" : "Neamhláithreacht",
@@ -304,27 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "Seol fógraí meabhrúcháin chuig scaireanna féilire freisin",
"Reminders are always sent to organizers and attendees." : "Seoltar meabhrúcháin chuig na heagraithe agus an lucht freastail i gcónaí.",
"Enable notifications for events via push" : "Cumasaigh fógraí le haghaidh imeachtaí trí bhrú",
- "Cancel" : "Cealaigh",
- "Import" : "Iompórtáil",
- "Error while saving settings" : "Earráid agus na socruithe á sábháil",
- "Contact reset successfully" : "D'éirigh le hathshocrú teagmhála",
- "Error while resetting contact" : "Earráid agus an teagmhálaí á athshocrú",
- "Contact imported successfully" : "D'éirigh le hiompórtáil an teagmhálaí",
- "Error while importing contact" : "Earráid agus an teagmhálaí á iompórtáil",
- "Example Content" : "Ábhar Samplach",
- "Set example content to be created on new user first login." : "Socraigh ábhar samplach le cruthú ar an gcéad logáil isteach úsáideora nua.",
- "Import contact" : "Iompórtáil teagmhála",
- "Reset to default contact" : "Athshocraigh go teagmhálaí réamhshocraithe",
- "Import contacts" : "Teagmhálaithe a allmhairiú",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Má dhéantar comhad .vcf nua a iompórtáil, scriosfar an teagmhálaí réamhshocraithe atá ann cheana féin agus cuirfear an ceann nua ina ionad. Ar mhaith leat leanúint ar aghaidh?",
+ "Example content" : "Ábhar samplach",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Feidhmíonn ábhar samplach chun gnéithe Nextcloud a thaispeáint. Seoltar ábhar réamhshocraithe le Nextcloud, agus is féidir ábhar saincheaptha a chur ina áit.",
"There was an error updating your attendance status." : "Tharla earráid agus do stádas freastail á nuashonrú.",
"Please contact the organizer directly." : "Téigh i dteagmháil leis an eagraí go díreach le do thoil.",
"Are you accepting the invitation?" : "An bhfuil tú ag glacadh leis an gcuireadh?",
"Tentative" : "Sealadach",
- "Your attendance was updated successfully." : "D'éirigh le do thinreamh a nuashonrú.",
- "Time:" : "Am:",
- "Could not open file" : "Níorbh fhéidir an comhad a oscailt",
- "Invalid chunk name" : "Ainm smután neamhbhailí",
- "Could not rename part file assembled from chunks" : "Níorbh fhéidir páirtchomhad a athainmniú as smután"
+ "Your attendance was updated successfully." : "D'éirigh le do thinreamh a nuashonrú."
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/gl.js b/apps/dav/l10n/gl.js
index b1fa7954ad1..2dcf4a4d100 100644
--- a/apps/dav/l10n/gl.js
+++ b/apps/dav/l10n/gl.js
@@ -287,6 +287,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Escolla unha hora de inicio para {dayName}",
"Pick a end time for {dayName}" : "Escolla unha hora de finalización para {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Definir automaticamente o estado do usuario en «Non molestar» fóra de dispoñibilidade para enmudecer todas as notificacións.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Produciuse un erro ao gardar os axustes",
+ "Reset to default" : "Restabelecer os valores predeterminados",
"Availability" : "Dispoñibilidade",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se configura o seu horario de traballo, outras persoas verán cando está fóra da oficina cando reserven unha xuntanza.",
"Absence" : "Ausencia",
@@ -303,17 +307,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Enviar notificacións de lembrete tamén aos que comparten calendario",
"Reminders are always sent to organizers and attendees." : "Os lembretes envíanselle sempre aos organizadores e aos asistentes.",
"Enable notifications for events via push" : "Activar o envío de notificacións emerxentes para eventos",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Produciuse un erro ao gardar os axustes",
"There was an error updating your attendance status." : "Produciuse un erro ao actualizar o seu estado de asistencia.",
"Please contact the organizer directly." : "Contacte directamente co organizador.",
"Are you accepting the invitation?" : "Acepta Vde. o convite?",
"Tentative" : "Provisional",
- "Your attendance was updated successfully." : "A súa asistencia foi actualizada satisfactoriamente.",
- "Time:" : "Hora:",
- "Could not open file" : "Non foi posíbel abrir o ficheiro",
- "Invalid chunk name" : "O nome do fragmento non é válido",
- "Could not rename part file assembled from chunks" : "Non foi posíbel cambiar o nome do ficheiro de pezas ensamblados a partir de fragmentos"
+ "Your attendance was updated successfully." : "A súa asistencia foi actualizada satisfactoriamente."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/gl.json b/apps/dav/l10n/gl.json
index 75453854e87..777fd270c00 100644
--- a/apps/dav/l10n/gl.json
+++ b/apps/dav/l10n/gl.json
@@ -285,6 +285,10 @@
"Pick a start time for {dayName}" : "Escolla unha hora de inicio para {dayName}",
"Pick a end time for {dayName}" : "Escolla unha hora de finalización para {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Definir automaticamente o estado do usuario en «Non molestar» fóra de dispoñibilidade para enmudecer todas as notificacións.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Produciuse un erro ao gardar os axustes",
+ "Reset to default" : "Restabelecer os valores predeterminados",
"Availability" : "Dispoñibilidade",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se configura o seu horario de traballo, outras persoas verán cando está fóra da oficina cando reserven unha xuntanza.",
"Absence" : "Ausencia",
@@ -301,17 +305,10 @@
"Send reminder notifications to calendar sharees as well" : "Enviar notificacións de lembrete tamén aos que comparten calendario",
"Reminders are always sent to organizers and attendees." : "Os lembretes envíanselle sempre aos organizadores e aos asistentes.",
"Enable notifications for events via push" : "Activar o envío de notificacións emerxentes para eventos",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Produciuse un erro ao gardar os axustes",
"There was an error updating your attendance status." : "Produciuse un erro ao actualizar o seu estado de asistencia.",
"Please contact the organizer directly." : "Contacte directamente co organizador.",
"Are you accepting the invitation?" : "Acepta Vde. o convite?",
"Tentative" : "Provisional",
- "Your attendance was updated successfully." : "A súa asistencia foi actualizada satisfactoriamente.",
- "Time:" : "Hora:",
- "Could not open file" : "Non foi posíbel abrir o ficheiro",
- "Invalid chunk name" : "O nome do fragmento non é válido",
- "Could not rename part file assembled from chunks" : "Non foi posíbel cambiar o nome do ficheiro de pezas ensamblados a partir de fragmentos"
+ "Your attendance was updated successfully." : "A súa asistencia foi actualizada satisfactoriamente."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/he.js b/apps/dav/l10n/he.js
deleted file mode 100644
index 20316f2dc51..00000000000
--- a/apps/dav/l10n/he.js
+++ /dev/null
@@ -1,101 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "יומן",
- "Personal" : "אישי",
- "{actor} created calendar {calendar}" : "היומן {calendar} נוצר על ידי {actor}",
- "You created calendar {calendar}" : "מחקת את היומן {calendar}",
- "{actor} deleted calendar {calendar}" : "היומן {calendar} נמחק על ידי {actor}",
- "You deleted calendar {calendar}" : "מחקת את היומן {calendar}",
- "{actor} updated calendar {calendar}" : "היומן {calendar} עודכן על ידי {actor}",
- "You updated calendar {calendar}" : "עדכנת את היומן {calendar}",
- "You shared calendar {calendar} as public link" : "שיתפת את היומן {calendar} כקישור ציבורי",
- "You removed public link for calendar {calendar}" : "הסרת את הקישור הציבורי ליומן {calendar}",
- "{actor} shared calendar {calendar} with you" : "שותף אתך לוח השנה {calendar} על ידי {actor}",
- "You shared calendar {calendar} with {user}" : "שיתפת לוח שנה {calendar} עם {user}",
- "{actor} shared calendar {calendar} with {user}" : "לוח השנה {calendar} שותף על ידי {actor} עם {user}",
- "{actor} unshared calendar {calendar} from you" : "השיתוף של לוח השנה {calendar} אתך הופסק על ידי {actor}",
- "You unshared calendar {calendar} from {user}" : "ביטלת את שיתוף לוח השנה {calendar} עם {user}",
- "{actor} unshared calendar {calendar} from {user}" : "השיתוף של לוח השנה {calendar} עם {user} הופסק על ידי {actor}",
- "{actor} unshared calendar {calendar} from themselves" : "השיתוף של לוח השנה {calendar} עם עצמם הופסק על ידי {actor}",
- "You shared calendar {calendar} with group {group}" : "שיתפת את לוח השנה {calendar} עם הקבוצה {group}",
- "{actor} shared calendar {calendar} with group {group}" : "לוח השנה {calendar} שותף עם הקבוצה {group} על ידי {actor}",
- "You unshared calendar {calendar} from group {group}" : "הפסקת את שיתוף לוח השנה {calendar} עם הקבוצה {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "השיתוף של לוח השנה {calendar} עם {group} הופסק על ידי {actor}",
- "Untitled event" : "אירוע ללא כותרת",
- "{actor} created event {event} in calendar {calendar}" : "האירוע {event} נוצר בלוח השנה {calendar} על ידי {actor}",
- "You created event {event} in calendar {calendar}" : "יצרת אירוע {event} בלוח השנה {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "האירוע {event} נמחק מלוח השנה {calendar} על ידי {actor}",
- "You deleted event {event} from calendar {calendar}" : "מחקת אירוע {event} מלוח השנה {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "האירוע {event} עודכן בלוח השנה {calendar} על ידי {actor}",
- "You updated event {event} in calendar {calendar}" : "עדכנת את האירוע {event} בלוח השנה {calendar}",
- "Busy" : "עסוק",
- "A <strong>calendar</strong> was modified" : " <strong>יומן</strong> נערך",
- "A calendar <strong>event</strong> was modified" : "<strong>אירוע</strong> ביומן נערך",
- "Contact birthdays" : "ימי הולדת של אנשי קשר",
- "Death of %s" : "הפטירה של %s",
- "Untitled calendar" : "לוח שנה ללא כותרת",
- "Calendar:" : "לוח שנה:",
- "Date:" : "תאריך:",
- "Where:" : "איפה:",
- "Description:" : "תיאור:",
- "_%n year_::_%n years_" : ["שנה","שנתיים","%n שנים","%n שנים"],
- "_%n month_::_%n months_" : ["חודש","חודשיים","%n חודשים","%n חודשים"],
- "_%n day_::_%n days_" : ["יום","יומיים","%n ימים","%n ימים"],
- "_%n hour_::_%n hours_" : ["שעה","שעתיים","%n שעות","%n שעות"],
- "_%n minute_::_%n minutes_" : ["דקה","%n דקות","%n דקות","%n דקות"],
- "%s (in %s)" : "%s (בתוך %s)",
- "%s (%s ago)" : "%s (לפני %s)",
- "Calendar: %s" : "לוח שנה: %s",
- "Date: %s" : "תאריך: %s",
- "Description: %s" : "תיאור: %s",
- "Where: %s" : "איפה: %s",
- "%1$s via %2$s" : "%1$s דרך %2$s",
- "Organizer:" : "ארגון:",
- "Attendees:" : "משתתפים:",
- "Title:" : "כותרת:",
- "Time:" : "שעה:",
- "Location:" : "מיקום:",
- "Link:" : "קישור:",
- "Accept" : "קבלה",
- "Decline" : "דחייה",
- "More options …" : "אפשרויות נוספות…",
- "More options at %s" : "אפשרויות נוספים ב־%s",
- "Contacts" : "אנשי קשר",
- "Upgrade needed" : "נדרש עדכון",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "עליך להגדיר את ה־%s שלך להשתמש ב־HTTPS כדי להשתמש ב־CalDAV וב־CardDAV עם iOS/macOS.",
- "Configures a CalDAV account" : "מגדיר חשבון CalDAV",
- "Configures a CardDAV account" : "מגדיר חשבון CardDAV",
- "Events" : "אירועים",
- "Tasks" : "משימות",
- "Untitled task" : "משימה ללא כותרת",
- "Completed on %s" : "הושלמה ב־%s",
- "Contacts and groups" : "אנשי קשר וקבוצות",
- "WebDAV" : "WebDAV",
- "WebDAV endpoint" : "נקודת קצה WebDAV",
- "to" : "אל",
- "Monday" : "יום שני",
- "Tuesday" : "יום שלישי",
- "Wednesday" : "יום רביעי",
- "Thursday" : "יום חמישי",
- "Friday" : "יום שישי",
- "Saturday" : "יום שבת",
- "Sunday" : "יום ראשון",
- "Save" : "שמירה",
- "Calendar server" : "שרת לוח שנה",
- "Send invitations to attendees" : "שליחת הזמנות למשתתפים",
- "Automatically generate a birthday calendar" : "יצירת יומן ימי הולדת אוטומטית",
- "Birthday calendars will be generated by a background job." : "יומני ימי הולדת ייווצרו על ידי משימה ברקע.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "לכן הם לא יהיה זמינים מיד לאחר ההפעלה אלא הם יופיעו לאחר זמן מה.",
- "Send notifications for events" : "שליחת התראות לאירועים",
- "Notifications are sent via background jobs, so these must occur often enough." : "התראות נשלחות באמצעות משימות רקע, לכן הבדיקה תתבצע יחסית לעתים קרובות.",
- "Enable notifications for events via push" : "הפעלת התראות לאירועים בדחיפה",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "עליך גם להתקין את {calendarappstoreopen}יישומון לוח שנה{linkclose}, או {calendardocopen}לחבר את שולחן העבודה והמכשיר הנייד שלך לסנכרון ↖{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "נא לוודא שהגדרת את {emailopen}שרת הדוא״ל{linkclose} כראוי.",
- "There was an error updating your attendance status." : "אירעה שגיאה בעת עדכון מצב ההשתתפות שלך.",
- "Please contact the organizer directly." : "נא ליצור קשר עם הגוף מארגן ישירות.",
- "Are you accepting the invitation?" : "האם להיענות להזמנה?",
- "Tentative" : "טנטטיבית",
- "Your attendance was updated successfully." : "ההשתתפות שלך עודכנה בהצלחה."
-},
-"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/dav/l10n/he.json b/apps/dav/l10n/he.json
deleted file mode 100644
index 2eebd45a9f5..00000000000
--- a/apps/dav/l10n/he.json
+++ /dev/null
@@ -1,99 +0,0 @@
-{ "translations": {
- "Calendar" : "יומן",
- "Personal" : "אישי",
- "{actor} created calendar {calendar}" : "היומן {calendar} נוצר על ידי {actor}",
- "You created calendar {calendar}" : "מחקת את היומן {calendar}",
- "{actor} deleted calendar {calendar}" : "היומן {calendar} נמחק על ידי {actor}",
- "You deleted calendar {calendar}" : "מחקת את היומן {calendar}",
- "{actor} updated calendar {calendar}" : "היומן {calendar} עודכן על ידי {actor}",
- "You updated calendar {calendar}" : "עדכנת את היומן {calendar}",
- "You shared calendar {calendar} as public link" : "שיתפת את היומן {calendar} כקישור ציבורי",
- "You removed public link for calendar {calendar}" : "הסרת את הקישור הציבורי ליומן {calendar}",
- "{actor} shared calendar {calendar} with you" : "שותף אתך לוח השנה {calendar} על ידי {actor}",
- "You shared calendar {calendar} with {user}" : "שיתפת לוח שנה {calendar} עם {user}",
- "{actor} shared calendar {calendar} with {user}" : "לוח השנה {calendar} שותף על ידי {actor} עם {user}",
- "{actor} unshared calendar {calendar} from you" : "השיתוף של לוח השנה {calendar} אתך הופסק על ידי {actor}",
- "You unshared calendar {calendar} from {user}" : "ביטלת את שיתוף לוח השנה {calendar} עם {user}",
- "{actor} unshared calendar {calendar} from {user}" : "השיתוף של לוח השנה {calendar} עם {user} הופסק על ידי {actor}",
- "{actor} unshared calendar {calendar} from themselves" : "השיתוף של לוח השנה {calendar} עם עצמם הופסק על ידי {actor}",
- "You shared calendar {calendar} with group {group}" : "שיתפת את לוח השנה {calendar} עם הקבוצה {group}",
- "{actor} shared calendar {calendar} with group {group}" : "לוח השנה {calendar} שותף עם הקבוצה {group} על ידי {actor}",
- "You unshared calendar {calendar} from group {group}" : "הפסקת את שיתוף לוח השנה {calendar} עם הקבוצה {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "השיתוף של לוח השנה {calendar} עם {group} הופסק על ידי {actor}",
- "Untitled event" : "אירוע ללא כותרת",
- "{actor} created event {event} in calendar {calendar}" : "האירוע {event} נוצר בלוח השנה {calendar} על ידי {actor}",
- "You created event {event} in calendar {calendar}" : "יצרת אירוע {event} בלוח השנה {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "האירוע {event} נמחק מלוח השנה {calendar} על ידי {actor}",
- "You deleted event {event} from calendar {calendar}" : "מחקת אירוע {event} מלוח השנה {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "האירוע {event} עודכן בלוח השנה {calendar} על ידי {actor}",
- "You updated event {event} in calendar {calendar}" : "עדכנת את האירוע {event} בלוח השנה {calendar}",
- "Busy" : "עסוק",
- "A <strong>calendar</strong> was modified" : " <strong>יומן</strong> נערך",
- "A calendar <strong>event</strong> was modified" : "<strong>אירוע</strong> ביומן נערך",
- "Contact birthdays" : "ימי הולדת של אנשי קשר",
- "Death of %s" : "הפטירה של %s",
- "Untitled calendar" : "לוח שנה ללא כותרת",
- "Calendar:" : "לוח שנה:",
- "Date:" : "תאריך:",
- "Where:" : "איפה:",
- "Description:" : "תיאור:",
- "_%n year_::_%n years_" : ["שנה","שנתיים","%n שנים","%n שנים"],
- "_%n month_::_%n months_" : ["חודש","חודשיים","%n חודשים","%n חודשים"],
- "_%n day_::_%n days_" : ["יום","יומיים","%n ימים","%n ימים"],
- "_%n hour_::_%n hours_" : ["שעה","שעתיים","%n שעות","%n שעות"],
- "_%n minute_::_%n minutes_" : ["דקה","%n דקות","%n דקות","%n דקות"],
- "%s (in %s)" : "%s (בתוך %s)",
- "%s (%s ago)" : "%s (לפני %s)",
- "Calendar: %s" : "לוח שנה: %s",
- "Date: %s" : "תאריך: %s",
- "Description: %s" : "תיאור: %s",
- "Where: %s" : "איפה: %s",
- "%1$s via %2$s" : "%1$s דרך %2$s",
- "Organizer:" : "ארגון:",
- "Attendees:" : "משתתפים:",
- "Title:" : "כותרת:",
- "Time:" : "שעה:",
- "Location:" : "מיקום:",
- "Link:" : "קישור:",
- "Accept" : "קבלה",
- "Decline" : "דחייה",
- "More options …" : "אפשרויות נוספות…",
- "More options at %s" : "אפשרויות נוספים ב־%s",
- "Contacts" : "אנשי קשר",
- "Upgrade needed" : "נדרש עדכון",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "עליך להגדיר את ה־%s שלך להשתמש ב־HTTPS כדי להשתמש ב־CalDAV וב־CardDAV עם iOS/macOS.",
- "Configures a CalDAV account" : "מגדיר חשבון CalDAV",
- "Configures a CardDAV account" : "מגדיר חשבון CardDAV",
- "Events" : "אירועים",
- "Tasks" : "משימות",
- "Untitled task" : "משימה ללא כותרת",
- "Completed on %s" : "הושלמה ב־%s",
- "Contacts and groups" : "אנשי קשר וקבוצות",
- "WebDAV" : "WebDAV",
- "WebDAV endpoint" : "נקודת קצה WebDAV",
- "to" : "אל",
- "Monday" : "יום שני",
- "Tuesday" : "יום שלישי",
- "Wednesday" : "יום רביעי",
- "Thursday" : "יום חמישי",
- "Friday" : "יום שישי",
- "Saturday" : "יום שבת",
- "Sunday" : "יום ראשון",
- "Save" : "שמירה",
- "Calendar server" : "שרת לוח שנה",
- "Send invitations to attendees" : "שליחת הזמנות למשתתפים",
- "Automatically generate a birthday calendar" : "יצירת יומן ימי הולדת אוטומטית",
- "Birthday calendars will be generated by a background job." : "יומני ימי הולדת ייווצרו על ידי משימה ברקע.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "לכן הם לא יהיה זמינים מיד לאחר ההפעלה אלא הם יופיעו לאחר זמן מה.",
- "Send notifications for events" : "שליחת התראות לאירועים",
- "Notifications are sent via background jobs, so these must occur often enough." : "התראות נשלחות באמצעות משימות רקע, לכן הבדיקה תתבצע יחסית לעתים קרובות.",
- "Enable notifications for events via push" : "הפעלת התראות לאירועים בדחיפה",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "עליך גם להתקין את {calendarappstoreopen}יישומון לוח שנה{linkclose}, או {calendardocopen}לחבר את שולחן העבודה והמכשיר הנייד שלך לסנכרון ↖{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "נא לוודא שהגדרת את {emailopen}שרת הדוא״ל{linkclose} כראוי.",
- "There was an error updating your attendance status." : "אירעה שגיאה בעת עדכון מצב ההשתתפות שלך.",
- "Please contact the organizer directly." : "נא ליצור קשר עם הגוף מארגן ישירות.",
- "Are you accepting the invitation?" : "האם להיענות להזמנה?",
- "Tentative" : "טנטטיבית",
- "Your attendance was updated successfully." : "ההשתתפות שלך עודכנה בהצלחה."
-},"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/dav/l10n/hr.js b/apps/dav/l10n/hr.js
deleted file mode 100644
index 0399a414f65..00000000000
--- a/apps/dav/l10n/hr.js
+++ /dev/null
@@ -1,157 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Kalendar",
- "Tasks" : "Zadaci",
- "Personal" : "Osobno",
- "{actor} created calendar {calendar}" : "{actor} je stvorio kalendar {calendar}",
- "You created calendar {calendar}" : "Stvorili ste kalendar {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} je izbrisao kalendar {calendar}",
- "You deleted calendar {calendar}" : "Izbrisali ste kalendar {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} je ažurirao kalendar {calendar}",
- "You updated calendar {calendar}" : "Ažurirali ste kalendar {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} je vratio kalendar {calendar}",
- "You restored calendar {calendar}" : "Vratili ste kalendar {calendar}",
- "You shared calendar {calendar} as public link" : "Podijelili ste kalendar {calendar} putem javne poveznice",
- "You removed public link for calendar {calendar}" : "Uklonili ste javnu poveznicu na kalendar {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} dijeli kalendar {calendar} s vama",
- "You shared calendar {calendar} with {user}" : "Podijelili ste kalendar {calendar} s {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} dijeli kalendar {calendar} s {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} više ne dijeli kalendar {calendar} s vama",
- "You unshared calendar {calendar} from {user}" : "Više ne dijelite kalendar {calendar} s {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} više ne dijeli kalendar {calendar} s {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} više ne dijeli kalendar {calendar} sam sa sobom",
- "You shared calendar {calendar} with group {group}" : "Podijelili ste kalendar {calendar} s grupom {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} dijeli kalendar {calendar} s grupom {group}",
- "You unshared calendar {calendar} from group {group}" : "Više ne dijelite kalendar {calendar} s grupom {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} više ne dijeli kalendar {calendar} s grupom {group}",
- "Untitled event" : "Događaj bez naslova",
- "{actor} created event {event} in calendar {calendar}" : "{actor} je stvorio događaj {event} u kalendaru {calendar}",
- "You created event {event} in calendar {calendar}" : "Stvorili ste događaj {event} u kalendaru {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} je izbrisao događaj {event} iz kalendara {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Izbrisali ste događaj {event} iz kalendara {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} je ažurirao događaj {event} u kalendaru {calendar}",
- "You updated event {event} in calendar {calendar}" : "Ažurirali ste događaj {event} u kalendaru {calendar}",
- "{actor} restored event {event} of calendar {calendar}" : "{actor} je vratio događaj {event} kalendara {calendar}",
- "You restored event {event} of calendar {calendar}" : "Vratili ste događaj {event} kalendara {calendar}",
- "Busy" : "Zauzeto",
- "Calendar, contacts and tasks" : "Kalendar, kontakti i zadaci",
- "A <strong>calendar</strong> was modified" : "Izmijenjen je <strong>kalendar</strong>",
- "A calendar <strong>event</strong> was modified" : "Izmijenjen je <strong>događaj</strong> u kalendaru",
- "Contact birthdays" : "Rođendani kontakata",
- "Death of %s" : "Smrt %s",
- "Untitled calendar" : "Kalendar bez naslova",
- "Calendar:" : "Kalendar:",
- "Date:" : "Datum:",
- "Where:" : "Gdje:",
- "Description:" : "Opis:",
- "_%n year_::_%n years_" : ["%n godina","%n godina","%n godina"],
- "_%n month_::_%n months_" : ["%n mjesec","%n mjeseci","%n mjeseci"],
- "_%n day_::_%n days_" : ["%n dan","%n dana","%n dana"],
- "_%n hour_::_%n hours_" : ["%n sat","%n sati","%n sati"],
- "_%n minute_::_%n minutes_" : ["%n minute/minuta","%n minuta","%n minuta"],
- "%s (in %s)" : "%s (u %s)",
- "%s (%s ago)" : "%s (prije %s)",
- "Calendar: %s" : "Kalendar: %s",
- "Date: %s" : "Datum: %s",
- "Description: %s" : "Opis: %s",
- "Where: %s" : "Gdje: %s",
- "%1$s via %2$s" : "%1$s putem %2$s",
- "Cancelled: %1$s" : "Otkazano: %1$s",
- "Re: %1$s" : "Odgovor: %1 $ s",
- "Invitation: %1$s" : "Pozivnica: %1$s",
- "Organizer:" : "Organizator:",
- "Attendees:" : "Polaznici:",
- "Title:" : "Naslov:",
- "When:" : "Kada:",
- "Location:" : "Lokacija:",
- "Link:" : "Poveznica:",
- "Accept" : "Prihvati",
- "Decline" : "Odbij",
- "More options …" : "Više mogućnosti…",
- "More options at %s" : "Više mogućnosti na %s",
- "Monday" : "Ponedjeljak",
- "Tuesday" : "Utorak",
- "Wednesday" : "Srijeda",
- "Thursday" : "Četvrtak",
- "Friday" : "Petak",
- "Saturday" : "Subota",
- "Sunday" : "Nedjelja",
- "January" : "Siječanj",
- "February" : "Veljača",
- "March" : "Ožujak",
- "April" : "Travanj",
- "May" : "Svibanj",
- "June" : "Lipanj",
- "July" : "Srpanj",
- "August" : "Kolovoz",
- "September" : "Rujan",
- "October" : "Listopad",
- "November" : "Studeni",
- "December" : "Prosinac",
- "First" : "Prvi",
- "Last" : "Zadnji",
- "Contacts" : "Kontakti",
- "{actor} created address book {addressbook}" : "{actor} je stvorio adresar {addressbook}",
- "You created address book {addressbook}" : "Stvorili ste adresar {addressbook}",
- "{actor} deleted address book {addressbook}" : "{actor} je izbrisao adresar {addressbook}",
- "You deleted address book {addressbook}" : "Izbrisali ste adresar {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} je ažurirao adresar {addressbook}",
- "You updated address book {addressbook}" : "Ažurirali ste adresar {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} dijeli adresar {addressbook} s vama",
- "You shared address book {addressbook} with {user}" : "Dijelite adresar {addressbook} s {user}",
- "{actor} shared address book {addressbook} with {user}" : "{actor} dijeli adresar {addressbook} s {user}",
- "{actor} unshared address book {addressbook} from you" : "{actor} je prestao dijeliti adresar {addressbook} s vama",
- "You unshared address book {addressbook} from {user}" : "Prestali ste dijeliti adresar {addressbook} s {user}",
- "{actor} unshared address book {addressbook} from {user}" : "{actor} je prestao dijeliti adresar {addressbook} s {user}",
- "{actor} unshared address book {addressbook} from themselves" : "{actor} je prestao dijeliti adresar {addressbook} sa sobom",
- "You shared address book {addressbook} with group {group}" : "Dijelite adresar {addressbook} s grupom {group}",
- "{actor} shared address book {addressbook} with group {group}" : "{actor} dijeli adresar {addressbook} s grupom {group}",
- "You unshared address book {addressbook} from group {group}" : "Prestali ste dijeliti adresar {addressbook} s grupom {group}",
- "{actor} unshared address book {addressbook} from group {group}" : "{actor} je prestao dijeliti adresar {addressbook} s grupom {group}",
- "{actor} created contact {card} in address book {addressbook}" : "{actor} je stvorio kontakt {card} u adresaru {addressbook}",
- "You created contact {card} in address book {addressbook}" : "Stvorili ste kontakt {card} u adresaru {addressbook}",
- "{actor} deleted contact {card} from address book {addressbook}" : "{actor} je izbrisao kontakt {card} iz adresara {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "Izbrisali ste kontakt {card} iz adresara {addressbook}",
- "{actor} updated contact {card} in address book {addressbook}" : "{actor} je ažurirao kontakt {card} u adresaru {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "Ažurirali ste kontakt {card} u adresaru {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "Izmijenjen je <strong>kontakt</strong> ili <strong>adresar</strong>",
- "Accounts" : "Korisnićki računi",
- "System is in maintenance mode." : "Sustav je u načinu održavanja.",
- "Upgrade needed" : "Potrebno nadograditi",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Vaš %s treba konfigurirati za korištenje HTTPS-a kako bi se mogli upotrebljavati CalDAV i CardDAV s operacijskim sustavom iOS/macOS.",
- "Configures a CalDAV account" : "Konfigurira CalDAV račun",
- "Configures a CardDAV account" : "Konfigurira CardDAV račun",
- "Events" : "Događaji",
- "Untitled task" : "Zadatak bez naslova",
- "Completed on %s" : "Završeno na %s",
- "Due on %s by %s" : "%s treba završiti do %s",
- "Due on %s" : "Treba završiti do %s",
- "WebDAV endpoint" : "WebDAV krajnja točka",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Vaš mrežni poslužitelj nije pravilno podešen za sinkronizaciju podataka jer je sučelje protokola WebDAV neispravno.",
- "Contacts and groups" : "Kontakti i grupe",
- "WebDAV" : "WebDAV",
- "Save" : "Spremi",
- "to" : "do",
- "Delete slot" : "Izbriši mjesto",
- "Add slot" : "Dodaj mjesto",
- "Availability" : "Raspoloživost",
- "Calendar server" : "Poslužitelj kalendara",
- "Send invitations to attendees" : "Pošaljite pozive sudionicima",
- "Automatically generate a birthday calendar" : "Automatski generiraj kalendar rođendana",
- "Birthday calendars will be generated by a background job." : "Kalendari rođendana generirat će se u pozadini.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Stoga neće biti dostupni odmah nakon omogućivanja, ali će se pojaviti nakon nekog vremena.",
- "Send notifications for events" : "Šalji obavijesti o događajima",
- "Notifications are sent via background jobs, so these must occur often enough." : "Obavijesti se šalju putem pozadinskih zadataka koji se moraju dovoljno često izvoditi.",
- "Enable notifications for events via push" : "Omogući slanje obavijesti o događajima putem push obavijesti",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Također instalirajte {calendarappstoreopen}aplikaciju Kalendar{linkclose} ili {calendardocopen}povežite računalo i mobilni uređaj radi sinkroniziranja ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Provjerite jeste li ispravno postavili {emailopen}poslužitelj e-pošte{linkclose}.",
- "There was an error updating your attendance status." : "Došlo je do pogreške prilikom ažuriranja statusa prisutnosti.",
- "Please contact the organizer directly." : "Izravno se obratite organizatoru.",
- "Are you accepting the invitation?" : "Prihvaćate li poziv?",
- "Tentative" : "Uvjetno",
- "Your attendance was updated successfully." : "Vaša je prisutnost uspješno ažurirana.",
- "Time:" : "Vrijeme:",
- "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Ako konfigurirate svoje radno vrijeme, drugi korisnici moći će vidjeti jeste li izvan ureda kada rezerviraju sastanak."
-},
-"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/dav/l10n/hr.json b/apps/dav/l10n/hr.json
deleted file mode 100644
index a3b41038c8c..00000000000
--- a/apps/dav/l10n/hr.json
+++ /dev/null
@@ -1,155 +0,0 @@
-{ "translations": {
- "Calendar" : "Kalendar",
- "Tasks" : "Zadaci",
- "Personal" : "Osobno",
- "{actor} created calendar {calendar}" : "{actor} je stvorio kalendar {calendar}",
- "You created calendar {calendar}" : "Stvorili ste kalendar {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} je izbrisao kalendar {calendar}",
- "You deleted calendar {calendar}" : "Izbrisali ste kalendar {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} je ažurirao kalendar {calendar}",
- "You updated calendar {calendar}" : "Ažurirali ste kalendar {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} je vratio kalendar {calendar}",
- "You restored calendar {calendar}" : "Vratili ste kalendar {calendar}",
- "You shared calendar {calendar} as public link" : "Podijelili ste kalendar {calendar} putem javne poveznice",
- "You removed public link for calendar {calendar}" : "Uklonili ste javnu poveznicu na kalendar {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} dijeli kalendar {calendar} s vama",
- "You shared calendar {calendar} with {user}" : "Podijelili ste kalendar {calendar} s {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} dijeli kalendar {calendar} s {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} više ne dijeli kalendar {calendar} s vama",
- "You unshared calendar {calendar} from {user}" : "Više ne dijelite kalendar {calendar} s {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} više ne dijeli kalendar {calendar} s {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} više ne dijeli kalendar {calendar} sam sa sobom",
- "You shared calendar {calendar} with group {group}" : "Podijelili ste kalendar {calendar} s grupom {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} dijeli kalendar {calendar} s grupom {group}",
- "You unshared calendar {calendar} from group {group}" : "Više ne dijelite kalendar {calendar} s grupom {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} više ne dijeli kalendar {calendar} s grupom {group}",
- "Untitled event" : "Događaj bez naslova",
- "{actor} created event {event} in calendar {calendar}" : "{actor} je stvorio događaj {event} u kalendaru {calendar}",
- "You created event {event} in calendar {calendar}" : "Stvorili ste događaj {event} u kalendaru {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} je izbrisao događaj {event} iz kalendara {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Izbrisali ste događaj {event} iz kalendara {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} je ažurirao događaj {event} u kalendaru {calendar}",
- "You updated event {event} in calendar {calendar}" : "Ažurirali ste događaj {event} u kalendaru {calendar}",
- "{actor} restored event {event} of calendar {calendar}" : "{actor} je vratio događaj {event} kalendara {calendar}",
- "You restored event {event} of calendar {calendar}" : "Vratili ste događaj {event} kalendara {calendar}",
- "Busy" : "Zauzeto",
- "Calendar, contacts and tasks" : "Kalendar, kontakti i zadaci",
- "A <strong>calendar</strong> was modified" : "Izmijenjen je <strong>kalendar</strong>",
- "A calendar <strong>event</strong> was modified" : "Izmijenjen je <strong>događaj</strong> u kalendaru",
- "Contact birthdays" : "Rođendani kontakata",
- "Death of %s" : "Smrt %s",
- "Untitled calendar" : "Kalendar bez naslova",
- "Calendar:" : "Kalendar:",
- "Date:" : "Datum:",
- "Where:" : "Gdje:",
- "Description:" : "Opis:",
- "_%n year_::_%n years_" : ["%n godina","%n godina","%n godina"],
- "_%n month_::_%n months_" : ["%n mjesec","%n mjeseci","%n mjeseci"],
- "_%n day_::_%n days_" : ["%n dan","%n dana","%n dana"],
- "_%n hour_::_%n hours_" : ["%n sat","%n sati","%n sati"],
- "_%n minute_::_%n minutes_" : ["%n minute/minuta","%n minuta","%n minuta"],
- "%s (in %s)" : "%s (u %s)",
- "%s (%s ago)" : "%s (prije %s)",
- "Calendar: %s" : "Kalendar: %s",
- "Date: %s" : "Datum: %s",
- "Description: %s" : "Opis: %s",
- "Where: %s" : "Gdje: %s",
- "%1$s via %2$s" : "%1$s putem %2$s",
- "Cancelled: %1$s" : "Otkazano: %1$s",
- "Re: %1$s" : "Odgovor: %1 $ s",
- "Invitation: %1$s" : "Pozivnica: %1$s",
- "Organizer:" : "Organizator:",
- "Attendees:" : "Polaznici:",
- "Title:" : "Naslov:",
- "When:" : "Kada:",
- "Location:" : "Lokacija:",
- "Link:" : "Poveznica:",
- "Accept" : "Prihvati",
- "Decline" : "Odbij",
- "More options …" : "Više mogućnosti…",
- "More options at %s" : "Više mogućnosti na %s",
- "Monday" : "Ponedjeljak",
- "Tuesday" : "Utorak",
- "Wednesday" : "Srijeda",
- "Thursday" : "Četvrtak",
- "Friday" : "Petak",
- "Saturday" : "Subota",
- "Sunday" : "Nedjelja",
- "January" : "Siječanj",
- "February" : "Veljača",
- "March" : "Ožujak",
- "April" : "Travanj",
- "May" : "Svibanj",
- "June" : "Lipanj",
- "July" : "Srpanj",
- "August" : "Kolovoz",
- "September" : "Rujan",
- "October" : "Listopad",
- "November" : "Studeni",
- "December" : "Prosinac",
- "First" : "Prvi",
- "Last" : "Zadnji",
- "Contacts" : "Kontakti",
- "{actor} created address book {addressbook}" : "{actor} je stvorio adresar {addressbook}",
- "You created address book {addressbook}" : "Stvorili ste adresar {addressbook}",
- "{actor} deleted address book {addressbook}" : "{actor} je izbrisao adresar {addressbook}",
- "You deleted address book {addressbook}" : "Izbrisali ste adresar {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} je ažurirao adresar {addressbook}",
- "You updated address book {addressbook}" : "Ažurirali ste adresar {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} dijeli adresar {addressbook} s vama",
- "You shared address book {addressbook} with {user}" : "Dijelite adresar {addressbook} s {user}",
- "{actor} shared address book {addressbook} with {user}" : "{actor} dijeli adresar {addressbook} s {user}",
- "{actor} unshared address book {addressbook} from you" : "{actor} je prestao dijeliti adresar {addressbook} s vama",
- "You unshared address book {addressbook} from {user}" : "Prestali ste dijeliti adresar {addressbook} s {user}",
- "{actor} unshared address book {addressbook} from {user}" : "{actor} je prestao dijeliti adresar {addressbook} s {user}",
- "{actor} unshared address book {addressbook} from themselves" : "{actor} je prestao dijeliti adresar {addressbook} sa sobom",
- "You shared address book {addressbook} with group {group}" : "Dijelite adresar {addressbook} s grupom {group}",
- "{actor} shared address book {addressbook} with group {group}" : "{actor} dijeli adresar {addressbook} s grupom {group}",
- "You unshared address book {addressbook} from group {group}" : "Prestali ste dijeliti adresar {addressbook} s grupom {group}",
- "{actor} unshared address book {addressbook} from group {group}" : "{actor} je prestao dijeliti adresar {addressbook} s grupom {group}",
- "{actor} created contact {card} in address book {addressbook}" : "{actor} je stvorio kontakt {card} u adresaru {addressbook}",
- "You created contact {card} in address book {addressbook}" : "Stvorili ste kontakt {card} u adresaru {addressbook}",
- "{actor} deleted contact {card} from address book {addressbook}" : "{actor} je izbrisao kontakt {card} iz adresara {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "Izbrisali ste kontakt {card} iz adresara {addressbook}",
- "{actor} updated contact {card} in address book {addressbook}" : "{actor} je ažurirao kontakt {card} u adresaru {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "Ažurirali ste kontakt {card} u adresaru {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "Izmijenjen je <strong>kontakt</strong> ili <strong>adresar</strong>",
- "Accounts" : "Korisnićki računi",
- "System is in maintenance mode." : "Sustav je u načinu održavanja.",
- "Upgrade needed" : "Potrebno nadograditi",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Vaš %s treba konfigurirati za korištenje HTTPS-a kako bi se mogli upotrebljavati CalDAV i CardDAV s operacijskim sustavom iOS/macOS.",
- "Configures a CalDAV account" : "Konfigurira CalDAV račun",
- "Configures a CardDAV account" : "Konfigurira CardDAV račun",
- "Events" : "Događaji",
- "Untitled task" : "Zadatak bez naslova",
- "Completed on %s" : "Završeno na %s",
- "Due on %s by %s" : "%s treba završiti do %s",
- "Due on %s" : "Treba završiti do %s",
- "WebDAV endpoint" : "WebDAV krajnja točka",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Vaš mrežni poslužitelj nije pravilno podešen za sinkronizaciju podataka jer je sučelje protokola WebDAV neispravno.",
- "Contacts and groups" : "Kontakti i grupe",
- "WebDAV" : "WebDAV",
- "Save" : "Spremi",
- "to" : "do",
- "Delete slot" : "Izbriši mjesto",
- "Add slot" : "Dodaj mjesto",
- "Availability" : "Raspoloživost",
- "Calendar server" : "Poslužitelj kalendara",
- "Send invitations to attendees" : "Pošaljite pozive sudionicima",
- "Automatically generate a birthday calendar" : "Automatski generiraj kalendar rođendana",
- "Birthday calendars will be generated by a background job." : "Kalendari rođendana generirat će se u pozadini.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Stoga neće biti dostupni odmah nakon omogućivanja, ali će se pojaviti nakon nekog vremena.",
- "Send notifications for events" : "Šalji obavijesti o događajima",
- "Notifications are sent via background jobs, so these must occur often enough." : "Obavijesti se šalju putem pozadinskih zadataka koji se moraju dovoljno često izvoditi.",
- "Enable notifications for events via push" : "Omogući slanje obavijesti o događajima putem push obavijesti",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Također instalirajte {calendarappstoreopen}aplikaciju Kalendar{linkclose} ili {calendardocopen}povežite računalo i mobilni uređaj radi sinkroniziranja ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Provjerite jeste li ispravno postavili {emailopen}poslužitelj e-pošte{linkclose}.",
- "There was an error updating your attendance status." : "Došlo je do pogreške prilikom ažuriranja statusa prisutnosti.",
- "Please contact the organizer directly." : "Izravno se obratite organizatoru.",
- "Are you accepting the invitation?" : "Prihvaćate li poziv?",
- "Tentative" : "Uvjetno",
- "Your attendance was updated successfully." : "Vaša je prisutnost uspješno ažurirana.",
- "Time:" : "Vrijeme:",
- "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "Ako konfigurirate svoje radno vrijeme, drugi korisnici moći će vidjeti jeste li izvan ureda kada rezerviraju sastanak."
-},"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/dav/l10n/hu.js b/apps/dav/l10n/hu.js
index 94101573c66..d45c4d340dd 100644
--- a/apps/dav/l10n/hu.js
+++ b/apps/dav/l10n/hu.js
@@ -223,8 +223,8 @@ OC.L10N.register(
"Absence cleared" : "Távollét törölve",
"Failed to clear your absence settings" : "Nem sikerült a távolléti beállítások törlése",
"First day" : "Első nap",
- "Last day (inclusive)" : "Utols nap (beleértve)",
- "Out of office replacement (optional)" : "Távolléti helyettesítő (opcionális)",
+ "Last day (inclusive)" : "Utolsó nap (beleértve)",
+ "Out of office replacement (optional)" : "Távolléti helyettesítő (nem kötelező)",
"Name of the replacement" : "Helyettesítő neve",
"No results." : "Nincs eredmény.",
"Start typing." : "Kezdjen gépelni.",
@@ -244,6 +244,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Válassz kezdő dátumot a {dayName}-hoz",
"Pick a end time for {dayName}" : "Válassz vége dátumot a {dayName}-hoz",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Az elérhetőségi időn túl, a felhasználói állapot automatikus beállítása „Ne zavarjanak” módba az összes értesítés némításához.",
+ "Cancel" : "Mégse",
+ "Import" : "Importálás",
+ "Error while saving settings" : "Hiba a beállítások mentése során",
+ "Reset to default" : "Visszaállítás alapértelmezettre",
"Availability" : "Elérhetőség",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ha beállítja a munkaidejét, akkor más emberek a megbeszélések létrehozásakor látni fogják, hogy Ön mikor nem érhető el.",
"Absence" : "Távollét",
@@ -260,17 +264,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Emlékeztető értesítések küldése azoknak is, akikkel a naptár meg van osztva",
"Reminders are always sent to organizers and attendees." : "Az értesítések mindig a szervezőknek és a résztvevőknek lesznek elküldve.",
"Enable notifications for events via push" : "Leküldéses értesítések engedélyezése az eseményekhez",
- "Cancel" : "Mégse",
- "Import" : "Importálás",
- "Error while saving settings" : "Hiba a beállítások mentése során",
"There was an error updating your attendance status." : "Hiba történt a részvételi állapotának frissítése során.",
"Please contact the organizer directly." : "Vegye fel a kapcsolatot közvetlenül a szervezővel.",
"Are you accepting the invitation?" : "Elfogadja az meghívást?",
"Tentative" : "Feltételes",
- "Your attendance was updated successfully." : "A részvétele frissítése sikeres.",
- "Time:" : "Idő:",
- "Could not open file" : "A fájl nem nyitható meg",
- "Invalid chunk name" : "Érvénytelen darabnév",
- "Could not rename part file assembled from chunks" : "Nem lehet átnevezni a darabokból összeállított részleges fájlt"
+ "Your attendance was updated successfully." : "A részvétele frissítése sikeres."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/hu.json b/apps/dav/l10n/hu.json
index 9b396cb9271..2e623866c60 100644
--- a/apps/dav/l10n/hu.json
+++ b/apps/dav/l10n/hu.json
@@ -221,8 +221,8 @@
"Absence cleared" : "Távollét törölve",
"Failed to clear your absence settings" : "Nem sikerült a távolléti beállítások törlése",
"First day" : "Első nap",
- "Last day (inclusive)" : "Utols nap (beleértve)",
- "Out of office replacement (optional)" : "Távolléti helyettesítő (opcionális)",
+ "Last day (inclusive)" : "Utolsó nap (beleértve)",
+ "Out of office replacement (optional)" : "Távolléti helyettesítő (nem kötelező)",
"Name of the replacement" : "Helyettesítő neve",
"No results." : "Nincs eredmény.",
"Start typing." : "Kezdjen gépelni.",
@@ -242,6 +242,10 @@
"Pick a start time for {dayName}" : "Válassz kezdő dátumot a {dayName}-hoz",
"Pick a end time for {dayName}" : "Válassz vége dátumot a {dayName}-hoz",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Az elérhetőségi időn túl, a felhasználói állapot automatikus beállítása „Ne zavarjanak” módba az összes értesítés némításához.",
+ "Cancel" : "Mégse",
+ "Import" : "Importálás",
+ "Error while saving settings" : "Hiba a beállítások mentése során",
+ "Reset to default" : "Visszaállítás alapértelmezettre",
"Availability" : "Elérhetőség",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ha beállítja a munkaidejét, akkor más emberek a megbeszélések létrehozásakor látni fogják, hogy Ön mikor nem érhető el.",
"Absence" : "Távollét",
@@ -258,17 +262,10 @@
"Send reminder notifications to calendar sharees as well" : "Emlékeztető értesítések küldése azoknak is, akikkel a naptár meg van osztva",
"Reminders are always sent to organizers and attendees." : "Az értesítések mindig a szervezőknek és a résztvevőknek lesznek elküldve.",
"Enable notifications for events via push" : "Leküldéses értesítések engedélyezése az eseményekhez",
- "Cancel" : "Mégse",
- "Import" : "Importálás",
- "Error while saving settings" : "Hiba a beállítások mentése során",
"There was an error updating your attendance status." : "Hiba történt a részvételi állapotának frissítése során.",
"Please contact the organizer directly." : "Vegye fel a kapcsolatot közvetlenül a szervezővel.",
"Are you accepting the invitation?" : "Elfogadja az meghívást?",
"Tentative" : "Feltételes",
- "Your attendance was updated successfully." : "A részvétele frissítése sikeres.",
- "Time:" : "Idő:",
- "Could not open file" : "A fájl nem nyitható meg",
- "Invalid chunk name" : "Érvénytelen darabnév",
- "Could not rename part file assembled from chunks" : "Nem lehet átnevezni a darabokból összeállított részleges fájlt"
+ "Your attendance was updated successfully." : "A részvétele frissítése sikeres."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/id.js b/apps/dav/l10n/id.js
deleted file mode 100644
index 0ab333b580f..00000000000
--- a/apps/dav/l10n/id.js
+++ /dev/null
@@ -1,11 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Contact birthdays" : "Ulang tahun kontak",
- "Personal" : "Pribadi",
- "Contacts" : "Kontak",
- "Technical details" : "Rincian teknis",
- "Remote Address: %s" : "Alamat remote: %s",
- "Request ID: %s" : "ID Permintaan: %s"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/id.json b/apps/dav/l10n/id.json
deleted file mode 100644
index 44280c8125b..00000000000
--- a/apps/dav/l10n/id.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "translations": {
- "Contact birthdays" : "Ulang tahun kontak",
- "Personal" : "Pribadi",
- "Contacts" : "Kontak",
- "Technical details" : "Rincian teknis",
- "Remote Address: %s" : "Alamat remote: %s",
- "Request ID: %s" : "ID Permintaan: %s"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/is.js b/apps/dav/l10n/is.js
index 6a704e34114..80eb90d83db 100644
--- a/apps/dav/l10n/is.js
+++ b/apps/dav/l10n/is.js
@@ -287,6 +287,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Veldu upphafstíma fyrir {dayName}",
"Pick a end time for {dayName}" : "Veldu lokatíma fyrir {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setja stöðu notenda sjálfkrafa á \"Ekki ónáða\" utan þess lausa tíma sem viðkomandi er tiltækur, til að þagga niður í öllum tilkynningum.",
+ "Cancel" : "Hætta við",
+ "Import" : "Flytja inn",
+ "Error while saving settings" : "Villa við að vista stillingar",
+ "Reset to default" : "Endurstilla á sjálfgefið",
"Availability" : "Aðgengileiki",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ef þú stillir vinnutímana þína, geta aðrir séð hvenær þú sért fjarverandi þegar þeir bóka fundi með þér.",
"Absence" : "Fjarverandi",
@@ -303,17 +307,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Senda einnig tilkynningar til þeirra sem deila dagatalinu",
"Reminders are always sent to organizers and attendees." : "Áminningar eru alltaf sendar til skipuleggjenda og þátttakenda.",
"Enable notifications for events via push" : "Senda tilkynningar fyrir atburði sem ýtitilkynningar",
- "Cancel" : "Hætta við",
- "Import" : "Flytja inn",
- "Error while saving settings" : "Villa við að vista stillingar",
"There was an error updating your attendance status." : "Það kom upp villa við að uppfæra mætingarstöðu þína.",
"Please contact the organizer directly." : "Hafðu samband beint við skipuleggjendurna.",
"Are you accepting the invitation?" : "Ætlar þú að samþykkja boðið?",
"Tentative" : "Bráðabirgða",
- "Your attendance was updated successfully." : "Mætingarstaða þín var uppfærð.",
- "Time:" : "Tími:",
- "Could not open file" : "Gat ekki opnað skrá",
- "Invalid chunk name" : "Ógilt heiti á bút",
- "Could not rename part file assembled from chunks" : "Ekki var hægt að endurnefna hlutaskrá setta saman úr bútum"
+ "Your attendance was updated successfully." : "Mætingarstaða þín var uppfærð."
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/dav/l10n/is.json b/apps/dav/l10n/is.json
index 9fc9d6906d0..a89ef260f36 100644
--- a/apps/dav/l10n/is.json
+++ b/apps/dav/l10n/is.json
@@ -285,6 +285,10 @@
"Pick a start time for {dayName}" : "Veldu upphafstíma fyrir {dayName}",
"Pick a end time for {dayName}" : "Veldu lokatíma fyrir {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Setja stöðu notenda sjálfkrafa á \"Ekki ónáða\" utan þess lausa tíma sem viðkomandi er tiltækur, til að þagga niður í öllum tilkynningum.",
+ "Cancel" : "Hætta við",
+ "Import" : "Flytja inn",
+ "Error while saving settings" : "Villa við að vista stillingar",
+ "Reset to default" : "Endurstilla á sjálfgefið",
"Availability" : "Aðgengileiki",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ef þú stillir vinnutímana þína, geta aðrir séð hvenær þú sért fjarverandi þegar þeir bóka fundi með þér.",
"Absence" : "Fjarverandi",
@@ -301,17 +305,10 @@
"Send reminder notifications to calendar sharees as well" : "Senda einnig tilkynningar til þeirra sem deila dagatalinu",
"Reminders are always sent to organizers and attendees." : "Áminningar eru alltaf sendar til skipuleggjenda og þátttakenda.",
"Enable notifications for events via push" : "Senda tilkynningar fyrir atburði sem ýtitilkynningar",
- "Cancel" : "Hætta við",
- "Import" : "Flytja inn",
- "Error while saving settings" : "Villa við að vista stillingar",
"There was an error updating your attendance status." : "Það kom upp villa við að uppfæra mætingarstöðu þína.",
"Please contact the organizer directly." : "Hafðu samband beint við skipuleggjendurna.",
"Are you accepting the invitation?" : "Ætlar þú að samþykkja boðið?",
"Tentative" : "Bráðabirgða",
- "Your attendance was updated successfully." : "Mætingarstaða þín var uppfærð.",
- "Time:" : "Tími:",
- "Could not open file" : "Gat ekki opnað skrá",
- "Invalid chunk name" : "Ógilt heiti á bút",
- "Could not rename part file assembled from chunks" : "Ekki var hægt að endurnefna hlutaskrá setta saman úr bútum"
+ "Your attendance was updated successfully." : "Mætingarstaða þín var uppfærð."
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/it.js b/apps/dav/l10n/it.js
index 644b25092fc..f441b42c3d8 100644
--- a/apps/dav/l10n/it.js
+++ b/apps/dav/l10n/it.js
@@ -207,6 +207,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Scegli un orario di inizio per {dayName}",
"Pick a end time for {dayName}" : "Scegli un orario di fine per {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Imposta automaticamente lo stato dell'utente su \"Non disturbare\" al di fuori della disponibilità per disattivare tutte le notifiche.",
+ "Cancel" : "Annulla",
+ "Import" : "Importa",
+ "Error while saving settings" : "Errore durante il salvataggio delle impostazioni",
+ "Reset to default" : "Ripristina valori predefiniti",
"Availability" : "Disponibilità",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se imposti il tuo orario di lavoro, le altre persone potranno vedere quando non sei in ufficio per organizzare una riunione.",
"Absence" : "Assenza",
@@ -223,17 +227,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Invia notifiche di promemoria anche ai partecipanti al calendario",
"Reminders are always sent to organizers and attendees." : "I promemoria vengono sempre inviati agli organizzatori e ai partecipanti.",
"Enable notifications for events via push" : "Abilita notifiche per eventi tramite push",
- "Cancel" : "Annulla",
- "Import" : "Importa",
- "Error while saving settings" : "Errore durante il salvataggio delle impostazioni",
"There was an error updating your attendance status." : "Si è verificato un errore durante l'aggiornamento dello stato della tua partecipazione.",
"Please contact the organizer directly." : "Contatta direttamente l'amministratore.",
"Are you accepting the invitation?" : "Accetti l'invito?",
"Tentative" : "Provvisorio",
- "Your attendance was updated successfully." : "La tua partecipazione è stata aggiornata correttamente.",
- "Time:" : "Ora:",
- "Could not open file" : "Impossibile aprire il file",
- "Invalid chunk name" : "Nome non valido per lo spezzone",
- "Could not rename part file assembled from chunks" : "Non è possibile rinominare il file assemblato da più spezzoni"
+ "Your attendance was updated successfully." : "La tua partecipazione è stata aggiornata correttamente."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/it.json b/apps/dav/l10n/it.json
index 7b41fafebbf..035866d3115 100644
--- a/apps/dav/l10n/it.json
+++ b/apps/dav/l10n/it.json
@@ -205,6 +205,10 @@
"Pick a start time for {dayName}" : "Scegli un orario di inizio per {dayName}",
"Pick a end time for {dayName}" : "Scegli un orario di fine per {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Imposta automaticamente lo stato dell'utente su \"Non disturbare\" al di fuori della disponibilità per disattivare tutte le notifiche.",
+ "Cancel" : "Annulla",
+ "Import" : "Importa",
+ "Error while saving settings" : "Errore durante il salvataggio delle impostazioni",
+ "Reset to default" : "Ripristina valori predefiniti",
"Availability" : "Disponibilità",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se imposti il tuo orario di lavoro, le altre persone potranno vedere quando non sei in ufficio per organizzare una riunione.",
"Absence" : "Assenza",
@@ -221,17 +225,10 @@
"Send reminder notifications to calendar sharees as well" : "Invia notifiche di promemoria anche ai partecipanti al calendario",
"Reminders are always sent to organizers and attendees." : "I promemoria vengono sempre inviati agli organizzatori e ai partecipanti.",
"Enable notifications for events via push" : "Abilita notifiche per eventi tramite push",
- "Cancel" : "Annulla",
- "Import" : "Importa",
- "Error while saving settings" : "Errore durante il salvataggio delle impostazioni",
"There was an error updating your attendance status." : "Si è verificato un errore durante l'aggiornamento dello stato della tua partecipazione.",
"Please contact the organizer directly." : "Contatta direttamente l'amministratore.",
"Are you accepting the invitation?" : "Accetti l'invito?",
"Tentative" : "Provvisorio",
- "Your attendance was updated successfully." : "La tua partecipazione è stata aggiornata correttamente.",
- "Time:" : "Ora:",
- "Could not open file" : "Impossibile aprire il file",
- "Invalid chunk name" : "Nome non valido per lo spezzone",
- "Could not rename part file assembled from chunks" : "Non è possibile rinominare il file assemblato da più spezzoni"
+ "Your attendance was updated successfully." : "La tua partecipazione è stata aggiornata correttamente."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ja.js b/apps/dav/l10n/ja.js
index 2aad56b6ee6..6a6753c1d35 100644
--- a/apps/dav/l10n/ja.js
+++ b/apps/dav/l10n/ja.js
@@ -290,6 +290,17 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "{dayName} 開始時間を指定してください",
"Pick a end time for {dayName}" : "{dayName} の終了時間を指定してください",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "利用時間外は自動的にユーザーステータスを\"非通知\" に設定し、すべての通知をミュートします。",
+ "Cancel" : "キャンセル",
+ "Import" : "インポート",
+ "Error while saving settings" : "設定の保存中にエラーが発生",
+ "Contact reset successfully" : "連絡先のリセットが正常に完了しました",
+ "Error while resetting contact" : "連絡先のリセット中にエラーが発生しました",
+ "Contact imported successfully" : "連絡先のインポートが正常に完了しました",
+ "Error while importing contact" : "連絡先のインポート中にエラーが発生しました",
+ "Import contact" : "連絡先のインポート",
+ "Reset to default" : "デフォルトに戻す",
+ "Import contacts" : "連絡先のインポート",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "新しい .vcf ファイルをインポートすると、既存のデフォルト連絡先が削除され、新しいものに置き換えられます。続行しますか?",
"Availability" : "応対可能日時",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "勤務時間を設定すると、他のユーザが会議を予約する際に、あなたがいつ不在であるかがわかります。",
"Absence" : "不在",
@@ -306,27 +317,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "カレンダー共有にもリマインダー通知を送信する",
"Reminders are always sent to organizers and attendees." : "リマインダーを常に作成者と出席者に送信します。",
"Enable notifications for events via push" : "イベントのプッシュ通知を有効にする",
- "Cancel" : "キャンセル",
- "Import" : "インポート",
- "Error while saving settings" : "設定の保存中にエラーが発生",
- "Contact reset successfully" : "連絡先のリセットが正常に完了しました",
- "Error while resetting contact" : "連絡先のリセット中にエラーが発生しました",
- "Contact imported successfully" : "連絡先のインポートが正常に完了しました",
- "Error while importing contact" : "連絡先のインポート中にエラーが発生しました",
- "Example Content" : "サンプルコンテンツ",
- "Set example content to be created on new user first login." : "新規ユーザの初回ログイン時に作成されるサンプルコンテンツを設定します。",
- "Import contact" : "連絡先のインポート",
- "Reset to default contact" : "デフォルトの連絡先にリセットする",
- "Import contacts" : "連絡先のインポート",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "新しい .vcf ファイルをインポートすると、既存のデフォルト連絡先が削除され、新しいものに置き換えられます。続行しますか?",
"There was an error updating your attendance status." : "出席状況の更新中にエラーが発生しました。",
"Please contact the organizer directly." : "主催者に直接お問い合わせください。",
"Are you accepting the invitation?" : "招待を受け入れていますか?",
"Tentative" : "暫定的",
- "Your attendance was updated successfully." : "出席は正常に更新されました。",
- "Time:" : "時刻:",
- "Could not open file" : "ファイルを開くことができませんでした",
- "Invalid chunk name" : "無効なチャンク名",
- "Could not rename part file assembled from chunks" : "チャンクから構成されている部分ファイルの名前の変更ができませんでした"
+ "Your attendance was updated successfully." : "出席は正常に更新されました。"
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/ja.json b/apps/dav/l10n/ja.json
index 63d3df52c36..fdefc04c4c7 100644
--- a/apps/dav/l10n/ja.json
+++ b/apps/dav/l10n/ja.json
@@ -288,6 +288,17 @@
"Pick a start time for {dayName}" : "{dayName} 開始時間を指定してください",
"Pick a end time for {dayName}" : "{dayName} の終了時間を指定してください",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "利用時間外は自動的にユーザーステータスを\"非通知\" に設定し、すべての通知をミュートします。",
+ "Cancel" : "キャンセル",
+ "Import" : "インポート",
+ "Error while saving settings" : "設定の保存中にエラーが発生",
+ "Contact reset successfully" : "連絡先のリセットが正常に完了しました",
+ "Error while resetting contact" : "連絡先のリセット中にエラーが発生しました",
+ "Contact imported successfully" : "連絡先のインポートが正常に完了しました",
+ "Error while importing contact" : "連絡先のインポート中にエラーが発生しました",
+ "Import contact" : "連絡先のインポート",
+ "Reset to default" : "デフォルトに戻す",
+ "Import contacts" : "連絡先のインポート",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "新しい .vcf ファイルをインポートすると、既存のデフォルト連絡先が削除され、新しいものに置き換えられます。続行しますか?",
"Availability" : "応対可能日時",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "勤務時間を設定すると、他のユーザが会議を予約する際に、あなたがいつ不在であるかがわかります。",
"Absence" : "不在",
@@ -304,27 +315,10 @@
"Send reminder notifications to calendar sharees as well" : "カレンダー共有にもリマインダー通知を送信する",
"Reminders are always sent to organizers and attendees." : "リマインダーを常に作成者と出席者に送信します。",
"Enable notifications for events via push" : "イベントのプッシュ通知を有効にする",
- "Cancel" : "キャンセル",
- "Import" : "インポート",
- "Error while saving settings" : "設定の保存中にエラーが発生",
- "Contact reset successfully" : "連絡先のリセットが正常に完了しました",
- "Error while resetting contact" : "連絡先のリセット中にエラーが発生しました",
- "Contact imported successfully" : "連絡先のインポートが正常に完了しました",
- "Error while importing contact" : "連絡先のインポート中にエラーが発生しました",
- "Example Content" : "サンプルコンテンツ",
- "Set example content to be created on new user first login." : "新規ユーザの初回ログイン時に作成されるサンプルコンテンツを設定します。",
- "Import contact" : "連絡先のインポート",
- "Reset to default contact" : "デフォルトの連絡先にリセットする",
- "Import contacts" : "連絡先のインポート",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "新しい .vcf ファイルをインポートすると、既存のデフォルト連絡先が削除され、新しいものに置き換えられます。続行しますか?",
"There was an error updating your attendance status." : "出席状況の更新中にエラーが発生しました。",
"Please contact the organizer directly." : "主催者に直接お問い合わせください。",
"Are you accepting the invitation?" : "招待を受け入れていますか?",
"Tentative" : "暫定的",
- "Your attendance was updated successfully." : "出席は正常に更新されました。",
- "Time:" : "時刻:",
- "Could not open file" : "ファイルを開くことができませんでした",
- "Invalid chunk name" : "無効なチャンク名",
- "Could not rename part file assembled from chunks" : "チャンクから構成されている部分ファイルの名前の変更ができませんでした"
+ "Your attendance was updated successfully." : "出席は正常に更新されました。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ka.js b/apps/dav/l10n/ka.js
index a390102d876..682a8e1d254 100644
--- a/apps/dav/l10n/ka.js
+++ b/apps/dav/l10n/ka.js
@@ -192,6 +192,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Pick a start time for {dayName}",
"Pick a end time for {dayName}" : "Pick a end time for {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.",
+ "Cancel" : "Cancel",
+ "Import" : "Import",
+ "Error while saving settings" : "Error while saving settings",
+ "Reset to default" : "Reset to default",
"Availability" : "Availability",
"Absence" : "Absence",
"Configure your next absence period." : "Configure your next absence period.",
@@ -207,17 +211,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Send reminder notifications to calendar sharees as well",
"Reminders are always sent to organizers and attendees." : "Reminders are always sent to organizers and attendees.",
"Enable notifications for events via push" : "Enable notifications for events via push",
- "Cancel" : "Cancel",
- "Import" : "Import",
- "Error while saving settings" : "Error while saving settings",
"There was an error updating your attendance status." : "There was an error updating your attendance status.",
"Please contact the organizer directly." : "Please contact the organizer directly.",
"Are you accepting the invitation?" : "Are you accepting the invitation?",
"Tentative" : "Tentative",
- "Your attendance was updated successfully." : "Your attendance was updated successfully.",
- "Time:" : "Time:",
- "Could not open file" : "Could not open file",
- "Invalid chunk name" : "Invalid chunk name",
- "Could not rename part file assembled from chunks" : "Could not rename part file assembled from chunks"
+ "Your attendance was updated successfully." : "Your attendance was updated successfully."
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/dav/l10n/ka.json b/apps/dav/l10n/ka.json
index 5738b8b4fb8..3685b1a2173 100644
--- a/apps/dav/l10n/ka.json
+++ b/apps/dav/l10n/ka.json
@@ -190,6 +190,10 @@
"Pick a start time for {dayName}" : "Pick a start time for {dayName}",
"Pick a end time for {dayName}" : "Pick a end time for {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.",
+ "Cancel" : "Cancel",
+ "Import" : "Import",
+ "Error while saving settings" : "Error while saving settings",
+ "Reset to default" : "Reset to default",
"Availability" : "Availability",
"Absence" : "Absence",
"Configure your next absence period." : "Configure your next absence period.",
@@ -205,17 +209,10 @@
"Send reminder notifications to calendar sharees as well" : "Send reminder notifications to calendar sharees as well",
"Reminders are always sent to organizers and attendees." : "Reminders are always sent to organizers and attendees.",
"Enable notifications for events via push" : "Enable notifications for events via push",
- "Cancel" : "Cancel",
- "Import" : "Import",
- "Error while saving settings" : "Error while saving settings",
"There was an error updating your attendance status." : "There was an error updating your attendance status.",
"Please contact the organizer directly." : "Please contact the organizer directly.",
"Are you accepting the invitation?" : "Are you accepting the invitation?",
"Tentative" : "Tentative",
- "Your attendance was updated successfully." : "Your attendance was updated successfully.",
- "Time:" : "Time:",
- "Could not open file" : "Could not open file",
- "Invalid chunk name" : "Invalid chunk name",
- "Could not rename part file assembled from chunks" : "Could not rename part file assembled from chunks"
+ "Your attendance was updated successfully." : "Your attendance was updated successfully."
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ka_GE.js b/apps/dav/l10n/ka_GE.js
deleted file mode 100644
index 05fa6351239..00000000000
--- a/apps/dav/l10n/ka_GE.js
+++ /dev/null
@@ -1,66 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "კალენდარი",
- "Todos" : "შესასრულებელი დავალებები",
- "Personal" : "პირადი",
- "{actor} created calendar {calendar}" : "{actor} მომხმარებელმა შექმნა კალენდარი {calendar}",
- "You created calendar {calendar}" : "თქვენ შექმენით {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} მომხმარებელმამა გააუქმა კალენდარი {calendar}",
- "You deleted calendar {calendar}" : "თქვენ გააუქმეთ კალენდარი {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} მომხმარებელმა განაახლა კალენდარი {calendar}",
- "You updated calendar {calendar}" : "თქვენ განაახლეთ კალენდარი {calendar}",
- "You shared calendar {calendar} as public link" : "თქვენ გააზიარეთ კალენდარი {calendar} საზოგადო ბმულის სახით",
- "You removed public link for calendar {calendar}" : "თქვენ გააუქმეთ საზოგადო ბმული კალენდარზე {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} მომხმარებელმა თქვენთან გააზიარა კალენდარი {calendar}",
- "You shared calendar {calendar} with {user}" : "თქვენ გააზიარეთ კალენდარი {calendar} მომხმარებელთან {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} მომხმარებელმა გააზიარა {calendar} მომხმარებელთან {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} მომხმარებელმა თქვენთან შეწყვიტა {calendar} კალენდრის გაზიარება",
- "You unshared calendar {calendar} from {user}" : "თქვენ შეწყვიტეთ {calendar} კალენდრის გაზიარება მომხმარებელთან {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} მომხმარებელმა შეწყვიტა {calendar} კალენდრის გაზიარება მომხმარებელთან {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} მომხმარებელმა შეწყვიტა {calendar} კალენდრის გაზიარება",
- "You shared calendar {calendar} with group {group}" : "თქვენ გააზიარეთ კალენდარი {calendar} ჯგუფთან {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} მომხმარებელმა გააზიარა {calendar} კალენდარი ჯგუფთან {group}",
- "You unshared calendar {calendar} from group {group}" : "თქვენ შეწყვიტეთ კალენდრის {calendar} გაზიარება ჯგუფთან {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} მომხმარებელმა შეწყვიტა {calendar} კალენდრის გაზიარება ჯგუფთან {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} მომხმარებელმა შექმნა მოვლენა {event} კალენდარში {calendar}",
- "You created event {event} in calendar {calendar}" : "თქვენ შექმენით მოვლენა {event} კალენდარში {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} მომხმარებელმა გააუქმა მოვლენა {event} კალენდარში {calendar}",
- "You deleted event {event} from calendar {calendar}" : "თქვენ გააუქმეთ მოვლენა {event} კალენდარში {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} მომხმარებელმა განაახლა მოვლენა {event} კალენდარში {calendar}",
- "You updated event {event} in calendar {calendar}" : "თქვენ განაახლეთ მოვლენა {event} კალენდარში {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} მომხმარებელმა შექმნა შესასრულებელი დავალება {todo} სიაში {calendar}",
- "You created todo {todo} in list {calendar}" : "თქვენ შექმენით შესასრულებელი დავალება {todo} სიაში {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} მომხმარებელმა გააუქმა შესასრულებელი დავალება {todo} სიიდან {calendar}",
- "You deleted todo {todo} from list {calendar}" : "თქვენ გააუქმეთ შესასრულებელი დავალება {todo} სიიდან {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} მომხმარებელმა განაახლა შესასრულებელი დავალება {todo} სიაში {calendar}",
- "You updated todo {todo} in list {calendar}" : "თქვენ განაახლეთ შესასრულებელი დავალება {todo} in list {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} მომხმარებელმა დაასრულა შესასრულებელი დავალება {todo} სიაში {calendar}",
- "You solved todo {todo} in list {calendar}" : "თქვენ დაასრულეთ შესასრულებელი დავალება {todo} სიაში {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} მომხმარებელმა ხელახლა გახსნა შესასრულებელი დავალება {todo} სიაში {calendar}",
- "You reopened todo {todo} in list {calendar}" : "თქვენ ხელახლა გახსენით შესასრულებელი დავალება {todo} სიაში {calendar}",
- "A <strong>calendar</strong> was modified" : "<strong>კალენდარი</strong> შეიცვალა",
- "A calendar <strong>event</strong> was modified" : "კალენდრის <strong>მოვლენა</strong> შეიცვალა",
- "A calendar <strong>todo</strong> was modified" : "კალენდრის <strong>შესასრულებელი დავალება</strong> შეიცვალა",
- "Contact birthdays" : "კონტაქტების დაბადების დღეები",
- "Where:" : "სად:",
- "Description:" : "აღწერა:",
- "Invitation canceled" : "მოწვევა გაუქმდა",
- "Invitation updated" : "მოწვევა განახლდა",
- "Location:" : "ადგილმდებარეობა:",
- "Link:" : "ბმული:",
- "Accept" : "მიღება",
- "Decline" : "ურაყოფა",
- "Contacts" : "კონტაქტები",
- "Tasks" : "დავალებები",
- "WebDAV" : "WebDAV",
- "Tentative" : "საცდელი",
- "Save" : "შენახვა",
- "Send invitations to attendees" : "გაუგზავნეთ მოწვევა დამსწრეებს",
- "Automatically generate a birthday calendar" : "დაბადების დღეების კალენდრების ავტომატური გენერირება",
- "Birthday calendars will be generated by a background job." : "ბადადების დღეების კალენდრები გენერირებულ იქნება ფონურ რეჟიმში.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "ისინი არ იქნებიან ხელმიწავდომნი უცბად, მაგრამ გამოჩნდებიან გარკვეული პერიოდის შემდეგ.",
- "Hello %s," : "გამარჯობა %s,",
- "When:" : "როდის:"
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/dav/l10n/ka_GE.json b/apps/dav/l10n/ka_GE.json
deleted file mode 100644
index 7597200d061..00000000000
--- a/apps/dav/l10n/ka_GE.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{ "translations": {
- "Calendar" : "კალენდარი",
- "Todos" : "შესასრულებელი დავალებები",
- "Personal" : "პირადი",
- "{actor} created calendar {calendar}" : "{actor} მომხმარებელმა შექმნა კალენდარი {calendar}",
- "You created calendar {calendar}" : "თქვენ შექმენით {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} მომხმარებელმამა გააუქმა კალენდარი {calendar}",
- "You deleted calendar {calendar}" : "თქვენ გააუქმეთ კალენდარი {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} მომხმარებელმა განაახლა კალენდარი {calendar}",
- "You updated calendar {calendar}" : "თქვენ განაახლეთ კალენდარი {calendar}",
- "You shared calendar {calendar} as public link" : "თქვენ გააზიარეთ კალენდარი {calendar} საზოგადო ბმულის სახით",
- "You removed public link for calendar {calendar}" : "თქვენ გააუქმეთ საზოგადო ბმული კალენდარზე {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} მომხმარებელმა თქვენთან გააზიარა კალენდარი {calendar}",
- "You shared calendar {calendar} with {user}" : "თქვენ გააზიარეთ კალენდარი {calendar} მომხმარებელთან {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} მომხმარებელმა გააზიარა {calendar} მომხმარებელთან {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} მომხმარებელმა თქვენთან შეწყვიტა {calendar} კალენდრის გაზიარება",
- "You unshared calendar {calendar} from {user}" : "თქვენ შეწყვიტეთ {calendar} კალენდრის გაზიარება მომხმარებელთან {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} მომხმარებელმა შეწყვიტა {calendar} კალენდრის გაზიარება მომხმარებელთან {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} მომხმარებელმა შეწყვიტა {calendar} კალენდრის გაზიარება",
- "You shared calendar {calendar} with group {group}" : "თქვენ გააზიარეთ კალენდარი {calendar} ჯგუფთან {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} მომხმარებელმა გააზიარა {calendar} კალენდარი ჯგუფთან {group}",
- "You unshared calendar {calendar} from group {group}" : "თქვენ შეწყვიტეთ კალენდრის {calendar} გაზიარება ჯგუფთან {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} მომხმარებელმა შეწყვიტა {calendar} კალენდრის გაზიარება ჯგუფთან {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} მომხმარებელმა შექმნა მოვლენა {event} კალენდარში {calendar}",
- "You created event {event} in calendar {calendar}" : "თქვენ შექმენით მოვლენა {event} კალენდარში {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} მომხმარებელმა გააუქმა მოვლენა {event} კალენდარში {calendar}",
- "You deleted event {event} from calendar {calendar}" : "თქვენ გააუქმეთ მოვლენა {event} კალენდარში {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} მომხმარებელმა განაახლა მოვლენა {event} კალენდარში {calendar}",
- "You updated event {event} in calendar {calendar}" : "თქვენ განაახლეთ მოვლენა {event} კალენდარში {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} მომხმარებელმა შექმნა შესასრულებელი დავალება {todo} სიაში {calendar}",
- "You created todo {todo} in list {calendar}" : "თქვენ შექმენით შესასრულებელი დავალება {todo} სიაში {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} მომხმარებელმა გააუქმა შესასრულებელი დავალება {todo} სიიდან {calendar}",
- "You deleted todo {todo} from list {calendar}" : "თქვენ გააუქმეთ შესასრულებელი დავალება {todo} სიიდან {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} მომხმარებელმა განაახლა შესასრულებელი დავალება {todo} სიაში {calendar}",
- "You updated todo {todo} in list {calendar}" : "თქვენ განაახლეთ შესასრულებელი დავალება {todo} in list {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} მომხმარებელმა დაასრულა შესასრულებელი დავალება {todo} სიაში {calendar}",
- "You solved todo {todo} in list {calendar}" : "თქვენ დაასრულეთ შესასრულებელი დავალება {todo} სიაში {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} მომხმარებელმა ხელახლა გახსნა შესასრულებელი დავალება {todo} სიაში {calendar}",
- "You reopened todo {todo} in list {calendar}" : "თქვენ ხელახლა გახსენით შესასრულებელი დავალება {todo} სიაში {calendar}",
- "A <strong>calendar</strong> was modified" : "<strong>კალენდარი</strong> შეიცვალა",
- "A calendar <strong>event</strong> was modified" : "კალენდრის <strong>მოვლენა</strong> შეიცვალა",
- "A calendar <strong>todo</strong> was modified" : "კალენდრის <strong>შესასრულებელი დავალება</strong> შეიცვალა",
- "Contact birthdays" : "კონტაქტების დაბადების დღეები",
- "Where:" : "სად:",
- "Description:" : "აღწერა:",
- "Invitation canceled" : "მოწვევა გაუქმდა",
- "Invitation updated" : "მოწვევა განახლდა",
- "Location:" : "ადგილმდებარეობა:",
- "Link:" : "ბმული:",
- "Accept" : "მიღება",
- "Decline" : "ურაყოფა",
- "Contacts" : "კონტაქტები",
- "Tasks" : "დავალებები",
- "WebDAV" : "WebDAV",
- "Tentative" : "საცდელი",
- "Save" : "შენახვა",
- "Send invitations to attendees" : "გაუგზავნეთ მოწვევა დამსწრეებს",
- "Automatically generate a birthday calendar" : "დაბადების დღეების კალენდრების ავტომატური გენერირება",
- "Birthday calendars will be generated by a background job." : "ბადადების დღეების კალენდრები გენერირებულ იქნება ფონურ რეჟიმში.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "ისინი არ იქნებიან ხელმიწავდომნი უცბად, მაგრამ გამოჩნდებიან გარკვეული პერიოდის შემდეგ.",
- "Hello %s," : "გამარჯობა %s,",
- "When:" : "როდის:"
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/ko.js b/apps/dav/l10n/ko.js
index 91c84463670..ae3b8e5908c 100644
--- a/apps/dav/l10n/ko.js
+++ b/apps/dav/l10n/ko.js
@@ -192,6 +192,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "{dayName} 시작 시각을 지정하십시오",
"Pick a end time for {dayName}" : "{dayName} 종료 시각을 지정하십시오",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "다른 용무 중일 때 자동으로 사용자를 '방해 금지' 모드로 설정해 모든 알림을 음소거합니다.",
+ "Cancel" : "취소",
+ "Import" : "가져오기",
+ "Error while saving settings" : "설정 저장 중 오류 발생",
+ "Reset to default" : "기본값으로 초기화",
"Availability" : "시간 조율",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "업무 시간을 설정하면, 다른 사람이 회의를 예약할 때 내 부재 중 시간을 확인할 수 있습니다.",
"Absence" : "부재",
@@ -208,17 +212,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "캘린더 공유자에게도 미리 알림 보내기",
"Reminders are always sent to organizers and attendees." : "미리 알림은 주최자와 참석자에게 항상 전송됩니다.",
"Enable notifications for events via push" : "일정에 대한 푸시 알림 활성화",
- "Cancel" : "취소",
- "Import" : "가져오기",
- "Error while saving settings" : "설정 저장 중 오류 발생",
"There was an error updating your attendance status." : "참석 상태를 업데이트하는 중 오류가 발생했습니다.",
"Please contact the organizer directly." : "주최자에게 직접 연락하십시오.",
"Are you accepting the invitation?" : "초대를 수락하시겠습니까?",
"Tentative" : "보류",
- "Your attendance was updated successfully." : "참석 정보를 업데이트했습니다.",
- "Time:" : "시간:",
- "Could not open file" : "파일을 열 수 없음",
- "Invalid chunk name" : "잘못된 청크 이름",
- "Could not rename part file assembled from chunks" : "청크에서 조합 된 부분 파일의 이름을 바꿀 수 없음"
+ "Your attendance was updated successfully." : "참석 정보를 업데이트했습니다."
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/ko.json b/apps/dav/l10n/ko.json
index c45f8470385..50d8fee9c21 100644
--- a/apps/dav/l10n/ko.json
+++ b/apps/dav/l10n/ko.json
@@ -190,6 +190,10 @@
"Pick a start time for {dayName}" : "{dayName} 시작 시각을 지정하십시오",
"Pick a end time for {dayName}" : "{dayName} 종료 시각을 지정하십시오",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "다른 용무 중일 때 자동으로 사용자를 '방해 금지' 모드로 설정해 모든 알림을 음소거합니다.",
+ "Cancel" : "취소",
+ "Import" : "가져오기",
+ "Error while saving settings" : "설정 저장 중 오류 발생",
+ "Reset to default" : "기본값으로 초기화",
"Availability" : "시간 조율",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "업무 시간을 설정하면, 다른 사람이 회의를 예약할 때 내 부재 중 시간을 확인할 수 있습니다.",
"Absence" : "부재",
@@ -206,17 +210,10 @@
"Send reminder notifications to calendar sharees as well" : "캘린더 공유자에게도 미리 알림 보내기",
"Reminders are always sent to organizers and attendees." : "미리 알림은 주최자와 참석자에게 항상 전송됩니다.",
"Enable notifications for events via push" : "일정에 대한 푸시 알림 활성화",
- "Cancel" : "취소",
- "Import" : "가져오기",
- "Error while saving settings" : "설정 저장 중 오류 발생",
"There was an error updating your attendance status." : "참석 상태를 업데이트하는 중 오류가 발생했습니다.",
"Please contact the organizer directly." : "주최자에게 직접 연락하십시오.",
"Are you accepting the invitation?" : "초대를 수락하시겠습니까?",
"Tentative" : "보류",
- "Your attendance was updated successfully." : "참석 정보를 업데이트했습니다.",
- "Time:" : "시간:",
- "Could not open file" : "파일을 열 수 없음",
- "Invalid chunk name" : "잘못된 청크 이름",
- "Could not rename part file assembled from chunks" : "청크에서 조합 된 부분 파일의 이름을 바꿀 수 없음"
+ "Your attendance was updated successfully." : "참석 정보를 업데이트했습니다."
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/lt_LT.js b/apps/dav/l10n/lt_LT.js
deleted file mode 100644
index b1ff0a2ee48..00000000000
--- a/apps/dav/l10n/lt_LT.js
+++ /dev/null
@@ -1,111 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Kalendorius",
- "Tasks" : "Užduotys",
- "Personal" : "Asmeniniai",
- "{actor} created calendar {calendar}" : "{actor} sukūrė kalendorių {calendar}",
- "You created calendar {calendar}" : "Jūs sukūrėte kalendorių {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} ištrynė kalendorių {calendar}",
- "You deleted calendar {calendar}" : "Jūs ištrynėte kalendorių {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} atnaujino kalendorių {calendar}",
- "You updated calendar {calendar}" : "Jūs atnaujinote kalendorių {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} atkūrė kalendorių {calendar}",
- "You restored calendar {calendar}" : "Jūs atkūrėte kalendorių {calendar}",
- "You shared calendar {calendar} as public link" : "Jūs pradėjote bendrinti kalendorių {calendar} kaip viešąją nuorodą",
- "You removed public link for calendar {calendar}" : "Jūs pašalinote viešąją nuorodą kalendoriui {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} pradėjo bendrinti su jumis kalendorių {calendar}",
- "You shared calendar {calendar} with {user}" : "Jūs pradėjote bendrinti kalendorių {calendar} su {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} pradėjo bendrinti kalendorių {calendar} su {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} nustojo bendrinti su jumis kalendorių {calendar}",
- "You unshared calendar {calendar} from {user}" : "Jūs nustojote bendrinti kalendorių {calendar} su {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} nustojo bendrinti kalendorių {calendar} su {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} nustojo bendrinti su savimi kalendorių {calendar}",
- "You shared calendar {calendar} with group {group}" : "Jūs pradėjote bendrinti kalendorių {calendar} su grupe {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} pradėjo bendrinti kalendorių {calendar} su grupe {group}",
- "You unshared calendar {calendar} from group {group}" : "Jūs nustojote bendrinti kalendorių {calendar} su grupe {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} nustojo bendrinti kalendorių {calendar} su grupe {group}",
- "Untitled event" : "Įvykis be pavadinimo",
- "{actor} created event {event} in calendar {calendar}" : "{actor} kalendoriuje {calendar} sukūrė įvykį {event}",
- "You created event {event} in calendar {calendar}" : "Jūs kalendoriuje {calendar} sukūrėte įvykį {event}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} ištrynė įvykį {event} iš kalendoriaus {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Jūs ištrynėte įvykį {event} iš kalendoriaus {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} kalendoriuje {calendar} atnaujino įvykį {event}",
- "You updated event {event} in calendar {calendar}" : "Jūs kalendoriuje {calendar} atnaujinote įvykį {event}",
- "{actor} restored event {event} of calendar {calendar}" : "{actor} kalendoriuje {calendar} atkūrė įvykį {event}",
- "You restored event {event} of calendar {calendar}" : "Jūs kalendoriuje {calendar} atkūrėte įvykį {event}",
- "Busy" : "Užimtas laikas",
- "Calendar, contacts and tasks" : "Kalendorius, adresatai ir užduotys",
- "A <strong>calendar</strong> was modified" : "<strong>Kalendorius</strong> buvo modifikuotas",
- "A calendar <strong>event</strong> was modified" : "Kalendoriaus <strong>įvykis</strong> buvo modifikuotas",
- "Contact birthdays" : "Adresatų gimtadieniai",
- "Untitled calendar" : "Kalendorius be pavadinimo",
- "Calendar:" : "Kalendorius:",
- "Date:" : "Data:",
- "Where:" : "Kur:",
- "Description:" : "Aprašas:",
- "_%n year_::_%n years_" : ["%n metai","%n metai","%n metų","%n metai"],
- "_%n month_::_%n months_" : ["%n mėnesis","%n mėnesiai","%n mėnesių","%n mėnesis"],
- "_%n day_::_%n days_" : ["%n diena","%n dienos","%n dienų","%n diena"],
- "_%n hour_::_%n hours_" : ["%n valanda","%n valandos","%n valandų","%n valanda"],
- "_%n minute_::_%n minutes_" : ["%n minutė","%n minutės","%n minučių","%n minutė"],
- "%s (in %s)" : "%s (po %s)",
- "%s (%s ago)" : "%s (prieš %s)",
- "Calendar: %s" : "Kalendorius: %s",
- "Date: %s" : "Data: %s",
- "Description: %s" : "Aprašas: %s",
- "Where: %s" : "Kur: %s",
- "%1$s via %2$s" : "%1$s per %2$s",
- "Invitation: %1$s" : "Pakvietimas: %1$s",
- "Organizer:" : "Organizatorius:",
- "Attendees:" : "Kviestiniai:",
- "Title:" : "Pavadinimas:",
- "Location:" : "Vieta:",
- "Link:" : "Nuoroda:",
- "Accept" : "Priimti",
- "Decline" : "Atmesti",
- "More options …" : "Daugiau parinkčių…",
- "Contacts" : "Adresatai",
- "{actor} created address book {addressbook}" : "{actor} sukūrė adresų knygą {addressbook}",
- "You created address book {addressbook}" : "Jūs sukūrėte adresų knygą {addressbook}",
- "{actor} deleted address book {addressbook}" : "{actor} ištrynė adresų knygą {addressbook}",
- "You deleted address book {addressbook}" : "Jūs ištrynėte adresų knygą {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} atnaujino adresų knygą {addressbook}",
- "You updated address book {addressbook}" : "Jūs atnaujinote adresų knygą {addressbook}",
- "System is in maintenance mode." : "Sistema yra techninės priežiūros veiksenoje.",
- "Upgrade needed" : "Reikalingas naujinimas",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Norint naudoti CalDAV ir CardDAV su iOS/macOS, jūsų %s turi būti sukonfigūruota taip, kad naudotų HTTPS.",
- "Configures a CalDAV account" : "Konfigūruoja CalDAV paskyrą",
- "Configures a CardDAV account" : "Konfigūruoja CardDAV paskyrą",
- "Events" : "Įvykiai",
- "Untitled task" : "Užduotis be pavadinimo",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Jūsų svetainės serveris nėra tinkamai sukonfiguruotas, Failų sinchronizavimas negalimas, nes neveikia WebDAV interfeisas.",
- "Contacts and groups" : "Adresatai ir grupės",
- "WebDAV" : "WebDAV",
- "Save" : "Įrašyti",
- "Time zone:" : "Laiko juosta:",
- "to" : "iki",
- "No working hours set" : "Nenustatyta jokių darbo valandų",
- "Monday" : "Pirmadienis",
- "Tuesday" : "Antradienis",
- "Wednesday" : "Trečiadienis",
- "Thursday" : "Ketvirtadienis",
- "Friday" : "Penktadienis",
- "Saturday" : "Šeštadienis",
- "Sunday" : "Sekmadienis",
- "Availability" : "Pasiekiamumas",
- "Calendar server" : "Kalendoriaus serveris",
- "Send invitations to attendees" : "Siųsti pakvietimus kviestiniams",
- "Automatically generate a birthday calendar" : "Automatiškai sukurti gimtadienių kalendorių",
- "Birthday calendars will be generated by a background job." : "Gimtadienių kalendoriai bus sukurti foninės užduoties.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Tai reiškia, kad jie nebus matomi iš karto įjungus, o pasirodys tik po kurio laiko.",
- "Send notifications for events" : "Siųsti įvykių pranešimus",
- "Notifications are sent via background jobs, so these must occur often enough." : "Pranešimai yra siunčiami per fonines užduotis, todėl jos privalo būti vykdomos gana dažnai.",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Taip pat įsidiekite {calendarappstoreopen}Kalendoriaus programėlę{linkclose} arba sinchronizavimui {calendardocopen}prijunkite savo darbalaukį ir mobilųjį ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Įsitikinkite, kad tinkamai nusistatėte {emailopen}el. pašto serverį{linkclose}.",
- "Please contact the organizer directly." : "Prašome susisiekti su organizatoriumi tiesiogiai.",
- "Are you accepting the invitation?" : "Ar priimate pakvietimą?",
- "Tentative" : "Preliminarus",
- "Time:" : "Laikas:"
-},
-"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/dav/l10n/lt_LT.json b/apps/dav/l10n/lt_LT.json
deleted file mode 100644
index 7eab2a422ca..00000000000
--- a/apps/dav/l10n/lt_LT.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{ "translations": {
- "Calendar" : "Kalendorius",
- "Tasks" : "Užduotys",
- "Personal" : "Asmeniniai",
- "{actor} created calendar {calendar}" : "{actor} sukūrė kalendorių {calendar}",
- "You created calendar {calendar}" : "Jūs sukūrėte kalendorių {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} ištrynė kalendorių {calendar}",
- "You deleted calendar {calendar}" : "Jūs ištrynėte kalendorių {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} atnaujino kalendorių {calendar}",
- "You updated calendar {calendar}" : "Jūs atnaujinote kalendorių {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} atkūrė kalendorių {calendar}",
- "You restored calendar {calendar}" : "Jūs atkūrėte kalendorių {calendar}",
- "You shared calendar {calendar} as public link" : "Jūs pradėjote bendrinti kalendorių {calendar} kaip viešąją nuorodą",
- "You removed public link for calendar {calendar}" : "Jūs pašalinote viešąją nuorodą kalendoriui {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} pradėjo bendrinti su jumis kalendorių {calendar}",
- "You shared calendar {calendar} with {user}" : "Jūs pradėjote bendrinti kalendorių {calendar} su {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} pradėjo bendrinti kalendorių {calendar} su {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} nustojo bendrinti su jumis kalendorių {calendar}",
- "You unshared calendar {calendar} from {user}" : "Jūs nustojote bendrinti kalendorių {calendar} su {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} nustojo bendrinti kalendorių {calendar} su {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} nustojo bendrinti su savimi kalendorių {calendar}",
- "You shared calendar {calendar} with group {group}" : "Jūs pradėjote bendrinti kalendorių {calendar} su grupe {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} pradėjo bendrinti kalendorių {calendar} su grupe {group}",
- "You unshared calendar {calendar} from group {group}" : "Jūs nustojote bendrinti kalendorių {calendar} su grupe {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} nustojo bendrinti kalendorių {calendar} su grupe {group}",
- "Untitled event" : "Įvykis be pavadinimo",
- "{actor} created event {event} in calendar {calendar}" : "{actor} kalendoriuje {calendar} sukūrė įvykį {event}",
- "You created event {event} in calendar {calendar}" : "Jūs kalendoriuje {calendar} sukūrėte įvykį {event}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} ištrynė įvykį {event} iš kalendoriaus {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Jūs ištrynėte įvykį {event} iš kalendoriaus {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} kalendoriuje {calendar} atnaujino įvykį {event}",
- "You updated event {event} in calendar {calendar}" : "Jūs kalendoriuje {calendar} atnaujinote įvykį {event}",
- "{actor} restored event {event} of calendar {calendar}" : "{actor} kalendoriuje {calendar} atkūrė įvykį {event}",
- "You restored event {event} of calendar {calendar}" : "Jūs kalendoriuje {calendar} atkūrėte įvykį {event}",
- "Busy" : "Užimtas laikas",
- "Calendar, contacts and tasks" : "Kalendorius, adresatai ir užduotys",
- "A <strong>calendar</strong> was modified" : "<strong>Kalendorius</strong> buvo modifikuotas",
- "A calendar <strong>event</strong> was modified" : "Kalendoriaus <strong>įvykis</strong> buvo modifikuotas",
- "Contact birthdays" : "Adresatų gimtadieniai",
- "Untitled calendar" : "Kalendorius be pavadinimo",
- "Calendar:" : "Kalendorius:",
- "Date:" : "Data:",
- "Where:" : "Kur:",
- "Description:" : "Aprašas:",
- "_%n year_::_%n years_" : ["%n metai","%n metai","%n metų","%n metai"],
- "_%n month_::_%n months_" : ["%n mėnesis","%n mėnesiai","%n mėnesių","%n mėnesis"],
- "_%n day_::_%n days_" : ["%n diena","%n dienos","%n dienų","%n diena"],
- "_%n hour_::_%n hours_" : ["%n valanda","%n valandos","%n valandų","%n valanda"],
- "_%n minute_::_%n minutes_" : ["%n minutė","%n minutės","%n minučių","%n minutė"],
- "%s (in %s)" : "%s (po %s)",
- "%s (%s ago)" : "%s (prieš %s)",
- "Calendar: %s" : "Kalendorius: %s",
- "Date: %s" : "Data: %s",
- "Description: %s" : "Aprašas: %s",
- "Where: %s" : "Kur: %s",
- "%1$s via %2$s" : "%1$s per %2$s",
- "Invitation: %1$s" : "Pakvietimas: %1$s",
- "Organizer:" : "Organizatorius:",
- "Attendees:" : "Kviestiniai:",
- "Title:" : "Pavadinimas:",
- "Location:" : "Vieta:",
- "Link:" : "Nuoroda:",
- "Accept" : "Priimti",
- "Decline" : "Atmesti",
- "More options …" : "Daugiau parinkčių…",
- "Contacts" : "Adresatai",
- "{actor} created address book {addressbook}" : "{actor} sukūrė adresų knygą {addressbook}",
- "You created address book {addressbook}" : "Jūs sukūrėte adresų knygą {addressbook}",
- "{actor} deleted address book {addressbook}" : "{actor} ištrynė adresų knygą {addressbook}",
- "You deleted address book {addressbook}" : "Jūs ištrynėte adresų knygą {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} atnaujino adresų knygą {addressbook}",
- "You updated address book {addressbook}" : "Jūs atnaujinote adresų knygą {addressbook}",
- "System is in maintenance mode." : "Sistema yra techninės priežiūros veiksenoje.",
- "Upgrade needed" : "Reikalingas naujinimas",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Norint naudoti CalDAV ir CardDAV su iOS/macOS, jūsų %s turi būti sukonfigūruota taip, kad naudotų HTTPS.",
- "Configures a CalDAV account" : "Konfigūruoja CalDAV paskyrą",
- "Configures a CardDAV account" : "Konfigūruoja CardDAV paskyrą",
- "Events" : "Įvykiai",
- "Untitled task" : "Užduotis be pavadinimo",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Jūsų svetainės serveris nėra tinkamai sukonfiguruotas, Failų sinchronizavimas negalimas, nes neveikia WebDAV interfeisas.",
- "Contacts and groups" : "Adresatai ir grupės",
- "WebDAV" : "WebDAV",
- "Save" : "Įrašyti",
- "Time zone:" : "Laiko juosta:",
- "to" : "iki",
- "No working hours set" : "Nenustatyta jokių darbo valandų",
- "Monday" : "Pirmadienis",
- "Tuesday" : "Antradienis",
- "Wednesday" : "Trečiadienis",
- "Thursday" : "Ketvirtadienis",
- "Friday" : "Penktadienis",
- "Saturday" : "Šeštadienis",
- "Sunday" : "Sekmadienis",
- "Availability" : "Pasiekiamumas",
- "Calendar server" : "Kalendoriaus serveris",
- "Send invitations to attendees" : "Siųsti pakvietimus kviestiniams",
- "Automatically generate a birthday calendar" : "Automatiškai sukurti gimtadienių kalendorių",
- "Birthday calendars will be generated by a background job." : "Gimtadienių kalendoriai bus sukurti foninės užduoties.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Tai reiškia, kad jie nebus matomi iš karto įjungus, o pasirodys tik po kurio laiko.",
- "Send notifications for events" : "Siųsti įvykių pranešimus",
- "Notifications are sent via background jobs, so these must occur often enough." : "Pranešimai yra siunčiami per fonines užduotis, todėl jos privalo būti vykdomos gana dažnai.",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Taip pat įsidiekite {calendarappstoreopen}Kalendoriaus programėlę{linkclose} arba sinchronizavimui {calendardocopen}prijunkite savo darbalaukį ir mobilųjį ↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Įsitikinkite, kad tinkamai nusistatėte {emailopen}el. pašto serverį{linkclose}.",
- "Please contact the organizer directly." : "Prašome susisiekti su organizatoriumi tiesiogiai.",
- "Are you accepting the invitation?" : "Ar priimate pakvietimą?",
- "Tentative" : "Preliminarus",
- "Time:" : "Laikas:"
-},"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/dav/l10n/lv.js b/apps/dav/l10n/lv.js
deleted file mode 100644
index 0a8e585fbd1..00000000000
--- a/apps/dav/l10n/lv.js
+++ /dev/null
@@ -1,11 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Contact birthdays" : "Kontaktu dzimšanas dienas",
- "Personal" : "Personīgi",
- "Contacts" : "Kontakti",
- "Technical details" : "Tehniskās detaļas",
- "Remote Address: %s" : "Attālinātā adrese: %s",
- "Request ID: %s" : "Pieprasījuma ID: %s"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/dav/l10n/lv.json b/apps/dav/l10n/lv.json
deleted file mode 100644
index c28aad665dd..00000000000
--- a/apps/dav/l10n/lv.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "translations": {
- "Contact birthdays" : "Kontaktu dzimšanas dienas",
- "Personal" : "Personīgi",
- "Contacts" : "Kontakti",
- "Technical details" : "Tehniskās detaļas",
- "Remote Address: %s" : "Attālinātā adrese: %s",
- "Request ID: %s" : "Pieprasījuma ID: %s"
-},"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/dav/l10n/mk.js b/apps/dav/l10n/mk.js
index 46b51db6c3f..aee9a41896f 100644
--- a/apps/dav/l10n/mk.js
+++ b/apps/dav/l10n/mk.js
@@ -181,6 +181,9 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Избери почетно време за {dayName}",
"Pick a end time for {dayName}" : "Избери крајно време за {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматско поставување на статус во \"Не вознемирувај\" недостапен за да ги занемите сите известувања.",
+ "Cancel" : "Откажи",
+ "Import" : "Увези",
+ "Reset to default" : "Ресетирај на стандардно",
"Availability" : "Достапност",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ако ги поставите работните часови, другите корисници ќе можат да видат кога сте слободни за да можат да закажат состанок.",
"Absence" : "Отсуство",
@@ -197,14 +200,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Испратете известувања за потсетници и до споделувањата на календарот",
"Reminders are always sent to organizers and attendees." : "Секогаш се испраќаат потсетници до организаторите и до присутните.",
"Enable notifications for events via push" : "Овозможи известувања за настани преку push",
- "Cancel" : "Откажи",
- "Import" : "Увези",
"There was an error updating your attendance status." : "Настана грешка при ажурирање на вашето присуство.",
"Please contact the organizer directly." : "Контактирајте го организаторот директно.",
"Are you accepting the invitation?" : "Дали ја прифаќате поканата?",
"Tentative" : "Прелиминарно",
- "Your attendance was updated successfully." : "Вашето присуство е успешно ажурирано.",
- "Time:" : "Време:",
- "Could not open file" : "Неможе да се отвори датотеката"
+ "Your attendance was updated successfully." : "Вашето присуство е успешно ажурирано."
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/dav/l10n/mk.json b/apps/dav/l10n/mk.json
index f7864e8bd64..50e9e168496 100644
--- a/apps/dav/l10n/mk.json
+++ b/apps/dav/l10n/mk.json
@@ -179,6 +179,9 @@
"Pick a start time for {dayName}" : "Избери почетно време за {dayName}",
"Pick a end time for {dayName}" : "Избери крајно време за {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматско поставување на статус во \"Не вознемирувај\" недостапен за да ги занемите сите известувања.",
+ "Cancel" : "Откажи",
+ "Import" : "Увези",
+ "Reset to default" : "Ресетирај на стандардно",
"Availability" : "Достапност",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ако ги поставите работните часови, другите корисници ќе можат да видат кога сте слободни за да можат да закажат состанок.",
"Absence" : "Отсуство",
@@ -195,14 +198,10 @@
"Send reminder notifications to calendar sharees as well" : "Испратете известувања за потсетници и до споделувањата на календарот",
"Reminders are always sent to organizers and attendees." : "Секогаш се испраќаат потсетници до организаторите и до присутните.",
"Enable notifications for events via push" : "Овозможи известувања за настани преку push",
- "Cancel" : "Откажи",
- "Import" : "Увези",
"There was an error updating your attendance status." : "Настана грешка при ажурирање на вашето присуство.",
"Please contact the organizer directly." : "Контактирајте го организаторот директно.",
"Are you accepting the invitation?" : "Дали ја прифаќате поканата?",
"Tentative" : "Прелиминарно",
- "Your attendance was updated successfully." : "Вашето присуство е успешно ажурирано.",
- "Time:" : "Време:",
- "Could not open file" : "Неможе да се отвори датотеката"
+ "Your attendance was updated successfully." : "Вашето присуство е успешно ажурирано."
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/nb.js b/apps/dav/l10n/nb.js
index bd6ae10ed39..d10ba88149b 100644
--- a/apps/dav/l10n/nb.js
+++ b/apps/dav/l10n/nb.js
@@ -247,6 +247,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Velg et starttidspunkt for {dayName}",
"Pick a end time for {dayName}" : "Velg et sluttidspunkt for {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Sett brukerstatus automatisk til «Ikke forstyrr» utenfor arbeidstid for å dempe alle varsler.",
+ "Cancel" : "Avbryt",
+ "Import" : "Importer",
+ "Error while saving settings" : "Feil ved lagring av innstillinger",
+ "Reset to default" : "Tilbakestill til standard",
"Availability" : "Arbeidstid",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer arbeidstiden din, vil andre personer se når du ikke er på kontoret når de bestiller et møte.",
"Absence" : "Fravær",
@@ -263,17 +267,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Send påminnelsesvarsler til kalenderdelinger også",
"Reminders are always sent to organizers and attendees." : "Reminders are always sent to organizers and attendees.",
"Enable notifications for events via push" : "Aktiver varsler for hendelser via push",
- "Cancel" : "Avbryt",
- "Import" : "Importer",
- "Error while saving settings" : "Feil ved lagring av innstillinger",
"There was an error updating your attendance status." : "Det oppsto en feil under oppdateringen av oppmøtestatusen din.",
"Please contact the organizer directly." : "Ta kontakt med arrangøren direkte.",
"Are you accepting the invitation?" : "Aksepterer du invitasjonen?",
"Tentative" : "Foreløpig",
- "Your attendance was updated successfully." : "Deltakelsen din ble oppdatert.",
- "Time:" : "Tid:",
- "Could not open file" : "Kunne ikke åpne fil",
- "Invalid chunk name" : "Ugyldig bitnavn",
- "Could not rename part file assembled from chunks" : "Kunne ikke gi nytt navn til delfil satt sammen fra biter"
+ "Your attendance was updated successfully." : "Deltakelsen din ble oppdatert."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/nb.json b/apps/dav/l10n/nb.json
index e8aee0356f4..d33852e0013 100644
--- a/apps/dav/l10n/nb.json
+++ b/apps/dav/l10n/nb.json
@@ -245,6 +245,10 @@
"Pick a start time for {dayName}" : "Velg et starttidspunkt for {dayName}",
"Pick a end time for {dayName}" : "Velg et sluttidspunkt for {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Sett brukerstatus automatisk til «Ikke forstyrr» utenfor arbeidstid for å dempe alle varsler.",
+ "Cancel" : "Avbryt",
+ "Import" : "Importer",
+ "Error while saving settings" : "Feil ved lagring av innstillinger",
+ "Reset to default" : "Tilbakestill til standard",
"Availability" : "Arbeidstid",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer arbeidstiden din, vil andre personer se når du ikke er på kontoret når de bestiller et møte.",
"Absence" : "Fravær",
@@ -261,17 +265,10 @@
"Send reminder notifications to calendar sharees as well" : "Send påminnelsesvarsler til kalenderdelinger også",
"Reminders are always sent to organizers and attendees." : "Reminders are always sent to organizers and attendees.",
"Enable notifications for events via push" : "Aktiver varsler for hendelser via push",
- "Cancel" : "Avbryt",
- "Import" : "Importer",
- "Error while saving settings" : "Feil ved lagring av innstillinger",
"There was an error updating your attendance status." : "Det oppsto en feil under oppdateringen av oppmøtestatusen din.",
"Please contact the organizer directly." : "Ta kontakt med arrangøren direkte.",
"Are you accepting the invitation?" : "Aksepterer du invitasjonen?",
"Tentative" : "Foreløpig",
- "Your attendance was updated successfully." : "Deltakelsen din ble oppdatert.",
- "Time:" : "Tid:",
- "Could not open file" : "Kunne ikke åpne fil",
- "Invalid chunk name" : "Ugyldig bitnavn",
- "Could not rename part file assembled from chunks" : "Kunne ikke gi nytt navn til delfil satt sammen fra biter"
+ "Your attendance was updated successfully." : "Deltakelsen din ble oppdatert."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/nl.js b/apps/dav/l10n/nl.js
index 464dae7bf81..e07dc153418 100644
--- a/apps/dav/l10n/nl.js
+++ b/apps/dav/l10n/nl.js
@@ -166,6 +166,10 @@ OC.L10N.register(
"Add slot" : "Voeg slot toe",
"Weekdays" : "Weekdagen",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Stel de gebruikersstatus automatisch in op \"Niet storen\" buiten de beschikbaarheid om alle meldingen te dempen.",
+ "Cancel" : "Annuleren",
+ "Import" : "Import",
+ "Error while saving settings" : "Probleem tijdens het opslaan van instellingen",
+ "Reset to default" : "Herstellen naar standaard",
"Availability" : "Beschikbaarheid",
"Absence" : "Afwezigheid",
"Configure your next absence period." : "Configureer uw volgende afwezigheidsperiode.",
@@ -179,17 +183,10 @@ OC.L10N.register(
"Send notifications for events" : "Versturen meldingen voor afspraken",
"Notifications are sent via background jobs, so these must occur often enough." : "Meldingen worden via achtergrondtaken verstuurd, dus die moeten vaak genoeg plaatsvinden.",
"Enable notifications for events via push" : "Inschakelen push-melding voor afspraken",
- "Cancel" : "Annuleren",
- "Import" : "Import",
- "Error while saving settings" : "Probleem tijdens het opslaan van instellingen",
"There was an error updating your attendance status." : "Er trad een fout op bij het bijwerken van je deelnamestatus.",
"Please contact the organizer directly." : "Neem rechtstreeks contact op met de organisator.",
"Are you accepting the invitation?" : "Neem je de uitnodiging aan?",
"Tentative" : "Onder voorbehoud",
- "Your attendance was updated successfully." : "Je deelname is succesvol bijgewerkt.",
- "Time:" : "Tijd:",
- "Could not open file" : "Kan het bestand niet openen",
- "Invalid chunk name" : "Ongeldige chunknaam",
- "Could not rename part file assembled from chunks" : "Kon een bestandsdeel dat uit chunks is samengesteld niet hernoemen"
+ "Your attendance was updated successfully." : "Je deelname is succesvol bijgewerkt."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/nl.json b/apps/dav/l10n/nl.json
index f5d509dfc4a..161b2287d8e 100644
--- a/apps/dav/l10n/nl.json
+++ b/apps/dav/l10n/nl.json
@@ -164,6 +164,10 @@
"Add slot" : "Voeg slot toe",
"Weekdays" : "Weekdagen",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Stel de gebruikersstatus automatisch in op \"Niet storen\" buiten de beschikbaarheid om alle meldingen te dempen.",
+ "Cancel" : "Annuleren",
+ "Import" : "Import",
+ "Error while saving settings" : "Probleem tijdens het opslaan van instellingen",
+ "Reset to default" : "Herstellen naar standaard",
"Availability" : "Beschikbaarheid",
"Absence" : "Afwezigheid",
"Configure your next absence period." : "Configureer uw volgende afwezigheidsperiode.",
@@ -177,17 +181,10 @@
"Send notifications for events" : "Versturen meldingen voor afspraken",
"Notifications are sent via background jobs, so these must occur often enough." : "Meldingen worden via achtergrondtaken verstuurd, dus die moeten vaak genoeg plaatsvinden.",
"Enable notifications for events via push" : "Inschakelen push-melding voor afspraken",
- "Cancel" : "Annuleren",
- "Import" : "Import",
- "Error while saving settings" : "Probleem tijdens het opslaan van instellingen",
"There was an error updating your attendance status." : "Er trad een fout op bij het bijwerken van je deelnamestatus.",
"Please contact the organizer directly." : "Neem rechtstreeks contact op met de organisator.",
"Are you accepting the invitation?" : "Neem je de uitnodiging aan?",
"Tentative" : "Onder voorbehoud",
- "Your attendance was updated successfully." : "Je deelname is succesvol bijgewerkt.",
- "Time:" : "Tijd:",
- "Could not open file" : "Kan het bestand niet openen",
- "Invalid chunk name" : "Ongeldige chunknaam",
- "Could not rename part file assembled from chunks" : "Kon een bestandsdeel dat uit chunks is samengesteld niet hernoemen"
+ "Your attendance was updated successfully." : "Je deelname is succesvol bijgewerkt."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/nn_NO.js b/apps/dav/l10n/nn_NO.js
deleted file mode 100644
index 5dee7e46749..00000000000
--- a/apps/dav/l10n/nn_NO.js
+++ /dev/null
@@ -1,43 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Kalendar",
- "Todos" : "Å gjere",
- "Personal" : "Personleg",
- "{actor} created calendar {calendar}" : "{actor} lagde kalendaren {calendar}",
- "You created calendar {calendar}" : "Du lagde kalendaren {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} sletta kalendaren {calendar}",
- "You deleted calendar {calendar}" : "Du sletta kalendaren {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} oppdaterte kalendaren {calendar}",
- "You updated calendar {calendar}" : "Du oppdaterte kalendaren {calendar}",
- "You shared calendar {calendar} as public link" : "Du delte kalendaren {calendar} som en offentleg lenke",
- "You removed public link for calendar {calendar}" : "Du fjerna den offentlege lenka for kalendaren {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} delte kalendaren {calendar} med deg",
- "You shared calendar {calendar} with {user}" : "Du delte kalendaren {calendar} med {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} delte kalendaren {calendar} med {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} stoppa å dele kalendaren {calendar} med deg",
- "You unshared calendar {calendar} from {user}" : "Du stoppa å dele kalendaren {calendar} med {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} stoppa å dele kalendaren {calendar} med {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} stoppa å dele kalendaren {calendar} med segsjølv",
- "You shared calendar {calendar} with group {group}" : "Du delte kalendaren {calendar} med gruppa {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} delte kalendaren {calendar} med gruppa {group}",
- "You unshared calendar {calendar} from group {group}" : "Du stoppa å dele {calendar} med gruppa {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} stoppa å dele kalendaren {calendar} med gruppa {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} oppretta ein hending {event} i kalendaren {calendar}",
- "You created event {event} in calendar {calendar}" : "Du oppretta ei hending {event} i kalendaren {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} seltta ei hending {event} frå kalendaren {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Du sletta ei hending {event} frå kalendaren {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} oppdaterte hendinga {event} i kalendaren {calendar}",
- "You updated event {event} in calendar {calendar}" : "Du oppdaterte hendinga {event} i kalendaren {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} oppretta å gjere {todo} i lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Du oppretta å gjere {todo} i lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} sletta å gjere {todo} frå lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Du sletta å gjere {todo} frå lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} oppdaterte å gjere {todo} i lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Du oppdaterte å gjere {todo} i lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} løyste å gjere {todo} i lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Du løyste å gjere {todo} i lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} igjen-opna å gjere {todo} i lista {calendar}",
- "You reopened todo {todo} in list {calendar}" : "Du igjen-opna å gjere {todo} i lista {calendar}"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/nn_NO.json b/apps/dav/l10n/nn_NO.json
deleted file mode 100644
index 3323f9f7088..00000000000
--- a/apps/dav/l10n/nn_NO.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{ "translations": {
- "Calendar" : "Kalendar",
- "Todos" : "Å gjere",
- "Personal" : "Personleg",
- "{actor} created calendar {calendar}" : "{actor} lagde kalendaren {calendar}",
- "You created calendar {calendar}" : "Du lagde kalendaren {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} sletta kalendaren {calendar}",
- "You deleted calendar {calendar}" : "Du sletta kalendaren {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} oppdaterte kalendaren {calendar}",
- "You updated calendar {calendar}" : "Du oppdaterte kalendaren {calendar}",
- "You shared calendar {calendar} as public link" : "Du delte kalendaren {calendar} som en offentleg lenke",
- "You removed public link for calendar {calendar}" : "Du fjerna den offentlege lenka for kalendaren {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} delte kalendaren {calendar} med deg",
- "You shared calendar {calendar} with {user}" : "Du delte kalendaren {calendar} med {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} delte kalendaren {calendar} med {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} stoppa å dele kalendaren {calendar} med deg",
- "You unshared calendar {calendar} from {user}" : "Du stoppa å dele kalendaren {calendar} med {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} stoppa å dele kalendaren {calendar} med {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} stoppa å dele kalendaren {calendar} med segsjølv",
- "You shared calendar {calendar} with group {group}" : "Du delte kalendaren {calendar} med gruppa {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} delte kalendaren {calendar} med gruppa {group}",
- "You unshared calendar {calendar} from group {group}" : "Du stoppa å dele {calendar} med gruppa {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} stoppa å dele kalendaren {calendar} med gruppa {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} oppretta ein hending {event} i kalendaren {calendar}",
- "You created event {event} in calendar {calendar}" : "Du oppretta ei hending {event} i kalendaren {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} seltta ei hending {event} frå kalendaren {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Du sletta ei hending {event} frå kalendaren {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} oppdaterte hendinga {event} i kalendaren {calendar}",
- "You updated event {event} in calendar {calendar}" : "Du oppdaterte hendinga {event} i kalendaren {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} oppretta å gjere {todo} i lista {calendar}",
- "You created todo {todo} in list {calendar}" : "Du oppretta å gjere {todo} i lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} sletta å gjere {todo} frå lista {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Du sletta å gjere {todo} frå lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} oppdaterte å gjere {todo} i lista {calendar}",
- "You updated todo {todo} in list {calendar}" : "Du oppdaterte å gjere {todo} i lista {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} løyste å gjere {todo} i lista {calendar}",
- "You solved todo {todo} in list {calendar}" : "Du løyste å gjere {todo} i lista {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} igjen-opna å gjere {todo} i lista {calendar}",
- "You reopened todo {todo} in list {calendar}" : "Du igjen-opna å gjere {todo} i lista {calendar}"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/pl.js b/apps/dav/l10n/pl.js
index 45c51f70f42..078aa976c5e 100644
--- a/apps/dav/l10n/pl.js
+++ b/apps/dav/l10n/pl.js
@@ -72,6 +72,7 @@ OC.L10N.register(
"Description: %s" : "Opis: %s",
"Where: %s" : "Gdzie: %s",
"%1$s via %2$s" : "%1$s przez %2$s",
+ "In the past on %1$s for the entire day" : "W przeszłości w %1$s na cały dzień",
"Could not generate when statement" : "Nie można wygenerować instrukcji when",
"Every Day for the entire day" : "Codziennie przez cały dzień",
"Could not generate event recurrence statement" : "Nie można wygenerować zestawienia powtórzeń zdarzenia",
@@ -121,10 +122,12 @@ OC.L10N.register(
"Second" : "Druga",
"Third" : "Trzecia",
"Fourth" : "Czwarta",
+ "Fifth" : "Piąty",
"Last" : "Ostatnia",
"Second Last" : "Druga ostatnia",
"Third Last" : "Trzecia ostatnia",
"Fourth Last" : "Czwarty ostatni",
+ "Fifth Last" : "Piąty od końca",
"Contacts" : "Kontakty",
"{actor} created address book {addressbook}" : "{actor} utworzył książkę adresową {addressbook}",
"You created address book {addressbook}" : "Utworzyłeś książkę adresową {addressbook}",
@@ -178,6 +181,9 @@ OC.L10N.register(
"Completed on %s" : "Ukończono %s",
"Due on %s by %s" : "Na dzień %s w %s",
"Due on %s" : "Na dzień %s",
+ "System Address Book" : "Systemowa książka adresowa",
+ "The system address book contains contact information for all users in your instance." : "Systemowa książka adresowa zawiera informacje kontaktowe wszystkich użytkowników w Twojej instancji",
+ "Enable System Address Book" : "Włącz systemową książkę adresową",
"DAV system address book" : "Książka adresowa systemu DAV",
"No outstanding DAV system address book sync." : "Brak zaległej synchronizacji książki adresowej systemu DAV.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Synchronizacja książki adresowej systemu DAV nie została jeszcze uruchomiona, ponieważ Twoja instancja ma ponad 1000 użytkowników lub wystąpił błąd. Uruchom go ręcznie, wywołując \"occ dav:sync-system-addressbook\".",
@@ -215,6 +221,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Wybierz dzień rozpoczęcia {dayName}",
"Pick a end time for {dayName}" : "Wybierz dzień zakończenia {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatycznie ustaw status użytkownika na \"Nie przeszkadzać\" poza dostępnością, aby wyciszyć wszystkie powiadomienia.",
+ "Cancel" : "Anuluj",
+ "Import" : "Importuj",
+ "Error while saving settings" : "Błąd podczas zapisywania ustawień",
+ "Contact reset successfully" : "Kontakt został pomyślnie zresetowany",
+ "Error while resetting contact" : "Błąd podczas resetowania kontaktu",
+ "Contact imported successfully" : "Kontakt został pomyślnie zaimportowany",
+ "Error while importing contact" : "Błąd podczas importowania kontaktu",
+ "Import contact" : "Importuj kontakt",
+ "Reset to default" : "Przywróć domyślne",
+ "Import contacts" : "Importuj kontakty",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importowanie nowego pliku .vcf usunie domyślny kontakt i zastąpi go nowym. Czy chcesz kontynuować?",
+ "Failed to save example event creation setting" : "Nie udało się zapisać ustawień tworzenia przykładowego wydarzenia",
+ "Failed to upload the example event" : "Nie udało się przesłać przykładowego wydarzenia",
+ "Custom example event was saved successfully" : "Niestandardowe przykładowe wydarzenie zostało pomyślnie zapisane",
+ "Failed to delete the custom example event" : "Nie udało się usunąć niestandardowego przykładowego wydarzenia",
+ "Custom example event was deleted successfully" : "Niestandardowe przykładowe wydarzenie zostało pomyślnie usunięte",
+ "Import calendar event" : "Importuj wydarzenie z kalendarza",
+ "Uploading a new event will overwrite the existing one." : "Przesłanie nowego wydarzenia zastąpi istniejące",
+ "Upload event" : "Prześlij wydarzenie",
"Availability" : "Dostępność",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Jeśli skonfigurujesz godziny pracy, inne osoby będą widzieć, kiedy jesteś poza biurem, rezerwując spotkanie.",
"Absence" : "Nieobecność",
@@ -231,17 +256,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Wysyłaj przypomnienia również do udostępnionych kalendarzy",
"Reminders are always sent to organizers and attendees." : "Przypomnienia są zawsze wysyłane do organizatorów i uczestników.",
"Enable notifications for events via push" : "Włącz powiadomienia o zdarzeniach poprzez Push",
- "Cancel" : "Anuluj",
- "Import" : "Importuj",
- "Error while saving settings" : "Błąd podczas zapisywania ustawień",
+ "Example content" : "Przykładowa zawartość",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Przykładowa zawartość służy do prezentacji funkcji Nextcloud. Domyślna zawartość jest dostarczana z Nextcloud i może zostać zastąpiona zawartością niestandardową",
"There was an error updating your attendance status." : "Wystąpił błąd zmiany stanu uczestnictwa",
"Please contact the organizer directly." : "Skontaktuj się bezpośrednio z orgnizatorem.",
"Are you accepting the invitation?" : "Czy akceptujesz zaproszenie?",
"Tentative" : "Niepewne",
- "Your attendance was updated successfully." : "Twoja obecność została pomyślnie zaktualizowana.",
- "Time:" : "Czas:",
- "Could not open file" : "Nie można otworzyć pliku",
- "Invalid chunk name" : "Nieprawidłowa nazwa fragmentu",
- "Could not rename part file assembled from chunks" : "Nie można zmienić nazwy pliku podzielonego złożonego z kawałków"
+ "Your attendance was updated successfully." : "Twoja obecność została pomyślnie zaktualizowana."
},
"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/dav/l10n/pl.json b/apps/dav/l10n/pl.json
index f8a2313f7ea..e6873b216aa 100644
--- a/apps/dav/l10n/pl.json
+++ b/apps/dav/l10n/pl.json
@@ -70,6 +70,7 @@
"Description: %s" : "Opis: %s",
"Where: %s" : "Gdzie: %s",
"%1$s via %2$s" : "%1$s przez %2$s",
+ "In the past on %1$s for the entire day" : "W przeszłości w %1$s na cały dzień",
"Could not generate when statement" : "Nie można wygenerować instrukcji when",
"Every Day for the entire day" : "Codziennie przez cały dzień",
"Could not generate event recurrence statement" : "Nie można wygenerować zestawienia powtórzeń zdarzenia",
@@ -119,10 +120,12 @@
"Second" : "Druga",
"Third" : "Trzecia",
"Fourth" : "Czwarta",
+ "Fifth" : "Piąty",
"Last" : "Ostatnia",
"Second Last" : "Druga ostatnia",
"Third Last" : "Trzecia ostatnia",
"Fourth Last" : "Czwarty ostatni",
+ "Fifth Last" : "Piąty od końca",
"Contacts" : "Kontakty",
"{actor} created address book {addressbook}" : "{actor} utworzył książkę adresową {addressbook}",
"You created address book {addressbook}" : "Utworzyłeś książkę adresową {addressbook}",
@@ -176,6 +179,9 @@
"Completed on %s" : "Ukończono %s",
"Due on %s by %s" : "Na dzień %s w %s",
"Due on %s" : "Na dzień %s",
+ "System Address Book" : "Systemowa książka adresowa",
+ "The system address book contains contact information for all users in your instance." : "Systemowa książka adresowa zawiera informacje kontaktowe wszystkich użytkowników w Twojej instancji",
+ "Enable System Address Book" : "Włącz systemową książkę adresową",
"DAV system address book" : "Książka adresowa systemu DAV",
"No outstanding DAV system address book sync." : "Brak zaległej synchronizacji książki adresowej systemu DAV.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Synchronizacja książki adresowej systemu DAV nie została jeszcze uruchomiona, ponieważ Twoja instancja ma ponad 1000 użytkowników lub wystąpił błąd. Uruchom go ręcznie, wywołując \"occ dav:sync-system-addressbook\".",
@@ -213,6 +219,25 @@
"Pick a start time for {dayName}" : "Wybierz dzień rozpoczęcia {dayName}",
"Pick a end time for {dayName}" : "Wybierz dzień zakończenia {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatycznie ustaw status użytkownika na \"Nie przeszkadzać\" poza dostępnością, aby wyciszyć wszystkie powiadomienia.",
+ "Cancel" : "Anuluj",
+ "Import" : "Importuj",
+ "Error while saving settings" : "Błąd podczas zapisywania ustawień",
+ "Contact reset successfully" : "Kontakt został pomyślnie zresetowany",
+ "Error while resetting contact" : "Błąd podczas resetowania kontaktu",
+ "Contact imported successfully" : "Kontakt został pomyślnie zaimportowany",
+ "Error while importing contact" : "Błąd podczas importowania kontaktu",
+ "Import contact" : "Importuj kontakt",
+ "Reset to default" : "Przywróć domyślne",
+ "Import contacts" : "Importuj kontakty",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importowanie nowego pliku .vcf usunie domyślny kontakt i zastąpi go nowym. Czy chcesz kontynuować?",
+ "Failed to save example event creation setting" : "Nie udało się zapisać ustawień tworzenia przykładowego wydarzenia",
+ "Failed to upload the example event" : "Nie udało się przesłać przykładowego wydarzenia",
+ "Custom example event was saved successfully" : "Niestandardowe przykładowe wydarzenie zostało pomyślnie zapisane",
+ "Failed to delete the custom example event" : "Nie udało się usunąć niestandardowego przykładowego wydarzenia",
+ "Custom example event was deleted successfully" : "Niestandardowe przykładowe wydarzenie zostało pomyślnie usunięte",
+ "Import calendar event" : "Importuj wydarzenie z kalendarza",
+ "Uploading a new event will overwrite the existing one." : "Przesłanie nowego wydarzenia zastąpi istniejące",
+ "Upload event" : "Prześlij wydarzenie",
"Availability" : "Dostępność",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Jeśli skonfigurujesz godziny pracy, inne osoby będą widzieć, kiedy jesteś poza biurem, rezerwując spotkanie.",
"Absence" : "Nieobecność",
@@ -229,17 +254,12 @@
"Send reminder notifications to calendar sharees as well" : "Wysyłaj przypomnienia również do udostępnionych kalendarzy",
"Reminders are always sent to organizers and attendees." : "Przypomnienia są zawsze wysyłane do organizatorów i uczestników.",
"Enable notifications for events via push" : "Włącz powiadomienia o zdarzeniach poprzez Push",
- "Cancel" : "Anuluj",
- "Import" : "Importuj",
- "Error while saving settings" : "Błąd podczas zapisywania ustawień",
+ "Example content" : "Przykładowa zawartość",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Przykładowa zawartość służy do prezentacji funkcji Nextcloud. Domyślna zawartość jest dostarczana z Nextcloud i może zostać zastąpiona zawartością niestandardową",
"There was an error updating your attendance status." : "Wystąpił błąd zmiany stanu uczestnictwa",
"Please contact the organizer directly." : "Skontaktuj się bezpośrednio z orgnizatorem.",
"Are you accepting the invitation?" : "Czy akceptujesz zaproszenie?",
"Tentative" : "Niepewne",
- "Your attendance was updated successfully." : "Twoja obecność została pomyślnie zaktualizowana.",
- "Time:" : "Czas:",
- "Could not open file" : "Nie można otworzyć pliku",
- "Invalid chunk name" : "Nieprawidłowa nazwa fragmentu",
- "Could not rename part file assembled from chunks" : "Nie można zmienić nazwy pliku podzielonego złożonego z kawałków"
+ "Your attendance was updated successfully." : "Twoja obecność została pomyślnie zaktualizowana."
},"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/dav/l10n/pt_BR.js b/apps/dav/l10n/pt_BR.js
index df87e8e0a32..c3cffa9fb78 100644
--- a/apps/dav/l10n/pt_BR.js
+++ b/apps/dav/l10n/pt_BR.js
@@ -104,22 +104,22 @@ OC.L10N.register(
"Every %1$d Weeks on %2$s for the entire day until %3$s" : "A Cada %1$d Semanas, %2$s para o dia inteiro até %3$s",
"Every %1$d Weeks on %2$s between %3$s - %4$s" : "A Cada %1$d Semanas, %2$s entre %3$s - %4$s",
"Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "A Cada %1$d Semanas, %2$s entre %3$s - %4$s até %5$s",
- "Every Month on the %1$s for the entire day" : "Todo Mês no dia %1$s para o dia inteiro",
- "Every Month on the %1$s for the entire day until %2$s" : "Todo Mês no dia %1$s para o dia inteiro até %2$s",
- "Every Month on the %1$s between %2$s - %3$s" : "Todo Mês no dia %1$s entre %2$s - %3$s",
- "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Todo Mês no dia %1$s entre %2$s - %3$s até %4$s",
- "Every %1$d Months on the %2$s for the entire day" : "A Cada %1$d Meses no dia %2$s para o dia inteiro",
- "Every %1$d Months on the %2$s for the entire day until %3$s" : "A Cada %1$d Meses no dia %2$s para o dia inteiro até %3$s",
- "Every %1$d Months on the %2$s between %3$s - %4$s" : "A Cada %1$d Meses no dia %2$s entre %3$s - %4$s",
- "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "A Cada %1$d Meses no dia %2$s entre %3$s - %4$s até %5$s",
- "Every Year in %1$s on the %2$s for the entire day" : "Todo Ano em %1$s no dia %2$s para o dia inteiro",
- "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Todo Ano em %1$s no dia %2$s para o dia inteiro até %3$s",
- "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Todo Ano em %1$s no dia %2$s entre %3$s - %4$s",
- "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Todo Ano em %1$s no dia %2$s entre %3$s - %4$s até %5$s",
- "Every %1$d Years in %2$s on the %3$s for the entire day" : "A Cada %1$d Anos em %2$s no dia %3$s para o dia inteiro",
- "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "A Cada %1$d Anos em %2$s no dia %3$s para o dia inteiro até %4$s",
- "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "A Cada %1$d Anos em %2$s no dia %3$s entre %4$s - %5$s ",
- "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "A Cada %1$d Anos em %2$s no dia %3$s entre %4$s - %5$s até %6$s",
+ "Every Month on the %1$s for the entire day" : "Todo Mês, dia: %1$s, para o dia inteiro",
+ "Every Month on the %1$s for the entire day until %2$s" : "Todo Mês, dia: %1$s, para o dia inteiro até %2$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "Todo Mês, dia: %1$s, entre %2$s - %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Todo Mês, dia: %1$s, entre %2$s - %3$s até %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "A Cada %1$d Meses, dia: %2$s, para o dia inteiro",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "A Cada %1$d Meses, dia: %2$s, para o dia inteiro até %3$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "A Cada %1$d Meses, dia: %2$s, entre %3$s - %4$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "A Cada %1$d Meses, dia: %2$s, entre %3$s - %4$s até %5$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "Todo Ano em %1$s, dia: %2$s, para o dia inteiro",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Todo Ano em %1$s, dia: %2$s, para o dia inteiro até %3$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Todo Ano em %1$s, dia: %2$s, entre %3$s - %4$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Todo Ano em %1$s, dia: %2$s, entre %3$s - %4$s até %5$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "A Cada %1$d Anos em %2$s, dia: %3$s, para o dia inteiro",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "A Cada %1$d Anos em %2$s, dia: %3$s, para o dia inteiro até %4$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "A Cada %1$d Anos em %2$s, dia: %3$s, entre %4$s - %5$s ",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "A Cada %1$d Anos em %2$s, dia: %3$s, entre %4$s - %5$s até %6$s",
"On specific dates for the entire day until %1$s" : "Em datas específicas para o dia inteiro até %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "Em datas específicas entre %1$s - %2$s até %3$s",
"In the past on %1$s" : "No passado em %1$s",
@@ -185,16 +185,16 @@ OC.L10N.register(
"October" : "Outubro",
"November" : "Novembro",
"December" : "Dezembro",
- "First" : "Primeiro/a",
- "Second" : "Segundo/a",
- "Third" : "Terço/a",
- "Fourth" : "Quarto/a",
- "Fifth" : "Quinto/a",
+ "First" : "1.º/ª",
+ "Second" : "2.º/ª",
+ "Third" : "3.º/ª",
+ "Fourth" : "4.º/ª",
+ "Fifth" : "5.º/ª",
"Last" : "Último/a",
"Second Last" : "Penúltimo/a",
- "Third Last" : "Terceiro/a Último/a",
- "Fourth Last" : "Quarto/a Último/a",
- "Fifth Last" : "Quinto/a Último/a",
+ "Third Last" : "3.º/ª Último/a",
+ "Fourth Last" : "4.º/ª Último/a",
+ "Fifth Last" : "5.º/ª Último/a",
"Contacts" : "Contatos",
"{actor} created address book {addressbook}" : "{actor} criou o catálogo de endereços {addressbook}",
"You created address book {addressbook}" : "Você criou o catálogo de endereços {addressbook}",
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Selecione um horário de início para {dayName}",
"Pick a end time for {dayName}" : "Selecione um horário de fim para {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Defina automaticamente o status do usuário como \"Não perturbe\" fora de disponibilidade para silenciar todas as notificações.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Erro ao salvar as configurações",
+ "Contact reset successfully" : "O contato foi reiniciado com sucesso",
+ "Error while resetting contact" : "Erro ao reiniciar o contato",
+ "Contact imported successfully" : "O contato foi importado com sucesso",
+ "Error while importing contact" : "Erro ao importar o contato",
+ "Import contact" : "Importar contato",
+ "Reset to default" : "Redefinir para o padrão",
+ "Import contacts" : "Importar contatos",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "A importação de um novo arquivo .vcf excluirá o contato padrão existente e o substituirá pelo novo. Deseja continuar?",
+ "Failed to save example event creation setting" : "Falha ao salvar a configuração de criação de evento de exemplo",
+ "Failed to upload the example event" : "Falha ao fazer upload do evento de exemplo",
+ "Custom example event was saved successfully" : "O evento de exemplo personalizado foi salvo com êxito",
+ "Failed to delete the custom example event" : "Falha ao excluir o evento de exemplo personalizado",
+ "Custom example event was deleted successfully" : "O evento de exemplo personalizado foi excluído com êxito",
+ "Import calendar event" : "Importar evento de calendário",
+ "Uploading a new event will overwrite the existing one." : "O upload de um novo evento substituirá o existente.",
+ "Upload event" : "Fazer upload do evento",
"Availability" : "Disponibilidade",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se você configurar seu horário de trabalho, outras pessoas verão quando você estiver ausente quando agendarem uma reunião.",
"Absence" : "Ausência",
@@ -306,27 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Enviar notificações de lembrete também para os compartilhadores de calendário",
"Reminders are always sent to organizers and attendees." : "Lembretes são sempre enviados aos organizadores e participantes.",
"Enable notifications for events via push" : "Ativar notificações para eventos via push",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Erro ao salvar as configurações",
- "Contact reset successfully" : "O contato foi reiniciado com sucesso",
- "Error while resetting contact" : "Erro ao reiniciar o contato",
- "Contact imported successfully" : "O contato foi importado com sucesso",
- "Error while importing contact" : "Erro ao importar o contato",
- "Example Content" : "Exemplo de Conteúdo",
- "Set example content to be created on new user first login." : "Defina o exemplo de conteúdo a ser criado no primeiro login do novo usuário.",
- "Import contact" : "Importar contato",
- "Reset to default contact" : "Redefinir para o contato padrão",
- "Import contacts" : "Importar contatos",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "A importação de um novo arquivo .vcf excluirá o contato padrão existente e o substituirá pelo novo. Deseja continuar?",
+ "Example content" : "Exemplo de conteúdo",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "O conteúdo de exemplo serve para mostrar os recursos do Nextcloud. O conteúdo padrão é fornecido com o Nextcloud e pode ser substituído por conteúdo personalizado.",
"There was an error updating your attendance status." : "Houve um erro ao atualizar seu status de participação.",
"Please contact the organizer directly." : "Por favor, contate o organizador diretamente.",
"Are you accepting the invitation?" : "Você está aceitando o convite?",
"Tentative" : "Tentativa",
- "Your attendance was updated successfully." : "Sua presença foi atualizada com sucesso.",
- "Time:" : "Horário:",
- "Could not open file" : "Não foi possível abrir o arquivo",
- "Invalid chunk name" : "Nome de pedaço inválido",
- "Could not rename part file assembled from chunks" : "Não foi possível renomear o arquivo de peça montado a partir de pedaços"
+ "Your attendance was updated successfully." : "Sua presença foi atualizada com sucesso."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/pt_BR.json b/apps/dav/l10n/pt_BR.json
index 971fd07089f..cb763ca5e85 100644
--- a/apps/dav/l10n/pt_BR.json
+++ b/apps/dav/l10n/pt_BR.json
@@ -102,22 +102,22 @@
"Every %1$d Weeks on %2$s for the entire day until %3$s" : "A Cada %1$d Semanas, %2$s para o dia inteiro até %3$s",
"Every %1$d Weeks on %2$s between %3$s - %4$s" : "A Cada %1$d Semanas, %2$s entre %3$s - %4$s",
"Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "A Cada %1$d Semanas, %2$s entre %3$s - %4$s até %5$s",
- "Every Month on the %1$s for the entire day" : "Todo Mês no dia %1$s para o dia inteiro",
- "Every Month on the %1$s for the entire day until %2$s" : "Todo Mês no dia %1$s para o dia inteiro até %2$s",
- "Every Month on the %1$s between %2$s - %3$s" : "Todo Mês no dia %1$s entre %2$s - %3$s",
- "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Todo Mês no dia %1$s entre %2$s - %3$s até %4$s",
- "Every %1$d Months on the %2$s for the entire day" : "A Cada %1$d Meses no dia %2$s para o dia inteiro",
- "Every %1$d Months on the %2$s for the entire day until %3$s" : "A Cada %1$d Meses no dia %2$s para o dia inteiro até %3$s",
- "Every %1$d Months on the %2$s between %3$s - %4$s" : "A Cada %1$d Meses no dia %2$s entre %3$s - %4$s",
- "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "A Cada %1$d Meses no dia %2$s entre %3$s - %4$s até %5$s",
- "Every Year in %1$s on the %2$s for the entire day" : "Todo Ano em %1$s no dia %2$s para o dia inteiro",
- "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Todo Ano em %1$s no dia %2$s para o dia inteiro até %3$s",
- "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Todo Ano em %1$s no dia %2$s entre %3$s - %4$s",
- "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Todo Ano em %1$s no dia %2$s entre %3$s - %4$s até %5$s",
- "Every %1$d Years in %2$s on the %3$s for the entire day" : "A Cada %1$d Anos em %2$s no dia %3$s para o dia inteiro",
- "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "A Cada %1$d Anos em %2$s no dia %3$s para o dia inteiro até %4$s",
- "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "A Cada %1$d Anos em %2$s no dia %3$s entre %4$s - %5$s ",
- "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "A Cada %1$d Anos em %2$s no dia %3$s entre %4$s - %5$s até %6$s",
+ "Every Month on the %1$s for the entire day" : "Todo Mês, dia: %1$s, para o dia inteiro",
+ "Every Month on the %1$s for the entire day until %2$s" : "Todo Mês, dia: %1$s, para o dia inteiro até %2$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "Todo Mês, dia: %1$s, entre %2$s - %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Todo Mês, dia: %1$s, entre %2$s - %3$s até %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "A Cada %1$d Meses, dia: %2$s, para o dia inteiro",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "A Cada %1$d Meses, dia: %2$s, para o dia inteiro até %3$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "A Cada %1$d Meses, dia: %2$s, entre %3$s - %4$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "A Cada %1$d Meses, dia: %2$s, entre %3$s - %4$s até %5$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "Todo Ano em %1$s, dia: %2$s, para o dia inteiro",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Todo Ano em %1$s, dia: %2$s, para o dia inteiro até %3$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Todo Ano em %1$s, dia: %2$s, entre %3$s - %4$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Todo Ano em %1$s, dia: %2$s, entre %3$s - %4$s até %5$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "A Cada %1$d Anos em %2$s, dia: %3$s, para o dia inteiro",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "A Cada %1$d Anos em %2$s, dia: %3$s, para o dia inteiro até %4$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "A Cada %1$d Anos em %2$s, dia: %3$s, entre %4$s - %5$s ",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "A Cada %1$d Anos em %2$s, dia: %3$s, entre %4$s - %5$s até %6$s",
"On specific dates for the entire day until %1$s" : "Em datas específicas para o dia inteiro até %1$s",
"On specific dates between %1$s - %2$s until %3$s" : "Em datas específicas entre %1$s - %2$s até %3$s",
"In the past on %1$s" : "No passado em %1$s",
@@ -183,16 +183,16 @@
"October" : "Outubro",
"November" : "Novembro",
"December" : "Dezembro",
- "First" : "Primeiro/a",
- "Second" : "Segundo/a",
- "Third" : "Terço/a",
- "Fourth" : "Quarto/a",
- "Fifth" : "Quinto/a",
+ "First" : "1.º/ª",
+ "Second" : "2.º/ª",
+ "Third" : "3.º/ª",
+ "Fourth" : "4.º/ª",
+ "Fifth" : "5.º/ª",
"Last" : "Último/a",
"Second Last" : "Penúltimo/a",
- "Third Last" : "Terceiro/a Último/a",
- "Fourth Last" : "Quarto/a Último/a",
- "Fifth Last" : "Quinto/a Último/a",
+ "Third Last" : "3.º/ª Último/a",
+ "Fourth Last" : "4.º/ª Último/a",
+ "Fifth Last" : "5.º/ª Último/a",
"Contacts" : "Contatos",
"{actor} created address book {addressbook}" : "{actor} criou o catálogo de endereços {addressbook}",
"You created address book {addressbook}" : "Você criou o catálogo de endereços {addressbook}",
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "Selecione um horário de início para {dayName}",
"Pick a end time for {dayName}" : "Selecione um horário de fim para {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Defina automaticamente o status do usuário como \"Não perturbe\" fora de disponibilidade para silenciar todas as notificações.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Erro ao salvar as configurações",
+ "Contact reset successfully" : "O contato foi reiniciado com sucesso",
+ "Error while resetting contact" : "Erro ao reiniciar o contato",
+ "Contact imported successfully" : "O contato foi importado com sucesso",
+ "Error while importing contact" : "Erro ao importar o contato",
+ "Import contact" : "Importar contato",
+ "Reset to default" : "Redefinir para o padrão",
+ "Import contacts" : "Importar contatos",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "A importação de um novo arquivo .vcf excluirá o contato padrão existente e o substituirá pelo novo. Deseja continuar?",
+ "Failed to save example event creation setting" : "Falha ao salvar a configuração de criação de evento de exemplo",
+ "Failed to upload the example event" : "Falha ao fazer upload do evento de exemplo",
+ "Custom example event was saved successfully" : "O evento de exemplo personalizado foi salvo com êxito",
+ "Failed to delete the custom example event" : "Falha ao excluir o evento de exemplo personalizado",
+ "Custom example event was deleted successfully" : "O evento de exemplo personalizado foi excluído com êxito",
+ "Import calendar event" : "Importar evento de calendário",
+ "Uploading a new event will overwrite the existing one." : "O upload de um novo evento substituirá o existente.",
+ "Upload event" : "Fazer upload do evento",
"Availability" : "Disponibilidade",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se você configurar seu horário de trabalho, outras pessoas verão quando você estiver ausente quando agendarem uma reunião.",
"Absence" : "Ausência",
@@ -304,27 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "Enviar notificações de lembrete também para os compartilhadores de calendário",
"Reminders are always sent to organizers and attendees." : "Lembretes são sempre enviados aos organizadores e participantes.",
"Enable notifications for events via push" : "Ativar notificações para eventos via push",
- "Cancel" : "Cancelar",
- "Import" : "Importar",
- "Error while saving settings" : "Erro ao salvar as configurações",
- "Contact reset successfully" : "O contato foi reiniciado com sucesso",
- "Error while resetting contact" : "Erro ao reiniciar o contato",
- "Contact imported successfully" : "O contato foi importado com sucesso",
- "Error while importing contact" : "Erro ao importar o contato",
- "Example Content" : "Exemplo de Conteúdo",
- "Set example content to be created on new user first login." : "Defina o exemplo de conteúdo a ser criado no primeiro login do novo usuário.",
- "Import contact" : "Importar contato",
- "Reset to default contact" : "Redefinir para o contato padrão",
- "Import contacts" : "Importar contatos",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "A importação de um novo arquivo .vcf excluirá o contato padrão existente e o substituirá pelo novo. Deseja continuar?",
+ "Example content" : "Exemplo de conteúdo",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "O conteúdo de exemplo serve para mostrar os recursos do Nextcloud. O conteúdo padrão é fornecido com o Nextcloud e pode ser substituído por conteúdo personalizado.",
"There was an error updating your attendance status." : "Houve um erro ao atualizar seu status de participação.",
"Please contact the organizer directly." : "Por favor, contate o organizador diretamente.",
"Are you accepting the invitation?" : "Você está aceitando o convite?",
"Tentative" : "Tentativa",
- "Your attendance was updated successfully." : "Sua presença foi atualizada com sucesso.",
- "Time:" : "Horário:",
- "Could not open file" : "Não foi possível abrir o arquivo",
- "Invalid chunk name" : "Nome de pedaço inválido",
- "Could not rename part file assembled from chunks" : "Não foi possível renomear o arquivo de peça montado a partir de pedaços"
+ "Your attendance was updated successfully." : "Sua presença foi atualizada com sucesso."
},"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/dav/l10n/pt_PT.js b/apps/dav/l10n/pt_PT.js
new file mode 100644
index 00000000000..17246a2a574
--- /dev/null
+++ b/apps/dav/l10n/pt_PT.js
@@ -0,0 +1,336 @@
+OC.L10N.register(
+ "dav",
+ {
+ "Calendar" : "Calendário",
+ "Tasks" : "Tarefas",
+ "Personal" : "Pessoal",
+ "{actor} created calendar {calendar}" : "{actor} criou o calendário {calendar}",
+ "You created calendar {calendar}" : "Criou o calendario {calendar}",
+ "{actor} deleted calendar {calendar}" : "{actor} apagou o calendário {calendar}",
+ "You deleted calendar {calendar}" : "Apagou o calendário {calendar}",
+ "{actor} updated calendar {calendar}" : "{actor} atualizou o calendário {calendar}",
+ "You updated calendar {calendar}" : "Atualizou o calendário {calendar}",
+ "{actor} restored calendar {calendar}" : "{actor} restaurou o calendário {calendar}",
+ "You restored calendar {calendar}" : "restaurou o calendário {calendar}",
+ "You shared calendar {calendar} as public link" : "Partilhou o calendário {calendar} como uma hiperligação pública",
+ "You removed public link for calendar {calendar}" : "Removeu uma hiperligação pública para o calendário {calendar}",
+ "{actor} shared calendar {calendar} with you" : "{actor} partilhou o calendário {calendar} consigo",
+ "You shared calendar {calendar} with {user}" : "Partilhou o calendário {calendar} com {user}",
+ "{actor} shared calendar {calendar} with {user}" : "{actor} partilhou o calendário {calendar} com {user}",
+ "{actor} unshared calendar {calendar} from you" : "{actor} retirou-lhe a partilha do calendário {calendar}",
+ "You unshared calendar {calendar} from {user}" : "Retirou a partilha do calendário {calendar} com {user}",
+ "{actor} unshared calendar {calendar} from {user}" : "{actor} retirou a partilha do calendário {calendar} com {user}",
+ "{actor} unshared calendar {calendar} from themselves" : "{actor} deixou de partilhar o calendário {calendar} de próprio",
+ "You shared calendar {calendar} with group {group}" : "partilhou o calendário {calendar} com o grupo {group}",
+ "{actor} shared calendar {calendar} with group {group}" : "{actor} partilhou o calendário {calendar} com o grupo {group}",
+ "You unshared calendar {calendar} from group {group}" : "deixou de partilhar o calendário {calendar} do grupo {group}",
+ "{actor} unshared calendar {calendar} from group {group}" : "{actor} deixou de partilhar o calendário {calendar} do grupo {group}",
+ "Untitled event" : "Evento sem título",
+ "{actor} created event {event} in calendar {calendar}" : "{actor} criou o evento {event} in o calendário {calendar}",
+ "You created event {event} in calendar {calendar}" : "criou o evento {event} in o calendário {calendar}",
+ "{actor} deleted event {event} from calendar {calendar}" : "{actor} eliminou o evento {event} de o calendário {calendar}",
+ "You deleted event {event} from calendar {calendar}" : "eliminou o evento {event} de o calendário {calendar}",
+ "{actor} updated event {event} in calendar {calendar}" : "{actor} atualizou o evento {event} in o calendário {calendar}",
+ "You updated event {event} in calendar {calendar}" : "atualizou o evento {event} in o calendário {calendar}",
+ "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} moveu o evento {event} de o calendário {sourceCalendar} para o calendário {targetCalendar}",
+ "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "moveu o evento {event} de o calendário {sourceCalendar} para o calendário {targetCalendar}",
+ "{actor} restored event {event} of calendar {calendar}" : "{actor} restaurou o evento {event} of o calendário {calendar}",
+ "You restored event {event} of calendar {calendar}" : "restaurou o evento {event} of o calendário {calendar}",
+ "Busy" : "Ocupado",
+ "{actor} created to-do {todo} in list {calendar}" : "{actor} criou to-do {todo} in list {calendar}",
+ "You created to-do {todo} in list {calendar}" : "criou to-do {todo} in list {calendar}",
+ "{actor} deleted to-do {todo} from list {calendar}" : "{actor} eliminou to-do {todo} de list {calendar}",
+ "You deleted to-do {todo} from list {calendar}" : "eliminou to-do {todo} de list {calendar}",
+ "{actor} updated to-do {todo} in list {calendar}" : "{actor} atualizou to-do {todo} in list {calendar}",
+ "You updated to-do {todo} in list {calendar}" : "atualizou to-do {todo} in list {calendar}",
+ "{actor} solved to-do {todo} in list {calendar}" : "{actor} concluiu a tarefa {todo} na lista {calendar}",
+ "You solved to-do {todo} in list {calendar}" : "solved to-do {todo} in list {calendar}",
+ "{actor} reopened to-do {todo} in list {calendar}" : "{actor} reabriu a tarefa {todo} na lista {calendar}",
+ "You reopened to-do {todo} in list {calendar}" : "reopened to-do {todo} in list {calendar}",
+ "{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} moveu to-do {todo} de list {sourceCalendar} para list {targetCalendar}",
+ "You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "moveu to-do {todo} de list {sourceCalendar} para list {targetCalendar}",
+ "Calendar, contacts and tasks" : "Calendário, contactos e tarefas",
+ "A <strong>calendar</strong> was modified" : "O <strong>calendário</strong> foi modificado.",
+ "A calendar <strong>event</strong> was modified" : "Um <strong>event</strong> do calendário foi modificado",
+ "A calendar <strong>to-do</strong> was modified" : "Foi modificada uma <strong>tarefa</strong> do calendário",
+ "Contact birthdays" : "Aniversário dos contactos",
+ "Death of %s" : "Falecimento de %s",
+ "Untitled calendar" : "Calendário sem titulo",
+ "Calendar:" : "Calendário:",
+ "Date:" : "Data:",
+ "Where:" : "Local:",
+ "Description:" : "Descrição:",
+ "_%n year_::_%n years_" : ["%n ano","%n anos","%n anos"],
+ "_%n month_::_%n months_" : ["%n mês","%n meses","%n meses"],
+ "_%n day_::_%n days_" : ["%n dia","%n dias","%n dias"],
+ "_%n hour_::_%n hours_" : ["%n hora","%n horas","%n horas"],
+ "_%n minute_::_%n minutes_" : ["%n minuto","%n minutos","%n minutos"],
+ "%s (in %s)" : "%s (em %s)",
+ "%s (%s ago)" : "%s (%s atrás)",
+ "Calendar: %s" : "Calendário: %s",
+ "Date: %s" : "Data: %s",
+ "Description: %s" : "Descrição: %s",
+ "Where: %s" : "Local: %s",
+ "%1$s via %2$s" : "%1$s via %2$s",
+ "In the past on %1$s for the entire day" : "No passado em %1$s durante todo o dia",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Daqui a um minuto em %1$s para todo o dia","Daqui a %n minutos em %1$s para todo o dia","Daqui a %n minutos em %1$s para todo o dia"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Daqui a um hora em %1$s para todo o dia","Daqui a %n horas em %1$s para todo o dia","Daqui a %n horas em %1$s para todo o dia"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Daqui a um dia em %1$s para todo o dia","Daqui a %n dias em %1$s para todo o dia","Daqui a %n dias em %1$s para todo o dia"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Daqui a um semana em %1$s para todo o dia","Daqui a %n semanas em %1$s para todo o dia","Daqui a %n semanas em %1$s para todo o dia"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Daqui a um mês em %1$s para todo o dia","Daqui a %n meses em %1$s para todo o dia","Daqui a %n meses em %1$s para todo o dia"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Daqui a um ano em %1$s para todo o dia","Daqui a %n anos em %1$s para todo o dia","Daqui a %n anos em %1$s para todo o dia"],
+ "In the past on %1$s between %2$s - %3$s" : "No passado em %1$s entre %2$s - %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Daqui a um minuto em %1$s entre %2$s - %3$s","Daqui a %n minutos em %1$s entre %2$s - %3$s","Daqui a %n minutos em %1$s entre %2$s - %3$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Daqui a um hora em %1$s entre %2$s - %3$s","Daqui a %n horas em %1$s entre %2$s - %3$s","Daqui a %n horas em %1$s entre %2$s - %3$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Daqui a um dia em %1$s entre %2$s - %3$s","Daqui a %n dias em %1$s entre %2$s - %3$s","Daqui a %n dias em %1$s entre %2$s - %3$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Daqui a um semana em %1$s entre %2$s - %3$s","Daqui a %n semanas em %1$s entre %2$s - %3$s","Daqui a %n semanas em %1$s entre %2$s - %3$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Daqui a um mês em %1$s entre %2$s - %3$s","Daqui a %n meses em %1$s entre %2$s - %3$s","Daqui a %n meses em %1$s entre %2$s - %3$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Daqui a um ano em %1$s entre %2$s - %3$s","Daqui a %n anos em %1$s entre %2$s - %3$s","Daqui a %n anos em %1$s entre %2$s - %3$s"],
+ "Could not generate when statement" : "Não foi possível gerar a expressão \"quando\"",
+ "Every Day for the entire day" : "Todos os dias, dia inteiro",
+ "Every Day for the entire day until %1$s" : "Todos os dias, dia inteiro até %1$s",
+ "Every Day between %1$s - %2$s" : "Todos os dias entre %1$s e %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "Todos os dias entre %1$s e %2$s até %3$s",
+ "Every %1$d Days for the entire day" : "A cada %1$d dias, dia inteiro",
+ "Every %1$d Days for the entire day until %2$s" : "A cada %1$d dias, dia inteiro até %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "A cada %1$d dias entre %2$s e %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "A cada %1$d dias entre %2$s e %3$s até %4$s",
+ "Could not generate event recurrence statement" : "Não foi possível gerar a expressão de recorrência do evento",
+ "Every Week on %1$s for the entire day" : "Todas as semanas, em %1$s, dia inteiro",
+ "Every Week on %1$s for the entire day until %2$s" : "Todas as semanas, em %1$s, dia inteiro até %2$s",
+ "Every Week on %1$s between %2$s - %3$s" : "Todas as semanas, em %1$s entre %2$s e %3$s",
+ "Every Week on %1$s between %2$s - %3$s until %4$s" : "Todas as semanas, em %1$s entre %2$s e %3$s até %4$s",
+ "Every %1$d Weeks on %2$s for the entire day" : "A cada %1$d semanas, em %2$s, dia inteiro",
+ "Every %1$d Weeks on %2$s for the entire day until %3$s" : "A cada %1$d semanas, em %2$s, dia inteiro até %3$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s" : "A cada %1$d semanas, em %2$s entre %3$s e %4$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "A cada %1$d semanas, em %2$s entre %3$s e %4$s até %5$s",
+ "Every Month on the %1$s for the entire day" : "Todos os meses, no dia %1$s, dia inteiro",
+ "Every Month on the %1$s for the entire day until %2$s" : "Todos os meses, no dia %1$s, dia inteiro até %2$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "Todos os meses, no dia %1$s entre %2$s e %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Todos os meses, no dia %1$s entre %2$s e %3$s até %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "A cada %1$d meses, no dia %2$s, dia inteiro",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "A cada %1$d meses, no dia %2$s, dia inteiro até %3$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "A cada %1$d meses, no dia %2$s entre %3$s e %4$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "A cada %1$d meses, no dia %2$s entre %3$s e %4$s até %5$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "Todos os anos em %1$s, no dia %2$s, dia inteiro",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Todos os anos em %1$s, no dia %2$s, dia inteiro até %3$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Todos os anos em %1$s, no dia %2$s entre %3$s e %4$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Todos os anos em %1$s, no dia %2$s entre %3$s e %4$s até %5$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "A cada %1$d anos em %2$s, no dia %3$s, dia inteiro",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "A cada %1$d anos em %2$s, no dia %3$s, dia inteiro até %4$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "A cada %1$d anos em %2$s, no dia %3$s entre %4$s e %5$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "A cada %1$d anos em %2$s, no dia %3$s entre %4$s e %5$s até %6$s",
+ "On specific dates for the entire day until %1$s" : "Em datas específicas, dia inteiro até %1$s",
+ "On specific dates between %1$s - %2$s until %3$s" : "Em datas específicas entre %1$s e %2$s até %3$s",
+ "In the past on %1$s" : "No passado em %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Daqui a um minuto em %1$s","Daqui a %n minutos em %1$s","Daqui a %n minutos em %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Daqui a um hora em %1$s","Daqui a %n horas em %1$s","Daqui a %n horas em %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Daqui a um dia em %1$s","Daqui a %n dias em %1$s","Daqui a %n dias em %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Daqui a um semana em %1$s","Daqui a %n semanas em %1$s","Daqui a %n semanas em %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Daqui a um mês em %1$s","Daqui a %n meses em %1$s","Daqui a %n meses em %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["Daqui a um ano em %1$s","Daqui a %n anos em %1$s","Daqui a %n anos em %1$s"],
+ "In the past on %1$s then on %2$s" : "No passado em %1$s e depois %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Daqui a um minuto em %1$s e depois em %2$s","Daqui a %n minutos em %1$s e depois em %2$s","Daqui a %n minutos em %1$s e depois em %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Daqui a um hora em %1$s e depois em %2$s","Daqui a %n horas em %1$s e depois em %2$s","Daqui a %n horas em %1$s e depois em %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Daqui a um dia em %1$s e depois em %2$s","Daqui a %n dias em %1$s e depois em %2$s","Daqui a %n dias em %1$s e depois em %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Daqui a um semana em %1$s e depois em %2$s","Daqui a %n semanas em %1$s e depois em %2$s","Daqui a %n semanas em %1$s e depois em %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Daqui a um mês em %1$s e depois em %2$s","Daqui a %n meses em %1$s e depois em %2$s","Daqui a %n meses em %1$s e depois em %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Daqui a um ano em %1$s e depois em %2$s","Daqui a %n anos em %1$s e depois em %2$s","Daqui a %n anos em %1$s e depois em %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "No passado em %1$s e depois em %2$s e %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Daqui a um minuto em %1$s e depois em %2$s e %3$s","Daqui a %n minutos em %1$s e depois em %2$s e %3$s","Daqui a %n minutos em %1$s e depois em %2$s e %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Daqui a um hora em %1$s e depois em %2$s e %3$s","Daqui a %n horas em %1$s e depois em %2$s e %3$s","Daqui a %n horas em %1$s e depois em %2$s e %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Daqui a um dia em %1$s e depois em %2$s e %3$s","Daqui a %n dias em %1$s e depois em %2$s e %3$s","Daqui a %n dias em %1$s e depois em %2$s e %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Daqui a um semana em %1$s e depois em %2$s e %3$s","Daqui a %n semanas em %1$s e depois em %2$s e %3$s","Daqui a %n semanas em %1$s e depois em %2$s e %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Daqui a um mês em %1$s e depois em %2$s e %3$s","Daqui a %n meses em %1$s e depois em %2$s e %3$s","Daqui a %n meses em %1$s e depois em %2$s e %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Daqui a um ano em %1$s e depois em %2$s e %3$s","Daqui a %n anos em %1$s e depois em %2$s e %3$s","Daqui a %n anos em %1$s e depois em %2$s e %3$s"],
+ "Could not generate next recurrence statement" : "Não foi possível gerar a próxima expressão de recorrência",
+ "Cancelled: %1$s" : "Cancelado: %1$s",
+ "\"%1$s\" has been canceled" : "\"%1$s\" foi cancelado",
+ "Re: %1$s" : "Re: %1$s",
+ "%1$s has accepted your invitation" : "%1$s aceitou o seu convite",
+ "%1$s has tentatively accepted your invitation" : "%1$s aceitou provisoriamente o seu convite",
+ "%1$s has declined your invitation" : "%1$s recusou o seu convite",
+ "%1$s has responded to your invitation" : "%1$s respondeu ao seu convite",
+ "Invitation updated: %1$s" : "Convite atualizado: %1$s",
+ "%1$s updated the event \"%2$s\"" : "%1$s atualizou o evento \"%2$s\"",
+ "Invitation: %1$s" : "Convite: %1$s",
+ "%1$s would like to invite you to \"%2$s\"" : "%1$s gostaria de convidá‑lo para \"%2$s\"",
+ "Organizer:" : "Organizador:",
+ "Attendees:" : "Participantes:",
+ "Title:" : "Titulo: ",
+ "When:" : "Quando:",
+ "Location:" : "Localização:",
+ "Link:" : "Ligação:",
+ "Occurring:" : "Ocorrências:",
+ "Accept" : "Aceitar",
+ "Decline" : "Recusar",
+ "More options …" : "Mais opções…",
+ "More options at %s" : "Mais opções em %s",
+ "Monday" : "Segunda",
+ "Tuesday" : "Terça",
+ "Wednesday" : "Quarta",
+ "Thursday" : "Quinta",
+ "Friday" : "Sexta",
+ "Saturday" : "Sábado",
+ "Sunday" : "Domingo",
+ "January" : "Janeiro",
+ "February" : "Fevereiro",
+ "March" : "Março",
+ "April" : "Abril",
+ "May" : "Maio",
+ "June" : "Junho",
+ "July" : "Julho",
+ "August" : "Agosto",
+ "September" : "Setembro",
+ "October" : "Outubro",
+ "November" : "Novembro",
+ "December" : "Dezembro",
+ "First" : "Primeiro",
+ "Second" : "Segundo",
+ "Third" : "Terceiro",
+ "Fourth" : "Quarto",
+ "Fifth" : "Quinto",
+ "Last" : "Último",
+ "Second Last" : "Penúltimo",
+ "Third Last" : "Antepenúltimo",
+ "Fourth Last" : "Quarto do fim",
+ "Fifth Last" : "Quinto do fim",
+ "Contacts" : "Contactos",
+ "{actor} created address book {addressbook}" : "{actor} criou address book {addressbook}",
+ "You created address book {addressbook}" : "criou address book {addressbook}",
+ "{actor} deleted address book {addressbook}" : "{actor} eliminou address book {addressbook}",
+ "You deleted address book {addressbook}" : "eliminou address book {addressbook}",
+ "{actor} updated address book {addressbook}" : "{actor} atualizou address book {addressbook}",
+ "You updated address book {addressbook}" : "atualizou address book {addressbook}",
+ "{actor} shared address book {addressbook} with you" : "{actor} partilhou address book {addressbook} com you",
+ "You shared address book {addressbook} with {user}" : "partilhou address book {addressbook} com {user}",
+ "{actor} shared address book {addressbook} with {user}" : "{actor} partilhou address book {addressbook} com {user}",
+ "{actor} unshared address book {addressbook} from you" : "{actor} deixou de partilhar address book {addressbook} de you",
+ "You unshared address book {addressbook} from {user}" : "deixou de partilhar address book {addressbook} de {user}",
+ "{actor} unshared address book {addressbook} from {user}" : "{actor} deixou de partilhar address book {addressbook} de {user}",
+ "{actor} unshared address book {addressbook} from themselves" : "{actor} deixou de partilhar address book {addressbook} de próprio",
+ "You shared address book {addressbook} with group {group}" : "partilhou address book {addressbook} com o grupo {group}",
+ "{actor} shared address book {addressbook} with group {group}" : "{actor} partilhou address book {addressbook} com o grupo {group}",
+ "You unshared address book {addressbook} from group {group}" : "deixou de partilhar address book {addressbook} do grupo {group}",
+ "{actor} unshared address book {addressbook} from group {group}" : "{actor} deixou de partilhar address book {addressbook} do grupo {group}",
+ "{actor} created contact {card} in address book {addressbook}" : "{actor} criou contact {card} in address book {addressbook}",
+ "You created contact {card} in address book {addressbook}" : "criou contact {card} in address book {addressbook}",
+ "{actor} deleted contact {card} from address book {addressbook}" : "{actor} eliminou contact {card} de address book {addressbook}",
+ "You deleted contact {card} from address book {addressbook}" : "eliminou contact {card} de address book {addressbook}",
+ "{actor} updated contact {card} in address book {addressbook}" : "{actor} atualizou contact {card} in address book {addressbook}",
+ "You updated contact {card} in address book {addressbook}" : "atualizou contact {card} in address book {addressbook}",
+ "A <strong>contact</strong> or <strong>address book</strong> was modified" : "Foi modificado um <strong>contacto</strong> ou <strong>livro de endereços</strong>",
+ "Accounts" : "Contas",
+ "System address book which holds all accounts" : "Livro de endereços do sistema que contém todas as contas",
+ "File is not updatable: %1$s" : "O ficheiro não pode ser atualizado: %1$s",
+ "Failed to get storage for file" : "Falha ao obter armazenamento para o ficheiro",
+ "Could not write to final file, canceled by hook" : "Não foi possível escrever no ficheiro final, cancelado por hook",
+ "Could not write file contents" : "Não foi possível escrever o conteúdo do ficheiro",
+ "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
+ "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Erro ao copiar ficheiro para o destino (copiado: %1$s, tamanho esperado: %2$s)",
+ "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Tamanho esperado de %1$s, mas leitura diferente (do cliente Nextcloud) e escreveu (para armazenamento Nextcloud) %2$s. Possível problema do lado do cliente ou ao escrever no armazenamento do servidor.",
+ "Could not rename part file to final file, canceled by hook" : "Não foi possível renomear o ficheiro parcial para ficheiro final, cancelado por hook",
+ "Could not rename part file to final file" : "Não foi possível renomear o ficheiro parcial para ficheiro final",
+ "Failed to check file size: %1$s" : "Falha ao verificar o tamanho do ficheiro: %1$s",
+ "Could not open file: %1$s, file does seem to exist" : "Não foi possível abrir o ficheiro: %1$s, o ficheiro parece existir",
+ "Could not open file: %1$s, file doesn't seem to exist" : "Não foi possível abrir o ficheiro: %1$s, o ficheiro não parece existir",
+ "Encryption not ready: %1$s" : "Encriptação não pronta: %1$s",
+ "Failed to open file: %1$s" : "Falha ao abrir o ficheiro: %1$s",
+ "Failed to unlink: %1$s" : "Falha ao eliminar: %1$s",
+ "Failed to write file contents: %1$s" : "Falha ao escrever o conteúdo do ficheiro: %1$s",
+ "File not found: %1$s" : "Ficheiro não encontrado: %1$s",
+ "Invalid target path" : "Caminho de destino inválido",
+ "System is in maintenance mode." : "O sistema está em modo de manutenção.",
+ "Upgrade needed" : "É necessária atualização",
+ "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "O seu %s precisa de estar configurado para usar HTTPS para que possa utilizar CalDAV e CardDAV com iOS/macOS.",
+ "Configures a CalDAV account" : "Configura uma conta CalDAV",
+ "Configures a CardDAV account" : "Configura uma conta CardDAV",
+ "Events" : "Eventos",
+ "Untitled task" : "Tarefa sem título",
+ "Completed on %s" : "Concluída em %s",
+ "Due on %s by %s" : "Vence em %s às %s",
+ "Due on %s" : "Vence em %s",
+ "System Address Book" : "Livro de endereços do sistema",
+ "The system address book contains contact information for all users in your instance." : "O livro de endereços do sistema contém informação de contacto de todos os utilizadores da sua instância.",
+ "Enable System Address Book" : "Ativar livro de endereços do sistema",
+ "DAV system address book" : "Livro de endereços DAV do sistema",
+ "No outstanding DAV system address book sync." : "Sem sincronizações pendentes do livro de endereços DAV do sistema.",
+ "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "A sincronização do livro de endereços DAV do sistema ainda não foi executada porque a sua instância não tem utilizadores; execute‑a manualmente com \"occ dav:sync-system-addressbook\".",
+ "WebDAV endpoint" : "Endpoint WebDAV",
+ "Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Não foi possível verificar se o seu servidor web está corretamente configurado para permitir a sincronização de ficheiros via WebDAV. Verifique manualmente.",
+ "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "O seu servidor da Web não está configurado corretamente para permitir a sincronização de ficheiros, porque a interface WebDAV parece estar com problemas.",
+ "Your web server is properly set up to allow file synchronization over WebDAV." : "O seu servidor web está corretamente configurado para permitir a sincronização de ficheiros via WebDAV.",
+ "Migrated calendar (%1$s)" : "Calendário migrado (%1$s)",
+ "Calendars including events, details and attendees" : "Calendários incluindo eventos, detalhes e participantes",
+ "Contacts and groups" : "Contactos e grupos",
+ "WebDAV" : "WebDAV",
+ "Absence saved" : "Ausência guardada",
+ "Failed to save your absence settings" : "Falha ao guardar as suas definições de ausência",
+ "Absence cleared" : "Ausência removida",
+ "Failed to clear your absence settings" : "Falha ao remover as suas definições de ausência",
+ "First day" : "Primeiro dia",
+ "Last day (inclusive)" : "Último dia (inclusive)",
+ "Out of office replacement (optional)" : "Substituto durante ausência (opcional)",
+ "Name of the replacement" : "Nome do substituto",
+ "No results." : "Sem resultados.",
+ "Start typing." : "Comece a escrever.",
+ "Short absence status" : "Estado de ausência curto",
+ "Long absence Message" : "Mensagem de ausência longa",
+ "Save" : "Guardar",
+ "Disable absence" : "Desativar ausência",
+ "Failed to load availability" : "Falha ao carregar disponibilidade",
+ "Saved availability" : "Disponibilidade guardada",
+ "Failed to save availability" : "Falha ao guardar disponibilidade",
+ "Time zone:" : "Fuso horário:",
+ "to" : "Para",
+ "Delete slot" : "Eliminar intervalo",
+ "No working hours set" : "Sem horário de trabalho definido",
+ "Add slot" : "Adicionar intervalo",
+ "Weekdays" : "Dias da semana",
+ "Pick a start time for {dayName}" : "Escolha uma hora de início para {dayName}",
+ "Pick a end time for {dayName}" : "Escolha uma hora de fim para {dayName}",
+ "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Definir automaticamente o estado para \"Não incomodar\" fora do horário de disponibilidade para silenciar todas as notificações.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Erro ao guardar definições",
+ "Contact reset successfully" : "Contacto reposto com sucesso",
+ "Error while resetting contact" : "Erro ao repor contacto",
+ "Contact imported successfully" : "Contacto importado com sucesso",
+ "Error while importing contact" : "Erro ao importar contacto",
+ "Import contact" : "Importar contacto",
+ "Reset to default" : "Repor original",
+ "Import contacts" : "Importar contactos",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "A importação de um novo ficheiro .vcf eliminará o contacto predefinido existente e substituí‑lo‑á pelo novo. Deseja continuar?",
+ "Failed to save example event creation setting" : "Falha ao guardar a definição de criação de evento de exemplo",
+ "Failed to upload the example event" : "Falha ao carregar o evento de exemplo",
+ "Custom example event was saved successfully" : "Evento de exemplo personalizado guardado com sucesso",
+ "Failed to delete the custom example event" : "Falha ao eliminar o evento de exemplo personalizado",
+ "Custom example event was deleted successfully" : "Evento de exemplo personalizado eliminado com sucesso",
+ "Import calendar event" : "Importar evento de calendário",
+ "Uploading a new event will overwrite the existing one." : "O carregamento de um novo evento substituirá o existente.",
+ "Upload event" : "Carregar evento",
+ "Availability" : "Disponibilidade",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se configurar o seu horário de trabalho, outras pessoas saberão quando está fora do escritório ao marcar uma reunião.",
+ "Absence" : "Ausência",
+ "Configure your next absence period." : "Configure o seu próximo período de ausência.",
+ "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale também a {calendarappstoreopen}aplicação Calendário {linkclose}, ou {calendardocopen} ligue o seu computador e telemóvel para sincronizar ↗{linkclose}.",
+ "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Certifique‑se de configurar corretamente {emailopen}o servidor de email{linkclose}.",
+ "Calendar server" : "Servidor de calendário",
+ "Send invitations to attendees" : "Enviar convites aos participantes",
+ "Automatically generate a birthday calendar" : "Gerar automaticamente um calendário de aniversários",
+ "Birthday calendars will be generated by a background job." : "Os calendários de aniversário serão gerados por uma tarefa em segundo plano.",
+ "Hence they will not be available immediately after enabling but will show up after some time." : "Por isso, não estarão disponíveis imediatamente após a ativação, mas aparecerão após algum tempo.",
+ "Send notifications for events" : "Enviar notificações de eventos",
+ "Notifications are sent via background jobs, so these must occur often enough." : "As notificações são enviadas através de tarefas em segundo plano; estas devem ser executadas com frequência suficiente.",
+ "Send reminder notifications to calendar sharees as well" : "Enviar também notificações de lembrete aos partilhados do calendário",
+ "Reminders are always sent to organizers and attendees." : "Os lembretes são sempre enviados aos organizadores e participantes.",
+ "Enable notifications for events via push" : "Ativar notificações push para eventos",
+ "Example content" : "Conteúdo de exemplo",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "O conteúdo de exemplo serve para demonstrar as funcionalidades do Nextcloud. É fornecido com o Nextcloud e pode ser substituído por conteúdo personalizado.",
+ "There was an error updating your attendance status." : "Ocorreu um erro ao atualizar o seu estado de participação.",
+ "Please contact the organizer directly." : "Contacte diretamente o organizador.",
+ "Are you accepting the invitation?" : "Aceita o convite?",
+ "Tentative" : "Tentativa",
+ "Your attendance was updated successfully." : "O seu estado de participação foi atualizado com sucesso."
+},
+"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/pt_PT.json b/apps/dav/l10n/pt_PT.json
new file mode 100644
index 00000000000..7120a7a8e96
--- /dev/null
+++ b/apps/dav/l10n/pt_PT.json
@@ -0,0 +1,334 @@
+{ "translations": {
+ "Calendar" : "Calendário",
+ "Tasks" : "Tarefas",
+ "Personal" : "Pessoal",
+ "{actor} created calendar {calendar}" : "{actor} criou o calendário {calendar}",
+ "You created calendar {calendar}" : "Criou o calendario {calendar}",
+ "{actor} deleted calendar {calendar}" : "{actor} apagou o calendário {calendar}",
+ "You deleted calendar {calendar}" : "Apagou o calendário {calendar}",
+ "{actor} updated calendar {calendar}" : "{actor} atualizou o calendário {calendar}",
+ "You updated calendar {calendar}" : "Atualizou o calendário {calendar}",
+ "{actor} restored calendar {calendar}" : "{actor} restaurou o calendário {calendar}",
+ "You restored calendar {calendar}" : "restaurou o calendário {calendar}",
+ "You shared calendar {calendar} as public link" : "Partilhou o calendário {calendar} como uma hiperligação pública",
+ "You removed public link for calendar {calendar}" : "Removeu uma hiperligação pública para o calendário {calendar}",
+ "{actor} shared calendar {calendar} with you" : "{actor} partilhou o calendário {calendar} consigo",
+ "You shared calendar {calendar} with {user}" : "Partilhou o calendário {calendar} com {user}",
+ "{actor} shared calendar {calendar} with {user}" : "{actor} partilhou o calendário {calendar} com {user}",
+ "{actor} unshared calendar {calendar} from you" : "{actor} retirou-lhe a partilha do calendário {calendar}",
+ "You unshared calendar {calendar} from {user}" : "Retirou a partilha do calendário {calendar} com {user}",
+ "{actor} unshared calendar {calendar} from {user}" : "{actor} retirou a partilha do calendário {calendar} com {user}",
+ "{actor} unshared calendar {calendar} from themselves" : "{actor} deixou de partilhar o calendário {calendar} de próprio",
+ "You shared calendar {calendar} with group {group}" : "partilhou o calendário {calendar} com o grupo {group}",
+ "{actor} shared calendar {calendar} with group {group}" : "{actor} partilhou o calendário {calendar} com o grupo {group}",
+ "You unshared calendar {calendar} from group {group}" : "deixou de partilhar o calendário {calendar} do grupo {group}",
+ "{actor} unshared calendar {calendar} from group {group}" : "{actor} deixou de partilhar o calendário {calendar} do grupo {group}",
+ "Untitled event" : "Evento sem título",
+ "{actor} created event {event} in calendar {calendar}" : "{actor} criou o evento {event} in o calendário {calendar}",
+ "You created event {event} in calendar {calendar}" : "criou o evento {event} in o calendário {calendar}",
+ "{actor} deleted event {event} from calendar {calendar}" : "{actor} eliminou o evento {event} de o calendário {calendar}",
+ "You deleted event {event} from calendar {calendar}" : "eliminou o evento {event} de o calendário {calendar}",
+ "{actor} updated event {event} in calendar {calendar}" : "{actor} atualizou o evento {event} in o calendário {calendar}",
+ "You updated event {event} in calendar {calendar}" : "atualizou o evento {event} in o calendário {calendar}",
+ "{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} moveu o evento {event} de o calendário {sourceCalendar} para o calendário {targetCalendar}",
+ "You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "moveu o evento {event} de o calendário {sourceCalendar} para o calendário {targetCalendar}",
+ "{actor} restored event {event} of calendar {calendar}" : "{actor} restaurou o evento {event} of o calendário {calendar}",
+ "You restored event {event} of calendar {calendar}" : "restaurou o evento {event} of o calendário {calendar}",
+ "Busy" : "Ocupado",
+ "{actor} created to-do {todo} in list {calendar}" : "{actor} criou to-do {todo} in list {calendar}",
+ "You created to-do {todo} in list {calendar}" : "criou to-do {todo} in list {calendar}",
+ "{actor} deleted to-do {todo} from list {calendar}" : "{actor} eliminou to-do {todo} de list {calendar}",
+ "You deleted to-do {todo} from list {calendar}" : "eliminou to-do {todo} de list {calendar}",
+ "{actor} updated to-do {todo} in list {calendar}" : "{actor} atualizou to-do {todo} in list {calendar}",
+ "You updated to-do {todo} in list {calendar}" : "atualizou to-do {todo} in list {calendar}",
+ "{actor} solved to-do {todo} in list {calendar}" : "{actor} concluiu a tarefa {todo} na lista {calendar}",
+ "You solved to-do {todo} in list {calendar}" : "solved to-do {todo} in list {calendar}",
+ "{actor} reopened to-do {todo} in list {calendar}" : "{actor} reabriu a tarefa {todo} na lista {calendar}",
+ "You reopened to-do {todo} in list {calendar}" : "reopened to-do {todo} in list {calendar}",
+ "{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} moveu to-do {todo} de list {sourceCalendar} para list {targetCalendar}",
+ "You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "moveu to-do {todo} de list {sourceCalendar} para list {targetCalendar}",
+ "Calendar, contacts and tasks" : "Calendário, contactos e tarefas",
+ "A <strong>calendar</strong> was modified" : "O <strong>calendário</strong> foi modificado.",
+ "A calendar <strong>event</strong> was modified" : "Um <strong>event</strong> do calendário foi modificado",
+ "A calendar <strong>to-do</strong> was modified" : "Foi modificada uma <strong>tarefa</strong> do calendário",
+ "Contact birthdays" : "Aniversário dos contactos",
+ "Death of %s" : "Falecimento de %s",
+ "Untitled calendar" : "Calendário sem titulo",
+ "Calendar:" : "Calendário:",
+ "Date:" : "Data:",
+ "Where:" : "Local:",
+ "Description:" : "Descrição:",
+ "_%n year_::_%n years_" : ["%n ano","%n anos","%n anos"],
+ "_%n month_::_%n months_" : ["%n mês","%n meses","%n meses"],
+ "_%n day_::_%n days_" : ["%n dia","%n dias","%n dias"],
+ "_%n hour_::_%n hours_" : ["%n hora","%n horas","%n horas"],
+ "_%n minute_::_%n minutes_" : ["%n minuto","%n minutos","%n minutos"],
+ "%s (in %s)" : "%s (em %s)",
+ "%s (%s ago)" : "%s (%s atrás)",
+ "Calendar: %s" : "Calendário: %s",
+ "Date: %s" : "Data: %s",
+ "Description: %s" : "Descrição: %s",
+ "Where: %s" : "Local: %s",
+ "%1$s via %2$s" : "%1$s via %2$s",
+ "In the past on %1$s for the entire day" : "No passado em %1$s durante todo o dia",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Daqui a um minuto em %1$s para todo o dia","Daqui a %n minutos em %1$s para todo o dia","Daqui a %n minutos em %1$s para todo o dia"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Daqui a um hora em %1$s para todo o dia","Daqui a %n horas em %1$s para todo o dia","Daqui a %n horas em %1$s para todo o dia"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Daqui a um dia em %1$s para todo o dia","Daqui a %n dias em %1$s para todo o dia","Daqui a %n dias em %1$s para todo o dia"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Daqui a um semana em %1$s para todo o dia","Daqui a %n semanas em %1$s para todo o dia","Daqui a %n semanas em %1$s para todo o dia"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Daqui a um mês em %1$s para todo o dia","Daqui a %n meses em %1$s para todo o dia","Daqui a %n meses em %1$s para todo o dia"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Daqui a um ano em %1$s para todo o dia","Daqui a %n anos em %1$s para todo o dia","Daqui a %n anos em %1$s para todo o dia"],
+ "In the past on %1$s between %2$s - %3$s" : "No passado em %1$s entre %2$s - %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Daqui a um minuto em %1$s entre %2$s - %3$s","Daqui a %n minutos em %1$s entre %2$s - %3$s","Daqui a %n minutos em %1$s entre %2$s - %3$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Daqui a um hora em %1$s entre %2$s - %3$s","Daqui a %n horas em %1$s entre %2$s - %3$s","Daqui a %n horas em %1$s entre %2$s - %3$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Daqui a um dia em %1$s entre %2$s - %3$s","Daqui a %n dias em %1$s entre %2$s - %3$s","Daqui a %n dias em %1$s entre %2$s - %3$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Daqui a um semana em %1$s entre %2$s - %3$s","Daqui a %n semanas em %1$s entre %2$s - %3$s","Daqui a %n semanas em %1$s entre %2$s - %3$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Daqui a um mês em %1$s entre %2$s - %3$s","Daqui a %n meses em %1$s entre %2$s - %3$s","Daqui a %n meses em %1$s entre %2$s - %3$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Daqui a um ano em %1$s entre %2$s - %3$s","Daqui a %n anos em %1$s entre %2$s - %3$s","Daqui a %n anos em %1$s entre %2$s - %3$s"],
+ "Could not generate when statement" : "Não foi possível gerar a expressão \"quando\"",
+ "Every Day for the entire day" : "Todos os dias, dia inteiro",
+ "Every Day for the entire day until %1$s" : "Todos os dias, dia inteiro até %1$s",
+ "Every Day between %1$s - %2$s" : "Todos os dias entre %1$s e %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "Todos os dias entre %1$s e %2$s até %3$s",
+ "Every %1$d Days for the entire day" : "A cada %1$d dias, dia inteiro",
+ "Every %1$d Days for the entire day until %2$s" : "A cada %1$d dias, dia inteiro até %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "A cada %1$d dias entre %2$s e %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "A cada %1$d dias entre %2$s e %3$s até %4$s",
+ "Could not generate event recurrence statement" : "Não foi possível gerar a expressão de recorrência do evento",
+ "Every Week on %1$s for the entire day" : "Todas as semanas, em %1$s, dia inteiro",
+ "Every Week on %1$s for the entire day until %2$s" : "Todas as semanas, em %1$s, dia inteiro até %2$s",
+ "Every Week on %1$s between %2$s - %3$s" : "Todas as semanas, em %1$s entre %2$s e %3$s",
+ "Every Week on %1$s between %2$s - %3$s until %4$s" : "Todas as semanas, em %1$s entre %2$s e %3$s até %4$s",
+ "Every %1$d Weeks on %2$s for the entire day" : "A cada %1$d semanas, em %2$s, dia inteiro",
+ "Every %1$d Weeks on %2$s for the entire day until %3$s" : "A cada %1$d semanas, em %2$s, dia inteiro até %3$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s" : "A cada %1$d semanas, em %2$s entre %3$s e %4$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "A cada %1$d semanas, em %2$s entre %3$s e %4$s até %5$s",
+ "Every Month on the %1$s for the entire day" : "Todos os meses, no dia %1$s, dia inteiro",
+ "Every Month on the %1$s for the entire day until %2$s" : "Todos os meses, no dia %1$s, dia inteiro até %2$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "Todos os meses, no dia %1$s entre %2$s e %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Todos os meses, no dia %1$s entre %2$s e %3$s até %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "A cada %1$d meses, no dia %2$s, dia inteiro",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "A cada %1$d meses, no dia %2$s, dia inteiro até %3$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "A cada %1$d meses, no dia %2$s entre %3$s e %4$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "A cada %1$d meses, no dia %2$s entre %3$s e %4$s até %5$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "Todos os anos em %1$s, no dia %2$s, dia inteiro",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Todos os anos em %1$s, no dia %2$s, dia inteiro até %3$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Todos os anos em %1$s, no dia %2$s entre %3$s e %4$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Todos os anos em %1$s, no dia %2$s entre %3$s e %4$s até %5$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "A cada %1$d anos em %2$s, no dia %3$s, dia inteiro",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "A cada %1$d anos em %2$s, no dia %3$s, dia inteiro até %4$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "A cada %1$d anos em %2$s, no dia %3$s entre %4$s e %5$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "A cada %1$d anos em %2$s, no dia %3$s entre %4$s e %5$s até %6$s",
+ "On specific dates for the entire day until %1$s" : "Em datas específicas, dia inteiro até %1$s",
+ "On specific dates between %1$s - %2$s until %3$s" : "Em datas específicas entre %1$s e %2$s até %3$s",
+ "In the past on %1$s" : "No passado em %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Daqui a um minuto em %1$s","Daqui a %n minutos em %1$s","Daqui a %n minutos em %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Daqui a um hora em %1$s","Daqui a %n horas em %1$s","Daqui a %n horas em %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Daqui a um dia em %1$s","Daqui a %n dias em %1$s","Daqui a %n dias em %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Daqui a um semana em %1$s","Daqui a %n semanas em %1$s","Daqui a %n semanas em %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Daqui a um mês em %1$s","Daqui a %n meses em %1$s","Daqui a %n meses em %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["Daqui a um ano em %1$s","Daqui a %n anos em %1$s","Daqui a %n anos em %1$s"],
+ "In the past on %1$s then on %2$s" : "No passado em %1$s e depois %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Daqui a um minuto em %1$s e depois em %2$s","Daqui a %n minutos em %1$s e depois em %2$s","Daqui a %n minutos em %1$s e depois em %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Daqui a um hora em %1$s e depois em %2$s","Daqui a %n horas em %1$s e depois em %2$s","Daqui a %n horas em %1$s e depois em %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Daqui a um dia em %1$s e depois em %2$s","Daqui a %n dias em %1$s e depois em %2$s","Daqui a %n dias em %1$s e depois em %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Daqui a um semana em %1$s e depois em %2$s","Daqui a %n semanas em %1$s e depois em %2$s","Daqui a %n semanas em %1$s e depois em %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Daqui a um mês em %1$s e depois em %2$s","Daqui a %n meses em %1$s e depois em %2$s","Daqui a %n meses em %1$s e depois em %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Daqui a um ano em %1$s e depois em %2$s","Daqui a %n anos em %1$s e depois em %2$s","Daqui a %n anos em %1$s e depois em %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "No passado em %1$s e depois em %2$s e %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Daqui a um minuto em %1$s e depois em %2$s e %3$s","Daqui a %n minutos em %1$s e depois em %2$s e %3$s","Daqui a %n minutos em %1$s e depois em %2$s e %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Daqui a um hora em %1$s e depois em %2$s e %3$s","Daqui a %n horas em %1$s e depois em %2$s e %3$s","Daqui a %n horas em %1$s e depois em %2$s e %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Daqui a um dia em %1$s e depois em %2$s e %3$s","Daqui a %n dias em %1$s e depois em %2$s e %3$s","Daqui a %n dias em %1$s e depois em %2$s e %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Daqui a um semana em %1$s e depois em %2$s e %3$s","Daqui a %n semanas em %1$s e depois em %2$s e %3$s","Daqui a %n semanas em %1$s e depois em %2$s e %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Daqui a um mês em %1$s e depois em %2$s e %3$s","Daqui a %n meses em %1$s e depois em %2$s e %3$s","Daqui a %n meses em %1$s e depois em %2$s e %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Daqui a um ano em %1$s e depois em %2$s e %3$s","Daqui a %n anos em %1$s e depois em %2$s e %3$s","Daqui a %n anos em %1$s e depois em %2$s e %3$s"],
+ "Could not generate next recurrence statement" : "Não foi possível gerar a próxima expressão de recorrência",
+ "Cancelled: %1$s" : "Cancelado: %1$s",
+ "\"%1$s\" has been canceled" : "\"%1$s\" foi cancelado",
+ "Re: %1$s" : "Re: %1$s",
+ "%1$s has accepted your invitation" : "%1$s aceitou o seu convite",
+ "%1$s has tentatively accepted your invitation" : "%1$s aceitou provisoriamente o seu convite",
+ "%1$s has declined your invitation" : "%1$s recusou o seu convite",
+ "%1$s has responded to your invitation" : "%1$s respondeu ao seu convite",
+ "Invitation updated: %1$s" : "Convite atualizado: %1$s",
+ "%1$s updated the event \"%2$s\"" : "%1$s atualizou o evento \"%2$s\"",
+ "Invitation: %1$s" : "Convite: %1$s",
+ "%1$s would like to invite you to \"%2$s\"" : "%1$s gostaria de convidá‑lo para \"%2$s\"",
+ "Organizer:" : "Organizador:",
+ "Attendees:" : "Participantes:",
+ "Title:" : "Titulo: ",
+ "When:" : "Quando:",
+ "Location:" : "Localização:",
+ "Link:" : "Ligação:",
+ "Occurring:" : "Ocorrências:",
+ "Accept" : "Aceitar",
+ "Decline" : "Recusar",
+ "More options …" : "Mais opções…",
+ "More options at %s" : "Mais opções em %s",
+ "Monday" : "Segunda",
+ "Tuesday" : "Terça",
+ "Wednesday" : "Quarta",
+ "Thursday" : "Quinta",
+ "Friday" : "Sexta",
+ "Saturday" : "Sábado",
+ "Sunday" : "Domingo",
+ "January" : "Janeiro",
+ "February" : "Fevereiro",
+ "March" : "Março",
+ "April" : "Abril",
+ "May" : "Maio",
+ "June" : "Junho",
+ "July" : "Julho",
+ "August" : "Agosto",
+ "September" : "Setembro",
+ "October" : "Outubro",
+ "November" : "Novembro",
+ "December" : "Dezembro",
+ "First" : "Primeiro",
+ "Second" : "Segundo",
+ "Third" : "Terceiro",
+ "Fourth" : "Quarto",
+ "Fifth" : "Quinto",
+ "Last" : "Último",
+ "Second Last" : "Penúltimo",
+ "Third Last" : "Antepenúltimo",
+ "Fourth Last" : "Quarto do fim",
+ "Fifth Last" : "Quinto do fim",
+ "Contacts" : "Contactos",
+ "{actor} created address book {addressbook}" : "{actor} criou address book {addressbook}",
+ "You created address book {addressbook}" : "criou address book {addressbook}",
+ "{actor} deleted address book {addressbook}" : "{actor} eliminou address book {addressbook}",
+ "You deleted address book {addressbook}" : "eliminou address book {addressbook}",
+ "{actor} updated address book {addressbook}" : "{actor} atualizou address book {addressbook}",
+ "You updated address book {addressbook}" : "atualizou address book {addressbook}",
+ "{actor} shared address book {addressbook} with you" : "{actor} partilhou address book {addressbook} com you",
+ "You shared address book {addressbook} with {user}" : "partilhou address book {addressbook} com {user}",
+ "{actor} shared address book {addressbook} with {user}" : "{actor} partilhou address book {addressbook} com {user}",
+ "{actor} unshared address book {addressbook} from you" : "{actor} deixou de partilhar address book {addressbook} de you",
+ "You unshared address book {addressbook} from {user}" : "deixou de partilhar address book {addressbook} de {user}",
+ "{actor} unshared address book {addressbook} from {user}" : "{actor} deixou de partilhar address book {addressbook} de {user}",
+ "{actor} unshared address book {addressbook} from themselves" : "{actor} deixou de partilhar address book {addressbook} de próprio",
+ "You shared address book {addressbook} with group {group}" : "partilhou address book {addressbook} com o grupo {group}",
+ "{actor} shared address book {addressbook} with group {group}" : "{actor} partilhou address book {addressbook} com o grupo {group}",
+ "You unshared address book {addressbook} from group {group}" : "deixou de partilhar address book {addressbook} do grupo {group}",
+ "{actor} unshared address book {addressbook} from group {group}" : "{actor} deixou de partilhar address book {addressbook} do grupo {group}",
+ "{actor} created contact {card} in address book {addressbook}" : "{actor} criou contact {card} in address book {addressbook}",
+ "You created contact {card} in address book {addressbook}" : "criou contact {card} in address book {addressbook}",
+ "{actor} deleted contact {card} from address book {addressbook}" : "{actor} eliminou contact {card} de address book {addressbook}",
+ "You deleted contact {card} from address book {addressbook}" : "eliminou contact {card} de address book {addressbook}",
+ "{actor} updated contact {card} in address book {addressbook}" : "{actor} atualizou contact {card} in address book {addressbook}",
+ "You updated contact {card} in address book {addressbook}" : "atualizou contact {card} in address book {addressbook}",
+ "A <strong>contact</strong> or <strong>address book</strong> was modified" : "Foi modificado um <strong>contacto</strong> ou <strong>livro de endereços</strong>",
+ "Accounts" : "Contas",
+ "System address book which holds all accounts" : "Livro de endereços do sistema que contém todas as contas",
+ "File is not updatable: %1$s" : "O ficheiro não pode ser atualizado: %1$s",
+ "Failed to get storage for file" : "Falha ao obter armazenamento para o ficheiro",
+ "Could not write to final file, canceled by hook" : "Não foi possível escrever no ficheiro final, cancelado por hook",
+ "Could not write file contents" : "Não foi possível escrever o conteúdo do ficheiro",
+ "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
+ "Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Erro ao copiar ficheiro para o destino (copiado: %1$s, tamanho esperado: %2$s)",
+ "Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Tamanho esperado de %1$s, mas leitura diferente (do cliente Nextcloud) e escreveu (para armazenamento Nextcloud) %2$s. Possível problema do lado do cliente ou ao escrever no armazenamento do servidor.",
+ "Could not rename part file to final file, canceled by hook" : "Não foi possível renomear o ficheiro parcial para ficheiro final, cancelado por hook",
+ "Could not rename part file to final file" : "Não foi possível renomear o ficheiro parcial para ficheiro final",
+ "Failed to check file size: %1$s" : "Falha ao verificar o tamanho do ficheiro: %1$s",
+ "Could not open file: %1$s, file does seem to exist" : "Não foi possível abrir o ficheiro: %1$s, o ficheiro parece existir",
+ "Could not open file: %1$s, file doesn't seem to exist" : "Não foi possível abrir o ficheiro: %1$s, o ficheiro não parece existir",
+ "Encryption not ready: %1$s" : "Encriptação não pronta: %1$s",
+ "Failed to open file: %1$s" : "Falha ao abrir o ficheiro: %1$s",
+ "Failed to unlink: %1$s" : "Falha ao eliminar: %1$s",
+ "Failed to write file contents: %1$s" : "Falha ao escrever o conteúdo do ficheiro: %1$s",
+ "File not found: %1$s" : "Ficheiro não encontrado: %1$s",
+ "Invalid target path" : "Caminho de destino inválido",
+ "System is in maintenance mode." : "O sistema está em modo de manutenção.",
+ "Upgrade needed" : "É necessária atualização",
+ "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "O seu %s precisa de estar configurado para usar HTTPS para que possa utilizar CalDAV e CardDAV com iOS/macOS.",
+ "Configures a CalDAV account" : "Configura uma conta CalDAV",
+ "Configures a CardDAV account" : "Configura uma conta CardDAV",
+ "Events" : "Eventos",
+ "Untitled task" : "Tarefa sem título",
+ "Completed on %s" : "Concluída em %s",
+ "Due on %s by %s" : "Vence em %s às %s",
+ "Due on %s" : "Vence em %s",
+ "System Address Book" : "Livro de endereços do sistema",
+ "The system address book contains contact information for all users in your instance." : "O livro de endereços do sistema contém informação de contacto de todos os utilizadores da sua instância.",
+ "Enable System Address Book" : "Ativar livro de endereços do sistema",
+ "DAV system address book" : "Livro de endereços DAV do sistema",
+ "No outstanding DAV system address book sync." : "Sem sincronizações pendentes do livro de endereços DAV do sistema.",
+ "The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "A sincronização do livro de endereços DAV do sistema ainda não foi executada porque a sua instância não tem utilizadores; execute‑a manualmente com \"occ dav:sync-system-addressbook\".",
+ "WebDAV endpoint" : "Endpoint WebDAV",
+ "Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Não foi possível verificar se o seu servidor web está corretamente configurado para permitir a sincronização de ficheiros via WebDAV. Verifique manualmente.",
+ "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "O seu servidor da Web não está configurado corretamente para permitir a sincronização de ficheiros, porque a interface WebDAV parece estar com problemas.",
+ "Your web server is properly set up to allow file synchronization over WebDAV." : "O seu servidor web está corretamente configurado para permitir a sincronização de ficheiros via WebDAV.",
+ "Migrated calendar (%1$s)" : "Calendário migrado (%1$s)",
+ "Calendars including events, details and attendees" : "Calendários incluindo eventos, detalhes e participantes",
+ "Contacts and groups" : "Contactos e grupos",
+ "WebDAV" : "WebDAV",
+ "Absence saved" : "Ausência guardada",
+ "Failed to save your absence settings" : "Falha ao guardar as suas definições de ausência",
+ "Absence cleared" : "Ausência removida",
+ "Failed to clear your absence settings" : "Falha ao remover as suas definições de ausência",
+ "First day" : "Primeiro dia",
+ "Last day (inclusive)" : "Último dia (inclusive)",
+ "Out of office replacement (optional)" : "Substituto durante ausência (opcional)",
+ "Name of the replacement" : "Nome do substituto",
+ "No results." : "Sem resultados.",
+ "Start typing." : "Comece a escrever.",
+ "Short absence status" : "Estado de ausência curto",
+ "Long absence Message" : "Mensagem de ausência longa",
+ "Save" : "Guardar",
+ "Disable absence" : "Desativar ausência",
+ "Failed to load availability" : "Falha ao carregar disponibilidade",
+ "Saved availability" : "Disponibilidade guardada",
+ "Failed to save availability" : "Falha ao guardar disponibilidade",
+ "Time zone:" : "Fuso horário:",
+ "to" : "Para",
+ "Delete slot" : "Eliminar intervalo",
+ "No working hours set" : "Sem horário de trabalho definido",
+ "Add slot" : "Adicionar intervalo",
+ "Weekdays" : "Dias da semana",
+ "Pick a start time for {dayName}" : "Escolha uma hora de início para {dayName}",
+ "Pick a end time for {dayName}" : "Escolha uma hora de fim para {dayName}",
+ "Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Definir automaticamente o estado para \"Não incomodar\" fora do horário de disponibilidade para silenciar todas as notificações.",
+ "Cancel" : "Cancelar",
+ "Import" : "Importar",
+ "Error while saving settings" : "Erro ao guardar definições",
+ "Contact reset successfully" : "Contacto reposto com sucesso",
+ "Error while resetting contact" : "Erro ao repor contacto",
+ "Contact imported successfully" : "Contacto importado com sucesso",
+ "Error while importing contact" : "Erro ao importar contacto",
+ "Import contact" : "Importar contacto",
+ "Reset to default" : "Repor original",
+ "Import contacts" : "Importar contactos",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "A importação de um novo ficheiro .vcf eliminará o contacto predefinido existente e substituí‑lo‑á pelo novo. Deseja continuar?",
+ "Failed to save example event creation setting" : "Falha ao guardar a definição de criação de evento de exemplo",
+ "Failed to upload the example event" : "Falha ao carregar o evento de exemplo",
+ "Custom example event was saved successfully" : "Evento de exemplo personalizado guardado com sucesso",
+ "Failed to delete the custom example event" : "Falha ao eliminar o evento de exemplo personalizado",
+ "Custom example event was deleted successfully" : "Evento de exemplo personalizado eliminado com sucesso",
+ "Import calendar event" : "Importar evento de calendário",
+ "Uploading a new event will overwrite the existing one." : "O carregamento de um novo evento substituirá o existente.",
+ "Upload event" : "Carregar evento",
+ "Availability" : "Disponibilidade",
+ "If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se configurar o seu horário de trabalho, outras pessoas saberão quando está fora do escritório ao marcar uma reunião.",
+ "Absence" : "Ausência",
+ "Configure your next absence period." : "Configure o seu próximo período de ausência.",
+ "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale também a {calendarappstoreopen}aplicação Calendário {linkclose}, ou {calendardocopen} ligue o seu computador e telemóvel para sincronizar ↗{linkclose}.",
+ "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Certifique‑se de configurar corretamente {emailopen}o servidor de email{linkclose}.",
+ "Calendar server" : "Servidor de calendário",
+ "Send invitations to attendees" : "Enviar convites aos participantes",
+ "Automatically generate a birthday calendar" : "Gerar automaticamente um calendário de aniversários",
+ "Birthday calendars will be generated by a background job." : "Os calendários de aniversário serão gerados por uma tarefa em segundo plano.",
+ "Hence they will not be available immediately after enabling but will show up after some time." : "Por isso, não estarão disponíveis imediatamente após a ativação, mas aparecerão após algum tempo.",
+ "Send notifications for events" : "Enviar notificações de eventos",
+ "Notifications are sent via background jobs, so these must occur often enough." : "As notificações são enviadas através de tarefas em segundo plano; estas devem ser executadas com frequência suficiente.",
+ "Send reminder notifications to calendar sharees as well" : "Enviar também notificações de lembrete aos partilhados do calendário",
+ "Reminders are always sent to organizers and attendees." : "Os lembretes são sempre enviados aos organizadores e participantes.",
+ "Enable notifications for events via push" : "Ativar notificações push para eventos",
+ "Example content" : "Conteúdo de exemplo",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "O conteúdo de exemplo serve para demonstrar as funcionalidades do Nextcloud. É fornecido com o Nextcloud e pode ser substituído por conteúdo personalizado.",
+ "There was an error updating your attendance status." : "Ocorreu um erro ao atualizar o seu estado de participação.",
+ "Please contact the organizer directly." : "Contacte diretamente o organizador.",
+ "Are you accepting the invitation?" : "Aceita o convite?",
+ "Tentative" : "Tentativa",
+ "Your attendance was updated successfully." : "O seu estado de participação foi atualizado com sucesso."
+},"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/dav/l10n/ro.js b/apps/dav/l10n/ro.js
deleted file mode 100644
index d603496099d..00000000000
--- a/apps/dav/l10n/ro.js
+++ /dev/null
@@ -1,60 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendar",
- "Todos" : "De făcut",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} a creat calendarul {calendar}",
- "You created calendar {calendar}" : "Ai creat calendarul {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} a șters calendarul {calendar}",
- "You deleted calendar {calendar}" : "Ai șters calendarul {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} a actualiza calendarul {calendar}",
- "You updated calendar {calendar}" : "Ai actualizat calendarul {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} a partajat calendarul {calendar} cu tine",
- "You shared calendar {calendar} with {user}" : "Ai partajat calendarul {calendar} cu {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} a partajat calendarul {calendar} cu {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} a eliminat partajarea calendarului {calendar} cu tine",
- "You unshared calendar {calendar} from {user}" : "Ai eliminat partajarea calendarului {calendar} cu {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} a eliminat partajarea calendarului {calendar} cu {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} a eliminat partajarea calendarului {calendar} catre sine",
- "You shared calendar {calendar} with group {group}" : "Ai partajat calendarul {calendar} cu grupul {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} a partajat calendarul {calendar} cu grupul {group}",
- "You unshared calendar {calendar} from group {group}" : "Ai eliminat partajarea calendarului {calendar} către grupul {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} a elimina partajarea calendarului {calendar} către grupul {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} a creat evenimentul {event} în calendarul {calendar}",
- "You created event {event} in calendar {calendar}" : "Ai creat evenimentul {event} în calendarul {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} a șters evenimentul {event} din calendarul {calendar}",
- "You deleted event {event} from calendar {calendar}" : "AI șters evenimentul {event} din calendarul {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} a actualizat evenimentul {event} din calendarul {calendar}",
- "You updated event {event} in calendar {calendar}" : "Ai actualizat evenimentul {event} din calendarul {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} a creat lista {todo} în calendarul {calendar}",
- "You created todo {todo} in list {calendar}" : "Ai creat lista {todo} în lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} a șters lista {todo} din calendarul {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Ai șters lista {todo} din calendarul {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} a actualizat lista {todo} din calendarul {calendar}",
- "You updated todo {todo} in list {calendar}" : "Ai actualizat lista {todo} din calendarul {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} a completat lista {todo} din calendarul {calendar}",
- "You solved todo {todo} in list {calendar}" : "Ai completat lista {todo} din calendarul {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} a redeschis lista {todo} din calendarul {calendar}",
- "You reopened todo {todo} in list {calendar}" : "Ai redeschis lista {todo} din calendarul {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendar</strong> a fost modificat",
- "A calendar <strong>event</strong> was modified" : "Un <strong>eveniment</strong> din calendar a fost modificat",
- "A calendar <strong>todo</strong> was modified" : "O <strong>listă</strong> din calendar a fost modificată",
- "Contact birthdays" : "Zile de naștere ale persoanelor de contact",
- "Where:" : "Unde:",
- "Description:" : "Descriere:",
- "_%n year_::_%n years_" : ["%nan","%nani","%nani"],
- "%1$s via %2$s" : "%1$sprin %2$s",
- "Hello %s," : "Salut %s,",
- "Accept" : "Accept",
- "Decline" : "Refuză",
- "Contacts" : "Persoane de contact",
- "Tasks" : "Sarcini",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativă",
- "Save" : "Salvează",
- "Technical details" : "Detalii tehnice",
- "Remote Address: %s" : "Adresă la distanță: %s",
- "Request ID: %s" : "ID-ul cererii: %s"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/dav/l10n/ro.json b/apps/dav/l10n/ro.json
deleted file mode 100644
index fb2c0a76987..00000000000
--- a/apps/dav/l10n/ro.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendar",
- "Todos" : "De făcut",
- "Personal" : "Personal",
- "{actor} created calendar {calendar}" : "{actor} a creat calendarul {calendar}",
- "You created calendar {calendar}" : "Ai creat calendarul {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} a șters calendarul {calendar}",
- "You deleted calendar {calendar}" : "Ai șters calendarul {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} a actualiza calendarul {calendar}",
- "You updated calendar {calendar}" : "Ai actualizat calendarul {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} a partajat calendarul {calendar} cu tine",
- "You shared calendar {calendar} with {user}" : "Ai partajat calendarul {calendar} cu {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} a partajat calendarul {calendar} cu {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} a eliminat partajarea calendarului {calendar} cu tine",
- "You unshared calendar {calendar} from {user}" : "Ai eliminat partajarea calendarului {calendar} cu {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} a eliminat partajarea calendarului {calendar} cu {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} a eliminat partajarea calendarului {calendar} catre sine",
- "You shared calendar {calendar} with group {group}" : "Ai partajat calendarul {calendar} cu grupul {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} a partajat calendarul {calendar} cu grupul {group}",
- "You unshared calendar {calendar} from group {group}" : "Ai eliminat partajarea calendarului {calendar} către grupul {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} a elimina partajarea calendarului {calendar} către grupul {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} a creat evenimentul {event} în calendarul {calendar}",
- "You created event {event} in calendar {calendar}" : "Ai creat evenimentul {event} în calendarul {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} a șters evenimentul {event} din calendarul {calendar}",
- "You deleted event {event} from calendar {calendar}" : "AI șters evenimentul {event} din calendarul {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} a actualizat evenimentul {event} din calendarul {calendar}",
- "You updated event {event} in calendar {calendar}" : "Ai actualizat evenimentul {event} din calendarul {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} a creat lista {todo} în calendarul {calendar}",
- "You created todo {todo} in list {calendar}" : "Ai creat lista {todo} în lista {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} a șters lista {todo} din calendarul {calendar}",
- "You deleted todo {todo} from list {calendar}" : "Ai șters lista {todo} din calendarul {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} a actualizat lista {todo} din calendarul {calendar}",
- "You updated todo {todo} in list {calendar}" : "Ai actualizat lista {todo} din calendarul {calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} a completat lista {todo} din calendarul {calendar}",
- "You solved todo {todo} in list {calendar}" : "Ai completat lista {todo} din calendarul {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} a redeschis lista {todo} din calendarul {calendar}",
- "You reopened todo {todo} in list {calendar}" : "Ai redeschis lista {todo} din calendarul {calendar}",
- "A <strong>calendar</strong> was modified" : "Un <strong>calendar</strong> a fost modificat",
- "A calendar <strong>event</strong> was modified" : "Un <strong>eveniment</strong> din calendar a fost modificat",
- "A calendar <strong>todo</strong> was modified" : "O <strong>listă</strong> din calendar a fost modificată",
- "Contact birthdays" : "Zile de naștere ale persoanelor de contact",
- "Where:" : "Unde:",
- "Description:" : "Descriere:",
- "_%n year_::_%n years_" : ["%nan","%nani","%nani"],
- "%1$s via %2$s" : "%1$sprin %2$s",
- "Hello %s," : "Salut %s,",
- "Accept" : "Accept",
- "Decline" : "Refuză",
- "Contacts" : "Persoane de contact",
- "Tasks" : "Sarcini",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativă",
- "Save" : "Salvează",
- "Technical details" : "Detalii tehnice",
- "Remote Address: %s" : "Adresă la distanță: %s",
- "Request ID: %s" : "ID-ul cererii: %s"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/ru.js b/apps/dav/l10n/ru.js
index 1b9aa0e5f13..e170bb36582 100644
--- a/apps/dav/l10n/ru.js
+++ b/apps/dav/l10n/ru.js
@@ -72,7 +72,77 @@ OC.L10N.register(
"Description: %s" : "Описание: %s",
"Where: %s" : "Где: %s",
"%1$s via %2$s" : "%1$s через %2$s",
+ "In the past on %1$s for the entire day" : "В прошлом, %1$s, в течение всего дня",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Через минуту, %1$s, в течение всего дня","Через %n минуты, %1$s, в течение всего дня","Через %n минут, %1$s, в течение всего дня","Через %n минут, %1$s, в течение всего дня"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Через час, %1$s, в течение всего дня","Через %n часа, %1$s, в течение всего дня","Через %n часов, %1$s, в течение всего дня","Через %n часов, %1$s, в течение всего дня"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Через день, %1$s, в течение всего дня","Через %n дня, %1$s, в течение всего дня","Через %n дней,%1$s, в течение всего дня","Через %n дней, %1$s, в течение всего дня"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Через неделю, %1$s, в течение всего дня","Через %n недели, %1$s, в течение всего дня","Через %n недель, %1$s, в течение всего дня","Через %n недель, %1$s, в течение всего дня"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Через месяц, %1$s, в течение всего дня","Через %n месяца, %1$s, в течение всего дня","Через %n месяцев, %1$s, в течение всего дня","Через %n месяцев, %1$s, в течение всего дня"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Через год, %1$s, в течение всего дня","Через %n года, %1$s, в течение всего дня","Через %n лет, %1$s, в течение всего дня","Через %n лет, %1$s, в течение всего дня"],
+ "In the past on %1$s between %2$s - %3$s" : "В прошлом, %1$s, с %2$s до %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Через минуту, %1$s, с %2$s до %3$s","Через %n минуты, %1$s, с %2$s до %3$s","Через %n минут, %1$s, с %2$s до %3$s","Через %n минут, %1$s, с %2$s до %3$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Через час, %1$s, с %2$s до %3$s","Через %n часа, %1$s, с %2$s до %3$s","Через %n часов, %1$s, с %2$s до %3$s","Через %n часов, %1$s, с %2$s до %3$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Через день, %1$s, с %2$s до %3$s","Через %n дня %1$s, с %2$s до %3$s","Через %n дней, %1$s, с %2$s до %3$s","Через %n дней, %1$s, с %2$s до %3$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Через неделю, %1$s, с %2$s до %3$s","Через %n недели, %1$s, с %2$s до %3$s","Через %n недель, %1$s, с %2$s до %3$s","Через %n недель, %1$s, с %2$s до %3$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Через месяц, %1$s, с %2$s до %3$s","Через %n месяца, %1$s, с %2$s до %3$s","Через %n месяцев, %1$s, с %2$s до %3$s","Через %n месяцев, %1$s, с %2$s до %3$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Через год, %1$s, с %2$s до %3$s","Через %n года, %1$s, с %2$s до %3$s","Через %n лет, %1$s, с %2$s до %3$s","Через %n лет, %1$s, с %2$s до %3$s"],
+ "Could not generate when statement" : "Не удалось сгенерировать выражение времени",
"Every Day for the entire day" : "Каждый день в течение всего дня",
+ "Every Day for the entire day until %1$s" : "Каждый день весь день до %1$s",
+ "Every Day between %1$s - %2$s" : "Каждый день с %1$s по %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "Каждый день с %1$s до %2$s до %3$s",
+ "Every %1$d Days for the entire day" : "Каждые %1$d дней в течение всего дня",
+ "Every %1$d Days for the entire day until %2$s" : "Каждые %1$d дней в течение всего дня до %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "Каждые %1$d дней с %2$s до %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "Каждые %1$d дней с %2$s до %3$s до %4$s",
+ "Could not generate event recurrence statement" : "Не удалось сгенерировать правило повторения события",
+ "Every Week on %1$s for the entire day" : "Каждую неделю в %1$s в течение всего дня",
+ "Every Week on %1$s for the entire day until %2$s" : "Каждую неделю по %1$s в течение всего дня до %2$s",
+ "Every Week on %1$s between %2$s - %3$s" : "Каждую неделю в %1$s с %2$s до %3$s",
+ "Every Week on %1$s between %2$s - %3$s until %4$s" : "Каждую неделю по %1$s с %2$s до %3$s до %4$s",
+ "Every %1$d Weeks on %2$s for the entire day" : "Каждые %1$d недель по %2$s в течение всего дня",
+ "Every %1$d Weeks on %2$s for the entire day until %3$s" : "Каждые %1$d недель по %2$s в течение всего дня до %3$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s" : "Каждые %1$d недель по %2$s с %3$s до %4$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Каждые %1$d недель по %2$s с %3$s до %4$s до %5$s",
+ "Every Month on the %1$s for the entire day" : "Каждый месяц %1$s в течение всего дня",
+ "Every Month on the %1$s for the entire day until %2$s" : "Каждый месяц %1$s в течение всего дня до %2$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "Каждый месяц %1$s с %2$s до %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Каждый месяц %1$s с %2$s до %3$s до %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "Каждые %1$d месяцев %2$s в течение всего дня",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "Каждые %1$d месяцев %2$s в течение всего дня до %3$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "Каждые %1$d месяцев %2$s с %3$s до %4$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Каждые %1$d месяцев %2$s с %3$s до %4$s до %5$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "Каждый год в %1$s %2$s в течение всего дня",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Каждый год в %1$s %2$s в течение всего дня до %3$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Каждый год в %1$s %2$s с %3$s до %4$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Каждый год в %1$s %2$s с %3$s до %4$s до %5$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "Каждые %1$d лет в %2$s %3$s в течение всего дня",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Каждые %1$d лет в %2$s %3$s в течение всего дня до %4$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Каждые %1$d лет в %2$s %3$s с %4$s до %5$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Каждые %1$d лет в %2$s %3$s с %4$s до %5$s до %6$s",
+ "On specific dates for the entire day until %1$s" : "В определённые даты, весь день до %1$s",
+ "On specific dates between %1$s - %2$s until %3$s" : "В определённые даты с %1$s по %2$s до %3$s",
+ "In the past on %1$s" : "В прошлом, %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Через минуту, %1$s","Через %n минуты, %1$s","Через %n минут, %1$s","Через %n минут, %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Через час, %1$s","Через %n часа, %1$s","Через %n часов, %1$s","Через %n часов, %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Через день, %1$s","Через %n дня, %1$s","Через %n дней, %1$s","Через %n дней, %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Через неделю, %1$s","Через %n недели,%1$s","Через %n недель, %1$s","Через %n недель, %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Через месяц, %1$s","Через %n месяца, %1$s","Через %n месяцев, %1$s","Через %n месяцев, %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["Через год, %1$s","Через %n года, %1$s","Через %n лет, %1$s","Через %n лет, %1$s"],
+ "In the past on %1$s then on %2$s" : "В прошлом, %1$s, затем %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Через минуту, %1$s, затем %2$s","Через %n минуты, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Через час, %1$s, затем %2$s","Через %n часа, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Через день, %1$s, затем %2$s","Через %n дня, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Через неделю, %1$s, затем %2$s","Через %n недели, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Через месяц, %1$s, затем %2$s","Через %n месяца, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Через год, %1$s, затем %2$s","Через %n года, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "В прошлом, %1$s, затем %2$s и %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Через минуту, %1$s, затем %2$s и %3$s","Через %n минуты, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Через час, %1$s, затем %2$s и %3$s","Через %n часа, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Через день, %1$s, затем %2$s и %3$s","Через %n дня, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Через неделю, %1$s, затем %2$s и %3$s","Через %n недели, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Через месяц, %1$s, затем %2$s и %3$s","Через %n месяца, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Через год, %1$s, затем %2$s и %3$s","Через %n года, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s"],
"Could not generate next recurrence statement" : "Не удалось сгенерировать следующий оператор повторения",
"Cancelled: %1$s" : "Событие отменено: %1$s",
"\"%1$s\" has been canceled" : "Событие «%1$s» отменено",
@@ -119,10 +189,12 @@ OC.L10N.register(
"Second" : "Второй",
"Third" : "Третий",
"Fourth" : "Четвертый",
+ "Fifth" : "Пятый",
"Last" : "Последний",
"Second Last" : "Предпоследний",
- "Third Last" : "Третий по счету",
- "Fourth Last" : "Четвертый по счету",
+ "Third Last" : "Третий с конца",
+ "Fourth Last" : "Четвёртый с конца",
+ "Fifth Last" : "Пятый с конца",
"Contacts" : "Контакты",
"{actor} created address book {addressbook}" : "{actor} создал(а) адресную книгу «{addressbook}»",
"You created address book {addressbook}" : "Вы создали адресную книгу «{addressbook}»",
@@ -178,6 +250,9 @@ OC.L10N.register(
"Completed on %s" : "Завершено %s",
"Due on %s by %s" : "До %s %s",
"Due on %s" : "До %s",
+ "System Address Book" : "Системная адресная книга",
+ "The system address book contains contact information for all users in your instance." : "Системная адресная книга содержит контактную информацию всех пользователей в вашем инстансе.",
+ "Enable System Address Book" : "Включить системную адресную книгу",
"DAV system address book" : "Системная адресная книга DAV",
"No outstanding DAV system address book sync." : "Синхронизация системной адресной книги DAV выполнена.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Синхронизация системной адресной книги DAV ещё не запущена, поскольку в этом экземпляре более 1000 пользователей или произошла ошибка. Перезапустите синхронизацию вручную используя команду «occ dav:sync-system-addressbook».",
@@ -215,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Выберите время начала в {dayName}",
"Pick a end time for {dayName}" : "Выберите время окончания в {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматически изменять статус на «Не беспокоить» вне интервала доступности для отключения уведомлений.",
+ "Cancel" : "Отмена",
+ "Import" : "Импортировать",
+ "Error while saving settings" : "Ошибка при сохранении параметров",
+ "Contact reset successfully" : "Контакт успешно сброшен",
+ "Error while resetting contact" : "Ошибка при сбросе контакта",
+ "Contact imported successfully" : " Контакт успешно импортирован",
+ "Error while importing contact" : " Ошибка при импорте контакта",
+ "Import contact" : "Импортировать контакт",
+ "Reset to default" : "Сбросить изменения",
+ "Import contacts" : "Импортировать контакты",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Импорт нового файла .vcf удалит существующий контакт по умолчанию и заменит его новым. Продолжить?",
+ "Failed to save example event creation setting" : "Не удалось сохранить настройки создания примера события",
+ "Failed to upload the example event" : "Не удалось загрузить пример события",
+ "Custom example event was saved successfully" : "Настраиваемый пример события успешно сохранён",
+ "Failed to delete the custom example event" : "Не удалось удалить настраиваемый пример события",
+ "Custom example event was deleted successfully" : "Настраиваемый пример события успешно удалён",
+ "Import calendar event" : "Импортировать событие календаря",
+ "Uploading a new event will overwrite the existing one." : " Загрузка нового события перезапишет существующее.",
+ "Upload event" : "Загрузить событие",
"Availability" : "Рабочее время",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Если вы настроите свой расписание работы, другие пользователи при планировании встреч смогут видеть, когда вас нет в офисе.",
"Absence" : "Отсутствие",
@@ -231,17 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Отправлять напоминания всем пользователям, имеющим доступ к календарю",
"Reminders are always sent to organizers and attendees." : "Организаторам и участникам уведомления отправляются во всех случаях.",
"Enable notifications for events via push" : "Включить уведомления о событиях с помощью push",
- "Cancel" : "Отмена",
- "Import" : "Импортировать",
- "Error while saving settings" : "Ошибка при сохранении параметров",
+ "Example content" : "Пример содержимого",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Пример содержимого демонстрирует возможности Nextcloud. По умолчанию поставляется стандартное содержимое, которое можно заменить настраиваемым.",
"There was an error updating your attendance status." : "Ошибка обновления статуса участия.",
"Please contact the organizer directly." : "Обратитесь к организатору напрямую.",
"Are you accepting the invitation?" : "Принять приглашение?",
"Tentative" : "Под вопросом",
- "Your attendance was updated successfully." : "Статус участия обновлён.",
- "Time:" : "Время:",
- "Could not open file" : "Не удалось открыть файл",
- "Invalid chunk name" : "Недопустимое имя сегмента",
- "Could not rename part file assembled from chunks" : "Не удалось переименовать временный файл, сформированный из сегментов"
+ "Your attendance was updated successfully." : "Статус участия обновлён."
},
"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/dav/l10n/ru.json b/apps/dav/l10n/ru.json
index 43211c3f748..d1da881a4c6 100644
--- a/apps/dav/l10n/ru.json
+++ b/apps/dav/l10n/ru.json
@@ -70,7 +70,77 @@
"Description: %s" : "Описание: %s",
"Where: %s" : "Где: %s",
"%1$s via %2$s" : "%1$s через %2$s",
+ "In the past on %1$s for the entire day" : "В прошлом, %1$s, в течение всего дня",
+ "_In a minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Через минуту, %1$s, в течение всего дня","Через %n минуты, %1$s, в течение всего дня","Через %n минут, %1$s, в течение всего дня","Через %n минут, %1$s, в течение всего дня"],
+ "_In a hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Через час, %1$s, в течение всего дня","Через %n часа, %1$s, в течение всего дня","Через %n часов, %1$s, в течение всего дня","Через %n часов, %1$s, в течение всего дня"],
+ "_In a day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Через день, %1$s, в течение всего дня","Через %n дня, %1$s, в течение всего дня","Через %n дней,%1$s, в течение всего дня","Через %n дней, %1$s, в течение всего дня"],
+ "_In a week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Через неделю, %1$s, в течение всего дня","Через %n недели, %1$s, в течение всего дня","Через %n недель, %1$s, в течение всего дня","Через %n недель, %1$s, в течение всего дня"],
+ "_In a month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Через месяц, %1$s, в течение всего дня","Через %n месяца, %1$s, в течение всего дня","Через %n месяцев, %1$s, в течение всего дня","Через %n месяцев, %1$s, в течение всего дня"],
+ "_In a year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Через год, %1$s, в течение всего дня","Через %n года, %1$s, в течение всего дня","Через %n лет, %1$s, в течение всего дня","Через %n лет, %1$s, в течение всего дня"],
+ "In the past on %1$s between %2$s - %3$s" : "В прошлом, %1$s, с %2$s до %3$s",
+ "_In a minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Через минуту, %1$s, с %2$s до %3$s","Через %n минуты, %1$s, с %2$s до %3$s","Через %n минут, %1$s, с %2$s до %3$s","Через %n минут, %1$s, с %2$s до %3$s"],
+ "_In a hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Через час, %1$s, с %2$s до %3$s","Через %n часа, %1$s, с %2$s до %3$s","Через %n часов, %1$s, с %2$s до %3$s","Через %n часов, %1$s, с %2$s до %3$s"],
+ "_In a day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Через день, %1$s, с %2$s до %3$s","Через %n дня %1$s, с %2$s до %3$s","Через %n дней, %1$s, с %2$s до %3$s","Через %n дней, %1$s, с %2$s до %3$s"],
+ "_In a week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Через неделю, %1$s, с %2$s до %3$s","Через %n недели, %1$s, с %2$s до %3$s","Через %n недель, %1$s, с %2$s до %3$s","Через %n недель, %1$s, с %2$s до %3$s"],
+ "_In a month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Через месяц, %1$s, с %2$s до %3$s","Через %n месяца, %1$s, с %2$s до %3$s","Через %n месяцев, %1$s, с %2$s до %3$s","Через %n месяцев, %1$s, с %2$s до %3$s"],
+ "_In a year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Через год, %1$s, с %2$s до %3$s","Через %n года, %1$s, с %2$s до %3$s","Через %n лет, %1$s, с %2$s до %3$s","Через %n лет, %1$s, с %2$s до %3$s"],
+ "Could not generate when statement" : "Не удалось сгенерировать выражение времени",
"Every Day for the entire day" : "Каждый день в течение всего дня",
+ "Every Day for the entire day until %1$s" : "Каждый день весь день до %1$s",
+ "Every Day between %1$s - %2$s" : "Каждый день с %1$s по %2$s",
+ "Every Day between %1$s - %2$s until %3$s" : "Каждый день с %1$s до %2$s до %3$s",
+ "Every %1$d Days for the entire day" : "Каждые %1$d дней в течение всего дня",
+ "Every %1$d Days for the entire day until %2$s" : "Каждые %1$d дней в течение всего дня до %2$s",
+ "Every %1$d Days between %2$s - %3$s" : "Каждые %1$d дней с %2$s до %3$s",
+ "Every %1$d Days between %2$s - %3$s until %4$s" : "Каждые %1$d дней с %2$s до %3$s до %4$s",
+ "Could not generate event recurrence statement" : "Не удалось сгенерировать правило повторения события",
+ "Every Week on %1$s for the entire day" : "Каждую неделю в %1$s в течение всего дня",
+ "Every Week on %1$s for the entire day until %2$s" : "Каждую неделю по %1$s в течение всего дня до %2$s",
+ "Every Week on %1$s between %2$s - %3$s" : "Каждую неделю в %1$s с %2$s до %3$s",
+ "Every Week on %1$s between %2$s - %3$s until %4$s" : "Каждую неделю по %1$s с %2$s до %3$s до %4$s",
+ "Every %1$d Weeks on %2$s for the entire day" : "Каждые %1$d недель по %2$s в течение всего дня",
+ "Every %1$d Weeks on %2$s for the entire day until %3$s" : "Каждые %1$d недель по %2$s в течение всего дня до %3$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s" : "Каждые %1$d недель по %2$s с %3$s до %4$s",
+ "Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Каждые %1$d недель по %2$s с %3$s до %4$s до %5$s",
+ "Every Month on the %1$s for the entire day" : "Каждый месяц %1$s в течение всего дня",
+ "Every Month on the %1$s for the entire day until %2$s" : "Каждый месяц %1$s в течение всего дня до %2$s",
+ "Every Month on the %1$s between %2$s - %3$s" : "Каждый месяц %1$s с %2$s до %3$s",
+ "Every Month on the %1$s between %2$s - %3$s until %4$s" : "Каждый месяц %1$s с %2$s до %3$s до %4$s",
+ "Every %1$d Months on the %2$s for the entire day" : "Каждые %1$d месяцев %2$s в течение всего дня",
+ "Every %1$d Months on the %2$s for the entire day until %3$s" : "Каждые %1$d месяцев %2$s в течение всего дня до %3$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s" : "Каждые %1$d месяцев %2$s с %3$s до %4$s",
+ "Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Каждые %1$d месяцев %2$s с %3$s до %4$s до %5$s",
+ "Every Year in %1$s on the %2$s for the entire day" : "Каждый год в %1$s %2$s в течение всего дня",
+ "Every Year in %1$s on the %2$s for the entire day until %3$s" : "Каждый год в %1$s %2$s в течение всего дня до %3$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s" : "Каждый год в %1$s %2$s с %3$s до %4$s",
+ "Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Каждый год в %1$s %2$s с %3$s до %4$s до %5$s",
+ "Every %1$d Years in %2$s on the %3$s for the entire day" : "Каждые %1$d лет в %2$s %3$s в течение всего дня",
+ "Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Каждые %1$d лет в %2$s %3$s в течение всего дня до %4$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Каждые %1$d лет в %2$s %3$s с %4$s до %5$s",
+ "Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Каждые %1$d лет в %2$s %3$s с %4$s до %5$s до %6$s",
+ "On specific dates for the entire day until %1$s" : "В определённые даты, весь день до %1$s",
+ "On specific dates between %1$s - %2$s until %3$s" : "В определённые даты с %1$s по %2$s до %3$s",
+ "In the past on %1$s" : "В прошлом, %1$s",
+ "_In a minute on %1$s_::_In %n minutes on %1$s_" : ["Через минуту, %1$s","Через %n минуты, %1$s","Через %n минут, %1$s","Через %n минут, %1$s"],
+ "_In a hour on %1$s_::_In %n hours on %1$s_" : ["Через час, %1$s","Через %n часа, %1$s","Через %n часов, %1$s","Через %n часов, %1$s"],
+ "_In a day on %1$s_::_In %n days on %1$s_" : ["Через день, %1$s","Через %n дня, %1$s","Через %n дней, %1$s","Через %n дней, %1$s"],
+ "_In a week on %1$s_::_In %n weeks on %1$s_" : ["Через неделю, %1$s","Через %n недели,%1$s","Через %n недель, %1$s","Через %n недель, %1$s"],
+ "_In a month on %1$s_::_In %n months on %1$s_" : ["Через месяц, %1$s","Через %n месяца, %1$s","Через %n месяцев, %1$s","Через %n месяцев, %1$s"],
+ "_In a year on %1$s_::_In %n years on %1$s_" : ["Через год, %1$s","Через %n года, %1$s","Через %n лет, %1$s","Через %n лет, %1$s"],
+ "In the past on %1$s then on %2$s" : "В прошлом, %1$s, затем %2$s",
+ "_In a minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Через минуту, %1$s, затем %2$s","Через %n минуты, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s","Через %n минут, %1$s, затем %2$s"],
+ "_In a hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Через час, %1$s, затем %2$s","Через %n часа, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s","Через %n часов, %1$s, затем %2$s"],
+ "_In a day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Через день, %1$s, затем %2$s","Через %n дня, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s","Через %n дней, %1$s, затем %2$s"],
+ "_In a week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Через неделю, %1$s, затем %2$s","Через %n недели, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s","Через %n недель, %1$s, затем %2$s"],
+ "_In a month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Через месяц, %1$s, затем %2$s","Через %n месяца, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s","Через %n месяцев, %1$s, затем %2$s"],
+ "_In a year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Через год, %1$s, затем %2$s","Через %n года, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s","Через %n лет, %1$s, затем %2$s"],
+ "In the past on %1$s then on %2$s and %3$s" : "В прошлом, %1$s, затем %2$s и %3$s",
+ "_In a minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Через минуту, %1$s, затем %2$s и %3$s","Через %n минуты, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s","Через %n минут, %1$s, затем %2$s и %3$s"],
+ "_In a hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Через час, %1$s, затем %2$s и %3$s","Через %n часа, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s","Через %n часов, %1$s, затем %2$s и %3$s"],
+ "_In a day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Через день, %1$s, затем %2$s и %3$s","Через %n дня, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s","Через %n дней, %1$s, затем %2$s и %3$s"],
+ "_In a week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Через неделю, %1$s, затем %2$s и %3$s","Через %n недели, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s","Через %n недель, %1$s, затем %2$s и %3$s"],
+ "_In a month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Через месяц, %1$s, затем %2$s и %3$s","Через %n месяца, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s","Через %n месяцев, %1$s, затем %2$s и %3$s"],
+ "_In a year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Через год, %1$s, затем %2$s и %3$s","Через %n года, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s","Через %n лет, %1$s, затем %2$s и %3$s"],
"Could not generate next recurrence statement" : "Не удалось сгенерировать следующий оператор повторения",
"Cancelled: %1$s" : "Событие отменено: %1$s",
"\"%1$s\" has been canceled" : "Событие «%1$s» отменено",
@@ -117,10 +187,12 @@
"Second" : "Второй",
"Third" : "Третий",
"Fourth" : "Четвертый",
+ "Fifth" : "Пятый",
"Last" : "Последний",
"Second Last" : "Предпоследний",
- "Third Last" : "Третий по счету",
- "Fourth Last" : "Четвертый по счету",
+ "Third Last" : "Третий с конца",
+ "Fourth Last" : "Четвёртый с конца",
+ "Fifth Last" : "Пятый с конца",
"Contacts" : "Контакты",
"{actor} created address book {addressbook}" : "{actor} создал(а) адресную книгу «{addressbook}»",
"You created address book {addressbook}" : "Вы создали адресную книгу «{addressbook}»",
@@ -176,6 +248,9 @@
"Completed on %s" : "Завершено %s",
"Due on %s by %s" : "До %s %s",
"Due on %s" : "До %s",
+ "System Address Book" : "Системная адресная книга",
+ "The system address book contains contact information for all users in your instance." : "Системная адресная книга содержит контактную информацию всех пользователей в вашем инстансе.",
+ "Enable System Address Book" : "Включить системную адресную книгу",
"DAV system address book" : "Системная адресная книга DAV",
"No outstanding DAV system address book sync." : "Синхронизация системной адресной книги DAV выполнена.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "Синхронизация системной адресной книги DAV ещё не запущена, поскольку в этом экземпляре более 1000 пользователей или произошла ошибка. Перезапустите синхронизацию вручную используя команду «occ dav:sync-system-addressbook».",
@@ -213,6 +288,25 @@
"Pick a start time for {dayName}" : "Выберите время начала в {dayName}",
"Pick a end time for {dayName}" : "Выберите время окончания в {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматически изменять статус на «Не беспокоить» вне интервала доступности для отключения уведомлений.",
+ "Cancel" : "Отмена",
+ "Import" : "Импортировать",
+ "Error while saving settings" : "Ошибка при сохранении параметров",
+ "Contact reset successfully" : "Контакт успешно сброшен",
+ "Error while resetting contact" : "Ошибка при сбросе контакта",
+ "Contact imported successfully" : " Контакт успешно импортирован",
+ "Error while importing contact" : " Ошибка при импорте контакта",
+ "Import contact" : "Импортировать контакт",
+ "Reset to default" : "Сбросить изменения",
+ "Import contacts" : "Импортировать контакты",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Импорт нового файла .vcf удалит существующий контакт по умолчанию и заменит его новым. Продолжить?",
+ "Failed to save example event creation setting" : "Не удалось сохранить настройки создания примера события",
+ "Failed to upload the example event" : "Не удалось загрузить пример события",
+ "Custom example event was saved successfully" : "Настраиваемый пример события успешно сохранён",
+ "Failed to delete the custom example event" : "Не удалось удалить настраиваемый пример события",
+ "Custom example event was deleted successfully" : "Настраиваемый пример события успешно удалён",
+ "Import calendar event" : "Импортировать событие календаря",
+ "Uploading a new event will overwrite the existing one." : " Загрузка нового события перезапишет существующее.",
+ "Upload event" : "Загрузить событие",
"Availability" : "Рабочее время",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Если вы настроите свой расписание работы, другие пользователи при планировании встреч смогут видеть, когда вас нет в офисе.",
"Absence" : "Отсутствие",
@@ -229,17 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "Отправлять напоминания всем пользователям, имеющим доступ к календарю",
"Reminders are always sent to organizers and attendees." : "Организаторам и участникам уведомления отправляются во всех случаях.",
"Enable notifications for events via push" : "Включить уведомления о событиях с помощью push",
- "Cancel" : "Отмена",
- "Import" : "Импортировать",
- "Error while saving settings" : "Ошибка при сохранении параметров",
+ "Example content" : "Пример содержимого",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Пример содержимого демонстрирует возможности Nextcloud. По умолчанию поставляется стандартное содержимое, которое можно заменить настраиваемым.",
"There was an error updating your attendance status." : "Ошибка обновления статуса участия.",
"Please contact the organizer directly." : "Обратитесь к организатору напрямую.",
"Are you accepting the invitation?" : "Принять приглашение?",
"Tentative" : "Под вопросом",
- "Your attendance was updated successfully." : "Статус участия обновлён.",
- "Time:" : "Время:",
- "Could not open file" : "Не удалось открыть файл",
- "Invalid chunk name" : "Недопустимое имя сегмента",
- "Could not rename part file assembled from chunks" : "Не удалось переименовать временный файл, сформированный из сегментов"
+ "Your attendance was updated successfully." : "Статус участия обновлён."
},"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/dav/l10n/sc.js b/apps/dav/l10n/sc.js
deleted file mode 100644
index 902dbd81dd0..00000000000
--- a/apps/dav/l10n/sc.js
+++ /dev/null
@@ -1,151 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Calendàriu",
- "Tasks" : "Fainas",
- "Personal" : "Personale",
- "{actor} created calendar {calendar}" : "{actor} at creadu su calendàriu {calendar}",
- "You created calendar {calendar}" : "As creadu su calendàriu {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} at cantzelladu su calendàriu {calendar}",
- "You deleted calendar {calendar}" : "As creadu su calendàriu {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} at agiornadu su calendàriu {calendar}",
- "You updated calendar {calendar}" : "As agiornadu su calendàriu {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} at ripristinadu su calendàriu {calendar}",
- "You restored calendar {calendar}" : "As ripristinadu su calendàriu {calendar}",
- "You shared calendar {calendar} as public link" : "As cumpartzidu su calendàriu {calendar} comente ligòngiu pùblicu",
- "You removed public link for calendar {calendar}" : "Ci nd'as bogadu su ligòngiu pùblicu pro su calendàriu {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} at cumpartzidu su calendàriu {calendar} cun tegus",
- "You shared calendar {calendar} with {user}" : "As cumpartzidu su calendàriu {calendar} cun {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} at cumpartzidu su calendàriu {calendar} cun {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} at annulladu sa cumpartzidura de su calendàriu {calendar} cun tegus",
- "You unshared calendar {calendar} from {user}" : "As annulladu sa cumpartzidura de su calendàriu {calendar} cun {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} at annulladu sa cumpartzidura de su calendàriu {calendar} cun {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} at annulladu sa cumpartzidura de su calendàriu {calendar} cun issu etotu",
- "You shared calendar {calendar} with group {group}" : "As cumpartzidu su calendàriu {calendar} cun su grupu {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} at cumpartzidu su calendàriu {calendar} cun su grupu {group}",
- "You unshared calendar {calendar} from group {group}" : "As annulladu su calendàriu {calendar} cun su grupu {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} at annulladu sa cumpartzidura de su calendàriu {calendar} cun su grupu {group}",
- "Untitled event" : "Eventu sena tìtulu ",
- "{actor} created event {event} in calendar {calendar}" : "{actor} at creadu s'eventu {event} in su calendàriu {calendar}",
- "You created event {event} in calendar {calendar}" : "As creadu un'eventu {event} in su calendàriu {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} at cantzelladu s'eventu {event} dae su calendàriu {calendar}",
- "You deleted event {event} from calendar {calendar}" : "As cantzelladu s'eventu {event} dae su calendàriu {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} at agiornadu s'eventu {event} in su calendàriu {calendar}",
- "You updated event {event} in calendar {calendar}" : "As agiornadu s'eventu {event} in su calendàriu {calendar}",
- "{actor} restored event {event} of calendar {calendar}" : "{actor} at ripristinadu s'eventu {event} in su calendàriu {calendar}",
- "You restored event {event} of calendar {calendar}" : "As ripristinadu s'eventu {event} in su calendàriu {calendar}",
- "Busy" : "Impinnadu",
- "Calendar, contacts and tasks" : "Calendàriu, cuntatos e fainas",
- "A <strong>calendar</strong> was modified" : "Unu <strong>calendàriu</strong> est istadu modificadu",
- "A calendar <strong>event</strong> was modified" : "Un'<strong>eventu</strong> de su calendàriu est istadu modificadu",
- "Contact birthdays" : "Data de nàschida de is cuntatos",
- "Death of %s" : "Morte de %s",
- "Untitled calendar" : "Calendàriu chene tìtulu",
- "Calendar:" : "Calendàriu:",
- "Date:" : "Data:",
- "Where:" : "Ue:",
- "Description:" : "Descritzione:",
- "_%n year_::_%n years_" : ["%n annu","%n annos"],
- "_%n month_::_%n months_" : ["%n meses","%n meses"],
- "_%n day_::_%n days_" : ["%n die","%n days"],
- "_%n hour_::_%n hours_" : ["%n ora","%n ora"],
- "_%n minute_::_%n minutes_" : ["%n minutos","%n minutos"],
- "%s (in %s)" : "%s (in %s)",
- "%s (%s ago)" : "%s (%s a immoe)",
- "Calendar: %s" : "Calendàriu: %s",
- "Date: %s" : "Data: %s",
- "Description: %s" : "Descritzione: %s",
- "Where: %s" : "Ue: %s",
- "%1$s via %2$s" : "%1$s cun %2$s",
- "Cancelled: %1$s" : "Annulladu: %1$s",
- "Re: %1$s" : "Re: %1$s",
- "Invitation: %1$s" : "Invitu: %1$s",
- "Organizer:" : "Organizadore: ",
- "Attendees:" : "Partetzipadores:",
- "Title:" : "Tìtulos:",
- "When:" : "Cando:",
- "Location:" : "Positzione:",
- "Link:" : "Ligòngiu:",
- "Accept" : "Atzeta",
- "Decline" : "Refuda",
- "More options …" : "Àteras optziones ...",
- "More options at %s" : "Àteras optziones a is %s",
- "Monday" : "Lunis",
- "Tuesday" : "Martis",
- "Wednesday" : "Mércuris",
- "Thursday" : "Giòbia",
- "Friday" : "Chenàbura",
- "Saturday" : "Sàbudu",
- "Sunday" : "Domìnigu",
- "January" : "Ghennàrgiu",
- "February" : "Freàrgiu",
- "March" : "Martzu",
- "April" : "Abrile",
- "May" : "Maju",
- "June" : "Làmparas",
- "July" : "Mese de Trìulas/Argiolas",
- "August" : "Austu",
- "September" : "Cabudanni",
- "October" : "Mese de Ladàmini/ Santu Aine",
- "November" : "Sant'Andria",
- "December" : "Nadale",
- "First" : "Primu",
- "Last" : "Ùrtimu",
- "Contacts" : "Cuntatos",
- "{actor} created address book {addressbook}" : "{actor} at creadu sa rubrica {addressbook}",
- "You created address book {addressbook}" : "As creadu sa rubrica {addressbook}",
- "{actor} deleted address book {addressbook}" : "{actor} at cantzelladu sa rubrica {addressbook}",
- "You deleted address book {addressbook}" : "As cantzelladu sa rubrica {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} at agiornadu sa rubrica {addressbook}",
- "You updated address book {addressbook}" : "As agiornadu sa rubrica {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} at cumpartzidu sa rubrica {addressbook} cun tegus",
- "You shared address book {addressbook} with {user}" : "As cumpartzidu sa rubrica {addressbook} cun {user}",
- "{actor} shared address book {addressbook} with {user}" : "{actor} at cumpartzidu sa rubrica {addressbook} cun {user}",
- "{actor} unshared address book {addressbook} from you" : "{actor} at annulladu sa cumpartzidura de sa rubrica {addressbook} cun tegus",
- "You unshared address book {addressbook} from {user}" : "As annnulladu sa cumpartzidura de sa rubrica {addressbook} cun {user}",
- "{actor} unshared address book {addressbook} from {user}" : "{actor} at annulladu sa cumpartzidura de sa rubrica {addressbook} cun{user}",
- "{actor} unshared address book {addressbook} from themselves" : "{actor} at annulladu sa cumpartzidura de sa rubrica {addressbook} cun isse etotu",
- "You shared address book {addressbook} with group {group}" : "As cumpartzidu sa rubrica {addressbook} cun su grupu {group}",
- "{actor} shared address book {addressbook} with group {group}" : "{actor} at cumpartzidu sa rubrica {addressbook} cun su grupu {group}",
- "You unshared address book {addressbook} from group {group}" : "As annulladu sa cumpartzidura de sa rubrica {addressbook} cun su grupu {group}",
- "{actor} unshared address book {addressbook} from group {group}" : "{actor} at annulladu sa cumpartzidura de sa rubrica {addressbook} cun su grupu {group}",
- "{actor} created contact {card} in address book {addressbook}" : "{actor} at creadu su cuntatu {card} in sa rubrica {addressbook}",
- "You created contact {card} in address book {addressbook}" : "As creadu su cuntatu {card} in sa rubrica {addressbook}",
- "{actor} deleted contact {card} from address book {addressbook}" : "{actor} at cantzelladu su cuntatu {card} dae sa rubrica {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "As cantzelladu su cuntatu {card} dae sa rubrica {addressbook}",
- "{actor} updated contact {card} in address book {addressbook}" : "{actor} at agiornadu su cuntatu {card} in sa rubrica {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "As agiornadu su cuntatu {card} in sa rubrica {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "S'at modificadu unu <strong>cuntatu</strong> o <strong>rubrica</strong> ",
- "System is in maintenance mode." : "Sistema in modalidade de mantenidura.",
- "Upgrade needed" : "Tocat de agiornare",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Su %s tuo tocat de lu cunfigurare pro s'impreu de HTTPS pro pòdere impreare CalDAV e CardDAV cun iOS/macOS.",
- "Configures a CalDAV account" : "Cunfigurat unu contu CalDAV",
- "Configures a CardDAV account" : "Configurat unu contu CardDAV ",
- "Events" : "Eventos",
- "Untitled task" : "Faina sena tìtulu",
- "Completed on %s" : "Cumpletada su %s",
- "Due on %s by %s" : "Iscadet su %s pro su %s",
- "Due on %s" : "iscadet su %s",
- "WebDAV endpoint" : "puntu finale WebDAV ",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Su serbidore tuo no est cunfiguradu pro permìtere sa sincronizatzione de is archìvios, ca s'interfache WebDAV paret arrogada.",
- "WebDAV" : "WebDAV",
- "Save" : "Sarva",
- "to" : "a",
- "Calendar server" : "Serbidore calendàriu",
- "Send invitations to attendees" : "Imbia invitos de partetzipatziones",
- "Automatically generate a birthday calendar" : "Gènera in automàticu su calendàriu de cumpleannos",
- "Birthday calendars will be generated by a background job." : "Is calendàrios de cumpleannos ant a èssere generados pro mèdiu de un'atividade dae palas.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Perintantu non ant a èssere a diponimentu deretu a pustis de s'abilitatzione, ma s'ant a pòdere bìdere in pagos segundos.",
- "Send notifications for events" : "Imbia is notìficas de is eventos",
- "Notifications are sent via background jobs, so these must occur often enough." : "Is notìficas sunt imbiadas tràmite atividades dae palas, pro cussu custas operatziones tocat de ddas fàghere bastante a s'ispissu.",
- "Enable notifications for events via push" : "Ativa is notìficas de is eventos tràmite push",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installa puru{calendarappstoreopen}s'aplicatzione calendàriu{linkclose}, o {calendardocopen}connete s'elaboradore de iscrivania e su telefoneddu pro ddos sincronizare↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Assegura·ti de àere cunfiguradu bene {emailopen}su serbidore de posta{linkclose}.",
- "There was an error updating your attendance status." : "Ddoe at àpidu un'errore agiornende s'istadu de sa partetzipatzione tua.",
- "Please contact the organizer directly." : "Pro praghere, cuntata deretu a s'organizadore.",
- "Are you accepting the invitation?" : "Cheres atzetare s'invitu?",
- "Tentative" : "Intentu",
- "Your attendance was updated successfully." : "Sa partetzipatzione tua est istada agiornada in manera curreta.",
- "Time:" : "Tempus:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/sc.json b/apps/dav/l10n/sc.json
deleted file mode 100644
index efc7b12079a..00000000000
--- a/apps/dav/l10n/sc.json
+++ /dev/null
@@ -1,149 +0,0 @@
-{ "translations": {
- "Calendar" : "Calendàriu",
- "Tasks" : "Fainas",
- "Personal" : "Personale",
- "{actor} created calendar {calendar}" : "{actor} at creadu su calendàriu {calendar}",
- "You created calendar {calendar}" : "As creadu su calendàriu {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} at cantzelladu su calendàriu {calendar}",
- "You deleted calendar {calendar}" : "As creadu su calendàriu {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} at agiornadu su calendàriu {calendar}",
- "You updated calendar {calendar}" : "As agiornadu su calendàriu {calendar}",
- "{actor} restored calendar {calendar}" : "{actor} at ripristinadu su calendàriu {calendar}",
- "You restored calendar {calendar}" : "As ripristinadu su calendàriu {calendar}",
- "You shared calendar {calendar} as public link" : "As cumpartzidu su calendàriu {calendar} comente ligòngiu pùblicu",
- "You removed public link for calendar {calendar}" : "Ci nd'as bogadu su ligòngiu pùblicu pro su calendàriu {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} at cumpartzidu su calendàriu {calendar} cun tegus",
- "You shared calendar {calendar} with {user}" : "As cumpartzidu su calendàriu {calendar} cun {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} at cumpartzidu su calendàriu {calendar} cun {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} at annulladu sa cumpartzidura de su calendàriu {calendar} cun tegus",
- "You unshared calendar {calendar} from {user}" : "As annulladu sa cumpartzidura de su calendàriu {calendar} cun {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} at annulladu sa cumpartzidura de su calendàriu {calendar} cun {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} at annulladu sa cumpartzidura de su calendàriu {calendar} cun issu etotu",
- "You shared calendar {calendar} with group {group}" : "As cumpartzidu su calendàriu {calendar} cun su grupu {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} at cumpartzidu su calendàriu {calendar} cun su grupu {group}",
- "You unshared calendar {calendar} from group {group}" : "As annulladu su calendàriu {calendar} cun su grupu {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} at annulladu sa cumpartzidura de su calendàriu {calendar} cun su grupu {group}",
- "Untitled event" : "Eventu sena tìtulu ",
- "{actor} created event {event} in calendar {calendar}" : "{actor} at creadu s'eventu {event} in su calendàriu {calendar}",
- "You created event {event} in calendar {calendar}" : "As creadu un'eventu {event} in su calendàriu {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} at cantzelladu s'eventu {event} dae su calendàriu {calendar}",
- "You deleted event {event} from calendar {calendar}" : "As cantzelladu s'eventu {event} dae su calendàriu {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} at agiornadu s'eventu {event} in su calendàriu {calendar}",
- "You updated event {event} in calendar {calendar}" : "As agiornadu s'eventu {event} in su calendàriu {calendar}",
- "{actor} restored event {event} of calendar {calendar}" : "{actor} at ripristinadu s'eventu {event} in su calendàriu {calendar}",
- "You restored event {event} of calendar {calendar}" : "As ripristinadu s'eventu {event} in su calendàriu {calendar}",
- "Busy" : "Impinnadu",
- "Calendar, contacts and tasks" : "Calendàriu, cuntatos e fainas",
- "A <strong>calendar</strong> was modified" : "Unu <strong>calendàriu</strong> est istadu modificadu",
- "A calendar <strong>event</strong> was modified" : "Un'<strong>eventu</strong> de su calendàriu est istadu modificadu",
- "Contact birthdays" : "Data de nàschida de is cuntatos",
- "Death of %s" : "Morte de %s",
- "Untitled calendar" : "Calendàriu chene tìtulu",
- "Calendar:" : "Calendàriu:",
- "Date:" : "Data:",
- "Where:" : "Ue:",
- "Description:" : "Descritzione:",
- "_%n year_::_%n years_" : ["%n annu","%n annos"],
- "_%n month_::_%n months_" : ["%n meses","%n meses"],
- "_%n day_::_%n days_" : ["%n die","%n days"],
- "_%n hour_::_%n hours_" : ["%n ora","%n ora"],
- "_%n minute_::_%n minutes_" : ["%n minutos","%n minutos"],
- "%s (in %s)" : "%s (in %s)",
- "%s (%s ago)" : "%s (%s a immoe)",
- "Calendar: %s" : "Calendàriu: %s",
- "Date: %s" : "Data: %s",
- "Description: %s" : "Descritzione: %s",
- "Where: %s" : "Ue: %s",
- "%1$s via %2$s" : "%1$s cun %2$s",
- "Cancelled: %1$s" : "Annulladu: %1$s",
- "Re: %1$s" : "Re: %1$s",
- "Invitation: %1$s" : "Invitu: %1$s",
- "Organizer:" : "Organizadore: ",
- "Attendees:" : "Partetzipadores:",
- "Title:" : "Tìtulos:",
- "When:" : "Cando:",
- "Location:" : "Positzione:",
- "Link:" : "Ligòngiu:",
- "Accept" : "Atzeta",
- "Decline" : "Refuda",
- "More options …" : "Àteras optziones ...",
- "More options at %s" : "Àteras optziones a is %s",
- "Monday" : "Lunis",
- "Tuesday" : "Martis",
- "Wednesday" : "Mércuris",
- "Thursday" : "Giòbia",
- "Friday" : "Chenàbura",
- "Saturday" : "Sàbudu",
- "Sunday" : "Domìnigu",
- "January" : "Ghennàrgiu",
- "February" : "Freàrgiu",
- "March" : "Martzu",
- "April" : "Abrile",
- "May" : "Maju",
- "June" : "Làmparas",
- "July" : "Mese de Trìulas/Argiolas",
- "August" : "Austu",
- "September" : "Cabudanni",
- "October" : "Mese de Ladàmini/ Santu Aine",
- "November" : "Sant'Andria",
- "December" : "Nadale",
- "First" : "Primu",
- "Last" : "Ùrtimu",
- "Contacts" : "Cuntatos",
- "{actor} created address book {addressbook}" : "{actor} at creadu sa rubrica {addressbook}",
- "You created address book {addressbook}" : "As creadu sa rubrica {addressbook}",
- "{actor} deleted address book {addressbook}" : "{actor} at cantzelladu sa rubrica {addressbook}",
- "You deleted address book {addressbook}" : "As cantzelladu sa rubrica {addressbook}",
- "{actor} updated address book {addressbook}" : "{actor} at agiornadu sa rubrica {addressbook}",
- "You updated address book {addressbook}" : "As agiornadu sa rubrica {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} at cumpartzidu sa rubrica {addressbook} cun tegus",
- "You shared address book {addressbook} with {user}" : "As cumpartzidu sa rubrica {addressbook} cun {user}",
- "{actor} shared address book {addressbook} with {user}" : "{actor} at cumpartzidu sa rubrica {addressbook} cun {user}",
- "{actor} unshared address book {addressbook} from you" : "{actor} at annulladu sa cumpartzidura de sa rubrica {addressbook} cun tegus",
- "You unshared address book {addressbook} from {user}" : "As annnulladu sa cumpartzidura de sa rubrica {addressbook} cun {user}",
- "{actor} unshared address book {addressbook} from {user}" : "{actor} at annulladu sa cumpartzidura de sa rubrica {addressbook} cun{user}",
- "{actor} unshared address book {addressbook} from themselves" : "{actor} at annulladu sa cumpartzidura de sa rubrica {addressbook} cun isse etotu",
- "You shared address book {addressbook} with group {group}" : "As cumpartzidu sa rubrica {addressbook} cun su grupu {group}",
- "{actor} shared address book {addressbook} with group {group}" : "{actor} at cumpartzidu sa rubrica {addressbook} cun su grupu {group}",
- "You unshared address book {addressbook} from group {group}" : "As annulladu sa cumpartzidura de sa rubrica {addressbook} cun su grupu {group}",
- "{actor} unshared address book {addressbook} from group {group}" : "{actor} at annulladu sa cumpartzidura de sa rubrica {addressbook} cun su grupu {group}",
- "{actor} created contact {card} in address book {addressbook}" : "{actor} at creadu su cuntatu {card} in sa rubrica {addressbook}",
- "You created contact {card} in address book {addressbook}" : "As creadu su cuntatu {card} in sa rubrica {addressbook}",
- "{actor} deleted contact {card} from address book {addressbook}" : "{actor} at cantzelladu su cuntatu {card} dae sa rubrica {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "As cantzelladu su cuntatu {card} dae sa rubrica {addressbook}",
- "{actor} updated contact {card} in address book {addressbook}" : "{actor} at agiornadu su cuntatu {card} in sa rubrica {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "As agiornadu su cuntatu {card} in sa rubrica {addressbook}",
- "A <strong>contact</strong> or <strong>address book</strong> was modified" : "S'at modificadu unu <strong>cuntatu</strong> o <strong>rubrica</strong> ",
- "System is in maintenance mode." : "Sistema in modalidade de mantenidura.",
- "Upgrade needed" : "Tocat de agiornare",
- "Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Su %s tuo tocat de lu cunfigurare pro s'impreu de HTTPS pro pòdere impreare CalDAV e CardDAV cun iOS/macOS.",
- "Configures a CalDAV account" : "Cunfigurat unu contu CalDAV",
- "Configures a CardDAV account" : "Configurat unu contu CardDAV ",
- "Events" : "Eventos",
- "Untitled task" : "Faina sena tìtulu",
- "Completed on %s" : "Cumpletada su %s",
- "Due on %s by %s" : "Iscadet su %s pro su %s",
- "Due on %s" : "iscadet su %s",
- "WebDAV endpoint" : "puntu finale WebDAV ",
- "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Su serbidore tuo no est cunfiguradu pro permìtere sa sincronizatzione de is archìvios, ca s'interfache WebDAV paret arrogada.",
- "WebDAV" : "WebDAV",
- "Save" : "Sarva",
- "to" : "a",
- "Calendar server" : "Serbidore calendàriu",
- "Send invitations to attendees" : "Imbia invitos de partetzipatziones",
- "Automatically generate a birthday calendar" : "Gènera in automàticu su calendàriu de cumpleannos",
- "Birthday calendars will be generated by a background job." : "Is calendàrios de cumpleannos ant a èssere generados pro mèdiu de un'atividade dae palas.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Perintantu non ant a èssere a diponimentu deretu a pustis de s'abilitatzione, ma s'ant a pòdere bìdere in pagos segundos.",
- "Send notifications for events" : "Imbia is notìficas de is eventos",
- "Notifications are sent via background jobs, so these must occur often enough." : "Is notìficas sunt imbiadas tràmite atividades dae palas, pro cussu custas operatziones tocat de ddas fàghere bastante a s'ispissu.",
- "Enable notifications for events via push" : "Ativa is notìficas de is eventos tràmite push",
- "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installa puru{calendarappstoreopen}s'aplicatzione calendàriu{linkclose}, o {calendardocopen}connete s'elaboradore de iscrivania e su telefoneddu pro ddos sincronizare↗{linkclose}.",
- "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Assegura·ti de àere cunfiguradu bene {emailopen}su serbidore de posta{linkclose}.",
- "There was an error updating your attendance status." : "Ddoe at àpidu un'errore agiornende s'istadu de sa partetzipatzione tua.",
- "Please contact the organizer directly." : "Pro praghere, cuntata deretu a s'organizadore.",
- "Are you accepting the invitation?" : "Cheres atzetare s'invitu?",
- "Tentative" : "Intentu",
- "Your attendance was updated successfully." : "Sa partetzipatzione tua est istada agiornada in manera curreta.",
- "Time:" : "Tempus:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/sk.js b/apps/dav/l10n/sk.js
index 3441b763746..3282ec3109f 100644
--- a/apps/dav/l10n/sk.js
+++ b/apps/dav/l10n/sk.js
@@ -290,6 +290,17 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Vyberte začiatočný čas pre {dayName}",
"Pick a end time for {dayName}" : "Vyberte koncový čas pre {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automaticky nastaviť stav používateľa na „Nerušiť“ ak nie ste dostupný, pre stlmenie všetkých upozornení.",
+ "Cancel" : "Zrušiť",
+ "Import" : "Import",
+ "Error while saving settings" : "Chyba pri ukladaní nastavení",
+ "Contact reset successfully" : "Kontakt bol úspešne resetovaný",
+ "Error while resetting contact" : "Chyba počas resetovania kontaktu ",
+ "Contact imported successfully" : "Kontakt bol úspešne importovaný",
+ "Error while importing contact" : "Chyba pri importovaní kontaktu",
+ "Import contact" : "Importovať kontakt",
+ "Reset to default" : "Nastaviť predvolené",
+ "Import contacts" : "Importovať kontakty",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importovaním nového súboru .vcf sa vymaže existujúci predvolený kontakt a nahradí sa novým. Chcete pokračovať?",
"Availability" : "Dostupnosť",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ak nakonfigurujete svoj pracovný čas, ostatní užívatelia vás uvidia ako neprítomného, keď si rezervujete schôdzku",
"Absence" : "Neprítomnosť",
@@ -306,27 +317,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Posielať upozornenia na pripomienky aj zdieľaným osobám v kalendári",
"Reminders are always sent to organizers and attendees." : "Upozornenia sa vždy posielajú organizátorom a účastníkom.",
"Enable notifications for events via push" : "Zapnúť oznámenia o udalostiach prostredníctvom technológie push.",
- "Cancel" : "Zrušiť",
- "Import" : "Import",
- "Error while saving settings" : "Chyba pri ukladaní nastavení",
- "Contact reset successfully" : "Kontakt bol úspešne resetovaný",
- "Error while resetting contact" : "Chyba počas resetovania kontaktu ",
- "Contact imported successfully" : "Kontakt bol úspešne importovaný",
- "Error while importing contact" : "Chyba pri importovaní kontaktu",
- "Example Content" : "Príklad Obsahu",
- "Set example content to be created on new user first login." : "Nastavte vzorový obsah, ktorý sa vytvorí pri prvom prihlásení nového používateľa.",
- "Import contact" : "Importovať kontakt",
- "Reset to default contact" : "Resetovať na predvolený kontakt",
- "Import contacts" : "Importovať kontakty",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importovaním nového súboru .vcf sa vymaže existujúci predvolený kontakt a nahradí sa novým. Chcete pokračovať?",
"There was an error updating your attendance status." : "Nastal problém pri aktualizácii Vašej účasti.",
"Please contact the organizer directly." : "Prosím kontaktujte priamo organizátora.",
"Are you accepting the invitation?" : "Príjmate pozvánku?",
"Tentative" : "Neistý",
- "Your attendance was updated successfully." : "Vaša účasť bola aktualizovaná úspešne.",
- "Time:" : "Čas:",
- "Could not open file" : "Súbor sa nepodarilo otvoriť",
- "Invalid chunk name" : "Neplatný názov bloku",
- "Could not rename part file assembled from chunks" : "Nepodarilo sa premenovať dočasný súbor vytvorený z blokov"
+ "Your attendance was updated successfully." : "Vaša účasť bola aktualizovaná úspešne."
},
"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/dav/l10n/sk.json b/apps/dav/l10n/sk.json
index 06c7d094a5e..a0da2d19cd3 100644
--- a/apps/dav/l10n/sk.json
+++ b/apps/dav/l10n/sk.json
@@ -288,6 +288,17 @@
"Pick a start time for {dayName}" : "Vyberte začiatočný čas pre {dayName}",
"Pick a end time for {dayName}" : "Vyberte koncový čas pre {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automaticky nastaviť stav používateľa na „Nerušiť“ ak nie ste dostupný, pre stlmenie všetkých upozornení.",
+ "Cancel" : "Zrušiť",
+ "Import" : "Import",
+ "Error while saving settings" : "Chyba pri ukladaní nastavení",
+ "Contact reset successfully" : "Kontakt bol úspešne resetovaný",
+ "Error while resetting contact" : "Chyba počas resetovania kontaktu ",
+ "Contact imported successfully" : "Kontakt bol úspešne importovaný",
+ "Error while importing contact" : "Chyba pri importovaní kontaktu",
+ "Import contact" : "Importovať kontakt",
+ "Reset to default" : "Nastaviť predvolené",
+ "Import contacts" : "Importovať kontakty",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importovaním nového súboru .vcf sa vymaže existujúci predvolený kontakt a nahradí sa novým. Chcete pokračovať?",
"Availability" : "Dostupnosť",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ak nakonfigurujete svoj pracovný čas, ostatní užívatelia vás uvidia ako neprítomného, keď si rezervujete schôdzku",
"Absence" : "Neprítomnosť",
@@ -304,27 +315,10 @@
"Send reminder notifications to calendar sharees as well" : "Posielať upozornenia na pripomienky aj zdieľaným osobám v kalendári",
"Reminders are always sent to organizers and attendees." : "Upozornenia sa vždy posielajú organizátorom a účastníkom.",
"Enable notifications for events via push" : "Zapnúť oznámenia o udalostiach prostredníctvom technológie push.",
- "Cancel" : "Zrušiť",
- "Import" : "Import",
- "Error while saving settings" : "Chyba pri ukladaní nastavení",
- "Contact reset successfully" : "Kontakt bol úspešne resetovaný",
- "Error while resetting contact" : "Chyba počas resetovania kontaktu ",
- "Contact imported successfully" : "Kontakt bol úspešne importovaný",
- "Error while importing contact" : "Chyba pri importovaní kontaktu",
- "Example Content" : "Príklad Obsahu",
- "Set example content to be created on new user first login." : "Nastavte vzorový obsah, ktorý sa vytvorí pri prvom prihlásení nového používateľa.",
- "Import contact" : "Importovať kontakt",
- "Reset to default contact" : "Resetovať na predvolený kontakt",
- "Import contacts" : "Importovať kontakty",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importovaním nového súboru .vcf sa vymaže existujúci predvolený kontakt a nahradí sa novým. Chcete pokračovať?",
"There was an error updating your attendance status." : "Nastal problém pri aktualizácii Vašej účasti.",
"Please contact the organizer directly." : "Prosím kontaktujte priamo organizátora.",
"Are you accepting the invitation?" : "Príjmate pozvánku?",
"Tentative" : "Neistý",
- "Your attendance was updated successfully." : "Vaša účasť bola aktualizovaná úspešne.",
- "Time:" : "Čas:",
- "Could not open file" : "Súbor sa nepodarilo otvoriť",
- "Invalid chunk name" : "Neplatný názov bloku",
- "Could not rename part file assembled from chunks" : "Nepodarilo sa premenovať dočasný súbor vytvorený z blokov"
+ "Your attendance was updated successfully." : "Vaša účasť bola aktualizovaná úspešne."
},"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/dav/l10n/sl.js b/apps/dav/l10n/sl.js
index 586b8446c5d..f33a677c95c 100644
--- a/apps/dav/l10n/sl.js
+++ b/apps/dav/l10n/sl.js
@@ -198,6 +198,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Izbor časa začetka za {dayName}",
"Pick a end time for {dayName}" : "Izbor časa konca za {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Samodejno nastavi stanje uporabnika na »Ne moti« in zavračaj prikaz obvestil izven časa razpoložljivosti.",
+ "Cancel" : "Prekliči",
+ "Import" : "Uvozi",
+ "Error while saving settings" : "Prišlo je do napake med shranjevanjem nastavitev",
+ "Reset to default" : "Ponastavi na privzeto",
"Availability" : "Razpoložljivost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Če nastavite delovni čas, bodo drugi uporabniki pri izbiri časa sestanka videli, kdaj ste zasedeni.",
"Absence" : "Odsotnost",
@@ -214,17 +218,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Pošiljanje opomnikov tudi naročnikom koledarja.",
"Reminders are always sent to organizers and attendees." : "Opomniki bodo vedno poslani organizatorjem in udeležencem.",
"Enable notifications for events via push" : "Omogoči potisna obvestila za dogodke",
- "Cancel" : "Prekliči",
- "Import" : "Uvozi",
- "Error while saving settings" : "Prišlo je do napake med shranjevanjem nastavitev",
"There was an error updating your attendance status." : "Prišlo je do napake med posodabljanjem vaše udeležbe.",
"Please contact the organizer directly." : "Z organizatorjem stopite neposredno v stik.",
"Are you accepting the invitation?" : "Ali želite sprejeti povabilo?",
"Tentative" : "Začasno",
- "Your attendance was updated successfully." : "Vaša prisotnost je uspešno posodobljena.",
- "Time:" : "Čas:",
- "Could not open file" : "Datoteke ni mogoče odpreti",
- "Invalid chunk name" : "Neveljavno ime dela",
- "Could not rename part file assembled from chunks" : "Ni mogoče preimenovati delne datoteke, združene iz delov."
+ "Your attendance was updated successfully." : "Vaša prisotnost je uspešno posodobljena."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/dav/l10n/sl.json b/apps/dav/l10n/sl.json
index 56efe70d043..423b215a669 100644
--- a/apps/dav/l10n/sl.json
+++ b/apps/dav/l10n/sl.json
@@ -196,6 +196,10 @@
"Pick a start time for {dayName}" : "Izbor časa začetka za {dayName}",
"Pick a end time for {dayName}" : "Izbor časa konca za {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Samodejno nastavi stanje uporabnika na »Ne moti« in zavračaj prikaz obvestil izven časa razpoložljivosti.",
+ "Cancel" : "Prekliči",
+ "Import" : "Uvozi",
+ "Error while saving settings" : "Prišlo je do napake med shranjevanjem nastavitev",
+ "Reset to default" : "Ponastavi na privzeto",
"Availability" : "Razpoložljivost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Če nastavite delovni čas, bodo drugi uporabniki pri izbiri časa sestanka videli, kdaj ste zasedeni.",
"Absence" : "Odsotnost",
@@ -212,17 +216,10 @@
"Send reminder notifications to calendar sharees as well" : "Pošiljanje opomnikov tudi naročnikom koledarja.",
"Reminders are always sent to organizers and attendees." : "Opomniki bodo vedno poslani organizatorjem in udeležencem.",
"Enable notifications for events via push" : "Omogoči potisna obvestila za dogodke",
- "Cancel" : "Prekliči",
- "Import" : "Uvozi",
- "Error while saving settings" : "Prišlo je do napake med shranjevanjem nastavitev",
"There was an error updating your attendance status." : "Prišlo je do napake med posodabljanjem vaše udeležbe.",
"Please contact the organizer directly." : "Z organizatorjem stopite neposredno v stik.",
"Are you accepting the invitation?" : "Ali želite sprejeti povabilo?",
"Tentative" : "Začasno",
- "Your attendance was updated successfully." : "Vaša prisotnost je uspešno posodobljena.",
- "Time:" : "Čas:",
- "Could not open file" : "Datoteke ni mogoče odpreti",
- "Invalid chunk name" : "Neveljavno ime dela",
- "Could not rename part file assembled from chunks" : "Ni mogoče preimenovati delne datoteke, združene iz delov."
+ "Your attendance was updated successfully." : "Vaša prisotnost je uspešno posodobljena."
},"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/dav/l10n/sq.js b/apps/dav/l10n/sq.js
deleted file mode 100644
index 0fc1d01d825..00000000000
--- a/apps/dav/l10n/sq.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "dav",
- {
- "Calendar" : "Kalendar",
- "Todos" : "Për tu bërë",
- "Personal" : "Personale",
- "{actor} created calendar {calendar}" : "{aktori} krijoi kalendarin {kalendarin}",
- "You created calendar {calendar}" : "Ju krijuat kalendarin {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} fshiu kalendarin {calendar}",
- "You deleted calendar {calendar}" : "Ju fshit kalendarin {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} përditësoi kalendarin {calendar}",
- "You updated calendar {calendar}" : "Ju përditësuat kalendarin {calendar}",
- "{actor} shared calendar {calendar} with you" : " {actor} ndau kalendarin {calendar} me ju",
- "You shared calendar {calendar} with {user}" : "Ju ndat kalendarin {calendar} me {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} ndau kalendarin {calendar} me {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ndaloj së ndari kalendarin {calendar} me ju",
- "You unshared calendar {calendar} from {user}" : "Ju ndaluat së ndari kalendarin {calendar} me {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} ndaloj së ndari kalendarin {calendar} me {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} ndaloj së ndari kalendarin {calendar} me veten",
- "You shared calendar {calendar} with group {group}" : "Ju ndat kalendarin {calendar} me grupin {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} ndau kalendarin {calendar} me grupin {group}",
- "You unshared calendar {calendar} from group {group}" : "Ju ndaluat së ndari kalendarin {calendar} me grupin {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} ndaloj së ndari kalendarin {calendar} me grupin {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} krijoj eventin {event} në kalendarin {calendar}",
- "You created event {event} in calendar {calendar}" : "Ju krijuat eventin {event} në kalendarin {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} fshiu eventin {event} nga kalendari {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Ju fshit eventin {event} nga kalndari {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} përditsoi eventin {event} në kalndarin {calendar}",
- "You updated event {event} in calendar {calendar}" : "Ju përditësuat eventin {event} në kalndarin {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} u krijua todo{todo} në listën {calendar}",
- "You created todo {todo} in list {calendar}" : "Ju krijuat todo {todo} në listën {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} u fshi todo{ todo} nga lista{calendar}",
- "You deleted todo {todo} from list {calendar}" : "Ju fshit todo{todo} nga lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} u përditësua todo{todo} në listën{calendar}",
- "You updated todo {todo} in list {calendar}" : "Ju përditësuat përtëbërë {todo} në listën{calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} zgjidhi përtëbërë {todo} në listën {calendar}",
- "You solved todo {todo} in list {calendar}" : "Ju zgjidhët përtëbërë {todo} në listën {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} rihapi përtëbërë {todo} në listën {calendar}",
- "You reopened todo {todo} in list {calendar}" : "Ju rihapët përtëbërë {todo} në listën {calendar}",
- "A <strong>calendar</strong> was modified" : "Një <strong>kalendar</strong> u modifikua",
- "A calendar <strong>event</strong> was modified" : "Një <strong>event</strong> në kalendar u modifikua",
- "A calendar <strong>todo</strong> was modified" : "Një kalendar <strong>todo<strong> u modifikua",
- "Contact birthdays" : "Ditëlindjet e kontakteve",
- "Where:" : "Ku:",
- "Description:" : "Përshkrimi:",
- "Invitation canceled" : "Ftesa u anullua",
- "Invitation updated" : "Ftesa u përditësua",
- "Location:" : "Vendndodhje:",
- "Link:" : "Link:",
- "Accept" : "Prano",
- "Decline" : "Refuzo",
- "More options …" : "Më shumë opsione ...",
- "Contacts" : "Kontaktet",
- "Tasks" : "Detyra",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativë",
- "Save" : "Ruaj",
- "Your attendance was updated successfully." : "Pjesëmarrja juaj u përditësua me sukses.",
- "Send invitations to attendees" : "Dërgo ftesa tek pjesëmarrësit",
- "Hello %s," : "Përshëndetje %s,",
- "When:" : "Kur:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/sq.json b/apps/dav/l10n/sq.json
deleted file mode 100644
index 128ad854cac..00000000000
--- a/apps/dav/l10n/sq.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "Calendar" : "Kalendar",
- "Todos" : "Për tu bërë",
- "Personal" : "Personale",
- "{actor} created calendar {calendar}" : "{aktori} krijoi kalendarin {kalendarin}",
- "You created calendar {calendar}" : "Ju krijuat kalendarin {calendar}",
- "{actor} deleted calendar {calendar}" : "{actor} fshiu kalendarin {calendar}",
- "You deleted calendar {calendar}" : "Ju fshit kalendarin {calendar}",
- "{actor} updated calendar {calendar}" : "{actor} përditësoi kalendarin {calendar}",
- "You updated calendar {calendar}" : "Ju përditësuat kalendarin {calendar}",
- "{actor} shared calendar {calendar} with you" : " {actor} ndau kalendarin {calendar} me ju",
- "You shared calendar {calendar} with {user}" : "Ju ndat kalendarin {calendar} me {user}",
- "{actor} shared calendar {calendar} with {user}" : "{actor} ndau kalendarin {calendar} me {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} ndaloj së ndari kalendarin {calendar} me ju",
- "You unshared calendar {calendar} from {user}" : "Ju ndaluat së ndari kalendarin {calendar} me {user}",
- "{actor} unshared calendar {calendar} from {user}" : "{actor} ndaloj së ndari kalendarin {calendar} me {user}",
- "{actor} unshared calendar {calendar} from themselves" : "{actor} ndaloj së ndari kalendarin {calendar} me veten",
- "You shared calendar {calendar} with group {group}" : "Ju ndat kalendarin {calendar} me grupin {group}",
- "{actor} shared calendar {calendar} with group {group}" : "{actor} ndau kalendarin {calendar} me grupin {group}",
- "You unshared calendar {calendar} from group {group}" : "Ju ndaluat së ndari kalendarin {calendar} me grupin {group}",
- "{actor} unshared calendar {calendar} from group {group}" : "{actor} ndaloj së ndari kalendarin {calendar} me grupin {group}",
- "{actor} created event {event} in calendar {calendar}" : "{actor} krijoj eventin {event} në kalendarin {calendar}",
- "You created event {event} in calendar {calendar}" : "Ju krijuat eventin {event} në kalendarin {calendar}",
- "{actor} deleted event {event} from calendar {calendar}" : "{actor} fshiu eventin {event} nga kalendari {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Ju fshit eventin {event} nga kalndari {calendar}",
- "{actor} updated event {event} in calendar {calendar}" : "{actor} përditsoi eventin {event} në kalndarin {calendar}",
- "You updated event {event} in calendar {calendar}" : "Ju përditësuat eventin {event} në kalndarin {calendar}",
- "{actor} created todo {todo} in list {calendar}" : "{actor} u krijua todo{todo} në listën {calendar}",
- "You created todo {todo} in list {calendar}" : "Ju krijuat todo {todo} në listën {calendar}",
- "{actor} deleted todo {todo} from list {calendar}" : "{actor} u fshi todo{ todo} nga lista{calendar}",
- "You deleted todo {todo} from list {calendar}" : "Ju fshit todo{todo} nga lista {calendar}",
- "{actor} updated todo {todo} in list {calendar}" : "{actor} u përditësua todo{todo} në listën{calendar}",
- "You updated todo {todo} in list {calendar}" : "Ju përditësuat përtëbërë {todo} në listën{calendar}",
- "{actor} solved todo {todo} in list {calendar}" : "{actor} zgjidhi përtëbërë {todo} në listën {calendar}",
- "You solved todo {todo} in list {calendar}" : "Ju zgjidhët përtëbërë {todo} në listën {calendar}",
- "{actor} reopened todo {todo} in list {calendar}" : "{actor} rihapi përtëbërë {todo} në listën {calendar}",
- "You reopened todo {todo} in list {calendar}" : "Ju rihapët përtëbërë {todo} në listën {calendar}",
- "A <strong>calendar</strong> was modified" : "Një <strong>kalendar</strong> u modifikua",
- "A calendar <strong>event</strong> was modified" : "Një <strong>event</strong> në kalendar u modifikua",
- "A calendar <strong>todo</strong> was modified" : "Një kalendar <strong>todo<strong> u modifikua",
- "Contact birthdays" : "Ditëlindjet e kontakteve",
- "Where:" : "Ku:",
- "Description:" : "Përshkrimi:",
- "Invitation canceled" : "Ftesa u anullua",
- "Invitation updated" : "Ftesa u përditësua",
- "Location:" : "Vendndodhje:",
- "Link:" : "Link:",
- "Accept" : "Prano",
- "Decline" : "Refuzo",
- "More options …" : "Më shumë opsione ...",
- "Contacts" : "Kontaktet",
- "Tasks" : "Detyra",
- "WebDAV" : "WebDAV",
- "Tentative" : "Tentativë",
- "Save" : "Ruaj",
- "Your attendance was updated successfully." : "Pjesëmarrja juaj u përditësua me sukses.",
- "Send invitations to attendees" : "Dërgo ftesa tek pjesëmarrësit",
- "Hello %s," : "Përshëndetje %s,",
- "When:" : "Kur:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/dav/l10n/sr.js b/apps/dav/l10n/sr.js
index 8655196e000..c33b7c28923 100644
--- a/apps/dav/l10n/sr.js
+++ b/apps/dav/l10n/sr.js
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Изаберите време почетка за {dayName}",
"Pick a end time for {dayName}" : "Изаберите време завршетка за {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Аутоматски поставља статус кориниска на „Не узнемиравај” како би се ван доступности пригушила сва обавештења.",
+ "Cancel" : "Откажи",
+ "Import" : "Увоз",
+ "Error while saving settings" : "Грешка приликом чувања подешавања",
+ "Contact reset successfully" : "Контакт је успешно ресетован",
+ "Error while resetting contact" : "Грешка приликом ресетовања контакта",
+ "Contact imported successfully" : "Контакт је успешно увезен",
+ "Error while importing contact" : "Грешка током увоза контакта",
+ "Import contact" : "Увези контакт",
+ "Reset to default" : "Врати на подразумевано",
+ "Import contacts" : "Увези контакте",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Увоз новог .vcf фајла ће да обрише постојећи подразумевани контакт и замениће га са новим. Желите ли да наставите?",
+ "Failed to save example event creation setting" : "Није успело чување подешавања креирања догађаја за пример",
+ "Failed to upload the example event" : "Није успело отпремање догађаја за пример",
+ "Custom example event was saved successfully" : "Произвољни догађај за пример је успешно сачуван",
+ "Failed to delete the custom example event" : "Произвољни догађај за пример није могао да се обрише",
+ "Custom example event was deleted successfully" : "Произвољни догађај за пример је успешно обрисан",
+ "Import calendar event" : "Увоз догађаја календара",
+ "Uploading a new event will overwrite the existing one." : "Отпремање новог догађаја ће да препише постојећи.",
+ "Upload event" : "Отпреми догађај",
"Availability" : "Доступност",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ако подесите своје радне сате, када буду заказивали састанак, други људи ће видети када сте ван канцеларије.",
"Absence" : "Одсутност",
@@ -306,27 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Пошаљи подсетнике и корисницима којима је календар подељен",
"Reminders are always sent to organizers and attendees." : "Подсетници се увек шаљу организаторима и учесницима.",
"Enable notifications for events via push" : "Укључи обавештења за догађаје преко гурања догађаја",
- "Cancel" : "Откажи",
- "Import" : "Увоз",
- "Error while saving settings" : "Грешка приликом чувања подешавања",
- "Contact reset successfully" : "Контакт је успешно ресетован",
- "Error while resetting contact" : "Грешка приликом ресетовања контакта",
- "Contact imported successfully" : "Контакт је успешно увезен",
- "Error while importing contact" : "Грешка током увоза контакта",
- "Example Content" : "Пример садржаја",
- "Set example content to be created on new user first login." : "Постављање примера садржаја који се креира приликом прве пријаве новог корисника.",
- "Import contact" : "Увези контакт",
- "Reset to default contact" : "Ресетуј на подразумевани контакт",
- "Import contacts" : "Увези контакте",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Увоз новог .vcf фајла ће да обрише постојећи подразумевани контакт и замениће га са новим. Желите ли да наставите?",
+ "Example content" : "Садржај за пример",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Садржај за пример служи да покаже Nextcloud могућности. Подразумевани садржај се испоручује уз Nextcloud и може да се замени произвољним.",
"There was an error updating your attendance status." : "Десила се грешка приликом ажурирања статуса Вашег присуства.",
"Please contact the organizer directly." : "Контактирајте директно организатора.",
"Are you accepting the invitation?" : "Да ли прихватате позивницу?",
"Tentative" : "Условна потврда",
- "Your attendance was updated successfully." : "Ваше присуство је успешно ажурирано.",
- "Time:" : "Време:",
- "Could not open file" : "Фајл не може да се отвори",
- "Invalid chunk name" : "Неисправни назив комада",
- "Could not rename part file assembled from chunks" : "Име делимичног фајла састављеног од комада не може да се промени"
+ "Your attendance was updated successfully." : "Ваше присуство је успешно ажурирано."
},
"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/dav/l10n/sr.json b/apps/dav/l10n/sr.json
index 597b4174ab4..7df27149b4f 100644
--- a/apps/dav/l10n/sr.json
+++ b/apps/dav/l10n/sr.json
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "Изаберите време почетка за {dayName}",
"Pick a end time for {dayName}" : "Изаберите време завршетка за {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Аутоматски поставља статус кориниска на „Не узнемиравај” како би се ван доступности пригушила сва обавештења.",
+ "Cancel" : "Откажи",
+ "Import" : "Увоз",
+ "Error while saving settings" : "Грешка приликом чувања подешавања",
+ "Contact reset successfully" : "Контакт је успешно ресетован",
+ "Error while resetting contact" : "Грешка приликом ресетовања контакта",
+ "Contact imported successfully" : "Контакт је успешно увезен",
+ "Error while importing contact" : "Грешка током увоза контакта",
+ "Import contact" : "Увези контакт",
+ "Reset to default" : "Врати на подразумевано",
+ "Import contacts" : "Увези контакте",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Увоз новог .vcf фајла ће да обрише постојећи подразумевани контакт и замениће га са новим. Желите ли да наставите?",
+ "Failed to save example event creation setting" : "Није успело чување подешавања креирања догађаја за пример",
+ "Failed to upload the example event" : "Није успело отпремање догађаја за пример",
+ "Custom example event was saved successfully" : "Произвољни догађај за пример је успешно сачуван",
+ "Failed to delete the custom example event" : "Произвољни догађај за пример није могао да се обрише",
+ "Custom example event was deleted successfully" : "Произвољни догађај за пример је успешно обрисан",
+ "Import calendar event" : "Увоз догађаја календара",
+ "Uploading a new event will overwrite the existing one." : "Отпремање новог догађаја ће да препише постојећи.",
+ "Upload event" : "Отпреми догађај",
"Availability" : "Доступност",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ако подесите своје радне сате, када буду заказивали састанак, други људи ће видети када сте ван канцеларије.",
"Absence" : "Одсутност",
@@ -304,27 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "Пошаљи подсетнике и корисницима којима је календар подељен",
"Reminders are always sent to organizers and attendees." : "Подсетници се увек шаљу организаторима и учесницима.",
"Enable notifications for events via push" : "Укључи обавештења за догађаје преко гурања догађаја",
- "Cancel" : "Откажи",
- "Import" : "Увоз",
- "Error while saving settings" : "Грешка приликом чувања подешавања",
- "Contact reset successfully" : "Контакт је успешно ресетован",
- "Error while resetting contact" : "Грешка приликом ресетовања контакта",
- "Contact imported successfully" : "Контакт је успешно увезен",
- "Error while importing contact" : "Грешка током увоза контакта",
- "Example Content" : "Пример садржаја",
- "Set example content to be created on new user first login." : "Постављање примера садржаја који се креира приликом прве пријаве новог корисника.",
- "Import contact" : "Увези контакт",
- "Reset to default contact" : "Ресетуј на подразумевани контакт",
- "Import contacts" : "Увези контакте",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Увоз новог .vcf фајла ће да обрише постојећи подразумевани контакт и замениће га са новим. Желите ли да наставите?",
+ "Example content" : "Садржај за пример",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Садржај за пример служи да покаже Nextcloud могућности. Подразумевани садржај се испоручује уз Nextcloud и може да се замени произвољним.",
"There was an error updating your attendance status." : "Десила се грешка приликом ажурирања статуса Вашег присуства.",
"Please contact the organizer directly." : "Контактирајте директно организатора.",
"Are you accepting the invitation?" : "Да ли прихватате позивницу?",
"Tentative" : "Условна потврда",
- "Your attendance was updated successfully." : "Ваше присуство је успешно ажурирано.",
- "Time:" : "Време:",
- "Could not open file" : "Фајл не може да се отвори",
- "Invalid chunk name" : "Неисправни назив комада",
- "Could not rename part file assembled from chunks" : "Име делимичног фајла састављеног од комада не може да се промени"
+ "Your attendance was updated successfully." : "Ваше присуство је успешно ажурирано."
},"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/dav/l10n/sv.js b/apps/dav/l10n/sv.js
index 018017b3b24..feb1adde944 100644
--- a/apps/dav/l10n/sv.js
+++ b/apps/dav/l10n/sv.js
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Välj en starttid för {dayName}",
"Pick a end time for {dayName}" : "Välj en sluttid för {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Sätt automatiskt användarstatus till \"Stör ej\" utanför tillgängliga tider för att tysta alla notifikationer.",
+ "Cancel" : "Avbryt",
+ "Import" : "Importera",
+ "Error while saving settings" : "Fel vid sparande av inställningar",
+ "Contact reset successfully" : "Kontakten har återställts",
+ "Error while resetting contact" : "Fel vid återställning av kontakt",
+ "Contact imported successfully" : "Kontakten har importerats",
+ "Error while importing contact" : "Fel vid import av kontakt",
+ "Import contact" : "Importera kontakt",
+ "Reset to default" : "Återställ till grundinställningar",
+ "Import contacts" : "Importera kontakter",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Att importera en ny .vcf-fil kommer att radera den befintliga standardkontakten och ersätta den med den nya. Vill du fortsätta?",
+ "Failed to save example event creation setting" : "Kunde inte spara exemplet för inställning av händelseskapande",
+ "Failed to upload the example event" : "Kunde inte ladda upp exempelhändelsen",
+ "Custom example event was saved successfully" : "Anpassad exempelhändelse sparades",
+ "Failed to delete the custom example event" : "Kunde inte ta bort den anpassade exempelhändelsen",
+ "Custom example event was deleted successfully" : "Anpassad exempelhändelse har raderats",
+ "Import calendar event" : "Importera kalenderhändelse",
+ "Uploading a new event will overwrite the existing one." : "Om du laddar upp en ny händelse kommer den att skriva över den befintliga.",
+ "Upload event" : "Ladda upp händelse",
"Availability" : "Din tillgänglighet",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Om du konfigurerar dina arbetstider kommer andra att se när du är frånvarande när de bokar ett möte.",
"Absence" : "Frånvaro",
@@ -306,27 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Skicka även påminnelser till kalenderdeltagare",
"Reminders are always sent to organizers and attendees." : "Påminnelser skickas alltid till arrangörer och deltagare.",
"Enable notifications for events via push" : "Aktivera notiser för händelser via push",
- "Cancel" : "Avbryt",
- "Import" : "Importera",
- "Error while saving settings" : "Fel vid sparande av inställningar",
- "Contact reset successfully" : "Kontakten har återställts",
- "Error while resetting contact" : "Fel vid återställning av kontakt",
- "Contact imported successfully" : "Kontakten har importerats",
- "Error while importing contact" : "Fel vid import av kontakt",
- "Example Content" : "Exempelinnehåll",
- "Set example content to be created on new user first login." : "Ställ in exempelinnehåll som ska skapas vid ny användares första inloggning.",
- "Import contact" : "Importera kontakt",
- "Reset to default contact" : "Återställ till standardkontakt",
- "Import contacts" : "Importera kontakter",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Att importera en ny .vcf-fil kommer att radera den befintliga standardkontakten och ersätta den med den nya. Vill du fortsätta?",
+ "Example content" : "Exempelinnehåll",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Exempelinnehåll används för att visa upp funktionerna i Nextcloud. Standardinnehåll levereras med Nextcloud och kan ersättas med anpassat innehåll.",
"There was an error updating your attendance status." : "Ett fel uppstod vid uppdatering av din närvarostatus.",
"Please contact the organizer directly." : "Vänligen kontakta arrangören direkt.",
"Are you accepting the invitation?" : "Acceptera inbjudan?",
"Tentative" : "Preliminärt",
- "Your attendance was updated successfully." : "Dina närvaro uppdaterades.",
- "Time:" : "Tid:",
- "Could not open file" : "Kunde inte öppna fil",
- "Invalid chunk name" : "Ogiltigt delnamn",
- "Could not rename part file assembled from chunks" : "Kunde inte ändra namn på temporära filen ihopsatt från delar"
+ "Your attendance was updated successfully." : "Dina närvaro uppdaterades."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/sv.json b/apps/dav/l10n/sv.json
index 8fa63d882fb..0496461778f 100644
--- a/apps/dav/l10n/sv.json
+++ b/apps/dav/l10n/sv.json
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "Välj en starttid för {dayName}",
"Pick a end time for {dayName}" : "Välj en sluttid för {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Sätt automatiskt användarstatus till \"Stör ej\" utanför tillgängliga tider för att tysta alla notifikationer.",
+ "Cancel" : "Avbryt",
+ "Import" : "Importera",
+ "Error while saving settings" : "Fel vid sparande av inställningar",
+ "Contact reset successfully" : "Kontakten har återställts",
+ "Error while resetting contact" : "Fel vid återställning av kontakt",
+ "Contact imported successfully" : "Kontakten har importerats",
+ "Error while importing contact" : "Fel vid import av kontakt",
+ "Import contact" : "Importera kontakt",
+ "Reset to default" : "Återställ till grundinställningar",
+ "Import contacts" : "Importera kontakter",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Att importera en ny .vcf-fil kommer att radera den befintliga standardkontakten och ersätta den med den nya. Vill du fortsätta?",
+ "Failed to save example event creation setting" : "Kunde inte spara exemplet för inställning av händelseskapande",
+ "Failed to upload the example event" : "Kunde inte ladda upp exempelhändelsen",
+ "Custom example event was saved successfully" : "Anpassad exempelhändelse sparades",
+ "Failed to delete the custom example event" : "Kunde inte ta bort den anpassade exempelhändelsen",
+ "Custom example event was deleted successfully" : "Anpassad exempelhändelse har raderats",
+ "Import calendar event" : "Importera kalenderhändelse",
+ "Uploading a new event will overwrite the existing one." : "Om du laddar upp en ny händelse kommer den att skriva över den befintliga.",
+ "Upload event" : "Ladda upp händelse",
"Availability" : "Din tillgänglighet",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Om du konfigurerar dina arbetstider kommer andra att se när du är frånvarande när de bokar ett möte.",
"Absence" : "Frånvaro",
@@ -304,27 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "Skicka även påminnelser till kalenderdeltagare",
"Reminders are always sent to organizers and attendees." : "Påminnelser skickas alltid till arrangörer och deltagare.",
"Enable notifications for events via push" : "Aktivera notiser för händelser via push",
- "Cancel" : "Avbryt",
- "Import" : "Importera",
- "Error while saving settings" : "Fel vid sparande av inställningar",
- "Contact reset successfully" : "Kontakten har återställts",
- "Error while resetting contact" : "Fel vid återställning av kontakt",
- "Contact imported successfully" : "Kontakten har importerats",
- "Error while importing contact" : "Fel vid import av kontakt",
- "Example Content" : "Exempelinnehåll",
- "Set example content to be created on new user first login." : "Ställ in exempelinnehåll som ska skapas vid ny användares första inloggning.",
- "Import contact" : "Importera kontakt",
- "Reset to default contact" : "Återställ till standardkontakt",
- "Import contacts" : "Importera kontakter",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Att importera en ny .vcf-fil kommer att radera den befintliga standardkontakten och ersätta den med den nya. Vill du fortsätta?",
+ "Example content" : "Exempelinnehåll",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Exempelinnehåll används för att visa upp funktionerna i Nextcloud. Standardinnehåll levereras med Nextcloud och kan ersättas med anpassat innehåll.",
"There was an error updating your attendance status." : "Ett fel uppstod vid uppdatering av din närvarostatus.",
"Please contact the organizer directly." : "Vänligen kontakta arrangören direkt.",
"Are you accepting the invitation?" : "Acceptera inbjudan?",
"Tentative" : "Preliminärt",
- "Your attendance was updated successfully." : "Dina närvaro uppdaterades.",
- "Time:" : "Tid:",
- "Could not open file" : "Kunde inte öppna fil",
- "Invalid chunk name" : "Ogiltigt delnamn",
- "Could not rename part file assembled from chunks" : "Kunde inte ändra namn på temporära filen ihopsatt från delar"
+ "Your attendance was updated successfully." : "Dina närvaro uppdaterades."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/tr.js b/apps/dav/l10n/tr.js
index f98655d1efb..ef97e7d7616 100644
--- a/apps/dav/l10n/tr.js
+++ b/apps/dav/l10n/tr.js
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "{dayName} için başlangıç zamanını seçin",
"Pick a end time for {dayName}" : "{dayName} için bitiş zamanını seçin",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Tüm bildirimleri sessize almak için, uygunluk durumu dışında kullanıcı durumu otomatik olarak \"Rahatsız etmeyin\" olarak ayarlanır.",
+ "Cancel" : "İptal",
+ "Import" : "İçe aktar",
+ "Error while saving settings" : "Ayarlar kaydedilirken sorun çıktı",
+ "Contact reset successfully" : "Kişi sıfırlandı",
+ "Error while resetting contact" : "Kişi sıfırlanırken sorun çıktı",
+ "Contact imported successfully" : "Kişi içe aktarıldı",
+ "Error while importing contact" : "Kişi içe aktarılırken sorun çıktı",
+ "Import contact" : "Kişiyi içe aktar",
+ "Reset to default" : "Varsayılanlara dön",
+ "Import contacts" : "Kişileri içe aktar",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Yeni bir .vcf dosyasını içe aktarmak, var olan varsayılan kişiyi siler ve yenisiyle değiştirir. İlerlemek istiyor musunuz?",
+ "Failed to save example event creation setting" : "Örnek etkinlik oluşturma ayarı kaydedilemedi",
+ "Failed to upload the example event" : "Örnek etkinlik yüklenemedi",
+ "Custom example event was saved successfully" : "Özel örnek etkinlik kaydedildi",
+ "Failed to delete the custom example event" : "Özel örnek etkinlik silinemedi",
+ "Custom example event was deleted successfully" : "Özel örnek etkinlik silindi",
+ "Import calendar event" : "Takvim etkinliğini içe aktar",
+ "Uploading a new event will overwrite the existing one." : "Yeni bir etkinlik yüklendiğinde eskisinin üzerine yazılır.",
+ "Upload event" : "Etkinlik yükle",
"Availability" : "Uygunluk",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Çalışma saatlerinizi ayarlarsanız, diğer kişiler bir toplantı ayarladıklarında ofis dışında olduğunuzu görürler.",
"Absence" : "Bulunmama",
@@ -299,34 +318,19 @@ OC.L10N.register(
"Calendar server" : "Takvim sunucusu",
"Send invitations to attendees" : "Katılımcılara davet gönder",
"Automatically generate a birthday calendar" : "Doğum günü takvimi otomatik oluşturulsun",
- "Birthday calendars will be generated by a background job." : "Bu seçenek kullanıma alındığında, doğum günü takvimi arka plan görevi olarak oluşturulur.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Kullanıma alındıktan hemen sonra görüntülenmez, bir süre sonra görüntülenir.",
+ "Birthday calendars will be generated by a background job." : "Açıldığında, arka plan görevi olarak doğum günü takvimi oluşturulur.",
+ "Hence they will not be available immediately after enabling but will show up after some time." : "Açıldıktan hemen sonra değil bir süre sonra görüntülenir.",
"Send notifications for events" : "Etkinlik bildirimleri gönderilsin",
"Notifications are sent via background jobs, so these must occur often enough." : "Bildirimler arka plan işlemleri tarafından gönderilir. Bu nedenle sıklık değeri uygun şekilde ayarlanmalıdır.",
"Send reminder notifications to calendar sharees as well" : "Takvim paylaşımlarına da hatırlatma bildirimleri gönderilsin",
- "Reminders are always sent to organizers and attendees." : "Bu seçenek kullanıma alındığında, hatırlatıcılar her zaman düzenleyici ve katılımcılara gönderilir.",
+ "Reminders are always sent to organizers and attendees." : "Açıldığında, anımsatıcılar düzenleyici ve katılımcılara her zaman gönderilir.",
"Enable notifications for events via push" : "Anında etkinlik bildirimlerini aç",
- "Cancel" : "İptal",
- "Import" : "İçe aktar",
- "Error while saving settings" : "Ayarlar kaydedilirken sorun çıktı",
- "Contact reset successfully" : "Kişi sıfırlandı",
- "Error while resetting contact" : "Kişi sıfırlanırken sorun çıktı",
- "Contact imported successfully" : "Kişi içe aktarıldı",
- "Error while importing contact" : "Kişi içe aktarılırken sorun çıktı",
- "Example Content" : "Örnek içerik",
- "Set example content to be created on new user first login." : "Yeni kullanıcının ilk oturum açmasında oluşturulacak örnek içeriği ayarlayın.",
- "Import contact" : "Kişiyi içe aktar",
- "Reset to default contact" : "Varsayılan kişiye sıfırla",
- "Import contacts" : "Kişileri içe aktar",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Yeni bir .vcf dosyasını içe aktarmak, var olan varsayılan kişiyi siler ve yenisiyle değiştirir. İlerlemek istiyor musunuz?",
+ "Example content" : "Örnek içerik",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Örnek içerik, Nextcloud özelliklerinin sunulmasını sağlar. Varsayılan içerik Nextcloud ile birlikte gelir ve özel içerikle değiştirilebilir.",
"There was an error updating your attendance status." : "Katılım durumunuz güncellenirken bir sorun çıktı.",
"Please contact the organizer directly." : "Lütfen düzenleyici ile doğrudan görüşün.",
"Are you accepting the invitation?" : "Daveti kabul ediyor musunuz?",
"Tentative" : "Kesin değil",
- "Your attendance was updated successfully." : "Katılımınız güncellendi.",
- "Time:" : "Zaman:",
- "Could not open file" : "Dosya açılamadı",
- "Invalid chunk name" : "Parça adı geçersiz",
- "Could not rename part file assembled from chunks" : "Parçalardan oluşturulan parça dosyası yeniden adlandırılamadı "
+ "Your attendance was updated successfully." : "Katılımınız güncellendi."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/dav/l10n/tr.json b/apps/dav/l10n/tr.json
index 949b17d2278..d1c8c7ae4bf 100644
--- a/apps/dav/l10n/tr.json
+++ b/apps/dav/l10n/tr.json
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "{dayName} için başlangıç zamanını seçin",
"Pick a end time for {dayName}" : "{dayName} için bitiş zamanını seçin",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Tüm bildirimleri sessize almak için, uygunluk durumu dışında kullanıcı durumu otomatik olarak \"Rahatsız etmeyin\" olarak ayarlanır.",
+ "Cancel" : "İptal",
+ "Import" : "İçe aktar",
+ "Error while saving settings" : "Ayarlar kaydedilirken sorun çıktı",
+ "Contact reset successfully" : "Kişi sıfırlandı",
+ "Error while resetting contact" : "Kişi sıfırlanırken sorun çıktı",
+ "Contact imported successfully" : "Kişi içe aktarıldı",
+ "Error while importing contact" : "Kişi içe aktarılırken sorun çıktı",
+ "Import contact" : "Kişiyi içe aktar",
+ "Reset to default" : "Varsayılanlara dön",
+ "Import contacts" : "Kişileri içe aktar",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Yeni bir .vcf dosyasını içe aktarmak, var olan varsayılan kişiyi siler ve yenisiyle değiştirir. İlerlemek istiyor musunuz?",
+ "Failed to save example event creation setting" : "Örnek etkinlik oluşturma ayarı kaydedilemedi",
+ "Failed to upload the example event" : "Örnek etkinlik yüklenemedi",
+ "Custom example event was saved successfully" : "Özel örnek etkinlik kaydedildi",
+ "Failed to delete the custom example event" : "Özel örnek etkinlik silinemedi",
+ "Custom example event was deleted successfully" : "Özel örnek etkinlik silindi",
+ "Import calendar event" : "Takvim etkinliğini içe aktar",
+ "Uploading a new event will overwrite the existing one." : "Yeni bir etkinlik yüklendiğinde eskisinin üzerine yazılır.",
+ "Upload event" : "Etkinlik yükle",
"Availability" : "Uygunluk",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Çalışma saatlerinizi ayarlarsanız, diğer kişiler bir toplantı ayarladıklarında ofis dışında olduğunuzu görürler.",
"Absence" : "Bulunmama",
@@ -297,34 +316,19 @@
"Calendar server" : "Takvim sunucusu",
"Send invitations to attendees" : "Katılımcılara davet gönder",
"Automatically generate a birthday calendar" : "Doğum günü takvimi otomatik oluşturulsun",
- "Birthday calendars will be generated by a background job." : "Bu seçenek kullanıma alındığında, doğum günü takvimi arka plan görevi olarak oluşturulur.",
- "Hence they will not be available immediately after enabling but will show up after some time." : "Kullanıma alındıktan hemen sonra görüntülenmez, bir süre sonra görüntülenir.",
+ "Birthday calendars will be generated by a background job." : "Açıldığında, arka plan görevi olarak doğum günü takvimi oluşturulur.",
+ "Hence they will not be available immediately after enabling but will show up after some time." : "Açıldıktan hemen sonra değil bir süre sonra görüntülenir.",
"Send notifications for events" : "Etkinlik bildirimleri gönderilsin",
"Notifications are sent via background jobs, so these must occur often enough." : "Bildirimler arka plan işlemleri tarafından gönderilir. Bu nedenle sıklık değeri uygun şekilde ayarlanmalıdır.",
"Send reminder notifications to calendar sharees as well" : "Takvim paylaşımlarına da hatırlatma bildirimleri gönderilsin",
- "Reminders are always sent to organizers and attendees." : "Bu seçenek kullanıma alındığında, hatırlatıcılar her zaman düzenleyici ve katılımcılara gönderilir.",
+ "Reminders are always sent to organizers and attendees." : "Açıldığında, anımsatıcılar düzenleyici ve katılımcılara her zaman gönderilir.",
"Enable notifications for events via push" : "Anında etkinlik bildirimlerini aç",
- "Cancel" : "İptal",
- "Import" : "İçe aktar",
- "Error while saving settings" : "Ayarlar kaydedilirken sorun çıktı",
- "Contact reset successfully" : "Kişi sıfırlandı",
- "Error while resetting contact" : "Kişi sıfırlanırken sorun çıktı",
- "Contact imported successfully" : "Kişi içe aktarıldı",
- "Error while importing contact" : "Kişi içe aktarılırken sorun çıktı",
- "Example Content" : "Örnek içerik",
- "Set example content to be created on new user first login." : "Yeni kullanıcının ilk oturum açmasında oluşturulacak örnek içeriği ayarlayın.",
- "Import contact" : "Kişiyi içe aktar",
- "Reset to default contact" : "Varsayılan kişiye sıfırla",
- "Import contacts" : "Kişileri içe aktar",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Yeni bir .vcf dosyasını içe aktarmak, var olan varsayılan kişiyi siler ve yenisiyle değiştirir. İlerlemek istiyor musunuz?",
+ "Example content" : "Örnek içerik",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Örnek içerik, Nextcloud özelliklerinin sunulmasını sağlar. Varsayılan içerik Nextcloud ile birlikte gelir ve özel içerikle değiştirilebilir.",
"There was an error updating your attendance status." : "Katılım durumunuz güncellenirken bir sorun çıktı.",
"Please contact the organizer directly." : "Lütfen düzenleyici ile doğrudan görüşün.",
"Are you accepting the invitation?" : "Daveti kabul ediyor musunuz?",
"Tentative" : "Kesin değil",
- "Your attendance was updated successfully." : "Katılımınız güncellendi.",
- "Time:" : "Zaman:",
- "Could not open file" : "Dosya açılamadı",
- "Invalid chunk name" : "Parça adı geçersiz",
- "Could not rename part file assembled from chunks" : "Parçalardan oluşturulan parça dosyası yeniden adlandırılamadı "
+ "Your attendance was updated successfully." : "Katılımınız güncellendi."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ug.js b/apps/dav/l10n/ug.js
index e5cb4e9ab2d..5915a185740 100644
--- a/apps/dav/l10n/ug.js
+++ b/apps/dav/l10n/ug.js
@@ -239,6 +239,10 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "{dayName} نىڭ باشلىنىش ۋاقتىنى تاللاڭ",
"Pick a end time for {dayName}" : "{dayName} نىڭ ئاخىرقى ۋاقتىنى تاللاڭ",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "بارلىق ئۇقتۇرۇشلارنى ئاۋازسىز قىلىش ئۈچۈن ئىشلەتكۈچى ھالىتىنى ئاپتوماتىك ھالدا «ئاۋارە قىلماڭ» قىلىپ تەڭشەڭ.",
+ "Cancel" : "بىكار قىلىش",
+ "Import" : "ئەكىر",
+ "Error while saving settings" : "تەڭشەكلەرنى ساقلاش جەريانىدا خاتالىق",
+ "Reset to default" : "سۈكۈتتىكى ھالىتىگە قايتىڭ",
"Availability" : "ئىشلەتكىلى بولىدۇ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "ئەگەر خىزمەت ۋاقتىڭىزنى تەڭشىسىڭىز ، باشقىلار يىغىن زاكاز قىلغاندا سىزنىڭ ئىشتىن چۈشكەن ۋاقتىڭىزنى كۆرىدۇ.",
"Absence" : "يوق",
@@ -255,17 +259,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "كالېندار ھەمبەھىرلىرىگىمۇ ئەسكەرتىش ئۇقتۇرۇشى ئەۋەتىڭ",
"Reminders are always sent to organizers and attendees." : "ئەسكەرتىش ھەمىشە تەشكىللىگۈچىلەر ۋە قاتناشقۇچىلارغا ئەۋەتىلىدۇ.",
"Enable notifications for events via push" : "ئىتتىرىش ئارقىلىق ۋەقەلەرگە ئۇقتۇرۇشنى قوزغىتىڭ",
- "Cancel" : "بىكار قىلىش",
- "Import" : "ئەكىر",
- "Error while saving settings" : "تەڭشەكلەرنى ساقلاش جەريانىدا خاتالىق",
"There was an error updating your attendance status." : "قاتنىشىش ھالىتىڭىزنى يېڭىلاشتا خاتالىق كۆرۈلدى.",
"Please contact the organizer directly." : "تەشكىللىگۈچى بىلەن بىۋاسىتە ئالاقىلىشىڭ.",
"Are you accepting the invitation?" : "تەكلىپنى قوبۇل قىلامسىز؟",
"Tentative" : "Tentative",
- "Your attendance was updated successfully." : "سىزنىڭ قاتنىشىشىڭىز مۇۋەپپەقىيەتلىك يېڭىلاندى.",
- "Time:" : "ۋاقىت:",
- "Could not open file" : "ھۆججەت ئاچالمىدى",
- "Invalid chunk name" : "ئىناۋەتسىز",
- "Could not rename part file assembled from chunks" : "بۆلەكلەردىن يىغىلغان قىسمەن ھۆججەتنىڭ نامىنى ئۆزگەرتەلمىدى"
+ "Your attendance was updated successfully." : "سىزنىڭ قاتنىشىشىڭىز مۇۋەپپەقىيەتلىك يېڭىلاندى."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/ug.json b/apps/dav/l10n/ug.json
index 5b05663b827..abbbc45161f 100644
--- a/apps/dav/l10n/ug.json
+++ b/apps/dav/l10n/ug.json
@@ -237,6 +237,10 @@
"Pick a start time for {dayName}" : "{dayName} نىڭ باشلىنىش ۋاقتىنى تاللاڭ",
"Pick a end time for {dayName}" : "{dayName} نىڭ ئاخىرقى ۋاقتىنى تاللاڭ",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "بارلىق ئۇقتۇرۇشلارنى ئاۋازسىز قىلىش ئۈچۈن ئىشلەتكۈچى ھالىتىنى ئاپتوماتىك ھالدا «ئاۋارە قىلماڭ» قىلىپ تەڭشەڭ.",
+ "Cancel" : "بىكار قىلىش",
+ "Import" : "ئەكىر",
+ "Error while saving settings" : "تەڭشەكلەرنى ساقلاش جەريانىدا خاتالىق",
+ "Reset to default" : "سۈكۈتتىكى ھالىتىگە قايتىڭ",
"Availability" : "ئىشلەتكىلى بولىدۇ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "ئەگەر خىزمەت ۋاقتىڭىزنى تەڭشىسىڭىز ، باشقىلار يىغىن زاكاز قىلغاندا سىزنىڭ ئىشتىن چۈشكەن ۋاقتىڭىزنى كۆرىدۇ.",
"Absence" : "يوق",
@@ -253,17 +257,10 @@
"Send reminder notifications to calendar sharees as well" : "كالېندار ھەمبەھىرلىرىگىمۇ ئەسكەرتىش ئۇقتۇرۇشى ئەۋەتىڭ",
"Reminders are always sent to organizers and attendees." : "ئەسكەرتىش ھەمىشە تەشكىللىگۈچىلەر ۋە قاتناشقۇچىلارغا ئەۋەتىلىدۇ.",
"Enable notifications for events via push" : "ئىتتىرىش ئارقىلىق ۋەقەلەرگە ئۇقتۇرۇشنى قوزغىتىڭ",
- "Cancel" : "بىكار قىلىش",
- "Import" : "ئەكىر",
- "Error while saving settings" : "تەڭشەكلەرنى ساقلاش جەريانىدا خاتالىق",
"There was an error updating your attendance status." : "قاتنىشىش ھالىتىڭىزنى يېڭىلاشتا خاتالىق كۆرۈلدى.",
"Please contact the organizer directly." : "تەشكىللىگۈچى بىلەن بىۋاسىتە ئالاقىلىشىڭ.",
"Are you accepting the invitation?" : "تەكلىپنى قوبۇل قىلامسىز؟",
"Tentative" : "Tentative",
- "Your attendance was updated successfully." : "سىزنىڭ قاتنىشىشىڭىز مۇۋەپپەقىيەتلىك يېڭىلاندى.",
- "Time:" : "ۋاقىت:",
- "Could not open file" : "ھۆججەت ئاچالمىدى",
- "Invalid chunk name" : "ئىناۋەتسىز",
- "Could not rename part file assembled from chunks" : "بۆلەكلەردىن يىغىلغان قىسمەن ھۆججەتنىڭ نامىنى ئۆزگەرتەلمىدى"
+ "Your attendance was updated successfully." : "سىزنىڭ قاتنىشىشىڭىز مۇۋەپپەقىيەتلىك يېڭىلاندى."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/uk.js b/apps/dav/l10n/uk.js
index 94e82440454..c8beb750ce2 100644
--- a/apps/dav/l10n/uk.js
+++ b/apps/dav/l10n/uk.js
@@ -258,6 +258,12 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "Виберіть час початку для {dayName}",
"Pick a end time for {dayName}" : "Виберіть час завершення для {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично встановлювати статус користувача у \"Не турбувати\", коли ви не доступні. В цей проміжок часу ви не отримуватимете сповіщення.",
+ "Cancel" : "Скасувати",
+ "Import" : "Імпорт",
+ "Error while saving settings" : "Помилка під час збереження налаштувань",
+ "Import contact" : "Імпортувати контакт",
+ "Reset to default" : "Скинути до типового",
+ "Import contacts" : "Імпортувати контакти",
"Availability" : "Доступність",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Будь ласка, налаштуйте ваші робочі години, щоб інші користувачі могли бачити, коли ви відсутні під час створення зустрічей.",
"Absence" : "Відсутність",
@@ -274,20 +280,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Також надсилайте нагадування користувачам вашого спільного календаря",
"Reminders are always sent to organizers and attendees." : "Нагадування завжди надсилаються організаторам і учасникам.",
"Enable notifications for events via push" : "Увімкнути push-сповіщення для подій",
- "Cancel" : "Скасувати",
- "Import" : "Імпорт",
- "Error while saving settings" : "Помилка під час збереження налаштувань",
- "Import contact" : "Імпортувати контакт",
- "Reset to default contact" : "Скинути то типового контакту",
- "Import contacts" : "Імпортувати контакти",
"There was an error updating your attendance status." : "Виникла помилка при оновленні вашого статусу учасника.",
"Please contact the organizer directly." : "Будь-ласка повідомте організатора.",
"Are you accepting the invitation?" : "Чи приймаєте ви запрошення?",
"Tentative" : "Попередній",
- "Your attendance was updated successfully." : "Ваша участь успішно оновлена.",
- "Time:" : "Час:",
- "Could not open file" : "Не вдалося відкрити файл",
- "Invalid chunk name" : "Недійсна назва блоку",
- "Could not rename part file assembled from chunks" : "Не вдалося перейменувати файл частини, зібраний із фрагментів"
+ "Your attendance was updated successfully." : "Ваша участь успішно оновлена."
},
"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/dav/l10n/uk.json b/apps/dav/l10n/uk.json
index 3ea4f596e97..8ac5f933cf6 100644
--- a/apps/dav/l10n/uk.json
+++ b/apps/dav/l10n/uk.json
@@ -256,6 +256,12 @@
"Pick a start time for {dayName}" : "Виберіть час початку для {dayName}",
"Pick a end time for {dayName}" : "Виберіть час завершення для {dayName}",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично встановлювати статус користувача у \"Не турбувати\", коли ви не доступні. В цей проміжок часу ви не отримуватимете сповіщення.",
+ "Cancel" : "Скасувати",
+ "Import" : "Імпорт",
+ "Error while saving settings" : "Помилка під час збереження налаштувань",
+ "Import contact" : "Імпортувати контакт",
+ "Reset to default" : "Скинути до типового",
+ "Import contacts" : "Імпортувати контакти",
"Availability" : "Доступність",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Будь ласка, налаштуйте ваші робочі години, щоб інші користувачі могли бачити, коли ви відсутні під час створення зустрічей.",
"Absence" : "Відсутність",
@@ -272,20 +278,10 @@
"Send reminder notifications to calendar sharees as well" : "Також надсилайте нагадування користувачам вашого спільного календаря",
"Reminders are always sent to organizers and attendees." : "Нагадування завжди надсилаються організаторам і учасникам.",
"Enable notifications for events via push" : "Увімкнути push-сповіщення для подій",
- "Cancel" : "Скасувати",
- "Import" : "Імпорт",
- "Error while saving settings" : "Помилка під час збереження налаштувань",
- "Import contact" : "Імпортувати контакт",
- "Reset to default contact" : "Скинути то типового контакту",
- "Import contacts" : "Імпортувати контакти",
"There was an error updating your attendance status." : "Виникла помилка при оновленні вашого статусу учасника.",
"Please contact the organizer directly." : "Будь-ласка повідомте організатора.",
"Are you accepting the invitation?" : "Чи приймаєте ви запрошення?",
"Tentative" : "Попередній",
- "Your attendance was updated successfully." : "Ваша участь успішно оновлена.",
- "Time:" : "Час:",
- "Could not open file" : "Не вдалося відкрити файл",
- "Invalid chunk name" : "Недійсна назва блоку",
- "Could not rename part file assembled from chunks" : "Не вдалося перейменувати файл частини, зібраний із фрагментів"
+ "Your attendance was updated successfully." : "Ваша участь успішно оновлена."
},"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/dav/l10n/zh_CN.js b/apps/dav/l10n/zh_CN.js
index 9b6eaa3b9e0..e181553ce39 100644
--- a/apps/dav/l10n/zh_CN.js
+++ b/apps/dav/l10n/zh_CN.js
@@ -156,7 +156,7 @@ OC.L10N.register(
"Invitation: %1$s" : "邀请:%1$s",
"%1$s would like to invite you to \"%2$s\"" : "%1$s 想邀请您加入“%2$s”",
"Organizer:" : "组织者:",
- "Attendees:" : "与会者:",
+ "Attendees:" : "参加者:",
"Title:" : "标题:",
"When:" : "时间:",
"Location:" : "地区:",
@@ -261,7 +261,7 @@ OC.L10N.register(
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "您的网页服务器没有正确设置允许文件同步,因为 WebDAV 接口看起来无法正常工作。",
"Your web server is properly set up to allow file synchronization over WebDAV." : "您的 Web 服务器已正确设置为允许通过 WebDAV 进行文件同步。",
"Migrated calendar (%1$s)" : "迁移的日历(%1$s)",
- "Calendars including events, details and attendees" : "日历包含活动、参与人和事件详情",
+ "Calendars including events, details and attendees" : "日历,包括事件、详情和参加者",
"Contacts and groups" : "联系人和群组",
"WebDAV" : "WebDAV",
"Absence saved" : "缺席已保存",
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "选择 {dayName} 的开始时间",
"Pick a end time for {dayName}" : "选择 {dayName} 的结束时间",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "不在工作时间内时,自动将用户状态设置为“勿扰”并静音所有通知。",
+ "Cancel" : "取消",
+ "Import" : "导入",
+ "Error while saving settings" : "保存设置时出错",
+ "Contact reset successfully" : "联系人重置成功",
+ "Error while resetting contact" : "重置联系人时出错",
+ "Contact imported successfully" : "联系人导入成功",
+ "Error while importing contact" : "导入联系人时出错",
+ "Import contact" : "导入联系人",
+ "Reset to default" : "重置为默认设置",
+ "Import contacts" : "导入联系人",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "导入新的 .vcf 文件将删除现有的默认联系人,并用新联系人替换。是否要继续?",
+ "Failed to save example event creation setting" : "无法保存示例事件创建设置",
+ "Failed to upload the example event" : "无法上传示例事件",
+ "Custom example event was saved successfully" : "已成功保存自定义示例事件",
+ "Failed to delete the custom example event" : "无法删除自定义示例事件",
+ "Custom example event was deleted successfully" : "已成功删除自定义示例事件",
+ "Import calendar event" : "导入日历事件",
+ "Uploading a new event will overwrite the existing one." : "上传新事件将覆盖现有事件。",
+ "Upload event" : "上传事件",
"Availability" : "工作时间",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "如果你配置了工作时间,其他人在预订会议时会看到你何时不在办公室。",
"Absence" : "离开",
@@ -297,36 +316,21 @@ OC.L10N.register(
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "也安装{calendarappstoreopen}日历应用{linkclose},或者{calendardocopen}连接您的桌面和移动端同步日历 ↗{linkclose}。",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "请确保正确设置{emailopen}邮件服务器{linkclose}。",
"Calendar server" : "日历服务器",
- "Send invitations to attendees" : "向与会者发送邀请",
+ "Send invitations to attendees" : "向参加者发送邀请",
"Automatically generate a birthday calendar" : "自动生成生日日历",
"Birthday calendars will be generated by a background job." : "生日日历将由后台作业生成。",
"Hence they will not be available immediately after enabling but will show up after some time." : "因此,它们在启用后不会立即可用,但会在一段时间后显示出来。",
"Send notifications for events" : "发送事件通知",
"Notifications are sent via background jobs, so these must occur often enough." : "通知将通过后台任务发送,所以任务的频率要足够高。",
"Send reminder notifications to calendar sharees as well" : "同时向日历共享者发送提醒通知",
- "Reminders are always sent to organizers and attendees." : "始终向组织者和与会者发出提醒。",
+ "Reminders are always sent to organizers and attendees." : "始终向组织者和参加者发送提醒。",
"Enable notifications for events via push" : "启用推送事件通知",
- "Cancel" : "取消",
- "Import" : "导入",
- "Error while saving settings" : "保存设置时出错",
- "Contact reset successfully" : "联系人重置成功",
- "Error while resetting contact" : "重置联系人时出错",
- "Contact imported successfully" : "联系人导入成功",
- "Error while importing contact" : "导入联系人时出错",
- "Example Content" : "示例内容",
- "Set example content to be created on new user first login." : "设置新用户首次登录时要创建的示例内容。",
- "Import contact" : "导入联系人",
- "Reset to default contact" : "重置为默认联系人",
- "Import contacts" : "导入联系人",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "导入新的 .vcf 文件将删除现有的默认联系人,并用新联系人替换。是否要继续?",
+ "Example content" : "示例内容",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "示例内容用于展示 Nextcloud 的功能。默认内容随 Nextcloud 一起提供,可以用自定义内容替换。",
"There was an error updating your attendance status." : "更新您的出席状态时出错。",
"Please contact the organizer directly." : "请直接联系组织者。",
"Are you accepting the invitation?" : "您是否接受邀请?",
"Tentative" : "暂定",
- "Your attendance was updated successfully." : "您的出席状态更新成功。",
- "Time:" : "时间:",
- "Could not open file" : "无法打开文件",
- "Invalid chunk name" : "分片名称无效",
- "Could not rename part file assembled from chunks" : "无法重命名从分片组合的部分文件"
+ "Your attendance was updated successfully." : "您的出席状态更新成功。"
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/zh_CN.json b/apps/dav/l10n/zh_CN.json
index e674599e183..8e3986f615c 100644
--- a/apps/dav/l10n/zh_CN.json
+++ b/apps/dav/l10n/zh_CN.json
@@ -154,7 +154,7 @@
"Invitation: %1$s" : "邀请:%1$s",
"%1$s would like to invite you to \"%2$s\"" : "%1$s 想邀请您加入“%2$s”",
"Organizer:" : "组织者:",
- "Attendees:" : "与会者:",
+ "Attendees:" : "参加者:",
"Title:" : "标题:",
"When:" : "时间:",
"Location:" : "地区:",
@@ -259,7 +259,7 @@
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "您的网页服务器没有正确设置允许文件同步,因为 WebDAV 接口看起来无法正常工作。",
"Your web server is properly set up to allow file synchronization over WebDAV." : "您的 Web 服务器已正确设置为允许通过 WebDAV 进行文件同步。",
"Migrated calendar (%1$s)" : "迁移的日历(%1$s)",
- "Calendars including events, details and attendees" : "日历包含活动、参与人和事件详情",
+ "Calendars including events, details and attendees" : "日历,包括事件、详情和参加者",
"Contacts and groups" : "联系人和群组",
"WebDAV" : "WebDAV",
"Absence saved" : "缺席已保存",
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "选择 {dayName} 的开始时间",
"Pick a end time for {dayName}" : "选择 {dayName} 的结束时间",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "不在工作时间内时,自动将用户状态设置为“勿扰”并静音所有通知。",
+ "Cancel" : "取消",
+ "Import" : "导入",
+ "Error while saving settings" : "保存设置时出错",
+ "Contact reset successfully" : "联系人重置成功",
+ "Error while resetting contact" : "重置联系人时出错",
+ "Contact imported successfully" : "联系人导入成功",
+ "Error while importing contact" : "导入联系人时出错",
+ "Import contact" : "导入联系人",
+ "Reset to default" : "重置为默认设置",
+ "Import contacts" : "导入联系人",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "导入新的 .vcf 文件将删除现有的默认联系人,并用新联系人替换。是否要继续?",
+ "Failed to save example event creation setting" : "无法保存示例事件创建设置",
+ "Failed to upload the example event" : "无法上传示例事件",
+ "Custom example event was saved successfully" : "已成功保存自定义示例事件",
+ "Failed to delete the custom example event" : "无法删除自定义示例事件",
+ "Custom example event was deleted successfully" : "已成功删除自定义示例事件",
+ "Import calendar event" : "导入日历事件",
+ "Uploading a new event will overwrite the existing one." : "上传新事件将覆盖现有事件。",
+ "Upload event" : "上传事件",
"Availability" : "工作时间",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "如果你配置了工作时间,其他人在预订会议时会看到你何时不在办公室。",
"Absence" : "离开",
@@ -295,36 +314,21 @@
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "也安装{calendarappstoreopen}日历应用{linkclose},或者{calendardocopen}连接您的桌面和移动端同步日历 ↗{linkclose}。",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "请确保正确设置{emailopen}邮件服务器{linkclose}。",
"Calendar server" : "日历服务器",
- "Send invitations to attendees" : "向与会者发送邀请",
+ "Send invitations to attendees" : "向参加者发送邀请",
"Automatically generate a birthday calendar" : "自动生成生日日历",
"Birthday calendars will be generated by a background job." : "生日日历将由后台作业生成。",
"Hence they will not be available immediately after enabling but will show up after some time." : "因此,它们在启用后不会立即可用,但会在一段时间后显示出来。",
"Send notifications for events" : "发送事件通知",
"Notifications are sent via background jobs, so these must occur often enough." : "通知将通过后台任务发送,所以任务的频率要足够高。",
"Send reminder notifications to calendar sharees as well" : "同时向日历共享者发送提醒通知",
- "Reminders are always sent to organizers and attendees." : "始终向组织者和与会者发出提醒。",
+ "Reminders are always sent to organizers and attendees." : "始终向组织者和参加者发送提醒。",
"Enable notifications for events via push" : "启用推送事件通知",
- "Cancel" : "取消",
- "Import" : "导入",
- "Error while saving settings" : "保存设置时出错",
- "Contact reset successfully" : "联系人重置成功",
- "Error while resetting contact" : "重置联系人时出错",
- "Contact imported successfully" : "联系人导入成功",
- "Error while importing contact" : "导入联系人时出错",
- "Example Content" : "示例内容",
- "Set example content to be created on new user first login." : "设置新用户首次登录时要创建的示例内容。",
- "Import contact" : "导入联系人",
- "Reset to default contact" : "重置为默认联系人",
- "Import contacts" : "导入联系人",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "导入新的 .vcf 文件将删除现有的默认联系人,并用新联系人替换。是否要继续?",
+ "Example content" : "示例内容",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "示例内容用于展示 Nextcloud 的功能。默认内容随 Nextcloud 一起提供,可以用自定义内容替换。",
"There was an error updating your attendance status." : "更新您的出席状态时出错。",
"Please contact the organizer directly." : "请直接联系组织者。",
"Are you accepting the invitation?" : "您是否接受邀请?",
"Tentative" : "暂定",
- "Your attendance was updated successfully." : "您的出席状态更新成功。",
- "Time:" : "时间:",
- "Could not open file" : "无法打开文件",
- "Invalid chunk name" : "分片名称无效",
- "Could not rename part file assembled from chunks" : "无法重命名从分片组合的部分文件"
+ "Your attendance was updated successfully." : "您的出席状态更新成功。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/zh_HK.js b/apps/dav/l10n/zh_HK.js
index 7acd613e17f..df201c06f90 100644
--- a/apps/dav/l10n/zh_HK.js
+++ b/apps/dav/l10n/zh_HK.js
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "為 {dayName} 挑選開始時間",
"Pick a end time for {dayName}" : "為 {dayName} 挑選結束時間",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "在忙碌時,自動將用戶狀態設定為「請勿打擾」以靜音所有通知。",
+ "Cancel" : "取消",
+ "Import" : "導入",
+ "Error while saving settings" : "儲存設定時發生錯誤",
+ "Contact reset successfully" : "聯絡人重設成功",
+ "Error while resetting contact" : "重設聯絡人時發生錯誤",
+ "Contact imported successfully" : "成功導入了聯絡人",
+ "Error while importing contact" : "導入聯絡人時發生錯誤",
+ "Import contact" : "導入聯絡人",
+ "Reset to default" : "恢復預設值",
+ "Import contacts" : "導入聯絡人",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "導入新的 .vcf 檔案將刪除現有的默認聯絡人並將其替換為新的聯絡人。您想繼續嗎?",
+ "Failed to save example event creation setting" : "儲存範例事件建立設定失敗",
+ "Failed to upload the example event" : "上傳範例事件失敗",
+ "Custom example event was saved successfully" : "已成功儲存自訂範例事件",
+ "Failed to delete the custom example event" : "刪除自訂範例事件失敗",
+ "Custom example event was deleted successfully" : "已成功刪除自訂範例事件",
+ "Import calendar event" : "導入日曆活動",
+ "Uploading a new event will overwrite the existing one." : "上傳新活動將會覆寫原有的",
+ "Upload event" : "上傳活動",
"Availability" : "空閒時間",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "若您設定了您的工作時間,其他人仕在預約會議時就會知道您何時不在辦公室。",
"Absence" : "缺席",
@@ -306,27 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "也向共享日曆者傳送提醒通告",
"Reminders are always sent to organizers and attendees." : "一律傳送提醒通知給舉辦者與參與者。",
"Enable notifications for events via push" : "啟用推送活動通知",
- "Cancel" : "取消",
- "Import" : "導入",
- "Error while saving settings" : "儲存設定時發生錯誤",
- "Contact reset successfully" : "聯絡人重設成功",
- "Error while resetting contact" : "重設聯絡人時發生錯誤",
- "Contact imported successfully" : "成功導入了聯絡人",
- "Error while importing contact" : "導入聯絡人時發生錯誤",
- "Example Content" : "範例內容",
- "Set example content to be created on new user first login." : "設定新用戶首次登入時所建立的範例內容。",
- "Import contact" : "導入聯絡人",
- "Reset to default contact" : "重設為默認聯絡人",
- "Import contacts" : "導入聯絡人",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "導入新的 .vcf 檔案將刪除現有的默認聯絡人並將其替換為新的聯絡人。您想繼續嗎?",
+ "Example content" : "範例內容",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "範例內容用來展示 Nextcloud 的功能。Nextcloud 隨附預設內容,可由自訂內容取代。",
"There was an error updating your attendance status." : "更新您的參與狀況時發生錯誤",
"Please contact the organizer directly." : "請直接聯繫絡主辦人",
"Are you accepting the invitation?" : "接受邀請嗎?",
"Tentative" : "暫定",
- "Your attendance was updated successfully." : "您的參與狀況成功更新",
- "Time:" : "時間:",
- "Could not open file" : "無法開啟檔案",
- "Invalid chunk name" : "無效的區塊名稱",
- "Could not rename part file assembled from chunks" : "無法重新命名從區塊組合成的部份檔案"
+ "Your attendance was updated successfully." : "您的參與狀況成功更新"
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/zh_HK.json b/apps/dav/l10n/zh_HK.json
index 32b7afce5f8..0cafd6ec077 100644
--- a/apps/dav/l10n/zh_HK.json
+++ b/apps/dav/l10n/zh_HK.json
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "為 {dayName} 挑選開始時間",
"Pick a end time for {dayName}" : "為 {dayName} 挑選結束時間",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "在忙碌時,自動將用戶狀態設定為「請勿打擾」以靜音所有通知。",
+ "Cancel" : "取消",
+ "Import" : "導入",
+ "Error while saving settings" : "儲存設定時發生錯誤",
+ "Contact reset successfully" : "聯絡人重設成功",
+ "Error while resetting contact" : "重設聯絡人時發生錯誤",
+ "Contact imported successfully" : "成功導入了聯絡人",
+ "Error while importing contact" : "導入聯絡人時發生錯誤",
+ "Import contact" : "導入聯絡人",
+ "Reset to default" : "恢復預設值",
+ "Import contacts" : "導入聯絡人",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "導入新的 .vcf 檔案將刪除現有的默認聯絡人並將其替換為新的聯絡人。您想繼續嗎?",
+ "Failed to save example event creation setting" : "儲存範例事件建立設定失敗",
+ "Failed to upload the example event" : "上傳範例事件失敗",
+ "Custom example event was saved successfully" : "已成功儲存自訂範例事件",
+ "Failed to delete the custom example event" : "刪除自訂範例事件失敗",
+ "Custom example event was deleted successfully" : "已成功刪除自訂範例事件",
+ "Import calendar event" : "導入日曆活動",
+ "Uploading a new event will overwrite the existing one." : "上傳新活動將會覆寫原有的",
+ "Upload event" : "上傳活動",
"Availability" : "空閒時間",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "若您設定了您的工作時間,其他人仕在預約會議時就會知道您何時不在辦公室。",
"Absence" : "缺席",
@@ -304,27 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "也向共享日曆者傳送提醒通告",
"Reminders are always sent to organizers and attendees." : "一律傳送提醒通知給舉辦者與參與者。",
"Enable notifications for events via push" : "啟用推送活動通知",
- "Cancel" : "取消",
- "Import" : "導入",
- "Error while saving settings" : "儲存設定時發生錯誤",
- "Contact reset successfully" : "聯絡人重設成功",
- "Error while resetting contact" : "重設聯絡人時發生錯誤",
- "Contact imported successfully" : "成功導入了聯絡人",
- "Error while importing contact" : "導入聯絡人時發生錯誤",
- "Example Content" : "範例內容",
- "Set example content to be created on new user first login." : "設定新用戶首次登入時所建立的範例內容。",
- "Import contact" : "導入聯絡人",
- "Reset to default contact" : "重設為默認聯絡人",
- "Import contacts" : "導入聯絡人",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "導入新的 .vcf 檔案將刪除現有的默認聯絡人並將其替換為新的聯絡人。您想繼續嗎?",
+ "Example content" : "範例內容",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "範例內容用來展示 Nextcloud 的功能。Nextcloud 隨附預設內容,可由自訂內容取代。",
"There was an error updating your attendance status." : "更新您的參與狀況時發生錯誤",
"Please contact the organizer directly." : "請直接聯繫絡主辦人",
"Are you accepting the invitation?" : "接受邀請嗎?",
"Tentative" : "暫定",
- "Your attendance was updated successfully." : "您的參與狀況成功更新",
- "Time:" : "時間:",
- "Could not open file" : "無法開啟檔案",
- "Invalid chunk name" : "無效的區塊名稱",
- "Could not rename part file assembled from chunks" : "無法重新命名從區塊組合成的部份檔案"
+ "Your attendance was updated successfully." : "您的參與狀況成功更新"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/zh_TW.js b/apps/dav/l10n/zh_TW.js
index e1e5f759f12..191f6631bbf 100644
--- a/apps/dav/l10n/zh_TW.js
+++ b/apps/dav/l10n/zh_TW.js
@@ -290,6 +290,25 @@ OC.L10N.register(
"Pick a start time for {dayName}" : "為 {dayName} 挑選開始時間",
"Pick a end time for {dayName}" : "為 {dayName} 挑選結束時間",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "在空閒時間以外,自動將使用者狀態設定為「請勿打擾」以靜音所有通知。",
+ "Cancel" : "取消",
+ "Import" : "匯入",
+ "Error while saving settings" : "儲存設定時發生錯誤",
+ "Contact reset successfully" : "成功重設聯絡人",
+ "Error while resetting contact" : "重設聯絡人時發生錯誤",
+ "Contact imported successfully" : "成功匯入聯絡人",
+ "Error while importing contact" : "匯入聯絡人時發生錯誤",
+ "Import contact" : "匯入聯絡人",
+ "Reset to default" : "重設為預設值",
+ "Import contacts" : "匯入聯絡人",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "匯入新的 .vcf 檔案將會刪除現有的預設聯絡人並將其取代為新的聯絡人。您想要繼續嗎?",
+ "Failed to save example event creation setting" : "儲存範例事件建立設定失敗",
+ "Failed to upload the example event" : "上傳範例事件失敗",
+ "Custom example event was saved successfully" : "已成功儲存自訂範例事件",
+ "Failed to delete the custom example event" : "刪除自訂範例事件失敗",
+ "Custom example event was deleted successfully" : "已成功刪除自訂範例事件",
+ "Import calendar event" : "匯入日曆事件",
+ "Uploading a new event will overwrite the existing one." : "上傳新事件將會覆寫原有的",
+ "Upload event" : "上傳事件",
"Availability" : "空閒時間",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "若您設定了您的工作時間,其他使用者在預約會議時就會知道您何時不在辦公室。",
"Absence" : "不在",
@@ -306,27 +325,12 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "也向共享行事曆傳送提醒通知",
"Reminders are always sent to organizers and attendees." : "一律傳送提醒給主辦者與參與者。",
"Enable notifications for events via push" : "啟用行程通知推播",
- "Cancel" : "取消",
- "Import" : "匯入",
- "Error while saving settings" : "儲存設定時發生錯誤",
- "Contact reset successfully" : "成功重設聯絡人",
- "Error while resetting contact" : "重設聯絡人時發生錯誤",
- "Contact imported successfully" : "成功匯入聯絡人",
- "Error while importing contact" : "匯入聯絡人時發生錯誤",
- "Example Content" : "範例內容",
- "Set example content to be created on new user first login." : "設定新使用者首次登入時要建立的範例內容。",
- "Import contact" : "匯入聯絡人",
- "Reset to default contact" : "重設回預設聯絡人",
- "Import contacts" : "匯入聯絡人",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "匯入新的 .vcf 檔案將會刪除現有的預設聯絡人並將其取代為新的聯絡人。您想要繼續嗎?",
+ "Example content" : "範例內容",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "範例內容用來展示 Nextcloud 的功能。Nextcloud 隨附預設內容,可由自訂內容取代。",
"There was an error updating your attendance status." : "更新您的參與狀態時發生錯誤。",
"Please contact the organizer directly." : "請直接聯絡主辦者。",
"Are you accepting the invitation?" : "您要接受邀請嗎?",
"Tentative" : "考慮接受",
- "Your attendance was updated successfully." : "您的參與狀態已成功更新。",
- "Time:" : "時間:",
- "Could not open file" : "無法開啟檔案",
- "Invalid chunk name" : "無效的片段名稱",
- "Could not rename part file assembled from chunks" : "無法重新命名從片段組合成的部份檔案"
+ "Your attendance was updated successfully." : "您的參與狀態已成功更新。"
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/zh_TW.json b/apps/dav/l10n/zh_TW.json
index 0e2bd2af98f..53990163a73 100644
--- a/apps/dav/l10n/zh_TW.json
+++ b/apps/dav/l10n/zh_TW.json
@@ -288,6 +288,25 @@
"Pick a start time for {dayName}" : "為 {dayName} 挑選開始時間",
"Pick a end time for {dayName}" : "為 {dayName} 挑選結束時間",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "在空閒時間以外,自動將使用者狀態設定為「請勿打擾」以靜音所有通知。",
+ "Cancel" : "取消",
+ "Import" : "匯入",
+ "Error while saving settings" : "儲存設定時發生錯誤",
+ "Contact reset successfully" : "成功重設聯絡人",
+ "Error while resetting contact" : "重設聯絡人時發生錯誤",
+ "Contact imported successfully" : "成功匯入聯絡人",
+ "Error while importing contact" : "匯入聯絡人時發生錯誤",
+ "Import contact" : "匯入聯絡人",
+ "Reset to default" : "重設為預設值",
+ "Import contacts" : "匯入聯絡人",
+ "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "匯入新的 .vcf 檔案將會刪除現有的預設聯絡人並將其取代為新的聯絡人。您想要繼續嗎?",
+ "Failed to save example event creation setting" : "儲存範例事件建立設定失敗",
+ "Failed to upload the example event" : "上傳範例事件失敗",
+ "Custom example event was saved successfully" : "已成功儲存自訂範例事件",
+ "Failed to delete the custom example event" : "刪除自訂範例事件失敗",
+ "Custom example event was deleted successfully" : "已成功刪除自訂範例事件",
+ "Import calendar event" : "匯入日曆事件",
+ "Uploading a new event will overwrite the existing one." : "上傳新事件將會覆寫原有的",
+ "Upload event" : "上傳事件",
"Availability" : "空閒時間",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "若您設定了您的工作時間,其他使用者在預約會議時就會知道您何時不在辦公室。",
"Absence" : "不在",
@@ -304,27 +323,12 @@
"Send reminder notifications to calendar sharees as well" : "也向共享行事曆傳送提醒通知",
"Reminders are always sent to organizers and attendees." : "一律傳送提醒給主辦者與參與者。",
"Enable notifications for events via push" : "啟用行程通知推播",
- "Cancel" : "取消",
- "Import" : "匯入",
- "Error while saving settings" : "儲存設定時發生錯誤",
- "Contact reset successfully" : "成功重設聯絡人",
- "Error while resetting contact" : "重設聯絡人時發生錯誤",
- "Contact imported successfully" : "成功匯入聯絡人",
- "Error while importing contact" : "匯入聯絡人時發生錯誤",
- "Example Content" : "範例內容",
- "Set example content to be created on new user first login." : "設定新使用者首次登入時要建立的範例內容。",
- "Import contact" : "匯入聯絡人",
- "Reset to default contact" : "重設回預設聯絡人",
- "Import contacts" : "匯入聯絡人",
- "Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "匯入新的 .vcf 檔案將會刪除現有的預設聯絡人並將其取代為新的聯絡人。您想要繼續嗎?",
+ "Example content" : "範例內容",
+ "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "範例內容用來展示 Nextcloud 的功能。Nextcloud 隨附預設內容,可由自訂內容取代。",
"There was an error updating your attendance status." : "更新您的參與狀態時發生錯誤。",
"Please contact the organizer directly." : "請直接聯絡主辦者。",
"Are you accepting the invitation?" : "您要接受邀請嗎?",
"Tentative" : "考慮接受",
- "Your attendance was updated successfully." : "您的參與狀態已成功更新。",
- "Time:" : "時間:",
- "Could not open file" : "無法開啟檔案",
- "Invalid chunk name" : "無效的片段名稱",
- "Could not rename part file assembled from chunks" : "無法重新命名從片段組合成的部份檔案"
+ "Your attendance was updated successfully." : "您的參與狀態已成功更新。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php
index edf7dd1214f..9d5921a1e83 100644
--- a/apps/dav/lib/AppInfo/Application.php
+++ b/apps/dav/lib/AppInfo/Application.php
@@ -20,7 +20,6 @@ use OCA\DAV\CalDAV\Reminder\NotificationProviderManager;
use OCA\DAV\CalDAV\Reminder\Notifier;
use OCA\DAV\Capabilities;
use OCA\DAV\CardDAV\ContactsManager;
-use OCA\DAV\CardDAV\PhotoCache;
use OCA\DAV\CardDAV\SyncService;
use OCA\DAV\Events\AddressBookCreatedEvent;
use OCA\DAV\Events\AddressBookDeletedEvent;
@@ -82,7 +81,6 @@ use OCP\Config\BeforePreferenceSetEvent;
use OCP\Contacts\IManager as IContactsManager;
use OCP\DB\Events\AddMissingIndicesEvent;
use OCP\Federation\Events\TrustedServerRemovedEvent;
-use OCP\Files\AppData\IAppDataFactory;
use OCP\IUserSession;
use OCP\Server;
use OCP\Settings\Events\DeclarativeSettingsGetValueEvent;
@@ -112,12 +110,6 @@ class Application extends App implements IBootstrap {
public function register(IRegistrationContext $context): void {
$context->registerServiceAlias('CardDAVSyncService', SyncService::class);
- $context->registerService(PhotoCache::class, function (ContainerInterface $c) {
- return new PhotoCache(
- $c->get(IAppDataFactory::class)->get('dav-photocache'),
- $c->get(LoggerInterface::class)
- );
- });
$context->registerService(AppCalendarPlugin::class, function (ContainerInterface $c) {
return new AppCalendarPlugin(
$c->get(ICalendarManager::class),
diff --git a/apps/dav/lib/BulkUpload/MultipartRequestParser.php b/apps/dav/lib/BulkUpload/MultipartRequestParser.php
index 96a90f82cde..f23aca580cc 100644
--- a/apps/dav/lib/BulkUpload/MultipartRequestParser.php
+++ b/apps/dav/lib/BulkUpload/MultipartRequestParser.php
@@ -57,7 +57,13 @@ class MultipartRequestParser {
*/
private function parseBoundaryFromHeaders(string $contentType): string {
try {
+ if (!str_contains($contentType, ';')) {
+ throw new \InvalidArgumentException('No semicolon in header');
+ }
[$mimeType, $boundary] = explode(';', $contentType);
+ if (!str_contains($boundary, '=')) {
+ throw new \InvalidArgumentException('No equal in boundary header');
+ }
[$boundaryKey, $boundaryValue] = explode('=', $boundary);
} catch (\Exception $e) {
throw new BadRequest('Error while parsing boundary in Content-Type header.', Http::STATUS_BAD_REQUEST, $e);
diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Event.php b/apps/dav/lib/CalDAV/Activity/Provider/Event.php
index 41b610542df..f498a47a0b4 100644
--- a/apps/dav/lib/CalDAV/Activity/Provider/Event.php
+++ b/apps/dav/lib/CalDAV/Activity/Provider/Event.php
@@ -78,14 +78,9 @@ class Event extends Base {
// as seen from the affected user.
$objectId = base64_encode($this->url->getWebroot() . '/remote.php/dav/calendars/' . $affectedUser . '/' . $calendarUri . '_shared_by_' . $linkData['owner'] . '/' . $linkData['object_uri']);
}
- $link = [
- 'view' => 'dayGridMonth',
- 'timeRange' => 'now',
- 'mode' => 'sidebar',
+ $params['link'] = $this->url->linkToRouteAbsolute('calendar.view.indexdirect.edit', [
'objectId' => $objectId,
- 'recurrenceId' => 'next'
- ];
- $params['link'] = $this->url->linkToRouteAbsolute('calendar.view.indexview.timerange.edit', $link);
+ ]);
} catch (\Exception $error) {
// Do nothing
}
diff --git a/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php b/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php
index 4d25f5bb501..cc1bab6d4fc 100644
--- a/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php
+++ b/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php
@@ -9,11 +9,12 @@ declare(strict_types=1);
namespace OCA\DAV\CalDAV;
use OCP\Calendar\ICalendar;
+use OCP\Calendar\ICalendarIsEnabled;
use OCP\Calendar\ICalendarIsShared;
use OCP\Calendar\ICalendarIsWritable;
use OCP\Constants;
-class CachedSubscriptionImpl implements ICalendar, ICalendarIsShared, ICalendarIsWritable {
+class CachedSubscriptionImpl implements ICalendar, ICalendarIsEnabled, ICalendarIsShared, ICalendarIsWritable {
public function __construct(
private CachedSubscription $calendar,
@@ -54,16 +55,6 @@ class CachedSubscriptionImpl implements ICalendar, ICalendarIsShared, ICalendarI
return $this->calendarInfo['{http://apple.com/ns/ical/}calendar-color'];
}
- /**
- * @param string $pattern which should match within the $searchProperties
- * @param array $searchProperties defines the properties within the query pattern should match
- * @param array $options - optional parameters:
- * ['timerange' => ['start' => new DateTime(...), 'end' => new DateTime(...)]]
- * @param int|null $limit - limit number of search results
- * @param int|null $offset - offset for paging of search results
- * @return array an array of events/journals/todos which are arrays of key-value-pairs
- * @since 13.0.0
- */
public function search(string $pattern, array $searchProperties = [], array $options = [], $limit = null, $offset = null): array {
return $this->backend->search($this->calendarInfo, $pattern, $searchProperties, $options, $limit, $offset);
}
@@ -86,6 +77,13 @@ class CachedSubscriptionImpl implements ICalendar, ICalendarIsShared, ICalendarI
return $result;
}
+ /**
+ * @since 32.0.0
+ */
+ public function isEnabled(): bool {
+ return $this->calendarInfo['{http://owncloud.org/ns}calendar-enabled'] ?? true;
+ }
+
public function isWritable(): bool {
return false;
}
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index 2ef57ca77bb..1cbf2a1e4eb 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -9,6 +9,7 @@ namespace OCA\DAV\CalDAV;
use DateTime;
use DateTimeImmutable;
use DateTimeInterface;
+use Generator;
use OCA\DAV\AppInfo\Application;
use OCA\DAV\CalDAV\Sharing\Backend;
use OCA\DAV\Connector\Sabre\Principal;
@@ -28,6 +29,7 @@ use OCA\DAV\Events\SubscriptionCreatedEvent;
use OCA\DAV\Events\SubscriptionDeletedEvent;
use OCA\DAV\Events\SubscriptionUpdatedEvent;
use OCP\AppFramework\Db\TTransactional;
+use OCP\Calendar\CalendarExportOptions;
use OCP\Calendar\Events\CalendarObjectCreatedEvent;
use OCP\Calendar\Events\CalendarObjectDeletedEvent;
use OCP\Calendar\Events\CalendarObjectMovedEvent;
@@ -88,6 +90,19 @@ use function time;
* Code is heavily inspired by https://github.com/fruux/sabre-dav/blob/master/lib/CalDAV/Backend/PDO.php
*
* @package OCA\DAV\CalDAV
+ *
+ * @psalm-type CalendarInfo = array{
+ * id: int,
+ * uri: string,
+ * principaluri: string,
+ * '{http://calendarserver.org/ns/}getctag': string,
+ * '{http://sabredav.org/ns}sync-token': int,
+ * '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set': \Sabre\CalDAV\Xml\Property\SupportedCalendarComponentSet,
+ * '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp': \Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp,
+ * '{DAV:}displayname': string,
+ * '{urn:ietf:params:xml:ns:caldav}calendar-timezone': ?string,
+ * '{http://nextcloud.com/ns}owner-displayname': string,
+ * }
*/
class CalDavBackend extends AbstractBackend implements SyncSupport, SubscriptionSupport, SchedulingSupport {
use TTransactional;
@@ -197,15 +212,13 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
}
/**
- * Return the number of calendars for a principal
+ * Return the number of calendars owned by the given principal.
*
- * By default this excludes the automatically generated birthday calendar
+ * Calendars shared with the given principal are not counted!
*
- * @param $principalUri
- * @param bool $excludeBirthday
- * @return int
+ * By default, this excludes the automatically generated birthday calendar.
*/
- public function getCalendarsForUserCount($principalUri, $excludeBirthday = true) {
+ public function getCalendarsForUserCount(string $principalUri, bool $excludeBirthday = true): int {
$principalUri = $this->convertPrincipal($principalUri, true);
$query = $this->db->getQueryBuilder();
$query->select($query->func()->count('*'))
@@ -372,7 +385,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$subSelect->select('resourceid')
->from('dav_shares', 'd')
->where($subSelect->expr()->eq('d.access', $select->createNamedParameter(Backend::ACCESS_UNSHARED, IQueryBuilder::PARAM_INT), IQueryBuilder::PARAM_INT))
- ->andWhere($subSelect->expr()->in('d.principaluri', $select->createNamedParameter($principals, IQueryBuilder::PARAM_STR_ARRAY), IQueryBuilder::PARAM_STR_ARRAY));
+ ->andWhere($subSelect->expr()->eq('d.principaluri', $select->createNamedParameter($principalUri, IQueryBuilder::PARAM_STR), IQueryBuilder::PARAM_STR));
$select->select($fields)
->from('dav_shares', 's')
@@ -649,7 +662,8 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
}
/**
- * @return array{id: int, uri: string, '{http://calendarserver.org/ns/}getctag': string, '{http://sabredav.org/ns}sync-token': int, '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set': SupportedCalendarComponentSet, '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp': ScheduleCalendarTransp, '{urn:ietf:params:xml:ns:caldav}calendar-timezone': ?string }|null
+ * @psalm-return CalendarInfo|null
+ * @return array|null
*/
public function getCalendarById(int $calendarId): ?array {
$fields = array_column($this->propertyMap, 0);
@@ -988,6 +1002,44 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
}
/**
+ * Returns all calendar entries as a stream of data
+ *
+ * @since 32.0.0
+ *
+ * @return Generator<array>
+ */
+ public function exportCalendar(int $calendarId, int $calendarType = self::CALENDAR_TYPE_CALENDAR, ?CalendarExportOptions $options = null): Generator {
+ // extract options
+ $rangeStart = $options?->getRangeStart();
+ $rangeCount = $options?->getRangeCount();
+ // construct query
+ $qb = $this->db->getQueryBuilder();
+ $qb->select('*')
+ ->from('calendarobjects')
+ ->where($qb->expr()->eq('calendarid', $qb->createNamedParameter($calendarId)))
+ ->andWhere($qb->expr()->eq('calendartype', $qb->createNamedParameter($calendarType)))
+ ->andWhere($qb->expr()->isNull('deleted_at'));
+ if ($rangeStart !== null) {
+ $qb->andWhere($qb->expr()->gt('uid', $qb->createNamedParameter($rangeStart)));
+ }
+ if ($rangeCount !== null) {
+ $qb->setMaxResults($rangeCount);
+ }
+ if ($rangeStart !== null || $rangeCount !== null) {
+ $qb->orderBy('uid', 'ASC');
+ }
+ $rs = $qb->executeQuery();
+ // iterate through results
+ try {
+ while (($row = $rs->fetch()) !== false) {
+ yield $row;
+ }
+ } finally {
+ $rs->closeCursor();
+ }
+ }
+
+ /**
* Returns all calendar objects with limited metadata for a calendar
*
* Every item contains an array with the following keys:
@@ -1484,25 +1536,6 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
}, $this->db);
}
-
- /**
- * @param int $calendarObjectId
- * @param int $classification
- */
- public function setClassification($calendarObjectId, $classification) {
- $this->cachedObjects = [];
- if (!in_array($classification, [
- self::CLASSIFICATION_PUBLIC, self::CLASSIFICATION_PRIVATE, self::CLASSIFICATION_CONFIDENTIAL
- ])) {
- throw new \InvalidArgumentException();
- }
- $query = $this->db->getQueryBuilder();
- $query->update('calendarobjects')
- ->set('classification', $query->createNamedParameter($classification))
- ->where($query->expr()->eq('id', $query->createNamedParameter($calendarObjectId)))
- ->executeStatement();
- }
-
/**
* Deletes an existing calendar object.
*
@@ -2953,7 +2986,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
'calendarid' => $query->createNamedParameter($calendarId),
'operation' => $query->createNamedParameter($operation),
'calendartype' => $query->createNamedParameter($calendarType),
- 'created_at' => time(),
+ 'created_at' => $query->createNamedParameter(time()),
]);
foreach ($objectUris as $uri) {
$query->setParameter('uri', $uri);
@@ -3631,4 +3664,26 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
->where($cmd->expr()->eq('uid', $cmd->createNamedParameter($eventId, IQueryBuilder::PARAM_STR), IQueryBuilder::PARAM_STR));
$cmd->executeStatement();
}
+
+ public function unshare(IShareable $shareable, string $principal): void {
+ $this->atomic(function () use ($shareable, $principal): void {
+ $calendarData = $this->getCalendarById($shareable->getResourceId());
+ if ($calendarData === null) {
+ throw new \RuntimeException('Trying to update shares for non-existing calendar: ' . $shareable->getResourceId());
+ }
+
+ $oldShares = $this->getShares($shareable->getResourceId());
+ $unshare = $this->calendarSharingBackend->unshare($shareable, $principal);
+
+ if ($unshare) {
+ $this->dispatcher->dispatchTyped(new CalendarShareUpdatedEvent(
+ $shareable->getResourceId(),
+ $calendarData,
+ $oldShares,
+ [],
+ [$principal]
+ ));
+ }
+ }, $this->db);
+ }
}
diff --git a/apps/dav/lib/CalDAV/Calendar.php b/apps/dav/lib/CalDAV/Calendar.php
index 789fe4b55c0..1d88d04a5e3 100644
--- a/apps/dav/lib/CalDAV/Calendar.php
+++ b/apps/dav/lib/CalDAV/Calendar.php
@@ -214,12 +214,8 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IRestorable, IShareable
}
public function delete() {
- if (isset($this->calendarInfo['{http://owncloud.org/ns}owner-principal']) &&
- $this->calendarInfo['{http://owncloud.org/ns}owner-principal'] !== $this->calendarInfo['principaluri']) {
- $principal = 'principal:' . parent::getOwner();
- $this->caldavBackend->updateShares($this, [], [
- $principal
- ]);
+ if ($this->isShared()) {
+ $this->caldavBackend->unshare($this, 'principal:' . $this->getPrincipalURI());
return;
}
diff --git a/apps/dav/lib/CalDAV/CalendarImpl.php b/apps/dav/lib/CalDAV/CalendarImpl.php
index b3062f005ee..b79bf7ea2d0 100644
--- a/apps/dav/lib/CalDAV/CalendarImpl.php
+++ b/apps/dav/lib/CalDAV/CalendarImpl.php
@@ -8,9 +8,15 @@ declare(strict_types=1);
*/
namespace OCA\DAV\CalDAV;
+use Generator;
use OCA\DAV\CalDAV\Auth\CustomPrincipalPlugin;
use OCA\DAV\CalDAV\InvitationResponse\InvitationResponseServer;
+use OCP\Calendar\CalendarExportOptions;
use OCP\Calendar\Exceptions\CalendarException;
+use OCP\Calendar\ICalendarExport;
+use OCP\Calendar\ICalendarIsEnabled;
+use OCP\Calendar\ICalendarIsShared;
+use OCP\Calendar\ICalendarIsWritable;
use OCP\Calendar\ICreateFromString;
use OCP\Calendar\IHandleImipMessage;
use OCP\Constants;
@@ -24,7 +30,7 @@ use Sabre\VObject\Property;
use Sabre\VObject\Reader;
use function Sabre\Uri\split as uriSplit;
-class CalendarImpl implements ICreateFromString, IHandleImipMessage {
+class CalendarImpl implements ICreateFromString, IHandleImipMessage, ICalendarIsWritable, ICalendarIsShared, ICalendarExport, ICalendarIsEnabled {
public function __construct(
private Calendar $calendar,
/** @var array<string, mixed> */
@@ -87,16 +93,6 @@ class CalendarImpl implements ICreateFromString, IHandleImipMessage {
return $vtimezone;
}
- /**
- * @param string $pattern which should match within the $searchProperties
- * @param array $searchProperties defines the properties within the query pattern should match
- * @param array $options - optional parameters:
- * ['timerange' => ['start' => new DateTime(...), 'end' => new DateTime(...)]]
- * @param int|null $limit - limit number of search results
- * @param int|null $offset - offset for paging of search results
- * @return array an array of events/journals/todos which are arrays of key-value-pairs
- * @since 13.0.0
- */
public function search(string $pattern, array $searchProperties = [], array $options = [], $limit = null, $offset = null): array {
return $this->backend->search($this->calendarInfo, $pattern,
$searchProperties, $options, $limit, $offset);
@@ -132,6 +128,13 @@ class CalendarImpl implements ICreateFromString, IHandleImipMessage {
}
/**
+ * @since 32.0.0
+ */
+ public function isEnabled(): bool {
+ return $this->calendarInfo['{http://owncloud.org/ns}calendar-enabled'] ?? true;
+ }
+
+ /**
* @since 31.0.0
*/
public function isWritable(): bool {
@@ -257,4 +260,27 @@ class CalendarImpl implements ICreateFromString, IHandleImipMessage {
public function getInvitationResponseServer(): InvitationResponseServer {
return new InvitationResponseServer(false);
}
+
+ /**
+ * Export objects
+ *
+ * @since 32.0.0
+ *
+ * @return Generator<mixed, \Sabre\VObject\Component\VCalendar, mixed, mixed>
+ */
+ public function export(?CalendarExportOptions $options = null): Generator {
+ foreach (
+ $this->backend->exportCalendar(
+ $this->calendarInfo['id'],
+ $this->backend::CALENDAR_TYPE_CALENDAR,
+ $options
+ ) as $event
+ ) {
+ $vObject = Reader::read($event['calendardata']);
+ if ($vObject instanceof VCalendar) {
+ yield $vObject;
+ }
+ }
+ }
+
}
diff --git a/apps/dav/lib/CalDAV/CalendarProvider.php b/apps/dav/lib/CalDAV/CalendarProvider.php
index a31322b2b49..3cc4039ed36 100644
--- a/apps/dav/lib/CalDAV/CalendarProvider.php
+++ b/apps/dav/lib/CalDAV/CalendarProvider.php
@@ -8,6 +8,8 @@ declare(strict_types=1);
*/
namespace OCA\DAV\CalDAV;
+use OCA\DAV\Db\Property;
+use OCA\DAV\Db\PropertyMapper;
use OCP\Calendar\ICalendarProvider;
use OCP\IConfig;
use OCP\IL10N;
@@ -20,6 +22,7 @@ class CalendarProvider implements ICalendarProvider {
private IL10N $l10n,
private IConfig $config,
private LoggerInterface $logger,
+ private PropertyMapper $propertyMapper,
) {
}
@@ -35,6 +38,7 @@ class CalendarProvider implements ICalendarProvider {
$iCalendars = [];
foreach ($calendarInfos as $calendarInfo) {
+ $calendarInfo = array_merge($calendarInfo, $this->getAdditionalProperties($calendarInfo['principaluri'], $calendarInfo['uri']));
$calendar = new Calendar($this->calDavBackend, $calendarInfo, $this->l10n, $this->config, $this->logger);
$iCalendars[] = new CalendarImpl(
$calendar,
@@ -44,4 +48,23 @@ class CalendarProvider implements ICalendarProvider {
}
return $iCalendars;
}
+
+ public function getAdditionalProperties(string $principalUri, string $calendarUri): array {
+ $user = str_replace('principals/users/', '', $principalUri);
+ $path = 'calendars/' . $user . '/' . $calendarUri;
+
+ $properties = $this->propertyMapper->findPropertiesByPath($user, $path);
+
+ $list = [];
+ foreach ($properties as $property) {
+ if ($property instanceof Property) {
+ $list[$property->getPropertyname()] = match ($property->getPropertyname()) {
+ '{http://owncloud.org/ns}calendar-enabled' => (bool)$property->getPropertyvalue(),
+ default => $property->getPropertyvalue()
+ };
+ }
+ }
+
+ return $list;
+ }
}
diff --git a/apps/dav/lib/CalDAV/Export/ExportService.php b/apps/dav/lib/CalDAV/Export/ExportService.php
new file mode 100644
index 00000000000..393c53b92e4
--- /dev/null
+++ b/apps/dav/lib/CalDAV/Export/ExportService.php
@@ -0,0 +1,107 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\CalDAV\Export;
+
+use Generator;
+use OCP\Calendar\CalendarExportOptions;
+use OCP\Calendar\ICalendarExport;
+use OCP\ServerVersion;
+use Sabre\VObject\Component;
+use Sabre\VObject\Writer;
+
+/**
+ * Calendar Export Service
+ */
+class ExportService {
+
+ public const FORMATS = ['ical', 'jcal', 'xcal'];
+ private string $systemVersion;
+
+ public function __construct(ServerVersion $serverVersion) {
+ $this->systemVersion = $serverVersion->getVersionString();
+ }
+
+ /**
+ * Generates serialized content stream for a calendar and objects based in selected format
+ *
+ * @return Generator<string>
+ */
+ public function export(ICalendarExport $calendar, CalendarExportOptions $options): Generator {
+ // output start of serialized content based on selected format
+ yield $this->exportStart($options->getFormat());
+ // iterate through each returned vCalendar entry
+ // extract each component except timezones, convert to appropriate format and output
+ // extract any timezones and save them but do not output
+ $timezones = [];
+ foreach ($calendar->export($options) as $entry) {
+ $consecutive = false;
+ foreach ($entry->getComponents() as $vComponent) {
+ if ($vComponent->name === 'VTIMEZONE') {
+ if (isset($vComponent->TZID) && !isset($timezones[$vComponent->TZID->getValue()])) {
+ $timezones[$vComponent->TZID->getValue()] = clone $vComponent;
+ }
+ } else {
+ yield $this->exportObject($vComponent, $options->getFormat(), $consecutive);
+ $consecutive = true;
+ }
+ }
+ }
+ // iterate through each saved vTimezone entry, convert to appropriate format and output
+ foreach ($timezones as $vComponent) {
+ yield $this->exportObject($vComponent, $options->getFormat(), $consecutive);
+ $consecutive = true;
+ }
+ // output end of serialized content based on selected format
+ yield $this->exportFinish($options->getFormat());
+ }
+
+ /**
+ * Generates serialized content start based on selected format
+ */
+ private function exportStart(string $format): string {
+ return match ($format) {
+ 'jcal' => '["vcalendar",[["version",{},"text","2.0"],["prodid",{},"text","-\/\/IDN nextcloud.com\/\/Calendar Export v' . $this->systemVersion . '\/\/EN"]],[',
+ 'xcal' => '<?xml version="1.0" encoding="UTF-8"?><icalendar xmlns="urn:ietf:params:xml:ns:icalendar-2.0"><vcalendar><properties><version><text>2.0</text></version><prodid><text>-//IDN nextcloud.com//Calendar Export v' . $this->systemVersion . '//EN</text></prodid></properties><components>',
+ default => "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//IDN nextcloud.com//Calendar Export v" . $this->systemVersion . "//EN\n"
+ };
+ }
+
+ /**
+ * Generates serialized content end based on selected format
+ */
+ private function exportFinish(string $format): string {
+ return match ($format) {
+ 'jcal' => ']]',
+ 'xcal' => '</components></vcalendar></icalendar>',
+ default => "END:VCALENDAR\n"
+ };
+ }
+
+ /**
+ * Generates serialized content for a component based on selected format
+ */
+ private function exportObject(Component $vobject, string $format, bool $consecutive): string {
+ return match ($format) {
+ 'jcal' => $consecutive ? ',' . Writer::writeJson($vobject) : Writer::writeJson($vobject),
+ 'xcal' => $this->exportObjectXml($vobject),
+ default => Writer::write($vobject)
+ };
+ }
+
+ /**
+ * Generates serialized content for a component in xml format
+ */
+ private function exportObjectXml(Component $vobject): string {
+ $writer = new \Sabre\Xml\Writer();
+ $writer->openMemory();
+ $writer->setIndent(false);
+ $vobject->xmlSerialize($writer);
+ return $writer->outputMemory();
+ }
+
+}
diff --git a/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php b/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php
index e1bd2f5be29..236039e4890 100644
--- a/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php
+++ b/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php
@@ -25,12 +25,6 @@ use function array_values;
abstract class AbstractPrincipalBackend implements BackendInterface {
- /** @var ProxyMapper */
- private $proxyMapper;
-
- /** @var string */
- private $principalPrefix;
-
/** @var string */
private $dbTableName;
@@ -45,13 +39,11 @@ abstract class AbstractPrincipalBackend implements BackendInterface {
private IUserSession $userSession,
private IGroupManager $groupManager,
private LoggerInterface $logger,
- ProxyMapper $proxyMapper,
- string $principalPrefix,
+ private ProxyMapper $proxyMapper,
+ private string $principalPrefix,
string $dbPrefix,
private string $cuType,
) {
- $this->proxyMapper = $proxyMapper;
- $this->principalPrefix = $principalPrefix;
$this->dbTableName = 'calendar_' . $dbPrefix . 's';
$this->dbMetaDataTableName = $this->dbTableName . '_md';
$this->dbForeignKeyName = $dbPrefix . '_id';
diff --git a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
index 7e79388c53a..9df7c1cd492 100644
--- a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
+++ b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
@@ -156,9 +156,10 @@ class IMipPlugin extends SabreIMipPlugin {
$iTipMessage->scheduleStatus = '5.0; EMail delivery failed';
return;
}
- // Don't send emails to things
- if ($this->imipService->isRoomOrResource($attendee)) {
- $this->logger->debug('No invitation sent as recipient is room or resource', [
+ // Don't send emails to rooms, resources and circles
+ if ($this->imipService->isRoomOrResource($attendee)
+ || $this->imipService->isCircle($attendee)) {
+ $this->logger->debug('No invitation sent as recipient is room, resource or circle', [
'attendee' => $recipient,
]);
$iTipMessage->scheduleStatus = '1.0;We got the message, but it\'s not significant enough to warrant an email';
@@ -185,7 +186,7 @@ class IMipPlugin extends SabreIMipPlugin {
switch (strtolower($iTipMessage->method)) {
case self::METHOD_REPLY:
$method = self::METHOD_REPLY;
- $data = $this->imipService->buildBodyData($vEvent, $oldVevent);
+ $data = $this->imipService->buildReplyBodyData($vEvent);
$replyingAttendee = $this->imipService->getReplyingAttendee($iTipMessage);
break;
case self::METHOD_CANCEL:
diff --git a/apps/dav/lib/CalDAV/Schedule/IMipService.php b/apps/dav/lib/CalDAV/Schedule/IMipService.php
index e2844960a23..42042c45b97 100644
--- a/apps/dav/lib/CalDAV/Schedule/IMipService.php
+++ b/apps/dav/lib/CalDAV/Schedule/IMipService.php
@@ -159,7 +159,35 @@ class IMipService {
if ($eventReaderCurrent->recurs()) {
$data['meeting_occurring'] = $this->generateOccurringString($eventReaderCurrent);
}
-
+ return $data;
+ }
+
+ /**
+ * @param VEvent $vEvent
+ * @return array
+ */
+ public function buildReplyBodyData(VEvent $vEvent): array {
+ // construct event reader
+ $eventReader = new EventReader($vEvent);
+ $defaultVal = '';
+ $data = [];
+ $data['meeting_when'] = $this->generateWhenString($eventReader);
+
+ foreach (self::STRING_DIFF as $key => $property) {
+ $data[$key] = self::readPropertyWithDefault($vEvent, $property, $defaultVal);
+ }
+
+ if (($locationHtml = $this->linkify($data['meeting_location'])) !== null) {
+ $data['meeting_location_html'] = $locationHtml;
+ }
+
+ $data['meeting_url_html'] = $data['meeting_url'] ? sprintf('<a href="%1$s">%1$s</a>', $data['meeting_url']) : '';
+
+ // generate occurring next string
+ if ($eventReader->recurs()) {
+ $data['meeting_occurring'] = $this->generateOccurringString($eventReader);
+ }
+
return $data;
}
@@ -1155,6 +1183,21 @@ class IMipService {
return false;
}
+ public function isCircle(Property $attendee): bool {
+ $cuType = $attendee->offsetGet('CUTYPE');
+ if (!$cuType instanceof Parameter) {
+ return false;
+ }
+
+ $uri = $attendee->getValue();
+ if (!$uri) {
+ return false;
+ }
+
+ $cuTypeValue = $cuType->getValue();
+ return $cuTypeValue === 'GROUP' && str_starts_with($uri, 'mailto:circle+');
+ }
+
public function minimizeInterval(\DateInterval $dateInterval): array {
// evaluate if time interval is in the past
if ($dateInterval->invert == 1) {
diff --git a/apps/dav/lib/CalDAV/UpcomingEventsService.php b/apps/dav/lib/CalDAV/UpcomingEventsService.php
index 9c054deb4e0..6614d937ff7 100644
--- a/apps/dav/lib/CalDAV/UpcomingEventsService.php
+++ b/apps/dav/lib/CalDAV/UpcomingEventsService.php
@@ -47,20 +47,36 @@ class UpcomingEventsService {
$this->userManager->get($userId),
);
- return array_map(fn (array $event) => new UpcomingEvent(
- $event['uri'],
- ($event['objects'][0]['RECURRENCE-ID'][0] ?? null)?->getTimeStamp(),
- $event['calendar-uri'],
- $event['objects'][0]['DTSTART'][0]?->getTimestamp(),
- $event['objects'][0]['SUMMARY'][0] ?? null,
- $event['objects'][0]['LOCATION'][0] ?? null,
- match ($calendarAppEnabled) {
- // TODO: create a named, deep route in calendar
- // TODO: it's a code smell to just assume this route exists, find an abstraction
- true => $this->urlGenerator->linkToRouteAbsolute('calendar.view.index'),
- false => null,
- },
- ), $events);
+ return array_map(function (array $event) use ($userId, $calendarAppEnabled) {
+ $calendarAppUrl = null;
+
+ if ($calendarAppEnabled) {
+ $arguments = [
+ 'objectId' => base64_encode($this->urlGenerator->getWebroot() . '/remote.php/dav/calendars/' . $userId . '/' . $event['calendar-uri'] . '/' . $event['uri']),
+ ];
+
+ if (isset($event['RECURRENCE-ID'])) {
+ $arguments['recurrenceId'] = $event['RECURRENCE-ID'][0];
+ }
+ /**
+ * TODO: create a named, deep route in calendar (it's a code smell to just assume this route exists, find an abstraction)
+ * When changing, also adjust for:
+ * - spreed/lib/Service/CalendarIntegrationService.php#getDashboardEvents
+ * - spreed/lib/Service/CalendarIntegrationService.php#getMutualEvents
+ */
+ $calendarAppUrl = $this->urlGenerator->linkToRouteAbsolute('calendar.view.indexdirect.edit', $arguments);
+ }
+
+ return new UpcomingEvent(
+ $event['uri'],
+ ($event['objects'][0]['RECURRENCE-ID'][0] ?? null)?->getTimeStamp(),
+ $event['calendar-uri'],
+ $event['objects'][0]['DTSTART'][0]?->getTimestamp(),
+ $event['objects'][0]['SUMMARY'][0] ?? null,
+ $event['objects'][0]['LOCATION'][0] ?? null,
+ $calendarAppUrl,
+ );
+ }, $events);
}
}
diff --git a/apps/dav/lib/Capabilities.php b/apps/dav/lib/Capabilities.php
index ab4e53fce37..f321222b285 100644
--- a/apps/dav/lib/Capabilities.php
+++ b/apps/dav/lib/Capabilities.php
@@ -17,12 +17,13 @@ class Capabilities implements ICapability {
}
/**
- * @return array{dav: array{chunking: string, bulkupload?: string, absence-supported?: bool, absence-replacement?: bool}}
+ * @return array{dav: array{chunking: string, public_shares_chunking: bool, bulkupload?: string, absence-supported?: bool, absence-replacement?: bool}}
*/
public function getCapabilities() {
$capabilities = [
'dav' => [
'chunking' => '1.0',
+ 'public_shares_chunking' => true,
]
];
if ($this->config->getSystemValueBool('bulkupload.enabled', true)) {
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index b15ed607076..d874ca2ce2b 100644
--- a/apps/dav/lib/CardDAV/CardDavBackend.php
+++ b/apps/dav/lib/CardDAV/CardDavBackend.php
@@ -127,7 +127,6 @@ class CardDavBackend implements BackendInterface, SyncSupport {
// query for shared addressbooks
$principals = $this->principalBackend->getGroupMembership($principalUriOriginal, true);
- $principals = array_merge($principals, $this->principalBackend->getCircleMembership($principalUriOriginal));
$principals[] = $principalUri;
@@ -137,7 +136,7 @@ class CardDavBackend implements BackendInterface, SyncSupport {
$subSelect->select('id')
->from('dav_shares', 'd')
->where($subSelect->expr()->eq('d.access', $select->createNamedParameter(\OCA\DAV\CardDAV\Sharing\Backend::ACCESS_UNSHARED, IQueryBuilder::PARAM_INT), IQueryBuilder::PARAM_INT))
- ->andWhere($subSelect->expr()->in('d.principaluri', $select->createNamedParameter($principals, IQueryBuilder::PARAM_STR_ARRAY), IQueryBuilder::PARAM_STR_ARRAY));
+ ->andWhere($subSelect->expr()->eq('d.principaluri', $select->createNamedParameter($principalUri, IQueryBuilder::PARAM_STR), IQueryBuilder::PARAM_STR));
$select->select(['a.id', 'a.uri', 'a.displayname', 'a.principaluri', 'a.description', 'a.synctoken', 's.access'])
diff --git a/apps/dav/lib/CardDAV/PhotoCache.php b/apps/dav/lib/CardDAV/PhotoCache.php
index 2f1999b6b1c..29f1b0240ef 100644
--- a/apps/dav/lib/CardDAV/PhotoCache.php
+++ b/apps/dav/lib/CardDAV/PhotoCache.php
@@ -3,8 +3,10 @@
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
+
namespace OCA\DAV\CardDAV;
+use OCP\Files\AppData\IAppDataFactory;
use OCP\Files\IAppData;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
@@ -19,6 +21,7 @@ use Sabre\VObject\Property\Binary;
use Sabre\VObject\Reader;
class PhotoCache {
+ private ?IAppData $photoCacheAppData = null;
/** @var array */
public const ALLOWED_CONTENT_TYPES = [
@@ -30,12 +33,9 @@ class PhotoCache {
'image/avif' => 'avif',
];
- /**
- * PhotoCache constructor.
- */
public function __construct(
- protected IAppData $appData,
- protected LoggerInterface $logger,
+ private IAppDataFactory $appDataFactory,
+ private LoggerInterface $logger,
) {
}
@@ -142,13 +142,12 @@ class PhotoCache {
private function getFolder(int $addressBookId, string $cardUri, bool $createIfNotExists = true): ISimpleFolder {
$hash = md5($addressBookId . ' ' . $cardUri);
try {
- return $this->appData->getFolder($hash);
+ return $this->getPhotoCacheAppData()->getFolder($hash);
} catch (NotFoundException $e) {
if ($createIfNotExists) {
- return $this->appData->newFolder($hash);
- } else {
- throw $e;
+ return $this->getPhotoCacheAppData()->newFolder($hash);
}
+ throw $e;
}
}
@@ -265,4 +264,11 @@ class PhotoCache {
// that's OK, nothing to do
}
}
+
+ private function getPhotoCacheAppData(): IAppData {
+ if ($this->photoCacheAppData === null) {
+ $this->photoCacheAppData = $this->appDataFactory->get('dav-photocache');
+ }
+ return $this->photoCacheAppData;
+ }
}
diff --git a/apps/dav/lib/Command/ClearCalendarUnshares.php b/apps/dav/lib/Command/ClearCalendarUnshares.php
new file mode 100644
index 00000000000..bb367a9cd0f
--- /dev/null
+++ b/apps/dav/lib/Command/ClearCalendarUnshares.php
@@ -0,0 +1,114 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Command;
+
+use OCA\DAV\CalDAV\CalDavBackend;
+use OCA\DAV\CalDAV\Sharing\Backend;
+use OCA\DAV\CalDAV\Sharing\Service;
+use OCA\DAV\Connector\Sabre\Principal;
+use OCA\DAV\DAV\Sharing\Backend as BackendAlias;
+use OCA\DAV\DAV\Sharing\SharingMapper;
+use OCP\IAppConfig;
+use OCP\IUserManager;
+use Symfony\Component\Console\Attribute\AsCommand;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Helper\QuestionHelper;
+use Symfony\Component\Console\Helper\Table;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Question\ConfirmationQuestion;
+
+#[AsCommand(
+ name: 'dav:clear-calendar-unshares',
+ description: 'Clear calendar unshares for a user',
+ hidden: false,
+)]
+class ClearCalendarUnshares extends Command {
+ public function __construct(
+ private IUserManager $userManager,
+ private IAppConfig $appConfig,
+ private Principal $principal,
+ private CalDavBackend $caldav,
+ private Backend $sharingBackend,
+ private Service $sharingService,
+ private SharingMapper $mapper,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ $this->addArgument(
+ 'uid',
+ InputArgument::REQUIRED,
+ 'User whose unshares to clear'
+ );
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ $user = (string)$input->getArgument('uid');
+ if (!$this->userManager->userExists($user)) {
+ throw new \InvalidArgumentException("User $user is unknown");
+ }
+
+ $principal = $this->principal->getPrincipalByPath('principals/users/' . $user);
+ if ($principal === null) {
+ throw new \InvalidArgumentException("Unable to fetch principal for user $user ");
+ }
+
+ $shares = $this->mapper->getSharesByPrincipals([$principal['uri']], 'calendar');
+ $unshares = array_filter($shares, static fn ($share) => $share['access'] === BackendAlias::ACCESS_UNSHARED);
+
+ if (count($unshares) === 0) {
+ $output->writeln("User $user has no calendar unshares");
+ return self::SUCCESS;
+ }
+
+ $rows = array_map(fn ($share) => $this->formatCalendarUnshare($share), $shares);
+
+ $table = new Table($output);
+ $table
+ ->setHeaders(['Share Id', 'Calendar Id', 'Calendar URI', 'Calendar Name'])
+ ->setRows($rows)
+ ->render();
+
+ $output->writeln('');
+
+ /** @var QuestionHelper $helper */
+ $helper = $this->getHelper('question');
+ $question = new ConfirmationQuestion('Please confirm to delete the above calendar unshare entries [y/n]', false);
+
+ if ($helper->ask($input, $output, $question)) {
+ $this->mapper->deleteUnsharesByPrincipal($principal['uri'], 'calendar');
+ $output->writeln("Calendar unshares for user $user deleted");
+ }
+
+ return self::SUCCESS;
+ }
+
+ private function formatCalendarUnshare(array $share): array {
+ $calendarInfo = $this->caldav->getCalendarById($share['resourceid']);
+
+ $resourceUri = 'Resource not found';
+ $resourceName = '';
+
+ if ($calendarInfo !== null) {
+ $resourceUri = $calendarInfo['uri'];
+ $resourceName = $calendarInfo['{DAV:}displayname'];
+ }
+
+ return [
+ $share['id'],
+ $share['resourceid'],
+ $resourceUri,
+ $resourceName,
+ ];
+ }
+}
diff --git a/apps/dav/lib/Command/ClearContactsPhotoCache.php b/apps/dav/lib/Command/ClearContactsPhotoCache.php
new file mode 100644
index 00000000000..82e64c3145a
--- /dev/null
+++ b/apps/dav/lib/Command/ClearContactsPhotoCache.php
@@ -0,0 +1,75 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Command;
+
+use OCP\Files\AppData\IAppDataFactory;
+use OCP\Files\NotPermittedException;
+use Symfony\Component\Console\Attribute\AsCommand;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Helper\ProgressBar;
+use Symfony\Component\Console\Helper\QuestionHelper;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Question\ConfirmationQuestion;
+
+#[AsCommand(
+ name: 'dav:clear-contacts-photo-cache',
+ description: 'Clear cached contact photos',
+ hidden: false,
+)]
+class ClearContactsPhotoCache extends Command {
+
+ public function __construct(
+ private IAppDataFactory $appDataFactory,
+ ) {
+ parent::__construct();
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ $photoCacheAppData = $this->appDataFactory->get('dav-photocache');
+
+ $folders = $photoCacheAppData->getDirectoryListing();
+ $countFolders = count($folders);
+
+ if ($countFolders === 0) {
+ $output->writeln('No cached contact photos found.');
+ return self::SUCCESS;
+ }
+
+ $output->writeln('Found ' . count($folders) . ' cached contact photos.');
+
+ /** @var QuestionHelper $helper */
+ $helper = $this->getHelper('question');
+ $question = new ConfirmationQuestion('Please confirm to clear the contacts photo cache [y/n] ', true);
+
+ if ($helper->ask($input, $output, $question) === false) {
+ $output->writeln('Clearing the contacts photo cache aborted.');
+ return self::SUCCESS;
+ }
+
+ $progressBar = new ProgressBar($output, $countFolders);
+ $progressBar->start();
+
+ foreach ($folders as $folder) {
+ try {
+ $folder->delete();
+ } catch (NotPermittedException) {
+ }
+ $progressBar->advance();
+ }
+
+ $progressBar->finish();
+
+ $output->writeln('');
+ $output->writeln('Contacts photo cache cleared.');
+
+ return self::SUCCESS;
+ }
+}
diff --git a/apps/dav/lib/Command/ExportCalendar.php b/apps/dav/lib/Command/ExportCalendar.php
new file mode 100644
index 00000000000..5758cd4fa87
--- /dev/null
+++ b/apps/dav/lib/Command/ExportCalendar.php
@@ -0,0 +1,95 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Command;
+
+use InvalidArgumentException;
+use OCA\DAV\CalDAV\Export\ExportService;
+use OCP\Calendar\CalendarExportOptions;
+use OCP\Calendar\ICalendarExport;
+use OCP\Calendar\IManager;
+use OCP\IUserManager;
+use Symfony\Component\Console\Attribute\AsCommand;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+/**
+ * Calendar Export Command
+ *
+ * Used to export data from supported calendars to disk or stdout
+ */
+#[AsCommand(
+ name: 'calendar:export',
+ description: 'Export calendar data from supported calendars to disk or stdout',
+ hidden: false
+)]
+class ExportCalendar extends Command {
+ public function __construct(
+ private IUserManager $userManager,
+ private IManager $calendarManager,
+ private ExportService $exportService,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ $this->setName('calendar:export')
+ ->setDescription('Export calendar data from supported calendars to disk or stdout')
+ ->addArgument('uid', InputArgument::REQUIRED, 'Id of system user')
+ ->addArgument('uri', InputArgument::REQUIRED, 'Uri of calendar')
+ ->addOption('format', null, InputOption::VALUE_REQUIRED, 'Format of output (ical, jcal, xcal) defaults to ical', 'ical')
+ ->addOption('location', null, InputOption::VALUE_REQUIRED, 'Location of where to write the output. defaults to stdout');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ $userId = $input->getArgument('uid');
+ $calendarId = $input->getArgument('uri');
+ $format = $input->getOption('format');
+ $location = $input->getOption('location');
+
+ if (!$this->userManager->userExists($userId)) {
+ throw new InvalidArgumentException("User <$userId> not found.");
+ }
+ // retrieve calendar and evaluate if export is supported
+ $calendars = $this->calendarManager->getCalendarsForPrincipal('principals/users/' . $userId, [$calendarId]);
+ if ($calendars === []) {
+ throw new InvalidArgumentException("Calendar <$calendarId> not found.");
+ }
+ $calendar = $calendars[0];
+ if (!$calendar instanceof ICalendarExport) {
+ throw new InvalidArgumentException("Calendar <$calendarId> does not support exporting");
+ }
+ // construct options object
+ $options = new CalendarExportOptions();
+ // evaluate if provided format is supported
+ if (!in_array($format, ExportService::FORMATS, true)) {
+ throw new InvalidArgumentException("Format <$format> is not valid.");
+ }
+ $options->setFormat($format);
+ // evaluate is a valid location was given and is usable otherwise output to stdout
+ if ($location !== null) {
+ $handle = fopen($location, 'wb');
+ if ($handle === false) {
+ throw new InvalidArgumentException("Location <$location> is not valid. Can not open location for write operation.");
+ }
+
+ foreach ($this->exportService->export($calendar, $options) as $chunk) {
+ fwrite($handle, $chunk);
+ }
+ fclose($handle);
+ } else {
+ foreach ($this->exportService->export($calendar, $options) as $chunk) {
+ $output->writeln($chunk);
+ }
+ }
+
+ return self::SUCCESS;
+ }
+}
diff --git a/apps/dav/lib/Command/ListCalendarShares.php b/apps/dav/lib/Command/ListCalendarShares.php
new file mode 100644
index 00000000000..2729bc80530
--- /dev/null
+++ b/apps/dav/lib/Command/ListCalendarShares.php
@@ -0,0 +1,131 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Command;
+
+use OCA\DAV\CalDAV\CalDavBackend;
+use OCA\DAV\CalDAV\Sharing\Backend;
+use OCA\DAV\Connector\Sabre\Principal;
+use OCA\DAV\DAV\Sharing\SharingMapper;
+use OCP\IUserManager;
+use Symfony\Component\Console\Attribute\AsCommand;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Helper\Table;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+#[AsCommand(
+ name: 'dav:list-calendar-shares',
+ description: 'List all calendar shares for a user',
+ hidden: false,
+)]
+class ListCalendarShares extends Command {
+ public function __construct(
+ private IUserManager $userManager,
+ private Principal $principal,
+ private CalDavBackend $caldav,
+ private SharingMapper $mapper,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ $this->addArgument(
+ 'uid',
+ InputArgument::REQUIRED,
+ 'User whose calendar shares will be listed'
+ );
+ $this->addOption(
+ 'calendar-id',
+ '',
+ InputOption::VALUE_REQUIRED,
+ 'List only shares for the given calendar id id',
+ null,
+ );
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ $user = (string)$input->getArgument('uid');
+ if (!$this->userManager->userExists($user)) {
+ throw new \InvalidArgumentException("User $user is unknown");
+ }
+
+ $principal = $this->principal->getPrincipalByPath('principals/users/' . $user);
+ if ($principal === null) {
+ throw new \InvalidArgumentException("Unable to fetch principal for user $user");
+ }
+
+ $memberships = array_merge(
+ [$principal['uri']],
+ $this->principal->getGroupMembership($principal['uri']),
+ $this->principal->getCircleMembership($principal['uri']),
+ );
+
+ $shares = $this->mapper->getSharesByPrincipals($memberships, 'calendar');
+
+ $calendarId = $input->getOption('calendar-id');
+ if ($calendarId !== null) {
+ $shares = array_filter($shares, fn ($share) => $share['resourceid'] === (int)$calendarId);
+ }
+
+ $rows = array_map(fn ($share) => $this->formatCalendarShare($share), $shares);
+
+ if (count($rows) > 0) {
+ $table = new Table($output);
+ $table
+ ->setHeaders(['Share Id', 'Calendar Id', 'Calendar URI', 'Calendar Name', 'Calendar Owner', 'Access By', 'Permissions'])
+ ->setRows($rows)
+ ->render();
+ } else {
+ $output->writeln("User $user has no calendar shares");
+ }
+
+ return self::SUCCESS;
+ }
+
+ private function formatCalendarShare(array $share): array {
+ $calendarInfo = $this->caldav->getCalendarById($share['resourceid']);
+
+ $calendarUri = 'Resource not found';
+ $calendarName = '';
+ $calendarOwner = '';
+
+ if ($calendarInfo !== null) {
+ $calendarUri = $calendarInfo['uri'];
+ $calendarName = $calendarInfo['{DAV:}displayname'];
+ $calendarOwner = $calendarInfo['{http://nextcloud.com/ns}owner-displayname'] . ' (' . $calendarInfo['principaluri'] . ')';
+ }
+
+ $accessBy = match (true) {
+ str_starts_with($share['principaluri'], 'principals/users/') => 'Individual',
+ str_starts_with($share['principaluri'], 'principals/groups/') => 'Group (' . $share['principaluri'] . ')',
+ str_starts_with($share['principaluri'], 'principals/circles/') => 'Team (' . $share['principaluri'] . ')',
+ default => $share['principaluri'],
+ };
+
+ $permissions = match ($share['access']) {
+ Backend::ACCESS_READ => 'Read',
+ Backend::ACCESS_READ_WRITE => 'Read/Write',
+ Backend::ACCESS_UNSHARED => 'Unshare',
+ default => $share['access'],
+ };
+
+ return [
+ $share['id'],
+ $share['resourceid'],
+ $calendarUri,
+ $calendarName,
+ $calendarOwner,
+ $accessBy,
+ $permissions,
+ ];
+ }
+}
diff --git a/apps/dav/lib/Connector/Sabre/ChecksumUpdatePlugin.php b/apps/dav/lib/Connector/Sabre/ChecksumUpdatePlugin.php
index 64a61a43a9b..18009080585 100644
--- a/apps/dav/lib/Connector/Sabre/ChecksumUpdatePlugin.php
+++ b/apps/dav/lib/Connector/Sabre/ChecksumUpdatePlugin.php
@@ -27,20 +27,6 @@ class ChecksumUpdatePlugin extends ServerPlugin {
}
/** @return string[] */
- public function getHTTPMethods($path): array {
- $tree = $this->server->tree;
-
- if ($tree->nodeExists($path)) {
- $node = $tree->getNodeForPath($path);
- if ($node instanceof File) {
- return ['PATCH'];
- }
- }
-
- return [];
- }
-
- /** @return string[] */
public function getFeatures(): array {
return ['nextcloud-checksum-update'];
}
diff --git a/apps/dav/lib/Connector/Sabre/Directory.php b/apps/dav/lib/Connector/Sabre/Directory.php
index 7f8fe3a84de..fe09c3f423f 100644
--- a/apps/dav/lib/Connector/Sabre/Directory.php
+++ b/apps/dav/lib/Connector/Sabre/Directory.php
@@ -13,7 +13,9 @@ use OCA\DAV\AppInfo\Application;
use OCA\DAV\Connector\Sabre\Exception\FileLocked;
use OCA\DAV\Connector\Sabre\Exception\Forbidden;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
+use OCA\DAV\Storage\PublicShareWrapper;
use OCP\App\IAppManager;
+use OCP\Constants;
use OCP\Files\FileInfo;
use OCP\Files\Folder;
use OCP\Files\ForbiddenException;
@@ -172,7 +174,20 @@ class Directory extends Node implements \Sabre\DAV\ICollection, \Sabre\DAV\IQuot
* @throws \Sabre\DAV\Exception\ServiceUnavailable
*/
public function getChild($name, $info = null, ?IRequest $request = null, ?IL10N $l10n = null) {
- if (!$this->info->isReadable()) {
+ $storage = $this->info->getStorage();
+ $allowDirectory = false;
+
+ // Checking if we're in a file drop
+ // If we are, then only PUT and MKCOL are allowed (see plugin)
+ // so we are safe to return the directory without a risk of
+ // leaking files and folders structure.
+ if ($storage instanceof PublicShareWrapper) {
+ $share = $storage->getShare();
+ $allowDirectory = ($share->getPermissions() & Constants::PERMISSION_READ) !== Constants::PERMISSION_READ;
+ }
+
+ // For file drop we need to be allowed to read the directory with the nickname
+ if (!$allowDirectory && !$this->info->isReadable()) {
// avoid detecting files through this way
throw new NotFound();
}
@@ -198,6 +213,11 @@ class Directory extends Node implements \Sabre\DAV\ICollection, \Sabre\DAV\IQuot
if ($info->getMimeType() === FileInfo::MIMETYPE_FOLDER) {
$node = new \OCA\DAV\Connector\Sabre\Directory($this->fileView, $info, $this->tree, $this->shareManager);
} else {
+ // In case reading a directory was allowed but it turns out the node was a not a directory, reject it now.
+ if (!$this->info->isReadable()) {
+ throw new NotFound();
+ }
+
$node = new File($this->fileView, $info, $this->shareManager, $request, $l10n);
}
if ($this->tree) {
diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php
index 045b9d7e784..218d38e1c4b 100644
--- a/apps/dav/lib/Connector/Sabre/File.php
+++ b/apps/dav/lib/Connector/Sabre/File.php
@@ -19,6 +19,7 @@ use OCA\DAV\Connector\Sabre\Exception\Forbidden as DAVForbiddenException;
use OCA\DAV\Connector\Sabre\Exception\UnsupportedMediaType;
use OCP\App\IAppManager;
use OCP\Encryption\Exceptions\GenericEncryptionException;
+use OCP\Files;
use OCP\Files\EntityTooLargeException;
use OCP\Files\FileInfo;
use OCP\Files\ForbiddenException;
@@ -215,7 +216,9 @@ class File extends Node implements IFile {
try {
/** @var IWriteStreamStorage $partStorage */
$count = $partStorage->writeStream($internalPartPath, $wrappedData);
- } catch (GenericFileException) {
+ } catch (GenericFileException $e) {
+ $logger = Server::get(LoggerInterface::class);
+ $logger->error('Error while writing stream to storage: ' . $e->getMessage(), ['exception' => $e, 'app' => 'webdav']);
$result = $isEOF;
if (is_resource($wrappedData)) {
$result = feof($wrappedData);
@@ -229,7 +232,7 @@ class File extends Node implements IFile {
// because we have no clue about the cause we can only throw back a 500/Internal Server Error
throw new Exception($this->l10n->t('Could not write file contents'));
}
- [$count, $result] = \OC_Helper::streamCopy($data, $target);
+ [$count, $result] = Files::streamCopy($data, $target, true);
fclose($target);
}
diff --git a/apps/dav/lib/Connector/Sabre/FilesPlugin.php b/apps/dav/lib/Connector/Sabre/FilesPlugin.php
index b886534f9de..5364b7cff41 100644
--- a/apps/dav/lib/Connector/Sabre/FilesPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/FilesPlugin.php
@@ -9,6 +9,7 @@ namespace OCA\DAV\Connector\Sabre;
use OC\AppFramework\Http\Request;
use OC\FilesMetadata\Model\FilesMetadata;
+use OC\User\NoUserException;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
use OCA\Files_Sharing\External\Mount as SharingExternalMount;
use OCP\Accounts\IAccountManager;
@@ -374,7 +375,13 @@ class FilesPlugin extends ServerPlugin {
}
// Check if the user published their display name
- $ownerAccount = $this->accountManager->getAccount($owner);
+ try {
+ $ownerAccount = $this->accountManager->getAccount($owner);
+ } catch (NoUserException) {
+ // do not lock process if owner is not local
+ return null;
+ }
+
$ownerNameProperty = $ownerAccount->getProperty(IAccountManager::PROPERTY_DISPLAYNAME);
// Since we are not logged in, we need to have at least the published scope
@@ -720,15 +727,15 @@ class FilesPlugin extends ServerPlugin {
*/
public function sendFileIdHeader($filePath, ?\Sabre\DAV\INode $node = null) {
// we get the node for the given $filePath here because in case of afterCreateFile $node is the parent folder
- if (!$this->server->tree->nodeExists($filePath)) {
- return;
- }
- $node = $this->server->tree->getNodeForPath($filePath);
- if ($node instanceof Node) {
- $fileId = $node->getFileId();
- if (!is_null($fileId)) {
- $this->server->httpResponse->setHeader('OC-FileId', $fileId);
+ try {
+ $node = $this->server->tree->getNodeForPath($filePath);
+ if ($node instanceof Node) {
+ $fileId = $node->getFileId();
+ if (!is_null($fileId)) {
+ $this->server->httpResponse->setHeader('OC-FileId', $fileId);
+ }
}
+ } catch (NotFound) {
}
}
}
diff --git a/apps/dav/lib/Connector/Sabre/Principal.php b/apps/dav/lib/Connector/Sabre/Principal.php
index 515ef807a25..e49c61f6e1f 100644
--- a/apps/dav/lib/Connector/Sabre/Principal.php
+++ b/apps/dav/lib/Connector/Sabre/Principal.php
@@ -41,9 +41,6 @@ class Principal implements BackendInterface {
/** @var bool */
private $hasCircles;
- /** @var ProxyMapper */
- private $proxyMapper;
-
/** @var KnownUserService */
private $knownUserService;
@@ -54,7 +51,7 @@ class Principal implements BackendInterface {
private IShareManager $shareManager,
private IUserSession $userSession,
private IAppManager $appManager,
- ProxyMapper $proxyMapper,
+ private ProxyMapper $proxyMapper,
KnownUserService $knownUserService,
private IConfig $config,
private IFactory $languageFactory,
@@ -62,7 +59,6 @@ class Principal implements BackendInterface {
) {
$this->principalPrefix = trim($principalPrefix, '/');
$this->hasGroups = $this->hasCircles = ($principalPrefix === 'principals/users/');
- $this->proxyMapper = $proxyMapper;
$this->knownUserService = $knownUserService;
}
@@ -155,6 +151,11 @@ class Principal implements BackendInterface {
'uri' => 'principals/system/' . $name,
'{DAV:}displayname' => $this->languageFactory->get('dav')->t('Accounts'),
];
+ } elseif ($prefix === 'principals/shares') {
+ return [
+ 'uri' => 'principals/shares/' . $name,
+ '{DAV:}displayname' => $name,
+ ];
}
return null;
}
diff --git a/apps/dav/lib/Connector/Sabre/PublicAuth.php b/apps/dav/lib/Connector/Sabre/PublicAuth.php
index ea59d9efc8f..2ca1c25e2f6 100644
--- a/apps/dav/lib/Connector/Sabre/PublicAuth.php
+++ b/apps/dav/lib/Connector/Sabre/PublicAuth.php
@@ -14,7 +14,9 @@ namespace OCA\DAV\Connector\Sabre;
use OCP\Defaults;
use OCP\IRequest;
use OCP\ISession;
+use OCP\IURLGenerator;
use OCP\Security\Bruteforce\IThrottler;
+use OCP\Security\Bruteforce\MaxDelayReached;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
use OCP\Share\IShare;
@@ -22,6 +24,7 @@ use Psr\Log\LoggerInterface;
use Sabre\DAV\Auth\Backend\AbstractBasic;
use Sabre\DAV\Exception\NotAuthenticated;
use Sabre\DAV\Exception\NotFound;
+use Sabre\DAV\Exception\PreconditionFailed;
use Sabre\DAV\Exception\ServiceUnavailable;
use Sabre\HTTP;
use Sabre\HTTP\RequestInterface;
@@ -44,6 +47,7 @@ class PublicAuth extends AbstractBasic {
private ISession $session,
private IThrottler $throttler,
private LoggerInterface $logger,
+ private IURLGenerator $urlGenerator,
) {
// setup realm
$defaults = new Defaults();
@@ -51,17 +55,18 @@ class PublicAuth extends AbstractBasic {
}
/**
- * @param RequestInterface $request
- * @param ResponseInterface $response
- *
- * @return array
* @throws NotAuthenticated
+ * @throws MaxDelayReached
* @throws ServiceUnavailable
*/
public function check(RequestInterface $request, ResponseInterface $response): array {
try {
$this->throttler->sleepDelayOrThrowOnMax($this->request->getRemoteAddress(), self::BRUTEFORCE_ACTION);
+ if (count($_COOKIE) > 0 && !$this->request->passesStrictCookieCheck() && $this->getShare()->getPassword() !== null) {
+ throw new PreconditionFailed('Strict cookie check failed');
+ }
+
$auth = new HTTP\Auth\Basic(
$this->realm,
$request,
@@ -75,7 +80,17 @@ class PublicAuth extends AbstractBasic {
}
return $this->checkToken();
- } catch (NotAuthenticated $e) {
+ } catch (NotAuthenticated|MaxDelayReached $e) {
+ $this->throttler->registerAttempt(self::BRUTEFORCE_ACTION, $this->request->getRemoteAddress());
+ throw $e;
+ } catch (PreconditionFailed $e) {
+ $response->setHeader(
+ 'Location',
+ $this->urlGenerator->linkToRoute(
+ 'files_sharing.share.showShare',
+ [ 'token' => $this->getToken() ],
+ ),
+ );
throw $e;
} catch (\Exception $e) {
$class = get_class($e);
@@ -87,14 +102,13 @@ class PublicAuth extends AbstractBasic {
/**
* Extract token from request url
- * @return string
* @throws NotFound
*/
private function getToken(): string {
$path = $this->request->getPathInfo() ?: '';
// ['', 'dav', 'files', 'token']
$splittedPath = explode('/', $path);
-
+
if (count($splittedPath) < 4 || $splittedPath[3] === '') {
throw new NotFound();
}
@@ -104,7 +118,7 @@ class PublicAuth extends AbstractBasic {
/**
* Check token validity
- * @return array
+ *
* @throws NotFound
* @throws NotAuthenticated
*/
@@ -152,15 +166,13 @@ class PublicAuth extends AbstractBasic {
protected function validateUserPass($username, $password) {
$this->throttler->sleepDelayOrThrowOnMax($this->request->getRemoteAddress(), self::BRUTEFORCE_ACTION);
- $token = $this->getToken();
try {
- $share = $this->shareManager->getShareByToken($token);
+ $share = $this->getShare();
} catch (ShareNotFound $e) {
$this->throttler->registerAttempt(self::BRUTEFORCE_ACTION, $this->request->getRemoteAddress());
return false;
}
- $this->share = $share;
\OC_User::setIncognitoMode(true);
// check if the share is password protected
@@ -176,7 +188,7 @@ class PublicAuth extends AbstractBasic {
}
return true;
}
-
+
if ($this->session->exists(PublicAuth::DAV_AUTHENTICATED)
&& $this->session->get(PublicAuth::DAV_AUTHENTICATED) === $share->getId()) {
return true;
@@ -203,7 +215,13 @@ class PublicAuth extends AbstractBasic {
}
public function getShare(): IShare {
- assert($this->share !== null);
+ $token = $this->getToken();
+
+ if ($this->share === null) {
+ $share = $this->shareManager->getShareByToken($token);
+ $this->share = $share;
+ }
+
return $this->share;
}
}
diff --git a/apps/dav/lib/Connector/Sabre/ServerFactory.php b/apps/dav/lib/Connector/Sabre/ServerFactory.php
index 55cbb416457..214412e1744 100644
--- a/apps/dav/lib/Connector/Sabre/ServerFactory.php
+++ b/apps/dav/lib/Connector/Sabre/ServerFactory.php
@@ -8,11 +8,15 @@
namespace OCA\DAV\Connector\Sabre;
use OC\Files\View;
+use OC\KnownUser\KnownUserService;
use OCA\DAV\AppInfo\PluginManager;
use OCA\DAV\CalDAV\DefaultCalendarValidator;
+use OCA\DAV\CalDAV\Proxy\ProxyMapper;
use OCA\DAV\DAV\CustomPropertiesBackend;
use OCA\DAV\DAV\ViewOnlyPlugin;
use OCA\DAV\Files\BrowserErrorPagePlugin;
+use OCA\DAV\Files\Sharing\RootCollection;
+use OCA\DAV\Upload\CleanupService;
use OCA\Theming\ThemingDefaults;
use OCP\Accounts\IAccountManager;
use OCP\App\IAppManager;
@@ -20,6 +24,7 @@ use OCP\Comments\ICommentsManager;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Folder;
use OCP\Files\IFilenameValidator;
+use OCP\Files\IRootFolder;
use OCP\Files\Mount\IMountManager;
use OCP\IConfig;
use OCP\IDBConnection;
@@ -28,12 +33,14 @@ use OCP\IL10N;
use OCP\IPreview;
use OCP\IRequest;
use OCP\ITagManager;
+use OCP\IUserManager;
use OCP\IUserSession;
use OCP\SabrePluginEvent;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Auth\Plugin;
+use Sabre\DAV\SimpleCollection;
class ServerFactory {
@@ -54,13 +61,22 @@ class ServerFactory {
/**
* @param callable $viewCallBack callback that should return the view for the dav endpoint
*/
- public function createServer(string $baseUri,
+ public function createServer(
+ bool $isPublicShare,
+ string $baseUri,
string $requestUri,
Plugin $authPlugin,
- callable $viewCallBack): Server {
+ callable $viewCallBack,
+ ): Server {
// Fire up server
- $objectTree = new ObjectTree();
- $server = new Server($objectTree);
+ if ($isPublicShare) {
+ $rootCollection = new SimpleCollection('root');
+ $tree = new CachingTree($rootCollection);
+ } else {
+ $rootCollection = null;
+ $tree = new ObjectTree();
+ }
+ $server = new Server($tree);
// Set URL explicitly due to reverse-proxy situations
$server->httpRequest->setUrl($requestUri);
$server->setBaseUri($baseUri);
@@ -81,7 +97,7 @@ class ServerFactory {
$server->addPlugin(new RequestIdHeaderPlugin($this->request));
$server->addPlugin(new ZipFolderPlugin(
- $objectTree,
+ $tree,
$this->logger,
$this->eventDispatcher,
));
@@ -101,7 +117,7 @@ class ServerFactory {
}
// wait with registering these until auth is handled and the filesystem is setup
- $server->on('beforeMethod:*', function () use ($server, $objectTree, $viewCallBack): void {
+ $server->on('beforeMethod:*', function () use ($server, $tree, $viewCallBack, $isPublicShare, $rootCollection): void {
// ensure the skeleton is copied
$userFolder = \OC::$server->getUserFolder();
@@ -115,15 +131,49 @@ class ServerFactory {
// Create Nextcloud Dir
if ($rootInfo->getType() === 'dir') {
- $root = new Directory($view, $rootInfo, $objectTree);
+ $root = new Directory($view, $rootInfo, $tree);
} else {
$root = new File($view, $rootInfo);
}
- $objectTree->init($root, $view, $this->mountManager);
+
+ if ($isPublicShare) {
+ $userPrincipalBackend = new Principal(
+ \OCP\Server::get(IUserManager::class),
+ \OCP\Server::get(IGroupManager::class),
+ \OCP\Server::get(IAccountManager::class),
+ \OCP\Server::get(\OCP\Share\IManager::class),
+ \OCP\Server::get(IUserSession::class),
+ \OCP\Server::get(IAppManager::class),
+ \OCP\Server::get(ProxyMapper::class),
+ \OCP\Server::get(KnownUserService::class),
+ \OCP\Server::get(IConfig::class),
+ \OC::$server->getL10NFactory(),
+ );
+
+ // Mount the share collection at /public.php/dav/shares/<share token>
+ $rootCollection->addChild(new RootCollection(
+ $root,
+ $userPrincipalBackend,
+ 'principals/shares',
+ ));
+
+ // Mount the upload collection at /public.php/dav/uploads/<share token>
+ $rootCollection->addChild(new \OCA\DAV\Upload\RootCollection(
+ $userPrincipalBackend,
+ 'principals/shares',
+ \OCP\Server::get(CleanupService::class),
+ \OCP\Server::get(IRootFolder::class),
+ \OCP\Server::get(IUserSession::class),
+ \OCP\Server::get(\OCP\Share\IManager::class),
+ ));
+ } else {
+ /** @var ObjectTree $tree */
+ $tree->init($root, $view, $this->mountManager);
+ }
$server->addPlugin(
new FilesPlugin(
- $objectTree,
+ $tree,
$this->config,
$this->request,
$this->previewManager,
@@ -143,16 +193,16 @@ class ServerFactory {
));
if ($this->userSession->isLoggedIn()) {
- $server->addPlugin(new TagsPlugin($objectTree, $this->tagManager, $this->eventDispatcher, $this->userSession));
+ $server->addPlugin(new TagsPlugin($tree, $this->tagManager, $this->eventDispatcher, $this->userSession));
$server->addPlugin(new SharesPlugin(
- $objectTree,
+ $tree,
$this->userSession,
$userFolder,
\OCP\Server::get(\OCP\Share\IManager::class)
));
$server->addPlugin(new CommentPropertiesPlugin(\OCP\Server::get(ICommentsManager::class), $this->userSession));
$server->addPlugin(new FilesReportPlugin(
- $objectTree,
+ $tree,
$view,
\OCP\Server::get(ISystemTagManager::class),
\OCP\Server::get(ISystemTagObjectMapper::class),
@@ -167,7 +217,7 @@ class ServerFactory {
new \Sabre\DAV\PropertyStorage\Plugin(
new CustomPropertiesBackend(
$server,
- $objectTree,
+ $tree,
$this->databaseConnection,
$this->userSession->getUser(),
\OCP\Server::get(DefaultCalendarValidator::class),
diff --git a/apps/dav/lib/Connector/Sabre/TagsPlugin.php b/apps/dav/lib/Connector/Sabre/TagsPlugin.php
index eb06fa5cef6..2159adbda31 100644
--- a/apps/dav/lib/Connector/Sabre/TagsPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/TagsPlugin.php
@@ -94,6 +94,7 @@ class TagsPlugin extends \Sabre\DAV\ServerPlugin {
$this->server = $server;
$this->server->on('propFind', [$this, 'handleGetProperties']);
$this->server->on('propPatch', [$this, 'handleUpdateProperties']);
+ $this->server->on('preloadProperties', [$this, 'handlePreloadProperties']);
}
/**
@@ -150,6 +151,24 @@ class TagsPlugin extends \Sabre\DAV\ServerPlugin {
}
/**
+ * Prefetches tags for a list of file IDs and caches the results
+ *
+ * @param array $fileIds List of file IDs to prefetch tags for
+ * @return void
+ */
+ private function prefetchTagsForFileIds(array $fileIds) {
+ $tags = $this->getTagger()->getTagsForObjects($fileIds);
+ if ($tags === false) {
+ // the tags API returns false on error...
+ $tags = [];
+ }
+
+ foreach ($fileIds as $fileId) {
+ $this->cachedTags[$fileId] = $tags[$fileId] ?? [];
+ }
+ }
+
+ /**
* Updates the tags of the given file id
*
* @param int $fileId
@@ -199,22 +218,11 @@ class TagsPlugin extends \Sabre\DAV\ServerPlugin {
)) {
// note: pre-fetching only supported for depth <= 1
$folderContent = $node->getChildren();
- $fileIds[] = (int)$node->getId();
+ $fileIds = [(int)$node->getId()];
foreach ($folderContent as $info) {
$fileIds[] = (int)$info->getId();
}
- $tags = $this->getTagger()->getTagsForObjects($fileIds);
- if ($tags === false) {
- // the tags API returns false on error...
- $tags = [];
- }
-
- $this->cachedTags = $this->cachedTags + $tags;
- $emptyFileIds = array_diff($fileIds, array_keys($tags));
- // also cache the ones that were not found
- foreach ($emptyFileIds as $fileId) {
- $this->cachedTags[$fileId] = [];
- }
+ $this->prefetchTagsForFileIds($fileIds);
}
$isFav = null;
@@ -270,4 +278,14 @@ class TagsPlugin extends \Sabre\DAV\ServerPlugin {
return 200;
});
}
+
+ public function handlePreloadProperties(array $nodes, array $requestProperties): void {
+ if (
+ !in_array(self::FAVORITE_PROPERTYNAME, $requestProperties, true) &&
+ !in_array(self::TAGS_PROPERTYNAME, $requestProperties, true)
+ ) {
+ return;
+ }
+ $this->prefetchTagsForFileIds(array_map(fn ($node) => $node->getId(), $nodes));
+ }
}
diff --git a/apps/dav/lib/Controller/ExampleContentController.php b/apps/dav/lib/Controller/ExampleContentController.php
index 9146eeb639d..e20ee4b7f49 100644
--- a/apps/dav/lib/Controller/ExampleContentController.php
+++ b/apps/dav/lib/Controller/ExampleContentController.php
@@ -10,77 +10,89 @@ declare(strict_types=1);
namespace OCA\DAV\Controller;
use OCA\DAV\AppInfo\Application;
-use OCP\App\IAppManager;
+use OCA\DAV\Service\ExampleContactService;
+use OCA\DAV\Service\ExampleEventService;
use OCP\AppFramework\ApiController;
use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\Attribute\FrontpageRoute;
+use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
+use OCP\AppFramework\Http\DataDownloadResponse;
use OCP\AppFramework\Http\JSONResponse;
-use OCP\Files\AppData\IAppDataFactory;
-use OCP\Files\IAppData;
-use OCP\Files\NotFoundException;
-use OCP\IConfig;
use OCP\IRequest;
use Psr\Log\LoggerInterface;
class ExampleContentController extends ApiController {
- private IAppData $appData;
public function __construct(
IRequest $request,
- private IConfig $config,
- private IAppDataFactory $appDataFactory,
- private IAppManager $appManager,
- private LoggerInterface $logger,
+ private readonly LoggerInterface $logger,
+ private readonly ExampleEventService $exampleEventService,
+ private readonly ExampleContactService $exampleContactService,
) {
parent::__construct(Application::APP_ID, $request);
- $this->appData = $this->appDataFactory->get('dav');
}
- public function setEnableDefaultContact($allow) {
- if ($allow === 'yes' && !$this->defaultContactExists()) {
+ #[FrontpageRoute(verb: 'PUT', url: '/api/defaultcontact/config')]
+ public function setEnableDefaultContact(bool $allow): JSONResponse {
+ if ($allow && !$this->exampleContactService->defaultContactExists()) {
try {
- $this->setCard();
+ $this->exampleContactService->setCard();
} catch (\Exception $e) {
$this->logger->error('Could not create default contact', ['exception' => $e]);
return new JSONResponse([], Http::STATUS_INTERNAL_SERVER_ERROR);
}
}
- $this->config->setAppValue(Application::APP_ID, 'enableDefaultContact', $allow);
+ $this->exampleContactService->setDefaultContactEnabled($allow);
return new JSONResponse([], Http::STATUS_OK);
}
+ #[NoCSRFRequired]
+ #[FrontpageRoute(verb: 'GET', url: '/api/defaultcontact/contact')]
+ public function getDefaultContact(): DataDownloadResponse {
+ $cardData = $this->exampleContactService->getCard()
+ ?? file_get_contents(__DIR__ . '/../ExampleContentFiles/exampleContact.vcf');
+ return new DataDownloadResponse($cardData, 'example_contact.vcf', 'text/vcard');
+ }
+
+ #[FrontpageRoute(verb: 'PUT', url: '/api/defaultcontact/contact')]
public function setDefaultContact(?string $contactData = null) {
- if (!$this->config->getAppValue(Application::APP_ID, 'enableDefaultContact', 'no')) {
+ if (!$this->exampleContactService->isDefaultContactEnabled()) {
return new JSONResponse([], Http::STATUS_FORBIDDEN);
}
- $this->setCard($contactData);
+ $this->exampleContactService->setCard($contactData);
return new JSONResponse([], Http::STATUS_OK);
}
- private function setCard(?string $cardData = null) {
- try {
- $folder = $this->appData->getFolder('defaultContact');
- } catch (NotFoundException $e) {
- $folder = $this->appData->newFolder('defaultContact');
- }
+ #[FrontpageRoute(verb: 'POST', url: '/api/exampleEvent/enable')]
+ public function setCreateExampleEvent(bool $enable): JSONResponse {
+ $this->exampleEventService->setCreateExampleEvent($enable);
+ return new JsonResponse([]);
+ }
- if (is_null($cardData)) {
- $cardData = file_get_contents(__DIR__ . '/../ExampleContentFiles/exampleContact.vcf');
- }
+ #[FrontpageRoute(verb: 'GET', url: '/api/exampleEvent/event')]
+ #[NoCSRFRequired]
+ public function downloadExampleEvent(): DataDownloadResponse {
+ $exampleEvent = $this->exampleEventService->getExampleEvent();
+ return new DataDownloadResponse(
+ $exampleEvent->getIcs(),
+ 'example_event.ics',
+ 'text/calendar',
+ );
+ }
- if (!$cardData) {
- throw new \Exception('Could not read exampleContact.vcf');
+ #[FrontpageRoute(verb: 'POST', url: '/api/exampleEvent/event')]
+ public function uploadExampleEvent(string $ics): JSONResponse {
+ if (!$this->exampleEventService->shouldCreateExampleEvent()) {
+ return new JSONResponse([], Http::STATUS_FORBIDDEN);
}
- $file = (!$folder->fileExists('defaultContact.vcf')) ? $folder->newFile('defaultContact.vcf') : $folder->getFile('defaultContact.vcf');
- $file->putContent($cardData);
+ $this->exampleEventService->saveCustomExampleEvent($ics);
+ return new JsonResponse([]);
}
- private function defaultContactExists(): bool {
- try {
- $folder = $this->appData->getFolder('defaultContact');
- } catch (NotFoundException $e) {
- return false;
- }
- return $folder->fileExists('defaultContact.vcf');
+ #[FrontpageRoute(verb: 'DELETE', url: '/api/exampleEvent/event')]
+ public function deleteExampleEvent(): JSONResponse {
+ $this->exampleEventService->deleteCustomExampleEvent();
+ return new JsonResponse([]);
}
}
diff --git a/apps/dav/lib/DAV/GroupPrincipalBackend.php b/apps/dav/lib/DAV/GroupPrincipalBackend.php
index 143fc7d69f1..70a0099330c 100644
--- a/apps/dav/lib/DAV/GroupPrincipalBackend.php
+++ b/apps/dav/lib/DAV/GroupPrincipalBackend.php
@@ -50,8 +50,10 @@ class GroupPrincipalBackend implements BackendInterface {
$principals = [];
if ($prefixPath === self::PRINCIPAL_PREFIX) {
- foreach ($this->groupManager->search('') as $user) {
- $principals[] = $this->groupToPrincipal($user);
+ foreach ($this->groupManager->search('') as $group) {
+ if (!$group->hideFromCollaboration()) {
+ $principals[] = $this->groupToPrincipal($group);
+ }
}
}
@@ -77,7 +79,7 @@ class GroupPrincipalBackend implements BackendInterface {
$name = urldecode($elements[2]);
$group = $this->groupManager->get($name);
- if (!is_null($group)) {
+ if ($group !== null && !$group->hideFromCollaboration()) {
return $this->groupToPrincipal($group);
}
@@ -186,6 +188,10 @@ class GroupPrincipalBackend implements BackendInterface {
$groups = $this->groupManager->search($value, $searchLimit);
$results[] = array_reduce($groups, function (array $carry, IGroup $group) use ($restrictGroups) {
+ if ($group->hideFromCollaboration()) {
+ return $carry;
+ }
+
$gid = $group->getGID();
// is sharing restricted to groups only?
if ($restrictGroups !== false) {
diff --git a/apps/dav/lib/DAV/Sharing/Backend.php b/apps/dav/lib/DAV/Sharing/Backend.php
index 06a082628d3..de0d6891b7c 100644
--- a/apps/dav/lib/DAV/Sharing/Backend.php
+++ b/apps/dav/lib/DAV/Sharing/Backend.php
@@ -90,14 +90,6 @@ abstract class Backend {
// Delete any possible direct shares (since the frontend does not separate between them)
$this->service->deleteShare($shareable->getResourceId(), $principal);
-
- // Check if a user has a groupshare that they're trying to free themselves from
- // If so we need to add a self::ACCESS_UNSHARED row
- if (!str_contains($principal, 'group')
- && $this->service->hasGroupShare($oldShares)
- ) {
- $this->service->unshare($shareable->getResourceId(), $principal);
- }
}
}
@@ -204,4 +196,45 @@ abstract class Backend {
}
return $acl;
}
+
+ public function unshare(IShareable $shareable, string $principalUri): bool {
+ $this->shareCache->clear();
+
+ $principal = $this->principalBackend->findByUri($principalUri, '');
+ if (empty($principal)) {
+ return false;
+ }
+
+ if ($shareable->getOwner() === $principal) {
+ return false;
+ }
+
+ // Delete any possible direct shares (since the frontend does not separate between them)
+ $this->service->deleteShare($shareable->getResourceId(), $principal);
+
+ $needsUnshare = $this->hasAccessByGroupOrCirclesMembership(
+ $shareable->getResourceId(),
+ $principal
+ );
+
+ if ($needsUnshare) {
+ $this->service->unshare($shareable->getResourceId(), $principal);
+ }
+
+ return true;
+ }
+
+ private function hasAccessByGroupOrCirclesMembership(int $resourceId, string $principal) {
+ $memberships = array_merge(
+ $this->principalBackend->getGroupMembership($principal, true),
+ $this->principalBackend->getCircleMembership($principal)
+ );
+
+ $shares = array_column(
+ $this->service->getShares($resourceId),
+ 'principaluri'
+ );
+
+ return count(array_intersect($memberships, $shares)) > 0;
+ }
}
diff --git a/apps/dav/lib/DAV/Sharing/SharingMapper.php b/apps/dav/lib/DAV/Sharing/SharingMapper.php
index 0aec5b7fe81..e4722208189 100644
--- a/apps/dav/lib/DAV/Sharing/SharingMapper.php
+++ b/apps/dav/lib/DAV/Sharing/SharingMapper.php
@@ -110,4 +110,28 @@ class SharingMapper {
->andWhere($query->expr()->eq('type', $query->createNamedParameter($resourceType)))
->executeStatement();
}
+
+ public function getSharesByPrincipals(array $principals, string $resourceType): array {
+ $query = $this->db->getQueryBuilder();
+ $result = $query->select(['id', 'principaluri', 'type', 'access', 'resourceid'])
+ ->from('dav_shares')
+ ->where($query->expr()->in('principaluri', $query->createNamedParameter($principals, IQueryBuilder::PARAM_STR_ARRAY), IQueryBuilder::PARAM_STR_ARRAY))
+ ->andWhere($query->expr()->eq('type', $query->createNamedParameter($resourceType)))
+ ->orderBy('id')
+ ->executeQuery();
+
+ $rows = $result->fetchAll();
+ $result->closeCursor();
+
+ return $rows;
+ }
+
+ public function deleteUnsharesByPrincipal(string $principal, string $resourceType): void {
+ $query = $this->db->getQueryBuilder();
+ $query->delete('dav_shares')
+ ->where($query->expr()->eq('principaluri', $query->createNamedParameter($principal)))
+ ->andWhere($query->expr()->eq('type', $query->createNamedParameter($resourceType)))
+ ->andWhere($query->expr()->eq('access', $query->createNamedParameter(Backend::ACCESS_UNSHARED, IQueryBuilder::PARAM_INT)))
+ ->executeStatement();
+ }
}
diff --git a/apps/dav/lib/DAV/Sharing/SharingService.php b/apps/dav/lib/DAV/Sharing/SharingService.php
index b9ac36ea066..11459e12d74 100644
--- a/apps/dav/lib/DAV/Sharing/SharingService.php
+++ b/apps/dav/lib/DAV/Sharing/SharingService.php
@@ -50,14 +50,4 @@ abstract class SharingService {
public function getSharesForIds(array $resourceIds): array {
return $this->mapper->getSharesForIds($resourceIds, $this->getResourceType());
}
-
- /**
- * @param array $oldShares
- * @return bool
- */
- public function hasGroupShare(array $oldShares): bool {
- return !empty(array_filter($oldShares, function (array $share) {
- return $share['{http://owncloud.org/ns}group-share'] === true;
- }));
- }
}
diff --git a/apps/dav/lib/Db/PropertyMapper.php b/apps/dav/lib/Db/PropertyMapper.php
index a0ecb348ba4..1789194ee7a 100644
--- a/apps/dav/lib/Db/PropertyMapper.php
+++ b/apps/dav/lib/Db/PropertyMapper.php
@@ -38,4 +38,18 @@ class PropertyMapper extends QBMapper {
return $this->findEntities($selectQb);
}
+ /**
+ * @return Property[]
+ */
+ public function findPropertiesByPath(string $userId, string $path): array {
+ $selectQb = $this->db->getQueryBuilder();
+ $selectQb->select('*')
+ ->from(self::TABLE_NAME)
+ ->where(
+ $selectQb->expr()->eq('userid', $selectQb->createNamedParameter($userId)),
+ $selectQb->expr()->eq('propertypath', $selectQb->createNamedParameter($path)),
+ );
+ return $this->findEntities($selectQb);
+ }
+
}
diff --git a/apps/dav/lib/Direct/DirectHome.php b/apps/dav/lib/Direct/DirectHome.php
index 10e1017f5a4..ac411c9b52f 100644
--- a/apps/dav/lib/Direct/DirectHome.php
+++ b/apps/dav/lib/Direct/DirectHome.php
@@ -53,7 +53,7 @@ class DirectHome implements ICollection {
} catch (DoesNotExistException $e) {
// Since the token space is so huge only throttle on non-existing token
$this->throttler->registerAttempt('directlink', $this->request->getRemoteAddress());
- $this->throttler->sleepDelay($this->request->getRemoteAddress(), 'directlink');
+ $this->throttler->sleepDelayOrThrowOnMax($this->request->getRemoteAddress(), 'directlink');
throw new NotFound();
}
diff --git a/apps/dav/lib/Events/CalendarShareUpdatedEvent.php b/apps/dav/lib/Events/CalendarShareUpdatedEvent.php
index 762307b202f..0f8b23ad3ac 100644
--- a/apps/dav/lib/Events/CalendarShareUpdatedEvent.php
+++ b/apps/dav/lib/Events/CalendarShareUpdatedEvent.php
@@ -8,22 +8,24 @@ declare(strict_types=1);
*/
namespace OCA\DAV\Events;
+use OCA\DAV\CalDAV\CalDavBackend;
use OCP\EventDispatcher\Event;
-use Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp;
-use Sabre\CalDAV\Xml\Property\SupportedCalendarComponentSet;
/**
* Class CalendarShareUpdatedEvent
*
* @package OCA\DAV\Events
* @since 20.0.0
+ *
+ * @psalm-import-type CalendarInfo from CalDavBackend
*/
class CalendarShareUpdatedEvent extends Event {
/**
* CalendarShareUpdatedEvent constructor.
*
* @param int $calendarId
- * @param array{id: int, uri: string, '{http://calendarserver.org/ns/}getctag': string, '{http://sabredav.org/ns}sync-token': int, '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set': SupportedCalendarComponentSet, '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp': ScheduleCalendarTransp, '{urn:ietf:params:xml:ns:caldav}calendar-timezone': ?string } $calendarData
+ * @psalm-param CalendarInfo $calendarData
+ * @param array $calendarData
* @param list<array{href: string, commonName: string, status: int, readOnly: bool, '{http://owncloud.org/ns}principal': string, '{http://owncloud.org/ns}group-share': bool}> $oldShares
* @param list<array{href: string, commonName: string, readOnly: bool}> $added
* @param list<string> $removed
@@ -47,7 +49,8 @@ class CalendarShareUpdatedEvent extends Event {
}
/**
- * @return array{id: int, uri: string, '{http://calendarserver.org/ns/}getctag': string, '{http://sabredav.org/ns}sync-token': int, '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set': SupportedCalendarComponentSet, '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp': ScheduleCalendarTransp, '{urn:ietf:params:xml:ns:caldav}calendar-timezone': ?string }
+ * @psalm-return CalendarInfo
+ * @return array
* @since 20.0.0
*/
public function getCalendarData(): array {
diff --git a/apps/dav/lib/Exception/ExampleEventException.php b/apps/dav/lib/Exception/ExampleEventException.php
new file mode 100644
index 00000000000..2d77cc443cb
--- /dev/null
+++ b/apps/dav/lib/Exception/ExampleEventException.php
@@ -0,0 +1,13 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Exception;
+
+class ExampleEventException extends \Exception {
+}
diff --git a/apps/dav/lib/Files/BrowserErrorPagePlugin.php b/apps/dav/lib/Files/BrowserErrorPagePlugin.php
index de86c4995e2..85ed975a409 100644
--- a/apps/dav/lib/Files/BrowserErrorPagePlugin.php
+++ b/apps/dav/lib/Files/BrowserErrorPagePlugin.php
@@ -11,6 +11,7 @@ use OC\AppFramework\Http\Request;
use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IRequest;
+use OCP\Security\Bruteforce\MaxDelayReached;
use OCP\Template\ITemplateManager;
use Sabre\DAV\Exception;
use Sabre\DAV\Server;
@@ -60,6 +61,9 @@ class BrowserErrorPagePlugin extends ServerPlugin {
if ($ex instanceof Exception) {
$httpCode = $ex->getHTTPCode();
$headers = $ex->getHTTPHeaders($this->server);
+ } elseif ($ex instanceof MaxDelayReached) {
+ $httpCode = 429;
+ $headers = [];
} else {
$httpCode = 500;
$headers = [];
@@ -81,7 +85,7 @@ class BrowserErrorPagePlugin extends ServerPlugin {
$request = \OCP\Server::get(IRequest::class);
$templateName = 'exception';
- if ($httpCode === 403 || $httpCode === 404) {
+ if ($httpCode === 403 || $httpCode === 404 || $httpCode === 429) {
$templateName = (string)$httpCode;
}
diff --git a/apps/dav/lib/Files/FileSearchBackend.php b/apps/dav/lib/Files/FileSearchBackend.php
index ace367e4490..0aa903f2b29 100644
--- a/apps/dav/lib/Files/FileSearchBackend.php
+++ b/apps/dav/lib/Files/FileSearchBackend.php
@@ -15,6 +15,7 @@ use OCA\DAV\Connector\Sabre\CachingTree;
use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\File;
use OCA\DAV\Connector\Sabre\FilesPlugin;
+use OCA\DAV\Connector\Sabre\Server;
use OCA\DAV\Connector\Sabre\TagsPlugin;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\Folder;
@@ -44,6 +45,7 @@ class FileSearchBackend implements ISearchBackend {
public const OPERATOR_LIMIT = 100;
public function __construct(
+ private Server $server,
private CachingTree $tree,
private IUser $user,
private IRootFolder $rootFolder,
@@ -133,6 +135,7 @@ class FileSearchBackend implements ISearchBackend {
* @param string[] $requestProperties
*/
public function preloadPropertyFor(array $nodes, array $requestProperties): void {
+ $this->server->emit('preloadProperties', [$nodes, $requestProperties]);
}
private function getFolderForPath(?string $path = null): Folder {
diff --git a/apps/dav/lib/Files/Sharing/FilesDropPlugin.php b/apps/dav/lib/Files/Sharing/FilesDropPlugin.php
index 9d883be81fc..3bdd273189f 100644
--- a/apps/dav/lib/Files/Sharing/FilesDropPlugin.php
+++ b/apps/dav/lib/Files/Sharing/FilesDropPlugin.php
@@ -5,8 +5,10 @@
*/
namespace OCA\DAV\Files\Sharing;
-use OC\Files\View;
+use OCP\Files\Folder;
+use OCP\Files\NotFoundException;
use OCP\Share\IShare;
+use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\Exception\MethodNotAllowed;
use Sabre\DAV\ServerPlugin;
use Sabre\HTTP\RequestInterface;
@@ -17,14 +19,9 @@ use Sabre\HTTP\ResponseInterface;
*/
class FilesDropPlugin extends ServerPlugin {
- private ?View $view = null;
private ?IShare $share = null;
private bool $enabled = false;
- public function setView(View $view): void {
- $this->view = $view;
- }
-
public function setShare(IShare $share): void {
$this->share = $share;
}
@@ -33,60 +30,169 @@ class FilesDropPlugin extends ServerPlugin {
$this->enabled = true;
}
-
/**
* This initializes the plugin.
- *
- * @param \Sabre\DAV\Server $server Sabre server
- *
- * @return void
- * @throws MethodNotAllowed
+ * It is ONLY initialized by the server on a file drop request.
*/
public function initialize(\Sabre\DAV\Server $server): void {
$server->on('beforeMethod:*', [$this, 'beforeMethod'], 999);
+ $server->on('method:MKCOL', [$this, 'onMkcol']);
$this->enabled = false;
}
- public function beforeMethod(RequestInterface $request, ResponseInterface $response): void {
- if (!$this->enabled || $this->share === null || $this->view === null) {
+ public function onMkcol(RequestInterface $request, ResponseInterface $response) {
+ if (!$this->enabled || $this->share === null) {
+ return;
+ }
+
+ $node = $this->share->getNode();
+ if (!($node instanceof Folder)) {
+ return;
+ }
+
+ // If this is a folder creation request we need
+ // to fake a success so we can pretend every
+ // folder now exists.
+ $response->setStatus(201);
+ return false;
+ }
+
+ public function beforeMethod(RequestInterface $request, ResponseInterface $response) {
+ if (!$this->enabled || $this->share === null) {
+ return;
+ }
+
+ $node = $this->share->getNode();
+ if (!($node instanceof Folder)) {
return;
}
- // Only allow file drop
+ // Retrieve the nickname from the request
+ $nickname = $request->hasHeader('X-NC-Nickname')
+ ? trim(urldecode($request->getHeader('X-NC-Nickname')))
+ : null;
+
if ($request->getMethod() !== 'PUT') {
- throw new MethodNotAllowed('Only PUT is allowed on files drop');
+ // If uploading subfolders we need to ensure they get created
+ // within the nickname folder
+ if ($request->getMethod() === 'MKCOL') {
+ if (!$nickname) {
+ throw new BadRequest('A nickname header is required when uploading subfolders');
+ }
+ } else {
+ throw new MethodNotAllowed('Only PUT is allowed on files drop');
+ }
}
- // Always upload at the root level
- $path = explode('/', $request->getPath());
- $path = array_pop($path);
+ // If this is a folder creation request
+ // let's stop there and let the onMkcol handle it
+ if ($request->getMethod() === 'MKCOL') {
+ return;
+ }
+
+ // Now if we create a file, we need to create the
+ // full path along the way. We'll only handle conflict
+ // resolution on file conflicts, but not on folders.
+
+ // e.g files/dCP8yn3N86EK9sL/Folder/image.jpg
+ $path = $request->getPath();
+ $token = $this->share->getToken();
+
+ // e.g files/dCP8yn3N86EK9sL
+ $rootPath = substr($path, 0, strpos($path, $token) + strlen($token));
+ // e.g /Folder/image.jpg
+ $relativePath = substr($path, strlen($rootPath));
+ $isRootUpload = substr_count($relativePath, '/') === 1;
// Extract the attributes for the file request
$isFileRequest = false;
$attributes = $this->share->getAttributes();
- $nickName = $request->hasHeader('X-NC-Nickname') ? urldecode($request->getHeader('X-NC-Nickname')) : null;
if ($attributes !== null) {
$isFileRequest = $attributes->getAttribute('fileRequest', 'enabled') === true;
}
// We need a valid nickname for file requests
- if ($isFileRequest && ($nickName == null || trim($nickName) === '')) {
- throw new MethodNotAllowed('Nickname is required for file requests');
+ if ($isFileRequest && !$nickname) {
+ throw new BadRequest('A nickname header is required for file requests');
+ }
+
+ // We're only allowing the upload of
+ // long path with subfolders if a nickname is set.
+ // This prevents confusion when uploading files and help
+ // classify them by uploaders.
+ if (!$nickname && !$isRootUpload) {
+ throw new BadRequest('A nickname header is required when uploading subfolders');
}
-
- // If this is a file request we need to create a folder for the user
- if ($isFileRequest) {
- // Check if the folder already exists
- if (!($this->view->file_exists($nickName) === true)) {
- $this->view->mkdir($nickName);
+
+ if ($nickname) {
+ try {
+ $node->verifyPath($nickname);
+ } catch (\Exception $e) {
+ // If the path is not valid, we throw an exception
+ throw new BadRequest('Invalid nickname: ' . $nickname);
+ }
+
+ // Forbid nicknames starting with a dot
+ if (str_starts_with($nickname, '.')) {
+ throw new BadRequest('Invalid nickname: ' . $nickname);
}
- // Put all files in the subfolder
- $path = $nickName . '/' . $path;
+
+ // If we have a nickname, let's put
+ // all files in the subfolder
+ $relativePath = '/' . $nickname . '/' . $relativePath;
+ $relativePath = str_replace('//', '/', $relativePath);
}
-
- $newName = \OC_Helper::buildNotExistingFileNameForView('/', $path, $this->view);
- $url = $request->getBaseUrl() . $newName;
+
+ // Create the folders along the way
+ $folder = $node;
+ $pathSegments = $this->getPathSegments(dirname($relativePath));
+ foreach ($pathSegments as $pathSegment) {
+ if ($pathSegment === '') {
+ continue;
+ }
+
+ try {
+ // get the current folder
+ $currentFolder = $folder->get($pathSegment);
+ // check target is a folder
+ if ($currentFolder instanceof Folder) {
+ $folder = $currentFolder;
+ } else {
+ // otherwise look in the parent folder if we already create an unique folder name
+ foreach ($folder->getDirectoryListing() as $child) {
+ // we look for folders which match "NAME (SUFFIX)"
+ if ($child instanceof Folder && str_starts_with($child->getName(), $pathSegment)) {
+ $suffix = substr($child->getName(), strlen($pathSegment));
+ if (preg_match('/^ \(\d+\)$/', $suffix)) {
+ // we found the unique folder name and can use it
+ $folder = $child;
+ break;
+ }
+ }
+ }
+ // no folder found so we need to create a new unique folder name
+ if (!isset($child) || $child !== $folder) {
+ $folder = $folder->newFolder($folder->getNonExistingName($pathSegment));
+ }
+ }
+ } catch (NotFoundException) {
+ // the folder does simply not exist so we create it
+ $folder = $folder->newFolder($pathSegment);
+ }
+ }
+
+ // Finally handle conflicts on the end files
+ $uniqueName = $folder->getNonExistingName(basename($relativePath));
+ $relativePath = substr($folder->getPath(), strlen($node->getPath()));
+ $path = '/files/' . $token . '/' . $relativePath . '/' . $uniqueName;
+ $url = rtrim($request->getBaseUrl(), '/') . str_replace('//', '/', $path);
$request->setUrl($url);
}
+ private function getPathSegments(string $path): array {
+ // Normalize slashes and remove trailing slash
+ $path = trim(str_replace('\\', '/', $path), '/');
+
+ return explode('/', $path);
+ }
}
diff --git a/apps/dav/lib/Files/Sharing/RootCollection.php b/apps/dav/lib/Files/Sharing/RootCollection.php
new file mode 100644
index 00000000000..dd585fbb59b
--- /dev/null
+++ b/apps/dav/lib/Files/Sharing/RootCollection.php
@@ -0,0 +1,32 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Files\Sharing;
+
+use Sabre\DAV\INode;
+use Sabre\DAVACL\AbstractPrincipalCollection;
+use Sabre\DAVACL\PrincipalBackend\BackendInterface;
+
+class RootCollection extends AbstractPrincipalCollection {
+ public function __construct(
+ private INode $root,
+ BackendInterface $principalBackend,
+ string $principalPrefix = 'principals',
+ ) {
+ parent::__construct($principalBackend, $principalPrefix);
+ }
+
+ public function getChildForPrincipal(array $principalInfo): INode {
+ return $this->root;
+ }
+
+ public function getName() {
+ return 'files';
+ }
+}
diff --git a/apps/dav/lib/Listener/AddMissingIndicesListener.php b/apps/dav/lib/Listener/AddMissingIndicesListener.php
index 035c6c9582e..d3a1cf4b224 100644
--- a/apps/dav/lib/Listener/AddMissingIndicesListener.php
+++ b/apps/dav/lib/Listener/AddMissingIndicesListener.php
@@ -30,6 +30,11 @@ class AddMissingIndicesListener implements IEventListener {
'dav_shares_resourceid_access',
['resourceid', 'access']
);
+ $event->addMissingIndex(
+ 'calendarobjects',
+ 'calobjects_by_uid_index',
+ ['calendarid', 'calendartype', 'uid']
+ );
}
}
diff --git a/apps/dav/lib/Listener/UserEventsListener.php b/apps/dav/lib/Listener/UserEventsListener.php
index 61d945e829b..c876192d67f 100644
--- a/apps/dav/lib/Listener/UserEventsListener.php
+++ b/apps/dav/lib/Listener/UserEventsListener.php
@@ -12,14 +12,14 @@ namespace OCA\DAV\Listener;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\CardDAV\SyncService;
-use OCA\DAV\Service\DefaultContactService;
+use OCA\DAV\Service\ExampleContactService;
+use OCA\DAV\Service\ExampleEventService;
use OCP\Accounts\UserUpdatedEvent;
use OCP\Defaults;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\IUser;
use OCP\IUserManager;
-use OCP\Server;
use OCP\User\Events\BeforeUserDeletedEvent;
use OCP\User\Events\BeforeUserIdUnassignedEvent;
use OCP\User\Events\UserChangedEvent;
@@ -46,7 +46,9 @@ class UserEventsListener implements IEventListener {
private CalDavBackend $calDav,
private CardDavBackend $cardDav,
private Defaults $themingDefaults,
- private DefaultContactService $defaultContactService,
+ private ExampleContactService $exampleContactService,
+ private ExampleEventService $exampleEventService,
+ private LoggerInterface $logger,
) {
}
@@ -137,17 +139,31 @@ class UserEventsListener implements IEventListener {
public function firstLogin(IUser $user): void {
$principal = 'principals/users/' . $user->getUID();
+
+ $calendarId = null;
if ($this->calDav->getCalendarsForUserCount($principal) === 0) {
try {
- $this->calDav->createCalendar($principal, CalDavBackend::PERSONAL_CALENDAR_URI, [
+ $calendarId = $this->calDav->createCalendar($principal, CalDavBackend::PERSONAL_CALENDAR_URI, [
'{DAV:}displayname' => CalDavBackend::PERSONAL_CALENDAR_NAME,
'{http://apple.com/ns/ical/}calendar-color' => $this->themingDefaults->getColorPrimary(),
'components' => 'VEVENT'
]);
} catch (\Exception $e) {
- Server::get(LoggerInterface::class)->error($e->getMessage(), ['exception' => $e]);
+ $this->logger->error($e->getMessage(), ['exception' => $e]);
}
}
+ if ($calendarId !== null) {
+ try {
+ $this->exampleEventService->createExampleEvent($calendarId);
+ } catch (\Exception $e) {
+ $this->logger->error('Failed to create example event: ' . $e->getMessage(), [
+ 'exception' => $e,
+ 'userId' => $user->getUID(),
+ 'calendarId' => $calendarId,
+ ]);
+ }
+ }
+
$addressBookId = null;
if ($this->cardDav->getAddressBooksForUserCount($principal) === 0) {
try {
@@ -155,11 +171,11 @@ class UserEventsListener implements IEventListener {
'{DAV:}displayname' => CardDavBackend::PERSONAL_ADDRESSBOOK_NAME,
]);
} catch (\Exception $e) {
- Server::get(LoggerInterface::class)->error($e->getMessage(), ['exception' => $e]);
+ $this->logger->error($e->getMessage(), ['exception' => $e]);
}
}
if ($addressBookId) {
- $this->defaultContactService->createDefaultContact($addressBookId);
+ $this->exampleContactService->createDefaultContact($addressBookId);
}
}
}
diff --git a/apps/dav/lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php b/apps/dav/lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php
new file mode 100644
index 00000000000..9d77aefafd2
--- /dev/null
+++ b/apps/dav/lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php
@@ -0,0 +1,30 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Migration;
+
+use OCA\DAV\BackgroundJob\UpdateCalendarResourcesRoomsBackgroundJob;
+use OCP\BackgroundJob\IJobList;
+use OCP\Migration\IOutput;
+use OCP\Migration\IRepairStep;
+
+class RegisterUpdateCalendarResourcesRoomBackgroundJob implements IRepairStep {
+ public function __construct(
+ private readonly IJobList $jobList,
+ ) {
+ }
+
+ public function getName() {
+ return 'Register a background job to update rooms and resources';
+ }
+
+ public function run(IOutput $output) {
+ $this->jobList->add(UpdateCalendarResourcesRoomsBackgroundJob::class);
+ }
+}
diff --git a/apps/dav/lib/Migration/Version1006Date20180628111625.php b/apps/dav/lib/Migration/Version1006Date20180628111625.php
index 5f3aa4b6fe2..f4be26e6ad0 100644
--- a/apps/dav/lib/Migration/Version1006Date20180628111625.php
+++ b/apps/dav/lib/Migration/Version1006Date20180628111625.php
@@ -49,6 +49,7 @@ class Version1006Date20180628111625 extends SimpleMigrationStep {
$calendarObjectsTable->dropIndex('calobjects_index');
}
$calendarObjectsTable->addUniqueIndex(['calendarid', 'calendartype', 'uri'], 'calobjects_index');
+ $calendarObjectsTable->addUniqueIndex(['calendarid', 'calendartype', 'uid'], 'calobjects_by_uid_index');
}
if ($schema->hasTable('calendarobjects_props')) {
diff --git a/apps/dav/lib/Model/ExampleEvent.php b/apps/dav/lib/Model/ExampleEvent.php
new file mode 100644
index 00000000000..d2a5b8ad2d1
--- /dev/null
+++ b/apps/dav/lib/Model/ExampleEvent.php
@@ -0,0 +1,31 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Model;
+
+use Sabre\VObject\Component\VCalendar;
+
+/**
+ * Simple DTO to store a parsed example event and its UID.
+ */
+final class ExampleEvent {
+ public function __construct(
+ private readonly VCalendar $vCalendar,
+ private readonly string $uid,
+ ) {
+ }
+
+ public function getUid(): string {
+ return $this->uid;
+ }
+
+ public function getIcs(): string {
+ return $this->vCalendar->serialize();
+ }
+}
diff --git a/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php b/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php
index 198a09b4bc8..190e6584eb1 100644
--- a/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php
+++ b/apps/dav/lib/Provisioning/Apple/AppleProvisioningNode.php
@@ -57,7 +57,7 @@ class AppleProvisioningNode implements INode, IProperties {
return [
'{DAV:}getcontentlength' => 42,
- '{DAV:}getlastmodified' => $datetime->format(\DateTimeInterface::RFC2822),
+ '{DAV:}getlastmodified' => $datetime->format(\DateTimeInterface::RFC7231),
];
}
diff --git a/apps/dav/lib/RootCollection.php b/apps/dav/lib/RootCollection.php
index b2b34b26980..f1963c0ef01 100644
--- a/apps/dav/lib/RootCollection.php
+++ b/apps/dav/lib/RootCollection.php
@@ -160,6 +160,7 @@ class RootCollection extends SimpleCollection {
Server::get(CleanupService::class),
$rootFolder,
$userSession,
+ $shareManager,
);
$uploadCollection->disableListing = $disableListing;
diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php
index f1595bab391..9b9d8cdb2ab 100644
--- a/apps/dav/lib/Server.php
+++ b/apps/dav/lib/Server.php
@@ -63,6 +63,7 @@ use OCA\DAV\Provisioning\Apple\AppleProvisioningPlugin;
use OCA\DAV\SystemTag\SystemTagPlugin;
use OCA\DAV\Upload\ChunkingPlugin;
use OCA\DAV\Upload\ChunkingV2Plugin;
+use OCA\DAV\Upload\UploadAutoMkcolPlugin;
use OCA\Theming\ThemingDefaults;
use OCP\Accounts\IAccountManager;
use OCP\App\IAppManager;
@@ -72,7 +73,6 @@ use OCP\Comments\ICommentsManager;
use OCP\Defaults;
use OCP\Diagnostics\IEventLogger;
use OCP\EventDispatcher\IEventDispatcher;
-use OCP\Files\AppData\IAppDataFactory;
use OCP\Files\IFilenameValidator;
use OCP\Files\IRootFolder;
use OCP\FilesMetadata\IFilesMetadataManager;
@@ -216,10 +216,7 @@ class Server {
$this->server->addPlugin(new VCFExportPlugin());
$this->server->addPlugin(new MultiGetExportPlugin());
$this->server->addPlugin(new HasPhotoPlugin());
- $this->server->addPlugin(new ImageExportPlugin(new PhotoCache(
- \OCP\Server::get(IAppDataFactory::class)->get('dav-photocache'),
- $logger)
- ));
+ $this->server->addPlugin(new ImageExportPlugin(\OCP\Server::get(PhotoCache::class)));
$this->server->addPlugin(\OCP\Server::get(CardDavRateLimitingPlugin::class));
$this->server->addPlugin(\OCP\Server::get(CardDavValidatePlugin::class));
@@ -236,6 +233,7 @@ class Server {
$this->server->addPlugin(new CopyEtagHeaderPlugin());
$this->server->addPlugin(new RequestIdHeaderPlugin(\OCP\Server::get(IRequest::class)));
+ $this->server->addPlugin(new UploadAutoMkcolPlugin());
$this->server->addPlugin(new ChunkingV2Plugin(\OCP\Server::get(ICacheFactory::class)));
$this->server->addPlugin(new ChunkingPlugin());
$this->server->addPlugin(new ZipFolderPlugin(
@@ -356,6 +354,7 @@ class Server {
\OCP\Server::get(IAppManager::class)
));
$lazySearchBackend->setBackend(new FileSearchBackend(
+ $this->server,
$this->server->tree,
$user,
\OCP\Server::get(IRootFolder::class),
diff --git a/apps/dav/lib/Service/DefaultContactService.php b/apps/dav/lib/Service/DefaultContactService.php
deleted file mode 100644
index ad7a1179195..00000000000
--- a/apps/dav/lib/Service/DefaultContactService.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/**
- * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-namespace OCA\DAV\Service;
-
-use OCA\DAV\AppInfo\Application;
-use OCA\DAV\CardDAV\CardDavBackend;
-use OCP\App\IAppManager;
-use OCP\Files\AppData\IAppDataFactory;
-use OCP\IAppConfig;
-use Psr\Log\LoggerInterface;
-use Symfony\Component\Uid\Uuid;
-
-class DefaultContactService {
- public function __construct(
- private CardDavBackend $cardDav,
- private IAppManager $appManager,
- private IAppDataFactory $appDataFactory,
- private IAppConfig $config,
- private LoggerInterface $logger,
- ) {
- }
-
- public function createDefaultContact(int $addressBookId): void {
- $enableDefaultContact = $this->config->getValueString(Application::APP_ID, 'enableDefaultContact', 'no');
- if ($enableDefaultContact !== 'yes') {
- return;
- }
- $appData = $this->appDataFactory->get('dav');
- try {
- $folder = $appData->getFolder('defaultContact');
- $defaultContactFile = $folder->getFile('defaultContact.vcf');
- $data = $defaultContactFile->getContent();
- } catch (\Exception $e) {
- $this->logger->error('Couldn\'t get default contact file', ['exception' => $e]);
- return;
- }
-
- // Make sure the UID is unique
- $newUid = Uuid::v4()->toRfc4122();
- $newRev = date('Ymd\THis\Z');
- $vcard = \Sabre\VObject\Reader::read($data, \Sabre\VObject\Reader::OPTION_FORGIVING);
- if ($vcard->UID) {
- $vcard->UID->setValue($newUid);
- } else {
- $vcard->add('UID', $newUid);
- }
- if ($vcard->REV) {
- $vcard->REV->setValue($newRev);
- } else {
- $vcard->add('REV', $newRev);
- }
-
- // Level 3 means that the document is invalid
- // https://sabre.io/vobject/vcard/#validating-vcard
- $level3Warnings = array_filter($vcard->validate(), function ($warning) {
- return $warning['level'] === 3;
- });
-
- if (!empty($level3Warnings)) {
- $this->logger->error('Default contact is invalid', ['warnings' => $level3Warnings]);
- return;
- }
- try {
- $this->cardDav->createCard($addressBookId, 'default', $vcard->serialize(), false);
- } catch (\Exception $e) {
- $this->logger->error($e->getMessage(), ['exception' => $e]);
- }
-
- }
-}
diff --git a/apps/dav/lib/Service/ExampleContactService.php b/apps/dav/lib/Service/ExampleContactService.php
new file mode 100644
index 00000000000..6ed6c66cbb3
--- /dev/null
+++ b/apps/dav/lib/Service/ExampleContactService.php
@@ -0,0 +1,132 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Service;
+
+use OCA\DAV\AppInfo\Application;
+use OCA\DAV\CardDAV\CardDavBackend;
+use OCP\AppFramework\Services\IAppConfig;
+use OCP\Files\AppData\IAppDataFactory;
+use OCP\Files\IAppData;
+use OCP\Files\NotFoundException;
+use Psr\Log\LoggerInterface;
+use Symfony\Component\Uid\Uuid;
+
+class ExampleContactService {
+ private readonly IAppData $appData;
+
+ public function __construct(
+ IAppDataFactory $appDataFactory,
+ private readonly IAppConfig $appConfig,
+ private readonly LoggerInterface $logger,
+ private readonly CardDavBackend $cardDav,
+ ) {
+ $this->appData = $appDataFactory->get(Application::APP_ID);
+ }
+
+ public function isDefaultContactEnabled(): bool {
+ return $this->appConfig->getAppValueBool('enableDefaultContact', true);
+ }
+
+ public function setDefaultContactEnabled(bool $value): void {
+ $this->appConfig->setAppValueBool('enableDefaultContact', $value);
+ }
+
+ public function getCard(): ?string {
+ try {
+ $folder = $this->appData->getFolder('defaultContact');
+ } catch (NotFoundException $e) {
+ return null;
+ }
+
+ if (!$folder->fileExists('defaultContact.vcf')) {
+ return null;
+ }
+
+ return $folder->getFile('defaultContact.vcf')->getContent();
+ }
+
+ public function setCard(?string $cardData = null) {
+ try {
+ $folder = $this->appData->getFolder('defaultContact');
+ } catch (NotFoundException $e) {
+ $folder = $this->appData->newFolder('defaultContact');
+ }
+
+ $isCustom = true;
+ if (is_null($cardData)) {
+ $cardData = file_get_contents(__DIR__ . '/../ExampleContentFiles/exampleContact.vcf');
+ $isCustom = false;
+ }
+
+ if (!$cardData) {
+ throw new \Exception('Could not read exampleContact.vcf');
+ }
+
+ $file = (!$folder->fileExists('defaultContact.vcf')) ? $folder->newFile('defaultContact.vcf') : $folder->getFile('defaultContact.vcf');
+ $file->putContent($cardData);
+
+ $this->appConfig->setAppValueBool('hasCustomDefaultContact', $isCustom);
+ }
+
+ public function defaultContactExists(): bool {
+ try {
+ $folder = $this->appData->getFolder('defaultContact');
+ } catch (NotFoundException $e) {
+ return false;
+ }
+ return $folder->fileExists('defaultContact.vcf');
+ }
+
+ public function createDefaultContact(int $addressBookId): void {
+ if (!$this->isDefaultContactEnabled()) {
+ return;
+ }
+
+ try {
+ $folder = $this->appData->getFolder('defaultContact');
+ $defaultContactFile = $folder->getFile('defaultContact.vcf');
+ $data = $defaultContactFile->getContent();
+ } catch (\Exception $e) {
+ $this->logger->error('Couldn\'t get default contact file', ['exception' => $e]);
+ return;
+ }
+
+ // Make sure the UID is unique
+ $newUid = Uuid::v4()->toRfc4122();
+ $newRev = date('Ymd\THis\Z');
+ $vcard = \Sabre\VObject\Reader::read($data, \Sabre\VObject\Reader::OPTION_FORGIVING);
+ if ($vcard->UID) {
+ $vcard->UID->setValue($newUid);
+ } else {
+ $vcard->add('UID', $newUid);
+ }
+ if ($vcard->REV) {
+ $vcard->REV->setValue($newRev);
+ } else {
+ $vcard->add('REV', $newRev);
+ }
+
+ // Level 3 means that the document is invalid
+ // https://sabre.io/vobject/vcard/#validating-vcard
+ $level3Warnings = array_filter($vcard->validate(), static function ($warning) {
+ return $warning['level'] === 3;
+ });
+
+ if (!empty($level3Warnings)) {
+ $this->logger->error('Default contact is invalid', ['warnings' => $level3Warnings]);
+ return;
+ }
+ try {
+ $this->cardDav->createCard($addressBookId, 'default', $vcard->serialize(), false);
+ } catch (\Exception $e) {
+ $this->logger->error($e->getMessage(), ['exception' => $e]);
+ }
+ }
+}
diff --git a/apps/dav/lib/Service/ExampleEventService.php b/apps/dav/lib/Service/ExampleEventService.php
new file mode 100644
index 00000000000..3b2b07fe416
--- /dev/null
+++ b/apps/dav/lib/Service/ExampleEventService.php
@@ -0,0 +1,205 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Service;
+
+use OCA\DAV\AppInfo\Application;
+use OCA\DAV\CalDAV\CalDavBackend;
+use OCA\DAV\Exception\ExampleEventException;
+use OCA\DAV\Model\ExampleEvent;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\Files\IAppData;
+use OCP\Files\NotFoundException;
+use OCP\Files\NotPermittedException;
+use OCP\IAppConfig;
+use OCP\IL10N;
+use OCP\Security\ISecureRandom;
+use Sabre\VObject\Component\VCalendar;
+use Sabre\VObject\Component\VEvent;
+
+class ExampleEventService {
+ private const FOLDER_NAME = 'example_event';
+ private const FILE_NAME = 'example_event.ics';
+ private const ENABLE_CONFIG_KEY = 'create_example_event';
+
+ public function __construct(
+ private readonly CalDavBackend $calDavBackend,
+ private readonly ISecureRandom $random,
+ private readonly ITimeFactory $time,
+ private readonly IAppData $appData,
+ private readonly IAppConfig $appConfig,
+ private readonly IL10N $l10n,
+ ) {
+ }
+
+ public function createExampleEvent(int $calendarId): void {
+ if (!$this->shouldCreateExampleEvent()) {
+ return;
+ }
+
+ $exampleEvent = $this->getExampleEvent();
+ $uid = $exampleEvent->getUid();
+ $this->calDavBackend->createCalendarObject(
+ $calendarId,
+ "$uid.ics",
+ $exampleEvent->getIcs(),
+ );
+ }
+
+ private function getStartDate(): \DateTimeInterface {
+ return $this->time->now()
+ ->add(new \DateInterval('P7D'))
+ ->setTime(10, 00);
+ }
+
+ private function getEndDate(): \DateTimeInterface {
+ return $this->time->now()
+ ->add(new \DateInterval('P7D'))
+ ->setTime(11, 00);
+ }
+
+ private function getDefaultEvent(string $uid): VCalendar {
+ $defaultDescription = $this->l10n->t(<<<EOF
+Welcome to Nextcloud Calendar!
+
+This is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!
+
+With Nextcloud Calendar, you can:
+- Create, edit, and manage events effortlessly.
+- Create multiple calendars and share them with teammates, friends, or family.
+- Check availability and display your busy times to others.
+- Seamlessly integrate with apps and devices via CalDAV.
+- Customize your experience: schedule recurring events, adjust notifications and other settings.
+EOF);
+
+ $vCalendar = new VCalendar();
+ $props = [
+ 'UID' => $uid,
+ 'DTSTAMP' => $this->time->now(),
+ 'SUMMARY' => $this->l10n->t('Example event - open me!'),
+ 'DTSTART' => $this->getStartDate(),
+ 'DTEND' => $this->getEndDate(),
+ 'DESCRIPTION' => $defaultDescription,
+ ];
+ $vCalendar->add('VEVENT', $props);
+ return $vCalendar;
+ }
+
+ /**
+ * @return string|null The ics of the custom example event or null if no custom event was uploaded.
+ * @throws ExampleEventException If reading the custom ics file fails.
+ */
+ private function getCustomExampleEvent(): ?string {
+ try {
+ $folder = $this->appData->getFolder(self::FOLDER_NAME);
+ $icsFile = $folder->getFile(self::FILE_NAME);
+ } catch (NotFoundException $e) {
+ return null;
+ }
+
+ try {
+ return $icsFile->getContent();
+ } catch (NotFoundException|NotPermittedException $e) {
+ throw new ExampleEventException(
+ 'Failed to read custom example event',
+ 0,
+ $e,
+ );
+ }
+ }
+
+ /**
+ * Get the configured example event or the default one.
+ *
+ * @throws ExampleEventException If loading the custom example event fails.
+ */
+ public function getExampleEvent(): ExampleEvent {
+ $uid = $this->random->generate(32, ISecureRandom::CHAR_ALPHANUMERIC);
+ $customIcs = $this->getCustomExampleEvent();
+ if ($customIcs === null) {
+ return new ExampleEvent($this->getDefaultEvent($uid), $uid);
+ }
+
+ [$vCalendar, $vEvent] = $this->parseEvent($customIcs);
+ $vEvent->UID = $uid;
+ $vEvent->DTSTART = $this->getStartDate();
+ $vEvent->DTEND = $this->getEndDate();
+ $vEvent->remove('ORGANIZER');
+ $vEvent->remove('ATTENDEE');
+ return new ExampleEvent($vCalendar, $uid);
+ }
+
+ /**
+ * @psalm-return list{VCalendar, VEvent} The VCALENDAR document and its VEVENT child component
+ * @throws ExampleEventException If parsing the event fails or if it is invalid.
+ */
+ private function parseEvent(string $ics): array {
+ try {
+ $vCalendar = \Sabre\VObject\Reader::read($ics);
+ if (!($vCalendar instanceof VCalendar)) {
+ throw new ExampleEventException('Custom event does not contain a VCALENDAR component');
+ }
+
+ /** @var VEvent|null $vEvent */
+ $vEvent = $vCalendar->getBaseComponent('VEVENT');
+ if ($vEvent === null) {
+ throw new ExampleEventException('Custom event does not contain a VEVENT component');
+ }
+ } catch (\Exception $e) {
+ throw new ExampleEventException('Failed to parse custom event: ' . $e->getMessage(), 0, $e);
+ }
+
+ return [$vCalendar, $vEvent];
+ }
+
+ public function saveCustomExampleEvent(string $ics): void {
+ // Parse and validate the event before attempting to save it to prevent run time errors
+ $this->parseEvent($ics);
+
+ try {
+ $folder = $this->appData->getFolder(self::FOLDER_NAME);
+ } catch (NotFoundException $e) {
+ $folder = $this->appData->newFolder(self::FOLDER_NAME);
+ }
+
+ try {
+ $existingFile = $folder->getFile(self::FILE_NAME);
+ $existingFile->putContent($ics);
+ } catch (NotFoundException $e) {
+ $folder->newFile(self::FILE_NAME, $ics);
+ }
+ }
+
+ public function deleteCustomExampleEvent(): void {
+ try {
+ $folder = $this->appData->getFolder(self::FOLDER_NAME);
+ $file = $folder->getFile(self::FILE_NAME);
+ } catch (NotFoundException $e) {
+ return;
+ }
+
+ $file->delete();
+ }
+
+ public function hasCustomExampleEvent(): bool {
+ try {
+ return $this->getCustomExampleEvent() !== null;
+ } catch (ExampleEventException $e) {
+ return false;
+ }
+ }
+
+ public function setCreateExampleEvent(bool $enable): void {
+ $this->appConfig->setValueBool(Application::APP_ID, self::ENABLE_CONFIG_KEY, $enable);
+ }
+
+ public function shouldCreateExampleEvent(): bool {
+ return $this->appConfig->getValueBool(Application::APP_ID, self::ENABLE_CONFIG_KEY, true);
+ }
+}
diff --git a/apps/dav/lib/Settings/ExampleContentSettings.php b/apps/dav/lib/Settings/ExampleContentSettings.php
index f5607b6a31b..7b6f9b03a3a 100644
--- a/apps/dav/lib/Settings/ExampleContentSettings.php
+++ b/apps/dav/lib/Settings/ExampleContentSettings.php
@@ -9,28 +9,56 @@ declare(strict_types=1);
namespace OCA\DAV\Settings;
use OCA\DAV\AppInfo\Application;
+use OCA\DAV\Service\ExampleContactService;
+use OCA\DAV\Service\ExampleEventService;
use OCP\App\IAppManager;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Services\IAppConfig;
use OCP\AppFramework\Services\IInitialState;
-use OCP\IConfig;
use OCP\Settings\ISettings;
class ExampleContentSettings implements ISettings {
-
public function __construct(
- private IConfig $config,
- private IInitialState $initialState,
- private IAppManager $appManager,
+ private readonly IAppConfig $appConfig,
+ private readonly IInitialState $initialState,
+ private readonly IAppManager $appManager,
+ private readonly ExampleEventService $exampleEventService,
+ private readonly ExampleContactService $exampleContactService,
) {
}
public function getForm(): TemplateResponse {
- $enableDefaultContact = $this->config->getAppValue(Application::APP_ID, 'enableDefaultContact', 'no');
- $this->initialState->provideInitialState('enableDefaultContact', $enableDefaultContact);
+ $calendarEnabled = $this->appManager->isEnabledForUser('calendar');
+ $contactsEnabled = $this->appManager->isEnabledForUser('contacts');
+ $this->initialState->provideInitialState('calendarEnabled', $calendarEnabled);
+ $this->initialState->provideInitialState('contactsEnabled', $contactsEnabled);
+
+ if ($calendarEnabled) {
+ $enableDefaultEvent = $this->exampleEventService->shouldCreateExampleEvent();
+ $this->initialState->provideInitialState('create_example_event', $enableDefaultEvent);
+ $this->initialState->provideInitialState(
+ 'has_custom_example_event',
+ $this->exampleEventService->hasCustomExampleEvent(),
+ );
+ }
+
+ if ($contactsEnabled) {
+ $this->initialState->provideInitialState(
+ 'enableDefaultContact',
+ $this->exampleContactService->isDefaultContactEnabled(),
+ );
+ $this->initialState->provideInitialState(
+ 'hasCustomDefaultContact',
+ $this->appConfig->getAppValueBool('hasCustomDefaultContact'),
+ );
+ }
+
return new TemplateResponse(Application::APP_ID, 'settings-example-content');
}
+
public function getSection(): ?string {
- if (!$this->appManager->isEnabledForUser('contacts')) {
+ if (!$this->appManager->isEnabledForUser('contacts')
+ && !$this->appManager->isEnabledForUser('calendar')) {
return null;
}
@@ -40,5 +68,4 @@ class ExampleContentSettings implements ISettings {
public function getPriority(): int {
return 10;
}
-
}
diff --git a/apps/dav/lib/Upload/CleanupService.php b/apps/dav/lib/Upload/CleanupService.php
index 36b75280504..ffa6bad533c 100644
--- a/apps/dav/lib/Upload/CleanupService.php
+++ b/apps/dav/lib/Upload/CleanupService.php
@@ -10,20 +10,18 @@ namespace OCA\DAV\Upload;
use OCA\DAV\BackgroundJob\UploadCleanup;
use OCP\BackgroundJob\IJobList;
-use OCP\IUserSession;
class CleanupService {
public function __construct(
- private IUserSession $userSession,
private IJobList $jobList,
) {
}
- public function addJob(string $folder) {
- $this->jobList->add(UploadCleanup::class, ['uid' => $this->userSession->getUser()->getUID(), 'folder' => $folder]);
+ public function addJob(string $uid, string $folder) {
+ $this->jobList->add(UploadCleanup::class, ['uid' => $uid, 'folder' => $folder]);
}
- public function removeJob(string $folder) {
- $this->jobList->remove(UploadCleanup::class, ['uid' => $this->userSession->getUser()->getUID(), 'folder' => $folder]);
+ public function removeJob(string $uid, string $folder) {
+ $this->jobList->remove(UploadCleanup::class, ['uid' => $uid, 'folder' => $folder]);
}
}
diff --git a/apps/dav/lib/Upload/RootCollection.php b/apps/dav/lib/Upload/RootCollection.php
index 9ea2592702b..cd7ab7f5e0a 100644
--- a/apps/dav/lib/Upload/RootCollection.php
+++ b/apps/dav/lib/Upload/RootCollection.php
@@ -11,6 +11,7 @@ namespace OCA\DAV\Upload;
use OCP\Files\IRootFolder;
use OCP\IUserSession;
+use OCP\Share\IManager;
use Sabre\DAVACL\AbstractPrincipalCollection;
use Sabre\DAVACL\PrincipalBackend;
@@ -22,6 +23,7 @@ class RootCollection extends AbstractPrincipalCollection {
private CleanupService $cleanupService,
private IRootFolder $rootFolder,
private IUserSession $userSession,
+ private IManager $shareManager,
) {
parent::__construct($principalBackend, $principalPrefix);
}
@@ -30,7 +32,13 @@ class RootCollection extends AbstractPrincipalCollection {
* @inheritdoc
*/
public function getChildForPrincipal(array $principalInfo): UploadHome {
- return new UploadHome($principalInfo, $this->cleanupService, $this->rootFolder, $this->userSession);
+ return new UploadHome(
+ $principalInfo,
+ $this->cleanupService,
+ $this->rootFolder,
+ $this->userSession,
+ $this->shareManager,
+ );
}
/**
diff --git a/apps/dav/lib/Upload/UploadAutoMkcolPlugin.php b/apps/dav/lib/Upload/UploadAutoMkcolPlugin.php
new file mode 100644
index 00000000000..a7030ba1133
--- /dev/null
+++ b/apps/dav/lib/Upload/UploadAutoMkcolPlugin.php
@@ -0,0 +1,68 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Upload;
+
+use Sabre\DAV\Exception\NotFound;
+use Sabre\DAV\ICollection;
+use Sabre\DAV\Server;
+use Sabre\DAV\ServerPlugin;
+use Sabre\HTTP\RequestInterface;
+use Sabre\HTTP\ResponseInterface;
+use function Sabre\Uri\split as uriSplit;
+
+/**
+ * Class that allows automatically creating non-existing collections on file
+ * upload.
+ *
+ * Since this functionality is not WebDAV compliant, it needs a special
+ * header to be activated.
+ */
+class UploadAutoMkcolPlugin extends ServerPlugin {
+
+ private Server $server;
+
+ public function initialize(Server $server): void {
+ $server->on('beforeMethod:PUT', [$this, 'beforeMethod']);
+ $this->server = $server;
+ }
+
+ /**
+ * @throws NotFound a node expected to exist cannot be found
+ */
+ public function beforeMethod(RequestInterface $request, ResponseInterface $response): bool {
+ if ($request->getHeader('X-NC-WebDAV-Auto-Mkcol') !== '1') {
+ return true;
+ }
+
+ [$path,] = uriSplit($request->getPath());
+
+ if ($this->server->tree->nodeExists($path)) {
+ return true;
+ }
+
+ $parts = explode('/', trim($path, '/'));
+ $rootPath = array_shift($parts);
+ $node = $this->server->tree->getNodeForPath('/' . $rootPath);
+
+ if (!($node instanceof ICollection)) {
+ // the root node is not a collection, let SabreDAV handle it
+ return true;
+ }
+
+ foreach ($parts as $part) {
+ if (!$node->childExists($part)) {
+ $node->createDirectory($part);
+ }
+
+ $node = $node->getChild($part);
+ }
+
+ return true;
+ }
+}
diff --git a/apps/dav/lib/Upload/UploadFolder.php b/apps/dav/lib/Upload/UploadFolder.php
index 57e95d2b17b..8890d472f87 100644
--- a/apps/dav/lib/Upload/UploadFolder.php
+++ b/apps/dav/lib/Upload/UploadFolder.php
@@ -21,6 +21,7 @@ class UploadFolder implements ICollection {
private Directory $node,
private CleanupService $cleanupService,
private IStorage $storage,
+ private string $uid,
) {
}
@@ -89,7 +90,7 @@ class UploadFolder implements ICollection {
$this->node->delete();
// Background cleanup job is not needed anymore
- $this->cleanupService->removeJob($this->getName());
+ $this->cleanupService->removeJob($this->uid, $this->getName());
}
public function getName() {
diff --git a/apps/dav/lib/Upload/UploadHome.php b/apps/dav/lib/Upload/UploadHome.php
index a6551d4d079..4042f1c4101 100644
--- a/apps/dav/lib/Upload/UploadHome.php
+++ b/apps/dav/lib/Upload/UploadHome.php
@@ -17,6 +17,7 @@ use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\ICollection;
class UploadHome implements ICollection {
+ private string $uid;
private ?Folder $uploadFolder = null;
public function __construct(
@@ -24,7 +25,19 @@ class UploadHome implements ICollection {
private readonly CleanupService $cleanupService,
private readonly IRootFolder $rootFolder,
private readonly IUserSession $userSession,
+ private readonly \OCP\Share\IManager $shareManager,
) {
+ [$prefix, $name] = \Sabre\Uri\split($principalInfo['uri']);
+ if ($prefix === 'principals/shares') {
+ $this->uid = $this->shareManager->getShareByToken($name)->getShareOwner();
+ } else {
+ $user = $this->userSession->getUser();
+ if (!$user) {
+ throw new Forbidden('Not logged in');
+ }
+
+ $this->uid = $user->getUID();
+ }
}
public function createFile($name, $data = null) {
@@ -35,16 +48,26 @@ class UploadHome implements ICollection {
$this->impl()->createDirectory($name);
// Add a cleanup job
- $this->cleanupService->addJob($name);
+ $this->cleanupService->addJob($this->uid, $name);
}
public function getChild($name): UploadFolder {
- return new UploadFolder($this->impl()->getChild($name), $this->cleanupService, $this->getStorage());
+ return new UploadFolder(
+ $this->impl()->getChild($name),
+ $this->cleanupService,
+ $this->getStorage(),
+ $this->uid,
+ );
}
public function getChildren(): array {
return array_map(function ($node) {
- return new UploadFolder($node, $this->cleanupService, $this->getStorage());
+ return new UploadFolder(
+ $node,
+ $this->cleanupService,
+ $this->getStorage(),
+ $this->uid,
+ );
}, $this->impl()->getChildren());
}
@@ -71,11 +94,7 @@ class UploadHome implements ICollection {
private function getUploadFolder(): Folder {
if ($this->uploadFolder === null) {
- $user = $this->userSession->getUser();
- if (!$user) {
- throw new Forbidden('Not logged in');
- }
- $path = '/' . $user->getUID() . '/uploads';
+ $path = '/' . $this->uid . '/uploads';
try {
$folder = $this->rootFolder->get($path);
if (!$folder instanceof Folder) {
diff --git a/apps/dav/openapi.json b/apps/dav/openapi.json
index 449ae09dff1..27904636def 100644
--- a/apps/dav/openapi.json
+++ b/apps/dav/openapi.json
@@ -29,12 +29,16 @@
"dav": {
"type": "object",
"required": [
- "chunking"
+ "chunking",
+ "public_shares_chunking"
],
"properties": {
"chunking": {
"type": "string"
},
+ "public_shares_chunking": {
+ "type": "boolean"
+ },
"bulkupload": {
"type": "string"
},
@@ -395,7 +399,8 @@
"description": "location/URL to filter by",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
diff --git a/apps/dav/src/views/ExampleContactSettings.vue b/apps/dav/src/components/ExampleContactSettings.vue
index d4d1c7d31d0..cdfdc130189 100644
--- a/apps/dav/src/views/ExampleContactSettings.vue
+++ b/apps/dav/src/components/ExampleContactSettings.vue
@@ -4,35 +4,34 @@
-->
<template>
- <NcSettingsSection id="exmaple-content"
- :name="$t('dav', 'Example Content')"
- class="example-content-setting"
- :description="$t('dav', 'Set example content to be created on new user first login.')">
- <div class="example-content-setting__contacts">
- <input id="enable-default-contact"
- v-model="enableDefaultContact"
- type="checkbox"
- class="checkbox"
- @change="updateEnableDefaultContact">
- <label for="enable-default-contact"> {{ $t('dav',"Default contact is added to the user's own address book on user's first login.") }} </label>
- <div v-if="enableDefaultContact" class="example-content-setting__contacts__buttons">
- <NcButton type="primary"
- class="example-content-setting__contacts__buttons__button"
- @click="toggleModal">
- <template #icon>
- <IconUpload :size="20" />
- </template>
- {{ $t('dav', 'Import contact') }}
- </NcButton>
- <NcButton type="secondary"
- class="example-content-setting__contacts__buttons__button"
- @click="resetContact">
- <template #icon>
- <IconRestore :size="20" />
- </template>
- {{ $t('dav', 'Reset to default contact') }}
- </NcButton>
- </div>
+ <div class="example-contact-settings">
+ <NcCheckboxRadioSwitch :checked="enableDefaultContact"
+ type="switch"
+ @update:model-value="updateEnableDefaultContact">
+ {{ $t('dav', "Add example contact to user's address book when they first log in") }}
+ </NcCheckboxRadioSwitch>
+ <div v-if="enableDefaultContact" class="example-contact-settings__buttons">
+ <ExampleContentDownloadButton :href="downloadUrl">
+ <template #icon>
+ <IconAccount :size="20" />
+ </template>
+ example_contact.vcf
+ </ExampleContentDownloadButton>
+ <NcButton type="secondary"
+ @click="toggleModal">
+ <template #icon>
+ <IconUpload :size="20" />
+ </template>
+ {{ $t('dav', 'Import contact') }}
+ </NcButton>
+ <NcButton v-if="hasCustomDefaultContact"
+ type="tertiary"
+ @click="resetContact">
+ <template #icon>
+ <IconRestore :size="20" />
+ </template>
+ {{ $t('dav', 'Reset to default') }}
+ </NcButton>
</div>
<NcDialog :open.sync="isModalOpen"
:name="$t('dav', 'Import contacts')"
@@ -48,33 +47,40 @@
accept=".vcf"
class="hidden-visually"
@change="processFile">
- </NcSettingsSection>
+ </div>
</template>
<script>
import axios from '@nextcloud/axios'
import { generateUrl } from '@nextcloud/router'
import { loadState } from '@nextcloud/initial-state'
-import { NcDialog, NcButton, NcSettingsSection } from '@nextcloud/vue'
+import { NcDialog, NcButton, NcCheckboxRadioSwitch } from '@nextcloud/vue'
import { showError, showSuccess } from '@nextcloud/dialogs'
import IconUpload from 'vue-material-design-icons/Upload.vue'
import IconRestore from 'vue-material-design-icons/Restore.vue'
+import IconAccount from 'vue-material-design-icons/Account.vue'
import IconCancel from '@mdi/svg/svg/cancel.svg?raw'
import IconCheck from '@mdi/svg/svg/check.svg?raw'
+import logger from '../service/logger.js'
+import ExampleContentDownloadButton from './ExampleContentDownloadButton.vue'
-const enableDefaultContact = loadState('dav', 'enableDefaultContact') === 'yes'
+const enableDefaultContact = loadState('dav', 'enableDefaultContact')
+const hasCustomDefaultContact = loadState('dav', 'hasCustomDefaultContact')
export default {
name: 'ExampleContactSettings',
components: {
NcDialog,
NcButton,
- NcSettingsSection,
+ NcCheckboxRadioSwitch,
IconUpload,
IconRestore,
+ IconAccount,
+ ExampleContentDownloadButton,
},
data() {
return {
enableDefaultContact,
+ hasCustomDefaultContact,
isModalOpen: false,
loading: false,
buttons: [
@@ -92,12 +98,18 @@ export default {
],
}
},
+ computed: {
+ downloadUrl() {
+ return generateUrl('/apps/dav/api/defaultcontact/contact')
+ },
+ },
methods: {
updateEnableDefaultContact() {
axios.put(generateUrl('apps/dav/api/defaultcontact/config'), {
- allow: this.enableDefaultContact ? 'yes' : 'no',
- }).catch(() => {
+ allow: !this.enableDefaultContact,
+ }).then(() => {
this.enableDefaultContact = !this.enableDefaultContact
+ }).catch(() => {
showError(this.$t('dav', 'Error while saving settings'))
})
},
@@ -111,10 +123,11 @@ export default {
this.loading = true
axios.put(generateUrl('/apps/dav/api/defaultcontact/contact'))
.then(() => {
+ this.hasCustomDefaultContact = false
showSuccess(this.$t('dav', 'Contact reset successfully'))
})
.catch((error) => {
- console.error('Error importing contact:', error)
+ logger.error('Error importing contact:', { error })
showError(this.$t('dav', 'Error while resetting contact'))
})
.finally(() => {
@@ -131,9 +144,10 @@ export default {
this.isModalOpen = false
try {
await axios.put(generateUrl('/apps/dav/api/defaultcontact/contact'), { contactData: reader.result })
+ this.hasCustomDefaultContact = true
showSuccess(this.$t('dav', 'Contact imported successfully'))
} catch (error) {
- console.error('Error importing contact:', error)
+ logger.error('Error importing contact:', { error })
showError(this.$t('dav', 'Error while importing contact'))
} finally {
this.loading = false
@@ -146,15 +160,13 @@ export default {
}
</script>
<style lang="scss" scoped>
-.example-content-setting{
- &__contacts{
- &__buttons{
- margin-top: 1rem;
- display: flex;
- &__button{
- margin-inline-end: 5px;
- }
- }
+.example-contact-settings {
+ margin-block-start: 2rem;
+
+ &__buttons {
+ display: flex;
+ gap: calc(var(--default-grid-baseline) * 2);
+ margin-top: calc(var(--default-grid-baseline) * 2);
}
}
</style>
diff --git a/apps/dav/src/components/ExampleContentDownloadButton.vue b/apps/dav/src/components/ExampleContentDownloadButton.vue
new file mode 100644
index 00000000000..d3ee793eddc
--- /dev/null
+++ b/apps/dav/src/components/ExampleContentDownloadButton.vue
@@ -0,0 +1,57 @@
+<!--
+ - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+ -->
+
+<template>
+ <NcButton type="tertiary" :href="href">
+ <template #icon>
+ <slot name="icon" />
+ </template>
+ <div class="download-button">
+ <span class="download-button__label">
+ <slot name="default" />
+ </span>
+ <IconDownload class="download-button__icon"
+ :size="20" />
+ </div>
+ </NcButton>
+</template>
+
+<script>
+import { NcButton } from '@nextcloud/vue'
+import IconDownload from 'vue-material-design-icons/Download.vue'
+
+export default {
+ name: 'ExampleContentDownloadButton',
+ components: {
+ NcButton,
+ IconDownload
+ },
+ props: {
+ href: {
+ type: String,
+ required: true,
+ }
+ },
+}
+</script>
+
+<style lang="scss" scoped>
+.download-button {
+ display: flex;
+ max-width: 200px;
+
+ &__label {
+ font-weight: initial;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+
+ &__icon {
+ margin-top: 2px;
+ margin-inline-start: var(--default-grid-baseline);
+ }
+}
+</style>
diff --git a/apps/dav/src/components/ExampleEventSettings.vue b/apps/dav/src/components/ExampleEventSettings.vue
new file mode 100644
index 00000000000..c7a90b71a4a
--- /dev/null
+++ b/apps/dav/src/components/ExampleEventSettings.vue
@@ -0,0 +1,217 @@
+<!--
+ - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+ -->
+
+<template>
+ <div class="example-event-settings">
+ <NcCheckboxRadioSwitch :checked="createExampleEvent"
+ :disabled="savingConfig"
+ type="switch"
+ @update:model-value="updateCreateExampleEvent">
+ {{ t('dav', "Add example event to user's calendar when they first log in") }}
+ </NcCheckboxRadioSwitch>
+ <div v-if="createExampleEvent"
+ class="example-event-settings__buttons">
+ <ExampleContentDownloadButton :href="downloadUrl">
+ <template #icon>
+ <IconCalendarBlank :size="20" />
+ </template>
+ example_event.ics
+ </ExampleContentDownloadButton>
+ <NcButton type="secondary"
+ @click="showImportModal = true">
+ <template #icon>
+ <IconUpload :size="20" />
+ </template>
+ {{ t('dav', 'Import calendar event') }}
+ </NcButton>
+ <NcButton v-if="hasCustomEvent"
+ type="tertiary"
+ :disabled="deleting"
+ @click="deleteCustomEvent">
+ <template #icon>
+ <IconRestore :size="20" />
+ </template>
+ {{ t('dav', 'Reset to default') }}
+ </NcButton>
+ </div>
+ <NcDialog :open.sync="showImportModal"
+ :name="t('dav', 'Import calendar event')">
+ <div class="import-event-modal">
+ <p>
+ {{ t('dav', 'Uploading a new event will overwrite the existing one.') }}
+ </p>
+ <input ref="event-file"
+ :disabled="uploading"
+ type="file"
+ accept=".ics,text/calendar"
+ class="import-event-modal__file-picker"
+ @change="selectFile" />
+ <div class="import-event-modal__buttons">
+ <NcButton :disabled="uploading || !selectedFile"
+ type="primary"
+ @click="uploadCustomEvent()">
+ <template #icon>
+ <IconUpload :size="20" />
+ </template>
+ {{ t('dav', 'Upload event') }}
+ </NcButton>
+ </div>
+ </div>
+ </NcDialog>
+ </div>
+</template>
+
+<script>
+import { NcButton, NcCheckboxRadioSwitch, NcDialog } from '@nextcloud/vue'
+import { loadState } from '@nextcloud/initial-state'
+import IconCalendarBlank from 'vue-material-design-icons/CalendarBlank.vue'
+import IconUpload from 'vue-material-design-icons/Upload.vue'
+import IconRestore from 'vue-material-design-icons/Restore.vue'
+import * as ExampleEventService from '../service/ExampleEventService.js'
+import { showError, showSuccess } from '@nextcloud/dialogs'
+import logger from '../service/logger.js'
+import { generateUrl } from '@nextcloud/router'
+import ExampleContentDownloadButton from './ExampleContentDownloadButton.vue'
+
+export default {
+ name: 'ExampleEventSettings',
+ components: {
+ NcButton,
+ NcCheckboxRadioSwitch,
+ NcDialog,
+ IconCalendarBlank,
+ IconUpload,
+ IconRestore,
+ ExampleContentDownloadButton,
+ },
+ data() {
+ return {
+ createExampleEvent: loadState('dav', 'create_example_event', false),
+ hasCustomEvent: loadState('dav', 'has_custom_example_event', false),
+ showImportModal: false,
+ uploading: false,
+ deleting: false,
+ savingConfig: false,
+ selectedFile: undefined,
+ }
+ },
+ computed: {
+ downloadUrl() {
+ return generateUrl('/apps/dav/api/exampleEvent/event')
+ },
+ },
+ methods: {
+ selectFile() {
+ this.selectedFile = this.$refs['event-file']?.files[0]
+ },
+ async updateCreateExampleEvent() {
+ this.savingConfig = true
+
+ const enable = !this.createExampleEvent
+ try {
+ await ExampleEventService.setCreateExampleEvent(enable)
+ } catch (error) {
+ showError(t('dav', 'Failed to save example event creation setting'))
+ logger.error('Failed to save example event creation setting', {
+ error,
+ enable,
+ })
+ } finally {
+ this.savingConfig = false
+ }
+
+ this.createExampleEvent = enable
+ },
+ uploadCustomEvent() {
+ if (!this.selectedFile) {
+ return
+ }
+
+ this.uploading = true
+
+ const reader = new FileReader()
+ reader.addEventListener('load', async () => {
+ const ics = reader.result
+
+ try {
+ await ExampleEventService.uploadExampleEvent(ics)
+ } catch (error) {
+ showError(t('dav', 'Failed to upload the example event'))
+ logger.error('Failed to upload example ICS', {
+ error,
+ ics,
+ })
+ return
+ } finally {
+ this.uploading = false
+ }
+
+ showSuccess(t('dav', 'Custom example event was saved successfully'))
+ this.showImportModal = false
+ this.hasCustomEvent = true
+ })
+ reader.readAsText(this.selectedFile)
+ },
+ async deleteCustomEvent() {
+ this.deleting = true
+
+ try {
+ await ExampleEventService.deleteExampleEvent()
+ } catch (error) {
+ showError(t('dav', 'Failed to delete the custom example event'))
+ logger.error('Failed to delete the custom example event', {
+ error,
+ })
+ return
+ } finally {
+ this.deleting = false
+ }
+
+ showSuccess(t('dav', 'Custom example event was deleted successfully'))
+ this.hasCustomEvent = false
+ },
+ },
+}
+</script>
+
+<style lang="scss" scoped>
+.example-event-settings {
+ margin-block: 2rem;
+
+ &__buttons {
+ display: flex;
+ gap: calc(var(--default-grid-baseline) * 2);
+ margin-top: calc(var(--default-grid-baseline) * 2);
+
+ &__download-link {
+ display: flex;
+ max-width: 100px;
+
+ &__label {
+ text-decoration: underline;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+ }
+ }
+}
+
+.import-event-modal {
+ display: flex;
+ flex-direction: column;
+ gap: calc(var(--default-grid-baseline) * 2);
+ padding: calc(var(--default-grid-baseline) * 2);
+
+ &__file-picker {
+ width: 100%;
+ }
+
+ &__buttons {
+ display: flex;
+ justify-content: flex-end;
+ }
+}
+</style>
diff --git a/apps/dav/src/service/ExampleEventService.js b/apps/dav/src/service/ExampleEventService.js
new file mode 100644
index 00000000000..a39e3641bd9
--- /dev/null
+++ b/apps/dav/src/service/ExampleEventService.js
@@ -0,0 +1,43 @@
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import { generateUrl } from '@nextcloud/router'
+import axios from '@nextcloud/axios'
+
+/**
+ * Configure the creation of example events on a user's first login.
+ *
+ * @param {boolean} enable Whether to enable or disable the feature.
+ * @return {Promise<void>}
+ */
+export async function setCreateExampleEvent(enable) {
+ const url = generateUrl('/apps/dav/api/exampleEvent/enable')
+ await axios.post(url, {
+ enable,
+ })
+}
+
+/**
+ * Upload a custom example event.
+ *
+ * @param {string} ics The ICS data of the event.
+ * @return {Promise<void>}
+ */
+export async function uploadExampleEvent(ics) {
+ const url = generateUrl('/apps/dav/api/exampleEvent/event')
+ await axios.post(url, {
+ ics,
+ })
+}
+
+/**
+ * Delete a previously uploaded custom example event.
+ *
+ * @return {Promise<void>}
+ */
+export async function deleteExampleEvent() {
+ const url = generateUrl('/apps/dav/api/exampleEvent/event')
+ await axios.delete(url)
+}
diff --git a/apps/dav/src/settings-example-content.js b/apps/dav/src/settings-example-content.js
index f1374027bf3..ca0291ace4f 100644
--- a/apps/dav/src/settings-example-content.js
+++ b/apps/dav/src/settings-example-content.js
@@ -4,10 +4,15 @@
*/
import Vue from 'vue'
import { translate } from '@nextcloud/l10n'
-import ExampleContactSettings from './views/ExampleContactSettings.vue'
+import ExampleContentSettingsSection from './views/ExampleContentSettingsSection.vue'
-Vue.prototype.$t = translate
+Vue.mixin({
+ methods: {
+ t: translate,
+ $t: translate,
+ }
+})
-const View = Vue.extend(ExampleContactSettings);
+const View = Vue.extend(ExampleContentSettingsSection);
(new View({})).$mount('#settings-example-content')
diff --git a/apps/dav/src/views/ExampleContentSettingsSection.vue b/apps/dav/src/views/ExampleContentSettingsSection.vue
new file mode 100644
index 00000000000..5e65a1ba3b4
--- /dev/null
+++ b/apps/dav/src/views/ExampleContentSettingsSection.vue
@@ -0,0 +1,38 @@
+<!--
+ - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+
+<template>
+ <NcSettingsSection id="example-content"
+ :name="$t('dav', 'Example content')"
+ class="example-content-setting"
+ :description="$t('dav', 'Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.')">
+ <ExampleContactSettings v-if="hasContactsApp" />
+ <ExampleEventSettings v-if="hasCalendarApp" />
+ </NcSettingsSection>
+</template>
+
+<script>
+import { loadState } from '@nextcloud/initial-state'
+import { NcSettingsSection } from '@nextcloud/vue'
+import ExampleEventSettings from '../components/ExampleEventSettings.vue'
+import ExampleContactSettings from '../components/ExampleContactSettings.vue'
+
+export default {
+ name: 'ExampleContentSettingsSection',
+ components: {
+ NcSettingsSection,
+ ExampleContactSettings,
+ ExampleEventSettings,
+ },
+ computed: {
+ hasContactsApp() {
+ return loadState('dav', 'contactsEnabled')
+ },
+ hasCalendarApp() {
+ return loadState('dav', 'calendarEnabled')
+ },
+ }
+}
+</script>
diff --git a/apps/dav/templates/settings-example-content.php b/apps/dav/templates/settings-example-content.php
index b2b051d745d..7c6f15bd82b 100644
--- a/apps/dav/templates/settings-example-content.php
+++ b/apps/dav/templates/settings-example-content.php
@@ -4,7 +4,7 @@
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-script('dav', 'settings-example-content');
+\OCP\Util::addScript('dav', 'settings-example-content', 'core');
?>
diff --git a/apps/dav/tests/integration/DAV/Sharing/CalDavSharingBackendTest.php b/apps/dav/tests/integration/DAV/Sharing/CalDavSharingBackendTest.php
new file mode 100644
index 00000000000..be06e8e4d4b
--- /dev/null
+++ b/apps/dav/tests/integration/DAV/Sharing/CalDavSharingBackendTest.php
@@ -0,0 +1,251 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Tests\integration\DAV\Sharing;
+
+use OC\Memcache\NullCache;
+use OCA\DAV\CalDAV\Calendar;
+use OCA\DAV\CalDAV\Sharing\Service;
+use OCA\DAV\Connector\Sabre\Principal;
+use OCA\DAV\DAV\Sharing\Backend;
+use OCA\DAV\DAV\Sharing\SharingMapper;
+use OCA\DAV\DAV\Sharing\SharingService;
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\ICacheFactory;
+use OCP\IDBConnection;
+use OCP\IGroupManager;
+use OCP\IUserManager;
+use OCP\Server;
+use Psr\Log\LoggerInterface;
+use Test\TestCase;
+
+/**
+ * @group DB
+ */
+class CalDavSharingBackendTest extends TestCase {
+
+ private IDBConnection $db;
+ private IUserManager $userManager;
+ private IGroupManager $groupManager;
+ private Principal $principalBackend;
+ private ICacheFactory $cacheFactory;
+ private LoggerInterface $logger;
+ private SharingMapper $sharingMapper;
+ private SharingService $sharingService;
+ private Backend $sharingBackend;
+
+ private $resourceIds = [10001];
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->db = Server::get(IDBConnection::class);
+
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->groupManager = $this->createMock(IGroupManager::class);
+ $this->principalBackend = $this->createMock(Principal::class);
+ $this->cacheFactory = $this->createMock(ICacheFactory::class);
+ $this->cacheFactory->method('createInMemory')
+ ->willReturn(new NullCache());
+ $this->logger = new \Psr\Log\NullLogger();
+
+ $this->sharingMapper = new SharingMapper($this->db);
+ $this->sharingService = new Service($this->sharingMapper);
+
+ $this->sharingBackend = new \OCA\DAV\CalDAV\Sharing\Backend(
+ $this->userManager,
+ $this->groupManager,
+ $this->principalBackend,
+ $this->cacheFactory,
+ $this->sharingService,
+ $this->logger
+ );
+
+ $this->removeFixtures();
+ }
+
+ protected function tearDown(): void {
+ $this->removeFixtures();
+ }
+
+ protected function removeFixtures(): void {
+ $qb = $this->db->getQueryBuilder();
+ $qb->delete('dav_shares')
+ ->where($qb->expr()->in('resourceid', $qb->createNamedParameter($this->resourceIds, IQueryBuilder::PARAM_INT_ARRAY)));
+ $qb->executeStatement();
+ }
+
+ public function testShareCalendarWithGroup(): void {
+ $calendar = $this->createMock(Calendar::class);
+ $calendar->method('getResourceId')
+ ->willReturn(10001);
+ $calendar->method('getOwner')
+ ->willReturn('principals/users/admin');
+
+ $this->principalBackend->method('findByUri')
+ ->willReturn('principals/groups/alice_bob');
+
+ $this->groupManager->method('groupExists')
+ ->willReturn(true);
+
+ $this->sharingBackend->updateShares(
+ $calendar,
+ [['href' => 'principals/groups/alice_bob']],
+ [],
+ []
+ );
+
+ $this->assertCount(1, $this->sharingService->getShares(10001));
+ }
+
+ public function testUnshareCalendarFromGroup(): void {
+ $calendar = $this->createMock(Calendar::class);
+ $calendar->method('getResourceId')
+ ->willReturn(10001);
+ $calendar->method('getOwner')
+ ->willReturn('principals/users/admin');
+
+ $this->principalBackend->method('findByUri')
+ ->willReturn('principals/groups/alice_bob');
+
+ $this->groupManager->method('groupExists')
+ ->willReturn(true);
+
+ $this->sharingBackend->updateShares(
+ shareable: $calendar,
+ add: [['href' => 'principals/groups/alice_bob']],
+ remove: [],
+ );
+
+ $this->assertCount(1, $this->sharingService->getShares(10001));
+
+ $this->sharingBackend->updateShares(
+ shareable: $calendar,
+ add: [],
+ remove: ['principals/groups/alice_bob'],
+ );
+
+ $this->assertCount(0, $this->sharingService->getShares(10001));
+ }
+
+ public function testShareCalendarWithGroupAndUnshareAsUser(): void {
+ $calendar = $this->createMock(Calendar::class);
+ $calendar->method('getResourceId')
+ ->willReturn(10001);
+ $calendar->method('getOwner')
+ ->willReturn('principals/users/admin');
+
+ $this->principalBackend->method('findByUri')
+ ->willReturnMap([
+ ['principals/groups/alice_bob', '', 'principals/groups/alice_bob'],
+ ['principals/users/bob', '', 'principals/users/bob'],
+ ]);
+ $this->principalBackend->method('getGroupMembership')
+ ->willReturn([
+ 'principals/groups/alice_bob',
+ ]);
+ $this->principalBackend->method('getCircleMembership')
+ ->willReturn([]);
+
+ $this->groupManager->method('groupExists')
+ ->willReturn(true);
+
+ /*
+ * Owner is sharing the calendar with a group.
+ */
+ $this->sharingBackend->updateShares(
+ shareable: $calendar,
+ add: [['href' => 'principals/groups/alice_bob']],
+ remove: [],
+ );
+
+ $this->assertCount(1, $this->sharingService->getShares(10001));
+
+ /*
+ * Member of the group unshares the calendar.
+ */
+ $this->sharingBackend->unshare(
+ shareable: $calendar,
+ principalUri: 'principals/users/bob'
+ );
+
+ $this->assertCount(1, $this->sharingService->getShares(10001));
+ $this->assertCount(1, $this->sharingService->getUnshares(10001));
+ }
+
+ /**
+ * Tests the functionality of sharing a calendar with a user, then with a group (that includes the shared user),
+ * and subsequently unsharing it from the individual user. Verifies that the unshare operation correctly removes the specific user share
+ * without creating an additional unshare entry.
+ */
+ public function testShareCalendarWithUserThenGroupThenUnshareUser(): void {
+ $calendar = $this->createMock(Calendar::class);
+ $calendar->method('getResourceId')
+ ->willReturn(10001);
+ $calendar->method('getOwner')
+ ->willReturn('principals/users/admin');
+
+ $this->principalBackend->method('findByUri')
+ ->willReturnMap([
+ ['principals/groups/alice_bob', '', 'principals/groups/alice_bob'],
+ ['principals/users/bob', '', 'principals/users/bob'],
+ ]);
+ $this->principalBackend->method('getGroupMembership')
+ ->willReturn([
+ 'principals/groups/alice_bob',
+ ]);
+ $this->principalBackend->method('getCircleMembership')
+ ->willReturn([]);
+
+ $this->userManager->method('userExists')
+ ->willReturn(true);
+ $this->groupManager->method('groupExists')
+ ->willReturn(true);
+
+ /*
+ * Step 1) The owner shares the calendar with a user.
+ */
+ $this->sharingBackend->updateShares(
+ shareable: $calendar,
+ add: [['href' => 'principals/users/bob']],
+ remove: [],
+ );
+
+ $this->assertCount(1, $this->sharingService->getShares(10001));
+
+ /*
+ * Step 2) The owner shares the calendar with a group that includes the
+ * user from step 1 as a member.
+ */
+ $this->sharingBackend->updateShares(
+ shareable: $calendar,
+ add: [['href' => 'principals/groups/alice_bob']],
+ remove: [],
+ );
+
+ $this->assertCount(2, $this->sharingService->getShares(10001));
+
+ /*
+ * Step 3) Unshare the calendar from user as owner.
+ */
+ $this->sharingBackend->updateShares(
+ shareable: $calendar,
+ add: [],
+ remove: ['principals/users/bob'],
+ );
+
+ /*
+ * The purpose of this test is to ensure that removing a user from a share, as the owner, does not result in an "unshare" row being added.
+ * Instead, the actual user share should be removed.
+ */
+ $this->assertCount(1, $this->sharingService->getShares(10001));
+ $this->assertCount(0, $this->sharingService->getUnshares(10001));
+ }
+
+}
diff --git a/apps/dav/tests/integration/DAV/Sharing/SharingMapperTest.php b/apps/dav/tests/integration/DAV/Sharing/SharingMapperTest.php
index bde6b1060c8..bcf84254034 100644
--- a/apps/dav/tests/integration/DAV/Sharing/SharingMapperTest.php
+++ b/apps/dav/tests/integration/DAV/Sharing/SharingMapperTest.php
@@ -7,6 +7,8 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
+namespace OCA\DAV\Tests\integration\DAV\Sharing;
+
use OCA\DAV\DAV\Sharing\SharingMapper;
use OCP\IDBConnection;
use OCP\Server;
diff --git a/apps/dav/tests/unit/AppInfo/ApplicationTest.php b/apps/dav/tests/unit/AppInfo/ApplicationTest.php
index f8ddd9bb821..336f487e0b8 100644
--- a/apps/dav/tests/unit/AppInfo/ApplicationTest.php
+++ b/apps/dav/tests/unit/AppInfo/ApplicationTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/tests/unit/AppInfo/PluginManagerTest.php b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php
index 7a60888a838..0082aa45286 100644
--- a/apps/dav/tests/unit/AppInfo/PluginManagerTest.php
+++ b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 ownCloud GmbH.
* SPDX-License-Identifier: AGPL-3.0-only
diff --git a/apps/dav/tests/unit/Avatars/AvatarHomeTest.php b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php
index 9699c146c8a..aaa930b6c19 100644
--- a/apps/dav/tests/unit/Avatars/AvatarHomeTest.php
+++ b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php
@@ -1,27 +1,25 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2017 ownCloud GmbH
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\Unit\Avatars;
+namespace OCA\DAV\Tests\unit\Avatars;
use OCA\DAV\Avatars\AvatarHome;
use OCA\DAV\Avatars\AvatarNode;
use OCP\IAvatar;
use OCP\IAvatarManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\MethodNotAllowed;
use Sabre\DAV\Exception\NotFound;
use Test\TestCase;
class AvatarHomeTest extends TestCase {
-
- /** @var AvatarHome */
- private $home;
-
- /** @var IAvatarManager | \PHPUnit\Framework\MockObject\MockObject */
- private $avatarManager;
+ private AvatarHome $home;
+ private IAvatarManager&MockObject $avatarManager;
protected function setUp(): void {
parent::setUp();
@@ -38,7 +36,7 @@ class AvatarHomeTest extends TestCase {
$this->home->$method('');
}
- public function providesForbiddenMethods() {
+ public static function providesForbiddenMethods(): array {
return [
['createFile'],
['createDirectory'],
@@ -52,7 +50,7 @@ class AvatarHomeTest extends TestCase {
self::assertEquals('admin', $n);
}
- public function providesTestGetChild() {
+ public static function providesTestGetChild(): array {
return [
[MethodNotAllowed::class, false, ''],
[MethodNotAllowed::class, false, 'bla.foo'],
@@ -65,7 +63,7 @@ class AvatarHomeTest extends TestCase {
/**
* @dataProvider providesTestGetChild
*/
- public function testGetChild($expectedException, $hasAvatar, $path): void {
+ public function testGetChild(?string $expectedException, bool $hasAvatar, string $path): void {
if ($expectedException !== null) {
$this->expectException($expectedException);
}
@@ -92,7 +90,7 @@ class AvatarHomeTest extends TestCase {
/**
* @dataProvider providesTestGetChild
*/
- public function testChildExists($expectedException, $hasAvatar, $path): void {
+ public function testChildExists(?string $expectedException, bool $hasAvatar, string $path): void {
$avatar = $this->createMock(IAvatar::class);
$avatar->method('exists')->willReturn($hasAvatar);
diff --git a/apps/dav/tests/unit/Avatars/AvatarNodeTest.php b/apps/dav/tests/unit/Avatars/AvatarNodeTest.php
index 92c02e17ff8..0ca147a1f3b 100644
--- a/apps/dav/tests/unit/Avatars/AvatarNodeTest.php
+++ b/apps/dav/tests/unit/Avatars/AvatarNodeTest.php
@@ -1,26 +1,28 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2017 ownCloud GmbH
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\Unit\Avatars;
+namespace OCA\DAV\Tests\unit\Avatars;
use OCA\DAV\Avatars\AvatarNode;
use OCP\IAvatar;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AvatarNodeTest extends TestCase {
public function testGetName(): void {
- /** @var IAvatar | \PHPUnit\Framework\MockObject\MockObject $a */
+ /** @var IAvatar&MockObject $a */
$a = $this->createMock(IAvatar::class);
$n = new AvatarNode(1024, 'png', $a);
$this->assertEquals('1024.png', $n->getName());
}
public function testGetContentType(): void {
- /** @var IAvatar | \PHPUnit\Framework\MockObject\MockObject $a */
+ /** @var IAvatar&MockObject $a */
$a = $this->createMock(IAvatar::class);
$n = new AvatarNode(1024, 'png', $a);
$this->assertEquals('image/png', $n->getContentType());
diff --git a/apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php b/apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php
index 21e999d34be..b2199e3e657 100644
--- a/apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/CleanupInvitationTokenJobTest.php
@@ -13,17 +13,13 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\DB\QueryBuilder\IExpressionBuilder;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CleanupInvitationTokenJobTest extends TestCase {
- /** @var IDBConnection | \PHPUnit\Framework\MockObject\MockObject */
- private $dbConnection;
-
- /** @var ITimeFactory | \PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var CleanupInvitationTokenJob */
- private $backgroundJob;
+ private IDBConnection&MockObject $dbConnection;
+ private ITimeFactory&MockObject $timeFactory;
+ private CleanupInvitationTokenJob $backgroundJob;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php b/apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php
index fe05616d609..2065b8fe946 100644
--- a/apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/CleanupOrphanedChildrenJobTest.php
@@ -103,14 +103,13 @@ class CleanupOrphanedChildrenJobTest extends TestCase {
$deleteQb = $this->getMockQueryBuilder();
$result = $this->createMock(IResult::class);
- $qbInvocationCount = self::exactly(2);
- $this->connection->expects($qbInvocationCount)
- ->method('getQueryBuilder')
- ->willReturnCallback(function () use ($qbInvocationCount, $selectQb, $deleteQb) {
- return match ($qbInvocationCount->getInvocationCount()) {
- 1 => $selectQb,
- 2 => $deleteQb,
- };
+ $calls = [
+ $selectQb,
+ $deleteQb,
+ ];
+ $this->connection->method('getQueryBuilder')
+ ->willReturnCallback(function () use (&$calls) {
+ return array_shift($calls);
});
$selectQb->expects(self::once())
->method('executeQuery')
@@ -140,15 +139,15 @@ class CleanupOrphanedChildrenJobTest extends TestCase {
$deleteQb = $this->getMockQueryBuilder();
$result = $this->createMock(IResult::class);
- $qbInvocationCount = self::exactly(2);
- $this->connection->expects($qbInvocationCount)
- ->method('getQueryBuilder')
- ->willReturnCallback(function () use ($qbInvocationCount, $selectQb, $deleteQb) {
- return match ($qbInvocationCount->getInvocationCount()) {
- 1 => $selectQb,
- 2 => $deleteQb,
- };
+ $calls = [
+ $selectQb,
+ $deleteQb,
+ ];
+ $this->connection->method('getQueryBuilder')
+ ->willReturnCallback(function () use (&$calls) {
+ return array_shift($calls);
});
+
$selectQb->expects(self::once())
->method('executeQuery')
->willReturn($result);
diff --git a/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php b/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php
index 1173e516a22..1f70869f211 100644
--- a/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/EventReminderJobTest.php
@@ -16,17 +16,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class EventReminderJobTest extends TestCase {
- /** @var ITimeFactory|MockObject */
- private $time;
-
- /** @var ReminderService|MockObject */
- private $reminderService;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var EventReminderJob|MockObject */
- private $backgroundJob;
+ private ITimeFactory&MockObject $time;
+ private ReminderService&MockObject $reminderService;
+ private IConfig&MockObject $config;
+ private EventReminderJob $backgroundJob;
protected function setUp(): void {
parent::setUp();
@@ -42,7 +35,7 @@ class EventReminderJobTest extends TestCase {
);
}
- public function data(): array {
+ public static function data(): array {
return [
[true, true, true],
[true, false, false],
@@ -61,14 +54,10 @@ class EventReminderJobTest extends TestCase {
public function testRun(bool $sendEventReminders, bool $sendEventRemindersMode, bool $expectCall): void {
$this->config->expects($this->exactly($sendEventReminders ? 2 : 1))
->method('getAppValue')
- ->withConsecutive(
- ['dav', 'sendEventReminders', 'yes'],
- ['dav', 'sendEventRemindersMode', 'backgroundjob'],
- )
- ->willReturnOnConsecutiveCalls(
- $sendEventReminders ? 'yes' : 'no',
- $sendEventRemindersMode ? 'backgroundjob' : 'cron'
- );
+ ->willReturnMap([
+ ['dav', 'sendEventReminders', 'yes', ($sendEventReminders ? 'yes' : 'no')],
+ ['dav', 'sendEventRemindersMode', 'backgroundjob', ($sendEventRemindersMode ? 'backgroundjob' : 'cron')],
+ ]);
if ($expectCall) {
$this->reminderService->expects($this->once())
diff --git a/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php b/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php
index 82d2251f17a..88a76ae1332 100644
--- a/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/GenerateBirthdayCalendarBackgroundJobTest.php
@@ -16,18 +16,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class GenerateBirthdayCalendarBackgroundJobTest extends TestCase {
-
- /** @var ITimeFactory|MockObject */
- private $time;
-
- /** @var BirthdayService | MockObject */
- private $birthdayService;
-
- /** @var IConfig | MockObject */
- private $config;
-
- /** @var GenerateBirthdayCalendarBackgroundJob */
- private $backgroundJob;
+ private ITimeFactory&MockObject $time;
+ private BirthdayService&MockObject $birthdayService;
+ private IConfig&MockObject $config;
+ private GenerateBirthdayCalendarBackgroundJob $backgroundJob;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php b/apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php
index 5ddd9eba6f8..6135fd00fdc 100644
--- a/apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/OutOfOfficeEventDispatcherJobTest.php
@@ -25,21 +25,11 @@ use Test\TestCase;
class OutOfOfficeEventDispatcherJobTest extends TestCase {
private OutOfOfficeEventDispatcherJob $job;
-
- /** @var MockObject|ITimeFactory */
- private $timeFactory;
-
- /** @var MockObject|AbsenceMapper */
- private $absenceMapper;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
-
- /** @var MockObject|IEventDispatcher */
- private $eventDispatcher;
-
- /** @var MockObject|IUserManager */
- private $userManager;
+ private ITimeFactory&MockObject $timeFactory;
+ private AbsenceMapper&MockObject $absenceMapper;
+ private LoggerInterface&MockObject $logger;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private IUserManager&MockObject $userManager;
private MockObject|TimezoneService $timezoneService;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php b/apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php
index d08d0fd4496..eb471189c24 100644
--- a/apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/PruneOutdatedSyncTokensJobTest.php
@@ -20,21 +20,11 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class PruneOutdatedSyncTokensJobTest extends TestCase {
- /** @var ITimeFactory | MockObject */
- private $timeFactory;
-
- /** @var CalDavBackend | MockObject */
- private $calDavBackend;
-
- /** @var CardDavBackend | MockObject */
- private $cardDavBackend;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
+ private ITimeFactory&MockObject $timeFactory;
+ private CalDavBackend&MockObject $calDavBackend;
+ private CardDavBackend&MockObject $cardDavBackend;
+ private IConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
private PruneOutdatedSyncTokensJob $backgroundJob;
protected function setUp(): void {
@@ -84,7 +74,7 @@ class PruneOutdatedSyncTokensJobTest extends TestCase {
$this->backgroundJob->run(null);
}
- public function dataForTestRun(): array {
+ public static function dataForTestRun(): array {
return [
['100', '2', 100, 7 * 24 * 3600, 2, 3],
['100', '14', 100, 14 * 24 * 3600, 2, 3],
diff --git a/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php b/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php
index 2b11223210e..0cdeb6436e2 100644
--- a/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/RefreshWebcalJobTest.php
@@ -19,20 +19,11 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class RefreshWebcalJobTest extends TestCase {
-
- /** @var RefreshWebcalService | MockObject */
- private $refreshWebcalService;
-
- /** @var IConfig | MockObject */
- private $config;
-
+ private RefreshWebcalService&MockObject $refreshWebcalService;
+ private IConfig&MockObject $config;
private LoggerInterface $logger;
-
- /** @var ITimeFactory | MockObject */
- private $timeFactory;
-
- /** @var IJobList | MockObject */
- private $jobList;
+ private ITimeFactory&MockObject $timeFactory;
+ private IJobList&MockObject $jobList;
protected function setUp(): void {
parent::setUp();
@@ -97,10 +88,7 @@ class RefreshWebcalJobTest extends TestCase {
$backgroundJob->start($this->jobList);
}
- /**
- * @return array
- */
- public function runDataProvider():array {
+ public static function runDataProvider():array {
return [
[0, 100000, true],
[100000, 100000, false]
diff --git a/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php b/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php
index 88493d91d9b..6c9214d0268 100644
--- a/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/RegisterRegenerateBirthdayCalendarsTest.php
@@ -14,20 +14,14 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\IJobList;
use OCP\IUser;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RegisterRegenerateBirthdayCalendarsTest extends TestCase {
- /** @var ITimeFactory | \PHPUnit\Framework\MockObject\MockObject */
- private $time;
-
- /** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var IJobList | \PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var RegisterRegenerateBirthdayCalendars */
- private $backgroundJob;
+ private ITimeFactory&MockObject $time;
+ private IUserManager&MockObject $userManager;
+ private IJobList&MockObject $jobList;
+ private RegisterRegenerateBirthdayCalendars $backgroundJob;
protected function setUp(): void {
parent::setUp();
@@ -59,22 +53,26 @@ class RegisterRegenerateBirthdayCalendarsTest extends TestCase {
$closure($user3);
});
+ $calls = [
+ 'uid1',
+ 'uid2',
+ 'uid3',
+ ];
$this->jobList->expects($this->exactly(3))
->method('add')
- ->withConsecutive(
- [GenerateBirthdayCalendarBackgroundJob::class, [
- 'userId' => 'uid1',
- 'purgeBeforeGenerating' => true
- ]],
- [GenerateBirthdayCalendarBackgroundJob::class, [
- 'userId' => 'uid2',
- 'purgeBeforeGenerating' => true
- ]],
- [GenerateBirthdayCalendarBackgroundJob::class, [
- 'userId' => 'uid3',
- 'purgeBeforeGenerating' => true
- ]],
- );
+ ->willReturnCallback(function () use (&$calls): void {
+ $expected = array_shift($calls);
+ $this->assertEquals(
+ [
+ GenerateBirthdayCalendarBackgroundJob::class,
+ [
+ 'userId' => $expected,
+ 'purgeBeforeGenerating' => true
+ ]
+ ],
+ func_get_args()
+ );
+ });
$this->backgroundJob->run([]);
}
diff --git a/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php b/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php
index 18ee0c5c61d..38a981787cd 100644
--- a/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJobTest.php
@@ -18,15 +18,9 @@ use Test\TestCase;
class UpdateCalendarResourcesRoomsBackgroundJobTest extends TestCase {
private UpdateCalendarResourcesRoomsBackgroundJob $backgroundJob;
-
- /** @var ITimeFactory|MockObject */
- private $time;
-
- /** @var IResourceManager|MockObject */
- private $resourceManager;
-
- /** @var IRoomManager|MockObject */
- private $roomManager;
+ private ITimeFactory&MockObject $time;
+ private IResourceManager&MockObject $resourceManager;
+ private IRoomManager&MockObject $roomManager;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php b/apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php
index ce3871aa400..369242ad488 100644
--- a/apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php
+++ b/apps/dav/tests/unit/BackgroundJob/UserStatusAutomationTest.php
@@ -29,14 +29,13 @@ use Test\TestCase;
* @group DB
*/
class UserStatusAutomationTest extends TestCase {
-
- protected MockObject|ITimeFactory $time;
- protected MockObject|IJobList $jobList;
- protected MockObject|LoggerInterface $logger;
- protected MockObject|IManager $statusManager;
- protected MockObject|IConfig $config;
- private IAvailabilityCoordinator|MockObject $coordinator;
- private IUserManager|MockObject $userManager;
+ protected ITimeFactory&MockObject $time;
+ protected IJobList&MockObject $jobList;
+ protected LoggerInterface&MockObject $logger;
+ protected IManager&MockObject $statusManager;
+ protected IConfig&MockObject $config;
+ private IAvailabilityCoordinator&MockObject $coordinator;
+ private IUserManager&MockObject $userManager;
protected function setUp(): void {
parent::setUp();
@@ -76,11 +75,11 @@ class UserStatusAutomationTest extends TestCase {
$this->coordinator,
$this->userManager,
])
- ->setMethods($methods)
+ ->onlyMethods($methods)
->getMock();
}
- public function dataRun(): array {
+ public static function dataRun(): array {
return [
['20230217', '2023-02-24 10:49:36.613834', true],
['20230224', '2023-02-24 10:49:36.613834', true],
diff --git a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php
index c1d8e8609b6..45937d86873 100644
--- a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php
+++ b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php
@@ -44,12 +44,12 @@ abstract class AbstractCalDavBackend extends TestCase {
protected CalDavBackend $backend;
- protected Principal|MockObject $principal;
- protected IUserManager|MockObject $userManager;
- protected IGroupManager|MockObject $groupManager;
- protected IEventDispatcher|MockObject $dispatcher;
- private LoggerInterface|MockObject $logger;
- private IConfig|MockObject $config;
+ protected Principal&MockObject $principal;
+ protected IUserManager&MockObject $userManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IEventDispatcher&MockObject $dispatcher;
+ private LoggerInterface&MockObject $logger;
+ private IConfig&MockObject $config;
private ISecureRandom $random;
protected SharingBackend $sharingBackend;
protected IDBConnection $db;
@@ -77,7 +77,7 @@ abstract class AbstractCalDavBackend extends TestCase {
$this->createMock(IConfig::class),
$this->createMock(IFactory::class)
])
- ->setMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
+ ->onlyMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
->getMock();
$this->principal->expects($this->any())->method('getPrincipalByPath')
->willReturn([
@@ -143,7 +143,7 @@ abstract class AbstractCalDavBackend extends TestCase {
}
}
- protected function createTestCalendar() {
+ protected function createTestCalendar(): int {
$this->dispatcher->expects(self::any())
->method('dispatchTyped');
@@ -160,9 +160,7 @@ abstract class AbstractCalDavBackend extends TestCase {
$this->assertEquals('#1C4587FF', $color);
$this->assertEquals('Example', $calendars[0]['uri']);
$this->assertEquals('Example', $calendars[0]['{DAV:}displayname']);
- $calendarId = $calendars[0]['id'];
-
- return $calendarId;
+ return (int)$calendars[0]['id'];
}
protected function createTestSubscription() {
diff --git a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php
index 6ace633b072..ebe989ad815 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -19,21 +21,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BackendTest extends TestCase {
-
- /** @var IManager|MockObject */
- protected $activityManager;
-
- /** @var IGroupManager|MockObject */
- protected $groupManager;
-
- /** @var IUserSession|MockObject */
- protected $userSession;
-
- /** @var IAppManager|MockObject */
- protected $appManager;
-
- /** @var IUserManager|MockObject */
- protected $userManager;
+ protected IManager&MockObject $activityManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IUserSession&MockObject $userSession;
+ protected IAppManager&MockObject $appManager;
+ protected IUserManager&MockObject $userManager;
protected function setUp(): void {
parent::setUp();
@@ -45,10 +37,9 @@ class BackendTest extends TestCase {
}
/**
- * @param array $methods
- * @return Backend|MockObject
+ * @return Backend|(Backend&MockObject)
*/
- protected function getBackend(array $methods = []) {
+ protected function getBackend(array $methods = []): Backend {
if (empty($methods)) {
return new Backend(
$this->activityManager,
@@ -71,7 +62,7 @@ class BackendTest extends TestCase {
}
}
- public function dataCallTriggerCalendarActivity() {
+ public static function dataCallTriggerCalendarActivity(): array {
return [
['onCalendarAdd', [['data']], Calendar::SUBJECT_ADD, [['data'], [], []]],
['onCalendarUpdate', [['data'], ['shares'], ['changed-properties']], Calendar::SUBJECT_UPDATE, [['data'], ['shares'], ['changed-properties']]],
@@ -82,13 +73,8 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataCallTriggerCalendarActivity
- *
- * @param string $method
- * @param array $payload
- * @param string $expectedSubject
- * @param array $expectedPayload
*/
- public function testCallTriggerCalendarActivity($method, array $payload, $expectedSubject, array $expectedPayload): void {
+ public function testCallTriggerCalendarActivity(string $method, array $payload, string $expectedSubject, array $expectedPayload): void {
$backend = $this->getBackend(['triggerCalendarActivity']);
$backend->expects($this->once())
->method('triggerCalendarActivity')
@@ -101,7 +87,7 @@ class BackendTest extends TestCase {
call_user_func_array([$backend, $method], $payload);
}
- public function dataTriggerCalendarActivity() {
+ public static function dataTriggerCalendarActivity(): array {
return [
// Add calendar
[Calendar::SUBJECT_ADD, [], [], [], '', '', null, []],
@@ -184,16 +170,8 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataTriggerCalendarActivity
- * @param string $action
- * @param array $data
- * @param array $shares
- * @param array $changedProperties
- * @param string $currentUser
- * @param string $author
- * @param string[]|null $shareUsers
- * @param string[] $users
*/
- public function testTriggerCalendarActivity($action, array $data, array $shares, array $changedProperties, $currentUser, $author, $shareUsers, array $users): void {
+ public function testTriggerCalendarActivity(string $action, array $data, array $shares, array $changedProperties, string $currentUser, string $author, ?array $shareUsers, array $users): void {
$backend = $this->getBackend(['getUsersForShares']);
if ($shareUsers === null) {
@@ -278,7 +256,7 @@ class BackendTest extends TestCase {
], [], []]);
}
- public function dataGetUsersForShares() {
+ public static function dataGetUsersForShares(): array {
return [
[
[],
@@ -323,9 +301,6 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataGetUsersForShares
- * @param array $shares
- * @param array $groups
- * @param array $expected
*/
public function testGetUsersForShares(array $shares, array $groups, array $expected): void {
$backend = $this->getBackend();
@@ -356,7 +331,7 @@ class BackendTest extends TestCase {
/**
* @param string[] $users
- * @return IUser[]|MockObject[]
+ * @return IUser[]&MockObject[]
*/
protected function getUsers(array $users) {
$list = [];
@@ -368,7 +343,7 @@ class BackendTest extends TestCase {
/**
* @param string $uid
- * @return IUser|MockObject
+ * @return IUser&MockObject
*/
protected function getUserMock($uid) {
$user = $this->createMock(IUser::class);
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php b/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php
index a7c84260f21..a31907b4b0a 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,15 +11,12 @@ use OCA\DAV\CalDAV\Activity\Filter\Calendar;
use OCP\Activity\IFilter;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CalendarTest extends TestCase {
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $url;
-
- /** @var IFilter|\PHPUnit\Framework\MockObject\MockObject */
- protected $filter;
+ protected IURLGenerator&MockObject $url;
+ protected IFilter $filter;
protected function setUp(): void {
parent::setUp();
@@ -48,7 +47,7 @@ class CalendarTest extends TestCase {
$this->assertEquals('absolute-path-to-icon', $this->filter->getIcon());
}
- public function dataFilterTypes() {
+ public static function dataFilterTypes(): array {
return [
[[], []],
[['calendar', 'calendar_event'], ['calendar', 'calendar_event']],
@@ -62,7 +61,7 @@ class CalendarTest extends TestCase {
* @param string[] $types
* @param string[] $expected
*/
- public function testFilterTypes($types, $expected): void {
+ public function testFilterTypes(array $types, array $expected): void {
$this->assertEquals($expected, $this->filter->filterTypes($types));
}
}
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php b/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php
index 392759206ed..468dd15f480 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -15,7 +17,7 @@ use Test\TestCase;
* @group DB
*/
class GenericTest extends TestCase {
- public function dataFilters() {
+ public static function dataFilters(): array {
return [
[Calendar::class],
[Todo::class],
@@ -24,18 +26,16 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testImplementsInterface($filterClass): void {
+ public function testImplementsInterface(string $filterClass): void {
$filter = Server::get($filterClass);
$this->assertInstanceOf(IFilter::class, $filter);
}
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetIdentifier($filterClass): void {
+ public function testGetIdentifier(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIdentifier());
@@ -43,9 +43,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetName($filterClass): void {
+ public function testGetName(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getName());
@@ -53,9 +52,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetPriority($filterClass): void {
+ public function testGetPriority(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$priority = $filter->getPriority();
@@ -66,9 +64,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetIcon($filterClass): void {
+ public function testGetIcon(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIcon());
@@ -77,9 +74,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testFilterTypes($filterClass): void {
+ public function testFilterTypes(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->filterTypes([]));
@@ -87,9 +83,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testAllowedApps($filterClass): void {
+ public function testAllowedApps(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->allowedApps());
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php b/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php
index 6aa47f33750..6ef7289e156 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,15 +11,12 @@ use OCA\DAV\CalDAV\Activity\Filter\Todo;
use OCP\Activity\IFilter;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class TodoTest extends TestCase {
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $url;
-
- /** @var IFilter|\PHPUnit\Framework\MockObject\MockObject */
- protected $filter;
+ protected IURLGenerator&MockObject $url;
+ protected IFilter $filter;
protected function setUp(): void {
parent::setUp();
@@ -48,7 +47,7 @@ class TodoTest extends TestCase {
$this->assertEquals('absolute-path-to-icon', $this->filter->getIcon());
}
- public function dataFilterTypes() {
+ public static function dataFilterTypes(): array {
return [
[[], []],
[['calendar_todo'], ['calendar_todo']],
@@ -62,7 +61,7 @@ class TodoTest extends TestCase {
* @param string[] $types
* @param string[] $expected
*/
- public function testFilterTypes($types, $expected): void {
+ public function testFilterTypes(array $types, array $expected): void {
$this->assertEquals($expected, $this->filter->filterTypes($types));
}
}
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php b/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php
index ba97c888b0c..113af7ed240 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,7 +9,6 @@ namespace OCA\DAV\Tests\unit\CalDAV\Activity\Provider;
use OCA\DAV\CalDAV\Activity\Provider\Base;
use OCP\Activity\IEvent;
-use OCP\Activity\IProvider;
use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IURLGenerator;
@@ -16,17 +17,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BaseTest extends TestCase {
- /** @var IUserManager|MockObject */
- protected $userManager;
-
- /** @var IGroupManager|MockObject */
- protected $groupManager;
-
- /** @var IURLGenerator|MockObject */
- protected $url;
-
- /** @var IProvider|Base|MockObject */
- protected $provider;
+ protected IUserManager&MockObject $userManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IURLGenerator&MockObject $url;
+ protected Base&MockObject $provider;
protected function setUp(): void {
parent::setUp();
@@ -39,24 +33,21 @@ class BaseTest extends TestCase {
$this->groupManager,
$this->url,
])
- ->setMethods(['parse'])
+ ->onlyMethods(['parse'])
->getMock();
}
- public function dataSetSubjects() {
+ public static function dataSetSubjects(): array {
return [
- ['abc', [], 'abc'],
- ['{actor} created {calendar}', ['actor' => ['name' => 'abc'], 'calendar' => ['name' => 'xyz']], 'abc created xyz'],
+ ['abc', []],
+ ['{actor} created {calendar}', ['actor' => ['name' => 'abc'], 'calendar' => ['name' => 'xyz']]],
];
}
/**
* @dataProvider dataSetSubjects
- * @param string $subject
- * @param array $parameters
- * @param string $parsedSubject
*/
- public function testSetSubjects(string $subject, array $parameters, string $parsedSubject): void {
+ public function testSetSubjects(string $subject, array $parameters): void {
$event = $this->createMock(IEvent::class);
$event->expects($this->once())
->method('setRichSubject')
@@ -68,7 +59,7 @@ class BaseTest extends TestCase {
$this->invokePrivate($this->provider, 'setSubjects', [$event, $subject, $parameters]);
}
- public function dataGenerateCalendarParameter() {
+ public static function dataGenerateCalendarParameter(): array {
return [
[['id' => 23, 'uri' => 'foo', 'name' => 'bar'], 'bar'],
[['id' => 42, 'uri' => 'foo', 'name' => 'Personal'], 'Personal'],
@@ -79,8 +70,6 @@ class BaseTest extends TestCase {
/**
* @dataProvider dataGenerateCalendarParameter
- * @param array $data
- * @param string $name
*/
public function testGenerateCalendarParameter(array $data, string $name): void {
$l = $this->createMock(IL10N::class);
@@ -97,7 +86,7 @@ class BaseTest extends TestCase {
], $this->invokePrivate($this->provider, 'generateCalendarParameter', [$data, $l]));
}
- public function dataGenerateLegacyCalendarParameter() {
+ public static function dataGenerateLegacyCalendarParameter(): array {
return [
[23, 'c1'],
[42, 'c2'],
@@ -106,8 +95,6 @@ class BaseTest extends TestCase {
/**
* @dataProvider dataGenerateLegacyCalendarParameter
- * @param int $id
- * @param string $name
*/
public function testGenerateLegacyCalendarParameter(int $id, string $name): void {
$this->assertEquals([
@@ -117,7 +104,7 @@ class BaseTest extends TestCase {
], $this->invokePrivate($this->provider, 'generateLegacyCalendarParameter', [$id, $name]));
}
- public function dataGenerateGroupParameter() {
+ public static function dataGenerateGroupParameter(): array {
return [
['g1'],
['g2'],
@@ -126,7 +113,6 @@ class BaseTest extends TestCase {
/**
* @dataProvider dataGenerateGroupParameter
- * @param string $gid
*/
public function testGenerateGroupParameter(string $gid): void {
$this->assertEquals([
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php b/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php
index ec237825731..52d3dfa64cb 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -6,11 +8,9 @@
namespace OCA\DAV\Tests\unit\CalDAV\Activity\Provider;
use InvalidArgumentException;
-use OCA\DAV\CalDAV\Activity\Provider\Base;
use OCA\DAV\CalDAV\Activity\Provider\Event;
use OCP\Activity\IEventMerger;
use OCP\Activity\IManager;
-use OCP\Activity\IProvider;
use OCP\App\IAppManager;
use OCP\IGroupManager;
use OCP\IURLGenerator;
@@ -21,30 +21,14 @@ use Test\TestCase;
use TypeError;
class EventTest extends TestCase {
-
- /** @var IUserManager|MockObject */
- protected $userManager;
-
- /** @var IGroupManager|MockObject */
- protected $groupManager;
-
- /** @var IURLGenerator|MockObject */
- protected $url;
-
- /** @var IProvider|Base|MockObject */
- protected $provider;
-
- /** @var IAppManager|MockObject */
- protected $appManager;
-
- /** @var IFactory|MockObject */
- protected $i10nFactory;
-
- /** @var IManager|MockObject */
- protected $activityManager;
-
- /** @var IEventMerger|MockObject */
- protected $eventMerger;
+ protected IUserManager&MockObject $userManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IURLGenerator&MockObject $url;
+ protected IAppManager&MockObject $appManager;
+ protected IFactory&MockObject $i10nFactory;
+ protected IManager&MockObject $activityManager;
+ protected IEventMerger&MockObject $eventMerger;
+ protected Event&MockObject $provider;
protected function setUp(): void {
parent::setUp();
@@ -65,11 +49,11 @@ class EventTest extends TestCase {
$this->eventMerger,
$this->appManager
])
- ->setMethods(['parse'])
+ ->onlyMethods(['parse'])
->getMock();
}
- public function dataGenerateObjectParameter() {
+ public static function dataGenerateObjectParameter(): array {
$link = [
'object_uri' => 'someuuid.ics',
'calendar_uri' => 'personal',
@@ -85,21 +69,13 @@ class EventTest extends TestCase {
/**
* @dataProvider dataGenerateObjectParameter
- * @param int $id
- * @param string $name
- * @param array|null $link
- * @param bool $calendarAppEnabled
*/
public function testGenerateObjectParameter(int $id, string $name, ?array $link, bool $calendarAppEnabled = true): void {
$affectedUser = 'otheruser';
if ($link) {
$affectedUser = $link['owner'];
$generatedLink = [
- 'view' => 'dayGridMonth',
- 'timeRange' => 'now',
- 'mode' => 'sidebar',
'objectId' => base64_encode('/remote.php/dav/calendars/' . $link['owner'] . '/' . $link['calendar_uri'] . '/' . $link['object_uri']),
- 'recurrenceId' => 'next'
];
$this->appManager->expects($this->once())
->method('isEnabledForUser')
@@ -110,7 +86,7 @@ class EventTest extends TestCase {
->method('getWebroot');
$this->url->expects($this->once())
->method('linkToRouteAbsolute')
- ->with('calendar.view.indexview.timerange.edit', $generatedLink)
+ ->with('calendar.view.indexdirect.edit', $generatedLink)
->willReturn('fullLink');
}
}
@@ -174,14 +150,12 @@ class EventTest extends TestCase {
];
}
- /** @dataProvider generateObjectParameterLinkEncodingDataProvider */
+ /**
+ * @dataProvider generateObjectParameterLinkEncodingDataProvider
+ */
public function testGenerateObjectParameterLinkEncoding(array $link, string $objectId): void {
$generatedLink = [
- 'view' => 'dayGridMonth',
- 'timeRange' => 'now',
- 'mode' => 'sidebar',
'objectId' => $objectId,
- 'recurrenceId' => 'next'
];
$this->appManager->expects($this->once())
->method('isEnabledForUser')
@@ -191,7 +165,7 @@ class EventTest extends TestCase {
->method('getWebroot');
$this->url->expects($this->once())
->method('linkToRouteAbsolute')
- ->with('calendar.view.indexview.timerange.edit', $generatedLink)
+ ->with('calendar.view.indexdirect.edit', $generatedLink)
->willReturn('fullLink');
$objectParameter = ['id' => 42, 'name' => 'calendar', 'link' => $link];
$result = [
@@ -203,7 +177,7 @@ class EventTest extends TestCase {
$this->assertEquals($result, $this->invokePrivate($this->provider, 'generateObjectParameter', [$objectParameter, 'sharee']));
}
- public function dataGenerateObjectParameterThrows() {
+ public static function dataGenerateObjectParameterThrows(): array {
return [
['event', TypeError::class],
[['name' => 'event']],
@@ -213,10 +187,8 @@ class EventTest extends TestCase {
/**
* @dataProvider dataGenerateObjectParameterThrows
- * @param mixed $eventData
- * @param string $exception
*/
- public function testGenerateObjectParameterThrows($eventData, string $exception = InvalidArgumentException::class): void {
+ public function testGenerateObjectParameterThrows(string|array $eventData, string $exception = InvalidArgumentException::class): void {
$this->expectException($exception);
$this->invokePrivate($this->provider, 'generateObjectParameter', [$eventData, 'no_user']);
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php b/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php
index 42b565b9d8b..2ed3bab02e6 100644
--- a/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php
+++ b/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -13,7 +15,7 @@ use OCP\Server;
use Test\TestCase;
class GenericTest extends TestCase {
- public function dataSettings() {
+ public static function dataSettings(): array {
return [
[Calendar::class],
[Event::class],
@@ -23,18 +25,16 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testImplementsInterface($settingClass): void {
+ public function testImplementsInterface(string $settingClass): void {
$setting = Server::get($settingClass);
$this->assertInstanceOf(ISetting::class, $setting);
}
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testGetIdentifier($settingClass): void {
+ public function testGetIdentifier(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getIdentifier());
@@ -42,9 +42,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testGetName($settingClass): void {
+ public function testGetName(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getName());
@@ -52,9 +51,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testGetPriority($settingClass): void {
+ public function testGetPriority(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$priority = $setting->getPriority();
@@ -65,9 +63,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testCanChangeStream($settingClass): void {
+ public function testCanChangeStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeStream());
@@ -75,9 +72,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testIsDefaultEnabledStream($settingClass): void {
+ public function testIsDefaultEnabledStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledStream());
@@ -85,9 +81,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testCanChangeMail($settingClass): void {
+ public function testCanChangeMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeMail());
@@ -95,9 +90,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testIsDefaultEnabledMail($settingClass): void {
+ public function testIsDefaultEnabledMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledMail());
diff --git a/apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php b/apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php
index f7fa114ff28..bac2094f734 100644
--- a/apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/AppCalendar/AppCalendarTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,13 +17,13 @@ use Test\TestCase;
use function rewind;
class AppCalendarTest extends TestCase {
- private $principal = 'principals/users/foo';
+ private string $principal = 'principals/users/foo';
private AppCalendar $appCalendar;
private AppCalendar $writeableAppCalendar;
- private ICalendar|MockObject $calendar;
- private ICalendar|MockObject $writeableCalendar;
+ private ICalendar&MockObject $calendar;
+ private ICalendar&MockObject $writeableCalendar;
protected function setUp(): void {
parent::setUp();
@@ -53,9 +54,17 @@ class AppCalendarTest extends TestCase {
}
public function testCreateFile(): void {
+ $calls = [
+ ['some-name', 'data'],
+ ['other-name', ''],
+ ['name', 'some data'],
+ ];
$this->writeableCalendar->expects($this->exactly(3))
->method('createFromString')
- ->withConsecutive(['some-name', 'data'], ['other-name', ''], ['name', 'some data']);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// pass data
$this->assertNull($this->writeableAppCalendar->createFile('some-name', 'data'));
diff --git a/apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php b/apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php
index a913c2dde6f..3d72d5c97b8 100644
--- a/apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php
+++ b/apps/dav/tests/unit/CalDAV/AppCalendar/CalendarObjectTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -17,9 +18,9 @@ use Test\TestCase;
class CalendarObjectTest extends TestCase {
private CalendarObject $calendarObject;
- private AppCalendar|MockObject $calendar;
- private ICalendar|MockObject $backend;
- private VCalendar|MockObject $vobject;
+ private AppCalendar&MockObject $calendar;
+ private ICalendar&MockObject $backend;
+ private VCalendar&MockObject $vobject;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php b/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php
index e60efc6fb19..a5811271ce2 100644
--- a/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/BirthdayCalendar/EnablePluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -11,24 +13,15 @@ use OCA\DAV\CalDAV\Calendar;
use OCA\DAV\CalDAV\CalendarHome;
use OCP\IConfig;
use OCP\IUser;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class EnablePluginTest extends TestCase {
-
- /** @var \Sabre\DAV\Server|\PHPUnit\Framework\MockObject\MockObject */
- protected $server;
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
-
- /** @var BirthdayService |\PHPUnit\Framework\MockObject\MockObject */
- protected $birthdayService;
-
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject */
- protected $user;
-
- /** @var EnablePlugin $plugin */
- protected $plugin;
+ protected \Sabre\DAV\Server&MockObject $server;
+ protected IConfig&MockObject $config;
+ protected BirthdayService&MockObject $birthdayService;
+ protected IUser&MockObject $user;
+ protected EnablePlugin $plugin;
protected $request;
diff --git a/apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php b/apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php
index 2378a75a7d5..935d8314f29 100644
--- a/apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php
+++ b/apps/dav/tests/unit/CalDAV/CachedSubscriptionImplTest.php
@@ -12,13 +12,14 @@ namespace OCA\DAV\Tests\unit\CalDAV;
use OCA\DAV\CalDAV\CachedSubscription;
use OCA\DAV\CalDAV\CachedSubscriptionImpl;
use OCA\DAV\CalDAV\CalDavBackend;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CachedSubscriptionImplTest extends TestCase {
- private CachedSubscription $cachedSubscription;
+ private CachedSubscription&MockObject $cachedSubscription;
private array $cachedSubscriptionInfo;
+ private CalDavBackend&MockObject $backend;
private CachedSubscriptionImpl $cachedSubscriptionImpl;
- private CalDavBackend $backend;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php b/apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php
index 56e4930d3b3..03a2c9f20ee 100644
--- a/apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php
+++ b/apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -32,7 +34,7 @@ class CachedSubscriptionObjectTest extends \Test\TestCase {
$this->assertEquals('BEGIN...', $calendarObject->get());
}
-
+
public function testPut(): void {
$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
$this->expectExceptionMessage('Creating objects in a cached subscription is not allowed');
@@ -52,7 +54,7 @@ class CachedSubscriptionObjectTest extends \Test\TestCase {
$calendarObject->put('');
}
-
+
public function testDelete(): void {
$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
$this->expectExceptionMessage('Deleting objects in a cached subscription is not allowed');
diff --git a/apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php b/apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php
index be47b2bf640..58d5ca7835c 100644
--- a/apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php
+++ b/apps/dav/tests/unit/CalDAV/CachedSubscriptionProviderTest.php
@@ -12,11 +12,12 @@ namespace OCA\DAV\Tests\unit\CalDAV;
use OCA\DAV\CalDAV\CachedSubscriptionImpl;
use OCA\DAV\CalDAV\CachedSubscriptionProvider;
use OCA\DAV\CalDAV\CalDavBackend;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CachedSubscriptionProviderTest extends TestCase {
- private CalDavBackend $backend;
+ private CalDavBackend&MockObject $backend;
private CachedSubscriptionProvider $provider;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php b/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php
index e1d22bc3e7b..091ee7a341f 100644
--- a/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php
+++ b/apps/dav/tests/unit/CalDAV/CachedSubscriptionTest.php
@@ -140,19 +140,21 @@ class CachedSubscriptionTest extends \Test\TestCase {
'uri' => 'cal',
];
+ $calls = [
+ [666, 'foo1', 1, [
+ 'id' => 99,
+ 'uri' => 'foo1'
+ ]],
+ [666, 'foo2', 1, null],
+ ];
$backend->expects($this->exactly(2))
->method('getCalendarObject')
- ->withConsecutive(
- [666, 'foo1', 1],
- [666, 'foo2', 1],
- )
- ->willReturnOnConsecutiveCalls(
- [
- 'id' => 99,
- 'uri' => 'foo1'
- ],
- null
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $return = array_pop($expected);
+ $this->assertEquals($expected, func_get_args());
+ return $return;
+ });
$calendar = new CachedSubscription($backend, $calendarInfo);
@@ -250,19 +252,21 @@ class CachedSubscriptionTest extends \Test\TestCase {
'uri' => 'cal',
];
+ $calls = [
+ [666, 'foo1', 1, [
+ 'id' => 99,
+ 'uri' => 'foo1'
+ ]],
+ [666, 'foo2', 1, null],
+ ];
$backend->expects($this->exactly(2))
->method('getCalendarObject')
- ->withConsecutive(
- [666, 'foo1', 1],
- [666, 'foo2', 1],
- )
- ->willReturnOnConsecutiveCalls(
- [
- 'id' => 99,
- 'uri' => 'foo1'
- ],
- null
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $return = array_pop($expected);
+ $this->assertEquals($expected, func_get_args());
+ return $return;
+ });
$calendar = new CachedSubscription($backend, $calendarInfo);
diff --git a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php
index 61c03c9e4c1..f8368660626 100644
--- a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -17,6 +19,7 @@ use OCA\DAV\DAV\Sharing\Plugin as SharingPlugin;
use OCA\DAV\Events\CalendarDeletedEvent;
use OCP\IConfig;
use OCP\IL10N;
+use Psr\Log\NullLogger;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\PropPatch;
use Sabre\DAV\Xml\Property\Href;
@@ -27,8 +30,6 @@ use function time;
* Class CalDavBackendTest
*
* @group DB
- *
- * @package OCA\DAV\Tests\unit\CalDAV
*/
class CalDavBackendTest extends AbstractCalDavBackend {
public function testCalendarOperations(): void {
@@ -58,7 +59,7 @@ class CalDavBackendTest extends AbstractCalDavBackend {
self::assertEmpty($calendars);
}
- public function providesSharingData() {
+ public static function providesSharingData(): array {
return [
[true, true, true, false, [
[
@@ -457,7 +458,7 @@ EOD;
$this->assertNotNull($co);
}
- public function providesCalendarQueryParameters() {
+ public static function providesCalendarQueryParameters(): array {
return [
'all' => [[0, 1, 2, 3], [], []],
'only-todos' => [[], ['name' => 'VTODO'], []],
@@ -519,7 +520,7 @@ EOD;
sort($stateLive['deleted']);
// test live state
$this->assertEquals($stateTest, $stateLive, 'Failed test delta sync state with events in calendar');
-
+
/** modify/delete events in calendar */
$this->deleteEvent($calendarId, $event1);
$this->modifyEvent($calendarId, $event2, '20250701T140000Z', '20250701T150000Z');
@@ -618,7 +619,7 @@ EOD;
$this->assertCount(0, $subscriptions);
}
- public function providesSchedulingData() {
+ public static function providesSchedulingData(): array {
$data = <<<EOS
BEGIN:VCALENDAR
VERSION:2.0
@@ -724,7 +725,7 @@ EOS;
}
}
- public function providesCalDataForGetDenormalizedData(): array {
+ public static function providesCalDataForGetDenormalizedData(): array {
return [
'first occurrence before unix epoch starts' => [0, 'firstOccurence', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nBEGIN:VEVENT\r\nUID:413F269B-B51B-46B1-AFB6-40055C53A4DC\r\nDTSTAMP:20160309T095056Z\r\nDTSTART;VALUE=DATE:16040222\r\nDTEND;VALUE=DATE:16040223\r\nRRULE:FREQ=YEARLY\r\nSUMMARY:SUMMARY\r\nTRANSP:TRANSPARENT\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"],
'no first occurrence because yearly' => [null, 'firstOccurence', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nBEGIN:VEVENT\r\nUID:413F269B-B51B-46B1-AFB6-40055C53A4DC\r\nDTSTAMP:20160309T095056Z\r\nRRULE:FREQ=YEARLY\r\nSUMMARY:SUMMARY\r\nTRANSP:TRANSPARENT\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"],
@@ -979,7 +980,7 @@ EOD;
$this->assertCount($count, $result);
}
- public function searchDataProvider() {
+ public static function searchDataProvider(): array {
return [
[false, [], 4],
[true, ['timerange' => ['start' => new DateTime('2013-09-12 13:00:00'), 'end' => new DateTime('2013-09-12 14:00:00')]], 2],
@@ -1847,4 +1848,46 @@ EOD;
$this->assertEquals('Missing DTSTART 1', $results[2]['objects'][0]['SUMMARY'][0]);
$this->assertEquals('Missing DTSTART 2', $results[3]['objects'][0]['SUMMARY'][0]);
}
+
+ public function testUnshare(): void {
+ $principalGroup = 'principal:' . self::UNIT_TEST_GROUP;
+ $principalUser = 'principal:' . self::UNIT_TEST_USER;
+
+ $l10n = $this->createMock(IL10N::class);
+ $l10n->method('t')
+ ->willReturnCallback(fn ($text, $parameters = []) => vsprintf($text, $parameters));
+ $config = $this->createMock(IConfig::class);
+ $logger = new NullLogger();
+
+ $this->principal->expects($this->exactly(2))
+ ->method('findByUri')
+ ->willReturnMap([
+ [$principalGroup, '', self::UNIT_TEST_GROUP],
+ [$principalUser, '', self::UNIT_TEST_USER],
+ ]);
+ $this->groupManager->expects($this->once())
+ ->method('groupExists')
+ ->willReturn(true);
+ $this->dispatcher->expects($this->exactly(2))
+ ->method('dispatchTyped');
+
+ $calendarId = $this->createTestCalendar();
+ $calendarInfo = $this->backend->getCalendarById($calendarId);
+
+ $calendar = new Calendar($this->backend, $calendarInfo, $l10n, $config, $logger);
+
+ $this->backend->updateShares(
+ shareable: $calendar,
+ add: [
+ ['href' => $principalGroup, 'readOnly' => false]
+ ],
+ remove: []
+ );
+
+ $this->backend->unshare(
+ shareable: $calendar,
+ principal: $principalUser
+ );
+
+ }
}
diff --git a/apps/dav/tests/unit/CalDAV/CalendarHomeTest.php b/apps/dav/tests/unit/CalDAV/CalendarHomeTest.php
index 9956c17fff3..e25cc099bd6 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarHomeTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarHomeTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -22,21 +24,11 @@ use Sabre\DAV\MkCol;
use Test\TestCase;
class CalendarHomeTest extends TestCase {
-
- /** @var CalDavBackend | MockObject */
- private $backend;
-
- /** @var array */
- private $principalInfo = [];
-
- /** @var PluginManager */
- private $pluginManager;
-
- /** @var CalendarHome */
- private $calendarHome;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
+ private CalDavBackend&MockObject $backend;
+ private array $principalInfo = [];
+ private PluginManager&MockObject $pluginManager;
+ private LoggerInterface&MockObject $logger;
+ private CalendarHome $calendarHome;
protected function setUp(): void {
parent::setUp();
@@ -62,7 +54,7 @@ class CalendarHomeTest extends TestCase {
}
public function testCreateCalendarValidName(): void {
- /** @var MkCol | MockObject $mkCol */
+ /** @var MkCol&MockObject $mkCol */
$mkCol = $this->createMock(MkCol::class);
$mkCol->method('getResourceType')
@@ -82,7 +74,7 @@ class CalendarHomeTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
$this->expectExceptionMessage('The resource you tried to create has a reserved name');
- /** @var MkCol | MockObject $mkCol */
+ /** @var MkCol&MockObject $mkCol */
$mkCol = $this->createMock(MkCol::class);
$this->calendarHome->createExtendedCollection('contact_birthdays', $mkCol);
@@ -92,7 +84,7 @@ class CalendarHomeTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
$this->expectExceptionMessage('The resource you tried to create has a reserved name');
- /** @var MkCol | MockObject $mkCol */
+ /** @var MkCol&MockObject $mkCol */
$mkCol = $this->createMock(MkCol::class);
$this->calendarHome->createExtendedCollection('app-generated--example--foo-1', $mkCol);
diff --git a/apps/dav/tests/unit/CalDAV/CalendarImplTest.php b/apps/dav/tests/unit/CalDAV/CalendarImplTest.php
index ee9b85fafe8..88b04326cc9 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarImplTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarImplTest.php
@@ -1,10 +1,13 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\DAV\Tests\unit\CalDAV;
+use Generator;
use OCA\DAV\CalDAV\Auth\CustomPrincipalPlugin;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\CalDAV\Calendar;
@@ -20,24 +23,18 @@ use Sabre\VObject\ITip\Message;
use Sabre\VObject\Reader;
class CalendarImplTest extends \Test\TestCase {
- /** @var CalendarImpl */
- private $calendarImpl;
-
- /** @var Calendar | \PHPUnit\Framework\MockObject\MockObject */
- private $calendar;
-
- /** @var array */
- private $calendarInfo;
-
- /** @var CalDavBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $backend;
+ private Calendar&MockObject $calendar;
+ private array $calendarInfo;
+ private CalDavBackend&MockObject $backend;
+ private CalendarImpl $calendarImpl;
+ private array $mockExportCollection;
protected function setUp(): void {
parent::setUp();
$this->calendar = $this->createMock(Calendar::class);
$this->calendarInfo = [
- 'id' => 'fancy_id_123',
+ 'id' => 1,
'{DAV:}displayname' => 'user readable name 123',
'{http://apple.com/ns/ical/}calendar-color' => '#AABBCC',
'uri' => '/this/is/a/uri',
@@ -45,13 +42,16 @@ class CalendarImplTest extends \Test\TestCase {
];
$this->backend = $this->createMock(CalDavBackend::class);
- $this->calendarImpl = new CalendarImpl($this->calendar,
- $this->calendarInfo, $this->backend);
+ $this->calendarImpl = new CalendarImpl(
+ $this->calendar,
+ $this->calendarInfo,
+ $this->backend
+ );
}
public function testGetKey(): void {
- $this->assertEquals($this->calendarImpl->getKey(), 'fancy_id_123');
+ $this->assertEquals($this->calendarImpl->getKey(), 1);
}
public function testGetDisplayname(): void {
@@ -261,4 +261,48 @@ EOF;
$iTipMessage->message = $vObject;
return $iTipMessage;
}
+
+ protected function mockExportGenerator(): Generator {
+ foreach ($this->mockExportCollection as $entry) {
+ yield $entry;
+ }
+ }
+
+ public function testExport(): void {
+ // Arrange
+ // construct calendar with a 1 hour event and same start/end time zones
+ $vCalendar = new VCalendar();
+ /** @var VEvent $vEvent */
+ $vEvent = $vCalendar->add('VEVENT', []);
+ $vEvent->UID->setValue('96a0e6b1-d886-4a55-a60d-152b31401dcc');
+ $vEvent->add('DTSTART', '20240701T080000', ['TZID' => 'America/Toronto']);
+ $vEvent->add('DTEND', '20240701T090000', ['TZID' => 'America/Toronto']);
+ $vEvent->add('SUMMARY', 'Test Recurrence Event');
+ $vEvent->add('ORGANIZER', 'mailto:organizer@testing.com', ['CN' => 'Organizer']);
+ $vEvent->add('ATTENDEE', 'mailto:attendee1@testing.com', [
+ 'CN' => 'Attendee One',
+ 'CUTYPE' => 'INDIVIDUAL',
+ 'PARTSTAT' => 'NEEDS-ACTION',
+ 'ROLE' => 'REQ-PARTICIPANT',
+ 'RSVP' => 'TRUE'
+ ]);
+ // construct data store return
+ $this->mockExportCollection[] = [
+ 'id' => 1,
+ 'calendardata' => $vCalendar->serialize()
+ ];
+ $this->backend->expects($this->once())
+ ->method('exportCalendar')
+ ->with(1, $this->backend::CALENDAR_TYPE_CALENDAR, null)
+ ->willReturn($this->mockExportGenerator());
+
+ // Act
+ foreach ($this->calendarImpl->export(null) as $entry) {
+ $exported[] = $entry;
+ }
+
+ // Assert
+ $this->assertCount(1, $exported, 'Invalid exported items count');
+ }
+
}
diff --git a/apps/dav/tests/unit/CalDAV/CalendarManagerTest.php b/apps/dav/tests/unit/CalDAV/CalendarManagerTest.php
index 63d92dff40d..e8159ffe07c 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarManagerTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarManagerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,20 +18,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class CalendarManagerTest extends \Test\TestCase {
- /** @var CalDavBackend | MockObject */
- private $backend;
-
- /** @var IL10N | MockObject */
- private $l10n;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var CalendarManager */
- private $manager;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
+ private CalDavBackend&MockObject $backend;
+ private IL10N&MockObject $l10n;
+ private IConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
+ private CalendarManager $manager;
protected function setUp(): void {
parent::setUp();
@@ -54,7 +47,7 @@ class CalendarManagerTest extends \Test\TestCase {
['id' => 456, 'uri' => 'blablub2'],
]);
- /** @var IManager | MockObject $calendarManager */
+ /** @var IManager&MockObject $calendarManager */
$calendarManager = $this->createMock(Manager::class);
$registeredIds = [];
$calendarManager->expects($this->exactly(2))
diff --git a/apps/dav/tests/unit/CalDAV/CalendarTest.php b/apps/dav/tests/unit/CalDAV/CalendarTest.php
index 6433af8c340..0eff72c5c3d 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,20 +20,13 @@ use Sabre\VObject\Reader;
use Test\TestCase;
class CalendarTest extends TestCase {
-
- /** @var IL10N */
- protected $l10n;
-
- /** @var IConfig */
- protected $config;
-
- /** @var MockObject|LoggerInterface */
- protected $logger;
+ protected IL10N&MockObject $l10n;
+ protected IConfig&MockObject $config;
+ protected LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->config = $this->createMock(IConfig::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->l10n
@@ -43,12 +38,13 @@ class CalendarTest extends TestCase {
}
public function testDelete(): void {
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
- $backend->expects($this->once())->method('updateShares');
- $backend->expects($this->any())->method('getShares')->willReturn([
- ['href' => 'principal:user2']
- ]);
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
+ $backend->expects($this->never())
+ ->method('updateShares');
+ $backend->expects($this->once())
+ ->method('unshare');
+
$calendarInfo = [
'{http://owncloud.org/ns}owner-principal' => 'user1',
'principaluri' => 'user2',
@@ -61,12 +57,13 @@ class CalendarTest extends TestCase {
public function testDeleteFromGroup(): void {
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
- $backend->expects($this->once())->method('updateShares');
- $backend->expects($this->any())->method('getShares')->willReturn([
- ['href' => 'principal:group2']
- ]);
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
+ $backend->expects($this->never())
+ ->method('updateShares');
+ $backend->expects($this->once())
+ ->method('unshare');
+
$calendarInfo = [
'{http://owncloud.org/ns}owner-principal' => 'user1',
'principaluri' => 'user2',
@@ -78,7 +75,7 @@ class CalendarTest extends TestCase {
}
public function testDeleteOwn(): void {
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->never())->method('updateShares');
$backend->expects($this->never())->method('getShares');
@@ -99,7 +96,7 @@ class CalendarTest extends TestCase {
}
public function testDeleteBirthdayCalendar(): void {
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->once())->method('deleteCalendar')
->with(666);
@@ -120,7 +117,7 @@ class CalendarTest extends TestCase {
$c->delete();
}
- public function dataPropPatch() {
+ public static function dataPropPatch(): array {
return [
['user1', 'user2', [], true],
['user1', 'user2', [
@@ -150,9 +147,9 @@ class CalendarTest extends TestCase {
/**
* @dataProvider dataPropPatch
*/
- public function testPropPatch($ownerPrincipal, $principalUri, $mutations, $shared): void {
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
+ public function testPropPatch(string $ownerPrincipal, string $principalUri, array $mutations, bool $shared): void {
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
$calendarInfo = [
'{http://owncloud.org/ns}owner-principal' => $ownerPrincipal,
'principaluri' => $principalUri,
@@ -175,8 +172,8 @@ class CalendarTest extends TestCase {
* @dataProvider providesReadOnlyInfo
*/
public function testAcl($expectsWrite, $readOnlyValue, $hasOwnerSet, $uri = 'default'): void {
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->any())->method('applyShareAcl')->willReturnArgument(1);
$calendarInfo = [
'principaluri' => 'user2',
@@ -261,7 +258,7 @@ class CalendarTest extends TestCase {
$this->assertEquals($expectedAcl, $childAcl);
}
- public function providesReadOnlyInfo() {
+ public static function providesReadOnlyInfo(): array {
return [
'read-only property not set' => [true, null, true],
'read-only property is false' => [true, false, true],
@@ -275,16 +272,14 @@ class CalendarTest extends TestCase {
/**
* @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
*/
- public function testPrivateClassification($expectedChildren, $isShared): void {
+ public function testPrivateClassification(int $expectedChildren, bool $isShared): void {
$calObject0 = ['uri' => 'event-0', 'classification' => CalDavBackend::CLASSIFICATION_PUBLIC];
$calObject1 = ['uri' => 'event-1', 'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL];
$calObject2 = ['uri' => 'event-2', 'classification' => CalDavBackend::CLASSIFICATION_PRIVATE];
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->any())->method('getCalendarObjects')->willReturn([
$calObject0, $calObject1, $calObject2
]);
@@ -317,10 +312,8 @@ class CalendarTest extends TestCase {
/**
* @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
*/
- public function testConfidentialClassification($expectedChildren, $isShared): void {
+ public function testConfidentialClassification(int $expectedChildren, bool $isShared): void {
$start = '20160609';
$end = '20160610';
@@ -370,8 +363,8 @@ EOD;
$calObject1 = ['uri' => 'event-1', 'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL, 'calendardata' => $calData];
$calObject2 = ['uri' => 'event-2', 'classification' => CalDavBackend::CLASSIFICATION_PRIVATE];
- /** @var MockObject | CalDavBackend $backend */
- $backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
+ /** @var CalDavBackend&MockObject $backend */
+ $backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->any())->method('getCalendarObjects')->willReturn([
$calObject0, $calObject1, $calObject2
]);
@@ -435,7 +428,7 @@ EOD;
}
}
- public function providesConfidentialClassificationData() {
+ public static function providesConfidentialClassificationData(): array {
return [
[3, false],
[2, true]
@@ -538,7 +531,7 @@ EOD;
'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL,
'calendardata' => $confidentialObjectData];
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->createMock(CalDavBackend::class);
$backend->expects($this->any())
->method('getCalendarObjects')
@@ -617,7 +610,7 @@ EOD;
$this->fixLinebreak($confidentialObjectCleaned));
}
- private function fixLinebreak($str) {
+ private function fixLinebreak(string $str): string {
return preg_replace('~(*BSR_ANYCRLF)\R~', "\r\n", $str);
}
}
diff --git a/apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php b/apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php
index 43a7180647f..90b6f9ec0db 100644
--- a/apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/EventComparisonServiceTest.php
@@ -14,8 +14,7 @@ use Sabre\VObject\Component\VCalendar;
use Test\TestCase;
class EventComparisonServiceTest extends TestCase {
- /** @var EventComparisonService */
- private $eventComparisonService;
+ private EventComparisonService $eventComparisonService;
protected function setUp(): void {
$this->eventComparisonService = new EventComparisonService();
diff --git a/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php b/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php
new file mode 100644
index 00000000000..838dfc18f2f
--- /dev/null
+++ b/apps/dav/tests/unit/CalDAV/Export/ExportServiceTest.php
@@ -0,0 +1,81 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Tests\unit\CalDAV\Export;
+
+use Generator;
+use OCA\DAV\CalDAV\Export\ExportService;
+use OCP\Calendar\CalendarExportOptions;
+use OCP\Calendar\ICalendarExport;
+use OCP\ServerVersion;
+use PHPUnit\Framework\MockObject\MockObject;
+use Sabre\VObject\Component\VCalendar;
+
+class ExportServiceTest extends \Test\TestCase {
+ private ServerVersion&MockObject $serverVersion;
+ private ExportService $service;
+ private ICalendarExport&MockObject $calendar;
+ private array $mockExportCollection;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->serverVersion = $this->createMock(ServerVersion::class);
+ $this->serverVersion->method('getVersionString')
+ ->willReturn('32.0.0.0');
+ $this->service = new ExportService($this->serverVersion);
+ $this->calendar = $this->createMock(ICalendarExport::class);
+
+ }
+
+ protected function mockGenerator(): Generator {
+ foreach ($this->mockExportCollection as $entry) {
+ yield $entry;
+ }
+ }
+
+ public function testExport(): void {
+ // Arrange
+ // construct calendar with a 1 hour event and same start/end time zones
+ $vCalendar = new VCalendar();
+ /** @var \Sabre\VObject\Component\VEvent $vEvent */
+ $vEvent = $vCalendar->add('VEVENT', []);
+ $vEvent->UID->setValue('96a0e6b1-d886-4a55-a60d-152b31401dcc');
+ $vEvent->add('DTSTART', '20240701T080000', ['TZID' => 'America/Toronto']);
+ $vEvent->add('DTEND', '20240701T090000', ['TZID' => 'America/Toronto']);
+ $vEvent->add('SUMMARY', 'Test Recurrence Event');
+ $vEvent->add('ORGANIZER', 'mailto:organizer@testing.com', ['CN' => 'Organizer']);
+ $vEvent->add('ATTENDEE', 'mailto:attendee1@testing.com', [
+ 'CN' => 'Attendee One',
+ 'CUTYPE' => 'INDIVIDUAL',
+ 'PARTSTAT' => 'NEEDS-ACTION',
+ 'ROLE' => 'REQ-PARTICIPANT',
+ 'RSVP' => 'TRUE'
+ ]);
+ // construct calendar return
+ $options = new CalendarExportOptions();
+ $this->mockExportCollection[] = $vCalendar;
+ $this->calendar->expects($this->once())
+ ->method('export')
+ ->with($options)
+ ->willReturn($this->mockGenerator());
+
+ // Act
+ $document = '';
+ foreach ($this->service->export($this->calendar, $options) as $chunk) {
+ $document .= $chunk;
+ }
+
+ // Assert
+ $this->assertStringContainsString('BEGIN:VCALENDAR', $document, 'Exported document calendar start missing');
+ $this->assertStringContainsString('BEGIN:VEVENT', $document, 'Exported document event start missing');
+ $this->assertStringContainsString('END:VEVENT', $document, 'Exported document event end missing');
+ $this->assertStringContainsString('END:VCALENDAR', $document, 'Exported document calendar end missing');
+
+ }
+
+}
diff --git a/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php b/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
index 778df5697f0..67b2ff3555a 100644
--- a/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/Integration/ExternalCalendarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -6,10 +8,11 @@
namespace OCA\DAV\Tests\unit\CalDAV\Integration;
use OCA\DAV\CalDAV\Integration\ExternalCalendar;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ExternalCalendarTest extends TestCase {
- private $abstractExternalCalendar;
+ private ExternalCalendar&MockObject $abstractExternalCalendar;
protected function setUp(): void {
parent::setUp();
@@ -39,7 +42,7 @@ class ExternalCalendarTest extends TestCase {
$this->abstractExternalCalendar->setName('other-name');
}
- public function createDirectory():void {
+ public function createDirectory(): void {
// Check that the method is final and can't be overridden by other classes
$reflectionMethod = new \ReflectionMethod(ExternalCalendar::class, 'createDirectory');
$this->assertTrue($reflectionMethod->isFinal());
@@ -73,7 +76,7 @@ class ExternalCalendarTest extends TestCase {
ExternalCalendar::splitAppGeneratedCalendarUri($name);
}
- public function splitAppGeneratedCalendarUriDataProvider():array {
+ public static function splitAppGeneratedCalendarUriDataProvider():array {
return [
['personal'],
['foo_shared_by_admin'],
diff --git a/apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php b/apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php
index b55359cd208..3ba0b832593 100644
--- a/apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php
+++ b/apps/dav/tests/unit/CalDAV/Listener/CalendarPublicationListenerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -15,20 +17,11 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class CalendarPublicationListenerTest extends TestCase {
-
- /** @var Backend|MockObject */
- private $activityBackend;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
+ private Backend&MockObject $activityBackend;
+ private LoggerInterface&MockObject $logger;
private CalendarPublicationListener $calendarPublicationListener;
-
- /** @var CalendarPublishedEvent|MockObject */
- private $publicationEvent;
-
- /** @var CalendarUnpublishedEvent|MockObject */
- private $unpublicationEvent;
+ private CalendarPublishedEvent&MockObject $publicationEvent;
+ private CalendarUnpublishedEvent&MockObject $unpublicationEvent;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php b/apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php
index b8414ecd695..d5697a862db 100644
--- a/apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php
+++ b/apps/dav/tests/unit/CalDAV/Listener/CalendarShareUpdateListenerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -14,17 +16,10 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class CalendarShareUpdateListenerTest extends TestCase {
-
- /** @var Backend|MockObject */
- private $activityBackend;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
+ private Backend&MockObject $activityBackend;
+ private LoggerInterface&MockObject $logger;
private CalendarShareUpdateListener $calendarPublicationListener;
-
- /** @var CalendarShareUpdatedEvent|MockObject */
- private $event;
+ private CalendarShareUpdatedEvent&MockObject $event;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php b/apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php
index 589e659b9ea..cbfdfd6b9b7 100644
--- a/apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php
+++ b/apps/dav/tests/unit/CalDAV/Listener/SubscriptionListenerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -18,26 +20,13 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class SubscriptionListenerTest extends TestCase {
-
- /** @var RefreshWebcalService|MockObject */
- private $refreshWebcalService;
-
- /** @var Backend|MockObject */
- private $reminderBackend;
-
- /** @var IJobList|MockObject */
- private $jobList;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
+ private RefreshWebcalService&MockObject $refreshWebcalService;
+ private Backend&MockObject $reminderBackend;
+ private IJobList&MockObject $jobList;
+ private LoggerInterface&MockObject $logger;
private SubscriptionListener $calendarPublicationListener;
-
- /** @var SubscriptionCreatedEvent|MockObject */
- private $subscriptionCreatedEvent;
-
- /** @var SubscriptionDeletedEvent|MockObject */
- private $subscriptionDeletedEvent;
+ private SubscriptionCreatedEvent&MockObject $subscriptionCreatedEvent;
+ private SubscriptionDeletedEvent&MockObject $subscriptionDeletedEvent;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/OutboxTest.php b/apps/dav/tests/unit/CalDAV/OutboxTest.php
index def2bd80157..cc0a3f0405f 100644
--- a/apps/dav/tests/unit/CalDAV/OutboxTest.php
+++ b/apps/dav/tests/unit/CalDAV/OutboxTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,15 +9,12 @@ namespace OCA\DAV\Tests\unit\CalDAV;
use OCA\DAV\CalDAV\Outbox;
use OCP\IConfig;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class OutboxTest extends TestCase {
-
- /** @var IConfig */
- private $config;
-
- /** @var Outbox */
- private $outbox;
+ private IConfig&MockObject $config;
+ private Outbox $outbox;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/PluginTest.php b/apps/dav/tests/unit/CalDAV/PluginTest.php
index 0915fdf2646..647e4b0da81 100644
--- a/apps/dav/tests/unit/CalDAV/PluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/PluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,8 +11,7 @@ use OCA\DAV\CalDAV\Plugin;
use Test\TestCase;
class PluginTest extends TestCase {
- /** @var Plugin */
- private $plugin;
+ private Plugin $plugin;
protected function setUp(): void {
parent::setUp();
@@ -18,7 +19,7 @@ class PluginTest extends TestCase {
$this->plugin = new Plugin();
}
- public function linkProvider() {
+ public static function linkProvider(): array {
return [
[
'principals/users/MyUserName',
@@ -37,11 +38,8 @@ class PluginTest extends TestCase {
/**
* @dataProvider linkProvider
- *
- * @param $input
- * @param $expected
*/
- public function testGetCalendarHomeForPrincipal($input, $expected): void {
+ public function testGetCalendarHomeForPrincipal(string $input, string $expected): void {
$this->assertSame($expected, $this->plugin->getCalendarHomeForPrincipal($input));
}
diff --git a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php
index 075681eff7f..6acceed6f64 100644
--- a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php
+++ b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -18,6 +20,7 @@ use OCP\IL10N;
use OCP\IUserManager;
use OCP\Security\ISecureRandom;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
@@ -30,25 +33,15 @@ use Test\TestCase;
*/
class PublicCalendarRootTest extends TestCase {
public const UNIT_TEST_USER = '';
- /** @var CalDavBackend */
- private $backend;
- /** @var PublicCalendarRoot */
- private $publicCalendarRoot;
- /** @var IL10N */
- private $l10n;
- /** @var Principal|\PHPUnit\Framework\MockObject\MockObject */
- private $principal;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $groupManager;
- /** @var IConfig */
- protected $config;
-
- /** @var ISecureRandom */
- private $random;
- /** @var LoggerInterface */
- private $logger;
+ private CalDavBackend $backend;
+ private PublicCalendarRoot $publicCalendarRoot;
+ private IL10N&MockObject $l10n;
+ private Principal&MockObject $principal;
+ protected IUserManager&MockObject $userManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IConfig&MockObject $config;
+ private ISecureRandom $random;
+ private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
@@ -82,8 +75,7 @@ class PublicCalendarRootTest extends TestCase {
$sharingBackend,
false,
);
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->config = $this->createMock(IConfig::class);
$this->publicCalendarRoot = new PublicCalendarRoot($this->backend,
@@ -134,10 +126,7 @@ class PublicCalendarRootTest extends TestCase {
$this->assertSame([], $calendarResults);
}
- /**
- * @return Calendar
- */
- protected function createPublicCalendar() {
+ protected function createPublicCalendar(): Calendar {
$this->backend->createCalendar(self::UNIT_TEST_USER, 'Example', []);
$calendarInfo = $this->backend->getCalendarsForUser(self::UNIT_TEST_USER)[0];
diff --git a/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php b/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php
index 0609892c279..7e8f714ef42 100644
--- a/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,15 +18,13 @@ class PublicCalendarTest extends CalendarTest {
/**
* @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
*/
- public function testPrivateClassification($expectedChildren, $isShared): void {
+ public function testPrivateClassification(int $expectedChildren, bool $isShared): void {
$calObject0 = ['uri' => 'event-0', 'classification' => CalDavBackend::CLASSIFICATION_PUBLIC];
$calObject1 = ['uri' => 'event-1', 'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL];
$calObject2 = ['uri' => 'event-2', 'classification' => CalDavBackend::CLASSIFICATION_PRIVATE];
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
$backend->expects($this->any())->method('getCalendarObjects')->willReturn([
$calObject0, $calObject1, $calObject2
@@ -44,9 +44,9 @@ class PublicCalendarTest extends CalendarTest {
'id' => 666,
'uri' => 'cal',
];
- /** @var MockObject | IConfig $config */
+ /** @var IConfig&MockObject $config */
$config = $this->createMock(IConfig::class);
- /** @var MockObject | LoggerInterface $logger */
+ /** @var LoggerInterface&MockObject $logger */
$logger = $this->createMock(LoggerInterface::class);
$c = new PublicCalendar($backend, $calendarInfo, $this->l10n, $config, $logger);
$children = $c->getChildren();
@@ -59,10 +59,8 @@ class PublicCalendarTest extends CalendarTest {
/**
* @dataProvider providesConfidentialClassificationData
- * @param int $expectedChildren
- * @param bool $isShared
*/
- public function testConfidentialClassification($expectedChildren, $isShared): void {
+ public function testConfidentialClassification(int $expectedChildren, bool $isShared): void {
$start = '20160609';
$end = '20160610';
@@ -112,7 +110,7 @@ EOD;
$calObject1 = ['uri' => 'event-1', 'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL, 'calendardata' => $calData];
$calObject2 = ['uri' => 'event-2', 'classification' => CalDavBackend::CLASSIFICATION_PRIVATE];
- /** @var MockObject | CalDavBackend $backend */
+ /** @var CalDavBackend&MockObject $backend */
$backend = $this->getMockBuilder(CalDavBackend::class)->disableOriginalConstructor()->getMock();
$backend->expects($this->any())->method('getCalendarObjects')->willReturn([
$calObject0, $calObject1, $calObject2
@@ -132,9 +130,9 @@ EOD;
'id' => 666,
'uri' => 'cal',
];
- /** @var MockObject | IConfig $config */
+ /** @var IConfig&MockObject $config */
$config = $this->createMock(IConfig::class);
- /** @var MockObject | LoggerInterface $logger */
+ /** @var LoggerInterface&MockObject $logger */
$logger = $this->createMock(LoggerInterface::class);
$c = new PublicCalendar($backend, $calendarInfo, $this->l10n, $config, $logger);
diff --git a/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php b/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php
index 769e1537646..5344ec5d7cd 100644
--- a/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php
+++ b/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -43,9 +45,9 @@ class PublisherTest extends TestCase {
}
- protected $elementMap = [];
- protected $namespaceMap = ['DAV:' => 'd'];
- protected $contextUri = '/';
+ protected array $elementMap = [];
+ protected array $namespaceMap = ['DAV:' => 'd'];
+ protected string $contextUri = '/';
private function write($input) {
$writer = new Writer();
diff --git a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php
index 8aecdf7f0dd..c66a3639040 100644
--- a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php
+++ b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -10,6 +12,7 @@ use OCA\DAV\CalDAV\Publishing\PublishPlugin;
use OCP\IConfig;
use OCP\IRequest;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Server;
use Sabre\DAV\SimpleCollection;
use Sabre\HTTP\Request;
@@ -17,31 +20,21 @@ use Sabre\HTTP\Response;
use Test\TestCase;
class PublishingTest extends TestCase {
-
- /** @var PublishPlugin */
- private $plugin;
- /** @var Server */
- private $server;
- /** @var Calendar | \PHPUnit\Framework\MockObject\MockObject */
- private $book;
- /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IURLGenerator | \PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
+ private PublishPlugin $plugin;
+ private Server $server;
+ private Calendar&MockObject $book;
+ private IConfig&MockObject $config;
+ private IURLGenerator&MockObject $urlGenerator;
protected function setUp(): void {
parent::setUp();
- $this->config = $this->getMockBuilder(IConfig::class)->
- disableOriginalConstructor()->
- getMock();
+ $this->config = $this->createMock(IConfig::class);
$this->config->expects($this->any())->method('getSystemValue')
->with($this->equalTo('secret'))
->willReturn('mysecret');
- $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->
- disableOriginalConstructor()->
- getMock();
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
/** @var IRequest $request */
$this->plugin = new PublishPlugin($this->config, $this->urlGenerator);
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php b/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php
index e1a0485f8a9..356acf2dd7f 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/BackendTest.php
@@ -10,27 +10,20 @@ namespace OCA\DAV\Tests\unit\CalDAV\Reminder;
use OCA\DAV\CalDAV\Reminder\Backend as ReminderBackend;
use OCP\AppFramework\Utility\ITimeFactory;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BackendTest extends TestCase {
-
- /**
- * Reminder Backend
- *
- * @var ReminderBackend|\PHPUnit\Framework\MockObject\MockObject
- */
- private $reminderBackend;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
+ private ReminderBackend $reminderBackend;
+ private ITimeFactory&MockObject $timeFactory;
protected function setUp(): void {
parent::setUp();
$query = self::$realDatabase->getQueryBuilder();
- $query->delete('calendar_reminders')->execute();
- $query->delete('calendarobjects')->execute();
- $query->delete('calendars')->execute();
+ $query->delete('calendar_reminders')->executeStatement();
+ $query->delete('calendarobjects')->executeStatement();
+ $query->delete('calendars')->executeStatement();
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->reminderBackend = new ReminderBackend(self::$realDatabase, $this->timeFactory);
@@ -40,9 +33,11 @@ class BackendTest extends TestCase {
protected function tearDown(): void {
$query = self::$realDatabase->getQueryBuilder();
- $query->delete('calendar_reminders')->execute();
- $query->delete('calendarobjects')->execute();
- $query->delete('calendars')->execute();
+ $query->delete('calendar_reminders')->executeStatement();
+ $query->delete('calendarobjects')->executeStatement();
+ $query->delete('calendars')->executeStatement();
+
+ parent::tearDown();
}
@@ -235,7 +230,7 @@ class BackendTest extends TestCase {
$query = self::$realDatabase->getQueryBuilder();
$rows = $query->select('*')
->from('calendar_reminders')
- ->execute()
+ ->executeQuery()
->fetchAll();
$this->assertCount(4, $rows);
@@ -251,7 +246,7 @@ class BackendTest extends TestCase {
$row = $query->select('notification_date')
->from('calendar_reminders')
->where($query->expr()->eq('id', $query->createNamedParameter($reminderId)))
- ->execute()
+ ->executeQuery()
->fetch();
$this->assertEquals((int)$row['notification_date'], 123700);
@@ -266,7 +261,7 @@ class BackendTest extends TestCase {
'principaluri' => $query->createNamedParameter('principals/users/user001'),
'displayname' => $query->createNamedParameter('Displayname 123'),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendars')
@@ -275,7 +270,7 @@ class BackendTest extends TestCase {
'principaluri' => $query->createNamedParameter('principals/users/user002'),
'displayname' => $query->createNamedParameter('Displayname 99'),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendarobjects')
@@ -285,7 +280,7 @@ class BackendTest extends TestCase {
'calendarid' => $query->createNamedParameter(1),
'size' => $query->createNamedParameter(42),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendarobjects')
@@ -295,7 +290,7 @@ class BackendTest extends TestCase {
'calendarid' => $query->createNamedParameter(1),
'size' => $query->createNamedParameter(42),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendarobjects')
@@ -305,7 +300,7 @@ class BackendTest extends TestCase {
'calendarid' => $query->createNamedParameter(99),
'size' => $query->createNamedParameter(42),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendar_reminders')
@@ -323,7 +318,7 @@ class BackendTest extends TestCase {
'notification_date' => $query->createNamedParameter(123456),
'is_repeat_based' => $query->createNamedParameter(0),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendar_reminders')
@@ -341,7 +336,7 @@ class BackendTest extends TestCase {
'notification_date' => $query->createNamedParameter(123456),
'is_repeat_based' => $query->createNamedParameter(0),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendar_reminders')
@@ -359,7 +354,7 @@ class BackendTest extends TestCase {
'notification_date' => $query->createNamedParameter(123499),
'is_repeat_based' => $query->createNamedParameter(0),
])
- ->execute();
+ ->executeStatement();
$query = self::$realDatabase->getQueryBuilder();
$query->insert('calendar_reminders')
@@ -377,6 +372,6 @@ class BackendTest extends TestCase {
'notification_date' => $query->createNamedParameter(123600),
'is_repeat_based' => $query->createNamedParameter(0),
])
- ->execute();
+ ->executeStatement();
}
}
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTestCase.php
index 60ef1df43d5..70b374298ea 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/AbstractNotificationProviderTestCase.php
@@ -14,44 +14,21 @@ use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\L10N\IFactory as L10NFactory;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\VObject\Component\VCalendar;
use Test\TestCase;
-abstract class AbstractNotificationProviderTest extends TestCase {
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
-
- /** @var L10NFactory|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10nFactory;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10n;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $urlGenerator;
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
-
- /** @var AbstractProvider|\PHPUnit\Framework\MockObject\MockObject */
- protected $provider;
-
- /**
- * @var VCalendar
- */
- protected $vcalendar;
-
- /**
- * @var string
- */
- protected $calendarDisplayName;
-
- /**
- * @var IUser|\PHPUnit\Framework\MockObject\MockObject
- */
- protected $user;
+abstract class AbstractNotificationProviderTestCase extends TestCase {
+ protected LoggerInterface&MockObject $logger;
+ protected L10NFactory&MockObject $l10nFactory;
+ protected IL10N&MockObject $l10n;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected IConfig&MockObject $config;
+ protected AbstractProvider $provider;
+ protected VCalendar $vcalendar;
+ protected string $calendarDisplayName;
+ protected IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php
index 42eb0b0faa3..f7fbac2c407 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/EmailProviderTest.php
@@ -18,11 +18,9 @@ use OCP\Util;
use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCalendar;
-class EmailProviderTest extends AbstractNotificationProviderTest {
+class EmailProviderTest extends AbstractNotificationProviderTestCase {
public const USER_EMAIL = 'frodo@hobb.it';
-
- /** @var IMailer|MockObject */
- private $mailer;
+ private IMailer&MockObject $mailer;
protected function setUp(): void {
parent::setUp();
@@ -97,18 +95,12 @@ class EmailProviderTest extends AbstractNotificationProviderTest {
$this->mailer->expects($this->exactly(4))
->method('validateMailAddress')
- ->withConsecutive(
- ['uid1@example.com'],
- ['uid2@example.com'],
- ['uid3@example.com'],
- ['invalid'],
- )
- ->willReturnOnConsecutiveCalls(
- true,
- true,
- true,
- false,
- );
+ ->willReturnMap([
+ ['uid1@example.com', true],
+ ['uid2@example.com', true],
+ ['uid3@example.com', true],
+ ['invalid', false],
+ ]);
$this->mailer->expects($this->exactly(3))
->method('createMessage')
@@ -119,14 +111,18 @@ class EmailProviderTest extends AbstractNotificationProviderTest {
$message22
);
- $this->mailer->expects($this->exactly(3))
+ $calls = [
+ [$message11],
+ [$message21],
+ [$message22],
+ ];
+ $this->mailer->expects($this->exactly(count($calls)))
->method('send')
- ->withConsecutive(
- [$message11],
- [$message21],
- [$message22],
- )
- ->willReturn([]);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return [];
+ });
$this->setupURLGeneratorMock(2);
@@ -215,16 +211,22 @@ class EmailProviderTest extends AbstractNotificationProviderTest {
$message22,
$message23,
);
- $this->mailer->expects($this->exactly(6))
+
+ $calls = [
+ [$message11],
+ [$message12],
+ [$message13],
+ [$message21],
+ [$message22],
+ [$message23],
+ ];
+ $this->mailer->expects($this->exactly(count($calls)))
->method('send')
- ->withConsecutive(
- [$message11],
- [$message12],
- [$message13],
- [$message21],
- [$message22],
- [$message23],
- )->willReturn([]);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return [];
+ });
$this->setupURLGeneratorMock(2);
$vcalendar = $this->getAttendeeVCalendar();
@@ -293,12 +295,18 @@ class EmailProviderTest extends AbstractNotificationProviderTest {
$message12,
$message13,
);
- $this->mailer->expects($this->exactly(2))
+
+ $calls = [
+ [$message12],
+ [$message13],
+ ];
+ $this->mailer->expects($this->exactly(count($calls)))
->method('send')
- ->withConsecutive(
- [$message12],
- [$message13],
- )->willReturn([]);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return [];
+ });
$this->setupURLGeneratorMock(1);
$vcalendar = $this->getAttendeeVCalendar();
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php
index b090fa0e5e7..c601463363b 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProvider/PushProviderTest.php
@@ -13,13 +13,11 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IUser;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
+use PHPUnit\Framework\MockObject\MockObject;
-class PushProviderTest extends AbstractNotificationProviderTest {
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $manager;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
+class PushProviderTest extends AbstractNotificationProviderTestCase {
+ private IManager&MockObject $manager;
+ private ITimeFactory&MockObject $timeFactory;
protected function setUp(): void {
parent::setUp();
@@ -96,20 +94,23 @@ class PushProviderTest extends AbstractNotificationProviderTest {
$this->manager->expects($this->exactly(3))
->method('createNotification')
- ->with()
->willReturnOnConsecutiveCalls(
$notification1,
$notification2,
$notification3
);
+ $calls = [
+ $notification1,
+ $notification2,
+ $notification3,
+ ];
$this->manager->expects($this->exactly(3))
->method('notify')
- ->withConsecutive(
- [$notification1],
- [$notification2],
- [$notification3],
- );
+ ->willReturnCallback(function ($notification) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, $notification);
+ });
$this->provider->send($this->vcalendar->VEVENT, $this->calendarDisplayName, [], $users);
}
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php
index 6d0e62f505b..6b813ed0228 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotificationProviderManagerTest.php
@@ -21,9 +21,7 @@ use Test\TestCase;
* @group DB
*/
class NotificationProviderManagerTest extends TestCase {
-
- /** @var NotificationProviderManager|\PHPUnit\Framework\MockObject\MockObject */
- private $providerManager;
+ private NotificationProviderManager $providerManager;
/**
* @throws QueryException
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php b/apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php
index dcf11a1a6b8..147446152d8 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/NotifierTest.php
@@ -21,20 +21,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class NotifierTest extends TestCase {
- /** @var Notifier */
- protected $notifier;
-
- /** @var IFactory|MockObject */
- protected $factory;
-
- /** @var IURLGenerator|MockObject */
- protected $urlGenerator;
-
- /** @var IL10N|MockObject */
- protected $l10n;
-
- /** @var ITimeFactory|MockObject */
- protected $timeFactory;
+ protected IFactory&MockObject $factory;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected IL10N&MockObject $l10n;
+ protected ITimeFactory&MockObject $timeFactory;
+ protected Notifier $notifier;
protected function setUp(): void {
parent::setUp();
@@ -92,7 +83,7 @@ class NotifierTest extends TestCase {
$this->expectException(UnknownNotificationException::class);
$this->expectExceptionMessage('Notification not from this app');
- /** @var INotification|MockObject $notification */
+ /** @var INotification&MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
@@ -109,7 +100,7 @@ class NotifierTest extends TestCase {
$this->expectException(UnknownNotificationException::class);
$this->expectExceptionMessage('Unknown subject');
- /** @var INotification|MockObject $notification */
+ /** @var INotification&MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
@@ -130,7 +121,7 @@ class NotifierTest extends TestCase {
return $d1->diff($d2)->y < 0;
}
- public function dataPrepare(): array {
+ public static function dataPrepare(): array {
return [
[
'calendar_reminder',
@@ -181,16 +172,9 @@ class NotifierTest extends TestCase {
/**
* @dataProvider dataPrepare
- *
- * @param string $subjectType
- * @param array $subjectParams
- * @param string $subject
- * @param array $messageParams
- * @param string $message
- * @throws \Exception
*/
public function testPrepare(string $subjectType, array $subjectParams, string $subject, array $messageParams, string $message): void {
- /** @var INotification|MockObject $notification */
+ /** @var INotification&MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
@@ -235,7 +219,7 @@ class NotifierTest extends TestCase {
}
public function testPassedEvent(): void {
- /** @var INotification|MockObject $notification */
+ /** @var INotification&MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
diff --git a/apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php b/apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php
index 198c8d97b12..4b6735ee297 100644
--- a/apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php
@@ -26,35 +26,16 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class ReminderServiceTest extends TestCase {
- /** @var Backend|MockObject */
- private $backend;
-
- /** @var NotificationProviderManager|MockObject */
- private $notificationProviderManager;
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var IGroupManager|MockObject */
- private $groupManager;
-
- /** @var CalDavBackend|MockObject */
- private $caldavBackend;
-
- /** @var ITimeFactory|MockObject */
- private $timeFactory;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var ReminderService */
- private $reminderService;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
-
- /** @var MockObject|Principal */
- private $principalConnector;
+ private Backend&MockObject $backend;
+ private NotificationProviderManager&MockObject $notificationProviderManager;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private CalDavBackend&MockObject $caldavBackend;
+ private ITimeFactory&MockObject $timeFactory;
+ private IConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
+ private Principal&MockObject $principalConnector;
+ private ReminderService $reminderService;
public const CALENDAR_DATA = <<<EOD
BEGIN:VCALENDAR
@@ -252,9 +233,7 @@ END:VTIMEZONE
END:VCALENDAR
ICS;
-
- /** @var null|string */
- private $oldTimezone;
+ private ?string $oldTimezone;
protected function setUp(): void {
parent::setUp();
@@ -305,13 +284,17 @@ ICS;
'component' => 'vevent',
];
- $this->backend->expects($this->exactly(2))
+ $calls = [
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1465429500, false],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', '35b3eae8e792aa2209f0b4e1a302f105', 'DISPLAY', false, 1465344000, false]
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1465429500, false],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', '35b3eae8e792aa2209f0b4e1a302f105', 'DISPLAY', false, 1465344000, false]
- )
- ->willReturn(1);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return 1;
+ });
$this->timeFactory->expects($this->once())
->method('getDateTime')
@@ -353,12 +336,7 @@ EOD;
];
$this->backend->expects($this->never())
- ->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', false, null, false, '5c70531aab15c92b52518ae10a2f78a4', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1465429500, false],
- [1337, 42, 'wej2z68l9h', false, null, false, '5c70531aab15c92b52518ae10a2f78a4', '35b3eae8e792aa2209f0b4e1a302f105', 'DISPLAY', false, 1465344000, false]
- )
- ->willReturn(1);
+ ->method('insertReminder');
$this->reminderService->onCalendarObjectCreate($objectData);
}
@@ -371,16 +349,20 @@ EOD;
'component' => 'vevent',
];
- $this->backend->expects($this->exactly(5))
+ $calls = [
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429500, false],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429620, true],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429740, true],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429860, true],
+ [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429980, true]
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429500, false],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429620, true],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429740, true],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429860, true],
- [1337, 42, 'wej2z68l9h', false, 1465430400, false, '5c70531aab15c92b52518ae10a2f78a4', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1465429980, true]
- )
- ->willReturn(1);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return 1;
+ });
$this->timeFactory->expects($this->once())
->method('getDateTime')
@@ -398,13 +380,17 @@ EOD;
'component' => 'vevent',
];
- $this->backend->expects($this->exactly(2))
+ $calls = [
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1467243900, false],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467158400, false]
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'de919af7429d3b5c11e8b9d289b411a6', 'EMAIL', true, 1467243900, false],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467158400, false]
- )
- ->willReturn(1);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return 1;
+ });
$this->timeFactory->expects($this->once())
->method('getDateTime')
@@ -521,17 +507,23 @@ EOD;
->willReturn([
'{urn:ietf:params:xml:ns:caldav}calendar-timezone' => null,
]);
- $this->backend->expects($this->exactly(6))
+
+ $calls = [
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467243900, false],
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244020, true],
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244140, true],
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244260, true],
+ [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244380, true],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467158400, false]
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467243900, false],
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244020, true],
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244140, true],
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244260, true],
- [1337, 42, 'wej2z68l9h', true, 1467244800, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467244380, true],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467158400, false]
- )
- ->willReturn(1);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return 1;
+ });
+
$this->timeFactory->expects($this->once())
->method('getDateTime')
->with()
@@ -556,9 +548,7 @@ EOD;
$expectedReminderTimstamp = (new DateTime('2023-02-04T08:00:00', new DateTimeZone('Europe/Vienna')))->getTimestamp();
$this->backend->expects(self::once())
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, self::anything(), false, self::anything(), false, self::anything(), self::anything(), self::anything(), true, $expectedReminderTimstamp, false],
- )
+ ->with(1337, 42, self::anything(), false, self::anything(), false, self::anything(), self::anything(), self::anything(), true, $expectedReminderTimstamp, false)
->willReturn(1);
$this->caldavBackend->expects(self::once())
->method('getCalendarById')
@@ -684,22 +674,22 @@ EOD;
$provider3 = $this->createMock(INotificationProvider::class);
$provider4 = $this->createMock(INotificationProvider::class);
$provider5 = $this->createMock(INotificationProvider::class);
- $this->notificationProviderManager->expects($this->exactly(5))
+
+ $getProviderCalls = [
+ ['EMAIL', $provider1],
+ ['EMAIL', $provider2],
+ ['DISPLAY', $provider3],
+ ['EMAIL', $provider4],
+ ['EMAIL', $provider5],
+ ];
+ $this->notificationProviderManager->expects($this->exactly(count($getProviderCalls)))
->method('getProvider')
- ->withConsecutive(
- ['EMAIL'],
- ['EMAIL'],
- ['DISPLAY'],
- ['EMAIL'],
- ['EMAIL'],
- )
- ->willReturnOnConsecutiveCalls(
- $provider1,
- $provider2,
- $provider3,
- $provider4,
- $provider5,
- );
+ ->willReturnCallback(function () use (&$getProviderCalls) {
+ $expected = array_shift($getProviderCalls);
+ $return = array_pop($expected);
+ $this->assertEquals($expected, func_get_args());
+ return $return;
+ });
$user = $this->createMock(IUser::class);
$this->userManager->expects($this->exactly(5))
@@ -748,20 +738,36 @@ EOD;
return true;
}, 'Displayname 123', $user));
+ $removeReminderCalls = [
+ [1],
+ [2],
+ [3],
+ [4],
+ [5],
+ ];
$this->backend->expects($this->exactly(5))
->method('removeReminder')
- ->withConsecutive([1], [2], [3], [4], [5]);
- $this->backend->expects($this->exactly(6))
+ ->willReturnCallback(function () use (&$removeReminderCalls) {
+ $expected = array_shift($removeReminderCalls);
+ $this->assertEquals($expected, func_get_args());
+ });
+
+
+ $insertReminderCalls = [
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848700, false],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848820, true],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848940, true],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467849060, true],
+ [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467849180, true],
+ [1337, 42, 'wej2z68l9h', true, 1468454400, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467763200, false],
+ ];
+ $this->backend->expects($this->exactly(count($insertReminderCalls)))
->method('insertReminder')
- ->withConsecutive(
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848700, false],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848820, true],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467848940, true],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467849060, true],
- [1337, 42, 'wej2z68l9h', true, 1467849600, false, 'fbdb2726bc0f7dfacac1d881c1453e20', 'ecacbf07d413c3c78d1ac7ad8c469602', 'EMAIL', true, 1467849180, true],
- [1337, 42, 'wej2z68l9h', true, 1468454400, false, 'fbdb2726bc0f7dfacac1d881c1453e20', '8996992118817f9f311ac5cc56d1cc97', 'EMAIL', true, 1467763200, false],
- )
- ->willReturn(99);
+ ->willReturnCallback(function () use (&$insertReminderCalls) {
+ $expected = array_shift($insertReminderCalls);
+ $this->assertEquals($expected, func_get_args());
+ return 99;
+ });
$this->timeFactory->method('getDateTime')
->willReturn(DateTime::createFromFormat(DateTime::ATOM, '2016-06-08T00:00:00+00:00'));
diff --git a/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTest.php b/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php
index b2fd9cfb93f..26dbcc0f38c 100644
--- a/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/ResourceBooking/AbstractPrincipalBackendTestCase.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,40 +14,22 @@ use OCA\DAV\CalDAV\ResourceBooking\RoomPrincipalBackend;
use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\PropPatch;
use Test\TestCase;
-abstract class AbstractPrincipalBackendTest extends TestCase {
- /** @var ResourcePrincipalBackend|RoomPrincipalBackend */
- protected $principalBackend;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
-
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $groupManager;
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
-
- /** @var ProxyMapper|\PHPUnit\Framework\MockObject\MockObject */
- protected $proxyMapper;
-
- /** @var string */
- protected $mainDbTable;
-
- /** @var string */
- protected $metadataDbTable;
-
- /** @var string */
- protected $foreignKey;
-
- /** @var string */
- protected $principalPrefix;
-
- /** @var string */
- protected $expectedCUType;
+abstract class AbstractPrincipalBackendTestCase extends TestCase {
+ protected ResourcePrincipalBackend|RoomPrincipalBackend $principalBackend;
+ protected IUserSession&MockObject $userSession;
+ protected IGroupManager&MockObject $groupManager;
+ protected LoggerInterface&MockObject $logger;
+ protected ProxyMapper&MockObject $proxyMapper;
+ protected string $mainDbTable;
+ protected string $metadataDbTable;
+ protected string $foreignKey;
+ protected string $principalPrefix;
+ protected string $expectedCUType;
protected function setUp(): void {
parent::setUp();
@@ -59,10 +43,10 @@ abstract class AbstractPrincipalBackendTest extends TestCase {
protected function tearDown(): void {
$query = self::$realDatabase->getQueryBuilder();
- $query->delete('calendar_resources')->execute();
- $query->delete('calendar_resources_md')->execute();
- $query->delete('calendar_rooms')->execute();
- $query->delete('calendar_rooms_md')->execute();
+ $query->delete('calendar_resources')->executeStatement();
+ $query->delete('calendar_resources_md')->executeStatement();
+ $query->delete('calendar_rooms')->executeStatement();
+ $query->delete('calendar_rooms_md')->executeStatement();
}
public function testGetPrincipalsByPrefix(): void {
@@ -214,38 +198,43 @@ abstract class AbstractPrincipalBackendTest extends TestCase {
->with($this->principalPrefix . '/backend1-res1')
->willReturn([]);
+ $calls = [
+ function ($proxy) {
+ /** @var Proxy $proxy */
+ if ($proxy->getOwnerId() !== $this->principalPrefix . '/backend1-res1') {
+ return false;
+ }
+ if ($proxy->getProxyId() !== $this->principalPrefix . '/backend1-res2') {
+ return false;
+ }
+ if ($proxy->getPermissions() !== 3) {
+ return false;
+ }
+
+ return true;
+ },
+ function ($proxy) {
+ /** @var Proxy $proxy */
+ if ($proxy->getOwnerId() !== $this->principalPrefix . '/backend1-res1') {
+ return false;
+ }
+ if ($proxy->getProxyId() !== $this->principalPrefix . '/backend2-res3') {
+ return false;
+ }
+ if ($proxy->getPermissions() !== 3) {
+ return false;
+ }
+
+ return true;
+ }
+ ];
$this->proxyMapper->expects($this->exactly(2))
->method('insert')
- ->withConsecutive(
- [$this->callback(function ($proxy) {
- /** @var Proxy $proxy */
- if ($proxy->getOwnerId() !== $this->principalPrefix . '/backend1-res1') {
- return false;
- }
- if ($proxy->getProxyId() !== $this->principalPrefix . '/backend1-res2') {
- return false;
- }
- if ($proxy->getPermissions() !== 3) {
- return false;
- }
-
- return true;
- })],
- [$this->callback(function ($proxy) {
- /** @var Proxy $proxy */
- if ($proxy->getOwnerId() !== $this->principalPrefix . '/backend1-res1') {
- return false;
- }
- if ($proxy->getProxyId() !== $this->principalPrefix . '/backend2-res3') {
- return false;
- }
- if ($proxy->getPermissions() !== 3) {
- return false;
- }
-
- return true;
- })],
- );
+ ->willReturnCallback(function ($proxy) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertTrue($expected($proxy));
+ return $proxy;
+ });
$this->principalBackend->setGroupMemberSet($this->principalPrefix . '/backend1-res1/calendar-proxy-write', [$this->principalPrefix . '/backend1-res2', $this->principalPrefix . '/backend2-res3']);
}
@@ -281,7 +270,7 @@ abstract class AbstractPrincipalBackendTest extends TestCase {
$actual);
}
- public function dataSearchPrincipals() {
+ public static function dataSearchPrincipals(): array {
// data providers are called before we subclass
// this class, $this->principalPrefix is null
// at that point, so we need this hack
diff --git a/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php b/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php
index d430afb0b01..168e21c3a91 100644
--- a/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/ResourceBooking/ResourcePrincipalBackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,7 +9,7 @@ namespace OCA\DAV\Tests\unit\CalDAV\ResourceBooking;
use OCA\DAV\CalDAV\ResourceBooking\ResourcePrincipalBackend;
-class ResourcePrincipalBackendTest extends AbstractPrincipalBackendTest {
+class ResourcePrincipalBackendTest extends AbstractPrincipalBackendTestCase {
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php b/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php
index cd63a3512ae..8a53b0ee25e 100644
--- a/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/ResourceBooking/RoomPrincipalBackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,7 +9,7 @@ namespace OCA\DAV\Tests\unit\CalDAV\ResourceBooking;
use OCA\DAV\CalDAV\ResourceBooking\RoomPrincipalBackend;
-class RoomPrincipalBackendTest extends AbstractPrincipalBackendTest {
+class RoomPrincipalBackendTest extends AbstractPrincipalBackendTestCase {
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php
index 0137f528355..8e71bfa6edf 100644
--- a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -36,54 +38,22 @@ interface IMailServiceMock extends IMailService, IMailMessageSend {
}
class IMipPluginTest extends TestCase {
-
- /** @var IMessage|MockObject */
- private $mailMessage;
-
- /** @var IMailer|MockObject */
- private $mailer;
-
- /** @var IEMailTemplate|MockObject */
- private $emailTemplate;
-
- /** @var IAttachment|MockObject */
- private $emailAttachment;
-
- /** @var ITimeFactory|MockObject */
- private $timeFactory;
-
- /** @var IAppConfig|MockObject */
- private $config;
-
- /** @var IUserSession|MockObject */
- private $userSession;
-
- /** @var IUser|MockObject */
- private $user;
-
- /** @var IMipPlugin */
- private $plugin;
-
- /** @var IMipService|MockObject */
- private $service;
-
- /** @var Defaults|MockObject */
- private $defaults;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
- /** @var EventComparisonService|MockObject */
- private $eventComparisonService;
-
- /** @var IMailManager|MockObject */
- private $mailManager;
-
- /** @var IMailService|IMailMessageSend|MockObject */
- private $mailService;
-
- /** @var IMailMessageNew|MockObject */
- private $mailMessageNew;
+ private IMessage&MockObject $mailMessage;
+ private IMailer&MockObject $mailer;
+ private IEMailTemplate&MockObject $emailTemplate;
+ private IAttachment&MockObject $emailAttachment;
+ private ITimeFactory&MockObject $timeFactory;
+ private IAppConfig&MockObject $config;
+ private IUserSession&MockObject $userSession;
+ private IUser&MockObject $user;
+ private IMipPlugin $plugin;
+ private IMipService&MockObject $service;
+ private Defaults&MockObject $defaults;
+ private LoggerInterface&MockObject $logger;
+ private EventComparisonService&MockObject $eventComparisonService;
+ private IMailManager&MockObject $mailManager;
+ private IMailServiceMock&MockObject $mailService;
+ private IMailMessageNew&MockObject $mailMessageNew;
protected function setUp(): void {
$this->mailMessage = $this->createMock(IMessage::class);
@@ -219,6 +189,10 @@ class IMipPluginTest extends TestCase {
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
+ ->method('isCircle')
+ ->with($atnd)
+ ->willReturn(false);
+ $this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, $oldVEvent)
->willReturn($data);
@@ -322,6 +296,88 @@ class IMipPluginTest extends TestCase {
->with($room)
->willReturn(true);
$this->service->expects(self::never())
+ ->method('isCircle');
+ $this->service->expects(self::never())
+ ->method('buildBodyData');
+ $this->user->expects(self::any())
+ ->method('getUID')
+ ->willReturn('user1');
+ $this->user->expects(self::any())
+ ->method('getDisplayName')
+ ->willReturn('Mr. Wizard');
+ $this->userSession->expects(self::any())
+ ->method('getUser')
+ ->willReturn($this->user);
+ $this->service->expects(self::never())
+ ->method('getFrom');
+ $this->service->expects(self::never())
+ ->method('addSubjectAndHeading');
+ $this->service->expects(self::never())
+ ->method('addBulletList');
+ $this->service->expects(self::never())
+ ->method('getAttendeeRsvpOrReqForParticipant');
+ $this->config->expects(self::never())
+ ->method('getValueString');
+ $this->service->expects(self::never())
+ ->method('createInvitationToken');
+ $this->service->expects(self::never())
+ ->method('addResponseButtons');
+ $this->service->expects(self::never())
+ ->method('addMoreOptionsButton');
+ $this->mailer->expects(self::never())
+ ->method('send');
+ $this->plugin->schedule($message);
+ $this->assertEquals('1.0', $message->getScheduleStatus());
+ }
+
+ public function testAttendeeIsCircle(): void {
+ $message = new Message();
+ $message->method = 'REQUEST';
+ $newVCalendar = new VCalendar();
+ $newVevent = new VEvent($newVCalendar, 'one', array_merge([
+ 'UID' => 'uid-1234',
+ 'SEQUENCE' => 1,
+ 'SUMMARY' => 'Fellowship meeting without (!) Boromir',
+ 'DTSTART' => new \DateTime('2016-01-01 00:00:00')
+ ], []));
+ $newVevent->add('ORGANIZER', 'mailto:gandalf@wiz.ard');
+ $newVevent->add('ATTENDEE', 'mailto:' . 'circle+82utEV1Fle8wvxndZLK5TVAPtxj8IIe@middle.earth', ['RSVP' => 'TRUE', 'CN' => 'The Fellowship', 'CUTYPE' => 'GROUP']);
+ $newVevent->add('ATTENDEE', 'mailto:' . 'boromir@tra.it.or', ['RSVP' => 'TRUE', 'MEMBER' => 'circle+82utEV1Fle8wvxndZLK5TVAPtxj8IIe@middle.earth']);
+ $message->message = $newVCalendar;
+ $message->sender = 'mailto:gandalf@wiz.ard';
+ $message->senderName = 'Mr. Wizard';
+ $message->recipient = 'mailto:' . 'circle+82utEV1Fle8wvxndZLK5TVAPtxj8IIe@middle.earth';
+ $attendees = $newVevent->select('ATTENDEE');
+ $circle = '';
+ foreach ($attendees as $attendee) {
+ if (strcasecmp($attendee->getValue(), $message->recipient) === 0) {
+ $circle = $attendee;
+ }
+ }
+ $this->assertNotEmpty($circle, 'Failed to find attendee belonging to the circle');
+ $this->service->expects(self::once())
+ ->method('getLastOccurrence')
+ ->willReturn(1496912700);
+ $this->mailer->expects(self::once())
+ ->method('validateMailAddress')
+ ->with('circle+82utEV1Fle8wvxndZLK5TVAPtxj8IIe@middle.earth')
+ ->willReturn(true);
+ $this->eventComparisonService->expects(self::once())
+ ->method('findModified')
+ ->willReturn(['new' => [$newVevent], 'old' => null]);
+ $this->service->expects(self::once())
+ ->method('getCurrentAttendee')
+ ->with($message)
+ ->willReturn($circle);
+ $this->service->expects(self::once())
+ ->method('isRoomOrResource')
+ ->with($circle)
+ ->willReturn(false);
+ $this->service->expects(self::once())
+ ->method('isCircle')
+ ->with($circle)
+ ->willReturn(true);
+ $this->service->expects(self::never())
->method('buildBodyData');
$this->user->expects(self::any())
->method('getUID')
@@ -423,6 +479,10 @@ class IMipPluginTest extends TestCase {
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
+ ->method('isCircle')
+ ->with($atnd)
+ ->willReturn(false);
+ $this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, null)
->willReturn($data);
@@ -554,6 +614,10 @@ class IMipPluginTest extends TestCase {
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
+ ->method('isCircle')
+ ->with($atnd)
+ ->willReturn(false);
+ $this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, null)
->willReturn($data);
@@ -660,6 +724,10 @@ class IMipPluginTest extends TestCase {
->with($attendee)
->willReturn(false);
$this->service->expects(self::once())
+ ->method('isCircle')
+ ->with($attendee)
+ ->willReturn(false);
+ $this->service->expects(self::once())
->method('buildBodyData')
->with($event, null)
->willReturn($data);
@@ -767,6 +835,10 @@ class IMipPluginTest extends TestCase {
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
+ ->method('isCircle')
+ ->with($atnd)
+ ->willReturn(false);
+ $this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, $oldVEvent)
->willReturn($data);
@@ -862,6 +934,10 @@ class IMipPluginTest extends TestCase {
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
+ ->method('isCircle')
+ ->with($atnd)
+ ->willReturn(false);
+ $this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, null)
->willReturn($data);
@@ -955,6 +1031,10 @@ class IMipPluginTest extends TestCase {
->with($atnd)
->willReturn(false);
$this->service->expects(self::once())
+ ->method('isCircle')
+ ->with($atnd)
+ ->willReturn(false);
+ $this->service->expects(self::once())
->method('buildBodyData')
->with($newVevent, null)
->willReturn($data);
diff --git a/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php b/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php
index abf8cfe3177..2be6a1cf8b1 100644
--- a/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/Schedule/IMipServiceTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,15 +9,14 @@
namespace OCA\DAV\Tests\unit\CalDAV\Schedule;
-use OC\L10N\L10N;
-use OC\L10N\LazyL10N;
use OC\URLGenerator;
use OCA\DAV\CalDAV\EventReader;
use OCA\DAV\CalDAV\Schedule\IMipService;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IConfig;
use OCP\IDBConnection;
-use OCP\L10N\IFactory as L10NFactory;
+use OCP\IL10N;
+use OCP\L10N\IFactory;
use OCP\Security\ISecureRandom;
use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCalendar;
@@ -24,48 +24,32 @@ use Sabre\VObject\Property\ICalendar\DateTime;
use Test\TestCase;
class IMipServiceTest extends TestCase {
- /** @var URLGenerator|MockObject */
- private $urlGenerator;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IDBConnection|MockObject */
- private $db;
-
- /** @var ISecureRandom|MockObject */
- private $random;
-
- /** @var L10NFactory|MockObject */
- private $l10nFactory;
-
- /** @var L10N|MockObject */
- private $l10n;
-
- /** @var ITimeFactory|MockObject */
- private $timeFactory;
-
- /** @var IMipService */
- private $service;
-
- /** @var VCalendar */
- private $vCalendar1a;
- /** @var VCalendar */
- private $vCalendar1b;
- /** @var VCalendar */
- private $vCalendar2;
- /** @var VCalendar */
- private $vCalendar3;
+ private URLGenerator&MockObject $urlGenerator;
+ private IConfig&MockObject $config;
+ private IDBConnection&MockObject $db;
+ private ISecureRandom&MockObject $random;
+ private IFactory&MockObject $l10nFactory;
+ private IL10N&MockObject $l10n;
+ private ITimeFactory&MockObject $timeFactory;
+ private IMipService $service;
+
+
+ private VCalendar $vCalendar1a;
+ private VCalendar $vCalendar1b;
+ private VCalendar $vCalendar2;
+ private VCalendar $vCalendar3;
/** @var DateTime DateTime object that will be returned by DateTime() or DateTime('now') */
public static $datetimeNow;
protected function setUp(): void {
+ parent::setUp();
+
$this->urlGenerator = $this->createMock(URLGenerator::class);
$this->config = $this->createMock(IConfig::class);
$this->db = $this->createMock(IDBConnection::class);
$this->random = $this->createMock(ISecureRandom::class);
- $this->l10nFactory = $this->createMock(L10NFactory::class);
- $this->l10n = $this->createMock(LazyL10N::class);
+ $this->l10nFactory = $this->createMock(IFactory::class);
+ $this->l10n = $this->createMock(IL10N::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->l10nFactory->expects(self::once())
->method('findGenericLanguage')
@@ -170,7 +154,7 @@ class IMipServiceTest extends TestCase {
}
public function testBuildBodyDataCreated(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -218,7 +202,7 @@ class IMipServiceTest extends TestCase {
}
public function testBuildBodyDataUpdate(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -349,7 +333,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringSingular(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -802,7 +786,7 @@ class IMipServiceTest extends TestCase {
'In 2 months on July 1, 2024 for the entire day',
$this->service->generateWhenString($eventReader)
);
-
+
/** test patrial day event in 1 year*/
$vCalendar = clone $this->vCalendar1a;
// construct event reader
@@ -846,7 +830,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringDaily(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -960,7 +944,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringWeekly(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1077,7 +1061,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringMonthly(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1290,7 +1274,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringYearly(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1504,7 +1488,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateWhenStringRecurringFixed(): void {
-
+
// construct l10n return maps
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1545,7 +1529,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateOccurringStringWithRrule(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1602,7 +1586,7 @@ class IMipServiceTest extends TestCase {
'In 2 days on July 1, 2024 then on July 3, 2024 and July 5, 2024'
],
]);
-
+
// construct time factory return(s)
$this->timeFactory->method('getDateTime')->willReturnOnConsecutiveCalls(
(new \DateTime('20240629T170000', (new \DateTimeZone('America/Toronto')))),
@@ -1687,7 +1671,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateOccurringStringWithRdate(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -1838,7 +1822,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateOccurringStringWithOneExdate(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
@@ -2022,7 +2006,7 @@ class IMipServiceTest extends TestCase {
}
public function testGenerateOccurringStringWithTwoExdate(): void {
-
+
// construct l10n return(s)
$this->l10n->method('l')->willReturnCallback(
function ($v1, $v2, $v3) {
diff --git a/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php
index f656a0fa33c..5dadb753a79 100644
--- a/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -35,21 +36,11 @@ use Sabre\Xml\Service;
use Test\TestCase;
class PluginTest extends TestCase {
-
- /** @var Plugin */
- private $plugin;
-
- /** @var Server|MockObject */
- private $server;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var LoggerInterface&MockObject */
- private $logger;
-
- /** @var DefaultCalendarValidator */
- private $calendarValidator;
+ private Plugin $plugin;
+ private Server&MockObject $server;
+ private IConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
+ private DefaultCalendarValidator $calendarValidator;
protected function setUp(): void {
parent::setUp();
@@ -59,9 +50,7 @@ class PluginTest extends TestCase {
$this->calendarValidator = new DefaultCalendarValidator();
$this->server = $this->createMock(Server::class);
- $this->server->httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->server->httpResponse = $this->createMock(ResponseInterface::class);
$this->server->xml = new Service();
$this->plugin = new Plugin($this->config, $this->logger, $this->calendarValidator);
@@ -69,23 +58,26 @@ class PluginTest extends TestCase {
}
public function testInitialize(): void {
-
- $this->server->expects($this->exactly(10))
+ $calls = [
+ // Sabre\CalDAV\Schedule\Plugin events
+ ['method:POST', [$this->plugin, 'httpPost'], 100],
+ ['propFind', [$this->plugin, 'propFind'], 100],
+ ['propPatch', [$this->plugin, 'propPatch'], 100],
+ ['calendarObjectChange', [$this->plugin, 'calendarObjectChange'], 100],
+ ['beforeUnbind', [$this->plugin, 'beforeUnbind'], 100],
+ ['schedule', [$this->plugin, 'scheduleLocalDelivery'], 100],
+ ['getSupportedPrivilegeSet', [$this->plugin, 'getSupportedPrivilegeSet'], 100],
+ // OCA\DAV\CalDAV\Schedule\Plugin events
+ ['propFind', [$this->plugin, 'propFindDefaultCalendarUrl'], 90],
+ ['afterWriteContent', [$this->plugin, 'dispatchSchedulingResponses'], 100],
+ ['afterCreateFile', [$this->plugin, 'dispatchSchedulingResponses'], 100],
+ ];
+ $this->server->expects($this->exactly(count($calls)))
->method('on')
- ->withConsecutive(
- // Sabre\CalDAV\Schedule\Plugin events
- ['method:POST', [$this->plugin, 'httpPost']],
- ['propFind', [$this->plugin, 'propFind']],
- ['propPatch', [$this->plugin, 'propPatch']],
- ['calendarObjectChange', [$this->plugin, 'calendarObjectChange']],
- ['beforeUnbind', [$this->plugin, 'beforeUnbind']],
- ['schedule', [$this->plugin, 'scheduleLocalDelivery']],
- ['getSupportedPrivilegeSet', [$this->plugin, 'getSupportedPrivilegeSet']],
- // OCA\DAV\CalDAV\Schedule\Plugin events
- ['propFind', [$this->plugin, 'propFindDefaultCalendarUrl'], 90],
- ['afterWriteContent', [$this->plugin, 'dispatchSchedulingResponses']],
- ['afterCreateFile', [$this->plugin, 'dispatchSchedulingResponses']]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->plugin->initialize($this->server);
}
@@ -168,7 +160,7 @@ class PluginTest extends TestCase {
$this->assertFalse($this->invokePrivate($this->plugin, 'getAttendeeRSVP', [$property3]));
}
- public function propFindDefaultCalendarUrlProvider(): array {
+ public static function propFindDefaultCalendarUrlProvider(): array {
return [
[
'principals/users/myuser',
@@ -270,7 +262,7 @@ class PluginTest extends TestCase {
],
0
);
- /** @var IPrincipal|MockObject $node */
+ /** @var IPrincipal&MockObject $node */
$node = $this->getMockBuilder(IPrincipal::class)
->disableOriginalConstructor()
->getMock();
@@ -367,7 +359,7 @@ class PluginTest extends TestCase {
}
}
- /** @var Tree|MockObject $tree */
+ /** @var Tree&MockObject $tree */
$tree = $this->createMock(Tree::class);
$tree->expects($this->once())
->method('getNodeForPath')
diff --git a/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php b/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php
index cbfd4639ed7..a7ca6eb8945 100644
--- a/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php
+++ b/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -10,7 +12,7 @@ use Sabre\Xml\Reader;
use Test\TestCase;
class CalendarSearchReportTest extends TestCase {
- private $elementMap = [
+ private array $elementMap = [
'{http://nextcloud.com/ns}calendar-search' =>
'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport',
];
@@ -112,7 +114,7 @@ XML;
);
}
-
+
public function testRequiresCompFilter(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('{http://nextcloud.com/ns}prop-filter or {http://nextcloud.com/ns}param-filter given without any {http://nextcloud.com/ns}comp-filter');
@@ -139,7 +141,7 @@ XML;
$this->parse($xml);
}
-
+
public function testRequiresFilter(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('The {http://nextcloud.com/ns}filter element is required for this request');
@@ -157,7 +159,7 @@ XML;
$this->parse($xml);
}
-
+
public function testNoSearchTerm(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('{http://nextcloud.com/ns}search-term is required for this request');
@@ -185,7 +187,7 @@ XML;
$this->parse($xml);
}
-
+
public function testCompOnly(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('At least one{http://nextcloud.com/ns}prop-filter or {http://nextcloud.com/ns}param-filter is required for this request');
@@ -313,7 +315,7 @@ XML;
);
}
- private function parse($xml, array $elementMap = []) {
+ private function parse(string $xml, array $elementMap = []): array {
$reader = new Reader();
$reader->elementMap = array_merge($this->elementMap, $elementMap);
$reader->xml($xml);
diff --git a/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php b/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php
index 0da971dc36b..e576fbae34c 100644
--- a/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php b/apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php
index fc0bd1502b2..a5cf6a23c66 100644
--- a/apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Security/RateLimitingPluginTest.php
@@ -24,11 +24,11 @@ use Test\TestCase;
class RateLimitingPluginTest extends TestCase {
- private Limiter|MockObject $limiter;
- private CalDavBackend|MockObject $caldavBackend;
- private IUserManager|MockObject $userManager;
- private LoggerInterface|MockObject $logger;
- private IAppConfig|MockObject $config;
+ private Limiter&MockObject $limiter;
+ private CalDavBackend&MockObject $caldavBackend;
+ private IUserManager&MockObject $userManager;
+ private LoggerInterface&MockObject $logger;
+ private IAppConfig&MockObject $config;
private string $userId = 'user123';
private RateLimitingPlugin $plugin;
diff --git a/apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php b/apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php
index 78e76cf507d..ee0ef2334ec 100644
--- a/apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/Status/StatusServiceTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -25,14 +27,14 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class StatusServiceTest extends TestCase {
- private ITimeFactory|MockObject $timeFactory;
- private IManager|MockObject $calendarManager;
- private IUserManager|MockObject $userManager;
- private UserStatusService|MockObject $userStatusService;
- private IAvailabilityCoordinator|MockObject $availabilityCoordinator;
- private ICacheFactory|MockObject $cacheFactory;
- private LoggerInterface|MockObject $logger;
- private ICache|MockObject $cache;
+ private ITimeFactory&MockObject $timeFactory;
+ private IManager&MockObject $calendarManager;
+ private IUserManager&MockObject $userManager;
+ private UserStatusService&MockObject $userStatusService;
+ private IAvailabilityCoordinator&MockObject $availabilityCoordinator;
+ private ICacheFactory&MockObject $cacheFactory;
+ private LoggerInterface&MockObject $logger;
+ private ICache&MockObject $cache;
private StatusService $service;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php b/apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php
index d5a62a9732f..2d6d0e86358 100644
--- a/apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php
+++ b/apps/dav/tests/unit/CalDAV/TimeZoneFactoryTest.php
@@ -1,7 +1,6 @@
<?php
declare(strict_types=1);
-
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php b/apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php
index b01139e4093..5bb87be67c1 100644
--- a/apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/TimezoneServiceTest.php
@@ -1,11 +1,6 @@
<?php
-/**
- * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
declare(strict_types=1);
-
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -26,10 +21,9 @@ use Sabre\VObject\Component\VTimeZone;
use Test\TestCase;
class TimezoneServiceTest extends TestCase {
-
- private IConfig|MockObject $config;
- private PropertyMapper|MockObject $propertyMapper;
- private IManager|MockObject $calendarManager;
+ private IConfig&MockObject $config;
+ private PropertyMapper&MockObject $propertyMapper;
+ private IManager&MockObject $calendarManager;
private TimezoneService $service;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/CalDAV/TipBrokerTest.php b/apps/dav/tests/unit/CalDAV/TipBrokerTest.php
index 3a8e240c1d8..ddf992767d6 100644
--- a/apps/dav/tests/unit/CalDAV/TipBrokerTest.php
+++ b/apps/dav/tests/unit/CalDAV/TipBrokerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -42,7 +44,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnCreate(): void {
-
+
// construct calendar and generate event info for newly created event with one attendee
$calendar = clone $this->vCalendar1a;
$previousEventInfo = [
@@ -61,7 +63,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnModify(): void {
-
+
// construct calendar and generate event info for modified event with one attendee
$calendar = clone $this->vCalendar1a;
$previousEventInfo = $this->invokePrivate($this->broker, 'parseEventInfo', [$calendar]);
@@ -79,7 +81,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnDelete(): void {
-
+
// construct calendar and generate event info for modified event with one attendee
$calendar = clone $this->vCalendar1a;
$previousEventInfo = $this->invokePrivate($this->broker, 'parseEventInfo', [$calendar]);
@@ -96,7 +98,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnStatusCancelled(): void {
-
+
// construct calendar and generate event info for modified event with one attendee
$calendar = clone $this->vCalendar1a;
$previousEventInfo = $this->invokePrivate($this->broker, 'parseEventInfo', [$calendar]);
@@ -114,7 +116,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnAddAttendee(): void {
-
+
// construct calendar and generate event info for modified event with two attendees
$calendar = clone $this->vCalendar1a;
$previousEventInfo = $this->invokePrivate($this->broker, 'parseEventInfo', [$calendar]);
@@ -141,7 +143,7 @@ class TipBrokerTest extends TestCase {
}
public function testParseEventForOrganizerOnRemoveAttendee(): void {
-
+
// construct calendar and generate event info for modified event with two attendees
$calendar = clone $this->vCalendar1a;
$calendar->VEVENT->add('ATTENDEE', 'mailto:attendee2@testing.com', [
diff --git a/apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php b/apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php
index 0329279af09..74fb4b5e94e 100644
--- a/apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/Validation/CalDavValidatePluginTest.php
@@ -18,11 +18,11 @@ use Sabre\HTTP\ResponseInterface;
use Test\TestCase;
class CalDavValidatePluginTest extends TestCase {
+ private IAppConfig&MockObject $config;
+ private RequestInterface&MockObject $request;
+ private ResponseInterface&MockObject $response;
private CalDavValidatePlugin $plugin;
- private IAppConfig|MockObject $config;
- private RequestInterface|MockObject $request;
- private ResponseInterface|MockObject $response;
protected function setUp(): void {
parent::setUp();
@@ -36,7 +36,7 @@ class CalDavValidatePluginTest extends TestCase {
}
public function testPutSizeLessThenLimit(): void {
-
+
// construct method responses
$this->config
->method('getValueInt')
@@ -50,11 +50,11 @@ class CalDavValidatePluginTest extends TestCase {
$this->assertTrue(
$this->plugin->beforePut($this->request, $this->response)
);
-
+
}
public function testPutSizeMoreThenLimit(): void {
-
+
// construct method responses
$this->config
->method('getValueInt')
@@ -67,7 +67,7 @@ class CalDavValidatePluginTest extends TestCase {
$this->expectException(Forbidden::class);
// test condition
$this->plugin->beforePut($this->request, $this->response);
-
+
}
}
diff --git a/apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php b/apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php
index 5e9caaaeb44..35afc4d7ca7 100644
--- a/apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php
+++ b/apps/dav/tests/unit/CalDAV/WebcalCaching/ConnectionTest.php
@@ -13,7 +13,6 @@ use OCP\Http\Client\IClientService;
use OCP\Http\Client\IResponse;
use OCP\Http\Client\LocalServerException;
use OCP\IAppConfig;
-use OCP\IConfig;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
@@ -21,9 +20,9 @@ use Test\TestCase;
class ConnectionTest extends TestCase {
- private IClientService|MockObject $clientService;
- private IConfig|MockObject $config;
- private LoggerInterface|MockObject $logger;
+ private IClientService&MockObject $clientService;
+ private IAppConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
private Connection $connection;
public function setUp(): void {
diff --git a/apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php b/apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php
index 82c03c5cf68..804af021d5a 100644
--- a/apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php
+++ b/apps/dav/tests/unit/CalDAV/WebcalCaching/PluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php b/apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php
index d65a99a15e0..3252322ccff 100644
--- a/apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php
+++ b/apps/dav/tests/unit/CalDAV/WebcalCaching/RefreshWebcalServiceTest.php
@@ -20,10 +20,10 @@ use Sabre\VObject\Recur\NoInstancesException;
use Test\TestCase;
class RefreshWebcalServiceTest extends TestCase {
- private CalDavBackend|MockObject $caldavBackend;
- private Connection|MockObject $connection;
- private LoggerInterface|MockObject $logger;
- private ITimeFactory|MockObject $time;
+ private CalDavBackend&MockObject $caldavBackend;
+ private Connection&MockObject $connection;
+ private LoggerInterface&MockObject $logger;
+ private ITimeFactory&MockObject $time;
protected function setUp(): void {
parent::setUp();
@@ -35,10 +35,6 @@ class RefreshWebcalServiceTest extends TestCase {
}
/**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
* @dataProvider runDataProvider
*/
public function testRun(string $body, string $contentType, string $result): void {
@@ -88,10 +84,6 @@ class RefreshWebcalServiceTest extends TestCase {
}
/**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
* @dataProvider identicalDataProvider
*/
public function testRunIdentical(string $uid, array $calendarObject, string $body, string $contentType, string $result): void {
@@ -209,10 +201,6 @@ class RefreshWebcalServiceTest extends TestCase {
}
/**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
* @dataProvider runDataProvider
*/
public function testRunCreateCalendarNoException(string $body, string $contentType, string $result): void {
@@ -259,10 +247,6 @@ class RefreshWebcalServiceTest extends TestCase {
}
/**
- * @param string $body
- * @param string $contentType
- * @param string $result
- *
* @dataProvider runDataProvider
*/
public function testRunCreateCalendarBadRequest(string $body, string $contentType, string $result): void {
@@ -308,10 +292,7 @@ class RefreshWebcalServiceTest extends TestCase {
$refreshWebcalService->refreshSubscription('principals/users/testuser', 'sub123');
}
- /**
- * @return array
- */
- public static function identicalDataProvider():array {
+ public static function identicalDataProvider(): array {
return [
[
'12345',
@@ -330,10 +311,7 @@ class RefreshWebcalServiceTest extends TestCase {
];
}
- /**
- * @return array
- */
- public function runDataProvider():array {
+ public static function runDataProvider(): array {
return [
[
"BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nBEGIN:VEVENT\r\nUID:12345\r\nDTSTAMP:20160218T133704Z\r\nDTSTART;VALUE=DATE:19000101\r\nDTEND;VALUE=DATE:19000102\r\nRRULE:FREQ=YEARLY\r\nSUMMARY:12345's Birthday (1900)\r\nTRANSP:TRANSPARENT\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n",
diff --git a/apps/dav/tests/unit/CapabilitiesTest.php b/apps/dav/tests/unit/CapabilitiesTest.php
index e99f7b8da5f..ad70d576d48 100644
--- a/apps/dav/tests/unit/CapabilitiesTest.php
+++ b/apps/dav/tests/unit/CapabilitiesTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -28,6 +30,7 @@ class CapabilitiesTest extends TestCase {
$expected = [
'dav' => [
'chunking' => '1.0',
+ 'public_shares_chunking' => true,
],
];
$this->assertSame($expected, $capabilities->getCapabilities());
@@ -47,6 +50,7 @@ class CapabilitiesTest extends TestCase {
$expected = [
'dav' => [
'chunking' => '1.0',
+ 'public_shares_chunking' => true,
'bulkupload' => '1.0',
],
];
@@ -67,6 +71,7 @@ class CapabilitiesTest extends TestCase {
$expected = [
'dav' => [
'chunking' => '1.0',
+ 'public_shares_chunking' => true,
'absence-supported' => true,
'absence-replacement' => true,
],
diff --git a/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php b/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php
index 134a6ca5ca0..4de1cf25cc5 100644
--- a/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php
+++ b/apps/dav/tests/unit/CardDAV/Activity/BackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,20 +22,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BackendTest extends TestCase {
- /** @var IManager|MockObject */
- protected $activityManager;
-
- /** @var IGroupManager|MockObject */
- protected $groupManager;
-
- /** @var IUserSession|MockObject */
- protected $userSession;
-
- /** @var IAppManager|MockObject */
- protected $appManager;
-
- /** @var IUserManager|MockObject */
- protected $userManager;
+ protected IManager&MockObject $activityManager;
+ protected IGroupManager&MockObject $groupManager;
+ protected IUserSession&MockObject $userSession;
+ protected IAppManager&MockObject $appManager;
+ protected IUserManager&MockObject $userManager;
protected function setUp(): void {
parent::setUp();
@@ -45,10 +38,9 @@ class BackendTest extends TestCase {
}
/**
- * @param array $methods
* @return Backend|MockObject
*/
- protected function getBackend(array $methods = []) {
+ protected function getBackend(array $methods = []): Backend {
if (empty($methods)) {
return new Backend(
$this->activityManager,
@@ -71,7 +63,7 @@ class BackendTest extends TestCase {
}
}
- public function dataCallTriggerAddressBookActivity(): array {
+ public static function dataCallTriggerAddressBookActivity(): array {
return [
['onAddressbookCreate', [['data']], Addressbook::SUBJECT_ADD, [['data'], [], []]],
['onAddressbookUpdate', [['data'], ['shares'], ['changed-properties']], Addressbook::SUBJECT_UPDATE, [['data'], ['shares'], ['changed-properties']]],
@@ -95,7 +87,7 @@ class BackendTest extends TestCase {
call_user_func_array([$backend, $method], $payload);
}
- public function dataTriggerAddressBookActivity(): array {
+ public static function dataTriggerAddressBookActivity(): array {
return [
// Add addressbook
[Addressbook::SUBJECT_ADD, [], [], [], '', '', null, []],
@@ -160,12 +152,6 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataTriggerAddressBookActivity
- * @param string $action
- * @param array $data
- * @param array $shares
- * @param array $changedProperties
- * @param string $currentUser
- * @param string $author
* @param string[]|null $shareUsers
* @param string[] $users
*/
@@ -219,13 +205,13 @@ class BackendTest extends TestCase {
->method('userExists')
->willReturn(true);
- $event->expects($this->exactly(sizeof($users)))
+ $event->expects($this->exactly(count($users)))
->method('setAffectedUser')
->willReturnSelf();
- $event->expects($this->exactly(sizeof($users)))
+ $event->expects($this->exactly(count($users)))
->method('setSubject')
->willReturnSelf();
- $this->activityManager->expects($this->exactly(sizeof($users)))
+ $this->activityManager->expects($this->exactly(count($users)))
->method('publish')
->with($event);
} else {
@@ -261,7 +247,7 @@ class BackendTest extends TestCase {
], [], []]);
}
- public function dataTriggerCardActivity(): array {
+ public static function dataTriggerCardActivity(): array {
$cardData = "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Sabre//Sabre VObject 3.4.8//EN\r\nUID:test-user\r\nFN:test-user\r\nN:test-user;;;;\r\nEND:VCARD\r\n\r\n";
return [
@@ -330,12 +316,6 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataTriggerCardActivity
- * @param string $action
- * @param array $addressBookData
- * @param array $shares
- * @param array $cardData
- * @param string $currentUser
- * @param string $author
* @param string[]|null $shareUsers
* @param string[] $users
*/
@@ -385,13 +365,13 @@ class BackendTest extends TestCase {
->with($author)
->willReturnSelf();
- $event->expects($this->exactly(sizeof($users)))
+ $event->expects($this->exactly(count($users)))
->method('setAffectedUser')
->willReturnSelf();
- $event->expects($this->exactly(sizeof($users)))
+ $event->expects($this->exactly(count($users)))
->method('setSubject')
->willReturnSelf();
- $this->activityManager->expects($this->exactly(sizeof($users)))
+ $this->activityManager->expects($this->exactly(count($users)))
->method('publish')
->with($event);
} else {
@@ -409,7 +389,7 @@ class BackendTest extends TestCase {
$this->assertEmpty($this->invokePrivate($backend, 'triggerCardActivity', [Card::SUBJECT_UPDATE, ['principaluri' => 'principals/system/system'], [], []]));
}
- public function dataGetUsersForShares(): array {
+ public static function dataGetUsersForShares(): array {
return [
[
[],
@@ -454,9 +434,6 @@ class BackendTest extends TestCase {
/**
* @dataProvider dataGetUsersForShares
- * @param array $shares
- * @param array $groups
- * @param array $expected
*/
public function testGetUsersForShares(array $shares, array $groups, array $expected): void {
$backend = $this->getBackend();
@@ -498,10 +475,9 @@ class BackendTest extends TestCase {
}
/**
- * @param string $uid
* @return IUser|MockObject
*/
- protected function getUserMock(string $uid) {
+ protected function getUserMock(string $uid): IUser {
$user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
diff --git a/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php b/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
index a8bfc1b41fd..cfb14a5d567 100644
--- a/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
+++ b/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
@@ -12,32 +12,20 @@ use OCA\DAV\CardDAV\AddressBookImpl;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\Db\PropertyMapper;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCard;
use Sabre\VObject\Property\Text;
//use Sabre\VObject\Property\;
use Test\TestCase;
class AddressBookImplTest extends TestCase {
- /** @var AddressBookImpl */
- private $addressBookImpl;
-
- /** @var array */
- private $addressBookInfo;
-
- /** @var AddressBook | \PHPUnit\Framework\MockObject\MockObject */
- private $addressBook;
-
- /** @var IURLGenerator | \PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var PropertyMapper | \PHPUnit\Framework\MockObject\MockObject */
- private $propertyMapper;
-
- /** @var VCard | \PHPUnit\Framework\MockObject\MockObject */
- private $vCard;
+ private array $addressBookInfo;
+ private AddressBook&MockObject $addressBook;
+ private IURLGenerator&MockObject $urlGenerator;
+ private CardDavBackend&MockObject $backend;
+ private PropertyMapper&MockObject $propertyMapper;
+ private VCard&MockObject $vCard;
+ private AddressBookImpl $addressBookImpl;
protected function setUp(): void {
parent::setUp();
@@ -48,10 +36,8 @@ class AddressBookImplTest extends TestCase {
'principaluri' => 'principals/system/system',
'{DAV:}displayname' => 'display name',
];
- $this->addressBook = $this->getMockBuilder(AddressBook::class)
- ->disableOriginalConstructor()->getMock();
- $this->backend = $this->getMockBuilder(CardDavBackend::class)
- ->disableOriginalConstructor()->getMock();
+ $this->addressBook = $this->createMock(AddressBook::class);
+ $this->backend = $this->createMock(CardDavBackend::class);
$this->vCard = $this->createMock(VCard::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->propertyMapper = $this->createMock(PropertyMapper::class);
@@ -77,7 +63,7 @@ class AddressBookImplTest extends TestCase {
}
public function testSearch(): void {
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -89,7 +75,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'readCard'])
+ ->onlyMethods(['vCard2Array', 'readCard'])
->getMock();
$pattern = 'pattern';
@@ -107,10 +93,10 @@ class AddressBookImplTest extends TestCase {
$addressBookImpl->expects($this->exactly(2))->method('readCard')
->willReturn($this->vCard);
$addressBookImpl->expects($this->exactly(2))->method('vCard2Array')
- ->withConsecutive(
- ['foo.vcf', $this->vCard],
- ['bar.vcf', $this->vCard]
- )->willReturn('vCard');
+ ->willReturnMap([
+ ['foo.vcf', $this->vCard, 'vCard'],
+ ['bar.vcf', $this->vCard, 'vCard'],
+ ]);
$result = $addressBookImpl->search($pattern, $searchProperties, []);
$this->assertTrue((is_array($result)));
@@ -119,13 +105,11 @@ class AddressBookImplTest extends TestCase {
/**
* @dataProvider dataTestCreate
- *
- * @param array $properties
*/
- public function testCreate($properties): void {
+ public function testCreate(array $properties): void {
$uid = 'uid';
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -137,7 +121,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
+ ->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard'])
->getMock();
$expectedProperties = 0;
@@ -164,7 +148,7 @@ class AddressBookImplTest extends TestCase {
$this->assertTrue($addressBookImpl->createOrUpdate($properties));
}
- public function dataTestCreate() {
+ public static function dataTestCreate(): array {
return [
[[]],
[['FN' => 'John Doe']],
@@ -177,7 +161,7 @@ class AddressBookImplTest extends TestCase {
$uri = 'bla.vcf';
$properties = ['URI' => $uri, 'UID' => $uid, 'FN' => 'John Doe'];
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -189,7 +173,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
+ ->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
->getMock();
$addressBookImpl->expects($this->never())->method('createUid');
@@ -216,7 +200,7 @@ class AddressBookImplTest extends TestCase {
$vCard = new vCard;
$textProperty = $vCard->createProperty('KEY', 'value');
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -228,7 +212,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
+ ->onlyMethods(['vCard2Array', 'createUid', 'createEmptyVCard', 'readCard'])
->getMock();
$this->backend->expects($this->once())->method('getCard')
@@ -248,11 +232,8 @@ class AddressBookImplTest extends TestCase {
/**
* @dataProvider dataTestGetPermissions
- *
- * @param array $permissions
- * @param int $expected
*/
- public function testGetPermissions($permissions, $expected): void {
+ public function testGetPermissions(array $permissions, int $expected): void {
$this->addressBook->expects($this->once())->method('getACL')
->willReturn($permissions);
@@ -261,7 +242,7 @@ class AddressBookImplTest extends TestCase {
);
}
- public function dataTestGetPermissions() {
+ public static function dataTestGetPermissions(): array {
return [
[[], 0],
[[['privilege' => '{DAV:}read']], 1],
@@ -299,7 +280,7 @@ class AddressBookImplTest extends TestCase {
}
public function testCreateUid(): void {
- /** @var \PHPUnit\Framework\MockObject\MockObject | AddressBookImpl $addressBookImpl */
+ /** @var MockObject&AddressBookImpl $addressBookImpl */
$addressBookImpl = $this->getMockBuilder(AddressBookImpl::class)
->setConstructorArgs(
[
@@ -311,7 +292,7 @@ class AddressBookImplTest extends TestCase {
null
]
)
- ->setMethods(['getUid'])
+ ->onlyMethods(['getUid'])
->getMock();
$addressBookImpl->expects($this->exactly(2))
diff --git a/apps/dav/tests/unit/CardDAV/AddressBookTest.php b/apps/dav/tests/unit/CardDAV/AddressBookTest.php
index cbdb9a1402c..043b192e2c8 100644
--- a/apps/dav/tests/unit/CardDAV/AddressBookTest.php
+++ b/apps/dav/tests/unit/CardDAV/AddressBookTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -28,19 +29,20 @@ class AddressBookTest extends TestCase {
'uri' => 'default',
];
$l10n = $this->createMock(IL10N::class);
- $logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$card = new Card($backend, $addressBookInfo, ['id' => 5, 'carddata' => 'RANDOM VCF DATA', 'uri' => 'something', 'addressbookid' => 23]);
- $backend->expects($this->once())->method('moveCard')->with(23, 666, 'something', 'user1')->willReturn(true);
+ $backend->expects($this->once())->method('moveCard')
+ ->with(23, 666, 'something', 'user1')
+ ->willReturn(true);
$addressBook->moveInto('new', 'old', $card);
}
public function testDelete(): void {
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->once())->method('updateShares');
$backend->expects($this->any())->method('getShares')->willReturn([
['href' => 'principal:user2']
@@ -54,7 +56,7 @@ class AddressBookTest extends TestCase {
];
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$addressBook->delete();
}
@@ -63,7 +65,7 @@ class AddressBookTest extends TestCase {
$this->expectException(Forbidden::class);
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->never())->method('updateShares');
$backend->expects($this->any())->method('getShares')->willReturn([
['href' => 'principal:group2']
@@ -77,14 +79,14 @@ class AddressBookTest extends TestCase {
];
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$addressBook->delete();
}
public function testPropPatchShared(): void {
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->never())->method('updateAddressBook');
$addressBookInfo = [
'{http://owncloud.org/ns}owner-principal' => 'user1',
@@ -95,13 +97,13 @@ class AddressBookTest extends TestCase {
];
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$addressBook->propPatch(new PropPatch(['{DAV:}displayname' => 'Test address book']));
}
public function testPropPatchNotShared(): void {
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->atLeast(1))->method('updateAddressBook');
$addressBookInfo = [
'{DAV:}displayname' => 'Test address book',
@@ -111,16 +113,16 @@ class AddressBookTest extends TestCase {
];
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$addressBook->propPatch(new PropPatch(['{DAV:}displayname' => 'Test address book']));
}
/**
* @dataProvider providesReadOnlyInfo
*/
- public function testAcl($expectsWrite, $readOnlyValue, $hasOwnerSet): void {
+ public function testAcl(bool $expectsWrite, ?bool $readOnlyValue, bool $hasOwnerSet): void {
/** @var MockObject | CardDavBackend $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->any())->method('applyShareAcl')->willReturnArgument(1);
$addressBookInfo = [
'{DAV:}displayname' => 'Test address book',
@@ -136,7 +138,7 @@ class AddressBookTest extends TestCase {
}
$l10n = $this->createMock(IL10N::class);
$logger = $this->createMock(LoggerInterface::class);
- $addressBook = new AddressBook($backend, $addressBookInfo, $l10n, $logger);
+ $addressBook = new AddressBook($backend, $addressBookInfo, $l10n);
$acl = $addressBook->getACL();
$childAcl = $addressBook->getChildACL();
@@ -171,7 +173,7 @@ class AddressBookTest extends TestCase {
$this->assertEquals($expectedAcl, $childAcl);
}
- public function providesReadOnlyInfo(): array {
+ public static function providesReadOnlyInfo(): array {
return [
'read-only property not set' => [true, null, true],
'read-only property is false' => [true, false, true],
diff --git a/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php b/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php
index aeee04fd6ee..5a1210da339 100644
--- a/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php
+++ b/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,25 +15,19 @@ use OCA\DAV\DAV\GroupPrincipalBackend;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IL10N;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Component\VCalendar;
use Sabre\VObject\Reader;
use Test\TestCase;
class BirthdayServiceTest extends TestCase {
- /** @var BirthdayService */
- private $service;
- /** @var CalDavBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $calDav;
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $cardDav;
- /** @var GroupPrincipalBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $groupPrincipalBackend;
- /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IDBConnection | \PHPUnit\Framework\MockObject\MockObject */
- private $dbConnection;
- /** @var IL10N | \PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
+ private CalDavBackend&MockObject $calDav;
+ private CardDavBackend&MockObject $cardDav;
+ private GroupPrincipalBackend&MockObject $groupPrincipalBackend;
+ private IConfig&MockObject $config;
+ private IDBConnection&MockObject $dbConnection;
+ private IL10N&MockObject $l10n;
+ private BirthdayService $service;
protected function setUp(): void {
parent::setUp();
@@ -57,16 +52,8 @@ class BirthdayServiceTest extends TestCase {
/**
* @dataProvider providesVCards
- * @param string $expectedSummary
- * @param string $expectedDTStart
- * @param string $expectedRrule
- * @param string $expectedFieldType
- * @param string $expectedUnknownYear
- * @param string $expectedOriginalYear
- * @param string|null $expectedReminder
- * @param string | null $data
*/
- public function testBuildBirthdayFromContact($expectedSummary, $expectedDTStart, $expectedRrule, $expectedFieldType, $expectedUnknownYear, $expectedOriginalYear, $expectedReminder, $data, $fieldType, $prefix, $supports4Bytes, $configuredReminder): void {
+ public function testBuildBirthdayFromContact(?string $expectedSummary, ?string $expectedDTStart, ?string $expectedRrule, ?string $expectedFieldType, ?string $expectedUnknownYear, ?string $expectedOriginalYear, ?string $expectedReminder, ?string $data, string $fieldType, string $prefix, bool $supports4Bytes, ?string $configuredReminder): void {
$this->dbConnection->method('supports4ByteText')->willReturn($supports4Bytes);
$cal = $this->service->buildDateFromContact($data, $fieldType, $prefix, $configuredReminder);
@@ -152,13 +139,17 @@ class BirthdayServiceTest extends TestCase {
->willReturn([
'id' => 1234
]);
- $this->calDav->expects($this->exactly(3))
+ $calls = [
+ [1234, 'default-gump.vcf.ics'],
+ [1234, 'default-gump.vcf-death.ics'],
+ [1234, 'default-gump.vcf-anniversary.ics'],
+ ];
+ $this->calDav->expects($this->exactly(count($calls)))
->method('deleteCalendarObject')
- ->withConsecutive(
- [1234, 'default-gump.vcf.ics'],
- [1234, 'default-gump.vcf-death.ics'],
- [1234, 'default-gump.vcf-anniversary.ics'],
- );
+ ->willReturnCallback(function ($calendarId, $objectUri) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, [$calendarId, $objectUri]);
+ });
$this->cardDav->expects($this->once())->method('getShares')->willReturn([]);
$this->service->onCardDeleted(666, 'gump.vcf');
@@ -173,7 +164,7 @@ class BirthdayServiceTest extends TestCase {
$this->cardDav->expects($this->never())->method('getAddressBookById');
$service = $this->getMockBuilder(BirthdayService::class)
- ->setMethods(['buildDateFromContact', 'birthdayEvenChanged'])
+ ->onlyMethods(['buildDateFromContact', 'birthdayEvenChanged'])
->setConstructorArgs([$this->calDav, $this->cardDav, $this->groupPrincipalBackend, $this->config, $this->dbConnection, $this->l10n])
->getMock();
@@ -200,9 +191,9 @@ class BirthdayServiceTest extends TestCase {
$this->cardDav->expects($this->once())->method('getShares')->willReturn([]);
$this->calDav->expects($this->never())->method('getCalendarByUri');
- /** @var BirthdayService | \PHPUnit\Framework\MockObject\MockObject $service */
+ /** @var BirthdayService&MockObject $service */
$service = $this->getMockBuilder(BirthdayService::class)
- ->setMethods(['buildDateFromContact', 'birthdayEvenChanged'])
+ ->onlyMethods(['buildDateFromContact', 'birthdayEvenChanged'])
->setConstructorArgs([$this->calDav, $this->cardDav, $this->groupPrincipalBackend, $this->config, $this->dbConnection, $this->l10n])
->getMock();
@@ -212,7 +203,7 @@ class BirthdayServiceTest extends TestCase {
/**
* @dataProvider providesCardChanges
*/
- public function testOnCardChanged($expectedOp): void {
+ public function testOnCardChanged(string $expectedOp): void {
$this->config->expects($this->once())
->method('getAppValue')
->with('dav', 'generateBirthdayCalendar', 'yes')
@@ -220,11 +211,10 @@ class BirthdayServiceTest extends TestCase {
$this->config->expects($this->exactly(2))
->method('getUserValue')
- ->withConsecutive(
- ['user01', 'dav', 'generateBirthdayCalendar', 'yes'],
- ['user01', 'dav', 'birthdayCalendarReminderOffset', 'PT9H'],
- )
- ->willReturnOnConsecutiveCalls('yes', 'PT9H');
+ ->willReturnMap([
+ ['user01', 'dav', 'generateBirthdayCalendar', 'yes', 'yes'],
+ ['user01', 'dav', 'birthdayCalendarReminderOffset', 'PT9H', 'PT9H'],
+ ]);
$this->cardDav->expects($this->once())->method('getAddressBookById')
->with(666)
@@ -239,31 +229,45 @@ class BirthdayServiceTest extends TestCase {
]);
$this->cardDav->expects($this->once())->method('getShares')->willReturn([]);
- /** @var BirthdayService | \PHPUnit\Framework\MockObject\MockObject $service */
+ /** @var BirthdayService&MockObject $service */
$service = $this->getMockBuilder(BirthdayService::class)
- ->setMethods(['buildDateFromContact', 'birthdayEvenChanged'])
+ ->onlyMethods(['buildDateFromContact', 'birthdayEvenChanged'])
->setConstructorArgs([$this->calDav, $this->cardDav, $this->groupPrincipalBackend, $this->config, $this->dbConnection, $this->l10n])
->getMock();
if ($expectedOp === 'delete') {
$this->calDav->expects($this->exactly(3))->method('getCalendarObject')->willReturn('');
$service->expects($this->exactly(3))->method('buildDateFromContact')->willReturn(null);
- $this->calDav->expects($this->exactly(3))->method('deleteCalendarObject')->withConsecutive(
+
+ $calls = [
[1234, 'default-gump.vcf.ics'],
[1234, 'default-gump.vcf-death.ics'],
[1234, 'default-gump.vcf-anniversary.ics']
- );
+ ];
+ $this->calDav->expects($this->exactly(count($calls)))
+ ->method('deleteCalendarObject')
+ ->willReturnCallback(function ($calendarId, $objectUri) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, [$calendarId, $objectUri]);
+ });
}
if ($expectedOp === 'create') {
$vCal = new VCalendar();
$vCal->PRODID = '-//Nextcloud testing//mocked object//';
$service->expects($this->exactly(3))->method('buildDateFromContact')->willReturn($vCal);
- $this->calDav->expects($this->exactly(3))->method('createCalendarObject')->withConsecutive(
+
+ $createCalendarObjectCalls = [
[1234, 'default-gump.vcf.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"],
[1234, 'default-gump.vcf-death.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"],
[1234, 'default-gump.vcf-anniversary.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"]
- );
+ ];
+ $this->calDav->expects($this->exactly(count($createCalendarObjectCalls)))
+ ->method('createCalendarObject')
+ ->willReturnCallback(function ($calendarId, $objectUri, $calendarData) use (&$createCalendarObjectCalls) {
+ $expected = array_shift($createCalendarObjectCalls);
+ $this->assertEquals($expected, [$calendarId, $objectUri, $calendarData]);
+ });
}
if ($expectedOp === 'update') {
$vCal = new VCalendar();
@@ -272,11 +276,18 @@ class BirthdayServiceTest extends TestCase {
$service->expects($this->exactly(3))->method('buildDateFromContact')->willReturn($vCal);
$service->expects($this->exactly(3))->method('birthdayEvenChanged')->willReturn(true);
$this->calDav->expects($this->exactly(3))->method('getCalendarObject')->willReturn(['calendardata' => '']);
- $this->calDav->expects($this->exactly(3))->method('updateCalendarObject')->withConsecutive(
+
+ $updateCalendarObjectCalls = [
[1234, 'default-gump.vcf.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"],
[1234, 'default-gump.vcf-death.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"],
[1234, 'default-gump.vcf-anniversary.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Nextcloud testing//mocked object//\r\nEND:VCALENDAR\r\n"]
- );
+ ];
+ $this->calDav->expects($this->exactly(count($updateCalendarObjectCalls)))
+ ->method('updateCalendarObject')
+ ->willReturnCallback(function ($calendarId, $objectUri, $calendarData) use (&$updateCalendarObjectCalls) {
+ $expected = array_shift($updateCalendarObjectCalls);
+ $this->assertEquals($expected, [$calendarId, $objectUri, $calendarData]);
+ });
}
$service->onCardChanged(666, 'gump.vcf', '');
@@ -284,11 +295,8 @@ class BirthdayServiceTest extends TestCase {
/**
* @dataProvider providesBirthday
- * @param $expected
- * @param $old
- * @param $new
*/
- public function testBirthdayEvenChanged($expected, $old, $new): void {
+ public function testBirthdayEvenChanged(bool $expected, string $old, string $new): void {
$new = Reader::read($new);
$this->assertEquals($expected, $this->service->birthdayEvenChanged($old, $new));
}
@@ -354,18 +362,22 @@ class BirthdayServiceTest extends TestCase {
->with(42, 0)
->willReturn([['uri' => '1.ics'], ['uri' => '2.ics'], ['uri' => '3.ics']]);
- $this->calDav->expects($this->exactly(3))
+ $calls = [
+ [42, '1.ics', 0],
+ [42, '2.ics', 0],
+ [42, '3.ics', 0],
+ ];
+ $this->calDav->expects($this->exactly(count($calls)))
->method('deleteCalendarObject')
- ->withConsecutive(
- [42, '1.ics', 0],
- [42, '2.ics', 0],
- [42, '3.ics', 0],
- );
+ ->willReturnCallback(function ($calendarId, $objectUri, $calendarType) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, [$calendarId, $objectUri, $calendarType]);
+ });
$this->service->resetForUser('user123');
}
- public function providesBirthday() {
+ public static function providesBirthday(): array {
return [
[true,
'',
@@ -382,7 +394,7 @@ class BirthdayServiceTest extends TestCase {
];
}
- public function providesCardChanges() {
+ public static function providesCardChanges(): array {
return[
['delete'],
['create'],
@@ -390,7 +402,7 @@ class BirthdayServiceTest extends TestCase {
];
}
- public function providesVCards() {
+ public static function providesVCards(): array {
return [
// $expectedSummary, $expectedDTStart, $expectedRrule, $expectedFieldType, $expectedUnknownYear, $expectedOriginalYear, $expectedReminder, $data, $fieldType, $prefix, $supports4Byte, $configuredReminder
[null, null, null, null, null, null, null, 'yasfewf', '', '', true, null],
diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
index 1516d41ea39..8a279d31b02 100644
--- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
+++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php
@@ -29,6 +29,7 @@ use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\Server;
use OCP\Share\IManager as ShareManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\PropPatch;
@@ -45,29 +46,15 @@ use function time;
* @package OCA\DAV\Tests\unit\CardDAV
*/
class CardDavBackendTest extends TestCase {
- /** @var CardDavBackend */
- private $backend;
-
- /** @var Principal | \PHPUnit\Framework\MockObject\MockObject */
- private $principal;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- private $groupManager;
-
- /** @var IEventDispatcher|MockObject */
- private $dispatcher;
+ private Principal&MockObject $principal;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private IEventDispatcher&MockObject $dispatcher;
private Backend $sharingBackend;
- /** @var IDBConnection */
- private $db;
-
- /** @var string */
- private $dbCardsTable = 'cards';
-
- /** @var string */
- private $dbCardsPropertiesTable = 'cards_properties';
+ private IDBConnection $db;
+ private CardDavBackend $backend;
+ private string $dbCardsTable = 'cards';
+ private string $dbCardsPropertiesTable = 'cards_properties';
public const UNIT_TEST_USER = 'principals/users/carddav-unit-test';
public const UNIT_TEST_USER1 = 'principals/users/carddav-unit-test1';
@@ -122,7 +109,7 @@ class CardDavBackendTest extends TestCase {
$this->createMock(IConfig::class),
$this->createMock(IFactory::class)
])
- ->setMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
+ ->onlyMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
->getMock();
$this->principal->method('getPrincipalByPath')
->willReturn([
@@ -151,16 +138,20 @@ class CardDavBackendTest extends TestCase {
);
// start every test with a empty cards_properties and cards table
$query = $this->db->getQueryBuilder();
- $query->delete('cards_properties')->execute();
+ $query->delete('cards_properties')->executeStatement();
$query = $this->db->getQueryBuilder();
- $query->delete('cards')->execute();
+ $query->delete('cards')->executeStatement();
- $this->tearDown();
+ $this->principal->method('getGroupMembership')
+ ->withAnyParameters()
+ ->willReturn([self::UNIT_TEST_GROUP]);
+ $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
+ foreach ($books as $book) {
+ $this->backend->deleteAddressBook($book['id']);
+ }
}
protected function tearDown(): void {
- parent::tearDown();
-
if (is_null($this->backend)) {
return;
}
@@ -172,6 +163,8 @@ class CardDavBackendTest extends TestCase {
foreach ($books as $book) {
$this->backend->deleteAddressBook($book['id']);
}
+
+ parent::tearDown();
}
public function testAddressBookOperations(): void {
@@ -236,10 +229,11 @@ class CardDavBackendTest extends TestCase {
}
public function testCardOperations(): void {
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $backend */
+ /** @var CardDavBackend&MockObject $backend */
$backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->onlyMethods(['updateProperties', 'purgeProperties'])->getMock();
+ ->onlyMethods(['updateProperties', 'purgeProperties'])
+ ->getMock();
// create a new address book
$backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -249,12 +243,16 @@ class CardDavBackendTest extends TestCase {
$uri = $this->getUniqueID('card');
// updateProperties is expected twice, once for createCard and once for updateCard
- $backend->expects($this->exactly(2))
+ $calls = [
+ [$bookId, $uri, $this->vcardTest0],
+ [$bookId, $uri, $this->vcardTest1],
+ ];
+ $backend->expects($this->exactly(count($calls)))
->method('updateProperties')
- ->withConsecutive(
- [$bookId, $uri, $this->vcardTest0],
- [$bookId, $uri, $this->vcardTest1],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// Expect event
$this->dispatcher
@@ -294,7 +292,8 @@ class CardDavBackendTest extends TestCase {
public function testMultiCard(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->setMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create a new address book
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -347,7 +346,8 @@ class CardDavBackendTest extends TestCase {
public function testMultipleUIDOnDifferentAddressbooks(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->onlyMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create 2 new address books
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -369,7 +369,8 @@ class CardDavBackendTest extends TestCase {
public function testMultipleUIDDenied(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->setMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create a new address book
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -390,7 +391,8 @@ class CardDavBackendTest extends TestCase {
public function testNoValidUID(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->setMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create a new address book
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -428,12 +430,17 @@ class CardDavBackendTest extends TestCase {
->method('getCardId')
->with($bookId, $uri)
->willThrowException(new \InvalidArgumentException());
- $this->backend->expects($this->exactly(2))
+
+ $calls = [
+ [$bookId, $uri, 1],
+ [$bookId, $uri, 3],
+ ];
+ $this->backend->expects($this->exactly(count($calls)))
->method('addChange')
- ->withConsecutive(
- [$bookId, $uri, 1],
- [$bookId, $uri, 3]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->backend->expects($this->never())
->method('purgeProperties');
@@ -447,7 +454,8 @@ class CardDavBackendTest extends TestCase {
public function testSyncSupport(): void {
$this->backend = $this->getMockBuilder(CardDavBackend::class)
->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend])
- ->setMethods(['updateProperties'])->getMock();
+ ->onlyMethods(['updateProperties'])
+ ->getMock();
// create a new address book
$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
@@ -639,13 +647,8 @@ class CardDavBackendTest extends TestCase {
/**
* @dataProvider dataTestSearch
- *
- * @param string $pattern
- * @param array $properties
- * @param array $options
- * @param array $expected
*/
- public function testSearch($pattern, $properties, $options, $expected): void {
+ public function testSearch(string $pattern, array $properties, array $options, array $expected): void {
/** @var VCard $vCards */
$vCards = [];
$vCards[0] = new VCard();
@@ -756,7 +759,7 @@ class CardDavBackendTest extends TestCase {
$this->assertSame(count($expected), count($found));
}
- public function dataTestSearch() {
+ public static function dataTestSearch(): array {
return [
['John', ['FN'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
['M. Doe', ['FN'], [], [['uri1', 'John M. Doe']]],
diff --git a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php
index 80f1f2a4445..bdd826f671b 100644
--- a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php
+++ b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,16 +14,17 @@ use OCA\DAV\Db\PropertyMapper;
use OCP\Contacts\IManager;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ContactsManagerTest extends TestCase {
public function test(): void {
- /** @var IManager | \PHPUnit\Framework\MockObject\MockObject $cm */
- $cm = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
+ /** @var IManager&MockObject $cm */
+ $cm = $this->createMock(IManager::class);
$cm->expects($this->exactly(2))->method('registerAddressBook');
- $urlGenerator = $this->getMockBuilder(IURLGenerator::class)->disableOriginalConstructor()->getMock();
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $backEnd */
- $backEnd = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ $urlGenerator = $this->createMock(IURLGenerator::class);
+ /** @var CardDavBackend&MockObject $backEnd */
+ $backEnd = $this->createMock(CardDavBackend::class);
$backEnd->method('getAddressBooksForUser')->willReturn([
['{DAV:}displayname' => 'Test address book', 'uri' => 'default'],
]);
diff --git a/apps/dav/tests/unit/CardDAV/ConverterTest.php b/apps/dav/tests/unit/CardDAV/ConverterTest.php
index c29e0db5070..59042ed91d4 100644
--- a/apps/dav/tests/unit/CardDAV/ConverterTest.php
+++ b/apps/dav/tests/unit/CardDAV/ConverterTest.php
@@ -22,17 +22,10 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class ConverterTest extends TestCase {
-
- /** @var IAccountManager|\PHPUnit\Framework\MockObject\MockObject */
- private $accountManager;
- /** @var IUserManager|(IUserManager&MockObject)|MockObject */
- private IUserManager|MockObject $userManager;
-
- /** @var IURLGenerator */
- private $urlGenerator;
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logger;
+ private IAccountManager&MockObject $accountManager;
+ private IUserManager&MockObject $userManager;
+ private IURLGenerator&MockObject $urlGenerator;
+ private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
@@ -44,7 +37,7 @@ class ConverterTest extends TestCase {
}
/**
- * @return IAccountProperty|MockObject
+ * @return IAccountProperty&MockObject
*/
protected function getAccountPropertyMock(string $name, ?string $value, string $scope) {
$property = $this->createMock(IAccountProperty::class);
@@ -77,10 +70,11 @@ class ConverterTest extends TestCase {
yield $this->getAccountPropertyMock(IAccountManager::PROPERTY_TWITTER, '', IAccountManager::SCOPE_LOCAL);
});
- $accountManager = $this->getMockBuilder(IAccountManager::class)
- ->disableOriginalConstructor()->getMock();
+ $accountManager = $this->createMock(IAccountManager::class);
- $accountManager->expects($this->any())->method('getAccount')->willReturn($account);
+ $accountManager->expects($this->any())
+ ->method('getAccount')
+ ->willReturn($account);
return $accountManager;
}
@@ -126,7 +120,7 @@ class ConverterTest extends TestCase {
);
}
- protected function compareData($expected, $data) {
+ protected function compareData(array $expected, array $data): void {
foreach ($expected as $key => $value) {
$found = false;
foreach ($data[1] as $d) {
@@ -141,7 +135,7 @@ class ConverterTest extends TestCase {
}
}
- public function providesNewUsers() {
+ public static function providesNewUsers(): array {
return [
[
null
@@ -197,17 +191,15 @@ class ConverterTest extends TestCase {
/**
* @dataProvider providesNames
- * @param $expected
- * @param $fullName
*/
- public function testNameSplitter($expected, $fullName): void {
+ public function testNameSplitter(string $expected, string $fullName): void {
$converter = new Converter($this->accountManager, $this->userManager, $this->urlGenerator, $this->logger);
$r = $converter->splitFullName($fullName);
$r = implode(';', $r);
$this->assertEquals($expected, $r);
}
- public function providesNames() {
+ public static function providesNames(): array {
return [
['Sauron;;;;', 'Sauron'],
['Baggins;Bilbo;;;', 'Bilbo Baggins'],
@@ -216,16 +208,13 @@ class ConverterTest extends TestCase {
}
/**
- * @param $displayName
- * @param $eMailAddress
- * @param $cloudId
- * @return IUser | \PHPUnit\Framework\MockObject\MockObject
+ * @return IUser&MockObject
*/
protected function getUserMock(string $displayName, ?string $eMailAddress, ?string $cloudId) {
- $image0 = $this->getMockBuilder(IImage::class)->disableOriginalConstructor()->getMock();
+ $image0 = $this->createMock(IImage::class);
$image0->method('mimeType')->willReturn('image/jpeg');
$image0->method('data')->willReturn('123456789');
- $user = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('12345');
$user->method('getDisplayName')->willReturn($displayName);
$user->method('getEMailAddress')->willReturn($eMailAddress);
diff --git a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php
index d5c864d3e4e..8396234a819 100644
--- a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php
+++ b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,6 +14,7 @@ use OCA\DAV\CardDAV\PhotoCache;
use OCP\AppFramework\Http;
use OCP\Files\NotFoundException;
use OCP\Files\SimpleFS\ISimpleFile;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\CardDAV\Card;
use Sabre\DAV\Node;
use Sabre\DAV\Server;
@@ -22,18 +24,12 @@ use Sabre\HTTP\ResponseInterface;
use Test\TestCase;
class ImageExportPluginTest extends TestCase {
- /** @var ResponseInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $response;
- /** @var RequestInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var ImageExportPlugin|\PHPUnit\Framework\MockObject\MockObject */
- private $plugin;
- /** @var Server */
- private $server;
- /** @var Tree|\PHPUnit\Framework\MockObject\MockObject */
- private $tree;
- /** @var PhotoCache|\PHPUnit\Framework\MockObject\MockObject */
- private $cache;
+ private ResponseInterface&MockObject $response;
+ private RequestInterface&MockObject $request;
+ private Server&MockObject $server;
+ private Tree&MockObject $tree;
+ private PhotoCache&MockObject $cache;
+ private ImageExportPlugin $plugin;
protected function setUp(): void {
parent::setUp();
@@ -45,24 +41,20 @@ class ImageExportPluginTest extends TestCase {
$this->server->tree = $this->tree;
$this->cache = $this->createMock(PhotoCache::class);
- $this->plugin = $this->getMockBuilder(ImageExportPlugin::class)
- ->setMethods(['getPhoto'])
- ->setConstructorArgs([$this->cache])
- ->getMock();
+ $this->plugin = new ImageExportPlugin($this->cache);
$this->plugin->initialize($this->server);
}
/**
* @dataProvider providesQueryParams
- * @param $param
*/
- public function testQueryParams($param): void {
+ public function testQueryParams(array $param): void {
$this->request->expects($this->once())->method('getQueryParameters')->willReturn($param);
$result = $this->plugin->httpGet($this->request, $this->response);
$this->assertTrue($result);
}
- public function providesQueryParams() {
+ public static function providesQueryParams(): array {
return [
[[]],
[['1']],
@@ -87,7 +79,7 @@ class ImageExportPluginTest extends TestCase {
$this->assertTrue($result);
}
- public function dataTestCard() {
+ public static function dataTestCard(): array {
return [
[null, false],
[null, true],
@@ -98,11 +90,8 @@ class ImageExportPluginTest extends TestCase {
/**
* @dataProvider dataTestCard
- *
- * @param $size
- * @param bool $photo
*/
- public function testCard($size, $photo): void {
+ public function testCard(?int $size, bool $photo): void {
$query = ['photo' => null];
if ($size !== null) {
$query['size'] = $size;
@@ -145,14 +134,18 @@ class ImageExportPluginTest extends TestCase {
->with(1, 'card', $size, $card)
->willReturn($file);
- $this->response->expects($this->exactly(4))
+ $setHeaderCalls = [
+ ['Cache-Control', 'private, max-age=3600, must-revalidate'],
+ ['Etag', '"myEtag"'],
+ ['Content-Type', 'image/jpeg'],
+ ['Content-Disposition', 'attachment; filename=card.jpg'],
+ ];
+ $this->response->expects($this->exactly(count($setHeaderCalls)))
->method('setHeader')
- ->withConsecutive(
- ['Cache-Control', 'private, max-age=3600, must-revalidate'],
- ['Etag', '"myEtag"'],
- ['Content-Type', 'image/jpeg'],
- ['Content-Disposition', 'attachment; filename=card.jpg'],
- );
+ ->willReturnCallback(function () use (&$setHeaderCalls) {
+ $expected = array_shift($setHeaderCalls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->response->expects($this->once())
->method('setStatus')
@@ -161,12 +154,16 @@ class ImageExportPluginTest extends TestCase {
->method('setBody')
->with('imgdata');
} else {
- $this->response->expects($this->exactly(2))
+ $setHeaderCalls = [
+ ['Cache-Control', 'private, max-age=3600, must-revalidate'],
+ ['Etag', '"myEtag"'],
+ ];
+ $this->response->expects($this->exactly(count($setHeaderCalls)))
->method('setHeader')
- ->withConsecutive(
- ['Cache-Control', 'private, max-age=3600, must-revalidate'],
- ['Etag', '"myEtag"'],
- );
+ ->willReturnCallback(function () use (&$setHeaderCalls) {
+ $expected = array_shift($setHeaderCalls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->cache->method('get')
->with(1, 'card', $size, $card)
->willThrowException(new NotFoundException());
diff --git a/apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php b/apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php
index 33ab83a74ac..ee599d5a76c 100644
--- a/apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php
+++ b/apps/dav/tests/unit/CardDAV/Security/CardDavRateLimitingPluginTest.php
@@ -24,11 +24,11 @@ use Test\TestCase;
class CardDavRateLimitingPluginTest extends TestCase {
- private Limiter|MockObject $limiter;
- private CardDavBackend|MockObject $cardDavBackend;
- private IUserManager|MockObject $userManager;
- private LoggerInterface|MockObject $logger;
- private IAppConfig|MockObject $config;
+ private Limiter&MockObject $limiter;
+ private CardDavBackend&MockObject $cardDavBackend;
+ private IUserManager&MockObject $userManager;
+ private LoggerInterface&MockObject $logger;
+ private IAppConfig&MockObject $config;
private string $userId = 'user123';
private CardDavRateLimitingPlugin $plugin;
diff --git a/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php b/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php
index f35eb9f0040..1e934a69a53 100644
--- a/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php
+++ b/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,6 +13,7 @@ use OCA\DAV\DAV\Sharing\IShareable;
use OCA\DAV\DAV\Sharing\Plugin;
use OCP\IConfig;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Server;
use Sabre\DAV\SimpleCollection;
use Sabre\HTTP\Request;
@@ -19,31 +21,25 @@ use Sabre\HTTP\Response;
use Test\TestCase;
class PluginTest extends TestCase {
-
- /** @var Plugin */
- private $plugin;
- /** @var Server */
- private $server;
- /** @var IShareable | \PHPUnit\Framework\MockObject\MockObject */
- private $book;
+ private Plugin $plugin;
+ private Server $server;
+ private IShareable&MockObject $book;
protected function setUp(): void {
parent::setUp();
- /** @var Auth | \PHPUnit\Framework\MockObject\MockObject $authBackend */
- $authBackend = $this->getMockBuilder(Auth::class)->disableOriginalConstructor()->getMock();
- $authBackend->method('isDavAuthenticated')->willReturn(true);
-
- /** @var IRequest $request */
- $request = $this->getMockBuilder(IRequest::class)->disableOriginalConstructor()->getMock();
+ $authBackend = $this->createMock(Auth::class);
+ $authBackend->method('isDavAuthenticated')
+ ->willReturn(true);
+ $request = $this->createMock(IRequest::class);
$config = $this->createMock(IConfig::class);
$this->plugin = new Plugin($authBackend, $request, $config);
$root = new SimpleCollection('root');
$this->server = new \Sabre\DAV\Server($root);
- /** @var SimpleCollection $node */
- $this->book = $this->getMockBuilder(IShareable::class)->disableOriginalConstructor()->getMock();
- $this->book->method('getName')->willReturn('addressbook1.vcf');
+ $this->book = $this->createMock(IShareable::class);
+ $this->book->method('getName')
+ ->willReturn('addressbook1.vcf');
$root->addChild($this->book);
$this->plugin->initialize($this->server);
}
diff --git a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php
index 5af42e2ea4e..fd31ef36528 100644
--- a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php
+++ b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php
@@ -20,6 +20,7 @@ use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IUser;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Http\Client\ClientExceptionInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
@@ -28,15 +29,18 @@ use Test\TestCase;
class SyncServiceTest extends TestCase {
- protected CardDavBackend $backend;
- protected IUserManager $userManager;
- protected IDBConnection $dbConnection;
+ protected CardDavBackend&MockObject $backend;
+ protected IUserManager&MockObject $userManager;
+ protected IDBConnection&MockObject $dbConnection;
protected LoggerInterface $logger;
- protected Converter $converter;
- protected IClient $client;
- protected IConfig $config;
+ protected Converter&MockObject $converter;
+ protected IClient&MockObject $client;
+ protected IConfig&MockObject $config;
protected SyncService $service;
+
public function setUp(): void {
+ parent::setUp();
+
$addressBook = [
'id' => 1,
'uri' => 'system',
@@ -293,8 +297,8 @@ END:VCARD';
}
public function testEnsureSystemAddressBookExists(): void {
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $backend */
- $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
+ /** @var CardDavBackend&MockObject $backend */
+ $backend = $this->createMock(CardDavBackend::class);
$backend->expects($this->exactly(1))->method('createAddressBook');
$backend->expects($this->exactly(2))
->method('getAddressBooksByUri')
@@ -303,10 +307,9 @@ END:VCARD';
[],
);
- /** @var IUserManager $userManager */
- $userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock();
+ $userManager = $this->createMock(IUserManager::class);
$dbConnection = $this->createMock(IDBConnection::class);
- $logger = $this->getMockBuilder(LoggerInterface::class)->disableOriginalConstructor()->getMock();
+ $logger = $this->createMock(LoggerInterface::class);
$converter = $this->createMock(Converter::class);
$clientService = $this->createMock(IClientService::class);
$config = $this->createMock(IConfig::class);
@@ -315,7 +318,7 @@ END:VCARD';
$ss->ensureSystemAddressBookExists('principals/users/adam', 'contacts', []);
}
- public function dataActivatedUsers() {
+ public static function dataActivatedUsers(): array {
return [
[true, 1, 1, 1],
[false, 0, 0, 3],
@@ -324,15 +327,9 @@ END:VCARD';
/**
* @dataProvider dataActivatedUsers
- *
- * @param boolean $activated
- * @param integer $createCalls
- * @param integer $updateCalls
- * @param integer $deleteCalls
- * @return void
*/
- public function testUpdateAndDeleteUser($activated, $createCalls, $updateCalls, $deleteCalls): void {
- /** @var CardDavBackend | \PHPUnit\Framework\MockObject\MockObject $backend */
+ public function testUpdateAndDeleteUser(bool $activated, int $createCalls, int $updateCalls, int $deleteCalls): void {
+ /** @var CardDavBackend | MockObject $backend */
$backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
$logger = $this->getMockBuilder(LoggerInterface::class)->disableOriginalConstructor()->getMock();
@@ -348,12 +345,9 @@ END:VCARD';
->with('principals/system/system', 'system')
->willReturn(['id' => -1]);
- /** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject $userManager */
- $userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock();
+ $userManager = $this->createMock(IUserManager::class);
$dbConnection = $this->createMock(IDBConnection::class);
-
- /** @var IUser | \PHPUnit\Framework\MockObject\MockObject $user */
- $user = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(IUser::class);
$user->method('getBackendClassName')->willReturn('unittest');
$user->method('getUID')->willReturn('test-user');
$user->method('getCloudId')->willReturn('cloudId');
@@ -475,7 +469,7 @@ END:VCARD';
);
}
- public function providerUseAbsoluteUriReport(): array {
+ public static function providerUseAbsoluteUriReport(): array {
return [
['https://server.internal', 'https://server.internal/remote.php/dav/addressbooks/system/system/system'],
['https://server.internal/', 'https://server.internal/remote.php/dav/addressbooks/system/system/system'],
diff --git a/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php b/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php
index 806c71759f8..4a218fa4616 100644
--- a/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php
+++ b/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php
@@ -30,15 +30,15 @@ use Sabre\VObject\Reader;
use Test\TestCase;
class SystemAddressBookTest extends TestCase {
- private MockObject|BackendInterface $cardDavBackend;
+ private BackendInterface&MockObject $cardDavBackend;
private array $addressBookInfo;
- private IL10N|MockObject $l10n;
- private IConfig|MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IConfig&MockObject $config;
private IUserSession $userSession;
- private IRequest|MockObject $request;
+ private IRequest&MockObject $request;
private array $server;
- private TrustedServers|MockObject $trustedServers;
- private IGroupManager|MockObject $groupManager;
+ private TrustedServers&MockObject $trustedServers;
+ private IGroupManager&MockObject $groupManager;
private SystemAddressbook $addressBook;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php b/apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php
index 39155aace8b..058735ba32a 100644
--- a/apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php
+++ b/apps/dav/tests/unit/CardDAV/Validation/CardDavValidatePluginTest.php
@@ -20,9 +20,9 @@ use Test\TestCase;
class CardDavValidatePluginTest extends TestCase {
private CardDavValidatePlugin $plugin;
- private IAppConfig|MockObject $config;
- private RequestInterface|MockObject $request;
- private ResponseInterface|MockObject $response;
+ private IAppConfig&MockObject $config;
+ private RequestInterface&MockObject $request;
+ private ResponseInterface&MockObject $response;
protected function setUp(): void {
parent::setUp();
@@ -36,7 +36,7 @@ class CardDavValidatePluginTest extends TestCase {
}
public function testPutSizeLessThenLimit(): void {
-
+
// construct method responses
$this->config
->method('getValueInt')
@@ -50,11 +50,11 @@ class CardDavValidatePluginTest extends TestCase {
$this->assertTrue(
$this->plugin->beforePut($this->request, $this->response)
);
-
+
}
public function testPutSizeMoreThenLimit(): void {
-
+
// construct method responses
$this->config
->method('getValueInt')
@@ -67,7 +67,7 @@ class CardDavValidatePluginTest extends TestCase {
$this->expectException(Forbidden::class);
// test condition
$this->plugin->beforePut($this->request, $this->response);
-
+
}
}
diff --git a/apps/dav/tests/unit/Command/DeleteCalendarTest.php b/apps/dav/tests/unit/Command/DeleteCalendarTest.php
index b621e6737d5..2bd269de6dc 100644
--- a/apps/dav/tests/unit/Command/DeleteCalendarTest.php
+++ b/apps/dav/tests/unit/Command/DeleteCalendarTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Command;
+namespace OCA\DAV\Tests\unit\Command;
use OCA\DAV\CalDAV\BirthdayService;
use OCA\DAV\CalDAV\CalDavBackend;
@@ -28,23 +28,12 @@ class DeleteCalendarTest extends TestCase {
public const USER = 'user';
public const NAME = 'calendar';
- /** @var CalDavBackend|MockObject */
- private $calDav;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IL10N|MockObject */
- private $l10n;
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var DeleteCalendar */
- private $command;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
+ private CalDavBackend&MockObject $calDav;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IUserManager&MockObject $userManager;
+ private LoggerInterface&MockObject $logger;
+ private DeleteCalendar $command;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Command/ListAddressbooksTest.php b/apps/dav/tests/unit/Command/ListAddressbooksTest.php
index 2c6b1579042..624b0050bc5 100644
--- a/apps/dav/tests/unit/Command/ListAddressbooksTest.php
+++ b/apps/dav/tests/unit/Command/ListAddressbooksTest.php
@@ -5,7 +5,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Command;
+namespace OCA\DAV\Tests\unit\Command;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\Command\ListAddressbooks;
@@ -20,9 +20,8 @@ use Test\TestCase;
* @package OCA\DAV\Tests\Command
*/
class ListAddressbooksTest extends TestCase {
-
- private IUserManager|MockObject $userManager;
- private CardDavBackend|MockObject $cardDavBackend;
+ private IUserManager&MockObject $userManager;
+ private CardDavBackend&MockObject $cardDavBackend;
private ListAddressbooks $command;
public const USERNAME = 'username';
@@ -72,7 +71,7 @@ class ListAddressbooksTest extends TestCase {
$this->assertStringContainsString('User <' . self::USERNAME . "> has no addressbooks\n", $commandTester->getDisplay());
}
- public function dataExecute() {
+ public static function dataExecute(): array {
return [
[false, '✓'],
[true, 'x']
diff --git a/apps/dav/tests/unit/Command/ListCalendarSharesTest.php b/apps/dav/tests/unit/Command/ListCalendarSharesTest.php
new file mode 100644
index 00000000000..e5d4251cbf9
--- /dev/null
+++ b/apps/dav/tests/unit/Command/ListCalendarSharesTest.php
@@ -0,0 +1,172 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Tests\unit\Command;
+
+use OCA\DAV\CalDAV\CalDavBackend;
+use OCA\DAV\Command\ListCalendarShares;
+use OCA\DAV\Connector\Sabre\Principal;
+use OCA\DAV\DAV\Sharing\SharingMapper;
+use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
+use Symfony\Component\Console\Tester\CommandTester;
+use Test\TestCase;
+
+class ListCalendarSharesTest extends TestCase {
+
+ private IUserManager&MockObject $userManager;
+ private Principal&MockObject $principal;
+ private CalDavBackend&MockObject $caldav;
+ private SharingMapper $sharingMapper;
+ private ListCalendarShares $command;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->principal = $this->createMock(Principal::class);
+ $this->caldav = $this->createMock(CalDavBackend::class);
+ $this->sharingMapper = $this->createMock(SharingMapper::class);
+
+ $this->command = new ListCalendarShares(
+ $this->userManager,
+ $this->principal,
+ $this->caldav,
+ $this->sharingMapper,
+ );
+ }
+
+ public function testUserUnknown(): void {
+ $user = 'bob';
+
+ $this->expectException(\InvalidArgumentException::class);
+ $this->expectExceptionMessage("User $user is unknown");
+
+ $this->userManager->expects($this->once())
+ ->method('userExists')
+ ->with($user)
+ ->willReturn(false);
+
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([
+ 'uid' => $user,
+ ]);
+ }
+
+ public function testPrincipalNotFound(): void {
+ $user = 'bob';
+
+ $this->expectException(\InvalidArgumentException::class);
+ $this->expectExceptionMessage("Unable to fetch principal for user $user");
+
+ $this->userManager->expects($this->once())
+ ->method('userExists')
+ ->with($user)
+ ->willReturn(true);
+
+ $this->principal->expects($this->once())
+ ->method('getPrincipalByPath')
+ ->with('principals/users/' . $user)
+ ->willReturn(null);
+
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([
+ 'uid' => $user,
+ ]);
+ }
+
+ public function testNoCalendarShares(): void {
+ $user = 'bob';
+
+ $this->userManager->expects($this->once())
+ ->method('userExists')
+ ->with($user)
+ ->willReturn(true);
+
+ $this->principal->expects($this->once())
+ ->method('getPrincipalByPath')
+ ->with('principals/users/' . $user)
+ ->willReturn([
+ 'uri' => 'principals/users/' . $user,
+ ]);
+
+ $this->principal->expects($this->once())
+ ->method('getGroupMembership')
+ ->willReturn([]);
+ $this->principal->expects($this->once())
+ ->method('getCircleMembership')
+ ->willReturn([]);
+
+ $this->sharingMapper->expects($this->once())
+ ->method('getSharesByPrincipals')
+ ->willReturn([]);
+
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([
+ 'uid' => $user,
+ ]);
+
+ $this->assertStringContainsString(
+ "User $user has no calendar shares",
+ $commandTester->getDisplay()
+ );
+ }
+
+ public function testFilterByCalendarId(): void {
+ $user = 'bob';
+
+ $this->userManager->expects($this->once())
+ ->method('userExists')
+ ->with($user)
+ ->willReturn(true);
+
+ $this->principal->expects($this->once())
+ ->method('getPrincipalByPath')
+ ->with('principals/users/' . $user)
+ ->willReturn([
+ 'uri' => 'principals/users/' . $user,
+ ]);
+
+ $this->principal->expects($this->once())
+ ->method('getGroupMembership')
+ ->willReturn([]);
+ $this->principal->expects($this->once())
+ ->method('getCircleMembership')
+ ->willReturn([]);
+
+ $this->sharingMapper->expects($this->once())
+ ->method('getSharesByPrincipals')
+ ->willReturn([
+ [
+ 'id' => 1000,
+ 'principaluri' => 'principals/users/bob',
+ 'type' => 'calendar',
+ 'access' => 2,
+ 'resourceid' => 10
+ ],
+ [
+ 'id' => 1001,
+ 'principaluri' => 'principals/users/bob',
+ 'type' => 'calendar',
+ 'access' => 3,
+ 'resourceid' => 11
+ ],
+ ]);
+
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute([
+ 'uid' => $user,
+ '--calendar-id' => 10,
+ ]);
+
+ $this->assertStringNotContainsString(
+ '1001',
+ $commandTester->getDisplay()
+ );
+ }
+}
diff --git a/apps/dav/tests/unit/Command/ListCalendarsTest.php b/apps/dav/tests/unit/Command/ListCalendarsTest.php
index 1f5f9882ac4..247487433eb 100644
--- a/apps/dav/tests/unit/Command/ListCalendarsTest.php
+++ b/apps/dav/tests/unit/Command/ListCalendarsTest.php
@@ -1,14 +1,17 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Command;
+namespace OCA\DAV\Tests\unit\Command;
use OCA\DAV\CalDAV\BirthdayService;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\Command\ListCalendars;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Tester\CommandTester;
use Test\TestCase;
@@ -18,15 +21,9 @@ use Test\TestCase;
* @package OCA\DAV\Tests\Command
*/
class ListCalendarsTest extends TestCase {
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject $userManager */
- private $userManager;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject $l10n */
- private $calDav;
-
- /** @var ListCalendars */
- private $command;
+ private IUserManager&MockObject $userManager;
+ private CalDavBackend&MockObject $calDav;
+ private ListCalendars $command;
public const USERNAME = 'username';
@@ -75,7 +72,7 @@ class ListCalendarsTest extends TestCase {
$this->assertStringContainsString('User <' . self::USERNAME . "> has no calendars\n", $commandTester->getDisplay());
}
- public function dataExecute() {
+ public static function dataExecute(): array {
return [
[false, '✓'],
[true, 'x']
diff --git a/apps/dav/tests/unit/Command/MoveCalendarTest.php b/apps/dav/tests/unit/Command/MoveCalendarTest.php
index 9b935ca3cdb..c481f5cf15b 100644
--- a/apps/dav/tests/unit/Command/MoveCalendarTest.php
+++ b/apps/dav/tests/unit/Command/MoveCalendarTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Command;
+namespace OCA\DAV\Tests\unit\Command;
use InvalidArgumentException;
use OCA\DAV\CalDAV\CalDavBackend;
@@ -24,29 +26,14 @@ use Test\TestCase;
* @package OCA\DAV\Tests\Command
*/
class MoveCalendarTest extends TestCase {
- /** @var IUserManager|MockObject $userManager */
- private $userManager;
-
- /** @var IGroupManager|MockObject $groupManager */
- private $groupManager;
-
- /** @var \OCP\Share\IManager|MockObject $shareManager */
- private $shareManager;
-
- /** @var IConfig|MockObject $l10n */
- private $config;
-
- /** @var IL10N|MockObject $l10n */
- private $l10n;
-
- /** @var CalDavBackend|MockObject $l10n */
- private $calDav;
-
- /** @var MoveCalendar */
- private $command;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private \OCP\Share\IManager&MockObject $shareManager;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private CalDavBackend&MockObject $calDav;
+ private LoggerInterface&MockObject $logger;
+ private MoveCalendar $command;
protected function setUp(): void {
parent::setUp();
@@ -70,7 +57,7 @@ class MoveCalendarTest extends TestCase {
);
}
- public function dataExecute() {
+ public static function dataExecute(): array {
return [
[false, true],
[true, false]
@@ -79,23 +66,16 @@ class MoveCalendarTest extends TestCase {
/**
* @dataProvider dataExecute
- *
- * @param $userOriginExists
- * @param $userDestinationExists
*/
- public function testWithBadUserOrigin($userOriginExists, $userDestinationExists): void {
+ public function testWithBadUserOrigin(bool $userOriginExists, bool $userDestinationExists): void {
$this->expectException(\InvalidArgumentException::class);
$this->userManager->expects($this->exactly($userOriginExists ? 2 : 1))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturnOnConsecutiveCalls(
- $userOriginExists,
- $userDestinationExists,
- );
+ ->willReturnMap([
+ ['user', $userOriginExists],
+ ['user2', $userDestinationExists],
+ ]);
$commandTester = new CommandTester($this->command);
$commandTester->execute([
@@ -112,11 +92,10 @@ class MoveCalendarTest extends TestCase {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->once())->method('getCalendarByUri')
->with('principals/users/user', 'personal')
@@ -137,20 +116,20 @@ class MoveCalendarTest extends TestCase {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturn([
- 'id' => 1234,
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
+ 'id' => 1234,
+ ]],
+ ['principals/users/user2', 'personal', [
+ 'id' => 1234,
+ ]],
]);
$commandTester = new CommandTester($this->command);
@@ -164,24 +143,19 @@ class MoveCalendarTest extends TestCase {
public function testMove(): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->calDav->expects($this->once())->method('getShares')
->with(1234)
@@ -197,7 +171,7 @@ class MoveCalendarTest extends TestCase {
$this->assertStringContainsString('[OK] Calendar <personal> was moved from user <user> to <user2>', $commandTester->getDisplay());
}
- public function dataTestMoveWithDestinationNotPartOfGroup(): array {
+ public static function dataTestMoveWithDestinationNotPartOfGroup(): array {
return [
[true],
[false]
@@ -210,25 +184,20 @@ class MoveCalendarTest extends TestCase {
public function testMoveWithDestinationNotPartOfGroup(bool $shareWithGroupMembersOnly): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
'uri' => 'personal',
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->shareManager->expects($this->once())->method('shareWithGroupMembersOnly')
->willReturn($shareWithGroupMembersOnly);
@@ -254,25 +223,20 @@ class MoveCalendarTest extends TestCase {
public function testMoveWithDestinationPartOfGroup(): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
'uri' => 'personal',
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->shareManager->expects($this->once())->method('shareWithGroupMembersOnly')
->willReturn(true);
@@ -300,26 +264,21 @@ class MoveCalendarTest extends TestCase {
public function testMoveWithDestinationNotPartOfGroupAndForce(): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
'uri' => 'personal',
'{DAV:}displayname' => 'Personal'
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->shareManager->expects($this->once())->method('shareWithGroupMembersOnly')
->willReturn(true);
@@ -345,7 +304,7 @@ class MoveCalendarTest extends TestCase {
$this->assertStringContainsString('[OK] Calendar <personal> was moved from user <user> to <user2>', $commandTester->getDisplay());
}
- public function dataTestMoveWithCalendarAlreadySharedToDestination(): array {
+ public static function dataTestMoveWithCalendarAlreadySharedToDestination(): array {
return [
[true],
[false]
@@ -358,26 +317,21 @@ class MoveCalendarTest extends TestCase {
public function testMoveWithCalendarAlreadySharedToDestination(bool $force): void {
$this->userManager->expects($this->exactly(2))
->method('userExists')
- ->withConsecutive(
- ['user'],
- ['user2'],
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['user', true],
+ ['user2', true],
+ ]);
$this->calDav->expects($this->exactly(2))
->method('getCalendarByUri')
- ->withConsecutive(
- ['principals/users/user', 'personal'],
- ['principals/users/user2', 'personal'],
- )
- ->willReturnOnConsecutiveCalls(
- [
+ ->willReturnMap([
+ ['principals/users/user', 'personal', [
'id' => 1234,
'uri' => 'personal',
'{DAV:}displayname' => 'Personal'
- ],
- null,
- );
+ ]],
+ ['principals/users/user2', 'personal', null],
+ ]);
$this->calDav->expects($this->once())->method('getShares')
->with(1234)
diff --git a/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php b/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php
index f2346c211ce..ec56aa64eb2 100644
--- a/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php
+++ b/apps/dav/tests/unit/Command/RemoveInvalidSharesTest.php
@@ -1,16 +1,16 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2018 ownCloud GmbH
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\Unit\Command;
+namespace OCA\DAV\Tests\unit\Command;
use OCA\DAV\Command\RemoveInvalidShares;
use OCA\DAV\Connector\Sabre\Principal;
use OCP\IDBConnection;
-use OCP\Migration\IOutput;
use OCP\Server;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
@@ -37,18 +37,16 @@ class RemoveInvalidSharesTest extends TestCase {
public function test(): void {
$db = Server::get(IDBConnection::class);
- /** @var Principal | \PHPUnit\Framework\MockObject\MockObject $principal */
$principal = $this->createMock(Principal::class);
- /** @var IOutput | \PHPUnit\Framework\MockObject\MockObject $output */
- $output = $this->createMock(IOutput::class);
-
$repair = new RemoveInvalidShares($db, $principal);
$this->invokePrivate($repair, 'run', [$this->createMock(InputInterface::class), $this->createMock(OutputInterface::class)]);
$query = $db->getQueryBuilder();
- $result = $query->select('*')->from('dav_shares')
- ->where($query->expr()->eq('principaluri', $query->createNamedParameter('principal:unknown')))->execute();
+ $query->select('*')
+ ->from('dav_shares')
+ ->where($query->expr()->eq('principaluri', $query->createNamedParameter('principal:unknown')));
+ $result = $query->executeQuery();
$data = $result->fetchAll();
$result->closeCursor();
$this->assertEquals(0, count($data));
diff --git a/apps/dav/tests/unit/Comments/CommentsNodeTest.php b/apps/dav/tests/unit/Comments/CommentsNodeTest.php
index c253c59df0f..40da2e523c7 100644
--- a/apps/dav/tests/unit/Comments/CommentsNodeTest.php
+++ b/apps/dav/tests/unit/Comments/CommentsNodeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,38 +15,26 @@ use OCP\Comments\MessageTooLongException;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\PropPatch;
class CommentsNodeTest extends \Test\TestCase {
-
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
-
- protected $comment;
- protected $node;
- protected $userManager;
- protected $logger;
- protected $userSession;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IComment&MockObject $comment;
+ protected IUserManager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected CommentNode $node;
protected function setUp(): void {
parent::setUp();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->comment = $this->getMockBuilder(IComment::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->comment = $this->createMock(IComment::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->node = new CommentNode(
$this->commentsManager,
@@ -57,10 +46,7 @@ class CommentsNodeTest extends \Test\TestCase {
}
public function testDelete(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('alice');
@@ -92,10 +78,7 @@ class CommentsNodeTest extends \Test\TestCase {
public function testDeleteForbidden(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('mallory');
@@ -144,10 +127,7 @@ class CommentsNodeTest extends \Test\TestCase {
public function testUpdateComment(): void {
$msg = 'Hello Earth';
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('alice');
@@ -182,10 +162,7 @@ class CommentsNodeTest extends \Test\TestCase {
$msg = null;
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('alice');
@@ -221,10 +198,7 @@ class CommentsNodeTest extends \Test\TestCase {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('Message exceeds allowed character limit of');
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('alice');
@@ -261,10 +235,7 @@ class CommentsNodeTest extends \Test\TestCase {
$msg = 'HaXX0r';
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('mallory');
@@ -296,10 +267,7 @@ class CommentsNodeTest extends \Test\TestCase {
$msg = 'HaXX0r';
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $user = $this->createMock(IUser::class);
$user->expects($this->never())
->method('getUID');
@@ -344,10 +312,7 @@ class CommentsNodeTest extends \Test\TestCase {
}
public function testPropPatch(): void {
- $propPatch = $this->getMockBuilder(PropPatch::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $propPatch = $this->createMock(PropPatch::class);
$propPatch->expects($this->once())
->method('handle')
->with('{http://owncloud.org/ns}message');
@@ -396,11 +361,10 @@ class CommentsNodeTest extends \Test\TestCase {
$this->commentsManager->expects($this->exactly(2))
->method('resolveDisplayName')
- ->withConsecutive(
- [$this->equalTo('user'), $this->equalTo('alice')],
- [$this->equalTo('user'), $this->equalTo('bob')]
- )
- ->willReturnOnConsecutiveCalls('Alice Al-Isson', 'Unknown user');
+ ->willReturnMap([
+ ['user', 'alice', 'Alice Al-Isson'],
+ ['user', 'bob', 'Unknown user']
+ ]);
$this->comment->expects($this->once())
->method('getId')
@@ -491,7 +455,7 @@ class CommentsNodeTest extends \Test\TestCase {
$this->assertTrue(empty($expected));
}
- public function readCommentProvider() {
+ public static function readCommentProvider(): array {
$creationDT = new \DateTime('2016-01-19 18:48:00');
$diff = new \DateInterval('PT2H');
$readDT1 = clone $creationDT;
@@ -507,9 +471,8 @@ class CommentsNodeTest extends \Test\TestCase {
/**
* @dataProvider readCommentProvider
- * @param $expected
*/
- public function testGetPropertiesUnreadProperty($creationDT, $readDT, $expected): void {
+ public function testGetPropertiesUnreadProperty(\DateTime $creationDT, ?\DateTime $readDT, string $expected): void {
$this->comment->expects($this->any())
->method('getCreationDateTime')
->willReturn($creationDT);
diff --git a/apps/dav/tests/unit/Comments/CommentsPluginTest.php b/apps/dav/tests/unit/Comments/CommentsPluginTest.php
index 5ca0cedf04b..35638391e67 100644
--- a/apps/dav/tests/unit/Comments/CommentsPluginTest.php
+++ b/apps/dav/tests/unit/Comments/CommentsPluginTest.php
@@ -14,44 +14,30 @@ use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\INode;
use Sabre\DAV\Tree;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
class CommentsPluginTest extends \Test\TestCase {
- /** @var \Sabre\DAV\Server */
- private $server;
-
- /** @var Tree */
- private $tree;
-
- /** @var ICommentsManager */
- private $commentsManager;
-
- /** @var IUserSession */
- private $userSession;
-
- /** @var CommentsPluginImplementation */
- private $plugin;
+ private \Sabre\DAV\Server&MockObject $server;
+ private Tree&MockObject $tree;
+ private ICommentsManager&MockObject $commentsManager;
+ private IUserSession&MockObject $userSession;
+ private CommentsPluginImplementation $plugin;
protected function setUp(): void {
parent::setUp();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
- $this->server = $this->getMockBuilder('\Sabre\DAV\Server')
+ $this->server = $this->getMockBuilder(\Sabre\DAV\Server::class)
->setConstructorArgs([$this->tree])
- ->setMethods(['getRequestUri'])
+ ->onlyMethods(['getRequestUri'])
->getMock();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
$this->plugin = new CommentsPluginImplementation($this->commentsManager, $this->userSession);
}
@@ -151,7 +137,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentInvalidObject(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
@@ -233,7 +219,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentInvalidActor(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
@@ -321,7 +307,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentUnsupportedMediaType(): void {
$this->expectException(\Sabre\DAV\Exception\UnsupportedMediaType::class);
@@ -409,7 +395,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentInvalidPayload(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
@@ -503,7 +489,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testCreateCommentMessageTooLong(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('Message exceeds allowed character limit of');
@@ -597,7 +583,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
-
+
public function testOnReportInvalidNode(): void {
$this->expectException(\Sabre\DAV\Exception\ReportNotSupported::class);
@@ -620,7 +606,7 @@ class CommentsPluginTest extends \Test\TestCase {
$this->plugin->onReport(CommentsPluginImplementation::REPORT_NAME, [], '/' . $path);
}
-
+
public function testOnReportInvalidReportName(): void {
$this->expectException(\Sabre\DAV\Exception\ReportNotSupported::class);
diff --git a/apps/dav/tests/unit/Comments/EntityCollectionTest.php b/apps/dav/tests/unit/Comments/EntityCollectionTest.php
index e5a68e5a726..fcf0748696c 100644
--- a/apps/dav/tests/unit/Comments/EntityCollectionTest.php
+++ b/apps/dav/tests/unit/Comments/EntityCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,36 +15,23 @@ use OCP\Comments\ICommentsManager;
use OCP\Comments\NotFoundException;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class EntityCollectionTest extends \Test\TestCase {
-
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
- /** @var EntityCollection */
- protected $collection;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IUserManager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected EntityCollection $collection;
protected function setUp(): void {
parent::setUp();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->collection = new EntityCollection(
'19',
@@ -70,7 +58,7 @@ class EntityCollectionTest extends \Test\TestCase {
);
$node = $this->collection->getChild('55');
- $this->assertTrue($node instanceof CommentNode);
+ $this->assertInstanceOf(CommentNode::class, $node);
}
@@ -97,8 +85,8 @@ class EntityCollectionTest extends \Test\TestCase {
$result = $this->collection->getChildren();
- $this->assertSame(count($result), 1);
- $this->assertTrue($result[0] instanceof CommentNode);
+ $this->assertCount(1, $result);
+ $this->assertInstanceOf(CommentNode::class, $result[0]);
}
public function testFindChildren(): void {
@@ -114,8 +102,8 @@ class EntityCollectionTest extends \Test\TestCase {
$result = $this->collection->findChildren(5, 15, $dt);
- $this->assertSame(count($result), 1);
- $this->assertTrue($result[0] instanceof CommentNode);
+ $this->assertCount(1, $result);
+ $this->assertInstanceOf(CommentNode::class, $result[0]);
}
public function testChildExistsTrue(): void {
diff --git a/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php b/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php
index e5706099270..e5178a3e786 100644
--- a/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php
+++ b/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,40 +13,25 @@ use OCA\DAV\Comments\EntityTypeCollection;
use OCP\Comments\ICommentsManager;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class EntityTypeCollectionTest extends \Test\TestCase {
-
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
- /** @var EntityTypeCollection */
- protected $collection;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IUserManager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected EntityTypeCollection $collection;
protected $childMap = [];
protected function setUp(): void {
parent::setUp();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $instance = $this;
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->collection = new EntityTypeCollection(
'files',
@@ -53,8 +39,8 @@ class EntityTypeCollectionTest extends \Test\TestCase {
$this->userManager,
$this->userSession,
$this->logger,
- function ($child) use ($instance) {
- return !empty($instance->childMap[$child]);
+ function ($child) {
+ return !empty($this->childMap[$child]);
}
);
}
@@ -72,7 +58,7 @@ class EntityTypeCollectionTest extends \Test\TestCase {
$this->childMap[17] = true;
$ec = $this->collection->getChild('17');
- $this->assertTrue($ec instanceof EntityCollectionImplemantation);
+ $this->assertInstanceOf(EntityCollectionImplemantation::class, $ec);
}
diff --git a/apps/dav/tests/unit/Comments/RootCollectionTest.php b/apps/dav/tests/unit/Comments/RootCollectionTest.php
index 5d9e828f687..9a05d996c8c 100644
--- a/apps/dav/tests/unit/Comments/RootCollectionTest.php
+++ b/apps/dav/tests/unit/Comments/RootCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,44 +17,27 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class RootCollectionTest extends \Test\TestCase {
-
- /** @var ICommentsManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $commentsManager;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
- /** @var RootCollection */
- protected $collection;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
- /** @var IEventDispatcher */
- protected $dispatcher;
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject */
- protected $user;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IUserManager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected IEventDispatcher $dispatcher;
+ protected IUser&MockObject $user;
+ protected RootCollection $collection;
protected function setUp(): void {
parent::setUp();
- $this->user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->user = $this->createMock(IUser::class);
+
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->dispatcher = new EventDispatcher(
new \Symfony\Component\EventDispatcher\EventDispatcher(),
\OC::$server,
@@ -69,7 +53,7 @@ class RootCollectionTest extends \Test\TestCase {
);
}
- protected function prepareForInitCollections() {
+ protected function prepareForInitCollections(): void {
$this->user->expects($this->any())
->method('getUID')
->willReturn('alice');
@@ -102,7 +86,7 @@ class RootCollectionTest extends \Test\TestCase {
public function testGetChild(): void {
$this->prepareForInitCollections();
$etc = $this->collection->getChild('files');
- $this->assertTrue($etc instanceof EntityTypeCollectionImplementation);
+ $this->assertInstanceOf(EntityTypeCollectionImplementation::class, $etc);
}
@@ -125,7 +109,7 @@ class RootCollectionTest extends \Test\TestCase {
$children = $this->collection->getChildren();
$this->assertFalse(empty($children));
foreach ($children as $child) {
- $this->assertTrue($child instanceof EntityTypeCollectionImplementation);
+ $this->assertInstanceOf(EntityTypeCollectionImplementation::class, $child);
}
}
diff --git a/apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php b/apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php
index 2bb68374162..8b8c775c8ec 100644
--- a/apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php
+++ b/apps/dav/tests/unit/Connector/LegacyPublicAuthTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,6 +15,7 @@ use OCP\Security\Bruteforce\IThrottler;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
/**
* Class LegacyPublicAuthTest
@@ -23,36 +25,20 @@ use OCP\Share\IShare;
* @package OCA\DAV\Tests\unit\Connector
*/
class LegacyPublicAuthTest extends \Test\TestCase {
-
- /** @var ISession|\PHPUnit\Framework\MockObject\MockObject */
- private $session;
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
- /** @var LegacyPublicAuth */
- private $auth;
- /** @var IThrottler|\PHPUnit\Framework\MockObject\MockObject */
- private $throttler;
-
- /** @var string */
- private $oldUser;
+ private ISession&MockObject $session;
+ private IRequest&MockObject $request;
+ private IManager&MockObject $shareManager;
+ private IThrottler&MockObject $throttler;
+ private LegacyPublicAuth $auth;
+ private string|false $oldUser;
protected function setUp(): void {
parent::setUp();
- $this->session = $this->getMockBuilder(ISession::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->shareManager = $this->getMockBuilder(IManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->throttler = $this->getMockBuilder(IThrottler::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->session = $this->createMock(ISession::class);
+ $this->request = $this->createMock(IRequest::class);
+ $this->shareManager = $this->createMock(IManager::class);
+ $this->throttler = $this->createMock(IThrottler::class);
$this->auth = new LegacyPublicAuth(
$this->request,
@@ -70,7 +56,9 @@ class LegacyPublicAuthTest extends \Test\TestCase {
// Set old user
\OC_User::setUserId($this->oldUser);
- \OC_Util::setupFS($this->oldUser);
+ if ($this->oldUser !== false) {
+ \OC_Util::setupFS($this->oldUser);
+ }
parent::tearDown();
}
@@ -86,9 +74,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testShareNoPassword(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn(null);
$this->shareManager->expects($this->once())
@@ -101,9 +87,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testSharePasswordFancyShareType(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(42);
@@ -118,9 +102,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
public function testSharePasswordRemote(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_REMOTE);
@@ -134,9 +116,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testSharePasswordLinkValidPassword(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
@@ -156,9 +136,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testSharePasswordMailValidPassword(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_EMAIL);
@@ -178,9 +156,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testInvalidSharePasswordLinkValidSession(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
$share->method('getId')->willReturn('42');
@@ -204,9 +180,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
}
public function testSharePasswordLinkInvalidSession(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
$share->method('getId')->willReturn('42');
@@ -231,9 +205,7 @@ class LegacyPublicAuthTest extends \Test\TestCase {
public function testSharePasswordMailInvalidSession(): void {
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_EMAIL);
$share->method('getId')->willReturn('42');
diff --git a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
index c6d247b3951..501ef3ef1d1 100644
--- a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -29,33 +30,20 @@ use Test\TestCase;
* @group DB
*/
class AuthTest extends TestCase {
- /** @var ISession&MockObject */
- private $session;
- /** @var Auth */
- private $auth;
- /** @var Session&MockObject */
- private $userSession;
- /** @var IRequest&MockObject */
- private $request;
- /** @var Manager&MockObject */
- private $twoFactorManager;
- /** @var IThrottler&MockObject */
- private $throttler;
+ private ISession&MockObject $session;
+ private Session&MockObject $userSession;
+ private IRequest&MockObject $request;
+ private Manager&MockObject $twoFactorManager;
+ private IThrottler&MockObject $throttler;
+ private Auth $auth;
protected function setUp(): void {
parent::setUp();
- $this->session = $this->getMockBuilder(ISession::class)
- ->disableOriginalConstructor()->getMock();
- $this->userSession = $this->getMockBuilder(Session::class)
- ->disableOriginalConstructor()->getMock();
- $this->request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()->getMock();
- $this->twoFactorManager = $this->getMockBuilder(Manager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->throttler = $this->getMockBuilder(IThrottler::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->session = $this->createMock(ISession::class);
+ $this->userSession = $this->createMock(Session::class);
+ $this->request = $this->createMock(IRequest::class);
+ $this->twoFactorManager = $this->createMock(Manager::class);
+ $this->throttler = $this->createMock(IThrottler::class);
$this->auth = new Auth(
$this->session,
$this->userSession,
@@ -72,7 +60,7 @@ class AuthTest extends TestCase {
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $this->assertFalse($this->invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
+ $this->assertFalse(self::invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
}
public function testIsDavAuthenticatedWithWrongDavSession(): void {
@@ -82,7 +70,7 @@ class AuthTest extends TestCase {
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('AnotherUser');
- $this->assertFalse($this->invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
+ $this->assertFalse(self::invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
}
public function testIsDavAuthenticatedWithCorrectDavSession(): void {
@@ -92,13 +80,11 @@ class AuthTest extends TestCase {
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('MyTestUser');
- $this->assertTrue($this->invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
+ $this->assertTrue(self::invokePrivate($this->auth, 'isDavAuthenticated', ['MyTestUser']));
}
public function testValidateUserPassOfAlreadyDAVAuthenticatedUser(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->exactly(1))
->method('getUID')
->willReturn('MyTestUser');
@@ -119,13 +105,11 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->assertTrue($this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
+ $this->assertTrue(self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
}
public function testValidateUserPassOfInvalidDAVAuthenticatedUser(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->willReturn('MyTestUser');
@@ -146,13 +130,11 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->assertFalse($this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
+ $this->assertFalse(self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
}
public function testValidateUserPassOfInvalidDAVAuthenticatedUserWithValidPassword(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->exactly(2))
->method('getUID')
->willReturn('MyTestUser');
@@ -182,7 +164,7 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->assertTrue($this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
+ $this->assertTrue(self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
}
public function testValidateUserPassWithInvalidPassword(): void {
@@ -199,7 +181,7 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->assertFalse($this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
+ $this->assertFalse(self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
}
@@ -219,16 +201,12 @@ class AuthTest extends TestCase {
->expects($this->once())
->method('close');
- $this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']);
+ self::invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']);
}
public function testAuthenticateAlreadyLoggedInWithoutCsrfTokenForNonGet(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -242,9 +220,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyWrongDavUser');
@@ -266,12 +242,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateAlreadyLoggedInWithoutCsrfTokenAndCorrectlyDavAuthenticated(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -289,9 +261,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('LoggedInUser');
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('LoggedInUser');
@@ -311,12 +281,8 @@ class AuthTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\NotAuthenticated::class);
$this->expectExceptionMessage('2FA challenge not passed.');
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -334,9 +300,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('LoggedInUser');
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('LoggedInUser');
@@ -360,12 +324,8 @@ class AuthTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\NotAuthenticated::class);
$this->expectExceptionMessage('CSRF check not passed.');
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -383,9 +343,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn('AnotherUser');
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('LoggedInUser');
@@ -401,12 +359,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateAlreadyLoggedInWithoutCsrfTokenForNonGetAndDesktopClient(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -424,9 +378,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyWrongDavUser');
@@ -443,12 +395,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateAlreadyLoggedInWithoutCsrfTokenForGet(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -458,9 +406,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyWrongDavUser');
@@ -478,12 +424,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateAlreadyLoggedInWithCsrfTokenForGet(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -493,9 +435,7 @@ class AuthTest extends TestCase {
->method('get')
->with('AUTHENTICATED_TO_DAV_BACKEND')
->willReturn(null);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyWrongDavUser');
@@ -513,15 +453,9 @@ class AuthTest extends TestCase {
}
public function testAuthenticateNoBasicAuthenticateHeadersProvided(): void {
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server->httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server->httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
+ $server->httpRequest = $this->createMock(RequestInterface::class);
+ $server->httpResponse = $this->createMock(ResponseInterface::class);
$response = $this->auth->check($server->httpRequest, $server->httpResponse);
$this->assertEquals([false, 'No \'Authorization: Basic\' header found. Either the client didn\'t send one, or the server is misconfigured'], $response);
}
@@ -532,13 +466,9 @@ class AuthTest extends TestCase {
$this->expectExceptionMessage('Cannot authenticate over ajax calls');
/** @var \Sabre\HTTP\RequestInterface&MockObject $httpRequest */
- $httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpRequest = $this->createMock(RequestInterface::class);
/** @var \Sabre\HTTP\ResponseInterface&MockObject $httpResponse */
- $httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpResponse = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->any())
->method('isLoggedIn')
@@ -562,13 +492,9 @@ class AuthTest extends TestCase {
->willReturn(false);
/** @var \Sabre\HTTP\RequestInterface&MockObject $httpRequest */
- $httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpRequest = $this->createMock(RequestInterface::class);
/** @var \Sabre\HTTP\ResponseInterface&MockObject $httpResponse */
- $httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpResponse = $this->createMock(ResponseInterface::class);
$httpRequest
->expects($this->any())
->method('getHeader')
@@ -577,9 +503,7 @@ class AuthTest extends TestCase {
['Authorization', 'basic dXNlcm5hbWU6cGFzc3dvcmQ='],
]);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('MyDavUser');
@@ -602,17 +526,10 @@ class AuthTest extends TestCase {
public function testAuthenticateNoBasicAuthenticateHeadersProvidedWithAjaxButUserIsStillLoggedIn(): void {
/** @var \Sabre\HTTP\RequestInterface $httpRequest */
- $httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpRequest = $this->createMock(RequestInterface::class);
/** @var \Sabre\HTTP\ResponseInterface $httpResponse */
- $httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- /** @var IUser */
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $httpResponse = $this->createMock(ResponseInterface::class);
+ $user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('MyTestUser');
$this->userSession
->expects($this->any())
@@ -643,29 +560,21 @@ class AuthTest extends TestCase {
}
public function testAuthenticateValidCredentials(): void {
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server->httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
+ $server->httpRequest = $this->createMock(RequestInterface::class);
$server->httpRequest
->expects($this->once())
->method('getHeader')
->with('Authorization')
->willReturn('basic dXNlcm5hbWU6cGFzc3dvcmQ=');
- $server->httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server->httpResponse = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->once())
->method('logClientIn')
->with('username', 'password')
->willReturn(true);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->exactly(2))
->method('getUID')
->willReturn('MyTestUser');
@@ -678,12 +587,8 @@ class AuthTest extends TestCase {
}
public function testAuthenticateInvalidCredentials(): void {
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server->httpRequest = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
+ $server->httpRequest = $this->createMock(RequestInterface::class);
$server->httpRequest
->expects($this->exactly(2))
->method('getHeader')
@@ -691,9 +596,7 @@ class AuthTest extends TestCase {
['Authorization', 'basic dXNlcm5hbWU6cGFzc3dvcmQ='],
['X-Requested-With', null],
]);
- $server->httpResponse = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server->httpResponse = $this->createMock(ResponseInterface::class);
$this->userSession
->expects($this->once())
->method('logClientIn')
diff --git a/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php b/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php
index 99c2a461557..1e6267d4cbb 100644
--- a/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -21,14 +23,10 @@ use Test\TestCase;
* @group DB
*/
class BearerAuthTest extends TestCase {
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
- /** @var ISession|\PHPUnit\Framework\MockObject\MockObject */
- private $session;
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var BearerAuth */
- private $bearerAuth;
+ private IUserSession&MockObject $userSession;
+ private ISession&MockObject $session;
+ private IRequest&MockObject $request;
+ private BearerAuth $bearerAuth;
private IConfig&MockObject $config;
@@ -74,9 +72,9 @@ class BearerAuthTest extends TestCase {
}
public function testChallenge(): void {
- /** @var \PHPUnit\Framework\MockObject\MockObject|RequestInterface $request */
+ /** @var RequestInterface&MockObject $request */
$request = $this->createMock(RequestInterface::class);
- /** @var \PHPUnit\Framework\MockObject\MockObject|ResponseInterface $response */
+ /** @var ResponseInterface&MockObject $response */
$response = $this->createMock(ResponseInterface::class);
$result = $this->bearerAuth->challenge($request, $response);
$this->assertEmpty($result);
diff --git a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
index 072dd1a3b58..27ddd3f4a1f 100644
--- a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
@@ -83,7 +83,7 @@ class BlockLegacyClientPluginTest extends TestCase {
}
/** @var RequestInterface|MockObject $request */
- $request = $this->createMock('\Sabre\HTTP\RequestInterface');
+ $request = $this->createMock(RequestInterface::class);
$request
->expects($this->once())
->method('getHeader')
diff --git a/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php
index 1cda0e4dbdb..6606dcd5717 100644
--- a/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,62 +9,45 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OCA\DAV\Connector\Sabre\CommentPropertiesPlugin as CommentPropertiesPluginImplementation;
+use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\File;
use OCP\Comments\ICommentsManager;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\PropFind;
+use Sabre\DAV\Server;
class CommentsPropertiesPluginTest extends \Test\TestCase {
-
- /** @var CommentPropertiesPluginImplementation */
- protected $plugin;
- protected $commentsManager;
- protected $userSession;
- protected $server;
+ protected CommentPropertiesPluginImplementation $plugin;
+ protected ICommentsManager&MockObject $commentsManager;
+ protected IUserSession&MockObject $userSession;
+ protected Server&MockObject $server;
protected function setUp(): void {
parent::setUp();
- $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->server = $this->getMockBuilder('\Sabre\DAV\Server')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->server = $this->createMock(Server::class);
$this->plugin = new CommentPropertiesPluginImplementation($this->commentsManager, $this->userSession);
$this->plugin->initialize($this->server);
}
- public function nodeProvider() {
- $mocks = [];
- foreach (['\OCA\DAV\Connector\Sabre\File', '\OCA\DAV\Connector\Sabre\Directory', '\Sabre\DAV\INode'] as $class) {
- $mocks[] = $this->getMockBuilder($class)
- ->disableOriginalConstructor()
- ->getMock();
- }
-
+ public static function nodeProvider(): array {
return [
- [$mocks[0], true],
- [$mocks[1], true],
- [$mocks[2], false]
+ [File::class, true],
+ [Directory::class, true],
+ [\Sabre\DAV\INode::class, false]
];
}
/**
* @dataProvider nodeProvider
- * @param $node
- * @param $expectedSuccessful
*/
- public function testHandleGetProperties($node, $expectedSuccessful): void {
- $propFind = $this->getMockBuilder(PropFind::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testHandleGetProperties(string $class, bool $expectedSuccessful): void {
+ $propFind = $this->createMock(PropFind::class);
if ($expectedSuccessful) {
$propFind->expects($this->exactly(3))
@@ -73,10 +57,11 @@ class CommentsPropertiesPluginTest extends \Test\TestCase {
->method('handle');
}
+ $node = $this->createMock($class);
$this->plugin->handleGetProperties($propFind, $node);
}
- public function baseUriProvider() {
+ public static function baseUriProvider(): array {
return [
['owncloud/remote.php/webdav/', '4567', 'owncloud/remote.php/dav/comments/files/4567'],
['owncloud/remote.php/files/', '4567', 'owncloud/remote.php/dav/comments/files/4567'],
@@ -86,14 +71,9 @@ class CommentsPropertiesPluginTest extends \Test\TestCase {
/**
* @dataProvider baseUriProvider
- * @param $baseUri
- * @param $fid
- * @param $expectedHref
*/
- public function testGetCommentsLink($baseUri, $fid, $expectedHref): void {
- $node = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testGetCommentsLink(string $baseUri, string $fid, ?string $expectedHref): void {
+ $node = $this->createMock(File::class);
$node->expects($this->any())
->method('getId')
->willReturn($fid);
@@ -106,29 +86,25 @@ class CommentsPropertiesPluginTest extends \Test\TestCase {
$this->assertSame($expectedHref, $href);
}
- public function userProvider() {
+ public static function userProvider(): array {
return [
- [
- $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock()
- ],
+ [IUser::class],
[null]
];
}
/**
* @dataProvider userProvider
- * @param $user
*/
- public function testGetUnreadCount($user): void {
- $node = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testGetUnreadCount(?string $user): void {
+ $node = $this->createMock(File::class);
$node->expects($this->any())
->method('getId')
->willReturn('4567');
+ if ($user !== null) {
+ $user = $this->createMock($user);
+ }
$this->userSession->expects($this->once())
->method('getUser')
->willReturn($user);
diff --git a/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php
index bc19e071ee7..7067cf335ed 100644
--- a/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -15,12 +16,8 @@ use Sabre\DAV\Tree;
use Test\TestCase;
class CopyEtagHeaderPluginTest extends TestCase {
-
- /** @var CopyEtagHeaderPlugin */
- private $plugin;
-
- /** @var Server */
- private $server;
+ private CopyEtagHeaderPlugin $plugin;
+ private Server $server;
protected function setUp(): void {
parent::setUp();
@@ -62,15 +59,11 @@ class CopyEtagHeaderPluginTest extends TestCase {
}
public function testAfterMove(): void {
- $node = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->once())
->method('getETag')
->willReturn('123456');
- $tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $tree = $this->createMock(Tree::class);
$tree->expects($this->once())
->method('getNodeForPath')
->with('test.txt')
diff --git a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php
index eb3f291e9c0..381206e336e 100644
--- a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -25,42 +26,21 @@ use Sabre\DAV\Tree;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class CustomPropertiesBackendTest extends \Test\TestCase {
-
- /**
- * @var \Sabre\DAV\Server
- */
- private $server;
-
- /**
- * @var \Sabre\DAV\Tree
- */
- private $tree;
-
- /**
- * @var CustomPropertiesBackend
- */
- private $plugin;
-
- /**
- * @var IUser
- */
- private $user;
-
- /** @property MockObject|DefaultCalendarValidator */
- private $defaultCalendarValidator;
+ private \Sabre\DAV\Server $server;
+ private \Sabre\DAV\Tree&MockObject $tree;
+ private IUser&MockObject $user;
+ private DefaultCalendarValidator&MockObject $defaultCalendarValidator;
+ private CustomPropertiesBackend $plugin;
protected function setUp(): void {
parent::setUp();
+
$this->server = new \Sabre\DAV\Server();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
- $userId = $this->getUniqueID('testcustompropertiesuser');
+ $userId = self::getUniqueID('testcustompropertiesuser');
- $this->user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->user = $this->createMock(IUser::class);
$this->user->expects($this->any())
->method('getUID')
->willReturn($userId);
@@ -88,12 +68,12 @@ class CustomPropertiesBackendTest extends \Test\TestCase {
]
);
$deleteStatement->closeCursor();
+
+ parent::tearDown();
}
- private function createTestNode($class) {
- $node = $this->getMockBuilder($class)
- ->disableOriginalConstructor()
- ->getMock();
+ private function createTestNode(string $class) {
+ $node = $this->createMock($class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
diff --git a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php
index f6c19787e94..85890c0f987 100644
--- a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php
@@ -1,11 +1,12 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\Unit\Connector\Sabre;
+namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OC\Files\FileInfo;
use OC\Files\Filesystem;
@@ -15,11 +16,13 @@ use OC\Files\View;
use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\Exception\Forbidden;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
+use OCA\Files_Sharing\External\Storage;
use OCP\Constants;
use OCP\Files\ForbiddenException;
use OCP\Files\InvalidPathException;
use OCP\Files\Mount\IMountPoint;
use OCP\Files\StorageNotAvailableException;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\Traits\UserTrait;
class TestViewDirectory extends View {
@@ -42,7 +45,7 @@ class TestViewDirectory extends View {
return $this->deletables[$path];
}
- public function rename($path1, $path2, array $options = []) {
+ public function rename($source, $target, array $options = []) {
return $this->canRename;
}
@@ -58,16 +61,14 @@ class TestViewDirectory extends View {
class DirectoryTest extends \Test\TestCase {
use UserTrait;
- /** @var View|\PHPUnit\Framework\MockObject\MockObject */
- private $view;
- /** @var FileInfo|\PHPUnit\Framework\MockObject\MockObject */
- private $info;
+ private View&MockObject $view;
+ private FileInfo&MockObject $info;
protected function setUp(): void {
parent::setUp();
- $this->view = $this->createMock('OC\Files\View');
- $this->info = $this->createMock('OC\Files\FileInfo');
+ $this->view = $this->createMock(View::class);
+ $this->info = $this->createMock(FileInfo::class);
$this->info->method('isReadable')
->willReturn(true);
$this->info->method('getType')
@@ -80,7 +81,7 @@ class DirectoryTest extends \Test\TestCase {
->willReturn(Constants::PERMISSION_READ);
}
- private function getDir($path = '/') {
+ private function getDir(string $path = '/'): Directory {
$this->view->expects($this->once())
->method('getRelativePath')
->willReturn($path);
@@ -173,12 +174,8 @@ class DirectoryTest extends \Test\TestCase {
}
public function testGetChildren(): void {
- $info1 = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
- $info2 = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $info1 = $this->createMock(FileInfo::class);
+ $info2 = $this->createMock(FileInfo::class);
$info1->method('getName')
->willReturn('first');
$info1->method('getPath')
@@ -213,7 +210,7 @@ class DirectoryTest extends \Test\TestCase {
$dir = new Directory($this->view, $this->info);
$nodes = $dir->getChildren();
- $this->assertEquals(2, count($nodes));
+ $this->assertCount(2, $nodes);
// calling a second time just returns the cached values,
// does not call getDirectoryContents again
@@ -272,12 +269,10 @@ class DirectoryTest extends \Test\TestCase {
}
public function testGetQuotaInfoUnlimited(): void {
- self::createUser('user', 'password');
+ $this->createUser('user', 'password');
self::loginAsUser('user');
$mountPoint = $this->createMock(IMountPoint::class);
- $storage = $this->getMockBuilder(Quota::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $storage = $this->createMock(Quota::class);
$mountPoint->method('getStorage')
->willReturn($storage);
@@ -286,7 +281,7 @@ class DirectoryTest extends \Test\TestCase {
->willReturnMap([
['\OCA\Files_Sharing\SharedStorage', false],
['\OC\Files\Storage\Wrapper\Quota', false],
- [\OCA\Files_Sharing\External\Storage::class, false],
+ [Storage::class, false],
]);
$storage->expects($this->once())
@@ -328,12 +323,10 @@ class DirectoryTest extends \Test\TestCase {
}
public function testGetQuotaInfoSpecific(): void {
- self::createUser('user', 'password');
+ $this->createUser('user', 'password');
self::loginAsUser('user');
$mountPoint = $this->createMock(IMountPoint::class);
- $storage = $this->getMockBuilder(Quota::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $storage = $this->createMock(Quota::class);
$mountPoint->method('getStorage')
->willReturn($storage);
@@ -342,7 +335,7 @@ class DirectoryTest extends \Test\TestCase {
->willReturnMap([
['\OCA\Files_Sharing\SharedStorage', false],
['\OC\Files\Storage\Wrapper\Quota', true],
- [\OCA\Files_Sharing\External\Storage::class, false],
+ [Storage::class, false],
]);
$storage->expects($this->once())
@@ -383,7 +376,7 @@ class DirectoryTest extends \Test\TestCase {
/**
* @dataProvider moveFailedProvider
*/
- public function testMoveFailed($source, $destination, $updatables, $deletables): void {
+ public function testMoveFailed(string $source, string $destination, array $updatables, array $deletables): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->moveTest($source, $destination, $updatables, $deletables);
@@ -392,7 +385,7 @@ class DirectoryTest extends \Test\TestCase {
/**
* @dataProvider moveSuccessProvider
*/
- public function testMoveSuccess($source, $destination, $updatables, $deletables): void {
+ public function testMoveSuccess(string $source, string $destination, array $updatables, array $deletables): void {
$this->moveTest($source, $destination, $updatables, $deletables);
$this->addToAssertionCount(1);
}
@@ -400,19 +393,19 @@ class DirectoryTest extends \Test\TestCase {
/**
* @dataProvider moveFailedInvalidCharsProvider
*/
- public function testMoveFailedInvalidChars($source, $destination, $updatables, $deletables): void {
+ public function testMoveFailedInvalidChars(string $source, string $destination, array $updatables, array $deletables): void {
$this->expectException(InvalidPath::class);
$this->moveTest($source, $destination, $updatables, $deletables);
}
- public function moveFailedInvalidCharsProvider() {
+ public static function moveFailedInvalidCharsProvider(): array {
return [
['a/valid', "a/i\nvalid", ['a' => true, 'a/valid' => true, 'a/c*' => false], []],
];
}
- public function moveFailedProvider() {
+ public static function moveFailedProvider(): array {
return [
['a/b', 'a/c', ['a' => false, 'a/b' => false, 'a/c' => false], []],
['a/b', 'b/b', ['a' => false, 'a/b' => false, 'b' => false, 'b/b' => false], []],
@@ -423,7 +416,7 @@ class DirectoryTest extends \Test\TestCase {
];
}
- public function moveSuccessProvider() {
+ public static function moveSuccessProvider(): array {
return [
['a/b', 'b/b', ['a' => true, 'a/b' => true, 'b' => true, 'b/b' => false], ['a/b' => true]],
// older files with special chars can still be renamed to valid names
@@ -431,12 +424,7 @@ class DirectoryTest extends \Test\TestCase {
];
}
- /**
- * @param $source
- * @param $destination
- * @param $updatables
- */
- private function moveTest($source, $destination, $updatables, $deletables): void {
+ private function moveTest(string $source, string $destination, array $updatables, array $deletables): void {
$view = new TestViewDirectory($updatables, $deletables);
$sourceInfo = new FileInfo($source, null, null, [
@@ -448,7 +436,7 @@ class DirectoryTest extends \Test\TestCase {
$sourceNode = new Directory($view, $sourceInfo);
$targetNode = $this->getMockBuilder(Directory::class)
- ->setMethods(['childExists'])
+ ->onlyMethods(['childExists'])
->setConstructorArgs([$view, $targetInfo])
->getMock();
$targetNode->expects($this->any())->method('childExists')
diff --git a/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php b/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php
index 03c31dc47f8..2d688d64600 100644
--- a/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -19,8 +20,7 @@ use Test\TestCase;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class DummyGetResponsePluginTest extends TestCase {
- /** @var DummyGetResponsePlugin */
- private $dummyGetResponsePlugin;
+ private DummyGetResponsePlugin $dummyGetResponsePlugin;
protected function setUp(): void {
parent::setUp();
@@ -29,10 +29,7 @@ class DummyGetResponsePluginTest extends TestCase {
}
public function testInitialize(): void {
- /** @var Server $server */
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
$server
->expects($this->once())
->method('on')
@@ -44,13 +41,9 @@ class DummyGetResponsePluginTest extends TestCase {
public function testHttpGet(): void {
/** @var \Sabre\HTTP\RequestInterface $request */
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
/** @var \Sabre\HTTP\ResponseInterface $response */
- $response = $server = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $response = $this->createMock(ResponseInterface::class);
$response
->expects($this->once())
->method('setBody');
diff --git a/apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php b/apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php
index c7fb6066ed4..2f9e0ae9196 100644
--- a/apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/Exception/ForbiddenTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +9,7 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre\Exception;
use OCA\DAV\Connector\Sabre\Exception\Forbidden;
+use Sabre\DAV\Server;
class ForbiddenTest extends \Test\TestCase {
public function testSerialization(): void {
@@ -32,9 +34,7 @@ class ForbiddenTest extends \Test\TestCase {
EOD;
$ex = new Forbidden($message, $retry);
- $server = $this->getMockBuilder('Sabre\DAV\Server')
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
$ex->serialize($server, $error);
// assert
diff --git a/apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php b/apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php
index 98921d735fa..6f62bef86a3 100644
--- a/apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/Exception/InvalidPathTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +9,7 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre\Exception;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
+use Sabre\DAV\Server;
class InvalidPathTest extends \Test\TestCase {
public function testSerialization(): void {
@@ -32,9 +34,7 @@ class InvalidPathTest extends \Test\TestCase {
EOD;
$ex = new InvalidPath($message, $retry);
- $server = $this->getMockBuilder('Sabre\DAV\Server')
- ->disableOriginalConstructor()
- ->getMock();
+ $server = $this->createMock(Server::class);
$ex->serialize($server, $error);
// assert
diff --git a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
index 1d50fb2fb9a..a330a885b1f 100644
--- a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -11,21 +12,16 @@ use OC\SystemConfig;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
use OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin;
use OCA\DAV\Exception\ServerMaintenanceMode;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Server;
use Test\TestCase;
class ExceptionLoggerPluginTest extends TestCase {
-
- /** @var Server */
- private $server;
-
- /** @var ExceptionLoggerPlugin */
- private $plugin;
-
- /** @var LoggerInterface | \PHPUnit\Framework\MockObject\MockObject */
- private $logger;
+ private Server $server;
+ private ExceptionLoggerPlugin $plugin;
+ private LoggerInterface&MockObject $logger;
private function init(): void {
$config = $this->createMock(SystemConfig::class);
@@ -59,7 +55,7 @@ class ExceptionLoggerPluginTest extends TestCase {
$this->plugin->logException($e);
}
- public function providesExceptions() {
+ public static function providesExceptions(): array {
return [
['debug', new NotFound()],
['debug', new ServerMaintenanceMode('System is in maintenance mode.')],
diff --git a/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php
index 18165b79cb2..ef744d13e6a 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -22,8 +23,7 @@ use Test\TestCase;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class FakeLockerPluginTest extends TestCase {
- /** @var FakeLockerPlugin */
- private $fakeLockerPlugin;
+ private FakeLockerPlugin $fakeLockerPlugin;
protected function setUp(): void {
parent::setUp();
@@ -32,18 +32,19 @@ class FakeLockerPluginTest extends TestCase {
public function testInitialize(): void {
/** @var Server $server */
- $server = $this->getMockBuilder(Server::class)
- ->disableOriginalConstructor()
- ->getMock();
- $server
- ->expects($this->exactly(4))
+ $server = $this->createMock(Server::class);
+ $calls = [
+ ['method:LOCK', [$this->fakeLockerPlugin, 'fakeLockProvider'], 1],
+ ['method:UNLOCK', [$this->fakeLockerPlugin, 'fakeUnlockProvider'], 1],
+ ['propFind', [$this->fakeLockerPlugin, 'propFind'], 100],
+ ['validateTokens', [$this->fakeLockerPlugin, 'validateTokens'], 100],
+ ];
+ $server->expects($this->exactly(count($calls)))
->method('on')
- ->withConsecutive(
- ['method:LOCK', [$this->fakeLockerPlugin, 'fakeLockProvider'], 1],
- ['method:UNLOCK', [$this->fakeLockerPlugin, 'fakeUnlockProvider'], 1],
- ['propFind', [$this->fakeLockerPlugin, 'propFind']],
- ['validateTokens', [$this->fakeLockerPlugin, 'validateTokens']],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->fakeLockerPlugin->initialize($server);
}
@@ -64,24 +65,24 @@ class FakeLockerPluginTest extends TestCase {
}
public function testPropFind(): void {
- $propFind = $this->getMockBuilder(PropFind::class)
- ->disableOriginalConstructor()
- ->getMock();
- $node = $this->getMockBuilder(INode::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $propFind = $this->createMock(PropFind::class);
+ $node = $this->createMock(INode::class);
- $propFind->expects($this->exactly(2))
+ $calls = [
+ '{DAV:}supportedlock',
+ '{DAV:}lockdiscovery',
+ ];
+ $propFind->expects($this->exactly(count($calls)))
->method('handle')
- ->withConsecutive(
- ['{DAV:}supportedlock'],
- ['{DAV:}lockdiscovery'],
- );
+ ->willReturnCallback(function ($propertyName) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, $propertyName);
+ });
$this->fakeLockerPlugin->propFind($propFind, $node);
}
- public function tokenDataProvider() {
+ public static function tokenDataProvider(): array {
return [
[
[
@@ -120,21 +121,15 @@ class FakeLockerPluginTest extends TestCase {
/**
* @dataProvider tokenDataProvider
- * @param array $input
- * @param array $expected
*/
public function testValidateTokens(array $input, array $expected): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
$this->fakeLockerPlugin->validateTokens($request, $input);
$this->assertSame($expected, $input);
}
public function testFakeLockProvider(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
$response = new Response();
$server = $this->getMockBuilder(Server::class)
->getMock();
@@ -152,12 +147,8 @@ class FakeLockerPluginTest extends TestCase {
}
public function testFakeUnlockProvider(): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$response->expects($this->once())
->method('setStatus')
diff --git a/apps/dav/tests/unit/Connector/Sabre/FileTest.php b/apps/dav/tests/unit/Connector/Sabre/FileTest.php
index ef02f145375..4a7ddad7115 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FileTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FileTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -53,16 +54,9 @@ class FileTest extends TestCase {
use MountProviderTrait;
use UserTrait;
- /**
- * @var string
- */
- private $user;
-
- /** @var IConfig|MockObject */
- protected $config;
-
- /** @var IRequestId|MockObject */
- protected $requestId;
+ private string $user;
+ protected IConfig&MockObject $config;
+ protected IRequestId&MockObject $requestId;
protected function setUp(): void {
parent::setUp();
@@ -72,7 +66,7 @@ class FileTest extends TestCase {
$this->user = 'test_user';
$this->createUser($this->user, 'pass');
- $this->loginAsUser($this->user);
+ self::loginAsUser($this->user);
$this->config = $this->createMock(IConfig::class);
$this->requestId = $this->createMock(IRequestId::class);
@@ -86,9 +80,7 @@ class FileTest extends TestCase {
}
private function getMockStorage(): MockObject&IStorage {
- $storage = $this->getMockBuilder(IStorage::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $storage = $this->createMock(IStorage::class);
$storage->method('getId')
->willReturn('home::someuser');
return $storage;
@@ -102,7 +94,7 @@ class FileTest extends TestCase {
}
- public function fopenFailuresProvider() {
+ public static function fopenFailuresProvider(): array {
return [
[
// return false
@@ -161,14 +153,14 @@ class FileTest extends TestCase {
/**
* @dataProvider fopenFailuresProvider
*/
- public function testSimplePutFails($thrownException, $expectedException, $checkPreviousClass = true): void {
+ public function testSimplePutFails(?\Throwable $thrownException, string $expectedException, bool $checkPreviousClass = true): void {
// setup
$storage = $this->getMockBuilder(Local::class)
->onlyMethods(['writeStream'])
->setConstructorArgs([['datadir' => Server::get(ITempManager::class)->getTemporaryFolder()]])
->getMock();
Filesystem::mount($storage, [], $this->user . '/');
- /** @var View | MockObject $view */
+ /** @var View&MockObject $view */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['getRelativePath', 'resolvePath'])
->getMock();
@@ -221,12 +213,12 @@ class FileTest extends TestCase {
* Simulate putting a file to the given path.
*
* @param string $path path to put the file into
- * @param string $viewRoot root to use for the view
+ * @param ?string $viewRoot root to use for the view
* @param null|Request $request the HTTP request
*
* @return null|string of the PUT operation which is usually the etag
*/
- private function doPut($path, $viewRoot = null, ?Request $request = null) {
+ private function doPut(string $path, ?string $viewRoot = null, ?Request $request = null) {
$view = Filesystem::getView();
if (!is_null($viewRoot)) {
$view = new View($viewRoot);
@@ -245,7 +237,7 @@ class FileTest extends TestCase {
null
);
- /** @var File|MockObject $file */
+ /** @var File&MockObject $file */
$file = $this->getMockBuilder(File::class)
->setConstructorArgs([$view, $info, null, $request])
->onlyMethods(['header'])
@@ -269,55 +261,55 @@ class FileTest extends TestCase {
$this->assertNotEmpty($this->doPut('/foo.txt'));
}
- public function legalMtimeProvider() {
+ public static function legalMtimeProvider(): array {
return [
'string' => [
- 'HTTP_X_OC_MTIME' => 'string',
- 'expected result' => null
+ 'requestMtime' => 'string',
+ 'resultMtime' => null
],
'castable string (int)' => [
- 'HTTP_X_OC_MTIME' => '987654321',
- 'expected result' => 987654321
+ 'requestMtime' => '987654321',
+ 'resultMtime' => 987654321
],
'castable string (float)' => [
- 'HTTP_X_OC_MTIME' => '123456789.56',
- 'expected result' => 123456789
+ 'requestMtime' => '123456789.56',
+ 'resultMtime' => 123456789
],
'float' => [
- 'HTTP_X_OC_MTIME' => 123456789.56,
- 'expected result' => 123456789
+ 'requestMtime' => 123456789.56,
+ 'resultMtime' => 123456789
],
'zero' => [
- 'HTTP_X_OC_MTIME' => 0,
- 'expected result' => null
+ 'requestMtime' => 0,
+ 'resultMtime' => null
],
'zero string' => [
- 'HTTP_X_OC_MTIME' => '0',
- 'expected result' => null
+ 'requestMtime' => '0',
+ 'resultMtime' => null
],
'negative zero string' => [
- 'HTTP_X_OC_MTIME' => '-0',
- 'expected result' => null
+ 'requestMtime' => '-0',
+ 'resultMtime' => null
],
'string starting with number following by char' => [
- 'HTTP_X_OC_MTIME' => '2345asdf',
- 'expected result' => null
+ 'requestMtime' => '2345asdf',
+ 'resultMtime' => null
],
'string castable hex int' => [
- 'HTTP_X_OC_MTIME' => '0x45adf',
- 'expected result' => null
+ 'requestMtime' => '0x45adf',
+ 'resultMtime' => null
],
'string that looks like invalid hex int' => [
- 'HTTP_X_OC_MTIME' => '0x123g',
- 'expected result' => null
+ 'requestMtime' => '0x123g',
+ 'resultMtime' => null
],
'negative int' => [
- 'HTTP_X_OC_MTIME' => -34,
- 'expected result' => null
+ 'requestMtime' => -34,
+ 'resultMtime' => null
],
'negative float' => [
- 'HTTP_X_OC_MTIME' => -34.43,
- 'expected result' => null
+ 'requestMtime' => -34.43,
+ 'resultMtime' => null
],
];
}
@@ -326,7 +318,7 @@ class FileTest extends TestCase {
* Test putting a file with string Mtime
* @dataProvider legalMtimeProvider
*/
- public function testPutSingleFileLegalMtime($requestMtime, $resultMtime): void {
+ public function testPutSingleFileLegalMtime(mixed $requestMtime, ?int $resultMtime): void {
$request = new Request([
'server' => [
'HTTP_X_OC_MTIME' => (string)$requestMtime,
@@ -482,7 +474,7 @@ class FileTest extends TestCase {
*/
public function testSimplePutFailsSizeCheck(): void {
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['rename', 'getRelativePath', 'filesize'])
->getMock();
@@ -569,7 +561,7 @@ class FileTest extends TestCase {
*/
public function testSimplePutInvalidChars(): void {
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['getRelativePath'])
->getMock();
@@ -609,7 +601,7 @@ class FileTest extends TestCase {
$this->expectException(InvalidPath::class);
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['getRelativePath'])
->getMock();
@@ -630,7 +622,7 @@ class FileTest extends TestCase {
public function testUploadAbort(): void {
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['rename', 'getRelativePath', 'filesize'])
->getMock();
@@ -680,7 +672,7 @@ class FileTest extends TestCase {
public function testDeleteWhenAllowed(): void {
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -704,7 +696,7 @@ class FileTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -724,7 +716,7 @@ class FileTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -749,7 +741,7 @@ class FileTest extends TestCase {
$this->expectException(Forbidden::class);
// setup
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->getMock();
@@ -923,7 +915,7 @@ class FileTest extends TestCase {
public function testGetFopenFails(): void {
$this->expectException(\Sabre\DAV\Exception\ServiceUnavailable::class);
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['fopen'])
->getMock();
@@ -945,7 +937,7 @@ class FileTest extends TestCase {
public function testGetFopenThrows(): void {
$this->expectException(Forbidden::class);
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['fopen'])
->getMock();
@@ -967,7 +959,7 @@ class FileTest extends TestCase {
public function testGetThrowsIfNoPermission(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- /** @var View|MockObject */
+ /** @var View&MockObject */
$view = $this->getMockBuilder(View::class)
->onlyMethods(['fopen'])
->getMock();
diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php
index 1352229b1f5..d8b32067dda 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -73,23 +74,15 @@ class FilesPluginTest extends TestCase {
$this->accountManager,
);
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $response = $this->createMock(ResponseInterface::class);
$this->server->httpResponse = $response;
$this->server->xml = new Service();
$this->plugin->initialize($this->server);
}
- /**
- * @param string $class
- * @return \PHPUnit\Framework\MockObject\MockObject
- */
- private function createTestNode($class, $path = '/dummypath') {
- $node = $this->getMockBuilder($class)
- ->disableOriginalConstructor()
- ->getMock();
+ private function createTestNode(string $class, string $path = '/dummypath'): MockObject {
+ $node = $this->createMock($class);
$node->expects($this->any())
->method('getId')
@@ -129,8 +122,8 @@ class FilesPluginTest extends TestCase {
}
public function testGetPropertiesForFile(): void {
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ /** @var File&MockObject $node */
+ $node = $this->createTestNode(File::class);
$propFind = new PropFind(
'/dummyPath',
@@ -149,8 +142,7 @@ class FilesPluginTest extends TestCase {
0
);
- $user = $this->getMockBuilder(User::class)
- ->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(User::class);
$user
->expects($this->once())
->method('getUID')
@@ -160,8 +152,7 @@ class FilesPluginTest extends TestCase {
->method('getDisplayName')
->willReturn('M. Foo');
- $owner = $this->getMockBuilder(Account::class)
- ->disableOriginalConstructor()->getMock();
+ $owner = $this->createMock(Account::class);
$this->accountManager->expects($this->once())
->method('getAccount')
->with($user)
@@ -174,8 +165,7 @@ class FilesPluginTest extends TestCase {
->method('getOwner')
->willReturn($user);
- $displayNameProp = $this->getMockBuilder(AccountProperty::class)
- ->disableOriginalConstructor()->getMock();
+ $displayNameProp = $this->createMock(AccountProperty::class);
$owner
->expects($this->once())
->method('getProperty')
@@ -205,9 +195,7 @@ class FilesPluginTest extends TestCase {
}
public function testGetDisplayNamePropertyWhenNotPublished(): void {
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
-
+ $node = $this->createTestNode(File::class);
$propFind = new PropFind(
'/dummyPath',
[
@@ -220,15 +208,12 @@ class FilesPluginTest extends TestCase {
->method('getUser')
->willReturn(null);
- $user = $this->getMockBuilder(User::class)
- ->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(User::class);
- $user
- ->expects($this->never())
+ $user->expects($this->never())
->method('getDisplayName');
- $owner = $this->getMockBuilder(Account::class)
- ->disableOriginalConstructor()->getMock();
+ $owner = $this->createMock(Account::class);
$this->accountManager->expects($this->once())
->method('getAccount')
->with($user)
@@ -238,8 +223,7 @@ class FilesPluginTest extends TestCase {
->method('getOwner')
->willReturn($user);
- $displayNameProp = $this->getMockBuilder(AccountProperty::class)
- ->disableOriginalConstructor()->getMock();
+ $displayNameProp = $this->createMock(AccountProperty::class);
$owner
->expects($this->once())
->method('getProperty')
@@ -257,10 +241,9 @@ class FilesPluginTest extends TestCase {
$this->assertEquals(null, $propFind->get(FilesPlugin::OWNER_DISPLAY_NAME_PROPERTYNAME));
}
-
+
public function testGetDisplayNamePropertyWhenNotPublishedButLoggedIn(): void {
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ $node = $this->createTestNode(File::class);
$propFind = new PropFind(
'/dummyPath',
@@ -270,15 +253,13 @@ class FilesPluginTest extends TestCase {
0
);
- $user = $this->getMockBuilder(User::class)
- ->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(User::class);
$node->expects($this->once())
->method('getOwner')
->willReturn($user);
- $loggedInUser = $this->getMockBuilder(User::class)
- ->disableOriginalConstructor()->getMock();
+ $loggedInUser = $this->createMock(User::class);
$this->userSession->expects($this->once())
->method('getUser')
->willReturn($loggedInUser);
@@ -300,8 +281,8 @@ class FilesPluginTest extends TestCase {
}
public function testGetPropertiesStorageNotAvailable(): void {
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ /** @var File&MockObject $node */
+ $node = $this->createTestNode(File::class);
$propFind = new PropFind(
'/dummyPath',
@@ -325,9 +306,7 @@ class FilesPluginTest extends TestCase {
public function testGetPublicPermissions(): void {
/** @var IRequest&MockObject */
- $request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(IRequest::class);
$this->plugin = new FilesPlugin(
$this->tree,
$this->config,
@@ -348,8 +327,8 @@ class FilesPluginTest extends TestCase {
0
);
- /** @var File|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ /** @var File&MockObject $node */
+ $node = $this->createTestNode(File::class);
$node->expects($this->any())
->method('getDavPermissions')
->willReturn('DWCKMSR');
@@ -363,8 +342,8 @@ class FilesPluginTest extends TestCase {
}
public function testGetPropertiesForDirectory(): void {
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\Directory');
+ /** @var Directory&MockObject $node */
+ $node = $this->createTestNode(Directory::class);
$propFind = new PropFind(
'/dummyPath',
@@ -398,10 +377,8 @@ class FilesPluginTest extends TestCase {
}
public function testGetPropertiesForRootDirectory(): void {
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var Directory&MockObject $node */
+ $node = $this->createMock(Directory::class);
$node->expects($this->any())->method('getPath')->willReturn('/');
$fileInfo = $this->createMock(FileInfo::class);
@@ -433,10 +410,8 @@ class FilesPluginTest extends TestCase {
// No read permissions can be caused by files access control.
// But we still want to load the directory list, so this is okay for us.
// $this->expectException(\Sabre\DAV\Exception\NotFound::class);
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var Directory&MockObject $node */
+ $node = $this->createMock(Directory::class);
$node->expects($this->any())->method('getPath')->willReturn('/');
$fileInfo = $this->createMock(FileInfo::class);
@@ -465,7 +440,7 @@ class FilesPluginTest extends TestCase {
}
public function testUpdateProps(): void {
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File');
+ $node = $this->createTestNode(File::class);
$testDate = 'Fri, 13 Feb 2015 00:01:02 GMT';
$testCreationDate = '2007-08-31T16:47+00:00';
@@ -549,16 +524,12 @@ class FilesPluginTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->expectExceptionMessage('FolderA/test.txt cannot be deleted');
- $fileInfoFolderATestTXT = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $fileInfoFolderATestTXT = $this->createMock(FileInfo::class);
$fileInfoFolderATestTXT->expects($this->once())
->method('isDeletable')
->willReturn(false);
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->atLeastOnce())
->method('getFileInfo')
->willReturn($fileInfoFolderATestTXT);
@@ -571,16 +542,12 @@ class FilesPluginTest extends TestCase {
}
public function testMoveSrcDeletable(): void {
- $fileInfoFolderATestTXT = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $fileInfoFolderATestTXT = $this->createMock(FileInfo::class);
$fileInfoFolderATestTXT->expects($this->once())
->method('isDeletable')
->willReturn(true);
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->atLeastOnce())
->method('getFileInfo')
->willReturn($fileInfoFolderATestTXT);
@@ -596,9 +563,7 @@ class FilesPluginTest extends TestCase {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
$this->expectExceptionMessage('FolderA/test.txt does not exist');
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->atLeastOnce())
->method('getFileInfo')
->willReturn(null);
@@ -674,7 +639,7 @@ class FilesPluginTest extends TestCase {
$this->plugin->checkCopy('FolderA/test.txt', 'invalid\\path.txt');
}
- public function downloadHeadersProvider() {
+ public static function downloadHeadersProvider(): array {
return [
[
false,
@@ -690,22 +655,16 @@ class FilesPluginTest extends TestCase {
/**
* @dataProvider downloadHeadersProvider
*/
- public function testDownloadHeaders($isClumsyAgent, $contentDispositionHeader): void {
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testDownloadHeaders(bool $isClumsyAgent, string $contentDispositionHeader): void {
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request
->expects($this->once())
->method('getPath')
->willReturn('test/somefile.xml');
- $node = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(File::class);
$node
->expects($this->once())
->method('getName')
@@ -722,20 +681,24 @@ class FilesPluginTest extends TestCase {
->method('isUserAgent')
->willReturn($isClumsyAgent);
+ $calls = [
+ ['Content-Disposition', $contentDispositionHeader],
+ ['X-Accel-Buffering', 'no'],
+ ];
$response
- ->expects($this->exactly(2))
+ ->expects($this->exactly(count($calls)))
->method('addHeader')
- ->withConsecutive(
- ['Content-Disposition', $contentDispositionHeader],
- ['X-Accel-Buffering', 'no']
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected, func_get_args());
+ });
$this->plugin->httpGet($request, $response);
}
public function testHasPreview(): void {
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject $node */
- $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\Directory');
+ /** @var Directory&MockObject $node */
+ $node = $this->createTestNode(Directory::class);
$propFind = new PropFind(
'/dummyPath',
diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
index 6a9372ca3fd..e6cfb1f67b2 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -31,6 +32,7 @@ use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagNotFoundException;
use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\INode;
+use Sabre\DAV\Server;
use Sabre\DAV\Tree;
use Sabre\HTTP\ResponseInterface;
@@ -52,15 +54,11 @@ class FilesReportPluginTest extends \Test\TestCase {
protected function setUp(): void {
parent::setUp();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
+ $this->view = $this->createMock(View::class);
- $this->server = $this->getMockBuilder('\Sabre\DAV\Server')
+ $this->server = $this->getMockBuilder(Server::class)
->setConstructorArgs([$this->tree])
->onlyMethods(['getRequestUri', 'getBaseUri'])
->getMock();
@@ -69,22 +67,10 @@ class FilesReportPluginTest extends \Test\TestCase {
->method('getBaseUri')
->willReturn('http://example.com/owncloud/remote.php/dav');
- $this->groupManager = $this->getMockBuilder(IGroupManager::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->userFolder = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->previewManager = $this->getMockBuilder(IPreview::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->appManager = $this->getMockBuilder(IAppManager::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $this->groupManager = $this->createMock(IGroupManager::class);
+ $this->userFolder = $this->createMock(Folder::class);
+ $this->previewManager = $this->createMock(IPreview::class);
+ $this->appManager = $this->createMock(IAppManager::class);
$this->tagManager = $this->createMock(ISystemTagManager::class);
$this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
$this->userSession = $this->createMock(IUserSession::class);
@@ -95,9 +81,7 @@ class FilesReportPluginTest extends \Test\TestCase {
->with('files')
->willReturn($this->privateTags);
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('testuser');
@@ -124,11 +108,7 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->tree->expects($this->any())
->method('getNodeForPath')
->with('/' . $path)
- ->willReturn(
- $this->getMockBuilder(INode::class)
- ->disableOriginalConstructor()
- ->getMock()
- );
+ ->willReturn($this->createMock(INode::class));
$this->server->expects($this->any())
->method('getRequestUri')
@@ -182,16 +162,12 @@ class FilesReportPluginTest extends \Test\TestCase {
->method('isAdmin')
->willReturn(true);
- $reportTargetNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $reportTargetNode = $this->createMock(Directory::class);
$reportTargetNode->expects($this->any())
->method('getPath')
->willReturn('');
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $response = $this->createMock(ResponseInterface::class);
$response->expects($this->once())
->method('setHeader')
@@ -240,14 +216,10 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(
- ['OneTwoThree'],
- ['FourFiveSix'],
- )
- ->willReturnOnConsecutiveCalls(
- [$filesNode1],
- [$filesNode2],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode2]],
+ ]);
$this->server->expects($this->any())
->method('getRequestUri')
@@ -259,74 +231,56 @@ class FilesReportPluginTest extends \Test\TestCase {
}
public function testFindNodesByFileIdsRoot(): void {
- $filesNode1 = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $filesNode1 = $this->createMock(Folder::class);
$filesNode1->expects($this->once())
->method('getName')
->willReturn('first node');
- $filesNode2 = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $filesNode2 = $this->createMock(File::class);
$filesNode2->expects($this->once())
->method('getName')
->willReturn('second node');
- $reportTargetNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $reportTargetNode = $this->createMock(Directory::class);
$reportTargetNode->expects($this->any())
->method('getPath')
->willReturn('/');
$this->userFolder->expects($this->exactly(2))
->method('getFirstNodeById')
- ->withConsecutive(
- ['111'],
- ['222'],
- )
- ->willReturnOnConsecutiveCalls(
- $filesNode1,
- $filesNode2,
- );
+ ->willReturnMap([
+ [111, $filesNode1],
+ [222, $filesNode2],
+ ]);
/** @var Directory&MockObject $reportTargetNode */
$result = $this->plugin->findNodesByFileIds($reportTargetNode, ['111', '222']);
$this->assertCount(2, $result);
- $this->assertInstanceOf('\OCA\DAV\Connector\Sabre\Directory', $result[0]);
+ $this->assertInstanceOf(Directory::class, $result[0]);
$this->assertEquals('first node', $result[0]->getName());
- $this->assertInstanceOf('\OCA\DAV\Connector\Sabre\File', $result[1]);
+ $this->assertInstanceOf(\OCA\DAV\Connector\Sabre\File::class, $result[1]);
$this->assertEquals('second node', $result[1]->getName());
}
public function testFindNodesByFileIdsSubDir(): void {
- $filesNode1 = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $filesNode1 = $this->createMock(Folder::class);
$filesNode1->expects($this->once())
->method('getName')
->willReturn('first node');
- $filesNode2 = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $filesNode2 = $this->createMock(File::class);
$filesNode2->expects($this->once())
->method('getName')
->willReturn('second node');
- $reportTargetNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $reportTargetNode = $this->createMock(Directory::class);
$reportTargetNode->expects($this->any())
->method('getPath')
->willReturn('/sub1/sub2');
- $subNode = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $subNode = $this->createMock(Folder::class);
$this->userFolder->expects($this->once())
->method('get')
@@ -335,22 +289,18 @@ class FilesReportPluginTest extends \Test\TestCase {
$subNode->expects($this->exactly(2))
->method('getFirstNodeById')
- ->withConsecutive(
- ['111'],
- ['222'],
- )
- ->willReturnOnConsecutiveCalls(
- $filesNode1,
- $filesNode2,
- );
+ ->willReturnMap([
+ [111, $filesNode1],
+ [222, $filesNode2],
+ ]);
/** @var Directory&MockObject $reportTargetNode */
$result = $this->plugin->findNodesByFileIds($reportTargetNode, ['111', '222']);
$this->assertCount(2, $result);
- $this->assertInstanceOf('\OCA\DAV\Connector\Sabre\Directory', $result[0]);
+ $this->assertInstanceOf(Directory::class, $result[0]);
$this->assertEquals('first node', $result[0]->getName());
- $this->assertInstanceOf('\OCA\DAV\Connector\Sabre\File', $result[1]);
+ $this->assertInstanceOf(\OCA\DAV\Connector\Sabre\File::class, $result[1]);
$this->assertEquals('second node', $result[1]->getName());
}
@@ -360,12 +310,8 @@ class FilesReportPluginTest extends \Test\TestCase {
$fileInfo = $this->createMock(FileInfo::class);
$fileInfo->method('isReadable')->willReturn(true);
- $node1 = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
- $node2 = $this->getMockBuilder(\OCA\DAV\Connector\Sabre\File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node1 = $this->createMock(Directory::class);
+ $node2 = $this->createMock(\OCA\DAV\Connector\Sabre\File::class);
$node1->expects($this->once())
->method('getInternalFileId')
@@ -385,10 +331,7 @@ class FilesReportPluginTest extends \Test\TestCase {
->willReturn('/sub/node2');
$node2->method('getFileInfo')->willReturn($fileInfo);
- $config = $this->getMockBuilder(IConfig::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $config = $this->createMock(IConfig::class);
$validator = $this->createMock(IFilenameValidator::class);
$accountManager = $this->createMock(IAccountManager::class);
@@ -461,7 +404,7 @@ class FilesReportPluginTest extends \Test\TestCase {
->with('OneTwoThree')
->willReturn([$filesNode1, $filesNode2]);
- $this->assertEquals([$filesNode1, $filesNode2], $this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, 0, 0]));
+ $this->assertEquals([$filesNode1, $filesNode2], self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, 0, 0]));
}
public function testProcessFilterRulesAndCondition(): void {
@@ -513,21 +456,17 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(
- ['OneTwoThree'],
- ['FourFiveSix'],
- )
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [$filesNode2, $filesNode3],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode2, $filesNode3]],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([$filesNode2], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
+ $this->assertEquals([$filesNode2], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
}
public function testProcessFilterRulesAndConditionWithOneEmptyResult(): void {
@@ -572,21 +511,17 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(
- ['OneTwoThree'],
- ['FourFiveSix'],
- )
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, []],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([], $this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]));
+ $this->assertEquals([], self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]));
}
public function testProcessFilterRulesAndConditionWithFirstEmptyResult(): void {
@@ -631,18 +566,16 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->once())
->method('searchBySystemTag')
- ->with('OneTwoThree')
- ->willReturnOnConsecutiveCalls(
- [],
- [$filesNode1, $filesNode2],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, []],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([], $this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]));
+ $this->assertEquals([], self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]));
}
public function testProcessFilterRulesAndConditionWithEmptyMidResult(): void {
@@ -689,7 +622,7 @@ class FilesReportPluginTest extends \Test\TestCase {
$tag789 = $this->createMock(ISystemTag::class);
$tag789->expects($this->any())
->method('getName')
- ->willReturn('SevenEightNein');
+ ->willReturn('SevenEightNine');
$tag789->expects($this->any())
->method('isUserVisible')
->willReturn(true);
@@ -701,12 +634,10 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(['OneTwoThree'], ['FourFiveSix'], ['SevenEightNein'])
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [$filesNode3],
- [$filesNode1, $filesNode2],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode3]],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
@@ -714,7 +645,7 @@ class FilesReportPluginTest extends \Test\TestCase {
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '789'],
];
- $this->assertEquals([], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
+ $this->assertEquals([], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
}
public function testProcessFilterRulesInvisibleTagAsAdmin(): void {
@@ -766,18 +697,17 @@ class FilesReportPluginTest extends \Test\TestCase {
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(['OneTwoThree'], ['FourFiveSix'])
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [$filesNode2, $filesNode3],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode2, $filesNode3]],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([$filesNode2], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
+ $this->assertEquals([$filesNode2], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
}
@@ -816,7 +746,7 @@ class FilesReportPluginTest extends \Test\TestCase {
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]);
+ self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]);
}
public function testProcessFilterRulesVisibleTagAsUser(): void {
@@ -881,18 +811,17 @@ class FilesReportPluginTest extends \Test\TestCase {
// main assertion: only user visible tags are being passed through.
$this->userFolder->expects($this->exactly(2))
->method('searchBySystemTag')
- ->withConsecutive(['OneTwoThree'], ['FourFiveSix'])
- ->willReturnOnConsecutiveCalls(
- [$filesNode1, $filesNode2],
- [$filesNode2, $filesNode3],
- );
+ ->willReturnMap([
+ ['OneTwoThree', 'testuser', 0, 0, [$filesNode1, $filesNode2]],
+ ['FourFiveSix', 'testuser', 0, 0, [$filesNode2, $filesNode3]],
+ ]);
$rules = [
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
];
- $this->assertEquals([$filesNode2], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
+ $this->assertEquals([$filesNode2], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
}
public function testProcessFavoriteFilter(): void {
@@ -904,10 +833,10 @@ class FilesReportPluginTest extends \Test\TestCase {
->method('getFavorites')
->willReturn(['456', '789']);
- $this->assertEquals(['456', '789'], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileIDs', [$rules])));
+ $this->assertEquals(['456', '789'], array_values(self::invokePrivate($this->plugin, 'processFilterRulesForFileIDs', [$rules])));
}
- public function filesBaseUriProvider() {
+ public static function filesBaseUriProvider(): array {
return [
['', '', ''],
['files/username', '', '/files/username'],
@@ -920,7 +849,7 @@ class FilesReportPluginTest extends \Test\TestCase {
/**
* @dataProvider filesBaseUriProvider
*/
- public function testFilesBaseUri($uri, $reportPath, $expectedUri): void {
- $this->assertEquals($expectedUri, $this->invokePrivate($this->plugin, 'getFilesBaseUri', [$uri, $reportPath]));
+ public function testFilesBaseUri(string $uri, string $reportPath, string $expectedUri): void {
+ $this->assertEquals($expectedUri, self::invokePrivate($this->plugin, 'getFilesBaseUri', [$uri, $reportPath]));
}
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php b/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php
index 9ecc49222e9..bc1d50ac41f 100644
--- a/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,6 +11,7 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OCA\DAV\Connector\Sabre\MaintenancePlugin;
use OCP\IConfig;
use OCP\IL10N;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
/**
@@ -18,18 +20,15 @@ use Test\TestCase;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class MaintenancePluginTest extends TestCase {
- /** @var IConfig */
- private $config;
- /** @var \PHPUnit\Framework\MockObject\Builder\InvocationMocker|\PHPUnit_Framework_MockObject_Builder_InvocationMocker|IL10N */
- private $l10n;
- /** @var MaintenancePlugin */
- private $maintenancePlugin;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private MaintenancePlugin $maintenancePlugin;
protected function setUp(): void {
parent::setUp();
- $this->config = $this->getMockBuilder(IConfig::class)->getMock();
- $this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
+ $this->config = $this->createMock(IConfig::class);
+ $this->l10n = $this->createMock(IL10N::class);
$this->maintenancePlugin = new MaintenancePlugin($this->config, $this->l10n);
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php
index 04cd60fbdaa..3dea5cf281b 100644
--- a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -32,7 +33,7 @@ use PHPUnit\Framework\MockObject\MockObject;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class NodeTest extends \Test\TestCase {
- public function davPermissionsProvider() {
+ public static function davPermissionsProvider(): array {
return [
[Constants::PERMISSION_ALL, 'file', false, Constants::PERMISSION_ALL, false, 'test', 'RGDNVW'],
[Constants::PERMISSION_ALL, 'dir', false, Constants::PERMISSION_ALL, false, 'test', 'RGDNVCK'],
@@ -53,7 +54,7 @@ class NodeTest extends \Test\TestCase {
/**
* @dataProvider davPermissionsProvider
*/
- public function testDavPermissions($permissions, $type, $shared, $shareRootPermissions, $mounted, $internalPath, $expected): void {
+ public function testDavPermissions(int $permissions, string $type, bool $shared, int $shareRootPermissions, bool $mounted, string $internalPath, string $expected): void {
$info = $this->getMockBuilder(FileInfo::class)
->disableOriginalConstructor()
->onlyMethods(['getPermissions', 'isShared', 'isMounted', 'getType', 'getInternalPath', 'getStorage', 'getMountPoint'])
@@ -94,15 +95,13 @@ class NodeTest extends \Test\TestCase {
}
$info->method('getStorage')
->willReturn($storage);
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
$node = new File($view, $info);
$this->assertEquals($expected, $node->getDavPermissions());
}
- public function sharePermissionsProvider() {
+ public static function sharePermissionsProvider(): array {
return [
[\OCP\Files\FileInfo::TYPE_FILE, null, 1, 1],
[\OCP\Files\FileInfo::TYPE_FILE, null, 3, 3],
@@ -145,18 +144,14 @@ class NodeTest extends \Test\TestCase {
/**
* @dataProvider sharePermissionsProvider
*/
- public function testSharePermissions($type, $user, $permissions, $expected): void {
- $storage = $this->getMockBuilder(IStorage::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testSharePermissions(string $type, ?string $user, int $permissions, int $expected): void {
+ $storage = $this->createMock(IStorage::class);
$storage->method('getPermissions')->willReturn($permissions);
- $mountpoint = $this->getMockBuilder(IMountPoint::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $mountpoint = $this->createMock(IMountPoint::class);
$mountpoint->method('getMountPoint')->willReturn('myPath');
- $shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
- $share = $this->getMockBuilder(IShare::class)->disableOriginalConstructor()->getMock();
+ $shareManager = $this->createMock(IManager::class);
+ $share = $this->createMock(IShare::class);
if ($user === null) {
$shareManager->expects($this->never())->method('getShareByToken');
@@ -169,7 +164,7 @@ class NodeTest extends \Test\TestCase {
$info = $this->getMockBuilder(FileInfo::class)
->disableOriginalConstructor()
- ->setMethods(['getStorage', 'getType', 'getMountPoint', 'getPermissions'])
+ ->onlyMethods(['getStorage', 'getType', 'getMountPoint', 'getPermissions'])
->getMock();
$info->method('getStorage')->willReturn($storage);
@@ -177,9 +172,7 @@ class NodeTest extends \Test\TestCase {
$info->method('getMountPoint')->willReturn($mountpoint);
$info->method('getPermissions')->willReturn($permissions);
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
$node = new File($view, $info);
$this->invokePrivate($node, 'shareManager', [$shareManager]);
@@ -189,11 +182,11 @@ class NodeTest extends \Test\TestCase {
public function testShareAttributes(): void {
$storage = $this->getMockBuilder(SharedStorage::class)
->disableOriginalConstructor()
- ->setMethods(['getShare'])
+ ->onlyMethods(['getShare'])
->getMock();
- $shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
- $share = $this->getMockBuilder(IShare::class)->disableOriginalConstructor()->getMock();
+ $shareManager = $this->createMock(IManager::class);
+ $share = $this->createMock(IShare::class);
$storage->expects($this->once())
->method('getShare')
@@ -214,9 +207,7 @@ class NodeTest extends \Test\TestCase {
$info->method('getType')->willReturn(FileInfo::TYPE_FOLDER);
/** @var View&MockObject $view */
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
$node = new File($view, $info);
$this->invokePrivate($node, 'shareManager', [$shareManager]);
@@ -224,11 +215,8 @@ class NodeTest extends \Test\TestCase {
}
public function testShareAttributesNonShare(): void {
- $storage = $this->getMockBuilder(IStorage::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
+ $storage = $this->createMock(IStorage::class);
+ $shareManager = $this->createMock(IManager::class);
/** @var Folder&MockObject */
$info = $this->getMockBuilder(Folder::class)
@@ -240,16 +228,14 @@ class NodeTest extends \Test\TestCase {
$info->method('getType')->willReturn(FileInfo::TYPE_FOLDER);
/** @var View&MockObject */
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
$node = new File($view, $info);
$this->invokePrivate($node, 'shareManager', [$shareManager]);
$this->assertEquals([], $node->getShareAttributes());
}
- public function sanitizeMtimeProvider() {
+ public static function sanitizeMtimeProvider(): array {
return [
[123456789, 123456789],
['987654321', 987654321],
@@ -259,7 +245,7 @@ class NodeTest extends \Test\TestCase {
/**
* @dataProvider sanitizeMtimeProvider
*/
- public function testSanitizeMtime($mtime, $expected): void {
+ public function testSanitizeMtime(string|int $mtime, int $expected): void {
$view = $this->getMockBuilder(View::class)
->disableOriginalConstructor()
->getMock();
@@ -272,7 +258,7 @@ class NodeTest extends \Test\TestCase {
$this->assertEquals($expected, $result);
}
- public function invalidSanitizeMtimeProvider() {
+ public static function invalidSanitizeMtimeProvider(): array {
return [
[-1337], [0], ['abcdef'], ['-1337'], ['0'], [12321], [24 * 60 * 60 - 1],
];
@@ -281,17 +267,13 @@ class NodeTest extends \Test\TestCase {
/**
* @dataProvider invalidSanitizeMtimeProvider
*/
- public function testInvalidSanitizeMtime($mtime): void {
+ public function testInvalidSanitizeMtime(int|string $mtime): void {
$this->expectException(\InvalidArgumentException::class);
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
- $info = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $view = $this->createMock(View::class);
+ $info = $this->createMock(FileInfo::class);
$node = new File($view, $info);
- $result = $this->invokePrivate($node, 'sanitizeMtime', [$mtime]);
+ self::invokePrivate($node, 'sanitizeMtime', [$mtime]);
}
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php
index 393f3c72c20..4a5937e365b 100644
--- a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -27,7 +28,7 @@ use OCP\Files\Mount\IMountManager;
* @package OCA\DAV\Tests\Unit\Connector\Sabre
*/
class ObjectTreeTest extends \Test\TestCase {
- public function copyDataProvider() {
+ public static function copyDataProvider(): array {
return [
// copy into same dir
['a', 'b', ''],
@@ -41,7 +42,7 @@ class ObjectTreeTest extends \Test\TestCase {
/**
* @dataProvider copyDataProvider
*/
- public function testCopy($sourcePath, $targetPath, $targetParent): void {
+ public function testCopy(string $sourcePath, string $targetPath, string $targetParent): void {
$view = $this->createMock(View::class);
$view->expects($this->once())
->method('verifyPath')
@@ -67,7 +68,7 @@ class ObjectTreeTest extends \Test\TestCase {
$rootDir = new Directory($view, $info);
$objectTree = $this->getMockBuilder(ObjectTree::class)
- ->setMethods(['nodeExists', 'getNodeForPath'])
+ ->onlyMethods(['nodeExists', 'getNodeForPath'])
->setConstructorArgs([$rootDir, $view])
->getMock();
@@ -110,7 +111,7 @@ class ObjectTreeTest extends \Test\TestCase {
$rootDir = new Directory($view, $info);
$objectTree = $this->getMockBuilder(ObjectTree::class)
- ->setMethods(['nodeExists', 'getNodeForPath'])
+ ->onlyMethods(['nodeExists', 'getNodeForPath'])
->setConstructorArgs([$rootDir, $view])
->getMock();
@@ -127,23 +128,15 @@ class ObjectTreeTest extends \Test\TestCase {
* @dataProvider nodeForPathProvider
*/
public function testGetNodeForPath(
- $inputFileName,
- $fileInfoQueryPath,
- $outputFileName,
- $type,
+ string $inputFileName,
+ string $fileInfoQueryPath,
+ string $outputFileName,
+ string $type,
): void {
- $rootNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
- $mountManager = $this->getMockBuilder(Manager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $view = $this->getMockBuilder(View::class)
- ->disableOriginalConstructor()
- ->getMock();
- $fileInfo = $this->getMockBuilder(FileInfo::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $rootNode = $this->createMock(Directory::class);
+ $mountManager = $this->createMock(Manager::class);
+ $view = $this->createMock(View::class);
+ $fileInfo = $this->createMock(FileInfo::class);
$fileInfo->method('getType')
->willReturn($type);
$fileInfo->method('getName')
@@ -164,13 +157,13 @@ class ObjectTreeTest extends \Test\TestCase {
$this->assertEquals($outputFileName, $node->getName());
if ($type === 'file') {
- $this->assertTrue($node instanceof File);
+ $this->assertInstanceOf(File::class, $node);
} else {
- $this->assertTrue($node instanceof Directory);
+ $this->assertInstanceOf(Directory::class, $node);
}
}
- public function nodeForPathProvider() {
+ public static function nodeForPathProvider(): array {
return [
// regular file
[
@@ -213,7 +206,7 @@ class ObjectTreeTest extends \Test\TestCase {
$storage = new Temporary([]);
$view = $this->getMockBuilder(View::class)
- ->setMethods(['resolvePath'])
+ ->onlyMethods(['resolvePath'])
->getMock();
$view->expects($this->once())
->method('resolvePath')
@@ -221,9 +214,7 @@ class ObjectTreeTest extends \Test\TestCase {
return [$storage, ltrim($path, '/')];
});
- $rootNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $rootNode = $this->createMock(Directory::class);
$mountManager = $this->createMock(IMountManager::class);
$tree = new ObjectTree();
@@ -239,7 +230,7 @@ class ObjectTreeTest extends \Test\TestCase {
$storage = new Temporary([]);
$view = $this->getMockBuilder(View::class)
- ->setMethods(['resolvePath'])
+ ->onlyMethods(['resolvePath'])
->getMock();
$view->expects($this->any())
->method('resolvePath')
@@ -247,9 +238,7 @@ class ObjectTreeTest extends \Test\TestCase {
return [$storage, ltrim($path, '/')];
});
- $rootNode = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $rootNode = $this->createMock(Directory::class);
$mountManager = $this->createMock(IMountManager::class);
$tree = new ObjectTree();
diff --git a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php
index 30e2c995d18..087bbd66107 100644
--- a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -30,38 +32,21 @@ use Sabre\DAV\PropPatch;
use Test\TestCase;
class PrincipalTest extends TestCase {
- /** @var IUserManager | MockObject */
- private $userManager;
-
- /** @var Principal */
- private $connector;
-
- /** @var IGroupManager | MockObject */
- private $groupManager;
-
- /** @var IAccountManager|MockObject */
- private $accountManager;
-
- /** @var IManager | MockObject */
- private $shareManager;
-
- /** @var IUserSession | MockObject */
- private $userSession;
-
- /** @var IAppManager | MockObject */
- private $appManager;
-
- /** @var ProxyMapper | MockObject */
- private $proxyMapper;
-
- /** @var KnownUserService|MockObject */
- private $knownUserService;
- /** @var IConfig | MockObject */
- private $config;
- /** @var IFactory|MockObject */
- private $languageFactory;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private IAccountManager&MockObject $accountManager;
+ private IManager&MockObject $shareManager;
+ private IUserSession&MockObject $userSession;
+ private IAppManager&MockObject $appManager;
+ private ProxyMapper&MockObject $proxyMapper;
+ private KnownUserService&MockObject $knownUserService;
+ private IConfig&MockObject $config;
+ private IFactory&MockObject $languageFactory;
+ private Principal $connector;
protected function setUp(): void {
+ parent::setUp();
+
$this->userManager = $this->createMock(IUserManager::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->accountManager = $this->createMock(IAccountManager::class);
@@ -85,7 +70,6 @@ class PrincipalTest extends TestCase {
$this->config,
$this->languageFactory
);
- parent::setUp();
}
public function testGetPrincipalsByPrefixWithoutPrefix(): void {
@@ -125,13 +109,14 @@ class PrincipalTest extends TestCase {
$this->languageFactory
->expects($this->exactly(2))
->method('getUserLanguage')
- ->withConsecutive([$fooUser], [$barUser])
- ->willReturnOnConsecutiveCalls('de', 'en');
+ ->willReturnMap([
+ [$fooUser, 'de'],
+ [$barUser, 'en'],
+ ]);
$fooAccountPropertyCollection = $this->createMock(IAccountPropertyCollection::class);
$fooAccountPropertyCollection->expects($this->once())
->method('getProperties')
- ->with()
->willReturn([]);
$fooAccount = $this->createMock(IAccount::class);
$fooAccount->expects($this->once())
@@ -142,18 +127,15 @@ class PrincipalTest extends TestCase {
$emailPropertyOne = $this->createMock(IAccountProperty::class);
$emailPropertyOne->expects($this->once())
->method('getValue')
- ->with()
->willReturn('alias@nextcloud.com');
$emailPropertyTwo = $this->createMock(IAccountProperty::class);
$emailPropertyTwo->expects($this->once())
->method('getValue')
- ->with()
->willReturn('alias2@nextcloud.com');
$barAccountPropertyCollection = $this->createMock(IAccountPropertyCollection::class);
$barAccountPropertyCollection->expects($this->once())
->method('getProperties')
- ->with()
->willReturn([$emailPropertyOne, $emailPropertyTwo]);
$barAccount = $this->createMock(IAccount::class);
$barAccount->expects($this->once())
@@ -164,8 +146,10 @@ class PrincipalTest extends TestCase {
$this->accountManager
->expects($this->exactly(2))
->method('getAccount')
- ->withConsecutive([$fooUser], [$barUser])
- ->willReturnOnConsecutiveCalls($fooAccount, $barAccount);
+ ->willReturnMap([
+ [$fooUser, $fooAccount],
+ [$barUser, $barAccount],
+ ]);
$expectedResponse = [
0 => [
@@ -482,7 +466,7 @@ class PrincipalTest extends TestCase {
/**
* @dataProvider searchPrincipalsDataProvider
*/
- public function testSearchPrincipals($sharingEnabled, $groupsOnly, $test, $result): void {
+ public function testSearchPrincipals(bool $sharingEnabled, bool $groupsOnly, string $test, array $result): void {
$this->shareManager->expects($this->once())
->method('shareAPIEnabled')
->willReturn($sharingEnabled);
@@ -556,7 +540,7 @@ class PrincipalTest extends TestCase {
'{DAV:}displayname' => 'User 12'], $test));
}
- public function searchPrincipalsDataProvider(): array {
+ public static function searchPrincipalsDataProvider(): array {
return [
[true, false, 'allof', ['principals/users/user3']],
[true, false, 'anyof', ['principals/users/user2', 'principals/users/user3', 'principals/users/user4']],
@@ -845,7 +829,7 @@ class PrincipalTest extends TestCase {
/**
* @dataProvider findByUriWithGroupRestrictionDataProvider
*/
- public function testFindByUriWithGroupRestriction($uri, $email, $expects): void {
+ public function testFindByUriWithGroupRestriction(string $uri, string $email, ?string $expects): void {
$this->shareManager->expects($this->once())
->method('shareApiEnabled')
->willReturn(true);
@@ -872,31 +856,23 @@ class PrincipalTest extends TestCase {
if ($email === 'user2@foo.bar') {
$this->groupManager->expects($this->exactly(2))
->method('getUserGroupIds')
- ->withConsecutive(
- [$user],
- [$user2],
- )
- ->willReturnOnConsecutiveCalls(
- ['group1', 'group2'],
- ['group1', 'group3'],
- );
+ ->willReturnMap([
+ [$user, ['group1', 'group2']],
+ [$user2, ['group1', 'group3']],
+ ]);
} else {
$this->groupManager->expects($this->exactly(2))
->method('getUserGroupIds')
- ->withConsecutive(
- [$user],
- [$user3],
- )
- ->willReturnOnConsecutiveCalls(
- ['group1', 'group2'],
- ['group3', 'group3'],
- );
+ ->willReturnMap([
+ [$user, ['group1', 'group2']],
+ [$user3, ['group3', 'group3']],
+ ]);
}
$this->assertEquals($expects, $this->connector->findByUri($uri, 'principals/users'));
}
- public function findByUriWithGroupRestrictionDataProvider(): array {
+ public static function findByUriWithGroupRestrictionDataProvider(): array {
return [
['mailto:user2@foo.bar', 'user2@foo.bar', 'principals/users/user2'],
['mailto:user3@foo.bar', 'user3@foo.bar', null],
@@ -906,7 +882,7 @@ class PrincipalTest extends TestCase {
/**
* @dataProvider findByUriWithoutGroupRestrictionDataProvider
*/
- public function testFindByUriWithoutGroupRestriction($uri, $email, $expects): void {
+ public function testFindByUriWithoutGroupRestriction(string $uri, string $email, string $expects): void {
$this->shareManager->expects($this->once())
->method('shareApiEnabled')
->willReturn(true);
@@ -928,7 +904,7 @@ class PrincipalTest extends TestCase {
$this->assertEquals($expects, $this->connector->findByUri($uri, 'principals/users'));
}
- public function findByUriWithoutGroupRestrictionDataProvider(): array {
+ public static function findByUriWithoutGroupRestrictionDataProvider(): array {
return [
['mailto:user2@foo.bar', 'user2@foo.bar', 'principals/users/user2'],
['mailto:user3@foo.bar', 'user3@foo.bar', 'principals/users/user3'],
diff --git a/apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php
index 42414ad6efb..e6f696ed160 100644
--- a/apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/PropfindCompressionPluginTest.php
@@ -14,8 +14,7 @@ use Sabre\HTTP\Response;
use Test\TestCase;
class PropfindCompressionPluginTest extends TestCase {
- /** @var PropfindCompressionPlugin */
- private $plugin;
+ private PropfindCompressionPlugin $plugin;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php b/apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php
index 00bddf2e69c..2340890ae5a 100644
--- a/apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/PublicAuthTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,10 +11,12 @@ namespace OCA\DAV\Tests\unit\Connector;
use OCA\DAV\Connector\Sabre\PublicAuth;
use OCP\IRequest;
use OCP\ISession;
+use OCP\IURLGenerator;
use OCP\Security\Bruteforce\IThrottler;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
/**
@@ -25,21 +28,15 @@ use Psr\Log\LoggerInterface;
*/
class PublicAuthTest extends \Test\TestCase {
- /** @var ISession|MockObject */
- private $session;
- /** @var IRequest|MockObject */
- private $request;
- /** @var IManager|MockObject */
- private $shareManager;
- /** @var PublicAuth */
- private $auth;
- /** @var IThrottler|MockObject */
- private $throttler;
- /** @var LoggerInterface|MockObject */
- private $logger;
-
- /** @var string */
- private $oldUser;
+ private ISession&MockObject $session;
+ private IRequest&MockObject $request;
+ private IManager&MockObject $shareManager;
+ private IThrottler&MockObject $throttler;
+ private LoggerInterface&MockObject $logger;
+ private IURLGenerator&MockObject $urlGenerator;
+ private PublicAuth $auth;
+
+ private bool|string $oldUser;
protected function setUp(): void {
parent::setUp();
@@ -49,6 +46,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->shareManager = $this->createMock(IManager::class);
$this->throttler = $this->createMock(IThrottler::class);
$this->logger = $this->createMock(LoggerInterface::class);
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->auth = new PublicAuth(
$this->request,
@@ -56,6 +54,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->session,
$this->throttler,
$this->logger,
+ $this->urlGenerator,
);
// Store current user
@@ -67,7 +66,9 @@ class PublicAuthTest extends \Test\TestCase {
// Set old user
\OC_User::setUserId($this->oldUser);
- \OC_Util::setupFS($this->oldUser);
+ if ($this->oldUser !== false) {
+ \OC_Util::setupFS($this->oldUser);
+ }
parent::tearDown();
}
@@ -76,7 +77,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $result = $this->invokePrivate($this->auth, 'getToken');
+ $result = self::invokePrivate($this->auth, 'getToken');
$this->assertSame('GX9HSGQrGE', $result);
}
@@ -86,16 +87,14 @@ class PublicAuthTest extends \Test\TestCase {
->willReturn('/dav/files');
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $this->invokePrivate($this->auth, 'getToken');
+ self::invokePrivate($this->auth, 'getToken');
}
public function testCheckTokenValidShare(): void {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn(null);
$this->shareManager->expects($this->once())
@@ -103,7 +102,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willReturn($share);
- $result = $this->invokePrivate($this->auth, 'checkToken');
+ $result = self::invokePrivate($this->auth, 'checkToken');
$this->assertSame([true, 'principals/GX9HSGQrGE'], $result);
}
@@ -118,16 +117,14 @@ class PublicAuthTest extends \Test\TestCase {
->will($this->throwException(new ShareNotFound()));
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $this->invokePrivate($this->auth, 'checkToken');
+ self::invokePrivate($this->auth, 'checkToken');
}
public function testCheckTokenAlreadyAuthenticated(): void {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getShareType')->willReturn(42);
$this->shareManager->expects($this->once())
@@ -137,8 +134,8 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('42');
-
- $result = $this->invokePrivate($this->auth, 'checkToken');
+
+ $result = self::invokePrivate($this->auth, 'checkToken');
$this->assertSame([true, 'principals/GX9HSGQrGE'], $result);
}
@@ -146,9 +143,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(42);
@@ -158,18 +153,16 @@ class PublicAuthTest extends \Test\TestCase {
->willReturn($share);
$this->session->method('exists')->with('public_link_authenticated')->willReturn(false);
-
+
$this->expectException(\Sabre\DAV\Exception\NotAuthenticated::class);
- $this->invokePrivate($this->auth, 'checkToken');
+ self::invokePrivate($this->auth, 'checkToken');
}
public function testCheckTokenPasswordAuthenticatedWrongShare(): void {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(42);
@@ -180,9 +173,9 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(false);
$this->session->method('get')->with('public_link_authenticated')->willReturn('43');
-
+
$this->expectException(\Sabre\DAV\Exception\NotAuthenticated::class);
- $this->invokePrivate($this->auth, 'checkToken');
+ self::invokePrivate($this->auth, 'checkToken');
}
public function testNoShare(): void {
@@ -194,7 +187,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willThrowException(new ShareNotFound());
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertFalse($result);
}
@@ -203,9 +196,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn(null);
$this->shareManager->expects($this->once())
@@ -213,7 +204,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willReturn($share);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -222,9 +213,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(42);
@@ -233,7 +222,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willReturn($share);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertFalse($result);
}
@@ -243,9 +232,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_REMOTE);
@@ -254,7 +241,7 @@ class PublicAuthTest extends \Test\TestCase {
->with('GX9HSGQrGE')
->willReturn($share);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -263,9 +250,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
@@ -280,7 +265,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->equalTo('password')
)->willReturn(true);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -289,9 +274,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_EMAIL);
@@ -306,7 +289,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->equalTo('password')
)->willReturn(true);
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -315,9 +298,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
$share->method('getId')->willReturn('42');
@@ -337,7 +318,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('42');
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertTrue($result);
}
@@ -346,9 +327,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_LINK);
$share->method('getId')->willReturn('42');
@@ -368,7 +347,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('43');
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertFalse($result);
}
@@ -378,9 +357,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->request->method('getPathInfo')
->willReturn('/dav/files/GX9HSGQrGE');
- $share = $this->getMockBuilder(IShare::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $share = $this->createMock(IShare::class);
$share->method('getPassword')->willReturn('password');
$share->method('getShareType')->willReturn(IShare::TYPE_EMAIL);
$share->method('getId')->willReturn('42');
@@ -400,7 +377,7 @@ class PublicAuthTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('43');
- $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
+ $result = self::invokePrivate($this->auth, 'validateUserPass', ['username', 'password']);
$this->assertFalse($result);
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php
index c370e0fb0f7..a78a1a223c5 100644
--- a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2013-2016 ownCloud, Inc.
@@ -13,29 +14,23 @@ use OCP\Files\FileInfo;
use Test\TestCase;
class QuotaPluginTest extends TestCase {
- /** @var \Sabre\DAV\Server | \PHPUnit\Framework\MockObject\MockObject */
- private $server;
+ private \Sabre\DAV\Server $server;
- /** @var QuotaPlugin|\PHPUnit\Framework\MockObject\MockObject */
- private $plugin;
+ private QuotaPlugin $plugin;
- private function init($quota, $checkedPath = ''): void {
- $view = $this->buildFileViewMock($quota, $checkedPath);
+ private function init(int $quota, string $checkedPath = ''): void {
+ $view = $this->buildFileViewMock((string)$quota, $checkedPath);
$this->server = new \Sabre\DAV\Server();
- $this->plugin = $this->getMockBuilder(QuotaPlugin::class)
- ->setConstructorArgs([$view])
- ->setMethods(['getFileChunking'])
- ->getMock();
+ $this->plugin = new QuotaPlugin($view);
$this->plugin->initialize($this->server);
}
/**
* @dataProvider lengthProvider
*/
- public function testLength($expected, $headers): void {
+ public function testLength(?int $expected, array $headers): void {
$this->init(0);
- $this->plugin->expects($this->never())
- ->method('getFileChunking');
+
$this->server->httpRequest = new \Sabre\HTTP\Request('POST', 'dummy.file', $headers);
$length = $this->plugin->getLength();
$this->assertEquals($expected, $length);
@@ -44,10 +39,8 @@ class QuotaPluginTest extends TestCase {
/**
* @dataProvider quotaOkayProvider
*/
- public function testCheckQuota($quota, $headers): void {
+ public function testCheckQuota(int $quota, array $headers): void {
$this->init($quota);
- $this->plugin->expects($this->never())
- ->method('getFileChunking');
$this->server->httpRequest = new \Sabre\HTTP\Request('POST', 'dummy.file', $headers);
$result = $this->plugin->checkQuota('');
@@ -57,12 +50,10 @@ class QuotaPluginTest extends TestCase {
/**
* @dataProvider quotaExceededProvider
*/
- public function testCheckExceededQuota($quota, $headers): void {
+ public function testCheckExceededQuota(int $quota, array $headers): void {
$this->expectException(\Sabre\DAV\Exception\InsufficientStorage::class);
$this->init($quota);
- $this->plugin->expects($this->never())
- ->method('getFileChunking');
$this->server->httpRequest = new \Sabre\HTTP\Request('POST', 'dummy.file', $headers);
$this->plugin->checkQuota('');
@@ -71,17 +62,15 @@ class QuotaPluginTest extends TestCase {
/**
* @dataProvider quotaOkayProvider
*/
- public function testCheckQuotaOnPath($quota, $headers): void {
+ public function testCheckQuotaOnPath(int $quota, array $headers): void {
$this->init($quota, 'sub/test.txt');
- $this->plugin->expects($this->never())
- ->method('getFileChunking');
$this->server->httpRequest = new \Sabre\HTTP\Request('POST', 'dummy.file', $headers);
$result = $this->plugin->checkQuota('/sub/test.txt');
$this->assertTrue($result);
}
- public function quotaOkayProvider() {
+ public static function quotaOkayProvider(): array {
return [
[1024, []],
[1024, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
@@ -100,7 +89,7 @@ class QuotaPluginTest extends TestCase {
];
}
- public function quotaExceededProvider() {
+ public static function quotaExceededProvider(): array {
return [
[1023, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
[511, ['CONTENT-LENGTH' => '512']],
@@ -108,7 +97,7 @@ class QuotaPluginTest extends TestCase {
];
}
- public function lengthProvider() {
+ public static function lengthProvider(): array {
return [
[null, []],
[1024, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
@@ -124,7 +113,7 @@ class QuotaPluginTest extends TestCase {
];
}
- public function quotaChunkedOkProvider() {
+ public static function quotaChunkedOkProvider(): array {
return [
[1024, 0, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
[1024, 0, ['CONTENT-LENGTH' => '512']],
@@ -143,7 +132,7 @@ class QuotaPluginTest extends TestCase {
];
}
- public function quotaChunkedFailProvider() {
+ public static function quotaChunkedFailProvider(): array {
return [
[400, 0, ['X-EXPECTED-ENTITY-LENGTH' => '1024']],
[400, 0, ['CONTENT-LENGTH' => '512']],
@@ -155,15 +144,15 @@ class QuotaPluginTest extends TestCase {
];
}
- private function buildFileViewMock($quota, $checkedPath) {
- // mock filesysten
+ private function buildFileViewMock(string $quota, string $checkedPath): View {
+ // mock filesystem
$view = $this->getMockBuilder(View::class)
- ->setMethods(['free_space'])
+ ->onlyMethods(['free_space'])
->disableOriginalConstructor()
->getMock();
$view->expects($this->any())
->method('free_space')
- ->with($this->identicalTo($checkedPath))
+ ->with($checkedPath)
->willReturn($quota);
return $view;
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php
index 836766b366d..b01807d5bbb 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/Auth.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php
index e7f20fbadfa..c5c7e99c7e5 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,7 +19,7 @@ use OCP\AppFramework\Http;
*/
class DeleteTest extends RequestTestCase {
public function testBasicUpload(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'asd');
@@ -29,7 +30,7 @@ class DeleteTest extends RequestTestCase {
$mount->getStorage()->unlink($mount->getInternalPath($internalPath));
// cache entry still exists
- $this->assertInstanceOf('\OCP\Files\FileInfo', $view->getFileInfo('foo.txt'));
+ $this->assertInstanceOf(\OCP\Files\FileInfo::class, $view->getFileInfo('foo.txt'));
$response = $this->request($view, $user, 'pass', 'DELETE', '/foo.txt');
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php
index bec4cd9967b..34171963ef0 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DownloadTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -19,7 +20,7 @@ use OCP\Lock\ILockingProvider;
*/
class DownloadTest extends RequestTestCase {
public function testDownload(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'bar');
@@ -30,7 +31,7 @@ class DownloadTest extends RequestTestCase {
}
public function testDownloadWriteLocked(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'bar');
@@ -42,7 +43,7 @@ class DownloadTest extends RequestTestCase {
}
public function testDownloadReadLocked(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'bar');
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php
index 92d89d7753a..615490ddc92 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -23,7 +24,7 @@ use Test\Traits\EncryptionTrait;
class EncryptionMasterKeyUploadTest extends UploadTest {
use EncryptionTrait;
- protected function setupUser($name, $password) {
+ protected function setupUser($name, $password): View {
$this->createUser($name, $password);
$tmpFolder = Server::get(ITempManager::class)->getTemporaryFolder();
$this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]);
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php
index 935ef6d9464..efa7bb54cf8 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -23,7 +24,7 @@ use Test\Traits\EncryptionTrait;
class EncryptionUploadTest extends UploadTest {
use EncryptionTrait;
- protected function setupUser($name, $password) {
+ protected function setupUser($name, $password): View {
$this->createUser($name, $password);
$tmpFolder = Server::get(ITempManager::class)->getTemporaryFolder();
$this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]);
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php
index b1e68f9597b..0c53e4b1009 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php
index 5f3dc6f4e32..e6fa489fb24 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php
@@ -21,9 +21,7 @@ use OCP\Server;
class PartFileInRootUploadTest extends UploadTest {
protected function setUp(): void {
$config = Server::get(IConfig::class);
- $mockConfig = $this->getMockBuilder(IConfig::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $mockConfig = $this->createMock(IConfig::class);
$mockConfig->expects($this->any())
->method('getSystemValue')
->willReturnCallback(function ($key, $default) use ($config) {
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php
index a04aedb4e57..404dc7fa5d7 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -20,6 +21,7 @@ use OCP\IRequestId;
use OCP\ITagManager;
use OCP\ITempManager;
use OCP\IUserSession;
+use OCP\L10N\IFactory;
use Psr\Log\LoggerInterface;
use Sabre\HTTP\Request;
use Test\TestCase;
@@ -29,11 +31,7 @@ use Test\Traits\UserTrait;
abstract class RequestTestCase extends TestCase {
use UserTrait;
use MountProviderTrait;
-
- /**
- * @var ServerFactory
- */
- protected $serverFactory;
+ protected ServerFactory $serverFactory;
protected function getStream($string) {
$stream = fopen('php://temp', 'r+');
@@ -52,20 +50,18 @@ abstract class RequestTestCase extends TestCase {
\OCP\Server::get(IUserSession::class),
\OCP\Server::get(IMountManager::class),
\OCP\Server::get(ITagManager::class),
- $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()
- ->getMock(),
+ $this->createMock(IRequest::class),
\OCP\Server::get(IPreview::class),
\OCP\Server::get(IEventDispatcher::class),
- \OC::$server->getL10N('dav')
+ \OCP\Server::get(IFactory::class)->get('dav'),
);
}
- protected function setupUser($name, $password) {
+ protected function setupUser($name, $password): View {
$this->createUser($name, $password);
$tmpFolder = \OCP\Server::get(ITempManager::class)->getTemporaryFolder();
$this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]);
- $this->loginAsUser($name);
+ self::loginAsUser($name);
return new View('/' . $name . '/files');
}
@@ -137,7 +133,7 @@ abstract class RequestTestCase extends TestCase {
$authBackend = new Auth($user, $password);
$authPlugin = new \Sabre\DAV\Auth\Plugin($authBackend);
- $server = $this->serverFactory->createServer('/', 'dummy', $authPlugin, function () use ($view) {
+ $server = $this->serverFactory->createServer(false, '/', 'dummy', $authPlugin, function () use ($view) {
return $view;
});
$server->addPlugin($exceptionPlugin);
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php
index f12c93468ff..08d774e56b8 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/Sapi.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php
index 60decd4c846..5c6d0f03334 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/UploadTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -19,7 +20,7 @@ use OCP\Lock\ILockingProvider;
*/
class UploadTest extends RequestTestCase {
public function testBasicUpload(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$this->assertFalse($view->file_exists('foo.txt'));
@@ -35,7 +36,7 @@ class UploadTest extends RequestTestCase {
}
public function testUploadOverWrite(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'foobar');
@@ -51,7 +52,7 @@ class UploadTest extends RequestTestCase {
}
public function testUploadOverWriteReadLocked(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$view->file_put_contents('foo.txt', 'bar');
@@ -63,7 +64,7 @@ class UploadTest extends RequestTestCase {
}
public function testUploadOverWriteWriteLocked(): void {
- $user = $this->getUniqueID();
+ $user = self::getUniqueID();
$view = $this->setupUser($user, 'pass');
$this->loginAsUser($user);
diff --git a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php
index 97d3ba79046..00ac5b5543f 100644
--- a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -17,35 +18,17 @@ use OCP\IUser;
use OCP\IUserSession;
use OCP\Share\IManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Tree;
class SharesPluginTest extends \Test\TestCase {
public const SHARETYPES_PROPERTYNAME = SharesPlugin::SHARETYPES_PROPERTYNAME;
- /**
- * @var \Sabre\DAV\Server
- */
- private $server;
-
- /**
- * @var \Sabre\DAV\Tree
- */
- private $tree;
-
- /**
- * @var \OCP\Share\IManager
- */
- private $shareManager;
-
- /**
- * @var Folder
- */
- private $userFolder;
-
- /**
- * @var SharesPlugin
- */
- private $plugin;
+ private \Sabre\DAV\Server $server;
+ private \Sabre\DAV\Tree&MockObject $tree;
+ private \OCP\Share\IManager&MockObject $shareManager;
+ private Folder&MockObject $userFolder;
+ private SharesPlugin $plugin;
protected function setUp(): void {
parent::setUp();
@@ -74,10 +57,8 @@ class SharesPluginTest extends \Test\TestCase {
/**
* @dataProvider sharesGetPropertiesDataProvider
*/
- public function testGetProperties($shareTypes): void {
- $sabreNode = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testGetProperties(array $shareTypes): void {
+ $sabreNode = $this->createMock(Node::class);
$sabreNode->expects($this->any())
->method('getId')
->willReturn(123);
@@ -86,9 +67,7 @@ class SharesPluginTest extends \Test\TestCase {
->willReturn('/subdir');
// node API nodes
- $node = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Folder::class);
$sabreNode->method('getNode')
->willReturn($node);
@@ -143,7 +122,7 @@ class SharesPluginTest extends \Test\TestCase {
/**
* @dataProvider sharesGetPropertiesDataProvider
*/
- public function testPreloadThenGetProperties($shareTypes): void {
+ public function testPreloadThenGetProperties(array $shareTypes): void {
$sabreNode1 = $this->createMock(File::class);
$sabreNode1->method('getId')
->willReturn(111);
@@ -182,7 +161,7 @@ class SharesPluginTest extends \Test\TestCase {
->willReturn($node2);
$dummyShares = array_map(function ($type) {
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())
->method('getShareType')
->willReturn($type);
@@ -268,7 +247,7 @@ class SharesPluginTest extends \Test\TestCase {
$this->assertEquals($shareTypes, $result[200][self::SHARETYPES_PROPERTYNAME]->getShareTypes());
}
- public function sharesGetPropertiesDataProvider() {
+ public static function sharesGetPropertiesDataProvider(): array {
return [
[[]],
[[IShare::TYPE_USER]],
@@ -287,9 +266,7 @@ class SharesPluginTest extends \Test\TestCase {
}
public function testGetPropertiesSkipChunks(): void {
- $sabreNode = $this->getMockBuilder(UploadFile::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $sabreNode = $this->createMock(UploadFile::class);
$propFind = new \Sabre\DAV\PropFind(
'/dummyPath',
diff --git a/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php
index 43c08a1a61c..bef508e08ca 100644
--- a/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2014-2016 ownCloud, Inc.
@@ -18,6 +19,7 @@ use OCP\ITagManager;
use OCP\ITags;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Tree;
class TagsPluginTest extends \Test\TestCase {
@@ -25,61 +27,24 @@ class TagsPluginTest extends \Test\TestCase {
public const FAVORITE_PROPERTYNAME = TagsPlugin::FAVORITE_PROPERTYNAME;
public const TAG_FAVORITE = TagsPlugin::TAG_FAVORITE;
- /**
- * @var \Sabre\DAV\Server
- */
- private $server;
-
- /**
- * @var Tree
- */
- private $tree;
-
- /**
- * @var ITagManager
- */
- private $tagManager;
-
- /**
- * @var ITags
- */
- private $tagger;
-
- /**
- * @var IEventDispatcher
- */
- private $eventDispatcher;
-
- /**
- * @var IUserSession
- */
- private $userSession;
-
- /**
- * @var TagsPlugin
- */
- private $plugin;
+ private \Sabre\DAV\Server $server;
+ private Tree&MockObject $tree;
+ private ITagManager&MockObject $tagManager;
+ private ITags&MockObject $tagger;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private IUserSession&MockObject $userSession;
+ private TagsPlugin $plugin;
protected function setUp(): void {
parent::setUp();
+
$this->server = new \Sabre\DAV\Server();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->tagger = $this->getMockBuilder(ITags::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->tagManager = $this->getMockBuilder(ITagManager::class)
- ->disableOriginalConstructor()
- ->getMock();
-
- $this->eventDispatcher = $this->getMockBuilder(IEventDispatcher::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
+ $this->tagger = $this->createMock(ITags::class);
+ $this->tagManager = $this->createMock(ITagManager::class);
+ $this->eventDispatcher = $this->createMock(IEventDispatcher::class);
$user = $this->createMock(IUser::class);
- /**
- * @var IUserSession
- */
+
$this->userSession = $this->createMock(IUserSession::class);
$this->userSession->expects($this->any())
->method('getUser')
@@ -96,10 +61,8 @@ class TagsPluginTest extends \Test\TestCase {
/**
* @dataProvider tagsGetPropertiesDataProvider
*/
- public function testGetProperties($tags, $requestedProperties, $expectedProperties): void {
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testGetProperties(array $tags, array $requestedProperties, array $expectedProperties): void {
+ $node = $this->createMock(Node::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -135,16 +98,12 @@ class TagsPluginTest extends \Test\TestCase {
/**
* @dataProvider tagsGetPropertiesDataProvider
*/
- public function testPreloadThenGetProperties($tags, $requestedProperties, $expectedProperties): void {
- $node1 = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ public function testPreloadThenGetProperties(array $tags, array $requestedProperties, array $expectedProperties): void {
+ $node1 = $this->createMock(File::class);
$node1->expects($this->any())
->method('getId')
->willReturn(111);
- $node2 = $this->getMockBuilder(File::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node2 = $this->createMock(File::class);
$node2->expects($this->any())
->method('getId')
->willReturn(222);
@@ -157,9 +116,7 @@ class TagsPluginTest extends \Test\TestCase {
$expectedCallCount = 1;
}
- $node = $this->getMockBuilder(Directory::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Directory::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -214,7 +171,7 @@ class TagsPluginTest extends \Test\TestCase {
$this->assertEquals($expectedProperties, $result);
}
- public function tagsGetPropertiesDataProvider() {
+ public static function tagsGetPropertiesDataProvider(): array {
return [
// request both, receive both
[
@@ -270,9 +227,7 @@ class TagsPluginTest extends \Test\TestCase {
}
public function testGetPropertiesSkipChunks(): void {
- $sabreNode = $this->getMockBuilder(UploadFile::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $sabreNode = $this->createMock(UploadFile::class);
$propFind = new \Sabre\DAV\PropFind(
'/dummyPath',
@@ -292,9 +247,7 @@ class TagsPluginTest extends \Test\TestCase {
public function testUpdateTags(): void {
// this test will replace the existing tags "tagremove" with "tag1" and "tag2"
// and keep "tagkeep"
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -310,12 +263,16 @@ class TagsPluginTest extends \Test\TestCase {
->willReturn([123 => ['tagkeep', 'tagremove', self::TAG_FAVORITE]]);
// then tag as tag1 and tag2
- $this->tagger->expects($this->exactly(2))
+ $calls = [
+ [123, 'tag1'],
+ [123, 'tag2'],
+ ];
+ $this->tagger->expects($this->exactly(count($calls)))
->method('tagAs')
- ->withConsecutive(
- [123, 'tag1'],
- [123, 'tag2'],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// it will untag tag3
$this->tagger->expects($this->once())
@@ -339,13 +296,11 @@ class TagsPluginTest extends \Test\TestCase {
$result = $propPatch->getResult();
$this->assertEquals(200, $result[self::TAGS_PROPERTYNAME]);
- $this->assertFalse(isset($result[self::FAVORITE_PROPERTYNAME]));
+ $this->assertArrayNotHasKey(self::FAVORITE_PROPERTYNAME, $result);
}
public function testUpdateTagsFromScratch(): void {
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -361,12 +316,16 @@ class TagsPluginTest extends \Test\TestCase {
->willReturn([]);
// then tag as tag1 and tag2
- $this->tagger->expects($this->exactly(2))
+ $calls = [
+ [123, 'tag1'],
+ [123, 'tag2'],
+ ];
+ $this->tagger->expects($this->exactly(count($calls)))
->method('tagAs')
- ->withConsecutive(
- [123, 'tag1'],
- [123, 'tag2'],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// properties to set
$propPatch = new \Sabre\DAV\PropPatch([
@@ -385,15 +344,13 @@ class TagsPluginTest extends \Test\TestCase {
$result = $propPatch->getResult();
$this->assertEquals(200, $result[self::TAGS_PROPERTYNAME]);
- $this->assertFalse(false, isset($result[self::FAVORITE_PROPERTYNAME]));
+ $this->assertArrayNotHasKey(self::FAVORITE_PROPERTYNAME, $result);
}
public function testUpdateFav(): void {
// this test will replace the existing tags "tagremove" with "tag1" and "tag2"
// and keep "tagkeep"
- $node = $this->getMockBuilder(Node::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(Node::class);
$node->expects($this->any())
->method('getId')
->willReturn(123);
@@ -424,8 +381,8 @@ class TagsPluginTest extends \Test\TestCase {
$this->assertEmpty($propPatch->getRemainingMutations());
$result = $propPatch->getResult();
- $this->assertFalse(false, isset($result[self::TAGS_PROPERTYNAME]));
- $this->assertEquals(200, isset($result[self::FAVORITE_PROPERTYNAME]));
+ $this->assertArrayNotHasKey(self::TAGS_PROPERTYNAME, $result);
+ $this->assertEquals(200, $result[self::FAVORITE_PROPERTYNAME]);
// unfavorite now
// set favorite tag
@@ -449,7 +406,7 @@ class TagsPluginTest extends \Test\TestCase {
$this->assertEmpty($propPatch->getRemainingMutations());
$result = $propPatch->getResult();
- $this->assertFalse(false, isset($result[self::TAGS_PROPERTYNAME]));
- $this->assertEquals(200, isset($result[self::FAVORITE_PROPERTYNAME]));
+ $this->assertArrayNotHasKey(self::TAGS_PROPERTYNAME, $result);
+ $this->assertEquals(200, $result[self::FAVORITE_PROPERTYNAME]);
}
}
diff --git a/apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php b/apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php
index c7c2bf0e431..9aa0ef3a2a7 100644
--- a/apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php
+++ b/apps/dav/tests/unit/Controller/BirthdayCalendarControllerTest.php
@@ -1,43 +1,33 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Controller;
+namespace OCA\DAV\Tests\unit\DAV\Controller;
use OCA\DAV\BackgroundJob\GenerateBirthdayCalendarBackgroundJob;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\Controller\BirthdayCalendarController;
+use OCP\AppFramework\Http\JSONResponse;
use OCP\BackgroundJob\IJobList;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IRequest;
use OCP\IUser;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BirthdayCalendarControllerTest extends TestCase {
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
-
- /** @var IDBConnection|\PHPUnit\Framework\MockObject\MockObject */
- private $db;
-
- /** @var IJobList|\PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $caldav;
-
- /** @var BirthdayCalendarController|\PHPUnit\Framework\MockObject\MockObject */
- private $controller;
+ private IConfig&MockObject $config;
+ private IRequest&MockObject $request;
+ private IDBConnection&MockObject $db;
+ private IJobList&MockObject $jobList;
+ private IUserManager&MockObject $userManager;
+ private CalDavBackend&MockObject $caldav;
+ private BirthdayCalendarController $controller;
protected function setUp(): void {
parent::setUp();
@@ -74,16 +64,20 @@ class BirthdayCalendarControllerTest extends TestCase {
$closure($user3);
});
+ $calls = [
+ [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid1']],
+ [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid2']],
+ [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid3']],
+ ];
$this->jobList->expects($this->exactly(3))
->method('add')
- ->withConsecutive(
- [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid1']],
- [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid2']],
- [GenerateBirthdayCalendarBackgroundJob::class, ['userId' => 'uid3']],
- );
+ ->willReturnCallback(function () use (&$calls): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$response = $this->controller->enable();
- $this->assertInstanceOf('OCP\AppFramework\Http\JSONResponse', $response);
+ $this->assertInstanceOf(JSONResponse::class, $response);
}
public function testDisable(): void {
@@ -97,6 +91,6 @@ class BirthdayCalendarControllerTest extends TestCase {
->method('deleteAllBirthdayCalendars');
$response = $this->controller->disable();
- $this->assertInstanceOf('OCP\AppFramework\Http\JSONResponse', $response);
+ $this->assertInstanceOf(JSONResponse::class, $response);
}
}
diff --git a/apps/dav/tests/unit/Controller/DirectControllerTest.php b/apps/dav/tests/unit/Controller/DirectControllerTest.php
index faaf67d266b..837adde1da7 100644
--- a/apps/dav/tests/unit/Controller/DirectControllerTest.php
+++ b/apps/dav/tests/unit/Controller/DirectControllerTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Controller;
+namespace OCA\DAV\Tests\unit\DAV\Controller;
use OCA\DAV\Controller\DirectController;
use OCA\DAV\Db\Direct;
@@ -20,29 +20,18 @@ use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\IRequest;
-use OCP\IUrlGenerator;
+use OCP\IURLGenerator;
use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class DirectControllerTest extends TestCase {
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var DirectMapper|\PHPUnit\Framework\MockObject\MockObject */
- private $directMapper;
-
- /** @var ISecureRandom|\PHPUnit\Framework\MockObject\MockObject */
- private $random;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var IUrlGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
- private $eventDispatcher;
+ private IRootFolder&MockObject $rootFolder;
+ private DirectMapper&MockObject $directMapper;
+ private ISecureRandom&MockObject $random;
+ private ITimeFactory&MockObject $timeFactory;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IEventDispatcher&MockObject $eventDispatcher;
private DirectController $controller;
@@ -53,7 +42,7 @@ class DirectControllerTest extends TestCase {
$this->directMapper = $this->createMock(DirectMapper::class);
$this->random = $this->createMock(ISecureRandom::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
- $this->urlGenerator = $this->createMock(IUrlGenerator::class);
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
$this->controller = new DirectController(
diff --git a/apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php b/apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php
index 640c66b75e5..895a84b8404 100644
--- a/apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php
+++ b/apps/dav/tests/unit/Controller/InvitationResponseControllerTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Controller;
+namespace OCA\DAV\Tests\unit\DAV\Controller;
use OCA\DAV\CalDAV\InvitationResponse\InvitationResponseServer;
use OCA\DAV\Controller\InvitationResponseController;
@@ -18,24 +18,16 @@ use OCP\DB\QueryBuilder\IExpressionBuilder;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\ITip\Message;
use Test\TestCase;
class InvitationResponseControllerTest extends TestCase {
- /** @var InvitationResponseController */
- private $controller;
-
- /** @var IDBConnection|\PHPUnit\Framework\MockObject\MockObject */
- private $dbConnection;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var InvitationResponseServer|\PHPUnit\Framework\MockObject\MockObject */
- private $responseServer;
+ private IDBConnection&MockObject $dbConnection;
+ private IRequest&MockObject $request;
+ private ITimeFactory&MockObject $timeFactory;
+ private InvitationResponseServer&MockObject $responseServer;
+ private InvitationResponseController $controller;
protected function setUp(): void {
parent::setUp();
@@ -43,9 +35,7 @@ class InvitationResponseControllerTest extends TestCase {
$this->dbConnection = $this->createMock(IDBConnection::class);
$this->request = $this->createMock(IRequest::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
- $this->responseServer = $this->getMockBuilder(InvitationResponseServer::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->responseServer = $this->createMock(InvitationResponseServer::class);
$this->controller = new InvitationResponseController(
'appName',
@@ -56,7 +46,7 @@ class InvitationResponseControllerTest extends TestCase {
);
}
- public function attendeeProvider(): array {
+ public static function attendeeProvider(): array {
return [
'local attendee' => [false],
'external attendee' => [true]
@@ -424,7 +414,7 @@ EOF;
$this->assertTrue($called);
}
- private function buildQueryExpects($token, $return, $time): void {
+ private function buildQueryExpects(string $token, ?array $return, int $time): void {
$queryBuilder = $this->createMock(IQueryBuilder::class);
$stmt = $this->createMock(IResult::class);
$expr = $this->createMock(IExpressionBuilder::class);
diff --git a/apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php b/apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php
index bab0ef77bd0..527943e5221 100644
--- a/apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php
+++ b/apps/dav/tests/unit/Controller/UpcomingEventsControllerTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Service;
+namespace OCA\DAV\Tests\unit\DAV\Service;
use OCA\DAV\CalDAV\UpcomingEvent;
use OCA\DAV\CalDAV\UpcomingEventsService;
@@ -17,9 +17,8 @@ use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
class UpcomingEventsControllerTest extends TestCase {
-
- private IRequest|MockObject $request;
- private UpcomingEventsService|MockObject $service;
+ private IRequest&MockObject $request;
+ private UpcomingEventsService&MockObject $service;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/DAV/AnonymousOptionsTest.php b/apps/dav/tests/unit/DAV/AnonymousOptionsTest.php
index ea5450391e8..c99ebf327c8 100644
--- a/apps/dav/tests/unit/DAV/AnonymousOptionsTest.php
+++ b/apps/dav/tests/unit/DAV/AnonymousOptionsTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\tests\unit\DAV;
+namespace OCA\DAV\Tests\unit\DAV;
use OCA\DAV\Connector\Sabre\AnonymousOptionsPlugin;
use Sabre\DAV\Auth\Backend\BasicCallBack;
@@ -14,7 +16,7 @@ use Sabre\HTTP\Sapi;
use Test\TestCase;
class AnonymousOptionsTest extends TestCase {
- private function sendRequest($method, $path, $userAgent = '') {
+ private function sendRequest(string $method, string $path, string $userAgent = '') {
$server = new Server();
$server->addPlugin(new AnonymousOptionsPlugin());
$server->addPlugin(new Plugin(new BasicCallBack(function () {
diff --git a/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php b/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php
index 088330cecff..23ee2b66f77 100644
--- a/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php
+++ b/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +9,7 @@
namespace OCA\DAV\Tests\unit\DAV;
use OCA\DAV\Files\BrowserErrorPagePlugin;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\NotFound;
use Sabre\HTTP\Response;
@@ -15,18 +17,16 @@ class BrowserErrorPagePluginTest extends \Test\TestCase {
/**
* @dataProvider providesExceptions
- * @param $expectedCode
- * @param $exception
*/
- public function test($expectedCode, $exception): void {
- /** @var BrowserErrorPagePlugin | \PHPUnit\Framework\MockObject\MockObject $plugin */
- $plugin = $this->getMockBuilder(BrowserErrorPagePlugin::class)->setMethods(['sendResponse', 'generateBody'])->getMock();
+ public function test(int $expectedCode, \Throwable $exception): void {
+ /** @var BrowserErrorPagePlugin&MockObject $plugin */
+ $plugin = $this->getMockBuilder(BrowserErrorPagePlugin::class)->onlyMethods(['sendResponse', 'generateBody'])->getMock();
$plugin->expects($this->once())->method('generateBody')->willReturn(':boom:');
$plugin->expects($this->once())->method('sendResponse');
- /** @var \Sabre\DAV\Server | \PHPUnit\Framework\MockObject\MockObject $server */
- $server = $this->getMockBuilder('Sabre\DAV\Server')->disableOriginalConstructor()->getMock();
+ /** @var \Sabre\DAV\Server&MockObject $server */
+ $server = $this->createMock('Sabre\DAV\Server');
$server->expects($this->once())->method('on');
- $httpResponse = $this->getMockBuilder(Response::class)->disableOriginalConstructor()->getMock();
+ $httpResponse = $this->createMock(Response::class);
$httpResponse->expects($this->once())->method('addHeaders');
$httpResponse->expects($this->once())->method('setStatus')->with($expectedCode);
$httpResponse->expects($this->once())->method('setBody')->with(':boom:');
@@ -35,7 +35,7 @@ class BrowserErrorPagePluginTest extends \Test\TestCase {
$plugin->logException($exception);
}
- public function providesExceptions() {
+ public static function providesExceptions(): array {
return [
[ 404, new NotFound()],
[ 500, new \RuntimeException()],
diff --git a/apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php b/apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php
index 5590e8c1ff0..7c77b3fcb28 100644
--- a/apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php
+++ b/apps/dav/tests/unit/DAV/CustomPropertiesBackendTest.php
@@ -1,10 +1,11 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\DAV;
+namespace OCA\DAV\Tests\unit\DAV;
use OCA\DAV\CalDAV\Calendar;
use OCA\DAV\CalDAV\DefaultCalendarValidator;
@@ -12,6 +13,7 @@ use OCA\DAV\DAV\CustomPropertiesBackend;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IUser;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\PropFind;
use Sabre\DAV\PropPatch;
@@ -28,23 +30,12 @@ use Test\TestCase;
class CustomPropertiesBackendTest extends TestCase {
private const BASE_URI = '/remote.php/dav/';
- /** @var Server | \PHPUnit\Framework\MockObject\MockObject */
- private $server;
-
- /** @var Tree | \PHPUnit\Framework\MockObject\MockObject */
- private $tree;
-
- /** @var IDBConnection */
- private $dbConnection;
-
- /** @var IUser | \PHPUnit\Framework\MockObject\MockObject */
- private $user;
-
- /** @var CustomPropertiesBackend | \PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @property DefaultCalendarValidator | \PHPUnit\Framework\MockObject\MockObject */
- private $defaultCalendarValidator;
+ private Server&MockObject $server;
+ private Tree&MockObject $tree;
+ private IDBConnection $dbConnection;
+ private IUser&MockObject $user;
+ private DefaultCalendarValidator&MockObject $defaultCalendarValidator;
+ private CustomPropertiesBackend $backend;
protected function setUp(): void {
parent::setUp();
@@ -85,13 +76,13 @@ class CustomPropertiesBackendTest extends TestCase {
}
}
- protected function insertProps(string $user, string $path, array $props) {
+ protected function insertProps(string $user, string $path, array $props): void {
foreach ($props as $name => $value) {
$this->insertProp($user, $path, $name, $value);
}
}
- protected function insertProp(string $user, string $path, string $name, mixed $value) {
+ protected function insertProp(string $user, string $path, string $name, mixed $value): void {
$type = CustomPropertiesBackend::PROPERTY_TYPE_STRING;
if ($value instanceof Href) {
$value = $value->getHref();
@@ -110,7 +101,7 @@ class CustomPropertiesBackendTest extends TestCase {
$query->execute();
}
- protected function getProps(string $user, string $path) {
+ protected function getProps(string $user, string $path): array {
$query = $this->dbConnection->getQueryBuilder();
$query->select('propertyname', 'propertyvalue', 'valuetype')
->from('properties')
@@ -245,7 +236,7 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals($props, $setProps);
}
- public function propFindPrincipalScheduleDefaultCalendarProviderUrlProvider(): array {
+ public static function propFindPrincipalScheduleDefaultCalendarProviderUrlProvider(): array {
// [ user, nodes, existingProps, requestedProps, returnedProps ]
return [
[ // Exists
@@ -373,7 +364,7 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals($result, $storedProps);
}
- public function propPatchProvider() {
+ public static function propPatchProvider(): array {
$longPath = str_repeat('long_path', 100);
return [
['foo_bar_path_1337', [], ['{DAV:}displayname' => 'anything'], ['{DAV:}displayname' => 'anything']],
@@ -436,7 +427,7 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals([], $this->getProps('dummy_user_42', $path));
}
- public function deleteProvider() {
+ public static function deleteProvider(): array {
return [
['foo_bar_path_1337'],
[str_repeat('long_path', 100)]
@@ -453,7 +444,7 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertEquals(['foo' => 'bar'], $this->getProps('dummy_user_42', $target));
}
- public function moveProvider() {
+ public static function moveProvider(): array {
return [
['foo_bar_path_1337', 'foo_bar_path_7333'],
[str_repeat('long_path1', 100), str_repeat('long_path2', 100)]
@@ -475,5 +466,4 @@ class CustomPropertiesBackendTest extends TestCase {
$this->assertInstanceOf(\Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp::class, $decodeValue);
$this->assertEquals('opaque', $decodeValue->getValue());
}
-
}
diff --git a/apps/dav/tests/unit/DAV/GroupPrincipalTest.php b/apps/dav/tests/unit/DAV/GroupPrincipalTest.php
index bfc4c5b2493..2ede450c36b 100644
--- a/apps/dav/tests/unit/DAV/GroupPrincipalTest.php
+++ b/apps/dav/tests/unit/DAV/GroupPrincipalTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,20 +20,11 @@ use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\PropPatch;
class GroupPrincipalTest extends \Test\TestCase {
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IGroupManager | MockObject */
- private $groupManager;
-
- /** @var IUserSession | MockObject */
- private $userSession;
-
- /** @var IManager | MockObject */
- private $shareManager;
-
- /** @var GroupPrincipalBackend */
- private $connector;
+ private IConfig&MockObject $config;
+ private IGroupManager&MockObject $groupManager;
+ private IUserSession&MockObject $userSession;
+ private IManager&MockObject $shareManager;
+ private GroupPrincipalBackend $connector;
protected function setUp(): void {
$this->groupManager = $this->createMock(IGroupManager::class);
@@ -201,11 +194,6 @@ class GroupPrincipalTest extends \Test\TestCase {
/**
* @dataProvider searchPrincipalsDataProvider
- * @param bool $sharingEnabled
- * @param bool $groupSharingEnabled
- * @param bool $groupsOnly
- * @param string $test
- * @param array $result
*/
public function testSearchPrincipals(bool $sharingEnabled, bool $groupSharingEnabled, bool $groupsOnly, string $test, array $result): void {
$this->shareManager->expects($this->once())
@@ -264,7 +252,7 @@ class GroupPrincipalTest extends \Test\TestCase {
['{DAV:}displayname' => 'Foo'], $test));
}
- public function searchPrincipalsDataProvider() {
+ public static function searchPrincipalsDataProvider(): array {
return [
[true, true, false, 'allof', ['principals/groups/group1', 'principals/groups/group2', 'principals/groups/group3', 'principals/groups/group4', 'principals/groups/group5']],
[true, true, false, 'anyof', ['principals/groups/group1', 'principals/groups/group2', 'principals/groups/group3', 'principals/groups/group4', 'principals/groups/group5']],
@@ -279,11 +267,6 @@ class GroupPrincipalTest extends \Test\TestCase {
/**
* @dataProvider findByUriDataProvider
- * @param bool $sharingEnabled
- * @param bool $groupSharingEnabled
- * @param bool $groupsOnly
- * @param string $findUri
- * @param string|null $result
*/
public function testFindByUri(bool $sharingEnabled, bool $groupSharingEnabled, bool $groupsOnly, string $findUri, ?string $result): void {
$this->shareManager->expects($this->once())
@@ -320,7 +303,7 @@ class GroupPrincipalTest extends \Test\TestCase {
$this->assertEquals($result, $this->connector->findByUri($findUri, 'principals/groups'));
}
- public function findByUriDataProvider() {
+ public static function findByUriDataProvider(): array {
return [
[false, false, false, 'principal:principals/groups/group1', null],
[false, false, false, 'principal:principals/groups/group3', null],
@@ -337,10 +320,7 @@ class GroupPrincipalTest extends \Test\TestCase {
];
}
- /**
- * @return Group|MockObject
- */
- private function mockGroup($gid) {
+ private function mockGroup(string $gid): Group&MockObject {
$fooGroup = $this->createMock(Group::class);
$fooGroup
->expects($this->exactly(1))
diff --git a/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php b/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php
index a0876d8e483..40d2fb62431 100644
--- a/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php
+++ b/apps/dav/tests/unit/DAV/Listener/UserEventsListenerTest.php
@@ -14,11 +14,13 @@ use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\CardDAV\SyncService;
use OCA\DAV\Listener\UserEventsListener;
-use OCA\DAV\Service\DefaultContactService;
+use OCA\DAV\Service\ExampleContactService;
+use OCA\DAV\Service\ExampleEventService;
use OCP\Defaults;
use OCP\IUser;
use OCP\IUserManager;
use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Log\LoggerInterface;
use Test\TestCase;
class UserEventsListenerTest extends TestCase {
@@ -27,33 +29,38 @@ class UserEventsListenerTest extends TestCase {
private CalDavBackend&MockObject $calDavBackend;
private CardDavBackend&MockObject $cardDavBackend;
private Defaults&MockObject $defaults;
-
- private DefaultContactService&MockObject $defaultContactService;
+ private ExampleContactService&MockObject $exampleContactService;
+ private ExampleEventService&MockObject $exampleEventService;
+ private LoggerInterface&MockObject $logger;
private UserEventsListener $userEventsListener;
protected function setUp(): void {
parent::setUp();
+
$this->userManager = $this->createMock(IUserManager::class);
$this->syncService = $this->createMock(SyncService::class);
$this->calDavBackend = $this->createMock(CalDavBackend::class);
$this->cardDavBackend = $this->createMock(CardDavBackend::class);
$this->defaults = $this->createMock(Defaults::class);
- $this->defaultContactService = $this->createMock(DefaultContactService::class);
+ $this->exampleContactService = $this->createMock(ExampleContactService::class);
+ $this->exampleEventService = $this->createMock(ExampleEventService::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
+
$this->userEventsListener = new UserEventsListener(
$this->userManager,
$this->syncService,
$this->calDavBackend,
$this->cardDavBackend,
$this->defaults,
- $this->defaultContactService,
+ $this->exampleContactService,
+ $this->exampleEventService,
+ $this->logger,
);
}
public function test(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())->method('getUID')->willReturn('newUser');
$this->defaults->expects($this->once())->method('getColorPrimary')->willReturn('#745bca');
@@ -65,7 +72,13 @@ class UserEventsListenerTest extends TestCase {
'{DAV:}displayname' => 'Personal',
'{http://apple.com/ns/ical/}calendar-color' => '#745bca',
'components' => 'VEVENT'
- ]);
+ ])
+ ->willReturn(1000);
+ $this->calDavBackend->expects(self::never())
+ ->method('getCalendarsForUser');
+ $this->exampleEventService->expects(self::once())
+ ->method('createExampleEvent')
+ ->with(1000);
$this->cardDavBackend->expects($this->once())->method('getAddressBooksForUserCount')->willReturn(0);
$this->cardDavBackend->expects($this->once())->method('createAddressBook')->with(
@@ -76,13 +89,15 @@ class UserEventsListenerTest extends TestCase {
}
public function testWithExisting(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())->method('getUID')->willReturn('newUser');
$this->calDavBackend->expects($this->once())->method('getCalendarsForUserCount')->willReturn(1);
$this->calDavBackend->expects($this->never())->method('createCalendar');
+ $this->calDavBackend->expects(self::never())
+ ->method('createCalendar');
+ $this->exampleEventService->expects(self::never())
+ ->method('createExampleEvent');
$this->cardDavBackend->expects($this->once())->method('getAddressBooksForUserCount')->willReturn(1);
$this->cardDavBackend->expects($this->never())->method('createAddressBook');
@@ -91,9 +106,7 @@ class UserEventsListenerTest extends TestCase {
}
public function testWithBirthdayCalendar(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())->method('getUID')->willReturn('newUser');
$this->defaults->expects($this->once())->method('getColorPrimary')->willReturn('#745bca');
@@ -116,9 +129,7 @@ class UserEventsListenerTest extends TestCase {
}
public function testDeleteCalendar(): void {
- $user = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())->method('getUID')->willReturn('newUser');
$this->syncService->expects($this->once())
diff --git a/apps/dav/tests/unit/DAV/Sharing/BackendTest.php b/apps/dav/tests/unit/DAV/Sharing/BackendTest.php
index 344d57d1808..556a623a73f 100644
--- a/apps/dav/tests/unit/DAV/Sharing/BackendTest.php
+++ b/apps/dav/tests/unit/DAV/Sharing/BackendTest.php
@@ -24,14 +24,14 @@ use Test\TestCase;
class BackendTest extends TestCase {
- private IDBConnection|MockObject $db;
- private IUserManager|MockObject $userManager;
- private IGroupManager|MockObject $groupManager;
- private MockObject|Principal $principalBackend;
- private MockObject|ICache $shareCache;
- private LoggerInterface|MockObject $logger;
- private MockObject|ICacheFactory $cacheFactory;
- private Service|MockObject $calendarService;
+ private IDBConnection&MockObject $db;
+ private IUserManager&MockObject $userManager;
+ private IGroupManager&MockObject $groupManager;
+ private Principal&MockObject $principalBackend;
+ private ICache&MockObject $shareCache;
+ private LoggerInterface&MockObject $logger;
+ private ICacheFactory&MockObject $cacheFactory;
+ private Service&MockObject $calendarService;
private CalendarSharingBackend $backend;
protected function setUp(): void {
@@ -214,10 +214,7 @@ class BackendTest extends TestCase {
'getResourceId' => 42,
]);
$remove = [
- [
- 'href' => 'principal:principals/users/bob',
- 'readOnly' => true,
- ]
+ 'principal:principals/users/bob',
];
$principal = 'principals/users/bob';
@@ -229,9 +226,6 @@ class BackendTest extends TestCase {
$this->calendarService->expects(self::once())
->method('deleteShare')
->with($shareable->getResourceId(), $principal);
- $this->calendarService->expects(self::once())
- ->method('hasGroupShare')
- ->willReturn(false);
$this->calendarService->expects(self::never())
->method('unshare');
@@ -244,10 +238,7 @@ class BackendTest extends TestCase {
'getResourceId' => 42,
]);
$remove = [
- [
- 'href' => 'principal:principals/users/bob',
- 'readOnly' => true,
- ]
+ 'principal:principals/users/bob',
];
$oldShares = [
[
@@ -269,13 +260,8 @@ class BackendTest extends TestCase {
$this->calendarService->expects(self::once())
->method('deleteShare')
->with($shareable->getResourceId(), 'principals/users/bob');
- $this->calendarService->expects(self::once())
- ->method('hasGroupShare')
- ->with($oldShares)
- ->willReturn(true);
- $this->calendarService->expects(self::once())
- ->method('unshare')
- ->with($shareable->getResourceId(), 'principals/users/bob');
+ $this->calendarService->expects(self::never())
+ ->method('unshare');
$this->backend->updateShares($shareable, [], $remove, $oldShares);
}
diff --git a/apps/dav/tests/unit/DAV/Sharing/PluginTest.php b/apps/dav/tests/unit/DAV/Sharing/PluginTest.php
index 9c6950f19e8..7a88f7cc5dd 100644
--- a/apps/dav/tests/unit/DAV/Sharing/PluginTest.php
+++ b/apps/dav/tests/unit/DAV/Sharing/PluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,6 +13,7 @@ use OCA\DAV\DAV\Sharing\IShareable;
use OCA\DAV\DAV\Sharing\Plugin;
use OCP\IConfig;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Server;
use Sabre\DAV\SimpleCollection;
use Sabre\HTTP\Request;
@@ -19,32 +21,24 @@ use Sabre\HTTP\Response;
use Test\TestCase;
class PluginTest extends TestCase {
-
- /** @var Plugin */
- private $plugin;
- /** @var Server */
- private $server;
- /** @var IShareable | \PHPUnit\Framework\MockObject\MockObject */
- private $book;
+ private Plugin $plugin;
+ private Server $server;
+ private IShareable&MockObject $book;
protected function setUp(): void {
parent::setUp();
- /** @var Auth | \PHPUnit\Framework\MockObject\MockObject $authBackend */
- $authBackend = $this->getMockBuilder(Auth::class)->disableOriginalConstructor()->getMock();
+ $authBackend = $this->createMock(Auth::class);
$authBackend->method('isDavAuthenticated')->willReturn(true);
- /** @var IRequest $request */
- $request = $this->getMockBuilder(IRequest::class)->disableOriginalConstructor()->getMock();
+ $request = $this->createMock(IRequest::class);
$config = $this->createMock(IConfig::class);
$this->plugin = new Plugin($authBackend, $request, $config);
$root = new SimpleCollection('root');
$this->server = new \Sabre\DAV\Server($root);
/** @var SimpleCollection $node */
- $this->book = $this->getMockBuilder(IShareable::class)->
- disableOriginalConstructor()->
- getMock();
+ $this->book = $this->createMock(IShareable::class);
$this->book->method('getName')->willReturn('addressbook1.vcf');
$root->addChild($this->book);
$this->plugin->initialize($this->server);
diff --git a/apps/dav/tests/unit/DAV/Sharing/SharingServiceTest.php b/apps/dav/tests/unit/DAV/Sharing/SharingServiceTest.php
deleted file mode 100644
index fad077eeda3..00000000000
--- a/apps/dav/tests/unit/DAV/Sharing/SharingServiceTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-declare(strict_types=1);
-/**
- * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-namespace OCA\DAV\Tests\unit\DAV\Sharing;
-
-use OCA\DAV\CalDAV\Sharing\Service;
-use OCA\DAV\DAV\Sharing\SharingMapper;
-use OCA\DAV\DAV\Sharing\SharingService;
-use Test\TestCase;
-
-class SharingServiceTest extends TestCase {
-
- private SharingService $service;
-
- protected function setUp(): void {
- parent::setUp();
- $this->service = new Service($this->createMock(SharingMapper::class));
- }
-
- public function testHasGroupShare(): void {
- $oldShares = [
- [
- 'href' => 'principal:principals/groups/bob',
- 'commonName' => 'bob',
- 'status' => 1,
- 'readOnly' => true,
- '{http://owncloud.org/ns}principal' => 'principals/groups/bob',
- '{http://owncloud.org/ns}group-share' => true,
- ],
- [
- 'href' => 'principal:principals/users/bob',
- 'commonName' => 'bob',
- 'status' => 1,
- 'readOnly' => true,
- '{http://owncloud.org/ns}principal' => 'principals/users/bob',
- '{http://owncloud.org/ns}group-share' => false,
- ]
- ];
-
- $this->assertTrue($this->service->hasGroupShare($oldShares));
-
- $oldShares = [
- [
- 'href' => 'principal:principals/users/bob',
- 'commonName' => 'bob',
- 'status' => 1,
- 'readOnly' => true,
- '{http://owncloud.org/ns}principal' => 'principals/users/bob',
- '{http://owncloud.org/ns}group-share' => false,
- ]
- ];
- $this->assertFalse($this->service->hasGroupShare($oldShares));
- }
-}
diff --git a/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php b/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php
index 32916804080..127de1ede0a 100644
--- a/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php
+++ b/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,22 +9,21 @@
namespace OCA\DAV\Tests\unit\DAV;
use OCA\DAV\DAV\SystemPrincipalBackend;
+use Sabre\DAV\Exception;
use Test\TestCase;
class SystemPrincipalBackendTest extends TestCase {
/**
* @dataProvider providesPrefix
- * @param $expected
- * @param $prefix
*/
- public function testGetPrincipalsByPrefix($expected, $prefix): void {
+ public function testGetPrincipalsByPrefix(array $expected, string $prefix): void {
$backend = new SystemPrincipalBackend();
$result = $backend->getPrincipalsByPrefix($prefix);
$this->assertEquals($expected, $result);
}
- public function providesPrefix() {
+ public static function providesPrefix(): array {
return [
[[], ''],
[[[
@@ -40,16 +40,14 @@ class SystemPrincipalBackendTest extends TestCase {
/**
* @dataProvider providesPath
- * @param $expected
- * @param $path
*/
- public function testGetPrincipalByPath($expected, $path): void {
+ public function testGetPrincipalByPath(?array $expected, string $path): void {
$backend = new SystemPrincipalBackend();
$result = $backend->getPrincipalByPath($path);
$this->assertEquals($expected, $result);
}
- public function providesPath() {
+ public static function providesPath(): array {
return [
[null, ''],
[null, 'principals'],
@@ -63,28 +61,22 @@ class SystemPrincipalBackendTest extends TestCase {
/**
* @dataProvider providesPrincipalForGetGroupMemberSet
- *
- * @param string $principal
- * @throws \Sabre\DAV\Exception
*/
- public function testGetGroupMemberSetExceptional($principal): void {
- $this->expectException(\Sabre\DAV\Exception::class);
+ public function testGetGroupMemberSetExceptional(?string $principal): void {
+ $this->expectException(Exception::class);
$this->expectExceptionMessage('Principal not found');
$backend = new SystemPrincipalBackend();
$backend->getGroupMemberSet($principal);
}
- public function providesPrincipalForGetGroupMemberSet() {
+ public static function providesPrincipalForGetGroupMemberSet(): array {
return [
[null],
['principals/system'],
];
}
- /**
- * @throws \Sabre\DAV\Exception
- */
public function testGetGroupMemberSet(): void {
$backend = new SystemPrincipalBackend();
$result = $backend->getGroupMemberSet('principals/system/system');
@@ -93,27 +85,21 @@ class SystemPrincipalBackendTest extends TestCase {
/**
* @dataProvider providesPrincipalForGetGroupMembership
- *
- * @param string $principal
- * @throws \Sabre\DAV\Exception
*/
- public function testGetGroupMembershipExceptional($principal): void {
- $this->expectException(\Sabre\DAV\Exception::class);
+ public function testGetGroupMembershipExceptional(string $principal): void {
+ $this->expectException(Exception::class);
$this->expectExceptionMessage('Principal not found');
$backend = new SystemPrincipalBackend();
$backend->getGroupMembership($principal);
}
- public function providesPrincipalForGetGroupMembership() {
+ public static function providesPrincipalForGetGroupMembership(): array {
return [
['principals/system/a'],
];
}
- /**
- * @throws \Sabre\DAV\Exception
- */
public function testGetGroupMembership(): void {
$backend = new SystemPrincipalBackend();
$result = $backend->getGroupMembership('principals/system/system');
diff --git a/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php b/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php
index 7a4828dd2de..9227d34b30f 100644
--- a/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php
+++ b/apps/dav/tests/unit/DAV/ViewOnlyPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2019 ownCloud GmbH
@@ -20,30 +21,29 @@ use OCP\Files\Storage\IStorage;
use OCP\IUser;
use OCP\Share\IAttributes;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Server;
use Sabre\DAV\Tree;
use Sabre\HTTP\RequestInterface;
use Test\TestCase;
class ViewOnlyPluginTest extends TestCase {
-
+ private Tree&MockObject $tree;
+ private RequestInterface&MockObject $request;
+ private Folder&MockObject $userFolder;
private ViewOnlyPlugin $plugin;
- /** @var Tree | \PHPUnit\Framework\MockObject\MockObject */
- private $tree;
- /** @var RequestInterface | \PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var Folder | \PHPUnit\Framework\MockObject\MockObject */
- private $userFolder;
public function setUp(): void {
+ parent::setUp();
+
$this->userFolder = $this->createMock(Folder::class);
- $this->plugin = new ViewOnlyPlugin(
- $this->userFolder,
- );
$this->request = $this->createMock(RequestInterface::class);
$this->tree = $this->createMock(Tree::class);
-
$server = $this->createMock(Server::class);
+
+ $this->plugin = new ViewOnlyPlugin(
+ $this->userFolder,
+ );
$server->tree = $this->tree;
$this->plugin->initialize($server);
@@ -71,7 +71,7 @@ class ViewOnlyPluginTest extends TestCase {
$this->assertTrue($this->plugin->checkViewOnly($this->request));
}
- public function providesDataForCanGet(): array {
+ public static function providesDataForCanGet(): array {
return [
// has attribute permissions-download enabled - can get file
[false, true, true],
diff --git a/apps/dav/tests/unit/Direct/DirectFileTest.php b/apps/dav/tests/unit/Direct/DirectFileTest.php
index 07d19807ef0..f6f0f49fa8c 100644
--- a/apps/dav/tests/unit/Direct/DirectFileTest.php
+++ b/apps/dav/tests/unit/Direct/DirectFileTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Direct;
+namespace OCA\DAV\Tests\unit\Direct;
use OCA\DAV\Db\Direct;
use OCA\DAV\Direct\DirectFile;
@@ -14,28 +14,17 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\Forbidden;
use Test\TestCase;
class DirectFileTest extends TestCase {
-
- /** @var Direct */
- private $direct;
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var Folder|\PHPUnit\Framework\MockObject\MockObject */
- private $userFolder;
-
- /** @var File|\PHPUnit\Framework\MockObject\MockObject */
- private $file;
-
- /** @var DirectFile */
- private $directFile;
-
- /** @var IEventDispatcher */
- private $eventDispatcher;
+ private Direct $direct;
+ private IRootFolder&MockObject $rootFolder;
+ private Folder&MockObject $userFolder;
+ private File&MockObject $file;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private DirectFile $directFile;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Direct/DirectHomeTest.php b/apps/dav/tests/unit/Direct/DirectHomeTest.php
index 1134f0cd3af..94c82c2b7c5 100644
--- a/apps/dav/tests/unit/Direct/DirectHomeTest.php
+++ b/apps/dav/tests/unit/Direct/DirectHomeTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Direct;
+namespace OCA\DAV\Tests\unit\Direct;
use OCA\DAV\Db\Direct;
use OCA\DAV\Db\DirectMapper;
@@ -18,33 +18,20 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IRootFolder;
use OCP\IRequest;
use OCP\Security\Bruteforce\IThrottler;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\Exception\MethodNotAllowed;
use Sabre\DAV\Exception\NotFound;
use Test\TestCase;
class DirectHomeTest extends TestCase {
-
- /** @var DirectMapper|\PHPUnit\Framework\MockObject\MockObject */
- private $directMapper;
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var IThrottler|\PHPUnit\Framework\MockObject\MockObject */
- private $throttler;
-
- /** @var IRequest */
- private $request;
-
- /** @var DirectHome */
- private $directHome;
-
- /** @var IEventDispatcher */
- private $eventDispatcher;
+ private DirectMapper&MockObject $directMapper;
+ private IRootFolder&MockObject $rootFolder;
+ private ITimeFactory&MockObject $timeFactory;
+ private IThrottler&MockObject $throttler;
+ private IRequest&MockObject $request;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private DirectHome $directHome;
protected function setUp(): void {
parent::setUp();
@@ -160,7 +147,7 @@ class DirectHomeTest extends TestCase {
'1.2.3.4'
);
$this->throttler->expects($this->once())
- ->method('sleepDelay')
+ ->method('sleepDelayOrThrowOnMax')
->with(
'1.2.3.4',
'directlink'
diff --git a/apps/dav/tests/unit/Files/FileSearchBackendTest.php b/apps/dav/tests/unit/Files/FileSearchBackendTest.php
index aaa3d8c147e..c6d6f85347b 100644
--- a/apps/dav/tests/unit/Files/FileSearchBackendTest.php
+++ b/apps/dav/tests/unit/Files/FileSearchBackendTest.php
@@ -1,10 +1,12 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Files;
+namespace OCA\DAV\Tests\unit\Files;
use OC\Files\Search\SearchComparison;
use OC\Files\Search\SearchQuery;
@@ -13,6 +15,7 @@ use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\File;
use OCA\DAV\Connector\Sabre\FilesPlugin;
use OCA\DAV\Connector\Sabre\ObjectTree;
+use OCA\DAV\Connector\Sabre\Server;
use OCA\DAV\Files\FileSearchBackend;
use OCP\Files\FileInfo;
use OCP\Files\Folder;
@@ -23,42 +26,27 @@ use OCP\Files\Search\ISearchQuery;
use OCP\FilesMetadata\IFilesMetadataManager;
use OCP\IUser;
use OCP\Share\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
use SearchDAV\Backend\SearchPropertyDefinition;
use SearchDAV\Query\Limit;
+use SearchDAV\Query\Literal;
use SearchDAV\Query\Operator;
use SearchDAV\Query\Query;
+use SearchDAV\Query\Scope;
use Test\TestCase;
class FileSearchBackendTest extends TestCase {
- /** @var ObjectTree|\PHPUnit\Framework\MockObject\MockObject */
- private $tree;
-
- /** @var IUser */
- private $user;
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
-
- /** @var View|\PHPUnit\Framework\MockObject\MockObject */
- private $view;
-
- /** @var Folder|\PHPUnit\Framework\MockObject\MockObject */
- private $searchFolder;
-
- /** @var FileSearchBackend */
- private $search;
-
- /** @var Directory|\PHPUnit\Framework\MockObject\MockObject */
- private $davFolder;
+ private ObjectTree&MockObject $tree;
+ private Server&MockObject $server;
+ private IUser&MockObject $user;
+ private IRootFolder&MockObject $rootFolder;
+ private IManager&MockObject $shareManager;
+ private View&MockObject $view;
+ private Folder&MockObject $searchFolder;
+ private Directory&MockObject $davFolder;
+ private FileSearchBackend $search;
protected function setUp(): void {
- if (PHP_VERSION_ID >= 80400) {
- $this->markTestSkipped('SearchDAV is not yet PHP 8.4 compatible');
- }
-
parent::setUp();
$this->user = $this->createMock(IUser::class);
@@ -66,11 +54,14 @@ class FileSearchBackendTest extends TestCase {
->method('getUID')
->willReturn('test');
- $this->tree = $this->getMockBuilder(ObjectTree::class)
- ->disableOriginalConstructor()
- ->getMock();
-
+ $this->tree = $this->createMock(ObjectTree::class);
+ $this->server = $this->createMock(Server::class);
$this->view = $this->createMock(View::class);
+ $this->rootFolder = $this->createMock(IRootFolder::class);
+ $this->shareManager = $this->createMock(IManager::class);
+ $this->searchFolder = $this->createMock(Folder::class);
+ $fileInfo = $this->createMock(FileInfo::class);
+ $this->davFolder = $this->createMock(Directory::class);
$this->view->expects($this->any())
->method('getRoot')
@@ -80,16 +71,6 @@ class FileSearchBackendTest extends TestCase {
->method('getRelativePath')
->willReturnArgument(0);
- $this->rootFolder = $this->createMock(IRootFolder::class);
-
- $this->shareManager = $this->createMock(IManager::class);
-
- $this->searchFolder = $this->createMock(Folder::class);
-
- $fileInfo = $this->createMock(FileInfo::class);
-
- $this->davFolder = $this->createMock(Directory::class);
-
$this->davFolder->expects($this->any())
->method('getFileInfo')
->willReturn($fileInfo);
@@ -100,7 +81,7 @@ class FileSearchBackendTest extends TestCase {
$filesMetadataManager = $this->createMock(IFilesMetadataManager::class);
- $this->search = new FileSearchBackend($this->tree, $this->user, $this->rootFolder, $this->shareManager, $this->view, $filesMetadataManager);
+ $this->search = new FileSearchBackend($this->server, $this->tree, $this->user, $this->rootFolder, $this->shareManager, $this->view, $filesMetadataManager);
}
public function testSearchFilename(): void {
@@ -263,8 +244,8 @@ class FileSearchBackendTest extends TestCase {
$this->search->search($query);
}
- private function getBasicQuery($type, $property, $value = null) {
- $scope = new \SearchDAV\Query\Scope('/', 'infinite');
+ private function getBasicQuery(string $type, string $property, int|string|null $value = null) {
+ $scope = new Scope('/', 'infinite');
$scope->path = '/';
$from = [$scope];
$orderBy = [];
@@ -272,12 +253,12 @@ class FileSearchBackendTest extends TestCase {
if (is_null($value)) {
$where = new Operator(
$type,
- [new \SearchDAV\Query\Literal($property)]
+ [new Literal($property)]
);
} else {
$where = new Operator(
$type,
- [new SearchPropertyDefinition($property, true, true, true), new \SearchDAV\Query\Literal($value)]
+ [new SearchPropertyDefinition($property, true, true, true), new Literal($value)]
);
}
$limit = new Limit();
@@ -350,11 +331,11 @@ class FileSearchBackendTest extends TestCase {
[
new Operator(
Operator::OPERATION_EQUAL,
- [new SearchPropertyDefinition('{DAV:}getcontenttype', true, true, true), new \SearchDAV\Query\Literal('image/png')]
+ [new SearchPropertyDefinition('{DAV:}getcontenttype', true, true, true), new Literal('image/png')]
),
new Operator(
Operator::OPERATION_EQUAL,
- [new SearchPropertyDefinition(FilesPlugin::OWNER_ID_PROPERTYNAME, true, true, true), new \SearchDAV\Query\Literal($this->user->getUID())]
+ [new SearchPropertyDefinition(FilesPlugin::OWNER_ID_PROPERTYNAME, true, true, true), new Literal($this->user->getUID())]
),
]
);
@@ -383,7 +364,7 @@ class FileSearchBackendTest extends TestCase {
$innerOperator = new Operator(
Operator::OPERATION_EQUAL,
- [new SearchPropertyDefinition('{DAV:}getcontenttype', true, true, true), new \SearchDAV\Query\Literal('image/png')]
+ [new SearchPropertyDefinition('{DAV:}getcontenttype', true, true, true), new Literal('image/png')]
);
// 5 child operators
$level1Operator = new Operator(
@@ -424,4 +405,17 @@ class FileSearchBackendTest extends TestCase {
$this->expectException(\InvalidArgumentException::class);
$this->search->search($query);
}
+
+ public function testPreloadPropertyFor(): void {
+ $node1 = $this->createMock(File::class);
+ $node2 = $this->createMock(Directory::class);
+ $nodes = [$node1, $node2];
+ $requestProperties = ['{DAV:}getcontenttype', '{DAV:}getlastmodified'];
+
+ $this->server->expects($this->once())
+ ->method('emit')
+ ->with('preloadProperties', [$nodes, $requestProperties]);
+
+ $this->search->preloadPropertyFor($nodes, $requestProperties);
+ }
}
diff --git a/apps/dav/tests/unit/Files/MultipartRequestParserTest.php b/apps/dav/tests/unit/Files/MultipartRequestParserTest.php
index 40880bdca9c..dc0e884f07c 100644
--- a/apps/dav/tests/unit/Files/MultipartRequestParserTest.php
+++ b/apps/dav/tests/unit/Files/MultipartRequestParserTest.php
@@ -1,10 +1,12 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
-namespace OCA\DAV\Tests\unit\DAV;
+namespace OCA\DAV\Tests\unit\Files;
use OCA\DAV\BulkUpload\MultipartRequestParser;
use PHPUnit\Framework\MockObject\MockObject;
@@ -17,10 +19,11 @@ class MultipartRequestParserTest extends TestCase {
protected LoggerInterface&MockObject $logger;
protected function setUp(): void {
+ parent::setUp();
$this->logger = $this->createMock(LoggerInterface::class);
}
- private function getValidBodyObject() {
+ private static function getValidBodyObject(): array {
return [
[
'headers' => [
@@ -99,7 +102,7 @@ class MultipartRequestParserTest extends TestCase {
* - valid file path
*/
public function testValidRequest(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['X-File-MD5']);
$multipartParser = $this->getMultipartParser($bodyObject);
@@ -122,7 +125,7 @@ class MultipartRequestParserTest extends TestCase {
* - valid file path
*/
public function testValidRequestWithMd5(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['OC-Checksum']);
$multipartParser = $this->getMultipartParser($bodyObject);
@@ -140,7 +143,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with invalid hash.
*/
public function testInvalidHash(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$bodyObject['0']['headers']['OC-Checksum'] = 'md5:f2377b4d911f7ec46325fe603c3af03';
unset($bodyObject['0']['headers']['X-File-MD5']);
$multipartParser = $this->getMultipartParser(
@@ -155,7 +158,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with invalid md5 hash.
*/
public function testInvalidMd5Hash(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['OC-Checksum']);
$bodyObject['0']['headers']['X-File-MD5'] = 'f2377b4d911f7ec46325fe603c3af03';
$multipartParser = $this->getMultipartParser(
@@ -170,7 +173,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a null hash headers.
*/
public function testNullHash(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['OC-Checksum']);
unset($bodyObject['0']['headers']['X-File-MD5']);
$multipartParser = $this->getMultipartParser(
@@ -185,7 +188,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a null Content-Length.
*/
public function testNullContentLength(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
unset($bodyObject['0']['headers']['Content-Length']);
$multipartParser = $this->getMultipartParser(
$bodyObject
@@ -199,7 +202,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a lower Content-Length.
*/
public function testLowerContentLength(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$bodyObject['0']['headers']['Content-Length'] = 6;
$multipartParser = $this->getMultipartParser(
$bodyObject
@@ -213,7 +216,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a higher Content-Length.
*/
public function testHigherContentLength(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$bodyObject['0']['headers']['Content-Length'] = 8;
$multipartParser = $this->getMultipartParser(
$bodyObject
@@ -227,7 +230,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with wrong boundary in body.
*/
public function testWrongBoundary(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$multipartParser = $this->getMultipartParser(
$bodyObject,
['Content-Type' => 'multipart/related; boundary=boundary_poiuytreza']
@@ -241,7 +244,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with no boundary in request headers.
*/
public function testNoBoundaryInHeader(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$this->expectExceptionMessage('Error while parsing boundary in Content-Type header.');
$this->getMultipartParser(
$bodyObject,
@@ -253,7 +256,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with no boundary in the request's headers.
*/
public function testNoBoundaryInBody(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$multipartParser = $this->getMultipartParser(
$bodyObject,
['Content-Type' => 'multipart/related; boundary=boundary_azertyuiop'],
@@ -268,7 +271,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a boundary with quotes in the request's headers.
*/
public function testBoundaryWithQuotes(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$multipartParser = $this->getMultipartParser(
$bodyObject,
['Content-Type' => 'multipart/related; boundary="boundary_azertyuiop"'],
@@ -284,7 +287,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a wrong Content-Type in the request's headers.
*/
public function testWrongContentType(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$this->expectExceptionMessage('Content-Type must be multipart/related');
$this->getMultipartParser(
$bodyObject,
@@ -296,7 +299,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a wrong key after the content type in the request's headers.
*/
public function testWrongKeyInContentType(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$this->expectExceptionMessage('Boundary is invalid');
$this->getMultipartParser(
$bodyObject,
@@ -308,7 +311,7 @@ class MultipartRequestParserTest extends TestCase {
* Test with a null Content-Type in the request's headers.
*/
public function testNullContentType(): void {
- $bodyObject = $this->getValidBodyObject();
+ $bodyObject = self::getValidBodyObject();
$this->expectExceptionMessage('Content-Type can not be null');
$this->getMultipartParser(
$bodyObject,
diff --git a/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php b/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php
index 7264119f8c6..1a7ab7179e1 100644
--- a/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php
+++ b/apps/dav/tests/unit/Files/Sharing/FilesDropPluginTest.php
@@ -1,15 +1,19 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Files\Sharing;
+namespace OCA\DAV\Tests\unit\Files\Sharing;
-use OC\Files\View;
use OCA\DAV\Files\Sharing\FilesDropPlugin;
+use OCP\Files\Folder;
+use OCP\Files\NotFoundException;
use OCP\Share\IAttributes;
use OCP\Share\IShare;
-use Sabre\DAV\Exception\MethodNotAllowed;
+use PHPUnit\Framework\MockObject\MockObject;
+use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\Server;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
@@ -17,60 +21,42 @@ use Test\TestCase;
class FilesDropPluginTest extends TestCase {
- /** @var View|\PHPUnit\Framework\MockObject\MockObject */
- private $view;
-
- /** @var IShare|\PHPUnit\Framework\MockObject\MockObject */
- private $share;
-
- /** @var Server|\PHPUnit\Framework\MockObject\MockObject */
- private $server;
-
- /** @var FilesDropPlugin */
- private $plugin;
+ private FilesDropPlugin $plugin;
- /** @var RequestInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
-
- /** @var ResponseInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $response;
+ private Folder&MockObject $node;
+ private IShare&MockObject $share;
+ private Server&MockObject $server;
+ private RequestInterface&MockObject $request;
+ private ResponseInterface&MockObject $response;
protected function setUp(): void {
parent::setUp();
- $this->view = $this->createMock(View::class);
+ $this->node = $this->createMock(Folder::class);
+ $this->node->method('getPath')
+ ->willReturn('/files/token');
+
$this->share = $this->createMock(IShare::class);
+ $this->share->expects(self::any())
+ ->method('getNode')
+ ->willReturn($this->node);
$this->server = $this->createMock(Server::class);
$this->plugin = new FilesDropPlugin();
$this->request = $this->createMock(RequestInterface::class);
$this->response = $this->createMock(ResponseInterface::class);
- $this->response->expects($this->never())
- ->method($this->anything());
-
$attributes = $this->createMock(IAttributes::class);
$this->share->expects($this->any())
->method('getAttributes')
->willReturn($attributes);
- }
-
- public function testInitialize(): void {
- $this->server->expects($this->once())
- ->method('on')
- ->with(
- $this->equalTo('beforeMethod:*'),
- $this->equalTo([$this->plugin, 'beforeMethod']),
- $this->equalTo(999)
- );
- $this->plugin->initialize($this->server);
+ $this->share
+ ->method('getToken')
+ ->willReturn('token');
}
public function testNotEnabled(): void {
- $this->view->expects($this->never())
- ->method($this->anything());
-
$this->request->expects($this->never())
->method($this->anything());
@@ -79,99 +65,194 @@ class FilesDropPluginTest extends TestCase {
public function testValid(): void {
$this->plugin->enable();
- $this->plugin->setView($this->view);
$this->plugin->setShare($this->share);
$this->request->method('getMethod')
->willReturn('PUT');
$this->request->method('getPath')
- ->willReturn('file.txt');
+ ->willReturn('/files/token/file.txt');
$this->request->method('getBaseUrl')
->willReturn('https://example.com');
- $this->view->method('file_exists')
- ->with('/file.txt')
- ->willReturn(false);
+ $this->node->expects(self::once())
+ ->method('getNonExistingName')
+ ->with('file.txt')
+ ->willReturn('file.txt');
$this->request->expects($this->once())
->method('setUrl')
- ->with('https://example.com/file.txt');
+ ->with('https://example.com/files/token/file.txt');
$this->plugin->beforeMethod($this->request, $this->response);
}
public function testFileAlreadyExistsValid(): void {
$this->plugin->enable();
- $this->plugin->setView($this->view);
$this->plugin->setShare($this->share);
$this->request->method('getMethod')
->willReturn('PUT');
$this->request->method('getPath')
- ->willReturn('file.txt');
+ ->willReturn('/files/token/file.txt');
$this->request->method('getBaseUrl')
->willReturn('https://example.com');
- $this->view->method('file_exists')
- ->willReturnCallback(function ($path) {
- if ($path === 'file.txt' || $path === '/file.txt') {
- return true;
- } else {
- return false;
- }
- });
+ $this->node->method('getNonExistingName')
+ ->with('file.txt')
+ ->willReturn('file (2).txt');
$this->request->expects($this->once())
->method('setUrl')
- ->with($this->equalTo('https://example.com/file (2).txt'));
+ ->with($this->equalTo('https://example.com/files/token/file (2).txt'));
$this->plugin->beforeMethod($this->request, $this->response);
}
- public function testNoMKCOL(): void {
+ public function testNoMKCOLWithoutNickname(): void {
$this->plugin->enable();
- $this->plugin->setView($this->view);
$this->plugin->setShare($this->share);
$this->request->method('getMethod')
->willReturn('MKCOL');
- $this->expectException(MethodNotAllowed::class);
+ $this->expectException(BadRequest::class);
+
+ $this->plugin->beforeMethod($this->request, $this->response);
+ }
+
+ public function testMKCOLWithNickname(): void {
+ $this->plugin->enable();
+ $this->plugin->setShare($this->share);
+
+ $this->request->method('getMethod')
+ ->willReturn('MKCOL');
+
+ $this->request->method('hasHeader')
+ ->with('X-NC-Nickname')
+ ->willReturn(true);
+ $this->request->method('getHeader')
+ ->with('X-NC-Nickname')
+ ->willReturn('nickname');
+
+ $this->expectNotToPerformAssertions();
$this->plugin->beforeMethod($this->request, $this->response);
}
- public function testNoSubdirPut(): void {
+ public function testSubdirPut(): void {
$this->plugin->enable();
- $this->plugin->setView($this->view);
$this->plugin->setShare($this->share);
$this->request->method('getMethod')
->willReturn('PUT');
+ $this->request->method('hasHeader')
+ ->with('X-NC-Nickname')
+ ->willReturn(true);
+ $this->request->method('getHeader')
+ ->with('X-NC-Nickname')
+ ->willReturn('nickname');
+
$this->request->method('getPath')
- ->willReturn('folder/file.txt');
+ ->willReturn('/files/token/folder/file.txt');
$this->request->method('getBaseUrl')
->willReturn('https://example.com');
- $this->view->method('file_exists')
- ->willReturnCallback(function ($path) {
- if ($path === 'file.txt' || $path === '/file.txt') {
- return true;
- } else {
- return false;
- }
- });
+ $nodeName = $this->createMock(Folder::class);
+ $nodeFolder = $this->createMock(Folder::class);
+ $nodeFolder->expects(self::once())
+ ->method('getPath')
+ ->willReturn('/files/token/nickname/folder');
+ $nodeFolder->method('getNonExistingName')
+ ->with('file.txt')
+ ->willReturn('file.txt');
+ $nodeName->expects(self::once())
+ ->method('get')
+ ->with('folder')
+ ->willThrowException(new NotFoundException());
+ $nodeName->expects(self::once())
+ ->method('newFolder')
+ ->with('folder')
+ ->willReturn($nodeFolder);
+
+ $this->node->expects(self::once())
+ ->method('get')
+ ->willThrowException(new NotFoundException());
+ $this->node->expects(self::once())
+ ->method('newFolder')
+ ->with('nickname')
+ ->willReturn($nodeName);
$this->request->expects($this->once())
->method('setUrl')
- ->with($this->equalTo('https://example.com/file (2).txt'));
+ ->with($this->equalTo('https://example.com/files/token/nickname/folder/file.txt'));
$this->plugin->beforeMethod($this->request, $this->response);
}
+
+ public function testRecursiveFolderCreation(): void {
+ $this->plugin->enable();
+ $this->plugin->setShare($this->share);
+
+ $this->request->method('getMethod')
+ ->willReturn('PUT');
+ $this->request->method('hasHeader')
+ ->with('X-NC-Nickname')
+ ->willReturn(true);
+ $this->request->method('getHeader')
+ ->with('X-NC-Nickname')
+ ->willReturn('nickname');
+
+ $this->request->method('getPath')
+ ->willReturn('/files/token/folder/subfolder/file.txt');
+ $this->request->method('getBaseUrl')
+ ->willReturn('https://example.com');
+
+ $this->request->expects($this->once())
+ ->method('setUrl')
+ ->with($this->equalTo('https://example.com/files/token/nickname/folder/subfolder/file.txt'));
+
+ $subfolder = $this->createMock(Folder::class);
+ $subfolder->expects(self::once())
+ ->method('getNonExistingName')
+ ->with('file.txt')
+ ->willReturn('file.txt');
+ $subfolder->expects(self::once())
+ ->method('getPath')
+ ->willReturn('/files/token/nickname/folder/subfolder');
+
+ $folder = $this->createMock(Folder::class);
+ $folder->expects(self::once())
+ ->method('get')
+ ->with('subfolder')
+ ->willReturn($subfolder);
+
+ $nickname = $this->createMock(Folder::class);
+ $nickname->expects(self::once())
+ ->method('get')
+ ->with('folder')
+ ->willReturn($folder);
+
+ $this->node->method('get')
+ ->with('nickname')
+ ->willReturn($nickname);
+ $this->plugin->beforeMethod($this->request, $this->response);
+ }
+
+ public function testOnMkcol(): void {
+ $this->plugin->enable();
+ $this->plugin->setShare($this->share);
+
+ $this->response->expects($this->once())
+ ->method('setStatus')
+ ->with(201);
+
+ $response = $this->plugin->onMkcol($this->request, $this->response);
+ $this->assertFalse($response);
+ }
}
diff --git a/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php b/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php
index 78769c7fb47..7bd7bdc2167 100644
--- a/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php
+++ b/apps/dav/tests/unit/Listener/ActivityUpdaterListenerTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Listener;
+namespace OCA\DAV\Tests\unit\Listener;
use OCA\DAV\CalDAV\Activity\Backend as ActivityBackend;
use OCA\DAV\CalDAV\Activity\Provider\Event;
@@ -20,10 +20,8 @@ use Test\TestCase;
class ActivityUpdaterListenerTest extends TestCase {
- /** @var ActivityBackend|MockObject */
- private $activityBackend;
- /** @var LoggerInterface|MockObject */
- private $logger;
+ private ActivityBackend&MockObject $activityBackend;
+ private LoggerInterface&MockObject $logger;
private ActivityUpdaterListener $listener;
protected function setUp(): void {
@@ -55,7 +53,7 @@ class ActivityUpdaterListenerTest extends TestCase {
$this->listener->handle($event);
}
- public function dataForTestHandleCalendarObjectDeletedEvent(): array {
+ public static function dataForTestHandleCalendarObjectDeletedEvent(): array {
return [
[1, [], [], [], true],
[1, [], [], ['{' . SharingPlugin::NS_NEXTCLOUD . '}deleted-at' => 120], false],
@@ -77,7 +75,7 @@ class ActivityUpdaterListenerTest extends TestCase {
$this->listener->handle($event);
}
- public function dataForTestHandleCalendarDeletedEvent(): array {
+ public static function dataForTestHandleCalendarDeletedEvent(): array {
return [
[1, [], [], true],
[1, ['{' . SharingPlugin::NS_NEXTCLOUD . '}deleted-at' => 120], [], false],
diff --git a/apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php b/apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php
index 96d8514da41..dc3dce8a62f 100644
--- a/apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php
+++ b/apps/dav/tests/unit/Listener/CalendarContactInteractionListenerTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Listener;
+namespace OCA\DAV\Tests\unit\Listener;
use OCA\DAV\Connector\Sabre\Principal;
use OCA\DAV\Events\CalendarShareUpdatedEvent;
@@ -23,24 +23,12 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class CalendarContactInteractionListenerTest extends TestCase {
-
- /** @var IEventDispatcher|MockObject */
- private $eventDispatcher;
-
- /** @var IUserSession|MockObject */
- private $userSession;
-
- /** @var Principal|MockObject */
- private $principalConnector;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
-
- /** @var IMailer|MockObject */
- private $mailer;
-
- /** @var CalendarContactInteractionListener */
- private $listener;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private IUserSession&MockObject $userSession;
+ private Principal&MockObject $principalConnector;
+ private LoggerInterface&MockObject $logger;
+ private IMailer&MockObject $mailer;
+ private CalendarContactInteractionListener $listener;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php b/apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php
index a21d3a5e928..971d113b742 100644
--- a/apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php
+++ b/apps/dav/tests/unit/Listener/OutOfOfficeListenerTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Listener;
+namespace OCA\DAV\Tests\unit\Listener;
use DateTimeImmutable;
use InvalidArgumentException;
@@ -27,7 +27,6 @@ use OCP\User\Events\OutOfOfficeChangedEvent;
use OCP\User\Events\OutOfOfficeClearedEvent;
use OCP\User\Events\OutOfOfficeScheduledEvent;
use OCP\User\IOutOfOfficeData;
-use OCP\UserStatus\IManager;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Exception\NotFound;
@@ -42,11 +41,10 @@ use Test\TestCase;
*/
class OutOfOfficeListenerTest extends TestCase {
- private ServerFactory|MockObject $serverFactory;
- private IConfig|MockObject $appConfig;
- private LoggerInterface|MockObject $loggerInterface;
- private MockObject|TimezoneService $timezoneService;
- private IManager|MockObject $manager;
+ private ServerFactory&MockObject $serverFactory;
+ private IConfig&MockObject $appConfig;
+ private LoggerInterface&MockObject $loggerInterface;
+ private TimezoneService&MockObject $timezoneService;
private OutOfOfficeListener $listener;
protected function setUp(): void {
@@ -56,14 +54,12 @@ class OutOfOfficeListenerTest extends TestCase {
$this->appConfig = $this->createMock(IConfig::class);
$this->timezoneService = $this->createMock(TimezoneService::class);
$this->loggerInterface = $this->createMock(LoggerInterface::class);
- $this->manager = $this->createMock(IManager::class);
$this->listener = new OutOfOfficeListener(
$this->serverFactory,
$this->appConfig,
$this->timezoneService,
$this->loggerInterface,
- $this->manager
);
}
@@ -453,8 +449,6 @@ class OutOfOfficeListenerTest extends TestCase {
->method('getPlugin')
->with('caldav')
->willReturn($caldavPlugin);
- $this->manager->expects(self::never())
- ->method('revertUserStatus');
$event = new OutOfOfficeClearedEvent($data);
$this->listener->handle($event);
@@ -483,8 +477,6 @@ class OutOfOfficeListenerTest extends TestCase {
->method('getNodeForPath')
->with('/home/calendar')
->willThrowException(new NotFound('nope'));
- $this->manager->expects(self::never())
- ->method('revertUserStatus');
$event = new OutOfOfficeClearedEvent($data);
$this->listener->handle($event);
@@ -522,8 +514,6 @@ class OutOfOfficeListenerTest extends TestCase {
->method('getChild')
->with('personal-1')
->willThrowException(new NotFound('nope'));
- $this->manager->expects(self::never())
- ->method('revertUserStatus');
$event = new OutOfOfficeClearedEvent($data);
$this->listener->handle($event);
@@ -565,8 +555,6 @@ class OutOfOfficeListenerTest extends TestCase {
$calendar->expects(self::once())
->method('getChild')
->willThrowException(new NotFound());
- $this->manager->expects(self::never())
- ->method('revertUserStatus');
$event = new OutOfOfficeClearedEvent($data);
$this->listener->handle($event);
diff --git a/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php b/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php
index be2c64c47a4..1852d2709c1 100644
--- a/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php
+++ b/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php
@@ -1,15 +1,18 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Migration;
+namespace OCA\DAV\Tests\unit\DAV\Migration;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\Migration\CalDAVRemoveEmptyValue;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Sabre\VObject\InvalidDataException;
use Test\TestCase;
@@ -21,18 +24,10 @@ use Test\TestCase;
* @group DB
*/
class CalDAVRemoveEmptyValueTest extends TestCase {
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logger;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var IOutput|\PHPUnit\Framework\MockObject\MockObject */
- private $output;
-
- /** @var string */
- private $invalid = 'BEGIN:VCALENDAR
+ private LoggerInterface&MockObject $logger;
+ private CalDavBackend&MockObject $backend;
+ private IOutput&MockObject $output;
+ private string $invalid = 'BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.11.2//EN
CALSCALE:GREGORIAN
@@ -52,8 +47,7 @@ CREATED;VALUE=:20151214T091032Z
END:VEVENT
END:VCALENDAR';
- /** @var string */
- private $valid = 'BEGIN:VCALENDAR
+ private string $valid = 'BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//Mac OS X 10.11.2//EN
CALSCALE:GREGORIAN
@@ -82,14 +76,14 @@ END:VCALENDAR';
}
public function testRunAllValid(): void {
- /** @var CalDAVRemoveEmptyValue|\PHPUnit\Framework\MockObject\MockObject $step */
+ /** @var CalDAVRemoveEmptyValue&MockObject $step */
$step = $this->getMockBuilder(CalDAVRemoveEmptyValue::class)
->setConstructorArgs([
Server::get(IDBConnection::class),
$this->backend,
$this->logger
])
- ->setMethods(['getInvalidObjects'])
+ ->onlyMethods(['getInvalidObjects'])
->getMock();
$step->expects($this->once())
@@ -106,14 +100,14 @@ END:VCALENDAR';
}
public function testRunInvalid(): void {
- /** @var CalDAVRemoveEmptyValue|\PHPUnit\Framework\MockObject\MockObject $step */
+ /** @var CalDAVRemoveEmptyValue&MockObject $step */
$step = $this->getMockBuilder(CalDAVRemoveEmptyValue::class)
->setConstructorArgs([
Server::get(IDBConnection::class),
$this->backend,
$this->logger
])
- ->setMethods(['getInvalidObjects'])
+ ->onlyMethods(['getInvalidObjects'])
->getMock();
$step->expects($this->once())
@@ -149,14 +143,14 @@ END:VCALENDAR';
}
public function testRunValid(): void {
- /** @var CalDAVRemoveEmptyValue|\PHPUnit\Framework\MockObject\MockObject $step */
+ /** @var CalDAVRemoveEmptyValue&MockObject $step */
$step = $this->getMockBuilder(CalDAVRemoveEmptyValue::class)
->setConstructorArgs([
Server::get(IDBConnection::class),
$this->backend,
$this->logger
])
- ->setMethods(['getInvalidObjects'])
+ ->onlyMethods(['getInvalidObjects'])
->getMock();
$step->expects($this->once())
@@ -191,14 +185,14 @@ END:VCALENDAR';
}
public function testRunStillInvalid(): void {
- /** @var CalDAVRemoveEmptyValue|\PHPUnit\Framework\MockObject\MockObject $step */
+ /** @var CalDAVRemoveEmptyValue&MockObject $step */
$step = $this->getMockBuilder(CalDAVRemoveEmptyValue::class)
->setConstructorArgs([
Server::get(IDBConnection::class),
$this->backend,
$this->logger
])
- ->setMethods(['getInvalidObjects'])
+ ->onlyMethods(['getInvalidObjects'])
->getMock();
$step->expects($this->once())
diff --git a/apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php b/apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php
index bbecd0607b4..667d2e39d3a 100644
--- a/apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php
+++ b/apps/dav/tests/unit/Migration/CreateSystemAddressBookStepTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Migration;
+namespace OCA\DAV\Tests\unit\Migration;
use OCA\DAV\CardDAV\SyncService;
use OCA\DAV\Migration\CreateSystemAddressBookStep;
@@ -17,7 +17,7 @@ use PHPUnit\Framework\TestCase;
class CreateSystemAddressBookStepTest extends TestCase {
- private SyncService|MockObject $syncService;
+ private SyncService&MockObject $syncService;
private CreateSystemAddressBookStep $step;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php b/apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php
index bf4c60b3cf1..73d9c1efd29 100644
--- a/apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php
+++ b/apps/dav/tests/unit/Migration/RefreshWebcalJobRegistrarTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,17 +14,13 @@ use OCP\DB\IResult;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\Migration\IOutput;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RefreshWebcalJobRegistrarTest extends TestCase {
- /** @var IDBConnection | \PHPUnit\Framework\MockObject\MockObject */
- private $db;
-
- /** @var IJobList | \PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var RefreshWebcalJobRegistrar */
- private $migration;
+ private IDBConnection&MockObject $db;
+ private IJobList&MockObject $jobList;
+ private RefreshWebcalJobRegistrar $migration;
protected function setUp(): void {
parent::setUp();
@@ -80,35 +78,37 @@ class RefreshWebcalJobRegistrarTest extends TestCase {
$this->jobList->expects($this->exactly(3))
->method('has')
- ->withConsecutive(
+ ->willReturnMap([
[RefreshWebcalJob::class, [
'principaluri' => 'foo1',
'uri' => 'bar1',
- ]],
+ ], false],
[RefreshWebcalJob::class, [
'principaluri' => 'foo2',
'uri' => 'bar2',
- ]],
+ ], true ],
[RefreshWebcalJob::class, [
'principaluri' => 'foo3',
'uri' => 'bar3',
- ]])
- ->willReturnOnConsecutiveCalls(
- false,
- true,
- false,
- );
+ ], false],
+ ]);
+
+ $calls = [
+ [RefreshWebcalJob::class, [
+ 'principaluri' => 'foo1',
+ 'uri' => 'bar1',
+ ]],
+ [RefreshWebcalJob::class, [
+ 'principaluri' => 'foo3',
+ 'uri' => 'bar3',
+ ]]
+ ];
$this->jobList->expects($this->exactly(2))
->method('add')
- ->withConsecutive(
- [RefreshWebcalJob::class, [
- 'principaluri' => 'foo1',
- 'uri' => 'bar1',
- ]],
- [RefreshWebcalJob::class, [
- 'principaluri' => 'foo3',
- 'uri' => 'bar3',
- ]]);
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$output->expects($this->once())
->method('info')
diff --git a/apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php b/apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php
index e2ac45526d2..6f681badb8b 100644
--- a/apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php
+++ b/apps/dav/tests/unit/Migration/RegenerateBirthdayCalendarsTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -10,18 +12,13 @@ use OCA\DAV\Migration\RegenerateBirthdayCalendars;
use OCP\BackgroundJob\IJobList;
use OCP\IConfig;
use OCP\Migration\IOutput;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RegenerateBirthdayCalendarsTest extends TestCase {
-
- /** @var IJobList | \PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */
- private $config;
-
- /** @var RegenerateBirthdayCalendars */
- private $migration;
+ private IJobList&MockObject $jobList;
+ private IConfig&MockObject $config;
+ private RegenerateBirthdayCalendars $migration;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php b/apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php
index a3daf1c918a..0a646e91602 100644
--- a/apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php
+++ b/apps/dav/tests/unit/Migration/RemoveDeletedUsersCalendarSubscriptionsTest.php
@@ -22,23 +22,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RemoveDeletedUsersCalendarSubscriptionsTest extends TestCase {
- /**
- * @var IDBConnection|MockObject
- */
- private $dbConnection;
- /**
- * @var IUserManager|MockObject
- */
- private $userManager;
-
- /**
- * @var IOutput|MockObject
- */
- private $output;
- /**
- * @var RemoveDeletedUsersCalendarSubscriptions
- */
- private $migration;
+ private IDBConnection&MockObject $dbConnection;
+ private IUserManager&MockObject $userManager;
+ private IOutput&MockObject $output;
+ private RemoveDeletedUsersCalendarSubscriptions $migration;
protected function setUp(): void {
@@ -60,10 +47,6 @@ class RemoveDeletedUsersCalendarSubscriptionsTest extends TestCase {
/**
* @dataProvider dataTestRun
- * @param array $subscriptions
- * @param array $userExists
- * @param int $deletions
- * @throws \Exception
*/
public function testRun(array $subscriptions, array $userExists, int $deletions): void {
$qb = $this->createMock(IQueryBuilder::class);
@@ -132,21 +115,28 @@ class RemoveDeletedUsersCalendarSubscriptionsTest extends TestCase {
$this->migration->run($this->output);
}
- public function dataTestRun(): array {
+ public static function dataTestRun(): array {
return [
[[], [], 0],
- [[[
- 'id' => 1,
- 'principaluri' => 'users/principals/foo1',
- ],
+ [
[
- 'id' => 2,
- 'principaluri' => 'users/principals/bar1',
+ [
+ 'id' => 1,
+ 'principaluri' => 'users/principals/foo1',
+ ],
+ [
+ 'id' => 2,
+ 'principaluri' => 'users/principals/bar1',
+ ],
+ [
+ 'id' => 3,
+ 'principaluri' => 'users/principals/bar1',
+ ],
+ [],
],
- [
- 'id' => 3,
- 'principaluri' => 'users/principals/bar1',
- ]], ['foo1' => true, 'bar1' => false], 2]
+ ['foo1' => true, 'bar1' => false],
+ 2
+ ],
];
}
}
diff --git a/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php b/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php
index 0979aff8a81..4f04aebb3e8 100644
--- a/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php
+++ b/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningNodeTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,15 +9,13 @@ namespace OCA\DAV\Tests\unit\Provisioning\Apple;
use OCA\DAV\Provisioning\Apple\AppleProvisioningNode;
use OCP\AppFramework\Utility\ITimeFactory;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\PropPatch;
use Test\TestCase;
class AppleProvisioningNodeTest extends TestCase {
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
-
- /** @var AppleProvisioningNode */
- private $node;
+ private ITimeFactory&MockObject $timeFactory;
+ private AppleProvisioningNode $node;
protected function setUp(): void {
parent::setUp();
@@ -28,7 +28,6 @@ class AppleProvisioningNodeTest extends TestCase {
$this->assertEquals('apple-provisioning.mobileconfig', $this->node->getName());
}
-
public function testSetName(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->expectExceptionMessage('Renaming apple-provisioning.mobileconfig is forbidden');
@@ -55,7 +54,7 @@ class AppleProvisioningNodeTest extends TestCase {
$this->assertEquals([
'{DAV:}getcontentlength' => 42,
- '{DAV:}getlastmodified' => 'Sat, 01 Jan 2000 00:00:00 +0000',
+ '{DAV:}getlastmodified' => 'Sat, 01 Jan 2000 00:00:00 GMT',
], $this->node->getProperties([]));
}
diff --git a/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php b/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php
index dbb399ea7a6..ba44efe7421 100644
--- a/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php
+++ b/apps/dav/tests/unit/Provisioning/Apple/AppleProvisioningPluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,40 +14,27 @@ use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
+use Sabre\DAV\Server;
+use Sabre\HTTP\RequestInterface;
+use Sabre\HTTP\ResponseInterface;
use Test\TestCase;
class AppleProvisioningPluginTest extends TestCase {
- /** @var \Sabre\DAV\Server|\PHPUnit\Framework\MockObject\MockObject */
- protected $server;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $urlGenerator;
-
- /** @var ThemingDefaults|\PHPUnit\Framework\MockObject\MockObject */
- protected $themingDefaults;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- protected $request;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10n;
-
- /** @var \Sabre\HTTP\RequestInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $sabreRequest;
-
- /** @var \Sabre\HTTP\ResponseInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $sabreResponse;
-
- /** @var AppleProvisioningPlugin */
- protected $plugin;
+ protected Server&MockObject $server;
+ protected IUserSession&MockObject $userSession;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected ThemingDefaults&MockObject $themingDefaults;
+ protected IRequest&MockObject $request;
+ protected IL10N&MockObject $l10n;
+ protected RequestInterface&MockObject $sabreRequest;
+ protected ResponseInterface&MockObject $sabreResponse;
+ protected AppleProvisioningPlugin $plugin;
protected function setUp(): void {
parent::setUp();
- $this->server = $this->createMock(\Sabre\DAV\Server::class);
+ $this->server = $this->createMock(Server::class);
$this->userSession = $this->createMock(IUserSession::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->themingDefaults = $this->createMock(ThemingDefaults::class);
@@ -62,12 +51,12 @@ class AppleProvisioningPluginTest extends TestCase {
}
);
- $this->sabreRequest = $this->createMock(\Sabre\HTTP\RequestInterface::class);
- $this->sabreResponse = $this->createMock(\Sabre\HTTP\ResponseInterface::class);
+ $this->sabreRequest = $this->createMock(RequestInterface::class);
+ $this->sabreResponse = $this->createMock(ResponseInterface::class);
}
public function testInitialize(): void {
- $server = $this->createMock(\Sabre\DAV\Server::class);
+ $server = $this->createMock(Server::class);
$plugin = new AppleProvisioningPlugin($this->userSession,
$this->urlGenerator, $this->themingDefaults, $this->request, $this->l10n,
@@ -149,24 +138,25 @@ class AppleProvisioningPluginTest extends TestCase {
$this->l10n->expects($this->exactly(2))
->method('t')
- ->withConsecutive(
- ['Configures a CalDAV account'],
- ['Configures a CardDAV account'],
- )
- ->willReturnOnConsecutiveCalls(
- 'LocalizedConfiguresCalDAV',
- 'LocalizedConfiguresCardDAV',
- );
+ ->willReturnMap([
+ ['Configures a CalDAV account', [], 'LocalizedConfiguresCalDAV'],
+ ['Configures a CardDAV account', [], 'LocalizedConfiguresCardDAV'],
+ ]);
$this->sabreResponse->expects($this->once())
->method('setStatus')
->with(200);
+
+ $calls = [
+ ['Content-Disposition', 'attachment; filename="userName-apple-provisioning.mobileconfig"'],
+ ['Content-Type', 'application/xml; charset=utf-8'],
+ ];
$this->sabreResponse->expects($this->exactly(2))
->method('setHeader')
- ->withConsecutive(
- ['Content-Disposition', 'attachment; filename="userName-apple-provisioning.mobileconfig"'],
- ['Content-Type', 'application/xml; charset=utf-8'],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->sabreResponse->expects($this->once())
->method('setBody')
->with(<<<EOF
diff --git a/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php b/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
index 0a83d238f0f..f0e5a5ea354 100644
--- a/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php
@@ -17,27 +17,18 @@ use OCP\IUser;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
use OCP\Search\SearchResultEntry;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Reader;
use Test\TestCase;
class ContactsSearchProviderTest extends TestCase {
+ private IAppManager&MockObject $appManager;
+ private IL10N&MockObject $l10n;
+ private IURLGenerator&MockObject $urlGenerator;
+ private CardDavBackend&MockObject $backend;
+ private ContactsSearchProvider $provider;
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var CardDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var ContactsSearchProvider */
- private $provider;
-
- private $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL .
+ private string $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL .
'VERSION:3.0' . PHP_EOL .
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
'UID:Test' . PHP_EOL .
@@ -46,7 +37,7 @@ class ContactsSearchProviderTest extends TestCase {
'EMAIL:forrestgump@example.com' . PHP_EOL .
'END:VCARD';
- private $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL .
+ private string $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL .
'VERSION:3.0' . PHP_EOL .
'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL .
'PHOTO;ENCODING=b;TYPE=image/jpeg:' . PHP_EOL .
@@ -174,7 +165,7 @@ class ContactsSearchProviderTest extends TestCase {
$this->urlGenerator,
$this->backend,
])
- ->setMethods([
+ ->onlyMethods([
'getDavUrlForContact',
'getDeepLinkToContactsApp',
'generateSubline',
@@ -191,11 +182,10 @@ class ContactsSearchProviderTest extends TestCase {
->willReturn('subline');
$provider->expects($this->exactly(2))
->method('getDeepLinkToContactsApp')
- ->withConsecutive(
- ['addressbook-uri-99', 'Test'],
- ['addressbook-uri-123', 'Test2']
- )
- ->willReturn('deep-link-to-contacts');
+ ->willReturnMap([
+ ['addressbook-uri-99', 'Test', 'deep-link-to-contacts'],
+ ['addressbook-uri-123', 'Test2', 'deep-link-to-contacts'],
+ ]);
$actual = $provider->search($user, $query);
$data = $actual->jsonSerialize();
diff --git a/apps/dav/tests/unit/Search/EventsSearchProviderTest.php b/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
index 0eafe0782e5..7c0b74e8ff3 100644
--- a/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/EventsSearchProviderTest.php
@@ -18,27 +18,19 @@ use OCP\Search\IFilter;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
use OCP\Search\SearchResultEntry;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Reader;
use Test\TestCase;
class EventsSearchProviderTest extends TestCase {
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var EventsSearchProvider */
- private $provider;
+ private IAppManager&MockObject $appManager;
+ private IL10N&MockObject $l10n;
+ private IURLGenerator&MockObject $urlGenerator;
+ private CalDavBackend&MockObject $backend;
+ private EventsSearchProvider $provider;
// NO SUMMARY
- private $vEvent0 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent0 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -54,7 +46,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// TIMED SAME DAY
- private $vEvent1 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent1 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Tests//' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -88,7 +80,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// TIMED DIFFERENT DAY
- private $vEvent2 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent2 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Tests//' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -122,7 +114,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// ALL-DAY ONE-DAY
- private $vEvent3 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent3 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -138,7 +130,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// ALL-DAY MULTIPLE DAYS
- private $vEvent4 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent4 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -154,7 +146,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// DURATION
- private $vEvent5 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent5 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -170,7 +162,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// NO DTEND - DATE
- private $vEvent6 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent6 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -185,7 +177,7 @@ class EventsSearchProviderTest extends TestCase {
'END:VCALENDAR';
// NO DTEND - DATE-TIME
- private $vEvent7 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vEvent7 = 'BEGIN:VCALENDAR' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'PRODID:-//Tests//' . PHP_EOL .
'CALSCALE:GREGORIAN' . PHP_EOL .
@@ -327,19 +319,19 @@ class EventsSearchProviderTest extends TestCase {
'calendarid' => 99,
'calendartype' => CalDavBackend::CALENDAR_TYPE_CALENDAR,
'uri' => 'event0.ics',
- 'calendardata' => $this->vEvent0,
+ 'calendardata' => self::$vEvent0,
],
[
'calendarid' => 123,
'calendartype' => CalDavBackend::CALENDAR_TYPE_CALENDAR,
'uri' => 'event1.ics',
- 'calendardata' => $this->vEvent1,
+ 'calendardata' => self::$vEvent1,
],
[
'calendarid' => 1337,
'calendartype' => CalDavBackend::CALENDAR_TYPE_SUBSCRIPTION,
'uri' => 'event2.ics',
- 'calendardata' => $this->vEvent2,
+ 'calendardata' => self::$vEvent2,
]
]);
@@ -350,7 +342,7 @@ class EventsSearchProviderTest extends TestCase {
$this->urlGenerator,
$this->backend,
])
- ->setMethods([
+ ->onlyMethods([
'getDeepLinkToCalendarApp',
'generateSubline',
])
@@ -361,12 +353,11 @@ class EventsSearchProviderTest extends TestCase {
->willReturn('subline');
$provider->expects($this->exactly(3))
->method('getDeepLinkToCalendarApp')
- ->withConsecutive(
- ['principals/users/john.doe', 'calendar-uri-99', 'event0.ics'],
- ['principals/users/john.doe', 'calendar-uri-123', 'event1.ics'],
- ['principals/users/john.doe', 'subscription-uri-1337', 'event2.ics']
- )
- ->willReturn('deep-link-to-calendar');
+ ->willReturnMap([
+ ['principals/users/john.doe', 'calendar-uri-99', 'event0.ics', 'deep-link-to-calendar'],
+ ['principals/users/john.doe', 'calendar-uri-123', 'event1.ics', 'deep-link-to-calendar'],
+ ['principals/users/john.doe', 'subscription-uri-1337', 'event2.ics', 'deep-link-to-calendar']
+ ]);
$actual = $provider->search($user, $query);
$data = $actual->jsonSerialize();
@@ -428,9 +419,6 @@ class EventsSearchProviderTest extends TestCase {
}
/**
- * @param string $ics
- * @param string $expectedSubline
- *
* @dataProvider generateSublineDataProvider
*/
public function testGenerateSubline(string $ics, string $expectedSubline): void {
@@ -450,15 +438,15 @@ class EventsSearchProviderTest extends TestCase {
$this->assertEquals($expectedSubline, $actual);
}
- public function generateSublineDataProvider(): array {
+ public static function generateSublineDataProvider(): array {
return [
- [$this->vEvent1, '08-16 09:00 - 10:00'],
- [$this->vEvent2, '08-16 09:00 - 08-17 10:00'],
- [$this->vEvent3, '10-05'],
- [$this->vEvent4, '10-05 - 10-07'],
- [$this->vEvent5, '10-05 - 10-09'],
- [$this->vEvent6, '10-05'],
- [$this->vEvent7, '08-16 09:00 - 09:00'],
+ [self::$vEvent1, '08-16 09:00 - 10:00'],
+ [self::$vEvent2, '08-16 09:00 - 08-17 10:00'],
+ [self::$vEvent3, '10-05'],
+ [self::$vEvent4, '10-05 - 10-07'],
+ [self::$vEvent5, '10-05 - 10-09'],
+ [self::$vEvent6, '10-05'],
+ [self::$vEvent7, '08-16 09:00 - 09:00'],
];
}
}
diff --git a/apps/dav/tests/unit/Search/TasksSearchProviderTest.php b/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
index de4e29058da..bd242080547 100644
--- a/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
+++ b/apps/dav/tests/unit/Search/TasksSearchProviderTest.php
@@ -17,28 +17,19 @@ use OCP\IUser;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
use OCP\Search\SearchResultEntry;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\VObject\Reader;
use Test\TestCase;
class TasksSearchProviderTest extends TestCase {
-
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var CalDavBackend|\PHPUnit\Framework\MockObject\MockObject */
- private $backend;
-
- /** @var TasksSearchProvider */
- private $provider;
+ private IAppManager&MockObject $appManager;
+ private IL10N&MockObject $l10n;
+ private IURLGenerator&MockObject $urlGenerator;
+ private CalDavBackend&MockObject $backend;
+ private TasksSearchProvider $provider;
// NO DUE NOR COMPLETED NOR SUMMARY
- private $vTodo0 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo0 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -49,7 +40,7 @@ class TasksSearchProviderTest extends TestCase {
'END:VCALENDAR';
// DUE AND COMPLETED
- private $vTodo1 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo1 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -63,7 +54,7 @@ class TasksSearchProviderTest extends TestCase {
'END:VCALENDAR';
// COMPLETED ONLY
- private $vTodo2 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo2 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -76,7 +67,7 @@ class TasksSearchProviderTest extends TestCase {
'END:VCALENDAR';
// DUE DATE
- private $vTodo3 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo3 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -89,7 +80,7 @@ class TasksSearchProviderTest extends TestCase {
'END:VCALENDAR';
// DUE DATETIME
- private $vTodo4 = 'BEGIN:VCALENDAR' . PHP_EOL .
+ private static string $vTodo4 = 'BEGIN:VCALENDAR' . PHP_EOL .
'PRODID:TEST' . PHP_EOL .
'VERSION:2.0' . PHP_EOL .
'BEGIN:VTODO' . PHP_EOL .
@@ -204,19 +195,19 @@ class TasksSearchProviderTest extends TestCase {
'calendarid' => 99,
'calendartype' => CalDavBackend::CALENDAR_TYPE_CALENDAR,
'uri' => 'todo0.ics',
- 'calendardata' => $this->vTodo0,
+ 'calendardata' => self::$vTodo0,
],
[
'calendarid' => 123,
'calendartype' => CalDavBackend::CALENDAR_TYPE_CALENDAR,
'uri' => 'todo1.ics',
- 'calendardata' => $this->vTodo1,
+ 'calendardata' => self::$vTodo1,
],
[
'calendarid' => 1337,
'calendartype' => CalDavBackend::CALENDAR_TYPE_SUBSCRIPTION,
'uri' => 'todo2.ics',
- 'calendardata' => $this->vTodo2,
+ 'calendardata' => self::$vTodo2,
]
]);
@@ -227,7 +218,7 @@ class TasksSearchProviderTest extends TestCase {
$this->urlGenerator,
$this->backend,
])
- ->setMethods([
+ ->onlyMethods([
'getDeepLinkToTasksApp',
'generateSubline',
])
@@ -238,12 +229,11 @@ class TasksSearchProviderTest extends TestCase {
->willReturn('subline');
$provider->expects($this->exactly(3))
->method('getDeepLinkToTasksApp')
- ->withConsecutive(
- ['calendar-uri-99', 'todo0.ics'],
- ['calendar-uri-123', 'todo1.ics'],
- ['subscription-uri-1337', 'todo2.ics']
- )
- ->willReturn('deep-link-to-tasks');
+ ->willReturnMap([
+ ['calendar-uri-99', 'todo0.ics', 'deep-link-to-tasks'],
+ ['calendar-uri-123', 'todo1.ics', 'deep-link-to-tasks'],
+ ['subscription-uri-1337', 'todo2.ics', 'deep-link-to-tasks']
+ ]);
$actual = $provider->search($user, $query);
$data = $actual->jsonSerialize();
@@ -300,9 +290,6 @@ class TasksSearchProviderTest extends TestCase {
}
/**
- * @param string $ics
- * @param string $expectedSubline
- *
* @dataProvider generateSublineDataProvider
*/
public function testGenerateSubline(string $ics, string $expectedSubline): void {
@@ -310,19 +297,19 @@ class TasksSearchProviderTest extends TestCase {
$taskComponent = $vCalendar->VTODO;
$this->l10n->method('t')->willReturnArgument(0);
- $this->l10n->method('l')->willReturnArgument('');
+ $this->l10n->method('l')->willReturnArgument(0);
$actual = self::invokePrivate($this->provider, 'generateSubline', [$taskComponent]);
$this->assertEquals($expectedSubline, $actual);
}
- public function generateSublineDataProvider(): array {
+ public static function generateSublineDataProvider(): array {
return [
- [$this->vTodo0, ''],
- [$this->vTodo1, 'Completed on %s'],
- [$this->vTodo2, 'Completed on %s'],
- [$this->vTodo3, 'Due on %s'],
- [$this->vTodo4, 'Due on %s by %s'],
+ [self::$vTodo0, ''],
+ [self::$vTodo1, 'Completed on %s'],
+ [self::$vTodo2, 'Completed on %s'],
+ [self::$vTodo3, 'Due on %s'],
+ [self::$vTodo4, 'Due on %s by %s'],
];
}
}
diff --git a/apps/dav/tests/unit/ServerTest.php b/apps/dav/tests/unit/ServerTest.php
index 16e0a5b80aa..0baef015056 100644
--- a/apps/dav/tests/unit/ServerTest.php
+++ b/apps/dav/tests/unit/ServerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -22,7 +23,7 @@ class ServerTest extends \Test\TestCase {
/**
* @dataProvider providesUris
*/
- public function test($uri, array $plugins): void {
+ public function test(string $uri, array $plugins): void {
/** @var IRequest | \PHPUnit\Framework\MockObject\MockObject $r */
$r = $this->createMock(IRequest::class);
$r->expects($this->any())->method('getRequestUri')->willReturn($uri);
@@ -33,7 +34,7 @@ class ServerTest extends \Test\TestCase {
$this->assertNotNull($s->server->getPlugin($plugin));
}
}
- public function providesUris() {
+ public static function providesUris(): array {
return [
'principals' => ['principals/users/admin', ['caldav', 'oc-resource-sharing', 'carddav']],
'calendars' => ['calendars/admin', ['caldav', 'oc-resource-sharing']],
diff --git a/apps/dav/tests/unit/Service/AbsenceServiceTest.php b/apps/dav/tests/unit/Service/AbsenceServiceTest.php
index 5cff29a6f61..c16c715d5c2 100644
--- a/apps/dav/tests/unit/Service/AbsenceServiceTest.php
+++ b/apps/dav/tests/unit/Service/AbsenceServiceTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\dav\tests\unit\Service;
+namespace OCA\DAV\Tests\unit\Service;
use DateTimeImmutable;
use DateTimeZone;
@@ -24,25 +24,16 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\IUser;
use OCP\User\Events\OutOfOfficeChangedEvent;
use OCP\User\Events\OutOfOfficeScheduledEvent;
+use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
class AbsenceServiceTest extends TestCase {
private AbsenceService $absenceService;
-
- /** @var MockObject|AbsenceMapper */
- private $absenceMapper;
-
- /** @var MockObject|IEventDispatcher */
- private $eventDispatcher;
-
- /** @var MockObject|IJobList */
- private $jobList;
-
- /** @var MockObject|TimezoneService */
- private $timezoneService;
-
- /** @var MockObject|ITimeFactory */
- private $timeFactory;
+ private AbsenceMapper&MockObject $absenceMapper;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private IJobList&MockObject $jobList;
+ private TimezoneService&MockObject $timezoneService;
+ private ITimeFactory&MockObject $timeFactory;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/dav/tests/unit/Service/DefaultContactServiceTest.php b/apps/dav/tests/unit/Service/ExampleContactServiceTest.php
index 68bbc02ed08..4c8d900ae86 100644
--- a/apps/dav/tests/unit/Service/DefaultContactServiceTest.php
+++ b/apps/dav/tests/unit/Service/ExampleContactServiceTest.php
@@ -7,59 +7,63 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\Service;
+namespace OCA\DAV\Tests\unit\Service;
use OCA\DAV\CardDAV\CardDavBackend;
-use OCA\DAV\Service\DefaultContactService;
+use OCA\DAV\Service\ExampleContactService;
use OCP\App\IAppManager;
+use OCP\AppFramework\Services\IAppConfig;
use OCP\Files\AppData\IAppDataFactory;
use OCP\Files\IAppData;
use OCP\Files\NotFoundException;
use OCP\Files\SimpleFS\ISimpleFile;
use OCP\Files\SimpleFS\ISimpleFolder;
-use OCP\IAppConfig;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Symfony\Component\Uid\Uuid;
use Test\TestCase;
-class DefaultContactServiceTest extends TestCase {
- private DefaultContactService $service;
- private MockObject|CardDavBackend $cardDav;
- private MockObject|IAppManager $appManager;
- private MockObject|IAppDataFactory $appDataFactory;
- private MockObject|LoggerInterface $logger;
- private MockObject|IAppConfig $config;
+class ExampleContactServiceTest extends TestCase {
+ protected ExampleContactService $service;
+ protected CardDavBackend&MockObject $cardDav;
+ protected IAppManager&MockObject $appManager;
+ protected IAppDataFactory&MockObject $appDataFactory;
+ protected LoggerInterface&MockObject $logger;
+ protected IAppConfig&MockObject $appConfig;
+ protected IAppData&MockObject $appData;
protected function setUp(): void {
parent::setUp();
$this->cardDav = $this->createMock(CardDavBackend::class);
- $this->appManager = $this->createMock(IAppManager::class);
$this->appDataFactory = $this->createMock(IAppDataFactory::class);
$this->logger = $this->createMock(LoggerInterface::class);
- $this->config = $this->createMock(IAppConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
- $this->service = new DefaultContactService(
- $this->cardDav,
- $this->appManager,
+ $this->appData = $this->createMock(IAppData::class);
+ $this->appDataFactory->method('get')
+ ->with('dav')
+ ->willReturn($this->appData);
+
+ $this->service = new ExampleContactService(
$this->appDataFactory,
- $this->config,
+ $this->appConfig,
$this->logger,
+ $this->cardDav,
);
}
public function testCreateDefaultContactWithInvalidCard(): void {
// Invalid vCard missing required FN property
$vcardContent = "BEGIN:VCARD\nVERSION:3.0\nEND:VCARD";
- $this->config->method('getValueString')->willReturn('yes');
- $appData = $this->createMock(IAppData::class);
+ $this->appConfig->method('getAppValueBool')
+ ->with('enableDefaultContact', true)
+ ->willReturn(true);
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$file->method('getContent')->willReturn($vcardContent);
$folder->method('getFile')->willReturn($file);
- $appData->method('getFolder')->willReturn($folder);
- $this->appDataFactory->method('get')->willReturn($appData);
+ $this->appData->method('getFolder')->willReturn($folder);
$this->logger->expects($this->once())
->method('error')
@@ -76,15 +80,15 @@ class DefaultContactServiceTest extends TestCase {
$originalRev = '20200101T000000Z';
$vcardContent = "BEGIN:VCARD\nVERSION:3.0\nFN:Test User\nUID:$originalUid\nREV:$originalRev\nEND:VCARD";
- $this->config->method('getValueString')->willReturn('yes');
- $appData = $this->createMock(IAppData::class);
+ $this->appConfig->method('getAppValueBool')
+ ->with('enableDefaultContact', true)
+ ->willReturn(true);
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$file->method('getContent')->willReturn($vcardContent);
$folder->method('getFile')->willReturn($file);
- $appData->method('getFolder')->willReturn($folder);
- $this->appDataFactory->method('get')->willReturn($appData);
-
+ $this->appData->method('getFolder')->willReturn($folder);
+
$capturedCardData = null;
$this->cardDav->expects($this->once())
->method('createCard')
@@ -97,9 +101,9 @@ class DefaultContactServiceTest extends TestCase {
}),
$this->anything()
)->willReturn(null);
-
+
$this->service->createDefaultContact(123);
-
+
$vcard = \Sabre\VObject\Reader::read($capturedCardData);
$this->assertNotEquals($originalUid, $vcard->UID->getValue());
$this->assertTrue(Uuid::isValid($vcard->UID->getValue()));
@@ -107,10 +111,10 @@ class DefaultContactServiceTest extends TestCase {
}
public function testDefaultContactFileDoesNotExist(): void {
- $appData = $this->createMock(IAppData::class);
- $this->config->method('getValueString')->willReturn('yes');
- $appData->method('getFolder')->willThrowException(new NotFoundException());
- $this->appDataFactory->method('get')->willReturn($appData);
+ $this->appConfig->method('getAppValueBool')
+ ->with('enableDefaultContact', true)
+ ->willReturn(true);
+ $this->appData->method('getFolder')->willThrowException(new NotFoundException());
$this->cardDav->expects($this->never())
->method('createCard');
@@ -121,14 +125,14 @@ class DefaultContactServiceTest extends TestCase {
public function testUidAndRevAreAddedIfMissing(): void {
$vcardContent = "BEGIN:VCARD\nVERSION:3.0\nFN:Test User\nEND:VCARD";
- $this->config->method('getValueString')->willReturn('yes');
- $appData = $this->createMock(IAppData::class);
+ $this->appConfig->method('getAppValueBool')
+ ->with('enableDefaultContact', true)
+ ->willReturn(true);
$folder = $this->createMock(ISimpleFolder::class);
$file = $this->createMock(ISimpleFile::class);
$file->method('getContent')->willReturn($vcardContent);
$folder->method('getFile')->willReturn($file);
- $appData->method('getFolder')->willReturn($folder);
- $this->appDataFactory->method('get')->willReturn($appData);
+ $this->appData->method('getFolder')->willReturn($folder);
$capturedCardData = 'new-card-data';
@@ -154,7 +158,9 @@ class DefaultContactServiceTest extends TestCase {
}
public function testDefaultContactIsNotCreatedIfEnabled(): void {
- $this->config->method('getValueString')->willReturn('no');
+ $this->appConfig->method('getAppValueBool')
+ ->with('enableDefaultContact', true)
+ ->willReturn(false);
$this->logger->expects($this->never())
->method('error');
$this->cardDav->expects($this->never())
@@ -162,4 +168,27 @@ class DefaultContactServiceTest extends TestCase {
$this->service->createDefaultContact(123);
}
+
+ public static function provideDefaultContactEnableData(): array {
+ return [[true], [false]];
+ }
+
+ /** @dataProvider provideDefaultContactEnableData */
+ public function testIsDefaultContactEnabled(bool $enabled): void {
+ $this->appConfig->expects(self::once())
+ ->method('getAppValueBool')
+ ->with('enableDefaultContact', true)
+ ->willReturn($enabled);
+
+ $this->assertEquals($enabled, $this->service->isDefaultContactEnabled());
+ }
+
+ /** @dataProvider provideDefaultContactEnableData */
+ public function testSetDefaultContactEnabled(bool $enabled): void {
+ $this->appConfig->expects(self::once())
+ ->method('setAppValueBool')
+ ->with('enableDefaultContact', $enabled);
+
+ $this->service->setDefaultContactEnabled($enabled);
+ }
}
diff --git a/apps/dav/tests/unit/Service/ExampleEventServiceTest.php b/apps/dav/tests/unit/Service/ExampleEventServiceTest.php
new file mode 100644
index 00000000000..e5961e66312
--- /dev/null
+++ b/apps/dav/tests/unit/Service/ExampleEventServiceTest.php
@@ -0,0 +1,196 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\DAV\Tests\unit\Service;
+
+use OCA\DAV\CalDAV\CalDavBackend;
+use OCA\DAV\Service\ExampleEventService;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\Files\IAppData;
+use OCP\Files\NotFoundException;
+use OCP\Files\SimpleFS\ISimpleFile;
+use OCP\Files\SimpleFS\ISimpleFolder;
+use OCP\IAppConfig;
+use OCP\IL10N;
+use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
+use Test\TestCase;
+
+class ExampleEventServiceTest extends TestCase {
+ private ExampleEventService $service;
+
+ private CalDavBackend&MockObject $calDavBackend;
+ private ISecureRandom&MockObject $random;
+ private ITimeFactory&MockObject $time;
+ private IAppData&MockObject $appData;
+ private IAppConfig&MockObject $appConfig;
+ private IL10N&MockObject $l10n;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->calDavBackend = $this->createMock(CalDavBackend::class);
+ $this->random = $this->createMock(ISecureRandom::class);
+ $this->time = $this->createMock(ITimeFactory::class);
+ $this->appData = $this->createMock(IAppData::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
+ $this->l10n = $this->createMock(IL10N::class);
+
+ $this->l10n->method('t')
+ ->willReturnArgument(0);
+
+ $this->service = new ExampleEventService(
+ $this->calDavBackend,
+ $this->random,
+ $this->time,
+ $this->appData,
+ $this->appConfig,
+ $this->l10n,
+ );
+ }
+
+ public static function provideCustomEventData(): array {
+ return [
+ [file_get_contents(__DIR__ . '/../test_fixtures/example-event.ics')],
+ [file_get_contents(__DIR__ . '/../test_fixtures/example-event-with-attendees.ics')],
+ ];
+ }
+
+ /** @dataProvider provideCustomEventData */
+ public function testCreateExampleEventWithCustomEvent($customEventIcs): void {
+ $this->appConfig->expects(self::once())
+ ->method('getValueBool')
+ ->with('dav', 'create_example_event', true)
+ ->willReturn(true);
+
+ $exampleEventFolder = $this->createMock(ISimpleFolder::class);
+ $this->appData->expects(self::once())
+ ->method('getFolder')
+ ->with('example_event')
+ ->willReturn($exampleEventFolder);
+ $exampleEventFile = $this->createMock(ISimpleFile::class);
+ $exampleEventFolder->expects(self::once())
+ ->method('getFile')
+ ->with('example_event.ics')
+ ->willReturn($exampleEventFile);
+ $exampleEventFile->expects(self::once())
+ ->method('getContent')
+ ->willReturn($customEventIcs);
+
+ $this->random->expects(self::once())
+ ->method('generate')
+ ->with(32, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')
+ ->willReturn('RANDOM-UID');
+
+ $now = new \DateTimeImmutable('2025-01-21T00:00:00Z');
+ $this->time->expects(self::exactly(2))
+ ->method('now')
+ ->willReturn($now);
+
+ $expectedIcs = file_get_contents(__DIR__ . '/../test_fixtures/example-event-expected.ics');
+ $this->calDavBackend->expects(self::once())
+ ->method('createCalendarObject')
+ ->with(1000, 'RANDOM-UID.ics', $expectedIcs);
+
+ $this->service->createExampleEvent(1000);
+ }
+
+ public function testCreateExampleEventWithDefaultEvent(): void {
+ $this->appConfig->expects(self::once())
+ ->method('getValueBool')
+ ->with('dav', 'create_example_event', true)
+ ->willReturn(true);
+
+ $this->appData->expects(self::once())
+ ->method('getFolder')
+ ->with('example_event')
+ ->willThrowException(new NotFoundException());
+
+ $this->random->expects(self::once())
+ ->method('generate')
+ ->with(32, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')
+ ->willReturn('RANDOM-UID');
+
+ $now = new \DateTimeImmutable('2025-01-21T00:00:00Z');
+ $this->time->expects(self::exactly(3))
+ ->method('now')
+ ->willReturn($now);
+
+ $expectedIcs = file_get_contents(__DIR__ . '/../test_fixtures/example-event-default-expected.ics');
+ $this->calDavBackend->expects(self::once())
+ ->method('createCalendarObject')
+ ->with(1000, 'RANDOM-UID.ics', $expectedIcs);
+
+ $this->service->createExampleEvent(1000);
+ }
+
+ public function testCreateExampleWhenDisabled(): void {
+ $this->appConfig->expects(self::once())
+ ->method('getValueBool')
+ ->with('dav', 'create_example_event', true)
+ ->willReturn(false);
+
+ $this->calDavBackend->expects(self::never())
+ ->method('createCalendarObject');
+
+ $this->service->createExampleEvent(1000);
+ }
+
+ /** @dataProvider provideCustomEventData */
+ public function testGetExampleEventWithCustomEvent($customEventIcs): void {
+ $exampleEventFolder = $this->createMock(ISimpleFolder::class);
+ $this->appData->expects(self::once())
+ ->method('getFolder')
+ ->with('example_event')
+ ->willReturn($exampleEventFolder);
+ $exampleEventFile = $this->createMock(ISimpleFile::class);
+ $exampleEventFolder->expects(self::once())
+ ->method('getFile')
+ ->with('example_event.ics')
+ ->willReturn($exampleEventFile);
+ $exampleEventFile->expects(self::once())
+ ->method('getContent')
+ ->willReturn($customEventIcs);
+
+ $this->random->expects(self::once())
+ ->method('generate')
+ ->with(32, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')
+ ->willReturn('RANDOM-UID');
+
+ $now = new \DateTimeImmutable('2025-01-21T00:00:00Z');
+ $this->time->expects(self::exactly(2))
+ ->method('now')
+ ->willReturn($now);
+
+ $expectedIcs = file_get_contents(__DIR__ . '/../test_fixtures/example-event-expected.ics');
+ $actualIcs = $this->service->getExampleEvent()->getIcs();
+ $this->assertEquals($expectedIcs, $actualIcs);
+ }
+
+ public function testGetExampleEventWithDefault(): void {
+ $this->appData->expects(self::once())
+ ->method('getFolder')
+ ->with('example_event')
+ ->willThrowException(new NotFoundException());
+
+ $this->random->expects(self::once())
+ ->method('generate')
+ ->with(32, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')
+ ->willReturn('RANDOM-UID');
+
+ $now = new \DateTimeImmutable('2025-01-21T00:00:00Z');
+ $this->time->expects(self::exactly(3))
+ ->method('now')
+ ->willReturn($now);
+
+ $expectedIcs = file_get_contents(__DIR__ . '/../test_fixtures/example-event-default-expected.ics');
+ $actualIcs = $this->service->getExampleEvent()->getIcs();
+ $this->assertEquals($expectedIcs, $actualIcs);
+ }
+}
diff --git a/apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php b/apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php
index ecb0268c8c2..fdfe37d8918 100644
--- a/apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php
+++ b/apps/dav/tests/unit/Service/UpcomingEventsServiceTest.php
@@ -7,7 +7,7 @@ declare(strict_types=1);
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Service;
+namespace OCA\DAV\Tests\unit\DAV\Service;
use DateTimeImmutable;
use OCA\DAV\CalDAV\UpcomingEventsService;
@@ -22,11 +22,11 @@ use PHPUnit\Framework\TestCase;
class UpcomingEventsServiceTest extends TestCase {
- private MockObject|IManager $calendarManager;
- private ITimeFactory|MockObject $timeFactory;
- private IUserManager|MockObject $userManager;
- private IAppManager|MockObject $appManager;
- private IURLGenerator|MockObject $urlGenerator;
+ private IManager&MockObject $calendarManager;
+ private ITimeFactory&MockObject $timeFactory;
+ private IUserManager&MockObject $userManager;
+ private IAppManager&MockObject $appManager;
+ private IURLGenerator&MockObject $urlGenerator;
private UpcomingEventsService $service;
protected function setUp(): void {
diff --git a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
index 9f2d2582884..df7a08d5d08 100644
--- a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
+++ b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Settings;
+namespace OCA\DAV\Tests\unit\DAV\Settings;
use OCA\DAV\Settings\CalDAVSettings;
use OCP\App\IAppManager;
@@ -15,19 +17,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CalDAVSettingsTest extends TestCase {
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IInitialState|MockObject */
- private $initialState;
-
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
-
- /** @var IAppManager|MockObject */
- private $appManager;
-
+ private IConfig&MockObject $config;
+ private IInitialState&MockObject $initialState;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IAppManager&MockObject $appManager;
private CalDAVSettings $settings;
protected function setUp(): void {
@@ -42,28 +35,32 @@ class CalDAVSettingsTest extends TestCase {
public function testGetForm(): void {
$this->config->method('getAppValue')
- ->withConsecutive(
- ['dav', 'sendInvitations', 'yes'],
- ['dav', 'generateBirthdayCalendar', 'yes'],
- ['dav', 'sendEventReminders', 'yes'],
- ['dav', 'sendEventRemindersToSharedUsers', 'yes'],
- ['dav', 'sendEventRemindersPush', 'yes'],
- )
- ->will($this->onConsecutiveCalls('yes', 'no', 'yes', 'yes', 'yes'));
+ ->willReturnMap([
+ ['dav', 'sendInvitations', 'yes', 'yes'],
+ ['dav', 'generateBirthdayCalendar', 'yes', 'no'],
+ ['dav', 'sendEventReminders', 'yes', 'yes'],
+ ['dav', 'sendEventRemindersToSharedUsers', 'yes', 'yes'],
+ ['dav', 'sendEventRemindersPush', 'yes', 'yes'],
+ ]);
$this->urlGenerator
->expects($this->once())
->method('linkToDocs')
->with('user-sync-calendars')
->willReturn('Some docs URL');
+
+ $calls = [
+ ['userSyncCalendarsDocUrl', 'Some docs URL'],
+ ['sendInvitations', true],
+ ['generateBirthdayCalendar', false],
+ ['sendEventReminders', true],
+ ['sendEventRemindersToSharedUsers', true],
+ ['sendEventRemindersPush', true],
+ ];
$this->initialState->method('provideInitialState')
- ->withConsecutive(
- ['userSyncCalendarsDocUrl', 'Some docs URL'],
- ['sendInvitations', true],
- ['generateBirthdayCalendar', false],
- ['sendEventReminders', true],
- ['sendEventRemindersToSharedUsers', true],
- ['sendEventRemindersPush', true],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$result = $this->settings->getForm();
$this->assertInstanceOf(TemplateResponse::class, $result);
@@ -88,5 +85,4 @@ class CalDAVSettingsTest extends TestCase {
public function testGetPriority(): void {
$this->assertEquals(10, $this->settings->getPriority());
}
-
}
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php
index ed830685b7a..0096b188291 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,30 +15,28 @@ use OCP\SystemTag\ISystemTag;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagNotFoundException;
+use PHPUnit\Framework\MockObject\MockObject;
class SystemTagMappingNodeTest extends \Test\TestCase {
- private ISystemTagManager $tagManager;
- private ISystemTagObjectMapper $tagMapper;
- private IUser $user;
+ private ISystemTagManager&MockObject $tagManager;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
+ $this->user = $this->createMock(IUser::class);
}
public function getMappingNode($tag = null, array $writableNodeIds = []) {
if ($tag === null) {
- $tag = new SystemTag(1, 'Test', true, true);
+ $tag = new SystemTag('1', 'Test', true, true);
}
return new SystemTagMappingNode(
$tag,
- 123,
+ '123',
'files',
$this->user,
$this->tagManager,
@@ -47,7 +46,7 @@ class SystemTagMappingNodeTest extends \Test\TestCase {
}
public function testGetters(): void {
- $tag = new SystemTag(1, 'Test', true, false);
+ $tag = new SystemTag('1', 'Test', true, false);
$node = $this->getMappingNode($tag);
$this->assertEquals('1', $node->getName());
$this->assertEquals($tag, $node->getSystemTag());
@@ -93,16 +92,16 @@ class SystemTagMappingNodeTest extends \Test\TestCase {
$node->delete();
}
- public function tagNodeDeleteProviderPermissionException() {
+ public static function tagNodeDeleteProviderPermissionException(): array {
return [
[
// cannot unassign invisible tag
- new SystemTag(1, 'Original', false, true),
+ new SystemTag('1', 'Original', false, true),
'Sabre\DAV\Exception\NotFound',
],
[
// cannot unassign non-assignable tag
- new SystemTag(1, 'Original', true, false),
+ new SystemTag('1', 'Original', true, false),
'Sabre\DAV\Exception\Forbidden',
],
];
@@ -141,7 +140,7 @@ class SystemTagMappingNodeTest extends \Test\TestCase {
// assuming the tag existed at the time the node was created,
// but got deleted concurrently in the database
- $tag = new SystemTag(1, 'Test', true, true);
+ $tag = new SystemTag('1', 'Test', true, true);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php
index 32ee733dce8..642cc21319b 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -15,39 +16,25 @@ use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagAlreadyExistsException;
use OCP\SystemTag\TagNotFoundException;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\Forbidden;
class SystemTagNodeTest extends \Test\TestCase {
-
- /**
- * @var ISystemTagManager|\PHPUnit\Framework\MockObject\MockObject
- */
- private $tagManager;
-
- /**
- * @var ISystemTagObjectMapper|\PHPUnit\Framework\MockObject\MockObject
- */
- private $tagMapper;
-
- /**
- * @var IUser
- */
- private $user;
+ private ISystemTagManager&MockObject $tagManager;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
+ $this->user = $this->createMock(IUser::class);
}
protected function getTagNode($isAdmin = true, $tag = null) {
if ($tag === null) {
- $tag = new SystemTag(1, 'Test', true, true);
+ $tag = new SystemTag('1', 'Test', true, true);
}
return new SystemTagNode(
$tag,
@@ -58,14 +45,14 @@ class SystemTagNodeTest extends \Test\TestCase {
);
}
- public function adminFlagProvider() {
+ public static function adminFlagProvider(): array {
return [[true], [false]];
}
/**
* @dataProvider adminFlagProvider
*/
- public function testGetters($isAdmin): void {
+ public function testGetters(bool $isAdmin): void {
$tag = new SystemTag('1', 'Test', true, true);
$node = $this->getTagNode($isAdmin, $tag);
$this->assertEquals('1', $node->getName());
@@ -79,24 +66,24 @@ class SystemTagNodeTest extends \Test\TestCase {
$this->getTagNode()->setName('2');
}
- public function tagNodeProvider() {
+ public static function tagNodeProvider(): array {
return [
// admin
[
true,
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Renamed', true, true, null]
],
[
true,
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Original', false, false, null]
],
// non-admin
[
// renaming allowed
false,
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Rename', true, true, '0082c9']
],
];
@@ -105,7 +92,7 @@ class SystemTagNodeTest extends \Test\TestCase {
/**
* @dataProvider tagNodeProvider
*/
- public function testUpdateTag($isAdmin, ISystemTag $originalTag, $changedArgs): void {
+ public function testUpdateTag(bool $isAdmin, ISystemTag $originalTag, array $changedArgs): void {
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($originalTag)
@@ -121,41 +108,41 @@ class SystemTagNodeTest extends \Test\TestCase {
->update($changedArgs[0], $changedArgs[1], $changedArgs[2], $changedArgs[3]);
}
- public function tagNodeProviderPermissionException() {
+ public static function tagNodeProviderPermissionException(): array {
return [
[
// changing permissions not allowed
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Original', false, true, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// changing permissions not allowed
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Original', true, false, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// changing permissions not allowed
- new SystemTag(1, 'Original', true, true),
+ new SystemTag('1', 'Original', true, true),
['Original', false, false, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// changing non-assignable not allowed
- new SystemTag(1, 'Original', true, false),
+ new SystemTag('1', 'Original', true, false),
['Rename', true, false, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// changing non-assignable not allowed
- new SystemTag(1, 'Original', true, false),
+ new SystemTag('1', 'Original', true, false),
['Original', true, true, ''],
'Sabre\DAV\Exception\Forbidden',
],
[
// invisible tag does not exist
- new SystemTag(1, 'Original', false, false),
+ new SystemTag('1', 'Original', false, false),
['Rename', false, false, ''],
'Sabre\DAV\Exception\NotFound',
],
@@ -165,7 +152,7 @@ class SystemTagNodeTest extends \Test\TestCase {
/**
* @dataProvider tagNodeProviderPermissionException
*/
- public function testUpdateTagPermissionException(ISystemTag $originalTag, $changedArgs, $expectedException = null): void {
+ public function testUpdateTagPermissionException(ISystemTag $originalTag, array $changedArgs, string $expectedException): void {
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($originalTag)
@@ -193,7 +180,7 @@ class SystemTagNodeTest extends \Test\TestCase {
public function testUpdateTagAlreadyExists(): void {
$this->expectException(\Sabre\DAV\Exception\Conflict::class);
- $tag = new SystemTag(1, 'tag1', true, true);
+ $tag = new SystemTag('1', 'tag1', true, true);
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($tag)
@@ -213,7 +200,7 @@ class SystemTagNodeTest extends \Test\TestCase {
public function testUpdateTagNotFound(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $tag = new SystemTag(1, 'tag1', true, true);
+ $tag = new SystemTag('1', 'tag1', true, true);
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($tag)
@@ -232,8 +219,8 @@ class SystemTagNodeTest extends \Test\TestCase {
/**
* @dataProvider adminFlagProvider
*/
- public function testDeleteTag($isAdmin): void {
- $tag = new SystemTag(1, 'tag1', true, true);
+ public function testDeleteTag(bool $isAdmin): void {
+ $tag = new SystemTag('1', 'tag1', true, true);
$this->tagManager->expects($isAdmin ? $this->once() : $this->never())
->method('canUserSeeTag')
->with($tag)
@@ -247,16 +234,16 @@ class SystemTagNodeTest extends \Test\TestCase {
$this->getTagNode($isAdmin, $tag)->delete();
}
- public function tagNodeDeleteProviderPermissionException() {
+ public static function tagNodeDeleteProviderPermissionException(): array {
return [
[
// cannot delete invisible tag
- new SystemTag(1, 'Original', false, true),
+ new SystemTag('1', 'Original', false, true),
'Sabre\DAV\Exception\Forbidden',
],
[
// cannot delete non-assignable tag
- new SystemTag(1, 'Original', true, false),
+ new SystemTag('1', 'Original', true, false),
'Sabre\DAV\Exception\Forbidden',
],
];
@@ -265,7 +252,7 @@ class SystemTagNodeTest extends \Test\TestCase {
/**
* @dataProvider tagNodeDeleteProviderPermissionException
*/
- public function testDeleteTagPermissionException(ISystemTag $tag, $expectedException): void {
+ public function testDeleteTagPermissionException(ISystemTag $tag, string $expectedException): void {
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($tag)
@@ -281,7 +268,7 @@ class SystemTagNodeTest extends \Test\TestCase {
public function testDeleteTagNotFound(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $tag = new SystemTag(1, 'tag1', true, true);
+ $tag = new SystemTag('1', 'tag1', true, true);
$this->tagManager->expects($this->any())
->method('canUserSeeTag')
->with($tag)
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
index ab5253147a7..a9368794cc2 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -20,6 +21,7 @@ use OCP\SystemTag\ISystemTag;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagAlreadyExistsException;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Tree;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
@@ -32,67 +34,26 @@ class SystemTagPluginTest extends \Test\TestCase {
public const CANASSIGN_PROPERTYNAME = SystemTagPlugin::CANASSIGN_PROPERTYNAME;
public const GROUPS_PROPERTYNAME = SystemTagPlugin::GROUPS_PROPERTYNAME;
- /**
- * @var \Sabre\DAV\Server
- */
- private $server;
-
- /**
- * @var \Sabre\DAV\Tree
- */
- private $tree;
-
- /**
- * @var ISystemTagManager
- */
- private $tagManager;
-
- /**
- * @var IGroupManager
- */
- private $groupManager;
-
- /**
- * @var IUserSession
- */
- private $userSession;
-
- /**
- * @var IRootFolder
- */
- private $rootFolder;
-
- /**
- * @var IUser
- */
- private $user;
-
- /**
- * @var SystemTagPlugin
- */
- private $plugin;
-
- /**
- * @var ISystemTagObjectMapper
- */
- private $tagMapper;
+ private \Sabre\DAV\Server $server;
+ private \Sabre\DAV\Tree&MockObject $tree;
+ private ISystemTagManager&MockObject $tagManager;
+ private IGroupManager&MockObject $groupManager;
+ private IUserSession&MockObject $userSession;
+ private IRootFolder&MockObject $rootFolder;
+ private IUser&MockObject $user;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private SystemTagPlugin $plugin;
protected function setUp(): void {
parent::setUp();
- $this->tree = $this->getMockBuilder(Tree::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tree = $this->createMock(Tree::class);
$this->server = new \Sabre\DAV\Server($this->tree);
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->groupManager = $this->getMockBuilder(IGroupManager::class)
- ->getMock();
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->groupManager = $this->createMock(IGroupManager::class);
+ $this->user = $this->createMock(IUser::class);
+ $this->userSession = $this->createMock(IUserSession::class);
$this->userSession
->expects($this->any())
->method('getUser')
@@ -102,10 +63,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->method('isLoggedIn')
->willReturn(true);
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
- $this->rootFolder = $this->getMockBuilder(IRootFolder::class)
- ->getMock();
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
+ $this->rootFolder = $this->createMock(IRootFolder::class);
$this->plugin = new SystemTagPlugin(
$this->tagManager,
@@ -117,10 +76,10 @@ class SystemTagPluginTest extends \Test\TestCase {
$this->plugin->initialize($this->server);
}
- public function getPropertiesDataProvider() {
+ public static function getPropertiesDataProvider(): array {
return [
[
- new SystemTag(1, 'Test', true, true),
+ new SystemTag('1', 'Test', true, true),
[],
[
self::ID_PROPERTYNAME,
@@ -138,7 +97,7 @@ class SystemTagPluginTest extends \Test\TestCase {
]
],
[
- new SystemTag(1, 'Test', true, false),
+ new SystemTag('1', 'Test', true, false),
[],
[
self::ID_PROPERTYNAME,
@@ -156,7 +115,7 @@ class SystemTagPluginTest extends \Test\TestCase {
]
],
[
- new SystemTag(1, 'Test', true, false),
+ new SystemTag('1', 'Test', true, false),
['group1', 'group2'],
[
self::ID_PROPERTYNAME,
@@ -168,7 +127,7 @@ class SystemTagPluginTest extends \Test\TestCase {
]
],
[
- new SystemTag(1, 'Test', true, true),
+ new SystemTag('1', 'Test', true, true),
['group1', 'group2'],
[
self::ID_PROPERTYNAME,
@@ -186,7 +145,7 @@ class SystemTagPluginTest extends \Test\TestCase {
/**
* @dataProvider getPropertiesDataProvider
*/
- public function testGetProperties(ISystemTag $systemTag, $groups, $requestedProperties, $expectedProperties): void {
+ public function testGetProperties(ISystemTag $systemTag, array $groups, array $requestedProperties, array $expectedProperties): void {
$this->user->expects($this->any())
->method('getUID')
->willReturn('admin');
@@ -237,7 +196,7 @@ class SystemTagPluginTest extends \Test\TestCase {
public function testGetPropertiesForbidden(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$requestedProperties = [
self::ID_PROPERTYNAME,
self::GROUPS_PROPERTYNAME,
@@ -276,7 +235,7 @@ class SystemTagPluginTest extends \Test\TestCase {
}
public function testUpdatePropertiesAdmin(): void {
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$this->user->expects($this->any())
->method('getUID')
->willReturn('admin');
@@ -334,7 +293,7 @@ class SystemTagPluginTest extends \Test\TestCase {
public function testUpdatePropertiesForbidden(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$this->user->expects($this->any())
->method('getUID')
->willReturn('admin');
@@ -375,7 +334,7 @@ class SystemTagPluginTest extends \Test\TestCase {
$propPatch->commit();
}
- public function createTagInsufficientPermissionsProvider() {
+ public static function createTagInsufficientPermissionsProvider(): array {
return [
[true, false, ''],
[false, true, ''],
@@ -385,7 +344,7 @@ class SystemTagPluginTest extends \Test\TestCase {
/**
* @dataProvider createTagInsufficientPermissionsProvider
*/
- public function testCreateNotAssignableTagAsRegularUser($userVisible, $userAssignable, $groups): void {
+ public function testCreateNotAssignableTagAsRegularUser(bool $userVisible, bool $userAssignable, string $groups): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
$this->expectExceptionMessage('Not sufficient permissions');
@@ -408,9 +367,7 @@ class SystemTagPluginTest extends \Test\TestCase {
}
$requestData = json_encode($requestData);
- $node = $this->getMockBuilder(SystemTagsByIdCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsByIdCollection::class);
$this->tagManager->expects($this->never())
->method('createTag');
$this->tagManager->expects($this->never())
@@ -421,12 +378,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('/systemtags')
->willReturn($node);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -445,7 +398,7 @@ class SystemTagPluginTest extends \Test\TestCase {
}
public function testCreateTagInByIdCollectionAsRegularUser(): void {
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$requestData = json_encode([
'name' => 'Test',
@@ -453,9 +406,7 @@ class SystemTagPluginTest extends \Test\TestCase {
'userAssignable' => true,
]);
- $node = $this->getMockBuilder(SystemTagsByIdCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsByIdCollection::class);
$this->tagManager->expects($this->once())
->method('createTag')
->with('Test', true, true)
@@ -466,12 +417,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('/systemtags')
->willReturn($node);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -497,7 +444,7 @@ class SystemTagPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
- public function createTagProvider() {
+ public static function createTagProvider(): array {
return [
[true, false, ''],
[false, false, ''],
@@ -508,7 +455,7 @@ class SystemTagPluginTest extends \Test\TestCase {
/**
* @dataProvider createTagProvider
*/
- public function testCreateTagInByIdCollection($userVisible, $userAssignable, $groups): void {
+ public function testCreateTagInByIdCollection(bool $userVisible, bool $userAssignable, string $groups): void {
$this->user->expects($this->once())
->method('getUID')
->willReturn('admin');
@@ -518,7 +465,7 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('admin')
->willReturn(true);
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$requestData = [
'name' => 'Test',
@@ -530,9 +477,7 @@ class SystemTagPluginTest extends \Test\TestCase {
}
$requestData = json_encode($requestData);
- $node = $this->getMockBuilder(SystemTagsByIdCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsByIdCollection::class);
$this->tagManager->expects($this->once())
->method('createTag')
->with('Test', $userVisible, $userAssignable)
@@ -553,12 +498,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('/systemtags')
->willReturn($node);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -584,7 +525,7 @@ class SystemTagPluginTest extends \Test\TestCase {
$this->plugin->httpPost($request, $response);
}
- public function nodeClassProvider() {
+ public static function nodeClassProvider(): array {
return [
['\OCA\DAV\SystemTag\SystemTagsByIdCollection'],
['\OCA\DAV\SystemTag\SystemTagsObjectMappingCollection'],
@@ -601,7 +542,7 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('admin')
->willReturn(true);
- $systemTag = new SystemTag(1, 'Test', true, false);
+ $systemTag = new SystemTag('1', 'Test', true, false);
$requestData = json_encode([
'name' => 'Test',
@@ -609,9 +550,7 @@ class SystemTagPluginTest extends \Test\TestCase {
'userAssignable' => false,
]);
- $node = $this->getMockBuilder(SystemTagsObjectMappingCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsObjectMappingCollection::class);
$this->tagManager->expects($this->once())
->method('createTag')
@@ -627,12 +566,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->method('createFile')
->with(1);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -662,9 +597,7 @@ class SystemTagPluginTest extends \Test\TestCase {
public function testCreateTagToUnknownNode(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $node = $this->getMockBuilder(SystemTagsObjectMappingCollection::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock(SystemTagsObjectMappingCollection::class);
$this->tree->expects($this->any())
->method('getNodeForPath')
@@ -676,12 +609,8 @@ class SystemTagPluginTest extends \Test\TestCase {
$node->expects($this->never())
->method('createFile');
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
@@ -693,7 +622,7 @@ class SystemTagPluginTest extends \Test\TestCase {
/**
* @dataProvider nodeClassProvider
*/
- public function testCreateTagConflict($nodeClass): void {
+ public function testCreateTagConflict(string $nodeClass): void {
$this->expectException(\Sabre\DAV\Exception\Conflict::class);
$this->user->expects($this->once())
@@ -711,9 +640,7 @@ class SystemTagPluginTest extends \Test\TestCase {
'userAssignable' => false,
]);
- $node = $this->getMockBuilder($nodeClass)
- ->disableOriginalConstructor()
- ->getMock();
+ $node = $this->createMock($nodeClass);
$this->tagManager->expects($this->once())
->method('createTag')
->with('Test', true, false)
@@ -724,12 +651,8 @@ class SystemTagPluginTest extends \Test\TestCase {
->with('/systemtags')
->willReturn($node);
- $request = $this->getMockBuilder(RequestInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $response = $this->getMockBuilder(ResponseInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(RequestInterface::class);
+ $response = $this->createMock(ResponseInterface::class);
$request->expects($this->once())
->method('getPath')
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php
index b26171650a2..a6c97af26b4 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,50 +19,36 @@ use OCP\SystemTag\TagNotFoundException;
use PHPUnit\Framework\MockObject\MockObject;
class SystemTagsByIdCollectionTest extends \Test\TestCase {
-
- /**
- * @var ISystemTagManager
- */
- private $tagManager;
-
- /**
- * @var IUser
- */
- private $user;
+ private ISystemTagManager&MockObject $tagManager;
+ private IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
}
- public function getNode($isAdmin = true) {
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ public function getNode(bool $isAdmin = true) {
+ $this->user = $this->createMock(IUser::class);
$this->user->expects($this->any())
->method('getUID')
->willReturn('testuser');
- /** @var IUserSession|MockObject */
- $userSession = $this->getMockBuilder(IUserSession::class)
- ->getMock();
+ /** @var IUserSession&MockObject */
+ $userSession = $this->createMock(IUserSession::class);
$userSession->expects($this->any())
->method('getUser')
->willReturn($this->user);
- /** @var IGroupManager|MockObject */
- $groupManager = $this->getMockBuilder(IGroupManager::class)
- ->getMock();
+ /** @var IGroupManager&MockObject */
+ $groupManager = $this->createMock(IGroupManager::class);
$groupManager->expects($this->any())
->method('isAdmin')
->with('testuser')
->willReturn($isAdmin);
- /** @var ISystemTagObjectMapper|MockObject */
- $tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
-
+ /** @var ISystemTagObjectMapper&MockObject */
+ $tagMapper = $this->createMock(ISystemTagObjectMapper::class);
return new SystemTagsByIdCollection(
$this->tagManager,
$userSession,
@@ -70,18 +57,18 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
);
}
- public function adminFlagProvider() {
+ public static function adminFlagProvider(): array {
return [[true], [false]];
}
-
+
public function testForbiddenCreateFile(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->getNode()->createFile('555');
}
-
+
public function testForbiddenCreateDirectory(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
@@ -89,7 +76,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
}
public function testGetChild(): void {
- $tag = new SystemTag(123, 'Test', true, false);
+ $tag = new SystemTag('123', 'Test', true, false);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
@@ -107,7 +94,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->assertEquals($tag, $childNode->getSystemTag());
}
-
+
public function testGetChildInvalidName(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
@@ -119,7 +106,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->getNode()->getChild('invalid');
}
-
+
public function testGetChildNotFound(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
@@ -131,11 +118,11 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->getNode()->getChild('444');
}
-
+
public function testGetChildUserNotVisible(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $tag = new SystemTag(123, 'Test', false, false);
+ $tag = new SystemTag('123', 'Test', false, false);
$this->tagManager->expects($this->once())
->method('getTagsByIds')
@@ -146,8 +133,8 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
}
public function testGetChildrenAdmin(): void {
- $tag1 = new SystemTag(123, 'One', true, false);
- $tag2 = new SystemTag(456, 'Two', true, true);
+ $tag1 = new SystemTag('123', 'One', true, false);
+ $tag2 = new SystemTag('456', 'Two', true, true);
$this->tagManager->expects($this->once())
->method('getAllTags')
@@ -165,8 +152,8 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
}
public function testGetChildrenNonAdmin(): void {
- $tag1 = new SystemTag(123, 'One', true, false);
- $tag2 = new SystemTag(456, 'Two', true, true);
+ $tag1 = new SystemTag('123', 'One', true, false);
+ $tag2 = new SystemTag('456', 'Two', true, true);
$this->tagManager->expects($this->once())
->method('getAllTags')
@@ -191,7 +178,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->assertCount(0, $this->getNode()->getChildren());
}
- public function childExistsProvider() {
+ public static function childExistsProvider(): array {
return [
[true, true],
[false, false],
@@ -201,8 +188,8 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
/**
* @dataProvider childExistsProvider
*/
- public function testChildExists($userVisible, $expectedResult): void {
- $tag = new SystemTag(123, 'One', $userVisible, false);
+ public function testChildExists(bool $userVisible, bool $expectedResult): void {
+ $tag = new SystemTag('123', 'One', $userVisible, false);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
@@ -225,7 +212,7 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase {
$this->assertFalse($this->getNode()->childExists('123'));
}
-
+
public function testChildExistsBadRequest(): void {
$this->expectException(\Sabre\DAV\Exception\BadRequest::class);
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php
index 66052847f16..59cd3955f1f 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,27 +14,24 @@ use OCP\IUser;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagNotFoundException;
+use PHPUnit\Framework\MockObject\MockObject;
class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
- private ISystemTagManager $tagManager;
- private ISystemTagObjectMapper $tagMapper;
- private IUser $user;
+ private ISystemTagManager&MockObject $tagManager;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private IUser&MockObject $user;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
-
- $this->user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
+ $this->user = $this->createMock(IUser::class);
}
- public function getNode(array $writableNodeIds = []) {
+ public function getNode(array $writableNodeIds = []): SystemTagsObjectMappingCollection {
return new SystemTagsObjectMappingCollection(
- 111,
+ '111',
'files',
$this->user,
$this->tagManager,
@@ -86,7 +84,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
$this->getNode()->createFile('555');
}
- public function permissionsProvider() {
+ public static function permissionsProvider(): array {
return [
// invisible, tag does not exist for user
[false, true, '\Sabre\DAV\Exception\PreconditionFailed'],
@@ -98,7 +96,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
/**
* @dataProvider permissionsProvider
*/
- public function testAssignTagNoPermission($userVisible, $userAssignable, $expectedException): void {
+ public function testAssignTagNoPermission(bool $userVisible, bool $userAssignable, string $expectedException): void {
$tag = new SystemTag('1', 'Test', $userVisible, $userAssignable);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
@@ -146,7 +144,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
}
public function testGetChild(): void {
- $tag = new SystemTag(555, 'TheTag', true, false);
+ $tag = new SystemTag('555', 'TheTag', true, false);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
@@ -172,7 +170,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
public function testGetChildNonVisible(): void {
$this->expectException(\Sabre\DAV\Exception\NotFound::class);
- $tag = new SystemTag(555, 'TheTag', false, false);
+ $tag = new SystemTag('555', 'TheTag', false, false);
$this->tagManager->expects($this->once())
->method('canUserSeeTag')
->with($tag)
@@ -228,9 +226,9 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
}
public function testGetChildren(): void {
- $tag1 = new SystemTag(555, 'TagOne', true, false);
- $tag2 = new SystemTag(556, 'TagTwo', true, true);
- $tag3 = new SystemTag(557, 'InvisibleTag', false, true);
+ $tag1 = new SystemTag('555', 'TagOne', true, false);
+ $tag2 = new SystemTag('556', 'TagTwo', true, true);
+ $tag3 = new SystemTag('557', 'InvisibleTag', false, true);
$this->tagMapper->expects($this->once())
->method('getTagIdsForObjects')
@@ -265,7 +263,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
}
public function testChildExistsWithVisibleTag(): void {
- $tag = new SystemTag(555, 'TagOne', true, false);
+ $tag = new SystemTag('555', 'TagOne', true, false);
$this->tagMapper->expects($this->once())
->method('haveTag')
@@ -286,7 +284,7 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase {
}
public function testChildExistsWithInvisibleTag(): void {
- $tag = new SystemTag(555, 'TagOne', false, false);
+ $tag = new SystemTag('555', 'TagOne', false, false);
$this->tagMapper->expects($this->once())
->method('haveTag')
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php
index ba9304d33fc..301eb528436 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -15,60 +16,39 @@ use OCP\IUser;
use OCP\IUserSession;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
+use PHPUnit\Framework\MockObject\MockObject;
class SystemTagsObjectTypeCollectionTest extends \Test\TestCase {
-
- /**
- * @var SystemTagsObjectTypeCollection
- */
- private $node;
-
- /**
- * @var ISystemTagManager
- */
- private $tagManager;
-
- /**
- * @var ISystemTagObjectMapper
- */
- private $tagMapper;
-
- /**
- * @var Folder
- */
- private $userFolder;
+ private ISystemTagManager&MockObject $tagManager;
+ private ISystemTagObjectMapper&MockObject $tagMapper;
+ private Folder&MockObject $userFolder;
+ private SystemTagsObjectTypeCollection $node;
protected function setUp(): void {
parent::setUp();
- $this->tagManager = $this->getMockBuilder(ISystemTagManager::class)
- ->getMock();
- $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class)
- ->getMock();
+ $this->tagManager = $this->createMock(ISystemTagManager::class);
+ $this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
- $user = $this->getMockBuilder(IUser::class)
- ->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('getUID')
->willReturn('testuser');
- $userSession = $this->getMockBuilder(IUserSession::class)
- ->getMock();
+ $userSession = $this->createMock(IUserSession::class);
$userSession->expects($this->any())
->method('getUser')
->willReturn($user);
- $groupManager = $this->getMockBuilder(IGroupManager::class)
- ->getMock();
+ $groupManager = $this->createMock(IGroupManager::class);
$groupManager->expects($this->any())
->method('isAdmin')
->with('testuser')
->willReturn(true);
- $this->userFolder = $this->getMockBuilder(Folder::class)
- ->getMock();
+ $this->userFolder = $this->createMock(Folder::class);
$userFolder = $this->userFolder;
$closure = function ($name) use ($userFolder) {
- $node = $userFolder->getFirstNodeById(intval($name));
+ $node = $userFolder->getFirstNodeById((int)$name);
return $node !== null;
};
$writeAccessClosure = function ($name) use ($userFolder) {
diff --git a/apps/dav/tests/unit/Upload/AssemblyStreamTest.php b/apps/dav/tests/unit/Upload/AssemblyStreamTest.php
index 854d02bfc10..e0bc3c589bc 100644
--- a/apps/dav/tests/unit/Upload/AssemblyStreamTest.php
+++ b/apps/dav/tests/unit/Upload/AssemblyStreamTest.php
@@ -15,7 +15,11 @@ class AssemblyStreamTest extends \Test\TestCase {
/**
* @dataProvider providesNodes()
*/
- public function testGetContents($expected, $nodes): void {
+ public function testGetContents(string $expected, array $nodeData): void {
+ $nodes = [];
+ foreach ($nodeData as $data) {
+ $nodes[] = $this->buildNode(...$data);
+ }
$stream = AssemblyStream::wrap($nodes);
$content = stream_get_contents($stream);
@@ -25,7 +29,11 @@ class AssemblyStreamTest extends \Test\TestCase {
/**
* @dataProvider providesNodes()
*/
- public function testGetContentsFread($expected, $nodes, $chunkLength = 3): void {
+ public function testGetContentsFread(string $expected, array $nodeData, int $chunkLength = 3): void {
+ $nodes = [];
+ foreach ($nodeData as $data) {
+ $nodes[] = $this->buildNode(...$data);
+ }
$stream = AssemblyStream::wrap($nodes);
$content = '';
@@ -43,7 +51,12 @@ class AssemblyStreamTest extends \Test\TestCase {
/**
* @dataProvider providesNodes()
*/
- public function testSeek($expected, $nodes): void {
+ public function testSeek(string $expected, array $nodeData): void {
+ $nodes = [];
+ foreach ($nodeData as $data) {
+ $nodes[] = $this->buildNode(...$data);
+ }
+
$stream = AssemblyStream::wrap($nodes);
$offset = floor(strlen($expected) * 0.6);
@@ -55,75 +68,75 @@ class AssemblyStreamTest extends \Test\TestCase {
$this->assertEquals(substr($expected, $offset), $content);
}
- public function providesNodes() {
- $data8k = $this->makeData(8192);
- $dataLess8k = $this->makeData(8191);
+ public static function providesNodes(): array {
+ $data8k = self::makeData(8192);
+ $dataLess8k = self::makeData(8191);
$tonofnodes = [];
$tonofdata = '';
for ($i = 0; $i < 101; $i++) {
$thisdata = random_int(0, 100); // variable length and content
$tonofdata .= $thisdata;
- $tonofnodes[] = $this->buildNode((string)$i, (string)$thisdata);
+ $tonofnodes[] = [(string)$i, (string)$thisdata];
}
return[
'one node zero bytes' => [
'', [
- $this->buildNode('0', '')
+ ['0', ''],
]],
'one node only' => [
'1234567890', [
- $this->buildNode('0', '1234567890')
+ ['0', '1234567890'],
]],
'one node buffer boundary' => [
$data8k, [
- $this->buildNode('0', $data8k)
+ ['0', $data8k],
]],
'two nodes' => [
'1234567890', [
- $this->buildNode('1', '67890'),
- $this->buildNode('0', '12345')
+ ['1', '67890'],
+ ['0', '12345'],
]],
'two nodes end on buffer boundary' => [
$data8k . $data8k, [
- $this->buildNode('1', $data8k),
- $this->buildNode('0', $data8k)
+ ['1', $data8k],
+ ['0', $data8k],
]],
'two nodes with one on buffer boundary' => [
$data8k . $dataLess8k, [
- $this->buildNode('1', $dataLess8k),
- $this->buildNode('0', $data8k)
+ ['1', $dataLess8k],
+ ['0', $data8k],
]],
'two nodes on buffer boundary plus one byte' => [
$data8k . 'X' . $data8k, [
- $this->buildNode('1', $data8k),
- $this->buildNode('0', $data8k . 'X')
+ ['1', $data8k],
+ ['0', $data8k . 'X'],
]],
'two nodes on buffer boundary plus one byte at the end' => [
$data8k . $data8k . 'X', [
- $this->buildNode('1', $data8k . 'X'),
- $this->buildNode('0', $data8k)
+ ['1', $data8k . 'X'],
+ ['0', $data8k],
]],
'a ton of nodes' => [
$tonofdata, $tonofnodes
],
'one read over multiple nodes' => [
'1234567890', [
- $this->buildNode('0', '1234'),
- $this->buildNode('1', '5678'),
- $this->buildNode('2', '90'),
+ ['0', '1234'],
+ ['1', '5678'],
+ ['2', '90'],
], 10],
'two reads over multiple nodes' => [
'1234567890', [
- $this->buildNode('0', '1234'),
- $this->buildNode('1', '5678'),
- $this->buildNode('2', '90'),
+ ['0', '1234'],
+ ['1', '5678'],
+ ['2', '90'],
], 5],
];
}
- private function makeData($count) {
+ private static function makeData(int $count): string {
$data = '';
$base = '1234567890';
$j = 0;
@@ -137,10 +150,10 @@ class AssemblyStreamTest extends \Test\TestCase {
return $data;
}
- private function buildNode($name, $data) {
+ private function buildNode(string $name, string $data) {
$node = $this->getMockBuilder(File::class)
- ->setMethods(['getName', 'get', 'getSize'])
- ->getMockForAbstractClass();
+ ->onlyMethods(['getName', 'get', 'getSize'])
+ ->getMock();
$node->expects($this->any())
->method('getName')
diff --git a/apps/dav/tests/unit/Upload/ChunkingPluginTest.php b/apps/dav/tests/unit/Upload/ChunkingPluginTest.php
index 87feebf5d09..00ed7657dd3 100644
--- a/apps/dav/tests/unit/Upload/ChunkingPluginTest.php
+++ b/apps/dav/tests/unit/Upload/ChunkingPluginTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2017 ownCloud GmbH
@@ -10,40 +11,24 @@ namespace OCA\DAV\Tests\unit\Upload;
use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Upload\ChunkingPlugin;
use OCA\DAV\Upload\FutureFile;
+use PHPUnit\Framework\MockObject\MockObject;
use Sabre\DAV\Exception\NotFound;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
use Test\TestCase;
class ChunkingPluginTest extends TestCase {
- /**
- * @var \Sabre\DAV\Server | \PHPUnit\Framework\MockObject\MockObject
- */
- private $server;
-
- /**
- * @var \Sabre\DAV\Tree | \PHPUnit\Framework\MockObject\MockObject
- */
- private $tree;
-
- /**
- * @var ChunkingPlugin
- */
- private $plugin;
- /** @var RequestInterface | \PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var ResponseInterface | \PHPUnit\Framework\MockObject\MockObject */
- private $response;
+ private \Sabre\DAV\Server&MockObject $server;
+ private \Sabre\DAV\Tree&MockObject $tree;
+ private ChunkingPlugin $plugin;
+ private RequestInterface&MockObject $request;
+ private ResponseInterface&MockObject $response;
protected function setUp(): void {
parent::setUp();
- $this->server = $this->getMockBuilder('\Sabre\DAV\Server')
- ->disableOriginalConstructor()
- ->getMock();
- $this->tree = $this->getMockBuilder('\Sabre\DAV\Tree')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->server = $this->createMock('\Sabre\DAV\Server');
+ $this->tree = $this->createMock('\Sabre\DAV\Tree');
$this->server->tree = $this->tree;
$this->plugin = new ChunkingPlugin();
@@ -78,14 +63,10 @@ class ChunkingPluginTest extends TestCase {
$this->tree->expects($this->exactly(2))
->method('getNodeForPath')
- ->withConsecutive(
- ['source'],
- ['target'],
- )
- ->willReturnOnConsecutiveCalls(
- $sourceNode,
- $targetNode,
- );
+ ->willReturnMap([
+ ['source', $sourceNode],
+ ['target', $targetNode],
+ ]);
$this->response->expects($this->never())
->method('setStatus');
@@ -98,16 +79,20 @@ class ChunkingPluginTest extends TestCase {
->method('getSize')
->willReturn(4);
+ $calls = [
+ ['source', $sourceNode],
+ ['target', new NotFound()],
+ ];
$this->tree->expects($this->exactly(2))
->method('getNodeForPath')
- ->withConsecutive(
- ['source'],
- ['target'],
- )
- ->willReturnOnConsecutiveCalls(
- $sourceNode,
- $this->throwException(new NotFound()),
- );
+ ->willReturnCallback(function (string $path) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected[0], $path);
+ if ($expected[1] instanceof \Throwable) {
+ throw $expected[1];
+ }
+ return $expected[1];
+ });
$this->tree->expects($this->any())
->method('nodeExists')
->with('target')
@@ -132,17 +117,21 @@ class ChunkingPluginTest extends TestCase {
->method('getSize')
->willReturn(4);
-
+ $calls = [
+ ['source', $sourceNode],
+ ['target', new NotFound()],
+ ];
$this->tree->expects($this->exactly(2))
->method('getNodeForPath')
- ->withConsecutive(
- ['source'],
- ['target'],
- )
- ->willReturnOnConsecutiveCalls(
- $sourceNode,
- $this->throwException(new NotFound()),
- );
+ ->willReturnCallback(function (string $path) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected[0], $path);
+ if ($expected[1] instanceof \Throwable) {
+ throw $expected[1];
+ }
+ return $expected[1];
+ });
+
$this->tree->expects($this->any())
->method('nodeExists')
->with('target')
@@ -175,17 +164,21 @@ class ChunkingPluginTest extends TestCase {
->method('getSize')
->willReturn(3);
-
+ $calls = [
+ ['source', $sourceNode],
+ ['target', new NotFound()],
+ ];
$this->tree->expects($this->exactly(2))
->method('getNodeForPath')
- ->withConsecutive(
- ['source'],
- ['target'],
- )
- ->willReturnOnConsecutiveCalls(
- $sourceNode,
- $this->throwException(new NotFound()),
- );
+ ->willReturnCallback(function (string $path) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected[0], $path);
+ if ($expected[1] instanceof \Throwable) {
+ throw $expected[1];
+ }
+ return $expected[1];
+ });
+
$this->request->expects($this->once())
->method('getHeader')
->with('OC-Total-Length')
diff --git a/apps/dav/tests/unit/Upload/FutureFileTest.php b/apps/dav/tests/unit/Upload/FutureFileTest.php
index 750670992eb..1409df937c0 100644
--- a/apps/dav/tests/unit/Upload/FutureFileTest.php
+++ b/apps/dav/tests/unit/Upload/FutureFileTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -45,7 +46,7 @@ class FutureFileTest extends \Test\TestCase {
public function testDelete(): void {
$d = $this->getMockBuilder(Directory::class)
->disableOriginalConstructor()
- ->setMethods(['delete'])
+ ->onlyMethods(['delete'])
->getMock();
$d->expects($this->once())
@@ -55,7 +56,7 @@ class FutureFileTest extends \Test\TestCase {
$f->delete();
}
-
+
public function testPut(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
@@ -63,7 +64,7 @@ class FutureFileTest extends \Test\TestCase {
$f->put('');
}
-
+
public function testSetName(): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
@@ -71,13 +72,10 @@ class FutureFileTest extends \Test\TestCase {
$f->setName('');
}
- /**
- * @return FutureFile
- */
- private function mockFutureFile() {
+ private function mockFutureFile(): FutureFile {
$d = $this->getMockBuilder(Directory::class)
->disableOriginalConstructor()
- ->setMethods(['getETag', 'getLastModified', 'getChildren'])
+ ->onlyMethods(['getETag', 'getLastModified', 'getChildren'])
->getMock();
$d->expects($this->any())
diff --git a/apps/dav/tests/unit/Upload/UploadAutoMkcolPluginTest.php b/apps/dav/tests/unit/Upload/UploadAutoMkcolPluginTest.php
new file mode 100644
index 00000000000..9467b5df249
--- /dev/null
+++ b/apps/dav/tests/unit/Upload/UploadAutoMkcolPluginTest.php
@@ -0,0 +1,135 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\DAV\Tests\unit\Upload;
+
+use Generator;
+use OCA\DAV\Upload\UploadAutoMkcolPlugin;
+use PHPUnit\Framework\MockObject\MockObject;
+use Sabre\DAV\ICollection;
+use Sabre\DAV\INode;
+use Sabre\DAV\Server;
+use Sabre\DAV\Tree;
+use Sabre\HTTP\RequestInterface;
+use Sabre\HTTP\ResponseInterface;
+use Test\TestCase;
+
+class UploadAutoMkcolPluginTest extends TestCase {
+
+ private Tree&MockObject $tree;
+ private RequestInterface&MockObject $request;
+ private ResponseInterface&MockObject $response;
+
+ public static function dataMissingHeaderShouldReturnTrue(): Generator {
+ yield 'missing X-NC-WebDAV-Auto-Mkcol header' => [null];
+ yield 'empty X-NC-WebDAV-Auto-Mkcol header' => [''];
+ yield 'invalid X-NC-WebDAV-Auto-Mkcol header' => ['enable'];
+ }
+
+ public function testBeforeMethodWithRootNodeNotAnICollectionShouldReturnTrue(): void {
+ $this->request->method('getHeader')->willReturn('1');
+ $this->request->expects(self::once())
+ ->method('getPath')
+ ->willReturn('/non-relevant/path.txt');
+ $this->tree->expects(self::once())
+ ->method('nodeExists')
+ ->with('/non-relevant')
+ ->willReturn(false);
+
+ $mockNode = $this->getMockBuilder(INode::class);
+ $this->tree->expects(self::once())
+ ->method('getNodeForPath')
+ ->willReturn($mockNode);
+
+ $return = $this->plugin->beforeMethod($this->request, $this->response);
+ $this->assertTrue($return);
+ }
+
+ /**
+ * @dataProvider dataMissingHeaderShouldReturnTrue
+ */
+ public function testBeforeMethodWithMissingHeaderShouldReturnTrue(?string $header): void {
+ $this->request->expects(self::once())
+ ->method('getHeader')
+ ->with('X-NC-WebDAV-Auto-Mkcol')
+ ->willReturn($header);
+
+ $this->request->expects(self::never())
+ ->method('getPath');
+
+ $return = $this->plugin->beforeMethod($this->request, $this->response);
+ self::assertTrue($return);
+ }
+
+ public function testBeforeMethodWithExistingPathShouldReturnTrue(): void {
+ $this->request->method('getHeader')->willReturn('1');
+ $this->request->expects(self::once())
+ ->method('getPath')
+ ->willReturn('/files/user/deep/image.jpg');
+ $this->tree->expects(self::once())
+ ->method('nodeExists')
+ ->with('/files/user/deep')
+ ->willReturn(true);
+
+ $this->tree->expects(self::never())
+ ->method('getNodeForPath');
+
+ $return = $this->plugin->beforeMethod($this->request, $this->response);
+ self::assertTrue($return);
+ }
+
+ public function testBeforeMethodShouldSucceed(): void {
+ $this->request->method('getHeader')->willReturn('1');
+ $this->request->expects(self::once())
+ ->method('getPath')
+ ->willReturn('/files/user/my/deep/path/image.jpg');
+ $this->tree->expects(self::once())
+ ->method('nodeExists')
+ ->with('/files/user/my/deep/path')
+ ->willReturn(false);
+
+ $mockNode = $this->createMock(ICollection::class);
+ $this->tree->expects(self::once())
+ ->method('getNodeForPath')
+ ->with('/files')
+ ->willReturn($mockNode);
+ $mockNode->expects(self::exactly(4))
+ ->method('childExists')
+ ->willReturnMap([
+ ['user', true],
+ ['my', true],
+ ['deep', false],
+ ['path', false],
+ ]);
+ $mockNode->expects(self::exactly(2))
+ ->method('createDirectory');
+ $mockNode->expects(self::exactly(4))
+ ->method('getChild')
+ ->willReturn($mockNode);
+
+ $return = $this->plugin->beforeMethod($this->request, $this->response);
+ self::assertTrue($return);
+ }
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $server = $this->createMock(Server::class);
+ $this->tree = $this->createMock(Tree::class);
+
+ $server->tree = $this->tree;
+ $this->plugin = new UploadAutoMkcolPlugin();
+
+ $this->request = $this->createMock(RequestInterface::class);
+ $this->response = $this->createMock(ResponseInterface::class);
+ $server->httpRequest = $this->request;
+ $server->httpResponse = $this->response;
+
+ $this->plugin->initialize($server);
+ }
+}
diff --git a/apps/dav/tests/unit/test_fixtures/example-event-default-expected.ics b/apps/dav/tests/unit/test_fixtures/example-event-default-expected.ics
new file mode 100644
index 00000000000..09606ca5ee4
--- /dev/null
+++ b/apps/dav/tests/unit/test_fixtures/example-event-default-expected.ics
@@ -0,0 +1,20 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Sabre//Sabre VObject 4.5.6//EN
+CALSCALE:GREGORIAN
+BEGIN:VEVENT
+UID:RANDOM-UID
+DTSTAMP:20250121T000000Z
+SUMMARY:Example event - open me!
+DTSTART:20250128T100000Z
+DTEND:20250128T110000Z
+DESCRIPTION:Welcome to Nextcloud Calendar!\n\nThis is a sample event - expl
+ ore the flexibility of planning with Nextcloud Calendar by making any edit
+ s you want!\n\nWith Nextcloud Calendar\, you can:\n- Create\, edit\, and m
+ anage events effortlessly.\n- Create multiple calendars and share them wit
+ h teammates\, friends\, or family.\n- Check availability and display your
+ busy times to others.\n- Seamlessly integrate with apps and devices via Ca
+ lDAV.\n- Customize your experience: schedule recurring events\, adjust not
+ ifications and other settings.
+END:VEVENT
+END:VCALENDAR
diff --git a/apps/dav/tests/unit/test_fixtures/example-event-default-expected.ics.license b/apps/dav/tests/unit/test_fixtures/example-event-default-expected.ics.license
new file mode 100644
index 00000000000..23e2d6b1908
--- /dev/null
+++ b/apps/dav/tests/unit/test_fixtures/example-event-default-expected.ics.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/test_fixtures/example-event-expected.ics b/apps/dav/tests/unit/test_fixtures/example-event-expected.ics
new file mode 100644
index 00000000000..f9dfc37718e
--- /dev/null
+++ b/apps/dav/tests/unit/test_fixtures/example-event-expected.ics
@@ -0,0 +1,18 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//IDN nextcloud.com//Calendar app 5.2.0-dev.1//EN
+BEGIN:VEVENT
+CREATED:20250128T091147Z
+DTSTAMP:20250128T091507Z
+LAST-MODIFIED:20250128T091507Z
+SEQUENCE:2
+STATUS:CONFIRMED
+SUMMARY:Welcome!
+DESCRIPTION:Welcome!!!
+LOCATION:Test
+UID:RANDOM-UID
+DTSTART:20250128T100000Z
+DTEND:20250128T110000Z
+END:VEVENT
+END:VCALENDAR
diff --git a/apps/dav/tests/unit/test_fixtures/example-event-expected.ics.license b/apps/dav/tests/unit/test_fixtures/example-event-expected.ics.license
new file mode 100644
index 00000000000..23e2d6b1908
--- /dev/null
+++ b/apps/dav/tests/unit/test_fixtures/example-event-expected.ics.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/test_fixtures/example-event-with-attendees.ics b/apps/dav/tests/unit/test_fixtures/example-event-with-attendees.ics
new file mode 100644
index 00000000000..8018552f2a5
--- /dev/null
+++ b/apps/dav/tests/unit/test_fixtures/example-event-with-attendees.ics
@@ -0,0 +1,21 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//IDN nextcloud.com//Calendar app 5.2.0-dev.1//EN
+BEGIN:VEVENT
+CREATED:20250128T091147Z
+DTSTAMP:20250128T091507Z
+LAST-MODIFIED:20250128T091507Z
+SEQUENCE:2
+UID:3b4df6a8-84df-43d5-baf9-377b43390b70
+DTSTART;VALUE=DATE:20250130
+DTEND;VALUE=DATE:20250131
+STATUS:CONFIRMED
+SUMMARY:Welcome!
+DESCRIPTION:Welcome!!!
+LOCATION:Test
+ATTENDEE;CN=user a;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICI
+ PANT;RSVP=TRUE;LANGUAGE=en;SCHEDULE-STATUS=1.1:mailto:usera@imap.localhost
+ORGANIZER;CN=Admin Account:mailto:admin@imap.localhost
+END:VEVENT
+END:VCALENDAR
diff --git a/apps/dav/tests/unit/test_fixtures/example-event-with-attendees.ics.license b/apps/dav/tests/unit/test_fixtures/example-event-with-attendees.ics.license
new file mode 100644
index 00000000000..23e2d6b1908
--- /dev/null
+++ b/apps/dav/tests/unit/test_fixtures/example-event-with-attendees.ics.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/dav/tests/unit/test_fixtures/example-event.ics b/apps/dav/tests/unit/test_fixtures/example-event.ics
new file mode 100644
index 00000000000..6fc1848ea52
--- /dev/null
+++ b/apps/dav/tests/unit/test_fixtures/example-event.ics
@@ -0,0 +1,18 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//IDN nextcloud.com//Calendar app 5.2.0-dev.1//EN
+BEGIN:VEVENT
+CREATED:20250128T091147Z
+DTSTAMP:20250128T091507Z
+LAST-MODIFIED:20250128T091507Z
+SEQUENCE:2
+UID:3b4df6a8-84df-43d5-baf9-377b43390b70
+STATUS:CONFIRMED
+SUMMARY:Welcome!
+DESCRIPTION:Welcome!!!
+LOCATION:Test
+DTSTART:20250204T100000Z
+DTEND:20250204T110000Z
+END:VEVENT
+END:VCALENDAR
diff --git a/apps/dav/tests/unit/test_fixtures/example-event.ics.license b/apps/dav/tests/unit/test_fixtures/example-event.ics.license
new file mode 100644
index 00000000000..23e2d6b1908
--- /dev/null
+++ b/apps/dav/tests/unit/test_fixtures/example-event.ics.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/encryption/l10n/ast.js b/apps/encryption/l10n/ast.js
deleted file mode 100644
index eb732bada56..00000000000
--- a/apps/encryption/l10n/ast.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Recovery key successfully enabled" : "Habilitóse la recuperación de ficheros",
- "Could not enable recovery key. Please check your recovery key password!" : "Nun pudo habilitase la clave de recuperación. Por favor comprueba la contraseña.",
- "Recovery key successfully disabled" : "Clave de recuperación deshabilitada",
- "Could not disable recovery key. Please check your recovery key password!" : "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!",
- "Password successfully changed." : "Camudóse la contraseña",
- "Could not change the password. Maybe the old password was not correct." : "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.",
- "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.",
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves",
- "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.",
- "The share will expire on %s." : "La compartición va caducar el %s.",
- "Cheers!" : "¡Salú!",
- "Recovery key password" : "Contraseña de clave de recuperación",
- "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación",
- "Change Password" : "Camudar contraseña",
- "Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:",
- " If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.",
- "Old log-in password" : "Contraseña d'accesu vieya",
- "Current log-in password" : "Contraseña d'accesu actual",
- "Update Private Key Password" : "Anovar Contraseña de Clave Privada",
- "Enable password recovery:" : "Habilitar la recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña",
- "Enabled" : "Habilitar",
- "Disabled" : "Deshabilitáu"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/ast.json b/apps/encryption/l10n/ast.json
deleted file mode 100644
index 501e4757acf..00000000000
--- a/apps/encryption/l10n/ast.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "Recovery key successfully enabled" : "Habilitóse la recuperación de ficheros",
- "Could not enable recovery key. Please check your recovery key password!" : "Nun pudo habilitase la clave de recuperación. Por favor comprueba la contraseña.",
- "Recovery key successfully disabled" : "Clave de recuperación deshabilitada",
- "Could not disable recovery key. Please check your recovery key password!" : "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!",
- "Password successfully changed." : "Camudóse la contraseña",
- "Could not change the password. Maybe the old password was not correct." : "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.",
- "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.",
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves",
- "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.",
- "The share will expire on %s." : "La compartición va caducar el %s.",
- "Cheers!" : "¡Salú!",
- "Recovery key password" : "Contraseña de clave de recuperación",
- "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación",
- "Change Password" : "Camudar contraseña",
- "Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:",
- " If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.",
- "Old log-in password" : "Contraseña d'accesu vieya",
- "Current log-in password" : "Contraseña d'accesu actual",
- "Update Private Key Password" : "Anovar Contraseña de Clave Privada",
- "Enable password recovery:" : "Habilitar la recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña",
- "Enabled" : "Habilitar",
- "Disabled" : "Deshabilitáu"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/az.js b/apps/encryption/l10n/az.js
deleted file mode 100644
index d4190b66aab..00000000000
--- a/apps/encryption/l10n/az.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Missing recovery key password" : "Bərpa açarının şifrəsi çatışmır",
- "Please repeat the recovery key password" : "Xahiş olunur bərpa açarı şifrəsini təkrarlayasınız",
- "Repeated recovery key password does not match the provided recovery key password" : "Təkrar daxil edilən bərpa açarı şifrəsi, öncə daxil edilən bərpa açarı ilə üst-üstə düşmür ",
- "Recovery key successfully enabled" : "Bərpa açarı uğurla aktivləşdi",
- "Could not enable recovery key. Please check your recovery key password!" : "Geriqaytarılma açarının aktivləşdirilməsi mümkün olmadı. Xahiş olunur geriqaytarılma açarı üçün tələb edilən şifrəni yoxlayasınız.",
- "Recovery key successfully disabled" : "Bərpa açarı uğurla söndürüldü",
- "Could not disable recovery key. Please check your recovery key password!" : "Geriqaytarılma açarını sondürmək olmur. Xahiş edirik geriqaytarılma key açarınızı yoxlayın.",
- "Please provide the old recovery password" : "Xahiş olunur köhnə bərpa açarını daxil edəsiniz",
- "Please provide a new recovery password" : "Xahiş olunur yeni bərpa açarı şifrəsini daxil esəsiniz",
- "Please repeat the new recovery password" : "Xahiş olunur yeni bərpa açarını təkrarlayasınız",
- "Password successfully changed." : "Şifrə uğurla dəyişdirildi.",
- "Could not change the password. Maybe the old password was not correct." : "Şifrəni dəyişmək olmur, ola bilər ki, köhnə şifrə düzgün olmayıb.",
- "Could not update the private key password." : "Gizli açarın şifrəsini yeniləmək mümkün olmadı.",
- "The old password was not correct, please try again." : "Köhnə şifrə düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.",
- "The current log-in password was not correct, please try again." : "Hal-hazırki istifadəçi şifrəsi düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.",
- "Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.",
- "Cheers!" : "Şərəfə!",
- "Recovery key password" : "Açar şifrənin bərpa edilməsi",
- "Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:",
- "Change Password" : "Şifrəni dəyişdir",
- "Your private key password no longer matches your log-in password." : "Sizin gizli açar şifrəsi, artıq giriş adınızla uyğun gəlmir.",
- "Set your old private key password to your current log-in password:" : "Köhnə açar şifrənizi, sizin hal-hazırki giriş şifrənizə təyin edin: ",
- " If you don't remember your old password you can ask your administrator to recover your files." : "Əgər siz köhnə şifrənizi xatırlamırsınızsa, öz inzibatçınızdan fayllarınızın bərpasını istəyə bilərsiniz.",
- "Old log-in password" : "Köhnə giriş şifrəsi",
- "Current log-in password" : "Hal-hazırki giriş şifrəsi",
- "Update Private Key Password" : "Gizli açar şifrəsini yenilə",
- "Enable password recovery:" : "Şifrə bərpasını işə sal:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu opsiyanın aktiv edilməsi sizə, şifrənin itdiyi hallarda bütün şifrələnmiş fayllarınıza yetkinin yenidən əldə edilməsinə şərait yaradacaq",
- "Enabled" : "İşə salınıb",
- "Disabled" : "Dayandırılıb"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/az.json b/apps/encryption/l10n/az.json
deleted file mode 100644
index 6e88e1740a7..00000000000
--- a/apps/encryption/l10n/az.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "Missing recovery key password" : "Bərpa açarının şifrəsi çatışmır",
- "Please repeat the recovery key password" : "Xahiş olunur bərpa açarı şifrəsini təkrarlayasınız",
- "Repeated recovery key password does not match the provided recovery key password" : "Təkrar daxil edilən bərpa açarı şifrəsi, öncə daxil edilən bərpa açarı ilə üst-üstə düşmür ",
- "Recovery key successfully enabled" : "Bərpa açarı uğurla aktivləşdi",
- "Could not enable recovery key. Please check your recovery key password!" : "Geriqaytarılma açarının aktivləşdirilməsi mümkün olmadı. Xahiş olunur geriqaytarılma açarı üçün tələb edilən şifrəni yoxlayasınız.",
- "Recovery key successfully disabled" : "Bərpa açarı uğurla söndürüldü",
- "Could not disable recovery key. Please check your recovery key password!" : "Geriqaytarılma açarını sondürmək olmur. Xahiş edirik geriqaytarılma key açarınızı yoxlayın.",
- "Please provide the old recovery password" : "Xahiş olunur köhnə bərpa açarını daxil edəsiniz",
- "Please provide a new recovery password" : "Xahiş olunur yeni bərpa açarı şifrəsini daxil esəsiniz",
- "Please repeat the new recovery password" : "Xahiş olunur yeni bərpa açarını təkrarlayasınız",
- "Password successfully changed." : "Şifrə uğurla dəyişdirildi.",
- "Could not change the password. Maybe the old password was not correct." : "Şifrəni dəyişmək olmur, ola bilər ki, köhnə şifrə düzgün olmayıb.",
- "Could not update the private key password." : "Gizli açarın şifrəsini yeniləmək mümkün olmadı.",
- "The old password was not correct, please try again." : "Köhnə şifrə düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.",
- "The current log-in password was not correct, please try again." : "Hal-hazırki istifadəçi şifrəsi düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.",
- "Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.",
- "Cheers!" : "Şərəfə!",
- "Recovery key password" : "Açar şifrənin bərpa edilməsi",
- "Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:",
- "Change Password" : "Şifrəni dəyişdir",
- "Your private key password no longer matches your log-in password." : "Sizin gizli açar şifrəsi, artıq giriş adınızla uyğun gəlmir.",
- "Set your old private key password to your current log-in password:" : "Köhnə açar şifrənizi, sizin hal-hazırki giriş şifrənizə təyin edin: ",
- " If you don't remember your old password you can ask your administrator to recover your files." : "Əgər siz köhnə şifrənizi xatırlamırsınızsa, öz inzibatçınızdan fayllarınızın bərpasını istəyə bilərsiniz.",
- "Old log-in password" : "Köhnə giriş şifrəsi",
- "Current log-in password" : "Hal-hazırki giriş şifrəsi",
- "Update Private Key Password" : "Gizli açar şifrəsini yenilə",
- "Enable password recovery:" : "Şifrə bərpasını işə sal:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu opsiyanın aktiv edilməsi sizə, şifrənin itdiyi hallarda bütün şifrələnmiş fayllarınıza yetkinin yenidən əldə edilməsinə şərait yaradacaq",
- "Enabled" : "İşə salınıb",
- "Disabled" : "Dayandırılıb"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/bn_BD.js b/apps/encryption/l10n/bn_BD.js
deleted file mode 100644
index 2d20f4caa26..00000000000
--- a/apps/encryption/l10n/bn_BD.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে",
- "Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে",
- "Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ",
- "Cheers!" : "শুভেচ্ছা!",
- "Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:",
- "Change Password" : "কূটশব্দ পরিবর্তন করুন",
- "Enabled" : "কার্যকর",
- "Disabled" : "অকার্যকর"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/bn_BD.json b/apps/encryption/l10n/bn_BD.json
deleted file mode 100644
index 4c2c9c14b95..00000000000
--- a/apps/encryption/l10n/bn_BD.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে",
- "Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে",
- "Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ",
- "Cheers!" : "শুভেচ্ছা!",
- "Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:",
- "Change Password" : "কূটশব্দ পরিবর্তন করুন",
- "Enabled" : "কার্যকর",
- "Disabled" : "অকার্যকর"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/bs.js b/apps/encryption/l10n/bs.js
deleted file mode 100644
index 41d7074d5a4..00000000000
--- a/apps/encryption/l10n/bs.js
+++ /dev/null
@@ -1,11 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molim ažurirajte lozinku svoga privatnog ključa u svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je uključena, ali vaši ključevi nisu inicializirani, molim odjavite se i ponovno prijavite",
- "The share will expire on %s." : "Podijeljeni resurs će isteći na %s.",
- "Cheers!" : "Cheers!",
- "Enabled" : "Aktivirano",
- "Disabled" : "Onemogućeno"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/encryption/l10n/bs.json b/apps/encryption/l10n/bs.json
deleted file mode 100644
index 0beb35f1558..00000000000
--- a/apps/encryption/l10n/bs.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "translations": {
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molim ažurirajte lozinku svoga privatnog ključa u svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je uključena, ali vaši ključevi nisu inicializirani, molim odjavite se i ponovno prijavite",
- "The share will expire on %s." : "Podijeljeni resurs će isteći na %s.",
- "Cheers!" : "Cheers!",
- "Enabled" : "Aktivirano",
- "Disabled" : "Onemogućeno"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/de.js b/apps/encryption/l10n/de.js
index d32f6e03d33..d75e6ab3a18 100644
--- a/apps/encryption/l10n/de.js
+++ b/apps/encryption/l10n/de.js
@@ -4,7 +4,7 @@ OC.L10N.register(
"Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt",
"Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen",
"Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein",
- "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde erfolgreich aktiviert",
+ "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde aktiviert",
"Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfe das Passwort für den Wiederherstellungsschlüssel!",
"Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfe das Passwort für den Wiederherstellungsschlüssel!",
diff --git a/apps/encryption/l10n/de.json b/apps/encryption/l10n/de.json
index 8b47d1d9d94..a2559fdf4f3 100644
--- a/apps/encryption/l10n/de.json
+++ b/apps/encryption/l10n/de.json
@@ -2,7 +2,7 @@
"Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt",
"Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen",
"Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein",
- "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde erfolgreich aktiviert",
+ "Recovery key successfully enabled" : "Wiederherstellungsschlüssel wurde aktiviert",
"Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfe das Passwort für den Wiederherstellungsschlüssel!",
"Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfe das Passwort für den Wiederherstellungsschlüssel!",
diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js
index 92226e19cf3..94d2501a80c 100644
--- a/apps/encryption/l10n/de_DE.js
+++ b/apps/encryption/l10n/de_DE.js
@@ -4,9 +4,9 @@ OC.L10N.register(
"Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt",
"Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen",
"Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein",
- "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.",
+ "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde aktiviert.",
"Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
- "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
+ "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
"Missing parameters" : "Fehlende Parameter",
"Please provide the old recovery password" : "Bitte das alte Wiederherstellungspasswort eingeben",
diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json
index 21c6acc753c..7add3710d66 100644
--- a/apps/encryption/l10n/de_DE.json
+++ b/apps/encryption/l10n/de_DE.json
@@ -2,9 +2,9 @@
"Missing recovery key password" : "Schlüsselpasswort zur Wiederherstellung fehlt",
"Please repeat the recovery key password" : "Schlüsselpasswort zur Wiederherstellung bitte wiederholen",
"Repeated recovery key password does not match the provided recovery key password" : "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein",
- "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.",
+ "Recovery key successfully enabled" : "Der Wiederherstellungsschlüssel wurde aktiviert.",
"Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
- "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
+ "Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
"Missing parameters" : "Fehlende Parameter",
"Please provide the old recovery password" : "Bitte das alte Wiederherstellungspasswort eingeben",
diff --git a/apps/encryption/l10n/et_EE.js b/apps/encryption/l10n/et_EE.js
index 1dd886792e6..70de2cc0c46 100644
--- a/apps/encryption/l10n/et_EE.js
+++ b/apps/encryption/l10n/et_EE.js
@@ -1,46 +1,55 @@
OC.L10N.register(
"encryption",
{
- "Missing recovery key password" : "Muuda taastevõtme parool",
- "Please repeat the recovery key password" : "Palun korda uut taastevõtme parooli",
- "Repeated recovery key password does not match the provided recovery key password" : "Lahtritesse sisestatud taastevõtme paroolid ei kattu",
+ "Missing recovery key password" : "Muuda taastevõtme salasõna",
+ "Please repeat the recovery key password" : "Palun korda uut taastevõtme salasõna",
+ "Repeated recovery key password does not match the provided recovery key password" : "Sisestatud taastevõtme salasõna ei kattu",
"Recovery key successfully enabled" : "Taastevõtme lubamine õnnestus",
- "Could not enable recovery key. Please check your recovery key password!" : "Ei suutnud lubada taastevõtit. Palun kontrolli oma taastevõtme parooli!",
+ "Could not enable recovery key. Please check your recovery key password!" : "Ei suutnud taastevõtit kasutusele võtta. Palun kontrolli oma taastevõtme salasõna!",
"Recovery key successfully disabled" : "Taastevõtme keelamine õnnestus",
- "Could not disable recovery key. Please check your recovery key password!" : "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!",
+ "Could not disable recovery key. Please check your recovery key password!" : "Ei suutnud taastevõtme kasutamist lõpetada. Palun kontrolli oma taastevõtme salasõna!",
"Missing parameters" : "Parameetrid puuduvad",
"Please provide the old recovery password" : "Palun sisesta vana taastevõtme salasõna",
"Please provide a new recovery password" : "Palun sisesta uus taastevõtme salasõna",
- "Please repeat the new recovery password" : "Palun korda uut taastevõtme parooli",
- "Password successfully changed." : "Parool edukalt vahetatud.",
- "Could not change the password. Maybe the old password was not correct." : "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.",
+ "Please repeat the new recovery password" : "Palun korda uut taastevõtme salasõna",
+ "Password successfully changed." : "Salasõna vahetamine õnnestus.",
+ "Could not change the password. Maybe the old password was not correct." : "Ei suutnud muuta salasõna. Võib-olla on vana salasõna valesti sisestatud.",
"Recovery Key disabled" : "Taastevõti on välja lülitatud",
"Recovery Key enabled" : "Taastevõti on sisse lülitatud",
- "Could not update the private key password." : "Ei suutnud uuendada privaatse võtme parooli.",
- "The old password was not correct, please try again." : "Vana parool polnud õige, palun proovi uuesti.",
- "The current log-in password was not correct, please try again." : "Praeguse sisselogimise parool polnud õige, palun proovi uuesti.",
- "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.",
+ "Could not update the private key password." : "Ei suutnud uuendada privaatvõtme salasõna.",
+ "The old password was not correct, please try again." : "Vana salasõna polnud õige, palun proovi uuesti.",
+ "The current log-in password was not correct, please try again." : "Sisselogimise senine salasõna polnud õige, palun proovi uuesti.",
+ "Private key password successfully updated." : "Privaatvõtme salasõna uuendamine õnnestus.",
+ "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Krüptimisrakenduse vigane privaatvõti. Taastamaks ligipääsu krüptitud failidele palun uuenda oma isiklikest seadistustest privaatvõtme salasõna.",
"Bad Signature" : "Vigane allkiri",
"Missing Signature" : "Allkiri puudub",
+ "one-time password for server-side-encryption" : "ühekordne salasõna serveripoolse krüptimise jaoks",
"Encryption password" : "Krüptimise salasõna",
"The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Serveri peakasutaja lülitas sisse serveripoolse krüptimise. Sinu failid on krüptitud salasõnaga <strong>%s</strong>.",
"The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Serveri peakasutaja lülitas sisse serveripoolse krüptimise. Sinu failid on krüptitud salasõnaga „%s“.",
+ "Default encryption module" : "Vaikimisi krüptimismoodul",
+ "Default encryption module for server-side encryption" : "Vaikimisi krüptimismoodul serveripoolse krüptimise jaoks",
+ "Encrypt the home storage" : "Krüpti ka sisemine andmeruum",
+ "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Selle valiku kasutamisel krüptitakse failid sisemises ja välises andmeruumis. Vastasel juhul vaid välises andmeruumis.",
"Enable recovery key" : "Luba taastevõtme kasutamine",
"Disable recovery key" : "Keela taastevõtme kasutamine",
- "Recovery key password" : "Taastevõtme parool",
- "Repeat recovery key password" : "Korda taastevõtme parooli",
- "Change recovery key password:" : "Muuda taastevõtme parooli:",
- "Old recovery key password" : "Vana taastevõtme parool",
- "New recovery key password" : "Uus taastevõtme parool",
- "Repeat new recovery key password" : "Korda uut taastevõtme parooli",
- "Change Password" : "Muuda parooli",
- "Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.",
- "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.",
- "Old log-in password" : "Vana sisselogimise parool",
- "Current log-in password" : "Praegune sisselogimise parool",
- "Update Private Key Password" : "Uuenda privaatse võtme parooli",
- "Enable password recovery:" : "Luba parooli taaste:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul",
+ "The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "Taastevõti on täiendav krüptovõti, mida kasutatakse failide krüptimisel. Kui peaksid põhilise salasõna unustama, siis saad seda failide taastamisel kasutada. Salvesta ta turvaliselt digitaalsesse salasõnalaekasse või vana kooli seifi.",
+ "Recovery key password" : "Taastevõtme salasõna",
+ "Repeat recovery key password" : "Korda taastevõtme salasõna",
+ "Change recovery key password:" : "Muuda taastevõtme salasõna:",
+ "Old recovery key password" : "Vana taastevõtme salasõna",
+ "New recovery key password" : "Uus taastevõtme salasõna",
+ "Repeat new recovery key password" : "Korda uut taastevõtme salasõna",
+ "Change Password" : "Muuda salasõna",
+ "Basic encryption module" : "Lihtkrüptimise moodul",
+ "Your private key password no longer matches your log-in password." : "Sinu privaatvõtme salasõna ei kattu enam sinu sisselogimise salasõna.",
+ "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme salasõnaks oma praegune sisselogimise salasõna.",
+ "If you do not remember your old password you can ask your administrator to recover your files." : "Kui sa ei mäleta oma vana salasõna, siis palu oma süsteemihalduril taastada ligipääs failidele.",
+ "Old log-in password" : "Sisselogimise vana salasõna",
+ "Current log-in password" : "Sisselogimise praegune salasõna",
+ "Update Private Key Password" : "Uuenda privaatvõtme salasõna",
+ "Enable password recovery:" : "Luba salasõna taastamine:",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab salasõna kaotamise korral taastada ligipääsu krüptitud failidele",
"Enabled" : "Sisse lülitatud",
"Disabled" : "Välja lülitatud"
},
diff --git a/apps/encryption/l10n/et_EE.json b/apps/encryption/l10n/et_EE.json
index 1f1cad621d0..bd7a9d32858 100644
--- a/apps/encryption/l10n/et_EE.json
+++ b/apps/encryption/l10n/et_EE.json
@@ -1,44 +1,53 @@
{ "translations": {
- "Missing recovery key password" : "Muuda taastevõtme parool",
- "Please repeat the recovery key password" : "Palun korda uut taastevõtme parooli",
- "Repeated recovery key password does not match the provided recovery key password" : "Lahtritesse sisestatud taastevõtme paroolid ei kattu",
+ "Missing recovery key password" : "Muuda taastevõtme salasõna",
+ "Please repeat the recovery key password" : "Palun korda uut taastevõtme salasõna",
+ "Repeated recovery key password does not match the provided recovery key password" : "Sisestatud taastevõtme salasõna ei kattu",
"Recovery key successfully enabled" : "Taastevõtme lubamine õnnestus",
- "Could not enable recovery key. Please check your recovery key password!" : "Ei suutnud lubada taastevõtit. Palun kontrolli oma taastevõtme parooli!",
+ "Could not enable recovery key. Please check your recovery key password!" : "Ei suutnud taastevõtit kasutusele võtta. Palun kontrolli oma taastevõtme salasõna!",
"Recovery key successfully disabled" : "Taastevõtme keelamine õnnestus",
- "Could not disable recovery key. Please check your recovery key password!" : "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!",
+ "Could not disable recovery key. Please check your recovery key password!" : "Ei suutnud taastevõtme kasutamist lõpetada. Palun kontrolli oma taastevõtme salasõna!",
"Missing parameters" : "Parameetrid puuduvad",
"Please provide the old recovery password" : "Palun sisesta vana taastevõtme salasõna",
"Please provide a new recovery password" : "Palun sisesta uus taastevõtme salasõna",
- "Please repeat the new recovery password" : "Palun korda uut taastevõtme parooli",
- "Password successfully changed." : "Parool edukalt vahetatud.",
- "Could not change the password. Maybe the old password was not correct." : "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.",
+ "Please repeat the new recovery password" : "Palun korda uut taastevõtme salasõna",
+ "Password successfully changed." : "Salasõna vahetamine õnnestus.",
+ "Could not change the password. Maybe the old password was not correct." : "Ei suutnud muuta salasõna. Võib-olla on vana salasõna valesti sisestatud.",
"Recovery Key disabled" : "Taastevõti on välja lülitatud",
"Recovery Key enabled" : "Taastevõti on sisse lülitatud",
- "Could not update the private key password." : "Ei suutnud uuendada privaatse võtme parooli.",
- "The old password was not correct, please try again." : "Vana parool polnud õige, palun proovi uuesti.",
- "The current log-in password was not correct, please try again." : "Praeguse sisselogimise parool polnud õige, palun proovi uuesti.",
- "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.",
+ "Could not update the private key password." : "Ei suutnud uuendada privaatvõtme salasõna.",
+ "The old password was not correct, please try again." : "Vana salasõna polnud õige, palun proovi uuesti.",
+ "The current log-in password was not correct, please try again." : "Sisselogimise senine salasõna polnud õige, palun proovi uuesti.",
+ "Private key password successfully updated." : "Privaatvõtme salasõna uuendamine õnnestus.",
+ "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Krüptimisrakenduse vigane privaatvõti. Taastamaks ligipääsu krüptitud failidele palun uuenda oma isiklikest seadistustest privaatvõtme salasõna.",
"Bad Signature" : "Vigane allkiri",
"Missing Signature" : "Allkiri puudub",
+ "one-time password for server-side-encryption" : "ühekordne salasõna serveripoolse krüptimise jaoks",
"Encryption password" : "Krüptimise salasõna",
"The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Serveri peakasutaja lülitas sisse serveripoolse krüptimise. Sinu failid on krüptitud salasõnaga <strong>%s</strong>.",
"The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Serveri peakasutaja lülitas sisse serveripoolse krüptimise. Sinu failid on krüptitud salasõnaga „%s“.",
+ "Default encryption module" : "Vaikimisi krüptimismoodul",
+ "Default encryption module for server-side encryption" : "Vaikimisi krüptimismoodul serveripoolse krüptimise jaoks",
+ "Encrypt the home storage" : "Krüpti ka sisemine andmeruum",
+ "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Selle valiku kasutamisel krüptitakse failid sisemises ja välises andmeruumis. Vastasel juhul vaid välises andmeruumis.",
"Enable recovery key" : "Luba taastevõtme kasutamine",
"Disable recovery key" : "Keela taastevõtme kasutamine",
- "Recovery key password" : "Taastevõtme parool",
- "Repeat recovery key password" : "Korda taastevõtme parooli",
- "Change recovery key password:" : "Muuda taastevõtme parooli:",
- "Old recovery key password" : "Vana taastevõtme parool",
- "New recovery key password" : "Uus taastevõtme parool",
- "Repeat new recovery key password" : "Korda uut taastevõtme parooli",
- "Change Password" : "Muuda parooli",
- "Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.",
- "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.",
- "Old log-in password" : "Vana sisselogimise parool",
- "Current log-in password" : "Praegune sisselogimise parool",
- "Update Private Key Password" : "Uuenda privaatse võtme parooli",
- "Enable password recovery:" : "Luba parooli taaste:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul",
+ "The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "Taastevõti on täiendav krüptovõti, mida kasutatakse failide krüptimisel. Kui peaksid põhilise salasõna unustama, siis saad seda failide taastamisel kasutada. Salvesta ta turvaliselt digitaalsesse salasõnalaekasse või vana kooli seifi.",
+ "Recovery key password" : "Taastevõtme salasõna",
+ "Repeat recovery key password" : "Korda taastevõtme salasõna",
+ "Change recovery key password:" : "Muuda taastevõtme salasõna:",
+ "Old recovery key password" : "Vana taastevõtme salasõna",
+ "New recovery key password" : "Uus taastevõtme salasõna",
+ "Repeat new recovery key password" : "Korda uut taastevõtme salasõna",
+ "Change Password" : "Muuda salasõna",
+ "Basic encryption module" : "Lihtkrüptimise moodul",
+ "Your private key password no longer matches your log-in password." : "Sinu privaatvõtme salasõna ei kattu enam sinu sisselogimise salasõna.",
+ "Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme salasõnaks oma praegune sisselogimise salasõna.",
+ "If you do not remember your old password you can ask your administrator to recover your files." : "Kui sa ei mäleta oma vana salasõna, siis palu oma süsteemihalduril taastada ligipääs failidele.",
+ "Old log-in password" : "Sisselogimise vana salasõna",
+ "Current log-in password" : "Sisselogimise praegune salasõna",
+ "Update Private Key Password" : "Uuenda privaatvõtme salasõna",
+ "Enable password recovery:" : "Luba salasõna taastamine:",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab salasõna kaotamise korral taastada ligipääsu krüptitud failidele",
"Enabled" : "Sisse lülitatud",
"Disabled" : "Välja lülitatud"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js
index 750da7bc6d5..f24147117cf 100644
--- a/apps/encryption/l10n/fr.js
+++ b/apps/encryption/l10n/fr.js
@@ -53,6 +53,7 @@ OC.L10N.register(
"Basic encryption module" : "Module de chiffrement basique",
"Your private key password no longer matches your log-in password." : "Le mot de passe de votre clé privée ne correspond plus à votre mot de passe de connexion.",
"Set your old private key password to your current log-in password:" : "Remplacez l'ancien mot de passe de votre clé privée par votre mot de passe de connexion actuel :",
+ "If you do not remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez pas de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.",
"Old log-in password" : "Ancien mot de passe de connexion",
"Current log-in password" : "Actuel mot de passe de connexion",
"Update Private Key Password" : "Mettre à jour le mot de passe de votre clé privée",
diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json
index fa8d0349d01..99936241dd5 100644
--- a/apps/encryption/l10n/fr.json
+++ b/apps/encryption/l10n/fr.json
@@ -51,6 +51,7 @@
"Basic encryption module" : "Module de chiffrement basique",
"Your private key password no longer matches your log-in password." : "Le mot de passe de votre clé privée ne correspond plus à votre mot de passe de connexion.",
"Set your old private key password to your current log-in password:" : "Remplacez l'ancien mot de passe de votre clé privée par votre mot de passe de connexion actuel :",
+ "If you do not remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez pas de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.",
"Old log-in password" : "Ancien mot de passe de connexion",
"Current log-in password" : "Actuel mot de passe de connexion",
"Update Private Key Password" : "Mettre à jour le mot de passe de votre clé privée",
diff --git a/apps/encryption/l10n/hu.js b/apps/encryption/l10n/hu.js
index 7dcabf023b1..cb8f07952a4 100644
--- a/apps/encryption/l10n/hu.js
+++ b/apps/encryption/l10n/hu.js
@@ -53,6 +53,7 @@ OC.L10N.register(
"Basic encryption module" : "Alapvető titkosítási modul",
"Your private key password no longer matches your log-in password." : "A titkos kulcsa jelszava már nem egyezik meg a bejelentkezési jelszavával. ",
"Set your old private key password to your current log-in password:" : "A régi privát kulcsának jelszavának beállítása a jelenlegi bejelentkezési jelszavára:",
+ "If you do not remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára, akkor megkérheti a rendszergazdát, hogy állítsa helyre a fájljait.",
"Old log-in password" : "Régi bejelentkezési jelszó",
"Current log-in password" : "Jelenlegi bejelentkezési jelszó",
"Update Private Key Password" : "Titkos kulcs jelszavának frissítése",
diff --git a/apps/encryption/l10n/hu.json b/apps/encryption/l10n/hu.json
index 390f9467c6a..cd394f8fad1 100644
--- a/apps/encryption/l10n/hu.json
+++ b/apps/encryption/l10n/hu.json
@@ -51,6 +51,7 @@
"Basic encryption module" : "Alapvető titkosítási modul",
"Your private key password no longer matches your log-in password." : "A titkos kulcsa jelszava már nem egyezik meg a bejelentkezési jelszavával. ",
"Set your old private key password to your current log-in password:" : "A régi privát kulcsának jelszavának beállítása a jelenlegi bejelentkezési jelszavára:",
+ "If you do not remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára, akkor megkérheti a rendszergazdát, hogy állítsa helyre a fájljait.",
"Old log-in password" : "Régi bejelentkezési jelszó",
"Current log-in password" : "Jelenlegi bejelentkezési jelszó",
"Update Private Key Password" : "Titkos kulcs jelszavának frissítése",
diff --git a/apps/encryption/l10n/ia.js b/apps/encryption/l10n/ia.js
deleted file mode 100644
index 27932deb15e..00000000000
--- a/apps/encryption/l10n/ia.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "The share will expire on %s." : "Le compartir expirara le %s.",
- "Cheers!" : "Acclamationes!"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/ia.json b/apps/encryption/l10n/ia.json
deleted file mode 100644
index a935ab07c57..00000000000
--- a/apps/encryption/l10n/ia.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "The share will expire on %s." : "Le compartir expirara le %s.",
- "Cheers!" : "Acclamationes!"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/km.js b/apps/encryption/l10n/km.js
deleted file mode 100644
index 2d925c91819..00000000000
--- a/apps/encryption/l10n/km.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Password successfully changed." : "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។",
- "Could not change the password. Maybe the old password was not correct." : "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។",
- "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់",
- "Enabled" : "បាន​បើក",
- "Disabled" : "បាន​បិទ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/km.json b/apps/encryption/l10n/km.json
deleted file mode 100644
index 0beaa6b8a2f..00000000000
--- a/apps/encryption/l10n/km.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Password successfully changed." : "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។",
- "Could not change the password. Maybe the old password was not correct." : "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។",
- "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់",
- "Enabled" : "បាន​បើក",
- "Disabled" : "បាន​បិទ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/kn.js b/apps/encryption/l10n/kn.js
deleted file mode 100644
index 3f0108db173..00000000000
--- a/apps/encryption/l10n/kn.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Cheers!" : "ಆನಂದಿಸಿ !",
- "Enabled" : "ಸಕ್ರಿಯಗೊಳಿಸಿದೆ",
- "Disabled" : "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/kn.json b/apps/encryption/l10n/kn.json
deleted file mode 100644
index 3b78ba1f13e..00000000000
--- a/apps/encryption/l10n/kn.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Cheers!" : "ಆನಂದಿಸಿ !",
- "Enabled" : "ಸಕ್ರಿಯಗೊಳಿಸಿದೆ",
- "Disabled" : "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/lb.js b/apps/encryption/l10n/lb.js
deleted file mode 100644
index 478426b6a1c..00000000000
--- a/apps/encryption/l10n/lb.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Cheers!" : "Prost!",
- "Change Password" : "Passwuert änneren",
- "Enabled" : "Aktivéiert",
- "Disabled" : "Deaktivéiert"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/lb.json b/apps/encryption/l10n/lb.json
deleted file mode 100644
index 53692b969e1..00000000000
--- a/apps/encryption/l10n/lb.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Cheers!" : "Prost!",
- "Change Password" : "Passwuert änneren",
- "Enabled" : "Aktivéiert",
- "Disabled" : "Deaktivéiert"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/mk.js b/apps/encryption/l10n/mk.js
deleted file mode 100644
index 0de345e5c1e..00000000000
--- a/apps/encryption/l10n/mk.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Missing recovery key password" : "Недостасува лозинката за клучевите за обновување",
- "Password successfully changed." : "Лозинката е успешно променета.",
- "Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.",
- "Bad Signature" : "Лош потпис",
- "Missing Signature" : "Недостасува потписот",
- "Cheers!" : "Поздрав!",
- "Change Password" : "Смени лозинка",
- "Old log-in password" : "Старата лозинка за најавување",
- "Current log-in password" : "Тековната лозинка за најавување",
- "Enable password recovery:" : "Овозможи го обновувањето на лозинката:",
- "Enabled" : "Овозможен",
- "Disabled" : "Оневозможен"
-},
-"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/encryption/l10n/mk.json b/apps/encryption/l10n/mk.json
deleted file mode 100644
index 537815b7aa3..00000000000
--- a/apps/encryption/l10n/mk.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "Missing recovery key password" : "Недостасува лозинката за клучевите за обновување",
- "Password successfully changed." : "Лозинката е успешно променета.",
- "Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.",
- "Bad Signature" : "Лош потпис",
- "Missing Signature" : "Недостасува потписот",
- "Cheers!" : "Поздрав!",
- "Change Password" : "Смени лозинка",
- "Old log-in password" : "Старата лозинка за најавување",
- "Current log-in password" : "Тековната лозинка за најавување",
- "Enable password recovery:" : "Овозможи го обновувањето на лозинката:",
- "Enabled" : "Овозможен",
- "Disabled" : "Оневозможен"
-},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/oc.js b/apps/encryption/l10n/oc.js
deleted file mode 100644
index 30cae245932..00000000000
--- a/apps/encryption/l10n/oc.js
+++ /dev/null
@@ -1,59 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Missing recovery key password" : "Senhal de la clau de recuperacion mancant",
- "Please repeat the recovery key password" : "Repetètz lo senhal de la clau de recuperacion",
- "Repeated recovery key password does not match the provided recovery key password" : "Lo senhal de la clau de recuperacion e sa repeticion son pas identics.",
- "Recovery key successfully enabled" : "Clau de recuperacion activada amb succès",
- "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !",
- "Recovery key successfully disabled" : "Clau de recuperacion desactivada amb succès",
- "Could not disable recovery key. Please check your recovery key password!" : "Impossible de desactivar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !",
- "Missing parameters" : "Paramètres mancants",
- "Please provide the old recovery password" : "Entratz l'ancian senhal de recuperacion",
- "Please provide a new recovery password" : "Entratz un novèl senhal de recuperacion",
- "Please repeat the new recovery password" : "Repetissètz lo novèl senhal de recuperacion",
- "Password successfully changed." : "Senhal cambiat amb succès.",
- "Could not change the password. Maybe the old password was not correct." : "Error al moment del cambiament de senhal. Benlèu que l'ancian senhal es incorrècte.",
- "Recovery Key disabled" : "Clau de recuperacion desactivada",
- "Recovery Key enabled" : "Clau de recuperacion activada",
- "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activar la clau de recuperacion. Ensajatz tornamai o contactatz vòstre administrator",
- "Could not update the private key password." : "Impossible de metre a jorn lo senhal de la clau privada.",
- "The old password was not correct, please try again." : "L'ancian senhal es incorrècte. Ensajatz tornamai.",
- "The current log-in password was not correct, please try again." : "Lo senhal de connexion actual es pas corrècte, ensajatz tornamai.",
- "Private key password successfully updated." : "Senhal de la clau privada mes a jorn amb succès.",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Vos cal migrar vòstras claus de chiframent de l'anciana version (ownCloud <= 8.0) cap a la novèla. Executatz 'occ encryption:migrate' o contactatz vòstre administrator",
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vòstra clau privada pel chiframent es pas valida ! Metètz a jorn lo senhal de vòstra clau privada dins vòstres paramètres personals per recuperar l'accès a vòstres fichièrs chifrats.",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicacion de chiframent es activada mas vòstras claus son pas inicializadas. Desconnectatz-vos e puèi reconnectatz-vos.",
- "Encryption App is enabled and ready" : "L'aplicacion de chiframent es activada e prèsta",
- "one-time password for server-side-encryption" : "Senhal d'usatge unic pel chiframent costat servidor",
- "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de deschifrar aqueste fichièr : s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo partejar tornamai amb vos.",
- "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de legir aqueste fichièr, s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo repartejar amb vos. ",
- "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Bonjorn,\n\nL'administrator a activat lo chiframent sul servidor. Vòstres fichièrs son estats chifrats amb lo senhal seguent :\n\n%s\n\nSeguissètz aquelas instruccions :\n\n1. Connectatz-vos a l'interfàcia web e trobatz la seccion \"Modul de chiframent de basa d'\" dins vòstres paramètres personals ;\n\n2. Entratz lo senhal provesit çaisús dins lo camp \"Ancian senhal de connexion\";\n\n3. Entratz lo senhal qu'utilizatz actualament per vos connectar dins lo camp \"Senhal de connexion actual\" ;\n\n4. Validatz en clicant sul boton \"Metre a jorn lo senhal de vòstra clau privada\".\n",
- "The share will expire on %s." : "Lo partiment expirarà lo %s.",
- "Cheers!" : "A lèu !",
- "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Bonjorn,\n<br><br>\nL'administrator a activat lo chiframent sul servidor. Vòstres fichièrs son estats chifrats amb lo senhal seguent :\n\n<p style=\"font-family: monospace;\"><b>%s</b></p>\n\n<p>\nSeguissètz aquelas instruccions :\n<ol>\n<li>Connectatz-vos a l'interfàcia web e trobatz la seccion <em>\"Modul de chiframent de basa d'\"</em> dins vòstres paramètres personals;</li>\n<li>Entratz lo senhal provesit çaisús dins lo camp <em>\"Ancian senhal de connexion\"</em>;</li>\n<li>Entratz lo senhal qu'utilizatz actualament per vos connectar dins lo camp <em>\"Senhal de connexion actual\"</em>;</li>\n<li>Validatz en clicant sul boton <em>\"Metre a jorn lo senhal de vòstra clau privada\"</em>.</li>\n</ol>\n</p>",
- "Encrypt the home storage" : "Chifrar l'espaci d'emmagazinatge principal",
- "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "L'activacion d'aquesta opcion chifra totes los fichièrs de l'emmagazinatge principal, siquenon sols los espacis d'emmagazinatge extèrnes seràn chifrats",
- "Enable recovery key" : "Activar la clau de recuperacion",
- "Disable recovery key" : "Desactivar la clau de recuperacion",
- "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clau de recuperacion es una clau suplementària utilizada per chifrar los fichièrs. Permet de recuperar los fichièrs dels utilizaires se doblidan lor senhal.",
- "Recovery key password" : "Senhal de la clau de recuperacion",
- "Repeat recovery key password" : "Repetissètz lo senhal de la clau de recuperacion",
- "Change recovery key password:" : "Modificar lo senhal de la clau de recuperacion :",
- "Old recovery key password" : "Ancian senhal de la clau de recuperacion",
- "New recovery key password" : "Novèl senhal de la clau de recuperacion",
- "Repeat new recovery key password" : "Repetissètz lo novèl senhal de la clau de recuperacion",
- "Change Password" : "Cambiar de senhal",
- "basic encryption module" : "Modul de chiframent de basa d'",
- "Your private key password no longer matches your log-in password." : "Lo senhal de vòstra clau privada correspond pas mai a vòstre senhal de connexion.",
- "Set your old private key password to your current log-in password:" : "Fasètz de vòstre senhal de connexion lo senhal de vòstra clau privada :",
- " If you don't remember your old password you can ask your administrator to recover your files." : "Se vos remembratz pas mai de vòstre ancian senhal, podètz demandar a vòstre administrator de recuperar vòstres fichièrs.",
- "Old log-in password" : "Ancian senhal de connexion",
- "Current log-in password" : "Actual senhal de connexion",
- "Update Private Key Password" : "Metre a jorn lo senhal de vòstra clau privada",
- "Enable password recovery:" : "Activar la recuperacion del senhal :",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opcion vos permetrà d'obténer tornamai l'accès a vòstres fichièrs chifrats en cas de pèrda de senhal",
- "Enabled" : "Activat",
- "Disabled" : "Desactivat"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/encryption/l10n/oc.json b/apps/encryption/l10n/oc.json
deleted file mode 100644
index 1773e6b7ef1..00000000000
--- a/apps/encryption/l10n/oc.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{ "translations": {
- "Missing recovery key password" : "Senhal de la clau de recuperacion mancant",
- "Please repeat the recovery key password" : "Repetètz lo senhal de la clau de recuperacion",
- "Repeated recovery key password does not match the provided recovery key password" : "Lo senhal de la clau de recuperacion e sa repeticion son pas identics.",
- "Recovery key successfully enabled" : "Clau de recuperacion activada amb succès",
- "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !",
- "Recovery key successfully disabled" : "Clau de recuperacion desactivada amb succès",
- "Could not disable recovery key. Please check your recovery key password!" : "Impossible de desactivar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !",
- "Missing parameters" : "Paramètres mancants",
- "Please provide the old recovery password" : "Entratz l'ancian senhal de recuperacion",
- "Please provide a new recovery password" : "Entratz un novèl senhal de recuperacion",
- "Please repeat the new recovery password" : "Repetissètz lo novèl senhal de recuperacion",
- "Password successfully changed." : "Senhal cambiat amb succès.",
- "Could not change the password. Maybe the old password was not correct." : "Error al moment del cambiament de senhal. Benlèu que l'ancian senhal es incorrècte.",
- "Recovery Key disabled" : "Clau de recuperacion desactivada",
- "Recovery Key enabled" : "Clau de recuperacion activada",
- "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activar la clau de recuperacion. Ensajatz tornamai o contactatz vòstre administrator",
- "Could not update the private key password." : "Impossible de metre a jorn lo senhal de la clau privada.",
- "The old password was not correct, please try again." : "L'ancian senhal es incorrècte. Ensajatz tornamai.",
- "The current log-in password was not correct, please try again." : "Lo senhal de connexion actual es pas corrècte, ensajatz tornamai.",
- "Private key password successfully updated." : "Senhal de la clau privada mes a jorn amb succès.",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Vos cal migrar vòstras claus de chiframent de l'anciana version (ownCloud <= 8.0) cap a la novèla. Executatz 'occ encryption:migrate' o contactatz vòstre administrator",
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vòstra clau privada pel chiframent es pas valida ! Metètz a jorn lo senhal de vòstra clau privada dins vòstres paramètres personals per recuperar l'accès a vòstres fichièrs chifrats.",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicacion de chiframent es activada mas vòstras claus son pas inicializadas. Desconnectatz-vos e puèi reconnectatz-vos.",
- "Encryption App is enabled and ready" : "L'aplicacion de chiframent es activada e prèsta",
- "one-time password for server-side-encryption" : "Senhal d'usatge unic pel chiframent costat servidor",
- "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de deschifrar aqueste fichièr : s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo partejar tornamai amb vos.",
- "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de legir aqueste fichièr, s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo repartejar amb vos. ",
- "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Bonjorn,\n\nL'administrator a activat lo chiframent sul servidor. Vòstres fichièrs son estats chifrats amb lo senhal seguent :\n\n%s\n\nSeguissètz aquelas instruccions :\n\n1. Connectatz-vos a l'interfàcia web e trobatz la seccion \"Modul de chiframent de basa d'\" dins vòstres paramètres personals ;\n\n2. Entratz lo senhal provesit çaisús dins lo camp \"Ancian senhal de connexion\";\n\n3. Entratz lo senhal qu'utilizatz actualament per vos connectar dins lo camp \"Senhal de connexion actual\" ;\n\n4. Validatz en clicant sul boton \"Metre a jorn lo senhal de vòstra clau privada\".\n",
- "The share will expire on %s." : "Lo partiment expirarà lo %s.",
- "Cheers!" : "A lèu !",
- "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Bonjorn,\n<br><br>\nL'administrator a activat lo chiframent sul servidor. Vòstres fichièrs son estats chifrats amb lo senhal seguent :\n\n<p style=\"font-family: monospace;\"><b>%s</b></p>\n\n<p>\nSeguissètz aquelas instruccions :\n<ol>\n<li>Connectatz-vos a l'interfàcia web e trobatz la seccion <em>\"Modul de chiframent de basa d'\"</em> dins vòstres paramètres personals;</li>\n<li>Entratz lo senhal provesit çaisús dins lo camp <em>\"Ancian senhal de connexion\"</em>;</li>\n<li>Entratz lo senhal qu'utilizatz actualament per vos connectar dins lo camp <em>\"Senhal de connexion actual\"</em>;</li>\n<li>Validatz en clicant sul boton <em>\"Metre a jorn lo senhal de vòstra clau privada\"</em>.</li>\n</ol>\n</p>",
- "Encrypt the home storage" : "Chifrar l'espaci d'emmagazinatge principal",
- "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "L'activacion d'aquesta opcion chifra totes los fichièrs de l'emmagazinatge principal, siquenon sols los espacis d'emmagazinatge extèrnes seràn chifrats",
- "Enable recovery key" : "Activar la clau de recuperacion",
- "Disable recovery key" : "Desactivar la clau de recuperacion",
- "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clau de recuperacion es una clau suplementària utilizada per chifrar los fichièrs. Permet de recuperar los fichièrs dels utilizaires se doblidan lor senhal.",
- "Recovery key password" : "Senhal de la clau de recuperacion",
- "Repeat recovery key password" : "Repetissètz lo senhal de la clau de recuperacion",
- "Change recovery key password:" : "Modificar lo senhal de la clau de recuperacion :",
- "Old recovery key password" : "Ancian senhal de la clau de recuperacion",
- "New recovery key password" : "Novèl senhal de la clau de recuperacion",
- "Repeat new recovery key password" : "Repetissètz lo novèl senhal de la clau de recuperacion",
- "Change Password" : "Cambiar de senhal",
- "basic encryption module" : "Modul de chiframent de basa d'",
- "Your private key password no longer matches your log-in password." : "Lo senhal de vòstra clau privada correspond pas mai a vòstre senhal de connexion.",
- "Set your old private key password to your current log-in password:" : "Fasètz de vòstre senhal de connexion lo senhal de vòstra clau privada :",
- " If you don't remember your old password you can ask your administrator to recover your files." : "Se vos remembratz pas mai de vòstre ancian senhal, podètz demandar a vòstre administrator de recuperar vòstres fichièrs.",
- "Old log-in password" : "Ancian senhal de connexion",
- "Current log-in password" : "Actual senhal de connexion",
- "Update Private Key Password" : "Metre a jorn lo senhal de vòstra clau privada",
- "Enable password recovery:" : "Activar la recuperacion del senhal :",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opcion vos permetrà d'obténer tornamai l'accès a vòstres fichièrs chifrats en cas de pèrda de senhal",
- "Enabled" : "Activat",
- "Disabled" : "Desactivat"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/pt_BR.js b/apps/encryption/l10n/pt_BR.js
index a53a5cf461a..889683d62a3 100644
--- a/apps/encryption/l10n/pt_BR.js
+++ b/apps/encryption/l10n/pt_BR.js
@@ -29,20 +29,20 @@ OC.L10N.register(
"Missing Signature" : "Assinatura faltante",
"one-time password for server-side-encryption" : "senha de uso único para criptografia do lado do servidor",
"Encryption password" : "Senha de criptografia",
- "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "A administração habilitou a criptografia do lado do servidor. Seus arquivos foram criptografados usando a senha <strong>%s</strong>.",
- "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "A administração habilitou a criptografia do lado do servidor. Seus arquivos foram criptografados usando a senha \"%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 login password\" field and your current login password." : "Faça login na interface da web, vá para a seção \"Segurança\" de suas configurações pessoais e atualize sua senha de criptografia inserindo esta senha no campo \"Senha de login antiga\" e sua senha de login atual.",
- "Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível descriptografar este arquivo, provavelmente é um arquivo compartilhado. Por favor solicite ao dono do arquivo para recompartilhá-lo com você.",
- "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível ler este arquivo pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "A administração ativou a criptografia do lado do servidor. Seus arquivos foram criptografados usando a senha <strong>%s</strong>.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "A administração ativou a criptografia do lado do servidor. Seus arquivos foram criptografados usando a senha \"%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 login password\" field and your current login password." : "Por favor, faça login na interface web, vá para a seção \"Segurança\" de suas configurações pessoais e atualize sua senha de criptografia inserindo esta senha no campo \"Senha de login antiga\" e sua senha de login atual.",
+ "Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível descriptografar este arquivo, provavelmente é um arquivo compartilhado. Por favor, solicite ao proprietário do arquivo para recompartilhá-lo com você.",
+ "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível ler este arquivo, provavelmente é um arquivo compartilhado. Por favor, solicite ao proprietário do arquivo para recompartilhá-lo com você.",
"Default encryption module" : "Módulo de criptografia padrão",
"Default encryption module for server-side encryption" : "Módulo de criptografia padrão para criptografia do lado do servidor",
- "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." : "Para usar este módulo de criptografia, você precisa habilitar a criptografia do lado do servidor nas configurações de administração. Uma vez ativado, este módulo criptografará todos os seus arquivos de forma transparente. A criptografia é baseada em chaves AES 256.\nO módulo não tocará nos arquivos existentes, apenas novos arquivos serão criptografados após a criptografia do lado do servidor ser habilitada. Também não é possível desabilitar a criptografia novamente e voltar para um sistema não criptografado.\nLeia a documentação para saber todas as implicações antes de decidir habilitar a criptografia do lado do servidor.",
+ "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." : "Para usar este módulo de criptografia, você precisa ativar a criptografia do lado do servidor nas configurações de administração. Quando ativado, este módulo criptografará todos os seus arquivos de forma transparente. A criptografia é baseada em chaves AES 256.\nO módulo não tocará nos arquivos existentes, apenas novos arquivos serão criptografados após a criptografia do lado do servidor for ativada. Também não é possível desabilitar a criptografia novamente e voltar para um sistema não criptografado.\nLeia a documentação para conhecer todas as implicações antes de decidir ativar a criptografia do lado do servidor.",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "O aplicativo de criptografia está habilitado, mas suas chaves não foram inicializadas. Por favor, saia e entre novamente.",
"Encrypt the home storage" : "Criptografar a pasta de armazenamento home",
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Ativar essa opção irá criptografar todos os arquivos do armazenamento principal, caso contrário, apenas arquivos no armazenamento externo serão criptografados",
"Enable recovery key" : "Ativar chave de recuperação",
"Disable recovery key" : "Dasabilitar chave de recuperação",
- "The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "A chave de recuperação é uma chave de criptografia adicional usada para criptografar arquivos. É usado para recuperar arquivos de uma conta caso a senha seja esquecida.",
+ "The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "A chave de recuperação é uma chave de criptografia adicional usada para criptografar arquivos. É usado para recuperar arquivos de uma conta se a senha for esquecida.",
"Recovery key password" : "Senha da chave de recuperação",
"Repeat recovery key password" : "Repita a senha da chave de recuperação",
"Change recovery key password:" : "Mudar a senha da chave de recuperação:",
diff --git a/apps/encryption/l10n/pt_BR.json b/apps/encryption/l10n/pt_BR.json
index 06edec92aa1..202915f2284 100644
--- a/apps/encryption/l10n/pt_BR.json
+++ b/apps/encryption/l10n/pt_BR.json
@@ -27,20 +27,20 @@
"Missing Signature" : "Assinatura faltante",
"one-time password for server-side-encryption" : "senha de uso único para criptografia do lado do servidor",
"Encryption password" : "Senha de criptografia",
- "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "A administração habilitou a criptografia do lado do servidor. Seus arquivos foram criptografados usando a senha <strong>%s</strong>.",
- "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "A administração habilitou a criptografia do lado do servidor. Seus arquivos foram criptografados usando a senha \"%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 login password\" field and your current login password." : "Faça login na interface da web, vá para a seção \"Segurança\" de suas configurações pessoais e atualize sua senha de criptografia inserindo esta senha no campo \"Senha de login antiga\" e sua senha de login atual.",
- "Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível descriptografar este arquivo, provavelmente é um arquivo compartilhado. Por favor solicite ao dono do arquivo para recompartilhá-lo com você.",
- "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível ler este arquivo pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "A administração ativou a criptografia do lado do servidor. Seus arquivos foram criptografados usando a senha <strong>%s</strong>.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "A administração ativou a criptografia do lado do servidor. Seus arquivos foram criptografados usando a senha \"%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 login password\" field and your current login password." : "Por favor, faça login na interface web, vá para a seção \"Segurança\" de suas configurações pessoais e atualize sua senha de criptografia inserindo esta senha no campo \"Senha de login antiga\" e sua senha de login atual.",
+ "Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível descriptografar este arquivo, provavelmente é um arquivo compartilhado. Por favor, solicite ao proprietário do arquivo para recompartilhá-lo com você.",
+ "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível ler este arquivo, provavelmente é um arquivo compartilhado. Por favor, solicite ao proprietário do arquivo para recompartilhá-lo com você.",
"Default encryption module" : "Módulo de criptografia padrão",
"Default encryption module for server-side encryption" : "Módulo de criptografia padrão para criptografia do lado do servidor",
- "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." : "Para usar este módulo de criptografia, você precisa habilitar a criptografia do lado do servidor nas configurações de administração. Uma vez ativado, este módulo criptografará todos os seus arquivos de forma transparente. A criptografia é baseada em chaves AES 256.\nO módulo não tocará nos arquivos existentes, apenas novos arquivos serão criptografados após a criptografia do lado do servidor ser habilitada. Também não é possível desabilitar a criptografia novamente e voltar para um sistema não criptografado.\nLeia a documentação para saber todas as implicações antes de decidir habilitar a criptografia do lado do servidor.",
+ "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." : "Para usar este módulo de criptografia, você precisa ativar a criptografia do lado do servidor nas configurações de administração. Quando ativado, este módulo criptografará todos os seus arquivos de forma transparente. A criptografia é baseada em chaves AES 256.\nO módulo não tocará nos arquivos existentes, apenas novos arquivos serão criptografados após a criptografia do lado do servidor for ativada. Também não é possível desabilitar a criptografia novamente e voltar para um sistema não criptografado.\nLeia a documentação para conhecer todas as implicações antes de decidir ativar a criptografia do lado do servidor.",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "O aplicativo de criptografia está habilitado, mas suas chaves não foram inicializadas. Por favor, saia e entre novamente.",
"Encrypt the home storage" : "Criptografar a pasta de armazenamento home",
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Ativar essa opção irá criptografar todos os arquivos do armazenamento principal, caso contrário, apenas arquivos no armazenamento externo serão criptografados",
"Enable recovery key" : "Ativar chave de recuperação",
"Disable recovery key" : "Dasabilitar chave de recuperação",
- "The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "A chave de recuperação é uma chave de criptografia adicional usada para criptografar arquivos. É usado para recuperar arquivos de uma conta caso a senha seja esquecida.",
+ "The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "A chave de recuperação é uma chave de criptografia adicional usada para criptografar arquivos. É usado para recuperar arquivos de uma conta se a senha for esquecida.",
"Recovery key password" : "Senha da chave de recuperação",
"Repeat recovery key password" : "Repita a senha da chave de recuperação",
"Change recovery key password:" : "Mudar a senha da chave de recuperação:",
diff --git a/apps/encryption/l10n/sr@latin.js b/apps/encryption/l10n/sr@latin.js
deleted file mode 100644
index d784912394c..00000000000
--- a/apps/encryption/l10n/sr@latin.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za Aplikaciju za šifrovanje. Molimo da osvežite vašu lozinku privatnog ključa u ličnim podešavanjima kako bi dobili pristup šifrovanim fajlovima.",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo.",
- "The share will expire on %s." : "Deljeni sadržaj će isteći: %s",
- "Cheers!" : "U zdravlje!",
- "Disabled" : "Onemogućeno"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/encryption/l10n/sr@latin.json b/apps/encryption/l10n/sr@latin.json
deleted file mode 100644
index cb3a38ecf72..00000000000
--- a/apps/encryption/l10n/sr@latin.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za Aplikaciju za šifrovanje. Molimo da osvežite vašu lozinku privatnog ključa u ličnim podešavanjima kako bi dobili pristup šifrovanim fajlovima.",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo.",
- "The share will expire on %s." : "Deljeni sadržaj će isteći: %s",
- "Cheers!" : "U zdravlje!",
- "Disabled" : "Onemogućeno"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js
index 40b44b02bd7..dad06799b7e 100644
--- a/apps/encryption/l10n/tr.js
+++ b/apps/encryption/l10n/tr.js
@@ -1,36 +1,36 @@
OC.L10N.register(
"encryption",
{
- "Missing recovery key password" : "Geri yükleme anahtarı parolası eksik",
- "Please repeat the recovery key password" : "Geri yükleme anahtarı parolasını yeniden yazın",
- "Repeated recovery key password does not match the provided recovery key password" : "Geri yükleme anahtarı parolası ile onayı aynı değil",
- "Recovery key successfully enabled" : "Geri yükleme anahtarı kullanıma alındı",
- "Could not enable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı kullanıma alınamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!",
- "Recovery key successfully disabled" : "Geri yükleme anahtarı kullanımdan kaldırıldı",
- "Could not disable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı kullanımdan kaldırılamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!",
+ "Missing recovery key password" : "Kurtarma anahtarı parolası eksik",
+ "Please repeat the recovery key password" : "Kurtarma anahtarı parolasını yeniden yazın",
+ "Repeated recovery key password does not match the provided recovery key password" : "Kurtarma anahtarı parolası ile onayı aynı değil",
+ "Recovery key successfully enabled" : "Kurtarma anahtarı kullanıma alındı",
+ "Could not enable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı kullanıma alınamadı. Lütfen kurtarma anahtarı parolanızı denetleyin!",
+ "Recovery key successfully disabled" : "Kurtarma anahtarı kullanımdan kaldırıldı",
+ "Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı kullanımdan kaldırılamadı. Lütfen kurtarma anahtarı parolanızı denetleyin!",
"Missing parameters" : "Parametreler eksik",
- "Please provide the old recovery password" : "Lütfen eski geri yükleme parolasını yazın",
- "Please provide a new recovery password" : "Lütfen yeni geri yükleme parolasını yazın",
- "Please repeat the new recovery password" : "Lütfen yeni geri yükleme parolasını yeniden yazın",
+ "Please provide the old recovery password" : "Lütfen eski kurtarma parolasını yazın",
+ "Please provide a new recovery password" : "Lütfen yeni kurtarma parolasını yazın",
+ "Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yeniden yazın",
"Password successfully changed." : "Parola değiştirildi.",
"Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanızı doğru yazmamış olabilirsiniz.",
- "Recovery Key disabled" : "Geri yükleme anahtarı kullanımdan kaldırılmış",
- "Recovery Key enabled" : "Geri yükleme anahtarı kullanıma alındı",
- "Could not enable the recovery key, please try again or contact your administrator" : "Geri yükleme anahtarı kullanıma alınamadı, yeniden deneyin ya da BT yöneticisi ile görüşün",
+ "Recovery Key disabled" : "Kurtarma anahtarı kullanımdan kaldırıldı",
+ "Recovery Key enabled" : "Kurtarma anahtarı kullanıma alındı",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarı kullanıma alınamadı. Yeniden deneyin ya da BT yöneticisi ile görüşün",
"Could not update the private key password." : "Kişisel anahtar parolası güncellenemedi",
"The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.",
"The current log-in password was not correct, please try again." : "Geçerli oturum açma parolası doğru değil, lütfen yeniden deneyin.",
"Private key password successfully updated." : "Kişisel anahtar parolası güncellendi.",
"Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme uygulaması kişisel anahtarı geçersiz. Şifrelenmiş dosyalarınıza erişebilmek için kişisel ayarlarınızdaki kişisel anahtar parolanızı güncelleyin.",
- "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın",
- "Please enable server side encryption in the admin settings in order to use the encryption module." : "Şifreleme modülünü kullanabilmek için yönetici ayarlarından sunucu tarafında şifreleme seçeneğini kullanıma alın.",
- "Encryption app is enabled and ready" : "Şifreleme uygulaması kullanıma alınmış ve hazır",
+ "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.",
+ "Please enable server side encryption in the admin settings in order to use the encryption module." : "Şifreleme modülünü kullanabilmek için yönetici ayarlarından sunucu tarafında şifreleme seçeneğini açın.",
+ "Encryption app is enabled and ready" : "Şifreleme uygulaması kullanıma alındı ve hazır",
"Bad Signature" : "İmza bozuk",
"Missing Signature" : "İmza eksik",
"one-time password for server-side-encryption" : "sunucu tarafında şifreleme için tek kullanımlık parola",
"Encryption password" : "Şifreleme parolası",
- "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Yönetici, sunucu tarafında şifrelemeyi kullanıma almış. Dosyalarınız <strong>%s</strong> parolası ile şifrelendi.",
- "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Yönetici, sunucu tarafında şifrelemeyi kullanıma almış. Dosyalarınız \"<strong>%s</strong>\" parolası ile şifrelendi.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Yönetici, sunucu tarafında şifreleme özelliğini açmış. Dosyalarınız <strong>%s</strong> parolası ile şifrelendi.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Yönetici, sunucu tarafında şifreleme özelliğini açmış. Dosyalarınız \"%s\" parolası ile şifrelendi.",
"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 login password\" field and your current login password." : "Lütfen yönetim bölümünden oturum açarak kişisel ayarlarınızdaki \"Güvenlik\" bölümüne gidin ve \"Eski oturum açma parolası\" alanına bu parolayı ve geçerli oturum açma parolanızı yazarak şifreleme parolanızı güncelleyin.",
"Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosyanın şifresi çözülemedi ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.",
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya okunamadı ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.",
@@ -39,7 +39,7 @@ OC.L10N.register(
"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." : "Bu şifreleme modülünün kullanılması için sunucu tarafında yönetim bölümünden şifreleme seçeneği açılmalıdır. Bu modül kullanıma alındıktan sonra tüm dosyalarınızı size farkettirmeden şifreler. Şifreleme AES 256 anahtarları ile yapılır. \nModül var olan dosyaları değiştirmez, yalnızca sunucu tarafında şifreleme açıldıktan sonra eklenen yeni dosyalar şifrelenir. Şifreleme açıldıktan sonra kapatılamaz ve şifreleme olmayan sisteme geri dönülemez.\nLütfen sunucu tarafı şifrelemeyi açmadan önce belgeleri okuyun ve uygulamadan doğacak tüm sonuçlarını öğrenin.",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.",
"Encrypt the home storage" : "Ana depolama şifrelensin",
- "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçenek kullanıma alındığında, ana depolama alanındaki tüm dosyalar şifrelenir. Kullanımdan kaldırıldığında yalnızca dış depolama alanındaki dosyalar şifrelenir",
+ "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçenek açıldığında, ana depolama alanındaki tüm dosyalar şifrelenir. Kapatıldığında, yalnızca dış depolama alanındaki dosyalar şifrelenir",
"Enable recovery key" : "Kurtarma anahtarını kullanıma al",
"Disable recovery key" : "Kurtarma anahtarını kullanımdan kaldır",
"The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "Kurtarma anahtarı, dosyaları şifrelemek için kullanılan ek bir şifreleme anahtarıdır. Parolanın unutulması durumunda hesaptaki dosyaları kurtarmak için kullanılır.",
@@ -57,9 +57,9 @@ OC.L10N.register(
"Old log-in password" : "Eski oturum açma parolası",
"Current log-in password" : "Geçerli oturum açma parolası",
"Update Private Key Password" : "Kişisel anahtar parolasını güncelle",
- "Enable password recovery:" : "Parola kurtarma özelliğini kullanıma al:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçenek kullanıma alındığında, parolayı unutursanız şifrelenmiş dosyalarınıza yeniden erişim izni elde edebilirsiniz",
- "Enabled" : "Kullanıma alınmış",
- "Disabled" : "Kullanımdan kaldırılmış"
+ "Enable password recovery:" : "Parola kurtarma özelliğini aç:",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçenek açıldığında, parolayı unutursanız şifrelenmiş dosyalarınıza yeniden erişim izni elde edebilirsiniz",
+ "Enabled" : "Açık",
+ "Disabled" : "Kapalı"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json
index 52e0006e72b..4f3ff388ad1 100644
--- a/apps/encryption/l10n/tr.json
+++ b/apps/encryption/l10n/tr.json
@@ -1,34 +1,34 @@
{ "translations": {
- "Missing recovery key password" : "Geri yükleme anahtarı parolası eksik",
- "Please repeat the recovery key password" : "Geri yükleme anahtarı parolasını yeniden yazın",
- "Repeated recovery key password does not match the provided recovery key password" : "Geri yükleme anahtarı parolası ile onayı aynı değil",
- "Recovery key successfully enabled" : "Geri yükleme anahtarı kullanıma alındı",
- "Could not enable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı kullanıma alınamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!",
- "Recovery key successfully disabled" : "Geri yükleme anahtarı kullanımdan kaldırıldı",
- "Could not disable recovery key. Please check your recovery key password!" : "Geri yükleme anahtarı kullanımdan kaldırılamadı. Lütfen geri yükleme anahtarı parolanızı denetleyin!",
+ "Missing recovery key password" : "Kurtarma anahtarı parolası eksik",
+ "Please repeat the recovery key password" : "Kurtarma anahtarı parolasını yeniden yazın",
+ "Repeated recovery key password does not match the provided recovery key password" : "Kurtarma anahtarı parolası ile onayı aynı değil",
+ "Recovery key successfully enabled" : "Kurtarma anahtarı kullanıma alındı",
+ "Could not enable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı kullanıma alınamadı. Lütfen kurtarma anahtarı parolanızı denetleyin!",
+ "Recovery key successfully disabled" : "Kurtarma anahtarı kullanımdan kaldırıldı",
+ "Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı kullanımdan kaldırılamadı. Lütfen kurtarma anahtarı parolanızı denetleyin!",
"Missing parameters" : "Parametreler eksik",
- "Please provide the old recovery password" : "Lütfen eski geri yükleme parolasını yazın",
- "Please provide a new recovery password" : "Lütfen yeni geri yükleme parolasını yazın",
- "Please repeat the new recovery password" : "Lütfen yeni geri yükleme parolasını yeniden yazın",
+ "Please provide the old recovery password" : "Lütfen eski kurtarma parolasını yazın",
+ "Please provide a new recovery password" : "Lütfen yeni kurtarma parolasını yazın",
+ "Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yeniden yazın",
"Password successfully changed." : "Parola değiştirildi.",
"Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanızı doğru yazmamış olabilirsiniz.",
- "Recovery Key disabled" : "Geri yükleme anahtarı kullanımdan kaldırılmış",
- "Recovery Key enabled" : "Geri yükleme anahtarı kullanıma alındı",
- "Could not enable the recovery key, please try again or contact your administrator" : "Geri yükleme anahtarı kullanıma alınamadı, yeniden deneyin ya da BT yöneticisi ile görüşün",
+ "Recovery Key disabled" : "Kurtarma anahtarı kullanımdan kaldırıldı",
+ "Recovery Key enabled" : "Kurtarma anahtarı kullanıma alındı",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarı kullanıma alınamadı. Yeniden deneyin ya da BT yöneticisi ile görüşün",
"Could not update the private key password." : "Kişisel anahtar parolası güncellenemedi",
"The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.",
"The current log-in password was not correct, please try again." : "Geçerli oturum açma parolası doğru değil, lütfen yeniden deneyin.",
"Private key password successfully updated." : "Kişisel anahtar parolası güncellendi.",
"Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme uygulaması kişisel anahtarı geçersiz. Şifrelenmiş dosyalarınıza erişebilmek için kişisel ayarlarınızdaki kişisel anahtar parolanızı güncelleyin.",
- "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın",
- "Please enable server side encryption in the admin settings in order to use the encryption module." : "Şifreleme modülünü kullanabilmek için yönetici ayarlarından sunucu tarafında şifreleme seçeneğini kullanıma alın.",
- "Encryption app is enabled and ready" : "Şifreleme uygulaması kullanıma alınmış ve hazır",
+ "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.",
+ "Please enable server side encryption in the admin settings in order to use the encryption module." : "Şifreleme modülünü kullanabilmek için yönetici ayarlarından sunucu tarafında şifreleme seçeneğini açın.",
+ "Encryption app is enabled and ready" : "Şifreleme uygulaması kullanıma alındı ve hazır",
"Bad Signature" : "İmza bozuk",
"Missing Signature" : "İmza eksik",
"one-time password for server-side-encryption" : "sunucu tarafında şifreleme için tek kullanımlık parola",
"Encryption password" : "Şifreleme parolası",
- "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Yönetici, sunucu tarafında şifrelemeyi kullanıma almış. Dosyalarınız <strong>%s</strong> parolası ile şifrelendi.",
- "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Yönetici, sunucu tarafında şifrelemeyi kullanıma almış. Dosyalarınız \"<strong>%s</strong>\" parolası ile şifrelendi.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Yönetici, sunucu tarafında şifreleme özelliğini açmış. Dosyalarınız <strong>%s</strong> parolası ile şifrelendi.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Yönetici, sunucu tarafında şifreleme özelliğini açmış. Dosyalarınız \"%s\" parolası ile şifrelendi.",
"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 login password\" field and your current login password." : "Lütfen yönetim bölümünden oturum açarak kişisel ayarlarınızdaki \"Güvenlik\" bölümüne gidin ve \"Eski oturum açma parolası\" alanına bu parolayı ve geçerli oturum açma parolanızı yazarak şifreleme parolanızı güncelleyin.",
"Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosyanın şifresi çözülemedi ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.",
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya okunamadı ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.",
@@ -37,7 +37,7 @@
"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." : "Bu şifreleme modülünün kullanılması için sunucu tarafında yönetim bölümünden şifreleme seçeneği açılmalıdır. Bu modül kullanıma alındıktan sonra tüm dosyalarınızı size farkettirmeden şifreler. Şifreleme AES 256 anahtarları ile yapılır. \nModül var olan dosyaları değiştirmez, yalnızca sunucu tarafında şifreleme açıldıktan sonra eklenen yeni dosyalar şifrelenir. Şifreleme açıldıktan sonra kapatılamaz ve şifreleme olmayan sisteme geri dönülemez.\nLütfen sunucu tarafı şifrelemeyi açmadan önce belgeleri okuyun ve uygulamadan doğacak tüm sonuçlarını öğrenin.",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme uygulaması kullanıma alınmış ancak anahtarlarınız hazırlanmamış. Lütfen oturumunuzu kapatıp yeniden açın.",
"Encrypt the home storage" : "Ana depolama şifrelensin",
- "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçenek kullanıma alındığında, ana depolama alanındaki tüm dosyalar şifrelenir. Kullanımdan kaldırıldığında yalnızca dış depolama alanındaki dosyalar şifrelenir",
+ "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçenek açıldığında, ana depolama alanındaki tüm dosyalar şifrelenir. Kapatıldığında, yalnızca dış depolama alanındaki dosyalar şifrelenir",
"Enable recovery key" : "Kurtarma anahtarını kullanıma al",
"Disable recovery key" : "Kurtarma anahtarını kullanımdan kaldır",
"The recovery key is an additional encryption key used to encrypt files. It is used to recover files from an account if the password is forgotten." : "Kurtarma anahtarı, dosyaları şifrelemek için kullanılan ek bir şifreleme anahtarıdır. Parolanın unutulması durumunda hesaptaki dosyaları kurtarmak için kullanılır.",
@@ -55,9 +55,9 @@
"Old log-in password" : "Eski oturum açma parolası",
"Current log-in password" : "Geçerli oturum açma parolası",
"Update Private Key Password" : "Kişisel anahtar parolasını güncelle",
- "Enable password recovery:" : "Parola kurtarma özelliğini kullanıma al:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçenek kullanıma alındığında, parolayı unutursanız şifrelenmiş dosyalarınıza yeniden erişim izni elde edebilirsiniz",
- "Enabled" : "Kullanıma alınmış",
- "Disabled" : "Kullanımdan kaldırılmış"
+ "Enable password recovery:" : "Parola kurtarma özelliğini aç:",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçenek açıldığında, parolayı unutursanız şifrelenmiş dosyalarınıza yeniden erişim izni elde edebilirsiniz",
+ "Enabled" : "Açık",
+ "Disabled" : "Kapalı"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/ur_PK.js b/apps/encryption/l10n/ur_PK.js
deleted file mode 100644
index 9fbed2e780f..00000000000
--- a/apps/encryption/l10n/ur_PK.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Cheers!" : "واہ!"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/ur_PK.json b/apps/encryption/l10n/ur_PK.json
deleted file mode 100644
index f798bdf2a7b..00000000000
--- a/apps/encryption/l10n/ur_PK.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Cheers!" : "واہ!"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/encryption/l10n/vi.js b/apps/encryption/l10n/vi.js
deleted file mode 100644
index d325fc71661..00000000000
--- a/apps/encryption/l10n/vi.js
+++ /dev/null
@@ -1,26 +0,0 @@
-OC.L10N.register(
- "encryption",
- {
- "Missing recovery key password" : "Thiếu khóa khôi phục mật khẩu",
- "Please repeat the recovery key password" : "Nhập lại khóa khôi phục mật khẩu",
- "Recovery key successfully enabled" : "Khóa khôi phục kích hoạt thành công",
- "Could not enable recovery key. Please check your recovery key password!" : "Không thể kích hoạt khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
- "Recovery key successfully disabled" : "Vô hiệu hóa khóa khôi phục thành công",
- "Could not disable recovery key. Please check your recovery key password!" : "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
- "Password successfully changed." : "Đã đổi mật khẩu.",
- "Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.",
- "Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại",
- "The share will expire on %s." : "Chia sẻ này sẽ hết hiệu lực vào %s.",
- "Cheers!" : "Chúc mừng!",
- "Change Password" : "Đổi Mật khẩu",
- " If you don't remember your old password you can ask your administrator to recover your files." : "Nếu bạn không nhớ mật khẩu cũ, bạn có thể yêu cầu quản trị viên khôi phục tập tin của bạn.",
- "Old log-in password" : "Mật khẩu đăng nhập cũ",
- "Current log-in password" : "Mật khẩu đăng nhập hiện tại",
- "Update Private Key Password" : "Cập nhật mật khẩu khóa cá nhân",
- "Enable password recovery:" : "Kích hoạt khôi phục mật khẩu:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu",
- "Enabled" : "Bật",
- "Disabled" : "Tắt"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/vi.json b/apps/encryption/l10n/vi.json
deleted file mode 100644
index 78ed43b7047..00000000000
--- a/apps/encryption/l10n/vi.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{ "translations": {
- "Missing recovery key password" : "Thiếu khóa khôi phục mật khẩu",
- "Please repeat the recovery key password" : "Nhập lại khóa khôi phục mật khẩu",
- "Recovery key successfully enabled" : "Khóa khôi phục kích hoạt thành công",
- "Could not enable recovery key. Please check your recovery key password!" : "Không thể kích hoạt khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
- "Recovery key successfully disabled" : "Vô hiệu hóa khóa khôi phục thành công",
- "Could not disable recovery key. Please check your recovery key password!" : "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
- "Password successfully changed." : "Đã đổi mật khẩu.",
- "Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.",
- "Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại",
- "The share will expire on %s." : "Chia sẻ này sẽ hết hiệu lực vào %s.",
- "Cheers!" : "Chúc mừng!",
- "Change Password" : "Đổi Mật khẩu",
- " If you don't remember your old password you can ask your administrator to recover your files." : "Nếu bạn không nhớ mật khẩu cũ, bạn có thể yêu cầu quản trị viên khôi phục tập tin của bạn.",
- "Old log-in password" : "Mật khẩu đăng nhập cũ",
- "Current log-in password" : "Mật khẩu đăng nhập hiện tại",
- "Update Private Key Password" : "Cập nhật mật khẩu khóa cá nhân",
- "Enable password recovery:" : "Kích hoạt khôi phục mật khẩu:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu",
- "Enabled" : "Bật",
- "Disabled" : "Tắt"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/encryption/lib/AppInfo/Application.php b/apps/encryption/lib/AppInfo/Application.php
index a4e9426c3e5..b1bf93b9dea 100644
--- a/apps/encryption/lib/AppInfo/Application.php
+++ b/apps/encryption/lib/AppInfo/Application.php
@@ -72,7 +72,12 @@ class Application extends App implements IBootstrap {
}
}
- public function registerEventListeners(IConfig $config, IEventDispatcher $eventDispatcher, IManager $encryptionManager): void {
+ public function registerEventListeners(
+ IConfig $config,
+ IEventDispatcher $eventDispatcher,
+ IManager $encryptionManager,
+ Util $util,
+ ): void {
if (!$encryptionManager->isEnabled()) {
return;
}
@@ -84,18 +89,23 @@ class Application extends App implements IBootstrap {
}
// No maintenance so register all events
- $eventDispatcher->addServiceListener(UserCreatedEvent::class, UserEventsListener::class);
- $eventDispatcher->addServiceListener(UserDeletedEvent::class, UserEventsListener::class);
- $eventDispatcher->addServiceListener(BeforePasswordUpdatedEvent::class, UserEventsListener::class);
- $eventDispatcher->addServiceListener(PasswordUpdatedEvent::class, UserEventsListener::class);
- $eventDispatcher->addServiceListener(BeforePasswordResetEvent::class, UserEventsListener::class);
- $eventDispatcher->addServiceListener(PasswordResetEvent::class, UserEventsListener::class);
$eventDispatcher->addServiceListener(UserLoggedInEvent::class, UserEventsListener::class);
$eventDispatcher->addServiceListener(UserLoggedInWithCookieEvent::class, UserEventsListener::class);
$eventDispatcher->addServiceListener(UserLoggedOutEvent::class, UserEventsListener::class);
+ if (!$util->isMasterKeyEnabled()) {
+ // Only make sense if no master key is used
+ $eventDispatcher->addServiceListener(UserCreatedEvent::class, UserEventsListener::class);
+ $eventDispatcher->addServiceListener(UserDeletedEvent::class, UserEventsListener::class);
+ $eventDispatcher->addServiceListener(BeforePasswordUpdatedEvent::class, UserEventsListener::class);
+ $eventDispatcher->addServiceListener(PasswordUpdatedEvent::class, UserEventsListener::class);
+ $eventDispatcher->addServiceListener(BeforePasswordResetEvent::class, UserEventsListener::class);
+ $eventDispatcher->addServiceListener(PasswordResetEvent::class, UserEventsListener::class);
+ }
}
- public function registerEncryptionModule(IManager $encryptionManager) {
+ public function registerEncryptionModule(
+ IManager $encryptionManager,
+ ) {
$container = $this->getContainer();
$encryptionManager->registerEncryptionModule(
diff --git a/apps/encryption/lib/Command/FixEncryptedVersion.php b/apps/encryption/lib/Command/FixEncryptedVersion.php
index 6635bb6cba9..462e3a5cc2a 100644
--- a/apps/encryption/lib/Command/FixEncryptedVersion.php
+++ b/apps/encryption/lib/Command/FixEncryptedVersion.php
@@ -12,6 +12,7 @@ use OC\Files\Storage\Wrapper\Encryption;
use OC\Files\View;
use OC\ServerNotAvailableException;
use OCA\Encryption\Util;
+use OCP\Encryption\Exceptions\InvalidHeaderException;
use OCP\Files\IRootFolder;
use OCP\HintException;
use OCP\IConfig;
@@ -196,7 +197,7 @@ class FixEncryptedVersion extends Command {
\fclose($handle);
return true;
- } catch (ServerNotAvailableException $e) {
+ } catch (ServerNotAvailableException|InvalidHeaderException $e) {
// not a "bad signature" error and likely "legacy cipher" exception
// this could mean that the file is maybe not encrypted but the encrypted version is set
if (!$this->supportLegacy && $ignoreCorrectEncVersionCall === true) {
diff --git a/apps/encryption/lib/Services/PassphraseService.php b/apps/encryption/lib/Services/PassphraseService.php
index 0786cd3399a..bdcc3f1108a 100644
--- a/apps/encryption/lib/Services/PassphraseService.php
+++ b/apps/encryption/lib/Services/PassphraseService.php
@@ -55,6 +55,11 @@ class PassphraseService {
return true;
}
+ if ($this->util->isMasterKeyEnabled()) {
+ $this->logger->error('setPassphraseForUser should never be called when master key is enabled');
+ return true;
+ }
+
// Check user exists on backend
$user = $this->userManager->get($userId);
if ($user === null) {
diff --git a/apps/encryption/tests/Command/FixEncryptedVersionTest.php b/apps/encryption/tests/Command/FixEncryptedVersionTest.php
index 7a69b4bf901..d0af359183b 100644
--- a/apps/encryption/tests/Command/FixEncryptedVersionTest.php
+++ b/apps/encryption/tests/Command/FixEncryptedVersionTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2019 ownCloud GmbH
@@ -16,6 +18,7 @@ use OCP\IConfig;
use OCP\ITempManager;
use OCP\IUserManager;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Tester\CommandTester;
use Test\TestCase;
@@ -34,16 +37,13 @@ class FixEncryptedVersionTest extends TestCase {
use EncryptionTrait;
use UserTrait;
- private $userId;
+ private string $userId;
- /** @var FixEncryptedVersion */
- private $fixEncryptedVersion;
+ private FixEncryptedVersion $fixEncryptedVersion;
- /** @var CommandTester */
- private $commandTester;
+ private CommandTester $commandTester;
- /** @var Util|\PHPUnit\Framework\MockObject\MockObject */
- protected $util;
+ protected Util&MockObject $util;
public function setUp(): void {
parent::setUp();
diff --git a/apps/encryption/tests/Command/TestEnableMasterKey.php b/apps/encryption/tests/Command/TestEnableMasterKey.php
index c4678b778bc..744bbaed6f8 100644
--- a/apps/encryption/tests/Command/TestEnableMasterKey.php
+++ b/apps/encryption/tests/Command/TestEnableMasterKey.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/encryption/tests/Controller/RecoveryControllerTest.php b/apps/encryption/tests/Controller/RecoveryControllerTest.php
index 9de583b387c..7eff312d6ce 100644
--- a/apps/encryption/tests/Controller/RecoveryControllerTest.php
+++ b/apps/encryption/tests/Controller/RecoveryControllerTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,26 +15,23 @@ use OCP\AppFramework\Http;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RecoveryControllerTest extends TestCase {
- /** @var RecoveryController */
- private $controller;
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $requestMock;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $configMock;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10nMock;
- /** @var Recovery|\PHPUnit\Framework\MockObject\MockObject */
- private $recoveryMock;
-
- public function adminRecoveryProvider() {
+ protected RecoveryController $controller;
+
+ protected IRequest&MockObject $requestMock;
+ protected IConfig&MockObject $configMock;
+ protected IL10N&MockObject $l10nMock;
+ protected Recovery&MockObject $recoveryMock;
+
+ public static function adminRecoveryProvider(): array {
return [
['test', 'test', '1', 'Recovery key successfully enabled', Http::STATUS_OK],
['', 'test', '1', 'Missing recovery key password', Http::STATUS_BAD_REQUEST],
['test', '', '1', 'Please repeat the recovery key password', Http::STATUS_BAD_REQUEST],
- ['test', 'soimething that doesn\'t match', '1', 'Repeated recovery key password does not match the provided recovery key password', Http::STATUS_BAD_REQUEST],
+ ['test', 'something that doesn\'t match', '1', 'Repeated recovery key password does not match the provided recovery key password', Http::STATUS_BAD_REQUEST],
['test', 'test', '0', 'Recovery key successfully disabled', Http::STATUS_OK],
];
}
@@ -63,7 +62,7 @@ class RecoveryControllerTest extends TestCase {
$this->assertEquals($expectedStatus, $response->getStatus());
}
- public function changeRecoveryPasswordProvider() {
+ public static function changeRecoveryPasswordProvider(): array {
return [
['test', 'test', 'oldtestFail', 'Could not change the password. Maybe the old password was not correct.', Http::STATUS_BAD_REQUEST],
['test', 'test', 'oldtest', 'Password successfully changed.', Http::STATUS_OK],
@@ -98,7 +97,7 @@ class RecoveryControllerTest extends TestCase {
$this->assertEquals($expectedStatus, $response->getStatus());
}
- public function userSetRecoveryProvider() {
+ public static function userSetRecoveryProvider(): array {
return [
['1', 'Recovery Key enabled', Http::STATUS_OK],
['0', 'Could not enable the recovery key, please try again or contact your administrator', Http::STATUS_BAD_REQUEST]
diff --git a/apps/encryption/tests/Controller/SettingsControllerTest.php b/apps/encryption/tests/Controller/SettingsControllerTest.php
index b676d57164f..bee20f67cec 100644
--- a/apps/encryption/tests/Controller/SettingsControllerTest.php
+++ b/apps/encryption/tests/Controller/SettingsControllerTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -24,37 +26,18 @@ use Test\TestCase;
class SettingsControllerTest extends TestCase {
- /** @var SettingsController */
- private $controller;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $requestMock;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10nMock;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManagerMock;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSessionMock;
-
- /** @var KeyManager|\PHPUnit\Framework\MockObject\MockObject */
- private $keyManagerMock;
+ protected SettingsController $controller;
- /** @var Crypt|\PHPUnit\Framework\MockObject\MockObject */
- private $cryptMock;
-
- /** @var Session|\PHPUnit\Framework\MockObject\MockObject */
- private $sessionMock;
- /** @var MockObject|IUser */
- private $user;
-
- /** @var ISession|\PHPUnit\Framework\MockObject\MockObject */
- private $ocSessionMock;
-
- /** @var Util|\PHPUnit\Framework\MockObject\MockObject */
- private $utilMock;
+ protected IRequest&MockObject $requestMock;
+ protected IL10N&MockObject $l10nMock;
+ protected IUserManager&MockObject $userManagerMock;
+ protected IUserSession&MockObject $userSessionMock;
+ protected KeyManager&MockObject $keyManagerMock;
+ protected Crypt&MockObject $cryptMock;
+ protected Session&MockObject $sessionMock;
+ protected IUser&MockObject $user;
+ protected ISession&MockObject $ocSessionMock;
+ protected Util&MockObject $utilMock;
protected function setUp(): void {
parent::setUp();
@@ -171,21 +154,17 @@ class SettingsControllerTest extends TestCase {
$newPassword = 'new';
$this->ocSessionMock->expects($this->once())
- ->method('get')->with('loginname')->willReturn('testUser');
+ ->method('get')
+ ->with('loginname')
+ ->willReturn('testUser');
$this->userManagerMock
->expects($this->exactly(2))
->method('checkPassword')
- ->withConsecutive(
- ['testUserUid', 'new'],
- ['testUser', 'new'],
- )
- ->willReturnOnConsecutiveCalls(
- false,
- true,
- );
-
-
+ ->willReturnMap([
+ ['testUserUid', 'new', false],
+ ['testUser', 'new', true],
+ ]);
$this->cryptMock
->expects($this->once())
diff --git a/apps/encryption/tests/Controller/StatusControllerTest.php b/apps/encryption/tests/Controller/StatusControllerTest.php
index fbe44f52fb7..616114927e8 100644
--- a/apps/encryption/tests/Controller/StatusControllerTest.php
+++ b/apps/encryption/tests/Controller/StatusControllerTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,24 +14,17 @@ use OCA\Encryption\Session;
use OCP\Encryption\IManager;
use OCP\IL10N;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class StatusControllerTest extends TestCase {
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $requestMock;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10nMock;
-
- /** @var Session|\PHPUnit\Framework\MockObject\MockObject */
- protected $sessionMock;
-
- /** @var IManager | \PHPUnit\Framework\MockObject\MockObject */
- protected $encryptionManagerMock;
+ protected IRequest&MockObject $requestMock;
+ protected IL10N&MockObject $l10nMock;
+ protected Session&MockObject $sessionMock;
+ protected IManager&MockObject $encryptionManagerMock;
- /** @var StatusController */
- protected $controller;
+ protected StatusController $controller;
protected function setUp(): void {
parent::setUp();
@@ -68,7 +63,7 @@ class StatusControllerTest extends TestCase {
$this->assertSame($expectedStatus, $data['status']);
}
- public function dataTestGetStatus() {
+ public static function dataTestGetStatus(): array {
return [
[Session::INIT_EXECUTED, 'interactionNeeded'],
[Session::INIT_SUCCESSFUL, 'success'],
diff --git a/apps/encryption/tests/Crypto/CryptTest.php b/apps/encryption/tests/Crypto/CryptTest.php
index 74afc6d44a1..345311da4d0 100644
--- a/apps/encryption/tests/Crypto/CryptTest.php
+++ b/apps/encryption/tests/Crypto/CryptTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,24 +14,17 @@ use OCP\Encryption\Exceptions\GenericEncryptionException;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class CryptTest extends TestCase {
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logger;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected IConfig&MockObject $config;
+ protected IL10N&MockObject $l;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l;
-
- /** @var Crypt */
- private $crypt;
+ protected Crypt $crypt;
protected function setUp(): void {
parent::setUp();
@@ -113,10 +108,7 @@ class CryptTest extends TestCase {
$this->crypt->generateHeader('unknown');
}
- /**
- * @return array
- */
- public function dataTestGenerateHeader() {
+ public static function dataTestGenerateHeader(): array {
return [
[null, 'HBEGIN:cipher:AES-128-CFB:keyFormat:hash2:encoding:binary:HEND'],
['password', 'HBEGIN:cipher:AES-128-CFB:keyFormat:password:encoding:binary:HEND'],
@@ -155,10 +147,8 @@ class CryptTest extends TestCase {
/**
* data provider for testGetCipher
- *
- * @return array
*/
- public function dataProviderGetCipher() {
+ public static function dataProviderGetCipher(): array {
return [
['AES-128-CFB', 'AES-128-CFB'],
['AES-256-CFB', 'AES-256-CFB'],
@@ -201,7 +191,7 @@ class CryptTest extends TestCase {
$this->assertSame($expected['signature'], $result['signature']);
}
- public function dataTestSplitMetaData() {
+ public static function dataTestSplitMetaData(): array {
return [
['encryptedContent00iv001234567890123456xx',
['encrypted' => 'encryptedContent', 'iv' => '1234567890123456', 'signature' => false]],
@@ -222,7 +212,7 @@ class CryptTest extends TestCase {
);
}
- public function dataTestHasSignature() {
+ public static function dataTestHasSignature(): array {
return [
['encryptedContent00iv001234567890123456xx', false],
['encryptedContent00iv00123456789012345600sig00e1992521e437f6915f9173b190a512cfc38a00ac24502db44e0ba10c2bb0cc86xxx', true]
@@ -239,7 +229,7 @@ class CryptTest extends TestCase {
$this->invokePrivate($this->crypt, 'hasSignature', [$data, $cipher]);
}
- public function dataTestHasSignatureFail() {
+ public static function dataTestHasSignatureFail(): array {
return [
['AES-256-CTR'],
['aes-256-ctr'],
@@ -270,10 +260,8 @@ class CryptTest extends TestCase {
/**
* data provider for testRemovePadding
- *
- * @return array
*/
- public function dataProviderRemovePadding() {
+ public static function dataProviderRemovePadding(): array {
return [
['dataxx', 'data'],
['data', false]
@@ -357,10 +345,7 @@ class CryptTest extends TestCase {
$this->invokePrivate($this->crypt, 'getKeySize', ['foo']);
}
- /**
- * @return array
- */
- public function dataTestGetKeySize() {
+ public static function dataTestGetKeySize(): array {
return [
['AES-256-CFB', 32],
['AES-128-CFB', 16],
@@ -374,28 +359,25 @@ class CryptTest extends TestCase {
*/
public function testDecryptPrivateKey($header, $privateKey, $expectedCipher, $isValidKey, $expected): void {
$this->config->method('getSystemValueBool')
- ->withConsecutive(['encryption.legacy_format_support', false],
- ['encryption.use_legacy_base64_encoding', false])
- ->willReturnOnConsecutiveCalls(true, false);
+ ->willReturnMap([
+ ['encryption.legacy_format_support', false, true],
+ ['encryption.use_legacy_base64_encoding', false, false],
+ ]);
/** @var Crypt|\PHPUnit\Framework\MockObject\MockObject $crypt */
$crypt = $this->getMockBuilder(Crypt::class)
- ->setConstructorArgs(
- [
- $this->logger,
- $this->userSession,
- $this->config,
- $this->l
- ]
- )
- ->setMethods(
- [
- 'parseHeader',
- 'generatePasswordHash',
- 'symmetricDecryptFileContent',
- 'isValidPrivateKey'
- ]
- )
+ ->setConstructorArgs([
+ $this->logger,
+ $this->userSession,
+ $this->config,
+ $this->l
+ ])
+ ->onlyMethods([
+ 'parseHeader',
+ 'generatePasswordHash',
+ 'symmetricDecryptFileContent',
+ 'isValidPrivateKey'
+ ])
->getMock();
$crypt->expects($this->once())->method('parseHeader')->willReturn($header);
@@ -416,10 +398,7 @@ class CryptTest extends TestCase {
$this->assertSame($expected, $result);
}
- /**
- * @return array
- */
- public function dataTestDecryptPrivateKey() {
+ public static function dataTestDecryptPrivateKey(): array {
return [
[['cipher' => 'AES-128-CFB', 'keyFormat' => 'password'], 'HBEGIN:HENDprivateKey', 'AES-128-CFB', true, 'key'],
[['cipher' => 'AES-256-CFB', 'keyFormat' => 'password'], 'HBEGIN:HENDprivateKey', 'AES-256-CFB', true, 'key'],
diff --git a/apps/encryption/tests/Crypto/DecryptAllTest.php b/apps/encryption/tests/Crypto/DecryptAllTest.php
index 0d8543153ef..83684b8be32 100644
--- a/apps/encryption/tests/Crypto/DecryptAllTest.php
+++ b/apps/encryption/tests/Crypto/DecryptAllTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,28 +14,19 @@ use OCA\Encryption\Crypto\DecryptAll;
use OCA\Encryption\KeyManager;
use OCA\Encryption\Session;
use OCA\Encryption\Util;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Helper\QuestionHelper;
use Test\TestCase;
class DecryptAllTest extends TestCase {
- /** @var DecryptAll */
- protected $instance;
-
- /** @var Util | \PHPUnit\Framework\MockObject\MockObject */
- protected $util;
-
- /** @var KeyManager | \PHPUnit\Framework\MockObject\MockObject */
- protected $keyManager;
-
- /** @var Crypt | \PHPUnit\Framework\MockObject\MockObject */
- protected $crypt;
-
- /** @var Session | \PHPUnit\Framework\MockObject\MockObject */
- protected $session;
+ protected DecryptAll $instance;
- /** @var QuestionHelper | \PHPUnit\Framework\MockObject\MockObject */
- protected $questionHelper;
+ protected Util&MockObject $util;
+ protected KeyManager&MockObject $keyManager;
+ protected Crypt&MockObject $crypt;
+ protected Session&MockObject $session;
+ protected QuestionHelper&MockObject $questionHelper;
protected function setUp(): void {
parent::setUp();
@@ -75,6 +68,7 @@ class DecryptAllTest extends TestCase {
$password = 'passwd';
$recoveryKey = 'recoveryKey';
$userKey = 'userKey';
+ $masterKey = 'userKey';
$unencryptedKey = 'unencryptedKey';
$this->keyManager->expects($this->any())->method('getRecoveryKeyId')
@@ -105,7 +99,7 @@ class DecryptAllTest extends TestCase {
);
}
- public function dataTestGetPrivateKey() {
+ public static function dataTestGetPrivateKey() {
return [
['user1', 'recoveryKey', 'masterKeyId'],
['recoveryKeyId', 'recoveryKeyId', 'masterKeyId'],
diff --git a/apps/encryption/tests/Crypto/EncryptAllTest.php b/apps/encryption/tests/Crypto/EncryptAllTest.php
index d702c123b9b..45743ae733b 100644
--- a/apps/encryption/tests/Crypto/EncryptAllTest.php
+++ b/apps/encryption/tests/Crypto/EncryptAllTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -20,6 +22,7 @@ use OCP\L10N\IFactory;
use OCP\Mail\IMailer;
use OCP\Security\ISecureRandom;
use OCP\UserInterface;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Formatter\OutputFormatterInterface;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Helper\QuestionHelper;
@@ -29,50 +32,22 @@ use Test\TestCase;
class EncryptAllTest extends TestCase {
- /** @var \PHPUnit\Framework\MockObject\MockObject|KeyManager */
- protected $keyManager;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|Util */
- protected $util;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|IUserManager */
- protected $userManager;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|Setup */
- protected $setupUser;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|View */
- protected $view;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|IConfig */
- protected $config;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|IMailer */
- protected $mailer;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|IL10N */
- protected $l;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IFactory */
- protected $l10nFactory;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | \Symfony\Component\Console\Helper\QuestionHelper */
- protected $questionHelper;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | \Symfony\Component\Console\Input\InputInterface */
- protected $inputInterface;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | \Symfony\Component\Console\Output\OutputInterface */
- protected $outputInterface;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|UserInterface */
- protected $userInterface;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|ISecureRandom */
- protected $secureRandom;
-
- /** @var EncryptAll */
- protected $encryptAll;
+ protected KeyManager&MockObject $keyManager;
+ protected Util&MockObject $util;
+ protected IUserManager&MockObject $userManager;
+ protected Setup&MockObject $setupUser;
+ protected View&MockObject $view;
+ protected IConfig&MockObject $config;
+ protected IMailer&MockObject $mailer;
+ protected IL10N&MockObject $l;
+ protected IFactory&MockObject $l10nFactory;
+ protected \Symfony\Component\Console\Helper\QuestionHelper&MockObject $questionHelper;
+ protected \Symfony\Component\Console\Input\InputInterface&MockObject $inputInterface;
+ protected \Symfony\Component\Console\Output\OutputInterface&MockObject $outputInterface;
+ protected UserInterface&MockObject $userInterface;
+ protected ISecureRandom&MockObject $secureRandom;
+
+ protected EncryptAll $encryptAll;
protected function setUp(): void {
parent::setUp();
@@ -153,7 +128,7 @@ class EncryptAllTest extends TestCase {
$this->secureRandom
]
)
- ->setMethods(['createKeyPairs', 'encryptAllUsersFiles', 'outputPasswords'])
+ ->onlyMethods(['createKeyPairs', 'encryptAllUsersFiles', 'outputPasswords'])
->getMock();
$this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(false);
@@ -182,7 +157,7 @@ class EncryptAllTest extends TestCase {
$this->secureRandom
]
)
- ->setMethods(['createKeyPairs', 'encryptAllUsersFiles', 'outputPasswords'])
+ ->onlyMethods(['createKeyPairs', 'encryptAllUsersFiles', 'outputPasswords'])
->getMock();
$this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(true);
@@ -212,7 +187,7 @@ class EncryptAllTest extends TestCase {
$this->secureRandom
]
)
- ->setMethods(['setupUserFS', 'generateOneTimePassword'])
+ ->onlyMethods(['setupUserFS', 'generateOneTimePassword'])
->getMock();
@@ -245,7 +220,7 @@ class EncryptAllTest extends TestCase {
}
public function testEncryptAllUsersFiles(): void {
- /** @var EncryptAll | \PHPUnit\Framework\MockObject\MockObject $encryptAll */
+ /** @var EncryptAll&MockObject $encryptAll */
$encryptAll = $this->getMockBuilder(EncryptAll::class)
->setConstructorArgs(
[
@@ -262,7 +237,7 @@ class EncryptAllTest extends TestCase {
$this->secureRandom
]
)
- ->setMethods(['encryptUsersFiles'])
+ ->onlyMethods(['encryptUsersFiles'])
->getMock();
$this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(false);
@@ -271,17 +246,22 @@ class EncryptAllTest extends TestCase {
$this->invokePrivate($encryptAll, 'output', [$this->outputInterface]);
$this->invokePrivate($encryptAll, 'userPasswords', [['user1' => 'pwd1', 'user2' => 'pwd2']]);
- $encryptAll->expects($this->exactly(2))->method('encryptUsersFiles')
- ->withConsecutive(
- ['user1'],
- ['user2'],
- );
+ $encryptAllCalls = [];
+ $encryptAll->expects($this->exactly(2))
+ ->method('encryptUsersFiles')
+ ->willReturnCallback(function ($uid) use (&$encryptAllCalls) {
+ $encryptAllCalls[] = $uid;
+ });
$this->invokePrivate($encryptAll, 'encryptAllUsersFiles');
+ self::assertEquals([
+ 'user1',
+ 'user2',
+ ], $encryptAllCalls);
}
public function testEncryptUsersFiles(): void {
- /** @var EncryptAll | \PHPUnit\Framework\MockObject\MockObject $encryptAll */
+ /** @var EncryptAll&MockObject $encryptAll */
$encryptAll = $this->getMockBuilder(EncryptAll::class)
->setConstructorArgs(
[
@@ -298,24 +278,31 @@ class EncryptAllTest extends TestCase {
$this->secureRandom
]
)
- ->setMethods(['encryptFile', 'setupUserFS'])
+ ->onlyMethods(['encryptFile', 'setupUserFS'])
->getMock();
$this->util->expects($this->any())->method('isMasterKeyEnabled')->willReturn(false);
$this->view->expects($this->exactly(2))->method('getDirectoryContent')
- ->withConsecutive(
- ['/user1/files'],
- ['/user1/files/foo'],
- )->willReturnOnConsecutiveCalls(
+ ->willReturnMap([
[
- ['name' => 'foo', 'type' => 'dir'],
- ['name' => 'bar', 'type' => 'file'],
+ '/user1/files',
+ '',
+ null,
+ [
+ ['name' => 'foo', 'type' => 'dir'],
+ ['name' => 'bar', 'type' => 'file'],
+ ],
],
[
- ['name' => 'subfile', 'type' => 'file']
- ]
- );
+ '/user1/files/foo',
+ '',
+ null,
+ [
+ ['name' => 'subfile', 'type' => 'file']
+ ],
+ ],
+ ]);
$this->view->expects($this->any())->method('is_dir')
->willReturnCallback(
@@ -327,11 +314,12 @@ class EncryptAllTest extends TestCase {
}
);
- $encryptAll->expects($this->exactly(2))->method('encryptFile')
- ->withConsecutive(
- ['/user1/files/bar'],
- ['/user1/files/foo/subfile'],
- );
+ $encryptAllCalls = [];
+ $encryptAll->expects($this->exactly(2))
+ ->method('encryptFile')
+ ->willReturnCallback(function (string $path) use (&$encryptAllCalls) {
+ $encryptAllCalls[] = $path;
+ });
$outputFormatter = $this->createMock(OutputFormatterInterface::class);
$outputFormatter->method('isDecorated')->willReturn(false);
@@ -341,6 +329,10 @@ class EncryptAllTest extends TestCase {
$progressBar = new ProgressBar($this->outputInterface);
$this->invokePrivate($encryptAll, 'encryptUsersFiles', ['user1', $progressBar, '']);
+ self::assertEquals([
+ '/user1/files/bar',
+ '/user1/files/foo/subfile',
+ ], $encryptAllCalls);
}
public function testGenerateOneTimePassword(): void {
@@ -378,7 +370,7 @@ class EncryptAllTest extends TestCase {
);
}
- public function dataTestEncryptFile() {
+ public static function dataTestEncryptFile(): array {
return [
[true],
[false],
diff --git a/apps/encryption/tests/Crypto/EncryptionTest.php b/apps/encryption/tests/Crypto/EncryptionTest.php
index 7f3d9d1f348..999c6242f0c 100644
--- a/apps/encryption/tests/Crypto/EncryptionTest.php
+++ b/apps/encryption/tests/Crypto/EncryptionTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -26,34 +28,18 @@ use Symfony\Component\Console\Output\OutputInterface;
use Test\TestCase;
class EncryptionTest extends TestCase {
- /** @var Encryption */
- private $instance;
-
- /** @var KeyManager|\PHPUnit\Framework\MockObject\MockObject */
- private $keyManagerMock;
-
- /** @var EncryptAll|\PHPUnit\Framework\MockObject\MockObject */
- private $encryptAllMock;
-
- /** @var DecryptAll|\PHPUnit\Framework\MockObject\MockObject */
- private $decryptAllMock;
-
- /** @var Session|\PHPUnit\Framework\MockObject\MockObject */
- private $sessionMock;
-
- /** @var Crypt|\PHPUnit\Framework\MockObject\MockObject */
- private $cryptMock;
-
- /** @var Util|\PHPUnit\Framework\MockObject\MockObject */
- private $utilMock;
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $loggerMock;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10nMock;
+ protected Encryption $instance;
- private IStorage&MockObject $storageMock;
+ protected KeyManager&MockObject $keyManagerMock;
+ protected EncryptAll&MockObject $encryptAllMock;
+ protected DecryptAll&MockObject $decryptAllMock;
+ protected Session&MockObject $sessionMock;
+ protected Crypt&MockObject $cryptMock;
+ protected Util&MockObject $utilMock;
+ protected LoggerInterface&MockObject $loggerMock;
+ protected IL10N&MockObject $l10nMock;
+ protected IStorage&MockObject $storageMock;
protected function setUp(): void {
parent::setUp();
@@ -175,7 +161,7 @@ class EncryptionTest extends TestCase {
);
}
- public function dataProviderForTestGetPathToRealFile() {
+ public static function dataProviderForTestGetPathToRealFile(): array {
return [
['/user/files/foo/bar.txt', '/user/files/foo/bar.txt'],
['/user/files/foo.txt', '/user/files/foo.txt'],
@@ -228,7 +214,7 @@ class EncryptionTest extends TestCase {
}
}
- public function dataTestBegin() {
+ public static function dataTestBegin(): array {
return [
['w', ['cipher' => 'myCipher'], 'legacyCipher', 'defaultCipher', 'fileKey', 'defaultCipher'],
['r', ['cipher' => 'myCipher'], 'legacyCipher', 'defaultCipher', 'fileKey', 'myCipher'],
@@ -305,7 +291,7 @@ class EncryptionTest extends TestCase {
);
}
- public function dataTestUpdate() {
+ public static function dataTestUpdate(): array {
return [
['', false],
['fileKey', true]
@@ -387,7 +373,7 @@ class EncryptionTest extends TestCase {
);
}
- public function dataTestShouldEncrypt() {
+ public static function dataTestShouldEncrypt(): array {
return [
['/user1/files/foo.txt', true, true, true],
['/user1/files_versions/foo.txt', true, true, true],
diff --git a/apps/encryption/tests/KeyManagerTest.php b/apps/encryption/tests/KeyManagerTest.php
index 8f5c9a78faf..187c21bc687 100644
--- a/apps/encryption/tests/KeyManagerTest.php
+++ b/apps/encryption/tests/KeyManagerTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -28,41 +30,19 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class KeyManagerTest extends TestCase {
- /**
- * @var KeyManager
- */
- private $instance;
- /**
- * @var string
- */
- private $userId;
-
- /** @var string */
- private $systemKeyId;
-
- /** @var \OCP\Encryption\Keys\IStorage|\PHPUnit\Framework\MockObject\MockObject */
- private $keyStorageMock;
-
- /** @var Crypt|\PHPUnit\Framework\MockObject\MockObject */
- private $cryptMock;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userMock;
-
- /** @var Session|\PHPUnit\Framework\MockObject\MockObject */
- private $sessionMock;
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logMock;
-
- /** @var Util|\PHPUnit\Framework\MockObject\MockObject */
- private $utilMock;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $configMock;
+ protected KeyManager $instance;
- /** @var ILockingProvider|MockObject */
- private $lockingProviderMock;
+ protected string $userId;
+ protected string $systemKeyId;
+ protected IStorage&MockObject $keyStorageMock;
+ protected Crypt&MockObject $cryptMock;
+ protected IUserSession&MockObject $userMock;
+ protected Session&MockObject $sessionMock;
+ protected LoggerInterface&MockObject $logMock;
+ protected Util&MockObject $utilMock;
+ protected IConfig&MockObject $configMock;
+ protected ILockingProvider&MockObject $lockingProviderMock;
protected function setUp(): void {
parent::setUp();
@@ -201,7 +181,7 @@ class KeyManagerTest extends TestCase {
);
}
- public function dataTestUserHasKeys() {
+ public static function dataTestUserHasKeys(): array {
return [
['key', true],
['', false]
@@ -246,7 +226,7 @@ class KeyManagerTest extends TestCase {
* @param bool $useMasterKey
*/
public function testInit($useMasterKey): void {
- /** @var KeyManager|\PHPUnit\Framework\MockObject\MockObject $instance */
+ /** @var KeyManager&MockObject $instance */
$instance = $this->getMockBuilder(KeyManager::class)
->setConstructorArgs(
[
@@ -259,17 +239,18 @@ class KeyManagerTest extends TestCase {
$this->utilMock,
$this->lockingProviderMock
]
- )->setMethods(['getMasterKeyId', 'getMasterKeyPassword', 'getSystemPrivateKey', 'getPrivateKey'])
+ )->onlyMethods(['getMasterKeyId', 'getMasterKeyPassword', 'getSystemPrivateKey', 'getPrivateKey'])
->getMock();
$this->utilMock->expects($this->once())->method('isMasterKeyEnabled')
->willReturn($useMasterKey);
- $this->sessionMock->expects($this->exactly(2))->method('setStatus')
- ->withConsecutive(
- [Session::INIT_EXECUTED],
- [Session::INIT_SUCCESSFUL],
- );
+ $sessionSetStatusCalls = [];
+ $this->sessionMock->expects($this->exactly(2))
+ ->method('setStatus')
+ ->willReturnCallback(function (string $status) use (&$sessionSetStatusCalls) {
+ $sessionSetStatusCalls[] = $status;
+ });
$instance->expects($this->any())->method('getMasterKeyId')->willReturn('masterKeyId');
$instance->expects($this->any())->method('getMasterKeyPassword')->willReturn('masterKeyPassword');
@@ -290,9 +271,13 @@ class KeyManagerTest extends TestCase {
->with('key');
$this->assertTrue($instance->init($this->userId, 'pass'));
+ self::assertEquals([
+ Session::INIT_EXECUTED,
+ Session::INIT_SUCCESSFUL,
+ ], $sessionSetStatusCalls);
}
- public function dataTestInit() {
+ public static function dataTestInit(): array {
return [
[true],
[false]
@@ -349,7 +334,7 @@ class KeyManagerTest extends TestCase {
$this->assertTrue($this->instance->getEncryptedFileKey('/'));
}
- public function dataTestGetFileKey() {
+ public static function dataTestGetFileKey(): array {
return [
['user1', false, 'privateKey', 'legacyKey', 'multiKeyDecryptResult'],
['user1', false, 'privateKey', '', 'multiKeyDecryptResult'],
@@ -395,14 +380,10 @@ class KeyManagerTest extends TestCase {
$this->keyStorageMock->expects($this->exactly(2))
->method('getFileKey')
- ->withConsecutive(
- [$path, 'fileKey', 'OC_DEFAULT_MODULE'],
- [$path, $expectedUid . '.shareKey', 'OC_DEFAULT_MODULE'],
- )
- ->willReturnOnConsecutiveCalls(
- $encryptedFileKey,
- 'fileKey',
- );
+ ->willReturnMap([
+ [$path, 'fileKey', 'OC_DEFAULT_MODULE', $encryptedFileKey],
+ [$path, $expectedUid . '.shareKey', 'OC_DEFAULT_MODULE', 'fileKey'],
+ ]);
$this->utilMock->expects($this->any())->method('isMasterKeyEnabled')
->willReturn($isMasterKeyEnabled);
@@ -515,7 +496,7 @@ class KeyManagerTest extends TestCase {
*
* @return array
*/
- public function dataTestAddSystemKeys() {
+ public static function dataTestAddSystemKeys(): array {
return [
[['public' => true],[], 'user1', ['publicShareKey', 'recoveryKey']],
[['public' => false], [], 'user1', ['recoveryKey']],
@@ -563,7 +544,7 @@ class KeyManagerTest extends TestCase {
* @param $masterKey
*/
public function testValidateMasterKey($masterKey): void {
- /** @var KeyManager|\PHPUnit\Framework\MockObject\MockObject $instance */
+ /** @var KeyManager&MockObject $instance */
$instance = $this->getMockBuilder(KeyManager::class)
->setConstructorArgs(
[
@@ -576,7 +557,7 @@ class KeyManagerTest extends TestCase {
$this->utilMock,
$this->lockingProviderMock
]
- )->setMethods(['getPublicMasterKey', 'setSystemPrivateKey', 'getMasterKeyPassword'])
+ )->onlyMethods(['getPublicMasterKey', 'setSystemPrivateKey', 'getMasterKeyPassword'])
->getMock();
$this->utilMock->expects($this->once())->method('isMasterKeyEnabled')
@@ -611,20 +592,19 @@ class KeyManagerTest extends TestCase {
}
public function testValidateMasterKeyLocked(): void {
- /** @var KeyManager|\PHPUnit_Framework_MockObject_MockObject $instance */
+ /** @var KeyManager&MockObject $instance */
$instance = $this->getMockBuilder(KeyManager::class)
- ->setConstructorArgs(
- [
- $this->keyStorageMock,
- $this->cryptMock,
- $this->configMock,
- $this->userMock,
- $this->sessionMock,
- $this->logMock,
- $this->utilMock,
- $this->lockingProviderMock
- ]
- )->setMethods(['getPublicMasterKey', 'getPrivateMasterKey', 'setSystemPrivateKey', 'getMasterKeyPassword'])
+ ->setConstructorArgs([
+ $this->keyStorageMock,
+ $this->cryptMock,
+ $this->configMock,
+ $this->userMock,
+ $this->sessionMock,
+ $this->logMock,
+ $this->utilMock,
+ $this->lockingProviderMock
+ ])
+ ->onlyMethods(['getPublicMasterKey', 'getPrivateMasterKey', 'setSystemPrivateKey', 'getMasterKeyPassword'])
->getMock();
$this->utilMock->expects($this->once())->method('isMasterKeyEnabled')
@@ -646,7 +626,7 @@ class KeyManagerTest extends TestCase {
$instance->validateMasterKey();
}
- public function dataTestValidateMasterKey() {
+ public static function dataTestValidateMasterKey(): array {
return [
['masterKey'],
['']
diff --git a/apps/encryption/tests/RecoveryTest.php b/apps/encryption/tests/RecoveryTest.php
index 17ad385eca0..0627724a856 100644
--- a/apps/encryption/tests/RecoveryTest.php
+++ b/apps/encryption/tests/RecoveryTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/encryption/tests/SessionTest.php b/apps/encryption/tests/SessionTest.php
index 3072bc6ef3b..9e38f857e73 100644
--- a/apps/encryption/tests/SessionTest.php
+++ b/apps/encryption/tests/SessionTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,17 +12,14 @@ namespace OCA\Encryption\Tests;
use OCA\Encryption\Exceptions\PrivateKeyMissingException;
use OCA\Encryption\Session;
use OCP\ISession;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SessionTest extends TestCase {
private static $tempStorage = [];
- /**
- * @var Session
- */
- private $instance;
- /** @var ISession|\PHPUnit\Framework\MockObject\MockObject */
- private $sessionMock;
+ protected Session $instance;
+ protected ISession&MockObject $sessionMock;
public function testThatGetPrivateKeyThrowsExceptionWhenNotSet(): void {
$this->expectException(PrivateKeyMissingException::class);
@@ -122,10 +121,11 @@ class SessionTest extends TestCase {
* @param bool $expected
*/
public function testIsReady($status, $expected): void {
- /** @var Session | \PHPUnit\Framework\MockObject\MockObject $instance */
+ /** @var Session&MockObject $instance */
$instance = $this->getMockBuilder(Session::class)
->setConstructorArgs([$this->sessionMock])
- ->setMethods(['getStatus'])->getMock();
+ ->onlyMethods(['getStatus'])
+ ->getMock();
$instance->expects($this->once())->method('getStatus')
->willReturn($status);
@@ -133,7 +133,7 @@ class SessionTest extends TestCase {
$this->assertSame($expected, $instance->isReady());
}
- public function dataTestIsReady() {
+ public static function dataTestIsReady(): array {
return [
[Session::INIT_SUCCESSFUL, true],
[Session::INIT_EXECUTED, false],
diff --git a/apps/encryption/tests/Settings/AdminTest.php b/apps/encryption/tests/Settings/AdminTest.php
index 4ddaeb1b84d..5ae9e7eb3c6 100644
--- a/apps/encryption/tests/Settings/AdminTest.php
+++ b/apps/encryption/tests/Settings/AdminTest.php
@@ -1,4 +1,7 @@
<?php
+
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,24 +15,20 @@ use OCP\IL10N;
use OCP\ISession;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class AdminTest extends TestCase {
- /** @var Admin */
- private $admin;
- /** @var IL10N */
- private $l;
- /** @var LoggerInterface */
- private $logger;
- /** @var IUserSession */
- private $userSession;
- /** @var IConfig */
- private $config;
- /** @var IUserManager */
- private $userManager;
- /** @var ISession */
- private $session;
+
+ protected Admin $admin;
+
+ protected IL10N&MockObject $l;
+ protected LoggerInterface&MockObject $logger;
+ protected IUserSession&MockObject $userSession;
+ protected IConfig&MockObject $config;
+ protected IUserManager&MockObject $userManager;
+ protected ISession&MockObject $session;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/encryption/tests/Users/SetupTest.php b/apps/encryption/tests/Users/SetupTest.php
index 7a6beaf3594..b2abfcba1db 100644
--- a/apps/encryption/tests/Users/SetupTest.php
+++ b/apps/encryption/tests/Users/SetupTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,21 +12,15 @@ namespace OCA\Encryption\Tests\Users;
use OCA\Encryption\Crypto\Crypt;
use OCA\Encryption\KeyManager;
use OCA\Encryption\Users\Setup;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SetupTest extends TestCase {
- /**
- * @var KeyManager|\PHPUnit\Framework\MockObject\MockObject
- */
- private $keyManagerMock;
- /**
- * @var Crypt|\PHPUnit\Framework\MockObject\MockObject
- */
- private $cryptMock;
- /**
- * @var Setup
- */
- private $instance;
+
+ protected Setup $instance;
+
+ protected KeyManager&MockObject $keyManagerMock;
+ protected Crypt&MockObject $cryptMock;
protected function setUp(): void {
parent::setUp();
@@ -72,7 +68,7 @@ class SetupTest extends TestCase {
);
}
- public function dataTestSetupUser() {
+ public static function dataTestSetupUser(): array {
return [
[true, true],
[false, true]
diff --git a/apps/encryption/tests/UtilTest.php b/apps/encryption/tests/UtilTest.php
index 711564af5bd..3556b9e34c1 100644
--- a/apps/encryption/tests/UtilTest.php
+++ b/apps/encryption/tests/UtilTest.php
@@ -1,5 +1,7 @@
<?php
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -20,22 +22,14 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class UtilTest extends TestCase {
- private static $tempStorage = [];
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $configMock;
-
- /** @var View|\PHPUnit\Framework\MockObject\MockObject */
- private $filesMock;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManagerMock;
- /** @var IMountPoint|\PHPUnit\Framework\MockObject\MockObject */
- private $mountMock;
+ protected Util $instance;
+ protected static $tempStorage = [];
- /** @var Util */
- private $instance;
+ protected IConfig&MockObject $configMock;
+ protected View&MockObject $filesMock;
+ protected IUserManager&MockObject $userManagerMock;
+ protected IMountPoint&MockObject $mountMock;
public function testSetRecoveryForUser(): void {
$this->instance->setRecoveryForUser('1');
@@ -134,7 +128,7 @@ class UtilTest extends TestCase {
);
}
- public function dataTestIsMasterKeyEnabled() {
+ public static function dataTestIsMasterKeyEnabled(): array {
return [
['0', false],
['1', true]
@@ -155,7 +149,7 @@ class UtilTest extends TestCase {
$this->instance->shouldEncryptHomeStorage());
}
- public function dataTestShouldEncryptHomeStorage() {
+ public static function dataTestShouldEncryptHomeStorage(): array {
return [
['1', true],
['0', false]
@@ -173,7 +167,7 @@ class UtilTest extends TestCase {
$this->instance->setEncryptHomeStorage($value);
}
- public function dataTestSetEncryptHomeStorage() {
+ public static function dataTestSetEncryptHomeStorage(): array {
return [
[true, '1'],
[false, '0']
diff --git a/apps/federatedfilesharing/l10n/ar.js b/apps/federatedfilesharing/l10n/ar.js
index 9b8eb02ef8c..10d0694c8d1 100644
--- a/apps/federatedfilesharing/l10n/ar.js
+++ b/apps/federatedfilesharing/l10n/ar.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "يتم آليّاً قبول المشاركات من حسابات ومجموعات الاتحادات الموثوقة بشكل تلقائي ",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "شارك معي عبر #مُعرّف سحابة نكست كلاود الاتحادية، أنظُر {url} ",
"Share with me through my #Nextcloud Federated Cloud ID" : "شارك معي عبر #مُعرّف سحابة نكست كلاود الاتحادية",
+ "Share with me via Nextcloud" : "شاركه معي عبر النكست كلاود",
"Cloud ID copied to the clipboard" : "تمّ نسخ مُعرِّف السحابة إلى الحافظة",
"Copy to clipboard" : "نسخ الرابط",
"Clipboard not available. Please copy the cloud ID manually." : "الحافظة غير متوفرة. رجاءً، قم بنسخ مُعرِّف السحابة يدوياً.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "تويتر سابقاً",
"Mastodon" : "برنامج ماستودون Mastodon",
"Add to your website" : "أضِف إلى موقعك على الويب",
- "Share with me via Nextcloud" : "شاركه معي عبر النكست كلاود",
"HTML Code:" : "كود HTML: ",
"Cancel" : "إلغاء",
"Add remote share" : "إضافة مشاركة بعيدة remote",
"Remote share" : "مُشاركة بعيدة remote",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "هل ترغب في إضافة مُشاركة بعيدة remote ـ {name} من {owner}@{remote}؟",
"Remote share password" : "كلمة مرور المشاركة البعيدة remote",
- "Incoming share could not be processed" : "لا يمكن معالجة المشاركة الواردة",
- "Clipboard is not available" : "الحافظة غير متوفرة",
- "Your Federated Cloud ID:" : "معرف السحابة الاتحادية خاصّتُك:",
- "Twitter" : "تويتر",
- "Diaspora" : "دياسبورا"
+ "Incoming share could not be processed" : "لا يمكن معالجة المشاركة الواردة"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/federatedfilesharing/l10n/ar.json b/apps/federatedfilesharing/l10n/ar.json
index aefd5552217..869f21642c1 100644
--- a/apps/federatedfilesharing/l10n/ar.json
+++ b/apps/federatedfilesharing/l10n/ar.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "يتم آليّاً قبول المشاركات من حسابات ومجموعات الاتحادات الموثوقة بشكل تلقائي ",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "شارك معي عبر #مُعرّف سحابة نكست كلاود الاتحادية، أنظُر {url} ",
"Share with me through my #Nextcloud Federated Cloud ID" : "شارك معي عبر #مُعرّف سحابة نكست كلاود الاتحادية",
+ "Share with me via Nextcloud" : "شاركه معي عبر النكست كلاود",
"Cloud ID copied to the clipboard" : "تمّ نسخ مُعرِّف السحابة إلى الحافظة",
"Copy to clipboard" : "نسخ الرابط",
"Clipboard not available. Please copy the cloud ID manually." : "الحافظة غير متوفرة. رجاءً، قم بنسخ مُعرِّف السحابة يدوياً.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "تويتر سابقاً",
"Mastodon" : "برنامج ماستودون Mastodon",
"Add to your website" : "أضِف إلى موقعك على الويب",
- "Share with me via Nextcloud" : "شاركه معي عبر النكست كلاود",
"HTML Code:" : "كود HTML: ",
"Cancel" : "إلغاء",
"Add remote share" : "إضافة مشاركة بعيدة remote",
"Remote share" : "مُشاركة بعيدة remote",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "هل ترغب في إضافة مُشاركة بعيدة remote ـ {name} من {owner}@{remote}؟",
"Remote share password" : "كلمة مرور المشاركة البعيدة remote",
- "Incoming share could not be processed" : "لا يمكن معالجة المشاركة الواردة",
- "Clipboard is not available" : "الحافظة غير متوفرة",
- "Your Federated Cloud ID:" : "معرف السحابة الاتحادية خاصّتُك:",
- "Twitter" : "تويتر",
- "Diaspora" : "دياسبورا"
+ "Incoming share could not be processed" : "لا يمكن معالجة المشاركة الواردة"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ast.js b/apps/federatedfilesharing/l10n/ast.js
index 4e28ee7fadf..31f11f41cd6 100644
--- a/apps/federatedfilesharing/l10n/ast.js
+++ b/apps/federatedfilesharing/l10n/ast.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Allow people to publish their data to a global and public address book" : "Permitir que les persones espublicen los sos datos nuna llibreta de direiciones global y pública",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Compartir conmigo pente la mio ID de nube federada de #Nextcloud, mira {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo pente la mio ID de nube federada de #Nextcloud",
+ "Share with me via Nextcloud" : "Compartir conmigo per Nextcloud",
"Cloud ID copied to the clipboard" : "La ID de la nube copióse nel cartafueyu",
"Copy to clipboard" : "Copiar nel cartafueyu",
"Copied!" : "¡Copióse!",
@@ -43,16 +44,11 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Amestar al to sitiu web",
- "Share with me via Nextcloud" : "Compartir conmigo per Nextcloud",
"HTML Code:" : "Códigu HTML:",
"Cancel" : "Encaboxar",
"Add remote share" : "Amestar un elementu compartíu remotu",
"Remote share" : "Compartición remota",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Quies amestar la compartición remota «{name}» de {owner}@{remote}?",
- "Remote share password" : "Contraseña de la compartición remota",
- "Clipboard is not available" : "El cartafueyu nun ta disponible",
- "Your Federated Cloud ID:" : "La to ID de nube federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Contraseña de la compartición remota"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/ast.json b/apps/federatedfilesharing/l10n/ast.json
index 1c868148241..84f11d0c1ec 100644
--- a/apps/federatedfilesharing/l10n/ast.json
+++ b/apps/federatedfilesharing/l10n/ast.json
@@ -31,6 +31,7 @@
"Allow people to publish their data to a global and public address book" : "Permitir que les persones espublicen los sos datos nuna llibreta de direiciones global y pública",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Compartir conmigo pente la mio ID de nube federada de #Nextcloud, mira {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo pente la mio ID de nube federada de #Nextcloud",
+ "Share with me via Nextcloud" : "Compartir conmigo per Nextcloud",
"Cloud ID copied to the clipboard" : "La ID de la nube copióse nel cartafueyu",
"Copy to clipboard" : "Copiar nel cartafueyu",
"Copied!" : "¡Copióse!",
@@ -41,16 +42,11 @@
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Amestar al to sitiu web",
- "Share with me via Nextcloud" : "Compartir conmigo per Nextcloud",
"HTML Code:" : "Códigu HTML:",
"Cancel" : "Encaboxar",
"Add remote share" : "Amestar un elementu compartíu remotu",
"Remote share" : "Compartición remota",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Quies amestar la compartición remota «{name}» de {owner}@{remote}?",
- "Remote share password" : "Contraseña de la compartición remota",
- "Clipboard is not available" : "El cartafueyu nun ta disponible",
- "Your Federated Cloud ID:" : "La to ID de nube federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Contraseña de la compartición remota"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/az.js b/apps/federatedfilesharing/l10n/az.js
deleted file mode 100644
index 023c4560256..00000000000
--- a/apps/federatedfilesharing/l10n/az.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Federated Cloud Sharing" : "Federal Cloud Paylaşım",
- "Open documentation" : "Sənədləri aç",
- "Allow users on this server to send shares to other servers" : "Bu serverdən digər serverlərə istifadəçilər tərəfindən paylaşımın göndərilməsinə izin vermək",
- "Allow users on this server to receive shares from other servers" : "Digər serverlərdən bu serverə istifadəçilər tərəfindən paylaşımın ötürülməsinə izin vermək"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/az.json b/apps/federatedfilesharing/l10n/az.json
deleted file mode 100644
index c6c2f05ad13..00000000000
--- a/apps/federatedfilesharing/l10n/az.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Federated Cloud Sharing" : "Federal Cloud Paylaşım",
- "Open documentation" : "Sənədləri aç",
- "Allow users on this server to send shares to other servers" : "Bu serverdən digər serverlərə istifadəçilər tərəfindən paylaşımın göndərilməsinə izin vermək",
- "Allow users on this server to receive shares from other servers" : "Digər serverlərdən bu serverə istifadəçilər tərəfindən paylaşımın ötürülməsinə izin vermək"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/bg.js b/apps/federatedfilesharing/l10n/bg.js
index bde6cf6d60c..922303991fa 100644
--- a/apps/federatedfilesharing/l10n/bg.js
+++ b/apps/federatedfilesharing/l10n/bg.js
@@ -21,9 +21,11 @@ OC.L10N.register(
"Sharing" : "Споделяне",
"Federated file sharing" : "Федерирано споделяне на файлове",
"Provide federated file sharing across servers" : "Осигуряване на федерирано споделяне на файлове между сървъри",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Когато тази опция е включена, всички потребителски полета (напр. е-мейл адреси), които са със зададена видимост \"Публично\" ще бъдат автоматично синхронизирани и изпратени към външна система, която да ги направи достъпни чрез публична, глобална адресна книга.",
"Unable to update federated files sharing config" : "Не може да се актуализира конфигурацията за споделяне на обединени файлове",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Споделете с мен чрез моя #Nextcloud Federated Cloud ID, вижте {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Споделете с мен, чрез моя #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Споделете с мен, чрез Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud идентификатора е копиран в клипборда",
"Copy to clipboard" : "Копиране в клипборда",
"Copied!" : "Копирано!",
@@ -33,16 +35,11 @@ OC.L10N.register(
"Facebook" : "Фейсбук",
"Mastodon" : "Mastodon",
"Add to your website" : "Добавете към вашия уеб сайт",
- "Share with me via Nextcloud" : "Споделете с мен, чрез Nextcloud",
"HTML Code:" : "HTML код:",
"Cancel" : "Отказ",
"Add remote share" : "Добави отдалечено споделяне",
"Remote share" : "Отдалечено споделяне",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Искате ли да добавите отдалечено споделяне {name} от {owner}@{remote}?",
- "Remote share password" : "Парола за отдалечено споделяне",
- "Clipboard is not available" : "Клипбордът не е достъпен",
- "Your Federated Cloud ID:" : "Вашият Federated Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Диаспора"
+ "Remote share password" : "Парола за отдалечено споделяне"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/bg.json b/apps/federatedfilesharing/l10n/bg.json
index 0ae5988adf0..2a64b1b8cc6 100644
--- a/apps/federatedfilesharing/l10n/bg.json
+++ b/apps/federatedfilesharing/l10n/bg.json
@@ -19,9 +19,11 @@
"Sharing" : "Споделяне",
"Federated file sharing" : "Федерирано споделяне на файлове",
"Provide federated file sharing across servers" : "Осигуряване на федерирано споделяне на файлове между сървъри",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Когато тази опция е включена, всички потребителски полета (напр. е-мейл адреси), които са със зададена видимост \"Публично\" ще бъдат автоматично синхронизирани и изпратени към външна система, която да ги направи достъпни чрез публична, глобална адресна книга.",
"Unable to update federated files sharing config" : "Не може да се актуализира конфигурацията за споделяне на обединени файлове",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Споделете с мен чрез моя #Nextcloud Federated Cloud ID, вижте {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Споделете с мен, чрез моя #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Споделете с мен, чрез Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud идентификатора е копиран в клипборда",
"Copy to clipboard" : "Копиране в клипборда",
"Copied!" : "Копирано!",
@@ -31,16 +33,11 @@
"Facebook" : "Фейсбук",
"Mastodon" : "Mastodon",
"Add to your website" : "Добавете към вашия уеб сайт",
- "Share with me via Nextcloud" : "Споделете с мен, чрез Nextcloud",
"HTML Code:" : "HTML код:",
"Cancel" : "Отказ",
"Add remote share" : "Добави отдалечено споделяне",
"Remote share" : "Отдалечено споделяне",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Искате ли да добавите отдалечено споделяне {name} от {owner}@{remote}?",
- "Remote share password" : "Парола за отдалечено споделяне",
- "Clipboard is not available" : "Клипбордът не е достъпен",
- "Your Federated Cloud ID:" : "Вашият Federated Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Диаспора"
+ "Remote share password" : "Парола за отдалечено споделяне"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ca.js b/apps/federatedfilesharing/l10n/ca.js
index d7b1260df86..5a38b52135e 100644
--- a/apps/federatedfilesharing/l10n/ca.js
+++ b/apps/federatedfilesharing/l10n/ca.js
@@ -36,6 +36,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Accepteu automàticament els recursos compartits de comptes i grups federats de confiança per defecte",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparteix contingut amb mi amb el meu ID del núvol federat del #Nextcloud, consulta {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Comparteix contingut amb mi amb el meu ID del núvol federat del #Nextcloud",
+ "Share with me via Nextcloud" : "Comparteix contingut amb mi a través del Nextcloud",
"Cloud ID copied to the clipboard" : "S'ha copiat l'ID del núvol al porta-retalls",
"Copy to clipboard" : "Copia-ho al porta-retalls",
"Clipboard not available. Please copy the cloud ID manually." : "Porta-retalls no disponible. Copieu l'identificador del núvol manualment.",
@@ -49,17 +50,12 @@ OC.L10N.register(
"formerly Twitter" : "abans Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Afegiu-lo al vostre lloc web",
- "Share with me via Nextcloud" : "Comparteix contingut amb mi a través del Nextcloud",
"HTML Code:" : "Codi HTML:",
"Cancel" : "Cancel·la",
"Add remote share" : "Afegeix un element compartit remot",
"Remote share" : "Element compartit remot",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Voleu afegir l'element compartit remot {name} de {owner}@{remote}?",
"Remote share password" : "Contrasenya de l'element compartit remot",
- "Incoming share could not be processed" : "No s'ha pogut processar la compartició entrant",
- "Clipboard is not available" : "El porta-retalls no està disponible",
- "Your Federated Cloud ID:" : "El vostre ID de núvol federat:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "No s'ha pogut processar la compartició entrant"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/ca.json b/apps/federatedfilesharing/l10n/ca.json
index 2f868e9f8b0..b0a72bc8860 100644
--- a/apps/federatedfilesharing/l10n/ca.json
+++ b/apps/federatedfilesharing/l10n/ca.json
@@ -34,6 +34,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Accepteu automàticament els recursos compartits de comptes i grups federats de confiança per defecte",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparteix contingut amb mi amb el meu ID del núvol federat del #Nextcloud, consulta {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Comparteix contingut amb mi amb el meu ID del núvol federat del #Nextcloud",
+ "Share with me via Nextcloud" : "Comparteix contingut amb mi a través del Nextcloud",
"Cloud ID copied to the clipboard" : "S'ha copiat l'ID del núvol al porta-retalls",
"Copy to clipboard" : "Copia-ho al porta-retalls",
"Clipboard not available. Please copy the cloud ID manually." : "Porta-retalls no disponible. Copieu l'identificador del núvol manualment.",
@@ -47,17 +48,12 @@
"formerly Twitter" : "abans Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Afegiu-lo al vostre lloc web",
- "Share with me via Nextcloud" : "Comparteix contingut amb mi a través del Nextcloud",
"HTML Code:" : "Codi HTML:",
"Cancel" : "Cancel·la",
"Add remote share" : "Afegeix un element compartit remot",
"Remote share" : "Element compartit remot",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Voleu afegir l'element compartit remot {name} de {owner}@{remote}?",
"Remote share password" : "Contrasenya de l'element compartit remot",
- "Incoming share could not be processed" : "No s'ha pogut processar la compartició entrant",
- "Clipboard is not available" : "El porta-retalls no està disponible",
- "Your Federated Cloud ID:" : "El vostre ID de núvol federat:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "No s'ha pogut processar la compartició entrant"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/cs.js b/apps/federatedfilesharing/l10n/cs.js
index 799ae3c4170..f0b144feda7 100644
--- a/apps/federatedfilesharing/l10n/cs.js
+++ b/apps/federatedfilesharing/l10n/cs.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Ve výchozím nastavení automaticky přijímat sdílení od důvěryhodných federovaných účtů a skupin",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Sdílejte se mnou prostřednictvím mého #Nextcloud identifikátoru v rámci federovaného cloudu – více na {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Sdílejte se mnou pomocí mého #Nextcloud identifikátoru v rámci federovaného cloudu",
+ "Share with me via Nextcloud" : "Sdílet se mnou přes Nextcloud",
"Cloud ID copied to the clipboard" : "Cloudový identifikátor zkopírován do schránky",
"Copy to clipboard" : "Zkopírovat do schránky",
"Clipboard not available. Please copy the cloud ID manually." : "Schránka není k dispozici. Zkopírujte cloudový identifikátor ručně.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "dříve Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Přidat na svou webovou stránku",
- "Share with me via Nextcloud" : "Sdílet se mnou přes Nextcloud",
"HTML Code:" : "HTML kód:",
"Cancel" : "Storno",
"Add remote share" : "Přidat vzdálené sdílení",
"Remote share" : "Vzdálené sdílení",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete přidat vzdálené sdílení {name} od {owner}@{remote}?",
"Remote share password" : "Heslo ke vzdálenému sdílení",
- "Incoming share could not be processed" : "Příchozí sdílení se nepodařilo zpracovat",
- "Clipboard is not available" : "Schránka není k dispozici",
- "Your Federated Cloud ID:" : "Váš identifikátor v rámci federovaného cloudu:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Příchozí sdílení se nepodařilo zpracovat"
},
"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/federatedfilesharing/l10n/cs.json b/apps/federatedfilesharing/l10n/cs.json
index e64db4ec990..e71cbaeedb1 100644
--- a/apps/federatedfilesharing/l10n/cs.json
+++ b/apps/federatedfilesharing/l10n/cs.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Ve výchozím nastavení automaticky přijímat sdílení od důvěryhodných federovaných účtů a skupin",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Sdílejte se mnou prostřednictvím mého #Nextcloud identifikátoru v rámci federovaného cloudu – více na {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Sdílejte se mnou pomocí mého #Nextcloud identifikátoru v rámci federovaného cloudu",
+ "Share with me via Nextcloud" : "Sdílet se mnou přes Nextcloud",
"Cloud ID copied to the clipboard" : "Cloudový identifikátor zkopírován do schránky",
"Copy to clipboard" : "Zkopírovat do schránky",
"Clipboard not available. Please copy the cloud ID manually." : "Schránka není k dispozici. Zkopírujte cloudový identifikátor ručně.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "dříve Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Přidat na svou webovou stránku",
- "Share with me via Nextcloud" : "Sdílet se mnou přes Nextcloud",
"HTML Code:" : "HTML kód:",
"Cancel" : "Storno",
"Add remote share" : "Přidat vzdálené sdílení",
"Remote share" : "Vzdálené sdílení",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete přidat vzdálené sdílení {name} od {owner}@{remote}?",
"Remote share password" : "Heslo ke vzdálenému sdílení",
- "Incoming share could not be processed" : "Příchozí sdílení se nepodařilo zpracovat",
- "Clipboard is not available" : "Schránka není k dispozici",
- "Your Federated Cloud ID:" : "Váš identifikátor v rámci federovaného cloudu:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Příchozí sdílení se nepodařilo zpracovat"
},"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/federatedfilesharing/l10n/da.js b/apps/federatedfilesharing/l10n/da.js
index 9d94a455f47..4a1f7ccfd05 100644
--- a/apps/federatedfilesharing/l10n/da.js
+++ b/apps/federatedfilesharing/l10n/da.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Accepter automatisk delinger fra betorede sammenkoblings konti og grupper som standard",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Del med mig gennem min #Nextcloud Sammenkoblings Cloud ID, se {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Del med mig gennem min #Nextcloud sammenkoblings Cloud ID",
+ "Share with me via Nextcloud" : "Del med mig gennem Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID er kopieret til udklipsholderen.",
"Copy to clipboard" : "Kopier til udklipsholder",
"Clipboard not available. Please copy the cloud ID manually." : "Udklipsholder ikke tilgængelig. Kopier venligst Cloud ID'et manuelt.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "tidligere Twitter",
"Mastodon" : "Mastodont",
"Add to your website" : "Tilføj til dit websted",
- "Share with me via Nextcloud" : "Del med mig gennem Nextcloud",
"HTML Code:" : "HTML kode:",
"Cancel" : "Annuller",
"Add remote share" : "Tilføj ekstern deling",
"Remote share" : "Eksterne drev",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ønsker du at tilføje det eksterne drev {name} fra {owner}@{remote}?",
"Remote share password" : "Fjerndrev adgangskode",
- "Incoming share could not be processed" : "Indgående deling kunne ikke behandles",
- "Clipboard is not available" : "Udklipsholderen er ikke tilgængelig",
- "Your Federated Cloud ID:" : "Din Sammenkoblings Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Indgående deling kunne ikke behandles"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/da.json b/apps/federatedfilesharing/l10n/da.json
index 58343b3da11..91211cb949f 100644
--- a/apps/federatedfilesharing/l10n/da.json
+++ b/apps/federatedfilesharing/l10n/da.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Accepter automatisk delinger fra betorede sammenkoblings konti og grupper som standard",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Del med mig gennem min #Nextcloud Sammenkoblings Cloud ID, se {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Del med mig gennem min #Nextcloud sammenkoblings Cloud ID",
+ "Share with me via Nextcloud" : "Del med mig gennem Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID er kopieret til udklipsholderen.",
"Copy to clipboard" : "Kopier til udklipsholder",
"Clipboard not available. Please copy the cloud ID manually." : "Udklipsholder ikke tilgængelig. Kopier venligst Cloud ID'et manuelt.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "tidligere Twitter",
"Mastodon" : "Mastodont",
"Add to your website" : "Tilføj til dit websted",
- "Share with me via Nextcloud" : "Del med mig gennem Nextcloud",
"HTML Code:" : "HTML kode:",
"Cancel" : "Annuller",
"Add remote share" : "Tilføj ekstern deling",
"Remote share" : "Eksterne drev",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ønsker du at tilføje det eksterne drev {name} fra {owner}@{remote}?",
"Remote share password" : "Fjerndrev adgangskode",
- "Incoming share could not be processed" : "Indgående deling kunne ikke behandles",
- "Clipboard is not available" : "Udklipsholderen er ikke tilgængelig",
- "Your Federated Cloud ID:" : "Din Sammenkoblings Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Indgående deling kunne ikke behandles"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/de.js b/apps/federatedfilesharing/l10n/de.js
index e4e485d90b3..29f64d6c3d0 100644
--- a/apps/federatedfilesharing/l10n/de.js
+++ b/apps/federatedfilesharing/l10n/de.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Freigaben von vertrauenswürdigen Federations-Konten und -Gruppen standardmäßig automatisch akzeptieren",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Teile mit mir über meine #Nextcloud Federated-Cloud-ID, siehe {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Teile mit mir über meine #Nextcloud Federated-Cloud-ID",
+ "Share with me via Nextcloud" : "Teile mit mir über Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud-ID in die Zwischenablage kopiert",
"Copy to clipboard" : "In die Zwischenablage kopieren",
"Clipboard not available. Please copy the cloud ID manually." : "Zwischenablage nicht verfügbar. Bitte die Cloud-ID manuell kopieren.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "früher Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Zu deiner Webseite hinzufügen",
- "Share with me via Nextcloud" : "Teile mit mir über Nextcloud",
"HTML Code:" : "HTML-Code:",
"Cancel" : "Abbrechen",
"Add remote share" : "Externe Freigabe hinzufügen",
"Remote share" : "Externe Freigabe",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Soll die externe Freigabe {name} von {owner}@{remote} hinzugefügt werden?",
"Remote share password" : "Passwort für die externe Freigabe",
- "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden",
- "Clipboard is not available" : "Zwischenablage ist nicht verfügbar",
- "Your Federated Cloud ID:" : "Deine Federated-Cloud-ID:",
- "Twitter" : "X",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/de.json b/apps/federatedfilesharing/l10n/de.json
index d249e96977c..c82309a9c0b 100644
--- a/apps/federatedfilesharing/l10n/de.json
+++ b/apps/federatedfilesharing/l10n/de.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Freigaben von vertrauenswürdigen Federations-Konten und -Gruppen standardmäßig automatisch akzeptieren",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Teile mit mir über meine #Nextcloud Federated-Cloud-ID, siehe {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Teile mit mir über meine #Nextcloud Federated-Cloud-ID",
+ "Share with me via Nextcloud" : "Teile mit mir über Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud-ID in die Zwischenablage kopiert",
"Copy to clipboard" : "In die Zwischenablage kopieren",
"Clipboard not available. Please copy the cloud ID manually." : "Zwischenablage nicht verfügbar. Bitte die Cloud-ID manuell kopieren.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "früher Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Zu deiner Webseite hinzufügen",
- "Share with me via Nextcloud" : "Teile mit mir über Nextcloud",
"HTML Code:" : "HTML-Code:",
"Cancel" : "Abbrechen",
"Add remote share" : "Externe Freigabe hinzufügen",
"Remote share" : "Externe Freigabe",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Soll die externe Freigabe {name} von {owner}@{remote} hinzugefügt werden?",
"Remote share password" : "Passwort für die externe Freigabe",
- "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden",
- "Clipboard is not available" : "Zwischenablage ist nicht verfügbar",
- "Your Federated Cloud ID:" : "Deine Federated-Cloud-ID:",
- "Twitter" : "X",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/de_DE.js b/apps/federatedfilesharing/l10n/de_DE.js
index 25b68d9c001..94f38feedf2 100644
--- a/apps/federatedfilesharing/l10n/de_DE.js
+++ b/apps/federatedfilesharing/l10n/de_DE.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Freigaben von vertrauenswürdigen Federation-Konten und -gruppen standardmäßig automatisch akzeptieren",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Teilen Sie mit mir über meine #Nextcloud Federated-Cloud-ID, siehe {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Teilen Sie mit mir über meine #Nextcloud Federated-Cloud-ID",
+ "Share with me via Nextcloud" : "Teilen Sie mit mir über Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud-ID wurde in die Zwischenablage kopiert",
"Copy to clipboard" : "In die Zwischenablage kopieren",
"Clipboard not available. Please copy the cloud ID manually." : "Zwischenablage nicht verfügbar. Bitte die Cloud-ID manuell kopieren.",
@@ -53,23 +54,18 @@ OC.L10N.register(
"Federated Cloud" : "Federated Cloud",
"You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Sie können mit jedem teilen, der einen Nextcloud-Server oder andere Open Cloud Mesh (OCM) kompatible Server und Dienste verwendet! Geben Sie einfach deren Federated-Cloud-ID in den Teilen-Dialog ein. Diese sieht wie folgt aus: person@cloud.example.com",
"Your Federated Cloud ID" : "Ihre Federated-Cloud-ID",
- "Share it so your friends can share files with you:" : "Teilen Sie es, so dass Ihre Freunde Dateien mit Ihnen teilen können:",
+ "Share it so your friends can share files with you:" : "Teilen Sie es, damit Ihre Freunde Dateien mit Ihnen teilen können:",
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (früher Twitter)",
"formerly Twitter" : "früher Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Zu Ihrer Webseite hinzufügen",
- "Share with me via Nextcloud" : "Teilen Sie mit mir über Nextcloud",
"HTML Code:" : "HTML-Code:",
"Cancel" : "Abbrechen",
"Add remote share" : "Externe Freigabe hinzufügen",
"Remote share" : "Externe Freigabe",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Möchten Sie die externe Freigabe {name} von {owner}@{remote} hinzufügen?",
"Remote share password" : "Passwort für die externe Freigabe",
- "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden",
- "Clipboard is not available" : "Zwischenablage ist nicht verfügbar",
- "Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/de_DE.json b/apps/federatedfilesharing/l10n/de_DE.json
index da17581170c..6c6d25e256b 100644
--- a/apps/federatedfilesharing/l10n/de_DE.json
+++ b/apps/federatedfilesharing/l10n/de_DE.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Freigaben von vertrauenswürdigen Federation-Konten und -gruppen standardmäßig automatisch akzeptieren",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Teilen Sie mit mir über meine #Nextcloud Federated-Cloud-ID, siehe {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Teilen Sie mit mir über meine #Nextcloud Federated-Cloud-ID",
+ "Share with me via Nextcloud" : "Teilen Sie mit mir über Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud-ID wurde in die Zwischenablage kopiert",
"Copy to clipboard" : "In die Zwischenablage kopieren",
"Clipboard not available. Please copy the cloud ID manually." : "Zwischenablage nicht verfügbar. Bitte die Cloud-ID manuell kopieren.",
@@ -51,23 +52,18 @@
"Federated Cloud" : "Federated Cloud",
"You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Sie können mit jedem teilen, der einen Nextcloud-Server oder andere Open Cloud Mesh (OCM) kompatible Server und Dienste verwendet! Geben Sie einfach deren Federated-Cloud-ID in den Teilen-Dialog ein. Diese sieht wie folgt aus: person@cloud.example.com",
"Your Federated Cloud ID" : "Ihre Federated-Cloud-ID",
- "Share it so your friends can share files with you:" : "Teilen Sie es, so dass Ihre Freunde Dateien mit Ihnen teilen können:",
+ "Share it so your friends can share files with you:" : "Teilen Sie es, damit Ihre Freunde Dateien mit Ihnen teilen können:",
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (früher Twitter)",
"formerly Twitter" : "früher Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Zu Ihrer Webseite hinzufügen",
- "Share with me via Nextcloud" : "Teilen Sie mit mir über Nextcloud",
"HTML Code:" : "HTML-Code:",
"Cancel" : "Abbrechen",
"Add remote share" : "Externe Freigabe hinzufügen",
"Remote share" : "Externe Freigabe",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Möchten Sie die externe Freigabe {name} von {owner}@{remote} hinzufügen?",
"Remote share password" : "Passwort für die externe Freigabe",
- "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden",
- "Clipboard is not available" : "Zwischenablage ist nicht verfügbar",
- "Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Eingehende Freigabe konnte nicht verarbeitet werden"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/el.js b/apps/federatedfilesharing/l10n/el.js
index fac1e04acf0..b99d6594094 100644
--- a/apps/federatedfilesharing/l10n/el.js
+++ b/apps/federatedfilesharing/l10n/el.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Federated file sharing" : "Federated διαμοιρασμός αρχείου",
"Provide federated file sharing across servers" : "Παρέχει κοινής χρήσης αρχεία μεταξύ διακομιστών",
"Share with me through my #Nextcloud Federated Cloud ID" : "Διαμοιρασμός με εμένα μέσω του #Nextcloud Federated Cloud ID μου",
+ "Share with me via Nextcloud" : "Διαμοιραστείτε με εμένα μέσω του Nextcloud",
"Copy to clipboard" : "Αντιγραφή στο πρόχειρο",
"Copied!" : "Αντιγράφτηκε!",
"Federated Cloud" : "Federated Cloud",
@@ -29,15 +30,11 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (πρώην Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Προσθήκη στην ιστοσελίδα σας",
- "Share with me via Nextcloud" : "Διαμοιραστείτε με εμένα μέσω του Nextcloud",
"HTML Code:" : "Κώδικας HTML:",
"Cancel" : "Άκυρο",
"Add remote share" : "Προσθήκη απομακρυσμένου κοινόχρηστου φακέλου",
"Remote share" : "Απομακρυσμένος κοινόχρηστος φάκελος",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Θέλετε να προσθέσουμε τον απομακρυσμένο κοινόχρηστο φάκελο {name} από {owner}@{remote}?",
- "Remote share password" : "Συνθηματικό απομακρυσμένου κοινόχρηστου φακέλου",
- "Clipboard is not available" : "Το πρόχειρο δεν είναι διαθέσιμο",
- "Your Federated Cloud ID:" : "Το ID σας στο Federated Cloud:",
- "Twitter" : "Twitter"
+ "Remote share password" : "Συνθηματικό απομακρυσμένου κοινόχρηστου φακέλου"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/el.json b/apps/federatedfilesharing/l10n/el.json
index 45ff1cb2e40..1e013da5ef5 100644
--- a/apps/federatedfilesharing/l10n/el.json
+++ b/apps/federatedfilesharing/l10n/el.json
@@ -19,6 +19,7 @@
"Federated file sharing" : "Federated διαμοιρασμός αρχείου",
"Provide federated file sharing across servers" : "Παρέχει κοινής χρήσης αρχεία μεταξύ διακομιστών",
"Share with me through my #Nextcloud Federated Cloud ID" : "Διαμοιρασμός με εμένα μέσω του #Nextcloud Federated Cloud ID μου",
+ "Share with me via Nextcloud" : "Διαμοιραστείτε με εμένα μέσω του Nextcloud",
"Copy to clipboard" : "Αντιγραφή στο πρόχειρο",
"Copied!" : "Αντιγράφτηκε!",
"Federated Cloud" : "Federated Cloud",
@@ -27,15 +28,11 @@
"X (formerly Twitter)" : "X (πρώην Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Προσθήκη στην ιστοσελίδα σας",
- "Share with me via Nextcloud" : "Διαμοιραστείτε με εμένα μέσω του Nextcloud",
"HTML Code:" : "Κώδικας HTML:",
"Cancel" : "Άκυρο",
"Add remote share" : "Προσθήκη απομακρυσμένου κοινόχρηστου φακέλου",
"Remote share" : "Απομακρυσμένος κοινόχρηστος φάκελος",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Θέλετε να προσθέσουμε τον απομακρυσμένο κοινόχρηστο φάκελο {name} από {owner}@{remote}?",
- "Remote share password" : "Συνθηματικό απομακρυσμένου κοινόχρηστου φακέλου",
- "Clipboard is not available" : "Το πρόχειρο δεν είναι διαθέσιμο",
- "Your Federated Cloud ID:" : "Το ID σας στο Federated Cloud:",
- "Twitter" : "Twitter"
+ "Remote share password" : "Συνθηματικό απομακρυσμένου κοινόχρηστου φακέλου"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/en_GB.js b/apps/federatedfilesharing/l10n/en_GB.js
index 90c61b433c8..3114254c97b 100644
--- a/apps/federatedfilesharing/l10n/en_GB.js
+++ b/apps/federatedfilesharing/l10n/en_GB.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Automatically accept shares from trusted federated accounts and groups by default",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Share with me through my #Nextcloud Federated Cloud ID, see {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Share with me through my #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Share with me via Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID copied to the clipboard",
"Copy to clipboard" : "Copy to clipboard",
"Clipboard not available. Please copy the cloud ID manually." : "Clipboard not available. Please copy the cloud ID manually.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "formerly Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Add to your website",
- "Share with me via Nextcloud" : "Share with me via Nextcloud",
"HTML Code:" : "HTML Code:",
"Cancel" : "Cancel",
"Add remote share" : "Add remote share",
"Remote share" : "Remote share",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Do you want to add the remote share {name} from {owner}@{remote}?",
"Remote share password" : "Remote share password",
- "Incoming share could not be processed" : "Incoming share could not be processed",
- "Clipboard is not available" : "Clipboard is not available",
- "Your Federated Cloud ID:" : "Your Federated Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Incoming share could not be processed"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/en_GB.json b/apps/federatedfilesharing/l10n/en_GB.json
index 5e3600f0413..c538fc87b01 100644
--- a/apps/federatedfilesharing/l10n/en_GB.json
+++ b/apps/federatedfilesharing/l10n/en_GB.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Automatically accept shares from trusted federated accounts and groups by default",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Share with me through my #Nextcloud Federated Cloud ID, see {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Share with me through my #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Share with me via Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID copied to the clipboard",
"Copy to clipboard" : "Copy to clipboard",
"Clipboard not available. Please copy the cloud ID manually." : "Clipboard not available. Please copy the cloud ID manually.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "formerly Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Add to your website",
- "Share with me via Nextcloud" : "Share with me via Nextcloud",
"HTML Code:" : "HTML Code:",
"Cancel" : "Cancel",
"Add remote share" : "Add remote share",
"Remote share" : "Remote share",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Do you want to add the remote share {name} from {owner}@{remote}?",
"Remote share password" : "Remote share password",
- "Incoming share could not be processed" : "Incoming share could not be processed",
- "Clipboard is not available" : "Clipboard is not available",
- "Your Federated Cloud ID:" : "Your Federated Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Incoming share could not be processed"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/eo.js b/apps/federatedfilesharing/l10n/eo.js
index 12b92a0694d..affa483314f 100644
--- a/apps/federatedfilesharing/l10n/eo.js
+++ b/apps/federatedfilesharing/l10n/eo.js
@@ -21,20 +21,18 @@ OC.L10N.register(
"Federated file sharing" : "Federa dosierkunhavado",
"Provide federated file sharing across servers" : "Provizas federan dosierkunhavigon inter serviloj",
"Share with me through my #Nextcloud Federated Cloud ID" : "Kunhavigi kun mi per mia #Nextcloud-federnuba identigilo",
+ "Share with me via Nextcloud" : "Kunhavigi kun mi per Nextcloud",
"Copy to clipboard" : "Kopii tondejen",
"Copied!" : "Kopiita!",
"Federated Cloud" : "Federa nubo",
"You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Vi povas kunhavigi kun iu, kiu uzas Nextcloud aŭ aliaj serviloj kaj servoj kungruaj kun „Open Cloud Mesh (OCM)“! Entajpu simple lian aŭ ŝian federnuban identigilon en la kunhaviga dialogo. Federnuba identigilo similas al persono@nubo.example.com",
"Share it so your friends can share files with you:" : "Kunhavigu ĝin, por ke viaj amikoj povu kunhavigi dosierojn kun vi:",
"Add to your website" : "Aldoni al via TTT-ejo",
- "Share with me via Nextcloud" : "Kunhavigi kun mi per Nextcloud",
"HTML Code:" : "HTML-kodo:",
"Cancel" : "Nuligi",
"Add remote share" : "Aldoni foran kunhavon",
"Remote share" : "Foran kunhavo",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ĉu vi volas aldoni la foran kunhavon {name} de {owner}@{remote}?",
- "Remote share password" : "Pasvorto de fora kunhavo",
- "Your Federated Cloud ID:" : "Via federnuba identigilo:",
- "Twitter" : "Twitter"
+ "Remote share password" : "Pasvorto de fora kunhavo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/eo.json b/apps/federatedfilesharing/l10n/eo.json
index 7e8b8fd6df4..12a85993651 100644
--- a/apps/federatedfilesharing/l10n/eo.json
+++ b/apps/federatedfilesharing/l10n/eo.json
@@ -19,20 +19,18 @@
"Federated file sharing" : "Federa dosierkunhavado",
"Provide federated file sharing across servers" : "Provizas federan dosierkunhavigon inter serviloj",
"Share with me through my #Nextcloud Federated Cloud ID" : "Kunhavigi kun mi per mia #Nextcloud-federnuba identigilo",
+ "Share with me via Nextcloud" : "Kunhavigi kun mi per Nextcloud",
"Copy to clipboard" : "Kopii tondejen",
"Copied!" : "Kopiita!",
"Federated Cloud" : "Federa nubo",
"You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Vi povas kunhavigi kun iu, kiu uzas Nextcloud aŭ aliaj serviloj kaj servoj kungruaj kun „Open Cloud Mesh (OCM)“! Entajpu simple lian aŭ ŝian federnuban identigilon en la kunhaviga dialogo. Federnuba identigilo similas al persono@nubo.example.com",
"Share it so your friends can share files with you:" : "Kunhavigu ĝin, por ke viaj amikoj povu kunhavigi dosierojn kun vi:",
"Add to your website" : "Aldoni al via TTT-ejo",
- "Share with me via Nextcloud" : "Kunhavigi kun mi per Nextcloud",
"HTML Code:" : "HTML-kodo:",
"Cancel" : "Nuligi",
"Add remote share" : "Aldoni foran kunhavon",
"Remote share" : "Foran kunhavo",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ĉu vi volas aldoni la foran kunhavon {name} de {owner}@{remote}?",
- "Remote share password" : "Pasvorto de fora kunhavo",
- "Your Federated Cloud ID:" : "Via federnuba identigilo:",
- "Twitter" : "Twitter"
+ "Remote share password" : "Pasvorto de fora kunhavo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es.js b/apps/federatedfilesharing/l10n/es.js
index 145abf6d606..de61a4c7d8a 100644
--- a/apps/federatedfilesharing/l10n/es.js
+++ b/apps/federatedfilesharing/l10n/es.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Aceptar automáticamente recursos compartidos de cuentas y grupos de federaciones de confianza por defecto",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparte conmigo a través de mi ID de Nube Federada #Nextcloud, ve {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartirlo conmigo a través de mi ID de Nube Federada #Nextcloud",
+ "Share with me via Nextcloud" : "Compartirlo conmigo vía Nextcloud",
"Cloud ID copied to the clipboard" : "ID de nube copiado al portapapeles",
"Copy to clipboard" : "Copiar al portapapeles",
"Clipboard not available. Please copy the cloud ID manually." : "Portapapeles no disponible. Por favor, copia el ID de nube manualmente.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "anteriormente Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Añadir a su sitio web",
- "Share with me via Nextcloud" : "Compartirlo conmigo vía Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Añadir recurso compartido remoto",
"Remote share" : "Recurso compartido remoto",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Deseas añadir el recurso compartido remoto {name} de {owner}@{remote}?",
"Remote share password" : "Contraseña del compartido remoto",
- "Incoming share could not be processed" : "Elemento compartido entrante no pudo ser procesado",
- "Clipboard is not available" : "El portapapeles no está disponible",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Elemento compartido entrante no pudo ser procesado"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es.json b/apps/federatedfilesharing/l10n/es.json
index 2210fe537c6..c0da93b40be 100644
--- a/apps/federatedfilesharing/l10n/es.json
+++ b/apps/federatedfilesharing/l10n/es.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Aceptar automáticamente recursos compartidos de cuentas y grupos de federaciones de confianza por defecto",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparte conmigo a través de mi ID de Nube Federada #Nextcloud, ve {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartirlo conmigo a través de mi ID de Nube Federada #Nextcloud",
+ "Share with me via Nextcloud" : "Compartirlo conmigo vía Nextcloud",
"Cloud ID copied to the clipboard" : "ID de nube copiado al portapapeles",
"Copy to clipboard" : "Copiar al portapapeles",
"Clipboard not available. Please copy the cloud ID manually." : "Portapapeles no disponible. Por favor, copia el ID de nube manualmente.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "anteriormente Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Añadir a su sitio web",
- "Share with me via Nextcloud" : "Compartirlo conmigo vía Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Añadir recurso compartido remoto",
"Remote share" : "Recurso compartido remoto",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Deseas añadir el recurso compartido remoto {name} de {owner}@{remote}?",
"Remote share password" : "Contraseña del compartido remoto",
- "Incoming share could not be processed" : "Elemento compartido entrante no pudo ser procesado",
- "Clipboard is not available" : "El portapapeles no está disponible",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Elemento compartido entrante no pudo ser procesado"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_419.js b/apps/federatedfilesharing/l10n/es_419.js
deleted file mode 100644
index 75c8f6f89ab..00000000000
--- a/apps/federatedfilesharing/l10n/es_419.js
+++ /dev/null
@@ -1,38 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_419.json b/apps/federatedfilesharing/l10n/es_419.json
deleted file mode 100644
index 6a4eea730cc..00000000000
--- a/apps/federatedfilesharing/l10n/es_419.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_AR.js b/apps/federatedfilesharing/l10n/es_AR.js
deleted file mode 100644
index 0d81413eb05..00000000000
--- a/apps/federatedfilesharing/l10n/es_AR.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID de la Nube Federada es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido federado. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Sharing %1$s failed, because this item is already shared with the account %2$s" : "No se pudo compartir %1$s, porque este elemento ya está compartido con la cuenta %2$s",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos federados",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Usted ha recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Usted recibió {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartir en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir archivos en federación",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártalo para que sus amigos puedan compartir archivos con usted. ",
- "X (formerly Twitter)" : "X (anteriormente Twitter)",
- "Add to your website" : "Agregar a su sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Su ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_AR.json b/apps/federatedfilesharing/l10n/es_AR.json
deleted file mode 100644
index 615d16fefb9..00000000000
--- a/apps/federatedfilesharing/l10n/es_AR.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID de la Nube Federada es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido federado. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Sharing %1$s failed, because this item is already shared with the account %2$s" : "No se pudo compartir %1$s, porque este elemento ya está compartido con la cuenta %2$s",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos federados",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Usted ha recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Usted recibió {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartir en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir archivos en federación",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártalo para que sus amigos puedan compartir archivos con usted. ",
- "X (formerly Twitter)" : "X (anteriormente Twitter)",
- "Add to your website" : "Agregar a su sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Su ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_CL.js b/apps/federatedfilesharing/l10n/es_CL.js
deleted file mode 100644
index 1380e150b23..00000000000
--- a/apps/federatedfilesharing/l10n/es_CL.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_CL.json b/apps/federatedfilesharing/l10n/es_CL.json
deleted file mode 100644
index ae553a289a3..00000000000
--- a/apps/federatedfilesharing/l10n/es_CL.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_CO.js b/apps/federatedfilesharing/l10n/es_CO.js
deleted file mode 100644
index 1380e150b23..00000000000
--- a/apps/federatedfilesharing/l10n/es_CO.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_CO.json b/apps/federatedfilesharing/l10n/es_CO.json
deleted file mode 100644
index ae553a289a3..00000000000
--- a/apps/federatedfilesharing/l10n/es_CO.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_CR.js b/apps/federatedfilesharing/l10n/es_CR.js
deleted file mode 100644
index 1380e150b23..00000000000
--- a/apps/federatedfilesharing/l10n/es_CR.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_CR.json b/apps/federatedfilesharing/l10n/es_CR.json
deleted file mode 100644
index ae553a289a3..00000000000
--- a/apps/federatedfilesharing/l10n/es_CR.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_DO.js b/apps/federatedfilesharing/l10n/es_DO.js
deleted file mode 100644
index 1380e150b23..00000000000
--- a/apps/federatedfilesharing/l10n/es_DO.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_DO.json b/apps/federatedfilesharing/l10n/es_DO.json
deleted file mode 100644
index ae553a289a3..00000000000
--- a/apps/federatedfilesharing/l10n/es_DO.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_EC.js b/apps/federatedfilesharing/l10n/es_EC.js
index ec27c4f030e..6c8566768ac 100644
--- a/apps/federatedfilesharing/l10n/es_EC.js
+++ b/apps/federatedfilesharing/l10n/es_EC.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Unable to update federated files sharing config" : "No se pudo actualizar la configuración de compartición federada de archivos",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparte conmigo a través de mi ID de Nube Federada de #Nextcloud, consulta {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
+ "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
"Cloud ID copied to the clipboard" : "ID de Nube copiado al portapapeles",
"Copy to clipboard" : "Copiar al portapapeles",
"Copied!" : "¡Copiado!",
@@ -33,16 +34,11 @@ OC.L10N.register(
"Facebook" : "Facebook",
"Mastodon" : "Mastodon",
"Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Agregar elemento compartido remoto",
"Remote share" : "Elemento compartido remoto",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Clipboard is not available" : "El portapapeles no está disponible",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Contraseña del elemento compartido remoto"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_EC.json b/apps/federatedfilesharing/l10n/es_EC.json
index f55a8f4f82f..299e0f19769 100644
--- a/apps/federatedfilesharing/l10n/es_EC.json
+++ b/apps/federatedfilesharing/l10n/es_EC.json
@@ -22,6 +22,7 @@
"Unable to update federated files sharing config" : "No se pudo actualizar la configuración de compartición federada de archivos",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparte conmigo a través de mi ID de Nube Federada de #Nextcloud, consulta {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
+ "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
"Cloud ID copied to the clipboard" : "ID de Nube copiado al portapapeles",
"Copy to clipboard" : "Copiar al portapapeles",
"Copied!" : "¡Copiado!",
@@ -31,16 +32,11 @@
"Facebook" : "Facebook",
"Mastodon" : "Mastodon",
"Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Agregar elemento compartido remoto",
"Remote share" : "Elemento compartido remoto",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Clipboard is not available" : "El portapapeles no está disponible",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Contraseña del elemento compartido remoto"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_GT.js b/apps/federatedfilesharing/l10n/es_GT.js
deleted file mode 100644
index 1380e150b23..00000000000
--- a/apps/federatedfilesharing/l10n/es_GT.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_GT.json b/apps/federatedfilesharing/l10n/es_GT.json
deleted file mode 100644
index ae553a289a3..00000000000
--- a/apps/federatedfilesharing/l10n/es_GT.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_HN.js b/apps/federatedfilesharing/l10n/es_HN.js
deleted file mode 100644
index 75c8f6f89ab..00000000000
--- a/apps/federatedfilesharing/l10n/es_HN.js
+++ /dev/null
@@ -1,38 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_HN.json b/apps/federatedfilesharing/l10n/es_HN.json
deleted file mode 100644
index 6a4eea730cc..00000000000
--- a/apps/federatedfilesharing/l10n/es_HN.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_MX.js b/apps/federatedfilesharing/l10n/es_MX.js
index a3f320297b2..60f2244edee 100644
--- a/apps/federatedfilesharing/l10n/es_MX.js
+++ b/apps/federatedfilesharing/l10n/es_MX.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Allow people to publish their data to a global and public address book" : "Permitir a los usuarios publicar sus datos libretas de direcciones tanto global como pública",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparte conmigo a través de mi identificador de nube federada de #Nextcloud, vea {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
+ "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
"Cloud ID copied to the clipboard" : "Identificador de nube copiado al portapapeles",
"Copy to clipboard" : "Copiar al portapapeles",
"Copied!" : "¡Copiado!",
@@ -42,16 +43,11 @@ OC.L10N.register(
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Agregar elemento compartido remoto",
"Remote share" : "Elemento compartido remoto",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Clipboard is not available" : "El portapapeles no está disponible",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Contraseña del elemento compartido remoto"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_MX.json b/apps/federatedfilesharing/l10n/es_MX.json
index c3f2de9b1e5..69e1738d681 100644
--- a/apps/federatedfilesharing/l10n/es_MX.json
+++ b/apps/federatedfilesharing/l10n/es_MX.json
@@ -31,6 +31,7 @@
"Allow people to publish their data to a global and public address book" : "Permitir a los usuarios publicar sus datos libretas de direcciones tanto global como pública",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparte conmigo a través de mi identificador de nube federada de #Nextcloud, vea {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
+ "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
"Cloud ID copied to the clipboard" : "Identificador de nube copiado al portapapeles",
"Copy to clipboard" : "Copiar al portapapeles",
"Copied!" : "¡Copiado!",
@@ -40,16 +41,11 @@
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Agregar elemento compartido remoto",
"Remote share" : "Elemento compartido remoto",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Clipboard is not available" : "El portapapeles no está disponible",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Contraseña del elemento compartido remoto"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_NI.js b/apps/federatedfilesharing/l10n/es_NI.js
deleted file mode 100644
index 75c8f6f89ab..00000000000
--- a/apps/federatedfilesharing/l10n/es_NI.js
+++ /dev/null
@@ -1,38 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_NI.json b/apps/federatedfilesharing/l10n/es_NI.json
deleted file mode 100644
index 6a4eea730cc..00000000000
--- a/apps/federatedfilesharing/l10n/es_NI.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_PA.js b/apps/federatedfilesharing/l10n/es_PA.js
deleted file mode 100644
index 75c8f6f89ab..00000000000
--- a/apps/federatedfilesharing/l10n/es_PA.js
+++ /dev/null
@@ -1,38 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_PA.json b/apps/federatedfilesharing/l10n/es_PA.json
deleted file mode 100644
index 6a4eea730cc..00000000000
--- a/apps/federatedfilesharing/l10n/es_PA.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_PE.js b/apps/federatedfilesharing/l10n/es_PE.js
deleted file mode 100644
index 75c8f6f89ab..00000000000
--- a/apps/federatedfilesharing/l10n/es_PE.js
+++ /dev/null
@@ -1,38 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_PE.json b/apps/federatedfilesharing/l10n/es_PE.json
deleted file mode 100644
index 6a4eea730cc..00000000000
--- a/apps/federatedfilesharing/l10n/es_PE.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_PR.js b/apps/federatedfilesharing/l10n/es_PR.js
deleted file mode 100644
index 75c8f6f89ab..00000000000
--- a/apps/federatedfilesharing/l10n/es_PR.js
+++ /dev/null
@@ -1,38 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_PR.json b/apps/federatedfilesharing/l10n/es_PR.json
deleted file mode 100644
index 6a4eea730cc..00000000000
--- a/apps/federatedfilesharing/l10n/es_PR.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_PY.js b/apps/federatedfilesharing/l10n/es_PY.js
deleted file mode 100644
index 75c8f6f89ab..00000000000
--- a/apps/federatedfilesharing/l10n/es_PY.js
+++ /dev/null
@@ -1,38 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_PY.json b/apps/federatedfilesharing/l10n/es_PY.json
deleted file mode 100644
index 6a4eea730cc..00000000000
--- a/apps/federatedfilesharing/l10n/es_PY.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_SV.js b/apps/federatedfilesharing/l10n/es_SV.js
deleted file mode 100644
index 1380e150b23..00000000000
--- a/apps/federatedfilesharing/l10n/es_SV.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_SV.json b/apps/federatedfilesharing/l10n/es_SV.json
deleted file mode 100644
index ae553a289a3..00000000000
--- a/apps/federatedfilesharing/l10n/es_SV.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated file sharing" : "Compartir elementos",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_UY.js b/apps/federatedfilesharing/l10n/es_UY.js
deleted file mode 100644
index 75c8f6f89ab..00000000000
--- a/apps/federatedfilesharing/l10n/es_UY.js
+++ /dev/null
@@ -1,38 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/es_UY.json b/apps/federatedfilesharing/l10n/es_UY.json
deleted file mode 100644
index 6a4eea730cc..00000000000
--- a/apps/federatedfilesharing/l10n/es_UY.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "El ID es inválido",
- "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor",
- "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
- "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
- "File is already shared with %s" : "El archivo ya ha sido compartido con %s",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Federated sharing" : "Elementos compartidos",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})",
- "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}",
- "Accept" : "Aceptar",
- "Decline" : "Rechazar",
- "Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
- "Sharing" : "Compartiendo",
- "Federated Cloud" : "Nube Federada",
- "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:",
- "Add to your website" : "Agregar a tu sitio web",
- "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Copied!" : "¡Copiado!",
- "Cancel" : "Cancelar",
- "Add remote share" : "Agregar elemento compartido remoto",
- "Remote share" : "Elemento compartido remoto",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?",
- "Remote share password" : "Contraseña del elemento compartido remoto",
- "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
- "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores",
- "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas",
- "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federada:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/et_EE.js b/apps/federatedfilesharing/l10n/et_EE.js
index 68f47976fae..62653174240 100644
--- a/apps/federatedfilesharing/l10n/et_EE.js
+++ b/apps/federatedfilesharing/l10n/et_EE.js
@@ -4,7 +4,7 @@ OC.L10N.register(
"Invalid Federated Cloud ID" : "Vigane liitpilve ID",
"Server to server sharing is not enabled on this server" : "Serveritevaheline jagamine ei ole selle pilves aktiiveeritud",
"Couldn't establish a federated share." : "Liitjagamist ei õnnestunud luua",
- "Couldn't establish a federated share, maybe the password was wrong." : "Liitjagamist ei õnnestunud luua, ehk oli parool vale.",
+ "Couldn't establish a federated share, maybe the password was wrong." : "Liitjagamist ei õnnestunud luua, vast oli salasõna vale.",
"Federated Share request sent, you will receive an invitation. Check your notifications." : "Liitjagamise päring edastatud, sulle saadetakse kutse. Kontrolli oma teateid.",
"Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "Liitjagamist ei saanud luua, näib, et liitmiseks mõeldud server on liiga vana (Nextcloud <= 9).",
"It is not allowed to send federated group shares from this server." : "Sellest serverist ei ole lubatud liitrühma jagamisi saata.",
@@ -24,9 +24,11 @@ OC.L10N.register(
"Federated file sharing" : "Failide jagamine liitpilves",
"Provide federated file sharing across servers" : "Toeta failide jagamist liitpilves üle serverite",
"Confirm data upload to lookup server" : "Kinnita andmete üleslaadimine tuvastusserverisse",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Kui see eelistus on kasutusel, siis kõik kasutajakonto andmed, mille nähtavuseks on märgitud „avaldatud“, sünkroniseeritakse automaatselt välistesse serveritesse ning avaldatakse liitpilve üldises aadressiraamatus.",
"Disable upload" : "Keela üleslaadimine",
"Enable data upload" : "Luba andmete üleslaadimine",
"Confirm querying lookup server" : "Kinnita andmete pärimine tuvastusserverist",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Kui see eelistus on kasutusel, siis jaosmeedia loomisel kasutatud otsingusisend saadetakse automaatselt välistesse serveritesse, mis tagavad liitpilve üldise ja avaliku aadressiraamatu toimimise.",
"This is used to retrieve the federated cloud ID to make federated sharing easier." : "See on kasutusel liitpilve tunnuse laadimiseks ning see teeb jagamise liitpilves lihtsamaks.",
"Moreover, email addresses of users might be sent to that system in order to verify them." : "Lisaks võidakse sellesse serverisse saata verifitseerimise jaoks kasutajate e-posti aadresse.",
"Disable querying" : "Keela päringute tegemine",
@@ -44,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Aktsepteeri vaikimisi usaldusväärsete liitkontode ja rühmade jagamisi automaatselt",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Jaga minuga läbi mu #Nextcloudi Liitjagamise Pilve ID, vaata {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Jaga minuga läbi minu #Nextcloudi liitpilve ID",
+ "Share with me via Nextcloud" : "Jaga minuga läbi Nextcloudi",
"Cloud ID copied to the clipboard" : "Pilve ID kopeeriti lõikelauale",
"Copy to clipboard" : "Kopeeri lõikepuhvrisse",
"Clipboard not available. Please copy the cloud ID manually." : "Lõikelaud pole saadaval. Palun kopeeri pilve ID manuaalselt.",
@@ -57,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "varasemalt Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Lisa oma veebisaidile",
- "Share with me via Nextcloud" : "Jaga minuga läbi Nextcloudi",
"HTML Code:" : "HTML kood:",
"Cancel" : "Tühista",
"Add remote share" : "Lisa kaugjagamine",
"Remote share" : "Kaugjagamine",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Soovid lisada kaugjagamise {name} asukohast {owner}@{remote}?",
- "Remote share password" : "Kaugjagamise parool",
- "Incoming share could not be processed" : "Sissetulevat kausta ei saanud töödelda",
- "Clipboard is not available" : "Lõikelauda ei ole saadaval",
- "Your Federated Cloud ID:" : "Sinu liitpilve ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diasporaa"
+ "Remote share password" : "Kaugjagamise salasõna",
+ "Incoming share could not be processed" : "Sissetulevat kausta ei saanud töödelda"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/et_EE.json b/apps/federatedfilesharing/l10n/et_EE.json
index 11fc51f7ca2..a253e5a4e05 100644
--- a/apps/federatedfilesharing/l10n/et_EE.json
+++ b/apps/federatedfilesharing/l10n/et_EE.json
@@ -2,7 +2,7 @@
"Invalid Federated Cloud ID" : "Vigane liitpilve ID",
"Server to server sharing is not enabled on this server" : "Serveritevaheline jagamine ei ole selle pilves aktiiveeritud",
"Couldn't establish a federated share." : "Liitjagamist ei õnnestunud luua",
- "Couldn't establish a federated share, maybe the password was wrong." : "Liitjagamist ei õnnestunud luua, ehk oli parool vale.",
+ "Couldn't establish a federated share, maybe the password was wrong." : "Liitjagamist ei õnnestunud luua, vast oli salasõna vale.",
"Federated Share request sent, you will receive an invitation. Check your notifications." : "Liitjagamise päring edastatud, sulle saadetakse kutse. Kontrolli oma teateid.",
"Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "Liitjagamist ei saanud luua, näib, et liitmiseks mõeldud server on liiga vana (Nextcloud <= 9).",
"It is not allowed to send federated group shares from this server." : "Sellest serverist ei ole lubatud liitrühma jagamisi saata.",
@@ -22,9 +22,11 @@
"Federated file sharing" : "Failide jagamine liitpilves",
"Provide federated file sharing across servers" : "Toeta failide jagamist liitpilves üle serverite",
"Confirm data upload to lookup server" : "Kinnita andmete üleslaadimine tuvastusserverisse",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Kui see eelistus on kasutusel, siis kõik kasutajakonto andmed, mille nähtavuseks on märgitud „avaldatud“, sünkroniseeritakse automaatselt välistesse serveritesse ning avaldatakse liitpilve üldises aadressiraamatus.",
"Disable upload" : "Keela üleslaadimine",
"Enable data upload" : "Luba andmete üleslaadimine",
"Confirm querying lookup server" : "Kinnita andmete pärimine tuvastusserverist",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Kui see eelistus on kasutusel, siis jaosmeedia loomisel kasutatud otsingusisend saadetakse automaatselt välistesse serveritesse, mis tagavad liitpilve üldise ja avaliku aadressiraamatu toimimise.",
"This is used to retrieve the federated cloud ID to make federated sharing easier." : "See on kasutusel liitpilve tunnuse laadimiseks ning see teeb jagamise liitpilves lihtsamaks.",
"Moreover, email addresses of users might be sent to that system in order to verify them." : "Lisaks võidakse sellesse serverisse saata verifitseerimise jaoks kasutajate e-posti aadresse.",
"Disable querying" : "Keela päringute tegemine",
@@ -42,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Aktsepteeri vaikimisi usaldusväärsete liitkontode ja rühmade jagamisi automaatselt",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Jaga minuga läbi mu #Nextcloudi Liitjagamise Pilve ID, vaata {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Jaga minuga läbi minu #Nextcloudi liitpilve ID",
+ "Share with me via Nextcloud" : "Jaga minuga läbi Nextcloudi",
"Cloud ID copied to the clipboard" : "Pilve ID kopeeriti lõikelauale",
"Copy to clipboard" : "Kopeeri lõikepuhvrisse",
"Clipboard not available. Please copy the cloud ID manually." : "Lõikelaud pole saadaval. Palun kopeeri pilve ID manuaalselt.",
@@ -55,17 +58,12 @@
"formerly Twitter" : "varasemalt Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Lisa oma veebisaidile",
- "Share with me via Nextcloud" : "Jaga minuga läbi Nextcloudi",
"HTML Code:" : "HTML kood:",
"Cancel" : "Tühista",
"Add remote share" : "Lisa kaugjagamine",
"Remote share" : "Kaugjagamine",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Soovid lisada kaugjagamise {name} asukohast {owner}@{remote}?",
- "Remote share password" : "Kaugjagamise parool",
- "Incoming share could not be processed" : "Sissetulevat kausta ei saanud töödelda",
- "Clipboard is not available" : "Lõikelauda ei ole saadaval",
- "Your Federated Cloud ID:" : "Sinu liitpilve ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diasporaa"
+ "Remote share password" : "Kaugjagamise salasõna",
+ "Incoming share could not be processed" : "Sissetulevat kausta ei saanud töödelda"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/eu.js b/apps/federatedfilesharing/l10n/eu.js
index acf5d82d070..8ce0103dc55 100644
--- a/apps/federatedfilesharing/l10n/eu.js
+++ b/apps/federatedfilesharing/l10n/eu.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Onartu federatutako kontu eta talde fidagarrien partekatzeak modu lehenetsian",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Partekatu nirekin, nire federatutako #Nextcloud hodei IDa erabiliz, ikus {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Partekatu nirekin, nire federatutako #Nextcloud hodei IDa erabiliz",
+ "Share with me via Nextcloud" : "Partekatu nirekin Nextcloud bidez",
"Cloud ID copied to the clipboard" : "Hodei IDa arbelean kopiatu da",
"Copy to clipboard" : "Kopiatu arbelera",
"Clipboard not available. Please copy the cloud ID manually." : "Arbela ez dago eskuragarri, mesedez kopiatu hodei IDa eskuz.",
@@ -48,17 +49,12 @@ OC.L10N.register(
"formerly Twitter" : "lehen Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Gehitu zure webgunera",
- "Share with me via Nextcloud" : "Partekatu nirekin Nextcloud bidez",
"HTML Code:" : "HTML kodea:",
"Cancel" : "Ezeztatu",
"Add remote share" : "Gehitu urruneko partekatzea",
"Remote share" : "Urruneko partekatzea",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote}(r)en {name} urruneko partekatzea gehitu nahi duzu?",
"Remote share password" : "Urruneko partekatzearen pasahitza",
- "Incoming share could not be processed" : "Sarrerako partekatzea ezin izan da prozesatu",
- "Clipboard is not available" : "Arbela ez dago erabilgarri",
- "Your Federated Cloud ID:" : "Zure federatutako hodei IDa:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Sarrerako partekatzea ezin izan da prozesatu"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/eu.json b/apps/federatedfilesharing/l10n/eu.json
index aefea333ce8..f6fde77b018 100644
--- a/apps/federatedfilesharing/l10n/eu.json
+++ b/apps/federatedfilesharing/l10n/eu.json
@@ -33,6 +33,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Onartu federatutako kontu eta talde fidagarrien partekatzeak modu lehenetsian",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Partekatu nirekin, nire federatutako #Nextcloud hodei IDa erabiliz, ikus {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Partekatu nirekin, nire federatutako #Nextcloud hodei IDa erabiliz",
+ "Share with me via Nextcloud" : "Partekatu nirekin Nextcloud bidez",
"Cloud ID copied to the clipboard" : "Hodei IDa arbelean kopiatu da",
"Copy to clipboard" : "Kopiatu arbelera",
"Clipboard not available. Please copy the cloud ID manually." : "Arbela ez dago eskuragarri, mesedez kopiatu hodei IDa eskuz.",
@@ -46,17 +47,12 @@
"formerly Twitter" : "lehen Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Gehitu zure webgunera",
- "Share with me via Nextcloud" : "Partekatu nirekin Nextcloud bidez",
"HTML Code:" : "HTML kodea:",
"Cancel" : "Ezeztatu",
"Add remote share" : "Gehitu urruneko partekatzea",
"Remote share" : "Urruneko partekatzea",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote}(r)en {name} urruneko partekatzea gehitu nahi duzu?",
"Remote share password" : "Urruneko partekatzearen pasahitza",
- "Incoming share could not be processed" : "Sarrerako partekatzea ezin izan da prozesatu",
- "Clipboard is not available" : "Arbela ez dago erabilgarri",
- "Your Federated Cloud ID:" : "Zure federatutako hodei IDa:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Sarrerako partekatzea ezin izan da prozesatu"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/fa.js b/apps/federatedfilesharing/l10n/fa.js
index 4e5494874c9..6e4ca060ec2 100644
--- a/apps/federatedfilesharing/l10n/fa.js
+++ b/apps/federatedfilesharing/l10n/fa.js
@@ -8,6 +8,7 @@ OC.L10N.register(
"Federated Share request sent, you will receive an invitation. Check your notifications." : "درخواست اشتراک فدرال ارسال شد، یک دعوت نامه دریافت خواهید کرد. اعلان های خود را بررسی کنید.",
"Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "نمی‌توان یک اشتراک فدرال ایجاد کرد، به نظر می‌رسد سروری که باید با آن فدرال شود خیلی قدیمی است (Nextcloud <= 9).",
"It is not allowed to send federated group shares from this server." : "ارسال اشتراک های گروه فدرال از این سرور مجاز نیست.",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "اشتراک‌گذاری %1$s ناموفق بود، زیرا این مورد قبلاً با حساب %2$s به اشتراک گذاشته شده است",
"Federated shares require read permissions" : "سهام فدرال به مجوز خواندن نیاز دارد",
"File is already shared with %s" : "فایل قبلاً با به اشتراک گذاشته شده است%s",
"Sharing %1$s failed, could not find %2$s, maybe the server is currently unreachable or uses a self-signed certificate." : "اشتراک‌گذاری %1$s انجام نشد، پیدا نشد%2$s، شاید سرور در حال حاضر غیرقابل دسترسی باشد یا از گواهی امضا شده استفاده می‌کند.",
@@ -24,6 +25,7 @@ OC.L10N.register(
"Unable to update federated files sharing config" : "به‌روزرسانی پیکربندی اشتراک‌گذاری فایل‌های فدرال ممکن نیست",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "از طریق شناسه ابری فدرال #Nextcloud با من به اشتراک بگذارید، به {url} مراجعه کنید",
"Share with me through my #Nextcloud Federated Cloud ID" : "از طریق شناسه ابری فدرال #Nextcloud با من به اشتراک بگذارید",
+ "Share with me via Nextcloud" : "هم‌رسانی با من روی نسکت‌کلود",
"Cloud ID copied to the clipboard" : "Cloud ID در کلیپ بورد کپی شد",
"Copy to clipboard" : "رونوشت به تخته‌گیره",
"Copied!" : "رونوشت شد!",
@@ -33,16 +35,11 @@ OC.L10N.register(
"Facebook" : "فیس‌بوک",
"Mastodon" : "Mastodon",
"Add to your website" : "افزودن به پایگاه وبتان",
- "Share with me via Nextcloud" : "هم‌رسانی با من روی نسکت‌کلود",
"HTML Code:" : "کد HTML :",
"Cancel" : "لغو",
"Add remote share" : "افزودن هم‌رسانی دوردست",
"Remote share" : "هم‌رسانی دوردست",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "می‌خواهید هم‌رسانی دوردست {name} را از ‪{owner}@{remote}‬ بیفزایید؟",
- "Remote share password" : "گذرواژهٔ هم‌رسانی دوردست",
- "Clipboard is not available" : "کلیپ بورد در دسترس نیست",
- "Your Federated Cloud ID:" : "شناسهٔ ابردی خودگردانتان:",
- "Twitter" : "توییتر",
- "Diaspora" : "دیازپورا"
+ "Remote share password" : "گذرواژهٔ هم‌رسانی دوردست"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/federatedfilesharing/l10n/fa.json b/apps/federatedfilesharing/l10n/fa.json
index fb08b61e78a..4abd8b7434f 100644
--- a/apps/federatedfilesharing/l10n/fa.json
+++ b/apps/federatedfilesharing/l10n/fa.json
@@ -6,6 +6,7 @@
"Federated Share request sent, you will receive an invitation. Check your notifications." : "درخواست اشتراک فدرال ارسال شد، یک دعوت نامه دریافت خواهید کرد. اعلان های خود را بررسی کنید.",
"Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "نمی‌توان یک اشتراک فدرال ایجاد کرد، به نظر می‌رسد سروری که باید با آن فدرال شود خیلی قدیمی است (Nextcloud <= 9).",
"It is not allowed to send federated group shares from this server." : "ارسال اشتراک های گروه فدرال از این سرور مجاز نیست.",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "اشتراک‌گذاری %1$s ناموفق بود، زیرا این مورد قبلاً با حساب %2$s به اشتراک گذاشته شده است",
"Federated shares require read permissions" : "سهام فدرال به مجوز خواندن نیاز دارد",
"File is already shared with %s" : "فایل قبلاً با به اشتراک گذاشته شده است%s",
"Sharing %1$s failed, could not find %2$s, maybe the server is currently unreachable or uses a self-signed certificate." : "اشتراک‌گذاری %1$s انجام نشد، پیدا نشد%2$s، شاید سرور در حال حاضر غیرقابل دسترسی باشد یا از گواهی امضا شده استفاده می‌کند.",
@@ -22,6 +23,7 @@
"Unable to update federated files sharing config" : "به‌روزرسانی پیکربندی اشتراک‌گذاری فایل‌های فدرال ممکن نیست",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "از طریق شناسه ابری فدرال #Nextcloud با من به اشتراک بگذارید، به {url} مراجعه کنید",
"Share with me through my #Nextcloud Federated Cloud ID" : "از طریق شناسه ابری فدرال #Nextcloud با من به اشتراک بگذارید",
+ "Share with me via Nextcloud" : "هم‌رسانی با من روی نسکت‌کلود",
"Cloud ID copied to the clipboard" : "Cloud ID در کلیپ بورد کپی شد",
"Copy to clipboard" : "رونوشت به تخته‌گیره",
"Copied!" : "رونوشت شد!",
@@ -31,16 +33,11 @@
"Facebook" : "فیس‌بوک",
"Mastodon" : "Mastodon",
"Add to your website" : "افزودن به پایگاه وبتان",
- "Share with me via Nextcloud" : "هم‌رسانی با من روی نسکت‌کلود",
"HTML Code:" : "کد HTML :",
"Cancel" : "لغو",
"Add remote share" : "افزودن هم‌رسانی دوردست",
"Remote share" : "هم‌رسانی دوردست",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "می‌خواهید هم‌رسانی دوردست {name} را از ‪{owner}@{remote}‬ بیفزایید؟",
- "Remote share password" : "گذرواژهٔ هم‌رسانی دوردست",
- "Clipboard is not available" : "کلیپ بورد در دسترس نیست",
- "Your Federated Cloud ID:" : "شناسهٔ ابردی خودگردانتان:",
- "Twitter" : "توییتر",
- "Diaspora" : "دیازپورا"
+ "Remote share password" : "گذرواژهٔ هم‌رسانی دوردست"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/fi.js b/apps/federatedfilesharing/l10n/fi.js
index 0249d8df60a..8ca92e78e08 100644
--- a/apps/federatedfilesharing/l10n/fi.js
+++ b/apps/federatedfilesharing/l10n/fi.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Federated file sharing" : "Federoitu tiedostojako",
"Provide federated file sharing across servers" : "Mahdollistaa federoidun tiedostojaon palvelinten välillä",
"Share with me through my #Nextcloud Federated Cloud ID" : "Jaa kanssani käyttäen #Nextcloud ja federoitua pilvitunnistetta",
+ "Share with me via Nextcloud" : "Jaa kanssani Nextcloudin kautta",
"Copy to clipboard" : "Kopioi leikepöydälle",
"Copied!" : "Kopioitu!",
"Federated Cloud" : "Federoitu pilvi",
@@ -30,16 +31,11 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (aiemmin Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Lisää verkkosivuillesi",
- "Share with me via Nextcloud" : "Jaa kanssani Nextcloudin kautta",
"HTML Code:" : "HTML-koodi:",
"Cancel" : "Peruuta",
"Add remote share" : "Lisää etäjako",
"Remote share" : "Etäjako",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Haluatko lisätä etäjaon {name} kohteesta {owner}@{remote}?",
- "Remote share password" : "Etäjaon salasana",
- "Clipboard is not available" : "Leikepöytä ei ole käytettävissä",
- "Your Federated Cloud ID:" : "Federoidun pilvesi tunniste:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Etäjaon salasana"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/fi.json b/apps/federatedfilesharing/l10n/fi.json
index a163bb824b9..c0fc0feae4e 100644
--- a/apps/federatedfilesharing/l10n/fi.json
+++ b/apps/federatedfilesharing/l10n/fi.json
@@ -19,6 +19,7 @@
"Federated file sharing" : "Federoitu tiedostojako",
"Provide federated file sharing across servers" : "Mahdollistaa federoidun tiedostojaon palvelinten välillä",
"Share with me through my #Nextcloud Federated Cloud ID" : "Jaa kanssani käyttäen #Nextcloud ja federoitua pilvitunnistetta",
+ "Share with me via Nextcloud" : "Jaa kanssani Nextcloudin kautta",
"Copy to clipboard" : "Kopioi leikepöydälle",
"Copied!" : "Kopioitu!",
"Federated Cloud" : "Federoitu pilvi",
@@ -28,16 +29,11 @@
"X (formerly Twitter)" : "X (aiemmin Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Lisää verkkosivuillesi",
- "Share with me via Nextcloud" : "Jaa kanssani Nextcloudin kautta",
"HTML Code:" : "HTML-koodi:",
"Cancel" : "Peruuta",
"Add remote share" : "Lisää etäjako",
"Remote share" : "Etäjako",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Haluatko lisätä etäjaon {name} kohteesta {owner}@{remote}?",
- "Remote share password" : "Etäjaon salasana",
- "Clipboard is not available" : "Leikepöytä ei ole käytettävissä",
- "Your Federated Cloud ID:" : "Federoidun pilvesi tunniste:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Etäjaon salasana"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/fr.js b/apps/federatedfilesharing/l10n/fr.js
index d579a627f4e..0fb352c86fa 100644
--- a/apps/federatedfilesharing/l10n/fr.js
+++ b/apps/federatedfilesharing/l10n/fr.js
@@ -23,20 +23,30 @@ OC.L10N.register(
"Sharing" : "Partage",
"Federated file sharing" : "Partage de fichiers fédéré",
"Provide federated file sharing across servers" : "Fourni un partage de fichiers fédéré entre plusieurs serveurs",
+ "Confirm data upload to lookup server" : "Confirmer le téléversement des données sur le serveur de recherche",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Lorsque cette option est activée, toutes les propriétés du compte (par exemple, l'adresse e-mail) dont la visibilité est définie sur \"published\" seront automatiquement synchronisées et transmises à un système externe et mises à disposition dans un carnet d'adresses public et global.",
"Disable upload" : "Désactiver le téléchargement",
+ "Enable data upload" : "Activer l'envoi de données",
+ "Confirm querying lookup server" : "Confirmer l'interrogation du serveur de recherche",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Lorsque cette option est activée, la saisie de recherche lors de la création de partages sera envoyée à un système externe qui fournit un carnet d'adresses public et global.",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Ceci est utilisé pour récupérer l'ID du cloud fédéré afin de faciliter le partage fédéré.",
"Moreover, email addresses of users might be sent to that system in order to verify them." : "De plus, les adresses mail des utilisateurs peuvent être envoyées à ce système pour les vérifier.",
+ "Disable querying" : "Désactiver le requêtage",
+ "Enable querying" : "Activer le requêtage",
"Unable to update federated files sharing config" : "Impossible de mettre à jour la configuration du partage fédéré de fichiers ",
"Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Configurer comment les utilisateurs peuvent faire des partages entre serveurs. Cela inclut aussi les partages entre personnes de ce serveur s'ils utilisent des partages fédérés.",
"Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Autoriser les personnes de ce serveur à envoyer des partages vers d'autres serveurs (cette option permet aussi l'accès WebDAV aux partages publics)",
"Allow people on this server to receive shares from other servers" : "Autoriser les personnes de ce serveur à recevoir des partages d'autres serveurs",
"Allow people on this server to send shares to groups on other servers" : "Autoriser les personnes de ce serveur à envoyer des partages à des groupes sur d'autres serveurs",
"Allow people on this server to receive group shares from other servers" : "Autoriser les personnes de ce serveur à recevoir des partages de groupe d'autres serveurs",
+ "The lookup server is only available for global scale." : "Le serveur de recherche n'est disponible que globalement.",
"Search global and public address book for people" : "Rechercher dans le carnet d'adresses global et public pour les personnes",
"Allow people to publish their data to a global and public address book" : "Autoriser les personnes à publier leurs données dans un carnet d'adresses global et public",
"Trusted federation" : "Fédération de confiance",
"Automatically accept shares from trusted federated accounts and groups by default" : "Accepter par défaut automatiquement les partages provenant de comptes et de groupes fédérés de confiance",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Partagez avec moi grâce à mon ID de Cloud Fédéré #Nextcloud, voir {url}.",
"Share with me through my #Nextcloud Federated Cloud ID" : "Partagez avec moi grâce à mon ID de Cloud Fédéré #Nextcloud",
+ "Share with me via Nextcloud" : "Partagez avec moi via Nextcloud",
"Cloud ID copied to the clipboard" : "ID de Cloud Fédéré copié dans le presse-papiers",
"Copy to clipboard" : "Copier dans le presse-papiers",
"Clipboard not available. Please copy the cloud ID manually." : "Presse-papiers non disponible. Veuillez copier l'ID cloud manuellement.",
@@ -50,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "anciennement Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Ajouter à votre site web",
- "Share with me via Nextcloud" : "Partagez avec moi via Nextcloud",
"HTML Code:" : "Code HTML :",
"Cancel" : "Annuler",
"Add remote share" : "Ajouter un partage distant",
"Remote share" : "Partage distant",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Voulez-vous ajouter le partage distant {name} depuis {owner}@{remote} ?",
"Remote share password" : "Mot de passe du partage distant",
- "Incoming share could not be processed" : "Le partage entrant n'a pas pu être traité",
- "Clipboard is not available" : "Le presse-papiers n'est pas disponible",
- "Your Federated Cloud ID:" : "Votre ID de Cloud Fédéré :",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Le partage entrant n'a pas pu être traité"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/fr.json b/apps/federatedfilesharing/l10n/fr.json
index ebb2d92d1f5..6887f56b8f7 100644
--- a/apps/federatedfilesharing/l10n/fr.json
+++ b/apps/federatedfilesharing/l10n/fr.json
@@ -21,20 +21,30 @@
"Sharing" : "Partage",
"Federated file sharing" : "Partage de fichiers fédéré",
"Provide federated file sharing across servers" : "Fourni un partage de fichiers fédéré entre plusieurs serveurs",
+ "Confirm data upload to lookup server" : "Confirmer le téléversement des données sur le serveur de recherche",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Lorsque cette option est activée, toutes les propriétés du compte (par exemple, l'adresse e-mail) dont la visibilité est définie sur \"published\" seront automatiquement synchronisées et transmises à un système externe et mises à disposition dans un carnet d'adresses public et global.",
"Disable upload" : "Désactiver le téléchargement",
+ "Enable data upload" : "Activer l'envoi de données",
+ "Confirm querying lookup server" : "Confirmer l'interrogation du serveur de recherche",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Lorsque cette option est activée, la saisie de recherche lors de la création de partages sera envoyée à un système externe qui fournit un carnet d'adresses public et global.",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Ceci est utilisé pour récupérer l'ID du cloud fédéré afin de faciliter le partage fédéré.",
"Moreover, email addresses of users might be sent to that system in order to verify them." : "De plus, les adresses mail des utilisateurs peuvent être envoyées à ce système pour les vérifier.",
+ "Disable querying" : "Désactiver le requêtage",
+ "Enable querying" : "Activer le requêtage",
"Unable to update federated files sharing config" : "Impossible de mettre à jour la configuration du partage fédéré de fichiers ",
"Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Configurer comment les utilisateurs peuvent faire des partages entre serveurs. Cela inclut aussi les partages entre personnes de ce serveur s'ils utilisent des partages fédérés.",
"Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Autoriser les personnes de ce serveur à envoyer des partages vers d'autres serveurs (cette option permet aussi l'accès WebDAV aux partages publics)",
"Allow people on this server to receive shares from other servers" : "Autoriser les personnes de ce serveur à recevoir des partages d'autres serveurs",
"Allow people on this server to send shares to groups on other servers" : "Autoriser les personnes de ce serveur à envoyer des partages à des groupes sur d'autres serveurs",
"Allow people on this server to receive group shares from other servers" : "Autoriser les personnes de ce serveur à recevoir des partages de groupe d'autres serveurs",
+ "The lookup server is only available for global scale." : "Le serveur de recherche n'est disponible que globalement.",
"Search global and public address book for people" : "Rechercher dans le carnet d'adresses global et public pour les personnes",
"Allow people to publish their data to a global and public address book" : "Autoriser les personnes à publier leurs données dans un carnet d'adresses global et public",
"Trusted federation" : "Fédération de confiance",
"Automatically accept shares from trusted federated accounts and groups by default" : "Accepter par défaut automatiquement les partages provenant de comptes et de groupes fédérés de confiance",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Partagez avec moi grâce à mon ID de Cloud Fédéré #Nextcloud, voir {url}.",
"Share with me through my #Nextcloud Federated Cloud ID" : "Partagez avec moi grâce à mon ID de Cloud Fédéré #Nextcloud",
+ "Share with me via Nextcloud" : "Partagez avec moi via Nextcloud",
"Cloud ID copied to the clipboard" : "ID de Cloud Fédéré copié dans le presse-papiers",
"Copy to clipboard" : "Copier dans le presse-papiers",
"Clipboard not available. Please copy the cloud ID manually." : "Presse-papiers non disponible. Veuillez copier l'ID cloud manuellement.",
@@ -48,17 +58,12 @@
"formerly Twitter" : "anciennement Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Ajouter à votre site web",
- "Share with me via Nextcloud" : "Partagez avec moi via Nextcloud",
"HTML Code:" : "Code HTML :",
"Cancel" : "Annuler",
"Add remote share" : "Ajouter un partage distant",
"Remote share" : "Partage distant",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Voulez-vous ajouter le partage distant {name} depuis {owner}@{remote} ?",
"Remote share password" : "Mot de passe du partage distant",
- "Incoming share could not be processed" : "Le partage entrant n'a pas pu être traité",
- "Clipboard is not available" : "Le presse-papiers n'est pas disponible",
- "Your Federated Cloud ID:" : "Votre ID de Cloud Fédéré :",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Le partage entrant n'a pas pu être traité"
},"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/federatedfilesharing/l10n/ga.js b/apps/federatedfilesharing/l10n/ga.js
index 24527ffa8c9..bb0ba15ac70 100644
--- a/apps/federatedfilesharing/l10n/ga.js
+++ b/apps/federatedfilesharing/l10n/ga.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Glac go huathoibríoch le scaireanna ó chuntais chónaidhme iontaofa agus ó ghrúpaí de réir réamhshocraithe",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Roinn liom trí m'aitheantas scamall #Nextcloud Federated Cloud, féach {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Roinn liom trí m'aitheantas scamall #Nextcloud Federated Cloud",
+ "Share with me via Nextcloud" : "Roinn liom trí Nextcloud",
"Cloud ID copied to the clipboard" : "Cóipeáladh Cloud ID chuig an ngearrthaisce",
"Copy to clipboard" : "Cóipeáil chuig an ngearrthaisce",
"Clipboard not available. Please copy the cloud ID manually." : "Níl an gearrthaisce ar fáil. Cóipeáil an t-aitheantas néil de láimh.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "Twitter roimhe seo",
"Mastodon" : "Mastodon",
"Add to your website" : "Cuir le do láithreán gréasáin",
- "Share with me via Nextcloud" : "Roinn liom trí Nextcloud",
"HTML Code:" : "Cód HTML:",
"Cancel" : "Cealaigh",
"Add remote share" : "Cuir cianroinnte leis",
"Remote share" : "Comhroinnt iargúlta",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ar mhaith leat an sciar cianda {name} ó {owner}@{remote} a chur leis?",
"Remote share password" : "Pasfhocal comhroinnte cianda",
- "Incoming share could not be processed" : "Níorbh fhéidir an sciar isteach a phróiseáil",
- "Clipboard is not available" : "Níl fáil ar an ngearrthaisce",
- "Your Federated Cloud ID:" : "D'aitheantas scamall Cónaidhme:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspóra"
+ "Incoming share could not be processed" : "Níorbh fhéidir an sciar isteach a phróiseáil"
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/federatedfilesharing/l10n/ga.json b/apps/federatedfilesharing/l10n/ga.json
index bfe2f20e5d8..44a7ddd82dc 100644
--- a/apps/federatedfilesharing/l10n/ga.json
+++ b/apps/federatedfilesharing/l10n/ga.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Glac go huathoibríoch le scaireanna ó chuntais chónaidhme iontaofa agus ó ghrúpaí de réir réamhshocraithe",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Roinn liom trí m'aitheantas scamall #Nextcloud Federated Cloud, féach {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Roinn liom trí m'aitheantas scamall #Nextcloud Federated Cloud",
+ "Share with me via Nextcloud" : "Roinn liom trí Nextcloud",
"Cloud ID copied to the clipboard" : "Cóipeáladh Cloud ID chuig an ngearrthaisce",
"Copy to clipboard" : "Cóipeáil chuig an ngearrthaisce",
"Clipboard not available. Please copy the cloud ID manually." : "Níl an gearrthaisce ar fáil. Cóipeáil an t-aitheantas néil de láimh.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "Twitter roimhe seo",
"Mastodon" : "Mastodon",
"Add to your website" : "Cuir le do láithreán gréasáin",
- "Share with me via Nextcloud" : "Roinn liom trí Nextcloud",
"HTML Code:" : "Cód HTML:",
"Cancel" : "Cealaigh",
"Add remote share" : "Cuir cianroinnte leis",
"Remote share" : "Comhroinnt iargúlta",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ar mhaith leat an sciar cianda {name} ó {owner}@{remote} a chur leis?",
"Remote share password" : "Pasfhocal comhroinnte cianda",
- "Incoming share could not be processed" : "Níorbh fhéidir an sciar isteach a phróiseáil",
- "Clipboard is not available" : "Níl fáil ar an ngearrthaisce",
- "Your Federated Cloud ID:" : "D'aitheantas scamall Cónaidhme:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspóra"
+ "Incoming share could not be processed" : "Níorbh fhéidir an sciar isteach a phróiseáil"
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/gl.js b/apps/federatedfilesharing/l10n/gl.js
index 5ef2080f298..2a90ec1ebd7 100644
--- a/apps/federatedfilesharing/l10n/gl.js
+++ b/apps/federatedfilesharing/l10n/gl.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Aceptar automaticamente os recursos compartidos de contas e grupos federados de confianza de xeito predeterminado",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparta comigo a través do meu ID de nube federada de #Nextcloud, vexa {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Comparta comigo a través do meu ID de nube federada de #Nextcloud",
+ "Share with me via Nextcloud" : "Comparte comigo a través de Nextcloud",
"Cloud ID copied to the clipboard" : "O identificador de nube (Cloud ID) (foi copiado no portapapeis",
"Copy to clipboard" : "Copiar no portapapeis.",
"Clipboard not available. Please copy the cloud ID manually." : "O portapapeis non está dispoñíbel. Copie o ID da nube manualmente.",
@@ -48,17 +49,12 @@ OC.L10N.register(
"formerly Twitter" : "anteriormente Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Engadir ao seu sitio web",
- "Share with me via Nextcloud" : "Comparte comigo a través de Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Engadir unha compartición remota",
"Remote share" : "Compartición remota",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Quere engadir a compartición remota {name} de {owner}@{remote}?",
"Remote share password" : "Contrasinal da compartición remota",
- "Incoming share could not be processed" : "Non foi posíbel procesar a compartición entrante",
- "Clipboard is not available" : "O portapapeis non está dispoñíbel",
- "Your Federated Cloud ID:" : "ID da súa nube federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Non foi posíbel procesar a compartición entrante"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/gl.json b/apps/federatedfilesharing/l10n/gl.json
index 159fefc1c23..0137717b039 100644
--- a/apps/federatedfilesharing/l10n/gl.json
+++ b/apps/federatedfilesharing/l10n/gl.json
@@ -33,6 +33,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Aceptar automaticamente os recursos compartidos de contas e grupos federados de confianza de xeito predeterminado",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Comparta comigo a través do meu ID de nube federada de #Nextcloud, vexa {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Comparta comigo a través do meu ID de nube federada de #Nextcloud",
+ "Share with me via Nextcloud" : "Comparte comigo a través de Nextcloud",
"Cloud ID copied to the clipboard" : "O identificador de nube (Cloud ID) (foi copiado no portapapeis",
"Copy to clipboard" : "Copiar no portapapeis.",
"Clipboard not available. Please copy the cloud ID manually." : "O portapapeis non está dispoñíbel. Copie o ID da nube manualmente.",
@@ -46,17 +47,12 @@
"formerly Twitter" : "anteriormente Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Engadir ao seu sitio web",
- "Share with me via Nextcloud" : "Comparte comigo a través de Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Engadir unha compartición remota",
"Remote share" : "Compartición remota",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Quere engadir a compartición remota {name} de {owner}@{remote}?",
"Remote share password" : "Contrasinal da compartición remota",
- "Incoming share could not be processed" : "Non foi posíbel procesar a compartición entrante",
- "Clipboard is not available" : "O portapapeis non está dispoñíbel",
- "Your Federated Cloud ID:" : "ID da súa nube federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Non foi posíbel procesar a compartición entrante"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/he.js b/apps/federatedfilesharing/l10n/he.js
deleted file mode 100644
index 6609b39a786..00000000000
--- a/apps/federatedfilesharing/l10n/he.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "האם לשתף את השיתוף החיצוני {name} שהתקבל מ- {owner}@{remote}?",
- "Remote share" : "שיתוף חיצוני",
- "Remote share password" : "סיסמת שיתוף חיצוני",
- "Cancel" : "ביטול",
- "Add remote share" : "הוספת שיתוף חיצוני",
- "Invalid Federated Cloud ID" : "זיהוי ענן מאוגד לא חוקי",
- "Server to server sharing is not enabled on this server" : "שיתוף שרת לשרת לא מופעל בשרת זה",
- "Not allowed to create a federated share with the same user" : "אסור ליצור שיתוף מאוגד עם אותו משתמש",
- "File is already shared with %s" : "הקובץ כבר משותף עם %s",
- "Could not find share" : "לא ניתן למצוא את השיתוף",
- "Federated sharing" : "שיתוף מאוגד",
- "Accept" : "אישור",
- "Decline" : "סירוב",
- "Federated Cloud Sharing" : "ענן שיתוף מאוגד",
- "Sharing" : "שיתוף",
- "Allow users on this server to receive shares from other servers" : "מאפשר למשתמשים בשרת זה לקבל שיתופים משרתים אחרים",
- "Federated Cloud" : "ענן מאוגד",
- "Your Federated Cloud ID:" : "מספר זיהוי הענן המאוגד שלך:",
- "Twitter" : "טוויטר",
- "Add to your website" : "הוספה לאתר האינטרנט שלך",
- "Share with me via Nextcloud" : "שיתוף איתי באמצעות Nextcloud",
- "HTML Code:" : "קוד HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "שיתוף איתי באמצעות מספר זהות שרת ה- #Nextcloud המאוגד שלי",
- "Copy to clipboard" : "העתקה ללוח הגזירים",
- "Copied!" : "הועתק!",
- "Copy" : "העתק",
- "Not supported!" : "אין תמיכה!",
- "Press ⌘-C to copy." : "‎⌘-C להעתקה.",
- "Press Ctrl-C to copy." : "Ctrl-C להעתקה.",
- "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "שיתוף איתי באמצעות מספר זהות שרת ה- #Nextcloud המאוגד שלי, ניתן לראות %s",
- "Open documentation" : "תיעוד פתוח"
-},
-"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/federatedfilesharing/l10n/he.json b/apps/federatedfilesharing/l10n/he.json
deleted file mode 100644
index 84fdeaae582..00000000000
--- a/apps/federatedfilesharing/l10n/he.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "האם לשתף את השיתוף החיצוני {name} שהתקבל מ- {owner}@{remote}?",
- "Remote share" : "שיתוף חיצוני",
- "Remote share password" : "סיסמת שיתוף חיצוני",
- "Cancel" : "ביטול",
- "Add remote share" : "הוספת שיתוף חיצוני",
- "Invalid Federated Cloud ID" : "זיהוי ענן מאוגד לא חוקי",
- "Server to server sharing is not enabled on this server" : "שיתוף שרת לשרת לא מופעל בשרת זה",
- "Not allowed to create a federated share with the same user" : "אסור ליצור שיתוף מאוגד עם אותו משתמש",
- "File is already shared with %s" : "הקובץ כבר משותף עם %s",
- "Could not find share" : "לא ניתן למצוא את השיתוף",
- "Federated sharing" : "שיתוף מאוגד",
- "Accept" : "אישור",
- "Decline" : "סירוב",
- "Federated Cloud Sharing" : "ענן שיתוף מאוגד",
- "Sharing" : "שיתוף",
- "Allow users on this server to receive shares from other servers" : "מאפשר למשתמשים בשרת זה לקבל שיתופים משרתים אחרים",
- "Federated Cloud" : "ענן מאוגד",
- "Your Federated Cloud ID:" : "מספר זיהוי הענן המאוגד שלך:",
- "Twitter" : "טוויטר",
- "Add to your website" : "הוספה לאתר האינטרנט שלך",
- "Share with me via Nextcloud" : "שיתוף איתי באמצעות Nextcloud",
- "HTML Code:" : "קוד HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "שיתוף איתי באמצעות מספר זהות שרת ה- #Nextcloud המאוגד שלי",
- "Copy to clipboard" : "העתקה ללוח הגזירים",
- "Copied!" : "הועתק!",
- "Copy" : "העתק",
- "Not supported!" : "אין תמיכה!",
- "Press ⌘-C to copy." : "‎⌘-C להעתקה.",
- "Press Ctrl-C to copy." : "Ctrl-C להעתקה.",
- "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "שיתוף איתי באמצעות מספר זהות שרת ה- #Nextcloud המאוגד שלי, ניתן לראות %s",
- "Open documentation" : "תיעוד פתוח"
-},"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/federatedfilesharing/l10n/hr.js b/apps/federatedfilesharing/l10n/hr.js
index 00ad255e5dd..e24c53cdb9c 100644
--- a/apps/federatedfilesharing/l10n/hr.js
+++ b/apps/federatedfilesharing/l10n/hr.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Federated file sharing" : "Udruženo dijeljenje datoteka",
"Provide federated file sharing across servers" : "Omogućite udruženo dijeljenje datoteka između poslužitelja",
"Share with me through my #Nextcloud Federated Cloud ID" : "Dijeli sa mnom putem mog #ID-ja udruženog oblaka Nextclouda",
+ "Share with me via Nextcloud" : "Dijelite sa mnom putem Nextclouda",
"Copy to clipboard" : "Kopiraj u međuspremnik",
"Copied!" : "Kopirano!",
"Federated Cloud" : "Udruženi oblak",
@@ -29,14 +30,11 @@ OC.L10N.register(
"Share it so your friends can share files with you:" : "Dijelite ga kako bi vaši prijatelji mogli dijeliti datoteke s vama:",
"Mastodon" : "Mastodon",
"Add to your website" : "Dodajte na svoje web-mjesto",
- "Share with me via Nextcloud" : "Dijelite sa mnom putem Nextclouda",
"HTML Code:" : "HTML kod:",
"Cancel" : "Odustani",
"Add remote share" : "Dodaj udaljeno dijeljenje",
"Remote share" : "Udaljeno dijeljenje",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Želite li dodati udaljeni udjel {name} od {owner} u {remote}?",
- "Remote share password" : "Zaporka za udaljeno dijeljenje",
- "Your Federated Cloud ID:" : "ID vašeg udruženog oblaka:",
- "Twitter" : "Twitter"
+ "Remote share password" : "Zaporka za udaljeno dijeljenje"
},
"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/federatedfilesharing/l10n/hr.json b/apps/federatedfilesharing/l10n/hr.json
index 63b625d0633..fe44b18cdb0 100644
--- a/apps/federatedfilesharing/l10n/hr.json
+++ b/apps/federatedfilesharing/l10n/hr.json
@@ -20,6 +20,7 @@
"Federated file sharing" : "Udruženo dijeljenje datoteka",
"Provide federated file sharing across servers" : "Omogućite udruženo dijeljenje datoteka između poslužitelja",
"Share with me through my #Nextcloud Federated Cloud ID" : "Dijeli sa mnom putem mog #ID-ja udruženog oblaka Nextclouda",
+ "Share with me via Nextcloud" : "Dijelite sa mnom putem Nextclouda",
"Copy to clipboard" : "Kopiraj u međuspremnik",
"Copied!" : "Kopirano!",
"Federated Cloud" : "Udruženi oblak",
@@ -27,14 +28,11 @@
"Share it so your friends can share files with you:" : "Dijelite ga kako bi vaši prijatelji mogli dijeliti datoteke s vama:",
"Mastodon" : "Mastodon",
"Add to your website" : "Dodajte na svoje web-mjesto",
- "Share with me via Nextcloud" : "Dijelite sa mnom putem Nextclouda",
"HTML Code:" : "HTML kod:",
"Cancel" : "Odustani",
"Add remote share" : "Dodaj udaljeno dijeljenje",
"Remote share" : "Udaljeno dijeljenje",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Želite li dodati udaljeni udjel {name} od {owner} u {remote}?",
- "Remote share password" : "Zaporka za udaljeno dijeljenje",
- "Your Federated Cloud ID:" : "ID vašeg udruženog oblaka:",
- "Twitter" : "Twitter"
+ "Remote share password" : "Zaporka za udaljeno dijeljenje"
},"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/federatedfilesharing/l10n/hu.js b/apps/federatedfilesharing/l10n/hu.js
index 56b42048239..abfad80404f 100644
--- a/apps/federatedfilesharing/l10n/hu.js
+++ b/apps/federatedfilesharing/l10n/hu.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "A megbízható föderált fiókokból és csoportokból származó megosztások automatikus elfogadása alapértelmezés szerint",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Ossza meg velem a #Nextcloud föderált felhőazonosítóm segítségével, lásd {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Ossza meg velem a #Nextcloud föderált felhőazonosítóm segítségével ",
+ "Share with me via Nextcloud" : "Ossza meg velem a Nextcloudon keresztül",
"Cloud ID copied to the clipboard" : "Felhőazonosító a vágólapra másolva",
"Copy to clipboard" : "Másolás a vágólapra",
"Clipboard not available. Please copy the cloud ID manually." : "A vágólap nem érhető el. Másolja át a felhőazonosítót kézileg.",
@@ -48,17 +49,12 @@ OC.L10N.register(
"formerly Twitter" : "korábban Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Adja hozzá saját weboldalához",
- "Share with me via Nextcloud" : "Ossza meg velem a Nextcloudon keresztül",
"HTML Code:" : "HTML-kód:",
"Cancel" : "Mégse",
"Add remote share" : "Távoli megosztás hozzáadása",
"Remote share" : "Távoli megosztás",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Hozzáadja a(z) {name} távoli megosztást innen: {owner}@{remote}?",
"Remote share password" : "Jelszó a távoli megosztáshoz",
- "Incoming share could not be processed" : "A bejövő megosztás nem dolgozható fel",
- "Clipboard is not available" : "A vágólap nem érhető el",
- "Your Federated Cloud ID:" : "Az Ön föderált felhőazonosítója:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "A bejövő megosztás nem dolgozható fel"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/hu.json b/apps/federatedfilesharing/l10n/hu.json
index 05af5f0debb..1f3544366ff 100644
--- a/apps/federatedfilesharing/l10n/hu.json
+++ b/apps/federatedfilesharing/l10n/hu.json
@@ -33,6 +33,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "A megbízható föderált fiókokból és csoportokból származó megosztások automatikus elfogadása alapértelmezés szerint",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Ossza meg velem a #Nextcloud föderált felhőazonosítóm segítségével, lásd {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Ossza meg velem a #Nextcloud föderált felhőazonosítóm segítségével ",
+ "Share with me via Nextcloud" : "Ossza meg velem a Nextcloudon keresztül",
"Cloud ID copied to the clipboard" : "Felhőazonosító a vágólapra másolva",
"Copy to clipboard" : "Másolás a vágólapra",
"Clipboard not available. Please copy the cloud ID manually." : "A vágólap nem érhető el. Másolja át a felhőazonosítót kézileg.",
@@ -46,17 +47,12 @@
"formerly Twitter" : "korábban Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Adja hozzá saját weboldalához",
- "Share with me via Nextcloud" : "Ossza meg velem a Nextcloudon keresztül",
"HTML Code:" : "HTML-kód:",
"Cancel" : "Mégse",
"Add remote share" : "Távoli megosztás hozzáadása",
"Remote share" : "Távoli megosztás",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Hozzáadja a(z) {name} távoli megosztást innen: {owner}@{remote}?",
"Remote share password" : "Jelszó a távoli megosztáshoz",
- "Incoming share could not be processed" : "A bejövő megosztás nem dolgozható fel",
- "Clipboard is not available" : "A vágólap nem érhető el",
- "Your Federated Cloud ID:" : "Az Ön föderált felhőazonosítója:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "A bejövő megosztás nem dolgozható fel"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ia.js b/apps/federatedfilesharing/l10n/ia.js
deleted file mode 100644
index 0d666816667..00000000000
--- a/apps/federatedfilesharing/l10n/ia.js
+++ /dev/null
@@ -1,34 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Esque tu vole adder le Compartir Remote {name} de {owner}@{remote}?",
- "Remote share" : "Compartir Remote",
- "Remote share password" : "Contrasigno del Compartir Remote",
- "Cancel" : "Cancellar",
- "Add remote share" : "Adder le Compartir Remote",
- "Invalid Federated Cloud ID" : "ID del Nube Federate",
- "Server to server sharing is not enabled on this server" : "Le Compartir de Servitor a Servitor non es activate in iste servitor",
- "Couldn't establish a federated share." : "Impossibile establir le Compartir Federate.",
- "Couldn't establish a federated share, maybe the password was wrong." : "Impossibile establir le Compartir Federate, possibilemente le contrasigno esseva incorrecte.",
- "File is already shared with %s" : "File ja es compartite con %s",
- "Could not find share" : "Impossibile trovar le compartite",
- "Federated sharing" : "Compartir Federate",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Tu recipeva {share} como un compartimento remote de {user} (in nomine de {behalf})",
- "You received {share} as a remote share from {user}" : "Tu recipeva {share} como un compartimento remote de {user}",
- "Accept" : "Acceptar",
- "Decline" : "Refusar",
- "Federated Cloud Sharing" : "Compartimento del Nube Federate",
- "Sharing" : "Compartente",
- "Federated Cloud" : "Nube Federate",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federate:",
- "Twitter" : "Twitter",
- "Add to your website" : "Adde a tu sito web",
- "Share with me via Nextcloud" : "Comparti con me via Nextcloud",
- "HTML Code:" : "Codice HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Comparti con me per mi ID de Nube Federate #Nextcloud",
- "Copied!" : "Copiate!",
- "Not allowed to create a federated share with the same user" : "Il non es permittite crear le Compartir Federate con le mesme usator.",
- "Allow users on this server to receive shares from other servers" : "Permitter usatores in iste servitor a reciper elementos compartite ex altere servitores",
- "Search global and public address book for users" : "Cercar pro usatores in adressarios global e public"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/ia.json b/apps/federatedfilesharing/l10n/ia.json
deleted file mode 100644
index 95619e5118f..00000000000
--- a/apps/federatedfilesharing/l10n/ia.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{ "translations": {
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Esque tu vole adder le Compartir Remote {name} de {owner}@{remote}?",
- "Remote share" : "Compartir Remote",
- "Remote share password" : "Contrasigno del Compartir Remote",
- "Cancel" : "Cancellar",
- "Add remote share" : "Adder le Compartir Remote",
- "Invalid Federated Cloud ID" : "ID del Nube Federate",
- "Server to server sharing is not enabled on this server" : "Le Compartir de Servitor a Servitor non es activate in iste servitor",
- "Couldn't establish a federated share." : "Impossibile establir le Compartir Federate.",
- "Couldn't establish a federated share, maybe the password was wrong." : "Impossibile establir le Compartir Federate, possibilemente le contrasigno esseva incorrecte.",
- "File is already shared with %s" : "File ja es compartite con %s",
- "Could not find share" : "Impossibile trovar le compartite",
- "Federated sharing" : "Compartir Federate",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Tu recipeva {share} como un compartimento remote de {user} (in nomine de {behalf})",
- "You received {share} as a remote share from {user}" : "Tu recipeva {share} como un compartimento remote de {user}",
- "Accept" : "Acceptar",
- "Decline" : "Refusar",
- "Federated Cloud Sharing" : "Compartimento del Nube Federate",
- "Sharing" : "Compartente",
- "Federated Cloud" : "Nube Federate",
- "Your Federated Cloud ID:" : "Tu ID de Nube Federate:",
- "Twitter" : "Twitter",
- "Add to your website" : "Adde a tu sito web",
- "Share with me via Nextcloud" : "Comparti con me via Nextcloud",
- "HTML Code:" : "Codice HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Comparti con me per mi ID de Nube Federate #Nextcloud",
- "Copied!" : "Copiate!",
- "Not allowed to create a federated share with the same user" : "Il non es permittite crear le Compartir Federate con le mesme usator.",
- "Allow users on this server to receive shares from other servers" : "Permitter usatores in iste servitor a reciper elementos compartite ex altere servitores",
- "Search global and public address book for users" : "Cercar pro usatores in adressarios global e public"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/id.js b/apps/federatedfilesharing/l10n/id.js
deleted file mode 100644
index 1f40ecbd4ce..00000000000
--- a/apps/federatedfilesharing/l10n/id.js
+++ /dev/null
@@ -1,37 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "Federated Cloud ID tidak sah",
- "Server to server sharing is not enabled on this server" : "Berbagi server ke server tidak diaktifkan pada server ini",
- "Couldn't establish a federated share." : "Tidak dapat mendirikan pembagian terfederasi",
- "Couldn't establish a federated share, maybe the password was wrong." : "Tidak dapat mendirikan pembagian terfederasi, mungkin kata sandi salah.",
- "File is already shared with %s" : "Berkas sudah dibagikan dengan %s",
- "Could not find share" : "Tidak dapat mencari pembagian",
- "Federated sharing" : "Pembagian terfederasi",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Anda menerima {share} sebagai berbagi jauh dari {user} (atas nama {behalf})",
- "You received {share} as a remote share from {user}" : "Anda menerima {share} sebagai berbagi jauh dari {user}",
- "Accept" : "Terima",
- "Decline" : "Tolak",
- "Federated Cloud Sharing" : "Federated Cloud Sharing",
- "Sharing" : "Berbagi",
- "Federated Cloud" : "Federated Cloud",
- "Your Federated Cloud ID:" : "Federated Cloud ID Anda:",
- "Mastodon" : "Mastodon",
- "Add to your website" : "Tambahkan pada situs web Anda",
- "Share with me via Nextcloud" : "Dibagikan pada saya via Nextcloud",
- "HTML Code:" : "Kode HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Dibagikan pada saya melalui #Nextcloud Federated Cloud ID saya",
- "Copy to clipboard" : "Salin ke papan klip",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Apakah Anda ingin menambahkan pembagian remote {name} dari {owner}@{remote}?",
- "Remote share" : "Berbagi jarak jauh",
- "Remote share password" : "Kata sandi berbagi jarak jauh",
- "Cancel" : "Batalkan",
- "Add remote share" : "Tambah berbagi remote",
- "Not allowed to create a federated share with the same user" : "Tidak diizinkan membuat pembagian terfederasi dengan pengguna yang sama",
- "Allow users on this server to receive shares from other servers" : "Izinkan para pengguna di server ini untuk menerima berbagi ke server lainnya.",
- "Search global and public address book for users" : "Cari alamat buku global dan alamat publik untuk pengguna",
- "Twitter" : "Twitter",
- "Clipboard is not available" : "Papan klip tidak tersedia",
- "Copied!" : "Tersalin!"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/federatedfilesharing/l10n/id.json b/apps/federatedfilesharing/l10n/id.json
deleted file mode 100644
index 665544b8108..00000000000
--- a/apps/federatedfilesharing/l10n/id.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "Federated Cloud ID tidak sah",
- "Server to server sharing is not enabled on this server" : "Berbagi server ke server tidak diaktifkan pada server ini",
- "Couldn't establish a federated share." : "Tidak dapat mendirikan pembagian terfederasi",
- "Couldn't establish a federated share, maybe the password was wrong." : "Tidak dapat mendirikan pembagian terfederasi, mungkin kata sandi salah.",
- "File is already shared with %s" : "Berkas sudah dibagikan dengan %s",
- "Could not find share" : "Tidak dapat mencari pembagian",
- "Federated sharing" : "Pembagian terfederasi",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Anda menerima {share} sebagai berbagi jauh dari {user} (atas nama {behalf})",
- "You received {share} as a remote share from {user}" : "Anda menerima {share} sebagai berbagi jauh dari {user}",
- "Accept" : "Terima",
- "Decline" : "Tolak",
- "Federated Cloud Sharing" : "Federated Cloud Sharing",
- "Sharing" : "Berbagi",
- "Federated Cloud" : "Federated Cloud",
- "Your Federated Cloud ID:" : "Federated Cloud ID Anda:",
- "Mastodon" : "Mastodon",
- "Add to your website" : "Tambahkan pada situs web Anda",
- "Share with me via Nextcloud" : "Dibagikan pada saya via Nextcloud",
- "HTML Code:" : "Kode HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Dibagikan pada saya melalui #Nextcloud Federated Cloud ID saya",
- "Copy to clipboard" : "Salin ke papan klip",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Apakah Anda ingin menambahkan pembagian remote {name} dari {owner}@{remote}?",
- "Remote share" : "Berbagi jarak jauh",
- "Remote share password" : "Kata sandi berbagi jarak jauh",
- "Cancel" : "Batalkan",
- "Add remote share" : "Tambah berbagi remote",
- "Not allowed to create a federated share with the same user" : "Tidak diizinkan membuat pembagian terfederasi dengan pengguna yang sama",
- "Allow users on this server to receive shares from other servers" : "Izinkan para pengguna di server ini untuk menerima berbagi ke server lainnya.",
- "Search global and public address book for users" : "Cari alamat buku global dan alamat publik untuk pengguna",
- "Twitter" : "Twitter",
- "Clipboard is not available" : "Papan klip tidak tersedia",
- "Copied!" : "Tersalin!"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/is.js b/apps/federatedfilesharing/l10n/is.js
index 605a93b770f..bc5a1c2d034 100644
--- a/apps/federatedfilesharing/l10n/is.js
+++ b/apps/federatedfilesharing/l10n/is.js
@@ -35,6 +35,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Sjálfgefið samþykkja sjálfkrafa sameignir frá treystum skýjasambandsaðgöngum og hópum",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Deila með mér í gegnum víðværa skýjasambandsauðkennið mitt #Nextcloud Federated Cloud ID, sjá {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Deila með mér í gegnum víðværa skýjasambandsauðkennið mitt #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Deila með mér í gegnum Nextcloud",
"Cloud ID copied to the clipboard" : "Skýjasambandsauðkenni afritað á klippispjald",
"Copy to clipboard" : "Afrita á klippispjald",
"Clipboard not available. Please copy the cloud ID manually." : "Klippispjald er ekki tiltækt. Afritaðu skýjasambandsauðkennið handvirkt.",
@@ -48,17 +49,12 @@ OC.L10N.register(
"formerly Twitter" : "fyrrum Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Bæta við vefsvæðið þitt",
- "Share with me via Nextcloud" : "Deila með mér í gegnum Nextcloud",
"HTML Code:" : "HTML-kóði:",
"Cancel" : "Hætta við",
"Add remote share" : "Bæta við fjartengdri sameign",
"Remote share" : "Fjartengd sameign",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Viltu bæta við fjartengdri sameign {name} frá {owner}@{remote}?",
"Remote share password" : "Lykilorð fjartengdrar sameignar",
- "Incoming share could not be processed" : "Ekki var hægt að vinna með innkomandi sameign",
- "Clipboard is not available" : "Klippispjald er ekki tiltækt",
- "Your Federated Cloud ID:" : "Skýjasambandsauðkennið þitt (Federated Cloud ID):",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Ekki var hægt að vinna með innkomandi sameign"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/federatedfilesharing/l10n/is.json b/apps/federatedfilesharing/l10n/is.json
index 33e405ac297..a35a4711315 100644
--- a/apps/federatedfilesharing/l10n/is.json
+++ b/apps/federatedfilesharing/l10n/is.json
@@ -33,6 +33,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Sjálfgefið samþykkja sjálfkrafa sameignir frá treystum skýjasambandsaðgöngum og hópum",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Deila með mér í gegnum víðværa skýjasambandsauðkennið mitt #Nextcloud Federated Cloud ID, sjá {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Deila með mér í gegnum víðværa skýjasambandsauðkennið mitt #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Deila með mér í gegnum Nextcloud",
"Cloud ID copied to the clipboard" : "Skýjasambandsauðkenni afritað á klippispjald",
"Copy to clipboard" : "Afrita á klippispjald",
"Clipboard not available. Please copy the cloud ID manually." : "Klippispjald er ekki tiltækt. Afritaðu skýjasambandsauðkennið handvirkt.",
@@ -46,17 +47,12 @@
"formerly Twitter" : "fyrrum Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Bæta við vefsvæðið þitt",
- "Share with me via Nextcloud" : "Deila með mér í gegnum Nextcloud",
"HTML Code:" : "HTML-kóði:",
"Cancel" : "Hætta við",
"Add remote share" : "Bæta við fjartengdri sameign",
"Remote share" : "Fjartengd sameign",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Viltu bæta við fjartengdri sameign {name} frá {owner}@{remote}?",
"Remote share password" : "Lykilorð fjartengdrar sameignar",
- "Incoming share could not be processed" : "Ekki var hægt að vinna með innkomandi sameign",
- "Clipboard is not available" : "Klippispjald er ekki tiltækt",
- "Your Federated Cloud ID:" : "Skýjasambandsauðkennið þitt (Federated Cloud ID):",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Ekki var hægt að vinna með innkomandi sameign"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/it.js b/apps/federatedfilesharing/l10n/it.js
index eb33a222efd..2b85dda0197 100644
--- a/apps/federatedfilesharing/l10n/it.js
+++ b/apps/federatedfilesharing/l10n/it.js
@@ -41,6 +41,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Accetta automaticamente le condivisioni da account e gruppi federati attendibili",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Condividi con me attraverso il mio ID di cloud federato #Nextcloud, vedi {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Condividi con me attraverso il mio ID di cloud federata #Nextcloud",
+ "Share with me via Nextcloud" : "Condividi con me tramite Nextcloud",
"Cloud ID copied to the clipboard" : "ID di cloud copiato negli appunti",
"Copy to clipboard" : "Copia negli appunti",
"Clipboard not available. Please copy the cloud ID manually." : "Appunti non disponibili. Copia manualmente l'ID cloud.",
@@ -54,17 +55,12 @@ OC.L10N.register(
"formerly Twitter" : "precedentemente Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Aggiungi al tuo sito web",
- "Share with me via Nextcloud" : "Condividi con me tramite Nextcloud",
"HTML Code:" : "Codice HTML:",
"Cancel" : "Annulla",
"Add remote share" : "Aggiungi condivisione remota",
"Remote share" : "Condivisione remota",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Vuoi aggiungere la condivisione remota {name} da {owner}@{remote}?",
"Remote share password" : "Password della condivisione remota",
- "Incoming share could not be processed" : "Non è stato possibile elaborare la condivisione in entrata",
- "Clipboard is not available" : "Appunti non disponibili",
- "Your Federated Cloud ID:" : "Il tuo ID di cloud federata:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Non è stato possibile elaborare la condivisione in entrata"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/it.json b/apps/federatedfilesharing/l10n/it.json
index 7d592db3ebb..0bc9121ae05 100644
--- a/apps/federatedfilesharing/l10n/it.json
+++ b/apps/federatedfilesharing/l10n/it.json
@@ -39,6 +39,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Accetta automaticamente le condivisioni da account e gruppi federati attendibili",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Condividi con me attraverso il mio ID di cloud federato #Nextcloud, vedi {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Condividi con me attraverso il mio ID di cloud federata #Nextcloud",
+ "Share with me via Nextcloud" : "Condividi con me tramite Nextcloud",
"Cloud ID copied to the clipboard" : "ID di cloud copiato negli appunti",
"Copy to clipboard" : "Copia negli appunti",
"Clipboard not available. Please copy the cloud ID manually." : "Appunti non disponibili. Copia manualmente l'ID cloud.",
@@ -52,17 +53,12 @@
"formerly Twitter" : "precedentemente Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Aggiungi al tuo sito web",
- "Share with me via Nextcloud" : "Condividi con me tramite Nextcloud",
"HTML Code:" : "Codice HTML:",
"Cancel" : "Annulla",
"Add remote share" : "Aggiungi condivisione remota",
"Remote share" : "Condivisione remota",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Vuoi aggiungere la condivisione remota {name} da {owner}@{remote}?",
"Remote share password" : "Password della condivisione remota",
- "Incoming share could not be processed" : "Non è stato possibile elaborare la condivisione in entrata",
- "Clipboard is not available" : "Appunti non disponibili",
- "Your Federated Cloud ID:" : "Il tuo ID di cloud federata:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Non è stato possibile elaborare la condivisione in entrata"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ja.js b/apps/federatedfilesharing/l10n/ja.js
index 30d6829cb9c..e821c5694ce 100644
--- a/apps/federatedfilesharing/l10n/ja.js
+++ b/apps/federatedfilesharing/l10n/ja.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "信頼できるフェデレーションアカウントとグループからの共有をデフォルトで自動的に受け入れる",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "私の #Nextcloud Federated Cloud ID を通して共有してください、 {url} を参照してください。",
"Share with me through my #Nextcloud Federated Cloud ID" : "#Nextcloud の「クラウド共有ID」で私と共有できます。",
+ "Share with me via Nextcloud" : "Nextcloud 経由で共有",
"Cloud ID copied to the clipboard" : "クリップボードにクラウドIDをコピーしました",
"Copy to clipboard" : "クリップボードにコピー",
"Clipboard not available. Please copy the cloud ID manually." : "クリップボードが使用できません。手動でクラウドIDをコピーしてください。",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : " 旧 Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "ウェブサイトに追加",
- "Share with me via Nextcloud" : "Nextcloud 経由で共有",
"HTML Code:" : "HTMLコード:",
"Cancel" : "キャンセル",
"Add remote share" : "リモート共有を追加",
"Remote share" : "リモート共有",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} からのリモート共有 {name} を追加してもよろしいですか?",
"Remote share password" : "リモート共有のパスワード",
- "Incoming share could not be processed" : "受信した共有を処理できませんでした",
- "Clipboard is not available" : "クリップボードは利用できません",
- "Your Federated Cloud ID:" : "あなたのクラウド共有ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "受信した共有を処理できませんでした"
},
"nplurals=1; plural=0;");
diff --git a/apps/federatedfilesharing/l10n/ja.json b/apps/federatedfilesharing/l10n/ja.json
index 5b1bc77f4c1..fba74e16cbb 100644
--- a/apps/federatedfilesharing/l10n/ja.json
+++ b/apps/federatedfilesharing/l10n/ja.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "信頼できるフェデレーションアカウントとグループからの共有をデフォルトで自動的に受け入れる",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "私の #Nextcloud Federated Cloud ID を通して共有してください、 {url} を参照してください。",
"Share with me through my #Nextcloud Federated Cloud ID" : "#Nextcloud の「クラウド共有ID」で私と共有できます。",
+ "Share with me via Nextcloud" : "Nextcloud 経由で共有",
"Cloud ID copied to the clipboard" : "クリップボードにクラウドIDをコピーしました",
"Copy to clipboard" : "クリップボードにコピー",
"Clipboard not available. Please copy the cloud ID manually." : "クリップボードが使用できません。手動でクラウドIDをコピーしてください。",
@@ -57,17 +58,12 @@
"formerly Twitter" : " 旧 Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "ウェブサイトに追加",
- "Share with me via Nextcloud" : "Nextcloud 経由で共有",
"HTML Code:" : "HTMLコード:",
"Cancel" : "キャンセル",
"Add remote share" : "リモート共有を追加",
"Remote share" : "リモート共有",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} からのリモート共有 {name} を追加してもよろしいですか?",
"Remote share password" : "リモート共有のパスワード",
- "Incoming share could not be processed" : "受信した共有を処理できませんでした",
- "Clipboard is not available" : "クリップボードは利用できません",
- "Your Federated Cloud ID:" : "あなたのクラウド共有ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "受信した共有を処理できませんでした"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ka.js b/apps/federatedfilesharing/l10n/ka.js
index 060089935cd..78cd9ecc8ad 100644
--- a/apps/federatedfilesharing/l10n/ka.js
+++ b/apps/federatedfilesharing/l10n/ka.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Unable to update federated files sharing config" : "Unable to update federated files sharing config",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Share with me through my #Nextcloud Federated Cloud ID, see {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Share with me through my #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Share with me via Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID copied to the clipboard",
"Copy to clipboard" : "Copy to clipboard",
"Copied!" : "Copied!",
@@ -33,16 +34,11 @@ OC.L10N.register(
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (formerly Twitter)",
"Add to your website" : "Add to your website",
- "Share with me via Nextcloud" : "Share with me via Nextcloud",
"HTML Code:" : "HTML Code:",
"Cancel" : "Cancel",
"Add remote share" : "Add remote share",
"Remote share" : "Remote share",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Do you want to add the remote share {name} from {owner}@{remote}?",
- "Remote share password" : "Remote share password",
- "Clipboard is not available" : "Clipboard is not available",
- "Your Federated Cloud ID:" : "Your Federated Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Remote share password"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/federatedfilesharing/l10n/ka.json b/apps/federatedfilesharing/l10n/ka.json
index f9b84dee5fb..48032f31a34 100644
--- a/apps/federatedfilesharing/l10n/ka.json
+++ b/apps/federatedfilesharing/l10n/ka.json
@@ -22,6 +22,7 @@
"Unable to update federated files sharing config" : "Unable to update federated files sharing config",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Share with me through my #Nextcloud Federated Cloud ID, see {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Share with me through my #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Share with me via Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID copied to the clipboard",
"Copy to clipboard" : "Copy to clipboard",
"Copied!" : "Copied!",
@@ -31,16 +32,11 @@
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (formerly Twitter)",
"Add to your website" : "Add to your website",
- "Share with me via Nextcloud" : "Share with me via Nextcloud",
"HTML Code:" : "HTML Code:",
"Cancel" : "Cancel",
"Add remote share" : "Add remote share",
"Remote share" : "Remote share",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Do you want to add the remote share {name} from {owner}@{remote}?",
- "Remote share password" : "Remote share password",
- "Clipboard is not available" : "Clipboard is not available",
- "Your Federated Cloud ID:" : "Your Federated Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Remote share password"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ka_GE.js b/apps/federatedfilesharing/l10n/ka_GE.js
deleted file mode 100644
index c938b3879d3..00000000000
--- a/apps/federatedfilesharing/l10n/ka_GE.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "არასწორი ფედერალური ქლაუდ ID",
- "Server to server sharing is not enabled on this server" : "ამ სერვერზე სერვერიდან სერვერზე გაზიარება არაა ჩართული",
- "Couldn't establish a federated share." : "ფედერალური გაზიარება ვერ დამყარდა.",
- "Couldn't establish a federated share, maybe the password was wrong." : "ფედერალური გაზიარება ვერ დამყარდა, შეისაძლოა პაროლი არ იყოს მართებული.",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "ფედერალური გაზიარების მოთხოვნა გაიგზავნა, თქვენ მიიღებთ მოწვევას. შეამოწმეთ თქვენი შეტყობინებები.",
- "File is already shared with %s" : "ფაილი უკვე გაზიარებულია მომხმარებელთან %s ",
- "Could not find share" : "გაზიარება ვერ იქნა ნაპოვნი",
- "Federated sharing" : "ფედერალური გაზიარება",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "თქვენ მიიღეთ გაზიარება {share} როგორც დისტანციური გაზიარება მომხმარებლისგან {user} (სახელით {behalf})",
- "You received {share} as a remote share from {user}" : "თქვენ მიიღეთ {share} როგორც დისტანციური გაზიარება მომხმარებლისგან {user}",
- "Accept" : "მიღება",
- "Decline" : "უარყოფა",
- "Federated Cloud Sharing" : "ფედერალური ქლაუდ გაზიარება",
- "Sharing" : "გაზიარება",
- "Federated file sharing" : "ფედერალური ფაილების გაზიარება",
- "Share with me through my #Nextcloud Federated Cloud ID" : "გააზიარეთ ჩემთან ჩემი #Nextcloud-ის ფედერალური ქლაუდ ID-ის მეშვეობით",
- "Copy to clipboard" : "კოპირება ბუფერში",
- "Copied!" : "კოპირებულია!",
- "Federated Cloud" : "ფედერალური ქლაუდი",
- "Share it so your friends can share files with you:" : "გააზიარეთ, რომ თქვენმა მეგობრებმაც შეძლონ ფაილების გაზიარება თქვენთან:",
- "Add to your website" : "საიტზე დამატება",
- "Share with me via Nextcloud" : "გამიზიარე Nextcloud-ის მეშვეობით",
- "HTML Code:" : "HTML კოდი:",
- "Cancel" : "გაუქმება",
- "Add remote share" : "დისტანციური გაზიარების დამატება",
- "Remote share" : "დისტანციური გაზიარება",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "გსურთ დაამატოთ {owner}@{remote}-ის დისტანცური გაზიარება {name}?",
- "Remote share password" : "დისტანციური გაზიარების პაროლი",
- "Your Federated Cloud ID:" : "თქვენი ფედერალური ქლაუდ ID:",
- "Twitter" : "Twitter-ი"
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/federatedfilesharing/l10n/ka_GE.json b/apps/federatedfilesharing/l10n/ka_GE.json
deleted file mode 100644
index 42f539210d9..00000000000
--- a/apps/federatedfilesharing/l10n/ka_GE.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "არასწორი ფედერალური ქლაუდ ID",
- "Server to server sharing is not enabled on this server" : "ამ სერვერზე სერვერიდან სერვერზე გაზიარება არაა ჩართული",
- "Couldn't establish a federated share." : "ფედერალური გაზიარება ვერ დამყარდა.",
- "Couldn't establish a federated share, maybe the password was wrong." : "ფედერალური გაზიარება ვერ დამყარდა, შეისაძლოა პაროლი არ იყოს მართებული.",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "ფედერალური გაზიარების მოთხოვნა გაიგზავნა, თქვენ მიიღებთ მოწვევას. შეამოწმეთ თქვენი შეტყობინებები.",
- "File is already shared with %s" : "ფაილი უკვე გაზიარებულია მომხმარებელთან %s ",
- "Could not find share" : "გაზიარება ვერ იქნა ნაპოვნი",
- "Federated sharing" : "ფედერალური გაზიარება",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "თქვენ მიიღეთ გაზიარება {share} როგორც დისტანციური გაზიარება მომხმარებლისგან {user} (სახელით {behalf})",
- "You received {share} as a remote share from {user}" : "თქვენ მიიღეთ {share} როგორც დისტანციური გაზიარება მომხმარებლისგან {user}",
- "Accept" : "მიღება",
- "Decline" : "უარყოფა",
- "Federated Cloud Sharing" : "ფედერალური ქლაუდ გაზიარება",
- "Sharing" : "გაზიარება",
- "Federated file sharing" : "ფედერალური ფაილების გაზიარება",
- "Share with me through my #Nextcloud Federated Cloud ID" : "გააზიარეთ ჩემთან ჩემი #Nextcloud-ის ფედერალური ქლაუდ ID-ის მეშვეობით",
- "Copy to clipboard" : "კოპირება ბუფერში",
- "Copied!" : "კოპირებულია!",
- "Federated Cloud" : "ფედერალური ქლაუდი",
- "Share it so your friends can share files with you:" : "გააზიარეთ, რომ თქვენმა მეგობრებმაც შეძლონ ფაილების გაზიარება თქვენთან:",
- "Add to your website" : "საიტზე დამატება",
- "Share with me via Nextcloud" : "გამიზიარე Nextcloud-ის მეშვეობით",
- "HTML Code:" : "HTML კოდი:",
- "Cancel" : "გაუქმება",
- "Add remote share" : "დისტანციური გაზიარების დამატება",
- "Remote share" : "დისტანციური გაზიარება",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "გსურთ დაამატოთ {owner}@{remote}-ის დისტანცური გაზიარება {name}?",
- "Remote share password" : "დისტანციური გაზიარების პაროლი",
- "Your Federated Cloud ID:" : "თქვენი ფედერალური ქლაუდ ID:",
- "Twitter" : "Twitter-ი"
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ko.js b/apps/federatedfilesharing/l10n/ko.js
index c9302a321b1..3fde56d6b97 100644
--- a/apps/federatedfilesharing/l10n/ko.js
+++ b/apps/federatedfilesharing/l10n/ko.js
@@ -26,6 +26,7 @@ OC.L10N.register(
"Unable to update federated files sharing config" : "연합 파일 공유 설정을 갱신할 수 없음",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "내 #Nextcloud 연합 클라우드 ID를 통해서 공유됨, 더 알아보기: {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "내 #Nextcloud 연합 클라우드 ID를 통해서 공유됨",
+ "Share with me via Nextcloud" : "Nextcloud로 나와 공유하기",
"Cloud ID copied to the clipboard" : "클라우드 ID가 클립보드에 복사됨",
"Copy to clipboard" : "클립보드로 복사",
"Copied!" : "복사 성공!",
@@ -35,15 +36,11 @@ OC.L10N.register(
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (구 Twitter)",
"Add to your website" : "내 웹 사이트에 추가",
- "Share with me via Nextcloud" : "Nextcloud로 나와 공유하기",
"HTML Code:" : "HTML 코드:",
"Cancel" : "취소",
"Add remote share" : "원격 공유 추가",
"Remote share" : "원격 공유",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote}의 원격 공유 {name}을(를) 추가하시겠습니까?",
- "Remote share password" : "원격 공유 암호",
- "Clipboard is not available" : "클립보드를 사용할 수 없습니다.",
- "Your Federated Cloud ID:" : "내 연합 클라우드 ID:",
- "Twitter" : "Twitter"
+ "Remote share password" : "원격 공유 암호"
},
"nplurals=1; plural=0;");
diff --git a/apps/federatedfilesharing/l10n/ko.json b/apps/federatedfilesharing/l10n/ko.json
index 6972900e5bb..b1fcc914625 100644
--- a/apps/federatedfilesharing/l10n/ko.json
+++ b/apps/federatedfilesharing/l10n/ko.json
@@ -24,6 +24,7 @@
"Unable to update federated files sharing config" : "연합 파일 공유 설정을 갱신할 수 없음",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "내 #Nextcloud 연합 클라우드 ID를 통해서 공유됨, 더 알아보기: {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "내 #Nextcloud 연합 클라우드 ID를 통해서 공유됨",
+ "Share with me via Nextcloud" : "Nextcloud로 나와 공유하기",
"Cloud ID copied to the clipboard" : "클라우드 ID가 클립보드에 복사됨",
"Copy to clipboard" : "클립보드로 복사",
"Copied!" : "복사 성공!",
@@ -33,15 +34,11 @@
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (구 Twitter)",
"Add to your website" : "내 웹 사이트에 추가",
- "Share with me via Nextcloud" : "Nextcloud로 나와 공유하기",
"HTML Code:" : "HTML 코드:",
"Cancel" : "취소",
"Add remote share" : "원격 공유 추가",
"Remote share" : "원격 공유",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote}의 원격 공유 {name}을(를) 추가하시겠습니까?",
- "Remote share password" : "원격 공유 암호",
- "Clipboard is not available" : "클립보드를 사용할 수 없습니다.",
- "Your Federated Cloud ID:" : "내 연합 클라우드 ID:",
- "Twitter" : "Twitter"
+ "Remote share password" : "원격 공유 암호"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/lb.js b/apps/federatedfilesharing/l10n/lb.js
deleted file mode 100644
index 8515e8eada4..00000000000
--- a/apps/federatedfilesharing/l10n/lb.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Open documentation" : "Dokumentatioun opmaachen"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/lb.json b/apps/federatedfilesharing/l10n/lb.json
deleted file mode 100644
index 66e7cf9e135..00000000000
--- a/apps/federatedfilesharing/l10n/lb.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Open documentation" : "Dokumentatioun opmaachen"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/lt_LT.js b/apps/federatedfilesharing/l10n/lt_LT.js
deleted file mode 100644
index ccaca09ce91..00000000000
--- a/apps/federatedfilesharing/l10n/lt_LT.js
+++ /dev/null
@@ -1,40 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "Neteisingas federacinės debesijos ID",
- "Server to server sharing is not enabled on this server" : "Dalinimasis tarp serverių yra neleidžiamas šiame serveryje",
- "Couldn't establish a federated share." : "Nepavyko užmegzti federacinio viešinio.",
- "Couldn't establish a federated share, maybe the password was wrong." : "Nepavyko užmegzti federacinio viešinio, galbūt, neteisingas slaptažodis.",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Federacinio viešinio užklausa išsiųsta, jūs gausite pakvietimą. Tikrinkite savo pranešimus.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "Nepavyko užmegzti federacinio viešinio, atrodo, kad serveris su kuriuo ketinama jungtis į federaciją yra per senas (Nextcloud <= 9).",
- "It is not allowed to send federated group shares from this server." : "Iš šio serverio neleidžiama siųsti federacinių grupės viešinių.",
- "File is already shared with %s" : "Failas jau yra bendrinamas su %s",
- "Could not find share" : "Nepavyko rasti viešinio",
- "Federated sharing" : "Federacinis bendrinimas",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Jūs gavote {share} kaip nuotolinį viešinį iš {user} ({behalf} vardu)",
- "You received {share} as a remote share from {user}" : "Jūs gavote {share} kaip nuotolinį viešinį iš {user}",
- "Accept" : "Priimti",
- "Decline" : "Atmesti",
- "Federated Cloud Sharing" : "Bendrinimas federacinėje debesijoje",
- "Sharing" : "Duomenų bendrinimas",
- "Federated file sharing" : "Federacinis failų bendrinimas",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Bendrinti su manimi per mano #Nextcloud federacinės debesijos ID",
- "Cloud ID copied to the clipboard" : "Debesijos ID nukopijuotas į iškarpinę",
- "Copy to clipboard" : "Kopijuoti į iškarpinę",
- "Clipboard not available. Please copy the cloud ID manually." : "Iškarpinė neprieinama. Nukopijuokite debesijos ID rankiniu būdu.",
- "Copied!" : "Nukopijuota!",
- "Federated Cloud" : "Federacinė debesija",
- "Share it so your friends can share files with you:" : "Pasidalinkite juo, kad jūsų draugai galėtų bendrinti failus kartu su jumis:",
- "Facebook" : "„Facebook“",
- "Mastodon" : "„Mastodon“",
- "HTML Code:" : "HTML kodas:",
- "Cancel" : "Atsisakyti",
- "Add remote share" : "Pridėti nuotolinį viešinį",
- "Remote share" : "Nuotolinis viešinys",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Ar norite pridėti nuotolinį viešinį {name} iš {owner}@{remote}?",
- "Remote share password" : "Nuotolinio viešinio slaptažodis",
- "Clipboard is not available" : "Iškarpinė neprieinama",
- "Your Federated Cloud ID:" : "Jūsų federacinės debesijos ID:",
- "Twitter" : "Twitter"
-},
-"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/federatedfilesharing/l10n/lt_LT.json b/apps/federatedfilesharing/l10n/lt_LT.json
deleted file mode 100644
index 01e15ef0e4a..00000000000
--- a/apps/federatedfilesharing/l10n/lt_LT.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "Neteisingas federacinės debesijos ID",
- "Server to server sharing is not enabled on this server" : "Dalinimasis tarp serverių yra neleidžiamas šiame serveryje",
- "Couldn't establish a federated share." : "Nepavyko užmegzti federacinio viešinio.",
- "Couldn't establish a federated share, maybe the password was wrong." : "Nepavyko užmegzti federacinio viešinio, galbūt, neteisingas slaptažodis.",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Federacinio viešinio užklausa išsiųsta, jūs gausite pakvietimą. Tikrinkite savo pranešimus.",
- "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "Nepavyko užmegzti federacinio viešinio, atrodo, kad serveris su kuriuo ketinama jungtis į federaciją yra per senas (Nextcloud <= 9).",
- "It is not allowed to send federated group shares from this server." : "Iš šio serverio neleidžiama siųsti federacinių grupės viešinių.",
- "File is already shared with %s" : "Failas jau yra bendrinamas su %s",
- "Could not find share" : "Nepavyko rasti viešinio",
- "Federated sharing" : "Federacinis bendrinimas",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Jūs gavote {share} kaip nuotolinį viešinį iš {user} ({behalf} vardu)",
- "You received {share} as a remote share from {user}" : "Jūs gavote {share} kaip nuotolinį viešinį iš {user}",
- "Accept" : "Priimti",
- "Decline" : "Atmesti",
- "Federated Cloud Sharing" : "Bendrinimas federacinėje debesijoje",
- "Sharing" : "Duomenų bendrinimas",
- "Federated file sharing" : "Federacinis failų bendrinimas",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Bendrinti su manimi per mano #Nextcloud federacinės debesijos ID",
- "Cloud ID copied to the clipboard" : "Debesijos ID nukopijuotas į iškarpinę",
- "Copy to clipboard" : "Kopijuoti į iškarpinę",
- "Clipboard not available. Please copy the cloud ID manually." : "Iškarpinė neprieinama. Nukopijuokite debesijos ID rankiniu būdu.",
- "Copied!" : "Nukopijuota!",
- "Federated Cloud" : "Federacinė debesija",
- "Share it so your friends can share files with you:" : "Pasidalinkite juo, kad jūsų draugai galėtų bendrinti failus kartu su jumis:",
- "Facebook" : "„Facebook“",
- "Mastodon" : "„Mastodon“",
- "HTML Code:" : "HTML kodas:",
- "Cancel" : "Atsisakyti",
- "Add remote share" : "Pridėti nuotolinį viešinį",
- "Remote share" : "Nuotolinis viešinys",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Ar norite pridėti nuotolinį viešinį {name} iš {owner}@{remote}?",
- "Remote share password" : "Nuotolinio viešinio slaptažodis",
- "Clipboard is not available" : "Iškarpinė neprieinama",
- "Your Federated Cloud ID:" : "Jūsų federacinės debesijos ID:",
- "Twitter" : "Twitter"
-},"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/federatedfilesharing/l10n/lv.js b/apps/federatedfilesharing/l10n/lv.js
deleted file mode 100644
index 83b34ea823f..00000000000
--- a/apps/federatedfilesharing/l10n/lv.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Vai vēlaties pievienot attālo koplietošanu {name} no {owner}@{remote}?",
- "Remote share" : "Attālinātā koplietotne",
- "Remote share password" : "Attālinātās koplietotnes parole",
- "Cancel" : "Atcelt",
- "Add remote share" : "Pievienot attālināto koplietotni",
- "Copy" : "Kopēt",
- "Copied!" : "Nokopēts!",
- "Not supported!" : "Nav atbalstīts!",
- "Press ⌘-C to copy." : "Spied ⌘-C lai kopētu.",
- "Press Ctrl-C to copy." : "Spied Ctrl-C lai kopētu.",
- "Invalid Federated Cloud ID" : "Nederīgs Federated Cloud ID",
- "Server to server sharing is not enabled on this server" : "Koplietošana no servera uz serveri, šajā serverī nav iespējota",
- "File is already shared with %s" : "Datne ir jau koplietota ar %s",
- "Could not find share" : "Nevarēja atrast koplietojumu",
- "Federated sharing" : "Federatīva koplietošana",
- "Accept" : "Akceptēt",
- "Decline" : "Noraidīt",
- "Sharing" : "Koplietošana",
- "Federated Cloud Sharing" : "Federatīva mākoņkoplietošana",
- "Open documentation" : "Atvērt dokumentāciju",
- "Allow users on this server to receive shares from other servers" : "Atļaut šī servera lietotājiem saņem koplietotnes no citiem serveriem",
- "Federated Cloud" : "Federated Cloud",
- "Your Federated Cloud ID:" : "Tavs Federated Cloud ID:",
- "Add to your website" : "Pievienojiet savai vietnei",
- "HTML Code:" : "HTML kods:",
- "Allow users on this server to send shares to other servers" : "Atļaut šī servera lietotājiem sūtīt koplietotnes uz citiem serveriem"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/federatedfilesharing/l10n/lv.json b/apps/federatedfilesharing/l10n/lv.json
deleted file mode 100644
index 1b8dd709812..00000000000
--- a/apps/federatedfilesharing/l10n/lv.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Vai vēlaties pievienot attālo koplietošanu {name} no {owner}@{remote}?",
- "Remote share" : "Attālinātā koplietotne",
- "Remote share password" : "Attālinātās koplietotnes parole",
- "Cancel" : "Atcelt",
- "Add remote share" : "Pievienot attālināto koplietotni",
- "Copy" : "Kopēt",
- "Copied!" : "Nokopēts!",
- "Not supported!" : "Nav atbalstīts!",
- "Press ⌘-C to copy." : "Spied ⌘-C lai kopētu.",
- "Press Ctrl-C to copy." : "Spied Ctrl-C lai kopētu.",
- "Invalid Federated Cloud ID" : "Nederīgs Federated Cloud ID",
- "Server to server sharing is not enabled on this server" : "Koplietošana no servera uz serveri, šajā serverī nav iespējota",
- "File is already shared with %s" : "Datne ir jau koplietota ar %s",
- "Could not find share" : "Nevarēja atrast koplietojumu",
- "Federated sharing" : "Federatīva koplietošana",
- "Accept" : "Akceptēt",
- "Decline" : "Noraidīt",
- "Sharing" : "Koplietošana",
- "Federated Cloud Sharing" : "Federatīva mākoņkoplietošana",
- "Open documentation" : "Atvērt dokumentāciju",
- "Allow users on this server to receive shares from other servers" : "Atļaut šī servera lietotājiem saņem koplietotnes no citiem serveriem",
- "Federated Cloud" : "Federated Cloud",
- "Your Federated Cloud ID:" : "Tavs Federated Cloud ID:",
- "Add to your website" : "Pievienojiet savai vietnei",
- "HTML Code:" : "HTML kods:",
- "Allow users on this server to send shares to other servers" : "Atļaut šī servera lietotājiem sūtīt koplietotnes uz citiem serveriem"
-},"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/federatedfilesharing/l10n/mk.js b/apps/federatedfilesharing/l10n/mk.js
index 26b36951438..52eca14901f 100644
--- a/apps/federatedfilesharing/l10n/mk.js
+++ b/apps/federatedfilesharing/l10n/mk.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"Unable to update federated files sharing config" : "Неможе да се ажурираат параметрите за федерално споделување",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Споделете со мене преку мојот Федерален Cloud ID, види {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Споделете со мене преку мојот Федерален Cloud ID",
+ "Share with me via Nextcloud" : "Сподели со мене",
"Cloud ID copied to the clipboard" : "Cloud ID е копиран во клипборд",
"Copy to clipboard" : "Копирај во клипборд",
"Copied!" : "Копирано!",
@@ -33,16 +34,11 @@ OC.L10N.register(
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (поранешен Twitter)",
"Add to your website" : "Додади на твојот веб сајт",
- "Share with me via Nextcloud" : "Сподели со мене",
"HTML Code:" : "HTML код:",
"Cancel" : "Откажи",
"Add remote share" : "Додади далечинско споделување",
"Remote share" : "Далечинско споделување",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Дали сакате да додадете далечинско споделување на {name} од {owner}@{remote}?",
- "Remote share password" : "Лозинка за далечинско споделување",
- "Clipboard is not available" : "Клипбордот не е достапен",
- "Your Federated Cloud ID:" : "Вашиот федерален ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Лозинка за далечинско споделување"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/federatedfilesharing/l10n/mk.json b/apps/federatedfilesharing/l10n/mk.json
index f5b225839c7..fbad5e2d1b9 100644
--- a/apps/federatedfilesharing/l10n/mk.json
+++ b/apps/federatedfilesharing/l10n/mk.json
@@ -22,6 +22,7 @@
"Unable to update federated files sharing config" : "Неможе да се ажурираат параметрите за федерално споделување",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Споделете со мене преку мојот Федерален Cloud ID, види {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Споделете со мене преку мојот Федерален Cloud ID",
+ "Share with me via Nextcloud" : "Сподели со мене",
"Cloud ID copied to the clipboard" : "Cloud ID е копиран во клипборд",
"Copy to clipboard" : "Копирај во клипборд",
"Copied!" : "Копирано!",
@@ -31,16 +32,11 @@
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (поранешен Twitter)",
"Add to your website" : "Додади на твојот веб сајт",
- "Share with me via Nextcloud" : "Сподели со мене",
"HTML Code:" : "HTML код:",
"Cancel" : "Откажи",
"Add remote share" : "Додади далечинско споделување",
"Remote share" : "Далечинско споделување",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Дали сакате да додадете далечинско споделување на {name} од {owner}@{remote}?",
- "Remote share password" : "Лозинка за далечинско споделување",
- "Clipboard is not available" : "Клипбордот не е достапен",
- "Your Federated Cloud ID:" : "Вашиот федерален ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Лозинка за далечинско споделување"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/nb.js b/apps/federatedfilesharing/l10n/nb.js
index 64b9abbb72b..b03c98f3c06 100644
--- a/apps/federatedfilesharing/l10n/nb.js
+++ b/apps/federatedfilesharing/l10n/nb.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Allow people to publish their data to a global and public address book" : "Tillat brukere å offentliggjøre deres data til en verdensomspennende og offentlig adressebok",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Del med meg gjennom min #Nextcloud ID for sammenknyttet sky, se {url}.",
"Share with me through my #Nextcloud Federated Cloud ID" : "Del med meg gjennom min #Nextcloud-ID for sammenknyttet sky",
+ "Share with me via Nextcloud" : "Del med meg via Nextcloud",
"Cloud ID copied to the clipboard" : "Sky-ID kopiert til utklippstavlen",
"Copy to clipboard" : "Kopiert til utklippstavlen",
"Copied!" : "Kopiert!",
@@ -43,16 +44,11 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (tidligere Twitter)",
"Mastodon" : "Mastodont",
"Add to your website" : "Legg på nettsiden din",
- "Share with me via Nextcloud" : "Del med meg via Nextcloud",
"HTML Code:" : "HTML-kode:",
"Cancel" : "Avbryt",
"Add remote share" : "Legg til ekstern ressurs",
"Remote share" : "Ekstern ressurs",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ønsker du å legge til ekstern ressurs {name} fra {owner}@{remote}?",
- "Remote share password" : "Passord for ekstern ressurs",
- "Clipboard is not available" : "Utklippstavlen er ikke tilgjengelig",
- "Your Federated Cloud ID:" : "Din ID for sammenknyttet sky:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Passord for ekstern ressurs"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/nb.json b/apps/federatedfilesharing/l10n/nb.json
index f6da87d475d..1e73df41ab3 100644
--- a/apps/federatedfilesharing/l10n/nb.json
+++ b/apps/federatedfilesharing/l10n/nb.json
@@ -31,6 +31,7 @@
"Allow people to publish their data to a global and public address book" : "Tillat brukere å offentliggjøre deres data til en verdensomspennende og offentlig adressebok",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Del med meg gjennom min #Nextcloud ID for sammenknyttet sky, se {url}.",
"Share with me through my #Nextcloud Federated Cloud ID" : "Del med meg gjennom min #Nextcloud-ID for sammenknyttet sky",
+ "Share with me via Nextcloud" : "Del med meg via Nextcloud",
"Cloud ID copied to the clipboard" : "Sky-ID kopiert til utklippstavlen",
"Copy to clipboard" : "Kopiert til utklippstavlen",
"Copied!" : "Kopiert!",
@@ -41,16 +42,11 @@
"X (formerly Twitter)" : "X (tidligere Twitter)",
"Mastodon" : "Mastodont",
"Add to your website" : "Legg på nettsiden din",
- "Share with me via Nextcloud" : "Del med meg via Nextcloud",
"HTML Code:" : "HTML-kode:",
"Cancel" : "Avbryt",
"Add remote share" : "Legg til ekstern ressurs",
"Remote share" : "Ekstern ressurs",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ønsker du å legge til ekstern ressurs {name} fra {owner}@{remote}?",
- "Remote share password" : "Passord for ekstern ressurs",
- "Clipboard is not available" : "Utklippstavlen er ikke tilgjengelig",
- "Your Federated Cloud ID:" : "Din ID for sammenknyttet sky:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Passord for ekstern ressurs"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/nl.js b/apps/federatedfilesharing/l10n/nl.js
index 1232e4eb097..18dbfc24661 100644
--- a/apps/federatedfilesharing/l10n/nl.js
+++ b/apps/federatedfilesharing/l10n/nl.js
@@ -8,6 +8,7 @@ OC.L10N.register(
"Federated Share request sent, you will receive an invitation. Check your notifications." : "De gefedereerde share aanvraag is verzonden, je ontvangt een uitnodiging. Controleer je meldingen.",
"Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "Kon geen gefedereerde share tot stand brengen, waarschijnlijk was de federatieserver te oud (Nextcloud <=9).",
"It is not allowed to send federated group shares from this server." : "Het is niet toegestaan om gefedereerde groepsshares vanaf deze server te versturen.",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "Het delen van%1$s is mislukt, omdat dit item al gedeeld wordt met het account %2$s",
"Federated shares require read permissions" : "Gefedereerde shares vereisen leesmachtiging",
"File is already shared with %s" : "Bestand is al gedeeld met %s",
"Sharing %1$s failed, could not find %2$s, maybe the server is currently unreachable or uses a self-signed certificate." : "Delen van %1$s mislukt, kon %2$s niet vinden, misschien is de server niet bereikbaar of je gebruikt een zelf-ondertekend certificaat.",
@@ -22,6 +23,7 @@ OC.L10N.register(
"Federated file sharing" : "Gefedereerd delen",
"Provide federated file sharing across servers" : "Voorzien in gefedereerd delen van bestanden over verschillende servers",
"Share with me through my #Nextcloud Federated Cloud ID" : "Deel met mij via mijn #Nextcloud gefedereerde Cloud ID",
+ "Share with me via Nextcloud" : "Deel met mij via Nextcloud",
"Copy to clipboard" : "Kopiëren naar het klembord",
"Copied!" : "Gekopieerd!",
"Federated Cloud" : "Gefedereerde Cloud",
@@ -31,16 +33,11 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (voorheen Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Toevoegen aan je website",
- "Share with me via Nextcloud" : "Deel met mij via Nextcloud",
"HTML Code:" : "HTML Code:",
"Cancel" : "Annuleren",
"Add remote share" : "Toevoegen externe share",
"Remote share" : "Externe share",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Wil je de externe share {name} van {owner}@{remote} toevoegen?",
- "Remote share password" : "Wachtwoord externe share",
- "Clipboard is not available" : "Klembord niet beschikbaar",
- "Your Federated Cloud ID:" : "Je gefedereerde Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Wachtwoord externe share"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/nl.json b/apps/federatedfilesharing/l10n/nl.json
index f8757cb60ac..99333613152 100644
--- a/apps/federatedfilesharing/l10n/nl.json
+++ b/apps/federatedfilesharing/l10n/nl.json
@@ -6,6 +6,7 @@
"Federated Share request sent, you will receive an invitation. Check your notifications." : "De gefedereerde share aanvraag is verzonden, je ontvangt een uitnodiging. Controleer je meldingen.",
"Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "Kon geen gefedereerde share tot stand brengen, waarschijnlijk was de federatieserver te oud (Nextcloud <=9).",
"It is not allowed to send federated group shares from this server." : "Het is niet toegestaan om gefedereerde groepsshares vanaf deze server te versturen.",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "Het delen van%1$s is mislukt, omdat dit item al gedeeld wordt met het account %2$s",
"Federated shares require read permissions" : "Gefedereerde shares vereisen leesmachtiging",
"File is already shared with %s" : "Bestand is al gedeeld met %s",
"Sharing %1$s failed, could not find %2$s, maybe the server is currently unreachable or uses a self-signed certificate." : "Delen van %1$s mislukt, kon %2$s niet vinden, misschien is de server niet bereikbaar of je gebruikt een zelf-ondertekend certificaat.",
@@ -20,6 +21,7 @@
"Federated file sharing" : "Gefedereerd delen",
"Provide federated file sharing across servers" : "Voorzien in gefedereerd delen van bestanden over verschillende servers",
"Share with me through my #Nextcloud Federated Cloud ID" : "Deel met mij via mijn #Nextcloud gefedereerde Cloud ID",
+ "Share with me via Nextcloud" : "Deel met mij via Nextcloud",
"Copy to clipboard" : "Kopiëren naar het klembord",
"Copied!" : "Gekopieerd!",
"Federated Cloud" : "Gefedereerde Cloud",
@@ -29,16 +31,11 @@
"X (formerly Twitter)" : "X (voorheen Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Toevoegen aan je website",
- "Share with me via Nextcloud" : "Deel met mij via Nextcloud",
"HTML Code:" : "HTML Code:",
"Cancel" : "Annuleren",
"Add remote share" : "Toevoegen externe share",
"Remote share" : "Externe share",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Wil je de externe share {name} van {owner}@{remote} toevoegen?",
- "Remote share password" : "Wachtwoord externe share",
- "Clipboard is not available" : "Klembord niet beschikbaar",
- "Your Federated Cloud ID:" : "Je gefedereerde Cloud ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Wachtwoord externe share"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/oc.js b/apps/federatedfilesharing/l10n/oc.js
deleted file mode 100644
index 5463ea1bbc5..00000000000
--- a/apps/federatedfilesharing/l10n/oc.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Federated sharing" : "Federated sharing",
- "Invalid Federated Cloud ID" : "ID Federated Cloud incorrècte",
- "Sharing %s failed, because this item is already shared with %s" : "Lo partiment de %s a fracassat perque aqueste objècte es ja partejat amb %s",
- "File is already shared with %s" : "Lo fichièr es ja partejat amb %s",
- "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Lo partiment de %s a fracassat : impossible de trobar %s. Benlèu que lo servidor es momentanèament injonhable.",
- "Accept" : "Acceptar",
- "Decline" : "Refusar",
- "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Partejatz amb ieu gràcias a mon identificant Federated Cloud #Nextcloud %s",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Partejatz amb ieu gràcias a mon identificant Federated Cloud #Nextcloud",
- "Federated Cloud Sharing" : "Federated Cloud Sharing",
- "Open documentation" : "Veire la documentacion",
- "Allow users on this server to send shares to other servers" : "Autorizar los utilizaires d'aqueste servidor a mandar de partiments cap a d'autres servidors",
- "Allow users on this server to receive shares from other servers" : "Autorizar los utilizaires d'aqueste servidor a recebre de partiments d'autres servidors",
- "Federated Cloud" : "Federated Cloud",
- "Your Federated Cloud ID:" : "Vòstre identificant Federated Cloud :",
- "Share it:" : "Partejar :",
- "Add to your website" : "Apondre a vòstre site web",
- "Share with me via Nextcloud" : "Partejatz amb ieu via Nextcloud",
- "HTML Code:" : "Còdi HTML :"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/federatedfilesharing/l10n/oc.json b/apps/federatedfilesharing/l10n/oc.json
deleted file mode 100644
index 579a79c34e8..00000000000
--- a/apps/federatedfilesharing/l10n/oc.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Federated sharing" : "Federated sharing",
- "Invalid Federated Cloud ID" : "ID Federated Cloud incorrècte",
- "Sharing %s failed, because this item is already shared with %s" : "Lo partiment de %s a fracassat perque aqueste objècte es ja partejat amb %s",
- "File is already shared with %s" : "Lo fichièr es ja partejat amb %s",
- "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Lo partiment de %s a fracassat : impossible de trobar %s. Benlèu que lo servidor es momentanèament injonhable.",
- "Accept" : "Acceptar",
- "Decline" : "Refusar",
- "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Partejatz amb ieu gràcias a mon identificant Federated Cloud #Nextcloud %s",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Partejatz amb ieu gràcias a mon identificant Federated Cloud #Nextcloud",
- "Federated Cloud Sharing" : "Federated Cloud Sharing",
- "Open documentation" : "Veire la documentacion",
- "Allow users on this server to send shares to other servers" : "Autorizar los utilizaires d'aqueste servidor a mandar de partiments cap a d'autres servidors",
- "Allow users on this server to receive shares from other servers" : "Autorizar los utilizaires d'aqueste servidor a recebre de partiments d'autres servidors",
- "Federated Cloud" : "Federated Cloud",
- "Your Federated Cloud ID:" : "Vòstre identificant Federated Cloud :",
- "Share it:" : "Partejar :",
- "Add to your website" : "Apondre a vòstre site web",
- "Share with me via Nextcloud" : "Partejatz amb ieu via Nextcloud",
- "HTML Code:" : "Còdi HTML :"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/pl.js b/apps/federatedfilesharing/l10n/pl.js
index bc76be7c614..36d4b09bdef 100644
--- a/apps/federatedfilesharing/l10n/pl.js
+++ b/apps/federatedfilesharing/l10n/pl.js
@@ -22,7 +22,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Udostępnianie Chmury Federacyjnej",
"Sharing" : "Udostępnianie",
"Federated file sharing" : "Udostępnianie federacyjne plików",
- "Provide federated file sharing across servers" : "Zezwól na udostępnianie federacyjne plików na serwerach",
+ "Provide federated file sharing across servers" : "Zezwalaj na udostępnianie federacyjne plików na serwerach",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Służy do pobierania ID Chmury Federacyjnej, aby ułatwić udostępnianie federacyjne.",
"Unable to update federated files sharing config" : "Nie można zaktualizować konfiguracji udostępniania federacyjnego plików",
"Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Dostosuj sposób udostępniania między serwerami. Obejmuje to również udostępnianie między ludźmi na tym serwerze, jeśli korzystają z udostępniania federacyjnego.",
"Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Zezwalaj ludziom na tym serwerze na wysłanie udostępnień do innych serwerów (opcja ta umożliwia również dostęp WebDAV do udostępnień publicznych)",
@@ -35,6 +36,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Automatycznie akceptuj udostępnienia z zaufanych kont federacyjnych i domyślnych grup",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Udostępnij mi poprzez mój ID #Nextcloud Chmury Federacyjnej, zobacz {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Udostępnij mi poprzez mój ID #Nextcloud Chmury Federacyjnej",
+ "Share with me via Nextcloud" : "Udostępnij mi za pomocą Nextcloud",
"Cloud ID copied to the clipboard" : "ID chmury skopiowany do schowka",
"Copy to clipboard" : "Kopiuj do schowka",
"Clipboard not available. Please copy the cloud ID manually." : "Schowek niedostępny. Skopiuj identyfikator chmury ręcznie.",
@@ -48,17 +50,12 @@ OC.L10N.register(
"formerly Twitter" : "dawny Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Dodaj do swojej strony",
- "Share with me via Nextcloud" : "Udostępnij mi za pomocą Nextcloud",
"HTML Code:" : "Kod HTML:",
"Cancel" : "Anuluj",
"Add remote share" : "Dodaj zdalne udostępnienie",
"Remote share" : "Zdalne udostępnienie",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Czy chcesz dodać zdalne udostępnienie {name} od {owner}@{remote}?",
"Remote share password" : "Hasło zdalnego udostępnienia",
- "Incoming share could not be processed" : "Nie można przetworzyć przychodzącego udostępnienia",
- "Clipboard is not available" : "Schowek jest niedostępny",
- "Your Federated Cloud ID:" : "Twoje ID Chmury Federacyjnej:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Nie można przetworzyć przychodzącego udostępnienia"
},
"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/federatedfilesharing/l10n/pl.json b/apps/federatedfilesharing/l10n/pl.json
index b55118c022c..39a66435157 100644
--- a/apps/federatedfilesharing/l10n/pl.json
+++ b/apps/federatedfilesharing/l10n/pl.json
@@ -20,7 +20,8 @@
"Federated Cloud Sharing" : "Udostępnianie Chmury Federacyjnej",
"Sharing" : "Udostępnianie",
"Federated file sharing" : "Udostępnianie federacyjne plików",
- "Provide federated file sharing across servers" : "Zezwól na udostępnianie federacyjne plików na serwerach",
+ "Provide federated file sharing across servers" : "Zezwalaj na udostępnianie federacyjne plików na serwerach",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Służy do pobierania ID Chmury Federacyjnej, aby ułatwić udostępnianie federacyjne.",
"Unable to update federated files sharing config" : "Nie można zaktualizować konfiguracji udostępniania federacyjnego plików",
"Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Dostosuj sposób udostępniania między serwerami. Obejmuje to również udostępnianie między ludźmi na tym serwerze, jeśli korzystają z udostępniania federacyjnego.",
"Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Zezwalaj ludziom na tym serwerze na wysłanie udostępnień do innych serwerów (opcja ta umożliwia również dostęp WebDAV do udostępnień publicznych)",
@@ -33,6 +34,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Automatycznie akceptuj udostępnienia z zaufanych kont federacyjnych i domyślnych grup",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Udostępnij mi poprzez mój ID #Nextcloud Chmury Federacyjnej, zobacz {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Udostępnij mi poprzez mój ID #Nextcloud Chmury Federacyjnej",
+ "Share with me via Nextcloud" : "Udostępnij mi za pomocą Nextcloud",
"Cloud ID copied to the clipboard" : "ID chmury skopiowany do schowka",
"Copy to clipboard" : "Kopiuj do schowka",
"Clipboard not available. Please copy the cloud ID manually." : "Schowek niedostępny. Skopiuj identyfikator chmury ręcznie.",
@@ -46,17 +48,12 @@
"formerly Twitter" : "dawny Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Dodaj do swojej strony",
- "Share with me via Nextcloud" : "Udostępnij mi za pomocą Nextcloud",
"HTML Code:" : "Kod HTML:",
"Cancel" : "Anuluj",
"Add remote share" : "Dodaj zdalne udostępnienie",
"Remote share" : "Zdalne udostępnienie",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Czy chcesz dodać zdalne udostępnienie {name} od {owner}@{remote}?",
"Remote share password" : "Hasło zdalnego udostępnienia",
- "Incoming share could not be processed" : "Nie można przetworzyć przychodzącego udostępnienia",
- "Clipboard is not available" : "Schowek jest niedostępny",
- "Your Federated Cloud ID:" : "Twoje ID Chmury Federacyjnej:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Nie można przetworzyć przychodzącego udostępnienia"
},"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/federatedfilesharing/l10n/pt_BR.js b/apps/federatedfilesharing/l10n/pt_BR.js
index 2f4a3746efd..15754c3c3e0 100644
--- a/apps/federatedfilesharing/l10n/pt_BR.js
+++ b/apps/federatedfilesharing/l10n/pt_BR.js
@@ -24,12 +24,12 @@ OC.L10N.register(
"Federated file sharing" : "Compartilhamento federado de arquivos",
"Provide federated file sharing across servers" : "Fornecer compartilhamento federado entre servidores",
"Confirm data upload to lookup server" : "Confirmar o upload de dados para o servidor de pesquisa",
- "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Quando ativadas, todas as propriedades da conta (por exemplo, endereço de e-mail) com visibilidade de escopo definida como \"publicada\" serão automaticamente sincronizadas e transmitidas para um sistema externo e disponibilizadas em um catálogo de endereços público e global.",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Quando ativadas, todas as propriedades da conta (p. ex., endereço de e-mail) com visibilidade de escopo definida como \"publicado\" serão automaticamente sincronizadas e transmitidas para um sistema externo e disponibilizadas em um catálogo de endereços público e global.",
"Disable upload" : "Desativar upload",
"Enable data upload" : "Ativar upload de dados",
"Confirm querying lookup server" : "Confirmar a consulta ao servidor de pesquisa",
"When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Quando ativada, a entrada de pesquisa ao criar compartilhamentos será enviada para um sistema externo que fornece um catálogo de endereços público e global.",
- "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Isso é usado para recuperar o ID da nuvem federada para facilitar o compartilhamento federado.",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Isso é usado para obter o ID de nuvem federada para facilitar o compartilhamento federado.",
"Moreover, email addresses of users might be sent to that system in order to verify them." : "Além disso, os endereços de e-mail dos usuários podem ser enviados para esse sistema a fim de verificá-los.",
"Disable querying" : "Desativar consulta",
"Enable querying" : "Ativar consulta",
@@ -46,12 +46,13 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Aceitar automaticamente compartilhamentos de contas e grupos federados confiáveis por padrão",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Compartilhe comigo por meio do meu ID de Nuvem Federada #Nextcloud, consulte {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartilhe comigo através do meu ID de Nuvem Federada #Nextcloud",
+ "Share with me via Nextcloud" : "Compartilhe comigo via Nextcloud",
"Cloud ID copied to the clipboard" : "ID de Nuvem copiado para a área de transferência",
"Copy to clipboard" : "Copiar para área de transferência",
"Clipboard not available. Please copy the cloud ID manually." : "Área de transferência indisponível. Copie o ID de Nuvem manualmente.",
"Copied!" : "Copiado!",
"Federated Cloud" : "Nuvem Federada",
- "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Você pode compartilhar com qualquer pessoa que use Nextcloud ou outros servidores compatíveis com o Open Cloud Mesh (OCM)! Basta colocar sua ID de nuvem federada na caixa de diálogo de compartilhamento. Algo como person@cloud.example.com",
+ "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Você pode compartilhar com qualquer pessoa que use Nextcloud ou outros servidores compatíveis com o Open Cloud Mesh (OCM)! Basta colocar sua ID de Nuvem Federada na caixa de diálogo de compartilhamento. Algo como person@cloud.example.com",
"Your Federated Cloud ID" : "Seu ID de Nuvem Federada",
"Share it so your friends can share files with you:" : "Compartilhe para que seus amigos possam compartilhar arquivos com você:",
"Facebook" : "Facebook",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "anteriormente Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Adicione ao seu website",
- "Share with me via Nextcloud" : "Compartilhe comigo via Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Adicionar compartilhamento remoto",
"Remote share" : "Compartilhamento remoto",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Deseja adicionar o compartilhamento remoto {name} de {owner}@{remote}?",
"Remote share password" : "Senha do compartilhamento remoto",
- "Incoming share could not be processed" : "O compartilhamento recebido não pôde ser processado",
- "Clipboard is not available" : "A área de transferência não está disponível",
- "Your Federated Cloud ID:" : "Sua ID de Nuvem Federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "O compartilhamento recebido não pôde ser processado"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/pt_BR.json b/apps/federatedfilesharing/l10n/pt_BR.json
index a95a7baa35b..6574ec209f2 100644
--- a/apps/federatedfilesharing/l10n/pt_BR.json
+++ b/apps/federatedfilesharing/l10n/pt_BR.json
@@ -22,12 +22,12 @@
"Federated file sharing" : "Compartilhamento federado de arquivos",
"Provide federated file sharing across servers" : "Fornecer compartilhamento federado entre servidores",
"Confirm data upload to lookup server" : "Confirmar o upload de dados para o servidor de pesquisa",
- "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Quando ativadas, todas as propriedades da conta (por exemplo, endereço de e-mail) com visibilidade de escopo definida como \"publicada\" serão automaticamente sincronizadas e transmitidas para um sistema externo e disponibilizadas em um catálogo de endereços público e global.",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "Quando ativadas, todas as propriedades da conta (p. ex., endereço de e-mail) com visibilidade de escopo definida como \"publicado\" serão automaticamente sincronizadas e transmitidas para um sistema externo e disponibilizadas em um catálogo de endereços público e global.",
"Disable upload" : "Desativar upload",
"Enable data upload" : "Ativar upload de dados",
"Confirm querying lookup server" : "Confirmar a consulta ao servidor de pesquisa",
"When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Quando ativada, a entrada de pesquisa ao criar compartilhamentos será enviada para um sistema externo que fornece um catálogo de endereços público e global.",
- "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Isso é usado para recuperar o ID da nuvem federada para facilitar o compartilhamento federado.",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Isso é usado para obter o ID de nuvem federada para facilitar o compartilhamento federado.",
"Moreover, email addresses of users might be sent to that system in order to verify them." : "Além disso, os endereços de e-mail dos usuários podem ser enviados para esse sistema a fim de verificá-los.",
"Disable querying" : "Desativar consulta",
"Enable querying" : "Ativar consulta",
@@ -44,12 +44,13 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Aceitar automaticamente compartilhamentos de contas e grupos federados confiáveis por padrão",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Compartilhe comigo por meio do meu ID de Nuvem Federada #Nextcloud, consulte {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartilhe comigo através do meu ID de Nuvem Federada #Nextcloud",
+ "Share with me via Nextcloud" : "Compartilhe comigo via Nextcloud",
"Cloud ID copied to the clipboard" : "ID de Nuvem copiado para a área de transferência",
"Copy to clipboard" : "Copiar para área de transferência",
"Clipboard not available. Please copy the cloud ID manually." : "Área de transferência indisponível. Copie o ID de Nuvem manualmente.",
"Copied!" : "Copiado!",
"Federated Cloud" : "Nuvem Federada",
- "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Você pode compartilhar com qualquer pessoa que use Nextcloud ou outros servidores compatíveis com o Open Cloud Mesh (OCM)! Basta colocar sua ID de nuvem federada na caixa de diálogo de compartilhamento. Algo como person@cloud.example.com",
+ "You can share with anyone who uses a Nextcloud server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Você pode compartilhar com qualquer pessoa que use Nextcloud ou outros servidores compatíveis com o Open Cloud Mesh (OCM)! Basta colocar sua ID de Nuvem Federada na caixa de diálogo de compartilhamento. Algo como person@cloud.example.com",
"Your Federated Cloud ID" : "Seu ID de Nuvem Federada",
"Share it so your friends can share files with you:" : "Compartilhe para que seus amigos possam compartilhar arquivos com você:",
"Facebook" : "Facebook",
@@ -57,17 +58,12 @@
"formerly Twitter" : "anteriormente Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Adicione ao seu website",
- "Share with me via Nextcloud" : "Compartilhe comigo via Nextcloud",
"HTML Code:" : "Código HTML:",
"Cancel" : "Cancelar",
"Add remote share" : "Adicionar compartilhamento remoto",
"Remote share" : "Compartilhamento remoto",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Deseja adicionar o compartilhamento remoto {name} de {owner}@{remote}?",
"Remote share password" : "Senha do compartilhamento remoto",
- "Incoming share could not be processed" : "O compartilhamento recebido não pôde ser processado",
- "Clipboard is not available" : "A área de transferência não está disponível",
- "Your Federated Cloud ID:" : "Sua ID de Nuvem Federada:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "O compartilhamento recebido não pôde ser processado"
},"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/federatedfilesharing/l10n/pt_PT.js b/apps/federatedfilesharing/l10n/pt_PT.js
deleted file mode 100644
index f3e4799a400..00000000000
--- a/apps/federatedfilesharing/l10n/pt_PT.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "Id. de Nuvem Federada Inválida",
- "Server to server sharing is not enabled on this server" : "Partilha servidor-para-servidor não está ativa neste servidor",
- "Couldn't establish a federated share." : "Não foi possível estabelecer uma partilha federada.",
- "Couldn't establish a federated share, maybe the password was wrong." : "Não foi possível estabelecer a partilha federada, a palavra-passe talvez esteja incorreta.",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Pedido de Partilha Federada enviado, irá receber o convite. Confira as suas notificações.",
- "File is already shared with %s" : "O ficheiro já foi partilhado com %s",
- "Could not find share" : "Não foi possível encontrar partilha",
- "Federated sharing" : "Partilha Federada",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Recebeu {share} como uma partilha remota de {user} (em nome de {behalf})",
- "You received {share} as a remote share from {user}" : "Recebeu {share} como uma partilha remota de {user}",
- "Accept" : "Aceitar",
- "Decline" : "Recusar",
- "Federated Cloud Sharing" : "Partilha de Nuvem Federada",
- "Sharing" : "Partilha",
- "Federated file sharing" : "Partilha federada de ficheiros",
- "Provide federated file sharing across servers" : "Permita a partilha federada de ficheiros entre servidores",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Partilhe comigo através da minha Id. da Nuvem Federada #Nextcloud",
- "Copy to clipboard" : "Copiar para área de transferência",
- "Copied!" : "Copiado!",
- "Federated Cloud" : "Nuvem Federada",
- "Share it so your friends can share files with you:" : "Partilhe para que os seus amigos possam partilhar ficheiros consigo:",
- "Add to your website" : "Adicione ao seu site da Web",
- "Share with me via Nextcloud" : "Partilhe comigo via Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Adicionar partilha remota",
- "Remote share" : "Partilha remota",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Pretende adicionar a partilha remota {name} de {owner}@{remote}?",
- "Remote share password" : "Palavra-passe da partilha remota",
- "Your Federated Cloud ID:" : "A sua id. da Nuvem Federada:",
- "Twitter" : "Twitter"
-},
-"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/federatedfilesharing/l10n/pt_PT.json b/apps/federatedfilesharing/l10n/pt_PT.json
deleted file mode 100644
index 59d430eef13..00000000000
--- a/apps/federatedfilesharing/l10n/pt_PT.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "Id. de Nuvem Federada Inválida",
- "Server to server sharing is not enabled on this server" : "Partilha servidor-para-servidor não está ativa neste servidor",
- "Couldn't establish a federated share." : "Não foi possível estabelecer uma partilha federada.",
- "Couldn't establish a federated share, maybe the password was wrong." : "Não foi possível estabelecer a partilha federada, a palavra-passe talvez esteja incorreta.",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Pedido de Partilha Federada enviado, irá receber o convite. Confira as suas notificações.",
- "File is already shared with %s" : "O ficheiro já foi partilhado com %s",
- "Could not find share" : "Não foi possível encontrar partilha",
- "Federated sharing" : "Partilha Federada",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Recebeu {share} como uma partilha remota de {user} (em nome de {behalf})",
- "You received {share} as a remote share from {user}" : "Recebeu {share} como uma partilha remota de {user}",
- "Accept" : "Aceitar",
- "Decline" : "Recusar",
- "Federated Cloud Sharing" : "Partilha de Nuvem Federada",
- "Sharing" : "Partilha",
- "Federated file sharing" : "Partilha federada de ficheiros",
- "Provide federated file sharing across servers" : "Permita a partilha federada de ficheiros entre servidores",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Partilhe comigo através da minha Id. da Nuvem Federada #Nextcloud",
- "Copy to clipboard" : "Copiar para área de transferência",
- "Copied!" : "Copiado!",
- "Federated Cloud" : "Nuvem Federada",
- "Share it so your friends can share files with you:" : "Partilhe para que os seus amigos possam partilhar ficheiros consigo:",
- "Add to your website" : "Adicione ao seu site da Web",
- "Share with me via Nextcloud" : "Partilhe comigo via Nextcloud",
- "HTML Code:" : "Código HTML:",
- "Cancel" : "Cancelar",
- "Add remote share" : "Adicionar partilha remota",
- "Remote share" : "Partilha remota",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Pretende adicionar a partilha remota {name} de {owner}@{remote}?",
- "Remote share password" : "Palavra-passe da partilha remota",
- "Your Federated Cloud ID:" : "A sua id. da Nuvem Federada:",
- "Twitter" : "Twitter"
-},"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/federatedfilesharing/l10n/ro.js b/apps/federatedfilesharing/l10n/ro.js
deleted file mode 100644
index 807019a1a63..00000000000
--- a/apps/federatedfilesharing/l10n/ro.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Remote share" : "Element partajat la distanță",
- "Remote share password" : "Parolă element partajat la distanță",
- "Cancel" : "Anulează",
- "Add remote share" : "Adaugă element partajat la distanță",
- "Invalid Federated Cloud ID" : "ID invalid cloud federalizat",
- "Server to server sharing is not enabled on this server" : "Partajarea server-server nu este activată pe acest server",
- "Not allowed to create a federated share with the same user" : "Nu este permisă crearea unei partajări federalizate cu acelaşi utilizator",
- "File is already shared with %s" : "Fişierul este deja partajat cu %s",
- "Could not find share" : "Nu am putut găsi partajarea",
- "Federated sharing" : "Partajare federalizată",
- "Accept" : "Accept",
- "Decline" : "Refuză",
- "Federated Cloud Sharing" : "Partajare federalizata cloud",
- "Sharing" : "Partajare",
- "Allow users on this server to receive shares from other servers" : "Permite utilizatorilor acestui server să primească partajări de la alte servere",
- "Federated Cloud" : "Cloud federalizat",
- "Your Federated Cloud ID:" : "ID Cloud federalizat:",
- "Twitter" : "Twitter",
- "Add to your website" : "Adaugă la site-ul tău Web",
- "Share with me via Nextcloud" : "Partajează cu mine via Nextcloud",
- "HTML Code:" : "Cod HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Partajează cu mine prin #Nextcloud Federated Cloud ID",
- "Copy to clipboard" : "Copiază în clipboard",
- "Copied!" : "S-a copiat!",
- "Copy" : "Copiază",
- "Not supported!" : "Nu este suportat!",
- "Press ⌘-C to copy." : "Apasă ⌘-C pentru copiere.",
- "Press Ctrl-C to copy." : "Apasă Ctrl-C pentru copiere.",
- "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Partajează cu mine prin #Nextcloud Federated Cloud ID, vezi %s",
- "Open documentation" : "Deschide documentația"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/federatedfilesharing/l10n/ro.json b/apps/federatedfilesharing/l10n/ro.json
deleted file mode 100644
index 26aedc841cd..00000000000
--- a/apps/federatedfilesharing/l10n/ro.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "Remote share" : "Element partajat la distanță",
- "Remote share password" : "Parolă element partajat la distanță",
- "Cancel" : "Anulează",
- "Add remote share" : "Adaugă element partajat la distanță",
- "Invalid Federated Cloud ID" : "ID invalid cloud federalizat",
- "Server to server sharing is not enabled on this server" : "Partajarea server-server nu este activată pe acest server",
- "Not allowed to create a federated share with the same user" : "Nu este permisă crearea unei partajări federalizate cu acelaşi utilizator",
- "File is already shared with %s" : "Fişierul este deja partajat cu %s",
- "Could not find share" : "Nu am putut găsi partajarea",
- "Federated sharing" : "Partajare federalizată",
- "Accept" : "Accept",
- "Decline" : "Refuză",
- "Federated Cloud Sharing" : "Partajare federalizata cloud",
- "Sharing" : "Partajare",
- "Allow users on this server to receive shares from other servers" : "Permite utilizatorilor acestui server să primească partajări de la alte servere",
- "Federated Cloud" : "Cloud federalizat",
- "Your Federated Cloud ID:" : "ID Cloud federalizat:",
- "Twitter" : "Twitter",
- "Add to your website" : "Adaugă la site-ul tău Web",
- "Share with me via Nextcloud" : "Partajează cu mine via Nextcloud",
- "HTML Code:" : "Cod HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Partajează cu mine prin #Nextcloud Federated Cloud ID",
- "Copy to clipboard" : "Copiază în clipboard",
- "Copied!" : "S-a copiat!",
- "Copy" : "Copiază",
- "Not supported!" : "Nu este suportat!",
- "Press ⌘-C to copy." : "Apasă ⌘-C pentru copiere.",
- "Press Ctrl-C to copy." : "Apasă Ctrl-C pentru copiere.",
- "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Partajează cu mine prin #Nextcloud Federated Cloud ID, vezi %s",
- "Open documentation" : "Deschide documentația"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ru.js b/apps/federatedfilesharing/l10n/ru.js
index 1658cf43b39..f9565c6a26f 100644
--- a/apps/federatedfilesharing/l10n/ru.js
+++ b/apps/federatedfilesharing/l10n/ru.js
@@ -23,6 +23,16 @@ OC.L10N.register(
"Sharing" : "Общий доступ",
"Federated file sharing" : "Межсерверный обмен файлами",
"Provide federated file sharing across servers" : "Приложение позволяет использовать межсерверный обмен файлами",
+ "Confirm data upload to lookup server" : "Подтвердите отправку данных на поисковый сервер",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "При включении все свойства учётной записи (например, адрес электронной почты) с видимостью, установленной как «опубликовано», будут автоматически синхронизированы и переданы во внешнюю систему и станут доступны в общедоступной глобальной адресной книге.",
+ "Disable upload" : "Отключить отправку",
+ "Enable data upload" : "Включить отправку данных",
+ "Confirm querying lookup server" : "Подтвердите отправку запросов на поисковый сервер",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "При включении введённые для поиска данные при создании общих ресурсов будут отправлены во внешнюю систему, которая предоставляет общедоступную и глобальную адресную книгу.",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Это используется для получения федеративного облачного ID, чтобы упростить федеративный обмен.",
+ "Moreover, email addresses of users might be sent to that system in order to verify them." : "Кроме того, адреса электронной почты пользователей могут быть отправлены в эту систему чтобы их проверить.",
+ "Disable querying" : "Отключить отправку запросов",
+ "Enable querying" : "Включить отправку запросов",
"Unable to update federated files sharing config" : "Невозможно обновить конфигурацию общего доступа к федеративным файлам",
"Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Настройте, как пользователи могут публиковать ресурсы между разными серверами. Сюда входят и общие ресурсы между пользователями на этом сервере, если они используют федеративное совместное использование.",
"Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Разрешить пользователям на этом сервере публиковать общие ресурсы на других серверах (этот параметр также разрешает доступ WebDAV к общим папкам)",
@@ -36,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "По умолчанию автоматически принимать общие ресурсы от доверенных федеративных учетных записей и групп",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Поделитесь со мной через мой #Nextcloud Federated Cloud ID, см. {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Поделитесь со мной через мой #Nextcloud ID в федерации облачных хранилищ",
+ "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud",
"Cloud ID copied to the clipboard" : "Идентификатор облака скопирован в буфер обмена",
"Copy to clipboard" : "Копировать в буфер",
"Clipboard not available. Please copy the cloud ID manually." : "Буфер обмена недоступен. Пожалуйста, скопируйте cloud ID вручную.",
@@ -49,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "ранее Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Добавить к себе на сайт",
- "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud",
"HTML Code:" : "HTML код:",
"Cancel" : "Отмена",
"Add remote share" : "Добавить общий ресурс другого сервера",
"Remote share" : "Общий ресурс другого сервера",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Вы хотите добавить удалённый общий каталог {name} из {owner}@{remote}?",
"Remote share password" : "Пароль общего ресурса другого сервера",
- "Incoming share could not be processed" : "Не удалось обработать входящий общий доступ",
- "Clipboard is not available" : "Буфер обмена недоступен",
- "Your Federated Cloud ID:" : "Ваш ID в федерации облачных хранилищ:",
- "Twitter" : "Твиттер",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Не удалось обработать входящий общий доступ"
},
"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/federatedfilesharing/l10n/ru.json b/apps/federatedfilesharing/l10n/ru.json
index 5b555b6f10a..43275fe9986 100644
--- a/apps/federatedfilesharing/l10n/ru.json
+++ b/apps/federatedfilesharing/l10n/ru.json
@@ -21,6 +21,16 @@
"Sharing" : "Общий доступ",
"Federated file sharing" : "Межсерверный обмен файлами",
"Provide federated file sharing across servers" : "Приложение позволяет использовать межсерверный обмен файлами",
+ "Confirm data upload to lookup server" : "Подтвердите отправку данных на поисковый сервер",
+ "When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book." : "При включении все свойства учётной записи (например, адрес электронной почты) с видимостью, установленной как «опубликовано», будут автоматически синхронизированы и переданы во внешнюю систему и станут доступны в общедоступной глобальной адресной книге.",
+ "Disable upload" : "Отключить отправку",
+ "Enable data upload" : "Включить отправку данных",
+ "Confirm querying lookup server" : "Подтвердите отправку запросов на поисковый сервер",
+ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "При включении введённые для поиска данные при создании общих ресурсов будут отправлены во внешнюю систему, которая предоставляет общедоступную и глобальную адресную книгу.",
+ "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Это используется для получения федеративного облачного ID, чтобы упростить федеративный обмен.",
+ "Moreover, email addresses of users might be sent to that system in order to verify them." : "Кроме того, адреса электронной почты пользователей могут быть отправлены в эту систему чтобы их проверить.",
+ "Disable querying" : "Отключить отправку запросов",
+ "Enable querying" : "Включить отправку запросов",
"Unable to update federated files sharing config" : "Невозможно обновить конфигурацию общего доступа к федеративным файлам",
"Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Настройте, как пользователи могут публиковать ресурсы между разными серверами. Сюда входят и общие ресурсы между пользователями на этом сервере, если они используют федеративное совместное использование.",
"Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Разрешить пользователям на этом сервере публиковать общие ресурсы на других серверах (этот параметр также разрешает доступ WebDAV к общим папкам)",
@@ -34,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "По умолчанию автоматически принимать общие ресурсы от доверенных федеративных учетных записей и групп",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Поделитесь со мной через мой #Nextcloud Federated Cloud ID, см. {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Поделитесь со мной через мой #Nextcloud ID в федерации облачных хранилищ",
+ "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud",
"Cloud ID copied to the clipboard" : "Идентификатор облака скопирован в буфер обмена",
"Copy to clipboard" : "Копировать в буфер",
"Clipboard not available. Please copy the cloud ID manually." : "Буфер обмена недоступен. Пожалуйста, скопируйте cloud ID вручную.",
@@ -47,17 +58,12 @@
"formerly Twitter" : "ранее Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Добавить к себе на сайт",
- "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud",
"HTML Code:" : "HTML код:",
"Cancel" : "Отмена",
"Add remote share" : "Добавить общий ресурс другого сервера",
"Remote share" : "Общий ресурс другого сервера",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Вы хотите добавить удалённый общий каталог {name} из {owner}@{remote}?",
"Remote share password" : "Пароль общего ресурса другого сервера",
- "Incoming share could not be processed" : "Не удалось обработать входящий общий доступ",
- "Clipboard is not available" : "Буфер обмена недоступен",
- "Your Federated Cloud ID:" : "Ваш ID в федерации облачных хранилищ:",
- "Twitter" : "Твиттер",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Не удалось обработать входящий общий доступ"
},"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/federatedfilesharing/l10n/sc.js b/apps/federatedfilesharing/l10n/sc.js
index 6f27ddfcfc0..5627e20755b 100644
--- a/apps/federatedfilesharing/l10n/sc.js
+++ b/apps/federatedfilesharing/l10n/sc.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Federated file sharing" : "Cumpartzidura archìviu federadu",
"Provide federated file sharing across servers" : "Frunit una cumpartzidura de archìvios federados intre serbidores",
"Share with me through my #Nextcloud Federated Cloud ID" : "Cumpartzi cun megus tràmite s'ID meu de nue virtuale federada #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Cumpartzi cun megus tràmite Nextcloud",
"Copy to clipboard" : "Còpia in is punta de billete",
"Copied!" : "Copiadu!",
"Federated Cloud" : "Nue virtuale federada",
@@ -31,14 +32,11 @@ OC.L10N.register(
"formerly Twitter" : "in antis, Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Agiunghe a su situ web tuo",
- "Share with me via Nextcloud" : "Cumpartzi cun megus tràmite Nextcloud",
"HTML Code:" : "Còdighe HTML:",
"Cancel" : "Annulla",
"Add remote share" : "Agiunghe cumpartzidura remota",
"Remote share" : "Cumpartzidura remota",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Nche cheres agiùnghere sa cumpartzidura remota {name} dae {owner}@{remote}?",
- "Remote share password" : "Cumpartzidura remota crae",
- "Your Federated Cloud ID:" : "S'ID tuo de sa nue virtuale federada:",
- "Twitter" : "Twitter"
+ "Remote share password" : "Cumpartzidura remota crae"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/sc.json b/apps/federatedfilesharing/l10n/sc.json
index d5369689d76..ce8c708920d 100644
--- a/apps/federatedfilesharing/l10n/sc.json
+++ b/apps/federatedfilesharing/l10n/sc.json
@@ -20,6 +20,7 @@
"Federated file sharing" : "Cumpartzidura archìviu federadu",
"Provide federated file sharing across servers" : "Frunit una cumpartzidura de archìvios federados intre serbidores",
"Share with me through my #Nextcloud Federated Cloud ID" : "Cumpartzi cun megus tràmite s'ID meu de nue virtuale federada #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Cumpartzi cun megus tràmite Nextcloud",
"Copy to clipboard" : "Còpia in is punta de billete",
"Copied!" : "Copiadu!",
"Federated Cloud" : "Nue virtuale federada",
@@ -29,14 +30,11 @@
"formerly Twitter" : "in antis, Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Agiunghe a su situ web tuo",
- "Share with me via Nextcloud" : "Cumpartzi cun megus tràmite Nextcloud",
"HTML Code:" : "Còdighe HTML:",
"Cancel" : "Annulla",
"Add remote share" : "Agiunghe cumpartzidura remota",
"Remote share" : "Cumpartzidura remota",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Nche cheres agiùnghere sa cumpartzidura remota {name} dae {owner}@{remote}?",
- "Remote share password" : "Cumpartzidura remota crae",
- "Your Federated Cloud ID:" : "S'ID tuo de sa nue virtuale federada:",
- "Twitter" : "Twitter"
+ "Remote share password" : "Cumpartzidura remota crae"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/sk.js b/apps/federatedfilesharing/l10n/sk.js
index 6073f0e4df3..4be56153cd2 100644
--- a/apps/federatedfilesharing/l10n/sk.js
+++ b/apps/federatedfilesharing/l10n/sk.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "V predvolenom nastavení automaticky prijímať zdieľania z dôveryhodných federatívnych účtov a skupín",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Zdieľajte so mnou prostredníctvom môjho #identifikátora združeného cloudu Nextcloud, pozrite {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Sprístupnite mi obsah prostredníctvom môjho #identifikátora združeného cloudu Nextcloud",
+ "Share with me via Nextcloud" : "Sprístupnené cez Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID bol skopírovaný do schránky",
"Copy to clipboard" : "Skopírovať do schránky",
"Clipboard not available. Please copy the cloud ID manually." : "Schránka nie je prístupná. Prosím skopírujte cloud ID manuálne.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "predtým Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Pridať na svoju webstránku",
- "Share with me via Nextcloud" : "Sprístupnené cez Nextcloud",
"HTML Code:" : "HTML kód:",
"Cancel" : "Zrušiť",
"Add remote share" : "Pridať vzdialené úložisko",
"Remote share" : "Vzdialené úložisko",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete pridať vzdialené úložisko {name} patriace používateľovi {owner}@{remote}?",
"Remote share password" : "Heslo k vzdialenému úložisku",
- "Incoming share could not be processed" : "Prichádzajúce zdieľanie sa nepodarilo spracovať",
- "Clipboard is not available" : "Schránka nie je prístupná",
- "Your Federated Cloud ID:" : "Váš identifikátor federovaného cloudu:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Prichádzajúce zdieľanie sa nepodarilo spracovať"
},
"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/federatedfilesharing/l10n/sk.json b/apps/federatedfilesharing/l10n/sk.json
index 890fd0409c1..85949909ffb 100644
--- a/apps/federatedfilesharing/l10n/sk.json
+++ b/apps/federatedfilesharing/l10n/sk.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "V predvolenom nastavení automaticky prijímať zdieľania z dôveryhodných federatívnych účtov a skupín",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Zdieľajte so mnou prostredníctvom môjho #identifikátora združeného cloudu Nextcloud, pozrite {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Sprístupnite mi obsah prostredníctvom môjho #identifikátora združeného cloudu Nextcloud",
+ "Share with me via Nextcloud" : "Sprístupnené cez Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID bol skopírovaný do schránky",
"Copy to clipboard" : "Skopírovať do schránky",
"Clipboard not available. Please copy the cloud ID manually." : "Schránka nie je prístupná. Prosím skopírujte cloud ID manuálne.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "predtým Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Pridať na svoju webstránku",
- "Share with me via Nextcloud" : "Sprístupnené cez Nextcloud",
"HTML Code:" : "HTML kód:",
"Cancel" : "Zrušiť",
"Add remote share" : "Pridať vzdialené úložisko",
"Remote share" : "Vzdialené úložisko",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete pridať vzdialené úložisko {name} patriace používateľovi {owner}@{remote}?",
"Remote share password" : "Heslo k vzdialenému úložisku",
- "Incoming share could not be processed" : "Prichádzajúce zdieľanie sa nepodarilo spracovať",
- "Clipboard is not available" : "Schránka nie je prístupná",
- "Your Federated Cloud ID:" : "Váš identifikátor federovaného cloudu:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Prichádzajúce zdieľanie sa nepodarilo spracovať"
},"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/federatedfilesharing/l10n/sl.js b/apps/federatedfilesharing/l10n/sl.js
index 24d4c921d3f..7c54ab282bc 100644
--- a/apps/federatedfilesharing/l10n/sl.js
+++ b/apps/federatedfilesharing/l10n/sl.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Allow people to publish their data to a global and public address book" : "Dovoli uporabnikom objavljanje podatkov v splošnem in javnem imeniku",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Souporaba z določilom ID #Zveznega oblaka Nextcloud ; več podrobnosti je na naslovu {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Omogoči souporabo z #Določilom ID zveznega oblaka Nextcloud",
+ "Share with me via Nextcloud" : "Omogoči souporabo z oblaka Nextcloud",
"Cloud ID copied to the clipboard" : "Določilo ID oblaka je kopirano v odložišče",
"Copy to clipboard" : "Kopiraj v odložišče",
"Copied!" : "Kopirano!",
@@ -43,16 +44,11 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (prej Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Dodaj na spletišče",
- "Share with me via Nextcloud" : "Omogoči souporabo z oblaka Nextcloud",
"HTML Code:" : "Koda HTML:",
"Cancel" : "Prekliči",
"Add remote share" : "Dodaj oddaljeno mesto za souporabo",
"Remote share" : "Oddaljeno mesto za souporabo",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ali želite dodati oddaljeno mesto uporabe {name} uporabnika {owner}@{remote}?",
- "Remote share password" : "Geslo za oddaljeno souporabo",
- "Clipboard is not available" : "Odložišče ni na voljo",
- "Your Federated Cloud ID:" : "ID zveznega oblaka:",
- "Twitter" : "Račun Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Geslo za oddaljeno souporabo"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/federatedfilesharing/l10n/sl.json b/apps/federatedfilesharing/l10n/sl.json
index 5c03dc274f1..2daf8e8cdc0 100644
--- a/apps/federatedfilesharing/l10n/sl.json
+++ b/apps/federatedfilesharing/l10n/sl.json
@@ -31,6 +31,7 @@
"Allow people to publish their data to a global and public address book" : "Dovoli uporabnikom objavljanje podatkov v splošnem in javnem imeniku",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Souporaba z določilom ID #Zveznega oblaka Nextcloud ; več podrobnosti je na naslovu {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Omogoči souporabo z #Določilom ID zveznega oblaka Nextcloud",
+ "Share with me via Nextcloud" : "Omogoči souporabo z oblaka Nextcloud",
"Cloud ID copied to the clipboard" : "Določilo ID oblaka je kopirano v odložišče",
"Copy to clipboard" : "Kopiraj v odložišče",
"Copied!" : "Kopirano!",
@@ -41,16 +42,11 @@
"X (formerly Twitter)" : "X (prej Twitter)",
"Mastodon" : "Mastodon",
"Add to your website" : "Dodaj na spletišče",
- "Share with me via Nextcloud" : "Omogoči souporabo z oblaka Nextcloud",
"HTML Code:" : "Koda HTML:",
"Cancel" : "Prekliči",
"Add remote share" : "Dodaj oddaljeno mesto za souporabo",
"Remote share" : "Oddaljeno mesto za souporabo",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Ali želite dodati oddaljeno mesto uporabe {name} uporabnika {owner}@{remote}?",
- "Remote share password" : "Geslo za oddaljeno souporabo",
- "Clipboard is not available" : "Odložišče ni na voljo",
- "Your Federated Cloud ID:" : "ID zveznega oblaka:",
- "Twitter" : "Račun Twitter",
- "Diaspora" : "Diaspora"
+ "Remote share password" : "Geslo za oddaljeno souporabo"
},"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/federatedfilesharing/l10n/sq.js b/apps/federatedfilesharing/l10n/sq.js
deleted file mode 100644
index 584113fc99d..00000000000
--- a/apps/federatedfilesharing/l10n/sq.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Invalid Federated Cloud ID" : "ID Federated Cloud e pavlefshme",
- "Server to server sharing is not enabled on this server" : "Shpërndarja server në server nuk është e mundësuar në këtë server",
- "Couldn't establish a federated share." : "Nuk mund të vendosej një shpërndarje e federuar.",
- "Couldn't establish a federated share, maybe the password was wrong." : "Nuk mund të vendoset një shpërndarje e federuar, ndoshta fjalëkalimi ishte gabim.",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Kërkesa Ndarja Federative u dërgua, ju do të merrni një ftesë. Kontrolloni njoftimet tuaja.",
- "File is already shared with %s" : "Skedari është ndarë tashmë me %s",
- "Could not find share" : "Nuk mund të gjenim ndarjen",
- "Federated sharing" : "Ndarje e federuar",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Ju ",
- "You received {share} as a remote share from {user}" : "Ju morët {share} si një ndarje të largët nga {user}",
- "Accept" : "Pranoje",
- "Decline" : "Hidhe poshtë",
- "Federated Cloud Sharing" : "Ndarje Në Re të Federuar ",
- "Sharing" : "Ndarje",
- "Federated file sharing" : "Shpërndarja e skedarëve të federuar",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Ndani me mua përmes ID-së time për #Nextcloud Federated Cloud",
- "Copy to clipboard" : "Kopjo në dërrasë ",
- "Copied!" : "U kopjua!",
- "Federated Cloud" : "Re e Federuar",
- "Share it so your friends can share files with you:" : "Shërndajeni që miqtë tuaj mund të ndajnë skedarë me ju:",
- "Add to your website" : "Shtojeni te sajti juaj",
- "Share with me via Nextcloud" : "Ndani me mua përmes Nextcloud-it",
- "HTML Code:" : "Kod HTML:",
- "Cancel" : "Anulo",
- "Add remote share" : "Shto shpëendarje në distancë",
- "Remote share" : "Ndarje në largësi",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Doni që të shtoni ndarjen në remote {name} nga {owner}@{remote}?",
- "Remote share password" : "Fjalëkalim ndarjeje të largët",
- "Your Federated Cloud ID:" : "ID-ja juaj për Re të Federuar:",
- "Twitter" : "Twitter"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/sq.json b/apps/federatedfilesharing/l10n/sq.json
deleted file mode 100644
index c3363585b44..00000000000
--- a/apps/federatedfilesharing/l10n/sq.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "Invalid Federated Cloud ID" : "ID Federated Cloud e pavlefshme",
- "Server to server sharing is not enabled on this server" : "Shpërndarja server në server nuk është e mundësuar në këtë server",
- "Couldn't establish a federated share." : "Nuk mund të vendosej një shpërndarje e federuar.",
- "Couldn't establish a federated share, maybe the password was wrong." : "Nuk mund të vendoset një shpërndarje e federuar, ndoshta fjalëkalimi ishte gabim.",
- "Federated Share request sent, you will receive an invitation. Check your notifications." : "Kërkesa Ndarja Federative u dërgua, ju do të merrni një ftesë. Kontrolloni njoftimet tuaja.",
- "File is already shared with %s" : "Skedari është ndarë tashmë me %s",
- "Could not find share" : "Nuk mund të gjenim ndarjen",
- "Federated sharing" : "Ndarje e federuar",
- "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Ju ",
- "You received {share} as a remote share from {user}" : "Ju morët {share} si një ndarje të largët nga {user}",
- "Accept" : "Pranoje",
- "Decline" : "Hidhe poshtë",
- "Federated Cloud Sharing" : "Ndarje Në Re të Federuar ",
- "Sharing" : "Ndarje",
- "Federated file sharing" : "Shpërndarja e skedarëve të federuar",
- "Share with me through my #Nextcloud Federated Cloud ID" : "Ndani me mua përmes ID-së time për #Nextcloud Federated Cloud",
- "Copy to clipboard" : "Kopjo në dërrasë ",
- "Copied!" : "U kopjua!",
- "Federated Cloud" : "Re e Federuar",
- "Share it so your friends can share files with you:" : "Shërndajeni që miqtë tuaj mund të ndajnë skedarë me ju:",
- "Add to your website" : "Shtojeni te sajti juaj",
- "Share with me via Nextcloud" : "Ndani me mua përmes Nextcloud-it",
- "HTML Code:" : "Kod HTML:",
- "Cancel" : "Anulo",
- "Add remote share" : "Shto shpëendarje në distancë",
- "Remote share" : "Ndarje në largësi",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Doni që të shtoni ndarjen në remote {name} nga {owner}@{remote}?",
- "Remote share password" : "Fjalëkalim ndarjeje të largët",
- "Your Federated Cloud ID:" : "ID-ja juaj për Re të Federuar:",
- "Twitter" : "Twitter"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/sr.js b/apps/federatedfilesharing/l10n/sr.js
index 5d9a371c1d5..1ebc2c5b9a0 100644
--- a/apps/federatedfilesharing/l10n/sr.js
+++ b/apps/federatedfilesharing/l10n/sr.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Аутоматско подразумевано прихватање дељења са здружених налога којима се верује и група",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Делите самном помоћу мог #Nextcloud Federated Cloud ID, погледајте {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Дели са мном преко мог #Некстклауд Здруженог облака",
+ "Share with me via Nextcloud" : "Дели са мном преко Некстклауда",
"Cloud ID copied to the clipboard" : "Cloud ID је копиран у клипборд",
"Copy to clipboard" : "Копирај у оставу",
"Clipboard not available. Please copy the cloud ID manually." : "Клипборд није доступан. Молимо вас да ручно копирате ID облака.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "бивши Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Додај на свој веб сајт",
- "Share with me via Nextcloud" : "Дели са мном преко Некстклауда",
"HTML Code:" : "ХТМЛ кôд:",
"Cancel" : "Одустани",
"Add remote share" : "Додај удаљено дељење",
"Remote share" : "Удаљено дељење",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Да ли желите да додате удаљено дељење {name} од {owner}@{remote}?",
"Remote share password" : "Лозинка удаљеног дељења",
- "Incoming share could not be processed" : "Долазеће дељење не може да се обради",
- "Clipboard is not available" : "Клипборд није доступан",
- "Your Federated Cloud ID:" : "ИД вашег здруженог облака:",
- "Twitter" : "Твитер",
- "Diaspora" : "Дијаспора"
+ "Incoming share could not be processed" : "Долазеће дељење не може да се обради"
},
"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/federatedfilesharing/l10n/sr.json b/apps/federatedfilesharing/l10n/sr.json
index 06283f2f660..dca77da2ec3 100644
--- a/apps/federatedfilesharing/l10n/sr.json
+++ b/apps/federatedfilesharing/l10n/sr.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Аутоматско подразумевано прихватање дељења са здружених налога којима се верује и група",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Делите самном помоћу мог #Nextcloud Federated Cloud ID, погледајте {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Дели са мном преко мог #Некстклауд Здруженог облака",
+ "Share with me via Nextcloud" : "Дели са мном преко Некстклауда",
"Cloud ID copied to the clipboard" : "Cloud ID је копиран у клипборд",
"Copy to clipboard" : "Копирај у оставу",
"Clipboard not available. Please copy the cloud ID manually." : "Клипборд није доступан. Молимо вас да ручно копирате ID облака.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "бивши Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Додај на свој веб сајт",
- "Share with me via Nextcloud" : "Дели са мном преко Некстклауда",
"HTML Code:" : "ХТМЛ кôд:",
"Cancel" : "Одустани",
"Add remote share" : "Додај удаљено дељење",
"Remote share" : "Удаљено дељење",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Да ли желите да додате удаљено дељење {name} од {owner}@{remote}?",
"Remote share password" : "Лозинка удаљеног дељења",
- "Incoming share could not be processed" : "Долазеће дељење не може да се обради",
- "Clipboard is not available" : "Клипборд није доступан",
- "Your Federated Cloud ID:" : "ИД вашег здруженог облака:",
- "Twitter" : "Твитер",
- "Diaspora" : "Дијаспора"
+ "Incoming share could not be processed" : "Долазеће дељење не може да се обради"
},"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/federatedfilesharing/l10n/sr@latin.js b/apps/federatedfilesharing/l10n/sr@latin.js
deleted file mode 100644
index b06f53393e0..00000000000
--- a/apps/federatedfilesharing/l10n/sr@latin.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Allow users on this server to send shares to other servers" : "Dozvoli korisnicima na ovom serveru da šalju deljene resurse na druge servere",
- "Allow users on this server to receive shares from other servers" : "Dozvoli korisnicima na ovom serveru da primaju deljene resurse sa drugih servera"
-},
-"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/federatedfilesharing/l10n/sr@latin.json b/apps/federatedfilesharing/l10n/sr@latin.json
deleted file mode 100644
index 64463cf1ebc..00000000000
--- a/apps/federatedfilesharing/l10n/sr@latin.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Allow users on this server to send shares to other servers" : "Dozvoli korisnicima na ovom serveru da šalju deljene resurse na druge servere",
- "Allow users on this server to receive shares from other servers" : "Dozvoli korisnicima na ovom serveru da primaju deljene resurse sa drugih servera"
-},"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/federatedfilesharing/l10n/sv.js b/apps/federatedfilesharing/l10n/sv.js
index 5f41553d886..ebb6a7f09c4 100644
--- a/apps/federatedfilesharing/l10n/sv.js
+++ b/apps/federatedfilesharing/l10n/sv.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Acceptera automatiskt delningar från betrodda federerade konton och grupper som standard",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Dela med mig genom mitt #Nextcloud federerade moln-ID, se {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Dela med mig genom mitt #Nextcloud federerade moln-ID",
+ "Share with me via Nextcloud" : "Dela med mig via Nextcloud",
"Cloud ID copied to the clipboard" : "Moln-ID kopierades till urklippet",
"Copy to clipboard" : "Kopiera till urklipp",
"Clipboard not available. Please copy the cloud ID manually." : "Urklipp är inte tillgängligt. Kopiera moln-ID manuellt.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "tidigare Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Lägg till på din hemsida",
- "Share with me via Nextcloud" : "Dela med mig via Nextcloud",
"HTML Code:" : "HTML Kod:",
"Cancel" : "Avbryt",
"Add remote share" : "Lägg till extern delning",
"Remote share" : "Extern delning",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Vill du lägga till extern delning {name} från {owner}@{remote}?",
"Remote share password" : "Lösenord för extern delning",
- "Incoming share could not be processed" : "Inkommande delning kunde inte behandlas",
- "Clipboard is not available" : "Urklipp är inte tillgängligt",
- "Your Federated Cloud ID:" : "Ditt federerade moln-ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Inkommande delning kunde inte behandlas"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/sv.json b/apps/federatedfilesharing/l10n/sv.json
index 112e9e60a54..835f401789a 100644
--- a/apps/federatedfilesharing/l10n/sv.json
+++ b/apps/federatedfilesharing/l10n/sv.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Acceptera automatiskt delningar från betrodda federerade konton och grupper som standard",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Dela med mig genom mitt #Nextcloud federerade moln-ID, se {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Dela med mig genom mitt #Nextcloud federerade moln-ID",
+ "Share with me via Nextcloud" : "Dela med mig via Nextcloud",
"Cloud ID copied to the clipboard" : "Moln-ID kopierades till urklippet",
"Copy to clipboard" : "Kopiera till urklipp",
"Clipboard not available. Please copy the cloud ID manually." : "Urklipp är inte tillgängligt. Kopiera moln-ID manuellt.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "tidigare Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Lägg till på din hemsida",
- "Share with me via Nextcloud" : "Dela med mig via Nextcloud",
"HTML Code:" : "HTML Kod:",
"Cancel" : "Avbryt",
"Add remote share" : "Lägg till extern delning",
"Remote share" : "Extern delning",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Vill du lägga till extern delning {name} från {owner}@{remote}?",
"Remote share password" : "Lösenord för extern delning",
- "Incoming share could not be processed" : "Inkommande delning kunde inte behandlas",
- "Clipboard is not available" : "Urklipp är inte tillgängligt",
- "Your Federated Cloud ID:" : "Ditt federerade moln-ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Inkommande delning kunde inte behandlas"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/th.js b/apps/federatedfilesharing/l10n/th.js
deleted file mode 100644
index 1c9351ff6ee..00000000000
--- a/apps/federatedfilesharing/l10n/th.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "federatedfilesharing",
- {
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "คุณต้องการเพิ่มการแชร์ระยะไกล {name} จาก {owner}@{remote} หรือไม่?",
- "Remote share" : "การแชร์ระยะไกล",
- "Remote share password" : "รหัสผ่านการแชร์ระยะไกล",
- "Cancel" : "ยกเลิก",
- "Add remote share" : "เพิ่มการแชร์ระยะไกล",
- "Invalid Federated Cloud ID" : "ID คลาวด์ที่ติดต่อกับภายนอกไม่ถูกต้อง",
- "Server to server sharing is not enabled on this server" : "เซิร์ฟเวอร์นี้ไม่ได้เปิดใช้การแชร์จากเซิร์ฟเวอร์ไปยังเซิร์ฟเวอร์",
- "Not allowed to create a federated share with the same user" : "ไม่อนุญาตให้สร้างแชร์ที่ติดต่อกับภายนอกกับผู้ใช้เดียวกัน",
- "Federated sharing" : "การแชร์ที่ติดต่อกับภายนอก",
- "Accept" : "ยอมรับ",
- "Decline" : "ปฏิเสธ",
- "Federated Cloud Sharing" : "การแชร์บนคลาวด์ที่ติดต่อกับภายนอก",
- "Sharing" : "การแชร์",
- "Allow users on this server to receive shares from other servers" : "อนุญาตให้ผู้ใช้บนเซิร์ฟเวอร์นี้รับการแชร์จากเซิร์ฟเวอร์อื่น",
- "Federated Cloud" : "คลาวด์ที่ติดต่อกับภายนอก",
- "Your Federated Cloud ID:" : "ID คลาวด์ที่ติดต่อกับภายนอกของคุณ:",
- "Twitter" : "ทวิตเตอร์",
- "Add to your website" : "เพิ่มไปยังเว็บไซต์",
- "Share with me via Nextcloud" : "แชร์กับฉันผ่าน Nextcloud",
- "HTML Code:" : "โค้ด HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "แชร์กับฉันผ่าน ID คลาวด์ที่ติดต่อกับภายนอกของ #Nextcloud",
- "Copy to clipboard" : "คัดลอกไปยังคลิปบอร์ด",
- "Clipboard is not available" : "คลิปบอร์ดไม่พร้อมใช้งาน",
- "Copied!" : "คัดลอกแล้ว!",
- "Copy" : "คัดลอก",
- "Not supported!" : "ไม่สนับสนุน!",
- "Press ⌘-C to copy." : "กด ⌘-C เพื่อคัดลอก",
- "Press Ctrl-C to copy." : "กด Ctrl-C เพื่อคัดลอก",
- "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "แชร์กับฉันผ่าน ID คลาวด์ที่ติดต่อกับภายนอกของ #Nextcloud ดูได้ที่ %s",
- "Open documentation" : "เปิดเอกสารประกอบ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/federatedfilesharing/l10n/th.json b/apps/federatedfilesharing/l10n/th.json
deleted file mode 100644
index d084782d52f..00000000000
--- a/apps/federatedfilesharing/l10n/th.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "คุณต้องการเพิ่มการแชร์ระยะไกล {name} จาก {owner}@{remote} หรือไม่?",
- "Remote share" : "การแชร์ระยะไกล",
- "Remote share password" : "รหัสผ่านการแชร์ระยะไกล",
- "Cancel" : "ยกเลิก",
- "Add remote share" : "เพิ่มการแชร์ระยะไกล",
- "Invalid Federated Cloud ID" : "ID คลาวด์ที่ติดต่อกับภายนอกไม่ถูกต้อง",
- "Server to server sharing is not enabled on this server" : "เซิร์ฟเวอร์นี้ไม่ได้เปิดใช้การแชร์จากเซิร์ฟเวอร์ไปยังเซิร์ฟเวอร์",
- "Not allowed to create a federated share with the same user" : "ไม่อนุญาตให้สร้างแชร์ที่ติดต่อกับภายนอกกับผู้ใช้เดียวกัน",
- "Federated sharing" : "การแชร์ที่ติดต่อกับภายนอก",
- "Accept" : "ยอมรับ",
- "Decline" : "ปฏิเสธ",
- "Federated Cloud Sharing" : "การแชร์บนคลาวด์ที่ติดต่อกับภายนอก",
- "Sharing" : "การแชร์",
- "Allow users on this server to receive shares from other servers" : "อนุญาตให้ผู้ใช้บนเซิร์ฟเวอร์นี้รับการแชร์จากเซิร์ฟเวอร์อื่น",
- "Federated Cloud" : "คลาวด์ที่ติดต่อกับภายนอก",
- "Your Federated Cloud ID:" : "ID คลาวด์ที่ติดต่อกับภายนอกของคุณ:",
- "Twitter" : "ทวิตเตอร์",
- "Add to your website" : "เพิ่มไปยังเว็บไซต์",
- "Share with me via Nextcloud" : "แชร์กับฉันผ่าน Nextcloud",
- "HTML Code:" : "โค้ด HTML:",
- "Share with me through my #Nextcloud Federated Cloud ID" : "แชร์กับฉันผ่าน ID คลาวด์ที่ติดต่อกับภายนอกของ #Nextcloud",
- "Copy to clipboard" : "คัดลอกไปยังคลิปบอร์ด",
- "Clipboard is not available" : "คลิปบอร์ดไม่พร้อมใช้งาน",
- "Copied!" : "คัดลอกแล้ว!",
- "Copy" : "คัดลอก",
- "Not supported!" : "ไม่สนับสนุน!",
- "Press ⌘-C to copy." : "กด ⌘-C เพื่อคัดลอก",
- "Press Ctrl-C to copy." : "กด Ctrl-C เพื่อคัดลอก",
- "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "แชร์กับฉันผ่าน ID คลาวด์ที่ติดต่อกับภายนอกของ #Nextcloud ดูได้ที่ %s",
- "Open documentation" : "เปิดเอกสารประกอบ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/tr.js b/apps/federatedfilesharing/l10n/tr.js
index 98117d24e86..aab50a4a5e9 100644
--- a/apps/federatedfilesharing/l10n/tr.js
+++ b/apps/federatedfilesharing/l10n/tr.js
@@ -2,7 +2,7 @@ OC.L10N.register(
"federatedfilesharing",
{
"Invalid Federated Cloud ID" : "Birleşik bulut kimliği geçersiz",
- "Server to server sharing is not enabled on this server" : "Bu sunucuda, sunucudan sunucuya paylaşım özelliği kullanıma alınmamış",
+ "Server to server sharing is not enabled on this server" : "Bu sunucuda, sunucudan sunucuya paylaşım özelliği kapalı",
"Couldn't establish a federated share." : "Birleşik bir paylaşım oluşturulamadı.",
"Couldn't establish a federated share, maybe the password was wrong." : "Birleşik bir paylaşım oluşturulamadı. Parola yanlış olabilir.",
"Federated Share request sent, you will receive an invitation. Check your notifications." : "Birleşik paylaşım isteği gönderildi. Bir davet alacaksınız. Bildirimlerinizi denetleyin.",
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "Varsayılan olarak güvenilir birleşim hesaplarından ve gruplardan gelen paylaşımlar otomatik olarak kabul edilsin",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "#Nextcloud birleşik bulut kimliğim ile paylaş, {url} adresine bakın",
"Share with me through my #Nextcloud Federated Cloud ID" : "#Nextcloud birleşik bulut kimliğim üzerinden benimle paylaş",
+ "Share with me via Nextcloud" : "Benimle Nextcloud üzerinden paylaşın",
"Cloud ID copied to the clipboard" : "Bulut kimliği panoya kopyalandı",
"Copy to clipboard" : "Panoya kopyala",
"Clipboard not available. Please copy the cloud ID manually." : "Pano kullanılamıyor. Lütfen bulut kimliğini el ile kopyalayın.",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "eski Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Sitenize ekleyin",
- "Share with me via Nextcloud" : "Benimle Nextcloud üzerinden paylaşın",
"HTML Code:" : "HTML kodu:",
"Cancel" : "İptal",
"Add remote share" : "Uzak paylaşım ekle",
"Remote share" : "Uzak paylaşım",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} konumundan {name} uzak paylaşımını eklemek istiyor musunuz?",
"Remote share password" : "Uzak paylaşım parolası",
- "Incoming share could not be processed" : "Gelen paylaşım işlenemedi",
- "Clipboard is not available" : "Pano kullanılamıyor",
- "Your Federated Cloud ID:" : "Birleşik bulut kimliğiniz:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Gelen paylaşım işlenemedi"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/federatedfilesharing/l10n/tr.json b/apps/federatedfilesharing/l10n/tr.json
index 264a1d6e2da..f8c47cffd6e 100644
--- a/apps/federatedfilesharing/l10n/tr.json
+++ b/apps/federatedfilesharing/l10n/tr.json
@@ -1,6 +1,6 @@
{ "translations": {
"Invalid Federated Cloud ID" : "Birleşik bulut kimliği geçersiz",
- "Server to server sharing is not enabled on this server" : "Bu sunucuda, sunucudan sunucuya paylaşım özelliği kullanıma alınmamış",
+ "Server to server sharing is not enabled on this server" : "Bu sunucuda, sunucudan sunucuya paylaşım özelliği kapalı",
"Couldn't establish a federated share." : "Birleşik bir paylaşım oluşturulamadı.",
"Couldn't establish a federated share, maybe the password was wrong." : "Birleşik bir paylaşım oluşturulamadı. Parola yanlış olabilir.",
"Federated Share request sent, you will receive an invitation. Check your notifications." : "Birleşik paylaşım isteği gönderildi. Bir davet alacaksınız. Bildirimlerinizi denetleyin.",
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "Varsayılan olarak güvenilir birleşim hesaplarından ve gruplardan gelen paylaşımlar otomatik olarak kabul edilsin",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "#Nextcloud birleşik bulut kimliğim ile paylaş, {url} adresine bakın",
"Share with me through my #Nextcloud Federated Cloud ID" : "#Nextcloud birleşik bulut kimliğim üzerinden benimle paylaş",
+ "Share with me via Nextcloud" : "Benimle Nextcloud üzerinden paylaşın",
"Cloud ID copied to the clipboard" : "Bulut kimliği panoya kopyalandı",
"Copy to clipboard" : "Panoya kopyala",
"Clipboard not available. Please copy the cloud ID manually." : "Pano kullanılamıyor. Lütfen bulut kimliğini el ile kopyalayın.",
@@ -57,17 +58,12 @@
"formerly Twitter" : "eski Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "Sitenize ekleyin",
- "Share with me via Nextcloud" : "Benimle Nextcloud üzerinden paylaşın",
"HTML Code:" : "HTML kodu:",
"Cancel" : "İptal",
"Add remote share" : "Uzak paylaşım ekle",
"Remote share" : "Uzak paylaşım",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote} konumundan {name} uzak paylaşımını eklemek istiyor musunuz?",
"Remote share password" : "Uzak paylaşım parolası",
- "Incoming share could not be processed" : "Gelen paylaşım işlenemedi",
- "Clipboard is not available" : "Pano kullanılamıyor",
- "Your Federated Cloud ID:" : "Birleşik bulut kimliğiniz:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "Gelen paylaşım işlenemedi"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ug.js b/apps/federatedfilesharing/l10n/ug.js
index 8578e614f13..453ede753cb 100644
--- a/apps/federatedfilesharing/l10n/ug.js
+++ b/apps/federatedfilesharing/l10n/ug.js
@@ -32,6 +32,7 @@ OC.L10N.register(
"Allow people to publish their data to a global and public address book" : "كىشىلەرنىڭ سانلىق مەلۇماتلىرىنى دۇنياۋى ۋە ئاممىۋى ئادرېس دەپتىرىگە ئېلان قىلىشىغا يول قويۇڭ",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "#Nextcloud فېدېراتسىيە بۇلۇت كىملىكىم ئارقىلىق مەن بىلەن ئورتاقلىشىڭ ، {url} see نى كۆرۈڭ",
"Share with me through my #Nextcloud Federated Cloud ID" : "مېنىڭ # كېيىنكى بۇلۇت فېدېراتسىيە بۇلۇت كىملىكىم ئارقىلىق مەن بىلەن ئورتاقلىشىڭ",
+ "Share with me via Nextcloud" : "Nextcloud ئارقىلىق مەن بىلەن ئورتاقلىشىڭ",
"Cloud ID copied to the clipboard" : "بۇلۇت كىملىكى چاپلاش تاختىسىغا كۆچۈرۈلدى",
"Copy to clipboard" : "چاپلاش تاختىسىغا كۆچۈرۈڭ",
"Clipboard not available. Please copy the cloud ID manually." : "چاپلاش تاختىسى يوق. بۇلۇت كىملىكىنى قولدا كۆچۈرۈڭ.",
@@ -45,17 +46,12 @@ OC.L10N.register(
"formerly Twitter" : "ئىلگىرى Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "تور بېتىڭىزگە قوشۇڭ",
- "Share with me via Nextcloud" : "Nextcloud ئارقىلىق مەن بىلەن ئورتاقلىشىڭ",
"HTML Code:" : "HTML كودى:",
"Cancel" : "ۋاز كەچ",
"Add remote share" : "يىراقتىن ئورتاقلىشىش",
"Remote share" : "يىراقتىن ئورتاقلىشىش",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{remote} @ {owner} دىن يىراقتىن ئورتاقلىشىش {name} add نى قوشماقچىمۇ؟",
"Remote share password" : "يىراقتىن ئورتاقلىشىش پارولى",
- "Incoming share could not be processed" : "كەلگەن ئۈلۈشنى بىر تەرەپ قىلغىلى بولمايدۇ",
- "Clipboard is not available" : "چاپلاش تاختىسى يوق",
- "Your Federated Cloud ID:" : "فېدېراتسىيە بۇلۇت كىملىكىڭىز:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "كەلگەن ئۈلۈشنى بىر تەرەپ قىلغىلى بولمايدۇ"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/ug.json b/apps/federatedfilesharing/l10n/ug.json
index 6ece5dcd0a1..aa74fb54d81 100644
--- a/apps/federatedfilesharing/l10n/ug.json
+++ b/apps/federatedfilesharing/l10n/ug.json
@@ -30,6 +30,7 @@
"Allow people to publish their data to a global and public address book" : "كىشىلەرنىڭ سانلىق مەلۇماتلىرىنى دۇنياۋى ۋە ئاممىۋى ئادرېس دەپتىرىگە ئېلان قىلىشىغا يول قويۇڭ",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "#Nextcloud فېدېراتسىيە بۇلۇت كىملىكىم ئارقىلىق مەن بىلەن ئورتاقلىشىڭ ، {url} see نى كۆرۈڭ",
"Share with me through my #Nextcloud Federated Cloud ID" : "مېنىڭ # كېيىنكى بۇلۇت فېدېراتسىيە بۇلۇت كىملىكىم ئارقىلىق مەن بىلەن ئورتاقلىشىڭ",
+ "Share with me via Nextcloud" : "Nextcloud ئارقىلىق مەن بىلەن ئورتاقلىشىڭ",
"Cloud ID copied to the clipboard" : "بۇلۇت كىملىكى چاپلاش تاختىسىغا كۆچۈرۈلدى",
"Copy to clipboard" : "چاپلاش تاختىسىغا كۆچۈرۈڭ",
"Clipboard not available. Please copy the cloud ID manually." : "چاپلاش تاختىسى يوق. بۇلۇت كىملىكىنى قولدا كۆچۈرۈڭ.",
@@ -43,17 +44,12 @@
"formerly Twitter" : "ئىلگىرى Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "تور بېتىڭىزگە قوشۇڭ",
- "Share with me via Nextcloud" : "Nextcloud ئارقىلىق مەن بىلەن ئورتاقلىشىڭ",
"HTML Code:" : "HTML كودى:",
"Cancel" : "ۋاز كەچ",
"Add remote share" : "يىراقتىن ئورتاقلىشىش",
"Remote share" : "يىراقتىن ئورتاقلىشىش",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "{remote} @ {owner} دىن يىراقتىن ئورتاقلىشىش {name} add نى قوشماقچىمۇ؟",
"Remote share password" : "يىراقتىن ئورتاقلىشىش پارولى",
- "Incoming share could not be processed" : "كەلگەن ئۈلۈشنى بىر تەرەپ قىلغىلى بولمايدۇ",
- "Clipboard is not available" : "چاپلاش تاختىسى يوق",
- "Your Federated Cloud ID:" : "فېدېراتسىيە بۇلۇت كىملىكىڭىز:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "كەلگەن ئۈلۈشنى بىر تەرەپ قىلغىلى بولمايدۇ"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/uk.js b/apps/federatedfilesharing/l10n/uk.js
index 7aa1f2671ab..c3eaf2a63a4 100644
--- a/apps/federatedfilesharing/l10n/uk.js
+++ b/apps/federatedfilesharing/l10n/uk.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Allow people to publish their data to a global and public address book" : "Дозволити користувачам розміщувати власні дані у глобальній публічній адресній книзі",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Поділіться зі мною через мій #Nextcloud Federated Cloud ID, див. {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Поділіться зі мною через мій #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Поділися зі мною через Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID скопійовано в буфер обміну",
"Copy to clipboard" : "Копіювати до буферу обміну",
"Copied!" : "Скопійовано!",
@@ -42,16 +43,11 @@ OC.L10N.register(
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (раніше відома як Twitter)",
"Add to your website" : "Додати на ваш вебсайт",
- "Share with me via Nextcloud" : "Поділися зі мною через Nextcloud",
"HTML Code:" : "Код HTML:",
"Cancel" : "Скасувати",
"Add remote share" : "Додати віддалений каталог",
"Remote share" : "Віддалений каталог",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Додати віддалений каталог {name} з {owner}@{remote}?",
- "Remote share password" : "Пароль для віддаленого каталогу",
- "Clipboard is not available" : "Буфер обміну недоступний",
- "Your Federated Cloud ID:" : "Ваш ідентифікатор Federated Cloud:",
- "Twitter" : "Twitter",
- "Diaspora" : "Діаспора"
+ "Remote share password" : "Пароль для віддаленого каталогу"
},
"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/federatedfilesharing/l10n/uk.json b/apps/federatedfilesharing/l10n/uk.json
index 0c401f759d7..ddbca33da82 100644
--- a/apps/federatedfilesharing/l10n/uk.json
+++ b/apps/federatedfilesharing/l10n/uk.json
@@ -31,6 +31,7 @@
"Allow people to publish their data to a global and public address book" : "Дозволити користувачам розміщувати власні дані у глобальній публічній адресній книзі",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Поділіться зі мною через мій #Nextcloud Federated Cloud ID, див. {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "Поділіться зі мною через мій #Nextcloud Federated Cloud ID",
+ "Share with me via Nextcloud" : "Поділися зі мною через Nextcloud",
"Cloud ID copied to the clipboard" : "Cloud ID скопійовано в буфер обміну",
"Copy to clipboard" : "Копіювати до буферу обміну",
"Copied!" : "Скопійовано!",
@@ -40,16 +41,11 @@
"Facebook" : "Facebook",
"X (formerly Twitter)" : "X (раніше відома як Twitter)",
"Add to your website" : "Додати на ваш вебсайт",
- "Share with me via Nextcloud" : "Поділися зі мною через Nextcloud",
"HTML Code:" : "Код HTML:",
"Cancel" : "Скасувати",
"Add remote share" : "Додати віддалений каталог",
"Remote share" : "Віддалений каталог",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Додати віддалений каталог {name} з {owner}@{remote}?",
- "Remote share password" : "Пароль для віддаленого каталогу",
- "Clipboard is not available" : "Буфер обміну недоступний",
- "Your Federated Cloud ID:" : "Ваш ідентифікатор Federated Cloud:",
- "Twitter" : "Twitter",
- "Diaspora" : "Діаспора"
+ "Remote share password" : "Пароль для віддаленого каталогу"
},"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/federatedfilesharing/l10n/zh_CN.js b/apps/federatedfilesharing/l10n/zh_CN.js
index 86046f9734a..fdc39266e6c 100644
--- a/apps/federatedfilesharing/l10n/zh_CN.js
+++ b/apps/federatedfilesharing/l10n/zh_CN.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "默认自动接受来自受信任的联合账号和群组的共享",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "通过我的 #Nextcloud 联合云 ID 与我分享文件,链接 {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "通过我的 #Nextcloud 联合云 ID 与我共享",
+ "Share with me via Nextcloud" : "通过联合云与我共享",
"Cloud ID copied to the clipboard" : "云端 ID 已复制至剪切板",
"Copy to clipboard" : "复制到剪贴板",
"Clipboard not available. Please copy the cloud ID manually." : "剪贴板不可用,请手动复制云 ID。",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "原 Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "添加到您的网站",
- "Share with me via Nextcloud" : "通过联合云与我共享",
"HTML Code:" : "HTML 代码:",
"Cancel" : "取消",
"Add remote share" : "添加远程共享",
"Remote share" : "远程共享",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "您想要添加来自 {owner}@{remote}的远程共享 {name} 吗?",
"Remote share password" : "远程共享密码",
- "Incoming share could not be processed" : "无法处理传入共享",
- "Clipboard is not available" : "剪贴板不可用",
- "Your Federated Cloud ID:" : "您的联合云 ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "无法处理传入共享"
},
"nplurals=1; plural=0;");
diff --git a/apps/federatedfilesharing/l10n/zh_CN.json b/apps/federatedfilesharing/l10n/zh_CN.json
index 718d43e69e1..437d83e46db 100644
--- a/apps/federatedfilesharing/l10n/zh_CN.json
+++ b/apps/federatedfilesharing/l10n/zh_CN.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "默认自动接受来自受信任的联合账号和群组的共享",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "通过我的 #Nextcloud 联合云 ID 与我分享文件,链接 {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "通过我的 #Nextcloud 联合云 ID 与我共享",
+ "Share with me via Nextcloud" : "通过联合云与我共享",
"Cloud ID copied to the clipboard" : "云端 ID 已复制至剪切板",
"Copy to clipboard" : "复制到剪贴板",
"Clipboard not available. Please copy the cloud ID manually." : "剪贴板不可用,请手动复制云 ID。",
@@ -57,17 +58,12 @@
"formerly Twitter" : "原 Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "添加到您的网站",
- "Share with me via Nextcloud" : "通过联合云与我共享",
"HTML Code:" : "HTML 代码:",
"Cancel" : "取消",
"Add remote share" : "添加远程共享",
"Remote share" : "远程共享",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "您想要添加来自 {owner}@{remote}的远程共享 {name} 吗?",
"Remote share password" : "远程共享密码",
- "Incoming share could not be processed" : "无法处理传入共享",
- "Clipboard is not available" : "剪贴板不可用",
- "Your Federated Cloud ID:" : "您的联合云 ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "无法处理传入共享"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/zh_HK.js b/apps/federatedfilesharing/l10n/zh_HK.js
index a0b8ff09c5c..82a15b05bd2 100644
--- a/apps/federatedfilesharing/l10n/zh_HK.js
+++ b/apps/federatedfilesharing/l10n/zh_HK.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "默認自動接受來自可信聯邦帳戶和組的分享。",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "可透過我的 #Nextcloud 聯盟雲端 ID 與我分享,請見 {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "可透過我的 #Nextcloud 聯盟雲端 ID 與我分享",
+ "Share with me via Nextcloud" : "透過 Nextcloud 與我分享",
"Cloud ID copied to the clipboard" : "已複製 Cloud ID 至剪貼板",
"Copy to clipboard" : "複製到剪貼板",
"Clipboard not available. Please copy the cloud ID manually." : "剪貼板不可用。請人手複製 cloud ID。",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "前身為 Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "新增至您的網站",
- "Share with me via Nextcloud" : "透過 Nextcloud 與我分享",
"HTML Code:" : "HTML 代碼:",
"Cancel" : "取消",
"Add remote share" : "添加遠端分享",
"Remote share" : "遠端分享",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "是否要加入來自 {owner}@{remote} 的遠端分享 {name} ?",
"Remote share password" : "遠端分享密碼",
- "Incoming share could not be processed" : "無法處理傳入的分享",
- "Clipboard is not available" : "剪貼板不可用",
- "Your Federated Cloud ID:" : "您的雲端聯盟 ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "無法處理傳入的分享"
},
"nplurals=1; plural=0;");
diff --git a/apps/federatedfilesharing/l10n/zh_HK.json b/apps/federatedfilesharing/l10n/zh_HK.json
index 4484737b12f..37269a529a3 100644
--- a/apps/federatedfilesharing/l10n/zh_HK.json
+++ b/apps/federatedfilesharing/l10n/zh_HK.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "默認自動接受來自可信聯邦帳戶和組的分享。",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "可透過我的 #Nextcloud 聯盟雲端 ID 與我分享,請見 {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "可透過我的 #Nextcloud 聯盟雲端 ID 與我分享",
+ "Share with me via Nextcloud" : "透過 Nextcloud 與我分享",
"Cloud ID copied to the clipboard" : "已複製 Cloud ID 至剪貼板",
"Copy to clipboard" : "複製到剪貼板",
"Clipboard not available. Please copy the cloud ID manually." : "剪貼板不可用。請人手複製 cloud ID。",
@@ -57,17 +58,12 @@
"formerly Twitter" : "前身為 Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "新增至您的網站",
- "Share with me via Nextcloud" : "透過 Nextcloud 與我分享",
"HTML Code:" : "HTML 代碼:",
"Cancel" : "取消",
"Add remote share" : "添加遠端分享",
"Remote share" : "遠端分享",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "是否要加入來自 {owner}@{remote} 的遠端分享 {name} ?",
"Remote share password" : "遠端分享密碼",
- "Incoming share could not be processed" : "無法處理傳入的分享",
- "Clipboard is not available" : "剪貼板不可用",
- "Your Federated Cloud ID:" : "您的雲端聯盟 ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "無法處理傳入的分享"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/zh_TW.js b/apps/federatedfilesharing/l10n/zh_TW.js
index ec85000a468..8bd83454a64 100644
--- a/apps/federatedfilesharing/l10n/zh_TW.js
+++ b/apps/federatedfilesharing/l10n/zh_TW.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Automatically accept shares from trusted federated accounts and groups by default" : "預設自動接受來自受信任的聯邦帳號與群組的分享",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "透過我的 #Nextcloud 聯邦雲端 ID 與我分享,請見 {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "透過我的 #Nextcloud 聯邦雲端 ID 與我分享",
+ "Share with me via Nextcloud" : "透過 Nextcloud 與我分享",
"Cloud ID copied to the clipboard" : "雲端 ID 已複製到剪貼簿",
"Copy to clipboard" : "複製到剪貼簿",
"Clipboard not available. Please copy the cloud ID manually." : "無法使用剪貼簿。請手動複製雲端 ID。",
@@ -59,17 +60,12 @@ OC.L10N.register(
"formerly Twitter" : "前身為 Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "新增至您的網站",
- "Share with me via Nextcloud" : "透過 Nextcloud 與我分享",
"HTML Code:" : "HTML 程式碼:",
"Cancel" : "取消",
"Add remote share" : "新增遠端分享",
"Remote share" : "遠端分享",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "是否要新增來自 {owner}@{remote} 的遠端分享 {name} ?",
"Remote share password" : "遠端分享密碼",
- "Incoming share could not be processed" : "無法處理收到的分享",
- "Clipboard is not available" : "剪貼簿無法使用",
- "Your Federated Cloud ID:" : "您的聯邦雲端 ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "無法處理收到的分享"
},
"nplurals=1; plural=0;");
diff --git a/apps/federatedfilesharing/l10n/zh_TW.json b/apps/federatedfilesharing/l10n/zh_TW.json
index 0d1ccd058c2..24ec8d34df4 100644
--- a/apps/federatedfilesharing/l10n/zh_TW.json
+++ b/apps/federatedfilesharing/l10n/zh_TW.json
@@ -44,6 +44,7 @@
"Automatically accept shares from trusted federated accounts and groups by default" : "預設自動接受來自受信任的聯邦帳號與群組的分享",
"Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "透過我的 #Nextcloud 聯邦雲端 ID 與我分享,請見 {url}",
"Share with me through my #Nextcloud Federated Cloud ID" : "透過我的 #Nextcloud 聯邦雲端 ID 與我分享",
+ "Share with me via Nextcloud" : "透過 Nextcloud 與我分享",
"Cloud ID copied to the clipboard" : "雲端 ID 已複製到剪貼簿",
"Copy to clipboard" : "複製到剪貼簿",
"Clipboard not available. Please copy the cloud ID manually." : "無法使用剪貼簿。請手動複製雲端 ID。",
@@ -57,17 +58,12 @@
"formerly Twitter" : "前身為 Twitter",
"Mastodon" : "Mastodon",
"Add to your website" : "新增至您的網站",
- "Share with me via Nextcloud" : "透過 Nextcloud 與我分享",
"HTML Code:" : "HTML 程式碼:",
"Cancel" : "取消",
"Add remote share" : "新增遠端分享",
"Remote share" : "遠端分享",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "是否要新增來自 {owner}@{remote} 的遠端分享 {name} ?",
"Remote share password" : "遠端分享密碼",
- "Incoming share could not be processed" : "無法處理收到的分享",
- "Clipboard is not available" : "剪貼簿無法使用",
- "Your Federated Cloud ID:" : "您的聯邦雲端 ID:",
- "Twitter" : "Twitter",
- "Diaspora" : "Diaspora"
+ "Incoming share could not be processed" : "無法處理收到的分享"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php
index d993b35845c..7c95b83a5dd 100644
--- a/apps/federatedfilesharing/lib/FederatedShareProvider.php
+++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php
@@ -26,6 +26,7 @@ use OCP\Share\Exceptions\GenericShareException;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IShare;
use OCP\Share\IShareProvider;
+use OCP\Share\IShareProviderSupportsAllSharesInFolder;
use Psr\Log\LoggerInterface;
/**
@@ -33,7 +34,7 @@ use Psr\Log\LoggerInterface;
*
* @package OCA\FederatedFileSharing
*/
-class FederatedShareProvider implements IShareProvider {
+class FederatedShareProvider implements IShareProvider, IShareProviderSupportsAllSharesInFolder {
public const SHARE_TYPE_REMOTE = 6;
/** @var string */
@@ -553,7 +554,17 @@ class FederatedShareProvider implements IShareProvider {
if (!$shallow) {
throw new \Exception('non-shallow getSharesInFolder is no longer supported');
}
+ return $this->getSharesInFolderInternal($userId, $node, $reshares);
+ }
+
+ public function getAllSharesInFolder(Folder $node): array {
+ return $this->getSharesInFolderInternal(null, $node, null);
+ }
+ /**
+ * @return array<int, list<IShare>>
+ */
+ private function getSharesInFolderInternal(?string $userId, Folder $node, ?bool $reshares): array {
$qb = $this->dbConnection->getQueryBuilder();
$qb->select('*')
->from('share', 's')
@@ -562,18 +573,20 @@ class FederatedShareProvider implements IShareProvider {
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_REMOTE))
);
- /**
- * Reshares for this user are shares where they are the owner.
- */
- if ($reshares === false) {
- $qb->andWhere($qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId)));
- } else {
- $qb->andWhere(
- $qb->expr()->orX(
- $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)),
- $qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId))
- )
- );
+ if ($userId !== null) {
+ /**
+ * Reshares for this user are shares where they are the owner.
+ */
+ if ($reshares !== true) {
+ $qb->andWhere($qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId)));
+ } else {
+ $qb->andWhere(
+ $qb->expr()->orX(
+ $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)),
+ $qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId))
+ )
+ );
+ }
}
$qb->innerJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'));
diff --git a/apps/federatedfilesharing/openapi.json b/apps/federatedfilesharing/openapi.json
index 990cbf50bfa..411ff856b18 100644
--- a/apps/federatedfilesharing/openapi.json
+++ b/apps/federatedfilesharing/openapi.json
@@ -158,47 +158,56 @@
"remote": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Address of the remote"
},
"token": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Shared secret between servers"
},
"name": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Name of the shared resource"
},
"owner": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Display name of the receiver"
},
"sharedBy": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Display name of the sender"
},
"shareWith": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "ID of the user that receives the share"
},
"remoteId": {
"type": "integer",
"format": "int64",
"nullable": true,
+ "default": null,
"description": "ID of the remote"
},
"sharedByFederatedId": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Federated ID of the sender"
},
"ownerFederatedId": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Federated ID of the receiver"
}
}
@@ -276,11 +285,13 @@
"token": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Shared secret between servers"
},
"shareWith": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "ID of the user that receives the share"
},
"remoteId": {
@@ -417,12 +428,14 @@
"token": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Shared secret between servers"
},
"permissions": {
"type": "integer",
"format": "int64",
"nullable": true,
+ "default": null,
"description": "New permissions"
}
}
@@ -538,6 +551,7 @@
"token": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Shared secret between servers"
}
}
@@ -635,6 +649,7 @@
"token": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Shared secret between servers"
}
}
@@ -722,6 +737,7 @@
"token": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Shared secret between servers"
}
}
@@ -809,6 +825,7 @@
"token": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Shared secret between servers"
}
}
@@ -924,16 +941,19 @@
"token": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Shared secret between servers"
},
"remote": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Address of the remote"
},
"remote_id": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "ID of the remote"
}
}
diff --git a/apps/federatedfilesharing/tests/AddressHandlerTest.php b/apps/federatedfilesharing/tests/AddressHandlerTest.php
index ffb34d965ce..232ac21a869 100644
--- a/apps/federatedfilesharing/tests/AddressHandlerTest.php
+++ b/apps/federatedfilesharing/tests/AddressHandlerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,31 +17,20 @@ use OCP\ICacheFactory;
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
class AddressHandlerTest extends \Test\TestCase {
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $contactsManager;
-
- /** @var AddressHandler */
- private $addressHandler;
-
- /** @var IURLGenerator | \PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var IL10N | \PHPUnit\Framework\MockObject\MockObject */
- private $il10n;
-
- /** @var CloudIdManager */
- private $cloudIdManager;
+ protected IManager&MockObject $contactsManager;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IL10N&MockObject $il10n;
+ private CloudIdManager $cloudIdManager;
+ private AddressHandler $addressHandler;
protected function setUp(): void {
parent::setUp();
- $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)
- ->getMock();
- $this->il10n = $this->getMockBuilder(IL10N::class)
- ->getMock();
-
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
+ $this->il10n = $this->createMock(IL10N::class);
$this->contactsManager = $this->createMock(IManager::class);
$this->cloudIdManager = new CloudIdManager(
@@ -54,7 +44,7 @@ class AddressHandlerTest extends \Test\TestCase {
$this->addressHandler = new AddressHandler($this->urlGenerator, $this->il10n, $this->cloudIdManager);
}
- public function dataTestSplitUserRemote() {
+ public static function dataTestSplitUserRemote(): array {
$userPrefix = ['user@name', 'username'];
$protocols = ['', 'http://', 'https://'];
$remotes = [
@@ -92,12 +82,8 @@ class AddressHandlerTest extends \Test\TestCase {
/**
* @dataProvider dataTestSplitUserRemote
- *
- * @param string $remote
- * @param string $expectedUser
- * @param string $expectedUrl
*/
- public function testSplitUserRemote($remote, $expectedUser, $expectedUrl): void {
+ public function testSplitUserRemote(string $remote, string $expectedUser, string $expectedUrl): void {
$this->contactsManager->expects($this->any())
->method('search')
->willReturn([]);
@@ -107,7 +93,7 @@ class AddressHandlerTest extends \Test\TestCase {
$this->assertSame($expectedUrl, $remoteUrl);
}
- public function dataTestSplitUserRemoteError() {
+ public static function dataTestSplitUserRemoteError(): array {
return [
// Invalid path
['user@'],
@@ -127,10 +113,8 @@ class AddressHandlerTest extends \Test\TestCase {
/**
* @dataProvider dataTestSplitUserRemoteError
- *
- * @param string $id
*/
- public function testSplitUserRemoteError($id): void {
+ public function testSplitUserRemoteError(string $id): void {
$this->expectException(HintException::class);
$this->addressHandler->splitUserRemote($id);
@@ -138,20 +122,14 @@ class AddressHandlerTest extends \Test\TestCase {
/**
* @dataProvider dataTestCompareAddresses
- *
- * @param string $user1
- * @param string $server1
- * @param string $user2
- * @param string $server2
- * @param bool $expected
*/
- public function testCompareAddresses($user1, $server1, $user2, $server2, $expected): void {
+ public function testCompareAddresses(string $user1, string $server1, string $user2, string $server2, bool $expected): void {
$this->assertSame($expected,
$this->addressHandler->compareAddresses($user1, $server1, $user2, $server2)
);
}
- public function dataTestCompareAddresses() {
+ public static function dataTestCompareAddresses(): array {
return [
['user1', 'http://server1', 'user1', 'http://server1', true],
['user1', 'https://server1', 'user1', 'http://server1', true],
@@ -173,35 +151,29 @@ class AddressHandlerTest extends \Test\TestCase {
/**
* @dataProvider dataTestRemoveProtocolFromUrl
- *
- * @param string $url
- * @param string $expectedResult
*/
- public function testRemoveProtocolFromUrl($url, $expectedResult): void {
+ public function testRemoveProtocolFromUrl(string $url, string $expectedResult): void {
$result = $this->addressHandler->removeProtocolFromUrl($url);
$this->assertSame($expectedResult, $result);
}
- public function dataTestRemoveProtocolFromUrl() {
+ public static function dataTestRemoveProtocolFromUrl(): array {
return [
- ['http://owncloud.org', 'owncloud.org'],
- ['https://owncloud.org', 'owncloud.org'],
- ['owncloud.org', 'owncloud.org'],
+ ['http://example.tld', 'example.tld'],
+ ['https://example.tld', 'example.tld'],
+ ['example.tld', 'example.tld'],
];
}
/**
* @dataProvider dataTestUrlContainProtocol
- *
- * @param string $url
- * @param bool $expectedResult
*/
- public function testUrlContainProtocol($url, $expectedResult): void {
+ public function testUrlContainProtocol(string $url, bool $expectedResult): void {
$result = $this->addressHandler->urlContainProtocol($url);
$this->assertSame($expectedResult, $result);
}
- public function dataTestUrlContainProtocol() {
+ public static function dataTestUrlContainProtocol(): array {
return [
['http://nextcloud.com', true],
['https://nextcloud.com', true],
diff --git a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php
index 8222f25bb49..a6c10148425 100644
--- a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php
+++ b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -31,64 +33,35 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class MountPublicLinkControllerTest extends \Test\TestCase {
- /** @var IContactsManager|MockObject */
- protected $contactsManager;
-
- /** @var MountPublicLinkController */
- private $controller;
-
- /** @var IRequest|MockObject */
- private $request;
-
- /** @var FederatedShareProvider|MockObject */
- private $federatedShareProvider;
-
- /** @var IManager|MockObject */
- private $shareManager;
-
- /** @var AddressHandler|MockObject */
- private $addressHandler;
-
- /** @var IRootFolder|MockObject */
- private $rootFolder;
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var ISession|MockObject */
- private $session;
-
- /** @var IL10N|MockObject */
- private $l10n;
-
- /** @var IUserSession|MockObject */
- private $userSession;
-
- /** @var IClientService|MockObject */
- private $clientService;
-
- /** @var IShare */
- private $share;
-
- /** @var ICloudIdManager */
- private $cloudIdManager;
+ protected IContactsManager&MockObject $contactsManager;
+ private IRequest&MockObject $request;
+ private FederatedShareProvider&MockObject $federatedShareProvider;
+ private IManager&MockObject $shareManager;
+ private AddressHandler&MockObject $addressHandler;
+ private IRootFolder&MockObject $rootFolder;
+ private IUserManager&MockObject $userManager;
+ private ISession&MockObject $session;
+ private IL10N&MockObject $l10n;
+ private IUserSession&MockObject $userSession;
+ private IClientService&MockObject $clientService;
+ private IShare $share;
+ private ICloudIdManager $cloudIdManager;
+ private MountPublicLinkController $controller;
protected function setUp(): void {
parent::setUp();
- $this->request = $this->getMockBuilder(IRequest::class)->disableOriginalConstructor()->getMock();
- $this->federatedShareProvider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider')
- ->disableOriginalConstructor()->getMock();
- $this->shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock();
- $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')
- ->disableOriginalConstructor()->getMock();
- $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->disableOriginalConstructor()->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock();
+ $this->request = $this->createMock(IRequest::class);
+ $this->federatedShareProvider = $this->createMock(FederatedShareProvider::class);
+ $this->shareManager = $this->createMock(IManager::class);
+ $this->addressHandler = $this->createMock(AddressHandler::class);
+ $this->rootFolder = $this->createMock(IRootFolder::class);
+ $this->userManager = $this->createMock(IUserManager::class);
$this->share = new Share($this->rootFolder, $this->userManager);
- $this->session = $this->getMockBuilder(ISession::class)->disableOriginalConstructor()->getMock();
- $this->l10n = $this->getMockBuilder(IL10N::class)->disableOriginalConstructor()->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)->disableOriginalConstructor()->getMock();
- $this->clientService = $this->getMockBuilder('OCP\Http\Client\IClientService')->disableOriginalConstructor()->getMock();
+ $this->session = $this->createMock(ISession::class);
+ $this->l10n = $this->createMock(IL10N::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->clientService = $this->createMock(IClientService::class);
$this->contactsManager = $this->createMock(IContactsManager::class);
$this->cloudIdManager = new CloudIdManager(
$this->contactsManager,
@@ -114,23 +87,16 @@ class MountPublicLinkControllerTest extends \Test\TestCase {
/**
* @dataProvider dataTestCreateFederatedShare
- *
- * @param string $shareWith
- * @param bool $outgoingSharesAllowed
- * @param bool $validShareWith
- * @param string $token
- * @param bool $validToken
- * @param bool $createSuccessful
- * @param string $expectedReturnData
*/
- public function testCreateFederatedShare($shareWith,
- $outgoingSharesAllowed,
- $validShareWith,
- $token,
- $validToken,
- $createSuccessful,
- $expectedReturnData,
- $permissions,
+ public function testCreateFederatedShare(
+ string $shareWith,
+ bool $outgoingSharesAllowed,
+ bool $validShareWith,
+ string $token,
+ bool $validToken,
+ bool $createSuccessful,
+ string $expectedReturnData,
+ int $permissions,
): void {
$this->federatedShareProvider->expects($this->any())
->method('isOutgoingServer2serverShareEnabled')
@@ -188,7 +154,7 @@ class MountPublicLinkControllerTest extends \Test\TestCase {
}
}
- public function dataTestCreateFederatedShare() {
+ public static function dataTestCreateFederatedShare(): array {
return [
//shareWith, outgoingSharesAllowed, validShareWith, token, validToken, createSuccessful, expectedReturnData
['user@server', true, true, 'token', true, true, 'server', 31],
diff --git a/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php b/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php
index c4c45c1aca5..81c67a29254 100644
--- a/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php
+++ b/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -23,6 +24,7 @@ use OCP\IRequest;
use OCP\IUserManager;
use OCP\Share;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
/**
@@ -32,65 +34,32 @@ use Psr\Log\LoggerInterface;
* @group DB
*/
class RequestHandlerControllerTest extends \Test\TestCase {
- private $owner = 'owner';
- private $user1 = 'user1';
- private $user2 = 'user2';
- private $ownerCloudId = 'owner@server0.org';
- private $user1CloudId = 'user1@server1.org';
- private $user2CloudId = 'user2@server2.org';
-
- /** @var RequestHandlerController */
- private $requestHandler;
-
- /** @var FederatedShareProvider|\PHPUnit\Framework\MockObject\MockObject */
- private $federatedShareProvider;
-
- /** @var Notifications|\PHPUnit\Framework\MockObject\MockObject */
- private $notifications;
-
- /** @var AddressHandler|\PHPUnit\Framework\MockObject\MockObject */
- private $addressHandler;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var IShare|\PHPUnit\Framework\MockObject\MockObject */
- private $share;
-
- /** @var ICloudIdManager|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudIdManager;
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logger;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
-
- /** @var IDBConnection|\PHPUnit\Framework\MockObject\MockObject */
- private $connection;
-
- /** @var Share\IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
-
- /** @var ICloudFederationFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationFactory;
-
- /** @var ICloudFederationProviderManager|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationProviderManager;
-
- /** @var ICloudFederationProvider|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationProvider;
-
- /** @var ICloudFederationShare|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationShare;
-
- /** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
- private $eventDispatcher;
+ private string $owner = 'owner';
+ private string $user1 = 'user1';
+ private string $user2 = 'user2';
+ private string $ownerCloudId = 'owner@server0.org';
+ private string $user1CloudId = 'user1@server1.org';
+
+ private RequestHandlerController $requestHandler;
+ private FederatedShareProvider&MockObject $federatedShareProvider;
+ private Notifications&MockObject $notifications;
+ private AddressHandler&MockObject $addressHandler;
+ private IUserManager&MockObject $userManager;
+ private IShare&MockObject $share;
+ private ICloudIdManager&MockObject $cloudIdManager;
+ private LoggerInterface&MockObject $logger;
+ private IRequest&MockObject $request;
+ private IDBConnection&MockObject $connection;
+ private Share\IManager&MockObject $shareManager;
+ private ICloudFederationFactory&MockObject $cloudFederationFactory;
+ private ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
+ private ICloudFederationProvider&MockObject $cloudFederationProvider;
+ private ICloudFederationShare&MockObject $cloudFederationShare;
+ private IEventDispatcher&MockObject $eventDispatcher;
protected function setUp(): void {
- $this->share = $this->getMockBuilder(IShare::class)->getMock();
- $this->federatedShareProvider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider')
- ->disableOriginalConstructor()->getMock();
+ $this->share = $this->createMock(IShare::class);
+ $this->federatedShareProvider = $this->createMock(FederatedShareProvider::class);
$this->federatedShareProvider->expects($this->any())
->method('isOutgoingServer2serverShareEnabled')->willReturn(true);
$this->federatedShareProvider->expects($this->any())
@@ -98,11 +67,9 @@ class RequestHandlerControllerTest extends \Test\TestCase {
$this->federatedShareProvider->expects($this->any())->method('getShareById')
->willReturn($this->share);
- $this->notifications = $this->getMockBuilder('OCA\FederatedFileSharing\Notifications')
- ->disableOriginalConstructor()->getMock();
- $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')
- ->disableOriginalConstructor()->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock();
+ $this->notifications = $this->createMock(Notifications::class);
+ $this->addressHandler = $this->createMock(AddressHandler::class);
+ $this->userManager = $this->createMock(IUserManager::class);
$this->cloudIdManager = $this->createMock(ICloudIdManager::class);
$this->request = $this->createMock(IRequest::class);
$this->connection = $this->createMock(IDBConnection::class);
@@ -149,7 +116,7 @@ class RequestHandlerControllerTest extends \Test\TestCase {
'file'
)->willReturn($this->cloudFederationShare);
- /** @var ICloudFederationProvider|\PHPUnit\Framework\MockObject\MockObject $provider */
+ /** @var ICloudFederationProvider&MockObject $provider */
$this->cloudFederationProviderManager->expects($this->once())
->method('getCloudFederationProvider')
->with('file')
diff --git a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php
index 002a8bac374..fc6dbf7a699 100644
--- a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php
+++ b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -38,61 +39,39 @@ use Psr\Log\LoggerInterface;
* @group DB
*/
class FederatedShareProviderTest extends \Test\TestCase {
- /** @var IDBConnection */
- protected $connection;
- /** @var AddressHandler|MockObject */
- protected $addressHandler;
- /** @var Notifications|MockObject */
- protected $notifications;
- /** @var TokenHandler|MockObject */
- protected $tokenHandler;
- /** @var IL10N */
- protected $l;
- /** @var LoggerInterface */
- protected $logger;
- /** @var IRootFolder|MockObject */
- protected $rootFolder;
- /** @var IConfig|MockObject */
- protected $config;
- /** @var IUserManager|MockObject */
- protected $userManager;
- /** @var \OCP\GlobalScale\IConfig|MockObject */
- protected $gsConfig;
-
- /** @var IManager */
- protected $shareManager;
- /** @var FederatedShareProvider */
- protected $provider;
- /** @var IContactsManager|MockObject */
- protected $contactsManager;
-
- /** @var ICloudIdManager */
- private $cloudIdManager;
-
- /** @var MockObject|ICloudFederationProviderManager */
- private $cloudFederationProviderManager;
+ protected IDBConnection $connection;
+ protected AddressHandler&MockObject $addressHandler;
+ protected Notifications&MockObject $notifications;
+ protected TokenHandler&MockObject $tokenHandler;
+ protected IL10N $l;
+ protected LoggerInterface $logger;
+ protected IRootFolder&MockObject $rootFolder;
+ protected IConfig&MockObject $config;
+ protected IUserManager&MockObject $userManager;
+ protected \OCP\GlobalScale\IConfig&MockObject $gsConfig;
+ protected IManager $shareManager;
+ protected FederatedShareProvider $provider;
+ protected IContactsManager&MockObject $contactsManager;
+ private ICloudIdManager $cloudIdManager;
+ private ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
protected function setUp(): void {
parent::setUp();
$this->connection = Server::get(IDBConnection::class);
- $this->notifications = $this->getMockBuilder('OCA\FederatedFileSharing\Notifications')
- ->disableOriginalConstructor()
- ->getMock();
- $this->tokenHandler = $this->getMockBuilder('OCA\FederatedFileSharing\TokenHandler')
- ->disableOriginalConstructor()
- ->getMock();
- $this->l = $this->getMockBuilder(IL10N::class)->getMock();
+ $this->notifications = $this->createMock(Notifications::class);
+ $this->tokenHandler = $this->createMock(TokenHandler::class);
+ $this->l = $this->createMock(IL10N::class);
$this->l->method('t')
->willReturnCallback(function ($text, $parameters = []) {
return vsprintf($text, $parameters);
});
- $this->logger = $this->getMockBuilder(LoggerInterface::class)->getMock();
- $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock();
- $this->config = $this->getMockBuilder(IConfig::class)->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock();
+ $this->logger = $this->createMock(LoggerInterface::class);
+ $this->rootFolder = $this->createMock(IRootFolder::class);
+ $this->config = $this->createMock(IConfig::class);
+ $this->userManager = $this->createMock(IUserManager::class);
//$this->addressHandler = new AddressHandler(\OC::$server->getURLGenerator(), $this->l);
- $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')->disableOriginalConstructor()->getMock();
+ $this->addressHandler = $this->createMock(AddressHandler::class);
$this->contactsManager = $this->createMock(IContactsManager::class);
$this->cloudIdManager = new CloudIdManager(
$this->contactsManager,
@@ -122,16 +101,16 @@ class FederatedShareProviderTest extends \Test\TestCase {
$this->logger,
);
- $this->shareManager = Server::get(\OCP\Share\IManager::class);
+ $this->shareManager = Server::get(IManager::class);
}
protected function tearDown(): void {
- $this->connection->getQueryBuilder()->delete('share')->execute();
+ $this->connection->getQueryBuilder()->delete('share')->executeStatement();
parent::tearDown();
}
- public function dataTestCreate() {
+ public static function dataTestCreate(): array {
return [
[null, null],
[new \DateTime('2020-03-01T01:02:03'), '2020-03-01 01:02:03'],
@@ -141,11 +120,11 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestCreate
*/
- public function testCreate($expirationDate, $expectedDataDate): void {
+ public function testCreate(?\DateTime $expirationDate, ?string $expectedDataDate): void {
$share = $this->shareManager->newShare();
- /** @var File|MockObject $node */
- $node = $this->getMockBuilder(File::class)->getMock();
+ /** @var File&MockObject $node */
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -190,7 +169,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$stmt = $qb->select('*')
->from('share')
->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId())))
- ->execute();
+ ->executeQuery();
$data = $stmt->fetch();
$stmt->closeCursor();
@@ -227,7 +206,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
public function testCreateCouldNotFindServer(): void {
$share = $this->shareManager->newShare();
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -277,7 +256,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$stmt = $qb->select('*')
->from('share')
->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId())))
- ->execute();
+ ->executeQuery();
$data = $stmt->fetch();
$stmt->closeCursor();
@@ -288,7 +267,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
public function testCreateException(): void {
$share = $this->shareManager->newShare();
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -338,7 +317,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$stmt = $qb->select('*')
->from('share')
->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId())))
- ->execute();
+ ->executeQuery();
$data = $stmt->fetch();
$stmt->closeCursor();
@@ -349,7 +328,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
public function testCreateShareWithSelf(): void {
$share = $this->shareManager->newShare();
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -381,7 +360,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$stmt = $qb->select('*')
->from('share')
->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId())))
- ->execute();
+ ->executeQuery();
$data = $stmt->fetch();
$stmt->closeCursor();
@@ -392,7 +371,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
public function testCreateAlreadyShared(): void {
$share = $this->shareManager->newShare();
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -443,8 +422,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestUpdate
*/
- public function testUpdate($owner, $sharedBy, $expirationDate): void {
- $this->provider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider')
+ public function testUpdate(string $owner, string $sharedBy, ?\DateTime $expirationDate): void {
+ $this->provider = $this->getMockBuilder(FederatedShareProvider::class)
->setConstructorArgs(
[
$this->connection,
@@ -460,11 +439,13 @@ class FederatedShareProviderTest extends \Test\TestCase {
$this->cloudFederationProviderManager,
$this->logger,
]
- )->setMethods(['sendPermissionUpdate'])->getMock();
+ )
+ ->onlyMethods(['sendPermissionUpdate'])
+ ->getMock();
$share = $this->shareManager->newShare();
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -520,7 +501,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$this->assertEquals($expirationDate, $share->getExpirationDate());
}
- public function dataTestUpdate() {
+ public static function dataTestUpdate(): array {
return [
['sharedBy', 'shareOwner', new \DateTime('2020-03-01T01:02:03')],
['shareOwner', 'shareOwner', null],
@@ -528,7 +509,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
}
public function testGetSharedBy(): void {
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -574,7 +555,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
}
public function testGetSharedByWithNode(): void {
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -621,7 +602,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
}
public function testGetSharedByWithReshares(): void {
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -663,7 +644,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
}
public function testGetSharedByWithLimit(): void {
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->method('getId')->willReturn(42);
$node->method('getName')->willReturn('myFile');
@@ -713,7 +694,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$this->assertEquals('user2@server.com', $shares[0]->getSharedWith());
}
- public function dataDeleteUser() {
+ public static function dataDeleteUser(): array {
return [
['a', 'b', 'c', 'a', true],
['a', 'b', 'c', 'b', false],
@@ -732,7 +713,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
* @param string $deletedUser The user that is deleted
* @param bool $rowDeleted Is the row deleted in this setup
*/
- public function testDeleteUser($owner, $initiator, $recipient, $deletedUser, $rowDeleted): void {
+ public function testDeleteUser(string $owner, string $initiator, string $recipient, string $deletedUser, bool $rowDeleted): void {
$qb = $this->connection->getQueryBuilder();
$qb->insert('share')
->setValue('share_type', $qb->createNamedParameter(IShare::TYPE_REMOTE))
@@ -742,7 +723,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
->setValue('item_type', $qb->createNamedParameter('file'))
->setValue('item_source', $qb->createNamedParameter(42))
->setValue('file_source', $qb->createNamedParameter(42))
- ->execute();
+ ->executeStatement();
$id = $qb->getLastInsertId();
@@ -754,7 +735,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
->where(
$qb->expr()->eq('id', $qb->createNamedParameter($id))
);
- $cursor = $qb->execute();
+ $cursor = $qb->executeQuery();
$data = $cursor->fetchAll();
$cursor->closeCursor();
@@ -763,11 +744,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestIsOutgoingServer2serverShareEnabled
- *
- * @param string $isEnabled
- * @param bool $expected
*/
- public function testIsOutgoingServer2serverShareEnabled($internalOnly, $isEnabled, $expected): void {
+ public function testIsOutgoingServer2serverShareEnabled(bool $internalOnly, string $isEnabled, bool $expected): void {
$this->gsConfig->expects($this->once())->method('onlyInternalFederation')
->willReturn($internalOnly);
$this->config->expects($this->any())->method('getAppValue')
@@ -779,7 +757,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
);
}
- public function dataTestIsOutgoingServer2serverShareEnabled() {
+ public static function dataTestIsOutgoingServer2serverShareEnabled(): array {
return [
[false, 'yes', true],
[false, 'no', false],
@@ -790,11 +768,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestIsIncomingServer2serverShareEnabled
- *
- * @param string $isEnabled
- * @param bool $expected
*/
- public function testIsIncomingServer2serverShareEnabled($onlyInternal, $isEnabled, $expected): void {
+ public function testIsIncomingServer2serverShareEnabled(bool $onlyInternal, string $isEnabled, bool $expected): void {
$this->gsConfig->expects($this->once())->method('onlyInternalFederation')
->willReturn($onlyInternal);
$this->config->expects($this->any())->method('getAppValue')
@@ -806,7 +781,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
);
}
- public function dataTestIsIncomingServer2serverShareEnabled() {
+ public static function dataTestIsIncomingServer2serverShareEnabled(): array {
return [
[false, 'yes', true],
[false, 'no', false],
@@ -817,11 +792,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestIsLookupServerQueriesEnabled
- *
- * @param string $isEnabled
- * @param bool $expected
*/
- public function testIsLookupServerQueriesEnabled($gsEnabled, $isEnabled, $expected): void {
+ public function testIsLookupServerQueriesEnabled(bool $gsEnabled, string $isEnabled, bool $expected): void {
$this->gsConfig->expects($this->once())->method('isGlobalScaleEnabled')
->willReturn($gsEnabled);
$this->config->expects($this->any())->method('getAppValue')
@@ -834,7 +806,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
}
- public function dataTestIsLookupServerQueriesEnabled() {
+ public static function dataTestIsLookupServerQueriesEnabled(): array {
return [
[true, 'yes', true],
[true, 'no', true],
@@ -848,11 +820,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
/**
* @dataProvider dataTestIsLookupServerUploadEnabled
- *
- * @param string $isEnabled
- * @param bool $expected
*/
- public function testIsLookupServerUploadEnabled($gsEnabled, $isEnabled, $expected): void {
+ public function testIsLookupServerUploadEnabled(bool $gsEnabled, string $isEnabled, bool $expected): void {
$this->gsConfig->expects($this->once())->method('isGlobalScaleEnabled')
->willReturn($gsEnabled);
$this->config->expects($this->any())->method('getAppValue')
@@ -864,7 +833,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
);
}
- public function dataTestIsLookupServerUploadEnabled() {
+ public static function dataTestIsLookupServerUploadEnabled(): array {
return [
[true, 'yes', false],
[true, 'no', false],
@@ -880,8 +849,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
$userManager = Server::get(IUserManager::class);
$rootFolder = Server::get(IRootFolder::class);
- $u1 = $userManager->createUser('testFed', md5(time()));
- $u2 = $userManager->createUser('testFed2', md5(time()));
+ $u1 = $userManager->createUser('testFed', md5((string)time()));
+ $u2 = $userManager->createUser('testFed2', md5((string)time()));
$folder1 = $rootFolder->getUserFolder($u1->getUID())->newFolder('foo');
$file1 = $folder1->newFile('bar1');
@@ -934,7 +903,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$userManager = Server::get(IUserManager::class);
$rootFolder = Server::get(IRootFolder::class);
- $u1 = $userManager->createUser('testFed', md5(time()));
+ $u1 = $userManager->createUser('testFed', md5((string)time()));
$folder1 = $rootFolder->getUserFolder($u1->getUID())->newFolder('foo');
$file1 = $folder1->newFile('bar1');
diff --git a/apps/federatedfilesharing/tests/NotificationsTest.php b/apps/federatedfilesharing/tests/NotificationsTest.php
index 7ac4e964362..94d08b5aa5d 100644
--- a/apps/federatedfilesharing/tests/NotificationsTest.php
+++ b/apps/federatedfilesharing/tests/NotificationsTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +9,7 @@
namespace OCA\FederatedFileSharing\Tests;
use OCA\FederatedFileSharing\AddressHandler;
+use OCA\FederatedFileSharing\BackgroundJob\RetryJob;
use OCA\FederatedFileSharing\Notifications;
use OCP\BackgroundJob\IJobList;
use OCP\EventDispatcher\IEventDispatcher;
@@ -19,38 +21,22 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class NotificationsTest extends \Test\TestCase {
- /** @var AddressHandler|MockObject */
- private $addressHandler;
-
- /** @var IClientService|MockObject */
- private $httpClientService;
-
- /** @var IDiscoveryService|MockObject */
- private $discoveryService;
-
- /** @var IJobList|MockObject */
- private $jobList;
-
- /** @var ICloudFederationProviderManager|MockObject */
- private $cloudFederationProviderManager;
-
- /** @var ICloudFederationFactory|MockObject */
- private $cloudFederationFactory;
-
- /** @var IEventDispatcher|MockObject */
- private $eventDispatcher;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
+ private AddressHandler&MockObject $addressHandler;
+ private IClientService&MockObject $httpClientService;
+ private IDiscoveryService&MockObject $discoveryService;
+ private IJobList&MockObject $jobList;
+ private ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
+ private ICloudFederationFactory&MockObject $cloudFederationFactory;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
- $this->jobList = $this->getMockBuilder('OCP\BackgroundJob\IJobList')->getMock();
- $this->discoveryService = $this->getMockBuilder(IDiscoveryService::class)->getMock();
- $this->httpClientService = $this->getMockBuilder('OCP\Http\Client\IClientService')->getMock();
- $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')
- ->disableOriginalConstructor()->getMock();
+ $this->jobList = $this->createMock(IJobList::class);
+ $this->discoveryService = $this->createMock(IDiscoveryService::class);
+ $this->httpClientService = $this->createMock(IClientService::class);
+ $this->addressHandler = $this->createMock(AddressHandler::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->cloudFederationProviderManager = $this->createMock(ICloudFederationProviderManager::class);
$this->cloudFederationFactory = $this->createMock(ICloudFederationFactory::class);
@@ -58,14 +44,11 @@ class NotificationsTest extends \Test\TestCase {
}
/**
- * get instance of Notifications class
- *
- * @param array $mockedMethods methods which should be mocked
- * @return Notifications | \PHPUnit\Framework\MockObject\MockObject
+ * @return Notifications|MockObject
*/
private function getInstance(array $mockedMethods = []) {
if (empty($mockedMethods)) {
- $instance = new Notifications(
+ return new Notifications(
$this->addressHandler,
$this->httpClientService,
$this->discoveryService,
@@ -75,34 +58,30 @@ class NotificationsTest extends \Test\TestCase {
$this->eventDispatcher,
$this->logger,
);
- } else {
- $instance = $this->getMockBuilder('OCA\FederatedFileSharing\Notifications')
- ->setConstructorArgs(
- [
- $this->addressHandler,
- $this->httpClientService,
- $this->discoveryService,
- $this->jobList,
- $this->cloudFederationProviderManager,
- $this->cloudFederationFactory,
- $this->eventDispatcher,
- $this->logger,
- ]
- )->setMethods($mockedMethods)->getMock();
}
- return $instance;
+ return $this->getMockBuilder(Notifications::class)
+ ->setConstructorArgs(
+ [
+ $this->addressHandler,
+ $this->httpClientService,
+ $this->discoveryService,
+ $this->jobList,
+ $this->cloudFederationProviderManager,
+ $this->cloudFederationFactory,
+ $this->eventDispatcher,
+ $this->logger,
+ ]
+ )
+ ->onlyMethods($mockedMethods)
+ ->getMock();
}
/**
* @dataProvider dataTestSendUpdateToRemote
- *
- * @param int $try
- * @param array $httpRequestResult
- * @param bool $expected
*/
- public function testSendUpdateToRemote($try, $httpRequestResult, $expected): void {
+ public function testSendUpdateToRemote(int $try, array $httpRequestResult, bool $expected): void {
$remote = 'http://remote';
$id = 42;
$timestamp = 63576;
@@ -120,7 +99,7 @@ class NotificationsTest extends \Test\TestCase {
if ($try === 0 && $expected === false) {
$this->jobList->expects($this->once())->method('add')
->with(
- 'OCA\FederatedFileSharing\BackgroundJob\RetryJob',
+ RetryJob::class,
[
'remote' => $remote,
'remoteId' => $id,
@@ -141,7 +120,7 @@ class NotificationsTest extends \Test\TestCase {
}
- public function dataTestSendUpdateToRemote() {
+ public static function dataTestSendUpdateToRemote(): array {
return [
// test if background job is added correctly
[0, ['success' => true, 'result' => json_encode(['ocs' => ['meta' => ['statuscode' => 200]]])], true],
diff --git a/apps/federatedfilesharing/tests/Settings/AdminTest.php b/apps/federatedfilesharing/tests/Settings/AdminTest.php
index efbe763c633..1eb75003b4f 100644
--- a/apps/federatedfilesharing/tests/Settings/AdminTest.php
+++ b/apps/federatedfilesharing/tests/Settings/AdminTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,17 +14,14 @@ use OCP\AppFramework\Services\IInitialState;
use OCP\GlobalScale\IConfig;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AdminTest extends TestCase {
- /** @var Admin */
- private $admin;
- /** @var FederatedShareProvider */
- private $federatedShareProvider;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $gsConfig;
- /** @var IInitialState|\PHPUnit\Framework\MockObject\MockObject */
- private $initialState;
+ private FederatedShareProvider&MockObject $federatedShareProvider;
+ private IConfig $gsConfig;
+ private IInitialState&MockObject $initialState;
+ private Admin $admin;
protected function setUp(): void {
parent::setUp();
@@ -43,7 +42,7 @@ class AdminTest extends TestCase {
);
}
- public function sharingStateProvider() {
+ public static function sharingStateProvider(): array {
return [
[
true,
@@ -56,9 +55,8 @@ class AdminTest extends TestCase {
/**
* @dataProvider sharingStateProvider
- * @param bool $state
*/
- public function testGetForm($state): void {
+ public function testGetForm(bool $state): void {
$this->federatedShareProvider
->expects($this->once())
->method('isOutgoingServer2serverShareEnabled')
@@ -98,20 +96,24 @@ class AdminTest extends TestCase {
$this->gsConfig->expects($this->once())->method('onlyInternalFederation')
->willReturn($state);
+ $calls = [
+ ['internalOnly', $state],
+ ['sharingFederatedDocUrl', 'doc-link'],
+ ['outgoingServer2serverShareEnabled', $state],
+ ['incomingServer2serverShareEnabled', $state],
+ ['federatedGroupSharingSupported', $state],
+ ['outgoingServer2serverGroupShareEnabled', $state],
+ ['incomingServer2serverGroupShareEnabled', $state],
+ ['lookupServerEnabled', $state],
+ ['lookupServerUploadEnabled', $state],
+ ['federatedTrustedShareAutoAccept', $state],
+ ];
$this->initialState->expects($this->exactly(10))
->method('provideInitialState')
- ->withConsecutive(
- ['internalOnly', $state],
- ['sharingFederatedDocUrl', 'doc-link'],
- ['outgoingServer2serverShareEnabled', $state],
- ['incomingServer2serverShareEnabled', $state],
- ['federatedGroupSharingSupported', $state],
- ['outgoingServer2serverGroupShareEnabled', $state],
- ['incomingServer2serverGroupShareEnabled', $state],
- ['lookupServerEnabled', $state],
- ['lookupServerUploadEnabled', $state],
- ['federatedTrustedShareAutoAccept', $state]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected, func_get_args());
+ });
$expected = new TemplateResponse('federatedfilesharing', 'settings-admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());
diff --git a/apps/federatedfilesharing/tests/TestCase.php b/apps/federatedfilesharing/tests/TestCase.php
index b9787f2ffab..1536e1b3375 100644
--- a/apps/federatedfilesharing/tests/TestCase.php
+++ b/apps/federatedfilesharing/tests/TestCase.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -9,6 +10,7 @@ namespace OCA\FederatedFileSharing\Tests;
use OC\Files\Filesystem;
use OC\Group\Database;
+use OCP\Files\IRootFolder;
use OCP\IGroupManager;
use OCP\IUserManager;
use OCP\IUserSession;
@@ -70,12 +72,7 @@ abstract class TestCase extends \Test\TestCase {
parent::tearDownAfterClass();
}
- /**
- * @param string $user
- * @param bool $create
- * @param bool $password
- */
- protected static function loginHelper($user, $create = false, $password = false) {
+ protected static function loginHelper(string $user, bool $create = false, bool $password = false) {
if ($password === false) {
$password = $user;
}
@@ -96,7 +93,7 @@ abstract class TestCase extends \Test\TestCase {
Server::get(IUserSession::class)->setUser(null);
Filesystem::tearDown();
Server::get(IUserSession::class)->login($user, $password);
- \OC::$server->getUserFolder($user);
+ \OCP\Server::get(IRootFolder::class)->getUserFolder($user);
\OC_Util::setupFS($user);
}
diff --git a/apps/federatedfilesharing/tests/TokenHandlerTest.php b/apps/federatedfilesharing/tests/TokenHandlerTest.php
index 9ed20779857..7a210274013 100644
--- a/apps/federatedfilesharing/tests/TokenHandlerTest.php
+++ b/apps/federatedfilesharing/tests/TokenHandlerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -9,17 +10,12 @@ namespace OCA\FederatedFileSharing\Tests;
use OCA\FederatedFileSharing\TokenHandler;
use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
class TokenHandlerTest extends \Test\TestCase {
-
- /** @var TokenHandler */
- private $tokenHandler;
-
- /** @var ISecureRandom | \PHPUnit\Framework\MockObject\MockObject */
- private $secureRandom;
-
- /** @var int */
- private $expectedTokenLength = 15;
+ private TokenHandler $tokenHandler;
+ private ISecureRandom&MockObject $secureRandom;
+ private int $expectedTokenLength = 15;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/federation/l10n/de.js b/apps/federation/l10n/de.js
index aa6591c4e75..070c7e76e92 100644
--- a/apps/federation/l10n/de.js
+++ b/apps/federation/l10n/de.js
@@ -6,7 +6,7 @@ OC.L10N.register(
"Could not remove server" : "Server konnte nicht entfernt werden",
"Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Server.",
"No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden",
- "Could not add server" : "Konnte Server nicht hinzufügen",
+ "Could not add server" : "Server konnte nicht hinzugefügt werden",
"Trusted servers" : "Vertrauenswürdige Server",
"Federation" : "Federation",
"Federation allows you to connect with other trusted servers to exchange the account directory." : "Federation ermöglicht die Verbindung mit anderen vertrauenswürdigen Servern, um das Kontenverzeichnis auszutauschen.",
diff --git a/apps/federation/l10n/de.json b/apps/federation/l10n/de.json
index 80129b204c9..ec1118bce91 100644
--- a/apps/federation/l10n/de.json
+++ b/apps/federation/l10n/de.json
@@ -4,7 +4,7 @@
"Could not remove server" : "Server konnte nicht entfernt werden",
"Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Server.",
"No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden",
- "Could not add server" : "Konnte Server nicht hinzufügen",
+ "Could not add server" : "Server konnte nicht hinzugefügt werden",
"Trusted servers" : "Vertrauenswürdige Server",
"Federation" : "Federation",
"Federation allows you to connect with other trusted servers to exchange the account directory." : "Federation ermöglicht die Verbindung mit anderen vertrauenswürdigen Servern, um das Kontenverzeichnis auszutauschen.",
diff --git a/apps/federation/l10n/de_DE.js b/apps/federation/l10n/de_DE.js
index 4df9825a354..efb22f90bb5 100644
--- a/apps/federation/l10n/de_DE.js
+++ b/apps/federation/l10n/de_DE.js
@@ -6,7 +6,7 @@ OC.L10N.register(
"Could not remove server" : "Server konnte nicht entfernt werden",
"Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Servern.",
"No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden",
- "Could not add server" : "Konnte Server nicht hinzufügen",
+ "Could not add server" : "Server konnte nicht hinzugefügt werden",
"Trusted servers" : "Vertrauenswürdige Server",
"Federation" : "Federation",
"Federation allows you to connect with other trusted servers to exchange the account directory." : "Federation ermöglicht die Verbindung mit anderen vertrauenswürdigen Servern, um das Kontenverzeichnis auszutauschen.",
diff --git a/apps/federation/l10n/de_DE.json b/apps/federation/l10n/de_DE.json
index 743a5af0ee5..96f5fb099d3 100644
--- a/apps/federation/l10n/de_DE.json
+++ b/apps/federation/l10n/de_DE.json
@@ -4,7 +4,7 @@
"Could not remove server" : "Server konnte nicht entfernt werden",
"Server is already in the list of trusted servers." : "Server ist bereits in der Liste der vertrauenswürdigen Servern.",
"No server to federate with found" : "Es wurde kein Server zum Verbinden per Federation gefunden",
- "Could not add server" : "Konnte Server nicht hinzufügen",
+ "Could not add server" : "Server konnte nicht hinzugefügt werden",
"Trusted servers" : "Vertrauenswürdige Server",
"Federation" : "Federation",
"Federation allows you to connect with other trusted servers to exchange the account directory." : "Federation ermöglicht die Verbindung mit anderen vertrauenswürdigen Servern, um das Kontenverzeichnis auszutauschen.",
diff --git a/apps/federation/l10n/hu.js b/apps/federation/l10n/hu.js
index 66a52658118..953cd963196 100644
--- a/apps/federation/l10n/hu.js
+++ b/apps/federation/l10n/hu.js
@@ -2,14 +2,18 @@ OC.L10N.register(
"federation",
{
"Added to the list of trusted servers" : "Hozzáadva a megbízható kiszolgálók listájához",
+ "No server found with ID: %s" : "Nem található kiszolgáló az azonosítóval: %s",
+ "Could not remove server" : "Nem sikerült a kiszolgáló eltávolítása",
"Server is already in the list of trusted servers." : "A kiszolgáló már szerepel a megbízható kiszolgálók között.",
"No server to federate with found" : "Nem található olyan kiszolgáló, amellyel föderálni lehetne",
"Could not add server" : "A kiszolgáló nem adható hozzá",
"Trusted servers" : "Megbízható kiszolgálók",
"Federation" : "Föderáció",
"Federation allows you to connect with other trusted servers to exchange the account directory." : "A föderáció lehetővé teszi a más megbízható kiszolgálókhoz kapcsolódást, hogy a kiszolgálók fiókjegyzéket cserélhessenek.",
- "Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing." : "A föderáció lehetővé teszi a más megbízható kiszolgálókhoz kapcsolódást, hogy a kiszolgálók fiókjegyzéket cseréljenek. Például ennek segítségével lesznek automatikusan kiegészítve a külső fióókok a föderált megosztásnál.",
+ "Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing." : "A föderáció lehetővé teszi a más megbízható kiszolgálókhoz kapcsolódást, hogy a kiszolgálók fiókjegyzéket cseréljenek. Például ennek segítségével lesznek automatikusan kiegészítve a külső fiókok a föderált megosztásnál.",
+ "External documentation for Federated Cloud Sharing" : "Külső dokumentáció a föderált felhőmegosztáshoz",
"Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing. It is not necessary to add a server as trusted server in order to create a federated share." : "A föderáció lehetővé teszi a más megbízható kiszolgálókhoz kapcsolódást, hogy a kiszolgálók fiókjegyzéket cseréljenek. Például ennek segítségével lesznek automatikusan kiegészítve a külső fiókok a föderált megosztásnál. Nem szükséges egy kiszolgálót megbízhatóként hozzáadni ahhoz, hogy föderált megosztást hozzon létre.",
+ "Each server must validate the other. This process may require a few cron cycles." : "Minden kiszolgálónak ellenőriznie kell a másikat. Ez a folyat néhány cron ciklust vehet igénybe.",
"+ Add trusted server" : "+ Megbízható kiszolgáló hozzáadása",
"Trusted server" : "Megbízható kiszolgáló",
"Add" : "Hozzáadás"
diff --git a/apps/federation/l10n/hu.json b/apps/federation/l10n/hu.json
index 642ebe28217..d10201e424c 100644
--- a/apps/federation/l10n/hu.json
+++ b/apps/federation/l10n/hu.json
@@ -1,13 +1,17 @@
{ "translations": {
"Added to the list of trusted servers" : "Hozzáadva a megbízható kiszolgálók listájához",
+ "No server found with ID: %s" : "Nem található kiszolgáló az azonosítóval: %s",
+ "Could not remove server" : "Nem sikerült a kiszolgáló eltávolítása",
"Server is already in the list of trusted servers." : "A kiszolgáló már szerepel a megbízható kiszolgálók között.",
"No server to federate with found" : "Nem található olyan kiszolgáló, amellyel föderálni lehetne",
"Could not add server" : "A kiszolgáló nem adható hozzá",
"Trusted servers" : "Megbízható kiszolgálók",
"Federation" : "Föderáció",
"Federation allows you to connect with other trusted servers to exchange the account directory." : "A föderáció lehetővé teszi a más megbízható kiszolgálókhoz kapcsolódást, hogy a kiszolgálók fiókjegyzéket cserélhessenek.",
- "Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing." : "A föderáció lehetővé teszi a más megbízható kiszolgálókhoz kapcsolódást, hogy a kiszolgálók fiókjegyzéket cseréljenek. Például ennek segítségével lesznek automatikusan kiegészítve a külső fióókok a föderált megosztásnál.",
+ "Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing." : "A föderáció lehetővé teszi a más megbízható kiszolgálókhoz kapcsolódást, hogy a kiszolgálók fiókjegyzéket cseréljenek. Például ennek segítségével lesznek automatikusan kiegészítve a külső fiókok a föderált megosztásnál.",
+ "External documentation for Federated Cloud Sharing" : "Külső dokumentáció a föderált felhőmegosztáshoz",
"Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing. It is not necessary to add a server as trusted server in order to create a federated share." : "A föderáció lehetővé teszi a más megbízható kiszolgálókhoz kapcsolódást, hogy a kiszolgálók fiókjegyzéket cseréljenek. Például ennek segítségével lesznek automatikusan kiegészítve a külső fiókok a föderált megosztásnál. Nem szükséges egy kiszolgálót megbízhatóként hozzáadni ahhoz, hogy föderált megosztást hozzon létre.",
+ "Each server must validate the other. This process may require a few cron cycles." : "Minden kiszolgálónak ellenőriznie kell a másikat. Ez a folyat néhány cron ciklust vehet igénybe.",
"+ Add trusted server" : "+ Megbízható kiszolgáló hozzáadása",
"Trusted server" : "Megbízható kiszolgáló",
"Add" : "Hozzáadás"
diff --git a/apps/federation/l10n/lb.js b/apps/federation/l10n/lb.js
deleted file mode 100644
index df0f6d5d07a..00000000000
--- a/apps/federation/l10n/lb.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "federation",
- {
- "Server added to the list of trusted ownClouds" : "De Server gouf op d'Lëscht vun den zouverlässegen ownClouds gesat.",
- "Server is already in the list of trusted servers." : "De Server ass schonn op der Lëscht vun den zouverlässegen Serveren.",
- "No ownCloud server found" : "Keen ownCloud Server fonnt",
- "Could not add server" : "De Server konnt net derbäi gesat ginn",
- "Federation" : "Federatioun",
- "ownCloud Federation allows you to connect with other trusted ownClouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "D'ownCloud Federatioun erlaabt der fir dech mat aneren zouverlässegen ownClouds ze verbannen an d'Benotzer Verzeechnes auszetauschen. Zum Beispill gëtt dëst hei benotzt fir extern Benotzer automatesch fir federatiivt Deelen ze vervollstännegen.",
- "Add server automatically once a federated share was created successfully" : "Setz de Server automatesch derbäi soubal e federativen Undeel erfollegräich erstallt gouf",
- "Trusted ownCloud Servers" : "Zouverlässeg ownCloud Serveren",
- "+ Add ownCloud server" : "+ ownCloud Server derbäi setzen",
- "ownCloud Server" : "ownCloud Server"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/federation/l10n/lb.json b/apps/federation/l10n/lb.json
deleted file mode 100644
index 03179a4b8ee..00000000000
--- a/apps/federation/l10n/lb.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Server added to the list of trusted ownClouds" : "De Server gouf op d'Lëscht vun den zouverlässegen ownClouds gesat.",
- "Server is already in the list of trusted servers." : "De Server ass schonn op der Lëscht vun den zouverlässegen Serveren.",
- "No ownCloud server found" : "Keen ownCloud Server fonnt",
- "Could not add server" : "De Server konnt net derbäi gesat ginn",
- "Federation" : "Federatioun",
- "ownCloud Federation allows you to connect with other trusted ownClouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "D'ownCloud Federatioun erlaabt der fir dech mat aneren zouverlässegen ownClouds ze verbannen an d'Benotzer Verzeechnes auszetauschen. Zum Beispill gëtt dëst hei benotzt fir extern Benotzer automatesch fir federatiivt Deelen ze vervollstännegen.",
- "Add server automatically once a federated share was created successfully" : "Setz de Server automatesch derbäi soubal e federativen Undeel erfollegräich erstallt gouf",
- "Trusted ownCloud Servers" : "Zouverlässeg ownCloud Serveren",
- "+ Add ownCloud server" : "+ ownCloud Server derbäi setzen",
- "ownCloud Server" : "ownCloud Server"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/federation/l10n/nl.js b/apps/federation/l10n/nl.js
index 99aa1bfdd48..4633804db82 100644
--- a/apps/federation/l10n/nl.js
+++ b/apps/federation/l10n/nl.js
@@ -2,11 +2,18 @@ OC.L10N.register(
"federation",
{
"Added to the list of trusted servers" : "Toegevoegd aan de lijst met vertrouwde servers",
+ "No server found with ID: %s" : "Geen server gevonden met ID: %s",
+ "Could not remove server" : "Kon server niet verwijderen",
"Server is already in the list of trusted servers." : "Server bestaat reeds in de lijst van vertrouwde servers.",
"No server to federate with found" : "Geen server gevonden om mee te federeren",
"Could not add server" : "Kon server niet toevoegen",
"Trusted servers" : "Vertrouwde servers",
"Federation" : "Federatie",
+ "Federation allows you to connect with other trusted servers to exchange the account directory." : "Met Federatie kun je verbinding maken met andere vertrouwde servers om de accountmap uit te wisselen.",
+ "Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing." : "Federatie stelt je in staat om verbinding te maken met andere vertrouwde servers om de accountdirectory uit te wisselen. Dit zal bijvoorbeeld worden gebruikt om externe accounts automatisch aan te vullen voor gefedereerd delen.",
+ "External documentation for Federated Cloud Sharing" : "Externe documentatie voor Federated Cloud Sharing",
+ "Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing. It is not necessary to add a server as trusted server in order to create a federated share." : "Federatie stelt je in staat om verbinding te maken met andere vertrouwde servers om de accountdirectory uit te wisselen. Dit zal bijvoorbeeld worden gebruikt om externe accounts automatisch aan te vullen voor gefedereerd delen. Het is niet nodig om een server als vertrouwde server toe te voegen om een gefedereerde share te maken.",
+ "Each server must validate the other. This process may require a few cron cycles." : "Elke server moet de andere valideren. Dit proces kan enkele croncycli duren.",
"+ Add trusted server" : "+ Toevoegen vertrouwde server",
"Trusted server" : "Vertrouwde server",
"Add" : "Toevoegen"
diff --git a/apps/federation/l10n/nl.json b/apps/federation/l10n/nl.json
index 8e7a78f072b..e217a0b03d3 100644
--- a/apps/federation/l10n/nl.json
+++ b/apps/federation/l10n/nl.json
@@ -1,10 +1,17 @@
{ "translations": {
"Added to the list of trusted servers" : "Toegevoegd aan de lijst met vertrouwde servers",
+ "No server found with ID: %s" : "Geen server gevonden met ID: %s",
+ "Could not remove server" : "Kon server niet verwijderen",
"Server is already in the list of trusted servers." : "Server bestaat reeds in de lijst van vertrouwde servers.",
"No server to federate with found" : "Geen server gevonden om mee te federeren",
"Could not add server" : "Kon server niet toevoegen",
"Trusted servers" : "Vertrouwde servers",
"Federation" : "Federatie",
+ "Federation allows you to connect with other trusted servers to exchange the account directory." : "Met Federatie kun je verbinding maken met andere vertrouwde servers om de accountmap uit te wisselen.",
+ "Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing." : "Federatie stelt je in staat om verbinding te maken met andere vertrouwde servers om de accountdirectory uit te wisselen. Dit zal bijvoorbeeld worden gebruikt om externe accounts automatisch aan te vullen voor gefedereerd delen.",
+ "External documentation for Federated Cloud Sharing" : "Externe documentatie voor Federated Cloud Sharing",
+ "Federation allows you to connect with other trusted servers to exchange the account directory. For example this will be used to auto-complete external accounts for federated sharing. It is not necessary to add a server as trusted server in order to create a federated share." : "Federatie stelt je in staat om verbinding te maken met andere vertrouwde servers om de accountdirectory uit te wisselen. Dit zal bijvoorbeeld worden gebruikt om externe accounts automatisch aan te vullen voor gefedereerd delen. Het is niet nodig om een server als vertrouwde server toe te voegen om een gefedereerde share te maken.",
+ "Each server must validate the other. This process may require a few cron cycles." : "Elke server moet de andere valideren. Dit proces kan enkele croncycli duren.",
"+ Add trusted server" : "+ Toevoegen vertrouwde server",
"Trusted server" : "Vertrouwde server",
"Add" : "Toevoegen"
diff --git a/apps/federation/l10n/oc.js b/apps/federation/l10n/oc.js
deleted file mode 100644
index d65cc9bdef8..00000000000
--- a/apps/federation/l10n/oc.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "federation",
- {
- "No ownCloud server found" : "Cap de servidor ownCloud pas trobat",
- "Could not add server" : "Impossible d'apondre un servidor",
- "Federation" : "Federacion",
- "ownCloud Server" : "Servidor ownCloud"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/federation/l10n/oc.json b/apps/federation/l10n/oc.json
deleted file mode 100644
index 809a86fcaa8..00000000000
--- a/apps/federation/l10n/oc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "No ownCloud server found" : "Cap de servidor ownCloud pas trobat",
- "Could not add server" : "Impossible d'apondre un servidor",
- "Federation" : "Federacion",
- "ownCloud Server" : "Servidor ownCloud"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/federation/l10n/ro.js b/apps/federation/l10n/ro.js
deleted file mode 100644
index 19f37f329a1..00000000000
--- a/apps/federation/l10n/ro.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "federation",
- {
- "Server added to the list of trusted ownClouds" : "Server adăugat la lista serverelor ownCloud de încredere",
- "Server is already in the list of trusted servers." : "Serverul este deja pe lista celor de încredere.",
- "No ownCloud server found" : "Nu s-a găsit niciun server ownCloud",
- "Could not add server" : "Nu s-a putut adăuga serverul",
- "Federation" : "Federare",
- "ownCloud Federation allows you to connect with other trusted ownClouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federarea ownCloud îți permite să te conectezi la alte servere ownCloud de încredere pentru a partaja baza de utilizatori. De exemplu, va permite completarea automată a numelor utilizatorilor externi pentru partajarea federată.",
- "Add server automatically once a federated share was created successfully" : "Adaugă serverul automat odată ce elementul partajat federat a fost creat cu succes",
- "Trusted ownCloud Servers" : "Servere ownCloud de încredere",
- "+ Add ownCloud server" : "+ Adaugă server ownCloud",
- "ownCloud Server" : "Server ownCloud"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/federation/l10n/ro.json b/apps/federation/l10n/ro.json
deleted file mode 100644
index 0acb4ebd962..00000000000
--- a/apps/federation/l10n/ro.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Server added to the list of trusted ownClouds" : "Server adăugat la lista serverelor ownCloud de încredere",
- "Server is already in the list of trusted servers." : "Serverul este deja pe lista celor de încredere.",
- "No ownCloud server found" : "Nu s-a găsit niciun server ownCloud",
- "Could not add server" : "Nu s-a putut adăuga serverul",
- "Federation" : "Federare",
- "ownCloud Federation allows you to connect with other trusted ownClouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federarea ownCloud îți permite să te conectezi la alte servere ownCloud de încredere pentru a partaja baza de utilizatori. De exemplu, va permite completarea automată a numelor utilizatorilor externi pentru partajarea federată.",
- "Add server automatically once a federated share was created successfully" : "Adaugă serverul automat odată ce elementul partajat federat a fost creat cu succes",
- "Trusted ownCloud Servers" : "Servere ownCloud de încredere",
- "+ Add ownCloud server" : "+ Adaugă server ownCloud",
- "ownCloud Server" : "Server ownCloud"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/federation/lib/BackgroundJob/GetSharedSecret.php b/apps/federation/lib/BackgroundJob/GetSharedSecret.php
index fe3b360dd18..96b0c12c4cd 100644
--- a/apps/federation/lib/BackgroundJob/GetSharedSecret.php
+++ b/apps/federation/lib/BackgroundJob/GetSharedSecret.php
@@ -115,9 +115,9 @@ class GetSharedSecret extends Job {
} catch (ClientException $e) {
$status = $e->getCode();
if ($status === Http::STATUS_FORBIDDEN) {
- $this->logger->info($target . ' refused to exchange a shared secret with you.', ['app' => 'federation']);
+ $this->logger->info($target . ' refused to exchange a shared secret with you.');
} else {
- $this->logger->info($target . ' responded with a ' . $status . ' containing: ' . $e->getMessage(), ['app' => 'federation']);
+ $this->logger->info($target . ' responded with a ' . $status . ' containing: ' . $e->getMessage());
}
} catch (RequestException $e) {
$status = -1; // There is no status code if we could not connect
@@ -149,8 +149,7 @@ class GetSharedSecret extends Job {
);
} else {
$this->logger->error(
- 'remote server "' . $target . '"" does not return a valid shared secret. Received data: ' . $body,
- ['app' => 'federation']
+ 'remote server "' . $target . '"" does not return a valid shared secret. Received data: ' . $body
);
$this->trustedServers->setServerStatus($target, TrustedServers::STATUS_FAILURE);
}
diff --git a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php
index cc50ee75ca0..4d57d1f6aef 100644
--- a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php
+++ b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php
@@ -126,16 +126,16 @@ class RequestSharedSecret extends Job {
} catch (ClientException $e) {
$status = $e->getCode();
if ($status === Http::STATUS_FORBIDDEN) {
- $this->logger->info($target . ' refused to ask for a shared secret.', ['app' => 'federation']);
+ $this->logger->info($target . ' refused to ask for a shared secret.');
} else {
- $this->logger->info($target . ' responded with a ' . $status . ' containing: ' . $e->getMessage(), ['app' => 'federation']);
+ $this->logger->info($target . ' responded with a ' . $status . ' containing: ' . $e->getMessage());
}
} catch (RequestException $e) {
$status = -1; // There is no status code if we could not connect
- $this->logger->info('Could not connect to ' . $target, ['app' => 'federation']);
+ $this->logger->info('Could not connect to ' . $target);
} catch (\Throwable $e) {
$status = Http::STATUS_INTERNAL_SERVER_ERROR;
- $this->logger->error($e->getMessage(), ['app' => 'federation', 'exception' => $e]);
+ $this->logger->error($e->getMessage(), ['exception' => $e]);
}
// if we received a unexpected response we try again later
diff --git a/apps/federation/lib/Controller/OCSAuthAPIController.php b/apps/federation/lib/Controller/OCSAuthAPIController.php
index 44725fa0dba..16b401be251 100644
--- a/apps/federation/lib/Controller/OCSAuthAPIController.php
+++ b/apps/federation/lib/Controller/OCSAuthAPIController.php
@@ -98,7 +98,7 @@ class OCSAuthAPIController extends OCSController {
public function requestSharedSecret(string $url, string $token): DataResponse {
if ($this->trustedServers->isTrustedServer($url) === false) {
$this->throttler->registerAttempt('federationSharedSecret', $this->request->getRemoteAddress());
- $this->logger->error('remote server not trusted (' . $url . ') while requesting shared secret', ['app' => 'federation']);
+ $this->logger->error('remote server not trusted (' . $url . ') while requesting shared secret');
throw new OCSForbiddenException();
}
@@ -107,8 +107,7 @@ class OCSAuthAPIController extends OCSController {
$localToken = $this->dbHandler->getToken($url);
if (strcmp($localToken, $token) > 0) {
$this->logger->info(
- 'remote server (' . $url . ') presented lower token. We will initiate the exchange of the shared secret.',
- ['app' => 'federation']
+ 'remote server (' . $url . ') presented lower token. We will initiate the exchange of the shared secret.'
);
throw new OCSForbiddenException();
}
@@ -141,7 +140,7 @@ class OCSAuthAPIController extends OCSController {
public function getSharedSecret(string $url, string $token): DataResponse {
if ($this->trustedServers->isTrustedServer($url) === false) {
$this->throttler->registerAttempt('federationSharedSecret', $this->request->getRemoteAddress());
- $this->logger->error('remote server not trusted (' . $url . ') while getting shared secret', ['app' => 'federation']);
+ $this->logger->error('remote server not trusted (' . $url . ') while getting shared secret');
throw new OCSForbiddenException();
}
@@ -149,8 +148,7 @@ class OCSAuthAPIController extends OCSController {
$this->throttler->registerAttempt('federationSharedSecret', $this->request->getRemoteAddress());
$expectedToken = $this->dbHandler->getToken($url);
$this->logger->error(
- 'remote server (' . $url . ') didn\'t send a valid token (got "' . $token . '" but expected "' . $expectedToken . '") while getting shared secret',
- ['app' => 'federation']
+ 'remote server (' . $url . ') didn\'t send a valid token (got "' . $token . '" but expected "' . $expectedToken . '") while getting shared secret'
);
throw new OCSForbiddenException();
}
diff --git a/apps/federation/lib/SyncJob.php b/apps/federation/lib/SyncJob.php
index 21f8318f6f9..b802dfa9308 100644
--- a/apps/federation/lib/SyncJob.php
+++ b/apps/federation/lib/SyncJob.php
@@ -27,7 +27,6 @@ class SyncJob extends TimedJob {
$this->syncService->syncThemAll(function ($url, $ex): void {
if ($ex instanceof \Exception) {
$this->logger->error("Error while syncing $url.", [
- 'app' => 'fed-sync',
'exception' => $ex,
]);
}
diff --git a/apps/federation/lib/TrustedServers.php b/apps/federation/lib/TrustedServers.php
index a62ddfa1275..3b849c80f17 100644
--- a/apps/federation/lib/TrustedServers.php
+++ b/apps/federation/lib/TrustedServers.php
@@ -169,7 +169,6 @@ class TrustedServers {
}
} catch (\Exception $e) {
$this->logger->error('No Nextcloud server.', [
- 'app' => 'federation',
'exception' => $e,
]);
return false;
diff --git a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
index 3da2e2e15e4..7ac68d618a1 100644
--- a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
+++ b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -77,12 +78,9 @@ class GetSharedSecretTest extends TestCase {
/**
* @dataProvider dataTestExecute
- *
- * @param bool $isTrustedServer
- * @param bool $retainBackgroundJob
*/
public function testExecute(bool $isTrustedServer, bool $retainBackgroundJob): void {
- /** @var GetSharedSecret |\PHPUnit\Framework\MockObject\MockObject $getSharedSecret */
+ /** @var GetSharedSecret&MockObject $getSharedSecret */
$getSharedSecret = $this->getMockBuilder(GetSharedSecret::class)
->setConstructorArgs(
[
@@ -95,8 +93,10 @@ class GetSharedSecretTest extends TestCase {
$this->timeFactory,
$this->config,
]
- )->setMethods(['parentStart'])->getMock();
- $this->invokePrivate($getSharedSecret, 'argument', [['url' => 'url', 'token' => 'token']]);
+ )
+ ->onlyMethods(['parentStart'])
+ ->getMock();
+ self::invokePrivate($getSharedSecret, 'argument', [['url' => 'url', 'token' => 'token']]);
$this->trustedServers->expects($this->once())->method('isTrustedServer')
->with('url')->willReturn($isTrustedServer);
@@ -105,7 +105,7 @@ class GetSharedSecretTest extends TestCase {
} else {
$getSharedSecret->expects($this->never())->method('parentStart');
}
- $this->invokePrivate($getSharedSecret, 'retainJob', [$retainBackgroundJob]);
+ self::invokePrivate($getSharedSecret, 'retainJob', [$retainBackgroundJob]);
$this->jobList->expects($this->once())->method('remove');
$this->timeFactory->method('getTime')->willReturn(42);
@@ -128,7 +128,7 @@ class GetSharedSecretTest extends TestCase {
$getSharedSecret->start($this->jobList);
}
- public function dataTestExecute() {
+ public static function dataTestExecute(): array {
return [
[true, true],
[true, false],
@@ -138,10 +138,8 @@ class GetSharedSecretTest extends TestCase {
/**
* @dataProvider dataTestRun
- *
- * @param int $statusCode
*/
- public function testRun($statusCode): void {
+ public function testRun(int $statusCode): void {
$target = 'targetURL';
$source = 'sourceURL';
$token = 'token';
@@ -181,18 +179,18 @@ class GetSharedSecretTest extends TestCase {
$this->trustedServers->expects($this->never())->method('addSharedSecret');
}
- $this->invokePrivate($this->getSharedSecret, 'run', [$argument]);
+ self::invokePrivate($this->getSharedSecret, 'run', [$argument]);
if (
$statusCode !== Http::STATUS_OK
&& $statusCode !== Http::STATUS_FORBIDDEN
) {
- $this->assertTrue($this->invokePrivate($this->getSharedSecret, 'retainJob'));
+ $this->assertTrue(self::invokePrivate($this->getSharedSecret, 'retainJob'));
} else {
- $this->assertFalse($this->invokePrivate($this->getSharedSecret, 'retainJob'));
+ $this->assertFalse(self::invokePrivate($this->getSharedSecret, 'retainJob'));
}
}
- public function dataTestRun() {
+ public static function dataTestRun(): array {
return [
[Http::STATUS_OK],
[Http::STATUS_FORBIDDEN],
@@ -227,7 +225,7 @@ class GetSharedSecretTest extends TestCase {
TrustedServers::STATUS_FAILURE
);
- $this->invokePrivate($this->getSharedSecret, 'run', [$argument]);
+ self::invokePrivate($this->getSharedSecret, 'run', [$argument]);
}
public function testRunConnectionError(): void {
@@ -263,8 +261,8 @@ class GetSharedSecretTest extends TestCase {
$this->trustedServers->expects($this->never())->method('addSharedSecret');
- $this->invokePrivate($this->getSharedSecret, 'run', [$argument]);
+ self::invokePrivate($this->getSharedSecret, 'run', [$argument]);
- $this->assertTrue($this->invokePrivate($this->getSharedSecret, 'retainJob'));
+ $this->assertTrue(self::invokePrivate($this->getSharedSecret, 'retainJob'));
}
}
diff --git a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php
index 68f8cc070c8..8bec10c11e1 100644
--- a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php
+++ b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -24,50 +25,28 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class RequestSharedSecretTest extends TestCase {
- /** @var MockObject|IClientService */
- private $httpClientService;
-
- /** @var MockObject|IClient */
- private $httpClient;
-
- /** @var MockObject|IJobList */
- private $jobList;
-
- /** @var MockObject|IURLGenerator */
- private $urlGenerator;
-
- /** @var MockObject|TrustedServers */
- private $trustedServers;
-
- /** @var MockObject|IResponse */
- private $response;
-
- /** @var MockObject|IDiscoveryService */
- private $discoveryService;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
-
- /** @var MockObject|ITimeFactory */
- private $timeFactory;
-
- /** @var MockObject|IConfig */
- private $config;
-
- /** @var RequestSharedSecret */
- private $requestSharedSecret;
+ private IClientService&MockObject $httpClientService;
+ private IClient&MockObject $httpClient;
+ private IJobList&MockObject $jobList;
+ private IURLGenerator&MockObject $urlGenerator;
+ private TrustedServers&MockObject $trustedServers;
+ private IResponse&MockObject $response;
+ private IDiscoveryService&MockObject $discoveryService;
+ private LoggerInterface&MockObject $logger;
+ private ITimeFactory&MockObject $timeFactory;
+ private IConfig&MockObject $config;
+ private RequestSharedSecret $requestSharedSecret;
protected function setUp(): void {
parent::setUp();
$this->httpClientService = $this->createMock(IClientService::class);
- $this->httpClient = $this->getMockBuilder(IClient::class)->getMock();
- $this->jobList = $this->getMockBuilder(IJobList::class)->getMock();
- $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->getMock();
- $this->trustedServers = $this->getMockBuilder(TrustedServers::class)
- ->disableOriginalConstructor()->getMock();
- $this->response = $this->getMockBuilder(IResponse::class)->getMock();
- $this->discoveryService = $this->getMockBuilder(IDiscoveryService::class)->getMock();
+ $this->httpClient = $this->createMock(IClient::class);
+ $this->jobList = $this->createMock(IJobList::class);
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
+ $this->trustedServers = $this->createMock(TrustedServers::class);
+ $this->response = $this->createMock(IResponse::class);
+ $this->discoveryService = $this->createMock(IDiscoveryService::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->config = $this->createMock(IConfig::class);
@@ -89,13 +68,10 @@ class RequestSharedSecretTest extends TestCase {
/**
* @dataProvider dataTestStart
- *
- * @param bool $isTrustedServer
- * @param bool $retainBackgroundJob
*/
- public function testStart($isTrustedServer, $retainBackgroundJob): void {
- /** @var RequestSharedSecret |MockObject $requestSharedSecret */
- $requestSharedSecret = $this->getMockBuilder('OCA\Federation\BackgroundJob\RequestSharedSecret')
+ public function testStart(bool $isTrustedServer, bool $retainBackgroundJob): void {
+ /** @var RequestSharedSecret&MockObject $requestSharedSecret */
+ $requestSharedSecret = $this->getMockBuilder(RequestSharedSecret::class)
->setConstructorArgs(
[
$this->httpClientService,
@@ -107,8 +83,10 @@ class RequestSharedSecretTest extends TestCase {
$this->timeFactory,
$this->config,
]
- )->setMethods(['parentStart'])->getMock();
- $this->invokePrivate($requestSharedSecret, 'argument', [['url' => 'url', 'token' => 'token']]);
+ )
+ ->onlyMethods(['parentStart'])
+ ->getMock();
+ self::invokePrivate($requestSharedSecret, 'argument', [['url' => 'url', 'token' => 'token']]);
$this->trustedServers->expects($this->once())->method('isTrustedServer')
->with('url')->willReturn($isTrustedServer);
@@ -117,7 +95,7 @@ class RequestSharedSecretTest extends TestCase {
} else {
$requestSharedSecret->expects($this->never())->method('parentStart');
}
- $this->invokePrivate($requestSharedSecret, 'retainJob', [$retainBackgroundJob]);
+ self::invokePrivate($requestSharedSecret, 'retainJob', [$retainBackgroundJob]);
$this->jobList->expects($this->once())->method('remove');
$this->timeFactory->method('getTime')->willReturn(42);
@@ -141,7 +119,7 @@ class RequestSharedSecretTest extends TestCase {
$requestSharedSecret->start($this->jobList);
}
- public function dataTestStart() {
+ public static function dataTestStart(): array {
return [
[true, true],
[true, false],
@@ -151,8 +129,6 @@ class RequestSharedSecretTest extends TestCase {
/**
* @dataProvider dataTestRun
- *
- * @param int $statusCode
*/
public function testRun(int $statusCode, int $attempt = 0): void {
$target = 'targetURL';
@@ -184,18 +160,18 @@ class RequestSharedSecretTest extends TestCase {
$this->response->expects($this->once())->method('getStatusCode')
->willReturn($statusCode);
- $this->invokePrivate($this->requestSharedSecret, 'run', [$argument]);
+ self::invokePrivate($this->requestSharedSecret, 'run', [$argument]);
if (
$statusCode !== Http::STATUS_OK
&& ($statusCode !== Http::STATUS_FORBIDDEN || $attempt < 5)
) {
- $this->assertTrue($this->invokePrivate($this->requestSharedSecret, 'retainJob'));
+ $this->assertTrue(self::invokePrivate($this->requestSharedSecret, 'retainJob'));
} else {
- $this->assertFalse($this->invokePrivate($this->requestSharedSecret, 'retainJob'));
+ $this->assertFalse(self::invokePrivate($this->requestSharedSecret, 'retainJob'));
}
}
- public function dataTestRun() {
+ public static function dataTestRun(): array {
return [
[Http::STATUS_OK],
[Http::STATUS_FORBIDDEN, 5],
@@ -231,7 +207,7 @@ class RequestSharedSecretTest extends TestCase {
TrustedServers::STATUS_FAILURE
);
- $this->invokePrivate($this->requestSharedSecret, 'run', [$argument]);
+ self::invokePrivate($this->requestSharedSecret, 'run', [$argument]);
}
public function testRunConnectionError(): void {
@@ -267,7 +243,7 @@ class RequestSharedSecretTest extends TestCase {
]
)->willThrowException($this->createMock(ConnectException::class));
- $this->invokePrivate($this->requestSharedSecret, 'run', [$argument]);
- $this->assertTrue($this->invokePrivate($this->requestSharedSecret, 'retainJob'));
+ self::invokePrivate($this->requestSharedSecret, 'run', [$argument]);
+ $this->assertTrue(self::invokePrivate($this->requestSharedSecret, 'retainJob'));
}
}
diff --git a/apps/federation/tests/Controller/OCSAuthAPIControllerTest.php b/apps/federation/tests/Controller/OCSAuthAPIControllerTest.php
index 9f2d41a1072..25b0db94e21 100644
--- a/apps/federation/tests/Controller/OCSAuthAPIControllerTest.php
+++ b/apps/federation/tests/Controller/OCSAuthAPIControllerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +9,7 @@
namespace OCA\Federation\Tests\Controller;
use OC\BackgroundJob\JobList;
+use OCA\Federation\BackgroundJob\GetSharedSecret;
use OCA\Federation\Controller\OCSAuthAPIController;
use OCA\Federation\DbHandler;
use OCA\Federation\TrustedServers;
@@ -16,34 +18,19 @@ use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IRequest;
use OCP\Security\Bruteforce\IThrottler;
use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class OCSAuthAPIControllerTest extends TestCase {
- /** @var \PHPUnit\Framework\MockObject\MockObject|IRequest */
- private $request;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|ISecureRandom */
- private $secureRandom;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|JobList */
- private $jobList;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|TrustedServers */
- private $trustedServers;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|DbHandler */
- private $dbHandler;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|LoggerInterface */
- private $logger;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|ITimeFactory */
- private $timeFactory;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|IThrottler */
- private $throttler;
-
+ private IRequest&MockObject $request;
+ private ISecureRandom&MockObject $secureRandom;
+ private JobList&MockObject $jobList;
+ private TrustedServers&MockObject $trustedServers;
+ private DbHandler&MockObject $dbHandler;
+ private LoggerInterface&MockObject $logger;
+ private ITimeFactory&MockObject $timeFactory;
+ private IThrottler&MockObject $throttler;
private OCSAuthAPIController $ocsAuthApi;
/** @var int simulated timestamp */
@@ -91,7 +78,7 @@ class OCSAuthAPIControllerTest extends TestCase {
if ($ok) {
$this->jobList->expects($this->once())->method('add')
- ->with('OCA\Federation\BackgroundJob\GetSharedSecret', ['url' => $url, 'token' => $token, 'created' => $this->currentTime]);
+ ->with(GetSharedSecret::class, ['url' => $url, 'token' => $token, 'created' => $this->currentTime]);
} else {
$this->jobList->expects($this->never())->method('add');
$this->jobList->expects($this->never())->method('remove');
@@ -111,7 +98,7 @@ class OCSAuthAPIControllerTest extends TestCase {
}
}
- public function dataTestRequestSharedSecret() {
+ public static function dataTestRequestSharedSecret(): array {
return [
['token2', 'token1', true, true],
['token1', 'token2', false, false],
@@ -126,8 +113,8 @@ class OCSAuthAPIControllerTest extends TestCase {
$url = 'url';
$token = 'token';
- /** @var OCSAuthAPIController | \PHPUnit\Framework\MockObject\MockObject $ocsAuthApi */
- $ocsAuthApi = $this->getMockBuilder('OCA\Federation\Controller\OCSAuthAPIController')
+ /** @var OCSAuthAPIController&MockObject $ocsAuthApi */
+ $ocsAuthApi = $this->getMockBuilder(OCSAuthAPIController::class)
->setConstructorArgs(
[
'federation',
@@ -140,7 +127,9 @@ class OCSAuthAPIControllerTest extends TestCase {
$this->timeFactory,
$this->throttler
]
- )->setMethods(['isValidToken'])->getMock();
+ )
+ ->onlyMethods(['isValidToken'])
+ ->getMock();
$this->trustedServers
->expects($this->any())
@@ -171,7 +160,7 @@ class OCSAuthAPIControllerTest extends TestCase {
}
}
- public function dataTestGetSharedSecret() {
+ public static function dataTestGetSharedSecret(): array {
return [
[true, true, true],
[false, true, false],
diff --git a/apps/federation/tests/Controller/SettingsControllerTest.php b/apps/federation/tests/Controller/SettingsControllerTest.php
index c3e83945e9a..d88f397da34 100644
--- a/apps/federation/tests/Controller/SettingsControllerTest.php
+++ b/apps/federation/tests/Controller/SettingsControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -20,19 +22,18 @@ use Test\TestCase;
class SettingsControllerTest extends TestCase {
private SettingsController $controller;
- private MockObject&IRequest $request;
- private MockObject&IL10N $l10n;
- private MockObject&TrustedServers $trustedServers;
- private MockObject&LoggerInterface $logger;
+ private IRequest&MockObject $request;
+ private IL10N&MockObject $l10n;
+ private TrustedServers&MockObject $trustedServers;
+ private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
- $this->request = $this->getMockBuilder(IRequest::class)->getMock();
- $this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
- $this->trustedServers = $this->getMockBuilder(TrustedServers::class)
- ->disableOriginalConstructor()->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)->getMock();
+ $this->request = $this->createMock(IRequest::class);
+ $this->l10n = $this->createMock(IL10N::class);
+ $this->trustedServers = $this->createMock(TrustedServers::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->controller = new SettingsController(
'SettingsControllerTest',
@@ -56,7 +57,7 @@ class SettingsControllerTest extends TestCase {
->willReturn(true);
$result = $this->controller->addServer('url');
- $this->assertTrue($result instanceof DataResponse);
+ $this->assertInstanceOf(DataResponse::class, $result);
$data = $result->getData();
$this->assertSame(200, $result->getStatus());
@@ -110,7 +111,7 @@ class SettingsControllerTest extends TestCase {
->willReturn(true);
$this->assertNull(
- $this->invokePrivate($this->controller, 'checkServer', ['url'])
+ self::invokePrivate($this->controller, 'checkServer', ['url'])
);
}
@@ -136,14 +137,11 @@ class SettingsControllerTest extends TestCase {
}
$this->assertTrue(
- $this->invokePrivate($this->controller, 'checkServer', ['url'])
+ self::invokePrivate($this->controller, 'checkServer', ['url'])
);
}
- /**
- * Data to simulate checkServer fails
- */
- public function checkServerFails(): array {
+ public static function checkServerFails(): array {
return [
[true, true],
[false, false]
diff --git a/apps/federation/tests/DAV/FedAuthTest.php b/apps/federation/tests/DAV/FedAuthTest.php
index d059fff0481..c49e6f7e86f 100644
--- a/apps/federation/tests/DAV/FedAuthTest.php
+++ b/apps/federation/tests/DAV/FedAuthTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -9,27 +10,24 @@ namespace OCA\Federation\Tests\DAV;
use OCA\Federation\DAV\FedAuth;
use OCA\Federation\DbHandler;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class FedAuthTest extends TestCase {
/**
* @dataProvider providesUser
- *
- * @param array $expected
- * @param string $user
- * @param string $password
*/
- public function testFedAuth($expected, $user, $password): void {
- /** @var DbHandler | \PHPUnit\Framework\MockObject\MockObject $db */
- $db = $this->getMockBuilder('OCA\Federation\DbHandler')->disableOriginalConstructor()->getMock();
+ public function testFedAuth(bool $expected, string $user, string $password): void {
+ /** @var DbHandler&MockObject $db */
+ $db = $this->createMock(DbHandler::class);
$db->method('auth')->willReturn(true);
$auth = new FedAuth($db);
- $result = $this->invokePrivate($auth, 'validateUserPass', [$user, $password]);
+ $result = self::invokePrivate($auth, 'validateUserPass', [$user, $password]);
$this->assertEquals($expected, $result);
}
- public function providesUser() {
+ public static function providesUser(): array {
return [
[true, 'system', '123456']
];
diff --git a/apps/federation/tests/DbHandlerTest.php b/apps/federation/tests/DbHandlerTest.php
index 1db9f7f2315..a9abdbf776c 100644
--- a/apps/federation/tests/DbHandlerTest.php
+++ b/apps/federation/tests/DbHandlerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,30 +13,23 @@ use OCA\Federation\TrustedServers;
use OCP\IDBConnection;
use OCP\IL10N;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
/**
* @group DB
*/
class DbHandlerTest extends TestCase {
-
- /** @var DbHandler */
- private $dbHandler;
-
- /** @var IL10N | \PHPUnit\Framework\MockObject\MockObject */
- private $il10n;
-
- /** @var IDBConnection */
- private $connection;
-
- /** @var string */
- private $dbTable = 'trusted_servers';
+ private DbHandler $dbHandler;
+ private IL10N&MockObject $il10n;
+ private IDBConnection $connection;
+ private string $dbTable = 'trusted_servers';
protected function setUp(): void {
parent::setUp();
$this->connection = Server::get(IDBConnection::class);
- $this->il10n = $this->getMockBuilder(IL10N::class)->getMock();
+ $this->il10n = $this->createMock(IL10N::class);
$this->dbHandler = new DbHandler(
$this->connection,
@@ -44,16 +38,17 @@ class DbHandlerTest extends TestCase {
$query = $this->connection->getQueryBuilder()->select('*')->from($this->dbTable);
- $qResult = $query->execute();
+ $qResult = $query->executeQuery();
$result = $qResult->fetchAll();
$qResult->closeCursor();
$this->assertEmpty($result, 'we need to start with a empty trusted_servers table');
}
protected function tearDown(): void {
- parent::tearDown();
$query = $this->connection->getQueryBuilder()->delete($this->dbTable);
- $query->execute();
+ $query->executeStatement()
+ ;
+ parent::tearDown();
}
/**
@@ -63,7 +58,7 @@ class DbHandlerTest extends TestCase {
* @param string $expectedUrl the url we expect to be written to the db
* @param string $expectedHash the hash value we expect to be written to the db
*/
- public function testAddServer($url, $expectedUrl, $expectedHash): void {
+ public function testAddServer(string $url, string $expectedUrl, string $expectedHash): void {
$id = $this->dbHandler->addServer($url);
$query = $this->connection->getQueryBuilder()->select('*')->from($this->dbTable);
@@ -71,14 +66,14 @@ class DbHandlerTest extends TestCase {
$qResult = $query->execute();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(1, count($result));
+ $this->assertCount(1, $result);
$this->assertSame($expectedUrl, $result[0]['url']);
$this->assertSame($id, (int)$result[0]['id']);
$this->assertSame($expectedHash, $result[0]['url_hash']);
$this->assertSame(TrustedServers::STATUS_PENDING, (int)$result[0]['status']);
}
- public function dataTestAddServer() {
+ public static function dataTestAddServer(): array {
return [
['http://owncloud.org', 'http://owncloud.org', sha1('owncloud.org')],
['https://owncloud.org', 'https://owncloud.org', sha1('owncloud.org')],
@@ -95,7 +90,7 @@ class DbHandlerTest extends TestCase {
$qResult = $query->execute();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(2, count($result));
+ $this->assertCount(2, $result);
$this->assertSame('server1', $result[0]['url']);
$this->assertSame('server2', $result[1]['url']);
$this->assertSame($id1, (int)$result[0]['id']);
@@ -107,7 +102,7 @@ class DbHandlerTest extends TestCase {
$qResult = $query->execute();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(1, count($result));
+ $this->assertCount(1, $result);
$this->assertSame('server1', $result[0]['url']);
$this->assertSame($id1, (int)$result[0]['id']);
}
@@ -135,19 +130,15 @@ class DbHandlerTest extends TestCase {
/**
* @dataProvider dataTestServerExists
- *
- * @param string $serverInTable
- * @param string $checkForServer
- * @param bool $expected
*/
- public function testServerExists($serverInTable, $checkForServer, $expected): void {
+ public function testServerExists(string $serverInTable, string $checkForServer, bool $expected): void {
$this->dbHandler->addServer($serverInTable);
$this->assertSame($expected,
$this->dbHandler->serverExists($checkForServer)
);
}
- public function dataTestServerExists() {
+ public static function dataTestServerExists(): array {
return [
['server1', 'server1', true],
['server1', 'http://server1', true],
@@ -159,18 +150,18 @@ class DbHandlerTest extends TestCase {
$this->dbHandler->addServer('server1');
$query = $this->connection->getQueryBuilder()->select('*')->from($this->dbTable);
- $qResult = $query->execute();
+ $qResult = $query->executeQuery();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(1, count($result));
+ $this->assertCount(1, $result);
$this->assertSame(null, $result[0]['token']);
$this->dbHandler->addToken('http://server1', 'token');
$query = $this->connection->getQueryBuilder()->select('*')->from($this->dbTable);
- $qResult = $query->execute();
+ $qResult = $query->executeQuery();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(1, count($result));
+ $this->assertCount(1, $result);
$this->assertSame('token', $result[0]['token']);
}
@@ -189,7 +180,7 @@ class DbHandlerTest extends TestCase {
$qResult = $query->execute();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(1, count($result));
+ $this->assertCount(1, $result);
$this->assertSame(null, $result[0]['shared_secret']);
$this->dbHandler->addSharedSecret('http://server1', 'secret');
$query = $this->connection->getQueryBuilder()->select('*')->from($this->dbTable);
@@ -197,7 +188,7 @@ class DbHandlerTest extends TestCase {
$qResult = $query->execute();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(1, count($result));
+ $this->assertCount(1, $result);
$this->assertSame('secret', $result[0]['shared_secret']);
}
@@ -213,18 +204,18 @@ class DbHandlerTest extends TestCase {
$this->dbHandler->addServer('server1');
$query = $this->connection->getQueryBuilder()->select('*')->from($this->dbTable);
- $qResult = $query->execute();
+ $qResult = $query->executeQuery();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(1, count($result));
+ $this->assertCount(1, $result);
$this->assertSame(TrustedServers::STATUS_PENDING, (int)$result[0]['status']);
$this->dbHandler->setServerStatus('http://server1', TrustedServers::STATUS_OK);
$query = $this->connection->getQueryBuilder()->select('*')->from($this->dbTable);
- $qResult = $query->execute();
+ $qResult = $query->executeQuery();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(1, count($result));
+ $this->assertCount(1, $result);
$this->assertSame(TrustedServers::STATUS_OK, (int)$result[0]['status']);
}
@@ -245,17 +236,14 @@ class DbHandlerTest extends TestCase {
* hash should always be computed with the normalized URL
*
* @dataProvider dataTestHash
- *
- * @param string $url
- * @param string $expected
*/
- public function testHash($url, $expected): void {
+ public function testHash(string $url, string $expected): void {
$this->assertSame($expected,
$this->invokePrivate($this->dbHandler, 'hash', [$url])
);
}
- public function dataTestHash() {
+ public static function dataTestHash(): array {
return [
['server1', sha1('server1')],
['http://server1', sha1('server1')],
@@ -266,17 +254,14 @@ class DbHandlerTest extends TestCase {
/**
* @dataProvider dataTestNormalizeUrl
- *
- * @param string $url
- * @param string $expected
*/
- public function testNormalizeUrl($url, $expected): void {
+ public function testNormalizeUrl(string $url, string $expected): void {
$this->assertSame($expected,
$this->invokePrivate($this->dbHandler, 'normalizeUrl', [$url])
);
}
- public function dataTestNormalizeUrl() {
+ public static function dataTestNormalizeUrl(): array {
return [
['owncloud.org', 'owncloud.org'],
['http://owncloud.org', 'owncloud.org'],
@@ -289,7 +274,7 @@ class DbHandlerTest extends TestCase {
/**
* @dataProvider providesAuth
*/
- public function testAuth($expectedResult, $user, $password): void {
+ public function testAuth(bool $expectedResult, string $user, string $password): void {
if ($expectedResult) {
$this->dbHandler->addServer('url1');
$this->dbHandler->addSharedSecret('url1', $password);
@@ -298,7 +283,7 @@ class DbHandlerTest extends TestCase {
$this->assertEquals($expectedResult, $result);
}
- public function providesAuth() {
+ public static function providesAuth(): array {
return [
[false, 'foo', ''],
[true, 'system', '123456789'],
diff --git a/apps/federation/tests/Settings/AdminTest.php b/apps/federation/tests/Settings/AdminTest.php
index 3d58fae2d7b..b4c7121c5c9 100644
--- a/apps/federation/tests/Settings/AdminTest.php
+++ b/apps/federation/tests/Settings/AdminTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,17 +11,16 @@ use OCA\Federation\Settings\Admin;
use OCA\Federation\TrustedServers;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IL10N;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AdminTest extends TestCase {
- /** @var Admin */
- private $admin;
- /** @var TrustedServers */
- private $trustedServers;
+ private TrustedServers&MockObject $trustedServers;
+ private Admin $admin;
protected function setUp(): void {
parent::setUp();
- $this->trustedServers = $this->getMockBuilder('\OCA\Federation\TrustedServers')->disableOriginalConstructor()->getMock();
+ $this->trustedServers = $this->createMock(\OCA\Federation\TrustedServers::class);
$this->admin = new Admin(
$this->trustedServers,
$this->createMock(IL10N::class)
diff --git a/apps/federation/tests/SyncFederationAddressbooksTest.php b/apps/federation/tests/SyncFederationAddressbooksTest.php
index 39274a11ade..aebd4aa2b93 100644
--- a/apps/federation/tests/SyncFederationAddressbooksTest.php
+++ b/apps/federation/tests/SyncFederationAddressbooksTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,30 +17,21 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class SyncFederationAddressbooksTest extends \Test\TestCase {
-
- /** @var array */
- private $callBacks = [];
-
- /** @var MockObject | DiscoveryService */
- private $discoveryService;
-
- /** @var MockObject|LoggerInterface */
- private $logger;
+ private array $callBacks = [];
+ private DiscoveryService&MockObject $discoveryService;
+ private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
- $this->discoveryService = $this->getMockBuilder(DiscoveryService::class)
- ->disableOriginalConstructor()->getMock();
+ $this->discoveryService = $this->createMock(DiscoveryService::class);
$this->discoveryService->expects($this->any())->method('discover')->willReturn([]);
$this->logger = $this->createMock(LoggerInterface::class);
}
public function testSync(): void {
- /** @var DbHandler | MockObject $dbHandler */
- $dbHandler = $this->getMockBuilder('OCA\Federation\DbHandler')
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var DbHandler&MockObject $dbHandler */
+ $dbHandler = $this->createMock(DbHandler::class);
$dbHandler->method('getAllServer')
->willReturn([
[
@@ -51,9 +43,7 @@ class SyncFederationAddressbooksTest extends \Test\TestCase {
]);
$dbHandler->expects($this->once())->method('setServerStatus')->
with('https://cloud.drop.box', 1, '1');
- $syncService = $this->getMockBuilder('OCA\DAV\CardDAV\SyncService')
- ->disableOriginalConstructor()
- ->getMock();
+ $syncService = $this->createMock(SyncService::class);
$syncService->expects($this->once())->method('syncRemoteAddressBook')
->willReturn('1');
@@ -62,14 +52,12 @@ class SyncFederationAddressbooksTest extends \Test\TestCase {
$s->syncThemAll(function ($url, $ex): void {
$this->callBacks[] = [$url, $ex];
});
- $this->assertEquals('1', count($this->callBacks));
+ $this->assertCount(1, $this->callBacks);
}
public function testException(): void {
- /** @var DbHandler | MockObject $dbHandler */
- $dbHandler = $this->getMockBuilder('OCA\Federation\DbHandler')->
- disableOriginalConstructor()->
- getMock();
+ /** @var DbHandler&MockObject $dbHandler */
+ $dbHandler = $this->createMock(DbHandler::class);
$dbHandler->method('getAllServer')->
willReturn([
[
@@ -79,9 +67,7 @@ class SyncFederationAddressbooksTest extends \Test\TestCase {
'sync_token' => '0'
]
]);
- $syncService = $this->getMockBuilder('OCA\DAV\CardDAV\SyncService')
- ->disableOriginalConstructor()
- ->getMock();
+ $syncService = $this->createMock(SyncService::class);
$syncService->expects($this->once())->method('syncRemoteAddressBook')
->willThrowException(new \Exception('something did not work out'));
@@ -90,14 +76,12 @@ class SyncFederationAddressbooksTest extends \Test\TestCase {
$s->syncThemAll(function ($url, $ex): void {
$this->callBacks[] = [$url, $ex];
});
- $this->assertEquals(2, count($this->callBacks));
+ $this->assertCount(2, $this->callBacks);
}
public function testSuccessfulSyncWithoutChangesAfterFailure(): void {
- /** @var DbHandler | MockObject $dbHandler */
- $dbHandler = $this->getMockBuilder('OCA\Federation\DbHandler')
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var DbHandler&MockObject $dbHandler */
+ $dbHandler = $this->createMock(DbHandler::class);
$dbHandler->method('getAllServer')
->willReturn([
[
@@ -110,9 +94,7 @@ class SyncFederationAddressbooksTest extends \Test\TestCase {
$dbHandler->method('getServerStatus')->willReturn(TrustedServers::STATUS_FAILURE);
$dbHandler->expects($this->once())->method('setServerStatus')->
with('https://cloud.drop.box', 1);
- $syncService = $this->getMockBuilder('OCA\DAV\CardDAV\SyncService')
- ->disableOriginalConstructor()
- ->getMock();
+ $syncService = $this->createMock(SyncService::class);
$syncService->expects($this->once())->method('syncRemoteAddressBook')
->willReturn('0');
@@ -121,6 +103,6 @@ class SyncFederationAddressbooksTest extends \Test\TestCase {
$s->syncThemAll(function ($url, $ex): void {
$this->callBacks[] = [$url, $ex];
});
- $this->assertEquals('1', count($this->callBacks));
+ $this->assertCount(1, $this->callBacks);
}
}
diff --git a/apps/federation/tests/TrustedServersTest.php b/apps/federation/tests/TrustedServersTest.php
index c3f0368858b..4d64df7a5e1 100644
--- a/apps/federation/tests/TrustedServersTest.php
+++ b/apps/federation/tests/TrustedServersTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -7,6 +8,7 @@
*/
namespace OCA\Federation\Tests;
+use OCA\Federation\BackgroundJob\RequestSharedSecret;
use OCA\Federation\DbHandler;
use OCA\Federation\TrustedServers;
use OCP\AppFramework\Utility\ITimeFactory;
@@ -19,57 +21,35 @@ use OCP\Http\Client\IClientService;
use OCP\Http\Client\IResponse;
use OCP\IConfig;
use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class TrustedServersTest extends TestCase {
- /** @var \PHPUnit\Framework\MockObject\MockObject | TrustedServers */
- private $trustedServers;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | DbHandler */
- private $dbHandler;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IClientService */
- private $httpClientService;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IClient */
- private $httpClient;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IResponse */
- private $response;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | LoggerInterface */
- private $logger;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IJobList */
- private $jobList;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | ISecureRandom */
- private $secureRandom;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IConfig */
- private $config;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IEventDispatcher */
- private $dispatcher;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|ITimeFactory */
- private $timeFactory;
+ private TrustedServers $trustedServers;
+ private DbHandler&MockObject $dbHandler;
+ private IClientService&MockObject $httpClientService;
+ private IClient&MockObject $httpClient;
+ private IResponse&MockObject $response;
+ private LoggerInterface&MockObject $logger;
+ private IJobList&MockObject $jobList;
+ private ISecureRandom&MockObject $secureRandom;
+ private IConfig&MockObject $config;
+ private IEventDispatcher&MockObject $dispatcher;
+ private ITimeFactory&MockObject $timeFactory;
protected function setUp(): void {
parent::setUp();
- $this->dbHandler = $this->getMockBuilder(DbHandler::class)
- ->disableOriginalConstructor()->getMock();
- $this->dispatcher = $this->getMockBuilder(IEventDispatcher::class)
- ->disableOriginalConstructor()->getMock();
- $this->httpClientService = $this->getMockBuilder(IClientService::class)->getMock();
- $this->httpClient = $this->getMockBuilder(IClient::class)->getMock();
- $this->response = $this->getMockBuilder(IResponse::class)->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)->getMock();
- $this->jobList = $this->getMockBuilder(IJobList::class)->getMock();
- $this->secureRandom = $this->getMockBuilder(ISecureRandom::class)->getMock();
- $this->config = $this->getMockBuilder(IConfig::class)->getMock();
+ $this->dbHandler = $this->createMock(DbHandler::class);
+ $this->dispatcher = $this->createMock(IEventDispatcher::class);
+ $this->httpClientService = $this->createMock(IClientService::class);
+ $this->httpClient = $this->createMock(IClient::class);
+ $this->response = $this->createMock(IResponse::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
+ $this->jobList = $this->createMock(IJobList::class);
+ $this->secureRandom = $this->createMock(ISecureRandom::class);
+ $this->config = $this->createMock(IConfig::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->trustedServers = new TrustedServers(
@@ -85,8 +65,8 @@ class TrustedServersTest extends TestCase {
}
public function testAddServer(): void {
- /** @var \PHPUnit\Framework\MockObject\MockObject|TrustedServers $trustedServers */
- $trustedServers = $this->getMockBuilder('OCA\Federation\TrustedServers')
+ /** @var TrustedServers&MockObject $trustedServers */
+ $trustedServers = $this->getMockBuilder(TrustedServers::class)
->setConstructorArgs(
[
$this->dbHandler,
@@ -99,7 +79,7 @@ class TrustedServersTest extends TestCase {
$this->timeFactory
]
)
- ->setMethods(['normalizeUrl', 'updateProtocol'])
+ ->onlyMethods(['updateProtocol'])
->getMock();
$trustedServers->expects($this->once())->method('updateProtocol')
->with('url')->willReturn('https://url');
@@ -112,12 +92,12 @@ class TrustedServersTest extends TestCase {
->willReturn('token');
$this->dbHandler->expects($this->once())->method('addToken')->with('https://url', 'token');
$this->jobList->expects($this->once())->method('add')
- ->with('OCA\Federation\BackgroundJob\RequestSharedSecret',
+ ->with(RequestSharedSecret::class,
['url' => 'https://url', 'token' => 'token', 'created' => 1234567]);
$this->assertSame(
- $trustedServers->addServer('url'),
- 1
+ 1,
+ $trustedServers->addServer('url')
);
}
@@ -196,8 +176,8 @@ class TrustedServersTest extends TestCase {
public function testIsNextcloudServer(int $statusCode, bool $isValidNextcloudVersion, bool $expected): void {
$server = 'server1';
- /** @var \PHPUnit\Framework\MockObject\MockObject | TrustedServers $trustedServers */
- $trustedServers = $this->getMockBuilder('OCA\Federation\TrustedServers')
+ /** @var TrustedServers&MockObject $trustedServers */
+ $trustedServers = $this->getMockBuilder(TrustedServers::class)
->setConstructorArgs(
[
$this->dbHandler,
@@ -210,7 +190,7 @@ class TrustedServersTest extends TestCase {
$this->timeFactory
]
)
- ->setMethods(['checkNextcloudVersion'])
+ ->onlyMethods(['checkNextcloudVersion'])
->getMock();
$this->httpClientService->expects($this->once())->method('newClient')
@@ -236,7 +216,7 @@ class TrustedServersTest extends TestCase {
);
}
- public function dataTestIsNextcloudServer(): array {
+ public static function dataTestIsNextcloudServer(): array {
return [
[200, true, true],
[200, false, false],
@@ -244,19 +224,17 @@ class TrustedServersTest extends TestCase {
];
}
- /**
- * @expectedExceptionMessage simulated exception
- */
public function testIsNextcloudServerFail(): void {
$server = 'server1';
- $this->httpClientService->expects($this->once())->method('newClient')
+ $this->httpClientService->expects($this->once())
+ ->method('newClient')
->willReturn($this->httpClient);
- $this->httpClient->expects($this->once())->method('get')->with($server . '/status.php')
- ->willReturnCallback(function (): void {
- throw new \Exception('simulated exception');
- });
+ $this->httpClient->expects($this->once())
+ ->method('get')
+ ->with($server . '/status.php')
+ ->willThrowException(new \Exception('simulated exception'));
$this->assertFalse($this->trustedServers->isNextcloudServer($server));
}
@@ -264,11 +242,11 @@ class TrustedServersTest extends TestCase {
/**
* @dataProvider dataTestCheckNextcloudVersion
*/
- public function testCheckNextcloudVersion($status): void {
- $this->assertTrue($this->invokePrivate($this->trustedServers, 'checkNextcloudVersion', [$status]));
+ public function testCheckNextcloudVersion(string $status): void {
+ $this->assertTrue(self::invokePrivate($this->trustedServers, 'checkNextcloudVersion', [$status]));
}
- public function dataTestCheckNextcloudVersion(): array {
+ public static function dataTestCheckNextcloudVersion(): array {
return [
['{"version":"9.0.0"}'],
['{"version":"9.1.0"}']
@@ -282,10 +260,10 @@ class TrustedServersTest extends TestCase {
$this->expectException(HintException::class);
$this->expectExceptionMessage('Remote server version is too low. 9.0 is required.');
- $this->invokePrivate($this->trustedServers, 'checkNextcloudVersion', [$status]);
+ self::invokePrivate($this->trustedServers, 'checkNextcloudVersion', [$status]);
}
- public function dataTestCheckNextcloudVersionTooLow(): array {
+ public static function dataTestCheckNextcloudVersionTooLow(): array {
return [
['{"version":"8.2.3"}'],
];
@@ -296,11 +274,11 @@ class TrustedServersTest extends TestCase {
*/
public function testUpdateProtocol(string $url, string $expected): void {
$this->assertSame($expected,
- $this->invokePrivate($this->trustedServers, 'updateProtocol', [$url])
+ self::invokePrivate($this->trustedServers, 'updateProtocol', [$url])
);
}
- public function dataTestUpdateProtocol(): array {
+ public static function dataTestUpdateProtocol(): array {
return [
['http://owncloud.org', 'http://owncloud.org'],
['https://owncloud.org', 'https://owncloud.org'],
diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml
index 95f6153e1d7..aedcd5b7ed5 100644
--- a/apps/files/appinfo/info.xml
+++ b/apps/files/appinfo/info.xml
@@ -46,12 +46,14 @@
<command>OCA\Files\Command\Delete</command>
<command>OCA\Files\Command\Copy</command>
<command>OCA\Files\Command\Move</command>
+ <command>OCA\Files\Command\SanitizeFilenames</command>
<command>OCA\Files\Command\Object\Delete</command>
<command>OCA\Files\Command\Object\Get</command>
<command>OCA\Files\Command\Object\Put</command>
<command>OCA\Files\Command\Object\Info</command>
<command>OCA\Files\Command\Object\ListObject</command>
<command>OCA\Files\Command\Object\Orphans</command>
+ <command>OCA\Files\Command\WindowsCompatibleFilenames</command>
</commands>
<settings>
diff --git a/apps/files/appinfo/routes.php b/apps/files/appinfo/routes.php
index a67ec7cbc14..04afe578c47 100644
--- a/apps/files/appinfo/routes.php
+++ b/apps/files/appinfo/routes.php
@@ -137,6 +137,11 @@ return [
'verb' => 'GET'
],
[
+ 'name' => 'Template#listTemplateFields',
+ 'url' => '/api/v1/templates/fields/{fileId}',
+ 'verb' => 'GET'
+ ],
+ [
'name' => 'Template#create',
'url' => '/api/v1/templates/create',
'verb' => 'POST'
diff --git a/apps/files/composer/composer/autoload_classmap.php b/apps/files/composer/composer/autoload_classmap.php
index a74df7ba3d2..070cb46de38 100644
--- a/apps/files/composer/composer/autoload_classmap.php
+++ b/apps/files/composer/composer/autoload_classmap.php
@@ -42,9 +42,11 @@ return array(
'OCA\\Files\\Command\\Object\\Put' => $baseDir . '/../lib/Command/Object/Put.php',
'OCA\\Files\\Command\\Put' => $baseDir . '/../lib/Command/Put.php',
'OCA\\Files\\Command\\RepairTree' => $baseDir . '/../lib/Command/RepairTree.php',
+ 'OCA\\Files\\Command\\SanitizeFilenames' => $baseDir . '/../lib/Command/SanitizeFilenames.php',
'OCA\\Files\\Command\\Scan' => $baseDir . '/../lib/Command/Scan.php',
'OCA\\Files\\Command\\ScanAppData' => $baseDir . '/../lib/Command/ScanAppData.php',
'OCA\\Files\\Command\\TransferOwnership' => $baseDir . '/../lib/Command/TransferOwnership.php',
+ 'OCA\\Files\\Command\\WindowsCompatibleFilenames' => $baseDir . '/../lib/Command/WindowsCompatibleFilenames.php',
'OCA\\Files\\Controller\\ApiController' => $baseDir . '/../lib/Controller/ApiController.php',
'OCA\\Files\\Controller\\ConversionApiController' => $baseDir . '/../lib/Controller/ConversionApiController.php',
'OCA\\Files\\Controller\\DirectEditingController' => $baseDir . '/../lib/Controller/DirectEditingController.php',
diff --git a/apps/files/composer/composer/autoload_static.php b/apps/files/composer/composer/autoload_static.php
index 1d79f38e35a..ce79d370e7c 100644
--- a/apps/files/composer/composer/autoload_static.php
+++ b/apps/files/composer/composer/autoload_static.php
@@ -57,9 +57,11 @@ class ComposerStaticInitFiles
'OCA\\Files\\Command\\Object\\Put' => __DIR__ . '/..' . '/../lib/Command/Object/Put.php',
'OCA\\Files\\Command\\Put' => __DIR__ . '/..' . '/../lib/Command/Put.php',
'OCA\\Files\\Command\\RepairTree' => __DIR__ . '/..' . '/../lib/Command/RepairTree.php',
+ 'OCA\\Files\\Command\\SanitizeFilenames' => __DIR__ . '/..' . '/../lib/Command/SanitizeFilenames.php',
'OCA\\Files\\Command\\Scan' => __DIR__ . '/..' . '/../lib/Command/Scan.php',
'OCA\\Files\\Command\\ScanAppData' => __DIR__ . '/..' . '/../lib/Command/ScanAppData.php',
'OCA\\Files\\Command\\TransferOwnership' => __DIR__ . '/..' . '/../lib/Command/TransferOwnership.php',
+ 'OCA\\Files\\Command\\WindowsCompatibleFilenames' => __DIR__ . '/..' . '/../lib/Command/WindowsCompatibleFilenames.php',
'OCA\\Files\\Controller\\ApiController' => __DIR__ . '/..' . '/../lib/Controller/ApiController.php',
'OCA\\Files\\Controller\\ConversionApiController' => __DIR__ . '/..' . '/../lib/Controller/ConversionApiController.php',
'OCA\\Files\\Controller\\DirectEditingController' => __DIR__ . '/..' . '/../lib/Controller/DirectEditingController.php',
diff --git a/apps/files/l10n/ach.js b/apps/files/l10n/ach.js
deleted file mode 100644
index c50be1aa479..00000000000
--- a/apps/files/l10n/ach.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/ach.json b/apps/files/l10n/ach.json
deleted file mode 100644
index 210ac153bab..00000000000
--- a/apps/files/l10n/ach.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/ady.js b/apps/files/l10n/ady.js
deleted file mode 100644
index 7988332fa91..00000000000
--- a/apps/files/l10n/ady.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ady.json b/apps/files/l10n/ady.json
deleted file mode 100644
index ef5fc586755..00000000000
--- a/apps/files/l10n/ady.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/af.js b/apps/files/l10n/af.js
deleted file mode 100644
index 9cbe77b5dd7..00000000000
--- a/apps/files/l10n/af.js
+++ /dev/null
@@ -1,137 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "Lêer kon nie gevind word nie",
- "Move or copy" : "Kopieer of skuif",
- "Download" : "Laai af",
- "Delete" : "Skrap",
- "Tags" : "Merkers",
- "Home" : "Tuis",
- "Close" : "Sluit",
- "Favorites" : "Gunstelinge",
- "Could not create folder \"{dir}\"" : "Kan nie vouer “{dir}” skep nie",
- "This will stop your current uploads." : "Dit sal u huidige oplaaie stop.",
- "Upload cancelled." : "Oplaai gekanselleer.",
- "Processing files …" : "Verwerk tans lêers …",
- "…" : "…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan nie {filename} oplaai nie aangesien dit óf 'n gids is óf 0 grepe groot is",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie genoeg oop spasie nie, u laai {size1} op maar slegs {size2} is oor",
- "Target folder \"{dir}\" does not exist any more" : "Teikengids \"{dir}\" bestaan nie meer nie",
- "Not enough free space" : "Nie genoeg oop spasie nie",
- "An unknown error has occurred" : "’n Onbekende fout het voorgekom",
- "Uploading …" : "Laai tans op …",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} van {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "Teikengids bestaan nie meer nie",
- "Actions" : "Aksies",
- "Rename" : "Hernoem",
- "Move" : "Skuif",
- "Copy" : "Kopieer",
- "Choose target folder" : "Kies teikenvouer",
- "Open" : "Open",
- "Delete file" : "Skrap lêer",
- "Delete folder" : "Skrap vouer",
- "Disconnect storage" : "Ontkoppel berging",
- "Could not load info for file \"{file}\"" : "Kon nie inligting vir lêer: “{file}” laai nie ",
- "Files" : "Lêers",
- "Details" : "Besonderhede",
- "Pending" : "Hangend",
- "Unable to determine date" : "Kan nie datum bepaal nie",
- "This operation is forbidden" : "Die operasie is verbode",
- "This directory is unavailable, please check the logs or contact the administrator" : "Hierdie gids is onbeskikbaar, gaan die logs na of kontak die administrateur",
- "Storage is temporarily not available" : "Berging is tydelik onbeskikbaar",
- "Could not move \"{file}\", target exists" : "Kon nie \"{file}\" skuif nie, teiken bestaan",
- "Could not move \"{file}\"" : "Kon nie \"{file}\" skuif nie",
- "copy" : "kopie",
- "Could not copy \"{file}\", target exists" : "Kon nie \"{file}\" kopieer nie, teiken bestaan",
- "Could not copy \"{file}\"" : "Kon nie \"{file}\" kopieer nie",
- "Copied {origin} inside {destination}" : "{origin} binne {destination} gekopieer",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} en {nbfiles} ander lêers binne {destination} gekopieer",
- "{newName} already exists" : "{newName} bestaan reeds",
- "Could not rename \"{fileName}\", it does not exist any more" : "Kon nie “{fileName}” hernoem nie, dit bestaan nie meer nie",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Die naam “{targetName}” word reeds in vouer “{dir}” gebruik. Kies asb. ’n ander naam.",
- "Could not rename \"{fileName}\"" : "Kon nie “{file}” hernoem nie",
- "Could not create file \"{file}\"" : "Kan nie lêer “{file}” skep nie",
- "Could not create file \"{file}\" because it already exists" : "Kon nie lêer “{file}” skep nie omdat dit reeds bestaan",
- "Could not create folder \"{dir}\" because it already exists" : "Kon nie vouer “{dir}” skep nie omdat dit reeds bestaan",
- "Name" : "Naam",
- "Size" : "Grootte",
- "Modified" : "Gewysig",
- "_%n folder_::_%n folders_" : ["%n gids","%n gidse"],
- "_%n file_::_%n files_" : ["%n lêer","%n lêers"],
- "{dirs} and {files}" : "{dirs} en {files}",
- "_including %n hidden_::_including %n hidden_" : ["insluitend %n verborge","insluitende %n verborge"],
- "_Uploading %n file_::_Uploading %n files_" : ["Laai tans %n lêer op ","Laai tans %n lêers op"],
- "{used} of {quota} used" : "{used} van {quota} gebruik",
- "{used} used" : "{used} gebruik",
- "\"{name}\" is an invalid file name." : "\"{name}\" is nie 'n geldige lêer naam nie.",
- "File name cannot be empty." : "Lêernaam kan nie leeg wees nie.",
- "\"/\" is not allowed inside a file name." : "\"/\" word nie binne 'n lêernaam toegelaat nie.",
- "View in folder" : "Vertoon in gids",
- "Path" : "Roete",
- "_%n byte_::_%n bytes_" : ["%n greep","%n grepe"],
- "Favorited" : "As gunsteling ",
- "Favorite" : "Gunsteling",
- "New folder" : "Nuwe gids",
- "Create new folder" : "Skep nuwe gids",
- "Upload file" : "Laai lêer op",
- "Recent" : "Onlangs",
- "Not favorited" : "Nie as gunsteling",
- "Remove from favorites" : "Verwyder uit gunstelinge",
- "Add to favorites" : "Voeg by gunstelinge",
- "An error occurred while trying to update the tags" : "'n Fout het voorgekom terwyl die merkers opgedateer word",
- "Added to favorites" : "Tot gunstelinge bygevoeg",
- "Removed from favorites" : "Uit gunstelinge verwyder",
- "You added {file} to your favorites" : "U het {file} tot u gunstelinge bygevoeg",
- "You removed {file} from your favorites" : "U het {file} uit u gunstelinge verwyder",
- "File changes" : "Lêer veranderinge ",
- "Created by {user}" : "Geskep deur {user}",
- "Changed by {user}" : "Verander deur {user}",
- "Deleted by {user}" : "Geskrap deur {user}",
- "Restored by {user}" : "Herstel deur {user}",
- "Renamed by {user}" : "Naam verander deur {user}",
- "Moved by {user}" : "Geskuif deur {user}",
- "\"remote user\"" : "“afstandsgebruiker”",
- "You created {file}" : "U het {file} geskep",
- "{user} created {file}" : "{user} het {file} geskep",
- "{file} was created in a public folder" : "{file} is in 'n publieke gids geskep",
- "You changed {file}" : "U het {file} verander",
- "{user} changed {file}" : "{user} het {file} verander",
- "You deleted {file}" : "U het {file} geskrap",
- "{user} deleted {file}" : "{user} het {file} geskrap",
- "You restored {file}" : "U het {file} herstel",
- "{user} restored {file}" : "{user} het {file} herstel",
- "You renamed {oldfile} to {newfile}" : "U het die naam van {oldfile} na {newfile} verander",
- "{user} renamed {oldfile} to {newfile}" : "{user} het die naam van {oldfile} na {newfile} verander",
- "You moved {oldfile} to {newfile}" : "U het {oldfile} na {newfile} geskuif",
- "{user} moved {oldfile} to {newfile}" : "{user} het {oldfile} na {newfile} geskuif",
- "All files" : "Alle lêers",
- "Upload (max. %s)" : "Oplaai (maks. %s)",
- "Accept" : "Aanvaar",
- "in %s" : "in %s",
- "File Management" : "Lêerbestuur",
- "Select all" : "Merk alles",
- "Unknown error" : "Onbekende fout",
- "No files in here" : "Geen lêers hierbinne nie",
- "Go back" : "Gaan terug",
- "Show hidden files" : "Vertoon verborge lêers ",
- "WebDAV" : "WebDAV",
- "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",
- "No entries found in this folder" : "Geen inskrwyings in hierdie gids gevind",
- "Upload too large" : "Oplaai te groot",
- "No favorites yet" : "Tans geen gunstelinge ",
- "Files and folders you mark as favorite will show up here" : "Lêers en gidse wat u as gunsteling merk sal hier vertoon word",
- "Shared with others" : "Gedeel met ander",
- "Shared with you" : "Met u gedeel",
- "Shared by link" : "Gedeel per skakel",
- "Text file" : "Tekslêer",
- "New text file.txt" : "Nuwe tekslêer.txt",
- "Storage invalid" : "Berging ongeldig",
- "Unlimited" : "Onbeperkte",
- "Cancel" : "Kanselleer",
- "%s used" : "%s gebruik",
- "%1$s of %2$s used" : "%1$s van %2$s gebruik",
- "Deleted files" : "Geskrapte lêers"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/af.json b/apps/files/l10n/af.json
deleted file mode 100644
index ca70c4b5b6a..00000000000
--- a/apps/files/l10n/af.json
+++ /dev/null
@@ -1,135 +0,0 @@
-{ "translations": {
- "File could not be found" : "Lêer kon nie gevind word nie",
- "Move or copy" : "Kopieer of skuif",
- "Download" : "Laai af",
- "Delete" : "Skrap",
- "Tags" : "Merkers",
- "Home" : "Tuis",
- "Close" : "Sluit",
- "Favorites" : "Gunstelinge",
- "Could not create folder \"{dir}\"" : "Kan nie vouer “{dir}” skep nie",
- "This will stop your current uploads." : "Dit sal u huidige oplaaie stop.",
- "Upload cancelled." : "Oplaai gekanselleer.",
- "Processing files …" : "Verwerk tans lêers …",
- "…" : "…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan nie {filename} oplaai nie aangesien dit óf 'n gids is óf 0 grepe groot is",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie genoeg oop spasie nie, u laai {size1} op maar slegs {size2} is oor",
- "Target folder \"{dir}\" does not exist any more" : "Teikengids \"{dir}\" bestaan nie meer nie",
- "Not enough free space" : "Nie genoeg oop spasie nie",
- "An unknown error has occurred" : "’n Onbekende fout het voorgekom",
- "Uploading …" : "Laai tans op …",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} van {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "Teikengids bestaan nie meer nie",
- "Actions" : "Aksies",
- "Rename" : "Hernoem",
- "Move" : "Skuif",
- "Copy" : "Kopieer",
- "Choose target folder" : "Kies teikenvouer",
- "Open" : "Open",
- "Delete file" : "Skrap lêer",
- "Delete folder" : "Skrap vouer",
- "Disconnect storage" : "Ontkoppel berging",
- "Could not load info for file \"{file}\"" : "Kon nie inligting vir lêer: “{file}” laai nie ",
- "Files" : "Lêers",
- "Details" : "Besonderhede",
- "Pending" : "Hangend",
- "Unable to determine date" : "Kan nie datum bepaal nie",
- "This operation is forbidden" : "Die operasie is verbode",
- "This directory is unavailable, please check the logs or contact the administrator" : "Hierdie gids is onbeskikbaar, gaan die logs na of kontak die administrateur",
- "Storage is temporarily not available" : "Berging is tydelik onbeskikbaar",
- "Could not move \"{file}\", target exists" : "Kon nie \"{file}\" skuif nie, teiken bestaan",
- "Could not move \"{file}\"" : "Kon nie \"{file}\" skuif nie",
- "copy" : "kopie",
- "Could not copy \"{file}\", target exists" : "Kon nie \"{file}\" kopieer nie, teiken bestaan",
- "Could not copy \"{file}\"" : "Kon nie \"{file}\" kopieer nie",
- "Copied {origin} inside {destination}" : "{origin} binne {destination} gekopieer",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} en {nbfiles} ander lêers binne {destination} gekopieer",
- "{newName} already exists" : "{newName} bestaan reeds",
- "Could not rename \"{fileName}\", it does not exist any more" : "Kon nie “{fileName}” hernoem nie, dit bestaan nie meer nie",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Die naam “{targetName}” word reeds in vouer “{dir}” gebruik. Kies asb. ’n ander naam.",
- "Could not rename \"{fileName}\"" : "Kon nie “{file}” hernoem nie",
- "Could not create file \"{file}\"" : "Kan nie lêer “{file}” skep nie",
- "Could not create file \"{file}\" because it already exists" : "Kon nie lêer “{file}” skep nie omdat dit reeds bestaan",
- "Could not create folder \"{dir}\" because it already exists" : "Kon nie vouer “{dir}” skep nie omdat dit reeds bestaan",
- "Name" : "Naam",
- "Size" : "Grootte",
- "Modified" : "Gewysig",
- "_%n folder_::_%n folders_" : ["%n gids","%n gidse"],
- "_%n file_::_%n files_" : ["%n lêer","%n lêers"],
- "{dirs} and {files}" : "{dirs} en {files}",
- "_including %n hidden_::_including %n hidden_" : ["insluitend %n verborge","insluitende %n verborge"],
- "_Uploading %n file_::_Uploading %n files_" : ["Laai tans %n lêer op ","Laai tans %n lêers op"],
- "{used} of {quota} used" : "{used} van {quota} gebruik",
- "{used} used" : "{used} gebruik",
- "\"{name}\" is an invalid file name." : "\"{name}\" is nie 'n geldige lêer naam nie.",
- "File name cannot be empty." : "Lêernaam kan nie leeg wees nie.",
- "\"/\" is not allowed inside a file name." : "\"/\" word nie binne 'n lêernaam toegelaat nie.",
- "View in folder" : "Vertoon in gids",
- "Path" : "Roete",
- "_%n byte_::_%n bytes_" : ["%n greep","%n grepe"],
- "Favorited" : "As gunsteling ",
- "Favorite" : "Gunsteling",
- "New folder" : "Nuwe gids",
- "Create new folder" : "Skep nuwe gids",
- "Upload file" : "Laai lêer op",
- "Recent" : "Onlangs",
- "Not favorited" : "Nie as gunsteling",
- "Remove from favorites" : "Verwyder uit gunstelinge",
- "Add to favorites" : "Voeg by gunstelinge",
- "An error occurred while trying to update the tags" : "'n Fout het voorgekom terwyl die merkers opgedateer word",
- "Added to favorites" : "Tot gunstelinge bygevoeg",
- "Removed from favorites" : "Uit gunstelinge verwyder",
- "You added {file} to your favorites" : "U het {file} tot u gunstelinge bygevoeg",
- "You removed {file} from your favorites" : "U het {file} uit u gunstelinge verwyder",
- "File changes" : "Lêer veranderinge ",
- "Created by {user}" : "Geskep deur {user}",
- "Changed by {user}" : "Verander deur {user}",
- "Deleted by {user}" : "Geskrap deur {user}",
- "Restored by {user}" : "Herstel deur {user}",
- "Renamed by {user}" : "Naam verander deur {user}",
- "Moved by {user}" : "Geskuif deur {user}",
- "\"remote user\"" : "“afstandsgebruiker”",
- "You created {file}" : "U het {file} geskep",
- "{user} created {file}" : "{user} het {file} geskep",
- "{file} was created in a public folder" : "{file} is in 'n publieke gids geskep",
- "You changed {file}" : "U het {file} verander",
- "{user} changed {file}" : "{user} het {file} verander",
- "You deleted {file}" : "U het {file} geskrap",
- "{user} deleted {file}" : "{user} het {file} geskrap",
- "You restored {file}" : "U het {file} herstel",
- "{user} restored {file}" : "{user} het {file} herstel",
- "You renamed {oldfile} to {newfile}" : "U het die naam van {oldfile} na {newfile} verander",
- "{user} renamed {oldfile} to {newfile}" : "{user} het die naam van {oldfile} na {newfile} verander",
- "You moved {oldfile} to {newfile}" : "U het {oldfile} na {newfile} geskuif",
- "{user} moved {oldfile} to {newfile}" : "{user} het {oldfile} na {newfile} geskuif",
- "All files" : "Alle lêers",
- "Upload (max. %s)" : "Oplaai (maks. %s)",
- "Accept" : "Aanvaar",
- "in %s" : "in %s",
- "File Management" : "Lêerbestuur",
- "Select all" : "Merk alles",
- "Unknown error" : "Onbekende fout",
- "No files in here" : "Geen lêers hierbinne nie",
- "Go back" : "Gaan terug",
- "Show hidden files" : "Vertoon verborge lêers ",
- "WebDAV" : "WebDAV",
- "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",
- "No entries found in this folder" : "Geen inskrwyings in hierdie gids gevind",
- "Upload too large" : "Oplaai te groot",
- "No favorites yet" : "Tans geen gunstelinge ",
- "Files and folders you mark as favorite will show up here" : "Lêers en gidse wat u as gunsteling merk sal hier vertoon word",
- "Shared with others" : "Gedeel met ander",
- "Shared with you" : "Met u gedeel",
- "Shared by link" : "Gedeel per skakel",
- "Text file" : "Tekslêer",
- "New text file.txt" : "Nuwe tekslêer.txt",
- "Storage invalid" : "Berging ongeldig",
- "Unlimited" : "Onbeperkte",
- "Cancel" : "Kanselleer",
- "%s used" : "%s gebruik",
- "%1$s of %2$s used" : "%1$s van %2$s gebruik",
- "Deleted files" : "Geskrapte lêers"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/ak.js b/apps/files/l10n/ak.js
deleted file mode 100644
index 971a3489878..00000000000
--- a/apps/files/l10n/ak.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=n > 1;");
diff --git a/apps/files/l10n/ak.json b/apps/files/l10n/ak.json
deleted file mode 100644
index 321985e508d..00000000000
--- a/apps/files/l10n/ak.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=n > 1;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/am_ET.js b/apps/files/l10n/am_ET.js
deleted file mode 100644
index 7988332fa91..00000000000
--- a/apps/files/l10n/am_ET.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/am_ET.json b/apps/files/l10n/am_ET.json
deleted file mode 100644
index ef5fc586755..00000000000
--- a/apps/files/l10n/am_ET.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js
index c753ed59ac9..ffd13adc0d5 100644
--- a/apps/files/l10n/ar.js
+++ b/apps/files/l10n/ar.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "الملفات المُفضَّلة",
"No favorites" : "لا يوجد مفضلات ",
"More favorites" : "مزيد من المُفضَّلة",
- "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
"Accept" : "قبول",
"Reject" : "رفض",
"Incoming ownership transfer from {user}" : "تم تحويل ملكية الملف إليك من قبل {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "تم النقل من %1$s في%2$s",
"Files compatibility" : "توافقية الملفات",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "السماح بتقييد أسماء الملفات لضمان إمكانية مزامنة الملفات مع جميع العملاء. بشكل افتراضي، يُسمح بجميع أسماء الملفات الصالحة على POSIX (مثل Linux أو macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "بعد تمكين أسماء الملفات المتوافقة مع نظام التشغيل Windows، لا يمكن تعديل الملفات الموجودة بعد الآن ولكن يمكن إعادة تسميتها بأسماء جديدة صالحة بواسطة مالكها.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "من الممكن أيضًا ترحيل الملفات تلقائيًا بعد تمكين هذا الإعداد، يرجى الرجوع إلى الوثائق المتعلقة بأمر occ.",
"Enforce Windows compatibility" : "فرض التوافق مع ويندوز",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "سيؤدي هذا إلى حظر أسماء الملفات غير الصالحة على أنظمة Windows؛ مثل استخدام الأسماء المحجوزة أو الأحرف الخاصة. لكن هذا لن يفرض توافق حساسية الحالة.",
"File Management" : "إدارة الملفات",
@@ -95,6 +96,8 @@ OC.L10N.register(
"Invalid filename." : "اسم ملف غير صحيح.",
"Renamed \"{oldName}\" to \"{newName}\"" : "تمت إعادة تسمية \"{oldName}\" إلى \"{newName}\"",
"Rename file" : "إعادة تسمية الملف",
+ "Folder" : "مجلد",
+ "Unknown file type" : "نوع ملف غير معروف",
"Pending" : "قيد الانتظار",
"Unknown date" : "تاريخ غير معروف",
"Clear filter" : "إزالة التصفية",
@@ -105,6 +108,7 @@ OC.L10N.register(
"Total rows summary" : "ملخص مجموع الأسطر",
"Toggle selection for all files and folders" : "تبديل الاختيار لكل الملفات و المجلدات",
"Name" : "الاسم",
+ "File type" : "نوع الملف",
"Size" : "الحجم",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" فشل في بعض العناصر",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" حزمة الأوامر تم تنفيذها بنجاح",
@@ -116,7 +120,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "ترويسات الأعمدة ذات الأزرار قابلة للترتيب.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "لم يتم عرض هذه القائمة بالكامل لأسباب تتعلق بالأداء. سيتم عرض الملفات تباعاً أثناء التنقل عبر القائمة.",
"File not found" : "تعذر العثور على الملف",
- "{count} selected" : "{count} تم تحديده",
+ "_{count} selected_::_{count} selected_" : ["{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده"],
"{usedQuotaByte} used" : "{usedQuotaByte} مستخدمة",
"{used} of {quota} used" : "{used} من {quota} مستخدم",
"{relative}% used" : "{relative}% مستخدمة",
@@ -183,6 +187,7 @@ OC.L10N.register(
"Sort favorites first" : "فرز المفضلة أولا",
"Sort folders before files" : "فرز المجلدات قبل الملفات",
"Show hidden files" : "عرض الملفات المخفية",
+ "Show file type column" : "عرض عمود نوع الملف",
"Crop image previews" : "اقتصاص صورة العروض",
"Enable the grid view" : "تمكين العرض الشبكي",
"Enable folder tree" : "تمكين شجرة المجلدات",
@@ -219,6 +224,7 @@ OC.L10N.register(
"Show those shortcuts" : "أعرُض تلك الاختصارات",
"You" : "أنت",
"Shared multiple times with different people" : "تمّت مشاركته عدة مرات مع أشخاص متعددين",
+ "Unable to change the favorite state of the file" : "تعذّر تغيير حالة المُفضَّلة للملف",
"Error while loading the file data" : "خطأ اثناء تحميل بيانات الملف",
"Owner" : "المالك",
"Remove from favorites" : "إزالة من المفضلة",
@@ -259,8 +265,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عناصر","أنت على وشك أن تحذف {count} عناصر","أنت على وشك أن تحذف {count} عنصراً"],
"Confirm deletion" : "تأكيد الحذف",
"Cancel" : "إلغاء",
+ "Download" : "تنزيل",
"Moving \"{source}\" to \"{destination}\" …" : "نقل \"{source}\" إلى \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "نسخ \"{source}\" إلى \"{destination}\" …",
+ "Destination is not a folder" : "الوجهة ليست مجلد",
+ "This file/folder is already in that directory" : "هذا الملف/المجلد موجود سلفاً في ذلك المجلد",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "لا يمكنك نقل ملف/مجلد إلى نفسه أو إلى مجلد فرعي منه",
"(copy)" : "(نسخ)",
"(copy %n)" : "(نسخ %n)",
@@ -279,12 +288,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : ".عملية النسخ أو النقل تمّ إلغاؤها",
"Open folder {displayName}" : "فتح المجلد {displayName}",
"Open in Files" : "فتح في \"الملفات\"",
+ "Open locally" : "الفتح محلّيّاً",
+ "Failed to redirect to client" : "فشل في التحويل الى العميل",
"Open file locally" : "فتح الملف محلّيّاً",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "يجب أن يفتح الملف الآن على جهازك. إذا لم يحدث ذلك، فيرجى التأكد من تثبيت تطبيق سطح المكتب.",
"Retry and close" : "أعِد المحاولة ثم أغلِق",
"Open online" : "إفتَح مُتَّصِلاً بالإنترنت",
- "Failed to redirect to client" : "فشل في التحويل الى العميل",
- "Open locally" : "الفتح محلّيّاً",
"Rename" : "إعادة التسمية",
"Open details" : "فتح التفاصيل",
"View in folder" : "عرض في المجلد",
@@ -322,6 +331,9 @@ OC.L10N.register(
"Files moved successfully" : "تمّ نقل الملفات بنجاح",
"Conflicts resolution skipped" : "تمّ تخطّي حلّ التعارضات",
"Upload cancelled" : "تمّ إلغاء الرفع",
+ "Could not rename \"{oldName}\", it does not exist any more" : "تعذر إعادة تسمية \"{oldName}\"، لم يعد موجودًا",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "الاسم \"{newName}\" مستعمل سلفاً في المجلد\"{dir}\". إختر اسماً آخر رجاءً.",
+ "Could not rename \"{oldName}\"" : "تعذرت إعادة تسمية \"{oldName}\"",
"This operation is forbidden" : "هذه العملية ممنوعة ",
"This directory is unavailable, please check the logs or contact the administrator" : "هذا المجلد غير متوفر، الرجاء مراجعة سجل الحركات أو الاتصال بمشرف النظام",
"Storage is temporarily not available" : "وحدة التخزين غير متوفرة",
@@ -352,7 +364,6 @@ OC.L10N.register(
"Upload too large" : "حجم الرفع أعلى من المسموح",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "حجم الملفات التي تريد رفعها أعلى من المسموح على الخادم.",
"File could not be found" : "لم يتم العثور على الملف",
- "Download" : "تنزيل",
"Show list view" : "اظهر معاينات الروابط",
"Show grid view" : "عرض شبكي",
"Close" : "إغلاق",
@@ -391,9 +402,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "تم نسخ {origin} داخل {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "تم نسخ {origin} و {nbfiles} ملفات اخرى داخل {destination}",
"{newName} already exists" : "{newName} موجود مسبقاً",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "فشل إنشاء الملف \"{file}\" فهو موجود بالفعل",
"Could not create folder \"{dir}\" because it already exists" : "فشل إنشاء المجلد \"{dir}\" فهو موجود بالفعل",
@@ -426,35 +434,24 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "تم نسخ الرابط المباشر (يعمل فقط للأشخاص الذين لديهم حق الوصول إلى هذا الملف/المجلد)",
"Path" : "المسار",
"_%n byte_::_%n bytes_" : ["بايت","بايت","بايت","بايت","بايت","%n بايت"],
- "Favorited" : "المفضلة",
+ "Favored" : "مُفضّلة",
+ "Favor" : "تفضيل",
"Copy direct link (only works for people who have access to this file/folder)" : "نسخ الرابط المباشر (يعمل فقط للأشخاص الذين لديهم حق الوصول إلى هذا الملف/المجلد)",
"Upload file" : "رفع ملف",
- "Not favorited" : "ازالة من المفضلة",
+ "Not favored" : "غير مُفضّلة",
"An error occurred while trying to update the tags" : "حدث خطأ اثناء محاولة تحديث الوسوم",
- "You don't have permission to upload or create files here." : "ليس لديك الصلاحية لرفع أو إنشاء ملفاتٍ هنا.",
- "Storage informations" : "معلومات التخزين",
- "Choose file" : "حدد ملف",
- "Go to the previous folder" : "إنتقل للمجلد السابق",
- "Open the files app settings" : "فتح إعدادات تطبيق الملفات",
- "Unable to change the favourite state of the file" : "لم نستطع تغير الحالة المفضلة للملف",
- "Edit file locally" : "تحرير الملف محلياً",
- "Edit online" : "التحرير عبر الإنترنت",
- "Create new templates folder" : "إنشيْ مجلد جديد للقوالب",
+ "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
+ "Submitting fields…" : "إرسال الحقول...",
+ "Filter filenames…" : "تصفية باسم الملف...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} مجلد","{folderCount} مجلد","{folderCount} مجلد","{folderCount} مجلدات","{folderCount} مجلد","{folderCount} مجلد"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ملف","{fileCount} ملف","{fileCount} ملف","{fileCount} ملفات","{fileCount} ملف","{fileCount} ملف"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد","1 ملف و{folderCount} مجلدات","1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} ملف و 1 مجلد","{fileCount} ملف و 1 مجلد","{fileCount} ملف و 1 مجلد","{fileCount} ملفات و 1 مجلد ","{fileCount} ملف و 1 مجلد","{fileCount} ملف و 1 مجلد"],
"{fileCount} files and {folderCount} folders" : "{fileCount} ملف و {folderCount} مجلد",
- "List of favorites files and folders." : "قائمة الملفات والمجلدات المفضلة.",
"Personal Files" : "ملفات شخصية",
"Text file" : "ملف نصي",
"New text file.txt" : "ملف نصي جديد fille.txt",
- "Favored" : "مُفضّلة",
- "Favor" : "تفضيل",
- "Not favored" : "غير مُفضّلة",
- "Submitting fields…" : "إرسال الحقول...",
- "Filter filenames…" : "تصفية باسم الملف...",
- "{count} files could not be converted" : "{count} ملفات تعذّر تحويلها",
- "{count} files successfully converted" : "{count} ملف تمّ تحويلها بنجاحٍ"
+ "renamed file" : "ملف معاد تسميته",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "بعد تمكين أسماء الملفات المتوافقة مع نظام التشغيل Windows، لا يمكن تعديل الملفات الموجودة بعد الآن ولكن يمكن إعادة تسميتها إلى أسماء جديدة صالحة بواسطة مالكها."
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json
index 8d3759847a6..19dc6eaad41 100644
--- a/apps/files/l10n/ar.json
+++ b/apps/files/l10n/ar.json
@@ -52,7 +52,6 @@
"Favorite files" : "الملفات المُفضَّلة",
"No favorites" : "لا يوجد مفضلات ",
"More favorites" : "مزيد من المُفضَّلة",
- "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
"Accept" : "قبول",
"Reject" : "رفض",
"Incoming ownership transfer from {user}" : "تم تحويل ملكية الملف إليك من قبل {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "تم النقل من %1$s في%2$s",
"Files compatibility" : "توافقية الملفات",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "السماح بتقييد أسماء الملفات لضمان إمكانية مزامنة الملفات مع جميع العملاء. بشكل افتراضي، يُسمح بجميع أسماء الملفات الصالحة على POSIX (مثل Linux أو macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "بعد تمكين أسماء الملفات المتوافقة مع نظام التشغيل Windows، لا يمكن تعديل الملفات الموجودة بعد الآن ولكن يمكن إعادة تسميتها بأسماء جديدة صالحة بواسطة مالكها.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "من الممكن أيضًا ترحيل الملفات تلقائيًا بعد تمكين هذا الإعداد، يرجى الرجوع إلى الوثائق المتعلقة بأمر occ.",
"Enforce Windows compatibility" : "فرض التوافق مع ويندوز",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "سيؤدي هذا إلى حظر أسماء الملفات غير الصالحة على أنظمة Windows؛ مثل استخدام الأسماء المحجوزة أو الأحرف الخاصة. لكن هذا لن يفرض توافق حساسية الحالة.",
"File Management" : "إدارة الملفات",
@@ -93,6 +94,8 @@
"Invalid filename." : "اسم ملف غير صحيح.",
"Renamed \"{oldName}\" to \"{newName}\"" : "تمت إعادة تسمية \"{oldName}\" إلى \"{newName}\"",
"Rename file" : "إعادة تسمية الملف",
+ "Folder" : "مجلد",
+ "Unknown file type" : "نوع ملف غير معروف",
"Pending" : "قيد الانتظار",
"Unknown date" : "تاريخ غير معروف",
"Clear filter" : "إزالة التصفية",
@@ -103,6 +106,7 @@
"Total rows summary" : "ملخص مجموع الأسطر",
"Toggle selection for all files and folders" : "تبديل الاختيار لكل الملفات و المجلدات",
"Name" : "الاسم",
+ "File type" : "نوع الملف",
"Size" : "الحجم",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" فشل في بعض العناصر",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" حزمة الأوامر تم تنفيذها بنجاح",
@@ -114,7 +118,7 @@
"Column headers with buttons are sortable." : "ترويسات الأعمدة ذات الأزرار قابلة للترتيب.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "لم يتم عرض هذه القائمة بالكامل لأسباب تتعلق بالأداء. سيتم عرض الملفات تباعاً أثناء التنقل عبر القائمة.",
"File not found" : "تعذر العثور على الملف",
- "{count} selected" : "{count} تم تحديده",
+ "_{count} selected_::_{count} selected_" : ["{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده","{count} تمّ تحديده"],
"{usedQuotaByte} used" : "{usedQuotaByte} مستخدمة",
"{used} of {quota} used" : "{used} من {quota} مستخدم",
"{relative}% used" : "{relative}% مستخدمة",
@@ -181,6 +185,7 @@
"Sort favorites first" : "فرز المفضلة أولا",
"Sort folders before files" : "فرز المجلدات قبل الملفات",
"Show hidden files" : "عرض الملفات المخفية",
+ "Show file type column" : "عرض عمود نوع الملف",
"Crop image previews" : "اقتصاص صورة العروض",
"Enable the grid view" : "تمكين العرض الشبكي",
"Enable folder tree" : "تمكين شجرة المجلدات",
@@ -217,6 +222,7 @@
"Show those shortcuts" : "أعرُض تلك الاختصارات",
"You" : "أنت",
"Shared multiple times with different people" : "تمّت مشاركته عدة مرات مع أشخاص متعددين",
+ "Unable to change the favorite state of the file" : "تعذّر تغيير حالة المُفضَّلة للملف",
"Error while loading the file data" : "خطأ اثناء تحميل بيانات الملف",
"Owner" : "المالك",
"Remove from favorites" : "إزالة من المفضلة",
@@ -257,8 +263,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عنصراً","أنت على وشك أن تحذف {count} عناصر","أنت على وشك أن تحذف {count} عناصر","أنت على وشك أن تحذف {count} عنصراً"],
"Confirm deletion" : "تأكيد الحذف",
"Cancel" : "إلغاء",
+ "Download" : "تنزيل",
"Moving \"{source}\" to \"{destination}\" …" : "نقل \"{source}\" إلى \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "نسخ \"{source}\" إلى \"{destination}\" …",
+ "Destination is not a folder" : "الوجهة ليست مجلد",
+ "This file/folder is already in that directory" : "هذا الملف/المجلد موجود سلفاً في ذلك المجلد",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "لا يمكنك نقل ملف/مجلد إلى نفسه أو إلى مجلد فرعي منه",
"(copy)" : "(نسخ)",
"(copy %n)" : "(نسخ %n)",
@@ -277,12 +286,12 @@
"Cancelled move or copy operation" : ".عملية النسخ أو النقل تمّ إلغاؤها",
"Open folder {displayName}" : "فتح المجلد {displayName}",
"Open in Files" : "فتح في \"الملفات\"",
+ "Open locally" : "الفتح محلّيّاً",
+ "Failed to redirect to client" : "فشل في التحويل الى العميل",
"Open file locally" : "فتح الملف محلّيّاً",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "يجب أن يفتح الملف الآن على جهازك. إذا لم يحدث ذلك، فيرجى التأكد من تثبيت تطبيق سطح المكتب.",
"Retry and close" : "أعِد المحاولة ثم أغلِق",
"Open online" : "إفتَح مُتَّصِلاً بالإنترنت",
- "Failed to redirect to client" : "فشل في التحويل الى العميل",
- "Open locally" : "الفتح محلّيّاً",
"Rename" : "إعادة التسمية",
"Open details" : "فتح التفاصيل",
"View in folder" : "عرض في المجلد",
@@ -320,6 +329,9 @@
"Files moved successfully" : "تمّ نقل الملفات بنجاح",
"Conflicts resolution skipped" : "تمّ تخطّي حلّ التعارضات",
"Upload cancelled" : "تمّ إلغاء الرفع",
+ "Could not rename \"{oldName}\", it does not exist any more" : "تعذر إعادة تسمية \"{oldName}\"، لم يعد موجودًا",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "الاسم \"{newName}\" مستعمل سلفاً في المجلد\"{dir}\". إختر اسماً آخر رجاءً.",
+ "Could not rename \"{oldName}\"" : "تعذرت إعادة تسمية \"{oldName}\"",
"This operation is forbidden" : "هذه العملية ممنوعة ",
"This directory is unavailable, please check the logs or contact the administrator" : "هذا المجلد غير متوفر، الرجاء مراجعة سجل الحركات أو الاتصال بمشرف النظام",
"Storage is temporarily not available" : "وحدة التخزين غير متوفرة",
@@ -350,7 +362,6 @@
"Upload too large" : "حجم الرفع أعلى من المسموح",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "حجم الملفات التي تريد رفعها أعلى من المسموح على الخادم.",
"File could not be found" : "لم يتم العثور على الملف",
- "Download" : "تنزيل",
"Show list view" : "اظهر معاينات الروابط",
"Show grid view" : "عرض شبكي",
"Close" : "إغلاق",
@@ -389,9 +400,6 @@
"Copied {origin} inside {destination}" : "تم نسخ {origin} داخل {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "تم نسخ {origin} و {nbfiles} ملفات اخرى داخل {destination}",
"{newName} already exists" : "{newName} موجود مسبقاً",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "فشل إنشاء الملف \"{file}\" فهو موجود بالفعل",
"Could not create folder \"{dir}\" because it already exists" : "فشل إنشاء المجلد \"{dir}\" فهو موجود بالفعل",
@@ -424,35 +432,24 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "تم نسخ الرابط المباشر (يعمل فقط للأشخاص الذين لديهم حق الوصول إلى هذا الملف/المجلد)",
"Path" : "المسار",
"_%n byte_::_%n bytes_" : ["بايت","بايت","بايت","بايت","بايت","%n بايت"],
- "Favorited" : "المفضلة",
+ "Favored" : "مُفضّلة",
+ "Favor" : "تفضيل",
"Copy direct link (only works for people who have access to this file/folder)" : "نسخ الرابط المباشر (يعمل فقط للأشخاص الذين لديهم حق الوصول إلى هذا الملف/المجلد)",
"Upload file" : "رفع ملف",
- "Not favorited" : "ازالة من المفضلة",
+ "Not favored" : "غير مُفضّلة",
"An error occurred while trying to update the tags" : "حدث خطأ اثناء محاولة تحديث الوسوم",
- "You don't have permission to upload or create files here." : "ليس لديك الصلاحية لرفع أو إنشاء ملفاتٍ هنا.",
- "Storage informations" : "معلومات التخزين",
- "Choose file" : "حدد ملف",
- "Go to the previous folder" : "إنتقل للمجلد السابق",
- "Open the files app settings" : "فتح إعدادات تطبيق الملفات",
- "Unable to change the favourite state of the file" : "لم نستطع تغير الحالة المفضلة للملف",
- "Edit file locally" : "تحرير الملف محلياً",
- "Edit online" : "التحرير عبر الإنترنت",
- "Create new templates folder" : "إنشيْ مجلد جديد للقوالب",
+ "Upload (max. %s)" : "الرفع ( حد اقصى. %s ) ",
+ "Submitting fields…" : "إرسال الحقول...",
+ "Filter filenames…" : "تصفية باسم الملف...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} مجلد","{folderCount} مجلد","{folderCount} مجلد","{folderCount} مجلدات","{folderCount} مجلد","{folderCount} مجلد"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ملف","{fileCount} ملف","{fileCount} ملف","{fileCount} ملفات","{fileCount} ملف","{fileCount} ملف"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد","1 ملف و{folderCount} مجلدات","1 ملف و {folderCount} مجلد","1 ملف و {folderCount} مجلد"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} ملف و 1 مجلد","{fileCount} ملف و 1 مجلد","{fileCount} ملف و 1 مجلد","{fileCount} ملفات و 1 مجلد ","{fileCount} ملف و 1 مجلد","{fileCount} ملف و 1 مجلد"],
"{fileCount} files and {folderCount} folders" : "{fileCount} ملف و {folderCount} مجلد",
- "List of favorites files and folders." : "قائمة الملفات والمجلدات المفضلة.",
"Personal Files" : "ملفات شخصية",
"Text file" : "ملف نصي",
"New text file.txt" : "ملف نصي جديد fille.txt",
- "Favored" : "مُفضّلة",
- "Favor" : "تفضيل",
- "Not favored" : "غير مُفضّلة",
- "Submitting fields…" : "إرسال الحقول...",
- "Filter filenames…" : "تصفية باسم الملف...",
- "{count} files could not be converted" : "{count} ملفات تعذّر تحويلها",
- "{count} files successfully converted" : "{count} ملف تمّ تحويلها بنجاحٍ"
+ "renamed file" : "ملف معاد تسميته",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "بعد تمكين أسماء الملفات المتوافقة مع نظام التشغيل Windows، لا يمكن تعديل الملفات الموجودة بعد الآن ولكن يمكن إعادة تسميتها إلى أسماء جديدة صالحة بواسطة مالكها."
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/files/l10n/ast.js b/apps/files/l10n/ast.js
index 302c1031c93..3d323bc8cf9 100644
--- a/apps/files/l10n/ast.js
+++ b/apps/files/l10n/ast.js
@@ -44,7 +44,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Hai un ficheru o una carpeta que <strong>camudó</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Hai un ficheru o una carpeta de Favoritos que <strong>camudó</strong>",
"No favorites" : "Nengún favoritu",
- "Upload (max. %s)" : "Xubir (%s como máximu)",
"Accept" : "Aceptar",
"Reject" : "Refugar",
"Incoming ownership transfer from {user}" : "Recibióse una tresferencia de propiedá de: {user}",
@@ -75,6 +74,7 @@ OC.L10N.register(
"This node is unavailable" : "Esti noyu nun ta disponible",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renomóse «{oldName}» a «{newName}»",
"Rename file" : "Renomar el ficheru",
+ "Folder" : "Carpeta",
"Pending" : "Pendiente",
"Modified" : "Modificóse",
"Type" : "Tipu",
@@ -90,7 +90,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Les testeres de les columnes con botones puen ordenase.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta llista nun ta completa por motivos de rindimientu. Los ficheros van apaecer a midida que navegues pela llista.",
"File not found" : "Nun s'atopó'l ficheru",
- "{count} selected" : "{count} na seleición",
"{usedQuotaByte} used" : "{usedQuotaByte} n'usu",
"{used} of {quota} used" : "{used} de {quota} n'usu",
"{relative}% used" : "{relative}% n'usu",
@@ -179,6 +178,9 @@ OC.L10N.register(
"Delete" : "Desaniciar",
"Confirm deletion" : "Confirmar el desaniciu",
"Cancel" : "Encaboxar",
+ "Download" : "Baxar",
+ "Destination is not a folder" : "El destín nun ye una carpeta",
+ "This file/folder is already in that directory" : "Esti ficheru o esta carpeta yá ta nel direutoriu",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Nun pues mover un ficheru/carpeta a sigo mesma o la mesma socarpeta de la mesma carpeta",
"(copy)" : "(copia)",
"(copy %n)" : "(copia %n)",
@@ -196,8 +198,8 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Anulóse la operación de mover o copiar",
"Open folder {displayName}" : "Abrir la carpeta «{displayName}»",
"Open in Files" : "Abrir en Ficheros",
- "Failed to redirect to client" : "Nun se pue redirixir al veceru",
"Open locally" : "Abrir llocalmente",
+ "Failed to redirect to client" : "Nun se pue redirixir al veceru",
"Rename" : "Renomar",
"Open details" : "Abrir los detalles",
"View in folder" : "Ver na carpeta",
@@ -227,6 +229,9 @@ OC.L10N.register(
"Files moved successfully" : "Los ficheros copiáronse correutamente",
"Conflicts resolution skipped" : "Saltóse la resolución de conflictos",
"Upload cancelled" : "Encaboxóse la busca",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Nun se pue renomar «{oldName}». Yá nun esiste",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nome «{newName}» yá ta n'usu na carpeta «{dir}». Escueyi otru nome.",
+ "Could not rename \"{oldName}\"" : "Nun se pudo renomar «{oldName}»",
"This operation is forbidden" : "Esta operación ta prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esti direutoriu nun ta disponible, revisa'l rexistru o ponte en contautu cola alministración.",
"Storage is temporarily not available" : "L'almacenamientu nun ta disponible temporalmente",
@@ -250,7 +255,6 @@ OC.L10N.register(
"Upload too large" : "La xuba ye mui grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los ficheros que tentes de xubir superen el tamañu máximu qu'esti sirvidor permite.",
"File could not be found" : "Nun se pudo atopar el ficheru",
- "Download" : "Baxar",
"Show list view" : "Amosar la vista en llista",
"Show grid view" : "Amosar la vista en rexáu",
"Close" : "Zarrar",
@@ -289,9 +293,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Copióse «{origin}» dientro de: {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copióse «{origin}» y {nbfiles} ficheros más dientro de: {destination}",
"{newName} already exists" : "«{newName}» xá esiste",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nun se pudo nomar «{fileName}». Yá nun esiste",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nome «{targetName}» yá ta n'usu pola carpeta «{dir}». Escueyi otru nome.",
- "Could not rename \"{fileName}\"" : "Nun se pudo renomar «{fileName}»",
"Could not create file \"{file}\"" : "Nun se pudo crear el ficheru «{file}»",
"Could not create file \"{file}\" because it already exists" : "Nun se pudo crear el ficheru «{file}» porque yá esiste",
"Could not create folder \"{dir}\" because it already exists" : "Nun se pudo crear la carpeta «{dir}» porque yá esiste",
@@ -324,23 +325,15 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Copióse l'enllaz direutu (namás funciona coles persones que tienen accesu a esti ficheru o esta carpeta)",
"Path" : "Camín",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Metióse en Favoritos",
"Copy direct link (only works for people who have access to this file/folder)" : "Copiar l'enllaz direutu (namás funciona coles persones que tienen accesu a esti ficheru o esta carpeta)",
"Upload file" : "Xubir un ficheru",
- "Not favorited" : "Nun ta en Favoritos",
"An error occurred while trying to update the tags" : "Prodúxose un error al tentar d'anovar les etiquetes",
- "Storage informations" : "Información del almacenamientu",
- "Choose file" : "Escoyer un ficheru",
- "Go to the previous folder" : "Dir a la carpeta anterior",
- "Open the files app settings" : "Abrir la configuración de Ficheros",
- "Unable to change the favourite state of the file" : "Nun ye posible camudar l'estáu favoritu del ficheru",
- "Create new templates folder" : "Crear una carpeta de plantíes",
+ "Upload (max. %s)" : "Xubir (%s como máximu)",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetes"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ficheru","{fileCount} ficheros"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ficheru y {folderCount} carpeta","1 ficheru y {folderCount} carpetes"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} ficheru y 1 carpeta","{fileCount} ficheros y 1 carpeta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} ficheros y {folderCount} carpetes",
- "List of favorites files and folders." : "Una llista de ficheros y carpetes favoritos.",
"Personal Files" : "Ficheros personales",
"Text file" : "Ficheru de testu",
"New text file.txt" : "ficheru_nuevu.txt"
diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json
index 48489d78e7f..1d456c10637 100644
--- a/apps/files/l10n/ast.json
+++ b/apps/files/l10n/ast.json
@@ -42,7 +42,6 @@
"A file or folder has been <strong>changed</strong>" : "Hai un ficheru o una carpeta que <strong>camudó</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Hai un ficheru o una carpeta de Favoritos que <strong>camudó</strong>",
"No favorites" : "Nengún favoritu",
- "Upload (max. %s)" : "Xubir (%s como máximu)",
"Accept" : "Aceptar",
"Reject" : "Refugar",
"Incoming ownership transfer from {user}" : "Recibióse una tresferencia de propiedá de: {user}",
@@ -73,6 +72,7 @@
"This node is unavailable" : "Esti noyu nun ta disponible",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renomóse «{oldName}» a «{newName}»",
"Rename file" : "Renomar el ficheru",
+ "Folder" : "Carpeta",
"Pending" : "Pendiente",
"Modified" : "Modificóse",
"Type" : "Tipu",
@@ -88,7 +88,6 @@
"Column headers with buttons are sortable." : "Les testeres de les columnes con botones puen ordenase.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta llista nun ta completa por motivos de rindimientu. Los ficheros van apaecer a midida que navegues pela llista.",
"File not found" : "Nun s'atopó'l ficheru",
- "{count} selected" : "{count} na seleición",
"{usedQuotaByte} used" : "{usedQuotaByte} n'usu",
"{used} of {quota} used" : "{used} de {quota} n'usu",
"{relative}% used" : "{relative}% n'usu",
@@ -177,6 +176,9 @@
"Delete" : "Desaniciar",
"Confirm deletion" : "Confirmar el desaniciu",
"Cancel" : "Encaboxar",
+ "Download" : "Baxar",
+ "Destination is not a folder" : "El destín nun ye una carpeta",
+ "This file/folder is already in that directory" : "Esti ficheru o esta carpeta yá ta nel direutoriu",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Nun pues mover un ficheru/carpeta a sigo mesma o la mesma socarpeta de la mesma carpeta",
"(copy)" : "(copia)",
"(copy %n)" : "(copia %n)",
@@ -194,8 +196,8 @@
"Cancelled move or copy operation" : "Anulóse la operación de mover o copiar",
"Open folder {displayName}" : "Abrir la carpeta «{displayName}»",
"Open in Files" : "Abrir en Ficheros",
- "Failed to redirect to client" : "Nun se pue redirixir al veceru",
"Open locally" : "Abrir llocalmente",
+ "Failed to redirect to client" : "Nun se pue redirixir al veceru",
"Rename" : "Renomar",
"Open details" : "Abrir los detalles",
"View in folder" : "Ver na carpeta",
@@ -225,6 +227,9 @@
"Files moved successfully" : "Los ficheros copiáronse correutamente",
"Conflicts resolution skipped" : "Saltóse la resolución de conflictos",
"Upload cancelled" : "Encaboxóse la busca",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Nun se pue renomar «{oldName}». Yá nun esiste",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nome «{newName}» yá ta n'usu na carpeta «{dir}». Escueyi otru nome.",
+ "Could not rename \"{oldName}\"" : "Nun se pudo renomar «{oldName}»",
"This operation is forbidden" : "Esta operación ta prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esti direutoriu nun ta disponible, revisa'l rexistru o ponte en contautu cola alministración.",
"Storage is temporarily not available" : "L'almacenamientu nun ta disponible temporalmente",
@@ -248,7 +253,6 @@
"Upload too large" : "La xuba ye mui grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los ficheros que tentes de xubir superen el tamañu máximu qu'esti sirvidor permite.",
"File could not be found" : "Nun se pudo atopar el ficheru",
- "Download" : "Baxar",
"Show list view" : "Amosar la vista en llista",
"Show grid view" : "Amosar la vista en rexáu",
"Close" : "Zarrar",
@@ -287,9 +291,6 @@
"Copied {origin} inside {destination}" : "Copióse «{origin}» dientro de: {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copióse «{origin}» y {nbfiles} ficheros más dientro de: {destination}",
"{newName} already exists" : "«{newName}» xá esiste",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nun se pudo nomar «{fileName}». Yá nun esiste",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nome «{targetName}» yá ta n'usu pola carpeta «{dir}». Escueyi otru nome.",
- "Could not rename \"{fileName}\"" : "Nun se pudo renomar «{fileName}»",
"Could not create file \"{file}\"" : "Nun se pudo crear el ficheru «{file}»",
"Could not create file \"{file}\" because it already exists" : "Nun se pudo crear el ficheru «{file}» porque yá esiste",
"Could not create folder \"{dir}\" because it already exists" : "Nun se pudo crear la carpeta «{dir}» porque yá esiste",
@@ -322,23 +323,15 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Copióse l'enllaz direutu (namás funciona coles persones que tienen accesu a esti ficheru o esta carpeta)",
"Path" : "Camín",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Metióse en Favoritos",
"Copy direct link (only works for people who have access to this file/folder)" : "Copiar l'enllaz direutu (namás funciona coles persones que tienen accesu a esti ficheru o esta carpeta)",
"Upload file" : "Xubir un ficheru",
- "Not favorited" : "Nun ta en Favoritos",
"An error occurred while trying to update the tags" : "Prodúxose un error al tentar d'anovar les etiquetes",
- "Storage informations" : "Información del almacenamientu",
- "Choose file" : "Escoyer un ficheru",
- "Go to the previous folder" : "Dir a la carpeta anterior",
- "Open the files app settings" : "Abrir la configuración de Ficheros",
- "Unable to change the favourite state of the file" : "Nun ye posible camudar l'estáu favoritu del ficheru",
- "Create new templates folder" : "Crear una carpeta de plantíes",
+ "Upload (max. %s)" : "Xubir (%s como máximu)",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetes"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ficheru","{fileCount} ficheros"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ficheru y {folderCount} carpeta","1 ficheru y {folderCount} carpetes"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} ficheru y 1 carpeta","{fileCount} ficheros y 1 carpeta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} ficheros y {folderCount} carpetes",
- "List of favorites files and folders." : "Una llista de ficheros y carpetes favoritos.",
"Personal Files" : "Ficheros personales",
"Text file" : "Ficheru de testu",
"New text file.txt" : "ficheru_nuevu.txt"
diff --git a/apps/files/l10n/az.js b/apps/files/l10n/az.js
deleted file mode 100644
index 7cce658e6c9..00000000000
--- a/apps/files/l10n/az.js
+++ /dev/null
@@ -1,104 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Storage not available" : "İnformasiya daşıyıcısı mövcud deyil",
- "Storage invalid" : "İnformasiya daşıyıcısı yalnışdır",
- "Unknown error" : "Bəlli olmayan səhv baş verdi",
- "Unable to set upload directory." : "Əlavələr qovluğunu təyin etmək mümkün olmadı.",
- "Invalid Token" : "Yalnış token",
- "No file was uploaded. Unknown error" : "Heç bir fayl uüklənilmədi. Naməlum səhv",
- "There is no error, the file uploaded with success" : "Səhv yoxdur, fayl uğurla yüklənildi.",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Yüklənilən faylin həcmi php.ini config faylinin upload_max_filesize direktivində göstəriləndən çoxdur.",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.",
- "The uploaded file was only partially uploaded" : "Yüklənilən faylın yalnız bir hissəsi yüklənildi",
- "No file was uploaded" : "Heç bir fayl yüklənilmədi",
- "Missing a temporary folder" : "Müvəqqəti qovluq çatışmır",
- "Failed to write to disk" : "Sərt diskə yazmaq mümkün olmadı",
- "Not enough storage available" : "Tələb edilən qədər yer yoxdur.",
- "The target folder has been moved or deleted." : "Mənsəbdə olan qovluqun ünvanı dəyişib yada silinib.",
- "Upload failed. Could not find uploaded file" : "Yüklənmədə səhv oldu. Yüklənmiş faylı tapmaq olmur.",
- "Upload failed. Could not get file info." : "Yüklənmədə səhv oldu. Faylın informasiyasını almaq mümkün olmadı.",
- "Invalid directory." : "Yalnış qovluq.",
- "Files" : "Fayllar",
- "All files" : "Bütün fayllar",
- "Home" : "Ev",
- "Close" : "Bağla",
- "Favorites" : "Sevimlilər",
- "Upload cancelled." : "Yüklənmə dayandırıldı.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Yükləmək olmur {filename} ona görə ki, ya qovluqdur yada ki, həcmi 0 baytdır ",
- "Total file size {size1} exceeds upload limit {size2}" : "Ümumi fayl həcmi {size1} yüklənmə limiti {size2} -ni aşır",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Kifayət qədər boş yer yoxdur, siz yükləyirsiniz {size1} ancaq {size2} var. ",
- "Could not get result from server." : "Nəticəni serverdən almaq mümkün olmur.",
- "Uploading..." : "Serverə yüklənir...",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Faylın yüklənməsi gedir. Əgər səhifəni indi tərk etsəniz yüklənmə dayanacaq.",
- "Actions" : "İşlər",
- "Download" : "Yüklə",
- "Rename" : "Adı dəyiş",
- "Delete" : "Sil",
- "Disconnect storage" : "Daşıyıcını ayır",
- "Unshare" : "Paylaşımı durdur",
- "Details" : "Detallar",
- "Select" : "Seç",
- "Pending" : "Gözləmə",
- "Unable to determine date" : "Tarixi təyin etmək mümkün olmadı",
- "This operation is forbidden" : "Bu əməliyyat qadağandır",
- "This directory is unavailable, please check the logs or contact the administrator" : "Bu qovluq tapılmir. Xahiş olunur jurnalları yoxlayın ya da inzibatçı ilə əlaqə saxlayın",
- "No entries in this folder match '{filter}'" : "Bu qovluqda '{filter}' uyğunluğunda heç bir verilən tapılmadı",
- "Name" : "Ad",
- "Size" : "Həcm",
- "Modified" : "Dəyişdirildi",
- "_%n folder_::_%n folders_" : ["%n qovluq","%n qovluqlar"],
- "_%n file_::_%n files_" : ["%n fayllar","%n fayllar"],
- "{dirs} and {files}" : "{dirs} və {files}",
- "You don’t have permission to upload or create files here" : "Sizin burda yükləməyə və ya fayl yaratmağa yetkiniz yoxdur ",
- "_Uploading %n file_::_Uploading %n files_" : ["%n fayllar yüklənilir","%n fayllar yüklənilir"],
- "New" : "Yeni",
- "\"{name}\" is an invalid file name." : "\"{name}\" yalnış fayl adıdır.",
- "File name cannot be empty." : "Faylın adı boş ola bilməz.",
- "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner} məlumat anbarı doludur, fayllar artıq yenilənə və ya sinxronizasiya edilə bilməz!",
- "Your storage is full, files can not be updated or synced anymore!" : "Sizin deponuz doludur, fayllar artıq yenilənə və sinxronizasiya edilə bilməz!",
- "Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner} məlumat anbari demək olar ki, doludur ({usedSpacePercent}%)",
- "Your storage is almost full ({usedSpacePercent}%)" : "Sizin depo depo demək olar ki, doludur ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["uyğun '{filter}'","uyğun '{filter}'"],
- "Path" : "Ünvan",
- "_%n byte_::_%n bytes_" : ["%n baytlar","%n bytes"],
- "Favorited" : "İstəkləndi",
- "Favorite" : "İstəkli",
- "Folder" : "Qovluq",
- "New folder" : "Yeni qovluq",
- "{newname} already exists" : "{newname} artıq mövcuddur",
- "Upload" : "Serverə yüklə",
- "An error occurred while trying to update the tags" : "Qeydlərin yenilənməsi müddətində səhv baş verdi ",
- "A new file or folder has been <strong>created</strong>" : "Yeni fayl və ya direktoriya <strong>yaradılmışdır</strong>",
- "A file or folder has been <strong>changed</strong>" : "Fayl və ya direktoriya <strong>dəyişdirilib</strong>",
- "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>sevimli faylların</strong> yaradılması və silinməsi haqqında olan xəbərdarlıqları limitlə <em>(Yalnız axınlar)</em>",
- "A file or folder has been <strong>deleted</strong>" : "Fayl və ya direktoriya <strong>silinib</strong>",
- "A file or folder has been <strong>restored</strong>" : "Fayl yada qovluq geriyə <strong>qaytarıldı</strong>",
- "You created %1$s" : "Siz yaratdınız %1$s",
- "%2$s created %1$s" : "%2$s yaradılmış %1$s",
- "%1$s was created in a public folder" : "%1$s ictimai qovluqda yaradıldı",
- "You changed %1$s" : "Siz dəyişdiniz %1$s",
- "%2$s changed %1$s" : "%2$s dəyişdirildi %1$s",
- "You deleted %1$s" : "Siz silindiniz %1$s",
- "%2$s deleted %1$s" : "%2$s silindi %1$s",
- "You restored %1$s" : "Siz qayıtdınız %1$s",
- "%2$s restored %1$s" : "%2$s bərpa edildi %1$s",
- "Upload (max. %s)" : "Yüklə (max. %s)",
- "File handling" : "Fayl emalı",
- "Maximum upload size" : "Maksimal yükləmə həcmi",
- "max. possible: " : "maks. ola bilər: ",
- "Save" : "Saxlamaq",
- "Settings" : "Quraşdırmalar",
- "WebDAV" : "WebDAV",
- "No files in here" : "Burda fayl yoxdur",
- "Upload some content or sync with your devices!" : "Bezi kontenti yüklə yada, öz avadanlıqlarınızla sinxronizasiya edin!",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Select all" : "Hamısıı seç",
- "Upload too large" : "Yüklənmə şox böyükdür",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Yükləmək istədiyiniz faylların həcmi, bu serverdə izin verilmiş maksimal yüklənmə həcmindən böyükdür.",
- "No favorites" : "Seçilmiş yoxdur",
- "Files and folders you mark as favorite will show up here" : "İstəkli qeyd etdiyiniz fayllar və qovluqlar burda göstəriləcək",
- "Text file" : "Tekst faylı",
- "New text file.txt" : "Yeni mətn file.txt"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/az.json b/apps/files/l10n/az.json
deleted file mode 100644
index 48bb39bc650..00000000000
--- a/apps/files/l10n/az.json
+++ /dev/null
@@ -1,102 +0,0 @@
-{ "translations": {
- "Storage not available" : "İnformasiya daşıyıcısı mövcud deyil",
- "Storage invalid" : "İnformasiya daşıyıcısı yalnışdır",
- "Unknown error" : "Bəlli olmayan səhv baş verdi",
- "Unable to set upload directory." : "Əlavələr qovluğunu təyin etmək mümkün olmadı.",
- "Invalid Token" : "Yalnış token",
- "No file was uploaded. Unknown error" : "Heç bir fayl uüklənilmədi. Naməlum səhv",
- "There is no error, the file uploaded with success" : "Səhv yoxdur, fayl uğurla yüklənildi.",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Yüklənilən faylin həcmi php.ini config faylinin upload_max_filesize direktivində göstəriləndən çoxdur.",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Yüklənilən faylın həcmi HTML formasinda olan MAX_FILE_SIZE direktivində təyin dilmiş həcmi aşır.",
- "The uploaded file was only partially uploaded" : "Yüklənilən faylın yalnız bir hissəsi yüklənildi",
- "No file was uploaded" : "Heç bir fayl yüklənilmədi",
- "Missing a temporary folder" : "Müvəqqəti qovluq çatışmır",
- "Failed to write to disk" : "Sərt diskə yazmaq mümkün olmadı",
- "Not enough storage available" : "Tələb edilən qədər yer yoxdur.",
- "The target folder has been moved or deleted." : "Mənsəbdə olan qovluqun ünvanı dəyişib yada silinib.",
- "Upload failed. Could not find uploaded file" : "Yüklənmədə səhv oldu. Yüklənmiş faylı tapmaq olmur.",
- "Upload failed. Could not get file info." : "Yüklənmədə səhv oldu. Faylın informasiyasını almaq mümkün olmadı.",
- "Invalid directory." : "Yalnış qovluq.",
- "Files" : "Fayllar",
- "All files" : "Bütün fayllar",
- "Home" : "Ev",
- "Close" : "Bağla",
- "Favorites" : "Sevimlilər",
- "Upload cancelled." : "Yüklənmə dayandırıldı.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Yükləmək olmur {filename} ona görə ki, ya qovluqdur yada ki, həcmi 0 baytdır ",
- "Total file size {size1} exceeds upload limit {size2}" : "Ümumi fayl həcmi {size1} yüklənmə limiti {size2} -ni aşır",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Kifayət qədər boş yer yoxdur, siz yükləyirsiniz {size1} ancaq {size2} var. ",
- "Could not get result from server." : "Nəticəni serverdən almaq mümkün olmur.",
- "Uploading..." : "Serverə yüklənir...",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Faylın yüklənməsi gedir. Əgər səhifəni indi tərk etsəniz yüklənmə dayanacaq.",
- "Actions" : "İşlər",
- "Download" : "Yüklə",
- "Rename" : "Adı dəyiş",
- "Delete" : "Sil",
- "Disconnect storage" : "Daşıyıcını ayır",
- "Unshare" : "Paylaşımı durdur",
- "Details" : "Detallar",
- "Select" : "Seç",
- "Pending" : "Gözləmə",
- "Unable to determine date" : "Tarixi təyin etmək mümkün olmadı",
- "This operation is forbidden" : "Bu əməliyyat qadağandır",
- "This directory is unavailable, please check the logs or contact the administrator" : "Bu qovluq tapılmir. Xahiş olunur jurnalları yoxlayın ya da inzibatçı ilə əlaqə saxlayın",
- "No entries in this folder match '{filter}'" : "Bu qovluqda '{filter}' uyğunluğunda heç bir verilən tapılmadı",
- "Name" : "Ad",
- "Size" : "Həcm",
- "Modified" : "Dəyişdirildi",
- "_%n folder_::_%n folders_" : ["%n qovluq","%n qovluqlar"],
- "_%n file_::_%n files_" : ["%n fayllar","%n fayllar"],
- "{dirs} and {files}" : "{dirs} və {files}",
- "You don’t have permission to upload or create files here" : "Sizin burda yükləməyə və ya fayl yaratmağa yetkiniz yoxdur ",
- "_Uploading %n file_::_Uploading %n files_" : ["%n fayllar yüklənilir","%n fayllar yüklənilir"],
- "New" : "Yeni",
- "\"{name}\" is an invalid file name." : "\"{name}\" yalnış fayl adıdır.",
- "File name cannot be empty." : "Faylın adı boş ola bilməz.",
- "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner} məlumat anbarı doludur, fayllar artıq yenilənə və ya sinxronizasiya edilə bilməz!",
- "Your storage is full, files can not be updated or synced anymore!" : "Sizin deponuz doludur, fayllar artıq yenilənə və sinxronizasiya edilə bilməz!",
- "Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner} məlumat anbari demək olar ki, doludur ({usedSpacePercent}%)",
- "Your storage is almost full ({usedSpacePercent}%)" : "Sizin depo depo demək olar ki, doludur ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["uyğun '{filter}'","uyğun '{filter}'"],
- "Path" : "Ünvan",
- "_%n byte_::_%n bytes_" : ["%n baytlar","%n bytes"],
- "Favorited" : "İstəkləndi",
- "Favorite" : "İstəkli",
- "Folder" : "Qovluq",
- "New folder" : "Yeni qovluq",
- "{newname} already exists" : "{newname} artıq mövcuddur",
- "Upload" : "Serverə yüklə",
- "An error occurred while trying to update the tags" : "Qeydlərin yenilənməsi müddətində səhv baş verdi ",
- "A new file or folder has been <strong>created</strong>" : "Yeni fayl və ya direktoriya <strong>yaradılmışdır</strong>",
- "A file or folder has been <strong>changed</strong>" : "Fayl və ya direktoriya <strong>dəyişdirilib</strong>",
- "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>sevimli faylların</strong> yaradılması və silinməsi haqqında olan xəbərdarlıqları limitlə <em>(Yalnız axınlar)</em>",
- "A file or folder has been <strong>deleted</strong>" : "Fayl və ya direktoriya <strong>silinib</strong>",
- "A file or folder has been <strong>restored</strong>" : "Fayl yada qovluq geriyə <strong>qaytarıldı</strong>",
- "You created %1$s" : "Siz yaratdınız %1$s",
- "%2$s created %1$s" : "%2$s yaradılmış %1$s",
- "%1$s was created in a public folder" : "%1$s ictimai qovluqda yaradıldı",
- "You changed %1$s" : "Siz dəyişdiniz %1$s",
- "%2$s changed %1$s" : "%2$s dəyişdirildi %1$s",
- "You deleted %1$s" : "Siz silindiniz %1$s",
- "%2$s deleted %1$s" : "%2$s silindi %1$s",
- "You restored %1$s" : "Siz qayıtdınız %1$s",
- "%2$s restored %1$s" : "%2$s bərpa edildi %1$s",
- "Upload (max. %s)" : "Yüklə (max. %s)",
- "File handling" : "Fayl emalı",
- "Maximum upload size" : "Maksimal yükləmə həcmi",
- "max. possible: " : "maks. ola bilər: ",
- "Save" : "Saxlamaq",
- "Settings" : "Quraşdırmalar",
- "WebDAV" : "WebDAV",
- "No files in here" : "Burda fayl yoxdur",
- "Upload some content or sync with your devices!" : "Bezi kontenti yüklə yada, öz avadanlıqlarınızla sinxronizasiya edin!",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Select all" : "Hamısıı seç",
- "Upload too large" : "Yüklənmə şox böyükdür",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Yükləmək istədiyiniz faylların həcmi, bu serverdə izin verilmiş maksimal yüklənmə həcmindən böyükdür.",
- "No favorites" : "Seçilmiş yoxdur",
- "Files and folders you mark as favorite will show up here" : "İstəkli qeyd etdiyiniz fayllar və qovluqlar burda göstəriləcək",
- "Text file" : "Tekst faylı",
- "New text file.txt" : "Yeni mətn file.txt"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/be.js b/apps/files/l10n/be.js
deleted file mode 100644
index 55e94ac2477..00000000000
--- a/apps/files/l10n/be.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Settings" : "Налады"
-},
-"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files/l10n/be.json b/apps/files/l10n/be.json
deleted file mode 100644
index 3f70a0783fe..00000000000
--- a/apps/files/l10n/be.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Settings" : "Налады"
-},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/bg.js b/apps/files/l10n/bg.js
index c5b2ee13859..ec156230010 100644
--- a/apps/files/l10n/bg.js
+++ b/apps/files/l10n/bg.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Restored by {user}" : "Възстановен от {user}",
"Renamed by {user}" : "Преименуван от {user}",
"Moved by {user}" : "Преместен от {user}",
+ "\"remote account\"" : "\"профил за отдалечен достъп\"",
"You created {file}" : "Създадохте {file}",
"You created an encrypted file in {file}" : "Създадохте криптиран файл в {file}",
"{user} created {file}" : "{user} създаде {file}",
@@ -42,8 +43,8 @@ OC.L10N.register(
"Files" : "Файлове",
"A file or folder has been <strong>changed</strong>" : "<strong>Промяна</strong> на файл / папка",
"A favorite file or folder has been <strong>changed</strong>" : "Предпочетен файл или папка е <strong>променен</strong>",
+ "Favorite files" : "Любими файлове",
"No favorites" : "Няма любими",
- "Upload (max. %s)" : "Качи (макс. %s)",
"Accept" : "Приемане",
"Reject" : "Откажи",
"Incoming ownership transfer from {user}" : "Входящо прехвърляне на собственост от {user}",
@@ -63,11 +64,13 @@ OC.L10N.register(
"Favorite" : "Любими",
"Filename" : "Име на файла",
"Folder name" : "Име на папка",
+ "Folder" : "Папка",
"Pending" : "Чакащо",
"Clear filter" : "Изчстиване на филтър",
"Modified" : "Промяна",
"Type" : "Тип",
"Active filters" : "Актижни филтри",
+ "Remove filter" : "Премахни филтър",
"Total rows summary" : "Обобщение на общия брой редове",
"Name" : "Име",
"Size" : "Размер",
@@ -75,6 +78,7 @@ OC.L10N.register(
"\"{displayName}\" action failed" : "Действието „{displayName}“ е неуспешно",
"Actions" : "Действия",
"File not found" : "Файлът не е намерен",
+ "_{count} selected_::_{count} selected_" : ["{count} избрани","{count} избрани"],
"{usedQuotaByte} used" : "{usedQuotaByte} използвано",
"{used} of {quota} used" : "{used} от {quota} използвани",
"{relative}% used" : "{relative}% използвано",
@@ -134,6 +138,9 @@ OC.L10N.register(
"Pick a template for {name}" : "Избор на шаблон за {name}",
"Create a new file with the selected template" : "Създаване на нов файл с избрания шаблон",
"Creating file" : "Създаване на файл ",
+ "_One file successfully converted_::_%n files successfully converted_" : ["Един файл е успешно преобразуван","%nфайловете са успешно преобразувани"],
+ "Files successfully converted" : "Файловете са успешно преобразувани",
+ "File successfully converted" : "Файлът е успешно преобразуван",
"Disconnect storage" : "Извади хранилището",
"Delete permanently" : "Изтрий завинаги",
"Delete file" : "Изтриване на файлове",
@@ -141,38 +148,50 @@ OC.L10N.register(
"Delete folder" : "Изтриване на папка",
"Delete" : "Изтрий",
"Cancel" : "Отказ",
+ "Download" : "Изтегли",
"Copy" : "Копирай",
"Move" : "Преместване",
"Move or copy" : "Премести или копирай",
- "Open file locally" : "Локално отваряне на файл",
- "Failed to redirect to client" : "Неуспешно пренасочване към клиент",
"Open locally" : "Локално отваряне",
+ "Failed to redirect to client" : "Неуспешно пренасочване към клиент",
+ "Open file locally" : "Локално отваряне на файл",
"Rename" : "Преименувай",
"Open details" : "Отваряне на подробности",
"View in folder" : "Преглед в папката",
"Today" : "Днес",
+ "Last 7 days" : "Последни 7 дни",
+ "Last 30 days" : "Последните 30 дни",
"Documents" : "Документи",
"Folders" : "Папки",
"Audio" : "Аудио",
"Videos" : "Видеа",
"Unable to initialize the templates directory" : "Неуспешно инициализиране на директорията с шаблони",
"Templates" : "Шаблони",
+ "Search in folder: {folder}" : "Търси в папка: {folder}",
+ "Files uploaded successfully" : "Файловете са качени успешно",
"Some files could not be moved" : "Някои файлове не могат да бъдат преместени",
+ "Files copied successfully" : "Файловете са успешно копирани",
+ "Files moved successfully" : "Файловете са преместени успешно",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Файлът \"{oldName}\" не може да бъде преименуван защото не съществува",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Името \"{newName}\" се ползва в директорията \"{dir}\". Моля, изберете друго име.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" не може да бъде преименуван",
"This operation is forbidden" : "Операцията е забранена",
"This directory is unavailable, please check the logs or contact the administrator" : "Директорията не е налична. Проверете журнала или се свържете с администратора",
"Storage is temporarily not available" : "Временно хранилището не е налично",
"_%n file_::_%n files_" : ["%n файл","%n файла"],
"_%n folder_::_%n folders_" : ["%n папка","%n папки"],
+ "List of favorite files and folders." : "Списък с любими файлове и папки.",
"No favorites yet" : "Няма любими",
"Files and folders you mark as favorite will show up here" : "Файловете и папките които маркирате като любими ще се показват тук",
"All files" : "Всички файлове",
+ "Personal files" : "Лични файлове",
+ "No personal files found" : "Не са открити лични файлове",
"Recent" : "Последни",
"No entries found in this folder" : "Няма намерени записи в тази папка",
"Select all" : "Избери всички",
"Upload too large" : "Прекалено голям файл за качване",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файловете, които се опитвате да качите са по-големи от позволеното на сървъра.",
"File could not be found" : "Файлът не може да бъде намерен",
- "Download" : "Изтегли",
"Show list view" : "Показване с изглед на списък",
"Show grid view" : "Показване в решетъчен изглед",
"Close" : "Затвори",
@@ -208,9 +227,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Копирано {origin} в {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Копирано {origin} и {nbfiles} други файлове в {destination}",
"{newName} already exists" : "{newName} вече съществува",
- "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}\" не може да бъде създаден",
"Could not create file \"{file}\" because it already exists" : "Файлът \"{file}\" не може да бъде създаден защото вече съществува",
"Could not create folder \"{dir}\" because it already exists" : "Папката \"{dir}\" не може да бъде създадена защото вече съществува",
@@ -240,17 +256,14 @@ OC.L10N.register(
"External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Външното хранилище е \"{mountPoint}“ е почти пълно ({usedSpacePercent}%).",
"Your storage is almost full ({usedSpacePercent}%)." : "Вашето хранилище е почти запълнено ({usedSpacePercent}%).",
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["съвпада с \"{filter}\"","съвпада с \"{filter}\""],
+ "Direct link was copied (only works for people who have access to this file/folder)" : "Директната връзка е копирана (ще работи само за хора, които имат достъп до този файл/папка)",
"Path" : "Път",
"_%n byte_::_%n bytes_" : ["%n байт","%n байта"],
- "Favorited" : "Отбелязано в любими",
+ "Copy direct link (only works for people who have access to this file/folder)" : "Копирай директна връзка (работи само за хора, които имат достъп до този файл/папка)",
"Upload file" : "Качи файл",
- "Not favorited" : "Премахни от любими",
"An error occurred while trying to update the tags" : "Възникна грешка при опита за промяна на етикети",
- "Storage informations" : "Хранилище на информация",
- "Go to the previous folder" : "Връщане към предишната папка",
- "Open the files app settings" : "Отваряне на настройките на приложението за файлове",
- "Unable to change the favourite state of the file" : "Не може да се промени състоянието за предпочитане на файла",
- "Create new templates folder" : "Създаване на нова папка за шаблони",
+ "Upload (max. %s)" : "Качи (макс. %s)",
+ "Personal Files" : "Лични файлове",
"Text file" : "Текстов файл",
"New text file.txt" : "Текстов файл.txt"
},
diff --git a/apps/files/l10n/bg.json b/apps/files/l10n/bg.json
index 05bc7cbbde2..9f2a5de769d 100644
--- a/apps/files/l10n/bg.json
+++ b/apps/files/l10n/bg.json
@@ -11,6 +11,7 @@
"Restored by {user}" : "Възстановен от {user}",
"Renamed by {user}" : "Преименуван от {user}",
"Moved by {user}" : "Преместен от {user}",
+ "\"remote account\"" : "\"профил за отдалечен достъп\"",
"You created {file}" : "Създадохте {file}",
"You created an encrypted file in {file}" : "Създадохте криптиран файл в {file}",
"{user} created {file}" : "{user} създаде {file}",
@@ -40,8 +41,8 @@
"Files" : "Файлове",
"A file or folder has been <strong>changed</strong>" : "<strong>Промяна</strong> на файл / папка",
"A favorite file or folder has been <strong>changed</strong>" : "Предпочетен файл или папка е <strong>променен</strong>",
+ "Favorite files" : "Любими файлове",
"No favorites" : "Няма любими",
- "Upload (max. %s)" : "Качи (макс. %s)",
"Accept" : "Приемане",
"Reject" : "Откажи",
"Incoming ownership transfer from {user}" : "Входящо прехвърляне на собственост от {user}",
@@ -61,11 +62,13 @@
"Favorite" : "Любими",
"Filename" : "Име на файла",
"Folder name" : "Име на папка",
+ "Folder" : "Папка",
"Pending" : "Чакащо",
"Clear filter" : "Изчстиване на филтър",
"Modified" : "Промяна",
"Type" : "Тип",
"Active filters" : "Актижни филтри",
+ "Remove filter" : "Премахни филтър",
"Total rows summary" : "Обобщение на общия брой редове",
"Name" : "Име",
"Size" : "Размер",
@@ -73,6 +76,7 @@
"\"{displayName}\" action failed" : "Действието „{displayName}“ е неуспешно",
"Actions" : "Действия",
"File not found" : "Файлът не е намерен",
+ "_{count} selected_::_{count} selected_" : ["{count} избрани","{count} избрани"],
"{usedQuotaByte} used" : "{usedQuotaByte} използвано",
"{used} of {quota} used" : "{used} от {quota} използвани",
"{relative}% used" : "{relative}% използвано",
@@ -132,6 +136,9 @@
"Pick a template for {name}" : "Избор на шаблон за {name}",
"Create a new file with the selected template" : "Създаване на нов файл с избрания шаблон",
"Creating file" : "Създаване на файл ",
+ "_One file successfully converted_::_%n files successfully converted_" : ["Един файл е успешно преобразуван","%nфайловете са успешно преобразувани"],
+ "Files successfully converted" : "Файловете са успешно преобразувани",
+ "File successfully converted" : "Файлът е успешно преобразуван",
"Disconnect storage" : "Извади хранилището",
"Delete permanently" : "Изтрий завинаги",
"Delete file" : "Изтриване на файлове",
@@ -139,38 +146,50 @@
"Delete folder" : "Изтриване на папка",
"Delete" : "Изтрий",
"Cancel" : "Отказ",
+ "Download" : "Изтегли",
"Copy" : "Копирай",
"Move" : "Преместване",
"Move or copy" : "Премести или копирай",
- "Open file locally" : "Локално отваряне на файл",
- "Failed to redirect to client" : "Неуспешно пренасочване към клиент",
"Open locally" : "Локално отваряне",
+ "Failed to redirect to client" : "Неуспешно пренасочване към клиент",
+ "Open file locally" : "Локално отваряне на файл",
"Rename" : "Преименувай",
"Open details" : "Отваряне на подробности",
"View in folder" : "Преглед в папката",
"Today" : "Днес",
+ "Last 7 days" : "Последни 7 дни",
+ "Last 30 days" : "Последните 30 дни",
"Documents" : "Документи",
"Folders" : "Папки",
"Audio" : "Аудио",
"Videos" : "Видеа",
"Unable to initialize the templates directory" : "Неуспешно инициализиране на директорията с шаблони",
"Templates" : "Шаблони",
+ "Search in folder: {folder}" : "Търси в папка: {folder}",
+ "Files uploaded successfully" : "Файловете са качени успешно",
"Some files could not be moved" : "Някои файлове не могат да бъдат преместени",
+ "Files copied successfully" : "Файловете са успешно копирани",
+ "Files moved successfully" : "Файловете са преместени успешно",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Файлът \"{oldName}\" не може да бъде преименуван защото не съществува",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Името \"{newName}\" се ползва в директорията \"{dir}\". Моля, изберете друго име.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" не може да бъде преименуван",
"This operation is forbidden" : "Операцията е забранена",
"This directory is unavailable, please check the logs or contact the administrator" : "Директорията не е налична. Проверете журнала или се свържете с администратора",
"Storage is temporarily not available" : "Временно хранилището не е налично",
"_%n file_::_%n files_" : ["%n файл","%n файла"],
"_%n folder_::_%n folders_" : ["%n папка","%n папки"],
+ "List of favorite files and folders." : "Списък с любими файлове и папки.",
"No favorites yet" : "Няма любими",
"Files and folders you mark as favorite will show up here" : "Файловете и папките които маркирате като любими ще се показват тук",
"All files" : "Всички файлове",
+ "Personal files" : "Лични файлове",
+ "No personal files found" : "Не са открити лични файлове",
"Recent" : "Последни",
"No entries found in this folder" : "Няма намерени записи в тази папка",
"Select all" : "Избери всички",
"Upload too large" : "Прекалено голям файл за качване",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файловете, които се опитвате да качите са по-големи от позволеното на сървъра.",
"File could not be found" : "Файлът не може да бъде намерен",
- "Download" : "Изтегли",
"Show list view" : "Показване с изглед на списък",
"Show grid view" : "Показване в решетъчен изглед",
"Close" : "Затвори",
@@ -206,9 +225,6 @@
"Copied {origin} inside {destination}" : "Копирано {origin} в {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Копирано {origin} и {nbfiles} други файлове в {destination}",
"{newName} already exists" : "{newName} вече съществува",
- "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}\" не може да бъде създаден",
"Could not create file \"{file}\" because it already exists" : "Файлът \"{file}\" не може да бъде създаден защото вече съществува",
"Could not create folder \"{dir}\" because it already exists" : "Папката \"{dir}\" не може да бъде създадена защото вече съществува",
@@ -238,17 +254,14 @@
"External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Външното хранилище е \"{mountPoint}“ е почти пълно ({usedSpacePercent}%).",
"Your storage is almost full ({usedSpacePercent}%)." : "Вашето хранилище е почти запълнено ({usedSpacePercent}%).",
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["съвпада с \"{filter}\"","съвпада с \"{filter}\""],
+ "Direct link was copied (only works for people who have access to this file/folder)" : "Директната връзка е копирана (ще работи само за хора, които имат достъп до този файл/папка)",
"Path" : "Път",
"_%n byte_::_%n bytes_" : ["%n байт","%n байта"],
- "Favorited" : "Отбелязано в любими",
+ "Copy direct link (only works for people who have access to this file/folder)" : "Копирай директна връзка (работи само за хора, които имат достъп до този файл/папка)",
"Upload file" : "Качи файл",
- "Not favorited" : "Премахни от любими",
"An error occurred while trying to update the tags" : "Възникна грешка при опита за промяна на етикети",
- "Storage informations" : "Хранилище на информация",
- "Go to the previous folder" : "Връщане към предишната папка",
- "Open the files app settings" : "Отваряне на настройките на приложението за файлове",
- "Unable to change the favourite state of the file" : "Не може да се промени състоянието за предпочитане на файла",
- "Create new templates folder" : "Създаване на нова папка за шаблони",
+ "Upload (max. %s)" : "Качи (макс. %s)",
+ "Personal Files" : "Лични файлове",
"Text file" : "Текстов файл",
"New text file.txt" : "Текстов файл.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files/l10n/bn_BD.js b/apps/files/l10n/bn_BD.js
deleted file mode 100644
index 43a8fc62fa6..00000000000
--- a/apps/files/l10n/bn_BD.js
+++ /dev/null
@@ -1,65 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Storage not available" : "সংরক্ষণের স্থান নেই",
- "Storage invalid" : "সংরক্ষণাগার বৈধ নয়",
- "Unknown error" : "অজানা জটিলতা",
- "Unable to set upload directory." : "েআপলোড ডিরেক্টরি নির্ধারণ করা গেলনা।",
- "No file was uploaded. Unknown error" : "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।",
- "There is no error, the file uploaded with success" : "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ",
- "The uploaded file was only partially uploaded" : "আপলোড করা ফাইলটি আংশিক আপলোড করা হয়েছে",
- "No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি",
- "Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে",
- "Failed to write to disk" : "ডিস্কে লিখতে ব্যর্থ",
- "Not enough storage available" : "সংরক্ষণের যথেষ্ট জায়গা প্রাপ্তব্য নয়",
- "Invalid directory." : "ভুল ডিরেক্টরি",
- "Files" : "ফাইল",
- "All files" : "সব ফাইল",
- "Home" : "নিবাস",
- "Close" : "বন্ধ",
- "Favorites" : "প্রিয়জন",
- "Upload cancelled." : "আপলোড বাতিল করা হয়েছে।",
- "Uploading..." : "আপলোড করা হচ্ছে..........",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।",
- "Actions" : "পদক্ষেপসমূহ",
- "Download" : "ডাউনলোড",
- "Rename" : "পূনঃনামকরণ",
- "Delete" : "মুছে",
- "Unshare" : "ভাগাভাগি বাতিল ",
- "Details" : "বিস্তারিত",
- "Pending" : "মুলতুবি",
- "Name" : "রাম",
- "Size" : "আকার",
- "Modified" : "পরিবর্তিত",
- "_Uploading %n file_::_Uploading %n files_" : ["%n ফাইল আপলোড হচ্ছে","%n ফাইল আপলোড হচ্ছে"],
- "New" : "নতুন",
- "\"{name}\" is an invalid file name." : "\"{name}\" টি একটি অননুমোদিত ফাইল নাম।",
- "File name cannot be empty." : "ফাইলের নামটি ফাঁকা রাখা যাবে না।",
- "Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ",
- "Favorite" : "প্রিয়জন",
- "Folder" : "ফোল্ডার",
- "New folder" : "নব ফােলডার",
- "Upload" : "আপলোড",
- "A new file or folder has been <strong>created</strong>" : "একটি ফাইল বা ফোলডার <strong>তৈরি</strong> করা হয়েছে",
- "A file or folder has been <strong>changed</strong>" : "একটি ফাইল বা ফোলডার <strong>পরিবরতন</strong> করা হয়েছে",
- "A file or folder has been <strong>deleted</strong>" : "একটি ফাইল বা ফোলডার <strong>মোছা</strong> হয়েছে",
- "You created %1$s" : "আপনি তৈরি করেছেন %1$s",
- "%2$s created %1$s" : "%2$s তৈরি হয়েছে %1$s",
- "%1$s was created in a public folder" : "একটি পাবলিক ফোল্ডারে %1$s তৈরী করা হয়েছে",
- "You changed %1$s" : "আপনি পরিবরতন করেছেন %1$s",
- "%2$s changed %1$s" : "%2$s পরিবরতন করেছে %1$s",
- "You deleted %1$s" : "আপনি ডিলিট করেছেন %1$s",
- "%2$s deleted %1$s" : "%2$s ডিলিট করেছে %1$s",
- "File handling" : "ফাইল হ্যার্ডলিং",
- "Maximum upload size" : "আপলোডের সর্বোচ্চ আকার",
- "max. possible: " : "অনুমোদিত সর্বোচ্চ আকার",
- "Save" : "সংরক্ষণ",
- "Settings" : "নিয়ামকসমূহ",
- "WebDAV" : "WebDAV",
- "Upload too large" : "আপলোডের আকারটি অনেক বড়",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন ",
- "Text file" : "টেক্সট ফাইল"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/bn_BD.json b/apps/files/l10n/bn_BD.json
deleted file mode 100644
index dc114d13a17..00000000000
--- a/apps/files/l10n/bn_BD.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{ "translations": {
- "Storage not available" : "সংরক্ষণের স্থান নেই",
- "Storage invalid" : "সংরক্ষণাগার বৈধ নয়",
- "Unknown error" : "অজানা জটিলতা",
- "Unable to set upload directory." : "েআপলোড ডিরেক্টরি নির্ধারণ করা গেলনা।",
- "No file was uploaded. Unknown error" : "কোন ফাইল আপলোড করা হয় নি। সমস্যার কারণটি অজ্ঞাত।",
- "There is no error, the file uploaded with success" : "কোন সমস্যা হয় নি, ফাইল আপলোড সুসম্পন্ন হয়েছে।",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "আপলোড করা ফাইলটি HTML ফর্মে উল্লিখিত MAX_FILE_SIZE নির্ধারিত ফাইলের সর্বোচ্চ আকার অতিক্রম করতে চলেছে ",
- "The uploaded file was only partially uploaded" : "আপলোড করা ফাইলটি আংশিক আপলোড করা হয়েছে",
- "No file was uploaded" : "কোন ফাইল আপলোড করা হয় নি",
- "Missing a temporary folder" : "অস্থায়ী ফোল্ডারটি হারানো গিয়েছে",
- "Failed to write to disk" : "ডিস্কে লিখতে ব্যর্থ",
- "Not enough storage available" : "সংরক্ষণের যথেষ্ট জায়গা প্রাপ্তব্য নয়",
- "Invalid directory." : "ভুল ডিরেক্টরি",
- "Files" : "ফাইল",
- "All files" : "সব ফাইল",
- "Home" : "নিবাস",
- "Close" : "বন্ধ",
- "Favorites" : "প্রিয়জন",
- "Upload cancelled." : "আপলোড বাতিল করা হয়েছে।",
- "Uploading..." : "আপলোড করা হচ্ছে..........",
- "File upload is in progress. Leaving the page now will cancel the upload." : "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।",
- "Actions" : "পদক্ষেপসমূহ",
- "Download" : "ডাউনলোড",
- "Rename" : "পূনঃনামকরণ",
- "Delete" : "মুছে",
- "Unshare" : "ভাগাভাগি বাতিল ",
- "Details" : "বিস্তারিত",
- "Pending" : "মুলতুবি",
- "Name" : "রাম",
- "Size" : "আকার",
- "Modified" : "পরিবর্তিত",
- "_Uploading %n file_::_Uploading %n files_" : ["%n ফাইল আপলোড হচ্ছে","%n ফাইল আপলোড হচ্ছে"],
- "New" : "নতুন",
- "\"{name}\" is an invalid file name." : "\"{name}\" টি একটি অননুমোদিত ফাইল নাম।",
- "File name cannot be empty." : "ফাইলের নামটি ফাঁকা রাখা যাবে না।",
- "Your storage is almost full ({usedSpacePercent}%)" : "আপনার সংরক্ষণাধার প্রায় পরিপূর্ণ ({usedSpacePercent}%) ",
- "Favorite" : "প্রিয়জন",
- "Folder" : "ফোল্ডার",
- "New folder" : "নব ফােলডার",
- "Upload" : "আপলোড",
- "A new file or folder has been <strong>created</strong>" : "একটি ফাইল বা ফোলডার <strong>তৈরি</strong> করা হয়েছে",
- "A file or folder has been <strong>changed</strong>" : "একটি ফাইল বা ফোলডার <strong>পরিবরতন</strong> করা হয়েছে",
- "A file or folder has been <strong>deleted</strong>" : "একটি ফাইল বা ফোলডার <strong>মোছা</strong> হয়েছে",
- "You created %1$s" : "আপনি তৈরি করেছেন %1$s",
- "%2$s created %1$s" : "%2$s তৈরি হয়েছে %1$s",
- "%1$s was created in a public folder" : "একটি পাবলিক ফোল্ডারে %1$s তৈরী করা হয়েছে",
- "You changed %1$s" : "আপনি পরিবরতন করেছেন %1$s",
- "%2$s changed %1$s" : "%2$s পরিবরতন করেছে %1$s",
- "You deleted %1$s" : "আপনি ডিলিট করেছেন %1$s",
- "%2$s deleted %1$s" : "%2$s ডিলিট করেছে %1$s",
- "File handling" : "ফাইল হ্যার্ডলিং",
- "Maximum upload size" : "আপলোডের সর্বোচ্চ আকার",
- "max. possible: " : "অনুমোদিত সর্বোচ্চ আকার",
- "Save" : "সংরক্ষণ",
- "Settings" : "নিয়ামকসমূহ",
- "WebDAV" : "WebDAV",
- "Upload too large" : "আপলোডের আকারটি অনেক বড়",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "আপনি এই সার্ভারে আপলোড করার জন্য অনুমোদিত ফাইলের সর্বোচ্চ আকারের চেয়ে বৃহদাকার ফাইল আপলোড করার চেষ্টা করছেন ",
- "Text file" : "টেক্সট ফাইল"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/br.js b/apps/files/l10n/br.js
deleted file mode 100644
index 2c4da9b0b72..00000000000
--- a/apps/files/l10n/br.js
+++ /dev/null
@@ -1,187 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "N'eo ket bet kavet ar restr",
- "Move or copy" : "Dilec'hiañ pe eilañ",
- "Download" : "Pellgargañ",
- "Delete" : "Lemel",
- "Tags" : "Klavioù",
- "Home" : "Degemer",
- "Close" : "Serriñ",
- "Could not create folder \"{dir}\"" : "Dibosupl eo krouiñ an teuliad \"{dir}\"",
- "This will stop your current uploads." : "Paouez a raio ho kasadennoù.",
- "Upload cancelled." : "Kasadenn nullet.",
- "Processing files …" : "Graet e vez war dro ar restroù ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Dibosupl eo kas {filename} evel emañ un teuliad pe ez eus 0 bytes anezhañ",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "N'eus ket trawalc'h a blas: o klask kas {size1} emaoc'h met n'eus nemet {size2} dieub",
- "Target folder \"{dir}\" does not exist any more" : "An teuliad \"{dir}\" n'eus ket anezhañ ken",
- "Not enough free space" : "N'eus ket trawalc'h a blas",
- "An unknown error has occurred" : "Ur fazi dizanv a zo bet",
- "Uploading …" : "O pellgas ...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} diwar {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "N'haller ket pellgas seurt restroù",
- "Target folder does not exist any more" : "An teuliad n'eus ket anezhañ ken",
- "Error when assembling chunks, status code {status}" : "Ur fazi zo bet en ur dolpañ ar blokoù, kod stad {status}",
- "Actions" : "Oberoù",
- "Rename" : "Adenvel",
- "Move" : "Diplasañ",
- "Copy" : "Eilañ",
- "Choose target folder" : "Dibab an teuliad moned",
- "Open" : "Digeriñ",
- "Delete file" : "Diverkañ ar restr",
- "Delete folder" : "Diverkañ an teuliad",
- "Disconnect storage" : "Digevreañ ar skor stokañ-mañ",
- "Could not load info for file \"{file}\"" : "Dibosupl eo kargañ titouroù ar restr \"{file}\"",
- "Files" : "Restroù",
- "Details" : "Munudoù",
- "Pending" : "O c'hortoz",
- "Unable to determine date" : "Dibosupl eo resisaat an deiziat",
- "This operation is forbidden" : "Difennet eo an ober-mañ",
- "This directory is unavailable, please check the logs or contact the administrator" : "N'eus ket tu da dizhout an teuliad-mañ, lennit al logoù pe kit e darempred gant ar merour",
- "Storage is temporarily not available" : "N'haller ket tizhout ar skor roadennoù evit ar poent",
- "Could not move \"{file}\", target exists" : "Dibosupl eo diblasañ \"{file}\", ar bukenn zo anezhi",
- "Could not move \"{file}\"" : "Dibosupl eo diblasañ \"{file}\"",
- "copy" : "eilañ",
- "Could not copy \"{file}\", target exists" : "Dibosupl eo eilañ \"{file}\", ar bukenn zo anezhi",
- "Could not copy \"{file}\"" : "Dibosupl eo eilañ \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} eilet e-barzh {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ha {nbfiles} restr all eilet e-barzh {destination}",
- "{newName} already exists" : "{newName} zo anezhañ dija",
- "Could not rename \"{fileName}\", it does not exist any more" : "Dibosupl eo adenvel \"{fileName}\", n'eus ket anezhan ken",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "An anv \"{targetName}\" a zo implijet en teuliad \\\"{dir}\\\". Trugarez da zibab un anv all.",
- "Could not rename \"{fileName}\"" : "Dibosupl eo adenvel \"{fileName}\"",
- "Could not create file \"{file}\"" : "Dibosupl eo krouiñ ar restr \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "Dibosupl eo krouiñ ar restr \"{file}\" peogwir ez eus anezhañ c'hoazh",
- "Could not create folder \"{dir}\" because it already exists" : "Dibosupl eo krouiñ an teuliad \"{dir}\" peogwir ez eus anezhañ c'hoazh",
- "Could not fetch file details \"{file}\"" : "Dibosupl eo adtapout munudoù ar restr \"{file}\"",
- "Error deleting file \"{fileName}\"." : "Ur fazi zo bet en ur ziverkañ ar restr \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Disoc'h ebet e teuliadoù all evit {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "Lakait muioc'h eget daou arouez evit klask e teuliadoù all",
- "Name" : "Anv",
- "Size" : "Ment",
- "Modified" : "Cheñchet",
- "_%n folder_::_%n folders_" : ["%nteuliad","%n deuliad","teuliadoù zo","an darn vrasañ eus an teuliadoù","%n teuliad"],
- "_%n file_::_%n files_" : ["%n restr","%n restr","restroù zo","an darn vrasañ eus ar restroù","%n restr"],
- "{dirs} and {files}" : "{dirs} ha {files}",
- "_including %n hidden_::_including %n hidden_" : [" %n koachet en o zouez","%n goachet en o zouez","koachet en o zouez","koachet en o zouez","koachet en o zouez %n"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n restr o vezañ karget","%n restr o vezañ karget","restroù zo o vezañ karget","an darn vrasañ eus ar restroù o vezañ karget","%n restr o vezañ karget"],
- "New" : "Nevez",
- "Select file range" : "Dibab un tachad restroù",
- "{used} of {quota} used" : "{used} diwar {quota} implijet",
- "{used} used" : "{used} implijet",
- "\"{name}\" is an invalid file name." : "N'eo ket \"{name}\" un anv restr aotreet.",
- "File name cannot be empty." : "N'hall ket anv ur restr bezañ goullo.",
- "\"/\" is not allowed inside a file name." : "N'eo ket aotreet \"/\" e anv ur restr.",
- "\"{name}\" is not an allowed filetype" : "N'eo ket \"{name}\" un doare restr aotreet",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "Lec'h renkañ {owner} a zo kaji leun ({usedSpacePercent}%).",
- "Your storage is almost full ({usedSpacePercent}%)." : "Ho lec'h renkañ a zo kaji leun ({usedSpacePercent}%).",
- "View in folder" : "Diskwel en teuliad",
- "Path" : "Hent",
- "_%n byte_::_%n bytes_" : ["okted","okted","okted","okted","%n okted"],
- "Favorited" : "Lakaet evel pennroll",
- "Favorite" : "Pennrollañ",
- "New folder" : "Teuliad nevez",
- "Create new folder" : "Krouiñ un teuliad nevez",
- "Upload file" : "Pellgas ur restr",
- "Recent" : "Nevez",
- "Not favorited" : "N'eo ket bet pennrollet",
- "Remove from favorites" : "Diverkañañ eus ar pennrolloù",
- "Add to favorites" : "Ouzhpennañ er pennrolloù",
- "An error occurred while trying to update the tags" : "Ur fazi a zo bet en ur neveziñ ar c'hlavoù",
- "Added to favorites" : "Ouzhpennet er pennrolloù",
- "Removed from favorites" : "Diverket eus ar pennrolloù",
- "You added {file} to your favorites" : "Ouzhpennet ho peus {file} en ho pennrolloù",
- "You removed {file} from your favorites" : "Diverket ho peus {file} eus ho pennrolloù",
- "Favorites" : "Pennrolloù",
- "File changes" : "Cheñch ar restroù",
- "Created by {user}" : "Krouet gant {user}",
- "Changed by {user}" : "Cheñchet gant {user}",
- "Deleted by {user}" : "Dilemet gant {user}",
- "Restored by {user}" : "Adsavet gant {user}",
- "Renamed by {user}" : "Adanvet gant {user}",
- "Moved by {user}" : "Dilec'hiet gant {user}",
- "You created {file}" : "Krouet ho peus {file}",
- "You created an encrypted file in {file}" : "Ur restr sifret ho peus krouet e {file}",
- "{user} created {file}" : "{user} en.he deus krouet {file}",
- "{user} created an encrypted file in {file}" : " {file} a zo bet sifret gant {user}",
- "{file} was created in a public folder" : "{file} a zo bet krouet en un teuliad foran",
- "You changed {file}" : "Cheñchet ho peus {file}",
- "You changed an encrypted file in {file}" : "Ur restr sifret ho peus cheñchet e {file}",
- "{user} changed {file}" : "{file} a zo bet cheñchet gant {user}",
- "{user} changed an encrypted file in {file}" : "{file} a zo bet cheñchet gant {user}",
- "You deleted {file}" : "Dilemet ho peus {file}",
- "You deleted an encrypted file in {file}" : "Ur rest sufret e {file} ho peus dilemet.",
- "{user} deleted {file}" : "{user} en.he deus diverket {file}",
- "{user} deleted an encrypted file in {file}" : "Ur restr sifret e {file} a zo bet dilemet gant {user}",
- "You restored {file}" : "Adsavet ho peus {file}",
- "{user} restored {file}" : "{file} a zo bet adsavet gant {user}",
- "You renamed {oldfile} to {newfile}" : "Adanvet ho peus {oldfile} e {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{oldfile} a zo bet adanvet gant {user} e {newfile}",
- "You moved {oldfile} to {newfile}" : "Dilec'hiet ho peus {oldfile} e {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{oldfile} a zo bet dilec'hiet gant {user} e {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Ur restr a zo bet ouzhpennet pe ziverket en ho <strong>pennrolloù</strong>",
- "A file or folder has been <strong>changed</strong>" : "Ur restr pe un teuliad a zo bet <strong>cheñchet</strong>",
- "A favorite file or folder has been <strong>changed</strong>" : "Unan eus ho restr pe teuliad karetañ a zo bet <strong>cheñchet</strong>",
- "Upload (max. %s)" : "Pellgas (max. %s)",
- "Accept" : "Asantiñ",
- "Reject" : "Nac'hañ",
- "Incoming ownership transfer from {user}" : "Treuzkas perc'henniezh a-berzh {user}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Asantiña rit {path} ?\n\nN. B. : Gallout a ra oberiadur an treuzkas padout betek 1 eur.",
- "Ownership transfer failed" : "C'hwitet eo bet an treuzkas perc'henniezh",
- "Your ownership transfer of {path} to {user} failed." : "Ho treuzkas perc'henniezh eus {path} da {user} en deus c'hwitet.",
- "The ownership transfer of {path} from {user} failed." : "An treuzkas perc'henniezh eus {path} da {user} en deus c'hwitet.",
- "Ownership transfer done" : "Treuzkas perc'hienniezh echu",
- "Your ownership transfer of {path} to {user} has completed." : "Ho treuzkas perc'henniezh eus {path} da {user} a zo echu.",
- "The ownership transfer of {path} from {user} has completed." : "An treuzkas perc'henniezh eus {path} da {user} a zo echu.",
- "in %s" : "e %s",
- "File Management" : "Meradur ar restr",
- "You don’t have permission to upload or create files here" : "N'och ket aotreet kas pe krouiñ restroù amañ",
- "Folder name" : "Anv teuliad",
- "Your storage is full, files can not be updated or synced anymore!" : "Leun eo ho skor stokañ. Ne c'hall ket ar restroù bezañ na nevezet na kempredet ken !",
- "Create" : "Krouiñ",
- "Transfer ownership of a file or folder" : "Treuzkas perc'henniezh ur restr pe un teuliad",
- "Choose file or folder to transfer" : "Dibabit ur restr pe un teuliad da dreuzkas",
- "Change" : "Cheñch",
- "New owner" : "Perc'henn nevez",
- "Choose a file or folder to transfer" : "Dibabit ur restr pe un teuliad da dreuzkas",
- "Transfer" : "Treuzkas",
- "Transfer {path} to {userid}" : "Treuzkas {path} da {userid}",
- "Invalid path selected" : "An hent dibabet n'eus ket anezhañ",
- "Unknown error" : "Fazi dizanv",
- "Ownership transfer request sent" : "Kaset eo bet ar goulenn treuzkas perc'henniezh",
- "No files in here" : "Restr ebet amañ",
- "Upload some content or sync with your devices!" : "Pellgas endalc'hoù pe gempredañ ho mekanikoù!",
- "Shared by link" : "Rannet dre liamm",
- "Shared" : "Rannet",
- "Show hidden files" : "Diskouez ar restroù koachet",
- "Additional settings" : "Stummoù ouzhpenn",
- "WebDAV" : "WebDAV",
- "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",
- "Delete permanently" : "Lamet da viken",
- "Cancel" : "Arrest",
- "Filename" : "Anv restr",
- "Some files could not be moved" : "Ne oa ket posupl diblasañ ar restroù",
- "No favorites yet" : "Pennroll ebet evit ar poent",
- "Files and folders you mark as favorite will show up here" : "Ar restroù ha teuliadoù ouzhpennet en ho pennrolloù a vo diskwelet amañ",
- "All files" : "An holl restroù",
- "No entries found in this folder" : "Disoc'h ebet en teuliad-mañ",
- "Select all" : "Dibab pep tra",
- "Upload too large" : "Re bonner eo ar gasadenn",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Ar restroù a glaskit pellgas a ya dreist d'ar vent vrasañ aotreet gant ar servijer mañ.",
- "Text file" : "Restr testenn",
- "New text file.txt" : "Restr testenn nevez rest.txt",
- "Copy direct link (only works for users who have access to this file/folder)" : "Eilañ al liamm eeun (nemet evit an implijourien aotreet da dizhout ar restr-mañ pe an teuliad-mañ)",
- "You can only favorite a single file or folder at a time" : "Ne c'hallit ouzhpennañ nemet ur pennroll teuliad pe restr en un taol.",
- "\"remote user\"" : "\"pell-implijer\"",
- "Choose" : "Dibab",
- "Toggle grid view" : "Gweredekat/Diweredekat an diskwel roued",
- "Shares" : "Rannañ",
- "Shared with others" : "Rannet gant tud all",
- "Shared with you" : "Rannet ganeoc'h",
- "Deleted shares" : "Rannañ dilemet",
- "Pending shares" : "Rannañ o c'hortoz"
-},
-"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");
diff --git a/apps/files/l10n/br.json b/apps/files/l10n/br.json
deleted file mode 100644
index 6fe2466493a..00000000000
--- a/apps/files/l10n/br.json
+++ /dev/null
@@ -1,185 +0,0 @@
-{ "translations": {
- "File could not be found" : "N'eo ket bet kavet ar restr",
- "Move or copy" : "Dilec'hiañ pe eilañ",
- "Download" : "Pellgargañ",
- "Delete" : "Lemel",
- "Tags" : "Klavioù",
- "Home" : "Degemer",
- "Close" : "Serriñ",
- "Could not create folder \"{dir}\"" : "Dibosupl eo krouiñ an teuliad \"{dir}\"",
- "This will stop your current uploads." : "Paouez a raio ho kasadennoù.",
- "Upload cancelled." : "Kasadenn nullet.",
- "Processing files …" : "Graet e vez war dro ar restroù ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Dibosupl eo kas {filename} evel emañ un teuliad pe ez eus 0 bytes anezhañ",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "N'eus ket trawalc'h a blas: o klask kas {size1} emaoc'h met n'eus nemet {size2} dieub",
- "Target folder \"{dir}\" does not exist any more" : "An teuliad \"{dir}\" n'eus ket anezhañ ken",
- "Not enough free space" : "N'eus ket trawalc'h a blas",
- "An unknown error has occurred" : "Ur fazi dizanv a zo bet",
- "Uploading …" : "O pellgas ...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} diwar {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "N'haller ket pellgas seurt restroù",
- "Target folder does not exist any more" : "An teuliad n'eus ket anezhañ ken",
- "Error when assembling chunks, status code {status}" : "Ur fazi zo bet en ur dolpañ ar blokoù, kod stad {status}",
- "Actions" : "Oberoù",
- "Rename" : "Adenvel",
- "Move" : "Diplasañ",
- "Copy" : "Eilañ",
- "Choose target folder" : "Dibab an teuliad moned",
- "Open" : "Digeriñ",
- "Delete file" : "Diverkañ ar restr",
- "Delete folder" : "Diverkañ an teuliad",
- "Disconnect storage" : "Digevreañ ar skor stokañ-mañ",
- "Could not load info for file \"{file}\"" : "Dibosupl eo kargañ titouroù ar restr \"{file}\"",
- "Files" : "Restroù",
- "Details" : "Munudoù",
- "Pending" : "O c'hortoz",
- "Unable to determine date" : "Dibosupl eo resisaat an deiziat",
- "This operation is forbidden" : "Difennet eo an ober-mañ",
- "This directory is unavailable, please check the logs or contact the administrator" : "N'eus ket tu da dizhout an teuliad-mañ, lennit al logoù pe kit e darempred gant ar merour",
- "Storage is temporarily not available" : "N'haller ket tizhout ar skor roadennoù evit ar poent",
- "Could not move \"{file}\", target exists" : "Dibosupl eo diblasañ \"{file}\", ar bukenn zo anezhi",
- "Could not move \"{file}\"" : "Dibosupl eo diblasañ \"{file}\"",
- "copy" : "eilañ",
- "Could not copy \"{file}\", target exists" : "Dibosupl eo eilañ \"{file}\", ar bukenn zo anezhi",
- "Could not copy \"{file}\"" : "Dibosupl eo eilañ \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} eilet e-barzh {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ha {nbfiles} restr all eilet e-barzh {destination}",
- "{newName} already exists" : "{newName} zo anezhañ dija",
- "Could not rename \"{fileName}\", it does not exist any more" : "Dibosupl eo adenvel \"{fileName}\", n'eus ket anezhan ken",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "An anv \"{targetName}\" a zo implijet en teuliad \\\"{dir}\\\". Trugarez da zibab un anv all.",
- "Could not rename \"{fileName}\"" : "Dibosupl eo adenvel \"{fileName}\"",
- "Could not create file \"{file}\"" : "Dibosupl eo krouiñ ar restr \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "Dibosupl eo krouiñ ar restr \"{file}\" peogwir ez eus anezhañ c'hoazh",
- "Could not create folder \"{dir}\" because it already exists" : "Dibosupl eo krouiñ an teuliad \"{dir}\" peogwir ez eus anezhañ c'hoazh",
- "Could not fetch file details \"{file}\"" : "Dibosupl eo adtapout munudoù ar restr \"{file}\"",
- "Error deleting file \"{fileName}\"." : "Ur fazi zo bet en ur ziverkañ ar restr \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Disoc'h ebet e teuliadoù all evit {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "Lakait muioc'h eget daou arouez evit klask e teuliadoù all",
- "Name" : "Anv",
- "Size" : "Ment",
- "Modified" : "Cheñchet",
- "_%n folder_::_%n folders_" : ["%nteuliad","%n deuliad","teuliadoù zo","an darn vrasañ eus an teuliadoù","%n teuliad"],
- "_%n file_::_%n files_" : ["%n restr","%n restr","restroù zo","an darn vrasañ eus ar restroù","%n restr"],
- "{dirs} and {files}" : "{dirs} ha {files}",
- "_including %n hidden_::_including %n hidden_" : [" %n koachet en o zouez","%n goachet en o zouez","koachet en o zouez","koachet en o zouez","koachet en o zouez %n"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n restr o vezañ karget","%n restr o vezañ karget","restroù zo o vezañ karget","an darn vrasañ eus ar restroù o vezañ karget","%n restr o vezañ karget"],
- "New" : "Nevez",
- "Select file range" : "Dibab un tachad restroù",
- "{used} of {quota} used" : "{used} diwar {quota} implijet",
- "{used} used" : "{used} implijet",
- "\"{name}\" is an invalid file name." : "N'eo ket \"{name}\" un anv restr aotreet.",
- "File name cannot be empty." : "N'hall ket anv ur restr bezañ goullo.",
- "\"/\" is not allowed inside a file name." : "N'eo ket aotreet \"/\" e anv ur restr.",
- "\"{name}\" is not an allowed filetype" : "N'eo ket \"{name}\" un doare restr aotreet",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "Lec'h renkañ {owner} a zo kaji leun ({usedSpacePercent}%).",
- "Your storage is almost full ({usedSpacePercent}%)." : "Ho lec'h renkañ a zo kaji leun ({usedSpacePercent}%).",
- "View in folder" : "Diskwel en teuliad",
- "Path" : "Hent",
- "_%n byte_::_%n bytes_" : ["okted","okted","okted","okted","%n okted"],
- "Favorited" : "Lakaet evel pennroll",
- "Favorite" : "Pennrollañ",
- "New folder" : "Teuliad nevez",
- "Create new folder" : "Krouiñ un teuliad nevez",
- "Upload file" : "Pellgas ur restr",
- "Recent" : "Nevez",
- "Not favorited" : "N'eo ket bet pennrollet",
- "Remove from favorites" : "Diverkañañ eus ar pennrolloù",
- "Add to favorites" : "Ouzhpennañ er pennrolloù",
- "An error occurred while trying to update the tags" : "Ur fazi a zo bet en ur neveziñ ar c'hlavoù",
- "Added to favorites" : "Ouzhpennet er pennrolloù",
- "Removed from favorites" : "Diverket eus ar pennrolloù",
- "You added {file} to your favorites" : "Ouzhpennet ho peus {file} en ho pennrolloù",
- "You removed {file} from your favorites" : "Diverket ho peus {file} eus ho pennrolloù",
- "Favorites" : "Pennrolloù",
- "File changes" : "Cheñch ar restroù",
- "Created by {user}" : "Krouet gant {user}",
- "Changed by {user}" : "Cheñchet gant {user}",
- "Deleted by {user}" : "Dilemet gant {user}",
- "Restored by {user}" : "Adsavet gant {user}",
- "Renamed by {user}" : "Adanvet gant {user}",
- "Moved by {user}" : "Dilec'hiet gant {user}",
- "You created {file}" : "Krouet ho peus {file}",
- "You created an encrypted file in {file}" : "Ur restr sifret ho peus krouet e {file}",
- "{user} created {file}" : "{user} en.he deus krouet {file}",
- "{user} created an encrypted file in {file}" : " {file} a zo bet sifret gant {user}",
- "{file} was created in a public folder" : "{file} a zo bet krouet en un teuliad foran",
- "You changed {file}" : "Cheñchet ho peus {file}",
- "You changed an encrypted file in {file}" : "Ur restr sifret ho peus cheñchet e {file}",
- "{user} changed {file}" : "{file} a zo bet cheñchet gant {user}",
- "{user} changed an encrypted file in {file}" : "{file} a zo bet cheñchet gant {user}",
- "You deleted {file}" : "Dilemet ho peus {file}",
- "You deleted an encrypted file in {file}" : "Ur rest sufret e {file} ho peus dilemet.",
- "{user} deleted {file}" : "{user} en.he deus diverket {file}",
- "{user} deleted an encrypted file in {file}" : "Ur restr sifret e {file} a zo bet dilemet gant {user}",
- "You restored {file}" : "Adsavet ho peus {file}",
- "{user} restored {file}" : "{file} a zo bet adsavet gant {user}",
- "You renamed {oldfile} to {newfile}" : "Adanvet ho peus {oldfile} e {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{oldfile} a zo bet adanvet gant {user} e {newfile}",
- "You moved {oldfile} to {newfile}" : "Dilec'hiet ho peus {oldfile} e {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{oldfile} a zo bet dilec'hiet gant {user} e {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Ur restr a zo bet ouzhpennet pe ziverket en ho <strong>pennrolloù</strong>",
- "A file or folder has been <strong>changed</strong>" : "Ur restr pe un teuliad a zo bet <strong>cheñchet</strong>",
- "A favorite file or folder has been <strong>changed</strong>" : "Unan eus ho restr pe teuliad karetañ a zo bet <strong>cheñchet</strong>",
- "Upload (max. %s)" : "Pellgas (max. %s)",
- "Accept" : "Asantiñ",
- "Reject" : "Nac'hañ",
- "Incoming ownership transfer from {user}" : "Treuzkas perc'henniezh a-berzh {user}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Asantiña rit {path} ?\n\nN. B. : Gallout a ra oberiadur an treuzkas padout betek 1 eur.",
- "Ownership transfer failed" : "C'hwitet eo bet an treuzkas perc'henniezh",
- "Your ownership transfer of {path} to {user} failed." : "Ho treuzkas perc'henniezh eus {path} da {user} en deus c'hwitet.",
- "The ownership transfer of {path} from {user} failed." : "An treuzkas perc'henniezh eus {path} da {user} en deus c'hwitet.",
- "Ownership transfer done" : "Treuzkas perc'hienniezh echu",
- "Your ownership transfer of {path} to {user} has completed." : "Ho treuzkas perc'henniezh eus {path} da {user} a zo echu.",
- "The ownership transfer of {path} from {user} has completed." : "An treuzkas perc'henniezh eus {path} da {user} a zo echu.",
- "in %s" : "e %s",
- "File Management" : "Meradur ar restr",
- "You don’t have permission to upload or create files here" : "N'och ket aotreet kas pe krouiñ restroù amañ",
- "Folder name" : "Anv teuliad",
- "Your storage is full, files can not be updated or synced anymore!" : "Leun eo ho skor stokañ. Ne c'hall ket ar restroù bezañ na nevezet na kempredet ken !",
- "Create" : "Krouiñ",
- "Transfer ownership of a file or folder" : "Treuzkas perc'henniezh ur restr pe un teuliad",
- "Choose file or folder to transfer" : "Dibabit ur restr pe un teuliad da dreuzkas",
- "Change" : "Cheñch",
- "New owner" : "Perc'henn nevez",
- "Choose a file or folder to transfer" : "Dibabit ur restr pe un teuliad da dreuzkas",
- "Transfer" : "Treuzkas",
- "Transfer {path} to {userid}" : "Treuzkas {path} da {userid}",
- "Invalid path selected" : "An hent dibabet n'eus ket anezhañ",
- "Unknown error" : "Fazi dizanv",
- "Ownership transfer request sent" : "Kaset eo bet ar goulenn treuzkas perc'henniezh",
- "No files in here" : "Restr ebet amañ",
- "Upload some content or sync with your devices!" : "Pellgas endalc'hoù pe gempredañ ho mekanikoù!",
- "Shared by link" : "Rannet dre liamm",
- "Shared" : "Rannet",
- "Show hidden files" : "Diskouez ar restroù koachet",
- "Additional settings" : "Stummoù ouzhpenn",
- "WebDAV" : "WebDAV",
- "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",
- "Delete permanently" : "Lamet da viken",
- "Cancel" : "Arrest",
- "Filename" : "Anv restr",
- "Some files could not be moved" : "Ne oa ket posupl diblasañ ar restroù",
- "No favorites yet" : "Pennroll ebet evit ar poent",
- "Files and folders you mark as favorite will show up here" : "Ar restroù ha teuliadoù ouzhpennet en ho pennrolloù a vo diskwelet amañ",
- "All files" : "An holl restroù",
- "No entries found in this folder" : "Disoc'h ebet en teuliad-mañ",
- "Select all" : "Dibab pep tra",
- "Upload too large" : "Re bonner eo ar gasadenn",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Ar restroù a glaskit pellgas a ya dreist d'ar vent vrasañ aotreet gant ar servijer mañ.",
- "Text file" : "Restr testenn",
- "New text file.txt" : "Restr testenn nevez rest.txt",
- "Copy direct link (only works for users who have access to this file/folder)" : "Eilañ al liamm eeun (nemet evit an implijourien aotreet da dizhout ar restr-mañ pe an teuliad-mañ)",
- "You can only favorite a single file or folder at a time" : "Ne c'hallit ouzhpennañ nemet ur pennroll teuliad pe restr en un taol.",
- "\"remote user\"" : "\"pell-implijer\"",
- "Choose" : "Dibab",
- "Toggle grid view" : "Gweredekat/Diweredekat an diskwel roued",
- "Shares" : "Rannañ",
- "Shared with others" : "Rannet gant tud all",
- "Shared with you" : "Rannet ganeoc'h",
- "Deleted shares" : "Rannañ dilemet",
- "Pending shares" : "Rannañ o c'hortoz"
-},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/bs.js b/apps/files/l10n/bs.js
deleted file mode 100644
index 30adf5d7b06..00000000000
--- a/apps/files/l10n/bs.js
+++ /dev/null
@@ -1,75 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Storage not available" : "Pohrana je nedostupna",
- "Storage invalid" : "Pohrana je neispravna",
- "Unknown error" : "Nepoznata greška",
- "Unable to set upload directory." : "Odredba direktorija učitavanja nije moguća.",
- "Invalid Token" : "Neispravan Znak",
- "No file was uploaded. Unknown error" : "Nijedna datoteka nije učitana. Nepoznata greška.",
- "There is no error, the file uploaded with success" : "Nema greške, datoteka je uspješno učitana.",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Učitana datoteka prelazi maksimalnu dopuštenu veličinu datoteke upload_max_filesize navedenu u php. ini: ",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Učitana datoteka premašuje maksimalnu dopuštenu veličinu datoteke MAX_FILE_SIZE navedenu u HTML formi",
- "The uploaded file was only partially uploaded" : "Učitana datoteka je samo djelomično učitana",
- "No file was uploaded" : "Nijedna datoteka nije učitana.",
- "Missing a temporary folder" : "Nedostaje privremeni direktorij.",
- "Failed to write to disk" : "Zapisivanje na disk nije uspjelo.",
- "Not enough storage available" : "Prostor za pohranu je nedovoljan",
- "The target folder has been moved or deleted." : "Ciljni direktorij je premješten ili izbrisan.",
- "Upload failed. Could not find uploaded file" : "Neuspješno učitavanje. Nije pronađena učitana dataoteka",
- "Upload failed. Could not get file info." : "Neuspješno učitavanje. Nedostupne informacije o datoteci.",
- "Invalid directory." : "Neispravan direktorij.",
- "Files" : "Datoteke",
- "All files" : "Sve datoteke",
- "Home" : "Kuća",
- "Close" : "Zatvori",
- "Favorites" : "Favoriti",
- "Upload cancelled." : "Učitavanje je prekinuto.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nemoguće učitati {filename} jer je ili direktorij ili ima 0 bajta",
- "Total file size {size1} exceeds upload limit {size2}" : "Ukupna veličina datoteke {size1} prelazi ograničenje unosa {size2}",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nedovoljno slobodnog prostora, vi učitavate {size1} a samo je {size2} preostalo",
- "Could not get result from server." : "Nemoguće dobiti rezultat od servera.",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Učitavanje datoteke je u toku. Napuštanje stranice prekinut će učitavanje.",
- "Actions" : "Radnje",
- "Download" : "Preuzmi",
- "Rename" : "Preimenuj",
- "Delete" : "Izbriši",
- "Disconnect storage" : "Diskonektuj pohranu",
- "Unshare" : "Prestani dijeliti",
- "Select" : "Izaberi",
- "Pending" : "Na čekanju",
- "Unable to determine date" : "Nemoguće odrediti datum",
- "Name" : "Ime",
- "Size" : "Veličina",
- "Modified" : "Izmijenjeno",
- "_%n folder_::_%n folders_" : ["direktorij","direktoriji","direktoriji"],
- "_%n file_::_%n files_" : ["%n datoteka","%n datoteke","%n datoteke"],
- "{dirs} and {files}" : "{dirs} i {files}",
- "You don’t have permission to upload or create files here" : "Ovdje niste ovlašteni učitavati ili kreirati datoteke",
- "_Uploading %n file_::_Uploading %n files_" : ["Prenosim %n datoteku","Prenosim %n datoteke","Prenosim %n datoteke"],
- "New" : "Novo",
- "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime datoteke.",
- "File name cannot be empty." : "Naziv datoteke ne može biti prazan",
- "Your storage is full, files can not be updated or synced anymore!" : "Vaša pohrana je puna, datoteke više nije moguće ažurirati niti sinhronizirati!",
- "Your storage is almost full ({usedSpacePercent}%)" : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)",
- "Favorited" : "Favorizovano",
- "Favorite" : "Favorit",
- "Folder" : "Direktorij",
- "New folder" : "Novi direktorij",
- "Upload" : "Učitaj",
- "Upload (max. %s)" : "Učitaj (max. %s)",
- "File handling" : "Obrada datoteke",
- "Maximum upload size" : "Maksimalna veličina učitavanja",
- "max. possible: " : "max. moguće: ",
- "Save" : "Spasi",
- "Settings" : "Postavke",
- "WebDAV" : "WebDAV",
- "Upload some content or sync with your devices!" : "Učitaj neki sadržaj ili sinhronizuj sa tvojim uređajima!",
- "Select all" : "Označi sve",
- "Upload too large" : "Učitavanje je preveliko",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke koje pokušavate učitati prelaze maksimalnu veličinu za učitavanje datoteka na ovom serveru.",
- "No favorites" : "Nema favorita",
- "Files and folders you mark as favorite will show up here" : "Datoteke i direktorij koje ste označili kao favorite će biti prikazane ovdje",
- "Text file" : "Tekstualna datoteka"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files/l10n/bs.json b/apps/files/l10n/bs.json
deleted file mode 100644
index 1d06dca2da8..00000000000
--- a/apps/files/l10n/bs.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{ "translations": {
- "Storage not available" : "Pohrana je nedostupna",
- "Storage invalid" : "Pohrana je neispravna",
- "Unknown error" : "Nepoznata greška",
- "Unable to set upload directory." : "Odredba direktorija učitavanja nije moguća.",
- "Invalid Token" : "Neispravan Znak",
- "No file was uploaded. Unknown error" : "Nijedna datoteka nije učitana. Nepoznata greška.",
- "There is no error, the file uploaded with success" : "Nema greške, datoteka je uspješno učitana.",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Učitana datoteka prelazi maksimalnu dopuštenu veličinu datoteke upload_max_filesize navedenu u php. ini: ",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Učitana datoteka premašuje maksimalnu dopuštenu veličinu datoteke MAX_FILE_SIZE navedenu u HTML formi",
- "The uploaded file was only partially uploaded" : "Učitana datoteka je samo djelomično učitana",
- "No file was uploaded" : "Nijedna datoteka nije učitana.",
- "Missing a temporary folder" : "Nedostaje privremeni direktorij.",
- "Failed to write to disk" : "Zapisivanje na disk nije uspjelo.",
- "Not enough storage available" : "Prostor za pohranu je nedovoljan",
- "The target folder has been moved or deleted." : "Ciljni direktorij je premješten ili izbrisan.",
- "Upload failed. Could not find uploaded file" : "Neuspješno učitavanje. Nije pronađena učitana dataoteka",
- "Upload failed. Could not get file info." : "Neuspješno učitavanje. Nedostupne informacije o datoteci.",
- "Invalid directory." : "Neispravan direktorij.",
- "Files" : "Datoteke",
- "All files" : "Sve datoteke",
- "Home" : "Kuća",
- "Close" : "Zatvori",
- "Favorites" : "Favoriti",
- "Upload cancelled." : "Učitavanje je prekinuto.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nemoguće učitati {filename} jer je ili direktorij ili ima 0 bajta",
- "Total file size {size1} exceeds upload limit {size2}" : "Ukupna veličina datoteke {size1} prelazi ograničenje unosa {size2}",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nedovoljno slobodnog prostora, vi učitavate {size1} a samo je {size2} preostalo",
- "Could not get result from server." : "Nemoguće dobiti rezultat od servera.",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Učitavanje datoteke je u toku. Napuštanje stranice prekinut će učitavanje.",
- "Actions" : "Radnje",
- "Download" : "Preuzmi",
- "Rename" : "Preimenuj",
- "Delete" : "Izbriši",
- "Disconnect storage" : "Diskonektuj pohranu",
- "Unshare" : "Prestani dijeliti",
- "Select" : "Izaberi",
- "Pending" : "Na čekanju",
- "Unable to determine date" : "Nemoguće odrediti datum",
- "Name" : "Ime",
- "Size" : "Veličina",
- "Modified" : "Izmijenjeno",
- "_%n folder_::_%n folders_" : ["direktorij","direktoriji","direktoriji"],
- "_%n file_::_%n files_" : ["%n datoteka","%n datoteke","%n datoteke"],
- "{dirs} and {files}" : "{dirs} i {files}",
- "You don’t have permission to upload or create files here" : "Ovdje niste ovlašteni učitavati ili kreirati datoteke",
- "_Uploading %n file_::_Uploading %n files_" : ["Prenosim %n datoteku","Prenosim %n datoteke","Prenosim %n datoteke"],
- "New" : "Novo",
- "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime datoteke.",
- "File name cannot be empty." : "Naziv datoteke ne može biti prazan",
- "Your storage is full, files can not be updated or synced anymore!" : "Vaša pohrana je puna, datoteke više nije moguće ažurirati niti sinhronizirati!",
- "Your storage is almost full ({usedSpacePercent}%)" : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent}%)",
- "Favorited" : "Favorizovano",
- "Favorite" : "Favorit",
- "Folder" : "Direktorij",
- "New folder" : "Novi direktorij",
- "Upload" : "Učitaj",
- "Upload (max. %s)" : "Učitaj (max. %s)",
- "File handling" : "Obrada datoteke",
- "Maximum upload size" : "Maksimalna veličina učitavanja",
- "max. possible: " : "max. moguće: ",
- "Save" : "Spasi",
- "Settings" : "Postavke",
- "WebDAV" : "WebDAV",
- "Upload some content or sync with your devices!" : "Učitaj neki sadržaj ili sinhronizuj sa tvojim uređajima!",
- "Select all" : "Označi sve",
- "Upload too large" : "Učitavanje je preveliko",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke koje pokušavate učitati prelaze maksimalnu veličinu za učitavanje datoteka na ovom serveru.",
- "No favorites" : "Nema favorita",
- "Files and folders you mark as favorite will show up here" : "Datoteke i direktorij koje ste označili kao favorite će biti prikazane ovdje",
- "Text file" : "Tekstualna datoteka"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index cae1855ec9c..c087434a9d2 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Fitxers preferits",
"No favorites" : "No hi ha preferits",
"More favorites" : "Més preferits",
- "Upload (max. %s)" : "Puja (màx. %s)",
"Accept" : "Accepta",
"Reject" : "Rebutja",
"Incoming ownership transfer from {user}" : "{user} us ha enviat una transferència de propietat",
@@ -95,6 +94,7 @@ OC.L10N.register(
"Invalid filename." : "Nom de fitxer no vàlid.",
"Renamed \"{oldName}\" to \"{newName}\"" : "S'ha canviat el nom de «{oldName}» a «{newName}»",
"Rename file" : "Canvia el nom del fitxer",
+ "Folder" : "Carpeta",
"Pending" : "Pendent",
"Unknown date" : "Data desconeguda",
"Clear filter" : "Esborra el filtre",
@@ -116,7 +116,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Les capçaleres de columna amb botons es poder ordenar.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Aquesta llista no es mostra completament per raons de rendiment. Es mostraran els fitxers a mesura que navegueu per la llista.",
"File not found" : "No s'ha trobat el fitxer",
- "{count} selected" : "Selecció: {count}",
"{usedQuotaByte} used" : "{usedQuotaByte} en ús",
"{used} of {quota} used" : "{used} de {quota} en ús",
"{relative}% used" : "{relative}% en ús",
@@ -219,6 +218,7 @@ OC.L10N.register(
"Show those shortcuts" : "Mostra aquestes dreceres",
"You" : "Vós",
"Shared multiple times with different people" : "S'ha compartit diverses vegades amb persones diferents",
+ "Unable to change the favorite state of the file" : "No es pot canviar l'estat preferit del fitxer",
"Error while loading the file data" : "S'ha produït un error en carregar la informació del fitxer",
"Owner" : "Propietat",
"Remove from favorites" : "Suprimeix dels preferits",
@@ -259,8 +259,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Esteu a punt de suprimir {count} element","Esteu a punt de suprimir {count} elements"],
"Confirm deletion" : "Confirma la supressió",
"Cancel" : "Cancel·la",
+ "Download" : "Baixa",
"Moving \"{source}\" to \"{destination}\" …" : "S'està movent \"{source}\" a \"{destination}”…",
"Copying \"{source}\" to \"{destination}\" …" : "S'està copiant \"{source}\" a \"{destination}” …",
+ "Destination is not a folder" : "La destinació no és una carpeta",
+ "This file/folder is already in that directory" : "Aquest fitxer o carpeta ja existeix en aquesta carpeta",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "No podeu moure un fitxer o carpeta a la mateixa carpeta o a una subcarpeta de la mateixa carpeta",
"(copy)" : "(còpia)",
"(copy %n)" : "(còpia %n)",
@@ -279,12 +282,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "S'ha cancel·lat l'operació de desplaçament o còpia",
"Open folder {displayName}" : "Obre la carpeta {displayName}",
"Open in Files" : "Obre a Fitxers",
+ "Open locally" : "Obre en local",
+ "Failed to redirect to client" : "No s'ha pogut redirigir al client",
"Open file locally" : "Obre el fitxer en local",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Ara s'hauria d'obrir el fitxer al dispositiu. Si no és així, comproveu que teniu instal·lada l'aplicació d'escriptori.",
"Retry and close" : "Torna-ho a provar i tanca",
"Open online" : "Obre en línia",
- "Failed to redirect to client" : "No s'ha pogut redirigir al client",
- "Open locally" : "Obre en local",
"Rename" : "Canvia el nom",
"Open details" : "Obre els detalls",
"View in folder" : "Visualitza-ho en la carpeta",
@@ -322,6 +325,9 @@ OC.L10N.register(
"Files moved successfully" : "Els fitxers s'han mogut correctament",
"Conflicts resolution skipped" : "S'ha omès la resolució de conflictes",
"Upload cancelled" : "S'ha cancel·lat la pujada",
+ "Could not rename \"{oldName}\", it does not exist any more" : "No s'ha pogut canviar el nom de «{oldName}», ja no existeix",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nom «{newName}» ja està en ús en la carpeta «{dir}». Trieu un nom diferent.",
+ "Could not rename \"{oldName}\"" : "No s'ha pogut canviar el nom de «{oldName}»",
"This operation is forbidden" : "Aquesta operació no està permesa",
"This directory is unavailable, please check the logs or contact the administrator" : "Aquesta carpeta no està disponible. Consulteu els registres o contacteu amb l'administrador",
"Storage is temporarily not available" : "L'emmagatzematge no està disponible temporalment",
@@ -352,7 +358,6 @@ OC.L10N.register(
"Upload too large" : "La pujada és massa gran",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Els fitxers que intenteu pujar superen la mida màxima de pujada de fitxers del servidor.",
"File could not be found" : "No s'ha pogut trobar el fitxer",
- "Download" : "Baixa",
"Show list view" : "Mostra la visualització de llista",
"Show grid view" : "Mostra la visualització de graella",
"Close" : "Tanca",
@@ -391,9 +396,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "S'ha copiat {origin} a {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "S'han copiat {origin} i {nbfiles} fitxers més a {destination}",
"{newName} already exists" : "{newName} ja existeix",
- "Could not rename \"{fileName}\", it does not exist any more" : "No s'ha pogut canviar el nom de «{fileName}», ja no existeix",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nom «{targetName}» ja està en ús en la carpeta «{dir}». Trieu un nom diferent.",
- "Could not rename \"{fileName}\"" : "No s'ha pogut canviar el nom de «{fileName}»",
"Could not create file \"{file}\"" : "No s'ha pogut crear el fitxer «{file}»",
"Could not create file \"{file}\" because it already exists" : "No s'ha pogut crear el fitxer «{file}» perquè ja existeix",
"Could not create folder \"{dir}\" because it already exists" : "No s'ha pogut crear la carpeta «{dir}» perquè ja existeix",
@@ -426,35 +428,22 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "S'ha copiat l'enllaç directe (només funciona per a les persones que tenen accés a aquest fitxer o carpeta)",
"Path" : "Camí",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "En els preferits",
+ "Favored" : "Afavorit",
+ "Favor" : "Afavorir",
"Copy direct link (only works for people who have access to this file/folder)" : "Copia l'enllaç directe (només funciona per a les persones que tinguin accés a aquest fitxer o carpeta)",
"Upload file" : "Puja un fitxer",
- "Not favorited" : "No s'inclou en els preferits",
+ "Not favored" : "No afavorit",
"An error occurred while trying to update the tags" : "S'ha produït un error en intentar actualitzar les etiquetes",
- "You don't have permission to upload or create files here." : "No teniu permís per pujar o crear fitxers aquí.",
- "Storage informations" : "Informació d'emmagatzematge",
- "Choose file" : "Tria el fitxer",
- "Go to the previous folder" : "Torna a la carpeta anterior",
- "Open the files app settings" : "Obre els paràmetres de l'aplicació Fitxers",
- "Unable to change the favourite state of the file" : "No s'ha pogut canviar l'estat de preferit del fitxer",
- "Edit file locally" : "Edició del fitxer localment",
- "Edit online" : "Edició en remot",
- "Create new templates folder" : "Crea la carpeta de plantilles",
+ "Upload (max. %s)" : "Puja (màx. %s)",
+ "Submitting fields…" : "S'estan enviant camps…",
+ "Filter filenames…" : "Filtra els noms de fitxer…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetes"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fitxer","{fileCount} fitxers"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fitxer i {folderCount} carpeta","1 fitxer i {folderCount} carpetes"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fitxer i 1 carpeta","{fileCount} fitxers i 1 carpeta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fitxers i {folderCount} carpetes",
- "List of favorites files and folders." : "Llista de fitxers i carpetes preferits.",
"Personal Files" : "FItxers personals",
"Text file" : "Fitxer de text",
- "New text file.txt" : "Fitxer de text nou.txt",
- "Favored" : "Afavorit",
- "Favor" : "Afavorir",
- "Not favored" : "No afavorit",
- "Submitting fields…" : "S'estan enviant camps…",
- "Filter filenames…" : "Filtra els noms de fitxer…",
- "{count} files could not be converted" : "No s'han pogut convertir {count} fitxers",
- "{count} files successfully converted" : "{count} fitxers convertits correctament"
+ "New text file.txt" : "Fitxer de text nou.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index 78d3d8ff275..1990d885d0b 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -52,7 +52,6 @@
"Favorite files" : "Fitxers preferits",
"No favorites" : "No hi ha preferits",
"More favorites" : "Més preferits",
- "Upload (max. %s)" : "Puja (màx. %s)",
"Accept" : "Accepta",
"Reject" : "Rebutja",
"Incoming ownership transfer from {user}" : "{user} us ha enviat una transferència de propietat",
@@ -93,6 +92,7 @@
"Invalid filename." : "Nom de fitxer no vàlid.",
"Renamed \"{oldName}\" to \"{newName}\"" : "S'ha canviat el nom de «{oldName}» a «{newName}»",
"Rename file" : "Canvia el nom del fitxer",
+ "Folder" : "Carpeta",
"Pending" : "Pendent",
"Unknown date" : "Data desconeguda",
"Clear filter" : "Esborra el filtre",
@@ -114,7 +114,6 @@
"Column headers with buttons are sortable." : "Les capçaleres de columna amb botons es poder ordenar.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Aquesta llista no es mostra completament per raons de rendiment. Es mostraran els fitxers a mesura que navegueu per la llista.",
"File not found" : "No s'ha trobat el fitxer",
- "{count} selected" : "Selecció: {count}",
"{usedQuotaByte} used" : "{usedQuotaByte} en ús",
"{used} of {quota} used" : "{used} de {quota} en ús",
"{relative}% used" : "{relative}% en ús",
@@ -217,6 +216,7 @@
"Show those shortcuts" : "Mostra aquestes dreceres",
"You" : "Vós",
"Shared multiple times with different people" : "S'ha compartit diverses vegades amb persones diferents",
+ "Unable to change the favorite state of the file" : "No es pot canviar l'estat preferit del fitxer",
"Error while loading the file data" : "S'ha produït un error en carregar la informació del fitxer",
"Owner" : "Propietat",
"Remove from favorites" : "Suprimeix dels preferits",
@@ -257,8 +257,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Esteu a punt de suprimir {count} element","Esteu a punt de suprimir {count} elements"],
"Confirm deletion" : "Confirma la supressió",
"Cancel" : "Cancel·la",
+ "Download" : "Baixa",
"Moving \"{source}\" to \"{destination}\" …" : "S'està movent \"{source}\" a \"{destination}”…",
"Copying \"{source}\" to \"{destination}\" …" : "S'està copiant \"{source}\" a \"{destination}” …",
+ "Destination is not a folder" : "La destinació no és una carpeta",
+ "This file/folder is already in that directory" : "Aquest fitxer o carpeta ja existeix en aquesta carpeta",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "No podeu moure un fitxer o carpeta a la mateixa carpeta o a una subcarpeta de la mateixa carpeta",
"(copy)" : "(còpia)",
"(copy %n)" : "(còpia %n)",
@@ -277,12 +280,12 @@
"Cancelled move or copy operation" : "S'ha cancel·lat l'operació de desplaçament o còpia",
"Open folder {displayName}" : "Obre la carpeta {displayName}",
"Open in Files" : "Obre a Fitxers",
+ "Open locally" : "Obre en local",
+ "Failed to redirect to client" : "No s'ha pogut redirigir al client",
"Open file locally" : "Obre el fitxer en local",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Ara s'hauria d'obrir el fitxer al dispositiu. Si no és així, comproveu que teniu instal·lada l'aplicació d'escriptori.",
"Retry and close" : "Torna-ho a provar i tanca",
"Open online" : "Obre en línia",
- "Failed to redirect to client" : "No s'ha pogut redirigir al client",
- "Open locally" : "Obre en local",
"Rename" : "Canvia el nom",
"Open details" : "Obre els detalls",
"View in folder" : "Visualitza-ho en la carpeta",
@@ -320,6 +323,9 @@
"Files moved successfully" : "Els fitxers s'han mogut correctament",
"Conflicts resolution skipped" : "S'ha omès la resolució de conflictes",
"Upload cancelled" : "S'ha cancel·lat la pujada",
+ "Could not rename \"{oldName}\", it does not exist any more" : "No s'ha pogut canviar el nom de «{oldName}», ja no existeix",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nom «{newName}» ja està en ús en la carpeta «{dir}». Trieu un nom diferent.",
+ "Could not rename \"{oldName}\"" : "No s'ha pogut canviar el nom de «{oldName}»",
"This operation is forbidden" : "Aquesta operació no està permesa",
"This directory is unavailable, please check the logs or contact the administrator" : "Aquesta carpeta no està disponible. Consulteu els registres o contacteu amb l'administrador",
"Storage is temporarily not available" : "L'emmagatzematge no està disponible temporalment",
@@ -350,7 +356,6 @@
"Upload too large" : "La pujada és massa gran",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Els fitxers que intenteu pujar superen la mida màxima de pujada de fitxers del servidor.",
"File could not be found" : "No s'ha pogut trobar el fitxer",
- "Download" : "Baixa",
"Show list view" : "Mostra la visualització de llista",
"Show grid view" : "Mostra la visualització de graella",
"Close" : "Tanca",
@@ -389,9 +394,6 @@
"Copied {origin} inside {destination}" : "S'ha copiat {origin} a {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "S'han copiat {origin} i {nbfiles} fitxers més a {destination}",
"{newName} already exists" : "{newName} ja existeix",
- "Could not rename \"{fileName}\", it does not exist any more" : "No s'ha pogut canviar el nom de «{fileName}», ja no existeix",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nom «{targetName}» ja està en ús en la carpeta «{dir}». Trieu un nom diferent.",
- "Could not rename \"{fileName}\"" : "No s'ha pogut canviar el nom de «{fileName}»",
"Could not create file \"{file}\"" : "No s'ha pogut crear el fitxer «{file}»",
"Could not create file \"{file}\" because it already exists" : "No s'ha pogut crear el fitxer «{file}» perquè ja existeix",
"Could not create folder \"{dir}\" because it already exists" : "No s'ha pogut crear la carpeta «{dir}» perquè ja existeix",
@@ -424,35 +426,22 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "S'ha copiat l'enllaç directe (només funciona per a les persones que tenen accés a aquest fitxer o carpeta)",
"Path" : "Camí",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "En els preferits",
+ "Favored" : "Afavorit",
+ "Favor" : "Afavorir",
"Copy direct link (only works for people who have access to this file/folder)" : "Copia l'enllaç directe (només funciona per a les persones que tinguin accés a aquest fitxer o carpeta)",
"Upload file" : "Puja un fitxer",
- "Not favorited" : "No s'inclou en els preferits",
+ "Not favored" : "No afavorit",
"An error occurred while trying to update the tags" : "S'ha produït un error en intentar actualitzar les etiquetes",
- "You don't have permission to upload or create files here." : "No teniu permís per pujar o crear fitxers aquí.",
- "Storage informations" : "Informació d'emmagatzematge",
- "Choose file" : "Tria el fitxer",
- "Go to the previous folder" : "Torna a la carpeta anterior",
- "Open the files app settings" : "Obre els paràmetres de l'aplicació Fitxers",
- "Unable to change the favourite state of the file" : "No s'ha pogut canviar l'estat de preferit del fitxer",
- "Edit file locally" : "Edició del fitxer localment",
- "Edit online" : "Edició en remot",
- "Create new templates folder" : "Crea la carpeta de plantilles",
+ "Upload (max. %s)" : "Puja (màx. %s)",
+ "Submitting fields…" : "S'estan enviant camps…",
+ "Filter filenames…" : "Filtra els noms de fitxer…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetes"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fitxer","{fileCount} fitxers"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fitxer i {folderCount} carpeta","1 fitxer i {folderCount} carpetes"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fitxer i 1 carpeta","{fileCount} fitxers i 1 carpeta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fitxers i {folderCount} carpetes",
- "List of favorites files and folders." : "Llista de fitxers i carpetes preferits.",
"Personal Files" : "FItxers personals",
"Text file" : "Fitxer de text",
- "New text file.txt" : "Fitxer de text nou.txt",
- "Favored" : "Afavorit",
- "Favor" : "Afavorir",
- "Not favored" : "No afavorit",
- "Submitting fields…" : "S'estan enviant camps…",
- "Filter filenames…" : "Filtra els noms de fitxer…",
- "{count} files could not be converted" : "No s'han pogut convertir {count} fitxers",
- "{count} files successfully converted" : "{count} fitxers convertits correctament"
+ "New text file.txt" : "Fitxer de text nou.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js
index b5c6029a5fa..43010512ed6 100644
--- a/apps/files/l10n/cs.js
+++ b/apps/files/l10n/cs.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Oblíbené soubory",
"No favorites" : "Žádné oblíbené",
"More favorites" : "Další oblíbené",
- "Upload (max. %s)" : "Nahrát (max. %s)",
"Accept" : "Přijmout",
"Reject" : "Odmítnout",
"Incoming ownership transfer from {user}" : "Příchozí převedení vlastnictví od {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Převedeno z %1$s na %2$s",
"Files compatibility" : "Kompatibilita souborů",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Umožňuje omezit názvy souborů aby bylo zajištěno, že soubory bude možné synchronizovat se všemi klienty. Ve výchozím stavu jsou povoleny veškeré názvy souborů, splňující standard POSIX (např. Linux nebo macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po povolení názvů souborů, kompatibilních s Windows, stávající soubory už nebude možné změnit, ale je možné je přejmenovat na platné nové názvy jejich vlastníkem.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Po povolení tohoto natavení je také možné soubory stěhovat automaticky. Další informace viz dokumentace k příkazu occ.",
"Enforce Windows compatibility" : "Vynutit kompatibilitu s Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Toto bude blokovat použití názvů souborů, které nejsou platné na strojích s Windows, jako je použití vyhrazených názvů nebo speciálních znaků. Ale nevynutí kompatibilitu v případě rozlišování malých/VELKÝCH písmen.",
"File Management" : "Správa souboru",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Neplatný název souboru.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Přejmenováno „{oldName}“ na „{newName}",
"Rename file" : "Přejmenovat soubor",
+ "Folder" : "Složka",
+ "Unknown file type" : "Neznámý typ souboru",
+ "{ext} image" : "{ext}obrázek",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} text",
"Pending" : "Nevyřízené",
"Unknown date" : "Neznámé datum",
"Clear filter" : "Vyčistit filtr",
@@ -105,9 +112,10 @@ OC.L10N.register(
"Total rows summary" : "Celkový souhrn řádek",
"Toggle selection for all files and folders" : "Vybrat / zrušit výběr všech souborů a složek",
"Name" : "Název",
+ "File type" : "Typ souboru",
"Size" : "Velikost",
"\"{displayName}\" failed on some elements" : "„{displayName}“ se pro některé prvky nezdařilo",
- "\"{displayName}\" batch action executed successfully" : "hromadná akce „{displayName}“ úspěšně vykonána",
+ "\"{displayName}\" batch action executed successfully" : "Hromadná akce „{displayName}“ úspěšně vykonána",
"\"{displayName}\" action failed" : "akce „{displayName}“ se nezdařila",
"Actions" : "Akce",
"(selected)" : "(vybráno)",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Podle těch sloupců, které mají v záhlaví tlačítko, je možné řadit.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.",
"File not found" : "Soubor nenalezen",
- "{count} selected" : "vybráno {count}",
+ "_{count} selected_::_{count} selected_" : ["vybráno {count}","vybráno {count}","vybráno {count}","vybráno {count}"],
"{usedQuotaByte} used" : "{usedQuotaByte} využito",
"{used} of {quota} used" : "Využito {used} z {quota} ",
"{relative}% used" : "{relative}% využito",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Seřadit od oblíbených",
"Sort folders before files" : "Při řazení zobrazovat složky a pak až soubory",
"Show hidden files" : "Zobrazit skryté soubory",
+ "Show file type column" : "Zobrazovat sloupec Typ souboru",
"Crop image previews" : "Oříznout náhledy obrázků",
"Enable the grid view" : "Zapnout zobrazení v mřížce",
"Enable folder tree" : "Zapnout strom složek",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Zobrazit tyto zkratky",
"You" : "Vy",
"Shared multiple times with different people" : "Nasdílet několikrát různým lidem",
+ "Unable to change the favorite state of the file" : "Nebylo možné změnit stav zařazení mezi oblíbené souboru",
"Error while loading the file data" : "Chyba při načítání dat souboru",
"Owner" : "Vlastník",
"Remove from favorites" : "Odebrat z oblíbených",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Chystáte se smazat {count} položku","Chystáte se smazat {count} položky","Chystáte se smazat {count} položek","Chystáte se smazat {count} položky"],
"Confirm deletion" : "Potvrdit smazání",
"Cancel" : "Storno",
+ "Download" : "Stáhnout",
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
+ "Destination is not a folder" : "Cíl není složka",
+ "This file/folder is already in that directory" : "V oné složce se už daný soubor/složka nachází",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Není možné přesunout soubor/složku do sebe samé nebo do své vlastní podložky",
"(copy)" : "(zkopírovat)",
"(copy %n)" : "(zkopírovat %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Operace přesunutí či zkopírování zrušena",
"Open folder {displayName}" : "Otevřít složku {displayName}",
"Open in Files" : "Otevřít v Souborech",
+ "Open locally" : "Otevřít lokálně",
+ "Failed to redirect to client" : "Nepodařilo se přesměrovat klienta",
"Open file locally" : "Otevřít soubor lokálně",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Soubor by se nyní měl otevřít na vašem zařízení. Pokud ne, zkontrolujte, zda máte nainstalovanou desktopovou aplikaci.",
"Retry and close" : "Zkusit znovu a zavřít",
"Open online" : "Otevřít online",
- "Failed to redirect to client" : "Nepodařilo se přesměrovat klienta",
- "Open locally" : "Otevřít lokálně",
"Rename" : "Přejmenovat",
"Open details" : "Otevřít podrobnosti",
"View in folder" : "Zobrazit ve složce",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "Soubory úspěšně přesunuty",
"Conflicts resolution skipped" : "Řešení kolizí přeskočeno",
"Upload cancelled" : "Nahrávání zrušeno",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Není možné přejmenovat „{oldName}“ – už neexistuje",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Název „{newName}“ je už použitý ve složce „{dir}“. Zvolte jiný název.",
+ "Could not rename \"{oldName}\"" : "„{oldName}“ se nepodařilo přejmenovat",
"This operation is forbidden" : "Tato operace je zakázána",
"This directory is unavailable, please check the logs or contact the administrator" : "Tento adresář není dostupný, zkontrolujte záznamy událostí nebo se obraťte na správce",
"Storage is temporarily not available" : "Úložiště je dočasně nedostupné",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Nahrávaná data jsou příliš objemná",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Soubory, které se snažíte nahrát, překračují limit velikosti nahrávání na tomto serveru.",
"File could not be found" : "Soubor se nedaří nalézt",
- "Download" : "Stáhnout",
"Show list view" : "Zobrazit v seznamu",
"Show grid view" : "Zobrazit v mřížce",
"Close" : "Zavřít",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} zkopírován do {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} a {nbfiles} dalších souborů zkopírováno do {destination}",
"{newName} already exists" : "{newName} už existuje",
- "Could not rename \"{fileName}\", it does not exist any more" : "„{fileName}“ nelze přejmenovat – už neexistuje",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Název „{targetName}“ je už použitý ve složce „{dir}“. Zvolte jiný název.",
- "Could not rename \"{fileName}\"" : "„{fileName}“ nelze přejmenovat",
"Could not create file \"{file}\"" : "Soubor „{file}“ nelze vytvořit",
"Could not create file \"{file}\" because it already exists" : "Soubor „{file}“ nelze vytvořit, protože zde už existuje",
"Could not create folder \"{dir}\" because it already exists" : "Složku „{dir}“ nelze vytvořit, protože už existuje",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Přímý odkaz byl zkopírován (funguje pouze pro osoby, které mají přístup k tomuto souboru/složce)",
"Path" : "Popis umístění",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů","%n bajty"],
- "Favorited" : "Přidáno mezi oblíbené",
+ "Favored" : "Zařazeno mezi oblíbené",
+ "Favor" : "Zařadit mezi oblíbené",
"Copy direct link (only works for people who have access to this file/folder)" : "Zkopírovat přímý odkaz (funguje pouze pro osoby, které mají přístup k tomuto souboru/složce)",
"Upload file" : "Nahrát soubor",
- "Not favorited" : "Nepřidáno do oblíbených",
+ "Not favored" : "Není v oblíbených",
"An error occurred while trying to update the tags" : "Při pokusu o úpravu štítků došlo k chybě",
- "You don't have permission to upload or create files here." : "Nemáte oprávnění sem nahrávat nebo zde vytvářet soubory.",
- "Storage informations" : "Informace o úložišti",
- "Choose file" : "Vyberte soubor",
- "Go to the previous folder" : "Přejít do předchozí složky",
- "Open the files app settings" : "Otevřít nastavení aplikace soubory",
- "Unable to change the favourite state of the file" : "Nedaří se změnit stav „oblíbené“ souboru",
- "Edit file locally" : "Upravit soubor lokálně",
- "Edit online" : "Upravit online",
- "Create new templates folder" : "Vytvořit novou složku šablon",
+ "Upload (max. %s)" : "Nahrát (max. %s)",
+ "Submitting fields…" : "Odesílání kolonek…",
+ "Filter filenames…" : "Filtrovat názvy souborů…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} složka","{folderCount} složky","{folderCount} složek","{folderCount} složky"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} soubor","{fileCount} soubory","{fileCount} souborů","{fileCount} soubory"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 soubor a {folderCount} složka","1 soubor a {folderCount} složky","1 soubor a {folderCount} složek","1 soubor a {folderCount} složky"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} soubor a 1 složka","{fileCount} soubory a 1 složka","{fileCount} souborů a 1 složka","{fileCount} soubory a 1 složka"],
"{fileCount} files and {folderCount} folders" : "{fileCount} souborů a {folderCount} složek",
- "List of favorites files and folders." : "Seznam oblíbených souborů a složek.",
"Personal Files" : "Osobní soubory",
"Text file" : "Textový soubor",
"New text file.txt" : "Nový textový soubor.txt",
- "Favored" : "Zařazeno mezi oblíbené",
- "Favor" : "Zařadit mezi oblíbené",
- "Not favored" : "Není v oblíbených",
- "Submitting fields…" : "Odesílání kolonek…",
- "Filter filenames…" : "Filtrovat názvy souborů…",
- "{count} files could not be converted" : "{count} souborů nebylo možné převést",
- "{count} files successfully converted" : "{count} souborů úspěšně převedeno"
+ "%1$s (renamed)" : "%1$s (přejmenované)",
+ "renamed file" : "přejmenovaný soubor",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po povolení názvů souborů, kompatibilních s Windows, stávající soubory už nebude možné změnit, ale je možné je přejmenovat na platné nové názvy jejich vlastníkem."
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json
index df32ef519de..20cfeaa25a0 100644
--- a/apps/files/l10n/cs.json
+++ b/apps/files/l10n/cs.json
@@ -52,7 +52,6 @@
"Favorite files" : "Oblíbené soubory",
"No favorites" : "Žádné oblíbené",
"More favorites" : "Další oblíbené",
- "Upload (max. %s)" : "Nahrát (max. %s)",
"Accept" : "Přijmout",
"Reject" : "Odmítnout",
"Incoming ownership transfer from {user}" : "Příchozí převedení vlastnictví od {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Převedeno z %1$s na %2$s",
"Files compatibility" : "Kompatibilita souborů",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Umožňuje omezit názvy souborů aby bylo zajištěno, že soubory bude možné synchronizovat se všemi klienty. Ve výchozím stavu jsou povoleny veškeré názvy souborů, splňující standard POSIX (např. Linux nebo macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po povolení názvů souborů, kompatibilních s Windows, stávající soubory už nebude možné změnit, ale je možné je přejmenovat na platné nové názvy jejich vlastníkem.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Po povolení tohoto natavení je také možné soubory stěhovat automaticky. Další informace viz dokumentace k příkazu occ.",
"Enforce Windows compatibility" : "Vynutit kompatibilitu s Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Toto bude blokovat použití názvů souborů, které nejsou platné na strojích s Windows, jako je použití vyhrazených názvů nebo speciálních znaků. Ale nevynutí kompatibilitu v případě rozlišování malých/VELKÝCH písmen.",
"File Management" : "Správa souboru",
@@ -93,6 +94,12 @@
"Invalid filename." : "Neplatný název souboru.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Přejmenováno „{oldName}“ na „{newName}",
"Rename file" : "Přejmenovat soubor",
+ "Folder" : "Složka",
+ "Unknown file type" : "Neznámý typ souboru",
+ "{ext} image" : "{ext}obrázek",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} text",
"Pending" : "Nevyřízené",
"Unknown date" : "Neznámé datum",
"Clear filter" : "Vyčistit filtr",
@@ -103,9 +110,10 @@
"Total rows summary" : "Celkový souhrn řádek",
"Toggle selection for all files and folders" : "Vybrat / zrušit výběr všech souborů a složek",
"Name" : "Název",
+ "File type" : "Typ souboru",
"Size" : "Velikost",
"\"{displayName}\" failed on some elements" : "„{displayName}“ se pro některé prvky nezdařilo",
- "\"{displayName}\" batch action executed successfully" : "hromadná akce „{displayName}“ úspěšně vykonána",
+ "\"{displayName}\" batch action executed successfully" : "Hromadná akce „{displayName}“ úspěšně vykonána",
"\"{displayName}\" action failed" : "akce „{displayName}“ se nezdařila",
"Actions" : "Akce",
"(selected)" : "(vybráno)",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Podle těch sloupců, které mají v záhlaví tlačítko, je možné řadit.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.",
"File not found" : "Soubor nenalezen",
- "{count} selected" : "vybráno {count}",
+ "_{count} selected_::_{count} selected_" : ["vybráno {count}","vybráno {count}","vybráno {count}","vybráno {count}"],
"{usedQuotaByte} used" : "{usedQuotaByte} využito",
"{used} of {quota} used" : "Využito {used} z {quota} ",
"{relative}% used" : "{relative}% využito",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Seřadit od oblíbených",
"Sort folders before files" : "Při řazení zobrazovat složky a pak až soubory",
"Show hidden files" : "Zobrazit skryté soubory",
+ "Show file type column" : "Zobrazovat sloupec Typ souboru",
"Crop image previews" : "Oříznout náhledy obrázků",
"Enable the grid view" : "Zapnout zobrazení v mřížce",
"Enable folder tree" : "Zapnout strom složek",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "Zobrazit tyto zkratky",
"You" : "Vy",
"Shared multiple times with different people" : "Nasdílet několikrát různým lidem",
+ "Unable to change the favorite state of the file" : "Nebylo možné změnit stav zařazení mezi oblíbené souboru",
"Error while loading the file data" : "Chyba při načítání dat souboru",
"Owner" : "Vlastník",
"Remove from favorites" : "Odebrat z oblíbených",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Chystáte se smazat {count} položku","Chystáte se smazat {count} položky","Chystáte se smazat {count} položek","Chystáte se smazat {count} položky"],
"Confirm deletion" : "Potvrdit smazání",
"Cancel" : "Storno",
+ "Download" : "Stáhnout",
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
+ "Destination is not a folder" : "Cíl není složka",
+ "This file/folder is already in that directory" : "V oné složce se už daný soubor/složka nachází",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Není možné přesunout soubor/složku do sebe samé nebo do své vlastní podložky",
"(copy)" : "(zkopírovat)",
"(copy %n)" : "(zkopírovat %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Operace přesunutí či zkopírování zrušena",
"Open folder {displayName}" : "Otevřít složku {displayName}",
"Open in Files" : "Otevřít v Souborech",
+ "Open locally" : "Otevřít lokálně",
+ "Failed to redirect to client" : "Nepodařilo se přesměrovat klienta",
"Open file locally" : "Otevřít soubor lokálně",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Soubor by se nyní měl otevřít na vašem zařízení. Pokud ne, zkontrolujte, zda máte nainstalovanou desktopovou aplikaci.",
"Retry and close" : "Zkusit znovu a zavřít",
"Open online" : "Otevřít online",
- "Failed to redirect to client" : "Nepodařilo se přesměrovat klienta",
- "Open locally" : "Otevřít lokálně",
"Rename" : "Přejmenovat",
"Open details" : "Otevřít podrobnosti",
"View in folder" : "Zobrazit ve složce",
@@ -320,6 +333,9 @@
"Files moved successfully" : "Soubory úspěšně přesunuty",
"Conflicts resolution skipped" : "Řešení kolizí přeskočeno",
"Upload cancelled" : "Nahrávání zrušeno",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Není možné přejmenovat „{oldName}“ – už neexistuje",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Název „{newName}“ je už použitý ve složce „{dir}“. Zvolte jiný název.",
+ "Could not rename \"{oldName}\"" : "„{oldName}“ se nepodařilo přejmenovat",
"This operation is forbidden" : "Tato operace je zakázána",
"This directory is unavailable, please check the logs or contact the administrator" : "Tento adresář není dostupný, zkontrolujte záznamy událostí nebo se obraťte na správce",
"Storage is temporarily not available" : "Úložiště je dočasně nedostupné",
@@ -351,7 +367,6 @@
"Upload too large" : "Nahrávaná data jsou příliš objemná",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Soubory, které se snažíte nahrát, překračují limit velikosti nahrávání na tomto serveru.",
"File could not be found" : "Soubor se nedaří nalézt",
- "Download" : "Stáhnout",
"Show list view" : "Zobrazit v seznamu",
"Show grid view" : "Zobrazit v mřížce",
"Close" : "Zavřít",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "{origin} zkopírován do {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} a {nbfiles} dalších souborů zkopírováno do {destination}",
"{newName} already exists" : "{newName} už existuje",
- "Could not rename \"{fileName}\", it does not exist any more" : "„{fileName}“ nelze přejmenovat – už neexistuje",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Název „{targetName}“ je už použitý ve složce „{dir}“. Zvolte jiný název.",
- "Could not rename \"{fileName}\"" : "„{fileName}“ nelze přejmenovat",
"Could not create file \"{file}\"" : "Soubor „{file}“ nelze vytvořit",
"Could not create file \"{file}\" because it already exists" : "Soubor „{file}“ nelze vytvořit, protože zde už existuje",
"Could not create folder \"{dir}\" because it already exists" : "Složku „{dir}“ nelze vytvořit, protože už existuje",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Přímý odkaz byl zkopírován (funguje pouze pro osoby, které mají přístup k tomuto souboru/složce)",
"Path" : "Popis umístění",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů","%n bajty"],
- "Favorited" : "Přidáno mezi oblíbené",
+ "Favored" : "Zařazeno mezi oblíbené",
+ "Favor" : "Zařadit mezi oblíbené",
"Copy direct link (only works for people who have access to this file/folder)" : "Zkopírovat přímý odkaz (funguje pouze pro osoby, které mají přístup k tomuto souboru/složce)",
"Upload file" : "Nahrát soubor",
- "Not favorited" : "Nepřidáno do oblíbených",
+ "Not favored" : "Není v oblíbených",
"An error occurred while trying to update the tags" : "Při pokusu o úpravu štítků došlo k chybě",
- "You don't have permission to upload or create files here." : "Nemáte oprávnění sem nahrávat nebo zde vytvářet soubory.",
- "Storage informations" : "Informace o úložišti",
- "Choose file" : "Vyberte soubor",
- "Go to the previous folder" : "Přejít do předchozí složky",
- "Open the files app settings" : "Otevřít nastavení aplikace soubory",
- "Unable to change the favourite state of the file" : "Nedaří se změnit stav „oblíbené“ souboru",
- "Edit file locally" : "Upravit soubor lokálně",
- "Edit online" : "Upravit online",
- "Create new templates folder" : "Vytvořit novou složku šablon",
+ "Upload (max. %s)" : "Nahrát (max. %s)",
+ "Submitting fields…" : "Odesílání kolonek…",
+ "Filter filenames…" : "Filtrovat názvy souborů…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} složka","{folderCount} složky","{folderCount} složek","{folderCount} složky"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} soubor","{fileCount} soubory","{fileCount} souborů","{fileCount} soubory"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 soubor a {folderCount} složka","1 soubor a {folderCount} složky","1 soubor a {folderCount} složek","1 soubor a {folderCount} složky"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} soubor a 1 složka","{fileCount} soubory a 1 složka","{fileCount} souborů a 1 složka","{fileCount} soubory a 1 složka"],
"{fileCount} files and {folderCount} folders" : "{fileCount} souborů a {folderCount} složek",
- "List of favorites files and folders." : "Seznam oblíbených souborů a složek.",
"Personal Files" : "Osobní soubory",
"Text file" : "Textový soubor",
"New text file.txt" : "Nový textový soubor.txt",
- "Favored" : "Zařazeno mezi oblíbené",
- "Favor" : "Zařadit mezi oblíbené",
- "Not favored" : "Není v oblíbených",
- "Submitting fields…" : "Odesílání kolonek…",
- "Filter filenames…" : "Filtrovat názvy souborů…",
- "{count} files could not be converted" : "{count} souborů nebylo možné převést",
- "{count} files successfully converted" : "{count} souborů úspěšně převedeno"
+ "%1$s (renamed)" : "%1$s (přejmenované)",
+ "renamed file" : "přejmenovaný soubor",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po povolení názvů souborů, kompatibilních s Windows, stávající soubory už nebude možné změnit, ale je možné je přejmenovat na platné nové názvy jejich vlastníkem."
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/files/l10n/cy_GB.js b/apps/files/l10n/cy_GB.js
deleted file mode 100644
index 075164ddee4..00000000000
--- a/apps/files/l10n/cy_GB.js
+++ /dev/null
@@ -1,45 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "No file was uploaded. Unknown error" : "Ni lwythwyd ffeil i fyny. Gwall anhysbys.",
- "There is no error, the file uploaded with success" : "Does dim gwall, llwythodd y ffeil i fyny'n llwyddiannus",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb upload_max_filesize yn php.ini:",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb MAX_FILE_SIZE bennwyd yn y ffurflen HTML",
- "The uploaded file was only partially uploaded" : "Dim ond yn rhannol y llwythwyd y ffeil i fyny",
- "No file was uploaded" : "Ni lwythwyd ffeil i fyny",
- "Missing a temporary folder" : "Plygell dros dro yn eisiau",
- "Failed to write to disk" : "Methwyd ysgrifennu i'r ddisg",
- "Not enough storage available" : "Dim digon o le storio ar gael",
- "Invalid directory." : "Cyfeiriadur annilys.",
- "Files" : "Ffeiliau",
- "Home" : "Cartref",
- "Close" : "Cau",
- "Upload cancelled." : "Diddymwyd llwytho i fyny.",
- "Uploading..." : "Yn llwytho i fyny...",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Mae ffeiliau'n cael eu llwytho i fyny. Bydd gadael y dudalen hon nawr yn diddymu'r broses.",
- "Actions" : "Gweithredoedd",
- "Download" : "Llwytho i lawr",
- "Rename" : "Ailenwi",
- "Delete" : "Dileu",
- "Unshare" : "Dad-rannu",
- "Details" : "Manylion",
- "Pending" : "I ddod",
- "Name" : "Enw",
- "Size" : "Maint",
- "Modified" : "Addaswyd",
- "New" : "Newydd",
- "File name cannot be empty." : "Does dim hawl cael enw ffeil gwag.",
- "Your storage is full, files can not be updated or synced anymore!" : "Mae eich storfa'n llawn, ni ellir diweddaru a chydweddu ffeiliau mwyach!",
- "Your storage is almost full ({usedSpacePercent}%)" : "Mae eich storfa bron a bod yn llawn ({usedSpacePercent}%)",
- "Folder" : "Plygell",
- "Upload" : "Llwytho i fyny",
- "File handling" : "Trafod ffeiliau",
- "Maximum upload size" : "Maint mwyaf llwytho i fyny",
- "max. possible: " : "mwyaf. posib:",
- "Save" : "Cadw",
- "Settings" : "Gosodiadau",
- "Upload too large" : "Maint llwytho i fyny'n rhy fawr",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Mae'r ffeiliau rydych yn ceisio llwytho i fyny'n fwy na maint mwyaf llwytho ffeiliau i fyny ar y gweinydd hwn.",
- "Text file" : "Ffeil destun"
-},
-"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/apps/files/l10n/cy_GB.json b/apps/files/l10n/cy_GB.json
deleted file mode 100644
index 698a79a2d9a..00000000000
--- a/apps/files/l10n/cy_GB.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{ "translations": {
- "No file was uploaded. Unknown error" : "Ni lwythwyd ffeil i fyny. Gwall anhysbys.",
- "There is no error, the file uploaded with success" : "Does dim gwall, llwythodd y ffeil i fyny'n llwyddiannus",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb upload_max_filesize yn php.ini:",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Mae'r ffeil lwythwyd i fyny'n fwy na chyfarwyddeb MAX_FILE_SIZE bennwyd yn y ffurflen HTML",
- "The uploaded file was only partially uploaded" : "Dim ond yn rhannol y llwythwyd y ffeil i fyny",
- "No file was uploaded" : "Ni lwythwyd ffeil i fyny",
- "Missing a temporary folder" : "Plygell dros dro yn eisiau",
- "Failed to write to disk" : "Methwyd ysgrifennu i'r ddisg",
- "Not enough storage available" : "Dim digon o le storio ar gael",
- "Invalid directory." : "Cyfeiriadur annilys.",
- "Files" : "Ffeiliau",
- "Home" : "Cartref",
- "Close" : "Cau",
- "Upload cancelled." : "Diddymwyd llwytho i fyny.",
- "Uploading..." : "Yn llwytho i fyny...",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Mae ffeiliau'n cael eu llwytho i fyny. Bydd gadael y dudalen hon nawr yn diddymu'r broses.",
- "Actions" : "Gweithredoedd",
- "Download" : "Llwytho i lawr",
- "Rename" : "Ailenwi",
- "Delete" : "Dileu",
- "Unshare" : "Dad-rannu",
- "Details" : "Manylion",
- "Pending" : "I ddod",
- "Name" : "Enw",
- "Size" : "Maint",
- "Modified" : "Addaswyd",
- "New" : "Newydd",
- "File name cannot be empty." : "Does dim hawl cael enw ffeil gwag.",
- "Your storage is full, files can not be updated or synced anymore!" : "Mae eich storfa'n llawn, ni ellir diweddaru a chydweddu ffeiliau mwyach!",
- "Your storage is almost full ({usedSpacePercent}%)" : "Mae eich storfa bron a bod yn llawn ({usedSpacePercent}%)",
- "Folder" : "Plygell",
- "Upload" : "Llwytho i fyny",
- "File handling" : "Trafod ffeiliau",
- "Maximum upload size" : "Maint mwyaf llwytho i fyny",
- "max. possible: " : "mwyaf. posib:",
- "Save" : "Cadw",
- "Settings" : "Gosodiadau",
- "Upload too large" : "Maint llwytho i fyny'n rhy fawr",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Mae'r ffeiliau rydych yn ceisio llwytho i fyny'n fwy na maint mwyaf llwytho ffeiliau i fyny ar y gweinydd hwn.",
- "Text file" : "Ffeil destun"
-},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js
index d8e418c1945..4a538d91e3f 100644
--- a/apps/files/l10n/da.js
+++ b/apps/files/l10n/da.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favoriser filer",
"No favorites" : "Ingen foretrukne",
"More favorites" : "Flere favoritter",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepter",
"Reject" : "Afvis",
"Incoming ownership transfer from {user}" : "Indgående ejerskabsoverførsel fra {user}",
@@ -95,6 +94,7 @@ OC.L10N.register(
"Invalid filename." : "Ugyldigt filnavn.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Omdøbte \"{oldName}\" til \"{newName}\"",
"Rename file" : "Omdøb fil",
+ "Folder" : "Mappe",
"Pending" : "Afventer",
"Unknown date" : "Ukendt dato",
"Clear filter" : "Ryd filter",
@@ -116,7 +116,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Kolonneoverskrifter med knapper er sorterbare.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Hele listen er ikke hentet, af hensyn til størrelsen. Listen vil blive hentet løbende som du kører igennem listen.",
"File not found" : "Filen blev ikke fundet",
- "{count} selected" : "{count} valgt",
"{usedQuotaByte} used" : "{usedQuotaByte} brugt",
"{used} of {quota} used" : "{used} af {quota} brugt",
"{relative}% used" : "{relative}% brugt",
@@ -219,6 +218,7 @@ OC.L10N.register(
"Show those shortcuts" : "Vis disse genveje",
"You" : "Dig",
"Shared multiple times with different people" : "Delt flere gange med forskellige mennesker",
+ "Unable to change the favorite state of the file" : "Kan ikke ændre favoritstatus for filen",
"Error while loading the file data" : "Fejl under indlæsning af fildata",
"Owner" : "Ejer",
"Remove from favorites" : "Fjern fra favoritter",
@@ -259,8 +259,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Du er ved at slette {count} element","Du er ved at slette {count} elementer"],
"Confirm deletion" : "Bekræft sletning",
"Cancel" : "annuller",
+ "Download" : "Download",
"Moving \"{source}\" to \"{destination}\" …" : "Flytter \"{source}\" til \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopierer \"{source}\" til \"{destination}\" …",
+ "Destination is not a folder" : "Destinationen er ikke en mappe",
+ "This file/folder is already in that directory" : "Filen/mappen er allerede i denne mappe",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan ikke flytte en fil/mappe ind i sig selv, eller til en mappe inden i sig selv",
"(copy)" : "(kopier)",
"(copy %n)" : "(kopier %n)",
@@ -279,12 +282,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Flytning eller kopiering er annulleret",
"Open folder {displayName}" : "Åben mappe {displayName}",
"Open in Files" : "Åben i Filer",
+ "Open locally" : "Åben lokalt",
+ "Failed to redirect to client" : "Kunne ikke omdirigere til klienten",
"Open file locally" : "Åben fil lokalt",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Filen bør nu åbne på dit apparat. Hvis den ikke gør det, så kontroller venligst at desktop app'en er installeret.",
"Retry and close" : "Forsøg igen og luk",
"Open online" : "Åben online",
- "Failed to redirect to client" : "Kunne ikke omdirigere til klienten",
- "Open locally" : "Åben lokalt",
"Rename" : "Omdøb",
"Open details" : "Mere information",
"View in folder" : "Vis i mappe",
@@ -322,6 +325,9 @@ OC.L10N.register(
"Files moved successfully" : "Filer flyttet succesfuldt",
"Conflicts resolution skipped" : "Konfliktløsning sprunget over",
"Upload cancelled" : "Upload annulleret",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kunne ikke omdøbe \"{oldName}\", da den findes ikke længere",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Navnet \"{newName}\" bruges allerede i mappen \"{dir}\". Vælg et andet navn.",
+ "Could not rename \"{oldName}\"" : "Kunne ikke omdøbe \"{oldName}\"",
"This operation is forbidden" : "Denne operation er forbudt",
"This directory is unavailable, please check the logs or contact the administrator" : "Denne mappe er utilgængelig, tjek venligst loggene eller kontakt administratoren",
"Storage is temporarily not available" : "Lagerplads er midlertidigt ikke tilgængeligt",
@@ -352,7 +358,6 @@ OC.L10N.register(
"Upload too large" : "Upload er for stor",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server.",
"File could not be found" : "Filen kunne ikke findes",
- "Download" : "Download",
"Show list view" : "Vis som liste",
"Show grid view" : "Vis som gitter",
"Close" : "Luk",
@@ -391,9 +396,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Kopirede {origin} ind i {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "kopierede {origin} og {nbfiles} andre filer ind i {destination}",
"{newName} already exists" : "{newName} eksisterer allerede",
- "Could not rename \"{fileName}\", it does not exist any more" : "Kunne ikke omdøbe \"{fileName}\", den findes ikke længere",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Navnet \"{targetName}\" bruges allerede i mappen \"{dir}\". Vælg et andet navn.",
- "Could not rename \"{fileName}\"" : "Kunne ikke omdøbe \"{fileName}\"",
"Could not create file \"{file}\"" : "Kunne ikke oprette filen \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Kunne ikke oprette filen \"{file}\", da den allerede findes",
"Could not create folder \"{dir}\" because it already exists" : "Kunne ikke oprette mappen \"{dir}\", da den allerede findes",
@@ -426,35 +428,22 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Linket er kopieret (dette link kan kun anvendes af brugere med adgang til denne fil/mappe)",
"Path" : "Sti",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Gjort til foretrukken",
+ "Favored" : "Foretrukken",
+ "Favor" : "Foretræk",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopier direkte link (virker kun for brugere der har adgang til denne fil/mappe)",
"Upload file" : "Upload fil",
- "Not favorited" : "Ingen foretrukne",
+ "Not favored" : "Ikke foretrukket",
"An error occurred while trying to update the tags" : "Der opstod en fejl under forsøg på at opdatere mærkerne",
- "You don't have permission to upload or create files here." : "Du har ikke rettigheder til at uploade eller oprette filer her.",
- "Storage informations" : "Lagerinformationer",
- "Choose file" : "Vælg fil",
- "Go to the previous folder" : "Gå til forrige mappe",
- "Open the files app settings" : "Åbn fil-app indstillinger",
- "Unable to change the favourite state of the file" : "Kan ikke ændre favorittilstanden for filen",
- "Edit file locally" : "Rediger fil lokalt",
- "Edit online" : "Rediger online",
- "Create new templates folder" : "Opsæt ny skabelonmappe",
+ "Upload (max. %s)" : "Upload (max. %s)",
+ "Submitting fields…" : "Sender felter...",
+ "Filter filenames…" : "Filtrer filnavne...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappe","{folderCount} mapper"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil og {folderCount} mapper","1 fil og {folderCount} mapper"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fil og 1 mapper","{fileCount} filer og 1 mapper"],
"{fileCount} files and {folderCount} folders" : "{fileCount} filer og {folderCount} mapper",
- "List of favorites files and folders." : "Liste med foretrukne filer og mapper.",
"Personal Files" : "Personlige filer",
"Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekstfil.txt",
- "Favored" : "Foretrukken",
- "Favor" : "Foretræk",
- "Not favored" : "Ikke foretrukket",
- "Submitting fields…" : "Sender felter...",
- "Filter filenames…" : "Filtrer filnavne...",
- "{count} files could not be converted" : "{count} filer kunne ikke konverteres",
- "{count} files successfully converted" : "{count} filer konverteret"
+ "New text file.txt" : "Ny tekstfil.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json
index a78f64dd320..95cd920e0a0 100644
--- a/apps/files/l10n/da.json
+++ b/apps/files/l10n/da.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favoriser filer",
"No favorites" : "Ingen foretrukne",
"More favorites" : "Flere favoritter",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepter",
"Reject" : "Afvis",
"Incoming ownership transfer from {user}" : "Indgående ejerskabsoverførsel fra {user}",
@@ -93,6 +92,7 @@
"Invalid filename." : "Ugyldigt filnavn.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Omdøbte \"{oldName}\" til \"{newName}\"",
"Rename file" : "Omdøb fil",
+ "Folder" : "Mappe",
"Pending" : "Afventer",
"Unknown date" : "Ukendt dato",
"Clear filter" : "Ryd filter",
@@ -114,7 +114,6 @@
"Column headers with buttons are sortable." : "Kolonneoverskrifter med knapper er sorterbare.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Hele listen er ikke hentet, af hensyn til størrelsen. Listen vil blive hentet løbende som du kører igennem listen.",
"File not found" : "Filen blev ikke fundet",
- "{count} selected" : "{count} valgt",
"{usedQuotaByte} used" : "{usedQuotaByte} brugt",
"{used} of {quota} used" : "{used} af {quota} brugt",
"{relative}% used" : "{relative}% brugt",
@@ -217,6 +216,7 @@
"Show those shortcuts" : "Vis disse genveje",
"You" : "Dig",
"Shared multiple times with different people" : "Delt flere gange med forskellige mennesker",
+ "Unable to change the favorite state of the file" : "Kan ikke ændre favoritstatus for filen",
"Error while loading the file data" : "Fejl under indlæsning af fildata",
"Owner" : "Ejer",
"Remove from favorites" : "Fjern fra favoritter",
@@ -257,8 +257,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Du er ved at slette {count} element","Du er ved at slette {count} elementer"],
"Confirm deletion" : "Bekræft sletning",
"Cancel" : "annuller",
+ "Download" : "Download",
"Moving \"{source}\" to \"{destination}\" …" : "Flytter \"{source}\" til \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopierer \"{source}\" til \"{destination}\" …",
+ "Destination is not a folder" : "Destinationen er ikke en mappe",
+ "This file/folder is already in that directory" : "Filen/mappen er allerede i denne mappe",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan ikke flytte en fil/mappe ind i sig selv, eller til en mappe inden i sig selv",
"(copy)" : "(kopier)",
"(copy %n)" : "(kopier %n)",
@@ -277,12 +280,12 @@
"Cancelled move or copy operation" : "Flytning eller kopiering er annulleret",
"Open folder {displayName}" : "Åben mappe {displayName}",
"Open in Files" : "Åben i Filer",
+ "Open locally" : "Åben lokalt",
+ "Failed to redirect to client" : "Kunne ikke omdirigere til klienten",
"Open file locally" : "Åben fil lokalt",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Filen bør nu åbne på dit apparat. Hvis den ikke gør det, så kontroller venligst at desktop app'en er installeret.",
"Retry and close" : "Forsøg igen og luk",
"Open online" : "Åben online",
- "Failed to redirect to client" : "Kunne ikke omdirigere til klienten",
- "Open locally" : "Åben lokalt",
"Rename" : "Omdøb",
"Open details" : "Mere information",
"View in folder" : "Vis i mappe",
@@ -320,6 +323,9 @@
"Files moved successfully" : "Filer flyttet succesfuldt",
"Conflicts resolution skipped" : "Konfliktløsning sprunget over",
"Upload cancelled" : "Upload annulleret",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kunne ikke omdøbe \"{oldName}\", da den findes ikke længere",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Navnet \"{newName}\" bruges allerede i mappen \"{dir}\". Vælg et andet navn.",
+ "Could not rename \"{oldName}\"" : "Kunne ikke omdøbe \"{oldName}\"",
"This operation is forbidden" : "Denne operation er forbudt",
"This directory is unavailable, please check the logs or contact the administrator" : "Denne mappe er utilgængelig, tjek venligst loggene eller kontakt administratoren",
"Storage is temporarily not available" : "Lagerplads er midlertidigt ikke tilgængeligt",
@@ -350,7 +356,6 @@
"Upload too large" : "Upload er for stor",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filerne, du prøver at uploade, er større end den maksimale størrelse for fil-upload på denne server.",
"File could not be found" : "Filen kunne ikke findes",
- "Download" : "Download",
"Show list view" : "Vis som liste",
"Show grid view" : "Vis som gitter",
"Close" : "Luk",
@@ -389,9 +394,6 @@
"Copied {origin} inside {destination}" : "Kopirede {origin} ind i {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "kopierede {origin} og {nbfiles} andre filer ind i {destination}",
"{newName} already exists" : "{newName} eksisterer allerede",
- "Could not rename \"{fileName}\", it does not exist any more" : "Kunne ikke omdøbe \"{fileName}\", den findes ikke længere",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Navnet \"{targetName}\" bruges allerede i mappen \"{dir}\". Vælg et andet navn.",
- "Could not rename \"{fileName}\"" : "Kunne ikke omdøbe \"{fileName}\"",
"Could not create file \"{file}\"" : "Kunne ikke oprette filen \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Kunne ikke oprette filen \"{file}\", da den allerede findes",
"Could not create folder \"{dir}\" because it already exists" : "Kunne ikke oprette mappen \"{dir}\", da den allerede findes",
@@ -424,35 +426,22 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Linket er kopieret (dette link kan kun anvendes af brugere med adgang til denne fil/mappe)",
"Path" : "Sti",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Gjort til foretrukken",
+ "Favored" : "Foretrukken",
+ "Favor" : "Foretræk",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopier direkte link (virker kun for brugere der har adgang til denne fil/mappe)",
"Upload file" : "Upload fil",
- "Not favorited" : "Ingen foretrukne",
+ "Not favored" : "Ikke foretrukket",
"An error occurred while trying to update the tags" : "Der opstod en fejl under forsøg på at opdatere mærkerne",
- "You don't have permission to upload or create files here." : "Du har ikke rettigheder til at uploade eller oprette filer her.",
- "Storage informations" : "Lagerinformationer",
- "Choose file" : "Vælg fil",
- "Go to the previous folder" : "Gå til forrige mappe",
- "Open the files app settings" : "Åbn fil-app indstillinger",
- "Unable to change the favourite state of the file" : "Kan ikke ændre favorittilstanden for filen",
- "Edit file locally" : "Rediger fil lokalt",
- "Edit online" : "Rediger online",
- "Create new templates folder" : "Opsæt ny skabelonmappe",
+ "Upload (max. %s)" : "Upload (max. %s)",
+ "Submitting fields…" : "Sender felter...",
+ "Filter filenames…" : "Filtrer filnavne...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappe","{folderCount} mapper"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil og {folderCount} mapper","1 fil og {folderCount} mapper"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fil og 1 mapper","{fileCount} filer og 1 mapper"],
"{fileCount} files and {folderCount} folders" : "{fileCount} filer og {folderCount} mapper",
- "List of favorites files and folders." : "Liste med foretrukne filer og mapper.",
"Personal Files" : "Personlige filer",
"Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekstfil.txt",
- "Favored" : "Foretrukken",
- "Favor" : "Foretræk",
- "Not favored" : "Ikke foretrukket",
- "Submitting fields…" : "Sender felter...",
- "Filter filenames…" : "Filtrer filnavne...",
- "{count} files could not be converted" : "{count} filer kunne ikke konverteres",
- "{count} files successfully converted" : "{count} filer konverteret"
+ "New text file.txt" : "Ny tekstfil.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index 78f6feeec1e..80d45307fee 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favorisierte Dateien",
"No favorites" : "Keine Favoriten",
"More favorites" : "Weitere Favoriten",
- "Upload (max. %s)" : "Hochladen (max. %s)",
"Accept" : "Akzeptieren",
"Reject" : "Ablehnen",
"Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Übertragen von %1$s auf %2$s",
"Files compatibility" : "Dateikompatibilität",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl „occ“.",
"Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.",
"File Management" : "Dateiverwaltung",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Ungültiger Dateiname.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" in \"{newName}\" umbenannt",
"Rename file" : "Datei umbenennen",
+ "Folder" : "Ordner",
+ "Unknown file type" : "Unbekannter Dateityp",
+ "{ext} image" : "{ext}-Bild",
+ "{ext} video" : "{ext}-Video",
+ "{ext} audio" : "{ext}-Audio",
+ "{ext} text" : "{ext}-Text",
"Pending" : "Ausstehend",
"Unknown date" : "Unbekanntes Datum",
"Clear filter" : "Filter zurücksetzen",
@@ -105,9 +112,10 @@ OC.L10N.register(
"Total rows summary" : "Zusammenfassung aller Zeilen",
"Toggle selection for all files and folders" : "Auswahl für alle Dateien und Ordner umschalten",
"Name" : "Name",
+ "File type" : "Dateityp",
"Size" : "Größe",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen",
- "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt",
"\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen",
"Actions" : "Aktionen",
"(selected)" : "(ausgewählt)",
@@ -116,10 +124,10 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste wird aus Performance-Gründen nicht vollständig angezeigt. Die Dateien werden angezeigt, wenn du durch die Liste navigierst.",
"File not found" : "Datei nicht gefunden",
- "{count} selected" : "{count} ausgewählt",
+ "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"],
"{usedQuotaByte} used" : "{usedQuotaByte} verwendet",
"{used} of {quota} used" : "{used} von {quota} verwendet",
- "{relative}% used" : "{relative}% verwendet",
+ "{relative}% used" : "{relative} % verwendet",
"Could not refresh storage stats" : "Die Speicherstatistik konnte nicht aktualisiert werden",
"Your storage is full, files can not be updated or synced anymore!" : "Der Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!",
"Storage information" : "Speicherinformation",
@@ -157,7 +165,7 @@ OC.L10N.register(
"Shared by link" : "Über einen Link geteilt",
"Shared" : "Geteilt",
"Switch to list view" : "Zur Listenansicht wechseln",
- "Switch to grid view" : "Zur Rasteransicht wechseln",
+ "Switch to grid view" : "Zur Kachelansicht wechseln",
"The file could not be found" : "Die Datei konnte nicht gefunden werden",
"Upload was cancelled by user" : "Das Hochladen wurde vom Benutzer abgebrochen.",
"Not enough free space" : "Nicht genügend freier Speicherplatz",
@@ -165,7 +173,7 @@ OC.L10N.register(
"Error during upload: {message}" : "Fehler beim Hochladen: {message}",
"Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}",
"Unknown error during upload" : "unbekannte Fehler während des Hochladens",
- "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt",
"Loading current folder" : "Lade aktuellen Ordner",
"Retry" : "Wiederholen",
"No files in here" : "Keine Dateien vorhanden",
@@ -183,14 +191,15 @@ OC.L10N.register(
"Sort favorites first" : "Favoriten zuerst sortieren",
"Sort folders before files" : "Ordner vor Dateien sortieren",
"Show hidden files" : "Versteckte Dateien anzeigen",
+ "Show file type column" : "Dateityp-Spalte anzeigen",
"Crop image previews" : "Bildvorschauen zuschneiden",
- "Enable the grid view" : "Rasteransicht aktivieren",
- "Enable folder tree" : "Baumstruktur für Ordner aktivieren",
+ "Enable the grid view" : "Kachelansicht aktivieren",
+ "Enable folder tree" : "Ordnerstruktur aktivieren",
"Additional settings" : "Zusätzliche Einstellungen",
"WebDAV" : "WebDAV",
- "WebDAV URL" : "WebDAV URL",
+ "WebDAV URL" : "WebDAV-URL",
"Copy to clipboard" : "In die Zwischenablage kopieren",
- "Use this address to access your Files via WebDAV" : "Diese Adresse benutzen, um über WebDAV auf deine Dateien zuzugreifen",
+ "Use this address to access your Files via WebDAV" : "Diese Adresse benutzen, um über WebDAV auf deine Dateien zuzugreifen.",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Wenn du 2FA aktiviert hast, musst du ein neues App-Passwort erstellen und verwenden, indem du hier klickst.",
"Warnings" : "Warnungen",
"Prevent warning dialogs from open or reenable them." : "Öffnen von Warndialogen verhindern oder diese erneut aktivieren.",
@@ -208,17 +217,18 @@ OC.L10N.register(
"Select or deselect a file" : "Auswählen oder Auswahl einer Datei aufheben",
"Select a range of files" : "Einen Bereich von Dateien auswählen",
"Navigation" : "Navigation",
- "Navigate to the parent folder" : "In den übergeordneten Ordner navigieren",
+ "Navigate to the parent folder" : "Zum übergeordneten Ordner navigieren",
"Navigate to the file above" : "Zur obigen Datei navigieren",
"Navigate to the file below" : "Zur unteren Datei navigieren",
- "Navigate to the file on the left (in grid mode)" : "Zur Datei links navigieren (In der Kachelansicht)",
- "Navigate to the file on the right (in grid mode)" : "Zur Datei rechts navigieren (In der Kachelansicht)",
+ "Navigate to the file on the left (in grid mode)" : "Zur Datei links navigieren (in der Kachelansicht)",
+ "Navigate to the file on the right (in grid mode)" : "Zur Datei rechts navigieren (in der Kachelansicht)",
"View" : "Ansehen",
"Toggle the grid view" : "Kachelansicht umschalten",
"Open the sidebar for a file" : "Seitenleiste für eine Datei öffnen",
"Show those shortcuts" : "Diese Tastaturkürzel anzeigen",
"You" : "Du",
"Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
+ "Unable to change the favorite state of the file" : "Der Favoriten-Status der Datei kann nicht geändert werden",
"Error while loading the file data" : "Fehler beim Laden der Datei-Daten",
"Owner" : "Besitzer",
"Remove from favorites" : "Aus Favoriten entfernen",
@@ -236,7 +246,7 @@ OC.L10N.register(
"All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden",
"One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien erfolgreich konvertiert"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"],
"Files successfully converted" : "Dateien konvertiert",
"Failed to convert files" : "Dateien konnten nicht konvertiert werden",
"Converting file …" : "Datei wird konvertiert …",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sie sind dabei, {count} Element zu löschen","Du bist dabei, {count} Elemente zu löschen."],
"Confirm deletion" : "Löschen bestätigen",
"Cancel" : "Abbrechen",
+ "Download" : "Herunterladen",
"Moving \"{source}\" to \"{destination}\" …" : "Verschiebe \"{source}\" nach \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopiere \"{source}\" nach \"{destination}\" …",
+ "Destination is not a folder" : "Ziel ist kein Ordner",
+ "This file/folder is already in that directory" : "Diese Datei oder Ordner ist bereits in diesem Verzeichnis vorhanden",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Eine Datei oder ein Ordner kann nicht auf sich selbst oder in einen Unterordner von sich selbst verschoben werden.",
"(copy)" : "(Kopie)",
"(copy %n)" : "(Kopie %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Verschieben oder Kopieren abgebrochen",
"Open folder {displayName}" : "Ordner {displayName} öffnen",
"Open in Files" : "In \"Dateien\" öffnen",
+ "Open locally" : "Lokal öffnen",
+ "Failed to redirect to client" : "Umleitung zum Client fehlgeschlagen",
"Open file locally" : "Datei lokal öffnen",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Die Datei sollte sich jetzt auf deinem Gerät öffnen. Wenn dies nicht der Fall ist, überprüfe, ob du die Desktop-App installiert hast.",
"Retry and close" : "Erneut versuchen und schließen",
"Open online" : "Online öffnen",
- "Failed to redirect to client" : "Umleitung zum Client fehlgeschlagen",
- "Open locally" : "Lokal öffnen",
"Rename" : "Umbenennen",
"Open details" : "Details öffnen",
"View in folder" : "In Ordner anzeigen",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "Dateien verschoben",
"Conflicts resolution skipped" : "Konfliktlösung übersprungen",
"Upload cancelled" : "Hochladen abgebrochen",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" konnte nicht umbenannt werden, da es nicht mehr existiert.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte wähle einen anderen Namen.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" konnte nicht umbenannt werden.",
"This operation is forbidden" : "Diese Operation ist nicht erlaubt",
"This directory is unavailable, please check the logs or contact the administrator" : "Dieses Verzeichnis ist nicht verfügbar, bitte die Logdateien überprüfen oder die Administration kontaktieren.",
"Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar",
@@ -353,9 +369,8 @@ OC.L10N.register(
"Upload too large" : "Der Upload ist zu groß",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.",
"File could not be found" : "Datei konnte nicht gefunden werden",
- "Download" : "Herunterladen",
"Show list view" : "Listenansicht anzeigen",
- "Show grid view" : "Rasteransicht anzeigen",
+ "Show grid view" : "Kachelansicht anzeigen",
"Close" : "Schließen",
"Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"",
"This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} wurde nach {destination} kopiert",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden nach {destination} kopiert",
"{newName} already exists" : "{newName} existiert bereits",
- "Could not rename \"{fileName}\", it does not exist any more" : "Die Datei \"{fileName}\" konnte nicht umbenannt werden, da sie nicht mehr existiert",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{targetName}\" wird bereits im Ordner \"{dir}\" benutzt. Bitte einen anderen Namen verwenden.",
- "Could not rename \"{fileName}\"" : "Die Datei konnte nicht umbenannt werden \"{fileName}\"",
"Could not create file \"{file}\"" : "Die Datei konnte nicht erstellt werden \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Die Datei \"{file}\" konnte nicht erstellt werden, da diese bereits existiert.",
"Could not create folder \"{dir}\" because it already exists" : "Der Ordner \"{dir}\" konnte nicht erstellt werden, da dieser bereits existiert",
@@ -409,7 +421,7 @@ OC.L10N.register(
"New" : "Neu",
"New file/folder menu" : "Menü für neue Datei/Ordner",
"Select file range" : "Dateibereich auswählen",
- "{used}%" : "{used}%",
+ "{used}%" : "{used} %",
"{used} used" : "{used} verwendet",
"\"{name}\" is an invalid file name." : "\"{name}\" ist kein gültiger Dateiname.",
"File name cannot be empty." : "Der Dateiname darf nicht leer sein.",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Direktlink wurde kopiert (funktioniert nur für Personen, die Zugriff auf diese Datei/Ordner haben)",
"Path" : "Pfad",
"_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"],
- "Favorited" : "Favorisiert",
+ "Favored" : "Favorisiert",
+ "Favor" : "Favorisieren",
"Copy direct link (only works for people who have access to this file/folder)" : "Direktlink kopieren (funktioniert nur für Personen, die Zugriff auf diese Datei/Ordner haben)",
"Upload file" : "Datei hochladen",
- "Not favorited" : "Nicht favorisiert",
+ "Not favored" : "Nicht favorisiert",
"An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Tags aufgetreten",
- "You don't have permission to upload or create files here." : "Keine Berechtigung, hier Dateien hochzuladen oder zu erstellen.",
- "Storage informations" : "Speicherinformationen",
- "Choose file" : "Datei auswählen",
- "Go to the previous folder" : "Zum vorherigen Ordner wechseln",
- "Open the files app settings" : "Einstellungen der Dateien-App öffnen",
- "Unable to change the favourite state of the file" : "Der Favorisiert-Status der Datei konnte nicht geändert werden",
- "Edit file locally" : "Datei lokal bearbeiten",
- "Edit online" : "Online bearbeiten",
- "Create new templates folder" : "Neuen Vorlagenordner erstellen",
+ "Upload (max. %s)" : "Hochladen (max. %s)",
+ "Submitting fields…" : "Felder werden übermittelt…",
+ "Filter filenames…" : "Dateinamen filtern…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} Ordner","{folderCount} Ordner"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} Datei","{fileCount} Dateien"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} Datei und 1 Ordner","{fileCount} Dateien und 1 Ordner"],
"{fileCount} files and {folderCount} folders" : "{fileCount} Dateien und {folderCount} Ordner",
- "List of favorites files and folders." : "Liste der favorisierten Ordner und Dateien",
"Personal Files" : "Persönliche Dateien",
"Text file" : "Textdatei",
"New text file.txt" : "Neue Textdatei file.txt",
- "Favored" : "Favorisiert",
- "Favor" : "Favorisieren",
- "Not favored" : "Nicht favorisiert",
- "Submitting fields…" : "Felder werden übermittelt…",
- "Filter filenames…" : "Dateinamen filtern…",
- "{count} files could not be converted" : "{count} Dateien konnten nicht konvertiert werden",
- "{count} files successfully converted" : "{count} Dateien konvertiert"
+ "%1$s (renamed)" : "%1$s (umbenannt)",
+ "renamed file" : "Umbenannte Datei",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index 8715721ef1c..571b3a02f62 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favorisierte Dateien",
"No favorites" : "Keine Favoriten",
"More favorites" : "Weitere Favoriten",
- "Upload (max. %s)" : "Hochladen (max. %s)",
"Accept" : "Akzeptieren",
"Reject" : "Ablehnen",
"Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Übertragen von %1$s auf %2$s",
"Files compatibility" : "Dateikompatibilität",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl „occ“.",
"Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.",
"File Management" : "Dateiverwaltung",
@@ -93,6 +94,12 @@
"Invalid filename." : "Ungültiger Dateiname.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" in \"{newName}\" umbenannt",
"Rename file" : "Datei umbenennen",
+ "Folder" : "Ordner",
+ "Unknown file type" : "Unbekannter Dateityp",
+ "{ext} image" : "{ext}-Bild",
+ "{ext} video" : "{ext}-Video",
+ "{ext} audio" : "{ext}-Audio",
+ "{ext} text" : "{ext}-Text",
"Pending" : "Ausstehend",
"Unknown date" : "Unbekanntes Datum",
"Clear filter" : "Filter zurücksetzen",
@@ -103,9 +110,10 @@
"Total rows summary" : "Zusammenfassung aller Zeilen",
"Toggle selection for all files and folders" : "Auswahl für alle Dateien und Ordner umschalten",
"Name" : "Name",
+ "File type" : "Dateityp",
"Size" : "Größe",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen",
- "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt",
"\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen",
"Actions" : "Aktionen",
"(selected)" : "(ausgewählt)",
@@ -114,10 +122,10 @@
"Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste wird aus Performance-Gründen nicht vollständig angezeigt. Die Dateien werden angezeigt, wenn du durch die Liste navigierst.",
"File not found" : "Datei nicht gefunden",
- "{count} selected" : "{count} ausgewählt",
+ "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"],
"{usedQuotaByte} used" : "{usedQuotaByte} verwendet",
"{used} of {quota} used" : "{used} von {quota} verwendet",
- "{relative}% used" : "{relative}% verwendet",
+ "{relative}% used" : "{relative} % verwendet",
"Could not refresh storage stats" : "Die Speicherstatistik konnte nicht aktualisiert werden",
"Your storage is full, files can not be updated or synced anymore!" : "Der Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!",
"Storage information" : "Speicherinformation",
@@ -155,7 +163,7 @@
"Shared by link" : "Über einen Link geteilt",
"Shared" : "Geteilt",
"Switch to list view" : "Zur Listenansicht wechseln",
- "Switch to grid view" : "Zur Rasteransicht wechseln",
+ "Switch to grid view" : "Zur Kachelansicht wechseln",
"The file could not be found" : "Die Datei konnte nicht gefunden werden",
"Upload was cancelled by user" : "Das Hochladen wurde vom Benutzer abgebrochen.",
"Not enough free space" : "Nicht genügend freier Speicherplatz",
@@ -163,7 +171,7 @@
"Error during upload: {message}" : "Fehler beim Hochladen: {message}",
"Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}",
"Unknown error during upload" : "unbekannte Fehler während des Hochladens",
- "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt",
"Loading current folder" : "Lade aktuellen Ordner",
"Retry" : "Wiederholen",
"No files in here" : "Keine Dateien vorhanden",
@@ -181,14 +189,15 @@
"Sort favorites first" : "Favoriten zuerst sortieren",
"Sort folders before files" : "Ordner vor Dateien sortieren",
"Show hidden files" : "Versteckte Dateien anzeigen",
+ "Show file type column" : "Dateityp-Spalte anzeigen",
"Crop image previews" : "Bildvorschauen zuschneiden",
- "Enable the grid view" : "Rasteransicht aktivieren",
- "Enable folder tree" : "Baumstruktur für Ordner aktivieren",
+ "Enable the grid view" : "Kachelansicht aktivieren",
+ "Enable folder tree" : "Ordnerstruktur aktivieren",
"Additional settings" : "Zusätzliche Einstellungen",
"WebDAV" : "WebDAV",
- "WebDAV URL" : "WebDAV URL",
+ "WebDAV URL" : "WebDAV-URL",
"Copy to clipboard" : "In die Zwischenablage kopieren",
- "Use this address to access your Files via WebDAV" : "Diese Adresse benutzen, um über WebDAV auf deine Dateien zuzugreifen",
+ "Use this address to access your Files via WebDAV" : "Diese Adresse benutzen, um über WebDAV auf deine Dateien zuzugreifen.",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Wenn du 2FA aktiviert hast, musst du ein neues App-Passwort erstellen und verwenden, indem du hier klickst.",
"Warnings" : "Warnungen",
"Prevent warning dialogs from open or reenable them." : "Öffnen von Warndialogen verhindern oder diese erneut aktivieren.",
@@ -206,17 +215,18 @@
"Select or deselect a file" : "Auswählen oder Auswahl einer Datei aufheben",
"Select a range of files" : "Einen Bereich von Dateien auswählen",
"Navigation" : "Navigation",
- "Navigate to the parent folder" : "In den übergeordneten Ordner navigieren",
+ "Navigate to the parent folder" : "Zum übergeordneten Ordner navigieren",
"Navigate to the file above" : "Zur obigen Datei navigieren",
"Navigate to the file below" : "Zur unteren Datei navigieren",
- "Navigate to the file on the left (in grid mode)" : "Zur Datei links navigieren (In der Kachelansicht)",
- "Navigate to the file on the right (in grid mode)" : "Zur Datei rechts navigieren (In der Kachelansicht)",
+ "Navigate to the file on the left (in grid mode)" : "Zur Datei links navigieren (in der Kachelansicht)",
+ "Navigate to the file on the right (in grid mode)" : "Zur Datei rechts navigieren (in der Kachelansicht)",
"View" : "Ansehen",
"Toggle the grid view" : "Kachelansicht umschalten",
"Open the sidebar for a file" : "Seitenleiste für eine Datei öffnen",
"Show those shortcuts" : "Diese Tastaturkürzel anzeigen",
"You" : "Du",
"Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
+ "Unable to change the favorite state of the file" : "Der Favoriten-Status der Datei kann nicht geändert werden",
"Error while loading the file data" : "Fehler beim Laden der Datei-Daten",
"Owner" : "Besitzer",
"Remove from favorites" : "Aus Favoriten entfernen",
@@ -234,7 +244,7 @@
"All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden",
"One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien erfolgreich konvertiert"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"],
"Files successfully converted" : "Dateien konvertiert",
"Failed to convert files" : "Dateien konnten nicht konvertiert werden",
"Converting file …" : "Datei wird konvertiert …",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sie sind dabei, {count} Element zu löschen","Du bist dabei, {count} Elemente zu löschen."],
"Confirm deletion" : "Löschen bestätigen",
"Cancel" : "Abbrechen",
+ "Download" : "Herunterladen",
"Moving \"{source}\" to \"{destination}\" …" : "Verschiebe \"{source}\" nach \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopiere \"{source}\" nach \"{destination}\" …",
+ "Destination is not a folder" : "Ziel ist kein Ordner",
+ "This file/folder is already in that directory" : "Diese Datei oder Ordner ist bereits in diesem Verzeichnis vorhanden",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Eine Datei oder ein Ordner kann nicht auf sich selbst oder in einen Unterordner von sich selbst verschoben werden.",
"(copy)" : "(Kopie)",
"(copy %n)" : "(Kopie %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Verschieben oder Kopieren abgebrochen",
"Open folder {displayName}" : "Ordner {displayName} öffnen",
"Open in Files" : "In \"Dateien\" öffnen",
+ "Open locally" : "Lokal öffnen",
+ "Failed to redirect to client" : "Umleitung zum Client fehlgeschlagen",
"Open file locally" : "Datei lokal öffnen",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Die Datei sollte sich jetzt auf deinem Gerät öffnen. Wenn dies nicht der Fall ist, überprüfe, ob du die Desktop-App installiert hast.",
"Retry and close" : "Erneut versuchen und schließen",
"Open online" : "Online öffnen",
- "Failed to redirect to client" : "Umleitung zum Client fehlgeschlagen",
- "Open locally" : "Lokal öffnen",
"Rename" : "Umbenennen",
"Open details" : "Details öffnen",
"View in folder" : "In Ordner anzeigen",
@@ -320,6 +333,9 @@
"Files moved successfully" : "Dateien verschoben",
"Conflicts resolution skipped" : "Konfliktlösung übersprungen",
"Upload cancelled" : "Hochladen abgebrochen",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" konnte nicht umbenannt werden, da es nicht mehr existiert.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte wähle einen anderen Namen.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" konnte nicht umbenannt werden.",
"This operation is forbidden" : "Diese Operation ist nicht erlaubt",
"This directory is unavailable, please check the logs or contact the administrator" : "Dieses Verzeichnis ist nicht verfügbar, bitte die Logdateien überprüfen oder die Administration kontaktieren.",
"Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar",
@@ -351,9 +367,8 @@
"Upload too large" : "Der Upload ist zu groß",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.",
"File could not be found" : "Datei konnte nicht gefunden werden",
- "Download" : "Herunterladen",
"Show list view" : "Listenansicht anzeigen",
- "Show grid view" : "Rasteransicht anzeigen",
+ "Show grid view" : "Kachelansicht anzeigen",
"Close" : "Schließen",
"Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"",
"This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "{origin} wurde nach {destination} kopiert",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden nach {destination} kopiert",
"{newName} already exists" : "{newName} existiert bereits",
- "Could not rename \"{fileName}\", it does not exist any more" : "Die Datei \"{fileName}\" konnte nicht umbenannt werden, da sie nicht mehr existiert",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{targetName}\" wird bereits im Ordner \"{dir}\" benutzt. Bitte einen anderen Namen verwenden.",
- "Could not rename \"{fileName}\"" : "Die Datei konnte nicht umbenannt werden \"{fileName}\"",
"Could not create file \"{file}\"" : "Die Datei konnte nicht erstellt werden \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Die Datei \"{file}\" konnte nicht erstellt werden, da diese bereits existiert.",
"Could not create folder \"{dir}\" because it already exists" : "Der Ordner \"{dir}\" konnte nicht erstellt werden, da dieser bereits existiert",
@@ -407,7 +419,7 @@
"New" : "Neu",
"New file/folder menu" : "Menü für neue Datei/Ordner",
"Select file range" : "Dateibereich auswählen",
- "{used}%" : "{used}%",
+ "{used}%" : "{used} %",
"{used} used" : "{used} verwendet",
"\"{name}\" is an invalid file name." : "\"{name}\" ist kein gültiger Dateiname.",
"File name cannot be empty." : "Der Dateiname darf nicht leer sein.",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Direktlink wurde kopiert (funktioniert nur für Personen, die Zugriff auf diese Datei/Ordner haben)",
"Path" : "Pfad",
"_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"],
- "Favorited" : "Favorisiert",
+ "Favored" : "Favorisiert",
+ "Favor" : "Favorisieren",
"Copy direct link (only works for people who have access to this file/folder)" : "Direktlink kopieren (funktioniert nur für Personen, die Zugriff auf diese Datei/Ordner haben)",
"Upload file" : "Datei hochladen",
- "Not favorited" : "Nicht favorisiert",
+ "Not favored" : "Nicht favorisiert",
"An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Tags aufgetreten",
- "You don't have permission to upload or create files here." : "Keine Berechtigung, hier Dateien hochzuladen oder zu erstellen.",
- "Storage informations" : "Speicherinformationen",
- "Choose file" : "Datei auswählen",
- "Go to the previous folder" : "Zum vorherigen Ordner wechseln",
- "Open the files app settings" : "Einstellungen der Dateien-App öffnen",
- "Unable to change the favourite state of the file" : "Der Favorisiert-Status der Datei konnte nicht geändert werden",
- "Edit file locally" : "Datei lokal bearbeiten",
- "Edit online" : "Online bearbeiten",
- "Create new templates folder" : "Neuen Vorlagenordner erstellen",
+ "Upload (max. %s)" : "Hochladen (max. %s)",
+ "Submitting fields…" : "Felder werden übermittelt…",
+ "Filter filenames…" : "Dateinamen filtern…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} Ordner","{folderCount} Ordner"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} Datei","{fileCount} Dateien"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} Datei und 1 Ordner","{fileCount} Dateien und 1 Ordner"],
"{fileCount} files and {folderCount} folders" : "{fileCount} Dateien und {folderCount} Ordner",
- "List of favorites files and folders." : "Liste der favorisierten Ordner und Dateien",
"Personal Files" : "Persönliche Dateien",
"Text file" : "Textdatei",
"New text file.txt" : "Neue Textdatei file.txt",
- "Favored" : "Favorisiert",
- "Favor" : "Favorisieren",
- "Not favored" : "Nicht favorisiert",
- "Submitting fields…" : "Felder werden übermittelt…",
- "Filter filenames…" : "Dateinamen filtern…",
- "{count} files could not be converted" : "{count} Dateien konnten nicht konvertiert werden",
- "{count} files successfully converted" : "{count} Dateien konvertiert"
+ "%1$s (renamed)" : "%1$s (umbenannt)",
+ "renamed file" : "Umbenannte Datei",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index d5e44fa78cc..2528fa26903 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favorisierte Dateien",
"No favorites" : "Keine Favoriten",
"More favorites" : "Weitere Favoriten",
- "Upload (max. %s)" : "Hochladen (max. %s)",
"Accept" : "Akzeptieren",
"Reject" : "Ablehnen",
"Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Übertragen von %1$s an %2$s",
"Files compatibility" : "Dateikompatibilität",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl \"occ“.",
"Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.",
"File Management" : "Dateiverwaltung",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Ungültiger Dateiname.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" in \"{newName}\" umbenannt",
"Rename file" : "Datei umbenennen",
+ "Folder" : "Ordner",
+ "Unknown file type" : "Unbekannter Dateityp",
+ "{ext} image" : "{ext}-Bild",
+ "{ext} video" : "{ext}-Video",
+ "{ext} audio" : "{ext}-Audio",
+ "{ext} text" : "{ext}-Text",
"Pending" : "Ausstehend",
"Unknown date" : "Unbekanntes Datum",
"Clear filter" : "Filter zurücksetzen",
@@ -105,9 +112,10 @@ OC.L10N.register(
"Total rows summary" : "Zusammenfassung aller Zeilen",
"Toggle selection for all files and folders" : "Auswahl für alle Dateien und Ordner umschalten",
"Name" : "Name",
+ "File type" : "Dateityp",
"Size" : "Größe",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen",
- "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt",
"\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen",
"Actions" : "Aktionen",
"(selected)" : "(ausgewählt)",
@@ -116,10 +124,10 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste ist aus Performance-Gründen nicht vollständig gerendert. Die Dateien werden gerendert, wenn Sie durch die Liste navigieren.",
"File not found" : "Datei nicht gefunden",
- "{count} selected" : "{count} ausgewählt",
+ "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"],
"{usedQuotaByte} used" : "{usedQuotaByte} verwendet",
"{used} of {quota} used" : "{used} von {quota} verwendet",
- "{relative}% used" : "{relative}% verwendet",
+ "{relative}% used" : "{relative} % verwendet",
"Could not refresh storage stats" : "Die Speicherstatistik konnte nicht aktualisiert werden",
"Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!",
"Storage information" : "Speicherinformation",
@@ -165,7 +173,7 @@ OC.L10N.register(
"Error during upload: {message}" : "Fehler beim Hochladen: {message}",
"Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}",
"Unknown error during upload" : "Unbekannter Fehler beim Hochladen",
- "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt",
"Loading current folder" : "Lade aktuellen Ordner",
"Retry" : "Wiederholen",
"No files in here" : "Keine Dateien vorhanden",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Favoriten zuerst sortieren",
"Sort folders before files" : "Ordner vor Dateien sortieren",
"Show hidden files" : "Versteckte Dateien anzeigen",
+ "Show file type column" : "Dateityp-Spalte anzeigen",
"Crop image previews" : "Bildvorschauen zuschneiden",
"Enable the grid view" : "Kachelansicht aktivieren",
"Enable folder tree" : "Ordnerstruktur aktivieren",
@@ -190,14 +199,14 @@ OC.L10N.register(
"WebDAV" : "WebDAV",
"WebDAV URL" : "WebDAV-URL",
"Copy to clipboard" : "In die Zwischenablage kopieren",
- "Use this address to access your Files via WebDAV" : "Benutzen Sie diese Adresse, um via WebDAV auf Ihre Dateien zuzugreifen",
+ "Use this address to access your Files via WebDAV" : "Benutzen Sie diese Adresse, um via WebDAV auf Ihre Dateien zuzugreifen.",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Wenn Sie 2FA aktiviert haben, müssen Sie ein neues App-Passwort erstellen und verwenden, indem Sie hier klicken.",
"Warnings" : "Warnungen",
"Prevent warning dialogs from open or reenable them." : "Öffnen von Warndialogen verhindern oder diese erneut aktivieren.",
"Show a warning dialog when changing a file extension." : "Beim Ändern einer Dateierweiterung einen Warndialog anzeigen.",
"Keyboard shortcuts" : "Tastaturkürzel",
"Speed up your Files experience with these quick shortcuts." : "Arbeiten Sie schneller mit Dateien mit diesen Schnellzugriffen.",
- "Open the actions menu for a file" : "Öffnen Sie das Aktionsmenü für eine Datei",
+ "Open the actions menu for a file" : "Aktionsmenü für eine Datei öffnen",
"Rename a file" : "Eine Datei umbenennen",
"Delete a file" : "Eine Datei löschen",
"Favorite or remove a file from favorites" : "Datei favorisieren oder aus den Favoriten entfernen",
@@ -208,17 +217,18 @@ OC.L10N.register(
"Select or deselect a file" : "Auswählen oder Auswahl einer Datei aufheben",
"Select a range of files" : "Einen Bereich von Dateien auswählen",
"Navigation" : "Navigation",
- "Navigate to the parent folder" : "In den übergeordneten Ordner navigieren",
+ "Navigate to the parent folder" : "Zum übergeordneten Ordner navigieren",
"Navigate to the file above" : "Zur obigen Datei navigieren",
"Navigate to the file below" : "Zur unteren Datei navigieren",
- "Navigate to the file on the left (in grid mode)" : "Zur Datei links navigieren (In der Kachelansicht)",
- "Navigate to the file on the right (in grid mode)" : "Zur Datei rechts navigieren (In der Kachelansicht)",
+ "Navigate to the file on the left (in grid mode)" : "Zur Datei links navigieren (in der Kachelansicht)",
+ "Navigate to the file on the right (in grid mode)" : "Zur Datei rechts navigieren (in der Kachelansicht)",
"View" : "Ansicht",
"Toggle the grid view" : "Kachelansicht umschalten",
"Open the sidebar for a file" : "Seitenleiste für eine Datei öffnen",
"Show those shortcuts" : "Diese Tastaturkürzel anzeigen",
"You" : "Sie",
"Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
+ "Unable to change the favorite state of the file" : "Der Favoriten-Status der Datei kann nicht geändert werden",
"Error while loading the file data" : "Fehler beim Laden der Datei-Daten",
"Owner" : "Besitzer",
"Remove from favorites" : "Von Favoriten entfernen",
@@ -236,7 +246,7 @@ OC.L10N.register(
"All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden",
"One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien konvertiert"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"],
"Files successfully converted" : "Dateien konvertiert",
"Failed to convert files" : "Dateien konnten nicht konvertiert werden",
"Converting file …" : "Datei wird konvertiert …",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sie sind dabei, {count} Element zu löschen","Sie sind dabei, {count} Elemente zu löschen"],
"Confirm deletion" : "Löschen bestätigen",
"Cancel" : "Abbrechen",
+ "Download" : "Herunterladen",
"Moving \"{source}\" to \"{destination}\" …" : "Verschiebe \"{source}\" nach \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopiere \"{source}\" nach \"{destination}\" …",
+ "Destination is not a folder" : "Ziel ist kein Ordner",
+ "This file/folder is already in that directory" : "Diese Datei oder Ordner ist bereits in diesem Verzeichnis vorhanden",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Eine Datei oder ein Ordner kann nicht auf sich selbst oder in einen Unterordner von sich selbst verschoben werden",
"(copy)" : "(Kopie)",
"(copy %n)" : "(Kopie %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Verschieben oder kopieren abgebrochen",
"Open folder {displayName}" : "Ordner {displayName} öffnen",
"Open in Files" : "In Dateien öffnen",
+ "Open locally" : "Lokal öffnen",
+ "Failed to redirect to client" : "Umleitung zum Client fehlgeschlagen",
"Open file locally" : "Datei lokal öffnen",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Die Datei sollte sich jetzt auf Ihrem Gerät öffnen. Wenn dies nicht der Fall ist, überprüfen Sie, ob Sie die Desktop-App installiert haben.",
"Retry and close" : "Erneut versuchen und schließen",
"Open online" : "Online öffnen",
- "Failed to redirect to client" : "Umleitung zum Client fehlgeschlagen",
- "Open locally" : "Lokal öffnen",
"Rename" : "Umbenennen",
"Open details" : "Details öffnen",
"View in folder" : "In Ordner anzeigen",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "Dateien verschoben",
"Conflicts resolution skipped" : "Konfliktelösung übersprungen",
"Upload cancelled" : "Hochladen abgebrochen",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" konnte nicht umbenannt werden, da es nicht mehr existiert",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte einen anderen Namen wählen.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" konnte nicht umbenannt werden",
"This operation is forbidden" : "Diese Operation ist nicht erlaubt",
"This directory is unavailable, please check the logs or contact the administrator" : "Dieses Verzeichnis ist nicht verfügbar, bitte überprüfen Sie die Protokolldateien oder kontaktieren Sie die Administration",
"Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Der Upload ist zu groß",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.",
"File could not be found" : "Datei konnte nicht gefunden werden",
- "Download" : "Herunterladen",
"Show list view" : "Listenansicht anzeigen",
"Show grid view" : "Kachelansicht anzeigen",
"Close" : "Schließen",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} wurde nach {destination} kopiert",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden nach {destination} kopiert",
"{newName} already exists" : "{newName} existiert bereits",
- "Could not rename \"{fileName}\", it does not exist any more" : "Die Datei \"{fileName}\" konnte nicht umbenannt werden, da sie nicht mehr existiert",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{targetName}\" wird bereits im Ordner \"{dir}\" benutzt. Bitte wählen Sie einen anderen Namen.",
- "Could not rename \"{fileName}\"" : "Die Datei konnte nicht umbenannt werden \"{fileName}\"",
"Could not create file \"{file}\"" : "Die Datei konnte nicht erstellt werden \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Die Datei \"{file}\" konnte nicht erstellt werden, da diese bereits existiert",
"Could not create folder \"{dir}\" because it already exists" : "Der Ordner \"{dir}\" konnte nicht erstellt werden, da dieser bereits existiert",
@@ -409,7 +421,7 @@ OC.L10N.register(
"New" : "Neu",
"New file/folder menu" : "Menü für neue Datei/Ordner",
"Select file range" : "Dateibereich auswählen",
- "{used}%" : "{used}%",
+ "{used}%" : "{used} %",
"{used} used" : "{used} verwendet",
"\"{name}\" is an invalid file name." : "\"{name}\" ist kein gültiger Dateiname.",
"File name cannot be empty." : "Der Dateiname darf nicht leer sein.",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Direktlink wurde kopiert (funktioniert nur für Personen, die Zugriff auf diese Datei/Ordner haben)",
"Path" : "Pfad",
"_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"],
- "Favorited" : "Favorisiert",
+ "Favored" : "Favorisiert",
+ "Favor" : "Favorisieren",
"Copy direct link (only works for people who have access to this file/folder)" : "Direkten Link kopieren (funktioniert nur für Personen, die Zugriff auf diese Datei bzw. den Ordner haben)",
"Upload file" : "Datei hochladen",
- "Not favorited" : "Nicht favorisiert",
+ "Not favored" : "Nicht favorisiert",
"An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Schlagworte aufgetreten",
- "You don't have permission to upload or create files here." : "Keine Berechtigung, hier Dateien hochzuladen oder zu erstellen.",
- "Storage informations" : "Speicherinformationen",
- "Choose file" : "Datei auswählen",
- "Go to the previous folder" : "Zum vorherigen Ordner wechseln",
- "Open the files app settings" : "Einstellungen der Dateien-App öffnen",
- "Unable to change the favourite state of the file" : "Der favorisierte Status der Datei kann nicht geändert werden",
- "Edit file locally" : "Datei lokal bearbeiten",
- "Edit online" : "Online bearbeiten",
- "Create new templates folder" : "Neuen Vorlagenordner erstellen",
+ "Upload (max. %s)" : "Hochladen (max. %s)",
+ "Submitting fields…" : "Felder werden übermittelt…",
+ "Filter filenames…" : "Dateinamen filtern…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} Ordner","{folderCount} Ordner"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} Datei","{fileCount} Dateien"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} Datei und 1 Ordner","{fileCount} Dateien und 1 Ordner"],
"{fileCount} files and {folderCount} folders" : "{fileCount} Dateien und {folderCount} Ordner",
- "List of favorites files and folders." : "Liste der favorisierten Ordner und Dateien.",
"Personal Files" : "Persönliche Dateien",
"Text file" : "Textdatei",
"New text file.txt" : "Neue Textdatei file.txt",
- "Favored" : "Favorisiert",
- "Favor" : "Favorisieren",
- "Not favored" : "Nicht favorisiert",
- "Submitting fields…" : "Felder werden übermittelt…",
- "Filter filenames…" : "Dateinamen filtern…",
- "{count} files could not be converted" : "{count} Dateien konnten nicht konvertiert werden",
- "{count} files successfully converted" : "{count} Dateien konvertiert"
+ "%1$s (renamed)" : "%1$s (umbenannt)",
+ "renamed file" : "Umbenannte Datei",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index 823c70fcb47..2a661823839 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favorisierte Dateien",
"No favorites" : "Keine Favoriten",
"More favorites" : "Weitere Favoriten",
- "Upload (max. %s)" : "Hochladen (max. %s)",
"Accept" : "Akzeptieren",
"Reject" : "Ablehnen",
"Incoming ownership transfer from {user}" : "Eingehende Besitzübertragung von {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Übertragen von %1$s an %2$s",
"Files compatibility" : "Dateikompatibilität",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ermöglicht die Einschränkung von Dateinamen, um sicherzustellen, dass Dateien mit allen Clients synchronisiert werden können. Standardmäßig sind alle unter POSIX (z. B. Linux oder macOS) gültigen Dateinamen zulässig.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Nach dem Aktivieren dieser Einstellung ist es auch möglich, Dateien automatisch zu migrieren. Weitere Informationen finden sich in der Dokumentation zum Befehl \"occ“.",
"Enforce Windows compatibility" : "Windows-Kompatibilität erzwingen",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dadurch werden Dateinamen blockiert, die auf Windows-Systemen unzulässig sind, z. B. reservierte Namen oder Sonderzeichen. Die Kompatibilität der Groß-/Kleinschreibung wird dadurch jedoch nicht erzwungen.",
"File Management" : "Dateiverwaltung",
@@ -93,6 +94,12 @@
"Invalid filename." : "Ungültiger Dateiname.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" in \"{newName}\" umbenannt",
"Rename file" : "Datei umbenennen",
+ "Folder" : "Ordner",
+ "Unknown file type" : "Unbekannter Dateityp",
+ "{ext} image" : "{ext}-Bild",
+ "{ext} video" : "{ext}-Video",
+ "{ext} audio" : "{ext}-Audio",
+ "{ext} text" : "{ext}-Text",
"Pending" : "Ausstehend",
"Unknown date" : "Unbekanntes Datum",
"Clear filter" : "Filter zurücksetzen",
@@ -103,9 +110,10 @@
"Total rows summary" : "Zusammenfassung aller Zeilen",
"Toggle selection for all files and folders" : "Auswahl für alle Dateien und Ordner umschalten",
"Name" : "Name",
+ "File type" : "Dateityp",
"Size" : "Größe",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" ist bei einigen Elementen fehlgeschlagen",
- "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" batch action executed successfully" : "Stapelaktion \"{displayName}\" ausgeführt",
"\"{displayName}\" action failed" : "Aktion \"{displayName}\" fehlgeschlagen",
"Actions" : "Aktionen",
"(selected)" : "(ausgewählt)",
@@ -114,10 +122,10 @@
"Column headers with buttons are sortable." : "Spaltenüberschriften mit Schaltflächen sind sortierbar.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste ist aus Performance-Gründen nicht vollständig gerendert. Die Dateien werden gerendert, wenn Sie durch die Liste navigieren.",
"File not found" : "Datei nicht gefunden",
- "{count} selected" : "{count} ausgewählt",
+ "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"],
"{usedQuotaByte} used" : "{usedQuotaByte} verwendet",
"{used} of {quota} used" : "{used} von {quota} verwendet",
- "{relative}% used" : "{relative}% verwendet",
+ "{relative}% used" : "{relative} % verwendet",
"Could not refresh storage stats" : "Die Speicherstatistik konnte nicht aktualisiert werden",
"Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!",
"Storage information" : "Speicherinformation",
@@ -163,7 +171,7 @@
"Error during upload: {message}" : "Fehler beim Hochladen: {message}",
"Error during upload, status code {status}" : "Fehler beim Hochladen, Statuscode {status}",
"Unknown error during upload" : "Unbekannter Fehler beim Hochladen",
- "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" erfolgreich ausgeführt",
+ "\"{displayName}\" action executed successfully" : "Aktion \"{displayName}\" ausgeführt",
"Loading current folder" : "Lade aktuellen Ordner",
"Retry" : "Wiederholen",
"No files in here" : "Keine Dateien vorhanden",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Favoriten zuerst sortieren",
"Sort folders before files" : "Ordner vor Dateien sortieren",
"Show hidden files" : "Versteckte Dateien anzeigen",
+ "Show file type column" : "Dateityp-Spalte anzeigen",
"Crop image previews" : "Bildvorschauen zuschneiden",
"Enable the grid view" : "Kachelansicht aktivieren",
"Enable folder tree" : "Ordnerstruktur aktivieren",
@@ -188,14 +197,14 @@
"WebDAV" : "WebDAV",
"WebDAV URL" : "WebDAV-URL",
"Copy to clipboard" : "In die Zwischenablage kopieren",
- "Use this address to access your Files via WebDAV" : "Benutzen Sie diese Adresse, um via WebDAV auf Ihre Dateien zuzugreifen",
+ "Use this address to access your Files via WebDAV" : "Benutzen Sie diese Adresse, um via WebDAV auf Ihre Dateien zuzugreifen.",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Wenn Sie 2FA aktiviert haben, müssen Sie ein neues App-Passwort erstellen und verwenden, indem Sie hier klicken.",
"Warnings" : "Warnungen",
"Prevent warning dialogs from open or reenable them." : "Öffnen von Warndialogen verhindern oder diese erneut aktivieren.",
"Show a warning dialog when changing a file extension." : "Beim Ändern einer Dateierweiterung einen Warndialog anzeigen.",
"Keyboard shortcuts" : "Tastaturkürzel",
"Speed up your Files experience with these quick shortcuts." : "Arbeiten Sie schneller mit Dateien mit diesen Schnellzugriffen.",
- "Open the actions menu for a file" : "Öffnen Sie das Aktionsmenü für eine Datei",
+ "Open the actions menu for a file" : "Aktionsmenü für eine Datei öffnen",
"Rename a file" : "Eine Datei umbenennen",
"Delete a file" : "Eine Datei löschen",
"Favorite or remove a file from favorites" : "Datei favorisieren oder aus den Favoriten entfernen",
@@ -206,17 +215,18 @@
"Select or deselect a file" : "Auswählen oder Auswahl einer Datei aufheben",
"Select a range of files" : "Einen Bereich von Dateien auswählen",
"Navigation" : "Navigation",
- "Navigate to the parent folder" : "In den übergeordneten Ordner navigieren",
+ "Navigate to the parent folder" : "Zum übergeordneten Ordner navigieren",
"Navigate to the file above" : "Zur obigen Datei navigieren",
"Navigate to the file below" : "Zur unteren Datei navigieren",
- "Navigate to the file on the left (in grid mode)" : "Zur Datei links navigieren (In der Kachelansicht)",
- "Navigate to the file on the right (in grid mode)" : "Zur Datei rechts navigieren (In der Kachelansicht)",
+ "Navigate to the file on the left (in grid mode)" : "Zur Datei links navigieren (in der Kachelansicht)",
+ "Navigate to the file on the right (in grid mode)" : "Zur Datei rechts navigieren (in der Kachelansicht)",
"View" : "Ansicht",
"Toggle the grid view" : "Kachelansicht umschalten",
"Open the sidebar for a file" : "Seitenleiste für eine Datei öffnen",
"Show those shortcuts" : "Diese Tastaturkürzel anzeigen",
"You" : "Sie",
"Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt",
+ "Unable to change the favorite state of the file" : "Der Favoriten-Status der Datei kann nicht geändert werden",
"Error while loading the file data" : "Fehler beim Laden der Datei-Daten",
"Owner" : "Besitzer",
"Remove from favorites" : "Von Favoriten entfernen",
@@ -234,7 +244,7 @@
"All files failed to be converted" : "Alle Dateien konnten nicht konvertiert werden",
"One file could not be converted: {message}" : "Eine Datei konnte nicht konvertiert werden: {message}",
"_One file could not be converted_::_%n files could not be converted_" : ["Eine Datei konnte nicht konvertiert werden","%n Dateien konnten nicht konvertiert werden"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei erfolgreich konvertiert","%n Dateien konvertiert"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Eine Datei konvertiert","%n Dateien konvertiert"],
"Files successfully converted" : "Dateien konvertiert",
"Failed to convert files" : "Dateien konnten nicht konvertiert werden",
"Converting file …" : "Datei wird konvertiert …",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sie sind dabei, {count} Element zu löschen","Sie sind dabei, {count} Elemente zu löschen"],
"Confirm deletion" : "Löschen bestätigen",
"Cancel" : "Abbrechen",
+ "Download" : "Herunterladen",
"Moving \"{source}\" to \"{destination}\" …" : "Verschiebe \"{source}\" nach \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopiere \"{source}\" nach \"{destination}\" …",
+ "Destination is not a folder" : "Ziel ist kein Ordner",
+ "This file/folder is already in that directory" : "Diese Datei oder Ordner ist bereits in diesem Verzeichnis vorhanden",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Eine Datei oder ein Ordner kann nicht auf sich selbst oder in einen Unterordner von sich selbst verschoben werden",
"(copy)" : "(Kopie)",
"(copy %n)" : "(Kopie %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Verschieben oder kopieren abgebrochen",
"Open folder {displayName}" : "Ordner {displayName} öffnen",
"Open in Files" : "In Dateien öffnen",
+ "Open locally" : "Lokal öffnen",
+ "Failed to redirect to client" : "Umleitung zum Client fehlgeschlagen",
"Open file locally" : "Datei lokal öffnen",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Die Datei sollte sich jetzt auf Ihrem Gerät öffnen. Wenn dies nicht der Fall ist, überprüfen Sie, ob Sie die Desktop-App installiert haben.",
"Retry and close" : "Erneut versuchen und schließen",
"Open online" : "Online öffnen",
- "Failed to redirect to client" : "Umleitung zum Client fehlgeschlagen",
- "Open locally" : "Lokal öffnen",
"Rename" : "Umbenennen",
"Open details" : "Details öffnen",
"View in folder" : "In Ordner anzeigen",
@@ -320,6 +333,9 @@
"Files moved successfully" : "Dateien verschoben",
"Conflicts resolution skipped" : "Konfliktelösung übersprungen",
"Upload cancelled" : "Hochladen abgebrochen",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" konnte nicht umbenannt werden, da es nicht mehr existiert",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte einen anderen Namen wählen.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" konnte nicht umbenannt werden",
"This operation is forbidden" : "Diese Operation ist nicht erlaubt",
"This directory is unavailable, please check the logs or contact the administrator" : "Dieses Verzeichnis ist nicht verfügbar, bitte überprüfen Sie die Protokolldateien oder kontaktieren Sie die Administration",
"Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar",
@@ -351,7 +367,6 @@
"Upload too large" : "Der Upload ist zu groß",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Die Datei überschreitet die Maximalgröße für Uploads auf diesem Server.",
"File could not be found" : "Datei konnte nicht gefunden werden",
- "Download" : "Herunterladen",
"Show list view" : "Listenansicht anzeigen",
"Show grid view" : "Kachelansicht anzeigen",
"Close" : "Schließen",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "{origin} wurde nach {destination} kopiert",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} und {nbfiles} weitere Dateien wurden nach {destination} kopiert",
"{newName} already exists" : "{newName} existiert bereits",
- "Could not rename \"{fileName}\", it does not exist any more" : "Die Datei \"{fileName}\" konnte nicht umbenannt werden, da sie nicht mehr existiert",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{targetName}\" wird bereits im Ordner \"{dir}\" benutzt. Bitte wählen Sie einen anderen Namen.",
- "Could not rename \"{fileName}\"" : "Die Datei konnte nicht umbenannt werden \"{fileName}\"",
"Could not create file \"{file}\"" : "Die Datei konnte nicht erstellt werden \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Die Datei \"{file}\" konnte nicht erstellt werden, da diese bereits existiert",
"Could not create folder \"{dir}\" because it already exists" : "Der Ordner \"{dir}\" konnte nicht erstellt werden, da dieser bereits existiert",
@@ -407,7 +419,7 @@
"New" : "Neu",
"New file/folder menu" : "Menü für neue Datei/Ordner",
"Select file range" : "Dateibereich auswählen",
- "{used}%" : "{used}%",
+ "{used}%" : "{used} %",
"{used} used" : "{used} verwendet",
"\"{name}\" is an invalid file name." : "\"{name}\" ist kein gültiger Dateiname.",
"File name cannot be empty." : "Der Dateiname darf nicht leer sein.",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Direktlink wurde kopiert (funktioniert nur für Personen, die Zugriff auf diese Datei/Ordner haben)",
"Path" : "Pfad",
"_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"],
- "Favorited" : "Favorisiert",
+ "Favored" : "Favorisiert",
+ "Favor" : "Favorisieren",
"Copy direct link (only works for people who have access to this file/folder)" : "Direkten Link kopieren (funktioniert nur für Personen, die Zugriff auf diese Datei bzw. den Ordner haben)",
"Upload file" : "Datei hochladen",
- "Not favorited" : "Nicht favorisiert",
+ "Not favored" : "Nicht favorisiert",
"An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Schlagworte aufgetreten",
- "You don't have permission to upload or create files here." : "Keine Berechtigung, hier Dateien hochzuladen oder zu erstellen.",
- "Storage informations" : "Speicherinformationen",
- "Choose file" : "Datei auswählen",
- "Go to the previous folder" : "Zum vorherigen Ordner wechseln",
- "Open the files app settings" : "Einstellungen der Dateien-App öffnen",
- "Unable to change the favourite state of the file" : "Der favorisierte Status der Datei kann nicht geändert werden",
- "Edit file locally" : "Datei lokal bearbeiten",
- "Edit online" : "Online bearbeiten",
- "Create new templates folder" : "Neuen Vorlagenordner erstellen",
+ "Upload (max. %s)" : "Hochladen (max. %s)",
+ "Submitting fields…" : "Felder werden übermittelt…",
+ "Filter filenames…" : "Dateinamen filtern…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} Ordner","{folderCount} Ordner"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} Datei","{fileCount} Dateien"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 Datei und {folderCount} Ordner","1 Datei und {folderCount} Ordner"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} Datei und 1 Ordner","{fileCount} Dateien und 1 Ordner"],
"{fileCount} files and {folderCount} folders" : "{fileCount} Dateien und {folderCount} Ordner",
- "List of favorites files and folders." : "Liste der favorisierten Ordner und Dateien.",
"Personal Files" : "Persönliche Dateien",
"Text file" : "Textdatei",
"New text file.txt" : "Neue Textdatei file.txt",
- "Favored" : "Favorisiert",
- "Favor" : "Favorisieren",
- "Not favored" : "Nicht favorisiert",
- "Submitting fields…" : "Felder werden übermittelt…",
- "Filter filenames…" : "Dateinamen filtern…",
- "{count} files could not be converted" : "{count} Dateien konnten nicht konvertiert werden",
- "{count} files successfully converted" : "{count} Dateien konvertiert"
+ "%1$s (renamed)" : "%1$s (umbenannt)",
+ "renamed file" : "Umbenannte Datei",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Nach Aktivierung der Windows-kompatiblen Dateinamen können vorhandene Dateien nicht mehr geändert, aber von ihrem Besitzer in gültige neue Namen umbenannt werden."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js
index 9a250f3895c..bbd987f01d2 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>αλλάξει</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Ένα αγαπημένο αρχείο ή φάκελός σας έχει <strong>τροποποιηθεί</strong>.",
"No favorites" : "Δεν υπάρχουν αγαπημένα",
- "Upload (max. %s)" : "Μεταφόρτωση (max. %s)",
"Accept" : "Αποδοχή",
"Reject" : "Απόρριψη",
"Incoming ownership transfer from {user}" : "Εισερχόμενη μεταβίβαση κυριότητας από τον {user}",
@@ -79,6 +78,7 @@ OC.L10N.register(
"Invalid filename." : "Μη έγκυρο όνομα αρχείου",
"Renamed \"{oldName}\" to \"{newName}\"" : "Μετονομασία του \"{oldName}\" σε \"{newName}\"",
"Rename file" : "Μετονομασία αρχείου",
+ "Folder" : "Φάκελος",
"Pending" : "Εκκρεμεί",
"Clear filter" : "Εκκαθάριση φίλτρου",
"Modified" : "Τροποποιήθηκε",
@@ -96,7 +96,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Οι επικεφαλίδες στηλών με κουμπιά είναι ταξινομήσιμες.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Η λίστα αυτή δεν εμφανίζεται πλήρως για λόγους απόδοσης. Τα αρχεία θα εμφανίζονται καθώς πλοηγείστε στη λίστα.",
"File not found" : "Δε βρέθηκε το αρχείο",
- "{count} selected" : "{count} έχουν επιλεγεί",
"{usedQuotaByte} used" : "{usedQuotaByte} χρησιμοποιείται",
"{used} of {quota} used" : "Χρήση {used} από {quota} ",
"{relative}% used" : "{relative}% χρησιμοποιείται",
@@ -184,6 +183,9 @@ OC.L10N.register(
"Delete" : "Διαγραφή",
"Confirm deletion" : "Επιβεβαίωση διαγραφής",
"Cancel" : "Ακύρωση",
+ "Download" : "Λήψη",
+ "Destination is not a folder" : "Ο προορισμός δεν είναι φάκελος",
+ "This file/folder is already in that directory" : "Αυτό το αρχείο/φάκελος βρίσκεται ήδη σε αυτόν τον κατάλογο",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Δεν μπορείτε να μετακινήσετε ένα αρχείο/φάκελο στον εαυτό του ή σε έναν υποφάκελο του ίδιου του φακέλου.",
"(copy)" : "(αντιγραφή)",
"(copy %n)" : "(αντιγραφή %n)",
@@ -229,6 +231,9 @@ OC.L10N.register(
"Files copied successfully" : "Τα αρχεία αντιγράφηκαν επιτυχώς",
"Files moved successfully" : "Τα αρχεία μετακινήθηκαν επιτυχώς",
"Upload cancelled" : "Η μεταφόρτωση ακυρώθηκε",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Δεν ήταν δυνατή η μετονομασία του \"{oldName}\", δεν υπάρχει πλέον",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Το όνομα \"{newName}\" χρησιμοποιείται ήδη στον φάκελο \"{dir}\". Παρακαλώ επιλέξτε ένα διαφορετικό όνομα.",
+ "Could not rename \"{oldName}\"" : "Δεν ήταν δυνατή η μετονομασία του \"{oldName}\"",
"This operation is forbidden" : "Αυτή η λειτουργία απαγορεύεται",
"This directory is unavailable, please check the logs or contact the administrator" : "Ο κατάλογος δεν είναι διαθέσιμος, παρακαλούμε ελέγξτε τα αρχεία καταγραφής ή επικοινωνήστε με το διαχειριστή",
"Storage is temporarily not available" : "Μη διαθέσιμος χώρος αποθήκευσης προσωρινά",
@@ -256,7 +261,6 @@ OC.L10N.register(
"Upload too large" : "Πολύ μεγάλο αρχείο προς μεταφόρτωση",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Τα αρχεία που προσπαθείτε να μεταφορτώσετε υπερβαίνουν το μέγιστο μέγεθος μεταφόρτωσης αρχείων σε αυτόν τον διακομιστή.",
"File could not be found" : "Δεν μπορεί να βρεθεί το αρχείο",
- "Download" : "Λήψη",
"Show list view" : "Προβολή λίστας",
"Show grid view" : "Προβολή πλέγματος",
"Close" : "Κλείσιμο",
@@ -295,9 +299,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Αντιγράφτηκε το {origin} στο {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Αντιγράφτηκε το {origin} και {nbfiles} άλλα αρχεία στο {destination}",
"{newName} already exists" : "Το {newName} υπάρχει ήδη",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "Αδυναμία δημιουργίας του αρχείου \"{file}\" επειδή υπάρχει ήδη",
"Could not create folder \"{dir}\" because it already exists" : "Αδυναμία δημιουργίας του φακέλου \"{dir}\" επειδή υπάρχει ήδη",
@@ -330,27 +331,18 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Ο άμεσος σύνδεσμος αντιγράφηκε (λειτουργεί μόνο για άτομα που έχουν πρόσβαση σε αυτό το αρχείο/φάκελο)",
"Path" : "Διαδρομή",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Αγαπημένα",
"Copy direct link (only works for people who have access to this file/folder)" : "Αντιγραφή άμεσου συνδέσμου (λειτουργεί μόνο για άτομα που έχουν πρόσβαση στο αρχείο/φάκελο)",
"Upload file" : "Μεταφόρτωση αρχείου",
- "Not favorited" : "Δεν είναι αγαπημένο",
"An error occurred while trying to update the tags" : "Ένα σφάλμα προέκυψε κατά τη διάρκεια ενημέρωσης των ετικετών",
- "Storage informations" : "Πληροφορίες αποθήκευσης",
- "Choose file" : "Επιλέξτε αρχείο",
- "Go to the previous folder" : "Μετάβαση στον προηγούμενο φάκελο",
- "Open the files app settings" : "Ανοίξτε τις ρυθμίσεις της εφαρμογής αρχείων",
- "Unable to change the favourite state of the file" : "Αδυναμία αλλαγής αγαπημένης κατάστασης αρχείου",
- "Edit file locally" : "Επεξεργασία αρχείου τοπικά",
- "Create new templates folder" : "Δημιουργία νέου φακέλου προτύπων",
+ "Upload (max. %s)" : "Μεταφόρτωση (max. %s)",
+ "Filter filenames…" : "Φιλτράρετε τα ονόματα αρχείων...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} φάκελος","{folderCount} φακέλοι"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} αρχείο","{fileCount} αρχεία"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 αρχείο και {folderCount} φάκελος","1 αρχείο και {folderCount} φακέλοι"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} αρχείο και 1 φάκελος","{fileCount} αρχεία και 1 φάκελος"],
"{fileCount} files and {folderCount} folders" : "{fileCount} αρχεία και {folderCount} φακέλοι",
- "List of favorites files and folders." : "Λίστα αγαπημένων αρχείων και φακέλων.",
"Personal Files" : "Προσωπικά Αρχεία",
"Text file" : "Αρχείο κειμένου",
- "New text file.txt" : "Νέο αρχείο file.txt",
- "Filter filenames…" : "Φιλτράρετε τα ονόματα αρχείων..."
+ "New text file.txt" : "Νέο αρχείο file.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index 43eaae3d1cb..22fa14b31d6 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "Ένα αρχείο ή κατάλογος έχουν <strong>αλλάξει</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Ένα αγαπημένο αρχείο ή φάκελός σας έχει <strong>τροποποιηθεί</strong>.",
"No favorites" : "Δεν υπάρχουν αγαπημένα",
- "Upload (max. %s)" : "Μεταφόρτωση (max. %s)",
"Accept" : "Αποδοχή",
"Reject" : "Απόρριψη",
"Incoming ownership transfer from {user}" : "Εισερχόμενη μεταβίβαση κυριότητας από τον {user}",
@@ -77,6 +76,7 @@
"Invalid filename." : "Μη έγκυρο όνομα αρχείου",
"Renamed \"{oldName}\" to \"{newName}\"" : "Μετονομασία του \"{oldName}\" σε \"{newName}\"",
"Rename file" : "Μετονομασία αρχείου",
+ "Folder" : "Φάκελος",
"Pending" : "Εκκρεμεί",
"Clear filter" : "Εκκαθάριση φίλτρου",
"Modified" : "Τροποποιήθηκε",
@@ -94,7 +94,6 @@
"Column headers with buttons are sortable." : "Οι επικεφαλίδες στηλών με κουμπιά είναι ταξινομήσιμες.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Η λίστα αυτή δεν εμφανίζεται πλήρως για λόγους απόδοσης. Τα αρχεία θα εμφανίζονται καθώς πλοηγείστε στη λίστα.",
"File not found" : "Δε βρέθηκε το αρχείο",
- "{count} selected" : "{count} έχουν επιλεγεί",
"{usedQuotaByte} used" : "{usedQuotaByte} χρησιμοποιείται",
"{used} of {quota} used" : "Χρήση {used} από {quota} ",
"{relative}% used" : "{relative}% χρησιμοποιείται",
@@ -182,6 +181,9 @@
"Delete" : "Διαγραφή",
"Confirm deletion" : "Επιβεβαίωση διαγραφής",
"Cancel" : "Ακύρωση",
+ "Download" : "Λήψη",
+ "Destination is not a folder" : "Ο προορισμός δεν είναι φάκελος",
+ "This file/folder is already in that directory" : "Αυτό το αρχείο/φάκελος βρίσκεται ήδη σε αυτόν τον κατάλογο",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Δεν μπορείτε να μετακινήσετε ένα αρχείο/φάκελο στον εαυτό του ή σε έναν υποφάκελο του ίδιου του φακέλου.",
"(copy)" : "(αντιγραφή)",
"(copy %n)" : "(αντιγραφή %n)",
@@ -227,6 +229,9 @@
"Files copied successfully" : "Τα αρχεία αντιγράφηκαν επιτυχώς",
"Files moved successfully" : "Τα αρχεία μετακινήθηκαν επιτυχώς",
"Upload cancelled" : "Η μεταφόρτωση ακυρώθηκε",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Δεν ήταν δυνατή η μετονομασία του \"{oldName}\", δεν υπάρχει πλέον",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Το όνομα \"{newName}\" χρησιμοποιείται ήδη στον φάκελο \"{dir}\". Παρακαλώ επιλέξτε ένα διαφορετικό όνομα.",
+ "Could not rename \"{oldName}\"" : "Δεν ήταν δυνατή η μετονομασία του \"{oldName}\"",
"This operation is forbidden" : "Αυτή η λειτουργία απαγορεύεται",
"This directory is unavailable, please check the logs or contact the administrator" : "Ο κατάλογος δεν είναι διαθέσιμος, παρακαλούμε ελέγξτε τα αρχεία καταγραφής ή επικοινωνήστε με το διαχειριστή",
"Storage is temporarily not available" : "Μη διαθέσιμος χώρος αποθήκευσης προσωρινά",
@@ -254,7 +259,6 @@
"Upload too large" : "Πολύ μεγάλο αρχείο προς μεταφόρτωση",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Τα αρχεία που προσπαθείτε να μεταφορτώσετε υπερβαίνουν το μέγιστο μέγεθος μεταφόρτωσης αρχείων σε αυτόν τον διακομιστή.",
"File could not be found" : "Δεν μπορεί να βρεθεί το αρχείο",
- "Download" : "Λήψη",
"Show list view" : "Προβολή λίστας",
"Show grid view" : "Προβολή πλέγματος",
"Close" : "Κλείσιμο",
@@ -293,9 +297,6 @@
"Copied {origin} inside {destination}" : "Αντιγράφτηκε το {origin} στο {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Αντιγράφτηκε το {origin} και {nbfiles} άλλα αρχεία στο {destination}",
"{newName} already exists" : "Το {newName} υπάρχει ήδη",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "Αδυναμία δημιουργίας του αρχείου \"{file}\" επειδή υπάρχει ήδη",
"Could not create folder \"{dir}\" because it already exists" : "Αδυναμία δημιουργίας του φακέλου \"{dir}\" επειδή υπάρχει ήδη",
@@ -328,27 +329,18 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Ο άμεσος σύνδεσμος αντιγράφηκε (λειτουργεί μόνο για άτομα που έχουν πρόσβαση σε αυτό το αρχείο/φάκελο)",
"Path" : "Διαδρομή",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Αγαπημένα",
"Copy direct link (only works for people who have access to this file/folder)" : "Αντιγραφή άμεσου συνδέσμου (λειτουργεί μόνο για άτομα που έχουν πρόσβαση στο αρχείο/φάκελο)",
"Upload file" : "Μεταφόρτωση αρχείου",
- "Not favorited" : "Δεν είναι αγαπημένο",
"An error occurred while trying to update the tags" : "Ένα σφάλμα προέκυψε κατά τη διάρκεια ενημέρωσης των ετικετών",
- "Storage informations" : "Πληροφορίες αποθήκευσης",
- "Choose file" : "Επιλέξτε αρχείο",
- "Go to the previous folder" : "Μετάβαση στον προηγούμενο φάκελο",
- "Open the files app settings" : "Ανοίξτε τις ρυθμίσεις της εφαρμογής αρχείων",
- "Unable to change the favourite state of the file" : "Αδυναμία αλλαγής αγαπημένης κατάστασης αρχείου",
- "Edit file locally" : "Επεξεργασία αρχείου τοπικά",
- "Create new templates folder" : "Δημιουργία νέου φακέλου προτύπων",
+ "Upload (max. %s)" : "Μεταφόρτωση (max. %s)",
+ "Filter filenames…" : "Φιλτράρετε τα ονόματα αρχείων...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} φάκελος","{folderCount} φακέλοι"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} αρχείο","{fileCount} αρχεία"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 αρχείο και {folderCount} φάκελος","1 αρχείο και {folderCount} φακέλοι"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} αρχείο και 1 φάκελος","{fileCount} αρχεία και 1 φάκελος"],
"{fileCount} files and {folderCount} folders" : "{fileCount} αρχεία και {folderCount} φακέλοι",
- "List of favorites files and folders." : "Λίστα αγαπημένων αρχείων και φακέλων.",
"Personal Files" : "Προσωπικά Αρχεία",
"Text file" : "Αρχείο κειμένου",
- "New text file.txt" : "Νέο αρχείο file.txt",
- "Filter filenames…" : "Φιλτράρετε τα ονόματα αρχείων..."
+ "New text file.txt" : "Νέο αρχείο file.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index c9c97b918ad..651479c0ba3 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favorite files",
"No favorites" : "No favourites",
"More favorites" : "More favorites",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accept",
"Reject" : "Reject",
"Incoming ownership transfer from {user}" : "Incoming ownership transfer from {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Transferred from %1$s on %2$s",
"Files compatibility" : "Files compatibility",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.",
"Enforce Windows compatibility" : "Enforce Windows compatibility",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity.",
"File Management" : "File Management",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Invalid filename.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renamed \"{oldName}\" to \"{newName}\"",
"Rename file" : "Rename file",
+ "Folder" : "Folder",
+ "Unknown file type" : "Unknown file type",
+ "{ext} image" : "{ext} image",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} text",
"Pending" : "Pending",
"Unknown date" : "Unknown date",
"Clear filter" : "Clear filter",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Total rows summary",
"Toggle selection for all files and folders" : "Toggle selection for all files and folders",
"Name" : "Name",
+ "File type" : "File type",
"Size" : "Size",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" failed on some elements",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" batch action executed successfully",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Column headers with buttons are sortable.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.",
"File not found" : "File not found",
- "{count} selected" : "{count} selected",
+ "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"],
"{usedQuotaByte} used" : "{usedQuotaByte} used",
"{used} of {quota} used" : "{used} of {quota} used",
"{relative}% used" : "{relative}% used",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Sort favourites first",
"Sort folders before files" : "Sort folders before files",
"Show hidden files" : "Show hidden files",
+ "Show file type column" : "Show file type column",
"Crop image previews" : "Crop image previews",
"Enable the grid view" : "Enable the grid view",
"Enable folder tree" : "Enable folder tree",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Show those shortcuts",
"You" : "You",
"Shared multiple times with different people" : "Shared multiple times with different people",
+ "Unable to change the favorite state of the file" : "Unable to change the favorite state of the file",
"Error while loading the file data" : "Error while loading the file data",
"Owner" : "Owner",
"Remove from favorites" : "Remove from favourites",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["You are about to delete {count} item","You are about to delete {count} items"],
"Confirm deletion" : "Confirm deletion",
"Cancel" : "Cancel",
+ "Download" : "Download",
"Moving \"{source}\" to \"{destination}\" …" : "Moving \"{source}\" to \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copying \"{source}\" to \"{destination}\" …",
+ "Destination is not a folder" : "Destination is not a folder",
+ "This file/folder is already in that directory" : "This file/folder is already in that directory",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "You cannot move a file/folder onto itself or into a subfolder of itself",
"(copy)" : "(copy)",
"(copy %n)" : "(copy %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Cancelled move or copy operation",
"Open folder {displayName}" : "Open folder {displayName}",
"Open in Files" : "Open in Files",
+ "Open locally" : "Open locally",
+ "Failed to redirect to client" : "Failed to redirect to client",
"Open file locally" : "Open file locally",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "The file should now open on your device. If it doesn't, please check that you have the desktop app installed.",
"Retry and close" : "Retry and close",
"Open online" : "Open online",
- "Failed to redirect to client" : "Failed to redirect to client",
- "Open locally" : "Open locally",
"Rename" : "Rename",
"Open details" : "Open details",
"View in folder" : "View in folder",
@@ -322,12 +335,16 @@ OC.L10N.register(
"Files moved successfully" : "Files moved successfully",
"Conflicts resolution skipped" : "Conflicts resolution skipped",
"Upload cancelled" : "Upload cancelled",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Could not rename \"{oldName}\", it does not exist any more",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.",
+ "Could not rename \"{oldName}\"" : "Could not rename \"{oldName}\"",
"This operation is forbidden" : "This operation is forbidden",
"This directory is unavailable, please check the logs or contact the administrator" : "This directory is unavailable, please check the logs or contact the administrator",
"Storage is temporarily not available" : "Storage is temporarily not available",
"Unexpected error: {error}" : "Unexpected error: {error}",
"_%n file_::_%n files_" : ["%n file","%n files"],
"_%n folder_::_%n folders_" : ["%n folder","%n folders"],
+ "_%n hidden_::_%n hidden_" : ["%n hidden","%n hidden"],
"Filename must not be empty." : "Filename must not be empty.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" is not allowed inside a filename.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" is a reserved name and not allowed for filenames.",
@@ -352,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Upload too large",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "The files you are trying to upload exceed the maximum size for file uploads on this server.",
"File could not be found" : "File could not be found",
- "Download" : "Download",
"Show list view" : "Show list view",
"Show grid view" : "Show grid view",
"Close" : "Close",
@@ -391,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Copied {origin} inside {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copied {origin} and {nbfiles} other files inside {destination}",
"{newName} already exists" : "{newName} already exists",
- "Could not rename \"{fileName}\", it does not exist any more" : "Could not rename \"{fileName}\", it does not exist any more",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name.",
- "Could not rename \"{fileName}\"" : "Could not rename \"{fileName}\"",
"Could not create file \"{file}\"" : "Could not create file \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Could not create file \"{file}\" because it already exists",
"Could not create folder \"{dir}\" because it already exists" : "Could not create folder \"{dir}\" because it already exists",
@@ -426,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Direct link was copied (only works for people who have access to this file/folder)",
"Path" : "Path",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Added to Favourites",
+ "Favored" : "Favoured",
+ "Favor" : "Favour",
"Copy direct link (only works for people who have access to this file/folder)" : "Copy direct link (only works for people who have access to this file/folder)",
"Upload file" : "Upload file",
- "Not favorited" : "Not favourited",
+ "Not favored" : "Not favoured",
"An error occurred while trying to update the tags" : "An error occurred whilst trying to update the tags",
- "You don't have permission to upload or create files here." : "You don't have permission to upload or create files here.",
- "Storage informations" : "Storage informations",
- "Choose file" : "Choose file",
- "Go to the previous folder" : "Go to the previous folder",
- "Open the files app settings" : "Open the files app settings",
- "Unable to change the favourite state of the file" : "Unable to change the favourite state of the file",
- "Edit file locally" : "Edit file locally",
- "Edit online" : "Edit online",
- "Create new templates folder" : "Create new templates folder",
+ "Upload (max. %s)" : "Upload (max. %s)",
+ "Submitting fields…" : "Submitting fields…",
+ "Filter filenames…" : "Filter filenames…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","{folderCount} folders"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} files"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file and 1 folder","{fileCount} files and 1 folder"],
"{fileCount} files and {folderCount} folders" : "{fileCount} files and {folderCount} folders",
- "List of favorites files and folders." : "List of favourite files and folders.",
"Personal Files" : "Personal Files",
"Text file" : "Text file",
"New text file.txt" : "New text file.txt",
- "Favored" : "Favoured",
- "Favor" : "Favour",
- "Not favored" : "Not favoured",
- "Submitting fields…" : "Submitting fields…",
- "Filter filenames…" : "Filter filenames…",
- "{count} files could not be converted" : "{count} files could not be converted",
- "{count} files successfully converted" : "{count} files successfully converted"
+ "%1$s (renamed)" : "%1$s (renamed)",
+ "renamed file" : "renamed file",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index 7c4b5e470fa..c0be990b162 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favorite files",
"No favorites" : "No favourites",
"More favorites" : "More favorites",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accept",
"Reject" : "Reject",
"Incoming ownership transfer from {user}" : "Incoming ownership transfer from {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Transferred from %1$s on %2$s",
"Files compatibility" : "Files compatibility",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.",
"Enforce Windows compatibility" : "Enforce Windows compatibility",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity.",
"File Management" : "File Management",
@@ -93,6 +94,12 @@
"Invalid filename." : "Invalid filename.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renamed \"{oldName}\" to \"{newName}\"",
"Rename file" : "Rename file",
+ "Folder" : "Folder",
+ "Unknown file type" : "Unknown file type",
+ "{ext} image" : "{ext} image",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} text",
"Pending" : "Pending",
"Unknown date" : "Unknown date",
"Clear filter" : "Clear filter",
@@ -103,6 +110,7 @@
"Total rows summary" : "Total rows summary",
"Toggle selection for all files and folders" : "Toggle selection for all files and folders",
"Name" : "Name",
+ "File type" : "File type",
"Size" : "Size",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" failed on some elements",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" batch action executed successfully",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Column headers with buttons are sortable.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.",
"File not found" : "File not found",
- "{count} selected" : "{count} selected",
+ "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"],
"{usedQuotaByte} used" : "{usedQuotaByte} used",
"{used} of {quota} used" : "{used} of {quota} used",
"{relative}% used" : "{relative}% used",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Sort favourites first",
"Sort folders before files" : "Sort folders before files",
"Show hidden files" : "Show hidden files",
+ "Show file type column" : "Show file type column",
"Crop image previews" : "Crop image previews",
"Enable the grid view" : "Enable the grid view",
"Enable folder tree" : "Enable folder tree",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "Show those shortcuts",
"You" : "You",
"Shared multiple times with different people" : "Shared multiple times with different people",
+ "Unable to change the favorite state of the file" : "Unable to change the favorite state of the file",
"Error while loading the file data" : "Error while loading the file data",
"Owner" : "Owner",
"Remove from favorites" : "Remove from favourites",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["You are about to delete {count} item","You are about to delete {count} items"],
"Confirm deletion" : "Confirm deletion",
"Cancel" : "Cancel",
+ "Download" : "Download",
"Moving \"{source}\" to \"{destination}\" …" : "Moving \"{source}\" to \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copying \"{source}\" to \"{destination}\" …",
+ "Destination is not a folder" : "Destination is not a folder",
+ "This file/folder is already in that directory" : "This file/folder is already in that directory",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "You cannot move a file/folder onto itself or into a subfolder of itself",
"(copy)" : "(copy)",
"(copy %n)" : "(copy %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Cancelled move or copy operation",
"Open folder {displayName}" : "Open folder {displayName}",
"Open in Files" : "Open in Files",
+ "Open locally" : "Open locally",
+ "Failed to redirect to client" : "Failed to redirect to client",
"Open file locally" : "Open file locally",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "The file should now open on your device. If it doesn't, please check that you have the desktop app installed.",
"Retry and close" : "Retry and close",
"Open online" : "Open online",
- "Failed to redirect to client" : "Failed to redirect to client",
- "Open locally" : "Open locally",
"Rename" : "Rename",
"Open details" : "Open details",
"View in folder" : "View in folder",
@@ -320,12 +333,16 @@
"Files moved successfully" : "Files moved successfully",
"Conflicts resolution skipped" : "Conflicts resolution skipped",
"Upload cancelled" : "Upload cancelled",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Could not rename \"{oldName}\", it does not exist any more",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.",
+ "Could not rename \"{oldName}\"" : "Could not rename \"{oldName}\"",
"This operation is forbidden" : "This operation is forbidden",
"This directory is unavailable, please check the logs or contact the administrator" : "This directory is unavailable, please check the logs or contact the administrator",
"Storage is temporarily not available" : "Storage is temporarily not available",
"Unexpected error: {error}" : "Unexpected error: {error}",
"_%n file_::_%n files_" : ["%n file","%n files"],
"_%n folder_::_%n folders_" : ["%n folder","%n folders"],
+ "_%n hidden_::_%n hidden_" : ["%n hidden","%n hidden"],
"Filename must not be empty." : "Filename must not be empty.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" is not allowed inside a filename.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" is a reserved name and not allowed for filenames.",
@@ -350,7 +367,6 @@
"Upload too large" : "Upload too large",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "The files you are trying to upload exceed the maximum size for file uploads on this server.",
"File could not be found" : "File could not be found",
- "Download" : "Download",
"Show list view" : "Show list view",
"Show grid view" : "Show grid view",
"Close" : "Close",
@@ -389,9 +405,6 @@
"Copied {origin} inside {destination}" : "Copied {origin} inside {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copied {origin} and {nbfiles} other files inside {destination}",
"{newName} already exists" : "{newName} already exists",
- "Could not rename \"{fileName}\", it does not exist any more" : "Could not rename \"{fileName}\", it does not exist any more",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name.",
- "Could not rename \"{fileName}\"" : "Could not rename \"{fileName}\"",
"Could not create file \"{file}\"" : "Could not create file \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Could not create file \"{file}\" because it already exists",
"Could not create folder \"{dir}\" because it already exists" : "Could not create folder \"{dir}\" because it already exists",
@@ -424,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Direct link was copied (only works for people who have access to this file/folder)",
"Path" : "Path",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Added to Favourites",
+ "Favored" : "Favoured",
+ "Favor" : "Favour",
"Copy direct link (only works for people who have access to this file/folder)" : "Copy direct link (only works for people who have access to this file/folder)",
"Upload file" : "Upload file",
- "Not favorited" : "Not favourited",
+ "Not favored" : "Not favoured",
"An error occurred while trying to update the tags" : "An error occurred whilst trying to update the tags",
- "You don't have permission to upload or create files here." : "You don't have permission to upload or create files here.",
- "Storage informations" : "Storage informations",
- "Choose file" : "Choose file",
- "Go to the previous folder" : "Go to the previous folder",
- "Open the files app settings" : "Open the files app settings",
- "Unable to change the favourite state of the file" : "Unable to change the favourite state of the file",
- "Edit file locally" : "Edit file locally",
- "Edit online" : "Edit online",
- "Create new templates folder" : "Create new templates folder",
+ "Upload (max. %s)" : "Upload (max. %s)",
+ "Submitting fields…" : "Submitting fields…",
+ "Filter filenames…" : "Filter filenames…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","{folderCount} folders"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} files"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file and 1 folder","{fileCount} files and 1 folder"],
"{fileCount} files and {folderCount} folders" : "{fileCount} files and {folderCount} folders",
- "List of favorites files and folders." : "List of favourite files and folders.",
"Personal Files" : "Personal Files",
"Text file" : "Text file",
"New text file.txt" : "New text file.txt",
- "Favored" : "Favoured",
- "Favor" : "Favour",
- "Not favored" : "Not favoured",
- "Submitting fields…" : "Submitting fields…",
- "Filter filenames…" : "Filter filenames…",
- "{count} files could not be converted" : "{count} files could not be converted",
- "{count} files successfully converted" : "{count} files successfully converted"
+ "%1$s (renamed)" : "%1$s (renamed)",
+ "renamed file" : "renamed file",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js
deleted file mode 100644
index b46abaef335..00000000000
--- a/apps/files/l10n/eo.js
+++ /dev/null
@@ -1,178 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "Dosiero ne troveblas",
- "Move or copy" : "Movi aŭ kopii",
- "Download" : "Elŝuti",
- "Delete" : "Forigi",
- "Tags" : "Etikedoj",
- "Show list view" : "Montri listan vidon",
- "Show grid view" : "Montri kradan vidon",
- "Home" : "Hejmo",
- "Close" : "Fermi",
- "Could not create folder \"{dir}\"" : "Ne eblas krei dosierujon „{dir}“",
- "This will stop your current uploads." : "Tio haltigos viajn nunajn alŝutojn.",
- "Upload cancelled." : "La alŝuto nuliĝis.",
- "Processing files …" : "Traktado de dosieroj…",
- "…" : "… ",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ne povis alŝuti {filename} ĉar ĝi estas dosierujo aŭ ĝi havas 0 bajtoj",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ne sufiĉas libera spaco: vi alŝutas {size1} sed nur {size2} restas",
- "Target folder \"{dir}\" does not exist any more" : "Cela dosierujo \"{dir}\" ne plu ekzistas",
- "Not enough free space" : "Ne sufiĉe libera spaco",
- "An unknown error has occurred" : "Nekonata eraro okazis",
- "Uploading …" : "Alŝutado…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} el {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "Alŝuto de tiu elemento ne estas subtenata",
- "Target folder does not exist any more" : "La cela dosierujo ne plu ekzistas",
- "Error when assembling chunks, status code {status}" : "Eraro dum kunigo de pecoj, stata kodo {status}",
- "Actions" : "Agoj",
- "Rename" : "Alinomi",
- "Move" : "Movi",
- "Copy" : "Kopii",
- "Choose target folder" : "Elekti celan dosierujon",
- "Edit locally" : "Redakti loke",
- "Open" : "Malfermi",
- "Could not load info for file \"{file}\"" : "Informo pri dosiero „{file}“ ne legeblis",
- "Files" : "Dosieroj",
- "Details" : "Detaloj",
- "Pending" : "Pritraktotaj",
- "Unable to determine date" : "Ne eblas determini daton",
- "This operation is forbidden" : "Ĉi tiu operacio malpermesatas",
- "This directory is unavailable, please check the logs or contact the administrator" : "Ĉi tiu dosierujo maldisponeblas, bonvolu kontroli la protokolojn aŭ kontakti la administranton",
- "Storage is temporarily not available" : "Konservejo dumtempe ne disponeblas",
- "Could not move \"{file}\", target exists" : "Ne eblas movi la dosieron „{file}“, celo jam ekzistas",
- "Could not move \"{file}\"" : "Ne eblas movi la dosieron „{file}“",
- "copy" : "kopio",
- "Could not copy \"{file}\", target exists" : "Ne eblas kopii la dosieron „{file}“, celo jam ekzistas",
- "Could not copy \"{file}\"" : "Ne eblas kopii la dosieron „{file}“",
- "Copied {origin} inside {destination}" : "{origin} kopiita ene de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} kaj {nbfiles} aliaj dosieroj kopiitaj ene de {destination}",
- "{newName} already exists" : "{newName} jam ekzistas",
- "Could not rename \"{fileName}\", it does not exist any more" : "Ne eblis alinomi „{fileName}“, ĝi ne plu ekzistas",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "La nomo „{targetName}“ jam uzatas en la dosierujo „{dir}“. Bonvolu elekti alian nomon.",
- "Could not rename \"{fileName}\"" : "Ne eblis alinomi „{fileName}“",
- "Could not create file \"{file}\"" : "Ne eblas krei dosieron „{file}“",
- "Could not create file \"{file}\" because it already exists" : "Ne eblis krei dosieron „{file}“ ĉar ĝi jam ekzistas",
- "Could not create folder \"{dir}\" because it already exists" : "Ne eblas krei dosierujon „{dir}“ ĉar ĝi jam ekzistas",
- "Error deleting file \"{fileName}\"." : "Eraro dum forigo de dosiero „{fileName}“.",
- "No search results in other folders for {tag}{filter}{endtag}" : "Neniu serĉorezulto en aliaj dosierujoj pri {tag}{filter}{endtag}",
- "Name" : "Nomo",
- "Size" : "Grando",
- "Modified" : "Modifita",
- "_%n folder_::_%n folders_" : ["%n dosierujo","%n dosierujoj"],
- "_%n file_::_%n files_" : ["%n dosiero","%n dosieroj"],
- "{dirs} and {files}" : "{dirs} kaj {files}",
- "_including %n hidden_::_including %n hidden_" : ["inkluzive %n kaŝita","inkluzive %n kaŝita(j)"],
- "_Uploading %n file_::_Uploading %n files_" : ["Alŝutatas %n dosiero","Alŝutatas %n dosieroj"],
- "New" : "Nova",
- "Select file range" : "Elekti dosierintervalon",
- "{used}%" : "{used}%",
- "{used} of {quota} used" : "{used} uzataj el {quota}",
- "{used} used" : "{used} uzataj",
- "\"{name}\" is an invalid file name." : "„{name}“ estas nevalida dosiernomo.",
- "File name cannot be empty." : "Dosiernomo devas ne malpleni.",
- "\"/\" is not allowed inside a file name." : "Ne eblas uziĝi „/“ en dosiernomo.",
- "\"{name}\" is not an allowed filetype" : "„{name}“ ne estas permesita dosiertipo.",
- "View in folder" : "Vidi en dosierujo",
- "Path" : "Vojo",
- "_%n byte_::_%n bytes_" : ["%n bajto","%n bajtoj"],
- "Favorited" : "Pliŝatitaj",
- "Favorite" : "Pliŝatata",
- "New folder" : "Nova dosierujo",
- "Create new folder" : "Krei novan dosierujon",
- "Upload file" : "Alŝuti dosieron",
- "Recent" : "Lastaj ŝanĝoj",
- "Not favorited" : "Ne pliŝatitaj",
- "Remove from favorites" : "Malpliŝatigi",
- "Add to favorites" : "Pliŝatigi",
- "An error occurred while trying to update the tags" : "Okazis eraro dum provo ĝisdatigi la etikedojn",
- "Added to favorites" : "Aldonita al pliŝatataĵoj",
- "Removed from favorites" : "Forigita el pliŝataĵoj",
- "You added {file} to your favorites" : "Vi aldonis {file} al viaj pliŝataĵoj",
- "You removed {file} from your favorites" : "Vi forigis {file} el viaj pliŝataĵoj",
- "Favorites" : "Pliŝatataj",
- "File changes" : "Dosierŝanĝoj",
- "Created by {user}" : "Kreita de {user}",
- "Changed by {user}" : "Ŝanĝita de {user}",
- "Deleted by {user}" : "Forigita de {user}",
- "Restored by {user}" : "Restaŭrita de {user}",
- "Renamed by {user}" : "Alinomita de {user}",
- "Moved by {user}" : "Movita de {user}",
- "You created {file}" : "Vi kreis „{file}“",
- "You created an encrypted file in {file}" : "Vi kreis ĉifritan dosieron en {file}",
- "{user} created {file}" : "{user} kreis {file}",
- "{user} created an encrypted file in {file}" : "{user} kreis ĉifritan dosieron en {file}",
- "{file} was created in a public folder" : "{file} kreiĝis en publika dosierujo",
- "You changed {file}" : "Vi ŝanĝis {file}",
- "You changed an encrypted file in {file}" : "Vi ŝanĝis ĉifritan dosieron en {file}",
- "{user} changed {file}" : "{user} ŝanĝis {file}",
- "{user} changed an encrypted file in {file}" : "{user} ŝanĝis ĉifritan dosieron en {file}",
- "You deleted {file}" : "Vi forigis {file}",
- "You deleted an encrypted file in {file}" : "Vi forigis ĉifritan dosieron en {file}",
- "{user} deleted {file}" : "{user} forigis {file}",
- "{user} deleted an encrypted file in {file}" : "{user} forigis ĉifritan dosieron en {file}",
- "You restored {file}" : "Vi restaŭris {file}",
- "{user} restored {file}" : "{user} restaŭris {file}",
- "You renamed {oldfile} to {newfile}" : "Vi alinomis {oldfile} al {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} alinomis {oldfile} al {newfile}",
- "You moved {oldfile} to {newfile}" : "Vi movis {oldfile} al {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movis {oldfile} al {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Dosiero aldoniĝis aŭ foriĝis el viaj <strong>pliŝataĵoj</strong>",
- "A file or folder has been <strong>changed</strong>" : "Dosiero aŭ dosierujo <strong>ŝanĝiĝis</strong>",
- "Upload (max. %s)" : "Alŝuti (maks. %s)",
- "Accept" : "Akcepti",
- "Reject" : "Rifuzi",
- "in %s" : "en %s",
- "File Management" : "Dosieradministrado",
- "You don’t have permission to upload or create files here" : "Vi ne permesatas alŝuti aŭ krei dosierojn ĉi tie",
- "File name" : "Dosiernomo",
- "Folder name" : "Dosierujnomo",
- "Name cannot be empty" : "Nomo ne povas mapleni",
- "File not found" : "Netrovita dosiero",
- "Your storage is full, files can not be updated or synced anymore!" : "Via konservejo plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!",
- "Create" : "Krei",
- "Change" : "Ŝanĝi",
- "New owner" : "Nova posedanto",
- "Unknown error" : "Nekonata eraro",
- "Choose {file}" : "Elekti {file}",
- "No files in here" : "Neniu dosiero ĉi tie",
- "Upload some content or sync with your devices!" : "Alŝutu iom da enhavo aŭ sinkronigu kun viaj aparatoj!",
- "Go back" : "Reveni",
- "Shared by link" : "Kunhavata per ligilo",
- "Shared" : "Kunhavigita",
- "Show hidden files" : "Montri kaŝitajn dosierojn",
- "Additional settings" : "Plia agordo",
- "WebDAV" : "WebDAV",
- "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",
- "Creating file" : "Kreante dosieron",
- "Delete permanently" : "Forigi por ĉiam",
- "Cancel" : "Nuligi",
- "Copy to {target}" : "Kopii al {target}",
- "Move to {target}" : "Movi al {target}",
- "Open details" : "Montri detalojn",
- "Filename" : "Dosiernomo",
- "Templates" : "Ŝablonoj",
- "No favorites yet" : "Ankoraŭ neniu pliŝataĵo",
- "Files and folders you mark as favorite will show up here" : "Dosieroj kaj dosierujoj, kiujn vi markas kiel pliŝataĵoj, aperos ĉi tie",
- "All files" : "Ĉiuj dosieroj",
- "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
- "Select all" : "Elekti ĉion",
- "Upload too large" : "Alŝuto tro granda",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo.",
- "Text file" : "Tekstodosiero",
- "New text file.txt" : "Nova tekstodosiero.txt",
- "Copy direct link (only works for users who have access to this file/folder)" : "Kopii senperan ligilon (nur validas por uzantoj, kiuj povas aliri al tiu dosiero aŭ dosierujo)",
- "You can only favorite a single file or folder at a time" : "Vi povas samtempe pliŝatigi nur unu dosieron aŭ dosierujon",
- "\"remote user\"" : "„fora uzanto“",
- "Search users" : "Serĉi uzantojn",
- "Toggle grid view" : "Baskuligi kradan vidon",
- "Deleted files" : "Forigitaj dosieroj",
- "Shares" : "Kunhavigoj",
- "Shared with others" : "Kunhavata kun aliaj",
- "Shared with you" : "Kunhavata kun vi",
- "Deleted shares" : "Forigitaj kunhavigoj",
- "Choose" : "Elekti"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json
deleted file mode 100644
index fb6e68ff451..00000000000
--- a/apps/files/l10n/eo.json
+++ /dev/null
@@ -1,176 +0,0 @@
-{ "translations": {
- "File could not be found" : "Dosiero ne troveblas",
- "Move or copy" : "Movi aŭ kopii",
- "Download" : "Elŝuti",
- "Delete" : "Forigi",
- "Tags" : "Etikedoj",
- "Show list view" : "Montri listan vidon",
- "Show grid view" : "Montri kradan vidon",
- "Home" : "Hejmo",
- "Close" : "Fermi",
- "Could not create folder \"{dir}\"" : "Ne eblas krei dosierujon „{dir}“",
- "This will stop your current uploads." : "Tio haltigos viajn nunajn alŝutojn.",
- "Upload cancelled." : "La alŝuto nuliĝis.",
- "Processing files …" : "Traktado de dosieroj…",
- "…" : "… ",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ne povis alŝuti {filename} ĉar ĝi estas dosierujo aŭ ĝi havas 0 bajtoj",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ne sufiĉas libera spaco: vi alŝutas {size1} sed nur {size2} restas",
- "Target folder \"{dir}\" does not exist any more" : "Cela dosierujo \"{dir}\" ne plu ekzistas",
- "Not enough free space" : "Ne sufiĉe libera spaco",
- "An unknown error has occurred" : "Nekonata eraro okazis",
- "Uploading …" : "Alŝutado…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} el {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "Alŝuto de tiu elemento ne estas subtenata",
- "Target folder does not exist any more" : "La cela dosierujo ne plu ekzistas",
- "Error when assembling chunks, status code {status}" : "Eraro dum kunigo de pecoj, stata kodo {status}",
- "Actions" : "Agoj",
- "Rename" : "Alinomi",
- "Move" : "Movi",
- "Copy" : "Kopii",
- "Choose target folder" : "Elekti celan dosierujon",
- "Edit locally" : "Redakti loke",
- "Open" : "Malfermi",
- "Could not load info for file \"{file}\"" : "Informo pri dosiero „{file}“ ne legeblis",
- "Files" : "Dosieroj",
- "Details" : "Detaloj",
- "Pending" : "Pritraktotaj",
- "Unable to determine date" : "Ne eblas determini daton",
- "This operation is forbidden" : "Ĉi tiu operacio malpermesatas",
- "This directory is unavailable, please check the logs or contact the administrator" : "Ĉi tiu dosierujo maldisponeblas, bonvolu kontroli la protokolojn aŭ kontakti la administranton",
- "Storage is temporarily not available" : "Konservejo dumtempe ne disponeblas",
- "Could not move \"{file}\", target exists" : "Ne eblas movi la dosieron „{file}“, celo jam ekzistas",
- "Could not move \"{file}\"" : "Ne eblas movi la dosieron „{file}“",
- "copy" : "kopio",
- "Could not copy \"{file}\", target exists" : "Ne eblas kopii la dosieron „{file}“, celo jam ekzistas",
- "Could not copy \"{file}\"" : "Ne eblas kopii la dosieron „{file}“",
- "Copied {origin} inside {destination}" : "{origin} kopiita ene de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} kaj {nbfiles} aliaj dosieroj kopiitaj ene de {destination}",
- "{newName} already exists" : "{newName} jam ekzistas",
- "Could not rename \"{fileName}\", it does not exist any more" : "Ne eblis alinomi „{fileName}“, ĝi ne plu ekzistas",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "La nomo „{targetName}“ jam uzatas en la dosierujo „{dir}“. Bonvolu elekti alian nomon.",
- "Could not rename \"{fileName}\"" : "Ne eblis alinomi „{fileName}“",
- "Could not create file \"{file}\"" : "Ne eblas krei dosieron „{file}“",
- "Could not create file \"{file}\" because it already exists" : "Ne eblis krei dosieron „{file}“ ĉar ĝi jam ekzistas",
- "Could not create folder \"{dir}\" because it already exists" : "Ne eblas krei dosierujon „{dir}“ ĉar ĝi jam ekzistas",
- "Error deleting file \"{fileName}\"." : "Eraro dum forigo de dosiero „{fileName}“.",
- "No search results in other folders for {tag}{filter}{endtag}" : "Neniu serĉorezulto en aliaj dosierujoj pri {tag}{filter}{endtag}",
- "Name" : "Nomo",
- "Size" : "Grando",
- "Modified" : "Modifita",
- "_%n folder_::_%n folders_" : ["%n dosierujo","%n dosierujoj"],
- "_%n file_::_%n files_" : ["%n dosiero","%n dosieroj"],
- "{dirs} and {files}" : "{dirs} kaj {files}",
- "_including %n hidden_::_including %n hidden_" : ["inkluzive %n kaŝita","inkluzive %n kaŝita(j)"],
- "_Uploading %n file_::_Uploading %n files_" : ["Alŝutatas %n dosiero","Alŝutatas %n dosieroj"],
- "New" : "Nova",
- "Select file range" : "Elekti dosierintervalon",
- "{used}%" : "{used}%",
- "{used} of {quota} used" : "{used} uzataj el {quota}",
- "{used} used" : "{used} uzataj",
- "\"{name}\" is an invalid file name." : "„{name}“ estas nevalida dosiernomo.",
- "File name cannot be empty." : "Dosiernomo devas ne malpleni.",
- "\"/\" is not allowed inside a file name." : "Ne eblas uziĝi „/“ en dosiernomo.",
- "\"{name}\" is not an allowed filetype" : "„{name}“ ne estas permesita dosiertipo.",
- "View in folder" : "Vidi en dosierujo",
- "Path" : "Vojo",
- "_%n byte_::_%n bytes_" : ["%n bajto","%n bajtoj"],
- "Favorited" : "Pliŝatitaj",
- "Favorite" : "Pliŝatata",
- "New folder" : "Nova dosierujo",
- "Create new folder" : "Krei novan dosierujon",
- "Upload file" : "Alŝuti dosieron",
- "Recent" : "Lastaj ŝanĝoj",
- "Not favorited" : "Ne pliŝatitaj",
- "Remove from favorites" : "Malpliŝatigi",
- "Add to favorites" : "Pliŝatigi",
- "An error occurred while trying to update the tags" : "Okazis eraro dum provo ĝisdatigi la etikedojn",
- "Added to favorites" : "Aldonita al pliŝatataĵoj",
- "Removed from favorites" : "Forigita el pliŝataĵoj",
- "You added {file} to your favorites" : "Vi aldonis {file} al viaj pliŝataĵoj",
- "You removed {file} from your favorites" : "Vi forigis {file} el viaj pliŝataĵoj",
- "Favorites" : "Pliŝatataj",
- "File changes" : "Dosierŝanĝoj",
- "Created by {user}" : "Kreita de {user}",
- "Changed by {user}" : "Ŝanĝita de {user}",
- "Deleted by {user}" : "Forigita de {user}",
- "Restored by {user}" : "Restaŭrita de {user}",
- "Renamed by {user}" : "Alinomita de {user}",
- "Moved by {user}" : "Movita de {user}",
- "You created {file}" : "Vi kreis „{file}“",
- "You created an encrypted file in {file}" : "Vi kreis ĉifritan dosieron en {file}",
- "{user} created {file}" : "{user} kreis {file}",
- "{user} created an encrypted file in {file}" : "{user} kreis ĉifritan dosieron en {file}",
- "{file} was created in a public folder" : "{file} kreiĝis en publika dosierujo",
- "You changed {file}" : "Vi ŝanĝis {file}",
- "You changed an encrypted file in {file}" : "Vi ŝanĝis ĉifritan dosieron en {file}",
- "{user} changed {file}" : "{user} ŝanĝis {file}",
- "{user} changed an encrypted file in {file}" : "{user} ŝanĝis ĉifritan dosieron en {file}",
- "You deleted {file}" : "Vi forigis {file}",
- "You deleted an encrypted file in {file}" : "Vi forigis ĉifritan dosieron en {file}",
- "{user} deleted {file}" : "{user} forigis {file}",
- "{user} deleted an encrypted file in {file}" : "{user} forigis ĉifritan dosieron en {file}",
- "You restored {file}" : "Vi restaŭris {file}",
- "{user} restored {file}" : "{user} restaŭris {file}",
- "You renamed {oldfile} to {newfile}" : "Vi alinomis {oldfile} al {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} alinomis {oldfile} al {newfile}",
- "You moved {oldfile} to {newfile}" : "Vi movis {oldfile} al {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movis {oldfile} al {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Dosiero aldoniĝis aŭ foriĝis el viaj <strong>pliŝataĵoj</strong>",
- "A file or folder has been <strong>changed</strong>" : "Dosiero aŭ dosierujo <strong>ŝanĝiĝis</strong>",
- "Upload (max. %s)" : "Alŝuti (maks. %s)",
- "Accept" : "Akcepti",
- "Reject" : "Rifuzi",
- "in %s" : "en %s",
- "File Management" : "Dosieradministrado",
- "You don’t have permission to upload or create files here" : "Vi ne permesatas alŝuti aŭ krei dosierojn ĉi tie",
- "File name" : "Dosiernomo",
- "Folder name" : "Dosierujnomo",
- "Name cannot be empty" : "Nomo ne povas mapleni",
- "File not found" : "Netrovita dosiero",
- "Your storage is full, files can not be updated or synced anymore!" : "Via konservejo plenas, ne plu eblas ĝisdatigi aŭ sinkronigi dosierojn!",
- "Create" : "Krei",
- "Change" : "Ŝanĝi",
- "New owner" : "Nova posedanto",
- "Unknown error" : "Nekonata eraro",
- "Choose {file}" : "Elekti {file}",
- "No files in here" : "Neniu dosiero ĉi tie",
- "Upload some content or sync with your devices!" : "Alŝutu iom da enhavo aŭ sinkronigu kun viaj aparatoj!",
- "Go back" : "Reveni",
- "Shared by link" : "Kunhavata per ligilo",
- "Shared" : "Kunhavigita",
- "Show hidden files" : "Montri kaŝitajn dosierojn",
- "Additional settings" : "Plia agordo",
- "WebDAV" : "WebDAV",
- "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",
- "Creating file" : "Kreante dosieron",
- "Delete permanently" : "Forigi por ĉiam",
- "Cancel" : "Nuligi",
- "Copy to {target}" : "Kopii al {target}",
- "Move to {target}" : "Movi al {target}",
- "Open details" : "Montri detalojn",
- "Filename" : "Dosiernomo",
- "Templates" : "Ŝablonoj",
- "No favorites yet" : "Ankoraŭ neniu pliŝataĵo",
- "Files and folders you mark as favorite will show up here" : "Dosieroj kaj dosierujoj, kiujn vi markas kiel pliŝataĵoj, aperos ĉi tie",
- "All files" : "Ĉiuj dosieroj",
- "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
- "Select all" : "Elekti ĉion",
- "Upload too large" : "Alŝuto tro granda",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "La dosieroj, kiujn vi provas alŝuti, transpasas la maksimuman grandon por dosieralŝutoj en ĉi tiu servilo.",
- "Text file" : "Tekstodosiero",
- "New text file.txt" : "Nova tekstodosiero.txt",
- "Copy direct link (only works for users who have access to this file/folder)" : "Kopii senperan ligilon (nur validas por uzantoj, kiuj povas aliri al tiu dosiero aŭ dosierujo)",
- "You can only favorite a single file or folder at a time" : "Vi povas samtempe pliŝatigi nur unu dosieron aŭ dosierujon",
- "\"remote user\"" : "„fora uzanto“",
- "Search users" : "Serĉi uzantojn",
- "Toggle grid view" : "Baskuligi kradan vidon",
- "Deleted files" : "Forigitaj dosieroj",
- "Shares" : "Kunhavigoj",
- "Shared with others" : "Kunhavata kun aliaj",
- "Shared with you" : "Kunhavata kun vi",
- "Deleted shares" : "Forigitaj kunhavigoj",
- "Choose" : "Elekti"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index 452372aa9b2..f719cf94b8f 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Archivos favoritos",
"No favorites" : "No hay favoritos",
"More favorites" : "Más favoritos",
- "Upload (max. %s)" : "Subida (máx. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Ha llegado una transferencia de propiedad de {user}",
@@ -71,6 +70,7 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Se transfirió desde %1$s en %2$s",
"Files compatibility" : "Compatibilidad de archivos",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permitir la restricción en nombres de archivo para asegurar que los archivos se puedan sincronizar con todos los clientes. Por defecto, se permiten todos los nombres de archivos válidos en POSIX (por ejemplo, Linux o macOS).",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "También es posible migrar los archivos automáticamente luego de habilitar este ajuste. Por favor, refiérase a la documentación sobre el comando occ.",
"Enforce Windows compatibility" : "Forzar la compatibilidad con Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Esto bloqueará los nombres de archivos inválidos en sistemas Windows, tales como usar nombres reservados o caracteres especiales. Pero no forzará la compatibilidad del uso de mayúsculas y minúsculas.",
"File Management" : "Gestión de archivos",
@@ -95,6 +95,7 @@ OC.L10N.register(
"Invalid filename." : "Nombre de archivo inválido.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renombrado \"{oldName}\" a \"{newName}\"",
"Rename file" : "Renombrar archivo",
+ "Folder" : "Carpeta",
"Pending" : "Pendiente",
"Unknown date" : "Fecha desconocida",
"Clear filter" : "Borrar filtro",
@@ -116,7 +117,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Las columnas con botones en la cabecera son ordenables.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.",
"File not found" : "No se ha encontrado el archivo",
- "{count} selected" : "{count} seleccionados",
+ "_{count} selected_::_{count} selected_" : ["{count}seleccionado","{count} seleccionados","{count} seleccionados"],
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
"{used} of {quota} used" : "{used} usados de {quota}",
"{relative}% used" : "{relative}% utilizado",
@@ -219,6 +220,7 @@ OC.L10N.register(
"Show those shortcuts" : "Mostrar estos atajos de teclado",
"You" : "Usted",
"Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
+ "Unable to change the favorite state of the file" : "Deshacer los cambios del estado de favorito del archivo",
"Error while loading the file data" : "Error al cargar los datos del archivo",
"Owner" : "Dueño",
"Remove from favorites" : "Quitar de favoritos",
@@ -259,8 +261,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Está a punto de eliminar {count} elemento","Está a punto de eliminar {count} elementos","Está a punto de eliminar {count} elementos"],
"Confirm deletion" : "Confirmar eliminación",
"Cancel" : "Cancelar",
+ "Download" : "Descargar",
"Moving \"{source}\" to \"{destination}\" …" : "Moviendo \"{source}\" a \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copiando \"{source}\" a \"{destination}\" …",
+ "Destination is not a folder" : "El destino no es una carpeta",
+ "This file/folder is already in that directory" : "Este archivo/carpeta ya está en ese directorio",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "No puede mover un archivo/carpeta a sí mismo o a una sub-carpeta de sí mismo",
"(copy)" : "(copiar)",
"(copy %n)" : "(copiar %n)",
@@ -279,12 +284,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Se canceló la operación de mover o copiar",
"Open folder {displayName}" : "Abrir carpeta {displayName}",
"Open in Files" : "Abrir en Archivos",
+ "Open locally" : "Abrir localmente",
+ "Failed to redirect to client" : "Fallo al redirigir al cliente",
"Open file locally" : "Abrir archivo localmente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "El archivo se abrirá ahora en tu dispositivo. Si esto no ocurre, por favor verifica que has instalado la aplicación de escritorio",
"Retry and close" : "Reintentar y cerrar",
"Open online" : "Abrir en línea",
- "Failed to redirect to client" : "Fallo al redirigir al cliente",
- "Open locally" : "Abrir localmente",
"Rename" : "Renombrar",
"Open details" : "Abrir detalles",
"View in folder" : "Ver en carpeta",
@@ -322,12 +327,16 @@ OC.L10N.register(
"Files moved successfully" : "Archivos movidos exitosamente",
"Conflicts resolution skipped" : "Resolución de conflictos omitida",
"Upload cancelled" : "Subida cancelada.",
+ "Could not rename \"{oldName}\", it does not exist any more" : "No se ha podido renombrar \"{oldName}\", ya no existe",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{newName}\" ya está en uso en la carpeta \"{dir}\". Por favor, escoja un nombre diferente.",
+ "Could not rename \"{oldName}\"" : "No se ha podido renombrar \"{oldName}\"",
"This operation is forbidden" : "Esta operación está prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verifique los registros o contacte con el administrador",
"Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente",
"Unexpected error: {error}" : "Error inesperado: {error}",
"_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
+ "_%n hidden_::_%n hidden_" : ["%n oculto","%n ocultos","%n ocultos"],
"Filename must not be empty." : "El nombre de archivo no debe estar vacío.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" no está permitido en el nombre de archivo.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" es un nombre reservado y no se permite para los nombres de archivo.",
@@ -352,7 +361,6 @@ OC.L10N.register(
"Upload too large" : "Subida demasido grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
"File could not be found" : "El archivo no se ha encontrado",
- "Download" : "Descargar",
"Show list view" : "Mostrar vista de lista",
"Show grid view" : "Mostrar vista de cuadrícula",
"Close" : "Cerrar",
@@ -391,9 +399,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Se ha copiado {origin} dentro de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Se han copiado {origin} y {nbfiles} otros archivos dentro de {destination}",
"{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No se pudo renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elija un nombre diferente.",
- "Could not rename \"{fileName}\"" : "No se pudo renombrar \"{fileName}\"",
"Could not create file \"{file}\"" : "No se pudo crear archivo \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "No se pudo crear archivo \"{file}\" porque ya existe",
"Could not create folder \"{dir}\" because it already exists" : "No se ha podido crear la carpeta \"{dir}\" porque ya existe",
@@ -426,35 +431,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "El enlace directo fue copiado (solo funciona para usuarios que tienen acceso a este archivo/carpeta)",
"Path" : "Ruta",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Agregado a favoritos",
+ "Favored" : "Favorecido",
+ "Favor" : "Favorecer",
"Copy direct link (only works for people who have access to this file/folder)" : "El enlace directo fue copiado (solo funciona para usuarios que tienen acceso a este archivo/carpeta)",
"Upload file" : "Subir archivo",
- "Not favorited" : "Quitado como favorito",
+ "Not favored" : "No favorecido",
"An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas",
- "You don't have permission to upload or create files here." : "No tiene permisos para subir o crear archivos aquí.",
- "Storage informations" : "Informaciones de almacenamiento",
- "Choose file" : "Elegir archivo",
- "Go to the previous folder" : "Ir a la carpeta anterior",
- "Open the files app settings" : "Abrir la configuración de la app Archivos",
- "Unable to change the favourite state of the file" : "No se ha podido cambiar el estado de favorito del fichero",
- "Edit file locally" : "Editar archivo localmente",
- "Edit online" : "Editar en línea",
- "Create new templates folder" : "Crear nueva carpeta de plantillas",
+ "Upload (max. %s)" : "Subida (máx. %s)",
+ "Submitting fields…" : "Enviando campos…",
+ "Filter filenames…" : "Filtrar nombres de archivo…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetas","{folderCount} carpetas"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archivo","{fileCount} archivos","{fileCount} archivos"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archivo y {folderCount} carpeta","1 archivo y {folderCount} carpetas","1 archivo y {folderCount} carpetas"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} archivo y 1 carpeta","{fileCount} archivos y 1 carpeta","{fileCount} archivos y 1 carpeta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} archivos y {folderCount} carpetas",
- "List of favorites files and folders." : "Lista de archivos y carpetas favoritos.",
"Personal Files" : "Archivos Personales",
"Text file" : "Archivo de texto",
"New text file.txt" : "Nuevo archivo.txt",
- "Favored" : "Favorecido",
- "Favor" : "Favorecer",
- "Not favored" : "No favorecido",
- "Submitting fields…" : "Enviando campos…",
- "Filter filenames…" : "Filtrar nombres de archivo…",
- "{count} files could not be converted" : "{count} archivos no han podido ser convertidos",
- "{count} files successfully converted" : "{count} archivos convertidos correctamente"
+ "%1$s (renamed)" : "%1$s (renombrado)",
+ "renamed file" : "archivo renombrado",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Luego de habilitar los nombres de archivo compatibles con windows, los archivos existentes no podrán ser modificados, pero, podrán ser renombrados a nuevos nombres válidos por su respectivo propietario."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index e59a967242e..3d6910f16fd 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -52,7 +52,6 @@
"Favorite files" : "Archivos favoritos",
"No favorites" : "No hay favoritos",
"More favorites" : "Más favoritos",
- "Upload (max. %s)" : "Subida (máx. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Ha llegado una transferencia de propiedad de {user}",
@@ -69,6 +68,7 @@
"Transferred from %1$s on %2$s" : "Se transfirió desde %1$s en %2$s",
"Files compatibility" : "Compatibilidad de archivos",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permitir la restricción en nombres de archivo para asegurar que los archivos se puedan sincronizar con todos los clientes. Por defecto, se permiten todos los nombres de archivos válidos en POSIX (por ejemplo, Linux o macOS).",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "También es posible migrar los archivos automáticamente luego de habilitar este ajuste. Por favor, refiérase a la documentación sobre el comando occ.",
"Enforce Windows compatibility" : "Forzar la compatibilidad con Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Esto bloqueará los nombres de archivos inválidos en sistemas Windows, tales como usar nombres reservados o caracteres especiales. Pero no forzará la compatibilidad del uso de mayúsculas y minúsculas.",
"File Management" : "Gestión de archivos",
@@ -93,6 +93,7 @@
"Invalid filename." : "Nombre de archivo inválido.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renombrado \"{oldName}\" a \"{newName}\"",
"Rename file" : "Renombrar archivo",
+ "Folder" : "Carpeta",
"Pending" : "Pendiente",
"Unknown date" : "Fecha desconocida",
"Clear filter" : "Borrar filtro",
@@ -114,7 +115,7 @@
"Column headers with buttons are sortable." : "Las columnas con botones en la cabecera son ordenables.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.",
"File not found" : "No se ha encontrado el archivo",
- "{count} selected" : "{count} seleccionados",
+ "_{count} selected_::_{count} selected_" : ["{count}seleccionado","{count} seleccionados","{count} seleccionados"],
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
"{used} of {quota} used" : "{used} usados de {quota}",
"{relative}% used" : "{relative}% utilizado",
@@ -217,6 +218,7 @@
"Show those shortcuts" : "Mostrar estos atajos de teclado",
"You" : "Usted",
"Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas",
+ "Unable to change the favorite state of the file" : "Deshacer los cambios del estado de favorito del archivo",
"Error while loading the file data" : "Error al cargar los datos del archivo",
"Owner" : "Dueño",
"Remove from favorites" : "Quitar de favoritos",
@@ -257,8 +259,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Está a punto de eliminar {count} elemento","Está a punto de eliminar {count} elementos","Está a punto de eliminar {count} elementos"],
"Confirm deletion" : "Confirmar eliminación",
"Cancel" : "Cancelar",
+ "Download" : "Descargar",
"Moving \"{source}\" to \"{destination}\" …" : "Moviendo \"{source}\" a \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copiando \"{source}\" a \"{destination}\" …",
+ "Destination is not a folder" : "El destino no es una carpeta",
+ "This file/folder is already in that directory" : "Este archivo/carpeta ya está en ese directorio",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "No puede mover un archivo/carpeta a sí mismo o a una sub-carpeta de sí mismo",
"(copy)" : "(copiar)",
"(copy %n)" : "(copiar %n)",
@@ -277,12 +282,12 @@
"Cancelled move or copy operation" : "Se canceló la operación de mover o copiar",
"Open folder {displayName}" : "Abrir carpeta {displayName}",
"Open in Files" : "Abrir en Archivos",
+ "Open locally" : "Abrir localmente",
+ "Failed to redirect to client" : "Fallo al redirigir al cliente",
"Open file locally" : "Abrir archivo localmente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "El archivo se abrirá ahora en tu dispositivo. Si esto no ocurre, por favor verifica que has instalado la aplicación de escritorio",
"Retry and close" : "Reintentar y cerrar",
"Open online" : "Abrir en línea",
- "Failed to redirect to client" : "Fallo al redirigir al cliente",
- "Open locally" : "Abrir localmente",
"Rename" : "Renombrar",
"Open details" : "Abrir detalles",
"View in folder" : "Ver en carpeta",
@@ -320,12 +325,16 @@
"Files moved successfully" : "Archivos movidos exitosamente",
"Conflicts resolution skipped" : "Resolución de conflictos omitida",
"Upload cancelled" : "Subida cancelada.",
+ "Could not rename \"{oldName}\", it does not exist any more" : "No se ha podido renombrar \"{oldName}\", ya no existe",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{newName}\" ya está en uso en la carpeta \"{dir}\". Por favor, escoja un nombre diferente.",
+ "Could not rename \"{oldName}\"" : "No se ha podido renombrar \"{oldName}\"",
"This operation is forbidden" : "Esta operación está prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verifique los registros o contacte con el administrador",
"Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente",
"Unexpected error: {error}" : "Error inesperado: {error}",
"_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
+ "_%n hidden_::_%n hidden_" : ["%n oculto","%n ocultos","%n ocultos"],
"Filename must not be empty." : "El nombre de archivo no debe estar vacío.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" no está permitido en el nombre de archivo.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" es un nombre reservado y no se permite para los nombres de archivo.",
@@ -350,7 +359,6 @@
"Upload too large" : "Subida demasido grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando subir sobrepasan el tamaño máximo permitido en este servidor.",
"File could not be found" : "El archivo no se ha encontrado",
- "Download" : "Descargar",
"Show list view" : "Mostrar vista de lista",
"Show grid view" : "Mostrar vista de cuadrícula",
"Close" : "Cerrar",
@@ -389,9 +397,6 @@
"Copied {origin} inside {destination}" : "Se ha copiado {origin} dentro de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Se han copiado {origin} y {nbfiles} otros archivos dentro de {destination}",
"{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No se pudo renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elija un nombre diferente.",
- "Could not rename \"{fileName}\"" : "No se pudo renombrar \"{fileName}\"",
"Could not create file \"{file}\"" : "No se pudo crear archivo \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "No se pudo crear archivo \"{file}\" porque ya existe",
"Could not create folder \"{dir}\" because it already exists" : "No se ha podido crear la carpeta \"{dir}\" porque ya existe",
@@ -424,35 +429,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "El enlace directo fue copiado (solo funciona para usuarios que tienen acceso a este archivo/carpeta)",
"Path" : "Ruta",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Agregado a favoritos",
+ "Favored" : "Favorecido",
+ "Favor" : "Favorecer",
"Copy direct link (only works for people who have access to this file/folder)" : "El enlace directo fue copiado (solo funciona para usuarios que tienen acceso a este archivo/carpeta)",
"Upload file" : "Subir archivo",
- "Not favorited" : "Quitado como favorito",
+ "Not favored" : "No favorecido",
"An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas",
- "You don't have permission to upload or create files here." : "No tiene permisos para subir o crear archivos aquí.",
- "Storage informations" : "Informaciones de almacenamiento",
- "Choose file" : "Elegir archivo",
- "Go to the previous folder" : "Ir a la carpeta anterior",
- "Open the files app settings" : "Abrir la configuración de la app Archivos",
- "Unable to change the favourite state of the file" : "No se ha podido cambiar el estado de favorito del fichero",
- "Edit file locally" : "Editar archivo localmente",
- "Edit online" : "Editar en línea",
- "Create new templates folder" : "Crear nueva carpeta de plantillas",
+ "Upload (max. %s)" : "Subida (máx. %s)",
+ "Submitting fields…" : "Enviando campos…",
+ "Filter filenames…" : "Filtrar nombres de archivo…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetas","{folderCount} carpetas"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archivo","{fileCount} archivos","{fileCount} archivos"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archivo y {folderCount} carpeta","1 archivo y {folderCount} carpetas","1 archivo y {folderCount} carpetas"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} archivo y 1 carpeta","{fileCount} archivos y 1 carpeta","{fileCount} archivos y 1 carpeta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} archivos y {folderCount} carpetas",
- "List of favorites files and folders." : "Lista de archivos y carpetas favoritos.",
"Personal Files" : "Archivos Personales",
"Text file" : "Archivo de texto",
"New text file.txt" : "Nuevo archivo.txt",
- "Favored" : "Favorecido",
- "Favor" : "Favorecer",
- "Not favored" : "No favorecido",
- "Submitting fields…" : "Enviando campos…",
- "Filter filenames…" : "Filtrar nombres de archivo…",
- "{count} files could not be converted" : "{count} archivos no han podido ser convertidos",
- "{count} files successfully converted" : "{count} archivos convertidos correctamente"
+ "%1$s (renamed)" : "%1$s (renombrado)",
+ "renamed file" : "archivo renombrado",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Luego de habilitar los nombres de archivo compatibles con windows, los archivos existentes no podrán ser modificados, pero, podrán ser renombrados a nuevos nombres válidos por su respectivo propietario."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_419.js b/apps/files/l10n/es_419.js
deleted file mode 100644
index 4b5af2ffea0..00000000000
--- a/apps/files/l10n/es_419.js
+++ /dev/null
@@ -1,137 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_419.json b/apps/files/l10n/es_419.json
deleted file mode 100644
index faab5900cc2..00000000000
--- a/apps/files/l10n/es_419.json
+++ /dev/null
@@ -1,135 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_AR.js b/apps/files/l10n/es_AR.js
deleted file mode 100644
index 825a8c97033..00000000000
--- a/apps/files/l10n/es_AR.js
+++ /dev/null
@@ -1,149 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o Copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "Processing files …" : "Procesando archivos...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No cuenta con suficiente espacio disponible, usted se encuentra cargando {size1} pero sólo cuenta con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuenta con suficiente espacio disponible",
- "An unknown error has occurred" : "Se presentó un error desconocido",
- "Uploading …" : "Actualizando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Choose target folder" : "Elegir carpeta destino",
- "Open" : "Abrir",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, favor de verficiar las bitácoras o contacte al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "copy" : "copiar",
- "Could not copy \"{file}\"" : "No es posible copiar \"{file}\"",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Favor de elegir un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar link directo (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es favorito",
- "Remove from favorites" : "Eliminado de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Usted agregó {file} a sus favoritos",
- "You removed {file} from your favorites" : "Usted eliminó {file} de sus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Usted creó {file}",
- "You created an encrypted file in {file}" : "Se creó el archivo encriptado {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó el archivo encriptado {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Usted cambió {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Usted borró {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Usted restauró {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Usted renombró  {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Usted movió {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de sus strong>favoritos</strong>",
- "A file or folder has been <strong>changed</strong>" : "Un archivo o carpeta ha sido <strong>modificado</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "File Management" : "Administración de Archivos",
- "Folder name" : "Nombre de la carpeta",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Cargue algún contenido o sincronice con sus dispositivos!",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "New Folder" : "Carpeta Nueva",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marque como favortios se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Toggle grid view" : "Vista de cuadrícula",
- "Deleted files" : "Archivos borrados",
- "Shares" : "Shares",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por link",
- "Choose" : "Elige"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_AR.json b/apps/files/l10n/es_AR.json
deleted file mode 100644
index d156326d0af..00000000000
--- a/apps/files/l10n/es_AR.json
+++ /dev/null
@@ -1,147 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o Copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "Processing files …" : "Procesando archivos...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No cuenta con suficiente espacio disponible, usted se encuentra cargando {size1} pero sólo cuenta con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuenta con suficiente espacio disponible",
- "An unknown error has occurred" : "Se presentó un error desconocido",
- "Uploading …" : "Actualizando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Choose target folder" : "Elegir carpeta destino",
- "Open" : "Abrir",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, favor de verficiar las bitácoras o contacte al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "copy" : "copiar",
- "Could not copy \"{file}\"" : "No es posible copiar \"{file}\"",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Favor de elegir un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar link directo (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es favorito",
- "Remove from favorites" : "Eliminado de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Usted agregó {file} a sus favoritos",
- "You removed {file} from your favorites" : "Usted eliminó {file} de sus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Usted creó {file}",
- "You created an encrypted file in {file}" : "Se creó el archivo encriptado {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó el archivo encriptado {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Usted cambió {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Usted borró {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Usted restauró {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Usted renombró  {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Usted movió {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de sus strong>favoritos</strong>",
- "A file or folder has been <strong>changed</strong>" : "Un archivo o carpeta ha sido <strong>modificado</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "File Management" : "Administración de Archivos",
- "Folder name" : "Nombre de la carpeta",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Cargue algún contenido o sincronice con sus dispositivos!",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "New Folder" : "Carpeta Nueva",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marque como favortios se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Toggle grid view" : "Vista de cuadrícula",
- "Deleted files" : "Archivos borrados",
- "Shares" : "Shares",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por link",
- "Choose" : "Elige"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_CL.js b/apps/files/l10n/es_CL.js
deleted file mode 100644
index eb83182a60a..00000000000
--- a/apps/files/l10n/es_CL.js
+++ /dev/null
@@ -1,154 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "A file or folder has been <strong>changed</strong>" : "Un archivo o carpeta ha sido <strong>cambiado</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_CL.json b/apps/files/l10n/es_CL.json
deleted file mode 100644
index 2c34fdcb4dc..00000000000
--- a/apps/files/l10n/es_CL.json
+++ /dev/null
@@ -1,152 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "A file or folder has been <strong>changed</strong>" : "Un archivo o carpeta ha sido <strong>cambiado</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_CO.js b/apps/files/l10n/es_CO.js
deleted file mode 100644
index 3287df27983..00000000000
--- a/apps/files/l10n/es_CO.js
+++ /dev/null
@@ -1,154 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "copy" : "Copiar",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_CO.json b/apps/files/l10n/es_CO.json
deleted file mode 100644
index 47d6420fbed..00000000000
--- a/apps/files/l10n/es_CO.json
+++ /dev/null
@@ -1,152 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "copy" : "Copiar",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_CR.js b/apps/files/l10n/es_CR.js
deleted file mode 100644
index c4548e2b0d2..00000000000
--- a/apps/files/l10n/es_CR.js
+++ /dev/null
@@ -1,152 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_CR.json b/apps/files/l10n/es_CR.json
deleted file mode 100644
index 84b04ec739f..00000000000
--- a/apps/files/l10n/es_CR.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_DO.js b/apps/files/l10n/es_DO.js
deleted file mode 100644
index 14144c28f96..00000000000
--- a/apps/files/l10n/es_DO.js
+++ /dev/null
@@ -1,153 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_DO.json b/apps/files/l10n/es_DO.json
deleted file mode 100644
index 638b1a208ca..00000000000
--- a/apps/files/l10n/es_DO.json
+++ /dev/null
@@ -1,151 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_EC.js b/apps/files/l10n/es_EC.js
index aa4efb62385..2f039379b4f 100644
--- a/apps/files/l10n/es_EC.js
+++ b/apps/files/l10n/es_EC.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Un archivo o carpeta ha sido <strong>modificado</strong>.",
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo o carpeta favorito ha sido <strong>modificado</strong>.",
"No favorites" : "No hay favoritos",
- "Upload (max. %s)" : "Cargar (max. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Transferencia de propiedad entrante de {user}.",
@@ -65,6 +64,7 @@ OC.L10N.register(
"Folder name" : "Nombre de la carpeta",
"Renamed \"{oldName}\" to \"{newName}\"" : "Cambiaste el nombre de \"{oldName}\" a \"{newName}\".",
"Rename file" : "Renombrar archivo.",
+ "Folder" : "Carpeta",
"Pending" : "Pendiente",
"Clear filter" : "Borrar filtro",
"Modified" : "Modificado",
@@ -78,6 +78,7 @@ OC.L10N.register(
"\"{displayName}\" action failed" : "La acción \"{displayName}\" falló.",
"Actions" : "Acciones",
"List of files and folders." : "Lista de archivos y carpetas. ",
+ "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados","{count} seleccionado"],
"{usedQuotaByte} used" : "{usedQuotaByte} usados.",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% usados.",
@@ -145,13 +146,14 @@ OC.L10N.register(
"Delete files" : "Eliminar archivos",
"Delete" : "Borrar",
"Cancel" : "Cancelar",
+ "Download" : "Descargar",
"Copy" : "Copiar",
"Move" : "Mover",
"Move or copy" : "Mover o copiar",
"Open folder {displayName}" : "Abrir carpeta {displayName}.",
- "Open file locally" : "Abrir archivo localmente",
- "Failed to redirect to client" : "No se pudo redirigir al cliente.",
"Open locally" : "Abrir localmente",
+ "Failed to redirect to client" : "No se pudo redirigir al cliente.",
+ "Open file locally" : "Abrir archivo localmente",
"Rename" : "Renombrar",
"Open details" : "Abrir detalles.",
"View in folder" : "Ver en la carpeta",
@@ -162,6 +164,9 @@ OC.L10N.register(
"Unable to initialize the templates directory" : "No se pudo inicializar el directorio de plantillas.",
"Templates" : "Plantillas",
"Some files could not be moved" : "Algunos archivos no se pudieron mover",
+ "Could not rename \"{oldName}\", it does not exist any more" : "No se pudo cambiar el nombre de \"{oldName}\", ya no existe.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{newName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
+ "Could not rename \"{oldName}\"" : "No se pudo cambiar el nombre de \"{oldName}\".",
"This operation is forbidden" : "Esta operación está prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
"Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
@@ -176,7 +181,6 @@ OC.L10N.register(
"Upload too large" : "La carga es demasido grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
"File could not be found" : "No fue posible encontrar el archivo",
- "Download" : "Descargar",
"Show list view" : "Mostrar vista de lista",
"Show grid view" : "Mostrar vista de cuadrícula",
"Close" : "Cerrar",
@@ -212,9 +216,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
"{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
"Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
"Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
@@ -246,16 +247,9 @@ OC.L10N.register(
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["coincide con \"{filter}\".","coincide con \"{filter}\".","coincide con \"{filter}\"."],
"Path" : "Ruta",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
"Upload file" : "Cargar archivo",
- "Not favorited" : "No es un favorito",
"An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Storage informations" : "Información de almacenamiento.",
- "Go to the previous folder" : "Ir a la carpeta anterior.",
- "Open the files app settings" : "Abrir la configuración de la aplicación de archivos.",
- "Unable to change the favourite state of the file" : "No se puede cambiar el estado de favorito del archivo.",
- "Create new templates folder" : "Crear nueva carpeta de plantillas.",
- "List of favorites files and folders." : "Lista de archivos y carpetas favoritos.",
+ "Upload (max. %s)" : "Cargar (max. %s)",
"Text file" : "Archivo de texto",
"New text file.txt" : "Nuevo ArchivoDeTexto.txt"
},
diff --git a/apps/files/l10n/es_EC.json b/apps/files/l10n/es_EC.json
index 0c9f72aa1b6..7d3d713a7db 100644
--- a/apps/files/l10n/es_EC.json
+++ b/apps/files/l10n/es_EC.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "Un archivo o carpeta ha sido <strong>modificado</strong>.",
"A favorite file or folder has been <strong>changed</strong>" : "Un archivo o carpeta favorito ha sido <strong>modificado</strong>.",
"No favorites" : "No hay favoritos",
- "Upload (max. %s)" : "Cargar (max. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Transferencia de propiedad entrante de {user}.",
@@ -63,6 +62,7 @@
"Folder name" : "Nombre de la carpeta",
"Renamed \"{oldName}\" to \"{newName}\"" : "Cambiaste el nombre de \"{oldName}\" a \"{newName}\".",
"Rename file" : "Renombrar archivo.",
+ "Folder" : "Carpeta",
"Pending" : "Pendiente",
"Clear filter" : "Borrar filtro",
"Modified" : "Modificado",
@@ -76,6 +76,7 @@
"\"{displayName}\" action failed" : "La acción \"{displayName}\" falló.",
"Actions" : "Acciones",
"List of files and folders." : "Lista de archivos y carpetas. ",
+ "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados","{count} seleccionado"],
"{usedQuotaByte} used" : "{usedQuotaByte} usados.",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% usados.",
@@ -143,13 +144,14 @@
"Delete files" : "Eliminar archivos",
"Delete" : "Borrar",
"Cancel" : "Cancelar",
+ "Download" : "Descargar",
"Copy" : "Copiar",
"Move" : "Mover",
"Move or copy" : "Mover o copiar",
"Open folder {displayName}" : "Abrir carpeta {displayName}.",
- "Open file locally" : "Abrir archivo localmente",
- "Failed to redirect to client" : "No se pudo redirigir al cliente.",
"Open locally" : "Abrir localmente",
+ "Failed to redirect to client" : "No se pudo redirigir al cliente.",
+ "Open file locally" : "Abrir archivo localmente",
"Rename" : "Renombrar",
"Open details" : "Abrir detalles.",
"View in folder" : "Ver en la carpeta",
@@ -160,6 +162,9 @@
"Unable to initialize the templates directory" : "No se pudo inicializar el directorio de plantillas.",
"Templates" : "Plantillas",
"Some files could not be moved" : "Algunos archivos no se pudieron mover",
+ "Could not rename \"{oldName}\", it does not exist any more" : "No se pudo cambiar el nombre de \"{oldName}\", ya no existe.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{newName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
+ "Could not rename \"{oldName}\"" : "No se pudo cambiar el nombre de \"{oldName}\".",
"This operation is forbidden" : "Esta operación está prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
"Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
@@ -174,7 +179,6 @@
"Upload too large" : "La carga es demasido grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
"File could not be found" : "No fue posible encontrar el archivo",
- "Download" : "Descargar",
"Show list view" : "Mostrar vista de lista",
"Show grid view" : "Mostrar vista de cuadrícula",
"Close" : "Cerrar",
@@ -210,9 +214,6 @@
"Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
"{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
"Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
"Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
@@ -244,16 +245,9 @@
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["coincide con \"{filter}\".","coincide con \"{filter}\".","coincide con \"{filter}\"."],
"Path" : "Ruta",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
"Upload file" : "Cargar archivo",
- "Not favorited" : "No es un favorito",
"An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Storage informations" : "Información de almacenamiento.",
- "Go to the previous folder" : "Ir a la carpeta anterior.",
- "Open the files app settings" : "Abrir la configuración de la aplicación de archivos.",
- "Unable to change the favourite state of the file" : "No se puede cambiar el estado de favorito del archivo.",
- "Create new templates folder" : "Crear nueva carpeta de plantillas.",
- "List of favorites files and folders." : "Lista de archivos y carpetas favoritos.",
+ "Upload (max. %s)" : "Cargar (max. %s)",
"Text file" : "Archivo de texto",
"New text file.txt" : "Nuevo ArchivoDeTexto.txt"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
diff --git a/apps/files/l10n/es_GT.js b/apps/files/l10n/es_GT.js
deleted file mode 100644
index c4548e2b0d2..00000000000
--- a/apps/files/l10n/es_GT.js
+++ /dev/null
@@ -1,152 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_GT.json b/apps/files/l10n/es_GT.json
deleted file mode 100644
index 84b04ec739f..00000000000
--- a/apps/files/l10n/es_GT.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_HN.js b/apps/files/l10n/es_HN.js
deleted file mode 100644
index 4b5af2ffea0..00000000000
--- a/apps/files/l10n/es_HN.js
+++ /dev/null
@@ -1,137 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_HN.json b/apps/files/l10n/es_HN.json
deleted file mode 100644
index faab5900cc2..00000000000
--- a/apps/files/l10n/es_HN.json
+++ /dev/null
@@ -1,135 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index 2d95872c46a..69567a664bd 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -47,7 +47,6 @@ OC.L10N.register(
"Invalid folder path" : "Ruta de carpeta inválida",
"Folder not found" : "No se encontró la carpeta",
"No favorites" : "No hay favoritos",
- "Upload (max. %s)" : "Cargar (max. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Solicitud de transferencia de propiedad entrante de {user}",
@@ -87,6 +86,7 @@ OC.L10N.register(
"Invalid filename." : "Nombre de archivo inválido",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renombrado \"{oldName}\" a \"{newName}\"",
"Rename file" : "Renombrar archivo",
+ "Folder" : "Carpeta",
"Pending" : "Pendiente",
"Unknown date" : "Fecha desconocida",
"Clear filter" : "Limpiar filtro",
@@ -106,7 +106,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Las columnas con botones en la cabecera son ordenables.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.",
"File not found" : "Archivo no encontrado",
- "{count} selected" : "{count} seleccionados",
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% utilizado",
@@ -207,8 +206,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Está a punto de eliminar {count} elemento.","Está a punto de eliminar {count} elementos.","Está a punto de eliminar {count} elementos."],
"Confirm deletion" : "Confirmar eliminación",
"Cancel" : "Cancelar",
+ "Download" : "Descargar",
"Moving \"{source}\" to \"{destination}\" …" : "Moviendo \"{source}\" a \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copiando \"{source}\" a \"{destination}\" …",
+ "Destination is not a folder" : "El destino no es una carpeta",
+ "This file/folder is already in that directory" : "Este archivo/carpeta ya está en ese directorio",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "No puede mover un archivo/carpeta a sí mismo o a una subcarpeta de sí mismo",
"(copy)" : "(copiar)",
"(copy %n)" : "(copiar %n)",
@@ -227,9 +229,9 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Se canceló la operación de mover o copiar",
"Open folder {displayName}" : "Abrir carpeta {displayName}",
"Open in Files" : "Abrir en Archivos",
+ "Failed to redirect to client" : "Fallo al redirigir al cliente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "El archivo se abrirá ahora en tu dispositivo. Si esto no ocurre, por favor verifica que hayas instalado la aplicación de escritorio.",
"Retry and close" : "Reintentar y cerrar",
- "Failed to redirect to client" : "Fallo al redirigir al cliente",
"Rename" : "Renombrar",
"Open details" : "Abrir detalles",
"View in folder" : "Ver en la carpeta",
@@ -267,6 +269,9 @@ OC.L10N.register(
"Files moved successfully" : "Archivos movidos exitosamente",
"Conflicts resolution skipped" : "Resolución de conflictos omitida",
"Upload cancelled" : "Subida cancelada",
+ "Could not rename \"{oldName}\", it does not exist any more" : "No se pudo renombrar \"{oldName}\", ya no existe.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{newName}\" ya está en uso en la carpeta \"{dir}\". Por favor, elija un nombre diferente.",
+ "Could not rename \"{oldName}\"" : "No se pudo renombrar \"{oldName}\"",
"This operation is forbidden" : "Esta operación está prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
"Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
@@ -297,7 +302,6 @@ OC.L10N.register(
"Upload too large" : "La carga es demasido grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
"File could not be found" : "No fue posible encontrar el archivo",
- "Download" : "Descargar",
"Show list view" : "Mostrar vista de lista",
"Show grid view" : "Mostrar vista de cuadrícula",
"Close" : "Cerrar",
@@ -336,9 +340,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
"{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
"Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
"Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
@@ -371,32 +372,22 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Se ha copiado el enlace directo (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
"Path" : "Ruta",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
+ "Favored" : "Favorecido",
+ "Favor" : "Favorecer",
"Copy direct link (only works for people who have access to this file/folder)" : "Copiar enlace directo (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
"Upload file" : "Cargar archivo",
- "Not favorited" : "No es un favorito",
+ "Not favored" : "No favorecido",
"An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Storage informations" : "Informaciones de almacenamiento",
- "Choose file" : "Elegir archivo",
- "Go to the previous folder" : "Ir a la carpeta anterior",
- "Open the files app settings" : "Abrir la configuración de la app Archivos",
- "Unable to change the favourite state of the file" : "No se ha podido cambiar el estado de favorito del fichero",
- "Edit file locally" : "Editar el archivo localmente",
- "Edit online" : "Editar en línea",
- "Create new templates folder" : "Crear nueva carpeta de plantillas",
+ "Upload (max. %s)" : "Cargar (max. %s)",
+ "Submitting fields…" : "Enviando campos...",
+ "Filter filenames…" : "Filtrar nombres de archivos...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetas","{folderCount} carpetas"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archivo","{fileCount} archivos","{fileCount} archivos"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archivo y {folderCount} carpeta","1 archivo y {folderCount} carpetas","1 archivo y {folderCount} carpetas"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} archivo y 1 carpeta","{fileCount} archivos y 1 carpeta","{fileCount} archivos y 1 carpeta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} archivos y {folderCount} carpetas",
- "List of favorites files and folders." : "Lista de archivos y carpetas favoritos.",
"Personal Files" : "Archivos personales",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Favored" : "Favorecido",
- "Favor" : "Favorecer",
- "Not favored" : "No favorecido",
- "Submitting fields…" : "Enviando campos...",
- "Filter filenames…" : "Filtrar nombres de archivos..."
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index 7bbc8a846f9..7e960a74ba7 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -45,7 +45,6 @@
"Invalid folder path" : "Ruta de carpeta inválida",
"Folder not found" : "No se encontró la carpeta",
"No favorites" : "No hay favoritos",
- "Upload (max. %s)" : "Cargar (max. %s)",
"Accept" : "Aceptar",
"Reject" : "Rechazar",
"Incoming ownership transfer from {user}" : "Solicitud de transferencia de propiedad entrante de {user}",
@@ -85,6 +84,7 @@
"Invalid filename." : "Nombre de archivo inválido",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renombrado \"{oldName}\" a \"{newName}\"",
"Rename file" : "Renombrar archivo",
+ "Folder" : "Carpeta",
"Pending" : "Pendiente",
"Unknown date" : "Fecha desconocida",
"Clear filter" : "Limpiar filtro",
@@ -104,7 +104,6 @@
"Column headers with buttons are sortable." : "Las columnas con botones en la cabecera son ordenables.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.",
"File not found" : "Archivo no encontrado",
- "{count} selected" : "{count} seleccionados",
"{usedQuotaByte} used" : "{usedQuotaByte} utilizados",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% utilizado",
@@ -205,8 +204,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Está a punto de eliminar {count} elemento.","Está a punto de eliminar {count} elementos.","Está a punto de eliminar {count} elementos."],
"Confirm deletion" : "Confirmar eliminación",
"Cancel" : "Cancelar",
+ "Download" : "Descargar",
"Moving \"{source}\" to \"{destination}\" …" : "Moviendo \"{source}\" a \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copiando \"{source}\" a \"{destination}\" …",
+ "Destination is not a folder" : "El destino no es una carpeta",
+ "This file/folder is already in that directory" : "Este archivo/carpeta ya está en ese directorio",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "No puede mover un archivo/carpeta a sí mismo o a una subcarpeta de sí mismo",
"(copy)" : "(copiar)",
"(copy %n)" : "(copiar %n)",
@@ -225,9 +227,9 @@
"Cancelled move or copy operation" : "Se canceló la operación de mover o copiar",
"Open folder {displayName}" : "Abrir carpeta {displayName}",
"Open in Files" : "Abrir en Archivos",
+ "Failed to redirect to client" : "Fallo al redirigir al cliente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "El archivo se abrirá ahora en tu dispositivo. Si esto no ocurre, por favor verifica que hayas instalado la aplicación de escritorio.",
"Retry and close" : "Reintentar y cerrar",
- "Failed to redirect to client" : "Fallo al redirigir al cliente",
"Rename" : "Renombrar",
"Open details" : "Abrir detalles",
"View in folder" : "Ver en la carpeta",
@@ -265,6 +267,9 @@
"Files moved successfully" : "Archivos movidos exitosamente",
"Conflicts resolution skipped" : "Resolución de conflictos omitida",
"Upload cancelled" : "Subida cancelada",
+ "Could not rename \"{oldName}\", it does not exist any more" : "No se pudo renombrar \"{oldName}\", ya no existe.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{newName}\" ya está en uso en la carpeta \"{dir}\". Por favor, elija un nombre diferente.",
+ "Could not rename \"{oldName}\"" : "No se pudo renombrar \"{oldName}\"",
"This operation is forbidden" : "Esta operación está prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
"Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
@@ -295,7 +300,6 @@
"Upload too large" : "La carga es demasido grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
"File could not be found" : "No fue posible encontrar el archivo",
- "Download" : "Descargar",
"Show list view" : "Mostrar vista de lista",
"Show grid view" : "Mostrar vista de cuadrícula",
"Close" : "Cerrar",
@@ -334,9 +338,6 @@
"Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
"{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
"Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
"Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
@@ -369,32 +370,22 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Se ha copiado el enlace directo (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
"Path" : "Ruta",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
+ "Favored" : "Favorecido",
+ "Favor" : "Favorecer",
"Copy direct link (only works for people who have access to this file/folder)" : "Copiar enlace directo (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
"Upload file" : "Cargar archivo",
- "Not favorited" : "No es un favorito",
+ "Not favored" : "No favorecido",
"An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Storage informations" : "Informaciones de almacenamiento",
- "Choose file" : "Elegir archivo",
- "Go to the previous folder" : "Ir a la carpeta anterior",
- "Open the files app settings" : "Abrir la configuración de la app Archivos",
- "Unable to change the favourite state of the file" : "No se ha podido cambiar el estado de favorito del fichero",
- "Edit file locally" : "Editar el archivo localmente",
- "Edit online" : "Editar en línea",
- "Create new templates folder" : "Crear nueva carpeta de plantillas",
+ "Upload (max. %s)" : "Cargar (max. %s)",
+ "Submitting fields…" : "Enviando campos...",
+ "Filter filenames…" : "Filtrar nombres de archivos...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} carpeta","{folderCount} carpetas","{folderCount} carpetas"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archivo","{fileCount} archivos","{fileCount} archivos"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archivo y {folderCount} carpeta","1 archivo y {folderCount} carpetas","1 archivo y {folderCount} carpetas"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} archivo y 1 carpeta","{fileCount} archivos y 1 carpeta","{fileCount} archivos y 1 carpeta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} archivos y {folderCount} carpetas",
- "List of favorites files and folders." : "Lista de archivos y carpetas favoritos.",
"Personal Files" : "Archivos personales",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Favored" : "Favorecido",
- "Favor" : "Favorecer",
- "Not favored" : "No favorecido",
- "Submitting fields…" : "Enviando campos...",
- "Filter filenames…" : "Filtrar nombres de archivos..."
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_NI.js b/apps/files/l10n/es_NI.js
deleted file mode 100644
index 4b5af2ffea0..00000000000
--- a/apps/files/l10n/es_NI.js
+++ /dev/null
@@ -1,137 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_NI.json b/apps/files/l10n/es_NI.json
deleted file mode 100644
index faab5900cc2..00000000000
--- a/apps/files/l10n/es_NI.json
+++ /dev/null
@@ -1,135 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_PA.js b/apps/files/l10n/es_PA.js
deleted file mode 100644
index 4b5af2ffea0..00000000000
--- a/apps/files/l10n/es_PA.js
+++ /dev/null
@@ -1,137 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_PA.json b/apps/files/l10n/es_PA.json
deleted file mode 100644
index faab5900cc2..00000000000
--- a/apps/files/l10n/es_PA.json
+++ /dev/null
@@ -1,135 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_PE.js b/apps/files/l10n/es_PE.js
deleted file mode 100644
index c0e22fe68cf..00000000000
--- a/apps/files/l10n/es_PE.js
+++ /dev/null
@@ -1,166 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar lista en grilla",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Upload cancelled." : "Carga cancelada.",
- "Processing files …" : "Procesando archivos ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "An unknown error has occurred" : "Ocurrió un error desconicido ",
- "File could not be uploaded" : "No pudo cargarse el archivo",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "Carga de este archvio no soportado",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Operation is blocked by access control" : "Operación bloqueada por el control de acceso",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Choose target folder" : "Seleccione carpeta destino",
- "Open" : "Abrir",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Leave this share" : "Salir de este compartido",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Please select tag(s) to add to the selection" : "Favor seleccione etiqueta(s) para agregar a selección",
- "Apply tag(s) to selection" : "Aplicar etiqueta(s) a selección",
- "Select directory \"{dirName}\"" : "Seleccione carpeta \"{dirName}\"",
- "Select file \"{fileName}\"" : "Seleccione archivo \"{fileName}\"",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "copy" : "copiar",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferente. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Could not fetch file details \"{file}\"" : "No se pudo recuperar detalles de archivo \"{file}\"",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "Ingrese al menos dos caracteres para buscar en otras carpetas",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "You do not have permission to upload or create files here" : "No tiene permiso para crear o cargar archivos aquí",
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "Select file range" : "Seleccione rango de archivos",
- "{used}%" : "{used}%",
- "{used} of {quota} used" : "{used} de {quota} usado",
- "{used} used" : "{used} usado",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "\"/\" no permitido dentro de nombre",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "You don’t have permission to upload or create files here" : "No cuentas con los permisos para cargar o crear archivos aquí",
- "Folder name" : "Nombre de la carpeta",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Your storage is full, files can not be updated or synced anymore!" : "Tu espacio está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "Add" : "Guardar",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Unshare" : "Dejar de compartir",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Cancel" : "Cancelar",
- "Deleted files" : "Archivos borrados",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_PE.json b/apps/files/l10n/es_PE.json
deleted file mode 100644
index b02c5b432de..00000000000
--- a/apps/files/l10n/es_PE.json
+++ /dev/null
@@ -1,164 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar lista en grilla",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Upload cancelled." : "Carga cancelada.",
- "Processing files …" : "Procesando archivos ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "An unknown error has occurred" : "Ocurrió un error desconicido ",
- "File could not be uploaded" : "No pudo cargarse el archivo",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "Carga de este archvio no soportado",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Operation is blocked by access control" : "Operación bloqueada por el control de acceso",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Choose target folder" : "Seleccione carpeta destino",
- "Open" : "Abrir",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Leave this share" : "Salir de este compartido",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Please select tag(s) to add to the selection" : "Favor seleccione etiqueta(s) para agregar a selección",
- "Apply tag(s) to selection" : "Aplicar etiqueta(s) a selección",
- "Select directory \"{dirName}\"" : "Seleccione carpeta \"{dirName}\"",
- "Select file \"{fileName}\"" : "Seleccione archivo \"{fileName}\"",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "copy" : "copiar",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferente. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Could not fetch file details \"{file}\"" : "No se pudo recuperar detalles de archivo \"{file}\"",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "Ingrese al menos dos caracteres para buscar en otras carpetas",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "You do not have permission to upload or create files here" : "No tiene permiso para crear o cargar archivos aquí",
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "Select file range" : "Seleccione rango de archivos",
- "{used}%" : "{used}%",
- "{used} of {quota} used" : "{used} de {quota} usado",
- "{used} used" : "{used} usado",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "\"/\" no permitido dentro de nombre",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "You don’t have permission to upload or create files here" : "No cuentas con los permisos para cargar o crear archivos aquí",
- "Folder name" : "Nombre de la carpeta",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Your storage is full, files can not be updated or synced anymore!" : "Tu espacio está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "Add" : "Guardar",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Unshare" : "Dejar de compartir",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Cancel" : "Cancelar",
- "Deleted files" : "Archivos borrados",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_PR.js b/apps/files/l10n/es_PR.js
deleted file mode 100644
index 4b5af2ffea0..00000000000
--- a/apps/files/l10n/es_PR.js
+++ /dev/null
@@ -1,137 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_PR.json b/apps/files/l10n/es_PR.json
deleted file mode 100644
index faab5900cc2..00000000000
--- a/apps/files/l10n/es_PR.json
+++ /dev/null
@@ -1,135 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_PY.js b/apps/files/l10n/es_PY.js
deleted file mode 100644
index a8bc92e54c9..00000000000
--- a/apps/files/l10n/es_PY.js
+++ /dev/null
@@ -1,156 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
- "Upload cancelled." : "Carga cancelada.",
- "Processing files …" : "Procesando archivos ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "An unknown error has occurred" : "Se presentó un error desconocido",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Operation is blocked by access control" : "La operación es bloqueada por control de acceso",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Choose target folder" : "Seleccionar carpeta destino",
- "Open" : "Abrir",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Leave this share" : "Dejar este recurso compartido",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "copy" : "copiar",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Could not fetch file details \"{file}\"" : "No fue posible obtener detalles del archivo \"{file}\"",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "Ingrese más de dos carácteres para buscar en otras carpetas",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usado",
- "{used} used" : "{used} usado",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "\"/\" no es permitido dentro del nombre de un archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "El espacio de {owner} está casi lleno ({usedSpacePercent}%).",
- "Your storage is almost full ({usedSpacePercent}%)." : "Tu espacio está casi lleno ({usedSpacePercent}%).",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_PY.json b/apps/files/l10n/es_PY.json
deleted file mode 100644
index 0f4468086f3..00000000000
--- a/apps/files/l10n/es_PY.json
+++ /dev/null
@@ -1,154 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
- "Upload cancelled." : "Carga cancelada.",
- "Processing files …" : "Procesando archivos ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "An unknown error has occurred" : "Se presentó un error desconocido",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Operation is blocked by access control" : "La operación es bloqueada por control de acceso",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Choose target folder" : "Seleccionar carpeta destino",
- "Open" : "Abrir",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Leave this share" : "Dejar este recurso compartido",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "copy" : "copiar",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Could not fetch file details \"{file}\"" : "No fue posible obtener detalles del archivo \"{file}\"",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "Ingrese más de dos carácteres para buscar en otras carpetas",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usado",
- "{used} used" : "{used} usado",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "\"/\" no es permitido dentro del nombre de un archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "El espacio de {owner} está casi lleno ({usedSpacePercent}%).",
- "Your storage is almost full ({usedSpacePercent}%)." : "Tu espacio está casi lleno ({usedSpacePercent}%).",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_SV.js b/apps/files/l10n/es_SV.js
deleted file mode 100644
index 14144c28f96..00000000000
--- a/apps/files/l10n/es_SV.js
+++ /dev/null
@@ -1,153 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_SV.json b/apps/files/l10n/es_SV.json
deleted file mode 100644
index 638b1a208ca..00000000000
--- a/apps/files/l10n/es_SV.json
+++ /dev/null
@@ -1,151 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "New" : "Nuevo",
- "{used} of {quota} used" : "{used} de {quota} usados",
- "{used} used" : "{used} usados",
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Create new folder" : "Crear nueva carpeta",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "Favorites" : "Favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
- "You deleted {file}" : "Borraste {file}",
- "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Folder name" : "Nombre de la carpeta",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Select all" : "Seleccionar todo",
- "File not found" : "Archivo no encontrado",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "Go back" : "Regresar",
- "Shared by link" : "Compartido por liga",
- "Shared" : "Compartido",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "All files" : "Todos los archivos",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Papelera",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Choose" : "Seleccionar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/es_UY.js b/apps/files/l10n/es_UY.js
deleted file mode 100644
index 4b5af2ffea0..00000000000
--- a/apps/files/l10n/es_UY.js
+++ /dev/null
@@ -1,137 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/es_UY.json b/apps/files/l10n/es_UY.json
deleted file mode 100644
index faab5900cc2..00000000000
--- a/apps/files/l10n/es_UY.json
+++ /dev/null
@@ -1,135 +0,0 @@
-{ "translations": {
- "File could not be found" : "No fue posible encontrar el archivo",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "Tags" : "Etiquetas",
- "Home" : "Inicio",
- "Close" : "Cerrar",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"",
- "Upload cancelled." : "Carga cancelada.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estás cargando {size1} pero sólo cuentas con {size2} disponible",
- "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe",
- "Not enough free space" : "No cuentas con suficiente espacio libre",
- "Uploading …" : "Cargando...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Target folder does not exist any more" : "La carpeta destino ya no existe",
- "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}",
- "Actions" : "Acciones",
- "Rename" : "Renombrar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete file" : "Borrar archivo",
- "Delete folder" : "Borrar carpeta",
- "Disconnect storage" : "Desconectar almacenamiento",
- "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
- "Files" : "Archivos",
- "Details" : "Detalles",
- "Pending" : "Pendiente",
- "Unable to determine date" : "No fue posible determinar la fecha",
- "This operation is forbidden" : "Esta operación está prohibida",
- "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador",
- "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ",
- "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe",
- "Could not move \"{file}\"" : "No fue posible mover \"{file}\"",
- "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe",
- "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"",
- "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}",
- "{newName} already exists" : "{newName} ya existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ",
- "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"",
- "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe",
- "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe",
- "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado",
- "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas","%n carpetas"],
- "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"],
- "{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos","incluyendo %n ocultos"],
- "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos","Cargando %n archivos"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ",
- "File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
- "View in folder" : "Ver en la carpeta",
- "Path" : "Ruta",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Marcado como favorito",
- "Favorite" : "Favorito",
- "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)",
- "New folder" : "Carpeta nueva",
- "Upload file" : "Cargar archivo",
- "Recent" : "Reciente",
- "Not favorited" : "No es un favorito",
- "Remove from favorites" : "Eliminar de favoritos",
- "Add to favorites" : "Agregar a favoritos",
- "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta",
- "Added to favorites" : "Agregado a los favoritos",
- "Removed from favorites" : "Eliminado de los favoritos",
- "You added {file} to your favorites" : "Agregaste {file} a tus favoritos",
- "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos",
- "File changes" : "Cambios al archivo",
- "Created by {user}" : "Creado por {user}",
- "Changed by {user}" : "Cambiado por {user}",
- "Deleted by {user}" : "Borrado por {user}",
- "Restored by {user}" : "Restaurado por {user}",
- "Renamed by {user}" : "Renombrado por {user}",
- "Moved by {user}" : "Movido por {user}",
- "\"remote user\"" : "\"usuario remoto\"",
- "You created {file}" : "Creaste {file}",
- "{user} created {file}" : "{user} creó {file}",
- "{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
- "You changed {file}" : "Cambiaste {file}",
- "{user} changed {file}" : "{user} cambió {file}",
- "You deleted {file}" : "Borraste {file}",
- "{user} deleted {file}" : "{user} borró {file}",
- "You restored {file}" : "Restauraste {file}",
- "{user} restored {file}" : "{user} restauró {file}",
- "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}",
- "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>",
- "All files" : "Todos los archivos",
- "Upload (max. %s)" : "Cargar (max. %s)",
- "Accept" : "Aceptar",
- "in %s" : "en %s",
- "Select all" : "Seleccionar todo",
- "Change" : "Cambiar",
- "Unknown error" : "Se presentó un error desconocido",
- "No files in here" : "No hay archivos aquí",
- "Go back" : "Regresar",
- "Show hidden files" : "Mostrar archivos ocultos",
- "Additional settings" : "Configuraciones adicionales",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Create" : "Crear",
- "Delete permanently" : "Borrar permanentemente",
- "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Upload too large" : "La carga es demasido grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
- "No favorites yet" : "Aún no hay favoritos",
- "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ",
- "Shares" : "Elementos compartidos",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Shared by link" : "Compartido por liga",
- "Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
- "Storage invalid" : "El almacenamiento es inválido",
- "Unlimited" : "Ilimitado",
- "Cancel" : "Cancelar",
- "%s used" : "%s usado",
- "%1$s of %2$s used" : "%1$s de %2$s usados",
- "Deleted files" : "Archivos borrados"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index bfd02fbac25..801501c12d3 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -29,14 +29,14 @@ OC.L10N.register(
"{user} deleted an encrypted file in {file}" : "Kasutaja {user} kustutas krüpteeritud faili {file}",
"You restored {file}" : "Sa taastasid faili {file}",
"{user} restored {file}" : "Kasutaja {user} taastas faili {file}",
- "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Sa nimetasid faili {oldfile} (peidetud) ümber, uus nimi {newfile} (peidetud)",
- "You renamed {oldfile} (hidden) to {newfile}" : "Sa nimetasid faili {oldfile} (peidetud) ümber, uus nimi {newfile}",
- "You renamed {oldfile} to {newfile} (hidden)" : "Sa nimetasid faili {oldfile} ümber, uus nimi {newfile} (peidetud)",
- "You renamed {oldfile} to {newfile}" : "Sa nimetasid faili {oldfile} ümber, uus nimi {newfile}",
- "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "Kasutaja {user} nimetas faili {oldfile} (peidetud) ümber, uus nimi {newfile} (peidetud)",
- "{user} renamed {oldfile} (hidden) to {newfile}" : "Kasutaja {user} nimetas faili {oldfile} (peidetud) ümber, uus nimi {newfile}",
- "{user} renamed {oldfile} to {newfile} (hidden)" : "Kasutaja {user} nimetas faili {oldfile} ümber, uus nimi {newfile} (peidetud)",
- "{user} renamed {oldfile} to {newfile}" : "Kasutaja {user} nimetas faili {oldfile} ümber, uus nimi {newfile}",
+ "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Sa muutsid „{oldfile}“ (peidetud) faili nime, uus nimi on „{newfile}“ (peidetud)",
+ "You renamed {oldfile} (hidden) to {newfile}" : "Sa muutsid „{oldfile}“ (peidetud) faili nime, uus nimi on „{newfile}“",
+ "You renamed {oldfile} to {newfile} (hidden)" : "Sa muutsid „{oldfile}“ faili nime, uus nimi on „{newfile}“ (peidetud)",
+ "You renamed {oldfile} to {newfile}" : "Sa muutsid „{oldfile}“ faili nime, uus nimi on „{newfile}“",
+ "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "Kasutaja {user} muutis „{oldfile}“ (peidetud) faili nime, uus nimi on „{newfile}“ (peidetud)",
+ "{user} renamed {oldfile} (hidden) to {newfile}" : "Kasutaja {user} muutis (peidetud) „{oldfile}“ faili nime, uus nimi on „{newfile}“",
+ "{user} renamed {oldfile} to {newfile} (hidden)" : "Kasutaja {user} muutis „{oldfile}“ faili nime, uus nimi on „{newfile}“ (peidetud)",
+ "{user} renamed {oldfile} to {newfile}" : "Kasutaja {user} muutis „{oldfile}“ faili nime, uus nimi on „{newfile}“",
"You moved {oldfile} to {newfile}" : "Sa liigutasid faili: {oldfile} nüüd {newfile}",
"{user} moved {oldfile} to {newfile}" : "{user} liigutas faili: {oldfile} nüüd {newfile}",
"A file has been added to or removed from your <strong>favorites</strong>" : "Fail lisati su <strong>lemmikutesse</strong> või eemaldati sealt",
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Lemmikfailid",
"No favorites" : "Lemmikuid pole",
"More favorites" : "Veel lemmikuid",
- "Upload (max. %s)" : "Üleslaadimine (max. %s)",
"Accept" : "Nõustu",
"Reject" : "Keeldu",
"Incoming ownership transfer from {user}" : "Saaduv omandi üleandmine kasutajalt {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Üleantud kasutajalt %1$s %2$s",
"Files compatibility" : "Failide ühilduvus",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Luba failinimede piiramine tagamaks, et sünkroniseerimine toimib kõikide platvormide klientide vahel. Vaikimisi on lubatud kõik POSIX-i standardile vastavad failinimed (seda järgivad Linux ja macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Kui võtad kasutusele Windowsiga ühilduvad failinimed, siis olemasolevaid mitteühilduvaid faile ei saa enam muuta, aga faili omanik saab failinime muuta ühilduvaks.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Lisaks on peale selle seadistuse kasutuselevõtmist võimalik kõik mitteühilduvad failid automaatselt ära muuta. Asjakohast teavet leiad kasutusjuhendist occ-käsku kirjeldavast peatükist.",
"Enforce Windows compatibility" : "Kasuta ühilduvust Windowsiga",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Sellega blokeerid niisuguste failinimede kasutamise, mis Windowsis ei toimiks. See tähendab mõnede nimede ja tähemärkide keelamist. Aga see seadistus ei jõusta suur- ja väiketähtede kasutust.",
"File Management" : "Failihaldus",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Vigane failinimi.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Failinimi on muutunud „{oldName}“ ⇨ „{newName}“",
"Rename file" : "Muuda failinime",
+ "Folder" : "Kaust",
+ "Unknown file type" : "Tundmatu failitüüp",
+ "{ext} image" : "{ext} pilt",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} helifail",
+ "{ext} text" : "{ext} tekst",
"Pending" : "Ootel",
"Unknown date" : "Tundmatu kuupäev",
"Clear filter" : "Tühjenda filter",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Ridade koondkokkuvõte",
"Toggle selection for all files and folders" : "Lülita kõikide failide ja kaustade valik sisse/välja",
"Name" : "Nimi",
+ "File type" : "Failitüüp",
"Size" : "Suurus",
"\"{displayName}\" failed on some elements" : "„{displayName}“ ei toiminud mõne objekti puhul",
"\"{displayName}\" batch action executed successfully" : "Pakktöötlus õnnestus: „{displayName}“",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Võid kasutada nuppudega veerupäised järjestamiseks.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Jõudluse mõttes ei ole kogu loend esimesel hetkel tervikuna nähtav. Uued failid lisanduvad sedamööda, kuid sa loendis edasi liigud.",
"File not found" : "Faili ei leitud",
- "{count} selected" : "{count} valitud",
+ "_{count} selected_::_{count} selected_" : ["{count} valitud","{count} valitud"],
"{usedQuotaByte} used" : "{usedQuotaByte} kasutusel",
"{used} of {quota} used" : "{used} / {quota} kasutusel",
"{relative}% used" : "{relative}% kasutusel",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Järjesta lemmikud esimesena",
"Sort folders before files" : "Järjesta kaustad enne faile",
"Show hidden files" : "Näita peidetud faile",
+ "Show file type column" : "Näita failitüübi veergu",
"Crop image previews" : "Kadreeri piltide eelvaated",
"Enable the grid view" : "Võta kasutusele ruudustikuvaade",
"Enable folder tree" : "Võta kasutusele kaustapuu",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Näita neid otseteid",
"You" : "Sina",
"Shared multiple times with different people" : "Jagatud mitu korda eri kasutajate poolt",
+ "Unable to change the favorite state of the file" : "Faili olekut lemmikuna ei õnnestu muuta",
"Error while loading the file data" : "Viga faili andmete laadimisel",
"Owner" : "Omanik",
"Remove from favorites" : "Eemalda lemmikutest",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sa oled kustutamas {count} objekti","Sa oled kustutamas {count} objekti"],
"Confirm deletion" : "Kinnita kustutamine",
"Cancel" : "Loobu",
+ "Download" : "Laadi alla",
"Moving \"{source}\" to \"{destination}\" …" : "Teisaldan „{source}“ → „{destination}“…",
"Copying \"{source}\" to \"{destination}\" …" : "Kopeerin „{source}“ → „{destination}“…",
+ "Destination is not a folder" : "Sihtasukoht pole kaust",
+ "This file/folder is already in that directory" : "See fail või kaust juba asub selles kaustas",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Sa ei saa faili või kausta iseendaks teisaldada ega teisaldada kausta iseenda alamkausta",
"(copy)" : "(koopia)",
"(copy %n)" : "(%n koopia)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Teisaldamine või kopeerimine on katkestatud",
"Open folder {displayName}" : "Ava kaust {displayName}",
"Open in Files" : "Ava failirakenduses",
+ "Open locally" : "Ava kohalikust andmeruumist",
+ "Failed to redirect to client" : "Kliendi ümbersuunamine ei õnnestunud",
"Open file locally" : "Ava fail kohalikus seadmes",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Fail peaks nüüd sinu seadmes või arvutis olema avatud. Kui see nii pole, siis palun kontrolli, et töölauarakendus on paigaldatud.",
"Retry and close" : "Proovi uuesti ja sulge",
"Open online" : "Ava võrgust",
- "Failed to redirect to client" : "Kliendi ümbersuunamine ebaõnnestus",
- "Open locally" : "Ava kohalikust andmeruumist",
"Rename" : "Muuda nime",
"Open details" : "Ava üksikasjad",
"View in folder" : "Vaata kaustas",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "Failide teisaldamine õnnestus",
"Conflicts resolution skipped" : "Andmekonfilkti lahendamine jäi vahele",
"Upload cancelled" : "Üleslaadimine on katkestatud",
+ "Could not rename \"{oldName}\", it does not exist any more" : "„{oldName}“ faili nime muutmine ei õnnestunud, seda pole enam olemas",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "„{newName}“ nimi on juba „{dir}“ kaustas kasutusel. Palun vali teine nimi.",
+ "Could not rename \"{oldName}\"" : "„{oldName}“ faili nime muutmine ei õnnestunud",
"This operation is forbidden" : "See toiming on keelatud",
"This directory is unavailable, please check the logs or contact the administrator" : "See kaust pole saadaval, palun kontrolli logifaile või võta ühendust administraatoriga",
"Storage is temporarily not available" : "Salvestusruum pole ajutiselt kättesaadav",
@@ -347,13 +363,12 @@ OC.L10N.register(
"Recent" : "Hiljutised",
"List of recently modified files and folders." : "Hiljuti muudetud failide ja kaustade loend.",
"No recently modified files" : "Hiljuti muudetud faile pole.",
- "Files and folders you recently modified will show up here." : "Failid ja kaustad, mis oled hiljuti muutnud, ilmuvad siia.",
+ "Files and folders you recently modified will show up here." : "Failid ja kaustad, mida oled hiljuti muutnud, ilmuvad siia.",
"No entries found in this folder" : "Selles kaustast ei leitud kirjeid",
"Select all" : "Vali kõik",
"Upload too large" : "Üleslaadimine on liiga suur",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Failid, mida sa proovid üles laadida, ületavad serveri poolt üleslaaditavatele failidele määratud maksimaalse suuruse.",
"File could not be found" : "Faili ei leitud",
- "Download" : "Laadi alla",
"Show list view" : "Näita loendivaadet",
"Show grid view" : "Näita ruudustikuvaadet",
"Close" : "Sulge",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} kopeeritud kausta {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ja {nbfiles} teist faili kopeeritud kausta {destination}",
"{newName} already exists" : "{newName} on juba olemas",
- "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" ümbernimetamine ebaõnnestus, seda pole enam olemas",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{targetName}\" on juba \"{dir}\" kaustas kasutusel. Palun vali teine nimi.",
- "Could not rename \"{fileName}\"" : "\"{fileName}\" ümbernimetamine ebaõnnestus",
"Could not create file \"{file}\"" : "Faili \"{file}\" loomine ebaõnnestus",
"Could not create file \"{file}\" because it already exists" : "Faili \"{file}\" loomine ebaõnnestus, sest see on juba olemas",
"Could not create folder \"{dir}\" because it already exists" : "Kausta \"{dir}\" loomine ebaõnnestus, sest see on juba olemas",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Otselink on kopeeritud (toimib ainult nende kasutajate puhul, kellel on ligipääs sellele failile/kaustale)",
"Path" : "Asukoht",
"_%n byte_::_%n bytes_" : ["%n bait","%n baiti"],
- "Favorited" : "Lemmikud",
+ "Favored" : "Märgitud lemmikuks",
+ "Favor" : "Märgi lemmikuks",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopeeri otselink (töötab ainult nende kasutajate puhul, kellel on ligipääs sellele failile/kaustale)",
"Upload file" : "Laadi fail üles",
- "Not favorited" : "Lemmikuks lisamata",
+ "Not favored" : "Pole märgitud lemmikuks",
"An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge",
- "You don't have permission to upload or create files here." : "Sul puuduvad õigused siia failide üleslaadimiseks või loomiseks.",
- "Storage informations" : "Andmeruumi teave",
- "Choose file" : "Vali fail",
- "Go to the previous folder" : "Mine eelmisesse kausta",
- "Open the files app settings" : "Ava failirakenduse seadistused",
- "Unable to change the favourite state of the file" : "Faili olekut lemmikuna ei õnnestu muuta",
- "Edit file locally" : "Muuda faili kohalikus seadmes",
- "Edit online" : "Muuda võrgus",
- "Create new templates folder" : "Loo uus mallide kaust",
+ "Upload (max. %s)" : "Üleslaadimine (max. %s)",
+ "Submitting fields…" : "Saadan välju…",
+ "Filter filenames…" : "Otsi failinimesid…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kaust","{folderCount} kausta"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fail","{fileCount} faili"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fail ja {folderCount} kaust","1 fail ja {folderCount} kausta"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fail ja 1 kaust","{fileCount} faili ja 1 kaust"],
"{fileCount} files and {folderCount} folders" : "{fileCount} faili ja {folderCount} kausta",
- "List of favorites files and folders." : "Lemmikfailide ja kaustade loend.",
"Personal Files" : "Isiklikud Failid",
"Text file" : "Tekstifail",
"New text file.txt" : "Uus tekstifail.txt",
- "Favored" : "Märgitud lemmikuks",
- "Favor" : "Märgi lemmikuks",
- "Not favored" : "Pole märgitud lemmikuks",
- "Submitting fields…" : "Saadan välju…",
- "Filter filenames…" : "Otsi failinimesid…",
- "{count} files could not be converted" : "{count} faili ei õnnestunud teisendada",
- "{count} files successfully converted" : "{count} faili teisendamine õnnestus"
+ "%1$s (renamed)" : "%1$s (nimi on muudetud)",
+ "renamed file" : "muudetud nimega fail",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Kui võtad kasutusele Windowsiga ühilduvad failinimed, siis olemasolevad mitteühilduvaid faile ei saa enam muuta, aga faili omanik saab failinime muuta ühilduvaks."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index 719433481f8..16ec2e6a3fd 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -27,14 +27,14 @@
"{user} deleted an encrypted file in {file}" : "Kasutaja {user} kustutas krüpteeritud faili {file}",
"You restored {file}" : "Sa taastasid faili {file}",
"{user} restored {file}" : "Kasutaja {user} taastas faili {file}",
- "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Sa nimetasid faili {oldfile} (peidetud) ümber, uus nimi {newfile} (peidetud)",
- "You renamed {oldfile} (hidden) to {newfile}" : "Sa nimetasid faili {oldfile} (peidetud) ümber, uus nimi {newfile}",
- "You renamed {oldfile} to {newfile} (hidden)" : "Sa nimetasid faili {oldfile} ümber, uus nimi {newfile} (peidetud)",
- "You renamed {oldfile} to {newfile}" : "Sa nimetasid faili {oldfile} ümber, uus nimi {newfile}",
- "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "Kasutaja {user} nimetas faili {oldfile} (peidetud) ümber, uus nimi {newfile} (peidetud)",
- "{user} renamed {oldfile} (hidden) to {newfile}" : "Kasutaja {user} nimetas faili {oldfile} (peidetud) ümber, uus nimi {newfile}",
- "{user} renamed {oldfile} to {newfile} (hidden)" : "Kasutaja {user} nimetas faili {oldfile} ümber, uus nimi {newfile} (peidetud)",
- "{user} renamed {oldfile} to {newfile}" : "Kasutaja {user} nimetas faili {oldfile} ümber, uus nimi {newfile}",
+ "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Sa muutsid „{oldfile}“ (peidetud) faili nime, uus nimi on „{newfile}“ (peidetud)",
+ "You renamed {oldfile} (hidden) to {newfile}" : "Sa muutsid „{oldfile}“ (peidetud) faili nime, uus nimi on „{newfile}“",
+ "You renamed {oldfile} to {newfile} (hidden)" : "Sa muutsid „{oldfile}“ faili nime, uus nimi on „{newfile}“ (peidetud)",
+ "You renamed {oldfile} to {newfile}" : "Sa muutsid „{oldfile}“ faili nime, uus nimi on „{newfile}“",
+ "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "Kasutaja {user} muutis „{oldfile}“ (peidetud) faili nime, uus nimi on „{newfile}“ (peidetud)",
+ "{user} renamed {oldfile} (hidden) to {newfile}" : "Kasutaja {user} muutis (peidetud) „{oldfile}“ faili nime, uus nimi on „{newfile}“",
+ "{user} renamed {oldfile} to {newfile} (hidden)" : "Kasutaja {user} muutis „{oldfile}“ faili nime, uus nimi on „{newfile}“ (peidetud)",
+ "{user} renamed {oldfile} to {newfile}" : "Kasutaja {user} muutis „{oldfile}“ faili nime, uus nimi on „{newfile}“",
"You moved {oldfile} to {newfile}" : "Sa liigutasid faili: {oldfile} nüüd {newfile}",
"{user} moved {oldfile} to {newfile}" : "{user} liigutas faili: {oldfile} nüüd {newfile}",
"A file has been added to or removed from your <strong>favorites</strong>" : "Fail lisati su <strong>lemmikutesse</strong> või eemaldati sealt",
@@ -52,7 +52,6 @@
"Favorite files" : "Lemmikfailid",
"No favorites" : "Lemmikuid pole",
"More favorites" : "Veel lemmikuid",
- "Upload (max. %s)" : "Üleslaadimine (max. %s)",
"Accept" : "Nõustu",
"Reject" : "Keeldu",
"Incoming ownership transfer from {user}" : "Saaduv omandi üleandmine kasutajalt {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Üleantud kasutajalt %1$s %2$s",
"Files compatibility" : "Failide ühilduvus",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Luba failinimede piiramine tagamaks, et sünkroniseerimine toimib kõikide platvormide klientide vahel. Vaikimisi on lubatud kõik POSIX-i standardile vastavad failinimed (seda järgivad Linux ja macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Kui võtad kasutusele Windowsiga ühilduvad failinimed, siis olemasolevaid mitteühilduvaid faile ei saa enam muuta, aga faili omanik saab failinime muuta ühilduvaks.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Lisaks on peale selle seadistuse kasutuselevõtmist võimalik kõik mitteühilduvad failid automaatselt ära muuta. Asjakohast teavet leiad kasutusjuhendist occ-käsku kirjeldavast peatükist.",
"Enforce Windows compatibility" : "Kasuta ühilduvust Windowsiga",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Sellega blokeerid niisuguste failinimede kasutamise, mis Windowsis ei toimiks. See tähendab mõnede nimede ja tähemärkide keelamist. Aga see seadistus ei jõusta suur- ja väiketähtede kasutust.",
"File Management" : "Failihaldus",
@@ -93,6 +94,12 @@
"Invalid filename." : "Vigane failinimi.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Failinimi on muutunud „{oldName}“ ⇨ „{newName}“",
"Rename file" : "Muuda failinime",
+ "Folder" : "Kaust",
+ "Unknown file type" : "Tundmatu failitüüp",
+ "{ext} image" : "{ext} pilt",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} helifail",
+ "{ext} text" : "{ext} tekst",
"Pending" : "Ootel",
"Unknown date" : "Tundmatu kuupäev",
"Clear filter" : "Tühjenda filter",
@@ -103,6 +110,7 @@
"Total rows summary" : "Ridade koondkokkuvõte",
"Toggle selection for all files and folders" : "Lülita kõikide failide ja kaustade valik sisse/välja",
"Name" : "Nimi",
+ "File type" : "Failitüüp",
"Size" : "Suurus",
"\"{displayName}\" failed on some elements" : "„{displayName}“ ei toiminud mõne objekti puhul",
"\"{displayName}\" batch action executed successfully" : "Pakktöötlus õnnestus: „{displayName}“",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Võid kasutada nuppudega veerupäised järjestamiseks.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Jõudluse mõttes ei ole kogu loend esimesel hetkel tervikuna nähtav. Uued failid lisanduvad sedamööda, kuid sa loendis edasi liigud.",
"File not found" : "Faili ei leitud",
- "{count} selected" : "{count} valitud",
+ "_{count} selected_::_{count} selected_" : ["{count} valitud","{count} valitud"],
"{usedQuotaByte} used" : "{usedQuotaByte} kasutusel",
"{used} of {quota} used" : "{used} / {quota} kasutusel",
"{relative}% used" : "{relative}% kasutusel",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Järjesta lemmikud esimesena",
"Sort folders before files" : "Järjesta kaustad enne faile",
"Show hidden files" : "Näita peidetud faile",
+ "Show file type column" : "Näita failitüübi veergu",
"Crop image previews" : "Kadreeri piltide eelvaated",
"Enable the grid view" : "Võta kasutusele ruudustikuvaade",
"Enable folder tree" : "Võta kasutusele kaustapuu",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "Näita neid otseteid",
"You" : "Sina",
"Shared multiple times with different people" : "Jagatud mitu korda eri kasutajate poolt",
+ "Unable to change the favorite state of the file" : "Faili olekut lemmikuna ei õnnestu muuta",
"Error while loading the file data" : "Viga faili andmete laadimisel",
"Owner" : "Omanik",
"Remove from favorites" : "Eemalda lemmikutest",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Sa oled kustutamas {count} objekti","Sa oled kustutamas {count} objekti"],
"Confirm deletion" : "Kinnita kustutamine",
"Cancel" : "Loobu",
+ "Download" : "Laadi alla",
"Moving \"{source}\" to \"{destination}\" …" : "Teisaldan „{source}“ → „{destination}“…",
"Copying \"{source}\" to \"{destination}\" …" : "Kopeerin „{source}“ → „{destination}“…",
+ "Destination is not a folder" : "Sihtasukoht pole kaust",
+ "This file/folder is already in that directory" : "See fail või kaust juba asub selles kaustas",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Sa ei saa faili või kausta iseendaks teisaldada ega teisaldada kausta iseenda alamkausta",
"(copy)" : "(koopia)",
"(copy %n)" : "(%n koopia)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Teisaldamine või kopeerimine on katkestatud",
"Open folder {displayName}" : "Ava kaust {displayName}",
"Open in Files" : "Ava failirakenduses",
+ "Open locally" : "Ava kohalikust andmeruumist",
+ "Failed to redirect to client" : "Kliendi ümbersuunamine ei õnnestunud",
"Open file locally" : "Ava fail kohalikus seadmes",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Fail peaks nüüd sinu seadmes või arvutis olema avatud. Kui see nii pole, siis palun kontrolli, et töölauarakendus on paigaldatud.",
"Retry and close" : "Proovi uuesti ja sulge",
"Open online" : "Ava võrgust",
- "Failed to redirect to client" : "Kliendi ümbersuunamine ebaõnnestus",
- "Open locally" : "Ava kohalikust andmeruumist",
"Rename" : "Muuda nime",
"Open details" : "Ava üksikasjad",
"View in folder" : "Vaata kaustas",
@@ -320,6 +333,9 @@
"Files moved successfully" : "Failide teisaldamine õnnestus",
"Conflicts resolution skipped" : "Andmekonfilkti lahendamine jäi vahele",
"Upload cancelled" : "Üleslaadimine on katkestatud",
+ "Could not rename \"{oldName}\", it does not exist any more" : "„{oldName}“ faili nime muutmine ei õnnestunud, seda pole enam olemas",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "„{newName}“ nimi on juba „{dir}“ kaustas kasutusel. Palun vali teine nimi.",
+ "Could not rename \"{oldName}\"" : "„{oldName}“ faili nime muutmine ei õnnestunud",
"This operation is forbidden" : "See toiming on keelatud",
"This directory is unavailable, please check the logs or contact the administrator" : "See kaust pole saadaval, palun kontrolli logifaile või võta ühendust administraatoriga",
"Storage is temporarily not available" : "Salvestusruum pole ajutiselt kättesaadav",
@@ -345,13 +361,12 @@
"Recent" : "Hiljutised",
"List of recently modified files and folders." : "Hiljuti muudetud failide ja kaustade loend.",
"No recently modified files" : "Hiljuti muudetud faile pole.",
- "Files and folders you recently modified will show up here." : "Failid ja kaustad, mis oled hiljuti muutnud, ilmuvad siia.",
+ "Files and folders you recently modified will show up here." : "Failid ja kaustad, mida oled hiljuti muutnud, ilmuvad siia.",
"No entries found in this folder" : "Selles kaustast ei leitud kirjeid",
"Select all" : "Vali kõik",
"Upload too large" : "Üleslaadimine on liiga suur",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Failid, mida sa proovid üles laadida, ületavad serveri poolt üleslaaditavatele failidele määratud maksimaalse suuruse.",
"File could not be found" : "Faili ei leitud",
- "Download" : "Laadi alla",
"Show list view" : "Näita loendivaadet",
"Show grid view" : "Näita ruudustikuvaadet",
"Close" : "Sulge",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "{origin} kopeeritud kausta {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ja {nbfiles} teist faili kopeeritud kausta {destination}",
"{newName} already exists" : "{newName} on juba olemas",
- "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" ümbernimetamine ebaõnnestus, seda pole enam olemas",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{targetName}\" on juba \"{dir}\" kaustas kasutusel. Palun vali teine nimi.",
- "Could not rename \"{fileName}\"" : "\"{fileName}\" ümbernimetamine ebaõnnestus",
"Could not create file \"{file}\"" : "Faili \"{file}\" loomine ebaõnnestus",
"Could not create file \"{file}\" because it already exists" : "Faili \"{file}\" loomine ebaõnnestus, sest see on juba olemas",
"Could not create folder \"{dir}\" because it already exists" : "Kausta \"{dir}\" loomine ebaõnnestus, sest see on juba olemas",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Otselink on kopeeritud (toimib ainult nende kasutajate puhul, kellel on ligipääs sellele failile/kaustale)",
"Path" : "Asukoht",
"_%n byte_::_%n bytes_" : ["%n bait","%n baiti"],
- "Favorited" : "Lemmikud",
+ "Favored" : "Märgitud lemmikuks",
+ "Favor" : "Märgi lemmikuks",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopeeri otselink (töötab ainult nende kasutajate puhul, kellel on ligipääs sellele failile/kaustale)",
"Upload file" : "Laadi fail üles",
- "Not favorited" : "Lemmikuks lisamata",
+ "Not favored" : "Pole märgitud lemmikuks",
"An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge",
- "You don't have permission to upload or create files here." : "Sul puuduvad õigused siia failide üleslaadimiseks või loomiseks.",
- "Storage informations" : "Andmeruumi teave",
- "Choose file" : "Vali fail",
- "Go to the previous folder" : "Mine eelmisesse kausta",
- "Open the files app settings" : "Ava failirakenduse seadistused",
- "Unable to change the favourite state of the file" : "Faili olekut lemmikuna ei õnnestu muuta",
- "Edit file locally" : "Muuda faili kohalikus seadmes",
- "Edit online" : "Muuda võrgus",
- "Create new templates folder" : "Loo uus mallide kaust",
+ "Upload (max. %s)" : "Üleslaadimine (max. %s)",
+ "Submitting fields…" : "Saadan välju…",
+ "Filter filenames…" : "Otsi failinimesid…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kaust","{folderCount} kausta"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fail","{fileCount} faili"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fail ja {folderCount} kaust","1 fail ja {folderCount} kausta"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fail ja 1 kaust","{fileCount} faili ja 1 kaust"],
"{fileCount} files and {folderCount} folders" : "{fileCount} faili ja {folderCount} kausta",
- "List of favorites files and folders." : "Lemmikfailide ja kaustade loend.",
"Personal Files" : "Isiklikud Failid",
"Text file" : "Tekstifail",
"New text file.txt" : "Uus tekstifail.txt",
- "Favored" : "Märgitud lemmikuks",
- "Favor" : "Märgi lemmikuks",
- "Not favored" : "Pole märgitud lemmikuks",
- "Submitting fields…" : "Saadan välju…",
- "Filter filenames…" : "Otsi failinimesid…",
- "{count} files could not be converted" : "{count} faili ei õnnestunud teisendada",
- "{count} files successfully converted" : "{count} faili teisendamine õnnestus"
+ "%1$s (renamed)" : "%1$s (nimi on muudetud)",
+ "renamed file" : "muudetud nimega fail",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Kui võtad kasutusele Windowsiga ühilduvad failinimed, siis olemasolevad mitteühilduvaid faile ei saa enam muuta, aga faili omanik saab failinime muuta ühilduvaks."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js
index 3d4490c17f8..c556069b0b4 100644
--- a/apps/files/l10n/eu.js
+++ b/apps/files/l10n/eu.js
@@ -51,7 +51,6 @@ OC.L10N.register(
"Favorite files" : "Gogoko fitxategiak",
"No favorites" : "Gogokorik ez",
"More favorites" : "Gogoko gehiago",
- "Upload (max. %s)" : "Igo (%s gehienez)",
"Accept" : "Onartu",
"Reject" : "Ukatu",
"Incoming ownership transfer from {user}" : "{user}(r)en jabetza-transferentzia",
@@ -91,6 +90,7 @@ OC.L10N.register(
"Invalid filename." : "Fitxategi-izen baliogabea.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" \"{newName}\"(e)ra berrizendatu da.",
"Rename file" : "Berrizendatu fitxategia",
+ "Folder" : "Karpeta",
"Pending" : "Zain",
"Unknown date" : "Data ezezaguna",
"Clear filter" : "Garbitu iragazkia",
@@ -111,7 +111,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Botoiak dituzten zutabeen goiburuak ordena daitezke.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Zerrenda hau ez da guztiz ikusten errendimendu arrazoiengatik. Fitxategiak zerrendan zehar nabigatzen duten heinean bistaratuko dira.",
"File not found" : "Ez da fitxategia aurkitu",
- "{count} selected" : "{count} hautatuta",
+ "_{count} selected_::_{count} selected_" : ["{count} hautatuta","{count} hautatuta"],
"{usedQuotaByte} used" : "{usedQuotaByte} erabilita",
"{used} of {quota} used" : "{used} / {quota} erabilita",
"{relative}% used" : "%{relative} erabilita",
@@ -231,8 +231,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Elementu {count} ezabatzera zoaz"," {count} elementu ezabatzera zoaz"],
"Confirm deletion" : "Berretsi ezabaketa",
"Cancel" : "Utzi",
+ "Download" : "Deskargatu",
"Moving \"{source}\" to \"{destination}\" …" : "«{source}» «{destination}»(e)ra mugitzen",
"Copying \"{source}\" to \"{destination}\" …" : "«{source}» «{destination}»(e)ra mugitzen",
+ "Destination is not a folder" : "Helburua ez da karpeta bat",
+ "This file/folder is already in that directory" : "Fitxategi/karpeta hau dagoeneko karpeta horretan dago",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Ezin duzu fitxategi/karpeta bat berera edo bere azpikarpeta batera mugitu",
"(copy)" : "(kopiatu)",
"(copy %n)" : "(kopiatu %n)",
@@ -251,11 +254,11 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Mugitze edo kopiatze operazioa utzi da",
"Open folder {displayName}" : "Ireki {displayName} karpeta",
"Open in Files" : "Ireki Fitxategiak aplikazioan",
+ "Open locally" : "Ireki lokalean",
+ "Failed to redirect to client" : "Bezerora birbideratzeak huts egin du",
"Open file locally" : "Ireki fitxategia lokalean",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Fitxategia orain zure gailuan ireki beharko litzateke. Hala ez bada, egiaztatu mahaigaineko aplikazioa instalatuta duzula.",
"Retry and close" : "Saiatu berriro eta itxi",
- "Failed to redirect to client" : "Bezerora birbideratzeak huts egin du",
- "Open locally" : "Ireki lokalean",
"Rename" : "Berrizendatu",
"Open details" : "Ireki xehetasunak",
"View in folder" : "Ikusi karpetan",
@@ -293,6 +296,9 @@ OC.L10N.register(
"Files moved successfully" : "Fitxategiak behar bezala mugitu dira",
"Conflicts resolution skipped" : "Gatazkak konpontzea saihestu da",
"Upload cancelled" : "Igotzea bertan behera utzi da",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Ezin izan da \"{oldName}\" berrizendatu, ez da existitzen dagoeneko",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{newName}\" izena \"{dir}\" karpetan dagoeneko erabiltzen da. Mesedez aukeratu beste izen bat.",
+ "Could not rename \"{oldName}\"" : "Ezin izan da \"{oldName}\" berrizendatu ",
"This operation is forbidden" : "Eragiketa hau debekatuta dago",
"This directory is unavailable, please check the logs or contact the administrator" : "Direktorio hau ez dago erabilgarri, egiaztatu egunkariak edo jarri administratzailearekin harremanetan",
"Storage is temporarily not available" : "Biltegia ez dago erabilgarri aldi baterako",
@@ -323,7 +329,6 @@ OC.L10N.register(
"Upload too large" : "Igotzekoa handiegia da",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Igotzen saiatzen ari zaren fitxategiek zerbitzari honek onartzen duen gehienezko tamaina gainditzen dute.",
"File could not be found" : "Ezin izan da fitxategia aurkitu",
- "Download" : "Deskargatu",
"Show list view" : "Erakutsi zerrenda ikuspegia",
"Show grid view" : "Erakutsi sareta ikuspegia",
"Close" : "Itxi",
@@ -362,9 +367,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} kopiatu da {destination} barruan",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} eta beste {nbfiles} fitxategi {destination} barruan kopiatu dira",
"{newName} already exists" : "{newName} existitzen da dagoeneko",
- "Could not rename \"{fileName}\", it does not exist any more" : "Ezin izan da \"{fileName}\" berrizendatu, ez da existitzen jada",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" izena dagoeneko erabiltzen da \"{dir}\" karpetan. Aukeratu beste izen bat.",
- "Could not rename \"{fileName}\"" : "Ezin izan da \"{fileName}\" berrizendatu ",
"Could not create file \"{file}\"" : "Ezin izan da \"{file}\" fitxategia sortu",
"Could not create file \"{file}\" because it already exists" : "Ezin izan da \"{file}\" fitxategia sortu, dagoeneko existitzen delako",
"Could not create folder \"{dir}\" because it already exists" : "Ezin izan da \"{dir}\" karpeta sortu, dagoeneko existitzen delako",
@@ -397,32 +399,22 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Esteka zuzena kopiatu da (fitxategi/karpeta honetara sarbidea dutenentzat bakarrik balio du)",
"Path" : "Bidea",
"_%n byte_::_%n bytes_" : ["%n byte","%n byte"],
- "Favorited" : "Gogoko gisa markatua",
+ "Favored" : "Mesedetua",
+ "Favor" : "Mesedea",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopiatu esteka zuzena (fitxategi/karpeta honetara sarbidea dutenentzat bakarrik balio du)",
"Upload file" : "Igo fitxategia",
- "Not favorited" : "Ez da gogokoa",
+ "Not favored" : "Mesedetu gabe",
"An error occurred while trying to update the tags" : "Errore bat gertatu da etiketak eguneratzen saiatzean",
- "Storage informations" : "Biltegiaren informazioak",
- "Choose file" : "Aukeratu fitxategia",
- "Go to the previous folder" : "Joan aurreko karpetara",
- "Open the files app settings" : "Ireki Fitxategiak aplikazioaren ezarpenak",
- "Unable to change the favourite state of the file" : "Ezin da fitxategiaren gogoko egoera aldatu",
- "Edit file locally" : "Editatu fitxategia lokalean",
- "Edit online" : "Editatu sarean",
- "Create new templates folder" : "Sortu txantiloi karpeta berria",
+ "Upload (max. %s)" : "Igo (%s gehienez)",
+ "Submitting fields…" : "Eremuak bidaltzen…",
+ "Filter filenames…" : "Iragazi fitxategi-izenak...",
"_{folderCount} folder_::_{folderCount} folders_" : ["Karpeta {folderCount}","{folderCount} karpeta"],
"_{fileCount} file_::_{fileCount} files_" : ["Fitxategi {fileCount}","{fileCount} fitxategi"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["Fitxategi 1 eta karpeta {folderCount}","Fitxategi 1 eta {folderCount} karpeta"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["Fitxategi {fileCount} eta karpeta 1","{fileCount} fitxategi eta karpeta 1"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fitxategi eta {folderCount} fitxategi",
- "List of favorites files and folders." : "Fitxategi eta karpeta gogokoen zerrenda.",
"Personal Files" : "Fitxategi pertsonalak",
"Text file" : "Testu-fitxategia",
- "New text file.txt" : "Testu-fitxategi berria.txt",
- "Favored" : "Mesedetua",
- "Favor" : "Mesedea",
- "Not favored" : "Mesedetu gabe",
- "Submitting fields…" : "Eremuak bidaltzen…",
- "Filter filenames…" : "Iragazi fitxategi-izenak..."
+ "New text file.txt" : "Testu-fitxategi berria.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json
index 1d9f645f996..736ee6bedfe 100644
--- a/apps/files/l10n/eu.json
+++ b/apps/files/l10n/eu.json
@@ -49,7 +49,6 @@
"Favorite files" : "Gogoko fitxategiak",
"No favorites" : "Gogokorik ez",
"More favorites" : "Gogoko gehiago",
- "Upload (max. %s)" : "Igo (%s gehienez)",
"Accept" : "Onartu",
"Reject" : "Ukatu",
"Incoming ownership transfer from {user}" : "{user}(r)en jabetza-transferentzia",
@@ -89,6 +88,7 @@
"Invalid filename." : "Fitxategi-izen baliogabea.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" \"{newName}\"(e)ra berrizendatu da.",
"Rename file" : "Berrizendatu fitxategia",
+ "Folder" : "Karpeta",
"Pending" : "Zain",
"Unknown date" : "Data ezezaguna",
"Clear filter" : "Garbitu iragazkia",
@@ -109,7 +109,7 @@
"Column headers with buttons are sortable." : "Botoiak dituzten zutabeen goiburuak ordena daitezke.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Zerrenda hau ez da guztiz ikusten errendimendu arrazoiengatik. Fitxategiak zerrendan zehar nabigatzen duten heinean bistaratuko dira.",
"File not found" : "Ez da fitxategia aurkitu",
- "{count} selected" : "{count} hautatuta",
+ "_{count} selected_::_{count} selected_" : ["{count} hautatuta","{count} hautatuta"],
"{usedQuotaByte} used" : "{usedQuotaByte} erabilita",
"{used} of {quota} used" : "{used} / {quota} erabilita",
"{relative}% used" : "%{relative} erabilita",
@@ -229,8 +229,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Elementu {count} ezabatzera zoaz"," {count} elementu ezabatzera zoaz"],
"Confirm deletion" : "Berretsi ezabaketa",
"Cancel" : "Utzi",
+ "Download" : "Deskargatu",
"Moving \"{source}\" to \"{destination}\" …" : "«{source}» «{destination}»(e)ra mugitzen",
"Copying \"{source}\" to \"{destination}\" …" : "«{source}» «{destination}»(e)ra mugitzen",
+ "Destination is not a folder" : "Helburua ez da karpeta bat",
+ "This file/folder is already in that directory" : "Fitxategi/karpeta hau dagoeneko karpeta horretan dago",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Ezin duzu fitxategi/karpeta bat berera edo bere azpikarpeta batera mugitu",
"(copy)" : "(kopiatu)",
"(copy %n)" : "(kopiatu %n)",
@@ -249,11 +252,11 @@
"Cancelled move or copy operation" : "Mugitze edo kopiatze operazioa utzi da",
"Open folder {displayName}" : "Ireki {displayName} karpeta",
"Open in Files" : "Ireki Fitxategiak aplikazioan",
+ "Open locally" : "Ireki lokalean",
+ "Failed to redirect to client" : "Bezerora birbideratzeak huts egin du",
"Open file locally" : "Ireki fitxategia lokalean",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Fitxategia orain zure gailuan ireki beharko litzateke. Hala ez bada, egiaztatu mahaigaineko aplikazioa instalatuta duzula.",
"Retry and close" : "Saiatu berriro eta itxi",
- "Failed to redirect to client" : "Bezerora birbideratzeak huts egin du",
- "Open locally" : "Ireki lokalean",
"Rename" : "Berrizendatu",
"Open details" : "Ireki xehetasunak",
"View in folder" : "Ikusi karpetan",
@@ -291,6 +294,9 @@
"Files moved successfully" : "Fitxategiak behar bezala mugitu dira",
"Conflicts resolution skipped" : "Gatazkak konpontzea saihestu da",
"Upload cancelled" : "Igotzea bertan behera utzi da",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Ezin izan da \"{oldName}\" berrizendatu, ez da existitzen dagoeneko",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{newName}\" izena \"{dir}\" karpetan dagoeneko erabiltzen da. Mesedez aukeratu beste izen bat.",
+ "Could not rename \"{oldName}\"" : "Ezin izan da \"{oldName}\" berrizendatu ",
"This operation is forbidden" : "Eragiketa hau debekatuta dago",
"This directory is unavailable, please check the logs or contact the administrator" : "Direktorio hau ez dago erabilgarri, egiaztatu egunkariak edo jarri administratzailearekin harremanetan",
"Storage is temporarily not available" : "Biltegia ez dago erabilgarri aldi baterako",
@@ -321,7 +327,6 @@
"Upload too large" : "Igotzekoa handiegia da",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Igotzen saiatzen ari zaren fitxategiek zerbitzari honek onartzen duen gehienezko tamaina gainditzen dute.",
"File could not be found" : "Ezin izan da fitxategia aurkitu",
- "Download" : "Deskargatu",
"Show list view" : "Erakutsi zerrenda ikuspegia",
"Show grid view" : "Erakutsi sareta ikuspegia",
"Close" : "Itxi",
@@ -360,9 +365,6 @@
"Copied {origin} inside {destination}" : "{origin} kopiatu da {destination} barruan",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} eta beste {nbfiles} fitxategi {destination} barruan kopiatu dira",
"{newName} already exists" : "{newName} existitzen da dagoeneko",
- "Could not rename \"{fileName}\", it does not exist any more" : "Ezin izan da \"{fileName}\" berrizendatu, ez da existitzen jada",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" izena dagoeneko erabiltzen da \"{dir}\" karpetan. Aukeratu beste izen bat.",
- "Could not rename \"{fileName}\"" : "Ezin izan da \"{fileName}\" berrizendatu ",
"Could not create file \"{file}\"" : "Ezin izan da \"{file}\" fitxategia sortu",
"Could not create file \"{file}\" because it already exists" : "Ezin izan da \"{file}\" fitxategia sortu, dagoeneko existitzen delako",
"Could not create folder \"{dir}\" because it already exists" : "Ezin izan da \"{dir}\" karpeta sortu, dagoeneko existitzen delako",
@@ -395,32 +397,22 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Esteka zuzena kopiatu da (fitxategi/karpeta honetara sarbidea dutenentzat bakarrik balio du)",
"Path" : "Bidea",
"_%n byte_::_%n bytes_" : ["%n byte","%n byte"],
- "Favorited" : "Gogoko gisa markatua",
+ "Favored" : "Mesedetua",
+ "Favor" : "Mesedea",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopiatu esteka zuzena (fitxategi/karpeta honetara sarbidea dutenentzat bakarrik balio du)",
"Upload file" : "Igo fitxategia",
- "Not favorited" : "Ez da gogokoa",
+ "Not favored" : "Mesedetu gabe",
"An error occurred while trying to update the tags" : "Errore bat gertatu da etiketak eguneratzen saiatzean",
- "Storage informations" : "Biltegiaren informazioak",
- "Choose file" : "Aukeratu fitxategia",
- "Go to the previous folder" : "Joan aurreko karpetara",
- "Open the files app settings" : "Ireki Fitxategiak aplikazioaren ezarpenak",
- "Unable to change the favourite state of the file" : "Ezin da fitxategiaren gogoko egoera aldatu",
- "Edit file locally" : "Editatu fitxategia lokalean",
- "Edit online" : "Editatu sarean",
- "Create new templates folder" : "Sortu txantiloi karpeta berria",
+ "Upload (max. %s)" : "Igo (%s gehienez)",
+ "Submitting fields…" : "Eremuak bidaltzen…",
+ "Filter filenames…" : "Iragazi fitxategi-izenak...",
"_{folderCount} folder_::_{folderCount} folders_" : ["Karpeta {folderCount}","{folderCount} karpeta"],
"_{fileCount} file_::_{fileCount} files_" : ["Fitxategi {fileCount}","{fileCount} fitxategi"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["Fitxategi 1 eta karpeta {folderCount}","Fitxategi 1 eta {folderCount} karpeta"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["Fitxategi {fileCount} eta karpeta 1","{fileCount} fitxategi eta karpeta 1"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fitxategi eta {folderCount} fitxategi",
- "List of favorites files and folders." : "Fitxategi eta karpeta gogokoen zerrenda.",
"Personal Files" : "Fitxategi pertsonalak",
"Text file" : "Testu-fitxategia",
- "New text file.txt" : "Testu-fitxategi berria.txt",
- "Favored" : "Mesedetua",
- "Favor" : "Mesedea",
- "Not favored" : "Mesedetu gabe",
- "Submitting fields…" : "Eremuak bidaltzen…",
- "Filter filenames…" : "Iragazi fitxategi-izenak..."
+ "New text file.txt" : "Testu-fitxategi berria.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js
index 13087186570..e5d5606f2c2 100644
--- a/apps/files/l10n/fa.js
+++ b/apps/files/l10n/fa.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Restored by {user}" : "بازیابی شده توسط {user}",
"Renamed by {user}" : "تغییر نام توسط {user}",
"Moved by {user}" : "منتقل شده توسط {user}",
+ "\"remote account\"" : "&quot;حساب از راه دور&quot;",
"You created {file}" : "شما {file} را ایجاد کردید",
"You created an encrypted file in {file}" : "شما یک فایل رمزگذاری شده در {file} ایجاد کردید",
"{user} created {file}" : "{user} {file} را ایجاد کرد",
@@ -42,12 +43,23 @@ OC.L10N.register(
"Files" : "پرونده‌ها",
"A file or folder has been <strong>changed</strong>" : "یک فایل یا پوشه تغییر کرده است",
"A favorite file or folder has been <strong>changed</strong>" : "یک فایل یا پوشه مورد علاقه تغییر کرده است",
+ "Failed to authorize" : "مجوز صادر نشد",
+ "Invalid folder path" : "Invalid folder path",
+ "Folder not found" : "Folder not found",
+ "The file cannot be found" : "The file cannot be found",
+ "The destination path does not exist: %1$s" : "The destination path does not exist: %1$s",
+ "You do not have permission to create a file at the specified location" : "You do not have permission to create a file at the specified location",
+ "The file could not be converted." : "The file could not be converted.",
+ "Could not get relative path to converted file" : "Could not get relative path to converted file",
+ "Favorite files" : "Favorite files",
"No favorites" : "هیچ برگزیده",
- "Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
+ "More favorites" : "More favorites",
"Accept" : "قبول",
"Reject" : "رد کردن",
"Incoming ownership transfer from {user}" : "انتقال مالکیت ورودی از {user}",
"Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "آیا می خواهید {path} را بپذیرید؟\n\nتوجه: فرآیند انتقال پس از پذیرش ممکن است تا 1 ساعت طول بکشد.",
+ "Ownership transfer denied" : "Ownership transfer denied",
+ "Your ownership transfer of {path} was denied by {user}." : "Your ownership transfer of {path} was denied by {user}.",
"Ownership transfer failed" : "انتقال مالکیت ناموفق بود",
"Your ownership transfer of {path} to {user} failed." : "انتقال مالکیت شما از {path} به {user} انجام نشد.",
"The ownership transfer of {path} from {user} failed." : "انتقال مالکیت {path} از {user} انجام نشد.",
@@ -55,41 +67,76 @@ OC.L10N.register(
"Your ownership transfer of {path} to {user} has completed." : "انتقال مالکیت شما از {path} به {user} تکمیل شد.",
"The ownership transfer of {path} from {user} has completed." : "انتقال مالکیت {path} از {user} تکمیل شد.",
"in %s" : "در %s",
+ "Transferred from %1$s on %2$s" : "Transferred from %1$s on %2$s",
+ "Files compatibility" : "Files compatibility",
+ "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.",
+ "Enforce Windows compatibility" : "Enforce Windows compatibility",
+ "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity.",
"File Management" : "مدیریت فایل",
"Home" : "خانه",
"Target folder does not exist any more" : "پوشه هدف وجود ندارد",
"Reload current directory" : "دایرکتوری فعلی را دوباره بارگیری کنید",
"Go to the \"{dir}\" directory" : "به دایرکتوری \"{dir}\" بروید",
+ "Current directory path" : "Current directory path",
+ "Your have used your space quota and cannot upload files anymore" : "Your have used your space quota and cannot upload files anymore",
+ "You do not have permission to upload or create files here." : "You do not have permission to upload or create files here.",
"Drag and drop files here to upload" : "برای بارگذاری، فایل‌ها را بکشید و اینجا بیاندازید",
"Favorite" : "برگزیده",
- "Back" : "Back",
+ "Back" : "بازگشت",
+ "Toggle selection for file \"{displayName}\"" : "Toggle selection for file \"{displayName}\"",
+ "Toggle selection for folder \"{displayName}\"" : "Toggle selection for folder \"{displayName}\"",
+ "File is loading" : "File is loading",
+ "Folder is loading" : "Folder is loading",
"Filename" : "نام پرونده",
"Folder name" : "نام پوشه",
"This node is unavailable" : "گره شما در دسترس نیست",
+ "Another entry with the same name already exists." : "Another entry with the same name already exists.",
+ "Invalid filename." : "Invalid filename.",
"Renamed \"{oldName}\" to \"{newName}\"" : "تغییر نام \"{oldName}\" به \"{newName}\"",
"Rename file" : "تغییر نام فایل",
+ "Folder" : "پوشه",
+ "Unknown file type" : "Unknown file type",
+ "{ext} image" : "{ext} image",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} text",
"Pending" : "در انتظار",
+ "Unknown date" : "Unknown date",
"Clear filter" : "پاک کردن پالایه",
"Modified" : "تاریخ",
"Type" : "نوع",
- "Active filters" : "Active filters",
- "Remove filter" : "Remove filter",
+ "Active filters" : "فیلترهای فعال",
+ "Remove filter" : "فیلتر را بردارید",
"Total rows summary" : "خلاصه کل ردیف ها",
+ "Toggle selection for all files and folders" : "Toggle selection for all files and folders",
"Name" : "نام",
+ "File type" : "File type",
"Size" : "اندازه",
+ "\"{displayName}\" failed on some elements" : "\"{displayName}\" failed on some elements",
"\"{displayName}\" batch action executed successfully" : "عملکرد دسته‌ای \"{displayName}\" با موفقیت اجرا شد",
"\"{displayName}\" action failed" : "اقدام \"{displayName}\" ناموفق بود",
"Actions" : "فعالیت ها",
+ "(selected)" : "(selected)",
"List of files and folders." : "لیست فایل ها و پوشه ها",
+ "You have used your space quota and cannot upload files anymore." : "You have used your space quota and cannot upload files anymore.",
+ "Column headers with buttons are sortable." : "Column headers with buttons are sortable.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "این لیست به دلایل عملکرد به طور کامل ارائه نشده است. در حین حرکت در لیست، فایل ها ارائه می شوند.",
"File not found" : "فایل یافت نشد",
"{usedQuotaByte} used" : "{usedQuotaByte} استفاده شده است",
"{used} of {quota} used" : "{used} از {quota} استفاده شده",
+ "{relative}% used" : "{relative}% used",
"Could not refresh storage stats" : "نمی‌توان آمار ذخیره‌سازی را بازخوانی کرد",
"Your storage is full, files can not be updated or synced anymore!" : "فضای ذخیره ی شما کاملا پر است، بیش از این فایلها بهنگام یا همگام سازی نمی توانند بشوند!",
+ "Storage information" : "اطلاعات ذخیره‌سازی",
+ "Storage quota" : "محدودیت ذخیره‌سازی",
"New folder" : "پوشه جدید",
"Create new folder" : "ساختن پوشه جدید",
- "Create" : "ساخت",
+ "This name is already in use." : "This name is already in use.",
+ "Create" : "ایجاد",
+ "Fill template fields" : "Fill template fields",
+ "Submitting fields …" : "Submitting fields …",
"Submit" : "ارسال",
"Choose a file or folder to transfer" : "فایل یا پوشه ای را برای انتقال انتخاب کنید",
"Transfer" : "انتقال",
@@ -102,39 +149,84 @@ OC.L10N.register(
"Choose file or folder to transfer" : "فایل یا پوشه را برای انتقال انتخاب کنید",
"Change" : "تغییر",
"New owner" : "مالک جدید",
+ "Keep {old}" : "Keep {old}",
+ "Keep without extension" : "Keep without extension",
+ "Use {new}" : "Use {new}",
+ "Remove extension" : "Remove extension",
+ "Change file extension" : "Change file extension",
+ "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable.",
+ "Removing the file extension \"{old}\" may render the file unreadable." : "Removing the file extension \"{old}\" may render the file unreadable.",
+ "Adding the file extension \"{new}\" may render the file unreadable." : "Adding the file extension \"{new}\" may render the file unreadable.",
+ "Do not show this dialog again." : "Do not show this dialog again.",
"Select file or folder to link to" : "فایل یا پوشه را برای پیوند انتخاب کنید",
"Choose {file}" : "انتخاب {file}",
"Share" : "اشتراک‌گذاری",
"Shared by link" : "اشتراک گذاشته شده از طریق لینک",
"Shared" : "به اشتراک گذاشته شده ",
- "Switch to list view" : "Switch to list view",
+ "Switch to list view" : "تغییر به نمای لیست",
+ "Switch to grid view" : "Switch to grid view",
+ "The file could not be found" : "The file could not be found",
"Upload was cancelled by user" : "آپلود توسط کاربر لغو شد",
"Not enough free space" : "فضای کافی در دسترس نیست",
"Operation is blocked by access control" : "مدیریت دسترسی، عملیات را متوقف کرد",
+ "Error during upload: {message}" : "Error during upload: {message}",
+ "Error during upload, status code {status}" : "Error during upload, status code {status}",
+ "Unknown error during upload" : "Unknown error during upload",
"\"{displayName}\" action executed successfully" : "عملکرد \"{displayName}\" با موفقیت اجرا شد",
"Loading current folder" : "در حال بارگیری پوشه فعلی",
"Retry" : "تلاش دوباره",
"No files in here" : "هیچ فایلی اینجا وجود ندارد",
"Upload some content or sync with your devices!" : "محتوایی را آپلود کنید یا با دستگاه خود همگام‌سازی کنید!",
"Go back" : "برگرد",
+ "Filter file names …" : "Filter file names …",
"Views" : "بازدیدها",
"Files settings" : "تنظیمات پرونده‌ها",
- "Open in files" : "Open in files",
+ "Your files" : "Your files",
+ "Open in files" : "باز کردن در فایل‌ها",
"File cannot be accessed" : "فایل قابل دسترسی نیست",
+ "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "The file could not be found or you do not have permissions to view it. Ask the sender to share it.",
"Clipboard is not available" : "کلیپ بورد در دسترس نیست",
"WebDAV URL copied to clipboard" : "URL WebDAV در کلیپ بورد کپی شد",
"Sort favorites first" : "ابتدا موارد دلخواه را مرتب کنید",
+ "Sort folders before files" : "Sort folders before files",
"Show hidden files" : "نمایش پرونده‌های مخفی",
+ "Show file type column" : "Show file type column",
"Crop image previews" : "پیش نمایش تصویر برش",
+ "Enable the grid view" : "Enable the grid view",
+ "Enable folder tree" : "Enable folder tree",
"Additional settings" : "تنظیمات اضافی",
"WebDAV" : "WebDAV",
+ "WebDAV URL" : "WebDAV URL",
"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 را فعال کرده اید، باید با کلیک کردن در اینجا یک رمز عبور برنامه جدید ایجاد و استفاده کنید.",
+ "Warnings" : "Warnings",
+ "Prevent warning dialogs from open or reenable them." : "Prevent warning dialogs from open or reenable them.",
+ "Show a warning dialog when changing a file extension." : "Show a warning dialog when changing a file extension.",
"Keyboard shortcuts" : "میان‌برهای صفحه‌کلید",
+ "Speed up your Files experience with these quick shortcuts." : "Speed up your Files experience with these quick shortcuts.",
+ "Open the actions menu for a file" : "Open the actions menu for a file",
+ "Rename a file" : "Rename a file",
+ "Delete a file" : "Delete a file",
+ "Favorite or remove a file from favorites" : "Favorite or remove a file from favorites",
+ "Manage tags for a file" : "Manage tags for a file",
"Selection" : "انتخاب",
+ "Select all files" : "Select all files",
+ "Deselect all files" : "Deselect all files",
+ "Select or deselect a file" : "Select or deselect a file",
+ "Select a range of files" : "Select a range of files",
"Navigation" : "جهت یابی",
+ "Navigate to the parent folder" : "Navigate to the parent folder",
+ "Navigate to the file above" : "Navigate to the file above",
+ "Navigate to the file below" : "Navigate to the file below",
+ "Navigate to the file on the left (in grid mode)" : "Navigate to the file on the left (in grid mode)",
+ "Navigate to the file on the right (in grid mode)" : "Navigate to the file on the right (in grid mode)",
"View" : "نمایش",
+ "Toggle the grid view" : "Toggle the grid view",
+ "Open the sidebar for a file" : "Open the sidebar for a file",
+ "Show those shortcuts" : "Show those shortcuts",
+ "You" : "You",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
"Error while loading the file data" : "خطا هنگام بارگیری داده های فایل",
"Owner" : "مالک",
"Remove from favorites" : "حذف کردن از برگزیده ها",
@@ -145,45 +237,125 @@ OC.L10N.register(
"Pick a template for {name}" : "یک الگو برای {name} انتخاب کنید",
"Create a new file with the selected template" : "یک فایل جدید با الگوی انتخاب شده ایجاد کنید",
"Creating file" : "ایجاد فایل",
+ "Save as {displayName}" : "Save as {displayName}",
+ "Save as …" : "Save as …",
+ "Converting files …" : "Converting files …",
+ "Failed to convert files: {message}" : "Failed to convert files: {message}",
+ "All files failed to be converted" : "All files failed to be converted",
+ "One file could not be converted: {message}" : "One file could not be converted: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["One file could not be converted","%n files could not be converted"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["One file successfully converted","%n files successfully converted"],
+ "Files successfully converted" : "Files successfully converted",
+ "Failed to convert files" : "Failed to convert files",
+ "Converting file …" : "Converting file …",
+ "File successfully converted" : "File successfully converted",
+ "Failed to convert file: {message}" : "Failed to convert file: {message}",
+ "Failed to convert file" : "Failed to convert file",
+ "Deletion cancelled" : "Deletion cancelled",
"Leave this share" : "ترک این اشتراک",
+ "Leave these shares" : "Leave these shares",
"Disconnect storage" : "فضای ذخیره را جدا کنید",
+ "Disconnect storages" : "Disconnect storages",
"Delete permanently" : "حذف قطعی",
+ "Delete and unshare" : "Delete and unshare",
"Delete file" : "حذف پرونده",
- "Delete files" : "Delete files",
+ "Delete files" : "حذف فایل‌ها",
"Delete folder" : "حذف پوشه",
+ "Delete folders" : "Delete folders",
"Delete" : "حذف",
+ "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["You are about to permanently delete {count} item","You are about to permanently delete {count} items"],
+ "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["You are about to delete {count} item","You are about to delete {count} items"],
+ "Confirm deletion" : "Confirm deletion",
"Cancel" : "لغو",
+ "Download" : "دانلود",
+ "Moving \"{source}\" to \"{destination}\" …" : "Moving \"{source}\" to \"{destination}\" …",
+ "Copying \"{source}\" to \"{destination}\" …" : "Copying \"{source}\" to \"{destination}\" …",
+ "You cannot move a file/folder onto itself or into a subfolder of itself" : "You cannot move a file/folder onto itself or into a subfolder of itself",
+ "(copy)" : "(copy)",
+ "(copy %n)" : "(copy %n)",
+ "Move cancelled" : "Move cancelled",
+ "A file or folder with that name already exists in this folder" : "A file or folder with that name already exists in this folder",
+ "The files are locked" : "The files are locked",
+ "The file does not exist anymore" : "The file does not exist anymore",
+ "Choose destination" : "Choose destination",
"Copy to {target}" : "رونوشت به {target}",
"Copy" : "رونوشت",
"Move to {target}" : "جابجایی به {target}",
"Move" : "انتقال",
+ "Move or copy operation failed" : "Move or copy operation failed",
"Move or copy" : "انتقال یا رونوشت",
+ "Cancelled move or copy of \"{filename}\"." : "Cancelled move or copy of \"{filename}\".",
+ "Cancelled move or copy operation" : "Cancelled move or copy operation",
"Open folder {displayName}" : "باز کردن پوشه {displayName}",
"Open in Files" : "در فایل باز کنید",
- "Open file locally" : "گشودن محلی پرونده",
- "Failed to redirect to client" : "هدایت به مشتری انجام نشد",
"Open locally" : "گشودن محلی",
+ "Failed to redirect to client" : "هدایت به مشتری انجام نشد",
+ "Open file locally" : "گشودن محلی پرونده",
+ "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "The file should now open on your device. If it doesn't, please check that you have the desktop app installed.",
+ "Retry and close" : "Retry and close",
+ "Open online" : "Open online",
"Rename" : "تغییرنام",
"Open details" : "باز کردن جزئیات",
"View in folder" : "مشاهده در پوشه",
"Today" : "امروز",
"Last 7 days" : "۷ روز گذشته",
"Last 30 days" : "۳۰ روز گذشته",
+ "This year ({year})" : "This year ({year})",
+ "Last year ({year})" : "Last year ({year})",
"Documents" : "سندها",
+ "Spreadsheets" : "Spreadsheets",
+ "Presentations" : "Presentations",
+ "PDFs" : "PDFs",
+ "Folders" : "Folders",
"Audio" : "صدا",
+ "Photos and images" : "Photos and images",
"Videos" : "فیلم ها ",
+ "New folder creation cancelled" : "New folder creation cancelled",
+ "Created new folder \"{name}\"" : "Created new folder \"{name}\"",
"Unable to initialize the templates directory" : "راه اندازی دایرکتوری الگوها ممکن نیست",
+ "Create templates folder" : "Create templates folder",
"Templates" : "قالب‌ها",
+ "New template folder" : "New template folder",
+ "In folder" : "In folder",
+ "Search in folder: {folder}" : "Search in folder: {folder}",
+ "One of the dropped files could not be processed" : "One of the dropped files could not be processed",
+ "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Your browser does not support the Filesystem API. Directories will not be uploaded",
+ "No files to upload" : "No files to upload",
+ "Unable to create the directory {directory}" : "Unable to create the directory {directory}",
+ "Some files could not be uploaded" : "Some files could not be uploaded",
+ "Files uploaded successfully" : "Files uploaded successfully",
+ "No files to process" : "No files to process",
+ "Some files could not be copied" : "Some files could not be copied",
"Some files could not be moved" : "برخی از پرونده‌ها قابل انتقال نیستند",
+ "Files copied successfully" : "Files copied successfully",
+ "Files moved successfully" : "Files moved successfully",
+ "Conflicts resolution skipped" : "Conflicts resolution skipped",
+ "Upload cancelled" : "Upload cancelled",
+ "Could not rename \"{oldName}\", it does not exist any more" : "نمی‌توان نام «{oldName}» را تغییر داد، دیگر وجود ندارد",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "نام \"{newName}\" در پوشه \"{dir}\" به کار رفته است.\nلطفا نام دیگری برگزینید.",
+ "Could not rename \"{oldName}\"" : "تغییر نام \"{oldName}\" ممکن نیست",
"This operation is forbidden" : "این عملیات غیرمجاز است",
"This directory is unavailable, please check the logs or contact the administrator" : "پوشه‌ در دسترس نیست، لطفا لاگ‌ها را بررسی کنید یا به مدیر سیستم اطلاع دهید",
"Storage is temporarily not available" : "ذخیره سازی به طور موقت در دسترس نیست",
+ "Unexpected error: {error}" : "Unexpected error: {error}",
"_%n file_::_%n files_" : ["%n فایل","%n فایل"],
"_%n folder_::_%n folders_" : ["%n پوشه","%n پوشه"],
+ "_%n hidden_::_%n hidden_" : ["%n hidden","%n hidden"],
+ "Filename must not be empty." : "Filename must not be empty.",
+ "\"{char}\" is not allowed inside a filename." : "\"{char}\" is not allowed inside a filename.",
+ "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" is a reserved name and not allowed for filenames.",
+ "\"{extension}\" is not an allowed filetype." : "\"{extension}\" is not an allowed filetype.",
+ "Filenames must not end with \"{extension}\"." : "Filenames must not end with \"{extension}\".",
+ "List of favorite files and folders." : "List of favorite files and folders.",
"No favorites yet" : "هنوز مورد دلخواه وجود ندارد",
"Files and folders you mark as favorite will show up here" : "فایل‌ها و پوشه‌های انتخاب شده به عنوان برگزیده توسط شما، در اینجا نمایش داده می‌شود",
"All files" : "تمامی فایل‌ها",
+ "List of your files and folders." : "List of your files and folders.",
+ "All folders" : "All folders",
"Personal files" : "فایل‌های شخصی",
+ "List of your files and folders that are not shared." : "List of your files and folders that are not shared.",
+ "No personal files found" : "No personal files found",
+ "Files that are not shared will show up here." : "Files that are not shared will show up here.",
"Recent" : "اخیر",
"List of recently modified files and folders." : "فهرست فایل‌ها و پوشه‌هایی که اخیراً اصلاح شده‌اند.",
"No recently modified files" : "هیچ فایلی که اخیراً اصلاح شده است",
@@ -193,7 +365,6 @@ OC.L10N.register(
"Upload too large" : "سایز فایل برای آپلود زیاد است(م.تنظیمات در php.ini)",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد",
"File could not be found" : "پرونده پیدا نشد",
- "Download" : "دانلود",
"Show list view" : "نمایش فهرستی",
"Show grid view" : "نمایش شبکه‌ای",
"Close" : "بستن",
@@ -208,13 +379,13 @@ OC.L10N.register(
"An unknown error has occurred" : "خطایی ناشناخته اتفاق افتاده است",
"File could not be uploaded" : "پرونده بارگذاری نشد",
"Uploading …" : "بارگذاری...",
- "{remainingTime} ({currentNumber}/{total})" : "{remainingTime} ({currentNumber}/{total})",
+ "{remainingTime} ({currentNumber}/{total})" : "{remainingTime}({currentNumber} /{total} )",
"Uploading … ({currentNumber}/{total})" : "در حال بارگذاری ... ({currentNumber}/{total})",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} از {totalSize} ({bitrate})",
"Uploading that item is not supported" : "بارگذاری آن مورد پشتیبانی نمی‌شود",
"Error when assembling chunks, status code {status}" : "خطا هنگام جمع آوری قطعه ها، کد وضعیت {status}",
"Choose target folder" : "پوشهٔ هدف را انتخاب کنید",
- "Set reminder" : "Set reminder",
+ "Set reminder" : "تنظیم یادآوری",
"Edit locally" : "ویرایش محلی",
"Open" : "باز کردن",
"Could not load info for file \"{file}\"" : "بارگیری اطلاعات برای پرونده امکان پذیر نیست \"{file}\"",
@@ -227,11 +398,11 @@ OC.L10N.register(
"Could not move \"{file}\", target exists" : "انتقال\"{file}\" امکان پذیر نیست ، هدف وجود دارد",
"Could not move \"{file}\"" : "پروندهٔ \"{file}\" منتقل نمی‌شود",
"copy" : "کپی",
+ "Could not copy \"{file}\", target exists" : "Could not copy \"{file}\", target exists",
+ "Could not copy \"{file}\"" : "Could not copy \"{file}\"",
+ "Copied {origin} inside {destination}" : "Copied {origin} inside {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "رونوشت شده از {origin} و {nbfiles} پرونده‌های دیگر در {destination}",
"{newName} already exists" : "{newName} قبلاً موجود است",
- "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}\" ساخته نشد",
"Could not create file \"{file}\" because it already exists" : "نمی توان پرونده \"{file}\" ایجاد کرد زیرا در حال حاضر وجود دارد",
"Could not create folder \"{dir}\" because it already exists" : "شاخه \"{dir}\" به علت موجود بودن ساخته نشد",
@@ -261,21 +432,28 @@ OC.L10N.register(
"External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "حافظه خارجی \"{mountPoint}\" تقریباً پر است ({usedSpacePercent}%).",
"Your storage is almost full ({usedSpacePercent}%)." : "فضای ذخیره‌سازی شما تقریباً پر است ({usedSpacePercent}%).",
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["مطابقت با \"{filter}\"","مطابقت با \"{filter}\""],
+ "Direct link was copied (only works for people who have access to this file/folder)" : "Direct link was copied (only works for people who have access to this file/folder)",
"Path" : "مسیر",
"_%n byte_::_%n bytes_" : ["%n بایت","%n بایت"],
- "Favorited" : "برگزیده شده",
+ "Favored" : "Favored",
+ "Favor" : "Favor",
+ "Copy direct link (only works for people who have access to this file/folder)" : "Copy direct link (only works for people who have access to this file/folder)",
"Upload file" : "بارگذاری پرونده",
- "Not favorited" : "مورد علاقه نیست",
+ "Not favored" : "Not favored",
"An error occurred while trying to update the tags" : "یک خطا در حین بروزرسانی برچسب‌ها رخ داده است",
- "Storage informations" : "ذخیره سازی اطلاعات ",
- "Go to the previous folder" : "به پوشه قبلی بروید",
- "Open the files app settings" : "تنظیمات برنامه فایل ها را باز کنید",
- "Unable to change the favourite state of the file" : "امکان تغییر حالت دلخواه فایل وجود ندارد",
- "Create new templates folder" : "پوشه قالب های جدید ایجاد کنید",
+ "Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
+ "Submitting fields…" : "Submitting fields…",
+ "Filter filenames…" : "Filter filenames…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} پوشه","{folderCount} پوشه"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} پرونده","{fileCount} پرونده"],
- "List of favorites files and folders." : "لیست فایل ها و پوشه های مورد علاقه",
+ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"],
+ "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file and 1 folder","{fileCount} files and 1 folder"],
+ "{fileCount} files and {folderCount} folders" : "{fileCount} files and {folderCount} folders",
+ "Personal Files" : "Personal Files",
"Text file" : "فایل متنی",
- "New text file.txt" : "پروندهٔ متنی جدید با پسوند txt"
+ "New text file.txt" : "پروندهٔ متنی جدید با پسوند txt",
+ "%1$s (renamed)" : "%1$s (renamed)",
+ "renamed file" : "renamed file",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json
index dd93cc9e2b2..018fea26ac3 100644
--- a/apps/files/l10n/fa.json
+++ b/apps/files/l10n/fa.json
@@ -11,6 +11,7 @@
"Restored by {user}" : "بازیابی شده توسط {user}",
"Renamed by {user}" : "تغییر نام توسط {user}",
"Moved by {user}" : "منتقل شده توسط {user}",
+ "\"remote account\"" : "&quot;حساب از راه دور&quot;",
"You created {file}" : "شما {file} را ایجاد کردید",
"You created an encrypted file in {file}" : "شما یک فایل رمزگذاری شده در {file} ایجاد کردید",
"{user} created {file}" : "{user} {file} را ایجاد کرد",
@@ -40,12 +41,23 @@
"Files" : "پرونده‌ها",
"A file or folder has been <strong>changed</strong>" : "یک فایل یا پوشه تغییر کرده است",
"A favorite file or folder has been <strong>changed</strong>" : "یک فایل یا پوشه مورد علاقه تغییر کرده است",
+ "Failed to authorize" : "مجوز صادر نشد",
+ "Invalid folder path" : "Invalid folder path",
+ "Folder not found" : "Folder not found",
+ "The file cannot be found" : "The file cannot be found",
+ "The destination path does not exist: %1$s" : "The destination path does not exist: %1$s",
+ "You do not have permission to create a file at the specified location" : "You do not have permission to create a file at the specified location",
+ "The file could not be converted." : "The file could not be converted.",
+ "Could not get relative path to converted file" : "Could not get relative path to converted file",
+ "Favorite files" : "Favorite files",
"No favorites" : "هیچ برگزیده",
- "Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
+ "More favorites" : "More favorites",
"Accept" : "قبول",
"Reject" : "رد کردن",
"Incoming ownership transfer from {user}" : "انتقال مالکیت ورودی از {user}",
"Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "آیا می خواهید {path} را بپذیرید؟\n\nتوجه: فرآیند انتقال پس از پذیرش ممکن است تا 1 ساعت طول بکشد.",
+ "Ownership transfer denied" : "Ownership transfer denied",
+ "Your ownership transfer of {path} was denied by {user}." : "Your ownership transfer of {path} was denied by {user}.",
"Ownership transfer failed" : "انتقال مالکیت ناموفق بود",
"Your ownership transfer of {path} to {user} failed." : "انتقال مالکیت شما از {path} به {user} انجام نشد.",
"The ownership transfer of {path} from {user} failed." : "انتقال مالکیت {path} از {user} انجام نشد.",
@@ -53,41 +65,76 @@
"Your ownership transfer of {path} to {user} has completed." : "انتقال مالکیت شما از {path} به {user} تکمیل شد.",
"The ownership transfer of {path} from {user} has completed." : "انتقال مالکیت {path} از {user} تکمیل شد.",
"in %s" : "در %s",
+ "Transferred from %1$s on %2$s" : "Transferred from %1$s on %2$s",
+ "Files compatibility" : "Files compatibility",
+ "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.",
+ "Enforce Windows compatibility" : "Enforce Windows compatibility",
+ "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity.",
"File Management" : "مدیریت فایل",
"Home" : "خانه",
"Target folder does not exist any more" : "پوشه هدف وجود ندارد",
"Reload current directory" : "دایرکتوری فعلی را دوباره بارگیری کنید",
"Go to the \"{dir}\" directory" : "به دایرکتوری \"{dir}\" بروید",
+ "Current directory path" : "Current directory path",
+ "Your have used your space quota and cannot upload files anymore" : "Your have used your space quota and cannot upload files anymore",
+ "You do not have permission to upload or create files here." : "You do not have permission to upload or create files here.",
"Drag and drop files here to upload" : "برای بارگذاری، فایل‌ها را بکشید و اینجا بیاندازید",
"Favorite" : "برگزیده",
- "Back" : "Back",
+ "Back" : "بازگشت",
+ "Toggle selection for file \"{displayName}\"" : "Toggle selection for file \"{displayName}\"",
+ "Toggle selection for folder \"{displayName}\"" : "Toggle selection for folder \"{displayName}\"",
+ "File is loading" : "File is loading",
+ "Folder is loading" : "Folder is loading",
"Filename" : "نام پرونده",
"Folder name" : "نام پوشه",
"This node is unavailable" : "گره شما در دسترس نیست",
+ "Another entry with the same name already exists." : "Another entry with the same name already exists.",
+ "Invalid filename." : "Invalid filename.",
"Renamed \"{oldName}\" to \"{newName}\"" : "تغییر نام \"{oldName}\" به \"{newName}\"",
"Rename file" : "تغییر نام فایل",
+ "Folder" : "پوشه",
+ "Unknown file type" : "Unknown file type",
+ "{ext} image" : "{ext} image",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} text",
"Pending" : "در انتظار",
+ "Unknown date" : "Unknown date",
"Clear filter" : "پاک کردن پالایه",
"Modified" : "تاریخ",
"Type" : "نوع",
- "Active filters" : "Active filters",
- "Remove filter" : "Remove filter",
+ "Active filters" : "فیلترهای فعال",
+ "Remove filter" : "فیلتر را بردارید",
"Total rows summary" : "خلاصه کل ردیف ها",
+ "Toggle selection for all files and folders" : "Toggle selection for all files and folders",
"Name" : "نام",
+ "File type" : "File type",
"Size" : "اندازه",
+ "\"{displayName}\" failed on some elements" : "\"{displayName}\" failed on some elements",
"\"{displayName}\" batch action executed successfully" : "عملکرد دسته‌ای \"{displayName}\" با موفقیت اجرا شد",
"\"{displayName}\" action failed" : "اقدام \"{displayName}\" ناموفق بود",
"Actions" : "فعالیت ها",
+ "(selected)" : "(selected)",
"List of files and folders." : "لیست فایل ها و پوشه ها",
+ "You have used your space quota and cannot upload files anymore." : "You have used your space quota and cannot upload files anymore.",
+ "Column headers with buttons are sortable." : "Column headers with buttons are sortable.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "این لیست به دلایل عملکرد به طور کامل ارائه نشده است. در حین حرکت در لیست، فایل ها ارائه می شوند.",
"File not found" : "فایل یافت نشد",
"{usedQuotaByte} used" : "{usedQuotaByte} استفاده شده است",
"{used} of {quota} used" : "{used} از {quota} استفاده شده",
+ "{relative}% used" : "{relative}% used",
"Could not refresh storage stats" : "نمی‌توان آمار ذخیره‌سازی را بازخوانی کرد",
"Your storage is full, files can not be updated or synced anymore!" : "فضای ذخیره ی شما کاملا پر است، بیش از این فایلها بهنگام یا همگام سازی نمی توانند بشوند!",
+ "Storage information" : "اطلاعات ذخیره‌سازی",
+ "Storage quota" : "محدودیت ذخیره‌سازی",
"New folder" : "پوشه جدید",
"Create new folder" : "ساختن پوشه جدید",
- "Create" : "ساخت",
+ "This name is already in use." : "This name is already in use.",
+ "Create" : "ایجاد",
+ "Fill template fields" : "Fill template fields",
+ "Submitting fields …" : "Submitting fields …",
"Submit" : "ارسال",
"Choose a file or folder to transfer" : "فایل یا پوشه ای را برای انتقال انتخاب کنید",
"Transfer" : "انتقال",
@@ -100,39 +147,84 @@
"Choose file or folder to transfer" : "فایل یا پوشه را برای انتقال انتخاب کنید",
"Change" : "تغییر",
"New owner" : "مالک جدید",
+ "Keep {old}" : "Keep {old}",
+ "Keep without extension" : "Keep without extension",
+ "Use {new}" : "Use {new}",
+ "Remove extension" : "Remove extension",
+ "Change file extension" : "Change file extension",
+ "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable.",
+ "Removing the file extension \"{old}\" may render the file unreadable." : "Removing the file extension \"{old}\" may render the file unreadable.",
+ "Adding the file extension \"{new}\" may render the file unreadable." : "Adding the file extension \"{new}\" may render the file unreadable.",
+ "Do not show this dialog again." : "Do not show this dialog again.",
"Select file or folder to link to" : "فایل یا پوشه را برای پیوند انتخاب کنید",
"Choose {file}" : "انتخاب {file}",
"Share" : "اشتراک‌گذاری",
"Shared by link" : "اشتراک گذاشته شده از طریق لینک",
"Shared" : "به اشتراک گذاشته شده ",
- "Switch to list view" : "Switch to list view",
+ "Switch to list view" : "تغییر به نمای لیست",
+ "Switch to grid view" : "Switch to grid view",
+ "The file could not be found" : "The file could not be found",
"Upload was cancelled by user" : "آپلود توسط کاربر لغو شد",
"Not enough free space" : "فضای کافی در دسترس نیست",
"Operation is blocked by access control" : "مدیریت دسترسی، عملیات را متوقف کرد",
+ "Error during upload: {message}" : "Error during upload: {message}",
+ "Error during upload, status code {status}" : "Error during upload, status code {status}",
+ "Unknown error during upload" : "Unknown error during upload",
"\"{displayName}\" action executed successfully" : "عملکرد \"{displayName}\" با موفقیت اجرا شد",
"Loading current folder" : "در حال بارگیری پوشه فعلی",
"Retry" : "تلاش دوباره",
"No files in here" : "هیچ فایلی اینجا وجود ندارد",
"Upload some content or sync with your devices!" : "محتوایی را آپلود کنید یا با دستگاه خود همگام‌سازی کنید!",
"Go back" : "برگرد",
+ "Filter file names …" : "Filter file names …",
"Views" : "بازدیدها",
"Files settings" : "تنظیمات پرونده‌ها",
- "Open in files" : "Open in files",
+ "Your files" : "Your files",
+ "Open in files" : "باز کردن در فایل‌ها",
"File cannot be accessed" : "فایل قابل دسترسی نیست",
+ "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "The file could not be found or you do not have permissions to view it. Ask the sender to share it.",
"Clipboard is not available" : "کلیپ بورد در دسترس نیست",
"WebDAV URL copied to clipboard" : "URL WebDAV در کلیپ بورد کپی شد",
"Sort favorites first" : "ابتدا موارد دلخواه را مرتب کنید",
+ "Sort folders before files" : "Sort folders before files",
"Show hidden files" : "نمایش پرونده‌های مخفی",
+ "Show file type column" : "Show file type column",
"Crop image previews" : "پیش نمایش تصویر برش",
+ "Enable the grid view" : "Enable the grid view",
+ "Enable folder tree" : "Enable folder tree",
"Additional settings" : "تنظیمات اضافی",
"WebDAV" : "WebDAV",
+ "WebDAV URL" : "WebDAV URL",
"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 را فعال کرده اید، باید با کلیک کردن در اینجا یک رمز عبور برنامه جدید ایجاد و استفاده کنید.",
+ "Warnings" : "Warnings",
+ "Prevent warning dialogs from open or reenable them." : "Prevent warning dialogs from open or reenable them.",
+ "Show a warning dialog when changing a file extension." : "Show a warning dialog when changing a file extension.",
"Keyboard shortcuts" : "میان‌برهای صفحه‌کلید",
+ "Speed up your Files experience with these quick shortcuts." : "Speed up your Files experience with these quick shortcuts.",
+ "Open the actions menu for a file" : "Open the actions menu for a file",
+ "Rename a file" : "Rename a file",
+ "Delete a file" : "Delete a file",
+ "Favorite or remove a file from favorites" : "Favorite or remove a file from favorites",
+ "Manage tags for a file" : "Manage tags for a file",
"Selection" : "انتخاب",
+ "Select all files" : "Select all files",
+ "Deselect all files" : "Deselect all files",
+ "Select or deselect a file" : "Select or deselect a file",
+ "Select a range of files" : "Select a range of files",
"Navigation" : "جهت یابی",
+ "Navigate to the parent folder" : "Navigate to the parent folder",
+ "Navigate to the file above" : "Navigate to the file above",
+ "Navigate to the file below" : "Navigate to the file below",
+ "Navigate to the file on the left (in grid mode)" : "Navigate to the file on the left (in grid mode)",
+ "Navigate to the file on the right (in grid mode)" : "Navigate to the file on the right (in grid mode)",
"View" : "نمایش",
+ "Toggle the grid view" : "Toggle the grid view",
+ "Open the sidebar for a file" : "Open the sidebar for a file",
+ "Show those shortcuts" : "Show those shortcuts",
+ "You" : "You",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
"Error while loading the file data" : "خطا هنگام بارگیری داده های فایل",
"Owner" : "مالک",
"Remove from favorites" : "حذف کردن از برگزیده ها",
@@ -143,45 +235,125 @@
"Pick a template for {name}" : "یک الگو برای {name} انتخاب کنید",
"Create a new file with the selected template" : "یک فایل جدید با الگوی انتخاب شده ایجاد کنید",
"Creating file" : "ایجاد فایل",
+ "Save as {displayName}" : "Save as {displayName}",
+ "Save as …" : "Save as …",
+ "Converting files …" : "Converting files …",
+ "Failed to convert files: {message}" : "Failed to convert files: {message}",
+ "All files failed to be converted" : "All files failed to be converted",
+ "One file could not be converted: {message}" : "One file could not be converted: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["One file could not be converted","%n files could not be converted"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["One file successfully converted","%n files successfully converted"],
+ "Files successfully converted" : "Files successfully converted",
+ "Failed to convert files" : "Failed to convert files",
+ "Converting file …" : "Converting file …",
+ "File successfully converted" : "File successfully converted",
+ "Failed to convert file: {message}" : "Failed to convert file: {message}",
+ "Failed to convert file" : "Failed to convert file",
+ "Deletion cancelled" : "Deletion cancelled",
"Leave this share" : "ترک این اشتراک",
+ "Leave these shares" : "Leave these shares",
"Disconnect storage" : "فضای ذخیره را جدا کنید",
+ "Disconnect storages" : "Disconnect storages",
"Delete permanently" : "حذف قطعی",
+ "Delete and unshare" : "Delete and unshare",
"Delete file" : "حذف پرونده",
- "Delete files" : "Delete files",
+ "Delete files" : "حذف فایل‌ها",
"Delete folder" : "حذف پوشه",
+ "Delete folders" : "Delete folders",
"Delete" : "حذف",
+ "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["You are about to permanently delete {count} item","You are about to permanently delete {count} items"],
+ "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["You are about to delete {count} item","You are about to delete {count} items"],
+ "Confirm deletion" : "Confirm deletion",
"Cancel" : "لغو",
+ "Download" : "دانلود",
+ "Moving \"{source}\" to \"{destination}\" …" : "Moving \"{source}\" to \"{destination}\" …",
+ "Copying \"{source}\" to \"{destination}\" …" : "Copying \"{source}\" to \"{destination}\" …",
+ "You cannot move a file/folder onto itself or into a subfolder of itself" : "You cannot move a file/folder onto itself or into a subfolder of itself",
+ "(copy)" : "(copy)",
+ "(copy %n)" : "(copy %n)",
+ "Move cancelled" : "Move cancelled",
+ "A file or folder with that name already exists in this folder" : "A file or folder with that name already exists in this folder",
+ "The files are locked" : "The files are locked",
+ "The file does not exist anymore" : "The file does not exist anymore",
+ "Choose destination" : "Choose destination",
"Copy to {target}" : "رونوشت به {target}",
"Copy" : "رونوشت",
"Move to {target}" : "جابجایی به {target}",
"Move" : "انتقال",
+ "Move or copy operation failed" : "Move or copy operation failed",
"Move or copy" : "انتقال یا رونوشت",
+ "Cancelled move or copy of \"{filename}\"." : "Cancelled move or copy of \"{filename}\".",
+ "Cancelled move or copy operation" : "Cancelled move or copy operation",
"Open folder {displayName}" : "باز کردن پوشه {displayName}",
"Open in Files" : "در فایل باز کنید",
- "Open file locally" : "گشودن محلی پرونده",
- "Failed to redirect to client" : "هدایت به مشتری انجام نشد",
"Open locally" : "گشودن محلی",
+ "Failed to redirect to client" : "هدایت به مشتری انجام نشد",
+ "Open file locally" : "گشودن محلی پرونده",
+ "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "The file should now open on your device. If it doesn't, please check that you have the desktop app installed.",
+ "Retry and close" : "Retry and close",
+ "Open online" : "Open online",
"Rename" : "تغییرنام",
"Open details" : "باز کردن جزئیات",
"View in folder" : "مشاهده در پوشه",
"Today" : "امروز",
"Last 7 days" : "۷ روز گذشته",
"Last 30 days" : "۳۰ روز گذشته",
+ "This year ({year})" : "This year ({year})",
+ "Last year ({year})" : "Last year ({year})",
"Documents" : "سندها",
+ "Spreadsheets" : "Spreadsheets",
+ "Presentations" : "Presentations",
+ "PDFs" : "PDFs",
+ "Folders" : "Folders",
"Audio" : "صدا",
+ "Photos and images" : "Photos and images",
"Videos" : "فیلم ها ",
+ "New folder creation cancelled" : "New folder creation cancelled",
+ "Created new folder \"{name}\"" : "Created new folder \"{name}\"",
"Unable to initialize the templates directory" : "راه اندازی دایرکتوری الگوها ممکن نیست",
+ "Create templates folder" : "Create templates folder",
"Templates" : "قالب‌ها",
+ "New template folder" : "New template folder",
+ "In folder" : "In folder",
+ "Search in folder: {folder}" : "Search in folder: {folder}",
+ "One of the dropped files could not be processed" : "One of the dropped files could not be processed",
+ "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Your browser does not support the Filesystem API. Directories will not be uploaded",
+ "No files to upload" : "No files to upload",
+ "Unable to create the directory {directory}" : "Unable to create the directory {directory}",
+ "Some files could not be uploaded" : "Some files could not be uploaded",
+ "Files uploaded successfully" : "Files uploaded successfully",
+ "No files to process" : "No files to process",
+ "Some files could not be copied" : "Some files could not be copied",
"Some files could not be moved" : "برخی از پرونده‌ها قابل انتقال نیستند",
+ "Files copied successfully" : "Files copied successfully",
+ "Files moved successfully" : "Files moved successfully",
+ "Conflicts resolution skipped" : "Conflicts resolution skipped",
+ "Upload cancelled" : "Upload cancelled",
+ "Could not rename \"{oldName}\", it does not exist any more" : "نمی‌توان نام «{oldName}» را تغییر داد، دیگر وجود ندارد",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "نام \"{newName}\" در پوشه \"{dir}\" به کار رفته است.\nلطفا نام دیگری برگزینید.",
+ "Could not rename \"{oldName}\"" : "تغییر نام \"{oldName}\" ممکن نیست",
"This operation is forbidden" : "این عملیات غیرمجاز است",
"This directory is unavailable, please check the logs or contact the administrator" : "پوشه‌ در دسترس نیست، لطفا لاگ‌ها را بررسی کنید یا به مدیر سیستم اطلاع دهید",
"Storage is temporarily not available" : "ذخیره سازی به طور موقت در دسترس نیست",
+ "Unexpected error: {error}" : "Unexpected error: {error}",
"_%n file_::_%n files_" : ["%n فایل","%n فایل"],
"_%n folder_::_%n folders_" : ["%n پوشه","%n پوشه"],
+ "_%n hidden_::_%n hidden_" : ["%n hidden","%n hidden"],
+ "Filename must not be empty." : "Filename must not be empty.",
+ "\"{char}\" is not allowed inside a filename." : "\"{char}\" is not allowed inside a filename.",
+ "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" is a reserved name and not allowed for filenames.",
+ "\"{extension}\" is not an allowed filetype." : "\"{extension}\" is not an allowed filetype.",
+ "Filenames must not end with \"{extension}\"." : "Filenames must not end with \"{extension}\".",
+ "List of favorite files and folders." : "List of favorite files and folders.",
"No favorites yet" : "هنوز مورد دلخواه وجود ندارد",
"Files and folders you mark as favorite will show up here" : "فایل‌ها و پوشه‌های انتخاب شده به عنوان برگزیده توسط شما، در اینجا نمایش داده می‌شود",
"All files" : "تمامی فایل‌ها",
+ "List of your files and folders." : "List of your files and folders.",
+ "All folders" : "All folders",
"Personal files" : "فایل‌های شخصی",
+ "List of your files and folders that are not shared." : "List of your files and folders that are not shared.",
+ "No personal files found" : "No personal files found",
+ "Files that are not shared will show up here." : "Files that are not shared will show up here.",
"Recent" : "اخیر",
"List of recently modified files and folders." : "فهرست فایل‌ها و پوشه‌هایی که اخیراً اصلاح شده‌اند.",
"No recently modified files" : "هیچ فایلی که اخیراً اصلاح شده است",
@@ -191,7 +363,6 @@
"Upload too large" : "سایز فایل برای آپلود زیاد است(م.تنظیمات در php.ini)",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "فایلها بیش از حد تعیین شده در این سرور هستند\nمترجم:با تغییر فایل php,ini میتوان این محدودیت را برطرف کرد",
"File could not be found" : "پرونده پیدا نشد",
- "Download" : "دانلود",
"Show list view" : "نمایش فهرستی",
"Show grid view" : "نمایش شبکه‌ای",
"Close" : "بستن",
@@ -206,13 +377,13 @@
"An unknown error has occurred" : "خطایی ناشناخته اتفاق افتاده است",
"File could not be uploaded" : "پرونده بارگذاری نشد",
"Uploading …" : "بارگذاری...",
- "{remainingTime} ({currentNumber}/{total})" : "{remainingTime} ({currentNumber}/{total})",
+ "{remainingTime} ({currentNumber}/{total})" : "{remainingTime}({currentNumber} /{total} )",
"Uploading … ({currentNumber}/{total})" : "در حال بارگذاری ... ({currentNumber}/{total})",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} از {totalSize} ({bitrate})",
"Uploading that item is not supported" : "بارگذاری آن مورد پشتیبانی نمی‌شود",
"Error when assembling chunks, status code {status}" : "خطا هنگام جمع آوری قطعه ها، کد وضعیت {status}",
"Choose target folder" : "پوشهٔ هدف را انتخاب کنید",
- "Set reminder" : "Set reminder",
+ "Set reminder" : "تنظیم یادآوری",
"Edit locally" : "ویرایش محلی",
"Open" : "باز کردن",
"Could not load info for file \"{file}\"" : "بارگیری اطلاعات برای پرونده امکان پذیر نیست \"{file}\"",
@@ -225,11 +396,11 @@
"Could not move \"{file}\", target exists" : "انتقال\"{file}\" امکان پذیر نیست ، هدف وجود دارد",
"Could not move \"{file}\"" : "پروندهٔ \"{file}\" منتقل نمی‌شود",
"copy" : "کپی",
+ "Could not copy \"{file}\", target exists" : "Could not copy \"{file}\", target exists",
+ "Could not copy \"{file}\"" : "Could not copy \"{file}\"",
+ "Copied {origin} inside {destination}" : "Copied {origin} inside {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "رونوشت شده از {origin} و {nbfiles} پرونده‌های دیگر در {destination}",
"{newName} already exists" : "{newName} قبلاً موجود است",
- "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}\" ساخته نشد",
"Could not create file \"{file}\" because it already exists" : "نمی توان پرونده \"{file}\" ایجاد کرد زیرا در حال حاضر وجود دارد",
"Could not create folder \"{dir}\" because it already exists" : "شاخه \"{dir}\" به علت موجود بودن ساخته نشد",
@@ -259,21 +430,28 @@
"External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "حافظه خارجی \"{mountPoint}\" تقریباً پر است ({usedSpacePercent}%).",
"Your storage is almost full ({usedSpacePercent}%)." : "فضای ذخیره‌سازی شما تقریباً پر است ({usedSpacePercent}%).",
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["مطابقت با \"{filter}\"","مطابقت با \"{filter}\""],
+ "Direct link was copied (only works for people who have access to this file/folder)" : "Direct link was copied (only works for people who have access to this file/folder)",
"Path" : "مسیر",
"_%n byte_::_%n bytes_" : ["%n بایت","%n بایت"],
- "Favorited" : "برگزیده شده",
+ "Favored" : "Favored",
+ "Favor" : "Favor",
+ "Copy direct link (only works for people who have access to this file/folder)" : "Copy direct link (only works for people who have access to this file/folder)",
"Upload file" : "بارگذاری پرونده",
- "Not favorited" : "مورد علاقه نیست",
+ "Not favored" : "Not favored",
"An error occurred while trying to update the tags" : "یک خطا در حین بروزرسانی برچسب‌ها رخ داده است",
- "Storage informations" : "ذخیره سازی اطلاعات ",
- "Go to the previous folder" : "به پوشه قبلی بروید",
- "Open the files app settings" : "تنظیمات برنامه فایل ها را باز کنید",
- "Unable to change the favourite state of the file" : "امکان تغییر حالت دلخواه فایل وجود ندارد",
- "Create new templates folder" : "پوشه قالب های جدید ایجاد کنید",
+ "Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
+ "Submitting fields…" : "Submitting fields…",
+ "Filter filenames…" : "Filter filenames…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} پوشه","{folderCount} پوشه"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} پرونده","{fileCount} پرونده"],
- "List of favorites files and folders." : "لیست فایل ها و پوشه های مورد علاقه",
+ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"],
+ "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file and 1 folder","{fileCount} files and 1 folder"],
+ "{fileCount} files and {folderCount} folders" : "{fileCount} files and {folderCount} folders",
+ "Personal Files" : "Personal Files",
"Text file" : "فایل متنی",
- "New text file.txt" : "پروندهٔ متنی جدید با پسوند txt"
+ "New text file.txt" : "پروندهٔ متنی جدید با پسوند txt",
+ "%1$s (renamed)" : "%1$s (renamed)",
+ "renamed file" : "renamed file",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js
index 893c3061df0..99c5fc7ce39 100644
--- a/apps/files/l10n/fi.js
+++ b/apps/files/l10n/fi.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Suosikkitiedostot",
"No favorites" : "Ei suosikkeja",
"More favorites" : "Lisää suosikeja",
- "Upload (max. %s)" : "Lähetys (enintään %s)",
"Accept" : "Hyväksy",
"Reject" : "Hylkää",
"Incoming ownership transfer from {user}" : "Saapuva omistajuussiirto käyttäjältä {user}",
@@ -87,6 +86,12 @@ OC.L10N.register(
"Invalid filename." : "Epäkelpo tiedostonimi.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Kohteen \"{oldName}\" uudeksi nimeksi asetettiin \"{newName}\"",
"Rename file" : "Nimeä tiedosto uudelleen",
+ "Folder" : "Kansio",
+ "Unknown file type" : "Tuntematon tiedostotyyppi",
+ "{ext} image" : "{ext} kuva",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} ääni",
+ "{ext} text" : "{ext} teksti",
"Pending" : "Odottaa",
"Unknown date" : "Tuntematon päivämäärä",
"Clear filter" : "Tyhjennä suodatin",
@@ -95,6 +100,7 @@ OC.L10N.register(
"Active filters" : "Aktiiviset suodattimet",
"Remove filter" : "Poista suodatin",
"Name" : "Nimi",
+ "File type" : "Tiedoston tyyppi",
"Size" : "Koko",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" massatoiminto suoritettu",
"Actions" : "Toiminnot",
@@ -104,7 +110,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Painikkeilla varustetut sarakeotsikot ovat järjestettävissä.",
"This list is not fully rendered for performance 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.",
"File not found" : "Tiedostoa ei löytynyt",
- "{count} selected" : "{count} valittu",
"{usedQuotaByte} used" : "{usedQuotaByte} käytetty",
"{used} of {quota} used" : "{used}/{quota} käytetty",
"{relative}% used" : "{relative} % käytetty",
@@ -164,6 +169,7 @@ OC.L10N.register(
"Sort favorites first" : "Järjestä suosikit ensiksi",
"Sort folders before files" : "Järjestä kansiot ennen tiedostoja",
"Show hidden files" : "Näytä piilotetut tiedostot",
+ "Show file type column" : "Näytä tiedostotyypin sarake",
"Crop image previews" : "Rajaa kuvien esikatseluja",
"Enable the grid view" : "Käytä ruudukkonäkymää",
"Enable folder tree" : "Ota kansiopuu käyttöön",
@@ -227,8 +233,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Olet poistamassa {count} kohteen","Olet poistamassa {count} kohdetta"],
"Confirm deletion" : "Vahvista poistaminen",
"Cancel" : "Peruuta",
+ "Download" : "Lataa",
"Moving \"{source}\" to \"{destination}\" …" : "Siirretään \"{source}\" kohteeseen \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopioidaan \"{source}\" kohteeseen \"{destination}\" …",
+ "Destination is not a folder" : "Kohde ei ole kansio",
+ "This file/folder is already in that directory" : "Tämä tiedosto/kansio on jo kyseisessä kansiossa",
"(copy)" : "(kopioi)",
"Move cancelled" : "Siirtäminen peruttu",
"A file or folder with that name already exists in this folder" : "Tiedosto tai kansio tällä nimellä on jo olemassa tässä kansiossa",
@@ -244,10 +253,10 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Siirto- tai kopiointitoiminto peruttu",
"Open folder {displayName}" : "Avaa kansio {displayName}",
"Open in Files" : "Avaa tiedostosovelluksessa",
+ "Open locally" : "Avaa paikallisesti",
+ "Failed to redirect to client" : "Uudelleenohjaus asiakkaaseen epäonnistui",
"Open file locally" : "Avaa tiedosto paikallisesti",
"Retry and close" : "Yritä uudelleen ja sulje",
- "Failed to redirect to client" : "Uudelleenohjaus asiakkaaseen epäonnistui",
- "Open locally" : "Avaa paikallisesti",
"Rename" : "Nimeä uudelleen",
"Open details" : "Avaa yksityiskohdat",
"View in folder" : "Näe kansiossa",
@@ -284,12 +293,16 @@ OC.L10N.register(
"Files copied successfully" : "Tiedostot kopioitu onnistuneesti",
"Files moved successfully" : "Tiedostot siirretty onnistuneesti",
"Upload cancelled" : "Lataus peruutettu",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kohdetta \"{oldName}\" ei voitu nimetä uudelleen, koska sitä ei ole enää olemassa",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{newName}\" on jo käytössä kansiossa \"{dir}\". Valitse toinen nimi.",
+ "Could not rename \"{oldName}\"" : "Ei voitu nimetä uudelleen \"{oldName}\"",
"This operation is forbidden" : "Tämä toiminto on kielletty",
"This directory is unavailable, please check the logs or contact the administrator" : "Hakemisto ei ole käytettävissä. Tarkista lokit tai ole yhteydessä ylläpitoon.",
"Storage is temporarily not available" : "Tallennustila on tilapäisesti pois käytöstä",
"Unexpected error: {error}" : "Odottamaton virhe: {error}",
"_%n file_::_%n files_" : ["%n tiedosto","%n tiedostoa"],
"_%n folder_::_%n folders_" : ["%n kansio","%n kansiota"],
+ "_%n hidden_::_%n hidden_" : ["%n piilotettu","%n piilotettua"],
"Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" ei ole sallittu tiedoston nimessä.",
"\"{extension}\" is not an allowed filetype." : "\"{extension}\" ei ole sallitttu tiedostotyyppi.",
@@ -313,7 +326,6 @@ OC.L10N.register(
"Upload too large" : "Lähetettävä tiedosto on liian suuri",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan.",
"File could not be found" : "Tiedostoa ei löytynyt",
- "Download" : "Lataa",
"Show list view" : "Näytä listanäkymä",
"Show grid view" : "Näytä ruudukkonäkymä",
"Close" : "Sulje",
@@ -352,9 +364,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Kopioitu {origin} kohteeseen {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopioitu {origin} ja {nbfiles} muuta tiedostoa kohteeseen {destination}",
"{newName} already exists" : "{newName} on jo olemassa",
- "Could not rename \"{fileName}\", it does not exist any more" : "Tiedoston \"{fileName}\" nimeäminen uudelleen ei onnistunut, koska sitä ei ole enää olemassa",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{targetName}\" on jo käytössä kansiossa \"{dir}\". Valitse toinen nimi.",
- "Could not rename \"{fileName}\"" : "Tiedoston \"{fileName}\" nimeäminen uudelleen ei onnistunut",
"Could not create file \"{file}\"" : "Tiedostoa \"{file}\" ei voitu luoda",
"Could not create file \"{file}\" because it already exists" : "Tiedostoa \"{file}\" ei voitu luoda, koska se on jo olemassa",
"Could not create folder \"{dir}\" because it already exists" : "Kansiota \"{dir}\" ei voitu luoda, koska se on jo olemassa",
@@ -387,31 +396,20 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Suora linkki kopioitu (toimii vain henkilöillä, joilla on pääsyoikeus tähän tiedostoon/kansioon)",
"Path" : "Polku",
"_%n byte_::_%n bytes_" : ["%n tavu","%n tavua"],
- "Favorited" : "Lisätty suosikkeihin",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopioi suora linkki (toimii vain henkilöillä, joilla on pääsyoikeus tähän tiedostoon/kansioon)",
"Upload file" : "Lähetä tiedosto",
- "Not favorited" : "Ei suosikeissa",
"An error occurred while trying to update the tags" : "Tunnisteiden päivitystä yrittäessä tapahtui virhe",
- "You don't have permission to upload or create files here." : "Sinulla ei ole oikeutta lähettää tai luoda tiedostoja tänne.",
- "Storage informations" : "Tallennustilan tietoja",
- "Choose file" : "Valitse tiedosto",
- "Go to the previous folder" : "Siirry edelliseen kansioon",
- "Open the files app settings" : "Avaa tiedostosovelluksen asetukset",
- "Unable to change the favourite state of the file" : "Suosikki-tilan muuttaminen epäonnistui.",
- "Edit file locally" : "Muokkaa tiedostoa paikallisesti",
- "Create new templates folder" : "Luo uusi mallipohjien kansio",
+ "Upload (max. %s)" : "Lähetys (enintään %s)",
+ "Submitting fields…" : "Lähetetään tietoja...",
+ "Filter filenames…" : "Suodata tiedostonimiä...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kansio","{folderCount} kansiota"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} tiedosto","{fileCount} tiedostoa"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tiedosto ja {folderCount} kansio","1 tiedosto ja {folderCount} kansiota"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} tiedosto ja 1 kansio","{fileCount} tiedostoa ja 1 kansio"],
"{fileCount} files and {folderCount} folders" : "{fileCount} tiedostoa ja {folderCount} kansiota",
- "List of favorites files and folders." : "Luettelo suosikkitiedostoista ja -kansioista.",
"Personal Files" : "Henkilökohtaiset tiedostot",
"Text file" : "Tekstitiedosto",
"New text file.txt" : "Uusi tekstitiedosto.txt",
- "Submitting fields…" : "Lähetetään tietoja...",
- "Filter filenames…" : "Suodata tiedostonimiä...",
- "{count} files could not be converted" : "{count} tiedostoa ei voitu muuntaa",
- "{count} files successfully converted" : "{count} tiedostoa muunnettu onnistuneesti"
+ "%1$s (renamed)" : "%1$s (nimetty uudelleen)"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json
index b3459c5ae0e..d8f8ee3866b 100644
--- a/apps/files/l10n/fi.json
+++ b/apps/files/l10n/fi.json
@@ -52,7 +52,6 @@
"Favorite files" : "Suosikkitiedostot",
"No favorites" : "Ei suosikkeja",
"More favorites" : "Lisää suosikeja",
- "Upload (max. %s)" : "Lähetys (enintään %s)",
"Accept" : "Hyväksy",
"Reject" : "Hylkää",
"Incoming ownership transfer from {user}" : "Saapuva omistajuussiirto käyttäjältä {user}",
@@ -85,6 +84,12 @@
"Invalid filename." : "Epäkelpo tiedostonimi.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Kohteen \"{oldName}\" uudeksi nimeksi asetettiin \"{newName}\"",
"Rename file" : "Nimeä tiedosto uudelleen",
+ "Folder" : "Kansio",
+ "Unknown file type" : "Tuntematon tiedostotyyppi",
+ "{ext} image" : "{ext} kuva",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} ääni",
+ "{ext} text" : "{ext} teksti",
"Pending" : "Odottaa",
"Unknown date" : "Tuntematon päivämäärä",
"Clear filter" : "Tyhjennä suodatin",
@@ -93,6 +98,7 @@
"Active filters" : "Aktiiviset suodattimet",
"Remove filter" : "Poista suodatin",
"Name" : "Nimi",
+ "File type" : "Tiedoston tyyppi",
"Size" : "Koko",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" massatoiminto suoritettu",
"Actions" : "Toiminnot",
@@ -102,7 +108,6 @@
"Column headers with buttons are sortable." : "Painikkeilla varustetut sarakeotsikot ovat järjestettävissä.",
"This list is not fully rendered for performance 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.",
"File not found" : "Tiedostoa ei löytynyt",
- "{count} selected" : "{count} valittu",
"{usedQuotaByte} used" : "{usedQuotaByte} käytetty",
"{used} of {quota} used" : "{used}/{quota} käytetty",
"{relative}% used" : "{relative} % käytetty",
@@ -162,6 +167,7 @@
"Sort favorites first" : "Järjestä suosikit ensiksi",
"Sort folders before files" : "Järjestä kansiot ennen tiedostoja",
"Show hidden files" : "Näytä piilotetut tiedostot",
+ "Show file type column" : "Näytä tiedostotyypin sarake",
"Crop image previews" : "Rajaa kuvien esikatseluja",
"Enable the grid view" : "Käytä ruudukkonäkymää",
"Enable folder tree" : "Ota kansiopuu käyttöön",
@@ -225,8 +231,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Olet poistamassa {count} kohteen","Olet poistamassa {count} kohdetta"],
"Confirm deletion" : "Vahvista poistaminen",
"Cancel" : "Peruuta",
+ "Download" : "Lataa",
"Moving \"{source}\" to \"{destination}\" …" : "Siirretään \"{source}\" kohteeseen \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopioidaan \"{source}\" kohteeseen \"{destination}\" …",
+ "Destination is not a folder" : "Kohde ei ole kansio",
+ "This file/folder is already in that directory" : "Tämä tiedosto/kansio on jo kyseisessä kansiossa",
"(copy)" : "(kopioi)",
"Move cancelled" : "Siirtäminen peruttu",
"A file or folder with that name already exists in this folder" : "Tiedosto tai kansio tällä nimellä on jo olemassa tässä kansiossa",
@@ -242,10 +251,10 @@
"Cancelled move or copy operation" : "Siirto- tai kopiointitoiminto peruttu",
"Open folder {displayName}" : "Avaa kansio {displayName}",
"Open in Files" : "Avaa tiedostosovelluksessa",
+ "Open locally" : "Avaa paikallisesti",
+ "Failed to redirect to client" : "Uudelleenohjaus asiakkaaseen epäonnistui",
"Open file locally" : "Avaa tiedosto paikallisesti",
"Retry and close" : "Yritä uudelleen ja sulje",
- "Failed to redirect to client" : "Uudelleenohjaus asiakkaaseen epäonnistui",
- "Open locally" : "Avaa paikallisesti",
"Rename" : "Nimeä uudelleen",
"Open details" : "Avaa yksityiskohdat",
"View in folder" : "Näe kansiossa",
@@ -282,12 +291,16 @@
"Files copied successfully" : "Tiedostot kopioitu onnistuneesti",
"Files moved successfully" : "Tiedostot siirretty onnistuneesti",
"Upload cancelled" : "Lataus peruutettu",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kohdetta \"{oldName}\" ei voitu nimetä uudelleen, koska sitä ei ole enää olemassa",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{newName}\" on jo käytössä kansiossa \"{dir}\". Valitse toinen nimi.",
+ "Could not rename \"{oldName}\"" : "Ei voitu nimetä uudelleen \"{oldName}\"",
"This operation is forbidden" : "Tämä toiminto on kielletty",
"This directory is unavailable, please check the logs or contact the administrator" : "Hakemisto ei ole käytettävissä. Tarkista lokit tai ole yhteydessä ylläpitoon.",
"Storage is temporarily not available" : "Tallennustila on tilapäisesti pois käytöstä",
"Unexpected error: {error}" : "Odottamaton virhe: {error}",
"_%n file_::_%n files_" : ["%n tiedosto","%n tiedostoa"],
"_%n folder_::_%n folders_" : ["%n kansio","%n kansiota"],
+ "_%n hidden_::_%n hidden_" : ["%n piilotettu","%n piilotettua"],
"Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" ei ole sallittu tiedoston nimessä.",
"\"{extension}\" is not an allowed filetype." : "\"{extension}\" ei ole sallitttu tiedostotyyppi.",
@@ -311,7 +324,6 @@
"Upload too large" : "Lähetettävä tiedosto on liian suuri",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Lähetettäväksi valitsemasi tiedostot ylittävät palvelimen salliman tiedostokoon rajan.",
"File could not be found" : "Tiedostoa ei löytynyt",
- "Download" : "Lataa",
"Show list view" : "Näytä listanäkymä",
"Show grid view" : "Näytä ruudukkonäkymä",
"Close" : "Sulje",
@@ -350,9 +362,6 @@
"Copied {origin} inside {destination}" : "Kopioitu {origin} kohteeseen {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopioitu {origin} ja {nbfiles} muuta tiedostoa kohteeseen {destination}",
"{newName} already exists" : "{newName} on jo olemassa",
- "Could not rename \"{fileName}\", it does not exist any more" : "Tiedoston \"{fileName}\" nimeäminen uudelleen ei onnistunut, koska sitä ei ole enää olemassa",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{targetName}\" on jo käytössä kansiossa \"{dir}\". Valitse toinen nimi.",
- "Could not rename \"{fileName}\"" : "Tiedoston \"{fileName}\" nimeäminen uudelleen ei onnistunut",
"Could not create file \"{file}\"" : "Tiedostoa \"{file}\" ei voitu luoda",
"Could not create file \"{file}\" because it already exists" : "Tiedostoa \"{file}\" ei voitu luoda, koska se on jo olemassa",
"Could not create folder \"{dir}\" because it already exists" : "Kansiota \"{dir}\" ei voitu luoda, koska se on jo olemassa",
@@ -385,31 +394,20 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Suora linkki kopioitu (toimii vain henkilöillä, joilla on pääsyoikeus tähän tiedostoon/kansioon)",
"Path" : "Polku",
"_%n byte_::_%n bytes_" : ["%n tavu","%n tavua"],
- "Favorited" : "Lisätty suosikkeihin",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopioi suora linkki (toimii vain henkilöillä, joilla on pääsyoikeus tähän tiedostoon/kansioon)",
"Upload file" : "Lähetä tiedosto",
- "Not favorited" : "Ei suosikeissa",
"An error occurred while trying to update the tags" : "Tunnisteiden päivitystä yrittäessä tapahtui virhe",
- "You don't have permission to upload or create files here." : "Sinulla ei ole oikeutta lähettää tai luoda tiedostoja tänne.",
- "Storage informations" : "Tallennustilan tietoja",
- "Choose file" : "Valitse tiedosto",
- "Go to the previous folder" : "Siirry edelliseen kansioon",
- "Open the files app settings" : "Avaa tiedostosovelluksen asetukset",
- "Unable to change the favourite state of the file" : "Suosikki-tilan muuttaminen epäonnistui.",
- "Edit file locally" : "Muokkaa tiedostoa paikallisesti",
- "Create new templates folder" : "Luo uusi mallipohjien kansio",
+ "Upload (max. %s)" : "Lähetys (enintään %s)",
+ "Submitting fields…" : "Lähetetään tietoja...",
+ "Filter filenames…" : "Suodata tiedostonimiä...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} kansio","{folderCount} kansiota"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} tiedosto","{fileCount} tiedostoa"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tiedosto ja {folderCount} kansio","1 tiedosto ja {folderCount} kansiota"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} tiedosto ja 1 kansio","{fileCount} tiedostoa ja 1 kansio"],
"{fileCount} files and {folderCount} folders" : "{fileCount} tiedostoa ja {folderCount} kansiota",
- "List of favorites files and folders." : "Luettelo suosikkitiedostoista ja -kansioista.",
"Personal Files" : "Henkilökohtaiset tiedostot",
"Text file" : "Tekstitiedosto",
"New text file.txt" : "Uusi tekstitiedosto.txt",
- "Submitting fields…" : "Lähetetään tietoja...",
- "Filter filenames…" : "Suodata tiedostonimiä...",
- "{count} files could not be converted" : "{count} tiedostoa ei voitu muuntaa",
- "{count} files successfully converted" : "{count} tiedostoa muunnettu onnistuneesti"
+ "%1$s (renamed)" : "%1$s (nimetty uudelleen)"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index e89de99e567..aa856f2e618 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Fichiers favoris",
"No favorites" : "Aucun favori",
"More favorites" : "Plus de favoris",
- "Upload (max. %s)" : "Envoi (max. %s)",
"Accept" : "Accepter",
"Reject" : "Refuser",
"Incoming ownership transfer from {user}" : "Transfert de propriété de la part de {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Transféré de %1$s à %2$s",
"Files compatibility" : "Compatibilité des fichiers",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permet de restreindre les noms de fichiers pour s'assurer que les fichiers peuvent être synchronisés avec tous les clients. Par défaut, tous les noms de fichier valides sur POSIX (c'est à dire sur Linux ou MacOS) sont acceptés.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Après avoir activé les noms de fichiers compatibles Windows, les fichiers existants ne peuvent plus être modifiés mais peuvent être renommés avec de nouveaux noms valides par leur propriétaire.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Il est également possible de migrer les fichiers automatiquement après avoir activé ce paramètre, veuillez vous référer à la documentation sur la commande occ.",
"Enforce Windows compatibility" : "Forcer la compatibilité Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Cela va bloquer les noms de fichier non valides sur les systèmes Windows, comme utiliser des noms réservés ou des caractères spéciaux. Mais cela ne renforcera pas la compatibilité de la sensibilité à la casse.",
"File Management" : "Gestion de fichiers",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Nom de fichier invalide.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" renommé en \"{newName}\"",
"Rename file" : "Renommer le fichier",
+ "Folder" : "Dossier",
+ "Unknown file type" : "Type de fichier inconnu",
+ "{ext} image" : "{ext} image",
+ "{ext} video" : "{ext} vidéo",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} texte",
"Pending" : "En attente",
"Unknown date" : "Date inconnue",
"Clear filter" : "Supprimer le filtre",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Récapitulatif du nombre total de lignes",
"Toggle selection for all files and folders" : "Basculer la sélection pour tous les fichiers et dossiers",
"Name" : "Nom",
+ "File type" : "Type de fichier",
"Size" : "Taille",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" a échoué pour certains éléments",
"\"{displayName}\" batch action executed successfully" : "L’action « {displayName} » par lot a été exécutée avec succès",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "L'entête des colonnes avec des boutons sont triables.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Cette liste n'est pas entièrement affichée pour des raisons de performances. Les fichiers seront affichés au fur et à mesure que vous naviguerez dans la liste.",
"File not found" : "Fichier non trouvé",
- "{count} selected" : "{count} sélectionné(s)",
+ "_{count} selected_::_{count} selected_" : ["{count} sélectionné","{count} sélectionné(s)","{count} sélectionné(s)"],
"{usedQuotaByte} used" : "{usedQuotaByte} utilisés",
"{used} of {quota} used" : "{used} utilisés sur {quota}",
"{relative}% used" : "{relative}% utilisés",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Trier les favoris en premier",
"Sort folders before files" : "Trier les dossiers avant les fichiers",
"Show hidden files" : "Montrer les fichiers masqués",
+ "Show file type column" : "Afficher la colonne du type de fichier",
"Crop image previews" : "Afficher en miniatures carrées",
"Enable the grid view" : "Activer la vue en grille",
"Enable folder tree" : "Activer l'arborescence des dossiers",
@@ -193,6 +202,7 @@ OC.L10N.register(
"Use this address to access your Files via WebDAV" : "Utilisez cette adresse pour accéder à vos fichiers via WebDAV",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Si vous avez activé le 2FA, vous devez créer et utiliser un nouveau mot de passe d'application en cliquant ici.",
"Warnings" : "Avertissements",
+ "Prevent warning dialogs from open or reenable them." : "Empêchez l'ouverture des boîtes de dialogue d'avertissement ou réactivez-les.",
"Show a warning dialog when changing a file extension." : "Afficher un avertissement quand l'extension du fichier est modifiée.",
"Keyboard shortcuts" : "Raccourcis clavier",
"Speed up your Files experience with these quick shortcuts." : "Accélérez votre expérience Fichiers avec ces raccourcis rapides.",
@@ -218,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Montrer ces raccourcis",
"You" : "Vous",
"Shared multiple times with different people" : "Partagé plusieurs fois avec plusieurs personnes",
+ "Unable to change the favorite 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",
"Owner" : "Propriétaire",
"Remove from favorites" : "Retirer des favoris",
@@ -234,6 +245,8 @@ OC.L10N.register(
"Failed to convert files: {message}" : "Impossible de convertir les fichiers : {message}",
"All files failed to be converted" : "Aucun fichier n'a pu être converti",
"One file could not be converted: {message}" : "Le fichier {message} n'a pas pu être converti",
+ "_One file could not be converted_::_%n files could not be converted_" : ["Un fichier n'a pas pu être converti","%n fichiers n'ont pas pu être convertis","%n fichiers n'ont pas pu être convertis"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Un fichier converti avec succès","%n fichiers convertis avec succès","%n fichiers convertis avec succès"],
"Files successfully converted" : "Fichiers convertis avec succès",
"Failed to convert files" : "Impossible de convertir les fichiers",
"Converting file …" : "Conversion du fichier...",
@@ -256,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Vous êtes sur le point de supprimer {count} élément","Vous êtes sur le point de supprimer {count} éléments","Vous êtes sur le point de supprimer {count} éléments"],
"Confirm deletion" : "Confirmer la suppression",
"Cancel" : "Annuler",
+ "Download" : "Télécharger",
"Moving \"{source}\" to \"{destination}\" …" : "Déplacement de \"{source}\" vers \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copie de \"{source}\" vers \"{destination}\" …",
+ "Destination is not a folder" : "La destination n'est pas un dossier",
+ "This file/folder is already in that directory" : "Ce fichier/dossier se trouve déjà dans ce dossier",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Vous ne pouvez pas déplacer un fichier/dossier sur lui-même ou dans un sous-dossier de celui-ci",
"(copy)" : "(copie)",
"(copy %n)" : "(copier %n)",
@@ -276,11 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Opération de déplacement ou de copie annulée",
"Open folder {displayName}" : "Ouvrir le dossier {displayName}",
"Open in Files" : "Ouvrir dans Fichiers",
+ "Open locally" : "Ouvrir localement",
+ "Failed to redirect to client" : "Échec de la redirection vers le client",
"Open file locally" : "Ouvrir le fichier localement",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Le fichier devrait maintenant s'ouvrir sur votre appareil. Si ce n'est pas le cas, vérifiez que vous avez installé l'application de bureau.",
"Retry and close" : "Réessayer et fermer",
- "Failed to redirect to client" : "Échec de la redirection vers le client",
- "Open locally" : "Ouvrir localement",
+ "Open online" : "Ouvrir en ligne",
"Rename" : "Renommer",
"Open details" : "Ouvrir les détails",
"View in folder" : "Afficher dans le dossier",
@@ -318,12 +335,16 @@ OC.L10N.register(
"Files moved successfully" : "Fichiers déplacés avec succès",
"Conflicts resolution skipped" : "Résolution des conflits ignorée",
"Upload cancelled" : "Téléversement annulé",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Impossible de renommer \"{oldName}\", il n'existe plus.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Le nom \"{newName}\" est déjà utilisé dans le dossier \"{dir}\". Veuillez choisir un autre nom.",
+ "Could not rename \"{oldName}\"" : "Impossible de renommer \"{oldName}\"",
"This operation is forbidden" : "Cette opération est interdite",
"This directory is unavailable, please check the logs or contact the administrator" : "Ce répertoire est indisponible, merci de consulter les journaux ou de contacter votre administrateur",
"Storage is temporarily not available" : "Le support de stockage est temporairement indisponible",
"Unexpected error: {error}" : "Erreur inattendue: {error}",
"_%n file_::_%n files_" : ["%n fichier","%n fichiers","%n fichiers"],
"_%n folder_::_%n folders_" : ["%n dossier","%n dossiers","%n dossiers"],
+ "_%n hidden_::_%n hidden_" : ["%n caché","%n cachés","%n cachés"],
"Filename must not be empty." : "Le nom du fichier ne doit pas être vide.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" n'est pas autorisé dans un nom de fichier.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" est un nom réservé et il n'est pas autorisé dans les noms de fichier.",
@@ -348,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Données envoyées trop volumineuses",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Les fichiers que vous essayez d’envoyer dépassent la taille maximale d’envoi permise par ce serveur.",
"File could not be found" : "Fichier introuvable",
- "Download" : "Télécharger",
"Show list view" : "Afficher la vue en liste",
"Show grid view" : "Afficher la vue en grille",
"Close" : "Fermer",
@@ -387,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} copié dans {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} et {nbfiles} autres fichiers copiés dans {destination}",
"{newName} already exists" : "{newName} existe déjà",
- "Could not rename \"{fileName}\", it does not exist any more" : "Impossible de renommer \"{fileName}\" car il n'existe plus",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Le nom « {targetName} » est déjà utilisé dans le dossier « {dir} ». Merci de choisir un nom différent.",
- "Could not rename \"{fileName}\"" : "Impossible de renommer « {fileName} »",
"Could not create file \"{file}\"" : "Impossible de créer le fichier « {file} »",
"Could not create file \"{file}\" because it already exists" : "Impossible de créer le fichier « {file} » car il existe déjà",
"Could not create folder \"{dir}\" because it already exists" : "Impossible de créer le dossier \"{dir}\" car il existe déjà",
@@ -422,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Le lien direct a été copié (fonctionne uniquement pour les personnes qui ont accès à ce fichier ou à ce dossier)",
"Path" : "Chemin",
"_%n byte_::_%n bytes_" : ["%n octet","%n octets","%n octets"],
- "Favorited" : "Marqué comme favori",
+ "Favored" : "Favoris",
+ "Favor" : "Mettre en favoris",
"Copy direct link (only works for people who have access to this file/folder)" : "Copier le lien direct (fonctionne uniquement pour les personnes pouvant accéder à ce fichier ou à ce dossier)",
"Upload file" : "Téléverser un fichier",
- "Not favorited" : "Non marqué comme favori",
+ "Not favored" : "Non favoris",
"An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes",
- "You don't have permission to upload or create files here." : "Vous n'avez pas la permission de téléverser ou créer de fichiers ici.",
- "Storage informations" : "Informations sur le stockage",
- "Choose file" : "Choisir un fichier",
- "Go to the previous folder" : "Aller au dossier précédent",
- "Open the files app settings" : "Ouvrir les paramètres de l'application Fichiers",
- "Unable to change the favourite state of the file" : "Impossible de modifier l'état favori du fichier",
- "Edit file locally" : "Éditer le fichier localement",
- "Edit online" : "Éditer en ligne",
- "Create new templates folder" : "Créer un nouveau dossier de modèles",
+ "Upload (max. %s)" : "Envoi (max. %s)",
+ "Submitting fields…" : "Validation des champs...",
+ "Filter filenames…" : "Filtrer par nom de fichier…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} dossier","{folderCount} dossiers","{folderCount} dossiers"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fichier","{fileCount} fichiers","{fileCount} fichiers"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fichier et {folderCount} dossier","1 fichier et {folderCount} dossiers","1 fichier et {folderCount} dossiers"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fichier et 1 dossier","{fileCount} fichiers et 1 dossier","{fileCount} fichiers et 1 dossier"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fichiers et {folderCount} dossiers",
- "List of favorites files and folders." : "Liste des fichiers et dossiers favoris.",
"Personal Files" : "Fichiers personnels",
"Text file" : "Fichier texte",
"New text file.txt" : "Nouveau fichier texte.txt",
- "Favored" : "Favoris",
- "Favor" : "Mettre en favoris",
- "Not favored" : "Non favoris",
- "Submitting fields…" : "Validation des champs...",
- "Filter filenames…" : "Filtrer par nom de fichier…",
- "{count} files could not be converted" : "{count}fichier n'a pas pu être converti",
- "{count} files successfully converted" : "{count}fichier converti avec succès"
+ "%1$s (renamed)" : "%1$s (renommé)",
+ "renamed file" : "fichier renommé",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Après avoir activé les noms de fichiers compatibles Windows, les fichiers existants ne peuvent plus être modifiés, mais peuvent être renommés avec des noms valides par leur propriétaire."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 52124d3e7eb..73ecb0659bb 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -52,7 +52,6 @@
"Favorite files" : "Fichiers favoris",
"No favorites" : "Aucun favori",
"More favorites" : "Plus de favoris",
- "Upload (max. %s)" : "Envoi (max. %s)",
"Accept" : "Accepter",
"Reject" : "Refuser",
"Incoming ownership transfer from {user}" : "Transfert de propriété de la part de {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Transféré de %1$s à %2$s",
"Files compatibility" : "Compatibilité des fichiers",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permet de restreindre les noms de fichiers pour s'assurer que les fichiers peuvent être synchronisés avec tous les clients. Par défaut, tous les noms de fichier valides sur POSIX (c'est à dire sur Linux ou MacOS) sont acceptés.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Après avoir activé les noms de fichiers compatibles Windows, les fichiers existants ne peuvent plus être modifiés mais peuvent être renommés avec de nouveaux noms valides par leur propriétaire.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Il est également possible de migrer les fichiers automatiquement après avoir activé ce paramètre, veuillez vous référer à la documentation sur la commande occ.",
"Enforce Windows compatibility" : "Forcer la compatibilité Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Cela va bloquer les noms de fichier non valides sur les systèmes Windows, comme utiliser des noms réservés ou des caractères spéciaux. Mais cela ne renforcera pas la compatibilité de la sensibilité à la casse.",
"File Management" : "Gestion de fichiers",
@@ -93,6 +94,12 @@
"Invalid filename." : "Nom de fichier invalide.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" renommé en \"{newName}\"",
"Rename file" : "Renommer le fichier",
+ "Folder" : "Dossier",
+ "Unknown file type" : "Type de fichier inconnu",
+ "{ext} image" : "{ext} image",
+ "{ext} video" : "{ext} vidéo",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} texte",
"Pending" : "En attente",
"Unknown date" : "Date inconnue",
"Clear filter" : "Supprimer le filtre",
@@ -103,6 +110,7 @@
"Total rows summary" : "Récapitulatif du nombre total de lignes",
"Toggle selection for all files and folders" : "Basculer la sélection pour tous les fichiers et dossiers",
"Name" : "Nom",
+ "File type" : "Type de fichier",
"Size" : "Taille",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" a échoué pour certains éléments",
"\"{displayName}\" batch action executed successfully" : "L’action « {displayName} » par lot a été exécutée avec succès",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "L'entête des colonnes avec des boutons sont triables.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Cette liste n'est pas entièrement affichée pour des raisons de performances. Les fichiers seront affichés au fur et à mesure que vous naviguerez dans la liste.",
"File not found" : "Fichier non trouvé",
- "{count} selected" : "{count} sélectionné(s)",
+ "_{count} selected_::_{count} selected_" : ["{count} sélectionné","{count} sélectionné(s)","{count} sélectionné(s)"],
"{usedQuotaByte} used" : "{usedQuotaByte} utilisés",
"{used} of {quota} used" : "{used} utilisés sur {quota}",
"{relative}% used" : "{relative}% utilisés",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Trier les favoris en premier",
"Sort folders before files" : "Trier les dossiers avant les fichiers",
"Show hidden files" : "Montrer les fichiers masqués",
+ "Show file type column" : "Afficher la colonne du type de fichier",
"Crop image previews" : "Afficher en miniatures carrées",
"Enable the grid view" : "Activer la vue en grille",
"Enable folder tree" : "Activer l'arborescence des dossiers",
@@ -191,6 +200,7 @@
"Use this address to access your Files via WebDAV" : "Utilisez cette adresse pour accéder à vos fichiers via WebDAV",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Si vous avez activé le 2FA, vous devez créer et utiliser un nouveau mot de passe d'application en cliquant ici.",
"Warnings" : "Avertissements",
+ "Prevent warning dialogs from open or reenable them." : "Empêchez l'ouverture des boîtes de dialogue d'avertissement ou réactivez-les.",
"Show a warning dialog when changing a file extension." : "Afficher un avertissement quand l'extension du fichier est modifiée.",
"Keyboard shortcuts" : "Raccourcis clavier",
"Speed up your Files experience with these quick shortcuts." : "Accélérez votre expérience Fichiers avec ces raccourcis rapides.",
@@ -216,6 +226,7 @@
"Show those shortcuts" : "Montrer ces raccourcis",
"You" : "Vous",
"Shared multiple times with different people" : "Partagé plusieurs fois avec plusieurs personnes",
+ "Unable to change the favorite 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",
"Owner" : "Propriétaire",
"Remove from favorites" : "Retirer des favoris",
@@ -232,6 +243,8 @@
"Failed to convert files: {message}" : "Impossible de convertir les fichiers : {message}",
"All files failed to be converted" : "Aucun fichier n'a pu être converti",
"One file could not be converted: {message}" : "Le fichier {message} n'a pas pu être converti",
+ "_One file could not be converted_::_%n files could not be converted_" : ["Un fichier n'a pas pu être converti","%n fichiers n'ont pas pu être convertis","%n fichiers n'ont pas pu être convertis"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Un fichier converti avec succès","%n fichiers convertis avec succès","%n fichiers convertis avec succès"],
"Files successfully converted" : "Fichiers convertis avec succès",
"Failed to convert files" : "Impossible de convertir les fichiers",
"Converting file …" : "Conversion du fichier...",
@@ -254,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Vous êtes sur le point de supprimer {count} élément","Vous êtes sur le point de supprimer {count} éléments","Vous êtes sur le point de supprimer {count} éléments"],
"Confirm deletion" : "Confirmer la suppression",
"Cancel" : "Annuler",
+ "Download" : "Télécharger",
"Moving \"{source}\" to \"{destination}\" …" : "Déplacement de \"{source}\" vers \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copie de \"{source}\" vers \"{destination}\" …",
+ "Destination is not a folder" : "La destination n'est pas un dossier",
+ "This file/folder is already in that directory" : "Ce fichier/dossier se trouve déjà dans ce dossier",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Vous ne pouvez pas déplacer un fichier/dossier sur lui-même ou dans un sous-dossier de celui-ci",
"(copy)" : "(copie)",
"(copy %n)" : "(copier %n)",
@@ -274,11 +290,12 @@
"Cancelled move or copy operation" : "Opération de déplacement ou de copie annulée",
"Open folder {displayName}" : "Ouvrir le dossier {displayName}",
"Open in Files" : "Ouvrir dans Fichiers",
+ "Open locally" : "Ouvrir localement",
+ "Failed to redirect to client" : "Échec de la redirection vers le client",
"Open file locally" : "Ouvrir le fichier localement",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Le fichier devrait maintenant s'ouvrir sur votre appareil. Si ce n'est pas le cas, vérifiez que vous avez installé l'application de bureau.",
"Retry and close" : "Réessayer et fermer",
- "Failed to redirect to client" : "Échec de la redirection vers le client",
- "Open locally" : "Ouvrir localement",
+ "Open online" : "Ouvrir en ligne",
"Rename" : "Renommer",
"Open details" : "Ouvrir les détails",
"View in folder" : "Afficher dans le dossier",
@@ -316,12 +333,16 @@
"Files moved successfully" : "Fichiers déplacés avec succès",
"Conflicts resolution skipped" : "Résolution des conflits ignorée",
"Upload cancelled" : "Téléversement annulé",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Impossible de renommer \"{oldName}\", il n'existe plus.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Le nom \"{newName}\" est déjà utilisé dans le dossier \"{dir}\". Veuillez choisir un autre nom.",
+ "Could not rename \"{oldName}\"" : "Impossible de renommer \"{oldName}\"",
"This operation is forbidden" : "Cette opération est interdite",
"This directory is unavailable, please check the logs or contact the administrator" : "Ce répertoire est indisponible, merci de consulter les journaux ou de contacter votre administrateur",
"Storage is temporarily not available" : "Le support de stockage est temporairement indisponible",
"Unexpected error: {error}" : "Erreur inattendue: {error}",
"_%n file_::_%n files_" : ["%n fichier","%n fichiers","%n fichiers"],
"_%n folder_::_%n folders_" : ["%n dossier","%n dossiers","%n dossiers"],
+ "_%n hidden_::_%n hidden_" : ["%n caché","%n cachés","%n cachés"],
"Filename must not be empty." : "Le nom du fichier ne doit pas être vide.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" n'est pas autorisé dans un nom de fichier.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" est un nom réservé et il n'est pas autorisé dans les noms de fichier.",
@@ -346,7 +367,6 @@
"Upload too large" : "Données envoyées trop volumineuses",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Les fichiers que vous essayez d’envoyer dépassent la taille maximale d’envoi permise par ce serveur.",
"File could not be found" : "Fichier introuvable",
- "Download" : "Télécharger",
"Show list view" : "Afficher la vue en liste",
"Show grid view" : "Afficher la vue en grille",
"Close" : "Fermer",
@@ -385,9 +405,6 @@
"Copied {origin} inside {destination}" : "{origin} copié dans {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} et {nbfiles} autres fichiers copiés dans {destination}",
"{newName} already exists" : "{newName} existe déjà",
- "Could not rename \"{fileName}\", it does not exist any more" : "Impossible de renommer \"{fileName}\" car il n'existe plus",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Le nom « {targetName} » est déjà utilisé dans le dossier « {dir} ». Merci de choisir un nom différent.",
- "Could not rename \"{fileName}\"" : "Impossible de renommer « {fileName} »",
"Could not create file \"{file}\"" : "Impossible de créer le fichier « {file} »",
"Could not create file \"{file}\" because it already exists" : "Impossible de créer le fichier « {file} » car il existe déjà",
"Could not create folder \"{dir}\" because it already exists" : "Impossible de créer le dossier \"{dir}\" car il existe déjà",
@@ -420,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Le lien direct a été copié (fonctionne uniquement pour les personnes qui ont accès à ce fichier ou à ce dossier)",
"Path" : "Chemin",
"_%n byte_::_%n bytes_" : ["%n octet","%n octets","%n octets"],
- "Favorited" : "Marqué comme favori",
+ "Favored" : "Favoris",
+ "Favor" : "Mettre en favoris",
"Copy direct link (only works for people who have access to this file/folder)" : "Copier le lien direct (fonctionne uniquement pour les personnes pouvant accéder à ce fichier ou à ce dossier)",
"Upload file" : "Téléverser un fichier",
- "Not favorited" : "Non marqué comme favori",
+ "Not favored" : "Non favoris",
"An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes",
- "You don't have permission to upload or create files here." : "Vous n'avez pas la permission de téléverser ou créer de fichiers ici.",
- "Storage informations" : "Informations sur le stockage",
- "Choose file" : "Choisir un fichier",
- "Go to the previous folder" : "Aller au dossier précédent",
- "Open the files app settings" : "Ouvrir les paramètres de l'application Fichiers",
- "Unable to change the favourite state of the file" : "Impossible de modifier l'état favori du fichier",
- "Edit file locally" : "Éditer le fichier localement",
- "Edit online" : "Éditer en ligne",
- "Create new templates folder" : "Créer un nouveau dossier de modèles",
+ "Upload (max. %s)" : "Envoi (max. %s)",
+ "Submitting fields…" : "Validation des champs...",
+ "Filter filenames…" : "Filtrer par nom de fichier…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} dossier","{folderCount} dossiers","{folderCount} dossiers"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fichier","{fileCount} fichiers","{fileCount} fichiers"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fichier et {folderCount} dossier","1 fichier et {folderCount} dossiers","1 fichier et {folderCount} dossiers"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fichier et 1 dossier","{fileCount} fichiers et 1 dossier","{fileCount} fichiers et 1 dossier"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fichiers et {folderCount} dossiers",
- "List of favorites files and folders." : "Liste des fichiers et dossiers favoris.",
"Personal Files" : "Fichiers personnels",
"Text file" : "Fichier texte",
"New text file.txt" : "Nouveau fichier texte.txt",
- "Favored" : "Favoris",
- "Favor" : "Mettre en favoris",
- "Not favored" : "Non favoris",
- "Submitting fields…" : "Validation des champs...",
- "Filter filenames…" : "Filtrer par nom de fichier…",
- "{count} files could not be converted" : "{count}fichier n'a pas pu être converti",
- "{count} files successfully converted" : "{count}fichier converti avec succès"
+ "%1$s (renamed)" : "%1$s (renommé)",
+ "renamed file" : "fichier renommé",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Après avoir activé les noms de fichiers compatibles Windows, les fichiers existants ne peuvent plus être modifiés, mais peuvent être renommés avec des noms valides par leur propriétaire."
},"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/files/l10n/fy_NL.js b/apps/files/l10n/fy_NL.js
deleted file mode 100644
index 7988332fa91..00000000000
--- a/apps/files/l10n/fy_NL.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/fy_NL.json b/apps/files/l10n/fy_NL.json
deleted file mode 100644
index ef5fc586755..00000000000
--- a/apps/files/l10n/fy_NL.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/ga.js b/apps/files/l10n/ga.js
index abcbbb78d80..cc7185656dd 100644
--- a/apps/files/l10n/ga.js
+++ b/apps/files/l10n/ga.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Comhaid is fearr leat",
"No favorites" : "Gan aon cheanáin",
"More favorites" : "Gan aon cheanáin",
- "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)",
"Accept" : "Glac",
"Reject" : "Diúltaigh",
"Incoming ownership transfer from {user}" : "Aistriú úinéireachta isteach ó {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Aistrithe ó %1$s ar %2$s",
"Files compatibility" : "Comhoiriúnacht comhaid",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ceadaigh comhaid a shrianadh lena chinntiú gur féidir comhaid a shioncronú le gach cliant. De réir réamhshocraithe ceadaítear gach comhadainm atá bailí ar POSIX (m.sh. Linux nó macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Tar éis na hainmneacha comhad atá comhoiriúnach le Windows a chumasú, ní féidir comhaid atá ann cheana a mhodhnú a thuilleadh ach is féidir lena n-úinéir iad a athainmniú go hainmneacha nua bailí.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Is féidir comhaid a aistriú go huathoibríoch freisin tar éis an socrú seo a chumasú, féach ar an doiciméadú faoin ordú occ.",
"Enforce Windows compatibility" : "Comhoiriúnacht Windows a fhorfheidhmiú",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Cuirfidh sé seo bac ar ainmneacha comhaid nach bhfuil bailí ar chórais Windows, ar nós ainmneacha forchoimeádta nó carachtair speisialta a úsáid. Ach ní chuirfidh sé seo i bhfeidhm comhoiriúnacht íogaireacht cáis.",
"File Management" : "Bainistíocht Comhad",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Ainm comhaid neamhbhailí.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Athainmnithe \"{oldName}\" go \"{newName}\"",
"Rename file" : "Athainmnigh an comhad",
+ "Folder" : "Fillteán",
+ "Unknown file type" : "Cineál comhaid anaithnid",
+ "{ext} image" : "íomhá {ext}",
+ "{ext} video" : "físeán {ext}",
+ "{ext} audio" : "fuaim {ext}",
+ "{ext} text" : "téacs {ext}",
"Pending" : "Ar feitheamh",
"Unknown date" : "Dáta anaithnid",
"Clear filter" : "Glan an scagaire",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Achoimre ar na sraitheanna iomlána",
"Toggle selection for all files and folders" : "Scoránaigh an roghnúchán do gach comhad agus fillteán",
"Name" : "Ainm",
+ "File type" : "Cineál comhaid",
"Size" : "Méid",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" theip ar roinnt gnéithe",
"\"{displayName}\" batch action executed successfully" : "D'éirigh le beart baisce \"{displayName}\" a rith",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Is féidir ceanntásca colún le cnaipí a shórtáil.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Níl an liosta seo le fáil go hiomlán ar chúiseanna feidhmíochta. Déanfar na comhaid a rindreáil agus tú ag dul tríd an liosta.",
"File not found" : "Comhad gan aimsiú",
- "{count} selected" : "{count} roghnaithe",
+ "_{count} selected_::_{count} selected_" : ["{count} roghnaithe","{count} roghnaithe","{count} roghnaithe","{count} roghnaithe","{count} roghnaithe"],
"{usedQuotaByte} used" : "{usedQuotaByte} úsáidte",
"{used} of {quota} used" : "{used} de {quota} in úsáid",
"{relative}% used" : "{relative}% in úsáid",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Sórtáil na cinn is ansa leat ar dtús",
"Sort folders before files" : "Sórtáil fillteáin roimh chomhaid",
"Show hidden files" : "Taispeáin comhaid i bhfolach",
+ "Show file type column" : "Taispeáin colún cineál comhaid",
"Crop image previews" : "Réamhamhairc íomhá barr",
"Enable the grid view" : "Cumasaigh an radharc greille",
"Enable folder tree" : "Cumasaigh crann fillteáin",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Taispeáin na haicearraí sin",
"You" : "tú",
"Shared multiple times with different people" : "Roinnte go minic le daoine éagsúla",
+ "Unable to change the favorite state of the file" : "Ní féidir staid an chomhaid is fearr leat a athrú",
"Error while loading the file data" : "Earráid agus sonraí an chomhaid á lódáil",
"Owner" : "Úinéir",
"Remove from favorites" : "Bain ó cheanáin",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh"],
"Confirm deletion" : "Deimhnigh scriosadh",
"Cancel" : "Cealaigh",
+ "Download" : "Íoslódáil",
"Moving \"{source}\" to \"{destination}\" …" : "Ag bogadh \"{source}\" go \"{destination}\" ...",
"Copying \"{source}\" to \"{destination}\" …" : "“{source}” á chóipeáil go “{destination}”…",
+ "Destination is not a folder" : "Ní fillteán é ceann scríbe",
+ "This file/folder is already in that directory" : "Tá an comhad/fillteán seo san eolaire sin cheana féin",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Ní féidir leat comhad/fillteán a bhogadh isteach ann féin nó isteach i bhfofhillteán de féin",
"(copy)" : "(cóip)",
"(copy %n)" : "(cóip %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Oibríocht aistrithe nó cóipeála curtha ar ceal",
"Open folder {displayName}" : "Oscail fillteán {displayName}",
"Open in Files" : "Oscail i Comhaid",
+ "Open locally" : "Oscail go háitiúil",
+ "Failed to redirect to client" : "Theip ar atreorú chuig an gcliant",
"Open file locally" : "Oscail comhad go háitiúil",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Ba cheart an comhad a oscailt anois ar do ghléas. Mura ndéanann sé, seiceáil le do thoil go bhfuil an aip deisce suiteáilte agat.",
"Retry and close" : "Bain triail eile as agus dún",
"Open online" : "Oscail ar líne",
- "Failed to redirect to client" : "Theip ar atreorú chuig an gcliant",
- "Open locally" : "Oscail go háitiúil",
"Rename" : "Athainmnigh",
"Open details" : "Sonraí oscailte",
"View in folder" : "Amharc san fhillteán",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "Bogadh na comhaid go rathúil",
"Conflicts resolution skipped" : "Léiríodh réiteach coinbhleachta",
"Upload cancelled" : "Cuireadh an t-uaslódáil ar ceal",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Níorbh fhéidir \"{oldName}\" a athainmniú, níl sé ann a thuilleadh",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tá an t-ainm \"{newName}\" in úsáid cheana féin san fhillteán \"{dir}\". Roghnaigh ainm eile le do thoil.",
+ "Could not rename \"{oldName}\"" : "Níorbh fhéidir \"{oldName}\" a athainmniú",
"This operation is forbidden" : "Tá an oibríocht seo toirmiscthe",
"This directory is unavailable, please check the logs or contact the administrator" : "Níl an t-eolaire seo ar fáil, seiceáil na logaí nó déan teagmháil leis an riarthóir le do thoil",
"Storage is temporarily not available" : "Níl stóráil ar fáil go sealadach",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Íoslódáil ró-mhór",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Sáraíonn na comhaid atá tú ag iarraidh a uaslódáil an t-uasmhéid le haghaidh uaslódáil comhad ar an bhfreastalaí seo.",
"File could not be found" : "Níorbh fhéidir an comhad a aimsiú",
- "Download" : "Íoslódáil",
"Show list view" : "Taispeáin amharc liosta",
"Show grid view" : "Taispeáin radharc greille",
"Close" : "Dún",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Cóipeáladh {origin} taobh istigh de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Cóipeáladh {origin} agus {nbfiles} comhaid eile laistigh de {destination}",
"{newName} already exists" : "Tá {newName} ann cheana",
- "Could not rename \"{fileName}\", it does not exist any more" : "Níorbh fhéidir \"{fileName}\" a athainmniú, níl sé ann a thuilleadh",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tá an t-ainm \"{targetName}\" in úsáid cheana féin san fhillteán \"{dir}\". Roghnaigh ainm eile le do thoil.",
- "Could not rename \"{fileName}\"" : "Níorbh fhéidir \"{fileName}\" a athainmniú",
"Could not create file \"{file}\"" : "Níorbh fhéidir comhad \"{file}\" a chruthú",
"Could not create file \"{file}\" because it already exists" : "Níorbh fhéidir an comhad \"{file}\" a chruthú toisc go bhfuil sé ann cheana",
"Could not create folder \"{dir}\" because it already exists" : "Níorbh fhéidir fillteán \"{dir}\" a chruthú toisc go bhfuil sé ann cheana",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Cóipeáladh nasc díreach (oibreacha do dhaoine a bhfuil rochtain acu ar an gcomhad/fillteán seo amháin)",
"Path" : "Cosán",
"_%n byte_::_%n bytes_" : ["%n beart ","%n bearta ","%n bearta","%n bearta","%n bearta"],
- "Favorited" : "Is fearr leat",
+ "Favored" : "B'fhearr leis",
+ "Favor" : "Fabhar",
"Copy direct link (only works for people who have access to this file/folder)" : "Cóipeáil nasc díreach (ní oibríonn ach do dhaoine a bhfuil rochtain acu ar an gcomhad/fillteán seo)",
"Upload file" : "Uaslódáil comhad",
- "Not favorited" : "Ní fearr leat",
+ "Not favored" : "Ní bail ar fónamh orthu",
"An error occurred while trying to update the tags" : "Tharla earráid agus iarracht á déanamh na clibeanna a nuashonrú",
- "You don't have permission to upload or create files here." : "Níl cead agat comhaid a uaslódáil nó a chruthú anseo.",
- "Storage informations" : "Faisnéis stórála",
- "Choose file" : "Roghnaigh comhad",
- "Go to the previous folder" : "Téigh go dtí an fillteán roimhe seo",
- "Open the files app settings" : "Oscail na socruithe aip comhaid",
- "Unable to change the favourite state of the file" : "Ní féidir staid an chomhaid is fearr leat a athrú",
- "Edit file locally" : "Cuir an comhad in eagar go háitiúil",
- "Edit online" : "Cuir in eagar ar líne",
- "Create new templates folder" : "Cruthaigh fillteán teimpléid nua",
+ "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)",
+ "Submitting fields…" : "Réimsí á gcur isteach…",
+ "Filter filenames…" : "Scag ainmneacha comhaid…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} fillteán","{folderCount} fillteáin","{folderCount} fillteáin","{folderCount} fillteáin","{folderCount} fillteáin"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} comhad","{fileCount} comhaid","{fileCount} comhaid","{fileCount} comhaid","{fileCount} comhaid"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 chomhad agus {folderCount} fillteán","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} comhad agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán"],
"{fileCount} files and {folderCount} folders" : "comhaid {fileCount} agus fillteáin {folderCount}",
- "List of favorites files and folders." : "Liosta de na comhaid is ansa leat agus fillteáin.",
"Personal Files" : "Comhaid Phearsanta",
"Text file" : "Comhad téacs",
"New text file.txt" : "Comhad téacs nua.txt",
- "Favored" : "B'fhearr leis",
- "Favor" : "Fabhar",
- "Not favored" : "Ní bail ar fónamh orthu",
- "Submitting fields…" : "Réimsí á gcur isteach…",
- "Filter filenames…" : "Scag ainmneacha comhaid…",
- "{count} files could not be converted" : "{count} níorbh fhéidir comhaid a thiontú",
- "{count} files successfully converted" : "{count} comhaid a thiontú go rathúil"
+ "%1$s (renamed)" : "%1$s (athainmnithe)",
+ "renamed file" : "comhad athainmnithe",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Tar éis na hainmneacha comhad atá comhoiriúnach le Windows a chumasú, ní féidir comhaid atá ann cheana a mhodhnú a thuilleadh ach is féidir lena n-úinéir iad a athainmniú go hainmneacha nua bailí."
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/files/l10n/ga.json b/apps/files/l10n/ga.json
index 9122bb3f7b4..b68edfb56c7 100644
--- a/apps/files/l10n/ga.json
+++ b/apps/files/l10n/ga.json
@@ -52,7 +52,6 @@
"Favorite files" : "Comhaid is fearr leat",
"No favorites" : "Gan aon cheanáin",
"More favorites" : "Gan aon cheanáin",
- "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)",
"Accept" : "Glac",
"Reject" : "Diúltaigh",
"Incoming ownership transfer from {user}" : "Aistriú úinéireachta isteach ó {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Aistrithe ó %1$s ar %2$s",
"Files compatibility" : "Comhoiriúnacht comhaid",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ceadaigh comhaid a shrianadh lena chinntiú gur féidir comhaid a shioncronú le gach cliant. De réir réamhshocraithe ceadaítear gach comhadainm atá bailí ar POSIX (m.sh. Linux nó macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Tar éis na hainmneacha comhad atá comhoiriúnach le Windows a chumasú, ní féidir comhaid atá ann cheana a mhodhnú a thuilleadh ach is féidir lena n-úinéir iad a athainmniú go hainmneacha nua bailí.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Is féidir comhaid a aistriú go huathoibríoch freisin tar éis an socrú seo a chumasú, féach ar an doiciméadú faoin ordú occ.",
"Enforce Windows compatibility" : "Comhoiriúnacht Windows a fhorfheidhmiú",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Cuirfidh sé seo bac ar ainmneacha comhaid nach bhfuil bailí ar chórais Windows, ar nós ainmneacha forchoimeádta nó carachtair speisialta a úsáid. Ach ní chuirfidh sé seo i bhfeidhm comhoiriúnacht íogaireacht cáis.",
"File Management" : "Bainistíocht Comhad",
@@ -93,6 +94,12 @@
"Invalid filename." : "Ainm comhaid neamhbhailí.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Athainmnithe \"{oldName}\" go \"{newName}\"",
"Rename file" : "Athainmnigh an comhad",
+ "Folder" : "Fillteán",
+ "Unknown file type" : "Cineál comhaid anaithnid",
+ "{ext} image" : "íomhá {ext}",
+ "{ext} video" : "físeán {ext}",
+ "{ext} audio" : "fuaim {ext}",
+ "{ext} text" : "téacs {ext}",
"Pending" : "Ar feitheamh",
"Unknown date" : "Dáta anaithnid",
"Clear filter" : "Glan an scagaire",
@@ -103,6 +110,7 @@
"Total rows summary" : "Achoimre ar na sraitheanna iomlána",
"Toggle selection for all files and folders" : "Scoránaigh an roghnúchán do gach comhad agus fillteán",
"Name" : "Ainm",
+ "File type" : "Cineál comhaid",
"Size" : "Méid",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" theip ar roinnt gnéithe",
"\"{displayName}\" batch action executed successfully" : "D'éirigh le beart baisce \"{displayName}\" a rith",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Is féidir ceanntásca colún le cnaipí a shórtáil.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Níl an liosta seo le fáil go hiomlán ar chúiseanna feidhmíochta. Déanfar na comhaid a rindreáil agus tú ag dul tríd an liosta.",
"File not found" : "Comhad gan aimsiú",
- "{count} selected" : "{count} roghnaithe",
+ "_{count} selected_::_{count} selected_" : ["{count} roghnaithe","{count} roghnaithe","{count} roghnaithe","{count} roghnaithe","{count} roghnaithe"],
"{usedQuotaByte} used" : "{usedQuotaByte} úsáidte",
"{used} of {quota} used" : "{used} de {quota} in úsáid",
"{relative}% used" : "{relative}% in úsáid",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Sórtáil na cinn is ansa leat ar dtús",
"Sort folders before files" : "Sórtáil fillteáin roimh chomhaid",
"Show hidden files" : "Taispeáin comhaid i bhfolach",
+ "Show file type column" : "Taispeáin colún cineál comhaid",
"Crop image previews" : "Réamhamhairc íomhá barr",
"Enable the grid view" : "Cumasaigh an radharc greille",
"Enable folder tree" : "Cumasaigh crann fillteáin",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "Taispeáin na haicearraí sin",
"You" : "tú",
"Shared multiple times with different people" : "Roinnte go minic le daoine éagsúla",
+ "Unable to change the favorite state of the file" : "Ní féidir staid an chomhaid is fearr leat a athrú",
"Error while loading the file data" : "Earráid agus sonraí an chomhaid á lódáil",
"Owner" : "Úinéir",
"Remove from favorites" : "Bain ó cheanáin",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh","Tá tú ar tí {count} mír a scriosadh"],
"Confirm deletion" : "Deimhnigh scriosadh",
"Cancel" : "Cealaigh",
+ "Download" : "Íoslódáil",
"Moving \"{source}\" to \"{destination}\" …" : "Ag bogadh \"{source}\" go \"{destination}\" ...",
"Copying \"{source}\" to \"{destination}\" …" : "“{source}” á chóipeáil go “{destination}”…",
+ "Destination is not a folder" : "Ní fillteán é ceann scríbe",
+ "This file/folder is already in that directory" : "Tá an comhad/fillteán seo san eolaire sin cheana féin",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Ní féidir leat comhad/fillteán a bhogadh isteach ann féin nó isteach i bhfofhillteán de féin",
"(copy)" : "(cóip)",
"(copy %n)" : "(cóip %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Oibríocht aistrithe nó cóipeála curtha ar ceal",
"Open folder {displayName}" : "Oscail fillteán {displayName}",
"Open in Files" : "Oscail i Comhaid",
+ "Open locally" : "Oscail go háitiúil",
+ "Failed to redirect to client" : "Theip ar atreorú chuig an gcliant",
"Open file locally" : "Oscail comhad go háitiúil",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Ba cheart an comhad a oscailt anois ar do ghléas. Mura ndéanann sé, seiceáil le do thoil go bhfuil an aip deisce suiteáilte agat.",
"Retry and close" : "Bain triail eile as agus dún",
"Open online" : "Oscail ar líne",
- "Failed to redirect to client" : "Theip ar atreorú chuig an gcliant",
- "Open locally" : "Oscail go háitiúil",
"Rename" : "Athainmnigh",
"Open details" : "Sonraí oscailte",
"View in folder" : "Amharc san fhillteán",
@@ -320,6 +333,9 @@
"Files moved successfully" : "Bogadh na comhaid go rathúil",
"Conflicts resolution skipped" : "Léiríodh réiteach coinbhleachta",
"Upload cancelled" : "Cuireadh an t-uaslódáil ar ceal",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Níorbh fhéidir \"{oldName}\" a athainmniú, níl sé ann a thuilleadh",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tá an t-ainm \"{newName}\" in úsáid cheana féin san fhillteán \"{dir}\". Roghnaigh ainm eile le do thoil.",
+ "Could not rename \"{oldName}\"" : "Níorbh fhéidir \"{oldName}\" a athainmniú",
"This operation is forbidden" : "Tá an oibríocht seo toirmiscthe",
"This directory is unavailable, please check the logs or contact the administrator" : "Níl an t-eolaire seo ar fáil, seiceáil na logaí nó déan teagmháil leis an riarthóir le do thoil",
"Storage is temporarily not available" : "Níl stóráil ar fáil go sealadach",
@@ -351,7 +367,6 @@
"Upload too large" : "Íoslódáil ró-mhór",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Sáraíonn na comhaid atá tú ag iarraidh a uaslódáil an t-uasmhéid le haghaidh uaslódáil comhad ar an bhfreastalaí seo.",
"File could not be found" : "Níorbh fhéidir an comhad a aimsiú",
- "Download" : "Íoslódáil",
"Show list view" : "Taispeáin amharc liosta",
"Show grid view" : "Taispeáin radharc greille",
"Close" : "Dún",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "Cóipeáladh {origin} taobh istigh de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Cóipeáladh {origin} agus {nbfiles} comhaid eile laistigh de {destination}",
"{newName} already exists" : "Tá {newName} ann cheana",
- "Could not rename \"{fileName}\", it does not exist any more" : "Níorbh fhéidir \"{fileName}\" a athainmniú, níl sé ann a thuilleadh",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tá an t-ainm \"{targetName}\" in úsáid cheana féin san fhillteán \"{dir}\". Roghnaigh ainm eile le do thoil.",
- "Could not rename \"{fileName}\"" : "Níorbh fhéidir \"{fileName}\" a athainmniú",
"Could not create file \"{file}\"" : "Níorbh fhéidir comhad \"{file}\" a chruthú",
"Could not create file \"{file}\" because it already exists" : "Níorbh fhéidir an comhad \"{file}\" a chruthú toisc go bhfuil sé ann cheana",
"Could not create folder \"{dir}\" because it already exists" : "Níorbh fhéidir fillteán \"{dir}\" a chruthú toisc go bhfuil sé ann cheana",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Cóipeáladh nasc díreach (oibreacha do dhaoine a bhfuil rochtain acu ar an gcomhad/fillteán seo amháin)",
"Path" : "Cosán",
"_%n byte_::_%n bytes_" : ["%n beart ","%n bearta ","%n bearta","%n bearta","%n bearta"],
- "Favorited" : "Is fearr leat",
+ "Favored" : "B'fhearr leis",
+ "Favor" : "Fabhar",
"Copy direct link (only works for people who have access to this file/folder)" : "Cóipeáil nasc díreach (ní oibríonn ach do dhaoine a bhfuil rochtain acu ar an gcomhad/fillteán seo)",
"Upload file" : "Uaslódáil comhad",
- "Not favorited" : "Ní fearr leat",
+ "Not favored" : "Ní bail ar fónamh orthu",
"An error occurred while trying to update the tags" : "Tharla earráid agus iarracht á déanamh na clibeanna a nuashonrú",
- "You don't have permission to upload or create files here." : "Níl cead agat comhaid a uaslódáil nó a chruthú anseo.",
- "Storage informations" : "Faisnéis stórála",
- "Choose file" : "Roghnaigh comhad",
- "Go to the previous folder" : "Téigh go dtí an fillteán roimhe seo",
- "Open the files app settings" : "Oscail na socruithe aip comhaid",
- "Unable to change the favourite state of the file" : "Ní féidir staid an chomhaid is fearr leat a athrú",
- "Edit file locally" : "Cuir an comhad in eagar go háitiúil",
- "Edit online" : "Cuir in eagar ar líne",
- "Create new templates folder" : "Cruthaigh fillteán teimpléid nua",
+ "Upload (max. %s)" : "Uaslódáil (%s ar a mhéad)",
+ "Submitting fields…" : "Réimsí á gcur isteach…",
+ "Filter filenames…" : "Scag ainmneacha comhaid…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} fillteán","{folderCount} fillteáin","{folderCount} fillteáin","{folderCount} fillteáin","{folderCount} fillteáin"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} comhad","{fileCount} comhaid","{fileCount} comhaid","{fileCount} comhaid","{fileCount} comhaid"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 chomhad agus {folderCount} fillteán","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin","1 chomhad agus {folderCount} fillteáin"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} comhad agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán","{fileCount} comhaid agus 1 fillteán"],
"{fileCount} files and {folderCount} folders" : "comhaid {fileCount} agus fillteáin {folderCount}",
- "List of favorites files and folders." : "Liosta de na comhaid is ansa leat agus fillteáin.",
"Personal Files" : "Comhaid Phearsanta",
"Text file" : "Comhad téacs",
"New text file.txt" : "Comhad téacs nua.txt",
- "Favored" : "B'fhearr leis",
- "Favor" : "Fabhar",
- "Not favored" : "Ní bail ar fónamh orthu",
- "Submitting fields…" : "Réimsí á gcur isteach…",
- "Filter filenames…" : "Scag ainmneacha comhaid…",
- "{count} files could not be converted" : "{count} níorbh fhéidir comhaid a thiontú",
- "{count} files successfully converted" : "{count} comhaid a thiontú go rathúil"
+ "%1$s (renamed)" : "%1$s (athainmnithe)",
+ "renamed file" : "comhad athainmnithe",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Tar éis na hainmneacha comhad atá comhoiriúnach le Windows a chumasú, ní féidir comhaid atá ann cheana a mhodhnú a thuilleadh ach is féidir lena n-úinéir iad a athainmniú go hainmneacha nua bailí."
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js
index 966bf2caca8..b27f426d550 100644
--- a/apps/files/l10n/gl.js
+++ b/apps/files/l10n/gl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Ficheiros favoritos",
"No favorites" : "Non hai favoritos",
"More favorites" : "Máis favoritos",
- "Upload (max. %s)" : "Envío (máx. %s)",
"Accept" : "Aceptar",
"Reject" : "Rexeitar",
"Incoming ownership transfer from {user}" : "Transferencia da propiedade entrante de {user}",
@@ -95,6 +94,7 @@ OC.L10N.register(
"Invalid filename." : "Nome de ficheiro incorrecto.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Cambiouse o nome de «{oldName}» a «{newName}»",
"Rename file" : "Cambiar o nome do ficheiro",
+ "Folder" : "Cartafol",
"Pending" : "Pendentes",
"Unknown date" : "Data descoñecida",
"Clear filter" : "Limpar o filtro",
@@ -116,7 +116,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "As cabeceiras das columnas con botóns pódense ordenar.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista non se representa de xeito completo por mor do rendemento. Os ficheiros represéntanse mentres se despraza pola lista.",
"File not found" : "Non se atopou o ficheiro",
- "{count} selected" : "{count} seleccionados",
+ "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados"],
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "Usados {used} de {quota}",
"{relative}% used" : "{relative}% usado",
@@ -152,7 +152,7 @@ OC.L10N.register(
"Adding the file extension \"{new}\" may render the file unreadable." : "Engadir a extensión de ficheiro «{new}» pode facer que o ficheiro sexa ilexíbel.",
"Do not show this dialog again." : "Non volver amosar este diálogo",
"Select file or folder to link to" : "Seleccione o ficheiro ou cartafol ao que ligar",
- "Choose {file}" : "Escoller {file}",
+ "Choose {file}" : "Escoller {file}",
"Share" : "Compartir",
"Shared by link" : "Compartido por ligazón",
"Shared" : "Compartido",
@@ -219,6 +219,7 @@ OC.L10N.register(
"Show those shortcuts" : "Amosar eses atallos",
"You" : "Vde.",
"Shared multiple times with different people" : "Compartido varias veces con diferentes persoas",
+ "Unable to change the favorite state of the file" : "Non é posíbel cambiar o estado de favorito do ficheiro",
"Error while loading the file data" : "Produciuse un erro ao cargar os datos do ficheiro",
"Owner" : "Propietario",
"Remove from favorites" : "Retirar de favoritos",
@@ -257,8 +258,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Está a piques de eliminar {count} elemento","Está a piques de eliminar {count} elementos"],
"Confirm deletion" : "Confirmar a eliminación",
"Cancel" : "Cancelar",
+ "Download" : "Descargar",
"Moving \"{source}\" to \"{destination}\" …" : "Movendo «{source}» a «{destination}»…",
"Copying \"{source}\" to \"{destination}\" …" : "Copiando «{source}» en «{destination}»…",
+ "Destination is not a folder" : "O destino non é un cartafol",
+ "This file/folder is already in that directory" : "Este ficheiro/cartafol xa está nese directorio",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Non é posíbel mover un ficheiro/cartafol sobre si mesmo ou a un subcartafol de si mesmo",
"(copy)" : "(copiar)",
"(copy %n)" : "(copiar %n)",
@@ -277,12 +281,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Foi cancelada a operación de movemento ou copia",
"Open folder {displayName}" : "Abrir o cartafol {displayName}",
"Open in Files" : "Abrir en Ficheiros",
+ "Open locally" : "Abrir localmente",
+ "Failed to redirect to client" : "Produciuse un fallo ao redirixir ao cliente",
"Open file locally" : "Abrir o ficheiro localmente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "O ficheiro debería abrirse agora no seu dispositivo. Se non é así, comprobe se ten instalada a aplicación de escritorio.",
"Retry and close" : "Tentar de novo e pechar",
"Open online" : "Abrir en liña",
- "Failed to redirect to client" : "Produciuse un fallo ao redirixir ao cliente",
- "Open locally" : "Abrir localmente",
"Rename" : "Cambiar o nome",
"Open details" : "Abrir detalles",
"View in folder" : "Ver no cartafol",
@@ -320,6 +324,9 @@ OC.L10N.register(
"Files moved successfully" : "Ficheiros movidos correctamente",
"Conflicts resolution skipped" : "Omitiuse a resolución dos conflitos",
"Upload cancelled" : "Envío cancelado",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Non foi posíbel cambiarlle o nome a «{oldName}», xa non existe",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome «{newName}» xa se utiliza no cartafol «{dir}». Escolla un nome diferente.",
+ "Could not rename \"{oldName}\"" : "Non foi posíbel cambiarlle o nome a «{oldName}»",
"This operation is forbidden" : "Esta operación está prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Este directorio non está dispoñíbel, consulte os ficheiros de rexistro ou póñase en contacto coa administración desta instancia.",
"Storage is temporarily not available" : "O almacenamento non está dispoñíbel temporalmente",
@@ -350,7 +357,6 @@ OC.L10N.register(
"Upload too large" : "Envío grande de máis",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor",
"File could not be found" : "Non foi posíbel atopar o ficheiro",
- "Download" : "Descargar",
"Show list view" : "Amosar a vista de lista",
"Show grid view" : "Amosar a vista de grade",
"Close" : "Pechar",
@@ -389,9 +395,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Copiado {origin} en {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copiado {origin} e outros {nbfiles} ficheiros en {destination} ",
"{newName} already exists" : "Xa existe {newName}",
- "Could not rename \"{fileName}\", it does not exist any more" : "Non foi posíbel cambiarlle o nome a «{fileName}», xa non existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome «{targetName}» xa se utiliza no cartafol «{dir}». Escolla outro nome.",
- "Could not rename \"{fileName}\"" : "Non foi posíbel cambiarlle o nome a «{fileName}»",
"Could not create file \"{file}\"" : "Non foi posíbel crear o ficheiro «{file}»",
"Could not create file \"{file}\" because it already exists" : "Non foi posíbel crear o ficheiro «{file}» por mor de que xa existe",
"Could not create folder \"{dir}\" because it already exists" : "Non foi posíbel crear o cartafol «{dir}» por mor de que xa existe",
@@ -424,35 +427,22 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Foi copiada a ligazón directa (só funciona para as persoas que teñen acceso a este ficheiro/cartafol)",
"Path" : "Ruta",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Marcado como favorito",
+ "Favored" : "Favorecido",
+ "Favor" : "Favorecer",
"Copy direct link (only works for people who have access to this file/folder)" : "Copiar a ligazón directa (só funciona para persoas con acceso a este ficheiro/cartafol)",
"Upload file" : "Enviar ficheiro",
- "Not favorited" : "Non marcado como favorito",
+ "Not favored" : "Non favorecido",
"An error occurred while trying to update the tags" : "Produciuse un erro ao tentar actualizar as etiquetas",
- "You don't have permission to upload or create files here." : "Non ten permiso para enviar ou crear ficheiros aquí.",
- "Storage informations" : "Información de almacenamento",
- "Choose file" : "Escoller o ficheiro",
- "Go to the previous folder" : "Ir ao cartafol anterior",
- "Open the files app settings" : "Abrir os axustes da aplicación de ficheiros",
- "Unable to change the favourite state of the file" : "Non é posíbel cambiar o estado favorito do ficheiro",
- "Edit file locally" : "Editar o ficheiro localmente",
- "Edit online" : "Editar en liña",
- "Create new templates folder" : "Crear un novo cartafol de modelos",
+ "Upload (max. %s)" : "Envío (máx. %s)",
+ "Submitting fields…" : "Enviando os campos...",
+ "Filter filenames…" : "Filtrar os nomes de ficheiro…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartafol","{folderCount} cartafoles"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ficheiro","{fileCount} ficheiros"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ficheiro e {folderCount} cartafol","1 ficheiro e {folderCount} cartafoles"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} ficheiro e 1 cartafol","{fileCount} ficheiros e 1 cartafol"],
"{fileCount} files and {folderCount} folders" : "{fileCount} ficheiros e {folderCount} cartafoles",
- "List of favorites files and folders." : "Lista de ficheiros e cartafoles favoritos.",
"Personal Files" : "Ficheiros persoais",
"Text file" : "Ficheiro de texto",
- "New text file.txt" : "Novo ficheiro de texto.txt",
- "Favored" : "Favorecido",
- "Favor" : "Favorecer",
- "Not favored" : "Non favorecido",
- "Submitting fields…" : "Enviando os campos...",
- "Filter filenames…" : "Filtrar os nomes de ficheiro…",
- "{count} files could not be converted" : "Non foi posíbel converter {count} ficheiros",
- "{count} files successfully converted" : "{count} ficheiros foron convertidos correctamente"
+ "New text file.txt" : "Novo ficheiro de texto.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json
index b5e856b1f96..ff492c979ff 100644
--- a/apps/files/l10n/gl.json
+++ b/apps/files/l10n/gl.json
@@ -52,7 +52,6 @@
"Favorite files" : "Ficheiros favoritos",
"No favorites" : "Non hai favoritos",
"More favorites" : "Máis favoritos",
- "Upload (max. %s)" : "Envío (máx. %s)",
"Accept" : "Aceptar",
"Reject" : "Rexeitar",
"Incoming ownership transfer from {user}" : "Transferencia da propiedade entrante de {user}",
@@ -93,6 +92,7 @@
"Invalid filename." : "Nome de ficheiro incorrecto.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Cambiouse o nome de «{oldName}» a «{newName}»",
"Rename file" : "Cambiar o nome do ficheiro",
+ "Folder" : "Cartafol",
"Pending" : "Pendentes",
"Unknown date" : "Data descoñecida",
"Clear filter" : "Limpar o filtro",
@@ -114,7 +114,7 @@
"Column headers with buttons are sortable." : "As cabeceiras das columnas con botóns pódense ordenar.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista non se representa de xeito completo por mor do rendemento. Os ficheiros represéntanse mentres se despraza pola lista.",
"File not found" : "Non se atopou o ficheiro",
- "{count} selected" : "{count} seleccionados",
+ "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados"],
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "Usados {used} de {quota}",
"{relative}% used" : "{relative}% usado",
@@ -150,7 +150,7 @@
"Adding the file extension \"{new}\" may render the file unreadable." : "Engadir a extensión de ficheiro «{new}» pode facer que o ficheiro sexa ilexíbel.",
"Do not show this dialog again." : "Non volver amosar este diálogo",
"Select file or folder to link to" : "Seleccione o ficheiro ou cartafol ao que ligar",
- "Choose {file}" : "Escoller {file}",
+ "Choose {file}" : "Escoller {file}",
"Share" : "Compartir",
"Shared by link" : "Compartido por ligazón",
"Shared" : "Compartido",
@@ -217,6 +217,7 @@
"Show those shortcuts" : "Amosar eses atallos",
"You" : "Vde.",
"Shared multiple times with different people" : "Compartido varias veces con diferentes persoas",
+ "Unable to change the favorite state of the file" : "Non é posíbel cambiar o estado de favorito do ficheiro",
"Error while loading the file data" : "Produciuse un erro ao cargar os datos do ficheiro",
"Owner" : "Propietario",
"Remove from favorites" : "Retirar de favoritos",
@@ -255,8 +256,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Está a piques de eliminar {count} elemento","Está a piques de eliminar {count} elementos"],
"Confirm deletion" : "Confirmar a eliminación",
"Cancel" : "Cancelar",
+ "Download" : "Descargar",
"Moving \"{source}\" to \"{destination}\" …" : "Movendo «{source}» a «{destination}»…",
"Copying \"{source}\" to \"{destination}\" …" : "Copiando «{source}» en «{destination}»…",
+ "Destination is not a folder" : "O destino non é un cartafol",
+ "This file/folder is already in that directory" : "Este ficheiro/cartafol xa está nese directorio",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Non é posíbel mover un ficheiro/cartafol sobre si mesmo ou a un subcartafol de si mesmo",
"(copy)" : "(copiar)",
"(copy %n)" : "(copiar %n)",
@@ -275,12 +279,12 @@
"Cancelled move or copy operation" : "Foi cancelada a operación de movemento ou copia",
"Open folder {displayName}" : "Abrir o cartafol {displayName}",
"Open in Files" : "Abrir en Ficheiros",
+ "Open locally" : "Abrir localmente",
+ "Failed to redirect to client" : "Produciuse un fallo ao redirixir ao cliente",
"Open file locally" : "Abrir o ficheiro localmente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "O ficheiro debería abrirse agora no seu dispositivo. Se non é así, comprobe se ten instalada a aplicación de escritorio.",
"Retry and close" : "Tentar de novo e pechar",
"Open online" : "Abrir en liña",
- "Failed to redirect to client" : "Produciuse un fallo ao redirixir ao cliente",
- "Open locally" : "Abrir localmente",
"Rename" : "Cambiar o nome",
"Open details" : "Abrir detalles",
"View in folder" : "Ver no cartafol",
@@ -318,6 +322,9 @@
"Files moved successfully" : "Ficheiros movidos correctamente",
"Conflicts resolution skipped" : "Omitiuse a resolución dos conflitos",
"Upload cancelled" : "Envío cancelado",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Non foi posíbel cambiarlle o nome a «{oldName}», xa non existe",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome «{newName}» xa se utiliza no cartafol «{dir}». Escolla un nome diferente.",
+ "Could not rename \"{oldName}\"" : "Non foi posíbel cambiarlle o nome a «{oldName}»",
"This operation is forbidden" : "Esta operación está prohibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Este directorio non está dispoñíbel, consulte os ficheiros de rexistro ou póñase en contacto coa administración desta instancia.",
"Storage is temporarily not available" : "O almacenamento non está dispoñíbel temporalmente",
@@ -348,7 +355,6 @@
"Upload too large" : "Envío grande de máis",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiros que tenta enviar exceden do tamaño máximo permitido neste servidor",
"File could not be found" : "Non foi posíbel atopar o ficheiro",
- "Download" : "Descargar",
"Show list view" : "Amosar a vista de lista",
"Show grid view" : "Amosar a vista de grade",
"Close" : "Pechar",
@@ -387,9 +393,6 @@
"Copied {origin} inside {destination}" : "Copiado {origin} en {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copiado {origin} e outros {nbfiles} ficheiros en {destination} ",
"{newName} already exists" : "Xa existe {newName}",
- "Could not rename \"{fileName}\", it does not exist any more" : "Non foi posíbel cambiarlle o nome a «{fileName}», xa non existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome «{targetName}» xa se utiliza no cartafol «{dir}». Escolla outro nome.",
- "Could not rename \"{fileName}\"" : "Non foi posíbel cambiarlle o nome a «{fileName}»",
"Could not create file \"{file}\"" : "Non foi posíbel crear o ficheiro «{file}»",
"Could not create file \"{file}\" because it already exists" : "Non foi posíbel crear o ficheiro «{file}» por mor de que xa existe",
"Could not create folder \"{dir}\" because it already exists" : "Non foi posíbel crear o cartafol «{dir}» por mor de que xa existe",
@@ -422,35 +425,22 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Foi copiada a ligazón directa (só funciona para as persoas que teñen acceso a este ficheiro/cartafol)",
"Path" : "Ruta",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Marcado como favorito",
+ "Favored" : "Favorecido",
+ "Favor" : "Favorecer",
"Copy direct link (only works for people who have access to this file/folder)" : "Copiar a ligazón directa (só funciona para persoas con acceso a este ficheiro/cartafol)",
"Upload file" : "Enviar ficheiro",
- "Not favorited" : "Non marcado como favorito",
+ "Not favored" : "Non favorecido",
"An error occurred while trying to update the tags" : "Produciuse un erro ao tentar actualizar as etiquetas",
- "You don't have permission to upload or create files here." : "Non ten permiso para enviar ou crear ficheiros aquí.",
- "Storage informations" : "Información de almacenamento",
- "Choose file" : "Escoller o ficheiro",
- "Go to the previous folder" : "Ir ao cartafol anterior",
- "Open the files app settings" : "Abrir os axustes da aplicación de ficheiros",
- "Unable to change the favourite state of the file" : "Non é posíbel cambiar o estado favorito do ficheiro",
- "Edit file locally" : "Editar o ficheiro localmente",
- "Edit online" : "Editar en liña",
- "Create new templates folder" : "Crear un novo cartafol de modelos",
+ "Upload (max. %s)" : "Envío (máx. %s)",
+ "Submitting fields…" : "Enviando os campos...",
+ "Filter filenames…" : "Filtrar os nomes de ficheiro…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartafol","{folderCount} cartafoles"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ficheiro","{fileCount} ficheiros"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ficheiro e {folderCount} cartafol","1 ficheiro e {folderCount} cartafoles"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} ficheiro e 1 cartafol","{fileCount} ficheiros e 1 cartafol"],
"{fileCount} files and {folderCount} folders" : "{fileCount} ficheiros e {folderCount} cartafoles",
- "List of favorites files and folders." : "Lista de ficheiros e cartafoles favoritos.",
"Personal Files" : "Ficheiros persoais",
"Text file" : "Ficheiro de texto",
- "New text file.txt" : "Novo ficheiro de texto.txt",
- "Favored" : "Favorecido",
- "Favor" : "Favorecer",
- "Not favored" : "Non favorecido",
- "Submitting fields…" : "Enviando os campos...",
- "Filter filenames…" : "Filtrar os nomes de ficheiro…",
- "{count} files could not be converted" : "Non foi posíbel converter {count} ficheiros",
- "{count} files successfully converted" : "{count} ficheiros foron convertidos correctamente"
+ "New text file.txt" : "Novo ficheiro de texto.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/gu.js b/apps/files/l10n/gu.js
deleted file mode 100644
index 7988332fa91..00000000000
--- a/apps/files/l10n/gu.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/gu.json b/apps/files/l10n/gu.json
deleted file mode 100644
index ef5fc586755..00000000000
--- a/apps/files/l10n/gu.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
deleted file mode 100644
index df92fadeec1..00000000000
--- a/apps/files/l10n/he.js
+++ /dev/null
@@ -1,200 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "הקובץ לא ניתן לאיתור",
- "Move or copy" : "העברה או העתקה",
- "Download" : "הורדה",
- "Delete" : "מחיקה",
- "Tags" : "תגיות",
- "Home" : "בית",
- "Close" : "סגירה",
- "Could not create folder \"{dir}\"" : "לא ניתן ליצור את התיקייה \"{dir}\"",
- "This will stop your current uploads." : "פעולה זו תעצור את השליחות הנוכחיות שלך.",
- "Upload cancelled." : "ההעלאה בוטלה.",
- "Processing files …" : "הקבצים עוברים עיבוד…",
- "…" : "…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "לא ניתן להעלות {filename} כיוון שמדובר בתיקייה או שגודלו 0 בייט",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "לא קיים מספיק מקום פנוי, הקובץ המיועד להעלאה {size1} אבל נשאר {size2} בלבד",
- "Target folder \"{dir}\" does not exist any more" : "תיקיית היעד „{dir}” לא קיים עוד",
- "Not enough free space" : "אין מספיק מקום פנוי",
- "An unknown error has occurred" : "אירעה שגיאה בלתי ידועה",
- "Uploading …" : "מתבצעת העלאה…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} מתוך {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "העלאת הפריט הזה אינה נתמכת",
- "Target folder does not exist any more" : "תיקיית היעד אינה קיימת עוד",
- "Operation is blocked by access control" : "הפעולה נחסמה על ידי בקרת גישה",
- "Error when assembling chunks, status code {status}" : "שגיאה באיסוף הנתחים, קוד המצב {status}",
- "Actions" : "פעולות",
- "Rename" : "שינוי שם",
- "Move" : "העברה",
- "Copy" : "העתקה",
- "Choose target folder" : "נא לבחור תיקיית יעד",
- "Edit locally" : "עריכה בשולחן העבודה",
- "Open" : "פתיחה",
- "Delete file" : "מחיקת קובץ",
- "Delete folder" : "מחק תיקייה",
- "Disconnect storage" : "ניתוק אחסון",
- "Could not load info for file \"{file}\"" : "לא ניתן לטעון מידע על הקובץ „{file}”",
- "Files" : "קבצים",
- "Details" : "פרטים",
- "Pending" : "ממתין",
- "Unable to determine date" : "לא ניתן לקבוע תאריך",
- "This operation is forbidden" : "פעולה זו אסורה",
- "This directory is unavailable, please check the logs or contact the administrator" : "תיקייה זו לא קיימת, יש לבדוק את הלוגים או ליצור קשר עם המנהל",
- "Storage is temporarily not available" : "האחסון אינו זמין באופן זמני",
- "Could not move \"{file}\", target exists" : "לא ניתן להעביר \"{file}\", קובץ מטרה קיים",
- "Could not move \"{file}\"" : "לא ניתן להעביר \"{file}\"",
- "copy" : "עותק",
- "Could not copy \"{file}\", target exists" : "לא ניתן להעתיק את „{file}”, היעד קיים",
- "Could not copy \"{file}\"" : "לא ניתן להעתיק את „{file}”",
- "Copied {origin} inside {destination}" : "{origin} הועתק לתוך {destination} ",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "הועתקו {origin} ו־{nbfiles} קבצים אחרים לתוך {destination}",
- "{newName} already exists" : "{newName} כבר קיים",
- "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}\"",
- "Could not create file \"{file}\" because it already exists" : "לא ניתן ליצור את הקובץ \"{file}\" כיוון שהוא כבר קיים",
- "Could not create folder \"{dir}\" because it already exists" : "לא ניתן ליצור את התיקייה \"{dir}\" כיוון שהיא כבר קיימת",
- "Could not fetch file details \"{file}\"" : "לא ניתן לקבל את פרטי הקובץ „{file}”",
- "Error deleting file \"{fileName}\"." : "שגיאה בזמן מחיקת קובץ \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "אין תוצאות חיפוש בתיקיות אחרות עבור {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "יש להקליד למעלה משני תווים כדי לחפש בתיקיות אחרות",
- "Name" : "שם",
- "Size" : "גודל",
- "Modified" : "זמן שינוי",
- "_%n folder_::_%n folders_" : ["%n תיקייה","%n תיקיות","%n תיקיות","%n תיקיות"],
- "_%n file_::_%n files_" : ["%n קובץ","%n קבצים","%n קבצים","%n קבצים"],
- "{dirs} and {files}" : "{dirs} וכן {files}",
- "_including %n hidden_::_including %n hidden_" : ["לרבות %n מוסתר","לרבות %n מוסתרים","לרבות %n מוסתרים"],
- "_Uploading %n file_::_Uploading %n files_" : ["מעלה %n קובץ","מעלה %n קבצים","מעלה %n קבצים"],
- "New" : "חדש",
- "Select file range" : "בחירת טווח קבצים",
- "{used} of {quota} used" : "{used} מתוך {quota} בשימוש",
- "{used} used" : "{used} בשימוש",
- "\"{name}\" is an invalid file name." : "\"{name}\" הנו שם קובץ לא חוקי.",
- "File name cannot be empty." : "שם קובץ אינו יכול להיות ריק",
- "\"/\" is not allowed inside a file name." : "אסור להשתמש ב־„/” בתוך שם קובץ.",
- "\"{name}\" is not an allowed filetype" : "סוד הקובץ „{name}” אינו מורשה",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "האחסון של {owner} כמעט מלא ({usedSpacePercent}%).",
- "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "התיקיה הקבוצתית \"{mountPoint}\" כמעט מלאה ({usedSpacePercent}%).",
- "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "האחסון החיצוני \"{mountPoint}\" כמעט מלא ({usedSpacePercent}%).",
- "Your storage is almost full ({usedSpacePercent}%)." : "האחסון שלך כמעט מלא ({usedSpacePercent}%).",
- "View in folder" : "הצג בתיקייה",
- "Path" : "נתיב",
- "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים"],
- "Favorited" : "מועדף",
- "Favorite" : "מועדף",
- "New folder" : "תיקייה חדשה",
- "Create new folder" : "יצירת תיקייה חדשה",
- "Upload file" : "העלאת קובץ",
- "Recent" : "אחרונים",
- "Not favorited" : "לא במועדפים",
- "Remove from favorites" : "הסרה מהמועדפים",
- "Add to favorites" : "הוספה למועדפים",
- "An error occurred while trying to update the tags" : "שגיאה אירעה בזמן עדכון התגיות",
- "Added to favorites" : "נוסף למועדפים",
- "Removed from favorites" : "הוסר מהמועדפים",
- "You added {file} to your favorites" : "הוספת את {file} למועדפים שלך",
- "You removed {file} from your favorites" : "הסרת את {file} מהמועדפים שלך",
- "Favorites" : "מועדפים",
- "File changes" : "שינויים בקובץ",
- "Created by {user}" : "נוצר על ידי {user}",
- "Changed by {user}" : "נערך על ידי {user}",
- "Deleted by {user}" : "נמחק על ידי {user}",
- "Restored by {user}" : "שוחזר על ידי {user}",
- "Renamed by {user}" : "השם השתנה על ידי {user}",
- "Moved by {user}" : "הועבר על ידי {user}",
- "You created {file}" : "יצרת את {file}",
- "You created an encrypted file in {file}" : "יצרת קובץ מוצפן בתוך {file}",
- "{user} created {file}" : " {file} נוצר על ידי {user}",
- "{user} created an encrypted file in {file}" : "נוצר קובץ מוצפן בתוך {file} על ידי {user}",
- "{file} was created in a public folder" : "{file} נוצר בתוך תיקייה ציבורית",
- "You changed {file}" : "שינית את {file}",
- "You changed an encrypted file in {file}" : "שינית קובץ מוצפן בתוך {file}",
- "{user} changed {file}" : "{file} נערך על ידי {user}",
- "{user} changed an encrypted file in {file}" : "קובץ מוצפן בתוך {file} נערך על ידי {user}",
- "You deleted {file}" : "מחקת את {file}",
- "You deleted an encrypted file in {file}" : "מחקת קובץ מוצפן תחת {file}",
- "{user} deleted {file}" : "{file} נמחק על ידי {user}",
- "{user} deleted an encrypted file in {file}" : "קובץ מוצפן בתוך {file} נמחק על ידי {user}",
- "You restored {file}" : "שחזרת את {file}",
- "{user} restored {file}" : "{file} שוחזר על ידי {user}",
- "You renamed {oldfile} to {newfile}" : "שינית את השם של {oldfile} לשם {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "השם של {oldfile} השתנה אל {newfile} על ידי {user}",
- "You moved {oldfile} to {newfile}" : "העברת את {oldfile} אל {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{oldfile} הועבר אל {newfile} על ידי {user}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "קובץ נוסף או הוסר מה<strong>מועדפים</strong> שלך",
- "A file or folder has been <strong>changed</strong>" : "קובץ או תיקייה <strong>שונו<strong/>",
- "A favorite file or folder has been <strong>changed</strong>" : "קובץ או תיקייה מהמועדפים <strong>נערכו</strong>",
- "Upload (max. %s)" : "העלאה (מקסימום %s)",
- "Accept" : "קבלה",
- "Reject" : "דחייה",
- "Incoming ownership transfer from {user}" : "העברת בעלות נכנסת מאת {user}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "לקבל את {path}?\n\nלתשומת לך: תהליך ההעברה לאחר האישור עשוי לארוך עד כשעה.",
- "Ownership transfer failed" : "העברת הבעלות נכשלה",
- "Your ownership transfer of {path} to {user} failed." : "העברת הבעלות על {path} לידי {user} ממך נכשלה.",
- "The ownership transfer of {path} from {user} failed." : "העברת הבעלות על {path} לידי {user} נכשלה.",
- "Ownership transfer done" : "העברת הבעלות הושלמה",
- "Your ownership transfer of {path} to {user} has completed." : "העברת הבעלות על {path} לידי {user} ממך הושלמה.",
- "The ownership transfer of {path} from {user} has completed." : "העברת הבעלות על {path} לידי {user} הושלמה.",
- "in %s" : "ב־%s",
- "File Management" : "ניהול קבצים",
- "You don’t have permission to upload or create files here" : "אין לך הרשאות להעלות או ליצור קבצים כאן",
- "Filename" : "שם קובץ",
- "Folder name" : "שם התיקייה",
- "Clear filter" : "מחיקת מסנן",
- "Type" : "סוג",
- "File not found" : "קובץ לא נמצא",
- "Your storage is full, files can not be updated or synced anymore!" : "האחסון שלך מלא, כבר לא ניתן לעדכן ולסנכרן קבצים!",
- "Create" : "יצירה",
- "Submit" : "שליחה",
- "Transfer ownership of a file or folder" : "העברת בעלות על קובץ או תיקייה",
- "Choose file or folder to transfer" : "נא לבחור קובץ או תיקייה להעברה",
- "Change" : "שינוי",
- "New owner" : "בעלים חדשים",
- "Choose a file or folder to transfer" : "נא לבחור קובץ או תיקייה להעברה",
- "Transfer" : "העברה",
- "Transfer {path} to {userid}" : "העברת {path} לידי {userid}",
- "Invalid path selected" : "הנתיב שנבחר שגוי",
- "Unknown error" : "שגיאה בלתי ידועה",
- "Ownership transfer request sent" : "נשלחה בקשת העברת בעלות",
- "No files in here" : "אין כאן קבצים",
- "Upload some content or sync with your devices!" : "יש להעלות קצת תוכן או לסנכרן עם ההתקנים שלך!",
- "Go back" : "חזרה",
- "Share" : "שתף",
- "Shared by link" : "משותף על ידי קישור",
- "Shared" : "משותף",
- "Views" : "תצוגות",
- "Files settings" : "הגדרות לקבצים",
- "Show hidden files" : "הצגת קבצים נסתרים",
- "Crop image previews" : "חיתוך תצוגות מקדימות של תמונות",
- "Additional settings" : "הגדרות נוספות",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "העתקה ללוח הגזירים",
- "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" : "שגיאה בטעינת נתוני הקובץ",
- "Delete permanently" : "מחיקה לצמיתות",
- "Cancel" : "ביטול",
- "Open details" : "פתיחת פרטים",
- "Today" : "היום",
- "Documents" : "מסמכים",
- "Audio" : "קובץ שמע",
- "Videos" : "סרטונים",
- "Some files could not be moved" : "חלק מהקבצים לא הועברו",
- "No favorites yet" : "אין מועדפים עדיין",
- "Files and folders you mark as favorite will show up here" : "קבצים ותיקיות שסומנו על ידך כמועדפים יוצגו כאן",
- "All files" : "כל הקבצים",
- "All folders" : "כל התיקיות",
- "No entries found in this folder" : "לא נמצאו כניסות לתיקייה זו",
- "Select all" : "לבחור הכול",
- "Upload too large" : "העלאה גדולה מידי",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה.",
- "Text file" : "קובץ טקסט",
- "New text file.txt" : "קובץ טקסט חדש.txt",
- "Copy direct link (only works for users who have access to this file/folder)" : "העתקת קישור ישיר (עובד רק עבור משתמשים שיש להם גישה לקובץ/תיקייה זו)",
- "\"remote user\"" : "„משתמש מרוחק”",
- "Name cannot be empty" : "השם לא יכול להישאר ריק"
-},
-"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;");
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
deleted file mode 100644
index 6950da6e87a..00000000000
--- a/apps/files/l10n/he.json
+++ /dev/null
@@ -1,198 +0,0 @@
-{ "translations": {
- "File could not be found" : "הקובץ לא ניתן לאיתור",
- "Move or copy" : "העברה או העתקה",
- "Download" : "הורדה",
- "Delete" : "מחיקה",
- "Tags" : "תגיות",
- "Home" : "בית",
- "Close" : "סגירה",
- "Could not create folder \"{dir}\"" : "לא ניתן ליצור את התיקייה \"{dir}\"",
- "This will stop your current uploads." : "פעולה זו תעצור את השליחות הנוכחיות שלך.",
- "Upload cancelled." : "ההעלאה בוטלה.",
- "Processing files …" : "הקבצים עוברים עיבוד…",
- "…" : "…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "לא ניתן להעלות {filename} כיוון שמדובר בתיקייה או שגודלו 0 בייט",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "לא קיים מספיק מקום פנוי, הקובץ המיועד להעלאה {size1} אבל נשאר {size2} בלבד",
- "Target folder \"{dir}\" does not exist any more" : "תיקיית היעד „{dir}” לא קיים עוד",
- "Not enough free space" : "אין מספיק מקום פנוי",
- "An unknown error has occurred" : "אירעה שגיאה בלתי ידועה",
- "Uploading …" : "מתבצעת העלאה…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} מתוך {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "העלאת הפריט הזה אינה נתמכת",
- "Target folder does not exist any more" : "תיקיית היעד אינה קיימת עוד",
- "Operation is blocked by access control" : "הפעולה נחסמה על ידי בקרת גישה",
- "Error when assembling chunks, status code {status}" : "שגיאה באיסוף הנתחים, קוד המצב {status}",
- "Actions" : "פעולות",
- "Rename" : "שינוי שם",
- "Move" : "העברה",
- "Copy" : "העתקה",
- "Choose target folder" : "נא לבחור תיקיית יעד",
- "Edit locally" : "עריכה בשולחן העבודה",
- "Open" : "פתיחה",
- "Delete file" : "מחיקת קובץ",
- "Delete folder" : "מחק תיקייה",
- "Disconnect storage" : "ניתוק אחסון",
- "Could not load info for file \"{file}\"" : "לא ניתן לטעון מידע על הקובץ „{file}”",
- "Files" : "קבצים",
- "Details" : "פרטים",
- "Pending" : "ממתין",
- "Unable to determine date" : "לא ניתן לקבוע תאריך",
- "This operation is forbidden" : "פעולה זו אסורה",
- "This directory is unavailable, please check the logs or contact the administrator" : "תיקייה זו לא קיימת, יש לבדוק את הלוגים או ליצור קשר עם המנהל",
- "Storage is temporarily not available" : "האחסון אינו זמין באופן זמני",
- "Could not move \"{file}\", target exists" : "לא ניתן להעביר \"{file}\", קובץ מטרה קיים",
- "Could not move \"{file}\"" : "לא ניתן להעביר \"{file}\"",
- "copy" : "עותק",
- "Could not copy \"{file}\", target exists" : "לא ניתן להעתיק את „{file}”, היעד קיים",
- "Could not copy \"{file}\"" : "לא ניתן להעתיק את „{file}”",
- "Copied {origin} inside {destination}" : "{origin} הועתק לתוך {destination} ",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "הועתקו {origin} ו־{nbfiles} קבצים אחרים לתוך {destination}",
- "{newName} already exists" : "{newName} כבר קיים",
- "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}\"",
- "Could not create file \"{file}\" because it already exists" : "לא ניתן ליצור את הקובץ \"{file}\" כיוון שהוא כבר קיים",
- "Could not create folder \"{dir}\" because it already exists" : "לא ניתן ליצור את התיקייה \"{dir}\" כיוון שהיא כבר קיימת",
- "Could not fetch file details \"{file}\"" : "לא ניתן לקבל את פרטי הקובץ „{file}”",
- "Error deleting file \"{fileName}\"." : "שגיאה בזמן מחיקת קובץ \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "אין תוצאות חיפוש בתיקיות אחרות עבור {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "יש להקליד למעלה משני תווים כדי לחפש בתיקיות אחרות",
- "Name" : "שם",
- "Size" : "גודל",
- "Modified" : "זמן שינוי",
- "_%n folder_::_%n folders_" : ["%n תיקייה","%n תיקיות","%n תיקיות","%n תיקיות"],
- "_%n file_::_%n files_" : ["%n קובץ","%n קבצים","%n קבצים","%n קבצים"],
- "{dirs} and {files}" : "{dirs} וכן {files}",
- "_including %n hidden_::_including %n hidden_" : ["לרבות %n מוסתר","לרבות %n מוסתרים","לרבות %n מוסתרים"],
- "_Uploading %n file_::_Uploading %n files_" : ["מעלה %n קובץ","מעלה %n קבצים","מעלה %n קבצים"],
- "New" : "חדש",
- "Select file range" : "בחירת טווח קבצים",
- "{used} of {quota} used" : "{used} מתוך {quota} בשימוש",
- "{used} used" : "{used} בשימוש",
- "\"{name}\" is an invalid file name." : "\"{name}\" הנו שם קובץ לא חוקי.",
- "File name cannot be empty." : "שם קובץ אינו יכול להיות ריק",
- "\"/\" is not allowed inside a file name." : "אסור להשתמש ב־„/” בתוך שם קובץ.",
- "\"{name}\" is not an allowed filetype" : "סוד הקובץ „{name}” אינו מורשה",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "האחסון של {owner} כמעט מלא ({usedSpacePercent}%).",
- "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "התיקיה הקבוצתית \"{mountPoint}\" כמעט מלאה ({usedSpacePercent}%).",
- "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "האחסון החיצוני \"{mountPoint}\" כמעט מלא ({usedSpacePercent}%).",
- "Your storage is almost full ({usedSpacePercent}%)." : "האחסון שלך כמעט מלא ({usedSpacePercent}%).",
- "View in folder" : "הצג בתיקייה",
- "Path" : "נתיב",
- "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים"],
- "Favorited" : "מועדף",
- "Favorite" : "מועדף",
- "New folder" : "תיקייה חדשה",
- "Create new folder" : "יצירת תיקייה חדשה",
- "Upload file" : "העלאת קובץ",
- "Recent" : "אחרונים",
- "Not favorited" : "לא במועדפים",
- "Remove from favorites" : "הסרה מהמועדפים",
- "Add to favorites" : "הוספה למועדפים",
- "An error occurred while trying to update the tags" : "שגיאה אירעה בזמן עדכון התגיות",
- "Added to favorites" : "נוסף למועדפים",
- "Removed from favorites" : "הוסר מהמועדפים",
- "You added {file} to your favorites" : "הוספת את {file} למועדפים שלך",
- "You removed {file} from your favorites" : "הסרת את {file} מהמועדפים שלך",
- "Favorites" : "מועדפים",
- "File changes" : "שינויים בקובץ",
- "Created by {user}" : "נוצר על ידי {user}",
- "Changed by {user}" : "נערך על ידי {user}",
- "Deleted by {user}" : "נמחק על ידי {user}",
- "Restored by {user}" : "שוחזר על ידי {user}",
- "Renamed by {user}" : "השם השתנה על ידי {user}",
- "Moved by {user}" : "הועבר על ידי {user}",
- "You created {file}" : "יצרת את {file}",
- "You created an encrypted file in {file}" : "יצרת קובץ מוצפן בתוך {file}",
- "{user} created {file}" : " {file} נוצר על ידי {user}",
- "{user} created an encrypted file in {file}" : "נוצר קובץ מוצפן בתוך {file} על ידי {user}",
- "{file} was created in a public folder" : "{file} נוצר בתוך תיקייה ציבורית",
- "You changed {file}" : "שינית את {file}",
- "You changed an encrypted file in {file}" : "שינית קובץ מוצפן בתוך {file}",
- "{user} changed {file}" : "{file} נערך על ידי {user}",
- "{user} changed an encrypted file in {file}" : "קובץ מוצפן בתוך {file} נערך על ידי {user}",
- "You deleted {file}" : "מחקת את {file}",
- "You deleted an encrypted file in {file}" : "מחקת קובץ מוצפן תחת {file}",
- "{user} deleted {file}" : "{file} נמחק על ידי {user}",
- "{user} deleted an encrypted file in {file}" : "קובץ מוצפן בתוך {file} נמחק על ידי {user}",
- "You restored {file}" : "שחזרת את {file}",
- "{user} restored {file}" : "{file} שוחזר על ידי {user}",
- "You renamed {oldfile} to {newfile}" : "שינית את השם של {oldfile} לשם {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "השם של {oldfile} השתנה אל {newfile} על ידי {user}",
- "You moved {oldfile} to {newfile}" : "העברת את {oldfile} אל {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{oldfile} הועבר אל {newfile} על ידי {user}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "קובץ נוסף או הוסר מה<strong>מועדפים</strong> שלך",
- "A file or folder has been <strong>changed</strong>" : "קובץ או תיקייה <strong>שונו<strong/>",
- "A favorite file or folder has been <strong>changed</strong>" : "קובץ או תיקייה מהמועדפים <strong>נערכו</strong>",
- "Upload (max. %s)" : "העלאה (מקסימום %s)",
- "Accept" : "קבלה",
- "Reject" : "דחייה",
- "Incoming ownership transfer from {user}" : "העברת בעלות נכנסת מאת {user}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "לקבל את {path}?\n\nלתשומת לך: תהליך ההעברה לאחר האישור עשוי לארוך עד כשעה.",
- "Ownership transfer failed" : "העברת הבעלות נכשלה",
- "Your ownership transfer of {path} to {user} failed." : "העברת הבעלות על {path} לידי {user} ממך נכשלה.",
- "The ownership transfer of {path} from {user} failed." : "העברת הבעלות על {path} לידי {user} נכשלה.",
- "Ownership transfer done" : "העברת הבעלות הושלמה",
- "Your ownership transfer of {path} to {user} has completed." : "העברת הבעלות על {path} לידי {user} ממך הושלמה.",
- "The ownership transfer of {path} from {user} has completed." : "העברת הבעלות על {path} לידי {user} הושלמה.",
- "in %s" : "ב־%s",
- "File Management" : "ניהול קבצים",
- "You don’t have permission to upload or create files here" : "אין לך הרשאות להעלות או ליצור קבצים כאן",
- "Filename" : "שם קובץ",
- "Folder name" : "שם התיקייה",
- "Clear filter" : "מחיקת מסנן",
- "Type" : "סוג",
- "File not found" : "קובץ לא נמצא",
- "Your storage is full, files can not be updated or synced anymore!" : "האחסון שלך מלא, כבר לא ניתן לעדכן ולסנכרן קבצים!",
- "Create" : "יצירה",
- "Submit" : "שליחה",
- "Transfer ownership of a file or folder" : "העברת בעלות על קובץ או תיקייה",
- "Choose file or folder to transfer" : "נא לבחור קובץ או תיקייה להעברה",
- "Change" : "שינוי",
- "New owner" : "בעלים חדשים",
- "Choose a file or folder to transfer" : "נא לבחור קובץ או תיקייה להעברה",
- "Transfer" : "העברה",
- "Transfer {path} to {userid}" : "העברת {path} לידי {userid}",
- "Invalid path selected" : "הנתיב שנבחר שגוי",
- "Unknown error" : "שגיאה בלתי ידועה",
- "Ownership transfer request sent" : "נשלחה בקשת העברת בעלות",
- "No files in here" : "אין כאן קבצים",
- "Upload some content or sync with your devices!" : "יש להעלות קצת תוכן או לסנכרן עם ההתקנים שלך!",
- "Go back" : "חזרה",
- "Share" : "שתף",
- "Shared by link" : "משותף על ידי קישור",
- "Shared" : "משותף",
- "Views" : "תצוגות",
- "Files settings" : "הגדרות לקבצים",
- "Show hidden files" : "הצגת קבצים נסתרים",
- "Crop image previews" : "חיתוך תצוגות מקדימות של תמונות",
- "Additional settings" : "הגדרות נוספות",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "העתקה ללוח הגזירים",
- "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" : "שגיאה בטעינת נתוני הקובץ",
- "Delete permanently" : "מחיקה לצמיתות",
- "Cancel" : "ביטול",
- "Open details" : "פתיחת פרטים",
- "Today" : "היום",
- "Documents" : "מסמכים",
- "Audio" : "קובץ שמע",
- "Videos" : "סרטונים",
- "Some files could not be moved" : "חלק מהקבצים לא הועברו",
- "No favorites yet" : "אין מועדפים עדיין",
- "Files and folders you mark as favorite will show up here" : "קבצים ותיקיות שסומנו על ידך כמועדפים יוצגו כאן",
- "All files" : "כל הקבצים",
- "All folders" : "כל התיקיות",
- "No entries found in this folder" : "לא נמצאו כניסות לתיקייה זו",
- "Select all" : "לבחור הכול",
- "Upload too large" : "העלאה גדולה מידי",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "הקבצים שניסית להעלות חרגו מהגודל המקסימלי להעלאת קבצים על שרת זה.",
- "Text file" : "קובץ טקסט",
- "New text file.txt" : "קובץ טקסט חדש.txt",
- "Copy direct link (only works for users who have access to this file/folder)" : "העתקת קישור ישיר (עובד רק עבור משתמשים שיש להם גישה לקובץ/תיקייה זו)",
- "\"remote user\"" : "„משתמש מרוחק”",
- "Name cannot be empty" : "השם לא יכול להישאר ריק"
-},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/hr.js b/apps/files/l10n/hr.js
deleted file mode 100644
index e7f87bc6455..00000000000
--- a/apps/files/l10n/hr.js
+++ /dev/null
@@ -1,216 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Added to favorites" : "Dodano u favorite",
- "Removed from favorites" : "Uklonjeno iz favorita",
- "You added {file} to your favorites" : "Dodali ste {file} u svoje favorite",
- "You removed {file} from your favorites" : "Uklonili ste {file} iz svojih favorita",
- "Favorites" : "Favoriti",
- "File changes" : "Promjene datoteka",
- "Created by {user}" : "Stvorio {user}",
- "Changed by {user}" : "Izmijenio {user}",
- "Deleted by {user}" : "Izbrisao {user}",
- "Restored by {user}" : "Vratio {user}",
- "Renamed by {user}" : "Preimenovao {user}",
- "Moved by {user}" : "Premjestio {user}",
- "You created {file}" : "Stvorili ste {file}",
- "You created an encrypted file in {file}" : "Stvorili ste šifriranu datoteku u {file}",
- "{user} created {file}" : "{user} je stvorio {file}",
- "{user} created an encrypted file in {file}" : "{user} je stvorio šifriranu datoteku u {file}",
- "{file} was created in a public folder" : "{file} je stvorena u javnoj mapi",
- "You changed {file}" : "Promijenili ste {file}",
- "You changed an encrypted file in {file}" : "Promijenili ste šifriranu datoteku u {file}",
- "{user} changed {file}" : "{user} je promijenio {file}",
- "{user} changed an encrypted file in {file}" : "{user} je promijenio šifriranu datoteku u {file}",
- "You deleted {file}" : "Izbrisali ste {file}",
- "You deleted an encrypted file in {file}" : "Izbrisali ste šifriranu datoteku u {file}",
- "{user} deleted {file}" : "{user} je izbrisao {file}",
- "{user} deleted an encrypted file in {file}" : "{user} je izbrisao šifriranu datoteku u {file}",
- "You restored {file}" : "Vratili ste {file}",
- "{user} restored {file}" : "{user} je vratio {file}",
- "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Preimenovali ste {oldfile} (skriveno) u {newfile} (skriveno)",
- "You renamed {oldfile} (hidden) to {newfile}" : "Preimenovali ste {oldfile} (skriveno) u {newfile}",
- "You renamed {oldfile} to {newfile} (hidden)" : "Preimenovali ste {oldfile} u {newfile} (skriveno)",
- "You renamed {oldfile} to {newfile}" : "Preimenovali ste {oldfile} u {newfile}",
- "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user} je preimenovao {oldfile} (skriveno) u {newfile} (skriveno)",
- "{user} renamed {oldfile} (hidden) to {newfile}" : "{user} je preimenovao {oldfile} (skriveno) u {newfile}",
- "{user} renamed {oldfile} to {newfile} (hidden)" : "{user} je preimenovao {oldfile} u {newfile} (skriveno)",
- "{user} renamed {oldfile} to {newfile}" : "{user} je preimenovao {oldfile} u {newfile}",
- "You moved {oldfile} to {newfile}" : "Premjestili ste {oldfile} u {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} je premjestio {oldfile} u {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Datoteka je dodana ili uklonjena iz vaših <strong>favorita</strong>",
- "Files" : "Datoteke",
- "A file or folder has been <strong>changed</strong>" : "Datoteka ili mapa su <strong>promijenjeni</strong>",
- "A favorite file or folder has been <strong>changed</strong>" : "Omiljena datoteka ili mapa je <strong>promijenjena</strong>",
- "Upload (max. %s)" : "Otprema (maks. %s)",
- "Accept" : "Prihvati",
- "Reject" : "Odbij",
- "Incoming ownership transfer from {user}" : "Dolazni prijenos vlasništva od {user}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Želite li prihvatiti {path}?\n\nNapomena: nakon prihvaćanja prijenos može potrajati do sat vremena.",
- "Ownership transfer failed" : "Prijenos vlasništva nije uspio",
- "Your ownership transfer of {path} to {user} failed." : "Nije uspio vaš prijenos vlasništva {path} na {user}.",
- "The ownership transfer of {path} from {user} failed." : "Nije uspio prijenos vlasništva {path} od {user}.",
- "Ownership transfer done" : "Prijenos vlasništva je završen",
- "Your ownership transfer of {path} to {user} has completed." : "Vaš prijenos vlasništva {path} na {user} je završen.",
- "The ownership transfer of {path} from {user} has completed." : "Prijenos vlasništva {path} od {user} je završen.",
- "in %s" : "za %s",
- "File Management" : "Upravljanje datotekama",
- "Home" : "Početna",
- "Target folder does not exist any more" : "Ciljna mapa više ne postoji",
- "You don’t have permission to upload or create files here" : "Ovdje ne smijete otpremati ili stvarati datoteke",
- "Favorite" : "Favorit",
- "Filename" : "Naziv datoteke",
- "Folder name" : "Naziv mape",
- "Pending" : "Na čekanju",
- "Clear filter" : "Ukloni filtar",
- "Modified" : "Promijenjeno",
- "Type" : "Vrsta",
- "Name" : "Naziv",
- "Size" : "Veličina",
- "Actions" : "Radnje",
- "File not found" : "Datoteka nije pronađena",
- "{used} of {quota} used" : "Iskorišteno {used} od {quota}",
- "Your storage is full, files can not be updated or synced anymore!" : "Vaša je pohrana puna, datoteke više nije moguće ažurirati ni sinkronizirati!",
- "Create" : "Stvori",
- "New folder" : "Nova mapa",
- "Create new folder" : "Stvori novu mapu",
- "Submit" : "Šalji",
- "Transfer ownership of a file or folder" : "Prenesi vlasništvo nad datotekom ili mapom",
- "Choose file or folder to transfer" : "Odaberite datoteku ili mapu za prijenos",
- "Change" : "Promijeni",
- "New owner" : "Novi vlasnik",
- "Choose a file or folder to transfer" : "Odaberite datoteku ili mapu za prijenos",
- "Transfer" : "Prijenos",
- "Transfer {path} to {userid}" : "Prijenos {path} na {userid}",
- "Invalid path selected" : "Odabran nevažeći put",
- "Unknown error" : "Nepoznata pogreška",
- "Ownership transfer request sent" : "Zahtjev za prijenos vlasništva je poslan",
- "No files in here" : "Nema datoteka",
- "Upload some content or sync with your devices!" : "Otpremite neki sadržaj ili sinkronizirajte sa svojim uređajima!",
- "Go back" : "Natrag",
- "Share" : "Dijeli",
- "Shared by link" : "Podijeljeno putem poveznice",
- "Shared" : "Dijeljeno",
- "Switch to list view" : "Prebacite na prikaz popisa",
- "Not enough free space" : "Nema dovoljno slobodnog prostora",
- "Operation is blocked by access control" : "Radnju je blokirala kontrola pristupa",
- "Views" : "Prikazi",
- "Show hidden files" : "Prikaz skrivenih datoteka",
- "Crop image previews" : "Obreži pretpreglede slika",
- "Additional settings" : "Dodatne postavke",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Kopiraj u međuspremnik",
- "Use this address to access your Files via WebDAV" : "Upotrijebite ovu adresu za pristupanje svojim datotekama putem WebDAVa",
- "Remove from favorites" : "Ukloni iz favorita",
- "Add to favorites" : "Dodaj u favorite",
- "Tags" : "Oznake",
- "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}",
- "Create a new file with the selected template" : "Stvorite novu datoteku s odabranim predloškom",
- "Creating file" : "Stvaranje datoteke",
- "Blank" : "Prazno",
- "Unable to create new file from template" : "Nije moguće stvoriti novu datoteku iz predloška",
- "Disconnect storage" : "Odspoji pohranu",
- "Delete permanently" : "Trajno izbrišite",
- "Delete file" : "Izbrisati datoteku",
- "Delete folder" : "Izbriši mapu",
- "Delete" : "Izbriši",
- "Cancel" : "Odustani",
- "Copy" : "Kopiraj",
- "Move" : "Premjesti",
- "Move or copy" : "Premjesti ili kopiraj",
- "Rename" : "Preimenuj",
- "Open details" : "Otvori pojedinosti",
- "View in folder" : "Prikaži u mapi",
- "Documents" : "Dokumenti",
- "Audio" : "Audio",
- "Videos" : "Videozapisi",
- "Unable to initialize the templates directory" : "Nije moguće inicijalizirati direktorij predložaka",
- "Templates" : "Predlošci",
- "Some files could not be moved" : "Neke datoteke nije moguće premjestiti",
- "This operation is forbidden" : "Ova radnja je zabranjena",
- "This directory is unavailable, please check the logs or contact the administrator" : "Ovaj direktorij je nedostupan, provjerite zapise ili se obratite administratoru",
- "Storage is temporarily not available" : "Pohrana privremeno nije dostupna",
- "No favorites yet" : "Još nema favorita",
- "Files and folders you mark as favorite will show up here" : "Ovdje će se prikazati datoteke i mape koje označite kao favorite",
- "All files" : "Sve datoteke",
- "Recent" : "Nedavni",
- "No entries found in this folder" : "U ovoj mapi nisu pronađeni nikakvi zapisi",
- "Select all" : "Odaberi sve",
- "Upload too large" : "Otprema je prevelika",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke koje pokušavate otpremiti premašuju maksimalnu veličinu za otpremu datoteka na ovom poslužitelju.",
- "File could not be found" : "Datoteka nije pronađena",
- "Download" : "Preuzmi",
- "Close" : "Zatvori",
- "Could not create folder \"{dir}\"" : "Nije moguće stvoriti mapu „{dir}”",
- "This will stop your current uploads." : "Ovo će zaustaviti vaše trenutačne otpreme.",
- "Upload cancelled." : "Otpremanje je prekinuto.",
- "Processing files …" : "Obrada datoteka...",
- "…" : "…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nije moguće otpremiti {filename} jer je direktorij ili ima 0 bajta",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nedovoljno slobodnog prostora, otpremate {size1} a preostalo je samo {size2}",
- "Target folder \"{dir}\" does not exist any more" : "Ciljna mapa „{dir}” više ne postoji",
- "An unknown error has occurred" : "Došlo je do nepoznate pogreške",
- "Uploading …" : "Otpremanje...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} od {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "Nije podržano otpremanje ove stavke",
- "Error when assembling chunks, status code {status}" : "Pogreška prilikom sastavljanja komada, šifra statusa {status}",
- "Choose target folder" : "Odaberi ciljnu mapu",
- "Open" : "Otvori",
- "Could not load info for file \"{file}\"" : "Nije moguće učitati podatke za datoteku „{file}”",
- "Details" : "Pojedinosti",
- "Unable to determine date" : "Nije moguće odrediti datum",
- "Could not move \"{file}\", target exists" : "Neuspješno premještanje „{file}”, ciljna datoteka postoji",
- "Could not move \"{file}\"" : "Neuspješno premještanje „{file}”",
- "copy" : "kopiraj",
- "Could not copy \"{file}\", target exists" : "Neuspješno kopiranje „{file}”, ciljna datoteka postoji",
- "Could not copy \"{file}\"" : "Neuspješno kopiranje „{file}”",
- "Copied {origin} inside {destination}" : "Kopirano {origin} unutar {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "Kopirano {origin} i {nbfiles} ostalih datoteka unutar {destination}",
- "{newName} already exists" : "{newName} već postoji",
- "Could not rename \"{fileName}\", it does not exist any more" : "Neuspješno preimenovanje „{fileName}”, datoteka više ne postoji",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Naziv „{targetName}” upotrebljava se u mapi „{dir}”. Odaberite drugi naziv.",
- "Could not rename \"{fileName}\"" : "Neuspješno preimenovanje „{fileName}”",
- "Could not create file \"{file}\"" : "Nije moguće stvoriti datoteku „{file}”",
- "Could not create file \"{file}\" because it already exists" : "Nije moguće stvoriti datoteku „{file}” jer već postoji",
- "Could not create folder \"{dir}\" because it already exists" : "Nije moguće stvoriti mapu „{dir}” jer već postoji",
- "Could not fetch file details \"{file}\"" : "Neuspješno dohvaćanje pojedinosti o datoteci „{file}“",
- "Error deleting file \"{fileName}\"." : "Pogreška pri brisanju datoteke „{fileName}”.",
- "No search results in other folders for {tag}{filter}{endtag}" : "Nema rezultata pretraživanja u drugim mapama za {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "Unesite više od dva znaka za pretraživanje u drugim mapama",
- "_%n folder_::_%n folders_" : ["%n mapa","%n mapa","%n mapa"],
- "_%n file_::_%n files_" : ["%n datoteka","%n datoteka","%n datoteka"],
- "{dirs} and {files}" : "{dirs} i {files}",
- "_including %n hidden_::_including %n hidden_" : ["uključujući %n skrivenih","uključujući %n skrivenih","uključujući %n skrivenih"],
- "_Uploading %n file_::_Uploading %n files_" : ["Otpremanje %n datoteku","Prenosim %n datoteka","Prenosim %n datoteka"],
- "New" : "Novo",
- "Select file range" : "Odaberi raspon datoteka",
- "{used} used" : "Iskorišteno {used}",
- "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime datoteke.",
- "File name cannot be empty." : "Naziv datoteke ne može biti prazan.",
- "\"/\" is not allowed inside a file name." : "„/” nije dopušteno unutar naziva datoteke.",
- "\"{name}\" is not an allowed filetype" : "„{name}” nije dopuštena vrsta datoteke",
- "Storage of {owner} is full, files cannot be updated or synced anymore!" : "Pohrana {owner} je puna, datoteke više nije moguće ažurirati niti sinkronizirati!",
- "Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Mapa grupe „{mountPoint}“ je puna, datoteke više nije moguće ažurirati ni sinkronizirati!",
- "External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Vanjsko spremište za pohranu „{mountPoint}“ je puno, datoteke više nije moguće ažurirati ni sinkronizirati!",
- "Your storage is full, files cannot be updated or synced anymore!" : "Vaša je pohrana puna, datoteke više nije moguće ažurirati ni sinkronizirati!",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "Pohrana {owner} je skoro puna ({usedSpacePercent} %).",
- "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Mapa grupe „{mountPoint}“ je skoro puna ({usedSpacePercent} %).",
- "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Vanjsko spremište za pohranu „{mountPoint}“ je skoro puno ({usedSpacePercent} %).",
- "Your storage is almost full ({usedSpacePercent}%)." : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent} %).",
- "_matches \"{filter}\"_::_match \"{filter}\"_" : ["odgovara „{filter}“","podudaranje „{filter}“","podudaranje „{filter}“"],
- "Path" : "Put",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtova","%n bajtova"],
- "Favorited" : "Favorit",
- "Copy direct link (only works for users who have access to this file/folder)" : "Kopiraj izravnu poveznicu (samo za korisnike koji smiju pristupiti ovoj datoteci/mapi)",
- "Upload file" : "Otpremi datoteku",
- "Not favorited" : "Nije označeno kao favorit",
- "An error occurred while trying to update the tags" : "Došlo je do pogreške prilikom ažuriranja oznaka",
- "\"remote user\"" : "„udaljeni korisnik”",
- "Name cannot be empty" : "Naziv ne može biti prazan",
- "Toggle %1$s sublist" : "Uključivanje/isključivanje potpopisa %1$s",
- "Text file" : "Tekstna datoteka",
- "New text file.txt" : "Nova tekstna datoteka.txt"
-},
-"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/files/l10n/hr.json b/apps/files/l10n/hr.json
deleted file mode 100644
index d1971b2a72f..00000000000
--- a/apps/files/l10n/hr.json
+++ /dev/null
@@ -1,214 +0,0 @@
-{ "translations": {
- "Added to favorites" : "Dodano u favorite",
- "Removed from favorites" : "Uklonjeno iz favorita",
- "You added {file} to your favorites" : "Dodali ste {file} u svoje favorite",
- "You removed {file} from your favorites" : "Uklonili ste {file} iz svojih favorita",
- "Favorites" : "Favoriti",
- "File changes" : "Promjene datoteka",
- "Created by {user}" : "Stvorio {user}",
- "Changed by {user}" : "Izmijenio {user}",
- "Deleted by {user}" : "Izbrisao {user}",
- "Restored by {user}" : "Vratio {user}",
- "Renamed by {user}" : "Preimenovao {user}",
- "Moved by {user}" : "Premjestio {user}",
- "You created {file}" : "Stvorili ste {file}",
- "You created an encrypted file in {file}" : "Stvorili ste šifriranu datoteku u {file}",
- "{user} created {file}" : "{user} je stvorio {file}",
- "{user} created an encrypted file in {file}" : "{user} je stvorio šifriranu datoteku u {file}",
- "{file} was created in a public folder" : "{file} je stvorena u javnoj mapi",
- "You changed {file}" : "Promijenili ste {file}",
- "You changed an encrypted file in {file}" : "Promijenili ste šifriranu datoteku u {file}",
- "{user} changed {file}" : "{user} je promijenio {file}",
- "{user} changed an encrypted file in {file}" : "{user} je promijenio šifriranu datoteku u {file}",
- "You deleted {file}" : "Izbrisali ste {file}",
- "You deleted an encrypted file in {file}" : "Izbrisali ste šifriranu datoteku u {file}",
- "{user} deleted {file}" : "{user} je izbrisao {file}",
- "{user} deleted an encrypted file in {file}" : "{user} je izbrisao šifriranu datoteku u {file}",
- "You restored {file}" : "Vratili ste {file}",
- "{user} restored {file}" : "{user} je vratio {file}",
- "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Preimenovali ste {oldfile} (skriveno) u {newfile} (skriveno)",
- "You renamed {oldfile} (hidden) to {newfile}" : "Preimenovali ste {oldfile} (skriveno) u {newfile}",
- "You renamed {oldfile} to {newfile} (hidden)" : "Preimenovali ste {oldfile} u {newfile} (skriveno)",
- "You renamed {oldfile} to {newfile}" : "Preimenovali ste {oldfile} u {newfile}",
- "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user} je preimenovao {oldfile} (skriveno) u {newfile} (skriveno)",
- "{user} renamed {oldfile} (hidden) to {newfile}" : "{user} je preimenovao {oldfile} (skriveno) u {newfile}",
- "{user} renamed {oldfile} to {newfile} (hidden)" : "{user} je preimenovao {oldfile} u {newfile} (skriveno)",
- "{user} renamed {oldfile} to {newfile}" : "{user} je preimenovao {oldfile} u {newfile}",
- "You moved {oldfile} to {newfile}" : "Premjestili ste {oldfile} u {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} je premjestio {oldfile} u {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Datoteka je dodana ili uklonjena iz vaših <strong>favorita</strong>",
- "Files" : "Datoteke",
- "A file or folder has been <strong>changed</strong>" : "Datoteka ili mapa su <strong>promijenjeni</strong>",
- "A favorite file or folder has been <strong>changed</strong>" : "Omiljena datoteka ili mapa je <strong>promijenjena</strong>",
- "Upload (max. %s)" : "Otprema (maks. %s)",
- "Accept" : "Prihvati",
- "Reject" : "Odbij",
- "Incoming ownership transfer from {user}" : "Dolazni prijenos vlasništva od {user}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Želite li prihvatiti {path}?\n\nNapomena: nakon prihvaćanja prijenos može potrajati do sat vremena.",
- "Ownership transfer failed" : "Prijenos vlasništva nije uspio",
- "Your ownership transfer of {path} to {user} failed." : "Nije uspio vaš prijenos vlasništva {path} na {user}.",
- "The ownership transfer of {path} from {user} failed." : "Nije uspio prijenos vlasništva {path} od {user}.",
- "Ownership transfer done" : "Prijenos vlasništva je završen",
- "Your ownership transfer of {path} to {user} has completed." : "Vaš prijenos vlasništva {path} na {user} je završen.",
- "The ownership transfer of {path} from {user} has completed." : "Prijenos vlasništva {path} od {user} je završen.",
- "in %s" : "za %s",
- "File Management" : "Upravljanje datotekama",
- "Home" : "Početna",
- "Target folder does not exist any more" : "Ciljna mapa više ne postoji",
- "You don’t have permission to upload or create files here" : "Ovdje ne smijete otpremati ili stvarati datoteke",
- "Favorite" : "Favorit",
- "Filename" : "Naziv datoteke",
- "Folder name" : "Naziv mape",
- "Pending" : "Na čekanju",
- "Clear filter" : "Ukloni filtar",
- "Modified" : "Promijenjeno",
- "Type" : "Vrsta",
- "Name" : "Naziv",
- "Size" : "Veličina",
- "Actions" : "Radnje",
- "File not found" : "Datoteka nije pronađena",
- "{used} of {quota} used" : "Iskorišteno {used} od {quota}",
- "Your storage is full, files can not be updated or synced anymore!" : "Vaša je pohrana puna, datoteke više nije moguće ažurirati ni sinkronizirati!",
- "Create" : "Stvori",
- "New folder" : "Nova mapa",
- "Create new folder" : "Stvori novu mapu",
- "Submit" : "Šalji",
- "Transfer ownership of a file or folder" : "Prenesi vlasništvo nad datotekom ili mapom",
- "Choose file or folder to transfer" : "Odaberite datoteku ili mapu za prijenos",
- "Change" : "Promijeni",
- "New owner" : "Novi vlasnik",
- "Choose a file or folder to transfer" : "Odaberite datoteku ili mapu za prijenos",
- "Transfer" : "Prijenos",
- "Transfer {path} to {userid}" : "Prijenos {path} na {userid}",
- "Invalid path selected" : "Odabran nevažeći put",
- "Unknown error" : "Nepoznata pogreška",
- "Ownership transfer request sent" : "Zahtjev za prijenos vlasništva je poslan",
- "No files in here" : "Nema datoteka",
- "Upload some content or sync with your devices!" : "Otpremite neki sadržaj ili sinkronizirajte sa svojim uređajima!",
- "Go back" : "Natrag",
- "Share" : "Dijeli",
- "Shared by link" : "Podijeljeno putem poveznice",
- "Shared" : "Dijeljeno",
- "Switch to list view" : "Prebacite na prikaz popisa",
- "Not enough free space" : "Nema dovoljno slobodnog prostora",
- "Operation is blocked by access control" : "Radnju je blokirala kontrola pristupa",
- "Views" : "Prikazi",
- "Show hidden files" : "Prikaz skrivenih datoteka",
- "Crop image previews" : "Obreži pretpreglede slika",
- "Additional settings" : "Dodatne postavke",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Kopiraj u međuspremnik",
- "Use this address to access your Files via WebDAV" : "Upotrijebite ovu adresu za pristupanje svojim datotekama putem WebDAVa",
- "Remove from favorites" : "Ukloni iz favorita",
- "Add to favorites" : "Dodaj u favorite",
- "Tags" : "Oznake",
- "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}",
- "Create a new file with the selected template" : "Stvorite novu datoteku s odabranim predloškom",
- "Creating file" : "Stvaranje datoteke",
- "Blank" : "Prazno",
- "Unable to create new file from template" : "Nije moguće stvoriti novu datoteku iz predloška",
- "Disconnect storage" : "Odspoji pohranu",
- "Delete permanently" : "Trajno izbrišite",
- "Delete file" : "Izbrisati datoteku",
- "Delete folder" : "Izbriši mapu",
- "Delete" : "Izbriši",
- "Cancel" : "Odustani",
- "Copy" : "Kopiraj",
- "Move" : "Premjesti",
- "Move or copy" : "Premjesti ili kopiraj",
- "Rename" : "Preimenuj",
- "Open details" : "Otvori pojedinosti",
- "View in folder" : "Prikaži u mapi",
- "Documents" : "Dokumenti",
- "Audio" : "Audio",
- "Videos" : "Videozapisi",
- "Unable to initialize the templates directory" : "Nije moguće inicijalizirati direktorij predložaka",
- "Templates" : "Predlošci",
- "Some files could not be moved" : "Neke datoteke nije moguće premjestiti",
- "This operation is forbidden" : "Ova radnja je zabranjena",
- "This directory is unavailable, please check the logs or contact the administrator" : "Ovaj direktorij je nedostupan, provjerite zapise ili se obratite administratoru",
- "Storage is temporarily not available" : "Pohrana privremeno nije dostupna",
- "No favorites yet" : "Još nema favorita",
- "Files and folders you mark as favorite will show up here" : "Ovdje će se prikazati datoteke i mape koje označite kao favorite",
- "All files" : "Sve datoteke",
- "Recent" : "Nedavni",
- "No entries found in this folder" : "U ovoj mapi nisu pronađeni nikakvi zapisi",
- "Select all" : "Odaberi sve",
- "Upload too large" : "Otprema je prevelika",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke koje pokušavate otpremiti premašuju maksimalnu veličinu za otpremu datoteka na ovom poslužitelju.",
- "File could not be found" : "Datoteka nije pronađena",
- "Download" : "Preuzmi",
- "Close" : "Zatvori",
- "Could not create folder \"{dir}\"" : "Nije moguće stvoriti mapu „{dir}”",
- "This will stop your current uploads." : "Ovo će zaustaviti vaše trenutačne otpreme.",
- "Upload cancelled." : "Otpremanje je prekinuto.",
- "Processing files …" : "Obrada datoteka...",
- "…" : "…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nije moguće otpremiti {filename} jer je direktorij ili ima 0 bajta",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nedovoljno slobodnog prostora, otpremate {size1} a preostalo je samo {size2}",
- "Target folder \"{dir}\" does not exist any more" : "Ciljna mapa „{dir}” više ne postoji",
- "An unknown error has occurred" : "Došlo je do nepoznate pogreške",
- "Uploading …" : "Otpremanje...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} od {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "Nije podržano otpremanje ove stavke",
- "Error when assembling chunks, status code {status}" : "Pogreška prilikom sastavljanja komada, šifra statusa {status}",
- "Choose target folder" : "Odaberi ciljnu mapu",
- "Open" : "Otvori",
- "Could not load info for file \"{file}\"" : "Nije moguće učitati podatke za datoteku „{file}”",
- "Details" : "Pojedinosti",
- "Unable to determine date" : "Nije moguće odrediti datum",
- "Could not move \"{file}\", target exists" : "Neuspješno premještanje „{file}”, ciljna datoteka postoji",
- "Could not move \"{file}\"" : "Neuspješno premještanje „{file}”",
- "copy" : "kopiraj",
- "Could not copy \"{file}\", target exists" : "Neuspješno kopiranje „{file}”, ciljna datoteka postoji",
- "Could not copy \"{file}\"" : "Neuspješno kopiranje „{file}”",
- "Copied {origin} inside {destination}" : "Kopirano {origin} unutar {destination}",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "Kopirano {origin} i {nbfiles} ostalih datoteka unutar {destination}",
- "{newName} already exists" : "{newName} već postoji",
- "Could not rename \"{fileName}\", it does not exist any more" : "Neuspješno preimenovanje „{fileName}”, datoteka više ne postoji",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Naziv „{targetName}” upotrebljava se u mapi „{dir}”. Odaberite drugi naziv.",
- "Could not rename \"{fileName}\"" : "Neuspješno preimenovanje „{fileName}”",
- "Could not create file \"{file}\"" : "Nije moguće stvoriti datoteku „{file}”",
- "Could not create file \"{file}\" because it already exists" : "Nije moguće stvoriti datoteku „{file}” jer već postoji",
- "Could not create folder \"{dir}\" because it already exists" : "Nije moguće stvoriti mapu „{dir}” jer već postoji",
- "Could not fetch file details \"{file}\"" : "Neuspješno dohvaćanje pojedinosti o datoteci „{file}“",
- "Error deleting file \"{fileName}\"." : "Pogreška pri brisanju datoteke „{fileName}”.",
- "No search results in other folders for {tag}{filter}{endtag}" : "Nema rezultata pretraživanja u drugim mapama za {tag}{filter}{endtag}",
- "Enter more than two characters to search in other folders" : "Unesite više od dva znaka za pretraživanje u drugim mapama",
- "_%n folder_::_%n folders_" : ["%n mapa","%n mapa","%n mapa"],
- "_%n file_::_%n files_" : ["%n datoteka","%n datoteka","%n datoteka"],
- "{dirs} and {files}" : "{dirs} i {files}",
- "_including %n hidden_::_including %n hidden_" : ["uključujući %n skrivenih","uključujući %n skrivenih","uključujući %n skrivenih"],
- "_Uploading %n file_::_Uploading %n files_" : ["Otpremanje %n datoteku","Prenosim %n datoteka","Prenosim %n datoteka"],
- "New" : "Novo",
- "Select file range" : "Odaberi raspon datoteka",
- "{used} used" : "Iskorišteno {used}",
- "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime datoteke.",
- "File name cannot be empty." : "Naziv datoteke ne može biti prazan.",
- "\"/\" is not allowed inside a file name." : "„/” nije dopušteno unutar naziva datoteke.",
- "\"{name}\" is not an allowed filetype" : "„{name}” nije dopuštena vrsta datoteke",
- "Storage of {owner} is full, files cannot be updated or synced anymore!" : "Pohrana {owner} je puna, datoteke više nije moguće ažurirati niti sinkronizirati!",
- "Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Mapa grupe „{mountPoint}“ je puna, datoteke više nije moguće ažurirati ni sinkronizirati!",
- "External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Vanjsko spremište za pohranu „{mountPoint}“ je puno, datoteke više nije moguće ažurirati ni sinkronizirati!",
- "Your storage is full, files cannot be updated or synced anymore!" : "Vaša je pohrana puna, datoteke više nije moguće ažurirati ni sinkronizirati!",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "Pohrana {owner} je skoro puna ({usedSpacePercent} %).",
- "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Mapa grupe „{mountPoint}“ je skoro puna ({usedSpacePercent} %).",
- "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Vanjsko spremište za pohranu „{mountPoint}“ je skoro puno ({usedSpacePercent} %).",
- "Your storage is almost full ({usedSpacePercent}%)." : "Vaš prostor za pohranu je skoro pun ({usedSpacePercent} %).",
- "_matches \"{filter}\"_::_match \"{filter}\"_" : ["odgovara „{filter}“","podudaranje „{filter}“","podudaranje „{filter}“"],
- "Path" : "Put",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtova","%n bajtova"],
- "Favorited" : "Favorit",
- "Copy direct link (only works for users who have access to this file/folder)" : "Kopiraj izravnu poveznicu (samo za korisnike koji smiju pristupiti ovoj datoteci/mapi)",
- "Upload file" : "Otpremi datoteku",
- "Not favorited" : "Nije označeno kao favorit",
- "An error occurred while trying to update the tags" : "Došlo je do pogreške prilikom ažuriranja oznaka",
- "\"remote user\"" : "„udaljeni korisnik”",
- "Name cannot be empty" : "Naziv ne može biti prazan",
- "Toggle %1$s sublist" : "Uključivanje/isključivanje potpopisa %1$s",
- "Text file" : "Tekstna datoteka",
- "New text file.txt" : "Nova tekstna datoteka.txt"
-},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js
index f5387c65f47..24e9c70a523 100644
--- a/apps/files/l10n/hu.js
+++ b/apps/files/l10n/hu.js
@@ -49,12 +49,11 @@ OC.L10N.register(
"The file cannot be found" : "A fájl nem található",
"The destination path does not exist: %1$s" : "Az elérési útvonal nem létezik: %1$s",
"You do not have permission to create a file at the specified location" : "Nincs jogosultsága fájl létrehozására a megadott helyen",
- "The file could not be converted." : "A fájl nem konvertálható",
- "Could not get relative path to converted file" : "Nem sikerült lekérni a konvertált fájl relatív elérési útját",
+ "The file could not be converted." : "A fájl nem alakítható át.",
+ "Could not get relative path to converted file" : "Nem sikerült lekérni az átalakított fájl relatív elérési útját",
"Favorite files" : "Kedvenc fájlok",
"No favorites" : "Nincsenek kedvencek",
"More favorites" : "További kedvencek",
- "Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
"Accept" : "Elfogadás",
"Reject" : "Elutasítás",
"Incoming ownership transfer from {user}" : "Bejövő tulajdonjog-átruházás {user} részéről",
@@ -71,8 +70,10 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Átadva tőle: %1$s, ekkor %2$s",
"Files compatibility" : "Fájlok kompatibilitása",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Fájlnevek korlátozásának engedélyezése, amely biztosítja, hogy a fájlok szinkronizálhatók legyenek az összes klienssel. Alapállapotban az összes fájlnév engedélyezett, amely a POSIX (mint a Linux vagy a macOS) rendszereken érvényes.",
- "Enforce Windows compatibility" : "Windows kompatibilitás kényszerítése",
- "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ez megakadályozza a Windows rendszereken érvénytelen fájlneveket, mint például foglalt neveket vagy speciális karaktereket. De ez nem fogja érvényesíteni a kisbetű és nagybetű kompatibilitást.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "A Windows-kompatibilis fájlnevek engedélyezése után a meglévő fájlok már nem módosíthatóak, de a tulajdonosaik átnevezhetik őket érvényes új fájlnevekre.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Továbbá lehetséges a fájlok automatikus átköltöztetése is a beállítás engedélyezése után, kövesse az occ parancs dokumentációját.",
+ "Enforce Windows compatibility" : "Windows-kompatibilitás kényszerítése",
+ "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ez megakadályozza a Windows rendszereken érvénytelen fájlneveket, mint például a foglalt neveket vagy a speciális karaktereket. De ez nem fogja érvényesíteni a kis- és nagybetűk egyezőnek tekintését.",
"File Management" : "Fájlkezelés",
"Home" : "Saját mappa",
"Target folder does not exist any more" : "A célmappa már nem létezik",
@@ -80,6 +81,7 @@ OC.L10N.register(
"Go to the \"{dir}\" directory" : "Ugrás a(z) „{dir}” könyvtárhoz",
"Current directory path" : "Jelenlegi könyvtár útvonala",
"Your have used your space quota and cannot upload files anymore" : "Már felhasználta a tárhelykvótáját, így már nem tölthet fel fájlokat",
+ "You do not have permission to upload or create files here." : "Nincs jogosultsága, hogy fájlokat töltsön fel és hozzon létre itt.",
"Drag and drop files here to upload" : "Húzza ide a fájlokat a feltöltéshez",
"Favorite" : "Kedvenc",
"Back" : "Vissza",
@@ -94,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Érvénytelen fájlnév.",
"Renamed \"{oldName}\" to \"{newName}\"" : "A(z) „{oldName}” átnevezve erre: „{newName}”",
"Rename file" : "Fájl átnevezése",
+ "Folder" : "Mappa",
+ "Unknown file type" : "Ismeretlen fájltípus",
+ "{ext} image" : "{ext}-kép",
+ "{ext} video" : "{ext}-videó",
+ "{ext} audio" : "{ext}-hang",
+ "{ext} text" : "{ext}-szöveg",
"Pending" : "Függőben",
"Unknown date" : "Ismeretlen dátum",
"Clear filter" : "Szűrő törlése",
@@ -104,7 +112,9 @@ OC.L10N.register(
"Total rows summary" : "Összes sor összegzése",
"Toggle selection for all files and folders" : "Minden fájl és mappa kijelölésének átváltása",
"Name" : "Név",
+ "File type" : "Fájltípus",
"Size" : "Méret",
+ "\"{displayName}\" failed on some elements" : "A(z) „{displayName}” egyes elemeken nem sikerült",
"\"{displayName}\" batch action executed successfully" : "A(z) „{displayName}” tömeges művelet sikeresen végrehajtva",
"\"{displayName}\" action failed" : "A(z) „{displayName}” művelet sikertelen",
"Actions" : "Műveletek",
@@ -114,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "A gombot tartalmazó oszlopfejlécek rendezhetők.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ez a lista teljesítménybeli okokból nincs teljes egészében megjelenítve. A fájlok a listában navigálás során jelennek meg.",
"File not found" : "A fájl nem található",
- "{count} selected" : "{count}kiválasztva",
+ "_{count} selected_::_{count} selected_" : ["{count} kijelölve","{count} kijelölve"],
"{usedQuotaByte} used" : "{usedQuotaByte} felhasználva",
"{used} of {quota} used" : "{used} / {quota} felhasználva",
"{relative}% used" : "{relative}% felhasználva",
@@ -127,6 +137,7 @@ OC.L10N.register(
"This name is already in use." : "Ez a név már foglalt.",
"Create" : "Létrehozás",
"Fill template fields" : "Töltse ki a sablon mezőit",
+ "Submitting fields …" : "Mezők beküldése…",
"Submit" : "Beküldés",
"Choose a file or folder to transfer" : "Válassz egy átruházandó fájlt vagy mappát",
"Transfer" : "Átruházás",
@@ -140,11 +151,14 @@ OC.L10N.register(
"Change" : "Módosítás",
"New owner" : "Új tulajdonos",
"Keep {old}" : "{old} megtartása",
+ "Keep without extension" : "Megtartás kiterjesztés nélkül",
+ "Use {new}" : "{new} használata",
"Remove extension" : "Kiterjesztés eltávolítása",
"Change file extension" : "Kiterjesztés módosítása",
- "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "Ha a file kiterjesztését megváltoztatod erről: \"{old}\" erre: \"{new}\", akkor előfordulhat, hogy aztán nem lehet majd megnyitni.",
- "Removing the file extension \"{old}\" may render the file unreadable." : "Ha leveszed a file kiterjesztését: \"{old}\", akkor előfordulhat, hogy aztán nem lehet majd megnyitni.",
- "Adding the file extension \"{new}\" may render the file unreadable." : "Ha hozzáadod ezt a kiterjesztést: \"{new}\", akkor előfordulhat, hogy aztán nem lehet majd megnyitni.",
+ "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "A fájl „{old}” kiterjesztésről „{new}” kiterjesztésre változtatása olvashatatlanná teheti azt.",
+ "Removing the file extension \"{old}\" may render the file unreadable." : "A fájl „{old}” kiterjesztésének eltávolítása olvashatatlanná teheti azt.",
+ "Adding the file extension \"{new}\" may render the file unreadable." : "A fájl „{new}” kiterjesztésének hozzáadása olvashatatlanná teheti azt.",
+ "Do not show this dialog again." : "Ne jelenítse meg újra ezt a párbeszédablakot.",
"Select file or folder to link to" : "Válassza ki a hivatkozandó fájlt vagy mappát",
"Choose {file}" : "{file} kiválasztása",
"Share" : "Megosztás",
@@ -152,6 +166,7 @@ OC.L10N.register(
"Shared" : "Megosztva",
"Switch to list view" : "Váltás listanézetre",
"Switch to grid view" : "Váltás rácsnézetre",
+ "The file could not be found" : "A fájl nem található",
"Upload was cancelled by user" : "Feltöltés megszakítva a felhasználó által",
"Not enough free space" : "Nincs elég szabad hely",
"Operation is blocked by access control" : "A hozzáférés-vezérlés letiltotta a műveletet",
@@ -164,6 +179,7 @@ OC.L10N.register(
"No files in here" : "Itt nincsenek fájlok",
"Upload some content or sync with your devices!" : "Töltsön fel néhány tartalmat, vagy szinkronizáljon az eszközeivel.",
"Go back" : "Visszalépés",
+ "Filter file names …" : "Fájlnevek szűrése…",
"Views" : "Nézetek",
"Files settings" : "Fájlok beállításai",
"Your files" : "Saját fájlok",
@@ -175,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Kedvencek előre rendezése",
"Sort folders before files" : "Mappák fájlok elé rendezése",
"Show hidden files" : "Rejtett fájlok megjelenítése",
+ "Show file type column" : "Fájltípus oszlop megjelenítése",
"Crop image previews" : "Kép előnézetek vágása",
"Enable the grid view" : "Rácsnézet engedélyezése",
"Enable folder tree" : "Mappafa engedélyezése",
@@ -184,8 +201,11 @@ OC.L10N.register(
"Copy to clipboard" : "Másolás a vágólapra",
"Use this address to access your Files via WebDAV" : "Ezzel a címmel férhet hozzá a Fájlokhoz a WebDAV-on keresztül",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Ha engedélyezte a kétfaktoros hitelesítést, akkor kattintson ide, hogy létrehozzon egy új alkalmazásjelszót, és azt használja.",
+ "Warnings" : "Figyelmeztetések",
+ "Prevent warning dialogs from open or reenable them." : "Figyelmeztető párbeszédablakok megnyitásának megakadályozása vagy engedélyezése.",
+ "Show a warning dialog when changing a file extension." : "Figyelmeztető párbeszédablakok megnyitása a fájlkiterjesztés módosításakor.",
"Keyboard shortcuts" : "Gyorsbillentyűk",
- "Speed up your Files experience with these quick shortcuts." : "Gyorsítsa fel a Fájlböngészést ezekkel a billentyűparancsokkal.",
+ "Speed up your Files experience with these quick shortcuts." : "Gyorsítsa fel a fájlböngészést ezekkel a billentyűparancsokkal.",
"Open the actions menu for a file" : "Nyissa meg a fájl műveletek menüjét",
"Rename a file" : "Fájl átnevezése",
"Delete a file" : "Fájl törlése",
@@ -208,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Gyorsbillentyűk megjelenítése",
"You" : "Ön",
"Shared multiple times with different people" : "Többször megosztva különböző személyekkel",
+ "Unable to change the favorite 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",
"Owner" : "Tulajdonos",
"Remove from favorites" : "Eltávolítás a kedvencekből",
@@ -220,14 +241,18 @@ OC.L10N.register(
"Creating file" : "Fájl létrehozása",
"Save as {displayName}" : "Mentés mint {displayName}",
"Save as …" : "Mentés másként…",
- "Failed to convert files: {message}" : "A fájlok konvertálása sikertelen: {message}",
- "All files failed to be converted" : "Az összes fájl konvertálása sikertelen",
- "One file could not be converted: {message}" : "Egy fájl nem konvertálható: {message}",
- "Files successfully converted" : "Fájlok sikeresen konvertálva",
- "Failed to convert files" : "A fájlok konvertálása sikertelen",
- "File successfully converted" : "Fájl sikeresen konvertálva",
- "Failed to convert file: {message}" : "A fájl konvertálása sikertelen: {message}",
- "Failed to convert file" : "A fájl konvertálása sikertelen",
+ "Converting files …" : "Fájlok átalakítása…",
+ "Failed to convert files: {message}" : "A fájlok átalakítása sikertelen: {message}",
+ "All files failed to be converted" : "Az összes fájl átalakítása sikertelen",
+ "One file could not be converted: {message}" : "Egy fájl nem alakítható át: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["Egy fájl nem alakítható át","%n fájl nem alakítható át"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Egy fájl sikeresen átalakítva","%n fájl sikeresen átalakítva"],
+ "Files successfully converted" : "Fájlok sikeresen átalakítva",
+ "Failed to convert files" : "A fájlok átalakítása sikertelen",
+ "Converting file …" : "Fájl átalakítása…",
+ "File successfully converted" : "Fájl sikeresen átalakítva",
+ "Failed to convert file: {message}" : "A fájl átalakítása sikertelen: {message}",
+ "Failed to convert file" : "A fájl átalakítása sikertelen",
"Deletion cancelled" : "Törlés megszakítva",
"Leave this share" : "Megosztás elhagyása",
"Leave these shares" : "Megosztások elhagyása",
@@ -244,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["{count} elem törlésére készül","{count} elem törlésére készül"],
"Confirm deletion" : "Törlés megerősítése",
"Cancel" : "Mégse",
+ "Download" : "Letöltés",
"Moving \"{source}\" to \"{destination}\" …" : "„{source}” áthelyezése ide: „{destination}” …",
"Copying \"{source}\" to \"{destination}\" …" : "„{source}” másolása ide: „{destination}” …",
+ "Destination is not a folder" : "A cél nem mappa",
+ "This file/folder is already in that directory" : "Ez a fájl/mappa már létezik a mappában",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "A fájl/mappa önmagába, vagy saját almappájába áthelyezése nem lehetséges",
"(copy)" : "(másolat)",
"(copy %n)" : "(%n. másolat)",
@@ -264,11 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Az áthelyezés vagy másolás művelet megszakítva",
"Open folder {displayName}" : "A(z) {displayName} mappa megnyitása",
"Open in Files" : "Megnyitás a Fájlokban",
+ "Open locally" : "Megnyitás helyben",
+ "Failed to redirect to client" : "Nem sikerült az átirányítás a klienshez",
"Open file locally" : "A fájl megnyitása helyben",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "A fájlnak most már meg kellene nyílni az eszközén. Ha mégsem, ellenőrizze, hogy telepítve van-e az asztali alkalmazás.",
"Retry and close" : "Újrapróbálás és bezárás",
- "Failed to redirect to client" : "Nem sikerült az átirányítás a klienshez",
- "Open locally" : "Megnyitás helyben",
+ "Open online" : "Megnyitás online",
"Rename" : "Átnevezés",
"Open details" : "Részletek megnyitása",
"View in folder" : "Megtekintés mappában",
@@ -294,24 +323,28 @@ OC.L10N.register(
"In folder" : "Könyvtárban",
"Search in folder: {folder}" : "Keresés a mappában: {folder}",
"One of the dropped files could not be processed" : "Egy vagy több idehúzott fájl nem dolgozható fel",
- "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Az Ön böngészője nem támogatja a fájlrendszer API-t. Könyvtárak nem lesznek feltöltve.",
+ "Your browser does not support the Filesystem API. Directories will not be uploaded" : "A böngészője nem támogatja a fájlrendszer API-t. Könyvtárak nem lesznek feltöltve.",
"No files to upload" : "Nincsenek feltöltendő fájlok",
"Unable to create the directory {directory}" : "Nem hozható létre a(z) {directory} könyvtár",
"Some files could not be uploaded" : "Néhány fájlt nem lehet feltölteni",
"Files uploaded successfully" : "Fájlok sikeresen feltöltve",
- "No files to process" : "Nincsenek feldolgozandó fájlok ",
+ "No files to process" : "Nincsenek feldolgozandó fájlok",
"Some files could not be copied" : "Néhány fájlt nem lehetett másolni",
"Some files could not be moved" : "Néhány fájlt nem lehetett áthelyezni",
"Files copied successfully" : "A fájlok másolása sikeres",
"Files moved successfully" : "A fájlok áthelyezése sikeres",
"Conflicts resolution skipped" : "Konfliktusfeloldás kihagyva",
"Upload cancelled" : "Feltöltés megszakítva",
+ "Could not rename \"{oldName}\", it does not exist any more" : "A(z) „{oldName}” nem nevezhető át, mert már nem létezik",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "A(z) „{newName}” név már használatban van a(z) „{dir}” mappában. Válasszon másik nevet.",
+ "Could not rename \"{oldName}\"" : "A(z) „{oldName}” nem nevezhető át",
"This operation is forbidden" : "Ez a művelet tiltott",
"This directory is unavailable, please check the logs or contact the administrator" : "Ez a könyvtár nem érhető el, nézze meg a naplófájlokat vagy lépjen kapcsolatba az adminisztrátorral",
"Storage is temporarily not available" : "A tároló átmenetileg nem érhető el",
"Unexpected error: {error}" : "Váratlan hiba: {error}",
"_%n file_::_%n files_" : ["%n fájl","%n fájl"],
"_%n folder_::_%n folders_" : ["%n mappa","%n mappa"],
+ "_%n hidden_::_%n hidden_" : ["%n rejtett","%n rejtett"],
"Filename must not be empty." : "A fájlnév nem lehet üres.",
"\"{char}\" is not allowed inside a filename." : "„{char}” nem szerepelhet a fájlnévben.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "A(z) „{segment}” egy fenntartott név és fájlnevek esetén nem engedélyezett.",
@@ -336,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "A feltöltés túl nagy",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "A feltölteni próbált fájlok mérete meghaladja a kiszolgálón megengedett legnagyobb méretet.",
"File could not be found" : "A fájl nem található",
- "Download" : "Letöltés",
"Show list view" : "Listanézet megjelenítése",
"Show grid view" : "Rácsnézet megjelenítése",
"Close" : "Bezárás",
@@ -375,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "A(z) {origin} átmásolva ide: {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "A(z) {origin} és {nbfiles} egyéb fájl átmásolva ide: {destination}",
"{newName} already exists" : "A(z) {newName} már létezik",
- "Could not rename \"{fileName}\", it does not exist any more" : "A(z) „{fileName}” átnevetése sikertelen, mert már nem létezik",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "A(z) „{targetName}” név már használatban van a(z) „{dir}” mappában. Válasszon másik nevet.",
- "Could not rename \"{fileName}\"" : "A(z) „{fileName}” nem nevezhető át",
"Could not create file \"{file}\"" : "A(z) „{file}” nem hozható létre",
"Could not create file \"{file}\" because it already exists" : "A(z) „{file}” fájl nem hozható létre, mert már létezik",
"Could not create folder \"{dir}\" because it already exists" : "A(z) „{dir}” mappa nem hozható létre, mert már létezik",
@@ -398,7 +427,7 @@ OC.L10N.register(
"File name cannot be empty." : "A fájlnév nem lehet üres.",
"\"/\" is not allowed inside a file name." : "„/” nem szerepelhet fájlnévben.",
"\"{name}\" is not an allowed filetype" : "A(z) „{name}” nem engedélyezett fájltípus",
- "Storage of {owner} is full, files cannot be updated or synced anymore!" : "{owner} tárolója megtelt, a fájlok többé nem frissíthetők és szinkronizálhatók.q",
+ "Storage of {owner} is full, files cannot be updated or synced anymore!" : "{owner} tárolója megtelt, a fájlok többé nem frissíthetők és szinkronizálhatók.",
"Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "A(z) „{mountPoint}” csoportmappa megtelt, a fájlok többé nem frissíthetők vagy szinkronizálhatók.",
"External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "A(z) „{mountPoint}” külső tároló megtelt, a fájlok többé nem frissíthetők vagy szinkronizálhatók.",
"Your storage is full, files cannot be updated or synced anymore!" : "A tárhelye megtelt, a fájlok többé nem frissíthetők vagy szinkronizálhatók.",
@@ -410,34 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "A közvetlen hivatkozás másolva (csak azon személyeknek működik, akik elérik ezt a fájlt/mappát)",
"Path" : "Útvonal",
"_%n byte_::_%n bytes_" : ["%n bájt","%n bájt"],
- "Favorited" : "Kedvenc",
+ "Favored" : "Kedvelve",
+ "Favor" : "Kedvelés",
"Copy direct link (only works for people who have access to this file/folder)" : "Közvetlen hivatkozás másolása (csak azoknál a személyeknél működik, akiknek hozzáférése van a fájlhoz/mappához)",
"Upload file" : "Fájl feltöltése",
- "Not favorited" : "Nincs a kedvencek között",
+ "Not favored" : "Nincs a kedveltek között",
"An error occurred while trying to update the tags" : "Hiba történt, miközben megpróbálta frissíteni a címkéket",
- "Storage informations" : "Tárhely-információk",
- "Choose file" : "Válasszon fájlt",
- "Go to the previous folder" : "Ugrás az előző mappához",
- "Open the files app settings" : "Nyissa meg a Fájlok lalkalmazás beállításait",
- "Unable to change the favourite state of the file" : "Nem lehet megváltoztatni a fájl kedvenc állapotát",
- "Edit file locally" : "Fájl helyi szerkesztése",
- "Edit online" : "Online szerkesztés",
- "Create new templates folder" : "Új sablonmappa létrehozása",
+ "Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
+ "Submitting fields…" : "Mezők beküldése…",
+ "Filter filenames…" : "Fájlnevek szűrése…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappa","{folderCount} mappa"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fájl","{fileCount} fájl"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fájl és {folderCount} mappa","1 fájl és {folderCount} mappa"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fájl és 1 mappa","{fileCount} fájl és 1 mappa"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fájl és {folderCount} mappa",
- "List of favorites files and folders." : "Kedvenc fájlok és mappák felsorolása.",
"Personal Files" : "Személyes fájlok",
"Text file" : "Szövegfájl",
"New text file.txt" : "Új szövegfájl.txt",
- "Favored" : "Kedvelve",
- "Favor" : "Kedvelés",
- "Not favored" : "Nincs a kedveltek között",
- "Submitting fields…" : "Mezők beküldése…",
- "Filter filenames…" : "Fájlnevek szűrése…",
- "{count} files could not be converted" : "{count} fájl nem konvertálható",
- "{count} files successfully converted" : "{count} fájl sikeresen konvertálva"
+ "%1$s (renamed)" : "%1$s (átnevezve)",
+ "renamed file" : "átnevezett fájl",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "A Windows-kompatibilis fájlnevek engedélyezése után a meglévő fájlok már nem módosíthatóak, de a tulajdonosaik átnevezhetik őket érvényes új nevekre."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json
index 88d8c7644b4..e291c309b34 100644
--- a/apps/files/l10n/hu.json
+++ b/apps/files/l10n/hu.json
@@ -47,12 +47,11 @@
"The file cannot be found" : "A fájl nem található",
"The destination path does not exist: %1$s" : "Az elérési útvonal nem létezik: %1$s",
"You do not have permission to create a file at the specified location" : "Nincs jogosultsága fájl létrehozására a megadott helyen",
- "The file could not be converted." : "A fájl nem konvertálható",
- "Could not get relative path to converted file" : "Nem sikerült lekérni a konvertált fájl relatív elérési útját",
+ "The file could not be converted." : "A fájl nem alakítható át.",
+ "Could not get relative path to converted file" : "Nem sikerült lekérni az átalakított fájl relatív elérési útját",
"Favorite files" : "Kedvenc fájlok",
"No favorites" : "Nincsenek kedvencek",
"More favorites" : "További kedvencek",
- "Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
"Accept" : "Elfogadás",
"Reject" : "Elutasítás",
"Incoming ownership transfer from {user}" : "Bejövő tulajdonjog-átruházás {user} részéről",
@@ -69,8 +68,10 @@
"Transferred from %1$s on %2$s" : "Átadva tőle: %1$s, ekkor %2$s",
"Files compatibility" : "Fájlok kompatibilitása",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Fájlnevek korlátozásának engedélyezése, amely biztosítja, hogy a fájlok szinkronizálhatók legyenek az összes klienssel. Alapállapotban az összes fájlnév engedélyezett, amely a POSIX (mint a Linux vagy a macOS) rendszereken érvényes.",
- "Enforce Windows compatibility" : "Windows kompatibilitás kényszerítése",
- "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ez megakadályozza a Windows rendszereken érvénytelen fájlneveket, mint például foglalt neveket vagy speciális karaktereket. De ez nem fogja érvényesíteni a kisbetű és nagybetű kompatibilitást.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "A Windows-kompatibilis fájlnevek engedélyezése után a meglévő fájlok már nem módosíthatóak, de a tulajdonosaik átnevezhetik őket érvényes új fájlnevekre.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Továbbá lehetséges a fájlok automatikus átköltöztetése is a beállítás engedélyezése után, kövesse az occ parancs dokumentációját.",
+ "Enforce Windows compatibility" : "Windows-kompatibilitás kényszerítése",
+ "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ez megakadályozza a Windows rendszereken érvénytelen fájlneveket, mint például a foglalt neveket vagy a speciális karaktereket. De ez nem fogja érvényesíteni a kis- és nagybetűk egyezőnek tekintését.",
"File Management" : "Fájlkezelés",
"Home" : "Saját mappa",
"Target folder does not exist any more" : "A célmappa már nem létezik",
@@ -78,6 +79,7 @@
"Go to the \"{dir}\" directory" : "Ugrás a(z) „{dir}” könyvtárhoz",
"Current directory path" : "Jelenlegi könyvtár útvonala",
"Your have used your space quota and cannot upload files anymore" : "Már felhasználta a tárhelykvótáját, így már nem tölthet fel fájlokat",
+ "You do not have permission to upload or create files here." : "Nincs jogosultsága, hogy fájlokat töltsön fel és hozzon létre itt.",
"Drag and drop files here to upload" : "Húzza ide a fájlokat a feltöltéshez",
"Favorite" : "Kedvenc",
"Back" : "Vissza",
@@ -92,6 +94,12 @@
"Invalid filename." : "Érvénytelen fájlnév.",
"Renamed \"{oldName}\" to \"{newName}\"" : "A(z) „{oldName}” átnevezve erre: „{newName}”",
"Rename file" : "Fájl átnevezése",
+ "Folder" : "Mappa",
+ "Unknown file type" : "Ismeretlen fájltípus",
+ "{ext} image" : "{ext}-kép",
+ "{ext} video" : "{ext}-videó",
+ "{ext} audio" : "{ext}-hang",
+ "{ext} text" : "{ext}-szöveg",
"Pending" : "Függőben",
"Unknown date" : "Ismeretlen dátum",
"Clear filter" : "Szűrő törlése",
@@ -102,7 +110,9 @@
"Total rows summary" : "Összes sor összegzése",
"Toggle selection for all files and folders" : "Minden fájl és mappa kijelölésének átváltása",
"Name" : "Név",
+ "File type" : "Fájltípus",
"Size" : "Méret",
+ "\"{displayName}\" failed on some elements" : "A(z) „{displayName}” egyes elemeken nem sikerült",
"\"{displayName}\" batch action executed successfully" : "A(z) „{displayName}” tömeges művelet sikeresen végrehajtva",
"\"{displayName}\" action failed" : "A(z) „{displayName}” művelet sikertelen",
"Actions" : "Műveletek",
@@ -112,7 +122,7 @@
"Column headers with buttons are sortable." : "A gombot tartalmazó oszlopfejlécek rendezhetők.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ez a lista teljesítménybeli okokból nincs teljes egészében megjelenítve. A fájlok a listában navigálás során jelennek meg.",
"File not found" : "A fájl nem található",
- "{count} selected" : "{count}kiválasztva",
+ "_{count} selected_::_{count} selected_" : ["{count} kijelölve","{count} kijelölve"],
"{usedQuotaByte} used" : "{usedQuotaByte} felhasználva",
"{used} of {quota} used" : "{used} / {quota} felhasználva",
"{relative}% used" : "{relative}% felhasználva",
@@ -125,6 +135,7 @@
"This name is already in use." : "Ez a név már foglalt.",
"Create" : "Létrehozás",
"Fill template fields" : "Töltse ki a sablon mezőit",
+ "Submitting fields …" : "Mezők beküldése…",
"Submit" : "Beküldés",
"Choose a file or folder to transfer" : "Válassz egy átruházandó fájlt vagy mappát",
"Transfer" : "Átruházás",
@@ -138,11 +149,14 @@
"Change" : "Módosítás",
"New owner" : "Új tulajdonos",
"Keep {old}" : "{old} megtartása",
+ "Keep without extension" : "Megtartás kiterjesztés nélkül",
+ "Use {new}" : "{new} használata",
"Remove extension" : "Kiterjesztés eltávolítása",
"Change file extension" : "Kiterjesztés módosítása",
- "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "Ha a file kiterjesztését megváltoztatod erről: \"{old}\" erre: \"{new}\", akkor előfordulhat, hogy aztán nem lehet majd megnyitni.",
- "Removing the file extension \"{old}\" may render the file unreadable." : "Ha leveszed a file kiterjesztését: \"{old}\", akkor előfordulhat, hogy aztán nem lehet majd megnyitni.",
- "Adding the file extension \"{new}\" may render the file unreadable." : "Ha hozzáadod ezt a kiterjesztést: \"{new}\", akkor előfordulhat, hogy aztán nem lehet majd megnyitni.",
+ "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "A fájl „{old}” kiterjesztésről „{new}” kiterjesztésre változtatása olvashatatlanná teheti azt.",
+ "Removing the file extension \"{old}\" may render the file unreadable." : "A fájl „{old}” kiterjesztésének eltávolítása olvashatatlanná teheti azt.",
+ "Adding the file extension \"{new}\" may render the file unreadable." : "A fájl „{new}” kiterjesztésének hozzáadása olvashatatlanná teheti azt.",
+ "Do not show this dialog again." : "Ne jelenítse meg újra ezt a párbeszédablakot.",
"Select file or folder to link to" : "Válassza ki a hivatkozandó fájlt vagy mappát",
"Choose {file}" : "{file} kiválasztása",
"Share" : "Megosztás",
@@ -150,6 +164,7 @@
"Shared" : "Megosztva",
"Switch to list view" : "Váltás listanézetre",
"Switch to grid view" : "Váltás rácsnézetre",
+ "The file could not be found" : "A fájl nem található",
"Upload was cancelled by user" : "Feltöltés megszakítva a felhasználó által",
"Not enough free space" : "Nincs elég szabad hely",
"Operation is blocked by access control" : "A hozzáférés-vezérlés letiltotta a műveletet",
@@ -162,6 +177,7 @@
"No files in here" : "Itt nincsenek fájlok",
"Upload some content or sync with your devices!" : "Töltsön fel néhány tartalmat, vagy szinkronizáljon az eszközeivel.",
"Go back" : "Visszalépés",
+ "Filter file names …" : "Fájlnevek szűrése…",
"Views" : "Nézetek",
"Files settings" : "Fájlok beállításai",
"Your files" : "Saját fájlok",
@@ -173,6 +189,7 @@
"Sort favorites first" : "Kedvencek előre rendezése",
"Sort folders before files" : "Mappák fájlok elé rendezése",
"Show hidden files" : "Rejtett fájlok megjelenítése",
+ "Show file type column" : "Fájltípus oszlop megjelenítése",
"Crop image previews" : "Kép előnézetek vágása",
"Enable the grid view" : "Rácsnézet engedélyezése",
"Enable folder tree" : "Mappafa engedélyezése",
@@ -182,8 +199,11 @@
"Copy to clipboard" : "Másolás a vágólapra",
"Use this address to access your Files via WebDAV" : "Ezzel a címmel férhet hozzá a Fájlokhoz a WebDAV-on keresztül",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Ha engedélyezte a kétfaktoros hitelesítést, akkor kattintson ide, hogy létrehozzon egy új alkalmazásjelszót, és azt használja.",
+ "Warnings" : "Figyelmeztetések",
+ "Prevent warning dialogs from open or reenable them." : "Figyelmeztető párbeszédablakok megnyitásának megakadályozása vagy engedélyezése.",
+ "Show a warning dialog when changing a file extension." : "Figyelmeztető párbeszédablakok megnyitása a fájlkiterjesztés módosításakor.",
"Keyboard shortcuts" : "Gyorsbillentyűk",
- "Speed up your Files experience with these quick shortcuts." : "Gyorsítsa fel a Fájlböngészést ezekkel a billentyűparancsokkal.",
+ "Speed up your Files experience with these quick shortcuts." : "Gyorsítsa fel a fájlböngészést ezekkel a billentyűparancsokkal.",
"Open the actions menu for a file" : "Nyissa meg a fájl műveletek menüjét",
"Rename a file" : "Fájl átnevezése",
"Delete a file" : "Fájl törlése",
@@ -206,6 +226,7 @@
"Show those shortcuts" : "Gyorsbillentyűk megjelenítése",
"You" : "Ön",
"Shared multiple times with different people" : "Többször megosztva különböző személyekkel",
+ "Unable to change the favorite 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",
"Owner" : "Tulajdonos",
"Remove from favorites" : "Eltávolítás a kedvencekből",
@@ -218,14 +239,18 @@
"Creating file" : "Fájl létrehozása",
"Save as {displayName}" : "Mentés mint {displayName}",
"Save as …" : "Mentés másként…",
- "Failed to convert files: {message}" : "A fájlok konvertálása sikertelen: {message}",
- "All files failed to be converted" : "Az összes fájl konvertálása sikertelen",
- "One file could not be converted: {message}" : "Egy fájl nem konvertálható: {message}",
- "Files successfully converted" : "Fájlok sikeresen konvertálva",
- "Failed to convert files" : "A fájlok konvertálása sikertelen",
- "File successfully converted" : "Fájl sikeresen konvertálva",
- "Failed to convert file: {message}" : "A fájl konvertálása sikertelen: {message}",
- "Failed to convert file" : "A fájl konvertálása sikertelen",
+ "Converting files …" : "Fájlok átalakítása…",
+ "Failed to convert files: {message}" : "A fájlok átalakítása sikertelen: {message}",
+ "All files failed to be converted" : "Az összes fájl átalakítása sikertelen",
+ "One file could not be converted: {message}" : "Egy fájl nem alakítható át: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["Egy fájl nem alakítható át","%n fájl nem alakítható át"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Egy fájl sikeresen átalakítva","%n fájl sikeresen átalakítva"],
+ "Files successfully converted" : "Fájlok sikeresen átalakítva",
+ "Failed to convert files" : "A fájlok átalakítása sikertelen",
+ "Converting file …" : "Fájl átalakítása…",
+ "File successfully converted" : "Fájl sikeresen átalakítva",
+ "Failed to convert file: {message}" : "A fájl átalakítása sikertelen: {message}",
+ "Failed to convert file" : "A fájl átalakítása sikertelen",
"Deletion cancelled" : "Törlés megszakítva",
"Leave this share" : "Megosztás elhagyása",
"Leave these shares" : "Megosztások elhagyása",
@@ -242,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["{count} elem törlésére készül","{count} elem törlésére készül"],
"Confirm deletion" : "Törlés megerősítése",
"Cancel" : "Mégse",
+ "Download" : "Letöltés",
"Moving \"{source}\" to \"{destination}\" …" : "„{source}” áthelyezése ide: „{destination}” …",
"Copying \"{source}\" to \"{destination}\" …" : "„{source}” másolása ide: „{destination}” …",
+ "Destination is not a folder" : "A cél nem mappa",
+ "This file/folder is already in that directory" : "Ez a fájl/mappa már létezik a mappában",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "A fájl/mappa önmagába, vagy saját almappájába áthelyezése nem lehetséges",
"(copy)" : "(másolat)",
"(copy %n)" : "(%n. másolat)",
@@ -262,11 +290,12 @@
"Cancelled move or copy operation" : "Az áthelyezés vagy másolás művelet megszakítva",
"Open folder {displayName}" : "A(z) {displayName} mappa megnyitása",
"Open in Files" : "Megnyitás a Fájlokban",
+ "Open locally" : "Megnyitás helyben",
+ "Failed to redirect to client" : "Nem sikerült az átirányítás a klienshez",
"Open file locally" : "A fájl megnyitása helyben",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "A fájlnak most már meg kellene nyílni az eszközén. Ha mégsem, ellenőrizze, hogy telepítve van-e az asztali alkalmazás.",
"Retry and close" : "Újrapróbálás és bezárás",
- "Failed to redirect to client" : "Nem sikerült az átirányítás a klienshez",
- "Open locally" : "Megnyitás helyben",
+ "Open online" : "Megnyitás online",
"Rename" : "Átnevezés",
"Open details" : "Részletek megnyitása",
"View in folder" : "Megtekintés mappában",
@@ -292,24 +321,28 @@
"In folder" : "Könyvtárban",
"Search in folder: {folder}" : "Keresés a mappában: {folder}",
"One of the dropped files could not be processed" : "Egy vagy több idehúzott fájl nem dolgozható fel",
- "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Az Ön böngészője nem támogatja a fájlrendszer API-t. Könyvtárak nem lesznek feltöltve.",
+ "Your browser does not support the Filesystem API. Directories will not be uploaded" : "A böngészője nem támogatja a fájlrendszer API-t. Könyvtárak nem lesznek feltöltve.",
"No files to upload" : "Nincsenek feltöltendő fájlok",
"Unable to create the directory {directory}" : "Nem hozható létre a(z) {directory} könyvtár",
"Some files could not be uploaded" : "Néhány fájlt nem lehet feltölteni",
"Files uploaded successfully" : "Fájlok sikeresen feltöltve",
- "No files to process" : "Nincsenek feldolgozandó fájlok ",
+ "No files to process" : "Nincsenek feldolgozandó fájlok",
"Some files could not be copied" : "Néhány fájlt nem lehetett másolni",
"Some files could not be moved" : "Néhány fájlt nem lehetett áthelyezni",
"Files copied successfully" : "A fájlok másolása sikeres",
"Files moved successfully" : "A fájlok áthelyezése sikeres",
"Conflicts resolution skipped" : "Konfliktusfeloldás kihagyva",
"Upload cancelled" : "Feltöltés megszakítva",
+ "Could not rename \"{oldName}\", it does not exist any more" : "A(z) „{oldName}” nem nevezhető át, mert már nem létezik",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "A(z) „{newName}” név már használatban van a(z) „{dir}” mappában. Válasszon másik nevet.",
+ "Could not rename \"{oldName}\"" : "A(z) „{oldName}” nem nevezhető át",
"This operation is forbidden" : "Ez a művelet tiltott",
"This directory is unavailable, please check the logs or contact the administrator" : "Ez a könyvtár nem érhető el, nézze meg a naplófájlokat vagy lépjen kapcsolatba az adminisztrátorral",
"Storage is temporarily not available" : "A tároló átmenetileg nem érhető el",
"Unexpected error: {error}" : "Váratlan hiba: {error}",
"_%n file_::_%n files_" : ["%n fájl","%n fájl"],
"_%n folder_::_%n folders_" : ["%n mappa","%n mappa"],
+ "_%n hidden_::_%n hidden_" : ["%n rejtett","%n rejtett"],
"Filename must not be empty." : "A fájlnév nem lehet üres.",
"\"{char}\" is not allowed inside a filename." : "„{char}” nem szerepelhet a fájlnévben.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "A(z) „{segment}” egy fenntartott név és fájlnevek esetén nem engedélyezett.",
@@ -334,7 +367,6 @@
"Upload too large" : "A feltöltés túl nagy",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "A feltölteni próbált fájlok mérete meghaladja a kiszolgálón megengedett legnagyobb méretet.",
"File could not be found" : "A fájl nem található",
- "Download" : "Letöltés",
"Show list view" : "Listanézet megjelenítése",
"Show grid view" : "Rácsnézet megjelenítése",
"Close" : "Bezárás",
@@ -373,9 +405,6 @@
"Copied {origin} inside {destination}" : "A(z) {origin} átmásolva ide: {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "A(z) {origin} és {nbfiles} egyéb fájl átmásolva ide: {destination}",
"{newName} already exists" : "A(z) {newName} már létezik",
- "Could not rename \"{fileName}\", it does not exist any more" : "A(z) „{fileName}” átnevetése sikertelen, mert már nem létezik",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "A(z) „{targetName}” név már használatban van a(z) „{dir}” mappában. Válasszon másik nevet.",
- "Could not rename \"{fileName}\"" : "A(z) „{fileName}” nem nevezhető át",
"Could not create file \"{file}\"" : "A(z) „{file}” nem hozható létre",
"Could not create file \"{file}\" because it already exists" : "A(z) „{file}” fájl nem hozható létre, mert már létezik",
"Could not create folder \"{dir}\" because it already exists" : "A(z) „{dir}” mappa nem hozható létre, mert már létezik",
@@ -396,7 +425,7 @@
"File name cannot be empty." : "A fájlnév nem lehet üres.",
"\"/\" is not allowed inside a file name." : "„/” nem szerepelhet fájlnévben.",
"\"{name}\" is not an allowed filetype" : "A(z) „{name}” nem engedélyezett fájltípus",
- "Storage of {owner} is full, files cannot be updated or synced anymore!" : "{owner} tárolója megtelt, a fájlok többé nem frissíthetők és szinkronizálhatók.q",
+ "Storage of {owner} is full, files cannot be updated or synced anymore!" : "{owner} tárolója megtelt, a fájlok többé nem frissíthetők és szinkronizálhatók.",
"Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "A(z) „{mountPoint}” csoportmappa megtelt, a fájlok többé nem frissíthetők vagy szinkronizálhatók.",
"External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "A(z) „{mountPoint}” külső tároló megtelt, a fájlok többé nem frissíthetők vagy szinkronizálhatók.",
"Your storage is full, files cannot be updated or synced anymore!" : "A tárhelye megtelt, a fájlok többé nem frissíthetők vagy szinkronizálhatók.",
@@ -408,34 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "A közvetlen hivatkozás másolva (csak azon személyeknek működik, akik elérik ezt a fájlt/mappát)",
"Path" : "Útvonal",
"_%n byte_::_%n bytes_" : ["%n bájt","%n bájt"],
- "Favorited" : "Kedvenc",
+ "Favored" : "Kedvelve",
+ "Favor" : "Kedvelés",
"Copy direct link (only works for people who have access to this file/folder)" : "Közvetlen hivatkozás másolása (csak azoknál a személyeknél működik, akiknek hozzáférése van a fájlhoz/mappához)",
"Upload file" : "Fájl feltöltése",
- "Not favorited" : "Nincs a kedvencek között",
+ "Not favored" : "Nincs a kedveltek között",
"An error occurred while trying to update the tags" : "Hiba történt, miközben megpróbálta frissíteni a címkéket",
- "Storage informations" : "Tárhely-információk",
- "Choose file" : "Válasszon fájlt",
- "Go to the previous folder" : "Ugrás az előző mappához",
- "Open the files app settings" : "Nyissa meg a Fájlok lalkalmazás beállításait",
- "Unable to change the favourite state of the file" : "Nem lehet megváltoztatni a fájl kedvenc állapotát",
- "Edit file locally" : "Fájl helyi szerkesztése",
- "Edit online" : "Online szerkesztés",
- "Create new templates folder" : "Új sablonmappa létrehozása",
+ "Upload (max. %s)" : "Feltöltés (legfeljebb %s)",
+ "Submitting fields…" : "Mezők beküldése…",
+ "Filter filenames…" : "Fájlnevek szűrése…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappa","{folderCount} mappa"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fájl","{fileCount} fájl"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fájl és {folderCount} mappa","1 fájl és {folderCount} mappa"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fájl és 1 mappa","{fileCount} fájl és 1 mappa"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fájl és {folderCount} mappa",
- "List of favorites files and folders." : "Kedvenc fájlok és mappák felsorolása.",
"Personal Files" : "Személyes fájlok",
"Text file" : "Szövegfájl",
"New text file.txt" : "Új szövegfájl.txt",
- "Favored" : "Kedvelve",
- "Favor" : "Kedvelés",
- "Not favored" : "Nincs a kedveltek között",
- "Submitting fields…" : "Mezők beküldése…",
- "Filter filenames…" : "Fájlnevek szűrése…",
- "{count} files could not be converted" : "{count} fájl nem konvertálható",
- "{count} files successfully converted" : "{count} fájl sikeresen konvertálva"
+ "%1$s (renamed)" : "%1$s (átnevezve)",
+ "renamed file" : "átnevezett fájl",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "A Windows-kompatibilis fájlnevek engedélyezése után a meglévő fájlok már nem módosíthatóak, de a tulajdonosaik átnevezhetik őket érvényes új nevekre."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/hy.js b/apps/files/l10n/hy.js
deleted file mode 100644
index c515b73db76..00000000000
--- a/apps/files/l10n/hy.js
+++ /dev/null
@@ -1,40 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Files" : "Ֆայլեր",
- "All files" : "Բոլոր ֆայլերը",
- "Close" : "Փակել",
- "Download" : "Ներբեռնել",
- "Rename" : "Վերանվանել",
- "Delete" : "Ջնջել",
- "Select" : "Նշել",
- "Name" : "Անուն",
- "Size" : "Չափս",
- "Modified" : "Փոփոխված",
- "_%n folder_::_%n folders_" : ["%n պանակ","%n պանակ"],
- "_%n file_::_%n files_" : ["%n ֆայլ","%n ֆայլ"],
- "{dirs} and {files}" : "{dirs} և {files}",
- "New" : "Նոր",
- "_%n byte_::_%n bytes_" : ["%n բայտ","%n բայտ"],
- "Folder" : "Պանակ",
- "New folder" : "Նոր պանակ",
- "{newname} already exists" : "{newname} գոյություն ունի",
- "Upload" : "Բեռնել",
- "You created %1$s" : "Դու ստեղծեցիր %1$s",
- "%2$s created %1$s" : "%2$s ստեղծեց %1$s",
- "You changed %1$s" : "Դու փոխեցիր %1$s",
- "%2$s changed %1$s" : "%2$s փոխեց %1$s",
- "You deleted %1$s" : "Դու ջնջեցիր %1$s",
- "%2$s deleted %1$s" : "%2$s ջնջեց %1$s",
- "You restored %1$s" : "Դու վերականգնեցիր %1$s",
- "%2$s restored %1$s" : "%2$s վերականգնեց %1$s",
- "Changed by %2$s" : "Փոխվել է %2$sի կողմից",
- "Deleted by %2$s" : "Ջնջվել է %2$sի կողմից",
- "Restored by %2$s" : "Վերականգնվել է %2$sի կողմից",
- "Save" : "Պահպանել",
- "No files in here" : "Ֆայլեր չկան այստեղ",
- "Select all" : "Նշել բոլորը",
- "Text file" : "Տեքստ ֆայլ",
- "New text file.txt" : "Նոր տեքստ ֆայլ.txt"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/hy.json b/apps/files/l10n/hy.json
deleted file mode 100644
index 4376072e4b6..00000000000
--- a/apps/files/l10n/hy.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{ "translations": {
- "Files" : "Ֆայլեր",
- "All files" : "Բոլոր ֆայլերը",
- "Close" : "Փակել",
- "Download" : "Ներբեռնել",
- "Rename" : "Վերանվանել",
- "Delete" : "Ջնջել",
- "Select" : "Նշել",
- "Name" : "Անուն",
- "Size" : "Չափս",
- "Modified" : "Փոփոխված",
- "_%n folder_::_%n folders_" : ["%n պանակ","%n պանակ"],
- "_%n file_::_%n files_" : ["%n ֆայլ","%n ֆայլ"],
- "{dirs} and {files}" : "{dirs} և {files}",
- "New" : "Նոր",
- "_%n byte_::_%n bytes_" : ["%n բայտ","%n բայտ"],
- "Folder" : "Պանակ",
- "New folder" : "Նոր պանակ",
- "{newname} already exists" : "{newname} գոյություն ունի",
- "Upload" : "Բեռնել",
- "You created %1$s" : "Դու ստեղծեցիր %1$s",
- "%2$s created %1$s" : "%2$s ստեղծեց %1$s",
- "You changed %1$s" : "Դու փոխեցիր %1$s",
- "%2$s changed %1$s" : "%2$s փոխեց %1$s",
- "You deleted %1$s" : "Դու ջնջեցիր %1$s",
- "%2$s deleted %1$s" : "%2$s ջնջեց %1$s",
- "You restored %1$s" : "Դու վերականգնեցիր %1$s",
- "%2$s restored %1$s" : "%2$s վերականգնեց %1$s",
- "Changed by %2$s" : "Փոխվել է %2$sի կողմից",
- "Deleted by %2$s" : "Ջնջվել է %2$sի կողմից",
- "Restored by %2$s" : "Վերականգնվել է %2$sի կողմից",
- "Save" : "Պահպանել",
- "No files in here" : "Ֆայլեր չկան այստեղ",
- "Select all" : "Նշել բոլորը",
- "Text file" : "Տեքստ ֆայլ",
- "New text file.txt" : "Նոր տեքստ ֆայլ.txt"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/ia.js b/apps/files/l10n/ia.js
deleted file mode 100644
index 7a3e9d6c22d..00000000000
--- a/apps/files/l10n/ia.js
+++ /dev/null
@@ -1,124 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "Impossibile trovar le file",
- "Download" : "Discargar",
- "Delete" : "Deler",
- "Tags" : "Etiquettas",
- "Home" : "Initio",
- "Close" : "Clauder",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "Impossibile crear dossier \"{dir}\"",
- "Upload cancelled." : "Incarga cancellate.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossibile incargar {filename} proque illo es un directorio o ha 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Il non ha satis de spatio libere, tu incarga {size1} ma il resta a pena {size2} in total",
- "Target folder \"{dir}\" does not exist any more" : "Le dossier de destination \"{dir}\" non existe plus",
- "Not enough free space" : "Il non ha satis de spatio libere",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Actions" : "Actiones",
- "Rename" : "Renominar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete folder" : "Deler dossier",
- "Disconnect storage" : "Immagazinage disconnectite ",
- "Could not load info for file \"{file}\"" : "Impossibile cargar informationes pro file \"{file}\"",
- "Files" : "Files",
- "Details" : "Detalios",
- "Pending" : "Pendente",
- "Unable to determine date" : "Impossibile determinar data",
- "This operation is forbidden" : "Iste operation es prohibite",
- "This directory is unavailable, please check the logs or contact the administrator" : "Iste directorio non es disponibile, per favor verifica le registros o contacta le administrator",
- "Storage is temporarily not available" : "Immagazinage es provisorimente non disponibile",
- "Could not move \"{file}\", target exists" : "Impossibile displaciar \"{file}\": le destination ja existe",
- "Could not move \"{file}\"" : "Impossibile displaciar \"{file}\"",
- "{newName} already exists" : "{newName} ja existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "Impossibile renominar \"{fileName}\": illo non existe plus",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Le nomine \"{targetName}\" es ja usate in le dossier \"{dir}\". Per favor, selectiona un nomine differente.",
- "Could not rename \"{fileName}\"" : "Impossibile renominar \"{fileName}\"",
- "Could not create file \"{file}\"" : "Impossibile crear file \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "Impossibile crear file \"{file}\" proque illo ja existe",
- "Could not create folder \"{dir}\" because it already exists" : "Impossibile crear dossier \"{dir}\" proque illo ja existe",
- "Error deleting file \"{fileName}\"." : "Error durante deletion del file \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Nulle resultatos in altere dossiers pro le cerca {tag}{filter}{endtag}",
- "Name" : "Nomine",
- "Size" : "Dimension",
- "Modified" : "Modificate",
- "_%n folder_::_%n folders_" : ["%n dossier","%n dossiers"],
- "_%n file_::_%n files_" : ["%n file","%n files"],
- "{dirs} and {files}" : "{dirs} e {files}",
- "_including %n hidden_::_including %n hidden_" : ["includente %n occultate","includente %n occultates"],
- "_Uploading %n file_::_Uploading %n files_" : ["Incargante %n file","Incargante %n files"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nomine de file non valide.",
- "File name cannot be empty." : "Le nomine de file non pote esser vacue.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" non es un typo de file valide ",
- "View in folder" : "Vider in dossier",
- "Path" : "Sentiero",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Favorite",
- "Favorite" : "Favorite",
- "New folder" : "Nove dossier",
- "Upload file" : "Upload file",
- "Recent" : "Recente",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Add to favorites",
- "An error occurred while trying to update the tags" : "Un error occurreva durante le actualisation del etiquettas",
- "Added to favorites" : "Addite al favoritos",
- "Removed from favorites" : "Removite del favoritos",
- "You added {file} to your favorites" : "Tu addeva {file} a tu favoritos",
- "You removed {file} from your favorites" : "Tu removeva {file} de tu favortos",
- "File changes" : "Modificationes del file",
- "Created by {user}" : "Create per {user}",
- "Changed by {user}" : "Modificate per {user}",
- "Deleted by {user}" : "Delite per {user}",
- "Restored by {user}" : "Restaurate per {user}",
- "Renamed by {user}" : "Renominate per {user}",
- "Moved by {user}" : "Displaciate per {user}",
- "\"remote user\"" : "\"usator remote\"",
- "You created {file}" : "Tu creava {file}",
- "{user} created {file}" : "{user} creava {file}",
- "{file} was created in a public folder" : "{file} esseva create in un dossier public",
- "You changed {file}" : "Tu modificava {file}",
- "{user} changed {file}" : "{user} modificava {file}",
- "You deleted {file}" : "Tu deleva {file}",
- "{user} deleted {file}" : "{user} deleva {file}",
- "You restored {file}" : "Tu restaurava {file}",
- "{user} restored {file}" : "{user} restaurava {file}",
- "You renamed {oldfile} to {newfile}" : "Tu renominava {oldfile} a {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renominava {oldfile} a {newfile}",
- "You moved {oldfile} to {newfile}" : "Tu displaciava {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} displaciava {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un file esseva addite a o removite de tu <strong>favoritos</strong>",
- "A file or folder has been <strong>changed</strong>" : "Un file o dossier ha essite <strong>modificate</strong>",
- "All files" : "Tote files",
- "Upload (max. %s)" : "Incarga (maxime %s)",
- "Accept" : "Acceptar",
- "in %s" : "in %s",
- "Unknown error" : "Error incognite",
- "Show hidden files" : "Monstrar files occultate",
- "WebDAV" : "WebDAV",
- "Cancel" : "Cancellar",
- "Create" : "Crear",
- "No files in here" : "Nulle files ci",
- "Upload some content or sync with your devices!" : "Incarga alcun contento o synchronisa con tu apparatos!",
- "No entries found in this folder" : "Nulle entratas trovate in iste dossier",
- "Select all" : "Selectionar toto",
- "Upload too large" : "Incarga troppo grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Le files que tu tenta incargar excede le dimension maxime pro incarga de files in iste servitor.",
- "Files and folders you mark as favorite will show up here" : "Files e dossiers que tu marca como favorito essera monstrate ci",
- "Deleted files" : "Files delite",
- "Shares" : "Compartimentos",
- "Shared with others" : "Compartite con alteres",
- "Shared with you" : "Compartite con te",
- "Shared by link" : "Compartite per ligamine",
- "Text file" : "File de texto",
- "New text file.txt" : "Nove texto file.txt",
- "Storage invalid" : "Immagazinage non valide",
- "Select" : "Selectionar",
- "You don’t have permission to upload or create files here" : "Tu non ha permission pro incargar o crear files ci.",
- "New" : "Nove",
- "Copied!" : "Copiate!",
- "Unlimited" : "Ilimitate",
- "%1$s of %2$s used" : "%1$s de %2$s usate",
- "Settings" : "Configurationes"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ia.json b/apps/files/l10n/ia.json
deleted file mode 100644
index ced94ad21da..00000000000
--- a/apps/files/l10n/ia.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{ "translations": {
- "File could not be found" : "Impossibile trovar le file",
- "Download" : "Discargar",
- "Delete" : "Deler",
- "Tags" : "Etiquettas",
- "Home" : "Initio",
- "Close" : "Clauder",
- "Favorites" : "Favoritos",
- "Could not create folder \"{dir}\"" : "Impossibile crear dossier \"{dir}\"",
- "Upload cancelled." : "Incarga cancellate.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossibile incargar {filename} proque illo es un directorio o ha 0 bytes",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Il non ha satis de spatio libere, tu incarga {size1} ma il resta a pena {size2} in total",
- "Target folder \"{dir}\" does not exist any more" : "Le dossier de destination \"{dir}\" non existe plus",
- "Not enough free space" : "Il non ha satis de spatio libere",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
- "Actions" : "Actiones",
- "Rename" : "Renominar",
- "Move" : "Mover",
- "Copy" : "Copiar",
- "Delete folder" : "Deler dossier",
- "Disconnect storage" : "Immagazinage disconnectite ",
- "Could not load info for file \"{file}\"" : "Impossibile cargar informationes pro file \"{file}\"",
- "Files" : "Files",
- "Details" : "Detalios",
- "Pending" : "Pendente",
- "Unable to determine date" : "Impossibile determinar data",
- "This operation is forbidden" : "Iste operation es prohibite",
- "This directory is unavailable, please check the logs or contact the administrator" : "Iste directorio non es disponibile, per favor verifica le registros o contacta le administrator",
- "Storage is temporarily not available" : "Immagazinage es provisorimente non disponibile",
- "Could not move \"{file}\", target exists" : "Impossibile displaciar \"{file}\": le destination ja existe",
- "Could not move \"{file}\"" : "Impossibile displaciar \"{file}\"",
- "{newName} already exists" : "{newName} ja existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "Impossibile renominar \"{fileName}\": illo non existe plus",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Le nomine \"{targetName}\" es ja usate in le dossier \"{dir}\". Per favor, selectiona un nomine differente.",
- "Could not rename \"{fileName}\"" : "Impossibile renominar \"{fileName}\"",
- "Could not create file \"{file}\"" : "Impossibile crear file \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "Impossibile crear file \"{file}\" proque illo ja existe",
- "Could not create folder \"{dir}\" because it already exists" : "Impossibile crear dossier \"{dir}\" proque illo ja existe",
- "Error deleting file \"{fileName}\"." : "Error durante deletion del file \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Nulle resultatos in altere dossiers pro le cerca {tag}{filter}{endtag}",
- "Name" : "Nomine",
- "Size" : "Dimension",
- "Modified" : "Modificate",
- "_%n folder_::_%n folders_" : ["%n dossier","%n dossiers"],
- "_%n file_::_%n files_" : ["%n file","%n files"],
- "{dirs} and {files}" : "{dirs} e {files}",
- "_including %n hidden_::_including %n hidden_" : ["includente %n occultate","includente %n occultates"],
- "_Uploading %n file_::_Uploading %n files_" : ["Incargante %n file","Incargante %n files"],
- "\"{name}\" is an invalid file name." : "\"{name}\" es un nomine de file non valide.",
- "File name cannot be empty." : "Le nomine de file non pote esser vacue.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" non es un typo de file valide ",
- "View in folder" : "Vider in dossier",
- "Path" : "Sentiero",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Favorite",
- "Favorite" : "Favorite",
- "New folder" : "Nove dossier",
- "Upload file" : "Upload file",
- "Recent" : "Recente",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Add to favorites",
- "An error occurred while trying to update the tags" : "Un error occurreva durante le actualisation del etiquettas",
- "Added to favorites" : "Addite al favoritos",
- "Removed from favorites" : "Removite del favoritos",
- "You added {file} to your favorites" : "Tu addeva {file} a tu favoritos",
- "You removed {file} from your favorites" : "Tu removeva {file} de tu favortos",
- "File changes" : "Modificationes del file",
- "Created by {user}" : "Create per {user}",
- "Changed by {user}" : "Modificate per {user}",
- "Deleted by {user}" : "Delite per {user}",
- "Restored by {user}" : "Restaurate per {user}",
- "Renamed by {user}" : "Renominate per {user}",
- "Moved by {user}" : "Displaciate per {user}",
- "\"remote user\"" : "\"usator remote\"",
- "You created {file}" : "Tu creava {file}",
- "{user} created {file}" : "{user} creava {file}",
- "{file} was created in a public folder" : "{file} esseva create in un dossier public",
- "You changed {file}" : "Tu modificava {file}",
- "{user} changed {file}" : "{user} modificava {file}",
- "You deleted {file}" : "Tu deleva {file}",
- "{user} deleted {file}" : "{user} deleva {file}",
- "You restored {file}" : "Tu restaurava {file}",
- "{user} restored {file}" : "{user} restaurava {file}",
- "You renamed {oldfile} to {newfile}" : "Tu renominava {oldfile} a {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} renominava {oldfile} a {newfile}",
- "You moved {oldfile} to {newfile}" : "Tu displaciava {oldfile} a {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} displaciava {oldfile} a {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Un file esseva addite a o removite de tu <strong>favoritos</strong>",
- "A file or folder has been <strong>changed</strong>" : "Un file o dossier ha essite <strong>modificate</strong>",
- "All files" : "Tote files",
- "Upload (max. %s)" : "Incarga (maxime %s)",
- "Accept" : "Acceptar",
- "in %s" : "in %s",
- "Unknown error" : "Error incognite",
- "Show hidden files" : "Monstrar files occultate",
- "WebDAV" : "WebDAV",
- "Cancel" : "Cancellar",
- "Create" : "Crear",
- "No files in here" : "Nulle files ci",
- "Upload some content or sync with your devices!" : "Incarga alcun contento o synchronisa con tu apparatos!",
- "No entries found in this folder" : "Nulle entratas trovate in iste dossier",
- "Select all" : "Selectionar toto",
- "Upload too large" : "Incarga troppo grande",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Le files que tu tenta incargar excede le dimension maxime pro incarga de files in iste servitor.",
- "Files and folders you mark as favorite will show up here" : "Files e dossiers que tu marca como favorito essera monstrate ci",
- "Deleted files" : "Files delite",
- "Shares" : "Compartimentos",
- "Shared with others" : "Compartite con alteres",
- "Shared with you" : "Compartite con te",
- "Shared by link" : "Compartite per ligamine",
- "Text file" : "File de texto",
- "New text file.txt" : "Nove texto file.txt",
- "Storage invalid" : "Immagazinage non valide",
- "Select" : "Selectionar",
- "You don’t have permission to upload or create files here" : "Tu non ha permission pro incargar o crear files ci.",
- "New" : "Nove",
- "Copied!" : "Copiate!",
- "Unlimited" : "Ilimitate",
- "%1$s of %2$s used" : "%1$s de %2$s usate",
- "Settings" : "Configurationes"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index fbee6b01369..8b7a96705d8 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder telah <strong>diubah</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder favorit telah <strong>diubah</strong>",
"No favorites" : "Tidak ada favorit",
- "Upload (max. %s)" : "Unggah (maks. %s)",
"Accept" : "Terima",
"Reject" : "Ditolak",
"Incoming ownership transfer from {user}" : "Permintaan transfer kepemilikan dari {user}",
@@ -61,6 +60,7 @@ OC.L10N.register(
"Favorite" : "Favorit",
"Filename" : "Nama berkas",
"Folder name" : "Nama folder",
+ "Folder" : "Folder",
"Pending" : "Tertunda",
"Clear filter" : "Bersihkan filter",
"Modified" : "Dimodifikasi",
@@ -69,6 +69,7 @@ OC.L10N.register(
"Size" : "Ukuran",
"Actions" : "Tindakan",
"File not found" : "Berkas tidak ditemukan",
+ "_{count} selected_::_{count} selected_" : ["{count} dipilih"],
"{usedQuotaByte} used" : "{usedQuotaByte} digunakan",
"{used} of {quota} used" : "{used} dari {quota} terpakai",
"{relative}% used" : "{relative}% digunakan",
@@ -126,6 +127,7 @@ OC.L10N.register(
"Delete permanently" : "Hapus secara permanen",
"Delete" : "Hapus",
"Cancel" : "Membatalkan",
+ "Download" : "Unduh",
"Copy" : "Salin",
"Move" : "Pindah",
"Move or copy" : "Pindah atau salin",
@@ -140,6 +142,9 @@ OC.L10N.register(
"Unable to initialize the templates directory" : "Tidak dapat membuat direktori templat",
"Templates" : "Templat",
"Some files could not be moved" : "Beberapa berkas tidak dapat dipindahkan",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Tidak dapat mengganti \"{oldName}\", tidak ada lagi",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nama \"{newName}\" sudah digunakan di folder \"{dir}\". Gunakan nama yang lain.",
+ "Could not rename \"{oldName}\"" : "Tidak dapat mengganti \"{oldName}\"",
"This operation is forbidden" : "Operasi ini dilarang",
"This directory is unavailable, please check the logs or contact the administrator" : "Direktori ini tidak tersedia, silakan periksa log atau hubungi kontak",
"Storage is temporarily not available" : "Penyimpanan sementara tidak tersedia",
@@ -155,7 +160,6 @@ OC.L10N.register(
"Upload too large" : "Yang diunggah terlalu besar",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Berkas yang dicoba untuk diunggah melebihi ukuran maksimum pengunggahan berkas di server ini.",
"File could not be found" : "Berkas tidak ditemukan",
- "Download" : "Unduh",
"Show list view" : "Tampilkan sebagai daftar",
"Show grid view" : "Tampilkan sebagai kisi",
"Close" : "Tutup",
@@ -191,9 +195,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} tersalin ke {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} dan {nbfiles} berkas lainnya tersalin ke {destination}",
"{newName} already exists" : "{newName} sudah ada",
- "Could not rename \"{fileName}\", it does not exist any more" : "Tidak dapat mengganti \"{fileName}\", tidak ada lagi",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nama \"{targetName}\" sudah digunakan di folder \"{dir}\". Gunakan nama yang lain.",
- "Could not rename \"{fileName}\"" : "Tidak dapat mengganti \"{fileName}\"",
"Could not create file \"{file}\"" : "Tidak dapat membuat berkas \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Tidak dapat membuat berkas \"{file}\" karena sudah ada",
"Could not create folder \"{dir}\" because it already exists" : "Tidak dapat membuat folder \"{dir}\" karena sudah ada",
@@ -225,13 +226,9 @@ OC.L10N.register(
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["cocok dengan \"{filter}\""],
"Path" : "Jalur",
"_%n byte_::_%n bytes_" : ["%n byte"],
- "Favorited" : "Difavoritkan",
"Upload file" : "Unggah berkas",
- "Not favorited" : "Tidak favorit",
"An error occurred while trying to update the tags" : "Terjadi kesalahan saat mencoba untuk memperbarui label",
- "Storage informations" : "Informasi penyimpanan",
- "Open the files app settings" : "Buka setelan aplikasi berkas",
- "Unable to change the favourite state of the file" : "Gagal mengubah status favorit berkas",
+ "Upload (max. %s)" : "Unggah (maks. %s)",
"Text file" : "Berkas teks",
"New text file.txt" : "Teks baru file.txt"
},
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
index 2d3ab467148..6d56ea3f765 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder telah <strong>diubah</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder favorit telah <strong>diubah</strong>",
"No favorites" : "Tidak ada favorit",
- "Upload (max. %s)" : "Unggah (maks. %s)",
"Accept" : "Terima",
"Reject" : "Ditolak",
"Incoming ownership transfer from {user}" : "Permintaan transfer kepemilikan dari {user}",
@@ -59,6 +58,7 @@
"Favorite" : "Favorit",
"Filename" : "Nama berkas",
"Folder name" : "Nama folder",
+ "Folder" : "Folder",
"Pending" : "Tertunda",
"Clear filter" : "Bersihkan filter",
"Modified" : "Dimodifikasi",
@@ -67,6 +67,7 @@
"Size" : "Ukuran",
"Actions" : "Tindakan",
"File not found" : "Berkas tidak ditemukan",
+ "_{count} selected_::_{count} selected_" : ["{count} dipilih"],
"{usedQuotaByte} used" : "{usedQuotaByte} digunakan",
"{used} of {quota} used" : "{used} dari {quota} terpakai",
"{relative}% used" : "{relative}% digunakan",
@@ -124,6 +125,7 @@
"Delete permanently" : "Hapus secara permanen",
"Delete" : "Hapus",
"Cancel" : "Membatalkan",
+ "Download" : "Unduh",
"Copy" : "Salin",
"Move" : "Pindah",
"Move or copy" : "Pindah atau salin",
@@ -138,6 +140,9 @@
"Unable to initialize the templates directory" : "Tidak dapat membuat direktori templat",
"Templates" : "Templat",
"Some files could not be moved" : "Beberapa berkas tidak dapat dipindahkan",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Tidak dapat mengganti \"{oldName}\", tidak ada lagi",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nama \"{newName}\" sudah digunakan di folder \"{dir}\". Gunakan nama yang lain.",
+ "Could not rename \"{oldName}\"" : "Tidak dapat mengganti \"{oldName}\"",
"This operation is forbidden" : "Operasi ini dilarang",
"This directory is unavailable, please check the logs or contact the administrator" : "Direktori ini tidak tersedia, silakan periksa log atau hubungi kontak",
"Storage is temporarily not available" : "Penyimpanan sementara tidak tersedia",
@@ -153,7 +158,6 @@
"Upload too large" : "Yang diunggah terlalu besar",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Berkas yang dicoba untuk diunggah melebihi ukuran maksimum pengunggahan berkas di server ini.",
"File could not be found" : "Berkas tidak ditemukan",
- "Download" : "Unduh",
"Show list view" : "Tampilkan sebagai daftar",
"Show grid view" : "Tampilkan sebagai kisi",
"Close" : "Tutup",
@@ -189,9 +193,6 @@
"Copied {origin} inside {destination}" : "{origin} tersalin ke {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} dan {nbfiles} berkas lainnya tersalin ke {destination}",
"{newName} already exists" : "{newName} sudah ada",
- "Could not rename \"{fileName}\", it does not exist any more" : "Tidak dapat mengganti \"{fileName}\", tidak ada lagi",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nama \"{targetName}\" sudah digunakan di folder \"{dir}\". Gunakan nama yang lain.",
- "Could not rename \"{fileName}\"" : "Tidak dapat mengganti \"{fileName}\"",
"Could not create file \"{file}\"" : "Tidak dapat membuat berkas \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Tidak dapat membuat berkas \"{file}\" karena sudah ada",
"Could not create folder \"{dir}\" because it already exists" : "Tidak dapat membuat folder \"{dir}\" karena sudah ada",
@@ -223,13 +224,9 @@
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["cocok dengan \"{filter}\""],
"Path" : "Jalur",
"_%n byte_::_%n bytes_" : ["%n byte"],
- "Favorited" : "Difavoritkan",
"Upload file" : "Unggah berkas",
- "Not favorited" : "Tidak favorit",
"An error occurred while trying to update the tags" : "Terjadi kesalahan saat mencoba untuk memperbarui label",
- "Storage informations" : "Informasi penyimpanan",
- "Open the files app settings" : "Buka setelan aplikasi berkas",
- "Unable to change the favourite state of the file" : "Gagal mengubah status favorit berkas",
+ "Upload (max. %s)" : "Unggah (maks. %s)",
"Text file" : "Berkas teks",
"New text file.txt" : "Teks baru file.txt"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files/l10n/io.js b/apps/files/l10n/io.js
deleted file mode 100644
index 7988332fa91..00000000000
--- a/apps/files/l10n/io.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/io.json b/apps/files/l10n/io.json
deleted file mode 100644
index ef5fc586755..00000000000
--- a/apps/files/l10n/io.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index 8d76f72e3b7..744a4332569 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Eftirlætisskrár",
"No favorites" : "Engin eftirlæti",
"More favorites" : "Fleiri eftirlæti",
- "Upload (max. %s)" : "Senda inn (hám. %s)",
"Accept" : "Samþykkja",
"Reject" : "Hafna",
"Incoming ownership transfer from {user}" : "Innkomandi millifærsla eignarhalds frá {user}",
@@ -94,6 +93,7 @@ OC.L10N.register(
"Invalid filename." : "Ógilt skráarheiti.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Endurnefndi \"{oldName}\" sem \"{newName}\"",
"Rename file" : "Endurnefna skrá",
+ "Folder" : "Mappa",
"Pending" : "Í bið",
"Unknown date" : "Óþekkt dagsetning",
"Clear filter" : "Hreinsa síu",
@@ -114,7 +114,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Dálkfyrirsagnir með hnöppum eru raðanlegar",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Til að halda sem bestum afköstum er þessi listi ekki myndgerður að fullu. Skrárnar munu birtast eftir því sem farið er í gegnum listann.",
"File not found" : "Skrá finnst ekki",
- "{count} selected" : "{count} valið",
"{usedQuotaByte} used" : "{usedQuotaByte} notað",
"{used} of {quota} used" : "{used} af {quota} notað",
"{relative}% used" : "{relative}% notað",
@@ -207,6 +206,7 @@ OC.L10N.register(
"Show those shortcuts" : "Sýna þessa flýtilykla",
"You" : "Þú",
"Shared multiple times with different people" : "Deilt mörgum sinnum með mismunandi fólki",
+ "Unable to change the favorite state of the file" : "Get ekki breytt stöðu sem eftirlæti á skránni",
"Error while loading the file data" : "Villa við að hlaða inn skráagögnum",
"Owner" : "Eigandi",
"Remove from favorites" : "Fjarlægja úr eftirlætum",
@@ -243,8 +243,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Þú ert við það að eyða {count} atriði","Þú ert við það að eyða {count} atriðum"],
"Confirm deletion" : "Staðfesta eyðingu",
"Cancel" : "Hætta við",
+ "Download" : "Niðurhal",
"Moving \"{source}\" to \"{destination}\" …" : "Færi \"{source}\" í \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Afrita \"{source}\" í \"{destination}\" …",
+ "Destination is not a folder" : "Áfangastaðurinn er ekki mappa",
+ "This file/folder is already in that directory" : "Þessi skrá/mappa er þegar í þessari möppu",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Þú getur ekki flutt skrá/möppu inn í sjálfa sig eða inni í undirmöppu af sjálfri sér",
"(copy)" : "(afrita)",
"(copy %n)" : "(afrita %n)",
@@ -263,9 +266,9 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Hætti við aðgerð við að færa eða afrita",
"Open folder {displayName}" : "Opna möppu {displayName}",
"Open in Files" : "Opna í skráaforritinu",
+ "Failed to redirect to client" : "Mistókst að endurbeina til biðlara",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Skráin ætti núna að opnast á tækinu þínu. Ef það gerist ekki, ættirðu að ganga úr skugga um að þú sért með vinnutölvuforritið uppsett.",
"Retry and close" : "Prófa aftur og loka",
- "Failed to redirect to client" : "Mistókst að endurbeina til biðlara",
"Rename" : "Endurnefna",
"Open details" : "Opna nánari upplýsingar",
"View in folder" : "Skoða í möppu",
@@ -303,6 +306,9 @@ OC.L10N.register(
"Files moved successfully" : "Tókst að færa skrár",
"Conflicts resolution skipped" : "Sleppti lausn árekstra",
"Upload cancelled" : "Hætt við innsendingu",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Gat ekki endurnefnt \"{oldName}\", það er ekki lengur til staðar",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Heitið \"{newName}\" er nú þegar notað í \"{dir}\" möppunni. Veldu eitthvað annað nafn.",
+ "Could not rename \"{oldName}\"" : "Tókst ekki að endurnefna \"{oldName}\"",
"This operation is forbidden" : "Þessi aðgerð er bönnuð",
"This directory is unavailable, please check the logs or contact the administrator" : "Þessi mappa er ekki tiltæk, athugaðu atvikaskrár eða hafðu samband við kerfissjóra",
"Storage is temporarily not available" : "Gagnageymsla ekki tiltæk í augnablikinu",
@@ -333,7 +339,6 @@ OC.L10N.register(
"Upload too large" : "Innsend skrá er of stór",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.",
"File could not be found" : "Skrá finnst ekki",
- "Download" : "Niðurhal",
"Show list view" : "Birta listasýn",
"Show grid view" : "Birta reitasýn",
"Close" : "Loka",
@@ -372,9 +377,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Afritaði {origin} inn í {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Afritaði {origin} og {nbfiles} aðrar skrár inn í {destination}",
"{newName} already exists" : "{newName} er þegar til",
- "Could not rename \"{fileName}\", it does not exist any more" : "Gat ekki endurnefnt \"{fileName}\", það er ekki lengur til staðar",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Heitið \"{targetName}\" er nú þegar notað í \"{dir}\" möppunni. Veldu eitthvað annað nafn.",
- "Could not rename \"{fileName}\"" : "Gat ekki endurnefnt \"{fileName}\"",
"Could not create file \"{file}\"" : "Gat ekki búið til skrána \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Gat ekki búið til skrána \"{file}\" vegna þess að hún er þegar til",
"Could not create folder \"{dir}\" because it already exists" : "Gat ekki búið til möppuna \"{dir}\" vegna þess að hún er þegar til",
@@ -407,34 +409,22 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Beinn tengill var afritaður (virkar bara fyrir fólk sem hefur aðgang að þessari skrá/möppu)",
"Path" : "Slóð",
"_%n byte_::_%n bytes_" : ["%n bæti","%n bæti"],
- "Favorited" : "Sett í eftirlæti",
+ "Favored" : "Eftirlæti",
+ "Favor" : "Eftirl",
"Copy direct link (only works for people who have access to this file/folder)" : "Afrita beinan tengil (virkar bara fyrir fólk sem hefur aðgang að þessari skrá/möppu)",
"Upload file" : "Senda inn skrá",
- "Not favorited" : "Ekki í eftirlætum",
+ "Not favored" : "Ekki eftirlæti",
"An error occurred while trying to update the tags" : "Villa kom upp við að reyna að uppfæra merkin",
- "Storage informations" : "Upplýsingar um geymslurými",
- "Choose file" : "Veldu skrá",
- "Go to the previous folder" : "Fara í fyrri möppu",
- "Open the files app settings" : "Opna stillingar skráaforritsins",
- "Unable to change the favourite state of the file" : "Get ekki breytt stöðu sem eftirlæti á skránni",
- "Edit file locally" : "Breyta skrá á tölvunni",
- "Edit online" : "Breyta á netinu",
- "Create new templates folder" : "Búa til nýja sniðmátamöppu",
+ "Upload (max. %s)" : "Senda inn (hám. %s)",
+ "Submitting fields…" : "Sendi inn gögn úr reitum…",
+ "Filter filenames…" : "Sía skráaheiti…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappa","{folderCount} möppur"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} skrá","{fileCount} skrár"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 skrá og {folderCount} mappa","1 skrá og {folderCount} möppur"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} skrá og 1 mappa","{fileCount} skrár og 1 mappa"],
"{fileCount} files and {folderCount} folders" : "{fileCount} skrár og {folderCount} möppur",
- "List of favorites files and folders." : "Listi yfir eftirlætisskrár og möppur.",
"Personal Files" : "Einkaskrár",
"Text file" : "Textaskrá",
- "New text file.txt" : "Ný textaskrá.txt",
- "Favored" : "Eftirlæti",
- "Favor" : "Eftirl",
- "Not favored" : "Ekki eftirlæti",
- "Submitting fields…" : "Sendi inn gögn úr reitum…",
- "Filter filenames…" : "Sía skráaheiti…",
- "{count} files could not be converted" : "Ekki var hægt að umbreyta {count} skrám",
- "{count} files successfully converted" : "Tókst að umbreyta {count} skrám"
+ "New text file.txt" : "Ný textaskrá.txt"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index 5a983457262..4a2722125c6 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -52,7 +52,6 @@
"Favorite files" : "Eftirlætisskrár",
"No favorites" : "Engin eftirlæti",
"More favorites" : "Fleiri eftirlæti",
- "Upload (max. %s)" : "Senda inn (hám. %s)",
"Accept" : "Samþykkja",
"Reject" : "Hafna",
"Incoming ownership transfer from {user}" : "Innkomandi millifærsla eignarhalds frá {user}",
@@ -92,6 +91,7 @@
"Invalid filename." : "Ógilt skráarheiti.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Endurnefndi \"{oldName}\" sem \"{newName}\"",
"Rename file" : "Endurnefna skrá",
+ "Folder" : "Mappa",
"Pending" : "Í bið",
"Unknown date" : "Óþekkt dagsetning",
"Clear filter" : "Hreinsa síu",
@@ -112,7 +112,6 @@
"Column headers with buttons are sortable." : "Dálkfyrirsagnir með hnöppum eru raðanlegar",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Til að halda sem bestum afköstum er þessi listi ekki myndgerður að fullu. Skrárnar munu birtast eftir því sem farið er í gegnum listann.",
"File not found" : "Skrá finnst ekki",
- "{count} selected" : "{count} valið",
"{usedQuotaByte} used" : "{usedQuotaByte} notað",
"{used} of {quota} used" : "{used} af {quota} notað",
"{relative}% used" : "{relative}% notað",
@@ -205,6 +204,7 @@
"Show those shortcuts" : "Sýna þessa flýtilykla",
"You" : "Þú",
"Shared multiple times with different people" : "Deilt mörgum sinnum með mismunandi fólki",
+ "Unable to change the favorite state of the file" : "Get ekki breytt stöðu sem eftirlæti á skránni",
"Error while loading the file data" : "Villa við að hlaða inn skráagögnum",
"Owner" : "Eigandi",
"Remove from favorites" : "Fjarlægja úr eftirlætum",
@@ -241,8 +241,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Þú ert við það að eyða {count} atriði","Þú ert við það að eyða {count} atriðum"],
"Confirm deletion" : "Staðfesta eyðingu",
"Cancel" : "Hætta við",
+ "Download" : "Niðurhal",
"Moving \"{source}\" to \"{destination}\" …" : "Færi \"{source}\" í \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Afrita \"{source}\" í \"{destination}\" …",
+ "Destination is not a folder" : "Áfangastaðurinn er ekki mappa",
+ "This file/folder is already in that directory" : "Þessi skrá/mappa er þegar í þessari möppu",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Þú getur ekki flutt skrá/möppu inn í sjálfa sig eða inni í undirmöppu af sjálfri sér",
"(copy)" : "(afrita)",
"(copy %n)" : "(afrita %n)",
@@ -261,9 +264,9 @@
"Cancelled move or copy operation" : "Hætti við aðgerð við að færa eða afrita",
"Open folder {displayName}" : "Opna möppu {displayName}",
"Open in Files" : "Opna í skráaforritinu",
+ "Failed to redirect to client" : "Mistókst að endurbeina til biðlara",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Skráin ætti núna að opnast á tækinu þínu. Ef það gerist ekki, ættirðu að ganga úr skugga um að þú sért með vinnutölvuforritið uppsett.",
"Retry and close" : "Prófa aftur og loka",
- "Failed to redirect to client" : "Mistókst að endurbeina til biðlara",
"Rename" : "Endurnefna",
"Open details" : "Opna nánari upplýsingar",
"View in folder" : "Skoða í möppu",
@@ -301,6 +304,9 @@
"Files moved successfully" : "Tókst að færa skrár",
"Conflicts resolution skipped" : "Sleppti lausn árekstra",
"Upload cancelled" : "Hætt við innsendingu",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Gat ekki endurnefnt \"{oldName}\", það er ekki lengur til staðar",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Heitið \"{newName}\" er nú þegar notað í \"{dir}\" möppunni. Veldu eitthvað annað nafn.",
+ "Could not rename \"{oldName}\"" : "Tókst ekki að endurnefna \"{oldName}\"",
"This operation is forbidden" : "Þessi aðgerð er bönnuð",
"This directory is unavailable, please check the logs or contact the administrator" : "Þessi mappa er ekki tiltæk, athugaðu atvikaskrár eða hafðu samband við kerfissjóra",
"Storage is temporarily not available" : "Gagnageymsla ekki tiltæk í augnablikinu",
@@ -331,7 +337,6 @@
"Upload too large" : "Innsend skrá er of stór",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.",
"File could not be found" : "Skrá finnst ekki",
- "Download" : "Niðurhal",
"Show list view" : "Birta listasýn",
"Show grid view" : "Birta reitasýn",
"Close" : "Loka",
@@ -370,9 +375,6 @@
"Copied {origin} inside {destination}" : "Afritaði {origin} inn í {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Afritaði {origin} og {nbfiles} aðrar skrár inn í {destination}",
"{newName} already exists" : "{newName} er þegar til",
- "Could not rename \"{fileName}\", it does not exist any more" : "Gat ekki endurnefnt \"{fileName}\", það er ekki lengur til staðar",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Heitið \"{targetName}\" er nú þegar notað í \"{dir}\" möppunni. Veldu eitthvað annað nafn.",
- "Could not rename \"{fileName}\"" : "Gat ekki endurnefnt \"{fileName}\"",
"Could not create file \"{file}\"" : "Gat ekki búið til skrána \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Gat ekki búið til skrána \"{file}\" vegna þess að hún er þegar til",
"Could not create folder \"{dir}\" because it already exists" : "Gat ekki búið til möppuna \"{dir}\" vegna þess að hún er þegar til",
@@ -405,34 +407,22 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Beinn tengill var afritaður (virkar bara fyrir fólk sem hefur aðgang að þessari skrá/möppu)",
"Path" : "Slóð",
"_%n byte_::_%n bytes_" : ["%n bæti","%n bæti"],
- "Favorited" : "Sett í eftirlæti",
+ "Favored" : "Eftirlæti",
+ "Favor" : "Eftirl",
"Copy direct link (only works for people who have access to this file/folder)" : "Afrita beinan tengil (virkar bara fyrir fólk sem hefur aðgang að þessari skrá/möppu)",
"Upload file" : "Senda inn skrá",
- "Not favorited" : "Ekki í eftirlætum",
+ "Not favored" : "Ekki eftirlæti",
"An error occurred while trying to update the tags" : "Villa kom upp við að reyna að uppfæra merkin",
- "Storage informations" : "Upplýsingar um geymslurými",
- "Choose file" : "Veldu skrá",
- "Go to the previous folder" : "Fara í fyrri möppu",
- "Open the files app settings" : "Opna stillingar skráaforritsins",
- "Unable to change the favourite state of the file" : "Get ekki breytt stöðu sem eftirlæti á skránni",
- "Edit file locally" : "Breyta skrá á tölvunni",
- "Edit online" : "Breyta á netinu",
- "Create new templates folder" : "Búa til nýja sniðmátamöppu",
+ "Upload (max. %s)" : "Senda inn (hám. %s)",
+ "Submitting fields…" : "Sendi inn gögn úr reitum…",
+ "Filter filenames…" : "Sía skráaheiti…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappa","{folderCount} möppur"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} skrá","{fileCount} skrár"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 skrá og {folderCount} mappa","1 skrá og {folderCount} möppur"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} skrá og 1 mappa","{fileCount} skrár og 1 mappa"],
"{fileCount} files and {folderCount} folders" : "{fileCount} skrár og {folderCount} möppur",
- "List of favorites files and folders." : "Listi yfir eftirlætisskrár og möppur.",
"Personal Files" : "Einkaskrár",
"Text file" : "Textaskrá",
- "New text file.txt" : "Ný textaskrá.txt",
- "Favored" : "Eftirlæti",
- "Favor" : "Eftirl",
- "Not favored" : "Ekki eftirlæti",
- "Submitting fields…" : "Sendi inn gögn úr reitum…",
- "Filter filenames…" : "Sía skráaheiti…",
- "{count} files could not be converted" : "Ekki var hægt að umbreyta {count} skrám",
- "{count} files successfully converted" : "Tókst að umbreyta {count} skrám"
+ "New text file.txt" : "Ný textaskrá.txt"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index b1ae315c76b..614a38dfee8 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "File preferiti",
"No favorites" : "Nessun preferito",
"More favorites" : "Altri preferiti",
- "Upload (max. %s)" : "Carica (massimo %s)",
"Accept" : "Accetta",
"Reject" : "Rifiuta",
"Incoming ownership transfer from {user}" : "Trasferimento di proprietà in ingresso da {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Trasferito da %1$s su %2$s",
"Files compatibility" : "Compatibilità di File",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Consenti di limitare i nomi di file per assicurarsi che i file vengano sincronizzati con tutti i client. In modo predefinito, tutti i nomi di file validi su POSIX (es. Linux o macOS) sono consentiti.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Dopo aver abilitato i nomi file compatibili con Windows, i file esistenti non potranno più essere modificati, ma potranno essere rinominati con nuovi nomi validi dal rispettivo proprietario.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "È anche possibile migrare i file automaticamente dopo aver abilitato questa impostazione; fare riferimento alla documentazione relativa al comando occ.",
"Enforce Windows compatibility" : "Imponi la compatibilità con Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ciò bloccherà i nomi di file non validi sui sistemi Windows, come l'uso di nomi riservati o caratteri speciali. Tuttavia non verrà imposta la compatibilità con le maiuscole/minuscole.",
"File Management" : "Gestione dei file",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Nome di file non valido.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Rinominato \"{oldName}\" in \"{newName}\"",
"Rename file" : "Rinomina file",
+ "Folder" : "Cartella",
+ "Unknown file type" : "Tipo di file sconosciuto",
+ "{ext} image" : "{ext} image",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} text",
"Pending" : "In corso",
"Unknown date" : "Data sconosciuta",
"Clear filter" : "Pulisci il filtro",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Riepilogo totale delle righe",
"Toggle selection for all files and folders" : "Attiva/disattiva la selezione per tutti i file e le cartelle",
"Name" : "Nome",
+ "File type" : "Tipo di file",
"Size" : "Dimensione",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" non riuscito su alcuni elementi",
"\"{displayName}\" batch action executed successfully" : "L'azione batch \"{displayName}\" è stata eseguita correttamente",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Le intestazioni di colonna con pulsanti sono ordinabili.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Questa lista non è stata mostrata completamente per ragioni di prestazioni. I file verranno mostrati durante la navigazione della lista.",
"File not found" : "File non trovato",
- "{count} selected" : "{count} selezionati",
+ "_{count} selected_::_{count} selected_" : ["{count} selezionato","{count} selezionati","{count} selezionati"],
"{usedQuotaByte} used" : "{usedQuotaByte} usato",
"{used} of {quota} used" : "{used} di {quota} utilizzati",
"{relative}% used" : "{relative}% usato",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Ordina prima i preferiti",
"Sort folders before files" : "Ordina cartelle prima dei files",
"Show hidden files" : "Mostra i file nascosti",
+ "Show file type column" : "Mostra colonna tipo di file",
"Crop image previews" : "Ritaglia le anteprime delle immagini",
"Enable the grid view" : "Attiva visuale a griglia",
"Enable folder tree" : "Abilita l'albero delle cartelle",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Mostra quelle scorciatoie",
"You" : "Tu",
"Shared multiple times with different people" : "Condiviso più volte con diverse persone",
+ "Unable to change the favorite state of the file" : "Impossibile modificare lo stato preferito del file",
"Error while loading the file data" : "Errore durante il caricamento del file di dati",
"Owner" : "Proprietario",
"Remove from favorites" : "Rimuovi dai preferiti",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Stai per eliminare {count} elemento","Stai per eliminare {count} elementi","Stai per eliminare {count} elementi"],
"Confirm deletion" : "Conferma l'eliminazione",
"Cancel" : "Annulla",
+ "Download" : "Scarica",
"Moving \"{source}\" to \"{destination}\" …" : "Sposta \"{source}\" in \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copia \"{source}\" in \"{destination}\" …",
+ "Destination is not a folder" : "La destinazione non è una cartella",
+ "This file/folder is already in that directory" : "Questo file/cartella è già in quella cartella",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Non puoi spostare un file/cartella in se stesso o in una sottocartella di se stesso",
"(copy)" : "(copia)",
"(copy %n)" : "(copia %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Operazione di spostamento o copia annullata",
"Open folder {displayName}" : "Apri la cartella {displayName}",
"Open in Files" : "Apri in File",
+ "Open locally" : "Aprire localmente",
+ "Failed to redirect to client" : "Reindirizzamento al client non riuscito",
"Open file locally" : "Apri file localmente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Il file dovrebbe ora aprirsi sul tuo dispositivo. In caso contrario, controlla di aver installato l'app desktop.",
"Retry and close" : "Riprova e chiudi",
"Open online" : "Apri online",
- "Failed to redirect to client" : "Reindirizzamento al client non riuscito",
- "Open locally" : "Aprire localmente",
"Rename" : "Rinomina",
"Open details" : "Apri i dettagli",
"View in folder" : "Visualizza nella cartella",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "File spostati correttamente",
"Conflicts resolution skipped" : "Risoluzione dei conflitti saltata",
"Upload cancelled" : "Caricamento annullato",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Impossibile rinominare \"{oldName}\", non esiste più",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Il nome \"{newName}\" è attualmente in uso nella cartella \"{dir}\". Scegli un nome diverso.",
+ "Could not rename \"{oldName}\"" : "Impossibile rinominare \"{oldName}\"",
"This operation is forbidden" : "Questa operazione è vietata",
"This directory is unavailable, please check the logs or contact the administrator" : "Questa cartella non è disponibile, controlla i log o contatta l'amministratore",
"Storage is temporarily not available" : "L'archiviazione è temporaneamente non disponibile",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Caricamento troppo grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "I file che stai provando a caricare superano la dimensione massima consentita su questo server.",
"File could not be found" : "Il file non può essere trovato",
- "Download" : "Scarica",
"Show list view" : "Mostra la vista elenco",
"Show grid view" : "Mostra la visualizzazione griglia",
"Close" : "Chiudi",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Copiato {origin} in {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copiati {origin} e {nbfiles} altri file in {destination}",
"{newName} already exists" : "{newName} esiste già",
- "Could not rename \"{fileName}\", it does not exist any more" : "Impossibile rinominare \"{fileName}\", non esiste più",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Il nome \"{targetName}\" è attualmente in uso nella cartella \"{dir}\". Scegli un nome diverso.",
- "Could not rename \"{fileName}\"" : "Impossibile rinominare \"{fileName}\"",
"Could not create file \"{file}\"" : "Impossibile creare il file \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Impossibile creare il file \"{file}\" poiché esiste già",
"Could not create folder \"{dir}\" because it already exists" : "Impossibile creare la cartella \"{dir}\" poiché esiste già",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Il collegamento diretto è stato copiato (funziona solo per gli utenti che hanno accesso a questo file o cartella)",
"Path" : "Percorso",
"_%n byte_::_%n bytes_" : ["%n byte","%n byte","%n byte"],
- "Favorited" : "Preferiti",
+ "Favored" : "Preferito",
+ "Favor" : "Preferiti",
"Copy direct link (only works for people who have access to this file/folder)" : "Copia collegamento diretto (funziona solo per utenti che hanno accesso a questo file/cartella)",
"Upload file" : "Carica file",
- "Not favorited" : "Non preferito",
+ "Not favored" : "Non preferito",
"An error occurred while trying to update the tags" : "Si è verificato un errore durante il tentativo di aggiornare le etichette",
- "You don't have permission to upload or create files here." : "Non hai l'autorizzazione per caricare o creare file qui.",
- "Storage informations" : "Informazioni di archiviazione",
- "Choose file" : "Scegli file",
- "Go to the previous folder" : "Vai alla cartella precedente",
- "Open the files app settings" : "Apri le impostazioni dell'applicazione File",
- "Unable to change the favourite state of the file" : "Impossibile cambiare lo stato di preferito del file",
- "Edit file locally" : "Modifica il file localmente",
- "Edit online" : "Modifica online",
- "Create new templates folder" : "Crea una nuova cartella dei modelli",
+ "Upload (max. %s)" : "Carica (massimo %s)",
+ "Submitting fields…" : "Invio dei campi…",
+ "Filter filenames…" : "Filtra nomi di file…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartella","{folderCount} cartelle","{folderCount} cartelle"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} file","{fileCount} file"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file e {folderCount} cartella","1 file e {folderCount} cartelle","1 file e {folderCount} cartelle"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file e 1 cartella","{fileCount} file e 1 cartella","{fileCount} file e 1 cartella"],
"{fileCount} files and {folderCount} folders" : "{fileCount} file e {folderCount} cartelle",
- "List of favorites files and folders." : "Lista di file e cartelle preferiti.",
"Personal Files" : "File personali",
"Text file" : "File di testo",
"New text file.txt" : "Nuovo file di testo.txt",
- "Favored" : "Preferito",
- "Favor" : "Preferiti",
- "Not favored" : "Non preferito",
- "Submitting fields…" : "Invio dei campi…",
- "Filter filenames…" : "Filtra nomi di file…",
- "{count} files could not be converted" : "{count} file non possono essere convertiti",
- "{count} files successfully converted" : "{count} file convertiti con successo"
+ "%1$s (renamed)" : "%1$s (rinominato)",
+ "renamed file" : "file rinominato",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Dopo aver abilitato i nomi file compatibili con Windows, i file esistenti non potranno più essere modificati, ma potranno essere rinominati con nuovi nomi validi dal rispettivo proprietario."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 21b88337ced..46c1ad54125 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -52,7 +52,6 @@
"Favorite files" : "File preferiti",
"No favorites" : "Nessun preferito",
"More favorites" : "Altri preferiti",
- "Upload (max. %s)" : "Carica (massimo %s)",
"Accept" : "Accetta",
"Reject" : "Rifiuta",
"Incoming ownership transfer from {user}" : "Trasferimento di proprietà in ingresso da {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Trasferito da %1$s su %2$s",
"Files compatibility" : "Compatibilità di File",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Consenti di limitare i nomi di file per assicurarsi che i file vengano sincronizzati con tutti i client. In modo predefinito, tutti i nomi di file validi su POSIX (es. Linux o macOS) sono consentiti.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Dopo aver abilitato i nomi file compatibili con Windows, i file esistenti non potranno più essere modificati, ma potranno essere rinominati con nuovi nomi validi dal rispettivo proprietario.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "È anche possibile migrare i file automaticamente dopo aver abilitato questa impostazione; fare riferimento alla documentazione relativa al comando occ.",
"Enforce Windows compatibility" : "Imponi la compatibilità con Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ciò bloccherà i nomi di file non validi sui sistemi Windows, come l'uso di nomi riservati o caratteri speciali. Tuttavia non verrà imposta la compatibilità con le maiuscole/minuscole.",
"File Management" : "Gestione dei file",
@@ -93,6 +94,12 @@
"Invalid filename." : "Nome di file non valido.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Rinominato \"{oldName}\" in \"{newName}\"",
"Rename file" : "Rinomina file",
+ "Folder" : "Cartella",
+ "Unknown file type" : "Tipo di file sconosciuto",
+ "{ext} image" : "{ext} image",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} text",
"Pending" : "In corso",
"Unknown date" : "Data sconosciuta",
"Clear filter" : "Pulisci il filtro",
@@ -103,6 +110,7 @@
"Total rows summary" : "Riepilogo totale delle righe",
"Toggle selection for all files and folders" : "Attiva/disattiva la selezione per tutti i file e le cartelle",
"Name" : "Nome",
+ "File type" : "Tipo di file",
"Size" : "Dimensione",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" non riuscito su alcuni elementi",
"\"{displayName}\" batch action executed successfully" : "L'azione batch \"{displayName}\" è stata eseguita correttamente",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Le intestazioni di colonna con pulsanti sono ordinabili.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Questa lista non è stata mostrata completamente per ragioni di prestazioni. I file verranno mostrati durante la navigazione della lista.",
"File not found" : "File non trovato",
- "{count} selected" : "{count} selezionati",
+ "_{count} selected_::_{count} selected_" : ["{count} selezionato","{count} selezionati","{count} selezionati"],
"{usedQuotaByte} used" : "{usedQuotaByte} usato",
"{used} of {quota} used" : "{used} di {quota} utilizzati",
"{relative}% used" : "{relative}% usato",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Ordina prima i preferiti",
"Sort folders before files" : "Ordina cartelle prima dei files",
"Show hidden files" : "Mostra i file nascosti",
+ "Show file type column" : "Mostra colonna tipo di file",
"Crop image previews" : "Ritaglia le anteprime delle immagini",
"Enable the grid view" : "Attiva visuale a griglia",
"Enable folder tree" : "Abilita l'albero delle cartelle",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "Mostra quelle scorciatoie",
"You" : "Tu",
"Shared multiple times with different people" : "Condiviso più volte con diverse persone",
+ "Unable to change the favorite state of the file" : "Impossibile modificare lo stato preferito del file",
"Error while loading the file data" : "Errore durante il caricamento del file di dati",
"Owner" : "Proprietario",
"Remove from favorites" : "Rimuovi dai preferiti",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Stai per eliminare {count} elemento","Stai per eliminare {count} elementi","Stai per eliminare {count} elementi"],
"Confirm deletion" : "Conferma l'eliminazione",
"Cancel" : "Annulla",
+ "Download" : "Scarica",
"Moving \"{source}\" to \"{destination}\" …" : "Sposta \"{source}\" in \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copia \"{source}\" in \"{destination}\" …",
+ "Destination is not a folder" : "La destinazione non è una cartella",
+ "This file/folder is already in that directory" : "Questo file/cartella è già in quella cartella",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Non puoi spostare un file/cartella in se stesso o in una sottocartella di se stesso",
"(copy)" : "(copia)",
"(copy %n)" : "(copia %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Operazione di spostamento o copia annullata",
"Open folder {displayName}" : "Apri la cartella {displayName}",
"Open in Files" : "Apri in File",
+ "Open locally" : "Aprire localmente",
+ "Failed to redirect to client" : "Reindirizzamento al client non riuscito",
"Open file locally" : "Apri file localmente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Il file dovrebbe ora aprirsi sul tuo dispositivo. In caso contrario, controlla di aver installato l'app desktop.",
"Retry and close" : "Riprova e chiudi",
"Open online" : "Apri online",
- "Failed to redirect to client" : "Reindirizzamento al client non riuscito",
- "Open locally" : "Aprire localmente",
"Rename" : "Rinomina",
"Open details" : "Apri i dettagli",
"View in folder" : "Visualizza nella cartella",
@@ -320,6 +333,9 @@
"Files moved successfully" : "File spostati correttamente",
"Conflicts resolution skipped" : "Risoluzione dei conflitti saltata",
"Upload cancelled" : "Caricamento annullato",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Impossibile rinominare \"{oldName}\", non esiste più",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Il nome \"{newName}\" è attualmente in uso nella cartella \"{dir}\". Scegli un nome diverso.",
+ "Could not rename \"{oldName}\"" : "Impossibile rinominare \"{oldName}\"",
"This operation is forbidden" : "Questa operazione è vietata",
"This directory is unavailable, please check the logs or contact the administrator" : "Questa cartella non è disponibile, controlla i log o contatta l'amministratore",
"Storage is temporarily not available" : "L'archiviazione è temporaneamente non disponibile",
@@ -351,7 +367,6 @@
"Upload too large" : "Caricamento troppo grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "I file che stai provando a caricare superano la dimensione massima consentita su questo server.",
"File could not be found" : "Il file non può essere trovato",
- "Download" : "Scarica",
"Show list view" : "Mostra la vista elenco",
"Show grid view" : "Mostra la visualizzazione griglia",
"Close" : "Chiudi",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "Copiato {origin} in {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copiati {origin} e {nbfiles} altri file in {destination}",
"{newName} already exists" : "{newName} esiste già",
- "Could not rename \"{fileName}\", it does not exist any more" : "Impossibile rinominare \"{fileName}\", non esiste più",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Il nome \"{targetName}\" è attualmente in uso nella cartella \"{dir}\". Scegli un nome diverso.",
- "Could not rename \"{fileName}\"" : "Impossibile rinominare \"{fileName}\"",
"Could not create file \"{file}\"" : "Impossibile creare il file \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Impossibile creare il file \"{file}\" poiché esiste già",
"Could not create folder \"{dir}\" because it already exists" : "Impossibile creare la cartella \"{dir}\" poiché esiste già",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Il collegamento diretto è stato copiato (funziona solo per gli utenti che hanno accesso a questo file o cartella)",
"Path" : "Percorso",
"_%n byte_::_%n bytes_" : ["%n byte","%n byte","%n byte"],
- "Favorited" : "Preferiti",
+ "Favored" : "Preferito",
+ "Favor" : "Preferiti",
"Copy direct link (only works for people who have access to this file/folder)" : "Copia collegamento diretto (funziona solo per utenti che hanno accesso a questo file/cartella)",
"Upload file" : "Carica file",
- "Not favorited" : "Non preferito",
+ "Not favored" : "Non preferito",
"An error occurred while trying to update the tags" : "Si è verificato un errore durante il tentativo di aggiornare le etichette",
- "You don't have permission to upload or create files here." : "Non hai l'autorizzazione per caricare o creare file qui.",
- "Storage informations" : "Informazioni di archiviazione",
- "Choose file" : "Scegli file",
- "Go to the previous folder" : "Vai alla cartella precedente",
- "Open the files app settings" : "Apri le impostazioni dell'applicazione File",
- "Unable to change the favourite state of the file" : "Impossibile cambiare lo stato di preferito del file",
- "Edit file locally" : "Modifica il file localmente",
- "Edit online" : "Modifica online",
- "Create new templates folder" : "Crea una nuova cartella dei modelli",
+ "Upload (max. %s)" : "Carica (massimo %s)",
+ "Submitting fields…" : "Invio dei campi…",
+ "Filter filenames…" : "Filtra nomi di file…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartella","{folderCount} cartelle","{folderCount} cartelle"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} file","{fileCount} file"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file e {folderCount} cartella","1 file e {folderCount} cartelle","1 file e {folderCount} cartelle"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file e 1 cartella","{fileCount} file e 1 cartella","{fileCount} file e 1 cartella"],
"{fileCount} files and {folderCount} folders" : "{fileCount} file e {folderCount} cartelle",
- "List of favorites files and folders." : "Lista di file e cartelle preferiti.",
"Personal Files" : "File personali",
"Text file" : "File di testo",
"New text file.txt" : "Nuovo file di testo.txt",
- "Favored" : "Preferito",
- "Favor" : "Preferiti",
- "Not favored" : "Non preferito",
- "Submitting fields…" : "Invio dei campi…",
- "Filter filenames…" : "Filtra nomi di file…",
- "{count} files could not be converted" : "{count} file non possono essere convertiti",
- "{count} files successfully converted" : "{count} file convertiti con successo"
+ "%1$s (renamed)" : "%1$s (rinominato)",
+ "renamed file" : "file rinominato",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Dopo aver abilitato i nomi file compatibili con Windows, i file esistenti non potranno più essere modificati, ma potranno essere rinominati con nuovi nomi validi dal rispettivo proprietario."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 5d4430cdfd2..2ba264d20ea 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "お気に入りファイル",
"No favorites" : "お気に入りなし",
"More favorites" : "その他のお気に入り",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
"Accept" : "承諾",
"Reject" : "拒否",
"Incoming ownership transfer from {user}" : "{user} からの所有権転送を受信",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "%1$sから%2$sに転送",
"Files compatibility" : "ファイルの互換性",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "ファイルをすべてのクライアントと同期できるようにするために、ファイル名を制限することを許可します。デフォルトではPOSIX(LinuxやmacOSなど)で有効なすべてのファイル名が許可されています。",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Windows 互換のファイル名を有効にすると、既存のファイルは変更できなくなりますが、所有者が有効な新しいファイル名に変更できるようになります。",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "この設定を有効にした後、自動的にファイルを移行することも可能です。occコマンドに関するドキュメントを参照してください。",
"Enforce Windows compatibility" : "Windowsとの互換性を強制",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "予約名や特殊文字のような、Windowsシステムにおいて有効でないファイル名をブロックします。これは大文字、小文字の互換性を強制するものではありません。",
"File Management" : "ファイル管理",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "無効なファイル名。",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" から \"{newName}\" に名前を変更済み",
"Rename file" : "ファイル名の変更",
+ "Folder" : "フォルダー",
+ "Unknown file type" : "不明なファイルタイプ",
+ "{ext} image" : "{ext}画像",
+ "{ext} video" : "{ext}ビデオ",
+ "{ext} audio" : "{ext}音声",
+ "{ext} text" : "{ext}テキスト",
"Pending" : "保留中",
"Unknown date" : "不明な日付",
"Clear filter" : "フィルターをクリア",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "総行数のサマリー",
"Toggle selection for all files and folders" : "すべてのファイルとフォルダの選択を切り替える",
"Name" : "名前",
+ "File type" : "ファイルの種類",
"Size" : "サイズ",
"\"{displayName}\" failed on some elements" : "いくつかの要素で \"{displayName}\" が失敗しました。",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" バッチアクションが正常に実行されました。",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "ボタン付きの列ヘッダはソート可能です。",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "このリストはパフォーマンスの都合上、すべてレンダリングされているわけではありません。リスト内を移動すると、ファイルが次々と表示されていきます。",
"File not found" : "ファイルが見つかりません",
- "{count} selected" : "{count} 選択",
+ "_{count} selected_::_{count} selected_" : ["{count}選択済み"],
"{usedQuotaByte} used" : "{usedQuotaByte} 使用されています",
"{used} of {quota} used" : "{used} / {quota} 使用中",
"{relative}% used" : "{relative}% 使用されています",
@@ -165,7 +173,7 @@ OC.L10N.register(
"Error during upload: {message}" : "アップロード中にエラーが発生しました: {message}",
"Error during upload, status code {status}" : "アップロード中のエラー、ステータスコード {status}",
"Unknown error during upload" : "不明なエラーがアップロード中に発生しました",
- "\"{displayName}\" action executed successfully" : "\"{displayName}\" アクションは正常に実行された",
+ "\"{displayName}\" action executed successfully" : "\"{displayName}\" アクションは正常に実行されました",
"Loading current folder" : "現在のフォルダの読み込み中",
"Retry" : "リトライ",
"No files in here" : "ファイルがありません",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "お気に入りを最初に並べる",
"Sort folders before files" : "ファイルよりもフォルダを先に並べ替えます",
"Show hidden files" : "隠しファイルを表示",
+ "Show file type column" : "ファイルの種類のカラムを表示する",
"Crop image previews" : "プレビュー画像を切り抜く",
"Enable the grid view" : "グリッド表示を有効にする",
"Enable folder tree" : "フォルダーツリーを有効にする",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "これらのショートカットを表示する",
"You" : "自分",
"Shared multiple times with different people" : "異なる人と複数回共有",
+ "Unable to change the favorite state of the file" : "ファイルのお気に入りの状態を変更できません",
"Error while loading the file data" : "ファイルデータの読み込み中にエラーが発生しました",
"Owner" : "作成者",
"Remove from favorites" : "お気に入りから削除",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["あなたは {count} 個のアイテムを削除しようとしています"],
"Confirm deletion" : "削除の確認",
"Cancel" : "キャンセル",
+ "Download" : "ダウンロード",
"Moving \"{source}\" to \"{destination}\" …" : "\"{source}\" を \"{destination}\"に移動",
"Copying \"{source}\" to \"{destination}\" …" : "\"{source}\" を \"{destination}\"にコピー",
+ "Destination is not a folder" : "宛先がフォルダではありません",
+ "This file/folder is already in that directory" : "このファイル/フォルダはすでにそのディレクトリにあります",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "ファイル/フォルダをそれ自身の上に移動したり、それ自身のサブフォルダに移動したりすることはできません。",
"(copy)" : "(copy)",
"(copy %n)" : "(copy %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "キャンセルされた移動またはコピー操作",
"Open folder {displayName}" : "フォルダ {displayName} を開く",
"Open in Files" : "ファイルアプリで開く",
+ "Open locally" : "ローカルで開く",
+ "Failed to redirect to client" : "クライアントへリダイレクトできませんでした",
"Open file locally" : "ローカルでファイルを開く",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "ファイルがデバイス上で開くはずです。開かない場合は、デスクトップアプリがインストールされているかご確認ください。",
"Retry and close" : "再試行して閉じる",
"Open online" : "オンラインで開く",
- "Failed to redirect to client" : "クライアントへリダイレクトできませんでした",
- "Open locally" : "ローカルで開く",
"Rename" : "名前の変更",
"Open details" : "詳細を開く",
"View in folder" : "フォルダー内で表示",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "ファイルの移動に成功しました",
"Conflicts resolution skipped" : "コンフリクトの解決はスキップされました",
"Upload cancelled" : "アップロードはキャンセルされました",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" の名前を変更できませんでした、それは既に存在しません。",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{newName}\" という名前は \"{dir}\" フォルダですでに使用されています。別の名前を選択してください。",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" の名前を変更できませんでした。",
"This operation is forbidden" : "この操作は禁止されています",
"This directory is unavailable, please check the logs or contact the administrator" : "このディレクトリは利用できません。ログを確認するか管理者に問い合わせてください。",
"Storage is temporarily not available" : "ストレージは一時的に利用できません",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "アップロードには大きすぎます。",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、このサーバーのファイルアップロード時の最大サイズを超えています。",
"File could not be found" : "ファイルを見つけられませんでした",
- "Download" : "ダウンロード",
"Show list view" : "リストビューで表示",
"Show grid view" : "グリッドビューで表示",
"Close" : "閉じる",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "コピー先{origin} {destination}内",
"Copied {origin} and {nbfiles} other files inside {destination}" : "コピー先{origin}と{nbfiles}他のファイル{destination}",
"{newName} already exists" : "{newName} はすでに存在します",
- "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}\" を作成できませんでした",
"Could not create file \"{file}\" because it already exists" : "ファイル \"{file}\"はすでに存在するため作成できません",
"Could not create folder \"{dir}\" because it already exists" : "フォルダー \"{dir}\" はすでに存在するため作成できません",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "ダイレクトリンクがコピーされました(このファイルやフォルダにアクセスできる人にのみ機能します)",
"Path" : "Path",
"_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
+ "Favored" : "好評",
+ "Favor" : "好意的",
"Copy direct link (only works for people who have access to this file/folder)" : "ダイレクトリンクをコピー (このファイル/フォルダにアクセスできる人にのみ機能します)",
"Upload file" : "ファイルをアップロード",
- "Not favorited" : "お気に入りではありません",
+ "Not favored" : "好ましくない",
"An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "You don't have permission to upload or create files here." : "ここにファイルをアップロードまたは作成する権限がありません。",
- "Storage informations" : "ストレージ情報",
- "Choose file" : "ファイルを選択",
- "Go to the previous folder" : "前のフォルダへ移動",
- "Open the files app settings" : "ファイルアプリの設定を開く",
- "Unable to change the favourite state of the file" : "ファイルのお気に入りの状態を変更できません",
- "Edit file locally" : "ファイルをローカルで編集",
- "Edit online" : "オンラインで編集",
- "Create new templates folder" : "新しいテンプレートフォルダーを作成",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Submitting fields…" : "フィールドを送信中…",
+ "Filter filenames…" : "ファイルネームフィルター…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} フォルダ"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ファイル"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ファイルと {folderCount} フォルダ"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} ファイルと 1 フォルダ"],
"{fileCount} files and {folderCount} folders" : "{fileCount} ファイルと {folderCount} フォルダ",
- "List of favorites files and folders." : "お気に入りのファイルやフォルダーの一覧",
"Personal Files" : "個人ファイル",
"Text file" : "テキストファイル",
"New text file.txt" : "新規のテキストファイル作成",
- "Favored" : "好評",
- "Favor" : "好意的",
- "Not favored" : "好ましくない",
- "Submitting fields…" : "フィールドを送信中…",
- "Filter filenames…" : "ファイルネームフィルター…",
- "{count} files could not be converted" : "{count}個のファイルが変換できませんでした",
- "{count} files successfully converted" : "{count}個のファイルの変換に成功しました"
+ "%1$s (renamed)" : "%1$s (リネーム済み)",
+ "renamed file" : "リネーム済みファイル",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Windows 互換のファイル名を有効にすると、既存のファイルは変更できなくなりますが、所有者が有効な新しいファイル名に変更できるようになります。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 9d405b87359..ccdec912f64 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -52,7 +52,6 @@
"Favorite files" : "お気に入りファイル",
"No favorites" : "お気に入りなし",
"More favorites" : "その他のお気に入り",
- "Upload (max. %s)" : "アップロード ( 最大 %s )",
"Accept" : "承諾",
"Reject" : "拒否",
"Incoming ownership transfer from {user}" : "{user} からの所有権転送を受信",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "%1$sから%2$sに転送",
"Files compatibility" : "ファイルの互換性",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "ファイルをすべてのクライアントと同期できるようにするために、ファイル名を制限することを許可します。デフォルトではPOSIX(LinuxやmacOSなど)で有効なすべてのファイル名が許可されています。",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Windows 互換のファイル名を有効にすると、既存のファイルは変更できなくなりますが、所有者が有効な新しいファイル名に変更できるようになります。",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "この設定を有効にした後、自動的にファイルを移行することも可能です。occコマンドに関するドキュメントを参照してください。",
"Enforce Windows compatibility" : "Windowsとの互換性を強制",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "予約名や特殊文字のような、Windowsシステムにおいて有効でないファイル名をブロックします。これは大文字、小文字の互換性を強制するものではありません。",
"File Management" : "ファイル管理",
@@ -93,6 +94,12 @@
"Invalid filename." : "無効なファイル名。",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" から \"{newName}\" に名前を変更済み",
"Rename file" : "ファイル名の変更",
+ "Folder" : "フォルダー",
+ "Unknown file type" : "不明なファイルタイプ",
+ "{ext} image" : "{ext}画像",
+ "{ext} video" : "{ext}ビデオ",
+ "{ext} audio" : "{ext}音声",
+ "{ext} text" : "{ext}テキスト",
"Pending" : "保留中",
"Unknown date" : "不明な日付",
"Clear filter" : "フィルターをクリア",
@@ -103,6 +110,7 @@
"Total rows summary" : "総行数のサマリー",
"Toggle selection for all files and folders" : "すべてのファイルとフォルダの選択を切り替える",
"Name" : "名前",
+ "File type" : "ファイルの種類",
"Size" : "サイズ",
"\"{displayName}\" failed on some elements" : "いくつかの要素で \"{displayName}\" が失敗しました。",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" バッチアクションが正常に実行されました。",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "ボタン付きの列ヘッダはソート可能です。",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "このリストはパフォーマンスの都合上、すべてレンダリングされているわけではありません。リスト内を移動すると、ファイルが次々と表示されていきます。",
"File not found" : "ファイルが見つかりません",
- "{count} selected" : "{count} 選択",
+ "_{count} selected_::_{count} selected_" : ["{count}選択済み"],
"{usedQuotaByte} used" : "{usedQuotaByte} 使用されています",
"{used} of {quota} used" : "{used} / {quota} 使用中",
"{relative}% used" : "{relative}% 使用されています",
@@ -163,7 +171,7 @@
"Error during upload: {message}" : "アップロード中にエラーが発生しました: {message}",
"Error during upload, status code {status}" : "アップロード中のエラー、ステータスコード {status}",
"Unknown error during upload" : "不明なエラーがアップロード中に発生しました",
- "\"{displayName}\" action executed successfully" : "\"{displayName}\" アクションは正常に実行された",
+ "\"{displayName}\" action executed successfully" : "\"{displayName}\" アクションは正常に実行されました",
"Loading current folder" : "現在のフォルダの読み込み中",
"Retry" : "リトライ",
"No files in here" : "ファイルがありません",
@@ -181,6 +189,7 @@
"Sort favorites first" : "お気に入りを最初に並べる",
"Sort folders before files" : "ファイルよりもフォルダを先に並べ替えます",
"Show hidden files" : "隠しファイルを表示",
+ "Show file type column" : "ファイルの種類のカラムを表示する",
"Crop image previews" : "プレビュー画像を切り抜く",
"Enable the grid view" : "グリッド表示を有効にする",
"Enable folder tree" : "フォルダーツリーを有効にする",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "これらのショートカットを表示する",
"You" : "自分",
"Shared multiple times with different people" : "異なる人と複数回共有",
+ "Unable to change the favorite state of the file" : "ファイルのお気に入りの状態を変更できません",
"Error while loading the file data" : "ファイルデータの読み込み中にエラーが発生しました",
"Owner" : "作成者",
"Remove from favorites" : "お気に入りから削除",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["あなたは {count} 個のアイテムを削除しようとしています"],
"Confirm deletion" : "削除の確認",
"Cancel" : "キャンセル",
+ "Download" : "ダウンロード",
"Moving \"{source}\" to \"{destination}\" …" : "\"{source}\" を \"{destination}\"に移動",
"Copying \"{source}\" to \"{destination}\" …" : "\"{source}\" を \"{destination}\"にコピー",
+ "Destination is not a folder" : "宛先がフォルダではありません",
+ "This file/folder is already in that directory" : "このファイル/フォルダはすでにそのディレクトリにあります",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "ファイル/フォルダをそれ自身の上に移動したり、それ自身のサブフォルダに移動したりすることはできません。",
"(copy)" : "(copy)",
"(copy %n)" : "(copy %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "キャンセルされた移動またはコピー操作",
"Open folder {displayName}" : "フォルダ {displayName} を開く",
"Open in Files" : "ファイルアプリで開く",
+ "Open locally" : "ローカルで開く",
+ "Failed to redirect to client" : "クライアントへリダイレクトできませんでした",
"Open file locally" : "ローカルでファイルを開く",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "ファイルがデバイス上で開くはずです。開かない場合は、デスクトップアプリがインストールされているかご確認ください。",
"Retry and close" : "再試行して閉じる",
"Open online" : "オンラインで開く",
- "Failed to redirect to client" : "クライアントへリダイレクトできませんでした",
- "Open locally" : "ローカルで開く",
"Rename" : "名前の変更",
"Open details" : "詳細を開く",
"View in folder" : "フォルダー内で表示",
@@ -320,6 +333,9 @@
"Files moved successfully" : "ファイルの移動に成功しました",
"Conflicts resolution skipped" : "コンフリクトの解決はスキップされました",
"Upload cancelled" : "アップロードはキャンセルされました",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" の名前を変更できませんでした、それは既に存在しません。",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{newName}\" という名前は \"{dir}\" フォルダですでに使用されています。別の名前を選択してください。",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" の名前を変更できませんでした。",
"This operation is forbidden" : "この操作は禁止されています",
"This directory is unavailable, please check the logs or contact the administrator" : "このディレクトリは利用できません。ログを確認するか管理者に問い合わせてください。",
"Storage is temporarily not available" : "ストレージは一時的に利用できません",
@@ -351,7 +367,6 @@
"Upload too large" : "アップロードには大きすぎます。",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、このサーバーのファイルアップロード時の最大サイズを超えています。",
"File could not be found" : "ファイルを見つけられませんでした",
- "Download" : "ダウンロード",
"Show list view" : "リストビューで表示",
"Show grid view" : "グリッドビューで表示",
"Close" : "閉じる",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "コピー先{origin} {destination}内",
"Copied {origin} and {nbfiles} other files inside {destination}" : "コピー先{origin}と{nbfiles}他のファイル{destination}",
"{newName} already exists" : "{newName} はすでに存在します",
- "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}\" を作成できませんでした",
"Could not create file \"{file}\" because it already exists" : "ファイル \"{file}\"はすでに存在するため作成できません",
"Could not create folder \"{dir}\" because it already exists" : "フォルダー \"{dir}\" はすでに存在するため作成できません",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "ダイレクトリンクがコピーされました(このファイルやフォルダにアクセスできる人にのみ機能します)",
"Path" : "Path",
"_%n byte_::_%n bytes_" : ["%n バイト"],
- "Favorited" : "お気に入り済",
+ "Favored" : "好評",
+ "Favor" : "好意的",
"Copy direct link (only works for people who have access to this file/folder)" : "ダイレクトリンクをコピー (このファイル/フォルダにアクセスできる人にのみ機能します)",
"Upload file" : "ファイルをアップロード",
- "Not favorited" : "お気に入りではありません",
+ "Not favored" : "好ましくない",
"An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
- "You don't have permission to upload or create files here." : "ここにファイルをアップロードまたは作成する権限がありません。",
- "Storage informations" : "ストレージ情報",
- "Choose file" : "ファイルを選択",
- "Go to the previous folder" : "前のフォルダへ移動",
- "Open the files app settings" : "ファイルアプリの設定を開く",
- "Unable to change the favourite state of the file" : "ファイルのお気に入りの状態を変更できません",
- "Edit file locally" : "ファイルをローカルで編集",
- "Edit online" : "オンラインで編集",
- "Create new templates folder" : "新しいテンプレートフォルダーを作成",
+ "Upload (max. %s)" : "アップロード ( 最大 %s )",
+ "Submitting fields…" : "フィールドを送信中…",
+ "Filter filenames…" : "ファイルネームフィルター…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} フォルダ"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} ファイル"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 ファイルと {folderCount} フォルダ"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} ファイルと 1 フォルダ"],
"{fileCount} files and {folderCount} folders" : "{fileCount} ファイルと {folderCount} フォルダ",
- "List of favorites files and folders." : "お気に入りのファイルやフォルダーの一覧",
"Personal Files" : "個人ファイル",
"Text file" : "テキストファイル",
"New text file.txt" : "新規のテキストファイル作成",
- "Favored" : "好評",
- "Favor" : "好意的",
- "Not favored" : "好ましくない",
- "Submitting fields…" : "フィールドを送信中…",
- "Filter filenames…" : "ファイルネームフィルター…",
- "{count} files could not be converted" : "{count}個のファイルが変換できませんでした",
- "{count} files successfully converted" : "{count}個のファイルの変換に成功しました"
+ "%1$s (renamed)" : "%1$s (リネーム済み)",
+ "renamed file" : "リネーム済みファイル",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Windows 互換のファイル名を有効にすると、既存のファイルは変更できなくなりますが、所有者が有効な新しいファイル名に変更できるようになります。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/ka.js b/apps/files/l10n/ka.js
index deb242a4764..92fa303b945 100644
--- a/apps/files/l10n/ka.js
+++ b/apps/files/l10n/ka.js
@@ -42,7 +42,6 @@ OC.L10N.register(
"Files" : "ფაილები",
"A file or folder has been <strong>changed</strong>" : "A file or folder has been <strong>changed</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "A favorite file or folder has been <strong>changed</strong>",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accept",
"Reject" : "Reject",
"Incoming ownership transfer from {user}" : "Incoming ownership transfer from {user}",
@@ -69,6 +68,7 @@ OC.L10N.register(
"This node is unavailable" : "This node is unavailable",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renamed \"{oldName}\" to \"{newName}\"",
"Rename file" : "Rename file",
+ "Folder" : "Folder",
"Pending" : "Pending",
"Clear filter" : "Clear filter",
"Modified" : "Modified",
@@ -85,6 +85,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Column headers with buttons are sortable.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.",
"File not found" : "File not found",
+ "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"],
"{usedQuotaByte} used" : "{usedQuotaByte} used",
"{used} of {quota} used" : "{used} of {quota} used",
"{relative}% used" : "{relative}% used",
@@ -158,6 +159,9 @@ OC.L10N.register(
"Delete folder" : "Delete folder",
"Delete" : "Delete",
"Cancel" : "Cancel",
+ "Download" : "Download",
+ "Destination is not a folder" : "Destination is not a folder",
+ "This file/folder is already in that directory" : "This file/folder is already in that directory",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "You cannot move a file/folder onto itself or into a subfolder of itself",
"A file or folder with that name already exists in this folder" : "A file or folder with that name already exists in this folder",
"The file does not exist anymore" : "The file does not exist anymore",
@@ -170,9 +174,9 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Cancelled move or copy operation",
"Open folder {displayName}" : "Open folder {displayName}",
"Open in Files" : "Open in Files",
- "Open file locally" : "Open file locally",
- "Failed to redirect to client" : "Failed to redirect to client",
"Open locally" : "Open locally",
+ "Failed to redirect to client" : "Failed to redirect to client",
+ "Open file locally" : "Open file locally",
"Rename" : "Rename",
"Open details" : "Open details",
"View in folder" : "View in folder",
@@ -187,6 +191,9 @@ OC.L10N.register(
"Templates" : "Templates",
"One of the dropped files could not be processed" : "One of the dropped files could not be processed",
"Some files could not be moved" : "Some files could not be moved",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Could not rename \"{oldName}\", it does not exist any more",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.",
+ "Could not rename \"{oldName}\"" : "Could not rename \"{oldName}\"",
"This operation is forbidden" : "This operation is forbidden",
"This directory is unavailable, please check the logs or contact the administrator" : "This directory is unavailable, please check the logs or contact the administrator",
"Storage is temporarily not available" : "Storage is temporarily not available",
@@ -205,7 +212,6 @@ OC.L10N.register(
"Upload too large" : "Upload too large",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "The files you are trying to upload exceed the maximum size for file uploads on this server.",
"File could not be found" : "File could not be found",
- "Download" : "Download",
"Show list view" : "Show list view",
"Show grid view" : "Show grid view",
"Close" : "Close",
@@ -244,9 +250,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Copied {origin} inside {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copied {origin} and {nbfiles} other files inside {destination}",
"{newName} already exists" : "{newName} already exists",
- "Could not rename \"{fileName}\", it does not exist any more" : "Could not rename \"{fileName}\", it does not exist any more",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name.",
- "Could not rename \"{fileName}\"" : "Could not rename \"{fileName}\"",
"Could not create file \"{file}\"" : "Could not create file \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Could not create file \"{file}\" because it already exists",
"Could not create folder \"{dir}\" because it already exists" : "Could not create folder \"{dir}\" because it already exists",
@@ -278,22 +281,14 @@ OC.L10N.register(
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["matches \"{filter}\"","match \"{filter}\""],
"Path" : "Path",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Favorited",
"Upload file" : "Upload file",
- "Not favorited" : "Not favorited",
"An error occurred while trying to update the tags" : "An error occurred while trying to update the tags",
- "Storage informations" : "Storage informations",
- "Choose file" : "Choose file",
- "Go to the previous folder" : "Go to the previous folder",
- "Open the files app settings" : "Open the files app settings",
- "Unable to change the favourite state of the file" : "Unable to change the favourite state of the file",
- "Create new templates folder" : "Create new templates folder",
+ "Upload (max. %s)" : "Upload (max. %s)",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","{folderCount} folders"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} files"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file and 1 folder","{fileCount} files and 1 folder"],
"{fileCount} files and {folderCount} folders" : "{fileCount} files and {folderCount} folders",
- "List of favorites files and folders." : "List of favorites files and folders.",
"Text file" : "Text file",
"New text file.txt" : "New text file.txt"
},
diff --git a/apps/files/l10n/ka.json b/apps/files/l10n/ka.json
index c9f27cb09d4..e9b1175a47f 100644
--- a/apps/files/l10n/ka.json
+++ b/apps/files/l10n/ka.json
@@ -40,7 +40,6 @@
"Files" : "ფაილები",
"A file or folder has been <strong>changed</strong>" : "A file or folder has been <strong>changed</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "A favorite file or folder has been <strong>changed</strong>",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accept",
"Reject" : "Reject",
"Incoming ownership transfer from {user}" : "Incoming ownership transfer from {user}",
@@ -67,6 +66,7 @@
"This node is unavailable" : "This node is unavailable",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renamed \"{oldName}\" to \"{newName}\"",
"Rename file" : "Rename file",
+ "Folder" : "Folder",
"Pending" : "Pending",
"Clear filter" : "Clear filter",
"Modified" : "Modified",
@@ -83,6 +83,7 @@
"Column headers with buttons are sortable." : "Column headers with buttons are sortable.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.",
"File not found" : "File not found",
+ "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"],
"{usedQuotaByte} used" : "{usedQuotaByte} used",
"{used} of {quota} used" : "{used} of {quota} used",
"{relative}% used" : "{relative}% used",
@@ -156,6 +157,9 @@
"Delete folder" : "Delete folder",
"Delete" : "Delete",
"Cancel" : "Cancel",
+ "Download" : "Download",
+ "Destination is not a folder" : "Destination is not a folder",
+ "This file/folder is already in that directory" : "This file/folder is already in that directory",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "You cannot move a file/folder onto itself or into a subfolder of itself",
"A file or folder with that name already exists in this folder" : "A file or folder with that name already exists in this folder",
"The file does not exist anymore" : "The file does not exist anymore",
@@ -168,9 +172,9 @@
"Cancelled move or copy operation" : "Cancelled move or copy operation",
"Open folder {displayName}" : "Open folder {displayName}",
"Open in Files" : "Open in Files",
- "Open file locally" : "Open file locally",
- "Failed to redirect to client" : "Failed to redirect to client",
"Open locally" : "Open locally",
+ "Failed to redirect to client" : "Failed to redirect to client",
+ "Open file locally" : "Open file locally",
"Rename" : "Rename",
"Open details" : "Open details",
"View in folder" : "View in folder",
@@ -185,6 +189,9 @@
"Templates" : "Templates",
"One of the dropped files could not be processed" : "One of the dropped files could not be processed",
"Some files could not be moved" : "Some files could not be moved",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Could not rename \"{oldName}\", it does not exist any more",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.",
+ "Could not rename \"{oldName}\"" : "Could not rename \"{oldName}\"",
"This operation is forbidden" : "This operation is forbidden",
"This directory is unavailable, please check the logs or contact the administrator" : "This directory is unavailable, please check the logs or contact the administrator",
"Storage is temporarily not available" : "Storage is temporarily not available",
@@ -203,7 +210,6 @@
"Upload too large" : "Upload too large",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "The files you are trying to upload exceed the maximum size for file uploads on this server.",
"File could not be found" : "File could not be found",
- "Download" : "Download",
"Show list view" : "Show list view",
"Show grid view" : "Show grid view",
"Close" : "Close",
@@ -242,9 +248,6 @@
"Copied {origin} inside {destination}" : "Copied {origin} inside {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copied {origin} and {nbfiles} other files inside {destination}",
"{newName} already exists" : "{newName} already exists",
- "Could not rename \"{fileName}\", it does not exist any more" : "Could not rename \"{fileName}\", it does not exist any more",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name.",
- "Could not rename \"{fileName}\"" : "Could not rename \"{fileName}\"",
"Could not create file \"{file}\"" : "Could not create file \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Could not create file \"{file}\" because it already exists",
"Could not create folder \"{dir}\" because it already exists" : "Could not create folder \"{dir}\" because it already exists",
@@ -276,22 +279,14 @@
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["matches \"{filter}\"","match \"{filter}\""],
"Path" : "Path",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Favorited",
"Upload file" : "Upload file",
- "Not favorited" : "Not favorited",
"An error occurred while trying to update the tags" : "An error occurred while trying to update the tags",
- "Storage informations" : "Storage informations",
- "Choose file" : "Choose file",
- "Go to the previous folder" : "Go to the previous folder",
- "Open the files app settings" : "Open the files app settings",
- "Unable to change the favourite state of the file" : "Unable to change the favourite state of the file",
- "Create new templates folder" : "Create new templates folder",
+ "Upload (max. %s)" : "Upload (max. %s)",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","{folderCount} folders"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","{fileCount} files"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","1 file and {folderCount} folders"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file and 1 folder","{fileCount} files and 1 folder"],
"{fileCount} files and {folderCount} folders" : "{fileCount} files and {folderCount} folders",
- "List of favorites files and folders." : "List of favorites files and folders.",
"Text file" : "Text file",
"New text file.txt" : "New text file.txt"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js
deleted file mode 100644
index e5a0cc9664c..00000000000
--- a/apps/files/l10n/ka_GE.js
+++ /dev/null
@@ -1,152 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "ფაილი ვერ იქნა ნაპოვნი",
- "Move or copy" : "გადაიტანეთ ან დააკოპირეთ",
- "Download" : "ჩამოტვირთვა",
- "Delete" : "წაშლა",
- "Tags" : "ტეგები",
- "Home" : "სახლი",
- "Close" : "დახურვა",
- "Could not create folder \"{dir}\"" : "დირექტორია \"{dir}\" ვერ შეიქმნა",
- "Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "შეუძლებელია {filename}-ის ატვირთვა, რადგანაც ის დირექტორიაა ან გააჩნია 0 ბაიტი",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "არასაკმარისი თავისუფალი სივრცე, თქვენ ტვირთავთ {size1}-ს, მაგრამ მხოლოდ {size2}-ია დარჩენილი",
- "Target folder \"{dir}\" does not exist any more" : "დანიშნულების დირექტორია \"{dir}\" აღარ არსებობს",
- "Not enough free space" : "არასაკმარისი თავისუფალი სივრცე",
- "Uploading …" : "იტვირთება ...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} სულ {totalSize}-დან ({bitrate})",
- "Target folder does not exist any more" : "დანიშნულების დირექტორია აღარ არსებობს",
- "Error when assembling chunks, status code {status}" : "ნაჭრების შეგროვებისას წარმოიშვა შეცდომა, სტატუსის კოდი {status}",
- "Actions" : "მოქმედებები",
- "Rename" : "გადარქმევა",
- "Move" : "გადატანა",
- "Copy" : "კოპირება",
- "Delete file" : "გაუქმდეს ფაილი",
- "Delete folder" : "დირექტორიის გაუქმება",
- "Disconnect storage" : "საცავის გათიშვა",
- "Could not load info for file \"{file}\"" : "ფაილზე \"{file}\" ინფორმაცია ვერ ჩაიტვირთა",
- "Files" : "ფაილები",
- "Details" : "დეტალები",
- "Pending" : "მოცდის რეჟიმში",
- "Unable to determine date" : "თარიღის დადგენა შეუძლებელია",
- "This operation is forbidden" : "ეს ოპერაცია აკრძალულია",
- "This directory is unavailable, please check the logs or contact the administrator" : "დირექტორია ხელმიუწვდომელია, გთოხვთ შეამოწმოთ ლოგები ან დაუკავშირდეთ ადმინისტრატორს",
- "Storage is temporarily not available" : "საცავი დროებით ხელმიუწვდომელია",
- "Could not move \"{file}\", target exists" : "\"{file}\"-ის გადატანა ვერ მოხერხდა, დანიშნულება არსებობს",
- "Could not move \"{file}\"" : "\"{file}\"-ის გადატანა ვერ მოხერხდა",
- "Could not copy \"{file}\", target exists" : "\"{file}\"-ის კოპირება ვერ მოხერხდა, დანიშნულება არსებობს",
- "Could not copy \"{file}\"" : "\"{file}\"-ის კოპირება ვერ მოხერხდა",
- "Copied {origin} inside {destination}" : "დაკოპირდა {origin} {destionation}-ში",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "დაკოპირდა {origin} და {nbfiles} სხვა ფაილი {destionation}-ში",
- "{newName} already exists" : "{newName} უკვე არსებობს",
- "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}\" ვერ შეიქმნა",
- "Could not create file \"{file}\" because it already exists" : "ფაილი \"{file}\" ვერ შეიქმნა, ის უკვე არსებობს",
- "Could not create folder \"{dir}\" because it already exists" : "დირექტორია \"{dir}\" ვერ შეიქმნა, ის უკვე არსებობს",
- "Error deleting file \"{fileName}\"." : "ფიალის \"{fileName}\" წაშლისას წარმოიქმნა შეცდომა.",
- "No search results in other folders for {tag}{filter}{endtag}" : "ძიების შედეგები სხვა დირექტორიებში {tag}{filter}{endtag} არაა",
- "Name" : "სახელი",
- "Size" : "ზომა",
- "Modified" : "შეცვლილია",
- "_%n folder_::_%n folders_" : ["%n დირექტორია","%n დირექტორია"],
- "_%n file_::_%n files_" : ["%n ფაილი","%n ფაილი"],
- "{dirs} and {files}" : "{dirs} და {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n დამალულის ჩათვლით","%n დამალულის ჩათვლით"],
- "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს","ვტვირთავთ %n ფაილს"],
- "New" : "ახალი",
- "{used} of {quota} used" : "გამოყენებულია {used} სულ {quota}-დან",
- "{used} used" : "გამოყენებულია {used}",
- "\"{name}\" is an invalid file name." : "\"{name}\" არასწორი ფაილის სახელია.",
- "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.",
- "\"/\" is not allowed inside a file name." : "\"/\" ფაილის სახელში არაა ნებადართული.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" არაა დაშვებული ფაილის ტიპი",
- "View in folder" : "ჩვენება დირექტორიაში",
- "Path" : "მისამართი",
- "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"],
- "Favorited" : "დამატებულია რჩეულებში",
- "Favorite" : "რჩეული",
- "Copy direct link (only works for users who have access to this file/folder)" : "დააკოპირეთ პირდაპირი ბმული (მუშაობს მომხმარებლებისთვის, რომელთაც გააჩნიათ წვდომა ამ ფაილის/დირექტორიის მიმართ)",
- "New folder" : "ახალი დირექტორია",
- "Upload file" : "ფაილის ატვირთვა",
- "Recent" : "ახალი",
- "Not favorited" : "არაა დამატებული რჩეულებში",
- "Remove from favorites" : "რჩეულებიდან მოშორება",
- "Add to favorites" : "რჩეულებში დამატება",
- "An error occurred while trying to update the tags" : "ტეგების განახლების მცდელობისას წარმოიშვა შეცდომა",
- "Added to favorites" : "დაემატა რჩეულებში",
- "Removed from favorites" : "ამოიშალა რჩეულებიდან",
- "You added {file} to your favorites" : "თქვენ დაამატეთ {file}-ი რჩეულებში",
- "You removed {file} from your favorites" : "თქვენ ამოშალეთ {file}-ი თქვენი რჩეული ფაილებიდან",
- "Favorites" : "რჩეულები",
- "File changes" : "ფაილის ცვლილებები",
- "Created by {user}" : "შექმნა მომხმარებელმა {user}",
- "Changed by {user}" : "შეცვალა მომხმარებელმა {user}",
- "Deleted by {user}" : "წაშალა მომხმარებელმა {user}",
- "Restored by {user}" : "აღადგინა მომხმარებელმა {user}",
- "Renamed by {user}" : "სახელი გადაარქვა მომხმარებელმა {user}",
- "Moved by {user}" : "გადაიტანა მომხმარებელმა {user}",
- "\"remote user\"" : "\"დისტანციური მომხმარებელი\"",
- "You created {file}" : "თქვენ შექმენით {file}",
- "You created an encrypted file in {file}" : "შექმენით დაშიფრული ფაილი {file}-ში",
- "{user} created {file}" : "{user} მომხმარებელმა შექმნა {file}",
- "{user} created an encrypted file in {file}" : "{user} მომხმარებელმა შექმნა დაშიფრული ფაილი {file}-ში",
- "{file} was created in a public folder" : "{file} შეიქმნა საზოგადო დირექტორიაში",
- "You changed {file}" : "თქვენ შეცვალეთ {file}",
- "You changed an encrypted file in {file}" : "შეცვალეთ დაშიფრული ფაილი {file}-ში",
- "{user} changed {file}" : "{user} მომხმარებელმა შეცვალა {file}",
- "{user} changed an encrypted file in {file}" : "{user} მომხმარებელმა შეცვალა დაშიფრული ფაილი {file}-ში",
- "You deleted {file}" : "თქვენ წაშალეთ {file}",
- "You deleted an encrypted file in {file}" : "გააუქმეთ დაშიფრული ფაილი {file}-ში",
- "{user} deleted {file}" : "{user} მომხმარებელმა წაშალა {file}",
- "{user} deleted an encrypted file in {file}" : "{user} მომხმარებელმა გააუქმა დაშიფრული ფაილი {file}-ში",
- "You restored {file}" : "თქვენ აღადგინეთ {file}",
- "{user} restored {file}" : "{user} მომხმარებელმა განაახლა {file}",
- "You renamed {oldfile} to {newfile}" : "თქვენ გადაარქვით სახელი {oldfile}-ს {newfile}-ზე",
- "{user} renamed {oldfile} to {newfile}" : "{user}-მა გადაარქვა სახელი {oldfile}-ს {newfile}-ზე",
- "You moved {oldfile} to {newfile}" : "თქვენ გადაიტანეთ {oldfile} {newfile}-ად",
- "{user} moved {oldfile} to {newfile}" : "{user}-მა გადაიტანა {oldfile} {newfile}-ად",
- "A file has been added to or removed from your <strong>favorites</strong>" : "ყველა ფაილი დაემატა ან ამოიშალა<strong>რჩეულებიდან</strong>",
- "Upload (max. %s)" : "ატვირთვა (მაქს. %s)",
- "Accept" : "მიღება",
- "in %s" : "%s-ში",
- "Folder name" : "დირექტორიის სახელი",
- "Name cannot be empty" : "სახელი ვერ იქნება ცარიელი",
- "Select all" : "ყველას არჩევა",
- "File not found" : "ფაილი ვერ იქნა ნაპოვნი",
- "Change" : "შეცვლა",
- "Unknown error" : "უცნობი შეცდომა",
- "No files in here" : "აქ ფაილები არაა",
- "Upload some content or sync with your devices!" : "ატვირთეთ რამე ან მოახდინეთ სინქრონიზაცია თქვენს მოწყობილობებთან!",
- "Go back" : "უკან დაბრუნება",
- "Shared by link" : "გაზიარდა ბმულით",
- "Shared" : "გაზიარებული",
- "Show hidden files" : "დამალული ფაილების ჩვენება",
- "Additional settings" : "დამატებითი პარამეტრები",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "კოპირება ბუფერში",
- "Create" : "შექმნა",
- "Delete permanently" : "სამუდამოდ წაშლა",
- "No favorites yet" : "ჯერ რჩეულები არაა",
- "Files and folders you mark as favorite will show up here" : "აქ გამოჩნდებიან ფაილები და დირექტორიები, რომლებსაც მონიშნავთ რჩეულებად",
- "All files" : "ყველა ფაილი",
- "No entries found in this folder" : "ამ დირექტორიაში შენატანები ვერ იქნა ნაპოვნი",
- "Upload too large" : "ასატვირთი ფაილი ძალიან დიდია",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ფაილის ზომა რომლის ატვირთვასაც აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.",
- "Text file" : "ტექსტური ფაილი",
- "New text file.txt" : "ახალი ტექსტი file.txt",
- "Storage invalid" : "საცავი არასწორია",
- "Unlimited" : "ულიმიტო",
- "Cancel" : "უარყოფა",
- "%s used" : "%s მოხმარებულია",
- "%1$s of %2$s used" : "გამოყენებულია %1$s სულ %2$s-იდან ",
- "Deleted files" : "გაუქმებული ფაილები",
- "Shares" : "გაზიარებები",
- "Shared with others" : "გაზიარდა სხვებთან",
- "Shared with you" : "გაზიარდა თქვენთან",
- "Choose" : "აირჩიეთ"
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json
deleted file mode 100644
index 641d3b90b1b..00000000000
--- a/apps/files/l10n/ka_GE.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{ "translations": {
- "File could not be found" : "ფაილი ვერ იქნა ნაპოვნი",
- "Move or copy" : "გადაიტანეთ ან დააკოპირეთ",
- "Download" : "ჩამოტვირთვა",
- "Delete" : "წაშლა",
- "Tags" : "ტეგები",
- "Home" : "სახლი",
- "Close" : "დახურვა",
- "Could not create folder \"{dir}\"" : "დირექტორია \"{dir}\" ვერ შეიქმნა",
- "Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "შეუძლებელია {filename}-ის ატვირთვა, რადგანაც ის დირექტორიაა ან გააჩნია 0 ბაიტი",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "არასაკმარისი თავისუფალი სივრცე, თქვენ ტვირთავთ {size1}-ს, მაგრამ მხოლოდ {size2}-ია დარჩენილი",
- "Target folder \"{dir}\" does not exist any more" : "დანიშნულების დირექტორია \"{dir}\" აღარ არსებობს",
- "Not enough free space" : "არასაკმარისი თავისუფალი სივრცე",
- "Uploading …" : "იტვირთება ...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} სულ {totalSize}-დან ({bitrate})",
- "Target folder does not exist any more" : "დანიშნულების დირექტორია აღარ არსებობს",
- "Error when assembling chunks, status code {status}" : "ნაჭრების შეგროვებისას წარმოიშვა შეცდომა, სტატუსის კოდი {status}",
- "Actions" : "მოქმედებები",
- "Rename" : "გადარქმევა",
- "Move" : "გადატანა",
- "Copy" : "კოპირება",
- "Delete file" : "გაუქმდეს ფაილი",
- "Delete folder" : "დირექტორიის გაუქმება",
- "Disconnect storage" : "საცავის გათიშვა",
- "Could not load info for file \"{file}\"" : "ფაილზე \"{file}\" ინფორმაცია ვერ ჩაიტვირთა",
- "Files" : "ფაილები",
- "Details" : "დეტალები",
- "Pending" : "მოცდის რეჟიმში",
- "Unable to determine date" : "თარიღის დადგენა შეუძლებელია",
- "This operation is forbidden" : "ეს ოპერაცია აკრძალულია",
- "This directory is unavailable, please check the logs or contact the administrator" : "დირექტორია ხელმიუწვდომელია, გთოხვთ შეამოწმოთ ლოგები ან დაუკავშირდეთ ადმინისტრატორს",
- "Storage is temporarily not available" : "საცავი დროებით ხელმიუწვდომელია",
- "Could not move \"{file}\", target exists" : "\"{file}\"-ის გადატანა ვერ მოხერხდა, დანიშნულება არსებობს",
- "Could not move \"{file}\"" : "\"{file}\"-ის გადატანა ვერ მოხერხდა",
- "Could not copy \"{file}\", target exists" : "\"{file}\"-ის კოპირება ვერ მოხერხდა, დანიშნულება არსებობს",
- "Could not copy \"{file}\"" : "\"{file}\"-ის კოპირება ვერ მოხერხდა",
- "Copied {origin} inside {destination}" : "დაკოპირდა {origin} {destionation}-ში",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "დაკოპირდა {origin} და {nbfiles} სხვა ფაილი {destionation}-ში",
- "{newName} already exists" : "{newName} უკვე არსებობს",
- "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}\" ვერ შეიქმნა",
- "Could not create file \"{file}\" because it already exists" : "ფაილი \"{file}\" ვერ შეიქმნა, ის უკვე არსებობს",
- "Could not create folder \"{dir}\" because it already exists" : "დირექტორია \"{dir}\" ვერ შეიქმნა, ის უკვე არსებობს",
- "Error deleting file \"{fileName}\"." : "ფიალის \"{fileName}\" წაშლისას წარმოიქმნა შეცდომა.",
- "No search results in other folders for {tag}{filter}{endtag}" : "ძიების შედეგები სხვა დირექტორიებში {tag}{filter}{endtag} არაა",
- "Name" : "სახელი",
- "Size" : "ზომა",
- "Modified" : "შეცვლილია",
- "_%n folder_::_%n folders_" : ["%n დირექტორია","%n დირექტორია"],
- "_%n file_::_%n files_" : ["%n ფაილი","%n ფაილი"],
- "{dirs} and {files}" : "{dirs} და {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n დამალულის ჩათვლით","%n დამალულის ჩათვლით"],
- "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს","ვტვირთავთ %n ფაილს"],
- "New" : "ახალი",
- "{used} of {quota} used" : "გამოყენებულია {used} სულ {quota}-დან",
- "{used} used" : "გამოყენებულია {used}",
- "\"{name}\" is an invalid file name." : "\"{name}\" არასწორი ფაილის სახელია.",
- "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.",
- "\"/\" is not allowed inside a file name." : "\"/\" ფაილის სახელში არაა ნებადართული.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" არაა დაშვებული ფაილის ტიპი",
- "View in folder" : "ჩვენება დირექტორიაში",
- "Path" : "მისამართი",
- "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"],
- "Favorited" : "დამატებულია რჩეულებში",
- "Favorite" : "რჩეული",
- "Copy direct link (only works for users who have access to this file/folder)" : "დააკოპირეთ პირდაპირი ბმული (მუშაობს მომხმარებლებისთვის, რომელთაც გააჩნიათ წვდომა ამ ფაილის/დირექტორიის მიმართ)",
- "New folder" : "ახალი დირექტორია",
- "Upload file" : "ფაილის ატვირთვა",
- "Recent" : "ახალი",
- "Not favorited" : "არაა დამატებული რჩეულებში",
- "Remove from favorites" : "რჩეულებიდან მოშორება",
- "Add to favorites" : "რჩეულებში დამატება",
- "An error occurred while trying to update the tags" : "ტეგების განახლების მცდელობისას წარმოიშვა შეცდომა",
- "Added to favorites" : "დაემატა რჩეულებში",
- "Removed from favorites" : "ამოიშალა რჩეულებიდან",
- "You added {file} to your favorites" : "თქვენ დაამატეთ {file}-ი რჩეულებში",
- "You removed {file} from your favorites" : "თქვენ ამოშალეთ {file}-ი თქვენი რჩეული ფაილებიდან",
- "Favorites" : "რჩეულები",
- "File changes" : "ფაილის ცვლილებები",
- "Created by {user}" : "შექმნა მომხმარებელმა {user}",
- "Changed by {user}" : "შეცვალა მომხმარებელმა {user}",
- "Deleted by {user}" : "წაშალა მომხმარებელმა {user}",
- "Restored by {user}" : "აღადგინა მომხმარებელმა {user}",
- "Renamed by {user}" : "სახელი გადაარქვა მომხმარებელმა {user}",
- "Moved by {user}" : "გადაიტანა მომხმარებელმა {user}",
- "\"remote user\"" : "\"დისტანციური მომხმარებელი\"",
- "You created {file}" : "თქვენ შექმენით {file}",
- "You created an encrypted file in {file}" : "შექმენით დაშიფრული ფაილი {file}-ში",
- "{user} created {file}" : "{user} მომხმარებელმა შექმნა {file}",
- "{user} created an encrypted file in {file}" : "{user} მომხმარებელმა შექმნა დაშიფრული ფაილი {file}-ში",
- "{file} was created in a public folder" : "{file} შეიქმნა საზოგადო დირექტორიაში",
- "You changed {file}" : "თქვენ შეცვალეთ {file}",
- "You changed an encrypted file in {file}" : "შეცვალეთ დაშიფრული ფაილი {file}-ში",
- "{user} changed {file}" : "{user} მომხმარებელმა შეცვალა {file}",
- "{user} changed an encrypted file in {file}" : "{user} მომხმარებელმა შეცვალა დაშიფრული ფაილი {file}-ში",
- "You deleted {file}" : "თქვენ წაშალეთ {file}",
- "You deleted an encrypted file in {file}" : "გააუქმეთ დაშიფრული ფაილი {file}-ში",
- "{user} deleted {file}" : "{user} მომხმარებელმა წაშალა {file}",
- "{user} deleted an encrypted file in {file}" : "{user} მომხმარებელმა გააუქმა დაშიფრული ფაილი {file}-ში",
- "You restored {file}" : "თქვენ აღადგინეთ {file}",
- "{user} restored {file}" : "{user} მომხმარებელმა განაახლა {file}",
- "You renamed {oldfile} to {newfile}" : "თქვენ გადაარქვით სახელი {oldfile}-ს {newfile}-ზე",
- "{user} renamed {oldfile} to {newfile}" : "{user}-მა გადაარქვა სახელი {oldfile}-ს {newfile}-ზე",
- "You moved {oldfile} to {newfile}" : "თქვენ გადაიტანეთ {oldfile} {newfile}-ად",
- "{user} moved {oldfile} to {newfile}" : "{user}-მა გადაიტანა {oldfile} {newfile}-ად",
- "A file has been added to or removed from your <strong>favorites</strong>" : "ყველა ფაილი დაემატა ან ამოიშალა<strong>რჩეულებიდან</strong>",
- "Upload (max. %s)" : "ატვირთვა (მაქს. %s)",
- "Accept" : "მიღება",
- "in %s" : "%s-ში",
- "Folder name" : "დირექტორიის სახელი",
- "Name cannot be empty" : "სახელი ვერ იქნება ცარიელი",
- "Select all" : "ყველას არჩევა",
- "File not found" : "ფაილი ვერ იქნა ნაპოვნი",
- "Change" : "შეცვლა",
- "Unknown error" : "უცნობი შეცდომა",
- "No files in here" : "აქ ფაილები არაა",
- "Upload some content or sync with your devices!" : "ატვირთეთ რამე ან მოახდინეთ სინქრონიზაცია თქვენს მოწყობილობებთან!",
- "Go back" : "უკან დაბრუნება",
- "Shared by link" : "გაზიარდა ბმულით",
- "Shared" : "გაზიარებული",
- "Show hidden files" : "დამალული ფაილების ჩვენება",
- "Additional settings" : "დამატებითი პარამეტრები",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "კოპირება ბუფერში",
- "Create" : "შექმნა",
- "Delete permanently" : "სამუდამოდ წაშლა",
- "No favorites yet" : "ჯერ რჩეულები არაა",
- "Files and folders you mark as favorite will show up here" : "აქ გამოჩნდებიან ფაილები და დირექტორიები, რომლებსაც მონიშნავთ რჩეულებად",
- "All files" : "ყველა ფაილი",
- "No entries found in this folder" : "ამ დირექტორიაში შენატანები ვერ იქნა ნაპოვნი",
- "Upload too large" : "ასატვირთი ფაილი ძალიან დიდია",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ფაილის ზომა რომლის ატვირთვასაც აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.",
- "Text file" : "ტექსტური ფაილი",
- "New text file.txt" : "ახალი ტექსტი file.txt",
- "Storage invalid" : "საცავი არასწორია",
- "Unlimited" : "ულიმიტო",
- "Cancel" : "უარყოფა",
- "%s used" : "%s მოხმარებულია",
- "%1$s of %2$s used" : "გამოყენებულია %1$s სულ %2$s-იდან ",
- "Deleted files" : "გაუქმებული ფაილები",
- "Shares" : "გაზიარებები",
- "Shared with others" : "გაზიარდა სხვებთან",
- "Shared with you" : "გაზიარდა თქვენთან",
- "Choose" : "აირჩიეთ"
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/km.js b/apps/files/l10n/km.js
deleted file mode 100644
index 0202944bc42..00000000000
--- a/apps/files/l10n/km.js
+++ /dev/null
@@ -1,38 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Unknown error" : "មិន​ស្គាល់​កំហុស",
- "No file was uploaded. Unknown error" : "មិន​មាន​ឯកសារ​ដែល​បាន​ផ្ទុក​ឡើង។ មិន​ស្គាល់​កំហុស",
- "There is no error, the file uploaded with success" : "មិន​មាន​កំហុស​អ្វី​ទេ ហើយ​ឯកសារ​ត្រូវ​បាន​ផ្ទុកឡើង​ដោយ​ជោគជ័យ",
- "Files" : "ឯកសារ",
- "Close" : "បិទ",
- "Upload cancelled." : "បាន​បោះបង់​ការ​ផ្ទុក​ឡើង។",
- "Uploading..." : "កំពុងដាក់បញ្ចូល...",
- "Download" : "ទាញយក",
- "Rename" : "ប្ដូរ​ឈ្មោះ",
- "Delete" : "លុប",
- "Unshare" : "លែង​ចែក​រំលែក",
- "Details" : "ព័ត៌មាន​លម្អិត",
- "Pending" : "កំពុង​រង់ចាំ",
- "Name" : "ឈ្មោះ",
- "Size" : "ទំហំ",
- "Modified" : "បាន​កែ​ប្រែ",
- "New" : "ថ្មី",
- "File name cannot be empty." : "ឈ្មោះ​ឯកសារ​មិន​អាច​នៅ​ទទេ​បាន​ឡើយ។",
- "Folder" : "ថត",
- "New folder" : "ថត​ថ្មី",
- "Upload" : "ផ្ទុក​ឡើង",
- "You created %1$s" : "អ្នក​បាន​បង្កើត %1$s",
- "%2$s created %1$s" : "%2$s បាន​បង្កើត %1$s",
- "You changed %1$s" : "អ្នក​បាន​ផ្លាស់​ប្ដូរ %1$s",
- "%2$s changed %1$s" : "%2$s បាន​ផ្លាស់​ប្ដូរ %1$s",
- "You deleted %1$s" : "អ្នក​បាន​លុប %1$s",
- "%2$s deleted %1$s" : "%2$s បាន​លុប %1$s",
- "Maximum upload size" : "ទំហំ​ផ្ទុកឡើង​ជា​អតិបរមា",
- "Save" : "រក្សាទុក",
- "Settings" : "ការកំណត់",
- "WebDAV" : "WebDAV",
- "Upload too large" : "ផ្ទុក​ឡើង​ធំ​ពេក",
- "Text file" : "ឯកសារ​អក្សរ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/km.json b/apps/files/l10n/km.json
deleted file mode 100644
index 8f4b54f10bc..00000000000
--- a/apps/files/l10n/km.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{ "translations": {
- "Unknown error" : "មិន​ស្គាល់​កំហុស",
- "No file was uploaded. Unknown error" : "មិន​មាន​ឯកសារ​ដែល​បាន​ផ្ទុក​ឡើង។ មិន​ស្គាល់​កំហុស",
- "There is no error, the file uploaded with success" : "មិន​មាន​កំហុស​អ្វី​ទេ ហើយ​ឯកសារ​ត្រូវ​បាន​ផ្ទុកឡើង​ដោយ​ជោគជ័យ",
- "Files" : "ឯកសារ",
- "Close" : "បិទ",
- "Upload cancelled." : "បាន​បោះបង់​ការ​ផ្ទុក​ឡើង។",
- "Uploading..." : "កំពុងដាក់បញ្ចូល...",
- "Download" : "ទាញយក",
- "Rename" : "ប្ដូរ​ឈ្មោះ",
- "Delete" : "លុប",
- "Unshare" : "លែង​ចែក​រំលែក",
- "Details" : "ព័ត៌មាន​លម្អិត",
- "Pending" : "កំពុង​រង់ចាំ",
- "Name" : "ឈ្មោះ",
- "Size" : "ទំហំ",
- "Modified" : "បាន​កែ​ប្រែ",
- "New" : "ថ្មី",
- "File name cannot be empty." : "ឈ្មោះ​ឯកសារ​មិន​អាច​នៅ​ទទេ​បាន​ឡើយ។",
- "Folder" : "ថត",
- "New folder" : "ថត​ថ្មី",
- "Upload" : "ផ្ទុក​ឡើង",
- "You created %1$s" : "អ្នក​បាន​បង្កើត %1$s",
- "%2$s created %1$s" : "%2$s បាន​បង្កើត %1$s",
- "You changed %1$s" : "អ្នក​បាន​ផ្លាស់​ប្ដូរ %1$s",
- "%2$s changed %1$s" : "%2$s បាន​ផ្លាស់​ប្ដូរ %1$s",
- "You deleted %1$s" : "អ្នក​បាន​លុប %1$s",
- "%2$s deleted %1$s" : "%2$s បាន​លុប %1$s",
- "Maximum upload size" : "ទំហំ​ផ្ទុកឡើង​ជា​អតិបរមា",
- "Save" : "រក្សាទុក",
- "Settings" : "ការកំណត់",
- "WebDAV" : "WebDAV",
- "Upload too large" : "ផ្ទុក​ឡើង​ធំ​ពេក",
- "Text file" : "ឯកសារ​អក្សរ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/kn.js b/apps/files/l10n/kn.js
deleted file mode 100644
index 6ad65bf9806..00000000000
--- a/apps/files/l10n/kn.js
+++ /dev/null
@@ -1,61 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Storage not available" : "ಲಭ್ಯವಿಲ್ಲ ಸಂಗ್ರಹ",
- "Storage invalid" : "ಸಂಗ್ರಹ ಅಮಾನ್ಯವಾಗಿದೆ",
- "Unknown error" : "ಗೊತ್ತಿಲ್ಲದ ದೋಷ",
- "Unable to set upload directory." : "ಪೇರಿಸವ ಕೋಶವನ್ನು ಹೊಂದಿಸಲಾಗಲಿಲ್ಲ.",
- "Invalid Token" : "ಅಮಾನ್ಯ ಸಾಂಕೇತಿಕ",
- "No file was uploaded. Unknown error" : "ಕಡತ ವರ್ಗಾವಣೆ ಅಜ್ಞಾತ ದೋಷದಿಂದ ವಿಪುಲವಾಗಿದೆ",
- "There is no error, the file uploaded with success" : "ವರ್ಗಾವಣೆ ಯಾವುದೇ ದೋಷ ಕಂಡುಬರದೆ ಯಶಸ್ವಿಯಾಗಿದೆ",
- "The uploaded file was only partially uploaded" : "ವರ್ಗಾವಣೆ ಮಾಡಲಾಗುತ್ತಿದ್ದ ಕಡತವನ್ನು ಭಾಗಶಃ ಮಾತ್ರ ಪೇರಿಸಲು ಸಾದ್ಯವಾಗಿದೆ",
- "No file was uploaded" : "ವರ್ಗಾವಣೆಗೆ ಯಾವುದೇ ಕಡತಗಳು ಕಂಡುಬಂದಿಲ್ಲ",
- "Missing a temporary folder" : "ತಾತ್ಕಾಲಿಕ ಕಡತಕೋಶ ದೊರೆಕುತ್ತಿಲ್ಲ",
- "Failed to write to disk" : "ಸ್ಮರಣೆ ಸಾಧನಕ್ಕೇಬರೆಯಲು ವಿಫಲವಾಗಿದೆ",
- "Not enough storage available" : "ಲಭ್ಯವಿರುವ ಸಂಗ್ರಹ ಸಾಕಾಗುವುದಿಲ್ಲ",
- "The target folder has been moved or deleted." : "ಕೋಶದ ಉದ್ದೇಶಿತ ಸ್ಥಳ ಬದಲಾವಣೆ ಮಾಡಲಾಗಿದೆ ಅಥವಾ ಅಳಿಸಲಾಗಿದೆ.",
- "Invalid directory." : "ಅಮಾನ್ಯ ಕಡತಕೋಶ.",
- "Files" : "ಕಡತಗಳು",
- "All files" : "ಎಲ್ಲಾ ಕಡತಗಳು",
- "Home" : "ಮುಖಪುಟ",
- "Close" : "ಮುಚ್ಚು",
- "Favorites" : "ಅಚ್ಚುಮೆಚ್ಚಿನ",
- "Upload cancelled." : "ವರ್ಗಾವಣೆಯನ್ನು ರದ್ದು ಮಾಡಲಾಯಿತು.",
- "Could not get result from server." : "ಪರಿಚಾರಕ ಕಣಕದಿಂದ ಫಲಿತಾಂಶವನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ.",
- "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ",
- "Rename" : "ಮರುಹೆಸರಿಸು",
- "Delete" : "ಅಳಿಸಿ",
- "Disconnect storage" : "ಸಂಗ್ರಹ ಸಾಧನವನ್ನು ತೆಗೆದುಹಾಕಿ",
- "Unshare" : "ಹಂಚಿಕೆಯನ್ನು ಹಿಂತೆಗೆ",
- "Select" : "ಆಯ್ಕೆ ಮಾಡಿ",
- "Pending" : "ಬಾಕಿ ಇದೆ",
- "Unable to determine date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕ ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
- "Name" : "ಹೆಸರು",
- "Size" : " ಪ್ರಮಾಣ",
- "Modified" : "ಬದಲಾಯಿಸಿದ",
- "_%n folder_::_%n folders_" : ["%n ಕೋಶ(ಗಳು)"],
- "_%n file_::_%n files_" : ["%n ಕಡತ"],
- "You don’t have permission to upload or create files here" : "ನಿಮಗೆ ಇಲ್ಲಿ ಅಪ್ಲೋಡ್ ಅಥವಾ ಕಡತಗಳನ್ನು ರಚಿಸವ ಅನುಮತಿ ಇಲ್ಲ",
- "_Uploading %n file_::_Uploading %n files_" : ["%n 'ನೆ ಕಡತವನ್ನು ವರ್ಗಾಯಿಸಲಾಗುತ್ತಿದೆ"],
- "New" : "ಹೊಸ",
- "File name cannot be empty." : "ಕಡತ ಹೆಸರು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ.",
- "Favorited" : "ಅಚ್ಚುಮೆಚ್ಚಿನವು",
- "Favorite" : "ಅಚ್ಚುಮೆಚ್ಚಿನ",
- "Folder" : "ಕಡತಕೋಶ",
- "New folder" : "ಹೊಸ ಕಡತಕೋಶ",
- "Upload" : "ವರ್ಗಾಯಿಸಿ",
- "Upload (max. %s)" : "ವರ್ಗಾವಣೆ (ಗರಿಷ್ಠ %s)",
- "File handling" : "ಕಡತ ನಿರ್ವಹಣೆ",
- "Maximum upload size" : "ಗರಿಷ್ಠ ವರ್ಗಾವಣೆ ಗಾತ್ರ",
- "max. possible: " : "ಗರಿಷ್ಠ. ಸಾಧ್ಯ:",
- "Save" : "ಉಳಿಸಿ",
- "Settings" : "ಆಯ್ಕೆ",
- "WebDAV" : "WebDAV",
- "Select all" : "ಎಲ್ಲಾ ಆಯ್ಕೆ ಮಾಡಿ",
- "Upload too large" : "ದೊಡ್ಡ ಪ್ರಮಾಣದ ಪ್ರತಿಗಳನ್ನು ವರ್ಗಾವಣೆ ಮಾಡಲು ಸಾದ್ಯವಿಲ್ಲ",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ನೀವು ವರ್ಗಾಯಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಕಡತಗಳ ಗಾತ್ರ, ಈ ಗಣಕ ಕೋಶದ ಗರಿಷ್ಠ ಕಡತ ಮೀತಿಯಾನ್ನು ಮೀರುವಂತಿಲ್ಲ.",
- "No favorites" : "ಯಾವ ಅಚ್ಚುಮೆಚ್ಚಿನವುಗಳು ಇಲ್ಲ",
- "Files and folders you mark as favorite will show up here" : "ನೀವು ಗುರುತು ಮಾಡಿರುವ ನೆಚ್ಚಿನ ಕಡತ ಮತ್ತು ಕಡತಕೋಶಗಳನ್ನು ಇಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತಿದೆ",
- "Text file" : "ಸರಳಾಕ್ಷರದ ಕಡತ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/kn.json b/apps/files/l10n/kn.json
deleted file mode 100644
index 5fda4e75989..00000000000
--- a/apps/files/l10n/kn.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{ "translations": {
- "Storage not available" : "ಲಭ್ಯವಿಲ್ಲ ಸಂಗ್ರಹ",
- "Storage invalid" : "ಸಂಗ್ರಹ ಅಮಾನ್ಯವಾಗಿದೆ",
- "Unknown error" : "ಗೊತ್ತಿಲ್ಲದ ದೋಷ",
- "Unable to set upload directory." : "ಪೇರಿಸವ ಕೋಶವನ್ನು ಹೊಂದಿಸಲಾಗಲಿಲ್ಲ.",
- "Invalid Token" : "ಅಮಾನ್ಯ ಸಾಂಕೇತಿಕ",
- "No file was uploaded. Unknown error" : "ಕಡತ ವರ್ಗಾವಣೆ ಅಜ್ಞಾತ ದೋಷದಿಂದ ವಿಪುಲವಾಗಿದೆ",
- "There is no error, the file uploaded with success" : "ವರ್ಗಾವಣೆ ಯಾವುದೇ ದೋಷ ಕಂಡುಬರದೆ ಯಶಸ್ವಿಯಾಗಿದೆ",
- "The uploaded file was only partially uploaded" : "ವರ್ಗಾವಣೆ ಮಾಡಲಾಗುತ್ತಿದ್ದ ಕಡತವನ್ನು ಭಾಗಶಃ ಮಾತ್ರ ಪೇರಿಸಲು ಸಾದ್ಯವಾಗಿದೆ",
- "No file was uploaded" : "ವರ್ಗಾವಣೆಗೆ ಯಾವುದೇ ಕಡತಗಳು ಕಂಡುಬಂದಿಲ್ಲ",
- "Missing a temporary folder" : "ತಾತ್ಕಾಲಿಕ ಕಡತಕೋಶ ದೊರೆಕುತ್ತಿಲ್ಲ",
- "Failed to write to disk" : "ಸ್ಮರಣೆ ಸಾಧನಕ್ಕೇಬರೆಯಲು ವಿಫಲವಾಗಿದೆ",
- "Not enough storage available" : "ಲಭ್ಯವಿರುವ ಸಂಗ್ರಹ ಸಾಕಾಗುವುದಿಲ್ಲ",
- "The target folder has been moved or deleted." : "ಕೋಶದ ಉದ್ದೇಶಿತ ಸ್ಥಳ ಬದಲಾವಣೆ ಮಾಡಲಾಗಿದೆ ಅಥವಾ ಅಳಿಸಲಾಗಿದೆ.",
- "Invalid directory." : "ಅಮಾನ್ಯ ಕಡತಕೋಶ.",
- "Files" : "ಕಡತಗಳು",
- "All files" : "ಎಲ್ಲಾ ಕಡತಗಳು",
- "Home" : "ಮುಖಪುಟ",
- "Close" : "ಮುಚ್ಚು",
- "Favorites" : "ಅಚ್ಚುಮೆಚ್ಚಿನ",
- "Upload cancelled." : "ವರ್ಗಾವಣೆಯನ್ನು ರದ್ದು ಮಾಡಲಾಯಿತು.",
- "Could not get result from server." : "ಪರಿಚಾರಕ ಕಣಕದಿಂದ ಫಲಿತಾಂಶವನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ.",
- "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ",
- "Rename" : "ಮರುಹೆಸರಿಸು",
- "Delete" : "ಅಳಿಸಿ",
- "Disconnect storage" : "ಸಂಗ್ರಹ ಸಾಧನವನ್ನು ತೆಗೆದುಹಾಕಿ",
- "Unshare" : "ಹಂಚಿಕೆಯನ್ನು ಹಿಂತೆಗೆ",
- "Select" : "ಆಯ್ಕೆ ಮಾಡಿ",
- "Pending" : "ಬಾಕಿ ಇದೆ",
- "Unable to determine date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕ ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
- "Name" : "ಹೆಸರು",
- "Size" : " ಪ್ರಮಾಣ",
- "Modified" : "ಬದಲಾಯಿಸಿದ",
- "_%n folder_::_%n folders_" : ["%n ಕೋಶ(ಗಳು)"],
- "_%n file_::_%n files_" : ["%n ಕಡತ"],
- "You don’t have permission to upload or create files here" : "ನಿಮಗೆ ಇಲ್ಲಿ ಅಪ್ಲೋಡ್ ಅಥವಾ ಕಡತಗಳನ್ನು ರಚಿಸವ ಅನುಮತಿ ಇಲ್ಲ",
- "_Uploading %n file_::_Uploading %n files_" : ["%n 'ನೆ ಕಡತವನ್ನು ವರ್ಗಾಯಿಸಲಾಗುತ್ತಿದೆ"],
- "New" : "ಹೊಸ",
- "File name cannot be empty." : "ಕಡತ ಹೆಸರು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ.",
- "Favorited" : "ಅಚ್ಚುಮೆಚ್ಚಿನವು",
- "Favorite" : "ಅಚ್ಚುಮೆಚ್ಚಿನ",
- "Folder" : "ಕಡತಕೋಶ",
- "New folder" : "ಹೊಸ ಕಡತಕೋಶ",
- "Upload" : "ವರ್ಗಾಯಿಸಿ",
- "Upload (max. %s)" : "ವರ್ಗಾವಣೆ (ಗರಿಷ್ಠ %s)",
- "File handling" : "ಕಡತ ನಿರ್ವಹಣೆ",
- "Maximum upload size" : "ಗರಿಷ್ಠ ವರ್ಗಾವಣೆ ಗಾತ್ರ",
- "max. possible: " : "ಗರಿಷ್ಠ. ಸಾಧ್ಯ:",
- "Save" : "ಉಳಿಸಿ",
- "Settings" : "ಆಯ್ಕೆ",
- "WebDAV" : "WebDAV",
- "Select all" : "ಎಲ್ಲಾ ಆಯ್ಕೆ ಮಾಡಿ",
- "Upload too large" : "ದೊಡ್ಡ ಪ್ರಮಾಣದ ಪ್ರತಿಗಳನ್ನು ವರ್ಗಾವಣೆ ಮಾಡಲು ಸಾದ್ಯವಿಲ್ಲ",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ನೀವು ವರ್ಗಾಯಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಕಡತಗಳ ಗಾತ್ರ, ಈ ಗಣಕ ಕೋಶದ ಗರಿಷ್ಠ ಕಡತ ಮೀತಿಯಾನ್ನು ಮೀರುವಂತಿಲ್ಲ.",
- "No favorites" : "ಯಾವ ಅಚ್ಚುಮೆಚ್ಚಿನವುಗಳು ಇಲ್ಲ",
- "Files and folders you mark as favorite will show up here" : "ನೀವು ಗುರುತು ಮಾಡಿರುವ ನೆಚ್ಚಿನ ಕಡತ ಮತ್ತು ಕಡತಕೋಶಗಳನ್ನು ಇಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತಿದೆ",
- "Text file" : "ಸರಳಾಕ್ಷರದ ಕಡತ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js
index fff5a010699..94966faa4b9 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "즐겨찾는 파일",
"No favorites" : "즐겨찾는 항목 없음",
"More favorites" : "즐겨찾기 더 불러오기",
- "Upload (max. %s)" : "업로드(최대 %s)",
"Accept" : "수락",
"Reject" : "거절",
"Incoming ownership transfer from {user}" : "{user}의 소유권 이전 요청",
@@ -95,6 +94,7 @@ OC.L10N.register(
"Invalid filename." : "잘못된 파일 이름",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" 에서 \"{newName}\"(으)로 이름 변경함",
"Rename file" : "파일 이름 바꾸기",
+ "Folder" : "폴더",
"Pending" : "대기 중",
"Unknown date" : "알 수 없는 날짜",
"Clear filter" : "필터 지우기",
@@ -116,7 +116,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "버튼이 있는 열 머리글은 정렬할 수 있습니다.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "성능 상의 이유로 목록을 전부 표시하지 않았습니다. 목록을 탐색하면 파일들이 표시됩니다.",
"File not found" : "파일을 찾을 수 없음",
- "{count} selected" : "{count}개 선택됨",
"{usedQuotaByte} used" : "{usedQuotaByte} 사용",
"{used} of {quota} used" : "{quota} 중 {used} 사용함",
"{relative}% used" : "{relative}% 사용",
@@ -247,8 +246,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["{count}개 항목을 삭제하려 합니다."],
"Confirm deletion" : "삭제 확인",
"Cancel" : "취소",
+ "Download" : "다운로드",
"Moving \"{source}\" to \"{destination}\" …" : "\"{source}\"을(를) \"{destination}\"(으)로 이동...",
"Copying \"{source}\" to \"{destination}\" …" : "\"{source}\"을(를) \"{destination}\"(으)로 복사...",
+ "Destination is not a folder" : "대상이 폴더가 아닙니다.",
+ "This file/folder is already in that directory" : "이 파일/폴더가 이미 그 경로에 있습니다.",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "파일/폴더를 그 안이나 그 안의 폴더로 이동할 수 없습니다.",
"(copy)" : "(복사)",
"(copy %n)" : "(%n 복사)",
@@ -267,11 +269,11 @@ OC.L10N.register(
"Cancelled move or copy operation" : "이동 또는 복사 작업을 취소함",
"Open folder {displayName}" : "{displayName} 폴더 열기",
"Open in Files" : "파일에서 열기",
+ "Open locally" : "로컬에서 열기",
+ "Failed to redirect to client" : "클라이언트로 리디렉션 하는데 실패함",
"Open file locally" : "로컬에서 파일 열기",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "이제 이 파일이 당신의 기기에서 열려야 합니다. 그렇지 않다면, 데스크톱 앱이 설치되어 있는지 확인하세요.",
"Retry and close" : "재시도 후 닫기",
- "Failed to redirect to client" : "클라이언트로 리디렉션 하는데 실패함",
- "Open locally" : "로컬에서 열기",
"Rename" : "이름 바꾸기",
"Open details" : "자세한 정보 열기",
"View in folder" : "폴더에서 보기",
@@ -309,6 +311,9 @@ OC.L10N.register(
"Files moved successfully" : "파일을 성공적으로 이동함",
"Conflicts resolution skipped" : "충돌 해결 건너뜀",
"Upload cancelled" : "업로드가 취소됨",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\"(이)가 더이상 존재하지 않아 이름을 바꿀 수 없습니다.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{newName}\" 이름이 \"{dir}\" 폴더에서 이미 사용 중입니다. 다른 이름을 고르세요.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\"의 이름을 바꿀 수 없음",
"This operation is forbidden" : "이 작업이 금지됨",
"This directory is unavailable, please check the logs or contact the administrator" : "디렉터리를 사용할 수 없습니다. 로그를 확인하거나 관리자에게 연락하십시오",
"Storage is temporarily not available" : "저장소를 일시적으로 사용할 수 없음",
@@ -339,7 +344,6 @@ OC.L10N.register(
"Upload too large" : "업로드한 파일이 너무 큼",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.",
"File could not be found" : "파일을 찾을 수 없음",
- "Download" : "다운로드",
"Show list view" : "리스트 보기",
"Show grid view" : "바둑판식 보기",
"Close" : "닫기",
@@ -378,9 +382,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin}을(를) {destination}(으)로 복사함",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} 및 다른 파일 {nbfiles}개를 {destination}(으)로 복사함",
"{newName} already exists" : "{newName}이(가) 이미 존재함",
- "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." : "폴더 \"{dir}\" 내에 파일 \"{targetName}\"이(가) 이미 있습니다. 다른 이름을 사용하십시오.",
- "Could not rename \"{fileName}\"" : "\"{fileName}\"의 이름을 바꿀 수 없음",
"Could not create file \"{file}\"" : "\"{file}\"을(를) 만들 수 없음",
"Could not create file \"{file}\" because it already exists" : "파일이 이미 존재하므로 \"{file}\"을(를) 만들 수 없음",
"Could not create folder \"{dir}\" because it already exists" : "폴더가 이미 존재하므로 폴더 \"{dir}\"을(를) 만들 수 없음",
@@ -413,33 +414,22 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "직접 링크를 복사했습니다. (이 파일 및 폴더에 접근할 수 있는 사람에게만 작동)",
"Path" : "경로",
"_%n byte_::_%n bytes_" : ["%n 바이트"],
- "Favorited" : "즐겨찾기에 추가됨",
+ "Favored" : "선호함",
+ "Favor" : "선호",
"Copy direct link (only works for people who have access to this file/folder)" : "직접 링크 복사(이 파일/폴더에 접근 권한이 있는 사람만)",
"Upload file" : "파일 업로드",
- "Not favorited" : "즐겨찾기에 없음",
+ "Not favored" : "선호하지 않음",
"An error occurred while trying to update the tags" : "태그를 업데이트하는 중 오류 발생",
- "You don't have permission to upload or create files here." : "여기에 파일을 업로드하거나 만들 권한이 없습니다.",
- "Storage informations" : "저장소 정보",
- "Choose file" : "파일 선택",
- "Go to the previous folder" : "이전 폴더로 이동",
- "Open the files app settings" : "파일 앱 설정을 열기",
- "Unable to change the favourite state of the file" : "파일의 즐겨찾기 상태를 변경할 수 없음",
- "Edit file locally" : "로컬에서 파일 편집",
- "Edit online" : "온라인으로 편집",
- "Create new templates folder" : "새로운 템플릿 폴더 만들기",
+ "Upload (max. %s)" : "업로드(최대 %s)",
+ "Submitting fields…" : "입력란 제출중...",
+ "Filter filenames…" : "파일 이름 필터...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount}개 폴더"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount}개 파일"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1개 파일과 {folderCount}개 폴더"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount}개 파일과 1개 폴더"],
"{fileCount} files and {folderCount} folders" : "{fileCount}개 파일과 {folderCount}개 폴더",
- "List of favorites files and folders." : "즐겨찾는 파일과 폴더의 목록",
"Personal Files" : "개인 파일",
"Text file" : "텍스트 파일",
- "New text file.txt" : "새 텍스트 파일.txt",
- "Favored" : "선호함",
- "Favor" : "선호",
- "Not favored" : "선호하지 않음",
- "Submitting fields…" : "입력란 제출중...",
- "Filter filenames…" : "파일 이름 필터..."
+ "New text file.txt" : "새 텍스트 파일.txt"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index f8249b85406..cd4214510c4 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -52,7 +52,6 @@
"Favorite files" : "즐겨찾는 파일",
"No favorites" : "즐겨찾는 항목 없음",
"More favorites" : "즐겨찾기 더 불러오기",
- "Upload (max. %s)" : "업로드(최대 %s)",
"Accept" : "수락",
"Reject" : "거절",
"Incoming ownership transfer from {user}" : "{user}의 소유권 이전 요청",
@@ -93,6 +92,7 @@
"Invalid filename." : "잘못된 파일 이름",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" 에서 \"{newName}\"(으)로 이름 변경함",
"Rename file" : "파일 이름 바꾸기",
+ "Folder" : "폴더",
"Pending" : "대기 중",
"Unknown date" : "알 수 없는 날짜",
"Clear filter" : "필터 지우기",
@@ -114,7 +114,6 @@
"Column headers with buttons are sortable." : "버튼이 있는 열 머리글은 정렬할 수 있습니다.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "성능 상의 이유로 목록을 전부 표시하지 않았습니다. 목록을 탐색하면 파일들이 표시됩니다.",
"File not found" : "파일을 찾을 수 없음",
- "{count} selected" : "{count}개 선택됨",
"{usedQuotaByte} used" : "{usedQuotaByte} 사용",
"{used} of {quota} used" : "{quota} 중 {used} 사용함",
"{relative}% used" : "{relative}% 사용",
@@ -245,8 +244,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["{count}개 항목을 삭제하려 합니다."],
"Confirm deletion" : "삭제 확인",
"Cancel" : "취소",
+ "Download" : "다운로드",
"Moving \"{source}\" to \"{destination}\" …" : "\"{source}\"을(를) \"{destination}\"(으)로 이동...",
"Copying \"{source}\" to \"{destination}\" …" : "\"{source}\"을(를) \"{destination}\"(으)로 복사...",
+ "Destination is not a folder" : "대상이 폴더가 아닙니다.",
+ "This file/folder is already in that directory" : "이 파일/폴더가 이미 그 경로에 있습니다.",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "파일/폴더를 그 안이나 그 안의 폴더로 이동할 수 없습니다.",
"(copy)" : "(복사)",
"(copy %n)" : "(%n 복사)",
@@ -265,11 +267,11 @@
"Cancelled move or copy operation" : "이동 또는 복사 작업을 취소함",
"Open folder {displayName}" : "{displayName} 폴더 열기",
"Open in Files" : "파일에서 열기",
+ "Open locally" : "로컬에서 열기",
+ "Failed to redirect to client" : "클라이언트로 리디렉션 하는데 실패함",
"Open file locally" : "로컬에서 파일 열기",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "이제 이 파일이 당신의 기기에서 열려야 합니다. 그렇지 않다면, 데스크톱 앱이 설치되어 있는지 확인하세요.",
"Retry and close" : "재시도 후 닫기",
- "Failed to redirect to client" : "클라이언트로 리디렉션 하는데 실패함",
- "Open locally" : "로컬에서 열기",
"Rename" : "이름 바꾸기",
"Open details" : "자세한 정보 열기",
"View in folder" : "폴더에서 보기",
@@ -307,6 +309,9 @@
"Files moved successfully" : "파일을 성공적으로 이동함",
"Conflicts resolution skipped" : "충돌 해결 건너뜀",
"Upload cancelled" : "업로드가 취소됨",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\"(이)가 더이상 존재하지 않아 이름을 바꿀 수 없습니다.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{newName}\" 이름이 \"{dir}\" 폴더에서 이미 사용 중입니다. 다른 이름을 고르세요.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\"의 이름을 바꿀 수 없음",
"This operation is forbidden" : "이 작업이 금지됨",
"This directory is unavailable, please check the logs or contact the administrator" : "디렉터리를 사용할 수 없습니다. 로그를 확인하거나 관리자에게 연락하십시오",
"Storage is temporarily not available" : "저장소를 일시적으로 사용할 수 없음",
@@ -337,7 +342,6 @@
"Upload too large" : "업로드한 파일이 너무 큼",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.",
"File could not be found" : "파일을 찾을 수 없음",
- "Download" : "다운로드",
"Show list view" : "리스트 보기",
"Show grid view" : "바둑판식 보기",
"Close" : "닫기",
@@ -376,9 +380,6 @@
"Copied {origin} inside {destination}" : "{origin}을(를) {destination}(으)로 복사함",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} 및 다른 파일 {nbfiles}개를 {destination}(으)로 복사함",
"{newName} already exists" : "{newName}이(가) 이미 존재함",
- "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." : "폴더 \"{dir}\" 내에 파일 \"{targetName}\"이(가) 이미 있습니다. 다른 이름을 사용하십시오.",
- "Could not rename \"{fileName}\"" : "\"{fileName}\"의 이름을 바꿀 수 없음",
"Could not create file \"{file}\"" : "\"{file}\"을(를) 만들 수 없음",
"Could not create file \"{file}\" because it already exists" : "파일이 이미 존재하므로 \"{file}\"을(를) 만들 수 없음",
"Could not create folder \"{dir}\" because it already exists" : "폴더가 이미 존재하므로 폴더 \"{dir}\"을(를) 만들 수 없음",
@@ -411,33 +412,22 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "직접 링크를 복사했습니다. (이 파일 및 폴더에 접근할 수 있는 사람에게만 작동)",
"Path" : "경로",
"_%n byte_::_%n bytes_" : ["%n 바이트"],
- "Favorited" : "즐겨찾기에 추가됨",
+ "Favored" : "선호함",
+ "Favor" : "선호",
"Copy direct link (only works for people who have access to this file/folder)" : "직접 링크 복사(이 파일/폴더에 접근 권한이 있는 사람만)",
"Upload file" : "파일 업로드",
- "Not favorited" : "즐겨찾기에 없음",
+ "Not favored" : "선호하지 않음",
"An error occurred while trying to update the tags" : "태그를 업데이트하는 중 오류 발생",
- "You don't have permission to upload or create files here." : "여기에 파일을 업로드하거나 만들 권한이 없습니다.",
- "Storage informations" : "저장소 정보",
- "Choose file" : "파일 선택",
- "Go to the previous folder" : "이전 폴더로 이동",
- "Open the files app settings" : "파일 앱 설정을 열기",
- "Unable to change the favourite state of the file" : "파일의 즐겨찾기 상태를 변경할 수 없음",
- "Edit file locally" : "로컬에서 파일 편집",
- "Edit online" : "온라인으로 편집",
- "Create new templates folder" : "새로운 템플릿 폴더 만들기",
+ "Upload (max. %s)" : "업로드(최대 %s)",
+ "Submitting fields…" : "입력란 제출중...",
+ "Filter filenames…" : "파일 이름 필터...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount}개 폴더"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount}개 파일"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1개 파일과 {folderCount}개 폴더"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount}개 파일과 1개 폴더"],
"{fileCount} files and {folderCount} folders" : "{fileCount}개 파일과 {folderCount}개 폴더",
- "List of favorites files and folders." : "즐겨찾는 파일과 폴더의 목록",
"Personal Files" : "개인 파일",
"Text file" : "텍스트 파일",
- "New text file.txt" : "새 텍스트 파일.txt",
- "Favored" : "선호함",
- "Favor" : "선호",
- "Not favored" : "선호하지 않음",
- "Submitting fields…" : "입력란 제출중...",
- "Filter filenames…" : "파일 이름 필터..."
+ "New text file.txt" : "새 텍스트 파일.txt"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/lb.js b/apps/files/l10n/lb.js
deleted file mode 100644
index f3d4e90b881..00000000000
--- a/apps/files/l10n/lb.js
+++ /dev/null
@@ -1,118 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Storage is temporarily not available" : "Späicherplaatz temporär net erreeschbar",
- "Storage invalid" : "Späicherplatz net gülteg",
- "Unknown error" : "Et ass en onbekannte Fehler opgetrueden",
- "File could not be found" : "Datei konnt net fonnt ginn",
- "Download" : "Download",
- "Delete" : "Läschen",
- "Tags" : "Tags",
- "Home" : "Doheem",
- "Close" : "Zoumaachen",
- "Favorites" : "Favoriten",
- "Could not create folder \"{dir}\"" : "Dossier \"{dir}\" konnt net erstallt ginn",
- "Upload cancelled." : "Upload ofgebrach.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} konnt eropgelueden ginn, well et een Dossier ass oder d'Datei 0 Bytes huet",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Net genuch Späicher, du probéiers {size1} eropzelueden, et ass awer nëmmen méi {size2} fräi",
- "Target folder \"{dir}\" does not exist any more" : "Den Dossier \"{dir}\" existéiert net méi",
- "Not enough free space" : "Nët genuch Späicherplaatz",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} vun {totalSize} ({bitrate})",
- "Actions" : "Aktiounen",
- "Rename" : "Ëmbenennen",
- "Move" : "Verschieben",
- "Delete folder" : "Dossier läschen",
- "Disconnect storage" : "Net connectéierten Späicher",
- "Could not load info for file \"{file}\"" : "Et konnten keng Informatiounen zu {file} gelueden ginn",
- "Files" : "Dateien",
- "Details" : "Detailer",
- "Pending" : "Ausstoend",
- "Unable to determine date" : "Datum kann net festgestallt ginn",
- "This operation is forbidden" : "Dës Operatioun ass verbueden.",
- "This directory is unavailable, please check the logs or contact the administrator" : "Dësen Dossier ass net disponibel, w.e.g. kontrolléiert d'Logs oder kontaktéiert den Administrateur",
- "Could not move \"{file}\", target exists" : "\"{file}\" konnt beweegt ginn. Et existéiert do schonn.",
- "Could not move \"{file}\"" : "\"{file}\" konnt verreckelt ginn",
- "{newName} already exists" : "{newName} gett et schon",
- "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" konnt embenannt ginn, well et net méi existéiert",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" konnt net gesat ginn, well dësen schon am Dossier \"{dir}\" existéiert. Wiel weg. een aaneren",
- "Could not rename \"{fileName}\"" : "\"{fileName}\" konnt net embenannt ginn",
- "Could not create file \"{file}\"" : "\"{file}\" konnt net erstallt ginn",
- "Could not create file \"{file}\" because it already exists" : "\"{file}\" konnt net erstallt ginn, well des schon existéiert",
- "Could not create folder \"{dir}\" because it already exists" : "Den Dossier \"{dir}\" konnt net erstallt ginn, well desen schon existéiert",
- "Error deleting file \"{fileName}\"." : "Fehler beim läschen vun \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Keng Resultater an aneren Dossieren fir {tag}{filter}{endtag} fonnt",
- "Name" : "Numm",
- "Size" : "Gréisst",
- "Modified" : "Geännert",
- "_%n folder_::_%n folders_" : ["¦%n Dossier","¦%n Dossieren"],
- "_%n file_::_%n files_" : ["¦%n Datei","¦%n Dateien"],
- "{dirs} and {files}" : "{dirs} an {files}",
- "_including %n hidden_::_including %n hidden_" : ["Beinhaltet ¦%n verstoppte Saach","Beinhaltet ¦%n verstoppte Saachen"],
- "_Uploading %n file_::_Uploading %n files_" : ["Am Gaangen ¦%n Datei eropzelueden","Am Gaangen ¦%n Dateien eropzelueden"],
- "\"{name}\" is an invalid file name." : "\"{name}\" ass een ongültegen Numm",
- "File name cannot be empty." : "D'Datei kann net eidel sinn",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" ass een ongültegen Typ vun Datei",
- "View in folder" : "Kuk am Dossier ",
- "Path" : "Pad",
- "_%n byte_::_%n bytes_" : ["¦%n Byte","¦%n Byte"],
- "Favorited" : "Favoriséiert",
- "Favorite" : "Favorit",
- "New folder" : "Neien Dossier",
- "Upload file" : "Upload file",
- "Recent" : "Rezent",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Add to favorites",
- "An error occurred while trying to update the tags" : "Beim Updaten vun den Tags ass e Fehler entstaanen",
- "Added to favorites" : "Zu den Favoriten dobaigesat",
- "Removed from favorites" : "Vun den Favoriten eweggeholl",
- "You added {file} to your favorites" : "Du hues {file} zu denger Favortiten dobäigesat",
- "You removed {file} from your favorites" : "Du hues {file} aus dengen Favortiten geläscht",
- "File changes" : "Datei Ännerungen",
- "Created by {user}" : "Erstallt vum {user}",
- "Changed by {user}" : "Geännert vum {user}",
- "Deleted by {user}" : "Geläscht vum {user}",
- "Restored by {user}" : "Erem hier gestallt vum {user}",
- "Renamed by {user}" : "Embenannt vum {user}",
- "Moved by {user}" : "Beweegt vum {user}",
- "\"remote user\"" : "\"Remote-Benotzer\"",
- "You created {file}" : "Du hues {file} erstallt",
- "{user} created {file}" : "Den {user} huet {file} erstallt",
- "{file} was created in a public folder" : "{file} ass an engem ëffentlechen Dossier erstallt ginn",
- "You changed {file}" : "Du hues {file} verännert",
- "{user} changed {file}" : "Den {user} huet {file} verännert",
- "You deleted {file}" : "Du hues {file} geläscht",
- "{user} deleted {file}" : "Den {user} huet {file} geläscht",
- "You restored {file}" : "Du hues {file} erem hier gestallt",
- "{user} restored {file}" : "Den {user} huet {file} erem hier gestallt",
- "You renamed {oldfile} to {newfile}" : "Du hues {oldfile} zu {newfile} embenannt",
- "{user} renamed {oldfile} to {newfile}" : "Den {user} huet {oldfile} zu {newfile} embenannt",
- "You moved {oldfile} to {newfile}" : "Du hues {oldfile} zu {newfile} verreckelt",
- "{user} moved {oldfile} to {newfile}" : "Den {user} huet {oldfile} zu {newfile} verreckelt",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Eng Datei gouf zu dengen Favoriten <strong> dobäigesat </strong> oder aus dengen Favortien <strong> geläscht </strong>",
- "All files" : "All d'Fichieren",
- "Upload (max. %s)" : "Upload (maximal ¦%s)",
- "in %s" : "an %s",
- "Cancel" : "Ofbriechen",
- "Create" : "Erstellen",
- "Show hidden files" : "Weis déi verstoppten Dateien",
- "WebDAV" : "WebDAV",
- "No files in here" : "Keng Dokumenter hei",
- "Upload some content or sync with your devices!" : "Lued Dateien erop oder synchroniséier se mat dengen Appartaten",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Select all" : "All auswielen",
- "Upload too large" : "Upload ze grouss",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.",
- "Files and folders you mark as favorite will show up here" : "Hei gesais du deng Favoriten",
- "Deleted files" : "Geläschten Dateien",
- "Shared with others" : "Mat aaneren gedeelt",
- "Shared with you" : "Mat dir gedeelt",
- "Shared by link" : "Mat engem Link gedeelt",
- "Text file" : "Text Fichier",
- "New text file.txt" : "Neien Text file.txt",
- "Select" : "Auswielen",
- "You don’t have permission to upload or create files here" : "Du hues net genuch Rechter hei Dokumenter eropzelueden oder ze erstellen",
- "New" : "Nei",
- "Copied!" : "Kopéiert!",
- "Settings" : "Astellungen"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/lb.json b/apps/files/l10n/lb.json
deleted file mode 100644
index 875e22ab1f1..00000000000
--- a/apps/files/l10n/lb.json
+++ /dev/null
@@ -1,116 +0,0 @@
-{ "translations": {
- "Storage is temporarily not available" : "Späicherplaatz temporär net erreeschbar",
- "Storage invalid" : "Späicherplatz net gülteg",
- "Unknown error" : "Et ass en onbekannte Fehler opgetrueden",
- "File could not be found" : "Datei konnt net fonnt ginn",
- "Download" : "Download",
- "Delete" : "Läschen",
- "Tags" : "Tags",
- "Home" : "Doheem",
- "Close" : "Zoumaachen",
- "Favorites" : "Favoriten",
- "Could not create folder \"{dir}\"" : "Dossier \"{dir}\" konnt net erstallt ginn",
- "Upload cancelled." : "Upload ofgebrach.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} konnt eropgelueden ginn, well et een Dossier ass oder d'Datei 0 Bytes huet",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Net genuch Späicher, du probéiers {size1} eropzelueden, et ass awer nëmmen méi {size2} fräi",
- "Target folder \"{dir}\" does not exist any more" : "Den Dossier \"{dir}\" existéiert net méi",
- "Not enough free space" : "Nët genuch Späicherplaatz",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} vun {totalSize} ({bitrate})",
- "Actions" : "Aktiounen",
- "Rename" : "Ëmbenennen",
- "Move" : "Verschieben",
- "Delete folder" : "Dossier läschen",
- "Disconnect storage" : "Net connectéierten Späicher",
- "Could not load info for file \"{file}\"" : "Et konnten keng Informatiounen zu {file} gelueden ginn",
- "Files" : "Dateien",
- "Details" : "Detailer",
- "Pending" : "Ausstoend",
- "Unable to determine date" : "Datum kann net festgestallt ginn",
- "This operation is forbidden" : "Dës Operatioun ass verbueden.",
- "This directory is unavailable, please check the logs or contact the administrator" : "Dësen Dossier ass net disponibel, w.e.g. kontrolléiert d'Logs oder kontaktéiert den Administrateur",
- "Could not move \"{file}\", target exists" : "\"{file}\" konnt beweegt ginn. Et existéiert do schonn.",
- "Could not move \"{file}\"" : "\"{file}\" konnt verreckelt ginn",
- "{newName} already exists" : "{newName} gett et schon",
- "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" konnt embenannt ginn, well et net méi existéiert",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" konnt net gesat ginn, well dësen schon am Dossier \"{dir}\" existéiert. Wiel weg. een aaneren",
- "Could not rename \"{fileName}\"" : "\"{fileName}\" konnt net embenannt ginn",
- "Could not create file \"{file}\"" : "\"{file}\" konnt net erstallt ginn",
- "Could not create file \"{file}\" because it already exists" : "\"{file}\" konnt net erstallt ginn, well des schon existéiert",
- "Could not create folder \"{dir}\" because it already exists" : "Den Dossier \"{dir}\" konnt net erstallt ginn, well desen schon existéiert",
- "Error deleting file \"{fileName}\"." : "Fehler beim läschen vun \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Keng Resultater an aneren Dossieren fir {tag}{filter}{endtag} fonnt",
- "Name" : "Numm",
- "Size" : "Gréisst",
- "Modified" : "Geännert",
- "_%n folder_::_%n folders_" : ["¦%n Dossier","¦%n Dossieren"],
- "_%n file_::_%n files_" : ["¦%n Datei","¦%n Dateien"],
- "{dirs} and {files}" : "{dirs} an {files}",
- "_including %n hidden_::_including %n hidden_" : ["Beinhaltet ¦%n verstoppte Saach","Beinhaltet ¦%n verstoppte Saachen"],
- "_Uploading %n file_::_Uploading %n files_" : ["Am Gaangen ¦%n Datei eropzelueden","Am Gaangen ¦%n Dateien eropzelueden"],
- "\"{name}\" is an invalid file name." : "\"{name}\" ass een ongültegen Numm",
- "File name cannot be empty." : "D'Datei kann net eidel sinn",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" ass een ongültegen Typ vun Datei",
- "View in folder" : "Kuk am Dossier ",
- "Path" : "Pad",
- "_%n byte_::_%n bytes_" : ["¦%n Byte","¦%n Byte"],
- "Favorited" : "Favoriséiert",
- "Favorite" : "Favorit",
- "New folder" : "Neien Dossier",
- "Upload file" : "Upload file",
- "Recent" : "Rezent",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Add to favorites",
- "An error occurred while trying to update the tags" : "Beim Updaten vun den Tags ass e Fehler entstaanen",
- "Added to favorites" : "Zu den Favoriten dobaigesat",
- "Removed from favorites" : "Vun den Favoriten eweggeholl",
- "You added {file} to your favorites" : "Du hues {file} zu denger Favortiten dobäigesat",
- "You removed {file} from your favorites" : "Du hues {file} aus dengen Favortiten geläscht",
- "File changes" : "Datei Ännerungen",
- "Created by {user}" : "Erstallt vum {user}",
- "Changed by {user}" : "Geännert vum {user}",
- "Deleted by {user}" : "Geläscht vum {user}",
- "Restored by {user}" : "Erem hier gestallt vum {user}",
- "Renamed by {user}" : "Embenannt vum {user}",
- "Moved by {user}" : "Beweegt vum {user}",
- "\"remote user\"" : "\"Remote-Benotzer\"",
- "You created {file}" : "Du hues {file} erstallt",
- "{user} created {file}" : "Den {user} huet {file} erstallt",
- "{file} was created in a public folder" : "{file} ass an engem ëffentlechen Dossier erstallt ginn",
- "You changed {file}" : "Du hues {file} verännert",
- "{user} changed {file}" : "Den {user} huet {file} verännert",
- "You deleted {file}" : "Du hues {file} geläscht",
- "{user} deleted {file}" : "Den {user} huet {file} geläscht",
- "You restored {file}" : "Du hues {file} erem hier gestallt",
- "{user} restored {file}" : "Den {user} huet {file} erem hier gestallt",
- "You renamed {oldfile} to {newfile}" : "Du hues {oldfile} zu {newfile} embenannt",
- "{user} renamed {oldfile} to {newfile}" : "Den {user} huet {oldfile} zu {newfile} embenannt",
- "You moved {oldfile} to {newfile}" : "Du hues {oldfile} zu {newfile} verreckelt",
- "{user} moved {oldfile} to {newfile}" : "Den {user} huet {oldfile} zu {newfile} verreckelt",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Eng Datei gouf zu dengen Favoriten <strong> dobäigesat </strong> oder aus dengen Favortien <strong> geläscht </strong>",
- "All files" : "All d'Fichieren",
- "Upload (max. %s)" : "Upload (maximal ¦%s)",
- "in %s" : "an %s",
- "Cancel" : "Ofbriechen",
- "Create" : "Erstellen",
- "Show hidden files" : "Weis déi verstoppten Dateien",
- "WebDAV" : "WebDAV",
- "No files in here" : "Keng Dokumenter hei",
- "Upload some content or sync with your devices!" : "Lued Dateien erop oder synchroniséier se mat dengen Appartaten",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Select all" : "All auswielen",
- "Upload too large" : "Upload ze grouss",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.",
- "Files and folders you mark as favorite will show up here" : "Hei gesais du deng Favoriten",
- "Deleted files" : "Geläschten Dateien",
- "Shared with others" : "Mat aaneren gedeelt",
- "Shared with you" : "Mat dir gedeelt",
- "Shared by link" : "Mat engem Link gedeelt",
- "Text file" : "Text Fichier",
- "New text file.txt" : "Neien Text file.txt",
- "Select" : "Auswielen",
- "You don’t have permission to upload or create files here" : "Du hues net genuch Rechter hei Dokumenter eropzelueden oder ze erstellen",
- "New" : "Nei",
- "Copied!" : "Kopéiert!",
- "Settings" : "Astellungen"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/lo.js b/apps/files/l10n/lo.js
deleted file mode 100644
index 2d01379b83d..00000000000
--- a/apps/files/l10n/lo.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Storage not available" : "ບໍ່ມີພື້ນທີ່ເກັບຂໍ້ມູນ",
- "Storage invalid" : "ພື້ນທີ່ເກັບຂໍ້ມູນບໍ່ຖືກຕ້ອງ",
- "Unknown error" : "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ສາເຫດ",
- "The target folder has been moved or deleted." : "ໂຟນເດີທີ່ທ່ານເລືອກໄດ້ຖືກຍ້າຍ ຫຼື ລຶບອອກແລ້ວ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/lo.json b/apps/files/l10n/lo.json
deleted file mode 100644
index 12eea86a936..00000000000
--- a/apps/files/l10n/lo.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Storage not available" : "ບໍ່ມີພື້ນທີ່ເກັບຂໍ້ມູນ",
- "Storage invalid" : "ພື້ນທີ່ເກັບຂໍ້ມູນບໍ່ຖືກຕ້ອງ",
- "Unknown error" : "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ສາເຫດ",
- "The target folder has been moved or deleted." : "ໂຟນເດີທີ່ທ່ານເລືອກໄດ້ຖືກຍ້າຍ ຫຼື ລຶບອອກແລ້ວ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js
index 595b4e82a05..4ccbe0c3198 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -49,7 +49,6 @@ OC.L10N.register(
"The destination path does not exist: %1$s" : "Paskirties kelio nėra: %1$s",
"You do not have permission to create a file at the specified location" : "Jūs neturite leidimo sukurti failą nurodytoje vietoje",
"No favorites" : "Nėra mėgstamiausių",
- "Upload (max. %s)" : "Įkelti (maks. %s)",
"Accept" : "Priimti",
"Reject" : "Atmesti",
"Incoming ownership transfer from {user}" : "Gaunamasis nuosavybės perdavimas nuo {user}",
@@ -76,6 +75,7 @@ OC.L10N.register(
"Invalid filename." : "Neteisingas failo pavadinimas.",
"Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}“ pervadintas į „{newName}“",
"Rename file" : "Pervadinti failą",
+ "Folder" : "Aplankas",
"Pending" : "Laukiantis",
"Unknown date" : "Nežinoma data",
"Clear filter" : "Išvalyti filtrą",
@@ -88,7 +88,6 @@ OC.L10N.register(
"Actions" : "Veiksmai",
"List of files and folders." : "Failų ir aplankų sąrašas.",
"File not found" : "Failas nerastas",
- "{count} selected" : "Pažymėta {count}",
"{usedQuotaByte} used" : "Naudojama {usedQuotaByte}",
"{used} of {quota} used" : "panaudota {used} iš {quota}",
"{relative}% used" : "Naudojama {relative}",
@@ -172,6 +171,7 @@ OC.L10N.register(
"Delete" : "Ištrinti",
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Jūs ketinate ištrinti {count} elementą","Jūs ketinate ištrinti {count} elementus","Jūs ketinate ištrinti {count} elementų","Jūs ketinate ištrinti {count} elementą"],
"Cancel" : "Atsisakyti",
+ "Download" : "Atsisiųsti",
"Moving \"{source}\" to \"{destination}\" …" : "Perkeliama „{source}“ į „{destination}“…",
"Copying \"{source}\" to \"{destination}\" …" : "Kopijuojama „{source}“ į „{destination}“…",
"(copy)" : "(kopija)",
@@ -185,8 +185,8 @@ OC.L10N.register(
"Move or copy operation failed" : "Perkėlimo ar kopijavimo operacija patyrė nesėkmę",
"Move or copy" : "Perkelti ar kopijuoti",
"Open folder {displayName}" : "Atverti aplanką {displayName}",
- "Retry and close" : "Bandyti dar kartą ir užverti",
"Failed to redirect to client" : "Nepavyko peradresuoti į klientą",
+ "Retry and close" : "Bandyti dar kartą ir užverti",
"Rename" : "Pervadinti",
"Open details" : "Atverti išsamesnę informaciją",
"View in folder" : "Rodyti aplanke",
@@ -212,6 +212,9 @@ OC.L10N.register(
"Some files could not be moved" : "Kai kurių failų nepavyko perkelti",
"Files copied successfully" : "Failai sėkmingai nukopijuoti",
"Files moved successfully" : "Failai sėkmingai perkelti",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Nepavyko pervadinti failo „{oldName}“, jo daugiau nebėra",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Pavadinimas „{newName}“ jau naudojamas aplanke „{dir}“. Pasirinkite kitokį pavadinimą.",
+ "Could not rename \"{oldName}\"" : "Nepavyko pervadinti „{oldName}“",
"This operation is forbidden" : "Ši operacija yra uždrausta",
"This directory is unavailable, please check the logs or contact the administrator" : "Šis katalogas neprieinamas, peržiūrėkite žurnalo įrašus arba susisiekite su administratoriumi",
"Storage is temporarily not available" : "Saugykla yra laikinai neprieinama",
@@ -236,7 +239,6 @@ OC.L10N.register(
"Upload too large" : "Įkėlimui failas per didelis",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Bandomų įkelti failų dydis viršija maksimalų, šiame serveryje leidžiamų įkelti failų dydį.",
"File could not be found" : "Nepavyko rasti failo",
- "Download" : "Atsisiųsti",
"Show list view" : "Rodyti sąrašo rodinį",
"Show grid view" : "Rodyti tinklelio rodinį",
"Close" : "Užverti",
@@ -274,9 +276,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Nukopijuota {origin} aplanke {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Nukopijuota {origin} ir dar {nbfiles} failus aplanke {destination}",
"{newName} already exists" : "{newName} jau yra",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nepavyko pervadinti failo „{fileName}“, jo daugiau nebėra",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Pavadinimas „{targetName}“ jau naudojamas aplanke „{dir}“. Pasirinkite kitokį pavadinimą.",
- "Could not rename \"{fileName}\"" : "Nepavyko pervadinti failo „{fileName}“",
"Could not create file \"{file}\"" : "Nepavyko sukurti failo „{file}“",
"Could not create file \"{file}\" because it already exists" : "Nepavyko sukurti failo „{file}“, nes jis jau yra",
"Could not create folder \"{dir}\" because it already exists" : "Nepavyko sukurti aplanko „{dir}“, nes jis jau yra",
@@ -303,22 +302,17 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Tiesioginė nuoroda buvo nukopijuota (veiks tik žmonėms, turintiems prieigą prie šio failo/aplanko)",
"Path" : "Kelias",
"_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitų"],
- "Favorited" : "Pažymėtas mėgstamu",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopijuoti tiesioginę nuorodą (veiks tik žmonėms, turintiems prieigą prie šio failo/aplanko)",
"Upload file" : "Įkelti failą",
- "Not favorited" : "Nepažymėtas mėgstamu",
"An error occurred while trying to update the tags" : "Įvyko klaida bandant atnaujinti žymas",
- "Storage informations" : "Informacija apie saugyklą",
- "Go to the previous folder" : "Eiti į ankstesnį aplanką",
- "Unable to change the favourite state of the file" : "Nepavyksta pakeisti failo Lankomiausiųjų būsenos",
+ "Upload (max. %s)" : "Įkelti (maks. %s)",
+ "Filter filenames…" : "Filtruoti failų pavadinimus…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} aplankas","{folderCount} aplankai","{folderCount} aplankų","{folderCount} aplankas"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} failas","{fileCount} failai","{fileCount} failų","{fileCount} failas"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 failas ir {folderCount} aplankas","1 failas ir {folderCount} aplankai","1 failas ir {folderCount} aplankų","1 failas ir {folderCount} aplankas"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} failas ir 1 aplankas","{fileCount} failai ir 1 aplankas","{fileCount} failų ir 1 aplankas","{fileCount} failas ir 1 aplankas"],
- "List of favorites files and folders." : "Mėgstamų failų ir aplankų sąrašas.",
"Personal Files" : "Asmeniniai failai",
"Text file" : "Tekstinis failas",
- "New text file.txt" : "Naujas tekstinis failas.txt",
- "Filter filenames…" : "Filtruoti failų pavadinimus…"
+ "New text file.txt" : "Naujas tekstinis failas.txt"
},
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index 3e86f7bbdf5..02237ec309f 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -47,7 +47,6 @@
"The destination path does not exist: %1$s" : "Paskirties kelio nėra: %1$s",
"You do not have permission to create a file at the specified location" : "Jūs neturite leidimo sukurti failą nurodytoje vietoje",
"No favorites" : "Nėra mėgstamiausių",
- "Upload (max. %s)" : "Įkelti (maks. %s)",
"Accept" : "Priimti",
"Reject" : "Atmesti",
"Incoming ownership transfer from {user}" : "Gaunamasis nuosavybės perdavimas nuo {user}",
@@ -74,6 +73,7 @@
"Invalid filename." : "Neteisingas failo pavadinimas.",
"Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}“ pervadintas į „{newName}“",
"Rename file" : "Pervadinti failą",
+ "Folder" : "Aplankas",
"Pending" : "Laukiantis",
"Unknown date" : "Nežinoma data",
"Clear filter" : "Išvalyti filtrą",
@@ -86,7 +86,6 @@
"Actions" : "Veiksmai",
"List of files and folders." : "Failų ir aplankų sąrašas.",
"File not found" : "Failas nerastas",
- "{count} selected" : "Pažymėta {count}",
"{usedQuotaByte} used" : "Naudojama {usedQuotaByte}",
"{used} of {quota} used" : "panaudota {used} iš {quota}",
"{relative}% used" : "Naudojama {relative}",
@@ -170,6 +169,7 @@
"Delete" : "Ištrinti",
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Jūs ketinate ištrinti {count} elementą","Jūs ketinate ištrinti {count} elementus","Jūs ketinate ištrinti {count} elementų","Jūs ketinate ištrinti {count} elementą"],
"Cancel" : "Atsisakyti",
+ "Download" : "Atsisiųsti",
"Moving \"{source}\" to \"{destination}\" …" : "Perkeliama „{source}“ į „{destination}“…",
"Copying \"{source}\" to \"{destination}\" …" : "Kopijuojama „{source}“ į „{destination}“…",
"(copy)" : "(kopija)",
@@ -183,8 +183,8 @@
"Move or copy operation failed" : "Perkėlimo ar kopijavimo operacija patyrė nesėkmę",
"Move or copy" : "Perkelti ar kopijuoti",
"Open folder {displayName}" : "Atverti aplanką {displayName}",
- "Retry and close" : "Bandyti dar kartą ir užverti",
"Failed to redirect to client" : "Nepavyko peradresuoti į klientą",
+ "Retry and close" : "Bandyti dar kartą ir užverti",
"Rename" : "Pervadinti",
"Open details" : "Atverti išsamesnę informaciją",
"View in folder" : "Rodyti aplanke",
@@ -210,6 +210,9 @@
"Some files could not be moved" : "Kai kurių failų nepavyko perkelti",
"Files copied successfully" : "Failai sėkmingai nukopijuoti",
"Files moved successfully" : "Failai sėkmingai perkelti",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Nepavyko pervadinti failo „{oldName}“, jo daugiau nebėra",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Pavadinimas „{newName}“ jau naudojamas aplanke „{dir}“. Pasirinkite kitokį pavadinimą.",
+ "Could not rename \"{oldName}\"" : "Nepavyko pervadinti „{oldName}“",
"This operation is forbidden" : "Ši operacija yra uždrausta",
"This directory is unavailable, please check the logs or contact the administrator" : "Šis katalogas neprieinamas, peržiūrėkite žurnalo įrašus arba susisiekite su administratoriumi",
"Storage is temporarily not available" : "Saugykla yra laikinai neprieinama",
@@ -234,7 +237,6 @@
"Upload too large" : "Įkėlimui failas per didelis",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Bandomų įkelti failų dydis viršija maksimalų, šiame serveryje leidžiamų įkelti failų dydį.",
"File could not be found" : "Nepavyko rasti failo",
- "Download" : "Atsisiųsti",
"Show list view" : "Rodyti sąrašo rodinį",
"Show grid view" : "Rodyti tinklelio rodinį",
"Close" : "Užverti",
@@ -272,9 +274,6 @@
"Copied {origin} inside {destination}" : "Nukopijuota {origin} aplanke {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Nukopijuota {origin} ir dar {nbfiles} failus aplanke {destination}",
"{newName} already exists" : "{newName} jau yra",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nepavyko pervadinti failo „{fileName}“, jo daugiau nebėra",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Pavadinimas „{targetName}“ jau naudojamas aplanke „{dir}“. Pasirinkite kitokį pavadinimą.",
- "Could not rename \"{fileName}\"" : "Nepavyko pervadinti failo „{fileName}“",
"Could not create file \"{file}\"" : "Nepavyko sukurti failo „{file}“",
"Could not create file \"{file}\" because it already exists" : "Nepavyko sukurti failo „{file}“, nes jis jau yra",
"Could not create folder \"{dir}\" because it already exists" : "Nepavyko sukurti aplanko „{dir}“, nes jis jau yra",
@@ -301,22 +300,17 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Tiesioginė nuoroda buvo nukopijuota (veiks tik žmonėms, turintiems prieigą prie šio failo/aplanko)",
"Path" : "Kelias",
"_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitų"],
- "Favorited" : "Pažymėtas mėgstamu",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopijuoti tiesioginę nuorodą (veiks tik žmonėms, turintiems prieigą prie šio failo/aplanko)",
"Upload file" : "Įkelti failą",
- "Not favorited" : "Nepažymėtas mėgstamu",
"An error occurred while trying to update the tags" : "Įvyko klaida bandant atnaujinti žymas",
- "Storage informations" : "Informacija apie saugyklą",
- "Go to the previous folder" : "Eiti į ankstesnį aplanką",
- "Unable to change the favourite state of the file" : "Nepavyksta pakeisti failo Lankomiausiųjų būsenos",
+ "Upload (max. %s)" : "Įkelti (maks. %s)",
+ "Filter filenames…" : "Filtruoti failų pavadinimus…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} aplankas","{folderCount} aplankai","{folderCount} aplankų","{folderCount} aplankas"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} failas","{fileCount} failai","{fileCount} failų","{fileCount} failas"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 failas ir {folderCount} aplankas","1 failas ir {folderCount} aplankai","1 failas ir {folderCount} aplankų","1 failas ir {folderCount} aplankas"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} failas ir 1 aplankas","{fileCount} failai ir 1 aplankas","{fileCount} failų ir 1 aplankas","{fileCount} failas ir 1 aplankas"],
- "List of favorites files and folders." : "Mėgstamų failų ir aplankų sąrašas.",
"Personal Files" : "Asmeniniai failai",
"Text file" : "Tekstinis failas",
- "New text file.txt" : "Naujas tekstinis failas.txt",
- "Filter filenames…" : "Filtruoti failų pavadinimus…"
+ "New text file.txt" : "Naujas tekstinis failas.txt"
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/lv.js b/apps/files/l10n/lv.js
deleted file mode 100644
index 91e029da7b8..00000000000
--- a/apps/files/l10n/lv.js
+++ /dev/null
@@ -1,152 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "Datni nevar atrast",
- "Move or copy" : "Pārvietot vai kopēt",
- "Download" : "Lejupielādēt",
- "Delete" : "Dzēst",
- "Tags" : "Birkas",
- "Show list view" : "Rādīt saraksta skatu",
- "Show grid view" : "Rādīt režģa skatu",
- "Home" : "Mājas",
- "Close" : "Aizvērt",
- "Could not create folder \"{dir}\"" : "Nevarēja izveidot mapi \"{dir}\"",
- "This will stop your current uploads." : "Tādējādi tiks pārtraukta jūsu pašreizējā augšupielāde.",
- "Upload cancelled." : "Augšupielāde ir atcelta.",
- "Processing files …" : "Notiek datņu apstrāde …",
- "…" : "…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Neizdodas augšupielādēt {filename}, jo tā ir vai nu mape vai 0 baitu saturoša datne.",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nav pietiekami daudz brīvas vietas. Tiek augšupielādēti {size1}, bet pieejami tikai {size2}",
- "Target folder \"{dir}\" does not exist any more" : "Mape \"{dir}\" vairs neeksistē",
- "Not enough free space" : "Nav pietiekami daudz brīvas vietas",
- "An unknown error has occurred" : "Radusies nezināma kļūda",
- "Uploading …" : "Augšupielādē…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} no {totalSize} ({bitrate})",
- "Actions" : "Darbības",
- "Rename" : "Pārsaukt",
- "Move" : "Pārvietot",
- "Copy" : "Kopēt",
- "Open" : "Atvērt",
- "Delete file" : "Dzēst datni",
- "Delete folder" : "Dzēst mapi",
- "Disconnect storage" : "Atvienot glabātuvi",
- "Could not load info for file \"{file}\"" : "Nevar ielādēt informāciju par datni \"{file}\"",
- "Files" : "Datnes",
- "Details" : "Detaļas",
- "Pending" : "Gaida savu kārtu",
- "Unable to determine date" : "Neizdevās noteikt datumu",
- "This operation is forbidden" : "Šī darbība ir aizliegta",
- "This directory is unavailable, please check the logs or contact the administrator" : "Šis direktorijs nav pieejams, lūdzu pārbaudiet žurnālus vai sazinieties ar administratoru",
- "Storage is temporarily not available" : "Glabātuve īslaicīgi nav pieejama",
- "Could not move \"{file}\", target exists" : "Nevarēja pārvietot \"{file}\", mērķis eksistē",
- "Could not move \"{file}\"" : "Nevarēja pārvietot \"{file}\"",
- "copy" : "kopēt",
- "{newName} already exists" : "{newName} jau eksistē",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nevarēja pārsaukt \"{fileName}\", tā vairs neeksistē",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nosaukums \"{targetName}\" jau tiek izmantots mapē \"{dir}\". Lūdzu izvēlies citu nosaukumu.",
- "Could not rename \"{fileName}\"" : "Nevarēja pārsaukt \"{fileName}\"",
- "Could not create file \"{file}\"" : "Nevarēja izveidot datni \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "Nevarēja izveidot datni \"{file}\", jo tā jau eksistē",
- "Could not create folder \"{dir}\" because it already exists" : "Nevarēja izveidot mapi \"{dir}\", jo tā jau eksistē",
- "Error deleting file \"{fileName}\"." : "Kļūda dzēšot datni \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Nav nekas atrasts citā mapēs {tag}{filter}{endtag}",
- "Name" : "Nosaukums",
- "Size" : "Izmērs",
- "Modified" : "Mainīts",
- "_%n folder_::_%n folders_" : ["%n mapes","%n mape","%n mapes"],
- "_%n file_::_%n files_" : ["%n datnes","%n datne","%n datnes"],
- "{dirs} and {files}" : "{dirs} un {files}",
- "_including %n hidden_::_including %n hidden_" : ["ieskaitot %n paslēptos","ieskaitot %n paslēptos","ieskaitot %n paslēptos"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n","Augšupielāde %n failu","Augšupielādē %n datnes"],
- "New" : "Jauns",
- "\"{name}\" is an invalid file name." : "\"{name}\" ir nepareizs datnes nosaukums.",
- "File name cannot be empty." : "Datnes nosaukums nevar būt tukšs.",
- "\"/\" is not allowed inside a file name." : "\"/\" nav atļauts faila nosaukumā.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" nav atļauts faila tips",
- "View in folder" : "Skatīt mapē",
- "Path" : "Ceļš",
- "_%n byte_::_%n bytes_" : ["%n baiti","%n baits","%n baiti"],
- "Favorited" : "Favorīti",
- "Favorite" : "Iecienītais",
- "New folder" : "Jauna mape",
- "Create new folder" : "Izveidot jaunu mapi",
- "Upload file" : "Augšupielādēt datni",
- "Recent" : "Nesenās",
- "Remove from favorites" : "Noņemt no favorītiem",
- "Add to favorites" : "Pievienot izlasei",
- "An error occurred while trying to update the tags" : "Notika kļūda mēģinot atjaunot birkas",
- "Added to favorites" : "Pievienot favorītiem",
- "Removed from favorites" : "Noņemt no favorītiem",
- "You added {file} to your favorites" : "Pievienoji {file} saviem favorītiem",
- "You removed {file} from your favorites" : "Noņēmi {file} no saviem favorītiem",
- "Favorites" : "Iecienītie",
- "File changes" : "Datnes izmaiņas",
- "Created by {user}" : "Izveidoja {user}",
- "Changed by {user}" : "Izmainīja {user}",
- "Deleted by {user}" : "Dzēsa {user}",
- "Restored by {user}" : "Atjaunoja {user}",
- "Renamed by {user}" : "Pārdēvēja {user}",
- "Moved by {user}" : "Pārvietoja {user}",
- "\"remote user\"" : "\"attālināts lietotājs\"",
- "You created {file}" : "Jūs izveidojāt {file}",
- "{user} created {file}" : "{user} izveidoja {file}",
- "{file} was created in a public folder" : "{file} tika izveidots publiskajā mapē",
- "You changed {file}" : "Jūs izmainījāt {file}",
- "{user} changed {file}" : "{user} mainīts {file}",
- "You deleted {file}" : "Jūs izdzēsāt {file}",
- "{user} deleted {file}" : "{user} izdzēsa {file}",
- "You restored {file}" : "Tu atjaunoji {file}",
- "{user} restored {file}" : "{user} atjaunoja {file}",
- "You renamed {oldfile} to {newfile}" : "Pārdēvēji {oldfile} uz {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} pārdēvēja {oldfile} uz {newfile}",
- "You moved {oldfile} to {newfile}" : "Pārvietoji {oldfile} uz {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} pārvietoja {oldfile} uz {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Datne ir pievienota vai noņemta no jūsu <strong>favorītiem</strong>",
- "A file or folder has been <strong>changed</strong>" : "<strong>Izmainīta</strong> datne vai mape",
- "Upload (max. %s)" : "Augšupielādēt (maks. %s)",
- "Accept" : "Akceptēt",
- "Reject" : "Noraidīt",
- "in %s" : "iekš %s",
- "Folder name" : "Mapes nosaukums",
- "Select all" : "Atzīmēt visu",
- "File not found" : "Datne nav atrasta",
- "Change" : "Mainīt",
- "Unknown error" : "Nezināma kļūda",
- "No files in here" : "Šeit nav datņu",
- "Upload some content or sync with your devices!" : "Augšupielādē kaut ko vai sinhronizē saturu ar savām ierīcēm!",
- "Go back" : "Atpakaļ",
- "Share" : "Dalīties",
- "Shared by link" : "Koplietots ar saiti",
- "Shared" : "Koplietots",
- "Files settings" : "Failu iestatījumi",
- "Show hidden files" : "Rādīt slēptās datnes",
- "Crop image previews" : "Apgriezt attēlu priekšskatījumus",
- "Additional settings" : "Papildu iestatījumi",
- "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",
- "Create" : "Izveidot",
- "Delete permanently" : "Dzēst pavisam",
- "Open details" : "Atvērt detaļas",
- "Files and folders you mark as favorite will show up here" : "Datnes un mapes, ko atzīmēsiet kā favorītus, tiks rādīti šeit",
- "All files" : "Visas datnes",
- "No entries found in this folder" : "Šajā mapē nekas nav atrasts",
- "Upload too large" : "Datne ir par lielu, lai to augšupielādētu",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu",
- "Text file" : "Teksta datne",
- "New text file.txt" : "Jauna teksta datne.txt",
- "Storage invalid" : "Nepareiza glabātuve",
- "Unlimited" : "Neierobežota",
- "Cancel" : "Atcelt",
- "%s used" : "%s izmantoti",
- "%1$s of %2$s used" : "%1$s no %2$s lietoti",
- "Toggle grid view" : "Pārslēgt režģa skatu",
- "Deleted files" : "Dzēstās datnes",
- "Shares" : "Koplietots",
- "Shared with others" : "Koplietots ar citiem",
- "Shared with you" : "Koplietots ar tevi",
- "Deleted shares" : "Dzēstās koplietotnes",
- "Pending shares" : "Gaidošie koplietojumi",
- "Choose" : "Izvēlies"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/files/l10n/lv.json b/apps/files/l10n/lv.json
deleted file mode 100644
index a67f816471b..00000000000
--- a/apps/files/l10n/lv.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{ "translations": {
- "File could not be found" : "Datni nevar atrast",
- "Move or copy" : "Pārvietot vai kopēt",
- "Download" : "Lejupielādēt",
- "Delete" : "Dzēst",
- "Tags" : "Birkas",
- "Show list view" : "Rādīt saraksta skatu",
- "Show grid view" : "Rādīt režģa skatu",
- "Home" : "Mājas",
- "Close" : "Aizvērt",
- "Could not create folder \"{dir}\"" : "Nevarēja izveidot mapi \"{dir}\"",
- "This will stop your current uploads." : "Tādējādi tiks pārtraukta jūsu pašreizējā augšupielāde.",
- "Upload cancelled." : "Augšupielāde ir atcelta.",
- "Processing files …" : "Notiek datņu apstrāde …",
- "…" : "…",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Neizdodas augšupielādēt {filename}, jo tā ir vai nu mape vai 0 baitu saturoša datne.",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nav pietiekami daudz brīvas vietas. Tiek augšupielādēti {size1}, bet pieejami tikai {size2}",
- "Target folder \"{dir}\" does not exist any more" : "Mape \"{dir}\" vairs neeksistē",
- "Not enough free space" : "Nav pietiekami daudz brīvas vietas",
- "An unknown error has occurred" : "Radusies nezināma kļūda",
- "Uploading …" : "Augšupielādē…",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} no {totalSize} ({bitrate})",
- "Actions" : "Darbības",
- "Rename" : "Pārsaukt",
- "Move" : "Pārvietot",
- "Copy" : "Kopēt",
- "Open" : "Atvērt",
- "Delete file" : "Dzēst datni",
- "Delete folder" : "Dzēst mapi",
- "Disconnect storage" : "Atvienot glabātuvi",
- "Could not load info for file \"{file}\"" : "Nevar ielādēt informāciju par datni \"{file}\"",
- "Files" : "Datnes",
- "Details" : "Detaļas",
- "Pending" : "Gaida savu kārtu",
- "Unable to determine date" : "Neizdevās noteikt datumu",
- "This operation is forbidden" : "Šī darbība ir aizliegta",
- "This directory is unavailable, please check the logs or contact the administrator" : "Šis direktorijs nav pieejams, lūdzu pārbaudiet žurnālus vai sazinieties ar administratoru",
- "Storage is temporarily not available" : "Glabātuve īslaicīgi nav pieejama",
- "Could not move \"{file}\", target exists" : "Nevarēja pārvietot \"{file}\", mērķis eksistē",
- "Could not move \"{file}\"" : "Nevarēja pārvietot \"{file}\"",
- "copy" : "kopēt",
- "{newName} already exists" : "{newName} jau eksistē",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nevarēja pārsaukt \"{fileName}\", tā vairs neeksistē",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nosaukums \"{targetName}\" jau tiek izmantots mapē \"{dir}\". Lūdzu izvēlies citu nosaukumu.",
- "Could not rename \"{fileName}\"" : "Nevarēja pārsaukt \"{fileName}\"",
- "Could not create file \"{file}\"" : "Nevarēja izveidot datni \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "Nevarēja izveidot datni \"{file}\", jo tā jau eksistē",
- "Could not create folder \"{dir}\" because it already exists" : "Nevarēja izveidot mapi \"{dir}\", jo tā jau eksistē",
- "Error deleting file \"{fileName}\"." : "Kļūda dzēšot datni \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Nav nekas atrasts citā mapēs {tag}{filter}{endtag}",
- "Name" : "Nosaukums",
- "Size" : "Izmērs",
- "Modified" : "Mainīts",
- "_%n folder_::_%n folders_" : ["%n mapes","%n mape","%n mapes"],
- "_%n file_::_%n files_" : ["%n datnes","%n datne","%n datnes"],
- "{dirs} and {files}" : "{dirs} un {files}",
- "_including %n hidden_::_including %n hidden_" : ["ieskaitot %n paslēptos","ieskaitot %n paslēptos","ieskaitot %n paslēptos"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n","Augšupielāde %n failu","Augšupielādē %n datnes"],
- "New" : "Jauns",
- "\"{name}\" is an invalid file name." : "\"{name}\" ir nepareizs datnes nosaukums.",
- "File name cannot be empty." : "Datnes nosaukums nevar būt tukšs.",
- "\"/\" is not allowed inside a file name." : "\"/\" nav atļauts faila nosaukumā.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" nav atļauts faila tips",
- "View in folder" : "Skatīt mapē",
- "Path" : "Ceļš",
- "_%n byte_::_%n bytes_" : ["%n baiti","%n baits","%n baiti"],
- "Favorited" : "Favorīti",
- "Favorite" : "Iecienītais",
- "New folder" : "Jauna mape",
- "Create new folder" : "Izveidot jaunu mapi",
- "Upload file" : "Augšupielādēt datni",
- "Recent" : "Nesenās",
- "Remove from favorites" : "Noņemt no favorītiem",
- "Add to favorites" : "Pievienot izlasei",
- "An error occurred while trying to update the tags" : "Notika kļūda mēģinot atjaunot birkas",
- "Added to favorites" : "Pievienot favorītiem",
- "Removed from favorites" : "Noņemt no favorītiem",
- "You added {file} to your favorites" : "Pievienoji {file} saviem favorītiem",
- "You removed {file} from your favorites" : "Noņēmi {file} no saviem favorītiem",
- "Favorites" : "Iecienītie",
- "File changes" : "Datnes izmaiņas",
- "Created by {user}" : "Izveidoja {user}",
- "Changed by {user}" : "Izmainīja {user}",
- "Deleted by {user}" : "Dzēsa {user}",
- "Restored by {user}" : "Atjaunoja {user}",
- "Renamed by {user}" : "Pārdēvēja {user}",
- "Moved by {user}" : "Pārvietoja {user}",
- "\"remote user\"" : "\"attālināts lietotājs\"",
- "You created {file}" : "Jūs izveidojāt {file}",
- "{user} created {file}" : "{user} izveidoja {file}",
- "{file} was created in a public folder" : "{file} tika izveidots publiskajā mapē",
- "You changed {file}" : "Jūs izmainījāt {file}",
- "{user} changed {file}" : "{user} mainīts {file}",
- "You deleted {file}" : "Jūs izdzēsāt {file}",
- "{user} deleted {file}" : "{user} izdzēsa {file}",
- "You restored {file}" : "Tu atjaunoji {file}",
- "{user} restored {file}" : "{user} atjaunoja {file}",
- "You renamed {oldfile} to {newfile}" : "Pārdēvēji {oldfile} uz {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} pārdēvēja {oldfile} uz {newfile}",
- "You moved {oldfile} to {newfile}" : "Pārvietoji {oldfile} uz {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} pārvietoja {oldfile} uz {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Datne ir pievienota vai noņemta no jūsu <strong>favorītiem</strong>",
- "A file or folder has been <strong>changed</strong>" : "<strong>Izmainīta</strong> datne vai mape",
- "Upload (max. %s)" : "Augšupielādēt (maks. %s)",
- "Accept" : "Akceptēt",
- "Reject" : "Noraidīt",
- "in %s" : "iekš %s",
- "Folder name" : "Mapes nosaukums",
- "Select all" : "Atzīmēt visu",
- "File not found" : "Datne nav atrasta",
- "Change" : "Mainīt",
- "Unknown error" : "Nezināma kļūda",
- "No files in here" : "Šeit nav datņu",
- "Upload some content or sync with your devices!" : "Augšupielādē kaut ko vai sinhronizē saturu ar savām ierīcēm!",
- "Go back" : "Atpakaļ",
- "Share" : "Dalīties",
- "Shared by link" : "Koplietots ar saiti",
- "Shared" : "Koplietots",
- "Files settings" : "Failu iestatījumi",
- "Show hidden files" : "Rādīt slēptās datnes",
- "Crop image previews" : "Apgriezt attēlu priekšskatījumus",
- "Additional settings" : "Papildu iestatījumi",
- "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",
- "Create" : "Izveidot",
- "Delete permanently" : "Dzēst pavisam",
- "Open details" : "Atvērt detaļas",
- "Files and folders you mark as favorite will show up here" : "Datnes un mapes, ko atzīmēsiet kā favorītus, tiks rādīti šeit",
- "All files" : "Visas datnes",
- "No entries found in this folder" : "Šajā mapē nekas nav atrasts",
- "Upload too large" : "Datne ir par lielu, lai to augšupielādētu",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu",
- "Text file" : "Teksta datne",
- "New text file.txt" : "Jauna teksta datne.txt",
- "Storage invalid" : "Nepareiza glabātuve",
- "Unlimited" : "Neierobežota",
- "Cancel" : "Atcelt",
- "%s used" : "%s izmantoti",
- "%1$s of %2$s used" : "%1$s no %2$s lietoti",
- "Toggle grid view" : "Pārslēgt režģa skatu",
- "Deleted files" : "Dzēstās datnes",
- "Shares" : "Koplietots",
- "Shared with others" : "Koplietots ar citiem",
- "Shared with you" : "Koplietots ar tevi",
- "Deleted shares" : "Dzēstās koplietotnes",
- "Pending shares" : "Gaidošie koplietojumi",
- "Choose" : "Izvēlies"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/mg.js b/apps/files/l10n/mg.js
deleted file mode 100644
index c50be1aa479..00000000000
--- a/apps/files/l10n/mg.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/mg.json b/apps/files/l10n/mg.json
deleted file mode 100644
index 210ac153bab..00000000000
--- a/apps/files/l10n/mg.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index 73102302b23..d6d7a084958 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -53,7 +53,6 @@ OC.L10N.register(
"Favorite files" : "Омилени датотеки",
"No favorites" : "Нема омилени",
"More favorites" : "Повеќе омилени",
- "Upload (max. %s)" : "Префрлање (макс. %s)",
"Accept" : "Прифати",
"Reject" : "Одбиј",
"Incoming ownership transfer from {user}" : "Барање за трансфер на сопственост од {user}",
@@ -84,6 +83,7 @@ OC.L10N.register(
"This node is unavailable" : "Нодот е недостапен",
"Renamed \"{oldName}\" to \"{newName}\"" : "Преименувано \"{oldName}\" во \"{newName}\"",
"Rename file" : "Преименувај датотека",
+ "Folder" : "Папка",
"Pending" : "Чека",
"Clear filter" : "Исчисти филтри",
"Modified" : "Променето",
@@ -91,7 +91,7 @@ OC.L10N.register(
"Total rows summary" : "Резиме на вкупно редови",
"Name" : "Име",
"Size" : "Големина",
- "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" сериската акцијата е успешно извршена",
+ "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" сериската акција е успешно извршена",
"\"{displayName}\" action failed" : "\"{displayName}\" акцијата не успеа",
"Actions" : "Акции",
"(selected)" : "(означени)",
@@ -99,7 +99,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Насловите на колоните со копчиња се сортираат.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Оваа листа не е целосно прикажана поради заштеда на перформанси. Датотеките ќе се прикажуваат додека се движите низ листата.",
"File not found" : "Датотеката не е пронајдена",
- "{count} selected" : "{count} селектирани",
"{usedQuotaByte} used" : "искористено {usedQuotaByte}",
"{used} of {quota} used" : "Искористени {used} од {quota}",
"{relative}% used" : "искористено {relative}% ",
@@ -161,7 +160,7 @@ OC.L10N.register(
"Rename a file" : "Преименувај датотека",
"Delete a file" : "Избриши датотека",
"Navigation" : "Навигација",
- "View" : "Погледни",
+ "View" : "Поглед",
"You" : "Вас",
"Error while loading the file data" : "Грешка при вчитување на податоците од датотеката",
"Owner" : "Сопственик",
@@ -186,6 +185,9 @@ OC.L10N.register(
"Delete" : "Избриши",
"Confirm deletion" : "Потврди бришење",
"Cancel" : "Откажи",
+ "Download" : "Преземи",
+ "Destination is not a folder" : "Дестинацијата не е папка",
+ "This file/folder is already in that directory" : "Оваа папка/датотека се наоѓа веќе во таа папка",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Неможете да преместите датотека/папка во себеси или во подпапка во себеси",
"(copy)" : "(копирај)",
"(copy %n)" : "(копирај %n)",
@@ -201,9 +203,9 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Откажана операција на копирање или преместување",
"Open folder {displayName}" : "Отвори папка {displayName}",
"Open in Files" : "Отвори во датотеките",
- "Open file locally" : "Отвори ја датотеката локално",
- "Failed to redirect to client" : "Неуспешно пренасочување кон клиентот",
"Open locally" : "Отвори локално",
+ "Failed to redirect to client" : "Неуспешно пренасочување кон клиентот",
+ "Open file locally" : "Отвори ја датотеката локално",
"Rename" : "Преименувај",
"Open details" : "Отвори детали",
"View in folder" : "Погледни во папката",
@@ -218,19 +220,26 @@ OC.L10N.register(
"Videos" : "Видеа",
"Created new folder \"{name}\"" : "Креирана нова папка \"{name}\"",
"Unable to initialize the templates directory" : "Не може да се иницијализира папка за шаблони",
+ "Create templates folder" : "Креирај папка за шаблони",
"Templates" : "Шаблони",
"One of the dropped files could not be processed" : "Една од испуштените датотеки неможе да се процесоира",
"Some files could not be moved" : "Некои датотеки не можат да се преместат",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Неможе да се преименува \"{oldName}\", не постои повеќе",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Името \"{newName}\" веќе се користи во папката \"{dir}\". Ве молиме изберете друго име.",
+ "Could not rename \"{oldName}\"" : "Неможе да се преименува \"{oldName}\"",
"This operation is forbidden" : "Операцијата не е дозволена",
"This directory is unavailable, please check the logs or contact the administrator" : "Овој директориум е недостапен, ве молиме проверете ги логовите или контактирајте со администраторот",
"Storage is temporarily not available" : "Складиштето моментално не е достапно",
"_%n file_::_%n files_" : ["%n датотека","%n датотеки"],
"_%n folder_::_%n folders_" : ["%n папка","%n папки"],
+ "Filename must not be empty." : "Името на датотеката не може да биде празно.",
"No favorites yet" : "Сеуште нема фаворити",
"Files and folders you mark as favorite will show up here" : "Датотеките и папките кои ќе ги означите како чести, ќе се појават тука",
"All files" : "Сите датотеки",
"List of your files and folders." : "Листа на вашите датотеки и папки.",
"All folders" : "Сите папки",
+ "Personal files" : "Лични датотеки",
+ "No personal files found" : "Не се пронајдени лични датотеки ",
"Recent" : "Неодамнешни",
"List of recently modified files and folders." : "Листа на скоро изменети датотеки и папки.",
"No recently modified files" : "Нема скоро изменети датотеки",
@@ -240,7 +249,6 @@ OC.L10N.register(
"Upload too large" : "Фајлот кој се вчитува е преголем",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.",
"File could not be found" : "Неможе да се пронајде датотеката",
- "Download" : "Преземи",
"Show list view" : "Прикажи поглед во листа",
"Show grid view" : "Прикажи поглед во мрежа",
"Close" : "Затвори",
@@ -279,9 +287,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Копирана {origin} во {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Копирана {origin} и {nbfiles} други датотеки во {destination}",
"{newName} already exists" : "{newName} веќе постои",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "Неможе да се креира датотека \"{file}\" бидејќи веќе постои",
"Could not create folder \"{dir}\" because it already exists" : "Неможе да се креира папка \"{dir}\" бидејќи веќе постои",
@@ -314,25 +319,16 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Копиран е директен линк (работи само за корисници кој имаат директен пристап до датотеката/папката)",
"Path" : "Патека",
"_%n byte_::_%n bytes_" : ["%n бајт","%n бајти"],
- "Favorited" : "Омилени",
"Copy direct link (only works for people who have access to this file/folder)" : "Копирај директен линк (работи само за корисници кој имаат директен пристап до датотеката/папката)",
"Upload file" : "Прикачи датотека",
- "Not favorited" : "Нема фаворити",
"An error occurred while trying to update the tags" : "Се случи грешка додека се обидувавте да ги освежите таговите",
- "Storage informations" : "Информации за складиштето",
- "Choose file" : "Избери датотека",
- "Go to the previous folder" : "Врати се на предходната папка",
- "Open the files app settings" : "Отвори ги параметрите за датотеките",
- "Unable to change the favourite state of the file" : "Неможе да се промени статусот на омимени на датотеката",
- "Edit file locally" : "Уреди ја датотеката локално",
- "Create new templates folder" : "Креирај нова папка за шаблони",
+ "Upload (max. %s)" : "Префрлање (макс. %s)",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папки"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} датотека","{fileCount} датотеки"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 датотека и {folderCount} папки","1 датотека и {folderCount} папки"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} датотека и 1 папка","{fileCount} датотеки и 1 папка"],
"{fileCount} files and {folderCount} folders" : "{fileCount} датотеки и {folderCount} папки",
- "List of favorites files and folders." : "Листа на омилени датотеки и папки.",
- "Personal Files" : "Персонални датотеки",
+ "Personal Files" : "Лични датотеки",
"Text file" : "Текстуална датотека",
"New text file.txt" : "Нова текстуална датотека file.txt"
},
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index d3d8c86c448..30e96f21335 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -51,7 +51,6 @@
"Favorite files" : "Омилени датотеки",
"No favorites" : "Нема омилени",
"More favorites" : "Повеќе омилени",
- "Upload (max. %s)" : "Префрлање (макс. %s)",
"Accept" : "Прифати",
"Reject" : "Одбиј",
"Incoming ownership transfer from {user}" : "Барање за трансфер на сопственост од {user}",
@@ -82,6 +81,7 @@
"This node is unavailable" : "Нодот е недостапен",
"Renamed \"{oldName}\" to \"{newName}\"" : "Преименувано \"{oldName}\" во \"{newName}\"",
"Rename file" : "Преименувај датотека",
+ "Folder" : "Папка",
"Pending" : "Чека",
"Clear filter" : "Исчисти филтри",
"Modified" : "Променето",
@@ -89,7 +89,7 @@
"Total rows summary" : "Резиме на вкупно редови",
"Name" : "Име",
"Size" : "Големина",
- "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" сериската акцијата е успешно извршена",
+ "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" сериската акција е успешно извршена",
"\"{displayName}\" action failed" : "\"{displayName}\" акцијата не успеа",
"Actions" : "Акции",
"(selected)" : "(означени)",
@@ -97,7 +97,6 @@
"Column headers with buttons are sortable." : "Насловите на колоните со копчиња се сортираат.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Оваа листа не е целосно прикажана поради заштеда на перформанси. Датотеките ќе се прикажуваат додека се движите низ листата.",
"File not found" : "Датотеката не е пронајдена",
- "{count} selected" : "{count} селектирани",
"{usedQuotaByte} used" : "искористено {usedQuotaByte}",
"{used} of {quota} used" : "Искористени {used} од {quota}",
"{relative}% used" : "искористено {relative}% ",
@@ -159,7 +158,7 @@
"Rename a file" : "Преименувај датотека",
"Delete a file" : "Избриши датотека",
"Navigation" : "Навигација",
- "View" : "Погледни",
+ "View" : "Поглед",
"You" : "Вас",
"Error while loading the file data" : "Грешка при вчитување на податоците од датотеката",
"Owner" : "Сопственик",
@@ -184,6 +183,9 @@
"Delete" : "Избриши",
"Confirm deletion" : "Потврди бришење",
"Cancel" : "Откажи",
+ "Download" : "Преземи",
+ "Destination is not a folder" : "Дестинацијата не е папка",
+ "This file/folder is already in that directory" : "Оваа папка/датотека се наоѓа веќе во таа папка",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Неможете да преместите датотека/папка во себеси или во подпапка во себеси",
"(copy)" : "(копирај)",
"(copy %n)" : "(копирај %n)",
@@ -199,9 +201,9 @@
"Cancelled move or copy operation" : "Откажана операција на копирање или преместување",
"Open folder {displayName}" : "Отвори папка {displayName}",
"Open in Files" : "Отвори во датотеките",
- "Open file locally" : "Отвори ја датотеката локално",
- "Failed to redirect to client" : "Неуспешно пренасочување кон клиентот",
"Open locally" : "Отвори локално",
+ "Failed to redirect to client" : "Неуспешно пренасочување кон клиентот",
+ "Open file locally" : "Отвори ја датотеката локално",
"Rename" : "Преименувај",
"Open details" : "Отвори детали",
"View in folder" : "Погледни во папката",
@@ -216,19 +218,26 @@
"Videos" : "Видеа",
"Created new folder \"{name}\"" : "Креирана нова папка \"{name}\"",
"Unable to initialize the templates directory" : "Не може да се иницијализира папка за шаблони",
+ "Create templates folder" : "Креирај папка за шаблони",
"Templates" : "Шаблони",
"One of the dropped files could not be processed" : "Една од испуштените датотеки неможе да се процесоира",
"Some files could not be moved" : "Некои датотеки не можат да се преместат",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Неможе да се преименува \"{oldName}\", не постои повеќе",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Името \"{newName}\" веќе се користи во папката \"{dir}\". Ве молиме изберете друго име.",
+ "Could not rename \"{oldName}\"" : "Неможе да се преименува \"{oldName}\"",
"This operation is forbidden" : "Операцијата не е дозволена",
"This directory is unavailable, please check the logs or contact the administrator" : "Овој директориум е недостапен, ве молиме проверете ги логовите или контактирајте со администраторот",
"Storage is temporarily not available" : "Складиштето моментално не е достапно",
"_%n file_::_%n files_" : ["%n датотека","%n датотеки"],
"_%n folder_::_%n folders_" : ["%n папка","%n папки"],
+ "Filename must not be empty." : "Името на датотеката не може да биде празно.",
"No favorites yet" : "Сеуште нема фаворити",
"Files and folders you mark as favorite will show up here" : "Датотеките и папките кои ќе ги означите како чести, ќе се појават тука",
"All files" : "Сите датотеки",
"List of your files and folders." : "Листа на вашите датотеки и папки.",
"All folders" : "Сите папки",
+ "Personal files" : "Лични датотеки",
+ "No personal files found" : "Не се пронајдени лични датотеки ",
"Recent" : "Неодамнешни",
"List of recently modified files and folders." : "Листа на скоро изменети датотеки и папки.",
"No recently modified files" : "Нема скоро изменети датотеки",
@@ -238,7 +247,6 @@
"Upload too large" : "Фајлот кој се вчитува е преголем",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.",
"File could not be found" : "Неможе да се пронајде датотеката",
- "Download" : "Преземи",
"Show list view" : "Прикажи поглед во листа",
"Show grid view" : "Прикажи поглед во мрежа",
"Close" : "Затвори",
@@ -277,9 +285,6 @@
"Copied {origin} inside {destination}" : "Копирана {origin} во {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Копирана {origin} и {nbfiles} други датотеки во {destination}",
"{newName} already exists" : "{newName} веќе постои",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "Неможе да се креира датотека \"{file}\" бидејќи веќе постои",
"Could not create folder \"{dir}\" because it already exists" : "Неможе да се креира папка \"{dir}\" бидејќи веќе постои",
@@ -312,25 +317,16 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Копиран е директен линк (работи само за корисници кој имаат директен пристап до датотеката/папката)",
"Path" : "Патека",
"_%n byte_::_%n bytes_" : ["%n бајт","%n бајти"],
- "Favorited" : "Омилени",
"Copy direct link (only works for people who have access to this file/folder)" : "Копирај директен линк (работи само за корисници кој имаат директен пристап до датотеката/папката)",
"Upload file" : "Прикачи датотека",
- "Not favorited" : "Нема фаворити",
"An error occurred while trying to update the tags" : "Се случи грешка додека се обидувавте да ги освежите таговите",
- "Storage informations" : "Информации за складиштето",
- "Choose file" : "Избери датотека",
- "Go to the previous folder" : "Врати се на предходната папка",
- "Open the files app settings" : "Отвори ги параметрите за датотеките",
- "Unable to change the favourite state of the file" : "Неможе да се промени статусот на омимени на датотеката",
- "Edit file locally" : "Уреди ја датотеката локално",
- "Create new templates folder" : "Креирај нова папка за шаблони",
+ "Upload (max. %s)" : "Префрлање (макс. %s)",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папки"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} датотека","{fileCount} датотеки"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 датотека и {folderCount} папки","1 датотека и {folderCount} папки"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} датотека и 1 папка","{fileCount} датотеки и 1 папка"],
"{fileCount} files and {folderCount} folders" : "{fileCount} датотеки и {folderCount} папки",
- "List of favorites files and folders." : "Листа на омилени датотеки и папки.",
- "Personal Files" : "Персонални датотеки",
+ "Personal Files" : "Лични датотеки",
"Text file" : "Текстуална датотека",
"New text file.txt" : "Нова текстуална датотека file.txt"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
diff --git a/apps/files/l10n/ml.js b/apps/files/l10n/ml.js
deleted file mode 100644
index 7988332fa91..00000000000
--- a/apps/files/l10n/ml.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ml.json b/apps/files/l10n/ml.json
deleted file mode 100644
index ef5fc586755..00000000000
--- a/apps/files/l10n/ml.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/mn.js b/apps/files/l10n/mn.js
deleted file mode 100644
index 4ecce788958..00000000000
--- a/apps/files/l10n/mn.js
+++ /dev/null
@@ -1,141 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "Файл олдсонгүй",
- "Move or copy" : "Зөөх эсвэл хуулах",
- "Download" : "Татаж авах ",
- "Delete" : "Устгах",
- "Tags" : "Тэгүүд",
- "Show list view" : "Жагсаалтаар харуул",
- "Home" : "Нүүр хуудас",
- "Close" : "Хаах",
- "Could not create folder \"{dir}\"" : "\"{dir}\" ийм хавтас үүсгэж болохгүй байна",
- "This will stop your current uploads." : "Энэ үйлдэл нь одоо явагдаж буй байршуулах үйл явцыг зогсоох болно",
- "Upload cancelled." : "Байршуулалт цуцлагдсан. ",
- "Processing files …" : "Файлуудыг уншиж байна",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} нь 0kb хэмжээтэй эсвэл ижил нэр бүхий хавтас байгаа тул байршуулах боломжгүй",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "хангалттай зай үлдээгүй байна, та {size1} хэмжээтэй файл оруулж байна гэхдээ зөвхөн {size2} ийн хэмжээний сул зай үлдсэн байна",
- "Target folder \"{dir}\" does not exist any more" : "{dir} гэх байршуулах хавтас олдсонгүй",
- "Not enough free space" : "Сул зай хүрэлцэхгүй байна",
- "An unknown error has occurred" : "Үл мэдэгдэх алдаа гарлаа ",
- "File could not be uploaded" : "Файлыг байршуулах боломжгүй байна",
- "Uploading …" : "Байршуулж байна...",
- "Uploading that item is not supported" : "Энэ төрлийн файл байршуулах боломжгүй",
- "Target folder does not exist any more" : "Байршуулах хавтас олдсонгүй",
- "Operation is blocked by access control" : "Үйлдлийг \"access control\"-оос хориглосон байна",
- "Error when assembling chunks, status code {status}" : "Бүрдэл хэсгүүдийг нэгтгэхэд алдаа гарлаа. Төлвийн код {status}",
- "Actions" : "Үйл ажиллагаа",
- "Rename" : "Нэр өөрчлөх",
- "Move" : "Зөөх",
- "Copy" : "Хуулах",
- "Choose target folder" : "Зорилтот хавтасыг сонгох",
- "Open" : "Нээх",
- "Delete file" : "Файл устгах",
- "Delete folder" : "Хавтсыг устгах",
- "Disconnect storage" : "Хадгалах төхөөрөмж салгах",
- "Could not load info for file \"{file}\"" : "\"{file}\" файлын мэдээллийг уншиж чадсангүй",
- "Files" : "Файлууд",
- "Details" : "Дэлгэрэнгүй",
- "Select file \"{fileName}\"" : "\"{fileName}\" файлыг сонгох",
- "Pending" : "Хүлээгдэж байгаа",
- "Unable to determine date" : "Огноог тодорхойлох боломжгүй",
- "This operation is forbidden" : "Энэ үйлдэл хориотой",
- "This directory is unavailable, please check the logs or contact the administrator" : "Энэ хавтас байхгүй байна, үйлдлийн лог шалгах эсвэл админ хэрэглэгчтэй холбогдоно уу.",
- "Storage is temporarily not available" : "Хадгалах төхөөрөмж нь түр хугацаанд ашиглах боломжгүй байна",
- "Could not move \"{file}\", target exists" : "\"{file}\" -г зөөж чадсангүй, алдаа: target exists ",
- "Could not move \"{file}\"" : "Файлыг зөөж чадсангүй: \"{file}\"",
- "copy" : "Хуулах ",
- "Could not copy \"{file}\", target exists" : "\"{file}\"-г зөөж чадсангүй, файлын нэр давхцаж байна",
- "Could not copy \"{file}\"" : "\"{file}\"-г зөөж чадсангүй",
- "Copied {origin} inside {destination}" : "Хуулбар хийгдэж {destination} дотор {origin} байршлаа",
- "{newName} already exists" : "{newName} нэр давцаж байна",
- "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." : "\"{dir}\" хавтаст \"{targetName}\" гэх нэрийг ашигласан байна. Өөр нэр сонгоно уу.",
- "Could not rename \"{fileName}\"" : "Файлын нэрийг сольж чадсангүй: \"{fileName}\"",
- "Could not create file \"{file}\"" : "\"{file}\" файлыг үүсгэж чадсангүй",
- "Could not create file \"{file}\" because it already exists" : "Ийм нэртэй файл байгаа учир \"{file}\"-г үүсгэж чадахгүй",
- "Could not create folder \"{dir}\" because it already exists" : " \"{dir}\" хавтасыг үүсгэх боломжгүй, нэр нь давцаж байна",
- "Error deleting file \"{fileName}\"." : "\"{fileName}\" файлыг устгахад алдаа гарлаа.",
- "No search results in other folders for {tag}{filter}{endtag}" : "{tag}{filter}{endtag} хайлтад тохирох үр дүн бусад хавтасаас олсонгүй",
- "Enter more than two characters to search in other folders" : "Бусад хавтаснаас хайхын тулд хоёроос илүү тэмдэгт оруулна уу",
- "Name" : "Нэр",
- "Size" : "Хэмжээ",
- "Modified" : "Өөрчлөгдсөн",
- "_%n folder_::_%n folders_" : ["%n хавтас","%n хавтас"],
- "_%n file_::_%n files_" : ["%n файл","%n файл"],
- "{dirs} and {files}" : "{dirs} болон {files}",
- "_including %n hidden_::_including %n hidden_" : ["нуугдсан %n хамруулан","нуугдсан %n хамруулан"],
- "You do not have permission to upload or create files here" : "Та энд файл үүсгэх эсвэл байршуулах эрхгүй байна.",
- "_Uploading %n file_::_Uploading %n files_" : [" %n файл байршуулж байна","%n файл байршуулж байна"],
- "{used} of {quota} used" : "{quota} оноосноос {used} хэрэглэсэн",
- "{used} used" : "{user} хэрэглэсэн",
- "\"{name}\" is an invalid file name." : "\"{name}\" нь хүчин төгөлдөр бус файлын нэр",
- "File name cannot be empty." : "Файлын нэр хоосон байж болохгүй.",
- "\"/\" is not allowed inside a file name." : "файлын нэр \"/\" агуулж болохгүй",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" файлын төрөл буруу байна",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "{owner}-ий багтаамж удахгүй дүүрэх гэж байна. ({usedSpacePercent}%)",
- "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Хамт-ийн фолдер \"{mountPoint}\" удахгүй дүйрэх гэж байна {usedSpacePercent}%)",
- "Your storage is almost full ({usedSpacePercent}%)." : "Таны багтаамж дүүрэх дөхөж байна! ({usedSpacePercent}%)",
- "View in folder" : "Хавтасыг нээх",
- "Path" : "Зам",
- "Favorited" : "Онцолсон",
- "Favorite" : "Дуртай",
- "New folder" : "Шинэ хавтас",
- "Upload file" : "Файл байршуулах",
- "Recent" : "Сүүлийн үеийн",
- "Not favorited" : "Онцлоогүй",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Add to favorites",
- "An error occurred while trying to update the tags" : "Tag шинэчлэхэд алдаа гарлаа",
- "Added to favorites" : "Дуртай файлаар сонгов",
- "Removed from favorites" : "Онцлох файлаас хасав",
- "You added {file} to your favorites" : "{file} дуртай файлаар сонгов",
- "You removed {file} from your favorites" : "Та дуртай файлын жагсаалтаас {file}-г хасав",
- "Favorites" : "Онцолсон",
- "File changes" : "Файлын өөрчлөлтүүд",
- "Created by {user}" : "{user} үүсгэсэн",
- "Changed by {user}" : "{user} өөрчилсөн",
- "Deleted by {user}" : "{user} устгасан",
- "Restored by {user}" : "{user} сэргээсэн",
- "Renamed by {user}" : "{user} нэр солисон",
- "Moved by {user}" : "{user} зөөсөн",
- "\"remote user\"" : "алсын хэрэглэгч",
- "You created {file}" : "{file} файлыг та үүсгэв",
- "{user} created {file}" : "{user} {file}-г үүсгэв",
- "{file} was created in a public folder" : "{file} нийтийн хавтсанд үүсгэгдсэн",
- "You changed {file}" : "Та {file} файлыг өөрчлөв",
- "{user} changed {file}" : "{user} хэрэглэгч {file}-г өөрчлөв",
- "You deleted {file}" : "Та {file} файлыг устгав",
- "{user} deleted {file}" : "{user} хэрэглэгч {file} файлыг устгав",
- "You restored {file}" : "Та {file} файлыг сэргээв",
- "{user} restored {file}" : "{user} хэрэглэгч {file} файлыг сэргээв",
- "You renamed {oldfile} to {newfile}" : "Та {oldfile} файлын нэрйиг {newfile} болгож өөрчлөв",
- "{user} renamed {oldfile} to {newfile}" : "{user} хэрэглэгч {oldfile} файлын нэрийг {newfile} болгож өөрчлөв",
- "You moved {oldfile} to {newfile}" : "Та {oldfile} файлыг {newfile} болгож зөөв",
- "{user} moved {oldfile} to {newfile}" : "{user} хэрэглэгч {oldfile} файлыг {newfile} болгож зөөв",
- "A file or folder has been <strong>changed</strong>" : "Файл эсвэл хавтас амжилттай <strong>солигдлоо</strong>",
- "All files" : "Бүх файлууд",
- "Accept" : "Хүлээн зөвшөөрөх",
- "File Management" : "Файлын удирдлага",
- "Select all" : "бүгдийг сонгох",
- "Unknown error" : "Үл мэдэгдэх алдаа",
- "No files in here" : "Энд файл байхгүй байна",
- "Go back" : "Буцах",
- "Show hidden files" : "Нууцлагдсан файлыг харах",
- "Create" : "Үүсгэх",
- "Delete permanently" : "бүр мөсөн устгах",
- "No entries found in this folder" : "энэ хавтсан олдсон ч ямарч мэдээлэл олдохгүй байна",
- "Upload too large" : "маш том байршуулалт",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Таны байршуулах гэж оролдсон файлууд нь энэ сервер дээр файл байршуулах дээд хэмжээнээс хэтэрч.",
- "Text file" : "текст файл",
- "New text file.txt" : "шинэ текст file.txt",
- "Storage invalid" : "Хадгалах төхөөрөмж буруу байна",
- "Cancel" : "болиулах",
- "%1$s of %2$s used" : "%1$s-с %2$s хэрэглэсэн",
- "Deleted files" : "Устгасан файлууд",
- "Shares" : "Түгээлтүүд",
- "Shared with others" : "Бусдад түгээсэн",
- "Shared with you" : "тантай хуваалцсан",
- "Shared by link" : "Холбоосоор түгээсэн"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/mn.json b/apps/files/l10n/mn.json
deleted file mode 100644
index 229fec7746d..00000000000
--- a/apps/files/l10n/mn.json
+++ /dev/null
@@ -1,139 +0,0 @@
-{ "translations": {
- "File could not be found" : "Файл олдсонгүй",
- "Move or copy" : "Зөөх эсвэл хуулах",
- "Download" : "Татаж авах ",
- "Delete" : "Устгах",
- "Tags" : "Тэгүүд",
- "Show list view" : "Жагсаалтаар харуул",
- "Home" : "Нүүр хуудас",
- "Close" : "Хаах",
- "Could not create folder \"{dir}\"" : "\"{dir}\" ийм хавтас үүсгэж болохгүй байна",
- "This will stop your current uploads." : "Энэ үйлдэл нь одоо явагдаж буй байршуулах үйл явцыг зогсоох болно",
- "Upload cancelled." : "Байршуулалт цуцлагдсан. ",
- "Processing files …" : "Файлуудыг уншиж байна",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} нь 0kb хэмжээтэй эсвэл ижил нэр бүхий хавтас байгаа тул байршуулах боломжгүй",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "хангалттай зай үлдээгүй байна, та {size1} хэмжээтэй файл оруулж байна гэхдээ зөвхөн {size2} ийн хэмжээний сул зай үлдсэн байна",
- "Target folder \"{dir}\" does not exist any more" : "{dir} гэх байршуулах хавтас олдсонгүй",
- "Not enough free space" : "Сул зай хүрэлцэхгүй байна",
- "An unknown error has occurred" : "Үл мэдэгдэх алдаа гарлаа ",
- "File could not be uploaded" : "Файлыг байршуулах боломжгүй байна",
- "Uploading …" : "Байршуулж байна...",
- "Uploading that item is not supported" : "Энэ төрлийн файл байршуулах боломжгүй",
- "Target folder does not exist any more" : "Байршуулах хавтас олдсонгүй",
- "Operation is blocked by access control" : "Үйлдлийг \"access control\"-оос хориглосон байна",
- "Error when assembling chunks, status code {status}" : "Бүрдэл хэсгүүдийг нэгтгэхэд алдаа гарлаа. Төлвийн код {status}",
- "Actions" : "Үйл ажиллагаа",
- "Rename" : "Нэр өөрчлөх",
- "Move" : "Зөөх",
- "Copy" : "Хуулах",
- "Choose target folder" : "Зорилтот хавтасыг сонгох",
- "Open" : "Нээх",
- "Delete file" : "Файл устгах",
- "Delete folder" : "Хавтсыг устгах",
- "Disconnect storage" : "Хадгалах төхөөрөмж салгах",
- "Could not load info for file \"{file}\"" : "\"{file}\" файлын мэдээллийг уншиж чадсангүй",
- "Files" : "Файлууд",
- "Details" : "Дэлгэрэнгүй",
- "Select file \"{fileName}\"" : "\"{fileName}\" файлыг сонгох",
- "Pending" : "Хүлээгдэж байгаа",
- "Unable to determine date" : "Огноог тодорхойлох боломжгүй",
- "This operation is forbidden" : "Энэ үйлдэл хориотой",
- "This directory is unavailable, please check the logs or contact the administrator" : "Энэ хавтас байхгүй байна, үйлдлийн лог шалгах эсвэл админ хэрэглэгчтэй холбогдоно уу.",
- "Storage is temporarily not available" : "Хадгалах төхөөрөмж нь түр хугацаанд ашиглах боломжгүй байна",
- "Could not move \"{file}\", target exists" : "\"{file}\" -г зөөж чадсангүй, алдаа: target exists ",
- "Could not move \"{file}\"" : "Файлыг зөөж чадсангүй: \"{file}\"",
- "copy" : "Хуулах ",
- "Could not copy \"{file}\", target exists" : "\"{file}\"-г зөөж чадсангүй, файлын нэр давхцаж байна",
- "Could not copy \"{file}\"" : "\"{file}\"-г зөөж чадсангүй",
- "Copied {origin} inside {destination}" : "Хуулбар хийгдэж {destination} дотор {origin} байршлаа",
- "{newName} already exists" : "{newName} нэр давцаж байна",
- "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." : "\"{dir}\" хавтаст \"{targetName}\" гэх нэрийг ашигласан байна. Өөр нэр сонгоно уу.",
- "Could not rename \"{fileName}\"" : "Файлын нэрийг сольж чадсангүй: \"{fileName}\"",
- "Could not create file \"{file}\"" : "\"{file}\" файлыг үүсгэж чадсангүй",
- "Could not create file \"{file}\" because it already exists" : "Ийм нэртэй файл байгаа учир \"{file}\"-г үүсгэж чадахгүй",
- "Could not create folder \"{dir}\" because it already exists" : " \"{dir}\" хавтасыг үүсгэх боломжгүй, нэр нь давцаж байна",
- "Error deleting file \"{fileName}\"." : "\"{fileName}\" файлыг устгахад алдаа гарлаа.",
- "No search results in other folders for {tag}{filter}{endtag}" : "{tag}{filter}{endtag} хайлтад тохирох үр дүн бусад хавтасаас олсонгүй",
- "Enter more than two characters to search in other folders" : "Бусад хавтаснаас хайхын тулд хоёроос илүү тэмдэгт оруулна уу",
- "Name" : "Нэр",
- "Size" : "Хэмжээ",
- "Modified" : "Өөрчлөгдсөн",
- "_%n folder_::_%n folders_" : ["%n хавтас","%n хавтас"],
- "_%n file_::_%n files_" : ["%n файл","%n файл"],
- "{dirs} and {files}" : "{dirs} болон {files}",
- "_including %n hidden_::_including %n hidden_" : ["нуугдсан %n хамруулан","нуугдсан %n хамруулан"],
- "You do not have permission to upload or create files here" : "Та энд файл үүсгэх эсвэл байршуулах эрхгүй байна.",
- "_Uploading %n file_::_Uploading %n files_" : [" %n файл байршуулж байна","%n файл байршуулж байна"],
- "{used} of {quota} used" : "{quota} оноосноос {used} хэрэглэсэн",
- "{used} used" : "{user} хэрэглэсэн",
- "\"{name}\" is an invalid file name." : "\"{name}\" нь хүчин төгөлдөр бус файлын нэр",
- "File name cannot be empty." : "Файлын нэр хоосон байж болохгүй.",
- "\"/\" is not allowed inside a file name." : "файлын нэр \"/\" агуулж болохгүй",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" файлын төрөл буруу байна",
- "Storage of {owner} is almost full ({usedSpacePercent}%)." : "{owner}-ий багтаамж удахгүй дүүрэх гэж байна. ({usedSpacePercent}%)",
- "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Хамт-ийн фолдер \"{mountPoint}\" удахгүй дүйрэх гэж байна {usedSpacePercent}%)",
- "Your storage is almost full ({usedSpacePercent}%)." : "Таны багтаамж дүүрэх дөхөж байна! ({usedSpacePercent}%)",
- "View in folder" : "Хавтасыг нээх",
- "Path" : "Зам",
- "Favorited" : "Онцолсон",
- "Favorite" : "Дуртай",
- "New folder" : "Шинэ хавтас",
- "Upload file" : "Файл байршуулах",
- "Recent" : "Сүүлийн үеийн",
- "Not favorited" : "Онцлоогүй",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Add to favorites",
- "An error occurred while trying to update the tags" : "Tag шинэчлэхэд алдаа гарлаа",
- "Added to favorites" : "Дуртай файлаар сонгов",
- "Removed from favorites" : "Онцлох файлаас хасав",
- "You added {file} to your favorites" : "{file} дуртай файлаар сонгов",
- "You removed {file} from your favorites" : "Та дуртай файлын жагсаалтаас {file}-г хасав",
- "Favorites" : "Онцолсон",
- "File changes" : "Файлын өөрчлөлтүүд",
- "Created by {user}" : "{user} үүсгэсэн",
- "Changed by {user}" : "{user} өөрчилсөн",
- "Deleted by {user}" : "{user} устгасан",
- "Restored by {user}" : "{user} сэргээсэн",
- "Renamed by {user}" : "{user} нэр солисон",
- "Moved by {user}" : "{user} зөөсөн",
- "\"remote user\"" : "алсын хэрэглэгч",
- "You created {file}" : "{file} файлыг та үүсгэв",
- "{user} created {file}" : "{user} {file}-г үүсгэв",
- "{file} was created in a public folder" : "{file} нийтийн хавтсанд үүсгэгдсэн",
- "You changed {file}" : "Та {file} файлыг өөрчлөв",
- "{user} changed {file}" : "{user} хэрэглэгч {file}-г өөрчлөв",
- "You deleted {file}" : "Та {file} файлыг устгав",
- "{user} deleted {file}" : "{user} хэрэглэгч {file} файлыг устгав",
- "You restored {file}" : "Та {file} файлыг сэргээв",
- "{user} restored {file}" : "{user} хэрэглэгч {file} файлыг сэргээв",
- "You renamed {oldfile} to {newfile}" : "Та {oldfile} файлын нэрйиг {newfile} болгож өөрчлөв",
- "{user} renamed {oldfile} to {newfile}" : "{user} хэрэглэгч {oldfile} файлын нэрийг {newfile} болгож өөрчлөв",
- "You moved {oldfile} to {newfile}" : "Та {oldfile} файлыг {newfile} болгож зөөв",
- "{user} moved {oldfile} to {newfile}" : "{user} хэрэглэгч {oldfile} файлыг {newfile} болгож зөөв",
- "A file or folder has been <strong>changed</strong>" : "Файл эсвэл хавтас амжилттай <strong>солигдлоо</strong>",
- "All files" : "Бүх файлууд",
- "Accept" : "Хүлээн зөвшөөрөх",
- "File Management" : "Файлын удирдлага",
- "Select all" : "бүгдийг сонгох",
- "Unknown error" : "Үл мэдэгдэх алдаа",
- "No files in here" : "Энд файл байхгүй байна",
- "Go back" : "Буцах",
- "Show hidden files" : "Нууцлагдсан файлыг харах",
- "Create" : "Үүсгэх",
- "Delete permanently" : "бүр мөсөн устгах",
- "No entries found in this folder" : "энэ хавтсан олдсон ч ямарч мэдээлэл олдохгүй байна",
- "Upload too large" : "маш том байршуулалт",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Таны байршуулах гэж оролдсон файлууд нь энэ сервер дээр файл байршуулах дээд хэмжээнээс хэтэрч.",
- "Text file" : "текст файл",
- "New text file.txt" : "шинэ текст file.txt",
- "Storage invalid" : "Хадгалах төхөөрөмж буруу байна",
- "Cancel" : "болиулах",
- "%1$s of %2$s used" : "%1$s-с %2$s хэрэглэсэн",
- "Deleted files" : "Устгасан файлууд",
- "Shares" : "Түгээлтүүд",
- "Shared with others" : "Бусдад түгээсэн",
- "Shared with you" : "тантай хуваалцсан",
- "Shared by link" : "Холбоосоор түгээсэн"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/mr.js b/apps/files/l10n/mr.js
deleted file mode 100644
index 7988332fa91..00000000000
--- a/apps/files/l10n/mr.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/mr.json b/apps/files/l10n/mr.json
deleted file mode 100644
index ef5fc586755..00000000000
--- a/apps/files/l10n/mr.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/ms_MY.js b/apps/files/l10n/ms_MY.js
deleted file mode 100644
index c29758cfba1..00000000000
--- a/apps/files/l10n/ms_MY.js
+++ /dev/null
@@ -1,37 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "No file was uploaded. Unknown error" : "Tiada fail dimuatnaik. Ralat tidak diketahui.",
- "There is no error, the file uploaded with success" : "Tiada ralat berlaku, fail berjaya dimuatnaik",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Saiz fail yang dimuatnaik melebihi MAX_FILE_SIZE yang ditetapkan dalam borang HTML",
- "The uploaded file was only partially uploaded" : "Fail yang dimuatnaik tidak lengkap",
- "No file was uploaded" : "Tiada fail dimuatnaik",
- "Missing a temporary folder" : "Direktori sementara hilang",
- "Failed to write to disk" : "Gagal untuk disimpan",
- "Files" : "Fail-fail",
- "Home" : "Rumah",
- "Close" : "Tutup",
- "Upload cancelled." : "Muatnaik dibatalkan.",
- "Download" : "Muat turun",
- "Rename" : "Namakan",
- "Delete" : "Padam",
- "Pending" : "Dalam proses",
- "Name" : "Nama",
- "Size" : "Saiz",
- "Modified" : "Dimodifikasi",
- "New" : "Baru",
- "Folder" : "Folder",
- "Upload" : "Muat naik",
- "You created %1$s" : "Anda telah membina %1$s",
- "%2$s created %1$s" : "%2$s membina %1$s",
- "You changed %1$s" : "Anda menukar %1$s",
- "File handling" : "Pengendalian fail",
- "Maximum upload size" : "Saiz maksimum muat naik",
- "max. possible: " : "maksimum:",
- "Save" : "Simpan",
- "Settings" : "Tetapan",
- "Upload too large" : "Muatnaik terlalu besar",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fail yang cuba dimuat naik melebihi saiz maksimum fail upload server",
- "Text file" : "Fail teks"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ms_MY.json b/apps/files/l10n/ms_MY.json
deleted file mode 100644
index c1202e3eb40..00000000000
--- a/apps/files/l10n/ms_MY.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{ "translations": {
- "No file was uploaded. Unknown error" : "Tiada fail dimuatnaik. Ralat tidak diketahui.",
- "There is no error, the file uploaded with success" : "Tiada ralat berlaku, fail berjaya dimuatnaik",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Saiz fail yang dimuatnaik melebihi MAX_FILE_SIZE yang ditetapkan dalam borang HTML",
- "The uploaded file was only partially uploaded" : "Fail yang dimuatnaik tidak lengkap",
- "No file was uploaded" : "Tiada fail dimuatnaik",
- "Missing a temporary folder" : "Direktori sementara hilang",
- "Failed to write to disk" : "Gagal untuk disimpan",
- "Files" : "Fail-fail",
- "Home" : "Rumah",
- "Close" : "Tutup",
- "Upload cancelled." : "Muatnaik dibatalkan.",
- "Download" : "Muat turun",
- "Rename" : "Namakan",
- "Delete" : "Padam",
- "Pending" : "Dalam proses",
- "Name" : "Nama",
- "Size" : "Saiz",
- "Modified" : "Dimodifikasi",
- "New" : "Baru",
- "Folder" : "Folder",
- "Upload" : "Muat naik",
- "You created %1$s" : "Anda telah membina %1$s",
- "%2$s created %1$s" : "%2$s membina %1$s",
- "You changed %1$s" : "Anda menukar %1$s",
- "File handling" : "Pengendalian fail",
- "Maximum upload size" : "Saiz maksimum muat naik",
- "max. possible: " : "maksimum:",
- "Save" : "Simpan",
- "Settings" : "Tetapan",
- "Upload too large" : "Muatnaik terlalu besar",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fail yang cuba dimuat naik melebihi saiz maksimum fail upload server",
- "Text file" : "Fail teks"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/mt_MT.js b/apps/files/l10n/mt_MT.js
deleted file mode 100644
index 2cbab15890e..00000000000
--- a/apps/files/l10n/mt_MT.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["","","",""],
- "_%n file_::_%n files_" : ["","","",""],
- "_Uploading %n file_::_Uploading %n files_" : ["","","",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["","","",""]
-},
-"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);");
diff --git a/apps/files/l10n/mt_MT.json b/apps/files/l10n/mt_MT.json
deleted file mode 100644
index f10f0a0408d..00000000000
--- a/apps/files/l10n/mt_MT.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["","","",""],
- "_%n file_::_%n files_" : ["","","",""],
- "_Uploading %n file_::_Uploading %n files_" : ["","","",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["","","",""]
-},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js
index ad344dee0b2..f200707b836 100644
--- a/apps/files/l10n/nb.js
+++ b/apps/files/l10n/nb.js
@@ -52,7 +52,6 @@ OC.L10N.register(
"Favorite files" : "Favorittfiler",
"No favorites" : "Ingen favoritter",
"More favorites" : "Flere favoritter",
- "Upload (max. %s)" : "Opplasting (maks %s)",
"Accept" : "Aksepter",
"Reject" : "Avvis",
"Incoming ownership transfer from {user}" : "Ny eierskapsoverføring fra {user}",
@@ -92,6 +91,7 @@ OC.L10N.register(
"Invalid filename." : "Ugyldig filnavn.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Omdøpte \"{oldName}\" tl \"{newName}\"",
"Rename file" : "Gi fil nytt navn",
+ "Folder" : "Mappe",
"Pending" : "Venter",
"Unknown date" : "Ukjent dato",
"Clear filter" : "Tøm filter",
@@ -112,7 +112,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Kolonneoverskrifter med knapper kan sorteres.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Denne listen er ikke fullstendig gjengitt av ytelsesgrunner. Filene gjengis når du navigerer gjennom listen.",
"File not found" : "Finner ikke filen",
- "{count} selected" : "{count} valgt",
"{usedQuotaByte} used" : "{usedQuotaByte} brukt",
"{used} of {quota} used" : "{used} av {quota} brukt",
"{relative}% used" : "{relative}% brukt",
@@ -228,8 +227,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Du er i ferd med å slette {count} element","Du er i ferd med å slette {count} elementer"],
"Confirm deletion" : "Bekreft sletting",
"Cancel" : "Avbryt",
+ "Download" : "Last ned",
"Moving \"{source}\" to \"{destination}\" …" : "Flytter \"{source}\" til \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Flytter \"{source}\" til \"{destination}\" …",
+ "Destination is not a folder" : "Målplassering er ikke en mappe",
+ "This file/folder is already in that directory" : "Denne filen/mappen er allerede i den katalogen",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan ikke flytte en fil/mappe til seg selv eller til en undermappe av seg selv",
"(copy)" : "(kopier)",
"(copy %n)" : "(kopier %n)",
@@ -248,11 +250,11 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Kansellert flytte- eller kopieroperasjon",
"Open folder {displayName}" : "Åpne mappe {displayName}",
"Open in Files" : "Åpne i Filer",
+ "Open locally" : "Åpne lokalt",
+ "Failed to redirect to client" : "Kunne ikke omdirigere til klienten",
"Open file locally" : "Åpne fil lokalt",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Filen skal nå åpnes på enheten din. Om ikke, vennligst sjekk at du har skrivebordsprogrammet installert.",
"Retry and close" : "Prøv igjen og lukk",
- "Failed to redirect to client" : "Kunne ikke omdirigere til klienten",
- "Open locally" : "Åpne lokalt",
"Rename" : "Gi nytt navn",
"Open details" : "Åpne detaljer",
"View in folder" : "Vis i mappe",
@@ -290,6 +292,9 @@ OC.L10N.register(
"Files moved successfully" : "Filer ble flyttet",
"Conflicts resolution skipped" : "Konfliktløsning hoppet over",
"Upload cancelled" : "Opplasting avbrutt",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kunne ikke omdøpe \"{oldName}\", den finnes ikke lenger",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Navnet \"{newName}\" er allerede brukt i mappen \"{dir}\". Velg et annet navn.",
+ "Could not rename \"{oldName}\"" : "Kunne ikke omdøpe \"{oldName}\"",
"This operation is forbidden" : "Operasjonen er forbudt",
"This directory is unavailable, please check the logs or contact the administrator" : "Denne mappen er utilgjengelig. Sjekk loggene eller kontakt administrator",
"Storage is temporarily not available" : "Lagring er midlertidig utilgjengelig",
@@ -320,7 +325,6 @@ OC.L10N.register(
"Upload too large" : "Filen er for stor",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å laste opp er for store til å laste opp til denne serveren.",
"File could not be found" : "Filen ble ikke funnet",
- "Download" : "Last ned",
"Show list view" : "Vis listevisning",
"Show grid view" : "Vis rutenett-visning",
"Close" : "Lukk",
@@ -359,9 +363,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Kopierte {origin} i {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopierte {origin} og {nbfiles} andre filer i {destination}",
"{newName} already exists" : "{newName} finnes allerede",
- "Could not rename \"{fileName}\", it does not exist any more" : "Klarte ikke å omdøpe \"{fileName}\", den finnes ikke lenger",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Navnet \"{targetName}\" brukes allerede i mappen \"{dir}\". Velg et annet navn.",
- "Could not rename \"{fileName}\"" : "Klarte ikke å gi \"{fileName}\" nytt navn",
"Could not create file \"{file}\"" : "Klarte ikke å opprette fil \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Klarte ikke å opprette fil \"{file}\" fordi den finnes allerede",
"Could not create folder \"{dir}\" because it already exists" : "Kunne ikke å opprette mappe \"{dir}\" fordi den finnes allerede",
@@ -394,32 +395,22 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Direkte lenke ble kopiert (fungerer bare for personer som har tilgang til denne filen / mappen)",
"Path" : "Sti",
"_%n byte_::_%n bytes_" : ["%n byte","%n byte"],
- "Favorited" : "Favorisert",
+ "Favored" : "Favorittlagt",
+ "Favor" : "Favoritt",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopier direkte lenke (fungerer bare for personer som har tilgang til denne filen / mappen)",
"Upload file" : "Last opp fil",
- "Not favorited" : "Ikke i favoritter",
+ "Not favored" : "Ikke favorittlagt",
"An error occurred while trying to update the tags" : "En feil oppsto under oppdatering av merkelappene",
- "Storage informations" : "Informasjon om lagring",
- "Choose file" : "Velg fil",
- "Go to the previous folder" : "Gå fil forrige mappe",
- "Open the files app settings" : "Åpne Filer-appens innstillinger",
- "Unable to change the favourite state of the file" : "Kan ikke endre favorittstatus til filen",
- "Edit file locally" : "Rediger fil lokalt",
- "Edit online" : "Rediger på nett",
- "Create new templates folder" : "Opprett ny malermappe",
+ "Upload (max. %s)" : "Opplasting (maks %s)",
+ "Submitting fields…" : "Sender inn felt...",
+ "Filter filenames…" : "Filtrer filnavn...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappe","{folderCount} mapper"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil og {folderCount} mappe","1 fil og {folderCount} mapper"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fil og 1 mappe","{fileCount} filer og 1 mappe"],
"{fileCount} files and {folderCount} folders" : "{fileCount} filer og {folderCount} mapper",
- "List of favorites files and folders." : "Liste over favorittfiler og -mapper.",
"Personal Files" : "Personlige filer",
"Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekstfil.txt",
- "Favored" : "Favorittlagt",
- "Favor" : "Favoritt",
- "Not favored" : "Ikke favorittlagt",
- "Submitting fields…" : "Sender inn felt...",
- "Filter filenames…" : "Filtrer filnavn..."
+ "New text file.txt" : "Ny tekstfil.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json
index b7b87dd5806..5f16935a0d2 100644
--- a/apps/files/l10n/nb.json
+++ b/apps/files/l10n/nb.json
@@ -50,7 +50,6 @@
"Favorite files" : "Favorittfiler",
"No favorites" : "Ingen favoritter",
"More favorites" : "Flere favoritter",
- "Upload (max. %s)" : "Opplasting (maks %s)",
"Accept" : "Aksepter",
"Reject" : "Avvis",
"Incoming ownership transfer from {user}" : "Ny eierskapsoverføring fra {user}",
@@ -90,6 +89,7 @@
"Invalid filename." : "Ugyldig filnavn.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Omdøpte \"{oldName}\" tl \"{newName}\"",
"Rename file" : "Gi fil nytt navn",
+ "Folder" : "Mappe",
"Pending" : "Venter",
"Unknown date" : "Ukjent dato",
"Clear filter" : "Tøm filter",
@@ -110,7 +110,6 @@
"Column headers with buttons are sortable." : "Kolonneoverskrifter med knapper kan sorteres.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Denne listen er ikke fullstendig gjengitt av ytelsesgrunner. Filene gjengis når du navigerer gjennom listen.",
"File not found" : "Finner ikke filen",
- "{count} selected" : "{count} valgt",
"{usedQuotaByte} used" : "{usedQuotaByte} brukt",
"{used} of {quota} used" : "{used} av {quota} brukt",
"{relative}% used" : "{relative}% brukt",
@@ -226,8 +225,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Du er i ferd med å slette {count} element","Du er i ferd med å slette {count} elementer"],
"Confirm deletion" : "Bekreft sletting",
"Cancel" : "Avbryt",
+ "Download" : "Last ned",
"Moving \"{source}\" to \"{destination}\" …" : "Flytter \"{source}\" til \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Flytter \"{source}\" til \"{destination}\" …",
+ "Destination is not a folder" : "Målplassering er ikke en mappe",
+ "This file/folder is already in that directory" : "Denne filen/mappen er allerede i den katalogen",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan ikke flytte en fil/mappe til seg selv eller til en undermappe av seg selv",
"(copy)" : "(kopier)",
"(copy %n)" : "(kopier %n)",
@@ -246,11 +248,11 @@
"Cancelled move or copy operation" : "Kansellert flytte- eller kopieroperasjon",
"Open folder {displayName}" : "Åpne mappe {displayName}",
"Open in Files" : "Åpne i Filer",
+ "Open locally" : "Åpne lokalt",
+ "Failed to redirect to client" : "Kunne ikke omdirigere til klienten",
"Open file locally" : "Åpne fil lokalt",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Filen skal nå åpnes på enheten din. Om ikke, vennligst sjekk at du har skrivebordsprogrammet installert.",
"Retry and close" : "Prøv igjen og lukk",
- "Failed to redirect to client" : "Kunne ikke omdirigere til klienten",
- "Open locally" : "Åpne lokalt",
"Rename" : "Gi nytt navn",
"Open details" : "Åpne detaljer",
"View in folder" : "Vis i mappe",
@@ -288,6 +290,9 @@
"Files moved successfully" : "Filer ble flyttet",
"Conflicts resolution skipped" : "Konfliktløsning hoppet over",
"Upload cancelled" : "Opplasting avbrutt",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kunne ikke omdøpe \"{oldName}\", den finnes ikke lenger",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Navnet \"{newName}\" er allerede brukt i mappen \"{dir}\". Velg et annet navn.",
+ "Could not rename \"{oldName}\"" : "Kunne ikke omdøpe \"{oldName}\"",
"This operation is forbidden" : "Operasjonen er forbudt",
"This directory is unavailable, please check the logs or contact the administrator" : "Denne mappen er utilgjengelig. Sjekk loggene eller kontakt administrator",
"Storage is temporarily not available" : "Lagring er midlertidig utilgjengelig",
@@ -318,7 +323,6 @@
"Upload too large" : "Filen er for stor",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å laste opp er for store til å laste opp til denne serveren.",
"File could not be found" : "Filen ble ikke funnet",
- "Download" : "Last ned",
"Show list view" : "Vis listevisning",
"Show grid view" : "Vis rutenett-visning",
"Close" : "Lukk",
@@ -357,9 +361,6 @@
"Copied {origin} inside {destination}" : "Kopierte {origin} i {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopierte {origin} og {nbfiles} andre filer i {destination}",
"{newName} already exists" : "{newName} finnes allerede",
- "Could not rename \"{fileName}\", it does not exist any more" : "Klarte ikke å omdøpe \"{fileName}\", den finnes ikke lenger",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Navnet \"{targetName}\" brukes allerede i mappen \"{dir}\". Velg et annet navn.",
- "Could not rename \"{fileName}\"" : "Klarte ikke å gi \"{fileName}\" nytt navn",
"Could not create file \"{file}\"" : "Klarte ikke å opprette fil \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Klarte ikke å opprette fil \"{file}\" fordi den finnes allerede",
"Could not create folder \"{dir}\" because it already exists" : "Kunne ikke å opprette mappe \"{dir}\" fordi den finnes allerede",
@@ -392,32 +393,22 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Direkte lenke ble kopiert (fungerer bare for personer som har tilgang til denne filen / mappen)",
"Path" : "Sti",
"_%n byte_::_%n bytes_" : ["%n byte","%n byte"],
- "Favorited" : "Favorisert",
+ "Favored" : "Favorittlagt",
+ "Favor" : "Favoritt",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopier direkte lenke (fungerer bare for personer som har tilgang til denne filen / mappen)",
"Upload file" : "Last opp fil",
- "Not favorited" : "Ikke i favoritter",
+ "Not favored" : "Ikke favorittlagt",
"An error occurred while trying to update the tags" : "En feil oppsto under oppdatering av merkelappene",
- "Storage informations" : "Informasjon om lagring",
- "Choose file" : "Velg fil",
- "Go to the previous folder" : "Gå fil forrige mappe",
- "Open the files app settings" : "Åpne Filer-appens innstillinger",
- "Unable to change the favourite state of the file" : "Kan ikke endre favorittstatus til filen",
- "Edit file locally" : "Rediger fil lokalt",
- "Edit online" : "Rediger på nett",
- "Create new templates folder" : "Opprett ny malermappe",
+ "Upload (max. %s)" : "Opplasting (maks %s)",
+ "Submitting fields…" : "Sender inn felt...",
+ "Filter filenames…" : "Filtrer filnavn...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mappe","{folderCount} mapper"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil og {folderCount} mappe","1 fil og {folderCount} mapper"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fil og 1 mappe","{fileCount} filer og 1 mappe"],
"{fileCount} files and {folderCount} folders" : "{fileCount} filer og {folderCount} mapper",
- "List of favorites files and folders." : "Liste over favorittfiler og -mapper.",
"Personal Files" : "Personlige filer",
"Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekstfil.txt",
- "Favored" : "Favorittlagt",
- "Favor" : "Favoritt",
- "Not favored" : "Ikke favorittlagt",
- "Submitting fields…" : "Sender inn felt...",
- "Filter filenames…" : "Filtrer filnavn..."
+ "New text file.txt" : "Ny tekstfil.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 740d9e7e6c0..71f75054622 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favoriete bestanden",
"No favorites" : "Geen favorieten",
"More favorites" : "Meer favorieten",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepteren",
"Reject" : "Afwijzen",
"Incoming ownership transfer from {user}" : "Inkomend verzoek voor eigendomsoverdracht van {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Overgezet van %1$s naar %2$s",
"Files compatibility" : "Bestandscompatibiliteit",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Toestaan om bestandsnamen te beperken om te borgen dat bestanden met alle cliënts gesynchroniseerd kunnen worden. Standaard zijn alle bestandsnamen valide die zijn toegestaan op POSIX (zoals Linux en macOS.)",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Na inschakeling van Windows-compatibele bestandsnamen, kunnen bestaande bestanden niet meer worden gewijzigd, maar kunnen ze door de eigenaar worden hernoemd naar geldige nieuwe namen.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Het is ook mogelijk om bestanden automatisch te migreren nadat deze instelling is ingeschakeld. Raadpleeg de documentatie over het occ-commando.",
"Enforce Windows compatibility" : "Dwing Windows-compatibiliteit af",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dit zal bestandsnamen blokkeren die niet toegestaan zijn op Windows-systemen, zoals gereserveerde namen of speciale tekens. Dit dwingt niet tot compatibiliteit voor hoofd- en kleine letters.",
"File Management" : "Bestandsbeheer",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Ongeldige bestandsnaam",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" hernoemd naar \"{newName}\"",
"Rename file" : "Bestand hernoemen",
+ "Folder" : "Map",
+ "Unknown file type" : "Onbekend bestandstype",
+ "{ext} image" : "{ext} afbeelding",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} tekst",
"Pending" : "In behandeling",
"Unknown date" : "Onbekende datum",
"Clear filter" : "Filter leegmaken",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Aantal rijen samenvatting",
"Toggle selection for all files and folders" : "Wijzig selectie voor alle bestanden en mappen",
"Name" : "Naam",
+ "File type" : "Bestandstype",
"Size" : "Grootte",
"\"{displayName}\" failed on some elements" : "“{displayName}” mislukt op sommige elementen",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" batchactie succesvol uitgevoerd",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Kolomkoppen met knoppen zijn sorteerbaar",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "De lijst is niet volledig verwerkt om de prestatie niet te beperken. De bestanden worden verder verwerkt als je door de lijst navigeert.",
"File not found" : "Bestand niet gevonden",
- "{count} selected" : "{count} geselecteerd",
+ "_{count} selected_::_{count} selected_" : ["{count} geselecteerd","{count} geselecteerd"],
"{usedQuotaByte} used" : "{usedQuotaByte} gebruikt",
"{used} of {quota} used" : "{used} van {quota} gebruikt",
"{relative}% used" : "{relative}% gebruikt",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Sorteer eerst favorieten",
"Sort folders before files" : "Sorteer mappen voor bestanden",
"Show hidden files" : "Toon verborgen bestanden",
+ "Show file type column" : "Toon bestandstypekolom",
"Crop image previews" : "Snij afbeeldingvoorbeelden bij",
"Enable the grid view" : "Roosterweergave inschakelen",
"Enable folder tree" : "Mappenboom inschakelen",
@@ -235,6 +244,8 @@ OC.L10N.register(
"Failed to convert files: {message}" : "Conversie van bestanden mislukt: {message} ",
"All files failed to be converted" : "De conversie van alle bestanden is mislukt",
"One file could not be converted: {message}" : "Een bestand kon niet worden geconverteerd: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["Een bestand kon niet geconverteerd worden","%n bestanden konden niet geconverteerd worden"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Een bestand succesvol geconverteerd","%n bestanden succesvol geconverteerd"],
"Files successfully converted" : "Bestanden succesvol geconverteerd",
"Failed to convert files" : "Conversie van bestanden mislukt",
"Converting file …" : "Bestand converteren ...",
@@ -257,6 +268,7 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Je staat op het punt om {count} item te verwijderen","Je staat op het punt om {count}items te verwijderen"],
"Confirm deletion" : "Bevestig verwijderen",
"Cancel" : "Annuleren",
+ "Download" : "Downloaden",
"Moving \"{source}\" to \"{destination}\" …" : "Verplaatsen \"{source}\" naar \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopiëren \"{source}\" naar \"{destination}\" …",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Je kan een bestand/map niet verplaatsen naar zichzelf of naar een subfolder van zichzelf.",
@@ -277,12 +289,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Verplaatsen of kopiëren geannuleerd.",
"Open folder {displayName}" : "Open map {displayName}",
"Open in Files" : "Open in Bestanden",
+ "Open locally" : "Lokaal openen",
+ "Failed to redirect to client" : "Omleiden naar cliënt mislukt",
"Open file locally" : "Bestand lokaal openen",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Het bestand zou nu moeten openen op je apparaat. Als dat niet het geval is, controleer dan of je de desktop app geïnstalleerd hebt.",
"Retry and close" : "Probeer opnieuw en sluiten",
"Open online" : "Open online",
- "Failed to redirect to client" : "Omleiden naar cliënt mislukt",
- "Open locally" : "Lokaal openen",
"Rename" : "Naam wijzigen",
"Open details" : "Details openen",
"View in folder" : "Bekijken in map",
@@ -320,12 +332,16 @@ OC.L10N.register(
"Files moved successfully" : "Bestanden succesvol verplaatst",
"Conflicts resolution skipped" : "Conflictoplossing overgeslagen",
"Upload cancelled" : "Uploaden geannuleerd",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kon \"{oldName}\" niet hernoemen, het bestaat niet meer",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "De naam \"{newName}\" bestaat al in map \"{dir}\". Kies een andere naam.",
+ "Could not rename \"{oldName}\"" : "Kon \"{oldName}\" niet hernoemen",
"This operation is forbidden" : "Deze taak is verboden",
"This directory is unavailable, please check the logs or contact the administrator" : "Deze map is niet beschikbaar. Verifieer de logs of neem contact op met de beheerder",
"Storage is temporarily not available" : "Opslag is tijdelijk niet beschikbaar",
"Unexpected error: {error}" : "Onverwachte fout: {error}",
"_%n file_::_%n files_" : ["%n bestand","%n bestanden"],
"_%n folder_::_%n folders_" : ["%n map","%n mappen"],
+ "_%n hidden_::_%n hidden_" : ["%n onzichtbaar","%n onzichtbaar"],
"Filename must not be empty." : "Bestandsnaam mag niet leeg zijn",
"\"{char}\" is not allowed inside a filename." : "\"{char}\"is niet toegestaan in een bestandsnaam",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" is een greserveerde naam en niet toegestaan voor bestandsnamen",
@@ -350,7 +366,6 @@ OC.L10N.register(
"Upload too large" : "Upload is te groot",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "De bestanden die je probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server.",
"File could not be found" : "Bestand kon niet worden gevonden",
- "Download" : "Downloaden",
"Show list view" : "Toon lijstweergave",
"Show grid view" : "Toon roosterweergave",
"Close" : "Sluiten",
@@ -389,9 +404,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Kopieerde {origin} binnen {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Heeft {origin} en {nbfiles} andere bestanden in {destination} gekopieerd",
"{newName} already exists" : "{newName} bestaat al",
- "Could not rename \"{fileName}\", it does not exist any more" : "Kon \"{fileName}\" niet hernoemen, het bestaat niet meer",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "De naam \"{targetName}\" bestaat al in map \"{dir}\". Kies een andere naam.",
- "Could not rename \"{fileName}\"" : "Kon \"{fileName}\" niet hernoemen",
"Could not create file \"{file}\"" : "Kon \"{file}\" niet aanmaken",
"Could not create file \"{file}\" because it already exists" : "Kon \"{file}\" niet aanmaken, omdat het al bestaat",
"Could not create folder \"{dir}\" because it already exists" : "Kon map \"{dir}\" niet aanmaken, omdat die al bestaat",
@@ -424,35 +436,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Directe link is gekopieerd (werkt alleen voor gebruikers met toegang tot map/bestand)",
"Path" : "Pad",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Favoriet",
+ "Favored" : "Favorieten",
+ "Favor" : "Favoriet",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopieer Directe link (werkt alleen voor gebruikers met toegang tot map/bestand)",
"Upload file" : "Bestand uploaden",
- "Not favorited" : "Niet in favorieten",
+ "Not favored" : "Geen favoriet",
"An error occurred while trying to update the tags" : "Er trad een fout op bij je poging om de tags bij te werken",
- "You don't have permission to upload or create files here." : "Je hebt geen toestemming om hier bestanden te uploaden of aan te maken.",
- "Storage informations" : "Opslaginformatie",
- "Choose file" : "Kies bestand",
- "Go to the previous folder" : "Ga naar voorgaande map",
- "Open the files app settings" : "Open de Bestanden app instellingen",
- "Unable to change the favourite state of the file" : "Niet mogelijk om favoriet status van het bestand te wijzigen",
- "Edit file locally" : "Bestand lokaal bewerken",
- "Edit online" : "Bewerk online",
- "Create new templates folder" : "Nieuwe sjablonenmap",
+ "Upload (max. %s)" : "Upload (max. %s)",
+ "Submitting fields…" : "Verzenden velden ...",
+ "Filter filenames…" : "Filter bestandsnamen...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} map","{folderCount} mappen"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} bestand","{fileCount} bestanden"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 bestand en {folderCount} map","1 bestand en {folderCount} mappen"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} bestand en 1 map","{fileCount} bestanden en 1 map"],
"{fileCount} files and {folderCount} folders" : "{fileCount} bestanden en {folderCount} mappen",
- "List of favorites files and folders." : "Lijst van favoriete bestanden en mappen.",
"Personal Files" : "Persoonlijke bestanden",
"Text file" : "Tekstbestand",
"New text file.txt" : "Nieuw tekstbestand.txt",
- "Favored" : "Favorieten",
- "Favor" : "Favoriet",
- "Not favored" : "Geen favoriet",
- "Submitting fields…" : "Verzenden velden ...",
- "Filter filenames…" : "Filter bestandsnamen...",
- "{count} files could not be converted" : "{count} bestanden konden niet worden geconverteerd",
- "{count} files successfully converted" : "{count} bestanden succesvol geconverteerd"
+ "%1$s (renamed)" : "%1$s (hernoemd)",
+ "renamed file" : "bestand hernoemd",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Na inschakeling van Windows-compatibele bestandsnamen, kunnen bestaande bestanden niet meer worden gewijzigd, maar kunnen ze door de eigenaar worden hernoemd naar geldige nieuwe namen."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index 8125282712b..441311e058f 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favoriete bestanden",
"No favorites" : "Geen favorieten",
"More favorites" : "Meer favorieten",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepteren",
"Reject" : "Afwijzen",
"Incoming ownership transfer from {user}" : "Inkomend verzoek voor eigendomsoverdracht van {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Overgezet van %1$s naar %2$s",
"Files compatibility" : "Bestandscompatibiliteit",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Toestaan om bestandsnamen te beperken om te borgen dat bestanden met alle cliënts gesynchroniseerd kunnen worden. Standaard zijn alle bestandsnamen valide die zijn toegestaan op POSIX (zoals Linux en macOS.)",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Na inschakeling van Windows-compatibele bestandsnamen, kunnen bestaande bestanden niet meer worden gewijzigd, maar kunnen ze door de eigenaar worden hernoemd naar geldige nieuwe namen.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Het is ook mogelijk om bestanden automatisch te migreren nadat deze instelling is ingeschakeld. Raadpleeg de documentatie over het occ-commando.",
"Enforce Windows compatibility" : "Dwing Windows-compatibiliteit af",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Dit zal bestandsnamen blokkeren die niet toegestaan zijn op Windows-systemen, zoals gereserveerde namen of speciale tekens. Dit dwingt niet tot compatibiliteit voor hoofd- en kleine letters.",
"File Management" : "Bestandsbeheer",
@@ -93,6 +94,12 @@
"Invalid filename." : "Ongeldige bestandsnaam",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" hernoemd naar \"{newName}\"",
"Rename file" : "Bestand hernoemen",
+ "Folder" : "Map",
+ "Unknown file type" : "Onbekend bestandstype",
+ "{ext} image" : "{ext} afbeelding",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} audio",
+ "{ext} text" : "{ext} tekst",
"Pending" : "In behandeling",
"Unknown date" : "Onbekende datum",
"Clear filter" : "Filter leegmaken",
@@ -103,6 +110,7 @@
"Total rows summary" : "Aantal rijen samenvatting",
"Toggle selection for all files and folders" : "Wijzig selectie voor alle bestanden en mappen",
"Name" : "Naam",
+ "File type" : "Bestandstype",
"Size" : "Grootte",
"\"{displayName}\" failed on some elements" : "“{displayName}” mislukt op sommige elementen",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" batchactie succesvol uitgevoerd",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Kolomkoppen met knoppen zijn sorteerbaar",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "De lijst is niet volledig verwerkt om de prestatie niet te beperken. De bestanden worden verder verwerkt als je door de lijst navigeert.",
"File not found" : "Bestand niet gevonden",
- "{count} selected" : "{count} geselecteerd",
+ "_{count} selected_::_{count} selected_" : ["{count} geselecteerd","{count} geselecteerd"],
"{usedQuotaByte} used" : "{usedQuotaByte} gebruikt",
"{used} of {quota} used" : "{used} van {quota} gebruikt",
"{relative}% used" : "{relative}% gebruikt",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Sorteer eerst favorieten",
"Sort folders before files" : "Sorteer mappen voor bestanden",
"Show hidden files" : "Toon verborgen bestanden",
+ "Show file type column" : "Toon bestandstypekolom",
"Crop image previews" : "Snij afbeeldingvoorbeelden bij",
"Enable the grid view" : "Roosterweergave inschakelen",
"Enable folder tree" : "Mappenboom inschakelen",
@@ -233,6 +242,8 @@
"Failed to convert files: {message}" : "Conversie van bestanden mislukt: {message} ",
"All files failed to be converted" : "De conversie van alle bestanden is mislukt",
"One file could not be converted: {message}" : "Een bestand kon niet worden geconverteerd: {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["Een bestand kon niet geconverteerd worden","%n bestanden konden niet geconverteerd worden"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Een bestand succesvol geconverteerd","%n bestanden succesvol geconverteerd"],
"Files successfully converted" : "Bestanden succesvol geconverteerd",
"Failed to convert files" : "Conversie van bestanden mislukt",
"Converting file …" : "Bestand converteren ...",
@@ -255,6 +266,7 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Je staat op het punt om {count} item te verwijderen","Je staat op het punt om {count}items te verwijderen"],
"Confirm deletion" : "Bevestig verwijderen",
"Cancel" : "Annuleren",
+ "Download" : "Downloaden",
"Moving \"{source}\" to \"{destination}\" …" : "Verplaatsen \"{source}\" naar \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopiëren \"{source}\" naar \"{destination}\" …",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Je kan een bestand/map niet verplaatsen naar zichzelf of naar een subfolder van zichzelf.",
@@ -275,12 +287,12 @@
"Cancelled move or copy operation" : "Verplaatsen of kopiëren geannuleerd.",
"Open folder {displayName}" : "Open map {displayName}",
"Open in Files" : "Open in Bestanden",
+ "Open locally" : "Lokaal openen",
+ "Failed to redirect to client" : "Omleiden naar cliënt mislukt",
"Open file locally" : "Bestand lokaal openen",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Het bestand zou nu moeten openen op je apparaat. Als dat niet het geval is, controleer dan of je de desktop app geïnstalleerd hebt.",
"Retry and close" : "Probeer opnieuw en sluiten",
"Open online" : "Open online",
- "Failed to redirect to client" : "Omleiden naar cliënt mislukt",
- "Open locally" : "Lokaal openen",
"Rename" : "Naam wijzigen",
"Open details" : "Details openen",
"View in folder" : "Bekijken in map",
@@ -318,12 +330,16 @@
"Files moved successfully" : "Bestanden succesvol verplaatst",
"Conflicts resolution skipped" : "Conflictoplossing overgeslagen",
"Upload cancelled" : "Uploaden geannuleerd",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kon \"{oldName}\" niet hernoemen, het bestaat niet meer",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "De naam \"{newName}\" bestaat al in map \"{dir}\". Kies een andere naam.",
+ "Could not rename \"{oldName}\"" : "Kon \"{oldName}\" niet hernoemen",
"This operation is forbidden" : "Deze taak is verboden",
"This directory is unavailable, please check the logs or contact the administrator" : "Deze map is niet beschikbaar. Verifieer de logs of neem contact op met de beheerder",
"Storage is temporarily not available" : "Opslag is tijdelijk niet beschikbaar",
"Unexpected error: {error}" : "Onverwachte fout: {error}",
"_%n file_::_%n files_" : ["%n bestand","%n bestanden"],
"_%n folder_::_%n folders_" : ["%n map","%n mappen"],
+ "_%n hidden_::_%n hidden_" : ["%n onzichtbaar","%n onzichtbaar"],
"Filename must not be empty." : "Bestandsnaam mag niet leeg zijn",
"\"{char}\" is not allowed inside a filename." : "\"{char}\"is niet toegestaan in een bestandsnaam",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" is een greserveerde naam en niet toegestaan voor bestandsnamen",
@@ -348,7 +364,6 @@
"Upload too large" : "Upload is te groot",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "De bestanden die je probeert te uploaden zijn groter dan de maximaal toegestane bestandsgrootte voor deze server.",
"File could not be found" : "Bestand kon niet worden gevonden",
- "Download" : "Downloaden",
"Show list view" : "Toon lijstweergave",
"Show grid view" : "Toon roosterweergave",
"Close" : "Sluiten",
@@ -387,9 +402,6 @@
"Copied {origin} inside {destination}" : "Kopieerde {origin} binnen {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Heeft {origin} en {nbfiles} andere bestanden in {destination} gekopieerd",
"{newName} already exists" : "{newName} bestaat al",
- "Could not rename \"{fileName}\", it does not exist any more" : "Kon \"{fileName}\" niet hernoemen, het bestaat niet meer",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "De naam \"{targetName}\" bestaat al in map \"{dir}\". Kies een andere naam.",
- "Could not rename \"{fileName}\"" : "Kon \"{fileName}\" niet hernoemen",
"Could not create file \"{file}\"" : "Kon \"{file}\" niet aanmaken",
"Could not create file \"{file}\" because it already exists" : "Kon \"{file}\" niet aanmaken, omdat het al bestaat",
"Could not create folder \"{dir}\" because it already exists" : "Kon map \"{dir}\" niet aanmaken, omdat die al bestaat",
@@ -422,35 +434,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Directe link is gekopieerd (werkt alleen voor gebruikers met toegang tot map/bestand)",
"Path" : "Pad",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Favoriet",
+ "Favored" : "Favorieten",
+ "Favor" : "Favoriet",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopieer Directe link (werkt alleen voor gebruikers met toegang tot map/bestand)",
"Upload file" : "Bestand uploaden",
- "Not favorited" : "Niet in favorieten",
+ "Not favored" : "Geen favoriet",
"An error occurred while trying to update the tags" : "Er trad een fout op bij je poging om de tags bij te werken",
- "You don't have permission to upload or create files here." : "Je hebt geen toestemming om hier bestanden te uploaden of aan te maken.",
- "Storage informations" : "Opslaginformatie",
- "Choose file" : "Kies bestand",
- "Go to the previous folder" : "Ga naar voorgaande map",
- "Open the files app settings" : "Open de Bestanden app instellingen",
- "Unable to change the favourite state of the file" : "Niet mogelijk om favoriet status van het bestand te wijzigen",
- "Edit file locally" : "Bestand lokaal bewerken",
- "Edit online" : "Bewerk online",
- "Create new templates folder" : "Nieuwe sjablonenmap",
+ "Upload (max. %s)" : "Upload (max. %s)",
+ "Submitting fields…" : "Verzenden velden ...",
+ "Filter filenames…" : "Filter bestandsnamen...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} map","{folderCount} mappen"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} bestand","{fileCount} bestanden"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 bestand en {folderCount} map","1 bestand en {folderCount} mappen"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} bestand en 1 map","{fileCount} bestanden en 1 map"],
"{fileCount} files and {folderCount} folders" : "{fileCount} bestanden en {folderCount} mappen",
- "List of favorites files and folders." : "Lijst van favoriete bestanden en mappen.",
"Personal Files" : "Persoonlijke bestanden",
"Text file" : "Tekstbestand",
"New text file.txt" : "Nieuw tekstbestand.txt",
- "Favored" : "Favorieten",
- "Favor" : "Favoriet",
- "Not favored" : "Geen favoriet",
- "Submitting fields…" : "Verzenden velden ...",
- "Filter filenames…" : "Filter bestandsnamen...",
- "{count} files could not be converted" : "{count} bestanden konden niet worden geconverteerd",
- "{count} files successfully converted" : "{count} bestanden succesvol geconverteerd"
+ "%1$s (renamed)" : "%1$s (hernoemd)",
+ "renamed file" : "bestand hernoemd",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Na inschakeling van Windows-compatibele bestandsnamen, kunnen bestaande bestanden niet meer worden gewijzigd, maar kunnen ze door de eigenaar worden hernoemd naar geldige nieuwe namen."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/nn_NO.js b/apps/files/l10n/nn_NO.js
deleted file mode 100644
index 73d01d0461f..00000000000
--- a/apps/files/l10n/nn_NO.js
+++ /dev/null
@@ -1,71 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Unknown error" : "Ukjend feil",
- "Unable to set upload directory." : "Klarte ikkje å endra opplastingsmappa.",
- "Invalid Token" : "Ugyldig token",
- "No file was uploaded. Unknown error" : "Ingen filer lasta opp. Ukjend feil",
- "There is no error, the file uploaded with success" : "Ingen feil, fila vart lasta opp",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den opplasta fila er større enn variabelen MAX_FILE_SIZE i HTML-skjemaet",
- "The uploaded file was only partially uploaded" : "Fila vart berre delvis lasta opp",
- "No file was uploaded" : "Ingen filer vart lasta opp",
- "Missing a temporary folder" : "Manglar ei mellombels mappe",
- "Failed to write to disk" : "Klarte ikkje skriva til disk",
- "Not enough storage available" : "Ikkje nok lagringsplass tilgjengeleg",
- "Upload failed. Could not find uploaded file" : "Feil ved opplasting. Klarte ikkje å finna opplasta fil.",
- "Upload failed. Could not get file info." : "Feil ved opplasting. Klarte ikkje å henta filinfo.",
- "Invalid directory." : "Ugyldig mappe.",
- "Files" : "Filer",
- "All files" : "Alle filer",
- "Home" : "Heime",
- "Close" : "Lukk",
- "Favorites" : "Favorittar",
- "Upload cancelled." : "Opplasting avbroten.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Klarte ikkje å lasta opp {filename} sidan det er ei mappe eller er 0 byte.",
- "Could not get result from server." : "Klarte ikkje å henta resultat frå tenaren.",
- "Uploading..." : "Lastar opp …",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.",
- "Actions" : "Handlingar",
- "Download" : "Last ned",
- "Rename" : "Endra namn",
- "Delete" : "Slett",
- "Unshare" : "Udel",
- "Details" : "Detaljar",
- "Pending" : "Under vegs",
- "Name" : "Namn",
- "Size" : "Storleik",
- "Modified" : "Endra",
- "_%n folder_::_%n folders_" : ["%n mappe","%n mapper"],
- "_%n file_::_%n files_" : ["%n fil","%n filer"],
- "{dirs} and {files}" : "{dirs} og {files}",
- "_Uploading %n file_::_Uploading %n files_" : ["Lastar opp %n fil","Lastar opp %n filer"],
- "New" : "Ny",
- "File name cannot be empty." : "Filnamnet kan ikkje vera tomt.",
- "Your storage is full, files can not be updated or synced anymore!" : "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!",
- "Your storage is almost full ({usedSpacePercent}%)" : "Lagringa di er nesten full ({usedSpacePercent} %)",
- "Favorite" : "Favoritt",
- "Folder" : "Mappe",
- "New folder" : "Ny mappe",
- "Upload" : "Last opp",
- "A new file or folder has been <strong>created</strong>" : "Ei ny fil eller mappe er <strong>oppretta</strong>",
- "A file or folder has been <strong>changed</strong>" : "Ei fil eller mappe er <strong>endra</strong>",
- "A file or folder has been <strong>deleted</strong>" : "Ei fil eller mappe er <strong>sletta</strong>",
- "You created %1$s" : "Du oppretta %1$s",
- "%2$s created %1$s" : "%2$s oppretta %1$s",
- "%1$s was created in a public folder" : "%1$s oppretta i ei offentleg mappe",
- "You changed %1$s" : "Du endra %1$s",
- "%2$s changed %1$s" : "%2$s endra %1$s",
- "You deleted %1$s" : "Du sletta %1$s",
- "%2$s deleted %1$s" : "%2$s sletta %1$s",
- "File handling" : "Filhandtering",
- "Maximum upload size" : "Maksimal opplastingsstorleik",
- "max. possible: " : "maks. moglege:",
- "Save" : "Lagre",
- "Settings" : "Innstillingar",
- "WebDAV" : "WebDAV",
- "Upload too large" : "For stor opplasting",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å lasta opp er større enn maksgrensa til denne tenaren.",
- "Text file" : "Tekst fil"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/nn_NO.json b/apps/files/l10n/nn_NO.json
deleted file mode 100644
index 199bb6aeb9a..00000000000
--- a/apps/files/l10n/nn_NO.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{ "translations": {
- "Unknown error" : "Ukjend feil",
- "Unable to set upload directory." : "Klarte ikkje å endra opplastingsmappa.",
- "Invalid Token" : "Ugyldig token",
- "No file was uploaded. Unknown error" : "Ingen filer lasta opp. Ukjend feil",
- "There is no error, the file uploaded with success" : "Ingen feil, fila vart lasta opp",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den opplasta fila er større enn variabelen MAX_FILE_SIZE i HTML-skjemaet",
- "The uploaded file was only partially uploaded" : "Fila vart berre delvis lasta opp",
- "No file was uploaded" : "Ingen filer vart lasta opp",
- "Missing a temporary folder" : "Manglar ei mellombels mappe",
- "Failed to write to disk" : "Klarte ikkje skriva til disk",
- "Not enough storage available" : "Ikkje nok lagringsplass tilgjengeleg",
- "Upload failed. Could not find uploaded file" : "Feil ved opplasting. Klarte ikkje å finna opplasta fil.",
- "Upload failed. Could not get file info." : "Feil ved opplasting. Klarte ikkje å henta filinfo.",
- "Invalid directory." : "Ugyldig mappe.",
- "Files" : "Filer",
- "All files" : "Alle filer",
- "Home" : "Heime",
- "Close" : "Lukk",
- "Favorites" : "Favorittar",
- "Upload cancelled." : "Opplasting avbroten.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Klarte ikkje å lasta opp {filename} sidan det er ei mappe eller er 0 byte.",
- "Could not get result from server." : "Klarte ikkje å henta resultat frå tenaren.",
- "Uploading..." : "Lastar opp …",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Fila lastar no opp. Viss du forlèt sida no vil opplastinga verta avbroten.",
- "Actions" : "Handlingar",
- "Download" : "Last ned",
- "Rename" : "Endra namn",
- "Delete" : "Slett",
- "Unshare" : "Udel",
- "Details" : "Detaljar",
- "Pending" : "Under vegs",
- "Name" : "Namn",
- "Size" : "Storleik",
- "Modified" : "Endra",
- "_%n folder_::_%n folders_" : ["%n mappe","%n mapper"],
- "_%n file_::_%n files_" : ["%n fil","%n filer"],
- "{dirs} and {files}" : "{dirs} og {files}",
- "_Uploading %n file_::_Uploading %n files_" : ["Lastar opp %n fil","Lastar opp %n filer"],
- "New" : "Ny",
- "File name cannot be empty." : "Filnamnet kan ikkje vera tomt.",
- "Your storage is full, files can not be updated or synced anymore!" : "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!",
- "Your storage is almost full ({usedSpacePercent}%)" : "Lagringa di er nesten full ({usedSpacePercent} %)",
- "Favorite" : "Favoritt",
- "Folder" : "Mappe",
- "New folder" : "Ny mappe",
- "Upload" : "Last opp",
- "A new file or folder has been <strong>created</strong>" : "Ei ny fil eller mappe er <strong>oppretta</strong>",
- "A file or folder has been <strong>changed</strong>" : "Ei fil eller mappe er <strong>endra</strong>",
- "A file or folder has been <strong>deleted</strong>" : "Ei fil eller mappe er <strong>sletta</strong>",
- "You created %1$s" : "Du oppretta %1$s",
- "%2$s created %1$s" : "%2$s oppretta %1$s",
- "%1$s was created in a public folder" : "%1$s oppretta i ei offentleg mappe",
- "You changed %1$s" : "Du endra %1$s",
- "%2$s changed %1$s" : "%2$s endra %1$s",
- "You deleted %1$s" : "Du sletta %1$s",
- "%2$s deleted %1$s" : "%2$s sletta %1$s",
- "File handling" : "Filhandtering",
- "Maximum upload size" : "Maksimal opplastingsstorleik",
- "max. possible: " : "maks. moglege:",
- "Save" : "Lagre",
- "Settings" : "Innstillingar",
- "WebDAV" : "WebDAV",
- "Upload too large" : "For stor opplasting",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å lasta opp er større enn maksgrensa til denne tenaren.",
- "Text file" : "Tekst fil"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/nqo.js b/apps/files/l10n/nqo.js
deleted file mode 100644
index 91d52801985..00000000000
--- a/apps/files/l10n/nqo.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : [""],
- "_%n file_::_%n files_" : [""],
- "_Uploading %n file_::_Uploading %n files_" : [""],
- "_matches '{filter}'_::_match '{filter}'_" : [""]
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/nqo.json b/apps/files/l10n/nqo.json
deleted file mode 100644
index 82cca5a0661..00000000000
--- a/apps/files/l10n/nqo.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : [""],
- "_%n file_::_%n files_" : [""],
- "_Uploading %n file_::_Uploading %n files_" : [""],
- "_matches '{filter}'_::_match '{filter}'_" : [""]
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/oc.js b/apps/files/l10n/oc.js
deleted file mode 100644
index dbe093680b2..00000000000
--- a/apps/files/l10n/oc.js
+++ /dev/null
@@ -1,127 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "Impossible de trobar lo fichièr",
- "Move or copy" : "Desplaçar o copiar",
- "Download" : "Telecargar",
- "Delete" : "Suprimir",
- "Tags" : "Etiquetas",
- "Show list view" : "Afichar la vista en lista",
- "Show grid view" : "Afichar la vista en grasilha",
- "Home" : "Domicili",
- "Close" : "Tampar",
- "Favorites" : "Favorits",
- "Could not create folder \"{dir}\"" : "Creacion impossibla del dossièr « {dir} »",
- "This will stop your current uploads." : "Aquò arrestarà vòstres mandadisses actuals.",
- "Upload cancelled." : "Mesa a jorn anullada.",
- "Processing files …" : "Tractament dels fichèrs…",
- "…" : "…",
- "Not enough free space" : "Pas pro d’espaci liure",
- "An unknown error has occurred" : "Una error desconeguda s'es produsida",
- "Uploading …" : "Mandadís…",
- "Actions" : "Accions",
- "Rename" : "Renomenar",
- "Move" : "Desplaçar",
- "Copy" : "Copiar",
- "Open" : "Dobrir",
- "Delete file" : "Suprimir fichièr",
- "Delete folder" : "Suprimir lo repertòri",
- "Leave this share" : "Quitar aqueste partiment",
- "Files" : "Fichièrs",
- "Details" : "Detalhs",
- "Pending" : "En espèra",
- "Storage is temporarily not available" : "Emmagazinatge temporàriament indisponible",
- "Could not move \"{file}\", target exists" : "Impossible de desplaçar \"{file}\", la cibla existís",
- "Could not move \"{file}\"" : "Impossible de desplaçar \"{file}\"",
- "copy" : "copiar",
- "Could not copy \"{file}\"" : "Còpia impossibla « {file} »",
- "{newName} already exists" : "{newName} existís ja",
- "Could not create file \"{file}\"" : "Impossible de crear lo fichièr \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "Impossible de crear lo fichièr \"{file}\" perque existís ja",
- "No search results in other folders for {tag}{filter}{endtag}" : "Cap de resultat de recèrca dins d’autres dossièrs per {tag}{filter}{endtag}",
- "Name" : "Nom",
- "Size" : "Talha",
- "Modified" : "Modificat",
- "_%n folder_::_%n folders_" : ["%n dossièr","%n dossièrs"],
- "_%n file_::_%n files_" : ["%n fichièr","%n fichièrs"],
- "{dirs} and {files}" : "{dirs} e {files}",
- "_Uploading %n file_::_Uploading %n files_" : ["Mandadís de %n fichièr","Mandadís de %n fichièrs"],
- "{used}%" : "{used}%",
- "{used} of {quota} used" : "{used} de {quota} utilizat",
- "{used} used" : "{used} utilizat",
- "\"{name}\" is an invalid file name." : "\"{name}\" es pas un nom de fichièr valid.",
- "File name cannot be empty." : "Lo nom de fichièr pòt pas èsser void.",
- "\"/\" is not allowed inside a file name." : "« / » es pas permés dins un nom de fichièr.",
- "\"{name}\" is not an allowed filetype" : "« {name} » es pas un tipe de fichièr permés",
- "View in folder" : "Veire dins lo dossièr",
- "Path" : "Camin",
- "_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
- "Favorited" : "Favorit",
- "Favorite" : "Favorit",
- "New folder" : "Novèl dorsièr",
- "Upload file" : "Upload file",
- "Recent" : "Recents",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Add to favorites",
- "Added to favorites" : "Apondut als favorits",
- "Removed from favorites" : "Tirat dels favorits",
- "File changes" : "Modificacions de fichièr",
- "Created by {user}" : "Creat per {user}",
- "Changed by {user}" : "Modificat per {user}",
- "Deleted by {user}" : "Suprimit per {user}",
- "Restored by {user}" : "Restaurat per {user}",
- "Renamed by {user}" : "Renomenat per {user}",
- "Moved by {user}" : "Desplaçat per {user}",
- "You created {file}" : "Avètz creat {file}",
- "{user} created {file}" : "{user} a creat {file}",
- "You changed {file}" : "Avètz cambiat {file}",
- "{user} changed {file}" : "{user} a cambiat {file}",
- "You deleted {file}" : "Avètz suprimit {file}",
- "{user} deleted {file}" : "{user} a suprimit {file}",
- "{user} restored {file}" : "{user} a restaurat {file}",
- "You moved {oldfile} to {newfile}" : "Avètz desplaçat {oldfile} dins {newfile}",
- "All files" : "Totes los fichièrs",
- "Upload (max. %s)" : "Mandadís (max. %s)",
- "Accept" : "Acceptar",
- "Reject" : "Regetar",
- "in %s" : "dins %s",
- "File Management" : "Gestionari de fichièrs",
- "Storage informations" : "Informacions d’emmagazinatge",
- "{usedQuotaByte} used" : "{usedQuotaByte} utilizat",
- "{relative}% used" : "{relative}% utilizat",
- "Change" : "Modificar",
- "New owner" : "Proprietari novèl",
- "Search users" : "Recercar d’utilizaires",
- "Invalid path selected" : "Camin seleccionat invalid",
- "Unknown error" : "Error desconeguda",
- "Files settings" : "Paramètres dels fichièrs",
- "Show hidden files" : "Afichar los fichièrs amagats",
- "Additional settings" : "Paramètres addicionals",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar dins lo quichapapièrs",
- "Cancel" : "Anullar",
- "Create" : "Crear",
- "Creating file" : "Creacion del fichièr",
- "Templates" : "Modèls",
- "No files in here" : "Cap de fichièr aicí",
- "No favorites yet" : "Cap de favorits pel moment",
- "Deleted files" : "Fichièrs suprimits",
- "Shares" : "Partatges",
- "Shared with others" : "Partejats amb d’autres",
- "Shared with you" : "Shared with you",
- "Shared by link" : "Partejat via ligam",
- "Deleted shares" : "Partiments suprimits",
- "Pending shares" : "Partiments pendents",
- "Text file" : "Fichièr tèxt",
- "New text file.txt" : "Novèl fichièr tèxte .txt",
- "Storage invalid" : "Emmagazinatge invalid",
- "Select" : "Select",
- "New" : "Novèl",
- "Copied!" : "Copiat !",
- "Unlimited" : "Illimitat",
- "%s used" : "%s utilizat",
- "%s%%" : "%s%%",
- "%1$s of %2$s used" : "%1$s de %2$s utilizat",
- "Settings" : "Paramètres"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/oc.json b/apps/files/l10n/oc.json
deleted file mode 100644
index d9d7e910741..00000000000
--- a/apps/files/l10n/oc.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{ "translations": {
- "File could not be found" : "Impossible de trobar lo fichièr",
- "Move or copy" : "Desplaçar o copiar",
- "Download" : "Telecargar",
- "Delete" : "Suprimir",
- "Tags" : "Etiquetas",
- "Show list view" : "Afichar la vista en lista",
- "Show grid view" : "Afichar la vista en grasilha",
- "Home" : "Domicili",
- "Close" : "Tampar",
- "Favorites" : "Favorits",
- "Could not create folder \"{dir}\"" : "Creacion impossibla del dossièr « {dir} »",
- "This will stop your current uploads." : "Aquò arrestarà vòstres mandadisses actuals.",
- "Upload cancelled." : "Mesa a jorn anullada.",
- "Processing files …" : "Tractament dels fichèrs…",
- "…" : "…",
- "Not enough free space" : "Pas pro d’espaci liure",
- "An unknown error has occurred" : "Una error desconeguda s'es produsida",
- "Uploading …" : "Mandadís…",
- "Actions" : "Accions",
- "Rename" : "Renomenar",
- "Move" : "Desplaçar",
- "Copy" : "Copiar",
- "Open" : "Dobrir",
- "Delete file" : "Suprimir fichièr",
- "Delete folder" : "Suprimir lo repertòri",
- "Leave this share" : "Quitar aqueste partiment",
- "Files" : "Fichièrs",
- "Details" : "Detalhs",
- "Pending" : "En espèra",
- "Storage is temporarily not available" : "Emmagazinatge temporàriament indisponible",
- "Could not move \"{file}\", target exists" : "Impossible de desplaçar \"{file}\", la cibla existís",
- "Could not move \"{file}\"" : "Impossible de desplaçar \"{file}\"",
- "copy" : "copiar",
- "Could not copy \"{file}\"" : "Còpia impossibla « {file} »",
- "{newName} already exists" : "{newName} existís ja",
- "Could not create file \"{file}\"" : "Impossible de crear lo fichièr \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "Impossible de crear lo fichièr \"{file}\" perque existís ja",
- "No search results in other folders for {tag}{filter}{endtag}" : "Cap de resultat de recèrca dins d’autres dossièrs per {tag}{filter}{endtag}",
- "Name" : "Nom",
- "Size" : "Talha",
- "Modified" : "Modificat",
- "_%n folder_::_%n folders_" : ["%n dossièr","%n dossièrs"],
- "_%n file_::_%n files_" : ["%n fichièr","%n fichièrs"],
- "{dirs} and {files}" : "{dirs} e {files}",
- "_Uploading %n file_::_Uploading %n files_" : ["Mandadís de %n fichièr","Mandadís de %n fichièrs"],
- "{used}%" : "{used}%",
- "{used} of {quota} used" : "{used} de {quota} utilizat",
- "{used} used" : "{used} utilizat",
- "\"{name}\" is an invalid file name." : "\"{name}\" es pas un nom de fichièr valid.",
- "File name cannot be empty." : "Lo nom de fichièr pòt pas èsser void.",
- "\"/\" is not allowed inside a file name." : "« / » es pas permés dins un nom de fichièr.",
- "\"{name}\" is not an allowed filetype" : "« {name} » es pas un tipe de fichièr permés",
- "View in folder" : "Veire dins lo dossièr",
- "Path" : "Camin",
- "_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
- "Favorited" : "Favorit",
- "Favorite" : "Favorit",
- "New folder" : "Novèl dorsièr",
- "Upload file" : "Upload file",
- "Recent" : "Recents",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Add to favorites",
- "Added to favorites" : "Apondut als favorits",
- "Removed from favorites" : "Tirat dels favorits",
- "File changes" : "Modificacions de fichièr",
- "Created by {user}" : "Creat per {user}",
- "Changed by {user}" : "Modificat per {user}",
- "Deleted by {user}" : "Suprimit per {user}",
- "Restored by {user}" : "Restaurat per {user}",
- "Renamed by {user}" : "Renomenat per {user}",
- "Moved by {user}" : "Desplaçat per {user}",
- "You created {file}" : "Avètz creat {file}",
- "{user} created {file}" : "{user} a creat {file}",
- "You changed {file}" : "Avètz cambiat {file}",
- "{user} changed {file}" : "{user} a cambiat {file}",
- "You deleted {file}" : "Avètz suprimit {file}",
- "{user} deleted {file}" : "{user} a suprimit {file}",
- "{user} restored {file}" : "{user} a restaurat {file}",
- "You moved {oldfile} to {newfile}" : "Avètz desplaçat {oldfile} dins {newfile}",
- "All files" : "Totes los fichièrs",
- "Upload (max. %s)" : "Mandadís (max. %s)",
- "Accept" : "Acceptar",
- "Reject" : "Regetar",
- "in %s" : "dins %s",
- "File Management" : "Gestionari de fichièrs",
- "Storage informations" : "Informacions d’emmagazinatge",
- "{usedQuotaByte} used" : "{usedQuotaByte} utilizat",
- "{relative}% used" : "{relative}% utilizat",
- "Change" : "Modificar",
- "New owner" : "Proprietari novèl",
- "Search users" : "Recercar d’utilizaires",
- "Invalid path selected" : "Camin seleccionat invalid",
- "Unknown error" : "Error desconeguda",
- "Files settings" : "Paramètres dels fichièrs",
- "Show hidden files" : "Afichar los fichièrs amagats",
- "Additional settings" : "Paramètres addicionals",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Copiar dins lo quichapapièrs",
- "Cancel" : "Anullar",
- "Create" : "Crear",
- "Creating file" : "Creacion del fichièr",
- "Templates" : "Modèls",
- "No files in here" : "Cap de fichièr aicí",
- "No favorites yet" : "Cap de favorits pel moment",
- "Deleted files" : "Fichièrs suprimits",
- "Shares" : "Partatges",
- "Shared with others" : "Partejats amb d’autres",
- "Shared with you" : "Shared with you",
- "Shared by link" : "Partejat via ligam",
- "Deleted shares" : "Partiments suprimits",
- "Pending shares" : "Partiments pendents",
- "Text file" : "Fichièr tèxt",
- "New text file.txt" : "Novèl fichièr tèxte .txt",
- "Storage invalid" : "Emmagazinatge invalid",
- "Select" : "Select",
- "New" : "Novèl",
- "Copied!" : "Copiat !",
- "Unlimited" : "Illimitat",
- "%s used" : "%s utilizat",
- "%s%%" : "%s%%",
- "%1$s of %2$s used" : "%1$s de %2$s utilizat",
- "Settings" : "Paramètres"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index 906004d2172..b10cdb2380f 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Ulubione pliki",
"No favorites" : "Brak ulubionych",
"More favorites" : "Więcej ulubionych",
- "Upload (max. %s)" : "Wysyłanie (maks. %s)",
"Accept" : "Akceptuj",
"Reject" : "Odrzuć",
"Incoming ownership transfer from {user}" : "Przychodzące przeniesienie własności od {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Przeniesiono z %1$s dnia %2$s",
"Files compatibility" : "Zgodność plików",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Zezwalaj na ograniczenie nazw plików, aby zapewnić synchronizację plików ze wszystkimi klientami. Domyślnie dozwolone są wszystkie nazwy plików obowiązujące w systemie POSIX (np. Linux lub macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po włączeniu nazw plików zgodnych z systemem Windows, istniejące pliki nie można już modyfikować, ale ich właściciel może zmienić ich nazwy na nowe, prawidłowe.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Możliwe jest również automatyczne migrowanie plików po włączeniu tego ustawienia. Więcej informacji można znaleźć w dokumentacji polecenia occ.",
"Enforce Windows compatibility" : "Wymuszaj zgodność z systemem Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Spowoduje to zablokowanie nazw plików nieprawidłowych w systemach Windows, na przykład nazw zastrzeżonych lub znaków specjalnych. Nie wymusi to jednak zgodności z rozróżnianiem wielkości liter.",
"File Management" : "Zarządzanie plikami",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Nieprawidłowa nazwa pliku.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Zmieniono nazwę \"{oldName}\" na \"{newName}\"",
"Rename file" : "Zmień nazwę pliku",
+ "Folder" : "Katalog",
+ "Unknown file type" : "Nieznany typ pliku",
+ "{ext} image" : "{ext} zdjęcie",
+ "{ext} video" : "{ext} wideo",
+ "{ext} audio" : "{ext} dźwiękowy",
+ "{ext} text" : "{ext} tekstowy",
"Pending" : "Oczekujące",
"Unknown date" : "Nieznana data",
"Clear filter" : "Wyczyść filtr",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Podsumowanie wszystkich wierszy",
"Toggle selection for all files and folders" : "Przełącz zaznaczenie dla wszystkich plików i katalogów",
"Name" : "Nazwa",
+ "File type" : "Typ pliku",
"Size" : "Rozmiar",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" nie powiodło się w niektórych elementach",
"\"{displayName}\" batch action executed successfully" : "Akcja wsadowa \"{displayName}\" została wykonana pomyślnie",
@@ -116,7 +124,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Nagłówki kolumn z przyciskami są sortowalne.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ta lista nie jest w pełni renderowana ze względu na wydajność. Pliki będą renderowane podczas poruszania się po liście.",
"File not found" : "Nie odnaleziono pliku",
- "{count} selected" : "wybrano {count}",
"{usedQuotaByte} used" : "Wykorzystano {usedQuotaByte}",
"{used} of {quota} used" : "Wykorzystane {used} z {quota}",
"{relative}% used" : "Wykorzystano {relative}%",
@@ -183,6 +190,7 @@ OC.L10N.register(
"Sort favorites first" : "Najpierw sortuj ulubione",
"Sort folders before files" : "Sortuj katalogi przed plikami",
"Show hidden files" : "Pokaż ukryte pliki",
+ "Show file type column" : "Pokaż kolumnę typu pliku",
"Crop image previews" : "Przytnij podglądy obrazów",
"Enable the grid view" : "Włącz widok siatki",
"Enable folder tree" : "Włącz drzewo katalogów",
@@ -219,6 +227,7 @@ OC.L10N.register(
"Show those shortcuts" : "Pokaż te skróty",
"You" : "Ty",
"Shared multiple times with different people" : "Udostępniony wiele razy różnym osobom",
+ "Unable to change the favorite state of the file" : "Nie można zmienić ulubionego stanu pliku",
"Error while loading the file data" : "Błąd podczas wczytywania danych pliku",
"Owner" : "Właściciel",
"Remove from favorites" : "Usuń z ulubionych",
@@ -259,8 +268,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Zamierzasz usunąć {count} element","Zamierzasz usunąć {count} elementy","Zamierzasz usunąć {count} elementów","Zamierzasz usunąć {count} elementów"],
"Confirm deletion" : "Potwierdź usunięcie",
"Cancel" : "Anuluj",
+ "Download" : "Pobierz",
"Moving \"{source}\" to \"{destination}\" …" : "Przenoszenie „{source}” do „{destination}”…",
"Copying \"{source}\" to \"{destination}\" …" : "Kopiowanie „{source}” do „{destination}”…",
+ "Destination is not a folder" : "Miejsce docelowe nie jest katalogiem",
+ "This file/folder is already in that directory" : "Ten plik/katalog znajduje się już w tym katalogu",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Nie można przenieść pliku/katalogu do tego samego katalogu lub do własnego podkatalogu",
"(copy)" : "(kopiuj)",
"(copy %n)" : "(kopiuj %n)",
@@ -279,12 +291,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Anulowano operację przenoszenia lub kopiowania",
"Open folder {displayName}" : "Otwórz katalog {displayName}",
"Open in Files" : "Otwórz w Plikach",
+ "Open locally" : "Otwórz lokalnie",
+ "Failed to redirect to client" : "Nie udało się przekierować do klienta",
"Open file locally" : "Otwórz plik lokalnie",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Plik powinien teraz otworzyć się na Twoim urządzeniu. Jeśli tak się nie stanie, sprawdź, czy masz zainstalowaną aplikację komputerową.",
"Retry and close" : "Spróbuj ponownie i zamknij",
"Open online" : "Otwórz online",
- "Failed to redirect to client" : "Nie udało się przekierować do klienta",
- "Open locally" : "Otwórz lokalnie",
"Rename" : "Zmień nazwę",
"Open details" : "Otwórz szczegóły",
"View in folder" : "Zobacz w katalogu",
@@ -322,12 +334,16 @@ OC.L10N.register(
"Files moved successfully" : "Pliki zostały przeniesione pomyślnie",
"Conflicts resolution skipped" : "Pominięto rozwiązywanie konfliktów",
"Upload cancelled" : "Anulowano przesyłanie",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Nie można zmienić nazwy \"{oldName}\", już nie istnieje",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nazwa \"{newName}\" jest już używana w katalogu \"{dir}\". Wybierz inną nazwę.",
+ "Could not rename \"{oldName}\"" : "Nie można zmienić nazwy \"{oldName}\"",
"This operation is forbidden" : "Ta operacja jest niedozwolona",
"This directory is unavailable, please check the logs or contact the administrator" : "Ten katalog jest niedostępny, sprawdź logi lub skontaktuj się z administratorem",
"Storage is temporarily not available" : "Magazyn jest tymczasowo niedostępny",
"Unexpected error: {error}" : "Nieoczekiwany błąd: {error}",
"_%n file_::_%n files_" : ["%n plik","%n pliki","%n plików","%n plików"],
"_%n folder_::_%n folders_" : ["%n katalog","%n katalogi","%n katalogów","%n katalogów"],
+ "_%n hidden_::_%n hidden_" : ["%n ukryty","%n ukryte","%n ukrytych","%n ukrytych"],
"Filename must not be empty." : "Nazwa pliku nie może być pusta.",
"\"{char}\" is not allowed inside a filename." : "„{char}” nie jest dozwolone w nazwie pliku.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "„{segment}” jest nazwą zastrzeżoną i nie jest dozwolona w przypadku nazw plików.",
@@ -352,7 +368,6 @@ OC.L10N.register(
"Upload too large" : "Wysyłany plik jest za duży",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Pliki, które próbujesz wysłać, przekraczają maksymalną dopuszczalną wielkość.",
"File could not be found" : "Nie można znaleźć pliku",
- "Download" : "Pobierz",
"Show list view" : "Pokaż widok listy",
"Show grid view" : "Pokaż widok siatki",
"Close" : "Zamknij",
@@ -391,9 +406,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Skopiowano {origin} wewnątrz {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Skopiowano {origin} oraz {nbfiles} innych plików wewnątrz {destination}",
"{newName} already exists" : "{newName} już istnieje",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nie można zmienić nazwy \"{fileName}\", plik już nie istnieje",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nazwa \"{targetName}\" jest już używana w katalogu \"{dir}\". Wybierz inną nazwę.",
- "Could not rename \"{fileName}\"" : "Nie można zmienić nazwy \"{fileName}\"",
"Could not create file \"{file}\"" : "Nie można utworzyć pliku \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Nie można utworzyć pliku \"{file}\", ponieważ ten plik już istnieje.",
"Could not create folder \"{dir}\" because it already exists" : "Nie można utworzyć katalogu \"{dir}\", ponieważ już istnieje",
@@ -426,35 +438,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Bezpośredni link został skopiowany (działa tylko dla użytkowników, którzy mają dostęp do tego pliku/katalogu)",
"Path" : "Ścieżka",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtów","%n bajtów"],
- "Favorited" : "Ulubiony",
+ "Favored" : "Polubione",
+ "Favor" : "Polub",
"Copy direct link (only works for people who have access to this file/folder)" : "Skopiuj bezpośredni link (działa tylko dla użytkowników, którzy mają dostęp do tego pliku/katalogu)",
"Upload file" : "Wyślij plik",
- "Not favorited" : "Wyłączone z ulubionych",
+ "Not favored" : "Nie polubiono",
"An error occurred while trying to update the tags" : "Wystąpił błąd podczas próby aktualizacji etykiet",
- "You don't have permission to upload or create files here." : "Nie masz uprawnień do wysyłania lub tworzenia plików w tym miejscu.",
- "Storage informations" : "Informacje o przechowywaniu",
- "Choose file" : "Wybierz plik",
- "Go to the previous folder" : "Przejdź do poprzedniego katalogu",
- "Open the files app settings" : "Otwórz ustawienia aplikacji plików",
- "Unable to change the favourite state of the file" : "Nie można zmienić ulubionego stanu pliku",
- "Edit file locally" : "Edytuj plik lokalnie",
- "Edit online" : "Edycja online",
- "Create new templates folder" : "Utwórz nowy katalog z szablonami",
+ "Upload (max. %s)" : "Wysyłanie (maks. %s)",
+ "Submitting fields…" : "Przesyłanie pól…",
+ "Filter filenames…" : "Filtruj nazwy plików…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} katalog","{folderCount} katalogi","{folderCount} katalogów","{folderCount} katalogów"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} plik","{fileCount} pliki","{fileCount} plików","{fileCount} plików"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 plik i {folderCount} katalog","1 plik i {folderCount} katalogi","1 plik i {folderCount} katalogów","1 plik i {folderCount} katalogów"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} plik i 1 katalog","{fileCount} pliki i 1 katalog","{fileCount} plików i 1 katalog","{fileCount} plików i 1 katalog"],
"{fileCount} files and {folderCount} folders" : "{fileCount} plików i {folderCount} katalogów",
- "List of favorites files and folders." : "Lista ulubionych plików i katalogów.",
"Personal Files" : "Pliki osobiste",
"Text file" : "Plik tekstowy",
"New text file.txt" : "Nowy plik tekstowy.txt",
- "Favored" : "Polubione",
- "Favor" : "Polub",
- "Not favored" : "Nie polubiono",
- "Submitting fields…" : "Przesyłanie pól…",
- "Filter filenames…" : "Filtruj nazwy plików…",
- "{count} files could not be converted" : "Nie można przekonwertować {count} plików",
- "{count} files successfully converted" : "Zostały pomyślnie przekonwertowane{count} plików"
+ "%1$s (renamed)" : "%1$s (zmieniona nazwa)",
+ "renamed file" : "zmieniona nazwa pliku",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po włączeniu nazw plików zgodnych z systemem Windows, istniejących plików nie można już modyfikować, ale ich właściciel może zmienić ich nazwy na nowe, prawidłowe."
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index b312784d273..f54507e7ff7 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -52,7 +52,6 @@
"Favorite files" : "Ulubione pliki",
"No favorites" : "Brak ulubionych",
"More favorites" : "Więcej ulubionych",
- "Upload (max. %s)" : "Wysyłanie (maks. %s)",
"Accept" : "Akceptuj",
"Reject" : "Odrzuć",
"Incoming ownership transfer from {user}" : "Przychodzące przeniesienie własności od {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Przeniesiono z %1$s dnia %2$s",
"Files compatibility" : "Zgodność plików",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Zezwalaj na ograniczenie nazw plików, aby zapewnić synchronizację plików ze wszystkimi klientami. Domyślnie dozwolone są wszystkie nazwy plików obowiązujące w systemie POSIX (np. Linux lub macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po włączeniu nazw plików zgodnych z systemem Windows, istniejące pliki nie można już modyfikować, ale ich właściciel może zmienić ich nazwy na nowe, prawidłowe.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Możliwe jest również automatyczne migrowanie plików po włączeniu tego ustawienia. Więcej informacji można znaleźć w dokumentacji polecenia occ.",
"Enforce Windows compatibility" : "Wymuszaj zgodność z systemem Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Spowoduje to zablokowanie nazw plików nieprawidłowych w systemach Windows, na przykład nazw zastrzeżonych lub znaków specjalnych. Nie wymusi to jednak zgodności z rozróżnianiem wielkości liter.",
"File Management" : "Zarządzanie plikami",
@@ -93,6 +94,12 @@
"Invalid filename." : "Nieprawidłowa nazwa pliku.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Zmieniono nazwę \"{oldName}\" na \"{newName}\"",
"Rename file" : "Zmień nazwę pliku",
+ "Folder" : "Katalog",
+ "Unknown file type" : "Nieznany typ pliku",
+ "{ext} image" : "{ext} zdjęcie",
+ "{ext} video" : "{ext} wideo",
+ "{ext} audio" : "{ext} dźwiękowy",
+ "{ext} text" : "{ext} tekstowy",
"Pending" : "Oczekujące",
"Unknown date" : "Nieznana data",
"Clear filter" : "Wyczyść filtr",
@@ -103,6 +110,7 @@
"Total rows summary" : "Podsumowanie wszystkich wierszy",
"Toggle selection for all files and folders" : "Przełącz zaznaczenie dla wszystkich plików i katalogów",
"Name" : "Nazwa",
+ "File type" : "Typ pliku",
"Size" : "Rozmiar",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" nie powiodło się w niektórych elementach",
"\"{displayName}\" batch action executed successfully" : "Akcja wsadowa \"{displayName}\" została wykonana pomyślnie",
@@ -114,7 +122,6 @@
"Column headers with buttons are sortable." : "Nagłówki kolumn z przyciskami są sortowalne.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ta lista nie jest w pełni renderowana ze względu na wydajność. Pliki będą renderowane podczas poruszania się po liście.",
"File not found" : "Nie odnaleziono pliku",
- "{count} selected" : "wybrano {count}",
"{usedQuotaByte} used" : "Wykorzystano {usedQuotaByte}",
"{used} of {quota} used" : "Wykorzystane {used} z {quota}",
"{relative}% used" : "Wykorzystano {relative}%",
@@ -181,6 +188,7 @@
"Sort favorites first" : "Najpierw sortuj ulubione",
"Sort folders before files" : "Sortuj katalogi przed plikami",
"Show hidden files" : "Pokaż ukryte pliki",
+ "Show file type column" : "Pokaż kolumnę typu pliku",
"Crop image previews" : "Przytnij podglądy obrazów",
"Enable the grid view" : "Włącz widok siatki",
"Enable folder tree" : "Włącz drzewo katalogów",
@@ -217,6 +225,7 @@
"Show those shortcuts" : "Pokaż te skróty",
"You" : "Ty",
"Shared multiple times with different people" : "Udostępniony wiele razy różnym osobom",
+ "Unable to change the favorite state of the file" : "Nie można zmienić ulubionego stanu pliku",
"Error while loading the file data" : "Błąd podczas wczytywania danych pliku",
"Owner" : "Właściciel",
"Remove from favorites" : "Usuń z ulubionych",
@@ -257,8 +266,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Zamierzasz usunąć {count} element","Zamierzasz usunąć {count} elementy","Zamierzasz usunąć {count} elementów","Zamierzasz usunąć {count} elementów"],
"Confirm deletion" : "Potwierdź usunięcie",
"Cancel" : "Anuluj",
+ "Download" : "Pobierz",
"Moving \"{source}\" to \"{destination}\" …" : "Przenoszenie „{source}” do „{destination}”…",
"Copying \"{source}\" to \"{destination}\" …" : "Kopiowanie „{source}” do „{destination}”…",
+ "Destination is not a folder" : "Miejsce docelowe nie jest katalogiem",
+ "This file/folder is already in that directory" : "Ten plik/katalog znajduje się już w tym katalogu",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Nie można przenieść pliku/katalogu do tego samego katalogu lub do własnego podkatalogu",
"(copy)" : "(kopiuj)",
"(copy %n)" : "(kopiuj %n)",
@@ -277,12 +289,12 @@
"Cancelled move or copy operation" : "Anulowano operację przenoszenia lub kopiowania",
"Open folder {displayName}" : "Otwórz katalog {displayName}",
"Open in Files" : "Otwórz w Plikach",
+ "Open locally" : "Otwórz lokalnie",
+ "Failed to redirect to client" : "Nie udało się przekierować do klienta",
"Open file locally" : "Otwórz plik lokalnie",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Plik powinien teraz otworzyć się na Twoim urządzeniu. Jeśli tak się nie stanie, sprawdź, czy masz zainstalowaną aplikację komputerową.",
"Retry and close" : "Spróbuj ponownie i zamknij",
"Open online" : "Otwórz online",
- "Failed to redirect to client" : "Nie udało się przekierować do klienta",
- "Open locally" : "Otwórz lokalnie",
"Rename" : "Zmień nazwę",
"Open details" : "Otwórz szczegóły",
"View in folder" : "Zobacz w katalogu",
@@ -320,12 +332,16 @@
"Files moved successfully" : "Pliki zostały przeniesione pomyślnie",
"Conflicts resolution skipped" : "Pominięto rozwiązywanie konfliktów",
"Upload cancelled" : "Anulowano przesyłanie",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Nie można zmienić nazwy \"{oldName}\", już nie istnieje",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nazwa \"{newName}\" jest już używana w katalogu \"{dir}\". Wybierz inną nazwę.",
+ "Could not rename \"{oldName}\"" : "Nie można zmienić nazwy \"{oldName}\"",
"This operation is forbidden" : "Ta operacja jest niedozwolona",
"This directory is unavailable, please check the logs or contact the administrator" : "Ten katalog jest niedostępny, sprawdź logi lub skontaktuj się z administratorem",
"Storage is temporarily not available" : "Magazyn jest tymczasowo niedostępny",
"Unexpected error: {error}" : "Nieoczekiwany błąd: {error}",
"_%n file_::_%n files_" : ["%n plik","%n pliki","%n plików","%n plików"],
"_%n folder_::_%n folders_" : ["%n katalog","%n katalogi","%n katalogów","%n katalogów"],
+ "_%n hidden_::_%n hidden_" : ["%n ukryty","%n ukryte","%n ukrytych","%n ukrytych"],
"Filename must not be empty." : "Nazwa pliku nie może być pusta.",
"\"{char}\" is not allowed inside a filename." : "„{char}” nie jest dozwolone w nazwie pliku.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "„{segment}” jest nazwą zastrzeżoną i nie jest dozwolona w przypadku nazw plików.",
@@ -350,7 +366,6 @@
"Upload too large" : "Wysyłany plik jest za duży",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Pliki, które próbujesz wysłać, przekraczają maksymalną dopuszczalną wielkość.",
"File could not be found" : "Nie można znaleźć pliku",
- "Download" : "Pobierz",
"Show list view" : "Pokaż widok listy",
"Show grid view" : "Pokaż widok siatki",
"Close" : "Zamknij",
@@ -389,9 +404,6 @@
"Copied {origin} inside {destination}" : "Skopiowano {origin} wewnątrz {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Skopiowano {origin} oraz {nbfiles} innych plików wewnątrz {destination}",
"{newName} already exists" : "{newName} już istnieje",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nie można zmienić nazwy \"{fileName}\", plik już nie istnieje",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nazwa \"{targetName}\" jest już używana w katalogu \"{dir}\". Wybierz inną nazwę.",
- "Could not rename \"{fileName}\"" : "Nie można zmienić nazwy \"{fileName}\"",
"Could not create file \"{file}\"" : "Nie można utworzyć pliku \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Nie można utworzyć pliku \"{file}\", ponieważ ten plik już istnieje.",
"Could not create folder \"{dir}\" because it already exists" : "Nie można utworzyć katalogu \"{dir}\", ponieważ już istnieje",
@@ -424,35 +436,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Bezpośredni link został skopiowany (działa tylko dla użytkowników, którzy mają dostęp do tego pliku/katalogu)",
"Path" : "Ścieżka",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtów","%n bajtów"],
- "Favorited" : "Ulubiony",
+ "Favored" : "Polubione",
+ "Favor" : "Polub",
"Copy direct link (only works for people who have access to this file/folder)" : "Skopiuj bezpośredni link (działa tylko dla użytkowników, którzy mają dostęp do tego pliku/katalogu)",
"Upload file" : "Wyślij plik",
- "Not favorited" : "Wyłączone z ulubionych",
+ "Not favored" : "Nie polubiono",
"An error occurred while trying to update the tags" : "Wystąpił błąd podczas próby aktualizacji etykiet",
- "You don't have permission to upload or create files here." : "Nie masz uprawnień do wysyłania lub tworzenia plików w tym miejscu.",
- "Storage informations" : "Informacje o przechowywaniu",
- "Choose file" : "Wybierz plik",
- "Go to the previous folder" : "Przejdź do poprzedniego katalogu",
- "Open the files app settings" : "Otwórz ustawienia aplikacji plików",
- "Unable to change the favourite state of the file" : "Nie można zmienić ulubionego stanu pliku",
- "Edit file locally" : "Edytuj plik lokalnie",
- "Edit online" : "Edycja online",
- "Create new templates folder" : "Utwórz nowy katalog z szablonami",
+ "Upload (max. %s)" : "Wysyłanie (maks. %s)",
+ "Submitting fields…" : "Przesyłanie pól…",
+ "Filter filenames…" : "Filtruj nazwy plików…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} katalog","{folderCount} katalogi","{folderCount} katalogów","{folderCount} katalogów"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} plik","{fileCount} pliki","{fileCount} plików","{fileCount} plików"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 plik i {folderCount} katalog","1 plik i {folderCount} katalogi","1 plik i {folderCount} katalogów","1 plik i {folderCount} katalogów"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} plik i 1 katalog","{fileCount} pliki i 1 katalog","{fileCount} plików i 1 katalog","{fileCount} plików i 1 katalog"],
"{fileCount} files and {folderCount} folders" : "{fileCount} plików i {folderCount} katalogów",
- "List of favorites files and folders." : "Lista ulubionych plików i katalogów.",
"Personal Files" : "Pliki osobiste",
"Text file" : "Plik tekstowy",
"New text file.txt" : "Nowy plik tekstowy.txt",
- "Favored" : "Polubione",
- "Favor" : "Polub",
- "Not favored" : "Nie polubiono",
- "Submitting fields…" : "Przesyłanie pól…",
- "Filter filenames…" : "Filtruj nazwy plików…",
- "{count} files could not be converted" : "Nie można przekonwertować {count} plików",
- "{count} files successfully converted" : "Zostały pomyślnie przekonwertowane{count} plików"
+ "%1$s (renamed)" : "%1$s (zmieniona nazwa)",
+ "renamed file" : "zmieniona nazwa pliku",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po włączeniu nazw plików zgodnych z systemem Windows, istniejących plików nie można już modyfikować, ale ich właściciel może zmienić ich nazwy na nowe, prawidłowe."
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ps.js b/apps/files/l10n/ps.js
deleted file mode 100644
index 5dc63b90c17..00000000000
--- a/apps/files/l10n/ps.js
+++ /dev/null
@@ -1,135 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "فایل نشته",
- "Move or copy" : "انتقال یا کاپي کول",
- "Download" : "ښکته کول",
- "Delete" : "ړنګول",
- "Tags" : "نښکې",
- "Home" : "کور",
- "Close" : "بندول",
- "Favorites" : "په نښه شوي",
- "Could not create folder \"{dir}\"" : "\"{dir}\" فولډر نشي جوړېدای",
- "This will stop your current uploads." : "دا به اوسني فايلونه پورته کول بند کړي.",
- "Upload cancelled." : "فایل پورته کول بند شول.",
- "Processing files …" : "فایلونه د چمتووالي په حال کې دي ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} فایل نشي پورته کېدای ځکه چې تش دی. 0",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "تاسې {size1} پورته کوئ خو يوازې {size2} پاتې دی او ځای کم دی. ",
- "Target folder \"{dir}\" does not exist any more" : "\"{dir}\" فولډر نور شتون نلري",
- "Not enough free space" : "تش ځای نشته",
- "An unknown error has occurred" : "ستونزه وه.",
- "Uploading …" : "فايل د پورته کېدو په حال کې دی ...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} له {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "دا ډول فایل نشئ پورته کولای",
- "Target folder does not exist any more" : "دغه فولډر نور شتون نلري",
- "Actions" : "کړنې",
- "Rename" : "نوم بدلول",
- "Move" : "انتقال",
- "Copy" : "کاپي کول",
- "Choose target folder" : "د ورانتقالېدو فولډر ټاکل",
- "Open" : "پرانيستل",
- "Could not load info for file \"{file}\"" : "د \"{file}\" فایل معلومات نشي پرانيستل کېدای",
- "Files" : "فایلونه",
- "Details" : "معلومات",
- "Pending" : "د انتظار په حال کې",
- "Unable to determine date" : "نېټه نه معلومېږي",
- "This operation is forbidden" : "دا کړنه نشي کېدای",
- "Storage is temporarily not available" : "ذخیره د لنډې مودې لپاره نشته",
- "Could not move \"{file}\", target exists" : "\"{file}\" فایل نشي انتقالېدای ځکه هلته له مخه شتون لري",
- "Could not move \"{file}\"" : "\"{file}\" فایل نشي انتقالېدای",
- "copy" : "کاپي",
- "Could not copy \"{file}\", target exists" : "\"{file}\" فایل نشي کاپي کېدای ځکه هلته له مخه شتون لري",
- "Could not copy \"{file}\"" : "\"{file}\" فایل نشي کاپي کېدای",
- "Copied {origin} inside {destination}" : "له {origin} څخه {destination} کاپي شو",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} او {nbfiles} نور فایلونه {destination} ته کاپي شول",
- "{newName} already exists" : "{newName} له پخوا شتون لري",
- "Could not rename \"{fileName}\"" : " \"{fileName}\" فایل نوم نشئ بدلولی",
- "Could not create file \"{file}\"" : "\"{file}\" فایل نشي جوړېدای",
- "Could not create file \"{file}\" because it already exists" : "\"{file}\" فایل موجود دی. بيا يې نشئ جوړولی.",
- "Could not create folder \"{dir}\" because it already exists" : "\"{dir}\" فولډر موجود دی. بيا يې نشئ جوړولی.",
- "Error deleting file \"{fileName}\"." : "\"{fileName}\" فايل پاکولو کې ستونزه ده",
- "No search results in other folders for {tag}{filter}{endtag}" : "په نورو فولډرونو کې د {tag}{filter}{endtag} لپاره پايلې نه وې",
- "Name" : "نوم",
- "Size" : "کچه",
- "Modified" : "د بدلون نېټه",
- "_%n folder_::_%n folders_" : ["%n فولډر","%n فولډرونه"],
- "_%n file_::_%n files_" : ["%n فایل","%n فایلونه"],
- "{dirs} and {files}" : "{dirs} او {files}",
- "_including %n hidden_::_including %n hidden_" : [" پټ سربېره","%n پټ سربېره"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n فایل پورته کول","%n فایلونه پورته کول"],
- "Select file range" : "د فایلونو اندازه وټاکئ",
- "{used} of {quota} used" : "له {quota} څخه {used} کارول شوې",
- "{used} used" : "{used} کارول شوې",
- "\"{name}\" is an invalid file name." : "\"{name}\" د فایل لپاره سم نوم نه دی",
- "File name cannot be empty." : "فایل نوم تش نشي کېدای",
- "\"/\" is not allowed inside a file name." : "د فایل په نوم کې \"/\" نشئ کارولای",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" ډول فایلونو اجازه نشته",
- "View in folder" : "په فولډر کې کتل",
- "Path" : "درک",
- "_%n byte_::_%n bytes_" : ["%n بایټ","%n بايټونه"],
- "Favorited" : "په نښه شو",
- "Favorite" : "په نښه شوی",
- "Copy direct link (only works for users who have access to this file/folder)" : "نېغ لېنک کاپي کول",
- "You can only favorite a single file or folder at a time" : "په يو وخت یو فایل یا فولډر په نښه کېدای شي",
- "New folder" : "نوی فولډر",
- "Upload file" : "فایل پورته کول",
- "Recent" : "وروستي",
- "Not favorited" : "په نښه شوی نه دی",
- "Remove from favorites" : "له نښو ويستل",
- "Add to favorites" : "په نښه کول",
- "Added to favorites" : "په نښه شو",
- "Removed from favorites" : "له نښو لېرې شو",
- "You added {file} to your favorites" : "تاسې خپلو په نښه شويو فایلونو ته {file} ورډېر کړ",
- "You removed {file} from your favorites" : "تاسې له خپلو په نښه شويو فایلونو څخه {file} لرې کړ",
- "File changes" : "د فایل بدلونونه",
- "Created by {user}" : "{user} لخوا جوړ شوی",
- "Changed by {user}" : "{user} لخوا تغیر شوی",
- "Deleted by {user}" : "{user} لخوا ړنګ شوی",
- "Restored by {user}" : "{user} لخوا بېرته اصلي شوی",
- "Renamed by {user}" : "{user} لخوا بیا نومول شوی",
- "Moved by {user}" : "{user} لخوا انتقال شوی",
- "\"remote user\"" : "\"د بل ځای کارن\"",
- "You created {file}" : "تاسې {file} جوړ کړی",
- "{user} created {file}" : "{user} کارن {file} فایل جوړ کړ",
- "{file} was created in a public folder" : "{file} په یو عمومي فولډر کې جوړ شوی",
- "You changed {file}" : "تاسې په {file} کې تغیر راوستی",
- "You changed an encrypted file in {file}" : " تاسې په {file} کې يو خوندي فایل بدل کړ",
- "{user} changed {file}" : "{user} کارن {file} فایل کې تغیر رواستی",
- "{user} changed an encrypted file in {file}" : "{user} يو خوندي فايل په {file} کې بدل کړ",
- "You deleted {file}" : "تاسې {file} ړنګ کړی",
- "You deleted an encrypted file in {file}" : "تاسې په {file} کې يو خوندي فايل ړنګ کړ",
- "{user} deleted {file}" : "{user} کارن {file} فایل ړنګ کړ",
- "{user} deleted an encrypted file in {file}" : "{user} په {file} کې يو خوندي فايل ړنګ کړ",
- "You restored {file}" : "تاسې {file} اصلي حالت ته کړی",
- "{user} restored {file}" : "{user} کارن {file} فایل اصلي حالت ته کړی",
- "You renamed {oldfile} to {newfile}" : "تاسې {oldfile} فایل {newfile} نوم ته اړولی ",
- "{user} renamed {oldfile} to {newfile}" : "{user} {oldfile} فایل {newfile} نوم ته اړولی ",
- "All files" : "ټول فایلونه",
- "Upload (max. %s)" : "پورته کول (%s نهايي)",
- "File Management" : "فایلونه ترتیبول",
- "Select all" : "ټول ټاکل",
- "Unknown error" : "نامعلومه ستونزه",
- "No files in here" : "دلته فایلونه نشته",
- "Show hidden files" : "پټ فایلونه ليدل",
- "Toggle grid view" : "په جدولي شکل ليدل",
- "No entries found in this folder" : "په دې فولډر کې څه نشته",
- "Upload too large" : "د پورته کېدونکي فایل کچه لوړه ده",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "د دې سرور لپاره د پورته کېدونکي فایل کچه لوړه ده",
- "No favorites yet" : "تر اوسه نښې نشته",
- "Files and folders you mark as favorite will show up here" : "هغه فایلونه او فولډرې چې تاسې په نښه کړئ دلته به ښکاري",
- "Shares" : "شريک شوي",
- "Shared with others" : "نورو سره شريک شوي",
- "Shared with you" : "تاسې سره شريک شوي",
- "Shared by link" : "په لېنک شريک شوي",
- "Deleted shares" : "ړنګ شوي لېنکونه",
- "Text file" : "متن فایل",
- "New text file.txt" : "New text file.txt",
- "Storage invalid" : "ذخیره ناسمه ده",
- "Unlimited" : "نامحدود",
- "Cancel" : "پرېښول",
- "%s used" : "%sکارول شوې",
- "%1$s of %2$s used" : "د %2$sبرخې %1$sکارول شوې",
- "Deleted files" : "ړنګ شوي فایلونه"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ps.json b/apps/files/l10n/ps.json
deleted file mode 100644
index 7a7f4c16da1..00000000000
--- a/apps/files/l10n/ps.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{ "translations": {
- "File could not be found" : "فایل نشته",
- "Move or copy" : "انتقال یا کاپي کول",
- "Download" : "ښکته کول",
- "Delete" : "ړنګول",
- "Tags" : "نښکې",
- "Home" : "کور",
- "Close" : "بندول",
- "Favorites" : "په نښه شوي",
- "Could not create folder \"{dir}\"" : "\"{dir}\" فولډر نشي جوړېدای",
- "This will stop your current uploads." : "دا به اوسني فايلونه پورته کول بند کړي.",
- "Upload cancelled." : "فایل پورته کول بند شول.",
- "Processing files …" : "فایلونه د چمتووالي په حال کې دي ...",
- "…" : "...",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} فایل نشي پورته کېدای ځکه چې تش دی. 0",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "تاسې {size1} پورته کوئ خو يوازې {size2} پاتې دی او ځای کم دی. ",
- "Target folder \"{dir}\" does not exist any more" : "\"{dir}\" فولډر نور شتون نلري",
- "Not enough free space" : "تش ځای نشته",
- "An unknown error has occurred" : "ستونزه وه.",
- "Uploading …" : "فايل د پورته کېدو په حال کې دی ...",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} له {totalSize} ({bitrate})",
- "Uploading that item is not supported" : "دا ډول فایل نشئ پورته کولای",
- "Target folder does not exist any more" : "دغه فولډر نور شتون نلري",
- "Actions" : "کړنې",
- "Rename" : "نوم بدلول",
- "Move" : "انتقال",
- "Copy" : "کاپي کول",
- "Choose target folder" : "د ورانتقالېدو فولډر ټاکل",
- "Open" : "پرانيستل",
- "Could not load info for file \"{file}\"" : "د \"{file}\" فایل معلومات نشي پرانيستل کېدای",
- "Files" : "فایلونه",
- "Details" : "معلومات",
- "Pending" : "د انتظار په حال کې",
- "Unable to determine date" : "نېټه نه معلومېږي",
- "This operation is forbidden" : "دا کړنه نشي کېدای",
- "Storage is temporarily not available" : "ذخیره د لنډې مودې لپاره نشته",
- "Could not move \"{file}\", target exists" : "\"{file}\" فایل نشي انتقالېدای ځکه هلته له مخه شتون لري",
- "Could not move \"{file}\"" : "\"{file}\" فایل نشي انتقالېدای",
- "copy" : "کاپي",
- "Could not copy \"{file}\", target exists" : "\"{file}\" فایل نشي کاپي کېدای ځکه هلته له مخه شتون لري",
- "Could not copy \"{file}\"" : "\"{file}\" فایل نشي کاپي کېدای",
- "Copied {origin} inside {destination}" : "له {origin} څخه {destination} کاپي شو",
- "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} او {nbfiles} نور فایلونه {destination} ته کاپي شول",
- "{newName} already exists" : "{newName} له پخوا شتون لري",
- "Could not rename \"{fileName}\"" : " \"{fileName}\" فایل نوم نشئ بدلولی",
- "Could not create file \"{file}\"" : "\"{file}\" فایل نشي جوړېدای",
- "Could not create file \"{file}\" because it already exists" : "\"{file}\" فایل موجود دی. بيا يې نشئ جوړولی.",
- "Could not create folder \"{dir}\" because it already exists" : "\"{dir}\" فولډر موجود دی. بيا يې نشئ جوړولی.",
- "Error deleting file \"{fileName}\"." : "\"{fileName}\" فايل پاکولو کې ستونزه ده",
- "No search results in other folders for {tag}{filter}{endtag}" : "په نورو فولډرونو کې د {tag}{filter}{endtag} لپاره پايلې نه وې",
- "Name" : "نوم",
- "Size" : "کچه",
- "Modified" : "د بدلون نېټه",
- "_%n folder_::_%n folders_" : ["%n فولډر","%n فولډرونه"],
- "_%n file_::_%n files_" : ["%n فایل","%n فایلونه"],
- "{dirs} and {files}" : "{dirs} او {files}",
- "_including %n hidden_::_including %n hidden_" : [" پټ سربېره","%n پټ سربېره"],
- "_Uploading %n file_::_Uploading %n files_" : ["%n فایل پورته کول","%n فایلونه پورته کول"],
- "Select file range" : "د فایلونو اندازه وټاکئ",
- "{used} of {quota} used" : "له {quota} څخه {used} کارول شوې",
- "{used} used" : "{used} کارول شوې",
- "\"{name}\" is an invalid file name." : "\"{name}\" د فایل لپاره سم نوم نه دی",
- "File name cannot be empty." : "فایل نوم تش نشي کېدای",
- "\"/\" is not allowed inside a file name." : "د فایل په نوم کې \"/\" نشئ کارولای",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" ډول فایلونو اجازه نشته",
- "View in folder" : "په فولډر کې کتل",
- "Path" : "درک",
- "_%n byte_::_%n bytes_" : ["%n بایټ","%n بايټونه"],
- "Favorited" : "په نښه شو",
- "Favorite" : "په نښه شوی",
- "Copy direct link (only works for users who have access to this file/folder)" : "نېغ لېنک کاپي کول",
- "You can only favorite a single file or folder at a time" : "په يو وخت یو فایل یا فولډر په نښه کېدای شي",
- "New folder" : "نوی فولډر",
- "Upload file" : "فایل پورته کول",
- "Recent" : "وروستي",
- "Not favorited" : "په نښه شوی نه دی",
- "Remove from favorites" : "له نښو ويستل",
- "Add to favorites" : "په نښه کول",
- "Added to favorites" : "په نښه شو",
- "Removed from favorites" : "له نښو لېرې شو",
- "You added {file} to your favorites" : "تاسې خپلو په نښه شويو فایلونو ته {file} ورډېر کړ",
- "You removed {file} from your favorites" : "تاسې له خپلو په نښه شويو فایلونو څخه {file} لرې کړ",
- "File changes" : "د فایل بدلونونه",
- "Created by {user}" : "{user} لخوا جوړ شوی",
- "Changed by {user}" : "{user} لخوا تغیر شوی",
- "Deleted by {user}" : "{user} لخوا ړنګ شوی",
- "Restored by {user}" : "{user} لخوا بېرته اصلي شوی",
- "Renamed by {user}" : "{user} لخوا بیا نومول شوی",
- "Moved by {user}" : "{user} لخوا انتقال شوی",
- "\"remote user\"" : "\"د بل ځای کارن\"",
- "You created {file}" : "تاسې {file} جوړ کړی",
- "{user} created {file}" : "{user} کارن {file} فایل جوړ کړ",
- "{file} was created in a public folder" : "{file} په یو عمومي فولډر کې جوړ شوی",
- "You changed {file}" : "تاسې په {file} کې تغیر راوستی",
- "You changed an encrypted file in {file}" : " تاسې په {file} کې يو خوندي فایل بدل کړ",
- "{user} changed {file}" : "{user} کارن {file} فایل کې تغیر رواستی",
- "{user} changed an encrypted file in {file}" : "{user} يو خوندي فايل په {file} کې بدل کړ",
- "You deleted {file}" : "تاسې {file} ړنګ کړی",
- "You deleted an encrypted file in {file}" : "تاسې په {file} کې يو خوندي فايل ړنګ کړ",
- "{user} deleted {file}" : "{user} کارن {file} فایل ړنګ کړ",
- "{user} deleted an encrypted file in {file}" : "{user} په {file} کې يو خوندي فايل ړنګ کړ",
- "You restored {file}" : "تاسې {file} اصلي حالت ته کړی",
- "{user} restored {file}" : "{user} کارن {file} فایل اصلي حالت ته کړی",
- "You renamed {oldfile} to {newfile}" : "تاسې {oldfile} فایل {newfile} نوم ته اړولی ",
- "{user} renamed {oldfile} to {newfile}" : "{user} {oldfile} فایل {newfile} نوم ته اړولی ",
- "All files" : "ټول فایلونه",
- "Upload (max. %s)" : "پورته کول (%s نهايي)",
- "File Management" : "فایلونه ترتیبول",
- "Select all" : "ټول ټاکل",
- "Unknown error" : "نامعلومه ستونزه",
- "No files in here" : "دلته فایلونه نشته",
- "Show hidden files" : "پټ فایلونه ليدل",
- "Toggle grid view" : "په جدولي شکل ليدل",
- "No entries found in this folder" : "په دې فولډر کې څه نشته",
- "Upload too large" : "د پورته کېدونکي فایل کچه لوړه ده",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "د دې سرور لپاره د پورته کېدونکي فایل کچه لوړه ده",
- "No favorites yet" : "تر اوسه نښې نشته",
- "Files and folders you mark as favorite will show up here" : "هغه فایلونه او فولډرې چې تاسې په نښه کړئ دلته به ښکاري",
- "Shares" : "شريک شوي",
- "Shared with others" : "نورو سره شريک شوي",
- "Shared with you" : "تاسې سره شريک شوي",
- "Shared by link" : "په لېنک شريک شوي",
- "Deleted shares" : "ړنګ شوي لېنکونه",
- "Text file" : "متن فایل",
- "New text file.txt" : "New text file.txt",
- "Storage invalid" : "ذخیره ناسمه ده",
- "Unlimited" : "نامحدود",
- "Cancel" : "پرېښول",
- "%s used" : "%sکارول شوې",
- "%1$s of %2$s used" : "د %2$sبرخې %1$sکارول شوې",
- "Deleted files" : "ړنګ شوي فایلونه"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 62a20efeddd..722c29d09bb 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Arquivos favoritos",
"No favorites" : "Sem favoritos",
"More favorites" : "Mais favoritos",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Aceitar",
"Reject" : "Rejeitar",
"Incoming ownership transfer from {user}" : "Transferência de propriedade recebida de {user}",
@@ -68,9 +67,11 @@ OC.L10N.register(
"Your ownership transfer of {path} to {user} has completed." : "A transferência da sua propriedade de {path} para {user} foi concluída.",
"The ownership transfer of {path} from {user} has completed." : "A transferência da propriedade de {path} de {user} foi concluída.",
"in %s" : "em %s",
- "Transferred from %1$s on %2$s" : "Transferido de %1$s para %2$s",
+ "Transferred from %1$s on %2$s" : "Transferido de %1$s em %2$s",
"Files compatibility" : "Compatibilidade de arquivos",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permitir restringir nomes de arquivos para garantir que os arquivos possam ser sincronizados com todos os clientes. Por padrão, todos os nomes de arquivos válidos em POSIX (p. ex., Linux ou macOS) são permitidos.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Depois de ativar os nomes de arquivos compatíveis com o Windows, os arquivos existentes não podem mais ser modificados, mas podem ser renomeados para novos nomes válidos pelo proprietário.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Também é possível migrar arquivos automaticamente depois de ativar esta configuração. Consulte a documentação sobre o comando occ.",
"Enforce Windows compatibility" : "Forçar compatibilidade com Windows ",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Isso bloqueará nomes de arquivos não válidos em sistemas Windows, como nomes reservados ou caracteres especiais. Mas isso não imporá a compatibilidade da distinção entre maiúsculas e minúsculas.",
"File Management" : "Gerenciamento de Arquivos",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Nome de arquivo inválido.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" foi renomeado para \"{newName}\"",
"Rename file" : "Renomear arquivo",
+ "Folder" : "Pasta",
+ "Unknown file type" : "Tipo de arquivo desconhecido",
+ "{ext} image" : "imagem {ext}",
+ "{ext} video" : "vídeo {ext}",
+ "{ext} audio" : "áudio {ext}",
+ "{ext} text" : "texto {ext}",
"Pending" : "Pendente",
"Unknown date" : "Data desconhecida",
"Clear filter" : "Limpar filtro",
@@ -102,9 +109,10 @@ OC.L10N.register(
"Type" : "Tipo",
"Active filters" : "Filtros ativos",
"Remove filter" : "Remover filtro",
- "Total rows summary" : "Resumo de todas linhas",
+ "Total rows summary" : "Resumo do total de linhas",
"Toggle selection for all files and folders" : "Alternar seleção para todos os arquivos e pastas",
"Name" : "Nome",
+ "File type" : "Tipo de arquivo",
"Size" : "Tamanho",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" falhou em alguns elementos",
"\"{displayName}\" batch action executed successfully" : "Ação em lote \"{displayName}\" executada com êxito",
@@ -113,10 +121,10 @@ OC.L10N.register(
"(selected)" : "(selecionados)",
"List of files and folders." : "Lista de arquivos e pastas.",
"You have used your space quota and cannot upload files anymore." : "Você usou sua cota de espaço e não pode mais fazer upload de arquivos.",
- "Column headers with buttons are sortable." : "Os cabeçalhos das colunas com botões são classificáveis.",
- "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Essa lista não é totalmente renderizada por motivos de desempenho. Os arquivos serão renderizados conforme você navega pela lista.",
+ "Column headers with buttons are sortable." : "Os cabeçalhos de coluna com botões podem ser ordenados.",
+ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista não é totalmente renderizada por motivos de desempenho. Os arquivos serão renderizados à medida que você navegar pela lista.",
"File not found" : "Arquivo não encontrado",
- "{count} selected" : "{count} selecionados",
+ "_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionados","{count} selecionados"],
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% usado",
@@ -181,8 +189,9 @@ OC.L10N.register(
"Clipboard is not available" : "A área de transferência não está disponível",
"WebDAV URL copied to clipboard" : "URL de WebDAV copiado para a área de transferência",
"Sort favorites first" : "Ordenar favoritos primeiro",
- "Sort folders before files" : "Classifique as pastas antes dos arquivos",
+ "Sort folders before files" : "Ordenar pastas antes de arquivos",
"Show hidden files" : "Mostrar arquivos ocultos",
+ "Show file type column" : "Mostrar coluna de tipo de arquivo",
"Crop image previews" : "Cortar visualizações de imagem",
"Enable the grid view" : "Ativar a visualização em grade",
"Enable folder tree" : "Ativar árvore de pastas",
@@ -191,13 +200,13 @@ OC.L10N.register(
"WebDAV URL" : "URL WebDAV",
"Copy to clipboard" : "Copiar para área de transferência",
"Use this address to access your Files via WebDAV" : "Use este endereço para acessar seus Arquivos via WebDAV",
- "If you have enabled 2FA, you must create and use a new app password by clicking here." : "If you have enabled 2FA, you must create and use a new app password by clicking here.",
+ "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Se tiver ativado a 2FA, você deverá criar e usar uma nova senha do aplicativo clicando aqui.",
"Warnings" : "Avisos",
"Prevent warning dialogs from open or reenable them." : "Impedir que as caixas de diálogo de aviso sejam abertas ou reativá-las.",
"Show a warning dialog when changing a file extension." : "Mostrar uma caixa de diálogo de aviso ao alterar uma extensão de arquivo.",
"Keyboard shortcuts" : "Atalhos do teclado",
"Speed up your Files experience with these quick shortcuts." : "Acelere sua experiência com os Arquivos com estes atalhos",
- "Open the actions menu for a file" : "Abrir menu de ações para arquivo",
+ "Open the actions menu for a file" : "Abrir o menu de ações para um arquivo",
"Rename a file" : "Renomear um arquivo",
"Delete a file" : "Remover um arquivo",
"Favorite or remove a file from favorites" : "Favoritar ou remover arquivo dos favoritos",
@@ -206,37 +215,38 @@ OC.L10N.register(
"Select all files" : "Selecionar todos os arquivos",
"Deselect all files" : "Deselecionar todos os arquivos",
"Select or deselect a file" : "Selecionar ou deselecionar um arquivo",
- "Select a range of files" : "Selecionar múltiplos arquivos",
+ "Select a range of files" : "Selecione um intervalo de arquivos",
"Navigation" : "Navegação",
"Navigate to the parent folder" : "Navegar para o diretório pai",
"Navigate to the file above" : "Navegar para o arquivo acima",
"Navigate to the file below" : "Navegar para o arquivo abaixo",
"Navigate to the file on the left (in grid mode)" : "Navegar para o arquivo à esquerda (no modo de grade)",
"Navigate to the file on the right (in grid mode)" : "Navegar para o arquivo à direita (no modo de grade)",
- "View" : "Visualizar",
- "Toggle the grid view" : "Ativar/Desativar modo grade",
+ "View" : "Visualização",
+ "Toggle the grid view" : "Alternar visualização em grade",
"Open the sidebar for a file" : "Abrir barra lateral para um arquivo",
"Show those shortcuts" : "Mostrar esses atalhos",
"You" : "Você",
"Shared multiple times with different people" : "Compartilhado várias vezes com pessoas diferentes",
+ "Unable to change the favorite state of the file" : "Impossível mudar estado de favorito do arquivo",
"Error while loading the file data" : "Erro ao carregar os dados do arquivo",
"Owner" : "Proprietário",
"Remove from favorites" : "Excluir dos favoritos",
"Add to favorites" : "Adicionar aos favoritos",
"Tags" : "Etiquetas",
"Blank" : "Em branco",
- "Unable to create new file from template" : "Incapaz de criar novo arquivo a partir do modelo",
+ "Unable to create new file from template" : "Não é possível criar novo arquivo a partir do modelo",
"Pick a template for {name}" : "Escolha um modelo para {name}",
- "Create a new file with the selected template" : "Crie um novo arquivo com o modelo selecionado",
+ "Create a new file with the selected template" : "Criar um novo arquivo com o modelo selecionado",
"Creating file" : "Criando arquivo",
"Save as {displayName}" : "Salvar como {displayName}",
"Save as …" : "Salvar como …",
"Converting files …" : "Convertendo arquivos …",
"Failed to convert files: {message}" : "Falha ao converter arquivos: {message}",
- "All files failed to be converted" : "Todos os arquivos falharam na conversão",
+ "All files failed to be converted" : "Falha na conversão de todos os arquivos",
"One file could not be converted: {message}" : "Um arquivo não pôde ser convertido: {message}",
- "_One file could not be converted_::_%n files could not be converted_" : ["Não foi possível converter um arquivo","Não foi possível converter %n arquivos","Não foi possível converter %n arquivos"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Um arquivo convertido com sucesso","%n arquivos convertidos com sucesso","%n arquivos convertidos com sucesso"],
+ "_One file could not be converted_::_%n files could not be converted_" : ["Não foi possível converter um arquivo","Não foi possível converter %n de arquivos","Não foi possível converter %n arquivos"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Um arquivo convertido com sucesso","%n de arquivos convertidos com sucesso","%n arquivos convertidos com sucesso"],
"Files successfully converted" : "Arquivos convertidos com sucesso",
"Failed to convert files" : "Falha ao converter arquivos",
"Converting file …" : "Convertendo arquivo …",
@@ -255,12 +265,15 @@ OC.L10N.register(
"Delete folder" : "Excluir pasta",
"Delete folders" : "Excluir pastas",
"Delete" : "Excluir",
- "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Você está prestes a excluir permanentemente {count} item","Você está prestes a excluir permanentemente {count} itens","Você está prestes a excluir permanentemente {count} itens"],
- "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Você está prestes a excluir {count} item","Você está prestes a excluir {count} itens","Você está prestes a excluir {count} itens"],
+ "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Você está prestes a excluir permanentemente {count} item","Você está prestes a excluir permanentemente {count} de itens","Você está prestes a excluir permanentemente {count} itens"],
+ "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Você está prestes a excluir {count} item","Você está prestes a excluir {count} de itens","Você está prestes a excluir {count} itens"],
"Confirm deletion" : "Confirmar exclusão",
"Cancel" : "Cancelar",
+ "Download" : "Baixar",
"Moving \"{source}\" to \"{destination}\" …" : "Movendo \"{source}\" para \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copiando \"{source}\" para \"{destination}\" …",
+ "Destination is not a folder" : "O destino não é uma pasta",
+ "This file/folder is already in that directory" : "Este arquivo/pasta já está nesse diretório",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Não é possível mover um arquivo/pasta para ele mesmo ou para uma subpasta dele mesmo",
"(copy)" : "(cópia)",
"(copy %n)" : "(cópia %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Operação de mover ou copiar cancelada",
"Open folder {displayName}" : "Abrir a pasta {displayName}",
"Open in Files" : "Abrir em Arquivos",
+ "Open locally" : "Abrir localmente",
+ "Failed to redirect to client" : "Falha ao redirecionar para o cliente",
"Open file locally" : "Abrir o arquivo localmente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "O arquivo agora deve abrir no seu dispositivo. Caso contrário, verifique se você tem o aplicativo para desktop instalado.",
"Retry and close" : "Repetir e fechar",
"Open online" : "Abrir on-line",
- "Failed to redirect to client" : "Falha ao redirecionar para o cliente",
- "Open locally" : "Abrir localmente",
"Rename" : "Renomear",
"Open details" : "Abrir detalhes",
"View in folder" : "Exibir na pasta",
@@ -309,25 +322,29 @@ OC.L10N.register(
"New template folder" : "Nova pasta de modelo",
"In folder" : "Na pasta",
"Search in folder: {folder}" : "Pesquisar na pasta: {folder}",
- "One of the dropped files could not be processed" : "Um dos arquivos descartados não pôde ser processado",
+ "One of the dropped files could not be processed" : "Um dos arquivos depositados não pôde ser processado",
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "Seu navegador não oferece suporte à API Filesystem. Os diretórios não serão carregados",
- "No files to upload" : "Não há arquivos para enviar",
+ "No files to upload" : "Não há arquivos para carregar",
"Unable to create the directory {directory}" : "Não foi possível criar o diretório {directory}",
"Some files could not be uploaded" : "Alguns arquivos não puderam ser carregados",
- "Files uploaded successfully" : "Arquivos enviados com sucesso",
+ "Files uploaded successfully" : "Arquivos carregados com sucesso",
"No files to process" : "Nenhum arquivo para processar",
"Some files could not be copied" : "Alguns arquivos não puderam ser copiados",
"Some files could not be moved" : "Alguns arquivos não puderam ser movidos",
"Files copied successfully" : "Arquivos copiados com sucesso",
"Files moved successfully" : "Arquivos movidos com sucesso",
- "Conflicts resolution skipped" : "Resolução de conflitos ignorada",
+ "Conflicts resolution skipped" : "Resolução de conflitos pulada",
"Upload cancelled" : "Upload cancelado",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Não foi possível renomear \"{oldName}\", ele não existe mais",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{newName}\" já é utilizado na pasta \"{dir}\". Escolha um nome diferente.",
+ "Could not rename \"{oldName}\"" : "Não foi possível renomear \"{oldName}\"",
"This operation is forbidden" : "Esta operação é proibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Este diretório não está disponível, por favor verifique os logs ou contacte o administrador",
"Storage is temporarily not available" : "O armazenamento está temporariamente indisponível",
"Unexpected error: {error}" : "Erro inesperado: {error}",
- "_%n file_::_%n files_" : ["%n arquivo","%n arquivos","%n arquivos"],
- "_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
+ "_%n file_::_%n files_" : ["%n arquivo","%n de arquivos","%n arquivos"],
+ "_%n folder_::_%n folders_" : ["%n pasta","%n de pastas","%n pastas"],
+ "_%n hidden_::_%n hidden_" : ["%n oculto","%n de ocultos","%n ocultos"],
"Filename must not be empty." : "O nome do arquivo não pode estar vazio.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" não é permitido dentro de um nome de arquivo.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" é um nome reservado e não é permitido para nomes de arquivos.",
@@ -352,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Arquivo muito grande para fazer upload",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os arquivos que você está tentando enviar excederam o tamanho máximo para arquivos no servidor.",
"File could not be found" : "O arquivo não foi encontrado",
- "Download" : "Baixar",
"Show list view" : "Mostrar visualização em lista",
"Show grid view" : "Mostrar visualização em grade",
"Close" : "Fechar",
@@ -391,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} foi copiado para {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} e outros {nbfiles} arquivos foram copiados para {destination}",
"{newName} already exists" : "{newName} já existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "Não foi possível renomear \"{fileName}\" pois ele não existe mais",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{targetName}\" já está sendo usado na pasta  \"{dir}\". Por favor escolha um nome diferente.",
- "Could not rename \"{fileName}\"" : "Não foi possível renomear \"{fileName}\"",
"Could not create file \"{file}\"" : "Não foi possível criar o arquivo \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Não foi possível criar o arquivo \"{file}\" pois ele já existe",
"Could not create folder \"{dir}\" because it already exists" : "Não foi possível criar a pasta \"{dir}\" pois ela já existe",
@@ -402,9 +415,9 @@ OC.L10N.register(
"No search results in other folders for {tag}{filter}{endtag}" : "Sem resultados de pesquisa em outras pastas para {tag}{filter}{endtag}",
"Enter more than two characters to search in other folders" : "Digite mais de dois caracteres para pesquisar em outras pastas",
"{dirs} and {files}" : "{dirs} e {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluindo %n oculto","incluindo %n ocultos","incluindo %n ocultos"],
+ "_including %n hidden_::_including %n hidden_" : ["incluindo %n oculto","incluindo %n de ocultos","incluindo %n ocultos"],
"You do not have permission to upload or create files here" : "Você não tem permissão para carregar ou criar arquivos aqui",
- "_Uploading %n file_::_Uploading %n files_" : ["Enviando %n arquivo","Enviando %n arquivos","Enviando %n arquivos"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Enviando %n arquivo","Enviando %n de arquivos","Enviando %n arquivos"],
"New" : "Novo",
"New file/folder menu" : "Menu de novo arquivo/pasta",
"Select file range" : "Selecionar o intervalo de arquivos",
@@ -422,39 +435,29 @@ OC.L10N.register(
"Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "A pasta de grupo \"{mountPoint}\" está quase cheia ({usedSpacePercent}%).",
"External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "O armazenamento externo \"{mountPoint}\" está quase cheio ({usedSpacePercent}%).",
"Your storage is almost full ({usedSpacePercent}%)." : "Seu armazenamento está quase cheio ({usedSpacePercent}%).",
- "_matches \"{filter}\"_::_match \"{filter}\"_" : ["coincide \"{filter}\"","coincide \"{filter}\"","coincide \"{filter}\""],
- "Direct link was copied (only works for people who have access to this file/folder)" : "Link direto foi copiado (funciona apenas para pessoas que têm acesso a este arquivo/pasta)",
+ "_matches \"{filter}\"_::_match \"{filter}\"_" : ["corresponde a \"{filter}\"","correspondem a \"{filter}\"","correspondem a \"{filter}\""],
+ "Direct link was copied (only works for people who have access to this file/folder)" : "Link direto foi copiado (funciona apenas para pessoas que têm acesso a este arquivo/esta pasta)",
"Path" : "Caminho",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Favoritado",
- "Copy direct link (only works for people who have access to this file/folder)" : "Copiar link direto (funciona apenas para pessoas que têm acesso a este arquivo/pasta)",
+ "Favored" : "Marcado como favorito",
+ "Favor" : "Marcar como favorito",
+ "Copy direct link (only works for people who have access to this file/folder)" : "Copiar link direto (funciona apenas para pessoas que têm acesso a este arquivo/esta pasta)",
"Upload file" : "Enviar arquivo",
- "Not favorited" : "Sem favoritos",
+ "Not favored" : "Não marcado como favorito",
"An error occurred while trying to update the tags" : "Ocorreu um erro enquanto tentava atualizar as etiquetas",
- "You don't have permission to upload or create files here." : "Você não tem permissão para carregar ou criar arquivos aqui.",
- "Storage informations" : "Informações de armazenamento",
- "Choose file" : "Escolher arquivo",
- "Go to the previous folder" : "Ir para a pasta anterior",
- "Open the files app settings" : "Abrir as configurações do aplicativo de arquivos",
- "Unable to change the favourite state of the file" : "Não foi possível alterar o estado favorito do arquivo",
- "Edit file locally" : "Editar arquivo localmente",
- "Edit online" : "Editar on-line",
- "Create new templates folder" : "Criar nova pasta de modelos",
- "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} pasta","{folderCount} pastas","{folderCount} pastas"],
- "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} arquivo","{fileCount} arquivos","{fileCount} arquivos"],
- "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 arquivo e {folderCount} pasta","1 arquivo e {folderCount} pastas","1 arquivo e {folderCount} pastas"],
- "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} arquivo e 1 pasta","{fileCount} arquivos e 1 pasta","{fileCount} arquivos e 1 pasta"],
+ "Upload (max. %s)" : "Upload (max. %s)",
+ "Submitting fields…" : "Enviando campos…",
+ "Filter filenames…" : "Filtrar nomes de arquivos…",
+ "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} pasta","{folderCount} de pastas","{folderCount} pastas"],
+ "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} arquivo","{fileCount} de arquivos","{fileCount} arquivos"],
+ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 arquivo e {folderCount} pasta","1 arquivo e {folderCount} de pastas","1 arquivo e {folderCount} pastas"],
+ "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} arquivo e 1 pasta","{fileCount} de arquivos e 1 pasta","{fileCount} arquivos e 1 pasta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} arquivos e {folderCount} pastas",
- "List of favorites files and folders." : "Lista de arquivos e pastas favoritos.",
"Personal Files" : "Arquivos pessoais",
"Text file" : "Arquivo texto",
"New text file.txt" : "Novo arquivo de texto.txt",
- "Favored" : "Favoritado",
- "Favor" : "Favor",
- "Not favored" : "Não favoritado",
- "Submitting fields…" : "Enviando campos…",
- "Filter filenames…" : "Filtrar nomes de arquivos...",
- "{count} files could not be converted" : "{count} arquivos não puderam ser convertidos",
- "{count} files successfully converted" : "{count} arquivos convertidos com sucesso"
+ "%1$s (renamed)" : "%1$s (renomeado)",
+ "renamed file" : "arquivo renomeado",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Depois de ativar os nomes de arquivos compatíveis com o Windows, os arquivos existentes não podem mais ser modificados, mas podem ser renomeados para novos nomes válidos pelo proprietário."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 1473d0d62a8..8f361e72cf8 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -52,7 +52,6 @@
"Favorite files" : "Arquivos favoritos",
"No favorites" : "Sem favoritos",
"More favorites" : "Mais favoritos",
- "Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Aceitar",
"Reject" : "Rejeitar",
"Incoming ownership transfer from {user}" : "Transferência de propriedade recebida de {user}",
@@ -66,9 +65,11 @@
"Your ownership transfer of {path} to {user} has completed." : "A transferência da sua propriedade de {path} para {user} foi concluída.",
"The ownership transfer of {path} from {user} has completed." : "A transferência da propriedade de {path} de {user} foi concluída.",
"in %s" : "em %s",
- "Transferred from %1$s on %2$s" : "Transferido de %1$s para %2$s",
+ "Transferred from %1$s on %2$s" : "Transferido de %1$s em %2$s",
"Files compatibility" : "Compatibilidade de arquivos",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Permitir restringir nomes de arquivos para garantir que os arquivos possam ser sincronizados com todos os clientes. Por padrão, todos os nomes de arquivos válidos em POSIX (p. ex., Linux ou macOS) são permitidos.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Depois de ativar os nomes de arquivos compatíveis com o Windows, os arquivos existentes não podem mais ser modificados, mas podem ser renomeados para novos nomes válidos pelo proprietário.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Também é possível migrar arquivos automaticamente depois de ativar esta configuração. Consulte a documentação sobre o comando occ.",
"Enforce Windows compatibility" : "Forçar compatibilidade com Windows ",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Isso bloqueará nomes de arquivos não válidos em sistemas Windows, como nomes reservados ou caracteres especiais. Mas isso não imporá a compatibilidade da distinção entre maiúsculas e minúsculas.",
"File Management" : "Gerenciamento de Arquivos",
@@ -93,6 +94,12 @@
"Invalid filename." : "Nome de arquivo inválido.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" foi renomeado para \"{newName}\"",
"Rename file" : "Renomear arquivo",
+ "Folder" : "Pasta",
+ "Unknown file type" : "Tipo de arquivo desconhecido",
+ "{ext} image" : "imagem {ext}",
+ "{ext} video" : "vídeo {ext}",
+ "{ext} audio" : "áudio {ext}",
+ "{ext} text" : "texto {ext}",
"Pending" : "Pendente",
"Unknown date" : "Data desconhecida",
"Clear filter" : "Limpar filtro",
@@ -100,9 +107,10 @@
"Type" : "Tipo",
"Active filters" : "Filtros ativos",
"Remove filter" : "Remover filtro",
- "Total rows summary" : "Resumo de todas linhas",
+ "Total rows summary" : "Resumo do total de linhas",
"Toggle selection for all files and folders" : "Alternar seleção para todos os arquivos e pastas",
"Name" : "Nome",
+ "File type" : "Tipo de arquivo",
"Size" : "Tamanho",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" falhou em alguns elementos",
"\"{displayName}\" batch action executed successfully" : "Ação em lote \"{displayName}\" executada com êxito",
@@ -111,10 +119,10 @@
"(selected)" : "(selecionados)",
"List of files and folders." : "Lista de arquivos e pastas.",
"You have used your space quota and cannot upload files anymore." : "Você usou sua cota de espaço e não pode mais fazer upload de arquivos.",
- "Column headers with buttons are sortable." : "Os cabeçalhos das colunas com botões são classificáveis.",
- "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Essa lista não é totalmente renderizada por motivos de desempenho. Os arquivos serão renderizados conforme você navega pela lista.",
+ "Column headers with buttons are sortable." : "Os cabeçalhos de coluna com botões podem ser ordenados.",
+ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista não é totalmente renderizada por motivos de desempenho. Os arquivos serão renderizados à medida que você navegar pela lista.",
"File not found" : "Arquivo não encontrado",
- "{count} selected" : "{count} selecionados",
+ "_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionados","{count} selecionados"],
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "{used} de {quota} usados",
"{relative}% used" : "{relative}% usado",
@@ -179,8 +187,9 @@
"Clipboard is not available" : "A área de transferência não está disponível",
"WebDAV URL copied to clipboard" : "URL de WebDAV copiado para a área de transferência",
"Sort favorites first" : "Ordenar favoritos primeiro",
- "Sort folders before files" : "Classifique as pastas antes dos arquivos",
+ "Sort folders before files" : "Ordenar pastas antes de arquivos",
"Show hidden files" : "Mostrar arquivos ocultos",
+ "Show file type column" : "Mostrar coluna de tipo de arquivo",
"Crop image previews" : "Cortar visualizações de imagem",
"Enable the grid view" : "Ativar a visualização em grade",
"Enable folder tree" : "Ativar árvore de pastas",
@@ -189,13 +198,13 @@
"WebDAV URL" : "URL WebDAV",
"Copy to clipboard" : "Copiar para área de transferência",
"Use this address to access your Files via WebDAV" : "Use este endereço para acessar seus Arquivos via WebDAV",
- "If you have enabled 2FA, you must create and use a new app password by clicking here." : "If you have enabled 2FA, you must create and use a new app password by clicking here.",
+ "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Se tiver ativado a 2FA, você deverá criar e usar uma nova senha do aplicativo clicando aqui.",
"Warnings" : "Avisos",
"Prevent warning dialogs from open or reenable them." : "Impedir que as caixas de diálogo de aviso sejam abertas ou reativá-las.",
"Show a warning dialog when changing a file extension." : "Mostrar uma caixa de diálogo de aviso ao alterar uma extensão de arquivo.",
"Keyboard shortcuts" : "Atalhos do teclado",
"Speed up your Files experience with these quick shortcuts." : "Acelere sua experiência com os Arquivos com estes atalhos",
- "Open the actions menu for a file" : "Abrir menu de ações para arquivo",
+ "Open the actions menu for a file" : "Abrir o menu de ações para um arquivo",
"Rename a file" : "Renomear um arquivo",
"Delete a file" : "Remover um arquivo",
"Favorite or remove a file from favorites" : "Favoritar ou remover arquivo dos favoritos",
@@ -204,37 +213,38 @@
"Select all files" : "Selecionar todos os arquivos",
"Deselect all files" : "Deselecionar todos os arquivos",
"Select or deselect a file" : "Selecionar ou deselecionar um arquivo",
- "Select a range of files" : "Selecionar múltiplos arquivos",
+ "Select a range of files" : "Selecione um intervalo de arquivos",
"Navigation" : "Navegação",
"Navigate to the parent folder" : "Navegar para o diretório pai",
"Navigate to the file above" : "Navegar para o arquivo acima",
"Navigate to the file below" : "Navegar para o arquivo abaixo",
"Navigate to the file on the left (in grid mode)" : "Navegar para o arquivo à esquerda (no modo de grade)",
"Navigate to the file on the right (in grid mode)" : "Navegar para o arquivo à direita (no modo de grade)",
- "View" : "Visualizar",
- "Toggle the grid view" : "Ativar/Desativar modo grade",
+ "View" : "Visualização",
+ "Toggle the grid view" : "Alternar visualização em grade",
"Open the sidebar for a file" : "Abrir barra lateral para um arquivo",
"Show those shortcuts" : "Mostrar esses atalhos",
"You" : "Você",
"Shared multiple times with different people" : "Compartilhado várias vezes com pessoas diferentes",
+ "Unable to change the favorite state of the file" : "Impossível mudar estado de favorito do arquivo",
"Error while loading the file data" : "Erro ao carregar os dados do arquivo",
"Owner" : "Proprietário",
"Remove from favorites" : "Excluir dos favoritos",
"Add to favorites" : "Adicionar aos favoritos",
"Tags" : "Etiquetas",
"Blank" : "Em branco",
- "Unable to create new file from template" : "Incapaz de criar novo arquivo a partir do modelo",
+ "Unable to create new file from template" : "Não é possível criar novo arquivo a partir do modelo",
"Pick a template for {name}" : "Escolha um modelo para {name}",
- "Create a new file with the selected template" : "Crie um novo arquivo com o modelo selecionado",
+ "Create a new file with the selected template" : "Criar um novo arquivo com o modelo selecionado",
"Creating file" : "Criando arquivo",
"Save as {displayName}" : "Salvar como {displayName}",
"Save as …" : "Salvar como …",
"Converting files …" : "Convertendo arquivos …",
"Failed to convert files: {message}" : "Falha ao converter arquivos: {message}",
- "All files failed to be converted" : "Todos os arquivos falharam na conversão",
+ "All files failed to be converted" : "Falha na conversão de todos os arquivos",
"One file could not be converted: {message}" : "Um arquivo não pôde ser convertido: {message}",
- "_One file could not be converted_::_%n files could not be converted_" : ["Não foi possível converter um arquivo","Não foi possível converter %n arquivos","Não foi possível converter %n arquivos"],
- "_One file successfully converted_::_%n files successfully converted_" : ["Um arquivo convertido com sucesso","%n arquivos convertidos com sucesso","%n arquivos convertidos com sucesso"],
+ "_One file could not be converted_::_%n files could not be converted_" : ["Não foi possível converter um arquivo","Não foi possível converter %n de arquivos","Não foi possível converter %n arquivos"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["Um arquivo convertido com sucesso","%n de arquivos convertidos com sucesso","%n arquivos convertidos com sucesso"],
"Files successfully converted" : "Arquivos convertidos com sucesso",
"Failed to convert files" : "Falha ao converter arquivos",
"Converting file …" : "Convertendo arquivo …",
@@ -253,12 +263,15 @@
"Delete folder" : "Excluir pasta",
"Delete folders" : "Excluir pastas",
"Delete" : "Excluir",
- "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Você está prestes a excluir permanentemente {count} item","Você está prestes a excluir permanentemente {count} itens","Você está prestes a excluir permanentemente {count} itens"],
- "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Você está prestes a excluir {count} item","Você está prestes a excluir {count} itens","Você está prestes a excluir {count} itens"],
+ "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Você está prestes a excluir permanentemente {count} item","Você está prestes a excluir permanentemente {count} de itens","Você está prestes a excluir permanentemente {count} itens"],
+ "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Você está prestes a excluir {count} item","Você está prestes a excluir {count} de itens","Você está prestes a excluir {count} itens"],
"Confirm deletion" : "Confirmar exclusão",
"Cancel" : "Cancelar",
+ "Download" : "Baixar",
"Moving \"{source}\" to \"{destination}\" …" : "Movendo \"{source}\" para \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Copiando \"{source}\" para \"{destination}\" …",
+ "Destination is not a folder" : "O destino não é uma pasta",
+ "This file/folder is already in that directory" : "Este arquivo/pasta já está nesse diretório",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Não é possível mover um arquivo/pasta para ele mesmo ou para uma subpasta dele mesmo",
"(copy)" : "(cópia)",
"(copy %n)" : "(cópia %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Operação de mover ou copiar cancelada",
"Open folder {displayName}" : "Abrir a pasta {displayName}",
"Open in Files" : "Abrir em Arquivos",
+ "Open locally" : "Abrir localmente",
+ "Failed to redirect to client" : "Falha ao redirecionar para o cliente",
"Open file locally" : "Abrir o arquivo localmente",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "O arquivo agora deve abrir no seu dispositivo. Caso contrário, verifique se você tem o aplicativo para desktop instalado.",
"Retry and close" : "Repetir e fechar",
"Open online" : "Abrir on-line",
- "Failed to redirect to client" : "Falha ao redirecionar para o cliente",
- "Open locally" : "Abrir localmente",
"Rename" : "Renomear",
"Open details" : "Abrir detalhes",
"View in folder" : "Exibir na pasta",
@@ -307,25 +320,29 @@
"New template folder" : "Nova pasta de modelo",
"In folder" : "Na pasta",
"Search in folder: {folder}" : "Pesquisar na pasta: {folder}",
- "One of the dropped files could not be processed" : "Um dos arquivos descartados não pôde ser processado",
+ "One of the dropped files could not be processed" : "Um dos arquivos depositados não pôde ser processado",
"Your browser does not support the Filesystem API. Directories will not be uploaded" : "Seu navegador não oferece suporte à API Filesystem. Os diretórios não serão carregados",
- "No files to upload" : "Não há arquivos para enviar",
+ "No files to upload" : "Não há arquivos para carregar",
"Unable to create the directory {directory}" : "Não foi possível criar o diretório {directory}",
"Some files could not be uploaded" : "Alguns arquivos não puderam ser carregados",
- "Files uploaded successfully" : "Arquivos enviados com sucesso",
+ "Files uploaded successfully" : "Arquivos carregados com sucesso",
"No files to process" : "Nenhum arquivo para processar",
"Some files could not be copied" : "Alguns arquivos não puderam ser copiados",
"Some files could not be moved" : "Alguns arquivos não puderam ser movidos",
"Files copied successfully" : "Arquivos copiados com sucesso",
"Files moved successfully" : "Arquivos movidos com sucesso",
- "Conflicts resolution skipped" : "Resolução de conflitos ignorada",
+ "Conflicts resolution skipped" : "Resolução de conflitos pulada",
"Upload cancelled" : "Upload cancelado",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Não foi possível renomear \"{oldName}\", ele não existe mais",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{newName}\" já é utilizado na pasta \"{dir}\". Escolha um nome diferente.",
+ "Could not rename \"{oldName}\"" : "Não foi possível renomear \"{oldName}\"",
"This operation is forbidden" : "Esta operação é proibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Este diretório não está disponível, por favor verifique os logs ou contacte o administrador",
"Storage is temporarily not available" : "O armazenamento está temporariamente indisponível",
"Unexpected error: {error}" : "Erro inesperado: {error}",
- "_%n file_::_%n files_" : ["%n arquivo","%n arquivos","%n arquivos"],
- "_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
+ "_%n file_::_%n files_" : ["%n arquivo","%n de arquivos","%n arquivos"],
+ "_%n folder_::_%n folders_" : ["%n pasta","%n de pastas","%n pastas"],
+ "_%n hidden_::_%n hidden_" : ["%n oculto","%n de ocultos","%n ocultos"],
"Filename must not be empty." : "O nome do arquivo não pode estar vazio.",
"\"{char}\" is not allowed inside a filename." : "\"{char}\" não é permitido dentro de um nome de arquivo.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" é um nome reservado e não é permitido para nomes de arquivos.",
@@ -350,7 +367,6 @@
"Upload too large" : "Arquivo muito grande para fazer upload",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os arquivos que você está tentando enviar excederam o tamanho máximo para arquivos no servidor.",
"File could not be found" : "O arquivo não foi encontrado",
- "Download" : "Baixar",
"Show list view" : "Mostrar visualização em lista",
"Show grid view" : "Mostrar visualização em grade",
"Close" : "Fechar",
@@ -389,9 +405,6 @@
"Copied {origin} inside {destination}" : "{origin} foi copiado para {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} e outros {nbfiles} arquivos foram copiados para {destination}",
"{newName} already exists" : "{newName} já existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "Não foi possível renomear \"{fileName}\" pois ele não existe mais",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{targetName}\" já está sendo usado na pasta  \"{dir}\". Por favor escolha um nome diferente.",
- "Could not rename \"{fileName}\"" : "Não foi possível renomear \"{fileName}\"",
"Could not create file \"{file}\"" : "Não foi possível criar o arquivo \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Não foi possível criar o arquivo \"{file}\" pois ele já existe",
"Could not create folder \"{dir}\" because it already exists" : "Não foi possível criar a pasta \"{dir}\" pois ela já existe",
@@ -400,9 +413,9 @@
"No search results in other folders for {tag}{filter}{endtag}" : "Sem resultados de pesquisa em outras pastas para {tag}{filter}{endtag}",
"Enter more than two characters to search in other folders" : "Digite mais de dois caracteres para pesquisar em outras pastas",
"{dirs} and {files}" : "{dirs} e {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluindo %n oculto","incluindo %n ocultos","incluindo %n ocultos"],
+ "_including %n hidden_::_including %n hidden_" : ["incluindo %n oculto","incluindo %n de ocultos","incluindo %n ocultos"],
"You do not have permission to upload or create files here" : "Você não tem permissão para carregar ou criar arquivos aqui",
- "_Uploading %n file_::_Uploading %n files_" : ["Enviando %n arquivo","Enviando %n arquivos","Enviando %n arquivos"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Enviando %n arquivo","Enviando %n de arquivos","Enviando %n arquivos"],
"New" : "Novo",
"New file/folder menu" : "Menu de novo arquivo/pasta",
"Select file range" : "Selecionar o intervalo de arquivos",
@@ -420,39 +433,29 @@
"Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "A pasta de grupo \"{mountPoint}\" está quase cheia ({usedSpacePercent}%).",
"External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "O armazenamento externo \"{mountPoint}\" está quase cheio ({usedSpacePercent}%).",
"Your storage is almost full ({usedSpacePercent}%)." : "Seu armazenamento está quase cheio ({usedSpacePercent}%).",
- "_matches \"{filter}\"_::_match \"{filter}\"_" : ["coincide \"{filter}\"","coincide \"{filter}\"","coincide \"{filter}\""],
- "Direct link was copied (only works for people who have access to this file/folder)" : "Link direto foi copiado (funciona apenas para pessoas que têm acesso a este arquivo/pasta)",
+ "_matches \"{filter}\"_::_match \"{filter}\"_" : ["corresponde a \"{filter}\"","correspondem a \"{filter}\"","correspondem a \"{filter}\""],
+ "Direct link was copied (only works for people who have access to this file/folder)" : "Link direto foi copiado (funciona apenas para pessoas que têm acesso a este arquivo/esta pasta)",
"Path" : "Caminho",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Favoritado",
- "Copy direct link (only works for people who have access to this file/folder)" : "Copiar link direto (funciona apenas para pessoas que têm acesso a este arquivo/pasta)",
+ "Favored" : "Marcado como favorito",
+ "Favor" : "Marcar como favorito",
+ "Copy direct link (only works for people who have access to this file/folder)" : "Copiar link direto (funciona apenas para pessoas que têm acesso a este arquivo/esta pasta)",
"Upload file" : "Enviar arquivo",
- "Not favorited" : "Sem favoritos",
+ "Not favored" : "Não marcado como favorito",
"An error occurred while trying to update the tags" : "Ocorreu um erro enquanto tentava atualizar as etiquetas",
- "You don't have permission to upload or create files here." : "Você não tem permissão para carregar ou criar arquivos aqui.",
- "Storage informations" : "Informações de armazenamento",
- "Choose file" : "Escolher arquivo",
- "Go to the previous folder" : "Ir para a pasta anterior",
- "Open the files app settings" : "Abrir as configurações do aplicativo de arquivos",
- "Unable to change the favourite state of the file" : "Não foi possível alterar o estado favorito do arquivo",
- "Edit file locally" : "Editar arquivo localmente",
- "Edit online" : "Editar on-line",
- "Create new templates folder" : "Criar nova pasta de modelos",
- "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} pasta","{folderCount} pastas","{folderCount} pastas"],
- "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} arquivo","{fileCount} arquivos","{fileCount} arquivos"],
- "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 arquivo e {folderCount} pasta","1 arquivo e {folderCount} pastas","1 arquivo e {folderCount} pastas"],
- "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} arquivo e 1 pasta","{fileCount} arquivos e 1 pasta","{fileCount} arquivos e 1 pasta"],
+ "Upload (max. %s)" : "Upload (max. %s)",
+ "Submitting fields…" : "Enviando campos…",
+ "Filter filenames…" : "Filtrar nomes de arquivos…",
+ "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} pasta","{folderCount} de pastas","{folderCount} pastas"],
+ "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} arquivo","{fileCount} de arquivos","{fileCount} arquivos"],
+ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 arquivo e {folderCount} pasta","1 arquivo e {folderCount} de pastas","1 arquivo e {folderCount} pastas"],
+ "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} arquivo e 1 pasta","{fileCount} de arquivos e 1 pasta","{fileCount} arquivos e 1 pasta"],
"{fileCount} files and {folderCount} folders" : "{fileCount} arquivos e {folderCount} pastas",
- "List of favorites files and folders." : "Lista de arquivos e pastas favoritos.",
"Personal Files" : "Arquivos pessoais",
"Text file" : "Arquivo texto",
"New text file.txt" : "Novo arquivo de texto.txt",
- "Favored" : "Favoritado",
- "Favor" : "Favor",
- "Not favored" : "Não favoritado",
- "Submitting fields…" : "Enviando campos…",
- "Filter filenames…" : "Filtrar nomes de arquivos...",
- "{count} files could not be converted" : "{count} arquivos não puderam ser convertidos",
- "{count} files successfully converted" : "{count} arquivos convertidos com sucesso"
+ "%1$s (renamed)" : "%1$s (renomeado)",
+ "renamed file" : "arquivo renomeado",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Depois de ativar os nomes de arquivos compatíveis com o Windows, os arquivos existentes não podem mais ser modificados, mas podem ser renomeados para novos nomes válidos pelo proprietário."
},"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/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index b3200a71984..f35c44a8ea2 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -47,7 +47,6 @@ OC.L10N.register(
"Invalid folder path" : "Caminho da pasta inválido",
"Folder not found" : "Pasta não encontrada",
"No favorites" : "Sem favoritos",
- "Upload (max. %s)" : "Envio (máx. %s)",
"Accept" : "Aceitar",
"Reject" : "Rejeitar",
"Incoming ownership transfer from {user}" : "Transferência de propriedade recebida de {user}",
@@ -87,6 +86,7 @@ OC.L10N.register(
"Invalid filename." : "Nome de ficheiro inválido",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renomeado de \"{oldName}\" para \"{newName}\"",
"Rename file" : "Renomear ficheiro",
+ "Folder" : "Pasta",
"Pending" : "Pendente",
"Clear filter" : "Limpar filtro",
"Modified" : "Modificado",
@@ -105,7 +105,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Os cabeçalhos das colunas com botões são ordenáveis",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Por motivos de desempenho, esta lista não é totalmente processada. Os ficheiros serão processados à medida que navega na lista.",
"File not found" : "Ficheiro não encontrado",
- "{count} selected" : "{count} selecionado ",
+ "_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionado","{count} selecionado"],
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "utilizado {used} de {quota}",
"{relative}% used" : "{relative}% usado",
@@ -163,18 +163,26 @@ OC.L10N.register(
"Delete folder" : "Apagar pasta",
"Delete" : "Apagar",
"Cancel" : "Cancelar",
+ "Download" : "Transferir",
+ "Copy to {target}" : "Copiar para {target}",
"Copy" : "Copiar",
+ "Move to {target}" : "Mover para {target}",
"Move" : "Mover",
"Move or copy" : "Mover ou copiar",
"Failed to redirect to client" : "Erro ao redirecionar para o cliente",
"Rename" : "Renomear",
"View in folder" : "Ver na pasta",
"Today" : "Hoje",
+ "Last 7 days" : "Últimos 7 dias",
+ "Last 30 days" : "Últimos 30 dias",
"Documents" : "Documentos",
"Audio" : "Áudio",
"Videos" : "Vídeos",
"Templates" : "Modelos",
"Some files could not be moved" : "Não foi possível mover alguns ficheiros",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Não foi possível renomear “{oldName}”, já não existe",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome “{newName}” já está a ser utilizado na pasta “{dir}”. Por favor, escolha um nome diferente.",
+ "Could not rename \"{oldName}\"" : "Não foi possível renomear \"{oldName}\"",
"This operation is forbidden" : "Esta operação é proibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador",
"Storage is temporarily not available" : "Armazenamento temporariamente indisponível",
@@ -190,7 +198,6 @@ OC.L10N.register(
"Upload too large" : "Envio muito grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiros que está a tentar enviar excedem o tamanho máximo para os envios de ficheiro neste servidor.",
"File could not be found" : "O ficheiro não foi encontrado",
- "Download" : "Transferir",
"Show list view" : "Mostrar visualização em lista",
"Show grid view" : "Mostrar visualização em grelha",
"Close" : "Fechar",
@@ -226,9 +233,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Copiado {origin} para {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copiados {origin} e {nbfiles} outros ficheiros para dentro de {destination}",
"{newName} already exists" : "{newName} já existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "Não foi possível renomear \"{fileName}\", este já não existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{targetName}\" já está em utilização na pasta \"{dir}\". Por favor, escolha um nome diferente.",
- "Could not rename \"{fileName}\"" : "Não foi possível renomear \"{fileName}\"",
"Could not create file \"{file}\"" : "Não foi possível criar o ficheiro \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Não foi possível criar o ficheiro \"{file}\", porque este já existe",
"Could not create folder \"{dir}\" because it already exists" : "Não foi possível criar a pasta \"{dir}\", porque esta já existe",
@@ -253,14 +257,15 @@ OC.L10N.register(
"Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "A pasta de grupo \"{mountPoint}\" está quase cheia ({usedSpacePercent}%).",
"Path" : "Caminho",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Nos Favoritos",
"Upload file" : "Enviar ficheiro",
- "Not favorited" : "Não favorito",
"An error occurred while trying to update the tags" : "Ocorreu um erro ao tentar atualizar as etiquetas",
+ "Upload (max. %s)" : "Envio (máx. %s)",
+ "Submitting fields…" : "Submeter campos…",
"{fileCount} files and {folderCount} folders" : "{fileCount} ficheiros e {folderCount} pastas",
"Personal Files" : "Ficheiros pessoais",
"Text file" : "Ficheiro de Texto",
"New text file.txt" : "Novo texto ficheiro.txt",
- "Submitting fields…" : "Submeter campos…"
+ "%1$s (renamed)" : "%1$s (renomeado)",
+ "renamed file" : "ficheiro renomeado"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index 2374d49b10c..2a53bbf9bd9 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -45,7 +45,6 @@
"Invalid folder path" : "Caminho da pasta inválido",
"Folder not found" : "Pasta não encontrada",
"No favorites" : "Sem favoritos",
- "Upload (max. %s)" : "Envio (máx. %s)",
"Accept" : "Aceitar",
"Reject" : "Rejeitar",
"Incoming ownership transfer from {user}" : "Transferência de propriedade recebida de {user}",
@@ -85,6 +84,7 @@
"Invalid filename." : "Nome de ficheiro inválido",
"Renamed \"{oldName}\" to \"{newName}\"" : "Renomeado de \"{oldName}\" para \"{newName}\"",
"Rename file" : "Renomear ficheiro",
+ "Folder" : "Pasta",
"Pending" : "Pendente",
"Clear filter" : "Limpar filtro",
"Modified" : "Modificado",
@@ -103,7 +103,7 @@
"Column headers with buttons are sortable." : "Os cabeçalhos das colunas com botões são ordenáveis",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Por motivos de desempenho, esta lista não é totalmente processada. Os ficheiros serão processados à medida que navega na lista.",
"File not found" : "Ficheiro não encontrado",
- "{count} selected" : "{count} selecionado ",
+ "_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionado","{count} selecionado"],
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
"{used} of {quota} used" : "utilizado {used} de {quota}",
"{relative}% used" : "{relative}% usado",
@@ -161,18 +161,26 @@
"Delete folder" : "Apagar pasta",
"Delete" : "Apagar",
"Cancel" : "Cancelar",
+ "Download" : "Transferir",
+ "Copy to {target}" : "Copiar para {target}",
"Copy" : "Copiar",
+ "Move to {target}" : "Mover para {target}",
"Move" : "Mover",
"Move or copy" : "Mover ou copiar",
"Failed to redirect to client" : "Erro ao redirecionar para o cliente",
"Rename" : "Renomear",
"View in folder" : "Ver na pasta",
"Today" : "Hoje",
+ "Last 7 days" : "Últimos 7 dias",
+ "Last 30 days" : "Últimos 30 dias",
"Documents" : "Documentos",
"Audio" : "Áudio",
"Videos" : "Vídeos",
"Templates" : "Modelos",
"Some files could not be moved" : "Não foi possível mover alguns ficheiros",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Não foi possível renomear “{oldName}”, já não existe",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome “{newName}” já está a ser utilizado na pasta “{dir}”. Por favor, escolha um nome diferente.",
+ "Could not rename \"{oldName}\"" : "Não foi possível renomear \"{oldName}\"",
"This operation is forbidden" : "Esta operação é proibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador",
"Storage is temporarily not available" : "Armazenamento temporariamente indisponível",
@@ -188,7 +196,6 @@
"Upload too large" : "Envio muito grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiros que está a tentar enviar excedem o tamanho máximo para os envios de ficheiro neste servidor.",
"File could not be found" : "O ficheiro não foi encontrado",
- "Download" : "Transferir",
"Show list view" : "Mostrar visualização em lista",
"Show grid view" : "Mostrar visualização em grelha",
"Close" : "Fechar",
@@ -224,9 +231,6 @@
"Copied {origin} inside {destination}" : "Copiado {origin} para {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copiados {origin} e {nbfiles} outros ficheiros para dentro de {destination}",
"{newName} already exists" : "{newName} já existe",
- "Could not rename \"{fileName}\", it does not exist any more" : "Não foi possível renomear \"{fileName}\", este já não existe",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{targetName}\" já está em utilização na pasta \"{dir}\". Por favor, escolha um nome diferente.",
- "Could not rename \"{fileName}\"" : "Não foi possível renomear \"{fileName}\"",
"Could not create file \"{file}\"" : "Não foi possível criar o ficheiro \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Não foi possível criar o ficheiro \"{file}\", porque este já existe",
"Could not create folder \"{dir}\" because it already exists" : "Não foi possível criar a pasta \"{dir}\", porque esta já existe",
@@ -251,14 +255,15 @@
"Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "A pasta de grupo \"{mountPoint}\" está quase cheia ({usedSpacePercent}%).",
"Path" : "Caminho",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Favorited" : "Nos Favoritos",
"Upload file" : "Enviar ficheiro",
- "Not favorited" : "Não favorito",
"An error occurred while trying to update the tags" : "Ocorreu um erro ao tentar atualizar as etiquetas",
+ "Upload (max. %s)" : "Envio (máx. %s)",
+ "Submitting fields…" : "Submeter campos…",
"{fileCount} files and {folderCount} folders" : "{fileCount} ficheiros e {folderCount} pastas",
"Personal Files" : "Ficheiros pessoais",
"Text file" : "Ficheiro de Texto",
"New text file.txt" : "Novo texto ficheiro.txt",
- "Submitting fields…" : "Submeter campos…"
+ "%1$s (renamed)" : "%1$s (renomeado)",
+ "renamed file" : "ficheiro renomeado"
},"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/files/l10n/ro.js b/apps/files/l10n/ro.js
index 3a9734aeb78..f595f73d79e 100644
--- a/apps/files/l10n/ro.js
+++ b/apps/files/l10n/ro.js
@@ -43,7 +43,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Un nou fișier sau dosar a fost <strong>modificat</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Un fișier sau dosar favorit a fost <strong>schimbat</strong>",
"No favorites" : "Fără favorite",
- "Upload (max. %s)" : "Încarcă (max. %s)",
"Accept" : "Accept",
"Reject" : "Respinge",
"Incoming ownership transfer from {user}" : "Se transferă proprietatea de la {user}",
@@ -68,6 +67,7 @@ OC.L10N.register(
"This node is unavailable" : "Acest nod este indisponibil",
"Renamed \"{oldName}\" to \"{newName}\"" : "A fost redenumit \"{oldName}\" cu \"{newName}\"",
"Rename file" : "Redenumire fișier",
+ "Folder" : "Director",
"Pending" : "În așteptare",
"Clear filter" : "Șterge filtrul",
"Modified" : "Modificat",
@@ -82,6 +82,7 @@ OC.L10N.register(
"List of files and folders." : "Listă fișiere și foldere",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Această lista este incomplet afișată din motive de performanță. Fișierele vor fi afișate pe măsură ce navigați prin listă.",
"File not found" : "Fișierul nu a fost găsit",
+ "_{count} selected_::_{count} selected_" : ["{count}selectat","{count}selectate","{count}selectate"],
"{usedQuotaByte} used" : "{usedQuotaByte} utilizați",
"{used} of {quota} used" : "{used} din {quota} folosiți",
"{relative}% used" : "{relative}% utilizat",
@@ -149,6 +150,9 @@ OC.L10N.register(
"Delete permanently" : "Șterge permanent",
"Delete" : "Șterge",
"Cancel" : "Anulare",
+ "Download" : "Descarcă",
+ "Destination is not a folder" : "Destinația nu este un folder",
+ "This file/folder is already in that directory" : "Acest fișier/folder există în acel dosar",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Nu se poate muta/redenumi un fișier/folder în el însuși sau într-un subfolder al său",
"A file or folder with that name already exists in this folder" : "Un fișier sau folder cu acest nume există deja în acest folder",
"The file does not exist anymore" : "Fișierul nu mai există",
@@ -174,6 +178,9 @@ OC.L10N.register(
"Unable to initialize the templates directory" : "Nu s-a putut inițializa dosarul cu șabloane",
"Templates" : "Șabloane",
"Some files could not be moved" : "Unele fișiere nu au putut fi mutate",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" nu poate fi redenumit deoarece nu mai există",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Numele \"{newName}\" există în folderul \"{dir}\". Selectați, vă rog, alt nume.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" nu poate fi redenumit",
"This operation is forbidden" : "Operațiunea este interzisă",
"This directory is unavailable, please check the logs or contact the administrator" : "Acest director nu este disponibil, te rugăm verifică logurile sau contactează un administrator",
"Storage is temporarily not available" : "Spațiu de stocare este indisponibil temporar",
@@ -193,7 +200,6 @@ OC.L10N.register(
"Upload too large" : "Fișierul încărcat este prea mare",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.",
"File could not be found" : "Fișierul nu a fost găsit",
- "Download" : "Descarcă",
"Show list view" : "Afișează vizualizarea listă",
"Show grid view" : "Afișează vizualizarea grilă",
"Close" : "Închide",
@@ -231,9 +237,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "S-a copiat {origin} în {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "S-a copiat {origin} și {nbfiles} alte fișiere în {destination}",
"{newName} already exists" : "{newName} există deja",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nu s-a putut redenumi \"{fileName}\", fișierul nu mai există",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Numele \"{targetName}\" este deja folosit în directorul \"{dir}\". Alege un nume diferit.",
- "Could not rename \"{fileName}\"" : "Nu s-a putut redenumi \"{fileName}\"",
"Could not create file \"{file}\"" : "Nu s-a putut crea fișierul \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Nu s-a putut crea fișierul \"{file}\" deoarece există deja unul cu același nume",
"Could not create folder \"{dir}\" because it already exists" : "Nu s-a putut crea directorul \"{dir}\" deoarece există deja unul cu același nume",
@@ -264,21 +267,14 @@ OC.L10N.register(
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["potrivește \"{filter}\"","potrivește \"{filter}\"","potrivește \"{filter}\""],
"Path" : "Cale",
"_%n byte_::_%n bytes_" : ["%n octet","%n octeți","%n octeți"],
- "Favorited" : "Adăugate la favorite",
"Upload file" : "Încarcă fișier",
- "Not favorited" : "Scoate de la favorite",
"An error occurred while trying to update the tags" : "A apărut o eroare în timpul actualizării etichetelor",
- "Storage informations" : "Informații despre stocare",
- "Go to the previous folder" : "Salt la folderul anterior",
- "Open the files app settings" : "Deschide setările aplicației Fișiere",
- "Unable to change the favourite state of the file" : "Nu s-a putut schimba starea fișierelor favorite",
- "Create new templates folder" : "Creează un nou dosar pentru șabloane",
+ "Upload (max. %s)" : "Încarcă (max. %s)",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","{folderCount} foldere","{folderCount} foldere"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fișier","{fileCount} fișiere","{fileCount} fișiere"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fișier și {folderCount} folder","1 fișier și {folderCount} foldere","1 fișier și {folderCount} foldere"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fișier și 1 folder","{fileCount} fișiere și 1 folder","{fileCount} fișiere și 1 folder"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fișiere și {folderCount} dosare",
- "List of favorites files and folders." : "Lista fișierelor și dosarelor favorite",
"Text file" : "Fișier text",
"New text file.txt" : "Fișier nou.txt"
},
diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json
index 578cc0ba164..482b8e64640 100644
--- a/apps/files/l10n/ro.json
+++ b/apps/files/l10n/ro.json
@@ -41,7 +41,6 @@
"A file or folder has been <strong>changed</strong>" : "Un nou fișier sau dosar a fost <strong>modificat</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "Un fișier sau dosar favorit a fost <strong>schimbat</strong>",
"No favorites" : "Fără favorite",
- "Upload (max. %s)" : "Încarcă (max. %s)",
"Accept" : "Accept",
"Reject" : "Respinge",
"Incoming ownership transfer from {user}" : "Se transferă proprietatea de la {user}",
@@ -66,6 +65,7 @@
"This node is unavailable" : "Acest nod este indisponibil",
"Renamed \"{oldName}\" to \"{newName}\"" : "A fost redenumit \"{oldName}\" cu \"{newName}\"",
"Rename file" : "Redenumire fișier",
+ "Folder" : "Director",
"Pending" : "În așteptare",
"Clear filter" : "Șterge filtrul",
"Modified" : "Modificat",
@@ -80,6 +80,7 @@
"List of files and folders." : "Listă fișiere și foldere",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Această lista este incomplet afișată din motive de performanță. Fișierele vor fi afișate pe măsură ce navigați prin listă.",
"File not found" : "Fișierul nu a fost găsit",
+ "_{count} selected_::_{count} selected_" : ["{count}selectat","{count}selectate","{count}selectate"],
"{usedQuotaByte} used" : "{usedQuotaByte} utilizați",
"{used} of {quota} used" : "{used} din {quota} folosiți",
"{relative}% used" : "{relative}% utilizat",
@@ -147,6 +148,9 @@
"Delete permanently" : "Șterge permanent",
"Delete" : "Șterge",
"Cancel" : "Anulare",
+ "Download" : "Descarcă",
+ "Destination is not a folder" : "Destinația nu este un folder",
+ "This file/folder is already in that directory" : "Acest fișier/folder există în acel dosar",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Nu se poate muta/redenumi un fișier/folder în el însuși sau într-un subfolder al său",
"A file or folder with that name already exists in this folder" : "Un fișier sau folder cu acest nume există deja în acest folder",
"The file does not exist anymore" : "Fișierul nu mai există",
@@ -172,6 +176,9 @@
"Unable to initialize the templates directory" : "Nu s-a putut inițializa dosarul cu șabloane",
"Templates" : "Șabloane",
"Some files could not be moved" : "Unele fișiere nu au putut fi mutate",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" nu poate fi redenumit deoarece nu mai există",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Numele \"{newName}\" există în folderul \"{dir}\". Selectați, vă rog, alt nume.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" nu poate fi redenumit",
"This operation is forbidden" : "Operațiunea este interzisă",
"This directory is unavailable, please check the logs or contact the administrator" : "Acest director nu este disponibil, te rugăm verifică logurile sau contactează un administrator",
"Storage is temporarily not available" : "Spațiu de stocare este indisponibil temporar",
@@ -191,7 +198,6 @@
"Upload too large" : "Fișierul încărcat este prea mare",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.",
"File could not be found" : "Fișierul nu a fost găsit",
- "Download" : "Descarcă",
"Show list view" : "Afișează vizualizarea listă",
"Show grid view" : "Afișează vizualizarea grilă",
"Close" : "Închide",
@@ -229,9 +235,6 @@
"Copied {origin} inside {destination}" : "S-a copiat {origin} în {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "S-a copiat {origin} și {nbfiles} alte fișiere în {destination}",
"{newName} already exists" : "{newName} există deja",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nu s-a putut redenumi \"{fileName}\", fișierul nu mai există",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Numele \"{targetName}\" este deja folosit în directorul \"{dir}\". Alege un nume diferit.",
- "Could not rename \"{fileName}\"" : "Nu s-a putut redenumi \"{fileName}\"",
"Could not create file \"{file}\"" : "Nu s-a putut crea fișierul \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Nu s-a putut crea fișierul \"{file}\" deoarece există deja unul cu același nume",
"Could not create folder \"{dir}\" because it already exists" : "Nu s-a putut crea directorul \"{dir}\" deoarece există deja unul cu același nume",
@@ -262,21 +265,14 @@
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["potrivește \"{filter}\"","potrivește \"{filter}\"","potrivește \"{filter}\""],
"Path" : "Cale",
"_%n byte_::_%n bytes_" : ["%n octet","%n octeți","%n octeți"],
- "Favorited" : "Adăugate la favorite",
"Upload file" : "Încarcă fișier",
- "Not favorited" : "Scoate de la favorite",
"An error occurred while trying to update the tags" : "A apărut o eroare în timpul actualizării etichetelor",
- "Storage informations" : "Informații despre stocare",
- "Go to the previous folder" : "Salt la folderul anterior",
- "Open the files app settings" : "Deschide setările aplicației Fișiere",
- "Unable to change the favourite state of the file" : "Nu s-a putut schimba starea fișierelor favorite",
- "Create new templates folder" : "Creează un nou dosar pentru șabloane",
+ "Upload (max. %s)" : "Încarcă (max. %s)",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","{folderCount} foldere","{folderCount} foldere"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fișier","{fileCount} fișiere","{fileCount} fișiere"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fișier și {folderCount} folder","1 fișier și {folderCount} foldere","1 fișier și {folderCount} foldere"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fișier și 1 folder","{fileCount} fișiere și 1 folder","{fileCount} fișiere și 1 folder"],
"{fileCount} files and {folderCount} folders" : "{fileCount} fișiere și {folderCount} dosare",
- "List of favorites files and folders." : "Lista fișierelor și dosarelor favorite",
"Text file" : "Fișier text",
"New text file.txt" : "Fișier nou.txt"
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index d5e6686c379..4f6cf29409b 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Избранные файлы",
"No favorites" : "Нет избранного",
"More favorites" : "Больше избранного",
- "Upload (max. %s)" : "Загрузка (максимум %s)",
"Accept" : "Принять",
"Reject" : "Отклонить",
"Incoming ownership transfer from {user}" : "Запрос передачи владения от пользователя {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Передано от %1$s %2$s",
"Files compatibility" : "Совместимость файлов",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Разрешить ограничения на имена файлов для обеспечения возможности их синхронизации со всеми клиентами. По умолчанию разрешены все имена файлов, допустимые в POSIX (например, в Linux или macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "После включения совместимых с Windows названий файлов, существующие файлы нельзя будет изменить, но они могут быть переименованы их владельцем в допустимые новые имена.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Также возможно мигрировать файлы автоматически после включения этой настройки, пожалуйста, обратитесь к документации о команде occ.",
"Enforce Windows compatibility" : "Обеспечить совместимость с Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Это позволит блокировать имена файлов, недопустимые в системах Windows, например, использующие зарезервированные имена или специальные символы. Однако это не обеспечит совместимость в части чувствительности к регистру.",
"File Management" : "Управление файлами",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Недопустимое имя файла.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Переименовано «{oldName}» в \"{newName}\"",
"Rename file" : "Переименовать файл",
+ "Folder" : "Каталог",
+ "Unknown file type" : "Неизвестный тип файла",
+ "{ext} image" : "{ext} изображение",
+ "{ext} video" : "{ext} видео",
+ "{ext} audio" : "{ext} аудио",
+ "{ext} text" : "{ext} текст",
"Pending" : "Ожидается",
"Unknown date" : "Неизвестная дата",
"Clear filter" : "Сбросить фильтр",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Количество строк в общем",
"Toggle selection for all files and folders" : "Установить или снять выделение всех файлов и папок",
"Name" : "Имя",
+ "File type" : "Тип файла",
"Size" : "Размер",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" не удалось выполнить некоторые элементы",
"\"{displayName}\" batch action executed successfully" : "Пакетное действие \"{displayName}\" выполнено успешно",
@@ -116,7 +124,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Заголовки столбцов с кнопками можно сортировать.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Этот список отображается не полностью из соображений производительности. Файлы будут отображаться по мере перемещения по списку.",
"File not found" : "Файл не найден",
- "{count} selected" : "{count} выбрано",
"{usedQuotaByte} used" : "Использовано {usedQuotaByte}",
"{used} of {quota} used" : "использовано {used} из {quota}",
"{relative}% used" : "Использовано {relative}%",
@@ -183,6 +190,7 @@ OC.L10N.register(
"Sort favorites first" : "Сначала избранное",
"Sort folders before files" : "Начинать список с папок",
"Show hidden files" : "Показывать скрытые файлы",
+ "Show file type column" : "Показать колонку с типом файла",
"Crop image previews" : "Обрезать пред. просмотр",
"Enable the grid view" : "Включить режим просмотра сеткой",
"Enable folder tree" : "Включить дерево папок",
@@ -219,6 +227,7 @@ OC.L10N.register(
"Show those shortcuts" : "Показать ярлыки",
"You" : "Вы",
"Shared multiple times with different people" : "Делиться несколько раз с разными людьми",
+ "Unable to change the favorite state of the file" : "Невозможно изменить избранное состояние файла",
"Error while loading the file data" : "Не удалось загрузить данные файла",
"Owner" : "Владелец",
"Remove from favorites" : "Удалить из избранных",
@@ -259,8 +268,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Подтвердите удаление {count} объекта.","Подтвердите удаление {count} объектов","Подтвердите удаление {count} объектов","Подтвердите удаление {count} объектов"],
"Confirm deletion" : "Подтвердить удаление",
"Cancel" : "Отменить",
+ "Download" : "Скачать",
"Moving \"{source}\" to \"{destination}\" …" : "Перемещение \"{source}\" в \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Копирование \"{source}\" в \"{destination}\" …",
+ "Destination is not a folder" : "Указанное назначение не является папкой",
+ "This file/folder is already in that directory" : "Файл или папка уже расположены в этой папке",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Папка или файл не могут быть перемещены во вложенную папку или в себя",
"(copy)" : "(копия)",
"(copy %n)" : "(копия %n)",
@@ -279,12 +291,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Копирование или перемещение отменено",
"Open folder {displayName}" : "Открыть папку «{displayName}»",
"Open in Files" : "Открыть в приложении «Файлы»",
+ "Open locally" : "Открыть локально",
+ "Failed to redirect to client" : "Ошибка перенаправления в клиент",
"Open file locally" : "Открыть файл локально",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Теперь файл должен открыться на вашем устройстве. Если это не произошло, пожалуйста, убедитесь, что у вас установлено настольное приложение.",
"Retry and close" : "Повторить попытку и закрыть",
"Open online" : "Открыть онлайн",
- "Failed to redirect to client" : "Ошибка перенаправления в клиент",
- "Open locally" : "Открыть локально",
"Rename" : "Переименовать",
"Open details" : "Открыть подробности",
"View in folder" : "Посмотреть в каталоге",
@@ -322,12 +334,16 @@ OC.L10N.register(
"Files moved successfully" : "Файлы успешно перемещены",
"Conflicts resolution skipped" : "Разрешение конфликтов пропущено",
"Upload cancelled" : "Передача на сервер отменена",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Не удалось переименовать \"{oldName}\", его больше не существует",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Имя \"{newName}\" уже используется в каталоге \"{dir}\". Выберите другое имя.",
+ "Could not rename \"{oldName}\"" : "Не удалось переименовать «{oldName}»",
"This operation is forbidden" : "Операция запрещена",
"This directory is unavailable, please check the logs or contact the administrator" : "Каталог недоступен. Проверьте журналы событий или свяжитесь с администратором",
"Storage is temporarily not available" : "Хранилище временно недоступно",
"Unexpected error: {error}" : "Неожиданная ошибка: {error}",
"_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов","%n файлов"],
"_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов","%n каталогов"],
+ "_%n hidden_::_%n hidden_" : ["скрыто %n","скрыто %n","скрыто %n","скрыто %n"],
"Filename must not be empty." : "Имя файла не должно быть пустым.",
"\"{char}\" is not allowed inside a filename." : "не допускается внутри имени файла.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "является зарезервированным именем и не допускается для имен файлов.",
@@ -352,7 +368,6 @@ OC.L10N.register(
"Upload too large" : "Файл слишком велик",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файлы, которые вы пытаетесь передать, превышают лимит максимального размера на этом сервере.",
"File could not be found" : "Невозможно найти файл",
- "Download" : "Скачать",
"Show list view" : "Просмотр списком",
"Show grid view" : "Просмотр сеткой",
"Close" : "Закрыть",
@@ -391,9 +406,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} скопирован в {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} и {nbfiles} других файлов скопированы в {destination}",
"{newName} already exists" : "«{newName}» уже существует",
- "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}»",
"Could not create file \"{file}\" because it already exists" : "Невозможно создать файл «{file}», он уже существует",
"Could not create folder \"{dir}\" because it already exists" : "Невозможно создать каталог «{dir}», он уже существует",
@@ -426,35 +438,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Внутренняя ссылка скопирована. Она может быть использована только пользователями, у которых уже есть доступ к этому файлу или папке. ",
"Path" : "Путь",
"_%n byte_::_%n bytes_" : ["%n байт","%n байта","%n байт","%n байт"],
- "Favorited" : "Избранное",
+ "Favored" : "Избранные",
+ "Favor" : "Услуга",
"Copy direct link (only works for people who have access to this file/folder)" : "Копировать прямую ссылку (она сработает только для пользователей, у которых уже есть доступ к этому файлу или каталогу)",
"Upload file" : "Загрузить файл",
- "Not favorited" : "Не избранное",
+ "Not favored" : "Не одобрен",
"An error occurred while trying to update the tags" : "Во время обновления тегов возникла ошибка",
- "You don't have permission to upload or create files here." : "У вас нет разрешения на загрузку или создание файлов здесь.",
- "Storage informations" : "Сведения о хранилище",
- "Choose file" : "Выберите файл",
- "Go to the previous folder" : "Перейти к предыдущей папке",
- "Open the files app settings" : "Открыть параметры приложения «Файлы»",
- "Unable to change the favourite state of the file" : "Не удалось изменить состояние «избранный» этого файла.",
- "Edit file locally" : "Редактировать файл локально",
- "Edit online" : "Редактировать онлайн",
- "Create new templates folder" : "Создать новую папку шаблонов",
+ "Upload (max. %s)" : "Загрузка (максимум %s)",
+ "Submitting fields…" : "Отправка полей…",
+ "Filter filenames…" : "Фильтровать имена файлов…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папки","{folderCount} папок","{folderCount} папки"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файла","{fileCount} файлов","{fileCount} файла"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["один файл и {folderCount} папка","один файл и {folderCount} папки","один файл и {folderCount} папок","один файл и {folderCount} папки"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} файл и одна папка","{fileCount} файла и одна папка","{fileCount} файлов и одна папка","{fileCount} файла и одна папка"],
"{fileCount} files and {folderCount} folders" : "файлов: {fileCount}, папок: {folderCount}",
- "List of favorites files and folders." : "Список избранных файлов и каталогов.",
"Personal Files" : "Личные файлы",
"Text file" : "Текстовый файл",
"New text file.txt" : "Новый текстовый файл.txt",
- "Favored" : "Избранные",
- "Favor" : "Услуга",
- "Not favored" : "Не одобрен",
- "Submitting fields…" : "Отправка полей…",
- "Filter filenames…" : "Фильтровать имена файлов…",
- "{count} files could not be converted" : "{count} файлы не могут быть преобразованы",
- "{count} files successfully converted" : "{count} файлы успешно преобразованы"
+ "%1$s (renamed)" : "%1$s (переименовано)",
+ "renamed file" : "переименованный файл",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "После включения совместимых с Windows названий файлов, существующие файлы нельзя будет изменить, но они могут быть переименованы их владельцем в допустимые новые имена."
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index e60b7d59675..32c53285922 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -52,7 +52,6 @@
"Favorite files" : "Избранные файлы",
"No favorites" : "Нет избранного",
"More favorites" : "Больше избранного",
- "Upload (max. %s)" : "Загрузка (максимум %s)",
"Accept" : "Принять",
"Reject" : "Отклонить",
"Incoming ownership transfer from {user}" : "Запрос передачи владения от пользователя {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Передано от %1$s %2$s",
"Files compatibility" : "Совместимость файлов",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Разрешить ограничения на имена файлов для обеспечения возможности их синхронизации со всеми клиентами. По умолчанию разрешены все имена файлов, допустимые в POSIX (например, в Linux или macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "После включения совместимых с Windows названий файлов, существующие файлы нельзя будет изменить, но они могут быть переименованы их владельцем в допустимые новые имена.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Также возможно мигрировать файлы автоматически после включения этой настройки, пожалуйста, обратитесь к документации о команде occ.",
"Enforce Windows compatibility" : "Обеспечить совместимость с Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Это позволит блокировать имена файлов, недопустимые в системах Windows, например, использующие зарезервированные имена или специальные символы. Однако это не обеспечит совместимость в части чувствительности к регистру.",
"File Management" : "Управление файлами",
@@ -93,6 +94,12 @@
"Invalid filename." : "Недопустимое имя файла.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Переименовано «{oldName}» в \"{newName}\"",
"Rename file" : "Переименовать файл",
+ "Folder" : "Каталог",
+ "Unknown file type" : "Неизвестный тип файла",
+ "{ext} image" : "{ext} изображение",
+ "{ext} video" : "{ext} видео",
+ "{ext} audio" : "{ext} аудио",
+ "{ext} text" : "{ext} текст",
"Pending" : "Ожидается",
"Unknown date" : "Неизвестная дата",
"Clear filter" : "Сбросить фильтр",
@@ -103,6 +110,7 @@
"Total rows summary" : "Количество строк в общем",
"Toggle selection for all files and folders" : "Установить или снять выделение всех файлов и папок",
"Name" : "Имя",
+ "File type" : "Тип файла",
"Size" : "Размер",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" не удалось выполнить некоторые элементы",
"\"{displayName}\" batch action executed successfully" : "Пакетное действие \"{displayName}\" выполнено успешно",
@@ -114,7 +122,6 @@
"Column headers with buttons are sortable." : "Заголовки столбцов с кнопками можно сортировать.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Этот список отображается не полностью из соображений производительности. Файлы будут отображаться по мере перемещения по списку.",
"File not found" : "Файл не найден",
- "{count} selected" : "{count} выбрано",
"{usedQuotaByte} used" : "Использовано {usedQuotaByte}",
"{used} of {quota} used" : "использовано {used} из {quota}",
"{relative}% used" : "Использовано {relative}%",
@@ -181,6 +188,7 @@
"Sort favorites first" : "Сначала избранное",
"Sort folders before files" : "Начинать список с папок",
"Show hidden files" : "Показывать скрытые файлы",
+ "Show file type column" : "Показать колонку с типом файла",
"Crop image previews" : "Обрезать пред. просмотр",
"Enable the grid view" : "Включить режим просмотра сеткой",
"Enable folder tree" : "Включить дерево папок",
@@ -217,6 +225,7 @@
"Show those shortcuts" : "Показать ярлыки",
"You" : "Вы",
"Shared multiple times with different people" : "Делиться несколько раз с разными людьми",
+ "Unable to change the favorite state of the file" : "Невозможно изменить избранное состояние файла",
"Error while loading the file data" : "Не удалось загрузить данные файла",
"Owner" : "Владелец",
"Remove from favorites" : "Удалить из избранных",
@@ -257,8 +266,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Подтвердите удаление {count} объекта.","Подтвердите удаление {count} объектов","Подтвердите удаление {count} объектов","Подтвердите удаление {count} объектов"],
"Confirm deletion" : "Подтвердить удаление",
"Cancel" : "Отменить",
+ "Download" : "Скачать",
"Moving \"{source}\" to \"{destination}\" …" : "Перемещение \"{source}\" в \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Копирование \"{source}\" в \"{destination}\" …",
+ "Destination is not a folder" : "Указанное назначение не является папкой",
+ "This file/folder is already in that directory" : "Файл или папка уже расположены в этой папке",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Папка или файл не могут быть перемещены во вложенную папку или в себя",
"(copy)" : "(копия)",
"(copy %n)" : "(копия %n)",
@@ -277,12 +289,12 @@
"Cancelled move or copy operation" : "Копирование или перемещение отменено",
"Open folder {displayName}" : "Открыть папку «{displayName}»",
"Open in Files" : "Открыть в приложении «Файлы»",
+ "Open locally" : "Открыть локально",
+ "Failed to redirect to client" : "Ошибка перенаправления в клиент",
"Open file locally" : "Открыть файл локально",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Теперь файл должен открыться на вашем устройстве. Если это не произошло, пожалуйста, убедитесь, что у вас установлено настольное приложение.",
"Retry and close" : "Повторить попытку и закрыть",
"Open online" : "Открыть онлайн",
- "Failed to redirect to client" : "Ошибка перенаправления в клиент",
- "Open locally" : "Открыть локально",
"Rename" : "Переименовать",
"Open details" : "Открыть подробности",
"View in folder" : "Посмотреть в каталоге",
@@ -320,12 +332,16 @@
"Files moved successfully" : "Файлы успешно перемещены",
"Conflicts resolution skipped" : "Разрешение конфликтов пропущено",
"Upload cancelled" : "Передача на сервер отменена",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Не удалось переименовать \"{oldName}\", его больше не существует",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Имя \"{newName}\" уже используется в каталоге \"{dir}\". Выберите другое имя.",
+ "Could not rename \"{oldName}\"" : "Не удалось переименовать «{oldName}»",
"This operation is forbidden" : "Операция запрещена",
"This directory is unavailable, please check the logs or contact the administrator" : "Каталог недоступен. Проверьте журналы событий или свяжитесь с администратором",
"Storage is temporarily not available" : "Хранилище временно недоступно",
"Unexpected error: {error}" : "Неожиданная ошибка: {error}",
"_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов","%n файлов"],
"_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов","%n каталогов"],
+ "_%n hidden_::_%n hidden_" : ["скрыто %n","скрыто %n","скрыто %n","скрыто %n"],
"Filename must not be empty." : "Имя файла не должно быть пустым.",
"\"{char}\" is not allowed inside a filename." : "не допускается внутри имени файла.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "является зарезервированным именем и не допускается для имен файлов.",
@@ -350,7 +366,6 @@
"Upload too large" : "Файл слишком велик",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файлы, которые вы пытаетесь передать, превышают лимит максимального размера на этом сервере.",
"File could not be found" : "Невозможно найти файл",
- "Download" : "Скачать",
"Show list view" : "Просмотр списком",
"Show grid view" : "Просмотр сеткой",
"Close" : "Закрыть",
@@ -389,9 +404,6 @@
"Copied {origin} inside {destination}" : "{origin} скопирован в {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} и {nbfiles} других файлов скопированы в {destination}",
"{newName} already exists" : "«{newName}» уже существует",
- "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}»",
"Could not create file \"{file}\" because it already exists" : "Невозможно создать файл «{file}», он уже существует",
"Could not create folder \"{dir}\" because it already exists" : "Невозможно создать каталог «{dir}», он уже существует",
@@ -424,35 +436,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Внутренняя ссылка скопирована. Она может быть использована только пользователями, у которых уже есть доступ к этому файлу или папке. ",
"Path" : "Путь",
"_%n byte_::_%n bytes_" : ["%n байт","%n байта","%n байт","%n байт"],
- "Favorited" : "Избранное",
+ "Favored" : "Избранные",
+ "Favor" : "Услуга",
"Copy direct link (only works for people who have access to this file/folder)" : "Копировать прямую ссылку (она сработает только для пользователей, у которых уже есть доступ к этому файлу или каталогу)",
"Upload file" : "Загрузить файл",
- "Not favorited" : "Не избранное",
+ "Not favored" : "Не одобрен",
"An error occurred while trying to update the tags" : "Во время обновления тегов возникла ошибка",
- "You don't have permission to upload or create files here." : "У вас нет разрешения на загрузку или создание файлов здесь.",
- "Storage informations" : "Сведения о хранилище",
- "Choose file" : "Выберите файл",
- "Go to the previous folder" : "Перейти к предыдущей папке",
- "Open the files app settings" : "Открыть параметры приложения «Файлы»",
- "Unable to change the favourite state of the file" : "Не удалось изменить состояние «избранный» этого файла.",
- "Edit file locally" : "Редактировать файл локально",
- "Edit online" : "Редактировать онлайн",
- "Create new templates folder" : "Создать новую папку шаблонов",
+ "Upload (max. %s)" : "Загрузка (максимум %s)",
+ "Submitting fields…" : "Отправка полей…",
+ "Filter filenames…" : "Фильтровать имена файлов…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папки","{folderCount} папок","{folderCount} папки"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файла","{fileCount} файлов","{fileCount} файла"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["один файл и {folderCount} папка","один файл и {folderCount} папки","один файл и {folderCount} папок","один файл и {folderCount} папки"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} файл и одна папка","{fileCount} файла и одна папка","{fileCount} файлов и одна папка","{fileCount} файла и одна папка"],
"{fileCount} files and {folderCount} folders" : "файлов: {fileCount}, папок: {folderCount}",
- "List of favorites files and folders." : "Список избранных файлов и каталогов.",
"Personal Files" : "Личные файлы",
"Text file" : "Текстовый файл",
"New text file.txt" : "Новый текстовый файл.txt",
- "Favored" : "Избранные",
- "Favor" : "Услуга",
- "Not favored" : "Не одобрен",
- "Submitting fields…" : "Отправка полей…",
- "Filter filenames…" : "Фильтровать имена файлов…",
- "{count} files could not be converted" : "{count} файлы не могут быть преобразованы",
- "{count} files successfully converted" : "{count} файлы успешно преобразованы"
+ "%1$s (renamed)" : "%1$s (переименовано)",
+ "renamed file" : "переименованный файл",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "После включения совместимых с Windows названий файлов, существующие файлы нельзя будет изменить, но они могут быть переименованы их владельцем в допустимые новые имена."
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sc.js b/apps/files/l10n/sc.js
index 5fe5f9b3545..755e1047412 100644
--- a/apps/files/l10n/sc.js
+++ b/apps/files/l10n/sc.js
@@ -42,7 +42,6 @@ OC.L10N.register(
"Files" : "Archìvios",
"A file or folder has been <strong>changed</strong>" : "Ant <strong>cambiadu</strong> un'archìviu o una cartella",
"A favorite file or folder has been <strong>changed</strong>" : "Ant <strong>cambiadu</strong>un'archìviu o una cartella preferida",
- "Upload (max. %s)" : "Càrriga (max. %s)",
"Accept" : "Atzeta",
"Reject" : "Refuda",
"Incoming ownership transfer from {user}" : "Tràmuda de propriedade in intrada dae {user}",
@@ -66,6 +65,7 @@ OC.L10N.register(
"Folder name" : "Nùmene de sa cartella",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" s'est torradu a numenare comente \"{newName}\"",
"Rename file" : "Torra a numenare s'archìviu",
+ "Folder" : "Cartella",
"Pending" : "In suspesu",
"Clear filter" : "Lìmpia filtru",
"Modified" : "Modificadu",
@@ -76,7 +76,6 @@ OC.L10N.register(
"(selected)" : "(seletzionados)",
"List of files and folders." : "Lista de archìvios e cartellas.",
"File not found" : "Archìviu no agatadu",
- "{count} selected" : "seletzionados: {count}",
"{usedQuotaByte} used" : "{usedQuotaByte} impreadu",
"{used} of {quota} used" : "{used} de {quota} impreadu",
"{relative}% used" : "{relative}% impreadu",
@@ -148,6 +147,9 @@ OC.L10N.register(
"Delete folder" : "Cantzella sa cartella",
"Delete" : "Cantzella",
"Cancel" : "Annulla",
+ "Download" : "Iscàrriga",
+ "Destination is not a folder" : "Sa destinatzione no est una cartella",
+ "This file/folder is already in that directory" : "Custu archìviu o cartella est giai in cussu diretòriu",
"The file does not exist anymore" : "S'archìviu no esistit prus",
"Choose destination" : "Sèbera unu destinu",
"Copy to {target}" : "Còpia a {target}",
@@ -160,8 +162,8 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Operatzione de tràmuda o còpia annullada",
"Open folder {displayName}" : "Aberi sa cartella {displayName}",
"Open in Files" : "Aberi in Archìvios",
- "Open file locally" : "Aberi s'archìviu in locale",
"Open locally" : "Aberi in locale",
+ "Open file locally" : "Aberi s'archìviu in locale",
"Rename" : "Torra a numenare",
"Open details" : "Aberi is detàllios",
"View in folder" : "Visualiza in sa cartella",
@@ -174,7 +176,14 @@ OC.L10N.register(
"Created new folder \"{name}\"" : "Cartella noa \"{name}\" creada",
"Unable to initialize the templates directory" : "Non faghet a initzializare sa cartella de is modellos",
"Templates" : "Modellos",
+ "No files to upload" : "Perunu archìviu de carrigare",
+ "Some files could not be uploaded" : "No at fatu a carrigare unos cantos archìvios",
+ "Files uploaded successfully" : "Archìvios carrigados",
"Some files could not be moved" : "No at fatu a tramudare carchi archìviu",
+ "Upload cancelled" : "Carrigamentu annulladu",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Impossìbile torrare a numenare \"{oldName}\", dae chi no esistit prus",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Su nùmene \"{newName}\" est giai impreadu in sa cartella \"{dir}\". Sèbera unu nùmene diferente.",
+ "Could not rename \"{oldName}\"" : "Impossìbile torrare a numenare \"{oldName}\"",
"This operation is forbidden" : "Custa operatzione no est permìtida",
"This directory is unavailable, please check the logs or contact the administrator" : "Custa cartella no est a disponimentu, controlla is informes o cuntata s'amministratzione",
"Storage is temporarily not available" : "S'archiviatzione immoe no est a disponimentu",
@@ -184,6 +193,7 @@ OC.L10N.register(
"Files and folders you mark as favorite will show up here" : "Is archìvios e is cartellas chi marcas comente preferidos ant a aparèssere inoghe",
"All files" : "Totu is archìvios",
"List of your files and folders." : "Lista de is cartellas e is archìvios tuos.",
+ "All folders" : "Totu is cartellas",
"Personal files" : "Archìvios personales",
"No personal files found" : "Perunu archìviu personale agatadu",
"Recent" : "Reghente",
@@ -195,7 +205,6 @@ OC.L10N.register(
"Upload too large" : "Carrigamentu tropu mannu",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Is archìvios chi boles carrigare passant sa mannària màssima de carrigamentu de archìvios in custu serbidore.",
"File could not be found" : "No at fatu a agatare s'archìviu",
- "Download" : "Iscàrriga",
"Show list view" : "Mustra sa visualizatzione de lista",
"Show grid view" : "Mustra sa visualizatzione de mosàicu",
"Close" : "Serra",
@@ -234,9 +243,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} copiadu a intro de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copiados {origin} e {nbfiles} àteros archìvios a intro de {destination}",
"{newName} already exists" : "{newName} esistit giai",
- "Could not rename \"{fileName}\", it does not exist any more" : "No at fatu a torrare a numenare \"{fileName}\", ca no esistit prus",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Su nùmene \"{targetName}\" est giai impreadu in sa cartella \"{dir}\". Sèbera un'àteru nùmene.",
- "Could not rename \"{fileName}\"" : "No at fatu a torrare a numenare \"{fileName}\"",
"Could not create file \"{file}\"" : "No at fatu a creare s'archìviu \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "No at fatu a creare s'archìviu \"{file}\" ca esitit giai",
"Could not create folder \"{dir}\" because it already exists" : "No at fatu a creare sa cartella \"{dir}\" ca esistit giai",
@@ -269,23 +275,16 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Ligòngiu diretu copiadu (funtzionat isceti pro gente chi tenet atzessu a custu archìviu o cartella)",
"Path" : "Percursu",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Preferidu",
"Copy direct link (only works for people who have access to this file/folder)" : "Còpia su ligòngiu diretu (funtzionat isceti pro gente chi tenet atzessu a custu archìviu o cartella)",
- "Upload file" : "Carriga archìviu",
- "Not favorited" : "Non preferidu",
+ "Upload file" : "Càrriga archìviu",
"An error occurred while trying to update the tags" : "B'at àpidu un'errore proende a agiornare is etichetas",
- "Storage informations" : "Informatziones de s'archiviatzione",
- "Choose file" : "Sèbera un'archìviu",
- "Go to the previous folder" : "Bae a sa cartella pretzedente",
- "Open the files app settings" : "Aberi sa cunfiguratzione de s'aplicatzione de archìvios",
- "Unable to change the favourite state of the file" : "Non faghet a cambiare s'istadu de preferidu de s'archìviu",
- "Create new templates folder" : "Crea una cartella de modellos noa",
+ "Upload (max. %s)" : "Càrriga (max. %s)",
+ "Filter filenames…" : "Filtra nùmenes de archìviu...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartella","{folderCount} cartellas"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archìviu","{fileCount} archìvios"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archìviu e {folderCount} cartella","1 archìviu e {folderCount} cartellas"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} archìviu e 1 cartella","{fileCount} archìvios e 1 cartella"],
"{fileCount} files and {folderCount} folders" : "{fileCount} archìvios e {folderCount} cartellas",
- "List of favorites files and folders." : "Lista de cartellas e de archìvios preferidos.",
"Personal Files" : "Archìvios personales",
"Text file" : "Archìviu de testu",
"New text file.txt" : "Archìviu de testu .txt nou"
diff --git a/apps/files/l10n/sc.json b/apps/files/l10n/sc.json
index 93e34ec62fe..155c639ed06 100644
--- a/apps/files/l10n/sc.json
+++ b/apps/files/l10n/sc.json
@@ -40,7 +40,6 @@
"Files" : "Archìvios",
"A file or folder has been <strong>changed</strong>" : "Ant <strong>cambiadu</strong> un'archìviu o una cartella",
"A favorite file or folder has been <strong>changed</strong>" : "Ant <strong>cambiadu</strong>un'archìviu o una cartella preferida",
- "Upload (max. %s)" : "Càrriga (max. %s)",
"Accept" : "Atzeta",
"Reject" : "Refuda",
"Incoming ownership transfer from {user}" : "Tràmuda de propriedade in intrada dae {user}",
@@ -64,6 +63,7 @@
"Folder name" : "Nùmene de sa cartella",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" s'est torradu a numenare comente \"{newName}\"",
"Rename file" : "Torra a numenare s'archìviu",
+ "Folder" : "Cartella",
"Pending" : "In suspesu",
"Clear filter" : "Lìmpia filtru",
"Modified" : "Modificadu",
@@ -74,7 +74,6 @@
"(selected)" : "(seletzionados)",
"List of files and folders." : "Lista de archìvios e cartellas.",
"File not found" : "Archìviu no agatadu",
- "{count} selected" : "seletzionados: {count}",
"{usedQuotaByte} used" : "{usedQuotaByte} impreadu",
"{used} of {quota} used" : "{used} de {quota} impreadu",
"{relative}% used" : "{relative}% impreadu",
@@ -146,6 +145,9 @@
"Delete folder" : "Cantzella sa cartella",
"Delete" : "Cantzella",
"Cancel" : "Annulla",
+ "Download" : "Iscàrriga",
+ "Destination is not a folder" : "Sa destinatzione no est una cartella",
+ "This file/folder is already in that directory" : "Custu archìviu o cartella est giai in cussu diretòriu",
"The file does not exist anymore" : "S'archìviu no esistit prus",
"Choose destination" : "Sèbera unu destinu",
"Copy to {target}" : "Còpia a {target}",
@@ -158,8 +160,8 @@
"Cancelled move or copy operation" : "Operatzione de tràmuda o còpia annullada",
"Open folder {displayName}" : "Aberi sa cartella {displayName}",
"Open in Files" : "Aberi in Archìvios",
- "Open file locally" : "Aberi s'archìviu in locale",
"Open locally" : "Aberi in locale",
+ "Open file locally" : "Aberi s'archìviu in locale",
"Rename" : "Torra a numenare",
"Open details" : "Aberi is detàllios",
"View in folder" : "Visualiza in sa cartella",
@@ -172,7 +174,14 @@
"Created new folder \"{name}\"" : "Cartella noa \"{name}\" creada",
"Unable to initialize the templates directory" : "Non faghet a initzializare sa cartella de is modellos",
"Templates" : "Modellos",
+ "No files to upload" : "Perunu archìviu de carrigare",
+ "Some files could not be uploaded" : "No at fatu a carrigare unos cantos archìvios",
+ "Files uploaded successfully" : "Archìvios carrigados",
"Some files could not be moved" : "No at fatu a tramudare carchi archìviu",
+ "Upload cancelled" : "Carrigamentu annulladu",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Impossìbile torrare a numenare \"{oldName}\", dae chi no esistit prus",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Su nùmene \"{newName}\" est giai impreadu in sa cartella \"{dir}\". Sèbera unu nùmene diferente.",
+ "Could not rename \"{oldName}\"" : "Impossìbile torrare a numenare \"{oldName}\"",
"This operation is forbidden" : "Custa operatzione no est permìtida",
"This directory is unavailable, please check the logs or contact the administrator" : "Custa cartella no est a disponimentu, controlla is informes o cuntata s'amministratzione",
"Storage is temporarily not available" : "S'archiviatzione immoe no est a disponimentu",
@@ -182,6 +191,7 @@
"Files and folders you mark as favorite will show up here" : "Is archìvios e is cartellas chi marcas comente preferidos ant a aparèssere inoghe",
"All files" : "Totu is archìvios",
"List of your files and folders." : "Lista de is cartellas e is archìvios tuos.",
+ "All folders" : "Totu is cartellas",
"Personal files" : "Archìvios personales",
"No personal files found" : "Perunu archìviu personale agatadu",
"Recent" : "Reghente",
@@ -193,7 +203,6 @@
"Upload too large" : "Carrigamentu tropu mannu",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Is archìvios chi boles carrigare passant sa mannària màssima de carrigamentu de archìvios in custu serbidore.",
"File could not be found" : "No at fatu a agatare s'archìviu",
- "Download" : "Iscàrriga",
"Show list view" : "Mustra sa visualizatzione de lista",
"Show grid view" : "Mustra sa visualizatzione de mosàicu",
"Close" : "Serra",
@@ -232,9 +241,6 @@
"Copied {origin} inside {destination}" : "{origin} copiadu a intro de {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Copiados {origin} e {nbfiles} àteros archìvios a intro de {destination}",
"{newName} already exists" : "{newName} esistit giai",
- "Could not rename \"{fileName}\", it does not exist any more" : "No at fatu a torrare a numenare \"{fileName}\", ca no esistit prus",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Su nùmene \"{targetName}\" est giai impreadu in sa cartella \"{dir}\". Sèbera un'àteru nùmene.",
- "Could not rename \"{fileName}\"" : "No at fatu a torrare a numenare \"{fileName}\"",
"Could not create file \"{file}\"" : "No at fatu a creare s'archìviu \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "No at fatu a creare s'archìviu \"{file}\" ca esitit giai",
"Could not create folder \"{dir}\" because it already exists" : "No at fatu a creare sa cartella \"{dir}\" ca esistit giai",
@@ -267,23 +273,16 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Ligòngiu diretu copiadu (funtzionat isceti pro gente chi tenet atzessu a custu archìviu o cartella)",
"Path" : "Percursu",
"_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Favorited" : "Preferidu",
"Copy direct link (only works for people who have access to this file/folder)" : "Còpia su ligòngiu diretu (funtzionat isceti pro gente chi tenet atzessu a custu archìviu o cartella)",
- "Upload file" : "Carriga archìviu",
- "Not favorited" : "Non preferidu",
+ "Upload file" : "Càrriga archìviu",
"An error occurred while trying to update the tags" : "B'at àpidu un'errore proende a agiornare is etichetas",
- "Storage informations" : "Informatziones de s'archiviatzione",
- "Choose file" : "Sèbera un'archìviu",
- "Go to the previous folder" : "Bae a sa cartella pretzedente",
- "Open the files app settings" : "Aberi sa cunfiguratzione de s'aplicatzione de archìvios",
- "Unable to change the favourite state of the file" : "Non faghet a cambiare s'istadu de preferidu de s'archìviu",
- "Create new templates folder" : "Crea una cartella de modellos noa",
+ "Upload (max. %s)" : "Càrriga (max. %s)",
+ "Filter filenames…" : "Filtra nùmenes de archìviu...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} cartella","{folderCount} cartellas"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} archìviu","{fileCount} archìvios"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 archìviu e {folderCount} cartella","1 archìviu e {folderCount} cartellas"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} archìviu e 1 cartella","{fileCount} archìvios e 1 cartella"],
"{fileCount} files and {folderCount} folders" : "{fileCount} archìvios e {folderCount} cartellas",
- "List of favorites files and folders." : "Lista de cartellas e de archìvios preferidos.",
"Personal Files" : "Archìvios personales",
"Text file" : "Archìviu de testu",
"New text file.txt" : "Archìviu de testu .txt nou"
diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js
index b1cc68855dc..bcb44beb3f3 100644
--- a/apps/files/l10n/sk.js
+++ b/apps/files/l10n/sk.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Obľúbené súbory",
"No favorites" : "Žiadne obľúbené",
"More favorites" : "Viac obľúbených",
- "Upload (max. %s)" : "Nahrať (max. %s)",
"Accept" : "Prijať",
"Reject" : "Odmietnuť",
"Incoming ownership transfer from {user}" : "Prichádzajúci prevod vlastníctva od {user}",
@@ -95,6 +94,7 @@ OC.L10N.register(
"Invalid filename." : "Chybný názov súboru.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Premenované z \"{oldName}\" na \"{newName}\"",
"Rename file" : "Premenovať súbor",
+ "Folder" : "Priečinok",
"Pending" : "Čaká",
"Unknown date" : "Neznámy dátum",
"Clear filter" : "Vyčistiť filter",
@@ -116,7 +116,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Stĺpce hlavičiek s tlačidlami sú triediteľné.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Tento zoznam nie je úplne vykreslený z dôvodov výkonu. Súbory budú vykreslené, keď budete prechádzať zoznamom.",
"File not found" : "Súbor nenájdený",
- "{count} selected" : "{count} vybraných",
+ "_{count} selected_::_{count} selected_" : ["{count} vybraný","{count} vybrané","{count} vybraných","{count} vybraných"],
"{usedQuotaByte} used" : "{usedQuotaByte} použitých",
"{used} of {quota} used" : "použitých {used} z {quota}",
"{relative}% used" : "{relative}% použitých",
@@ -219,6 +219,7 @@ OC.L10N.register(
"Show those shortcuts" : "Zobraziť klávesové skratky",
"You" : "Vy",
"Shared multiple times with different people" : "Zdieľané viackrát rôznymi ľuďmi",
+ "Unable to change the favorite state of the file" : "Nie je možné zmeniť stav „obľúbené“ súboru",
"Error while loading the file data" : "Chyba pri načítaní údajov súboru",
"Owner" : "Vlastník",
"Remove from favorites" : "Odstrániť z obľúbených",
@@ -259,8 +260,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Chystáte sa vymazať {count} položku","Chystáte sa vymazať {count} položky","Chystáte sa vymazať {count} položiek","Chystáte sa vymazať {count} položiek"],
"Confirm deletion" : "Potvrdiť vymazanie",
"Cancel" : "Zrušiť",
+ "Download" : "Stiahnuť",
"Moving \"{source}\" to \"{destination}\" …" : "Presúvanie \"{source}\" do \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopírovanie \"{source}\" do \"{destination}\" …",
+ "Destination is not a folder" : "Cieľ nie je priečinok",
+ "This file/folder is already in that directory" : "Tento súbor/priečinok sa už v danom adresári nachádza",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Nemôžete presunúť súbor/priečinok do seba alebo do jeho podpriečinka.",
"(copy)" : "(kopírovať)",
"(copy %n)" : "(kopírovať %n)",
@@ -279,12 +283,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Zrušená operácia kopírovania alebo presunu",
"Open folder {displayName}" : "Otvoriť priečinok {displayName}",
"Open in Files" : "Otvoriť v súboroch",
+ "Open locally" : "Otvoriť lokálne",
+ "Failed to redirect to client" : "Nepodarilo sa presmerovať na klienta",
"Open file locally" : "Otvoriť súbor lokálne",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Súbor by sa mal teraz otvoriť v zariadení. Ak sa tak nestane, skontrolujte, či máte nainštalovanú aplikáciu pre počítače.",
"Retry and close" : "Skúsiť znova a zatvoriť",
"Open online" : "Otvoriť online",
- "Failed to redirect to client" : "Nepodarilo sa presmerovať na klienta",
- "Open locally" : "Otvoriť lokálne",
"Rename" : "Premenovať",
"Open details" : "Otvoriť detaily",
"View in folder" : "Zobraziť v priečinku",
@@ -322,6 +326,9 @@ OC.L10N.register(
"Files moved successfully" : "Súbory boli úspešne presunuté",
"Conflicts resolution skipped" : "Riešenie konfliktov bolo preskočené",
"Upload cancelled" : "Odosielanie bolo zrušené",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Nebolo možné premenovať \"{oldName}\". Položka už neexistuje.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Názov \"{newName}\" sa už používa v priečinku \"{dir}\". Vyberte prosím iný názov.",
+ "Could not rename \"{oldName}\"" : "Nebolo možné premenovať \"{oldName}\"",
"This operation is forbidden" : "Táto operácia je zakázaná",
"This directory is unavailable, please check the logs or contact the administrator" : "Priečinok je nedostupný, skontrolujte prosím logy, alebo kontaktujte správcu",
"Storage is temporarily not available" : "Úložisko je dočasne nedostupné",
@@ -352,7 +359,6 @@ OC.L10N.register(
"Upload too large" : "Nahrávanie je príliš veľké",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.",
"File could not be found" : "Súbor nie je možné nájsť",
- "Download" : "Stiahnuť",
"Show list view" : "Zobraziť ako zoznam",
"Show grid view" : "Zobraziť v mriežke",
"Close" : "Zavrieť",
@@ -391,9 +397,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Skopírované {origin} do {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Skopírované {origin} a {nbfiles} ostatných súborov do {destination}",
"{newName} already exists" : "{newName} už existuje",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nie je možné premenovať \"{fileName}\", cieľ už neexistuje",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Názov \"{targetName}\" je už použitý v priečinku \"{dir}\". Zvoľte prosím iný názov.",
- "Could not rename \"{fileName}\"" : "Nie je možné premenovať \"{fileName}\"",
"Could not create file \"{file}\"" : "Nie je možné vytvoriť súbor \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Nie je možné vytvoriť súbor \"{file}\" lebo už existuje",
"Could not create folder \"{dir}\" because it already exists" : "Nie je možné vytvoriť priečinok \"{dir}\" lebo už existuje",
@@ -426,35 +429,22 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Priamy odkaz bol skopirovaný (funguje iba pre užívateľov, ktorí majú prístup k danému súboru/adresáru)",
"Path" : "Cesta",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtov","%n bajtov"],
- "Favorited" : "Pridané k obľúbeným",
+ "Favored" : "Zaradiť medzi obľúbené",
+ "Favor" : "Zaradené medzi obľúbené",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopírovať priamy odkaz (funguje iba pre užívateľov, ktorí majú prístup k tomuto súboru/priečinku)",
"Upload file" : "Nahrať súbor",
- "Not favorited" : "Nie je obľúbený",
+ "Not favored" : "Nie je v obľúbených",
"An error occurred while trying to update the tags" : "Pri pokuse o aktualizáciu štítkov došlo k chybe",
- "You don't have permission to upload or create files here." : "Nemáte oprávnenie nahrávať alebo vytvárať súbory v tomto mieste.",
- "Storage informations" : "Úložiskové informácie",
- "Choose file" : "Vybrať súbor",
- "Go to the previous folder" : "Prejsť do predchádzajúceho priečinka",
- "Open the files app settings" : "Otvoriť nastavenia súborovej aplikácie",
- "Unable to change the favourite state of the file" : "Nie je možné zmeniť stav „obľúbené“ daného súboru",
- "Edit file locally" : "Editovať súbor lokálne",
- "Edit online" : "Upraviť online",
- "Create new templates folder" : "Vytvoriť nový vzorový priečinok",
+ "Upload (max. %s)" : "Nahrať (max. %s)",
+ "Submitting fields…" : "Položky sa odosielajú ...",
+ "Filter filenames…" : "Filtrovať názvy súborov...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} priečinok","{folderCount} priečinky","{folderCount} priečinkov","{folderCount} priečinkov"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} súbor","{fileCount} súbory","{fileCount} súborov","{fileCount} súborov"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 súbor a {folderCount} priečinok","1 súbor a {folderCount} priečinky","1 súbor a {folderCount} priečinky","1 súbor a {folderCount} priečinky"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} súbor a 1 priečinok","{fileCount} súborov a 1 priečinok","{fileCount} súborov a 1 priečinok","{fileCount} súborov a 1 priečinok"],
"{fileCount} files and {folderCount} folders" : "{fileCount} súborov a {folderCount} priečinkov",
- "List of favorites files and folders." : "Zoznam obľúbených súborov a priečinkov.",
"Personal Files" : "Osobné Súbory",
"Text file" : "Textový súbor",
- "New text file.txt" : "Nový text file.txt",
- "Favored" : "Zaradiť medzi obľúbené",
- "Favor" : "Zaradené medzi obľúbené",
- "Not favored" : "Nie je v obľúbených",
- "Submitting fields…" : "Položky sa odosielajú ...",
- "Filter filenames…" : "Filtrovať názvy súborov...",
- "{count} files could not be converted" : "{count} súborov sa nepodarilo skonvertovať",
- "{count} files successfully converted" : "{count} súborov bolo skonvertovaných"
+ "New text file.txt" : "Nový text file.txt"
},
"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json
index ea475f6befa..d9d2a6212d4 100644
--- a/apps/files/l10n/sk.json
+++ b/apps/files/l10n/sk.json
@@ -52,7 +52,6 @@
"Favorite files" : "Obľúbené súbory",
"No favorites" : "Žiadne obľúbené",
"More favorites" : "Viac obľúbených",
- "Upload (max. %s)" : "Nahrať (max. %s)",
"Accept" : "Prijať",
"Reject" : "Odmietnuť",
"Incoming ownership transfer from {user}" : "Prichádzajúci prevod vlastníctva od {user}",
@@ -93,6 +92,7 @@
"Invalid filename." : "Chybný názov súboru.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Premenované z \"{oldName}\" na \"{newName}\"",
"Rename file" : "Premenovať súbor",
+ "Folder" : "Priečinok",
"Pending" : "Čaká",
"Unknown date" : "Neznámy dátum",
"Clear filter" : "Vyčistiť filter",
@@ -114,7 +114,7 @@
"Column headers with buttons are sortable." : "Stĺpce hlavičiek s tlačidlami sú triediteľné.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Tento zoznam nie je úplne vykreslený z dôvodov výkonu. Súbory budú vykreslené, keď budete prechádzať zoznamom.",
"File not found" : "Súbor nenájdený",
- "{count} selected" : "{count} vybraných",
+ "_{count} selected_::_{count} selected_" : ["{count} vybraný","{count} vybrané","{count} vybraných","{count} vybraných"],
"{usedQuotaByte} used" : "{usedQuotaByte} použitých",
"{used} of {quota} used" : "použitých {used} z {quota}",
"{relative}% used" : "{relative}% použitých",
@@ -217,6 +217,7 @@
"Show those shortcuts" : "Zobraziť klávesové skratky",
"You" : "Vy",
"Shared multiple times with different people" : "Zdieľané viackrát rôznymi ľuďmi",
+ "Unable to change the favorite state of the file" : "Nie je možné zmeniť stav „obľúbené“ súboru",
"Error while loading the file data" : "Chyba pri načítaní údajov súboru",
"Owner" : "Vlastník",
"Remove from favorites" : "Odstrániť z obľúbených",
@@ -257,8 +258,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Chystáte sa vymazať {count} položku","Chystáte sa vymazať {count} položky","Chystáte sa vymazať {count} položiek","Chystáte sa vymazať {count} položiek"],
"Confirm deletion" : "Potvrdiť vymazanie",
"Cancel" : "Zrušiť",
+ "Download" : "Stiahnuť",
"Moving \"{source}\" to \"{destination}\" …" : "Presúvanie \"{source}\" do \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopírovanie \"{source}\" do \"{destination}\" …",
+ "Destination is not a folder" : "Cieľ nie je priečinok",
+ "This file/folder is already in that directory" : "Tento súbor/priečinok sa už v danom adresári nachádza",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Nemôžete presunúť súbor/priečinok do seba alebo do jeho podpriečinka.",
"(copy)" : "(kopírovať)",
"(copy %n)" : "(kopírovať %n)",
@@ -277,12 +281,12 @@
"Cancelled move or copy operation" : "Zrušená operácia kopírovania alebo presunu",
"Open folder {displayName}" : "Otvoriť priečinok {displayName}",
"Open in Files" : "Otvoriť v súboroch",
+ "Open locally" : "Otvoriť lokálne",
+ "Failed to redirect to client" : "Nepodarilo sa presmerovať na klienta",
"Open file locally" : "Otvoriť súbor lokálne",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Súbor by sa mal teraz otvoriť v zariadení. Ak sa tak nestane, skontrolujte, či máte nainštalovanú aplikáciu pre počítače.",
"Retry and close" : "Skúsiť znova a zatvoriť",
"Open online" : "Otvoriť online",
- "Failed to redirect to client" : "Nepodarilo sa presmerovať na klienta",
- "Open locally" : "Otvoriť lokálne",
"Rename" : "Premenovať",
"Open details" : "Otvoriť detaily",
"View in folder" : "Zobraziť v priečinku",
@@ -320,6 +324,9 @@
"Files moved successfully" : "Súbory boli úspešne presunuté",
"Conflicts resolution skipped" : "Riešenie konfliktov bolo preskočené",
"Upload cancelled" : "Odosielanie bolo zrušené",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Nebolo možné premenovať \"{oldName}\". Položka už neexistuje.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Názov \"{newName}\" sa už používa v priečinku \"{dir}\". Vyberte prosím iný názov.",
+ "Could not rename \"{oldName}\"" : "Nebolo možné premenovať \"{oldName}\"",
"This operation is forbidden" : "Táto operácia je zakázaná",
"This directory is unavailable, please check the logs or contact the administrator" : "Priečinok je nedostupný, skontrolujte prosím logy, alebo kontaktujte správcu",
"Storage is temporarily not available" : "Úložisko je dočasne nedostupné",
@@ -350,7 +357,6 @@
"Upload too large" : "Nahrávanie je príliš veľké",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.",
"File could not be found" : "Súbor nie je možné nájsť",
- "Download" : "Stiahnuť",
"Show list view" : "Zobraziť ako zoznam",
"Show grid view" : "Zobraziť v mriežke",
"Close" : "Zavrieť",
@@ -389,9 +395,6 @@
"Copied {origin} inside {destination}" : "Skopírované {origin} do {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Skopírované {origin} a {nbfiles} ostatných súborov do {destination}",
"{newName} already exists" : "{newName} už existuje",
- "Could not rename \"{fileName}\", it does not exist any more" : "Nie je možné premenovať \"{fileName}\", cieľ už neexistuje",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Názov \"{targetName}\" je už použitý v priečinku \"{dir}\". Zvoľte prosím iný názov.",
- "Could not rename \"{fileName}\"" : "Nie je možné premenovať \"{fileName}\"",
"Could not create file \"{file}\"" : "Nie je možné vytvoriť súbor \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Nie je možné vytvoriť súbor \"{file}\" lebo už existuje",
"Could not create folder \"{dir}\" because it already exists" : "Nie je možné vytvoriť priečinok \"{dir}\" lebo už existuje",
@@ -424,35 +427,22 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Priamy odkaz bol skopirovaný (funguje iba pre užívateľov, ktorí majú prístup k danému súboru/adresáru)",
"Path" : "Cesta",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtov","%n bajtov"],
- "Favorited" : "Pridané k obľúbeným",
+ "Favored" : "Zaradiť medzi obľúbené",
+ "Favor" : "Zaradené medzi obľúbené",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopírovať priamy odkaz (funguje iba pre užívateľov, ktorí majú prístup k tomuto súboru/priečinku)",
"Upload file" : "Nahrať súbor",
- "Not favorited" : "Nie je obľúbený",
+ "Not favored" : "Nie je v obľúbených",
"An error occurred while trying to update the tags" : "Pri pokuse o aktualizáciu štítkov došlo k chybe",
- "You don't have permission to upload or create files here." : "Nemáte oprávnenie nahrávať alebo vytvárať súbory v tomto mieste.",
- "Storage informations" : "Úložiskové informácie",
- "Choose file" : "Vybrať súbor",
- "Go to the previous folder" : "Prejsť do predchádzajúceho priečinka",
- "Open the files app settings" : "Otvoriť nastavenia súborovej aplikácie",
- "Unable to change the favourite state of the file" : "Nie je možné zmeniť stav „obľúbené“ daného súboru",
- "Edit file locally" : "Editovať súbor lokálne",
- "Edit online" : "Upraviť online",
- "Create new templates folder" : "Vytvoriť nový vzorový priečinok",
+ "Upload (max. %s)" : "Nahrať (max. %s)",
+ "Submitting fields…" : "Položky sa odosielajú ...",
+ "Filter filenames…" : "Filtrovať názvy súborov...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} priečinok","{folderCount} priečinky","{folderCount} priečinkov","{folderCount} priečinkov"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} súbor","{fileCount} súbory","{fileCount} súborov","{fileCount} súborov"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 súbor a {folderCount} priečinok","1 súbor a {folderCount} priečinky","1 súbor a {folderCount} priečinky","1 súbor a {folderCount} priečinky"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} súbor a 1 priečinok","{fileCount} súborov a 1 priečinok","{fileCount} súborov a 1 priečinok","{fileCount} súborov a 1 priečinok"],
"{fileCount} files and {folderCount} folders" : "{fileCount} súborov a {folderCount} priečinkov",
- "List of favorites files and folders." : "Zoznam obľúbených súborov a priečinkov.",
"Personal Files" : "Osobné Súbory",
"Text file" : "Textový súbor",
- "New text file.txt" : "Nový text file.txt",
- "Favored" : "Zaradiť medzi obľúbené",
- "Favor" : "Zaradené medzi obľúbené",
- "Not favored" : "Nie je v obľúbených",
- "Submitting fields…" : "Položky sa odosielajú ...",
- "Filter filenames…" : "Filtrovať názvy súborov...",
- "{count} files could not be converted" : "{count} súborov sa nepodarilo skonvertovať",
- "{count} files successfully converted" : "{count} súborov bolo skonvertovaných"
+ "New text file.txt" : "Nový text file.txt"
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index df903ce2c02..f55638bef0a 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -48,17 +48,18 @@ OC.L10N.register(
"Folder not found" : "Mape ni mogoče najti",
"The file cannot be found" : "Datoteke ni mogoče najti.",
"The destination path does not exist: %1$s" : "Cilja pot ne obstaja: %1$s",
+ "You do not have permission to create a file at the specified location" : "Nimate pravice za stvarjenje datoteke na podani lokaciji",
"The file could not be converted." : "Datoteke ni mogoče pretvoriti.",
"Could not get relative path to converted file" : "Ni mogoče pridobiti relativne poti do pretvorjene datoteke.",
"Favorite files" : "Priljubljene datoteke",
"No favorites" : "Ni priljubljenih datotek",
"More favorites" : "Več priljubljenih",
- "Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"Accept" : "Sprejmi",
"Reject" : "Zavrni",
"Incoming ownership transfer from {user}" : "Vpisana je zahteva za prenos lastništva uporabnika {user}",
"Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Ali želite sprejeti pot {path}?\n\nOpomba: po sprejetju lahko prenos traja tudi več kot 1 uro.",
"Ownership transfer denied" : "Prenos lastništva je spodletel",
+ "Your ownership transfer of {path} was denied by {user}." : "Prenos lastništva za {path} je onemogočil {user}.",
"Ownership transfer failed" : "Prenos lastništva je spodletel",
"Your ownership transfer of {path} to {user} failed." : "Prenos lastništva mesta {path} na uporabnika {user} je spodletel.",
"The ownership transfer of {path} from {user} failed." : "Prenos lastništva mesta {path} na uporabnika {user} je spodletel.",
@@ -66,17 +67,26 @@ OC.L10N.register(
"Your ownership transfer of {path} to {user} has completed." : "Prenos lastništva poti {path} na uporabnika {user} je končan.",
"The ownership transfer of {path} from {user} has completed." : "Prenos lastništva poti {path} z uporabnika {user} je končan.",
"in %s" : "v %s",
+ "Transferred from %1$s on %2$s" : "Preneseno iz %1$s na %2$s",
"Files compatibility" : "Skladnost datotek",
+ "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Dovoli omejitev imen datotek za zagotovitev sinhronizacije datotek z vsemi odjemalci. Privzeto je dovoljenje za vsa imena datotek na POSIX (tj. Linux ali macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po vklopu imen, ki so združljiva z WIndows, obstoječih datotek ni več mogoče spreminjati, jih pa lahko lastnik preimenuje v ustrezno ime.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Datoteke lahko po vklopu te možnosti tudi same migrirajo. Preverite dokumentacijo o ukazu occ.",
"Enforce Windows compatibility" : "Vsili skladnost s sistemom Windows",
+ "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "To bo blokiralo imena datotek, ki niso ustrezna za Windows sisteme, kot so rezervirana imena ali posebni znaki, ne bo pa to vsililo združljivosti pri razlikovanju velikih in malih črk imena.",
"File Management" : "Upravljanje datotek",
"Home" : "Začetni pogled",
"Target folder does not exist any more" : "Ciljna mapa ne obstaja več",
"Reload current directory" : "Ponovno naloži trenutno mapo",
"Go to the \"{dir}\" directory" : "Pojdi v mapo »{dir}«",
"Current directory path" : "Trenutna pot mape",
+ "Your have used your space quota and cannot upload files anymore" : "Porabili ste svojo količino prostora in datotek več ne morete nalagati",
+ "You do not have permission to upload or create files here." : "Nimate pravic za ustvarjanje ali nalaganje datotek na to mesto.",
"Drag and drop files here to upload" : "Za pošiljanje potegnite in spustite datoteke na to mesto",
"Favorite" : "Priljubljene",
"Back" : "Nazaj",
+ "Toggle selection for file \"{displayName}\"" : "Preklopi izbor za datoteko \"{displayName}\"",
+ "Toggle selection for folder \"{displayName}\"" : "Preklopi izbor za mapo \"{displayName}\"",
"File is loading" : "Poteka nalaganje datoteke",
"Folder is loading" : "mape",
"Filename" : "Ime datoteke",
@@ -86,23 +96,28 @@ OC.L10N.register(
"Invalid filename." : "Neveljavno ime datoteke",
"Renamed \"{oldName}\" to \"{newName}\"" : "Preimenuj »{oldName}« to »{newName}«",
"Rename file" : "Preimenuj datoteke",
+ "Folder" : "Mapa",
"Pending" : "Na čakanju ...",
+ "Unknown date" : "Neznani datum",
"Clear filter" : "Počisti filter",
"Modified" : "Spremenjeno",
"Type" : "Vrsta",
"Active filters" : "Dejavni filtri",
"Remove filter" : "Odstrani filter",
"Total rows summary" : "Skupni povzetek vrstic",
+ "Toggle selection for all files and folders" : "Preklopi izbor za vse datoteke in mape",
"Name" : "Ime",
"Size" : "Velikost",
+ "\"{displayName}\" failed on some elements" : "\"{displayName}\" ni uspel za nekatere elemente",
"\"{displayName}\" batch action executed successfully" : "Paketno dejanje »{displayName}« je uspešno izvedeno",
"\"{displayName}\" action failed" : "Dejanje »{displayName}« je spodletelo",
"Actions" : "Dejanja",
"(selected)" : "(izbrano)",
"List of files and folders." : "Seznam datotek in map",
+ "You have used your space quota and cannot upload files anymore." : "Porabili ste svojo količino prostora in datotek več ne morete nalagati",
+ "Column headers with buttons are sortable." : "Naslove stolpcev z gumbi je mogoče sortirati.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam datotek ni v celoti izpisan zaradi zagotavljanja hitrosti in odzivnosti sistema. Predmeti se bodo dopolnjevali med brskanjem.",
"File not found" : "Datoteke ni mogoče najti",
- "{count} selected" : "{count} izbranih",
"{usedQuotaByte} used" : "Zasedeno {usedQuotaByte}",
"{used} of {quota} used" : "V uporabi je {used} od {quota}",
"{relative}% used" : "Zasedeno {relative} %",
@@ -133,6 +148,9 @@ OC.L10N.register(
"Use {new}" : "Uporabi {new}",
"Remove extension" : "Odstrani pripono",
"Change file extension" : "Spremeni pripono datoteke",
+ "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "Sprememba končnice datoteke iz \"{old}\" v \"{new}\" lahko naredi datoteko neberljivo.",
+ "Removing the file extension \"{old}\" may render the file unreadable." : "Odstranitev končnice datoteke \"{old}\" lahko naredi datoteko neberljivo.",
+ "Adding the file extension \"{new}\" may render the file unreadable." : "Dadajanje končnice datoteke \"{new}\" lahko naredi datoteko neberljivo.",
"Do not show this dialog again." : "Pogovornega okna ne pokaži več.",
"Select file or folder to link to" : "Izbor datoteke ali mape za povezavo",
"Choose {file}" : "Izberite datoteko {file}",
@@ -141,9 +159,12 @@ OC.L10N.register(
"Shared" : "V souporabi",
"Switch to list view" : "Preklopi na seznamski pogled",
"Switch to grid view" : "Preklopi na mrežni pogled",
+ "The file could not be found" : "Datoteke ni mogoče najti.",
"Upload was cancelled by user" : "Uporabnik je pošiljanje preklical",
"Not enough free space" : "Ni dovolj prostora",
"Operation is blocked by access control" : "Opravilo je zaustavljeno prek nadzora dostopa",
+ "Error during upload: {message}" : "Napaka med nalaganjem: {message}",
+ "Error during upload, status code {status}" : "Napaka med nalaganje s kodo stanja {status}",
"Unknown error during upload" : "Med pošiljanjem je prišlo do neznane napake",
"\"{displayName}\" action executed successfully" : "Dejanje »{displayName}« je uspešno izvedeno",
"Loading current folder" : "Poteka nalaganje trenutne mape",
@@ -151,11 +172,13 @@ OC.L10N.register(
"No files in here" : "V mapi ni datotek",
"Upload some content or sync with your devices!" : "Uvozite vsebino, ali pa omogočite usklajevanje z napravami!",
"Go back" : "Skoči nazaj",
+ "Filter file names …" : "Filtriraj imena datotek...",
"Views" : "Pogledi",
"Files settings" : "Nastavitve datotek",
"Your files" : "Osebne datoteke",
"Open in files" : "Odpri datoteko v mapi",
"File cannot be accessed" : "Do datoteke dostop ni mogoč",
+ "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Datoteke ni bilo mogoče najti ali pa nimate ustreznih dovoljenj za ogled. Prosite pošiljatelja, da jo deli.",
"Clipboard is not available" : "Odložišče ni na voljo",
"WebDAV URL copied to clipboard" : "Naslov URL WebDAV je kopiran v odložišče",
"Sort favorites first" : "Razvrsti najprej priljubljene",
@@ -170,7 +193,12 @@ OC.L10N.register(
"Copy to clipboard" : "Kopiraj v odložišče",
"Use this address to access your Files via WebDAV" : "Uporabite ta naslov za dostop do datotek z uporabo WebDAV",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Če je omogočen sistem dvostopenjskega overjanja 2FA, je treba ustvariti in uporabiti novo geslo programa s klikom na to mesto.",
+ "Warnings" : "Opozorila",
+ "Prevent warning dialogs from open or reenable them." : "Preprečite odpiranje dialogov z opozorili ali jih ponovno omogočite.",
+ "Show a warning dialog when changing a file extension." : "Prikaži opozorilo ob spreminjanju končnice datoteke.",
"Keyboard shortcuts" : "Tipkovne bližnjice",
+ "Speed up your Files experience with these quick shortcuts." : "Pospešite uporabo upravljalnika Files s temi bližnjicami.",
+ "Open the actions menu for a file" : "Odpri meni dejanj za datoteko",
"Rename a file" : "Preimenuj datoteko",
"Delete a file" : "Izbriši datoteko",
"Favorite or remove a file from favorites" : "Označi ali odstrani koz priljubljeno",
@@ -181,7 +209,14 @@ OC.L10N.register(
"Select or deselect a file" : "Izberi ali odstrani izbor datoteke",
"Select a range of files" : "Izbor obsega datotek",
"Navigation" : "Krmarjenje",
+ "Navigate to the parent folder" : "Pojdi na nadrejeni imenik",
+ "Navigate to the file above" : "Pojdi na datoteko zgoraj",
+ "Navigate to the file below" : "Pojdi na doatoteko spodaj",
+ "Navigate to the file on the left (in grid mode)" : "Pojdi na datoteko na levi (v mrežnem načinu)",
+ "Navigate to the file on the right (in grid mode)" : "Pojdi na datoteko na desni (v mrežnem načinu)",
"View" : "Pogled",
+ "Toggle the grid view" : "Preklopi mrežni način",
+ "Open the sidebar for a file" : "Odpri stranski pano datoteke",
"Show those shortcuts" : "Pokaži tipkovne bližnjice",
"You" : "Jaz",
"Shared multiple times with different people" : "V več souporabah z različnimi uporabniki",
@@ -221,8 +256,15 @@ OC.L10N.register(
"Delete folder" : "Izbriši mapo",
"Delete folders" : "Izbriši mape",
"Delete" : "Izbriši",
+ "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Za stalno boste izbrisali {count} predmet","Za stalno boste izbrisali {count} predmeta","Za stalno boste izbrisali {count} predmete","Za stalno boste izbrisali {count} predmetov"],
+ "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Izbrisali boste {count} predmet","Izbrisali boste {count} predmeta","Izbrisali boste {count} predmete","Izbrisali boste {count} predmetov"],
"Confirm deletion" : "Potrdi brisanje",
"Cancel" : "Prekliči",
+ "Download" : "Prejmi",
+ "Moving \"{source}\" to \"{destination}\" …" : "Premik \"{source}\" v \"{destination}\"...",
+ "Copying \"{source}\" to \"{destination}\" …" : "Kopiranje \"{source}\" v \"{destination}\"...",
+ "Destination is not a folder" : "Ciljno mesto ni mapa",
+ "This file/folder is already in that directory" : "Ta datoteka oziroma mapa je že v določeni mapi",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Mape ali datoteke ni mogoče premakniti samo vase oziroma v podmapo same sebe",
"(copy)" : "(kopija)",
"(copy %n)" : "(kopija %n)",
@@ -237,13 +279,16 @@ OC.L10N.register(
"Move" : "Premakni",
"Move or copy operation failed" : "Opravilo kopiranja oziroma premikanja je spodletelo",
"Move or copy" : "Premakni ali kopiraj",
+ "Cancelled move or copy of \"{filename}\"." : "Prekinjeno premikanje ali kopiranje za \"{filename}\".",
"Cancelled move or copy operation" : "Opravilo kopiranje in premikanja je preklicano",
"Open folder {displayName}" : "Odpri mapo {displayName}",
"Open in Files" : "Open in Files",
+ "Open locally" : "Odpri krajevno",
+ "Failed to redirect to client" : "Preusmerjanje odjemalca je spodletelo",
"Open file locally" : "Odpri datoteko krajevno",
+ "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Datoteka bi se sedaj morala odpreti z vaše naprave. Če se to ne zgodi, preverite namestitev namizne aplikacije.",
+ "Retry and close" : "Ponovno poskusi in zapri",
"Open online" : "Odpri v brskalniku",
- "Failed to redirect to client" : "Preusmerjanje odjemalca je spodletelo",
- "Open locally" : "Odpri krajevno",
"Rename" : "Preimenuj",
"Open details" : "Odpri podrobnosti",
"View in folder" : "Pokaži v mapi",
@@ -268,7 +313,10 @@ OC.L10N.register(
"New template folder" : "Nova mapa predlog",
"In folder" : "V mapi",
"Search in folder: {folder}" : "Išči v mapi: {folder}",
+ "One of the dropped files could not be processed" : "Eno od podanih datotek ni bilo mogoče obdelati",
+ "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Brskalnik ne podpira API datotečnega sistema. Mape ne bodo naložene",
"No files to upload" : "Ni datotek za pošiljanje",
+ "Unable to create the directory {directory}" : "Mape {directory} ni mogoče ustvariti",
"Some files could not be uploaded" : "Nekaterih datotek ni bilo mogoče poslati",
"Files uploaded successfully" : "Datoteke so uspešno poslane v oblak",
"No files to process" : "Ni datotek za obdelavo",
@@ -278,6 +326,9 @@ OC.L10N.register(
"Files moved successfully" : "Datoteke so uspešno premaknjene",
"Conflicts resolution skipped" : "Razreševanje sporov je preklicano",
"Upload cancelled" : "Pošiljanje je bilo preklicano",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Datoteke »{oldName}« ni mogoče preimenovati, ker ne obstaja več.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Ime »{newName}« je v mapi »{dir}« že v uporabi. Izbrati je treba drugačno ime.",
+ "Could not rename \"{oldName}\"" : "Datoteke »{oldName}« ni mogoče preimenovati",
"This operation is forbidden" : "To dejanje ni dovoljeno!",
"This directory is unavailable, please check the logs or contact the administrator" : "Mapa ni na voljo. Preverite dnevnik in stopite v stik s skrbnikom sistema.",
"Storage is temporarily not available" : "Shramba trenutno ni na voljo",
@@ -286,13 +337,20 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n mapa","%n mapi","%n mape","%n mape"],
"_%n hidden_::_%n hidden_" : ["%n skrita","%n skriti","%n skrite","%n skritih"],
"Filename must not be empty." : "Ime datoteke ne sme biti prazno.",
+ "\"{char}\" is not allowed inside a filename." : "Znak \"{char}\" ni dovoljen v imenu datotek.",
+ "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" je rezervirano ime in ni dovoljeno za ime datoteke.",
+ "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ni dovoljena vrsta končnice.",
+ "Filenames must not end with \"{extension}\"." : "Imena datotek naj nimajo končnice \"{extension}\".",
+ "List of favorite files and folders." : "Seznam priljubljenih datotek in map.",
"No favorites yet" : "Ni še dodanih priljubljenih predmetov",
"Files and folders you mark as favorite will show up here" : "Datoteke ali mape, ki so označene kot priljubljene, bodo zbrane na tem mestu.",
"All files" : "Vse datoteke",
"List of your files and folders." : "Seznam datotek in map.",
"All folders" : "Vse mape",
"Personal files" : "Osebne datoteke",
+ "List of your files and folders that are not shared." : "Seznam datotek in map, ki niso v skupni rabi.",
"No personal files found" : "Ni najdenih zasebnih datotek",
+ "Files that are not shared will show up here." : "Datoteke, ki niso v skupni rabi, bodo prikazane tukaj.",
"Recent" : "Nedavne",
"List of recently modified files and folders." : "Seznam nedavno spremenjenih datotek in map.",
"No recently modified files" : "Ni nedavno spremenjenih datotek",
@@ -302,7 +360,6 @@ OC.L10N.register(
"Upload too large" : "Prekoračena je omejitev dovoljene velikosti",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke, ki jih želite poslati, presegajo največjo dovoljeno velikost na strežniku.",
"File could not be found" : "Datoteke ni mogoče najti",
- "Download" : "Prejmi",
"Show list view" : "Pokaži seznamski pogled",
"Show grid view" : "Pokaži mrežni pogled",
"Close" : "Zapri",
@@ -341,9 +398,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Kopirano {origin} v {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopirano {origin} in {nbfiles} ostale datoteke v {destination}",
"{newName} already exists" : "Ime {newName} že obstaja",
- "Could not rename \"{fileName}\", it does not exist any more" : "Datoteke »{fileName}« ni mogoče preimenovati, ker ne obstaja več",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Ime \"{targetName}\" je v mapi »{dir}« že v uporabi. Izbrati je treba drugačno ime.",
- "Could not rename \"{fileName}\"" : "Datoteke »{fileName}« ni mogoče preimenovati",
"Could not create file \"{file}\"" : "Datoteke »{file}« ni mogoče ustvariti.",
"Could not create file \"{file}\" because it already exists" : "Datoteke »{file}« ni mogoče ustvariti, ker datoteka z istim imenom že obstaja.",
"Could not create folder \"{dir}\" because it already exists" : "Ni mogoče ustvariti mape »{dir}«, ker ta že obstaja",
@@ -376,31 +430,20 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Kopirana je neposredna povezava (za uporabnike, ki imajo dostop do datoteke ali mape)",
"Path" : "Pot",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajta","%n bajti","%n bajtov"],
- "Favorited" : "Označeno kot priljubljeno",
+ "Favored" : "Priljubljeno",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopiraj neposredno povezavo (za uporabnike, ki imajo dostop do datoteke ali mape)",
"Upload file" : "Pošlji datoteko",
- "Not favorited" : "Ni priljubljeno",
"An error occurred while trying to update the tags" : "Prišlo je do napake med posodabljanjem oznak",
- "Storage informations" : "Podrobnosti shrambe",
- "Choose file" : "Izbor datotek",
- "Go to the previous folder" : "Skoči na predhodno mapo",
- "Open the files app settings" : "Odpri nastavitve programa Datoteke",
- "Unable to change the favourite state of the file" : "Ni mogoče spremeniti stanja priljubljenosti datoteke",
- "Edit file locally" : "Uredi datoteko krajevno",
- "Edit online" : "Uredi na spletu",
- "Create new templates folder" : "Ustvari novo začasno mapo",
+ "Upload (max. %s)" : "Pošiljanje (omejitev %s)",
+ "Submitting fields…" : "Poteka objavljanje vsebine polj ...",
+ "Filter filenames…" : "Filtriraj imena datotek ...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mapa","{folderCount} mapi","{folderCount} mape","{folderCount} map"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} datoteka","{fileCount} datoteki","{fileCount} datoteke","{fileCount} datotek"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 datoteka in {folderCount} mapa","1 datoteka in {folderCount} mapi","1 datoteka in {folderCount} mape","1 datoteka in {folderCount} map"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} datoteka in 1 mapa","{fileCount} datoteki in 1 mapa","{fileCount} datoteke in 1 mapa","{fileCount} datotek in 1 mapa"],
"{fileCount} files and {folderCount} folders" : "{fileCount} datotek in {folderCount} map",
- "List of favorites files and folders." : "Seznam priljubljenih datotek in map.",
"Personal Files" : "Osebne datoteke",
"Text file" : "Besedilna datoteka",
- "New text file.txt" : "nova_datoteka.txt",
- "Submitting fields…" : "Poteka objavljanje vsebine polj ...",
- "Filter filenames…" : "Filtriraj imena datotek ...",
- "{count} files could not be converted" : "{count} datotek ni mogoče pretvoriti",
- "{count} files successfully converted" : "{count} datotek je uspešno pretvorjenih"
+ "New text file.txt" : "nova_datoteka.txt"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index e3cd9759f08..9a35e0ed38e 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -46,17 +46,18 @@
"Folder not found" : "Mape ni mogoče najti",
"The file cannot be found" : "Datoteke ni mogoče najti.",
"The destination path does not exist: %1$s" : "Cilja pot ne obstaja: %1$s",
+ "You do not have permission to create a file at the specified location" : "Nimate pravice za stvarjenje datoteke na podani lokaciji",
"The file could not be converted." : "Datoteke ni mogoče pretvoriti.",
"Could not get relative path to converted file" : "Ni mogoče pridobiti relativne poti do pretvorjene datoteke.",
"Favorite files" : "Priljubljene datoteke",
"No favorites" : "Ni priljubljenih datotek",
"More favorites" : "Več priljubljenih",
- "Upload (max. %s)" : "Pošiljanje (omejitev %s)",
"Accept" : "Sprejmi",
"Reject" : "Zavrni",
"Incoming ownership transfer from {user}" : "Vpisana je zahteva za prenos lastništva uporabnika {user}",
"Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Ali želite sprejeti pot {path}?\n\nOpomba: po sprejetju lahko prenos traja tudi več kot 1 uro.",
"Ownership transfer denied" : "Prenos lastništva je spodletel",
+ "Your ownership transfer of {path} was denied by {user}." : "Prenos lastništva za {path} je onemogočil {user}.",
"Ownership transfer failed" : "Prenos lastništva je spodletel",
"Your ownership transfer of {path} to {user} failed." : "Prenos lastništva mesta {path} na uporabnika {user} je spodletel.",
"The ownership transfer of {path} from {user} failed." : "Prenos lastništva mesta {path} na uporabnika {user} je spodletel.",
@@ -64,17 +65,26 @@
"Your ownership transfer of {path} to {user} has completed." : "Prenos lastništva poti {path} na uporabnika {user} je končan.",
"The ownership transfer of {path} from {user} has completed." : "Prenos lastništva poti {path} z uporabnika {user} je končan.",
"in %s" : "v %s",
+ "Transferred from %1$s on %2$s" : "Preneseno iz %1$s na %2$s",
"Files compatibility" : "Skladnost datotek",
+ "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Dovoli omejitev imen datotek za zagotovitev sinhronizacije datotek z vsemi odjemalci. Privzeto je dovoljenje za vsa imena datotek na POSIX (tj. Linux ali macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Po vklopu imen, ki so združljiva z WIndows, obstoječih datotek ni več mogoče spreminjati, jih pa lahko lastnik preimenuje v ustrezno ime.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Datoteke lahko po vklopu te možnosti tudi same migrirajo. Preverite dokumentacijo o ukazu occ.",
"Enforce Windows compatibility" : "Vsili skladnost s sistemom Windows",
+ "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "To bo blokiralo imena datotek, ki niso ustrezna za Windows sisteme, kot so rezervirana imena ali posebni znaki, ne bo pa to vsililo združljivosti pri razlikovanju velikih in malih črk imena.",
"File Management" : "Upravljanje datotek",
"Home" : "Začetni pogled",
"Target folder does not exist any more" : "Ciljna mapa ne obstaja več",
"Reload current directory" : "Ponovno naloži trenutno mapo",
"Go to the \"{dir}\" directory" : "Pojdi v mapo »{dir}«",
"Current directory path" : "Trenutna pot mape",
+ "Your have used your space quota and cannot upload files anymore" : "Porabili ste svojo količino prostora in datotek več ne morete nalagati",
+ "You do not have permission to upload or create files here." : "Nimate pravic za ustvarjanje ali nalaganje datotek na to mesto.",
"Drag and drop files here to upload" : "Za pošiljanje potegnite in spustite datoteke na to mesto",
"Favorite" : "Priljubljene",
"Back" : "Nazaj",
+ "Toggle selection for file \"{displayName}\"" : "Preklopi izbor za datoteko \"{displayName}\"",
+ "Toggle selection for folder \"{displayName}\"" : "Preklopi izbor za mapo \"{displayName}\"",
"File is loading" : "Poteka nalaganje datoteke",
"Folder is loading" : "mape",
"Filename" : "Ime datoteke",
@@ -84,23 +94,28 @@
"Invalid filename." : "Neveljavno ime datoteke",
"Renamed \"{oldName}\" to \"{newName}\"" : "Preimenuj »{oldName}« to »{newName}«",
"Rename file" : "Preimenuj datoteke",
+ "Folder" : "Mapa",
"Pending" : "Na čakanju ...",
+ "Unknown date" : "Neznani datum",
"Clear filter" : "Počisti filter",
"Modified" : "Spremenjeno",
"Type" : "Vrsta",
"Active filters" : "Dejavni filtri",
"Remove filter" : "Odstrani filter",
"Total rows summary" : "Skupni povzetek vrstic",
+ "Toggle selection for all files and folders" : "Preklopi izbor za vse datoteke in mape",
"Name" : "Ime",
"Size" : "Velikost",
+ "\"{displayName}\" failed on some elements" : "\"{displayName}\" ni uspel za nekatere elemente",
"\"{displayName}\" batch action executed successfully" : "Paketno dejanje »{displayName}« je uspešno izvedeno",
"\"{displayName}\" action failed" : "Dejanje »{displayName}« je spodletelo",
"Actions" : "Dejanja",
"(selected)" : "(izbrano)",
"List of files and folders." : "Seznam datotek in map",
+ "You have used your space quota and cannot upload files anymore." : "Porabili ste svojo količino prostora in datotek več ne morete nalagati",
+ "Column headers with buttons are sortable." : "Naslove stolpcev z gumbi je mogoče sortirati.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam datotek ni v celoti izpisan zaradi zagotavljanja hitrosti in odzivnosti sistema. Predmeti se bodo dopolnjevali med brskanjem.",
"File not found" : "Datoteke ni mogoče najti",
- "{count} selected" : "{count} izbranih",
"{usedQuotaByte} used" : "Zasedeno {usedQuotaByte}",
"{used} of {quota} used" : "V uporabi je {used} od {quota}",
"{relative}% used" : "Zasedeno {relative} %",
@@ -131,6 +146,9 @@
"Use {new}" : "Uporabi {new}",
"Remove extension" : "Odstrani pripono",
"Change file extension" : "Spremeni pripono datoteke",
+ "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "Sprememba končnice datoteke iz \"{old}\" v \"{new}\" lahko naredi datoteko neberljivo.",
+ "Removing the file extension \"{old}\" may render the file unreadable." : "Odstranitev končnice datoteke \"{old}\" lahko naredi datoteko neberljivo.",
+ "Adding the file extension \"{new}\" may render the file unreadable." : "Dadajanje končnice datoteke \"{new}\" lahko naredi datoteko neberljivo.",
"Do not show this dialog again." : "Pogovornega okna ne pokaži več.",
"Select file or folder to link to" : "Izbor datoteke ali mape za povezavo",
"Choose {file}" : "Izberite datoteko {file}",
@@ -139,9 +157,12 @@
"Shared" : "V souporabi",
"Switch to list view" : "Preklopi na seznamski pogled",
"Switch to grid view" : "Preklopi na mrežni pogled",
+ "The file could not be found" : "Datoteke ni mogoče najti.",
"Upload was cancelled by user" : "Uporabnik je pošiljanje preklical",
"Not enough free space" : "Ni dovolj prostora",
"Operation is blocked by access control" : "Opravilo je zaustavljeno prek nadzora dostopa",
+ "Error during upload: {message}" : "Napaka med nalaganjem: {message}",
+ "Error during upload, status code {status}" : "Napaka med nalaganje s kodo stanja {status}",
"Unknown error during upload" : "Med pošiljanjem je prišlo do neznane napake",
"\"{displayName}\" action executed successfully" : "Dejanje »{displayName}« je uspešno izvedeno",
"Loading current folder" : "Poteka nalaganje trenutne mape",
@@ -149,11 +170,13 @@
"No files in here" : "V mapi ni datotek",
"Upload some content or sync with your devices!" : "Uvozite vsebino, ali pa omogočite usklajevanje z napravami!",
"Go back" : "Skoči nazaj",
+ "Filter file names …" : "Filtriraj imena datotek...",
"Views" : "Pogledi",
"Files settings" : "Nastavitve datotek",
"Your files" : "Osebne datoteke",
"Open in files" : "Odpri datoteko v mapi",
"File cannot be accessed" : "Do datoteke dostop ni mogoč",
+ "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Datoteke ni bilo mogoče najti ali pa nimate ustreznih dovoljenj za ogled. Prosite pošiljatelja, da jo deli.",
"Clipboard is not available" : "Odložišče ni na voljo",
"WebDAV URL copied to clipboard" : "Naslov URL WebDAV je kopiran v odložišče",
"Sort favorites first" : "Razvrsti najprej priljubljene",
@@ -168,7 +191,12 @@
"Copy to clipboard" : "Kopiraj v odložišče",
"Use this address to access your Files via WebDAV" : "Uporabite ta naslov za dostop do datotek z uporabo WebDAV",
"If you have enabled 2FA, you must create and use a new app password by clicking here." : "Če je omogočen sistem dvostopenjskega overjanja 2FA, je treba ustvariti in uporabiti novo geslo programa s klikom na to mesto.",
+ "Warnings" : "Opozorila",
+ "Prevent warning dialogs from open or reenable them." : "Preprečite odpiranje dialogov z opozorili ali jih ponovno omogočite.",
+ "Show a warning dialog when changing a file extension." : "Prikaži opozorilo ob spreminjanju končnice datoteke.",
"Keyboard shortcuts" : "Tipkovne bližnjice",
+ "Speed up your Files experience with these quick shortcuts." : "Pospešite uporabo upravljalnika Files s temi bližnjicami.",
+ "Open the actions menu for a file" : "Odpri meni dejanj za datoteko",
"Rename a file" : "Preimenuj datoteko",
"Delete a file" : "Izbriši datoteko",
"Favorite or remove a file from favorites" : "Označi ali odstrani koz priljubljeno",
@@ -179,7 +207,14 @@
"Select or deselect a file" : "Izberi ali odstrani izbor datoteke",
"Select a range of files" : "Izbor obsega datotek",
"Navigation" : "Krmarjenje",
+ "Navigate to the parent folder" : "Pojdi na nadrejeni imenik",
+ "Navigate to the file above" : "Pojdi na datoteko zgoraj",
+ "Navigate to the file below" : "Pojdi na doatoteko spodaj",
+ "Navigate to the file on the left (in grid mode)" : "Pojdi na datoteko na levi (v mrežnem načinu)",
+ "Navigate to the file on the right (in grid mode)" : "Pojdi na datoteko na desni (v mrežnem načinu)",
"View" : "Pogled",
+ "Toggle the grid view" : "Preklopi mrežni način",
+ "Open the sidebar for a file" : "Odpri stranski pano datoteke",
"Show those shortcuts" : "Pokaži tipkovne bližnjice",
"You" : "Jaz",
"Shared multiple times with different people" : "V več souporabah z različnimi uporabniki",
@@ -219,8 +254,15 @@
"Delete folder" : "Izbriši mapo",
"Delete folders" : "Izbriši mape",
"Delete" : "Izbriši",
+ "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Za stalno boste izbrisali {count} predmet","Za stalno boste izbrisali {count} predmeta","Za stalno boste izbrisali {count} predmete","Za stalno boste izbrisali {count} predmetov"],
+ "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Izbrisali boste {count} predmet","Izbrisali boste {count} predmeta","Izbrisali boste {count} predmete","Izbrisali boste {count} predmetov"],
"Confirm deletion" : "Potrdi brisanje",
"Cancel" : "Prekliči",
+ "Download" : "Prejmi",
+ "Moving \"{source}\" to \"{destination}\" …" : "Premik \"{source}\" v \"{destination}\"...",
+ "Copying \"{source}\" to \"{destination}\" …" : "Kopiranje \"{source}\" v \"{destination}\"...",
+ "Destination is not a folder" : "Ciljno mesto ni mapa",
+ "This file/folder is already in that directory" : "Ta datoteka oziroma mapa je že v določeni mapi",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Mape ali datoteke ni mogoče premakniti samo vase oziroma v podmapo same sebe",
"(copy)" : "(kopija)",
"(copy %n)" : "(kopija %n)",
@@ -235,13 +277,16 @@
"Move" : "Premakni",
"Move or copy operation failed" : "Opravilo kopiranja oziroma premikanja je spodletelo",
"Move or copy" : "Premakni ali kopiraj",
+ "Cancelled move or copy of \"{filename}\"." : "Prekinjeno premikanje ali kopiranje za \"{filename}\".",
"Cancelled move or copy operation" : "Opravilo kopiranje in premikanja je preklicano",
"Open folder {displayName}" : "Odpri mapo {displayName}",
"Open in Files" : "Open in Files",
+ "Open locally" : "Odpri krajevno",
+ "Failed to redirect to client" : "Preusmerjanje odjemalca je spodletelo",
"Open file locally" : "Odpri datoteko krajevno",
+ "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Datoteka bi se sedaj morala odpreti z vaše naprave. Če se to ne zgodi, preverite namestitev namizne aplikacije.",
+ "Retry and close" : "Ponovno poskusi in zapri",
"Open online" : "Odpri v brskalniku",
- "Failed to redirect to client" : "Preusmerjanje odjemalca je spodletelo",
- "Open locally" : "Odpri krajevno",
"Rename" : "Preimenuj",
"Open details" : "Odpri podrobnosti",
"View in folder" : "Pokaži v mapi",
@@ -266,7 +311,10 @@
"New template folder" : "Nova mapa predlog",
"In folder" : "V mapi",
"Search in folder: {folder}" : "Išči v mapi: {folder}",
+ "One of the dropped files could not be processed" : "Eno od podanih datotek ni bilo mogoče obdelati",
+ "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Brskalnik ne podpira API datotečnega sistema. Mape ne bodo naložene",
"No files to upload" : "Ni datotek za pošiljanje",
+ "Unable to create the directory {directory}" : "Mape {directory} ni mogoče ustvariti",
"Some files could not be uploaded" : "Nekaterih datotek ni bilo mogoče poslati",
"Files uploaded successfully" : "Datoteke so uspešno poslane v oblak",
"No files to process" : "Ni datotek za obdelavo",
@@ -276,6 +324,9 @@
"Files moved successfully" : "Datoteke so uspešno premaknjene",
"Conflicts resolution skipped" : "Razreševanje sporov je preklicano",
"Upload cancelled" : "Pošiljanje je bilo preklicano",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Datoteke »{oldName}« ni mogoče preimenovati, ker ne obstaja več.",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Ime »{newName}« je v mapi »{dir}« že v uporabi. Izbrati je treba drugačno ime.",
+ "Could not rename \"{oldName}\"" : "Datoteke »{oldName}« ni mogoče preimenovati",
"This operation is forbidden" : "To dejanje ni dovoljeno!",
"This directory is unavailable, please check the logs or contact the administrator" : "Mapa ni na voljo. Preverite dnevnik in stopite v stik s skrbnikom sistema.",
"Storage is temporarily not available" : "Shramba trenutno ni na voljo",
@@ -284,13 +335,20 @@
"_%n folder_::_%n folders_" : ["%n mapa","%n mapi","%n mape","%n mape"],
"_%n hidden_::_%n hidden_" : ["%n skrita","%n skriti","%n skrite","%n skritih"],
"Filename must not be empty." : "Ime datoteke ne sme biti prazno.",
+ "\"{char}\" is not allowed inside a filename." : "Znak \"{char}\" ni dovoljen v imenu datotek.",
+ "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" je rezervirano ime in ni dovoljeno za ime datoteke.",
+ "\"{extension}\" is not an allowed filetype." : "\"{extension}\" ni dovoljena vrsta končnice.",
+ "Filenames must not end with \"{extension}\"." : "Imena datotek naj nimajo končnice \"{extension}\".",
+ "List of favorite files and folders." : "Seznam priljubljenih datotek in map.",
"No favorites yet" : "Ni še dodanih priljubljenih predmetov",
"Files and folders you mark as favorite will show up here" : "Datoteke ali mape, ki so označene kot priljubljene, bodo zbrane na tem mestu.",
"All files" : "Vse datoteke",
"List of your files and folders." : "Seznam datotek in map.",
"All folders" : "Vse mape",
"Personal files" : "Osebne datoteke",
+ "List of your files and folders that are not shared." : "Seznam datotek in map, ki niso v skupni rabi.",
"No personal files found" : "Ni najdenih zasebnih datotek",
+ "Files that are not shared will show up here." : "Datoteke, ki niso v skupni rabi, bodo prikazane tukaj.",
"Recent" : "Nedavne",
"List of recently modified files and folders." : "Seznam nedavno spremenjenih datotek in map.",
"No recently modified files" : "Ni nedavno spremenjenih datotek",
@@ -300,7 +358,6 @@
"Upload too large" : "Prekoračena je omejitev dovoljene velikosti",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Datoteke, ki jih želite poslati, presegajo največjo dovoljeno velikost na strežniku.",
"File could not be found" : "Datoteke ni mogoče najti",
- "Download" : "Prejmi",
"Show list view" : "Pokaži seznamski pogled",
"Show grid view" : "Pokaži mrežni pogled",
"Close" : "Zapri",
@@ -339,9 +396,6 @@
"Copied {origin} inside {destination}" : "Kopirano {origin} v {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopirano {origin} in {nbfiles} ostale datoteke v {destination}",
"{newName} already exists" : "Ime {newName} že obstaja",
- "Could not rename \"{fileName}\", it does not exist any more" : "Datoteke »{fileName}« ni mogoče preimenovati, ker ne obstaja več",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Ime \"{targetName}\" je v mapi »{dir}« že v uporabi. Izbrati je treba drugačno ime.",
- "Could not rename \"{fileName}\"" : "Datoteke »{fileName}« ni mogoče preimenovati",
"Could not create file \"{file}\"" : "Datoteke »{file}« ni mogoče ustvariti.",
"Could not create file \"{file}\" because it already exists" : "Datoteke »{file}« ni mogoče ustvariti, ker datoteka z istim imenom že obstaja.",
"Could not create folder \"{dir}\" because it already exists" : "Ni mogoče ustvariti mape »{dir}«, ker ta že obstaja",
@@ -374,31 +428,20 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Kopirana je neposredna povezava (za uporabnike, ki imajo dostop do datoteke ali mape)",
"Path" : "Pot",
"_%n byte_::_%n bytes_" : ["%n bajt","%n bajta","%n bajti","%n bajtov"],
- "Favorited" : "Označeno kot priljubljeno",
+ "Favored" : "Priljubljeno",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopiraj neposredno povezavo (za uporabnike, ki imajo dostop do datoteke ali mape)",
"Upload file" : "Pošlji datoteko",
- "Not favorited" : "Ni priljubljeno",
"An error occurred while trying to update the tags" : "Prišlo je do napake med posodabljanjem oznak",
- "Storage informations" : "Podrobnosti shrambe",
- "Choose file" : "Izbor datotek",
- "Go to the previous folder" : "Skoči na predhodno mapo",
- "Open the files app settings" : "Odpri nastavitve programa Datoteke",
- "Unable to change the favourite state of the file" : "Ni mogoče spremeniti stanja priljubljenosti datoteke",
- "Edit file locally" : "Uredi datoteko krajevno",
- "Edit online" : "Uredi na spletu",
- "Create new templates folder" : "Ustvari novo začasno mapo",
+ "Upload (max. %s)" : "Pošiljanje (omejitev %s)",
+ "Submitting fields…" : "Poteka objavljanje vsebine polj ...",
+ "Filter filenames…" : "Filtriraj imena datotek ...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mapa","{folderCount} mapi","{folderCount} mape","{folderCount} map"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} datoteka","{fileCount} datoteki","{fileCount} datoteke","{fileCount} datotek"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 datoteka in {folderCount} mapa","1 datoteka in {folderCount} mapi","1 datoteka in {folderCount} mape","1 datoteka in {folderCount} map"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} datoteka in 1 mapa","{fileCount} datoteki in 1 mapa","{fileCount} datoteke in 1 mapa","{fileCount} datotek in 1 mapa"],
"{fileCount} files and {folderCount} folders" : "{fileCount} datotek in {folderCount} map",
- "List of favorites files and folders." : "Seznam priljubljenih datotek in map.",
"Personal Files" : "Osebne datoteke",
"Text file" : "Besedilna datoteka",
- "New text file.txt" : "nova_datoteka.txt",
- "Submitting fields…" : "Poteka objavljanje vsebine polj ...",
- "Filter filenames…" : "Filtriraj imena datotek ...",
- "{count} files could not be converted" : "{count} datotek ni mogoče pretvoriti",
- "{count} files successfully converted" : "{count} datotek je uspešno pretvorjenih"
+ "New text file.txt" : "nova_datoteka.txt"
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js
deleted file mode 100644
index 978fa6e62b5..00000000000
--- a/apps/files/l10n/sq.js
+++ /dev/null
@@ -1,131 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "File could not be found" : "Skedari s’u gjet dot",
- "Download" : "Shkarkoje",
- "Delete" : "Fshije",
- "Tags" : "Etiketë",
- "Home" : "Kreu",
- "Close" : "Mbylle",
- "Favorites" : "Të parapëlqyera",
- "Could not create folder \"{dir}\"" : "S’u krijua dot dosja \"{dir}\"",
- "Upload cancelled." : "Ngarkimi u anulua.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "S’arrihet të ngarkohet {filename}, ngaqë është drejtori ose ka 0 bajte",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nuk ka hapësirë të mjaftueshme, po ngarkoni {size1}, por ka vetëm {size2} të lira",
- "Target folder \"{dir}\" does not exist any more" : "Dosja e synuar \"{dir}\" nuk ekziston më",
- "Not enough free space" : "Nuk ka hapsirë të mjaftueshme të lirë",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} nga {totalSize} ({bitrate})",
- "Actions" : "Veprime",
- "Rename" : "Riemërtojeni",
- "Move" : "Zhvendos",
- "Copy" : "Kopjo",
- "Delete file" : "Fshi skedarin",
- "Delete folder" : "Fshini dosjen",
- "Disconnect storage" : "Shkëpute depozitën",
- "Could not load info for file \"{file}\"" : "Nuk mund të ngarkohet informacioni për skedarin \"{file}\"",
- "Files" : "Skedar",
- "Details" : "Hollësi",
- "Pending" : "Në pritje",
- "Unable to determine date" : "S’arrihet të përcaktohet data",
- "This operation is forbidden" : "Ky veprim është i ndaluar",
- "This directory is unavailable, please check the logs or contact the administrator" : "Kjo drejtori nuk kapet, ju lutemi, kontrolloni regjistrat ose lidhuni me përgjegjësin",
- "Storage is temporarily not available" : "Depozita përkohësisht nuk është në dispozicion",
- "Could not move \"{file}\", target exists" : "S’u lëviz dot \"{file}\", objektivi ekziston",
- "Could not move \"{file}\"" : "S’u lëviz dot \"{file}\"",
- "copy" : "kopjo",
- "{newName} already exists" : "{newName} ekziston tashmë",
- "Could not rename \"{fileName}\", it does not exist any more" : "S’u riemërtua dot \"{fileName}\", s’ekziston më",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Emri \"{targetName}\" është tashmë i përdorur te dosja \"{dir}\". Ju lutemi, zgjidhni një emër tjetër.",
- "Could not rename \"{fileName}\"" : "S’u riemërtua dot \"{fileName}\"",
- "Could not create file \"{file}\"" : "S’u krijua dot kartela \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "S’u krijua dot kartela \"{file}\" ngaqë ka një të tillë",
- "Could not create folder \"{dir}\" because it already exists" : "S’u krijua dot dosja \"{dir}\" ngaqë ka një të tillë",
- "Error deleting file \"{fileName}\"." : "Gabim në fshirjen e kartelës \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Asnjë rezultat i kërkimit në dosjet e tjera për {tag} {filter} {endtag}",
- "Name" : "Emër",
- "Size" : "Madhësi",
- "Modified" : "Ndryshuar më",
- "_%n folder_::_%n folders_" : ["%n dosje","%n dosje"],
- "_%n file_::_%n files_" : ["%n kartelë","%n skedar"],
- "{dirs} and {files}" : "{dirs} dhe {files}",
- "_including %n hidden_::_including %n hidden_" : ["Përfshirë %n të fshehura","Përfshirë %n të fshehura"],
- "_Uploading %n file_::_Uploading %n files_" : ["Po ngarkohet %n kartelë","Po ngarkohen %n skedar"],
- "\"{name}\" is an invalid file name." : "\"{name}\" është emër i pavlefshëm kartele.",
- "File name cannot be empty." : "Emri i kartelës s’mund të jetë i zbrazët.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" nuk është një lloj skedari i lejuar",
- "View in folder" : "Shikoje në dosje",
- "Path" : "Rrugë",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajte"],
- "Favorited" : "U kalua e parapëlqyer",
- "Favorite" : "E parapëlqyer",
- "Copy direct link (only works for users who have access to this file/folder)" : "Kopjo lidhjen e drejtpërdrejtë (funksionon vetëm për përdoruesit që kanë qasje në këtë skedar/dosje)",
- "New folder" : "Dosje e re",
- "Create new folder" : "Krijo një dosje të re",
- "Upload file" : "Ngarko skedar",
- "Recent" : "Të fundit",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Shtoje tek të parapëlqyerat",
- "An error occurred while trying to update the tags" : "Ndodhi një gabim teksa provohej të përditësoheshin etiketat",
- "Added to favorites" : "U shtua te të parapëlqyerat",
- "Removed from favorites" : "U hoq nga të parapëlqyerat",
- "You added {file} to your favorites" : "Ju shtuat {file} te të parapëlqyerat",
- "You removed {file} from your favorites" : "Ju hoqët {file} nga të parapëlqyerat",
- "File changes" : "Ndryshimet në skedar",
- "Created by {user}" : "U krijua nga {user}",
- "Changed by {user}" : "U ndryshua nga {user}",
- "Deleted by {user}" : "U fshi nga {user}",
- "Restored by {user}" : "U rikthye nga {user}",
- "Renamed by {user}" : "U riemërua nga {user}",
- "Moved by {user}" : "U ndryshua nga {user}",
- "\"remote user\"" : "\"përdorues i largët\"",
- "You created {file}" : "Ju krijuat {file}",
- "{user} created {file}" : "{user} krijoj {file}",
- "{file} was created in a public folder" : "{file} u krijua në një folder publik",
- "You changed {file}" : "Ju ndryshuat {file}",
- "{user} changed {file}" : "{user} ndryshoj {file}",
- "You deleted {file}" : "Ju fshit {file}",
- "{user} deleted {file}" : "{user} fshiu {file}",
- "You restored {file}" : "Ju rikthyet {file}",
- "{user} restored {file}" : "{user} riktheu {file}",
- "You renamed {oldfile} to {newfile}" : "Ju riemëruat {oldfile} në {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} riemëruat {oldfile} në {newfile}",
- "You moved {oldfile} to {newfile}" : "Ju lëvizët {oldfile} në {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} lëvizi {oldfile} në {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Një skedar është shtuar ose është hequr nga <strong>të preferuarat</strong> tuaja",
- "A file or folder has been <strong>changed</strong>" : "<strong>U ndryshua</strong> një kartelë ose dosje",
- "All files" : "Të gjithë skedarët",
- "Upload (max. %s)" : "Ngarkim (max. %s)",
- "Accept" : "Prano",
- "in %s" : "në %s",
- "Select all" : "Përzgjidhe krejt",
- "Change" : "Ndrysho",
- "Unknown error" : "Gabim i panjohur",
- "No files in here" : "S’ka kartela këtu",
- "Go back" : "Shko prapa",
- "Show hidden files" : "Shfaq kartela të fshehura",
- "Additional settings" : "Konfigurime shtesë",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Kopjo në dërrasë ",
- "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!",
- "No entries found in this folder" : "Në këtë dosje s’u gjetën zëra",
- "Upload too large" : "Ngarkim shumë i madh",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Kartelat që po rrekeni të ngarkoni e tejkalojnë madhësinë maksimale për ngarkime kartelash në këtë shërbyes.",
- "No favorites yet" : "Asnjë preferencë akoma",
- "Files and folders you mark as favorite will show up here" : "Këtu do të duken kartelat dhe dosjet që i shënoni si të parapëlqyera",
- "Shares" : "Shpërndarjet",
- "Shared with others" : "E ndarë me të tjerët",
- "Shared with you" : "E ndarë me ju",
- "Shared by link" : "E ndarë me lidhje",
- "Deleted shares" : "Fshi shpërndarjet",
- "Text file" : "Kartelë tekst",
- "New text file.txt" : "Kartelë e re file.txt",
- "Storage invalid" : "Depozitë e pavlefshme",
- "Unlimited" : "E palimituar",
- "Cancel" : "Anullo",
- "%s used" : "%s të përdorura",
- "%1$s of %2$s used" : "%1$s e %2$s përdorur",
- "Deleted files" : "Skedar të fshirë"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
deleted file mode 100644
index e5104c64ad4..00000000000
--- a/apps/files/l10n/sq.json
+++ /dev/null
@@ -1,129 +0,0 @@
-{ "translations": {
- "File could not be found" : "Skedari s’u gjet dot",
- "Download" : "Shkarkoje",
- "Delete" : "Fshije",
- "Tags" : "Etiketë",
- "Home" : "Kreu",
- "Close" : "Mbylle",
- "Favorites" : "Të parapëlqyera",
- "Could not create folder \"{dir}\"" : "S’u krijua dot dosja \"{dir}\"",
- "Upload cancelled." : "Ngarkimi u anulua.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "S’arrihet të ngarkohet {filename}, ngaqë është drejtori ose ka 0 bajte",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nuk ka hapësirë të mjaftueshme, po ngarkoni {size1}, por ka vetëm {size2} të lira",
- "Target folder \"{dir}\" does not exist any more" : "Dosja e synuar \"{dir}\" nuk ekziston më",
- "Not enough free space" : "Nuk ka hapsirë të mjaftueshme të lirë",
- "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} nga {totalSize} ({bitrate})",
- "Actions" : "Veprime",
- "Rename" : "Riemërtojeni",
- "Move" : "Zhvendos",
- "Copy" : "Kopjo",
- "Delete file" : "Fshi skedarin",
- "Delete folder" : "Fshini dosjen",
- "Disconnect storage" : "Shkëpute depozitën",
- "Could not load info for file \"{file}\"" : "Nuk mund të ngarkohet informacioni për skedarin \"{file}\"",
- "Files" : "Skedar",
- "Details" : "Hollësi",
- "Pending" : "Në pritje",
- "Unable to determine date" : "S’arrihet të përcaktohet data",
- "This operation is forbidden" : "Ky veprim është i ndaluar",
- "This directory is unavailable, please check the logs or contact the administrator" : "Kjo drejtori nuk kapet, ju lutemi, kontrolloni regjistrat ose lidhuni me përgjegjësin",
- "Storage is temporarily not available" : "Depozita përkohësisht nuk është në dispozicion",
- "Could not move \"{file}\", target exists" : "S’u lëviz dot \"{file}\", objektivi ekziston",
- "Could not move \"{file}\"" : "S’u lëviz dot \"{file}\"",
- "copy" : "kopjo",
- "{newName} already exists" : "{newName} ekziston tashmë",
- "Could not rename \"{fileName}\", it does not exist any more" : "S’u riemërtua dot \"{fileName}\", s’ekziston më",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Emri \"{targetName}\" është tashmë i përdorur te dosja \"{dir}\". Ju lutemi, zgjidhni një emër tjetër.",
- "Could not rename \"{fileName}\"" : "S’u riemërtua dot \"{fileName}\"",
- "Could not create file \"{file}\"" : "S’u krijua dot kartela \"{file}\"",
- "Could not create file \"{file}\" because it already exists" : "S’u krijua dot kartela \"{file}\" ngaqë ka një të tillë",
- "Could not create folder \"{dir}\" because it already exists" : "S’u krijua dot dosja \"{dir}\" ngaqë ka një të tillë",
- "Error deleting file \"{fileName}\"." : "Gabim në fshirjen e kartelës \"{fileName}\".",
- "No search results in other folders for {tag}{filter}{endtag}" : "Asnjë rezultat i kërkimit në dosjet e tjera për {tag} {filter} {endtag}",
- "Name" : "Emër",
- "Size" : "Madhësi",
- "Modified" : "Ndryshuar më",
- "_%n folder_::_%n folders_" : ["%n dosje","%n dosje"],
- "_%n file_::_%n files_" : ["%n kartelë","%n skedar"],
- "{dirs} and {files}" : "{dirs} dhe {files}",
- "_including %n hidden_::_including %n hidden_" : ["Përfshirë %n të fshehura","Përfshirë %n të fshehura"],
- "_Uploading %n file_::_Uploading %n files_" : ["Po ngarkohet %n kartelë","Po ngarkohen %n skedar"],
- "\"{name}\" is an invalid file name." : "\"{name}\" është emër i pavlefshëm kartele.",
- "File name cannot be empty." : "Emri i kartelës s’mund të jetë i zbrazët.",
- "\"{name}\" is not an allowed filetype" : "\"{name}\" nuk është një lloj skedari i lejuar",
- "View in folder" : "Shikoje në dosje",
- "Path" : "Rrugë",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajte"],
- "Favorited" : "U kalua e parapëlqyer",
- "Favorite" : "E parapëlqyer",
- "Copy direct link (only works for users who have access to this file/folder)" : "Kopjo lidhjen e drejtpërdrejtë (funksionon vetëm për përdoruesit që kanë qasje në këtë skedar/dosje)",
- "New folder" : "Dosje e re",
- "Create new folder" : "Krijo një dosje të re",
- "Upload file" : "Ngarko skedar",
- "Recent" : "Të fundit",
- "Remove from favorites" : "Remove from favorites",
- "Add to favorites" : "Shtoje tek të parapëlqyerat",
- "An error occurred while trying to update the tags" : "Ndodhi një gabim teksa provohej të përditësoheshin etiketat",
- "Added to favorites" : "U shtua te të parapëlqyerat",
- "Removed from favorites" : "U hoq nga të parapëlqyerat",
- "You added {file} to your favorites" : "Ju shtuat {file} te të parapëlqyerat",
- "You removed {file} from your favorites" : "Ju hoqët {file} nga të parapëlqyerat",
- "File changes" : "Ndryshimet në skedar",
- "Created by {user}" : "U krijua nga {user}",
- "Changed by {user}" : "U ndryshua nga {user}",
- "Deleted by {user}" : "U fshi nga {user}",
- "Restored by {user}" : "U rikthye nga {user}",
- "Renamed by {user}" : "U riemërua nga {user}",
- "Moved by {user}" : "U ndryshua nga {user}",
- "\"remote user\"" : "\"përdorues i largët\"",
- "You created {file}" : "Ju krijuat {file}",
- "{user} created {file}" : "{user} krijoj {file}",
- "{file} was created in a public folder" : "{file} u krijua në një folder publik",
- "You changed {file}" : "Ju ndryshuat {file}",
- "{user} changed {file}" : "{user} ndryshoj {file}",
- "You deleted {file}" : "Ju fshit {file}",
- "{user} deleted {file}" : "{user} fshiu {file}",
- "You restored {file}" : "Ju rikthyet {file}",
- "{user} restored {file}" : "{user} riktheu {file}",
- "You renamed {oldfile} to {newfile}" : "Ju riemëruat {oldfile} në {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} riemëruat {oldfile} në {newfile}",
- "You moved {oldfile} to {newfile}" : "Ju lëvizët {oldfile} në {newfile}",
- "{user} moved {oldfile} to {newfile}" : "{user} lëvizi {oldfile} në {newfile}",
- "A file has been added to or removed from your <strong>favorites</strong>" : "Një skedar është shtuar ose është hequr nga <strong>të preferuarat</strong> tuaja",
- "A file or folder has been <strong>changed</strong>" : "<strong>U ndryshua</strong> një kartelë ose dosje",
- "All files" : "Të gjithë skedarët",
- "Upload (max. %s)" : "Ngarkim (max. %s)",
- "Accept" : "Prano",
- "in %s" : "në %s",
- "Select all" : "Përzgjidhe krejt",
- "Change" : "Ndrysho",
- "Unknown error" : "Gabim i panjohur",
- "No files in here" : "S’ka kartela këtu",
- "Go back" : "Shko prapa",
- "Show hidden files" : "Shfaq kartela të fshehura",
- "Additional settings" : "Konfigurime shtesë",
- "WebDAV" : "WebDAV",
- "Copy to clipboard" : "Kopjo në dërrasë ",
- "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!",
- "No entries found in this folder" : "Në këtë dosje s’u gjetën zëra",
- "Upload too large" : "Ngarkim shumë i madh",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Kartelat që po rrekeni të ngarkoni e tejkalojnë madhësinë maksimale për ngarkime kartelash në këtë shërbyes.",
- "No favorites yet" : "Asnjë preferencë akoma",
- "Files and folders you mark as favorite will show up here" : "Këtu do të duken kartelat dhe dosjet që i shënoni si të parapëlqyera",
- "Shares" : "Shpërndarjet",
- "Shared with others" : "E ndarë me të tjerët",
- "Shared with you" : "E ndarë me ju",
- "Shared by link" : "E ndarë me lidhje",
- "Deleted shares" : "Fshi shpërndarjet",
- "Text file" : "Kartelë tekst",
- "New text file.txt" : "Kartelë e re file.txt",
- "Storage invalid" : "Depozitë e pavlefshme",
- "Unlimited" : "E palimituar",
- "Cancel" : "Anullo",
- "%s used" : "%s të përdorura",
- "%1$s of %2$s used" : "%1$s e %2$s përdorur",
- "Deleted files" : "Skedar të fshirë"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index c2388dff6a9..7c26a7c95bd 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Омиљени фајлови",
"No favorites" : "Нема омиљених",
"More favorites" : "Још омиљених",
- "Upload (max. %s)" : "Отпремање (макс. %s)",
"Accept" : "Прихвати",
"Reject" : "Одбаци",
"Incoming ownership transfer from {user}" : "Надолазећи пренос власништва од корисника {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Пренесено са %1$s на %2$s",
"Files compatibility" : "Компатибилност фајлова",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозвољава се ограничавање имена фајлова тако да сви клијенти могу да их синхронизују. Подразумевано се дозвољавају сва имена фајлова која су исправна на POSIX системима (нпр. Linux или macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Када се укључе Windows компатибилна имена фајлова, постојећи фајлови се више неће моћи мењати, али њихов власник може да им промени име на исправно ново име.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Фајлови такође могу аутоматски да се мигрирају након укључивања овог подешавања, молимо вас да погледате документацију у вези са occ командом.",
"Enforce Windows compatibility" : "Форсирај Windows компатибилност",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ово ће да блокира имена фајлова која су неисправна на Windows системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.",
"File Management" : "Управљање фајловима",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Неисправно име фајла.",
"Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}” је промењено на „{newName}”",
"Rename file" : "Промени назив фајла",
+ "Folder" : "Фасцикла",
+ "Unknown file type" : "Непознат тип фајла",
+ "{ext} image" : "{ext} слика",
+ "{ext} video" : "{ext} видео",
+ "{ext} audio" : "{ext} аудио",
+ "{ext} text" : "{ext} текст",
"Pending" : "На чекању",
"Unknown date" : "Непознат датум",
"Clear filter" : "Очисти филтер",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Резиме укупног броја редова",
"Toggle selection for all files and folders" : "Укљ./искљ. избор за све фајлове и фолдере",
"Name" : "Назив",
+ "File type" : "Тип фајла",
"Size" : "Величина",
"\"{displayName}\" failed on some elements" : "„{displayName}” није успело на неким елементима",
"\"{displayName}\" batch action executed successfully" : "Пакетна акција „{displayName}” се успешно извршила",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Заглавља колона са дугмићима могу да се соритрају.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ова листа није у потпуности приказана из разлога перформанси. Фајлови ће се приказивати како се крећете кроз листу.",
"File not found" : "Фајл није нађен",
- "{count} selected" : "{count} изабрано",
+ "_{count} selected_::_{count} selected_" : ["изабран је {count}","изабрана су {count}","изабрано је {count}"],
"{usedQuotaByte} used" : "{usedQuotaByte} искоришћено",
"{used} of {quota} used" : "{used} од {quota} искоришћено",
"{relative}% used" : "{relative}% искоришћено",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Сортирај прво омиљене",
"Sort folders before files" : "Поређај фолдере испред фајлова",
"Show hidden files" : "Прикажи скривене фајлове",
+ "Show file type column" : "Прикажи колону са типом фајла",
"Crop image previews" : "Опсецање прегледа слика",
"Enable the grid view" : "Укључи приказ мреже",
"Enable folder tree" : "Укључи стабло фолдера",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Прикажи те пречице",
"You" : "Ви",
"Shared multiple times with different people" : "Дељено више пута са разним људима",
+ "Unable to change the favorite state of the file" : "Није успела измена стања омиљено за фајл",
"Error while loading the file data" : "Грешка при учитавању података фајла",
"Owner" : "Власник",
"Remove from favorites" : "Избаци из омиљених",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Управо ћете обрисати {count} ставку","Управо ћете обрисати {count} ставке","Управо ћете обрисати {count} ставки"],
"Confirm deletion" : "Потврди брисање",
"Cancel" : "Поништи",
+ "Download" : "Преузми",
"Moving \"{source}\" to \"{destination}\" …" : "„{source}” се премешта у „{destination}”…",
"Copying \"{source}\" to \"{destination}\" …" : "„{source}” се копира у „{destination}”…",
+ "Destination is not a folder" : "Одредиште није фолдер",
+ "This file/folder is already in that directory" : "Овај фајл/фолдер се већ налази у том директоријуму",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Фајл/фолдер не можете да преместите у самог себе или у његов подфолдер",
"(copy)" : "(копиран)",
"(copy %n)" : "(копирано %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Операција премештања или копирања је отказана",
"Open folder {displayName}" : "Отвори фолдер {displayName}",
"Open in Files" : "Отвори у Фајловима",
+ "Open locally" : "Отвори локално",
+ "Failed to redirect to client" : "Преусмеравање на клијента није успело",
"Open file locally" : "Отвори фајл локално",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Фајл би сада требало да се отвори на вашем уређају. Ако се не отвори, проверите да ли сте инсталирали декстоп апликацију.",
"Retry and close" : "Покушај поново и затвори",
"Open online" : "Отвори на мрежи",
- "Failed to redirect to client" : "Преусмеравање на клијента није успело",
- "Open locally" : "Отвори локално",
"Rename" : "Преименуј",
"Open details" : "Отвори детаље",
"View in folder" : "Види у фасцикли",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "Фајлови су успешно премештени",
"Conflicts resolution skipped" : "Прексочено је разрешавање конфилката",
"Upload cancelled" : "Отпремање је отказано",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Не може да се промени име фајла „{oldName}” јер фајл више не постоји",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Назив „{newName}” се већ користи у директоријуму „{dir}”. Молимо вас да изаберете неко друго име.",
+ "Could not rename \"{oldName}\"" : "Не може да се промени име фајла „{oldName}”",
"This operation is forbidden" : "Ова радња је забрањена",
"This directory is unavailable, please check the logs or contact the administrator" : "Овај директоријум није доступан, проверите дневник или контактирајте администратора",
"Storage is temporarily not available" : "Складиште привремено није доступно",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Отпремање је превелико",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Фајлови које желите да отпремите превазилазе ограничење отпремања на овом серверу.",
"File could not be found" : "Фајл није нађен",
- "Download" : "Преузми",
"Show list view" : "Prikaži prikaz liste",
"Show grid view" : "Prikaži prikaz mreže",
"Close" : "Затвори",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Копиран {origin} у {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Копиран{origin} и још {nbfiles} других фајлова у {destination}",
"{newName} already exists" : "{newName} већ постоји",
- "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}“",
"Could not create file \"{file}\" because it already exists" : "Не могу да направим фајл „{file}“ јер већ постоји",
"Could not create folder \"{dir}\" because it already exists" : "Не могу да направим фасциклу „{dir}“ јер већ постоји",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Копиран је директан линк (функционише само за особе који имају приступ овом фајлу/фолдеру)",
"Path" : "Путања",
"_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајтова"],
- "Favorited" : "Омиљено",
+ "Favored" : "Наклоњен",
+ "Favor" : "Наклоност",
"Copy direct link (only works for people who have access to this file/folder)" : "Копирај директни линк (ради само за особе које имају приступ овом фајлу/фолдеру)",
"Upload file" : "Отпреми фајл",
- "Not favorited" : "Није омиљено",
+ "Not favored" : "Ненаклоњен",
"An error occurred while trying to update the tags" : "Дошло је до грешке при покушају ажурирања ознака",
- "You don't have permission to upload or create files here." : "Немате дозволу да овде отпремите или креирате фајлове.",
- "Storage informations" : "Информације о складишту",
- "Choose file" : "Изаберите фајл",
- "Go to the previous folder" : "Иди на претходни фолдер",
- "Open the files app settings" : "Отвори подешавања апликације фајлови",
- "Unable to change the favourite state of the file" : "Неуспела промена стања омиљености фајла",
- "Edit file locally" : "Уреди фајл локално",
- "Edit online" : "Уреди на мрежи",
- "Create new templates folder" : "Креирај нови фолдер шаблона",
+ "Upload (max. %s)" : "Отпремање (макс. %s)",
+ "Submitting fields…" : "Поља се подносе…",
+ "Filter filenames…" : "Филтрирање имена фајлова…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} фолдер","{folderCount} фолдера","{folderCount} фолдера"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} фајл","{fileCount} фајла","{fileCount} фајлова"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 фајл и {folderCount} фолдер","1 фајл и {folderCount} фолдера","1 фајл и {folderCount} фолдера"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} фајл и 1 фолдер","{fileCount} фајла и 1 фолдер","{fileCount} фајлова и 1 фолдер"],
"{fileCount} files and {folderCount} folders" : "{fileCount} фајлова и {folderCount} фолдера",
- "List of favorites files and folders." : "Листа омиљених фајлова и директоријума.",
"Personal Files" : "Лични фајлови",
"Text file" : "Tекстуални фајл",
"New text file.txt" : "Нов текстуални фајл.txt",
- "Favored" : "Наклоњен",
- "Favor" : "Наклоност",
- "Not favored" : "Ненаклоњен",
- "Submitting fields…" : "Поља се подносе…",
- "Filter filenames…" : "Филтрирање имена фајлова…",
- "{count} files could not be converted" : "Није могло да се конвертује {count} фајлова",
- "{count} files successfully converted" : "Успешно је конвертовано {count} фајлова"
+ "%1$s (renamed)" : "%1$s (преименован)",
+ "renamed file" : "преименован фајл",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Када се укључе windows компатибилна имена фајлова, постојећи фајлови се више неће моћи мењати, али њихов власник може да им промени име на исправно ново име."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index f736a5c7f94..c262023b8f3 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -52,7 +52,6 @@
"Favorite files" : "Омиљени фајлови",
"No favorites" : "Нема омиљених",
"More favorites" : "Још омиљених",
- "Upload (max. %s)" : "Отпремање (макс. %s)",
"Accept" : "Прихвати",
"Reject" : "Одбаци",
"Incoming ownership transfer from {user}" : "Надолазећи пренос власништва од корисника {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Пренесено са %1$s на %2$s",
"Files compatibility" : "Компатибилност фајлова",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозвољава се ограничавање имена фајлова тако да сви клијенти могу да их синхронизују. Подразумевано се дозвољавају сва имена фајлова која су исправна на POSIX системима (нпр. Linux или macOS).",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Када се укључе Windows компатибилна имена фајлова, постојећи фајлови се више неће моћи мењати, али њихов власник може да им промени име на исправно ново име.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Фајлови такође могу аутоматски да се мигрирају након укључивања овог подешавања, молимо вас да погледате документацију у вези са occ командом.",
"Enforce Windows compatibility" : "Форсирај Windows компатибилност",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ово ће да блокира имена фајлова која су неисправна на Windows системима, као што су она која користе резервисана имена или специјалне карактере. Али ово неће форсирати компатибилност разликовања малих и великих слова.",
"File Management" : "Управљање фајловима",
@@ -93,6 +94,12 @@
"Invalid filename." : "Неисправно име фајла.",
"Renamed \"{oldName}\" to \"{newName}\"" : "„{oldName}” је промењено на „{newName}”",
"Rename file" : "Промени назив фајла",
+ "Folder" : "Фасцикла",
+ "Unknown file type" : "Непознат тип фајла",
+ "{ext} image" : "{ext} слика",
+ "{ext} video" : "{ext} видео",
+ "{ext} audio" : "{ext} аудио",
+ "{ext} text" : "{ext} текст",
"Pending" : "На чекању",
"Unknown date" : "Непознат датум",
"Clear filter" : "Очисти филтер",
@@ -103,6 +110,7 @@
"Total rows summary" : "Резиме укупног броја редова",
"Toggle selection for all files and folders" : "Укљ./искљ. избор за све фајлове и фолдере",
"Name" : "Назив",
+ "File type" : "Тип фајла",
"Size" : "Величина",
"\"{displayName}\" failed on some elements" : "„{displayName}” није успело на неким елементима",
"\"{displayName}\" batch action executed successfully" : "Пакетна акција „{displayName}” се успешно извршила",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Заглавља колона са дугмићима могу да се соритрају.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ова листа није у потпуности приказана из разлога перформанси. Фајлови ће се приказивати како се крећете кроз листу.",
"File not found" : "Фајл није нађен",
- "{count} selected" : "{count} изабрано",
+ "_{count} selected_::_{count} selected_" : ["изабран је {count}","изабрана су {count}","изабрано је {count}"],
"{usedQuotaByte} used" : "{usedQuotaByte} искоришћено",
"{used} of {quota} used" : "{used} од {quota} искоришћено",
"{relative}% used" : "{relative}% искоришћено",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Сортирај прво омиљене",
"Sort folders before files" : "Поређај фолдере испред фајлова",
"Show hidden files" : "Прикажи скривене фајлове",
+ "Show file type column" : "Прикажи колону са типом фајла",
"Crop image previews" : "Опсецање прегледа слика",
"Enable the grid view" : "Укључи приказ мреже",
"Enable folder tree" : "Укључи стабло фолдера",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "Прикажи те пречице",
"You" : "Ви",
"Shared multiple times with different people" : "Дељено више пута са разним људима",
+ "Unable to change the favorite state of the file" : "Није успела измена стања омиљено за фајл",
"Error while loading the file data" : "Грешка при учитавању података фајла",
"Owner" : "Власник",
"Remove from favorites" : "Избаци из омиљених",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Управо ћете обрисати {count} ставку","Управо ћете обрисати {count} ставке","Управо ћете обрисати {count} ставки"],
"Confirm deletion" : "Потврди брисање",
"Cancel" : "Поништи",
+ "Download" : "Преузми",
"Moving \"{source}\" to \"{destination}\" …" : "„{source}” се премешта у „{destination}”…",
"Copying \"{source}\" to \"{destination}\" …" : "„{source}” се копира у „{destination}”…",
+ "Destination is not a folder" : "Одредиште није фолдер",
+ "This file/folder is already in that directory" : "Овај фајл/фолдер се већ налази у том директоријуму",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Фајл/фолдер не можете да преместите у самог себе или у његов подфолдер",
"(copy)" : "(копиран)",
"(copy %n)" : "(копирано %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Операција премештања или копирања је отказана",
"Open folder {displayName}" : "Отвори фолдер {displayName}",
"Open in Files" : "Отвори у Фајловима",
+ "Open locally" : "Отвори локално",
+ "Failed to redirect to client" : "Преусмеравање на клијента није успело",
"Open file locally" : "Отвори фајл локално",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Фајл би сада требало да се отвори на вашем уређају. Ако се не отвори, проверите да ли сте инсталирали декстоп апликацију.",
"Retry and close" : "Покушај поново и затвори",
"Open online" : "Отвори на мрежи",
- "Failed to redirect to client" : "Преусмеравање на клијента није успело",
- "Open locally" : "Отвори локално",
"Rename" : "Преименуј",
"Open details" : "Отвори детаље",
"View in folder" : "Види у фасцикли",
@@ -320,6 +333,9 @@
"Files moved successfully" : "Фајлови су успешно премештени",
"Conflicts resolution skipped" : "Прексочено је разрешавање конфилката",
"Upload cancelled" : "Отпремање је отказано",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Не може да се промени име фајла „{oldName}” јер фајл више не постоји",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Назив „{newName}” се већ користи у директоријуму „{dir}”. Молимо вас да изаберете неко друго име.",
+ "Could not rename \"{oldName}\"" : "Не може да се промени име фајла „{oldName}”",
"This operation is forbidden" : "Ова радња је забрањена",
"This directory is unavailable, please check the logs or contact the administrator" : "Овај директоријум није доступан, проверите дневник или контактирајте администратора",
"Storage is temporarily not available" : "Складиште привремено није доступно",
@@ -351,7 +367,6 @@
"Upload too large" : "Отпремање је превелико",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Фајлови које желите да отпремите превазилазе ограничење отпремања на овом серверу.",
"File could not be found" : "Фајл није нађен",
- "Download" : "Преузми",
"Show list view" : "Prikaži prikaz liste",
"Show grid view" : "Prikaži prikaz mreže",
"Close" : "Затвори",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "Копиран {origin} у {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Копиран{origin} и још {nbfiles} других фајлова у {destination}",
"{newName} already exists" : "{newName} већ постоји",
- "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}“",
"Could not create file \"{file}\" because it already exists" : "Не могу да направим фајл „{file}“ јер већ постоји",
"Could not create folder \"{dir}\" because it already exists" : "Не могу да направим фасциклу „{dir}“ јер већ постоји",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Копиран је директан линк (функционише само за особе који имају приступ овом фајлу/фолдеру)",
"Path" : "Путања",
"_%n byte_::_%n bytes_" : ["%n бајт","%n бајта","%n бајтова"],
- "Favorited" : "Омиљено",
+ "Favored" : "Наклоњен",
+ "Favor" : "Наклоност",
"Copy direct link (only works for people who have access to this file/folder)" : "Копирај директни линк (ради само за особе које имају приступ овом фајлу/фолдеру)",
"Upload file" : "Отпреми фајл",
- "Not favorited" : "Није омиљено",
+ "Not favored" : "Ненаклоњен",
"An error occurred while trying to update the tags" : "Дошло је до грешке при покушају ажурирања ознака",
- "You don't have permission to upload or create files here." : "Немате дозволу да овде отпремите или креирате фајлове.",
- "Storage informations" : "Информације о складишту",
- "Choose file" : "Изаберите фајл",
- "Go to the previous folder" : "Иди на претходни фолдер",
- "Open the files app settings" : "Отвори подешавања апликације фајлови",
- "Unable to change the favourite state of the file" : "Неуспела промена стања омиљености фајла",
- "Edit file locally" : "Уреди фајл локално",
- "Edit online" : "Уреди на мрежи",
- "Create new templates folder" : "Креирај нови фолдер шаблона",
+ "Upload (max. %s)" : "Отпремање (макс. %s)",
+ "Submitting fields…" : "Поља се подносе…",
+ "Filter filenames…" : "Филтрирање имена фајлова…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} фолдер","{folderCount} фолдера","{folderCount} фолдера"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} фајл","{fileCount} фајла","{fileCount} фајлова"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 фајл и {folderCount} фолдер","1 фајл и {folderCount} фолдера","1 фајл и {folderCount} фолдера"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} фајл и 1 фолдер","{fileCount} фајла и 1 фолдер","{fileCount} фајлова и 1 фолдер"],
"{fileCount} files and {folderCount} folders" : "{fileCount} фајлова и {folderCount} фолдера",
- "List of favorites files and folders." : "Листа омиљених фајлова и директоријума.",
"Personal Files" : "Лични фајлови",
"Text file" : "Tекстуални фајл",
"New text file.txt" : "Нов текстуални фајл.txt",
- "Favored" : "Наклоњен",
- "Favor" : "Наклоност",
- "Not favored" : "Ненаклоњен",
- "Submitting fields…" : "Поља се подносе…",
- "Filter filenames…" : "Филтрирање имена фајлова…",
- "{count} files could not be converted" : "Није могло да се конвертује {count} фајлова",
- "{count} files successfully converted" : "Успешно је конвертовано {count} фајлова"
+ "%1$s (renamed)" : "%1$s (преименован)",
+ "renamed file" : "преименован фајл",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Када се укључе windows компатибилна имена фајлова, постојећи фајлови се више неће моћи мењати, али њихов власник може да им промени име на исправно ново име."
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sr@latin.js b/apps/files/l10n/sr@latin.js
deleted file mode 100644
index 736e4a1cc81..00000000000
--- a/apps/files/l10n/sr@latin.js
+++ /dev/null
@@ -1,95 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Storage not available" : "Skladište nije dostupno",
- "Storage invalid" : "Neispravno skladište",
- "Unknown error" : "Nepoznata greška",
- "Unable to set upload directory." : "Ne mogu da postavim direktorijum za otpremanje.",
- "Invalid Token" : "Neispravan token",
- "No file was uploaded. Unknown error" : "Nijedan fajl nije otpremljen. Nepoznata greška",
- "There is no error, the file uploaded with success" : "Nema greške, fajl je uspešno otpremljen",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Otpremani fajl prevazilazi smernicu upload_max_filesize u fajlu php.ini:",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Otpremani fajl prevazilazi smernicu MAX_FILE_SIZE koja je navedena u HTML obrascu",
- "The uploaded file was only partially uploaded" : "Otpremani fajl je samo delimično otpremljen",
- "No file was uploaded" : "Ništa nije otpremljeno",
- "Missing a temporary folder" : "Nedostaje privremena fascikla",
- "Failed to write to disk" : "Ne mogu da pišem na disk",
- "Not enough storage available" : "Nema dovoljno prostora",
- "The target folder has been moved or deleted." : "Odredišna fascikla je premeštena ili obrisana.",
- "Upload failed. Could not find uploaded file" : "Neuspešno otpremanje. Ne mogu da nađem otpremljeni fajl",
- "Upload failed. Could not get file info." : "Neuspešno otpremanje. Ne mogu da dobijem podatke o fajlu.",
- "Invalid directory." : "Neispravna fascikla.",
- "Files" : "Fajlovi",
- "All files" : "Svi fajlovi",
- "Home" : "Početna",
- "Close" : "Zatvori",
- "Favorites" : "Omiljeni",
- "Upload cancelled." : "Otpremanje je otkazano.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ne mogu da otpremim {filename} jer je to direktorijum ili ima 0 bajtova",
- "Total file size {size1} exceeds upload limit {size2}" : "Veličina {size1} prevazilazi ograničenje za otpremanje od {size2}",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nema prostora. Otpremate {size1} ali samo {size2} je preostalo",
- "Could not get result from server." : "Ne mogu da dobijem rezultat sa servera.",
- "Uploading..." : "Otpremam…",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Otpremanje fajla je u toku. Ako sada napustite stranicu, otkazaćete otpremanje.",
- "Download" : "Preuzmi",
- "Rename" : "Preimenuj",
- "Delete" : "Obriši",
- "Disconnect storage" : "Isključi skladište",
- "Unshare" : "Ne deli",
- "Details" : "Detaljnije",
- "Select" : "Izaberi",
- "Pending" : "Na čekanju",
- "Unable to determine date" : "Ne mogu da odredim datum",
- "No entries in this folder match '{filter}'" : "U ovoj fascikli ništa se ne poklapa sa '{filter}'",
- "Name" : "Naziv",
- "Size" : "Veličina",
- "Modified" : "Izmenjen",
- "_%n folder_::_%n folders_" : ["%n fascikla","%n fascikle","%n fascikli"],
- "_%n file_::_%n files_" : ["%n fajl","%n fajla","%n fajlova"],
- "{dirs} and {files}" : "{dirs} i {files}",
- "You don’t have permission to upload or create files here" : "Nemate dozvole da ovde otpremate ili stvarate fajlove",
- "_Uploading %n file_::_Uploading %n files_" : ["Otpremam %n fajl","Otpremam %n fajla","Otpremam %n fajlova"],
- "New" : "Novo",
- "\"{name}\" is an invalid file name." : "\"{name}\" nije ispravan naziv fajla.",
- "File name cannot be empty." : "Naziv fajla ne može biti prazan.",
- "Your storage is full, files can not be updated or synced anymore!" : "Vaše skladište je puno. Fajlovi više ne mogu biti ažurirani ni sinhronizovani!",
- "Your storage is almost full ({usedSpacePercent}%)" : "Vaše skladište je skoro puno ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["se poklapa sa '{filter}'","se poklapaju sa '{filter}'","se poklapa sa '{filter}'"],
- "Favorited" : "Omiljeno",
- "Favorite" : "Omiljeni",
- "Folder" : "fascikla",
- "New folder" : "Nova fascikla",
- "Upload" : "Otpremi",
- "An error occurred while trying to update the tags" : "Došlo je do greške pri pokušaju ažuriranja oznaka",
- "A new file or folder has been <strong>created</strong>" : "Novi fajl ili fascikla su <strong>napravljeni</strong>",
- "A file or folder has been <strong>changed</strong>" : "Fajl ili fascikla su <strong>izmenjeni</strong>",
- "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ograniči obaveštenja o stvaranju i izmenama na <strong>omiljene fajlove</strong> <em>(samo u zapisniku)</em>",
- "A file or folder has been <strong>deleted</strong>" : "Fajl ili fascikla su <strong>obrisani</strong>",
- "A file or folder has been <strong>restored</strong>" : "Fajl ili fascikla su <strong>vraćeni</strong>",
- "You created %1$s" : "Napravili ste %1$s",
- "%2$s created %1$s" : "%2$s napravi %1$s",
- "%1$s was created in a public folder" : "%1$s je napravljen u javnoj fascikli",
- "You changed %1$s" : "Izmenili ste %1$s",
- "%2$s changed %1$s" : "%2$s izmeni %1$s",
- "You deleted %1$s" : "Obrisali ste %1$s",
- "%2$s deleted %1$s" : "%2$s obrisa %1$s",
- "You restored %1$s" : "Vratili ste %1$s",
- "%2$s restored %1$s" : "%2$s povrati %1$s",
- "Upload (max. %s)" : "Otpremanje (maks. %s)",
- "File handling" : "Rukovanje fajlovima",
- "Maximum upload size" : "Najveća veličina otpremanja",
- "max. possible: " : "najviše moguće:",
- "Save" : "Sačuvaj",
- "Settings" : "Postavke",
- "WebDAV" : "WebDAV",
- "No files in here" : "Ovde nema fajlova",
- "Upload some content or sync with your devices!" : "Otpremite neki sadržaj ili sinhronizujte sa vašim uređajima!",
- "No entries found in this folder" : "Nema ničega u ovoj fascikli",
- "Select all" : "Označi sve",
- "Upload too large" : "Otpremanje je preveliko",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fajlovi koje želite da otpremite prevazilaze ograničenje otpremanja na ovom serveru.",
- "No favorites" : "Nema omiljenih",
- "Files and folders you mark as favorite will show up here" : "Fajlovi i fascikle koje obeležite kao omiljene pojaviće se ovde",
- "Text file" : "tekstualni fajl"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files/l10n/sr@latin.json b/apps/files/l10n/sr@latin.json
deleted file mode 100644
index 0710435eb69..00000000000
--- a/apps/files/l10n/sr@latin.json
+++ /dev/null
@@ -1,93 +0,0 @@
-{ "translations": {
- "Storage not available" : "Skladište nije dostupno",
- "Storage invalid" : "Neispravno skladište",
- "Unknown error" : "Nepoznata greška",
- "Unable to set upload directory." : "Ne mogu da postavim direktorijum za otpremanje.",
- "Invalid Token" : "Neispravan token",
- "No file was uploaded. Unknown error" : "Nijedan fajl nije otpremljen. Nepoznata greška",
- "There is no error, the file uploaded with success" : "Nema greške, fajl je uspešno otpremljen",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Otpremani fajl prevazilazi smernicu upload_max_filesize u fajlu php.ini:",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Otpremani fajl prevazilazi smernicu MAX_FILE_SIZE koja je navedena u HTML obrascu",
- "The uploaded file was only partially uploaded" : "Otpremani fajl je samo delimično otpremljen",
- "No file was uploaded" : "Ništa nije otpremljeno",
- "Missing a temporary folder" : "Nedostaje privremena fascikla",
- "Failed to write to disk" : "Ne mogu da pišem na disk",
- "Not enough storage available" : "Nema dovoljno prostora",
- "The target folder has been moved or deleted." : "Odredišna fascikla je premeštena ili obrisana.",
- "Upload failed. Could not find uploaded file" : "Neuspešno otpremanje. Ne mogu da nađem otpremljeni fajl",
- "Upload failed. Could not get file info." : "Neuspešno otpremanje. Ne mogu da dobijem podatke o fajlu.",
- "Invalid directory." : "Neispravna fascikla.",
- "Files" : "Fajlovi",
- "All files" : "Svi fajlovi",
- "Home" : "Početna",
- "Close" : "Zatvori",
- "Favorites" : "Omiljeni",
- "Upload cancelled." : "Otpremanje je otkazano.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "Ne mogu da otpremim {filename} jer je to direktorijum ili ima 0 bajtova",
- "Total file size {size1} exceeds upload limit {size2}" : "Veličina {size1} prevazilazi ograničenje za otpremanje od {size2}",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nema prostora. Otpremate {size1} ali samo {size2} je preostalo",
- "Could not get result from server." : "Ne mogu da dobijem rezultat sa servera.",
- "Uploading..." : "Otpremam…",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Otpremanje fajla je u toku. Ako sada napustite stranicu, otkazaćete otpremanje.",
- "Download" : "Preuzmi",
- "Rename" : "Preimenuj",
- "Delete" : "Obriši",
- "Disconnect storage" : "Isključi skladište",
- "Unshare" : "Ne deli",
- "Details" : "Detaljnije",
- "Select" : "Izaberi",
- "Pending" : "Na čekanju",
- "Unable to determine date" : "Ne mogu da odredim datum",
- "No entries in this folder match '{filter}'" : "U ovoj fascikli ništa se ne poklapa sa '{filter}'",
- "Name" : "Naziv",
- "Size" : "Veličina",
- "Modified" : "Izmenjen",
- "_%n folder_::_%n folders_" : ["%n fascikla","%n fascikle","%n fascikli"],
- "_%n file_::_%n files_" : ["%n fajl","%n fajla","%n fajlova"],
- "{dirs} and {files}" : "{dirs} i {files}",
- "You don’t have permission to upload or create files here" : "Nemate dozvole da ovde otpremate ili stvarate fajlove",
- "_Uploading %n file_::_Uploading %n files_" : ["Otpremam %n fajl","Otpremam %n fajla","Otpremam %n fajlova"],
- "New" : "Novo",
- "\"{name}\" is an invalid file name." : "\"{name}\" nije ispravan naziv fajla.",
- "File name cannot be empty." : "Naziv fajla ne može biti prazan.",
- "Your storage is full, files can not be updated or synced anymore!" : "Vaše skladište je puno. Fajlovi više ne mogu biti ažurirani ni sinhronizovani!",
- "Your storage is almost full ({usedSpacePercent}%)" : "Vaše skladište je skoro puno ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["se poklapa sa '{filter}'","se poklapaju sa '{filter}'","se poklapa sa '{filter}'"],
- "Favorited" : "Omiljeno",
- "Favorite" : "Omiljeni",
- "Folder" : "fascikla",
- "New folder" : "Nova fascikla",
- "Upload" : "Otpremi",
- "An error occurred while trying to update the tags" : "Došlo je do greške pri pokušaju ažuriranja oznaka",
- "A new file or folder has been <strong>created</strong>" : "Novi fajl ili fascikla su <strong>napravljeni</strong>",
- "A file or folder has been <strong>changed</strong>" : "Fajl ili fascikla su <strong>izmenjeni</strong>",
- "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ograniči obaveštenja o stvaranju i izmenama na <strong>omiljene fajlove</strong> <em>(samo u zapisniku)</em>",
- "A file or folder has been <strong>deleted</strong>" : "Fajl ili fascikla su <strong>obrisani</strong>",
- "A file or folder has been <strong>restored</strong>" : "Fajl ili fascikla su <strong>vraćeni</strong>",
- "You created %1$s" : "Napravili ste %1$s",
- "%2$s created %1$s" : "%2$s napravi %1$s",
- "%1$s was created in a public folder" : "%1$s je napravljen u javnoj fascikli",
- "You changed %1$s" : "Izmenili ste %1$s",
- "%2$s changed %1$s" : "%2$s izmeni %1$s",
- "You deleted %1$s" : "Obrisali ste %1$s",
- "%2$s deleted %1$s" : "%2$s obrisa %1$s",
- "You restored %1$s" : "Vratili ste %1$s",
- "%2$s restored %1$s" : "%2$s povrati %1$s",
- "Upload (max. %s)" : "Otpremanje (maks. %s)",
- "File handling" : "Rukovanje fajlovima",
- "Maximum upload size" : "Najveća veličina otpremanja",
- "max. possible: " : "najviše moguće:",
- "Save" : "Sačuvaj",
- "Settings" : "Postavke",
- "WebDAV" : "WebDAV",
- "No files in here" : "Ovde nema fajlova",
- "Upload some content or sync with your devices!" : "Otpremite neki sadržaj ili sinhronizujte sa vašim uređajima!",
- "No entries found in this folder" : "Nema ničega u ovoj fascikli",
- "Select all" : "Označi sve",
- "Upload too large" : "Otpremanje je preveliko",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fajlovi koje želite da otpremite prevazilaze ograničenje otpremanja na ovom serveru.",
- "No favorites" : "Nema omiljenih",
- "Files and folders you mark as favorite will show up here" : "Fajlovi i fascikle koje obeležite kao omiljene pojaviće se ovde",
- "Text file" : "tekstualni fajl"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/su.js b/apps/files/l10n/su.js
deleted file mode 100644
index 91d52801985..00000000000
--- a/apps/files/l10n/su.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : [""],
- "_%n file_::_%n files_" : [""],
- "_Uploading %n file_::_Uploading %n files_" : [""],
- "_matches '{filter}'_::_match '{filter}'_" : [""]
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/su.json b/apps/files/l10n/su.json
deleted file mode 100644
index 82cca5a0661..00000000000
--- a/apps/files/l10n/su.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : [""],
- "_%n file_::_%n files_" : [""],
- "_Uploading %n file_::_Uploading %n files_" : [""],
- "_matches '{filter}'_::_match '{filter}'_" : [""]
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index e2a51702f92..27d6814448f 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Favoritfiler",
"No favorites" : "Inga favoriter",
"More favorites" : "Fler favoriter",
- "Upload (max. %s)" : "Ladda upp (högst %s)",
"Accept" : "Acceptera",
"Reject" : "Avvisa",
"Incoming ownership transfer from {user}" : "Inkommande ägaröverföring från {user}",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Överförd från %1$s på %2$s",
"Files compatibility" : "Filkompatibilitet",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Tillåt att begränsa filnamn för att säkerställa att filer kan synkroniseras med alla klienter. Som standard är alla filnamn som är giltiga på POSIX (t.ex. Linux eller macOS) tillåtna.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "När Windows-kompatibla filnamn har aktiverats kan befintliga filer inte längre ändras, men de kan byta namn till giltiga nya namn av sin ägare.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Det är också möjligt att migrera filer automatiskt efter att den här inställningen har aktiverats. Se dokumentationen om kommandot occ för mer information.",
"Enforce Windows compatibility" : "Tvinga Windows-kompatibilitet",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Detta kommer att blockera filnamn som inte är giltiga på Windows-system, som att använda reserverade namn eller specialtecken. Men detta kommer inte att framtvinga kompatibiliteten för skiftlägeskänslighet.",
"File Management" : "Filhantering",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Ogiltigt filnamn.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Bytte namn på \"{oldName}\" till \"{newName}\"",
"Rename file" : "Byt namn på fil",
+ "Folder" : "Mapp",
+ "Unknown file type" : "Okänd filtyp",
+ "{ext} image" : "{ext} bild",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} ljud",
+ "{ext} text" : "{ext} text",
"Pending" : "Väntar",
"Unknown date" : "Okänt datum",
"Clear filter" : "Rensa filter",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Sammanfattning antal rader",
"Toggle selection for all files and folders" : "Växla markering för alla filer och mappar",
"Name" : "Namn",
+ "File type" : "Filtyp",
"Size" : "Storlek",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" misslyckades med vissa element",
"\"{displayName}\" batch action executed successfully" : "Batchåtgärden \"{displayName}\" har utförts",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Kolumnrubriker med knappar är sorterbara.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Denna lista är inte helt återgiven av prestandaskäl. Filerna kommer att renderas när du navigerar genom listan.",
"File not found" : "Filen kunde inte hittas",
- "{count} selected" : "{count} valda",
+ "_{count} selected_::_{count} selected_" : ["{count} vald","{count} valda"],
"{usedQuotaByte} used" : "{usedQuotaByte} använt",
"{used} of {quota} used" : "{used} av {quota} använt",
"{relative}% used" : "{relative}% använt",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Sortera favoriter först",
"Sort folders before files" : "Sortera mappar före filer",
"Show hidden files" : "Visa dolda filer",
+ "Show file type column" : "Visa kolumn för filtyp",
"Crop image previews" : "Beskär förhandsgranskningar för bilder",
"Enable the grid view" : "Aktivera rutnätsvy",
"Enable folder tree" : "Aktivera mappträd",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Visa dessa genvägar",
"You" : "Du",
"Shared multiple times with different people" : "Delad flera gånger med olika personer",
+ "Unable to change the favorite state of the file" : "Kan inte ändra filens favoritstatus",
"Error while loading the file data" : "Fel vid inläsning av fildata",
"Owner" : "Ägare",
"Remove from favorites" : "Ta bort från favoriter",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Du är på väg att ta bort {count} objekt","Du är på väg att ta bort {count} objekt"],
"Confirm deletion" : "Bekräfta radering",
"Cancel" : "Avbryt",
+ "Download" : "Hämta",
"Moving \"{source}\" to \"{destination}\" …" : "Flyttar \"{source}\" till \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopierar \"{source}\" till \"{destination}\" …",
+ "Destination is not a folder" : "Destinationen är inte en mapp",
+ "This file/folder is already in that directory" : "Den här filen/mappen finns redan i den katalogen",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan inte flytta en fil/mapp till sig själv eller till en undermapp till sig själv",
"(copy)" : "(kopia)",
"(copy %n)" : "(kopia %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Flytta eller kopiera avbröts",
"Open folder {displayName}" : "Öppna mappen {displayName}",
"Open in Files" : "Öppna i Filer",
+ "Open locally" : "Öppna lokalt",
+ "Failed to redirect to client" : "Det gick inte att omdirigera till klienten",
"Open file locally" : "Öppna filen lokalt",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Filen bör nu öppnas på din enhet. Om den inte gör det, kontrollera att du har installerat skrivbordsappen.",
"Retry and close" : "Försök igen och stäng",
"Open online" : "Öppna online",
- "Failed to redirect to client" : "Det gick inte att omdirigera till klienten",
- "Open locally" : "Öppna lokalt",
"Rename" : "Byt namn",
"Open details" : "Öppna detaljer",
"View in folder" : "Utforska i mapp",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "Filerna flyttade",
"Conflicts resolution skipped" : "Konfliktlösning hoppades över",
"Upload cancelled" : "Uppladdning avbruten",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kunde inte byta namn på \"{oldName}\", den finns inte längre",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{newName}\" används redan i mappen \"{dir}\". Välj ett annat namn.",
+ "Could not rename \"{oldName}\"" : "Kunde inte byta namn på \"{oldName}\"",
"This operation is forbidden" : "Denna operation är förbjuden",
"This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören",
"Storage is temporarily not available" : "Lagring är tillfälligt inte tillgänglig",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "För stor uppladdning",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern.",
"File could not be found" : "Fil kunde inte hittas",
- "Download" : "Hämta",
"Show list view" : "Visa listvy",
"Show grid view" : "Visa rutnätsvy",
"Close" : "Stäng",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Kopierade {origin} till {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopierade {origin} och {nbfiles} andra filer i {destination}",
"{newName} already exists" : "{newName} existerar redan",
- "Could not rename \"{fileName}\", it does not exist any more" : "Kunde inte döpa om \"{fileName}\", filen existerar inte mer",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Välj ett annat namn.",
- "Could not rename \"{fileName}\"" : "Kan inte döpa om \"{fileName}\"",
"Could not create file \"{file}\"" : "Kunde inte skapa fil \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Kunde inte skapa fil \"{file}\" därför att den redan existerar",
"Could not create folder \"{dir}\" because it already exists" : "Kunde inte skapa \"{dir}\" därför att den redan existerar",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Direktlänk kopierades (fungerar endast för användare som har tillgång till denna fil/mapp)",
"Path" : "Sökväg",
"_%n byte_::_%n bytes_" : ["%n bytes","%n bytes"],
- "Favorited" : "Favoriserad",
+ "Favored" : "Favoriserad",
+ "Favor" : "Favorisera",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopiera direktlänk (fungerar endast för användare som har åtkomst till denna fil/mapp)",
"Upload file" : "Ladda upp fil",
- "Not favorited" : "Inte favoriserade",
+ "Not favored" : "Inte favoriserad",
"An error occurred while trying to update the tags" : "Fel vid uppdatering av taggarna",
- "You don't have permission to upload or create files here." : "Du har inte behörighet att ladda upp eller skapa filer här.",
- "Storage informations" : "Lagringsinformation",
- "Choose file" : "Välj fil",
- "Go to the previous folder" : "Gå till föregående mapp",
- "Open the files app settings" : "Öppna filappens inställningar",
- "Unable to change the favourite state of the file" : "Kan inte ändra filens favoritstatus",
- "Edit file locally" : "Redigera filen lokalt",
- "Edit online" : "Redigera online",
- "Create new templates folder" : "Skapa ny mallmapp",
+ "Upload (max. %s)" : "Ladda upp (högst %s)",
+ "Submitting fields…" : "Skickar fält...",
+ "Filter filenames…" : "Filtrera filnamn...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mapp","{folderCount} mappar"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil och {folderCount} mapp","1 fil och {folderCount} mappar"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fil och 1 mapp","{fileCount} filer och 1 mapp"],
"{fileCount} files and {folderCount} folders" : "{fileCount} filer och {folderCount} mappar",
- "List of favorites files and folders." : "Lista över favoritfiler och mappar.",
"Personal Files" : "Personliga filer",
"Text file" : "Textfil",
"New text file.txt" : "Ny textfil.txt",
- "Favored" : "Favoriserad",
- "Favor" : "Favorisera",
- "Not favored" : "Inte favoriserad",
- "Submitting fields…" : "Skickar fält...",
- "Filter filenames…" : "Filtrera filnamn...",
- "{count} files could not be converted" : "{count} filer kunde inte konverteras",
- "{count} files successfully converted" : "{count} filer har konverterats"
+ "%1$s (renamed)" : "%1$s (omdöpt)",
+ "renamed file" : "omdöpt fil",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "När Windows-kompatibla filnamn har aktiverats kan befintliga filer inte längre ändras, men de kan byta namn till giltiga nya namn av sin ägare."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 1be129fa66c..3944641dad5 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -52,7 +52,6 @@
"Favorite files" : "Favoritfiler",
"No favorites" : "Inga favoriter",
"More favorites" : "Fler favoriter",
- "Upload (max. %s)" : "Ladda upp (högst %s)",
"Accept" : "Acceptera",
"Reject" : "Avvisa",
"Incoming ownership transfer from {user}" : "Inkommande ägaröverföring från {user}",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Överförd från %1$s på %2$s",
"Files compatibility" : "Filkompatibilitet",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Tillåt att begränsa filnamn för att säkerställa att filer kan synkroniseras med alla klienter. Som standard är alla filnamn som är giltiga på POSIX (t.ex. Linux eller macOS) tillåtna.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "När Windows-kompatibla filnamn har aktiverats kan befintliga filer inte längre ändras, men de kan byta namn till giltiga nya namn av sin ägare.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Det är också möjligt att migrera filer automatiskt efter att den här inställningen har aktiverats. Se dokumentationen om kommandot occ för mer information.",
"Enforce Windows compatibility" : "Tvinga Windows-kompatibilitet",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Detta kommer att blockera filnamn som inte är giltiga på Windows-system, som att använda reserverade namn eller specialtecken. Men detta kommer inte att framtvinga kompatibiliteten för skiftlägeskänslighet.",
"File Management" : "Filhantering",
@@ -93,6 +94,12 @@
"Invalid filename." : "Ogiltigt filnamn.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Bytte namn på \"{oldName}\" till \"{newName}\"",
"Rename file" : "Byt namn på fil",
+ "Folder" : "Mapp",
+ "Unknown file type" : "Okänd filtyp",
+ "{ext} image" : "{ext} bild",
+ "{ext} video" : "{ext} video",
+ "{ext} audio" : "{ext} ljud",
+ "{ext} text" : "{ext} text",
"Pending" : "Väntar",
"Unknown date" : "Okänt datum",
"Clear filter" : "Rensa filter",
@@ -103,6 +110,7 @@
"Total rows summary" : "Sammanfattning antal rader",
"Toggle selection for all files and folders" : "Växla markering för alla filer och mappar",
"Name" : "Namn",
+ "File type" : "Filtyp",
"Size" : "Storlek",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" misslyckades med vissa element",
"\"{displayName}\" batch action executed successfully" : "Batchåtgärden \"{displayName}\" har utförts",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Kolumnrubriker med knappar är sorterbara.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Denna lista är inte helt återgiven av prestandaskäl. Filerna kommer att renderas när du navigerar genom listan.",
"File not found" : "Filen kunde inte hittas",
- "{count} selected" : "{count} valda",
+ "_{count} selected_::_{count} selected_" : ["{count} vald","{count} valda"],
"{usedQuotaByte} used" : "{usedQuotaByte} använt",
"{used} of {quota} used" : "{used} av {quota} använt",
"{relative}% used" : "{relative}% använt",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Sortera favoriter först",
"Sort folders before files" : "Sortera mappar före filer",
"Show hidden files" : "Visa dolda filer",
+ "Show file type column" : "Visa kolumn för filtyp",
"Crop image previews" : "Beskär förhandsgranskningar för bilder",
"Enable the grid view" : "Aktivera rutnätsvy",
"Enable folder tree" : "Aktivera mappträd",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "Visa dessa genvägar",
"You" : "Du",
"Shared multiple times with different people" : "Delad flera gånger med olika personer",
+ "Unable to change the favorite state of the file" : "Kan inte ändra filens favoritstatus",
"Error while loading the file data" : "Fel vid inläsning av fildata",
"Owner" : "Ägare",
"Remove from favorites" : "Ta bort från favoriter",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Du är på väg att ta bort {count} objekt","Du är på väg att ta bort {count} objekt"],
"Confirm deletion" : "Bekräfta radering",
"Cancel" : "Avbryt",
+ "Download" : "Hämta",
"Moving \"{source}\" to \"{destination}\" …" : "Flyttar \"{source}\" till \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Kopierar \"{source}\" till \"{destination}\" …",
+ "Destination is not a folder" : "Destinationen är inte en mapp",
+ "This file/folder is already in that directory" : "Den här filen/mappen finns redan i den katalogen",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Du kan inte flytta en fil/mapp till sig själv eller till en undermapp till sig själv",
"(copy)" : "(kopia)",
"(copy %n)" : "(kopia %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Flytta eller kopiera avbröts",
"Open folder {displayName}" : "Öppna mappen {displayName}",
"Open in Files" : "Öppna i Filer",
+ "Open locally" : "Öppna lokalt",
+ "Failed to redirect to client" : "Det gick inte att omdirigera till klienten",
"Open file locally" : "Öppna filen lokalt",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Filen bör nu öppnas på din enhet. Om den inte gör det, kontrollera att du har installerat skrivbordsappen.",
"Retry and close" : "Försök igen och stäng",
"Open online" : "Öppna online",
- "Failed to redirect to client" : "Det gick inte att omdirigera till klienten",
- "Open locally" : "Öppna lokalt",
"Rename" : "Byt namn",
"Open details" : "Öppna detaljer",
"View in folder" : "Utforska i mapp",
@@ -320,6 +333,9 @@
"Files moved successfully" : "Filerna flyttade",
"Conflicts resolution skipped" : "Konfliktlösning hoppades över",
"Upload cancelled" : "Uppladdning avbruten",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Kunde inte byta namn på \"{oldName}\", den finns inte längre",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{newName}\" används redan i mappen \"{dir}\". Välj ett annat namn.",
+ "Could not rename \"{oldName}\"" : "Kunde inte byta namn på \"{oldName}\"",
"This operation is forbidden" : "Denna operation är förbjuden",
"This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören",
"Storage is temporarily not available" : "Lagring är tillfälligt inte tillgänglig",
@@ -351,7 +367,6 @@
"Upload too large" : "För stor uppladdning",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filerna du försöker ladda upp överstiger den maximala storleken för filöverföringar på servern.",
"File could not be found" : "Fil kunde inte hittas",
- "Download" : "Hämta",
"Show list view" : "Visa listvy",
"Show grid view" : "Visa rutnätsvy",
"Close" : "Stäng",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "Kopierade {origin} till {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopierade {origin} och {nbfiles} andra filer i {destination}",
"{newName} already exists" : "{newName} existerar redan",
- "Could not rename \"{fileName}\", it does not exist any more" : "Kunde inte döpa om \"{fileName}\", filen existerar inte mer",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Välj ett annat namn.",
- "Could not rename \"{fileName}\"" : "Kan inte döpa om \"{fileName}\"",
"Could not create file \"{file}\"" : "Kunde inte skapa fil \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Kunde inte skapa fil \"{file}\" därför att den redan existerar",
"Could not create folder \"{dir}\" because it already exists" : "Kunde inte skapa \"{dir}\" därför att den redan existerar",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Direktlänk kopierades (fungerar endast för användare som har tillgång till denna fil/mapp)",
"Path" : "Sökväg",
"_%n byte_::_%n bytes_" : ["%n bytes","%n bytes"],
- "Favorited" : "Favoriserad",
+ "Favored" : "Favoriserad",
+ "Favor" : "Favorisera",
"Copy direct link (only works for people who have access to this file/folder)" : "Kopiera direktlänk (fungerar endast för användare som har åtkomst till denna fil/mapp)",
"Upload file" : "Ladda upp fil",
- "Not favorited" : "Inte favoriserade",
+ "Not favored" : "Inte favoriserad",
"An error occurred while trying to update the tags" : "Fel vid uppdatering av taggarna",
- "You don't have permission to upload or create files here." : "Du har inte behörighet att ladda upp eller skapa filer här.",
- "Storage informations" : "Lagringsinformation",
- "Choose file" : "Välj fil",
- "Go to the previous folder" : "Gå till föregående mapp",
- "Open the files app settings" : "Öppna filappens inställningar",
- "Unable to change the favourite state of the file" : "Kan inte ändra filens favoritstatus",
- "Edit file locally" : "Redigera filen lokalt",
- "Edit online" : "Redigera online",
- "Create new templates folder" : "Skapa ny mallmapp",
+ "Upload (max. %s)" : "Ladda upp (högst %s)",
+ "Submitting fields…" : "Skickar fält...",
+ "Filter filenames…" : "Filtrera filnamn...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} mapp","{folderCount} mappar"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} fil","{fileCount} filer"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 fil och {folderCount} mapp","1 fil och {folderCount} mappar"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} fil och 1 mapp","{fileCount} filer och 1 mapp"],
"{fileCount} files and {folderCount} folders" : "{fileCount} filer och {folderCount} mappar",
- "List of favorites files and folders." : "Lista över favoritfiler och mappar.",
"Personal Files" : "Personliga filer",
"Text file" : "Textfil",
"New text file.txt" : "Ny textfil.txt",
- "Favored" : "Favoriserad",
- "Favor" : "Favorisera",
- "Not favored" : "Inte favoriserad",
- "Submitting fields…" : "Skickar fält...",
- "Filter filenames…" : "Filtrera filnamn...",
- "{count} files could not be converted" : "{count} filer kunde inte konverteras",
- "{count} files successfully converted" : "{count} filer har konverterats"
+ "%1$s (renamed)" : "%1$s (omdöpt)",
+ "renamed file" : "omdöpt fil",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "När Windows-kompatibla filnamn har aktiverats kan befintliga filer inte längre ändras, men de kan byta namn till giltiga nya namn av sin ägare."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sw.js b/apps/files/l10n/sw.js
new file mode 100644
index 00000000000..35a699ffb61
--- /dev/null
+++ b/apps/files/l10n/sw.js
@@ -0,0 +1,460 @@
+OC.L10N.register(
+ "files",
+ {
+ "Added to favorites" : "Imeongezwa kwa vipendwa",
+ "Removed from favorites" : "Imeondolewa kutoka vipendwa",
+ "You added {file} to your favorites" : "Umeongeza {file}kwa vipendwa vyako",
+ "You removed {file} from your favorites" : "Umeondoa {file}kwenye vipendwa vyako",
+ "Favorites" : "Vinavyopendwa",
+ "File changes" : "Mabadiliko ya faili",
+ "Created by {user}" : "Imetengenezwa na {user}",
+ "Changed by {user}" : "Imebadilishwa na {user}",
+ "Deleted by {user}" : "Imefutwa na {user}",
+ "Restored by {user}" : "Imehifadhiwa na {user}",
+ "Renamed by {user}" : "Imepewa jina upya na {user}",
+ "Moved by {user}" : "Imesogezwa na {user}",
+ "\"remote account\"" : "\"akaunti ya mbali\"",
+ "You created {file}" : "Umetengeneza {file}",
+ "You created an encrypted file in {file}" : "Umeunda faili iliyosimbwa kwa njia fiche katika {file}",
+ "{user} created {file}" : "{user} ameunda {file}",
+ "{user} created an encrypted file in {file}" : "{user}ameunda faili iliyosimbwa kwa njia fiche katika {file}",
+ "{file} was created in a public folder" : "{file}ilitengenezwa katika kisanduku cha umma",
+ "You changed {file}" : "Umebadilisha {file}",
+ "You changed an encrypted file in {file}" : "Umebadilisha faili iliyosimbwa kwa njia fiche katika {file}",
+ "{user} changed {file}" : "{user} amebadili {file}",
+ "{user} changed an encrypted file in {file}" : "{user}amebadili faili iliyosimbwa kwa njia fiche katika {file}",
+ "You deleted {file}" : "Umefuta {file}",
+ "You deleted an encrypted file in {file}" : "Umefuta faili iliyosimbwa kwa njia fiche katika {file}",
+ "{user} deleted {file}" : "{user} amefuta {file}",
+ "{user} deleted an encrypted file in {file}" : "{user} amefuta faili iliyosimbwa kwa njia fiche katika {file}",
+ "You restored {file}" : "Umehifadhi upya {file}",
+ "{user} restored {file}" : "{user} amehifadhi upya {file}",
+ "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Umeita jina upya {oldfile}(iliyofichwa)kwenda {newfile} (iliyofichwa)",
+ "You renamed {oldfile} (hidden) to {newfile}" : "Umeita jina upya {oldfile}(iliyofichwa)kwenda{newfile}",
+ "You renamed {oldfile} to {newfile} (hidden)" : "Umeita jina upya {oldfile}kwenda{newfile}(iliyofichwa)",
+ "You renamed {oldfile} to {newfile}" : "Umeita jina upya {oldfile}hadi{newfile}",
+ "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user}ameita jina upya{oldfile}(iliyofichwa) hadi {newfile} (iliyofichwa)",
+ "{user} renamed {oldfile} (hidden) to {newfile}" : "{user}ameita jina upya{oldfile}(iliyofichwa) hadi{newfile}",
+ "{user} renamed {oldfile} to {newfile} (hidden)" : "{user}ameita jina upya{oldfile}hadi{newfile}(iliyofichwa)",
+ "{user} renamed {oldfile} to {newfile}" : "{user}ameita jina upya {oldfile}hadi{newfile}",
+ "You moved {oldfile} to {newfile}" : "Umeondoa {oldfile}hadi{newfile}",
+ "{user} moved {oldfile} to {newfile}" : "{user}amesogeza {oldfile}hadi{newfile}",
+ "A file has been added to or removed from your <strong>favorites</strong>" : "Faili limeongezwa kwenye au limeondolewa kutoka <strong>vipendwa</strong>",
+ "Files" : "Mafaili",
+ "A file or folder has been <strong>changed</strong>" : "Faili au kisanduku kime<strong>badilishwa</strong>",
+ "A favorite file or folder has been <strong>changed</strong>" : "Faili pendwa au kisanduku kime<strong>badilishwa</strong>",
+ "Failed to authorize" : "Imeshindwa kuidhinisha",
+ "Invalid folder path" : "Njia ya kisanduku si halali",
+ "Folder not found" : "Kisanduku hakipatikani",
+ "The file cannot be found" : "Faili haliwezi kupatikana",
+ "The destination path does not exist: %1$s" : "Njia lengwa haipo %1$s",
+ "You do not have permission to create a file at the specified location" : "Huna ruhusa kuunda faili katika eneo lililobainishwa",
+ "The file could not be converted." : "Faili halikuweza kubadilishwa",
+ "Could not get relative path to converted file" : "Haikuweza kupata njia sawia ya faili lililobadilishwa",
+ "Favorite files" : "Faili pendwa",
+ "No favorites" : "Hakuna vipendwa",
+ "More favorites" : "Vipendwa zaidi",
+ "Accept" : "Kubali",
+ "Reject" : "Kataa",
+ "Incoming ownership transfer from {user}" : "Uhamisho wa umiliki unaoingia kutoka {user}",
+ "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Je unataka kukubali {path}?\n\nKubmbuka: Mchakato wa uhamisho baada ya kukubali unaweza kuchukua mpaka saa 1",
+ "Ownership transfer denied" : "Uhamisho wa umiliki umekataliwa",
+ "Your ownership transfer of {path} was denied by {user}." : "Uhamisho wa umiliki wako wa {path}umekataliwa na {user}",
+ "Ownership transfer failed" : "Uhamisho wa umiliki umeshindikana",
+ "Your ownership transfer of {path} to {user} failed." : "Uhamisho wa umiliki wako wa {path}kwenda {user}umeshindikana",
+ "The ownership transfer of {path} from {user} failed." : "Uhamisho wa umiliki wa {path}kutoka {user}umeshindikana",
+ "Ownership transfer done" : "Uhamisho wa umiliki umefanyika",
+ "Your ownership transfer of {path} to {user} has completed." : "Uhamisho wako wa umiliki wa {path}kwenda {user}umekamilika",
+ "The ownership transfer of {path} from {user} has completed." : "Uhamisho wa umiliki wa {path}kutoka{user}umekamilika",
+ "in %s" : "Katika %s",
+ "Transferred from %1$s on %2$s" : "Imehamishwa kutoka %1$skatika%2$s",
+ "Files compatibility" : "Utengamano wa faili",
+ "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ruhusu kuzuia majina ya faili ili kuhakikisha kuwa faili zinaweza kusawazishwa na wateja wote. Kwa chaguo-msingi, majina yote ya faili ni halali katika POSIX (e.g. Linux or macOS) zinaruhusiwa.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Baada ya kuruhusu majina ya faili yanayooana na Windows, faili zilizopo haziwezi kubadilishwa tena lakini zinaweza kubadilishwa kuwa majina mapya halali na mmiliki wao.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Pia inawezekana kuhamisha faili kiotomatiki baada ya kuwezesha mpangilio huu, tafadhali rejelea hati kuhusu amri ya occ.",
+ "Enforce Windows compatibility" : "Tekeleza utangamano wa windows",
+ "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Hii itazuia majina ya faili ambayo si halali kwenye mifumo ya Windows, kama vile kutumia majina yaliyohifadhiwa au herufi maalum. Lakini hii haitatekeleza utangamano wa unyeti wa kesi.",
+ "File Management" : "Usimamizi wa faili",
+ "Home" : "Nyumbani",
+ "Target folder does not exist any more" : "Kisanduku kilicholengwa hakipo tena",
+ "Reload current directory" : "Pakia upya kitabu cha orodha ya sasa",
+ "Go to the \"{dir}\" directory" : "Nenda kwenye {dir}kitabu cha orodha",
+ "Current directory path" : "Njia ya kitabu cha orodha ya sasa",
+ "Your have used your space quota and cannot upload files anymore" : "Umetumia nafasi yako kwa upendeleo na huwezi kupakia faili zaidi",
+ "You do not have permission to upload or create files here." : "Huna ruhusa kupakia au kutengeneza faili hapa",
+ "Drag and drop files here to upload" : "Sogeza na udondoshe faili hapa ili upakie",
+ "Favorite" : "Kipendwa",
+ "Back" : "Rudi",
+ "Toggle selection for file \"{displayName}\"" : "Geuza uteuzi wa faili \"{displayName}\"",
+ "Toggle selection for folder \"{displayName}\"" : "Geuza uteuzi wa kisanduku \"{displayName}\"",
+ "File is loading" : "Faili inapakia",
+ "Folder is loading" : "Kisanduku kinapakia",
+ "Filename" : "Jina la faili",
+ "Folder name" : "Jina la kisanduku",
+ "This node is unavailable" : "Nodi hii haipatikani",
+ "Another entry with the same name already exists." : "Ingizo lingine lenye jina sawasawa lipo tayari",
+ "Invalid filename." : "Majina ya faili si sahihi",
+ "Renamed \"{oldName}\" to \"{newName}\"" : "Imebadili jina \"{oldName}\" mpaka \"{newName}\"",
+ "Rename file" : "Badili jina la faili",
+ "Folder" : "Kisanduku",
+ "Unknown file type" : "Aina ya faili isiyojulikana",
+ "{ext} image" : "{ext}picha",
+ "{ext} video" : "{ext}picha mjongeo",
+ "{ext} audio" : "{ext}sauti",
+ "{ext} text" : "{ext}maandishi",
+ "Pending" : "Inasubiri",
+ "Unknown date" : "Tarehe isiyojulikana",
+ "Clear filter" : "Futa kichujio",
+ "Modified" : "Iliyoboreshwa",
+ "Type" : "Aina",
+ "Active filters" : "Vichujio vinavyotumika",
+ "Remove filter" : "Ondoa kichujio",
+ "Total rows summary" : "Muhtasari wa jumla ya safu mlalo",
+ "Toggle selection for all files and folders" : "Geuza uteuzi wa faili na visanduku vyote",
+ "Name" : "Jina",
+ "File type" : "Aina ya faili",
+ "Size" : "Ukubwa",
+ "\"{displayName}\" failed on some elements" : "\"{displayName} imeshindwa katika vipengele kadhaa",
+ "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" kitendo cha kundi kimetekelezwa kwa mafanikio",
+ "\"{displayName}\" action failed" : "\"{displayName}\" matendo yameshindwa",
+ "Actions" : "Utendekaji",
+ "(selected)" : "(iliyochaguliwa)",
+ "List of files and folders." : "Orodha ya faili na visanduku",
+ "You have used your space quota and cannot upload files anymore." : "Umetumia mgao wako wa nafasi na huwezi kupakia faili tena.",
+ "Column headers with buttons are sortable." : "Vichwa vya safu wima vilivyo na vifungo vinaweza kupangwa.\n ",
+ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Orodha hii haijatolewa kikamilifu kwa sababu za utendaji. Faili zitatolewa unapopitia orodha.",
+ "File not found" : "Faili halipatikani",
+ "_{count} selected_::_{count} selected_" : ["{count} selected","{count} iliyochaguliwa"],
+ "{usedQuotaByte} used" : "{usedQuotaByte}imetumika",
+ "{used} of {quota} used" : "{used} ya {quota}imetumika",
+ "{relative}% used" : "{relative}% imetumika",
+ "Could not refresh storage stats" : "Haikuweza kuonesha upya takwimu za hifadhi",
+ "Your storage is full, files can not be updated or synced anymore!" : "Hifadhi yako imejaa, faili haziwezi kusasishwa au kusawazishwa tena!\n ",
+ "Storage information" : "Taarifa za uhifadhi",
+ "Storage quota" : "Kiasi cha uhifadhi",
+ "New folder" : "Kisanduku kipya",
+ "Create new folder" : "Tengeneza kisanduku kipya",
+ "This name is already in use." : "Jina hili liko katika matumizi tayari",
+ "Create" : "Tengeneza",
+ "Fill template fields" : "Jaza sehemu za violezo",
+ "Submitting fields …" : "Inawasilisha violezo",
+ "Submit" : "Wasilisha",
+ "Choose a file or folder to transfer" : "Chagua faili au kisanduku cha kuhamisha",
+ "Transfer" : "Hamisha",
+ "Transfer {path} to {userid}" : "Hamisha {path}mpaka {userid}",
+ "Invalid path selected" : "Njia iliyochaguliwa si halali",
+ "Unknown error" : "Hitilafu isiyojulikana",
+ "Ownership transfer request sent" : "Ombi la uhamisho wa umiliki limetumwa",
+ "Cannot transfer ownership of a file or folder you do not own" : "Haiwezi kuhamisha umiliki wa faili au kisanduku usichomiliki",
+ "Transfer ownership of a file or folder" : "Hamisha umiliki wa faili au kisanduku",
+ "Choose file or folder to transfer" : "Chagua faili au kisanduku cha kuhamisha",
+ "Change" : "Badili",
+ "New owner" : "Mmiliki mpya",
+ "Keep {old}" : "Weka {old}",
+ "Keep without extension" : "Weka bila ongezeko",
+ "Use {new}" : "Tumia {new}",
+ "Remove extension" : "Ondoa ongezeko",
+ "Change file extension" : "Badili ongezeko la faili",
+ "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "Kubadilisha kiendelezi cha faili kutoka \"{{old}}\" hadi \"{new}\" kunaweza kufanya faili isisomeke.",
+ "Removing the file extension \"{old}\" may render the file unreadable." : "Kuondoa kiendelezi cha faili \"{old}\" kunaweza kufanya faili isisomeke.",
+ "Adding the file extension \"{new}\" may render the file unreadable." : "Kuongeza kiendelezi cha faili \"{new}\" kunaweza kufanya faili isisomeke.",
+ "Do not show this dialog again." : "Usioneshe mazungumzo haya tena",
+ "Select file or folder to link to" : "Chagua faili au kisanduku cha kuunga kwa",
+ "Choose {file}" : "Chagua {file}",
+ "Share" : "Shirikisha",
+ "Shared by link" : "Imeshirikishwa na kiungio",
+ "Shared" : "Shirikisha",
+ "Switch to list view" : "Badili hadi mwonekano wa orodha",
+ "Switch to grid view" : "Badili hadi mwonekano wa gridi",
+ "The file could not be found" : "Faili halikupatikana",
+ "Upload was cancelled by user" : "Upakiaji ulisitishwa na mtumiaji",
+ "Not enough free space" : "Hakuna eneo huru la kutosha",
+ "Operation is blocked by access control" : "Uendeshaji umezuiwa na udhibiti wa ufikiaji",
+ "Error during upload: {message}" : "Hitilafu wakati wa kupakia: {message}",
+ "Error during upload, status code {status}" : "Hitilafu wakati wa kupakia, msimbo wa hali {status}",
+ "Unknown error during upload" : "Hitilafu isiyojulikana wakati wa kupakia",
+ "\"{displayName}\" action executed successfully" : "\"{displayName}\" kitendo kimetekelezwa kwa mafanikio",
+ "Loading current folder" : "Inapakia faili ya sasa",
+ "Retry" : "Jaribu tene",
+ "No files in here" : "Hakuna faili hapa",
+ "Upload some content or sync with your devices!" : "Pakia baadhi ya maudhui au usawazishe na vifaa vyako!",
+ "Go back" : "Rudi nyuma",
+ "Filter file names …" : "Chuja majina ya faili...",
+ "Views" : "Mionekano",
+ "Files settings" : "Mipangilio ya faili",
+ "Your files" : "Mafaili yako",
+ "Open in files" : "Fungua ndani ya faili",
+ "File cannot be accessed" : "Faili haliwezi kufikika",
+ "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Faili haikupatikana au huna ruhusa ya kuitazama. Uliza mtumaji kuishirikisha.",
+ "Clipboard is not available" : "Ubao wa kunakili haupatikani",
+ "WebDAV URL copied to clipboard" : "WavutiDAV URL umenakiliwa kwenye ubao wa kunakili",
+ "Sort favorites first" : "Chagua za upendeleo kwanza",
+ "Sort folders before files" : "Chagua vikasha kabla ya mafaili",
+ "Show hidden files" : "Onesha mafaili yaliyofichwa",
+ "Show file type column" : "Onyesha safu wima ya aina ya faili\n ",
+ "Crop image previews" : "Punguza onyesho la kukagua picha",
+ "Enable the grid view" : "Wezesha mwonekano wa gridi",
+ "Enable folder tree" : "Wezesha faili la tatu",
+ "Additional settings" : "Mipangilio ya nyongeza",
+ "WebDAV" : "WavutiDAV",
+ "WebDAV URL" : "WavutiDAV URL",
+ "Copy to clipboard" : "Nakili kwenye ubao wa kunakili",
+ "Use this address to access your Files via WebDAV" : "Tumia anwani hii kufikia Faili zako kupitia WavutiDAV",
+ "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Ikiwa umewasha 2FA, lazima uunde na utumie nenosiri jipya la programu kwa kubofya hapa",
+ "Warnings" : "Maonyo",
+ "Prevent warning dialogs from open or reenable them." : "Zuia mazungumzo ya onyo yasifunguliwe au uwashe upya.\n ",
+ "Show a warning dialog when changing a file extension." : "Onyesha mazungumzo ya onyo unapobadilisha kiendelezi cha faili.",
+ "Keyboard shortcuts" : "Mikato ya keyboard",
+ "Speed up your Files experience with these quick shortcuts." : "Ongeza kasi ya utumiaji wa Faili zako kwa njia hizi za mkato za haraka.",
+ "Open the actions menu for a file" : "Fungua menyu ya vitendo kwa faili",
+ "Rename a file" : "Ita faili jina jipya",
+ "Delete a file" : "Futa faili",
+ "Favorite or remove a file from favorites" : "Pendwa au ondoa faili kutoka pendwa",
+ "Manage tags for a file" : "simamia maoni kwa faili",
+ "Selection" : "Machaguo",
+ "Select all files" : "Chagua faili zote",
+ "Deselect all files" : "Usichague faili zote",
+ "Select or deselect a file" : "Chagua au usichague faili",
+ "Select a range of files" : "Chagua anuwai ya faili",
+ "Navigation" : "Uendeshaji",
+ "Navigate to the parent folder" : "Nenda kwenye kisanduku kikuu",
+ "Navigate to the file above" : "Sogea kwenye faili la juu",
+ "Navigate to the file below" : "Sogea kwenye faili la chini",
+ "Navigate to the file on the left (in grid mode)" : "Sogea kwenye faili la kushoto (in grid mode)",
+ "Navigate to the file on the right (in grid mode)" : "Sogea kwenye faili la kulia ( in grid mode)",
+ "View" : "Angalia",
+ "Toggle the grid view" : "Geuza mwonekano wa gridi\n ",
+ "Open the sidebar for a file" : "Fungua utepe kwa faili",
+ "Show those shortcuts" : "Onesha mikato hiyo",
+ "You" : "Wewe",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
+ "Error while loading the file data" : "Hitilafu wakati wa kupakia data za faili",
+ "Owner" : "Mmiliki",
+ "Remove from favorites" : "Ondoa kutoka katika pendwa",
+ "Add to favorites" : "Ongeza kwenye pendwa",
+ "Tags" : "Maoni",
+ "Blank" : "Mabano",
+ "Unable to create new file from template" : "Imeshindwa kutengeneza faili jipya kutoka kwenye sampuli/kiolezo",
+ "Pick a template for {name}" : "Chagua sampuli/kiolezo kwa {name}",
+ "Create a new file with the selected template" : "Tengeneza faili jipya na kiolezo/sampuli iliyochaguliwa",
+ "Creating file" : "Inatengeneza faili",
+ "Save as {displayName}" : "Hifadhi kama {displayName}",
+ "Save as …" : "Hifadhi kama",
+ "Converting files …" : "Inageuza mafaili",
+ "Failed to convert files: {message}" : "Imeshindwa kugeuza faili {message}",
+ "All files failed to be converted" : "Faili zote zimeshindwa kugeuzwa",
+ "One file could not be converted: {message}" : "Faili moja isingeweza kugeuzwa {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["One file could not be converted","%n faili zisingeweza kugeuzwa"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["One file successfully converted","%n faili zimegeuzwa kikamilifu"],
+ "Files successfully converted" : "Faili zimegeuzwa kikamilifu",
+ "Failed to convert files" : "Imeshindwa kugeuza faili",
+ "Converting file …" : "Inageuza faili",
+ "File successfully converted" : "Faili imegeuzwa kikamilifu",
+ "Failed to convert file: {message}" : "Imeshindwa kugeuza faili {message}",
+ "Failed to convert file" : "Imeshindwa kugeuza faili",
+ "Deletion cancelled" : "Ufutaji umesitishwa",
+ "Leave this share" : "Ondoa ushirikishaji huu",
+ "Leave these shares" : "Ondoa shiriki hizi",
+ "Disconnect storage" : "Achanisha uhifadhi",
+ "Disconnect storages" : "Achanisha hifadhi",
+ "Delete permanently" : "Futa moja kwa moja",
+ "Delete and unshare" : "Futa na usishirikishe",
+ "Delete file" : "Futa faili",
+ "Delete files" : "Futa faili",
+ "Delete folder" : "Futa kisanduku",
+ "Delete folders" : "Futa visanduku",
+ "Delete" : "Futa",
+ "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["You are about to permanently delete {count} item","Unakaribia kufuta vipengee {count}kabisa"],
+ "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["You are about to delete {count} item","Unakaribia kufuta vipengee{count}"],
+ "Confirm deletion" : "Thibitisha ufutaji",
+ "Cancel" : "Sitisha",
+ "Download" : "Pakua",
+ "Moving \"{source}\" to \"{destination}\" …" : "Sogeza \"{source}\" mpaka \"{destination}\"",
+ "Copying \"{source}\" to \"{destination}\" …" : "Inanakili \"{source}\" hadi \"{destination}\" ...",
+ "You cannot move a file/folder onto itself or into a subfolder of itself" : "Huwezi kuhamisha faili/folda kwenye yenyewe au kwenye folda yenyewe",
+ "(copy)" : "(nakili)",
+ "(copy %n)" : "(nakili %n)",
+ "Move cancelled" : "Uhamishaji umeghairishwa",
+ "A file or folder with that name already exists in this folder" : "Faili au kisanduku chenye jina hilo tayari kipo katika kisanduku hiki",
+ "The files are locked" : "Faili zimezuiliwa",
+ "The file does not exist anymore" : "Faili halipo tena",
+ "Choose destination" : "Chagua eneo lengwa",
+ "Copy to {target}" : "Nakili kwenda {target}",
+ "Copy" : "Nakili",
+ "Move to {target}" : "Hamishia {target}",
+ "Move" : "Hamisha",
+ "Move or copy operation failed" : "Operesheni ya kuhamisha au kunakili imeshindikana",
+ "Move or copy" : "Hamisha au nakili",
+ "Cancelled move or copy of \"{filename}\"." : "Imesitisha uhamishaji au unakili wa \"{filename}\"",
+ "Cancelled move or copy operation" : "Imesitisha operesheni ya uhamishaji au unakili",
+ "Open folder {displayName}" : "Fungua kisanduku {displayName}",
+ "Open in Files" : "Fungua ndani ya faili",
+ "Open locally" : "Fungua kikawaida",
+ "Failed to redirect to client" : "Imeshindwa kuielekeza kwa mteja",
+ "Open file locally" : "Fungua faili kikawaida",
+ "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Sasa faili inapaswa kufunguliwa kwenye kifaa chako. Ikiwa sivyo, tafadhali hakikisha kuwa umesakinisha programu ya eneo-kazi.",
+ "Retry and close" : "Jaribu upya kisha funga",
+ "Open online" : "Fungua mtandaoni",
+ "Rename" : "Ipe jina jipya",
+ "Open details" : "Fungua maelezo",
+ "View in folder" : "Angalia ndani ya kisanduku",
+ "Today" : "Leo",
+ "Last 7 days" : "Siku 7 zilizopita",
+ "Last 30 days" : "Siku 30 zilizopita",
+ "This year ({year})" : "Mwaka huu {year}",
+ "Last year ({year})" : "Mwaka uliopita {year}",
+ "Documents" : "Nyaraka",
+ "Spreadsheets" : "Lahajedwali",
+ "Presentations" : "Uwasilishaji",
+ "PDFs" : "PDFs",
+ "Folders" : "Visanduku",
+ "Audio" : "Sauti",
+ "Photos and images" : "Picha na taswira",
+ "Videos" : "Picha mjongeo",
+ "New folder creation cancelled" : "Utengenezaji wa kisanduku kipya umesitishwa",
+ "Created new folder \"{name}\"" : "Imetengeneza kisanduku kipya \"{name}\"",
+ "Unable to initialize the templates directory" : "Haikuweza kuanzisha saraka ya violezo",
+ "Create templates folder" : "Imetengeneza kisanduku cha violezo",
+ "Templates" : "Violezo",
+ "New template folder" : "Kisanduku kipya cha violezo",
+ "In folder" : "Ndani ya kisanduku",
+ "Search in folder: {folder}" : "Tafuta katika kisanduku {folder}",
+ "One of the dropped files could not be processed" : "Moja ya faili zilizodondoshwa isingeweza kuchakatwa",
+ "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Kivinjari chako hakitumii API ya mfumo wa faili. Orodha hazitapakiwa\n ",
+ "No files to upload" : "Hakuna faili la kupakia",
+ "Unable to create the directory {directory}" : "Haiwezi kutengeneza orodha {directory}",
+ "Some files could not be uploaded" : "Faili kadhaa zisingeweza kupakiwa",
+ "Files uploaded successfully" : "Faili zimepakiwa kikamilifu",
+ "No files to process" : "Hakuna faili la kuchakata",
+ "Some files could not be copied" : "Faili baadhi zisingeweza kunakiliwa",
+ "Some files could not be moved" : "Faili baadhi zisingeweza kuhamishwa",
+ "Files copied successfully" : "Faili limenakiliwa kikamilifu",
+ "Files moved successfully" : "Faili limeondolewa kikamilifu",
+ "Conflicts resolution skipped" : "Utatuzi wa migogoro ulirukwa",
+ "Upload cancelled" : "Upakiaji umesitishwa",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Haikuweza kuita jina jipya \"{oldName}\", halipo tena",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Jina \"{newName}\" tayari linatumika katika kisanduku \"{dir}\". Tafadhali chagua jina tofauti",
+ "Could not rename \"{oldName}\"" : "Haikuweza kuita jina jipya \"{oldName}\"",
+ "This operation is forbidden" : "Opereshini hii imezuiwa",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Orodha haipatikani, tafadhali angalia uingiaji au wasiliana na msimamizi",
+ "Storage is temporarily not available" : "Uhifadhi haupo kwa muda",
+ "Unexpected error: {error}" : "Hitilafu isiyotarajiwa {error}",
+ "_%n file_::_%n files_" : ["%n file","%n faili"],
+ "_%n folder_::_%n folders_" : ["%n folder","%n visanduku/vikasha"],
+ "_%n hidden_::_%n hidden_" : ["%n hidden","%n imefichwa"],
+ "Filename must not be empty." : "Jina la faili halipaswi kuwa tupu",
+ "\"{char}\" is not allowed inside a filename." : "\"{char}\" hairuhusiwi ndani ya jina la faili",
+ "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" ni jina la akiba na haliruhusiwi kwa majina ya faili",
+ "\"{extension}\" is not an allowed filetype." : "\"{extension}\" si aina ya faili inayoruhusiwa",
+ "Filenames must not end with \"{extension}\"." : "Majina ya faili hayapaswi kuishia na \"{extension}\"",
+ "List of favorite files and folders." : "Orodha ya faili na visanduku vinanyopendwa",
+ "No favorites yet" : "Bado hakuna vinavyopendwa",
+ "Files and folders you mark as favorite will show up here" : "Faili na visunduku ulivyoweka alama kama vipendwa vitaonekana hapa",
+ "All files" : "Faili zote",
+ "List of your files and folders." : "Orodha ya faili na vikasha vyako",
+ "All folders" : "Vikasha vyote",
+ "Personal files" : "Faili binafsi",
+ "List of your files and folders that are not shared." : "Orodha ya faili na vikasha ambavyo havijashirikishwa",
+ "No personal files found" : "Hakuna faili binafsi zilizopatikana",
+ "Files that are not shared will show up here." : "Faili ambazo hazija shirikishwa zitaonekana hapa",
+ "Recent" : "Hivi karibuni",
+ "List of recently modified files and folders." : "Orodha ya faili na vikasha vilivyoboreshwa hivi karibuni",
+ "No recently modified files" : "Hakuna faili zilizoboreshwa hivi karibuni",
+ "Files and folders you recently modified will show up here." : "Faili na vikasha ulivyoboresha hivi karibuni vitaonekana hapa",
+ "No entries found in this folder" : "Hakuna maingizo yaliyopatikana katika kasha hili",
+ "Select all" : "Chagua zote",
+ "Upload too large" : "Upakiaji mkubwa mno",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Faili unazojaribu kupakia zinazidi ukubwa wa juu zaidi wa upakiaji wa faili kwenye seva hii.",
+ "File could not be found" : "Faili isingeweza kupatikana",
+ "Show list view" : "Onesha mwonekeno wa orodha",
+ "Show grid view" : "Onesha mwonekano wa mstariramani",
+ "Close" : "Funga",
+ "Could not create folder \"{dir}\"" : "Isingeweza kutengeneza kasha \"{dir}\"",
+ "This will stop your current uploads." : "Hii itasimamisha ukakiaji wako wa sasa",
+ "Upload cancelled." : "Upakiaji umesitishwa ",
+ "Processing files …" : "Faili zinazochakatwa",
+ "…" : "...",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "Haiwezi kupakia {filename} kama ilivyo orodha au ina baiti 0",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Hakuna nafasi ya kutosha, unapakia {size1} lakini imesalia {size2} pekee",
+ "Target folder \"{dir}\" does not exist any more" : "Kasha lengwa \"{dir}\" halipatikani tena",
+ "An unknown error has occurred" : "Hitilafu isiyojulikana imetokea",
+ "File could not be uploaded" : "Faili isingeweza kupakia",
+ "Uploading …" : "Inapakia",
+ "{remainingTime} ({currentNumber}/{total})" : "{remainingTime}({currentNumber}/{total})",
+ "Uploading … ({currentNumber}/{total})" : "Inapakia... ({currentNumber}/{total})",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} ya {totalSize} ({bitrate})",
+ "Uploading that item is not supported" : "Upakiaji wa kipengele hicho hauwezeshwi",
+ "Error when assembling chunks, status code {status}" : "Hitilafu wakakti wa kukusanya vipande, nambari ya hali {status}",
+ "Choose target folder" : "Chagua kasha lililolengwa",
+ "Set reminder" : "Weka ukumbusho",
+ "Edit locally" : "Hariri kikawaida",
+ "Open" : "Fungua",
+ "Could not load info for file \"{file}\"" : "Isingeweza kupakia taarifa kwa faili \"{file}\"",
+ "Details" : "Maelezo ya kina",
+ "Please select tag(s) to add to the selection" : "Tafadhali chagua lebo za kuongeza kwenye uteuzi",
+ "Apply tag(s) to selection" : "Omba lebo kwenye uteuzi",
+ "Select directory \"{dirName}\"" : "Teua orodha \"{dirName}\"",
+ "Select file \"{fileName}\"" : "Teua faili \"{fileName}\"",
+ "Unable to determine date" : "Haiwezi kuamua tarehe",
+ "Could not move \"{file}\", target exists" : "Haikuweza kuhamisha \"{file}\" lengo lililopo",
+ "Could not move \"{file}\"" : "Haiwezi kuhamisha \"{file}\"",
+ "copy" : "Nakili",
+ "Could not copy \"{file}\", target exists" : "Haiwezi kunakili \"{file}\" lengo lililopo",
+ "Could not copy \"{file}\"" : "Haikuweza kunakili {file}",
+ "Copied {origin} inside {destination}" : "Imenakili {origin} ndani ya {destination}",
+ "Copied {origin} and {nbfiles} other files inside {destination}" : "Imenakili {origin} na {nbfiles} faili zingine ndani ya {destination}",
+ "{newName} already exists" : "{newName} lipo tayari",
+ "Could not create file \"{file}\"" : "Haikuweza kutengeneza faili \"{file}\"",
+ "Could not create file \"{file}\" because it already exists" : "Haikuweza kuteengeneza faili \"{file}\" kwa sababu lipo tayari",
+ "Could not create folder \"{dir}\" because it already exists" : "Haikuweza kutengeneza kisanduku \"{dir}\" kwa sababu kipo tayari",
+ "Could not fetch file details \"{file}\"" : "Haikuleta maelezo ya faili \"{file}\"",
+ "Error deleting file \"{fileName}\"." : "Hitilafu kufuta faili \"{fileName}\"",
+ "No search results in other folders for {tag}{filter}{endtag}" : "Hakuna matokeo ya utafutaji ndani ya masanduku mengine {tag}{filter}{endtag}",
+ "Enter more than two characters to search in other folders" : "Ingiza wahusika zaidi ya wawili kutafuta ndani ya masanduku mengine",
+ "{dirs} and {files}" : "{dirs} na {files}",
+ "_including %n hidden_::_including %n hidden_" : ["including %n hidden","inajumuisha %n iliyofichwa"],
+ "You do not have permission to upload or create files here" : "Huna ruhusa ya kupakia au kutengeneza faili hapa",
+ "_Uploading %n file_::_Uploading %n files_" : ["Uploading %n file","Inapakia faili %n"],
+ "New" : "Mpya",
+ "New file/folder menu" : "Faili mpya/ menyu ya kisanduku",
+ "Select file range" : "Chagua safu ya faili",
+ "{used}%" : "{used} %",
+ "{used} used" : "{used}imetumika",
+ "\"{name}\" is an invalid file name." : "\"{name}\" ni jina la faili lisilo halali",
+ "File name cannot be empty." : "Jina la faili haliwezi kawa tupu",
+ "\"/\" is not allowed inside a file name." : "\"/\" hairuhusiwi ndani ya jina la faili",
+ "\"{name}\" is not an allowed filetype" : "\"{name}\" si aina ya faili iliyoruhusiwa",
+ "Storage of {owner} is full, files cannot be updated or synced anymore!" : "Uhifadhi wa {owner} umejaa, faili haziwezi kusasishwa au kusawazishwa zaidi",
+ "Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Kundi la vikasha \"{mountPoint}\" limejaa, faili haziwezi kusasishwa au kusawazishwa zaidi",
+ "External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Uhifadhi wa nje \"{mountPoint}\" umejaa, faili haziwezi kusasishwa au kusawazishwa zaidi",
+ "Your storage is full, files cannot be updated or synced anymore!" : "Uhifadhi wako umejaa, faili haziwezi kusasishwa au kusawazishwa zaidi",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)." : "Uhafidhi wa {owner} unakaribia kujaa ({usedSpacePercent}%)",
+ "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Kundi la vikasha \"{mountPoint}linakaribia kujaa ({usedSpacePercent}%)",
+ "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Uhifadhi wa nje \"{mountPoint}\" unakaribia kujaa ({usedSpacePercent}%)",
+ "Your storage is almost full ({usedSpacePercent}%)." : "Uhafadhi wako unakaribia kujaa ({usedSpacePercent}%).",
+ "_matches \"{filter}\"_::_match \"{filter}\"_" : ["matches \"{filter}\"","linganisha \"{filter}\""],
+ "Direct link was copied (only works for people who have access to this file/folder)" : "Kiungo cha moja kwa moja kilinakiliwa (hufanya kazi tu kwa watu wanaoweza kufikia faili/kikasha hiki)",
+ "Path" : "Njia",
+ "_%n byte_::_%n bytes_" : ["%n byte","%n baiti"],
+ "Favored" : "Imependelewa",
+ "Favor" : "Upendeleo",
+ "Copy direct link (only works for people who have access to this file/folder)" : "Nakili kiungo cha moja kwa moja (inafanya kazi tu kwa watu wanaoweza kufikia faili/folda hii)",
+ "Upload file" : "Pakia faili",
+ "Not favored" : "Haikupendwa",
+ "An error occurred while trying to update the tags" : "Hitilafu imetokea wakati ikijaribu kusasisha lebo",
+ "Upload (max. %s)" : "Pakia (kiwango cha juu. %s)",
+ "Submitting fields…" : "Inawasilisha migunda",
+ "Filter filenames…" : "Chuja majina ya faili",
+ "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","Visandiku {folderCount} "],
+ "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","Faili {fileCount} "],
+ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","Faili 1 na {folderCount} makasha"],
+ "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file and 1 folder","{fileCount} faili na kasha 1"],
+ "{fileCount} files and {folderCount} folders" : "{fileCount} faili na {folderCount}makasha",
+ "Personal Files" : "Faili binafsi",
+ "Text file" : "Faili ya maandishi",
+ "New text file.txt" : "Faili mpya ya maandishi.txt",
+ "%1$s (renamed)" : "%1$s (iliyopew jina jipya)",
+ "renamed file" : "Faili iliyopewa jina jipya",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Baada ya kuwezesha majina ya windows ya faili yanayooana, faili zilizopo haziwezi kurekebishwa tena lakini zinaweza kubadilishwa kuwa majina mapya halali na mmiliki wao."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sw.json b/apps/files/l10n/sw.json
new file mode 100644
index 00000000000..25b74f3019f
--- /dev/null
+++ b/apps/files/l10n/sw.json
@@ -0,0 +1,458 @@
+{ "translations": {
+ "Added to favorites" : "Imeongezwa kwa vipendwa",
+ "Removed from favorites" : "Imeondolewa kutoka vipendwa",
+ "You added {file} to your favorites" : "Umeongeza {file}kwa vipendwa vyako",
+ "You removed {file} from your favorites" : "Umeondoa {file}kwenye vipendwa vyako",
+ "Favorites" : "Vinavyopendwa",
+ "File changes" : "Mabadiliko ya faili",
+ "Created by {user}" : "Imetengenezwa na {user}",
+ "Changed by {user}" : "Imebadilishwa na {user}",
+ "Deleted by {user}" : "Imefutwa na {user}",
+ "Restored by {user}" : "Imehifadhiwa na {user}",
+ "Renamed by {user}" : "Imepewa jina upya na {user}",
+ "Moved by {user}" : "Imesogezwa na {user}",
+ "\"remote account\"" : "\"akaunti ya mbali\"",
+ "You created {file}" : "Umetengeneza {file}",
+ "You created an encrypted file in {file}" : "Umeunda faili iliyosimbwa kwa njia fiche katika {file}",
+ "{user} created {file}" : "{user} ameunda {file}",
+ "{user} created an encrypted file in {file}" : "{user}ameunda faili iliyosimbwa kwa njia fiche katika {file}",
+ "{file} was created in a public folder" : "{file}ilitengenezwa katika kisanduku cha umma",
+ "You changed {file}" : "Umebadilisha {file}",
+ "You changed an encrypted file in {file}" : "Umebadilisha faili iliyosimbwa kwa njia fiche katika {file}",
+ "{user} changed {file}" : "{user} amebadili {file}",
+ "{user} changed an encrypted file in {file}" : "{user}amebadili faili iliyosimbwa kwa njia fiche katika {file}",
+ "You deleted {file}" : "Umefuta {file}",
+ "You deleted an encrypted file in {file}" : "Umefuta faili iliyosimbwa kwa njia fiche katika {file}",
+ "{user} deleted {file}" : "{user} amefuta {file}",
+ "{user} deleted an encrypted file in {file}" : "{user} amefuta faili iliyosimbwa kwa njia fiche katika {file}",
+ "You restored {file}" : "Umehifadhi upya {file}",
+ "{user} restored {file}" : "{user} amehifadhi upya {file}",
+ "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Umeita jina upya {oldfile}(iliyofichwa)kwenda {newfile} (iliyofichwa)",
+ "You renamed {oldfile} (hidden) to {newfile}" : "Umeita jina upya {oldfile}(iliyofichwa)kwenda{newfile}",
+ "You renamed {oldfile} to {newfile} (hidden)" : "Umeita jina upya {oldfile}kwenda{newfile}(iliyofichwa)",
+ "You renamed {oldfile} to {newfile}" : "Umeita jina upya {oldfile}hadi{newfile}",
+ "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user}ameita jina upya{oldfile}(iliyofichwa) hadi {newfile} (iliyofichwa)",
+ "{user} renamed {oldfile} (hidden) to {newfile}" : "{user}ameita jina upya{oldfile}(iliyofichwa) hadi{newfile}",
+ "{user} renamed {oldfile} to {newfile} (hidden)" : "{user}ameita jina upya{oldfile}hadi{newfile}(iliyofichwa)",
+ "{user} renamed {oldfile} to {newfile}" : "{user}ameita jina upya {oldfile}hadi{newfile}",
+ "You moved {oldfile} to {newfile}" : "Umeondoa {oldfile}hadi{newfile}",
+ "{user} moved {oldfile} to {newfile}" : "{user}amesogeza {oldfile}hadi{newfile}",
+ "A file has been added to or removed from your <strong>favorites</strong>" : "Faili limeongezwa kwenye au limeondolewa kutoka <strong>vipendwa</strong>",
+ "Files" : "Mafaili",
+ "A file or folder has been <strong>changed</strong>" : "Faili au kisanduku kime<strong>badilishwa</strong>",
+ "A favorite file or folder has been <strong>changed</strong>" : "Faili pendwa au kisanduku kime<strong>badilishwa</strong>",
+ "Failed to authorize" : "Imeshindwa kuidhinisha",
+ "Invalid folder path" : "Njia ya kisanduku si halali",
+ "Folder not found" : "Kisanduku hakipatikani",
+ "The file cannot be found" : "Faili haliwezi kupatikana",
+ "The destination path does not exist: %1$s" : "Njia lengwa haipo %1$s",
+ "You do not have permission to create a file at the specified location" : "Huna ruhusa kuunda faili katika eneo lililobainishwa",
+ "The file could not be converted." : "Faili halikuweza kubadilishwa",
+ "Could not get relative path to converted file" : "Haikuweza kupata njia sawia ya faili lililobadilishwa",
+ "Favorite files" : "Faili pendwa",
+ "No favorites" : "Hakuna vipendwa",
+ "More favorites" : "Vipendwa zaidi",
+ "Accept" : "Kubali",
+ "Reject" : "Kataa",
+ "Incoming ownership transfer from {user}" : "Uhamisho wa umiliki unaoingia kutoka {user}",
+ "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Je unataka kukubali {path}?\n\nKubmbuka: Mchakato wa uhamisho baada ya kukubali unaweza kuchukua mpaka saa 1",
+ "Ownership transfer denied" : "Uhamisho wa umiliki umekataliwa",
+ "Your ownership transfer of {path} was denied by {user}." : "Uhamisho wa umiliki wako wa {path}umekataliwa na {user}",
+ "Ownership transfer failed" : "Uhamisho wa umiliki umeshindikana",
+ "Your ownership transfer of {path} to {user} failed." : "Uhamisho wa umiliki wako wa {path}kwenda {user}umeshindikana",
+ "The ownership transfer of {path} from {user} failed." : "Uhamisho wa umiliki wa {path}kutoka {user}umeshindikana",
+ "Ownership transfer done" : "Uhamisho wa umiliki umefanyika",
+ "Your ownership transfer of {path} to {user} has completed." : "Uhamisho wako wa umiliki wa {path}kwenda {user}umekamilika",
+ "The ownership transfer of {path} from {user} has completed." : "Uhamisho wa umiliki wa {path}kutoka{user}umekamilika",
+ "in %s" : "Katika %s",
+ "Transferred from %1$s on %2$s" : "Imehamishwa kutoka %1$skatika%2$s",
+ "Files compatibility" : "Utengamano wa faili",
+ "Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Ruhusu kuzuia majina ya faili ili kuhakikisha kuwa faili zinaweza kusawazishwa na wateja wote. Kwa chaguo-msingi, majina yote ya faili ni halali katika POSIX (e.g. Linux or macOS) zinaruhusiwa.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Baada ya kuruhusu majina ya faili yanayooana na Windows, faili zilizopo haziwezi kubadilishwa tena lakini zinaweza kubadilishwa kuwa majina mapya halali na mmiliki wao.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Pia inawezekana kuhamisha faili kiotomatiki baada ya kuwezesha mpangilio huu, tafadhali rejelea hati kuhusu amri ya occ.",
+ "Enforce Windows compatibility" : "Tekeleza utangamano wa windows",
+ "This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Hii itazuia majina ya faili ambayo si halali kwenye mifumo ya Windows, kama vile kutumia majina yaliyohifadhiwa au herufi maalum. Lakini hii haitatekeleza utangamano wa unyeti wa kesi.",
+ "File Management" : "Usimamizi wa faili",
+ "Home" : "Nyumbani",
+ "Target folder does not exist any more" : "Kisanduku kilicholengwa hakipo tena",
+ "Reload current directory" : "Pakia upya kitabu cha orodha ya sasa",
+ "Go to the \"{dir}\" directory" : "Nenda kwenye {dir}kitabu cha orodha",
+ "Current directory path" : "Njia ya kitabu cha orodha ya sasa",
+ "Your have used your space quota and cannot upload files anymore" : "Umetumia nafasi yako kwa upendeleo na huwezi kupakia faili zaidi",
+ "You do not have permission to upload or create files here." : "Huna ruhusa kupakia au kutengeneza faili hapa",
+ "Drag and drop files here to upload" : "Sogeza na udondoshe faili hapa ili upakie",
+ "Favorite" : "Kipendwa",
+ "Back" : "Rudi",
+ "Toggle selection for file \"{displayName}\"" : "Geuza uteuzi wa faili \"{displayName}\"",
+ "Toggle selection for folder \"{displayName}\"" : "Geuza uteuzi wa kisanduku \"{displayName}\"",
+ "File is loading" : "Faili inapakia",
+ "Folder is loading" : "Kisanduku kinapakia",
+ "Filename" : "Jina la faili",
+ "Folder name" : "Jina la kisanduku",
+ "This node is unavailable" : "Nodi hii haipatikani",
+ "Another entry with the same name already exists." : "Ingizo lingine lenye jina sawasawa lipo tayari",
+ "Invalid filename." : "Majina ya faili si sahihi",
+ "Renamed \"{oldName}\" to \"{newName}\"" : "Imebadili jina \"{oldName}\" mpaka \"{newName}\"",
+ "Rename file" : "Badili jina la faili",
+ "Folder" : "Kisanduku",
+ "Unknown file type" : "Aina ya faili isiyojulikana",
+ "{ext} image" : "{ext}picha",
+ "{ext} video" : "{ext}picha mjongeo",
+ "{ext} audio" : "{ext}sauti",
+ "{ext} text" : "{ext}maandishi",
+ "Pending" : "Inasubiri",
+ "Unknown date" : "Tarehe isiyojulikana",
+ "Clear filter" : "Futa kichujio",
+ "Modified" : "Iliyoboreshwa",
+ "Type" : "Aina",
+ "Active filters" : "Vichujio vinavyotumika",
+ "Remove filter" : "Ondoa kichujio",
+ "Total rows summary" : "Muhtasari wa jumla ya safu mlalo",
+ "Toggle selection for all files and folders" : "Geuza uteuzi wa faili na visanduku vyote",
+ "Name" : "Jina",
+ "File type" : "Aina ya faili",
+ "Size" : "Ukubwa",
+ "\"{displayName}\" failed on some elements" : "\"{displayName} imeshindwa katika vipengele kadhaa",
+ "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" kitendo cha kundi kimetekelezwa kwa mafanikio",
+ "\"{displayName}\" action failed" : "\"{displayName}\" matendo yameshindwa",
+ "Actions" : "Utendekaji",
+ "(selected)" : "(iliyochaguliwa)",
+ "List of files and folders." : "Orodha ya faili na visanduku",
+ "You have used your space quota and cannot upload files anymore." : "Umetumia mgao wako wa nafasi na huwezi kupakia faili tena.",
+ "Column headers with buttons are sortable." : "Vichwa vya safu wima vilivyo na vifungo vinaweza kupangwa.\n ",
+ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Orodha hii haijatolewa kikamilifu kwa sababu za utendaji. Faili zitatolewa unapopitia orodha.",
+ "File not found" : "Faili halipatikani",
+ "_{count} selected_::_{count} selected_" : ["{count} selected","{count} iliyochaguliwa"],
+ "{usedQuotaByte} used" : "{usedQuotaByte}imetumika",
+ "{used} of {quota} used" : "{used} ya {quota}imetumika",
+ "{relative}% used" : "{relative}% imetumika",
+ "Could not refresh storage stats" : "Haikuweza kuonesha upya takwimu za hifadhi",
+ "Your storage is full, files can not be updated or synced anymore!" : "Hifadhi yako imejaa, faili haziwezi kusasishwa au kusawazishwa tena!\n ",
+ "Storage information" : "Taarifa za uhifadhi",
+ "Storage quota" : "Kiasi cha uhifadhi",
+ "New folder" : "Kisanduku kipya",
+ "Create new folder" : "Tengeneza kisanduku kipya",
+ "This name is already in use." : "Jina hili liko katika matumizi tayari",
+ "Create" : "Tengeneza",
+ "Fill template fields" : "Jaza sehemu za violezo",
+ "Submitting fields …" : "Inawasilisha violezo",
+ "Submit" : "Wasilisha",
+ "Choose a file or folder to transfer" : "Chagua faili au kisanduku cha kuhamisha",
+ "Transfer" : "Hamisha",
+ "Transfer {path} to {userid}" : "Hamisha {path}mpaka {userid}",
+ "Invalid path selected" : "Njia iliyochaguliwa si halali",
+ "Unknown error" : "Hitilafu isiyojulikana",
+ "Ownership transfer request sent" : "Ombi la uhamisho wa umiliki limetumwa",
+ "Cannot transfer ownership of a file or folder you do not own" : "Haiwezi kuhamisha umiliki wa faili au kisanduku usichomiliki",
+ "Transfer ownership of a file or folder" : "Hamisha umiliki wa faili au kisanduku",
+ "Choose file or folder to transfer" : "Chagua faili au kisanduku cha kuhamisha",
+ "Change" : "Badili",
+ "New owner" : "Mmiliki mpya",
+ "Keep {old}" : "Weka {old}",
+ "Keep without extension" : "Weka bila ongezeko",
+ "Use {new}" : "Tumia {new}",
+ "Remove extension" : "Ondoa ongezeko",
+ "Change file extension" : "Badili ongezeko la faili",
+ "Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable." : "Kubadilisha kiendelezi cha faili kutoka \"{{old}}\" hadi \"{new}\" kunaweza kufanya faili isisomeke.",
+ "Removing the file extension \"{old}\" may render the file unreadable." : "Kuondoa kiendelezi cha faili \"{old}\" kunaweza kufanya faili isisomeke.",
+ "Adding the file extension \"{new}\" may render the file unreadable." : "Kuongeza kiendelezi cha faili \"{new}\" kunaweza kufanya faili isisomeke.",
+ "Do not show this dialog again." : "Usioneshe mazungumzo haya tena",
+ "Select file or folder to link to" : "Chagua faili au kisanduku cha kuunga kwa",
+ "Choose {file}" : "Chagua {file}",
+ "Share" : "Shirikisha",
+ "Shared by link" : "Imeshirikishwa na kiungio",
+ "Shared" : "Shirikisha",
+ "Switch to list view" : "Badili hadi mwonekano wa orodha",
+ "Switch to grid view" : "Badili hadi mwonekano wa gridi",
+ "The file could not be found" : "Faili halikupatikana",
+ "Upload was cancelled by user" : "Upakiaji ulisitishwa na mtumiaji",
+ "Not enough free space" : "Hakuna eneo huru la kutosha",
+ "Operation is blocked by access control" : "Uendeshaji umezuiwa na udhibiti wa ufikiaji",
+ "Error during upload: {message}" : "Hitilafu wakati wa kupakia: {message}",
+ "Error during upload, status code {status}" : "Hitilafu wakati wa kupakia, msimbo wa hali {status}",
+ "Unknown error during upload" : "Hitilafu isiyojulikana wakati wa kupakia",
+ "\"{displayName}\" action executed successfully" : "\"{displayName}\" kitendo kimetekelezwa kwa mafanikio",
+ "Loading current folder" : "Inapakia faili ya sasa",
+ "Retry" : "Jaribu tene",
+ "No files in here" : "Hakuna faili hapa",
+ "Upload some content or sync with your devices!" : "Pakia baadhi ya maudhui au usawazishe na vifaa vyako!",
+ "Go back" : "Rudi nyuma",
+ "Filter file names …" : "Chuja majina ya faili...",
+ "Views" : "Mionekano",
+ "Files settings" : "Mipangilio ya faili",
+ "Your files" : "Mafaili yako",
+ "Open in files" : "Fungua ndani ya faili",
+ "File cannot be accessed" : "Faili haliwezi kufikika",
+ "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Faili haikupatikana au huna ruhusa ya kuitazama. Uliza mtumaji kuishirikisha.",
+ "Clipboard is not available" : "Ubao wa kunakili haupatikani",
+ "WebDAV URL copied to clipboard" : "WavutiDAV URL umenakiliwa kwenye ubao wa kunakili",
+ "Sort favorites first" : "Chagua za upendeleo kwanza",
+ "Sort folders before files" : "Chagua vikasha kabla ya mafaili",
+ "Show hidden files" : "Onesha mafaili yaliyofichwa",
+ "Show file type column" : "Onyesha safu wima ya aina ya faili\n ",
+ "Crop image previews" : "Punguza onyesho la kukagua picha",
+ "Enable the grid view" : "Wezesha mwonekano wa gridi",
+ "Enable folder tree" : "Wezesha faili la tatu",
+ "Additional settings" : "Mipangilio ya nyongeza",
+ "WebDAV" : "WavutiDAV",
+ "WebDAV URL" : "WavutiDAV URL",
+ "Copy to clipboard" : "Nakili kwenye ubao wa kunakili",
+ "Use this address to access your Files via WebDAV" : "Tumia anwani hii kufikia Faili zako kupitia WavutiDAV",
+ "If you have enabled 2FA, you must create and use a new app password by clicking here." : "Ikiwa umewasha 2FA, lazima uunde na utumie nenosiri jipya la programu kwa kubofya hapa",
+ "Warnings" : "Maonyo",
+ "Prevent warning dialogs from open or reenable them." : "Zuia mazungumzo ya onyo yasifunguliwe au uwashe upya.\n ",
+ "Show a warning dialog when changing a file extension." : "Onyesha mazungumzo ya onyo unapobadilisha kiendelezi cha faili.",
+ "Keyboard shortcuts" : "Mikato ya keyboard",
+ "Speed up your Files experience with these quick shortcuts." : "Ongeza kasi ya utumiaji wa Faili zako kwa njia hizi za mkato za haraka.",
+ "Open the actions menu for a file" : "Fungua menyu ya vitendo kwa faili",
+ "Rename a file" : "Ita faili jina jipya",
+ "Delete a file" : "Futa faili",
+ "Favorite or remove a file from favorites" : "Pendwa au ondoa faili kutoka pendwa",
+ "Manage tags for a file" : "simamia maoni kwa faili",
+ "Selection" : "Machaguo",
+ "Select all files" : "Chagua faili zote",
+ "Deselect all files" : "Usichague faili zote",
+ "Select or deselect a file" : "Chagua au usichague faili",
+ "Select a range of files" : "Chagua anuwai ya faili",
+ "Navigation" : "Uendeshaji",
+ "Navigate to the parent folder" : "Nenda kwenye kisanduku kikuu",
+ "Navigate to the file above" : "Sogea kwenye faili la juu",
+ "Navigate to the file below" : "Sogea kwenye faili la chini",
+ "Navigate to the file on the left (in grid mode)" : "Sogea kwenye faili la kushoto (in grid mode)",
+ "Navigate to the file on the right (in grid mode)" : "Sogea kwenye faili la kulia ( in grid mode)",
+ "View" : "Angalia",
+ "Toggle the grid view" : "Geuza mwonekano wa gridi\n ",
+ "Open the sidebar for a file" : "Fungua utepe kwa faili",
+ "Show those shortcuts" : "Onesha mikato hiyo",
+ "You" : "Wewe",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
+ "Error while loading the file data" : "Hitilafu wakati wa kupakia data za faili",
+ "Owner" : "Mmiliki",
+ "Remove from favorites" : "Ondoa kutoka katika pendwa",
+ "Add to favorites" : "Ongeza kwenye pendwa",
+ "Tags" : "Maoni",
+ "Blank" : "Mabano",
+ "Unable to create new file from template" : "Imeshindwa kutengeneza faili jipya kutoka kwenye sampuli/kiolezo",
+ "Pick a template for {name}" : "Chagua sampuli/kiolezo kwa {name}",
+ "Create a new file with the selected template" : "Tengeneza faili jipya na kiolezo/sampuli iliyochaguliwa",
+ "Creating file" : "Inatengeneza faili",
+ "Save as {displayName}" : "Hifadhi kama {displayName}",
+ "Save as …" : "Hifadhi kama",
+ "Converting files …" : "Inageuza mafaili",
+ "Failed to convert files: {message}" : "Imeshindwa kugeuza faili {message}",
+ "All files failed to be converted" : "Faili zote zimeshindwa kugeuzwa",
+ "One file could not be converted: {message}" : "Faili moja isingeweza kugeuzwa {message}",
+ "_One file could not be converted_::_%n files could not be converted_" : ["One file could not be converted","%n faili zisingeweza kugeuzwa"],
+ "_One file successfully converted_::_%n files successfully converted_" : ["One file successfully converted","%n faili zimegeuzwa kikamilifu"],
+ "Files successfully converted" : "Faili zimegeuzwa kikamilifu",
+ "Failed to convert files" : "Imeshindwa kugeuza faili",
+ "Converting file …" : "Inageuza faili",
+ "File successfully converted" : "Faili imegeuzwa kikamilifu",
+ "Failed to convert file: {message}" : "Imeshindwa kugeuza faili {message}",
+ "Failed to convert file" : "Imeshindwa kugeuza faili",
+ "Deletion cancelled" : "Ufutaji umesitishwa",
+ "Leave this share" : "Ondoa ushirikishaji huu",
+ "Leave these shares" : "Ondoa shiriki hizi",
+ "Disconnect storage" : "Achanisha uhifadhi",
+ "Disconnect storages" : "Achanisha hifadhi",
+ "Delete permanently" : "Futa moja kwa moja",
+ "Delete and unshare" : "Futa na usishirikishe",
+ "Delete file" : "Futa faili",
+ "Delete files" : "Futa faili",
+ "Delete folder" : "Futa kisanduku",
+ "Delete folders" : "Futa visanduku",
+ "Delete" : "Futa",
+ "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["You are about to permanently delete {count} item","Unakaribia kufuta vipengee {count}kabisa"],
+ "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["You are about to delete {count} item","Unakaribia kufuta vipengee{count}"],
+ "Confirm deletion" : "Thibitisha ufutaji",
+ "Cancel" : "Sitisha",
+ "Download" : "Pakua",
+ "Moving \"{source}\" to \"{destination}\" …" : "Sogeza \"{source}\" mpaka \"{destination}\"",
+ "Copying \"{source}\" to \"{destination}\" …" : "Inanakili \"{source}\" hadi \"{destination}\" ...",
+ "You cannot move a file/folder onto itself or into a subfolder of itself" : "Huwezi kuhamisha faili/folda kwenye yenyewe au kwenye folda yenyewe",
+ "(copy)" : "(nakili)",
+ "(copy %n)" : "(nakili %n)",
+ "Move cancelled" : "Uhamishaji umeghairishwa",
+ "A file or folder with that name already exists in this folder" : "Faili au kisanduku chenye jina hilo tayari kipo katika kisanduku hiki",
+ "The files are locked" : "Faili zimezuiliwa",
+ "The file does not exist anymore" : "Faili halipo tena",
+ "Choose destination" : "Chagua eneo lengwa",
+ "Copy to {target}" : "Nakili kwenda {target}",
+ "Copy" : "Nakili",
+ "Move to {target}" : "Hamishia {target}",
+ "Move" : "Hamisha",
+ "Move or copy operation failed" : "Operesheni ya kuhamisha au kunakili imeshindikana",
+ "Move or copy" : "Hamisha au nakili",
+ "Cancelled move or copy of \"{filename}\"." : "Imesitisha uhamishaji au unakili wa \"{filename}\"",
+ "Cancelled move or copy operation" : "Imesitisha operesheni ya uhamishaji au unakili",
+ "Open folder {displayName}" : "Fungua kisanduku {displayName}",
+ "Open in Files" : "Fungua ndani ya faili",
+ "Open locally" : "Fungua kikawaida",
+ "Failed to redirect to client" : "Imeshindwa kuielekeza kwa mteja",
+ "Open file locally" : "Fungua faili kikawaida",
+ "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Sasa faili inapaswa kufunguliwa kwenye kifaa chako. Ikiwa sivyo, tafadhali hakikisha kuwa umesakinisha programu ya eneo-kazi.",
+ "Retry and close" : "Jaribu upya kisha funga",
+ "Open online" : "Fungua mtandaoni",
+ "Rename" : "Ipe jina jipya",
+ "Open details" : "Fungua maelezo",
+ "View in folder" : "Angalia ndani ya kisanduku",
+ "Today" : "Leo",
+ "Last 7 days" : "Siku 7 zilizopita",
+ "Last 30 days" : "Siku 30 zilizopita",
+ "This year ({year})" : "Mwaka huu {year}",
+ "Last year ({year})" : "Mwaka uliopita {year}",
+ "Documents" : "Nyaraka",
+ "Spreadsheets" : "Lahajedwali",
+ "Presentations" : "Uwasilishaji",
+ "PDFs" : "PDFs",
+ "Folders" : "Visanduku",
+ "Audio" : "Sauti",
+ "Photos and images" : "Picha na taswira",
+ "Videos" : "Picha mjongeo",
+ "New folder creation cancelled" : "Utengenezaji wa kisanduku kipya umesitishwa",
+ "Created new folder \"{name}\"" : "Imetengeneza kisanduku kipya \"{name}\"",
+ "Unable to initialize the templates directory" : "Haikuweza kuanzisha saraka ya violezo",
+ "Create templates folder" : "Imetengeneza kisanduku cha violezo",
+ "Templates" : "Violezo",
+ "New template folder" : "Kisanduku kipya cha violezo",
+ "In folder" : "Ndani ya kisanduku",
+ "Search in folder: {folder}" : "Tafuta katika kisanduku {folder}",
+ "One of the dropped files could not be processed" : "Moja ya faili zilizodondoshwa isingeweza kuchakatwa",
+ "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Kivinjari chako hakitumii API ya mfumo wa faili. Orodha hazitapakiwa\n ",
+ "No files to upload" : "Hakuna faili la kupakia",
+ "Unable to create the directory {directory}" : "Haiwezi kutengeneza orodha {directory}",
+ "Some files could not be uploaded" : "Faili kadhaa zisingeweza kupakiwa",
+ "Files uploaded successfully" : "Faili zimepakiwa kikamilifu",
+ "No files to process" : "Hakuna faili la kuchakata",
+ "Some files could not be copied" : "Faili baadhi zisingeweza kunakiliwa",
+ "Some files could not be moved" : "Faili baadhi zisingeweza kuhamishwa",
+ "Files copied successfully" : "Faili limenakiliwa kikamilifu",
+ "Files moved successfully" : "Faili limeondolewa kikamilifu",
+ "Conflicts resolution skipped" : "Utatuzi wa migogoro ulirukwa",
+ "Upload cancelled" : "Upakiaji umesitishwa",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Haikuweza kuita jina jipya \"{oldName}\", halipo tena",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Jina \"{newName}\" tayari linatumika katika kisanduku \"{dir}\". Tafadhali chagua jina tofauti",
+ "Could not rename \"{oldName}\"" : "Haikuweza kuita jina jipya \"{oldName}\"",
+ "This operation is forbidden" : "Opereshini hii imezuiwa",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Orodha haipatikani, tafadhali angalia uingiaji au wasiliana na msimamizi",
+ "Storage is temporarily not available" : "Uhifadhi haupo kwa muda",
+ "Unexpected error: {error}" : "Hitilafu isiyotarajiwa {error}",
+ "_%n file_::_%n files_" : ["%n file","%n faili"],
+ "_%n folder_::_%n folders_" : ["%n folder","%n visanduku/vikasha"],
+ "_%n hidden_::_%n hidden_" : ["%n hidden","%n imefichwa"],
+ "Filename must not be empty." : "Jina la faili halipaswi kuwa tupu",
+ "\"{char}\" is not allowed inside a filename." : "\"{char}\" hairuhusiwi ndani ya jina la faili",
+ "\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" ni jina la akiba na haliruhusiwi kwa majina ya faili",
+ "\"{extension}\" is not an allowed filetype." : "\"{extension}\" si aina ya faili inayoruhusiwa",
+ "Filenames must not end with \"{extension}\"." : "Majina ya faili hayapaswi kuishia na \"{extension}\"",
+ "List of favorite files and folders." : "Orodha ya faili na visanduku vinanyopendwa",
+ "No favorites yet" : "Bado hakuna vinavyopendwa",
+ "Files and folders you mark as favorite will show up here" : "Faili na visunduku ulivyoweka alama kama vipendwa vitaonekana hapa",
+ "All files" : "Faili zote",
+ "List of your files and folders." : "Orodha ya faili na vikasha vyako",
+ "All folders" : "Vikasha vyote",
+ "Personal files" : "Faili binafsi",
+ "List of your files and folders that are not shared." : "Orodha ya faili na vikasha ambavyo havijashirikishwa",
+ "No personal files found" : "Hakuna faili binafsi zilizopatikana",
+ "Files that are not shared will show up here." : "Faili ambazo hazija shirikishwa zitaonekana hapa",
+ "Recent" : "Hivi karibuni",
+ "List of recently modified files and folders." : "Orodha ya faili na vikasha vilivyoboreshwa hivi karibuni",
+ "No recently modified files" : "Hakuna faili zilizoboreshwa hivi karibuni",
+ "Files and folders you recently modified will show up here." : "Faili na vikasha ulivyoboresha hivi karibuni vitaonekana hapa",
+ "No entries found in this folder" : "Hakuna maingizo yaliyopatikana katika kasha hili",
+ "Select all" : "Chagua zote",
+ "Upload too large" : "Upakiaji mkubwa mno",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Faili unazojaribu kupakia zinazidi ukubwa wa juu zaidi wa upakiaji wa faili kwenye seva hii.",
+ "File could not be found" : "Faili isingeweza kupatikana",
+ "Show list view" : "Onesha mwonekeno wa orodha",
+ "Show grid view" : "Onesha mwonekano wa mstariramani",
+ "Close" : "Funga",
+ "Could not create folder \"{dir}\"" : "Isingeweza kutengeneza kasha \"{dir}\"",
+ "This will stop your current uploads." : "Hii itasimamisha ukakiaji wako wa sasa",
+ "Upload cancelled." : "Upakiaji umesitishwa ",
+ "Processing files …" : "Faili zinazochakatwa",
+ "…" : "...",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "Haiwezi kupakia {filename} kama ilivyo orodha au ina baiti 0",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Hakuna nafasi ya kutosha, unapakia {size1} lakini imesalia {size2} pekee",
+ "Target folder \"{dir}\" does not exist any more" : "Kasha lengwa \"{dir}\" halipatikani tena",
+ "An unknown error has occurred" : "Hitilafu isiyojulikana imetokea",
+ "File could not be uploaded" : "Faili isingeweza kupakia",
+ "Uploading …" : "Inapakia",
+ "{remainingTime} ({currentNumber}/{total})" : "{remainingTime}({currentNumber}/{total})",
+ "Uploading … ({currentNumber}/{total})" : "Inapakia... ({currentNumber}/{total})",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} ya {totalSize} ({bitrate})",
+ "Uploading that item is not supported" : "Upakiaji wa kipengele hicho hauwezeshwi",
+ "Error when assembling chunks, status code {status}" : "Hitilafu wakakti wa kukusanya vipande, nambari ya hali {status}",
+ "Choose target folder" : "Chagua kasha lililolengwa",
+ "Set reminder" : "Weka ukumbusho",
+ "Edit locally" : "Hariri kikawaida",
+ "Open" : "Fungua",
+ "Could not load info for file \"{file}\"" : "Isingeweza kupakia taarifa kwa faili \"{file}\"",
+ "Details" : "Maelezo ya kina",
+ "Please select tag(s) to add to the selection" : "Tafadhali chagua lebo za kuongeza kwenye uteuzi",
+ "Apply tag(s) to selection" : "Omba lebo kwenye uteuzi",
+ "Select directory \"{dirName}\"" : "Teua orodha \"{dirName}\"",
+ "Select file \"{fileName}\"" : "Teua faili \"{fileName}\"",
+ "Unable to determine date" : "Haiwezi kuamua tarehe",
+ "Could not move \"{file}\", target exists" : "Haikuweza kuhamisha \"{file}\" lengo lililopo",
+ "Could not move \"{file}\"" : "Haiwezi kuhamisha \"{file}\"",
+ "copy" : "Nakili",
+ "Could not copy \"{file}\", target exists" : "Haiwezi kunakili \"{file}\" lengo lililopo",
+ "Could not copy \"{file}\"" : "Haikuweza kunakili {file}",
+ "Copied {origin} inside {destination}" : "Imenakili {origin} ndani ya {destination}",
+ "Copied {origin} and {nbfiles} other files inside {destination}" : "Imenakili {origin} na {nbfiles} faili zingine ndani ya {destination}",
+ "{newName} already exists" : "{newName} lipo tayari",
+ "Could not create file \"{file}\"" : "Haikuweza kutengeneza faili \"{file}\"",
+ "Could not create file \"{file}\" because it already exists" : "Haikuweza kuteengeneza faili \"{file}\" kwa sababu lipo tayari",
+ "Could not create folder \"{dir}\" because it already exists" : "Haikuweza kutengeneza kisanduku \"{dir}\" kwa sababu kipo tayari",
+ "Could not fetch file details \"{file}\"" : "Haikuleta maelezo ya faili \"{file}\"",
+ "Error deleting file \"{fileName}\"." : "Hitilafu kufuta faili \"{fileName}\"",
+ "No search results in other folders for {tag}{filter}{endtag}" : "Hakuna matokeo ya utafutaji ndani ya masanduku mengine {tag}{filter}{endtag}",
+ "Enter more than two characters to search in other folders" : "Ingiza wahusika zaidi ya wawili kutafuta ndani ya masanduku mengine",
+ "{dirs} and {files}" : "{dirs} na {files}",
+ "_including %n hidden_::_including %n hidden_" : ["including %n hidden","inajumuisha %n iliyofichwa"],
+ "You do not have permission to upload or create files here" : "Huna ruhusa ya kupakia au kutengeneza faili hapa",
+ "_Uploading %n file_::_Uploading %n files_" : ["Uploading %n file","Inapakia faili %n"],
+ "New" : "Mpya",
+ "New file/folder menu" : "Faili mpya/ menyu ya kisanduku",
+ "Select file range" : "Chagua safu ya faili",
+ "{used}%" : "{used} %",
+ "{used} used" : "{used}imetumika",
+ "\"{name}\" is an invalid file name." : "\"{name}\" ni jina la faili lisilo halali",
+ "File name cannot be empty." : "Jina la faili haliwezi kawa tupu",
+ "\"/\" is not allowed inside a file name." : "\"/\" hairuhusiwi ndani ya jina la faili",
+ "\"{name}\" is not an allowed filetype" : "\"{name}\" si aina ya faili iliyoruhusiwa",
+ "Storage of {owner} is full, files cannot be updated or synced anymore!" : "Uhifadhi wa {owner} umejaa, faili haziwezi kusasishwa au kusawazishwa zaidi",
+ "Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Kundi la vikasha \"{mountPoint}\" limejaa, faili haziwezi kusasishwa au kusawazishwa zaidi",
+ "External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Uhifadhi wa nje \"{mountPoint}\" umejaa, faili haziwezi kusasishwa au kusawazishwa zaidi",
+ "Your storage is full, files cannot be updated or synced anymore!" : "Uhifadhi wako umejaa, faili haziwezi kusasishwa au kusawazishwa zaidi",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)." : "Uhafidhi wa {owner} unakaribia kujaa ({usedSpacePercent}%)",
+ "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Kundi la vikasha \"{mountPoint}linakaribia kujaa ({usedSpacePercent}%)",
+ "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Uhifadhi wa nje \"{mountPoint}\" unakaribia kujaa ({usedSpacePercent}%)",
+ "Your storage is almost full ({usedSpacePercent}%)." : "Uhafadhi wako unakaribia kujaa ({usedSpacePercent}%).",
+ "_matches \"{filter}\"_::_match \"{filter}\"_" : ["matches \"{filter}\"","linganisha \"{filter}\""],
+ "Direct link was copied (only works for people who have access to this file/folder)" : "Kiungo cha moja kwa moja kilinakiliwa (hufanya kazi tu kwa watu wanaoweza kufikia faili/kikasha hiki)",
+ "Path" : "Njia",
+ "_%n byte_::_%n bytes_" : ["%n byte","%n baiti"],
+ "Favored" : "Imependelewa",
+ "Favor" : "Upendeleo",
+ "Copy direct link (only works for people who have access to this file/folder)" : "Nakili kiungo cha moja kwa moja (inafanya kazi tu kwa watu wanaoweza kufikia faili/folda hii)",
+ "Upload file" : "Pakia faili",
+ "Not favored" : "Haikupendwa",
+ "An error occurred while trying to update the tags" : "Hitilafu imetokea wakati ikijaribu kusasisha lebo",
+ "Upload (max. %s)" : "Pakia (kiwango cha juu. %s)",
+ "Submitting fields…" : "Inawasilisha migunda",
+ "Filter filenames…" : "Chuja majina ya faili",
+ "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} folder","Visandiku {folderCount} "],
+ "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} file","Faili {fileCount} "],
+ "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 file and {folderCount} folder","Faili 1 na {folderCount} makasha"],
+ "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} file and 1 folder","{fileCount} faili na kasha 1"],
+ "{fileCount} files and {folderCount} folders" : "{fileCount} faili na {folderCount}makasha",
+ "Personal Files" : "Faili binafsi",
+ "Text file" : "Faili ya maandishi",
+ "New text file.txt" : "Faili mpya ya maandishi.txt",
+ "%1$s (renamed)" : "%1$s (iliyopew jina jipya)",
+ "renamed file" : "Faili iliyopewa jina jipya",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Baada ya kuwezesha majina ya windows ya faili yanayooana, faili zilizopo haziwezi kurekebishwa tena lakini zinaweza kubadilishwa kuwa majina mapya halali na mmiliki wao."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/files/l10n/sw_KE.js b/apps/files/l10n/sw_KE.js
deleted file mode 100644
index 7988332fa91..00000000000
--- a/apps/files/l10n/sw_KE.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sw_KE.json b/apps/files/l10n/sw_KE.json
deleted file mode 100644
index ef5fc586755..00000000000
--- a/apps/files/l10n/sw_KE.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/tg_TJ.js b/apps/files/l10n/tg_TJ.js
deleted file mode 100644
index 7988332fa91..00000000000
--- a/apps/files/l10n/tg_TJ.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/tg_TJ.json b/apps/files/l10n/tg_TJ.json
deleted file mode 100644
index ef5fc586755..00000000000
--- a/apps/files/l10n/tg_TJ.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/th.js b/apps/files/l10n/th.js
index b71698fcb09..320ce095c41 100644
--- a/apps/files/l10n/th.js
+++ b/apps/files/l10n/th.js
@@ -44,7 +44,6 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ที่มีการ<strong>เปลี่ยนแปลง</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ในรายการโปรดที่มีการ<strong>เปลี่ยนแปลง</strong>",
"No favorites" : "ยังไม่มีรายการโปรด",
- "Upload (max. %s)" : "อัปโหลด (สูงสุด %s)",
"Accept" : "ยอมรับ",
"Reject" : "ปฏิเสธ",
"Incoming ownership transfer from {user}" : "คำขอการโอนย้ายความเป็นเจ้าของจาก {user}",
@@ -62,6 +61,7 @@ OC.L10N.register(
"Favorite" : "รายการโปรด",
"Filename" : "ชื่อไฟล์",
"Folder name" : "ชื่อโฟลเดอร์",
+ "Folder" : "โฟลเดอร์",
"Pending" : "อยู่ระหว่างดำเนินการ",
"Modified" : "แก้ไขเมื่อ",
"Type" : "ประเภท",
@@ -69,6 +69,7 @@ OC.L10N.register(
"Size" : "ขนาด",
"Actions" : "การกระทำ",
"File not found" : "ไม่พบไฟล์",
+ "_{count} selected_::_{count} selected_" : ["เลือก {count} รายการ"],
"{usedQuotaByte} used" : "ใช้ไป {usedQuotaByte}",
"{used} of {quota} used" : "ใช้ไป {used} จาก {quota}",
"{relative}% used" : "ใช้ไป {relative}%",
@@ -127,6 +128,7 @@ OC.L10N.register(
"Delete folders" : "ลบโฟลเดอร์",
"Delete" : "ลบ",
"Cancel" : "ยกเลิก",
+ "Download" : "ดาวน์โหลด",
"Copy to {target}" : "คัดลอกไปยัง {target}",
"Copy" : "คัดลอก",
"Move to {target}" : "ย้ายไปยัง {target}",
@@ -144,6 +146,9 @@ OC.L10N.register(
"Unable to initialize the templates directory" : "ไม่สามารถเตรียมไดเรกทอรีเทมเพลต",
"Templates" : "เทมเพลต",
"Some files could not be moved" : "ไม่สามารถย้ายบางไฟล์",
+ "Could not rename \"{oldName}\", it does not exist any more" : "ไม่สามารถเปลี่ยนชื่อไฟล์ \"{oldName}\" ไฟล์นั้นไม่มีอยู่",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "ชื่อ \"{newName}\" มีอยู่แล้วในโฟลเดอร์ \"{dir}\" กรุณาเปลี่ยนชื่อใหม่",
+ "Could not rename \"{oldName}\"" : "ไม่สามารถเปลี่ยนชื่อไฟล์ \"{oldName}\"",
"This operation is forbidden" : "การดำเนินการนี้ถูกห้าม",
"This directory is unavailable, please check the logs or contact the administrator" : "ไม่สามารถใช้งานไดเรกทอรีนี้ โปรดตรวจสอบบันทึกหรือติดต่อผู้ดูแลระบบ",
"Storage is temporarily not available" : "พื้นที่จัดเก็บข้อมูลไม่สามารถใช้งานได้ชั่วคราว",
@@ -159,7 +164,6 @@ OC.L10N.register(
"Upload too large" : "ไฟล์ที่อัปโหลดมีขนาดใหญ่เกินไป",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "ไฟล์ที่คุณพยายามที่จะอัปโหลดมีขนาดเกินกว่าขนาดสูงสุดที่อัปโหลดได้สำหรับเซิร์ฟเวอร์นี้",
"File could not be found" : "ไม่พบไฟล์",
- "Download" : "ดาวน์โหลด",
"Show list view" : "แสดงมุมมองรายการ",
"Show grid view" : "แสดงมุมมองตาราง",
"Close" : "ปิด",
@@ -197,9 +201,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "คัดลอก {origin} ไว้ใน {destination} แล้ว",
"Copied {origin} and {nbfiles} other files inside {destination}" : "คัดลอก {origin} และ {nbfiles} ไฟล์อื่น ๆ ไว้ใน {destination} แล้ว",
"{newName} already exists" : "{newName} มีอยู่แล้ว",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "ไม่สามารถสร้างไฟล์ \"{file}\" เพราะมันมีอยู่แล้ว",
"Could not create folder \"{dir}\" because it already exists" : "ไม่สามารถสร้างโฟลเดอร์ \"{dir}\" เพราะมันมีอยู่แล้ว",
@@ -232,14 +233,10 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "คัดลอกลิงก์โดยตรงแล้ว (ใช้ได้เฉพาะผู้ใช้ที่มีสิทธิ์เข้าถึงไฟล์/โฟลเดอร์นี้)",
"Path" : "เส้นทาง",
"_%n byte_::_%n bytes_" : ["%n ไบต์"],
- "Favorited" : "เพิ่มในรายการโปรดแล้ว",
"Copy direct link (only works for people who have access to this file/folder)" : "คัดลอกลิงก์โดยตรง (ใช้ได้เฉพาะผู้ใช้ที่มีสิทธิ์เข้าถึงไฟล์/โฟลเดอร์นี้)",
"Upload file" : "อัปโหลดไฟล์",
- "Not favorited" : "ไม่ได้เป็นรายการโปรด",
"An error occurred while trying to update the tags" : "เกิดข้อผิดพลาดขณะกำลังพยายามอัปเดตแท็ก",
- "Storage informations" : "ข้อมูลพื้นที่จัดเก็บ",
- "Open the files app settings" : "เปิดการตั้งค่าแอปไฟล์",
- "Unable to change the favourite state of the file" : "ไม่สามารถเปลี่ยนสถานะรายการโปรดของไฟล์",
+ "Upload (max. %s)" : "อัปโหลด (สูงสุด %s)",
"Text file" : "ไฟล์ข้อความ",
"New text file.txt" : "ไฟล์ข้อความใหม่.txt"
},
diff --git a/apps/files/l10n/th.json b/apps/files/l10n/th.json
index c2f1cac7d30..f62e46e0e6e 100644
--- a/apps/files/l10n/th.json
+++ b/apps/files/l10n/th.json
@@ -42,7 +42,6 @@
"A file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ที่มีการ<strong>เปลี่ยนแปลง</strong>",
"A favorite file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ในรายการโปรดที่มีการ<strong>เปลี่ยนแปลง</strong>",
"No favorites" : "ยังไม่มีรายการโปรด",
- "Upload (max. %s)" : "อัปโหลด (สูงสุด %s)",
"Accept" : "ยอมรับ",
"Reject" : "ปฏิเสธ",
"Incoming ownership transfer from {user}" : "คำขอการโอนย้ายความเป็นเจ้าของจาก {user}",
@@ -60,6 +59,7 @@
"Favorite" : "รายการโปรด",
"Filename" : "ชื่อไฟล์",
"Folder name" : "ชื่อโฟลเดอร์",
+ "Folder" : "โฟลเดอร์",
"Pending" : "อยู่ระหว่างดำเนินการ",
"Modified" : "แก้ไขเมื่อ",
"Type" : "ประเภท",
@@ -67,6 +67,7 @@
"Size" : "ขนาด",
"Actions" : "การกระทำ",
"File not found" : "ไม่พบไฟล์",
+ "_{count} selected_::_{count} selected_" : ["เลือก {count} รายการ"],
"{usedQuotaByte} used" : "ใช้ไป {usedQuotaByte}",
"{used} of {quota} used" : "ใช้ไป {used} จาก {quota}",
"{relative}% used" : "ใช้ไป {relative}%",
@@ -125,6 +126,7 @@
"Delete folders" : "ลบโฟลเดอร์",
"Delete" : "ลบ",
"Cancel" : "ยกเลิก",
+ "Download" : "ดาวน์โหลด",
"Copy to {target}" : "คัดลอกไปยัง {target}",
"Copy" : "คัดลอก",
"Move to {target}" : "ย้ายไปยัง {target}",
@@ -142,6 +144,9 @@
"Unable to initialize the templates directory" : "ไม่สามารถเตรียมไดเรกทอรีเทมเพลต",
"Templates" : "เทมเพลต",
"Some files could not be moved" : "ไม่สามารถย้ายบางไฟล์",
+ "Could not rename \"{oldName}\", it does not exist any more" : "ไม่สามารถเปลี่ยนชื่อไฟล์ \"{oldName}\" ไฟล์นั้นไม่มีอยู่",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "ชื่อ \"{newName}\" มีอยู่แล้วในโฟลเดอร์ \"{dir}\" กรุณาเปลี่ยนชื่อใหม่",
+ "Could not rename \"{oldName}\"" : "ไม่สามารถเปลี่ยนชื่อไฟล์ \"{oldName}\"",
"This operation is forbidden" : "การดำเนินการนี้ถูกห้าม",
"This directory is unavailable, please check the logs or contact the administrator" : "ไม่สามารถใช้งานไดเรกทอรีนี้ โปรดตรวจสอบบันทึกหรือติดต่อผู้ดูแลระบบ",
"Storage is temporarily not available" : "พื้นที่จัดเก็บข้อมูลไม่สามารถใช้งานได้ชั่วคราว",
@@ -157,7 +162,6 @@
"Upload too large" : "ไฟล์ที่อัปโหลดมีขนาดใหญ่เกินไป",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "ไฟล์ที่คุณพยายามที่จะอัปโหลดมีขนาดเกินกว่าขนาดสูงสุดที่อัปโหลดได้สำหรับเซิร์ฟเวอร์นี้",
"File could not be found" : "ไม่พบไฟล์",
- "Download" : "ดาวน์โหลด",
"Show list view" : "แสดงมุมมองรายการ",
"Show grid view" : "แสดงมุมมองตาราง",
"Close" : "ปิด",
@@ -195,9 +199,6 @@
"Copied {origin} inside {destination}" : "คัดลอก {origin} ไว้ใน {destination} แล้ว",
"Copied {origin} and {nbfiles} other files inside {destination}" : "คัดลอก {origin} และ {nbfiles} ไฟล์อื่น ๆ ไว้ใน {destination} แล้ว",
"{newName} already exists" : "{newName} มีอยู่แล้ว",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "ไม่สามารถสร้างไฟล์ \"{file}\" เพราะมันมีอยู่แล้ว",
"Could not create folder \"{dir}\" because it already exists" : "ไม่สามารถสร้างโฟลเดอร์ \"{dir}\" เพราะมันมีอยู่แล้ว",
@@ -230,14 +231,10 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "คัดลอกลิงก์โดยตรงแล้ว (ใช้ได้เฉพาะผู้ใช้ที่มีสิทธิ์เข้าถึงไฟล์/โฟลเดอร์นี้)",
"Path" : "เส้นทาง",
"_%n byte_::_%n bytes_" : ["%n ไบต์"],
- "Favorited" : "เพิ่มในรายการโปรดแล้ว",
"Copy direct link (only works for people who have access to this file/folder)" : "คัดลอกลิงก์โดยตรง (ใช้ได้เฉพาะผู้ใช้ที่มีสิทธิ์เข้าถึงไฟล์/โฟลเดอร์นี้)",
"Upload file" : "อัปโหลดไฟล์",
- "Not favorited" : "ไม่ได้เป็นรายการโปรด",
"An error occurred while trying to update the tags" : "เกิดข้อผิดพลาดขณะกำลังพยายามอัปเดตแท็ก",
- "Storage informations" : "ข้อมูลพื้นที่จัดเก็บ",
- "Open the files app settings" : "เปิดการตั้งค่าแอปไฟล์",
- "Unable to change the favourite state of the file" : "ไม่สามารถเปลี่ยนสถานะรายการโปรดของไฟล์",
+ "Upload (max. %s)" : "อัปโหลด (สูงสุด %s)",
"Text file" : "ไฟล์ข้อความ",
"New text file.txt" : "ไฟล์ข้อความใหม่.txt"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files/l10n/tl_PH.js b/apps/files/l10n/tl_PH.js
deleted file mode 100644
index c50be1aa479..00000000000
--- a/apps/files/l10n/tl_PH.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/tl_PH.json b/apps/files/l10n/tl_PH.json
deleted file mode 100644
index 210ac153bab..00000000000
--- a/apps/files/l10n/tl_PH.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index e699bf8bd42..829f9438f3b 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Sık kullanılan dosyalar",
"No favorites" : "Sık kullanılan bir öge yok",
"More favorites" : "Diğer sık kullanılanlar",
- "Upload (max. %s)" : "Yükle (en büyük: %s)",
"Accept" : "Kabul et",
"Reject" : "Reddet",
"Incoming ownership transfer from {user}" : "{user} kullanıcısından gelen sahiplik aktarımı ",
@@ -71,7 +70,9 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "%1$s üzerinden %2$s zamanında aktarıldı",
"Files compatibility" : "Dosyalar uygulaması uyumluluğu",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Dosyaların tüm istemcilerle eşitlenebilmesi için dosya adlarının kısıtlanmasını sağlar. Varsayılan olarak POSIX içinde geçerli olan tüm dosya adlarına (Linux veya macOS) izin verilir.",
- "Enforce Windows compatibility" : "Windows uyumluluğu dayatılsın",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Windows uyumlu dosya adları açıldıktan sonra, var olan dosyalar artık değiştirilemez. Ancak sahipleri tarafından geçerli yeni adlarla yeniden adlandırılabilir.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Bu ayarı açtıktan sonra dosyaları otomatik olarak da aktarılabilir. Lütfen occ komutuyla ilgili belgelere bakın.",
+ "Enforce Windows compatibility" : "Windows uyumluluğu zorunlu kılınsın",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ayrılmış adlar veya özel karakterler kullanmak gibi Windows sistemlerinde geçerli olmayan dosya adlarını engeller. Ancak büyük/küçük harf duyarlılığı uyumluluğunu zorunlu kılmaz.",
"File Management" : "Dosya yönetimi",
"Home" : "Giriş",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Dosya adı geçersiz.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" adı \"{newName}\" olarak değiştirildi",
"Rename file" : "Dosyayı yeniden adlandır",
+ "Folder" : "Klasör",
+ "Unknown file type" : "Dosya türü bilinmiyor",
+ "{ext} image" : "{ext} görsel",
+ "{ext} video" : "{ext} görüntü",
+ "{ext} audio" : "{ext} ses",
+ "{ext} text" : "{ext} metin",
"Pending" : "Bekliyor",
"Unknown date" : "Tarih bilinmiyor",
"Clear filter" : "Süzgeci temizle",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Toplam satır özeti",
"Toggle selection for all files and folders" : "Tüm dosyaları ve klasörleri seç/bırak",
"Name" : "Ad",
+ "File type" : "Dosya türü",
"Size" : "Boyut",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" bazı bileşenlerde tamamlanamadı",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" toplu işlemi tamamlandı",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Düğmeler olan sütunlar sıralanabilir.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Başarımı olumsuz etkilememek için listenin tümü görüntülenmiyor. Listede ilerledikçe dosyalar görüntülenecek.",
"File not found" : "Dosya bulunamadı",
- "{count} selected" : "{count} seçilmiş",
+ "_{count} selected_::_{count} selected_" : ["{count} seçilmiş","{count} seçilmiş"],
"{usedQuotaByte} used" : "{usedQuotaByte} kullanılmış",
"{used} of {quota} used" : "{used} / {quota} kullanılmış",
"{relative}% used" : "%{relative} kullanılmış",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Sık kullanılanlar üstte sıralansın",
"Sort folders before files" : "Klasörler dosyaların üzerinde sıralansın",
"Show hidden files" : "Gizli dosyaları görüntüle",
+ "Show file type column" : "Dosya türü sütunu görüntülensin",
"Crop image previews" : "Görsel ön izlemeleri kırpılsın",
"Enable the grid view" : "Tablo görünümü kullanılsın",
"Enable folder tree" : "Klasör ağacını aç",
@@ -191,7 +200,7 @@ OC.L10N.register(
"WebDAV URL" : "WebDAV adresi",
"Copy to clipboard" : "Panoya kopyala",
"Use this address to access your Files via WebDAV" : "Dosyalarınıza WebDAV üzerinden erişmek için bu adresi kullanın",
- "If you have enabled 2FA, you must create and use a new app password by clicking here." : "İki adımlı doğrulamayı kullanıma aldıysanız buraya tıklayarak yeni bir uygulama parolası oluşturmalısınız.",
+ "If you have enabled 2FA, you must create and use a new app password by clicking here." : "İki adımlı doğrulamayı açtıysanız buraya tıklayarak yeni bir uygulama parolası oluşturmalısınız.",
"Warnings" : "Uyarılar",
"Prevent warning dialogs from open or reenable them." : "Uyarı pencerelerinin görüntülenmesini açın ya da kapatın.",
"Show a warning dialog when changing a file extension." : "Dosya uzantısı değiştirilirken uyarı penceresi görüntülensin.",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Bu kısayolları görüntüler",
"You" : "Siz",
"Shared multiple times with different people" : "Farklı kişilerle birkaç kez paylaşılmış",
+ "Unable to change the favorite 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ı",
"Owner" : "Sahibi",
"Remove from favorites" : "Sık kullanılanlardan kaldır",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["{count} ögeyi silmek üzeresiniz","{count} ögeyi silmek üzeresiniz"],
"Confirm deletion" : "Silmeyi onaylayın",
"Cancel" : "İptal",
+ "Download" : "İndir",
"Moving \"{source}\" to \"{destination}\" …" : "\"{source}\", \"{destination}\" hedefine taşınıyor…",
"Copying \"{source}\" to \"{destination}\" …" : "\"{source}\", \"{destination}\" hedefine kopyalanıyor…",
+ "Destination is not a folder" : "Hedef bir klasör değil",
+ "This file/folder is already in that directory" : "Dosya ya da klasör bu klasörde zaten var",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Bir dosyayı ya da klasörü kendi üzerine veya kendisinin alt klasörüne taşıyamazsınız",
"(copy)" : "(kopya)",
"(copy %n)" : "(%n kopyası)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Taşıma ya da kopyalama işlemi iptal edildi",
"Open folder {displayName}" : "{displayName} klasörünü aç",
"Open in Files" : "Dosyalar uygulamasında aç",
+ "Open locally" : "Yerel olarak aç",
+ "Failed to redirect to client" : "İstemciye yönlendirilemedi",
"Open file locally" : "Dosyayı yerel olarak aç",
- "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Dosya artık aygıtınızda açılmalıdır. Açılmazsa lütfen masaüstü uygulamasının kurulu olduğundan emin olun.",
+ "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Dosya artık aygıtınızda açılmalıdır. Açılmazsa lütfen bilgisayar uygulamasının kurulu olduğundan emin olun.",
"Retry and close" : "Yeniden deneyip kapat",
"Open online" : "Çevrim içi aç",
- "Failed to redirect to client" : "İstemciye yönlendirilemedi",
- "Open locally" : "Yerel olarak aç",
"Rename" : "Yeniden adlandır",
"Open details" : "Ayrıntıları aç",
"View in folder" : "Klasörde görüntüle",
@@ -322,12 +335,16 @@ OC.L10N.register(
"Files moved successfully" : "Dosyalar taşındı",
"Conflicts resolution skipped" : "Çakışma çözümleme atlandı",
"Upload cancelled" : "Yükleme iptal edildi",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" adı artık olmadığından değiştirilemedi. ",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{newName}\" adı \"{dir}\" klasöründe zaten kullanılmış. Lütfen başka bir ad seçin.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" adı değiştirilemedi",
"This operation is forbidden" : "Bu işleme izin verilmiyor",
"This directory is unavailable, please check the logs or contact the administrator" : "Bu klasör yazılabilir değil. Lütfen günlük kayıtlarına bakın ya da BT yöneticiniz ile görüşün",
"Storage is temporarily not available" : "Depolama geçici olarak kullanılamıyor",
"Unexpected error: {error}" : "Beklenmeyen bir sorun çıktı: {error}",
"_%n file_::_%n files_" : ["%n dosya","%n dosya"],
"_%n folder_::_%n folders_" : ["%n klasör","%n klasör"],
+ "_%n hidden_::_%n hidden_" : ["%n gizli","%n gizli"],
"Filename must not be empty." : "Dosya adı boş olamaz.",
"\"{char}\" is not allowed inside a filename." : "Dosya adlarında \"{char}\" kullanılamaz.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" ayrılmış bir ad olduğundan dosya adlarında kullanılamaz.",
@@ -352,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Yükleme boyutu çok büyük",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Yüklemeye çalıştığınız dosyalar bu sunucuya yüklenmesine izin verilen en büyük dosya boyutunu aşıyor.",
"File could not be found" : "Dosya bulunamadı",
- "Download" : "İndir",
"Show list view" : "Liste görünümüne geç",
"Show grid view" : "Tablo görünümüne geç",
"Close" : "Kapat",
@@ -391,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "{origin} dosyası, {destination} içine kopyalandı",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ve diğer {nbfiles} dosya, {destination} içine kopyalandı",
"{newName} already exists" : "{newName} zaten var",
- "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" yeniden adlandırılamadı, artık yok",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" adı \"{dir}\" klasöründe zaten var. Lütfen farklı bir ad seçin.",
- "Could not rename \"{fileName}\"" : "\"{fileName}\" yeniden adlandırılamadı",
"Could not create file \"{file}\"" : "\"{file}\" dosyası oluşturulamadı",
"Could not create file \"{file}\" because it already exists" : "\"{file}\" dosyası zaten var olduğundan oluşturulamadı",
"Could not create folder \"{dir}\" because it already exists" : "\"{dir}\" klasörü zaten var olduğundan oluşturulamadı",
@@ -426,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Doğrudan bağlantı kopyalandı (yalnızca bu dosya ya da klasöre erişim izni olan kişiler kullanabilir)",
"Path" : "Yol",
"_%n byte_::_%n bytes_" : ["%n bayt","%n bayt"],
- "Favorited" : "Sık kullanılanlara eklendi",
+ "Favored" : "Sık kullanılanlara eklenmiş",
+ "Favor" : "Sık kullanılanlara ekle",
"Copy direct link (only works for people who have access to this file/folder)" : "Doğrudan bağlantıyı kopyala (yalnızca bu dosya ya da klasöre erişim izni olan kişiler için)",
"Upload file" : "Dosya yükle",
- "Not favorited" : "Sık kullanılanlarda değil",
+ "Not favored" : "Sık kullanılanlara eklenmemiş",
"An error occurred while trying to update the tags" : "Etiketler güncellenirken bir sorun çıktı",
- "You don't have permission to upload or create files here." : "Buraya dosya yükleme ya da ekleme izniniz yok.",
- "Storage informations" : "Depolama bilgileri",
- "Choose file" : "Dosya seçin",
- "Go to the previous folder" : "Önceki klasöre git",
- "Open the files app settings" : "Dosyalar uygulaması ayarlarını aç",
- "Unable to change the favourite state of the file" : "Dosyanın sık kullanılan durumu değiştirilemedi",
- "Edit file locally" : "Dosyayı yerel olarak düzenle",
- "Edit online" : "Çevrim içi düzenle",
- "Create new templates folder" : "Yeni kalıp klasörü oluştur",
+ "Upload (max. %s)" : "Yükle (en büyük: %s)",
+ "Submitting fields…" : "Alanlar gönderiliyor…",
+ "Filter filenames…" : "Dosya adlarını süz…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} klasör","{folderCount} klasör"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} dosya","{fileCount} dosya"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 dosya ve {folderCount} klasör","1 dosya ve {folderCount} klasör"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} dosya ve 1 klasör","{fileCount} dosya ve 1 klasör"],
"{fileCount} files and {folderCount} folders" : "{fileCount} dosya ve {folderCount} klasör",
- "List of favorites files and folders." : "Sık kullanılan dosya ve klasör listesi.",
"Personal Files" : "Kişisel dosyalar",
"Text file" : "Metin dosyası",
"New text file.txt" : "Yeni metin dosyası.txt",
- "Favored" : "Sık kullanılanlara eklenmiş",
- "Favor" : "Sık kullanılanlara ekle",
- "Not favored" : "Sık kullanılanlara eklenmemiş",
- "Submitting fields…" : "Alanlar gönderiliyor…",
- "Filter filenames…" : "Dosya adlarını süz…",
- "{count} files could not be converted" : "{count} dosya dönüştürülemedi",
- "{count} files successfully converted" : "{count} dosya dönüştürüldü"
+ "%1$s (renamed)" : "%1$s (yeniden adlandırıldı)",
+ "renamed file" : "dosyayı yeniden adlandırdı",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Windows uyumlu dosya adları açıldıktan sonra, var olan dosyalar artık değiştirilemez. Ancak sahipleri tarafından geçerli yeni adlarla yeniden adlandırılabilir."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index b3ac67f9b5a..a83f1db0285 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -52,7 +52,6 @@
"Favorite files" : "Sık kullanılan dosyalar",
"No favorites" : "Sık kullanılan bir öge yok",
"More favorites" : "Diğer sık kullanılanlar",
- "Upload (max. %s)" : "Yükle (en büyük: %s)",
"Accept" : "Kabul et",
"Reject" : "Reddet",
"Incoming ownership transfer from {user}" : "{user} kullanıcısından gelen sahiplik aktarımı ",
@@ -69,7 +68,9 @@
"Transferred from %1$s on %2$s" : "%1$s üzerinden %2$s zamanında aktarıldı",
"Files compatibility" : "Dosyalar uygulaması uyumluluğu",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Dosyaların tüm istemcilerle eşitlenebilmesi için dosya adlarının kısıtlanmasını sağlar. Varsayılan olarak POSIX içinde geçerli olan tüm dosya adlarına (Linux veya macOS) izin verilir.",
- "Enforce Windows compatibility" : "Windows uyumluluğu dayatılsın",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Windows uyumlu dosya adları açıldıktan sonra, var olan dosyalar artık değiştirilemez. Ancak sahipleri tarafından geçerli yeni adlarla yeniden adlandırılabilir.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Bu ayarı açtıktan sonra dosyaları otomatik olarak da aktarılabilir. Lütfen occ komutuyla ilgili belgelere bakın.",
+ "Enforce Windows compatibility" : "Windows uyumluluğu zorunlu kılınsın",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Ayrılmış adlar veya özel karakterler kullanmak gibi Windows sistemlerinde geçerli olmayan dosya adlarını engeller. Ancak büyük/küçük harf duyarlılığı uyumluluğunu zorunlu kılmaz.",
"File Management" : "Dosya yönetimi",
"Home" : "Giriş",
@@ -93,6 +94,12 @@
"Invalid filename." : "Dosya adı geçersiz.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" adı \"{newName}\" olarak değiştirildi",
"Rename file" : "Dosyayı yeniden adlandır",
+ "Folder" : "Klasör",
+ "Unknown file type" : "Dosya türü bilinmiyor",
+ "{ext} image" : "{ext} görsel",
+ "{ext} video" : "{ext} görüntü",
+ "{ext} audio" : "{ext} ses",
+ "{ext} text" : "{ext} metin",
"Pending" : "Bekliyor",
"Unknown date" : "Tarih bilinmiyor",
"Clear filter" : "Süzgeci temizle",
@@ -103,6 +110,7 @@
"Total rows summary" : "Toplam satır özeti",
"Toggle selection for all files and folders" : "Tüm dosyaları ve klasörleri seç/bırak",
"Name" : "Ad",
+ "File type" : "Dosya türü",
"Size" : "Boyut",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" bazı bileşenlerde tamamlanamadı",
"\"{displayName}\" batch action executed successfully" : "\"{displayName}\" toplu işlemi tamamlandı",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Düğmeler olan sütunlar sıralanabilir.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Başarımı olumsuz etkilememek için listenin tümü görüntülenmiyor. Listede ilerledikçe dosyalar görüntülenecek.",
"File not found" : "Dosya bulunamadı",
- "{count} selected" : "{count} seçilmiş",
+ "_{count} selected_::_{count} selected_" : ["{count} seçilmiş","{count} seçilmiş"],
"{usedQuotaByte} used" : "{usedQuotaByte} kullanılmış",
"{used} of {quota} used" : "{used} / {quota} kullanılmış",
"{relative}% used" : "%{relative} kullanılmış",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Sık kullanılanlar üstte sıralansın",
"Sort folders before files" : "Klasörler dosyaların üzerinde sıralansın",
"Show hidden files" : "Gizli dosyaları görüntüle",
+ "Show file type column" : "Dosya türü sütunu görüntülensin",
"Crop image previews" : "Görsel ön izlemeleri kırpılsın",
"Enable the grid view" : "Tablo görünümü kullanılsın",
"Enable folder tree" : "Klasör ağacını aç",
@@ -189,7 +198,7 @@
"WebDAV URL" : "WebDAV adresi",
"Copy to clipboard" : "Panoya kopyala",
"Use this address to access your Files via WebDAV" : "Dosyalarınıza WebDAV üzerinden erişmek için bu adresi kullanın",
- "If you have enabled 2FA, you must create and use a new app password by clicking here." : "İki adımlı doğrulamayı kullanıma aldıysanız buraya tıklayarak yeni bir uygulama parolası oluşturmalısınız.",
+ "If you have enabled 2FA, you must create and use a new app password by clicking here." : "İki adımlı doğrulamayı açtıysanız buraya tıklayarak yeni bir uygulama parolası oluşturmalısınız.",
"Warnings" : "Uyarılar",
"Prevent warning dialogs from open or reenable them." : "Uyarı pencerelerinin görüntülenmesini açın ya da kapatın.",
"Show a warning dialog when changing a file extension." : "Dosya uzantısı değiştirilirken uyarı penceresi görüntülensin.",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "Bu kısayolları görüntüler",
"You" : "Siz",
"Shared multiple times with different people" : "Farklı kişilerle birkaç kez paylaşılmış",
+ "Unable to change the favorite 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ı",
"Owner" : "Sahibi",
"Remove from favorites" : "Sık kullanılanlardan kaldır",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["{count} ögeyi silmek üzeresiniz","{count} ögeyi silmek üzeresiniz"],
"Confirm deletion" : "Silmeyi onaylayın",
"Cancel" : "İptal",
+ "Download" : "İndir",
"Moving \"{source}\" to \"{destination}\" …" : "\"{source}\", \"{destination}\" hedefine taşınıyor…",
"Copying \"{source}\" to \"{destination}\" …" : "\"{source}\", \"{destination}\" hedefine kopyalanıyor…",
+ "Destination is not a folder" : "Hedef bir klasör değil",
+ "This file/folder is already in that directory" : "Dosya ya da klasör bu klasörde zaten var",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Bir dosyayı ya da klasörü kendi üzerine veya kendisinin alt klasörüne taşıyamazsınız",
"(copy)" : "(kopya)",
"(copy %n)" : "(%n kopyası)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Taşıma ya da kopyalama işlemi iptal edildi",
"Open folder {displayName}" : "{displayName} klasörünü aç",
"Open in Files" : "Dosyalar uygulamasında aç",
+ "Open locally" : "Yerel olarak aç",
+ "Failed to redirect to client" : "İstemciye yönlendirilemedi",
"Open file locally" : "Dosyayı yerel olarak aç",
- "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Dosya artık aygıtınızda açılmalıdır. Açılmazsa lütfen masaüstü uygulamasının kurulu olduğundan emin olun.",
+ "The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Dosya artık aygıtınızda açılmalıdır. Açılmazsa lütfen bilgisayar uygulamasının kurulu olduğundan emin olun.",
"Retry and close" : "Yeniden deneyip kapat",
"Open online" : "Çevrim içi aç",
- "Failed to redirect to client" : "İstemciye yönlendirilemedi",
- "Open locally" : "Yerel olarak aç",
"Rename" : "Yeniden adlandır",
"Open details" : "Ayrıntıları aç",
"View in folder" : "Klasörde görüntüle",
@@ -320,12 +333,16 @@
"Files moved successfully" : "Dosyalar taşındı",
"Conflicts resolution skipped" : "Çakışma çözümleme atlandı",
"Upload cancelled" : "Yükleme iptal edildi",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" adı artık olmadığından değiştirilemedi. ",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{newName}\" adı \"{dir}\" klasöründe zaten kullanılmış. Lütfen başka bir ad seçin.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" adı değiştirilemedi",
"This operation is forbidden" : "Bu işleme izin verilmiyor",
"This directory is unavailable, please check the logs or contact the administrator" : "Bu klasör yazılabilir değil. Lütfen günlük kayıtlarına bakın ya da BT yöneticiniz ile görüşün",
"Storage is temporarily not available" : "Depolama geçici olarak kullanılamıyor",
"Unexpected error: {error}" : "Beklenmeyen bir sorun çıktı: {error}",
"_%n file_::_%n files_" : ["%n dosya","%n dosya"],
"_%n folder_::_%n folders_" : ["%n klasör","%n klasör"],
+ "_%n hidden_::_%n hidden_" : ["%n gizli","%n gizli"],
"Filename must not be empty." : "Dosya adı boş olamaz.",
"\"{char}\" is not allowed inside a filename." : "Dosya adlarında \"{char}\" kullanılamaz.",
"\"{segment}\" is a reserved name and not allowed for filenames." : "\"{segment}\" ayrılmış bir ad olduğundan dosya adlarında kullanılamaz.",
@@ -350,7 +367,6 @@
"Upload too large" : "Yükleme boyutu çok büyük",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Yüklemeye çalıştığınız dosyalar bu sunucuya yüklenmesine izin verilen en büyük dosya boyutunu aşıyor.",
"File could not be found" : "Dosya bulunamadı",
- "Download" : "İndir",
"Show list view" : "Liste görünümüne geç",
"Show grid view" : "Tablo görünümüne geç",
"Close" : "Kapat",
@@ -389,9 +405,6 @@
"Copied {origin} inside {destination}" : "{origin} dosyası, {destination} içine kopyalandı",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ve diğer {nbfiles} dosya, {destination} içine kopyalandı",
"{newName} already exists" : "{newName} zaten var",
- "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" yeniden adlandırılamadı, artık yok",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" adı \"{dir}\" klasöründe zaten var. Lütfen farklı bir ad seçin.",
- "Could not rename \"{fileName}\"" : "\"{fileName}\" yeniden adlandırılamadı",
"Could not create file \"{file}\"" : "\"{file}\" dosyası oluşturulamadı",
"Could not create file \"{file}\" because it already exists" : "\"{file}\" dosyası zaten var olduğundan oluşturulamadı",
"Could not create folder \"{dir}\" because it already exists" : "\"{dir}\" klasörü zaten var olduğundan oluşturulamadı",
@@ -424,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Doğrudan bağlantı kopyalandı (yalnızca bu dosya ya da klasöre erişim izni olan kişiler kullanabilir)",
"Path" : "Yol",
"_%n byte_::_%n bytes_" : ["%n bayt","%n bayt"],
- "Favorited" : "Sık kullanılanlara eklendi",
+ "Favored" : "Sık kullanılanlara eklenmiş",
+ "Favor" : "Sık kullanılanlara ekle",
"Copy direct link (only works for people who have access to this file/folder)" : "Doğrudan bağlantıyı kopyala (yalnızca bu dosya ya da klasöre erişim izni olan kişiler için)",
"Upload file" : "Dosya yükle",
- "Not favorited" : "Sık kullanılanlarda değil",
+ "Not favored" : "Sık kullanılanlara eklenmemiş",
"An error occurred while trying to update the tags" : "Etiketler güncellenirken bir sorun çıktı",
- "You don't have permission to upload or create files here." : "Buraya dosya yükleme ya da ekleme izniniz yok.",
- "Storage informations" : "Depolama bilgileri",
- "Choose file" : "Dosya seçin",
- "Go to the previous folder" : "Önceki klasöre git",
- "Open the files app settings" : "Dosyalar uygulaması ayarlarını aç",
- "Unable to change the favourite state of the file" : "Dosyanın sık kullanılan durumu değiştirilemedi",
- "Edit file locally" : "Dosyayı yerel olarak düzenle",
- "Edit online" : "Çevrim içi düzenle",
- "Create new templates folder" : "Yeni kalıp klasörü oluştur",
+ "Upload (max. %s)" : "Yükle (en büyük: %s)",
+ "Submitting fields…" : "Alanlar gönderiliyor…",
+ "Filter filenames…" : "Dosya adlarını süz…",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} klasör","{folderCount} klasör"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} dosya","{fileCount} dosya"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 dosya ve {folderCount} klasör","1 dosya ve {folderCount} klasör"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} dosya ve 1 klasör","{fileCount} dosya ve 1 klasör"],
"{fileCount} files and {folderCount} folders" : "{fileCount} dosya ve {folderCount} klasör",
- "List of favorites files and folders." : "Sık kullanılan dosya ve klasör listesi.",
"Personal Files" : "Kişisel dosyalar",
"Text file" : "Metin dosyası",
"New text file.txt" : "Yeni metin dosyası.txt",
- "Favored" : "Sık kullanılanlara eklenmiş",
- "Favor" : "Sık kullanılanlara ekle",
- "Not favored" : "Sık kullanılanlara eklenmemiş",
- "Submitting fields…" : "Alanlar gönderiliyor…",
- "Filter filenames…" : "Dosya adlarını süz…",
- "{count} files could not be converted" : "{count} dosya dönüştürülemedi",
- "{count} files successfully converted" : "{count} dosya dönüştürüldü"
+ "%1$s (renamed)" : "%1$s (yeniden adlandırıldı)",
+ "renamed file" : "dosyayı yeniden adlandırdı",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Windows uyumlu dosya adları açıldıktan sonra, var olan dosyalar artık değiştirilemez. Ancak sahipleri tarafından geçerli yeni adlarla yeniden adlandırılabilir."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/tzm.js b/apps/files/l10n/tzm.js
deleted file mode 100644
index f5528cd729c..00000000000
--- a/apps/files/l10n/tzm.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},
-"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;");
diff --git a/apps/files/l10n/tzm.json b/apps/files/l10n/tzm.json
deleted file mode 100644
index 2fe6b60516a..00000000000
--- a/apps/files/l10n/tzm.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "_%n folder_::_%n folders_" : ["",""],
- "_%n file_::_%n files_" : ["",""],
- "_Uploading %n file_::_Uploading %n files_" : ["",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"
-} \ No newline at end of file
diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js
index 68779c47617..fe1c8faea3a 100644
--- a/apps/files/l10n/ug.js
+++ b/apps/files/l10n/ug.js
@@ -46,7 +46,6 @@ OC.L10N.register(
"Failed to authorize" : "ھوقۇق بېرىش مەغلۇب بولدى",
"Invalid folder path" : "ھۆججەت قىسقۇچ يولى ئىناۋەتسىز",
"Folder not found" : "ھۆججەت قىسقۇچ تېپىلمىدى",
- "Upload (max. %s)" : "يۈكلەش (max.% S)",
"Accept" : "قوبۇل قىلىڭ",
"Reject" : "رەت قىلىش",
"Incoming ownership transfer from {user}" : "{user} دىن كەلگەن ئىگىدارلىق ھوقۇقىنى يۆتكەش",
@@ -86,6 +85,7 @@ OC.L10N.register(
"Invalid filename." : "ئىناۋەتسىز ھۆججەت ئىسمى.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" غا \"{newName}\" غا ئۆزگەرتىلدى",
"Rename file" : "ھۆججەتنىڭ نامىنى ئۆزگەرتىش",
+ "Folder" : "قىسقۇچ",
"Pending" : "كۈتۈۋاتىدۇ",
"Clear filter" : "سۈزگۈچنى تازىلاش",
"Modified" : "ئۆزگەرتكەن",
@@ -104,7 +104,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "كۇنۇپكىلار بار ئىستون ماۋزۇلىرى تەرتىپلىك.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "بۇ تىزىملىك ئىقتىدار سەۋەبىدىن تولۇق كۆرسىتىلمىگەن. ھۆججەتلەر تىزىملىكتىن ئۆتكەندە كۆرسىتىلىدۇ.",
"File not found" : "ھۆججەت تېپىلمىدى",
- "{count} selected" : "{count} تاللانغان",
"{usedQuotaByte} used" : "{usedQuotaByte} ئىشلىتىلگەن",
"{used} of {quota} used" : "{used} {quota} ئىشلىتىلگەن",
"{relative}% used" : "{relative}% ئىشلىتىلگەن",
@@ -198,6 +197,7 @@ OC.L10N.register(
"Delete" : "ئۆچۈر",
"Confirm deletion" : "ئۆچۈرۈشنى جەزملەشتۈرۈڭ",
"Cancel" : "ۋاز كەچ",
+ "Download" : "چۈشۈر",
"Moving \"{source}\" to \"{destination}\" …" : "\"{source}\" نى \"{destination}\" غا يۆتكەش…",
"Copying \"{source}\" to \"{destination}\" …" : "\"{source}\" نى \"{destination}\" غا كۆچۈرۈش…",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "ھۆججەت ياكى ھۆججەت قىسقۇچنى ئۆزىڭىزگە ياكى تارماق قىسقۇچقا يۆتكىيەلمەيسىز",
@@ -218,9 +218,9 @@ OC.L10N.register(
"Cancelled move or copy operation" : "يۆتكەش ياكى كۆچۈرۈش مەشغۇلاتى ئەمەلدىن قالدۇرۇلدى",
"Open folder {displayName}" : "ھۆججەت قىسقۇچ {displayName}",
"Open in Files" : "ھۆججەتلەرنى ئېچىڭ",
- "Open file locally" : "ھۆججەتنى يەرلىكتە ئېچىڭ",
- "Failed to redirect to client" : "خېرىدارغا قايتا نىشانلاش مەغلۇپ بولدى",
"Open locally" : "يەرلىكتە ئېچىڭ",
+ "Failed to redirect to client" : "خېرىدارغا قايتا نىشانلاش مەغلۇپ بولدى",
+ "Open file locally" : "ھۆججەتنى يەرلىكتە ئېچىڭ",
"Rename" : "ئات ئۆزگەرت",
"Open details" : "تەپسىلاتلارنى ئېچىڭ",
"View in folder" : "قىسقۇچتا كۆرۈش",
@@ -258,6 +258,9 @@ OC.L10N.register(
"Files moved successfully" : "ھۆججەتلەر مۇۋەپپەقىيەتلىك يۆتكەلدى",
"Conflicts resolution skipped" : "زىددىيەتنىڭ ھەل قىلىنىشى ئاتلاپ كەتتى",
"Upload cancelled" : "يۈكلەش ئەمەلدىن قالدۇرۇلدى",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" نىڭ نامىنى ئۆزگەرتەلمىدى ، ئۇ ئەمدى مەۋجۇت ئەمەس",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{dir}\" ھۆججەت قىسقۇچىدا \"{newName}\" ئىسمى ئاللىبۇرۇن ئىشلىتىلگەن. باشقا ئىسىمنى تاللاڭ.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" نىڭ نامىنى ئۆزگەرتەلمىدى",
"This operation is forbidden" : "بۇ مەشغۇلات مەنئى قىلىنىدۇ",
"This directory is unavailable, please check the logs or contact the administrator" : "بۇ مۇندەرىجىنى ئىشلەتكىلى بولمايدۇ ، خاتىرىلەرنى تەكشۈرۈپ بېقىڭ ياكى باشقۇرغۇچى بىلەن ئالاقىلىشىڭ",
"Storage is temporarily not available" : "ساقلاش ۋاقتىنى ۋاقىتلىق ئىشلەتكىلى بولمايدۇ",
@@ -286,7 +289,6 @@ OC.L10N.register(
"Upload too large" : "يۈكلەندىغىنى بەك چوڭ",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "سىز يۈكلىمەكچى بولغان ھۆججەتلەر بۇ مۇلازىمېتىردا ھۆججەت يوللاشنىڭ ئەڭ چوڭ چوڭلۇقىدىن ئېشىپ كەتتى.",
"File could not be found" : "ھۆججەت تېپىلمىدى",
- "Download" : "چۈشۈر",
"Show list view" : "تىزىملىك كۆرۈنۈشىنى كۆرسىتىش",
"Show grid view" : "كاتەكچە كۆرۈنۈشنى كۆرسىتىش",
"Close" : "ياپ",
@@ -325,9 +327,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "كۆچۈرۈلگەن {origin} ئىچىدىكى {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ئىچىدىكى {destination} ۋە {nbfiles} باشقا ھۆججەتلەر كۆچۈرۈلگەن",
"{newName} already exists" : "{newName} مەۋجۇت",
- "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." : "\"{dir}\" ھۆججەت قىسقۇچىدا \"{targetName}\" ئىسمى ئاللىبۇرۇن ئىشلىتىلگەن. باشقا ئىسىمنى تاللاڭ.",
- "Could not rename \"{fileName}\"" : "\"{fileName}\" نىڭ نامىنى ئۆزگەرتەلمىدى",
"Could not create file \"{file}\"" : "\"{file}\" ھۆججىتىنى قۇرالمىدى",
"Could not create file \"{file}\" because it already exists" : "«{file}» ھۆججىتىنى قۇرالمىدى ، چۈنكى ئۇ مەۋجۇت",
"Could not create folder \"{dir}\" because it already exists" : "«{dir}» ھۆججەت قىسقۇچى قۇرالمىدى ، چۈنكى ئۇ مەۋجۇت",
@@ -356,28 +355,18 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)." : "ساقلاش بوشلۇقىڭىز ئاساسەن دېگۈدەك تولۇق ({usedSpacePercent}%).",
"Direct link was copied (only works for people who have access to this file/folder)" : "بىۋاسىتە ئۇلىنىش كۆچۈرۈلدى (پەقەت بۇ ھۆججەت / ھۆججەت قىسقۇچنى زىيارەت قىلىدىغان كىشىلەر ئۈچۈن ئىشلەيدۇ)",
"Path" : "Path",
- "Favorited" : "ياقتۇرىدىغان",
+ "Favored" : "ياخشى كۆرىدۇ",
+ "Favor" : "ياق",
"Copy direct link (only works for people who have access to this file/folder)" : "بىۋاسىتە ئۇلىنىشنى كۆچۈرۈڭ (پەقەت بۇ ھۆججەت / ھۆججەت قىسقۇچنى زىيارەت قىلالايدىغان كىشىلەر ئۈچۈن ئىشلەيدۇ)",
"Upload file" : "Upload file",
- "Not favorited" : "ياقتۇرمايدۇ",
+ "Not favored" : "ياقتۇرمايدۇ",
"An error occurred while trying to update the tags" : "خەتكۈچلەرنى يېڭىلىماقچى بولغاندا خاتالىق كۆرۈلدى",
- "Storage informations" : "ساقلاش ئۇچۇرى",
- "Choose file" : "ھۆججەت تاللاڭ",
- "Go to the previous folder" : "ئالدىنقى قىسقۇچقا بېرىڭ",
- "Open the files app settings" : "ھۆججەت ئەپ تەڭشىكىنى ئېچىڭ",
- "Unable to change the favourite state of the file" : "ھۆججەتنىڭ ياقتۇرىدىغان ھالىتىنى ئۆزگەرتەلمىدى",
- "Edit file locally" : "ھۆججەتنى يەرلىكتە تەھرىرلەڭ",
- "Edit online" : "توردا تەھرىرلەڭ",
- "Create new templates folder" : "يېڭى قېلىپ ھۆججەت قىسقۇچى قۇر",
+ "Upload (max. %s)" : "يۈكلەش (max.% S)",
+ "Submitting fields…" : "يول يوللاش…",
+ "Filter filenames…" : "ھۆججەت نامىنى سۈزۈڭ…",
"{fileCount} files and {folderCount} folders" : "{fileCount} ھۆججەتلىرى ۋە {folderCount} ھۆججەت قىسقۇچلىرى",
- "List of favorites files and folders." : "ياقتۇرىدىغان ھۆججەت ۋە ھۆججەت قىسقۇچلارنىڭ تىزىملىكى.",
"Personal Files" : "شەخسىي ھۆججەتلەر",
"Text file" : "تېكىست ھۆججەت",
- "New text file.txt" : "يېڭى تېكىست ھۆججىتى. Txt",
- "Favored" : "ياخشى كۆرىدۇ",
- "Favor" : "ياق",
- "Not favored" : "ياقتۇرمايدۇ",
- "Submitting fields…" : "يول يوللاش…",
- "Filter filenames…" : "ھۆججەت نامىنى سۈزۈڭ…"
+ "New text file.txt" : "يېڭى تېكىست ھۆججىتى. Txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json
index 46b7379c84f..7d5baaee516 100644
--- a/apps/files/l10n/ug.json
+++ b/apps/files/l10n/ug.json
@@ -44,7 +44,6 @@
"Failed to authorize" : "ھوقۇق بېرىش مەغلۇب بولدى",
"Invalid folder path" : "ھۆججەت قىسقۇچ يولى ئىناۋەتسىز",
"Folder not found" : "ھۆججەت قىسقۇچ تېپىلمىدى",
- "Upload (max. %s)" : "يۈكلەش (max.% S)",
"Accept" : "قوبۇل قىلىڭ",
"Reject" : "رەت قىلىش",
"Incoming ownership transfer from {user}" : "{user} دىن كەلگەن ئىگىدارلىق ھوقۇقىنى يۆتكەش",
@@ -84,6 +83,7 @@
"Invalid filename." : "ئىناۋەتسىز ھۆججەت ئىسمى.",
"Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" غا \"{newName}\" غا ئۆزگەرتىلدى",
"Rename file" : "ھۆججەتنىڭ نامىنى ئۆزگەرتىش",
+ "Folder" : "قىسقۇچ",
"Pending" : "كۈتۈۋاتىدۇ",
"Clear filter" : "سۈزگۈچنى تازىلاش",
"Modified" : "ئۆزگەرتكەن",
@@ -102,7 +102,6 @@
"Column headers with buttons are sortable." : "كۇنۇپكىلار بار ئىستون ماۋزۇلىرى تەرتىپلىك.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "بۇ تىزىملىك ئىقتىدار سەۋەبىدىن تولۇق كۆرسىتىلمىگەن. ھۆججەتلەر تىزىملىكتىن ئۆتكەندە كۆرسىتىلىدۇ.",
"File not found" : "ھۆججەت تېپىلمىدى",
- "{count} selected" : "{count} تاللانغان",
"{usedQuotaByte} used" : "{usedQuotaByte} ئىشلىتىلگەن",
"{used} of {quota} used" : "{used} {quota} ئىشلىتىلگەن",
"{relative}% used" : "{relative}% ئىشلىتىلگەن",
@@ -196,6 +195,7 @@
"Delete" : "ئۆچۈر",
"Confirm deletion" : "ئۆچۈرۈشنى جەزملەشتۈرۈڭ",
"Cancel" : "ۋاز كەچ",
+ "Download" : "چۈشۈر",
"Moving \"{source}\" to \"{destination}\" …" : "\"{source}\" نى \"{destination}\" غا يۆتكەش…",
"Copying \"{source}\" to \"{destination}\" …" : "\"{source}\" نى \"{destination}\" غا كۆچۈرۈش…",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "ھۆججەت ياكى ھۆججەت قىسقۇچنى ئۆزىڭىزگە ياكى تارماق قىسقۇچقا يۆتكىيەلمەيسىز",
@@ -216,9 +216,9 @@
"Cancelled move or copy operation" : "يۆتكەش ياكى كۆچۈرۈش مەشغۇلاتى ئەمەلدىن قالدۇرۇلدى",
"Open folder {displayName}" : "ھۆججەت قىسقۇچ {displayName}",
"Open in Files" : "ھۆججەتلەرنى ئېچىڭ",
- "Open file locally" : "ھۆججەتنى يەرلىكتە ئېچىڭ",
- "Failed to redirect to client" : "خېرىدارغا قايتا نىشانلاش مەغلۇپ بولدى",
"Open locally" : "يەرلىكتە ئېچىڭ",
+ "Failed to redirect to client" : "خېرىدارغا قايتا نىشانلاش مەغلۇپ بولدى",
+ "Open file locally" : "ھۆججەتنى يەرلىكتە ئېچىڭ",
"Rename" : "ئات ئۆزگەرت",
"Open details" : "تەپسىلاتلارنى ئېچىڭ",
"View in folder" : "قىسقۇچتا كۆرۈش",
@@ -256,6 +256,9 @@
"Files moved successfully" : "ھۆججەتلەر مۇۋەپپەقىيەتلىك يۆتكەلدى",
"Conflicts resolution skipped" : "زىددىيەتنىڭ ھەل قىلىنىشى ئاتلاپ كەتتى",
"Upload cancelled" : "يۈكلەش ئەمەلدىن قالدۇرۇلدى",
+ "Could not rename \"{oldName}\", it does not exist any more" : "\"{oldName}\" نىڭ نامىنى ئۆزگەرتەلمىدى ، ئۇ ئەمدى مەۋجۇت ئەمەس",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{dir}\" ھۆججەت قىسقۇچىدا \"{newName}\" ئىسمى ئاللىبۇرۇن ئىشلىتىلگەن. باشقا ئىسىمنى تاللاڭ.",
+ "Could not rename \"{oldName}\"" : "\"{oldName}\" نىڭ نامىنى ئۆزگەرتەلمىدى",
"This operation is forbidden" : "بۇ مەشغۇلات مەنئى قىلىنىدۇ",
"This directory is unavailable, please check the logs or contact the administrator" : "بۇ مۇندەرىجىنى ئىشلەتكىلى بولمايدۇ ، خاتىرىلەرنى تەكشۈرۈپ بېقىڭ ياكى باشقۇرغۇچى بىلەن ئالاقىلىشىڭ",
"Storage is temporarily not available" : "ساقلاش ۋاقتىنى ۋاقىتلىق ئىشلەتكىلى بولمايدۇ",
@@ -284,7 +287,6 @@
"Upload too large" : "يۈكلەندىغىنى بەك چوڭ",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "سىز يۈكلىمەكچى بولغان ھۆججەتلەر بۇ مۇلازىمېتىردا ھۆججەت يوللاشنىڭ ئەڭ چوڭ چوڭلۇقىدىن ئېشىپ كەتتى.",
"File could not be found" : "ھۆججەت تېپىلمىدى",
- "Download" : "چۈشۈر",
"Show list view" : "تىزىملىك كۆرۈنۈشىنى كۆرسىتىش",
"Show grid view" : "كاتەكچە كۆرۈنۈشنى كۆرسىتىش",
"Close" : "ياپ",
@@ -323,9 +325,6 @@
"Copied {origin} inside {destination}" : "كۆچۈرۈلگەن {origin} ئىچىدىكى {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} ئىچىدىكى {destination} ۋە {nbfiles} باشقا ھۆججەتلەر كۆچۈرۈلگەن",
"{newName} already exists" : "{newName} مەۋجۇت",
- "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." : "\"{dir}\" ھۆججەت قىسقۇچىدا \"{targetName}\" ئىسمى ئاللىبۇرۇن ئىشلىتىلگەن. باشقا ئىسىمنى تاللاڭ.",
- "Could not rename \"{fileName}\"" : "\"{fileName}\" نىڭ نامىنى ئۆزگەرتەلمىدى",
"Could not create file \"{file}\"" : "\"{file}\" ھۆججىتىنى قۇرالمىدى",
"Could not create file \"{file}\" because it already exists" : "«{file}» ھۆججىتىنى قۇرالمىدى ، چۈنكى ئۇ مەۋجۇت",
"Could not create folder \"{dir}\" because it already exists" : "«{dir}» ھۆججەت قىسقۇچى قۇرالمىدى ، چۈنكى ئۇ مەۋجۇت",
@@ -354,28 +353,18 @@
"Your storage is almost full ({usedSpacePercent}%)." : "ساقلاش بوشلۇقىڭىز ئاساسەن دېگۈدەك تولۇق ({usedSpacePercent}%).",
"Direct link was copied (only works for people who have access to this file/folder)" : "بىۋاسىتە ئۇلىنىش كۆچۈرۈلدى (پەقەت بۇ ھۆججەت / ھۆججەت قىسقۇچنى زىيارەت قىلىدىغان كىشىلەر ئۈچۈن ئىشلەيدۇ)",
"Path" : "Path",
- "Favorited" : "ياقتۇرىدىغان",
+ "Favored" : "ياخشى كۆرىدۇ",
+ "Favor" : "ياق",
"Copy direct link (only works for people who have access to this file/folder)" : "بىۋاسىتە ئۇلىنىشنى كۆچۈرۈڭ (پەقەت بۇ ھۆججەت / ھۆججەت قىسقۇچنى زىيارەت قىلالايدىغان كىشىلەر ئۈچۈن ئىشلەيدۇ)",
"Upload file" : "Upload file",
- "Not favorited" : "ياقتۇرمايدۇ",
+ "Not favored" : "ياقتۇرمايدۇ",
"An error occurred while trying to update the tags" : "خەتكۈچلەرنى يېڭىلىماقچى بولغاندا خاتالىق كۆرۈلدى",
- "Storage informations" : "ساقلاش ئۇچۇرى",
- "Choose file" : "ھۆججەت تاللاڭ",
- "Go to the previous folder" : "ئالدىنقى قىسقۇچقا بېرىڭ",
- "Open the files app settings" : "ھۆججەت ئەپ تەڭشىكىنى ئېچىڭ",
- "Unable to change the favourite state of the file" : "ھۆججەتنىڭ ياقتۇرىدىغان ھالىتىنى ئۆزگەرتەلمىدى",
- "Edit file locally" : "ھۆججەتنى يەرلىكتە تەھرىرلەڭ",
- "Edit online" : "توردا تەھرىرلەڭ",
- "Create new templates folder" : "يېڭى قېلىپ ھۆججەت قىسقۇچى قۇر",
+ "Upload (max. %s)" : "يۈكلەش (max.% S)",
+ "Submitting fields…" : "يول يوللاش…",
+ "Filter filenames…" : "ھۆججەت نامىنى سۈزۈڭ…",
"{fileCount} files and {folderCount} folders" : "{fileCount} ھۆججەتلىرى ۋە {folderCount} ھۆججەت قىسقۇچلىرى",
- "List of favorites files and folders." : "ياقتۇرىدىغان ھۆججەت ۋە ھۆججەت قىسقۇچلارنىڭ تىزىملىكى.",
"Personal Files" : "شەخسىي ھۆججەتلەر",
"Text file" : "تېكىست ھۆججەت",
- "New text file.txt" : "يېڭى تېكىست ھۆججىتى. Txt",
- "Favored" : "ياخشى كۆرىدۇ",
- "Favor" : "ياق",
- "Not favored" : "ياقتۇرمايدۇ",
- "Submitting fields…" : "يول يوللاش…",
- "Filter filenames…" : "ھۆججەت نامىنى سۈزۈڭ…"
+ "New text file.txt" : "يېڭى تېكىست ھۆججىتى. Txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index 4518b372a0f..e1059df3ed0 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "Файли із зіркою",
"No favorites" : "Немає улюблених",
"More favorites" : "Ще файли із зіркою",
- "Upload (max. %s)" : "Завантаження (макс. %s)",
"Accept" : "Прийняти",
"Reject" : "Відхилити",
"Incoming ownership transfer from {user}" : "Запит від користувача {user} на передавання прав власника",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "Перенесено від %1$s до %2$s",
"Files compatibility" : "Сумісність файлів",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозволити обмежувати імена файлів для забезпечення сумісності з різними клієнтами. Типово всі імена файлів, які відповідають моделі POSIX (напр., Linux, macOS), дозволені.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Після увімкнення сумісности імен файлів з системою Windows наявні файли неможливо буде змінити, але власники зможуть перейменувати ці файли на нові з дійсними іменами.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Також можлива автоматична міграція файлів після увімкнення цих налаштувань. Ознайомтеся з документацією відповідної команди occ.",
"Enforce Windows compatibility" : "Увімкнути сумісність із Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Це унеможливить використання імен файлів, які не сумісні з системами Windows, напр., використанння зарезервованих імен або спеціальних символів. Зауважте, що це не обмежить сумісність за регістром символів.",
"File Management" : "Керування файлами",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "Недійсне ім'я файлу.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Перейменовано \"{oldName}\" на \"{newName}\"",
"Rename file" : "Перейменувати файл",
+ "Folder" : "Каталог",
+ "Unknown file type" : "Невідомий тип файлу",
+ "{ext} image" : "{ext} зображення",
+ "{ext} video" : "{ext} відео",
+ "{ext} audio" : "{ext} аудіо",
+ "{ext} text" : "{ext} текст",
"Pending" : "Очікування",
"Unknown date" : "Невідома дата",
"Clear filter" : "Очистити фільтр",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "Загалом рядків",
"Toggle selection for all files and folders" : "Перемкнути вибір для всіх файлів та каталогів",
"Name" : "Ім'я",
+ "File type" : "Тип файлу",
"Size" : "Розмір",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" не спрацював у деяких елементах",
"\"{displayName}\" batch action executed successfully" : "Операцію \"{displayName}\" успішно виконано",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Назви стовпців з кнопками можна впорядковувати",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Список не подається повністю з міркувань обчислювальних потужностей. Файли показуватимуться під час прокручування списку.",
"File not found" : "Файл не знайдено",
- "{count} selected" : "{count} вибрано",
+ "_{count} selected_::_{count} selected_" : ["Вибрано {count}","Вибрано {count}","Вибрано {count} ","Вибрано {count} "],
"{usedQuotaByte} used" : "{usedQuotaByte} використано",
"{used} of {quota} used" : "Використано {used} із {quota}",
"{relative}% used" : "{relative}% використано",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "Спочатку показувати із зірочкою",
"Sort folders before files" : "Показувати каталоги перед файлами",
"Show hidden files" : "Показувати приховані файли",
+ "Show file type column" : "Показувати стовпець з типом файлу",
"Crop image previews" : "Попередній перегляд перед кадруванням",
"Enable the grid view" : "Увімкнути подання сіткою",
"Enable folder tree" : "Увімкнути дерево каталогів",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "Показувати ці скорочення",
"You" : "Ви",
"Shared multiple times with different people" : "Поділилися кілька разів з різними людьми",
+ "Unable to change the favorite state of the file" : "Неможливо змінити статус вподобаного файлу",
"Error while loading the file data" : "Помилка під час отримання даних щодо файлу",
"Owner" : "Власник",
"Remove from favorites" : "Прибрати зірочку",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Ви намагаєтеся вилучити {count} ресурс","Ви намагаєтеся вилучити {count} ресурси","Ви намагаєтеся вилучити {count} ресурсів","Ви намагаєтеся вилучити {count} ресурсів"],
"Confirm deletion" : "Підтвердіть вилучення",
"Cancel" : "Скасувати",
+ "Download" : "Звантажити",
"Moving \"{source}\" to \"{destination}\" …" : "Переміщення \"{source}\" до \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Копіювання \"{source}\" до \"{destination}\" …",
+ "Destination is not a folder" : "Місце призначення не є каталогом",
+ "This file/folder is already in that directory" : "Такий файл чи каталог вже присутні в цьому каталозі",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Неможливо перемістити файл чи каталог до самого себе або у цей саме підкаталог",
"(copy)" : "(копія)",
"(copy %n)" : "(копія %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Переміщення або копіювання скасовано",
"Open folder {displayName}" : "Відкрити каталог {displayName}",
"Open in Files" : "Відкрити у Файлах",
+ "Open locally" : "Відкрити локально",
+ "Failed to redirect to client" : "Не вдалося перенаправити на клієнта",
"Open file locally" : "Відкрити файл локально",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Тепер файл можна відкрити на вашому пристрої. Якщо він не відкривається, перевірте, що у вас встановлено настільний клієнт синхронізації.",
"Retry and close" : "Спробувати ще раз",
"Open online" : "Відкрити віддалено",
- "Failed to redirect to client" : "Не вдалося перенаправити на клієнта",
- "Open locally" : "Відкрити локально",
"Rename" : "Перейменувати",
"Open details" : "Показати деталі",
"View in folder" : "Переглянути у каталозі",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "Файли успішно переміщено",
"Conflicts resolution skipped" : "Пропущено розв'язання конфліктів",
"Upload cancelled" : "Завантаження скасовано",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Не вдалося перейментувати \"{oldName}\", оскільки він вже відсутній",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Ім'я \"{newName}\" вже використовується у каталозі \"{dir}\". Виберіть інше ім'я.",
+ "Could not rename \"{oldName}\"" : "Не вдалося перейменувати \"{oldName}\"",
"This operation is forbidden" : "Операцію заборонено",
"This directory is unavailable, please check the logs or contact the administrator" : "Каталог недоступний, будь ласка, перевірте файл журналу або зверніться до адміністратора ",
"Storage is temporarily not available" : "Сховище тимчасово недоступне",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "Файл занадто великий",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файли, які ви намагаєтеся завантажити, перевищують максимально дозволений розмір завантаження файлів на сервер.",
"File could not be found" : "Неможливо знайти файл",
- "Download" : "Звантажити",
"Show list view" : "Подання списком",
"Show grid view" : "Подання сіткою",
"Close" : "Закрити",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Скопійовано {origin} до {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} та {nbfiles} інших файлів скопійовано до {destination}",
"{newName} already exists" : "{newName} вже існує",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "Неможливо створити файл \"{file}\", оскільки файл з таким ім'ям вже присутній.",
"Could not create folder \"{dir}\" because it already exists" : "Неможливо створити каталог \"{dir}\", оскільки каталог з таким ім'ям він вже присутній.",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "Пряме посилання було скопійовано (дійсне лише для користувачів, які мають відповідні права доступу)",
"Path" : "Шлях",
"_%n byte_::_%n bytes_" : ["%n байт","%n байти","%n байт","%n байт(ів)"],
- "Favorited" : "Із зірочкою",
+ "Favored" : "Із зірочкою",
+ "Favor" : "Додати зірочку",
"Copy direct link (only works for people who have access to this file/folder)" : "Копіювати пряме посилання (дійсне лише для користувачів, які мають відповідні права доступу)",
"Upload file" : "Завантажити файл",
- "Not favorited" : "Без зірочки",
+ "Not favored" : "Без зірочки",
"An error occurred while trying to update the tags" : "Виникла помилка при спробі оновити мітки",
- "You don't have permission to upload or create files here." : "У вас відсутні дозволи для завантаження або створення файлів в цьому каталозі.",
- "Storage informations" : "Інформація про сховище",
- "Choose file" : "Вибрати файл",
- "Go to the previous folder" : "До попереднього каталогу",
- "Open the files app settings" : "Перейти до налаштувань застосунку файлів",
- "Unable to change the favourite state of the file" : "Неможливо змінити стан \"зірочка\" для цього файла",
- "Edit file locally" : "Редагувати файл на пристрої",
- "Edit online" : "Відкрити онлайн",
- "Create new templates folder" : "Створіть новий каталог для шаблонів",
+ "Upload (max. %s)" : "Завантаження (макс. %s)",
+ "Submitting fields…" : "Поля для надсилання...",
+ "Filter filenames…" : "Вибрати файли за ім'ям ...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} каталог","{folderCount} каталоги","{folderCount} каталогів","{folderCount} каталогів"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файли","{fileCount} файлів","{fileCount} файлів"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 файл та {folderCount} каталог","1 файл та {folderCount} каталоги","1 файл та {folderCount} каталогів","1 файл та {folderCount} каталогів"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} файл та 1 каталог","{fileCount} файли та 1 каталог","{fileCount} файлів та 1 каталог","{fileCount} файлів та 1 каталог"],
"{fileCount} files and {folderCount} folders" : "{fileCount} файлів та {folderCount} каталогів",
- "List of favorites files and folders." : "Список файлів та каталогів із зірочкою.",
"Personal Files" : "Мої документи",
"Text file" : "Текстовий файл",
"New text file.txt" : "Новий текстовий файл.txt",
- "Favored" : "Із зірочкою",
- "Favor" : "Додати зірочку",
- "Not favored" : "Без зірочки",
- "Submitting fields…" : "Поля для надсилання...",
- "Filter filenames…" : "Вибрати файли за ім'ям ...",
- "{count} files could not be converted" : "Неможливо конвертувати {count} файлів",
- "{count} files successfully converted" : "Успішно конвертовано {count} файлів"
+ "%1$s (renamed)" : "%1$s (перейменовано)",
+ "renamed file" : "перейменовано файл",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Після увімкнення сумісности імен файлів з системою Windows наявні файли неможливо буде змінити, але власники зможуть перейменувати ці файли на нові з дійсними іменами."
},
"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);");
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index c27feb57fd8..a0ce459f192 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -52,7 +52,6 @@
"Favorite files" : "Файли із зіркою",
"No favorites" : "Немає улюблених",
"More favorites" : "Ще файли із зіркою",
- "Upload (max. %s)" : "Завантаження (макс. %s)",
"Accept" : "Прийняти",
"Reject" : "Відхилити",
"Incoming ownership transfer from {user}" : "Запит від користувача {user} на передавання прав власника",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "Перенесено від %1$s до %2$s",
"Files compatibility" : "Сумісність файлів",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "Дозволити обмежувати імена файлів для забезпечення сумісності з різними клієнтами. Типово всі імена файлів, які відповідають моделі POSIX (напр., Linux, macOS), дозволені.",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Після увімкнення сумісности імен файлів з системою Windows наявні файли неможливо буде змінити, але власники зможуть перейменувати ці файли на нові з дійсними іменами.",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "Також можлива автоматична міграція файлів після увімкнення цих налаштувань. Ознайомтеся з документацією відповідної команди occ.",
"Enforce Windows compatibility" : "Увімкнути сумісність із Windows",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "Це унеможливить використання імен файлів, які не сумісні з системами Windows, напр., використанння зарезервованих імен або спеціальних символів. Зауважте, що це не обмежить сумісність за регістром символів.",
"File Management" : "Керування файлами",
@@ -93,6 +94,12 @@
"Invalid filename." : "Недійсне ім'я файлу.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Перейменовано \"{oldName}\" на \"{newName}\"",
"Rename file" : "Перейменувати файл",
+ "Folder" : "Каталог",
+ "Unknown file type" : "Невідомий тип файлу",
+ "{ext} image" : "{ext} зображення",
+ "{ext} video" : "{ext} відео",
+ "{ext} audio" : "{ext} аудіо",
+ "{ext} text" : "{ext} текст",
"Pending" : "Очікування",
"Unknown date" : "Невідома дата",
"Clear filter" : "Очистити фільтр",
@@ -103,6 +110,7 @@
"Total rows summary" : "Загалом рядків",
"Toggle selection for all files and folders" : "Перемкнути вибір для всіх файлів та каталогів",
"Name" : "Ім'я",
+ "File type" : "Тип файлу",
"Size" : "Розмір",
"\"{displayName}\" failed on some elements" : "\"{displayName}\" не спрацював у деяких елементах",
"\"{displayName}\" batch action executed successfully" : "Операцію \"{displayName}\" успішно виконано",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "Назви стовпців з кнопками можна впорядковувати",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Список не подається повністю з міркувань обчислювальних потужностей. Файли показуватимуться під час прокручування списку.",
"File not found" : "Файл не знайдено",
- "{count} selected" : "{count} вибрано",
+ "_{count} selected_::_{count} selected_" : ["Вибрано {count}","Вибрано {count}","Вибрано {count} ","Вибрано {count} "],
"{usedQuotaByte} used" : "{usedQuotaByte} використано",
"{used} of {quota} used" : "Використано {used} із {quota}",
"{relative}% used" : "{relative}% використано",
@@ -181,6 +189,7 @@
"Sort favorites first" : "Спочатку показувати із зірочкою",
"Sort folders before files" : "Показувати каталоги перед файлами",
"Show hidden files" : "Показувати приховані файли",
+ "Show file type column" : "Показувати стовпець з типом файлу",
"Crop image previews" : "Попередній перегляд перед кадруванням",
"Enable the grid view" : "Увімкнути подання сіткою",
"Enable folder tree" : "Увімкнути дерево каталогів",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "Показувати ці скорочення",
"You" : "Ви",
"Shared multiple times with different people" : "Поділилися кілька разів з різними людьми",
+ "Unable to change the favorite state of the file" : "Неможливо змінити статус вподобаного файлу",
"Error while loading the file data" : "Помилка під час отримання даних щодо файлу",
"Owner" : "Власник",
"Remove from favorites" : "Прибрати зірочку",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Ви намагаєтеся вилучити {count} ресурс","Ви намагаєтеся вилучити {count} ресурси","Ви намагаєтеся вилучити {count} ресурсів","Ви намагаєтеся вилучити {count} ресурсів"],
"Confirm deletion" : "Підтвердіть вилучення",
"Cancel" : "Скасувати",
+ "Download" : "Звантажити",
"Moving \"{source}\" to \"{destination}\" …" : "Переміщення \"{source}\" до \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Копіювання \"{source}\" до \"{destination}\" …",
+ "Destination is not a folder" : "Місце призначення не є каталогом",
+ "This file/folder is already in that directory" : "Такий файл чи каталог вже присутні в цьому каталозі",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Неможливо перемістити файл чи каталог до самого себе або у цей саме підкаталог",
"(copy)" : "(копія)",
"(copy %n)" : "(копія %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "Переміщення або копіювання скасовано",
"Open folder {displayName}" : "Відкрити каталог {displayName}",
"Open in Files" : "Відкрити у Файлах",
+ "Open locally" : "Відкрити локально",
+ "Failed to redirect to client" : "Не вдалося перенаправити на клієнта",
"Open file locally" : "Відкрити файл локально",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "Тепер файл можна відкрити на вашому пристрої. Якщо він не відкривається, перевірте, що у вас встановлено настільний клієнт синхронізації.",
"Retry and close" : "Спробувати ще раз",
"Open online" : "Відкрити віддалено",
- "Failed to redirect to client" : "Не вдалося перенаправити на клієнта",
- "Open locally" : "Відкрити локально",
"Rename" : "Перейменувати",
"Open details" : "Показати деталі",
"View in folder" : "Переглянути у каталозі",
@@ -320,6 +333,9 @@
"Files moved successfully" : "Файли успішно переміщено",
"Conflicts resolution skipped" : "Пропущено розв'язання конфліктів",
"Upload cancelled" : "Завантаження скасовано",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Не вдалося перейментувати \"{oldName}\", оскільки він вже відсутній",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Ім'я \"{newName}\" вже використовується у каталозі \"{dir}\". Виберіть інше ім'я.",
+ "Could not rename \"{oldName}\"" : "Не вдалося перейменувати \"{oldName}\"",
"This operation is forbidden" : "Операцію заборонено",
"This directory is unavailable, please check the logs or contact the administrator" : "Каталог недоступний, будь ласка, перевірте файл журналу або зверніться до адміністратора ",
"Storage is temporarily not available" : "Сховище тимчасово недоступне",
@@ -351,7 +367,6 @@
"Upload too large" : "Файл занадто великий",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файли, які ви намагаєтеся завантажити, перевищують максимально дозволений розмір завантаження файлів на сервер.",
"File could not be found" : "Неможливо знайти файл",
- "Download" : "Звантажити",
"Show list view" : "Подання списком",
"Show grid view" : "Подання сіткою",
"Close" : "Закрити",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "Скопійовано {origin} до {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} та {nbfiles} інших файлів скопійовано до {destination}",
"{newName} already exists" : "{newName} вже існує",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "Неможливо створити файл \"{file}\", оскільки файл з таким ім'ям вже присутній.",
"Could not create folder \"{dir}\" because it already exists" : "Неможливо створити каталог \"{dir}\", оскільки каталог з таким ім'ям він вже присутній.",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "Пряме посилання було скопійовано (дійсне лише для користувачів, які мають відповідні права доступу)",
"Path" : "Шлях",
"_%n byte_::_%n bytes_" : ["%n байт","%n байти","%n байт","%n байт(ів)"],
- "Favorited" : "Із зірочкою",
+ "Favored" : "Із зірочкою",
+ "Favor" : "Додати зірочку",
"Copy direct link (only works for people who have access to this file/folder)" : "Копіювати пряме посилання (дійсне лише для користувачів, які мають відповідні права доступу)",
"Upload file" : "Завантажити файл",
- "Not favorited" : "Без зірочки",
+ "Not favored" : "Без зірочки",
"An error occurred while trying to update the tags" : "Виникла помилка при спробі оновити мітки",
- "You don't have permission to upload or create files here." : "У вас відсутні дозволи для завантаження або створення файлів в цьому каталозі.",
- "Storage informations" : "Інформація про сховище",
- "Choose file" : "Вибрати файл",
- "Go to the previous folder" : "До попереднього каталогу",
- "Open the files app settings" : "Перейти до налаштувань застосунку файлів",
- "Unable to change the favourite state of the file" : "Неможливо змінити стан \"зірочка\" для цього файла",
- "Edit file locally" : "Редагувати файл на пристрої",
- "Edit online" : "Відкрити онлайн",
- "Create new templates folder" : "Створіть новий каталог для шаблонів",
+ "Upload (max. %s)" : "Завантаження (макс. %s)",
+ "Submitting fields…" : "Поля для надсилання...",
+ "Filter filenames…" : "Вибрати файли за ім'ям ...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} каталог","{folderCount} каталоги","{folderCount} каталогів","{folderCount} каталогів"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файли","{fileCount} файлів","{fileCount} файлів"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 файл та {folderCount} каталог","1 файл та {folderCount} каталоги","1 файл та {folderCount} каталогів","1 файл та {folderCount} каталогів"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} файл та 1 каталог","{fileCount} файли та 1 каталог","{fileCount} файлів та 1 каталог","{fileCount} файлів та 1 каталог"],
"{fileCount} files and {folderCount} folders" : "{fileCount} файлів та {folderCount} каталогів",
- "List of favorites files and folders." : "Список файлів та каталогів із зірочкою.",
"Personal Files" : "Мої документи",
"Text file" : "Текстовий файл",
"New text file.txt" : "Новий текстовий файл.txt",
- "Favored" : "Із зірочкою",
- "Favor" : "Додати зірочку",
- "Not favored" : "Без зірочки",
- "Submitting fields…" : "Поля для надсилання...",
- "Filter filenames…" : "Вибрати файли за ім'ям ...",
- "{count} files could not be converted" : "Неможливо конвертувати {count} файлів",
- "{count} files successfully converted" : "Успішно конвертовано {count} файлів"
+ "%1$s (renamed)" : "%1$s (перейменовано)",
+ "renamed file" : "перейменовано файл",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "Після увімкнення сумісности імен файлів з системою Windows наявні файли неможливо буде змінити, але власники зможуть перейменувати ці файли на нові з дійсними іменами."
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ur_PK.js b/apps/files/l10n/ur_PK.js
deleted file mode 100644
index 094511db425..00000000000
--- a/apps/files/l10n/ur_PK.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files",
- {
- "Unknown error" : "غیر معروف خرابی",
- "Close" : "بند ",
- "Download" : "ڈاؤن لوڈ،",
- "Delete" : "حذف کریں",
- "Unshare" : "شئیرنگ ختم کریں",
- "Name" : "اسم",
- "Save" : "حفظ",
- "Settings" : "ترتیبات"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ur_PK.json b/apps/files/l10n/ur_PK.json
deleted file mode 100644
index 3c859bb452d..00000000000
--- a/apps/files/l10n/ur_PK.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Unknown error" : "غیر معروف خرابی",
- "Close" : "بند ",
- "Download" : "ڈاؤن لوڈ،",
- "Delete" : "حذف کریں",
- "Unshare" : "شئیرنگ ختم کریں",
- "Name" : "اسم",
- "Save" : "حفظ",
- "Settings" : "ترتیبات"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js
index 69ec719ef14..bcdf60036d6 100644
--- a/apps/files/l10n/vi.js
+++ b/apps/files/l10n/vi.js
@@ -47,7 +47,6 @@ OC.L10N.register(
"Invalid folder path" : "Đường dẫn tới thư mục không hợp lệ",
"Folder not found" : "Không thể tìm thấy thư mục",
"No favorites" : "Không có mục ưa thích nào",
- "Upload (max. %s)" : "Tải lên (tối đa %s)",
"Accept" : "Đồng ý",
"Reject" : "Từ chối",
"Incoming ownership transfer from {user}" : "Có yêu cầu chuyển quyền sở hữu từ {user} ",
@@ -87,6 +86,7 @@ OC.L10N.register(
"Invalid filename." : "Tên tập tin không hợp lệ.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Đã đổi tên \"{oldName}\" thành \"{newName}\"",
"Rename file" : "Đổi tên tệp tin",
+ "Folder" : "Thư mục",
"Pending" : "Đang chờ",
"Clear filter" : "Xóa bộ lọc",
"Modified" : "Đã thay đổi vào:",
@@ -105,7 +105,6 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "Tiêu đề cột có thể sắp xếp được.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Danh sách này không được hiển thị đầy đủ để tăng hiệu năng. Các tập tin sẽ được hiển thị khi bạn điều hướng qua danh sách.",
"File not found" : "Không tìm thấy tập tin",
- "{count} selected" : "đã chọn {count} ",
"{usedQuotaByte} used" : "{usedQuotaByte} đã được sử dụng",
"{used} of {quota} used" : "{used} trong {quota} đã được sử dụng",
"{relative}% used" : "đã sử dụng {relative}%",
@@ -199,8 +198,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Bạn sắp xoá {count} mục"],
"Confirm deletion" : "Xác nhận xoá",
"Cancel" : "Hủy bỏ",
+ "Download" : "Tải về",
"Moving \"{source}\" to \"{destination}\" …" : "Di chuyển \"{source}\" đến \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Sao chéo \"{source}\" đến \"{destination}\" …",
+ "Destination is not a folder" : "Đích đến không phải là một thư mục",
+ "This file/folder is already in that directory" : "Tệp/thư mục này đã có trong thư mục đó",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Bạn không thể di chuyển một tập tin/thư mục vào chính nó hoặc vào một thư mục con của chính nó",
"(copy)" : "(sao chép)",
"(copy %n)" : "(sao chép %n)",
@@ -219,9 +221,9 @@ OC.L10N.register(
"Cancelled move or copy operation" : "Đã hủy thao tác di chuyển hoặc sao chép",
"Open folder {displayName}" : "Mở thư mục {displayName}",
"Open in Files" : "Mở trong Tệp",
- "Open file locally" : "Mở tệp cục bộ (local)/ ngoại tuyến",
- "Failed to redirect to client" : "Không thể chuyển hướng đến ứng dụng khách",
"Open locally" : "Mở cục bộ (local)/ ngoại tuyến",
+ "Failed to redirect to client" : "Không thể chuyển hướng đến ứng dụng khách",
+ "Open file locally" : "Mở tệp cục bộ (local)/ ngoại tuyến",
"Rename" : "Đổi tên",
"Open details" : "Mở chi tiết",
"View in folder" : "Xem trong thư mục",
@@ -254,6 +256,9 @@ OC.L10N.register(
"Files moved successfully" : "Tệp tin được di chuyển thành công",
"Conflicts resolution skipped" : "Đã bỏ qua giải quyết xung đột",
"Upload cancelled" : "Hủy tải lên",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Không thể đổi tên \"{oldName}\", tệp tin không còn tồn tại",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tên \"{newName}\" đã được sử dụng trong thư mục \"{dir}\". Vui lòng chọn một tên khác.",
+ "Could not rename \"{oldName}\"" : "Không thể đổi tên \"{oldName}\"",
"This operation is forbidden" : "Thao tác bị cấm",
"This directory is unavailable, please check the logs or contact the administrator" : "Thư mục này không sẵn có, hãy kiểm tra log hoặc liên hệ người quản lý",
"Storage is temporarily not available" : "Kho lưu trữ tạm thời không khả dụng",
@@ -282,7 +287,6 @@ OC.L10N.register(
"Upload too large" : "Tập tin tải lên quá lớn",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .",
"File could not be found" : "Tệp tin không tồn tại",
- "Download" : "Tải về",
"Show list view" : "Hiển thị chế độ xem danh sách",
"Show grid view" : "Hiển thị chế độ xem lưới",
"Close" : "Đóng",
@@ -320,9 +324,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "Được sao chép {origin} vào trong {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Đã sao chép {origin} và {nbfiles} các file vào trong {destination}",
"{newName} already exists" : "{newName} đã có",
- "Could not rename \"{fileName}\", it does not exist any more" : "Không thể đổi tên \"{fileName}\", tập tin không tồn tại",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tên \"{targetName}\" đã được dùng trong thư mục \"{dir}\". Hãy thử tên khác",
- "Could not rename \"{fileName}\"" : "Không thể đổi tên \"{fileName}\"",
"Could not create file \"{file}\"" : "Không thể tạo tập tin \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Không thể tạo tập tin \"{file}\" vì đã có ",
"Could not create folder \"{dir}\" because it already exists" : "Không thể tạo thư mục “{dir}” vì đã có",
@@ -354,31 +355,21 @@ OC.L10N.register(
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["khớp với \"{filter}\""],
"Direct link was copied (only works for people who have access to this file/folder)" : "Đã sao chép đường dẫn trực tiếp(Chỉ áp dụng đối với người dùng có quyền truy cập vào thư mục/tệp tin)",
"Path" : "Đường dẫn",
- "Favorited" : "Được ưa thích",
+ "Favored" : "Được ưa thích",
+ "Favor" : "Ưa thích",
"Copy direct link (only works for people who have access to this file/folder)" : "Sao chép liên kết trực tiếp (chỉ hoạt động đối với những người dùng có quyền truy cập vào tệp / thư mục này)",
"Upload file" : "Tải lên tập tin",
- "Not favorited" : "Không được yêu thích",
+ "Not favored" : "Không được ưa thích",
"An error occurred while trying to update the tags" : "Đã xảy ra lỗi khi cố gắng cập nhật tags",
- "Storage informations" : "Thông tin lưu trữ",
- "Choose file" : "Chọn tập tin",
- "Go to the previous folder" : "Chuyển đến thư mục trước đó",
- "Open the files app settings" : "Mở cài đặt ứng dụng tệp",
- "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",
- "Edit file locally" : "Chỉnh sửa tập tin ngoại tuyến",
- "Edit online" : "Chỉnh sửa trực tuyến",
- "Create new templates folder" : "Tạo thư mục mẫu mới",
+ "Upload (max. %s)" : "Tải lên (tối đa %s)",
+ "Filter filenames…" : "Lọc tên tệp…",
"_{folderCount} folder_::_{folderCount} folders_" : ["thư mục {folderCount}"],
"_{fileCount} file_::_{fileCount} files_" : ["tệp {fileCount}"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tệp và thư mục {folderCount}"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["tệp {fileCount} và 1 thư mục"],
"{fileCount} files and {folderCount} folders" : "Tệp {fileCount} và thư mục {folderCount}",
- "List of favorites files and folders." : "Danh sách các tập tin và thư mục yêu thích.",
"Personal Files" : "Tệp tin cá nhân",
"Text file" : "Tập tin văn bản",
- "New text file.txt" : "Tệp văn bản mới.txt",
- "Favored" : "Được ưa thích",
- "Favor" : "Ưa thích",
- "Not favored" : "Không được ưa thích",
- "Filter filenames…" : "Lọc tên tệp…"
+ "New text file.txt" : "Tệp văn bản mới.txt"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json
index f5b09c82247..b54892c9301 100644
--- a/apps/files/l10n/vi.json
+++ b/apps/files/l10n/vi.json
@@ -45,7 +45,6 @@
"Invalid folder path" : "Đường dẫn tới thư mục không hợp lệ",
"Folder not found" : "Không thể tìm thấy thư mục",
"No favorites" : "Không có mục ưa thích nào",
- "Upload (max. %s)" : "Tải lên (tối đa %s)",
"Accept" : "Đồng ý",
"Reject" : "Từ chối",
"Incoming ownership transfer from {user}" : "Có yêu cầu chuyển quyền sở hữu từ {user} ",
@@ -85,6 +84,7 @@
"Invalid filename." : "Tên tập tin không hợp lệ.",
"Renamed \"{oldName}\" to \"{newName}\"" : "Đã đổi tên \"{oldName}\" thành \"{newName}\"",
"Rename file" : "Đổi tên tệp tin",
+ "Folder" : "Thư mục",
"Pending" : "Đang chờ",
"Clear filter" : "Xóa bộ lọc",
"Modified" : "Đã thay đổi vào:",
@@ -103,7 +103,6 @@
"Column headers with buttons are sortable." : "Tiêu đề cột có thể sắp xếp được.",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Danh sách này không được hiển thị đầy đủ để tăng hiệu năng. Các tập tin sẽ được hiển thị khi bạn điều hướng qua danh sách.",
"File not found" : "Không tìm thấy tập tin",
- "{count} selected" : "đã chọn {count} ",
"{usedQuotaByte} used" : "{usedQuotaByte} đã được sử dụng",
"{used} of {quota} used" : "{used} trong {quota} đã được sử dụng",
"{relative}% used" : "đã sử dụng {relative}%",
@@ -197,8 +196,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Bạn sắp xoá {count} mục"],
"Confirm deletion" : "Xác nhận xoá",
"Cancel" : "Hủy bỏ",
+ "Download" : "Tải về",
"Moving \"{source}\" to \"{destination}\" …" : "Di chuyển \"{source}\" đến \"{destination}\" …",
"Copying \"{source}\" to \"{destination}\" …" : "Sao chéo \"{source}\" đến \"{destination}\" …",
+ "Destination is not a folder" : "Đích đến không phải là một thư mục",
+ "This file/folder is already in that directory" : "Tệp/thư mục này đã có trong thư mục đó",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Bạn không thể di chuyển một tập tin/thư mục vào chính nó hoặc vào một thư mục con của chính nó",
"(copy)" : "(sao chép)",
"(copy %n)" : "(sao chép %n)",
@@ -217,9 +219,9 @@
"Cancelled move or copy operation" : "Đã hủy thao tác di chuyển hoặc sao chép",
"Open folder {displayName}" : "Mở thư mục {displayName}",
"Open in Files" : "Mở trong Tệp",
- "Open file locally" : "Mở tệp cục bộ (local)/ ngoại tuyến",
- "Failed to redirect to client" : "Không thể chuyển hướng đến ứng dụng khách",
"Open locally" : "Mở cục bộ (local)/ ngoại tuyến",
+ "Failed to redirect to client" : "Không thể chuyển hướng đến ứng dụng khách",
+ "Open file locally" : "Mở tệp cục bộ (local)/ ngoại tuyến",
"Rename" : "Đổi tên",
"Open details" : "Mở chi tiết",
"View in folder" : "Xem trong thư mục",
@@ -252,6 +254,9 @@
"Files moved successfully" : "Tệp tin được di chuyển thành công",
"Conflicts resolution skipped" : "Đã bỏ qua giải quyết xung đột",
"Upload cancelled" : "Hủy tải lên",
+ "Could not rename \"{oldName}\", it does not exist any more" : "Không thể đổi tên \"{oldName}\", tệp tin không còn tồn tại",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tên \"{newName}\" đã được sử dụng trong thư mục \"{dir}\". Vui lòng chọn một tên khác.",
+ "Could not rename \"{oldName}\"" : "Không thể đổi tên \"{oldName}\"",
"This operation is forbidden" : "Thao tác bị cấm",
"This directory is unavailable, please check the logs or contact the administrator" : "Thư mục này không sẵn có, hãy kiểm tra log hoặc liên hệ người quản lý",
"Storage is temporarily not available" : "Kho lưu trữ tạm thời không khả dụng",
@@ -280,7 +285,6 @@
"Upload too large" : "Tập tin tải lên quá lớn",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .",
"File could not be found" : "Tệp tin không tồn tại",
- "Download" : "Tải về",
"Show list view" : "Hiển thị chế độ xem danh sách",
"Show grid view" : "Hiển thị chế độ xem lưới",
"Close" : "Đóng",
@@ -318,9 +322,6 @@
"Copied {origin} inside {destination}" : "Được sao chép {origin} vào trong {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "Đã sao chép {origin} và {nbfiles} các file vào trong {destination}",
"{newName} already exists" : "{newName} đã có",
- "Could not rename \"{fileName}\", it does not exist any more" : "Không thể đổi tên \"{fileName}\", tập tin không tồn tại",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Tên \"{targetName}\" đã được dùng trong thư mục \"{dir}\". Hãy thử tên khác",
- "Could not rename \"{fileName}\"" : "Không thể đổi tên \"{fileName}\"",
"Could not create file \"{file}\"" : "Không thể tạo tập tin \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Không thể tạo tập tin \"{file}\" vì đã có ",
"Could not create folder \"{dir}\" because it already exists" : "Không thể tạo thư mục “{dir}” vì đã có",
@@ -352,31 +353,21 @@
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["khớp với \"{filter}\""],
"Direct link was copied (only works for people who have access to this file/folder)" : "Đã sao chép đường dẫn trực tiếp(Chỉ áp dụng đối với người dùng có quyền truy cập vào thư mục/tệp tin)",
"Path" : "Đường dẫn",
- "Favorited" : "Được ưa thích",
+ "Favored" : "Được ưa thích",
+ "Favor" : "Ưa thích",
"Copy direct link (only works for people who have access to this file/folder)" : "Sao chép liên kết trực tiếp (chỉ hoạt động đối với những người dùng có quyền truy cập vào tệp / thư mục này)",
"Upload file" : "Tải lên tập tin",
- "Not favorited" : "Không được yêu thích",
+ "Not favored" : "Không được ưa thích",
"An error occurred while trying to update the tags" : "Đã xảy ra lỗi khi cố gắng cập nhật tags",
- "Storage informations" : "Thông tin lưu trữ",
- "Choose file" : "Chọn tập tin",
- "Go to the previous folder" : "Chuyển đến thư mục trước đó",
- "Open the files app settings" : "Mở cài đặt ứng dụng tệp",
- "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",
- "Edit file locally" : "Chỉnh sửa tập tin ngoại tuyến",
- "Edit online" : "Chỉnh sửa trực tuyến",
- "Create new templates folder" : "Tạo thư mục mẫu mới",
+ "Upload (max. %s)" : "Tải lên (tối đa %s)",
+ "Filter filenames…" : "Lọc tên tệp…",
"_{folderCount} folder_::_{folderCount} folders_" : ["thư mục {folderCount}"],
"_{fileCount} file_::_{fileCount} files_" : ["tệp {fileCount}"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 tệp và thư mục {folderCount}"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["tệp {fileCount} và 1 thư mục"],
"{fileCount} files and {folderCount} folders" : "Tệp {fileCount} và thư mục {folderCount}",
- "List of favorites files and folders." : "Danh sách các tập tin và thư mục yêu thích.",
"Personal Files" : "Tệp tin cá nhân",
"Text file" : "Tập tin văn bản",
- "New text file.txt" : "Tệp văn bản mới.txt",
- "Favored" : "Được ưa thích",
- "Favor" : "Ưa thích",
- "Not favored" : "Không được ưa thích",
- "Filter filenames…" : "Lọc tên tệp…"
+ "New text file.txt" : "Tệp văn bản mới.txt"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index 3dafbd00fb2..1309bf4379f 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "收藏的文件",
"No favorites" : "无收藏",
"More favorites" : "更多收藏",
- "Upload (max. %s)" : "上传 (最大 %s)",
"Accept" : "接受",
"Reject" : "拒绝",
"Incoming ownership transfer from {user}" : "来自 {user} 的所有权转移",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "从 %1$s 转移至 %2$s",
"Files compatibility" : "文件兼容性",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允许限制文件名称以确保文件可以与所有客户端同步。默认状态下,所有POSIX(例如 Linux 或 macOS)系统有效的文件名都是被允许的。",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "启用与 Windows 兼容的文件名后,无法再修改现有文件,但可以由其所有者重命名为有效的新名称。",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "启用此设置后,也可以自动迁移文件,请参阅有关 occ 命令的文档。",
"Enforce Windows compatibility" : "强制 Windows 兼容性",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "这将阻止在 Windows 系统中无效的文件名称,比如使用保留字符。但这不会强制大小写敏感性兼容。",
"File Management" : "文件管理",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "无效文件名称。",
"Renamed \"{oldName}\" to \"{newName}\"" : "已将“{oldName}”重命名为“{newName}”",
"Rename file" : "重命名文件",
+ "Folder" : "文件夹",
+ "Unknown file type" : "未知文件类型",
+ "{ext} image" : "{ext} 图片",
+ "{ext} video" : "{ext} 视频",
+ "{ext} audio" : "{ext} 音频",
+ "{ext} text" : "{ext} 文本",
"Pending" : "等待",
"Unknown date" : "未知日期",
"Clear filter" : "清除筛选",
@@ -105,21 +112,22 @@ OC.L10N.register(
"Total rows summary" : "总行摘要",
"Toggle selection for all files and folders" : "切换所有文件和文件夹的选择",
"Name" : "名称",
+ "File type" : "文件类型",
"Size" : "大小",
"\"{displayName}\" failed on some elements" : "“{displayName}”在某些元素上失败",
"\"{displayName}\" batch action executed successfully" : "批量操作“{displayName}”运行成功",
"\"{displayName}\" action failed" : "“{displayName}”操作执行失败",
"Actions" : "操作",
- "(selected)" : "(选中)",
+ "(selected)" : "(已选择)",
"List of files and folders." : "文件与文件夹列表。",
"You have used your space quota and cannot upload files anymore." : "您的剩余空间配额不足以继续上传文件。",
"Column headers with buttons are sortable." : "带有按钮的列标题可进行排序。",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出于性能考虑,此列表未完全呈现。文件将在您浏览列表时呈现。",
"File not found" : "文件未找到",
- "{count} selected" : "已选中 {count}",
- "{usedQuotaByte} used" : "{usedQuotaByte} 已使用",
- "{used} of {quota} used" : "已使用 {used} / {quota}",
- "{relative}% used" : "{relative}% 已使用",
+ "_{count} selected_::_{count} selected_" : ["已选择 {count} 个"],
+ "{usedQuotaByte} used" : "已使用 {usedQuotaByte}",
+ "{used} of {quota} used" : "已使用 {used}(共 {quota})",
+ "{relative}% used" : "已使用 {relative}%",
"Could not refresh storage stats" : "无法刷新存储统计数据",
"Your storage is full, files can not be updated or synced anymore!" : "您的存储空间已满,文件将无法更新或同步!",
"Storage information" : "存储信息",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "收藏排序优先",
"Sort folders before files" : "将文件夹排在文件前面",
"Show hidden files" : "显示隐藏文件",
+ "Show file type column" : "显示文件类型列",
"Crop image previews" : "裁剪图片预览",
"Enable the grid view" : "启用网格视图",
"Enable folder tree" : "启用文件夹树",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "显示快捷键",
"You" : "您",
"Shared multiple times with different people" : "与不同的用户多次分享",
+ "Unable to change the favorite state of the file" : "无法更改文件的收藏状态",
"Error while loading the file data" : "加载文件数据时出错",
"Owner" : "拥有者",
"Remove from favorites" : "从收藏中移除",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您正要删除 {count} 个项目"],
"Confirm deletion" : "确认删除",
"Cancel" : "取消",
+ "Download" : "下载",
"Moving \"{source}\" to \"{destination}\" …" : "正在移动 “{source}” 至 “{destination}” ...",
"Copying \"{source}\" to \"{destination}\" …" : "正在复制 “{source}” 至 “{destination}” ...",
+ "Destination is not a folder" : "目标不是一个文件夹",
+ "This file/folder is already in that directory" : "该文件/文件夹已经存在与该目录中",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "你无法将文件/文件夹移动至其自身或子文件夹中",
"(copy)" : "(复制)",
"(copy %n)" : "(复制 %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "已取消移动或复制操作",
"Open folder {displayName}" : "打开文件夹{displayName}",
"Open in Files" : "在文件中打开",
+ "Open locally" : "本地打开",
+ "Failed to redirect to client" : "重定向到客户端失败",
"Open file locally" : "在本地打开文件",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "该文件现在应该在你的设备上打开。如果没有,请检查你是否安装了桌面应用程序。",
"Retry and close" : "重试并关闭",
"Open online" : "在线打开",
- "Failed to redirect to client" : "重定向到客户端失败",
- "Open locally" : "本地打开",
"Rename" : "重命名",
"Open details" : "打开详情",
"View in folder" : "在文件夹中查看",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "移动文件成功",
"Conflicts resolution skipped" : "已跳过冲突解决",
"Upload cancelled" : "已取消上传",
+ "Could not rename \"{oldName}\", it does not exist any more" : "无法重命名“{oldName}”,此文件已经不存在",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名称“{newName}”在这个文件夹“{dir}”已经被使用。请选择其他名称。",
+ "Could not rename \"{oldName}\"" : "无法重命名“{oldName}”",
"This operation is forbidden" : "该操作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "此目录不可用,请检查日志或联系管理员",
"Storage is temporarily not available" : "存储空间暂时不可用",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "上传文件过大",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "您尝试上传的文件大小超过了服务器的限制。",
"File could not be found" : "文件未找到",
- "Download" : "下载",
"Show list view" : "显示列表视图",
"Show grid view" : "显示网格视图",
"Close" : "关闭",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "在 {destination} 内复制 {origin}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "在 {destination} 内复制了 {origin} 和 {nbfiles} 个其他文件",
"{newName} already exists" : "{newName} 已经存在",
- "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." : "文件夹“{dir}”中已经存在“{targetName}”。请尝试其它名称。",
- "Could not rename \"{fileName}\"" : "无法重命名“{fileName}”",
"Could not create file \"{file}\"" : "无法创建文件“{file}”",
"Could not create file \"{file}\" because it already exists" : "无法创建文件“{file}”,因为它已经存在",
"Could not create folder \"{dir}\" because it already exists" : "无法创建文件夹“{dir}”,因为它已经存在",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "已复制直接链接(仅适用于有权访问此文件/文件夹的用户)",
"Path" : "路径",
"_%n byte_::_%n bytes_" : ["%n 字节"],
- "Favorited" : "已收藏",
+ "Favored" : "已加入收藏",
+ "Favor" : "收藏",
"Copy direct link (only works for people who have access to this file/folder)" : "复制直接链接(仅适用于有权访问此文件/文件夹的用户)",
"Upload file" : "上传文件",
- "Not favorited" : "未收藏",
+ "Not favored" : "未收藏",
"An error occurred while trying to update the tags" : "更新标签时出错",
- "You don't have permission to upload or create files here." : "您没有在此处上传或创建文件的权限。",
- "Storage informations" : "存储信息",
- "Choose file" : "选择文件",
- "Go to the previous folder" : "回到前一个文件夹",
- "Open the files app settings" : "打开文件设置",
- "Unable to change the favourite state of the file" : "无法修改文件的收藏状态",
- "Edit file locally" : "本地编辑",
- "Edit online" : "在线编辑",
- "Create new templates folder" : "新建模板文件夹",
+ "Upload (max. %s)" : "上传 (最大 %s)",
+ "Submitting fields…" : "提交字段...",
+ "Filter filenames…" : "过滤文件名...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 个文件夹"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 个文件"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 个文件夹及 {folderCount} 个文件夹"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} 个文件及 1 个文件夹"],
"{fileCount} files and {folderCount} folders" : "{fileCount} 个文件及 {folderCount} 个文件夹",
- "List of favorites files and folders." : "收藏文件和文件夹列表",
"Personal Files" : "个人文件",
"Text file" : "文本文件",
"New text file.txt" : "新建文本文件.txt",
- "Favored" : "已加入收藏",
- "Favor" : "收藏",
- "Not favored" : "未收藏",
- "Submitting fields…" : "提交字段...",
- "Filter filenames…" : "过滤文件名...",
- "{count} files could not be converted" : "{count} 个文件无法转换",
- "{count} files successfully converted" : "{count} 个文件已成功转换"
+ "%1$s (renamed)" : "%1$s(已重命名)",
+ "renamed file" : "已重命名文件",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "启用与 Windows 兼容的文件名后,无法再修改现有文件,但可以由其所有者重命名为有效的新名称。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index bb82495355a..aca369c6619 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -52,7 +52,6 @@
"Favorite files" : "收藏的文件",
"No favorites" : "无收藏",
"More favorites" : "更多收藏",
- "Upload (max. %s)" : "上传 (最大 %s)",
"Accept" : "接受",
"Reject" : "拒绝",
"Incoming ownership transfer from {user}" : "来自 {user} 的所有权转移",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "从 %1$s 转移至 %2$s",
"Files compatibility" : "文件兼容性",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允许限制文件名称以确保文件可以与所有客户端同步。默认状态下,所有POSIX(例如 Linux 或 macOS)系统有效的文件名都是被允许的。",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "启用与 Windows 兼容的文件名后,无法再修改现有文件,但可以由其所有者重命名为有效的新名称。",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "启用此设置后,也可以自动迁移文件,请参阅有关 occ 命令的文档。",
"Enforce Windows compatibility" : "强制 Windows 兼容性",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "这将阻止在 Windows 系统中无效的文件名称,比如使用保留字符。但这不会强制大小写敏感性兼容。",
"File Management" : "文件管理",
@@ -93,6 +94,12 @@
"Invalid filename." : "无效文件名称。",
"Renamed \"{oldName}\" to \"{newName}\"" : "已将“{oldName}”重命名为“{newName}”",
"Rename file" : "重命名文件",
+ "Folder" : "文件夹",
+ "Unknown file type" : "未知文件类型",
+ "{ext} image" : "{ext} 图片",
+ "{ext} video" : "{ext} 视频",
+ "{ext} audio" : "{ext} 音频",
+ "{ext} text" : "{ext} 文本",
"Pending" : "等待",
"Unknown date" : "未知日期",
"Clear filter" : "清除筛选",
@@ -103,21 +110,22 @@
"Total rows summary" : "总行摘要",
"Toggle selection for all files and folders" : "切换所有文件和文件夹的选择",
"Name" : "名称",
+ "File type" : "文件类型",
"Size" : "大小",
"\"{displayName}\" failed on some elements" : "“{displayName}”在某些元素上失败",
"\"{displayName}\" batch action executed successfully" : "批量操作“{displayName}”运行成功",
"\"{displayName}\" action failed" : "“{displayName}”操作执行失败",
"Actions" : "操作",
- "(selected)" : "(选中)",
+ "(selected)" : "(已选择)",
"List of files and folders." : "文件与文件夹列表。",
"You have used your space quota and cannot upload files anymore." : "您的剩余空间配额不足以继续上传文件。",
"Column headers with buttons are sortable." : "带有按钮的列标题可进行排序。",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出于性能考虑,此列表未完全呈现。文件将在您浏览列表时呈现。",
"File not found" : "文件未找到",
- "{count} selected" : "已选中 {count}",
- "{usedQuotaByte} used" : "{usedQuotaByte} 已使用",
- "{used} of {quota} used" : "已使用 {used} / {quota}",
- "{relative}% used" : "{relative}% 已使用",
+ "_{count} selected_::_{count} selected_" : ["已选择 {count} 个"],
+ "{usedQuotaByte} used" : "已使用 {usedQuotaByte}",
+ "{used} of {quota} used" : "已使用 {used}(共 {quota})",
+ "{relative}% used" : "已使用 {relative}%",
"Could not refresh storage stats" : "无法刷新存储统计数据",
"Your storage is full, files can not be updated or synced anymore!" : "您的存储空间已满,文件将无法更新或同步!",
"Storage information" : "存储信息",
@@ -181,6 +189,7 @@
"Sort favorites first" : "收藏排序优先",
"Sort folders before files" : "将文件夹排在文件前面",
"Show hidden files" : "显示隐藏文件",
+ "Show file type column" : "显示文件类型列",
"Crop image previews" : "裁剪图片预览",
"Enable the grid view" : "启用网格视图",
"Enable folder tree" : "启用文件夹树",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "显示快捷键",
"You" : "您",
"Shared multiple times with different people" : "与不同的用户多次分享",
+ "Unable to change the favorite state of the file" : "无法更改文件的收藏状态",
"Error while loading the file data" : "加载文件数据时出错",
"Owner" : "拥有者",
"Remove from favorites" : "从收藏中移除",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您正要删除 {count} 个项目"],
"Confirm deletion" : "确认删除",
"Cancel" : "取消",
+ "Download" : "下载",
"Moving \"{source}\" to \"{destination}\" …" : "正在移动 “{source}” 至 “{destination}” ...",
"Copying \"{source}\" to \"{destination}\" …" : "正在复制 “{source}” 至 “{destination}” ...",
+ "Destination is not a folder" : "目标不是一个文件夹",
+ "This file/folder is already in that directory" : "该文件/文件夹已经存在与该目录中",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "你无法将文件/文件夹移动至其自身或子文件夹中",
"(copy)" : "(复制)",
"(copy %n)" : "(复制 %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "已取消移动或复制操作",
"Open folder {displayName}" : "打开文件夹{displayName}",
"Open in Files" : "在文件中打开",
+ "Open locally" : "本地打开",
+ "Failed to redirect to client" : "重定向到客户端失败",
"Open file locally" : "在本地打开文件",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "该文件现在应该在你的设备上打开。如果没有,请检查你是否安装了桌面应用程序。",
"Retry and close" : "重试并关闭",
"Open online" : "在线打开",
- "Failed to redirect to client" : "重定向到客户端失败",
- "Open locally" : "本地打开",
"Rename" : "重命名",
"Open details" : "打开详情",
"View in folder" : "在文件夹中查看",
@@ -320,6 +333,9 @@
"Files moved successfully" : "移动文件成功",
"Conflicts resolution skipped" : "已跳过冲突解决",
"Upload cancelled" : "已取消上传",
+ "Could not rename \"{oldName}\", it does not exist any more" : "无法重命名“{oldName}”,此文件已经不存在",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名称“{newName}”在这个文件夹“{dir}”已经被使用。请选择其他名称。",
+ "Could not rename \"{oldName}\"" : "无法重命名“{oldName}”",
"This operation is forbidden" : "该操作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "此目录不可用,请检查日志或联系管理员",
"Storage is temporarily not available" : "存储空间暂时不可用",
@@ -351,7 +367,6 @@
"Upload too large" : "上传文件过大",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "您尝试上传的文件大小超过了服务器的限制。",
"File could not be found" : "文件未找到",
- "Download" : "下载",
"Show list view" : "显示列表视图",
"Show grid view" : "显示网格视图",
"Close" : "关闭",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "在 {destination} 内复制 {origin}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "在 {destination} 内复制了 {origin} 和 {nbfiles} 个其他文件",
"{newName} already exists" : "{newName} 已经存在",
- "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." : "文件夹“{dir}”中已经存在“{targetName}”。请尝试其它名称。",
- "Could not rename \"{fileName}\"" : "无法重命名“{fileName}”",
"Could not create file \"{file}\"" : "无法创建文件“{file}”",
"Could not create file \"{file}\" because it already exists" : "无法创建文件“{file}”,因为它已经存在",
"Could not create folder \"{dir}\" because it already exists" : "无法创建文件夹“{dir}”,因为它已经存在",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "已复制直接链接(仅适用于有权访问此文件/文件夹的用户)",
"Path" : "路径",
"_%n byte_::_%n bytes_" : ["%n 字节"],
- "Favorited" : "已收藏",
+ "Favored" : "已加入收藏",
+ "Favor" : "收藏",
"Copy direct link (only works for people who have access to this file/folder)" : "复制直接链接(仅适用于有权访问此文件/文件夹的用户)",
"Upload file" : "上传文件",
- "Not favorited" : "未收藏",
+ "Not favored" : "未收藏",
"An error occurred while trying to update the tags" : "更新标签时出错",
- "You don't have permission to upload or create files here." : "您没有在此处上传或创建文件的权限。",
- "Storage informations" : "存储信息",
- "Choose file" : "选择文件",
- "Go to the previous folder" : "回到前一个文件夹",
- "Open the files app settings" : "打开文件设置",
- "Unable to change the favourite state of the file" : "无法修改文件的收藏状态",
- "Edit file locally" : "本地编辑",
- "Edit online" : "在线编辑",
- "Create new templates folder" : "新建模板文件夹",
+ "Upload (max. %s)" : "上传 (最大 %s)",
+ "Submitting fields…" : "提交字段...",
+ "Filter filenames…" : "过滤文件名...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 个文件夹"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 个文件"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 个文件夹及 {folderCount} 个文件夹"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} 个文件及 1 个文件夹"],
"{fileCount} files and {folderCount} folders" : "{fileCount} 个文件及 {folderCount} 个文件夹",
- "List of favorites files and folders." : "收藏文件和文件夹列表",
"Personal Files" : "个人文件",
"Text file" : "文本文件",
"New text file.txt" : "新建文本文件.txt",
- "Favored" : "已加入收藏",
- "Favor" : "收藏",
- "Not favored" : "未收藏",
- "Submitting fields…" : "提交字段...",
- "Filter filenames…" : "过滤文件名...",
- "{count} files could not be converted" : "{count} 个文件无法转换",
- "{count} files successfully converted" : "{count} 个文件已成功转换"
+ "%1$s (renamed)" : "%1$s(已重命名)",
+ "renamed file" : "已重命名文件",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "启用与 Windows 兼容的文件名后,无法再修改现有文件,但可以由其所有者重命名为有效的新名称。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js
index 0a634d1de70..12e62becfe7 100644
--- a/apps/files/l10n/zh_HK.js
+++ b/apps/files/l10n/zh_HK.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "最愛的檔案",
"No favorites" : "沒有最愛",
"More favorites" : "更多最愛",
- "Upload (max. %s)" : "上傳(上限 %s)",
"Accept" : "接受",
"Reject" : "拒絕",
"Incoming ownership transfer from {user}" : "來自 {user} 的擁有權轉移",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "於 %2$s 從 %1$s 轉移",
"Files compatibility" : "檔案兼容性",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允許限製檔案名稱以確保檔案可以與所有客戶端同步。默認情況下,允許 POSIX(例如 Linux 或 macOS)上有效的所有檔案名稱。",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用 Windows 兼容檔案名後,現有的檔案無法再被修改,但其擁有者可以將其重新命名為有效的新名稱。",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "啟用此設定後,還可以自動遷移檔案,請參考有關 occ 指令的說明書。",
"Enforce Windows compatibility" : "實施 Windows 兼容性",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "這將阻止在 Windows 系統上無效的檔案名,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的兼容性。",
"File Management" : "檔案管理",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "檔案名稱無效。",
"Renamed \"{oldName}\" to \"{newName}\"" : "已將「{oldName}」重新命名為「{newName}」",
"Rename file" : "重新命名檔案",
+ "Folder" : "資料夾",
+ "Unknown file type" : "檔案類型不詳",
+ "{ext} image" : "{ext} 圖像",
+ "{ext} video" : "{ext} 視像",
+ "{ext} audio" : "{ext} 音頻",
+ "{ext} text" : "{ext} 文字",
"Pending" : "待定的",
"Unknown date" : "日期不詳",
"Clear filter" : "清空過濾器",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "總列摘要",
"Toggle selection for all files and folders" : "切換所有檔案和資料夾的選擇",
"Name" : "名稱",
+ "File type" : "檔案類型",
"Size" : "大小",
"\"{displayName}\" failed on some elements" : "“{displayName}” 在某些元素上失敗",
"\"{displayName}\" batch action executed successfully" : "成功執行 “{displayName}” 批處理操作",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "具有按鈕的縱列標題可排序。",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於性能考慮,此清單未完全呈現。檔案將在您瀏覽清單時呈現。",
"File not found" : "找不到檔案",
- "{count} selected" : "已選擇 {count} 項",
+ "_{count} selected_::_{count} selected_" : ["已選擇 {count} 項"],
"{usedQuotaByte} used" : "已使用 {usedQuotaByte} ",
"{used} of {quota} used" : "已使用 {quota} 當中的 {used}",
"{relative}% used" : "已使用 {relative}%",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "先排序最愛",
"Sort folders before files" : "將資料夾在檔案之前排序",
"Show hidden files" : "顯示隱藏檔案",
+ "Show file type column" : "顯示檔案類型縱列",
"Crop image previews" : "圖片裁剪預覽",
"Enable the grid view" : "啟用網格檢視",
"Enable folder tree" : "啟用資料夾樹狀結構",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "顯示這些快捷鍵",
"You" : "您",
"Shared multiple times with different people" : "與不同的人多次分享",
+ "Unable to change the favorite state of the file" : "無法更改檔案的最愛狀態",
"Error while loading the file data" : "載入檔案資料失敗",
"Owner" : "擁有者",
"Remove from favorites" : "從最愛中移除",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您即將刪除 {count} 個項目"],
"Confirm deletion" : "確認刪除",
"Cancel" : "取消",
+ "Download" : "下載",
"Moving \"{source}\" to \"{destination}\" …" : "正在移動「{source}」至「{destination}」…",
"Copying \"{source}\" to \"{destination}\" …" : "正在複製「{source}」至「{destination}」…",
+ "Destination is not a folder" : "目標地不是資料夾",
+ "This file/folder is already in that directory" : "此檔案/資料夾已在該目錄中",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "您無法將檔案/資料夾移動到其自身或子資料夾中",
"(copy)" : "(複本)",
"(copy %n)" : "(複本 %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "已取消移動或複製操作",
"Open folder {displayName}" : "打開資料夾 {displayName}",
"Open in Files" : "在「檔案」應用程式中打開",
+ "Open locally" : "在近端打開",
+ "Failed to redirect to client" : "無法重定向到客戶端",
"Open file locally" : "在近端打開檔案",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "檔案現在應該在您的裝置上打開。如果沒有,請檢查您是否已安裝桌面應用程式。",
"Retry and close" : "重試和關閉",
"Open online" : "線上開啟",
- "Failed to redirect to client" : "無法重定向到客戶端",
- "Open locally" : "在近端打開",
"Rename" : "重新命名",
"Open details" : "開啟細節",
"View in folder" : "在資料夾中檢視",
@@ -322,12 +335,16 @@ OC.L10N.register(
"Files moved successfully" : "檔案移動成功",
"Conflicts resolution skipped" : "已略過衝突解決",
"Upload cancelled" : "上傳已取消",
+ "Could not rename \"{oldName}\", it does not exist any more" : "無法命名檔案「{oldName}」,因為此檔案已經不存在",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱「{newName}」在這資料夾「{dir}」已經被使用。請選擇其他名稱。",
+ "Could not rename \"{oldName}\"" : "無法重新命名「{oldName}」",
"This operation is forbidden" : "此操作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法存取,請檢查伺服器記錄檔或聯絡管理員",
"Storage is temporarily not available" : "儲存空間暫時無法使用",
"Unexpected error: {error}" : "意外錯誤:{error}",
"_%n file_::_%n files_" : ["%n 個檔案"],
"_%n folder_::_%n folders_" : ["%n 個資料夾"],
+ "_%n hidden_::_%n hidden_" : ["%n 個隱藏"],
"Filename must not be empty." : "檔案名稱不能為空。",
"\"{char}\" is not allowed inside a filename." : "檔案名稱中不允許出現「{char}」",
"\"{segment}\" is a reserved name and not allowed for filenames." : "「{segment}」是保留名稱,不允許用在檔案名稱。",
@@ -352,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "上傳過大",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "您試圖上傳的檔案大小超過伺服器的限制",
"File could not be found" : "找不到檔案",
- "Download" : "下載",
"Show list view" : "顯示清單視圖",
"Show grid view" : "顯示網格視圖",
"Close" : "關閉",
@@ -391,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "已複製 {origin} 至 {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "已複製 {origin} 和其他 {nbfiles} 個檔案至 {destination}",
"{newName} already exists" : "{newName} 已經存在",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "無法建立檔案「{file}」,因為此檔案已存在",
"Could not create folder \"{dir}\" because it already exists" : "無法建立資料夾 \"{dir}\",因為此資料夾已存在",
@@ -426,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "已複製直接連結(僅適用於有權訪問此檔案/資料夾的人仕)",
"Path" : "路徑",
"_%n byte_::_%n bytes_" : ["%n 位元組"],
- "Favorited" : "已加入最愛",
+ "Favored" : "已加入最愛",
+ "Favor" : "加入最愛",
"Copy direct link (only works for people who have access to this file/folder)" : "複製直接連結(只對能存取的人仕有用)",
"Upload file" : "上傳檔案",
- "Not favorited" : "未加入至最愛",
+ "Not favored" : "未加入最愛",
"An error occurred while trying to update the tags" : "更新標籤時發生錯誤",
- "You don't have permission to upload or create files here." : "您無權在此上傳或建立檔案。",
- "Storage informations" : "儲存資訊",
- "Choose file" : "選擇檔案",
- "Go to the previous folder" : "前往上一個資料夾",
- "Open the files app settings" : "開啟 Files 應用程式設定",
- "Unable to change the favourite state of the file" : "無法更改檔案的最愛狀態",
- "Edit file locally" : "在近端編輯檔案",
- "Edit online" : "在線編輯",
- "Create new templates folder" : "創建新範本資料夾",
+ "Upload (max. %s)" : "上傳(上限 %s)",
+ "Submitting fields…" : "正在遞交欄位 …",
+ "Filter filenames…" : "過濾檔案名 ...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 個資料夾"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 個檔案"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 個檔案與 {folderCount} 個資料夾"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} 個檔案與 1 個資料夾"],
"{fileCount} files and {folderCount} folders" : "{fileCount} 個檔案與 {folderCount} 個資料夾",
- "List of favorites files and folders." : "最愛檔案與資料夾的清單。",
"Personal Files" : "個人檔案",
"Text file" : "文字檔",
"New text file.txt" : "新文字檔.txt",
- "Favored" : "已加入最愛",
- "Favor" : "加入最愛",
- "Not favored" : "未加入最愛",
- "Submitting fields…" : "正在遞交欄位 …",
- "Filter filenames…" : "過濾檔案名 ...",
- "{count} files could not be converted" : "{count} 個檔案無法轉換",
- "{count} files successfully converted" : "{count} 個檔案成功轉換"
+ "%1$s (renamed)" : "%1$s(已重新命名)",
+ "renamed file" : "已重新命名的檔案",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用 Windows 兼容檔案名後,現有的檔案無法再被修改,但其擁有者可以將其重新命名為有效的新名稱。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json
index 04ff1f24cea..c211e9cf075 100644
--- a/apps/files/l10n/zh_HK.json
+++ b/apps/files/l10n/zh_HK.json
@@ -52,7 +52,6 @@
"Favorite files" : "最愛的檔案",
"No favorites" : "沒有最愛",
"More favorites" : "更多最愛",
- "Upload (max. %s)" : "上傳(上限 %s)",
"Accept" : "接受",
"Reject" : "拒絕",
"Incoming ownership transfer from {user}" : "來自 {user} 的擁有權轉移",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "於 %2$s 從 %1$s 轉移",
"Files compatibility" : "檔案兼容性",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允許限製檔案名稱以確保檔案可以與所有客戶端同步。默認情況下,允許 POSIX(例如 Linux 或 macOS)上有效的所有檔案名稱。",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用 Windows 兼容檔案名後,現有的檔案無法再被修改,但其擁有者可以將其重新命名為有效的新名稱。",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "啟用此設定後,還可以自動遷移檔案,請參考有關 occ 指令的說明書。",
"Enforce Windows compatibility" : "實施 Windows 兼容性",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "這將阻止在 Windows 系統上無效的檔案名,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的兼容性。",
"File Management" : "檔案管理",
@@ -93,6 +94,12 @@
"Invalid filename." : "檔案名稱無效。",
"Renamed \"{oldName}\" to \"{newName}\"" : "已將「{oldName}」重新命名為「{newName}」",
"Rename file" : "重新命名檔案",
+ "Folder" : "資料夾",
+ "Unknown file type" : "檔案類型不詳",
+ "{ext} image" : "{ext} 圖像",
+ "{ext} video" : "{ext} 視像",
+ "{ext} audio" : "{ext} 音頻",
+ "{ext} text" : "{ext} 文字",
"Pending" : "待定的",
"Unknown date" : "日期不詳",
"Clear filter" : "清空過濾器",
@@ -103,6 +110,7 @@
"Total rows summary" : "總列摘要",
"Toggle selection for all files and folders" : "切換所有檔案和資料夾的選擇",
"Name" : "名稱",
+ "File type" : "檔案類型",
"Size" : "大小",
"\"{displayName}\" failed on some elements" : "“{displayName}” 在某些元素上失敗",
"\"{displayName}\" batch action executed successfully" : "成功執行 “{displayName}” 批處理操作",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "具有按鈕的縱列標題可排序。",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於性能考慮,此清單未完全呈現。檔案將在您瀏覽清單時呈現。",
"File not found" : "找不到檔案",
- "{count} selected" : "已選擇 {count} 項",
+ "_{count} selected_::_{count} selected_" : ["已選擇 {count} 項"],
"{usedQuotaByte} used" : "已使用 {usedQuotaByte} ",
"{used} of {quota} used" : "已使用 {quota} 當中的 {used}",
"{relative}% used" : "已使用 {relative}%",
@@ -181,6 +189,7 @@
"Sort favorites first" : "先排序最愛",
"Sort folders before files" : "將資料夾在檔案之前排序",
"Show hidden files" : "顯示隱藏檔案",
+ "Show file type column" : "顯示檔案類型縱列",
"Crop image previews" : "圖片裁剪預覽",
"Enable the grid view" : "啟用網格檢視",
"Enable folder tree" : "啟用資料夾樹狀結構",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "顯示這些快捷鍵",
"You" : "您",
"Shared multiple times with different people" : "與不同的人多次分享",
+ "Unable to change the favorite state of the file" : "無法更改檔案的最愛狀態",
"Error while loading the file data" : "載入檔案資料失敗",
"Owner" : "擁有者",
"Remove from favorites" : "從最愛中移除",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您即將刪除 {count} 個項目"],
"Confirm deletion" : "確認刪除",
"Cancel" : "取消",
+ "Download" : "下載",
"Moving \"{source}\" to \"{destination}\" …" : "正在移動「{source}」至「{destination}」…",
"Copying \"{source}\" to \"{destination}\" …" : "正在複製「{source}」至「{destination}」…",
+ "Destination is not a folder" : "目標地不是資料夾",
+ "This file/folder is already in that directory" : "此檔案/資料夾已在該目錄中",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "您無法將檔案/資料夾移動到其自身或子資料夾中",
"(copy)" : "(複本)",
"(copy %n)" : "(複本 %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "已取消移動或複製操作",
"Open folder {displayName}" : "打開資料夾 {displayName}",
"Open in Files" : "在「檔案」應用程式中打開",
+ "Open locally" : "在近端打開",
+ "Failed to redirect to client" : "無法重定向到客戶端",
"Open file locally" : "在近端打開檔案",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "檔案現在應該在您的裝置上打開。如果沒有,請檢查您是否已安裝桌面應用程式。",
"Retry and close" : "重試和關閉",
"Open online" : "線上開啟",
- "Failed to redirect to client" : "無法重定向到客戶端",
- "Open locally" : "在近端打開",
"Rename" : "重新命名",
"Open details" : "開啟細節",
"View in folder" : "在資料夾中檢視",
@@ -320,12 +333,16 @@
"Files moved successfully" : "檔案移動成功",
"Conflicts resolution skipped" : "已略過衝突解決",
"Upload cancelled" : "上傳已取消",
+ "Could not rename \"{oldName}\", it does not exist any more" : "無法命名檔案「{oldName}」,因為此檔案已經不存在",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱「{newName}」在這資料夾「{dir}」已經被使用。請選擇其他名稱。",
+ "Could not rename \"{oldName}\"" : "無法重新命名「{oldName}」",
"This operation is forbidden" : "此操作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法存取,請檢查伺服器記錄檔或聯絡管理員",
"Storage is temporarily not available" : "儲存空間暫時無法使用",
"Unexpected error: {error}" : "意外錯誤:{error}",
"_%n file_::_%n files_" : ["%n 個檔案"],
"_%n folder_::_%n folders_" : ["%n 個資料夾"],
+ "_%n hidden_::_%n hidden_" : ["%n 個隱藏"],
"Filename must not be empty." : "檔案名稱不能為空。",
"\"{char}\" is not allowed inside a filename." : "檔案名稱中不允許出現「{char}」",
"\"{segment}\" is a reserved name and not allowed for filenames." : "「{segment}」是保留名稱,不允許用在檔案名稱。",
@@ -350,7 +367,6 @@
"Upload too large" : "上傳過大",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "您試圖上傳的檔案大小超過伺服器的限制",
"File could not be found" : "找不到檔案",
- "Download" : "下載",
"Show list view" : "顯示清單視圖",
"Show grid view" : "顯示網格視圖",
"Close" : "關閉",
@@ -389,9 +405,6 @@
"Copied {origin} inside {destination}" : "已複製 {origin} 至 {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "已複製 {origin} 和其他 {nbfiles} 個檔案至 {destination}",
"{newName} already exists" : "{newName} 已經存在",
- "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}\"",
"Could not create file \"{file}\" because it already exists" : "無法建立檔案「{file}」,因為此檔案已存在",
"Could not create folder \"{dir}\" because it already exists" : "無法建立資料夾 \"{dir}\",因為此資料夾已存在",
@@ -424,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "已複製直接連結(僅適用於有權訪問此檔案/資料夾的人仕)",
"Path" : "路徑",
"_%n byte_::_%n bytes_" : ["%n 位元組"],
- "Favorited" : "已加入最愛",
+ "Favored" : "已加入最愛",
+ "Favor" : "加入最愛",
"Copy direct link (only works for people who have access to this file/folder)" : "複製直接連結(只對能存取的人仕有用)",
"Upload file" : "上傳檔案",
- "Not favorited" : "未加入至最愛",
+ "Not favored" : "未加入最愛",
"An error occurred while trying to update the tags" : "更新標籤時發生錯誤",
- "You don't have permission to upload or create files here." : "您無權在此上傳或建立檔案。",
- "Storage informations" : "儲存資訊",
- "Choose file" : "選擇檔案",
- "Go to the previous folder" : "前往上一個資料夾",
- "Open the files app settings" : "開啟 Files 應用程式設定",
- "Unable to change the favourite state of the file" : "無法更改檔案的最愛狀態",
- "Edit file locally" : "在近端編輯檔案",
- "Edit online" : "在線編輯",
- "Create new templates folder" : "創建新範本資料夾",
+ "Upload (max. %s)" : "上傳(上限 %s)",
+ "Submitting fields…" : "正在遞交欄位 …",
+ "Filter filenames…" : "過濾檔案名 ...",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 個資料夾"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 個檔案"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 個檔案與 {folderCount} 個資料夾"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} 個檔案與 1 個資料夾"],
"{fileCount} files and {folderCount} folders" : "{fileCount} 個檔案與 {folderCount} 個資料夾",
- "List of favorites files and folders." : "最愛檔案與資料夾的清單。",
"Personal Files" : "個人檔案",
"Text file" : "文字檔",
"New text file.txt" : "新文字檔.txt",
- "Favored" : "已加入最愛",
- "Favor" : "加入最愛",
- "Not favored" : "未加入最愛",
- "Submitting fields…" : "正在遞交欄位 …",
- "Filter filenames…" : "過濾檔案名 ...",
- "{count} files could not be converted" : "{count} 個檔案無法轉換",
- "{count} files successfully converted" : "{count} 個檔案成功轉換"
+ "%1$s (renamed)" : "%1$s(已重新命名)",
+ "renamed file" : "已重新命名的檔案",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用 Windows 兼容檔案名後,現有的檔案無法再被修改,但其擁有者可以將其重新命名為有效的新名稱。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index d38585d78a5..cfdfa03dc07 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -54,7 +54,6 @@ OC.L10N.register(
"Favorite files" : "收藏檔案",
"No favorites" : "沒有最愛",
"More favorites" : "更多收藏",
- "Upload (max. %s)" : "上傳(最多 %s)",
"Accept" : "接受",
"Reject" : "拒絕",
"Incoming ownership transfer from {user}" : "{user} 傳來的所有權轉移",
@@ -71,6 +70,8 @@ OC.L10N.register(
"Transferred from %1$s on %2$s" : "於 %2$s 從 %1$s 轉移",
"Files compatibility" : "檔案相容性",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允許限制檔案名稱以確保檔案可以與所有客戶端同步。預設情況下,允許 POSIX(例如 Linux 或 macOS)上所有有效的檔案名稱。",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用與 Windows 相容的檔案名稱後,無法再修改現有檔案,但可以由其擁有者重新命名為有效的新名稱。",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "啟用此設定後,也可以自動遷移檔案,詳情請參閱關於 occ 命令的文件。",
"Enforce Windows compatibility" : "強制 Windows 相容性",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "這會封鎖在 Windows 系統上無效的檔案名稱,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的相容性。",
"File Management" : "檔案管理",
@@ -95,6 +96,12 @@ OC.L10N.register(
"Invalid filename." : "無效的檔案名稱。",
"Renamed \"{oldName}\" to \"{newName}\"" : "已將「{oldName}」重新命名為「{newName}」",
"Rename file" : "重新命名檔案",
+ "Folder" : "資料夾",
+ "Unknown file type" : "未知檔案類型",
+ "{ext} image" : "{ext} 影像",
+ "{ext} video" : "{ext} 視訊",
+ "{ext} audio" : "{ext} 音訊",
+ "{ext} text" : "{ext} 文字",
"Pending" : "待處理",
"Unknown date" : "未知日期",
"Clear filter" : "清除過濾條件",
@@ -105,6 +112,7 @@ OC.L10N.register(
"Total rows summary" : "總列摘要",
"Toggle selection for all files and folders" : "切換所有檔案和資料夾的選取",
"Name" : "名稱",
+ "File type" : "檔案類型",
"Size" : "大小",
"\"{displayName}\" failed on some elements" : "「{displayName}」在某些元素上失敗",
"\"{displayName}\" batch action executed successfully" : "「{displayName}」批次動作執行成功",
@@ -116,7 +124,7 @@ OC.L10N.register(
"Column headers with buttons are sortable." : "帶有按鈕的欄位標頭為可排序。",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於效能考量,此清單未完全呈現。檔案將在您瀏覽清單時呈現。",
"File not found" : "找不到檔案",
- "{count} selected" : "已選取 {count} 個",
+ "_{count} selected_::_{count} selected_" : ["已選取 {count} 個"],
"{usedQuotaByte} used" : "已使用 {usedQuotaByte}",
"{used} of {quota} used" : "已使用 {used},共 {quota}",
"{relative}% used" : "已使用 {relative}%",
@@ -183,6 +191,7 @@ OC.L10N.register(
"Sort favorites first" : "先排序喜愛",
"Sort folders before files" : "將資料夾排序在檔案前",
"Show hidden files" : "顯示隱藏檔",
+ "Show file type column" : "顯示檔案類型欄位",
"Crop image previews" : "圖片裁剪預覽",
"Enable the grid view" : "啟用格狀檢視",
"Enable folder tree" : "啟用資料夾樹",
@@ -219,6 +228,7 @@ OC.L10N.register(
"Show those shortcuts" : "顯示這些快捷鍵",
"You" : "您",
"Shared multiple times with different people" : "與不同的人多次分享",
+ "Unable to change the favorite state of the file" : "無法變更檔案的喜愛狀態",
"Error while loading the file data" : "載入檔案資料時發生錯誤",
"Owner" : "擁有者",
"Remove from favorites" : "從喜愛中移除",
@@ -259,8 +269,11 @@ OC.L10N.register(
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您將要刪除 {count} 個項目"],
"Confirm deletion" : "確認刪除",
"Cancel" : "取消",
+ "Download" : "下載",
"Moving \"{source}\" to \"{destination}\" …" : "正在移動「{source}」至「{destination}」……",
"Copying \"{source}\" to \"{destination}\" …" : "正在複製「{source}」至「{destination}」……",
+ "Destination is not a folder" : "目的地不是資料夾",
+ "This file/folder is already in that directory" : "此檔案/資料夾已在該目錄中",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "您無法將檔案/資料夾移動到其自身或子資料夾中",
"(copy)" : "(副本)",
"(copy %n)" : "(副本 %n)",
@@ -279,12 +292,12 @@ OC.L10N.register(
"Cancelled move or copy operation" : "已取消移動或複製操作",
"Open folder {displayName}" : "開啟資料夾 {displayName}",
"Open in Files" : "以「檔案」開啟",
+ "Open locally" : "在本機開啟",
+ "Failed to redirect to client" : "重新導向到客戶端失敗",
"Open file locally" : "在本機開啟檔案",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "檔案現在應該可以在您的裝置上開啟。如果打不開,請檢查您是否有安裝桌面應用程式。",
"Retry and close" : "重試並關閉",
"Open online" : "線上開啟",
- "Failed to redirect to client" : "重新導向到客戶端失敗",
- "Open locally" : "在本機開啟",
"Rename" : "重新命名",
"Open details" : "開啟詳細資訊",
"View in folder" : "在資料夾中檢視",
@@ -322,6 +335,9 @@ OC.L10N.register(
"Files moved successfully" : "檔案移動成功",
"Conflicts resolution skipped" : "已略過衝突解決",
"Upload cancelled" : "已取消上傳",
+ "Could not rename \"{oldName}\", it does not exist any more" : "無法命名檔案「{oldName}」,此檔案已不存在",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱「{newName}」在資料夾「{dir}」中已被使用。請改用其他名稱。",
+ "Could not rename \"{oldName}\"" : "無法重新命名「{oldName}」",
"This operation is forbidden" : "此操作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法取用,請檢查伺服器紀錄檔或聯絡管理員",
"Storage is temporarily not available" : "儲存空間暫時無法使用",
@@ -353,7 +369,6 @@ OC.L10N.register(
"Upload too large" : "上傳檔案過大",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "您試圖上傳的檔案大小超過伺服器的限制。",
"File could not be found" : "找不到檔案",
- "Download" : "下載",
"Show list view" : "顯示清單檢視",
"Show grid view" : "顯示格狀檢視",
"Close" : "關閉",
@@ -392,9 +407,6 @@ OC.L10N.register(
"Copied {origin} inside {destination}" : "已將 {origin} 複製到 {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "已將 {origin} 和其他 {nbfiles} 個檔案複製到 {destination}",
"{newName} already exists" : "{newName} 已經存在",
- "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}」",
"Could not create file \"{file}\" because it already exists" : "無法建立檔案「{file}」,因為此檔案已經存在",
"Could not create folder \"{dir}\" because it already exists" : "無法建立資料夾「{dir}」,因為此資料夾已經存在",
@@ -427,35 +439,25 @@ OC.L10N.register(
"Direct link was copied (only works for people who have access to this file/folder)" : "已複製直接連結(僅對有權存取此檔案或資料夾的使用者有用)",
"Path" : "路徑",
"_%n byte_::_%n bytes_" : ["%n 位元組"],
- "Favorited" : "已加入喜愛",
+ "Favored" : "已加入最愛",
+ "Favor" : "加入最愛",
"Copy direct link (only works for people who have access to this file/folder)" : "複製直接連結(僅對有權存取此檔案或資料夾的使用者有用)",
"Upload file" : "上傳檔案",
- "Not favorited" : "未加入至喜愛",
+ "Not favored" : "未加入最愛",
"An error occurred while trying to update the tags" : "更新標籤時發生錯誤",
- "You don't have permission to upload or create files here." : "您無權在此上傳或建立檔案。",
- "Storage informations" : "儲存空間資訊",
- "Choose file" : "選擇檔案",
- "Go to the previous folder" : "前往上一個資料夾",
- "Open the files app settings" : "開啟檔案應用程式設定",
- "Unable to change the favourite state of the file" : "無法更改檔案的喜愛狀態",
- "Edit file locally" : "本機編輯檔案",
- "Edit online" : "線上編輯",
- "Create new templates folder" : "建立新的範本資料夾",
+ "Upload (max. %s)" : "上傳(最多 %s)",
+ "Submitting fields…" : "正在遞交欄位……",
+ "Filter filenames…" : "篩選檔案名稱……",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 個資料夾"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 個檔案"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 個檔案與 {folderCount} 個資料夾"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} 個檔案與 1 個資料夾"],
"{fileCount} files and {folderCount} folders" : "{fileCount} 個檔案與 {folderCount} 個資料夾",
- "List of favorites files and folders." : "喜愛檔案與資料夾的清單。",
"Personal Files" : "個人檔案",
"Text file" : "文字檔案",
"New text file.txt" : "新文字檔案.txt",
- "Favored" : "已加入最愛",
- "Favor" : "加入最愛",
- "Not favored" : "未加入最愛",
- "Submitting fields…" : "正在遞交欄位……",
- "Filter filenames…" : "篩選檔案名稱……",
- "{count} files could not be converted" : "{count} 個檔案無法轉換",
- "{count} files successfully converted" : "{count} 個檔案成功轉換"
+ "%1$s (renamed)" : "%1$s(已重新命名)",
+ "renamed file" : "已重新命名檔案",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用與 Windows 相容的檔案名稱後,無法再修改現有檔案,但可以由其擁有者重新命名為有效的新名稱。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index 761f82ddd03..4af203b309e 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -52,7 +52,6 @@
"Favorite files" : "收藏檔案",
"No favorites" : "沒有最愛",
"More favorites" : "更多收藏",
- "Upload (max. %s)" : "上傳(最多 %s)",
"Accept" : "接受",
"Reject" : "拒絕",
"Incoming ownership transfer from {user}" : "{user} 傳來的所有權轉移",
@@ -69,6 +68,8 @@
"Transferred from %1$s on %2$s" : "於 %2$s 從 %1$s 轉移",
"Files compatibility" : "檔案相容性",
"Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed." : "允許限制檔案名稱以確保檔案可以與所有客戶端同步。預設情況下,允許 POSIX(例如 Linux 或 macOS)上所有有效的檔案名稱。",
+ "After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用與 Windows 相容的檔案名稱後,無法再修改現有檔案,但可以由其擁有者重新命名為有效的新名稱。",
+ "It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command." : "啟用此設定後,也可以自動遷移檔案,詳情請參閱關於 occ 命令的文件。",
"Enforce Windows compatibility" : "強制 Windows 相容性",
"This will block filenames not valid on Windows systems, like using reserved names or special characters. But this will not enforce compatibility of case sensitivity." : "這會封鎖在 Windows 系統上無效的檔案名稱,例如使用保留名稱或特殊字元。但這不會強制區分大小寫的相容性。",
"File Management" : "檔案管理",
@@ -93,6 +94,12 @@
"Invalid filename." : "無效的檔案名稱。",
"Renamed \"{oldName}\" to \"{newName}\"" : "已將「{oldName}」重新命名為「{newName}」",
"Rename file" : "重新命名檔案",
+ "Folder" : "資料夾",
+ "Unknown file type" : "未知檔案類型",
+ "{ext} image" : "{ext} 影像",
+ "{ext} video" : "{ext} 視訊",
+ "{ext} audio" : "{ext} 音訊",
+ "{ext} text" : "{ext} 文字",
"Pending" : "待處理",
"Unknown date" : "未知日期",
"Clear filter" : "清除過濾條件",
@@ -103,6 +110,7 @@
"Total rows summary" : "總列摘要",
"Toggle selection for all files and folders" : "切換所有檔案和資料夾的選取",
"Name" : "名稱",
+ "File type" : "檔案類型",
"Size" : "大小",
"\"{displayName}\" failed on some elements" : "「{displayName}」在某些元素上失敗",
"\"{displayName}\" batch action executed successfully" : "「{displayName}」批次動作執行成功",
@@ -114,7 +122,7 @@
"Column headers with buttons are sortable." : "帶有按鈕的欄位標頭為可排序。",
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於效能考量,此清單未完全呈現。檔案將在您瀏覽清單時呈現。",
"File not found" : "找不到檔案",
- "{count} selected" : "已選取 {count} 個",
+ "_{count} selected_::_{count} selected_" : ["已選取 {count} 個"],
"{usedQuotaByte} used" : "已使用 {usedQuotaByte}",
"{used} of {quota} used" : "已使用 {used},共 {quota}",
"{relative}% used" : "已使用 {relative}%",
@@ -181,6 +189,7 @@
"Sort favorites first" : "先排序喜愛",
"Sort folders before files" : "將資料夾排序在檔案前",
"Show hidden files" : "顯示隱藏檔",
+ "Show file type column" : "顯示檔案類型欄位",
"Crop image previews" : "圖片裁剪預覽",
"Enable the grid view" : "啟用格狀檢視",
"Enable folder tree" : "啟用資料夾樹",
@@ -217,6 +226,7 @@
"Show those shortcuts" : "顯示這些快捷鍵",
"You" : "您",
"Shared multiple times with different people" : "與不同的人多次分享",
+ "Unable to change the favorite state of the file" : "無法變更檔案的喜愛狀態",
"Error while loading the file data" : "載入檔案資料時發生錯誤",
"Owner" : "擁有者",
"Remove from favorites" : "從喜愛中移除",
@@ -257,8 +267,11 @@
"_You are about to delete {count} item_::_You are about to delete {count} items_" : ["您將要刪除 {count} 個項目"],
"Confirm deletion" : "確認刪除",
"Cancel" : "取消",
+ "Download" : "下載",
"Moving \"{source}\" to \"{destination}\" …" : "正在移動「{source}」至「{destination}」……",
"Copying \"{source}\" to \"{destination}\" …" : "正在複製「{source}」至「{destination}」……",
+ "Destination is not a folder" : "目的地不是資料夾",
+ "This file/folder is already in that directory" : "此檔案/資料夾已在該目錄中",
"You cannot move a file/folder onto itself or into a subfolder of itself" : "您無法將檔案/資料夾移動到其自身或子資料夾中",
"(copy)" : "(副本)",
"(copy %n)" : "(副本 %n)",
@@ -277,12 +290,12 @@
"Cancelled move or copy operation" : "已取消移動或複製操作",
"Open folder {displayName}" : "開啟資料夾 {displayName}",
"Open in Files" : "以「檔案」開啟",
+ "Open locally" : "在本機開啟",
+ "Failed to redirect to client" : "重新導向到客戶端失敗",
"Open file locally" : "在本機開啟檔案",
"The file should now open on your device. If it doesn't, please check that you have the desktop app installed." : "檔案現在應該可以在您的裝置上開啟。如果打不開,請檢查您是否有安裝桌面應用程式。",
"Retry and close" : "重試並關閉",
"Open online" : "線上開啟",
- "Failed to redirect to client" : "重新導向到客戶端失敗",
- "Open locally" : "在本機開啟",
"Rename" : "重新命名",
"Open details" : "開啟詳細資訊",
"View in folder" : "在資料夾中檢視",
@@ -320,6 +333,9 @@
"Files moved successfully" : "檔案移動成功",
"Conflicts resolution skipped" : "已略過衝突解決",
"Upload cancelled" : "已取消上傳",
+ "Could not rename \"{oldName}\", it does not exist any more" : "無法命名檔案「{oldName}」,此檔案已不存在",
+ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱「{newName}」在資料夾「{dir}」中已被使用。請改用其他名稱。",
+ "Could not rename \"{oldName}\"" : "無法重新命名「{oldName}」",
"This operation is forbidden" : "此操作被禁止",
"This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法取用,請檢查伺服器紀錄檔或聯絡管理員",
"Storage is temporarily not available" : "儲存空間暫時無法使用",
@@ -351,7 +367,6 @@
"Upload too large" : "上傳檔案過大",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "您試圖上傳的檔案大小超過伺服器的限制。",
"File could not be found" : "找不到檔案",
- "Download" : "下載",
"Show list view" : "顯示清單檢視",
"Show grid view" : "顯示格狀檢視",
"Close" : "關閉",
@@ -390,9 +405,6 @@
"Copied {origin} inside {destination}" : "已將 {origin} 複製到 {destination}",
"Copied {origin} and {nbfiles} other files inside {destination}" : "已將 {origin} 和其他 {nbfiles} 個檔案複製到 {destination}",
"{newName} already exists" : "{newName} 已經存在",
- "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}」",
"Could not create file \"{file}\" because it already exists" : "無法建立檔案「{file}」,因為此檔案已經存在",
"Could not create folder \"{dir}\" because it already exists" : "無法建立資料夾「{dir}」,因為此資料夾已經存在",
@@ -425,35 +437,25 @@
"Direct link was copied (only works for people who have access to this file/folder)" : "已複製直接連結(僅對有權存取此檔案或資料夾的使用者有用)",
"Path" : "路徑",
"_%n byte_::_%n bytes_" : ["%n 位元組"],
- "Favorited" : "已加入喜愛",
+ "Favored" : "已加入最愛",
+ "Favor" : "加入最愛",
"Copy direct link (only works for people who have access to this file/folder)" : "複製直接連結(僅對有權存取此檔案或資料夾的使用者有用)",
"Upload file" : "上傳檔案",
- "Not favorited" : "未加入至喜愛",
+ "Not favored" : "未加入最愛",
"An error occurred while trying to update the tags" : "更新標籤時發生錯誤",
- "You don't have permission to upload or create files here." : "您無權在此上傳或建立檔案。",
- "Storage informations" : "儲存空間資訊",
- "Choose file" : "選擇檔案",
- "Go to the previous folder" : "前往上一個資料夾",
- "Open the files app settings" : "開啟檔案應用程式設定",
- "Unable to change the favourite state of the file" : "無法更改檔案的喜愛狀態",
- "Edit file locally" : "本機編輯檔案",
- "Edit online" : "線上編輯",
- "Create new templates folder" : "建立新的範本資料夾",
+ "Upload (max. %s)" : "上傳(最多 %s)",
+ "Submitting fields…" : "正在遞交欄位……",
+ "Filter filenames…" : "篩選檔案名稱……",
"_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} 個資料夾"],
"_{fileCount} file_::_{fileCount} files_" : ["{fileCount} 個檔案"],
"_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 個檔案與 {folderCount} 個資料夾"],
"_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} 個檔案與 1 個資料夾"],
"{fileCount} files and {folderCount} folders" : "{fileCount} 個檔案與 {folderCount} 個資料夾",
- "List of favorites files and folders." : "喜愛檔案與資料夾的清單。",
"Personal Files" : "個人檔案",
"Text file" : "文字檔案",
"New text file.txt" : "新文字檔案.txt",
- "Favored" : "已加入最愛",
- "Favor" : "加入最愛",
- "Not favored" : "未加入最愛",
- "Submitting fields…" : "正在遞交欄位……",
- "Filter filenames…" : "篩選檔案名稱……",
- "{count} files could not be converted" : "{count} 個檔案無法轉換",
- "{count} files successfully converted" : "{count} 個檔案成功轉換"
+ "%1$s (renamed)" : "%1$s(已重新命名)",
+ "renamed file" : "已重新命名檔案",
+ "After enabling the windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner." : "啟用與 Windows 相容的檔案名稱後,無法再修改現有檔案,但可以由其擁有者重新命名為有效的新名稱。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/lib/Activity/Provider.php b/apps/files/lib/Activity/Provider.php
index 0b8e051c877..faa2bbd0b3b 100644
--- a/apps/files/lib/Activity/Provider.php
+++ b/apps/files/lib/Activity/Provider.php
@@ -319,7 +319,7 @@ class Provider implements IProvider {
protected function getFile($parameter, ?IEvent $event = null): array {
if (is_array($parameter)) {
$path = reset($parameter);
- $id = (string)key($parameter);
+ $id = (int)key($parameter);
} elseif ($event !== null) {
// Legacy from before ownCloud 8.2
$path = $parameter;
@@ -341,7 +341,7 @@ class Provider implements IProvider {
return [
'type' => 'file',
- 'id' => $encryptionContainer->getId(),
+ 'id' => (string)$encryptionContainer->getId(),
'name' => $encryptionContainer->getName(),
'path' => $path,
'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $encryptionContainer->getId()]),
@@ -354,7 +354,7 @@ class Provider implements IProvider {
return [
'type' => 'file',
- 'id' => $id,
+ 'id' => (string)$id,
'name' => basename($path),
'path' => trim($path, '/'),
'link' => $this->url->linkToRouteAbsolute('files.viewcontroller.showFile', ['fileid' => $id]),
diff --git a/apps/files/lib/AppInfo/Application.php b/apps/files/lib/AppInfo/Application.php
index 4b3948d43b5..32c072ef0f4 100644
--- a/apps/files/lib/AppInfo/Application.php
+++ b/apps/files/lib/AppInfo/Application.php
@@ -132,7 +132,6 @@ class Application extends App implements IBootstrap {
public function boot(IBootContext $context): void {
$context->injectFn(Closure::fromCallable([$this, 'registerCollaboration']));
$context->injectFn([Listener::class, 'register']);
- $this->registerTemplates();
$this->registerHooks();
}
@@ -140,13 +139,6 @@ class Application extends App implements IBootstrap {
$providerManager->registerResourceProvider(ResourceProvider::class);
}
- private function registerTemplates(): void {
- $templateManager = \OC_Helper::getFileTemplateManager();
- $templateManager->registerTemplate('application/vnd.oasis.opendocument.presentation', 'core/templates/filetemplates/template.odp');
- $templateManager->registerTemplate('application/vnd.oasis.opendocument.text', 'core/templates/filetemplates/template.odt');
- $templateManager->registerTemplate('application/vnd.oasis.opendocument.spreadsheet', 'core/templates/filetemplates/template.ods');
- }
-
private function registerHooks(): void {
Util::connectHook('\OCP\Config', 'js', '\OCA\Files\App', 'extendJsConfig');
}
diff --git a/apps/files/lib/BackgroundJob/ScanFiles.php b/apps/files/lib/BackgroundJob/ScanFiles.php
index 3a39382d0b4..f3f9093d648 100644
--- a/apps/files/lib/BackgroundJob/ScanFiles.php
+++ b/apps/files/lib/BackgroundJob/ScanFiles.php
@@ -69,7 +69,7 @@ class ScanFiles extends TimedJob {
$query->select('m.user_id')
->from('filecache', 'f')
->leftJoin('f', 'mounts', 'm', $query->expr()->eq('m.storage_id', 'f.storage'))
- ->where($query->expr()->lt('f.size', $query->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
+ ->where($query->expr()->eq('f.size', $query->createNamedParameter(-1, IQueryBuilder::PARAM_INT)))
->andWhere($query->expr()->gt('f.parent', $query->createNamedParameter(-1, IQueryBuilder::PARAM_INT)))
->setMaxResults(10)
->groupBy('f.storage')
@@ -90,7 +90,7 @@ class ScanFiles extends TimedJob {
$query->select('m.user_id')
->from('filecache', 'f')
->leftJoin('f', 'mounts', 'm', $query->expr()->eq('m.storage_id', 'f.storage'))
- ->where($query->expr()->lt('f.size', $query->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
+ ->where($query->expr()->eq('f.size', $query->createNamedParameter(-1, IQueryBuilder::PARAM_INT)))
->andWhere($query->expr()->gt('f.parent', $query->createNamedParameter(-1, IQueryBuilder::PARAM_INT)))
->andWhere($query->expr()->in('f.storage', $query->createNamedParameter($storages, IQueryBuilder::PARAM_INT_ARRAY)))
->setMaxResults(1)
@@ -101,7 +101,7 @@ class ScanFiles extends TimedJob {
$query->select('m.user_id')
->from('filecache', 'f')
->innerJoin('f', 'mounts', 'm', $query->expr()->eq('m.storage_id', 'f.storage'))
- ->where($query->expr()->lt('f.size', $query->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
+ ->where($query->expr()->eq('f.size', $query->createNamedParameter(-1, IQueryBuilder::PARAM_INT)))
->andWhere($query->expr()->gt('f.parent', $query->createNamedParameter(-1, IQueryBuilder::PARAM_INT)))
->setMaxResults(1)
->runAcrossAllShards();
diff --git a/apps/files/lib/Command/Copy.php b/apps/files/lib/Command/Copy.php
index e51a1689907..ad0dfa90de1 100644
--- a/apps/files/lib/Command/Copy.php
+++ b/apps/files/lib/Command/Copy.php
@@ -19,10 +19,9 @@ use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ConfirmationQuestion;
class Copy extends Command {
- private FileUtils $fileUtils;
-
- public function __construct(FileUtils $fileUtils) {
- $this->fileUtils = $fileUtils;
+ public function __construct(
+ private FileUtils $fileUtils,
+ ) {
parent::__construct();
}
diff --git a/apps/files/lib/Command/Move.php b/apps/files/lib/Command/Move.php
index cd9e56f8e29..29dd8860b2a 100644
--- a/apps/files/lib/Command/Move.php
+++ b/apps/files/lib/Command/Move.php
@@ -20,10 +20,9 @@ use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Question\ConfirmationQuestion;
class Move extends Command {
- private FileUtils $fileUtils;
-
- public function __construct(FileUtils $fileUtils) {
- $this->fileUtils = $fileUtils;
+ public function __construct(
+ private FileUtils $fileUtils,
+ ) {
parent::__construct();
}
diff --git a/apps/files/lib/Command/SanitizeFilenames.php b/apps/files/lib/Command/SanitizeFilenames.php
new file mode 100644
index 00000000000..a06b820ee6c
--- /dev/null
+++ b/apps/files/lib/Command/SanitizeFilenames.php
@@ -0,0 +1,151 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Files\Command;
+
+use Exception;
+use OC\Core\Command\Base;
+use OC\Files\FilenameValidator;
+use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
+use OCP\Files\NotPermittedException;
+use OCP\IUser;
+use OCP\IUserManager;
+use OCP\IUserSession;
+use OCP\L10N\IFactory;
+use OCP\Lock\LockedException;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class SanitizeFilenames extends Base {
+
+ private OutputInterface $output;
+ private ?string $charReplacement;
+ private bool $dryRun;
+
+ public function __construct(
+ private IUserManager $userManager,
+ private IRootFolder $rootFolder,
+ private IUserSession $session,
+ private IFactory $l10nFactory,
+ private FilenameValidator $filenameValidator,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ parent::configure();
+
+ $this
+ ->setName('files:sanitize-filenames')
+ ->setDescription('Renames files to match naming constraints')
+ ->addArgument(
+ 'user_id',
+ InputArgument::OPTIONAL | InputArgument::IS_ARRAY,
+ 'will only rename files the given user(s) have access to'
+ )
+ ->addOption(
+ 'dry-run',
+ mode: InputOption::VALUE_NONE,
+ description: 'Do not actually rename any files but just check filenames.',
+ )
+ ->addOption(
+ 'char-replacement',
+ 'c',
+ mode: InputOption::VALUE_REQUIRED,
+ description: 'Replacement for invalid character (by default space, underscore or dash is used)',
+ );
+
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ $this->charReplacement = $input->getOption('char-replacement');
+ // check if replacement is needed
+ $c = $this->filenameValidator->getForbiddenCharacters();
+ if (count($c) > 0) {
+ try {
+ $this->filenameValidator->sanitizeFilename($c[0], $this->charReplacement);
+ } catch (\InvalidArgumentException) {
+ if ($this->charReplacement === null) {
+ $output->writeln('<error>Character replacement required</error>');
+ } else {
+ $output->writeln('<error>Invalid character replacement given</error>');
+ }
+ return 1;
+ }
+ }
+
+ $this->dryRun = $input->getOption('dry-run');
+ if ($this->dryRun) {
+ $output->writeln('<info>Dry run is enabled, no actual renaming will be applied.</>');
+ }
+
+ $this->output = $output;
+ $users = $input->getArgument('user_id');
+ if (!empty($users)) {
+ foreach ($users as $userId) {
+ $user = $this->userManager->get($userId);
+ if ($user === null) {
+ $output->writeln("<error>User '$userId' does not exist - skipping</>");
+ continue;
+ }
+ $this->sanitizeUserFiles($user);
+ }
+ } else {
+ $this->userManager->callForSeenUsers($this->sanitizeUserFiles(...));
+ }
+ return self::SUCCESS;
+ }
+
+ private function sanitizeUserFiles(IUser $user): void {
+ // Set an active user so that event listeners can correctly work (e.g. files versions)
+ $this->session->setVolatileActiveUser($user);
+
+ $this->output->writeln('<info>Analyzing files of ' . $user->getUID() . '</>');
+
+ $folder = $this->rootFolder->getUserFolder($user->getUID());
+ $this->sanitizeFiles($folder);
+ }
+
+ private function sanitizeFiles(Folder $folder): void {
+ foreach ($folder->getDirectoryListing() as $node) {
+ $this->output->writeln('scanning: ' . $node->getPath(), OutputInterface::VERBOSITY_VERBOSE);
+
+ try {
+ $oldName = $node->getName();
+ $newName = $this->filenameValidator->sanitizeFilename($oldName, $this->charReplacement);
+ if ($oldName !== $newName) {
+ $newName = $folder->getNonExistingName($newName);
+ $path = rtrim(dirname($node->getPath()), '/');
+
+ if (!$this->dryRun) {
+ $node->move("$path/$newName");
+ } elseif (!$folder->isCreatable()) {
+ // simulate error for dry run
+ throw new NotPermittedException();
+ }
+ $this->output->writeln('renamed: "' . $oldName . '" to "' . $newName . '"');
+ }
+ } catch (LockedException) {
+ $this->output->writeln('<comment>skipping: ' . $node->getPath() . ' (file is locked)</>');
+ } catch (NotPermittedException) {
+ $this->output->writeln('<comment>skipping: ' . $node->getPath() . ' (no permissions)</>');
+ } catch (Exception $error) {
+ $this->output->writeln('<error>failed: ' . $node->getPath() . '</>');
+ $this->output->writeln('<error>' . $error->getMessage() . '</>', OutputInterface::OUTPUT_NORMAL | OutputInterface::VERBOSITY_VERBOSE);
+ }
+
+ if ($node instanceof Folder) {
+ $this->sanitizeFiles($node);
+ }
+ }
+ }
+
+}
diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php
index 9c57f4b2971..bd99dd28e60 100644
--- a/apps/files/lib/Command/Scan.php
+++ b/apps/files/lib/Command/Scan.php
@@ -11,6 +11,7 @@ use OC\Core\Command\Base;
use OC\Core\Command\InterruptedException;
use OC\DB\Connection;
use OC\DB\ConnectionAdapter;
+use OC\Files\Storage\Wrapper\Jail;
use OC\Files\Utils\Scanner;
use OC\FilesMetadata\FilesMetadataManager;
use OC\ForbiddenException;
@@ -24,6 +25,7 @@ use OCP\Files\NotFoundException;
use OCP\Files\StorageNotAvailableException;
use OCP\FilesMetadata\IFilesMetadataManager;
use OCP\IUserManager;
+use OCP\Lock\LockedException;
use OCP\Server;
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Helper\Table;
@@ -98,7 +100,15 @@ class Scan extends Base {
);
}
- protected function scanFiles(string $user, string $path, ?string $scanMetadata, OutputInterface $output, bool $backgroundScan = false, bool $recursive = true, bool $homeOnly = false): void {
+ protected function scanFiles(
+ string $user,
+ string $path,
+ ?string $scanMetadata,
+ OutputInterface $output,
+ callable $mountFilter,
+ bool $backgroundScan = false,
+ bool $recursive = true,
+ ): void {
$connection = $this->reconnectToDatabase($output);
$scanner = new Scanner(
$user,
@@ -152,7 +162,7 @@ class Scan extends Base {
if ($backgroundScan) {
$scanner->backgroundScan($path);
} else {
- $scanner->scan($path, $recursive, $homeOnly ? [$this, 'filterHomeMount'] : null);
+ $scanner->scan($path, $recursive, $mountFilter);
}
} catch (ForbiddenException $e) {
$output->writeln("<error>Home storage for user $user not writable or 'files' subdirectory missing</error>");
@@ -165,6 +175,12 @@ class Scan extends Base {
} catch (NotFoundException $e) {
$output->writeln('<error>Path not found: ' . $e->getMessage() . '</error>');
++$this->errorsCounter;
+ } catch (LockedException $e) {
+ if (str_starts_with($e->getPath(), 'scanner::')) {
+ $output->writeln('<error>Another process is already scanning \'' . substr($e->getPath(), strlen('scanner::')) . '\'</error>');
+ } else {
+ throw $e;
+ }
} catch (\Exception $e) {
$output->writeln('<error>Exception during scan: ' . $e->getMessage() . '</error>');
$output->writeln('<error>' . $e->getTraceAsString() . '</error>');
@@ -172,7 +188,7 @@ class Scan extends Base {
}
}
- public function filterHomeMount(IMountPoint $mountPoint): bool {
+ public function isHomeMount(IMountPoint $mountPoint): bool {
// any mountpoint inside '/$user/files/'
return substr_count($mountPoint->getMountPoint(), '/') <= 3;
}
@@ -204,6 +220,29 @@ class Scan extends Base {
$metadata = $input->getOption('generate-metadata') ?? '';
}
+ $homeOnly = $input->getOption('home-only');
+ $scannedStorages = [];
+ $mountFilter = function (IMountPoint $mount) use ($homeOnly, &$scannedStorages) {
+ if ($homeOnly && !$this->isHomeMount($mount)) {
+ return false;
+ }
+
+ // when scanning multiple users, the scanner might encounter the same storage multiple times (e.g. external storages, or group folders)
+ // we can filter out any storage we've already scanned to avoid double work
+ $storage = $mount->getStorage();
+ $storageKey = $storage->getId();
+ while ($storage->instanceOfStorage(Jail::class)) {
+ $storageKey .= '/' . $storage->getUnjailedPath('');
+ $storage = $storage->getUnjailedStorage();
+ }
+ if (array_key_exists($storageKey, $scannedStorages)) {
+ return false;
+ }
+
+ $scannedStorages[$storageKey] = true;
+ return true;
+ };
+
$user_count = 0;
foreach ($users as $user) {
if (is_object($user)) {
@@ -213,7 +252,15 @@ class Scan extends Base {
++$user_count;
if ($this->userManager->userExists($user)) {
$output->writeln("Starting scan for user $user_count out of $users_total ($user)");
- $this->scanFiles($user, $path, $metadata, $output, $input->getOption('unscanned'), !$input->getOption('shallow'), $input->getOption('home-only'));
+ $this->scanFiles(
+ $user,
+ $path,
+ $metadata,
+ $output,
+ $mountFilter,
+ $input->getOption('unscanned'),
+ !$input->getOption('shallow'),
+ );
$output->writeln('', OutputInterface::VERBOSITY_VERBOSE);
} else {
$output->writeln("<error>Unknown user $user_count $user</error>");
diff --git a/apps/files/lib/Command/TransferOwnership.php b/apps/files/lib/Command/TransferOwnership.php
index edc73e62c38..104a8fb4985 100644
--- a/apps/files/lib/Command/TransferOwnership.php
+++ b/apps/files/lib/Command/TransferOwnership.php
@@ -11,20 +11,26 @@ namespace OCA\Files\Command;
use OCA\Files\Exception\TransferOwnershipException;
use OCA\Files\Service\OwnershipTransferService;
+use OCA\Files_External\Config\ConfigAdapter;
+use OCP\Files\Mount\IMountManager;
+use OCP\Files\Mount\IMountPoint;
use OCP\IConfig;
use OCP\IUser;
use OCP\IUserManager;
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 TransferOwnership extends Command {
public function __construct(
private IUserManager $userManager,
private OwnershipTransferService $transferService,
private IConfig $config,
+ private IMountManager $mountManager,
) {
parent::__construct();
}
@@ -60,6 +66,16 @@ class TransferOwnership extends Command {
InputOption::VALUE_OPTIONAL,
'transfer incoming user file shares to destination user. Usage: --transfer-incoming-shares=1 (value required)',
'2'
+ )->addOption(
+ 'include-external-storage',
+ null,
+ InputOption::VALUE_NONE,
+ 'include files on external storages, this will _not_ setup an external storage for the target user, but instead moves all the files from the external storages into the target users home directory',
+ )->addOption(
+ 'force-include-external-storage',
+ null,
+ InputOption::VALUE_NONE,
+ 'don\'t ask for confirmation for transferring external storages',
);
}
@@ -87,6 +103,31 @@ class TransferOwnership extends Command {
return self::FAILURE;
}
+ $path = ltrim($input->getOption('path'), '/');
+ $includeExternalStorage = $input->getOption('include-external-storage');
+ if ($includeExternalStorage) {
+ $mounts = $this->mountManager->findIn('/' . rtrim($sourceUserObject->getUID() . '/files/' . $path, '/'));
+ /** @var IMountPoint[] $mounts */
+ $mounts = array_filter($mounts, fn ($mount) => $mount->getMountProvider() === ConfigAdapter::class);
+ if (count($mounts) > 0) {
+ $output->writeln(count($mounts) . ' external storages will be transferred:');
+ foreach ($mounts as $mount) {
+ $output->writeln(' - <info>' . $mount->getMountPoint() . '</info>');
+ }
+ $output->writeln('');
+ $output->writeln('<comment>Any other users with access to these external storages will lose access to the files.</comment>');
+ $output->writeln('');
+ if (!$input->getOption('force-include-external-storage')) {
+ /** @var QuestionHelper $helper */
+ $helper = $this->getHelper('question');
+ $question = new ConfirmationQuestion('Are you sure you want to transfer external storages? (y/N) ', false);
+ if (!$helper->ask($input, $output, $question)) {
+ return self::FAILURE;
+ }
+ }
+ }
+ }
+
try {
$includeIncomingArgument = $input->getOption('transfer-incoming-shares');
@@ -112,11 +153,12 @@ class TransferOwnership extends Command {
$this->transferService->transfer(
$sourceUserObject,
$destinationUserObject,
- ltrim($input->getOption('path'), '/'),
+ $path,
$output,
$input->getOption('move') === true,
false,
- $includeIncoming
+ $includeIncoming,
+ $includeExternalStorage,
);
} catch (TransferOwnershipException $e) {
$output->writeln('<error>' . $e->getMessage() . '</error>');
diff --git a/apps/files/lib/Command/WindowsCompatibleFilenames.php b/apps/files/lib/Command/WindowsCompatibleFilenames.php
new file mode 100644
index 00000000000..84a1b277824
--- /dev/null
+++ b/apps/files/lib/Command/WindowsCompatibleFilenames.php
@@ -0,0 +1,52 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Files\Command;
+
+use OC\Core\Command\Base;
+use OCA\Files\Service\SettingsService;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class WindowsCompatibleFilenames extends Base {
+
+ public function __construct(
+ private SettingsService $service,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ parent::configure();
+
+ $this
+ ->setName('files:windows-compatible-filenames')
+ ->setDescription('Enforce naming constraints for windows compatible filenames')
+ ->addOption('enable', description: 'Enable windows naming constraints')
+ ->addOption('disable', description: 'Disable windows naming constraints');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ if ($input->getOption('enable')) {
+ if ($this->service->hasFilesWindowsSupport()) {
+ $output->writeln('<error>Windows compatible filenames already enforced.</error>', OutputInterface::VERBOSITY_VERBOSE);
+ }
+ $this->service->setFilesWindowsSupport(true);
+ $output->writeln('Windows compatible filenames enforced.');
+ } elseif ($input->getOption('disable')) {
+ if (!$this->service->hasFilesWindowsSupport()) {
+ $output->writeln('<error>Windows compatible filenames already disabled.</error>', OutputInterface::VERBOSITY_VERBOSE);
+ }
+ $this->service->setFilesWindowsSupport(false);
+ $output->writeln('Windows compatible filename constraints removed.');
+ } else {
+ $output->writeln('Windows compatible filenames are ' . ($this->service->hasFilesWindowsSupport() ? 'enforced' : 'disabled'));
+ }
+ return self::SUCCESS;
+ }
+}
diff --git a/apps/files/lib/Controller/TemplateController.php b/apps/files/lib/Controller/TemplateController.php
index 3321fb5f119..ee4c86941c7 100644
--- a/apps/files/lib/Controller/TemplateController.php
+++ b/apps/files/lib/Controller/TemplateController.php
@@ -53,6 +53,24 @@ class TemplateController extends OCSController {
}
/**
+ * List the fields for the template specified by the given file ID
+ *
+ * @param int $fileId File ID of the template
+ * @return DataResponse<Http::STATUS_OK, array<string, FilesTemplateField>, array{}>
+ *
+ * 200: Fields returned
+ */
+ #[NoAdminRequired]
+ public function listTemplateFields(int $fileId): DataResponse {
+ $fields = $this->templateManager->listTemplateFields($fileId);
+
+ return new DataResponse(
+ array_merge([], ...$fields),
+ Http::STATUS_OK
+ );
+ }
+
+ /**
* Create a template
*
* @param string $filePath Path of the file
diff --git a/apps/files/lib/Helper.php b/apps/files/lib/Helper.php
index 82d1cc94934..b1439ac7fa5 100644
--- a/apps/files/lib/Helper.php
+++ b/apps/files/lib/Helper.php
@@ -9,10 +9,6 @@ namespace OCA\Files;
use OC\Files\Filesystem;
use OCP\Files\FileInfo;
-use OCP\Files\IMimeTypeDetector;
-use OCP\Files\NotFoundException;
-use OCP\ITagManager;
-use OCP\Server;
use OCP\Util;
/**
@@ -20,56 +16,6 @@ use OCP\Util;
*/
class Helper {
/**
- * @param string $dir
- * @return array
- * @throws NotFoundException
- */
- public static function buildFileStorageStatistics($dir) {
- // information about storage capacities
- $storageInfo = \OC_Helper::getStorageInfo($dir);
- $l = Util::getL10N('files');
- $maxUploadFileSize = Util::maxUploadFilesize($dir, $storageInfo['free']);
- $maxHumanFileSize = Util::humanFileSize($maxUploadFileSize);
- $maxHumanFileSize = $l->t('Upload (max. %s)', [$maxHumanFileSize]);
-
- return [
- 'uploadMaxFilesize' => $maxUploadFileSize,
- 'maxHumanFilesize' => $maxHumanFileSize,
- 'freeSpace' => $storageInfo['free'],
- 'quota' => $storageInfo['quota'],
- 'total' => $storageInfo['total'],
- 'used' => $storageInfo['used'],
- 'usedSpacePercent' => $storageInfo['relative'],
- 'owner' => $storageInfo['owner'],
- 'ownerDisplayName' => $storageInfo['ownerDisplayName'],
- 'mountType' => $storageInfo['mountType'],
- 'mountPoint' => $storageInfo['mountPoint'],
- ];
- }
-
- /**
- * Determine icon for a given file
- *
- * @param FileInfo $file file info
- * @return string icon URL
- */
- public static function determineIcon($file) {
- if ($file['type'] === 'dir') {
- $icon = Server::get(IMimeTypeDetector::class)->mimeTypeIcon('dir');
- // TODO: move this part to the client side, using mountType
- if ($file->isShared()) {
- $icon = Server::get(IMimeTypeDetector::class)->mimeTypeIcon('dir-shared');
- } elseif ($file->isMounted()) {
- $icon = Server::get(IMimeTypeDetector::class)->mimeTypeIcon('dir-external');
- }
- } else {
- $icon = Server::get(IMimeTypeDetector::class)->mimeTypeIcon($file->getMimetype());
- }
-
- return substr($icon, 0, -3) . 'svg';
- }
-
- /**
* Comparator function to sort files alphabetically and have
* the directories appear first
*
@@ -162,20 +108,6 @@ class Helper {
}
/**
- * Format file info for JSON
- * @param FileInfo[] $fileInfos file infos
- * @return array
- */
- public static function formatFileInfos($fileInfos) {
- $files = [];
- foreach ($fileInfos as $i) {
- $files[] = self::formatFileInfo($i);
- }
-
- return $files;
- }
-
- /**
* Retrieves the contents of the given directory and
* returns it as a sorted array of FileInfo.
*
@@ -192,43 +124,6 @@ class Helper {
}
/**
- * Populate the result set with file tags
- *
- * @psalm-template T of array{tags?: list<string>, file_source: int, ...array<string, mixed>}
- * @param list<T> $fileList
- * @return list<T> file list populated with tags
- */
- public static function populateTags(array $fileList, ITagManager $tagManager) {
- $tagger = $tagManager->load('files');
- $tags = $tagger->getTagsForObjects(array_map(static fn (array $fileData) => $fileData['file_source'], $fileList));
-
- if (!is_array($tags)) {
- throw new \UnexpectedValueException('$tags must be an array');
- }
-
- // Set empty tag array
- foreach ($fileList as &$fileData) {
- $fileData['tags'] = [];
- }
- unset($fileData);
-
- if (!empty($tags)) {
- foreach ($tags as $fileId => $fileTags) {
- foreach ($fileList as &$fileData) {
- if ($fileId !== $fileData['file_source']) {
- continue;
- }
-
- $fileData['tags'] = $fileTags;
- }
- unset($fileData);
- }
- }
-
- return $fileList;
- }
-
- /**
* Sort the given file info array
*
* @param FileInfo[] $files files to sort
diff --git a/apps/files/lib/Listener/SyncLivePhotosListener.php b/apps/files/lib/Listener/SyncLivePhotosListener.php
index 6334e5d16a6..b6773e8c452 100644
--- a/apps/files/lib/Listener/SyncLivePhotosListener.php
+++ b/apps/files/lib/Listener/SyncLivePhotosListener.php
@@ -37,6 +37,8 @@ class SyncLivePhotosListener implements IEventListener {
private array $pendingRenames = [];
/** @var Array<int, bool> */
private array $pendingDeletion = [];
+ /** @var Array<int> */
+ private array $pendingCopies = [];
public function __construct(
private ?Folder $userFolder,
@@ -153,7 +155,6 @@ class SyncLivePhotosListener implements IEventListener {
$targetName = $targetFile->getName();
$peerTargetName = substr($targetName, 0, -strlen($sourceExtension)) . $peerFileExtension;
-
if ($targetParent->nodeExists($peerTargetName)) {
// If the copy was a folder copy, then the peer file already exists.
$targetPeerFile = $targetParent->get($peerTargetName);
@@ -225,6 +226,11 @@ class SyncLivePhotosListener implements IEventListener {
$this->handleCopyRecursive($event, $sourceChild, $targetChild);
}
} elseif ($sourceNode instanceof File && $targetNode instanceof File) {
+ // in case the copy was initiated from this listener, we stop right now
+ if (in_array($sourceNode->getId(), $this->pendingCopies)) {
+ return;
+ }
+
$peerFileId = $this->livePhotosService->getLivePhotoPeerId($sourceNode->getId());
if ($peerFileId === null) {
return;
@@ -234,11 +240,13 @@ class SyncLivePhotosListener implements IEventListener {
return;
}
+ $this->pendingCopies[] = $peerFileId;
if ($event instanceof BeforeNodeCopiedEvent) {
$this->runMoveOrCopyChecks($sourceNode, $targetNode, $peerFile);
} elseif ($event instanceof NodeCopiedEvent) {
$this->handleCopy($sourceNode, $targetNode, $peerFile);
}
+ $this->pendingCopies = array_diff($this->pendingCopies, [$peerFileId]);
} else {
throw new Exception('Source and target type are not matching');
}
diff --git a/apps/files/lib/Service/OwnershipTransferService.php b/apps/files/lib/Service/OwnershipTransferService.php
index 7f6681a9b89..b3a36ee13e5 100644
--- a/apps/files/lib/Service/OwnershipTransferService.php
+++ b/apps/files/lib/Service/OwnershipTransferService.php
@@ -15,10 +15,11 @@ use OC\Files\View;
use OC\User\NoUserException;
use OCA\Encryption\Util;
use OCA\Files\Exception\TransferOwnershipException;
+use OCA\Files_External\Config\ConfigAdapter;
use OCP\Encryption\IManager as IEncryptionManager;
+use OCP\Files\Config\IHomeMountProvider;
use OCP\Files\Config\IUserMountCache;
use OCP\Files\FileInfo;
-use OCP\Files\IHomeStorage;
use OCP\Files\InvalidPathException;
use OCP\Files\IRootFolder;
use OCP\Files\Mount\IMountManager;
@@ -70,6 +71,7 @@ class OwnershipTransferService {
bool $move = false,
bool $firstLogin = false,
bool $transferIncomingShares = false,
+ bool $includeExternalStorage = false,
): void {
$output = $output ?? new NullOutput();
$sourceUid = $sourceUser->getUID();
@@ -149,7 +151,8 @@ class OwnershipTransferService {
$sourcePath,
$finalTarget,
$view,
- $output
+ $output,
+ $includeExternalStorage,
);
$sizeDifference = $sourceSize - $view->getFileInfo($finalTarget)->getSize();
@@ -215,11 +218,14 @@ class OwnershipTransferService {
*
* @throws TransferOwnershipException
*/
- protected function analyse(string $sourceUid,
+ protected function analyse(
+ string $sourceUid,
string $destinationUid,
string $sourcePath,
View $view,
- OutputInterface $output): void {
+ OutputInterface $output,
+ bool $includeExternalStorage = false,
+ ): void {
$output->writeln('Validating quota');
$sourceFileInfo = $view->getFileInfo($sourcePath, false);
if ($sourceFileInfo === false) {
@@ -247,17 +253,22 @@ class OwnershipTransferService {
$encryptedFiles[] = $sourceFileInfo;
} else {
$this->walkFiles($view, $sourcePath,
- function (FileInfo $fileInfo) use ($progress, $masterKeyEnabled, &$encryptedFiles) {
+ function (FileInfo $fileInfo) use ($progress, $masterKeyEnabled, &$encryptedFiles, $includeExternalStorage) {
if ($fileInfo->getType() === FileInfo::TYPE_FOLDER) {
+ $mount = $fileInfo->getMountPoint();
// only analyze into folders from main storage,
- if (!$fileInfo->getStorage()->instanceOfStorage(IHomeStorage::class)) {
+ if (
+ $mount->getMountProvider() instanceof IHomeMountProvider ||
+ ($includeExternalStorage && $mount->getMountProvider() instanceof ConfigAdapter)
+ ) {
+ if ($fileInfo->isEncrypted()) {
+ /* Encrypted folder means e2ee encrypted, we cannot transfer it */
+ $encryptedFiles[] = $fileInfo;
+ }
+ return true;
+ } else {
return false;
}
- if ($fileInfo->isEncrypted()) {
- /* Encrypted folder means e2ee encrypted, we cannot transfer it */
- $encryptedFiles[] = $fileInfo;
- }
- return true;
}
$progress->advance();
if ($fileInfo->isEncrypted() && !$masterKeyEnabled) {
@@ -399,11 +410,14 @@ class OwnershipTransferService {
/**
* @throws TransferOwnershipException
*/
- protected function transferFiles(string $sourceUid,
+ protected function transferFiles(
+ string $sourceUid,
string $sourcePath,
string $finalTarget,
View $view,
- OutputInterface $output): void {
+ OutputInterface $output,
+ bool $includeExternalStorage,
+ ): void {
$output->writeln("Transferring files to $finalTarget ...");
// This change will help user to transfer the folder specified using --path option.
@@ -412,15 +426,50 @@ class OwnershipTransferService {
$view->mkdir($finalTarget);
$finalTarget = $finalTarget . '/' . basename($sourcePath);
}
- if ($view->rename($sourcePath, $finalTarget, ['checkSubMounts' => false]) === false) {
- throw new TransferOwnershipException('Could not transfer files.', 1);
+ $sourceInfo = $view->getFileInfo($sourcePath);
+
+ /// handle the external storages mounted at the root, or the admin specifying an external storage with --path
+ if ($sourceInfo->getInternalPath() === '' && $includeExternalStorage) {
+ $this->moveMountContents($view, $sourcePath, $finalTarget);
+ } else {
+ if ($view->rename($sourcePath, $finalTarget, ['checkSubMounts' => false]) === false) {
+ throw new TransferOwnershipException('Could not transfer files.', 1);
+ }
+ }
+
+ if ($includeExternalStorage) {
+ $nestedMounts = $this->mountManager->findIn($sourcePath);
+ foreach ($nestedMounts as $mount) {
+ if ($mount->getMountProvider() === ConfigAdapter::class) {
+ $relativePath = substr(trim($mount->getMountPoint(), '/'), strlen($sourcePath));
+ $this->moveMountContents($view, $mount->getMountPoint(), $finalTarget . $relativePath);
+ }
+ }
}
+
if (!is_dir("$sourceUid/files")) {
// because the files folder is moved away we need to recreate it
$view->mkdir("$sourceUid/files");
}
}
+ private function moveMountContents(View $rootView, string $source, string $target) {
+ if ($rootView->copy($source, $target)) {
+ // just doing `rmdir` on the mountpoint would cause it to try and unmount the storage
+ // we need to empty the contents instead
+ $content = $rootView->getDirectoryContent($source);
+ foreach ($content as $item) {
+ if ($item->getType() === FileInfo::TYPE_FOLDER) {
+ $rootView->rmdir($item->getPath());
+ } else {
+ $rootView->unlink($item->getPath());
+ }
+ }
+ } else {
+ throw new TransferOwnershipException("Could not transfer $source to $target");
+ }
+ }
+
/**
* @param string $targetLocation New location of the transfered node
* @param array<array{share: IShare, suffix: string}> $shares previously collected share information
diff --git a/apps/files/lib/Service/UserConfig.php b/apps/files/lib/Service/UserConfig.php
index b01caf9f960..a2f2f1c1d14 100644
--- a/apps/files/lib/Service/UserConfig.php
+++ b/apps/files/lib/Service/UserConfig.php
@@ -54,6 +54,12 @@ class UserConfig {
'default' => true,
'allowed' => [true, false],
],
+ [
+ // Whether to show the mime column or not
+ 'key' => 'show_mime_column',
+ 'default' => false,
+ 'allowed' => [true, false],
+ ]
];
protected ?IUser $user = null;
diff --git a/apps/files/lib/Settings/DeclarativeAdminSettings.php b/apps/files/lib/Settings/DeclarativeAdminSettings.php
index e509ad2233b..bbf97cc4d32 100644
--- a/apps/files/lib/Settings/DeclarativeAdminSettings.php
+++ b/apps/files/lib/Settings/DeclarativeAdminSettings.php
@@ -9,6 +9,7 @@ namespace OCA\Files\Settings;
use OCA\Files\Service\SettingsService;
use OCP\IL10N;
+use OCP\IURLGenerator;
use OCP\IUser;
use OCP\Settings\DeclarativeSettingsTypes;
use OCP\Settings\IDeclarativeSettingsFormWithHandlers;
@@ -18,6 +19,7 @@ class DeclarativeAdminSettings implements IDeclarativeSettingsFormWithHandlers {
public function __construct(
private IL10N $l,
private SettingsService $service,
+ private IURLGenerator $urlGenerator,
) {
}
@@ -44,7 +46,12 @@ class DeclarativeAdminSettings implements IDeclarativeSettingsFormWithHandlers {
'section_id' => 'server',
'storage_type' => DeclarativeSettingsTypes::STORAGE_TYPE_EXTERNAL,
'title' => $this->l->t('Files compatibility'),
- 'description' => $this->l->t('Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.'),
+ 'doc_url' => $this->urlGenerator->linkToDocs('admin-windows-compatible-filenames'),
+ 'description' => (
+ $this->l->t('Allow to restrict filenames to ensure files can be synced with all clients. By default all filenames valid on POSIX (e.g. Linux or macOS) are allowed.')
+ . "\n" . $this->l->t('After enabling the Windows compatible filenames, existing files cannot be modified anymore but can be renamed to valid new names by their owner.')
+ . "\n" . $this->l->t('It is also possible to migrate files automatically after enabling this setting, please refer to the documentation about the occ command.')
+ ),
'fields' => [
[
diff --git a/apps/files/openapi.json b/apps/files/openapi.json
index fbb1bd17eeb..c5d6053075c 100644
--- a/apps/files/openapi.json
+++ b/apps/files/openapi.json
@@ -847,12 +847,14 @@
"editorId": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "ID of the editor"
},
"fileId": {
"type": "integer",
"format": "int64",
"nullable": true,
+ "default": null,
"description": "ID of the file"
}
}
@@ -1032,6 +1034,7 @@
"templateId": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "ID of the template"
}
}
@@ -1233,6 +1236,80 @@
}
}
},
+ "/ocs/v2.php/apps/files/api/v1/templates/fields/{fileId}": {
+ "get": {
+ "operationId": "template-list-template-fields",
+ "summary": "List the fields for the template specified by the given file ID",
+ "tags": [
+ "template"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "fileId",
+ "in": "path",
+ "description": "File ID of the template",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Fields returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/components/schemas/TemplateField"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/apps/files/api/v1/templates/create": {
"post": {
"operationId": "template-create",
@@ -2292,6 +2369,7 @@
"destination": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "The target path of the converted file. Written to a temporary file if left empty"
}
}
diff --git a/apps/files/src/actions/openLocallyAction.ts b/apps/files/src/actions/openLocallyAction.ts
index a80cf0cbeed..986b304210c 100644
--- a/apps/files/src/actions/openLocallyAction.ts
+++ b/apps/files/src/actions/openLocallyAction.ts
@@ -13,71 +13,6 @@ import LaptopSvg from '@mdi/svg/svg/laptop.svg?raw'
import IconWeb from '@mdi/svg/svg/web.svg?raw'
import { isPublicShare } from '@nextcloud/sharing/public'
-const confirmLocalEditDialog = (
- localEditCallback: (openingLocally: boolean) => void = () => {},
-) => {
- let callbackCalled = false
-
- return (new DialogBuilder())
- .setName(t('files', 'Open file locally'))
- .setText(t('files', 'The file should now open on your device. If it doesn\'t, please check that you have the desktop app installed.'))
- .setButtons([
- {
- label: t('files', 'Retry and close'),
- type: 'secondary',
- callback: () => {
- callbackCalled = true
- localEditCallback(true)
- },
- },
- {
- label: t('files', 'Open online'),
- icon: IconWeb,
- type: 'primary',
- callback: () => {
- callbackCalled = true
- localEditCallback(false)
- },
- },
- ])
- .build()
- .show()
- .then(() => {
- // Ensure the callback is called even if the dialog is dismissed in other ways
- if (!callbackCalled) {
- localEditCallback(false)
- }
- })
-}
-
-const attemptOpenLocalClient = async (path: string) => {
- openLocalClient(path)
- confirmLocalEditDialog(
- (openLocally: boolean) => {
- if (!openLocally) {
- window.OCA.Viewer.open({ path })
- return
- }
- openLocalClient(path)
- },
- )
-}
-
-const openLocalClient = async function(path: string) {
- const link = generateOcsUrl('apps/files/api/v1') + '/openlocaleditor?format=json'
-
- try {
- const result = await axios.post(link, { path })
- const uid = getCurrentUser()?.uid
- let url = `nc://open/${uid}@` + window.location.host + encodePath(path)
- url += '?token=' + result.data.ocs.data.token
-
- window.open(url, '_self')
- } catch (error) {
- showError(t('files', 'Failed to redirect to client'))
- }
-}
-
export const action = new FileAction({
id: 'edit-locally',
displayName: () => t('files', 'Open locally'),
@@ -99,9 +34,81 @@ export const action = new FileAction({
},
async exec(node: Node) {
- attemptOpenLocalClient(node.path)
+ await attemptOpenLocalClient(node.path)
return null
},
order: 25,
})
+
+/**
+ * Try to open the path in the Nextcloud client.
+ *
+ * If this fails a dialog is shown with 3 options:
+ * 1. Retry: If it fails no further dialog is shown.
+ * 2. Open online: The viewer is used to open the file.
+ * 3. Close the dialog and nothing happens (abort).
+ *
+ * @param path - The path to open
+ */
+async function attemptOpenLocalClient(path: string) {
+ await openLocalClient(path)
+ const result = await confirmLocalEditDialog()
+ if (result === 'local') {
+ await openLocalClient(path)
+ } else if (result === 'online') {
+ window.OCA.Viewer.open({ path })
+ }
+}
+
+/**
+ * Try to open a file in the Nextcloud client.
+ * There is no way to get notified if this action was successfull.
+ *
+ * @param path - Path to open
+ */
+async function openLocalClient(path: string): Promise<void> {
+ const link = generateOcsUrl('apps/files/api/v1') + '/openlocaleditor?format=json'
+
+ try {
+ const result = await axios.post(link, { path })
+ const uid = getCurrentUser()?.uid
+ let url = `nc://open/${uid}@` + window.location.host + encodePath(path)
+ url += '?token=' + result.data.ocs.data.token
+
+ window.open(url, '_self')
+ } catch (error) {
+ showError(t('files', 'Failed to redirect to client'))
+ }
+}
+
+/**
+ * Open the confirmation dialog.
+ */
+async function confirmLocalEditDialog(): Promise<'online'|'local'|false> {
+ let result: 'online'|'local'|false = false
+ const dialog = (new DialogBuilder())
+ .setName(t('files', 'Open file locally'))
+ .setText(t('files', 'The file should now open on your device. If it doesn\'t, please check that you have the desktop app installed.'))
+ .setButtons([
+ {
+ label: t('files', 'Retry and close'),
+ type: 'secondary',
+ callback: () => {
+ result = 'local'
+ },
+ },
+ {
+ label: t('files', 'Open online'),
+ icon: IconWeb,
+ type: 'primary',
+ callback: () => {
+ result = 'online'
+ },
+ },
+ ])
+ .build()
+
+ await dialog.show()
+ return result
+}
diff --git a/apps/files/src/components/FileEntry.vue b/apps/files/src/components/FileEntry.vue
index 9642c4709d8..d66c3fa0ed7 100644
--- a/apps/files/src/components/FileEntry.vue
+++ b/apps/files/src/components/FileEntry.vue
@@ -49,6 +49,15 @@
:opened.sync="openedMenu"
:source="source" />
+ <!-- Mime -->
+ <td v-if="isMimeAvailable"
+ :title="mime"
+ class="files-list__row-mime"
+ data-cy-files-list-row-mime
+ @click="openDetailsIfAvailable">
+ <span>{{ mime }}</span>
+ </td>
+
<!-- Size -->
<td v-if="!compact && isSizeAvailable"
:style="sizeOpacity"
@@ -85,9 +94,10 @@
</template>
<script lang="ts">
-import { formatFileSize } from '@nextcloud/files'
+import { FileType, formatFileSize } from '@nextcloud/files'
import { useHotKey } from '@nextcloud/vue/composables/useHotKey'
import { defineComponent } from 'vue'
+import { t } from '@nextcloud/l10n'
import NcDateTime from '@nextcloud/vue/components/NcDateTime'
import { useNavigation } from '../composables/useNavigation.ts'
@@ -123,6 +133,10 @@ export default defineComponent({
],
props: {
+ isMimeAvailable: {
+ type: Boolean,
+ default: false,
+ },
isSizeAvailable: {
type: Boolean,
default: false,
@@ -186,6 +200,36 @@ export default defineComponent({
return this.currentView.columns || []
},
+ mime() {
+ if (this.source.type === FileType.Folder) {
+ return this.t('files', 'Folder')
+ }
+
+ if (!this.source.mime || this.source.mime === 'application/octet-stream') {
+ return t('files', 'Unknown file type')
+ }
+
+ if (window.OC?.MimeTypeList?.names?.[this.source.mime]) {
+ return window.OC.MimeTypeList.names[this.source.mime]
+ }
+
+ const baseType = this.source.mime.split('/')[0]
+ const ext = this.source?.extension?.toUpperCase().replace(/^\./, '') || ''
+ if (baseType === 'image') {
+ return t('files', '{ext} image', { ext })
+ }
+ if (baseType === 'video') {
+ return t('files', '{ext} video', { ext })
+ }
+ if (baseType === 'audio') {
+ return t('files', '{ext} audio', { ext })
+ }
+ if (baseType === 'text') {
+ return t('files', '{ext} text', { ext })
+ }
+
+ return this.source.mime
+ },
size() {
const size = this.source.size
if (size === undefined || isNaN(size) || size < 0) {
diff --git a/apps/files/src/components/FileEntry/FileEntryPreview.vue b/apps/files/src/components/FileEntry/FileEntryPreview.vue
index 2d5844f851f..506677b49af 100644
--- a/apps/files/src/components/FileEntry/FileEntryPreview.vue
+++ b/apps/files/src/components/FileEntry/FileEntryPreview.vue
@@ -21,6 +21,7 @@
class="files-list__row-icon-blurhash"
aria-hidden="true" />
<img v-if="backgroundFailed !== true"
+ :key="source.fileid"
ref="previewImg"
alt=""
class="files-list__row-icon-preview"
@@ -147,6 +148,17 @@ export default defineComponent({
return null
}
+ if (this.source.attributes['has-preview'] !== true
+ && this.source.mime !== undefined
+ && this.source.mime !== 'application/octet-stream'
+ ) {
+ const previewUrl = generateUrl('/core/mimeicon?mime={mime}', {
+ mime: this.source.mime,
+ })
+ const url = new URL(window.location.origin + previewUrl)
+ return url.href
+ }
+
try {
const previewUrl = this.source.attributes.previewUrl
|| (this.isPublic
diff --git a/apps/files/src/components/FileEntryMixin.ts b/apps/files/src/components/FileEntryMixin.ts
index 589073e7b9a..735490c45b3 100644
--- a/apps/files/src/components/FileEntryMixin.ts
+++ b/apps/files/src/components/FileEntryMixin.ts
@@ -356,7 +356,7 @@ export default defineComponent({
// if ctrl+click / cmd+click (MacOS uses the meta key) or middle mouse button (button & 4), open in new tab
// also if there is no default action use this as a fallback
- const metaKeyPressed = event.ctrlKey || event.metaKey || Boolean(event.button & 4)
+ const metaKeyPressed = event.ctrlKey || event.metaKey || event.button === 1
if (metaKeyPressed || !this.defaultFileAction) {
// If no download permission, then we can not allow to download (direct link) the files
if (isPublicShare() && !isDownloadable(this.source)) {
@@ -368,7 +368,9 @@ export default defineComponent({
: generateUrl('/f/{fileId}', { fileId: this.fileid })
event.preventDefault()
event.stopPropagation()
- window.open(url, metaKeyPressed ? '_self' : undefined)
+
+ // Open the file in a new tab if the meta key or the middle mouse button is clicked
+ window.open(url, metaKeyPressed ? '_blank' : '_self')
return
}
diff --git a/apps/files/src/components/FilesListTableFooter.vue b/apps/files/src/components/FilesListTableFooter.vue
index 63d692c100d..9e8cdc159ee 100644
--- a/apps/files/src/components/FilesListTableFooter.vue
+++ b/apps/files/src/components/FilesListTableFooter.vue
@@ -21,6 +21,10 @@
<!-- Actions -->
<td class="files-list__row-actions" />
+ <!-- Mime -->
+ <td v-if="isMimeAvailable"
+ class="files-list__column files-list__row-mime" />
+
<!-- Size -->
<td v-if="isSizeAvailable"
class="files-list__column files-list__row-size">
@@ -60,6 +64,10 @@ export default defineComponent({
type: View,
required: true,
},
+ isMimeAvailable: {
+ type: Boolean,
+ default: false,
+ },
isMtimeAvailable: {
type: Boolean,
default: false,
diff --git a/apps/files/src/components/FilesListTableHeader.vue b/apps/files/src/components/FilesListTableHeader.vue
index 341d5e1347d..23e631199eb 100644
--- a/apps/files/src/components/FilesListTableHeader.vue
+++ b/apps/files/src/components/FilesListTableHeader.vue
@@ -24,6 +24,14 @@
<!-- Actions -->
<th class="files-list__row-actions" />
+ <!-- Mime -->
+ <th v-if="isMimeAvailable"
+ class="files-list__column files-list__row-mime"
+ :class="{ 'files-list__column--sortable': isMimeAvailable }"
+ :aria-sort="ariaSortForMode('mime')">
+ <FilesListTableHeaderButton :name="t('files', 'File type')" mode="mime" />
+ </th>
+
<!-- Size -->
<th v-if="isSizeAvailable"
class="files-list__column files-list__row-size"
@@ -83,6 +91,10 @@ export default defineComponent({
],
props: {
+ isMimeAvailable: {
+ type: Boolean,
+ default: false,
+ },
isMtimeAvailable: {
type: Boolean,
default: false,
diff --git a/apps/files/src/components/FilesListVirtual.vue b/apps/files/src/components/FilesListVirtual.vue
index 93f567f25a4..feb4b61c53e 100644
--- a/apps/files/src/components/FilesListVirtual.vue
+++ b/apps/files/src/components/FilesListVirtual.vue
@@ -9,6 +9,7 @@
:data-sources="nodes"
:grid-mode="userConfig.grid_view"
:extra-props="{
+ isMimeAvailable,
isMtimeAvailable,
isSizeAvailable,
nodes,
@@ -20,7 +21,9 @@
</template>
<template v-if="!isNoneSelected" #header-overlay>
- <span class="files-list__selected">{{ t('files', '{count} selected', { count: selectedNodes.length }) }}</span>
+ <span class="files-list__selected">
+ {{ n('files', '{count} selected', '{count} selected', selectedNodes.length, { count: selectedNodes.length }) }}
+ </span>
<FilesListTableHeaderActions :current-view="currentView"
:selected-nodes="selectedNodes" />
</template>
@@ -39,6 +42,7 @@
<!-- Table header and sort buttons -->
<FilesListTableHeader ref="thead"
:files-list-width="fileListWidth"
+ :is-mime-available="isMimeAvailable"
:is-mtime-available="isMtimeAvailable"
:is-size-available="isSizeAvailable"
:nodes="nodes" />
@@ -48,6 +52,7 @@
<template #footer>
<FilesListTableFooter :current-view="currentView"
:files-list-width="fileListWidth"
+ :is-mime-available="isMimeAvailable"
:is-mtime-available="isMtimeAvailable"
:is-size-available="isSizeAvailable"
:nodes="nodes"
@@ -65,7 +70,7 @@ import type { Location } from 'vue-router'
import { Folder, Permission, View, getFileActions, FileType } from '@nextcloud/files'
import { showError } from '@nextcloud/dialogs'
import { subscribe, unsubscribe } from '@nextcloud/event-bus'
-import { translate as t } from '@nextcloud/l10n'
+import { n, t } from '@nextcloud/l10n'
import { useHotKey } from '@nextcloud/vue/composables/useHotKey'
import { defineComponent } from 'vue'
@@ -137,6 +142,7 @@ export default defineComponent({
selectionStore,
userConfigStore,
+ n,
t,
}
},
@@ -155,6 +161,16 @@ export default defineComponent({
return this.userConfigStore.userConfig
},
+ isMimeAvailable() {
+ if (!this.userConfig.show_mime_column) {
+ return false
+ }
+ // Hide mime column on narrow screens
+ if (this.fileListWidth < 1024) {
+ return false
+ }
+ return this.nodes.some(node => node.mime !== undefined || node.mime !== 'application/octet-stream')
+ },
isMtimeAvailable() {
// Hide mtime column on narrow screens
if (this.fileListWidth < 768) {
@@ -829,10 +845,12 @@ export default defineComponent({
margin-inline-end: 7px;
}
+ .files-list__row-mime,
.files-list__row-mtime,
.files-list__row-size {
color: var(--color-text-maxcontrast);
}
+
.files-list__row-size {
width: calc(var(--row-height) * 1.5);
// Right align content/text
@@ -843,6 +861,10 @@ export default defineComponent({
width: calc(var(--row-height) * 2);
}
+ .files-list__row-mime {
+ width: calc(var(--row-height) * 2.5);
+ }
+
.files-list__row-column-custom {
width: calc(var(--row-height) * 2);
}
diff --git a/apps/files/src/router/router.ts b/apps/files/src/router/router.ts
index 13e74c26451..00f08c38d31 100644
--- a/apps/files/src/router/router.ts
+++ b/apps/files/src/router/router.ts
@@ -3,10 +3,16 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { RawLocation, Route } from 'vue-router'
+
import { generateUrl } from '@nextcloud/router'
+import { relative } from 'path'
import queryString from 'query-string'
import Router, { isNavigationFailure, NavigationFailureType } from 'vue-router'
import Vue from 'vue'
+
+import { useFilesStore } from '../store/files'
+import { useNavigation } from '../composables/useNavigation'
+import { usePathsStore } from '../store/paths'
import logger from '../logger'
Vue.use(Router)
@@ -68,4 +74,60 @@ const router = new Router({
},
})
+// If navigating back from a folder to a parent folder,
+// we need to keep the current dir fileid so it's highlighted
+// and scrolled into view.
+router.beforeEach((to, from, next) => {
+ if (to.params?.parentIntercept) {
+ delete to.params.parentIntercept
+ next()
+ return
+ }
+
+ const fromDir = (from.query?.dir || '/') as string
+ const toDir = (to.query?.dir || '/') as string
+
+ // We are going back to a parent directory
+ if (relative(fromDir, toDir) === '..') {
+ const { currentView } = useNavigation()
+ const { getNode } = useFilesStore()
+ const { getPath } = usePathsStore()
+
+ if (!currentView.value?.id) {
+ logger.error('No current view id found, cannot navigate to parent directory', { fromDir, toDir })
+ return next()
+ }
+
+ // Get the previous parent's file id
+ const fromSource = getPath(currentView.value?.id, fromDir)
+ if (!fromSource) {
+ logger.error('No source found for the parent directory', { fromDir, toDir })
+ return next()
+ }
+
+ const fileId = getNode(fromSource)?.fileid
+ if (!fileId) {
+ logger.error('No fileid found for the parent directory', { fromDir, toDir, fromSource })
+ return next()
+ }
+
+ logger.debug('Navigating back to parent directory', { fromDir, toDir, fileId })
+ next({
+ name: 'filelist',
+ query: to.query,
+ params: {
+ ...to.params,
+ fileid: String(fileId),
+ // Prevents the beforeEach from being called again
+ parentIntercept: 'true',
+ },
+ // Replace the current history entry
+ replace: true,
+ })
+ }
+
+ // else, we just continue
+ next()
+})
+
export default router
diff --git a/apps/files/src/services/HotKeysService.spec.ts b/apps/files/src/services/HotKeysService.spec.ts
index c732c728ce5..7bbba77b222 100644
--- a/apps/files/src/services/HotKeysService.spec.ts
+++ b/apps/files/src/services/HotKeysService.spec.ts
@@ -61,6 +61,7 @@ describe('HotKeysService testing', () => {
activeStore.setActiveNode(file)
window.OCA = { Files: { Sidebar: { open: () => {}, setActiveTab: () => {} } } }
+ // We only mock what needed, we do not need Files.Router.goTo or Files.Navigation
window.OCP = { Files: { Router: { goToRoute: goToRouteMock, params: {}, query: {} } } }
initialState = document.createElement('input')
@@ -73,26 +74,26 @@ describe('HotKeysService testing', () => {
})
it('Pressing d should open the sidebar once', () => {
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD' }))
+ dispatchEvent({ key: 'd', code: 'KeyD' })
// Modifier keys should not trigger the action
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD', ctrlKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD', altKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD', shiftKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'd', code: 'KeyD', metaKey: true }))
+ dispatchEvent({ key: 'd', code: 'KeyD', ctrlKey: true })
+ dispatchEvent({ key: 'd', code: 'KeyD', altKey: true })
+ dispatchEvent({ key: 'd', code: 'KeyD', shiftKey: true })
+ dispatchEvent({ key: 'd', code: 'KeyD', metaKey: true })
expect(sidebarAction.enabled).toHaveReturnedWith(true)
expect(sidebarAction.exec).toHaveBeenCalledOnce()
})
it('Pressing F2 should rename the file', () => {
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2' }))
+ dispatchEvent({ key: 'F2', code: 'F2' })
// Modifier keys should not trigger the action
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2', ctrlKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2', altKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2', shiftKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'F2', code: 'F2', metaKey: true }))
+ dispatchEvent({ key: 'F2', code: 'F2', ctrlKey: true })
+ dispatchEvent({ key: 'F2', code: 'F2', altKey: true })
+ dispatchEvent({ key: 'F2', code: 'F2', shiftKey: true })
+ dispatchEvent({ key: 'F2', code: 'F2', metaKey: true })
expect(renameAction.enabled).toHaveReturnedWith(true)
expect(renameAction.exec).toHaveBeenCalledOnce()
@@ -100,29 +101,29 @@ describe('HotKeysService testing', () => {
it('Pressing s should toggle favorite', () => {
vi.spyOn(axios, 'post').mockImplementationOnce(() => Promise.resolve())
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS' }))
+ dispatchEvent({ key: 's', code: 'KeyS' })
// Modifier keys should not trigger the action
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS', ctrlKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS', altKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS', shiftKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 's', code: 'KeyS', metaKey: true }))
+ dispatchEvent({ key: 's', code: 'KeyS', ctrlKey: true })
+ dispatchEvent({ key: 's', code: 'KeyS', altKey: true })
+ dispatchEvent({ key: 's', code: 'KeyS', shiftKey: true })
+ dispatchEvent({ key: 's', code: 'KeyS', metaKey: true })
expect(favoriteAction.enabled).toHaveReturnedWith(true)
expect(favoriteAction.exec).toHaveBeenCalledOnce()
})
it('Pressing Delete should delete the file', async () => {
- // @ts-expect-error mocking private field
+ // @ts-expect-error unit testing
vi.spyOn(deleteAction._action, 'exec').mockResolvedValue(() => true)
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete' }))
+ dispatchEvent({ key: 'Delete', code: 'Delete' })
// Modifier keys should not trigger the action
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete', ctrlKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete', altKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete', shiftKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'Delete', code: 'Delete', metaKey: true }))
+ dispatchEvent({ key: 'Delete', code: 'Delete', ctrlKey: true })
+ dispatchEvent({ key: 'Delete', code: 'Delete', altKey: true })
+ dispatchEvent({ key: 'Delete', code: 'Delete', shiftKey: true })
+ dispatchEvent({ key: 'Delete', code: 'Delete', metaKey: true })
expect(deleteAction.enabled).toHaveReturnedWith(true)
expect(deleteAction.exec).toHaveBeenCalledOnce()
@@ -132,7 +133,7 @@ describe('HotKeysService testing', () => {
expect(goToRouteMock).toHaveBeenCalledTimes(0)
window.OCP.Files.Router.query = { dir: '/foo/bar' }
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', code: 'ArrowUp', altKey: true }))
+ dispatchEvent({ key: 'ArrowUp', code: 'ArrowUp', altKey: true })
expect(goToRouteMock).toHaveBeenCalledOnce()
expect(goToRouteMock.mock.calls[0][2].dir).toBe('/foo')
@@ -145,9 +146,7 @@ describe('HotKeysService testing', () => {
userConfigStore.userConfig.grid_view = false
expect(userConfigStore.userConfig.grid_view).toBe(false)
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'v', code: 'KeyV' }))
- await nextTick()
-
+ dispatchEvent({ key: 'v', code: 'KeyV' })
expect(userConfigStore.userConfig.grid_view).toBe(true)
})
@@ -164,9 +163,19 @@ describe('HotKeysService testing', () => {
userConfigStore.userConfig.grid_view = false
expect(userConfigStore.userConfig.grid_view).toBe(false)
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 'v', code: 'KeyV', [modifier]: true }))
+ dispatchEvent(new KeyboardEvent('keydown', { key: 'v', code: 'KeyV', [modifier]: true }))
+
await nextTick()
expect(userConfigStore.userConfig.grid_view).toBe(false)
})
})
+
+/**
+ * Helper to dispatch the correct event.
+ *
+ * @param init - KeyboardEvent options
+ */
+function dispatchEvent(init: KeyboardEventInit) {
+ document.body.dispatchEvent(new KeyboardEvent('keydown', { ...init, bubbles: true }))
+}
diff --git a/apps/files/src/services/Templates.js b/apps/files/src/services/Templates.js
index 3a0a0fdb809..d7f25846ceb 100644
--- a/apps/files/src/services/Templates.js
+++ b/apps/files/src/services/Templates.js
@@ -11,6 +11,11 @@ export const getTemplates = async function() {
return response.data.ocs.data
}
+export const getTemplateFields = async function(fileId) {
+ const response = await axios.get(generateOcsUrl(`apps/files/api/v1/templates/fields/${fileId}`))
+ return response.data.ocs.data
+}
+
/**
* Create a new file from a specified template
*
diff --git a/apps/files/src/store/renaming.ts b/apps/files/src/store/renaming.ts
index 2ac9e06ba16..fc61be3bd3b 100644
--- a/apps/files/src/store/renaming.ts
+++ b/apps/files/src/store/renaming.ts
@@ -14,6 +14,7 @@ import { defineStore } from 'pinia'
import logger from '../logger'
import Vue, { defineAsyncComponent, ref } from 'vue'
import { useUserConfigStore } from './userconfig'
+import { fetchNode } from '../services/WebdavClient'
export const useRenamingStore = defineStore('renaming', () => {
/**
@@ -48,7 +49,7 @@ export const useRenamingStore = defineStore('renaming', () => {
}
isRenaming.value = true
- const node = renamingNode.value
+ let node = renamingNode.value
Vue.set(node, 'status', NodeStatus.LOADING)
const userConfig = useUserConfigStore()
@@ -86,6 +87,13 @@ export const useRenamingStore = defineStore('renaming', () => {
},
})
+ // Update mime type if extension changed
+ // as other related informations might have changed
+ // on the backend but it is really hard to know on the front
+ if (oldExtension !== newExtension) {
+ node = await fetchNode(node.path)
+ }
+
// Success 🎉
emit('files:node:updated', node)
emit('files:node:renamed', node)
diff --git a/apps/files/src/store/userconfig.ts b/apps/files/src/store/userconfig.ts
index d84a5e0d935..d136561c2e5 100644
--- a/apps/files/src/store/userconfig.ts
+++ b/apps/files/src/store/userconfig.ts
@@ -17,6 +17,7 @@ const initialUserConfig = loadState<UserConfig>('files', 'config', {
sort_favorites_first: true,
sort_folders_first: true,
grid_view: false,
+ show_mime_column: true,
show_dialog_file_extension: true,
})
diff --git a/apps/files/src/types.ts b/apps/files/src/types.ts
index 4bf8a557f49..db3de13d4eb 100644
--- a/apps/files/src/types.ts
+++ b/apps/files/src/types.ts
@@ -58,6 +58,7 @@ export interface UserConfig {
sort_favorites_first: boolean
sort_folders_first: boolean
grid_view: boolean
+ show_mime_column: boolean
}
export interface UserConfigStore {
userConfig: UserConfig
diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue
index 0aa3da144c2..60791a2b527 100644
--- a/apps/files/src/views/FilesList.vue
+++ b/apps/files/src/views/FilesList.vue
@@ -483,13 +483,6 @@ export default defineComponent({
watch: {
/**
- * Update the window title to match the page heading
- */
- pageHeading() {
- document.title = `${this.pageHeading} - ${getCapabilities().theming?.productName ?? 'Nextcloud'}`
- },
-
- /**
* Handle rendering the custom empty view
* @param show The current state if the custom empty view should be rendered
*/
diff --git a/apps/files/src/views/Settings.vue b/apps/files/src/views/Settings.vue
index 872b8a8e6d3..a9967fdbef9 100644
--- a/apps/files/src/views/Settings.vue
+++ b/apps/files/src/views/Settings.vue
@@ -24,6 +24,11 @@
@update:checked="setConfig('show_hidden', $event)">
{{ t('files', 'Show hidden files') }}
</NcCheckboxRadioSwitch>
+ <NcCheckboxRadioSwitch data-cy-files-settings-setting="show_mime_column"
+ :checked="userConfig.show_mime_column"
+ @update:checked="setConfig('show_mime_column', $event)">
+ {{ t('files', 'Show file type column') }}
+ </NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch data-cy-files-settings-setting="crop_image_previews"
:checked="userConfig.crop_image_previews"
@update:checked="setConfig('crop_image_previews', $event)">
diff --git a/apps/files/src/views/TemplatePicker.vue b/apps/files/src/views/TemplatePicker.vue
index 15286a220e9..cddacc863e1 100644
--- a/apps/files/src/views/TemplatePicker.vue
+++ b/apps/files/src/views/TemplatePicker.vue
@@ -57,7 +57,7 @@ import { translate as t } from '@nextcloud/l10n'
import { generateRemoteUrl } from '@nextcloud/router'
import { normalize, extname, join } from 'path'
import { defineComponent } from 'vue'
-import { createFromTemplate, getTemplates } from '../services/Templates.js'
+import { createFromTemplate, getTemplates, getTemplateFields } from '../services/Templates.js'
import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'
import NcModal from '@nextcloud/vue/components/NcModal'
@@ -215,7 +215,7 @@ export default defineComponent({
}
},
- async createFile(templateFields) {
+ async createFile(templateFields = []) {
const currentDirectory = new URL(window.location.href).searchParams.get('dir') || '/'
// If the file doesn't have an extension, add the default one
@@ -274,9 +274,18 @@ export default defineComponent({
},
async onSubmit() {
- if (this.selectedTemplate?.fields?.length > 0) {
+ const fileId = this.selectedTemplate?.fileid
+
+ // Only request field extraction if there is a valid template
+ // selected and it's not the blank template
+ let fields = []
+ if (fileId && fileId !== this.emptyTemplate.fileid) {
+ fields = await getTemplateFields(fileId)
+ }
+
+ if (fields.length > 0) {
spawnDialog(TemplateFiller, {
- fields: this.selectedTemplate.fields,
+ fields,
onSubmit: this.createFile,
})
} else {
diff --git a/apps/files/tests/Activity/Filter/GenericTest.php b/apps/files/tests/Activity/Filter/GenericTest.php
index dbb2538ed8a..f37a1cb2c9e 100644
--- a/apps/files/tests/Activity/Filter/GenericTest.php
+++ b/apps/files/tests/Activity/Filter/GenericTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -18,7 +20,7 @@ use Test\TestCase;
* @group DB
*/
class GenericTest extends TestCase {
- public function dataFilters() {
+ public static function dataFilters(): array {
return [
[Favorites::class],
[FileChanges::class],
@@ -27,18 +29,16 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testImplementsInterface($filterClass): void {
+ public function testImplementsInterface(string $filterClass): void {
$filter = Server::get($filterClass);
$this->assertInstanceOf(IFilter::class, $filter);
}
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetIdentifier($filterClass): void {
+ public function testGetIdentifier(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIdentifier());
@@ -46,9 +46,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetName($filterClass): void {
+ public function testGetName(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getName());
@@ -56,9 +55,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetPriority($filterClass): void {
+ public function testGetPriority(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$priority = $filter->getPriority();
@@ -69,9 +67,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testGetIcon($filterClass): void {
+ public function testGetIcon(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsString($filter->getIcon());
@@ -80,9 +77,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testFilterTypes($filterClass): void {
+ public function testFilterTypes(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->filterTypes([]));
@@ -90,9 +86,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataFilters
- * @param string $filterClass
*/
- public function testAllowedApps($filterClass): void {
+ public function testAllowedApps(string $filterClass): void {
/** @var IFilter $filter */
$filter = Server::get($filterClass);
$this->assertIsArray($filter->allowedApps());
diff --git a/apps/files/tests/Activity/ProviderTest.php b/apps/files/tests/Activity/ProviderTest.php
index 7803563a11c..ed52c76ba28 100644
--- a/apps/files/tests/Activity/ProviderTest.php
+++ b/apps/files/tests/Activity/ProviderTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -26,23 +28,14 @@ use Test\TestCase;
* @package OCA\Files\Tests\Activity
*/
class ProviderTest extends TestCase {
-
- /** @var IFactory|MockObject */
- protected $l10nFactory;
- /** @var IURLGenerator|MockObject */
- protected $url;
- /** @var IManager|MockObject */
- protected $activityManager;
- /** @var IUserManager|MockObject */
- protected $userManager;
- /** @var IRootFolder|MockObject */
- protected $rootFolder;
- /** @var ICloudIdManager|MockObject */
- protected $cloudIdManager;
- /** @var IContactsManager|MockObject */
- protected $contactsManager;
- /** @var IEventMerger|MockObject */
- protected $eventMerger;
+ protected IFactory&MockObject $l10nFactory;
+ protected IURLGenerator&MockObject $url;
+ protected IManager&MockObject $activityManager;
+ protected IUserManager&MockObject $userManager;
+ protected IRootFolder&MockObject $rootFolder;
+ protected ICloudIdManager&MockObject $cloudIdManager;
+ protected IContactsManager&MockObject $contactsManager;
+ protected IEventMerger&MockObject $eventMerger;
protected function setUp(): void {
parent::setUp();
@@ -74,7 +67,7 @@ class ProviderTest extends TestCase {
$this->contactsManager,
$this->eventMerger,
])
- ->setMethods($methods)
+ ->onlyMethods($methods)
->getMock();
}
return new Provider(
@@ -89,23 +82,18 @@ class ProviderTest extends TestCase {
);
}
- public function dataGetFile() {
+ public static function dataGetFile(): array {
return [
[[42 => '/FortyTwo.txt'], null, '42', 'FortyTwo.txt', 'FortyTwo.txt'],
[['23' => '/Twenty/Three.txt'], null, '23', 'Three.txt', 'Twenty/Three.txt'],
- ['/Foo/Bar.txt', 128, 128, 'Bar.txt', 'Foo/Bar.txt'], // Legacy from ownCloud 8.2 and before
+ ['/Foo/Bar.txt', 128, '128', 'Bar.txt', 'Foo/Bar.txt'], // Legacy from ownCloud 8.2 and before
];
}
/**
* @dataProvider dataGetFile
- * @param mixed $parameter
- * @param mixed $eventId
- * @param int $id
- * @param string $name
- * @param string $path
*/
- public function testGetFile($parameter, $eventId, $id, $name, $path): void {
+ public function testGetFile(array|string $parameter, ?int $eventId, string $id, string $name, string $path): void {
$provider = $this->getProvider();
if ($eventId !== null) {
@@ -139,7 +127,7 @@ class ProviderTest extends TestCase {
self::invokePrivate($provider, 'getFile', ['/Foo/Bar.txt', null]);
}
- public function dataGetUser() {
+ public static function dataGetUser(): array {
return [
['test', 'Test user', null, ['type' => 'user', 'id' => 'test', 'name' => 'Test user']],
['test@http://localhost', null, ['user' => 'test', 'displayId' => 'test@localhost', 'remote' => 'localhost', 'name' => null], ['type' => 'user', 'id' => 'test', 'name' => 'test@localhost', 'server' => 'localhost']],
@@ -150,10 +138,6 @@ class ProviderTest extends TestCase {
/**
* @dataProvider dataGetUser
- * @param string $uid
- * @param string|null $userDisplayName
- * @param array|null $cloudIdData
- * @param array $expected
*/
public function testGetUser(string $uid, ?string $userDisplayName, ?array $cloudIdData, array $expected): void {
$provider = $this->getProvider();
diff --git a/apps/files/tests/Activity/Setting/GenericTest.php b/apps/files/tests/Activity/Setting/GenericTest.php
index 1dc551be927..7e549ce9dc0 100644
--- a/apps/files/tests/Activity/Setting/GenericTest.php
+++ b/apps/files/tests/Activity/Setting/GenericTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,7 +14,7 @@ use OCP\Server;
use Test\TestCase;
class GenericTest extends TestCase {
- public function dataSettings() {
+ public static function dataSettings(): array {
return [
[FavoriteAction::class],
[FileChanged::class],
@@ -22,18 +24,16 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testImplementsInterface($settingClass): void {
+ public function testImplementsInterface(string $settingClass): void {
$setting = Server::get($settingClass);
$this->assertInstanceOf(ISetting::class, $setting);
}
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testGetIdentifier($settingClass): void {
+ public function testGetIdentifier(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getIdentifier());
@@ -41,9 +41,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testGetName($settingClass): void {
+ public function testGetName(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsString($setting->getName());
@@ -51,9 +50,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testGetPriority($settingClass): void {
+ public function testGetPriority(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$priority = $setting->getPriority();
@@ -64,9 +62,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testCanChangeStream($settingClass): void {
+ public function testCanChangeStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeStream());
@@ -74,9 +71,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testIsDefaultEnabledStream($settingClass): void {
+ public function testIsDefaultEnabledStream(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledStream());
@@ -84,9 +80,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testCanChangeMail($settingClass): void {
+ public function testCanChangeMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->canChangeMail());
@@ -94,9 +89,8 @@ class GenericTest extends TestCase {
/**
* @dataProvider dataSettings
- * @param string $settingClass
*/
- public function testIsDefaultEnabledMail($settingClass): void {
+ public function testIsDefaultEnabledMail(string $settingClass): void {
/** @var ISetting $setting */
$setting = Server::get($settingClass);
$this->assertIsBool($setting->isDefaultEnabledMail());
diff --git a/apps/files/tests/AdvancedCapabilitiesTest.php b/apps/files/tests/AdvancedCapabilitiesTest.php
index af38c51a4a2..8f4a845b708 100644
--- a/apps/files/tests/AdvancedCapabilitiesTest.php
+++ b/apps/files/tests/AdvancedCapabilitiesTest.php
@@ -18,6 +18,7 @@ class AdvancedCapabilitiesTest extends TestCase {
protected AdvancedCapabilities $capabilities;
protected function setUp(): void {
+ parent::setUp();
$this->service = $this->createMock(SettingsService::class);
$this->capabilities = new AdvancedCapabilities($this->service);
}
diff --git a/apps/files/tests/BackgroundJob/DeleteOrphanedItemsJobTest.php b/apps/files/tests/BackgroundJob/DeleteOrphanedItemsJobTest.php
index e31b1574815..3f811fca407 100644
--- a/apps/files/tests/BackgroundJob/DeleteOrphanedItemsJobTest.php
+++ b/apps/files/tests/BackgroundJob/DeleteOrphanedItemsJobTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -33,16 +34,16 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$this->logger = Server::get(LoggerInterface::class);
}
- protected function cleanMapping($table) {
+ protected function cleanMapping(string $table): void {
$query = $this->connection->getQueryBuilder();
- $query->delete($table)->execute();
+ $query->delete($table)->executeStatement();
}
- protected function getMappings($table) {
+ protected function getMappings(string $table): array {
$query = $this->connection->getQueryBuilder();
$query->select('*')
->from($table);
- $result = $query->execute();
+ $result = $query->executeQuery();
$mapping = $result->fetchAll();
$result->closeCursor();
@@ -61,7 +62,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'storage' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
'path' => $query->createNamedParameter('apps/files/tests/deleteorphanedtagsjobtest.php'),
'path_hash' => $query->createNamedParameter(md5('apps/files/tests/deleteorphanedtagsjobtest.php')),
- ])->execute();
+ ])->executeStatement();
$fileId = $query->getLastInsertId();
// Existing file
@@ -71,7 +72,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'objectid' => $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT),
'objecttype' => $query->createNamedParameter('files'),
'systemtagid' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
- ])->execute();
+ ])->executeStatement();
// Non-existing file
$query = $this->connection->getQueryBuilder();
@@ -80,13 +81,13 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'objectid' => $query->createNamedParameter($fileId + 1, IQueryBuilder::PARAM_INT),
'objecttype' => $query->createNamedParameter('files'),
'systemtagid' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
- ])->execute();
+ ])->executeStatement();
$mapping = $this->getMappings('systemtag_object_mapping');
$this->assertCount(2, $mapping);
$job = new DeleteOrphanedItems($this->timeFactory, $this->connection, $this->logger);
- $this->invokePrivate($job, 'cleanSystemTags');
+ self::invokePrivate($job, 'cleanSystemTags');
$mapping = $this->getMappings('systemtag_object_mapping');
$this->assertCount(1, $mapping);
@@ -94,7 +95,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$query = $this->connection->getQueryBuilder();
$query->delete('filecache')
->where($query->expr()->eq('fileid', $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT)))
- ->execute();
+ ->executeStatement();
$this->cleanMapping('systemtag_object_mapping');
}
@@ -110,7 +111,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'storage' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
'path' => $query->createNamedParameter('apps/files/tests/deleteorphanedtagsjobtest.php'),
'path_hash' => $query->createNamedParameter(md5('apps/files/tests/deleteorphanedtagsjobtest.php')),
- ])->execute();
+ ])->executeStatement();
$fileId = $query->getLastInsertId();
// Existing file
@@ -120,7 +121,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'objid' => $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT),
'type' => $query->createNamedParameter('files'),
'categoryid' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
- ])->execute();
+ ])->executeStatement();
// Non-existing file
$query = $this->connection->getQueryBuilder();
@@ -129,13 +130,13 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'objid' => $query->createNamedParameter($fileId + 1, IQueryBuilder::PARAM_INT),
'type' => $query->createNamedParameter('files'),
'categoryid' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
- ])->execute();
+ ])->executeStatement();
$mapping = $this->getMappings('vcategory_to_object');
$this->assertCount(2, $mapping);
$job = new DeleteOrphanedItems($this->timeFactory, $this->connection, $this->logger);
- $this->invokePrivate($job, 'cleanUserTags');
+ self::invokePrivate($job, 'cleanUserTags');
$mapping = $this->getMappings('vcategory_to_object');
$this->assertCount(1, $mapping);
@@ -143,7 +144,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$query = $this->connection->getQueryBuilder();
$query->delete('filecache')
->where($query->expr()->eq('fileid', $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT)))
- ->execute();
+ ->executeStatement();
$this->cleanMapping('vcategory_to_object');
}
@@ -159,7 +160,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'storage' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
'path' => $query->createNamedParameter('apps/files/tests/deleteorphanedtagsjobtest.php'),
'path_hash' => $query->createNamedParameter(md5('apps/files/tests/deleteorphanedtagsjobtest.php')),
- ])->execute();
+ ])->executeStatement();
$fileId = $query->getLastInsertId();
// Existing file
@@ -170,7 +171,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'object_type' => $query->createNamedParameter('files'),
'actor_id' => $query->createNamedParameter('Alice', IQueryBuilder::PARAM_INT),
'actor_type' => $query->createNamedParameter('users'),
- ])->execute();
+ ])->executeStatement();
// Non-existing file
$query = $this->connection->getQueryBuilder();
@@ -180,13 +181,13 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'object_type' => $query->createNamedParameter('files'),
'actor_id' => $query->createNamedParameter('Alice', IQueryBuilder::PARAM_INT),
'actor_type' => $query->createNamedParameter('users'),
- ])->execute();
+ ])->executeStatement();
$mapping = $this->getMappings('comments');
$this->assertCount(2, $mapping);
$job = new DeleteOrphanedItems($this->timeFactory, $this->connection, $this->logger);
- $this->invokePrivate($job, 'cleanComments');
+ self::invokePrivate($job, 'cleanComments');
$mapping = $this->getMappings('comments');
$this->assertCount(1, $mapping);
@@ -194,7 +195,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$query = $this->connection->getQueryBuilder();
$query->delete('filecache')
->where($query->expr()->eq('fileid', $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT)))
- ->execute();
+ ->executeStatement();
$this->cleanMapping('comments');
}
@@ -210,7 +211,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'storage' => $query->createNamedParameter(1337, IQueryBuilder::PARAM_INT),
'path' => $query->createNamedParameter('apps/files/tests/deleteorphanedtagsjobtest.php'),
'path_hash' => $query->createNamedParameter(md5('apps/files/tests/deleteorphanedtagsjobtest.php')),
- ])->execute();
+ ])->executeStatement();
$fileId = $query->getLastInsertId();
// Existing file
@@ -220,7 +221,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'object_id' => $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT),
'object_type' => $query->createNamedParameter('files'),
'user_id' => $query->createNamedParameter('Alice', IQueryBuilder::PARAM_INT),
- ])->execute();
+ ])->executeStatement();
// Non-existing file
$query = $this->connection->getQueryBuilder();
@@ -229,13 +230,13 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
'object_id' => $query->createNamedParameter($fileId + 1, IQueryBuilder::PARAM_INT),
'object_type' => $query->createNamedParameter('files'),
'user_id' => $query->createNamedParameter('Alice', IQueryBuilder::PARAM_INT),
- ])->execute();
+ ])->executeStatement();
$mapping = $this->getMappings('comments_read_markers');
$this->assertCount(2, $mapping);
$job = new DeleteOrphanedItems($this->timeFactory, $this->connection, $this->logger);
- $this->invokePrivate($job, 'cleanCommentMarkers');
+ self::invokePrivate($job, 'cleanCommentMarkers');
$mapping = $this->getMappings('comments_read_markers');
$this->assertCount(1, $mapping);
@@ -243,7 +244,7 @@ class DeleteOrphanedItemsJobTest extends \Test\TestCase {
$query = $this->connection->getQueryBuilder();
$query->delete('filecache')
->where($query->expr()->eq('fileid', $query->createNamedParameter($fileId, IQueryBuilder::PARAM_INT)))
- ->execute();
+ ->executeStatement();
$this->cleanMapping('comments_read_markers');
}
}
diff --git a/apps/files/tests/BackgroundJob/ScanFilesTest.php b/apps/files/tests/BackgroundJob/ScanFilesTest.php
index ce602805aa2..00d9ed823f9 100644
--- a/apps/files/tests/BackgroundJob/ScanFilesTest.php
+++ b/apps/files/tests/BackgroundJob/ScanFilesTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -32,10 +33,8 @@ class ScanFilesTest extends TestCase {
use UserTrait;
use MountProviderTrait;
- /** @var ScanFiles */
- private $scanFiles;
- /** @var IUserMountCache */
- private $mountCache;
+ private ScanFiles $scanFiles;
+ private IUserMountCache $mountCache;
protected function setUp(): void {
parent::setUp();
@@ -46,7 +45,7 @@ class ScanFilesTest extends TestCase {
$connection = Server::get(IDBConnection::class);
$this->mountCache = Server::get(IUserMountCache::class);
- $this->scanFiles = $this->getMockBuilder('\OCA\Files\BackgroundJob\ScanFiles')
+ $this->scanFiles = $this->getMockBuilder(ScanFiles::class)
->setConstructorArgs([
$config,
$dispatcher,
@@ -54,12 +53,12 @@ class ScanFilesTest extends TestCase {
$connection,
$this->createMock(ITimeFactory::class)
])
- ->setMethods(['runScanner'])
+ ->onlyMethods(['runScanner'])
->getMock();
}
- private function runJob() {
- $this->invokePrivate($this->scanFiles, 'run', [[]]);
+ private function runJob(): void {
+ self::invokePrivate($this->scanFiles, 'run', [[]]);
}
private function getUser(string $userId): IUser {
diff --git a/apps/files/tests/Command/DeleteOrphanedFilesTest.php b/apps/files/tests/Command/DeleteOrphanedFilesTest.php
index 389ede2a74d..54b5ac6c12f 100644
--- a/apps/files/tests/Command/DeleteOrphanedFilesTest.php
+++ b/apps/files/tests/Command/DeleteOrphanedFilesTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -56,7 +57,7 @@ class DeleteOrphanedFilesTest extends TestCase {
parent::tearDown();
}
- protected function getFile($fileId) {
+ protected function getFile(int $fileId): array {
$query = $this->connection->getQueryBuilder();
$query->select('*')
->from('filecache')
@@ -64,7 +65,7 @@ class DeleteOrphanedFilesTest extends TestCase {
return $query->executeQuery()->fetchAll();
}
- protected function getMounts($storageId) {
+ protected function getMounts(int $storageId): array {
$query = $this->connection->getQueryBuilder();
$query->select('*')
->from('mounts')
@@ -76,12 +77,8 @@ class DeleteOrphanedFilesTest extends TestCase {
* Test clearing orphaned files
*/
public function testClearFiles(): void {
- $input = $this->getMockBuilder(InputInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- $output = $this->getMockBuilder(OutputInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $input = $this->createMock(InputInterface::class);
+ $output = $this->createMock(OutputInterface::class);
$rootFolder = Server::get(IRootFolder::class);
@@ -112,14 +109,18 @@ class DeleteOrphanedFilesTest extends TestCase {
$this->assertSame(1, $deletedRows, 'Asserts that storage got deleted');
// parent folder, `files`, ´test` and `welcome.txt` => 4 elements
+ $calls = [
+ '3 orphaned file cache entries deleted',
+ '0 orphaned file cache extended entries deleted',
+ '1 orphaned mount entries deleted',
+ ];
$output
->expects($this->exactly(3))
->method('writeln')
- ->withConsecutive(
- ['3 orphaned file cache entries deleted'],
- ['0 orphaned file cache extended entries deleted'],
- ['1 orphaned mount entries deleted'],
- );
+ ->willReturnCallback(function (string $message) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertSame($expected, $message);
+ });
$this->command->execute($input, $output);
diff --git a/apps/files/tests/Controller/ApiControllerTest.php b/apps/files/tests/Controller/ApiControllerTest.php
index 429d3c06f66..0c9d7a4fa6e 100644
--- a/apps/files/tests/Controller/ApiControllerTest.php
+++ b/apps/files/tests/Controller/ApiControllerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -31,6 +32,7 @@ use OCP\IUserSession;
use OCP\Share\IAttributes;
use OCP\Share\IManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
@@ -40,41 +42,25 @@ use Test\TestCase;
* @package OCA\Files\Controller
*/
class ApiControllerTest extends TestCase {
- /** @var string */
- private $appName = 'files';
- /** @var IUser */
- private $user;
- /** @var IRequest */
- private $request;
- /** @var TagService */
- private $tagService;
- /** @var IPreview|\PHPUnit\Framework\MockObject\MockObject */
- private $preview;
- /** @var ApiController */
- private $apiController;
- /** @var \OCP\Share\IManager */
- private $shareManager;
- /** @var IConfig */
- private $config;
- /** @var Folder|\PHPUnit\Framework\MockObject\MockObject */
- private $userFolder;
- /** @var UserConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $userConfig;
- /** @var ViewConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $viewConfig;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logger;
+ private string $appName = 'files';
+ private IUser $user;
+ private IRequest $request;
+ private TagService $tagService;
+ private IPreview&MockObject $preview;
+ private ApiController $apiController;
+ private IManager $shareManager;
+ private IConfig $config;
+ private Folder&MockObject $userFolder;
+ private UserConfig&MockObject $userConfig;
+ private ViewConfig&MockObject $viewConfig;
+ private IL10N&MockObject $l10n;
+ private IRootFolder&MockObject $rootFolder;
+ private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
- $this->request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->request = $this->createMock(IRequest::class);
$this->user = $this->createMock(IUser::class);
$this->user->expects($this->any())
->method('getUID')
@@ -83,19 +69,11 @@ class ApiControllerTest extends TestCase {
$userSession->expects($this->any())
->method('getUser')
->willReturn($this->user);
- $this->tagService = $this->getMockBuilder(TagService::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->shareManager = $this->getMockBuilder(IManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->preview = $this->getMockBuilder(IPreview::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->tagService = $this->createMock(TagService::class);
+ $this->shareManager = $this->createMock(IManager::class);
+ $this->preview = $this->createMock(IPreview::class);
$this->config = $this->createMock(IConfig::class);
- $this->userFolder = $this->getMockBuilder(Folder::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->userFolder = $this->createMock(Folder::class);
$this->userConfig = $this->createMock(UserConfig::class);
$this->viewConfig = $this->createMock(ViewConfig::class);
$this->l10n = $this->createMock(IL10N::class);
diff --git a/apps/files/tests/Controller/ConversionApiControllerTest.php b/apps/files/tests/Controller/ConversionApiControllerTest.php
index a2f1fccd978..659fbe1a956 100644
--- a/apps/files/tests/Controller/ConversionApiControllerTest.php
+++ b/apps/files/tests/Controller/ConversionApiControllerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -60,12 +61,12 @@ class ConversionApiControllerTest extends TestCase {
);
}
- public function testThrowsNotFoundException() {
+ public function testThrowsNotFoundException(): void {
$this->expectException(OCSNotFoundException::class);
$this->conversionApiController->convert(42, 'image/png');
}
- public function testThrowsOcsException() {
+ public function testThrowsOcsException(): void {
$this->userFolder->method('getFirstNodeById')->with(42)->willReturn($this->file);
$this->fileConversionManager->method('convert')->willThrowException(new \Exception());
@@ -73,7 +74,7 @@ class ConversionApiControllerTest extends TestCase {
$this->conversionApiController->convert(42, 'image/png');
}
- public function testConvert() {
+ public function testConvert(): void {
$convertedFileAbsolutePath = $this->user . '/files/test.png';
$this->userFolder->method('getFirstNodeById')->with(42)->willReturn($this->file);
diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php
index dd76e814054..93ef98bdec7 100644
--- a/apps/files/tests/Controller/ViewControllerTest.php
+++ b/apps/files/tests/Controller/ViewControllerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -192,7 +193,7 @@ class ViewControllerTest extends TestCase {
$this->assertEquals($expected, $this->viewController->index('MyDir', 'MyView'));
}
- public function dataTestShortRedirect(): array {
+ public static function dataTestShortRedirect(): array {
// openfile is true by default
// opendetails is undefined by default
// both will be evaluated as truthy
@@ -212,7 +213,7 @@ class ViewControllerTest extends TestCase {
/**
* @dataProvider dataTestShortRedirect
*/
- public function testShortRedirect($openfile, $opendetails, $result) {
+ public function testShortRedirect(?string $openfile, ?string $opendetails, string $result): void {
$this->appManager->expects($this->any())
->method('isEnabledForUser')
->with('files')
@@ -239,7 +240,7 @@ class ViewControllerTest extends TestCase {
->with(123456)
->willReturn($node);
- $response = $this->viewController->showFile(123456, $opendetails, $openfile);
+ $response = $this->viewController->showFile('123456', $opendetails, $openfile);
$this->assertStringContainsString($result, $response->getHeaders()['Location']);
}
@@ -248,13 +249,13 @@ class ViewControllerTest extends TestCase {
->method('isEnabledForUser')
->willReturn(true);
- $parentNode = $this->getMockBuilder(Folder::class)->getMock();
+ $parentNode = $this->createMock(Folder::class);
$parentNode->expects($this->once())
->method('getPath')
->willReturn('testuser1/files_trashbin/files/test.d1462861890/sub');
- $baseFolderFiles = $this->getMockBuilder(Folder::class)->getMock();
- $baseFolderTrash = $this->getMockBuilder(Folder::class)->getMock();
+ $baseFolderFiles = $this->createMock(Folder::class);
+ $baseFolderTrash = $this->createMock(Folder::class);
$this->rootFolder->expects($this->any())
->method('getUserFolder')
@@ -270,7 +271,7 @@ class ViewControllerTest extends TestCase {
->with(123)
->willReturn(null);
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->once())
->method('getParent')
->willReturn($parentNode);
diff --git a/apps/files/tests/HelperTest.php b/apps/files/tests/HelperTest.php
index 0cf2812f816..cb1fc5ed66d 100644
--- a/apps/files/tests/HelperTest.php
+++ b/apps/files/tests/HelperTest.php
@@ -1,17 +1,17 @@
<?php
-use OC\Files\FileInfo;
-use OCA\Files\Helper;
-use OCP\ITagManager;
-use OCP\ITags;
-
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
*/
+
+use OC\Files\FileInfo;
+use OCA\Files\Helper;
+
class HelperTest extends \Test\TestCase {
- private function makeFileInfo($name, $size, $mtime, $isDir = false) {
+ private static function makeFileInfo($name, $size, $mtime, $isDir = false): FileInfo {
return new FileInfo(
'/' . $name,
null,
@@ -30,7 +30,7 @@ class HelperTest extends \Test\TestCase {
/**
* Returns a file list for testing
*/
- private function getTestFileList() {
+ private static function getTestFileList(): array {
return [
self::makeFileInfo('a.txt', 4, 2.3 * pow(10, 9)),
self::makeFileInfo('q.txt', 5, 150),
@@ -41,7 +41,7 @@ class HelperTest extends \Test\TestCase {
];
}
- public function sortDataProvider() {
+ public static function sortDataProvider(): array {
return [
[
'name',
@@ -94,36 +94,4 @@ class HelperTest extends \Test\TestCase {
$fileNames
);
}
-
- public function testPopulateTags(): void {
- $tagManager = $this->createMock(ITagManager::class);
- $tagger = $this->createMock(ITags::class);
-
- $tagManager->method('load')
- ->with('files')
- ->willReturn($tagger);
-
- $data = [
- ['file_source' => 10],
- ['file_source' => 22, 'foo' => 'bar'],
- ['file_source' => 42, 'x' => 'y'],
- ];
-
- $tags = [
- 10 => ['tag3'],
- 42 => ['tag1', 'tag2'],
- ];
-
- $tagger->method('getTagsForObjects')
- ->with([10, 22, 42])
- ->willReturn($tags);
-
- $result = Helper::populateTags($data, $tagManager);
-
- $this->assertSame([
- ['file_source' => 10, 'tags' => ['tag3']],
- ['file_source' => 22, 'foo' => 'bar', 'tags' => []],
- ['file_source' => 42, 'x' => 'y', 'tags' => ['tag1', 'tag2']],
- ], $result);
- }
}
diff --git a/apps/files/tests/Service/TagServiceTest.php b/apps/files/tests/Service/TagServiceTest.php
index 79dcf110f8a..74e58e674bb 100644
--- a/apps/files/tests/Service/TagServiceTest.php
+++ b/apps/files/tests/Service/TagServiceTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,6 +11,7 @@ namespace OCA\Files\Tests\Service;
use OCA\Files\Service\TagService;
use OCP\Activity\IManager;
use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\ITagManager;
use OCP\ITags;
@@ -17,6 +19,7 @@ use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
/**
* Class TagServiceTest
@@ -26,32 +29,12 @@ use OCP\Server;
* @package OCA\Files
*/
class TagServiceTest extends \Test\TestCase {
-
- /**
- * @var string
- */
- private $user;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $activityManager;
-
- /**
- * @var Folder
- */
- private $root;
-
- /**
- * @var TagService|\PHPUnit\Framework\MockObject\MockObject
- */
- private $tagService;
-
- /**
- * @var ITags
- */
- private $tagger;
+ private string $user;
+ private IUserSession&MockObject $userSession;
+ private IManager&MockObject $activityManager;
+ private Folder $root;
+ private TagService&MockObject $tagService;
+ private ITags $tagger;
protected function setUp(): void {
parent::setUp();
@@ -70,17 +53,13 @@ class TagServiceTest extends \Test\TestCase {
->withAnyParameters()
->willReturn($user);
- $this->root = \OC::$server->getUserFolder();
+ $this->root = \OCP\Server::get(IRootFolder::class)->getUserFolder($this->user);
$this->tagger = Server::get(ITagManager::class)->load('files');
- $this->tagService = $this->getTagService(['addActivity']);
+ $this->tagService = $this->getTagService();
}
- /**
- * @param array $methods
- * @return TagService|\PHPUnit\Framework\MockObject\MockObject
- */
- protected function getTagService(array $methods = []) {
+ protected function getTagService(array $methods = []): TagService&MockObject {
return $this->getMockBuilder(TagService::class)
->setConstructorArgs([
$this->userSession,
@@ -88,7 +67,7 @@ class TagServiceTest extends \Test\TestCase {
$this->tagger,
$this->root,
])
- ->setMethods($methods)
+ ->onlyMethods($methods)
->getMock();
}
@@ -98,6 +77,8 @@ class TagServiceTest extends \Test\TestCase {
if ($user !== null) {
$user->delete();
}
+
+ parent::tearDown();
}
public function testUpdateFileTags(): void {
diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml
index eda96446ac0..e746f052619 100644
--- a/apps/files_external/appinfo/info.xml
+++ b/apps/files_external/appinfo/info.xml
@@ -53,6 +53,7 @@ External storage can be configured using the GUI or at the command line. This se
<command>OCA\Files_External\Command\Verify</command>
<command>OCA\Files_External\Command\Notify</command>
<command>OCA\Files_External\Command\Scan</command>
+ <command>OCA\Files_External\Command\Dependencies</command>
</commands>
<settings>
diff --git a/apps/files_external/composer/composer/autoload_classmap.php b/apps/files_external/composer/composer/autoload_classmap.php
index 156847d5620..90f41f0e920 100644
--- a/apps/files_external/composer/composer/autoload_classmap.php
+++ b/apps/files_external/composer/composer/autoload_classmap.php
@@ -14,6 +14,7 @@ return array(
'OCA\\Files_External\\Command\\Config' => $baseDir . '/../lib/Command/Config.php',
'OCA\\Files_External\\Command\\Create' => $baseDir . '/../lib/Command/Create.php',
'OCA\\Files_External\\Command\\Delete' => $baseDir . '/../lib/Command/Delete.php',
+ 'OCA\\Files_External\\Command\\Dependencies' => $baseDir . '/../lib/Command/Dependencies.php',
'OCA\\Files_External\\Command\\Export' => $baseDir . '/../lib/Command/Export.php',
'OCA\\Files_External\\Command\\Import' => $baseDir . '/../lib/Command/Import.php',
'OCA\\Files_External\\Command\\ListCommand' => $baseDir . '/../lib/Command/ListCommand.php',
@@ -22,6 +23,7 @@ return array(
'OCA\\Files_External\\Command\\Scan' => $baseDir . '/../lib/Command/Scan.php',
'OCA\\Files_External\\Command\\StorageAuthBase' => $baseDir . '/../lib/Command/StorageAuthBase.php',
'OCA\\Files_External\\Command\\Verify' => $baseDir . '/../lib/Command/Verify.php',
+ 'OCA\\Files_External\\ConfigLexicon' => $baseDir . '/../lib/ConfigLexicon.php',
'OCA\\Files_External\\Config\\ConfigAdapter' => $baseDir . '/../lib/Config/ConfigAdapter.php',
'OCA\\Files_External\\Config\\ExternalMountPoint' => $baseDir . '/../lib/Config/ExternalMountPoint.php',
'OCA\\Files_External\\Config\\IConfigHandler' => $baseDir . '/../lib/Config/IConfigHandler.php',
diff --git a/apps/files_external/composer/composer/autoload_static.php b/apps/files_external/composer/composer/autoload_static.php
index 186f85bc5bc..7b5eb5feabe 100644
--- a/apps/files_external/composer/composer/autoload_static.php
+++ b/apps/files_external/composer/composer/autoload_static.php
@@ -29,6 +29,7 @@ class ComposerStaticInitFiles_External
'OCA\\Files_External\\Command\\Config' => __DIR__ . '/..' . '/../lib/Command/Config.php',
'OCA\\Files_External\\Command\\Create' => __DIR__ . '/..' . '/../lib/Command/Create.php',
'OCA\\Files_External\\Command\\Delete' => __DIR__ . '/..' . '/../lib/Command/Delete.php',
+ 'OCA\\Files_External\\Command\\Dependencies' => __DIR__ . '/..' . '/../lib/Command/Dependencies.php',
'OCA\\Files_External\\Command\\Export' => __DIR__ . '/..' . '/../lib/Command/Export.php',
'OCA\\Files_External\\Command\\Import' => __DIR__ . '/..' . '/../lib/Command/Import.php',
'OCA\\Files_External\\Command\\ListCommand' => __DIR__ . '/..' . '/../lib/Command/ListCommand.php',
@@ -37,6 +38,7 @@ class ComposerStaticInitFiles_External
'OCA\\Files_External\\Command\\Scan' => __DIR__ . '/..' . '/../lib/Command/Scan.php',
'OCA\\Files_External\\Command\\StorageAuthBase' => __DIR__ . '/..' . '/../lib/Command/StorageAuthBase.php',
'OCA\\Files_External\\Command\\Verify' => __DIR__ . '/..' . '/../lib/Command/Verify.php',
+ 'OCA\\Files_External\\ConfigLexicon' => __DIR__ . '/..' . '/../lib/ConfigLexicon.php',
'OCA\\Files_External\\Config\\ConfigAdapter' => __DIR__ . '/..' . '/../lib/Config/ConfigAdapter.php',
'OCA\\Files_External\\Config\\ExternalMountPoint' => __DIR__ . '/..' . '/../lib/Config/ExternalMountPoint.php',
'OCA\\Files_External\\Config\\IConfigHandler' => __DIR__ . '/..' . '/../lib/Config/IConfigHandler.php',
diff --git a/apps/files_external/l10n/az.js b/apps/files_external/l10n/az.js
deleted file mode 100644
index 324455d9dc8..00000000000
--- a/apps/files_external/l10n/az.js
+++ /dev/null
@@ -1,65 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Step 1 failed. Exception: %s" : "1-ci addım səhv oldu. İstisna: %s",
- "Step 2 failed. Exception: %s" : "2-ci addım. İstisna: %s",
- "External storage" : "Kənar informasıya daşıyıcısı",
- "Personal" : "Şəxsi",
- "System" : "Sistem",
- "Grant access" : "Yetkinin verilməsi",
- "Generate keys" : "Açarları generasiya et",
- "Error generating key pair" : "Açar cütlüyünün generasiyası səhvi",
- "All users. Type to select user or group." : "Sistem istifadəçiləri. Daxil edin ki, istifadəçi və ya qrupu seçəsiniz.",
- "(group)" : "(qrup)",
- "Saved" : "Saxlanıldı",
- "Username" : "İstifadəçi adı",
- "Password" : "Şifrə",
- "Save" : "Saxla",
- "Storage with id \"%i\" not found" : "\"%i\"-li depo tapılmadı",
- "Invalid mount point" : "Yalnış mount nöqtəsi",
- "Invalid storage backend \"%s\"" : "Yalnış depo arxasonu \"%s\"",
- "None" : "Heç bir",
- "App key" : "Proqram açarı",
- "App secret" : "Proqram sirri",
- "Client ID" : "Müştəri İD-s",
- "Client secret" : "Müxtəri sirri",
- "Public key" : "İctimai açar",
- "Amazon S3" : "Amazon S3",
- "Bucket" : "Vedrə",
- "Hostname" : "Sahibadı",
- "Port" : "Port",
- "Region" : "Ərazi",
- "Enable SSL" : "SSL-i işə sal",
- "Enable Path Style" : "Ünvan stilini işə sal",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Uzaq altqovluğu",
- "Secure https://" : "Təhlükəsiz https://",
- "Dropbox" : "Dropbox",
- "Host" : "Şəbəkədə ünvan",
- "Secure ftps://" : "Təhlükəsiz ftps://",
- "Local" : "Yerli",
- "Location" : "Yerləşdiyiniz ünvan",
- "Share" : "Yayımla",
- "SMB / CIFS using OC login" : "OC login istifadə edir SMB / CIFS",
- "Username as share" : "Paylaşım üçün istifadəçi adı",
- "OpenStack Object Storage" : "OpenStack Obyekt Deposu",
- "<b>Note:</b> " : "<b>Qeyd:</b> ",
- "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Qeyd:</b> PHP-də cURL dəstəyi aktiv deyil və ya yüklənməyib. %s -in birləşdirilməsi mümkün deyil. Xahiş edilir onun yüklənilməsi barəsində inzibatşınıza məlumat verəsiniz.",
- "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Qeyd:</b> PHP-də FTP dəstəyi aktiv deyil və ya yüklənməyib. %s -in birləşdirilməsi mümkün deyil. Xahiş edilir onun yüklənilməsi barəsində inzibatşınıza məlumat verəsiniz.",
- "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Qeyd:</b> \"%s\" yüklənməyib. %s -in birləşdirilməsi mümkün deyil. Xahiş edilir onun yüklənilməsi barəsində inzibatşınıza məlumat verəsiniz.",
- "No external storage configured" : "Kənar depo konfiq edilməyib",
- "You can add external storages in the personal settings" : "Siz şəxsi quraşdırmalarınızda kənar depo əlavə edə bilərsiniz",
- "Name" : "Ad",
- "Storage type" : "Depo tipi",
- "Scope" : "Həcm",
- "External Storage" : "Kənar depo",
- "Folder name" : "Qovluq adı",
- "Configuration" : "Konfiqurasiya",
- "Available for" : "Üçün mövcuddur",
- "Add storage" : "Deponu əlavə et",
- "Advanced settings" : "İrəliləmiş quraşdırmalar",
- "Delete" : "Sil",
- "Allow users to mount the following external storage" : "Göstərilən kənar deponun bərkidilməsi üçün istifadəçilərə izin ver"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/az.json b/apps/files_external/l10n/az.json
deleted file mode 100644
index 962b0cdd244..00000000000
--- a/apps/files_external/l10n/az.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{ "translations": {
- "Step 1 failed. Exception: %s" : "1-ci addım səhv oldu. İstisna: %s",
- "Step 2 failed. Exception: %s" : "2-ci addım. İstisna: %s",
- "External storage" : "Kənar informasıya daşıyıcısı",
- "Personal" : "Şəxsi",
- "System" : "Sistem",
- "Grant access" : "Yetkinin verilməsi",
- "Generate keys" : "Açarları generasiya et",
- "Error generating key pair" : "Açar cütlüyünün generasiyası səhvi",
- "All users. Type to select user or group." : "Sistem istifadəçiləri. Daxil edin ki, istifadəçi və ya qrupu seçəsiniz.",
- "(group)" : "(qrup)",
- "Saved" : "Saxlanıldı",
- "Username" : "İstifadəçi adı",
- "Password" : "Şifrə",
- "Save" : "Saxla",
- "Storage with id \"%i\" not found" : "\"%i\"-li depo tapılmadı",
- "Invalid mount point" : "Yalnış mount nöqtəsi",
- "Invalid storage backend \"%s\"" : "Yalnış depo arxasonu \"%s\"",
- "None" : "Heç bir",
- "App key" : "Proqram açarı",
- "App secret" : "Proqram sirri",
- "Client ID" : "Müştəri İD-s",
- "Client secret" : "Müxtəri sirri",
- "Public key" : "İctimai açar",
- "Amazon S3" : "Amazon S3",
- "Bucket" : "Vedrə",
- "Hostname" : "Sahibadı",
- "Port" : "Port",
- "Region" : "Ərazi",
- "Enable SSL" : "SSL-i işə sal",
- "Enable Path Style" : "Ünvan stilini işə sal",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Uzaq altqovluğu",
- "Secure https://" : "Təhlükəsiz https://",
- "Dropbox" : "Dropbox",
- "Host" : "Şəbəkədə ünvan",
- "Secure ftps://" : "Təhlükəsiz ftps://",
- "Local" : "Yerli",
- "Location" : "Yerləşdiyiniz ünvan",
- "Share" : "Yayımla",
- "SMB / CIFS using OC login" : "OC login istifadə edir SMB / CIFS",
- "Username as share" : "Paylaşım üçün istifadəçi adı",
- "OpenStack Object Storage" : "OpenStack Obyekt Deposu",
- "<b>Note:</b> " : "<b>Qeyd:</b> ",
- "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Qeyd:</b> PHP-də cURL dəstəyi aktiv deyil və ya yüklənməyib. %s -in birləşdirilməsi mümkün deyil. Xahiş edilir onun yüklənilməsi barəsində inzibatşınıza məlumat verəsiniz.",
- "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Qeyd:</b> PHP-də FTP dəstəyi aktiv deyil və ya yüklənməyib. %s -in birləşdirilməsi mümkün deyil. Xahiş edilir onun yüklənilməsi barəsində inzibatşınıza məlumat verəsiniz.",
- "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Qeyd:</b> \"%s\" yüklənməyib. %s -in birləşdirilməsi mümkün deyil. Xahiş edilir onun yüklənilməsi barəsində inzibatşınıza məlumat verəsiniz.",
- "No external storage configured" : "Kənar depo konfiq edilməyib",
- "You can add external storages in the personal settings" : "Siz şəxsi quraşdırmalarınızda kənar depo əlavə edə bilərsiniz",
- "Name" : "Ad",
- "Storage type" : "Depo tipi",
- "Scope" : "Həcm",
- "External Storage" : "Kənar depo",
- "Folder name" : "Qovluq adı",
- "Configuration" : "Konfiqurasiya",
- "Available for" : "Üçün mövcuddur",
- "Add storage" : "Deponu əlavə et",
- "Advanced settings" : "İrəliləmiş quraşdırmalar",
- "Delete" : "Sil",
- "Allow users to mount the following external storage" : "Göstərilən kənar deponun bərkidilməsi üçün istifadəçilərə izin ver"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/bg.js b/apps/files_external/l10n/bg.js
index be6696e231a..673928a5048 100644
--- a/apps/files_external/l10n/bg.js
+++ b/apps/files_external/l10n/bg.js
@@ -91,7 +91,7 @@ OC.L10N.register(
"Unknown" : "Неизвестен",
"Scope" : "Обхват",
"Personal" : "Личен",
- "System" : "Системен",
+ "System" : "Системна информация",
"(Group)" : "(Група)",
"Compatibility with Mac NFD encoding (slow)" : "Съвместимост с кодиране на Mac NFD (бавно)",
"Enable encryption" : "Включване на криптиране",
diff --git a/apps/files_external/l10n/bg.json b/apps/files_external/l10n/bg.json
index e5a7b4b7f05..90e7b871531 100644
--- a/apps/files_external/l10n/bg.json
+++ b/apps/files_external/l10n/bg.json
@@ -89,7 +89,7 @@
"Unknown" : "Неизвестен",
"Scope" : "Обхват",
"Personal" : "Личен",
- "System" : "Системен",
+ "System" : "Системна информация",
"(Group)" : "(Група)",
"Compatibility with Mac NFD encoding (slow)" : "Съвместимост с кодиране на Mac NFD (бавно)",
"Enable encryption" : "Включване на криптиране",
diff --git a/apps/files_external/l10n/bn_BD.js b/apps/files_external/l10n/bn_BD.js
deleted file mode 100644
index 4d99e32ffdd..00000000000
--- a/apps/files_external/l10n/bn_BD.js
+++ /dev/null
@@ -1,39 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Step 1 failed. Exception: %s" : "প্রথম ধাপ ব্যার্থ। ব্যতিক্রম: %s",
- "External storage" : "বাহ্যিক সংরক্ষণাগার",
- "Personal" : "ব্যক্তিগত",
- "Grant access" : "অধিগমনের অনুমতি প্রদান কর",
- "(group)" : "(গোষ্ঠি)",
- "Saved" : "সংরক্ষণ করা হলো",
- "Username" : "ব্যবহারকারী",
- "Password" : "কূটশব্দ",
- "Save" : "সংরক্ষণ",
- "None" : "কোনটিই নয়",
- "App key" : "অ্যাপ কি",
- "App secret" : "অ্যাপ সিক্রেট",
- "Client ID" : "ক্লায়েন্ট পরিচিতি",
- "Amazon S3" : "আমাজন S3",
- "Bucket" : "বালতি",
- "Hostname" : "হোস্টনেম",
- "Port" : "পোর্ট",
- "Region" : "এলাকা",
- "Enable SSL" : "SSL সক্রিয় কর",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Host" : "হোস্ট",
- "Secure ftps://" : "ftps:// অর্জন কর",
- "Local" : "স্থানীয়",
- "Location" : "অবস্থান",
- "ownCloud" : "ওউনক্লাউড",
- "Root" : "শেকড়",
- "Share" : "ভাগাভাগি কর",
- "<b>Note:</b> " : "<b>দ্রষ্টব্য:</b> ",
- "Name" : "রাম",
- "External Storage" : "বাহ্যিক সংরক্ষণাগার",
- "Folder name" : "ফোলডারের নাম",
- "Configuration" : "কনফিগারেসন",
- "Delete" : "মুছে"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/bn_BD.json b/apps/files_external/l10n/bn_BD.json
deleted file mode 100644
index d7035b0737f..00000000000
--- a/apps/files_external/l10n/bn_BD.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{ "translations": {
- "Step 1 failed. Exception: %s" : "প্রথম ধাপ ব্যার্থ। ব্যতিক্রম: %s",
- "External storage" : "বাহ্যিক সংরক্ষণাগার",
- "Personal" : "ব্যক্তিগত",
- "Grant access" : "অধিগমনের অনুমতি প্রদান কর",
- "(group)" : "(গোষ্ঠি)",
- "Saved" : "সংরক্ষণ করা হলো",
- "Username" : "ব্যবহারকারী",
- "Password" : "কূটশব্দ",
- "Save" : "সংরক্ষণ",
- "None" : "কোনটিই নয়",
- "App key" : "অ্যাপ কি",
- "App secret" : "অ্যাপ সিক্রেট",
- "Client ID" : "ক্লায়েন্ট পরিচিতি",
- "Amazon S3" : "আমাজন S3",
- "Bucket" : "বালতি",
- "Hostname" : "হোস্টনেম",
- "Port" : "পোর্ট",
- "Region" : "এলাকা",
- "Enable SSL" : "SSL সক্রিয় কর",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Host" : "হোস্ট",
- "Secure ftps://" : "ftps:// অর্জন কর",
- "Local" : "স্থানীয়",
- "Location" : "অবস্থান",
- "ownCloud" : "ওউনক্লাউড",
- "Root" : "শেকড়",
- "Share" : "ভাগাভাগি কর",
- "<b>Note:</b> " : "<b>দ্রষ্টব্য:</b> ",
- "Name" : "রাম",
- "External Storage" : "বাহ্যিক সংরক্ষণাগার",
- "Folder name" : "ফোলডারের নাম",
- "Configuration" : "কনফিগারেসন",
- "Delete" : "মুছে"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/bs.js b/apps/files_external/l10n/bs.js
deleted file mode 100644
index dd90e5eeb36..00000000000
--- a/apps/files_external/l10n/bs.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Personal" : "Osobno",
- "Saved" : "Spremljeno",
- "Username" : "Korisničko ime",
- "Password" : "Lozinka",
- "Save" : "Spremi",
- "None" : "Ništa",
- "Port" : "Priključak",
- "WebDAV" : "WebDAV",
- "Local" : "Lokalno",
- "Location" : "Lokacija",
- "ownCloud" : "OwnCloud",
- "Share" : "Podijeli",
- "Name" : "Ime",
- "Delete" : "Izbriši"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_external/l10n/bs.json b/apps/files_external/l10n/bs.json
deleted file mode 100644
index 815a60f1996..00000000000
--- a/apps/files_external/l10n/bs.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "Personal" : "Osobno",
- "Saved" : "Spremljeno",
- "Username" : "Korisničko ime",
- "Password" : "Lozinka",
- "Save" : "Spremi",
- "None" : "Ništa",
- "Port" : "Priključak",
- "WebDAV" : "WebDAV",
- "Local" : "Lokalno",
- "Location" : "Lokacija",
- "ownCloud" : "OwnCloud",
- "Share" : "Podijeli",
- "Name" : "Ime",
- "Delete" : "Izbriši"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/cy_GB.js b/apps/files_external/l10n/cy_GB.js
deleted file mode 100644
index 6faf7f87fae..00000000000
--- a/apps/files_external/l10n/cy_GB.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Personal" : "Personol",
- "Username" : "Enw defnyddiwr",
- "Password" : "Cyfrinair",
- "Save" : "Cadw",
- "None" : "Dim",
- "URL" : "URL",
- "Location" : "Lleoliad",
- "ownCloud" : "ownCloud",
- "Share" : "Rhannu",
- "Name" : "Enw",
- "Delete" : "Dileu"
-},
-"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/apps/files_external/l10n/cy_GB.json b/apps/files_external/l10n/cy_GB.json
deleted file mode 100644
index acc75b9afbb..00000000000
--- a/apps/files_external/l10n/cy_GB.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "Personal" : "Personol",
- "Username" : "Enw defnyddiwr",
- "Password" : "Cyfrinair",
- "Save" : "Cadw",
- "None" : "Dim",
- "URL" : "URL",
- "Location" : "Lleoliad",
- "ownCloud" : "ownCloud",
- "Share" : "Rhannu",
- "Name" : "Enw",
- "Delete" : "Dileu"
-},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js
index c70905522af..1ae634dfb0e 100644
--- a/apps/files_external/l10n/de.js
+++ b/apps/files_external/l10n/de.js
@@ -33,7 +33,7 @@ OC.L10N.register(
"Client ID" : "Client-ID",
"Client secret" : "Geheime Zeichenkette des Clients",
"OpenStack v2" : "OpenStack v2",
- "Login" : "Anmelden",
+ "Login" : "Anmeldename",
"Password" : "Passwort",
"Tenant name" : "Name des Mieters",
"Identity endpoint URL" : "Identität Endpunkt-URL",
@@ -106,7 +106,7 @@ OC.L10N.register(
"Unable to update this external storage config. {statusMessage}" : "Diese externe Speicherkonfiguration konnte nicht aktualisiert werden. {statusMessage}",
"New configuration successfully saved" : "Neue Konfiguration gespeichert",
"Enter missing credentials" : "Fehlende Anmeldeinformationen eingeben",
- "Credentials successfully set" : "Anmeldeinformationen erfolgreich festgelegt",
+ "Credentials successfully set" : "Anmeldeinformationen festgelegt",
"Error while setting credentials: {error}" : "Fehler beim Festlegen der Anmeldeinformationen: {error}",
"Checking storage …" : "Prüfe Speicher …",
"There was an error with this external storage." : "Mit diesem externen Speicher ist ein Fehler aufgetreten.",
@@ -117,7 +117,7 @@ OC.L10N.register(
"External mount error" : "Fehler beim Einbinden des externen Speichers",
"List of external storage." : "Liste der externen Speicher.",
"There is no external storage configured. You can configure them in your Personal settings." : "Es ist kein externer Speicher eingerichtet. Du kannst diese in deinen persönlichen Einstellungen konfigurieren.",
- "There is no external storage configured and you don't have the permission to configure them." : "Es ist kein externer Speicher eingerichtet und du hast nicht die Berechtigung, einen solchen einzurichten.",
+ "There is no external storage configured and you don't have the permission to configure them." : "Es ist kein externer Speicher eingerichtet oder du hast keine Berechtigung, einen solchen einzurichten.",
"No external storage" : "Kein externer Speicher",
"Storage type" : "Speichertyp",
"Unknown" : "Unbekannt",
@@ -146,7 +146,7 @@ OC.L10N.register(
"Save" : "Speichern",
"Failed to save global credentials" : "Globale Anmeldeinformationen konnten nicht gespeichert werden",
"Failed to save global credentials: {message}" : "Globale Anmeldeinformationen konnten nicht gespeichert werden: {message}",
- "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder du hast keine Berechtigung dies zu tun.",
+ "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder du hast keine Berechtigung, diesen einzurichten.",
"Open documentation" : "Dokumentation öffnen",
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Externer Speicher erlaubt es, externe Speicherdienste und Geräte als Zweitspeicher-Geräte in Nextcloud einzubinden. Es kann Personen erlaubt werden eigene externe Speicherdienste einzubinden.",
"Folder name" : "Ordnername",
@@ -157,6 +157,6 @@ OC.L10N.register(
"All people" : "Alle Personen",
"Advanced settings" : "Erweiterte Einstellungen",
"Allow people to mount external storage" : "Personen erlauben, externen Speicher einzubinden",
- "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale Anmeldeinformationen können zur Anmeldung bei mehreren externen Speichern mit denselben Anmeldeinformationen verwendet werden."
+ "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale Anmeldeinformationen können zur Authentifizierung bei mehreren externen Speichern verwendet werden, die dieselben Anmeldeinformationen haben."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json
index f9a162bd1ad..86d08fb5c73 100644
--- a/apps/files_external/l10n/de.json
+++ b/apps/files_external/l10n/de.json
@@ -31,7 +31,7 @@
"Client ID" : "Client-ID",
"Client secret" : "Geheime Zeichenkette des Clients",
"OpenStack v2" : "OpenStack v2",
- "Login" : "Anmelden",
+ "Login" : "Anmeldename",
"Password" : "Passwort",
"Tenant name" : "Name des Mieters",
"Identity endpoint URL" : "Identität Endpunkt-URL",
@@ -104,7 +104,7 @@
"Unable to update this external storage config. {statusMessage}" : "Diese externe Speicherkonfiguration konnte nicht aktualisiert werden. {statusMessage}",
"New configuration successfully saved" : "Neue Konfiguration gespeichert",
"Enter missing credentials" : "Fehlende Anmeldeinformationen eingeben",
- "Credentials successfully set" : "Anmeldeinformationen erfolgreich festgelegt",
+ "Credentials successfully set" : "Anmeldeinformationen festgelegt",
"Error while setting credentials: {error}" : "Fehler beim Festlegen der Anmeldeinformationen: {error}",
"Checking storage …" : "Prüfe Speicher …",
"There was an error with this external storage." : "Mit diesem externen Speicher ist ein Fehler aufgetreten.",
@@ -115,7 +115,7 @@
"External mount error" : "Fehler beim Einbinden des externen Speichers",
"List of external storage." : "Liste der externen Speicher.",
"There is no external storage configured. You can configure them in your Personal settings." : "Es ist kein externer Speicher eingerichtet. Du kannst diese in deinen persönlichen Einstellungen konfigurieren.",
- "There is no external storage configured and you don't have the permission to configure them." : "Es ist kein externer Speicher eingerichtet und du hast nicht die Berechtigung, einen solchen einzurichten.",
+ "There is no external storage configured and you don't have the permission to configure them." : "Es ist kein externer Speicher eingerichtet oder du hast keine Berechtigung, einen solchen einzurichten.",
"No external storage" : "Kein externer Speicher",
"Storage type" : "Speichertyp",
"Unknown" : "Unbekannt",
@@ -144,7 +144,7 @@
"Save" : "Speichern",
"Failed to save global credentials" : "Globale Anmeldeinformationen konnten nicht gespeichert werden",
"Failed to save global credentials: {message}" : "Globale Anmeldeinformationen konnten nicht gespeichert werden: {message}",
- "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder du hast keine Berechtigung dies zu tun.",
+ "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder du hast keine Berechtigung, diesen einzurichten.",
"Open documentation" : "Dokumentation öffnen",
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Externer Speicher erlaubt es, externe Speicherdienste und Geräte als Zweitspeicher-Geräte in Nextcloud einzubinden. Es kann Personen erlaubt werden eigene externe Speicherdienste einzubinden.",
"Folder name" : "Ordnername",
@@ -155,6 +155,6 @@
"All people" : "Alle Personen",
"Advanced settings" : "Erweiterte Einstellungen",
"Allow people to mount external storage" : "Personen erlauben, externen Speicher einzubinden",
- "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale Anmeldeinformationen können zur Anmeldung bei mehreren externen Speichern mit denselben Anmeldeinformationen verwendet werden."
+ "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale Anmeldeinformationen können zur Authentifizierung bei mehreren externen Speichern verwendet werden, die dieselben Anmeldeinformationen haben."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js
index 900a3728b2f..dfe6f0bc387 100644
--- a/apps/files_external/l10n/de_DE.js
+++ b/apps/files_external/l10n/de_DE.js
@@ -33,7 +33,7 @@ OC.L10N.register(
"Client ID" : "Client-ID",
"Client secret" : "Geheime Zeichenkette des Clients",
"OpenStack v2" : "OpenStack v2",
- "Login" : "Anmelden",
+ "Login" : "Anmeldename",
"Password" : "Passwort",
"Tenant name" : "Name des Mieters",
"Identity endpoint URL" : "Identität Endpunkt-URL",
@@ -106,7 +106,7 @@ OC.L10N.register(
"Unable to update this external storage config. {statusMessage}" : "Diese externe Speicherkonfiguration konnte nicht aktualisiert werden. {statusMessage}",
"New configuration successfully saved" : "Neue Konfiguration gespeichert",
"Enter missing credentials" : "Fehlende Anmeldeinformationen eingeben",
- "Credentials successfully set" : "Anmeldeinformationen erfolgreich festgelegt",
+ "Credentials successfully set" : "Anmeldeinformationen festgelegt",
"Error while setting credentials: {error}" : "Fehler beim Festlegen der Anmeldeinformationen: {error}",
"Checking storage …" : "Prüfe Speicher…",
"There was an error with this external storage." : "Mit diesem externen Speicher ist ein Fehler aufgetreten.",
@@ -117,7 +117,7 @@ OC.L10N.register(
"External mount error" : "Fehler beim Einbinden des externen Speichers",
"List of external storage." : "Liste der externen Speicher.",
"There is no external storage configured. You can configure them in your Personal settings." : "Es ist kein externer Speicher eingerichtet. Sie können diese in Ihren persönlichen Einstellungen konfigurieren.",
- "There is no external storage configured and you don't have the permission to configure them." : "Es ist kein externer Speicher eingerichtet und Sie haben nicht die Berechtigung, einen solchen einzurichten.",
+ "There is no external storage configured and you don't have the permission to configure them." : "Es ist kein externer Speicher eingerichtet und Sie haben keine Berechtigung, einen solchen einzurichten.",
"No external storage" : "Kein externer Speicher",
"Storage type" : "Speichertyp",
"Unknown" : "Unbekannt",
@@ -146,7 +146,7 @@ OC.L10N.register(
"Save" : "Speichern",
"Failed to save global credentials" : "Globale Anmeldeinformationen konnten nicht gespeichert werden",
"Failed to save global credentials: {message}" : "Globale Anmeldeinformationen konnten nicht gespeichert werden: {message}",
- "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Sie haben keine Berechtigung diesen einzurichten",
+ "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Sie haben keine Berechtigung, diesen einzurichten.",
"Open documentation" : "Dokumentation öffnen",
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Externer Speicher erlaubt es, externe Speicherdienste und Geräte als Zweitspeicher-Geräte in Nextcloud einzubinden. Es kann Personen erlaubt werden eigene externe Speicherdienste einzubinden.",
"Folder name" : "Ordnername",
@@ -157,6 +157,6 @@ OC.L10N.register(
"All people" : "Alle Personen",
"Advanced settings" : "Erweiterte Einstellungen",
"Allow people to mount external storage" : "Personen erlauben, externen Speicher einzubinden",
- "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale Zugangsdaten können für die Authentifizierung für mehrere externe Speicher verwendet werden, solange sie identische Zugangsdaten benötigen."
+ "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale Anmeldeinformationen können zur Authentifizierung bei mehreren externen Speichern verwendet werden, die dieselben Anmeldeinformationen haben."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json
index 4e16f7b7de7..e51c610c829 100644
--- a/apps/files_external/l10n/de_DE.json
+++ b/apps/files_external/l10n/de_DE.json
@@ -31,7 +31,7 @@
"Client ID" : "Client-ID",
"Client secret" : "Geheime Zeichenkette des Clients",
"OpenStack v2" : "OpenStack v2",
- "Login" : "Anmelden",
+ "Login" : "Anmeldename",
"Password" : "Passwort",
"Tenant name" : "Name des Mieters",
"Identity endpoint URL" : "Identität Endpunkt-URL",
@@ -104,7 +104,7 @@
"Unable to update this external storage config. {statusMessage}" : "Diese externe Speicherkonfiguration konnte nicht aktualisiert werden. {statusMessage}",
"New configuration successfully saved" : "Neue Konfiguration gespeichert",
"Enter missing credentials" : "Fehlende Anmeldeinformationen eingeben",
- "Credentials successfully set" : "Anmeldeinformationen erfolgreich festgelegt",
+ "Credentials successfully set" : "Anmeldeinformationen festgelegt",
"Error while setting credentials: {error}" : "Fehler beim Festlegen der Anmeldeinformationen: {error}",
"Checking storage …" : "Prüfe Speicher…",
"There was an error with this external storage." : "Mit diesem externen Speicher ist ein Fehler aufgetreten.",
@@ -115,7 +115,7 @@
"External mount error" : "Fehler beim Einbinden des externen Speichers",
"List of external storage." : "Liste der externen Speicher.",
"There is no external storage configured. You can configure them in your Personal settings." : "Es ist kein externer Speicher eingerichtet. Sie können diese in Ihren persönlichen Einstellungen konfigurieren.",
- "There is no external storage configured and you don't have the permission to configure them." : "Es ist kein externer Speicher eingerichtet und Sie haben nicht die Berechtigung, einen solchen einzurichten.",
+ "There is no external storage configured and you don't have the permission to configure them." : "Es ist kein externer Speicher eingerichtet und Sie haben keine Berechtigung, einen solchen einzurichten.",
"No external storage" : "Kein externer Speicher",
"Storage type" : "Speichertyp",
"Unknown" : "Unbekannt",
@@ -144,7 +144,7 @@
"Save" : "Speichern",
"Failed to save global credentials" : "Globale Anmeldeinformationen konnten nicht gespeichert werden",
"Failed to save global credentials: {message}" : "Globale Anmeldeinformationen konnten nicht gespeichert werden: {message}",
- "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Sie haben keine Berechtigung diesen einzurichten",
+ "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Sie haben keine Berechtigung, diesen einzurichten.",
"Open documentation" : "Dokumentation öffnen",
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Externer Speicher erlaubt es, externe Speicherdienste und Geräte als Zweitspeicher-Geräte in Nextcloud einzubinden. Es kann Personen erlaubt werden eigene externe Speicherdienste einzubinden.",
"Folder name" : "Ordnername",
@@ -155,6 +155,6 @@
"All people" : "Alle Personen",
"Advanced settings" : "Erweiterte Einstellungen",
"Allow people to mount external storage" : "Personen erlauben, externen Speicher einzubinden",
- "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale Zugangsdaten können für die Authentifizierung für mehrere externe Speicher verwendet werden, solange sie identische Zugangsdaten benötigen."
+ "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale Anmeldeinformationen können zur Authentifizierung bei mehreren externen Speichern verwendet werden, die dieselben Anmeldeinformationen haben."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/et_EE.js b/apps/files_external/l10n/et_EE.js
index 7e339e40b96..9624cfcc025 100644
--- a/apps/files_external/l10n/et_EE.js
+++ b/apps/files_external/l10n/et_EE.js
@@ -2,16 +2,25 @@ OC.L10N.register(
"files_external",
{
"Grant access" : "Anna ligipääs",
- "Error configuring OAuth1" : "OAuth1 seadistamise tõrge",
- "Error configuring OAuth2" : "OAuth2 seadistamise tõrge",
+ "Error configuring OAuth1" : "Viga OAuth1 seadistamisel",
+ "Please provide a valid app key and secret." : "Palun sisesta rakenduse kehtiv võti ja saladus.",
+ "Error configuring OAuth2" : "Viga OAuth2 seadistamisel",
"Generate keys" : "Loo võtmed",
"Error generating key pair" : "Viga võtmepaari loomisel",
+ "You are not logged in" : "Sa pole sisse logitud.",
+ "Permission denied" : "Õigus on keelatud",
+ "Forbidden to manage local mounts" : "Kohalike haakepunktide haldamine on keelatud",
+ "Storage with ID \"%d\" not found" : "Andmeruumi tunnusega „%d“ ei leidu",
+ "Invalid backend or authentication mechanism class" : "Vigane taustateenus või autentimismeetodi klass",
"Invalid mount point" : "Vigane haakepunkt",
"Objectstore forbidden" : "Objectstore on keelatud",
"Invalid storage backend \"%s\"" : "Vigane salvestuskoha taustsüsteem \"%s\"",
+ "Not permitted to use backend \"%s\"" : "Pole luba kasutada „%s“ taustateenust",
+ "Not permitted to use authentication mechanism \"%s\"" : "Pole luba kasutada „%s“ autentimismeetodit",
"Unsatisfied backend parameters" : "Rahuldamata taustarakenduse parameetrid",
"Insufficient data: %s" : "Pole piisavalt andmeid: %s",
"%s" : "%s",
+ "Storage with ID \"%d\" is not editable by non-admins" : "Andmeruumi tunnusega „%d“ on muudetav vaid peakasutajate poolt",
"Access key" : "Ligipääsuvõti",
"Secret key" : "Salavõti",
"Builtin" : "Sisseehitatud",
@@ -25,10 +34,18 @@ OC.L10N.register(
"OpenStack v2" : "OpenStack v2",
"Login" : "Logi sisse",
"Password" : "Salasõna",
+ "Tenant name" : "Kliendi nimi",
+ "Identity endpoint URL" : "Tuvastuse otspunkti võrguaadress",
"OpenStack v3" : "OpenStack v3",
"Domain" : "Domeen",
"Rackspace" : "Rackspace",
"API key" : "API võti",
+ "Global credentials" : "Üldinekasutajanimi/salasõna",
+ "Log-in credentials, save in database" : "Salvesta sisselogimise kasutajanimi/salasõna andmebaasi",
+ "Login and password" : "Kasutajanimi ja salasõna",
+ "Log-in credentials, save in session" : "Salvesta sisselogimise kasutajanimi/salasõna sessioonis",
+ "Global credentials, manually entered" : "Käsitsi sisestatud üldine kasutajanimi/salasõna",
+ "Manually entered, store in database" : "Käsitsi sisestatud ja salvestub andmebaasis",
"RSA public key" : "RSA avalik võti",
"Public key" : "Avalik võti",
"RSA private key" : "RSA privaatvõti",
@@ -38,11 +55,14 @@ OC.L10N.register(
"Hostname" : "Hostinimi",
"Port" : "Port",
"Region" : "Piirkond",
+ "Storage Class" : "Andmeruumi klass (Storage class)",
"Enable SSL" : "SSL-i kasutamine",
"Enable Path Style" : "Luba otsingtee stiilis",
+ "Legacy (v2) authentication" : "Pärandvormis autentimine (v2)",
+ "SSE-C encryption key" : "SSE-C krüptimisvõti",
"WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Mujahl olev alamkaust",
+ "URL" : "Võrguaadress",
+ "Remote subfolder" : "Mujal olev alamkaust",
"Secure https://" : "Turvaline https://",
"FTP" : "FTP",
"Host" : "Host",
@@ -56,22 +76,49 @@ OC.L10N.register(
"SMB/CIFS" : "SMB/CIFS",
"Share" : "Jaga",
"Show hidden files" : "Näita peidetud faile",
+ "Case sensitive file system" : "Tõstutundlik failisüsteem",
+ "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Selle valiku keelamisega saad kasutada tõstutundetut failisüsteemi, kuid sellega kaasneb jõudluskadu",
+ "Timeout" : "Aegumine",
+ "SMB/CIFS using OC login" : "SMB / CIFS kasutades OC sisselogimist",
"OpenStack Object Storage" : "OpenStack Object Storage",
"Service name" : "Teenuse nimi",
+ "Request timeout (seconds)" : "Päringu aegumine (sekundites)",
+ "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "cURL-i tugi on PHP-s on kas paigaldamata või pole kasutusele võetud. „%s“ haakimine pole võimalik. Palun oma peakasutajat, et ta teeks cURL-i toe tagamiseks vajalikud muudatused.",
+ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "FTP tugi on PHP-s on kas paigaldamata või pole kasutusele võetud. „%s“ haakimine pole võimalik. Palun oma peakasutajat, et ta teeks FTP toe tagamiseks vajalikud muudatused.",
+ "\"%1$s\" is not installed. Mounting of %2$s is not possible. Please ask your system administrator to install it." : "„%1$s“ pole paigladatud. „%2$s“ haakimine pole võimalik. Palu oma peakasutajal või süsteemihalduril ta paigaldada.",
"External storage" : "Väline andmehoidla",
"External storage support" : "Väliste andmehoidlate tugi",
- "Adds basic external storage support" : "Lisab väliste andmehoidlate toe baasiteratsioonis",
+ "Adds basic external storage support" : "Lisab väliste andmehoidlate toe põhivariandi",
"Confirm" : "Kinnita",
+ "Storage credentials" : "Andmeruumi kasutajanimi/salasõna",
+ "To access the storage, you need to provide the authentication credentials." : "Selle andmeruumi jaoks pead autentimiseks lisama kasutajanime ja salasõna.",
"Enter the storage login" : "Sisesta andmeruumi kasutajatunnus",
"Enter the storage password" : "Sisesta andmeruumi kasutaja salasõna",
+ "Unable to update this external storage config. {statusMessage}" : "Selle välise andmeruumi seadistusi pole võimalik uuendada. {statusMessage}",
+ "New configuration successfully saved" : "Uue seadistuse salvestamine õnnestus",
+ "Enter missing credentials" : "Lisa puuduvad kasutajanimi/salasõna",
+ "Credentials successfully set" : "Kasutajanime/salasõna lisamine õnnestus",
+ "Error while setting credentials: {error}" : "Viga kasutajanime/salasõna lisamisel: {error}",
+ "Checking storage …" : "Kontrollin andmeruumi…",
+ "There was an error with this external storage." : "Selle välis andmeruumi kontekstis tekkis viga.",
+ "We were unable to check the external storage {basename}" : "Meil ei õnnestunud kontrollida välist andmeruumi „{basename}“",
+ "Examine this faulty external storage configuration" : "Kontrolli uuesti selle vigase välise andmeruumi seadistusi",
"Open in Files" : "Ava failirakenduses",
- "External mount error" : "Välise seostamise tõrge",
- "Storage type" : "Andmehoidla tüüp",
+ "There was an error with this external storage. Do you want to review this mount point config in the settings page?" : "Selle välise andmeruumiga tekkis viga. Kas sa tahaksid seadistustest kontrollida haakepunkti konfiguratsiooni?",
+ "External mount error" : "Viga välise andmeruumi haakimisel",
+ "List of external storage." : "Väliste andmeruumide loend.",
+ "There is no external storage configured. You can configure them in your Personal settings." : "Ühtegi välist andmeruumi pole seadistatud. Saad seda teha isiklikest seadistustest.",
+ "There is no external storage configured and you don't have the permission to configure them." : "Ühtegi välist andmeruumi pole seadistatud ja sul pole õigust seda teha.",
+ "No external storage" : "Ühtegi välist andmeruumi ei leidu",
+ "Storage type" : "Andmeruumi tüüp",
"Unknown" : "Teadmata",
"Scope" : "Skoop",
"Personal" : "Isiklik",
"System" : "Süsteem",
- "Enable encryption" : "Luba krüpteerimine",
+ "Type to select account or group." : "Kasutakonto või grupi leidmiseks kirjuta midagi.",
+ "(Group)" : "(Grupp)",
+ "Compatibility with Mac NFD encoding (slow)" : "Ühilduvus Mac NFD kodeeringuga (aeglane)",
+ "Enable encryption" : "Luba krüptimine",
"Enable previews" : "Luba eelvaated",
"Enable sharing" : "Luba jagamine",
"Check for changes" : "Otsi uuendusi",
@@ -79,16 +126,23 @@ OC.L10N.register(
"Once every direct access" : "Kord iga otsese pöördumise korral",
"Read only" : "kirjutuskaitstud",
"Disconnect" : "Ühenda lahti",
+ "Unknown backend: {backendName}" : "Tundmatu taustateenus: {backendName}",
"Admin defined" : "Admini poolt määratud",
+ "Delete storage?" : "Kas kustutame andmeruumi?",
+ "Click to recheck the configuration" : "Klõpsi seadistuste uuesti kontrollimiseks",
"Saved" : "Salvestatud",
- "Saving …" : "Salvestamine …",
+ "Saving …" : "Salvestan…",
"Save" : "Salvesta",
+ "Failed to save global credentials" : "Üldise kasutajanime/salasõna salvestamine ei õnnestunud",
+ "Failed to save global credentials: {message}" : "Üldise kasutajanime/salasõna salvestamine ei õnnestunud: {message}",
"Open documentation" : "Ava dokumentatsioon",
"Folder name" : "Kausta nimi",
"Authentication" : "Autentimine",
"Configuration" : "Seadistamine",
"Available for" : "Saadaval",
"Add storage" : "Lisa andmehoidla",
- "Advanced settings" : "Lisavalikud"
+ "All people" : "Kõik inimesed",
+ "Advanced settings" : "Lisavalikud",
+ "Allow people to mount external storage" : "Luba kõigil haakida välist andmeruumi"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/et_EE.json b/apps/files_external/l10n/et_EE.json
index 4f5ae6f5243..eed33193c14 100644
--- a/apps/files_external/l10n/et_EE.json
+++ b/apps/files_external/l10n/et_EE.json
@@ -1,15 +1,24 @@
{ "translations": {
"Grant access" : "Anna ligipääs",
- "Error configuring OAuth1" : "OAuth1 seadistamise tõrge",
- "Error configuring OAuth2" : "OAuth2 seadistamise tõrge",
+ "Error configuring OAuth1" : "Viga OAuth1 seadistamisel",
+ "Please provide a valid app key and secret." : "Palun sisesta rakenduse kehtiv võti ja saladus.",
+ "Error configuring OAuth2" : "Viga OAuth2 seadistamisel",
"Generate keys" : "Loo võtmed",
"Error generating key pair" : "Viga võtmepaari loomisel",
+ "You are not logged in" : "Sa pole sisse logitud.",
+ "Permission denied" : "Õigus on keelatud",
+ "Forbidden to manage local mounts" : "Kohalike haakepunktide haldamine on keelatud",
+ "Storage with ID \"%d\" not found" : "Andmeruumi tunnusega „%d“ ei leidu",
+ "Invalid backend or authentication mechanism class" : "Vigane taustateenus või autentimismeetodi klass",
"Invalid mount point" : "Vigane haakepunkt",
"Objectstore forbidden" : "Objectstore on keelatud",
"Invalid storage backend \"%s\"" : "Vigane salvestuskoha taustsüsteem \"%s\"",
+ "Not permitted to use backend \"%s\"" : "Pole luba kasutada „%s“ taustateenust",
+ "Not permitted to use authentication mechanism \"%s\"" : "Pole luba kasutada „%s“ autentimismeetodit",
"Unsatisfied backend parameters" : "Rahuldamata taustarakenduse parameetrid",
"Insufficient data: %s" : "Pole piisavalt andmeid: %s",
"%s" : "%s",
+ "Storage with ID \"%d\" is not editable by non-admins" : "Andmeruumi tunnusega „%d“ on muudetav vaid peakasutajate poolt",
"Access key" : "Ligipääsuvõti",
"Secret key" : "Salavõti",
"Builtin" : "Sisseehitatud",
@@ -23,10 +32,18 @@
"OpenStack v2" : "OpenStack v2",
"Login" : "Logi sisse",
"Password" : "Salasõna",
+ "Tenant name" : "Kliendi nimi",
+ "Identity endpoint URL" : "Tuvastuse otspunkti võrguaadress",
"OpenStack v3" : "OpenStack v3",
"Domain" : "Domeen",
"Rackspace" : "Rackspace",
"API key" : "API võti",
+ "Global credentials" : "Üldinekasutajanimi/salasõna",
+ "Log-in credentials, save in database" : "Salvesta sisselogimise kasutajanimi/salasõna andmebaasi",
+ "Login and password" : "Kasutajanimi ja salasõna",
+ "Log-in credentials, save in session" : "Salvesta sisselogimise kasutajanimi/salasõna sessioonis",
+ "Global credentials, manually entered" : "Käsitsi sisestatud üldine kasutajanimi/salasõna",
+ "Manually entered, store in database" : "Käsitsi sisestatud ja salvestub andmebaasis",
"RSA public key" : "RSA avalik võti",
"Public key" : "Avalik võti",
"RSA private key" : "RSA privaatvõti",
@@ -36,11 +53,14 @@
"Hostname" : "Hostinimi",
"Port" : "Port",
"Region" : "Piirkond",
+ "Storage Class" : "Andmeruumi klass (Storage class)",
"Enable SSL" : "SSL-i kasutamine",
"Enable Path Style" : "Luba otsingtee stiilis",
+ "Legacy (v2) authentication" : "Pärandvormis autentimine (v2)",
+ "SSE-C encryption key" : "SSE-C krüptimisvõti",
"WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Mujahl olev alamkaust",
+ "URL" : "Võrguaadress",
+ "Remote subfolder" : "Mujal olev alamkaust",
"Secure https://" : "Turvaline https://",
"FTP" : "FTP",
"Host" : "Host",
@@ -54,22 +74,49 @@
"SMB/CIFS" : "SMB/CIFS",
"Share" : "Jaga",
"Show hidden files" : "Näita peidetud faile",
+ "Case sensitive file system" : "Tõstutundlik failisüsteem",
+ "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Selle valiku keelamisega saad kasutada tõstutundetut failisüsteemi, kuid sellega kaasneb jõudluskadu",
+ "Timeout" : "Aegumine",
+ "SMB/CIFS using OC login" : "SMB / CIFS kasutades OC sisselogimist",
"OpenStack Object Storage" : "OpenStack Object Storage",
"Service name" : "Teenuse nimi",
+ "Request timeout (seconds)" : "Päringu aegumine (sekundites)",
+ "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "cURL-i tugi on PHP-s on kas paigaldamata või pole kasutusele võetud. „%s“ haakimine pole võimalik. Palun oma peakasutajat, et ta teeks cURL-i toe tagamiseks vajalikud muudatused.",
+ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "FTP tugi on PHP-s on kas paigaldamata või pole kasutusele võetud. „%s“ haakimine pole võimalik. Palun oma peakasutajat, et ta teeks FTP toe tagamiseks vajalikud muudatused.",
+ "\"%1$s\" is not installed. Mounting of %2$s is not possible. Please ask your system administrator to install it." : "„%1$s“ pole paigladatud. „%2$s“ haakimine pole võimalik. Palu oma peakasutajal või süsteemihalduril ta paigaldada.",
"External storage" : "Väline andmehoidla",
"External storage support" : "Väliste andmehoidlate tugi",
- "Adds basic external storage support" : "Lisab väliste andmehoidlate toe baasiteratsioonis",
+ "Adds basic external storage support" : "Lisab väliste andmehoidlate toe põhivariandi",
"Confirm" : "Kinnita",
+ "Storage credentials" : "Andmeruumi kasutajanimi/salasõna",
+ "To access the storage, you need to provide the authentication credentials." : "Selle andmeruumi jaoks pead autentimiseks lisama kasutajanime ja salasõna.",
"Enter the storage login" : "Sisesta andmeruumi kasutajatunnus",
"Enter the storage password" : "Sisesta andmeruumi kasutaja salasõna",
+ "Unable to update this external storage config. {statusMessage}" : "Selle välise andmeruumi seadistusi pole võimalik uuendada. {statusMessage}",
+ "New configuration successfully saved" : "Uue seadistuse salvestamine õnnestus",
+ "Enter missing credentials" : "Lisa puuduvad kasutajanimi/salasõna",
+ "Credentials successfully set" : "Kasutajanime/salasõna lisamine õnnestus",
+ "Error while setting credentials: {error}" : "Viga kasutajanime/salasõna lisamisel: {error}",
+ "Checking storage …" : "Kontrollin andmeruumi…",
+ "There was an error with this external storage." : "Selle välis andmeruumi kontekstis tekkis viga.",
+ "We were unable to check the external storage {basename}" : "Meil ei õnnestunud kontrollida välist andmeruumi „{basename}“",
+ "Examine this faulty external storage configuration" : "Kontrolli uuesti selle vigase välise andmeruumi seadistusi",
"Open in Files" : "Ava failirakenduses",
- "External mount error" : "Välise seostamise tõrge",
- "Storage type" : "Andmehoidla tüüp",
+ "There was an error with this external storage. Do you want to review this mount point config in the settings page?" : "Selle välise andmeruumiga tekkis viga. Kas sa tahaksid seadistustest kontrollida haakepunkti konfiguratsiooni?",
+ "External mount error" : "Viga välise andmeruumi haakimisel",
+ "List of external storage." : "Väliste andmeruumide loend.",
+ "There is no external storage configured. You can configure them in your Personal settings." : "Ühtegi välist andmeruumi pole seadistatud. Saad seda teha isiklikest seadistustest.",
+ "There is no external storage configured and you don't have the permission to configure them." : "Ühtegi välist andmeruumi pole seadistatud ja sul pole õigust seda teha.",
+ "No external storage" : "Ühtegi välist andmeruumi ei leidu",
+ "Storage type" : "Andmeruumi tüüp",
"Unknown" : "Teadmata",
"Scope" : "Skoop",
"Personal" : "Isiklik",
"System" : "Süsteem",
- "Enable encryption" : "Luba krüpteerimine",
+ "Type to select account or group." : "Kasutakonto või grupi leidmiseks kirjuta midagi.",
+ "(Group)" : "(Grupp)",
+ "Compatibility with Mac NFD encoding (slow)" : "Ühilduvus Mac NFD kodeeringuga (aeglane)",
+ "Enable encryption" : "Luba krüptimine",
"Enable previews" : "Luba eelvaated",
"Enable sharing" : "Luba jagamine",
"Check for changes" : "Otsi uuendusi",
@@ -77,16 +124,23 @@
"Once every direct access" : "Kord iga otsese pöördumise korral",
"Read only" : "kirjutuskaitstud",
"Disconnect" : "Ühenda lahti",
+ "Unknown backend: {backendName}" : "Tundmatu taustateenus: {backendName}",
"Admin defined" : "Admini poolt määratud",
+ "Delete storage?" : "Kas kustutame andmeruumi?",
+ "Click to recheck the configuration" : "Klõpsi seadistuste uuesti kontrollimiseks",
"Saved" : "Salvestatud",
- "Saving …" : "Salvestamine …",
+ "Saving …" : "Salvestan…",
"Save" : "Salvesta",
+ "Failed to save global credentials" : "Üldise kasutajanime/salasõna salvestamine ei õnnestunud",
+ "Failed to save global credentials: {message}" : "Üldise kasutajanime/salasõna salvestamine ei õnnestunud: {message}",
"Open documentation" : "Ava dokumentatsioon",
"Folder name" : "Kausta nimi",
"Authentication" : "Autentimine",
"Configuration" : "Seadistamine",
"Available for" : "Saadaval",
"Add storage" : "Lisa andmehoidla",
- "Advanced settings" : "Lisavalikud"
+ "All people" : "Kõik inimesed",
+ "Advanced settings" : "Lisavalikud",
+ "Allow people to mount external storage" : "Luba kõigil haakida välist andmeruumi"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index 34809db9d1d..4fe61304c42 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Error configuring OAuth2" : "Erreur lors de la configuration de OAuth2",
"Generate keys" : "Générer des clés",
"Error generating key pair" : "Erreur lors de la génération des clés",
+ "You are not logged in" : "Vous n'êtes pas connecté",
+ "Permission denied" : "Autorisation refusée",
"Forbidden to manage local mounts" : "Interdiction de gérer les montages locaux.",
"Storage with ID \"%d\" not found" : "Stockage avec l'ID \"%d\" non trouvé",
"Invalid backend or authentication mechanism class" : "Service ou méthode d'authentification non valable",
@@ -105,6 +107,7 @@ OC.L10N.register(
"New configuration successfully saved" : "Nouvelle configuration entrée avec succès",
"Enter missing credentials" : "Saisissez les identifiants de connexion manquants",
"Credentials successfully set" : "Identifiants enregistrés avec succès",
+ "Error while setting credentials: {error}" : "Erreur lors de l'envoi des identifiants: {error}",
"Checking storage …" : "Vérification du stockage ...",
"There was an error with this external storage." : "Il y a eu une erreur avec ce stockage externe.",
"We were unable to check the external storage {basename}" : "Nous n'avons pas pu vérifier le stockage externe {basename}",
@@ -141,6 +144,8 @@ OC.L10N.register(
"Saved" : "Enregistré",
"Saving …" : "Enregistrement ...",
"Save" : "Enregistrer",
+ "Failed to save global credentials" : "Échec de l'enregistrement des identifiants globaux",
+ "Failed to save global credentials: {message}" : "Échec de l'enregistrement des identifiants globaux : {message}",
"No external storage configured or you don't have the permission to configure them" : "Aucun stockage externe configuré ou vous n'avez pas l'autorisation de les configurer",
"Open documentation" : "Voir la documentation",
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Le stockage externe vous permet de monter des périphériques et services externes en tant que périphériques de stockage secondaires sous Nextcloud. Vous pouvez aussi autoriser les personnes à monter leurs propres services de stockage externes.",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index e36b5cd05f8..d55040a70db 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -5,6 +5,8 @@
"Error configuring OAuth2" : "Erreur lors de la configuration de OAuth2",
"Generate keys" : "Générer des clés",
"Error generating key pair" : "Erreur lors de la génération des clés",
+ "You are not logged in" : "Vous n'êtes pas connecté",
+ "Permission denied" : "Autorisation refusée",
"Forbidden to manage local mounts" : "Interdiction de gérer les montages locaux.",
"Storage with ID \"%d\" not found" : "Stockage avec l'ID \"%d\" non trouvé",
"Invalid backend or authentication mechanism class" : "Service ou méthode d'authentification non valable",
@@ -103,6 +105,7 @@
"New configuration successfully saved" : "Nouvelle configuration entrée avec succès",
"Enter missing credentials" : "Saisissez les identifiants de connexion manquants",
"Credentials successfully set" : "Identifiants enregistrés avec succès",
+ "Error while setting credentials: {error}" : "Erreur lors de l'envoi des identifiants: {error}",
"Checking storage …" : "Vérification du stockage ...",
"There was an error with this external storage." : "Il y a eu une erreur avec ce stockage externe.",
"We were unable to check the external storage {basename}" : "Nous n'avons pas pu vérifier le stockage externe {basename}",
@@ -139,6 +142,8 @@
"Saved" : "Enregistré",
"Saving …" : "Enregistrement ...",
"Save" : "Enregistrer",
+ "Failed to save global credentials" : "Échec de l'enregistrement des identifiants globaux",
+ "Failed to save global credentials: {message}" : "Échec de l'enregistrement des identifiants globaux : {message}",
"No external storage configured or you don't have the permission to configure them" : "Aucun stockage externe configuré ou vous n'avez pas l'autorisation de les configurer",
"Open documentation" : "Voir la documentation",
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Le stockage externe vous permet de monter des périphériques et services externes en tant que périphériques de stockage secondaires sous Nextcloud. Vous pouvez aussi autoriser les personnes à monter leurs propres services de stockage externes.",
diff --git a/apps/files_external/l10n/hu.js b/apps/files_external/l10n/hu.js
index f9c76ae632a..d5e59fa5d77 100644
--- a/apps/files_external/l10n/hu.js
+++ b/apps/files_external/l10n/hu.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Error configuring OAuth2" : "OAuth2 beállítási hiba",
"Generate keys" : "Kulcsok előállítása",
"Error generating key pair" : "Hiba történt a kulcspár előállítása során",
+ "You are not logged in" : "Nincs bejelentkezve.",
+ "Permission denied" : "Jogosultság megtagadva",
"Forbidden to manage local mounts" : "A helyi csatolt kötetek kezelése tiltott",
"Storage with ID \"%d\" not found" : "A(z) „%d” azonosítójú tároló nem található",
"Invalid backend or authentication mechanism class" : "Érvénytelen háttérszolgáltatási vagy hitelesítési mechanizmus osztály",
@@ -19,6 +21,7 @@ OC.L10N.register(
"Unsatisfied authentication mechanism parameters" : "Elégtelen paraméterek a hitelesítési mechanizmushoz",
"Insufficient data: %s" : "Elégtelen adatok: %s",
"%s" : "%s",
+ "Storage with ID \"%d\" is not editable by non-admins" : "A(z) „%d” azonosítójú tárolót csak rendszergazdák szerkeszthetik",
"Access key" : "Hozzáférési kulcs",
"Secret key" : "Titkos kulcs",
"Builtin" : "Beépített",
@@ -40,7 +43,10 @@ OC.L10N.register(
"API key" : "API kulcs",
"Global credentials" : "Globális hitelesítő adatok",
"Log-in credentials, save in database" : "Bejelentkezési hitelesítő adatok, mentés adatbázisban",
+ "Login and password" : "Bejelentkezés és jelszó",
"Log-in credentials, save in session" : "Bejelentkezési hitelesítő adatok, mentés a munkamenetben",
+ "Global credentials, manually entered" : "Globális hitelesítő adatok, kézileg megadva",
+ "Manually entered, store in database" : "Kézileg megadva, tárolás adatbázisban",
"RSA public key" : "RSA nyilvános kulcs",
"Public key" : "Nyilvános kulcs",
"RSA private key" : "RSA titkos kulcs",
@@ -57,6 +63,8 @@ OC.L10N.register(
"Enable SSL" : "SSL engedélyezése",
"Enable Path Style" : "Útvonal stílus engedélyezés",
"Legacy (v2) authentication" : "Örökölt (v2) hitelesítés",
+ "Enable multipart copy" : "Többrészes másolás engedélyezése",
+ "SSE-C encryption key" : "SSE-C titkosítási kulcsa",
"WebDAV" : "WebDAV",
"URL" : "URL",
"Remote subfolder" : "Távoli almappa",
@@ -76,8 +84,10 @@ OC.L10N.register(
"Case sensitive file system" : "Kis- és nagybetűket megkülönböztető fájlrendszer",
"Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "A letiltása lehetővé teszi a kis- és nagybetűket nem megkülönböztető fájlrendszerek használatát, de ez teljesítményvesztést okoz",
"Verify ACL access when listing files" : "ACL hozzáférés ellenőrzése a fájlok listázásakor",
+ "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Egy könyvtárban szereplő összes fájl vagy mappa ACL-jének ellenőrzése azon elemek kiszűréséhez, melyeken a fióknak nincs olvasási engedélye; teljesítménycsökkenéssel jár",
"Timeout" : "Időtúllépés",
"SMB/CIFS using OC login" : "SMB / CIFS OC bejelentkezéssel",
+ "Login as share" : "Bejelentkezés megosztásként",
"OpenStack Object Storage" : "OpenStack objektumtároló",
"Service name" : "Szolgáltatás neve",
"Request timeout (seconds)" : "Kérés időtúllépése (másodpercben)",
@@ -87,10 +97,18 @@ OC.L10N.register(
"External storage" : "Külső tároló",
"External storage support" : "Külső tároló támogatás",
"Adds basic external storage support" : "Külső tároló támogatás hozzáadása",
+ "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Ez az alkalmazás lehetővé teszi a rendszergazdák számára, hogy beállítsák a kapcsolatokat a külső tárhely-szolgáltatókkal, például FTP-kiszolgálókkal, S3 vagy SWIFT objektumtárolókkal, más Nextcloud-kiszolgálókkal, WebDAV-kiszolgálókkal és egyebekkel. A rendszergazdák kiválaszthatják, hogy milyen típusú tárolókat engedélyeznek, és csatolhatják ezeket a tárhelyeket egy fiók, egy csoport vagy az egész rendszer számára. A felhasználók látni fogják, hogy egy új mappa jelenik meg a Nextcloud gyökérkönyvtárában, amelyet minden más Nextcloud mappához hasonlóan elérhetnek és használhatnak. A külső tárhely lehetővé teszi az emberek számára a külső helyeken tárolt fájlok megosztását is. Ezekben az esetekben a fájl tulajdonosának hitelesítő adatait akkor használják, amikor a címzett a fájlt külső tárhelyről kéri, ezáltal biztosítva, hogy a címzett hozzáférjen a megosztott fájlhoz.\n\nA külső tároló grafikus felületen vagy a parancssorban konfigurálható. Ez a második lehetőség a rendszergazdák számára nagyobb rugalmasságot biztosít a tömeges külső tárolók konfigurálásához, és a csatolási prioritások beállításához. További információ a külső tároló GUI dokumentációjában, és a külső tároló konfigurációs fájljának dokumentációjában található.",
"Confirm" : "Megerősítés",
+ "Storage credentials" : "Tároló hitelesítő adatai",
+ "To access the storage, you need to provide the authentication credentials." : "A tároló eléréséhez meg kell adnia a hitelesítő adatokat.",
+ "Enter the storage login" : "Adja meg a tároló bejelentkezését",
+ "Enter the storage password" : "Adja meg a tároló jelszavát",
"Unable to update this external storage config. {statusMessage}" : "A külső tároló beállításainak frissítése nem sikerült. {statusMessage}",
"New configuration successfully saved" : "Az új konfiguráció sikeresen elmentve",
"Enter missing credentials" : "Adja meg a hiányzó hitelesítési adatokat",
+ "Credentials successfully set" : "Hitelesítő adatok sikeresen beállítva",
+ "Error while setting credentials: {error}" : "Hiba a hitelesítő adatok beállításakor: {error}",
+ "Checking storage …" : "Tároló ellenőrzése…",
"There was an error with this external storage." : "Hiba történt ezzel a külső tárolóval.",
"We were unable to check the external storage {basename}" : "Nem sikerült a(z) {basename} külső tároló ellenőrzése",
"Examine this faulty external storage configuration" : "Vizsgálja meg a külső tároló hibás konfigurációját",
@@ -106,6 +124,7 @@ OC.L10N.register(
"Scope" : "Hatókör",
"Personal" : "Személyes",
"System" : "Rendszer",
+ "Type to select account or group." : "Gépeljen a fiók vagy a csoport kiválasztásához.",
"(Group)" : "(Csoport)",
"Compatibility with Mac NFD encoding (slow)" : "Kompatibilitás a Mac NFD kódolással (lassú)",
"Enable encryption" : "Titkosítás engedélyezése",
@@ -116,6 +135,7 @@ OC.L10N.register(
"Once every direct access" : "Minden közvetlen elérésnél",
"Read only" : "Csak olvasható",
"Disconnect" : "Kapcsolat bontása",
+ "Unknown backend: {backendName}" : "Ismeretlen háttérszolgáltatás: {backendName}",
"Admin defined" : "Rendszergazda által definiálva",
"Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Az automatikus állapotellenőrzés a beállított tárolók nagy száma miatt ki van kapcsolva, kattintson az állapot ellenőrzéséhez",
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Biztos, hogy bontja a kapcsolatot ezzel a külső tárolóval? A tároló nem lesz elérhető a Nextcloudban, és a szinkronizálási kliensek is törölni fogják azokat a fájlokat, amelyek jelenleg kapcsolatban vannak, viszont magáról a külső tárolóról nem fogja törölni a fájlokat és mappákat.",
@@ -124,14 +144,19 @@ OC.L10N.register(
"Saved" : "Mentve",
"Saving …" : "Mentés…",
"Save" : "Mentés",
+ "Failed to save global credentials" : "A globális hitelesítő adatok mentése sikertelen",
+ "Failed to save global credentials: {message}" : "A globális hitelesítő adatok mentése sikertelen: {message}",
"No external storage configured or you don't have the permission to configure them" : "Nincsenek külső tárolók beállítva, vagy nincs hozzáférése a beállításaikhoz",
"Open documentation" : "Dokumentáció megnyitása",
+ "External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "A külső tárhely lehetővé teszi külső tárolási szolgáltatások és eszközök másodlagos Nextcloud-tárolóeszközként történő csatlakoztatását. Lehetővé teheti az emberek számára, hogy saját külső tárolószolgáltatásukat is csatlakoztassák.",
"Folder name" : "Mappa neve",
"Authentication" : "Hitelesítés",
"Configuration" : "Beállítások",
"Available for" : "Számukra érhető el:",
"Add storage" : "Tároló hozzáadása",
+ "All people" : "Mindenki",
"Advanced settings" : "Speciális beállítások",
+ "Allow people to mount external storage" : "Külső tárolók csatolásának engedélyezése az emberek számára",
"Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "A globális hitelesítő adatokkal azonos külső hitelesítő adatokkal rendelkező külső tárhelyek hitelesíthetők."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/hu.json b/apps/files_external/l10n/hu.json
index a33f82f6a8c..f87d4b601f9 100644
--- a/apps/files_external/l10n/hu.json
+++ b/apps/files_external/l10n/hu.json
@@ -5,6 +5,8 @@
"Error configuring OAuth2" : "OAuth2 beállítási hiba",
"Generate keys" : "Kulcsok előállítása",
"Error generating key pair" : "Hiba történt a kulcspár előállítása során",
+ "You are not logged in" : "Nincs bejelentkezve.",
+ "Permission denied" : "Jogosultság megtagadva",
"Forbidden to manage local mounts" : "A helyi csatolt kötetek kezelése tiltott",
"Storage with ID \"%d\" not found" : "A(z) „%d” azonosítójú tároló nem található",
"Invalid backend or authentication mechanism class" : "Érvénytelen háttérszolgáltatási vagy hitelesítési mechanizmus osztály",
@@ -17,6 +19,7 @@
"Unsatisfied authentication mechanism parameters" : "Elégtelen paraméterek a hitelesítési mechanizmushoz",
"Insufficient data: %s" : "Elégtelen adatok: %s",
"%s" : "%s",
+ "Storage with ID \"%d\" is not editable by non-admins" : "A(z) „%d” azonosítójú tárolót csak rendszergazdák szerkeszthetik",
"Access key" : "Hozzáférési kulcs",
"Secret key" : "Titkos kulcs",
"Builtin" : "Beépített",
@@ -38,7 +41,10 @@
"API key" : "API kulcs",
"Global credentials" : "Globális hitelesítő adatok",
"Log-in credentials, save in database" : "Bejelentkezési hitelesítő adatok, mentés adatbázisban",
+ "Login and password" : "Bejelentkezés és jelszó",
"Log-in credentials, save in session" : "Bejelentkezési hitelesítő adatok, mentés a munkamenetben",
+ "Global credentials, manually entered" : "Globális hitelesítő adatok, kézileg megadva",
+ "Manually entered, store in database" : "Kézileg megadva, tárolás adatbázisban",
"RSA public key" : "RSA nyilvános kulcs",
"Public key" : "Nyilvános kulcs",
"RSA private key" : "RSA titkos kulcs",
@@ -55,6 +61,8 @@
"Enable SSL" : "SSL engedélyezése",
"Enable Path Style" : "Útvonal stílus engedélyezés",
"Legacy (v2) authentication" : "Örökölt (v2) hitelesítés",
+ "Enable multipart copy" : "Többrészes másolás engedélyezése",
+ "SSE-C encryption key" : "SSE-C titkosítási kulcsa",
"WebDAV" : "WebDAV",
"URL" : "URL",
"Remote subfolder" : "Távoli almappa",
@@ -74,8 +82,10 @@
"Case sensitive file system" : "Kis- és nagybetűket megkülönböztető fájlrendszer",
"Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "A letiltása lehetővé teszi a kis- és nagybetűket nem megkülönböztető fájlrendszerek használatát, de ez teljesítményvesztést okoz",
"Verify ACL access when listing files" : "ACL hozzáférés ellenőrzése a fájlok listázásakor",
+ "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Egy könyvtárban szereplő összes fájl vagy mappa ACL-jének ellenőrzése azon elemek kiszűréséhez, melyeken a fióknak nincs olvasási engedélye; teljesítménycsökkenéssel jár",
"Timeout" : "Időtúllépés",
"SMB/CIFS using OC login" : "SMB / CIFS OC bejelentkezéssel",
+ "Login as share" : "Bejelentkezés megosztásként",
"OpenStack Object Storage" : "OpenStack objektumtároló",
"Service name" : "Szolgáltatás neve",
"Request timeout (seconds)" : "Kérés időtúllépése (másodpercben)",
@@ -85,10 +95,18 @@
"External storage" : "Külső tároló",
"External storage support" : "Külső tároló támogatás",
"Adds basic external storage support" : "Külső tároló támogatás hozzáadása",
+ "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Ez az alkalmazás lehetővé teszi a rendszergazdák számára, hogy beállítsák a kapcsolatokat a külső tárhely-szolgáltatókkal, például FTP-kiszolgálókkal, S3 vagy SWIFT objektumtárolókkal, más Nextcloud-kiszolgálókkal, WebDAV-kiszolgálókkal és egyebekkel. A rendszergazdák kiválaszthatják, hogy milyen típusú tárolókat engedélyeznek, és csatolhatják ezeket a tárhelyeket egy fiók, egy csoport vagy az egész rendszer számára. A felhasználók látni fogják, hogy egy új mappa jelenik meg a Nextcloud gyökérkönyvtárában, amelyet minden más Nextcloud mappához hasonlóan elérhetnek és használhatnak. A külső tárhely lehetővé teszi az emberek számára a külső helyeken tárolt fájlok megosztását is. Ezekben az esetekben a fájl tulajdonosának hitelesítő adatait akkor használják, amikor a címzett a fájlt külső tárhelyről kéri, ezáltal biztosítva, hogy a címzett hozzáférjen a megosztott fájlhoz.\n\nA külső tároló grafikus felületen vagy a parancssorban konfigurálható. Ez a második lehetőség a rendszergazdák számára nagyobb rugalmasságot biztosít a tömeges külső tárolók konfigurálásához, és a csatolási prioritások beállításához. További információ a külső tároló GUI dokumentációjában, és a külső tároló konfigurációs fájljának dokumentációjában található.",
"Confirm" : "Megerősítés",
+ "Storage credentials" : "Tároló hitelesítő adatai",
+ "To access the storage, you need to provide the authentication credentials." : "A tároló eléréséhez meg kell adnia a hitelesítő adatokat.",
+ "Enter the storage login" : "Adja meg a tároló bejelentkezését",
+ "Enter the storage password" : "Adja meg a tároló jelszavát",
"Unable to update this external storage config. {statusMessage}" : "A külső tároló beállításainak frissítése nem sikerült. {statusMessage}",
"New configuration successfully saved" : "Az új konfiguráció sikeresen elmentve",
"Enter missing credentials" : "Adja meg a hiányzó hitelesítési adatokat",
+ "Credentials successfully set" : "Hitelesítő adatok sikeresen beállítva",
+ "Error while setting credentials: {error}" : "Hiba a hitelesítő adatok beállításakor: {error}",
+ "Checking storage …" : "Tároló ellenőrzése…",
"There was an error with this external storage." : "Hiba történt ezzel a külső tárolóval.",
"We were unable to check the external storage {basename}" : "Nem sikerült a(z) {basename} külső tároló ellenőrzése",
"Examine this faulty external storage configuration" : "Vizsgálja meg a külső tároló hibás konfigurációját",
@@ -104,6 +122,7 @@
"Scope" : "Hatókör",
"Personal" : "Személyes",
"System" : "Rendszer",
+ "Type to select account or group." : "Gépeljen a fiók vagy a csoport kiválasztásához.",
"(Group)" : "(Csoport)",
"Compatibility with Mac NFD encoding (slow)" : "Kompatibilitás a Mac NFD kódolással (lassú)",
"Enable encryption" : "Titkosítás engedélyezése",
@@ -114,6 +133,7 @@
"Once every direct access" : "Minden közvetlen elérésnél",
"Read only" : "Csak olvasható",
"Disconnect" : "Kapcsolat bontása",
+ "Unknown backend: {backendName}" : "Ismeretlen háttérszolgáltatás: {backendName}",
"Admin defined" : "Rendszergazda által definiálva",
"Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Az automatikus állapotellenőrzés a beállított tárolók nagy száma miatt ki van kapcsolva, kattintson az állapot ellenőrzéséhez",
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Biztos, hogy bontja a kapcsolatot ezzel a külső tárolóval? A tároló nem lesz elérhető a Nextcloudban, és a szinkronizálási kliensek is törölni fogják azokat a fájlokat, amelyek jelenleg kapcsolatban vannak, viszont magáról a külső tárolóról nem fogja törölni a fájlokat és mappákat.",
@@ -122,14 +142,19 @@
"Saved" : "Mentve",
"Saving …" : "Mentés…",
"Save" : "Mentés",
+ "Failed to save global credentials" : "A globális hitelesítő adatok mentése sikertelen",
+ "Failed to save global credentials: {message}" : "A globális hitelesítő adatok mentése sikertelen: {message}",
"No external storage configured or you don't have the permission to configure them" : "Nincsenek külső tárolók beállítva, vagy nincs hozzáférése a beállításaikhoz",
"Open documentation" : "Dokumentáció megnyitása",
+ "External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "A külső tárhely lehetővé teszi külső tárolási szolgáltatások és eszközök másodlagos Nextcloud-tárolóeszközként történő csatlakoztatását. Lehetővé teheti az emberek számára, hogy saját külső tárolószolgáltatásukat is csatlakoztassák.",
"Folder name" : "Mappa neve",
"Authentication" : "Hitelesítés",
"Configuration" : "Beállítások",
"Available for" : "Számukra érhető el:",
"Add storage" : "Tároló hozzáadása",
+ "All people" : "Mindenki",
"Advanced settings" : "Speciális beállítások",
+ "Allow people to mount external storage" : "Külső tárolók csatolásának engedélyezése az emberek számára",
"Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "A globális hitelesítő adatokkal azonos külső hitelesítő adatokkal rendelkező külső tárhelyek hitelesíthetők."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/hy.js b/apps/files_external/l10n/hy.js
deleted file mode 100644
index b55c9393b39..00000000000
--- a/apps/files_external/l10n/hy.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Personal" : "Անձնական",
- "Saved" : "Պահված",
- "Username" : "Օգտանուն",
- "Password" : "Գաղտնաբառ",
- "Save" : "Պահպանել",
- "URL" : "URL",
- "Dropbox" : "Dropbox",
- "Share" : "Կիսվել",
- "Name" : "Անուն",
- "Never" : "Երբեք",
- "Folder name" : "Պանակի անուն",
- "Delete" : "Ջնջել"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/hy.json b/apps/files_external/l10n/hy.json
deleted file mode 100644
index 7a5d37b985c..00000000000
--- a/apps/files_external/l10n/hy.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "Personal" : "Անձնական",
- "Saved" : "Պահված",
- "Username" : "Օգտանուն",
- "Password" : "Գաղտնաբառ",
- "Save" : "Պահպանել",
- "URL" : "URL",
- "Dropbox" : "Dropbox",
- "Share" : "Կիսվել",
- "Name" : "Անուն",
- "Never" : "Երբեք",
- "Folder name" : "Պանակի անուն",
- "Delete" : "Ջնջել"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/ia.js b/apps/files_external/l10n/ia.js
deleted file mode 100644
index 02b888e1b02..00000000000
--- a/apps/files_external/l10n/ia.js
+++ /dev/null
@@ -1,77 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "External storage" : "Immagazinage externe",
- "Personal" : "Personal",
- "System" : "Systema",
- "Grant access" : "Conceder accesso",
- "Error configuring OAuth1" : "Error durante configuration de OAuth1",
- "Please provide a valid app key and secret." : "Per favor, provide un clave e un secreto ambe valide.",
- "Error configuring OAuth2" : "Error durante configuration de OAuth2",
- "Generate keys" : "Generar claves",
- "Error generating key pair" : "Error durante creation de par de claves",
- "Enable encryption" : "Activar cryptographia",
- "Enable previews" : "Activar previsualisationes",
- "Enable sharing" : "Activar compartimento",
- "Check for changes" : "Verificar nove modificationes",
- "Never" : "Nunquam",
- "Once every direct access" : "A cata accesso directe",
- "Disconnect" : "Disconnecter",
- "Saved" : "Salveguardate",
- "Save" : "Salveguardar",
- "External mount error" : "Error del montage externe",
- "external-storage" : "immagazinage-externe",
- "Username" : "Nomine de usator",
- "Password" : "Contrasigno",
- "Credentials saved" : "Datos de authentication salveguardate",
- "Credentials saving failed" : "Salveguarda de datos de authentication falleva",
- "Credentials required" : "Datos de authentication requirite",
- "Invalid mount point" : "Puncto de montage non valide",
- "Insufficient data: %s" : "Datos insufficiente: %s",
- "%s" : "%s",
- "Access key" : "Clave de accesso",
- "Secret key" : "Clave secrete",
- "None" : "Nulle",
- "OAuth1" : "OAuth1",
- "App key" : "Clave del Application",
- "App secret" : "Secreto del Application",
- "OAuth2" : "OAuth2",
- "Domain" : "Dominio",
- "API key" : "Clave API",
- "Global credentials" : "Datos de authentication global",
- "Username and password" : "Nomine de usator e contrasigno",
- "RSA public key" : "Clave public RSA",
- "Public key" : "Clave public",
- "Amazon S3" : "Amazon S3",
- "Hostname" : "Nomine de Hospite",
- "Port" : "Porto",
- "Region" : "Region",
- "Enable SSL" : "Activar SSL",
- "Enable Path Style" : "Activar Stilo de Sentiero",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Sub-dossier remote",
- "Secure https://" : "Secur https://",
- "FTP" : "FTP",
- "Host" : "Hospite",
- "Secure ftps://" : "Secure ftps://",
- "Local" : "Local",
- "Location" : "Loco",
- "Nextcloud" : "Nextcloud",
- "SFTP" : "SFTP",
- "Root" : "Root",
- "Share" : "Compartir",
- "Show hidden files" : "Monstrar files occultate",
- "Service name" : "Nomine del servicio",
- "Name" : "Nomine",
- "Storage type" : "Typo de immagazinage",
- "Open documentation" : "Aperir documentation",
- "Folder name" : "Nomine de dossier",
- "Authentication" : "Authentication",
- "Configuration" : "Configuration",
- "Available for" : "Disponibile a",
- "Add storage" : "Adder immagazinage",
- "Advanced settings" : "Configurationes avantiate",
- "Allow users to mount external storage" : "Permitter usatores montar immagazinage externe"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/ia.json b/apps/files_external/l10n/ia.json
deleted file mode 100644
index 774e47dcb6c..00000000000
--- a/apps/files_external/l10n/ia.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{ "translations": {
- "External storage" : "Immagazinage externe",
- "Personal" : "Personal",
- "System" : "Systema",
- "Grant access" : "Conceder accesso",
- "Error configuring OAuth1" : "Error durante configuration de OAuth1",
- "Please provide a valid app key and secret." : "Per favor, provide un clave e un secreto ambe valide.",
- "Error configuring OAuth2" : "Error durante configuration de OAuth2",
- "Generate keys" : "Generar claves",
- "Error generating key pair" : "Error durante creation de par de claves",
- "Enable encryption" : "Activar cryptographia",
- "Enable previews" : "Activar previsualisationes",
- "Enable sharing" : "Activar compartimento",
- "Check for changes" : "Verificar nove modificationes",
- "Never" : "Nunquam",
- "Once every direct access" : "A cata accesso directe",
- "Disconnect" : "Disconnecter",
- "Saved" : "Salveguardate",
- "Save" : "Salveguardar",
- "External mount error" : "Error del montage externe",
- "external-storage" : "immagazinage-externe",
- "Username" : "Nomine de usator",
- "Password" : "Contrasigno",
- "Credentials saved" : "Datos de authentication salveguardate",
- "Credentials saving failed" : "Salveguarda de datos de authentication falleva",
- "Credentials required" : "Datos de authentication requirite",
- "Invalid mount point" : "Puncto de montage non valide",
- "Insufficient data: %s" : "Datos insufficiente: %s",
- "%s" : "%s",
- "Access key" : "Clave de accesso",
- "Secret key" : "Clave secrete",
- "None" : "Nulle",
- "OAuth1" : "OAuth1",
- "App key" : "Clave del Application",
- "App secret" : "Secreto del Application",
- "OAuth2" : "OAuth2",
- "Domain" : "Dominio",
- "API key" : "Clave API",
- "Global credentials" : "Datos de authentication global",
- "Username and password" : "Nomine de usator e contrasigno",
- "RSA public key" : "Clave public RSA",
- "Public key" : "Clave public",
- "Amazon S3" : "Amazon S3",
- "Hostname" : "Nomine de Hospite",
- "Port" : "Porto",
- "Region" : "Region",
- "Enable SSL" : "Activar SSL",
- "Enable Path Style" : "Activar Stilo de Sentiero",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Sub-dossier remote",
- "Secure https://" : "Secur https://",
- "FTP" : "FTP",
- "Host" : "Hospite",
- "Secure ftps://" : "Secure ftps://",
- "Local" : "Local",
- "Location" : "Loco",
- "Nextcloud" : "Nextcloud",
- "SFTP" : "SFTP",
- "Root" : "Root",
- "Share" : "Compartir",
- "Show hidden files" : "Monstrar files occultate",
- "Service name" : "Nomine del servicio",
- "Name" : "Nomine",
- "Storage type" : "Typo de immagazinage",
- "Open documentation" : "Aperir documentation",
- "Folder name" : "Nomine de dossier",
- "Authentication" : "Authentication",
- "Configuration" : "Configuration",
- "Available for" : "Disponibile a",
- "Add storage" : "Adder immagazinage",
- "Advanced settings" : "Configurationes avantiate",
- "Allow users to mount external storage" : "Permitter usatores montar immagazinage externe"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/km.js b/apps/files_external/l10n/km.js
deleted file mode 100644
index 3f42823824b..00000000000
--- a/apps/files_external/l10n/km.js
+++ /dev/null
@@ -1,25 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "External storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ",
- "Personal" : "ផ្ទាល់​ខ្លួន",
- "Grant access" : "ទទួល​សិទ្ធិ​ចូល",
- "Saved" : "បាន​រក្សាទុក",
- "Username" : "ឈ្មោះ​អ្នកប្រើ",
- "Password" : "ពាក្យសម្ងាត់",
- "Save" : "រក្សាទុក",
- "None" : "គ្មាន",
- "Port" : "ច្រក",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Host" : "ម៉ាស៊ីន​ផ្ទុក",
- "Location" : "ទីតាំង",
- "Share" : "ចែក​រំលែក",
- "Name" : "ឈ្មោះ",
- "External Storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ",
- "Folder name" : "ឈ្មោះ​ថត",
- "Configuration" : "ការ​កំណត់​សណ្ឋាន",
- "Add storage" : "បន្ថែម​ឃ្លាំងផ្ទុក",
- "Delete" : "លុប"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/km.json b/apps/files_external/l10n/km.json
deleted file mode 100644
index 06ab103b606..00000000000
--- a/apps/files_external/l10n/km.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{ "translations": {
- "External storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ",
- "Personal" : "ផ្ទាល់​ខ្លួន",
- "Grant access" : "ទទួល​សិទ្ធិ​ចូល",
- "Saved" : "បាន​រក្សាទុក",
- "Username" : "ឈ្មោះ​អ្នកប្រើ",
- "Password" : "ពាក្យសម្ងាត់",
- "Save" : "រក្សាទុក",
- "None" : "គ្មាន",
- "Port" : "ច្រក",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Host" : "ម៉ាស៊ីន​ផ្ទុក",
- "Location" : "ទីតាំង",
- "Share" : "ចែក​រំលែក",
- "Name" : "ឈ្មោះ",
- "External Storage" : "ឃ្លាំងផ្ទុក​ខាងក្រៅ",
- "Folder name" : "ឈ្មោះ​ថត",
- "Configuration" : "ការ​កំណត់​សណ្ឋាន",
- "Add storage" : "បន្ថែម​ឃ្លាំងផ្ទុក",
- "Delete" : "លុប"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/kn.js b/apps/files_external/l10n/kn.js
deleted file mode 100644
index 81c8e442f28..00000000000
--- a/apps/files_external/l10n/kn.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Personal" : "ವೈಯಕ್ತಿಕ",
- "Saved" : "ಉಳಿಸಿದ",
- "Username" : "ಬಳಕೆಯ ಹೆಸರು",
- "Password" : "ಗುಪ್ತ ಪದ",
- "Save" : "ಉಳಿಸಿ",
- "None" : "ಯಾವುದೂ ಇಲ್ಲ",
- "Port" : "ರೇವು",
- "WebDAV" : "WebDAV",
- "URL" : "ಜಾಲದ ಕೊಂಡಿ",
- "Host" : "ಅತಿಥೆಯ-ಗಣಕ",
- "Local" : "ಸ್ಥಳೀಯ",
- "Share" : "ಹಂಚಿಕೊಳ್ಳಿ",
- "Name" : "ಹೆಸರು",
- "Delete" : "ಅಳಿಸಿ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/kn.json b/apps/files_external/l10n/kn.json
deleted file mode 100644
index cd14c56a32f..00000000000
--- a/apps/files_external/l10n/kn.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "Personal" : "ವೈಯಕ್ತಿಕ",
- "Saved" : "ಉಳಿಸಿದ",
- "Username" : "ಬಳಕೆಯ ಹೆಸರು",
- "Password" : "ಗುಪ್ತ ಪದ",
- "Save" : "ಉಳಿಸಿ",
- "None" : "ಯಾವುದೂ ಇಲ್ಲ",
- "Port" : "ರೇವು",
- "WebDAV" : "WebDAV",
- "URL" : "ಜಾಲದ ಕೊಂಡಿ",
- "Host" : "ಅತಿಥೆಯ-ಗಣಕ",
- "Local" : "ಸ್ಥಳೀಯ",
- "Share" : "ಹಂಚಿಕೊಳ್ಳಿ",
- "Name" : "ಹೆಸರು",
- "Delete" : "ಅಳಿಸಿ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/lb.js b/apps/files_external/l10n/lb.js
deleted file mode 100644
index 29014e55190..00000000000
--- a/apps/files_external/l10n/lb.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Personal" : "Perséinlech",
- "Saved" : "Gespäichert",
- "Username" : "Benotzernumm",
- "Password" : "Passwuert",
- "Save" : "Späicheren",
- "None" : "Keng",
- "Port" : "Port",
- "Region" : "Regioun",
- "URL" : "URL",
- "Host" : "Host",
- "Location" : "Uert",
- "ownCloud" : "ownCloud",
- "Share" : "Deelen",
- "Name" : "Numm",
- "Enable encryption" : "Verschlësselung aschalten",
- "External Storage" : "Externt Lager",
- "Folder name" : "Dossiers Numm:",
- "Advanced settings" : "Erweidert Astellungen",
- "Delete" : "Läschen"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/lb.json b/apps/files_external/l10n/lb.json
deleted file mode 100644
index ef3f3d2f333..00000000000
--- a/apps/files_external/l10n/lb.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Personal" : "Perséinlech",
- "Saved" : "Gespäichert",
- "Username" : "Benotzernumm",
- "Password" : "Passwuert",
- "Save" : "Späicheren",
- "None" : "Keng",
- "Port" : "Port",
- "Region" : "Regioun",
- "URL" : "URL",
- "Host" : "Host",
- "Location" : "Uert",
- "ownCloud" : "ownCloud",
- "Share" : "Deelen",
- "Name" : "Numm",
- "Enable encryption" : "Verschlësselung aschalten",
- "External Storage" : "Externt Lager",
- "Folder name" : "Dossiers Numm:",
- "Advanced settings" : "Erweidert Astellungen",
- "Delete" : "Läschen"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/lv.js b/apps/files_external/l10n/lv.js
deleted file mode 100644
index 2fc3b21fd72..00000000000
--- a/apps/files_external/l10n/lv.js
+++ /dev/null
@@ -1,82 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "(Group)" : "(Grupa)",
- "Compatibility with Mac NFD encoding (slow)" : "Saderība ar Mac NFD kodēšanu (lēni)",
- "Enable encryption" : "Ieslēgt šifrēšanu",
- "Enable previews" : "Iespējot priekšskatījumu",
- "Enable sharing" : "Koplietošanas iespējošana",
- "Check for changes" : "Pārbaudīt, vai nav izmaiņu",
- "Never" : "Nekad",
- "Read only" : "Tikai lasāms",
- "Disconnect" : "Atvienot",
- "Admin defined" : "Administrators definētās",
- "Saved" : "Saglabāts",
- "Saving …" : "Saglabā ...",
- "Save" : "Saglabāt",
- "Invalid mount point" : "Nederīgs montēšanas punkts",
- "%s" : "%s",
- "Access key" : "Pieejas atslēga",
- "Secret key" : "Slepenā atslēga",
- "None" : "Nav",
- "OAuth1" : "OAuth1",
- "App key" : "Lietotnes atslēga",
- "OAuth2" : "OAuth2",
- "Client ID" : "Klienta ID",
- "Username" : "Lietotājvārds",
- "Password" : "Parole",
- "Domain" : "Domain",
- "API key" : "API atslēga",
- "Username and password" : "Lietotājvārds un parole",
- "RSA public key" : "RSA publiskā atslēga",
- "Public key" : "Publiska atslēga",
- "Amazon S3" : "Amazon S3",
- "Hostname" : "Resursa nosaukums",
- "Port" : "Ports",
- "Region" : "Reģions",
- "Enable SSL" : "Iespējot SSL",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Attālinātā apakšmape",
- "Secure https://" : "Secure https://",
- "FTP" : "FTP",
- "Host" : "Resursdators",
- "Secure ftps://" : "Secure ftps://",
- "Local" : "Lokāls",
- "Location" : "Vieta",
- "Nextcloud" : "Nextcloud",
- "SFTP" : "SFTP",
- "Root" : "Root",
- "SFTP with secret key login" : "SFTP pieteikšanās ar slepeno atslēgu",
- "Share" : "Koplietot",
- "Show hidden files" : "Rādīt slēptās datnes",
- "OpenStack Object Storage" : "OpenStack Object krātuve",
- "Service name" : "Servisa nosaukums",
- "External storage" : "Ārējā krātuve",
- "External mount error" : "Ārējā montēšanas kļūda",
- "Storage type" : "Krātuves tips",
- "Unknown" : "Nezināms",
- "Scope" : "Darbības joma",
- "Personal" : "Personīgi",
- "System" : "Sistēma",
- "Open documentation" : "Atvērt dokumentāciju",
- "Folder name" : "Mapes nosaukums",
- "Authentication" : "Autentifikācija",
- "Configuration" : "Konfigurācija",
- "Available for" : "Pieejams",
- "Add storage" : "Pievienot krātuvi",
- "Advanced settings" : "Paplašināti iestatījumi",
- "Allow users to mount external storage" : "Atļaut lietotājiem uzstādīt ārējās krātuves",
- "Grant access" : "Piešķirt pieeju",
- "Error configuring OAuth1" : "Konfigurēšanas kļūda OAuth1",
- "Please provide a valid app key and secret." : "Lūdzu, norādiet derīgu lietotnes atslēgu un noslēpumu.",
- "Error configuring OAuth2" : "Konfigurēšanas kļūda OAuth2",
- "Generate keys" : "Izveidot atslēgas",
- "Error generating key pair" : "Kļūda, ģenerējot atslēgu pāri",
- "Empty response from the server" : "Tukša atbilde no servera",
- "Couldn't get the information from the remote server: {code} {type}" : "Nevarējām iegūt informāciju no attālā servera: {code} {type}",
- "There was an error with message: " : "Radās kļūda ar ziņu:",
- "external-storage" : "ārējā krātuve",
- "Name" : "Nosaukums"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/files_external/l10n/lv.json b/apps/files_external/l10n/lv.json
deleted file mode 100644
index c24256d2ff4..00000000000
--- a/apps/files_external/l10n/lv.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{ "translations": {
- "(Group)" : "(Grupa)",
- "Compatibility with Mac NFD encoding (slow)" : "Saderība ar Mac NFD kodēšanu (lēni)",
- "Enable encryption" : "Ieslēgt šifrēšanu",
- "Enable previews" : "Iespējot priekšskatījumu",
- "Enable sharing" : "Koplietošanas iespējošana",
- "Check for changes" : "Pārbaudīt, vai nav izmaiņu",
- "Never" : "Nekad",
- "Read only" : "Tikai lasāms",
- "Disconnect" : "Atvienot",
- "Admin defined" : "Administrators definētās",
- "Saved" : "Saglabāts",
- "Saving …" : "Saglabā ...",
- "Save" : "Saglabāt",
- "Invalid mount point" : "Nederīgs montēšanas punkts",
- "%s" : "%s",
- "Access key" : "Pieejas atslēga",
- "Secret key" : "Slepenā atslēga",
- "None" : "Nav",
- "OAuth1" : "OAuth1",
- "App key" : "Lietotnes atslēga",
- "OAuth2" : "OAuth2",
- "Client ID" : "Klienta ID",
- "Username" : "Lietotājvārds",
- "Password" : "Parole",
- "Domain" : "Domain",
- "API key" : "API atslēga",
- "Username and password" : "Lietotājvārds un parole",
- "RSA public key" : "RSA publiskā atslēga",
- "Public key" : "Publiska atslēga",
- "Amazon S3" : "Amazon S3",
- "Hostname" : "Resursa nosaukums",
- "Port" : "Ports",
- "Region" : "Reģions",
- "Enable SSL" : "Iespējot SSL",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Attālinātā apakšmape",
- "Secure https://" : "Secure https://",
- "FTP" : "FTP",
- "Host" : "Resursdators",
- "Secure ftps://" : "Secure ftps://",
- "Local" : "Lokāls",
- "Location" : "Vieta",
- "Nextcloud" : "Nextcloud",
- "SFTP" : "SFTP",
- "Root" : "Root",
- "SFTP with secret key login" : "SFTP pieteikšanās ar slepeno atslēgu",
- "Share" : "Koplietot",
- "Show hidden files" : "Rādīt slēptās datnes",
- "OpenStack Object Storage" : "OpenStack Object krātuve",
- "Service name" : "Servisa nosaukums",
- "External storage" : "Ārējā krātuve",
- "External mount error" : "Ārējā montēšanas kļūda",
- "Storage type" : "Krātuves tips",
- "Unknown" : "Nezināms",
- "Scope" : "Darbības joma",
- "Personal" : "Personīgi",
- "System" : "Sistēma",
- "Open documentation" : "Atvērt dokumentāciju",
- "Folder name" : "Mapes nosaukums",
- "Authentication" : "Autentifikācija",
- "Configuration" : "Konfigurācija",
- "Available for" : "Pieejams",
- "Add storage" : "Pievienot krātuvi",
- "Advanced settings" : "Paplašināti iestatījumi",
- "Allow users to mount external storage" : "Atļaut lietotājiem uzstādīt ārējās krātuves",
- "Grant access" : "Piešķirt pieeju",
- "Error configuring OAuth1" : "Konfigurēšanas kļūda OAuth1",
- "Please provide a valid app key and secret." : "Lūdzu, norādiet derīgu lietotnes atslēgu un noslēpumu.",
- "Error configuring OAuth2" : "Konfigurēšanas kļūda OAuth2",
- "Generate keys" : "Izveidot atslēgas",
- "Error generating key pair" : "Kļūda, ģenerējot atslēgu pāri",
- "Empty response from the server" : "Tukša atbilde no servera",
- "Couldn't get the information from the remote server: {code} {type}" : "Nevarējām iegūt informāciju no attālā servera: {code} {type}",
- "There was an error with message: " : "Radās kļūda ar ziņu:",
- "external-storage" : "ārējā krātuve",
- "Name" : "Nosaukums"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/mn.js b/apps/files_external/l10n/mn.js
deleted file mode 100644
index 546c4370441..00000000000
--- a/apps/files_external/l10n/mn.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Username" : "Хэрэглэгчийн нэр",
- "Password" : "Нууц үг",
- "Save" : "Хадгалах",
- "Share" : "Түгээх"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/mn.json b/apps/files_external/l10n/mn.json
deleted file mode 100644
index 61fc25d3458..00000000000
--- a/apps/files_external/l10n/mn.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Username" : "Хэрэглэгчийн нэр",
- "Password" : "Нууц үг",
- "Save" : "Хадгалах",
- "Share" : "Түгээх"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/ms_MY.js b/apps/files_external/l10n/ms_MY.js
deleted file mode 100644
index 986d64538a6..00000000000
--- a/apps/files_external/l10n/ms_MY.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Personal" : "Peribadi",
- "Username" : "Nama pengguna",
- "Password" : "Kata laluan",
- "Save" : "Simpan",
- "Region" : "Wilayah",
- "URL" : "URL",
- "Location" : "Lokasi",
- "ownCloud" : "ownCloud",
- "Share" : "Kongsi",
- "Name" : "Nama",
- "Delete" : "Padam"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/ms_MY.json b/apps/files_external/l10n/ms_MY.json
deleted file mode 100644
index 3658a124898..00000000000
--- a/apps/files_external/l10n/ms_MY.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "Personal" : "Peribadi",
- "Username" : "Nama pengguna",
- "Password" : "Kata laluan",
- "Save" : "Simpan",
- "Region" : "Wilayah",
- "URL" : "URL",
- "Location" : "Lokasi",
- "ownCloud" : "ownCloud",
- "Share" : "Kongsi",
- "Name" : "Nama",
- "Delete" : "Padam"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js
index 8271299a3b9..467ab309566 100644
--- a/apps/files_external/l10n/nl.js
+++ b/apps/files_external/l10n/nl.js
@@ -1,12 +1,14 @@
OC.L10N.register(
"files_external",
{
- "Grant access" : "Sta toegang toe",
+ "Grant access" : "Toegang verlenen",
"Error configuring OAuth1" : "Fout bij configureren OAuth1",
"Please provide a valid app key and secret." : "Geef een geldige app sleutel en geheime sleutel op.",
"Error configuring OAuth2" : "Fout bij configureren OAuth2",
- "Generate keys" : "Genereer sleutels",
+ "Generate keys" : "Sleutels genereren",
"Error generating key pair" : "Fout bij genereren sleutelpaar",
+ "You are not logged in" : "Je bent niet ingelogd",
+ "Permission denied" : "Toestemming geweigerd",
"Forbidden to manage local mounts" : "Niet toegestaan lokale koppelpunten te beheren",
"Storage with ID \"%d\" not found" : "Opslag met ID \"%d\" niet gevonden",
"Invalid backend or authentication mechanism class" : "Ongeldige backend of authenticatie mechanisme klasse",
@@ -19,6 +21,7 @@ OC.L10N.register(
"Unsatisfied authentication mechanism parameters" : "Onvoldoende authenticatiemechanisme parameters",
"Insufficient data: %s" : "Onvoldoende gegevens: %s",
"%s" : "%s",
+ "Storage with ID \"%d\" is not editable by non-admins" : "Opslag met ID \"%d\" is niet bewerkbaar door niet-beheerders",
"Access key" : "Access Key",
"Secret key" : "Geheime sleutel",
"Builtin" : "Ingebouwd",
@@ -37,14 +40,18 @@ OC.L10N.register(
"OpenStack v3" : "OpenStack v3",
"Domain" : "Domein",
"Rackspace" : "Rackspace",
- "API key" : "API sleutel",
- "Global credentials" : "Algemene inloggegevens",
+ "API key" : "API-sleutel",
+ "Global credentials" : "Globale inloggegevens",
"Log-in credentials, save in database" : "Inloggegevens, bewaren in de database",
+ "Login and password" : "Login en wachtwoord",
"Log-in credentials, save in session" : "Inloggegevens, opslaan in sessie",
+ "Global credentials, manually entered" : "Globale inloggegevens, handmatig ingevoerd",
+ "Manually entered, store in database" : "Handmatig ingevoerd, opslaan in database",
"RSA public key" : "RSA publieke sleutel",
"Public key" : "Publieke sleutel",
"RSA private key" : "RSA privésleutel",
"Private key" : "Privésleutel",
+ "Kerberos default realm, defaults to \"WORKGROUP\"" : "Kerberos standaardomgeving, standaard ingesteld op \"WORKGROUP\"",
"Kerberos ticket Apache mode" : "Kerberos ticket Apache modus",
"Kerberos ticket" : "Kerberos ticket",
"Amazon S3" : "Amazon S3",
@@ -52,9 +59,12 @@ OC.L10N.register(
"Hostname" : "Hostnaam",
"Port" : "Poort",
"Region" : "Regio",
- "Enable SSL" : "Activeren SSL",
- "Enable Path Style" : "Activeren pad stijl",
- "Legacy (v2) authentication" : "Legacy (v2) authenticatie",
+ "Storage Class" : "Opslagklasse",
+ "Enable SSL" : "SSL inschakelen",
+ "Enable Path Style" : "Padstijl inschakelen",
+ "Legacy (v2) authentication" : "Verouderde (v2) authenticatie",
+ "Enable multipart copy" : "Meervoudig kopiëren inschakelen",
+ "SSE-C encryption key" : "SSE-C versleutelingscode",
"WebDAV" : "WebDAV",
"URL" : "URL",
"Remote subfolder" : "Externe submap",
@@ -71,9 +81,13 @@ OC.L10N.register(
"SMB/CIFS" : "SMB/CIFS",
"Share" : "Share",
"Show hidden files" : "Laat verborgen bestanden zien",
- "Verify ACL access when listing files" : "Controleer ACL bij bestandsoverzichten",
+ "Case sensitive file system" : "Hoofdlettergevoelig bestandssysteem",
+ "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Door dit uit te schakelen kan een hoofdletterongevoelig bestandssysteem worden gebruikt, zij het met verminderde prestaties",
+ "Verify ACL access when listing files" : "ACL controleren bij bestandsoverzichten",
+ "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Controleer de ACL's van elk bestand of elke map in een map om items eruit te filteren waarvan het account geen leesrechten heeft. Dit geeft verminderde prestaties.",
"Timeout" : "Time-out",
- "SMB/CIFS using OC login" : "SMB/CIFS via OC inlog",
+ "SMB/CIFS using OC login" : "SMB/CIFS via OC-inlog",
+ "Login as share" : "Login als share",
"OpenStack Object Storage" : "OpenStack Object Storage",
"Service name" : "Servicenaam",
"Request timeout (seconds)" : "Aanvraag time-out (seconds)",
@@ -81,41 +95,68 @@ OC.L10N.register(
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "FTP ondersteuning in PHP is niet ingeschakeld of geïnstalleerd. Aankoppelen van %s is niet mogelijk. Vraag je beheerder dit te installeren.",
"\"%1$s\" is not installed. Mounting of %2$s is not possible. Please ask your system administrator to install it." : "\"%1$s\" is niet geïnstalleerd. Aankoppelen van %2$s is niet mogelijk. Vraag je beheerder om dit te installeren.",
"External storage" : "Externe opslag",
- "External storage support" : "Externe opslag ondersteuning",
- "Adds basic external storage support" : "Toevoegen basale ondersteuning voor externe opslag",
+ "External storage support" : "Ondersteuning voor externe opslag",
+ "Adds basic external storage support" : "Voegt basale ondersteuning voor externe opslag toe",
+ "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Met deze applicatie kunnen beheerders verbindingen configureren met externe opslagproviders, zoals FTP-servers, S3- of SWIFT-objectstores, andere Nextcloud-servers, WebDAV-servers en meer. De beneerder kan kiezen welke soorten opslag ze inschakelen en kan deze opslaglocaties koppelen voor een account, een groep of het hele systeem. Gebruikers zullen een nieuwe map zien verschijnen in hun root Nextcloud-map, die ze kunnen openen en gebruiken zoals elke andere Nextcloud-map. Met externe opslag kunnen mensen ook bestanden delen die op deze externe locaties zijn opgeslagen. In deze gevallen worden de inloggegevens van de eigenaar van het bestand gebruikt wanneer de ontvanger het bestand vanuit externe opslag opvraagt, waardoor wordt gegarandeerd dat de ontvanger toegang heeft tot het gedeelde bestand.\n\nExterne opslag kan worden geconfigureerd met behulp van de GUI of op de opdrachtregel. Deze tweede optie biedt de administratie meer flexibiliteit voor het configureren van externe opslagbevestigingen in bulk en het stellen van prioriteiten voor aankoppelen. Meer informatie is beschikbaar in de GUI-documentatie voor externe opslag en de documentatie voor het configuratiebestand voor externe opslag.",
"Confirm" : "Bevestigen",
- "Open in Files" : "Open in Bestanden",
- "External mount error" : "Extern koppelpunt fout",
+ "Storage credentials" : "Opslagreferenties",
+ "To access the storage, you need to provide the authentication credentials." : "Om toegang te krijgen tot de opslag, moeten de authenticatiegegevens worden geleverd.",
+ "Enter the storage login" : "Voer de loginnaam in voor de opslag",
+ "Enter the storage password" : "Voer het wachtwoord in voor de opslag",
+ "Unable to update this external storage config. {statusMessage}" : "Kan deze configuratie van de externe opslag niet bijwerken.{statusMessage}",
+ "New configuration successfully saved" : "Nieuwe configuratie succesvol opgeslagen",
+ "Enter missing credentials" : "Voer de ontbrekende inloggegevens in",
+ "Credentials successfully set" : "Inloggegevens succesvol ingesteld",
+ "Error while setting credentials: {error}" : "Fout tijdens het instellen van inloggegevens: {error}",
+ "Checking storage …" : "Controle van opslag …",
+ "There was an error with this external storage." : "Er is een fout opgetreden bij deze externe opslag.",
+ "We were unable to check the external storage {basename}" : "We konden de externe opslag {basename} niet controleren",
+ "Examine this faulty external storage configuration" : "Onderzoek deze foutieve externe opslagconfiguratie",
+ "Open in Files" : "Openen in Bestanden",
+ "There was an error with this external storage. Do you want to review this mount point config in the settings page?" : "Er is een fout opgetreden bij deze externe opslag. Wil je de configuratie voor dit aankoppelpunt bekijken op de instellingenpagina?",
+ "External mount error" : "Fout met extern aankoppelpunt",
+ "List of external storage." : "Lijst van externe opslag.",
+ "There is no external storage configured. You can configure them in your Personal settings." : "Er is geen externe opslag geconfigureerd. Je kunt deze configureren in Persoonlijke instellingen.",
+ "There is no external storage configured and you don't have the permission to configure them." : "Er is geen externe opslag geconfigureerd en je hebt geen toestemming om deze te configureren.",
+ "No external storage" : "Geen externe opslag",
"Storage type" : "Opslagtype",
"Unknown" : "Onbekend",
- "Scope" : "Scope",
+ "Scope" : "Toepassingsgebied",
"Personal" : "Persoonlijk",
"System" : "Systeem",
+ "Type to select account or group." : "Typ om account of groep te selecteren.",
"(Group)" : "(Groep)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)",
"Enable encryption" : "Versleuteling inschakelen",
- "Enable previews" : "Activeren voorbeelden",
- "Enable sharing" : "Activeren delen",
+ "Enable previews" : "Voorbeeldweergave inschakelen",
+ "Enable sharing" : "Delen inschakelen",
"Check for changes" : "Controleren op wijzigingen",
"Never" : "Nooit",
"Once every direct access" : "Een keer bij elke directe toegang",
- "Read only" : "Alleen lezen",
- "Disconnect" : "Verbreek verbinding",
+ "Read only" : "Alleen-lezen",
+ "Disconnect" : "Verbinding verbreken",
+ "Unknown backend: {backendName}" : "Onbekend back-end: {backendName}",
"Admin defined" : "Beheerder gedefinieerd",
+ "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Automatische statuscontrole is uitgeschakeld vanwege het grote aantal geconfigureerde opslagplaatsen. Klik om de status te controleren",
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Weet je zeker dat je deze externe opslag wilt loskoppelen? Het maakt de opslag niet langer beschikbaar in Nextcloud en leidt tot het verwijderen van de bestanden en mappen op elke synchronisatieclient die momenteel is verbonden. Het verwijdert geen bestanden en mappen op de externe opslag zelf.",
"Delete storage?" : "Opslag verwijderen?",
"Click to recheck the configuration" : "Klik om de configuratie opnieuw te controleren",
"Saved" : "Bewaard",
- "Saving …" : "Opslaan ...",
- "Save" : "Bewaren",
+ "Saving …" : "Opslaan …",
+ "Save" : "Opslaan",
+ "Failed to save global credentials" : "Het opslaan van globale inloggegevens is mislukt",
+ "Failed to save global credentials: {message}" : "Het opslaan van globale inloggegevens is mislukt: {message}",
"No external storage configured or you don't have the permission to configure them" : "Geen externe opslag geconfigureerd of je hebt geen toestemming om deze te configureren",
"Open documentation" : "Documentatie openen",
+ "External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Met externe opslag kun je externe opslagservices en -apparaten koppelen als secundaire Nextcloud-opslagapparaten. Je kunt mensen ook toestaan hun eigen externe opslagdiensten aan te koppelen.",
"Folder name" : "Mapnaam",
"Authentication" : "Authenticatie",
"Configuration" : "Configuratie",
"Available for" : "Beschikbaar voor",
- "Add storage" : "Toevoegen opslag",
+ "Add storage" : "Opslag toevoegen",
+ "All people" : "Iedereen",
"Advanced settings" : "Geavanceerde instellingen",
+ "Allow people to mount external storage" : "Toestaan dat mensen externe opslag aankoppelen",
"Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale inloggegevens kunnen worden gebruikt met meerdere externe opslagsystemen met dezelfde inloggegevens."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json
index 28b268249f7..edfbb1ecdd0 100644
--- a/apps/files_external/l10n/nl.json
+++ b/apps/files_external/l10n/nl.json
@@ -1,10 +1,12 @@
{ "translations": {
- "Grant access" : "Sta toegang toe",
+ "Grant access" : "Toegang verlenen",
"Error configuring OAuth1" : "Fout bij configureren OAuth1",
"Please provide a valid app key and secret." : "Geef een geldige app sleutel en geheime sleutel op.",
"Error configuring OAuth2" : "Fout bij configureren OAuth2",
- "Generate keys" : "Genereer sleutels",
+ "Generate keys" : "Sleutels genereren",
"Error generating key pair" : "Fout bij genereren sleutelpaar",
+ "You are not logged in" : "Je bent niet ingelogd",
+ "Permission denied" : "Toestemming geweigerd",
"Forbidden to manage local mounts" : "Niet toegestaan lokale koppelpunten te beheren",
"Storage with ID \"%d\" not found" : "Opslag met ID \"%d\" niet gevonden",
"Invalid backend or authentication mechanism class" : "Ongeldige backend of authenticatie mechanisme klasse",
@@ -17,6 +19,7 @@
"Unsatisfied authentication mechanism parameters" : "Onvoldoende authenticatiemechanisme parameters",
"Insufficient data: %s" : "Onvoldoende gegevens: %s",
"%s" : "%s",
+ "Storage with ID \"%d\" is not editable by non-admins" : "Opslag met ID \"%d\" is niet bewerkbaar door niet-beheerders",
"Access key" : "Access Key",
"Secret key" : "Geheime sleutel",
"Builtin" : "Ingebouwd",
@@ -35,14 +38,18 @@
"OpenStack v3" : "OpenStack v3",
"Domain" : "Domein",
"Rackspace" : "Rackspace",
- "API key" : "API sleutel",
- "Global credentials" : "Algemene inloggegevens",
+ "API key" : "API-sleutel",
+ "Global credentials" : "Globale inloggegevens",
"Log-in credentials, save in database" : "Inloggegevens, bewaren in de database",
+ "Login and password" : "Login en wachtwoord",
"Log-in credentials, save in session" : "Inloggegevens, opslaan in sessie",
+ "Global credentials, manually entered" : "Globale inloggegevens, handmatig ingevoerd",
+ "Manually entered, store in database" : "Handmatig ingevoerd, opslaan in database",
"RSA public key" : "RSA publieke sleutel",
"Public key" : "Publieke sleutel",
"RSA private key" : "RSA privésleutel",
"Private key" : "Privésleutel",
+ "Kerberos default realm, defaults to \"WORKGROUP\"" : "Kerberos standaardomgeving, standaard ingesteld op \"WORKGROUP\"",
"Kerberos ticket Apache mode" : "Kerberos ticket Apache modus",
"Kerberos ticket" : "Kerberos ticket",
"Amazon S3" : "Amazon S3",
@@ -50,9 +57,12 @@
"Hostname" : "Hostnaam",
"Port" : "Poort",
"Region" : "Regio",
- "Enable SSL" : "Activeren SSL",
- "Enable Path Style" : "Activeren pad stijl",
- "Legacy (v2) authentication" : "Legacy (v2) authenticatie",
+ "Storage Class" : "Opslagklasse",
+ "Enable SSL" : "SSL inschakelen",
+ "Enable Path Style" : "Padstijl inschakelen",
+ "Legacy (v2) authentication" : "Verouderde (v2) authenticatie",
+ "Enable multipart copy" : "Meervoudig kopiëren inschakelen",
+ "SSE-C encryption key" : "SSE-C versleutelingscode",
"WebDAV" : "WebDAV",
"URL" : "URL",
"Remote subfolder" : "Externe submap",
@@ -69,9 +79,13 @@
"SMB/CIFS" : "SMB/CIFS",
"Share" : "Share",
"Show hidden files" : "Laat verborgen bestanden zien",
- "Verify ACL access when listing files" : "Controleer ACL bij bestandsoverzichten",
+ "Case sensitive file system" : "Hoofdlettergevoelig bestandssysteem",
+ "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Door dit uit te schakelen kan een hoofdletterongevoelig bestandssysteem worden gebruikt, zij het met verminderde prestaties",
+ "Verify ACL access when listing files" : "ACL controleren bij bestandsoverzichten",
+ "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Controleer de ACL's van elk bestand of elke map in een map om items eruit te filteren waarvan het account geen leesrechten heeft. Dit geeft verminderde prestaties.",
"Timeout" : "Time-out",
- "SMB/CIFS using OC login" : "SMB/CIFS via OC inlog",
+ "SMB/CIFS using OC login" : "SMB/CIFS via OC-inlog",
+ "Login as share" : "Login als share",
"OpenStack Object Storage" : "OpenStack Object Storage",
"Service name" : "Servicenaam",
"Request timeout (seconds)" : "Aanvraag time-out (seconds)",
@@ -79,41 +93,68 @@
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "FTP ondersteuning in PHP is niet ingeschakeld of geïnstalleerd. Aankoppelen van %s is niet mogelijk. Vraag je beheerder dit te installeren.",
"\"%1$s\" is not installed. Mounting of %2$s is not possible. Please ask your system administrator to install it." : "\"%1$s\" is niet geïnstalleerd. Aankoppelen van %2$s is niet mogelijk. Vraag je beheerder om dit te installeren.",
"External storage" : "Externe opslag",
- "External storage support" : "Externe opslag ondersteuning",
- "Adds basic external storage support" : "Toevoegen basale ondersteuning voor externe opslag",
+ "External storage support" : "Ondersteuning voor externe opslag",
+ "Adds basic external storage support" : "Voegt basale ondersteuning voor externe opslag toe",
+ "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Met deze applicatie kunnen beheerders verbindingen configureren met externe opslagproviders, zoals FTP-servers, S3- of SWIFT-objectstores, andere Nextcloud-servers, WebDAV-servers en meer. De beneerder kan kiezen welke soorten opslag ze inschakelen en kan deze opslaglocaties koppelen voor een account, een groep of het hele systeem. Gebruikers zullen een nieuwe map zien verschijnen in hun root Nextcloud-map, die ze kunnen openen en gebruiken zoals elke andere Nextcloud-map. Met externe opslag kunnen mensen ook bestanden delen die op deze externe locaties zijn opgeslagen. In deze gevallen worden de inloggegevens van de eigenaar van het bestand gebruikt wanneer de ontvanger het bestand vanuit externe opslag opvraagt, waardoor wordt gegarandeerd dat de ontvanger toegang heeft tot het gedeelde bestand.\n\nExterne opslag kan worden geconfigureerd met behulp van de GUI of op de opdrachtregel. Deze tweede optie biedt de administratie meer flexibiliteit voor het configureren van externe opslagbevestigingen in bulk en het stellen van prioriteiten voor aankoppelen. Meer informatie is beschikbaar in de GUI-documentatie voor externe opslag en de documentatie voor het configuratiebestand voor externe opslag.",
"Confirm" : "Bevestigen",
- "Open in Files" : "Open in Bestanden",
- "External mount error" : "Extern koppelpunt fout",
+ "Storage credentials" : "Opslagreferenties",
+ "To access the storage, you need to provide the authentication credentials." : "Om toegang te krijgen tot de opslag, moeten de authenticatiegegevens worden geleverd.",
+ "Enter the storage login" : "Voer de loginnaam in voor de opslag",
+ "Enter the storage password" : "Voer het wachtwoord in voor de opslag",
+ "Unable to update this external storage config. {statusMessage}" : "Kan deze configuratie van de externe opslag niet bijwerken.{statusMessage}",
+ "New configuration successfully saved" : "Nieuwe configuratie succesvol opgeslagen",
+ "Enter missing credentials" : "Voer de ontbrekende inloggegevens in",
+ "Credentials successfully set" : "Inloggegevens succesvol ingesteld",
+ "Error while setting credentials: {error}" : "Fout tijdens het instellen van inloggegevens: {error}",
+ "Checking storage …" : "Controle van opslag …",
+ "There was an error with this external storage." : "Er is een fout opgetreden bij deze externe opslag.",
+ "We were unable to check the external storage {basename}" : "We konden de externe opslag {basename} niet controleren",
+ "Examine this faulty external storage configuration" : "Onderzoek deze foutieve externe opslagconfiguratie",
+ "Open in Files" : "Openen in Bestanden",
+ "There was an error with this external storage. Do you want to review this mount point config in the settings page?" : "Er is een fout opgetreden bij deze externe opslag. Wil je de configuratie voor dit aankoppelpunt bekijken op de instellingenpagina?",
+ "External mount error" : "Fout met extern aankoppelpunt",
+ "List of external storage." : "Lijst van externe opslag.",
+ "There is no external storage configured. You can configure them in your Personal settings." : "Er is geen externe opslag geconfigureerd. Je kunt deze configureren in Persoonlijke instellingen.",
+ "There is no external storage configured and you don't have the permission to configure them." : "Er is geen externe opslag geconfigureerd en je hebt geen toestemming om deze te configureren.",
+ "No external storage" : "Geen externe opslag",
"Storage type" : "Opslagtype",
"Unknown" : "Onbekend",
- "Scope" : "Scope",
+ "Scope" : "Toepassingsgebied",
"Personal" : "Persoonlijk",
"System" : "Systeem",
+ "Type to select account or group." : "Typ om account of groep te selecteren.",
"(Group)" : "(Groep)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)",
"Enable encryption" : "Versleuteling inschakelen",
- "Enable previews" : "Activeren voorbeelden",
- "Enable sharing" : "Activeren delen",
+ "Enable previews" : "Voorbeeldweergave inschakelen",
+ "Enable sharing" : "Delen inschakelen",
"Check for changes" : "Controleren op wijzigingen",
"Never" : "Nooit",
"Once every direct access" : "Een keer bij elke directe toegang",
- "Read only" : "Alleen lezen",
- "Disconnect" : "Verbreek verbinding",
+ "Read only" : "Alleen-lezen",
+ "Disconnect" : "Verbinding verbreken",
+ "Unknown backend: {backendName}" : "Onbekend back-end: {backendName}",
"Admin defined" : "Beheerder gedefinieerd",
+ "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Automatische statuscontrole is uitgeschakeld vanwege het grote aantal geconfigureerde opslagplaatsen. Klik om de status te controleren",
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Weet je zeker dat je deze externe opslag wilt loskoppelen? Het maakt de opslag niet langer beschikbaar in Nextcloud en leidt tot het verwijderen van de bestanden en mappen op elke synchronisatieclient die momenteel is verbonden. Het verwijdert geen bestanden en mappen op de externe opslag zelf.",
"Delete storage?" : "Opslag verwijderen?",
"Click to recheck the configuration" : "Klik om de configuratie opnieuw te controleren",
"Saved" : "Bewaard",
- "Saving …" : "Opslaan ...",
- "Save" : "Bewaren",
+ "Saving …" : "Opslaan …",
+ "Save" : "Opslaan",
+ "Failed to save global credentials" : "Het opslaan van globale inloggegevens is mislukt",
+ "Failed to save global credentials: {message}" : "Het opslaan van globale inloggegevens is mislukt: {message}",
"No external storage configured or you don't have the permission to configure them" : "Geen externe opslag geconfigureerd of je hebt geen toestemming om deze te configureren",
"Open documentation" : "Documentatie openen",
+ "External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Met externe opslag kun je externe opslagservices en -apparaten koppelen als secundaire Nextcloud-opslagapparaten. Je kunt mensen ook toestaan hun eigen externe opslagdiensten aan te koppelen.",
"Folder name" : "Mapnaam",
"Authentication" : "Authenticatie",
"Configuration" : "Configuratie",
"Available for" : "Beschikbaar voor",
- "Add storage" : "Toevoegen opslag",
+ "Add storage" : "Opslag toevoegen",
+ "All people" : "Iedereen",
"Advanced settings" : "Geavanceerde instellingen",
+ "Allow people to mount external storage" : "Toestaan dat mensen externe opslag aankoppelen",
"Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Globale inloggegevens kunnen worden gebruikt met meerdere externe opslagsystemen met dezelfde inloggegevens."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/nn_NO.js b/apps/files_external/l10n/nn_NO.js
deleted file mode 100644
index 00be7c7e386..00000000000
--- a/apps/files_external/l10n/nn_NO.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Personal" : "Personleg",
- "Username" : "Brukarnamn",
- "Password" : "Passord",
- "Save" : "Lagra",
- "Region" : "Region/fylke",
- "WebDAV" : "WebDAV",
- "URL" : "Nettstad",
- "Host" : "Tenar",
- "Location" : "Stad",
- "ownCloud" : "ownCloud",
- "Share" : "Del",
- "Name" : "Namn",
- "Folder name" : "Mappenamn",
- "Configuration" : "Innstillingar",
- "Delete" : "Slett"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/nn_NO.json b/apps/files_external/l10n/nn_NO.json
deleted file mode 100644
index 6f2aeceb13b..00000000000
--- a/apps/files_external/l10n/nn_NO.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "Personal" : "Personleg",
- "Username" : "Brukarnamn",
- "Password" : "Passord",
- "Save" : "Lagra",
- "Region" : "Region/fylke",
- "WebDAV" : "WebDAV",
- "URL" : "Nettstad",
- "Host" : "Tenar",
- "Location" : "Stad",
- "ownCloud" : "ownCloud",
- "Share" : "Del",
- "Name" : "Namn",
- "Folder name" : "Mappenamn",
- "Configuration" : "Innstillingar",
- "Delete" : "Slett"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/oc.js b/apps/files_external/l10n/oc.js
deleted file mode 100644
index d66ff356e42..00000000000
--- a/apps/files_external/l10n/oc.js
+++ /dev/null
@@ -1,107 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Fetching request tokens failed. Verify that your app key and secret are correct." : "L'obtencion dels getons de requèsta a fracassat. Verificatz que vòstra clau d'aplicacion e vòstre senhal son corrèctes.",
- "Fetching access tokens failed. Verify that your app key and secret are correct." : "L'obtencion dels getons d'aacès a fracassat. Verificatz que vòstra clau d'aplicacion e vòstre senhal son corrèctes.",
- "Please provide a valid app key and secret." : "Provesissètz una clau d'aplicacion e un senhal valids.",
- "Step 1 failed. Exception: %s" : "L’etapa 1 a fracassat. Error : %s",
- "Step 2 failed. Exception: %s" : "L’etapa 2 a fracassat. Error : %s",
- "External storage" : "Emmagazinatge extèrne",
- "Personal" : "Personal",
- "System" : "Sistèma",
- "Grant access" : "Autorizar l'accès",
- "Error configuring OAuth1" : "Error al moment de la configuracion d'OAuth1",
- "Error configuring OAuth2" : "Error al moment de la configuracion d'OAuth2",
- "Generate keys" : "Generar de claus",
- "Error generating key pair" : "Error al moment de la generacion de las claus",
- "All users. Type to select user or group." : "Totes los utilizaires. Clicatz aicí per restrénher.",
- "(group)" : "(grop)",
- "Saved" : "Enregistrat",
- "Username" : "Nom d'utilizaire",
- "Password" : "Senhal",
- "Save" : "Enregistrar",
- "Storage with id \"%i\" not found" : "Emmagazinatge amb l'id \"%i\" pas trobat",
- "Invalid backend or authentication mechanism class" : "Servici o metòde d'autentificacion pas valable",
- "Invalid mount point" : "Punt de montatge invalid",
- "Objectstore forbidden" : "\"Objectstore\" interdich",
- "Invalid storage backend \"%s\"" : "Servici d'emmagazinatge invalid : \"%s\"",
- "Not permitted to use backend \"%s\"" : "Pas autorizat a utilizar lo servici \"%s\"",
- "Not permitted to use authentication mechanism \"%s\"" : "Pas autorizat a utilizar lo mecanisme d'autentificacion \"%s\"",
- "Unsatisfied backend parameters" : "Paramètres mancants pel servici",
- "Unsatisfied authentication mechanism parameters" : "Paramètres mancants pel metòde d'autentificacion",
- "Insufficient data: %s" : "Donadas insufisentas : %s",
- "%s" : "%s",
- "Access key" : "Clau d'accès",
- "Secret key" : "Clau secreta",
- "Builtin" : "Integrat",
- "None" : "Pas cap",
- "OAuth1" : "OAuth1",
- "App key" : "App key",
- "App secret" : "App secret",
- "OAuth2" : "OAuth2",
- "Client ID" : "ID Client",
- "Client secret" : "Secret client",
- "OpenStack" : "OpenStack",
- "Tenant name" : "Tenant name",
- "Identity endpoint URL" : "Identity endpoint URL",
- "Rackspace" : "Rackspace",
- "API key" : "Clau API",
- "Username and password" : "Nom d'utilizaire e senhal",
- "RSA public key" : "Clau publica RSA",
- "Public key" : "Clau publica",
- "Amazon S3" : "Amazon S3",
- "Bucket" : "Bucket",
- "Hostname" : "Nom de l'òste",
- "Port" : "Pòrt",
- "Region" : "Region",
- "Enable SSL" : "Activar SSL",
- "Enable Path Style" : "Accès per path",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Sosdorsièr distant",
- "Secure https://" : "Securizacion https://",
- "Dropbox" : "Dropbox",
- "FTP" : "FTP",
- "Host" : "Òste",
- "Secure ftps://" : "Securizacion ftps://",
- "Google Drive" : "Google Drive",
- "Local" : "Local",
- "Location" : "Emplaçament",
- "ownCloud" : "ownCloud",
- "SFTP" : "SFTP",
- "Root" : "Raiç",
- "SFTP with secret key login" : "SFTP amb un identificant secret",
- "SMB / CIFS" : "SMB / CIFS",
- "Share" : "Partejar",
- "Domain" : "Domeni",
- "SMB / CIFS using OC login" : "SMB / CIFS en utilizant los identificants OC",
- "Username as share" : "Nom d'utilizaire coma nom de partiment",
- "OpenStack Object Storage" : "OpenStack Object Storage",
- "Service name" : "Nom del servici",
- "Request timeout (seconds)" : "Timeout de las requèstas (en segondas)",
- "<b>Note:</b> " : "<b>Atencion :</b>",
- "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion :</b> La presa en carga de cURL per PHP es pas activada o installada. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
- "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion : </b> La presa en carga del FTP per PHP es pas activada o installada. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
- "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion : </b> \"%s\" es pas installat. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
- "No external storage configured" : "Aucun emmagazinatge externe configurat",
- "You can add external storages in the personal settings" : "Podètz apondre des emmagazinatges externes dins los paramètres personals",
- "Name" : "Nom",
- "Storage type" : "Tipe d'emmagazinatge",
- "Scope" : "Portada",
- "Enable encryption" : "Activar lo chiframent",
- "Enable previews" : "Activar las previsualizacions",
- "Check for changes" : "Recercar las modificacions",
- "Never" : "Pas jamai",
- "Once every direct access" : "Un còp a cada accès dirècte",
- "External Storage" : "Emmagazinatge externe",
- "Folder name" : "Nom del dorsièr",
- "Authentication" : "Autentificacion",
- "Configuration" : "Configuracion",
- "Available for" : "Disponible per",
- "Add storage" : "Apondre un supòrt d'emmagazinatge",
- "Advanced settings" : "Paramètres avançats",
- "Delete" : "Suprimir",
- "Allow users to mount external storage" : "Autorizar los utilizaires a montar l'espaci d'emmagazinatge extèrne",
- "Allow users to mount the following external storage" : "Autorizar los utilizaires a montar los emmagazinatges extèrnes seguents"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_external/l10n/oc.json b/apps/files_external/l10n/oc.json
deleted file mode 100644
index c64cddb474e..00000000000
--- a/apps/files_external/l10n/oc.json
+++ /dev/null
@@ -1,105 +0,0 @@
-{ "translations": {
- "Fetching request tokens failed. Verify that your app key and secret are correct." : "L'obtencion dels getons de requèsta a fracassat. Verificatz que vòstra clau d'aplicacion e vòstre senhal son corrèctes.",
- "Fetching access tokens failed. Verify that your app key and secret are correct." : "L'obtencion dels getons d'aacès a fracassat. Verificatz que vòstra clau d'aplicacion e vòstre senhal son corrèctes.",
- "Please provide a valid app key and secret." : "Provesissètz una clau d'aplicacion e un senhal valids.",
- "Step 1 failed. Exception: %s" : "L’etapa 1 a fracassat. Error : %s",
- "Step 2 failed. Exception: %s" : "L’etapa 2 a fracassat. Error : %s",
- "External storage" : "Emmagazinatge extèrne",
- "Personal" : "Personal",
- "System" : "Sistèma",
- "Grant access" : "Autorizar l'accès",
- "Error configuring OAuth1" : "Error al moment de la configuracion d'OAuth1",
- "Error configuring OAuth2" : "Error al moment de la configuracion d'OAuth2",
- "Generate keys" : "Generar de claus",
- "Error generating key pair" : "Error al moment de la generacion de las claus",
- "All users. Type to select user or group." : "Totes los utilizaires. Clicatz aicí per restrénher.",
- "(group)" : "(grop)",
- "Saved" : "Enregistrat",
- "Username" : "Nom d'utilizaire",
- "Password" : "Senhal",
- "Save" : "Enregistrar",
- "Storage with id \"%i\" not found" : "Emmagazinatge amb l'id \"%i\" pas trobat",
- "Invalid backend or authentication mechanism class" : "Servici o metòde d'autentificacion pas valable",
- "Invalid mount point" : "Punt de montatge invalid",
- "Objectstore forbidden" : "\"Objectstore\" interdich",
- "Invalid storage backend \"%s\"" : "Servici d'emmagazinatge invalid : \"%s\"",
- "Not permitted to use backend \"%s\"" : "Pas autorizat a utilizar lo servici \"%s\"",
- "Not permitted to use authentication mechanism \"%s\"" : "Pas autorizat a utilizar lo mecanisme d'autentificacion \"%s\"",
- "Unsatisfied backend parameters" : "Paramètres mancants pel servici",
- "Unsatisfied authentication mechanism parameters" : "Paramètres mancants pel metòde d'autentificacion",
- "Insufficient data: %s" : "Donadas insufisentas : %s",
- "%s" : "%s",
- "Access key" : "Clau d'accès",
- "Secret key" : "Clau secreta",
- "Builtin" : "Integrat",
- "None" : "Pas cap",
- "OAuth1" : "OAuth1",
- "App key" : "App key",
- "App secret" : "App secret",
- "OAuth2" : "OAuth2",
- "Client ID" : "ID Client",
- "Client secret" : "Secret client",
- "OpenStack" : "OpenStack",
- "Tenant name" : "Tenant name",
- "Identity endpoint URL" : "Identity endpoint URL",
- "Rackspace" : "Rackspace",
- "API key" : "Clau API",
- "Username and password" : "Nom d'utilizaire e senhal",
- "RSA public key" : "Clau publica RSA",
- "Public key" : "Clau publica",
- "Amazon S3" : "Amazon S3",
- "Bucket" : "Bucket",
- "Hostname" : "Nom de l'òste",
- "Port" : "Pòrt",
- "Region" : "Region",
- "Enable SSL" : "Activar SSL",
- "Enable Path Style" : "Accès per path",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Sosdorsièr distant",
- "Secure https://" : "Securizacion https://",
- "Dropbox" : "Dropbox",
- "FTP" : "FTP",
- "Host" : "Òste",
- "Secure ftps://" : "Securizacion ftps://",
- "Google Drive" : "Google Drive",
- "Local" : "Local",
- "Location" : "Emplaçament",
- "ownCloud" : "ownCloud",
- "SFTP" : "SFTP",
- "Root" : "Raiç",
- "SFTP with secret key login" : "SFTP amb un identificant secret",
- "SMB / CIFS" : "SMB / CIFS",
- "Share" : "Partejar",
- "Domain" : "Domeni",
- "SMB / CIFS using OC login" : "SMB / CIFS en utilizant los identificants OC",
- "Username as share" : "Nom d'utilizaire coma nom de partiment",
- "OpenStack Object Storage" : "OpenStack Object Storage",
- "Service name" : "Nom del servici",
- "Request timeout (seconds)" : "Timeout de las requèstas (en segondas)",
- "<b>Note:</b> " : "<b>Atencion :</b>",
- "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion :</b> La presa en carga de cURL per PHP es pas activada o installada. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
- "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion : </b> La presa en carga del FTP per PHP es pas activada o installada. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
- "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion : </b> \"%s\" es pas installat. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
- "No external storage configured" : "Aucun emmagazinatge externe configurat",
- "You can add external storages in the personal settings" : "Podètz apondre des emmagazinatges externes dins los paramètres personals",
- "Name" : "Nom",
- "Storage type" : "Tipe d'emmagazinatge",
- "Scope" : "Portada",
- "Enable encryption" : "Activar lo chiframent",
- "Enable previews" : "Activar las previsualizacions",
- "Check for changes" : "Recercar las modificacions",
- "Never" : "Pas jamai",
- "Once every direct access" : "Un còp a cada accès dirècte",
- "External Storage" : "Emmagazinatge externe",
- "Folder name" : "Nom del dorsièr",
- "Authentication" : "Autentificacion",
- "Configuration" : "Configuracion",
- "Available for" : "Disponible per",
- "Add storage" : "Apondre un supòrt d'emmagazinatge",
- "Advanced settings" : "Paramètres avançats",
- "Delete" : "Suprimir",
- "Allow users to mount external storage" : "Autorizar los utilizaires a montar l'espaci d'emmagazinatge extèrne",
- "Allow users to mount the following external storage" : "Autorizar los utilizaires a montar los emmagazinatges extèrnes seguents"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js
index 4df5dddd8db..c1f7cff9a1d 100644
--- a/apps/files_external/l10n/pt_BR.js
+++ b/apps/files_external/l10n/pt_BR.js
@@ -33,7 +33,7 @@ OC.L10N.register(
"Client ID" : "ID do Cliente",
"Client secret" : "Segredo do cliente",
"OpenStack v2" : "OpenStack v2",
- "Login" : "Entrar",
+ "Login" : "Nome de login",
"Password" : "Senha",
"Tenant name" : "Nome do inquilino",
"Identity endpoint URL" : "URL do destino da identidade",
@@ -42,17 +42,17 @@ OC.L10N.register(
"Rackspace" : "Espaço no rack",
"API key" : "Chave API",
"Global credentials" : "Credenciais globais",
- "Log-in credentials, save in database" : "Credenciais de acesso, salvas no banco de dados",
- "Login and password" : "Login e senha",
- "Log-in credentials, save in session" : "Credenciais de login, guardadas em sessão",
+ "Log-in credentials, save in database" : "Credenciais de acesso, armazenar no banco de dados",
+ "Login and password" : "Nome de login e senha",
+ "Log-in credentials, save in session" : "Credenciais de login, armazenar na sessão",
"Global credentials, manually entered" : "Credenciais globais, inseridas manualmente",
- "Manually entered, store in database" : "Inserido manualmente, armazenado no banco de dados",
+ "Manually entered, store in database" : "Inseridos manualmente, armazenados no banco de dados",
"RSA public key" : "Chave pública RSA",
"Public key" : "Chave pública",
"RSA private key" : "Chave privada RSA",
"Private key" : "Chave privada",
- "Kerberos default realm, defaults to \"WORKGROUP\"" : "reino padrão do Kerberos, padrão para \"WORKGROUP\"",
- "Kerberos ticket Apache mode" : "Bilhete Kerberos Modo Apache",
+ "Kerberos default realm, defaults to \"WORKGROUP\"" : "Reino padrão do Kerberos, o padrão é \"WORKGROUP\"",
+ "Kerberos ticket Apache mode" : "Modo Apache de ticket Kerberos",
"Kerberos ticket" : "Ticket Kerberos",
"Amazon S3" : "Amazon S3",
"Bucket" : "Cesta",
@@ -81,13 +81,13 @@ OC.L10N.register(
"SMB/CIFS" : "SMB/CIFS",
"Share" : "Compartilhar",
"Show hidden files" : "Mostrar arquivos ocultos",
- "Case sensitive file system" : "Sistema de arquivos sensível a maiúsculas",
- "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Desativá-lo permitirá usar um sistema de arquivos que não diferencia maiúsculas de minúsculas, mas acarretará uma penalidade de desempenho",
+ "Case sensitive file system" : "Sistema de arquivos diferenciando maiúsculas/minúsculas",
+ "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Desativar está opção permitirá usar um sistema de arquivos que não diferencia maiúsculas de minúsculas, mas acarretará uma penalidade de desempenho",
"Verify ACL access when listing files" : "Verifique o acesso da ACL ao listar arquivos",
- "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Verifique as ACLs de cada arquivo ou pasta dentro de um diretório para filtrar itens onde a conta não tem permissões de leitura, o que acarreta uma penalidade de desempenho",
+ "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Verificar as ACLs de cada arquivo ou pasta dentro de um diretório para filtrar itens onde a conta não tem permissões de leitura, tem uma penalidade de desempenho",
"Timeout" : "Tempo limite",
- "SMB/CIFS using OC login" : "SMB/CIFS usandoo login OC",
- "Login as share" : "Faça login como compartilhar",
+ "SMB/CIFS using OC login" : "SMB/CIFS usando login OC",
+ "Login as share" : "Faça login como compartilhamento",
"OpenStack Object Storage" : "Armazenamento de Objetos OpenStack",
"Service name" : "Nome do serviço",
"Request timeout (seconds)" : "Tempo limite para requisição (segundos)",
@@ -97,25 +97,25 @@ OC.L10N.register(
"External storage" : "Armazenamento Externo",
"External storage support" : "Suporte a armazenamento externo",
"Adds basic external storage support" : "Adiciona suporte básico para armazenamento externo",
- "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Este aplicativo permite que os administradores configurem conexões com provedores de armazenamento externos, como servidores FTP, armazenamentos de objetos S3 ou SWIFT, outros servidores Nextcloud, servidores WebDAV e muito mais. A administração pode escolher quais tipos de armazenamento ativar e pode montar esses locais de armazenamento para uma conta, um grupo ou todo o sistema. Os usuários verão uma nova pasta aparecer em seu diretório raiz Nextcloud, que eles podem acessar e usar como qualquer outra pasta Nextcloud. O armazenamento externo também permite que as pessoas compartilhem arquivos armazenados nesses locais externos. Nesses casos, as credenciais do proprietário do arquivo são usadas quando o destinatário solicita o arquivo do armazenamento externo, garantindo assim que o destinatário possa acessar o arquivo compartilhado. \n\nO armazenamento externo pode ser configurado usando a GUI ou na linha de comando. Esta segunda opção fornece à administração mais flexibilidade para configurar montagens de armazenamento externo em massa e definir prioridades de montagem. Mais informações estão disponíveis na documentação da GUI de armazenamento externo e na documentação do arquivo de configuração de armazenamento externo.",
+ "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Este aplicativo permite que os administradores configurem conexões com provedores de armazenamento externos, como servidores FTP, armazenamentos de objetos S3 ou SWIFT, outros servidores Nextcloud, servidores WebDAV e muito mais. A administração pode escolher quais tipos de armazenamento a serem ativados e pode montar estes locais de armazenamento para uma conta, um grupo ou todo o sistema. Os usuários verão uma nova pasta aparecer em seu diretório raiz Nextcloud, que eles podem acessar e usar como qualquer outra pasta do Nextcloud. O armazenamento externo também permite que as pessoas compartilhem arquivos armazenados nestes locais externos. Nesses casos, as credenciais do proprietário do arquivo são usadas quando o destinatário solicita o arquivo do armazenamento externo, garantindo assim que o destinatário possa acessar o arquivo compartilhado. \n\nO armazenamento externo pode ser configurado usando a GUI ou na linha de comando. Esta segunda opção fornece à administração mais flexibilidade para configurar montagens de armazenamento externo em massa e definir prioridades de montagem. Mais informações estão disponíveis na documentação da GUI de armazenamento externo e na documentação do arquivo de configuração de armazenamento externo.",
"Confirm" : "Confirmar",
"Storage credentials" : "Credenciais de armazenamento",
"To access the storage, you need to provide the authentication credentials." : "Para acessar o armazenamento, você precisa fornecer as credenciais de autenticação.",
- "Enter the storage login" : "Digite o login de armazenamento",
+ "Enter the storage login" : "Digite o nome de login de armazenamento",
"Enter the storage password" : "Digite a senha de armazenamento",
"Unable to update this external storage config. {statusMessage}" : "Não é possível atualizar esta configuração de armazenamento externo. {statusMessage}",
"New configuration successfully saved" : "Nova configuração salva com sucesso",
"Enter missing credentials" : "Digite as credenciais ausentes",
- "Credentials successfully set" : "Credenciais configuradas com sucesso",
- "Error while setting credentials: {error}" : "Erro ao configurar as credenciais: {error}",
+ "Credentials successfully set" : "Credenciais definidas com sucesso",
+ "Error while setting credentials: {error}" : "Erro ao definir as credenciais: {error}",
"Checking storage …" : "Verificação do armazenamento …",
"There was an error with this external storage." : "Ocorreu um erro com este armazenamento externo.",
"We were unable to check the external storage {basename}" : "Não foi possível verificar o armazenamento externo {basename}",
"Examine this faulty external storage configuration" : "Examine esta configuração de armazenamento externo com falha",
- "Open in Files" : "Abrir em arquivos",
+ "Open in Files" : "Abrir em Arquivos",
"There was an error with this external storage. Do you want to review this mount point config in the settings page?" : "Ocorreu um erro com este armazenamento externo. Deseja revisar esta configuração do ponto de montagem na página de configurações?",
"External mount error" : "Erro de montagem externa",
- "List of external storage." : "Lista de armazenamento externo.",
+ "List of external storage." : "Lista de armazenamentos externos.",
"There is no external storage configured. You can configure them in your Personal settings." : "Não há armazenamento externo configurado. Você pode configurá-los em suas configurações pessoais.",
"There is no external storage configured and you don't have the permission to configure them." : "Não há armazenamento externo configurado e você não tem permissão para configurá-los.",
"No external storage" : "Sem armazenamento externo",
@@ -135,10 +135,10 @@ OC.L10N.register(
"Once every direct access" : "Uma vez a cada acesso direto",
"Read only" : "Somente leitura",
"Disconnect" : "Desconectar",
- "Unknown backend: {backendName}" : "Backend desconhecido: {backendName}",
+ "Unknown backend: {backendName}" : "Back-end desconhecido: {backendName}",
"Admin defined" : "Definido pelo administrador",
"Automatic status checking is disabled due to the large number of configured storages, click to check status" : "A verificação automática de status está desabilitada devido ao grande número de armazenamentos configurados, clique para verificar o status",
- "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Tem certeza de que deseja desconectar este armazenamento externo? Isso tornará o armazenamento indisponível no Nextcloud e levará à exclusão desses arquivos e pastas em qualquer cliente de sincronização que esteja conectado no momento, mas não excluirá nenhum arquivo e pasta no próprio armazenamento externo.",
+ "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Tem certeza de que deseja desconectar este armazenamento externo? Isso tornará o armazenamento indisponível no Nextcloud e levará à exclusão destes arquivos e pastas em qualquer cliente de sincronização que esteja conectado no momento, mas não excluirá nenhum arquivo e pasta do armazenamento externo em si.",
"Delete storage?" : "Excluir armazenamento?",
"Click to recheck the configuration" : "Clique para rechecar a configuração",
"Saved" : "Salvo",
diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json
index 02fd258d356..d4110a66176 100644
--- a/apps/files_external/l10n/pt_BR.json
+++ b/apps/files_external/l10n/pt_BR.json
@@ -31,7 +31,7 @@
"Client ID" : "ID do Cliente",
"Client secret" : "Segredo do cliente",
"OpenStack v2" : "OpenStack v2",
- "Login" : "Entrar",
+ "Login" : "Nome de login",
"Password" : "Senha",
"Tenant name" : "Nome do inquilino",
"Identity endpoint URL" : "URL do destino da identidade",
@@ -40,17 +40,17 @@
"Rackspace" : "Espaço no rack",
"API key" : "Chave API",
"Global credentials" : "Credenciais globais",
- "Log-in credentials, save in database" : "Credenciais de acesso, salvas no banco de dados",
- "Login and password" : "Login e senha",
- "Log-in credentials, save in session" : "Credenciais de login, guardadas em sessão",
+ "Log-in credentials, save in database" : "Credenciais de acesso, armazenar no banco de dados",
+ "Login and password" : "Nome de login e senha",
+ "Log-in credentials, save in session" : "Credenciais de login, armazenar na sessão",
"Global credentials, manually entered" : "Credenciais globais, inseridas manualmente",
- "Manually entered, store in database" : "Inserido manualmente, armazenado no banco de dados",
+ "Manually entered, store in database" : "Inseridos manualmente, armazenados no banco de dados",
"RSA public key" : "Chave pública RSA",
"Public key" : "Chave pública",
"RSA private key" : "Chave privada RSA",
"Private key" : "Chave privada",
- "Kerberos default realm, defaults to \"WORKGROUP\"" : "reino padrão do Kerberos, padrão para \"WORKGROUP\"",
- "Kerberos ticket Apache mode" : "Bilhete Kerberos Modo Apache",
+ "Kerberos default realm, defaults to \"WORKGROUP\"" : "Reino padrão do Kerberos, o padrão é \"WORKGROUP\"",
+ "Kerberos ticket Apache mode" : "Modo Apache de ticket Kerberos",
"Kerberos ticket" : "Ticket Kerberos",
"Amazon S3" : "Amazon S3",
"Bucket" : "Cesta",
@@ -79,13 +79,13 @@
"SMB/CIFS" : "SMB/CIFS",
"Share" : "Compartilhar",
"Show hidden files" : "Mostrar arquivos ocultos",
- "Case sensitive file system" : "Sistema de arquivos sensível a maiúsculas",
- "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Desativá-lo permitirá usar um sistema de arquivos que não diferencia maiúsculas de minúsculas, mas acarretará uma penalidade de desempenho",
+ "Case sensitive file system" : "Sistema de arquivos diferenciando maiúsculas/minúsculas",
+ "Disabling it will allow to use a case insensitive file system, but comes with a performance penalty" : "Desativar está opção permitirá usar um sistema de arquivos que não diferencia maiúsculas de minúsculas, mas acarretará uma penalidade de desempenho",
"Verify ACL access when listing files" : "Verifique o acesso da ACL ao listar arquivos",
- "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Verifique as ACLs de cada arquivo ou pasta dentro de um diretório para filtrar itens onde a conta não tem permissões de leitura, o que acarreta uma penalidade de desempenho",
+ "Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty" : "Verificar as ACLs de cada arquivo ou pasta dentro de um diretório para filtrar itens onde a conta não tem permissões de leitura, tem uma penalidade de desempenho",
"Timeout" : "Tempo limite",
- "SMB/CIFS using OC login" : "SMB/CIFS usandoo login OC",
- "Login as share" : "Faça login como compartilhar",
+ "SMB/CIFS using OC login" : "SMB/CIFS usando login OC",
+ "Login as share" : "Faça login como compartilhamento",
"OpenStack Object Storage" : "Armazenamento de Objetos OpenStack",
"Service name" : "Nome do serviço",
"Request timeout (seconds)" : "Tempo limite para requisição (segundos)",
@@ -95,25 +95,25 @@
"External storage" : "Armazenamento Externo",
"External storage support" : "Suporte a armazenamento externo",
"Adds basic external storage support" : "Adiciona suporte básico para armazenamento externo",
- "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Este aplicativo permite que os administradores configurem conexões com provedores de armazenamento externos, como servidores FTP, armazenamentos de objetos S3 ou SWIFT, outros servidores Nextcloud, servidores WebDAV e muito mais. A administração pode escolher quais tipos de armazenamento ativar e pode montar esses locais de armazenamento para uma conta, um grupo ou todo o sistema. Os usuários verão uma nova pasta aparecer em seu diretório raiz Nextcloud, que eles podem acessar e usar como qualquer outra pasta Nextcloud. O armazenamento externo também permite que as pessoas compartilhem arquivos armazenados nesses locais externos. Nesses casos, as credenciais do proprietário do arquivo são usadas quando o destinatário solicita o arquivo do armazenamento externo, garantindo assim que o destinatário possa acessar o arquivo compartilhado. \n\nO armazenamento externo pode ser configurado usando a GUI ou na linha de comando. Esta segunda opção fornece à administração mais flexibilidade para configurar montagens de armazenamento externo em massa e definir prioridades de montagem. Mais informações estão disponíveis na documentação da GUI de armazenamento externo e na documentação do arquivo de configuração de armazenamento externo.",
+ "This application enables administrators to configure connections to external storage providers, such as FTP servers, S3 or SWIFT object stores, other Nextcloud servers, WebDAV servers, and more. Administration can choose which types of storage to enable and can mount these storage locations for an account, a group, or the entire system. Users will see a new folder appear in their root Nextcloud directory, which they can access and use like any other Nextcloud folder. External storage also allows people to share files stored in these external locations. In these cases, the credentials for the owner of the file are used when the recipient requests the file from external storage, thereby ensuring that the recipient can access the shared file.\n\nExternal storage can be configured using the GUI or at the command line. This second option provides the administration with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation." : "Este aplicativo permite que os administradores configurem conexões com provedores de armazenamento externos, como servidores FTP, armazenamentos de objetos S3 ou SWIFT, outros servidores Nextcloud, servidores WebDAV e muito mais. A administração pode escolher quais tipos de armazenamento a serem ativados e pode montar estes locais de armazenamento para uma conta, um grupo ou todo o sistema. Os usuários verão uma nova pasta aparecer em seu diretório raiz Nextcloud, que eles podem acessar e usar como qualquer outra pasta do Nextcloud. O armazenamento externo também permite que as pessoas compartilhem arquivos armazenados nestes locais externos. Nesses casos, as credenciais do proprietário do arquivo são usadas quando o destinatário solicita o arquivo do armazenamento externo, garantindo assim que o destinatário possa acessar o arquivo compartilhado. \n\nO armazenamento externo pode ser configurado usando a GUI ou na linha de comando. Esta segunda opção fornece à administração mais flexibilidade para configurar montagens de armazenamento externo em massa e definir prioridades de montagem. Mais informações estão disponíveis na documentação da GUI de armazenamento externo e na documentação do arquivo de configuração de armazenamento externo.",
"Confirm" : "Confirmar",
"Storage credentials" : "Credenciais de armazenamento",
"To access the storage, you need to provide the authentication credentials." : "Para acessar o armazenamento, você precisa fornecer as credenciais de autenticação.",
- "Enter the storage login" : "Digite o login de armazenamento",
+ "Enter the storage login" : "Digite o nome de login de armazenamento",
"Enter the storage password" : "Digite a senha de armazenamento",
"Unable to update this external storage config. {statusMessage}" : "Não é possível atualizar esta configuração de armazenamento externo. {statusMessage}",
"New configuration successfully saved" : "Nova configuração salva com sucesso",
"Enter missing credentials" : "Digite as credenciais ausentes",
- "Credentials successfully set" : "Credenciais configuradas com sucesso",
- "Error while setting credentials: {error}" : "Erro ao configurar as credenciais: {error}",
+ "Credentials successfully set" : "Credenciais definidas com sucesso",
+ "Error while setting credentials: {error}" : "Erro ao definir as credenciais: {error}",
"Checking storage …" : "Verificação do armazenamento …",
"There was an error with this external storage." : "Ocorreu um erro com este armazenamento externo.",
"We were unable to check the external storage {basename}" : "Não foi possível verificar o armazenamento externo {basename}",
"Examine this faulty external storage configuration" : "Examine esta configuração de armazenamento externo com falha",
- "Open in Files" : "Abrir em arquivos",
+ "Open in Files" : "Abrir em Arquivos",
"There was an error with this external storage. Do you want to review this mount point config in the settings page?" : "Ocorreu um erro com este armazenamento externo. Deseja revisar esta configuração do ponto de montagem na página de configurações?",
"External mount error" : "Erro de montagem externa",
- "List of external storage." : "Lista de armazenamento externo.",
+ "List of external storage." : "Lista de armazenamentos externos.",
"There is no external storage configured. You can configure them in your Personal settings." : "Não há armazenamento externo configurado. Você pode configurá-los em suas configurações pessoais.",
"There is no external storage configured and you don't have the permission to configure them." : "Não há armazenamento externo configurado e você não tem permissão para configurá-los.",
"No external storage" : "Sem armazenamento externo",
@@ -133,10 +133,10 @@
"Once every direct access" : "Uma vez a cada acesso direto",
"Read only" : "Somente leitura",
"Disconnect" : "Desconectar",
- "Unknown backend: {backendName}" : "Backend desconhecido: {backendName}",
+ "Unknown backend: {backendName}" : "Back-end desconhecido: {backendName}",
"Admin defined" : "Definido pelo administrador",
"Automatic status checking is disabled due to the large number of configured storages, click to check status" : "A verificação automática de status está desabilitada devido ao grande número de armazenamentos configurados, clique para verificar o status",
- "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Tem certeza de que deseja desconectar este armazenamento externo? Isso tornará o armazenamento indisponível no Nextcloud e levará à exclusão desses arquivos e pastas em qualquer cliente de sincronização que esteja conectado no momento, mas não excluirá nenhum arquivo e pasta no próprio armazenamento externo.",
+ "Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Tem certeza de que deseja desconectar este armazenamento externo? Isso tornará o armazenamento indisponível no Nextcloud e levará à exclusão destes arquivos e pastas em qualquer cliente de sincronização que esteja conectado no momento, mas não excluirá nenhum arquivo e pasta do armazenamento externo em si.",
"Delete storage?" : "Excluir armazenamento?",
"Click to recheck the configuration" : "Clique para rechecar a configuração",
"Saved" : "Salvo",
diff --git a/apps/files_external/l10n/ro.js b/apps/files_external/l10n/ro.js
deleted file mode 100644
index dd2d412484d..00000000000
--- a/apps/files_external/l10n/ro.js
+++ /dev/null
@@ -1,85 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Grant access" : "Permite accesul",
- "Error configuring OAuth1" : "Eroare la configurarea OAuth1",
- "Error configuring OAuth2" : "Eroare la configurarea OAuth2",
- "Generate keys" : "Generează chei",
- "Error generating key pair" : "Eroarea la generarea cheilor",
- "(Group)" : "(Grup)",
- "Enable encryption" : "Activează criptarea",
- "Enable previews" : "Activează previzualizările",
- "Enable sharing" : "Activează partajarea",
- "Check for changes" : "Verifică dacă au intervenit modificări",
- "Never" : "Niciodată",
- "Once every direct access" : "O dată la fiecare acces direct",
- "Read only" : "Doar citire",
- "Disconnect" : "Deconectare",
- "Admin defined" : "Administrator definit",
- "Saved" : "Salvat",
- "Saving …" : "Se salvează",
- "Save" : "Salvează",
- "Insufficient data: %s" : "Date insuficiente: %s",
- "%s" : "%s",
- "Access key" : "Cheie de acces",
- "Secret key" : "Cheie secretă",
- "Builtin" : "Inclus",
- "None" : "Niciuna",
- "OAuth1" : "OAuth1",
- "App key" : "Cheie aplicație",
- "App secret" : "Secret aplicație",
- "OAuth2" : "OAuth2",
- "Client ID" : "ID client",
- "Client secret" : "Secret client",
- "Login" : "Autentificare",
- "Password" : "Parolă",
- "Tenant name" : "Nume titular",
- "Domain" : "Domeniu",
- "API key" : "Cheie API",
- "RSA public key" : "Cheie publică RSA",
- "Public key" : "Cheie publică",
- "Amazon S3" : "Amazon S3",
- "Hostname" : "Nume mașină",
- "Port" : "Port",
- "Region" : "Regiune",
- "Enable SSL" : "Activează SSL",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Secure https://" : "https:// sigur",
- "FTP" : "FTP",
- "Host" : "Gazdă",
- "Secure ftps://" : "ftps:// sigur",
- "Local" : "Local",
- "Location" : "Locație",
- "Nextcloud" : "Nextcloud",
- "SFTP" : "SFTP",
- "Root" : "Root",
- "SFTP with secret key login" : "SFTP cu cheie secretă de autentificare",
- "Share" : "Partajează",
- "Show hidden files" : "Arată fișierele ascunse",
- "Service name" : "Nume serviciu",
- "External storage" : "Stocare externă",
- "Open in Files" : "Deschide în Fișiere",
- "Storage type" : "Tip stocare",
- "Unknown" : "Necunoscut",
- "Scope" : "Scop",
- "Personal" : "Personal",
- "System" : "Sistem",
- "Open documentation" : "Deschide documentația",
- "Folder name" : "Denumire director",
- "Authentication" : "Autentificare",
- "Configuration" : "Configurație",
- "Available for" : "Disponibil pentru",
- "Add storage" : "Adauga stocare",
- "Advanced settings" : "Setări avansate",
- "Empty response from the server" : "Răspuns nul de la server",
- "There was an error with message: " : "A apărut o eroare cu mesajul:",
- "external-storage" : "Stocare externă",
- "Username" : "Nume utilizator",
- "Credentials saved" : "Detalii de autentificare salvate",
- "Credentials saving failed" : "Salvarea detaliilor de autentificare a eșuat",
- "Credentials required" : "Detalii de autentificare necesare",
- "Username and password" : "Nume de utilizator și parolă",
- "Name" : "Nume"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/files_external/l10n/ro.json b/apps/files_external/l10n/ro.json
deleted file mode 100644
index a21b756bd6f..00000000000
--- a/apps/files_external/l10n/ro.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{ "translations": {
- "Grant access" : "Permite accesul",
- "Error configuring OAuth1" : "Eroare la configurarea OAuth1",
- "Error configuring OAuth2" : "Eroare la configurarea OAuth2",
- "Generate keys" : "Generează chei",
- "Error generating key pair" : "Eroarea la generarea cheilor",
- "(Group)" : "(Grup)",
- "Enable encryption" : "Activează criptarea",
- "Enable previews" : "Activează previzualizările",
- "Enable sharing" : "Activează partajarea",
- "Check for changes" : "Verifică dacă au intervenit modificări",
- "Never" : "Niciodată",
- "Once every direct access" : "O dată la fiecare acces direct",
- "Read only" : "Doar citire",
- "Disconnect" : "Deconectare",
- "Admin defined" : "Administrator definit",
- "Saved" : "Salvat",
- "Saving …" : "Se salvează",
- "Save" : "Salvează",
- "Insufficient data: %s" : "Date insuficiente: %s",
- "%s" : "%s",
- "Access key" : "Cheie de acces",
- "Secret key" : "Cheie secretă",
- "Builtin" : "Inclus",
- "None" : "Niciuna",
- "OAuth1" : "OAuth1",
- "App key" : "Cheie aplicație",
- "App secret" : "Secret aplicație",
- "OAuth2" : "OAuth2",
- "Client ID" : "ID client",
- "Client secret" : "Secret client",
- "Login" : "Autentificare",
- "Password" : "Parolă",
- "Tenant name" : "Nume titular",
- "Domain" : "Domeniu",
- "API key" : "Cheie API",
- "RSA public key" : "Cheie publică RSA",
- "Public key" : "Cheie publică",
- "Amazon S3" : "Amazon S3",
- "Hostname" : "Nume mașină",
- "Port" : "Port",
- "Region" : "Regiune",
- "Enable SSL" : "Activează SSL",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Secure https://" : "https:// sigur",
- "FTP" : "FTP",
- "Host" : "Gazdă",
- "Secure ftps://" : "ftps:// sigur",
- "Local" : "Local",
- "Location" : "Locație",
- "Nextcloud" : "Nextcloud",
- "SFTP" : "SFTP",
- "Root" : "Root",
- "SFTP with secret key login" : "SFTP cu cheie secretă de autentificare",
- "Share" : "Partajează",
- "Show hidden files" : "Arată fișierele ascunse",
- "Service name" : "Nume serviciu",
- "External storage" : "Stocare externă",
- "Open in Files" : "Deschide în Fișiere",
- "Storage type" : "Tip stocare",
- "Unknown" : "Necunoscut",
- "Scope" : "Scop",
- "Personal" : "Personal",
- "System" : "Sistem",
- "Open documentation" : "Deschide documentația",
- "Folder name" : "Denumire director",
- "Authentication" : "Autentificare",
- "Configuration" : "Configurație",
- "Available for" : "Disponibil pentru",
- "Add storage" : "Adauga stocare",
- "Advanced settings" : "Setări avansate",
- "Empty response from the server" : "Răspuns nul de la server",
- "There was an error with message: " : "A apărut o eroare cu mesajul:",
- "external-storage" : "Stocare externă",
- "Username" : "Nume utilizator",
- "Credentials saved" : "Detalii de autentificare salvate",
- "Credentials saving failed" : "Salvarea detaliilor de autentificare a eșuat",
- "Credentials required" : "Detalii de autentificare necesare",
- "Username and password" : "Nume de utilizator și parolă",
- "Name" : "Nume"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js
index c62abe057e0..e98198264b8 100644
--- a/apps/files_external/l10n/ru.js
+++ b/apps/files_external/l10n/ru.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Error configuring OAuth2" : "Ошибка настройки OAuth2",
"Generate keys" : "Создать ключи",
"Error generating key pair" : "Ошибка создания пары ключей",
+ "You are not logged in" : "Вход в систему не выполнен",
+ "Permission denied" : "Доступ запрещён",
"Forbidden to manage local mounts" : "Запрещено изменять параметры подключения файловых систем",
"Storage with ID \"%d\" not found" : "Хранилище с идентификатором «%d» не найдено",
"Invalid backend or authentication mechanism class" : "Недопустимый механизм или класс авторизации",
@@ -62,6 +64,7 @@ OC.L10N.register(
"Enable Path Style" : "Использовать стиль пути",
"Legacy (v2) authentication" : "Устаревшая (v2) проверка подлинности",
"Enable multipart copy" : "Включить составное копирование",
+ "SSE-C encryption key" : "Ключ шифрования SSE-C",
"WebDAV" : "WebDAV",
"URL" : "URL",
"Remote subfolder" : "Подкаталог на другом сервере",
@@ -103,6 +106,9 @@ OC.L10N.register(
"Unable to update this external storage config. {statusMessage}" : "Не удалось обновить эту конфигурацию внешних хранилищ. {statusMessage}",
"New configuration successfully saved" : "Новая конфигурация успешно сохранена",
"Enter missing credentials" : "Ввод пропущенных учётных данных",
+ "Credentials successfully set" : "Учётные данные успешно заданы",
+ "Error while setting credentials: {error}" : "Ошибка при установке учётных данных: {error}",
+ "Checking storage …" : "Проверка хранилища …",
"There was an error with this external storage." : "Произошла ошибка с этим внешним хранилищем.",
"We were unable to check the external storage {basename}" : "Нам не удалось проверить внешнее хранилище {basename}",
"Examine this faulty external storage configuration" : "Проверьте эту конфигурацию внешнего хранилища, она содержит ошибки",
@@ -138,6 +144,8 @@ OC.L10N.register(
"Saved" : "Сохранено",
"Saving …" : "Сохранение ...",
"Save" : "Сохранить",
+ "Failed to save global credentials" : "Не удалось сохранить глобальные учётные данные",
+ "Failed to save global credentials: {message}" : "Не удалось сохранить глобальные учётные данные: {message}",
"No external storage configured or you don't have the permission to configure them" : "Нет настроенного внешнего хранилища или у вас нет прав доступа для их настройки",
"Open documentation" : "Открыть документацию",
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Внешнее хранилище позволяет подключать внешние службы и устройства хранения в качестве дополнительных устройств хранения данных Nextcloud. Вы также можете разрешить людям подключать свои собственные внешние службы хранения данных.",
diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json
index ece2f8cd31b..a0260761245 100644
--- a/apps/files_external/l10n/ru.json
+++ b/apps/files_external/l10n/ru.json
@@ -5,6 +5,8 @@
"Error configuring OAuth2" : "Ошибка настройки OAuth2",
"Generate keys" : "Создать ключи",
"Error generating key pair" : "Ошибка создания пары ключей",
+ "You are not logged in" : "Вход в систему не выполнен",
+ "Permission denied" : "Доступ запрещён",
"Forbidden to manage local mounts" : "Запрещено изменять параметры подключения файловых систем",
"Storage with ID \"%d\" not found" : "Хранилище с идентификатором «%d» не найдено",
"Invalid backend or authentication mechanism class" : "Недопустимый механизм или класс авторизации",
@@ -60,6 +62,7 @@
"Enable Path Style" : "Использовать стиль пути",
"Legacy (v2) authentication" : "Устаревшая (v2) проверка подлинности",
"Enable multipart copy" : "Включить составное копирование",
+ "SSE-C encryption key" : "Ключ шифрования SSE-C",
"WebDAV" : "WebDAV",
"URL" : "URL",
"Remote subfolder" : "Подкаталог на другом сервере",
@@ -101,6 +104,9 @@
"Unable to update this external storage config. {statusMessage}" : "Не удалось обновить эту конфигурацию внешних хранилищ. {statusMessage}",
"New configuration successfully saved" : "Новая конфигурация успешно сохранена",
"Enter missing credentials" : "Ввод пропущенных учётных данных",
+ "Credentials successfully set" : "Учётные данные успешно заданы",
+ "Error while setting credentials: {error}" : "Ошибка при установке учётных данных: {error}",
+ "Checking storage …" : "Проверка хранилища …",
"There was an error with this external storage." : "Произошла ошибка с этим внешним хранилищем.",
"We were unable to check the external storage {basename}" : "Нам не удалось проверить внешнее хранилище {basename}",
"Examine this faulty external storage configuration" : "Проверьте эту конфигурацию внешнего хранилища, она содержит ошибки",
@@ -136,6 +142,8 @@
"Saved" : "Сохранено",
"Saving …" : "Сохранение ...",
"Save" : "Сохранить",
+ "Failed to save global credentials" : "Не удалось сохранить глобальные учётные данные",
+ "Failed to save global credentials: {message}" : "Не удалось сохранить глобальные учётные данные: {message}",
"No external storage configured or you don't have the permission to configure them" : "Нет настроенного внешнего хранилища или у вас нет прав доступа для их настройки",
"Open documentation" : "Открыть документацию",
"External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services." : "Внешнее хранилище позволяет подключать внешние службы и устройства хранения в качестве дополнительных устройств хранения данных Nextcloud. Вы также можете разрешить людям подключать свои собственные внешние службы хранения данных.",
diff --git a/apps/files_external/l10n/sr@latin.js b/apps/files_external/l10n/sr@latin.js
deleted file mode 100644
index 2cc12ecf4aa..00000000000
--- a/apps/files_external/l10n/sr@latin.js
+++ /dev/null
@@ -1,55 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Step 1 failed. Exception: %s" : "Korak 1 nije uspeo. Izuzetak: %s",
- "Step 2 failed. Exception: %s" : "Korak 2 nije uspeo. Izuzetak: %s",
- "External storage" : "Spoljašnje skladište",
- "Personal" : "Lično",
- "System" : "Sistemsko",
- "Grant access" : "Dozvoli pristup",
- "All users. Type to select user or group." : "Svi korisnici. Kucajte da biste izabrali korisnika ili grupu.",
- "(group)" : "(grupa)",
- "Saved" : "Sačuvano",
- "Username" : "Korisničko ime",
- "Password" : "Lozinka",
- "Save" : "Sačuvaj",
- "App key" : "Ključ Aplikacije",
- "App secret" : "Tajna lozinka Aplikacije",
- "Client ID" : "Identifikator klijenta",
- "Client secret" : "Tajna lozinka klijenta",
- "Amazon S3" : "Amazon S3",
- "Bucket" : "Korpa",
- "Hostname" : "Ime računara",
- "Port" : "Port",
- "Region" : "Regija",
- "Enable SSL" : "Uključi SSL",
- "Enable Path Style" : "Omogući stil putanje",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Udaljeni poddirektorijum",
- "Secure https://" : "Sigurni https://",
- "Host" : "Računar",
- "Secure ftps://" : "Sigurni ftps://",
- "Local" : "Lokalno",
- "Location" : "Lokacija",
- "Root" : "Koren",
- "Share" : "Podeli",
- "SMB / CIFS using OC login" : "SMB / CIFS koji koristi OC prijavljivanje",
- "Username as share" : "Korisničko ime i deljeni direktorijum",
- "OpenStack Object Storage" : "OpenStack skladište objekata",
- "<b>Note:</b> " : "<b>Obratite pažnju:</b>",
- "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju</b> Podrška za cURL u PHP-u nije uključena ili instalirana. Montiranje %s nije moguće. Molimo Vas da se obratite Vašem sistem administratoru da je instalira.",
- "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju:</b> FTP podrška u PHP-u nije uključena ili instalirana. Montiranje %s nije moguće. Molimo Vas da tražite od Vašeg sistem administratora da je instalira.",
- "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju:</b> \"%s\" nije instaliran. Monitranje %s nije moguće. Molimo Vas da se obratite Vašem sistem administratoru da to instalira.",
- "Name" : "Ime",
- "Storage type" : "Tip skladišta",
- "Scope" : "Opseg",
- "External Storage" : "Spoljašnje skladište",
- "Folder name" : "Ime fascikle",
- "Configuration" : "Podešavanje",
- "Available for" : "Dostupno za",
- "Add storage" : "Dodaj skladište",
- "Delete" : "Obriši",
- "Allow users to mount the following external storage" : "Omogući korisnicima da namontiraju sledeće spoljašnje skladište"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_external/l10n/sr@latin.json b/apps/files_external/l10n/sr@latin.json
deleted file mode 100644
index 2460d2544a4..00000000000
--- a/apps/files_external/l10n/sr@latin.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{ "translations": {
- "Step 1 failed. Exception: %s" : "Korak 1 nije uspeo. Izuzetak: %s",
- "Step 2 failed. Exception: %s" : "Korak 2 nije uspeo. Izuzetak: %s",
- "External storage" : "Spoljašnje skladište",
- "Personal" : "Lično",
- "System" : "Sistemsko",
- "Grant access" : "Dozvoli pristup",
- "All users. Type to select user or group." : "Svi korisnici. Kucajte da biste izabrali korisnika ili grupu.",
- "(group)" : "(grupa)",
- "Saved" : "Sačuvano",
- "Username" : "Korisničko ime",
- "Password" : "Lozinka",
- "Save" : "Sačuvaj",
- "App key" : "Ključ Aplikacije",
- "App secret" : "Tajna lozinka Aplikacije",
- "Client ID" : "Identifikator klijenta",
- "Client secret" : "Tajna lozinka klijenta",
- "Amazon S3" : "Amazon S3",
- "Bucket" : "Korpa",
- "Hostname" : "Ime računara",
- "Port" : "Port",
- "Region" : "Regija",
- "Enable SSL" : "Uključi SSL",
- "Enable Path Style" : "Omogući stil putanje",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Remote subfolder" : "Udaljeni poddirektorijum",
- "Secure https://" : "Sigurni https://",
- "Host" : "Računar",
- "Secure ftps://" : "Sigurni ftps://",
- "Local" : "Lokalno",
- "Location" : "Lokacija",
- "Root" : "Koren",
- "Share" : "Podeli",
- "SMB / CIFS using OC login" : "SMB / CIFS koji koristi OC prijavljivanje",
- "Username as share" : "Korisničko ime i deljeni direktorijum",
- "OpenStack Object Storage" : "OpenStack skladište objekata",
- "<b>Note:</b> " : "<b>Obratite pažnju:</b>",
- "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju</b> Podrška za cURL u PHP-u nije uključena ili instalirana. Montiranje %s nije moguće. Molimo Vas da se obratite Vašem sistem administratoru da je instalira.",
- "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju:</b> FTP podrška u PHP-u nije uključena ili instalirana. Montiranje %s nije moguće. Molimo Vas da tražite od Vašeg sistem administratora da je instalira.",
- "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Obratite pažnju:</b> \"%s\" nije instaliran. Monitranje %s nije moguće. Molimo Vas da se obratite Vašem sistem administratoru da to instalira.",
- "Name" : "Ime",
- "Storage type" : "Tip skladišta",
- "Scope" : "Opseg",
- "External Storage" : "Spoljašnje skladište",
- "Folder name" : "Ime fascikle",
- "Configuration" : "Podešavanje",
- "Available for" : "Dostupno za",
- "Add storage" : "Dodaj skladište",
- "Delete" : "Obriši",
- "Allow users to mount the following external storage" : "Omogući korisnicima da namontiraju sledeće spoljašnje skladište"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/tr.js b/apps/files_external/l10n/tr.js
index f17488f7154..f735d7b3668 100644
--- a/apps/files_external/l10n/tr.js
+++ b/apps/files_external/l10n/tr.js
@@ -14,10 +14,10 @@ OC.L10N.register(
"Invalid backend or authentication mechanism class" : "Arka yüz ya da kimlik doğrulama yöntemi sınıfı geçersiz",
"Invalid mount point" : "Bağlama noktası geçersiz",
"Objectstore forbidden" : "Nesne deposuna erişim kapalı",
- "Invalid storage backend \"%s\"" : "\"%s\" depolama arka ucu geçersiz",
- "Not permitted to use backend \"%s\"" : "\"%s\" arka ucunun kullanımına izin verilmiyor",
+ "Invalid storage backend \"%s\"" : "\"%s\" depolama arka yüzü geçersiz",
+ "Not permitted to use backend \"%s\"" : "\"%s\" arka yüzünün kullanılmasına izin verilmiyor",
"Not permitted to use authentication mechanism \"%s\"" : "\"%s\" kimlik doğrulama mekanizmasına izin verilmiyor",
- "Unsatisfied backend parameters" : "Arka uç parametreleri yetersiz",
+ "Unsatisfied backend parameters" : "Arka yüz parametreleri yetersiz",
"Unsatisfied authentication mechanism parameters" : "Kimlik doğrulama yöntemi parametreleri yetersiz",
"Insufficient data: %s" : "Veriler yetersiz: %s",
"%s" : "%s",
@@ -36,7 +36,7 @@ OC.L10N.register(
"Login" : "Kullanıcı adı",
"Password" : "Parola",
"Tenant name" : "Kiracı adı",
- "Identity endpoint URL" : "Kimlik arka uç noktası adresi",
+ "Identity endpoint URL" : "Kimlik arka yüzü noktası adresi",
"OpenStack v3" : "OpenStack v3",
"Domain" : "Etki alanı",
"Rackspace" : "Rackspace",
@@ -91,8 +91,8 @@ OC.L10N.register(
"OpenStack Object Storage" : "OpenStack nesne depolama",
"Service name" : "Hizmet adı",
"Request timeout (seconds)" : "İstek zaman aşımı (saniye)",
- "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP cURL desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Lütfen desteği kurması için BT yöneticiniz ile görüşün.",
- "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP FTP desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Lütfen desteği kurması için BT yöneticiniz ile görüşün.",
+ "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP cURL desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Kurulması için lütfen BT yöneticiniz ile görüşün.",
+ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP FTP desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Kurulması için lütfen BT yöneticiniz ile görüşün.",
"\"%1$s\" is not installed. Mounting of %2$s is not possible. Please ask your system administrator to install it." : "\"%1$s\" kurulmamış. %2$s\" bağlanamaz. Lütfen kurulum için BT yöneticiniz ile görüşün.",
"External storage" : "Dış depolama",
"External storage support" : "Dış depolama desteği",
@@ -135,9 +135,9 @@ OC.L10N.register(
"Once every direct access" : "Her doğrudan erişimde bir kez",
"Read only" : "Salt okunur",
"Disconnect" : "Bağlantıyı kes",
- "Unknown backend: {backendName}" : "Bilinmeyen arka uç: {backendName}",
+ "Unknown backend: {backendName}" : "Arka yüz bilinmiyor: {backendName}",
"Admin defined" : "Yönetici ayarlamış",
- "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Çok sayıda depolama yapılandırılmış olduğundan otomatik durum denetimi kullanımdan kaldırıldı. Durumu denetlemek için tıklayın",
+ "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Çok sayıda depolama alanı yapılandırılmış olduğundan otomatik durum denetimi kapatıldı. Durumu denetlemek için tıklayın",
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Bu dış depolama biriminin bağlantısını kesmek istediğinize emin misiniz? Bu işlem, depolamayı Nextcloud üzerinden kaldırırarak, şu anda bağlı olan ve eşitlenen herhangi bir istemcide bu dosya ve klasörlerin silinmesine yol açar. Ancak dış depolama üzerindeki hiçbir dosya ve klasör silinmez.",
"Delete storage?" : "Depolama silinsin mi?",
"Click to recheck the configuration" : "Yapılandırmayı yeniden denetlemek için tıklayın",
diff --git a/apps/files_external/l10n/tr.json b/apps/files_external/l10n/tr.json
index 20f805c4ea3..1bdba9f1a4d 100644
--- a/apps/files_external/l10n/tr.json
+++ b/apps/files_external/l10n/tr.json
@@ -12,10 +12,10 @@
"Invalid backend or authentication mechanism class" : "Arka yüz ya da kimlik doğrulama yöntemi sınıfı geçersiz",
"Invalid mount point" : "Bağlama noktası geçersiz",
"Objectstore forbidden" : "Nesne deposuna erişim kapalı",
- "Invalid storage backend \"%s\"" : "\"%s\" depolama arka ucu geçersiz",
- "Not permitted to use backend \"%s\"" : "\"%s\" arka ucunun kullanımına izin verilmiyor",
+ "Invalid storage backend \"%s\"" : "\"%s\" depolama arka yüzü geçersiz",
+ "Not permitted to use backend \"%s\"" : "\"%s\" arka yüzünün kullanılmasına izin verilmiyor",
"Not permitted to use authentication mechanism \"%s\"" : "\"%s\" kimlik doğrulama mekanizmasına izin verilmiyor",
- "Unsatisfied backend parameters" : "Arka uç parametreleri yetersiz",
+ "Unsatisfied backend parameters" : "Arka yüz parametreleri yetersiz",
"Unsatisfied authentication mechanism parameters" : "Kimlik doğrulama yöntemi parametreleri yetersiz",
"Insufficient data: %s" : "Veriler yetersiz: %s",
"%s" : "%s",
@@ -34,7 +34,7 @@
"Login" : "Kullanıcı adı",
"Password" : "Parola",
"Tenant name" : "Kiracı adı",
- "Identity endpoint URL" : "Kimlik arka uç noktası adresi",
+ "Identity endpoint URL" : "Kimlik arka yüzü noktası adresi",
"OpenStack v3" : "OpenStack v3",
"Domain" : "Etki alanı",
"Rackspace" : "Rackspace",
@@ -89,8 +89,8 @@
"OpenStack Object Storage" : "OpenStack nesne depolama",
"Service name" : "Hizmet adı",
"Request timeout (seconds)" : "İstek zaman aşımı (saniye)",
- "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP cURL desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Lütfen desteği kurması için BT yöneticiniz ile görüşün.",
- "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP FTP desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Lütfen desteği kurması için BT yöneticiniz ile görüşün.",
+ "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP cURL desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Kurulması için lütfen BT yöneticiniz ile görüşün.",
+ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP FTP desteği kurulmamış ya da kullanıma alınmamış. %s bağlanamaz. Kurulması için lütfen BT yöneticiniz ile görüşün.",
"\"%1$s\" is not installed. Mounting of %2$s is not possible. Please ask your system administrator to install it." : "\"%1$s\" kurulmamış. %2$s\" bağlanamaz. Lütfen kurulum için BT yöneticiniz ile görüşün.",
"External storage" : "Dış depolama",
"External storage support" : "Dış depolama desteği",
@@ -133,9 +133,9 @@
"Once every direct access" : "Her doğrudan erişimde bir kez",
"Read only" : "Salt okunur",
"Disconnect" : "Bağlantıyı kes",
- "Unknown backend: {backendName}" : "Bilinmeyen arka uç: {backendName}",
+ "Unknown backend: {backendName}" : "Arka yüz bilinmiyor: {backendName}",
"Admin defined" : "Yönetici ayarlamış",
- "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Çok sayıda depolama yapılandırılmış olduğundan otomatik durum denetimi kullanımdan kaldırıldı. Durumu denetlemek için tıklayın",
+ "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Çok sayıda depolama alanı yapılandırılmış olduğundan otomatik durum denetimi kapatıldı. Durumu denetlemek için tıklayın",
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Bu dış depolama biriminin bağlantısını kesmek istediğinize emin misiniz? Bu işlem, depolamayı Nextcloud üzerinden kaldırırarak, şu anda bağlı olan ve eşitlenen herhangi bir istemcide bu dosya ve klasörlerin silinmesine yol açar. Ancak dış depolama üzerindeki hiçbir dosya ve klasör silinmez.",
"Delete storage?" : "Depolama silinsin mi?",
"Click to recheck the configuration" : "Yapılandırmayı yeniden denetlemek için tıklayın",
diff --git a/apps/files_external/l10n/ur_PK.js b/apps/files_external/l10n/ur_PK.js
deleted file mode 100644
index 34d519fc69b..00000000000
--- a/apps/files_external/l10n/ur_PK.js
+++ /dev/null
@@ -1,14 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "Personal" : "شخصی",
- "Username" : "یوزر نیم",
- "Password" : "پاسورڈ",
- "Save" : "حفظ",
- "URL" : "یو ار ایل",
- "Location" : "مقام",
- "Share" : "تقسیم",
- "Name" : "اسم",
- "Delete" : "حذف کریں"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/ur_PK.json b/apps/files_external/l10n/ur_PK.json
deleted file mode 100644
index 5a51e9c5a31..00000000000
--- a/apps/files_external/l10n/ur_PK.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{ "translations": {
- "Personal" : "شخصی",
- "Username" : "یوزر نیم",
- "Password" : "پاسورڈ",
- "Save" : "حفظ",
- "URL" : "یو ار ایل",
- "Location" : "مقام",
- "Share" : "تقسیم",
- "Name" : "اسم",
- "Delete" : "حذف کریں"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_external/l10n/vi.js b/apps/files_external/l10n/vi.js
deleted file mode 100644
index 0e99f70c3a4..00000000000
--- a/apps/files_external/l10n/vi.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "files_external",
- {
- "External storage" : "Lưu trữ ngoài",
- "Personal" : "Cá nhân",
- "Grant access" : "Cấp quyền truy cập",
- "Saved" : "Đã lưu",
- "Username" : "Tên đăng nhập",
- "Password" : "Mật khẩu",
- "Save" : "Lưu",
- "None" : "Không gì cả",
- "Port" : "Cổng",
- "Region" : "Vùng/miền",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Host" : "Máy chủ",
- "Location" : "Vị trí",
- "ownCloud" : "ownCloud",
- "Share" : "Chia sẻ",
- "Name" : "Tên",
- "External Storage" : "Lưu trữ ngoài",
- "Folder name" : "Tên thư mục",
- "Configuration" : "Cấu hình",
- "Add storage" : "Thêm bộ nhớ",
- "Delete" : "Xóa"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/vi.json b/apps/files_external/l10n/vi.json
deleted file mode 100644
index 90e2a0d97c3..00000000000
--- a/apps/files_external/l10n/vi.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "External storage" : "Lưu trữ ngoài",
- "Personal" : "Cá nhân",
- "Grant access" : "Cấp quyền truy cập",
- "Saved" : "Đã lưu",
- "Username" : "Tên đăng nhập",
- "Password" : "Mật khẩu",
- "Save" : "Lưu",
- "None" : "Không gì cả",
- "Port" : "Cổng",
- "Region" : "Vùng/miền",
- "WebDAV" : "WebDAV",
- "URL" : "URL",
- "Host" : "Máy chủ",
- "Location" : "Vị trí",
- "ownCloud" : "ownCloud",
- "Share" : "Chia sẻ",
- "Name" : "Tên",
- "External Storage" : "Lưu trữ ngoài",
- "Folder name" : "Tên thư mục",
- "Configuration" : "Cấu hình",
- "Add storage" : "Thêm bộ nhớ",
- "Delete" : "Xóa"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_external/lib/AppInfo/Application.php b/apps/files_external/lib/AppInfo/Application.php
index 761fc97b7aa..5dae81d558c 100644
--- a/apps/files_external/lib/AppInfo/Application.php
+++ b/apps/files_external/lib/AppInfo/Application.php
@@ -9,6 +9,7 @@ namespace OCA\Files_External\AppInfo;
use OCA\Files\Event\LoadAdditionalScriptsEvent;
use OCA\Files_External\Config\ConfigAdapter;
use OCA\Files_External\Config\UserPlaceholderHandler;
+use OCA\Files_External\ConfigLexicon;
use OCA\Files_External\Lib\Auth\AmazonS3\AccessKey;
use OCA\Files_External\Lib\Auth\Builtin;
use OCA\Files_External\Lib\Auth\NullMechanism;
@@ -73,6 +74,7 @@ class Application extends App implements IBackendProvider, IAuthMechanismProvide
$context->registerEventListener(UserDeletedEvent::class, UserDeletedListener::class);
$context->registerEventListener(GroupDeletedEvent::class, GroupDeletedListener::class);
$context->registerEventListener(LoadAdditionalScriptsEvent::class, LoadAdditionalListener::class);
+ $context->registerConfigLexicon(ConfigLexicon::class);
}
public function boot(IBootContext $context): void {
diff --git a/apps/files_external/lib/Command/Backends.php b/apps/files_external/lib/Command/Backends.php
index c2d844dc781..399bdadcacf 100644
--- a/apps/files_external/lib/Command/Backends.php
+++ b/apps/files_external/lib/Command/Backends.php
@@ -94,7 +94,7 @@ class Backends extends Base {
*/
private function formatConfiguration(array $parameters): array {
$configuration = array_filter($parameters, function (DefinitionParameter $parameter) {
- return $parameter->getType() !== DefinitionParameter::VALUE_HIDDEN;
+ return $parameter->isFlagSet(DefinitionParameter::FLAG_HIDDEN);
});
return array_map(function (DefinitionParameter $parameter) {
return $parameter->getTypeName();
diff --git a/apps/files_external/lib/Command/Dependencies.php b/apps/files_external/lib/Command/Dependencies.php
new file mode 100644
index 00000000000..1bb57778129
--- /dev/null
+++ b/apps/files_external/lib/Command/Dependencies.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCA\Files_External\Command;
+
+use OC\Core\Command\Base;
+use OCA\Files_External\Service\BackendService;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Dependencies extends Base {
+ public function __construct(
+ private readonly BackendService $backendService,
+ ) {
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ $this
+ ->setName('files_external:dependencies')
+ ->setDescription('Show information about the backend dependencies');
+ parent::configure();
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output): int {
+ $storageBackends = $this->backendService->getBackends();
+
+ $anyMissing = false;
+
+ foreach ($storageBackends as $backend) {
+ if ($backend->getDeprecateTo() !== null) {
+ continue;
+ }
+ $missingDependencies = $backend->checkDependencies();
+ if ($missingDependencies) {
+ $anyMissing = true;
+ $output->writeln($backend->getText() . ':');
+ foreach ($missingDependencies as $missingDependency) {
+ if ($missingDependency->getMessage()) {
+ $output->writeln(" - <comment>{$missingDependency->getDependency()}</comment>: {$missingDependency->getMessage()}");
+ } else {
+ $output->writeln(" - <comment>{$missingDependency->getDependency()}</comment>");
+ }
+ }
+ }
+ }
+
+ if (!$anyMissing) {
+ $output->writeln('<info>All dependencies are met</info>');
+ }
+
+ return self::SUCCESS;
+ }
+}
diff --git a/apps/files_external/lib/Command/Scan.php b/apps/files_external/lib/Command/Scan.php
index bd54415df55..75d98878baa 100644
--- a/apps/files_external/lib/Command/Scan.php
+++ b/apps/files_external/lib/Command/Scan.php
@@ -11,6 +11,7 @@ namespace OCA\Files_External\Command;
use OC\Files\Cache\Scanner;
use OCA\Files_External\Service\GlobalStoragesService;
use OCP\IUserManager;
+use OCP\Lock\LockedException;
use Symfony\Component\Console\Helper\Table;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
@@ -53,6 +54,11 @@ class Scan extends StorageAuthBase {
InputOption::VALUE_OPTIONAL,
'The path in the storage to scan',
''
+ )->addOption(
+ 'unscanned',
+ '',
+ InputOption::VALUE_NONE,
+ 'only scan files which are marked as not fully scanned'
);
parent::configure();
}
@@ -82,7 +88,27 @@ class Scan extends StorageAuthBase {
$this->abortIfInterrupted();
});
- $scanner->scan($path);
+ try {
+ if ($input->getOption('unscanned')) {
+ if ($path !== '') {
+ $output->writeln('<error>--unscanned is mutually exclusive with --path</error>');
+ return 1;
+ }
+ $scanner->backgroundScan();
+ } else {
+ $scanner->scan($path);
+ }
+ } catch (LockedException $e) {
+ if (is_string($e->getReadablePath()) && str_starts_with($e->getReadablePath(), 'scanner::')) {
+ if ($e->getReadablePath() === 'scanner::') {
+ $output->writeln('<error>Another process is already scanning this storage</error>');
+ } else {
+ $output->writeln('<error>Another process is already scanning \'' . substr($e->getReadablePath(), strlen('scanner::')) . '\' in this storage</error>');
+ }
+ } else {
+ throw $e;
+ }
+ }
$this->presentStats($output);
diff --git a/apps/files_external/lib/ConfigLexicon.php b/apps/files_external/lib/ConfigLexicon.php
new file mode 100644
index 00000000000..e162efc92cf
--- /dev/null
+++ b/apps/files_external/lib/ConfigLexicon.php
@@ -0,0 +1,41 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_External;
+
+use NCU\Config\Lexicon\ConfigLexiconEntry;
+use NCU\Config\Lexicon\ConfigLexiconStrictness;
+use NCU\Config\Lexicon\IConfigLexicon;
+use NCU\Config\ValueType;
+
+/**
+ * Config Lexicon for files_sharing.
+ *
+ * Please Add & Manage your Config Keys in that file and keep the Lexicon up to date!
+ *
+ * {@see IConfigLexicon}
+ */
+class ConfigLexicon implements IConfigLexicon {
+ public const ALLOW_USER_MOUNTING = 'allow_user_mounting';
+ public const USER_MOUNTING_BACKENDS = 'user_mounting_backends';
+
+ public function getStrictness(): ConfigLexiconStrictness {
+ return ConfigLexiconStrictness::NOTICE;
+ }
+
+ public function getAppConfigs(): array {
+ return [
+ new ConfigLexiconEntry(self::ALLOW_USER_MOUNTING, ValueType::BOOL, false, 'allow users to mount their own external filesystems', true),
+ new ConfigLexiconEntry(self::USER_MOUNTING_BACKENDS, ValueType::STRING, '', 'list of mounting backends available for users', true),
+ ];
+ }
+
+ public function getUserConfigs(): array {
+ return [];
+ }
+}
diff --git a/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php b/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php
index b215201b4f4..688e04c4210 100644
--- a/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php
+++ b/apps/files_external/lib/Lib/Auth/OAuth1/OAuth1.php
@@ -21,14 +21,17 @@ class OAuth1 extends AuthMechanism {
->setText($l->t('OAuth1'))
->addParameters([
(new DefinitionParameter('configured', 'configured'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_TEXT)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
new DefinitionParameter('app_key', $l->t('App key')),
(new DefinitionParameter('app_secret', $l->t('App secret')))
->setType(DefinitionParameter::VALUE_PASSWORD),
(new DefinitionParameter('token', 'token'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
(new DefinitionParameter('token_secret', 'token_secret'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
])
->addCustomJs('oauth1')
;
diff --git a/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php b/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php
index 6b41fef90d5..b6c1e1d9557 100644
--- a/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php
+++ b/apps/files_external/lib/Lib/Auth/OAuth2/OAuth2.php
@@ -21,12 +21,14 @@ class OAuth2 extends AuthMechanism {
->setText($l->t('OAuth2'))
->addParameters([
(new DefinitionParameter('configured', 'configured'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_TEXT)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
new DefinitionParameter('client_id', $l->t('Client ID')),
(new DefinitionParameter('client_secret', $l->t('Client secret')))
->setType(DefinitionParameter::VALUE_PASSWORD),
(new DefinitionParameter('token', 'token'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
])
->addCustomJs('oauth2')
;
diff --git a/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php b/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php
index e3453a477d4..57df6316361 100644
--- a/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php
+++ b/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php
@@ -43,7 +43,9 @@ class LoginCredentials extends AuthMechanism {
->setText($l->t('Log-in credentials, save in database'))
->addParameters([
(new DefinitionParameter('password', $l->t('Password')))
- ->setType(DefinitionParameter::VALUE_PASSWORD),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN)
+ ->setFlag(DefinitionParameter::FLAG_OPTIONAL),
]);
$eventDispatcher->addServiceListener(UserLoggedInEvent::class, StorePasswordListener::class);
diff --git a/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php b/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php
index 6b7a51a8828..8af82ab228c 100644
--- a/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php
+++ b/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php
@@ -32,7 +32,9 @@ class SessionCredentials extends AuthMechanism {
->setText($l->t('Log-in credentials, save in session'))
->addParameters([
(new DefinitionParameter('password', $l->t('Password')))
- ->setType(DefinitionParameter::VALUE_PASSWORD),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN)
+ ->setFlag(DefinitionParameter::FLAG_OPTIONAL),
]);
}
diff --git a/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php b/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php
index 2371ce0a219..87072299d6d 100644
--- a/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php
+++ b/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php
@@ -31,7 +31,8 @@ class RSA extends AuthMechanism {
new DefinitionParameter('user', $l->t('Login')),
new DefinitionParameter('public_key', $l->t('Public key')),
(new DefinitionParameter('private_key', 'private_key'))
- ->setType(DefinitionParameter::VALUE_HIDDEN),
+ ->setType(DefinitionParameter::VALUE_PASSWORD)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
])
->addCustomJs('public_key')
;
diff --git a/apps/files_external/lib/Lib/Backend/LegacyBackend.php b/apps/files_external/lib/Lib/Backend/LegacyBackend.php
index 11396913fbd..a74412e8373 100644
--- a/apps/files_external/lib/Lib/Backend/LegacyBackend.php
+++ b/apps/files_external/lib/Lib/Backend/LegacyBackend.php
@@ -52,10 +52,6 @@ class LegacyBackend extends Backend {
$type = DefinitionParameter::VALUE_PASSWORD;
$placeholder = substr($placeholder, 1);
break;
- case '#':
- $type = DefinitionParameter::VALUE_HIDDEN;
- $placeholder = substr($placeholder, 1);
- break;
}
$this->addParameter((new DefinitionParameter($name, $placeholder))
->setType($type)
diff --git a/apps/files_external/lib/Lib/Backend/SMB.php b/apps/files_external/lib/Lib/Backend/SMB.php
index c4a68fea6e1..3549f69cbe3 100644
--- a/apps/files_external/lib/Lib/Backend/SMB.php
+++ b/apps/files_external/lib/Lib/Backend/SMB.php
@@ -10,19 +10,20 @@ namespace OCA\Files_External\Lib\Backend;
use Icewind\SMB\BasicAuth;
use Icewind\SMB\KerberosApacheAuth;
use Icewind\SMB\KerberosAuth;
+use Icewind\SMB\Native\NativeServer;
+use Icewind\SMB\Wrapped\Server;
use OCA\Files_External\Lib\Auth\AuthMechanism;
use OCA\Files_External\Lib\Auth\Password\Password;
use OCA\Files_External\Lib\Auth\SMB\KerberosApacheAuth as KerberosApacheAuthMechanism;
use OCA\Files_External\Lib\DefinitionParameter;
use OCA\Files_External\Lib\InsufficientDataForMeaningfulAnswerException;
-use OCA\Files_External\Lib\LegacyDependencyCheckPolyfill;
+use OCA\Files_External\Lib\MissingDependency;
+use OCA\Files_External\Lib\Storage\SystemBridge;
use OCA\Files_External\Lib\StorageConfig;
use OCP\IL10N;
use OCP\IUser;
class SMB extends Backend {
- use LegacyDependencyCheckPolyfill;
-
public function __construct(IL10N $l, Password $legacyAuth) {
$this
->setIdentifier('smb')
@@ -49,8 +50,9 @@ class SMB extends Backend {
->setFlag(DefinitionParameter::FLAG_OPTIONAL)
->setTooltip($l->t("Check the ACL's of each file or folder inside a directory to filter out items where the account has no read permissions, comes with a performance penalty")),
(new DefinitionParameter('timeout', $l->t('Timeout')))
- ->setType(DefinitionParameter::VALUE_HIDDEN)
- ->setFlag(DefinitionParameter::FLAG_OPTIONAL),
+ ->setType(DefinitionParameter::VALUE_TEXT)
+ ->setFlag(DefinitionParameter::FLAG_OPTIONAL)
+ ->setFlag(DefinitionParameter::FLAG_HIDDEN),
])
->addAuthScheme(AuthMechanism::SCHEME_PASSWORD)
->addAuthScheme(AuthMechanism::SCHEME_SMB)
@@ -121,4 +123,20 @@ class SMB extends Backend {
$storage->setBackendOption('auth', $smbAuth);
}
+
+ public function checkDependencies() {
+ $system = \OCP\Server::get(SystemBridge::class);
+ if (NativeServer::available($system)) {
+ return [];
+ } elseif (Server::available($system)) {
+ $missing = new MissingDependency('php-smbclient');
+ $missing->setOptional(true);
+ $missing->setMessage('The php-smbclient library provides improved compatibility and performance for SMB storages.');
+ return [$missing];
+ } else {
+ $missing = new MissingDependency('php-smbclient');
+ $missing->setMessage('Either the php-smbclient library (preferred) or the smbclient binary is required for SMB storages.');
+ return [$missing, new MissingDependency('smbclient')];
+ }
+ }
}
diff --git a/apps/files_external/lib/Lib/DefinitionParameter.php b/apps/files_external/lib/Lib/DefinitionParameter.php
index 1e611edd1ed..3c668c6b83d 100644
--- a/apps/files_external/lib/Lib/DefinitionParameter.php
+++ b/apps/files_external/lib/Lib/DefinitionParameter.php
@@ -18,12 +18,12 @@ class DefinitionParameter implements \JsonSerializable {
public const VALUE_TEXT = 0;
public const VALUE_BOOLEAN = 1;
public const VALUE_PASSWORD = 2;
- public const VALUE_HIDDEN = 3;
/** Flag constants */
public const FLAG_NONE = 0;
public const FLAG_OPTIONAL = 1;
public const FLAG_USER_PROVIDED = 2;
+ public const FLAG_HIDDEN = 4;
/** @var string human-readable parameter tooltip */
private string $tooltip = '';
diff --git a/apps/files_external/lib/Lib/MissingDependency.php b/apps/files_external/lib/Lib/MissingDependency.php
index 5c2c6880f23..da4cbb1de46 100644
--- a/apps/files_external/lib/Lib/MissingDependency.php
+++ b/apps/files_external/lib/Lib/MissingDependency.php
@@ -12,13 +12,14 @@ namespace OCA\Files_External\Lib;
class MissingDependency {
/** @var string|null Custom message */
- private $message = null;
+ private ?string $message = null;
+ private bool $optional = false;
/**
* @param string $dependency
*/
public function __construct(
- private $dependency,
+ private readonly string $dependency,
) {
}
@@ -38,4 +39,12 @@ class MissingDependency {
$this->message = $message;
return $this;
}
+
+ public function isOptional(): bool {
+ return $this->optional;
+ }
+
+ public function setOptional(bool $optional): void {
+ $this->optional = $optional;
+ }
}
diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php
index fc1f9b9ecd1..fe5f3adb25e 100644
--- a/apps/files_external/lib/Lib/Storage/SMB.php
+++ b/apps/files_external/lib/Lib/Storage/SMB.php
@@ -198,7 +198,7 @@ class SMB extends Common implements INotifyStorage {
try {
$acls = $file->getAcls();
} catch (Exception $e) {
- $this->logger->error('Error while getting file acls', ['exception' => $e]);
+ $this->logger->warning('Error while getting file acls', ['exception' => $e]);
return null;
}
foreach ($acls as $user => $acl) {
@@ -426,6 +426,7 @@ class SMB extends Common implements INotifyStorage {
case 'r':
case 'rb':
if (!$this->file_exists($path)) {
+ $this->logger->warning('Failed to open ' . $path . ' on ' . $this->getId() . ', file doesn\'t exist.');
return false;
}
return $this->share->read($fullPath);
@@ -453,11 +454,13 @@ class SMB extends Common implements INotifyStorage {
}
if ($this->file_exists($path)) {
if (!$this->isUpdatable($path)) {
+ $this->logger->warning('Failed to open ' . $path . ' on ' . $this->getId() . ', file not updatable.');
return false;
}
$tmpFile = $this->getCachedFile($path);
} else {
if (!$this->isCreatable(dirname($path))) {
+ $this->logger->warning('Failed to open ' . $path . ' on ' . $this->getId() . ', parent directory not writable.');
return false;
}
$tmpFile = \OCP\Server::get(ITempManager::class)->getTemporaryFile($ext);
@@ -472,13 +475,16 @@ class SMB extends Common implements INotifyStorage {
}
return false;
} catch (NotFoundException $e) {
+ $this->logger->warning('Failed to open ' . $path . ' on ' . $this->getId() . ', not found.', ['exception' => $e]);
return false;
} catch (ForbiddenException $e) {
+ $this->logger->warning('Failed to open ' . $path . ' on ' . $this->getId() . ', forbidden.', ['exception' => $e]);
return false;
} catch (OutOfSpaceException $e) {
+ $this->logger->warning('Failed to open ' . $path . ' on ' . $this->getId() . ', out of space.', ['exception' => $e]);
throw new EntityTooLargeException('not enough available space to create file', 0, $e);
} catch (ConnectException $e) {
- $this->logger->error('Error while opening file', ['exception' => $e]);
+ $this->logger->error('Error while opening file ' . $path . ' on ' . $this->getId(), ['exception' => $e]);
throw new StorageNotAvailableException($e->getMessage(), (int)$e->getCode(), $e);
}
}
diff --git a/apps/files_external/lib/Lib/Storage/Swift.php b/apps/files_external/lib/Lib/Storage/Swift.php
index a71331766d4..e80570f14ba 100644
--- a/apps/files_external/lib/Lib/Storage/Swift.php
+++ b/apps/files_external/lib/Lib/Storage/Swift.php
@@ -288,7 +288,6 @@ class Swift extends Common {
public function stat(string $path): array|false {
$path = $this->normalizePath($path);
-
if ($path === '.') {
$path = '';
} elseif ($this->is_dir($path)) {
@@ -308,22 +307,23 @@ class Swift extends Common {
return false;
}
- $dateTime = $object->lastModified ? \DateTime::createFromFormat(\DateTime::RFC1123, $object->lastModified) : false;
- $mtime = $dateTime ? $dateTime->getTimestamp() : null;
- $objectMetadata = $object->getMetadata();
- if (isset($objectMetadata['timestamp'])) {
- $mtime = $objectMetadata['timestamp'];
+ $mtime = null;
+ if (!empty($object->lastModified)) {
+ $dateTime = \DateTime::createFromFormat(\DateTime::RFC1123, $object->lastModified);
+ if ($dateTime !== false) {
+ $mtime = $dateTime->getTimestamp();
+ }
}
- if (!empty($mtime)) {
- $mtime = floor($mtime);
+ if (is_numeric($object->getMetadata()['timestamp'] ?? null)) {
+ $mtime = (float)$object->getMetadata()['timestamp'];
}
- $stat = [];
- $stat['size'] = (int)$object->contentLength;
- $stat['mtime'] = $mtime;
- $stat['atime'] = time();
- return $stat;
+ return [
+ 'size' => (int)$object->contentLength,
+ 'mtime' => isset($mtime) ? (int)floor($mtime) : null,
+ 'atime' => time(),
+ ];
}
public function filetype(string $path) {
diff --git a/apps/files_external/lib/Listener/LoadAdditionalListener.php b/apps/files_external/lib/Listener/LoadAdditionalListener.php
index 66d06675291..6ba917759c3 100644
--- a/apps/files_external/lib/Listener/LoadAdditionalListener.php
+++ b/apps/files_external/lib/Listener/LoadAdditionalListener.php
@@ -10,10 +10,11 @@ namespace OCA\Files_External\Listener;
use OCA\Files\Event\LoadAdditionalScriptsEvent;
use OCA\Files_External\AppInfo\Application;
+use OCA\Files_External\ConfigLexicon;
use OCP\AppFramework\Services\IInitialState;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
-use OCP\IConfig;
+use OCP\IAppConfig;
use OCP\Util;
/**
@@ -22,7 +23,7 @@ use OCP\Util;
class LoadAdditionalListener implements IEventListener {
public function __construct(
- private IConfig $config,
+ private readonly IAppConfig $appConfig,
private IInitialState $initialState,
) {
}
@@ -32,7 +33,7 @@ class LoadAdditionalListener implements IEventListener {
return;
}
- $allowUserMounting = $this->config->getAppValue('files_external', 'allow_user_mounting', 'no') === 'yes';
+ $allowUserMounting = $this->appConfig->getValueBool('files_external', ConfigLexicon::ALLOW_USER_MOUNTING);
$this->initialState->provideInitialState('allowUserMounting', $allowUserMounting);
Util::addInitScript(Application::APP_ID, 'init');
diff --git a/apps/files_external/lib/Service/BackendService.php b/apps/files_external/lib/Service/BackendService.php
index b452b27e175..586ce5330ad 100644
--- a/apps/files_external/lib/Service/BackendService.php
+++ b/apps/files_external/lib/Service/BackendService.php
@@ -7,14 +7,15 @@
namespace OCA\Files_External\Service;
use OCA\Files_External\Config\IConfigHandler;
+use OCA\Files_External\ConfigLexicon;
use OCA\Files_External\Lib\Auth\AuthMechanism;
use OCA\Files_External\Lib\Backend\Backend;
-
use OCA\Files_External\Lib\Config\IAuthMechanismProvider;
use OCA\Files_External\Lib\Config\IBackendProvider;
+use OCA\Files_External\Lib\MissingDependency;
use OCP\EventDispatcher\GenericEvent;
use OCP\EventDispatcher\IEventDispatcher;
-use OCP\IConfig;
+use OCP\IAppConfig;
use OCP\Server;
/**
@@ -56,19 +57,12 @@ class BackendService {
private $configHandlers = [];
- /**
- * @param IConfig $config
- */
public function __construct(
- protected IConfig $config,
+ protected IAppConfig $appConfig,
) {
// Load config values
- if ($this->config->getAppValue('files_external', 'allow_user_mounting', 'yes') !== 'yes') {
- $this->userMountingAllowed = false;
- }
- $this->userMountingBackends = explode(',',
- $this->config->getAppValue('files_external', 'user_mounting_backends', '')
- );
+ $this->userMountingAllowed = $appConfig->getValueBool('files_external', ConfigLexicon::ALLOW_USER_MOUNTING);
+ $this->userMountingBackends = explode(',', $appConfig->getValueString('files_external', ConfigLexicon::USER_MOUNTING_BACKENDS));
// if no backend is in the list an empty string is in the array and user mounting is disabled
if ($this->userMountingBackends === ['']) {
@@ -194,7 +188,8 @@ class BackendService {
*/
public function getAvailableBackends() {
return array_filter($this->getBackends(), function ($backend) {
- return !$backend->checkDependencies();
+ $missing = array_filter($backend->checkDependencies(), fn (MissingDependency $dependency) => !$dependency->isOptional());
+ return count($missing) === 0;
});
}
diff --git a/apps/files_external/src/settings.js b/apps/files_external/src/settings.js
index aa9b57786d9..033696c9d24 100644
--- a/apps/files_external/src/settings.js
+++ b/apps/files_external/src/settings.js
@@ -647,13 +647,13 @@ const MountConfigListView = function($el, options) {
MountConfigListView.ParameterFlags = {
OPTIONAL: 1,
USER_PROVIDED: 2,
+ HIDDEN: 4,
}
MountConfigListView.ParameterTypes = {
TEXT: 0,
BOOLEAN: 1,
PASSWORD: 2,
- HIDDEN: 3,
}
/**
@@ -1142,13 +1142,13 @@ MountConfigListView.prototype = _.extend({
let newElement
const trimmedPlaceholder = placeholder.value
- if (placeholder.type === MountConfigListView.ParameterTypes.PASSWORD) {
+ if (hasFlag(MountConfigListView.ParameterFlags.HIDDEN)) {
+ newElement = $('<input type="hidden" class="' + classes.join(' ') + '" data-parameter="' + parameter + '" />')
+ } else if (placeholder.type === MountConfigListView.ParameterTypes.PASSWORD) {
newElement = $('<input type="password" class="' + classes.join(' ') + '" data-parameter="' + parameter + '" placeholder="' + trimmedPlaceholder + '" />')
} else if (placeholder.type === MountConfigListView.ParameterTypes.BOOLEAN) {
const checkboxId = _.uniqueId('checkbox_')
newElement = $('<div><label><input type="checkbox" id="' + checkboxId + '" class="' + classes.join(' ') + '" data-parameter="' + parameter + '" />' + trimmedPlaceholder + '</label></div>')
- } else if (placeholder.type === MountConfigListView.ParameterTypes.HIDDEN) {
- newElement = $('<input type="hidden" class="' + classes.join(' ') + '" data-parameter="' + parameter + '" />')
} else {
newElement = $('<input type="text" class="' + classes.join(' ') + '" data-parameter="' + parameter + '" placeholder="' + trimmedPlaceholder + '" />')
}
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index d1a8f78076a..5aad7b018af 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -7,7 +7,6 @@
*/
use OCA\Files_External\Lib\Auth\AuthMechanism;
use OCA\Files_External\Lib\Backend\Backend;
-use OCA\Files_External\Lib\DefinitionParameter;
use OCA\Files_External\Service\BackendService;
/** @var array $_ */
@@ -42,63 +41,6 @@ foreach ($_['authMechanisms'] as $authMechanism) {
}
}
-function writeParameterInput($parameter, $options, $classes = []) {
- $value = '';
- if (isset($options[$parameter->getName()])) {
- $value = $options[$parameter->getName()];
- }
- $placeholder = $parameter->getText();
- $is_optional = $parameter->isFlagSet(DefinitionParameter::FLAG_OPTIONAL);
-
- switch ($parameter->getType()) {
- case DefinitionParameter::VALUE_PASSWORD: ?>
- <?php if ($is_optional) {
- $classes[] = 'optional';
- } ?>
- <input type="password"
- <?php if (!empty($classes)): ?> class="<?php p(implode(' ', $classes)); ?>"<?php endif; ?>
- data-parameter="<?php p($parameter->getName()); ?>"
- value="<?php p($value); ?>"
- placeholder="<?php p($placeholder); ?>"
- />
- <?php
- break;
- case DefinitionParameter::VALUE_BOOLEAN: ?>
- <?php $checkboxId = uniqid('checkbox_'); ?>
- <div>
- <label>
- <input type="checkbox"
- id="<?php p($checkboxId); ?>"
- <?php if (!empty($classes)): ?> class="checkbox <?php p(implode(' ', $classes)); ?>"<?php endif; ?>
- data-parameter="<?php p($parameter->getName()); ?>"
- <?php if ($value === true): ?> checked="checked"<?php endif; ?>
- />
- <?php p($placeholder); ?>
- </label>
- </div>
- <?php
- break;
- case DefinitionParameter::VALUE_HIDDEN: ?>
- <input type="hidden"
- <?php if (!empty($classes)): ?> class="<?php p(implode(' ', $classes)); ?>"<?php endif; ?>
- data-parameter="<?php p($parameter->getName()); ?>"
- value="<?php p($value); ?>"
- />
- <?php
- break;
- default: ?>
- <?php if ($is_optional) {
- $classes[] = 'optional';
- } ?>
- <input type="text"
- <?php if (!empty($classes)): ?> class="<?php p(implode(' ', $classes)); ?>"<?php endif; ?>
- data-parameter="<?php p($parameter->getName()); ?>"
- value="<?php p($value); ?>"
- placeholder="<?php p($placeholder); ?>"
- />
- <?php
- }
-}
?>
<div class="emptyfilelist emptycontent hidden">
diff --git a/apps/files_external/tests/Auth/AuthMechanismTest.php b/apps/files_external/tests/Auth/AuthMechanismTest.php
index 682d2e1326f..d6279ea4f1f 100644
--- a/apps/files_external/tests/Auth/AuthMechanismTest.php
+++ b/apps/files_external/tests/Auth/AuthMechanismTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,7 +15,7 @@ use OCA\Files_External\Lib\StorageConfig;
class AuthMechanismTest extends \Test\TestCase {
public function testJsonSerialization(): void {
$mechanism = $this->getMockBuilder(AuthMechanism::class)
- ->setMethods(['jsonSerializeDefinition'])
+ ->onlyMethods(['jsonSerializeDefinition'])
->getMock();
$mechanism->expects($this->once())
->method('jsonSerializeDefinition')
@@ -26,7 +28,7 @@ class AuthMechanismTest extends \Test\TestCase {
$this->assertEquals('scheme', $json['scheme']);
}
- public function validateStorageProvider() {
+ public static function validateStorageProvider(): array {
return [
[true, 'scheme', true],
[false, 'scheme', false],
@@ -38,9 +40,9 @@ class AuthMechanismTest extends \Test\TestCase {
/**
* @dataProvider validateStorageProvider
*/
- public function testValidateStorage($expectedSuccess, $scheme, $definitionSuccess): void {
+ public function testValidateStorage(bool $expectedSuccess, string $scheme, bool $definitionSuccess): void {
$mechanism = $this->getMockBuilder(AuthMechanism::class)
- ->setMethods(['validateStorageDefinition'])
+ ->onlyMethods(['validateStorageDefinition'])
->getMock();
$mechanism->expects($this->atMost(1))
->method('validateStorageDefinition')
@@ -48,16 +50,12 @@ class AuthMechanismTest extends \Test\TestCase {
$mechanism->setScheme($scheme);
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $backend = $this->createMock(Backend::class);
$backend->expects($this->once())
->method('getAuthSchemes')
->willReturn(['scheme' => true, 'foobar' => true]);
- $storageConfig = $this->getMockBuilder(StorageConfig::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $storageConfig = $this->createMock(StorageConfig::class);
$storageConfig->expects($this->once())
->method('getBackend')
->willReturn($backend);
diff --git a/apps/files_external/tests/Auth/Password/GlobalAuth.php b/apps/files_external/tests/Auth/Password/GlobalAuthTest.php
index 998db198b53..02f15cb76c4 100644
--- a/apps/files_external/tests/Auth/Password/GlobalAuth.php
+++ b/apps/files_external/tests/Auth/Password/GlobalAuthTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,26 +10,16 @@ namespace OCA\Files_External\Tests\Auth\Password;
use OCA\Files_External\Lib\Auth\Password\GlobalAuth;
use OCA\Files_External\Lib\InsufficientDataForMeaningfulAnswerException;
-use OCA\Files_external\Lib\StorageConfig;
+use OCA\Files_External\Lib\StorageConfig;
use OCP\IL10N;
use OCP\Security\ICredentialsManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class GlobalAuthTest extends TestCase {
- /**
- * @var IL10N|\PHPUnit\Framework\MockObject\MockObject
- */
- private $l10n;
-
- /**
- * @var ICredentialsManager|\PHPUnit\Framework\MockObject\MockObject
- */
- private $credentialsManager;
-
- /**
- * @var GlobalAuth
- */
- private $instance;
+ private IL10N&MockObject $l10n;
+ private ICredentialsManager&MockObject $credentialsManager;
+ private GlobalAuth $instance;
protected function setUp(): void {
parent::setUp();
@@ -37,7 +29,7 @@ class GlobalAuthTest extends TestCase {
}
private function getStorageConfig($type, $config = []) {
- /** @var \OCA\Files_External\Lib\StorageConfig|\PHPUnit\Framework\MockObject\MockObject $storageConfig */
+ /** @var \OCA\Files_External\Lib\StorageConfig&MockObject $storageConfig */
$storageConfig = $this->createMock(StorageConfig::class);
$storageConfig->expects($this->any())
->method('getType')
diff --git a/apps/files_external/tests/Backend/BackendTest.php b/apps/files_external/tests/Backend/BackendTest.php
index 26aa5ebe6af..1e158654595 100644
--- a/apps/files_external/tests/Backend/BackendTest.php
+++ b/apps/files_external/tests/Backend/BackendTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,7 +14,7 @@ use OCA\Files_External\Lib\StorageConfig;
class BackendTest extends \Test\TestCase {
public function testJsonSerialization(): void {
$backend = $this->getMockBuilder(Backend::class)
- ->setMethods(['jsonSerializeDefinition'])
+ ->onlyMethods(['jsonSerializeDefinition'])
->getMock();
$backend->expects($this->once())
->method('jsonSerializeDefinition')
@@ -32,7 +34,7 @@ class BackendTest extends \Test\TestCase {
$this->assertContains('barauth', array_keys($json['authSchemes']));
}
- public function validateStorageProvider() {
+ public static function validateStorageProvider(): array {
return [
[true, true],
[false, false],
@@ -42,9 +44,9 @@ class BackendTest extends \Test\TestCase {
/**
* @dataProvider validateStorageProvider
*/
- public function testValidateStorage($expectedSuccess, $definitionSuccess): void {
+ public function testValidateStorage(bool $expectedSuccess, bool $definitionSuccess): void {
$backend = $this->getMockBuilder(Backend::class)
- ->setMethods(['validateStorageDefinition'])
+ ->onlyMethods(['validateStorageDefinition'])
->getMock();
$backend->expects($this->atMost(1))
->method('validateStorageDefinition')
diff --git a/apps/files_external/tests/Backend/LegacyBackendTest.php b/apps/files_external/tests/Backend/LegacyBackendTest.php
index 303700c6611..147965e2499 100644
--- a/apps/files_external/tests/Backend/LegacyBackendTest.php
+++ b/apps/files_external/tests/Backend/LegacyBackendTest.php
@@ -6,6 +6,7 @@
*/
namespace OCA\Files_External\Tests\Backend;
+use OCA\Files_External\Lib\Auth\Builtin;
use OCA\Files_External\Lib\Backend\LegacyBackend;
use OCA\Files_External\Lib\DefinitionParameter;
use OCA\Files_External\Lib\MissingDependency;
@@ -15,24 +16,21 @@ class LegacyBackendTest extends \Test\TestCase {
/**
* @return MissingDependency[]
*/
- public static function checkDependencies() {
+ public static function checkDependencies(): array {
return [
(new MissingDependency('abc'))->setMessage('foobar')
];
}
public function testConstructor(): void {
- $auth = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\Builtin')
- ->disableOriginalConstructor()
- ->getMock();
+ $auth = $this->createMock(Builtin::class);
- $class = '\OCA\Files_External\Tests\Backend\LegacyBackendTest';
+ $class = self::class;
$definition = [
'configuration' => [
'textfield' => 'Text field',
'passwordfield' => '*Password field',
'checkbox' => '!Checkbox',
- 'hiddenfield' => '#Hidden field',
'optionaltext' => '&Optional text field',
'optionalpassword' => '&*Optional password field',
],
@@ -44,7 +42,7 @@ class LegacyBackendTest extends \Test\TestCase {
$backend = new LegacyBackend($class, $definition, $auth);
- $this->assertEquals('\OCA\Files_External\Tests\Backend\LegacyBackendTest', $backend->getStorageClass());
+ $this->assertEquals(self::class, $backend->getStorageClass());
$this->assertEquals('Backend text', $backend->getText());
$this->assertEquals(123, $backend->getPriority());
$this->assertContains('foo/bar.js', $backend->getCustomJs());
@@ -66,9 +64,6 @@ class LegacyBackendTest extends \Test\TestCase {
$this->assertEquals('Checkbox', $parameters['checkbox']->getText());
$this->assertEquals(DefinitionParameter::VALUE_BOOLEAN, $parameters['checkbox']->getType());
$this->assertEquals(DefinitionParameter::FLAG_NONE, $parameters['checkbox']->getFlags());
- $this->assertEquals('Hidden field', $parameters['hiddenfield']->getText());
- $this->assertEquals(DefinitionParameter::VALUE_HIDDEN, $parameters['hiddenfield']->getType());
- $this->assertEquals(DefinitionParameter::FLAG_NONE, $parameters['hiddenfield']->getFlags());
$this->assertEquals('Optional text field', $parameters['optionaltext']->getText());
$this->assertEquals(DefinitionParameter::VALUE_TEXT, $parameters['optionaltext']->getType());
$this->assertEquals(DefinitionParameter::FLAG_OPTIONAL, $parameters['optionaltext']->getFlags());
@@ -78,11 +73,9 @@ class LegacyBackendTest extends \Test\TestCase {
}
public function testNoDependencies(): void {
- $auth = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\Builtin')
- ->disableOriginalConstructor()
- ->getMock();
+ $auth = $this->createMock(Builtin::class);
- $class = '\OCA\Files_External\Tests\Backend\LegacyBackendTest';
+ $class = self::class;
$definition = [
'configuration' => [
],
diff --git a/apps/files_external/tests/Command/ApplicableTest.php b/apps/files_external/tests/Command/ApplicableTest.php
index 8854e4ad485..59db18a42de 100644
--- a/apps/files_external/tests/Command/ApplicableTest.php
+++ b/apps/files_external/tests/Command/ApplicableTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -9,12 +11,13 @@ namespace OCA\Files_External\Tests\Command;
use OCA\Files_External\Command\Applicable;
use OCP\IGroupManager;
use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
-class ApplicableTest extends CommandTest {
- private function getInstance($storageService) {
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject $userManager */
+class ApplicableTest extends CommandTestCase {
+ private function getInstance($storageService): Applicable {
+ /** @var IUserManager&MockObject $userManager */
$userManager = $this->createMock(IUserManager::class);
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject $groupManager */
+ /** @var IGroupManager&MockObject $groupManager */
$groupManager = $this->createMock(IGroupManager::class);
$userManager->expects($this->any())
diff --git a/apps/files_external/tests/Command/CommandTest.php b/apps/files_external/tests/Command/CommandTestCase.php
index ed991fd784d..47985b687cd 100644
--- a/apps/files_external/tests/Command/CommandTest.php
+++ b/apps/files_external/tests/Command/CommandTestCase.php
@@ -9,21 +9,20 @@ namespace OCA\Files_External\Tests\Command;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\NotFoundException;
use OCA\Files_External\Service\GlobalStoragesService;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Input\Input;
use Symfony\Component\Console\Output\BufferedOutput;
use Test\TestCase;
-abstract class CommandTest extends TestCase {
+abstract class CommandTestCase extends TestCase {
/**
* @param StorageConfig[] $mounts
- * @return GlobalStoragesService|\PHPUnit\Framework\MockObject\MockObject
+ * @return GlobalStoragesService&MockObject
*/
protected function getGlobalStorageService(array $mounts = []) {
- $mock = $this->getMockBuilder('OCA\Files_External\Service\GlobalStoragesService')
- ->disableOriginalConstructor()
- ->getMock();
+ $mock = $this->createMock(GlobalStoragesService::class);
$this->bindMounts($mock, $mounts);
@@ -31,10 +30,10 @@ abstract class CommandTest extends TestCase {
}
/**
- * @param \PHPUnit\Framework\MockObject\MockObject $mock
+ * @param MockObject $mock
* @param StorageConfig[] $mounts
*/
- protected function bindMounts(\PHPUnit\Framework\MockObject\MockObject $mock, array $mounts) {
+ protected function bindMounts(MockObject $mock, array $mounts) {
$mock->expects($this->any())
->method('getStorage')
->willReturnCallback(function ($id) use ($mounts) {
@@ -70,7 +69,7 @@ abstract class CommandTest extends TestCase {
return $mount;
}
- protected function getInput(Command $command, array $arguments = [], array $options = []) {
+ protected function getInput(Command $command, array $arguments = [], array $options = []): ArrayInput {
$input = new ArrayInput([]);
$input->bind($command->getDefinition());
foreach ($arguments as $key => $value) {
@@ -82,7 +81,7 @@ abstract class CommandTest extends TestCase {
return $input;
}
- protected function executeCommand(Command $command, Input $input) {
+ protected function executeCommand(Command $command, Input $input): string {
$output = new BufferedOutput();
$this->invokePrivate($command, 'execute', [$input, $output]);
return $output->fetch();
diff --git a/apps/files_external/tests/Command/ListCommandTest.php b/apps/files_external/tests/Command/ListCommandTest.php
index bd4430b4116..5b84e500e3f 100644
--- a/apps/files_external/tests/Command/ListCommandTest.php
+++ b/apps/files_external/tests/Command/ListCommandTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,24 +18,20 @@ use OCA\Files_External\Service\GlobalStoragesService;
use OCA\Files_External\Service\UserStoragesService;
use OCP\Authentication\LoginCredentials\IStore;
use OCP\IL10N;
-use OCP\ISession;
use OCP\IUserManager;
use OCP\IUserSession;
-use OCP\Security\ICrypto;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Output\BufferedOutput;
-class ListCommandTest extends CommandTest {
- /**
- * @return ListCommand|\PHPUnit\Framework\MockObject\MockObject
- */
- private function getInstance() {
- /** @var GlobalStoragesService|\PHPUnit\Framework\MockObject\MockObject $globalService */
+class ListCommandTest extends CommandTestCase {
+ private function getInstance(): ListCommand {
+ /** @var GlobalStoragesService&MockObject $globalService */
$globalService = $this->createMock(GlobalStoragesService::class);
- /** @var UserStoragesService|\PHPUnit\Framework\MockObject\MockObject $userService */
+ /** @var UserStoragesService&MockObject $userService */
$userService = $this->createMock(UserStoragesService::class);
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject $userManager */
+ /** @var IUserManager&MockObject $userManager */
$userManager = $this->createMock(IUserManager::class);
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject $userSession */
+ /** @var IUserSession&MockObject $userSession */
$userSession = $this->createMock(IUserSession::class);
return new ListCommand($globalService, $userService, $userSession, $userManager);
@@ -41,8 +39,6 @@ class ListCommandTest extends CommandTest {
public function testListAuthIdentifier(): void {
$l10n = $this->createMock(IL10N::class);
- $session = $this->createMock(ISession::class);
- $crypto = $this->createMock(ICrypto::class);
$instance = $this->getInstance();
$mount1 = new StorageConfig();
$mount1->setAuthMechanism(new Password($l10n));
diff --git a/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php b/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php
index b3c7db9306f..b40e9461287 100644
--- a/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php
+++ b/apps/files_external/tests/Config/UserPlaceholderHandlerTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\files_external\tests\Config;
+namespace OCA\Files_External\Tests\Config;
use OCA\Files_External\Config\UserPlaceholderHandler;
use OCP\IRequest;
@@ -12,25 +14,15 @@ use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
class UserPlaceholderHandlerTest extends \Test\TestCase {
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject */
- protected $user;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $session;
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var UserPlaceholderHandler */
- protected $handler;
+ protected IUser&MockObject $user;
+ protected IUserSession&MockObject $session;
+ protected IManager&MockObject $shareManager;
+ protected IRequest&MockObject $request;
+ protected IUserManager&MockObject $userManager;
+ protected UserPlaceholderHandler $handler;
protected function setUp(): void {
parent::setUp();
@@ -47,13 +39,13 @@ class UserPlaceholderHandlerTest extends \Test\TestCase {
$this->handler = new UserPlaceholderHandler($this->session, $this->shareManager, $this->request, $this->userManager);
}
- protected function setUser() {
+ protected function setUser(): void {
$this->session->expects($this->any())
->method('getUser')
->willReturn($this->user);
}
- public function optionProvider() {
+ public static function optionProvider(): array {
return [
['/foo/bar/$user/foobar', '/foo/bar/alice/foobar'],
[['/foo/bar/$user/foobar'], ['/foo/bar/alice/foobar']],
@@ -64,7 +56,7 @@ class UserPlaceholderHandlerTest extends \Test\TestCase {
/**
* @dataProvider optionProvider
*/
- public function testHandle($option, $expected): void {
+ public function testHandle(string|array $option, string|array $expected): void {
$this->setUser();
$this->assertSame($expected, $this->handler->handle($option));
}
@@ -72,7 +64,7 @@ class UserPlaceholderHandlerTest extends \Test\TestCase {
/**
* @dataProvider optionProvider
*/
- public function testHandleNoUser($option): void {
+ public function testHandleNoUser(string|array $option): void {
$this->shareManager->expects($this->once())
->method('getShareByToken')
->willThrowException(new ShareNotFound());
diff --git a/apps/files_external/tests/Controller/AjaxControllerTest.php b/apps/files_external/tests/Controller/AjaxControllerTest.php
index 005e6e9714c..b1ea7a2b1b1 100644
--- a/apps/files_external/tests/Controller/AjaxControllerTest.php
+++ b/apps/files_external/tests/Controller/AjaxControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -14,32 +16,22 @@ use OCP\IL10N;
use OCP\IRequest;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AjaxControllerTest extends TestCase {
- /** @var IRequest */
- private $request;
- /** @var RSA */
- private $rsa;
- /** @var GlobalAuth */
- private $globalAuth;
- /** @var IUserSession */
- private $userSession;
- /** @var IGroupManager */
- private $groupManager;
- /** @var AjaxController */
- private $ajaxController;
- /** @var IL10N */
- private $l10n;
+ private IRequest&MockObject $request;
+ private RSA&MockObject $rsa;
+ private GlobalAuth&MockObject $globalAuth;
+ private IUserSession&MockObject $userSession;
+ private IGroupManager&MockObject $groupManager;
+ private IL10N&MockObject $l10n;
+ private AjaxController $ajaxController;
protected function setUp(): void {
$this->request = $this->createMock(IRequest::class);
- $this->rsa = $this->getMockBuilder('\\OCA\\Files_External\\Lib\\Auth\\PublicKey\\RSA')
- ->disableOriginalConstructor()
- ->getMock();
- $this->globalAuth = $this->getMockBuilder('\\OCA\\Files_External\\Lib\\Auth\\Password\GlobalAuth')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->rsa = $this->createMock(RSA::class);
+ $this->globalAuth = $this->createMock(GlobalAuth::class);
$this->userSession = $this->createMock(IUserSession::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->l10n = $this->createMock(IL10N::class);
diff --git a/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php b/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php
index 4c318951d1b..2edc3ea3efc 100644
--- a/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php
+++ b/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php
@@ -9,6 +9,7 @@ namespace OCA\Files_External\Tests\Controller;
use OC\User\User;
use OCA\Files_External\Controller\GlobalStoragesController;
use OCA\Files_External\Service\BackendService;
+use OCA\Files_External\Service\GlobalStoragesService;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig;
use OCP\IGroupManager;
@@ -17,13 +18,11 @@ use OCP\IRequest;
use OCP\IUserSession;
use Psr\Log\LoggerInterface;
-class GlobalStoragesControllerTest extends StoragesControllerTest {
+class GlobalStoragesControllerTest extends StoragesControllerTestCase {
protected function setUp(): void {
parent::setUp();
- $this->service = $this->getMockBuilder('\OCA\Files_External\Service\GlobalStoragesService')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->service = $this->createMock(GlobalStoragesService::class);
$this->service->method('getVisibilityType')
->willReturn(BackendService::VISIBILITY_ADMIN);
@@ -31,7 +30,7 @@ class GlobalStoragesControllerTest extends StoragesControllerTest {
$this->controller = $this->createController(true);
}
- private function createController($allowCreateLocal = true) {
+ private function createController(bool $allowCreateLocal = true): GlobalStoragesController {
$session = $this->createMock(IUserSession::class);
$session->method('getUser')
->willReturn(new User('test', null, $this->createMock(IEventDispatcher::class)));
diff --git a/apps/files_external/tests/Controller/StoragesControllerTest.php b/apps/files_external/tests/Controller/StoragesControllerTestCase.php
index 0d604ff2d47..bb29904ab0d 100644
--- a/apps/files_external/tests/Controller/StoragesControllerTest.php
+++ b/apps/files_external/tests/Controller/StoragesControllerTestCase.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -7,10 +9,12 @@
namespace OCA\Files_External\Tests\Controller;
use OCA\Files_External\Controller\GlobalStoragesController;
+use OCA\Files_External\Controller\UserStoragesController;
use OCA\Files_External\Lib\Auth\AuthMechanism;
+use OCA\Files_External\Lib\Auth\NullMechanism;
use OCA\Files_External\Lib\Backend\Backend;
+use OCA\Files_External\Lib\Backend\SMB;
use OCA\Files_External\Lib\StorageConfig;
-
use OCA\Files_External\MountConfig;
use OCA\Files_External\NotFoundException;
use OCA\Files_External\Service\GlobalStoragesService;
@@ -18,33 +22,25 @@ use OCA\Files_External\Service\UserStoragesService;
use OCP\AppFramework\Http;
use PHPUnit\Framework\MockObject\MockObject;
-abstract class StoragesControllerTest extends \Test\TestCase {
-
- /**
- * @var GlobalStoragesController
- */
- protected $controller;
-
- /**
- * @var GlobalStoragesService|UserStoragesService|MockObject
- */
- protected $service;
+abstract class StoragesControllerTestCase extends \Test\TestCase {
+ protected GlobalStoragesController|UserStoragesController $controller;
+ protected GlobalStoragesService|UserStoragesService|MockObject $service;
protected function setUp(): void {
+ parent::setUp();
MountConfig::$skipTest = true;
}
protected function tearDown(): void {
MountConfig::$skipTest = false;
+ parent::tearDown();
}
/**
- * @return \OCA\Files_External\Lib\Backend\Backend|MockObject
+ * @return \OCA\Files_External\Lib\Backend\Backend&MockObject
*/
- protected function getBackendMock($class = '\OCA\Files_External\Lib\Backend\SMB', $storageClass = '\OCA\Files_External\Lib\Storage\SMB') {
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getBackendMock($class = SMB::class, $storageClass = \OCA\Files_External\Lib\Storage\SMB::class) {
+ $backend = $this->createMock(Backend::class);
$backend->method('getStorageClass')
->willReturn($storageClass);
$backend->method('getIdentifier')
@@ -57,10 +53,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
/**
* @return AuthMechanism|MockObject
*/
- protected function getAuthMechMock($scheme = 'null', $class = '\OCA\Files_External\Lib\Auth\NullMechanism') {
- $authMech = $this->getMockBuilder(AuthMechanism::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getAuthMechMock($scheme = 'null', $class = NullMechanism::class) {
+ $authMech = $this->createMock(AuthMechanism::class);
$authMech->method('getScheme')
->willReturn($scheme);
$authMech->method('getIdentifier')
@@ -98,8 +92,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -130,7 +124,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
'mount',
'local',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ NullMechanism::class,
[],
[],
[],
@@ -170,8 +164,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->update(
1,
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -184,7 +178,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$this->assertEquals($storageConfig->jsonSerialize(), $data);
}
- public function mountPointNamesProvider() {
+ public static function mountPointNamesProvider(): array {
return [
[''],
['/'],
@@ -212,8 +206,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
$mountPoint,
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -226,8 +220,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->update(
1,
$mountPoint,
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -250,7 +244,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
'mount',
'\OC\Files\Storage\InvalidStorage',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ NullMechanism::class,
[],
[],
[],
@@ -264,7 +258,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
1,
'mount',
'\OC\Files\Storage\InvalidStorage',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ NullMechanism::class,
[],
[],
[],
@@ -303,8 +297,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->update(
255,
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
@@ -354,7 +348,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$this->assertEquals($expected, $response->getData());
}
- public function validateStorageProvider() {
+ public static function validateStorageProvider(): array {
return [
[true, true, true],
[false, true, false],
@@ -366,7 +360,7 @@ abstract class StoragesControllerTest extends \Test\TestCase {
/**
* @dataProvider validateStorageProvider
*/
- public function testValidateStorage($backendValidate, $authMechValidate, $expectSuccess): void {
+ public function testValidateStorage(bool $backendValidate, bool $authMechValidate, bool $expectSuccess): void {
$backend = $this->getBackendMock();
$backend->method('validateStorage')
->willReturn($backendValidate);
@@ -401,8 +395,8 @@ abstract class StoragesControllerTest extends \Test\TestCase {
$response = $this->controller->create(
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
- '\OCA\Files_External\Lib\Auth\NullMechanism',
+ \OCA\Files_External\Lib\Storage\SMB::class,
+ NullMechanism::class,
[],
[],
[],
diff --git a/apps/files_external/tests/Controller/UserStoragesControllerTest.php b/apps/files_external/tests/Controller/UserStoragesControllerTest.php
index c15ded48ea7..3e8d89ec060 100644
--- a/apps/files_external/tests/Controller/UserStoragesControllerTest.php
+++ b/apps/files_external/tests/Controller/UserStoragesControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,8 +10,10 @@ namespace OCA\Files_External\Tests\Controller;
use OC\User\User;
use OCA\Files_External\Controller\UserStoragesController;
+use OCA\Files_External\Lib\Storage\SMB;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\Service\BackendService;
+use OCA\Files_External\Service\UserStoragesService;
use OCP\AppFramework\Http;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig;
@@ -19,18 +23,16 @@ use OCP\IRequest;
use OCP\IUserSession;
use Psr\Log\LoggerInterface;
-class UserStoragesControllerTest extends StoragesControllerTest {
+class UserStoragesControllerTest extends StoragesControllerTestCase {
/**
* @var array
*/
- private $oldAllowedBackends;
+ private array $oldAllowedBackends;
protected function setUp(): void {
parent::setUp();
- $this->service = $this->getMockBuilder('\OCA\Files_External\Service\UserStoragesService')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->service = $this->createMock(UserStoragesService::class);
$this->service->method('getVisibilityType')
->willReturn(BackendService::VISIBILITY_PERSONAL);
@@ -38,7 +40,7 @@ class UserStoragesControllerTest extends StoragesControllerTest {
$this->controller = $this->createController(true);
}
- private function createController($allowCreateLocal = true) {
+ private function createController(bool $allowCreateLocal = true) {
$session = $this->createMock(IUserSession::class);
$session->method('getUser')
->willReturn(new User('test', null, $this->createMock(IEventDispatcher::class)));
@@ -88,7 +90,7 @@ class UserStoragesControllerTest extends StoragesControllerTest {
$response = $this->controller->create(
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
+ SMB::class,
'\Auth\Mechanism',
[],
[],
@@ -102,7 +104,7 @@ class UserStoragesControllerTest extends StoragesControllerTest {
$response = $this->controller->update(
1,
'mount',
- '\OCA\Files_External\Lib\Storage\SMB',
+ SMB::class,
'\Auth\Mechanism',
[],
[],
diff --git a/apps/files_external/tests/DefinitionParameterTest.php b/apps/files_external/tests/DefinitionParameterTest.php
index 0b1d11bbf0c..f39ba90c871 100644
--- a/apps/files_external/tests/DefinitionParameterTest.php
+++ b/apps/files_external/tests/DefinitionParameterTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -38,21 +40,22 @@ class DefinitionParameterTest extends \Test\TestCase {
'tooltip' => '',
], $param->jsonSerialize());
- $param->setType(Param::VALUE_HIDDEN);
- $param->setFlags(Param::FLAG_NONE);
+ $param->setType(Param::VALUE_TEXT);
+ $param->setFlags(Param::FLAG_HIDDEN);
$this->assertEquals([
'value' => 'bar',
- 'flags' => Param::FLAG_NONE,
- 'type' => Param::VALUE_HIDDEN,
+ 'flags' => Param::FLAG_HIDDEN,
+ 'type' => Param::VALUE_TEXT,
'tooltip' => '',
], $param->jsonSerialize());
}
- public function validateValueProvider() {
+ public static function validateValueProvider(): array {
return [
[Param::VALUE_TEXT, Param::FLAG_NONE, 'abc', true],
[Param::VALUE_TEXT, Param::FLAG_NONE, '', false],
[Param::VALUE_TEXT, Param::FLAG_OPTIONAL, '', true],
+ [Param::VALUE_TEXT, Param::FLAG_HIDDEN, '', false],
[Param::VALUE_BOOLEAN, Param::FLAG_NONE, false, true],
[Param::VALUE_BOOLEAN, Param::FLAG_NONE, 123, false],
@@ -62,8 +65,6 @@ class DefinitionParameterTest extends \Test\TestCase {
[Param::VALUE_PASSWORD, Param::FLAG_NONE, 'foobar', true],
[Param::VALUE_PASSWORD, Param::FLAG_NONE, '', false],
-
- [Param::VALUE_HIDDEN, Param::FLAG_NONE, '', false]
];
}
diff --git a/apps/files_external/tests/FrontendDefinitionTraitTest.php b/apps/files_external/tests/FrontendDefinitionTraitTest.php
index bc5d88ff3f0..a01b772bded 100644
--- a/apps/files_external/tests/FrontendDefinitionTraitTest.php
+++ b/apps/files_external/tests/FrontendDefinitionTraitTest.php
@@ -16,7 +16,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
->getMock();
$param->method('getName')->willReturn('foo');
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\FrontendDefinitionTrait');
+ $trait = $this->getMockForTrait(\OCA\Files_External\Lib\FrontendDefinitionTrait::class);
$trait->setText('test');
$trait->addParameters([$param]);
$trait->addCustomJs('foo/bar.js');
@@ -32,7 +32,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
$this->assertArrayHasKey('foo', $configuration);
}
- public function validateStorageProvider() {
+ public static function validateStorageProvider(): array {
return [
[true, ['foo' => true, 'bar' => true, 'baz' => true]],
[false, ['foo' => true, 'bar' => false]]
@@ -42,7 +42,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
/**
* @dataProvider validateStorageProvider
*/
- public function testValidateStorage($expectedSuccess, $params): void {
+ public function testValidateStorage(bool $expectedSuccess, array $params): void {
$backendParams = [];
foreach ($params as $name => $valid) {
$param = $this->getMockBuilder(DefinitionParameter::class)
@@ -67,7 +67,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
$storageConfig->expects($this->any())
->method('setBackendOption');
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\FrontendDefinitionTrait');
+ $trait = $this->getMockForTrait(\OCA\Files_External\Lib\FrontendDefinitionTrait::class);
$trait->setText('test');
$trait->addParameters($backendParams);
@@ -98,7 +98,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase {
->method('setBackendOption')
->with('param', 'foobar');
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\FrontendDefinitionTrait');
+ $trait = $this->getMockForTrait(\OCA\Files_External\Lib\FrontendDefinitionTrait::class);
$trait->setText('test');
$trait->addParameter($param);
diff --git a/apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php b/apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php
index 5fcfe1dd1e6..b6a351d44c0 100644
--- a/apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php
+++ b/apps/files_external/tests/LegacyDependencyCheckPolyfillTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,7 +15,7 @@ class LegacyDependencyCheckPolyfillTest extends \Test\TestCase {
/**
* @return MissingDependency[]
*/
- public static function checkDependencies() {
+ public static function checkDependencies(): array {
return [
(new MissingDependency('dependency'))->setMessage('missing dependency'),
(new MissingDependency('program'))->setMessage('cannot find program'),
@@ -21,10 +23,10 @@ class LegacyDependencyCheckPolyfillTest extends \Test\TestCase {
}
public function testCheckDependencies(): void {
- $trait = $this->getMockForTrait('\OCA\Files_External\Lib\LegacyDependencyCheckPolyfill');
+ $trait = $this->getMockForTrait(\OCA\Files_External\Lib\LegacyDependencyCheckPolyfill::class);
$trait->expects($this->once())
->method('getStorageClass')
- ->willReturn('\OCA\Files_External\Tests\LegacyDependencyCheckPolyfillTest');
+ ->willReturn(self::class);
$dependencies = $trait->checkDependencies();
$this->assertCount(2, $dependencies);
diff --git a/apps/files_external/tests/Listener/StorePasswordListenerTest.php b/apps/files_external/tests/Listener/StorePasswordListenerTest.php
index ec278f84331..04635b7dafd 100644
--- a/apps/files_external/tests/Listener/StorePasswordListenerTest.php
+++ b/apps/files_external/tests/Listener/StorePasswordListenerTest.php
@@ -22,15 +22,12 @@ use Test\TestCase;
* @group DB
*/
class StorePasswordListenerTest extends TestCase {
- /** @var MockObject|IUser */
- protected $mockedUser;
+ protected IUser&MockObject $mockedUser;
protected function setUp(): void {
parent::setUp();
$this->mockedUser = $this->createMock(IUser::class);
- $this->mockedUser
- ->expects($this->any())
- ->method('getUID')
+ $this->mockedUser->method('getUID')
->willReturn('test');
}
diff --git a/apps/files_external/tests/OwnCloudFunctionsTest.php b/apps/files_external/tests/OwnCloudFunctionsTest.php
index 3488195d3e8..2890cad3ac1 100644
--- a/apps/files_external/tests/OwnCloudFunctionsTest.php
+++ b/apps/files_external/tests/OwnCloudFunctionsTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,7 +18,7 @@ use OCA\Files_External\Lib\Storage\OwnCloud;
* @package OCA\Files_External\Tests
*/
class OwnCloudFunctionsTest extends \Test\TestCase {
- public function configUrlProvider() {
+ public static function configUrlProvider(): array {
return [
[
[
@@ -88,7 +90,7 @@ class OwnCloudFunctionsTest extends \Test\TestCase {
/**
* @dataProvider configUrlProvider
*/
- public function testConfig($config, $expectedUri): void {
+ public function testConfig(array $config, string $expectedUri): void {
$config['user'] = 'someuser';
$config['password'] = 'somepassword';
$instance = new OwnCloud($config);
diff --git a/apps/files_external/tests/PersonalMountTest.php b/apps/files_external/tests/PersonalMountTest.php
index b268d3b5142..618048c3335 100644
--- a/apps/files_external/tests/PersonalMountTest.php
+++ b/apps/files_external/tests/PersonalMountTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,6 +10,7 @@ namespace OCA\Files_External\Tests;
use OC\Files\Mount\Manager;
use OC\Files\SetupManagerFactory;
+use OC\Files\Storage\Storage;
use OCA\Files_External\Lib\PersonalMount;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\Service\UserStoragesService;
@@ -17,13 +20,9 @@ class PersonalMountTest extends TestCase {
public function testFindByStorageId(): void {
$storageConfig = $this->createMock(StorageConfig::class);
/** @var UserStoragesService $storageService */
- $storageService = $this->getMockBuilder('\OCA\Files_External\Service\UserStoragesService')
- ->disableOriginalConstructor()
- ->getMock();
+ $storageService = $this->createMock(UserStoragesService::class);
- $storage = $this->getMockBuilder('\OC\Files\Storage\Storage')
- ->disableOriginalConstructor()
- ->getMock();
+ $storage = $this->createMock(Storage::class);
$storage->expects($this->any())
->method('getId')
diff --git a/apps/files_external/tests/Service/BackendServiceTest.php b/apps/files_external/tests/Service/BackendServiceTest.php
index e7644d8e523..1feefbc2b25 100644
--- a/apps/files_external/tests/Service/BackendServiceTest.php
+++ b/apps/files_external/tests/Service/BackendServiceTest.php
@@ -12,26 +12,21 @@ use OCA\Files_External\Lib\Backend\Backend;
use OCA\Files_External\Lib\Config\IAuthMechanismProvider;
use OCA\Files_External\Lib\Config\IBackendProvider;
use OCA\Files_External\Service\BackendService;
-use OCP\IConfig;
+use OCP\IAppConfig;
+use PHPUnit\Framework\MockObject\MockObject;
class BackendServiceTest extends \Test\TestCase {
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
+ protected IAppConfig&MockObject $appConfig;
protected function setUp(): void {
- $this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
}
/**
- * @param string $class
- *
- * @return \OCA\Files_External\Lib\Backend\Backend|\PHPUnit\Framework\MockObject\MockObject
+ * @return \OCA\Files_External\Lib\Backend\Backend&MockObject
*/
- protected function getBackendMock($class) {
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getBackendMock(string $class) {
+ $backend = $this->createMock(Backend::class);
$backend->method('getIdentifier')->willReturn('identifier:' . $class);
$backend->method('getIdentifierAliases')->willReturn(['identifier:' . $class]);
return $backend;
@@ -40,26 +35,22 @@ class BackendServiceTest extends \Test\TestCase {
/**
* @param string $class
*
- * @return AuthMechanism|\PHPUnit\Framework\MockObject\MockObject
+ * @return AuthMechanism&MockObject
*/
protected function getAuthMechanismMock($class) {
- $backend = $this->getMockBuilder(AuthMechanism::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $backend = $this->createMock(AuthMechanism::class);
$backend->method('getIdentifier')->willReturn('identifier:' . $class);
$backend->method('getIdentifierAliases')->willReturn(['identifier:' . $class]);
return $backend;
}
public function testRegisterBackend(): void {
- $service = new BackendService($this->config);
+ $service = new BackendService($this->appConfig);
$backend = $this->getBackendMock('\Foo\Bar');
- /** @var \OCA\Files_External\Lib\Backend\Backend|\PHPUnit\Framework\MockObject\MockObject $backendAlias */
- $backendAlias = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var \OCA\Files_External\Lib\Backend\Backend&MockObject $backendAlias */
+ $backendAlias = $this->createMock(Backend::class);
$backendAlias->method('getIdentifierAliases')
->willReturn(['identifier_real', 'identifier_alias']);
$backendAlias->method('getIdentifier')
@@ -80,12 +71,12 @@ class BackendServiceTest extends \Test\TestCase {
}
public function testBackendProvider(): void {
- $service = new BackendService($this->config);
+ $service = new BackendService($this->appConfig);
$backend1 = $this->getBackendMock('\Foo\Bar');
$backend2 = $this->getBackendMock('\Bar\Foo');
- /** @var IBackendProvider|\PHPUnit\Framework\MockObject\MockObject $providerMock */
+ /** @var IBackendProvider&MockObject $providerMock */
$providerMock = $this->createMock(IBackendProvider::class);
$providerMock->expects($this->once())
->method('getBackends')
@@ -99,12 +90,12 @@ class BackendServiceTest extends \Test\TestCase {
}
public function testAuthMechanismProvider(): void {
- $service = new BackendService($this->config);
+ $service = new BackendService($this->appConfig);
$backend1 = $this->getAuthMechanismMock('\Foo\Bar');
$backend2 = $this->getAuthMechanismMock('\Bar\Foo');
- /** @var IAuthMechanismProvider|\PHPUnit\Framework\MockObject\MockObject $providerMock */
+ /** @var IAuthMechanismProvider&MockObject $providerMock */
$providerMock = $this->createMock(IAuthMechanismProvider::class);
$providerMock->expects($this->once())
->method('getAuthMechanisms')
@@ -118,20 +109,20 @@ class BackendServiceTest extends \Test\TestCase {
}
public function testMultipleBackendProviders(): void {
- $service = new BackendService($this->config);
+ $service = new BackendService($this->appConfig);
$backend1a = $this->getBackendMock('\Foo\Bar');
$backend1b = $this->getBackendMock('\Bar\Foo');
$backend2 = $this->getBackendMock('\Dead\Beef');
- /** @var IBackendProvider|\PHPUnit\Framework\MockObject\MockObject $provider1Mock */
+ /** @var IBackendProvider&MockObject $provider1Mock */
$provider1Mock = $this->createMock(IBackendProvider::class);
$provider1Mock->expects($this->once())
->method('getBackends')
->willReturn([$backend1a, $backend1b]);
$service->registerBackendProvider($provider1Mock);
- /** @var IBackendProvider|\PHPUnit\Framework\MockObject\MockObject $provider2Mock */
+ /** @var IBackendProvider&MockObject $provider2Mock */
$provider2Mock = $this->createMock(IBackendProvider::class);
$provider2Mock->expects($this->once())
->method('getBackends')
@@ -146,14 +137,16 @@ class BackendServiceTest extends \Test\TestCase {
}
public function testUserMountingBackends(): void {
- $this->config->expects($this->exactly(2))
- ->method('getAppValue')
- ->willReturnMap([
- ['files_external', 'allow_user_mounting', 'yes', 'yes'],
- ['files_external', 'user_mounting_backends', '', 'identifier:\User\Mount\Allowed,identifier_alias']
- ]);
+ $this->appConfig->expects($this->once())
+ ->method('getValueString')
+ ->with('files_external', 'user_mounting_backends')
+ ->willReturn('identifier:\User\Mount\Allowed,identifier_alias');
+ $this->appConfig->expects($this->once())
+ ->method('getValueBool')
+ ->with('files_external', 'allow_user_mounting')
+ ->willReturn(true);
- $service = new BackendService($this->config);
+ $service = new BackendService($this->appConfig);
$backendAllowed = $this->getBackendMock('\User\Mount\Allowed');
$backendAllowed->expects($this->never())
@@ -177,7 +170,7 @@ class BackendServiceTest extends \Test\TestCase {
}
public function testGetAvailableBackends(): void {
- $service = new BackendService($this->config);
+ $service = new BackendService($this->appConfig);
$backendAvailable = $this->getBackendMock('\Backend\Available');
$backendAvailable->expects($this->once())
@@ -200,7 +193,7 @@ class BackendServiceTest extends \Test\TestCase {
$this->assertArrayNotHasKey('identifier:\Backend\NotAvailable', $availableBackends);
}
- public function invalidConfigPlaceholderProvider() {
+ public static function invalidConfigPlaceholderProvider(): array {
return [
[['@user']],
[['$user']],
@@ -220,7 +213,7 @@ class BackendServiceTest extends \Test\TestCase {
public function testRegisterConfigHandlerInvalid(array $placeholders): void {
$this->expectException(\RuntimeException::class);
- $service = new BackendService($this->config);
+ $service = new BackendService($this->appConfig);
$mock = $this->createMock(IConfigHandler::class);
$cb = function () use ($mock) {
return $mock;
@@ -231,7 +224,7 @@ class BackendServiceTest extends \Test\TestCase {
}
public function testConfigHandlers(): void {
- $service = new BackendService($this->config);
+ $service = new BackendService($this->appConfig);
$mock = $this->createMock(IConfigHandler::class);
$mock->expects($this->exactly(3))
->method('handle');
diff --git a/apps/files_external/tests/Service/DBConfigServiceTest.php b/apps/files_external/tests/Service/DBConfigServiceTest.php
index 51051d6c9f2..85d8b70fda7 100644
--- a/apps/files_external/tests/Service/DBConfigServiceTest.php
+++ b/apps/files_external/tests/Service/DBConfigServiceTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,17 +18,10 @@ use Test\TestCase;
* @group DB
*/
class DBConfigServiceTest extends TestCase {
- /**
- * @var DBConfigService
- */
- private $dbConfig;
-
- /**
- * @var IDBConnection
- */
- private $connection;
+ private IDBConnection $connection;
+ private DBConfigService $dbConfig;
- private $mounts = [];
+ private array $mounts = [];
protected function setUp(): void {
parent::setUp();
@@ -39,9 +34,10 @@ class DBConfigServiceTest extends TestCase {
$this->dbConfig->removeMount($mount);
}
$this->mounts = [];
+ parent::tearDown();
}
- private function addMount($mountPoint, $storageBackend, $authBackend, $priority, $type) {
+ private function addMount(string $mountPoint, string $storageBackend, string $authBackend, int $priority, int $type) {
$id = $this->dbConfig->addMount($mountPoint, $storageBackend, $authBackend, $priority, $type);
$this->mounts[] = $id;
return $id;
@@ -74,7 +70,7 @@ class DBConfigServiceTest extends TestCase {
$this->dbConfig->addApplicable($id, DBConfigService::APPLICABLE_TYPE_GLOBAL, null);
$mount = $this->dbConfig->getMountById($id);
- $this->assertEquals([
+ $this->assertEqualsCanonicalizing([
['type' => DBConfigService::APPLICABLE_TYPE_USER, 'value' => 'test', 'mount_id' => $id],
['type' => DBConfigService::APPLICABLE_TYPE_GROUP, 'value' => 'bar', 'mount_id' => $id],
['type' => DBConfigService::APPLICABLE_TYPE_GLOBAL, 'value' => null, 'mount_id' => $id]
diff --git a/apps/files_external/tests/Service/GlobalStoragesServiceTest.php b/apps/files_external/tests/Service/GlobalStoragesServiceTest.php
index b4907f7f00f..47be54a02d4 100644
--- a/apps/files_external/tests/Service/GlobalStoragesServiceTest.php
+++ b/apps/files_external/tests/Service/GlobalStoragesServiceTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -14,7 +16,7 @@ use OCA\Files_External\Service\GlobalStoragesService;
/**
* @group DB
*/
-class GlobalStoragesServiceTest extends StoragesServiceTest {
+class GlobalStoragesServiceTest extends StoragesServiceTestCase {
protected function setUp(): void {
parent::setUp();
$this->service = new GlobalStoragesService($this->backendService, $this->dbConfig, $this->mountCache, $this->eventDispatcher);
@@ -44,7 +46,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
]);
}
- public function storageDataProvider() {
+ public static function storageDataProvider(): array {
return [
// all users
[
@@ -166,13 +168,13 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
$this->assertEquals($updatedStorage->getMountPoint(), $newStorage->getMountPoint());
$this->assertEquals($updatedStorage->getBackendOptions()['password'], $newStorage->getBackendOptions()['password']);
- $this->assertEquals($updatedStorage->getApplicableUsers(), $newStorage->getApplicableUsers());
+ $this->assertEqualsCanonicalizing($updatedStorage->getApplicableUsers(), $newStorage->getApplicableUsers());
$this->assertEquals($updatedStorage->getApplicableGroups(), $newStorage->getApplicableGroups());
$this->assertEquals($updatedStorage->getPriority(), $newStorage->getPriority());
$this->assertEquals(0, $newStorage->getStatus());
}
- public function hooksAddStorageDataProvider() {
+ public static function hooksAddStorageDataProvider(): array {
return [
// applicable all
[
@@ -301,7 +303,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
}
}
- public function hooksUpdateStorageDataProvider() {
+ public static function hooksUpdateStorageDataProvider(): array {
return [
[
// nothing to multiple users and groups
@@ -421,11 +423,12 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
* @dataProvider hooksUpdateStorageDataProvider
*/
public function testHooksUpdateStorage(
- $sourceApplicableUsers,
- $sourceApplicableGroups,
- $updatedApplicableUsers,
- $updatedApplicableGroups,
- $expectedCalls): void {
+ array $sourceApplicableUsers,
+ array $sourceApplicableGroups,
+ array $updatedApplicableUsers,
+ array $updatedApplicableGroups,
+ array $expectedCalls,
+ ): void {
$storage = $this->makeTestStorageData();
$storage->setApplicableUsers($sourceApplicableUsers);
$storage->setApplicableGroups($sourceApplicableGroups);
@@ -532,7 +535,7 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
}
}
- public function hooksDeleteStorageDataProvider() {
+ public static function hooksDeleteStorageDataProvider(): array {
return [
[
['user1', 'user2'],
@@ -580,9 +583,10 @@ class GlobalStoragesServiceTest extends StoragesServiceTest {
* @dataProvider hooksDeleteStorageDataProvider
*/
public function testHooksDeleteStorage(
- $sourceApplicableUsers,
- $sourceApplicableGroups,
- $expectedCalls): void {
+ array $sourceApplicableUsers,
+ array $sourceApplicableGroups,
+ array $expectedCalls,
+ ): void {
$storage = $this->makeTestStorageData();
$storage->setApplicableUsers($sourceApplicableUsers);
$storage->setApplicableGroups($sourceApplicableGroups);
diff --git a/apps/files_external/tests/Service/StoragesServiceTest.php b/apps/files_external/tests/Service/StoragesServiceTestCase.php
index 8d24b98d6af..a5cffd45ec2 100644
--- a/apps/files_external/tests/Service/StoragesServiceTest.php
+++ b/apps/files_external/tests/Service/StoragesServiceTestCase.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,9 +12,10 @@ use OC\Files\Cache\Storage;
use OC\Files\Filesystem;
use OCA\Files_External\Lib\Auth\AuthMechanism;
use OCA\Files_External\Lib\Auth\InvalidAuth;
+use OCA\Files_External\Lib\Auth\NullMechanism;
use OCA\Files_External\Lib\Backend\Backend;
use OCA\Files_External\Lib\Backend\InvalidBackend;
-
+use OCA\Files_External\Lib\Backend\SMB;
use OCA\Files_External\Lib\StorageConfig;
use OCA\Files_External\MountConfig;
use OCA\Files_External\NotFoundException;
@@ -31,9 +34,10 @@ use OCP\IUser;
use OCP\Security\ICrypto;
use OCP\Server;
use OCP\Util;
+use PHPUnit\Framework\MockObject\MockObject;
class CleaningDBConfig extends DBConfigService {
- private $mountIds = [];
+ private array $mountIds = [];
public function addMount($mountPoint, $storageBackend, $authBackend, $priority, $type) {
$id = parent::addMount($mountPoint, $storageBackend, $authBackend, $priority, $type); // TODO: Change the autogenerated stub
@@ -51,41 +55,14 @@ class CleaningDBConfig extends DBConfigService {
/**
* @group DB
*/
-abstract class StoragesServiceTest extends \Test\TestCase {
- /**
- * @var StoragesService
- */
- protected $service;
-
- /** @var BackendService */
- protected $backendService;
-
- /**
- * Data directory
- *
- * @var string
- */
- protected $dataDir;
-
- /** @var CleaningDBConfig */
- protected $dbConfig;
-
- /**
- * Hook calls
- *
- * @var array
- */
- protected static $hookCalls;
-
- /**
- * @var \PHPUnit\Framework\MockObject\MockObject|IUserMountCache
- */
- protected $mountCache;
-
- /**
- * @var \PHPUnit\Framework\MockObject\MockObject|IEventDispatcher
- */
- protected IEventDispatcher $eventDispatcher;
+abstract class StoragesServiceTestCase extends \Test\TestCase {
+ protected StoragesService $service;
+ protected BackendService $backendService;
+ protected string $dataDir;
+ protected CleaningDBConfig $dbConfig;
+ protected static array $hookCalls;
+ protected IUserMountCache&MockObject $mountCache;
+ protected IEventDispatcher&MockObject $eventDispatcher;
protected function setUp(): void {
parent::setUp();
@@ -102,10 +79,7 @@ abstract class StoragesServiceTest extends \Test\TestCase {
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
// prepare BackendService mock
- $this->backendService =
- $this->getMockBuilder('\OCA\Files_External\Service\BackendService')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->backendService = $this->createMock(BackendService::class);
$authMechanisms = [
'identifier:\Auth\Mechanism' => $this->getAuthMechMock('null', '\Auth\Mechanism'),
@@ -172,12 +146,11 @@ abstract class StoragesServiceTest extends \Test\TestCase {
if ($this->dbConfig) {
$this->dbConfig->clean();
}
+ parent::tearDown();
}
- protected function getBackendMock($class = '\OCA\Files_External\Lib\Backend\SMB', $storageClass = '\OCA\Files_External\Lib\Storage\SMB') {
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getBackendMock($class = SMB::class, $storageClass = \OCA\Files_External\Lib\Storage\SMB::class) {
+ $backend = $this->createMock(Backend::class);
$backend->method('getStorageClass')
->willReturn($storageClass);
$backend->method('getIdentifier')
@@ -185,10 +158,8 @@ abstract class StoragesServiceTest extends \Test\TestCase {
return $backend;
}
- protected function getAuthMechMock($scheme = 'null', $class = '\OCA\Files_External\Lib\Auth\NullMechanism') {
- $authMech = $this->getMockBuilder(AuthMechanism::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getAuthMechMock($scheme = 'null', $class = NullMechanism::class) {
+ $authMech = $this->createMock(AuthMechanism::class);
$authMech->method('getScheme')
->willReturn($scheme);
$authMech->method('getIdentifier')
@@ -199,12 +170,8 @@ abstract class StoragesServiceTest extends \Test\TestCase {
/**
* Creates a StorageConfig instance based on array data
- *
- * @param array $data
- *
- * @return StorageConfig storage config instance
*/
- protected function makeStorageConfig($data) {
+ protected function makeStorageConfig(array $data): StorageConfig {
$storage = new StorageConfig();
if (isset($data['id'])) {
$storage->setId($data['id']);
@@ -259,7 +226,7 @@ abstract class StoragesServiceTest extends \Test\TestCase {
$this->ActualNonExistingStorageTest();
}
- public function deleteStorageDataProvider() {
+ public static function deleteStorageDataProvider(): array {
return [
// regular case, can properly delete the oc_storages entry
[
@@ -286,7 +253,7 @@ abstract class StoragesServiceTest extends \Test\TestCase {
/**
* @dataProvider deleteStorageDataProvider
*/
- public function testDeleteStorage($backendOptions, $rustyStorageId): void {
+ public function testDeleteStorage(array $backendOptions, string $rustyStorageId): void {
$backend = $this->backendService->getBackend('identifier:\OCA\Files_External\Lib\Backend\DAV');
$authMechanism = $this->backendService->getAuthMechanism('identifier:\Auth\Mechanism');
$storage = new StorageConfig(255);
@@ -463,14 +430,14 @@ abstract class StoragesServiceTest extends \Test\TestCase {
$this->assertEmpty($this->service->getStorages());
}
- public static function createHookCallback($params) {
+ public static function createHookCallback($params): void {
self::$hookCalls[] = [
'signal' => Filesystem::signal_create_mount,
'params' => $params
];
}
- public static function deleteHookCallback($params) {
+ public static function deleteHookCallback($params): void {
self::$hookCalls[] = [
'signal' => Filesystem::signal_delete_mount,
'params' => $params
diff --git a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php
index e3c5cd486e9..1ec4e56bd9e 100644
--- a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php
+++ b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php
@@ -16,6 +16,7 @@ use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserSession;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\Traits\UserTrait;
/**
@@ -24,20 +25,9 @@ use Test\Traits\UserTrait;
class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
use UserTrait;
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject groupManager */
- protected $groupManager;
-
- /**
- * @var StoragesService
- */
- protected $globalStoragesService;
-
- /**
- * @var UserGlobalStoragesService
- */
- protected $service;
-
- protected $user;
+ protected IGroupManager&MockObject $groupManager;
+ protected StoragesService $globalStoragesService;
+ protected User $user;
public const USER_ID = 'test_user';
public const GROUP_ID = 'test_group';
@@ -49,7 +39,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
$this->globalStoragesService = $this->service;
$this->user = new User(self::USER_ID, null, Server::get(IEventDispatcher::class));
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject $userSession */
+ /** @var IUserSession&MockObject $userSession */
$userSession = $this->createMock(IUserSession::class);
$userSession
->expects($this->any())
@@ -87,7 +77,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
);
}
- public function applicableStorageProvider() {
+ public static function applicableStorageProvider(): array {
return [
[[], [], true],
@@ -211,7 +201,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
$this->actualDeletedUnexistingStorageTest();
}
- public function getUniqueStoragesProvider() {
+ public static function getUniqueStoragesProvider(): array {
return [
// 'all' vs group
[100, [], [], 100, [], [self::GROUP_ID], 2],
diff --git a/apps/files_external/tests/Service/UserStoragesServiceTest.php b/apps/files_external/tests/Service/UserStoragesServiceTest.php
index a7b9f200417..53d7f5960e8 100644
--- a/apps/files_external/tests/Service/UserStoragesServiceTest.php
+++ b/apps/files_external/tests/Service/UserStoragesServiceTest.php
@@ -17,22 +17,19 @@ use OCA\Files_External\Service\UserStoragesService;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\Traits\UserTrait;
/**
* @group DB
*/
-class UserStoragesServiceTest extends StoragesServiceTest {
+class UserStoragesServiceTest extends StoragesServiceTestCase {
use UserTrait;
- private $user;
+ protected \OC\User\User $user;
- private $userId;
-
- /**
- * @var StoragesService
- */
- protected $globalStoragesService;
+ protected string $userId;
+ protected StoragesService $globalStoragesService;
protected function setUp(): void {
parent::setUp();
@@ -43,7 +40,7 @@ class UserStoragesServiceTest extends StoragesServiceTest {
$this->createUser($this->userId, $this->userId);
$this->user = Server::get(IUserManager::class)->get($this->userId);
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject $userSession */
+ /** @var IUserSession&MockObject $userSession */
$userSession = $this->createMock(IUserSession::class);
$userSession
->expects($this->any())
diff --git a/apps/files_external/tests/Settings/AdminTest.php b/apps/files_external/tests/Settings/AdminTest.php
index aceb8d2e915..fd4a1949760 100644
--- a/apps/files_external/tests/Settings/AdminTest.php
+++ b/apps/files_external/tests/Settings/AdminTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,19 +14,15 @@ use OCA\Files_External\Service\GlobalStoragesService;
use OCA\Files_External\Settings\Admin;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Encryption\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AdminTest extends TestCase {
- /** @var Admin */
- private $admin;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $encryptionManager;
- /** @var GlobalStoragesService|\PHPUnit\Framework\MockObject\MockObject */
- private $globalStoragesService;
- /** @var BackendService|\PHPUnit\Framework\MockObject\MockObject */
- private $backendService;
- /** @var GlobalAuth|\PHPUnit\Framework\MockObject\MockObject */
- private $globalAuth;
+ private IManager&MockObject $encryptionManager;
+ private GlobalStoragesService&MockObject $globalStoragesService;
+ private BackendService&MockObject $backendService;
+ private GlobalAuth&MockObject $globalAuth;
+ private Admin $admin;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/files_external/tests/Settings/SectionTest.php b/apps/files_external/tests/Settings/SectionTest.php
index 9154106ff8a..c64849ff7ba 100644
--- a/apps/files_external/tests/Settings/SectionTest.php
+++ b/apps/files_external/tests/Settings/SectionTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -8,20 +10,18 @@ namespace OCA\Files_External\Tests\Settings;
use OCA\Files_External\Settings\Section;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SectionTest extends TestCase {
- /** @var IL10N */
- private $l;
- /** @var IURLGenerator */
- private $urlGenerator;
- /** @var Section */
- private $section;
+ private IL10N&MockObject $l;
+ private IURLGenerator&MockObject $urlGenerator;
+ private Section $section;
protected function setUp(): void {
parent::setUp();
- $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->disableOriginalConstructor()->getMock();
- $this->l = $this->getMockBuilder(IL10N::class)->disableOriginalConstructor()->getMock();
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
+ $this->l = $this->createMock(IL10N::class);
$this->section = new Section(
$this->urlGenerator,
diff --git a/apps/files_external/tests/Storage/Amazons3MultiPartTest.php b/apps/files_external/tests/Storage/Amazons3MultiPartTest.php
index 1ac18406d24..aa3925899f3 100644
--- a/apps/files_external/tests/Storage/Amazons3MultiPartTest.php
+++ b/apps/files_external/tests/Storage/Amazons3MultiPartTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\files_external\tests\Storage;
+namespace OCA\Files_External\Tests\Storage;
use OCA\Files_External\Lib\Storage\AmazonS3;
@@ -11,6 +13,7 @@ use OCA\Files_External\Lib\Storage\AmazonS3;
* Class Amazons3Test
*
* @group DB
+ * @group S3
*
* @package OCA\Files_External\Tests\Storage
*/
@@ -23,7 +26,7 @@ class Amazons3MultiPartTest extends \Test\Files\Storage\Storage {
parent::setUp();
$this->config = include('files_external/tests/config.amazons3.php');
- if (! is_array($this->config) or ! $this->config['run']) {
+ if (!is_array($this->config) || !$this->config['run']) {
$this->markTestSkipped('AmazonS3 backend not configured');
}
$this->instance = new AmazonS3($this->config + [
@@ -43,8 +46,4 @@ class Amazons3MultiPartTest extends \Test\Files\Storage\Storage {
public function testStat(): void {
$this->markTestSkipped('S3 doesn\'t update the parents folder mtime');
}
-
- public function testHashInFileName(): void {
- $this->markTestSkipped('Localstack has a bug with hashes in filename');
- }
}
diff --git a/apps/files_external/tests/Storage/Amazons3Test.php b/apps/files_external/tests/Storage/Amazons3Test.php
index fd7fd9225c9..d02dec0230c 100644
--- a/apps/files_external/tests/Storage/Amazons3Test.php
+++ b/apps/files_external/tests/Storage/Amazons3Test.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,11 +14,12 @@ use OCA\Files_External\Lib\Storage\AmazonS3;
* Class Amazons3Test
*
* @group DB
+ * @group S3
*
* @package OCA\Files_External\Tests\Storage
*/
class Amazons3Test extends \Test\Files\Storage\Storage {
- private $config;
+ protected $config;
/** @var AmazonS3 */
protected $instance;
@@ -24,7 +27,7 @@ class Amazons3Test extends \Test\Files\Storage\Storage {
parent::setUp();
$this->config = include('files_external/tests/config.amazons3.php');
- if (! is_array($this->config) or ! $this->config['run']) {
+ if (!is_array($this->config) || !$this->config['run']) {
$this->markTestSkipped('AmazonS3 backend not configured');
}
$this->instance = new AmazonS3($this->config);
@@ -41,8 +44,4 @@ class Amazons3Test extends \Test\Files\Storage\Storage {
public function testStat(): void {
$this->markTestSkipped('S3 doesn\'t update the parents folder mtime');
}
-
- public function testHashInFileName(): void {
- $this->markTestSkipped('Localstack has a bug with hashes in filename');
- }
}
diff --git a/apps/files_external/tests/Storage/FtpTest.php b/apps/files_external/tests/Storage/FtpTest.php
index c6a1d8f77ba..095a5236049 100644
--- a/apps/files_external/tests/Storage/FtpTest.php
+++ b/apps/files_external/tests/Storage/FtpTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -45,7 +47,7 @@ class FtpTest extends \Test\Files\Storage\Storage {
/**
* ftp has no proper way to handle spaces at the end of file names
*/
- public function directoryProvider() {
+ public static function directoryProvider(): array {
return array_filter(parent::directoryProvider(), function ($item) {
return substr($item[0], -1) !== ' ';
});
diff --git a/apps/files_external/tests/Storage/OwncloudTest.php b/apps/files_external/tests/Storage/OwncloudTest.php
index 28041a665f8..ab6cd443dba 100644
--- a/apps/files_external/tests/Storage/OwncloudTest.php
+++ b/apps/files_external/tests/Storage/OwncloudTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/tests/Storage/SFTP_KeyTest.php b/apps/files_external/tests/Storage/SFTP_KeyTest.php
index 9be3cb7d3e8..17e2087f91b 100644
--- a/apps/files_external/tests/Storage/SFTP_KeyTest.php
+++ b/apps/files_external/tests/Storage/SFTP_KeyTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -40,7 +42,7 @@ class SFTP_KeyTest extends \Test\Files\Storage\Storage {
parent::tearDown();
}
-
+
public function testInvalidAddressShouldThrowException(): void {
$this->expectException(\InvalidArgumentException::class);
@@ -52,24 +54,24 @@ class SFTP_KeyTest extends \Test\Files\Storage\Storage {
$this->assertTrue($this->instance->assertHostAddressValid('localhost'));
}
-
+
public function testNegativePortNumberShouldThrowException(): void {
$this->expectException(\InvalidArgumentException::class);
$this->instance->assertPortNumberValid('-1');
}
-
+
public function testNonNumericalPortNumberShouldThrowException(): void {
$this->expectException(\InvalidArgumentException::class);
$this->instance->assertPortNumberValid('a');
}
-
+
public function testHighPortNumberShouldThrowException(): void {
$this->expectException(\InvalidArgumentException::class);
-
+
$this->instance->assertPortNumberValid('65536');
}
diff --git a/apps/files_external/tests/Storage/SftpTest.php b/apps/files_external/tests/Storage/SftpTest.php
index cc29486f426..082f0d7c502 100644
--- a/apps/files_external/tests/Storage/SftpTest.php
+++ b/apps/files_external/tests/Storage/SftpTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -52,7 +54,7 @@ class SftpTest extends \Test\Files\Storage\Storage {
$this->assertEquals($expectedStorageId, $instance->getId());
}
- public function configProvider() {
+ public static function configProvider(): array {
return [
[
// no root path
diff --git a/apps/files_external/tests/Storage/SmbTest.php b/apps/files_external/tests/Storage/SmbTest.php
index d5a83905112..afcb5c1034f 100644
--- a/apps/files_external/tests/Storage/SmbTest.php
+++ b/apps/files_external/tests/Storage/SmbTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -49,7 +51,7 @@ class SmbTest extends \Test\Files\Storage\Storage {
parent::tearDown();
}
- public function directoryProvider() {
+ public static function directoryProvider(): array {
// doesn't support leading/trailing spaces
return [['folder']];
}
diff --git a/apps/files_external/tests/Storage/SwiftTest.php b/apps/files_external/tests/Storage/SwiftTest.php
index c21c8c6f506..17037e76ee3 100644
--- a/apps/files_external/tests/Storage/SwiftTest.php
+++ b/apps/files_external/tests/Storage/SwiftTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/tests/Storage/VersionedAmazonS3Test.php b/apps/files_external/tests/Storage/VersionedAmazonS3Test.php
index 4d9d1e32067..9d413620292 100644
--- a/apps/files_external/tests/Storage/VersionedAmazonS3Test.php
+++ b/apps/files_external/tests/Storage/VersionedAmazonS3Test.php
@@ -10,6 +10,7 @@ namespace OCA\Files_External\Tests\Storage;
/**
* @group DB
+ * @group S3
*/
class VersionedAmazonS3Test extends Amazons3Test {
protected function setUp(): void {
@@ -25,4 +26,12 @@ class VersionedAmazonS3Test extends Amazons3Test {
$this->markTestSkipped("s3 backend doesn't seem to support versioning");
}
}
+
+ public function testCopyOverWriteDirectory(): void {
+ if (isset($this->config['minio'])) {
+ $this->markTestSkipped('MinIO has a bug with batch deletion on versioned storages, see https://github.com/minio/minio/issues/21366');
+ }
+
+ parent::testCopyOverWriteDirectory();
+ }
}
diff --git a/apps/files_external/tests/Storage/WebdavTest.php b/apps/files_external/tests/Storage/WebdavTest.php
index f1d3415e91e..a8de178effd 100644
--- a/apps/files_external/tests/Storage/WebdavTest.php
+++ b/apps/files_external/tests/Storage/WebdavTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_external/tests/StorageConfigTest.php b/apps/files_external/tests/StorageConfigTest.php
index b67d69a3ce7..b3024cb228c 100644
--- a/apps/files_external/tests/StorageConfigTest.php
+++ b/apps/files_external/tests/StorageConfigTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -13,12 +15,8 @@ use OCA\Files_External\Lib\StorageConfig;
class StorageConfigTest extends \Test\TestCase {
public function testJsonSerialization(): void {
- $backend = $this->getMockBuilder(Backend::class)
- ->disableOriginalConstructor()
- ->getMock();
- $parameter = $this->getMockBuilder(DefinitionParameter::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $backend = $this->createMock(Backend::class);
+ $parameter = $this->createMock(DefinitionParameter::class);
$parameter
->expects($this->once())
->method('getType')
@@ -30,9 +28,7 @@ class StorageConfigTest extends \Test\TestCase {
$backend->method('getIdentifier')
->willReturn('storage::identifier');
- $authMech = $this->getMockBuilder(AuthMechanism::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $authMech = $this->createMock(AuthMechanism::class);
$authMech->method('getIdentifier')
->willReturn('auth::identifier');
diff --git a/apps/files_external/tests/appSpec.js b/apps/files_external/tests/appSpec.js
deleted file mode 100644
index 4d150cd36bb..00000000000
--- a/apps/files_external/tests/appSpec.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * SPDX-FileCopyrightText: 2014 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-import $ from 'jquery'
-
-describe('OCA.Files_External.App tests', function() {
- const App = OCA.Files_External.App
- let fileList
-
- beforeEach(function() {
- $('#testArea').append(
- '<div id="app-navigation">'
- + '<ul><li data-id="files"><a>Files</a></li>'
- + '<li data-id="sharingin"><a></a></li>'
- + '<li data-id="sharingout"><a></a></li>'
- + '</ul></div>'
- + '<div id="app-content">'
- + '<div id="app-content-files" class="hidden">'
- + '</div>'
- + '<div id="app-content-extstoragemounts" class="hidden">'
- + '</div>'
- + '</div>'
- + '</div>',
- )
- fileList = App.initList($('#app-content-extstoragemounts'))
- })
- afterEach(function() {
- App.fileList = null
- fileList.destroy()
- fileList = null
- })
-
- describe('initialization', function() {
- it('inits external mounts list on show', function() {
- expect(App.fileList).toBeDefined()
- })
- })
- describe('file actions', function() {
- it('provides default file actions', function() {
- const fileActions = fileList.fileActions
-
- expect(fileActions.actions.all).toBeDefined()
- expect(fileActions.actions.all.Delete).toBeDefined()
- expect(fileActions.actions.all.Rename).toBeDefined()
- expect(fileActions.actions.all.Download).toBeDefined()
-
- expect(fileActions.defaults.dir).toEqual('Open')
- })
- it('redirects to files app when opening a directory', function() {
- const oldList = OCA.Files.App.fileList
- // dummy new list to make sure it exists
- OCA.Files.App.fileList = new OCA.Files.FileList($('<table><thead></thead><tbody></tbody></table>'))
-
- const setActiveViewStub = sinon.stub(OCA.Files.App, 'setActiveView')
- // create dummy table so we can click the dom
- const $table = '<table><thead></thead><tbody class="files-fileList"></tbody></table>'
- $('#app-content-extstoragemounts').append($table)
-
- App._inFileList = null
- fileList = App.initList($('#app-content-extstoragemounts'))
-
- fileList.setFiles([{
- name: 'testdir',
- type: 'dir',
- path: '/somewhere/inside/subdir',
- counterParts: ['user2'],
- shareOwner: 'user2',
- }])
-
- fileList.findFileEl('testdir').find('td a.name').click()
-
- expect(OCA.Files.App.fileList.getCurrentDirectory()).toEqual('/somewhere/inside/subdir/testdir')
-
- expect(setActiveViewStub.calledOnce).toEqual(true)
- expect(setActiveViewStub.calledWith('files')).toEqual(true)
-
- setActiveViewStub.restore()
-
- // restore old list
- OCA.Files.App.fileList = oldList
- })
- })
-})
diff --git a/apps/files_external/tests/js/mountsfilelistSpec.js b/apps/files_external/tests/js/mountsfilelistSpec.js
deleted file mode 100644
index fa6de978c81..00000000000
--- a/apps/files_external/tests/js/mountsfilelistSpec.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
- * SPDX-FileCopyrightText: 2014-2016 ownCloud, Inc.
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-describe('OCA.Files_External.FileList tests', function() {
- var testFiles, alertStub, notificationStub, fileList;
-
- beforeEach(function() {
- alertStub = sinon.stub(OC.dialogs, 'alert');
- notificationStub = sinon.stub(OC.Notification, 'show');
-
- // init parameters and test table elements
- $('#testArea').append(
- '<div id="app-content">' +
- // init horrible parameters
- '<input type="hidden" id="permissions" value="31"></input>' +
- // dummy controls
- '<div class="files-controls">' +
- ' <div class="actions creatable"></div>' +
- ' <div class="notCreatable"></div>' +
- '</div>' +
- // dummy table
- // TODO: at some point this will be rendered by the fileList class itself!
- '<table class="files-filestable">' +
- '<thead><tr>' +
- '<th class="hidden column-name">' +
- ' <div id="column-name-container">' +
- ' <a class="name sort columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' +
- ' </div>' +
- '</th>' +
- '<th id="headerBackend" class="hidden column-backend">' +
- ' <a class="backend sort columntitle" data-sort="backend"><span>Storage type</span><span class="sort-indicator"></span></a>' +
- '</th>' +
- '<th id="headerScope" class="hidden column-scope column-last">' +
- ' <a class="scope sort columntitle" data-sort="scope"><span>Scope</span><span class="sort-indicator"></span></a>' +
- '</th>' +
- '</tr></thead>' +
- '<tbody class="files-fileList"></tbody>' +
- '<tfoot></tfoot>' +
- '</table>' +
- '<div class="emptyfilelist emptycontent">Empty content message</div>' +
- '</div>'
- );
- });
- afterEach(function() {
- testFiles = undefined;
- fileList.destroy();
- fileList = undefined;
-
- notificationStub.restore();
- alertStub.restore();
- });
-
- describe('loading file list for external storage', function() {
- var ocsResponse;
- var reloading;
-
- beforeEach(function() {
- fileList = new OCA.Files_External.FileList(
- $('#app-content')
- );
-
- reloading = fileList.reload();
-
- /* jshint camelcase: false */
- ocsResponse = {
- ocs: {
- meta: {
- status: 'ok',
- statuscode: 100,
- message: null
- },
- data: [{
- name: 'smb mount',
- path: '/mount points',
- type: 'dir',
- backend: 'SMB',
- scope: 'personal',
- permissions: OC.PERMISSION_READ | OC.PERMISSION_DELETE
- }, {
- name: 'sftp mount',
- path: '/another mount points',
- type: 'dir',
- backend: 'SFTP',
- scope: 'system',
- permissions: OC.PERMISSION_READ
- }]
- }
- };
- });
- it('render storage list', function(done) {
- var request;
- var $rows;
- var $tr;
-
- expect(fakeServer.requests.length).toEqual(1);
- request = fakeServer.requests[0];
- expect(request.url).toEqual(
- OC.linkToOCS('apps/files_external/api/v1') + 'mounts?format=json'
- );
-
- fakeServer.requests[0].respond(
- 200,
- { 'Content-Type': 'application/json' },
- JSON.stringify(ocsResponse)
- );
-
- return reloading.then(function() {
- $rows = fileList.$el.find('tbody tr');
- expect($rows.length).toEqual(2);
-
- $tr = $rows.eq(0);
- expect($tr.attr('data-id')).not.toBeDefined();
- expect($tr.attr('data-type')).toEqual('dir');
- expect($tr.attr('data-file')).toEqual('sftp mount');
- expect($tr.attr('data-path')).toEqual('/another mount points');
- expect($tr.attr('data-size')).not.toBeDefined();
- expect($tr.attr('data-permissions')).toEqual('1'); // read only
- expect($tr.find('a.name').attr('href')).toEqual(
- OC.getRootPath() +
- '/index.php/apps/files' +
- '?dir=/another%20mount%20points/sftp%20mount'
- );
- expect($tr.find('.nametext').text().trim()).toEqual('sftp mount');
- expect($tr.find('.column-scope > span').text().trim()).toEqual('System');
- expect($tr.find('.column-backend').text().trim()).toEqual('SFTP');
-
- $tr = $rows.eq(1);
- expect($tr.attr('data-id')).not.toBeDefined();
- expect($tr.attr('data-type')).toEqual('dir');
- expect($tr.attr('data-file')).toEqual('smb mount');
- expect($tr.attr('data-path')).toEqual('/mount points');
- expect($tr.attr('data-size')).not.toBeDefined();
- expect($tr.attr('data-permissions')).toEqual('9'); // read and delete
- expect($tr.find('a.name').attr('href')).toEqual(
- OC.getRootPath() +
- '/index.php/apps/files' +
- '?dir=/mount%20points/smb%20mount'
- );
- expect($tr.find('.nametext').text().trim()).toEqual('smb mount');
- expect($tr.find('.column-scope > span').text().trim()).toEqual('Personal');
- expect($tr.find('.column-backend').text().trim()).toEqual('SMB');
- }).then(done, done);
- });
- });
-});
diff --git a/apps/files_external/tests/js/settingsSpec.js b/apps/files_external/tests/js/settingsSpec.js
deleted file mode 100644
index f79191151d1..00000000000
--- a/apps/files_external/tests/js/settingsSpec.js
+++ /dev/null
@@ -1,447 +0,0 @@
-/**
- * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
- * SPDX-FileCopyrightText: 2015-2016 ownCloud, Inc.
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-describe('OCA.Files_External.Settings tests', function() {
- var clock;
- var select2Stub;
- var select2ApplicableUsers;
-
- beforeEach(function() {
- clock = sinon.useFakeTimers();
- select2ApplicableUsers = [];
- select2Stub = sinon.stub($.fn, 'select2').callsFake(function(args) {
- if (args === 'val') {
- return select2ApplicableUsers;
- }
- return {
- on: function() { return this; }
- };
- });
-
- // view still requires an existing DOM table
- $('#testArea').append(
- '<table id="externalStorage" data-admin="true">' +
- '<thead></thead>' +
- '<tbody>' +
- '<tr id="addMountPoint" data-id="">' +
- '<td class="status"></td>' +
- '<td class="mountPoint"><input type="text" name="mountPoint"/></td>' +
- '<td class="backend">' +
- '<select class="selectBackend">' +
- '<option disable selected>Add storage</option>' +
- '<option value="\\OC\\TestBackend">Test Backend</option>' +
- '<option value="\\OC\\AnotherTestBackend">Another Test Backend</option>' +
- '<option value="\\OC\\InputsTestBackend">Inputs test backend</option>' +
- '</select>' +
- '</td>' +
- '<td class="authentication"></td>' +
- '<td class="configuration"></td>' +
- '<td class="applicable">' +
- '<input type="checkbox" class="applicableToAllUsers">' +
- '<input type="hidden" class="applicableUsers">' +
- '</td>' +
- '<td class="mountOptionsToggle">'+
- '<div class="icon-more" title="Advanced settings" deluminate_imagetype="unknown"></div>'+
- '<input type="hidden" class="mountOptions"/>'+
- '</td>'+
- '<td class="save">'+
- '<div class="icon-checkmark" title="Save" deluminate_imagetype="unknown"></div>'+
- '</td>'+
- '</tr>' +
- '</tbody>' +
- '</table>'
- );
- // these are usually appended into the data attribute
- // within the DOM by the server template
- $('#externalStorage .selectBackend:first').data('configurations', {
- '\\OC\\TestBackend': {
- 'identifier': '\\OC\\TestBackend',
- 'name': 'Test Backend',
- 'configuration': {
- 'field1': {
- 'value': 'Display Name 1'
- },
- 'field2': {
- 'value': 'Display Name 2',
- 'flags': 1
- }
- },
- 'authSchemes': {
- 'builtin': true,
- },
- 'priority': 11
- },
- '\\OC\\AnotherTestBackend': {
- 'identifier': '\\OC\\AnotherTestBackend',
- 'name': 'Another Test Backend',
- 'configuration': {
- 'field1': {
- 'value': 'Display Name 1'
- },
- 'field2': {
- 'value': 'Display Name 2',
- 'flags': 1
- }
- },
- 'authSchemes': {
- 'builtin': true,
- },
- 'priority': 12
- },
- '\\OC\\InputsTestBackend': {
- 'identifier': '\\OC\\InputsTestBackend',
- 'name': 'Inputs test backend',
- 'configuration': {
- 'field_text': {
- 'value': 'Text field'
- },
- 'field_password': {
- 'value': ',Password field',
- 'type': 2
- },
- 'field_bool': {
- 'value': 'Boolean field',
- 'type': 1
- },
- 'field_hidden': {
- 'value': 'Hidden field',
- 'type': 3
- },
- 'field_text_optional': {
- 'value': 'Text field optional',
- 'flags': 1
- },
- 'field_password_optional': {
- 'value': 'Password field optional',
- 'flags': 1,
- 'type': 2
- }
- },
- 'authSchemes': {
- 'builtin': true,
- },
- 'priority': 13
- }
- }
- );
-
- $('#externalStorage #addMountPoint .authentication:first').data('mechanisms', {
- 'mechanism1': {
- 'identifier': 'mechanism1',
- 'name': 'Mechanism 1',
- 'configuration': {
- },
- 'scheme': 'builtin',
- 'visibility': 3
- },
- });
-
- });
- afterEach(function() {
- select2Stub.restore();
- clock.restore();
- });
-
- describe('storage configuration', function() {
- var view;
-
- function selectBackend(backendName) {
- view.$el.find('.selectBackend:first').val(backendName).trigger('change');
- view.$el.find('.applicableToAllUsers').prop('checked', true).trigger('change');
- }
-
- beforeEach(function() {
- var $el = $('#externalStorage');
- view = new OCA.Files_External.Settings.MountConfigListView($el, {encryptionEnabled: false});
- });
- afterEach(function() {
- view = null;
- });
- describe('selecting backend', function() {
- it('populates the row and creates a new empty one', function() {
- selectBackend('\\OC\\TestBackend');
- var $firstRow = view.$el.find('tr:first');
- expect($firstRow.find('.backend').text()).toEqual('Test Backend');
- expect($firstRow.find('.selectBackend').length).toEqual(0);
-
- // TODO: check "remove" button visibility
-
- // the suggested mount point name
- expect($firstRow.find('[name=mountPoint]').val()).toEqual('TestBackend');
-
- // TODO: check that the options have been created
-
- // TODO: check select2 call on the ".applicableUsers" element
-
- var $emptyRow = $firstRow.next('tr');
- expect($emptyRow.length).toEqual(1);
- expect($emptyRow.find('.selectBackend').length).toEqual(1);
- expect($emptyRow.find('.applicable select').length).toEqual(0);
-
- // TODO: check "remove" button visibility
- });
- it('shows row even if selection row is hidden', function() {
- selectBackend('\\OC\\TestBackend');
- view.$el.find('tr#addMountPoint').hide();
- expect(view.$el.find('tr:first').is(':visible')).toBe(true);
- expect(view.$el.find('tr#addMountPoint').is(':visible')).toBe(false);
- });
- // TODO: test with personal mounts (no applicable fields)
- // TODO: test suggested mount point logic
- });
- describe('saving storages', function() {
- var $tr;
-
- beforeEach(function() {
- selectBackend('\\OC\\TestBackend');
- $tr = view.$el.find('tr:first');
- });
- it('saves storage after clicking the save button', function() {
- var $field1 = $tr.find('input[data-parameter=field1]');
- expect($field1.length).toEqual(1);
- $field1.val('test');
- $field1.trigger(new $.Event('keyup', {keyCode: 97}));
-
- var $mountOptionsField = $tr.find('input.mountOptions');
- expect($mountOptionsField.length).toEqual(1);
- $mountOptionsField.val(JSON.stringify({previews:true}));
-
- var $saveButton = $tr.find('td.save .icon-checkmark');
- $saveButton.click();
-
- expect(fakeServer.requests.length).toEqual(1);
- var request = fakeServer.requests[0];
- expect(request.url).toEqual(OC.getRootPath() + '/index.php/apps/files_external/globalstorages');
- expect(JSON.parse(request.requestBody)).toEqual({
- backend: '\\OC\\TestBackend',
- authMechanism: 'mechanism1',
- backendOptions: {
- 'field1': 'test',
- 'field2': ''
- },
- mountPoint: 'TestBackend',
- priority: 11,
- applicableUsers: [],
- applicableGroups: [],
- mountOptions: {
- 'previews': true
- },
- testOnly: true
- });
-
- // TODO: respond and check data-id
- });
- it('saves storage with applicable users', function() {
- var $field1 = $tr.find('input[data-parameter=field1]');
- expect($field1.length).toEqual(1);
- $field1.val('test');
- $field1.trigger(new $.Event('keyup', {keyCode: 97}));
-
- $tr.find('.applicableToAllUsers').prop('checked', false).trigger('change');
- select2ApplicableUsers = ['user1', 'user2', 'group1(group)', 'group2(group)'];
-
- var $saveButton = $tr.find('td.save .icon-checkmark');
- $saveButton.click();
-
- expect(fakeServer.requests.length).toEqual(1);
- var request = fakeServer.requests[0];
- expect(request.url).toEqual(OC.getRootPath() + '/index.php/apps/files_external/globalstorages');
- expect(JSON.parse(request.requestBody)).toEqual({
- backend: '\\OC\\TestBackend',
- authMechanism: 'mechanism1',
- backendOptions: {
- 'field1': 'test',
- 'field2': ''
- },
- mountPoint: 'TestBackend',
- priority: 11,
- applicableUsers: ['user1', 'user2'],
- applicableGroups: ['group1', 'group2'],
- mountOptions: {
- encrypt: true,
- previews: true,
- enable_sharing: false,
- filesystem_check_changes: 1,
- encoding_compatibility: false,
- readonly: false,
- },
- testOnly: true
- });
-
- // TODO: respond and check data-id
- });
- it('does not saves storage without applicable users and unchecked all users checkbox', function() {
- var $field1 = $tr.find('input[data-parameter=field1]');
- expect($field1.length).toEqual(1);
- $field1.val('test');
- $field1.trigger(new $.Event('keyup', {keyCode: 97}));
-
- $tr.find('.applicableToAllUsers').prop('checked', false).trigger('change');
-
- var $saveButton = $tr.find('td.save .icon-checkmark');
- $saveButton.click();
-
- expect(fakeServer.requests.length).toEqual(0);
- });
-
- it('saves storage after closing mount options popovermenu', function() {
- $tr.find('.mountOptionsToggle .icon-more').click();
- $tr.find('[name=previews]').trigger(new $.Event('keyup', {keyCode: 97}));
- $tr.find('input[data-parameter=field1]').val('test');
-
- // does not save inside the popovermenu
- expect(fakeServer.requests.length).toEqual(0);
-
- $('body').mouseup();
-
- // but after closing the popovermenu
- expect(fakeServer.requests.length).toEqual(1);
- });
- // TODO: status indicator
- });
- describe('validate storage configuration', function() {
- var $tr;
-
- beforeEach(function() {
- selectBackend('\\OC\\InputsTestBackend');
- $tr = view.$el.find('tr:first');
- });
-
- it('lists missing fields in storage errors', function() {
- $tr.find('.applicableToAllUsers').prop('checked', false).trigger('change');
- var storage = view.getStorageConfig($tr);
-
- expect(storage.errors).toEqual({
- backendOptions: ['field_text', 'field_password'],
- requiredApplicable: true,
- });
- });
-
- it('does not list applicable when all users checkbox is ticked', function() {
- var storage = view.getStorageConfig($tr);
-
- expect(storage.errors).toEqual({
- backendOptions: ['field_text', 'field_password']
- });
- });
-
- it('highlights missing non-optional fields', function() {
- _.each([
- 'field_text',
- 'field_password'
- ], function(param) {
- expect($tr.find('input[data-parameter='+param+']').hasClass('warning-input')).toBe(true);
- });
- _.each([
- 'field_bool',
- 'field_hidden',
- 'field_text_optional',
- 'field_password_optional'
- ], function(param) {
- expect($tr.find('input[data-parameter='+param+']').hasClass('warning-input')).toBe(false);
- });
- });
-
- it('validates correct storage', function() {
- $tr.find('[name=mountPoint]').val('mountpoint');
-
- $tr.find('input[data-parameter=field_text]').val('foo');
- $tr.find('input[data-parameter=field_password]').val('bar');
- $tr.find('input[data-parameter=field_text_optional]').val('foobar');
- // don't set field_password_optional
- $tr.find('input[data-parameter=field_hidden]').val('baz');
-
- var storage = view.getStorageConfig($tr);
-
- expect(storage.validate()).toBe(true);
- });
-
- it('checks missing mount point', function() {
- $tr.find('[name=mountPoint]').val('');
-
- $tr.find('input[data-parameter=field_text]').val('foo');
- $tr.find('input[data-parameter=field_password]').val('bar');
-
- var storage = view.getStorageConfig($tr);
-
- expect(storage.validate()).toBe(false);
- });
- });
- describe('update storage', function() {
- // TODO
- });
- describe('delete storage', function() {
- // TODO
- });
- describe('recheck storages', function() {
- // TODO
- });
- describe('mount options popovermenu', function() {
- var $tr;
- var $td;
-
- beforeEach(function() {
- selectBackend('\\OC\\TestBackend');
- $tr = view.$el.find('tr:first');
- $td = $tr.find('.mountOptionsToggle');
- });
-
- it('shows popovermenu when clicking on toggle button, hides when clicking outside', function() {
- $td.find('.icon-more').click();
-
- expect($td.find('.popovermenu.open').length).toEqual(1);
-
- $('body').mouseup();
-
- expect($td.find('.popovermenu.open').length).toEqual(0);
- });
-
- it('doesnt show the encryption option when encryption is disabled', function () {
- view._encryptionEnabled = false;
- $td.find('.icon-more').click();
-
- expect($td.find('.popovermenu [name=encrypt]:visible').length).toEqual(0);
-
- $('body').mouseup();
-
- expect($td.find('.popovermenu.open').length).toEqual(0);
- });
-
- it('reads config from mountOptions field', function() {
- $tr.find('input.mountOptions').val(JSON.stringify({previews:false}));
-
- $td.find('.icon-more').click();
- expect($td.find('.popovermenu [name=previews]').prop('checked')).toEqual(false);
- $('body').mouseup();
-
- $tr.find('input.mountOptions').val(JSON.stringify({previews:true}));
- $td.find('.icon-more').click();
- expect($td.find('.popovermenu [name=previews]').prop('checked')).toEqual(true);
- });
-
- it('writes config into mountOptions field', function() {
- $td.find('.icon-more').click();
- // defaults to true
- var $field = $td.find('.popovermenu [name=previews]');
- expect($field.prop('checked')).toEqual(true);
- $td.find('.popovermenu [name=filesystem_check_changes]').val(0);
- $('body').mouseup();
-
- expect(JSON.parse($tr.find('input.mountOptions').val())).toEqual({
- encrypt: true,
- previews: true,
- enable_sharing: false,
- filesystem_check_changes: 0,
- encoding_compatibility: false,
- readonly: false
- });
- });
- });
- });
- describe('allow user mounts section', function() {
- // TODO: test allowUserMounting section
- });
-});
diff --git a/apps/files_reminders/l10n/en_GB.js b/apps/files_reminders/l10n/en_GB.js
index 39e216c1089..84d29ac5b18 100644
--- a/apps/files_reminders/l10n/en_GB.js
+++ b/apps/files_reminders/l10n/en_GB.js
@@ -6,6 +6,8 @@ OC.L10N.register(
"View file" : "View file",
"View folder" : "View folder",
"Files reminder" : "Files reminder",
+ "The \"files_reminders\" app can work properly." : "The \"files_reminders\" app can work properly.",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder.",
"Set file reminders" : "Set file reminders",
"**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly.",
"Set reminder for \"{fileName}\"" : "Set reminder for \"{fileName}\"",
diff --git a/apps/files_reminders/l10n/en_GB.json b/apps/files_reminders/l10n/en_GB.json
index ba7020cb8a0..495be5f0bd9 100644
--- a/apps/files_reminders/l10n/en_GB.json
+++ b/apps/files_reminders/l10n/en_GB.json
@@ -4,6 +4,8 @@
"View file" : "View file",
"View folder" : "View folder",
"Files reminder" : "Files reminder",
+ "The \"files_reminders\" app can work properly." : "The \"files_reminders\" app can work properly.",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder.",
"Set file reminders" : "Set file reminders",
"**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly.",
"Set reminder for \"{fileName}\"" : "Set reminder for \"{fileName}\"",
diff --git a/apps/files_reminders/l10n/fr.js b/apps/files_reminders/l10n/fr.js
index 5db5e281323..7faf292ac61 100644
--- a/apps/files_reminders/l10n/fr.js
+++ b/apps/files_reminders/l10n/fr.js
@@ -5,15 +5,18 @@ OC.L10N.register(
"Reminder for {name}" : "Rappel pour {name}",
"View file" : "Voir le fichier",
"View folder" : "Voir le dossier",
+ "Files reminder" : "Rappel des fichiers",
+ "The \"files_reminders\" app can work properly." : "L'application « files_reminders » peut fonctionner correctement.",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "L'application « files_reminders » a besoin de l'application de notifications pour fonctionner correctement. Vous devez activer les notifications ou désactiver « files_reminder ».",
"Set file reminders" : "Définir des rappels pour des fichiers",
"**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Rappels de fichiers**\n\nDéfinit des rappels de fichiers.\n\nNote: pour utiliser l'application `Rappels de fichiers`, assurez-vous que l'application `Notifications` est installée et activée. L'application `Notifications` fournit les APIs nécessaires pour que l'application `Rappels de fichiers` fonctionne correctement.",
- "Set reminder for \"{fileName}\"" : "Définir un rappel pour « {fileName} »",
+ "Set reminder for \"{fileName}\"" : "Définir un rappel pour « {fileName} »",
"Set reminder at custom date & time" : "Définition d'un rappel à une date et une heure personnalisées",
"Clear reminder" : "Effacer le rappel",
"Please choose a valid date & time" : "Veuillez choisir une date et une heure valables",
"Reminder set for \"{fileName}\"" : "Définition d’un rappel pour « {fileName} »",
"Failed to set reminder" : "Échec de la définition du rappel",
- "Reminder cleared for \"{fileName}\"" : "Rappel effacé pour « {fileName} »",
+ "Reminder cleared for \"{fileName}\"" : "Rappel effacé pour « {fileName} »",
"Failed to clear reminder" : "Échec de l'effacement du rappel",
"We will remind you of this file" : "Nous vous rappellerons de ce fichier",
"Cancel" : "Annuler",
@@ -27,6 +30,8 @@ OC.L10N.register(
"This weekend" : "Ce week-end",
"Set reminder for this weekend" : "Définir un rappel pour ce week-end",
"Next week" : "Semaine suivante",
- "Set reminder for next week" : "Définir un rappel pour la semaine prochaine"
+ "Set reminder for next week" : "Définir un rappel pour la semaine prochaine",
+ "This files_reminder can work properly." : "Ce fichier_reminder peut fonctionner correctement.",
+ "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "L'application files_reminder a besoin de l'application de notifications pour fonctionner correctement. Vous devez activer les notifications ou désactiver files_reminder."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_reminders/l10n/fr.json b/apps/files_reminders/l10n/fr.json
index 2d876b6080e..17f299e934e 100644
--- a/apps/files_reminders/l10n/fr.json
+++ b/apps/files_reminders/l10n/fr.json
@@ -3,15 +3,18 @@
"Reminder for {name}" : "Rappel pour {name}",
"View file" : "Voir le fichier",
"View folder" : "Voir le dossier",
+ "Files reminder" : "Rappel des fichiers",
+ "The \"files_reminders\" app can work properly." : "L'application « files_reminders » peut fonctionner correctement.",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "L'application « files_reminders » a besoin de l'application de notifications pour fonctionner correctement. Vous devez activer les notifications ou désactiver « files_reminder ».",
"Set file reminders" : "Définir des rappels pour des fichiers",
"**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Rappels de fichiers**\n\nDéfinit des rappels de fichiers.\n\nNote: pour utiliser l'application `Rappels de fichiers`, assurez-vous que l'application `Notifications` est installée et activée. L'application `Notifications` fournit les APIs nécessaires pour que l'application `Rappels de fichiers` fonctionne correctement.",
- "Set reminder for \"{fileName}\"" : "Définir un rappel pour « {fileName} »",
+ "Set reminder for \"{fileName}\"" : "Définir un rappel pour « {fileName} »",
"Set reminder at custom date & time" : "Définition d'un rappel à une date et une heure personnalisées",
"Clear reminder" : "Effacer le rappel",
"Please choose a valid date & time" : "Veuillez choisir une date et une heure valables",
"Reminder set for \"{fileName}\"" : "Définition d’un rappel pour « {fileName} »",
"Failed to set reminder" : "Échec de la définition du rappel",
- "Reminder cleared for \"{fileName}\"" : "Rappel effacé pour « {fileName} »",
+ "Reminder cleared for \"{fileName}\"" : "Rappel effacé pour « {fileName} »",
"Failed to clear reminder" : "Échec de l'effacement du rappel",
"We will remind you of this file" : "Nous vous rappellerons de ce fichier",
"Cancel" : "Annuler",
@@ -25,6 +28,8 @@
"This weekend" : "Ce week-end",
"Set reminder for this weekend" : "Définir un rappel pour ce week-end",
"Next week" : "Semaine suivante",
- "Set reminder for next week" : "Définir un rappel pour la semaine prochaine"
+ "Set reminder for next week" : "Définir un rappel pour la semaine prochaine",
+ "This files_reminder can work properly." : "Ce fichier_reminder peut fonctionner correctement.",
+ "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "L'application files_reminder a besoin de l'application de notifications pour fonctionner correctement. Vous devez activer les notifications ou désactiver files_reminder."
},"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/files_reminders/l10n/sc.js b/apps/files_reminders/l10n/sc.js
deleted file mode 100644
index 4307fc64679..00000000000
--- a/apps/files_reminders/l10n/sc.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "files_reminders",
- {
- "Set file reminders" : "Cunfigura apuntos de archìviu",
- "Set reminder for \"{fileName}\"" : "Cunfigura un'apuntu pro \"{fileName}\"",
- "Set reminder at custom date & time" : "Cunfigura un'apuntu pro una data e ora ispetzìfica",
- "Reminder set for \"{fileName}\"" : "Apuntu cunfiguradu pro \"{fileName}\"",
- "Failed to set reminder" : "Errore in sa cunfiguratzione de s'apuntu",
- "Cancel" : "Annulla",
- "Set reminder" : "Cunfigura un'apuntu",
- "Set custom reminder" : "Cunfigura un'apuntu personalizadu",
- "Set reminder for later today" : "Cunfigura un'apuntu pro luego",
- "Tomorrow" : "Cras",
- "Set reminder for tomorrow" : "Cunfigura un'apuntu pro cras",
- "Set reminder for this weekend" : "Cunfigura un'apuntu pro custu fine de chida",
- "Next week" : "Sa chida chi benit",
- "Set reminder for next week" : "Cunfigura un'apuntu pro chida chi benit"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_reminders/l10n/sc.json b/apps/files_reminders/l10n/sc.json
deleted file mode 100644
index 1d9eb562048..00000000000
--- a/apps/files_reminders/l10n/sc.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "Set file reminders" : "Cunfigura apuntos de archìviu",
- "Set reminder for \"{fileName}\"" : "Cunfigura un'apuntu pro \"{fileName}\"",
- "Set reminder at custom date & time" : "Cunfigura un'apuntu pro una data e ora ispetzìfica",
- "Reminder set for \"{fileName}\"" : "Apuntu cunfiguradu pro \"{fileName}\"",
- "Failed to set reminder" : "Errore in sa cunfiguratzione de s'apuntu",
- "Cancel" : "Annulla",
- "Set reminder" : "Cunfigura un'apuntu",
- "Set custom reminder" : "Cunfigura un'apuntu personalizadu",
- "Set reminder for later today" : "Cunfigura un'apuntu pro luego",
- "Tomorrow" : "Cras",
- "Set reminder for tomorrow" : "Cunfigura un'apuntu pro cras",
- "Set reminder for this weekend" : "Cunfigura un'apuntu pro custu fine de chida",
- "Next week" : "Sa chida chi benit",
- "Set reminder for next week" : "Cunfigura un'apuntu pro chida chi benit"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_reminders/l10n/tr.js b/apps/files_reminders/l10n/tr.js
index 08def3387b1..fed3ae46385 100644
--- a/apps/files_reminders/l10n/tr.js
+++ b/apps/files_reminders/l10n/tr.js
@@ -7,7 +7,7 @@ OC.L10N.register(
"View folder" : "Klasörü görüntüle",
"Files reminder" : "Dosyalar anımsatıcısı",
"The \"files_reminders\" app can work properly." : "\"files_reminders\" uygulaması düzgün çalışabilir.",
- "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "\"files_reminders\" uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın.",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "\"files_reminders\" uygulamasının düzgün çalışması için Bildirimler uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın.",
"Set file reminders" : "Dosya anımsatıcıları ayarla",
"**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Dosya anımsatıcıları**\n\nDosya anımsatıcıları ayarlayın.\n\nNot: `Dosya anımsatıcıları` uygulamasını kullanmak için `Bildirimler` uygulamasının kurulmuş ve etkinleştirilmiş olduğundan emin olun. `Bildirimler` uygulaması `Dosya anımsatıcıları` uygulamasının doğru çalışması için gerekli API uygulamalarını sağlar.",
"Set reminder for \"{fileName}\"" : "\"{fileName}\" için anımsatıcı ayarla",
@@ -32,6 +32,6 @@ OC.L10N.register(
"Next week" : "Sonraki hafta",
"Set reminder for next week" : "Gelecek hafta için anımsatıcı ayarla",
"This files_reminder can work properly." : "Bu files_reminder düzgün çalışabilir.",
- "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminders uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın."
+ "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminders uygulamasının düzgün çalışması için Bildirimler uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_reminders/l10n/tr.json b/apps/files_reminders/l10n/tr.json
index c80e7afa9ab..3a8f47edce7 100644
--- a/apps/files_reminders/l10n/tr.json
+++ b/apps/files_reminders/l10n/tr.json
@@ -5,7 +5,7 @@
"View folder" : "Klasörü görüntüle",
"Files reminder" : "Dosyalar anımsatıcısı",
"The \"files_reminders\" app can work properly." : "\"files_reminders\" uygulaması düzgün çalışabilir.",
- "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "\"files_reminders\" uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın.",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "\"files_reminders\" uygulamasının düzgün çalışması için Bildirimler uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın.",
"Set file reminders" : "Dosya anımsatıcıları ayarla",
"**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Dosya anımsatıcıları**\n\nDosya anımsatıcıları ayarlayın.\n\nNot: `Dosya anımsatıcıları` uygulamasını kullanmak için `Bildirimler` uygulamasının kurulmuş ve etkinleştirilmiş olduğundan emin olun. `Bildirimler` uygulaması `Dosya anımsatıcıları` uygulamasının doğru çalışması için gerekli API uygulamalarını sağlar.",
"Set reminder for \"{fileName}\"" : "\"{fileName}\" için anımsatıcı ayarla",
@@ -30,6 +30,6 @@
"Next week" : "Sonraki hafta",
"Set reminder for next week" : "Gelecek hafta için anımsatıcı ayarla",
"This files_reminder can work properly." : "Bu files_reminder düzgün çalışabilir.",
- "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminders uygulamasının düzgün çalışması için bildirim uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın."
+ "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminders uygulamasının düzgün çalışması için Bildirimler uygulaması gereklidir. Bildirimler uygulamasını kullanıma alın ya da files_reminder uygulamasını kullanımdan kaldırın."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_reminders/l10n/zh_HK.js b/apps/files_reminders/l10n/zh_HK.js
index 2651cac8cdd..4bd677a177e 100644
--- a/apps/files_reminders/l10n/zh_HK.js
+++ b/apps/files_reminders/l10n/zh_HK.js
@@ -6,6 +6,8 @@ OC.L10N.register(
"View file" : "檢視檔案",
"View folder" : "檢視資料夾",
"Files reminder" : "檔案提醒",
+ "The \"files_reminders\" app can work properly." : "「files_reminders」應用程式可以正常運作。",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "「files_reminder」應用程式需要通知應用程式才能正常運作。您應該啟用通知或停用 files_reminder。",
"Set file reminders" : "設定檔案提醒",
"**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 檔案提醒**\n\n設定檔案提醒。\n\n注意:要使用「檔案提醒」應用程式,請確定已安裝並啟用「通知」應用程式。「通知」應用程式提供必要的 API,讓「檔案提醒」應用程式能正常運作。",
"Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒",
@@ -28,6 +30,8 @@ OC.L10N.register(
"This weekend" : "本週末",
"Set reminder for this weekend" : "設定本週末的提醒",
"Next week" : "下星期",
- "Set reminder for next week" : "設定下星期的提醒"
+ "Set reminder for next week" : "設定下星期的提醒",
+ "This files_reminder can work properly." : "此 files_reminder 可以正常運作。",
+ "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminder 應用程式需要通知應用程式才能正常運作。您應該啟用通知或停用 files_reminder。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_reminders/l10n/zh_HK.json b/apps/files_reminders/l10n/zh_HK.json
index d973c4eba37..676c4164157 100644
--- a/apps/files_reminders/l10n/zh_HK.json
+++ b/apps/files_reminders/l10n/zh_HK.json
@@ -4,6 +4,8 @@
"View file" : "檢視檔案",
"View folder" : "檢視資料夾",
"Files reminder" : "檔案提醒",
+ "The \"files_reminders\" app can work properly." : "「files_reminders」應用程式可以正常運作。",
+ "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "「files_reminder」應用程式需要通知應用程式才能正常運作。您應該啟用通知或停用 files_reminder。",
"Set file reminders" : "設定檔案提醒",
"**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 檔案提醒**\n\n設定檔案提醒。\n\n注意:要使用「檔案提醒」應用程式,請確定已安裝並啟用「通知」應用程式。「通知」應用程式提供必要的 API,讓「檔案提醒」應用程式能正常運作。",
"Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒",
@@ -26,6 +28,8 @@
"This weekend" : "本週末",
"Set reminder for this weekend" : "設定本週末的提醒",
"Next week" : "下星期",
- "Set reminder for next week" : "設定下星期的提醒"
+ "Set reminder for next week" : "設定下星期的提醒",
+ "This files_reminder can work properly." : "此 files_reminder 可以正常運作。",
+ "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "files_reminder 應用程式需要通知應用程式才能正常運作。您應該啟用通知或停用 files_reminder。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php b/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php
index d8467d1740c..ab8c762d674 100644
--- a/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php
+++ b/apps/files_reminders/lib/BackgroundJob/ScheduledNotifications.php
@@ -13,10 +13,10 @@ use OCA\FilesReminders\Db\ReminderMapper;
use OCA\FilesReminders\Service\ReminderService;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Utility\ITimeFactory;
-use OCP\BackgroundJob\Job;
+use OCP\BackgroundJob\TimedJob;
use Psr\Log\LoggerInterface;
-class ScheduledNotifications extends Job {
+class ScheduledNotifications extends TimedJob {
public function __construct(
ITimeFactory $time,
protected ReminderMapper $reminderMapper,
@@ -24,6 +24,8 @@ class ScheduledNotifications extends Job {
protected LoggerInterface $logger,
) {
parent::__construct($time);
+
+ $this->setInterval(60);
}
/**
diff --git a/apps/files_reminders/lib/Db/ReminderMapper.php b/apps/files_reminders/lib/Db/ReminderMapper.php
index 0ba5cfc3ecd..63cba437d07 100644
--- a/apps/files_reminders/lib/Db/ReminderMapper.php
+++ b/apps/files_reminders/lib/Db/ReminderMapper.php
@@ -137,24 +137,14 @@ class ReminderMapper extends QBMapper {
* @return Reminder[]
*/
public function findAllInFolder(IUser $user, Folder $folder) {
- $fileIds = array_values(array_filter(array_map(
- function (Node $node) {
- try {
- return $node->getId();
- } catch (NotFoundException $e) {
- return null;
- }
- },
- $folder->getDirectoryListing(),
- )));
-
$qb = $this->db->getQueryBuilder();
- $qb->select('id', 'user_id', 'file_id', 'due_date', 'updated_at', 'created_at', 'notified')
- ->from($this->getTableName())
- ->where($qb->expr()->eq('user_id', $qb->createNamedParameter($user->getUID(), IQueryBuilder::PARAM_STR)))
- ->andWhere($qb->expr()->in('file_id', $qb->createNamedParameter($fileIds, IQueryBuilder::PARAM_INT_ARRAY)))
- ->orderBy('due_date', 'ASC');
+ $qb->select('r.id', 'r.user_id', 'r.file_id', 'r.due_date', 'r.updated_at', 'r.created_at', 'r.notified')
+ ->from($this->getTableName(), 'r')
+ ->innerJoin('r', 'filecache', 'f', $qb->expr()->eq('r.file_id', 'f.fileid'))
+ ->where($qb->expr()->eq('r.user_id', $qb->createNamedParameter($user->getUID(), IQueryBuilder::PARAM_STR)))
+ ->andWhere($qb->expr()->eq('f.parent', $qb->createNamedParameter($folder->getId(), IQueryBuilder::PARAM_INT)))
+ ->orderBy('r.due_date', 'ASC');
return $this->findEntities($qb);
}
diff --git a/apps/files_sharing/composer/composer/autoload_classmap.php b/apps/files_sharing/composer/composer/autoload_classmap.php
index 8682fd5f238..92751ead730 100644
--- a/apps/files_sharing/composer/composer/autoload_classmap.php
+++ b/apps/files_sharing/composer/composer/autoload_classmap.php
@@ -29,6 +29,7 @@ return array(
'OCA\\Files_Sharing\\Command\\ExiprationNotification' => $baseDir . '/../lib/Command/ExiprationNotification.php',
'OCA\\Files_Sharing\\Command\\FixShareOwners' => $baseDir . '/../lib/Command/FixShareOwners.php',
'OCA\\Files_Sharing\\Command\\ListShares' => $baseDir . '/../lib/Command/ListShares.php',
+ 'OCA\\Files_Sharing\\Config\\ConfigLexicon' => $baseDir . '/../lib/Config/ConfigLexicon.php',
'OCA\\Files_Sharing\\Controller\\AcceptController' => $baseDir . '/../lib/Controller/AcceptController.php',
'OCA\\Files_Sharing\\Controller\\DeletedShareAPIController' => $baseDir . '/../lib/Controller/DeletedShareAPIController.php',
'OCA\\Files_Sharing\\Controller\\ExternalSharesController' => $baseDir . '/../lib/Controller/ExternalSharesController.php',
diff --git a/apps/files_sharing/composer/composer/autoload_static.php b/apps/files_sharing/composer/composer/autoload_static.php
index 3bf5bcdffda..6ca952007a1 100644
--- a/apps/files_sharing/composer/composer/autoload_static.php
+++ b/apps/files_sharing/composer/composer/autoload_static.php
@@ -44,6 +44,7 @@ class ComposerStaticInitFiles_Sharing
'OCA\\Files_Sharing\\Command\\ExiprationNotification' => __DIR__ . '/..' . '/../lib/Command/ExiprationNotification.php',
'OCA\\Files_Sharing\\Command\\FixShareOwners' => __DIR__ . '/..' . '/../lib/Command/FixShareOwners.php',
'OCA\\Files_Sharing\\Command\\ListShares' => __DIR__ . '/..' . '/../lib/Command/ListShares.php',
+ 'OCA\\Files_Sharing\\Config\\ConfigLexicon' => __DIR__ . '/..' . '/../lib/Config/ConfigLexicon.php',
'OCA\\Files_Sharing\\Controller\\AcceptController' => __DIR__ . '/..' . '/../lib/Controller/AcceptController.php',
'OCA\\Files_Sharing\\Controller\\DeletedShareAPIController' => __DIR__ . '/..' . '/../lib/Controller/DeletedShareAPIController.php',
'OCA\\Files_Sharing\\Controller\\ExternalSharesController' => __DIR__ . '/..' . '/../lib/Controller/ExternalSharesController.php',
diff --git a/apps/files_sharing/css/404.css b/apps/files_sharing/css/404.css
index 160a8f83fc3..7542c7cfae1 100644
--- a/apps/files_sharing/css/404.css
+++ b/apps/files_sharing/css/404.css
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#body-login .error-broken-link{
- text-align:left;color:#fff;
+ text-align:start;color:#fff;
}
#body-login .error-broken-link ul{
diff --git a/apps/files_sharing/l10n/ar.js b/apps/files_sharing/l10n/ar.js
index eae64a56eae..508fe55aa0a 100644
--- a/apps/files_sharing/l10n/ar.js
+++ b/apps/files_sharing/l10n/ar.js
@@ -185,7 +185,6 @@ OC.L10N.register(
"Set default folder for accepted shares" : "تعيين المجلد الافتراضي للمشاركات المقبولة",
"Reset" : "إعادة تعيين",
"Reset folder to system default" : "إعادة تعيين المجلد إلى افتراضات النظام",
- "Share expiration: " : "تاريخ انتهاء صلاحية المشاركة:",
"Share Expiration" : "تاريخ انتهاء صلاحية المشاركة",
"group" : "مجموعة",
"conversation" : "محادثة",
@@ -259,12 +258,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "بمجرد رفعك للملفات، أنت تعتبر موافقاً على شروط الخدمة.",
"View terms of service" : "عرض شروط الخدمة",
"Terms of service" : "شروط الخدمة",
- "Upload files to {folder}" : "رفع ملفات إلى {folder}",
- "Submit name" : "إرسال الاسم",
- "{ownerDisplayName} shared a folder with you." : "قام {ownerDisplayName} بمشاركة مجلد معك.",
- "To upload files, you need to provide your name first." : "لرفع الملفات، يجب أن تكتب اسمك أوّلاً.",
- "Name" : "الاسم",
- "Enter your name" : "أدخِل اسمك",
"Share with {userName}" : "شارِك مع {userName}",
"Share with email {email}" : "مشاركة مع صاحب البريد الإلكتروني {email}",
"Share with group" : "شارِك مع مجموعة",
@@ -313,16 +306,15 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو الفرق داخل مؤسستك. إذا كان المستلم لديه بالفعل حق الوصول إلى المشاركة ولكنه لا يستطيع تحديد موقعها، فيمكنك إرسال رابط المشاركة الداخلي إليه لتسهيل وصوله إليها.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو المؤسسات خارج مؤسستك. يمكن مشاركة الملفات والمجلدات عبر روابط المشاركة العامة وعناوين البريد الإلكتروني. يمكنك أيضًا المشاركة مع حسابات نكست كلاود الأخرى المستضافة على خوادم مختلفة باستخدام مُعرِّف سحابتها الاتحاديّة.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "المشاركات التي لا تشكل جزءاً من المشاركات الداخلية أو الخارجية تُعد مُشارَكات من تطبيقات أو مصادر أخرى.",
+ "Share with accounts and teams" : "المشاركة مع حسابات وفِرَق",
"Unable to load the shares list" : "تعذّر تحميل قائمة المشاركات",
"Expires {relativetime}" : "تنتهي الصلاحية في {relativetime}",
"this share just expired." : "صلاحية هذه المشاركة إنتَهَت للتَّوّ.",
"Shared with you by {owner}" : "تمّت مشاركته معك من قِبَل {owner}",
"Internal shares" : "مشاركات داخلية",
"Internal shares explanation" : "شرح المشاركات الداخلية",
- "Share with accounts and teams" : "المشاركة مع حسابات وفِرَق",
"External shares" : "مشاركات خارجية",
"External shares explanation" : "شرح مشاركات خارجية",
- "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة",
"Additional shares" : "مشاركات إضافية",
"Additional shares explanation" : "شرح مشاركات إضافية",
"Link to a file" : "رابط إلى ملف",
@@ -383,6 +375,8 @@ OC.L10N.register(
"Share note for recipient saved" : "تمّ حفظ ملاحظة المشاركة الموجهة إلى المستلم",
"Share password saved" : "تمّ حفظ كلمة مرور المشاركة",
"Share permissions saved" : "تمّ حفظ إذونات المشاركة",
+ "Upload files to {folder}" : "رفع ملفات إلى {folder}",
+ "{ownerDisplayName} shared a folder with you." : "قام {ownerDisplayName} بمشاركة مجلد معك.",
"Shared by" : "تمّت مشاركته من قِبَل",
"Shared with" : "تمّت مشاركته مع",
"Password created successfully" : "تمّ إنشاء كلمة المرور بنجاح",
@@ -413,15 +407,17 @@ OC.L10N.register(
"No compatible server found at {remote}" : "لم يتم العثور على خادم متوافق في {remote}",
"Invalid server URL" : "عنوان الرابط للخادم غير صالح",
"Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادم السحابي الخاص بك",
- "Files" : "الملفّات",
+ "You are not allowed to edit link shares that you don't own" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها",
"Download all files" : "تنزيل كافة الملفات",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} عنوان إيميل سبقت إضافته سلفاً","1 عنوان إيميل سبقت إضافته سلفاً","{count} عنوان إيميل سبقت إضافته سلفاً","{count} عناوين إيميل سبقت إضافتهت سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"],
"Search for share recipients" : "إضافة أشخاص لاستلام المشاركة",
"No recommendations. Start typing." : "لا توجد توصيات. إبدأ الكتابة.",
- "Password field can't be empty" : "خانة كلمة المرور لايمكن أن تكون فارغة",
- "Allow download" : "السماح بالتنزيل",
- "Share expire date saved" : "تمّ حفظ تاريخ انتهاء صلاحية المشاركة",
- "You are not allowed to edit link shares that you don't own" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count} عنوان إيميل سبقت إضافته سلفاً","1 عنوان إيميل سبقت إضافته سلفاً","{count} عنوان إيميل سبقت إضافته سلفاً","{count} عناوين إيميل سبقت إضافتهت سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً"],
- "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"]
+ "To upload files, you need to provide your name first." : "لرفع الملفات، يجب أن تكتب اسمك أوّلاً.",
+ "Enter your name" : "أدخِل اسمك",
+ "Submit name" : "إرسال الاسم",
+ "Name" : "الاسم",
+ "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة",
+ "Filename must not be empty." : "يجب ألّا يكون اسم الملف فارغاً."
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/files_sharing/l10n/ar.json b/apps/files_sharing/l10n/ar.json
index 35eebb01014..540daa96c91 100644
--- a/apps/files_sharing/l10n/ar.json
+++ b/apps/files_sharing/l10n/ar.json
@@ -183,7 +183,6 @@
"Set default folder for accepted shares" : "تعيين المجلد الافتراضي للمشاركات المقبولة",
"Reset" : "إعادة تعيين",
"Reset folder to system default" : "إعادة تعيين المجلد إلى افتراضات النظام",
- "Share expiration: " : "تاريخ انتهاء صلاحية المشاركة:",
"Share Expiration" : "تاريخ انتهاء صلاحية المشاركة",
"group" : "مجموعة",
"conversation" : "محادثة",
@@ -257,12 +256,6 @@
"By uploading files, you agree to the terms of service." : "بمجرد رفعك للملفات، أنت تعتبر موافقاً على شروط الخدمة.",
"View terms of service" : "عرض شروط الخدمة",
"Terms of service" : "شروط الخدمة",
- "Upload files to {folder}" : "رفع ملفات إلى {folder}",
- "Submit name" : "إرسال الاسم",
- "{ownerDisplayName} shared a folder with you." : "قام {ownerDisplayName} بمشاركة مجلد معك.",
- "To upload files, you need to provide your name first." : "لرفع الملفات، يجب أن تكتب اسمك أوّلاً.",
- "Name" : "الاسم",
- "Enter your name" : "أدخِل اسمك",
"Share with {userName}" : "شارِك مع {userName}",
"Share with email {email}" : "مشاركة مع صاحب البريد الإلكتروني {email}",
"Share with group" : "شارِك مع مجموعة",
@@ -311,16 +304,15 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو الفرق داخل مؤسستك. إذا كان المستلم لديه بالفعل حق الوصول إلى المشاركة ولكنه لا يستطيع تحديد موقعها، فيمكنك إرسال رابط المشاركة الداخلي إليه لتسهيل وصوله إليها.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "استَعمِل هذه الطريقة لمشاركة الملفات مع الأفراد أو المؤسسات خارج مؤسستك. يمكن مشاركة الملفات والمجلدات عبر روابط المشاركة العامة وعناوين البريد الإلكتروني. يمكنك أيضًا المشاركة مع حسابات نكست كلاود الأخرى المستضافة على خوادم مختلفة باستخدام مُعرِّف سحابتها الاتحاديّة.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "المشاركات التي لا تشكل جزءاً من المشاركات الداخلية أو الخارجية تُعد مُشارَكات من تطبيقات أو مصادر أخرى.",
+ "Share with accounts and teams" : "المشاركة مع حسابات وفِرَق",
"Unable to load the shares list" : "تعذّر تحميل قائمة المشاركات",
"Expires {relativetime}" : "تنتهي الصلاحية في {relativetime}",
"this share just expired." : "صلاحية هذه المشاركة إنتَهَت للتَّوّ.",
"Shared with you by {owner}" : "تمّت مشاركته معك من قِبَل {owner}",
"Internal shares" : "مشاركات داخلية",
"Internal shares explanation" : "شرح المشاركات الداخلية",
- "Share with accounts and teams" : "المشاركة مع حسابات وفِرَق",
"External shares" : "مشاركات خارجية",
"External shares explanation" : "شرح مشاركات خارجية",
- "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة",
"Additional shares" : "مشاركات إضافية",
"Additional shares explanation" : "شرح مشاركات إضافية",
"Link to a file" : "رابط إلى ملف",
@@ -381,6 +373,8 @@
"Share note for recipient saved" : "تمّ حفظ ملاحظة المشاركة الموجهة إلى المستلم",
"Share password saved" : "تمّ حفظ كلمة مرور المشاركة",
"Share permissions saved" : "تمّ حفظ إذونات المشاركة",
+ "Upload files to {folder}" : "رفع ملفات إلى {folder}",
+ "{ownerDisplayName} shared a folder with you." : "قام {ownerDisplayName} بمشاركة مجلد معك.",
"Shared by" : "تمّت مشاركته من قِبَل",
"Shared with" : "تمّت مشاركته مع",
"Password created successfully" : "تمّ إنشاء كلمة المرور بنجاح",
@@ -411,15 +405,17 @@
"No compatible server found at {remote}" : "لم يتم العثور على خادم متوافق في {remote}",
"Invalid server URL" : "عنوان الرابط للخادم غير صالح",
"Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادم السحابي الخاص بك",
- "Files" : "الملفّات",
+ "You are not allowed to edit link shares that you don't own" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها",
"Download all files" : "تنزيل كافة الملفات",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} عنوان إيميل سبقت إضافته سلفاً","1 عنوان إيميل سبقت إضافته سلفاً","{count} عنوان إيميل سبقت إضافته سلفاً","{count} عناوين إيميل سبقت إضافتهت سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"],
"Search for share recipients" : "إضافة أشخاص لاستلام المشاركة",
"No recommendations. Start typing." : "لا توجد توصيات. إبدأ الكتابة.",
- "Password field can't be empty" : "خانة كلمة المرور لايمكن أن تكون فارغة",
- "Allow download" : "السماح بالتنزيل",
- "Share expire date saved" : "تمّ حفظ تاريخ انتهاء صلاحية المشاركة",
- "You are not allowed to edit link shares that you don't own" : "أنت غير مسموحٍ لك بتعديل مشاركات الروابط التي لا تملكها",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count} عنوان إيميل سبقت إضافته سلفاً","1 عنوان إيميل سبقت إضافته سلفاً","{count} عنوان إيميل سبقت إضافته سلفاً","{count} عناوين إيميل سبقت إضافتهت سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً","{count} عناوين إيميل سبقت إضافتها سلفاً"],
- "_1 email address added_::_{count} email addresses added_" : ["{count} عنوان إيميل تمت إضافته","1 عنوان إيميل تمت إضافته","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها","{count} عناوين إيميل تمت إضافتها"]
+ "To upload files, you need to provide your name first." : "لرفع الملفات، يجب أن تكتب اسمك أوّلاً.",
+ "Enter your name" : "أدخِل اسمك",
+ "Submit name" : "إرسال الاسم",
+ "Name" : "الاسم",
+ "Email, federated cloud id" : "بريد إلكتروني، مُعرِّف سحابة اتحاديّة",
+ "Filename must not be empty." : "يجب ألّا يكون اسم الملف فارغاً."
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ast.js b/apps/files_sharing/l10n/ast.js
index 803bd2ad8b2..93fbfd31a73 100644
--- a/apps/files_sharing/l10n/ast.js
+++ b/apps/files_sharing/l10n/ast.js
@@ -194,7 +194,6 @@ OC.L10N.register(
"on {server}" : "en: {server}",
"File drop" : "Suelta de ficheros",
"Terms of service" : "Términos del serviciu",
- "Name" : "Nome",
"Share with {userName}" : "Compartir con {userName}",
"Share with email {email}" : "Compartir cola direición de corréu electrónica {email}",
"Share with group" : "Compartir col grupu",
@@ -300,10 +299,9 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Nun s'atopó nengún sirvidor compatible en «{remote}»",
"Invalid server URL" : "La URL del sirvidor ye inválida",
"Failed to add the public link to your Nextcloud" : "Nun se pue amestar l'enllaz públicu a esta instancia de Nextcloud",
- "Files" : "Ficheros",
"Download all files" : "Baxar tolos ficheros",
"Search for share recipients" : "Buscar destinatarios del elementu compartíu",
"No recommendations. Start typing." : "Nun hai nenguna recomendación. Comienza a escribir",
- "Allow download" : "Permitir la descarga"
+ "Name" : "Nome"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ast.json b/apps/files_sharing/l10n/ast.json
index a596b7334cb..596e94b9050 100644
--- a/apps/files_sharing/l10n/ast.json
+++ b/apps/files_sharing/l10n/ast.json
@@ -192,7 +192,6 @@
"on {server}" : "en: {server}",
"File drop" : "Suelta de ficheros",
"Terms of service" : "Términos del serviciu",
- "Name" : "Nome",
"Share with {userName}" : "Compartir con {userName}",
"Share with email {email}" : "Compartir cola direición de corréu electrónica {email}",
"Share with group" : "Compartir col grupu",
@@ -298,10 +297,9 @@
"No compatible server found at {remote}" : "Nun s'atopó nengún sirvidor compatible en «{remote}»",
"Invalid server URL" : "La URL del sirvidor ye inválida",
"Failed to add the public link to your Nextcloud" : "Nun se pue amestar l'enllaz públicu a esta instancia de Nextcloud",
- "Files" : "Ficheros",
"Download all files" : "Baxar tolos ficheros",
"Search for share recipients" : "Buscar destinatarios del elementu compartíu",
"No recommendations. Start typing." : "Nun hai nenguna recomendación. Comienza a escribir",
- "Allow download" : "Permitir la descarga"
+ "Name" : "Nome"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/az.js b/apps/files_sharing/l10n/az.js
deleted file mode 100644
index 7bf3472dfef..00000000000
--- a/apps/files_sharing/l10n/az.js
+++ /dev/null
@@ -1,60 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Server to server sharing is not enabled on this server" : "Bu serverdə, serverlərarası yayımlanma aktiv deyil",
- "The mountpoint name contains invalid characters." : "Bərkidilmə nöqtəsinin adında yalnış simvollar mövcuddur. ",
- "Invalid or untrusted SSL certificate" : "Yalnış yada inam listindən kənar SSL sertifikatı",
- "Could not authenticate to remote share, password might be wrong" : "Uzaqda olan paylaşımın əslliyini yoxlamaq olmur və ola bilər ki, şifrə yalnışdır. ",
- "Storage not valid" : "Depo etibarlı deyil",
- "Couldn't add remote share" : "Uzaqda olan yayımlanmanı əlavə etmək mümkün olmadı",
- "Shared with you" : "Sizinlə yayımlanan",
- "Shared with others" : "Hər kəsə yayımlanmış",
- "Shared by link" : "Link tərəfindən paylaşılıb",
- "Nothing shared with you yet" : "Hələki sizinlə heç bir şey paylaşılmayıb",
- "Files and folders others share with you will show up here" : "Digərlərinin sizinlə paylaşdığı fayllar və qovluqlar burda göstəriləcək",
- "Nothing shared yet" : "Paylaşılan heçnə yoxdur",
- "Files and folders you share will show up here" : "Sizin tərəfinizdən paylaşılmış fayllar və qovluqlar burda göstəriləcək",
- "No shared links" : "Paylaşılmış linklər yoxdur ",
- "Files and folders you share by link will show up here" : "Link vasitəsilə sizin tərəfinizdən paylaşılmış fayllar və qovluqlar burda göstəriləcək",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Siz uzaq paylaşımı əlavə etmək istəyirsinizmi {name} dan {owner}@{remote}?",
- "Remote share" : "Uzaq yayımlanma",
- "Remote share password" : "Uzaq yayımlanma şifrəsi",
- "Cancel" : "Dayandır",
- "Add remote share" : "Uzaq yayımlanmanı əlavə et",
- "You can upload into this folder" : "Siz bu qovluğun içinə yükləyə bilərsiniz",
- "No ownCloud installation (7 or higher) found at {remote}" : "Yüklənmiş (7 yada yuxarı) ownCloud {uzaq} unvanında tapılmadı ",
- "Invalid ownCloud url" : "Yalnış ownCloud url-i",
- "Shared by" : "Tərəfindən yayımlanıb",
- "Sharing" : "Paylaşılır",
- "A file or folder has been <strong>shared</strong>" : "Fayl və ya direktoriya <strong>yayımlandı</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Fayl yada qovluq ünvanından yayımlandı <strong>digər serverə</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Ümumi paylaşılmış fayl yada qovluq <strong>endirilmişdir</strong>",
- "You received a new remote share from %s" : "Siz %s ünvanından yeni uzaq paylaşım aldınız",
- "%1$s accepted remote share %2$s" : "%1$s qəbul etdi uzaq paylaşım %2$s",
- "%1$s declined remote share %2$s" : "%1$s təkzib etdi uzaq paylaşımı %2$s",
- "%1$s unshared %2$s from you" : "%1$s paylaşımı dayandırıldı %2$s sizin tərəfinizdən",
- "Public shared folder %1$s was downloaded" : "Ümumi paylaşılmış qovluq %1$s endirilmişdir",
- "Public shared file %1$s was downloaded" : "Ümumi paylaşılmış fayl %1$s endirilmişdir",
- "You shared %1$s with %2$s" : "Siz yayımladınız %1$s - i %2$s ilə",
- "You shared %1$s with group %2$s" : "Siz yayımladınız %1$s qrupu ilə %2$s",
- "You shared %1$s via link" : "Siz yayımladınız %1$s link ilə",
- "%2$s shared %1$s with you" : "%2$s yayımlanıb %1$s sizinlə",
- "Shares" : "Yayımlanmalar",
- "This share is password-protected" : "Bu paylaşım şifrə ilə müdafiəlidir",
- "The password is wrong. Try again." : "Şifrə yalnışdır. Yenidən cəhd edin.",
- "Password" : "Şifrə",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Name" : "Ad",
- "Share time" : "Paylaşım vaxtı",
- "Sorry, this link doesn’t seem to work anymore." : "Üzr istəyirik, bu link artıq işlək deyil.",
- "Reasons might be:" : "Səbəblər ola bilər:",
- "the item was removed" : "bölüm silinmişdir",
- "the link expired" : "linkin vaxtı bitmişdir",
- "sharing is disabled" : "paylaşım dayandırılmışdır",
- "For more info, please ask the person who sent this link." : "Ətraflı məlumat üçün, xahiş olunur linkin kim tərəfindən göndərilməsini soruşun.",
- "Add to your ownCloud" : "Öz ownCloud-nuza əlavə edin",
- "Download" : "Yüklə",
- "Download %s" : "Endir %s",
- "Direct link" : "Birbaşa link"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/az.json b/apps/files_sharing/l10n/az.json
deleted file mode 100644
index 40e16a7cc0c..00000000000
--- a/apps/files_sharing/l10n/az.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{ "translations": {
- "Server to server sharing is not enabled on this server" : "Bu serverdə, serverlərarası yayımlanma aktiv deyil",
- "The mountpoint name contains invalid characters." : "Bərkidilmə nöqtəsinin adında yalnış simvollar mövcuddur. ",
- "Invalid or untrusted SSL certificate" : "Yalnış yada inam listindən kənar SSL sertifikatı",
- "Could not authenticate to remote share, password might be wrong" : "Uzaqda olan paylaşımın əslliyini yoxlamaq olmur və ola bilər ki, şifrə yalnışdır. ",
- "Storage not valid" : "Depo etibarlı deyil",
- "Couldn't add remote share" : "Uzaqda olan yayımlanmanı əlavə etmək mümkün olmadı",
- "Shared with you" : "Sizinlə yayımlanan",
- "Shared with others" : "Hər kəsə yayımlanmış",
- "Shared by link" : "Link tərəfindən paylaşılıb",
- "Nothing shared with you yet" : "Hələki sizinlə heç bir şey paylaşılmayıb",
- "Files and folders others share with you will show up here" : "Digərlərinin sizinlə paylaşdığı fayllar və qovluqlar burda göstəriləcək",
- "Nothing shared yet" : "Paylaşılan heçnə yoxdur",
- "Files and folders you share will show up here" : "Sizin tərəfinizdən paylaşılmış fayllar və qovluqlar burda göstəriləcək",
- "No shared links" : "Paylaşılmış linklər yoxdur ",
- "Files and folders you share by link will show up here" : "Link vasitəsilə sizin tərəfinizdən paylaşılmış fayllar və qovluqlar burda göstəriləcək",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Siz uzaq paylaşımı əlavə etmək istəyirsinizmi {name} dan {owner}@{remote}?",
- "Remote share" : "Uzaq yayımlanma",
- "Remote share password" : "Uzaq yayımlanma şifrəsi",
- "Cancel" : "Dayandır",
- "Add remote share" : "Uzaq yayımlanmanı əlavə et",
- "You can upload into this folder" : "Siz bu qovluğun içinə yükləyə bilərsiniz",
- "No ownCloud installation (7 or higher) found at {remote}" : "Yüklənmiş (7 yada yuxarı) ownCloud {uzaq} unvanında tapılmadı ",
- "Invalid ownCloud url" : "Yalnış ownCloud url-i",
- "Shared by" : "Tərəfindən yayımlanıb",
- "Sharing" : "Paylaşılır",
- "A file or folder has been <strong>shared</strong>" : "Fayl və ya direktoriya <strong>yayımlandı</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Fayl yada qovluq ünvanından yayımlandı <strong>digər serverə</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Ümumi paylaşılmış fayl yada qovluq <strong>endirilmişdir</strong>",
- "You received a new remote share from %s" : "Siz %s ünvanından yeni uzaq paylaşım aldınız",
- "%1$s accepted remote share %2$s" : "%1$s qəbul etdi uzaq paylaşım %2$s",
- "%1$s declined remote share %2$s" : "%1$s təkzib etdi uzaq paylaşımı %2$s",
- "%1$s unshared %2$s from you" : "%1$s paylaşımı dayandırıldı %2$s sizin tərəfinizdən",
- "Public shared folder %1$s was downloaded" : "Ümumi paylaşılmış qovluq %1$s endirilmişdir",
- "Public shared file %1$s was downloaded" : "Ümumi paylaşılmış fayl %1$s endirilmişdir",
- "You shared %1$s with %2$s" : "Siz yayımladınız %1$s - i %2$s ilə",
- "You shared %1$s with group %2$s" : "Siz yayımladınız %1$s qrupu ilə %2$s",
- "You shared %1$s via link" : "Siz yayımladınız %1$s link ilə",
- "%2$s shared %1$s with you" : "%2$s yayımlanıb %1$s sizinlə",
- "Shares" : "Yayımlanmalar",
- "This share is password-protected" : "Bu paylaşım şifrə ilə müdafiəlidir",
- "The password is wrong. Try again." : "Şifrə yalnışdır. Yenidən cəhd edin.",
- "Password" : "Şifrə",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Name" : "Ad",
- "Share time" : "Paylaşım vaxtı",
- "Sorry, this link doesn’t seem to work anymore." : "Üzr istəyirik, bu link artıq işlək deyil.",
- "Reasons might be:" : "Səbəblər ola bilər:",
- "the item was removed" : "bölüm silinmişdir",
- "the link expired" : "linkin vaxtı bitmişdir",
- "sharing is disabled" : "paylaşım dayandırılmışdır",
- "For more info, please ask the person who sent this link." : "Ətraflı məlumat üçün, xahiş olunur linkin kim tərəfindən göndərilməsini soruşun.",
- "Add to your ownCloud" : "Öz ownCloud-nuza əlavə edin",
- "Download" : "Yüklə",
- "Download %s" : "Endir %s",
- "Direct link" : "Birbaşa link"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/bg.js b/apps/files_sharing/l10n/bg.js
index fa4dbe77d92..bd8f335ef2f 100644
--- a/apps/files_sharing/l10n/bg.js
+++ b/apps/files_sharing/l10n/bg.js
@@ -104,6 +104,7 @@ OC.L10N.register(
"Copy to clipboard" : "Копиране в клипборда",
"Send link via email" : "Сподели връзка с имейл",
"Select" : "Избери",
+ "The uploaded files are visible only to you unless you choose to share them." : "Качените файлове са видими само за теб, освен, ако не решиш да ги споделиш с друг.",
"Close" : "Затваряне",
"Error creating the share: {errorMessage}" : "Грешка при създаване на споделянето: {errorMessage}",
"Error creating the share" : "Грешка при създаване на споделянето",
@@ -165,10 +166,9 @@ OC.L10N.register(
"Deck board" : "Deck табло",
"ScienceMesh" : "ScienceMesh /приложение/",
"on {server}" : "на {server}",
+ "Search for internal recipients" : "Търси вътрешни получатели",
"File drop" : "Пускане/Преместване/ на файл",
"Terms of service" : "Условия за ползване",
- "Name" : "Име",
- "Enter your name" : "Въведете вашето име",
"Read" : "Четене",
"Create" : "Създаване",
"Edit" : "Редактиране",
@@ -244,10 +244,10 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Не беше намерен съвместим сървър на {remote}",
"Invalid server URL" : "URL адреса на сървъра не е валиден",
"Failed to add the public link to your Nextcloud" : "Неуспешно добавяне на публичната връзка към вашия Nextcloud",
- "Files" : "Файлове",
"Download all files" : "Изтегли всички файлове",
"Search for share recipients" : "Търсене на получатели на споделяне",
"No recommendations. Start typing." : "Няма препоръки. Започнете да пишете.",
- "Allow download" : "Позволяване на изтегляне/сваляне/"
+ "Enter your name" : "Въведете вашето име",
+ "Name" : "Име"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/bg.json b/apps/files_sharing/l10n/bg.json
index 8f9fd6d5525..f2dc60f8226 100644
--- a/apps/files_sharing/l10n/bg.json
+++ b/apps/files_sharing/l10n/bg.json
@@ -102,6 +102,7 @@
"Copy to clipboard" : "Копиране в клипборда",
"Send link via email" : "Сподели връзка с имейл",
"Select" : "Избери",
+ "The uploaded files are visible only to you unless you choose to share them." : "Качените файлове са видими само за теб, освен, ако не решиш да ги споделиш с друг.",
"Close" : "Затваряне",
"Error creating the share: {errorMessage}" : "Грешка при създаване на споделянето: {errorMessage}",
"Error creating the share" : "Грешка при създаване на споделянето",
@@ -163,10 +164,9 @@
"Deck board" : "Deck табло",
"ScienceMesh" : "ScienceMesh /приложение/",
"on {server}" : "на {server}",
+ "Search for internal recipients" : "Търси вътрешни получатели",
"File drop" : "Пускане/Преместване/ на файл",
"Terms of service" : "Условия за ползване",
- "Name" : "Име",
- "Enter your name" : "Въведете вашето име",
"Read" : "Четене",
"Create" : "Създаване",
"Edit" : "Редактиране",
@@ -242,10 +242,10 @@
"No compatible server found at {remote}" : "Не беше намерен съвместим сървър на {remote}",
"Invalid server URL" : "URL адреса на сървъра не е валиден",
"Failed to add the public link to your Nextcloud" : "Неуспешно добавяне на публичната връзка към вашия Nextcloud",
- "Files" : "Файлове",
"Download all files" : "Изтегли всички файлове",
"Search for share recipients" : "Търсене на получатели на споделяне",
"No recommendations. Start typing." : "Няма препоръки. Започнете да пишете.",
- "Allow download" : "Позволяване на изтегляне/сваляне/"
+ "Enter your name" : "Въведете вашето име",
+ "Name" : "Име"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/bn_BD.js b/apps/files_sharing/l10n/bn_BD.js
deleted file mode 100644
index 0e715b8c6cb..00000000000
--- a/apps/files_sharing/l10n/bn_BD.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Server to server sharing is not enabled on this server" : "এই সার্ভারে সার্ভার হতে সার্ভারে ভাগাভাগি কার্যকর নয়",
- "Invalid or untrusted SSL certificate" : "অবৈধ বা অবিশ্বস্ত SSL সার্টিফিকেট",
- "Couldn't add remote share" : "দুরবর্তী ভাগাভাগি যোগ করা গেলনা",
- "Shared with you" : "আপনার সাথে ভাগাভাগি করেছেন",
- "Shared by link" : "লিঙ্কের মাধ্যমে ভাগাভাগিকৃত",
- "Remote share" : "দুরবর্তী ভাগাভাগি",
- "Cancel" : "বাতিল",
- "Invalid ownCloud url" : "অবৈধ ওউনক্লাউড url",
- "Shared by" : "যাদের মাঝে ভাগাভাগি করা হয়েছে",
- "Sharing" : "ভাগাভাগিরত",
- "A file or folder has been <strong>shared</strong>" : "একটি ফাইল বা ফোলডার <strong>ভাগাভাগি</strong> করা হয়েছে",
- "You shared %1$s with %2$s" : "আপনি %1$sকে %2$sএর সাথে ভাগাভাগি করেছেন",
- "You shared %1$s with group %2$s" : "আপনি %1$s কে %2$s দলের সাথে ভাগাভাগি করেছেন",
- "You shared %1$s via link" : "আপনি %1$s লিংকের মাধধমে ভাগাভাগি করেছেন",
- "%2$s shared %1$s with you" : "%2$s আপনার সাথে %1$s ভাগাভাগি করেছেন",
- "Shares" : "ভাগাভাগি",
- "This share is password-protected" : "এই শেয়ারটি কূটশব্দদ্বারা সুরক্ষিত",
- "The password is wrong. Try again." : "কুটশব্দটি ভুল। আবার চেষ্টা করুন।",
- "Password" : "কূটশব্দ",
- "Name" : "নাম",
- "Share time" : "ভাগাভাগির সময়",
- "Sorry, this link doesn’t seem to work anymore." : "দুঃখিত, এই লিঙ্কটি আর কার্যকর নয়।",
- "Reasons might be:" : "কারণসমূহ হতে পারে:",
- "the item was removed" : "আইটেমটি অপসারণ করা হয়েছিল",
- "the link expired" : "মেয়াদোত্তীর্ন লিঙ্ক",
- "sharing is disabled" : "ভাগাভাগি অকার্যকর",
- "For more info, please ask the person who sent this link." : "বিস্তারিত তথ্যের জন্য এই লিঙ্কের প্রেরককে জিজ্ঞাসা করুন।",
- "Download" : "ডাউনলোড",
- "Download %s" : "ডাউনলোড %s",
- "Direct link" : "সরাসরি লিঙ্ক"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/bn_BD.json b/apps/files_sharing/l10n/bn_BD.json
deleted file mode 100644
index 063b0761cb7..00000000000
--- a/apps/files_sharing/l10n/bn_BD.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "Server to server sharing is not enabled on this server" : "এই সার্ভারে সার্ভার হতে সার্ভারে ভাগাভাগি কার্যকর নয়",
- "Invalid or untrusted SSL certificate" : "অবৈধ বা অবিশ্বস্ত SSL সার্টিফিকেট",
- "Couldn't add remote share" : "দুরবর্তী ভাগাভাগি যোগ করা গেলনা",
- "Shared with you" : "আপনার সাথে ভাগাভাগি করেছেন",
- "Shared by link" : "লিঙ্কের মাধ্যমে ভাগাভাগিকৃত",
- "Remote share" : "দুরবর্তী ভাগাভাগি",
- "Cancel" : "বাতিল",
- "Invalid ownCloud url" : "অবৈধ ওউনক্লাউড url",
- "Shared by" : "যাদের মাঝে ভাগাভাগি করা হয়েছে",
- "Sharing" : "ভাগাভাগিরত",
- "A file or folder has been <strong>shared</strong>" : "একটি ফাইল বা ফোলডার <strong>ভাগাভাগি</strong> করা হয়েছে",
- "You shared %1$s with %2$s" : "আপনি %1$sকে %2$sএর সাথে ভাগাভাগি করেছেন",
- "You shared %1$s with group %2$s" : "আপনি %1$s কে %2$s দলের সাথে ভাগাভাগি করেছেন",
- "You shared %1$s via link" : "আপনি %1$s লিংকের মাধধমে ভাগাভাগি করেছেন",
- "%2$s shared %1$s with you" : "%2$s আপনার সাথে %1$s ভাগাভাগি করেছেন",
- "Shares" : "ভাগাভাগি",
- "This share is password-protected" : "এই শেয়ারটি কূটশব্দদ্বারা সুরক্ষিত",
- "The password is wrong. Try again." : "কুটশব্দটি ভুল। আবার চেষ্টা করুন।",
- "Password" : "কূটশব্দ",
- "Name" : "নাম",
- "Share time" : "ভাগাভাগির সময়",
- "Sorry, this link doesn’t seem to work anymore." : "দুঃখিত, এই লিঙ্কটি আর কার্যকর নয়।",
- "Reasons might be:" : "কারণসমূহ হতে পারে:",
- "the item was removed" : "আইটেমটি অপসারণ করা হয়েছিল",
- "the link expired" : "মেয়াদোত্তীর্ন লিঙ্ক",
- "sharing is disabled" : "ভাগাভাগি অকার্যকর",
- "For more info, please ask the person who sent this link." : "বিস্তারিত তথ্যের জন্য এই লিঙ্কের প্রেরককে জিজ্ঞাসা করুন।",
- "Download" : "ডাউনলোড",
- "Download %s" : "ডাউনলোড %s",
- "Direct link" : "সরাসরি লিঙ্ক"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/bs.js b/apps/files_sharing/l10n/bs.js
deleted file mode 100644
index ce2917b50b3..00000000000
--- a/apps/files_sharing/l10n/bs.js
+++ /dev/null
@@ -1,11 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Odustani",
- "Shared by" : "Dijeli",
- "Sharing" : "Dijeljenje",
- "Password" : "Lozinka",
- "Name" : "Ime",
- "Download" : "Preuzmite"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_sharing/l10n/bs.json b/apps/files_sharing/l10n/bs.json
deleted file mode 100644
index ad6237b8166..00000000000
--- a/apps/files_sharing/l10n/bs.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "translations": {
- "Cancel" : "Odustani",
- "Shared by" : "Dijeli",
- "Sharing" : "Dijeljenje",
- "Password" : "Lozinka",
- "Name" : "Ime",
- "Download" : "Preuzmite"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js
index 174a1e96fa0..a8c78dd12c3 100644
--- a/apps/files_sharing/l10n/ca.js
+++ b/apps/files_sharing/l10n/ca.js
@@ -185,7 +185,6 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Estableix la carpeta per defecte per als elements compartits acceptats",
"Reset" : "Reinicialitza",
"Reset folder to system default" : "Reinicialitza la carpeta per defecte del sistema",
- "Share expiration: " : "Fi de compartició:",
"Share Expiration" : "Fi de compartició",
"group" : "grup",
"conversation" : "conversa",
@@ -259,12 +258,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "Per la pujada de fitxers, accepteu les condicions del servei.",
"View terms of service" : "Consulta els termes del servei",
"Terms of service" : "Condicions del servei",
- "Upload files to {folder}" : "Pujada de fitxers a {folder}",
- "Submit name" : "Envia el nom",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartit una carpeta amb tu.",
- "To upload files, you need to provide your name first." : "Per la pujada de fitxers, primer heu de proporcionar el vostre nom.",
- "Name" : "Nom",
- "Enter your name" : "Introdueix el teu nom",
"Share with {userName}" : "Comparteix amb {userName}",
"Share with email {email}" : "Comparteix amb l'adreça electrònica {email}",
"Share with group" : "Comparteix amb el grup",
@@ -313,16 +306,15 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilitzeu aquest mètode per compartició de fitxers amb persones o equips de la vostra organització. Si el destinatari ja té accés a la compartició però no la pot localitzar, podeu enviar-li l'enllaç de compartició intern per accedir-hi fàcilment.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilitzeu aquest mètode per compartir fitxers amb persones o organitzacions fora de la vostra organització. Els fitxers i les carpetes es poden compartir mitjançant enllaços compartits públics i adreces de correu electrònic. També podeu compartir amb altres comptes de Nextcloud allotjats en diferents instàncies mitjançant el seu ID de núvol federat.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticions que no formen part de comparticions internes o externes. Això pot ser compartit des d'aplicacions o d'altres fonts.",
+ "Share with accounts and teams" : "Comparteix amb comptes i equips",
"Unable to load the shares list" : "No s'ha pogut carregar la llista d'elements compartits",
"Expires {relativetime}" : "Caduca {relativetime}",
"this share just expired." : "aquest element compartit acaba de caducar.",
"Shared with you by {owner}" : "{owner} l'ha compartit amb vós",
"Internal shares" : "Comparticions internes",
"Internal shares explanation" : "Explicació de comparticions internes",
- "Share with accounts and teams" : "Comparteix amb comptes i equips",
"External shares" : "Comparticions externes",
"External shares explanation" : "Explicació de les comparticions externes",
- "Email, federated cloud id" : "Correu, identificador del núvol federat",
"Additional shares" : "Comparticions addicionals",
"Additional shares explanation" : "Explicació addicional de les comparticions",
"Link to a file" : "Enllaç a un fitxer",
@@ -383,6 +375,8 @@ OC.L10N.register(
"Share note for recipient saved" : "S’ha desat la nota de compartició per al destinatari",
"Share password saved" : "S’ha desat la contrasenya de compartició",
"Share permissions saved" : "S’han desat els permisos de compartició",
+ "Upload files to {folder}" : "Pujada de fitxers a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartit una carpeta amb tu.",
"Shared by" : "Compartit per",
"Shared with" : "S'ha compartit amb",
"Password created successfully" : "La contrasenya s'ha creat correctament",
@@ -413,15 +407,17 @@ OC.L10N.register(
"No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}",
"Invalid server URL" : "L'URL del servidor no és vàlida",
"Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al vostre Nextcloud",
- "Files" : "Fitxers",
+ "You are not allowed to edit link shares that you don't own" : "No teniu permès editar els elements compartits d'enllaços dels que no sigueu propietaris",
"Download all files" : "Baixa tots els fitxers",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ja s'ha afegit 1 adreça de correu","Ja s’han afegit {count} adreces de correu"],
+ "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"],
"Search for share recipients" : "Cerqueu destinataris de l'element compartit",
"No recommendations. Start typing." : "No hi ha cap recomanació. Comenceu a escriure.",
- "Password field can't be empty" : "El camp de contrasenya no pot estar buit",
- "Allow download" : "Permet la baixada",
- "Share expire date saved" : "S'ha desat la data de caducitat de la compartició",
- "You are not allowed to edit link shares that you don't own" : "No teniu permès editar els elements compartits d'enllaços dels que no sigueu propietaris",
- "_1 email address already added_::_{count} email addresses already added_" : ["Ja s'ha afegit 1 adreça de correu","Ja s’han afegit {count} adreces de correu"],
- "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"]
+ "To upload files, you need to provide your name first." : "Per la pujada de fitxers, primer heu de proporcionar el vostre nom.",
+ "Enter your name" : "Introdueix el teu nom",
+ "Submit name" : "Envia el nom",
+ "Name" : "Nom",
+ "Email, federated cloud id" : "Correu, identificador del núvol federat",
+ "Filename must not be empty." : "El nom del fitxer no ha d'estar buit."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json
index 47c46ebf19d..dd6b9279650 100644
--- a/apps/files_sharing/l10n/ca.json
+++ b/apps/files_sharing/l10n/ca.json
@@ -183,7 +183,6 @@
"Set default folder for accepted shares" : "Estableix la carpeta per defecte per als elements compartits acceptats",
"Reset" : "Reinicialitza",
"Reset folder to system default" : "Reinicialitza la carpeta per defecte del sistema",
- "Share expiration: " : "Fi de compartició:",
"Share Expiration" : "Fi de compartició",
"group" : "grup",
"conversation" : "conversa",
@@ -257,12 +256,6 @@
"By uploading files, you agree to the terms of service." : "Per la pujada de fitxers, accepteu les condicions del servei.",
"View terms of service" : "Consulta els termes del servei",
"Terms of service" : "Condicions del servei",
- "Upload files to {folder}" : "Pujada de fitxers a {folder}",
- "Submit name" : "Envia el nom",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartit una carpeta amb tu.",
- "To upload files, you need to provide your name first." : "Per la pujada de fitxers, primer heu de proporcionar el vostre nom.",
- "Name" : "Nom",
- "Enter your name" : "Introdueix el teu nom",
"Share with {userName}" : "Comparteix amb {userName}",
"Share with email {email}" : "Comparteix amb l'adreça electrònica {email}",
"Share with group" : "Comparteix amb el grup",
@@ -311,16 +304,15 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilitzeu aquest mètode per compartició de fitxers amb persones o equips de la vostra organització. Si el destinatari ja té accés a la compartició però no la pot localitzar, podeu enviar-li l'enllaç de compartició intern per accedir-hi fàcilment.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilitzeu aquest mètode per compartir fitxers amb persones o organitzacions fora de la vostra organització. Els fitxers i les carpetes es poden compartir mitjançant enllaços compartits públics i adreces de correu electrònic. També podeu compartir amb altres comptes de Nextcloud allotjats en diferents instàncies mitjançant el seu ID de núvol federat.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticions que no formen part de comparticions internes o externes. Això pot ser compartit des d'aplicacions o d'altres fonts.",
+ "Share with accounts and teams" : "Comparteix amb comptes i equips",
"Unable to load the shares list" : "No s'ha pogut carregar la llista d'elements compartits",
"Expires {relativetime}" : "Caduca {relativetime}",
"this share just expired." : "aquest element compartit acaba de caducar.",
"Shared with you by {owner}" : "{owner} l'ha compartit amb vós",
"Internal shares" : "Comparticions internes",
"Internal shares explanation" : "Explicació de comparticions internes",
- "Share with accounts and teams" : "Comparteix amb comptes i equips",
"External shares" : "Comparticions externes",
"External shares explanation" : "Explicació de les comparticions externes",
- "Email, federated cloud id" : "Correu, identificador del núvol federat",
"Additional shares" : "Comparticions addicionals",
"Additional shares explanation" : "Explicació addicional de les comparticions",
"Link to a file" : "Enllaç a un fitxer",
@@ -381,6 +373,8 @@
"Share note for recipient saved" : "S’ha desat la nota de compartició per al destinatari",
"Share password saved" : "S’ha desat la contrasenya de compartició",
"Share permissions saved" : "S’han desat els permisos de compartició",
+ "Upload files to {folder}" : "Pujada de fitxers a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartit una carpeta amb tu.",
"Shared by" : "Compartit per",
"Shared with" : "S'ha compartit amb",
"Password created successfully" : "La contrasenya s'ha creat correctament",
@@ -411,15 +405,17 @@
"No compatible server found at {remote}" : "No s'ha trobat cap servidor compatible a {remote}",
"Invalid server URL" : "L'URL del servidor no és vàlida",
"Failed to add the public link to your Nextcloud" : "No s'ha pogut afegir l'enllaç públic al vostre Nextcloud",
- "Files" : "Fitxers",
+ "You are not allowed to edit link shares that you don't own" : "No teniu permès editar els elements compartits d'enllaços dels que no sigueu propietaris",
"Download all files" : "Baixa tots els fitxers",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ja s'ha afegit 1 adreça de correu","Ja s’han afegit {count} adreces de correu"],
+ "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"],
"Search for share recipients" : "Cerqueu destinataris de l'element compartit",
"No recommendations. Start typing." : "No hi ha cap recomanació. Comenceu a escriure.",
- "Password field can't be empty" : "El camp de contrasenya no pot estar buit",
- "Allow download" : "Permet la baixada",
- "Share expire date saved" : "S'ha desat la data de caducitat de la compartició",
- "You are not allowed to edit link shares that you don't own" : "No teniu permès editar els elements compartits d'enllaços dels que no sigueu propietaris",
- "_1 email address already added_::_{count} email addresses already added_" : ["Ja s'ha afegit 1 adreça de correu","Ja s’han afegit {count} adreces de correu"],
- "_1 email address added_::_{count} email addresses added_" : ["S'ha afegit 1 adreça de correu","S’han afegit {count} adreces de correu"]
+ "To upload files, you need to provide your name first." : "Per la pujada de fitxers, primer heu de proporcionar el vostre nom.",
+ "Enter your name" : "Introdueix el teu nom",
+ "Submit name" : "Envia el nom",
+ "Name" : "Nom",
+ "Email, federated cloud id" : "Correu, identificador del núvol federat",
+ "Filename must not be empty." : "El nom del fitxer no ha d'estar buit."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js
index 81a56ccd0b6..0c50df839a3 100644
--- a/apps/files_sharing/l10n/cs.js
+++ b/apps/files_sharing/l10n/cs.js
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Nastavit výchozí složku pro přijatá sdílení",
"Reset" : "Vrátit na výchozí hodnoty",
"Reset folder to system default" : "Resetovat složku na systémovou výchozí",
- "Share expiration: " : "Skončení platnosti sdílení:",
+ "Share expiration: {date}" : "Skončení platnosti sdílení: {date}",
"Share Expiration" : "Skončení platnosti sdílení",
"group" : "skupina",
"conversation" : "konverzace",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "Předání souboru",
"Upload files to {foldername}." : "Nahrát soubory do {foldername}",
"By uploading files, you agree to the terms of service." : "Nahráním souborů souhlasíte s podmínkami služby.",
+ "Successfully uploaded files" : "Soubory úspěšně nahrány",
"View terms of service" : "Zobrazit smluvní podmínky",
"Terms of service" : "Všeobecné podmínky",
- "Upload files to {folder}" : "Nahrát soubory do {folder}",
- "Submit name" : "Odeslat jméno",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} vám nasdílel(a) složku.",
- "To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
- "Name" : "Název",
- "Enter your name" : "Zadejte své jméno",
"Share with {userName}" : "Nasdílet pro {userName}",
"Share with email {email}" : "Nasdílet e-mailu {email}",
"Share with group" : "Nasdílet skupině",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Tuto metodu použijte pro nasdílení souborů jednotlivcům nebo týmům ve vaší organizaci. Pokud příjemce už má přístup ke sdílení, ale nemůže ho nalézt, můžete mu přístup usnadnit zasláním vnitřního odkazu na sdílení.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tuto metodu používejte pro sdílení souborů s jednotlivci nebo organizacemi vně té vaší. Soubory a složky je možné nasdílet prostřednictvím veřejných odkazů na sdílení a e-mailových adres. Je také možné nasdílet ostatním Nextcloud účtům hostovaným na různých instancích a to prostřednictvím jejich identifikátorů v rámci federovaného cloudu.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Sdílení, která nejsou součástí interních nebo externích sdílení. Toto mohou být sdílení z aplikací nebo jiných zdrojů.",
+ "Share with accounts, teams, federated cloud IDs" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu",
+ "Share with accounts and teams" : "Nasdílet účtům a týmům",
+ "Federated cloud ID" : "Identifikátor v rámci federovaného cloudu",
+ "Email, federated cloud ID" : "E-mail, identif. federovaného cloudu",
"Unable to load the shares list" : "Nedaří se načíst seznam sdílení",
"Expires {relativetime}" : "Platnost končí {relativetime}",
"this share just expired." : "platnost tohoto sdílení právě skončila.",
"Shared with you by {owner}" : "S vámi sdílí {owner}",
"Internal shares" : "Vnitřní sdílení",
"Internal shares explanation" : "Vysvětlení vnitřních sdílení",
- "Share with accounts and teams" : "Nasdílet účtům a týmům",
"External shares" : "Externí sdílení",
"External shares explanation" : "Vysvětlení externích sdílení",
- "Email, federated cloud id" : "E-mail, identif. federovaného cloudu",
"Additional shares" : "Další sdílení",
"Additional shares explanation" : "Vysvětlení dalších sdílen",
"Link to a file" : "Odkaz na soubor",
@@ -371,6 +368,8 @@ OC.L10N.register(
"List of unapproved shares." : "Seznam neschválených sdílení.",
"No pending shares" : "Žádná čekající sdílení",
"Shares you have received but not approved will show up here" : "Sdílení, která jste obdrželi, ale neschválili, se zobrazí zde",
+ "Error deleting the share: {errorMessage}" : "Chyba při mazán sdílení: {errorMessage}",
+ "Error deleting the share" : "Chyba při mazání sdílení",
"Error updating the share: {errorMessage}" : "Chyba při aktualizaci sdílení: {errorMessage}",
"Error updating the share" : "Chyba při aktualizaci sdílení",
"File \"{path}\" has been unshared" : "Sdílení souboru „{path}“ bylo zrušeno",
@@ -383,6 +382,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Poznámka pro příjemce sdílení uložena",
"Share password saved" : "Heslo ke sdílení uloženo",
"Share permissions saved" : "Oprávnění ke sdílení uložena",
+ "To upload files to {folder}, you need to provide your name first." : "Pokud chcete nahrávat soubory do {folder}, je zapotřebí nejprve zadat své jméno.",
+ "Upload files to {folder}" : "Nahrát soubory do {folder}",
+ "Please confirm your name to upload files to {folder}" : "Potvrďte své jméno pokud chcete nahrávat soubory do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} vám nasdílel(a) složku.",
+ "Names must not be empty." : "Jména je třeba vyplnit.",
+ "Names must not start with a dot." : "Je třeba, aby názvy nezačínaly tečkou.",
+ "\"{char}\" is not allowed inside a name." : "„{char}“ není v názvu možné použít.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}“ je vyhrazeným názvem a není povoleno k použití.",
+ "\"{extension}\" is not an allowed name." : "„{extension}“ není povoleným názvem.",
+ "Names must not end with \"{extension}\"." : "Je třeba, aby názvy nekončily na „{extension}“.",
+ "Invalid name." : "Neplatný název.",
"Shared by" : "Sdílí",
"Shared with" : "Sdíleno s",
"Password created successfully" : "Heslo úspěšně vytvořeno",
@@ -413,15 +423,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Na {remote} nebyl nalezen kompatibilní server",
"Invalid server URL" : "Neplatná URL serveru",
"Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud",
- "Files" : "Soubory",
+ "You are not allowed to edit link shares that you don't own" : "Nemáte oprávnění upravovat sdílení odkazem, která nevlastníte",
"Download all files" : "Stáhnout všechny soubory",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"],
+ "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"],
"Search for share recipients" : "Vyhledat příjemce sdílení",
"No recommendations. Start typing." : "Žádná doporučení. Pište",
- "Password field can't be empty" : "Kolonku heslo je třeba vyplnit",
- "Allow download" : "Umožnit stahování",
- "Share expire date saved" : "Datum skončení platnosti sdílení uloženo",
- "You are not allowed to edit link shares that you don't own" : "Nemáte oprávnění upravovat sdílení odkazem, která nevlastníte",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"],
- "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"]
+ "To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
+ "Enter your name" : "Zadejte své jméno",
+ "Submit name" : "Odeslat jméno",
+ "Name" : "Název",
+ "Share with accounts, teams, federated cloud id" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu",
+ "Email, federated cloud id" : "E-mail, identif. federovaného cloudu",
+ "Filename must not be empty." : "Je třeba vyplnit název souboru."
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json
index df979b969de..93497447ce5 100644
--- a/apps/files_sharing/l10n/cs.json
+++ b/apps/files_sharing/l10n/cs.json
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "Nastavit výchozí složku pro přijatá sdílení",
"Reset" : "Vrátit na výchozí hodnoty",
"Reset folder to system default" : "Resetovat složku na systémovou výchozí",
- "Share expiration: " : "Skončení platnosti sdílení:",
+ "Share expiration: {date}" : "Skončení platnosti sdílení: {date}",
"Share Expiration" : "Skončení platnosti sdílení",
"group" : "skupina",
"conversation" : "konverzace",
@@ -255,14 +255,9 @@
"File drop" : "Předání souboru",
"Upload files to {foldername}." : "Nahrát soubory do {foldername}",
"By uploading files, you agree to the terms of service." : "Nahráním souborů souhlasíte s podmínkami služby.",
+ "Successfully uploaded files" : "Soubory úspěšně nahrány",
"View terms of service" : "Zobrazit smluvní podmínky",
"Terms of service" : "Všeobecné podmínky",
- "Upload files to {folder}" : "Nahrát soubory do {folder}",
- "Submit name" : "Odeslat jméno",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} vám nasdílel(a) složku.",
- "To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
- "Name" : "Název",
- "Enter your name" : "Zadejte své jméno",
"Share with {userName}" : "Nasdílet pro {userName}",
"Share with email {email}" : "Nasdílet e-mailu {email}",
"Share with group" : "Nasdílet skupině",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Tuto metodu použijte pro nasdílení souborů jednotlivcům nebo týmům ve vaší organizaci. Pokud příjemce už má přístup ke sdílení, ale nemůže ho nalézt, můžete mu přístup usnadnit zasláním vnitřního odkazu na sdílení.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Tuto metodu používejte pro sdílení souborů s jednotlivci nebo organizacemi vně té vaší. Soubory a složky je možné nasdílet prostřednictvím veřejných odkazů na sdílení a e-mailových adres. Je také možné nasdílet ostatním Nextcloud účtům hostovaným na různých instancích a to prostřednictvím jejich identifikátorů v rámci federovaného cloudu.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Sdílení, která nejsou součástí interních nebo externích sdílení. Toto mohou být sdílení z aplikací nebo jiných zdrojů.",
+ "Share with accounts, teams, federated cloud IDs" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu",
+ "Share with accounts and teams" : "Nasdílet účtům a týmům",
+ "Federated cloud ID" : "Identifikátor v rámci federovaného cloudu",
+ "Email, federated cloud ID" : "E-mail, identif. federovaného cloudu",
"Unable to load the shares list" : "Nedaří se načíst seznam sdílení",
"Expires {relativetime}" : "Platnost končí {relativetime}",
"this share just expired." : "platnost tohoto sdílení právě skončila.",
"Shared with you by {owner}" : "S vámi sdílí {owner}",
"Internal shares" : "Vnitřní sdílení",
"Internal shares explanation" : "Vysvětlení vnitřních sdílení",
- "Share with accounts and teams" : "Nasdílet účtům a týmům",
"External shares" : "Externí sdílení",
"External shares explanation" : "Vysvětlení externích sdílení",
- "Email, federated cloud id" : "E-mail, identif. federovaného cloudu",
"Additional shares" : "Další sdílení",
"Additional shares explanation" : "Vysvětlení dalších sdílen",
"Link to a file" : "Odkaz na soubor",
@@ -369,6 +366,8 @@
"List of unapproved shares." : "Seznam neschválených sdílení.",
"No pending shares" : "Žádná čekající sdílení",
"Shares you have received but not approved will show up here" : "Sdílení, která jste obdrželi, ale neschválili, se zobrazí zde",
+ "Error deleting the share: {errorMessage}" : "Chyba při mazán sdílení: {errorMessage}",
+ "Error deleting the share" : "Chyba při mazání sdílení",
"Error updating the share: {errorMessage}" : "Chyba při aktualizaci sdílení: {errorMessage}",
"Error updating the share" : "Chyba při aktualizaci sdílení",
"File \"{path}\" has been unshared" : "Sdílení souboru „{path}“ bylo zrušeno",
@@ -381,6 +380,17 @@
"Share note for recipient saved" : "Poznámka pro příjemce sdílení uložena",
"Share password saved" : "Heslo ke sdílení uloženo",
"Share permissions saved" : "Oprávnění ke sdílení uložena",
+ "To upload files to {folder}, you need to provide your name first." : "Pokud chcete nahrávat soubory do {folder}, je zapotřebí nejprve zadat své jméno.",
+ "Upload files to {folder}" : "Nahrát soubory do {folder}",
+ "Please confirm your name to upload files to {folder}" : "Potvrďte své jméno pokud chcete nahrávat soubory do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} vám nasdílel(a) složku.",
+ "Names must not be empty." : "Jména je třeba vyplnit.",
+ "Names must not start with a dot." : "Je třeba, aby názvy nezačínaly tečkou.",
+ "\"{char}\" is not allowed inside a name." : "„{char}“ není v názvu možné použít.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}“ je vyhrazeným názvem a není povoleno k použití.",
+ "\"{extension}\" is not an allowed name." : "„{extension}“ není povoleným názvem.",
+ "Names must not end with \"{extension}\"." : "Je třeba, aby názvy nekončily na „{extension}“.",
+ "Invalid name." : "Neplatný název.",
"Shared by" : "Sdílí",
"Shared with" : "Sdíleno s",
"Password created successfully" : "Heslo úspěšně vytvořeno",
@@ -411,15 +421,18 @@
"No compatible server found at {remote}" : "Na {remote} nebyl nalezen kompatibilní server",
"Invalid server URL" : "Neplatná URL serveru",
"Failed to add the public link to your Nextcloud" : "Nepodařilo se přidání veřejného odkazu do Nextcloud",
- "Files" : "Soubory",
+ "You are not allowed to edit link shares that you don't own" : "Nemáte oprávnění upravovat sdílení odkazem, která nevlastníte",
"Download all files" : "Stáhnout všechny soubory",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"],
+ "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"],
"Search for share recipients" : "Vyhledat příjemce sdílení",
"No recommendations. Start typing." : "Žádná doporučení. Pište",
- "Password field can't be empty" : "Kolonku heslo je třeba vyplnit",
- "Allow download" : "Umožnit stahování",
- "Share expire date saved" : "Datum skončení platnosti sdílení uloženo",
- "You are not allowed to edit link shares that you don't own" : "Nemáte oprávnění upravovat sdílení odkazem, která nevlastníte",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adresa už přidána","{count} e-mailové adresy už přidány","{count} e-mailových adres už přidáno","{count} e-mailové adresy už přidány"],
- "_1 email address added_::_{count} email addresses added_" : ["Jedna e-mailová adresa přidána","{count} e-mailové adresy přidány","{count} e-mailových adres přidáno","{count} e-mailové adresy přidány"]
+ "To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
+ "Enter your name" : "Zadejte své jméno",
+ "Submit name" : "Odeslat jméno",
+ "Name" : "Název",
+ "Share with accounts, teams, federated cloud id" : "Nasdílejte účtům, týmům, identifikátorům v rámci federovaného cloudu",
+ "Email, federated cloud id" : "E-mail, identif. federovaného cloudu",
+ "Filename must not be empty." : "Je třeba vyplnit název souboru."
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/cy_GB.js b/apps/files_sharing/l10n/cy_GB.js
deleted file mode 100644
index 1a8addf1729..00000000000
--- a/apps/files_sharing/l10n/cy_GB.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Diddymu",
- "Shared by" : "Rhannwyd gan",
- "Password" : "Cyfrinair",
- "Name" : "Enw",
- "Download" : "Llwytho i lawr"
-},
-"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/apps/files_sharing/l10n/cy_GB.json b/apps/files_sharing/l10n/cy_GB.json
deleted file mode 100644
index 9eebc50be7d..00000000000
--- a/apps/files_sharing/l10n/cy_GB.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Cancel" : "Diddymu",
- "Shared by" : "Rhannwyd gan",
- "Password" : "Cyfrinair",
- "Name" : "Enw",
- "Download" : "Llwytho i lawr"
-},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js
index c2a539394b2..ca9f27e3db3 100644
--- a/apps/files_sharing/l10n/da.js
+++ b/apps/files_sharing/l10n/da.js
@@ -185,7 +185,6 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Angiv standard mappe for accepterede delinger",
"Reset" : "Nulstil",
"Reset folder to system default" : "Nulstil mappe til systemstandard",
- "Share expiration: " : "Delings udløb:",
"Share Expiration" : "Delings Udløb",
"group" : "gruppe",
"conversation" : "samtale",
@@ -259,12 +258,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "Ved at uploade filer, acceptere du servicebetingelserne.",
"View terms of service" : "Vis servicebetingelser",
"Terms of service" : "Servicebetingelser",
- "Upload files to {folder}" : "Upload filer til {folder}",
- "Submit name" : "Angiv navn",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med dig.",
- "To upload files, you need to provide your name first." : "For at uploade filer skal du først angive dit navn.",
- "Name" : "Navn",
- "Enter your name" : "Angiv dit navn",
"Share with {userName}" : "Del med {userName}",
"Share with email {email}" : "Del med e-mail {email}",
"Share with group" : "Del med gruppe",
@@ -313,16 +306,15 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Anvend denne metode til at dele filer med brugere eller teams indenfor din organisation. Hvis modtageren allerede har adgang til delingen, men ikke kan finde det, så kan du sende det interne delingslink til dem, så de har let adgang",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Anvend denne metode til at dele filer med brugere eller organisationer udenfor din organisation. Filer og mapper kan deles via offentlige delingslinks og e-mailadresser. Du kan også dele til andre Nextcloud konti der er hostet på andre instanser ved anvendelse af sammenkoblings cloud ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delinger som ikke er del af de interne eller eksterne delinger. Dette kan være delinger fra apps eller andre kilder.",
+ "Share with accounts and teams" : "Deling med konti og teams",
"Unable to load the shares list" : "Kan ikke indlæse liste med delinger",
"Expires {relativetime}" : "Udløber {relativetime}",
"this share just expired." : "denne deling er netop udløbet.",
"Shared with you by {owner}" : "Delt med dig {owner}",
"Internal shares" : "Interne delinger",
"Internal shares explanation" : "Interne delinger forklaring",
- "Share with accounts and teams" : "Deling med konti og teams",
"External shares" : "Eksterne delinger",
"External shares explanation" : "Eksterne delinger forklaring",
- "Email, federated cloud id" : "E-mail, sammenkoblings cloud id",
"Additional shares" : "Yderligere delinger",
"Additional shares explanation" : "Yderliger delinger forklaring",
"Link to a file" : "Link til en fil",
@@ -383,6 +375,8 @@ OC.L10N.register(
"Share note for recipient saved" : "Delingsbemærkning for modtagere gemt",
"Share password saved" : "Delingsadgangskode delt",
"Share permissions saved" : "Delingsrettigheder gemt",
+ "Upload files to {folder}" : "Upload filer til {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med dig.",
"Shared by" : "Delt af",
"Shared with" : "Delt med",
"Password created successfully" : "Adgangskode oprettet",
@@ -413,15 +407,17 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Ingen kompatible servere fundet på {remote}",
"Invalid server URL" : "Ugyldig server adresse",
"Failed to add the public link to your Nextcloud" : "Fejl ved tilføjelse af offentligt link til din Nextcloud",
- "Files" : "Filer",
+ "You are not allowed to edit link shares that you don't own" : "Du har ikke tilladelse til at redigere link delinger som du ikke ejer",
"Download all files" : "Download alle filer",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailadresse allerede tilføjet","{count} e-mailadresser allerede tilføjet"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"],
"Search for share recipients" : "Søge efter delemodtagerefor share recipients",
"No recommendations. Start typing." : "Ingen anbefalinger. Begynd at skrive.",
- "Password field can't be empty" : "Adgangskodefeltet må ikke være tomt",
- "Allow download" : "Tillad download",
- "Share expire date saved" : "Udløbsdato for deling gemt",
- "You are not allowed to edit link shares that you don't own" : "Du har ikke tilladelse til at redigere link delinger som du ikke ejer",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailadresse allerede tilføjet","{count} e-mailadresser allerede tilføjet"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"]
+ "To upload files, you need to provide your name first." : "For at uploade filer skal du først angive dit navn.",
+ "Enter your name" : "Angiv dit navn",
+ "Submit name" : "Angiv navn",
+ "Name" : "Navn",
+ "Email, federated cloud id" : "E-mail, sammenkoblings cloud id",
+ "Filename must not be empty." : "Filnavnet må ikke være tomt."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json
index 3a773a16f3e..af4be1e8560 100644
--- a/apps/files_sharing/l10n/da.json
+++ b/apps/files_sharing/l10n/da.json
@@ -183,7 +183,6 @@
"Set default folder for accepted shares" : "Angiv standard mappe for accepterede delinger",
"Reset" : "Nulstil",
"Reset folder to system default" : "Nulstil mappe til systemstandard",
- "Share expiration: " : "Delings udløb:",
"Share Expiration" : "Delings Udløb",
"group" : "gruppe",
"conversation" : "samtale",
@@ -257,12 +256,6 @@
"By uploading files, you agree to the terms of service." : "Ved at uploade filer, acceptere du servicebetingelserne.",
"View terms of service" : "Vis servicebetingelser",
"Terms of service" : "Servicebetingelser",
- "Upload files to {folder}" : "Upload filer til {folder}",
- "Submit name" : "Angiv navn",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med dig.",
- "To upload files, you need to provide your name first." : "For at uploade filer skal du først angive dit navn.",
- "Name" : "Navn",
- "Enter your name" : "Angiv dit navn",
"Share with {userName}" : "Del med {userName}",
"Share with email {email}" : "Del med e-mail {email}",
"Share with group" : "Del med gruppe",
@@ -311,16 +304,15 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Anvend denne metode til at dele filer med brugere eller teams indenfor din organisation. Hvis modtageren allerede har adgang til delingen, men ikke kan finde det, så kan du sende det interne delingslink til dem, så de har let adgang",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Anvend denne metode til at dele filer med brugere eller organisationer udenfor din organisation. Filer og mapper kan deles via offentlige delingslinks og e-mailadresser. Du kan også dele til andre Nextcloud konti der er hostet på andre instanser ved anvendelse af sammenkoblings cloud ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delinger som ikke er del af de interne eller eksterne delinger. Dette kan være delinger fra apps eller andre kilder.",
+ "Share with accounts and teams" : "Deling med konti og teams",
"Unable to load the shares list" : "Kan ikke indlæse liste med delinger",
"Expires {relativetime}" : "Udløber {relativetime}",
"this share just expired." : "denne deling er netop udløbet.",
"Shared with you by {owner}" : "Delt med dig {owner}",
"Internal shares" : "Interne delinger",
"Internal shares explanation" : "Interne delinger forklaring",
- "Share with accounts and teams" : "Deling med konti og teams",
"External shares" : "Eksterne delinger",
"External shares explanation" : "Eksterne delinger forklaring",
- "Email, federated cloud id" : "E-mail, sammenkoblings cloud id",
"Additional shares" : "Yderligere delinger",
"Additional shares explanation" : "Yderliger delinger forklaring",
"Link to a file" : "Link til en fil",
@@ -381,6 +373,8 @@
"Share note for recipient saved" : "Delingsbemærkning for modtagere gemt",
"Share password saved" : "Delingsadgangskode delt",
"Share permissions saved" : "Delingsrettigheder gemt",
+ "Upload files to {folder}" : "Upload filer til {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med dig.",
"Shared by" : "Delt af",
"Shared with" : "Delt med",
"Password created successfully" : "Adgangskode oprettet",
@@ -411,15 +405,17 @@
"No compatible server found at {remote}" : "Ingen kompatible servere fundet på {remote}",
"Invalid server URL" : "Ugyldig server adresse",
"Failed to add the public link to your Nextcloud" : "Fejl ved tilføjelse af offentligt link til din Nextcloud",
- "Files" : "Filer",
+ "You are not allowed to edit link shares that you don't own" : "Du har ikke tilladelse til at redigere link delinger som du ikke ejer",
"Download all files" : "Download alle filer",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailadresse allerede tilføjet","{count} e-mailadresser allerede tilføjet"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"],
"Search for share recipients" : "Søge efter delemodtagerefor share recipients",
"No recommendations. Start typing." : "Ingen anbefalinger. Begynd at skrive.",
- "Password field can't be empty" : "Adgangskodefeltet må ikke være tomt",
- "Allow download" : "Tillad download",
- "Share expire date saved" : "Udløbsdato for deling gemt",
- "You are not allowed to edit link shares that you don't own" : "Du har ikke tilladelse til at redigere link delinger som du ikke ejer",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailadresse allerede tilføjet","{count} e-mailadresser allerede tilføjet"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-mailadresse tilføjet","{count} e-mailadresser tilføjet"]
+ "To upload files, you need to provide your name first." : "For at uploade filer skal du først angive dit navn.",
+ "Enter your name" : "Angiv dit navn",
+ "Submit name" : "Angiv navn",
+ "Name" : "Navn",
+ "Email, federated cloud id" : "E-mail, sammenkoblings cloud id",
+ "Filename must not be empty." : "Filnavnet må ikke være tomt."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index 3a897c97c5c..924bb029de8 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"{actor} removed you from the share named {file}" : "{actor} hat dich aus der Freigabe von {file} entfernt",
"Share for file {file} with {user} expired" : "Freigabe für die Datei {file} mit {user} abgelaufen",
"Share for file {file} expired" : "Freigabe für die Datei {file} abgelaufen",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder Ordner wurde <strong>heruntergeladen</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder geteilter Ordner wurde <strong>heruntergeladen</strong>",
"Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dateien wurden in einen per E-Mail oder über einen öffentlichen Link freigegebenen Ordner <strong>hochgeladen</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
"Sharing" : "Teilen",
@@ -182,10 +182,10 @@ OC.L10N.register(
"Choose a default folder for accepted shares" : "Einen Standardordner für akzeptierte Freigaben wählen",
"Invalid path selected" : "Ungültigen Pfad ausgewählt",
"Unknown error" : "Unbekannter Fehler",
- "Set default folder for accepted shares" : "Standardordner für akzeptierte Freigaben wählen",
+ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben",
"Reset" : "Zurücksetzen",
"Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
- "Share expiration: " : "Freigabe-Ablaufdatum:",
+ "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}",
"Share Expiration" : "Freigabe-Ablaufdatum",
"group" : "Gruppe",
"conversation" : "Unterhaltung",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "Dateiablage",
"Upload files to {foldername}." : "Dateien hochladen nach {foldername}.",
"By uploading files, you agree to the terms of service." : "Durch das Hochladen von Dateien stimmst du den Nutzungsbedingungen zu.",
+ "Successfully uploaded files" : "Dateien wurden hochgeladen",
"View terms of service" : "Nutzungsbedingungen anzeigen",
"Terms of service" : "Nutzungsbedingungen",
- "Upload files to {folder}" : "Dateien hochladen nach {folder}",
- "Submit name" : "Name übermitteln",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit dir geteilt.",
- "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, musst du zunächst deinen Namen angeben.",
- "Name" : "Name",
- "Enter your name" : "Gib deinen Namen ein",
"Share with {userName}" : "Mit {userName} teilen",
"Share with email {email}" : "Per E-Mail {email} teilen",
"Share with group" : "Mit Gruppe teilen",
@@ -310,19 +305,21 @@ OC.L10N.register(
"Unable to fetch inherited shares" : "Vererbte Freigaben konnten nicht geladen werden",
"Link shares" : "Freigaben teilen",
"Shares" : "Freigaben",
- "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihnen den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwende diese Methode, um Dateien für Personen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihm den internen Freigabelink für einen einfachen Zugriff senden.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwende diese Methode, um Dateien für Personen oder Organisationen außerhalb deiner Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Du kannst auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem du deren Federated-Cloud-ID verwenden.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
+ "Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Share with accounts and teams" : "Teile mit Konten und Teams",
+ "Federated cloud ID" : "Federated-Cloud-ID",
+ "Email, federated cloud ID" : "Name, Federated-Cloud-ID",
"Unable to load the shares list" : "Liste der Freigaben konnte nicht geladen werden",
"Expires {relativetime}" : "Läuft {relativetime} ab",
"this share just expired." : "Diese Freigabe ist gerade abgelaufen.",
"Shared with you by {owner}" : "{owner} hat dies mit dir geteilt",
"Internal shares" : "Interne Freigaben",
"Internal shares explanation" : "Erklärung interner Freigaben",
- "Share with accounts and teams" : "Teile mit Konten und Teams",
"External shares" : "Externe Freigaben",
"External shares explanation" : "Erklärung externer Freigaben",
- "Email, federated cloud id" : "Name, Federated-Cloud-ID",
"Additional shares" : "Zusätzliche Freigaben",
"Additional shares explanation" : "Erklärung zusätzlicher Freigaben",
"Link to a file" : "Mit einer Datei verknüpfen",
@@ -355,10 +352,10 @@ OC.L10N.register(
"List of files that you shared with others." : "Liste der Dateien, die du mit anderen geteilt hast",
"Nothing shared yet" : "Noch nichts geteilt",
"Files and folders you shared will show up here" : "Von dir geteilte Dateien und Ordner werden hier angezeigt",
- "Shared by link" : "Geteilt über einen Link",
+ "Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von dir per Link geteilte Dateien werden hier angezeigt",
+ "Files and folders you shared by link will show up here" : "Von dir mittels Link geteilte Dateien und Ordner werden hier angezeigt",
"File requests" : "Dateianfragen",
"List of file requests." : "Liste der Dateianfragen.",
"No file requests" : "Keine Dateianfragen",
@@ -366,11 +363,13 @@ OC.L10N.register(
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die du verlassen hast.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt werden.",
+ "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
+ "Shares you have received but not approved will show up here" : "Freigaben, die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
+ "Error deleting the share: {errorMessage}" : "Fehler beim Löschen der Freigabe: {errorMessage}",
+ "Error deleting the share" : "Fehler beim Löschen der Freigabe",
"Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
"Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
"File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
@@ -383,6 +382,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert",
"Share password saved" : "Freigabe-Passwort gespeichert",
"Share permissions saved" : "Freigabeberechtigungen gespeichert",
+ "To upload files to {folder}, you need to provide your name first." : "Um Dateien nach {folder} hochzuladen, musst du zunächst deinen Namen angeben.",
+ "Upload files to {folder}" : "Dateien hochladen nach {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bitte bestätige deinen Namen, um Dateien nach {folder} hochzuladen",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit dir geteilt.",
+ "Names must not be empty." : "Namen dürfen nicht leer sein.",
+ "Names must not start with a dot." : "Namen dürfen nicht mit einem Punkt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" ist innerhalb eines Namens unzulässig.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ist ein reservierter Name und unzulässig.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" ist kein zulässiger Name.",
+ "Names must not end with \"{extension}\"." : "Namen dürfen nicht mit \"{extension}\" enden.",
+ "Invalid name." : "Ungültiger Name.",
"Shared by" : "Geteilt von",
"Shared with" : "Geteilt mit",
"Password created successfully" : "Passwort erstellt",
@@ -413,15 +423,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
"Invalid server URL" : "Falsche Server-URL",
"Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu deiner Nextcloud hinzugefügt werden",
- "Files" : "Dateien",
+ "You are not allowed to edit link shares that you don't own" : "Du darfst keine Linkfreigaben bearbeiten, die du nicht besitzst",
"Download all files" : "Alle Dateien herunterladen",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
"Search for share recipients" : "Nach Freigabe-Empfängern suchen",
"No recommendations. Start typing." : "Keine Empfehlungen. Eingabe beginnen.",
- "Password field can't be empty" : "Passwortfeld darf nicht leer sein",
- "Allow download" : "Download erlauben",
- "Share expire date saved" : "Freigabe-Ablaufdatum gespeichert",
- "You are not allowed to edit link shares that you don't own" : "Du darfst keine Linkfreigaben bearbeiten, die du nicht besitzst",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
- "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"]
+ "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, musst du zunächst deinen Namen angeben.",
+ "Enter your name" : "Gib deinen Namen ein",
+ "Submit name" : "Name übermitteln",
+ "Name" : "Name",
+ "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Email, federated cloud id" : "Name, Federated-Cloud-ID",
+ "Filename must not be empty." : "Dateiname darf nicht leer sein."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index 4dc0f6a273b..05ff5637b68 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -52,7 +52,7 @@
"{actor} removed you from the share named {file}" : "{actor} hat dich aus der Freigabe von {file} entfernt",
"Share for file {file} with {user} expired" : "Freigabe für die Datei {file} mit {user} abgelaufen",
"Share for file {file} expired" : "Freigabe für die Datei {file} abgelaufen",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder Ordner wurde <strong>heruntergeladen</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder geteilter Ordner wurde <strong>heruntergeladen</strong>",
"Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dateien wurden in einen per E-Mail oder über einen öffentlichen Link freigegebenen Ordner <strong>hochgeladen</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
"Sharing" : "Teilen",
@@ -180,10 +180,10 @@
"Choose a default folder for accepted shares" : "Einen Standardordner für akzeptierte Freigaben wählen",
"Invalid path selected" : "Ungültigen Pfad ausgewählt",
"Unknown error" : "Unbekannter Fehler",
- "Set default folder for accepted shares" : "Standardordner für akzeptierte Freigaben wählen",
+ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben",
"Reset" : "Zurücksetzen",
"Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
- "Share expiration: " : "Freigabe-Ablaufdatum:",
+ "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}",
"Share Expiration" : "Freigabe-Ablaufdatum",
"group" : "Gruppe",
"conversation" : "Unterhaltung",
@@ -255,14 +255,9 @@
"File drop" : "Dateiablage",
"Upload files to {foldername}." : "Dateien hochladen nach {foldername}.",
"By uploading files, you agree to the terms of service." : "Durch das Hochladen von Dateien stimmst du den Nutzungsbedingungen zu.",
+ "Successfully uploaded files" : "Dateien wurden hochgeladen",
"View terms of service" : "Nutzungsbedingungen anzeigen",
"Terms of service" : "Nutzungsbedingungen",
- "Upload files to {folder}" : "Dateien hochladen nach {folder}",
- "Submit name" : "Name übermitteln",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit dir geteilt.",
- "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, musst du zunächst deinen Namen angeben.",
- "Name" : "Name",
- "Enter your name" : "Gib deinen Namen ein",
"Share with {userName}" : "Mit {userName} teilen",
"Share with email {email}" : "Per E-Mail {email} teilen",
"Share with group" : "Mit Gruppe teilen",
@@ -308,19 +303,21 @@
"Unable to fetch inherited shares" : "Vererbte Freigaben konnten nicht geladen werden",
"Link shares" : "Freigaben teilen",
"Shares" : "Freigaben",
- "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihnen den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwende diese Methode, um Dateien für Personen oder Teams innerhalb deiner Organisation freizugeben. Wenn der Empfangende bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, kannst du ihm den internen Freigabelink für einen einfachen Zugriff senden.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwende diese Methode, um Dateien für Personen oder Organisationen außerhalb deiner Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Du kannst auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem du deren Federated-Cloud-ID verwenden.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
+ "Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Share with accounts and teams" : "Teile mit Konten und Teams",
+ "Federated cloud ID" : "Federated-Cloud-ID",
+ "Email, federated cloud ID" : "Name, Federated-Cloud-ID",
"Unable to load the shares list" : "Liste der Freigaben konnte nicht geladen werden",
"Expires {relativetime}" : "Läuft {relativetime} ab",
"this share just expired." : "Diese Freigabe ist gerade abgelaufen.",
"Shared with you by {owner}" : "{owner} hat dies mit dir geteilt",
"Internal shares" : "Interne Freigaben",
"Internal shares explanation" : "Erklärung interner Freigaben",
- "Share with accounts and teams" : "Teile mit Konten und Teams",
"External shares" : "Externe Freigaben",
"External shares explanation" : "Erklärung externer Freigaben",
- "Email, federated cloud id" : "Name, Federated-Cloud-ID",
"Additional shares" : "Zusätzliche Freigaben",
"Additional shares explanation" : "Erklärung zusätzlicher Freigaben",
"Link to a file" : "Mit einer Datei verknüpfen",
@@ -353,10 +350,10 @@
"List of files that you shared with others." : "Liste der Dateien, die du mit anderen geteilt hast",
"Nothing shared yet" : "Noch nichts geteilt",
"Files and folders you shared will show up here" : "Von dir geteilte Dateien und Ordner werden hier angezeigt",
- "Shared by link" : "Geteilt über einen Link",
+ "Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von dir per Link geteilte Dateien werden hier angezeigt",
+ "Files and folders you shared by link will show up here" : "Von dir mittels Link geteilte Dateien und Ordner werden hier angezeigt",
"File requests" : "Dateianfragen",
"List of file requests." : "Liste der Dateianfragen.",
"No file requests" : "Keine Dateianfragen",
@@ -364,11 +361,13 @@
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die du verlassen hast.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt werden.",
+ "Shares you have left will show up here" : "Freigaben, die du verlassen hast, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
+ "Shares you have received but not approved will show up here" : "Freigaben, die du erhalten, aber nicht bestätigt hast, werden hier angezeigt",
+ "Error deleting the share: {errorMessage}" : "Fehler beim Löschen der Freigabe: {errorMessage}",
+ "Error deleting the share" : "Fehler beim Löschen der Freigabe",
"Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
"Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
"File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
@@ -381,6 +380,17 @@
"Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert",
"Share password saved" : "Freigabe-Passwort gespeichert",
"Share permissions saved" : "Freigabeberechtigungen gespeichert",
+ "To upload files to {folder}, you need to provide your name first." : "Um Dateien nach {folder} hochzuladen, musst du zunächst deinen Namen angeben.",
+ "Upload files to {folder}" : "Dateien hochladen nach {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bitte bestätige deinen Namen, um Dateien nach {folder} hochzuladen",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit dir geteilt.",
+ "Names must not be empty." : "Namen dürfen nicht leer sein.",
+ "Names must not start with a dot." : "Namen dürfen nicht mit einem Punkt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" ist innerhalb eines Namens unzulässig.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ist ein reservierter Name und unzulässig.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" ist kein zulässiger Name.",
+ "Names must not end with \"{extension}\"." : "Namen dürfen nicht mit \"{extension}\" enden.",
+ "Invalid name." : "Ungültiger Name.",
"Shared by" : "Geteilt von",
"Shared with" : "Geteilt mit",
"Password created successfully" : "Passwort erstellt",
@@ -411,15 +421,18 @@
"No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
"Invalid server URL" : "Falsche Server-URL",
"Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu deiner Nextcloud hinzugefügt werden",
- "Files" : "Dateien",
+ "You are not allowed to edit link shares that you don't own" : "Du darfst keine Linkfreigaben bearbeiten, die du nicht besitzst",
"Download all files" : "Alle Dateien herunterladen",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
"Search for share recipients" : "Nach Freigabe-Empfängern suchen",
"No recommendations. Start typing." : "Keine Empfehlungen. Eingabe beginnen.",
- "Password field can't be empty" : "Passwortfeld darf nicht leer sein",
- "Allow download" : "Download erlauben",
- "Share expire date saved" : "Freigabe-Ablaufdatum gespeichert",
- "You are not allowed to edit link shares that you don't own" : "Du darfst keine Linkfreigaben bearbeiten, die du nicht besitzst",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
- "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"]
+ "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, musst du zunächst deinen Namen angeben.",
+ "Enter your name" : "Gib deinen Namen ein",
+ "Submit name" : "Name übermitteln",
+ "Name" : "Name",
+ "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Email, federated cloud id" : "Name, Federated-Cloud-ID",
+ "Filename must not be empty." : "Dateiname darf nicht leer sein."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index dcf87c7df98..42f8084872a 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"{actor} removed you from the share named {file}" : "{actor} hat Sie aus der Freigabe von {file} entfernt",
"Share for file {file} with {user} expired" : "Freigabe der Datei {file} für {user} abgelaufen",
"Share for file {file} expired" : "Freigabe für die Datei {file} abgelaufen",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei / Ordner wurde <strong>heruntergeladen</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder geteilter Ordner wurde <strong>heruntergeladen</strong>",
"Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dateien wurden in einen per E-Mail oder über einen öffentlichen Link freigegebenen Ordner <strong>hochgeladen</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
"Sharing" : "Teilen",
@@ -182,10 +182,10 @@ OC.L10N.register(
"Choose a default folder for accepted shares" : "Wählen Sie einen Standardordner für akzeptierte Freigaben",
"Invalid path selected" : "Ungültiger Pfad ausgewählt",
"Unknown error" : "Unbekannter Fehler",
- "Set default folder for accepted shares" : "Standardordner für akzeptierte Freigaben wählen",
+ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben",
"Reset" : "Zurücksetzen",
"Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
- "Share expiration: " : "Freigabe-Ablaufdatum:",
+ "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}",
"Share Expiration" : "Freigabe-Ablaufdatum",
"group" : "Gruppe",
"conversation" : "Unterhaltung",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "Dateiablage",
"Upload files to {foldername}." : "Dateien hochladen nach {foldername}.",
"By uploading files, you agree to the terms of service." : "Durch das Hochladen von Dateien stimmen Sie den Nutzungsbedingungen zu.",
+ "Successfully uploaded files" : "Dateien wurden hochgeladen",
"View terms of service" : "Nutzungsbedingungen anzeigen",
"Terms of service" : "Nutzungsbedingungen",
- "Upload files to {folder}" : "Dateien hochladen nach {folder}",
- "Submit name" : "Name übermitteln",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit Ihnen geteilt.",
- "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
- "Name" : "Name",
- "Enter your name" : "Geben Sie Ihren Namen ein",
"Share with {userName}" : "Mit {userName} teilen",
"Share with email {email}" : "Mit E-Mail {email} teilen",
"Share with group" : "Mit Gruppe teilen",
@@ -310,19 +305,21 @@ OC.L10N.register(
"Unable to fetch inherited shares" : "Laden der vererbten Freigaben fehlgeschlagen",
"Link shares" : "Freigaben teilen",
"Shares" : "Freigaben",
- "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwenden Sie diese Methode, um Dateien für Personen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwenden Sie diese Methode, um Dateien für Personen oder Organisationen außerhalb Ihrer Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Sie können auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem Sie deren Federated-Cloud-ID verwenden.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
+ "Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Share with accounts and teams" : "Teile mit Konten und Teams",
+ "Federated cloud ID" : "Federated-Cloud-ID",
+ "Email, federated cloud ID" : "Name, Federated-Cloud-ID",
"Unable to load the shares list" : "Liste der Freigaben kann nicht geladen werden",
"Expires {relativetime}" : "Läuft {relativetime} ab",
"this share just expired." : "Diese Freigabe ist gerade abgelaufen.",
"Shared with you by {owner}" : "{owner} hat diese mit Ihnen geteilt",
"Internal shares" : "Interne Freigaben",
"Internal shares explanation" : "Erklärung interner Freigaben",
- "Share with accounts and teams" : "Teile mit Konten und Teams",
"External shares" : "Externe Freigaben",
"External shares explanation" : "Erklärung externer Freigaben",
- "Email, federated cloud id" : "Name, Federated-Cloud-ID",
"Additional shares" : "Zusätzliche Freigaben",
"Additional shares explanation" : "Erklärung zusätzlicher Freigaben",
"Link to a file" : "Mit einer Datei verknüpfen",
@@ -347,18 +344,18 @@ OC.L10N.register(
"Files and folders shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"Overview of shared files." : "Übersicht geteilter Dateien",
"No shares" : "Keine Freigaben",
- "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt werden",
+ "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt",
"Shared with you" : "Mit Ihnen geteilt",
"List of files that are shared with you." : "Liste der Dateien, die mit Ihnen geteilt wurden.",
"Nothing shared with you yet" : "Bis jetzt wurde nichts mit Ihnen geteilt",
- "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"List of files that you shared with others." : "Liste der Dateien, die Sie mit anderen geteilt haben.",
"Nothing shared yet" : "Noch nichts geteilt",
- "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
- "Shared by link" : "Geteilt über einen Link",
+ "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt",
+ "Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt",
"File requests" : "Dateianfragen",
"List of file requests." : "Liste der Dateianfragen.",
"No file requests" : "Keine Dateianfragen",
@@ -366,11 +363,13 @@ OC.L10N.register(
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die Sie verlassen haben.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben die Sie verlassen haben, werden hier angezeigt werden",
+ "Shares you have left will show up here" : "Freigaben, die Sie verlassen haben, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt werden",
+ "Shares you have received but not approved will show up here" : "Freigaben, die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt",
+ "Error deleting the share: {errorMessage}" : "Fehler beim Löschen der Freigabe: {errorMessage}",
+ "Error deleting the share" : "Fehler beim Löschen der Freigabe",
"Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
"Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
"File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
@@ -383,6 +382,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert",
"Share password saved" : "Freigabe-Passwort gespeichert",
"Share permissions saved" : "Freigabeberechtigungen gespeichert",
+ "To upload files to {folder}, you need to provide your name first." : "Um Dateien nach {folder} hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
+ "Upload files to {folder}" : "Dateien hochladen nach {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bitte bestätigen Sie Ihren Namen, um Dateien nach {folder} hochzuladen",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit Ihnen geteilt.",
+ "Names must not be empty." : "Namen dürfen nicht leer sein.",
+ "Names must not start with a dot." : "Namen dürfen nicht mit einem Punkt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" ist innerhalb eines Namens unzulässig.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ist ein reservierter Name und unzulässig.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" ist kein zulässiger Name.",
+ "Names must not end with \"{extension}\"." : "Namen dürfen nicht mit \"{extension}\" enden.",
+ "Invalid name." : "Ungültiger Name.",
"Shared by" : "Geteilt von",
"Shared with" : "Geteilt mit",
"Password created successfully" : "Passwort erstellt",
@@ -413,15 +423,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
"Invalid server URL" : "Falsche Server-URL",
"Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu Ihrer Nextcloud hinzugefügt werden",
- "Files" : "Dateien",
+ "You are not allowed to edit link shares that you don't own" : "Sie dürfen keine Linkfreigaben bearbeiten, die Sie nicht besitzen",
"Download all files" : "Alle Dateien herunterladen",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
"Search for share recipients" : "Nach Freigabeempfängern suchen",
"No recommendations. Start typing." : "Keine Empfehlungen. Beginnen Sie mit der Eingabe.",
- "Password field can't be empty" : "Passwortfeld darf nicht leer sein",
- "Allow download" : "Download erlauben",
- "Share expire date saved" : "Freigabe-Ablaufdatum gespeichert",
- "You are not allowed to edit link shares that you don't own" : "Sie dürfen keine Linkfreigaben bearbeiten, die Sie nicht besitzen",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
- "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"]
+ "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
+ "Enter your name" : "Geben Sie Ihren Namen ein",
+ "Submit name" : "Name übermitteln",
+ "Name" : "Name",
+ "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Email, federated cloud id" : "Name, Federated-Cloud-ID",
+ "Filename must not be empty." : "Dateiname darf nicht leer sein."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index b918effcbd8..875aa3a5f6c 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -52,7 +52,7 @@
"{actor} removed you from the share named {file}" : "{actor} hat Sie aus der Freigabe von {file} entfernt",
"Share for file {file} with {user} expired" : "Freigabe der Datei {file} für {user} abgelaufen",
"Share for file {file} expired" : "Freigabe für die Datei {file} abgelaufen",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei / Ordner wurde <strong>heruntergeladen</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Öffentlich oder per E-Mail geteilte Datei oder geteilter Ordner wurde <strong>heruntergeladen</strong>",
"Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Dateien wurden in einen per E-Mail oder über einen öffentlichen Link freigegebenen Ordner <strong>hochgeladen</strong>",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
"Sharing" : "Teilen",
@@ -180,10 +180,10 @@
"Choose a default folder for accepted shares" : "Wählen Sie einen Standardordner für akzeptierte Freigaben",
"Invalid path selected" : "Ungültiger Pfad ausgewählt",
"Unknown error" : "Unbekannter Fehler",
- "Set default folder for accepted shares" : "Standardordner für akzeptierte Freigaben wählen",
+ "Set default folder for accepted shares" : "Standardordner für angenommene Freigaben",
"Reset" : "Zurücksetzen",
"Reset folder to system default" : "Ordner auf Systemstandard zurücksetzen",
- "Share expiration: " : "Freigabe-Ablaufdatum:",
+ "Share expiration: {date}" : "Freigabe-Ablaufdatum: {date}",
"Share Expiration" : "Freigabe-Ablaufdatum",
"group" : "Gruppe",
"conversation" : "Unterhaltung",
@@ -255,14 +255,9 @@
"File drop" : "Dateiablage",
"Upload files to {foldername}." : "Dateien hochladen nach {foldername}.",
"By uploading files, you agree to the terms of service." : "Durch das Hochladen von Dateien stimmen Sie den Nutzungsbedingungen zu.",
+ "Successfully uploaded files" : "Dateien wurden hochgeladen",
"View terms of service" : "Nutzungsbedingungen anzeigen",
"Terms of service" : "Nutzungsbedingungen",
- "Upload files to {folder}" : "Dateien hochladen nach {folder}",
- "Submit name" : "Name übermitteln",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit Ihnen geteilt.",
- "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
- "Name" : "Name",
- "Enter your name" : "Geben Sie Ihren Namen ein",
"Share with {userName}" : "Mit {userName} teilen",
"Share with email {email}" : "Mit E-Mail {email} teilen",
"Share with group" : "Mit Gruppe teilen",
@@ -308,19 +303,21 @@
"Unable to fetch inherited shares" : "Laden der vererbten Freigaben fehlgeschlagen",
"Link shares" : "Freigaben teilen",
"Shares" : "Freigaben",
- "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Diese Methode verwenden, um Dateien für Einzelpersonen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Verwenden Sie diese Methode, um Dateien für Personen oder Teams innerhalb Ihrer Organisation freizugeben. Wenn der Empfänger bereits Zugriff auf die Freigabe hat, diese aber nicht finden kann, können Sie ihm den internen Freigabelink für einen einfachen Zugriff senden.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Verwenden Sie diese Methode, um Dateien für Personen oder Organisationen außerhalb Ihrer Organisation freizugeben. Dateien und Ordner können über öffentliche Freigabelinks und E-Mail-Adressen freigegeben werden. Sie können auch Dateien für andere Nextcloud-Konten freigeben, die auf verschiedenen Instanzen gehostet werden, indem Sie deren Federated-Cloud-ID verwenden.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Freigaben, die nicht zu internen oder externen Freigaben gehören. Dies können Freigaben von Apps oder anderen Quellen sein.",
+ "Share with accounts, teams, federated cloud IDs" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Share with accounts and teams" : "Teile mit Konten und Teams",
+ "Federated cloud ID" : "Federated-Cloud-ID",
+ "Email, federated cloud ID" : "Name, Federated-Cloud-ID",
"Unable to load the shares list" : "Liste der Freigaben kann nicht geladen werden",
"Expires {relativetime}" : "Läuft {relativetime} ab",
"this share just expired." : "Diese Freigabe ist gerade abgelaufen.",
"Shared with you by {owner}" : "{owner} hat diese mit Ihnen geteilt",
"Internal shares" : "Interne Freigaben",
"Internal shares explanation" : "Erklärung interner Freigaben",
- "Share with accounts and teams" : "Teile mit Konten und Teams",
"External shares" : "Externe Freigaben",
"External shares explanation" : "Erklärung externer Freigaben",
- "Email, federated cloud id" : "Name, Federated-Cloud-ID",
"Additional shares" : "Zusätzliche Freigaben",
"Additional shares explanation" : "Erklärung zusätzlicher Freigaben",
"Link to a file" : "Mit einer Datei verknüpfen",
@@ -345,18 +342,18 @@
"Files and folders shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"Overview of shared files." : "Übersicht geteilter Dateien",
"No shares" : "Keine Freigaben",
- "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt werden",
+ "Files and folders you shared or have been shared with you will show up here" : "Von Ihnen oder mit Ihnen geteilte Ordner und Dateien werden hier angezeigt",
"Shared with you" : "Mit Ihnen geteilt",
"List of files that are shared with you." : "Liste der Dateien, die mit Ihnen geteilt wurden.",
"Nothing shared with you yet" : "Bis jetzt wurde nichts mit Ihnen geteilt",
- "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders others shared with you will show up here" : "Mit Ihnen geteilte Dateien und Ordner werden hier angezeigt",
"List of files that you shared with others." : "Liste der Dateien, die Sie mit anderen geteilt haben.",
"Nothing shared yet" : "Noch nichts geteilt",
- "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt werden",
- "Shared by link" : "Geteilt über einen Link",
+ "Files and folders you shared will show up here" : "Von Ihnen geteilte Dateien und Ordner werden hier angezeigt",
+ "Shared by link" : "Über einen Link geteilt",
"List of files that are shared by link." : "Liste der Dateien, die mittels Link geteilt wurden.",
"No shared links" : "Keine geteilten Links",
- "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt werden",
+ "Files and folders you shared by link will show up here" : "Von Ihnen mittels Link geteilte Dateien und Ordner werden hier angezeigt",
"File requests" : "Dateianfragen",
"List of file requests." : "Liste der Dateianfragen.",
"No file requests" : "Keine Dateianfragen",
@@ -364,11 +361,13 @@
"Deleted shares" : "Gelöschte Freigaben",
"List of shares you left." : "Liste der Freigaben, die Sie verlassen haben.",
"No deleted shares" : "Keine gelöschten Freigaben",
- "Shares you have left will show up here" : "Freigaben die Sie verlassen haben, werden hier angezeigt werden",
+ "Shares you have left will show up here" : "Freigaben, die Sie verlassen haben, werden hier angezeigt",
"Pending shares" : "Ausstehende Freigaben",
"List of unapproved shares." : "Liste ungeprüfter Freigaben.",
"No pending shares" : "Keine ausstehenden Freigaben",
- "Shares you have received but not approved will show up here" : "Freigaben die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt werden",
+ "Shares you have received but not approved will show up here" : "Freigaben, die Sie erhalten, aber nicht bestätigt haben, werden hier angezeigt",
+ "Error deleting the share: {errorMessage}" : "Fehler beim Löschen der Freigabe: {errorMessage}",
+ "Error deleting the share" : "Fehler beim Löschen der Freigabe",
"Error updating the share: {errorMessage}" : "Fehler beim Aktualisieren der Freigabe: {errorMessage}",
"Error updating the share" : "Fehler beim Aktualisieren der Freigabe",
"File \"{path}\" has been unshared" : "Freigabe für die Datei \"{path}\" wurde entfernt",
@@ -381,6 +380,17 @@
"Share note for recipient saved" : "Freigabe-Notiz für Empfänger gespeichert",
"Share password saved" : "Freigabe-Passwort gespeichert",
"Share permissions saved" : "Freigabeberechtigungen gespeichert",
+ "To upload files to {folder}, you need to provide your name first." : "Um Dateien nach {folder} hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
+ "Upload files to {folder}" : "Dateien hochladen nach {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bitte bestätigen Sie Ihren Namen, um Dateien nach {folder} hochzuladen",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} hat einen Ordner mit Ihnen geteilt.",
+ "Names must not be empty." : "Namen dürfen nicht leer sein.",
+ "Names must not start with a dot." : "Namen dürfen nicht mit einem Punkt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" ist innerhalb eines Namens unzulässig.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ist ein reservierter Name und unzulässig.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" ist kein zulässiger Name.",
+ "Names must not end with \"{extension}\"." : "Namen dürfen nicht mit \"{extension}\" enden.",
+ "Invalid name." : "Ungültiger Name.",
"Shared by" : "Geteilt von",
"Shared with" : "Geteilt mit",
"Password created successfully" : "Passwort erstellt",
@@ -411,15 +421,18 @@
"No compatible server found at {remote}" : "Keinen kompatiblen Server unter {remote} gefunden",
"Invalid server URL" : "Falsche Server-URL",
"Failed to add the public link to your Nextcloud" : "Der öffentliche Link konnte nicht zu Ihrer Nextcloud hinzugefügt werden",
- "Files" : "Dateien",
+ "You are not allowed to edit link shares that you don't own" : "Sie dürfen keine Linkfreigaben bearbeiten, die Sie nicht besitzen",
"Download all files" : "Alle Dateien herunterladen",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"],
"Search for share recipients" : "Nach Freigabeempfängern suchen",
"No recommendations. Start typing." : "Keine Empfehlungen. Beginnen Sie mit der Eingabe.",
- "Password field can't be empty" : "Passwortfeld darf nicht leer sein",
- "Allow download" : "Download erlauben",
- "Share expire date saved" : "Freigabe-Ablaufdatum gespeichert",
- "You are not allowed to edit link shares that you don't own" : "Sie dürfen keine Linkfreigaben bearbeiten, die Sie nicht besitzen",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 E-Mail-Adresse bereits hinzugefügt","{count} E-Mail-Adressen bereits hinzugefügt"],
- "_1 email address added_::_{count} email addresses added_" : ["1 E-Mail-Adresse hinzugefügt","{count} E-Mail-Adressen hinzugefügt"]
+ "To upload files, you need to provide your name first." : "Um Dateien hochzuladen, müssen Sie zunächst Ihren Namen angeben.",
+ "Enter your name" : "Geben Sie Ihren Namen ein",
+ "Submit name" : "Name übermitteln",
+ "Name" : "Name",
+ "Share with accounts, teams, federated cloud id" : "Teilen mit Konten, Teams, Federated-Cloud-IDs",
+ "Email, federated cloud id" : "Name, Federated-Cloud-ID",
+ "Filename must not be empty." : "Dateiname darf nicht leer sein."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js
index 45f2a565931..8d9efb9e50e 100644
--- a/apps/files_sharing/l10n/el.js
+++ b/apps/files_sharing/l10n/el.js
@@ -168,8 +168,6 @@ OC.L10N.register(
"Note:" : "Σημείωση:",
"File drop" : "Απόθεση αρχείου",
"Terms of service" : "Όροι χρήσης",
- "Name" : "Όνομα",
- "Enter your name" : "Προσθέστε το όνομά σας",
"Share with group" : "Κοινή χρήση με ομάδα",
"Share in conversation" : "Κοινή χρήση σε συζήτηση",
"Share with guest" : "Κοινή χρήση με επισκέπτη",
@@ -234,6 +232,7 @@ OC.L10N.register(
"List of unapproved shares." : "Λίστα μη αποδεκτών κοινόχρηστων.",
"No pending shares" : "Δεν εκκρεμούν κοινόχρηστα",
"Shares you have received but not approved will show up here" : "Κοινόχρηστα που έχετε λάβει αλλά δεν έχετε εγκρίνει θα εμφανιστούν εδώ",
+ "Error deleting the share" : "Σφάλμα διαγραφής του κοινόχρηστου",
"Error updating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
"Error updating the share" : "Σφάλμα κατά την ενημέρωση του κοινόχρηστου",
"Share label saved" : "Διαμοιρασμένη ετικέτα αποθηκεύτηκε ",
@@ -267,10 +266,11 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Δεν βρέθηκε συμβατός διακομιστής σε {remote}",
"Invalid server URL" : "Μη έγκυρο URL διακομιστή",
"Failed to add the public link to your Nextcloud" : "Αποτυχία στην πρόσθεση του κοινού συνδέσμου στο Nextcloud σας",
- "Files" : "Αρχεία",
"Download all files" : "Λήψη όλων των αρχείων",
"Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
"No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
- "Allow download" : "Να επιτρέπεται η λήψη"
+ "Enter your name" : "Προσθέστε το όνομά σας",
+ "Name" : "Όνομα",
+ "Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json
index 790526c705e..fe132c15bc8 100644
--- a/apps/files_sharing/l10n/el.json
+++ b/apps/files_sharing/l10n/el.json
@@ -166,8 +166,6 @@
"Note:" : "Σημείωση:",
"File drop" : "Απόθεση αρχείου",
"Terms of service" : "Όροι χρήσης",
- "Name" : "Όνομα",
- "Enter your name" : "Προσθέστε το όνομά σας",
"Share with group" : "Κοινή χρήση με ομάδα",
"Share in conversation" : "Κοινή χρήση σε συζήτηση",
"Share with guest" : "Κοινή χρήση με επισκέπτη",
@@ -232,6 +230,7 @@
"List of unapproved shares." : "Λίστα μη αποδεκτών κοινόχρηστων.",
"No pending shares" : "Δεν εκκρεμούν κοινόχρηστα",
"Shares you have received but not approved will show up here" : "Κοινόχρηστα που έχετε λάβει αλλά δεν έχετε εγκρίνει θα εμφανιστούν εδώ",
+ "Error deleting the share" : "Σφάλμα διαγραφής του κοινόχρηστου",
"Error updating the share: {errorMessage}" : "Σφάλμα κατά τη δημιουργία της κοινής χρήσης: {errorMessage}",
"Error updating the share" : "Σφάλμα κατά την ενημέρωση του κοινόχρηστου",
"Share label saved" : "Διαμοιρασμένη ετικέτα αποθηκεύτηκε ",
@@ -265,10 +264,11 @@
"No compatible server found at {remote}" : "Δεν βρέθηκε συμβατός διακομιστής σε {remote}",
"Invalid server URL" : "Μη έγκυρο URL διακομιστή",
"Failed to add the public link to your Nextcloud" : "Αποτυχία στην πρόσθεση του κοινού συνδέσμου στο Nextcloud σας",
- "Files" : "Αρχεία",
"Download all files" : "Λήψη όλων των αρχείων",
"Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
"No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
- "Allow download" : "Να επιτρέπεται η λήψη"
+ "Enter your name" : "Προσθέστε το όνομά σας",
+ "Name" : "Όνομα",
+ "Filename must not be empty." : "Το όνομα αρχείου δεν πρέπει να είναι κενό."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index 8173311cd51..153d1e7ab40 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Set default folder for accepted shares",
"Reset" : "Reset",
"Reset folder to system default" : "Reset folder to system default",
- "Share expiration: " : "Share expiration: ",
+ "Share expiration: {date}" : "Share expiration: {date}",
"Share Expiration" : "Share Expiration",
"group" : "group",
"conversation" : "conversation",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "File drop",
"Upload files to {foldername}." : "Upload files to {foldername}.",
"By uploading files, you agree to the terms of service." : "By uploading files, you agree to the terms of service.",
+ "Successfully uploaded files" : "Successfully uploaded files",
"View terms of service" : "View terms of service",
"Terms of service" : "Terms of service",
- "Upload files to {folder}" : "Upload files to {folder}",
- "Submit name" : "Submit name",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} shared a folder with you.",
- "To upload files, you need to provide your name first." : "To upload files, you need to provide your name first.",
- "Name" : "Surname",
- "Enter your name" : "Enter your name",
"Share with {userName}" : "Share with {userName}",
"Share with email {email}" : "Share with email {email}",
"Share with group" : "Share with group",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares that are not part of the internal or external shares. This can be shares from apps or other sources.",
+ "Share with accounts, teams, federated cloud IDs" : "Share with accounts, teams, federated cloud IDs",
+ "Share with accounts and teams" : "Share with accounts and teams",
+ "Federated cloud ID" : "Federated cloud ID",
+ "Email, federated cloud ID" : "Email, federated cloud ID",
"Unable to load the shares list" : "Unable to load the shares list",
"Expires {relativetime}" : "Expires {relativetime}",
"this share just expired." : "this share just expired.",
"Shared with you by {owner}" : "Shared with you by {owner}",
"Internal shares" : "Internal shares",
"Internal shares explanation" : "Internal shares explanation",
- "Share with accounts and teams" : "Share with accounts and teams",
"External shares" : "External shares",
"External shares explanation" : "External shares explanation",
- "Email, federated cloud id" : "Email, federated cloud id",
"Additional shares" : "Additional shares",
"Additional shares explanation" : "Additional shares explanation",
"Link to a file" : "Link to a file",
@@ -383,6 +380,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Share note for recipient saved",
"Share password saved" : "Share password saved",
"Share permissions saved" : "Share permissions saved",
+ "To upload files to {folder}, you need to provide your name first." : "To upload files to {folder}, you need to provide your name first.",
+ "Upload files to {folder}" : "Upload files to {folder}",
+ "Please confirm your name to upload files to {folder}" : "Please confirm your name to upload files to {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} shared a folder with you.",
+ "Names must not be empty." : "Names must not be empty.",
+ "Names must not start with a dot." : "Names must not start with a dot.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" is not allowed inside a name.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" is a reserved name and not allowed.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" is not an allowed name.",
+ "Names must not end with \"{extension}\"." : "Names must not end with \"{extension}\".",
+ "Invalid name." : "Invalid name.",
"Shared by" : "Shared by",
"Shared with" : "Shared with",
"Password created successfully" : "Password created successfully",
@@ -413,15 +421,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "No compatible server found at {remote}",
"Invalid server URL" : "Invalid server URL",
"Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
- "Files" : "Files",
+ "You are not allowed to edit link shares that you don't own" : "You are not allowed to edit link shares that you don't own",
"Download all files" : "Download all files",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count} email addresses already added"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"],
"Search for share recipients" : "Search for share recipients",
"No recommendations. Start typing." : "No recommendations. Start typing.",
- "Password field can't be empty" : "Password field can't be empty",
- "Allow download" : "Allow download",
- "Share expire date saved" : "Share expire date saved",
- "You are not allowed to edit link shares that you don't own" : "You are not allowed to edit link shares that you don't own",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count} email addresses already added"],
- "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"]
+ "To upload files, you need to provide your name first." : "To upload files, you need to provide your name first.",
+ "Enter your name" : "Enter your name",
+ "Submit name" : "Submit name",
+ "Name" : "Surname",
+ "Share with accounts, teams, federated cloud id" : "Share with accounts, teams, federated cloud id",
+ "Email, federated cloud id" : "Email, federated cloud id",
+ "Filename must not be empty." : "Filename must not be empty."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index b2cab53805c..29cd7c85eb0 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "Set default folder for accepted shares",
"Reset" : "Reset",
"Reset folder to system default" : "Reset folder to system default",
- "Share expiration: " : "Share expiration: ",
+ "Share expiration: {date}" : "Share expiration: {date}",
"Share Expiration" : "Share Expiration",
"group" : "group",
"conversation" : "conversation",
@@ -255,14 +255,9 @@
"File drop" : "File drop",
"Upload files to {foldername}." : "Upload files to {foldername}.",
"By uploading files, you agree to the terms of service." : "By uploading files, you agree to the terms of service.",
+ "Successfully uploaded files" : "Successfully uploaded files",
"View terms of service" : "View terms of service",
"Terms of service" : "Terms of service",
- "Upload files to {folder}" : "Upload files to {folder}",
- "Submit name" : "Submit name",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} shared a folder with you.",
- "To upload files, you need to provide your name first." : "To upload files, you need to provide your name first.",
- "Name" : "Surname",
- "Enter your name" : "Enter your name",
"Share with {userName}" : "Share with {userName}",
"Share with email {email}" : "Share with email {email}",
"Share with group" : "Share with group",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares that are not part of the internal or external shares. This can be shares from apps or other sources.",
+ "Share with accounts, teams, federated cloud IDs" : "Share with accounts, teams, federated cloud IDs",
+ "Share with accounts and teams" : "Share with accounts and teams",
+ "Federated cloud ID" : "Federated cloud ID",
+ "Email, federated cloud ID" : "Email, federated cloud ID",
"Unable to load the shares list" : "Unable to load the shares list",
"Expires {relativetime}" : "Expires {relativetime}",
"this share just expired." : "this share just expired.",
"Shared with you by {owner}" : "Shared with you by {owner}",
"Internal shares" : "Internal shares",
"Internal shares explanation" : "Internal shares explanation",
- "Share with accounts and teams" : "Share with accounts and teams",
"External shares" : "External shares",
"External shares explanation" : "External shares explanation",
- "Email, federated cloud id" : "Email, federated cloud id",
"Additional shares" : "Additional shares",
"Additional shares explanation" : "Additional shares explanation",
"Link to a file" : "Link to a file",
@@ -381,6 +378,17 @@
"Share note for recipient saved" : "Share note for recipient saved",
"Share password saved" : "Share password saved",
"Share permissions saved" : "Share permissions saved",
+ "To upload files to {folder}, you need to provide your name first." : "To upload files to {folder}, you need to provide your name first.",
+ "Upload files to {folder}" : "Upload files to {folder}",
+ "Please confirm your name to upload files to {folder}" : "Please confirm your name to upload files to {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} shared a folder with you.",
+ "Names must not be empty." : "Names must not be empty.",
+ "Names must not start with a dot." : "Names must not start with a dot.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" is not allowed inside a name.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" is a reserved name and not allowed.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" is not an allowed name.",
+ "Names must not end with \"{extension}\"." : "Names must not end with \"{extension}\".",
+ "Invalid name." : "Invalid name.",
"Shared by" : "Shared by",
"Shared with" : "Shared with",
"Password created successfully" : "Password created successfully",
@@ -411,15 +419,18 @@
"No compatible server found at {remote}" : "No compatible server found at {remote}",
"Invalid server URL" : "Invalid server URL",
"Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
- "Files" : "Files",
+ "You are not allowed to edit link shares that you don't own" : "You are not allowed to edit link shares that you don't own",
"Download all files" : "Download all files",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count} email addresses already added"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"],
"Search for share recipients" : "Search for share recipients",
"No recommendations. Start typing." : "No recommendations. Start typing.",
- "Password field can't be empty" : "Password field can't be empty",
- "Allow download" : "Allow download",
- "Share expire date saved" : "Share expire date saved",
- "You are not allowed to edit link shares that you don't own" : "You are not allowed to edit link shares that you don't own",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 email address already added","{count} email addresses already added"],
- "_1 email address added_::_{count} email addresses added_" : ["1 email address added","{count} email addresses added"]
+ "To upload files, you need to provide your name first." : "To upload files, you need to provide your name first.",
+ "Enter your name" : "Enter your name",
+ "Submit name" : "Submit name",
+ "Name" : "Surname",
+ "Share with accounts, teams, federated cloud id" : "Share with accounts, teams, federated cloud id",
+ "Email, federated cloud id" : "Email, federated cloud id",
+ "Filename must not be empty." : "Filename must not be empty."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/eo.js b/apps/files_sharing/l10n/eo.js
deleted file mode 100644
index 9e1cc24982b..00000000000
--- a/apps/files_sharing/l10n/eo.js
+++ /dev/null
@@ -1,208 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "File shares" : "Dosieraj kunhavoj",
- "Downloaded via public link" : "Elŝutita per publika ligilo",
- "Downloaded by {email}" : "Elŝutita de {email}",
- "{file} downloaded via public link" : "{file} elŝutita per publika ligilo",
- "{email} downloaded {file}" : "{email} elŝutis la dosieron {file}",
- "Shared with group {group}" : "Kunhavata kun grupo {group}",
- "Removed share for group {group}" : "Foriĝis kunhavo kun grupo {group}",
- "{actor} shared with group {group}" : "{actor} kunhavigis kun grupo {group}",
- "{actor} removed share for group {group}" : "{actor} forigis kunhavon kun grupo {group}",
- "Share for group {group} expired" : "Kunhavo kun grupo {group} senvalidiĝis",
- "You shared {file} with group {group}" : "Vi kunhavigis {file} kun grupo {group}",
- "You removed group {group} from {file}" : "Vi forigis grupon {group} el {file}",
- "{actor} shared {file} with group {group}" : "{actor} kunhavigis dosieron {file} kun grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} forigis grupon {group} el dosiero {file}",
- "Share for file {file} with group {group} expired" : "Kunhavo de dosiero {file} kun grupo {group} senvalidiĝis",
- "Shared as public link" : "Kunhavigita per publika ligilo",
- "Removed public link" : "Foriĝis publika ligilo",
- "Public link expired" : "Publika ligilo senvalidiĝis",
- "{actor} shared as public link" : "{actor} kunhavigis per publika ligilo",
- "{actor} removed public link" : "{actor} forigis publikan ligilon",
- "Public link of {actor} expired" : "Publika ligilo de {actor} senvalidiĝis",
- "You shared {file} as public link" : "Vi kunhavigis dosieron {file} kiel publika ligilo",
- "You removed public link for {file}" : "Vi forigis publikan ligilon por {file}",
- "Public link expired for {file}" : "Publika ligilo de dosiero {file} senvalidiĝis",
- "{actor} shared {file} as public link" : "{actor} kunhavigis dosieron {file} kiel publika ligilo",
- "{actor} removed public link for {file}" : "{actor} forigis publikan ligilon el {file}",
- "Public link of {actor} for {file} expired" : "Publika ligilo de {actor} pri {file} senvalidiĝis",
- "{user} accepted the remote share" : "{user} akceptis la foran kunhavon",
- "{user} declined the remote share" : "{user} malakceptis la foran kunhavon",
- "You received a new remote share {file} from {user}" : "Vi ricevis novan foran kunhavon {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} akceptis la foran kunhavon de {file}",
- "{user} declined the remote share of {file}" : "{user} malakceptis la foran kunhavon de {file}",
- "{user} unshared {file} from you" : "{user} malkunhavigis {file} al vi",
- "Shared with {user}" : "Kunhavigita kun {user}",
- "Removed share for {user}" : "Kunhavo forigita el {user}",
- "You removed yourself" : "Vi forigis vin mem",
- "{actor} removed themselves" : "{actor} forigis sin mem",
- "{actor} shared with {user}" : "{actor} kunhavigis kun {user}",
- "{actor} removed share for {user}" : "{actor} forigis kunhavon kun {user}",
- "Shared by {actor}" : "Kunhavigita de {actor}",
- "{actor} removed share" : "{actor} forigis kunhavon",
- "Share for {user} expired" : "Kunhavo por {user} senvalidiĝis",
- "Share expired" : "Kunhavo senvalidiĝis",
- "You shared {file} with {user}" : "Vi kunhavigis {file} kun {user}",
- "You removed {user} from {file}" : "Vi forigis {user} el {file}",
- "You removed yourself from {file}" : "Vi forigis vin mem el {file}",
- "{actor} removed themselves from {file}" : "{actor} forigis sin mem el {file}",
- "{actor} shared {file} with {user}" : "{actor} kunhavigis dosieron {file} kun {group}",
- "{actor} removed {user} from {file}" : "{actor} forigis {user} el {file}",
- "{actor} shared {file} with you" : "{actor} kunhavigis {file} kun vi",
- "{actor} removed you from the share named {file}" : "{actor} forigis vin el la kunhavo nomita {file}",
- "Share for file {file} with {user} expired" : "Kunhavo de dosiero {file} kun {user} senvalidiĝis",
- "Share for file {file} expired" : "Kunhavo de dosiero {file} senvalidiĝis",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Dosiero aŭ dosierujo kunhavigita per retpoŝte aŭ publika ligilo <strong>elŝutiĝis</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Dosiero aŭ dosierujo kunhaviĝis el <strong>alia servilo</strong>",
- "Sharing" : "Kunhavigo",
- "A file or folder has been <strong>shared</strong>" : "Dosiero aŭ dosierujo <strong>kunhaviĝis</strong>",
- "Could not delete share" : "Ne eblis forigi kunhavon",
- "Please specify a file or folder path" : "Bv. entajpi vojon al dosiero aŭ dosierujo",
- "Could not create share" : "Ne eblis krei kunhavon",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
- "Group sharing is disabled by the administrator" : "Grup-kunhavigon malebligis la administranto",
- "Please specify a valid group" : "Bv. doni validan grupon",
- "Public link sharing is disabled by the administrator" : "Kunhavigon per publika ligilo malebligis la administranto",
- "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.",
- "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",
- "Sharing %s failed because the back end does not support room shares" : "Kunhavigo de %s malsukcesis, ĉar la servilo ne subtenas kunhavon de ĉambro",
- "Unknown share type" : "Nekonata kunhava tipo",
- "Not a directory" : "Ne estas dosierujo",
- "Could not lock path" : "Ne eblis ŝlosi vojon",
- "Wrong or no update parameter given" : "Neniu aŭ neĝusta ĝisdatiga parametro donita",
- "Wrong password" : "Neĝusta pasvorto",
- "shared by %s" : "kunhavigita de %s",
- "Download" : "Elŝuti",
- "Direct link" : "Direkta ligilo",
- "Share API is disabled" : "Kunhavo-API estas malebligita",
- "File sharing" : "Kunhavigo de dosieroj",
- "Share will expire tomorrow" : "La kunhavo senvalidiĝos morgaŭ",
- "Your share of {node} will expire tomorrow" : "Via kunhavo „{node} “ senvalidiĝos morgaŭ",
- "You received {share} as a share by {user}" : "Vi ricevis „{share}“ kiel kunhavon el {user}",
- "You received {share} to group {group} as a share by {user}" : "Vi ricevis „{share}“ al grupo {group} kiel kunhavon el {user}",
- "Accept" : "Akcepti",
- "Decline" : "Malakcepti",
- "People" : "Homoj",
- "Expiration date" : "Limdato",
- "Share link" : "Kunhavigi ligilon",
- "Copy to clipboard" : "Kopii tondejen",
- "Link copied to clipboard" : "Ligilo kopiita al tondujo",
- "Select" : "Elekti",
- "Cancel" : "Nuligi",
- "Close" : "Malfermi",
- "Continue" : "Daŭrigi",
- "Error creating the share" : "Eraro dum kreo de la kunhavigo",
- "Reset" : "Restarigi",
- "Unknown error" : "Nekonata eraro",
- "group" : "grupo",
- "conversation" : "konversacio",
- "remote" : "fora",
- "remote group" : "fora grupo",
- "guest" : "gasto",
- "Shared with the group {user} by {owner}" : "Kunhavigita kun la grupo {group} fare de {owner}",
- "Shared with the conversation {user} by {owner}" : "Kunhavigita kun la konversacio {user} fare de {owner}",
- "Shared with {user} by {owner}" : "Kunhavigita kun {user} fare de {owner}",
- "Unshare" : "Malkunhavigi",
- "Internal link" : "Interna ligilo",
- "Cannot copy, please copy the link manually" : "Ne eblis kopii la ligilon; kopiu ĝin permane.",
- "Link copied" : "Ligilo kopiita",
- "Please enter the following required information before creating the share" : "Entajpu la jenajn neprajn informojn antaŭ ol krei la kunhavigon",
- "Password protection (enforced)" : "Pasvorta protekto (efektiva)",
- "Password protection" : "Protektita per pasvorto",
- "Enter a password" : "Entajpu pasvorton",
- "Expiration date (enforced)" : "Limdato (efektiva)",
- "Add another link" : "Aldoni plian ligilon",
- "Create a new share link" : "Krei novan kunhavan ligilon",
- "Shared via link by {initiator}" : "Kunhavata per ligilo de {initiator}",
- "Error, please enter proper password and/or expiration date" : "Eraro; entajpu ĝustan pasvorton aŭ limdaton",
- "Can edit" : "Povas redakti",
- "No recommendations. Start typing." : "Neniu propono. Ektajpu.",
- "Resharing is not allowed" : "Re-kunhavigi ne estas permesita",
- "Searching …" : "Serĉado ...",
- "No elements found." : "Nenio trovita.",
- "Search globally" : "Serĉi ĉie",
- "Guest" : "Gasto",
- "Group" : "Grupo",
- "Email" : "Retpoŝtadreso",
- "on {server}" : "ĉe {server}",
- "Terms of service" : "Kondiĉoj de uzado",
- "Allow upload and editing" : "Permesi alŝuton kaj redakton",
- "Allow editing" : "Permesi modifon",
- "Advanced settings" : "Altanivela agordo",
- "Set expiration date" : "Uzi limdaton",
- "Hide download" : "Kaŝi elŝuton",
- "Note to recipient" : "Noto por la ricevonto",
- "Enter a note for the share recipient" : "Entajpu noton por la ricevonto",
- "Read" : "Legi",
- "Edit" : "Modifi",
- "Share" : "Kunhavigi",
- "Delete" : "Forigi",
- "Delete share" : "Forigi kunhavigon",
- "Shares" : "Kunhavoj",
- "Unable to load the shares list" : "Ne eblas ricevi kunhavliston",
- "Expires {relativetime}" : "Senvalidiĝas {relativetime}",
- "this share just expired." : "Tiu kunhavo ĵus senvalidiĝis.",
- "Shared with you by {owner}" : "Kunhavigita kun vi de {owner}",
- "Link to a file" : "Ligilo al dosiero",
- "Shared" : "Kunhavigita",
- "Shared with others" : "Kunhavata kun aliaj",
- "No shares" : "Neniu kunhavo",
- "Shared with you" : "Kunhavata kun vi",
- "Nothing shared with you yet" : "Nenio kunhavatas kun vi ankoraŭ",
- "Nothing shared yet" : "Nenio kunhavatas ankoraŭ",
- "Shared by link" : "Kunhavata per ligilo",
- "No shared links" : "Neniu kunhavata ligilo",
- "Deleted shares" : "Forigitaj kunhavigoj",
- "No deleted shares" : "Neniu forigita kunhavigo",
- "Error updating the share" : "Eraro dum ĝisdatigo de la kunhavigo",
- "Shared by" : "Kunhavigita de",
- "Shared with" : "Kunhavigita kun",
- "Shared with you and the group {group} by {owner}" : "Kunhavigita kun vi kaj la grupo {group} de {owner}",
- "Shared with you and {circle} by {owner}" : "Kunhavigita kun vi kaj {circle} de {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Kunhavigita kun vi kaj la konversacio {conversation} fare de {owner}",
- "Shared with you in a conversation by {owner}" : "Kunhavigita kun vi en konversacio de {owner}",
- "Share note" : "Kunhavigo noton",
- "Show list view" : "Montri listan vidon",
- "Show grid view" : "Montri kradan vidon",
- "Upload files to %s" : "Alŝuti dosierojn al %s",
- "Note" : "Noto",
- "Select or drop files" : "Elekti aŭ demeti dosierojn",
- "Uploaded files:" : "Alŝutitaj dosieroj:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Se vi alŝutas dosierojn, vi konsentas pri %1$skondiĉoj de uzado%2$s.",
- "Share not found" : "Kunhavigo ne troviĝis",
- "Back to %s" : "Antaŭen al %s",
- "Add to your Nextcloud" : "Aldoni al via Nextcloud",
- "error" : "eraro",
- "This will stop your current uploads." : "Tio haltigos viajn nunajn alŝutojn.",
- "Move or copy" : "Movi aŭ kopii",
- "You can upload into this folder" : "Vi povas alŝuti en ĉi tiun dosierujon",
- "No compatible server found at {remote}" : "Neniu kongrua servilo trovita je {remote}",
- "Invalid server URL" : "Nevalida servila retadreso",
- "Failed to add the public link to your Nextcloud" : "Ne eblis aldoni la publikan ligilon al via Nextcloud",
- "Files" : "Dosieroj",
- "Please specify a valid user" : "Bv. doni validan uzanton",
- "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",
- "Download all files" : "Elŝuti ĉiujn dosierojn",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tiu aplikaĵo ebligas al uzantoj kunhavigi dosieroj ene de Nextcloud. Se ebligita, la administranto povas elekti, kiuj grupoj povas kunhavigi dosierojn. Tiam, uzantoj povas kunhavigi dosierojn kaj dosierujojn kun aliaj uzantoj kaj grupoj ene de Nextcloud. Cetere, se la administranto permesas kunhavigi ligilojn, ekstera ligilo uzeblas por kunhavigi dosieroj kun aliaj uzantoj ekster Nextcloud. Administrantoj povas ankaŭ devigi uzon de pasvortoj, limdatoj, kaj permesi servil-al-servila kunhavigon per kunhaviga ligilo, kaj kunhavigon el porteblaj aparatoj.\nMalebligi tiun funkcion forigas kunhavigitajn dosierojn kaj dosierujon el la servilo por ĉiuj kunhavaj ricevantoj, kaj ankaŭ por la sinkronigaj klientoj kaj la porteblaj aplikaĵoj. Pli da informoj en la dokumentaro de Nextcloud.",
- "Read only" : "Nurlega",
- "File drop (upload only)" : "Demeti dosieron (nur alŝuto)",
- "Upload" : "Alŝuti",
- "Only works for users with access to this folder" : "Nur validas por uzantoj, kiuj povas aliri al tiu dosierujo",
- "Only works for users with access to this file" : "Nur validas por uzantoj, kiuj povas aliri al tiu dosiero",
- "Enter a date" : "Entajpu daton",
- "Circle" : "Rondo",
- "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
- "Name" : "Nomo",
- "Share time" : "Kunhavotempo",
- "Reasons might be:" : "Kialoj povas esti:",
- "the item was removed" : "la ero foriĝis",
- "the link expired" : "la ligilo eksvalidiĝis",
- "sharing is disabled" : "kunhavigo malkapablas",
- "For more info, please ask the person who sent this link." : "Por plia informo, bonvolu peti al la persono, kiu sendis ĉi tiun ligilon."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/eo.json b/apps/files_sharing/l10n/eo.json
deleted file mode 100644
index f852a74222f..00000000000
--- a/apps/files_sharing/l10n/eo.json
+++ /dev/null
@@ -1,206 +0,0 @@
-{ "translations": {
- "File shares" : "Dosieraj kunhavoj",
- "Downloaded via public link" : "Elŝutita per publika ligilo",
- "Downloaded by {email}" : "Elŝutita de {email}",
- "{file} downloaded via public link" : "{file} elŝutita per publika ligilo",
- "{email} downloaded {file}" : "{email} elŝutis la dosieron {file}",
- "Shared with group {group}" : "Kunhavata kun grupo {group}",
- "Removed share for group {group}" : "Foriĝis kunhavo kun grupo {group}",
- "{actor} shared with group {group}" : "{actor} kunhavigis kun grupo {group}",
- "{actor} removed share for group {group}" : "{actor} forigis kunhavon kun grupo {group}",
- "Share for group {group} expired" : "Kunhavo kun grupo {group} senvalidiĝis",
- "You shared {file} with group {group}" : "Vi kunhavigis {file} kun grupo {group}",
- "You removed group {group} from {file}" : "Vi forigis grupon {group} el {file}",
- "{actor} shared {file} with group {group}" : "{actor} kunhavigis dosieron {file} kun grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} forigis grupon {group} el dosiero {file}",
- "Share for file {file} with group {group} expired" : "Kunhavo de dosiero {file} kun grupo {group} senvalidiĝis",
- "Shared as public link" : "Kunhavigita per publika ligilo",
- "Removed public link" : "Foriĝis publika ligilo",
- "Public link expired" : "Publika ligilo senvalidiĝis",
- "{actor} shared as public link" : "{actor} kunhavigis per publika ligilo",
- "{actor} removed public link" : "{actor} forigis publikan ligilon",
- "Public link of {actor} expired" : "Publika ligilo de {actor} senvalidiĝis",
- "You shared {file} as public link" : "Vi kunhavigis dosieron {file} kiel publika ligilo",
- "You removed public link for {file}" : "Vi forigis publikan ligilon por {file}",
- "Public link expired for {file}" : "Publika ligilo de dosiero {file} senvalidiĝis",
- "{actor} shared {file} as public link" : "{actor} kunhavigis dosieron {file} kiel publika ligilo",
- "{actor} removed public link for {file}" : "{actor} forigis publikan ligilon el {file}",
- "Public link of {actor} for {file} expired" : "Publika ligilo de {actor} pri {file} senvalidiĝis",
- "{user} accepted the remote share" : "{user} akceptis la foran kunhavon",
- "{user} declined the remote share" : "{user} malakceptis la foran kunhavon",
- "You received a new remote share {file} from {user}" : "Vi ricevis novan foran kunhavon {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} akceptis la foran kunhavon de {file}",
- "{user} declined the remote share of {file}" : "{user} malakceptis la foran kunhavon de {file}",
- "{user} unshared {file} from you" : "{user} malkunhavigis {file} al vi",
- "Shared with {user}" : "Kunhavigita kun {user}",
- "Removed share for {user}" : "Kunhavo forigita el {user}",
- "You removed yourself" : "Vi forigis vin mem",
- "{actor} removed themselves" : "{actor} forigis sin mem",
- "{actor} shared with {user}" : "{actor} kunhavigis kun {user}",
- "{actor} removed share for {user}" : "{actor} forigis kunhavon kun {user}",
- "Shared by {actor}" : "Kunhavigita de {actor}",
- "{actor} removed share" : "{actor} forigis kunhavon",
- "Share for {user} expired" : "Kunhavo por {user} senvalidiĝis",
- "Share expired" : "Kunhavo senvalidiĝis",
- "You shared {file} with {user}" : "Vi kunhavigis {file} kun {user}",
- "You removed {user} from {file}" : "Vi forigis {user} el {file}",
- "You removed yourself from {file}" : "Vi forigis vin mem el {file}",
- "{actor} removed themselves from {file}" : "{actor} forigis sin mem el {file}",
- "{actor} shared {file} with {user}" : "{actor} kunhavigis dosieron {file} kun {group}",
- "{actor} removed {user} from {file}" : "{actor} forigis {user} el {file}",
- "{actor} shared {file} with you" : "{actor} kunhavigis {file} kun vi",
- "{actor} removed you from the share named {file}" : "{actor} forigis vin el la kunhavo nomita {file}",
- "Share for file {file} with {user} expired" : "Kunhavo de dosiero {file} kun {user} senvalidiĝis",
- "Share for file {file} expired" : "Kunhavo de dosiero {file} senvalidiĝis",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Dosiero aŭ dosierujo kunhavigita per retpoŝte aŭ publika ligilo <strong>elŝutiĝis</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Dosiero aŭ dosierujo kunhaviĝis el <strong>alia servilo</strong>",
- "Sharing" : "Kunhavigo",
- "A file or folder has been <strong>shared</strong>" : "Dosiero aŭ dosierujo <strong>kunhaviĝis</strong>",
- "Could not delete share" : "Ne eblis forigi kunhavon",
- "Please specify a file or folder path" : "Bv. entajpi vojon al dosiero aŭ dosierujo",
- "Could not create share" : "Ne eblis krei kunhavon",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
- "Group sharing is disabled by the administrator" : "Grup-kunhavigon malebligis la administranto",
- "Please specify a valid group" : "Bv. doni validan grupon",
- "Public link sharing is disabled by the administrator" : "Kunhavigon per publika ligilo malebligis la administranto",
- "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.",
- "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",
- "Sharing %s failed because the back end does not support room shares" : "Kunhavigo de %s malsukcesis, ĉar la servilo ne subtenas kunhavon de ĉambro",
- "Unknown share type" : "Nekonata kunhava tipo",
- "Not a directory" : "Ne estas dosierujo",
- "Could not lock path" : "Ne eblis ŝlosi vojon",
- "Wrong or no update parameter given" : "Neniu aŭ neĝusta ĝisdatiga parametro donita",
- "Wrong password" : "Neĝusta pasvorto",
- "shared by %s" : "kunhavigita de %s",
- "Download" : "Elŝuti",
- "Direct link" : "Direkta ligilo",
- "Share API is disabled" : "Kunhavo-API estas malebligita",
- "File sharing" : "Kunhavigo de dosieroj",
- "Share will expire tomorrow" : "La kunhavo senvalidiĝos morgaŭ",
- "Your share of {node} will expire tomorrow" : "Via kunhavo „{node} “ senvalidiĝos morgaŭ",
- "You received {share} as a share by {user}" : "Vi ricevis „{share}“ kiel kunhavon el {user}",
- "You received {share} to group {group} as a share by {user}" : "Vi ricevis „{share}“ al grupo {group} kiel kunhavon el {user}",
- "Accept" : "Akcepti",
- "Decline" : "Malakcepti",
- "People" : "Homoj",
- "Expiration date" : "Limdato",
- "Share link" : "Kunhavigi ligilon",
- "Copy to clipboard" : "Kopii tondejen",
- "Link copied to clipboard" : "Ligilo kopiita al tondujo",
- "Select" : "Elekti",
- "Cancel" : "Nuligi",
- "Close" : "Malfermi",
- "Continue" : "Daŭrigi",
- "Error creating the share" : "Eraro dum kreo de la kunhavigo",
- "Reset" : "Restarigi",
- "Unknown error" : "Nekonata eraro",
- "group" : "grupo",
- "conversation" : "konversacio",
- "remote" : "fora",
- "remote group" : "fora grupo",
- "guest" : "gasto",
- "Shared with the group {user} by {owner}" : "Kunhavigita kun la grupo {group} fare de {owner}",
- "Shared with the conversation {user} by {owner}" : "Kunhavigita kun la konversacio {user} fare de {owner}",
- "Shared with {user} by {owner}" : "Kunhavigita kun {user} fare de {owner}",
- "Unshare" : "Malkunhavigi",
- "Internal link" : "Interna ligilo",
- "Cannot copy, please copy the link manually" : "Ne eblis kopii la ligilon; kopiu ĝin permane.",
- "Link copied" : "Ligilo kopiita",
- "Please enter the following required information before creating the share" : "Entajpu la jenajn neprajn informojn antaŭ ol krei la kunhavigon",
- "Password protection (enforced)" : "Pasvorta protekto (efektiva)",
- "Password protection" : "Protektita per pasvorto",
- "Enter a password" : "Entajpu pasvorton",
- "Expiration date (enforced)" : "Limdato (efektiva)",
- "Add another link" : "Aldoni plian ligilon",
- "Create a new share link" : "Krei novan kunhavan ligilon",
- "Shared via link by {initiator}" : "Kunhavata per ligilo de {initiator}",
- "Error, please enter proper password and/or expiration date" : "Eraro; entajpu ĝustan pasvorton aŭ limdaton",
- "Can edit" : "Povas redakti",
- "No recommendations. Start typing." : "Neniu propono. Ektajpu.",
- "Resharing is not allowed" : "Re-kunhavigi ne estas permesita",
- "Searching …" : "Serĉado ...",
- "No elements found." : "Nenio trovita.",
- "Search globally" : "Serĉi ĉie",
- "Guest" : "Gasto",
- "Group" : "Grupo",
- "Email" : "Retpoŝtadreso",
- "on {server}" : "ĉe {server}",
- "Terms of service" : "Kondiĉoj de uzado",
- "Allow upload and editing" : "Permesi alŝuton kaj redakton",
- "Allow editing" : "Permesi modifon",
- "Advanced settings" : "Altanivela agordo",
- "Set expiration date" : "Uzi limdaton",
- "Hide download" : "Kaŝi elŝuton",
- "Note to recipient" : "Noto por la ricevonto",
- "Enter a note for the share recipient" : "Entajpu noton por la ricevonto",
- "Read" : "Legi",
- "Edit" : "Modifi",
- "Share" : "Kunhavigi",
- "Delete" : "Forigi",
- "Delete share" : "Forigi kunhavigon",
- "Shares" : "Kunhavoj",
- "Unable to load the shares list" : "Ne eblas ricevi kunhavliston",
- "Expires {relativetime}" : "Senvalidiĝas {relativetime}",
- "this share just expired." : "Tiu kunhavo ĵus senvalidiĝis.",
- "Shared with you by {owner}" : "Kunhavigita kun vi de {owner}",
- "Link to a file" : "Ligilo al dosiero",
- "Shared" : "Kunhavigita",
- "Shared with others" : "Kunhavata kun aliaj",
- "No shares" : "Neniu kunhavo",
- "Shared with you" : "Kunhavata kun vi",
- "Nothing shared with you yet" : "Nenio kunhavatas kun vi ankoraŭ",
- "Nothing shared yet" : "Nenio kunhavatas ankoraŭ",
- "Shared by link" : "Kunhavata per ligilo",
- "No shared links" : "Neniu kunhavata ligilo",
- "Deleted shares" : "Forigitaj kunhavigoj",
- "No deleted shares" : "Neniu forigita kunhavigo",
- "Error updating the share" : "Eraro dum ĝisdatigo de la kunhavigo",
- "Shared by" : "Kunhavigita de",
- "Shared with" : "Kunhavigita kun",
- "Shared with you and the group {group} by {owner}" : "Kunhavigita kun vi kaj la grupo {group} de {owner}",
- "Shared with you and {circle} by {owner}" : "Kunhavigita kun vi kaj {circle} de {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Kunhavigita kun vi kaj la konversacio {conversation} fare de {owner}",
- "Shared with you in a conversation by {owner}" : "Kunhavigita kun vi en konversacio de {owner}",
- "Share note" : "Kunhavigo noton",
- "Show list view" : "Montri listan vidon",
- "Show grid view" : "Montri kradan vidon",
- "Upload files to %s" : "Alŝuti dosierojn al %s",
- "Note" : "Noto",
- "Select or drop files" : "Elekti aŭ demeti dosierojn",
- "Uploaded files:" : "Alŝutitaj dosieroj:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Se vi alŝutas dosierojn, vi konsentas pri %1$skondiĉoj de uzado%2$s.",
- "Share not found" : "Kunhavigo ne troviĝis",
- "Back to %s" : "Antaŭen al %s",
- "Add to your Nextcloud" : "Aldoni al via Nextcloud",
- "error" : "eraro",
- "This will stop your current uploads." : "Tio haltigos viajn nunajn alŝutojn.",
- "Move or copy" : "Movi aŭ kopii",
- "You can upload into this folder" : "Vi povas alŝuti en ĉi tiun dosierujon",
- "No compatible server found at {remote}" : "Neniu kongrua servilo trovita je {remote}",
- "Invalid server URL" : "Nevalida servila retadreso",
- "Failed to add the public link to your Nextcloud" : "Ne eblis aldoni la publikan ligilon al via Nextcloud",
- "Files" : "Dosieroj",
- "Please specify a valid user" : "Bv. doni validan uzanton",
- "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",
- "Download all files" : "Elŝuti ĉiujn dosierojn",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Tiu aplikaĵo ebligas al uzantoj kunhavigi dosieroj ene de Nextcloud. Se ebligita, la administranto povas elekti, kiuj grupoj povas kunhavigi dosierojn. Tiam, uzantoj povas kunhavigi dosierojn kaj dosierujojn kun aliaj uzantoj kaj grupoj ene de Nextcloud. Cetere, se la administranto permesas kunhavigi ligilojn, ekstera ligilo uzeblas por kunhavigi dosieroj kun aliaj uzantoj ekster Nextcloud. Administrantoj povas ankaŭ devigi uzon de pasvortoj, limdatoj, kaj permesi servil-al-servila kunhavigon per kunhaviga ligilo, kaj kunhavigon el porteblaj aparatoj.\nMalebligi tiun funkcion forigas kunhavigitajn dosierojn kaj dosierujon el la servilo por ĉiuj kunhavaj ricevantoj, kaj ankaŭ por la sinkronigaj klientoj kaj la porteblaj aplikaĵoj. Pli da informoj en la dokumentaro de Nextcloud.",
- "Read only" : "Nurlega",
- "File drop (upload only)" : "Demeti dosieron (nur alŝuto)",
- "Upload" : "Alŝuti",
- "Only works for users with access to this folder" : "Nur validas por uzantoj, kiuj povas aliri al tiu dosierujo",
- "Only works for users with access to this file" : "Nur validas por uzantoj, kiuj povas aliri al tiu dosiero",
- "Enter a date" : "Entajpu daton",
- "Circle" : "Rondo",
- "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
- "Name" : "Nomo",
- "Share time" : "Kunhavotempo",
- "Reasons might be:" : "Kialoj povas esti:",
- "the item was removed" : "la ero foriĝis",
- "the link expired" : "la ligilo eksvalidiĝis",
- "sharing is disabled" : "kunhavigo malkapablas",
- "For more info, please ask the person who sent this link." : "Por plia informo, bonvolu peti al la persono, kiu sendis ĉi tiun ligilon."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index be4cd272423..01250907325 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -185,7 +185,6 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Establecer la carpeta por defecto para los recursos compartidos aceptados",
"Reset" : "Restaurar",
"Reset folder to system default" : "Restaurar la carpeta por defecto del sistema",
- "Share expiration: " : "El recurso compartido caduca:",
"Share Expiration" : "Caducidad del recurso compartido",
"group" : "grupo",
"conversation" : "conversación",
@@ -259,12 +258,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "Al subir archivos, aceptas los términos del servicio",
"View terms of service" : "Ver los términos del servicio",
"Terms of service" : "Términos del servicio",
- "Upload files to {folder}" : "Cargar archivos a {folder}",
- "Submit name" : "Enviar nombre",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta contigo.",
- "To upload files, you need to provide your name first." : "Para cargar archivos, primero debes indicar tu nombre.",
- "Name" : "Nombre",
- "Enter your name" : "Escriba su nombre",
"Share with {userName}" : "Compartir con {userName}",
"Share with email {email}" : "Compartido con {email}",
"Share with group" : "Compartir con grupo",
@@ -313,16 +306,15 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utiliza este método para compartir archivos con individuos o equipos dentro de tu organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puedes enviarle este enlace interno para facilitarle el acceso.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Usa este método para compartir archivos con individuos u organizaciones externas a tu organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo. También puedes compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Pueden estar compartidos desde aplicaciones u otras fuentes.",
+ "Share with accounts and teams" : "Compartir con cuentas y equipos",
"Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos",
"Expires {relativetime}" : "Caduca en {relativetime}",
"this share just expired." : "este recurso compartido acaba de caducar.",
"Shared with you by {owner}" : "Compartido contigo por {owner}",
"Internal shares" : "Compartir internamente",
"Internal shares explanation" : "Compartir internamente explicado",
- "Share with accounts and teams" : "Compartir con cuentas y equipos",
"External shares" : "Compartir con el exterior",
"External shares explanation" : "Compartir con el exterior explicado",
- "Email, federated cloud id" : "Email, ID de nube federada",
"Additional shares" : "Otras formas de compartir",
"Additional shares explanation" : "Otras formas de compartir explicadas",
"Link to a file" : "Enlace al archivo",
@@ -371,6 +363,7 @@ OC.L10N.register(
"List of unapproved shares." : "Lista de recursos compartidos no aprobados",
"No pending shares" : "No hay recursos compartidos pendientes",
"Shares you have received but not approved will show up here" : "Aquí aparecerán los compartidos que ha recibido pero que no ha aprobado",
+ "Error deleting the share" : "Error borrando el recurso compartido",
"Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
"Error updating the share" : "Error actualizando el recurso compartido",
"File \"{path}\" has been unshared" : "El archivo \"{path}\" se dejó de compartir",
@@ -383,6 +376,8 @@ OC.L10N.register(
"Share note for recipient saved" : "Nota para el destinatario del recurso compartido guardada",
"Share password saved" : "Se ha guardado la contraseña del recurso compartido",
"Share permissions saved" : "Permisos del recurso compartido guardados",
+ "Upload files to {folder}" : "Cargar archivos a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta contigo.",
"Shared by" : "Compartido por",
"Shared with" : "Compartido con",
"Password created successfully" : "Contraseña creada exitosamente",
@@ -413,15 +408,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "No se ha encontrado un servidor compatible en {remote}",
"Invalid server URL" : "URL del servidor inválida",
"Failed to add the public link to your Nextcloud" : "No se ha podido añadir el enlace público a tu Nextcloud",
- "Files" : "Archivos",
+ "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
"Download all files" : "Descargar todos los archivos",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"],
"Search for share recipients" : "Buscar destinatarios del compartido",
"No recommendations. Start typing." : "No hay recomendaciones. Comience a escribir.",
- "Password field can't be empty" : "El campo de contraseña no puede estar vacío",
- "Allow download" : "Permitir descarga",
- "Share expire date saved" : "Fecha de caducidad del recurso compartido guardada",
- "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
- "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
- "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"]
+ "To upload files, you need to provide your name first." : "Para cargar archivos, primero debes indicar tu nombre.",
+ "Enter your name" : "Escriba su nombre",
+ "Submit name" : "Enviar nombre",
+ "Name" : "Nombre",
+ "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada",
+ "Email, federated cloud id" : "Email, ID de nube federada",
+ "Filename must not be empty." : "El nombre de archivo no debe estar vacío."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index 6b4ded82049..27831e37d5a 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -183,7 +183,6 @@
"Set default folder for accepted shares" : "Establecer la carpeta por defecto para los recursos compartidos aceptados",
"Reset" : "Restaurar",
"Reset folder to system default" : "Restaurar la carpeta por defecto del sistema",
- "Share expiration: " : "El recurso compartido caduca:",
"Share Expiration" : "Caducidad del recurso compartido",
"group" : "grupo",
"conversation" : "conversación",
@@ -257,12 +256,6 @@
"By uploading files, you agree to the terms of service." : "Al subir archivos, aceptas los términos del servicio",
"View terms of service" : "Ver los términos del servicio",
"Terms of service" : "Términos del servicio",
- "Upload files to {folder}" : "Cargar archivos a {folder}",
- "Submit name" : "Enviar nombre",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta contigo.",
- "To upload files, you need to provide your name first." : "Para cargar archivos, primero debes indicar tu nombre.",
- "Name" : "Nombre",
- "Enter your name" : "Escriba su nombre",
"Share with {userName}" : "Compartir con {userName}",
"Share with email {email}" : "Compartido con {email}",
"Share with group" : "Compartir con grupo",
@@ -311,16 +304,15 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utiliza este método para compartir archivos con individuos o equipos dentro de tu organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puedes enviarle este enlace interno para facilitarle el acceso.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Usa este método para compartir archivos con individuos u organizaciones externas a tu organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo. También puedes compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Pueden estar compartidos desde aplicaciones u otras fuentes.",
+ "Share with accounts and teams" : "Compartir con cuentas y equipos",
"Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos",
"Expires {relativetime}" : "Caduca en {relativetime}",
"this share just expired." : "este recurso compartido acaba de caducar.",
"Shared with you by {owner}" : "Compartido contigo por {owner}",
"Internal shares" : "Compartir internamente",
"Internal shares explanation" : "Compartir internamente explicado",
- "Share with accounts and teams" : "Compartir con cuentas y equipos",
"External shares" : "Compartir con el exterior",
"External shares explanation" : "Compartir con el exterior explicado",
- "Email, federated cloud id" : "Email, ID de nube federada",
"Additional shares" : "Otras formas de compartir",
"Additional shares explanation" : "Otras formas de compartir explicadas",
"Link to a file" : "Enlace al archivo",
@@ -369,6 +361,7 @@
"List of unapproved shares." : "Lista de recursos compartidos no aprobados",
"No pending shares" : "No hay recursos compartidos pendientes",
"Shares you have received but not approved will show up here" : "Aquí aparecerán los compartidos que ha recibido pero que no ha aprobado",
+ "Error deleting the share" : "Error borrando el recurso compartido",
"Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}",
"Error updating the share" : "Error actualizando el recurso compartido",
"File \"{path}\" has been unshared" : "El archivo \"{path}\" se dejó de compartir",
@@ -381,6 +374,8 @@
"Share note for recipient saved" : "Nota para el destinatario del recurso compartido guardada",
"Share password saved" : "Se ha guardado la contraseña del recurso compartido",
"Share permissions saved" : "Permisos del recurso compartido guardados",
+ "Upload files to {folder}" : "Cargar archivos a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta contigo.",
"Shared by" : "Compartido por",
"Shared with" : "Compartido con",
"Password created successfully" : "Contraseña creada exitosamente",
@@ -411,15 +406,18 @@
"No compatible server found at {remote}" : "No se ha encontrado un servidor compatible en {remote}",
"Invalid server URL" : "URL del servidor inválida",
"Failed to add the public link to your Nextcloud" : "No se ha podido añadir el enlace público a tu Nextcloud",
- "Files" : "Archivos",
+ "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
"Download all files" : "Descargar todos los archivos",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"],
"Search for share recipients" : "Buscar destinatarios del compartido",
"No recommendations. Start typing." : "No hay recomendaciones. Comience a escribir.",
- "Password field can't be empty" : "El campo de contraseña no puede estar vacío",
- "Allow download" : "Permitir descarga",
- "Share expire date saved" : "Fecha de caducidad del recurso compartido guardada",
- "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
- "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
- "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"]
+ "To upload files, you need to provide your name first." : "Para cargar archivos, primero debes indicar tu nombre.",
+ "Enter your name" : "Escriba su nombre",
+ "Submit name" : "Enviar nombre",
+ "Name" : "Nombre",
+ "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada",
+ "Email, federated cloud id" : "Email, ID de nube federada",
+ "Filename must not be empty." : "El nombre de archivo no debe estar vacío."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_419.js b/apps/files_sharing/l10n/es_419.js
deleted file mode 100644
index f75de45ce7c..00000000000
--- a/apps/files_sharing/l10n/es_419.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restaurar",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Agregar otra liga",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_419.json b/apps/files_sharing/l10n/es_419.json
deleted file mode 100644
index 352da573a70..00000000000
--- a/apps/files_sharing/l10n/es_419.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restaurar",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Agregar otra liga",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_AR.js b/apps/files_sharing/l10n/es_AR.js
deleted file mode 100644
index 11affe07778..00000000000
--- a/apps/files_sharing/l10n/es_AR.js
+++ /dev/null
@@ -1,218 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante un link público",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una link público",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "Share for group {group} expired" : "El recurso compartido del grupo {group} ha expirado",
- "You shared {file} with group {group}" : "Usted ha compartido {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Usted eliminó al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} lo eliminó del grupo {group} de {file}",
- "Share for file {file} with group {group} expired" : "El recurso compartido del archivo {file} con el grupo {group} ha expirado",
- "Shared as public link" : "Compartido como un link público",
- "Removed public link" : "Link público eliminado",
- "Public link expired" : "El link público ha expirado",
- "{actor} shared as public link" : "{actor} compartió como un link público",
- "{actor} removed public link" : "{actor} eliminó el link público",
- "Public link of {actor} expired" : "El link público de {actor} ha expirado",
- "You shared {file} as public link" : "Usted ha compartido {file} como un link público",
- "You removed public link for {file}" : "Usted ha eliminado el link público de {file}",
- "Public link expired for {file}" : "El link público para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compatido {file} como un link público",
- "{actor} removed public link for {file}" : "{actor} eliminó el link público de {file}",
- "Public link of {actor} for {file} expired" : "El link público de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Usted ha recibido un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} con usted",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Eliminó el elemento compartido para {user}",
- "You removed yourself" : "Te eliminaste a vos mismo",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "Share for {user} expired" : "El recurso compartido para {user} ha expirado",
- "Share expired" : "El recurso compartido ha expirado",
- "You shared {file} with {user}" : "Usted ha compartido {file} con {user}",
- "You removed {user} from {file}" : "Usted eliminó a {user} de {file}",
- "You removed yourself from {file}" : "Se eliminó a usted mismo de {file}",
- "{actor} removed themselves from {file}" : "{actor} se eliminó a sí mismo de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} con usted",
- "{actor} removed you from the share named {file}" : "{actor} te eliminó del recurso compartido {file}",
- "Share for file {file} with {user} expired" : "El recurso compartido del archivo {file} con {user} ha expirado",
- "Share for file {file} expired" : "El recurso compartido del archivo {file} ha expirado",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta compartido por correo o por link público ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Sharing" : "Compartiendo",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Shared link" : "Enlace compartido",
- "Wrong share ID, share does not exist" : "Identificador de recurso compartido incorrecto, el recurso no existe",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Favor de especificar un archivo o ruta de carpeta",
- "Wrong path, file/folder does not exist" : "Ubicación incorrecta, el archivo/carpeta no existe",
- "Could not create share" : "no fue posible crear el elemento compartido",
- "Invalid permissions" : "Permisos inválidos",
- "Please specify a valid account to share with" : "Por favor especifique una cuenta válida para compartir",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Favor de especificar un grupo valido",
- "Public link sharing is disabled by the administrator" : "Compartir links públicos está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Please specify a valid email address" : "Por favor especifique una dirección de mail válida",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando la contraseña por Nextcloud Talk falló porque Nextcloud Talk no está habilitado",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Compartir %1$s falló porque el servidor no permite compartir recursos del tipo %2$s",
- "Please specify a valid federated account ID" : "Por favor especifique un identificador de cuenta federada válido",
- "Please specify a valid federated group ID" : "Por favor especifique un identificador de grupo federado válido",
- "Sharing %s failed because the back end does not support room shares" : "Compartir %s falló porque el servidor no soporta recorsos compartidos de salas",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Compartir %s falló porque el servidor no soporta recursos compartidos de ScienceMesh",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock node" : "No se pudo bloquear el nodo",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "no sharing rights on this item" : "sin permisos de compartir en este elemento",
- "You are not allowed to edit incoming shares" : "Usted no está autorizado para editar recursos compartidos entrantes",
- "Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante",
- "Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está configurado",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Enviar la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.",
- "Invalid date. Format must be YYYY-MM-DD" : "La fecha es inválida, por favor use el formato AAAA-MM-DD",
- "No sharing rights on this item" : "Sin permisos de compartir en este elemento",
- "Invalid share attributes provided: \"%s\"" : "Se ingresaron atributos de recurso compartido inválidos: \"%s\"",
- "You are not allowed to send mail notifications" : "No está autorizado para enviar notificaciones por mail",
- "No mail notification configured for this share type" : "Este tipo de recurso compartido no tiene notificaciones por mail configuradas",
- "Wrong password" : "Contraseña incorrecta",
- "Error while sending mail notification" : "Error al enviar el mail de notificación",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Add to your %s" : "Agregar a su %s",
- "Direct link" : "Link directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Share will expire tomorrow" : "El recurso compartido expirará mañana",
- "Your share of {node} will expire tomorrow" : "Su recurso compartido {node} expirará mañana",
- "You received {share} as a share by {user}" : "Ha recibido {share} como un recurso compartido por {user}",
- "You received {share} to group {group} as a share by {user}" : "Ha recibido {share} para el grupo {group} como un recurso compartido por {user}",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlace compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces compartidos, así como compartir desde dispositivos móviles.\nQuitar esta característica elimina los archivos compartidos y las carpetas en el servidor, para todos los receptores, y también los clientes de sincronización y móviles. Más información disponible en la Documentación de Nextcloud.",
- "When should the request expire?" : "¿Cuándo debería expirar la solicitud?",
- "Set a submission expiration date" : "Establezca la fecha de expiración del envío",
- "Expiration date" : "Fecha de expiración",
- "Select a date" : "Elija una fecha",
- "Your administrator has enforced a {count} days expiration policy." : "Su administrador ha definido una política de expiración de {count} días.",
- "What password should be used for the request?" : "¿Qué contraseña debería usarse para la solicitud?",
- "Set a password" : "Establecer una contraseña",
- "Password" : "Contraseña",
- "Enter a valid password" : "Ingrese una contraseña válida",
- "Generate a new password" : "Generar una nueva contraseña",
- "Your administrator has enforced a password protection." : "Su administrador ha configurado una política de protección de contraseña.",
- "The request will expire on {date} at midnight and will be password protected." : "La solicitud expirará el {date} a la medianoche y estará protegida por contraseña.",
- "The request will expire on {date} at midnight." : "La solicitud expirará el {date} a la medianoche.",
- "The request will be password protected." : "La solicitud estará protegida por contraseña.",
- "You can now share the link below to allow people to upload files to your directory." : "Ahora puede compartir el enlace para permitir que se suban archivos a su directorio.",
- "Share link" : "Compartir enlace",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Send link via email" : "Enviar enlace por mail",
- "Enter an email address or paste a list" : "Ingrese una dirección de mail o pegue una lista",
- "Remove email" : "Eliminar mail",
- "Automatically copying failed, please copy the share link manually" : "No se puede copiar automáticamente, por favor copie el enlace manualmente",
- "Link copied to clipboard" : "Enlace copiado al portapapeles",
- "Select" : "Seleccionar",
- "Cancel" : "Cancelar",
- "Close" : "Cerrar",
- "Continue" : "Continuar",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "group" : "grupo",
- "remote" : "remoto",
- "Unshare" : "No compartir",
- "Cannot copy, please copy the link manually" : "No es posible copiar, por favor copia el enlace manualmente",
- "Link copied" : "Link copiado",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingrese una contraseña",
- "Add another link" : "Agregar otro enlace",
- "View only" : "Solo ver",
- "Can edit" : "Puede editar",
- "No recommendations. Start typing." : "No hay sugerencias. Comenzar a escribir",
- "Resharing is not allowed" : "No está permitido volver a compartir",
- "Searching …" : "Buscando ...",
- "No elements found." : "No se encontraron elementos",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Note:" : "Nota:",
- "File drop" : "Entrega de archivos",
- "Terms of service" : "Términos de servicio",
- "Allow upload and editing" : "Permitir cargar y editar",
- "Allow editing" : "Permitir edición",
- "Advanced settings" : "Configuraciones avanzadas",
- "Set expiration date" : "Establecer fecha de caducidad",
- "Hide download" : "Ocultar descarga",
- "Note to recipient" : "Nota al destinatario",
- "Read" : "Leer",
- "Edit" : "Editar",
- "Share" : "Compartir",
- "Delete" : "Eliminar",
- "Shares" : "Shares",
- "Shared with you by {owner}" : "Compartido con usted por {owner}",
- "Shared" : "Compartido",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Nothing shared with you yet" : "Nada ha sido compartido aún con usted",
- "Nothing shared yet" : "Nada compartido aún",
- "Shared by link" : "Compartido por link",
- "No shared links" : "No hay links compartidos",
- "Shared by" : "Compartido por",
- "Shared with you and the group {group} by {owner}" : "Compartido con usted y el grupo {group} por {owner}",
- "Share note" : "Compartir nota",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar vista de cuadrícula",
- "Upload files to %s" : "Cargar archivos a %s",
- "Note" : "Nota",
- "Select or drop files" : "Seleccione o suelte los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Back to %s" : "Volver a %s",
- "Add to your Nextcloud" : "Agregar a su Nextcloud",
- "Waiting…" : "Esperando...",
- "error" : "error",
- "finished" : "finalizado",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Move or copy" : "Mover o Copiar",
- "You can upload into this folder" : "Usted puede cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el link público a su Nextcloud",
- "Files" : "Archivos",
- "Please specify a valid user" : "Favor de especificar un usuario válido",
- "You cannot share to a Circle if the app is not enabled" : "Usted no puede compartir al Círculo si la aplicación no esta habilitada",
- "Please specify a valid circle" : "Favor de especificar un círculo válido",
- "Download all files" : "Descargar todos los archivos",
- "Read only" : "Solo lectura",
- "File drop (upload only)" : "Soltar archivo (solo para carga)",
- "Upload" : "Cargar",
- "Only works for users with access to this folder" : "Solo funciona para usuarios con acceso a esta carpeta",
- "Circle" : "Círculo",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Tiempo de compartir",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "el link expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacte a la persona que le envió este link.",
- "You are not allowed to edit link shares that you don't own" : "Usted no está autorizado para editar links de recursos compartidos que no le pertenecen"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_AR.json b/apps/files_sharing/l10n/es_AR.json
deleted file mode 100644
index 05c8a16ec87..00000000000
--- a/apps/files_sharing/l10n/es_AR.json
+++ /dev/null
@@ -1,216 +0,0 @@
-{ "translations": {
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante un link público",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una link público",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "Share for group {group} expired" : "El recurso compartido del grupo {group} ha expirado",
- "You shared {file} with group {group}" : "Usted ha compartido {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Usted eliminó al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} lo eliminó del grupo {group} de {file}",
- "Share for file {file} with group {group} expired" : "El recurso compartido del archivo {file} con el grupo {group} ha expirado",
- "Shared as public link" : "Compartido como un link público",
- "Removed public link" : "Link público eliminado",
- "Public link expired" : "El link público ha expirado",
- "{actor} shared as public link" : "{actor} compartió como un link público",
- "{actor} removed public link" : "{actor} eliminó el link público",
- "Public link of {actor} expired" : "El link público de {actor} ha expirado",
- "You shared {file} as public link" : "Usted ha compartido {file} como un link público",
- "You removed public link for {file}" : "Usted ha eliminado el link público de {file}",
- "Public link expired for {file}" : "El link público para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compatido {file} como un link público",
- "{actor} removed public link for {file}" : "{actor} eliminó el link público de {file}",
- "Public link of {actor} for {file} expired" : "El link público de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Usted ha recibido un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} con usted",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Eliminó el elemento compartido para {user}",
- "You removed yourself" : "Te eliminaste a vos mismo",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "Share for {user} expired" : "El recurso compartido para {user} ha expirado",
- "Share expired" : "El recurso compartido ha expirado",
- "You shared {file} with {user}" : "Usted ha compartido {file} con {user}",
- "You removed {user} from {file}" : "Usted eliminó a {user} de {file}",
- "You removed yourself from {file}" : "Se eliminó a usted mismo de {file}",
- "{actor} removed themselves from {file}" : "{actor} se eliminó a sí mismo de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} con usted",
- "{actor} removed you from the share named {file}" : "{actor} te eliminó del recurso compartido {file}",
- "Share for file {file} with {user} expired" : "El recurso compartido del archivo {file} con {user} ha expirado",
- "Share for file {file} expired" : "El recurso compartido del archivo {file} ha expirado",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta compartido por correo o por link público ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Sharing" : "Compartiendo",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Shared link" : "Enlace compartido",
- "Wrong share ID, share does not exist" : "Identificador de recurso compartido incorrecto, el recurso no existe",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Favor de especificar un archivo o ruta de carpeta",
- "Wrong path, file/folder does not exist" : "Ubicación incorrecta, el archivo/carpeta no existe",
- "Could not create share" : "no fue posible crear el elemento compartido",
- "Invalid permissions" : "Permisos inválidos",
- "Please specify a valid account to share with" : "Por favor especifique una cuenta válida para compartir",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Favor de especificar un grupo valido",
- "Public link sharing is disabled by the administrator" : "Compartir links públicos está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Please specify a valid email address" : "Por favor especifique una dirección de mail válida",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando la contraseña por Nextcloud Talk falló porque Nextcloud Talk no está habilitado",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Compartir %1$s falló porque el servidor no permite compartir recursos del tipo %2$s",
- "Please specify a valid federated account ID" : "Por favor especifique un identificador de cuenta federada válido",
- "Please specify a valid federated group ID" : "Por favor especifique un identificador de grupo federado válido",
- "Sharing %s failed because the back end does not support room shares" : "Compartir %s falló porque el servidor no soporta recorsos compartidos de salas",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Compartir %s falló porque el servidor no soporta recursos compartidos de ScienceMesh",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock node" : "No se pudo bloquear el nodo",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "no sharing rights on this item" : "sin permisos de compartir en este elemento",
- "You are not allowed to edit incoming shares" : "Usted no está autorizado para editar recursos compartidos entrantes",
- "Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante",
- "Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está configurado",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Enviar la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.",
- "Invalid date. Format must be YYYY-MM-DD" : "La fecha es inválida, por favor use el formato AAAA-MM-DD",
- "No sharing rights on this item" : "Sin permisos de compartir en este elemento",
- "Invalid share attributes provided: \"%s\"" : "Se ingresaron atributos de recurso compartido inválidos: \"%s\"",
- "You are not allowed to send mail notifications" : "No está autorizado para enviar notificaciones por mail",
- "No mail notification configured for this share type" : "Este tipo de recurso compartido no tiene notificaciones por mail configuradas",
- "Wrong password" : "Contraseña incorrecta",
- "Error while sending mail notification" : "Error al enviar el mail de notificación",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Add to your %s" : "Agregar a su %s",
- "Direct link" : "Link directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Share will expire tomorrow" : "El recurso compartido expirará mañana",
- "Your share of {node} will expire tomorrow" : "Su recurso compartido {node} expirará mañana",
- "You received {share} as a share by {user}" : "Ha recibido {share} como un recurso compartido por {user}",
- "You received {share} to group {group} as a share by {user}" : "Ha recibido {share} para el grupo {group} como un recurso compartido por {user}",
- "Accept" : "Aceptar",
- "Decline" : "Declinar",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlace compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces compartidos, así como compartir desde dispositivos móviles.\nQuitar esta característica elimina los archivos compartidos y las carpetas en el servidor, para todos los receptores, y también los clientes de sincronización y móviles. Más información disponible en la Documentación de Nextcloud.",
- "When should the request expire?" : "¿Cuándo debería expirar la solicitud?",
- "Set a submission expiration date" : "Establezca la fecha de expiración del envío",
- "Expiration date" : "Fecha de expiración",
- "Select a date" : "Elija una fecha",
- "Your administrator has enforced a {count} days expiration policy." : "Su administrador ha definido una política de expiración de {count} días.",
- "What password should be used for the request?" : "¿Qué contraseña debería usarse para la solicitud?",
- "Set a password" : "Establecer una contraseña",
- "Password" : "Contraseña",
- "Enter a valid password" : "Ingrese una contraseña válida",
- "Generate a new password" : "Generar una nueva contraseña",
- "Your administrator has enforced a password protection." : "Su administrador ha configurado una política de protección de contraseña.",
- "The request will expire on {date} at midnight and will be password protected." : "La solicitud expirará el {date} a la medianoche y estará protegida por contraseña.",
- "The request will expire on {date} at midnight." : "La solicitud expirará el {date} a la medianoche.",
- "The request will be password protected." : "La solicitud estará protegida por contraseña.",
- "You can now share the link below to allow people to upload files to your directory." : "Ahora puede compartir el enlace para permitir que se suban archivos a su directorio.",
- "Share link" : "Compartir enlace",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Send link via email" : "Enviar enlace por mail",
- "Enter an email address or paste a list" : "Ingrese una dirección de mail o pegue una lista",
- "Remove email" : "Eliminar mail",
- "Automatically copying failed, please copy the share link manually" : "No se puede copiar automáticamente, por favor copie el enlace manualmente",
- "Link copied to clipboard" : "Enlace copiado al portapapeles",
- "Select" : "Seleccionar",
- "Cancel" : "Cancelar",
- "Close" : "Cerrar",
- "Continue" : "Continuar",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "group" : "grupo",
- "remote" : "remoto",
- "Unshare" : "No compartir",
- "Cannot copy, please copy the link manually" : "No es posible copiar, por favor copia el enlace manualmente",
- "Link copied" : "Link copiado",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingrese una contraseña",
- "Add another link" : "Agregar otro enlace",
- "View only" : "Solo ver",
- "Can edit" : "Puede editar",
- "No recommendations. Start typing." : "No hay sugerencias. Comenzar a escribir",
- "Resharing is not allowed" : "No está permitido volver a compartir",
- "Searching …" : "Buscando ...",
- "No elements found." : "No se encontraron elementos",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Note:" : "Nota:",
- "File drop" : "Entrega de archivos",
- "Terms of service" : "Términos de servicio",
- "Allow upload and editing" : "Permitir cargar y editar",
- "Allow editing" : "Permitir edición",
- "Advanced settings" : "Configuraciones avanzadas",
- "Set expiration date" : "Establecer fecha de caducidad",
- "Hide download" : "Ocultar descarga",
- "Note to recipient" : "Nota al destinatario",
- "Read" : "Leer",
- "Edit" : "Editar",
- "Share" : "Compartir",
- "Delete" : "Eliminar",
- "Shares" : "Shares",
- "Shared with you by {owner}" : "Compartido con usted por {owner}",
- "Shared" : "Compartido",
- "Shared with others" : "Compartido con otros",
- "Shared with you" : "Compartido con usted",
- "Nothing shared with you yet" : "Nada ha sido compartido aún con usted",
- "Nothing shared yet" : "Nada compartido aún",
- "Shared by link" : "Compartido por link",
- "No shared links" : "No hay links compartidos",
- "Shared by" : "Compartido por",
- "Shared with you and the group {group} by {owner}" : "Compartido con usted y el grupo {group} por {owner}",
- "Share note" : "Compartir nota",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar vista de cuadrícula",
- "Upload files to %s" : "Cargar archivos a %s",
- "Note" : "Nota",
- "Select or drop files" : "Seleccione o suelte los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Back to %s" : "Volver a %s",
- "Add to your Nextcloud" : "Agregar a su Nextcloud",
- "Waiting…" : "Esperando...",
- "error" : "error",
- "finished" : "finalizado",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Move or copy" : "Mover o Copiar",
- "You can upload into this folder" : "Usted puede cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el link público a su Nextcloud",
- "Files" : "Archivos",
- "Please specify a valid user" : "Favor de especificar un usuario válido",
- "You cannot share to a Circle if the app is not enabled" : "Usted no puede compartir al Círculo si la aplicación no esta habilitada",
- "Please specify a valid circle" : "Favor de especificar un círculo válido",
- "Download all files" : "Descargar todos los archivos",
- "Read only" : "Solo lectura",
- "File drop (upload only)" : "Soltar archivo (solo para carga)",
- "Upload" : "Cargar",
- "Only works for users with access to this folder" : "Solo funciona para usuarios con acceso a esta carpeta",
- "Circle" : "Círculo",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Tiempo de compartir",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "el link expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacte a la persona que le envió este link.",
- "You are not allowed to edit link shares that you don't own" : "Usted no está autorizado para editar links de recursos compartidos que no le pertenecen"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_CL.js b/apps/files_sharing/l10n/es_CL.js
deleted file mode 100644
index b2beba46938..00000000000
--- a/apps/files_sharing/l10n/es_CL.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Se presentó un error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_CL.json b/apps/files_sharing/l10n/es_CL.json
deleted file mode 100644
index f7ccb907f58..00000000000
--- a/apps/files_sharing/l10n/es_CL.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Se presentó un error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_CO.js b/apps/files_sharing/l10n/es_CO.js
deleted file mode 100644
index 14d2bae7edd..00000000000
--- a/apps/files_sharing/l10n/es_CO.js
+++ /dev/null
@@ -1,143 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Reiniciar",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Link copied" : "Enlace copiado",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_CO.json b/apps/files_sharing/l10n/es_CO.json
deleted file mode 100644
index 4a69b23abb2..00000000000
--- a/apps/files_sharing/l10n/es_CO.json
+++ /dev/null
@@ -1,141 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Reiniciar",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Link copied" : "Enlace copiado",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_CR.js b/apps/files_sharing/l10n/es_CR.js
deleted file mode 100644
index 01b8c23159d..00000000000
--- a/apps/files_sharing/l10n/es_CR.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_CR.json b/apps/files_sharing/l10n/es_CR.json
deleted file mode 100644
index 00480fcc844..00000000000
--- a/apps/files_sharing/l10n/es_CR.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_DO.js b/apps/files_sharing/l10n/es_DO.js
deleted file mode 100644
index dd4a04dce7a..00000000000
--- a/apps/files_sharing/l10n/es_DO.js
+++ /dev/null
@@ -1,144 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_DO.json b/apps/files_sharing/l10n/es_DO.json
deleted file mode 100644
index 026306267c3..00000000000
--- a/apps/files_sharing/l10n/es_DO.json
+++ /dev/null
@@ -1,142 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir crear",
- "Allow deleting" : "Permitir borrar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Guest" : "Invitado",
- "Group" : "Grupo",
- "Email" : "Correo electrónico",
- "Circle" : "Círculo",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_EC.js b/apps/files_sharing/l10n/es_EC.js
index 33fda46df2b..21fcf2a9681 100644
--- a/apps/files_sharing/l10n/es_EC.js
+++ b/apps/files_sharing/l10n/es_EC.js
@@ -163,7 +163,6 @@ OC.L10N.register(
"on {server}" : "en {server}",
"File drop" : "Soltar archivo",
"Terms of service" : "Terms of service",
- "Name" : "Nombre",
"Read" : "Leer",
"Create" : "Crear",
"Edit" : "Editar",
@@ -252,10 +251,9 @@ OC.L10N.register(
"No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
"Invalid server URL" : "URL del servidor inválido",
"Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el enlace público a tu Nextcloud",
- "Files" : "Archivos",
"Download all files" : "Descargar todos los archivos",
"Search for share recipients" : "Buscar destinatarios de la compartición",
"No recommendations. Start typing." : "No hay recomendaciones. Comienza a escribir.",
- "Allow download" : "Permitir descarga"
+ "Name" : "Nombre"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_EC.json b/apps/files_sharing/l10n/es_EC.json
index f2ab7a7162f..354e564989c 100644
--- a/apps/files_sharing/l10n/es_EC.json
+++ b/apps/files_sharing/l10n/es_EC.json
@@ -161,7 +161,6 @@
"on {server}" : "en {server}",
"File drop" : "Soltar archivo",
"Terms of service" : "Terms of service",
- "Name" : "Nombre",
"Read" : "Leer",
"Create" : "Crear",
"Edit" : "Editar",
@@ -250,10 +249,9 @@
"No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
"Invalid server URL" : "URL del servidor inválido",
"Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar el enlace público a tu Nextcloud",
- "Files" : "Archivos",
"Download all files" : "Descargar todos los archivos",
"Search for share recipients" : "Buscar destinatarios de la compartición",
"No recommendations. Start typing." : "No hay recomendaciones. Comienza a escribir.",
- "Allow download" : "Permitir descarga"
+ "Name" : "Nombre"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_GT.js b/apps/files_sharing/l10n/es_GT.js
deleted file mode 100644
index 01b8c23159d..00000000000
--- a/apps/files_sharing/l10n/es_GT.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_GT.json b/apps/files_sharing/l10n/es_GT.json
deleted file mode 100644
index 00480fcc844..00000000000
--- a/apps/files_sharing/l10n/es_GT.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_HN.js b/apps/files_sharing/l10n/es_HN.js
deleted file mode 100644
index cac9c37587e..00000000000
--- a/apps/files_sharing/l10n/es_HN.js
+++ /dev/null
@@ -1,136 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_HN.json b/apps/files_sharing/l10n/es_HN.json
deleted file mode 100644
index 679b4735769..00000000000
--- a/apps/files_sharing/l10n/es_HN.json
+++ /dev/null
@@ -1,134 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_MX.js b/apps/files_sharing/l10n/es_MX.js
index 7e6dddd2947..d2165687eda 100644
--- a/apps/files_sharing/l10n/es_MX.js
+++ b/apps/files_sharing/l10n/es_MX.js
@@ -238,12 +238,6 @@ OC.L10N.register(
"Note:" : "Nota:",
"File drop" : "Soltar archivo",
"Terms of service" : "Términos del servicio",
- "Upload files to {folder}" : "Cargar archivos a {folder}",
- "Submit name" : "Enviar nombre",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} le compartió una carpeta.",
- "To upload files, you need to provide your name first." : "Para cargar archivos, primero debe proveer su nombre.",
- "Name" : "Nombre",
- "Enter your name" : "Ingrese su nombre",
"Share with {userName}" : "Compartir con {userName}",
"Share with email {email}" : "Compartir al correo electrónico {email}",
"Share with group" : "Compartir con el grupo",
@@ -325,6 +319,8 @@ OC.L10N.register(
"Error updating the share" : "Error al actualizar el recurso compartido",
"File \"{path}\" has been unshared" : "Se dejó de compartir el archivo \"{path}\"",
"Folder \"{path}\" has been unshared" : "Se dejó de compartir la carpeta \"{path}\"",
+ "Upload files to {folder}" : "Cargar archivos a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} le compartió una carpeta.",
"Shared by" : "Compartido por",
"Shared with" : "Compartido con",
"Password created successfully" : "Contraseña creada exitosamente",
@@ -355,13 +351,16 @@ OC.L10N.register(
"No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
"Invalid server URL" : "URL del servidor inválido",
"Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "Files" : "Archivos",
+ "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
"Download all files" : "Descargar todos los archivos",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_1 email address added_::_{count} email addresses added_" : ["Se añadió 1 dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"],
"Search for share recipients" : "Buscar destinatarios del recurso compartido",
"No recommendations. Start typing." : "Sin recomendaciones. Empiece a escribir.",
- "Allow download" : "Permitir descarga",
- "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
- "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
- "_1 email address added_::_{count} email addresses added_" : ["Se añadió 1 dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"]
+ "To upload files, you need to provide your name first." : "Para cargar archivos, primero debe proveer su nombre.",
+ "Enter your name" : "Ingrese su nombre",
+ "Submit name" : "Enviar nombre",
+ "Name" : "Nombre",
+ "Filename must not be empty." : "El nombre de archivo no puede estar vacío."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_MX.json b/apps/files_sharing/l10n/es_MX.json
index 2284878102a..1a504514394 100644
--- a/apps/files_sharing/l10n/es_MX.json
+++ b/apps/files_sharing/l10n/es_MX.json
@@ -236,12 +236,6 @@
"Note:" : "Nota:",
"File drop" : "Soltar archivo",
"Terms of service" : "Términos del servicio",
- "Upload files to {folder}" : "Cargar archivos a {folder}",
- "Submit name" : "Enviar nombre",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} le compartió una carpeta.",
- "To upload files, you need to provide your name first." : "Para cargar archivos, primero debe proveer su nombre.",
- "Name" : "Nombre",
- "Enter your name" : "Ingrese su nombre",
"Share with {userName}" : "Compartir con {userName}",
"Share with email {email}" : "Compartir al correo electrónico {email}",
"Share with group" : "Compartir con el grupo",
@@ -323,6 +317,8 @@
"Error updating the share" : "Error al actualizar el recurso compartido",
"File \"{path}\" has been unshared" : "Se dejó de compartir el archivo \"{path}\"",
"Folder \"{path}\" has been unshared" : "Se dejó de compartir la carpeta \"{path}\"",
+ "Upload files to {folder}" : "Cargar archivos a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} le compartió una carpeta.",
"Shared by" : "Compartido por",
"Shared with" : "Compartido con",
"Password created successfully" : "Contraseña creada exitosamente",
@@ -353,13 +349,16 @@
"No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
"Invalid server URL" : "URL del servidor inválido",
"Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "Files" : "Archivos",
+ "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
"Download all files" : "Descargar todos los archivos",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
+ "_1 email address added_::_{count} email addresses added_" : ["Se añadió 1 dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"],
"Search for share recipients" : "Buscar destinatarios del recurso compartido",
"No recommendations. Start typing." : "Sin recomendaciones. Empiece a escribir.",
- "Allow download" : "Permitir descarga",
- "You are not allowed to edit link shares that you don't own" : "No tiene permitido editar los enlaces compartidos que no le pertenecen",
- "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"],
- "_1 email address added_::_{count} email addresses added_" : ["Se añadió 1 dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"]
+ "To upload files, you need to provide your name first." : "Para cargar archivos, primero debe proveer su nombre.",
+ "Enter your name" : "Ingrese su nombre",
+ "Submit name" : "Enviar nombre",
+ "Name" : "Nombre",
+ "Filename must not be empty." : "El nombre de archivo no puede estar vacío."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_NI.js b/apps/files_sharing/l10n/es_NI.js
deleted file mode 100644
index a59be44409b..00000000000
--- a/apps/files_sharing/l10n/es_NI.js
+++ /dev/null
@@ -1,135 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_NI.json b/apps/files_sharing/l10n/es_NI.json
deleted file mode 100644
index 560501d858d..00000000000
--- a/apps/files_sharing/l10n/es_NI.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_PA.js b/apps/files_sharing/l10n/es_PA.js
deleted file mode 100644
index a59be44409b..00000000000
--- a/apps/files_sharing/l10n/es_PA.js
+++ /dev/null
@@ -1,135 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_PA.json b/apps/files_sharing/l10n/es_PA.json
deleted file mode 100644
index 560501d858d..00000000000
--- a/apps/files_sharing/l10n/es_PA.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_PE.js b/apps/files_sharing/l10n/es_PE.js
deleted file mode 100644
index c4c0f42d818..00000000000
--- a/apps/files_sharing/l10n/es_PE.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar lista en grilla",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el archivo/carpeta no existe",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_PE.json b/apps/files_sharing/l10n/es_PE.json
deleted file mode 100644
index 4682d999b1a..00000000000
--- a/apps/files_sharing/l10n/es_PE.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "This will stop your current uploads." : "Se detendrán las cargas en curso",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "Show list view" : "Mostrar vista de lista",
- "Show grid view" : "Mostrar lista en grilla",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el archivo/carpeta no existe",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_PR.js b/apps/files_sharing/l10n/es_PR.js
deleted file mode 100644
index a59be44409b..00000000000
--- a/apps/files_sharing/l10n/es_PR.js
+++ /dev/null
@@ -1,135 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_PR.json b/apps/files_sharing/l10n/es_PR.json
deleted file mode 100644
index 560501d858d..00000000000
--- a/apps/files_sharing/l10n/es_PR.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_PY.js b/apps/files_sharing/l10n/es_PY.js
deleted file mode 100644
index f6c8fb305b2..00000000000
--- a/apps/files_sharing/l10n/es_PY.js
+++ /dev/null
@@ -1,136 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_PY.json b/apps/files_sharing/l10n/es_PY.json
deleted file mode 100644
index 5888ea1de63..00000000000
--- a/apps/files_sharing/l10n/es_PY.json
+++ /dev/null
@@ -1,134 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "This will stop your current uploads." : "Esto detendrá tus cargas actuales.",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_SV.js b/apps/files_sharing/l10n/es_SV.js
deleted file mode 100644
index 01b8c23159d..00000000000
--- a/apps/files_sharing/l10n/es_SV.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_SV.json b/apps/files_sharing/l10n/es_SV.json
deleted file mode 100644
index 00480fcc844..00000000000
--- a/apps/files_sharing/l10n/es_SV.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "error" : "error",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "File sharing" : "Compartir archivos",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Share note" : "Compartir nota",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_UY.js b/apps/files_sharing/l10n/es_UY.js
deleted file mode 100644
index 604651eddaa..00000000000
--- a/apps/files_sharing/l10n/es_UY.js
+++ /dev/null
@@ -1,138 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir creació",
- "Allow deleting" : "Permitir eliminació",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/es_UY.json b/apps/files_sharing/l10n/es_UY.json
deleted file mode 100644
index 32010d2045e..00000000000
--- a/apps/files_sharing/l10n/es_UY.json
+++ /dev/null
@@ -1,136 +0,0 @@
-{ "translations": {
- "Shared with you" : "Compartido contigo",
- "Nothing shared with you yet" : "Nada ha sido compartido contigo aún",
- "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí",
- "Shared with others" : "Compartido con otros",
- "Nothing shared yet" : "Nada compartido aún",
- "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí",
- "Shared by link" : "Compartido por liga",
- "No shared links" : "No hay ligas compartidas",
- "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí",
- "Shares" : "Elementos compartidos",
- "Restore" : "Restaurar",
- "Move or copy" : "Mover o copiar",
- "Download" : "Descargar",
- "Delete" : "Borrar",
- "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta",
- "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}",
- "Invalid server URL" : "URL del servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud",
- "No expiration date set" : "No se ha establecido la fecha de expiración",
- "Shared by" : "Compartido por",
- "File shares" : "Archivos compartidos",
- "Downloaded via public link" : "Descargado mediante una liga pública",
- "Downloaded by {email}" : "Descargado por {email}",
- "{file} downloaded via public link" : "{file} descargado mediante una liga pública",
- "{email} downloaded {file}" : "{email} descargó {file}",
- "Shared with group {group}" : "Compartido con el gupo {group}",
- "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}",
- "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}",
- "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}",
- "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}",
- "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}",
- "Shared as public link" : "Compartido como una liga pública",
- "Removed public link" : "Liga pública eliminada",
- "Public link expired" : "La liga pública ha expirado",
- "{actor} shared as public link" : "{actor} compartió como una liga pública",
- "{actor} removed public link" : "{actor} eliminó la liga pública",
- "Public link of {actor} expired" : "La liga pública de {actor} ha expirado",
- "You shared {file} as public link" : "Compartiste {file} como una liga pública",
- "You removed public link for {file}" : "Eliminaste la liga pública de {file}",
- "Public link expired for {file}" : "La liga pública para {file} ha expirado",
- "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública",
- "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}",
- "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado",
- "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto",
- "{user} declined the remote share" : "{user} declinó el elemento compartido remoto",
- "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}",
- "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}",
- "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo",
- "Shared with {user}" : "Compartido con {user}",
- "Removed share for {user}" : "Se eliminó el elemento compartido para {user}",
- "{actor} removed themselves" : "{actor} se ha eliminado",
- "{actor} shared with {user}" : "{actor} compartió con {user}",
- "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}",
- "Shared by {actor}" : "Compartido por {actor}",
- "{actor} removed share" : "{actor} eliminó el elemento compartido",
- "You shared {file} with {user}" : "Compartiste {file} con {user}",
- "You removed {user} from {file}" : "Eliminaste a {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}",
- "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}",
- "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>",
- "Files" : "Archivos",
- "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>",
- "Could not delete share" : "No fue posible borrar el elemento compartido",
- "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta",
- "Could not create share" : "No fue posible crear el elemento compartido",
- "Please specify a valid user" : "Por favor especifica un usuario válido",
- "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador",
- "Please specify a valid group" : "Por favor especifica un grupo válido",
- "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador",
- "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador",
- "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente",
- "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada",
- "Please specify a valid circle" : "Por favor especifica un círculo válido",
- "Unknown share type" : "Tipo de elemento compartido desconocido",
- "Not a directory" : "No es una carpeta",
- "Could not lock path" : "No fue posible bloquear la ruta",
- "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
- "shared by %s" : "compartido por %s",
- "Direct link" : "Liga directa",
- "Share API is disabled" : "El API para compartir está deshabilitado",
- "Accept" : "Aceptar",
- "Sharing" : "Compartiendo",
- "Reset" : "Restablecer",
- "Unknown error" : "Error desconocido",
- "Allow editing" : "Permitir edición",
- "Read only" : "Sólo lectura",
- "Allow upload and editing" : "Permitir carga y edición",
- "File drop (upload only)" : "Permitir carga",
- "Read" : "Leer",
- "Upload" : "Cargar",
- "Edit" : "Editar",
- "Allow creating" : "Permitir creació",
- "Allow deleting" : "Permitir eliminació",
- "Allow resharing" : "Permitir volver a compartir",
- "Set expiration date" : "Establecer fecha de expiración",
- "Unshare" : "Dejar de compartir",
- "group" : "grupo",
- "remote" : "remoto",
- "Copy to clipboard" : "Copiar al portapapeles",
- "Password protection" : "Protección con contraseña",
- "Enter a password" : "Ingresa una contraseña",
- "Cancel" : "Cancelar",
- "Password protect" : "Proteger con contraseña",
- "Add another link" : "Añadir otro enlace",
- "Share link" : "Compartir liga",
- "Resharing is not allowed" : "No se permite volver a compartir",
- "Shared with you by {owner}" : "Compartido contigo por {owner}",
- "Shared" : "Compartido",
- "Share" : "Compartir",
- "Shared with" : "Compartido con",
- "Shared with you and the group {group} by {owner}" : "Compartido contigo y con el grupo {group} por {owner}",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Share time" : "Compartido desde",
- "Expiration date" : "Fecha de expiración",
- "Reasons might be:" : "Las causas podrían ser:",
- "the item was removed" : "el elemento fue eliminado",
- "the link expired" : "la liga expiró",
- "sharing is disabled" : "compartir está deshabilitado",
- "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "Upload files to %s" : "Cargar archivos a %s",
- "Select or drop files" : "Selecciona o suelta los archivos",
- "Uploaded files:" : "Archivos cargados:",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
- "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe",
- "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ",
- "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js
index be6e39964a3..c8f541077f4 100644
--- a/apps/files_sharing/l10n/et_EE.js
+++ b/apps/files_sharing/l10n/et_EE.js
@@ -15,6 +15,7 @@ OC.L10N.register(
"You removed group {group} from {file}" : "Sa eemaldasid grupi {group} faili {file} jagamisest",
"{actor} shared {file} with group {group}" : "{actor} jagas faili {file} grupiga {group}",
"{actor} removed group {group} from {file}" : "{actor} eemaldas grupi {group} faili {file} jagamisest",
+ "Share for file {file} with group {group} expired" : "Grupile „{group}“ mõeldud jagatud fail „{file}“ aegus",
"Shared as public link" : "Jaga avaliku lingina",
"Removed public link" : "Avalik link on eemaldatud",
"Public link expired" : "Avalik link aegus",
@@ -41,71 +42,128 @@ OC.L10N.register(
"{actor} removed share for {user}" : "{actor} eemaldas jagamise kasutajaga {user}",
"Shared by {actor}" : "Jagatud kasutajalt {actor}",
"{actor} removed share" : "{actor} eemaldas jagamise",
+ "Share for {user} expired" : "Kasutajale „{user}“ mõeldud jaosmeedia aegus",
"Share expired" : "Jagamine aegus",
"You shared {file} with {user}" : "Sa jagasid {file} kasutajaga {user}",
"You removed {user} from {file}" : "Sa eemaldasid faili {file} jagamise kasutajaga {user} ",
+ "You removed yourself from {file}" : "Sa eemaldasid end „{file}“ failist",
+ "{actor} removed themselves from {file}" : "„{actor}“ eemaldas end „{file}“ failist",
"{actor} shared {file} with {user}" : "{actor} jagas {file} kasutajaga {user}",
"{actor} removed {user} from {file}" : "{actor} eemaldas {user} jagamise faililt {file}",
"{actor} shared {file} with you" : "{actor} jagas sinuga {file}",
"{actor} removed you from the share named {file}" : "{actor} lõpetas sinuga {file} jagamise",
+ "Share for file {file} with {user} expired" : "Kasutajale „{user}“ mõeldud jagatud fail „{file}“ aegus",
+ "Share for file {file} expired" : "„{file}“ faili jagamine aegus",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga <strong>laaditi alla</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Failid on <strong>laaditud üles</strong> kausta, mida on jagatud e-posti või avaliku lingiga",
"A file or folder was shared from <strong>another server</strong>" : "Fail või kaust jagati <strong>teisest serverist</strong>",
"Sharing" : "Jagamine",
"A file or folder has been <strong>shared</strong>" : "Fail või kaust on <strong>jagatud</strong>",
"Shared link" : "Jagatud link",
+ "Wrong share ID, share does not exist" : "Jaosmedia vigane tunnus - sellist pole olemas",
"Could not delete share" : "Ei saanud jagamist eemaldada",
"Please specify a file or folder path" : "Palun määra faili või kausta rada",
"Wrong path, file/folder does not exist" : "Vale asukoht faili või kausta pole olemas",
"Could not create share" : "Ei saanud jagamist luua",
+ "Please specify a valid account to share with" : "Palun määra korrektne kasutajakonto, kellega soovid jagada",
"Group sharing is disabled by the administrator" : "Grupiga jagamine on administraatori poolt keelatud",
"Please specify a valid group" : "Palun määra kehtiv grupp",
"Public link sharing is disabled by the administrator" : "Avaliku lingiga jagamine on administraatori poolt keelatud",
+ "Please specify a valid email address" : "Palun määra kehtiv e-posti aadress",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka „%s“ jaosmeedia salasõna jagada",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "„%1$s“ jagamine ei õnnestunud, sest server ei luba „%2$s“ tüüpi jagamisi",
+ "Please specify a valid federated account ID" : "Palun määra korrektne kasutaja liitpilves, kellega soovid jagada",
+ "Please specify a valid federated group ID" : "Palun määra korrektne grupp liitpilves, kellega soovid jagada",
"You cannot share to a Team if the app is not enabled" : "Sa ei saa jagada tiimiga, kui see rakendus pole lubatud",
"Please specify a valid team" : "Palun määratle korrektne tiim",
+ "Sharing %s failed because the back end does not support room shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta jututubadesse jagamist",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta ScienceMeshi meedia jagamist",
"Unknown share type" : "Tundmatu jagamise tüüp",
"Not a directory" : "Ei ole kaust",
+ "Could not lock node" : "Sõlme lukustamine ei õnnestunud",
"Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades",
"Share must at least have READ or CREATE permissions" : "jaosmeedial peavad olema vähemalt logemis- ja loomisõigused",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Kui jaosmeedial on muutmis ja kustutamisõigus, siis peab olema ka lugemisõigus",
"Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud",
- "Could not lock path" : "Ei saanud rada lukustada",
+ "Could not lock path" : "Asukoha lukustamine ei õnnestunud",
+ "no sharing rights on this item" : "selle objekti kontekstis pole jagamisõigusi",
+ "You are not allowed to edit incoming shares" : "Sul pole lubatud vastuvõetud jaosmeediat muuta",
"Wrong or no update parameter given" : "Antud vale või aegunud parameeter",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka jaosmeedia salasõna jagada",
+ "Custom share link tokens have been disabled by the administrator" : "Jaosmeediale oma tunnuslubade loomine pole peakasutaja poolt lubatud",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tunnuslubades peab olema vähemalt 1 tähemärk ning võib olla vaid tähti, numbreid ja sisekriipse",
+ "Invalid date. Format must be YYYY-MM-DD" : "Vigane kuupäev, vorming peab olema YYYY-MM-DD",
+ "No sharing rights on this item" : "Selle objekti kontekstis pole jagamisõigusi",
+ "Invalid share attributes provided: \"%s\"" : "Vigased jagamisatribuudid: „%s“",
+ "You are not allowed to send mail notifications" : "Sul pole lubatud e-postiga teavitusi saata",
+ "No mail notification configured for this share type" : "Selle jagamistüübi kohta pole e-posti teel saadetavat teavitust lisatud",
"Wrong password" : "Vale salasõna",
+ "Error while sending mail notification" : "Viga e-postiga teavituse saatmisel",
"Failed to generate a unique token" : "Ei õnnestunud luua unikaalset tunnusluba",
"This share does not exist or is no longer available" : "See jaosmeedia pole enam olemas või saadaval",
"shared by %s" : "jagas %s",
"Download" : "Laadi alla",
+ "Add to your %s" : "Lisa oma teenusesse: %s",
"Direct link" : "Otsene link",
"Share API is disabled" : "Jagamise API on keelatud",
"File sharing" : "Faide jagamine",
"Share will expire tomorrow" : "Jagamine aegub homme",
+ "Your share of {node} will expire tomorrow" : "Sinu „{node}“ jaosmeedia aegub homme",
+ "You received {share} as a share by {user}" : "Kasutaja „{user}“ on saatnud sulle „{share}“ jaosmeedia",
+ "You received {share} to group {group} as a share by {user}" : "Kasutaja „{user}“ on saatnud „{group}“ grupile „{share}“ jaosmeedia",
"Accept" : "Nõustu",
"Decline" : "Keeldu",
"Remember to upload the files to %s" : "Ära unusta laadida faile kausta %s",
"We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Me lahkesti tuletame sulle meelde, et sa pole veel ühtegi faili lisanud jagatud kausta.",
"Open \"%s\"" : "Ava „%s“",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "See rakendus võimaldab kasutajatel jagada Nextcloudis faile. Kui see on lubatud, saab peakasutaja valida, millised grupid võivad faile jagada. Seejärel saavad asjaomased inimesed jagada faile ja kaustu teiste kontode ja gruppidega Nextcloudis. Lisaks sellele, kui administraator lubab lingiga jagamise, saab failide jagamiseks teiste inimestega väljaspool Nextcloudi kasutada välist linki. Peakasutajad saavad ka muuta nõutavaks salasõnade ja aegumistähtaegade kasutamise ning lubada serverist serverisse jagamist jagamislinkide kaudu, samuti jagamist nutiseadmetest.\nSelle rakenduse väljalülitamine eemaldab jagatud failid ja kaustad serveris kõigi jagamise saajate jaoks ning sama ka sünkroonimisklientides ja nutirakendustes. Lisateavet leiad Nextcloudi dokumentatsioonist.",
"People" : "Inimesed",
"Filter accounts" : "Filtreeri kasutajakontosid",
+ "The request will expire on {date} at midnight and will be password protected." : "Päring aegub {date} keskööl ning on kaitstud salasõnaga.",
+ "The request will expire on {date} at midnight." : "Päring aegub {date} keskööl.",
+ "The request will be password protected." : "Päring on kaitstud salasõnaga.",
+ "When should the request expire?" : "Millal peaks see päring aeguma?",
+ "Set a submission expiration date" : "Määra aegumise kuupäev",
"Expiration date" : "Aegumise kuupäev",
"Select a date" : "Vali kuupäev",
+ "Your administrator has enforced a {count} days expiration policy." : "Sinu serveri peakasutaja on kehtestanud {count}-päevase aegumisreegli.",
+ "What password should be used for the request?" : "Mis salasõna peaks selle päringu puhul kasutama?",
"Set a password" : "Lisa salasõna",
"Password" : "Salasõna",
"Enter a valid password" : "Sisesta korrektne salasõna",
"Generate a new password" : "Loo uus salasõna",
+ "Your administrator has enforced a password protection." : "Sinu serveri peakasutaja on kehtestanud salasõna kasutamise reegli.",
+ "Automatically copying failed, please copy the share link manually" : "Automaatne kopeerimine ei toimi, palun kopeeri jagamislink käsitsi",
"Link copied to clipboard" : "Link on lõikelauale kopeeritud",
"Email already added" : "E-posti aadress on juba lisatud",
"Invalid email address" : "Vigane e-posti aadress",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Järgnev e-posti aadress pole korrektne: {emails}","Järgnevad e-posti aadressid pole korrektsed: {emails}"],
"_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"],
"_{count} email address added_::_{count} email addresses added_" : ["{count} e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"],
+ "You can now share the link below to allow people to upload files to your directory." : "Nüüd saad teistega jagada alltoodud linki ning neil on võimalik faile sinu kausta üles laadida.",
"Share link" : "Jaga link",
"Copy to clipboard" : "Kopeeri lõikepuhvrisse",
"Send link via email" : "Saada link e-kirjaga",
+ "Enter an email address or paste a list" : "Sisesta e-posti aadress või lisa loend",
+ "Remove email" : "Eemalda e-posti aadress",
+ "Select a destination" : "Vali sihtkaust",
"Select" : "Vali",
+ "What are you requesting?" : "Missugust faili soovid saada?",
+ "Request subject" : "Päringu teema",
+ "Birthday party photos, History assignment…" : "Sünnipäevapeo fotod, uurimistöö…",
+ "Where should these files go?" : "Kuhu peaksid need failid sattuma?",
+ "Upload destination" : "Üleslaadimise sihtkaust",
+ "Revert to default" : "Kasuta vaikimisi kausta",
+ "The uploaded files are visible only to you unless you choose to share them." : "Kui sa just neid edasi ei jaga, siis on üleslaaditud failid nähtavad vaid sulle.",
"Add a note" : "Lisa märge",
"Note for recipient" : "Märge saajale",
- "Add a note to help people understand what you are requesting." : "Lisa teise osapoole jaoks märge, mis aitab neil mõista, missugust faili sa temalt soovid.",
+ "Add a note to help people understand what you are requesting." : "Lisa teise osapoole jaoks märge, mis aitab tal mõista, missugust faili sa temalt soovid.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Lisa teise osapoole jaoks linke, kuupäevi või muud teavet, mis aitab tal mõista, missugust faili sa temalt soovid.",
"Close" : "Sulge",
"_Send email and close_::_Send {count} emails and close_" : ["Saada e-kiri ja sulge","Saada {count} e-kirja ja sulge"],
"Please select a folder, you cannot share the root directory." : "Palun vali kaust ülaltpool - sa ei saa jagada juurkausta.",
+ "File request created" : "Failipäring on loodud",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Failipäring on loodud ja e-kiri on saadetud","Failipäring on loodud ja {count} e-kirja on saadetud"],
"Error creating the share: {errorMessage}" : "Viga jaosmeedia loomisel: {errorMessage}",
"Error creating the share" : "Viga jaosmeedia loomisel",
"Error sending emails: {errorMessage}" : "Viga e-kirjade saatmisel: {errorMessage}",
@@ -120,13 +178,14 @@ OC.L10N.register(
"Close without sending emails" : "Sulge ilma e-kirju saatmata",
"Continue" : "Jätka",
"Error while toggling options" : "Viga valikute sisse/välja lülitamisel",
+ "Accept shares from other accounts and groups by default" : "Aktsepteeri vaikimisi muude kasutajakontode ja rühmade jagamisi automaatselt",
"Choose a default folder for accepted shares" : "Vali vaikimisi kaust jaosmeedia vastuvõtmiseks",
"Invalid path selected" : "Vigane asukoht on valitud",
"Unknown error" : "Tundmatu viga",
"Set default folder for accepted shares" : "Määra vastuvõetava jaosmeedia jaoks vaikimisi kaust",
"Reset" : "Lähtesta",
"Reset folder to system default" : "Kasuta süsteemi vaikimisi kausta",
- "Share expiration: " : "Jagamise aegumine:",
+ "Share expiration: {date}" : "Jagamise aegumine: {date}",
"Share Expiration" : "Jagamise aegumine",
"group" : "grupp",
"conversation" : "vestlus",
@@ -134,8 +193,12 @@ OC.L10N.register(
"remote group" : "Kauggrupp",
"guest" : "külaline",
"by {initiator}" : "kasutajalt {initiator}",
+ "Shared with the group {user} by {owner}" : "„{owner}“ jagas seda sinuga ja „{user}“ grupiga",
+ "Shared with the conversation {user} by {owner}" : "„{owner}“ jagas seda vestluses „{user}“ grupiga või kasutajaga",
+ "Shared with {user} by {owner}" : "„{owner}“ jagas seda „{user}“ kasutajaga",
"Open Sharing Details" : "Ava jaosmeedia üksikasjad",
"Added by {initiator}" : "Selle lisas {initiator}",
+ "Via “{folder}”" : "„{folder}“ kausta kaudu",
"Unshare" : "Lõpeta jagamine",
"Cannot copy, please copy the link manually" : "Ei saa kopeerida, palun kopeeri link käsitsi",
"Copy internal link to clipboard" : "Kopeeri sisemine link lõikelauale",
@@ -143,10 +206,20 @@ OC.L10N.register(
"Only works for people with access to this file" : "Toimib vaid kasutajate puhul, kellel on ligipääs sellele failile",
"Link copied" : "Link kopeeritud",
"Internal link" : "Sisemine link",
+ "{shareWith} by {initiator}" : "{shareWith} kasutajalt {initiator}",
+ "Shared via link by {initiator}" : "„{initiator}“ jagas seda lingiga",
+ "File request ({label})" : "Failipäring ({label})",
+ "Mail share ({label})" : "Jagamine e-kirjaga ({label})",
"Share link ({label})" : "Jagamise link ({label})",
+ "Mail share" : "E-posti jagamine",
"Share link ({index})" : "Jagamise link ({index})",
"Create public link" : "Loo avalik link",
+ "Actions for \"{title}\"" : "„{title}“ tegevused",
+ "Copy public link of \"{title}\" to clipboard" : "Kopeeri „{title}“ avalik link lõikelauale",
+ "Error, please enter proper password and/or expiration date" : "Viga, palun sisesta korrektne salasõna ja/või aegumise kuupäev",
+ "Link share created" : "Lingi jagamine on loodud",
"Error while creating the share" : "Viga jaosmeedia loomisel",
+ "Please enter the following required information before creating the share" : "Enne jaosmeedia loomist palun sisesta järgmine vajalik teave",
"Password protection (enforced)" : "Paroolikaitse (jõustatud)",
"Password protection" : "Password protection",
"Enter a password" : "Enter a password",
@@ -159,17 +232,23 @@ OC.L10N.register(
"Generate QR code" : "Loo QR-kood",
"Add another link" : "Lisa veel üks link",
"Create a new share link" : "Loo uus jagamislink",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Kiirjagamise valikud, hetkel on valitud „{selectedOption}“",
"View only" : "Ainult vaatamine",
- "Can edit" : "Võib redigeerida",
+ "Can edit" : "Võib muuta",
+ "Custom permissions" : "Kohandatud õigused",
"Resharing is not allowed" : "Edasijagamine pole lubatud",
"Name or email …" : "Nimi või e-posti aadress…",
"Name, email, or Federated Cloud ID …" : "Nimi, e-posti aadress või liitpilve kasutajatunnus…",
- "Searching …" : "Otsin ...",
+ "Searching …" : "Otsin...",
+ "No elements found." : "Elemente ei leidu.",
+ "Search globally" : "Otsi kõikjalt",
"Guest" : "Külaline",
"Group" : "Grupp",
"Email" : "Epost",
"Team" : "Tiim",
"Talk conversation" : "Talk suhtlus",
+ "Deck board" : "Kanbani tahvel",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : " {server}",
"Enter external recipients" : "Lisa välised saajad",
"Search for internal recipients" : "Otsi rakendusesiseseid saajaid",
@@ -178,12 +257,9 @@ OC.L10N.register(
"File drop" : "Failiedastus",
"Upload files to {foldername}." : "Laadi failid üles kausta {foldername}.",
"By uploading files, you agree to the terms of service." : "Faile üleslaadides nõustud sa kasutustingimustega.",
+ "Successfully uploaded files" : "Failide üleslaadimine õnnestus",
"View terms of service" : "Vaata kasutustingimusi",
"Terms of service" : "Kasutustingimused",
- "Upload files to {folder}" : "Laadi failid üles kausta {folder}",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jagas sinuga kausta.",
- "Name" : "Nimi",
- "Enter your name" : "Sisesta oma nimi",
"Share with {userName}" : "Jaga kasutajaga {userName}",
"Share with email {email}" : "Jaga e-posti aadressile {email}",
"Share with group" : "Jaga grupiga",
@@ -195,7 +271,7 @@ OC.L10N.register(
"Save share" : "Salvesta jaosmeedia",
"Read" : "Lugemine",
"Create" : "Lisa",
- "Edit" : "Redigeeri",
+ "Edit" : "Muuda",
"Share" : "Jaga",
"Delete" : "Kustuta",
"Password field cannot be empty" : "Salasõna väli ei saa olla tühi",
@@ -207,11 +283,13 @@ OC.L10N.register(
"Advanced settings" : "Lisavalikud",
"Share label" : "Jaga silti",
"Share link token" : "Jagamislingi tunnusluba",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Sisesta avaliku jagamislingi jaoks midagi lihtsalt meeldejäetavat või genereeri uus tunnusluba. Kui link viitab delikaatsetele andmetele, siis palun ära kasuta kergesti aimatavaid tunnuslube.",
"Generating…" : "Loomisel…",
"Generate new token" : "Loo uus tunnusluba",
"Set password" : "Määra salasõna",
"Password expires {passwordExpirationTime}" : "Salasõna aegub {passwordExpirationTime}",
"Password expired" : "Salasõna on aegunud",
+ "Video verification" : "Verifitseerimine videoga",
"Expiration date (enforced)" : "Aegumise kuupäev (jõustatud)",
"Set expiration date" : "Määra aegumise kuupäev",
"Hide download" : "Peida allalaaditu",
@@ -220,25 +298,41 @@ OC.L10N.register(
"Enter a note for the share recipient" : "Lisa märkus jaosmeedia saajale",
"Show files in grid view" : "Näita faile ruudustikuvaates",
"Delete share" : "Kustuta jagamine",
+ "Others with access" : "Teised, kellel on ligipääs",
+ "No other accounts with access found" : "Teisi ligipääsuga kasutajakontosid ei leidu",
+ "Toggle list of others with access to this directory" : "Näita teisi, kellele on ligipääs sellele kaustale või peida nad",
+ "Toggle list of others with access to this file" : "Näita teisi, kellele on ligipääs sellele failile või peida nad",
+ "Unable to fetch inherited shares" : "Päritud jaosmeedia laadimine ei õnnestu",
"Link shares" : "Jaoslingid",
"Shares" : "Jagamisi",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Kasuta seda jagamismeetodit jagamisel oma organisatsiooni kasutajatega ja tiimidega. Kui kasutajal juba on jaosmeediale ligipääs, kuid ei suuad seda leida, siis lihtsuse mõttes saada talle süsteemisisene jagamislink.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Kasuta seda meetodit failide jagamiset erinevate inimeste ja organisatsioonidega väljaspool seda serverit. Faile ja kaustu saad jagada avaliku jaosmeedia abil, kui e-posti teel jagamisel. Lisaks saad jagada kasutajatele muudes Nextcloudi serverites ehk liitpilves.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Jaosmeedia, mis pole sisemise või välise jagamise osa. Näiteks jagamine rakendustest või muudest allikatest.",
+ "Share with accounts, teams, federated cloud IDs" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega",
+ "Share with accounts and teams" : "Jaga kasutajate ja tiimidega",
+ "Federated cloud ID" : "Liitpilve tunnus",
+ "Email, federated cloud ID" : "E-posti aadress, liitpilve kasutajatunnus",
+ "Unable to load the shares list" : "Jaosmeedia loendi laadimine ei õnnestu",
"Expires {relativetime}" : "Aegub {relativetime}",
"this share just expired." : "see jagamine aegus äsja",
"Shared with you by {owner}" : "Jagatud sinuga {owner} poolt",
"Internal shares" : "Sisemised jaoskaustad",
"Internal shares explanation" : "Sisemiste jaoskaustade selgitus",
- "Share with accounts and teams" : "Jaga kasutajate ja tiimidega",
"External shares" : "Välised jaoskaustad",
"External shares explanation" : "Väliste jaoskaustade selgitus",
- "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus",
"Additional shares" : "Täiendavad jaoskaustad",
"Additional shares explanation" : "Täiendavate jaoskaustade selgitus",
+ "Link to a file" : "Link failile",
+ "_Accept share_::_Accept shares_" : ["Võta jaosmeedia vastu","Võta jaosmeedia vastu"],
"Open in Files" : "Ava failirakenduses",
+ "_Reject share_::_Reject shares_" : ["Keeldu jaosmeediast","Keeldu jaosmeediast"],
+ "_Restore share_::_Restore shares_" : ["Taasta jaosmeedia","Taasta jaosmeedia"],
"Shared" : "Jagatud",
"Shared by {ownerDisplayName}" : "Jagaja: {ownerDisplayName}",
"Shared multiple times with different people" : "Jagatud mitu korda eri kasutajate poolt",
"Show sharing options" : "Näita jagamise valikuid",
"Shared with others" : "Teistega jagatud",
+ "Create file request" : "Koosta failipäring",
"Upload files to {foldername}" : "Laadi failid üles kausta {foldername}",
"Public file share" : "Avalikud jaosfailid",
"Publicly shared file." : "Avalikult jagatud fail.",
@@ -248,19 +342,38 @@ OC.L10N.register(
"Publicly shared files." : "Avalikult jagatud failid.",
"No files" : "Faile pole",
"Files and folders shared with you will show up here" : "Sinuga jagatud failid ja kaustad on siin nähtavad",
+ "Overview of shared files." : "Jagatud failide ülevaade.",
"No shares" : "Jagamisi pole",
+ "Files and folders you shared or have been shared with you will show up here" : "Sinu poolt jagatud ning sinuga jagatud failid ja kaustad saavad olema nähtavad siin",
"Shared with you" : "Sinuga jagatud",
+ "List of files that are shared with you." : "Sinuga jagatud failide loend.",
"Nothing shared with you yet" : "Sinuga pole veel midagi jagatud",
+ "Files and folders others shared with you will show up here" : "Sinuga jagatud failid ja kaustad saavad olema nähtavad siin",
+ "List of files that you shared with others." : "Sinu poolt teisega jagatud failide loend.",
"Nothing shared yet" : "Midagi pole veel jagatud",
+ "Files and folders you shared will show up here" : "Sinu poolt jagatud failid ja kaustad saavad olema nähtavad siin",
"Shared by link" : "Jagatud lingiga",
+ "List of files that are shared by link." : "Lingiga jagatud failide loend.",
"No shared links" : "Jagatud linke pole",
+ "Files and folders you shared by link will show up here" : "Sinu poolt lingiga jagatud failid ja kaustad saavad olema nähtavad siin",
"File requests" : "Failipäringud",
"List of file requests." : "Failipäringute loend.",
"No file requests" : "Failipäringuid ei leidu",
+ "File requests you have created will show up here" : "Sinu loodud failipäringud saavad olema nähtavad siin.",
"Deleted shares" : "Kustutatud jagamised",
+ "List of shares you left." : "Jaosmeedia loend, kust sa oled lahkunud.",
"No deleted shares" : "Kustutatud jagamisi pole",
+ "Shares you have left will show up here" : "Jaosmeedia loend, kust sa oled lahkunud, saab olema nähtav siin",
"Pending shares" : "Ootel jagamised",
+ "List of unapproved shares." : "Vastuvõtmata jaosmeedia loend.",
"No pending shares" : "Ootel jagamisi pole",
+ "Shares you have received but not approved will show up here" : "Jaosmeedia, mille oled saanud, kuid pole nõustunud, saab olema nähtav siin",
+ "Error deleting the share: {errorMessage}" : "Viga jagamise kustutamisel: {errorMessage}",
+ "Error deleting the share" : "Viga jagamise kustutamisel",
+ "Error updating the share: {errorMessage}" : "Viga jaosmeedia uuendamisel: {errorMessage}",
+ "Error updating the share" : "Viga jaosmeedia uuendamisel",
+ "File \"{path}\" has been unshared" : "„{path}“ faili jagamine on lõpetatud",
+ "Folder \"{path}\" has been unshared" : "„{path}“ kausta jagamine on lõpetatud",
"Could not update share" : "Jaosmeedia andmete uuendamine ei õnnestunud",
"Share saved" : "Jaosmeedia andmed on salvestatud",
"Share expiry date saved" : "Jaosmeedia aegumise kuupäev on salvestatud",
@@ -269,9 +382,25 @@ OC.L10N.register(
"Share note for recipient saved" : "Jaosmeedia märge saajale on salvestatud",
"Share password saved" : "Jaosmeedia salasõna on salvestatud",
"Share permissions saved" : "Jaosmeedia õigused on salvestatud",
+ "To upload files to {folder}, you need to provide your name first." : "Laadimaks faile {folder} kausta, pead esmalt sisestama oma nime",
+ "Upload files to {folder}" : "Laadi failid üles kausta {folder}",
+ "Please confirm your name to upload files to {folder}" : "Laadimaks faile {folder} kausta, palun kinnita oma nimi",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jagas sinuga kausta.",
+ "Names must not be empty." : "Nimed ei tohi ollla tühjad.",
+ "Names must not start with a dot." : "Nime alguses ei tohi olla punkti.",
+ "\"{char}\" is not allowed inside a name." : "„{char}“ pole failinimedes lubatud.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}“ on reserveeritud nimi ja seda ei saa kasutada.",
+ "\"{extension}\" is not an allowed name." : "„{extension}“ pole lubatud nimi.",
+ "Names must not end with \"{extension}\"." : "Nimede lõpus ei tohi olla „{extension}“.",
+ "Invalid name." : "Vigane nimi.",
"Shared by" : "Jagas",
"Shared with" : "Jagatud",
+ "Password created successfully" : "Salasõna loomine õnnestus",
+ "Error generating password from password policy" : "Viga salasõnareeglitele vastava salasõna loomisel",
"Shared with you and the group {group} by {owner}" : "Jagatud sinu ja grupiga {group} {owner} poolt",
+ "Shared with you and {circle} by {owner}" : "„{owner}“ jagas seda sinuga ja „{circle}“ tiimiga",
+ "Shared with you and the conversation {conversation} by {owner}" : "„{owner}“ jagas seda sinuga ja vestlusega „{conversation}“",
+ "Shared with you in a conversation by {owner}" : "„{owner}“ jagas seda sinuga vestluses",
"Share note" : "Jaga märget",
"Show list view" : "Näita loendivaadet",
"Show grid view" : "Näita ruudustikuvaadet",
@@ -279,7 +408,9 @@ OC.L10N.register(
"%s shared a folder with you." : "%s jagas sinuga kausta.",
"Note" : "Märge",
"Select or drop files" : "Vali või lohista failid",
+ "Uploading files" : "Failid on üleslaadimisel",
"Uploaded files:" : "Üleslaaditud failid:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Faile üleslaadides nõustud sa „%2$s“ teenuse „%1$s“ kasutustingimustega.",
"Share not found" : "Jagamist ei leidu",
"Back to %s" : "Tagasi siia: %s",
"Add to your Nextcloud" : "Lisa oma Nextcloudi",
@@ -292,14 +423,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit",
"Invalid server URL" : "Vigane serveri URL",
"Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus",
- "Files" : "Failid",
- "Download all files" : "Laadi kõik failid alla",
- "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.",
- "Password field can't be empty" : "Salasõna väli ei saa olla tühi",
- "Allow download" : "Luba allalaadimine",
- "Share expire date saved" : "Jaosmeedia aegumise kuupäev on salvestatud",
"You are not allowed to edit link shares that you don't own" : "Sa ei saa muuta lingi jagamist, mis pole sinu oma",
+ "Download all files" : "Laadi kõik failid alla",
"_1 email address already added_::_{count} email addresses already added_" : ["1 e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"]
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"],
+ "Search for share recipients" : "Otsi jaosmeedia saajaid",
+ "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.",
+ "To upload files, you need to provide your name first." : "Faili üleslaadimiseks pead esmalt oma nime sisestama.",
+ "Enter your name" : "Sisesta oma nimi",
+ "Submit name" : "Salvesta nimi",
+ "Name" : "Nimi",
+ "Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega",
+ "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus",
+ "Filename must not be empty." : "Failinimi ei saa olla tühi."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json
index 8126f506958..3926f473c7c 100644
--- a/apps/files_sharing/l10n/et_EE.json
+++ b/apps/files_sharing/l10n/et_EE.json
@@ -13,6 +13,7 @@
"You removed group {group} from {file}" : "Sa eemaldasid grupi {group} faili {file} jagamisest",
"{actor} shared {file} with group {group}" : "{actor} jagas faili {file} grupiga {group}",
"{actor} removed group {group} from {file}" : "{actor} eemaldas grupi {group} faili {file} jagamisest",
+ "Share for file {file} with group {group} expired" : "Grupile „{group}“ mõeldud jagatud fail „{file}“ aegus",
"Shared as public link" : "Jaga avaliku lingina",
"Removed public link" : "Avalik link on eemaldatud",
"Public link expired" : "Avalik link aegus",
@@ -39,71 +40,128 @@
"{actor} removed share for {user}" : "{actor} eemaldas jagamise kasutajaga {user}",
"Shared by {actor}" : "Jagatud kasutajalt {actor}",
"{actor} removed share" : "{actor} eemaldas jagamise",
+ "Share for {user} expired" : "Kasutajale „{user}“ mõeldud jaosmeedia aegus",
"Share expired" : "Jagamine aegus",
"You shared {file} with {user}" : "Sa jagasid {file} kasutajaga {user}",
"You removed {user} from {file}" : "Sa eemaldasid faili {file} jagamise kasutajaga {user} ",
+ "You removed yourself from {file}" : "Sa eemaldasid end „{file}“ failist",
+ "{actor} removed themselves from {file}" : "„{actor}“ eemaldas end „{file}“ failist",
"{actor} shared {file} with {user}" : "{actor} jagas {file} kasutajaga {user}",
"{actor} removed {user} from {file}" : "{actor} eemaldas {user} jagamise faililt {file}",
"{actor} shared {file} with you" : "{actor} jagas sinuga {file}",
"{actor} removed you from the share named {file}" : "{actor} lõpetas sinuga {file} jagamise",
+ "Share for file {file} with {user} expired" : "Kasutajale „{user}“ mõeldud jagatud fail „{file}“ aegus",
+ "Share for file {file} expired" : "„{file}“ faili jagamine aegus",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga <strong>laaditi alla</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Failid on <strong>laaditud üles</strong> kausta, mida on jagatud e-posti või avaliku lingiga",
"A file or folder was shared from <strong>another server</strong>" : "Fail või kaust jagati <strong>teisest serverist</strong>",
"Sharing" : "Jagamine",
"A file or folder has been <strong>shared</strong>" : "Fail või kaust on <strong>jagatud</strong>",
"Shared link" : "Jagatud link",
+ "Wrong share ID, share does not exist" : "Jaosmedia vigane tunnus - sellist pole olemas",
"Could not delete share" : "Ei saanud jagamist eemaldada",
"Please specify a file or folder path" : "Palun määra faili või kausta rada",
"Wrong path, file/folder does not exist" : "Vale asukoht faili või kausta pole olemas",
"Could not create share" : "Ei saanud jagamist luua",
+ "Please specify a valid account to share with" : "Palun määra korrektne kasutajakonto, kellega soovid jagada",
"Group sharing is disabled by the administrator" : "Grupiga jagamine on administraatori poolt keelatud",
"Please specify a valid group" : "Palun määra kehtiv grupp",
"Public link sharing is disabled by the administrator" : "Avaliku lingiga jagamine on administraatori poolt keelatud",
+ "Please specify a valid email address" : "Palun määra kehtiv e-posti aadress",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka „%s“ jaosmeedia salasõna jagada",
+ "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "„%1$s“ jagamine ei õnnestunud, sest server ei luba „%2$s“ tüüpi jagamisi",
+ "Please specify a valid federated account ID" : "Palun määra korrektne kasutaja liitpilves, kellega soovid jagada",
+ "Please specify a valid federated group ID" : "Palun määra korrektne grupp liitpilves, kellega soovid jagada",
"You cannot share to a Team if the app is not enabled" : "Sa ei saa jagada tiimiga, kui see rakendus pole lubatud",
"Please specify a valid team" : "Palun määratle korrektne tiim",
+ "Sharing %s failed because the back end does not support room shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta jututubadesse jagamist",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "„%s“ jagamine ei õnnestunud, sest taustateenus ei toeta ScienceMeshi meedia jagamist",
"Unknown share type" : "Tundmatu jagamise tüüp",
"Not a directory" : "Ei ole kaust",
+ "Could not lock node" : "Sõlme lukustamine ei õnnestunud",
"Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades",
"Share must at least have READ or CREATE permissions" : "jaosmeedial peavad olema vähemalt logemis- ja loomisõigused",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Kui jaosmeedial on muutmis ja kustutamisõigus, siis peab olema ka lugemisõigus",
"Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud",
- "Could not lock path" : "Ei saanud rada lukustada",
+ "Could not lock path" : "Asukoha lukustamine ei õnnestunud",
+ "no sharing rights on this item" : "selle objekti kontekstis pole jagamisõigusi",
+ "You are not allowed to edit incoming shares" : "Sul pole lubatud vastuvõetud jaosmeediat muuta",
"Wrong or no update parameter given" : "Antud vale või aegunud parameeter",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Kuna Nextcloud Talk pole serverisse paigaldatud, siis ei saanud selle teenuse abil ka jaosmeedia salasõna jagada",
+ "Custom share link tokens have been disabled by the administrator" : "Jaosmeediale oma tunnuslubade loomine pole peakasutaja poolt lubatud",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tunnuslubades peab olema vähemalt 1 tähemärk ning võib olla vaid tähti, numbreid ja sisekriipse",
+ "Invalid date. Format must be YYYY-MM-DD" : "Vigane kuupäev, vorming peab olema YYYY-MM-DD",
+ "No sharing rights on this item" : "Selle objekti kontekstis pole jagamisõigusi",
+ "Invalid share attributes provided: \"%s\"" : "Vigased jagamisatribuudid: „%s“",
+ "You are not allowed to send mail notifications" : "Sul pole lubatud e-postiga teavitusi saata",
+ "No mail notification configured for this share type" : "Selle jagamistüübi kohta pole e-posti teel saadetavat teavitust lisatud",
"Wrong password" : "Vale salasõna",
+ "Error while sending mail notification" : "Viga e-postiga teavituse saatmisel",
"Failed to generate a unique token" : "Ei õnnestunud luua unikaalset tunnusluba",
"This share does not exist or is no longer available" : "See jaosmeedia pole enam olemas või saadaval",
"shared by %s" : "jagas %s",
"Download" : "Laadi alla",
+ "Add to your %s" : "Lisa oma teenusesse: %s",
"Direct link" : "Otsene link",
"Share API is disabled" : "Jagamise API on keelatud",
"File sharing" : "Faide jagamine",
"Share will expire tomorrow" : "Jagamine aegub homme",
+ "Your share of {node} will expire tomorrow" : "Sinu „{node}“ jaosmeedia aegub homme",
+ "You received {share} as a share by {user}" : "Kasutaja „{user}“ on saatnud sulle „{share}“ jaosmeedia",
+ "You received {share} to group {group} as a share by {user}" : "Kasutaja „{user}“ on saatnud „{group}“ grupile „{share}“ jaosmeedia",
"Accept" : "Nõustu",
"Decline" : "Keeldu",
"Remember to upload the files to %s" : "Ära unusta laadida faile kausta %s",
"We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Me lahkesti tuletame sulle meelde, et sa pole veel ühtegi faili lisanud jagatud kausta.",
"Open \"%s\"" : "Ava „%s“",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "See rakendus võimaldab kasutajatel jagada Nextcloudis faile. Kui see on lubatud, saab peakasutaja valida, millised grupid võivad faile jagada. Seejärel saavad asjaomased inimesed jagada faile ja kaustu teiste kontode ja gruppidega Nextcloudis. Lisaks sellele, kui administraator lubab lingiga jagamise, saab failide jagamiseks teiste inimestega väljaspool Nextcloudi kasutada välist linki. Peakasutajad saavad ka muuta nõutavaks salasõnade ja aegumistähtaegade kasutamise ning lubada serverist serverisse jagamist jagamislinkide kaudu, samuti jagamist nutiseadmetest.\nSelle rakenduse väljalülitamine eemaldab jagatud failid ja kaustad serveris kõigi jagamise saajate jaoks ning sama ka sünkroonimisklientides ja nutirakendustes. Lisateavet leiad Nextcloudi dokumentatsioonist.",
"People" : "Inimesed",
"Filter accounts" : "Filtreeri kasutajakontosid",
+ "The request will expire on {date} at midnight and will be password protected." : "Päring aegub {date} keskööl ning on kaitstud salasõnaga.",
+ "The request will expire on {date} at midnight." : "Päring aegub {date} keskööl.",
+ "The request will be password protected." : "Päring on kaitstud salasõnaga.",
+ "When should the request expire?" : "Millal peaks see päring aeguma?",
+ "Set a submission expiration date" : "Määra aegumise kuupäev",
"Expiration date" : "Aegumise kuupäev",
"Select a date" : "Vali kuupäev",
+ "Your administrator has enforced a {count} days expiration policy." : "Sinu serveri peakasutaja on kehtestanud {count}-päevase aegumisreegli.",
+ "What password should be used for the request?" : "Mis salasõna peaks selle päringu puhul kasutama?",
"Set a password" : "Lisa salasõna",
"Password" : "Salasõna",
"Enter a valid password" : "Sisesta korrektne salasõna",
"Generate a new password" : "Loo uus salasõna",
+ "Your administrator has enforced a password protection." : "Sinu serveri peakasutaja on kehtestanud salasõna kasutamise reegli.",
+ "Automatically copying failed, please copy the share link manually" : "Automaatne kopeerimine ei toimi, palun kopeeri jagamislink käsitsi",
"Link copied to clipboard" : "Link on lõikelauale kopeeritud",
"Email already added" : "E-posti aadress on juba lisatud",
"Invalid email address" : "Vigane e-posti aadress",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Järgnev e-posti aadress pole korrektne: {emails}","Järgnevad e-posti aadressid pole korrektsed: {emails}"],
"_{count} email address already added_::_{count} email addresses already added_" : ["{count} e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"],
"_{count} email address added_::_{count} email addresses added_" : ["{count} e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"],
+ "You can now share the link below to allow people to upload files to your directory." : "Nüüd saad teistega jagada alltoodud linki ning neil on võimalik faile sinu kausta üles laadida.",
"Share link" : "Jaga link",
"Copy to clipboard" : "Kopeeri lõikepuhvrisse",
"Send link via email" : "Saada link e-kirjaga",
+ "Enter an email address or paste a list" : "Sisesta e-posti aadress või lisa loend",
+ "Remove email" : "Eemalda e-posti aadress",
+ "Select a destination" : "Vali sihtkaust",
"Select" : "Vali",
+ "What are you requesting?" : "Missugust faili soovid saada?",
+ "Request subject" : "Päringu teema",
+ "Birthday party photos, History assignment…" : "Sünnipäevapeo fotod, uurimistöö…",
+ "Where should these files go?" : "Kuhu peaksid need failid sattuma?",
+ "Upload destination" : "Üleslaadimise sihtkaust",
+ "Revert to default" : "Kasuta vaikimisi kausta",
+ "The uploaded files are visible only to you unless you choose to share them." : "Kui sa just neid edasi ei jaga, siis on üleslaaditud failid nähtavad vaid sulle.",
"Add a note" : "Lisa märge",
"Note for recipient" : "Märge saajale",
- "Add a note to help people understand what you are requesting." : "Lisa teise osapoole jaoks märge, mis aitab neil mõista, missugust faili sa temalt soovid.",
+ "Add a note to help people understand what you are requesting." : "Lisa teise osapoole jaoks märge, mis aitab tal mõista, missugust faili sa temalt soovid.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Lisa teise osapoole jaoks linke, kuupäevi või muud teavet, mis aitab tal mõista, missugust faili sa temalt soovid.",
"Close" : "Sulge",
"_Send email and close_::_Send {count} emails and close_" : ["Saada e-kiri ja sulge","Saada {count} e-kirja ja sulge"],
"Please select a folder, you cannot share the root directory." : "Palun vali kaust ülaltpool - sa ei saa jagada juurkausta.",
+ "File request created" : "Failipäring on loodud",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Failipäring on loodud ja e-kiri on saadetud","Failipäring on loodud ja {count} e-kirja on saadetud"],
"Error creating the share: {errorMessage}" : "Viga jaosmeedia loomisel: {errorMessage}",
"Error creating the share" : "Viga jaosmeedia loomisel",
"Error sending emails: {errorMessage}" : "Viga e-kirjade saatmisel: {errorMessage}",
@@ -118,13 +176,14 @@
"Close without sending emails" : "Sulge ilma e-kirju saatmata",
"Continue" : "Jätka",
"Error while toggling options" : "Viga valikute sisse/välja lülitamisel",
+ "Accept shares from other accounts and groups by default" : "Aktsepteeri vaikimisi muude kasutajakontode ja rühmade jagamisi automaatselt",
"Choose a default folder for accepted shares" : "Vali vaikimisi kaust jaosmeedia vastuvõtmiseks",
"Invalid path selected" : "Vigane asukoht on valitud",
"Unknown error" : "Tundmatu viga",
"Set default folder for accepted shares" : "Määra vastuvõetava jaosmeedia jaoks vaikimisi kaust",
"Reset" : "Lähtesta",
"Reset folder to system default" : "Kasuta süsteemi vaikimisi kausta",
- "Share expiration: " : "Jagamise aegumine:",
+ "Share expiration: {date}" : "Jagamise aegumine: {date}",
"Share Expiration" : "Jagamise aegumine",
"group" : "grupp",
"conversation" : "vestlus",
@@ -132,8 +191,12 @@
"remote group" : "Kauggrupp",
"guest" : "külaline",
"by {initiator}" : "kasutajalt {initiator}",
+ "Shared with the group {user} by {owner}" : "„{owner}“ jagas seda sinuga ja „{user}“ grupiga",
+ "Shared with the conversation {user} by {owner}" : "„{owner}“ jagas seda vestluses „{user}“ grupiga või kasutajaga",
+ "Shared with {user} by {owner}" : "„{owner}“ jagas seda „{user}“ kasutajaga",
"Open Sharing Details" : "Ava jaosmeedia üksikasjad",
"Added by {initiator}" : "Selle lisas {initiator}",
+ "Via “{folder}”" : "„{folder}“ kausta kaudu",
"Unshare" : "Lõpeta jagamine",
"Cannot copy, please copy the link manually" : "Ei saa kopeerida, palun kopeeri link käsitsi",
"Copy internal link to clipboard" : "Kopeeri sisemine link lõikelauale",
@@ -141,10 +204,20 @@
"Only works for people with access to this file" : "Toimib vaid kasutajate puhul, kellel on ligipääs sellele failile",
"Link copied" : "Link kopeeritud",
"Internal link" : "Sisemine link",
+ "{shareWith} by {initiator}" : "{shareWith} kasutajalt {initiator}",
+ "Shared via link by {initiator}" : "„{initiator}“ jagas seda lingiga",
+ "File request ({label})" : "Failipäring ({label})",
+ "Mail share ({label})" : "Jagamine e-kirjaga ({label})",
"Share link ({label})" : "Jagamise link ({label})",
+ "Mail share" : "E-posti jagamine",
"Share link ({index})" : "Jagamise link ({index})",
"Create public link" : "Loo avalik link",
+ "Actions for \"{title}\"" : "„{title}“ tegevused",
+ "Copy public link of \"{title}\" to clipboard" : "Kopeeri „{title}“ avalik link lõikelauale",
+ "Error, please enter proper password and/or expiration date" : "Viga, palun sisesta korrektne salasõna ja/või aegumise kuupäev",
+ "Link share created" : "Lingi jagamine on loodud",
"Error while creating the share" : "Viga jaosmeedia loomisel",
+ "Please enter the following required information before creating the share" : "Enne jaosmeedia loomist palun sisesta järgmine vajalik teave",
"Password protection (enforced)" : "Paroolikaitse (jõustatud)",
"Password protection" : "Password protection",
"Enter a password" : "Enter a password",
@@ -157,17 +230,23 @@
"Generate QR code" : "Loo QR-kood",
"Add another link" : "Lisa veel üks link",
"Create a new share link" : "Loo uus jagamislink",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Kiirjagamise valikud, hetkel on valitud „{selectedOption}“",
"View only" : "Ainult vaatamine",
- "Can edit" : "Võib redigeerida",
+ "Can edit" : "Võib muuta",
+ "Custom permissions" : "Kohandatud õigused",
"Resharing is not allowed" : "Edasijagamine pole lubatud",
"Name or email …" : "Nimi või e-posti aadress…",
"Name, email, or Federated Cloud ID …" : "Nimi, e-posti aadress või liitpilve kasutajatunnus…",
- "Searching …" : "Otsin ...",
+ "Searching …" : "Otsin...",
+ "No elements found." : "Elemente ei leidu.",
+ "Search globally" : "Otsi kõikjalt",
"Guest" : "Külaline",
"Group" : "Grupp",
"Email" : "Epost",
"Team" : "Tiim",
"Talk conversation" : "Talk suhtlus",
+ "Deck board" : "Kanbani tahvel",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : " {server}",
"Enter external recipients" : "Lisa välised saajad",
"Search for internal recipients" : "Otsi rakendusesiseseid saajaid",
@@ -176,12 +255,9 @@
"File drop" : "Failiedastus",
"Upload files to {foldername}." : "Laadi failid üles kausta {foldername}.",
"By uploading files, you agree to the terms of service." : "Faile üleslaadides nõustud sa kasutustingimustega.",
+ "Successfully uploaded files" : "Failide üleslaadimine õnnestus",
"View terms of service" : "Vaata kasutustingimusi",
"Terms of service" : "Kasutustingimused",
- "Upload files to {folder}" : "Laadi failid üles kausta {folder}",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jagas sinuga kausta.",
- "Name" : "Nimi",
- "Enter your name" : "Sisesta oma nimi",
"Share with {userName}" : "Jaga kasutajaga {userName}",
"Share with email {email}" : "Jaga e-posti aadressile {email}",
"Share with group" : "Jaga grupiga",
@@ -193,7 +269,7 @@
"Save share" : "Salvesta jaosmeedia",
"Read" : "Lugemine",
"Create" : "Lisa",
- "Edit" : "Redigeeri",
+ "Edit" : "Muuda",
"Share" : "Jaga",
"Delete" : "Kustuta",
"Password field cannot be empty" : "Salasõna väli ei saa olla tühi",
@@ -205,11 +281,13 @@
"Advanced settings" : "Lisavalikud",
"Share label" : "Jaga silti",
"Share link token" : "Jagamislingi tunnusluba",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Sisesta avaliku jagamislingi jaoks midagi lihtsalt meeldejäetavat või genereeri uus tunnusluba. Kui link viitab delikaatsetele andmetele, siis palun ära kasuta kergesti aimatavaid tunnuslube.",
"Generating…" : "Loomisel…",
"Generate new token" : "Loo uus tunnusluba",
"Set password" : "Määra salasõna",
"Password expires {passwordExpirationTime}" : "Salasõna aegub {passwordExpirationTime}",
"Password expired" : "Salasõna on aegunud",
+ "Video verification" : "Verifitseerimine videoga",
"Expiration date (enforced)" : "Aegumise kuupäev (jõustatud)",
"Set expiration date" : "Määra aegumise kuupäev",
"Hide download" : "Peida allalaaditu",
@@ -218,25 +296,41 @@
"Enter a note for the share recipient" : "Lisa märkus jaosmeedia saajale",
"Show files in grid view" : "Näita faile ruudustikuvaates",
"Delete share" : "Kustuta jagamine",
+ "Others with access" : "Teised, kellel on ligipääs",
+ "No other accounts with access found" : "Teisi ligipääsuga kasutajakontosid ei leidu",
+ "Toggle list of others with access to this directory" : "Näita teisi, kellele on ligipääs sellele kaustale või peida nad",
+ "Toggle list of others with access to this file" : "Näita teisi, kellele on ligipääs sellele failile või peida nad",
+ "Unable to fetch inherited shares" : "Päritud jaosmeedia laadimine ei õnnestu",
"Link shares" : "Jaoslingid",
"Shares" : "Jagamisi",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Kasuta seda jagamismeetodit jagamisel oma organisatsiooni kasutajatega ja tiimidega. Kui kasutajal juba on jaosmeediale ligipääs, kuid ei suuad seda leida, siis lihtsuse mõttes saada talle süsteemisisene jagamislink.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Kasuta seda meetodit failide jagamiset erinevate inimeste ja organisatsioonidega väljaspool seda serverit. Faile ja kaustu saad jagada avaliku jaosmeedia abil, kui e-posti teel jagamisel. Lisaks saad jagada kasutajatele muudes Nextcloudi serverites ehk liitpilves.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Jaosmeedia, mis pole sisemise või välise jagamise osa. Näiteks jagamine rakendustest või muudest allikatest.",
+ "Share with accounts, teams, federated cloud IDs" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega",
+ "Share with accounts and teams" : "Jaga kasutajate ja tiimidega",
+ "Federated cloud ID" : "Liitpilve tunnus",
+ "Email, federated cloud ID" : "E-posti aadress, liitpilve kasutajatunnus",
+ "Unable to load the shares list" : "Jaosmeedia loendi laadimine ei õnnestu",
"Expires {relativetime}" : "Aegub {relativetime}",
"this share just expired." : "see jagamine aegus äsja",
"Shared with you by {owner}" : "Jagatud sinuga {owner} poolt",
"Internal shares" : "Sisemised jaoskaustad",
"Internal shares explanation" : "Sisemiste jaoskaustade selgitus",
- "Share with accounts and teams" : "Jaga kasutajate ja tiimidega",
"External shares" : "Välised jaoskaustad",
"External shares explanation" : "Väliste jaoskaustade selgitus",
- "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus",
"Additional shares" : "Täiendavad jaoskaustad",
"Additional shares explanation" : "Täiendavate jaoskaustade selgitus",
+ "Link to a file" : "Link failile",
+ "_Accept share_::_Accept shares_" : ["Võta jaosmeedia vastu","Võta jaosmeedia vastu"],
"Open in Files" : "Ava failirakenduses",
+ "_Reject share_::_Reject shares_" : ["Keeldu jaosmeediast","Keeldu jaosmeediast"],
+ "_Restore share_::_Restore shares_" : ["Taasta jaosmeedia","Taasta jaosmeedia"],
"Shared" : "Jagatud",
"Shared by {ownerDisplayName}" : "Jagaja: {ownerDisplayName}",
"Shared multiple times with different people" : "Jagatud mitu korda eri kasutajate poolt",
"Show sharing options" : "Näita jagamise valikuid",
"Shared with others" : "Teistega jagatud",
+ "Create file request" : "Koosta failipäring",
"Upload files to {foldername}" : "Laadi failid üles kausta {foldername}",
"Public file share" : "Avalikud jaosfailid",
"Publicly shared file." : "Avalikult jagatud fail.",
@@ -246,19 +340,38 @@
"Publicly shared files." : "Avalikult jagatud failid.",
"No files" : "Faile pole",
"Files and folders shared with you will show up here" : "Sinuga jagatud failid ja kaustad on siin nähtavad",
+ "Overview of shared files." : "Jagatud failide ülevaade.",
"No shares" : "Jagamisi pole",
+ "Files and folders you shared or have been shared with you will show up here" : "Sinu poolt jagatud ning sinuga jagatud failid ja kaustad saavad olema nähtavad siin",
"Shared with you" : "Sinuga jagatud",
+ "List of files that are shared with you." : "Sinuga jagatud failide loend.",
"Nothing shared with you yet" : "Sinuga pole veel midagi jagatud",
+ "Files and folders others shared with you will show up here" : "Sinuga jagatud failid ja kaustad saavad olema nähtavad siin",
+ "List of files that you shared with others." : "Sinu poolt teisega jagatud failide loend.",
"Nothing shared yet" : "Midagi pole veel jagatud",
+ "Files and folders you shared will show up here" : "Sinu poolt jagatud failid ja kaustad saavad olema nähtavad siin",
"Shared by link" : "Jagatud lingiga",
+ "List of files that are shared by link." : "Lingiga jagatud failide loend.",
"No shared links" : "Jagatud linke pole",
+ "Files and folders you shared by link will show up here" : "Sinu poolt lingiga jagatud failid ja kaustad saavad olema nähtavad siin",
"File requests" : "Failipäringud",
"List of file requests." : "Failipäringute loend.",
"No file requests" : "Failipäringuid ei leidu",
+ "File requests you have created will show up here" : "Sinu loodud failipäringud saavad olema nähtavad siin.",
"Deleted shares" : "Kustutatud jagamised",
+ "List of shares you left." : "Jaosmeedia loend, kust sa oled lahkunud.",
"No deleted shares" : "Kustutatud jagamisi pole",
+ "Shares you have left will show up here" : "Jaosmeedia loend, kust sa oled lahkunud, saab olema nähtav siin",
"Pending shares" : "Ootel jagamised",
+ "List of unapproved shares." : "Vastuvõtmata jaosmeedia loend.",
"No pending shares" : "Ootel jagamisi pole",
+ "Shares you have received but not approved will show up here" : "Jaosmeedia, mille oled saanud, kuid pole nõustunud, saab olema nähtav siin",
+ "Error deleting the share: {errorMessage}" : "Viga jagamise kustutamisel: {errorMessage}",
+ "Error deleting the share" : "Viga jagamise kustutamisel",
+ "Error updating the share: {errorMessage}" : "Viga jaosmeedia uuendamisel: {errorMessage}",
+ "Error updating the share" : "Viga jaosmeedia uuendamisel",
+ "File \"{path}\" has been unshared" : "„{path}“ faili jagamine on lõpetatud",
+ "Folder \"{path}\" has been unshared" : "„{path}“ kausta jagamine on lõpetatud",
"Could not update share" : "Jaosmeedia andmete uuendamine ei õnnestunud",
"Share saved" : "Jaosmeedia andmed on salvestatud",
"Share expiry date saved" : "Jaosmeedia aegumise kuupäev on salvestatud",
@@ -267,9 +380,25 @@
"Share note for recipient saved" : "Jaosmeedia märge saajale on salvestatud",
"Share password saved" : "Jaosmeedia salasõna on salvestatud",
"Share permissions saved" : "Jaosmeedia õigused on salvestatud",
+ "To upload files to {folder}, you need to provide your name first." : "Laadimaks faile {folder} kausta, pead esmalt sisestama oma nime",
+ "Upload files to {folder}" : "Laadi failid üles kausta {folder}",
+ "Please confirm your name to upload files to {folder}" : "Laadimaks faile {folder} kausta, palun kinnita oma nimi",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jagas sinuga kausta.",
+ "Names must not be empty." : "Nimed ei tohi ollla tühjad.",
+ "Names must not start with a dot." : "Nime alguses ei tohi olla punkti.",
+ "\"{char}\" is not allowed inside a name." : "„{char}“ pole failinimedes lubatud.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}“ on reserveeritud nimi ja seda ei saa kasutada.",
+ "\"{extension}\" is not an allowed name." : "„{extension}“ pole lubatud nimi.",
+ "Names must not end with \"{extension}\"." : "Nimede lõpus ei tohi olla „{extension}“.",
+ "Invalid name." : "Vigane nimi.",
"Shared by" : "Jagas",
"Shared with" : "Jagatud",
+ "Password created successfully" : "Salasõna loomine õnnestus",
+ "Error generating password from password policy" : "Viga salasõnareeglitele vastava salasõna loomisel",
"Shared with you and the group {group} by {owner}" : "Jagatud sinu ja grupiga {group} {owner} poolt",
+ "Shared with you and {circle} by {owner}" : "„{owner}“ jagas seda sinuga ja „{circle}“ tiimiga",
+ "Shared with you and the conversation {conversation} by {owner}" : "„{owner}“ jagas seda sinuga ja vestlusega „{conversation}“",
+ "Shared with you in a conversation by {owner}" : "„{owner}“ jagas seda sinuga vestluses",
"Share note" : "Jaga märget",
"Show list view" : "Näita loendivaadet",
"Show grid view" : "Näita ruudustikuvaadet",
@@ -277,7 +406,9 @@
"%s shared a folder with you." : "%s jagas sinuga kausta.",
"Note" : "Märge",
"Select or drop files" : "Vali või lohista failid",
+ "Uploading files" : "Failid on üleslaadimisel",
"Uploaded files:" : "Üleslaaditud failid:",
+ "By uploading files, you agree to the %1$sterms of service%2$s." : "Faile üleslaadides nõustud sa „%2$s“ teenuse „%1$s“ kasutustingimustega.",
"Share not found" : "Jagamist ei leidu",
"Back to %s" : "Tagasi siia: %s",
"Add to your Nextcloud" : "Lisa oma Nextcloudi",
@@ -290,14 +421,18 @@
"No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit",
"Invalid server URL" : "Vigane serveri URL",
"Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus",
- "Files" : "Failid",
- "Download all files" : "Laadi kõik failid alla",
- "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.",
- "Password field can't be empty" : "Salasõna väli ei saa olla tühi",
- "Allow download" : "Luba allalaadimine",
- "Share expire date saved" : "Jaosmeedia aegumise kuupäev on salvestatud",
"You are not allowed to edit link shares that you don't own" : "Sa ei saa muuta lingi jagamist, mis pole sinu oma",
+ "Download all files" : "Laadi kõik failid alla",
"_1 email address already added_::_{count} email addresses already added_" : ["1 e-posti aadress on juba lisatud","{count} e-posti aadressi on juba lisatud"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"]
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-posti aadress on lisatud","{count} e-posti aadressi on lisatud"],
+ "Search for share recipients" : "Otsi jaosmeedia saajaid",
+ "No recommendations. Start typing." : "Soovitusi pole. Alusta trükkimist.",
+ "To upload files, you need to provide your name first." : "Faili üleslaadimiseks pead esmalt oma nime sisestama.",
+ "Enter your name" : "Sisesta oma nimi",
+ "Submit name" : "Salvesta nimi",
+ "Name" : "Nimi",
+ "Share with accounts, teams, federated cloud id" : "Jaga kasutajatega, tiimidega ja liitpilves osalejatega",
+ "Email, federated cloud id" : "E-posti aadress, liitpilve kasutajatunnus",
+ "Filename must not be empty." : "Failinimi ei saa olla tühi."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/eu.js b/apps/files_sharing/l10n/eu.js
index cb02327f28b..cf72b25ce3a 100644
--- a/apps/files_sharing/l10n/eu.js
+++ b/apps/files_sharing/l10n/eu.js
@@ -90,6 +90,8 @@ OC.L10N.register(
"You are not allowed to edit incoming shares" : "Ez duzu baimenik zuri partekaturikoak editatzeko",
"Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.",
+ "Custom share link tokens have been disabled by the administrator" : "Administratzaileak esteka pertsonalizatuen tokenak sortzeko aukera ezgaitu du",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokenek gutxienez karaktere 1 izan behar dute, eta letrak, zenbakiak edo marratxo bat baino ezin dituzte eduki",
"Invalid date. Format must be YYYY-MM-DD" : "Data baliogabea. UUU-HH-EE gisako formatua izan behar du",
"No sharing rights on this item" : "Ez dago baimenik fitxategi hau partekatzeko",
"Invalid share attributes provided: \"%s\"" : "Baliogabeko partekatze atributuak eman dira: \"%s\"",
@@ -97,6 +99,7 @@ OC.L10N.register(
"No mail notification configured for this share type" : "Partekatze mota honentzat ez dago email jakinarazpenik konfiguratuta",
"Wrong password" : "Pasahitz okerra",
"Error while sending mail notification" : "Errorea email jakinarazpena bidaltzean",
+ "Failed to generate a unique token" : "Ezin izan da token bakar bat sortu",
"This share does not exist or is no longer available" : "Partekatze hau ez dago edo jada ez dago erabilgarri",
"shared by %s" : "%s erabiltzaileak partekatua",
"Download" : "Deskargatu",
@@ -182,6 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Ezarri onartutako partekatzeen karpeta lehenetsia",
"Reset" : "Berrezarri",
"Reset folder to system default" : "Berrezarri karpeta sistemaren balio lehenetsietara",
+ "Share Expiration" : "Partekatzearen iraungitze-data",
"group" : "taldea",
"conversation" : "elkarrizketa",
"remote" : "urrunekoa",
@@ -245,19 +249,16 @@ OC.L10N.register(
"Deck board" : "Deck mahaia",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} zerbitzarian",
+ "Enter external recipients" : "Sartu kanpoko hartzaileak",
+ "Search for internal recipients" : "Bilatu barruko hartzaileak",
"Note from" : "Oharra bidali du",
"Note:" : "Oharra:",
"File drop" : "Fitxategiak jaregin",
"Upload files to {foldername}." : "Igo fitxategiak {foldername}(e)ra.",
"By uploading files, you agree to the terms of service." : "Fitxategiak igotzean, zerbitzu-baldintzak onartzen dituzu.",
+ "Successfully uploaded files" : "Fitxategiak ongi igo dira",
"View terms of service" : "Ikusi zerbitzu-balditzak",
"Terms of service" : "Erabilera baldintzak",
- "Upload files to {folder}" : "Igo fitxategiak {folder}(e)ra",
- "Submit name" : "Sartu izena",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}-k zurekin karpeta bat partekatu du.",
- "To upload files, you need to provide your name first." : "Fitxategiak igotzeko, zure izena eman behar duzu lehenik.",
- "Name" : "Izena",
- "Enter your name" : "Sartu zure izena",
"Share with {userName}" : "Partekatu {userName}-rekin",
"Share with email {email}" : "Partekatu helbide elektronikoarekin {email}",
"Share with group" : "Partekatu taldearekin",
@@ -272,12 +273,18 @@ OC.L10N.register(
"Edit" : "Aldatu",
"Share" : "Partekatu",
"Delete" : "Ezabatu",
+ "Password field cannot be empty" : "Pasahitz-eremua ezin da hutsik egon",
"Replace current password" : "Aldatu uneko pasahitza",
+ "Failed to generate a new token" : "Ezin izan da token berri bat sortu",
"Allow upload and editing" : "Onartu igotzea eta editatzea",
"Allow editing" : "Baimendu editatzea",
"Upload only" : "Igoera soilik",
"Advanced settings" : "Ezarpen aurreratuak",
"Share label" : "Partekatu etiketa",
+ "Share link token" : "Partekatzeko esteka-tokena",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ezarri partekatze-estekaren token publikoa gogoratzeko erraza den zerbait, edo sortu token berria. Ez da gomendagarria informazio sentikorra duten partekatzeetako tokenak asma daitezkeenak erabiltzea.",
+ "Generating…" : "Sortzen...",
+ "Generate new token" : "Sortu token berria",
"Set password" : "Pasahitza ezarri",
"Password expires {passwordExpirationTime}" : "Pasahitza {passwordExpirationTime} iraungiko da",
"Password expired" : "Pasahitza iraungi da",
@@ -288,6 +295,7 @@ OC.L10N.register(
"Allow download and sync" : "Baimendu deskargatu eta sinkronizatzea",
"Note to recipient" : "Oharra hartzailearentzat",
"Enter a note for the share recipient" : "Sartu ohar bat partekatzearen hartzailearentzat",
+ "Show files in grid view" : "Erakutsi fitxategiak sareta ikuspegian",
"Delete share" : "Ezabatu partekatzea",
"Others with access" : "Sarbidea duten beste erabiltzaileak",
"No other accounts with access found" : "Ez da aurkitu sarbidea duen beste konturik",
@@ -296,10 +304,22 @@ OC.L10N.register(
"Unable to fetch inherited shares" : "Ezin izan dira heredatutako partekatzeak eskuratu",
"Link shares" : "Lotu partekatzeak",
"Shares" : "Partekatzeak",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Erabili metodo hau zure erakundeko banako edo taldeekin fitxategiak partekatzeko. Hartzaileak dagoeneko baimena badu partekatutako elementurako baina ezin badu aurkitu, bidali iezaiozu barneko partekatze-esteka, sarbidea errazteko.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Erabili metodo hau zure erakundeaz kanpoko banako edo erakundeekin fitxategiak partekatzeko. Fitxategiak eta karpetak parteka ditzakezu esteka publikoen bidez edo helbide elektronikoen bidez. Bestelako Nextcloud kontuetara ere parteka ditzakezu, beste instantziatan daudenak, haien federatutako hodeiaren ID-a erabiliz.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Barneko zein kanpoko partekatzeetan sartzen ez diren partekatzeak. Hauetakoren bat aplikazioetatik edo beste iturri batzuetatik etorritako partekatzeak izan daitezke.",
+ "Share with accounts, teams, federated cloud IDs" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin",
+ "Share with accounts and teams" : "Partekatu kontuekin eta taldeekin",
+ "Email, federated cloud ID" : "Posta elektroniko, federatutako hodeien ID",
"Unable to load the shares list" : "Ezin izan da partekatzeen zerrenda kargatu",
"Expires {relativetime}" : "Iraungitzea: {relativetime}",
"this share just expired." : "partekatze hau oraintxe iraungi da.",
"Shared with you by {owner}" : "{owner} erabiltzaileak zurekin partekatua",
+ "Internal shares" : "Barneko partekatzeak",
+ "Internal shares explanation" : "Barneko partekatzeen azalpena ",
+ "External shares" : "Kanpoko sareak",
+ "External shares explanation" : "Kanpoko partekatzeen azalpena",
+ "Additional shares" : "Partekatze gehigarriak",
+ "Additional shares explanation" : "Partekatze gehigarrien azalpena",
"Link to a file" : "Esteka fitxategi batera",
"_Accept share_::_Accept shares_" : ["Onartu partekatzea","Onartu partekatzeak"],
"Open in Files" : "Ireki Fitxategiak aplikazioan",
@@ -346,6 +366,7 @@ OC.L10N.register(
"List of unapproved shares." : "Onartu gabeko partekatzeen zerrenda.",
"No pending shares" : "Ez dago zain dagoen partekatzerik",
"Shares you have received but not approved will show up here" : "Jaso dituzun baina berretsi gabe dauden partekatzeak hemen agertukon dira",
+ "Error deleting the share" : "Errorea partekatzea ezabatzean",
"Error updating the share: {errorMessage}" : " Errorea partekatzea eguneratzean {errorMessage}",
"Error updating the share" : "Errorea partekatzea eguneratzen",
"File \"{path}\" has been unshared" : "\"{path}\" fitxategiaren partekatzea eten da",
@@ -358,6 +379,8 @@ OC.L10N.register(
"Share note for recipient saved" : "Partekatutako oharra hartzailearentzat gordeta",
"Share password saved" : "Partekatu pasahitza gorde da",
"Share permissions saved" : "Partekatze baimenak gordeta",
+ "Upload files to {folder}" : "Igo fitxategiak {folder}(e)ra",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}-k zurekin karpeta bat partekatu du.",
"Shared by" : "Honek partekatua",
"Shared with" : "Honekin partekatua",
"Password created successfully" : "Pasahitza ongi sortu da",
@@ -388,14 +411,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Ez da zerbitzari bateragarririk aurkitu {remote} helbidean",
"Invalid server URL" : "Zerbitzari URL baliogabea",
"Failed to add the public link to your Nextcloud" : "Huts egin du esteka publikoa zure Nextcloudera gehitzean",
- "Files" : "Fitxategiak",
+ "You are not allowed to edit link shares that you don't own" : "Ezin dituzu editatu zureak ez diren partekatze estekak",
"Download all files" : "Deskargatu fitxategi guztiak",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko 1 gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"],
+ "_1 email address added_::_{count} email addresses added_" : ["Helbide elektroniko 1 gehitu da","{count} helbide elektroniko gehitu dira"],
"Search for share recipients" : "Bilatu partekatze-hartzaileak",
"No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten.",
- "Allow download" : "Baimendu deskarga",
- "Share expire date saved" : "Partekatzearen iraungitze data gordeta",
- "You are not allowed to edit link shares that you don't own" : "Ezin dituzu editatu zureak ez diren partekatze estekak",
- "_1 email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko 1 gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"],
- "_1 email address added_::_{count} email addresses added_" : ["Helbide elektroniko 1 gehitu da","{count} helbide elektroniko gehitu dira"]
+ "To upload files, you need to provide your name first." : "Fitxategiak igotzeko, zure izena eman behar duzu lehenik.",
+ "Enter your name" : "Sartu zure izena",
+ "Submit name" : "Sartu izena",
+ "Name" : "Izena",
+ "Share with accounts, teams, federated cloud id" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin",
+ "Email, federated cloud id" : "Posta elektroniko, federatutako hodeien ID",
+ "Filename must not be empty." : "Fitxategi-izenak ez du hutsik egon behar."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/eu.json b/apps/files_sharing/l10n/eu.json
index 01e001a7624..7a95522389d 100644
--- a/apps/files_sharing/l10n/eu.json
+++ b/apps/files_sharing/l10n/eu.json
@@ -88,6 +88,8 @@
"You are not allowed to edit incoming shares" : "Ez duzu baimenik zuri partekaturikoak editatzeko",
"Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.",
+ "Custom share link tokens have been disabled by the administrator" : "Administratzaileak esteka pertsonalizatuen tokenak sortzeko aukera ezgaitu du",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokenek gutxienez karaktere 1 izan behar dute, eta letrak, zenbakiak edo marratxo bat baino ezin dituzte eduki",
"Invalid date. Format must be YYYY-MM-DD" : "Data baliogabea. UUU-HH-EE gisako formatua izan behar du",
"No sharing rights on this item" : "Ez dago baimenik fitxategi hau partekatzeko",
"Invalid share attributes provided: \"%s\"" : "Baliogabeko partekatze atributuak eman dira: \"%s\"",
@@ -95,6 +97,7 @@
"No mail notification configured for this share type" : "Partekatze mota honentzat ez dago email jakinarazpenik konfiguratuta",
"Wrong password" : "Pasahitz okerra",
"Error while sending mail notification" : "Errorea email jakinarazpena bidaltzean",
+ "Failed to generate a unique token" : "Ezin izan da token bakar bat sortu",
"This share does not exist or is no longer available" : "Partekatze hau ez dago edo jada ez dago erabilgarri",
"shared by %s" : "%s erabiltzaileak partekatua",
"Download" : "Deskargatu",
@@ -180,6 +183,7 @@
"Set default folder for accepted shares" : "Ezarri onartutako partekatzeen karpeta lehenetsia",
"Reset" : "Berrezarri",
"Reset folder to system default" : "Berrezarri karpeta sistemaren balio lehenetsietara",
+ "Share Expiration" : "Partekatzearen iraungitze-data",
"group" : "taldea",
"conversation" : "elkarrizketa",
"remote" : "urrunekoa",
@@ -243,19 +247,16 @@
"Deck board" : "Deck mahaia",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} zerbitzarian",
+ "Enter external recipients" : "Sartu kanpoko hartzaileak",
+ "Search for internal recipients" : "Bilatu barruko hartzaileak",
"Note from" : "Oharra bidali du",
"Note:" : "Oharra:",
"File drop" : "Fitxategiak jaregin",
"Upload files to {foldername}." : "Igo fitxategiak {foldername}(e)ra.",
"By uploading files, you agree to the terms of service." : "Fitxategiak igotzean, zerbitzu-baldintzak onartzen dituzu.",
+ "Successfully uploaded files" : "Fitxategiak ongi igo dira",
"View terms of service" : "Ikusi zerbitzu-balditzak",
"Terms of service" : "Erabilera baldintzak",
- "Upload files to {folder}" : "Igo fitxategiak {folder}(e)ra",
- "Submit name" : "Sartu izena",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}-k zurekin karpeta bat partekatu du.",
- "To upload files, you need to provide your name first." : "Fitxategiak igotzeko, zure izena eman behar duzu lehenik.",
- "Name" : "Izena",
- "Enter your name" : "Sartu zure izena",
"Share with {userName}" : "Partekatu {userName}-rekin",
"Share with email {email}" : "Partekatu helbide elektronikoarekin {email}",
"Share with group" : "Partekatu taldearekin",
@@ -270,12 +271,18 @@
"Edit" : "Aldatu",
"Share" : "Partekatu",
"Delete" : "Ezabatu",
+ "Password field cannot be empty" : "Pasahitz-eremua ezin da hutsik egon",
"Replace current password" : "Aldatu uneko pasahitza",
+ "Failed to generate a new token" : "Ezin izan da token berri bat sortu",
"Allow upload and editing" : "Onartu igotzea eta editatzea",
"Allow editing" : "Baimendu editatzea",
"Upload only" : "Igoera soilik",
"Advanced settings" : "Ezarpen aurreratuak",
"Share label" : "Partekatu etiketa",
+ "Share link token" : "Partekatzeko esteka-tokena",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Ezarri partekatze-estekaren token publikoa gogoratzeko erraza den zerbait, edo sortu token berria. Ez da gomendagarria informazio sentikorra duten partekatzeetako tokenak asma daitezkeenak erabiltzea.",
+ "Generating…" : "Sortzen...",
+ "Generate new token" : "Sortu token berria",
"Set password" : "Pasahitza ezarri",
"Password expires {passwordExpirationTime}" : "Pasahitza {passwordExpirationTime} iraungiko da",
"Password expired" : "Pasahitza iraungi da",
@@ -286,6 +293,7 @@
"Allow download and sync" : "Baimendu deskargatu eta sinkronizatzea",
"Note to recipient" : "Oharra hartzailearentzat",
"Enter a note for the share recipient" : "Sartu ohar bat partekatzearen hartzailearentzat",
+ "Show files in grid view" : "Erakutsi fitxategiak sareta ikuspegian",
"Delete share" : "Ezabatu partekatzea",
"Others with access" : "Sarbidea duten beste erabiltzaileak",
"No other accounts with access found" : "Ez da aurkitu sarbidea duen beste konturik",
@@ -294,10 +302,22 @@
"Unable to fetch inherited shares" : "Ezin izan dira heredatutako partekatzeak eskuratu",
"Link shares" : "Lotu partekatzeak",
"Shares" : "Partekatzeak",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Erabili metodo hau zure erakundeko banako edo taldeekin fitxategiak partekatzeko. Hartzaileak dagoeneko baimena badu partekatutako elementurako baina ezin badu aurkitu, bidali iezaiozu barneko partekatze-esteka, sarbidea errazteko.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Erabili metodo hau zure erakundeaz kanpoko banako edo erakundeekin fitxategiak partekatzeko. Fitxategiak eta karpetak parteka ditzakezu esteka publikoen bidez edo helbide elektronikoen bidez. Bestelako Nextcloud kontuetara ere parteka ditzakezu, beste instantziatan daudenak, haien federatutako hodeiaren ID-a erabiliz.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Barneko zein kanpoko partekatzeetan sartzen ez diren partekatzeak. Hauetakoren bat aplikazioetatik edo beste iturri batzuetatik etorritako partekatzeak izan daitezke.",
+ "Share with accounts, teams, federated cloud IDs" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin",
+ "Share with accounts and teams" : "Partekatu kontuekin eta taldeekin",
+ "Email, federated cloud ID" : "Posta elektroniko, federatutako hodeien ID",
"Unable to load the shares list" : "Ezin izan da partekatzeen zerrenda kargatu",
"Expires {relativetime}" : "Iraungitzea: {relativetime}",
"this share just expired." : "partekatze hau oraintxe iraungi da.",
"Shared with you by {owner}" : "{owner} erabiltzaileak zurekin partekatua",
+ "Internal shares" : "Barneko partekatzeak",
+ "Internal shares explanation" : "Barneko partekatzeen azalpena ",
+ "External shares" : "Kanpoko sareak",
+ "External shares explanation" : "Kanpoko partekatzeen azalpena",
+ "Additional shares" : "Partekatze gehigarriak",
+ "Additional shares explanation" : "Partekatze gehigarrien azalpena",
"Link to a file" : "Esteka fitxategi batera",
"_Accept share_::_Accept shares_" : ["Onartu partekatzea","Onartu partekatzeak"],
"Open in Files" : "Ireki Fitxategiak aplikazioan",
@@ -344,6 +364,7 @@
"List of unapproved shares." : "Onartu gabeko partekatzeen zerrenda.",
"No pending shares" : "Ez dago zain dagoen partekatzerik",
"Shares you have received but not approved will show up here" : "Jaso dituzun baina berretsi gabe dauden partekatzeak hemen agertukon dira",
+ "Error deleting the share" : "Errorea partekatzea ezabatzean",
"Error updating the share: {errorMessage}" : " Errorea partekatzea eguneratzean {errorMessage}",
"Error updating the share" : "Errorea partekatzea eguneratzen",
"File \"{path}\" has been unshared" : "\"{path}\" fitxategiaren partekatzea eten da",
@@ -356,6 +377,8 @@
"Share note for recipient saved" : "Partekatutako oharra hartzailearentzat gordeta",
"Share password saved" : "Partekatu pasahitza gorde da",
"Share permissions saved" : "Partekatze baimenak gordeta",
+ "Upload files to {folder}" : "Igo fitxategiak {folder}(e)ra",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}-k zurekin karpeta bat partekatu du.",
"Shared by" : "Honek partekatua",
"Shared with" : "Honekin partekatua",
"Password created successfully" : "Pasahitza ongi sortu da",
@@ -386,14 +409,18 @@
"No compatible server found at {remote}" : "Ez da zerbitzari bateragarririk aurkitu {remote} helbidean",
"Invalid server URL" : "Zerbitzari URL baliogabea",
"Failed to add the public link to your Nextcloud" : "Huts egin du esteka publikoa zure Nextcloudera gehitzean",
- "Files" : "Fitxategiak",
+ "You are not allowed to edit link shares that you don't own" : "Ezin dituzu editatu zureak ez diren partekatze estekak",
"Download all files" : "Deskargatu fitxategi guztiak",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko 1 gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"],
+ "_1 email address added_::_{count} email addresses added_" : ["Helbide elektroniko 1 gehitu da","{count} helbide elektroniko gehitu dira"],
"Search for share recipients" : "Bilatu partekatze-hartzaileak",
"No recommendations. Start typing." : "Gomendiorik ez. Hasi idazten.",
- "Allow download" : "Baimendu deskarga",
- "Share expire date saved" : "Partekatzearen iraungitze data gordeta",
- "You are not allowed to edit link shares that you don't own" : "Ezin dituzu editatu zureak ez diren partekatze estekak",
- "_1 email address already added_::_{count} email addresses already added_" : ["Helbide elektroniko 1 gehitu da dagoeneko","{count} helbide elektroniko gehitu dira dagoeneko"],
- "_1 email address added_::_{count} email addresses added_" : ["Helbide elektroniko 1 gehitu da","{count} helbide elektroniko gehitu dira"]
+ "To upload files, you need to provide your name first." : "Fitxategiak igotzeko, zure izena eman behar duzu lehenik.",
+ "Enter your name" : "Sartu zure izena",
+ "Submit name" : "Sartu izena",
+ "Name" : "Izena",
+ "Share with accounts, teams, federated cloud id" : "Partekatu kontuekin, taldeekin edo federatutako hodeien ID-ekin",
+ "Email, federated cloud id" : "Posta elektroniko, federatutako hodeien ID",
+ "Filename must not be empty." : "Fitxategi-izenak ez du hutsik egon behar."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fa.js b/apps/files_sharing/l10n/fa.js
index e5a49278326..b95dfca523d 100644
--- a/apps/files_sharing/l10n/fa.js
+++ b/apps/files_sharing/l10n/fa.js
@@ -15,6 +15,7 @@ OC.L10N.register(
"You removed yourself" : "شما خدتان را حذف کردید",
"Share for {user} expired" : "اشتراک برای {user} منقضی شده است",
"Share expired" : "اشتراک منقضی شد",
+ "{actor} shared {file} with you" : "{actor} {file} را با شما به اشتراک گذاشت",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "یک پرونده یا پوشه به اشتراک گذاشته شده از طریق پست یا از طریق لینک عمومی بارگیری شد",
"A file or folder was shared from <strong>another server</strong>" : "یک پرونده یا پوشه از سرور دیگر به اشتراک گذاشته شد",
"Sharing" : "اشتراک گذاری",
@@ -123,8 +124,6 @@ OC.L10N.register(
"on {server}" : "روی{server}",
"File drop" : "انداختن پرونده",
"Terms of service" : "شرایط و قوانین",
- "Name" : "نام",
- "Enter your name" : "اسمت را وارد کن",
"Update share" : "به‌روزرسانی هم‌رسانی",
"Read" : "خواندن",
"Create" : "ایجاد",
@@ -150,6 +149,7 @@ OC.L10N.register(
"Unable to fetch inherited shares" : "واگذاری سهام ارثی امکان پذیر نیست",
"Shares" : "اشتراک گذاری ها",
"Unable to load the shares list" : "لیست سهام بارگیری نمی شود",
+ "Expires {relativetime}" : "منقضی در {relativetime}",
"this share just expired." : "این اشتراک تازه منقضی شد",
"Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط {owner}",
"Link to a file" : "پیوند به یک پرونده",
@@ -157,24 +157,29 @@ OC.L10N.register(
"Open in Files" : "در فایل باز کنید",
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
- "Shared" : "به اشتراک گزاشته شده ",
+ "Shared" : "به اشتراک گذاشته شده ",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
"Shared with others" : "موارد به اشتراک گذاشته شده با دیگران",
+ "Public file share" : "اشتراک عمومی پرونده",
+ "Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است",
"No file" : "بدون پرونده",
"Public share" : "سهم عمومی",
- "Overview of shared files." : "Overview of shared files.",
+ "Publicly shared files." : "پرونده ها بصورت عمومی به اشتراک گذاشته شده اند",
+ "Overview of shared files." : "نمای کلی پرونده های به اشتراک گذاشته شده",
"No shares" : "اشتراک گذاری وجود ندارد",
"Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here",
"Shared with you" : "موارد به اشتراک گذاشته شده با شما",
- "List of files that are shared with you." : "List of files that are shared with you.",
+ "List of files that are shared with you." : "لیست پرونده هایی که با شما به اشتراک گذاشته شده است.",
"Nothing shared with you yet" : "هیچ موردی با شما به اشتراک گذاشته نشده است",
"Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here",
- "List of files that you shared with others." : "List of files that you shared with others.",
+ "List of files that you shared with others." : "لیست پرونده هایی که شما با دیگران به اشتراک گذاشته اید.",
"Nothing shared yet" : "هیچ موردی تاکنون به اشتراک گذاشته نشده است",
"Files and folders you shared will show up here" : "Files and folders you shared will show up here",
"Shared by link" : "اشتراک گذاشته شده از طریق لینک",
"List of files that are shared by link." : "List of files that are shared by link.",
"No shared links" : "هیچ لینک اشتراک‌گذاری وجود ندارد",
"Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here",
+ "File requests" : "درخواست پرونده",
"Deleted shares" : "اشتراک گذاری های حذف شده",
"List of shares you left." : "List of shares you left.",
"No deleted shares" : "اشتراک گذاری های حذف نشده",
@@ -197,7 +202,7 @@ OC.L10N.register(
"Upload files to %s" : "بارگیری پرونده ها به%s",
"Note" : "یادداشت",
"Select or drop files" : "پرونده ها را انتخاب یا رها کنید",
- "Uploading files" : "Uploading files",
+ "Uploading files" : "پرونده های در حال بارگذاری",
"Uploaded files:" : "پرونده های بارگذاری شده:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "%2$sبا بارگذاری پرونده ها ، شما با %1$sشرایط خدمات موافقت می کنید",
"Share not found" : "اشتراک گذاری یافت نشد",
@@ -211,10 +216,11 @@ OC.L10N.register(
"You can upload into this folder" : "می‌توانید در این پوشه آپلود کنید",
"Invalid server URL" : "ادرس سرور نامعتبر",
"Failed to add the public link to your Nextcloud" : "خطا در افزودن ادرس عمومی به نکس کلود شما",
- "Files" : "فایل‌ها",
"Download all files" : "دانلود همه فایل ها",
"Search for share recipients" : "Search for share recipients",
"No recommendations. Start typing." : "هیچ توصیه ای نیست شروع به تایپ کنید.",
- "Allow download" : "Allow download"
+ "Enter your name" : "اسمت را وارد کن",
+ "Name" : "نام",
+ "Filename must not be empty." : "Filename must not be empty."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/fa.json b/apps/files_sharing/l10n/fa.json
index 345cac57f8b..41e48c495fb 100644
--- a/apps/files_sharing/l10n/fa.json
+++ b/apps/files_sharing/l10n/fa.json
@@ -13,6 +13,7 @@
"You removed yourself" : "شما خدتان را حذف کردید",
"Share for {user} expired" : "اشتراک برای {user} منقضی شده است",
"Share expired" : "اشتراک منقضی شد",
+ "{actor} shared {file} with you" : "{actor} {file} را با شما به اشتراک گذاشت",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "یک پرونده یا پوشه به اشتراک گذاشته شده از طریق پست یا از طریق لینک عمومی بارگیری شد",
"A file or folder was shared from <strong>another server</strong>" : "یک پرونده یا پوشه از سرور دیگر به اشتراک گذاشته شد",
"Sharing" : "اشتراک گذاری",
@@ -121,8 +122,6 @@
"on {server}" : "روی{server}",
"File drop" : "انداختن پرونده",
"Terms of service" : "شرایط و قوانین",
- "Name" : "نام",
- "Enter your name" : "اسمت را وارد کن",
"Update share" : "به‌روزرسانی هم‌رسانی",
"Read" : "خواندن",
"Create" : "ایجاد",
@@ -148,6 +147,7 @@
"Unable to fetch inherited shares" : "واگذاری سهام ارثی امکان پذیر نیست",
"Shares" : "اشتراک گذاری ها",
"Unable to load the shares list" : "لیست سهام بارگیری نمی شود",
+ "Expires {relativetime}" : "منقضی در {relativetime}",
"this share just expired." : "این اشتراک تازه منقضی شد",
"Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط {owner}",
"Link to a file" : "پیوند به یک پرونده",
@@ -155,24 +155,29 @@
"Open in Files" : "در فایل باز کنید",
"_Reject share_::_Reject shares_" : ["Reject share","Reject shares"],
"_Restore share_::_Restore shares_" : ["Restore share","Restore shares"],
- "Shared" : "به اشتراک گزاشته شده ",
+ "Shared" : "به اشتراک گذاشته شده ",
+ "Shared multiple times with different people" : "Shared multiple times with different people",
"Shared with others" : "موارد به اشتراک گذاشته شده با دیگران",
+ "Public file share" : "اشتراک عمومی پرونده",
+ "Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است",
"No file" : "بدون پرونده",
"Public share" : "سهم عمومی",
- "Overview of shared files." : "Overview of shared files.",
+ "Publicly shared files." : "پرونده ها بصورت عمومی به اشتراک گذاشته شده اند",
+ "Overview of shared files." : "نمای کلی پرونده های به اشتراک گذاشته شده",
"No shares" : "اشتراک گذاری وجود ندارد",
"Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here",
"Shared with you" : "موارد به اشتراک گذاشته شده با شما",
- "List of files that are shared with you." : "List of files that are shared with you.",
+ "List of files that are shared with you." : "لیست پرونده هایی که با شما به اشتراک گذاشته شده است.",
"Nothing shared with you yet" : "هیچ موردی با شما به اشتراک گذاشته نشده است",
"Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here",
- "List of files that you shared with others." : "List of files that you shared with others.",
+ "List of files that you shared with others." : "لیست پرونده هایی که شما با دیگران به اشتراک گذاشته اید.",
"Nothing shared yet" : "هیچ موردی تاکنون به اشتراک گذاشته نشده است",
"Files and folders you shared will show up here" : "Files and folders you shared will show up here",
"Shared by link" : "اشتراک گذاشته شده از طریق لینک",
"List of files that are shared by link." : "List of files that are shared by link.",
"No shared links" : "هیچ لینک اشتراک‌گذاری وجود ندارد",
"Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here",
+ "File requests" : "درخواست پرونده",
"Deleted shares" : "اشتراک گذاری های حذف شده",
"List of shares you left." : "List of shares you left.",
"No deleted shares" : "اشتراک گذاری های حذف نشده",
@@ -195,7 +200,7 @@
"Upload files to %s" : "بارگیری پرونده ها به%s",
"Note" : "یادداشت",
"Select or drop files" : "پرونده ها را انتخاب یا رها کنید",
- "Uploading files" : "Uploading files",
+ "Uploading files" : "پرونده های در حال بارگذاری",
"Uploaded files:" : "پرونده های بارگذاری شده:",
"By uploading files, you agree to the %1$sterms of service%2$s." : "%2$sبا بارگذاری پرونده ها ، شما با %1$sشرایط خدمات موافقت می کنید",
"Share not found" : "اشتراک گذاری یافت نشد",
@@ -209,10 +214,11 @@
"You can upload into this folder" : "می‌توانید در این پوشه آپلود کنید",
"Invalid server URL" : "ادرس سرور نامعتبر",
"Failed to add the public link to your Nextcloud" : "خطا در افزودن ادرس عمومی به نکس کلود شما",
- "Files" : "فایل‌ها",
"Download all files" : "دانلود همه فایل ها",
"Search for share recipients" : "Search for share recipients",
"No recommendations. Start typing." : "هیچ توصیه ای نیست شروع به تایپ کنید.",
- "Allow download" : "Allow download"
+ "Enter your name" : "اسمت را وارد کن",
+ "Name" : "نام",
+ "Filename must not be empty." : "Filename must not be empty."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fi.js b/apps/files_sharing/l10n/fi.js
index f042b8eb637..034c4783428 100644
--- a/apps/files_sharing/l10n/fi.js
+++ b/apps/files_sharing/l10n/fi.js
@@ -130,7 +130,6 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Aseta oletuskansio hyväksytyille jaoille",
"Reset" : "Palauta",
"Reset folder to system default" : "Palauta kansio järjestelmän oletukseksi",
- "Share expiration: " : "Jaon vanhentuminen:",
"group" : "ryhmä",
"conversation" : "keskustelu",
"remote" : "etä",
@@ -188,10 +187,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "Lähettämällä tiedostot hyväksyt käyttöehdot.",
"View terms of service" : "Näytä käyttöehdot",
"Terms of service" : "Käyttöehdot",
- "Upload files to {folder}" : "Lähetä tiedostot kansioon {folder}",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jakoi kansion kanssasi.",
- "Name" : "Nimi",
- "Enter your name" : "Kirjoita nimesi",
"Share with {userName}" : "Jaa käyttäjän {userName} kanssa",
"Share with group" : "Jaa ryhmän kanssa",
"Share in conversation" : "Jaa keskustelussa",
@@ -272,6 +267,8 @@ OC.L10N.register(
"File \"{path}\" has been unshared" : "Tiedoston \"{path}\" jakaminen on lopetettu",
"Folder \"{path}\" has been unshared" : "Kansion \"{path}\" jakaminen on lopetettu",
"Share saved" : "Jako tallennettu",
+ "Upload files to {folder}" : "Lähetä tiedostot kansioon {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jakoi kansion kanssasi.",
"Shared by" : "Jakanut",
"Shared with" : "Jaettu",
"Password created successfully" : "Salasana luotu onnistuneesti",
@@ -301,11 +298,11 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Yhteensopivaa palvelinta ei löytynyt osoitteesta {remote}",
"Invalid server URL" : "Virheellinen palvelimen URL",
"Failed to add the public link to your Nextcloud" : "Julkisen linkin lisääminen Nextcloudiisi epäonnistui",
- "Files" : "Tiedostot",
"Download all files" : "Lataa kaikki tiedostot",
"Search for share recipients" : "Etsi jaon vastaanottajia",
"No recommendations. Start typing." : "Ei suosituksia. Aloita kirjoittaminen.",
- "Password field can't be empty" : "Salasanakenttä ei voi olla tyhjä",
- "Allow download" : "Salli lataus"
+ "Enter your name" : "Kirjoita nimesi",
+ "Name" : "Nimi",
+ "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/fi.json b/apps/files_sharing/l10n/fi.json
index a65d077607a..f4929f0f06c 100644
--- a/apps/files_sharing/l10n/fi.json
+++ b/apps/files_sharing/l10n/fi.json
@@ -128,7 +128,6 @@
"Set default folder for accepted shares" : "Aseta oletuskansio hyväksytyille jaoille",
"Reset" : "Palauta",
"Reset folder to system default" : "Palauta kansio järjestelmän oletukseksi",
- "Share expiration: " : "Jaon vanhentuminen:",
"group" : "ryhmä",
"conversation" : "keskustelu",
"remote" : "etä",
@@ -186,10 +185,6 @@
"By uploading files, you agree to the terms of service." : "Lähettämällä tiedostot hyväksyt käyttöehdot.",
"View terms of service" : "Näytä käyttöehdot",
"Terms of service" : "Käyttöehdot",
- "Upload files to {folder}" : "Lähetä tiedostot kansioon {folder}",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jakoi kansion kanssasi.",
- "Name" : "Nimi",
- "Enter your name" : "Kirjoita nimesi",
"Share with {userName}" : "Jaa käyttäjän {userName} kanssa",
"Share with group" : "Jaa ryhmän kanssa",
"Share in conversation" : "Jaa keskustelussa",
@@ -270,6 +265,8 @@
"File \"{path}\" has been unshared" : "Tiedoston \"{path}\" jakaminen on lopetettu",
"Folder \"{path}\" has been unshared" : "Kansion \"{path}\" jakaminen on lopetettu",
"Share saved" : "Jako tallennettu",
+ "Upload files to {folder}" : "Lähetä tiedostot kansioon {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} jakoi kansion kanssasi.",
"Shared by" : "Jakanut",
"Shared with" : "Jaettu",
"Password created successfully" : "Salasana luotu onnistuneesti",
@@ -299,11 +296,11 @@
"No compatible server found at {remote}" : "Yhteensopivaa palvelinta ei löytynyt osoitteesta {remote}",
"Invalid server URL" : "Virheellinen palvelimen URL",
"Failed to add the public link to your Nextcloud" : "Julkisen linkin lisääminen Nextcloudiisi epäonnistui",
- "Files" : "Tiedostot",
"Download all files" : "Lataa kaikki tiedostot",
"Search for share recipients" : "Etsi jaon vastaanottajia",
"No recommendations. Start typing." : "Ei suosituksia. Aloita kirjoittaminen.",
- "Password field can't be empty" : "Salasanakenttä ei voi olla tyhjä",
- "Allow download" : "Salli lataus"
+ "Enter your name" : "Kirjoita nimesi",
+ "Name" : "Nimi",
+ "Filename must not be empty." : "Tiedostonimi ei voi olla tyhjä."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index c50560d6b45..a693dd5bef5 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -185,6 +185,8 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Définir le dossier par défaut pour les partages acceptés",
"Reset" : "Réinitialiser",
"Reset folder to system default" : "Réinitialiser le dossier par défaut du système",
+ "Share expiration: {date}" : "Expiration du partage: {date}",
+ "Share Expiration" : "Expiration du partage",
"group" : "groupe",
"conversation" : "conversation",
"remote" : "distant",
@@ -255,14 +257,9 @@ OC.L10N.register(
"File drop" : "Dépôt de fichier",
"Upload files to {foldername}." : "Téléverser les fichiers vers {foldername}.",
"By uploading files, you agree to the terms of service." : "En téléversant des fichiers, vous acceptez les conditions d'utilisation du service.",
+ "Successfully uploaded files" : "Fichiers téléversés avec succès",
"View terms of service" : "Voir les conditions d'utilisation du service",
"Terms of service" : "Conditions d'utilisation",
- "Upload files to {folder}" : "Téléverser les fichiers dans {folder}",
- "Submit name" : "Confirmer votre nom",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} a partagé un dossier avec vous.",
- "To upload files, you need to provide your name first." : "Pour téléverser des fichiers, vous devez fournir votre nom.",
- "Name" : "Nom",
- "Enter your name" : "Saisissez votre nom",
"Share with {userName}" : "Partager avec {userName}",
"Share with email {email}" : "Partager avec l'e-mail {email}",
"Share with group" : "Partager avec le groupe",
@@ -311,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilisez cette méthode pour partager des fichiers avec des personnes ou des équipes au sein de votre organisation. Si le destinataire a déjà accès au partage, mais ne parvient pas à le localiser, vous pouvez lui envoyer le lien interne pour faciliter l'accès.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Cette méthode permet de partager des fichiers avec des personnes ou des organisations extérieures à votre organisation. Les fichiers et les dossiers peuvent être partagés via des liens de partage publics et des adresses e-mail. Vous pouvez également partager avec d'autres comptes Nextcloud hébergés sur différentes instances en utilisant leur ID de cloud fédéré.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Partages qui ne font pas partie des partages internes ou externes. Il peut s'agir de partages provenant d'applications ou d'autres sources.",
+ "Share with accounts, teams, federated cloud IDs" : "Partager avec des comptes, des équipes et des IDs cloud fédérés",
+ "Share with accounts and teams" : "Partager avec des comptes et des équipes",
+ "Federated cloud ID" : "ID de Cloud Fédéré",
+ "Email, federated cloud ID" : "E-mail, ID cloud fédéré",
"Unable to load the shares list" : "Impossible de charger la liste des partages",
"Expires {relativetime}" : "Expire {relativetime}",
"this share just expired." : "ce partage vient d'expirer",
"Shared with you by {owner}" : "Partagé avec vous par {owner}",
"Internal shares" : "Partages internes",
"Internal shares explanation" : "Explication sur les partages internes",
- "Share with accounts and teams" : "Partager avec des comptes et des équipes",
"External shares" : "Partages externes",
"External shares explanation" : "Explication sur les partages externes",
- "Email, federated cloud id" : "E-mail, ID de cloud fédéré",
"Additional shares" : "Partages supplémentaires",
"Additional shares explanation" : "Explication sur les partages supplémentaires",
"Link to a file" : "Relier à un fichier",
@@ -369,18 +368,31 @@ OC.L10N.register(
"List of unapproved shares." : "Liste des partages non approuvés.",
"No pending shares" : "Aucun partage en attente",
"Shares you have received but not approved will show up here" : "Les partages que vous avez reçus, mais qui n'ont pas été acceptés apparaîtront ici",
+ "Error deleting the share: {errorMessage}" : "Erreur lors de la suppression du partage : {errorMessage}",
+ "Error deleting the share" : "Erreur lors de la suppression du partage",
"Error updating the share: {errorMessage}" : "Erreur à la mise à jour du partage\\: {errorMessage} ",
"Error updating the share" : "Erreur lors de la mise à jour du partage",
"File \"{path}\" has been unshared" : "Le partage du fichier \"{path}\" a été retiré",
"Folder \"{path}\" has been unshared" : "Le partage du dossier \"{path}\" a été retiré",
"Could not update share" : "Impossible de mettre à jour le partage",
- "Share saved" : "Partager enregistré",
- "Share expiry date saved" : "Partager la date d'expiration enregistrée",
- "Share hide-download state saved" : "Partager l'état masqué du téléchargement enregistré",
+ "Share saved" : "Partage enregistré",
+ "Share expiry date saved" : "Date d'expiration du partage enregistrée",
+ "Share hide-download state saved" : "État de masquage du téléchargement enregistré",
"Share label saved" : "Étiquette collaborative enregistrée",
- "Share note for recipient saved" : "Partager la note pour le destinataire enregistré",
+ "Share note for recipient saved" : "Note au destinataire du partage enregistrée",
"Share password saved" : "Mot de passe de partage enregistré",
"Share permissions saved" : "Permissions de partage sauvegardées",
+ "To upload files to {folder}, you need to provide your name first." : "Pour téléverser des fichiers dans {folder}, vous devez d'abord indiquer votre nom.",
+ "Upload files to {folder}" : "Téléverser les fichiers dans {folder}",
+ "Please confirm your name to upload files to {folder}" : "Veuillez confirmer votre nom avant de pouvoir envoyer des fichiers vers {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} a partagé un dossier avec vous.",
+ "Names must not be empty." : "Le nom ne doit pas être vide.",
+ "Names must not start with a dot." : "Les noms ne doivent pas commencer par un point.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" n'est pas autorisé dans un nom.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" est un nom réservé et n'est pas autorisé.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" n'est pas un nom autorisé.",
+ "Names must not end with \"{extension}\"." : "Les noms ne doivent pas se terminer par \"{extension}\".",
+ "Invalid name." : "Nom invalide.",
"Shared by" : "Partagé par",
"Shared with" : "Partagé avec",
"Password created successfully" : "Mot de passe créé avec succès",
@@ -411,15 +423,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Aucun serveur compatible trouvé sur {remote}",
"Invalid server URL" : "URL serveur invalide",
"Failed to add the public link to your Nextcloud" : "Échec de l'ajout du lien public à votre Nextcloud",
- "Files" : "Fichiers",
+ "You are not allowed to edit link shares that you don't own" : "Vous n'êtes pas autorisé à modifier les liens de partage dont vous n'êtes pas propriétaire",
"Download all files" : "Télécharger tous les fichiers",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 adresse mail déjà ajoutée"," {count}adresses email déjà ajoutées","{count} adresses e-mail déjà ajoutées"],
+ "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"],
"Search for share recipients" : "Recherche de destinataires de partages",
"No recommendations. Start typing." : "Aucune recommandation. Commencez à écrire.",
- "Password field can't be empty" : "Le mot de passe ne peut pas être vide",
- "Allow download" : "Autoriser le téléchargement",
- "Share expire date saved" : "Le partage expirât à la date enregistrée",
- "You are not allowed to edit link shares that you don't own" : "Vous n'êtes pas autorisé à modifier les liens de partage dont vous n'êtes pas propriétaire",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 adresse mail déjà ajoutée"," {count}adresses email déjà ajoutées","{count} adresses e-mail déjà ajoutées"],
- "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"]
+ "To upload files, you need to provide your name first." : "Pour téléverser des fichiers, vous devez fournir votre nom.",
+ "Enter your name" : "Saisissez votre nom",
+ "Submit name" : "Confirmer votre nom",
+ "Name" : "Nom",
+ "Share with accounts, teams, federated cloud id" : "Partager avec des comptes, des équipes, un identifiant de cloud fédéré",
+ "Email, federated cloud id" : "E-mail, ID de cloud fédéré",
+ "Filename must not be empty." : "Le nom du fichier ne doit pas être vide."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index b1e36bc9d60..0c800fff219 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -183,6 +183,8 @@
"Set default folder for accepted shares" : "Définir le dossier par défaut pour les partages acceptés",
"Reset" : "Réinitialiser",
"Reset folder to system default" : "Réinitialiser le dossier par défaut du système",
+ "Share expiration: {date}" : "Expiration du partage: {date}",
+ "Share Expiration" : "Expiration du partage",
"group" : "groupe",
"conversation" : "conversation",
"remote" : "distant",
@@ -253,14 +255,9 @@
"File drop" : "Dépôt de fichier",
"Upload files to {foldername}." : "Téléverser les fichiers vers {foldername}.",
"By uploading files, you agree to the terms of service." : "En téléversant des fichiers, vous acceptez les conditions d'utilisation du service.",
+ "Successfully uploaded files" : "Fichiers téléversés avec succès",
"View terms of service" : "Voir les conditions d'utilisation du service",
"Terms of service" : "Conditions d'utilisation",
- "Upload files to {folder}" : "Téléverser les fichiers dans {folder}",
- "Submit name" : "Confirmer votre nom",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} a partagé un dossier avec vous.",
- "To upload files, you need to provide your name first." : "Pour téléverser des fichiers, vous devez fournir votre nom.",
- "Name" : "Nom",
- "Enter your name" : "Saisissez votre nom",
"Share with {userName}" : "Partager avec {userName}",
"Share with email {email}" : "Partager avec l'e-mail {email}",
"Share with group" : "Partager avec le groupe",
@@ -309,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilisez cette méthode pour partager des fichiers avec des personnes ou des équipes au sein de votre organisation. Si le destinataire a déjà accès au partage, mais ne parvient pas à le localiser, vous pouvez lui envoyer le lien interne pour faciliter l'accès.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Cette méthode permet de partager des fichiers avec des personnes ou des organisations extérieures à votre organisation. Les fichiers et les dossiers peuvent être partagés via des liens de partage publics et des adresses e-mail. Vous pouvez également partager avec d'autres comptes Nextcloud hébergés sur différentes instances en utilisant leur ID de cloud fédéré.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Partages qui ne font pas partie des partages internes ou externes. Il peut s'agir de partages provenant d'applications ou d'autres sources.",
+ "Share with accounts, teams, federated cloud IDs" : "Partager avec des comptes, des équipes et des IDs cloud fédérés",
+ "Share with accounts and teams" : "Partager avec des comptes et des équipes",
+ "Federated cloud ID" : "ID de Cloud Fédéré",
+ "Email, federated cloud ID" : "E-mail, ID cloud fédéré",
"Unable to load the shares list" : "Impossible de charger la liste des partages",
"Expires {relativetime}" : "Expire {relativetime}",
"this share just expired." : "ce partage vient d'expirer",
"Shared with you by {owner}" : "Partagé avec vous par {owner}",
"Internal shares" : "Partages internes",
"Internal shares explanation" : "Explication sur les partages internes",
- "Share with accounts and teams" : "Partager avec des comptes et des équipes",
"External shares" : "Partages externes",
"External shares explanation" : "Explication sur les partages externes",
- "Email, federated cloud id" : "E-mail, ID de cloud fédéré",
"Additional shares" : "Partages supplémentaires",
"Additional shares explanation" : "Explication sur les partages supplémentaires",
"Link to a file" : "Relier à un fichier",
@@ -367,18 +366,31 @@
"List of unapproved shares." : "Liste des partages non approuvés.",
"No pending shares" : "Aucun partage en attente",
"Shares you have received but not approved will show up here" : "Les partages que vous avez reçus, mais qui n'ont pas été acceptés apparaîtront ici",
+ "Error deleting the share: {errorMessage}" : "Erreur lors de la suppression du partage : {errorMessage}",
+ "Error deleting the share" : "Erreur lors de la suppression du partage",
"Error updating the share: {errorMessage}" : "Erreur à la mise à jour du partage\\: {errorMessage} ",
"Error updating the share" : "Erreur lors de la mise à jour du partage",
"File \"{path}\" has been unshared" : "Le partage du fichier \"{path}\" a été retiré",
"Folder \"{path}\" has been unshared" : "Le partage du dossier \"{path}\" a été retiré",
"Could not update share" : "Impossible de mettre à jour le partage",
- "Share saved" : "Partager enregistré",
- "Share expiry date saved" : "Partager la date d'expiration enregistrée",
- "Share hide-download state saved" : "Partager l'état masqué du téléchargement enregistré",
+ "Share saved" : "Partage enregistré",
+ "Share expiry date saved" : "Date d'expiration du partage enregistrée",
+ "Share hide-download state saved" : "État de masquage du téléchargement enregistré",
"Share label saved" : "Étiquette collaborative enregistrée",
- "Share note for recipient saved" : "Partager la note pour le destinataire enregistré",
+ "Share note for recipient saved" : "Note au destinataire du partage enregistrée",
"Share password saved" : "Mot de passe de partage enregistré",
"Share permissions saved" : "Permissions de partage sauvegardées",
+ "To upload files to {folder}, you need to provide your name first." : "Pour téléverser des fichiers dans {folder}, vous devez d'abord indiquer votre nom.",
+ "Upload files to {folder}" : "Téléverser les fichiers dans {folder}",
+ "Please confirm your name to upload files to {folder}" : "Veuillez confirmer votre nom avant de pouvoir envoyer des fichiers vers {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} a partagé un dossier avec vous.",
+ "Names must not be empty." : "Le nom ne doit pas être vide.",
+ "Names must not start with a dot." : "Les noms ne doivent pas commencer par un point.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" n'est pas autorisé dans un nom.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" est un nom réservé et n'est pas autorisé.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" n'est pas un nom autorisé.",
+ "Names must not end with \"{extension}\"." : "Les noms ne doivent pas se terminer par \"{extension}\".",
+ "Invalid name." : "Nom invalide.",
"Shared by" : "Partagé par",
"Shared with" : "Partagé avec",
"Password created successfully" : "Mot de passe créé avec succès",
@@ -409,15 +421,18 @@
"No compatible server found at {remote}" : "Aucun serveur compatible trouvé sur {remote}",
"Invalid server URL" : "URL serveur invalide",
"Failed to add the public link to your Nextcloud" : "Échec de l'ajout du lien public à votre Nextcloud",
- "Files" : "Fichiers",
+ "You are not allowed to edit link shares that you don't own" : "Vous n'êtes pas autorisé à modifier les liens de partage dont vous n'êtes pas propriétaire",
"Download all files" : "Télécharger tous les fichiers",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 adresse mail déjà ajoutée"," {count}adresses email déjà ajoutées","{count} adresses e-mail déjà ajoutées"],
+ "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"],
"Search for share recipients" : "Recherche de destinataires de partages",
"No recommendations. Start typing." : "Aucune recommandation. Commencez à écrire.",
- "Password field can't be empty" : "Le mot de passe ne peut pas être vide",
- "Allow download" : "Autoriser le téléchargement",
- "Share expire date saved" : "Le partage expirât à la date enregistrée",
- "You are not allowed to edit link shares that you don't own" : "Vous n'êtes pas autorisé à modifier les liens de partage dont vous n'êtes pas propriétaire",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 adresse mail déjà ajoutée"," {count}adresses email déjà ajoutées","{count} adresses e-mail déjà ajoutées"],
- "_1 email address added_::_{count} email addresses added_" : [" 1 adresse mail ajoutée","{count} adresses mail ajoutées","{count} adresses mail ajoutées"]
+ "To upload files, you need to provide your name first." : "Pour téléverser des fichiers, vous devez fournir votre nom.",
+ "Enter your name" : "Saisissez votre nom",
+ "Submit name" : "Confirmer votre nom",
+ "Name" : "Nom",
+ "Share with accounts, teams, federated cloud id" : "Partager avec des comptes, des équipes, un identifiant de cloud fédéré",
+ "Email, federated cloud id" : "E-mail, ID de cloud fédéré",
+ "Filename must not be empty." : "Le nom du fichier ne doit pas être vide."
},"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/files_sharing/l10n/ga.js b/apps/files_sharing/l10n/ga.js
index 0178d730a6d..a2b04206dde 100644
--- a/apps/files_sharing/l10n/ga.js
+++ b/apps/files_sharing/l10n/ga.js
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Socraigh fillteán réamhshocraithe le haghaidh scaireanna glactha",
"Reset" : "Athshocraigh",
"Reset folder to system default" : "Athshocraigh an fillteán go réamhshocrú an chórais",
- "Share expiration: " : "Éaga scaireanna:",
+ "Share expiration: {date}" : "Éaga scaireanna: {date}",
"Share Expiration" : "Comhroinn Éaga",
"group" : "grúpa",
"conversation" : "comhrá",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "Titim comhad",
"Upload files to {foldername}." : "Uaslódáil comhaid go {foldername}.",
"By uploading files, you agree to the terms of service." : "Trí chomhaid a uaslódáil, aontaíonn tú leis na téarmaí seirbhíse.",
+ "Successfully uploaded files" : "Uaslódáileadh na comhaid go rathúil",
"View terms of service" : "Féach ar théarmaí seirbhíse",
"Terms of service" : "Tearmaí Seirbhís",
- "Upload files to {folder}" : "Uaslódáil comhaid go {folder}",
- "Submit name" : "Cuir ainm",
- "{ownerDisplayName} shared a folder with you." : "Roinn {ownerDisplayName} fillteán leat.",
- "To upload files, you need to provide your name first." : "Chun comhaid a uaslódáil, ní mór duit d'ainm a sholáthar ar dtús.",
- "Name" : "Ainm",
- "Enter your name" : "Cuir isteach d'ainm",
"Share with {userName}" : "Roinn le {userName}",
"Share with email {email}" : "Roinn le ríomhphost {email}",
"Share with group" : "Roinn leis an ngrúpa",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le foirne laistigh de d'eagraíocht. Má tá rochtain ag an bhfaighteoir ar an sciar cheana féin ach nach féidir leis í a aimsiú, is féidir leat an nasc scaire inmheánach a sheoladh chucu le go mbeidh rochtain éasca air.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le heagraíochtaí lasmuigh de d'eagraíocht. Is féidir comhaid agus fillteáin a roinnt trí naisc scaireanna poiblí agus seoltaí ríomhphoist. Is féidir leat a roinnt freisin le cuntais Nextcloud eile arna óstáil ar chásanna éagsúla ag baint úsáide as a n-ID néil cónasctha.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Scaireanna nach cuid de na scaireanna inmheánacha nó seachtracha iad. Is féidir gur scaireanna iad seo ó aipeanna nó ó fhoinsí eile.",
+ "Share with accounts, teams, federated cloud IDs" : "Comhroinn le cuntais, foirne, agus aitheantóirí scamall cónaidhme",
+ "Share with accounts and teams" : "Roinn le cuntais agus foirne",
+ "Federated cloud ID" : "ID scamall cónaidhme",
+ "Email, federated cloud ID" : "Ríomhphost, ID scamall cónaidhme",
"Unable to load the shares list" : "Ní féidir an liosta scaireanna a lódáil",
"Expires {relativetime}" : "In éag {relativetime}",
"this share just expired." : "tá an sciar seo díreach imithe in éag.",
"Shared with you by {owner}" : "Roinnte ag {owner} leat",
"Internal shares" : "Scaireanna inmheánacha",
"Internal shares explanation" : "Míniú ar scaireanna inmheánacha",
- "Share with accounts and teams" : "Roinn le cuntais agus foirne",
"External shares" : "Scaireanna seachtracha",
"External shares explanation" : "Míniú ar scaireanna seachtracha",
- "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme",
"Additional shares" : "Scaireanna breise",
"Additional shares explanation" : "Míniú ar scaireanna breise",
"Link to a file" : "Nasc chuig comhad",
@@ -383,6 +380,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Comhroinn nóta don fhaighteoir sábháilte",
"Share password saved" : "Comhroinn pasfhocal sábháilte",
"Share permissions saved" : "Sábháladh ceadanna comhroinnte",
+ "To upload files to {folder}, you need to provide your name first." : "Chun comhaid a uaslódáil chuig {folder}, ní mór duit d'ainm a sholáthar ar dtús.",
+ "Upload files to {folder}" : "Uaslódáil comhaid go {folder}",
+ "Please confirm your name to upload files to {folder}" : "Deimhnigh d'ainm le do thoil chun comhaid a uaslódáil chuig {folder}",
+ "{ownerDisplayName} shared a folder with you." : "Roinn {ownerDisplayName} fillteán leat.",
+ "Names must not be empty." : "Ní féidir ainmneacha a bheith folamh.",
+ "Names must not start with a dot." : "Ní mór ainmneacha a bheith ag tosú le ponc.",
+ "\"{char}\" is not allowed inside a name." : "Ní cheadaítear \"{char}\" laistigh d'ainm.",
+ "\"{segment}\" is a reserved name and not allowed." : "Is ainm curtha in áirithe é \"{segment}\" agus ní cheadaítear é.",
+ "\"{extension}\" is not an allowed name." : "Ní ainm ceadaithe é \"{extension}\".",
+ "Names must not end with \"{extension}\"." : "Ní féidir ainmneacha a chríochnú le \"{extension}\".",
+ "Invalid name." : "Ainm neamhbhailí.",
"Shared by" : "Roinnte ag",
"Shared with" : "Roinnte le",
"Password created successfully" : "Pasfhocal cruthaithe go rathúil",
@@ -413,15 +421,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Níor aimsíodh aon fhreastalaí comhoiriúnach ag {remote}",
"Invalid server URL" : "URL freastalaí neamhbhailí",
"Failed to add the public link to your Nextcloud" : "Theip ar an nasc poiblí a chur le do Nextcloud",
- "Files" : "Comhaid",
+ "You are not allowed to edit link shares that you don't own" : "Níl cead agat scaireanna naisc nach leatsa a chur in eagar",
"Download all files" : "Gach comhaid a íoslódáil",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 seoladh ríomhphoist curtha leis cheana féin","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana"],
+ "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"],
"Search for share recipients" : "Cuardaigh faighteoirí scaireanna",
"No recommendations. Start typing." : "Gan moltaí. Tosaigh ag clóscríobh.",
- "Password field can't be empty" : "Ní féidir le réimse an phasfhocail a bheith folamh",
- "Allow download" : "Ceadaigh íoslódáil",
- "Share expire date saved" : "Comhroinn dáta éaga sábháilte",
- "You are not allowed to edit link shares that you don't own" : "Níl cead agat scaireanna naisc nach leatsa a chur in eagar",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 seoladh ríomhphoist curtha leis cheana féin","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana"],
- "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"]
+ "To upload files, you need to provide your name first." : "Chun comhaid a uaslódáil, ní mór duit d'ainm a sholáthar ar dtús.",
+ "Enter your name" : "Cuir isteach d'ainm",
+ "Submit name" : "Cuir ainm",
+ "Name" : "Ainm",
+ "Share with accounts, teams, federated cloud id" : "Comhroinn le cuntais, foirne, aitheantas scamall cónaidhme",
+ "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme",
+ "Filename must not be empty." : "Ní ceadmhach ainm an chomhaid a bheith folamh."
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/files_sharing/l10n/ga.json b/apps/files_sharing/l10n/ga.json
index b3810edc4be..4e1ffc94cae 100644
--- a/apps/files_sharing/l10n/ga.json
+++ b/apps/files_sharing/l10n/ga.json
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "Socraigh fillteán réamhshocraithe le haghaidh scaireanna glactha",
"Reset" : "Athshocraigh",
"Reset folder to system default" : "Athshocraigh an fillteán go réamhshocrú an chórais",
- "Share expiration: " : "Éaga scaireanna:",
+ "Share expiration: {date}" : "Éaga scaireanna: {date}",
"Share Expiration" : "Comhroinn Éaga",
"group" : "grúpa",
"conversation" : "comhrá",
@@ -255,14 +255,9 @@
"File drop" : "Titim comhad",
"Upload files to {foldername}." : "Uaslódáil comhaid go {foldername}.",
"By uploading files, you agree to the terms of service." : "Trí chomhaid a uaslódáil, aontaíonn tú leis na téarmaí seirbhíse.",
+ "Successfully uploaded files" : "Uaslódáileadh na comhaid go rathúil",
"View terms of service" : "Féach ar théarmaí seirbhíse",
"Terms of service" : "Tearmaí Seirbhís",
- "Upload files to {folder}" : "Uaslódáil comhaid go {folder}",
- "Submit name" : "Cuir ainm",
- "{ownerDisplayName} shared a folder with you." : "Roinn {ownerDisplayName} fillteán leat.",
- "To upload files, you need to provide your name first." : "Chun comhaid a uaslódáil, ní mór duit d'ainm a sholáthar ar dtús.",
- "Name" : "Ainm",
- "Enter your name" : "Cuir isteach d'ainm",
"Share with {userName}" : "Roinn le {userName}",
"Share with email {email}" : "Roinn le ríomhphost {email}",
"Share with group" : "Roinn leis an ngrúpa",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le foirne laistigh de d'eagraíocht. Má tá rochtain ag an bhfaighteoir ar an sciar cheana féin ach nach féidir leis í a aimsiú, is féidir leat an nasc scaire inmheánach a sheoladh chucu le go mbeidh rochtain éasca air.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bain úsáid as an modh seo chun comhaid a roinnt le daoine aonair nó le heagraíochtaí lasmuigh de d'eagraíocht. Is féidir comhaid agus fillteáin a roinnt trí naisc scaireanna poiblí agus seoltaí ríomhphoist. Is féidir leat a roinnt freisin le cuntais Nextcloud eile arna óstáil ar chásanna éagsúla ag baint úsáide as a n-ID néil cónasctha.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Scaireanna nach cuid de na scaireanna inmheánacha nó seachtracha iad. Is féidir gur scaireanna iad seo ó aipeanna nó ó fhoinsí eile.",
+ "Share with accounts, teams, federated cloud IDs" : "Comhroinn le cuntais, foirne, agus aitheantóirí scamall cónaidhme",
+ "Share with accounts and teams" : "Roinn le cuntais agus foirne",
+ "Federated cloud ID" : "ID scamall cónaidhme",
+ "Email, federated cloud ID" : "Ríomhphost, ID scamall cónaidhme",
"Unable to load the shares list" : "Ní féidir an liosta scaireanna a lódáil",
"Expires {relativetime}" : "In éag {relativetime}",
"this share just expired." : "tá an sciar seo díreach imithe in éag.",
"Shared with you by {owner}" : "Roinnte ag {owner} leat",
"Internal shares" : "Scaireanna inmheánacha",
"Internal shares explanation" : "Míniú ar scaireanna inmheánacha",
- "Share with accounts and teams" : "Roinn le cuntais agus foirne",
"External shares" : "Scaireanna seachtracha",
"External shares explanation" : "Míniú ar scaireanna seachtracha",
- "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme",
"Additional shares" : "Scaireanna breise",
"Additional shares explanation" : "Míniú ar scaireanna breise",
"Link to a file" : "Nasc chuig comhad",
@@ -381,6 +378,17 @@
"Share note for recipient saved" : "Comhroinn nóta don fhaighteoir sábháilte",
"Share password saved" : "Comhroinn pasfhocal sábháilte",
"Share permissions saved" : "Sábháladh ceadanna comhroinnte",
+ "To upload files to {folder}, you need to provide your name first." : "Chun comhaid a uaslódáil chuig {folder}, ní mór duit d'ainm a sholáthar ar dtús.",
+ "Upload files to {folder}" : "Uaslódáil comhaid go {folder}",
+ "Please confirm your name to upload files to {folder}" : "Deimhnigh d'ainm le do thoil chun comhaid a uaslódáil chuig {folder}",
+ "{ownerDisplayName} shared a folder with you." : "Roinn {ownerDisplayName} fillteán leat.",
+ "Names must not be empty." : "Ní féidir ainmneacha a bheith folamh.",
+ "Names must not start with a dot." : "Ní mór ainmneacha a bheith ag tosú le ponc.",
+ "\"{char}\" is not allowed inside a name." : "Ní cheadaítear \"{char}\" laistigh d'ainm.",
+ "\"{segment}\" is a reserved name and not allowed." : "Is ainm curtha in áirithe é \"{segment}\" agus ní cheadaítear é.",
+ "\"{extension}\" is not an allowed name." : "Ní ainm ceadaithe é \"{extension}\".",
+ "Names must not end with \"{extension}\"." : "Ní féidir ainmneacha a chríochnú le \"{extension}\".",
+ "Invalid name." : "Ainm neamhbhailí.",
"Shared by" : "Roinnte ag",
"Shared with" : "Roinnte le",
"Password created successfully" : "Pasfhocal cruthaithe go rathúil",
@@ -411,15 +419,18 @@
"No compatible server found at {remote}" : "Níor aimsíodh aon fhreastalaí comhoiriúnach ag {remote}",
"Invalid server URL" : "URL freastalaí neamhbhailí",
"Failed to add the public link to your Nextcloud" : "Theip ar an nasc poiblí a chur le do Nextcloud",
- "Files" : "Comhaid",
+ "You are not allowed to edit link shares that you don't own" : "Níl cead agat scaireanna naisc nach leatsa a chur in eagar",
"Download all files" : "Gach comhaid a íoslódáil",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 seoladh ríomhphoist curtha leis cheana féin","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana"],
+ "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"],
"Search for share recipients" : "Cuardaigh faighteoirí scaireanna",
"No recommendations. Start typing." : "Gan moltaí. Tosaigh ag clóscríobh.",
- "Password field can't be empty" : "Ní féidir le réimse an phasfhocail a bheith folamh",
- "Allow download" : "Ceadaigh íoslódáil",
- "Share expire date saved" : "Comhroinn dáta éaga sábháilte",
- "You are not allowed to edit link shares that you don't own" : "Níl cead agat scaireanna naisc nach leatsa a chur in eagar",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 seoladh ríomhphoist curtha leis cheana féin","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana","{count} seoladh ríomhphoist curtha leis cheana"],
- "_1 email address added_::_{count} email addresses added_" : ["Cuireadh 1 seoladh ríomhphoist leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis","{count} seoladh ríomhphoist curtha leis"]
+ "To upload files, you need to provide your name first." : "Chun comhaid a uaslódáil, ní mór duit d'ainm a sholáthar ar dtús.",
+ "Enter your name" : "Cuir isteach d'ainm",
+ "Submit name" : "Cuir ainm",
+ "Name" : "Ainm",
+ "Share with accounts, teams, federated cloud id" : "Comhroinn le cuntais, foirne, aitheantas scamall cónaidhme",
+ "Email, federated cloud id" : "Ríomhphost, aitheantas scamall cónaidhme",
+ "Filename must not be empty." : "Ní ceadmhach ainm an chomhaid a bheith folamh."
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js
index 2e20156781c..53ed66b6c03 100644
--- a/apps/files_sharing/l10n/gl.js
+++ b/apps/files_sharing/l10n/gl.js
@@ -257,12 +257,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "Ao enviar ficheiros acepta as condicións de servizo.",
"View terms of service" : "Ver as condicións de servizo",
"Terms of service" : "Condicións de servizo",
- "Upload files to {folder}" : "Enviar ficheiros a {folder}",
- "Submit name" : "Enviar o nome",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartiu un cartafol con Vde.",
- "To upload files, you need to provide your name first." : "Para enviar ficheiros, primeiro debes fornecer o teu nome.",
- "Name" : "Nome",
- "Enter your name" : "Introduza o seu nome",
"Share with {userName}" : "Compartir con {userName}",
"Share with email {email}" : "Compartir co correo {email}",
"Share with group" : "Compartir co grupo",
@@ -311,16 +305,15 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Empregue este método para compartir ficheiros con persoas ou equipos dentro da súa organización. Se o destinatario xa ten acceso á compartición mais non pode localizalo, pode enviarlles a ligazón de compartición interna para un acceso doado.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Empregue este método para compartir ficheiros con persoas ou organizacións alleas á súa organización. Os ficheiros e cartafoles pódense compartir mediante ligazóns públicas e enderezos de correo-e. Tamén pode compartir con outras contas de Nextcloud aloxadas en diferentes instancias usando o seu ID de nube federado.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticións que non formen parte das comparticións internas ou externas. Pode tratarse de comparticións desde aplicacións ou outras orixes.",
+ "Share with accounts and teams" : "Compartir con contas e equipos",
"Unable to load the shares list" : "Non é posíbel cargar a lista de comparticións",
"Expires {relativetime}" : "Caducidades {relativetime}",
"this share just expired." : "vén de caducar esta compartición",
"Shared with you by {owner}" : "Compartido con Vde. por {owner}",
"Internal shares" : "Comparticións internas",
"Internal shares explanation" : "Explicación das comparticións internas",
- "Share with accounts and teams" : "Compartir con contas e equipos",
"External shares" : "Comparticións externas",
"External shares explanation" : "Explicación das comparticións externas",
- "Email, federated cloud id" : "Correo-e, ID da nube federada",
"Additional shares" : "Comparticións adicionais",
"Additional shares explanation" : "Explicación das comparticións adicionais",
"Link to a file" : "Ligazón a un ficheiro",
@@ -369,6 +362,7 @@ OC.L10N.register(
"List of unapproved shares." : "Lista de comparticións non aprobadas.",
"No pending shares" : "Non hai comparticións pendentes",
"Shares you have received but not approved will show up here" : "As comparticións que recibiu mais non aprobou amosaranse aquí",
+ "Error deleting the share" : "Produciuse un erro ao eliminar a compartición",
"Error updating the share: {errorMessage}" : "Produciuse un erro ao actualizar a compartición: {errorMessage}",
"Error updating the share" : "Produciuse un erro ao actualizar a compartición",
"File \"{path}\" has been unshared" : "Foi retirado o ficheiro compartido «{path}».",
@@ -381,6 +375,8 @@ OC.L10N.register(
"Share note for recipient saved" : "Gardouse a nota de compartición para o destinatario",
"Share password saved" : "Gardouse o contrasinal para compartir",
"Share permissions saved" : "Gardáronse os permisos para compartir",
+ "Upload files to {folder}" : "Enviar ficheiros a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartiu un cartafol con Vde.",
"Shared by" : "Compartido por",
"Shared with" : "Compartido con",
"Password created successfully" : "O contrasinal foi creado correctamente",
@@ -411,15 +407,17 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Non se atopa un servidor compatíbel en {remote}",
"Invalid server URL" : "URL de servidor incorrecto",
"Failed to add the public link to your Nextcloud" : "Non foi posíbel engadir a ligazón pública ao seu Nextcloud",
- "Files" : "Ficheiros",
+ "You are not allowed to edit link shares that you don't own" : "Vde. non ten permiso para editar as ligazóns compartidas das que non é o propietario",
"Download all files" : "Descargar todos os ficheiros",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Xa foi engadido 1 enderezo de correo","Xa foron engadidos {count} enderezos de correo"],
+ "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"],
"Search for share recipients" : "Buscar destinatarios de comparticións",
"No recommendations. Start typing." : "Non hai recomendacións. Comece a escribir.",
- "Password field can't be empty" : "O campo de contrasinal non pode estar baleiro",
- "Allow download" : "Permitir a descarga",
- "Share expire date saved" : "Gardouse a data de caducidade da compartición",
- "You are not allowed to edit link shares that you don't own" : "Vde. non ten permiso para editar as ligazóns compartidas das que non é o propietario",
- "_1 email address already added_::_{count} email addresses already added_" : ["Xa foi engadido 1 enderezo de correo","Xa foron engadidos {count} enderezos de correo"],
- "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"]
+ "To upload files, you need to provide your name first." : "Para enviar ficheiros, primeiro debes fornecer o teu nome.",
+ "Enter your name" : "Introduza o seu nome",
+ "Submit name" : "Enviar o nome",
+ "Name" : "Nome",
+ "Email, federated cloud id" : "Correo-e, ID da nube federada",
+ "Filename must not be empty." : "O nome de ficheiro non debe estar baleiro"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json
index 54b670b06a0..dfb84a6d3b4 100644
--- a/apps/files_sharing/l10n/gl.json
+++ b/apps/files_sharing/l10n/gl.json
@@ -255,12 +255,6 @@
"By uploading files, you agree to the terms of service." : "Ao enviar ficheiros acepta as condicións de servizo.",
"View terms of service" : "Ver as condicións de servizo",
"Terms of service" : "Condicións de servizo",
- "Upload files to {folder}" : "Enviar ficheiros a {folder}",
- "Submit name" : "Enviar o nome",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartiu un cartafol con Vde.",
- "To upload files, you need to provide your name first." : "Para enviar ficheiros, primeiro debes fornecer o teu nome.",
- "Name" : "Nome",
- "Enter your name" : "Introduza o seu nome",
"Share with {userName}" : "Compartir con {userName}",
"Share with email {email}" : "Compartir co correo {email}",
"Share with group" : "Compartir co grupo",
@@ -309,16 +303,15 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Empregue este método para compartir ficheiros con persoas ou equipos dentro da súa organización. Se o destinatario xa ten acceso á compartición mais non pode localizalo, pode enviarlles a ligazón de compartición interna para un acceso doado.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Empregue este método para compartir ficheiros con persoas ou organizacións alleas á súa organización. Os ficheiros e cartafoles pódense compartir mediante ligazóns públicas e enderezos de correo-e. Tamén pode compartir con outras contas de Nextcloud aloxadas en diferentes instancias usando o seu ID de nube federado.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Comparticións que non formen parte das comparticións internas ou externas. Pode tratarse de comparticións desde aplicacións ou outras orixes.",
+ "Share with accounts and teams" : "Compartir con contas e equipos",
"Unable to load the shares list" : "Non é posíbel cargar a lista de comparticións",
"Expires {relativetime}" : "Caducidades {relativetime}",
"this share just expired." : "vén de caducar esta compartición",
"Shared with you by {owner}" : "Compartido con Vde. por {owner}",
"Internal shares" : "Comparticións internas",
"Internal shares explanation" : "Explicación das comparticións internas",
- "Share with accounts and teams" : "Compartir con contas e equipos",
"External shares" : "Comparticións externas",
"External shares explanation" : "Explicación das comparticións externas",
- "Email, federated cloud id" : "Correo-e, ID da nube federada",
"Additional shares" : "Comparticións adicionais",
"Additional shares explanation" : "Explicación das comparticións adicionais",
"Link to a file" : "Ligazón a un ficheiro",
@@ -367,6 +360,7 @@
"List of unapproved shares." : "Lista de comparticións non aprobadas.",
"No pending shares" : "Non hai comparticións pendentes",
"Shares you have received but not approved will show up here" : "As comparticións que recibiu mais non aprobou amosaranse aquí",
+ "Error deleting the share" : "Produciuse un erro ao eliminar a compartición",
"Error updating the share: {errorMessage}" : "Produciuse un erro ao actualizar a compartición: {errorMessage}",
"Error updating the share" : "Produciuse un erro ao actualizar a compartición",
"File \"{path}\" has been unshared" : "Foi retirado o ficheiro compartido «{path}».",
@@ -379,6 +373,8 @@
"Share note for recipient saved" : "Gardouse a nota de compartición para o destinatario",
"Share password saved" : "Gardouse o contrasinal para compartir",
"Share permissions saved" : "Gardáronse os permisos para compartir",
+ "Upload files to {folder}" : "Enviar ficheiros a {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartiu un cartafol con Vde.",
"Shared by" : "Compartido por",
"Shared with" : "Compartido con",
"Password created successfully" : "O contrasinal foi creado correctamente",
@@ -409,15 +405,17 @@
"No compatible server found at {remote}" : "Non se atopa un servidor compatíbel en {remote}",
"Invalid server URL" : "URL de servidor incorrecto",
"Failed to add the public link to your Nextcloud" : "Non foi posíbel engadir a ligazón pública ao seu Nextcloud",
- "Files" : "Ficheiros",
+ "You are not allowed to edit link shares that you don't own" : "Vde. non ten permiso para editar as ligazóns compartidas das que non é o propietario",
"Download all files" : "Descargar todos os ficheiros",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Xa foi engadido 1 enderezo de correo","Xa foron engadidos {count} enderezos de correo"],
+ "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"],
"Search for share recipients" : "Buscar destinatarios de comparticións",
"No recommendations. Start typing." : "Non hai recomendacións. Comece a escribir.",
- "Password field can't be empty" : "O campo de contrasinal non pode estar baleiro",
- "Allow download" : "Permitir a descarga",
- "Share expire date saved" : "Gardouse a data de caducidade da compartición",
- "You are not allowed to edit link shares that you don't own" : "Vde. non ten permiso para editar as ligazóns compartidas das que non é o propietario",
- "_1 email address already added_::_{count} email addresses already added_" : ["Xa foi engadido 1 enderezo de correo","Xa foron engadidos {count} enderezos de correo"],
- "_1 email address added_::_{count} email addresses added_" : ["Foi engadido 1 enderezo de correo","Foron engadidos {count} enderezos de correo"]
+ "To upload files, you need to provide your name first." : "Para enviar ficheiros, primeiro debes fornecer o teu nome.",
+ "Enter your name" : "Introduza o seu nome",
+ "Submit name" : "Enviar o nome",
+ "Name" : "Nome",
+ "Email, federated cloud id" : "Correo-e, ID da nube federada",
+ "Filename must not be empty." : "O nome de ficheiro non debe estar baleiro"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/he.js b/apps/files_sharing/l10n/he.js
deleted file mode 100644
index d594bcfc0fb..00000000000
--- a/apps/files_sharing/l10n/he.js
+++ /dev/null
@@ -1,214 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "File shares" : "שיתופי קבצים",
- "Downloaded via public link" : "הורד על בסיס קישור ציבורי",
- "Downloaded by {email}" : "הורד על ידי {email}",
- "{file} downloaded via public link" : "{file} התקבל דרך קישור ציבורי",
- "{email} downloaded {file}" : "{file} הורד על ידי {email}",
- "Shared with group {group}" : "שותף עם הקבוצה {group}",
- "Removed share for group {group}" : "הוסר שיתוף עם הקבוצה {group}",
- "{actor} shared with group {group}" : "שותף עם הקבוצה {group} על ידי {actor}",
- "{actor} removed share for group {group}" : "הוסר השיתוף עם הקבוצה {group} על ידי {actor}",
- "Share for group {group} expired" : "תוקף השיתוף עם הקבוצה {group} פג",
- "You shared {file} with group {group}" : "שיתפת {file} עם הקבוצה {group}",
- "You removed group {group} from {file}" : "הסרת את הקבוצה {group} מהקובץ {file}",
- "{actor} shared {file} with group {group}" : "הקובץ {file} שותף עם הקבוצה {group} על ידי {actor}",
- "{actor} removed group {group} from {file}" : "הקבוצה {group} הוסרה מהשיתוף {file} על ידי {actor}",
- "Share for file {file} with group {group} expired" : "תוקף שיתוף הקובץ {file} עם הקבוצה {group} פג",
- "Shared as public link" : "שותף כקישור ציבורי",
- "Removed public link" : "הסיר/ה קישור ציבורי",
- "Public link expired" : "קישור ציבורי פג תוקף",
- "{actor} shared as public link" : "שותף כקישור ציבורי על ידי {actor}",
- "{actor} removed public link" : "הקישור הציבורי הוסר על ידי {actor}",
- "Public link of {actor} expired" : "תוקף הקישור הציבורי של {actor} פג",
- "You shared {file} as public link" : "שיתפת את {file} כקישור ציבורי",
- "You removed public link for {file}" : "הסרת קישור ציבורי עבור {file}",
- "Public link expired for {file}" : "תוקף הקישור הציבורי עבור {file} פג",
- "{actor} shared {file} as public link" : "{file} שותף כקישור ציבורי על ידי {actor}",
- "{actor} removed public link for {file}" : "הקישור הציבורי עבור {file} הוסר על ידי {actor}",
- "Public link of {actor} for {file} expired" : "תוקף הקישור הציבורי של {actor} עבור {file} פג",
- "{user} accepted the remote share" : "השיתוף המרוחק התקבל על ידי {user}",
- "{user} declined the remote share" : "השיתוף המרוחק נדחה על ידי {user}",
- "You received a new remote share {file} from {user}" : "קיבלת שיתוף מרוחק חדש {file} מאת",
- "{user} accepted the remote share of {file}" : "השיתוף המרוחק של {file} התקבל על ידי {user}",
- "{user} declined the remote share of {file}" : "השיתוף המרוחק של {file} נדחה על ידי {user}",
- "{user} unshared {file} from you" : "{user} ביטל שיתוף של {file} ממך",
- "Shared with {user}" : "שותף עם {user}",
- "Removed share for {user}" : "הוסר השיתוף עבור {user}",
- "You removed yourself" : "הסרת את עצמך",
- "{actor} removed themselves" : "{actor} הסירו את עצמם",
- "{actor} shared with {user}" : "שותף עם {user} על ידי {actor}",
- "{actor} removed share for {user}" : "השיתוף עבור {user} הוסר על ידי {actor}",
- "Shared by {actor}" : "שותף על ידי {actor}",
- "{actor} removed share" : "שיתוף הוסר על ידי {actor}",
- "Share for {user} expired" : "תוקף השיתוף של {user} פג",
- "Share expired" : "תוקף השיתוף פג",
- "You shared {file} with {user}" : "שיתפת את {file} עם {user}",
- "You removed {user} from {file}" : "הסרת את {user} מהקובץ {file}",
- "You removed yourself from {file}" : "הסרת את עצמך מהקובץ {file}",
- "{actor} removed themselves from {file}" : "{actor} הסיר את עצמו מ- {file}",
- "{actor} shared {file} with {user}" : "{file} שותף עם {user} על ידי {actor}",
- "{actor} removed {user} from {file}" : "{actor} הסיר את {user} מ- {file}",
- "{actor} shared {file} with you" : "{actor} שיתף {file} איתך",
- "{actor} removed you from the share named {file}" : "הוסרת מהשיתוף בשם {file} על ידי {actor}",
- "Share for file {file} with {user} expired" : "תוקף שיתוף הקובץ {file} עם {user} פג",
- "Share for file {file} expired" : "שיתוף הקובץ {file} פג",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "קובץ או תיקייה ששותפו בדוא״ל או דרך קישור ציבורי <strong>הורדו</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "קובץ או תיקייה שותפו מ- <strong>שרת אחר</strong>",
- "Sharing" : "שיתוף",
- "A file or folder has been <strong>shared</strong>" : "קובץ או תיקייה <strong>שותפו<strong/>",
- "Shared link" : "שותף קישור",
- "Could not delete share" : "לא ניתן היה למחוק את השיתוף",
- "Please specify a file or folder path" : "יש לספק נתיב לקובץ או תיקייה",
- "Could not create share" : "לא ניתן ליצור שיתוף",
- "Group sharing is disabled by the administrator" : "שיתוף קבוצתי מנוטרל על ידי המנהל",
- "Please specify a valid group" : "יש לספק קבוצה חוקית",
- "Public link sharing is disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "שיתוף%s שליחת הסיסמה באמצעות Nextcloud Talk נכשל מכיוון ש- Nextcloud Talk אינו מופעל",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "השיתוף%1$s נכשל מכיוון שה-\"קצה אחורי\" אינו מאפשר שיתופים מסוג %2$s",
- "Sharing %s failed because the back end does not support room shares" : "השיתוף של%sנכשל מכיוון שה-\"קצה אחורי\" אינו תומך בשיתופי חדרים",
- "Unknown share type" : "סוג שיתוף אינו מוכר",
- "Not a directory" : "אינה תיקייה",
- "Could not lock node" : "לא היה ניתן לנעול את הצומת",
- "Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
- "Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
- "Could not lock path" : "לא ניתן היה לנעול נתיב",
- "Wrong or no update parameter given" : "משתנה עדכון שניתן שגוי או לא קיים",
- "Wrong password" : "ססמה שגויה",
- "shared by %s" : "שותף על ידי %s",
- "Download" : "הורדה",
- "Direct link" : "קישור ישיר",
- "Share API is disabled" : "שיתוף API מנוטרל",
- "File sharing" : "שיתוף קבצים",
- "Share will expire tomorrow" : "תוקף השיתוף יפוג מחר",
- "Your share of {node} will expire tomorrow" : "תוקף השיתוף שלך {node} יפוג מחר",
- "You received {share} as a share by {user}" : "קיבלת {share} כשיתוף מאת {user}",
- "You received {share} to group {group} as a share by {user}" : "קיבלת {share} לקבוצה {group} כשיתוף על ידי {user}",
- "Accept" : "קבלה",
- "Decline" : "דחייה",
- "Expiration date" : "מועד תפוגה",
- "Set a password" : "הגדרת ססמה",
- "Password" : "ססמה",
- "Share link" : "שיתוף קישור",
- "Copy to clipboard" : "העתקה ללוח הגזירים",
- "Send link via email" : "שליחת קישור באמצעות דואר אלקטרוני",
- "Link copied to clipboard" : "הקישור הועתק ללוח הגזירים",
- "Select" : "בחר",
- "Cancel" : "ביטול",
- "Close" : "סגירה",
- "Continue" : "להמשך",
- "Error creating the share" : "יצירת השיתוף נכשלה",
- "Reset" : "איפוס",
- "Invalid path selected" : "הנתיב שנבחר שגוי",
- "Unknown error" : "שגיאה בלתי ידועה",
- "group" : "קבוצה",
- "conversation" : "דיון",
- "remote" : "מרוחק",
- "remote group" : "קבוצה מרוחקת",
- "guest" : "אורח",
- "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}",
- "Added by {initiator}" : "נוסף על ידי {initiator}",
- "Via “{folder}”" : "דרך „{folder}”",
- "Unshare" : "ביטול שיתוף",
- "Internal link" : "קישור פנימי",
- "Cannot copy, please copy the link manually" : "לא ניתן להעתיק, נא להעתיק את הקישור ידנית",
- "Link copied" : "הקישור הועתק",
- "Please enter the following required information before creating the share" : "נא למלא את הפרטים הנחוצים הבאים בטרם יצירת השיתוף",
- "Password protection (enforced)" : "הגנה בססמה (נאכף)",
- "Password protection" : "Password protection",
- "Enter a password" : "נא להקליד ססמה",
- "Create share" : "צור שיתוף",
- "Add another link" : "הוספת קישור נוסף",
- "Create a new share link" : "יצירת קישור שיתוף חדש",
- "{shareWith} by {initiator}" : "{shareWith} באמצעות {initiator}",
- "Shared via link by {initiator}" : "שותף דרך קישור על ידי {initiator}",
- "Share link ({label})" : "שתף קישור ({label})",
- "Create public link" : "יצירת קישור ציבורי",
- "Error, please enter proper password and/or expiration date" : "שגיאה, נא למלא ססמה ו/או תאריך תפוגה כראוי",
- "View only" : "לצפיה בלבד",
- "Can edit" : "ניתן לערוך",
- "Resharing is not allowed" : "שיתוף מחדש אסור",
- "Name or email …" : "שם או דוא\"ל ...",
- "Name, email, or Federated Cloud ID …" : "שם, דוא\"ל או ID ענן מאוחד...",
- "Searching …" : "מתבצע חיפוש…",
- "No elements found." : "לא נמצאו רכיבים.",
- "Search globally" : "חיפוש גלובלי",
- "Guest" : "אורח/ת",
- "Group" : "קבוצה",
- "Email" : "דוא״ל",
- "Deck board" : "לוח חסיפה",
- "on {server}" : "על גבי {server}",
- "Note:" : "הערה:",
- "Terms of service" : "תנאי שירות",
- "Allow upload and editing" : "לאפשר העלאה ועריכה",
- "Allow editing" : "לאפשר עריכה",
- "Advanced settings" : "הגדרות מתקדמות",
- "Share label" : "שתף תווית",
- "Video verification" : "אימות וידאו",
- "Expiration date (enforced)" : "תאריך תפוגה (נאכף)",
- "Set expiration date" : "הגדרת תאריך תפוגה",
- "Hide download" : "הסתרת הורדה",
- "Note to recipient" : "מסר לנמען",
- "Enter a note for the share recipient" : "נא להוסיף הערה למקבלי השיתוף",
- "Read" : "קריאה",
- "Edit" : "עריכה",
- "Share" : "שיתוף",
- "Delete" : "מחיקה",
- "Others with access" : "נוספים עם גישה",
- "Toggle list of others with access to this directory" : "החלפת מצב הנוספים עם גישה לתיקייה הזאת",
- "Toggle list of others with access to this file" : "החלפת מצב הנוספים עם גישה לקובץ הזה",
- "Unable to fetch inherited shares" : "לא ניתן לקבל את השיתופים שנורשו",
- "Shares" : "שיתופים",
- "Unable to load the shares list" : "לא ניתן לטעון את רשימת השיתופים",
- "Expires {relativetime}" : "תפוגה: {relativetime}",
- "this share just expired." : "תוקף השיתוף פג זה עתה.",
- "Shared with you by {owner}" : "שותף אתך על ידי {owner}",
- "Link to a file" : "קישור לקובץ",
- "Shared" : "משותף",
- "Shared with others" : "משותף עם אחרים",
- "Public share" : "שיתוף ציבורי",
- "No shares" : "אין שיתופים",
- "Shared with you" : "שיתף/שיתפה אתך",
- "Nothing shared with you yet" : "עדיין לא שיתפו אתך דבר",
- "Nothing shared yet" : "עדיין לא שותף דבר",
- "Shared by link" : "משותף עם קישור",
- "No shared links" : "אין קישורים משותפים",
- "Deleted shares" : "שיתופים שנמחקו",
- "No deleted shares" : "אין שיתופים שנמחקו",
- "Pending shares" : "שיתופים ממתינים",
- "No pending shares" : "אין שיתופים ממתינים",
- "Error updating the share" : "שגיאה בעדכון השיתוף",
- "Shared by" : "שותף על־ידי",
- "Shared with" : "משותף עם",
- "Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} על ידי {owner}",
- "Shared with you and {circle} by {owner}" : "משותף אתך ועם {circle} על ידי {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "שותף אתך והדיון {conversation} על ידי {owner}",
- "Shared with you in a conversation by {owner}" : "שותף אתך בדיון על ידי {owner}",
- "Share note" : "פתק שיתוף",
- "Upload files to %s" : "העלאת קבצים על %s",
- "Note" : "פתק",
- "Select or drop files" : "בחירה או השלכה של קבצים",
- "Uploading files" : "מועלים קבצים",
- "Uploaded files:" : "קבצים שהועלו:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "עצם העלאתם של קבצים מביעה את הסכמתך ל%1$sתנאי השירות%2$s.",
- "Share not found" : "השיתוף לא נמצא",
- "Back to %s" : "חזרה אל %s",
- "Add to your Nextcloud" : "הוספה ל־Nextcloud שלך",
- "Waiting…" : "בהמתנה…",
- "error" : "שגיאה",
- "finished" : "הסתיים",
- "This will stop your current uploads." : "פעולה זו תעצור את השליחות הנוכחיות שלך.",
- "Move or copy" : "העברה או העתקה",
- "You can upload into this folder" : "ניתן להעלות לתיקייה זו",
- "No compatible server found at {remote}" : "לא נמצא שרת תואם בכתובת {remote}",
- "Invalid server URL" : "כתובת השרת שגויה",
- "Failed to add the public link to your Nextcloud" : "אירע כשל בהוספת קישור ציבורי ל־Nextcloud שלך",
- "Files" : "קבצים",
- "Download all files" : "הורדת כל הקבצים",
- "No recommendations. Start typing." : "אין המלצות. נא להתחיל להקליד.",
- "Enter your name" : "נא למלא את שמך"
-},
-"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;");
diff --git a/apps/files_sharing/l10n/he.json b/apps/files_sharing/l10n/he.json
deleted file mode 100644
index 8f32faa5c42..00000000000
--- a/apps/files_sharing/l10n/he.json
+++ /dev/null
@@ -1,212 +0,0 @@
-{ "translations": {
- "File shares" : "שיתופי קבצים",
- "Downloaded via public link" : "הורד על בסיס קישור ציבורי",
- "Downloaded by {email}" : "הורד על ידי {email}",
- "{file} downloaded via public link" : "{file} התקבל דרך קישור ציבורי",
- "{email} downloaded {file}" : "{file} הורד על ידי {email}",
- "Shared with group {group}" : "שותף עם הקבוצה {group}",
- "Removed share for group {group}" : "הוסר שיתוף עם הקבוצה {group}",
- "{actor} shared with group {group}" : "שותף עם הקבוצה {group} על ידי {actor}",
- "{actor} removed share for group {group}" : "הוסר השיתוף עם הקבוצה {group} על ידי {actor}",
- "Share for group {group} expired" : "תוקף השיתוף עם הקבוצה {group} פג",
- "You shared {file} with group {group}" : "שיתפת {file} עם הקבוצה {group}",
- "You removed group {group} from {file}" : "הסרת את הקבוצה {group} מהקובץ {file}",
- "{actor} shared {file} with group {group}" : "הקובץ {file} שותף עם הקבוצה {group} על ידי {actor}",
- "{actor} removed group {group} from {file}" : "הקבוצה {group} הוסרה מהשיתוף {file} על ידי {actor}",
- "Share for file {file} with group {group} expired" : "תוקף שיתוף הקובץ {file} עם הקבוצה {group} פג",
- "Shared as public link" : "שותף כקישור ציבורי",
- "Removed public link" : "הסיר/ה קישור ציבורי",
- "Public link expired" : "קישור ציבורי פג תוקף",
- "{actor} shared as public link" : "שותף כקישור ציבורי על ידי {actor}",
- "{actor} removed public link" : "הקישור הציבורי הוסר על ידי {actor}",
- "Public link of {actor} expired" : "תוקף הקישור הציבורי של {actor} פג",
- "You shared {file} as public link" : "שיתפת את {file} כקישור ציבורי",
- "You removed public link for {file}" : "הסרת קישור ציבורי עבור {file}",
- "Public link expired for {file}" : "תוקף הקישור הציבורי עבור {file} פג",
- "{actor} shared {file} as public link" : "{file} שותף כקישור ציבורי על ידי {actor}",
- "{actor} removed public link for {file}" : "הקישור הציבורי עבור {file} הוסר על ידי {actor}",
- "Public link of {actor} for {file} expired" : "תוקף הקישור הציבורי של {actor} עבור {file} פג",
- "{user} accepted the remote share" : "השיתוף המרוחק התקבל על ידי {user}",
- "{user} declined the remote share" : "השיתוף המרוחק נדחה על ידי {user}",
- "You received a new remote share {file} from {user}" : "קיבלת שיתוף מרוחק חדש {file} מאת",
- "{user} accepted the remote share of {file}" : "השיתוף המרוחק של {file} התקבל על ידי {user}",
- "{user} declined the remote share of {file}" : "השיתוף המרוחק של {file} נדחה על ידי {user}",
- "{user} unshared {file} from you" : "{user} ביטל שיתוף של {file} ממך",
- "Shared with {user}" : "שותף עם {user}",
- "Removed share for {user}" : "הוסר השיתוף עבור {user}",
- "You removed yourself" : "הסרת את עצמך",
- "{actor} removed themselves" : "{actor} הסירו את עצמם",
- "{actor} shared with {user}" : "שותף עם {user} על ידי {actor}",
- "{actor} removed share for {user}" : "השיתוף עבור {user} הוסר על ידי {actor}",
- "Shared by {actor}" : "שותף על ידי {actor}",
- "{actor} removed share" : "שיתוף הוסר על ידי {actor}",
- "Share for {user} expired" : "תוקף השיתוף של {user} פג",
- "Share expired" : "תוקף השיתוף פג",
- "You shared {file} with {user}" : "שיתפת את {file} עם {user}",
- "You removed {user} from {file}" : "הסרת את {user} מהקובץ {file}",
- "You removed yourself from {file}" : "הסרת את עצמך מהקובץ {file}",
- "{actor} removed themselves from {file}" : "{actor} הסיר את עצמו מ- {file}",
- "{actor} shared {file} with {user}" : "{file} שותף עם {user} על ידי {actor}",
- "{actor} removed {user} from {file}" : "{actor} הסיר את {user} מ- {file}",
- "{actor} shared {file} with you" : "{actor} שיתף {file} איתך",
- "{actor} removed you from the share named {file}" : "הוסרת מהשיתוף בשם {file} על ידי {actor}",
- "Share for file {file} with {user} expired" : "תוקף שיתוף הקובץ {file} עם {user} פג",
- "Share for file {file} expired" : "שיתוף הקובץ {file} פג",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "קובץ או תיקייה ששותפו בדוא״ל או דרך קישור ציבורי <strong>הורדו</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "קובץ או תיקייה שותפו מ- <strong>שרת אחר</strong>",
- "Sharing" : "שיתוף",
- "A file or folder has been <strong>shared</strong>" : "קובץ או תיקייה <strong>שותפו<strong/>",
- "Shared link" : "שותף קישור",
- "Could not delete share" : "לא ניתן היה למחוק את השיתוף",
- "Please specify a file or folder path" : "יש לספק נתיב לקובץ או תיקייה",
- "Could not create share" : "לא ניתן ליצור שיתוף",
- "Group sharing is disabled by the administrator" : "שיתוף קבוצתי מנוטרל על ידי המנהל",
- "Please specify a valid group" : "יש לספק קבוצה חוקית",
- "Public link sharing is disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "שיתוף%s שליחת הסיסמה באמצעות Nextcloud Talk נכשל מכיוון ש- Nextcloud Talk אינו מופעל",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "השיתוף%1$s נכשל מכיוון שה-\"קצה אחורי\" אינו מאפשר שיתופים מסוג %2$s",
- "Sharing %s failed because the back end does not support room shares" : "השיתוף של%sנכשל מכיוון שה-\"קצה אחורי\" אינו תומך בשיתופי חדרים",
- "Unknown share type" : "סוג שיתוף אינו מוכר",
- "Not a directory" : "אינה תיקייה",
- "Could not lock node" : "לא היה ניתן לנעול את הצומת",
- "Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
- "Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
- "Could not lock path" : "לא ניתן היה לנעול נתיב",
- "Wrong or no update parameter given" : "משתנה עדכון שניתן שגוי או לא קיים",
- "Wrong password" : "ססמה שגויה",
- "shared by %s" : "שותף על ידי %s",
- "Download" : "הורדה",
- "Direct link" : "קישור ישיר",
- "Share API is disabled" : "שיתוף API מנוטרל",
- "File sharing" : "שיתוף קבצים",
- "Share will expire tomorrow" : "תוקף השיתוף יפוג מחר",
- "Your share of {node} will expire tomorrow" : "תוקף השיתוף שלך {node} יפוג מחר",
- "You received {share} as a share by {user}" : "קיבלת {share} כשיתוף מאת {user}",
- "You received {share} to group {group} as a share by {user}" : "קיבלת {share} לקבוצה {group} כשיתוף על ידי {user}",
- "Accept" : "קבלה",
- "Decline" : "דחייה",
- "Expiration date" : "מועד תפוגה",
- "Set a password" : "הגדרת ססמה",
- "Password" : "ססמה",
- "Share link" : "שיתוף קישור",
- "Copy to clipboard" : "העתקה ללוח הגזירים",
- "Send link via email" : "שליחת קישור באמצעות דואר אלקטרוני",
- "Link copied to clipboard" : "הקישור הועתק ללוח הגזירים",
- "Select" : "בחר",
- "Cancel" : "ביטול",
- "Close" : "סגירה",
- "Continue" : "להמשך",
- "Error creating the share" : "יצירת השיתוף נכשלה",
- "Reset" : "איפוס",
- "Invalid path selected" : "הנתיב שנבחר שגוי",
- "Unknown error" : "שגיאה בלתי ידועה",
- "group" : "קבוצה",
- "conversation" : "דיון",
- "remote" : "מרוחק",
- "remote group" : "קבוצה מרוחקת",
- "guest" : "אורח",
- "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}",
- "Added by {initiator}" : "נוסף על ידי {initiator}",
- "Via “{folder}”" : "דרך „{folder}”",
- "Unshare" : "ביטול שיתוף",
- "Internal link" : "קישור פנימי",
- "Cannot copy, please copy the link manually" : "לא ניתן להעתיק, נא להעתיק את הקישור ידנית",
- "Link copied" : "הקישור הועתק",
- "Please enter the following required information before creating the share" : "נא למלא את הפרטים הנחוצים הבאים בטרם יצירת השיתוף",
- "Password protection (enforced)" : "הגנה בססמה (נאכף)",
- "Password protection" : "Password protection",
- "Enter a password" : "נא להקליד ססמה",
- "Create share" : "צור שיתוף",
- "Add another link" : "הוספת קישור נוסף",
- "Create a new share link" : "יצירת קישור שיתוף חדש",
- "{shareWith} by {initiator}" : "{shareWith} באמצעות {initiator}",
- "Shared via link by {initiator}" : "שותף דרך קישור על ידי {initiator}",
- "Share link ({label})" : "שתף קישור ({label})",
- "Create public link" : "יצירת קישור ציבורי",
- "Error, please enter proper password and/or expiration date" : "שגיאה, נא למלא ססמה ו/או תאריך תפוגה כראוי",
- "View only" : "לצפיה בלבד",
- "Can edit" : "ניתן לערוך",
- "Resharing is not allowed" : "שיתוף מחדש אסור",
- "Name or email …" : "שם או דוא\"ל ...",
- "Name, email, or Federated Cloud ID …" : "שם, דוא\"ל או ID ענן מאוחד...",
- "Searching …" : "מתבצע חיפוש…",
- "No elements found." : "לא נמצאו רכיבים.",
- "Search globally" : "חיפוש גלובלי",
- "Guest" : "אורח/ת",
- "Group" : "קבוצה",
- "Email" : "דוא״ל",
- "Deck board" : "לוח חסיפה",
- "on {server}" : "על גבי {server}",
- "Note:" : "הערה:",
- "Terms of service" : "תנאי שירות",
- "Allow upload and editing" : "לאפשר העלאה ועריכה",
- "Allow editing" : "לאפשר עריכה",
- "Advanced settings" : "הגדרות מתקדמות",
- "Share label" : "שתף תווית",
- "Video verification" : "אימות וידאו",
- "Expiration date (enforced)" : "תאריך תפוגה (נאכף)",
- "Set expiration date" : "הגדרת תאריך תפוגה",
- "Hide download" : "הסתרת הורדה",
- "Note to recipient" : "מסר לנמען",
- "Enter a note for the share recipient" : "נא להוסיף הערה למקבלי השיתוף",
- "Read" : "קריאה",
- "Edit" : "עריכה",
- "Share" : "שיתוף",
- "Delete" : "מחיקה",
- "Others with access" : "נוספים עם גישה",
- "Toggle list of others with access to this directory" : "החלפת מצב הנוספים עם גישה לתיקייה הזאת",
- "Toggle list of others with access to this file" : "החלפת מצב הנוספים עם גישה לקובץ הזה",
- "Unable to fetch inherited shares" : "לא ניתן לקבל את השיתופים שנורשו",
- "Shares" : "שיתופים",
- "Unable to load the shares list" : "לא ניתן לטעון את רשימת השיתופים",
- "Expires {relativetime}" : "תפוגה: {relativetime}",
- "this share just expired." : "תוקף השיתוף פג זה עתה.",
- "Shared with you by {owner}" : "שותף אתך על ידי {owner}",
- "Link to a file" : "קישור לקובץ",
- "Shared" : "משותף",
- "Shared with others" : "משותף עם אחרים",
- "Public share" : "שיתוף ציבורי",
- "No shares" : "אין שיתופים",
- "Shared with you" : "שיתף/שיתפה אתך",
- "Nothing shared with you yet" : "עדיין לא שיתפו אתך דבר",
- "Nothing shared yet" : "עדיין לא שותף דבר",
- "Shared by link" : "משותף עם קישור",
- "No shared links" : "אין קישורים משותפים",
- "Deleted shares" : "שיתופים שנמחקו",
- "No deleted shares" : "אין שיתופים שנמחקו",
- "Pending shares" : "שיתופים ממתינים",
- "No pending shares" : "אין שיתופים ממתינים",
- "Error updating the share" : "שגיאה בעדכון השיתוף",
- "Shared by" : "שותף על־ידי",
- "Shared with" : "משותף עם",
- "Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} על ידי {owner}",
- "Shared with you and {circle} by {owner}" : "משותף אתך ועם {circle} על ידי {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "שותף אתך והדיון {conversation} על ידי {owner}",
- "Shared with you in a conversation by {owner}" : "שותף אתך בדיון על ידי {owner}",
- "Share note" : "פתק שיתוף",
- "Upload files to %s" : "העלאת קבצים על %s",
- "Note" : "פתק",
- "Select or drop files" : "בחירה או השלכה של קבצים",
- "Uploading files" : "מועלים קבצים",
- "Uploaded files:" : "קבצים שהועלו:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "עצם העלאתם של קבצים מביעה את הסכמתך ל%1$sתנאי השירות%2$s.",
- "Share not found" : "השיתוף לא נמצא",
- "Back to %s" : "חזרה אל %s",
- "Add to your Nextcloud" : "הוספה ל־Nextcloud שלך",
- "Waiting…" : "בהמתנה…",
- "error" : "שגיאה",
- "finished" : "הסתיים",
- "This will stop your current uploads." : "פעולה זו תעצור את השליחות הנוכחיות שלך.",
- "Move or copy" : "העברה או העתקה",
- "You can upload into this folder" : "ניתן להעלות לתיקייה זו",
- "No compatible server found at {remote}" : "לא נמצא שרת תואם בכתובת {remote}",
- "Invalid server URL" : "כתובת השרת שגויה",
- "Failed to add the public link to your Nextcloud" : "אירע כשל בהוספת קישור ציבורי ל־Nextcloud שלך",
- "Files" : "קבצים",
- "Download all files" : "הורדת כל הקבצים",
- "No recommendations. Start typing." : "אין המלצות. נא להתחיל להקליד.",
- "Enter your name" : "נא למלא את שמך"
-},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/hr.js b/apps/files_sharing/l10n/hr.js
index 09e9322fc08..16b8b425f4b 100644
--- a/apps/files_sharing/l10n/hr.js
+++ b/apps/files_sharing/l10n/hr.js
@@ -149,8 +149,6 @@ OC.L10N.register(
"on {server}" : "na {server}",
"File drop" : "Povlačenje datoteke",
"Terms of service" : "Uvjeti pružanja usluge",
- "Name" : "Naziv",
- "Enter your name" : "Unesite svoje ime",
"Read" : "Čitaj",
"Create" : "Stvori",
"Edit" : "Uredi",
@@ -191,6 +189,7 @@ OC.L10N.register(
"No deleted shares" : "Nema izbrisanih dijeljenja",
"Pending shares" : "Dijeljenja na čekanju",
"No pending shares" : "Nema dijeljenja na čekanju",
+ "Error deleting the share" : "Pogreška pri brisanju dijeljenja",
"Error updating the share: {errorMessage}" : "Pogreška pri ažuriranju dijeljenja: {errorMessage}",
"Error updating the share" : "Pogreška pri ažuriranju dijeljenja",
"Shared by" : "Podijeljeno od",
@@ -218,8 +217,9 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Nije pronađen nijedan kompatibilni poslužitelj na {remote}",
"Invalid server URL" : "Nevažeći URL poslužitelja",
"Failed to add the public link to your Nextcloud" : "Dodavanje javne poveznice u Nextcloud nije uspjelo",
- "Files" : "Datoteke",
"Download all files" : "Preuzmi sve datoteke",
- "No recommendations. Start typing." : "Nema preporuka. Započnite unos."
+ "No recommendations. Start typing." : "Nema preporuka. Započnite unos.",
+ "Enter your name" : "Unesite svoje ime",
+ "Name" : "Naziv"
},
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/hr.json b/apps/files_sharing/l10n/hr.json
index ad97ec991a6..cd4c7450ccc 100644
--- a/apps/files_sharing/l10n/hr.json
+++ b/apps/files_sharing/l10n/hr.json
@@ -147,8 +147,6 @@
"on {server}" : "na {server}",
"File drop" : "Povlačenje datoteke",
"Terms of service" : "Uvjeti pružanja usluge",
- "Name" : "Naziv",
- "Enter your name" : "Unesite svoje ime",
"Read" : "Čitaj",
"Create" : "Stvori",
"Edit" : "Uredi",
@@ -189,6 +187,7 @@
"No deleted shares" : "Nema izbrisanih dijeljenja",
"Pending shares" : "Dijeljenja na čekanju",
"No pending shares" : "Nema dijeljenja na čekanju",
+ "Error deleting the share" : "Pogreška pri brisanju dijeljenja",
"Error updating the share: {errorMessage}" : "Pogreška pri ažuriranju dijeljenja: {errorMessage}",
"Error updating the share" : "Pogreška pri ažuriranju dijeljenja",
"Shared by" : "Podijeljeno od",
@@ -216,8 +215,9 @@
"No compatible server found at {remote}" : "Nije pronađen nijedan kompatibilni poslužitelj na {remote}",
"Invalid server URL" : "Nevažeći URL poslužitelja",
"Failed to add the public link to your Nextcloud" : "Dodavanje javne poveznice u Nextcloud nije uspjelo",
- "Files" : "Datoteke",
"Download all files" : "Preuzmi sve datoteke",
- "No recommendations. Start typing." : "Nema preporuka. Započnite unos."
+ "No recommendations. Start typing." : "Nema preporuka. Započnite unos.",
+ "Enter your name" : "Unesite svoje ime",
+ "Name" : "Naziv"
},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js
index 18da3531948..5823186be78 100644
--- a/apps/files_sharing/l10n/hu.js
+++ b/apps/files_sharing/l10n/hu.js
@@ -119,6 +119,7 @@ OC.L10N.register(
"Close" : "Bezárás",
"Error creating the share: {errorMessage}" : "Hiba történt a megosztás létrehozása során: {errorMessage}",
"Error creating the share" : "Megosztás létrehozása sikertelen",
+ "File request" : "Fájlkérés",
"Cancel" : "Mégse",
"Continue" : "Folytatás",
"Error while toggling options" : "Hiba a beállítások módosításakor",
@@ -168,7 +169,7 @@ OC.L10N.register(
"View only" : "Csak megtekintés",
"Can edit" : "Szerkesztheti",
"Custom permissions" : "Egyéni jogosultságok",
- "Resharing is not allowed" : "A megosztás továbbadása nem engedélyezett",
+ "Resharing is not allowed" : "A továbbosztás nem engedélyezett",
"Name or email …" : "Név vagy e-mail-cím…",
"Name, email, or Federated Cloud ID …" : "Név, e-mail-cím vagy föderált felhőazonosító…",
"Searching …" : "Keresés…",
@@ -185,8 +186,6 @@ OC.L10N.register(
"Note:" : "Megjegyzés:",
"File drop" : "Fájllerakat",
"Terms of service" : "Szolgáltatási feltételek",
- "Name" : "Név",
- "Enter your name" : "Adja meg a nevét",
"Update share" : "Megosztás frissítése",
"Save share" : "Megosztás mentése",
"Read" : "Olvasás",
@@ -206,6 +205,7 @@ OC.L10N.register(
"Expiration date (enforced)" : "Lejárati idő (megkövetelve)",
"Set expiration date" : "Lejárati idő beállítása",
"Hide download" : "Letöltés elrejtése",
+ "Allow download and sync" : "Letöltés és szinkronizálás engedélyezése",
"Note to recipient" : "Jegyzet a címzettnek",
"Enter a note for the share recipient" : "Adjon meg egy megjegyzést a megosztás címzettje számára",
"Delete share" : "Megosztás törlése",
@@ -218,6 +218,8 @@ OC.L10N.register(
"Expires {relativetime}" : "Lejárat: {relativetime}",
"this share just expired." : "ez a megosztás épp most járt le.",
"Shared with you by {owner}" : "{owner} megosztotta Önnel",
+ "Internal shares" : "Belső megosztások",
+ "External shares" : "Külső megosztások",
"Link to a file" : "Hivatkozás egy fájlhoz",
"_Accept share_::_Accept shares_" : ["Megosztás elfogadása","Megosztások elfogadása"],
"Open in Files" : "Megnyitás a Fájlokban",
@@ -288,10 +290,11 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Nem található kompatibilis kiszolgáló itt: {remote}",
"Invalid server URL" : "Érvénytelen kiszolgáló URL",
"Failed to add the public link to your Nextcloud" : "Nem sikerült hozzáadni a nyilvános hivatkozást a Nexcloudjához",
- "Files" : "Fájlok",
"Download all files" : "Összes fájl letöltése",
"Search for share recipients" : "Megosztás résztvevőinek keresése",
"No recommendations. Start typing." : "Nincs javaslat. Kezdjen gépelni.",
- "Allow download" : "Letöltés engedélyezése"
+ "Enter your name" : "Adja meg a nevét",
+ "Name" : "Név",
+ "Filename must not be empty." : "A fájlnév nem lehet üres."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json
index 524d750ebc4..37da419fff9 100644
--- a/apps/files_sharing/l10n/hu.json
+++ b/apps/files_sharing/l10n/hu.json
@@ -117,6 +117,7 @@
"Close" : "Bezárás",
"Error creating the share: {errorMessage}" : "Hiba történt a megosztás létrehozása során: {errorMessage}",
"Error creating the share" : "Megosztás létrehozása sikertelen",
+ "File request" : "Fájlkérés",
"Cancel" : "Mégse",
"Continue" : "Folytatás",
"Error while toggling options" : "Hiba a beállítások módosításakor",
@@ -166,7 +167,7 @@
"View only" : "Csak megtekintés",
"Can edit" : "Szerkesztheti",
"Custom permissions" : "Egyéni jogosultságok",
- "Resharing is not allowed" : "A megosztás továbbadása nem engedélyezett",
+ "Resharing is not allowed" : "A továbbosztás nem engedélyezett",
"Name or email …" : "Név vagy e-mail-cím…",
"Name, email, or Federated Cloud ID …" : "Név, e-mail-cím vagy föderált felhőazonosító…",
"Searching …" : "Keresés…",
@@ -183,8 +184,6 @@
"Note:" : "Megjegyzés:",
"File drop" : "Fájllerakat",
"Terms of service" : "Szolgáltatási feltételek",
- "Name" : "Név",
- "Enter your name" : "Adja meg a nevét",
"Update share" : "Megosztás frissítése",
"Save share" : "Megosztás mentése",
"Read" : "Olvasás",
@@ -204,6 +203,7 @@
"Expiration date (enforced)" : "Lejárati idő (megkövetelve)",
"Set expiration date" : "Lejárati idő beállítása",
"Hide download" : "Letöltés elrejtése",
+ "Allow download and sync" : "Letöltés és szinkronizálás engedélyezése",
"Note to recipient" : "Jegyzet a címzettnek",
"Enter a note for the share recipient" : "Adjon meg egy megjegyzést a megosztás címzettje számára",
"Delete share" : "Megosztás törlése",
@@ -216,6 +216,8 @@
"Expires {relativetime}" : "Lejárat: {relativetime}",
"this share just expired." : "ez a megosztás épp most járt le.",
"Shared with you by {owner}" : "{owner} megosztotta Önnel",
+ "Internal shares" : "Belső megosztások",
+ "External shares" : "Külső megosztások",
"Link to a file" : "Hivatkozás egy fájlhoz",
"_Accept share_::_Accept shares_" : ["Megosztás elfogadása","Megosztások elfogadása"],
"Open in Files" : "Megnyitás a Fájlokban",
@@ -286,10 +288,11 @@
"No compatible server found at {remote}" : "Nem található kompatibilis kiszolgáló itt: {remote}",
"Invalid server URL" : "Érvénytelen kiszolgáló URL",
"Failed to add the public link to your Nextcloud" : "Nem sikerült hozzáadni a nyilvános hivatkozást a Nexcloudjához",
- "Files" : "Fájlok",
"Download all files" : "Összes fájl letöltése",
"Search for share recipients" : "Megosztás résztvevőinek keresése",
"No recommendations. Start typing." : "Nincs javaslat. Kezdjen gépelni.",
- "Allow download" : "Letöltés engedélyezése"
+ "Enter your name" : "Adja meg a nevét",
+ "Name" : "Név",
+ "Filename must not be empty." : "A fájlnév nem lehet üres."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/hy.js b/apps/files_sharing/l10n/hy.js
deleted file mode 100644
index 2e8a459c6da..00000000000
--- a/apps/files_sharing/l10n/hy.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Չեղարկել",
- "Password" : "Գաղտնաբառ",
- "Name" : "Անուն",
- "Download" : "Ներբեռնել",
- "Download %s" : "Ներբեռնել %s"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/hy.json b/apps/files_sharing/l10n/hy.json
deleted file mode 100644
index a189280c922..00000000000
--- a/apps/files_sharing/l10n/hy.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Cancel" : "Չեղարկել",
- "Password" : "Գաղտնաբառ",
- "Name" : "Անուն",
- "Download" : "Ներբեռնել",
- "Download %s" : "Ներբեռնել %s"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ia.js b/apps/files_sharing/l10n/ia.js
deleted file mode 100644
index 8e6401b8835..00000000000
--- a/apps/files_sharing/l10n/ia.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Cancellar",
- "A file or folder has been <strong>shared</strong>" : "Un file o un dossier ha essite <strong>compartite</strong>",
- "You shared %1$s with %2$s" : "Tu compartiva %1$s con %2$s",
- "You shared %1$s with group %2$s" : "Tu compartiva %1$s con gruppo %2$s",
- "You shared %1$s via link" : "Tu compartiva %1$s via ligamine",
- "%2$s shared %1$s with you" : "%2$s compartiva %1$s con te",
- "Shares" : "Comparti",
- "Password" : "Contrasigno",
- "Name" : "Nomine",
- "Download" : "Discargar"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ia.json b/apps/files_sharing/l10n/ia.json
deleted file mode 100644
index e5efb202155..00000000000
--- a/apps/files_sharing/l10n/ia.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Cancel" : "Cancellar",
- "A file or folder has been <strong>shared</strong>" : "Un file o un dossier ha essite <strong>compartite</strong>",
- "You shared %1$s with %2$s" : "Tu compartiva %1$s con %2$s",
- "You shared %1$s with group %2$s" : "Tu compartiva %1$s con gruppo %2$s",
- "You shared %1$s via link" : "Tu compartiva %1$s via ligamine",
- "%2$s shared %1$s with you" : "%2$s compartiva %1$s con te",
- "Shares" : "Comparti",
- "Password" : "Contrasigno",
- "Name" : "Nomine",
- "Download" : "Discargar"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/id.js b/apps/files_sharing/l10n/id.js
deleted file mode 100644
index d7b18e9fa88..00000000000
--- a/apps/files_sharing/l10n/id.js
+++ /dev/null
@@ -1,69 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with others" : "Dibagikan dengan lainnya",
- "Shared with you" : "Dibagikan dengan Anda",
- "Shared by link" : "Dibagikan dengan tautan",
- "Nothing shared with you yet" : "Tidak ada yang dibagikan kepada Anda",
- "Files and folders others share with you will show up here" : "Berkas dan folder lainnya yang dibagikan kepada Anda akan ditampilkan disini",
- "Nothing shared yet" : "Tidak ada yang dibagikan",
- "Files and folders you share will show up here" : "Berkas dan folder yang Anda bagikan akan ditampilkan disini",
- "No shared links" : "Tidak ada tautan berbagi",
- "Files and folders you share by link will show up here" : "Berkas dan folder yang Anda bagikan menggunakan tautan akan ditampilkan disini",
- "Download" : "Unduh",
- "You can upload into this folder" : "Anda dapat mengunggah kedalam folder ini",
- "No compatible server found at {remote}" : "Tidak ditemukan server yang kompatibel pada {remote}",
- "Invalid server URL" : "Server URL tidak valid",
- "Failed to add the public link to your Nextcloud" : "Gagal menambah tautan publik ke Nextcloud Anda",
- "No expiration date set" : "Tanggal kedaluwarsa tidak diatur",
- "Shared by" : "Dibagikan oleh",
- "Sharing" : "Berbagi",
- "Downloaded via public link" : "Diunduh via tautan publik",
- "Removed public link" : "tautan publik dihapus",
- "Public link expired" : "tautan publik kedaluwarsa",
- "A file or folder was shared from <strong>another server</strong>" : "Sebuah berkas atau folder telah dibagikan dari <strong>server lainnya</strong>",
- "A file or folder has been <strong>shared</strong>" : "Sebuah berkas atau folder telah <strong>dibagikan</strong>",
- "Wrong share ID, share doesn't exist" : "ID pembagian salah, tidak ada yang bisa dibagi",
- "could not delete share" : "tidak dapat menghapus pembagian",
- "Could not delete share" : "Tidak dapat menghapus pembagian",
- "Please specify a file or folder path" : "Tentukan berkas atau folder",
- "Wrong path, file/folder doesn't exist" : "Salah path, berkas/folder tidak ada",
- "Could not create share" : "Tidak dapat membuat pembagian",
- "invalid permissions" : "izin tidak sah",
- "Please specify a valid user" : "Tentukan pengguna yang valid",
- "Group sharing is disabled by the administrator" : "Berbagi grup dinonaktifkan oleh administrator",
- "Please specify a valid group" : "Tentukan grup yang valid",
- "Public link sharing is disabled by the administrator" : "Pembagian tautan publik dinonaktifkan oleh administrator",
- "Public upload disabled by the administrator" : "Pengunggahan publik dinonaktifkan oleh administrator",
- "Public upload is only possible for publicly shared folders" : "Pengunggahan publik hanya bisa untuk folder yang dibagikan kepada publik",
- "Invalid date, date format must be YYYY-MM-DD" : "Tanggal salah, format tanggal harus TTTT-BB-HH",
- "Unknown share type" : "Tipe berbagi tidak diketahui",
- "Not a directory" : "Bukan direktori",
- "Could not lock path" : "Tidak dapat mengunci path",
- "Wrong or no update parameter given" : "Parameter salah atau tidak diperbarui",
- "Can't change permissions for public share links" : "Tidak dapat mengubah izin untuk tautan berbagi publik",
- "Cannot increase permissions" : "Tidak dapat menambah izin",
- "Direct link" : "Tautan langsung",
- "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda",
- "Share API is disabled" : "API pembagian dinonaktifkan",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Name" : "Nama",
- "Share time" : "Waktu berbagi",
- "Expiration date" : "Tanggal kedaluwarsa",
- "Sorry, this link doesn’t seem to work anymore." : "Maaf, tautan ini tampaknya tidak berfungsi lagi.",
- "Reasons might be:" : "Alasan yang mungkin:",
- "the item was removed" : "item telah dihapus",
- "the link expired" : "tautan telah kedaluwarsa",
- "sharing is disabled" : "berbagi dinonaktifkan",
- "For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.",
- "Download %s" : "Unduh %s",
- "Upload files to %s" : "Unggah berkas ke %s",
- "Select or drop files" : "Pilih atau drop berkas",
- "Uploading files…" : "Mengunggah berkas...",
- "Uploaded files:" : "Berkas terunggah:",
- "Sharing %s failed because the back end does not allow shares from type %s" : "Gagal berbagi %s karena backend tidak mengizinkan berbagi dengan tipe %s",
- "This share is password-protected" : "Berbagi ini dilindungi kata sandi",
- "The password is wrong. Try again." : "Kata sandi salah. Coba lagi",
- "Password" : "Kata sandi"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/id.json b/apps/files_sharing/l10n/id.json
deleted file mode 100644
index 3226abaeba0..00000000000
--- a/apps/files_sharing/l10n/id.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{ "translations": {
- "Shared with others" : "Dibagikan dengan lainnya",
- "Shared with you" : "Dibagikan dengan Anda",
- "Shared by link" : "Dibagikan dengan tautan",
- "Nothing shared with you yet" : "Tidak ada yang dibagikan kepada Anda",
- "Files and folders others share with you will show up here" : "Berkas dan folder lainnya yang dibagikan kepada Anda akan ditampilkan disini",
- "Nothing shared yet" : "Tidak ada yang dibagikan",
- "Files and folders you share will show up here" : "Berkas dan folder yang Anda bagikan akan ditampilkan disini",
- "No shared links" : "Tidak ada tautan berbagi",
- "Files and folders you share by link will show up here" : "Berkas dan folder yang Anda bagikan menggunakan tautan akan ditampilkan disini",
- "Download" : "Unduh",
- "You can upload into this folder" : "Anda dapat mengunggah kedalam folder ini",
- "No compatible server found at {remote}" : "Tidak ditemukan server yang kompatibel pada {remote}",
- "Invalid server URL" : "Server URL tidak valid",
- "Failed to add the public link to your Nextcloud" : "Gagal menambah tautan publik ke Nextcloud Anda",
- "No expiration date set" : "Tanggal kedaluwarsa tidak diatur",
- "Shared by" : "Dibagikan oleh",
- "Sharing" : "Berbagi",
- "Downloaded via public link" : "Diunduh via tautan publik",
- "Removed public link" : "tautan publik dihapus",
- "Public link expired" : "tautan publik kedaluwarsa",
- "A file or folder was shared from <strong>another server</strong>" : "Sebuah berkas atau folder telah dibagikan dari <strong>server lainnya</strong>",
- "A file or folder has been <strong>shared</strong>" : "Sebuah berkas atau folder telah <strong>dibagikan</strong>",
- "Wrong share ID, share doesn't exist" : "ID pembagian salah, tidak ada yang bisa dibagi",
- "could not delete share" : "tidak dapat menghapus pembagian",
- "Could not delete share" : "Tidak dapat menghapus pembagian",
- "Please specify a file or folder path" : "Tentukan berkas atau folder",
- "Wrong path, file/folder doesn't exist" : "Salah path, berkas/folder tidak ada",
- "Could not create share" : "Tidak dapat membuat pembagian",
- "invalid permissions" : "izin tidak sah",
- "Please specify a valid user" : "Tentukan pengguna yang valid",
- "Group sharing is disabled by the administrator" : "Berbagi grup dinonaktifkan oleh administrator",
- "Please specify a valid group" : "Tentukan grup yang valid",
- "Public link sharing is disabled by the administrator" : "Pembagian tautan publik dinonaktifkan oleh administrator",
- "Public upload disabled by the administrator" : "Pengunggahan publik dinonaktifkan oleh administrator",
- "Public upload is only possible for publicly shared folders" : "Pengunggahan publik hanya bisa untuk folder yang dibagikan kepada publik",
- "Invalid date, date format must be YYYY-MM-DD" : "Tanggal salah, format tanggal harus TTTT-BB-HH",
- "Unknown share type" : "Tipe berbagi tidak diketahui",
- "Not a directory" : "Bukan direktori",
- "Could not lock path" : "Tidak dapat mengunci path",
- "Wrong or no update parameter given" : "Parameter salah atau tidak diperbarui",
- "Can't change permissions for public share links" : "Tidak dapat mengubah izin untuk tautan berbagi publik",
- "Cannot increase permissions" : "Tidak dapat menambah izin",
- "Direct link" : "Tautan langsung",
- "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda",
- "Share API is disabled" : "API pembagian dinonaktifkan",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Name" : "Nama",
- "Share time" : "Waktu berbagi",
- "Expiration date" : "Tanggal kedaluwarsa",
- "Sorry, this link doesn’t seem to work anymore." : "Maaf, tautan ini tampaknya tidak berfungsi lagi.",
- "Reasons might be:" : "Alasan yang mungkin:",
- "the item was removed" : "item telah dihapus",
- "the link expired" : "tautan telah kedaluwarsa",
- "sharing is disabled" : "berbagi dinonaktifkan",
- "For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.",
- "Download %s" : "Unduh %s",
- "Upload files to %s" : "Unggah berkas ke %s",
- "Select or drop files" : "Pilih atau drop berkas",
- "Uploading files…" : "Mengunggah berkas...",
- "Uploaded files:" : "Berkas terunggah:",
- "Sharing %s failed because the back end does not allow shares from type %s" : "Gagal berbagi %s karena backend tidak mengizinkan berbagi dengan tipe %s",
- "This share is password-protected" : "Berbagi ini dilindungi kata sandi",
- "The password is wrong. Try again." : "Kata sandi salah. Coba lagi",
- "Password" : "Kata sandi"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js
index cf7965eb69c..28da9fac275 100644
--- a/apps/files_sharing/l10n/is.js
+++ b/apps/files_sharing/l10n/is.js
@@ -238,12 +238,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "Með því að senda inn skrár, samþykkir þú þjónustuskilmálana.",
"View terms of service" : "Skoða þjónustuskilmála",
"Terms of service" : "Þjónustuskilmálar",
- "Upload files to {folder}" : "Senda skrár inn í {folder}",
- "Submit name" : "Nafn við innsendingu",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deildi möppu með þér.",
- "To upload files, you need to provide your name first." : "Til að senda inn skrár þarftu fyrst að gefa upp nafnið þitt.",
- "Name" : "Heiti",
- "Enter your name" : "Settu inn nafnið þitt",
"Share with {userName}" : "Deila með {userName}",
"Share with email {email}" : "Deila í tölvupósti með {email}",
"Share with group" : "Deila með hópi",
@@ -286,16 +280,15 @@ OC.L10N.register(
"Unable to fetch inherited shares" : "Mistókst að sækja erfðar sameignir",
"Link shares" : "Sameignartenglar",
"Shares" : "Sameignir",
+ "Share with accounts and teams" : "Deila með notendaaðgöngum og teymum",
"Unable to load the shares list" : "Mistókst aði hlaða inn lista yfir sameignir",
"Expires {relativetime}" : "Rennur út {relativetime}",
"this share just expired." : "Þessi sameign var að renna út.",
"Shared with you by {owner}" : "Deilt með þér af {owner}",
"Internal shares" : "Innri sameignir",
"Internal shares explanation" : "Útskýring á innri sameignum",
- "Share with accounts and teams" : "Deila með notendaaðgöngum og teymum",
"External shares" : "Utanaðkomandi sameignir",
"External shares explanation" : "Útskýring á utanaðkomandi sameignum",
- "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)",
"Additional shares" : "Viðbótarsameignir",
"Additional shares explanation" : "Útskýring á viðbótarsameignum",
"Link to a file" : "Tengill í skrá",
@@ -355,6 +348,8 @@ OC.L10N.register(
"Share note for recipient saved" : "Minnispunktur til viðtakanda sameignar vistaður",
"Share password saved" : "Lykilorð sameignar vistað",
"Share permissions saved" : "Heimildir sameignar vistaðar",
+ "Upload files to {folder}" : "Senda skrár inn í {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deildi möppu með þér.",
"Shared by" : "Deilt af",
"Shared with" : "Deilt með",
"Password created successfully" : "Tókst að búa til lykilorð",
@@ -385,14 +380,17 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Enginn samhæfður vefþjónn fannst á {remote}",
"Invalid server URL" : "Ógild URI-slóð vefþjóns",
"Failed to add the public link to your Nextcloud" : "Mistókst að bæta opinberum tengli í þitt eigið Nextcloud",
- "Files" : "Skrár",
+ "You are not allowed to edit link shares that you don't own" : "Þú hefur ekki heimild til að breyta tenglum á sameignir sem þú átt ekki.",
"Download all files" : "Sækja allar skrár",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"],
"Search for share recipients" : "Leita að viðtakendum sameignar",
"No recommendations. Start typing." : "Engar tillögur. Byrjaðu að skrifa.",
- "Allow download" : "Leyfa niðurhal",
- "Share expire date saved" : "Lokagildistími sameignar vistaður",
- "You are not allowed to edit link shares that you don't own" : "Þú hefur ekki heimild til að breyta tenglum á sameignir sem þú átt ekki.",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"],
- "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"]
+ "To upload files, you need to provide your name first." : "Til að senda inn skrár þarftu fyrst að gefa upp nafnið þitt.",
+ "Enter your name" : "Settu inn nafnið þitt",
+ "Submit name" : "Nafn við innsendingu",
+ "Name" : "Heiti",
+ "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)",
+ "Filename must not be empty." : "Skráarheiti má ekki vera tómt."
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json
index cfdddcc228c..2d91e0dd209 100644
--- a/apps/files_sharing/l10n/is.json
+++ b/apps/files_sharing/l10n/is.json
@@ -236,12 +236,6 @@
"By uploading files, you agree to the terms of service." : "Með því að senda inn skrár, samþykkir þú þjónustuskilmálana.",
"View terms of service" : "Skoða þjónustuskilmála",
"Terms of service" : "Þjónustuskilmálar",
- "Upload files to {folder}" : "Senda skrár inn í {folder}",
- "Submit name" : "Nafn við innsendingu",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deildi möppu með þér.",
- "To upload files, you need to provide your name first." : "Til að senda inn skrár þarftu fyrst að gefa upp nafnið þitt.",
- "Name" : "Heiti",
- "Enter your name" : "Settu inn nafnið þitt",
"Share with {userName}" : "Deila með {userName}",
"Share with email {email}" : "Deila í tölvupósti með {email}",
"Share with group" : "Deila með hópi",
@@ -284,16 +278,15 @@
"Unable to fetch inherited shares" : "Mistókst að sækja erfðar sameignir",
"Link shares" : "Sameignartenglar",
"Shares" : "Sameignir",
+ "Share with accounts and teams" : "Deila með notendaaðgöngum og teymum",
"Unable to load the shares list" : "Mistókst aði hlaða inn lista yfir sameignir",
"Expires {relativetime}" : "Rennur út {relativetime}",
"this share just expired." : "Þessi sameign var að renna út.",
"Shared with you by {owner}" : "Deilt með þér af {owner}",
"Internal shares" : "Innri sameignir",
"Internal shares explanation" : "Útskýring á innri sameignum",
- "Share with accounts and teams" : "Deila með notendaaðgöngum og teymum",
"External shares" : "Utanaðkomandi sameignir",
"External shares explanation" : "Útskýring á utanaðkomandi sameignum",
- "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)",
"Additional shares" : "Viðbótarsameignir",
"Additional shares explanation" : "Útskýring á viðbótarsameignum",
"Link to a file" : "Tengill í skrá",
@@ -353,6 +346,8 @@
"Share note for recipient saved" : "Minnispunktur til viðtakanda sameignar vistaður",
"Share password saved" : "Lykilorð sameignar vistað",
"Share permissions saved" : "Heimildir sameignar vistaðar",
+ "Upload files to {folder}" : "Senda skrár inn í {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deildi möppu með þér.",
"Shared by" : "Deilt af",
"Shared with" : "Deilt með",
"Password created successfully" : "Tókst að búa til lykilorð",
@@ -383,14 +378,17 @@
"No compatible server found at {remote}" : "Enginn samhæfður vefþjónn fannst á {remote}",
"Invalid server URL" : "Ógild URI-slóð vefþjóns",
"Failed to add the public link to your Nextcloud" : "Mistókst að bæta opinberum tengli í þitt eigið Nextcloud",
- "Files" : "Skrár",
+ "You are not allowed to edit link shares that you don't own" : "Þú hefur ekki heimild til að breyta tenglum á sameignir sem þú átt ekki.",
"Download all files" : "Sækja allar skrár",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"],
"Search for share recipients" : "Leita að viðtakendum sameignar",
"No recommendations. Start typing." : "Engar tillögur. Byrjaðu að skrifa.",
- "Allow download" : "Leyfa niðurhal",
- "Share expire date saved" : "Lokagildistími sameignar vistaður",
- "You are not allowed to edit link shares that you don't own" : "Þú hefur ekki heimild til að breyta tenglum á sameignir sem þú átt ekki.",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 tölvupóstfangi þegar bætt við","{count} tölvupóstföngum þegar bætt við"],
- "_1 email address added_::_{count} email addresses added_" : ["1 tölvupóstfangi bætt við","{count} tölvupóstföngum bætt við"]
+ "To upload files, you need to provide your name first." : "Til að senda inn skrár þarftu fyrst að gefa upp nafnið þitt.",
+ "Enter your name" : "Settu inn nafnið þitt",
+ "Submit name" : "Nafn við innsendingu",
+ "Name" : "Heiti",
+ "Email, federated cloud id" : "Tölvupóstfang, skýjasambandsauðkenni (Federated Cloud ID)",
+ "Filename must not be empty." : "Skráarheiti má ekki vera tómt."
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index ba41fd120a2..23f0a3b4a28 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Imposta cartella predefinita per condivisioni accettate",
"Reset" : "Ripristina",
"Reset folder to system default" : "Ripristina la cartella alla predefinita di sistema",
- "Share expiration: " : "Scadenza condivisione:",
+ "Share expiration: {date}" : "Scadenza condivisione: {date}",
"Share Expiration" : "Scadenza Condivisione",
"group" : "gruppo",
"conversation" : "conversazione",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "Elimina file",
"Upload files to {foldername}." : "Carica i file su{foldername}.",
"By uploading files, you agree to the terms of service." : "Caricando i file accetti i termini del servizio.",
+ "Successfully uploaded files" : "File caricati correttamente",
"View terms of service" : "Visualizza i termini del servizio",
"Terms of service" : "Termini del servizio",
- "Upload files to {folder}" : "Carica file su {folder}",
- "Submit name" : "Fornisci il nome",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha condiviso una cartella con te.",
- "To upload files, you need to provide your name first." : "Per caricare file, devi prima fornire il tuo nome.",
- "Name" : "Nome",
- "Enter your name" : "Digita il tuo nome",
"Share with {userName}" : "Condividi con {userName}",
"Share with email {email}" : "Condividi con l'email {email}",
"Share with group" : "Condividi con gruppo",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilizza questo metodo per condividere file con singoli o team all'interno della tua organizzazione. Se il destinatario ha già accesso alla condivisione ma non riesce a individuarla, puoi inviargli il link di condivisione interno per un facile accesso.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilizza questo metodo per condividere file con individui o organizzazioni esterne alla tua organizzazione. File e cartelle possono essere condivisi tramite link di condivisione pubblici e indirizzi e-mail. Puoi anche condividere con altri account Nextcloud ospitati su istanze diverse utilizzando il loro ID cloud federato.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Condivisioni che non fanno parte delle condivisioni interne o esterne. Possono essere condivisioni da app o altre fonti.",
+ "Share with accounts, teams, federated cloud IDs" : "Condividi con account, team, ID cloud federati",
+ "Share with accounts and teams" : "Condividi con account e team",
+ "Federated cloud ID" : "ID cloud federato",
+ "Email, federated cloud ID" : "E-mail, ID cloud federato",
"Unable to load the shares list" : "Impossibile caricare l'elenco delle condivisioni",
"Expires {relativetime}" : "Scade il {relativetime}",
"this share just expired." : "questa condivisione è appena scaduta.",
"Shared with you by {owner}" : "Condiviso con te da {owner}",
"Internal shares" : "Condivisioni interne",
"Internal shares explanation" : "Spiegazione delle condivisioni interne",
- "Share with accounts and teams" : "Condividi con account e team",
"External shares" : "Condivisioni esterne",
"External shares explanation" : "Spiegazione delle condivisioni esterne",
- "Email, federated cloud id" : "E-mail, ID cloud federato",
"Additional shares" : "Azioni aggiuntive",
"Additional shares explanation" : "Spiegazione delle azioni aggiuntive",
"Link to a file" : "Collega a un file",
@@ -371,6 +368,7 @@ OC.L10N.register(
"List of unapproved shares." : "Lista di condivisioni non approvate.",
"No pending shares" : "Nessuna condivisione in corso",
"Shares you have received but not approved will show up here" : "Le condivisioni che hai ricevuto, ma non approvato saranno mostrate qui",
+ "Error deleting the share" : "Errore durante l'eliminazione della condivisione",
"Error updating the share: {errorMessage}" : "Errore durante l'aggiornamento della condivisione: {errorMessage}",
"Error updating the share" : "Errore durante l'aggiornamento della condivisione",
"File \"{path}\" has been unshared" : "La condivisione del file \"{path}\" è stata rimossa",
@@ -383,6 +381,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Condividi nota salvata per il destinatario",
"Share password saved" : "Condividi la password salvata",
"Share permissions saved" : "Condivisione dei permessi salvati",
+ "To upload files to {folder}, you need to provide your name first." : "Per caricare file su {folder}, devi prima fornire il tuo nome.",
+ "Upload files to {folder}" : "Carica file su {folder}",
+ "Please confirm your name to upload files to {folder}" : "Si prega di confermare il nome per caricare i file su {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha condiviso una cartella con te.",
+ "Names must not be empty." : "I nomi non devono essere vuoti.",
+ "Names must not start with a dot." : "I nomi non devono iniziare con un punto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" non è consentito all'interno di un nome.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" è un nome riservato e non consentito.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" non è un nome consentito.",
+ "Names must not end with \"{extension}\"." : "I nomi non devono terminare con \"{extension}\".",
+ "Invalid name." : "Nome non valido.",
"Shared by" : "Condiviso da",
"Shared with" : "Condiviso con",
"Password created successfully" : "Password creata correttamente",
@@ -413,15 +422,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Nessun server compatibile trovato su {remote}",
"Invalid server URL" : "URL del server non valido",
"Failed to add the public link to your Nextcloud" : "Aggiunta del collegamento pubblico al tuo Nextcloud non riuscita",
- "Files" : "File",
+ "You are not allowed to edit link shares that you don't own" : "Non ti è consentito modificare le condivisioni di collegamenti che non ti appartengono",
"Download all files" : "Scarica tutti i file",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 indirizzo di posta già aggiunto","{count} indirizzi di posta già aggiunti","{count} indirizzi di posta già aggiunti"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"],
"Search for share recipients" : "Cerca i destinatari della condivisione",
"No recommendations. Start typing." : "Nessun consiglio. Inizia a digitare.",
- "Password field can't be empty" : "Il campo password non può essere vuoto",
- "Allow download" : "Consenti scaricamento",
- "Share expire date saved" : "Data di scadenza della condivisione salvata",
- "You are not allowed to edit link shares that you don't own" : "Non ti è consentito modificare le condivisioni di collegamenti che non ti appartengono",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 indirizzo di posta già aggiunto","{count} indirizzi di posta già aggiunti","{count} indirizzi di posta già aggiunti"],
- "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"]
+ "To upload files, you need to provide your name first." : "Per caricare file, devi prima fornire il tuo nome.",
+ "Enter your name" : "Digita il tuo nome",
+ "Submit name" : "Fornisci il nome",
+ "Name" : "Nome",
+ "Share with accounts, teams, federated cloud id" : "Condividi con account, team, ID cloud federati",
+ "Email, federated cloud id" : "E-mail, ID cloud federato",
+ "Filename must not be empty." : "Il nome del file non può essere vuoto."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index 5f190a1b6a7..fc84fa187f2 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "Imposta cartella predefinita per condivisioni accettate",
"Reset" : "Ripristina",
"Reset folder to system default" : "Ripristina la cartella alla predefinita di sistema",
- "Share expiration: " : "Scadenza condivisione:",
+ "Share expiration: {date}" : "Scadenza condivisione: {date}",
"Share Expiration" : "Scadenza Condivisione",
"group" : "gruppo",
"conversation" : "conversazione",
@@ -255,14 +255,9 @@
"File drop" : "Elimina file",
"Upload files to {foldername}." : "Carica i file su{foldername}.",
"By uploading files, you agree to the terms of service." : "Caricando i file accetti i termini del servizio.",
+ "Successfully uploaded files" : "File caricati correttamente",
"View terms of service" : "Visualizza i termini del servizio",
"Terms of service" : "Termini del servizio",
- "Upload files to {folder}" : "Carica file su {folder}",
- "Submit name" : "Fornisci il nome",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha condiviso una cartella con te.",
- "To upload files, you need to provide your name first." : "Per caricare file, devi prima fornire il tuo nome.",
- "Name" : "Nome",
- "Enter your name" : "Digita il tuo nome",
"Share with {userName}" : "Condividi con {userName}",
"Share with email {email}" : "Condividi con l'email {email}",
"Share with group" : "Condividi con gruppo",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilizza questo metodo per condividere file con singoli o team all'interno della tua organizzazione. Se il destinatario ha già accesso alla condivisione ma non riesce a individuarla, puoi inviargli il link di condivisione interno per un facile accesso.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Utilizza questo metodo per condividere file con individui o organizzazioni esterne alla tua organizzazione. File e cartelle possono essere condivisi tramite link di condivisione pubblici e indirizzi e-mail. Puoi anche condividere con altri account Nextcloud ospitati su istanze diverse utilizzando il loro ID cloud federato.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Condivisioni che non fanno parte delle condivisioni interne o esterne. Possono essere condivisioni da app o altre fonti.",
+ "Share with accounts, teams, federated cloud IDs" : "Condividi con account, team, ID cloud federati",
+ "Share with accounts and teams" : "Condividi con account e team",
+ "Federated cloud ID" : "ID cloud federato",
+ "Email, federated cloud ID" : "E-mail, ID cloud federato",
"Unable to load the shares list" : "Impossibile caricare l'elenco delle condivisioni",
"Expires {relativetime}" : "Scade il {relativetime}",
"this share just expired." : "questa condivisione è appena scaduta.",
"Shared with you by {owner}" : "Condiviso con te da {owner}",
"Internal shares" : "Condivisioni interne",
"Internal shares explanation" : "Spiegazione delle condivisioni interne",
- "Share with accounts and teams" : "Condividi con account e team",
"External shares" : "Condivisioni esterne",
"External shares explanation" : "Spiegazione delle condivisioni esterne",
- "Email, federated cloud id" : "E-mail, ID cloud federato",
"Additional shares" : "Azioni aggiuntive",
"Additional shares explanation" : "Spiegazione delle azioni aggiuntive",
"Link to a file" : "Collega a un file",
@@ -369,6 +366,7 @@
"List of unapproved shares." : "Lista di condivisioni non approvate.",
"No pending shares" : "Nessuna condivisione in corso",
"Shares you have received but not approved will show up here" : "Le condivisioni che hai ricevuto, ma non approvato saranno mostrate qui",
+ "Error deleting the share" : "Errore durante l'eliminazione della condivisione",
"Error updating the share: {errorMessage}" : "Errore durante l'aggiornamento della condivisione: {errorMessage}",
"Error updating the share" : "Errore durante l'aggiornamento della condivisione",
"File \"{path}\" has been unshared" : "La condivisione del file \"{path}\" è stata rimossa",
@@ -381,6 +379,17 @@
"Share note for recipient saved" : "Condividi nota salvata per il destinatario",
"Share password saved" : "Condividi la password salvata",
"Share permissions saved" : "Condivisione dei permessi salvati",
+ "To upload files to {folder}, you need to provide your name first." : "Per caricare file su {folder}, devi prima fornire il tuo nome.",
+ "Upload files to {folder}" : "Carica file su {folder}",
+ "Please confirm your name to upload files to {folder}" : "Si prega di confermare il nome per caricare i file su {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha condiviso una cartella con te.",
+ "Names must not be empty." : "I nomi non devono essere vuoti.",
+ "Names must not start with a dot." : "I nomi non devono iniziare con un punto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" non è consentito all'interno di un nome.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" è un nome riservato e non consentito.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" non è un nome consentito.",
+ "Names must not end with \"{extension}\"." : "I nomi non devono terminare con \"{extension}\".",
+ "Invalid name." : "Nome non valido.",
"Shared by" : "Condiviso da",
"Shared with" : "Condiviso con",
"Password created successfully" : "Password creata correttamente",
@@ -411,15 +420,18 @@
"No compatible server found at {remote}" : "Nessun server compatibile trovato su {remote}",
"Invalid server URL" : "URL del server non valido",
"Failed to add the public link to your Nextcloud" : "Aggiunta del collegamento pubblico al tuo Nextcloud non riuscita",
- "Files" : "File",
+ "You are not allowed to edit link shares that you don't own" : "Non ti è consentito modificare le condivisioni di collegamenti che non ti appartengono",
"Download all files" : "Scarica tutti i file",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 indirizzo di posta già aggiunto","{count} indirizzi di posta già aggiunti","{count} indirizzi di posta già aggiunti"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"],
"Search for share recipients" : "Cerca i destinatari della condivisione",
"No recommendations. Start typing." : "Nessun consiglio. Inizia a digitare.",
- "Password field can't be empty" : "Il campo password non può essere vuoto",
- "Allow download" : "Consenti scaricamento",
- "Share expire date saved" : "Data di scadenza della condivisione salvata",
- "You are not allowed to edit link shares that you don't own" : "Non ti è consentito modificare le condivisioni di collegamenti che non ti appartengono",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 indirizzo di posta già aggiunto","{count} indirizzi di posta già aggiunti","{count} indirizzi di posta già aggiunti"],
- "_1 email address added_::_{count} email addresses added_" : ["1 indirizzo di posta aggiunto","{count} indirizzi di posta aggiunti","{count} indirizzi di posta aggiunti"]
+ "To upload files, you need to provide your name first." : "Per caricare file, devi prima fornire il tuo nome.",
+ "Enter your name" : "Digita il tuo nome",
+ "Submit name" : "Fornisci il nome",
+ "Name" : "Nome",
+ "Share with accounts, teams, federated cloud id" : "Condividi con account, team, ID cloud federati",
+ "Email, federated cloud id" : "E-mail, ID cloud federato",
+ "Filename must not be empty." : "Il nome del file non può essere vuoto."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js
index 6b4a65e73cc..9f82c441ca4 100644
--- a/apps/files_sharing/l10n/ja.js
+++ b/apps/files_sharing/l10n/ja.js
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "共有を受け入れるためのデフォルトフォルダーを指定",
"Reset" : "リセット",
"Reset folder to system default" : "フォルダをシステムのデフォルトに戻す",
- "Share expiration: " : "共有期限:",
+ "Share expiration: {date}" : "共有期限: {date}",
"Share Expiration" : "共有期限",
"group" : "グループ",
"conversation" : "会話",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "ファイルを転送",
"Upload files to {foldername}." : "{foldername}にファイルをアップロード",
"By uploading files, you agree to the terms of service." : "ファイルをアップロードすることで、利用規約に同意したことになります。",
+ "Successfully uploaded files" : "ファイルのアップロードに成功しました",
"View terms of service" : "利用規約を見る",
"Terms of service" : "サービス利用規約",
- "Upload files to {folder}" : "{folder}にファイルをアップロード",
- "Submit name" : "名前を送信",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}はあなたとフォルダを共有しました。",
- "To upload files, you need to provide your name first." : "ファイルをアップロードするには、最初に名前を入力する必要があります。",
- "Name" : "名前",
- "Enter your name" : "あなたの名前を入力",
"Share with {userName}" : "{userName} と共有",
"Share with email {email}" : "{email} とメールで共有",
"Share with group" : "グループと共有する",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "組織内の個人またはチームとファイルを共有するには、この方法を使用します。受信者がすでに共有にアクセスできるが、その場所を見つけられない場合は、簡単にアクセスできるように内部共有リンクを送信できます。",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "組織外の個人や組織とファイルを共有するには、この方法を使用します。ファイルやフォルダは、パブリック共有リンクやメールアドレスで共有できます。また、連携クラウドIDを使用して、異なるインスタンスにホストされている他のNextcloudアカウントと共有することもできます。",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "内部または外部共有に含まれない共有。これはアプリや他のソースからの共有になります。",
+ "Share with accounts, teams, federated cloud IDs" : "アカウント、チーム、連携クラウドIDとの共有",
+ "Share with accounts and teams" : "アカウントとチームで共有",
+ "Federated cloud ID" : "クラウド共有ID",
+ "Email, federated cloud ID" : "電子メール、連携クラウドID",
"Unable to load the shares list" : "共有リストを読み込めません",
"Expires {relativetime}" : "有効期限 {relativetime}",
"this share just expired." : "この共有は期限切れになりました。",
"Shared with you by {owner}" : "{owner} と共有中",
"Internal shares" : "内部共有",
"Internal shares explanation" : "内部共有の説明",
- "Share with accounts and teams" : "アカウントとチームで共有",
"External shares" : "外部共有",
"External shares explanation" : "外部共有の説明",
- "Email, federated cloud id" : "電子メール、連携クラウドID",
"Additional shares" : "追加の共有",
"Additional shares explanation" : "追加の共有の説明",
"Link to a file" : "ファイルへリンク",
@@ -371,6 +368,8 @@ OC.L10N.register(
"List of unapproved shares." : "未承認の共有の一覧",
"No pending shares" : "保留中の共有はありません",
"Shares you have received but not approved will show up here" : "あなたが受け取ったが承認されていない共有は、ここに表示されます",
+ "Error deleting the share: {errorMessage}" : "共有の削除中にエラーが発生しました: {errorMessage}",
+ "Error deleting the share" : "共有の削除中にエラー",
"Error updating the share: {errorMessage}" : "共有の更新中にエラーが発生しました: {errorMessage}",
"Error updating the share" : "共有の更新中にエラー",
"File \"{path}\" has been unshared" : "ファイルパス \"{path}\" が共有解除されました",
@@ -383,6 +382,17 @@ OC.L10N.register(
"Share note for recipient saved" : "共有の受取人への注意が保存されました",
"Share password saved" : "共有パスワードが保存されました",
"Share permissions saved" : "共有権限が保存されました",
+ "To upload files to {folder}, you need to provide your name first." : "ファイルを{folder}にアップロードするには、最初に名前を入力する必要があります。",
+ "Upload files to {folder}" : "{folder}にファイルをアップロード",
+ "Please confirm your name to upload files to {folder}" : "{folder}にファイルをアップロードするには名前を確認してください",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}はあなたとフォルダを共有しました。",
+ "Names must not be empty." : "名前は空白にできません。",
+ "Names must not start with a dot." : "ドットで始まる名前は使用できません。",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\"は名前の中で許可されていません。",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\"は予約名であり許可されていません。",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\"は使用できない名前です。",
+ "Names must not end with \"{extension}\"." : "名前の末尾に\"{extension}\"は使用できません。",
+ "Invalid name." : "無効な名前です。",
"Shared by" : "共有者:",
"Shared with" : "と共有",
"Password created successfully" : "パスワードが正常に作成されました",
@@ -413,15 +423,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "互換性のあるサーバーが {remote} にはありません。",
"Invalid server URL" : "サーバーのURLが無効",
"Failed to add the public link to your Nextcloud" : "このNextcloudに公開リンクを追加できませんでした",
- "Files" : "ファイル",
+ "You are not allowed to edit link shares that you don't own" : "あなたが所有していない共有リンクを編集することは許可されていません",
"Download all files" : "すべてのファイルをダウンロード",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"],
"Search for share recipients" : "共有の受信者を検索",
"No recommendations. Start typing." : "推奨事項はありません。 入力を開始します。",
- "Password field can't be empty" : "パスワードフィールドは空にできません",
- "Allow download" : "ダウンロードを許可",
- "Share expire date saved" : "共有の有効期限が保存されました",
- "You are not allowed to edit link shares that you don't own" : "あなたが所有していない共有リンクを編集することは許可されていません",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
- "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"]
+ "To upload files, you need to provide your name first." : "ファイルをアップロードするには、最初に名前を入力する必要があります。",
+ "Enter your name" : "あなたの名前を入力",
+ "Submit name" : "名前を送信",
+ "Name" : "名前",
+ "Share with accounts, teams, federated cloud id" : "アカウント、チーム、連携クラウドIDで共有",
+ "Email, federated cloud id" : "電子メール、連携クラウドID",
+ "Filename must not be empty." : "ファイル名は空白にできません。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json
index 774facc0fbf..1d34bd25927 100644
--- a/apps/files_sharing/l10n/ja.json
+++ b/apps/files_sharing/l10n/ja.json
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "共有を受け入れるためのデフォルトフォルダーを指定",
"Reset" : "リセット",
"Reset folder to system default" : "フォルダをシステムのデフォルトに戻す",
- "Share expiration: " : "共有期限:",
+ "Share expiration: {date}" : "共有期限: {date}",
"Share Expiration" : "共有期限",
"group" : "グループ",
"conversation" : "会話",
@@ -255,14 +255,9 @@
"File drop" : "ファイルを転送",
"Upload files to {foldername}." : "{foldername}にファイルをアップロード",
"By uploading files, you agree to the terms of service." : "ファイルをアップロードすることで、利用規約に同意したことになります。",
+ "Successfully uploaded files" : "ファイルのアップロードに成功しました",
"View terms of service" : "利用規約を見る",
"Terms of service" : "サービス利用規約",
- "Upload files to {folder}" : "{folder}にファイルをアップロード",
- "Submit name" : "名前を送信",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}はあなたとフォルダを共有しました。",
- "To upload files, you need to provide your name first." : "ファイルをアップロードするには、最初に名前を入力する必要があります。",
- "Name" : "名前",
- "Enter your name" : "あなたの名前を入力",
"Share with {userName}" : "{userName} と共有",
"Share with email {email}" : "{email} とメールで共有",
"Share with group" : "グループと共有する",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "組織内の個人またはチームとファイルを共有するには、この方法を使用します。受信者がすでに共有にアクセスできるが、その場所を見つけられない場合は、簡単にアクセスできるように内部共有リンクを送信できます。",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "組織外の個人や組織とファイルを共有するには、この方法を使用します。ファイルやフォルダは、パブリック共有リンクやメールアドレスで共有できます。また、連携クラウドIDを使用して、異なるインスタンスにホストされている他のNextcloudアカウントと共有することもできます。",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "内部または外部共有に含まれない共有。これはアプリや他のソースからの共有になります。",
+ "Share with accounts, teams, federated cloud IDs" : "アカウント、チーム、連携クラウドIDとの共有",
+ "Share with accounts and teams" : "アカウントとチームで共有",
+ "Federated cloud ID" : "クラウド共有ID",
+ "Email, federated cloud ID" : "電子メール、連携クラウドID",
"Unable to load the shares list" : "共有リストを読み込めません",
"Expires {relativetime}" : "有効期限 {relativetime}",
"this share just expired." : "この共有は期限切れになりました。",
"Shared with you by {owner}" : "{owner} と共有中",
"Internal shares" : "内部共有",
"Internal shares explanation" : "内部共有の説明",
- "Share with accounts and teams" : "アカウントとチームで共有",
"External shares" : "外部共有",
"External shares explanation" : "外部共有の説明",
- "Email, federated cloud id" : "電子メール、連携クラウドID",
"Additional shares" : "追加の共有",
"Additional shares explanation" : "追加の共有の説明",
"Link to a file" : "ファイルへリンク",
@@ -369,6 +366,8 @@
"List of unapproved shares." : "未承認の共有の一覧",
"No pending shares" : "保留中の共有はありません",
"Shares you have received but not approved will show up here" : "あなたが受け取ったが承認されていない共有は、ここに表示されます",
+ "Error deleting the share: {errorMessage}" : "共有の削除中にエラーが発生しました: {errorMessage}",
+ "Error deleting the share" : "共有の削除中にエラー",
"Error updating the share: {errorMessage}" : "共有の更新中にエラーが発生しました: {errorMessage}",
"Error updating the share" : "共有の更新中にエラー",
"File \"{path}\" has been unshared" : "ファイルパス \"{path}\" が共有解除されました",
@@ -381,6 +380,17 @@
"Share note for recipient saved" : "共有の受取人への注意が保存されました",
"Share password saved" : "共有パスワードが保存されました",
"Share permissions saved" : "共有権限が保存されました",
+ "To upload files to {folder}, you need to provide your name first." : "ファイルを{folder}にアップロードするには、最初に名前を入力する必要があります。",
+ "Upload files to {folder}" : "{folder}にファイルをアップロード",
+ "Please confirm your name to upload files to {folder}" : "{folder}にファイルをアップロードするには名前を確認してください",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}はあなたとフォルダを共有しました。",
+ "Names must not be empty." : "名前は空白にできません。",
+ "Names must not start with a dot." : "ドットで始まる名前は使用できません。",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\"は名前の中で許可されていません。",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\"は予約名であり許可されていません。",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\"は使用できない名前です。",
+ "Names must not end with \"{extension}\"." : "名前の末尾に\"{extension}\"は使用できません。",
+ "Invalid name." : "無効な名前です。",
"Shared by" : "共有者:",
"Shared with" : "と共有",
"Password created successfully" : "パスワードが正常に作成されました",
@@ -411,15 +421,18 @@
"No compatible server found at {remote}" : "互換性のあるサーバーが {remote} にはありません。",
"Invalid server URL" : "サーバーのURLが無効",
"Failed to add the public link to your Nextcloud" : "このNextcloudに公開リンクを追加できませんでした",
- "Files" : "ファイル",
+ "You are not allowed to edit link shares that you don't own" : "あなたが所有していない共有リンクを編集することは許可されていません",
"Download all files" : "すべてのファイルをダウンロード",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"],
"Search for share recipients" : "共有の受信者を検索",
"No recommendations. Start typing." : "推奨事項はありません。 入力を開始します。",
- "Password field can't be empty" : "パスワードフィールドは空にできません",
- "Allow download" : "ダウンロードを許可",
- "Share expire date saved" : "共有の有効期限が保存されました",
- "You are not allowed to edit link shares that you don't own" : "あなたが所有していない共有リンクを編集することは許可されていません",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count} メールアドレスはすでに追加されています"],
- "_1 email address added_::_{count} email addresses added_" : ["{count} メールアドレスが追加されました"]
+ "To upload files, you need to provide your name first." : "ファイルをアップロードするには、最初に名前を入力する必要があります。",
+ "Enter your name" : "あなたの名前を入力",
+ "Submit name" : "名前を送信",
+ "Name" : "名前",
+ "Share with accounts, teams, federated cloud id" : "アカウント、チーム、連携クラウドIDで共有",
+ "Email, federated cloud id" : "電子メール、連携クラウドID",
+ "Filename must not be empty." : "ファイル名は空白にできません。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ka.js b/apps/files_sharing/l10n/ka.js
index 45c1f2f389b..9e4ab7cb873 100644
--- a/apps/files_sharing/l10n/ka.js
+++ b/apps/files_sharing/l10n/ka.js
@@ -165,8 +165,6 @@ OC.L10N.register(
"on {server}" : "on {server}",
"File drop" : "File drop",
"Terms of service" : "Terms of service",
- "Name" : "სახელი",
- "Enter your name" : "Enter your name",
"Share with {userName}" : "Share with {userName}",
"Share with group" : "Share with group",
"Share in conversation" : "Share in conversation",
@@ -267,10 +265,10 @@ OC.L10N.register(
"No compatible server found at {remote}" : "No compatible server found at {remote}",
"Invalid server URL" : "Invalid server URL",
"Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
- "Files" : "ფაილები",
"Download all files" : "Download all files",
"Search for share recipients" : "Search for share recipients",
"No recommendations. Start typing." : "No recommendations. Start typing.",
- "Allow download" : "Allow download"
+ "Enter your name" : "Enter your name",
+ "Name" : "სახელი"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/files_sharing/l10n/ka.json b/apps/files_sharing/l10n/ka.json
index ba228c2dd92..26c63c5d609 100644
--- a/apps/files_sharing/l10n/ka.json
+++ b/apps/files_sharing/l10n/ka.json
@@ -163,8 +163,6 @@
"on {server}" : "on {server}",
"File drop" : "File drop",
"Terms of service" : "Terms of service",
- "Name" : "სახელი",
- "Enter your name" : "Enter your name",
"Share with {userName}" : "Share with {userName}",
"Share with group" : "Share with group",
"Share in conversation" : "Share in conversation",
@@ -265,10 +263,10 @@
"No compatible server found at {remote}" : "No compatible server found at {remote}",
"Invalid server URL" : "Invalid server URL",
"Failed to add the public link to your Nextcloud" : "Failed to add the public link to your Nextcloud",
- "Files" : "ფაილები",
"Download all files" : "Download all files",
"Search for share recipients" : "Search for share recipients",
"No recommendations. Start typing." : "No recommendations. Start typing.",
- "Allow download" : "Allow download"
+ "Enter your name" : "Enter your name",
+ "Name" : "სახელი"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js
deleted file mode 100644
index f07d567fb75..00000000000
--- a/apps/files_sharing/l10n/ka_GE.js
+++ /dev/null
@@ -1,135 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "თქვენთან გაზიარებული",
- "Nothing shared with you yet" : "თქვენთან ჯერ არაფერია გაზიარებული",
- "Files and folders others share with you will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები, რომლებსაც სხვები თქვენთან აზიარებენ",
- "Shared with others" : "სხვასთან გაზიარებული",
- "Nothing shared yet" : "ჯერ არაფერი გაზიარებულა",
- "Files and folders you share will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც აზიარებთ თქვენ",
- "Shared by link" : "ბმულით გაზიარებული",
- "No shared links" : "გაზიარებული ბმულები არაა",
- "Files and folders you share by link will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც ბმულით აზიარებთ თქვენ",
- "Shares" : "გაზიარებები",
- "Restore" : "აღდგენა",
- "Move or copy" : "გადაიტანეთ ან დააკოპირეთ",
- "Download" : "ჩამოტვირთვა",
- "Delete" : "წაშლა",
- "You can upload into this folder" : "შეგიძლიათ ატვირთოთ ამ დირექტორიაში",
- "No compatible server found at {remote}" : "თავსებადი სერვერი {remote}-ზე ვერ იქნა ნაპოვნი",
- "Invalid server URL" : "არასწორი სერვერის URL",
- "Failed to add the public link to your Nextcloud" : "საზოგადო ბმულის დამატება თქვენს Nextcloud-ზე ვერ მოხერხდა",
- "No expiration date set" : "გაუქმების თარიღი არაა დაყენებული",
- "Shared by" : "აზიარებს",
- "File shares" : "ფაილის გაზიარებები",
- "Downloaded via public link" : "გადმოწერილია საზოგადო ბმულით",
- "Downloaded by {email}" : "გადმოწერა {email}-მ",
- "{file} downloaded via public link" : "{file} გადმოწერილია საზოგადო ბმულით",
- "{email} downloaded {file}" : "{email}-მ გადმოწერა {file}",
- "Shared with group {group}" : "გაზიარებულია ჯგუფთან {group}",
- "Removed share for group {group}" : "გაზიარება {group} ჯგუფთან შეწყდა",
- "{actor} shared with group {group}" : "{actor} მომხმარებელმა გააზიარა ჯგუფთან {group}",
- "{actor} removed share for group {group}" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება ჯგუფთან {group}",
- "You shared {file} with group {group}" : "თქვენ გააზიარეთ {file} ჯგუფთან {group}",
- "You removed group {group} from {file}" : "თქვენ მოაშორეთ ჯგუფი {group} ფაილს {file}",
- "{actor} shared {file} with group {group}" : "{actor} მომხმარებელმა გააზიარა ფაილი {file} ჯგუფთან {group}",
- "{actor} removed group {group} from {file}" : "{actor} მომხმარებელმა მოაშორა ჯგუფი {group} ფაილს {file}",
- "Shared as public link" : "გააზიარა როგორც საზოგადო ბმული",
- "Removed public link" : "გააუქმა საზოგადო ბმული",
- "Public link expired" : "საზოგადო ბმულს გაუვიდა ვადა",
- "{actor} shared as public link" : "{actor} მომხმარებელმა გააზიარა საზოგადო ბმულად",
- "{actor} removed public link" : "{actor} მომხმარებელმა გააუქმა საზოგადო ბმული",
- "Public link of {actor} expired" : "{actor} მომხმარებლის საზოგადო ბმულს გაუვიდა ვადა",
- "You shared {file} as public link" : "თქვენ საზოგადო ბმულის სახით გააზიარეთ {file}",
- "You removed public link for {file}" : "თქვენ გააუქმეთ საზოგადო ბმული ფაილისთვის {file}",
- "Public link expired for {file}" : "საზოგადო ბმულს ფაილისთვის {file} გაუვიდა ვადა",
- "{actor} shared {file} as public link" : "{actor} მომხმარებელმა საზოგადო ბმულის სახით გააზიარა {file}",
- "{actor} removed public link for {file}" : "{actor} მომხმარებელმა გააუქმა საზოგადო ბმული ფაილისთვის {file}",
- "Public link of {actor} for {file} expired" : "{actor} მომხმარებლის საზოგადო ბმულს ფაილზე {file} გაუვიდა ვადა",
- "{user} accepted the remote share" : "{user} მომხმარებელმა მიიღო დისტანციური გაზიარება",
- "{user} declined the remote share" : "{user} მომხმარებელმა უარყო დისტანციური გაზიარება",
- "You received a new remote share {file} from {user}" : "თქვენ მიიღეთ ახალი დისტანციური გაზიარება {file} მომხმარებლისგან {user}",
- "{user} accepted the remote share of {file}" : "{user} მომხმარებელმა მიიღო დისტანციური გაზიარება ფაილზე {file}",
- "{user} declined the remote share of {file}" : "{user} მომხმარებელმა უარყო დისტანციური გაზიარება ფალზე {file}",
- "{user} unshared {file} from you" : "{user} მომხმარებელმა შეწყვიტა ფაილის {file} გაზიარება თქვენთან",
- "Shared with {user}" : "გაზიარებული მომხმარებელთან {user}",
- "Removed share for {user}" : "შეწყდა გაზიარება მომხმარებელთან {user}",
- "{actor} shared with {user}" : "{actor} მომხმარებელმა გააზიარა მომხმარებელთან {user}",
- "{actor} removed share for {user}" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება მომხმარებელთან {user}",
- "Shared by {actor}" : "გააზიარა მომხმარებელმა {actor}",
- "{actor} removed share" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება",
- "You shared {file} with {user}" : "თქვენ გააზიარეთ ფაილი {file} მომხმარებელთან {user}",
- "You removed {user} from {file}" : "თქვენ ჩამოაშორეთ მომხმარებელი {user} ფაილს {file}",
- "{actor} shared {file} with {user}" : "{actor} მომხმარებელმა გააზიარა ფაილი {file} მომხმარებელთან {user}",
- "{actor} removed {user} from {file}" : "{actor} მომხმარებელმა ჩამოაშორა მომხმარებელი {user} ფაილს {file}",
- "{actor} shared {file} with you" : "{actor} მომხმარებელმა თქვენთან გააზიარა {file}",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "ელ-ფოსტით ან საზოგადო ბმულით გაზიარბული ფაილი ან დირექტორია <strong>გადმოწერილ იქნა</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "ფაილი ან დირექტორია გაზიარდა <strong>სხვა სერვერიდან</strong>",
- "Files" : "ფაილები",
- "A file or folder has been <strong>shared</strong>" : "ფაილი ან დირექტორია <strong>გაზიარებულ იქნა</strong>",
- "Could not delete share" : "გაზიარების გაუქმება ვერ მოხერხდა",
- "Please specify a file or folder path" : "გთხოვთ მიუთითოთ ფაილის ან დირექტორიის მისამართი",
- "Could not create share" : "გაზიარება ვერ შეიქმნა",
- "Please specify a valid user" : "გთხოვთ მიუთითოთ სწორი მომხმარებელი",
- "Group sharing is disabled by the administrator" : "ჯგუფური გაზიარება ადმინისტრატორის მიერ არაა ამოქმედებული",
- "Please specify a valid group" : "გთხოვთ მიუთითოთ სწორი ჯგუფი",
- "Public link sharing is disabled by the administrator" : "საზოგადო ბმულად გაზიარება ადმინისტრატორის მიერ არაა ამოქმდებეული",
- "Public upload disabled by the administrator" : "საზოგადო ატვირთვა ადმინისტრატორის მიერ არაა ამოქმედებული",
- "Public upload is only possible for publicly shared folders" : "საზოგადო ატვირთვა შესაძლებელია მხოლოდ საზოგადოდ გაზიარებულ დირექტორიებზე",
- "Invalid date, date format must be YYYY-MM-DD" : "არასწორი თარიღი, თარიღის ფორმატი უნდა იყოს წწწწ-თთ-დდ",
- "You cannot share to a Circle if the app is not enabled" : "წრეს ვერ გაუზიარებთ თუ აპლიკაცია არაა მოქმედი",
- "Please specify a valid circle" : "გთხოვთ მიუთითოთ სწორი წრე",
- "Unknown share type" : "ამოუცნობი გაზიარების სახეობა",
- "Not a directory" : "არაა დირექტორია",
- "Could not lock path" : "მისამართი ვერ ჩაიკეტა",
- "Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა",
- "shared by %s" : "გააზიარა მომხმარებელმა %s",
- "Direct link" : "პირდაპირი ბმული",
- "Share API is disabled" : "გაზიარების API არაა მოქმედი",
- "File sharing" : "ფაილების გაზიარება",
- "Accept" : "მიღება",
- "Sharing" : "გაზიარება",
- "Reset" : "საწყის მდოგმარეობაში დაბრუნება",
- "Unknown error" : "უცნობი შეცდომა",
- "Allow editing" : "შეცვლის ნების დართვა",
- "Read only" : "მხოლოდ-კითხვადი",
- "Allow upload and editing" : "ატვირთვისა და ცვლილების უფლებების მინიჭება",
- "File drop (upload only)" : "ფაილის ჩაგდება (მხოლოდ ატვირთვა)",
- "Read" : "წაკითხვა",
- "Upload" : "ატვირთვა",
- "Edit" : "შეცვლა",
- "Allow resharing" : "ხელახალი გაზიარების დაშვება",
- "Set expiration date" : "მიუთითეთ ვადის გასვლის დრო",
- "Unshare" : "გაზიარების შეწყვეტა",
- "group" : "ჯგუფი",
- "remote" : "დისტანციური",
- "Copy to clipboard" : "კოპირება ბუფერში",
- "Password protection" : "პაროლით თავდაცვა",
- "Enter a password" : "შეიყვანეთ პაროლი",
- "Cancel" : "უარყოფა",
- "Password protect" : "პაროლით დაცვა",
- "Share link" : "ბმულის გაზიარება",
- "Resharing is not allowed" : "ხელახალი გაზიარება არაა დაშვებული",
- "Shared with you by {owner}" : "გაზიარდა თქვენთვის {owner} მომხმარებლის მიერ",
- "Shared" : "გაზიარებული",
- "Share" : "გაზიარება",
- "Shared with" : "გაზიარებულია",
- "Shared with you and the group {group} by {owner}" : "გაზიარდა თქვენთვის და ჯგუფისთვის {group}, {owner} მომხმარებლის მიერ",
- "No entries found in this folder" : "ამ დირექტორიაში შენატანები ვერ მოიძებნა",
- "Name" : "სახელი",
- "Share time" : "გაზიარების დრო",
- "Expiration date" : "გაუქმების თარიღი",
- "Reasons might be:" : "შესაძლო მიზეზებია:",
- "the item was removed" : "ობიექტი გაუქმდა",
- "the link expired" : "ბმულს ვადა გაუვიდა",
- "sharing is disabled" : "გაზიარება არაა მოქმედი",
- "For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.",
- "Upload files to %s" : "ფაილების ატვირთვა %s-ში",
- "Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები",
- "Uploaded files:" : "ფაილების ატვირთვა:",
- "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება",
- "Wrong share ID, share doesn't exist" : "არასწორი გაზიარების ID, გაზიარება არ არსებობს",
- "Wrong path, file/folder doesn't exist" : "არასწორი მისამართი, ფაილი/დირქტორია არ არსებობს",
- "Sorry, this link doesn’t seem to work anymore." : "ბოდიში, ეს ბმული აღარ მოქმედებს."
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json
deleted file mode 100644
index 66f5aa88375..00000000000
--- a/apps/files_sharing/l10n/ka_GE.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{ "translations": {
- "Shared with you" : "თქვენთან გაზიარებული",
- "Nothing shared with you yet" : "თქვენთან ჯერ არაფერია გაზიარებული",
- "Files and folders others share with you will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები, რომლებსაც სხვები თქვენთან აზიარებენ",
- "Shared with others" : "სხვასთან გაზიარებული",
- "Nothing shared yet" : "ჯერ არაფერი გაზიარებულა",
- "Files and folders you share will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც აზიარებთ თქვენ",
- "Shared by link" : "ბმულით გაზიარებული",
- "No shared links" : "გაზიარებული ბმულები არაა",
- "Files and folders you share by link will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც ბმულით აზიარებთ თქვენ",
- "Shares" : "გაზიარებები",
- "Restore" : "აღდგენა",
- "Move or copy" : "გადაიტანეთ ან დააკოპირეთ",
- "Download" : "ჩამოტვირთვა",
- "Delete" : "წაშლა",
- "You can upload into this folder" : "შეგიძლიათ ატვირთოთ ამ დირექტორიაში",
- "No compatible server found at {remote}" : "თავსებადი სერვერი {remote}-ზე ვერ იქნა ნაპოვნი",
- "Invalid server URL" : "არასწორი სერვერის URL",
- "Failed to add the public link to your Nextcloud" : "საზოგადო ბმულის დამატება თქვენს Nextcloud-ზე ვერ მოხერხდა",
- "No expiration date set" : "გაუქმების თარიღი არაა დაყენებული",
- "Shared by" : "აზიარებს",
- "File shares" : "ფაილის გაზიარებები",
- "Downloaded via public link" : "გადმოწერილია საზოგადო ბმულით",
- "Downloaded by {email}" : "გადმოწერა {email}-მ",
- "{file} downloaded via public link" : "{file} გადმოწერილია საზოგადო ბმულით",
- "{email} downloaded {file}" : "{email}-მ გადმოწერა {file}",
- "Shared with group {group}" : "გაზიარებულია ჯგუფთან {group}",
- "Removed share for group {group}" : "გაზიარება {group} ჯგუფთან შეწყდა",
- "{actor} shared with group {group}" : "{actor} მომხმარებელმა გააზიარა ჯგუფთან {group}",
- "{actor} removed share for group {group}" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება ჯგუფთან {group}",
- "You shared {file} with group {group}" : "თქვენ გააზიარეთ {file} ჯგუფთან {group}",
- "You removed group {group} from {file}" : "თქვენ მოაშორეთ ჯგუფი {group} ფაილს {file}",
- "{actor} shared {file} with group {group}" : "{actor} მომხმარებელმა გააზიარა ფაილი {file} ჯგუფთან {group}",
- "{actor} removed group {group} from {file}" : "{actor} მომხმარებელმა მოაშორა ჯგუფი {group} ფაილს {file}",
- "Shared as public link" : "გააზიარა როგორც საზოგადო ბმული",
- "Removed public link" : "გააუქმა საზოგადო ბმული",
- "Public link expired" : "საზოგადო ბმულს გაუვიდა ვადა",
- "{actor} shared as public link" : "{actor} მომხმარებელმა გააზიარა საზოგადო ბმულად",
- "{actor} removed public link" : "{actor} მომხმარებელმა გააუქმა საზოგადო ბმული",
- "Public link of {actor} expired" : "{actor} მომხმარებლის საზოგადო ბმულს გაუვიდა ვადა",
- "You shared {file} as public link" : "თქვენ საზოგადო ბმულის სახით გააზიარეთ {file}",
- "You removed public link for {file}" : "თქვენ გააუქმეთ საზოგადო ბმული ფაილისთვის {file}",
- "Public link expired for {file}" : "საზოგადო ბმულს ფაილისთვის {file} გაუვიდა ვადა",
- "{actor} shared {file} as public link" : "{actor} მომხმარებელმა საზოგადო ბმულის სახით გააზიარა {file}",
- "{actor} removed public link for {file}" : "{actor} მომხმარებელმა გააუქმა საზოგადო ბმული ფაილისთვის {file}",
- "Public link of {actor} for {file} expired" : "{actor} მომხმარებლის საზოგადო ბმულს ფაილზე {file} გაუვიდა ვადა",
- "{user} accepted the remote share" : "{user} მომხმარებელმა მიიღო დისტანციური გაზიარება",
- "{user} declined the remote share" : "{user} მომხმარებელმა უარყო დისტანციური გაზიარება",
- "You received a new remote share {file} from {user}" : "თქვენ მიიღეთ ახალი დისტანციური გაზიარება {file} მომხმარებლისგან {user}",
- "{user} accepted the remote share of {file}" : "{user} მომხმარებელმა მიიღო დისტანციური გაზიარება ფაილზე {file}",
- "{user} declined the remote share of {file}" : "{user} მომხმარებელმა უარყო დისტანციური გაზიარება ფალზე {file}",
- "{user} unshared {file} from you" : "{user} მომხმარებელმა შეწყვიტა ფაილის {file} გაზიარება თქვენთან",
- "Shared with {user}" : "გაზიარებული მომხმარებელთან {user}",
- "Removed share for {user}" : "შეწყდა გაზიარება მომხმარებელთან {user}",
- "{actor} shared with {user}" : "{actor} მომხმარებელმა გააზიარა მომხმარებელთან {user}",
- "{actor} removed share for {user}" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება მომხმარებელთან {user}",
- "Shared by {actor}" : "გააზიარა მომხმარებელმა {actor}",
- "{actor} removed share" : "{actor} მომხმარებელმა შეწყვიტა გაზიარება",
- "You shared {file} with {user}" : "თქვენ გააზიარეთ ფაილი {file} მომხმარებელთან {user}",
- "You removed {user} from {file}" : "თქვენ ჩამოაშორეთ მომხმარებელი {user} ფაილს {file}",
- "{actor} shared {file} with {user}" : "{actor} მომხმარებელმა გააზიარა ფაილი {file} მომხმარებელთან {user}",
- "{actor} removed {user} from {file}" : "{actor} მომხმარებელმა ჩამოაშორა მომხმარებელი {user} ფაილს {file}",
- "{actor} shared {file} with you" : "{actor} მომხმარებელმა თქვენთან გააზიარა {file}",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "ელ-ფოსტით ან საზოგადო ბმულით გაზიარბული ფაილი ან დირექტორია <strong>გადმოწერილ იქნა</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "ფაილი ან დირექტორია გაზიარდა <strong>სხვა სერვერიდან</strong>",
- "Files" : "ფაილები",
- "A file or folder has been <strong>shared</strong>" : "ფაილი ან დირექტორია <strong>გაზიარებულ იქნა</strong>",
- "Could not delete share" : "გაზიარების გაუქმება ვერ მოხერხდა",
- "Please specify a file or folder path" : "გთხოვთ მიუთითოთ ფაილის ან დირექტორიის მისამართი",
- "Could not create share" : "გაზიარება ვერ შეიქმნა",
- "Please specify a valid user" : "გთხოვთ მიუთითოთ სწორი მომხმარებელი",
- "Group sharing is disabled by the administrator" : "ჯგუფური გაზიარება ადმინისტრატორის მიერ არაა ამოქმედებული",
- "Please specify a valid group" : "გთხოვთ მიუთითოთ სწორი ჯგუფი",
- "Public link sharing is disabled by the administrator" : "საზოგადო ბმულად გაზიარება ადმინისტრატორის მიერ არაა ამოქმდებეული",
- "Public upload disabled by the administrator" : "საზოგადო ატვირთვა ადმინისტრატორის მიერ არაა ამოქმედებული",
- "Public upload is only possible for publicly shared folders" : "საზოგადო ატვირთვა შესაძლებელია მხოლოდ საზოგადოდ გაზიარებულ დირექტორიებზე",
- "Invalid date, date format must be YYYY-MM-DD" : "არასწორი თარიღი, თარიღის ფორმატი უნდა იყოს წწწწ-თთ-დდ",
- "You cannot share to a Circle if the app is not enabled" : "წრეს ვერ გაუზიარებთ თუ აპლიკაცია არაა მოქმედი",
- "Please specify a valid circle" : "გთხოვთ მიუთითოთ სწორი წრე",
- "Unknown share type" : "ამოუცნობი გაზიარების სახეობა",
- "Not a directory" : "არაა დირექტორია",
- "Could not lock path" : "მისამართი ვერ ჩაიკეტა",
- "Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა",
- "shared by %s" : "გააზიარა მომხმარებელმა %s",
- "Direct link" : "პირდაპირი ბმული",
- "Share API is disabled" : "გაზიარების API არაა მოქმედი",
- "File sharing" : "ფაილების გაზიარება",
- "Accept" : "მიღება",
- "Sharing" : "გაზიარება",
- "Reset" : "საწყის მდოგმარეობაში დაბრუნება",
- "Unknown error" : "უცნობი შეცდომა",
- "Allow editing" : "შეცვლის ნების დართვა",
- "Read only" : "მხოლოდ-კითხვადი",
- "Allow upload and editing" : "ატვირთვისა და ცვლილების უფლებების მინიჭება",
- "File drop (upload only)" : "ფაილის ჩაგდება (მხოლოდ ატვირთვა)",
- "Read" : "წაკითხვა",
- "Upload" : "ატვირთვა",
- "Edit" : "შეცვლა",
- "Allow resharing" : "ხელახალი გაზიარების დაშვება",
- "Set expiration date" : "მიუთითეთ ვადის გასვლის დრო",
- "Unshare" : "გაზიარების შეწყვეტა",
- "group" : "ჯგუფი",
- "remote" : "დისტანციური",
- "Copy to clipboard" : "კოპირება ბუფერში",
- "Password protection" : "პაროლით თავდაცვა",
- "Enter a password" : "შეიყვანეთ პაროლი",
- "Cancel" : "უარყოფა",
- "Password protect" : "პაროლით დაცვა",
- "Share link" : "ბმულის გაზიარება",
- "Resharing is not allowed" : "ხელახალი გაზიარება არაა დაშვებული",
- "Shared with you by {owner}" : "გაზიარდა თქვენთვის {owner} მომხმარებლის მიერ",
- "Shared" : "გაზიარებული",
- "Share" : "გაზიარება",
- "Shared with" : "გაზიარებულია",
- "Shared with you and the group {group} by {owner}" : "გაზიარდა თქვენთვის და ჯგუფისთვის {group}, {owner} მომხმარებლის მიერ",
- "No entries found in this folder" : "ამ დირექტორიაში შენატანები ვერ მოიძებნა",
- "Name" : "სახელი",
- "Share time" : "გაზიარების დრო",
- "Expiration date" : "გაუქმების თარიღი",
- "Reasons might be:" : "შესაძლო მიზეზებია:",
- "the item was removed" : "ობიექტი გაუქმდა",
- "the link expired" : "ბმულს ვადა გაუვიდა",
- "sharing is disabled" : "გაზიარება არაა მოქმედი",
- "For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.",
- "Upload files to %s" : "ფაილების ატვირთვა %s-ში",
- "Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები",
- "Uploaded files:" : "ფაილების ატვირთვა:",
- "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება",
- "Wrong share ID, share doesn't exist" : "არასწორი გაზიარების ID, გაზიარება არ არსებობს",
- "Wrong path, file/folder doesn't exist" : "არასწორი მისამართი, ფაილი/დირქტორია არ არსებობს",
- "Sorry, this link doesn’t seem to work anymore." : "ბოდიში, ეს ბმული აღარ მოქმედებს."
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/km.js b/apps/files_sharing/l10n/km.js
deleted file mode 100644
index d9bcc23c21d..00000000000
--- a/apps/files_sharing/l10n/km.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "បោះបង់",
- "Shared by" : "បាន​ចែក​រំលែក​ដោយ",
- "Sharing" : "ការ​ចែក​រំលែក",
- "A file or folder has been <strong>shared</strong>" : "<strong>បាន​ចែករំលែក</strong> ឯកសារ​ឬ​ថត",
- "You shared %1$s with %2$s" : "អ្នក​បាន​ចែករំលែក %1$s ជាមួយ %2$s",
- "You shared %1$s with group %2$s" : "អ្នក​បាន​ចែករំលែក %1$s ជាមួយ​ក្រុម %2$s",
- "You shared %1$s via link" : "អ្នក​បាន​ចែក​រំលែក %1$s តាម​រយៈ​តំណរភ្ជាប់",
- "%2$s shared %1$s with you" : "%2$s បាន​ចែករំលែក %1$s ជាមួយ​អ្នក",
- "Shares" : "ចែក​រំលែក",
- "This share is password-protected" : "ការ​ចែករំលែក​នេះ​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យ​សម្ងាត់",
- "The password is wrong. Try again." : "ពាក្យ​សម្ងាត់​ខុស​ហើយ។ ព្យាយាម​ម្ដង​ទៀត។",
- "Password" : "ពាក្យសម្ងាត់",
- "Name" : "ឈ្មោះ",
- "Sorry, this link doesn’t seem to work anymore." : "សូម​ទោស តំណ​នេះ​ហាក់​ដូច​ជា​លែង​ដើរ​ហើយ។",
- "Reasons might be:" : "មូលហេតុ​អាច​ជា៖",
- "the item was removed" : "របស់​ត្រូវ​បាន​ដក​ចេញ",
- "the link expired" : "តំណ​ផុត​ពេល​កំណត់",
- "sharing is disabled" : "មិន​អនុញ្ញាត​ការ​ចែករំលែក",
- "For more info, please ask the person who sent this link." : "សម្រាប់​ព័ត៌មាន​បន្ថែម សូម​សួរ​អ្នក​ដែល​ផ្ញើ​តំណ​នេះ។",
- "Download" : "ទាញយក",
- "Download %s" : "ទាញយក %s",
- "Direct link" : "តំណ​ផ្ទាល់"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/km.json b/apps/files_sharing/l10n/km.json
deleted file mode 100644
index 319203ef946..00000000000
--- a/apps/files_sharing/l10n/km.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "Cancel" : "បោះបង់",
- "Shared by" : "បាន​ចែក​រំលែក​ដោយ",
- "Sharing" : "ការ​ចែក​រំលែក",
- "A file or folder has been <strong>shared</strong>" : "<strong>បាន​ចែករំលែក</strong> ឯកសារ​ឬ​ថត",
- "You shared %1$s with %2$s" : "អ្នក​បាន​ចែករំលែក %1$s ជាមួយ %2$s",
- "You shared %1$s with group %2$s" : "អ្នក​បាន​ចែករំលែក %1$s ជាមួយ​ក្រុម %2$s",
- "You shared %1$s via link" : "អ្នក​បាន​ចែក​រំលែក %1$s តាម​រយៈ​តំណរភ្ជាប់",
- "%2$s shared %1$s with you" : "%2$s បាន​ចែករំលែក %1$s ជាមួយ​អ្នក",
- "Shares" : "ចែក​រំលែក",
- "This share is password-protected" : "ការ​ចែករំលែក​នេះ​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យ​សម្ងាត់",
- "The password is wrong. Try again." : "ពាក្យ​សម្ងាត់​ខុស​ហើយ។ ព្យាយាម​ម្ដង​ទៀត។",
- "Password" : "ពាក្យសម្ងាត់",
- "Name" : "ឈ្មោះ",
- "Sorry, this link doesn’t seem to work anymore." : "សូម​ទោស តំណ​នេះ​ហាក់​ដូច​ជា​លែង​ដើរ​ហើយ។",
- "Reasons might be:" : "មូលហេតុ​អាច​ជា៖",
- "the item was removed" : "របស់​ត្រូវ​បាន​ដក​ចេញ",
- "the link expired" : "តំណ​ផុត​ពេល​កំណត់",
- "sharing is disabled" : "មិន​អនុញ្ញាត​ការ​ចែករំលែក",
- "For more info, please ask the person who sent this link." : "សម្រាប់​ព័ត៌មាន​បន្ថែម សូម​សួរ​អ្នក​ដែល​ផ្ញើ​តំណ​នេះ។",
- "Download" : "ទាញយក",
- "Download %s" : "ទាញយក %s",
- "Direct link" : "តំណ​ផ្ទាល់"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/kn.js b/apps/files_sharing/l10n/kn.js
deleted file mode 100644
index 69d899ad0a6..00000000000
--- a/apps/files_sharing/l10n/kn.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "ರದ್ದು",
- "Sharing" : "ಹಂಚಿಕೆ",
- "Password" : "ಗುಪ್ತ ಪದ",
- "Name" : "ಹೆಸರು",
- "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/kn.json b/apps/files_sharing/l10n/kn.json
deleted file mode 100644
index 7553a7d1c9a..00000000000
--- a/apps/files_sharing/l10n/kn.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Cancel" : "ರದ್ದು",
- "Sharing" : "ಹಂಚಿಕೆ",
- "Password" : "ಗುಪ್ತ ಪದ",
- "Name" : "ಹೆಸರು",
- "Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js
index 20f273121fc..d5d2d8a81d3 100644
--- a/apps/files_sharing/l10n/ko.js
+++ b/apps/files_sharing/l10n/ko.js
@@ -185,7 +185,6 @@ OC.L10N.register(
"Set default folder for accepted shares" : "허용한 공유의 기본 경로 설정",
"Reset" : "초기화",
"Reset folder to system default" : "폴더를 시스템 기본값으로 재설정",
- "Share expiration: " : "공유 만료:",
"Share Expiration" : "공유 만료",
"group" : "그룹",
"conversation" : "대화",
@@ -259,12 +258,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "파일을 업로드하면 이용 약관에 동의하는 것을 의미합니다.",
"View terms of service" : "이용 약관 보기",
"Terms of service" : "이용 약관",
- "Upload files to {folder}" : "{folder}에 파일 업로드",
- "Submit name" : "이름 제출",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}님이 당신에게 폴더를 공유했습니다.",
- "To upload files, you need to provide your name first." : "파일을 업로드하려면 먼저 당신의 이름을 알려주세요.",
- "Name" : "이름",
- "Enter your name" : "이름을 입력하세요",
"Share with {userName}" : "{userName}와(과) 공유",
"Share with email {email}" : "{email} 이메일에 공유",
"Share with group" : "그룹과 공유",
@@ -311,18 +304,19 @@ OC.L10N.register(
"Link shares" : "링크 공유",
"Shares" : "공유",
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "이 방법을 사용하여 조직 내 개인 또는 팀과 파일을 공유하세요. 수신자가 이미 공유 폴더에 접근할 수 있지만 위치를 찾을 수 없는 경우, 쉽게 접근할 수 있도록 내부 공유 링크를 보낼 수 있습니다.",
- "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "이 방법을 사용하면 조직 외부의 조직이나 개인과 파일을 공유할 수 있습니다. 파일과 폴더는 공개 공유 링크와 이메일 주소를 통해 공유할 수 있습니다. 또한, 다른 인스턴스에 소속된 다른 Nextcloud 계정과도 연합 클라우드 ID를 사용하여 공유할 수 있습니다.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "이 방법을 사용하여 이 조직 외부의 개인이나 조직과 파일을 공유하세요. 파일과 폴더는 공개 공유 링크와 이메일 주소를 통해 공유할 수 있습니다. 다른 인스턴스에 소속된 다른 Nextcloud 계정과도 연합 클라우드 ID를 사용하여 공유할 수 있습니다.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "내부 또는 외부 공유에 포함되지 않은 공유입니다. 앱이나 다른 소스에서 공유된 내용이 여기에 해당할 수 있습니다.",
+ "Share with accounts, teams, federated cloud IDs" : "계정, 팀 및 연합 클라우드 ID와 공유",
+ "Share with accounts and teams" : "계정 및 팀과 공유",
+ "Email, federated cloud ID" : "이메일, 연합 클라우드 ID",
"Unable to load the shares list" : "공유 목록을 불러올 수 없음",
"Expires {relativetime}" : "{relativetime}에 만료",
"this share just expired." : "이 공유는 방금 만료되었습니다.",
"Shared with you by {owner}" : "{owner}님이 당신에게 공유함",
"Internal shares" : "내부 공유",
"Internal shares explanation" : "내부 공유 설명",
- "Share with accounts and teams" : "계정 및 팀과 공유",
"External shares" : "외부 공유",
"External shares explanation" : "외부 공유 설명",
- "Email, federated cloud id" : "이메일, 연합 클라우드 ID",
"Additional shares" : "부가적 공유",
"Additional shares explanation" : "부가적 공유 설명",
"Link to a file" : "파일로 향한 링크",
@@ -378,10 +372,13 @@ OC.L10N.register(
"Could not update share" : "공유를 갱신할 수 없음",
"Share saved" : "공유 저장됨",
"Share expiry date saved" : "공유 만료일 저장됨",
+ "Share hide-download state saved" : "공유 다운로드 숨기기 상태 저장됨",
"Share label saved" : "공유 이름 저장됨",
"Share note for recipient saved" : "받는이를 위한 공유 메모 저장됨",
"Share password saved" : "공유 암호 저장됨",
"Share permissions saved" : "공유 권한 저장됨",
+ "Upload files to {folder}" : "{folder}에 파일 업로드",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}님이 당신에게 폴더를 공유했습니다.",
"Shared by" : "공유한 사용자:",
"Shared with" : "다음 사용자와 공유함",
"Password created successfully" : "암호가 성공적으로 생성됨",
@@ -412,15 +409,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "{remote}에서 호환 서버를 찾을 수 없음",
"Invalid server URL" : "잘못된 서버 URL",
"Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음",
- "Files" : "파일",
+ "You are not allowed to edit link shares that you don't own" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.",
"Download all files" : "모든 파일 다운로드",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가됨"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"],
"Search for share recipients" : "공유 대상 검색",
"No recommendations. Start typing." : "추천 없음. 타이핑을 시작하십시오",
- "Password field can't be empty" : "암호 칸은 비워둘 수 없습니다.",
- "Allow download" : "다운로드 허용",
- "Share expire date saved" : "공유 만료일 저장됨",
- "You are not allowed to edit link shares that you don't own" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가됨"],
- "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"]
+ "To upload files, you need to provide your name first." : "파일을 업로드하려면 먼저 당신의 이름을 알려주세요.",
+ "Enter your name" : "이름을 입력하세요",
+ "Submit name" : "이름 제출",
+ "Name" : "이름",
+ "Share with accounts, teams, federated cloud id" : "계정, 팀 및 연합 클라우드 ID와 공유",
+ "Email, federated cloud id" : "이메일, 연합 클라우드 ID",
+ "Filename must not be empty." : "파일 이름을 비울 수 없습니다."
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json
index ae50282cff2..162ac564766 100644
--- a/apps/files_sharing/l10n/ko.json
+++ b/apps/files_sharing/l10n/ko.json
@@ -183,7 +183,6 @@
"Set default folder for accepted shares" : "허용한 공유의 기본 경로 설정",
"Reset" : "초기화",
"Reset folder to system default" : "폴더를 시스템 기본값으로 재설정",
- "Share expiration: " : "공유 만료:",
"Share Expiration" : "공유 만료",
"group" : "그룹",
"conversation" : "대화",
@@ -257,12 +256,6 @@
"By uploading files, you agree to the terms of service." : "파일을 업로드하면 이용 약관에 동의하는 것을 의미합니다.",
"View terms of service" : "이용 약관 보기",
"Terms of service" : "이용 약관",
- "Upload files to {folder}" : "{folder}에 파일 업로드",
- "Submit name" : "이름 제출",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}님이 당신에게 폴더를 공유했습니다.",
- "To upload files, you need to provide your name first." : "파일을 업로드하려면 먼저 당신의 이름을 알려주세요.",
- "Name" : "이름",
- "Enter your name" : "이름을 입력하세요",
"Share with {userName}" : "{userName}와(과) 공유",
"Share with email {email}" : "{email} 이메일에 공유",
"Share with group" : "그룹과 공유",
@@ -309,18 +302,19 @@
"Link shares" : "링크 공유",
"Shares" : "공유",
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "이 방법을 사용하여 조직 내 개인 또는 팀과 파일을 공유하세요. 수신자가 이미 공유 폴더에 접근할 수 있지만 위치를 찾을 수 없는 경우, 쉽게 접근할 수 있도록 내부 공유 링크를 보낼 수 있습니다.",
- "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "이 방법을 사용하면 조직 외부의 조직이나 개인과 파일을 공유할 수 있습니다. 파일과 폴더는 공개 공유 링크와 이메일 주소를 통해 공유할 수 있습니다. 또한, 다른 인스턴스에 소속된 다른 Nextcloud 계정과도 연합 클라우드 ID를 사용하여 공유할 수 있습니다.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "이 방법을 사용하여 이 조직 외부의 개인이나 조직과 파일을 공유하세요. 파일과 폴더는 공개 공유 링크와 이메일 주소를 통해 공유할 수 있습니다. 다른 인스턴스에 소속된 다른 Nextcloud 계정과도 연합 클라우드 ID를 사용하여 공유할 수 있습니다.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "내부 또는 외부 공유에 포함되지 않은 공유입니다. 앱이나 다른 소스에서 공유된 내용이 여기에 해당할 수 있습니다.",
+ "Share with accounts, teams, federated cloud IDs" : "계정, 팀 및 연합 클라우드 ID와 공유",
+ "Share with accounts and teams" : "계정 및 팀과 공유",
+ "Email, federated cloud ID" : "이메일, 연합 클라우드 ID",
"Unable to load the shares list" : "공유 목록을 불러올 수 없음",
"Expires {relativetime}" : "{relativetime}에 만료",
"this share just expired." : "이 공유는 방금 만료되었습니다.",
"Shared with you by {owner}" : "{owner}님이 당신에게 공유함",
"Internal shares" : "내부 공유",
"Internal shares explanation" : "내부 공유 설명",
- "Share with accounts and teams" : "계정 및 팀과 공유",
"External shares" : "외부 공유",
"External shares explanation" : "외부 공유 설명",
- "Email, federated cloud id" : "이메일, 연합 클라우드 ID",
"Additional shares" : "부가적 공유",
"Additional shares explanation" : "부가적 공유 설명",
"Link to a file" : "파일로 향한 링크",
@@ -376,10 +370,13 @@
"Could not update share" : "공유를 갱신할 수 없음",
"Share saved" : "공유 저장됨",
"Share expiry date saved" : "공유 만료일 저장됨",
+ "Share hide-download state saved" : "공유 다운로드 숨기기 상태 저장됨",
"Share label saved" : "공유 이름 저장됨",
"Share note for recipient saved" : "받는이를 위한 공유 메모 저장됨",
"Share password saved" : "공유 암호 저장됨",
"Share permissions saved" : "공유 권한 저장됨",
+ "Upload files to {folder}" : "{folder}에 파일 업로드",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName}님이 당신에게 폴더를 공유했습니다.",
"Shared by" : "공유한 사용자:",
"Shared with" : "다음 사용자와 공유함",
"Password created successfully" : "암호가 성공적으로 생성됨",
@@ -410,15 +407,18 @@
"No compatible server found at {remote}" : "{remote}에서 호환 서버를 찾을 수 없음",
"Invalid server URL" : "잘못된 서버 URL",
"Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음",
- "Files" : "파일",
+ "You are not allowed to edit link shares that you don't own" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.",
"Download all files" : "모든 파일 다운로드",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가됨"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"],
"Search for share recipients" : "공유 대상 검색",
"No recommendations. Start typing." : "추천 없음. 타이핑을 시작하십시오",
- "Password field can't be empty" : "암호 칸은 비워둘 수 없습니다.",
- "Allow download" : "다운로드 허용",
- "Share expire date saved" : "공유 만료일 저장됨",
- "You are not allowed to edit link shares that you don't own" : "당신이 것이 아닌 링크 공유를 편집할 권한이 없습니다.",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count}개 이메일 주소가 이미 추가됨"],
- "_1 email address added_::_{count} email addresses added_" : ["{count}개 이메일 주소 추가함"]
+ "To upload files, you need to provide your name first." : "파일을 업로드하려면 먼저 당신의 이름을 알려주세요.",
+ "Enter your name" : "이름을 입력하세요",
+ "Submit name" : "이름 제출",
+ "Name" : "이름",
+ "Share with accounts, teams, federated cloud id" : "계정, 팀 및 연합 클라우드 ID와 공유",
+ "Email, federated cloud id" : "이메일, 연합 클라우드 ID",
+ "Filename must not be empty." : "파일 이름을 비울 수 없습니다."
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/lb.js b/apps/files_sharing/l10n/lb.js
deleted file mode 100644
index 0679858d818..00000000000
--- a/apps/files_sharing/l10n/lb.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Nothing shared yet" : "Nach näischt gedeelt",
- "No shared links" : "Keng gedeelte Linken",
- "Cancel" : "Ofbriechen",
- "Shared by" : "Gedeelt vun",
- "Sharing" : "Gedeelt",
- "The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.",
- "Password" : "Passwuert",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Name" : "Numm",
- "Download" : "Download",
- "Direct link" : "Direkte Link"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/lb.json b/apps/files_sharing/l10n/lb.json
deleted file mode 100644
index 9355d70a6fb..00000000000
--- a/apps/files_sharing/l10n/lb.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "Nothing shared yet" : "Nach näischt gedeelt",
- "No shared links" : "Keng gedeelte Linken",
- "Cancel" : "Ofbriechen",
- "Shared by" : "Gedeelt vun",
- "Sharing" : "Gedeelt",
- "The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.",
- "Password" : "Passwuert",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Name" : "Numm",
- "Download" : "Download",
- "Direct link" : "Direkte Link"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/lo.js b/apps/files_sharing/l10n/lo.js
deleted file mode 100644
index c2ef0b8138f..00000000000
--- a/apps/files_sharing/l10n/lo.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Sharing" : "ການແບ່ງປັນ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/lo.json b/apps/files_sharing/l10n/lo.json
deleted file mode 100644
index e6d885c8e7f..00000000000
--- a/apps/files_sharing/l10n/lo.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Sharing" : "ການແບ່ງປັນ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js
index 95014fc608d..318d1bc1344 100644
--- a/apps/files_sharing/l10n/lt_LT.js
+++ b/apps/files_sharing/l10n/lt_LT.js
@@ -178,8 +178,6 @@ OC.L10N.register(
"Note:" : "Pastaba:",
"File drop" : "Failų įkėlimas",
"Terms of service" : "Naudojimosi sąlygos",
- "Name" : "Pavadinimas",
- "Enter your name" : "Įveskite savo vardą",
"Share with {userName}" : "Bendrinti su {userName}",
"Share with email {email}" : "Bendrinti su el. pašto adresu {email}",
"Share with group" : "Bendrinti su grupe",
@@ -239,6 +237,7 @@ OC.L10N.register(
"No deleted shares" : "Ištrintų viešinių nėra",
"Pending shares" : "Laukiantys viešiniai",
"No pending shares" : "Nėra jokių laukiančių viešinių",
+ "Error deleting the share" : "Klaida ištrinant bendrinimą",
"Error updating the share: {errorMessage}" : "Klaida atnaujinant viešinį: {errorMessage}",
"Error updating the share" : "Klaida atnaujinant viešinį",
"File \"{path}\" has been unshared" : "Failas „{path}“ nustotas bendrinti",
@@ -277,12 +276,13 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Nerasta jokio suderinamo serverio ties {remote}",
"Invalid server URL" : "Neteisingas serverio URL adresas",
"Failed to add the public link to your Nextcloud" : "Nepavyko pridėti viešosios nuorodos į jūsų Nextcloud",
- "Files" : "Failai",
"Download all files" : "Atsisiųsti visus failus ",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Jau pridėtas 1 el. pašto adresas","Jau pridėti {count} el. pašto adresai","Jau pridėta {count} el. pašto adresų","Jau pridėtas {count} el. pašto adresas"],
+ "_1 email address added_::_{count} email addresses added_" : ["Pridėtas 1 el. pašto adresas","Pridėti {count} el. pašto adresai","Pridėta {count} el. pašto adresų","Pridėtas {count} el. pašto adresas"],
"Search for share recipients" : "Ieškoti viešinio gavėjų",
"No recommendations. Start typing." : "Rekomendacijų nėra. Pradėkite rašyti.",
- "Allow download" : "Leisti atsisiųsti",
- "_1 email address already added_::_{count} email addresses already added_" : ["Jau pridėtas 1 el. pašto adresas","Jau pridėti {count} el. pašto adresai","Jau pridėta {count} el. pašto adresų","Jau pridėtas {count} el. pašto adresas"],
- "_1 email address added_::_{count} email addresses added_" : ["Pridėtas 1 el. pašto adresas","Pridėti {count} el. pašto adresai","Pridėta {count} el. pašto adresų","Pridėtas {count} el. pašto adresas"]
+ "Enter your name" : "Įveskite savo vardą",
+ "Name" : "Pavadinimas",
+ "Filename must not be empty." : "Failo pavadinimas negali būti tuščias."
},
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json
index bcd33c23678..11b9da18c1d 100644
--- a/apps/files_sharing/l10n/lt_LT.json
+++ b/apps/files_sharing/l10n/lt_LT.json
@@ -176,8 +176,6 @@
"Note:" : "Pastaba:",
"File drop" : "Failų įkėlimas",
"Terms of service" : "Naudojimosi sąlygos",
- "Name" : "Pavadinimas",
- "Enter your name" : "Įveskite savo vardą",
"Share with {userName}" : "Bendrinti su {userName}",
"Share with email {email}" : "Bendrinti su el. pašto adresu {email}",
"Share with group" : "Bendrinti su grupe",
@@ -237,6 +235,7 @@
"No deleted shares" : "Ištrintų viešinių nėra",
"Pending shares" : "Laukiantys viešiniai",
"No pending shares" : "Nėra jokių laukiančių viešinių",
+ "Error deleting the share" : "Klaida ištrinant bendrinimą",
"Error updating the share: {errorMessage}" : "Klaida atnaujinant viešinį: {errorMessage}",
"Error updating the share" : "Klaida atnaujinant viešinį",
"File \"{path}\" has been unshared" : "Failas „{path}“ nustotas bendrinti",
@@ -275,12 +274,13 @@
"No compatible server found at {remote}" : "Nerasta jokio suderinamo serverio ties {remote}",
"Invalid server URL" : "Neteisingas serverio URL adresas",
"Failed to add the public link to your Nextcloud" : "Nepavyko pridėti viešosios nuorodos į jūsų Nextcloud",
- "Files" : "Failai",
"Download all files" : "Atsisiųsti visus failus ",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Jau pridėtas 1 el. pašto adresas","Jau pridėti {count} el. pašto adresai","Jau pridėta {count} el. pašto adresų","Jau pridėtas {count} el. pašto adresas"],
+ "_1 email address added_::_{count} email addresses added_" : ["Pridėtas 1 el. pašto adresas","Pridėti {count} el. pašto adresai","Pridėta {count} el. pašto adresų","Pridėtas {count} el. pašto adresas"],
"Search for share recipients" : "Ieškoti viešinio gavėjų",
"No recommendations. Start typing." : "Rekomendacijų nėra. Pradėkite rašyti.",
- "Allow download" : "Leisti atsisiųsti",
- "_1 email address already added_::_{count} email addresses already added_" : ["Jau pridėtas 1 el. pašto adresas","Jau pridėti {count} el. pašto adresai","Jau pridėta {count} el. pašto adresų","Jau pridėtas {count} el. pašto adresas"],
- "_1 email address added_::_{count} email addresses added_" : ["Pridėtas 1 el. pašto adresas","Pridėti {count} el. pašto adresai","Pridėta {count} el. pašto adresų","Pridėtas {count} el. pašto adresas"]
+ "Enter your name" : "Įveskite savo vardą",
+ "Name" : "Pavadinimas",
+ "Filename must not be empty." : "Failo pavadinimas negali būti tuščias."
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/lv.js b/apps/files_sharing/l10n/lv.js
deleted file mode 100644
index 3c03d93dc79..00000000000
--- a/apps/files_sharing/l10n/lv.js
+++ /dev/null
@@ -1,204 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Waiting…" : "Gaida...",
- "error" : "kļūda",
- "finished" : "pabeigts",
- "This will stop your current uploads." : "Tādējādi tiks pārtraukta jūsu pašreizējā augšupielāde.",
- "Move or copy" : "Pārvietot vai kopēt",
- "Download" : "Lejupielādēt",
- "Delete" : "Dzēst",
- "You can upload into this folder" : "Jūs variet augšuplādēt šajā mapē",
- "Terms of service" : "Pakalpojuma noteikumi",
- "Show list view" : "Rādīt saraksta skatu",
- "Show grid view" : "Rādīt režģa skatu",
- "File shares" : "Datņu koplietojumi",
- "Downloaded via public link" : "Lejupielādēt izmantojot publisku saiti",
- "Downloaded by {email}" : "Lejupielādēts {email}",
- "{file} downloaded via public link" : "{file} lejupielādēts izmantojot publisku saiti",
- "{email} downloaded {file}" : "{email} lejupielādēts {file}",
- "Shared with group {group}" : "Koplietots ar grupu {group}",
- "Removed share for group {group}" : "Noņēma koplietošanu grupai {group}",
- "{actor} shared with group {group}" : "{actor} koplietoja ar grupu {group}",
- "{actor} removed share for group {group}" : "{actor} noņēma koplietošanu grupai {group}",
- "Share for group {group} expired" : "Kopīgošana grupai {group} ir beigusies",
- "You shared {file} with group {group}" : "Jūs koplietojāt {file} ar grupu {group}",
- "You removed group {group} from {file}" : "Jūs noņēmāt grupu {group} no {file}",
- "{actor} shared {file} with group {group}" : "{actor} koplietoja {file} ar grupu {group}",
- "{actor} removed group {group} from {file}" : "{actor} noņēma grupu {group} no {file}",
- "Share for file {file} with group {group} expired" : "Datnes {file} kopīgošana ar grupu {group} ir beigusies",
- "Shared as public link" : "Koplietots kā publiska saite",
- "Removed public link" : "Noņemta publiska saite",
- "Public link expired" : "Publiskā saite ir beigusies",
- "{actor} shared as public link" : "{actor} koplietoja kā publisku saiti",
- "{actor} removed public link" : "{actor} noņēma publisko saiti",
- "Public link of {actor} expired" : "{actor} publiskā saite beidzās",
- "You shared {file} as public link" : "Jūs koplietojāt {file} kā publisku saiti",
- "You removed public link for {file}" : "Jūs noņēmāt {file} publisko saiti",
- "Public link expired for {file}" : "{file} publiskā saite beidzās",
- "{actor} shared {file} as public link" : "{actor} koplietoja {file} kā publisko saiti",
- "{actor} removed public link for {file}" : "{actor} noņēma {file} publisko saiti",
- "Public link of {actor} for {file} expired" : "{actor} publiskā saite {file} beidzās",
- "{user} accepted the remote share" : "{user} apstiprināja attālo koplietošanu",
- "{user} declined the remote share" : "{user} noraidīja attālo koplietošanu",
- "You received a new remote share {file} from {user}" : "Jūs saņēmāt attālo {file} koplietošanu no {user}",
- "{user} accepted the remote share of {file}" : "{user} apstiprināja {file} attālo koplietošanu",
- "{user} declined the remote share of {file}" : "{user} noraidīja {file} attālo koplietošanu",
- "{user} unshared {file} from you" : "{user} atcēla {file} kopīgošanu ar Tevi",
- "Shared with {user}" : "Koplietoja ar {user}",
- "Removed share for {user}" : "Noņēma koplietošanu ar {user}",
- "You removed yourself" : "Jūs noņēmāt sevi",
- "{actor} removed themselves" : "{actor} noņēma sevi",
- "{actor} shared with {user}" : "{actor} koplietoja ar {user}",
- "{actor} removed share for {user}" : "{actor} noņēma koplietošanu {user}",
- "Shared by {actor}" : "Koplietoja {actor}",
- "{actor} removed share" : "{actor} noņēma koplietošanu",
- "Share for {user} expired" : "Koplietošana {user} beidzās",
- "Share expired" : "Koplietošana beidzās",
- "You shared {file} with {user}" : "Jūs koplietojāt {file} ar {user}",
- "You removed {user} from {file}" : "Jūs noņēmāt koplietošanu {user} no {file}",
- "You removed yourself from {file}" : "Jūs noņēmāt sevi no {file}",
- "{actor} removed themselves from {file}" : "{actor} noņēma sevi no {file}",
- "{actor} shared {file} with {user}" : "{actor} koplietoja {file} ar {user}",
- "{actor} removed {user} from {file}" : "{actor} noņemts {user} no {file}",
- "{actor} shared {file} with you" : "{actor} kopīgoja {file} ar Tevi",
- "{actor} removed you from the share named {file}" : "{actor} noņēma jūs ko koplietošanas ar nosaukumu {file}",
- "Share for file {file} with {user} expired" : "Koplietošana datnei {file} ar {user} beidzās",
- "Share for file {file} expired" : "Koplietošana datnei {file} beidzās",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-pastā vai saitē koplietotā datne vai mape tika <strong>lejupielādēta</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Datne vai mape tika koplietota no <strong>cita servera</strong>",
- "Sharing" : "Koplietošana",
- "A file or folder has been <strong>shared</strong>" : "<strong>Koplietota</strong> datne vai mape",
- "Shared link" : "Koplietota saite",
- "Wrong share ID, share does not exist" : "Nepareizs kopīgošanas Id, koplietojums nepastāv",
- "Could not delete share" : "Neizdevās dzēst koplietotni",
- "Please specify a file or folder path" : "Lūdzu norādiet datnes vai mapes ceļu",
- "Wrong path, file/folder does not exist" : "Nepareizs ceļš, datne/mape nepastāv",
- "Could not create share" : "Nevar izveidot koplietošanu",
- "Invalid permissions" : "Nederīgas atļaujas",
- "Invalid date, date format must be YYYY-MM-DD" : "Nepareizs datums, datumam jābūt YYYY-MM-DD formātā",
- "Group sharing is disabled by the administrator" : "Administrators grupas koplietošanu ir atslēdzis",
- "Please specify a valid group" : "Lūdzu norādiet derīgu grupu",
- "Public link sharing is disabled by the administrator" : "Administrators publisku saites koplietošanu ir atslēdzis",
- "Public upload disabled by the administrator" : "Administrators publisku augšupielādi ir atslēdzis",
- "Public upload is only possible for publicly shared folders" : "Publiska augšupielāde iespējama tikai publiski koplietotām mapēm",
- "Unknown share type" : "Nezināms kopīgošanas veids",
- "Not a directory" : "Nav direktorijs",
- "Could not lock node" : "Nevarēja bloķēt",
- "Could not lock path" : "Nevarēja bloķēt ceļu",
- "Wrong or no update parameter given" : "Nepareizs atjaunināšanas parametrs vai tas nav norādīts",
- "Wrong password" : "Nepareiza parole",
- "shared by %s" : "Koplietoja %s",
- "Download all files" : "Lejupielādēt visas datnes",
- "Direct link" : "Tiešā saite",
- "Share API is disabled" : "Koplietošanas API ir atslēgta",
- "File sharing" : "Datņu koplietošana",
- "Share will expire tomorrow" : "Koplietošana rīt beigsies",
- "Your share of {node} will expire tomorrow" : "Jūsu koplietotajam {node} rīt beigsies termiņš",
- "You received {share} as a share by {user}" : "Jūs saņēmāt koplietotu {share} no {user}",
- "You received {share} to group {group} as a share by {user}" : "Jūs saņēmāt koplietotu {share} grupai {group} no {user}",
- "Accept" : "Pieņemt",
- "Decline" : "Noraidīt",
- "People" : "Cilvēki",
- "Expiration date" : "Termiņa datums",
- "Password" : "Parole",
- "Share link" : "Koplietot saiti",
- "Copy to clipboard" : "Kopēt starpliktuvē",
- "Send link via email" : "Sūtīt saiti e-pastā",
- "Select" : "Atzīmēt",
- "Cancel" : "Atcelt",
- "Close" : "Aizvērt",
- "Continue" : "Turpināt",
- "Reset" : "Atiestatīt",
- "Unknown error" : "Nezināma kļūda",
- "group" : "grupa",
- "conversation" : "saruna",
- "remote" : "attālināti",
- "remote group" : "attālinātā grupa",
- "guest" : "viesis",
- "Unshare" : "Pārtraukt koplietošanu",
- "Internal link" : "Iekšējā saite",
- "Link copied" : "Saite nokopēta",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Enter a date" : "Ievadiet datumu",
- "Customize link" : "Pielāgot saiti",
- "Add another link" : "Pievienot citu saiti",
- "Create a new share link" : "Izveidojiet jaunu kopīgošanas saiti",
- "Share link ({label})" : "Kopīgot saiti ({label})",
- "Can edit" : "Var labot",
- "Resharing is not allowed" : "Atkārtota koplietošana nav atļauta",
- "Name or email …" : "Vārds vai e-pasts ...",
- "Name, email, or Federated Cloud ID …" : "Vārds, e-pasts vai federatīvā mākoņa ID ...",
- "Searching …" : "Meklē...",
- "No elements found." : "Elementi netika atrasti.",
- "Search globally" : "Meklēt globāli",
- "Guest" : "Viesis",
- "Group" : "Grupa",
- "Email" : "E-pasts",
- "on {server}" : "uz {server}",
- "Allow upload and editing" : "Atļaut augšupielādi un labošanu",
- "Allow editing" : "Atļaut labošanu",
- "Advanced settings" : "Paplašināti iestatījumi",
- "Set password" : "Iestatīt paroli",
- "Video verification" : "Video verifikācija",
- "Set expiration date" : "Uzstādīt beigu termiņu",
- "Hide download" : "Slēpt lejupielādi",
- "Note to recipient" : "Piezīme saņēmējam",
- "Read" : "Lasīt",
- "Edit" : "Labot",
- "Share" : "Koplietot",
- "Others with access" : "Citi ar pieeju",
- "Expires {relativetime}" : "Termiņš beidzas {relativetime}",
- "this share just expired." : "šai koplietošanai tikko beidzās termiņš.",
- "Shared with you by {owner}" : "{owner} kopīgoja ar Tevi",
- "Shared" : "Koplietots",
- "Shared with others" : "Koplietots ar citiem",
- "Link to a file" : "Datnes saite",
- "Shared by" : "Koplietoja",
- "Shared with" : "Koplietots ar",
- "Shared with you and the group {group} by {owner}" : "{owner} kopīgoja ar Tevi un kopu {group}",
- "Shared with you and {circle} by {owner}" : "{owner} kopīgoja ar Tevi un {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} kopīgoja ar Tevi un sarunā {conversation}",
- "Shared with you in a conversation by {owner}" : " {owner} kopīgoja ar Tevi sarunā",
- "Shares" : "Koplietots",
- "No shares" : "Nav koplietojumu",
- "Shared with you" : "Kopīgots ar Tevi",
- "Nothing shared with you yet" : "Nekas vēl nav koplietots",
- "Nothing shared yet" : "Nekas vēl nav koplietots",
- "Shared by link" : "Koplietots ar saiti",
- "No shared links" : "Nav koplietotu saišu",
- "Deleted shares" : "Dzēstie koplietojumi",
- "No deleted shares" : "Nav dzēstu koplietojumu",
- "Pending shares" : "Gaidošie koplietojumi",
- "No pending shares" : "Nav gaidošie koplietojumi",
- "Share note" : "Koplietot piezīmi",
- "Upload files to %s" : "Augšupielādēt datnes uz %s",
- "Note" : "Piezīme",
- "Select or drop files" : "Izvēlies vai ievelc datnes",
- "Uploading files" : "Augšupielādē datnes",
- "Uploaded files:" : "Augšupielādētas datnes:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Veicot datņu augšupielādi, jūs piekrītat %1$spakalpojuma noteikumiem%2$s.",
- "Add to your Nextcloud" : "Pievienot savam Nextcloud",
- "No compatible server found at {remote}" : "Nav atrasts neviens saderīgs serveris {remote}",
- "Invalid server URL" : "Nederīgs servera url",
- "Failed to add the public link to your Nextcloud" : "Neizdevās pievienot publisku saiti jūsu Nextcloud",
- "Files" : "Datnes",
- "Please specify a valid user" : "Lūdzu norādiet derīgu lietotāju",
- "Accept user and group shares by default" : "Pēc noklusējuma pieņemt koplietošanu no lietotājiem un grupām",
- "Read only" : "Tikai lasāms",
- "File drop (upload only)" : "Datņu mešana (tikai augšupielādei)",
- "Upload" : "Augšupielādēt",
- "Only works for users with access to this file" : "Darbojas tikai lietotājiem, kuriem ir piekļuve šai datnei",
- "Circle" : "Loks",
- "No other users with access found" : "Nav atrasti citi lietotāji ar pieeju",
- "No entries found in this folder" : "Šajā mapē nekas nav atrasts",
- "Name" : "Nosaukums",
- "Share time" : "Koplietošanas laiks",
- "Reasons might be:" : "Iespējamie iemesli:",
- "the item was removed" : "vienums tika dzēsts",
- "the link expired" : "saitei beidzies termiņš",
- "sharing is disabled" : "koplietošana nav ieslēgta",
- "For more info, please ask the person who sent this link." : "Vairāk informācijas lūgums vaicāt personai, kas nosūtīja šo saiti."
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/files_sharing/l10n/lv.json b/apps/files_sharing/l10n/lv.json
deleted file mode 100644
index ca9c26b869d..00000000000
--- a/apps/files_sharing/l10n/lv.json
+++ /dev/null
@@ -1,202 +0,0 @@
-{ "translations": {
- "Waiting…" : "Gaida...",
- "error" : "kļūda",
- "finished" : "pabeigts",
- "This will stop your current uploads." : "Tādējādi tiks pārtraukta jūsu pašreizējā augšupielāde.",
- "Move or copy" : "Pārvietot vai kopēt",
- "Download" : "Lejupielādēt",
- "Delete" : "Dzēst",
- "You can upload into this folder" : "Jūs variet augšuplādēt šajā mapē",
- "Terms of service" : "Pakalpojuma noteikumi",
- "Show list view" : "Rādīt saraksta skatu",
- "Show grid view" : "Rādīt režģa skatu",
- "File shares" : "Datņu koplietojumi",
- "Downloaded via public link" : "Lejupielādēt izmantojot publisku saiti",
- "Downloaded by {email}" : "Lejupielādēts {email}",
- "{file} downloaded via public link" : "{file} lejupielādēts izmantojot publisku saiti",
- "{email} downloaded {file}" : "{email} lejupielādēts {file}",
- "Shared with group {group}" : "Koplietots ar grupu {group}",
- "Removed share for group {group}" : "Noņēma koplietošanu grupai {group}",
- "{actor} shared with group {group}" : "{actor} koplietoja ar grupu {group}",
- "{actor} removed share for group {group}" : "{actor} noņēma koplietošanu grupai {group}",
- "Share for group {group} expired" : "Kopīgošana grupai {group} ir beigusies",
- "You shared {file} with group {group}" : "Jūs koplietojāt {file} ar grupu {group}",
- "You removed group {group} from {file}" : "Jūs noņēmāt grupu {group} no {file}",
- "{actor} shared {file} with group {group}" : "{actor} koplietoja {file} ar grupu {group}",
- "{actor} removed group {group} from {file}" : "{actor} noņēma grupu {group} no {file}",
- "Share for file {file} with group {group} expired" : "Datnes {file} kopīgošana ar grupu {group} ir beigusies",
- "Shared as public link" : "Koplietots kā publiska saite",
- "Removed public link" : "Noņemta publiska saite",
- "Public link expired" : "Publiskā saite ir beigusies",
- "{actor} shared as public link" : "{actor} koplietoja kā publisku saiti",
- "{actor} removed public link" : "{actor} noņēma publisko saiti",
- "Public link of {actor} expired" : "{actor} publiskā saite beidzās",
- "You shared {file} as public link" : "Jūs koplietojāt {file} kā publisku saiti",
- "You removed public link for {file}" : "Jūs noņēmāt {file} publisko saiti",
- "Public link expired for {file}" : "{file} publiskā saite beidzās",
- "{actor} shared {file} as public link" : "{actor} koplietoja {file} kā publisko saiti",
- "{actor} removed public link for {file}" : "{actor} noņēma {file} publisko saiti",
- "Public link of {actor} for {file} expired" : "{actor} publiskā saite {file} beidzās",
- "{user} accepted the remote share" : "{user} apstiprināja attālo koplietošanu",
- "{user} declined the remote share" : "{user} noraidīja attālo koplietošanu",
- "You received a new remote share {file} from {user}" : "Jūs saņēmāt attālo {file} koplietošanu no {user}",
- "{user} accepted the remote share of {file}" : "{user} apstiprināja {file} attālo koplietošanu",
- "{user} declined the remote share of {file}" : "{user} noraidīja {file} attālo koplietošanu",
- "{user} unshared {file} from you" : "{user} atcēla {file} kopīgošanu ar Tevi",
- "Shared with {user}" : "Koplietoja ar {user}",
- "Removed share for {user}" : "Noņēma koplietošanu ar {user}",
- "You removed yourself" : "Jūs noņēmāt sevi",
- "{actor} removed themselves" : "{actor} noņēma sevi",
- "{actor} shared with {user}" : "{actor} koplietoja ar {user}",
- "{actor} removed share for {user}" : "{actor} noņēma koplietošanu {user}",
- "Shared by {actor}" : "Koplietoja {actor}",
- "{actor} removed share" : "{actor} noņēma koplietošanu",
- "Share for {user} expired" : "Koplietošana {user} beidzās",
- "Share expired" : "Koplietošana beidzās",
- "You shared {file} with {user}" : "Jūs koplietojāt {file} ar {user}",
- "You removed {user} from {file}" : "Jūs noņēmāt koplietošanu {user} no {file}",
- "You removed yourself from {file}" : "Jūs noņēmāt sevi no {file}",
- "{actor} removed themselves from {file}" : "{actor} noņēma sevi no {file}",
- "{actor} shared {file} with {user}" : "{actor} koplietoja {file} ar {user}",
- "{actor} removed {user} from {file}" : "{actor} noņemts {user} no {file}",
- "{actor} shared {file} with you" : "{actor} kopīgoja {file} ar Tevi",
- "{actor} removed you from the share named {file}" : "{actor} noņēma jūs ko koplietošanas ar nosaukumu {file}",
- "Share for file {file} with {user} expired" : "Koplietošana datnei {file} ar {user} beidzās",
- "Share for file {file} expired" : "Koplietošana datnei {file} beidzās",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "E-pastā vai saitē koplietotā datne vai mape tika <strong>lejupielādēta</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Datne vai mape tika koplietota no <strong>cita servera</strong>",
- "Sharing" : "Koplietošana",
- "A file or folder has been <strong>shared</strong>" : "<strong>Koplietota</strong> datne vai mape",
- "Shared link" : "Koplietota saite",
- "Wrong share ID, share does not exist" : "Nepareizs kopīgošanas Id, koplietojums nepastāv",
- "Could not delete share" : "Neizdevās dzēst koplietotni",
- "Please specify a file or folder path" : "Lūdzu norādiet datnes vai mapes ceļu",
- "Wrong path, file/folder does not exist" : "Nepareizs ceļš, datne/mape nepastāv",
- "Could not create share" : "Nevar izveidot koplietošanu",
- "Invalid permissions" : "Nederīgas atļaujas",
- "Invalid date, date format must be YYYY-MM-DD" : "Nepareizs datums, datumam jābūt YYYY-MM-DD formātā",
- "Group sharing is disabled by the administrator" : "Administrators grupas koplietošanu ir atslēdzis",
- "Please specify a valid group" : "Lūdzu norādiet derīgu grupu",
- "Public link sharing is disabled by the administrator" : "Administrators publisku saites koplietošanu ir atslēdzis",
- "Public upload disabled by the administrator" : "Administrators publisku augšupielādi ir atslēdzis",
- "Public upload is only possible for publicly shared folders" : "Publiska augšupielāde iespējama tikai publiski koplietotām mapēm",
- "Unknown share type" : "Nezināms kopīgošanas veids",
- "Not a directory" : "Nav direktorijs",
- "Could not lock node" : "Nevarēja bloķēt",
- "Could not lock path" : "Nevarēja bloķēt ceļu",
- "Wrong or no update parameter given" : "Nepareizs atjaunināšanas parametrs vai tas nav norādīts",
- "Wrong password" : "Nepareiza parole",
- "shared by %s" : "Koplietoja %s",
- "Download all files" : "Lejupielādēt visas datnes",
- "Direct link" : "Tiešā saite",
- "Share API is disabled" : "Koplietošanas API ir atslēgta",
- "File sharing" : "Datņu koplietošana",
- "Share will expire tomorrow" : "Koplietošana rīt beigsies",
- "Your share of {node} will expire tomorrow" : "Jūsu koplietotajam {node} rīt beigsies termiņš",
- "You received {share} as a share by {user}" : "Jūs saņēmāt koplietotu {share} no {user}",
- "You received {share} to group {group} as a share by {user}" : "Jūs saņēmāt koplietotu {share} grupai {group} no {user}",
- "Accept" : "Pieņemt",
- "Decline" : "Noraidīt",
- "People" : "Cilvēki",
- "Expiration date" : "Termiņa datums",
- "Password" : "Parole",
- "Share link" : "Koplietot saiti",
- "Copy to clipboard" : "Kopēt starpliktuvē",
- "Send link via email" : "Sūtīt saiti e-pastā",
- "Select" : "Atzīmēt",
- "Cancel" : "Atcelt",
- "Close" : "Aizvērt",
- "Continue" : "Turpināt",
- "Reset" : "Atiestatīt",
- "Unknown error" : "Nezināma kļūda",
- "group" : "grupa",
- "conversation" : "saruna",
- "remote" : "attālināti",
- "remote group" : "attālinātā grupa",
- "guest" : "viesis",
- "Unshare" : "Pārtraukt koplietošanu",
- "Internal link" : "Iekšējā saite",
- "Link copied" : "Saite nokopēta",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Enter a date" : "Ievadiet datumu",
- "Customize link" : "Pielāgot saiti",
- "Add another link" : "Pievienot citu saiti",
- "Create a new share link" : "Izveidojiet jaunu kopīgošanas saiti",
- "Share link ({label})" : "Kopīgot saiti ({label})",
- "Can edit" : "Var labot",
- "Resharing is not allowed" : "Atkārtota koplietošana nav atļauta",
- "Name or email …" : "Vārds vai e-pasts ...",
- "Name, email, or Federated Cloud ID …" : "Vārds, e-pasts vai federatīvā mākoņa ID ...",
- "Searching …" : "Meklē...",
- "No elements found." : "Elementi netika atrasti.",
- "Search globally" : "Meklēt globāli",
- "Guest" : "Viesis",
- "Group" : "Grupa",
- "Email" : "E-pasts",
- "on {server}" : "uz {server}",
- "Allow upload and editing" : "Atļaut augšupielādi un labošanu",
- "Allow editing" : "Atļaut labošanu",
- "Advanced settings" : "Paplašināti iestatījumi",
- "Set password" : "Iestatīt paroli",
- "Video verification" : "Video verifikācija",
- "Set expiration date" : "Uzstādīt beigu termiņu",
- "Hide download" : "Slēpt lejupielādi",
- "Note to recipient" : "Piezīme saņēmējam",
- "Read" : "Lasīt",
- "Edit" : "Labot",
- "Share" : "Koplietot",
- "Others with access" : "Citi ar pieeju",
- "Expires {relativetime}" : "Termiņš beidzas {relativetime}",
- "this share just expired." : "šai koplietošanai tikko beidzās termiņš.",
- "Shared with you by {owner}" : "{owner} kopīgoja ar Tevi",
- "Shared" : "Koplietots",
- "Shared with others" : "Koplietots ar citiem",
- "Link to a file" : "Datnes saite",
- "Shared by" : "Koplietoja",
- "Shared with" : "Koplietots ar",
- "Shared with you and the group {group} by {owner}" : "{owner} kopīgoja ar Tevi un kopu {group}",
- "Shared with you and {circle} by {owner}" : "{owner} kopīgoja ar Tevi un {circle}",
- "Shared with you and the conversation {conversation} by {owner}" : "{owner} kopīgoja ar Tevi un sarunā {conversation}",
- "Shared with you in a conversation by {owner}" : " {owner} kopīgoja ar Tevi sarunā",
- "Shares" : "Koplietots",
- "No shares" : "Nav koplietojumu",
- "Shared with you" : "Kopīgots ar Tevi",
- "Nothing shared with you yet" : "Nekas vēl nav koplietots",
- "Nothing shared yet" : "Nekas vēl nav koplietots",
- "Shared by link" : "Koplietots ar saiti",
- "No shared links" : "Nav koplietotu saišu",
- "Deleted shares" : "Dzēstie koplietojumi",
- "No deleted shares" : "Nav dzēstu koplietojumu",
- "Pending shares" : "Gaidošie koplietojumi",
- "No pending shares" : "Nav gaidošie koplietojumi",
- "Share note" : "Koplietot piezīmi",
- "Upload files to %s" : "Augšupielādēt datnes uz %s",
- "Note" : "Piezīme",
- "Select or drop files" : "Izvēlies vai ievelc datnes",
- "Uploading files" : "Augšupielādē datnes",
- "Uploaded files:" : "Augšupielādētas datnes:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Veicot datņu augšupielādi, jūs piekrītat %1$spakalpojuma noteikumiem%2$s.",
- "Add to your Nextcloud" : "Pievienot savam Nextcloud",
- "No compatible server found at {remote}" : "Nav atrasts neviens saderīgs serveris {remote}",
- "Invalid server URL" : "Nederīgs servera url",
- "Failed to add the public link to your Nextcloud" : "Neizdevās pievienot publisku saiti jūsu Nextcloud",
- "Files" : "Datnes",
- "Please specify a valid user" : "Lūdzu norādiet derīgu lietotāju",
- "Accept user and group shares by default" : "Pēc noklusējuma pieņemt koplietošanu no lietotājiem un grupām",
- "Read only" : "Tikai lasāms",
- "File drop (upload only)" : "Datņu mešana (tikai augšupielādei)",
- "Upload" : "Augšupielādēt",
- "Only works for users with access to this file" : "Darbojas tikai lietotājiem, kuriem ir piekļuve šai datnei",
- "Circle" : "Loks",
- "No other users with access found" : "Nav atrasti citi lietotāji ar pieeju",
- "No entries found in this folder" : "Šajā mapē nekas nav atrasts",
- "Name" : "Nosaukums",
- "Share time" : "Koplietošanas laiks",
- "Reasons might be:" : "Iespējamie iemesli:",
- "the item was removed" : "vienums tika dzēsts",
- "the link expired" : "saitei beidzies termiņš",
- "sharing is disabled" : "koplietošana nav ieslēgta",
- "For more info, please ask the person who sent this link." : "Vairāk informācijas lūgums vaicāt personai, kas nosūtīja šo saiti."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/mk.js b/apps/files_sharing/l10n/mk.js
index 303ae1fbb25..271050ced03 100644
--- a/apps/files_sharing/l10n/mk.js
+++ b/apps/files_sharing/l10n/mk.js
@@ -250,12 +250,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "Со прикачување на датотеки, се согласувате со условите за користење.",
"View terms of service" : "Прочитај ги условите за користење",
"Terms of service" : "Услови за користење",
- "Upload files to {folder}" : "Прикачи датотеки во {folder}",
- "Submit name" : "Испрати име",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} сподели папка со вас.",
- "To upload files, you need to provide your name first." : "За да прикачите датотеки, мора да го наведете вашето име.",
- "Name" : "Име",
- "Enter your name" : "Внесете го вашето име",
"Share with {userName}" : "Сподели со {userName}",
"Share with email {email}" : "Сподели со е-пошта {email}",
"Share with group" : "Сподели со група",
@@ -303,16 +297,15 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Користете го овој метод за споделување датотеки со поединци или тимови во вашата организација. Ако примачот веќе има пристап до споделувањето, но не може да го лоцира, можете да му ја испратите внатрешната врска за споделување за лесен пристап.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Користете го овој метод за споделување датотеки со поединци или организации надвор од вашата организација. Датотеките и папките може да се споделуваат преку јавни линкови и адреси на е-пошта. Можете исто така да споделувате со други сметки на Nextcloud хостирани на различни истанци користејќи го нивниот федеративен ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Споделувања кои не се дел од внатрешни или надворешни споделувања. Ова може да биде споделување од апликации или други извори.",
+ "Share with accounts and teams" : "Сподели со корисници и тимови",
"Unable to load the shares list" : "Неможе да се вчита листата на споделувања",
"Expires {relativetime}" : "Истекува {relativetime}",
"this share just expired." : "ова споделување штотуку истече.",
"Shared with you by {owner}" : "Споделено со Вас од {owner}",
"Internal shares" : "Внатрешни споделувања",
"Internal shares explanation" : "Објаснување за внатрешни споделувања",
- "Share with accounts and teams" : "Сподели со корисници и тимови",
"External shares" : "Надворешни споделувања",
"External shares explanation" : "Објаснување за надворешни споделувања",
- "Email, federated cloud id" : "Е-пошта, федерален ИД",
"Additional shares" : "Дополнителни споделувања",
"Additional shares explanation" : "Објаснување за додатни споделувања",
"Link to a file" : "Линк до датотеката",
@@ -360,6 +353,7 @@ OC.L10N.register(
"List of unapproved shares." : "Листа на неодобрени споделувања.",
"No pending shares" : "Нема споделувања на чекање",
"Shares you have received but not approved will show up here" : "Листа на споделувањата кој сте ги добиле но не се адобрени ќе се појават овде",
+ "Error deleting the share" : "Грешка при отстранување на споделувањето",
"Error updating the share: {errorMessage}" : "Грешка при ажурирање на споделувањето: {errorMessage}",
"Error updating the share" : "Грешка при ажурирање на споделувањето",
"File \"{path}\" has been unshared" : "Датотеката \"{path}\" повеќе не се споделува",
@@ -370,6 +364,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Белешката на споделувањето до примачот е зачувана",
"Share password saved" : "Лозинката е зачувана",
"Share permissions saved" : "Дозволите за споделување се зачувани",
+ "To upload files to {folder}, you need to provide your name first." : "За да прикачите датотеки во {folder}, мора да го наведете вашето име.",
+ "Upload files to {folder}" : "Прикачи датотеки во {folder}",
+ "Please confirm your name to upload files to {folder}" : "Потврдете го вашето име за да прикачите датотеки во {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} сподели папка со вас.",
+ "Names must not be empty." : "Имињата не можат да бидат празни.",
+ "Names must not start with a dot." : "Името неможе да започнува со точка.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" не е дозволено да содржи во името.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" е резервирано име и не е дозволено.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" не е дозволено име.",
+ "Names must not end with \"{extension}\"." : "Името неможе да завршува со \"{extension}\".",
+ "Invalid name." : "Невалидно име.",
"Shared by" : "Споделено од",
"Shared with" : "Споделено со",
"Password created successfully" : "Успрешно е креирана лозинка",
@@ -400,14 +405,17 @@ OC.L10N.register(
"No compatible server found at {remote}" : "{remote} не е компатибилен сервер",
"Invalid server URL" : "Неправилна URL на сервер",
"Failed to add the public link to your Nextcloud" : "Неуспешно додавање на јавниот линк",
- "Files" : "Датотеки",
+ "You are not allowed to edit link shares that you don't own" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши",
"Download all files" : "Преземи ги сите датотеки",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"],
"Search for share recipients" : "Пребарај за примачи на споделувањето",
"No recommendations. Start typing." : "Нема препораки. Започнете со пишување.",
- "Password field can't be empty" : "Полето за лозинка неможе да биде празно",
- "Allow download" : "Дозволи преземање",
- "You are not allowed to edit link shares that you don't own" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"],
- "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"]
+ "To upload files, you need to provide your name first." : "За да прикачите датотеки, мора да го наведете вашето име.",
+ "Enter your name" : "Внесете го вашето име",
+ "Submit name" : "Испрати име",
+ "Name" : "Име",
+ "Email, federated cloud id" : "Е-пошта, федерален ИД",
+ "Filename must not be empty." : "Името на датотеката не може да биде празно."
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/files_sharing/l10n/mk.json b/apps/files_sharing/l10n/mk.json
index 2e65dc61c7d..ab62105c5c2 100644
--- a/apps/files_sharing/l10n/mk.json
+++ b/apps/files_sharing/l10n/mk.json
@@ -248,12 +248,6 @@
"By uploading files, you agree to the terms of service." : "Со прикачување на датотеки, се согласувате со условите за користење.",
"View terms of service" : "Прочитај ги условите за користење",
"Terms of service" : "Услови за користење",
- "Upload files to {folder}" : "Прикачи датотеки во {folder}",
- "Submit name" : "Испрати име",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} сподели папка со вас.",
- "To upload files, you need to provide your name first." : "За да прикачите датотеки, мора да го наведете вашето име.",
- "Name" : "Име",
- "Enter your name" : "Внесете го вашето име",
"Share with {userName}" : "Сподели со {userName}",
"Share with email {email}" : "Сподели со е-пошта {email}",
"Share with group" : "Сподели со група",
@@ -301,16 +295,15 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Користете го овој метод за споделување датотеки со поединци или тимови во вашата организација. Ако примачот веќе има пристап до споделувањето, но не може да го лоцира, можете да му ја испратите внатрешната врска за споделување за лесен пристап.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Користете го овој метод за споделување датотеки со поединци или организации надвор од вашата организација. Датотеките и папките може да се споделуваат преку јавни линкови и адреси на е-пошта. Можете исто така да споделувате со други сметки на Nextcloud хостирани на различни истанци користејќи го нивниот федеративен ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Споделувања кои не се дел од внатрешни или надворешни споделувања. Ова може да биде споделување од апликации или други извори.",
+ "Share with accounts and teams" : "Сподели со корисници и тимови",
"Unable to load the shares list" : "Неможе да се вчита листата на споделувања",
"Expires {relativetime}" : "Истекува {relativetime}",
"this share just expired." : "ова споделување штотуку истече.",
"Shared with you by {owner}" : "Споделено со Вас од {owner}",
"Internal shares" : "Внатрешни споделувања",
"Internal shares explanation" : "Објаснување за внатрешни споделувања",
- "Share with accounts and teams" : "Сподели со корисници и тимови",
"External shares" : "Надворешни споделувања",
"External shares explanation" : "Објаснување за надворешни споделувања",
- "Email, federated cloud id" : "Е-пошта, федерален ИД",
"Additional shares" : "Дополнителни споделувања",
"Additional shares explanation" : "Објаснување за додатни споделувања",
"Link to a file" : "Линк до датотеката",
@@ -358,6 +351,7 @@
"List of unapproved shares." : "Листа на неодобрени споделувања.",
"No pending shares" : "Нема споделувања на чекање",
"Shares you have received but not approved will show up here" : "Листа на споделувањата кој сте ги добиле но не се адобрени ќе се појават овде",
+ "Error deleting the share" : "Грешка при отстранување на споделувањето",
"Error updating the share: {errorMessage}" : "Грешка при ажурирање на споделувањето: {errorMessage}",
"Error updating the share" : "Грешка при ажурирање на споделувањето",
"File \"{path}\" has been unshared" : "Датотеката \"{path}\" повеќе не се споделува",
@@ -368,6 +362,17 @@
"Share note for recipient saved" : "Белешката на споделувањето до примачот е зачувана",
"Share password saved" : "Лозинката е зачувана",
"Share permissions saved" : "Дозволите за споделување се зачувани",
+ "To upload files to {folder}, you need to provide your name first." : "За да прикачите датотеки во {folder}, мора да го наведете вашето име.",
+ "Upload files to {folder}" : "Прикачи датотеки во {folder}",
+ "Please confirm your name to upload files to {folder}" : "Потврдете го вашето име за да прикачите датотеки во {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} сподели папка со вас.",
+ "Names must not be empty." : "Имињата не можат да бидат празни.",
+ "Names must not start with a dot." : "Името неможе да започнува со точка.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" не е дозволено да содржи во името.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" е резервирано име и не е дозволено.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" не е дозволено име.",
+ "Names must not end with \"{extension}\"." : "Името неможе да завршува со \"{extension}\".",
+ "Invalid name." : "Невалидно име.",
"Shared by" : "Споделено од",
"Shared with" : "Споделено со",
"Password created successfully" : "Успрешно е креирана лозинка",
@@ -398,14 +403,17 @@
"No compatible server found at {remote}" : "{remote} не е компатибилен сервер",
"Invalid server URL" : "Неправилна URL на сервер",
"Failed to add the public link to your Nextcloud" : "Неуспешно додавање на јавниот линк",
- "Files" : "Датотеки",
+ "You are not allowed to edit link shares that you don't own" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши",
"Download all files" : "Преземи ги сите датотеки",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"],
"Search for share recipients" : "Пребарај за примачи на споделувањето",
"No recommendations. Start typing." : "Нема препораки. Започнете со пишување.",
- "Password field can't be empty" : "Полето за лозинка неможе да биде празно",
- "Allow download" : "Дозволи преземање",
- "You are not allowed to edit link shares that you don't own" : "Не ви е дозволено да ги уредувате споделувањата кој не се ваши",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 е-пошта адреса е веќе додадена","{count} е-пошта адреси се веќе додадени"],
- "_1 email address added_::_{count} email addresses added_" : ["1 е-пошта адреса е додадена","{count} е-пошта адреси се додадени"]
+ "To upload files, you need to provide your name first." : "За да прикачите датотеки, мора да го наведете вашето име.",
+ "Enter your name" : "Внесете го вашето име",
+ "Submit name" : "Испрати име",
+ "Name" : "Име",
+ "Email, federated cloud id" : "Е-пошта, федерален ИД",
+ "Filename must not be empty." : "Името на датотеката не може да биде празно."
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/mn.js b/apps/files_sharing/l10n/mn.js
deleted file mode 100644
index 15fb0cabe5f..00000000000
--- a/apps/files_sharing/l10n/mn.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Sharing" : "Түгээлт",
- "A file or folder has been <strong>shared</strong>" : "Файл эсвэл хавтас амжилттай <strong>түгээгдлээ</strong>",
- "You shared %1$s with %2$s" : "Та %1$s-ийг %2$s руу түгээлээ",
- "You shared %1$s with group %2$s" : "Та %1$s-ийг %2$s групп руу түгээлээ",
- "You shared %1$s via link" : "Та %1$s-ийг холбоосоор түгээлээ",
- "%2$s shared %1$s with you" : "%2$s %1$s-ийг тань руу түгээлээ",
- "Shares" : "Түгээлтүүд",
- "Password" : "Нууц үг"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/mn.json b/apps/files_sharing/l10n/mn.json
deleted file mode 100644
index 3fd64731e5a..00000000000
--- a/apps/files_sharing/l10n/mn.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Sharing" : "Түгээлт",
- "A file or folder has been <strong>shared</strong>" : "Файл эсвэл хавтас амжилттай <strong>түгээгдлээ</strong>",
- "You shared %1$s with %2$s" : "Та %1$s-ийг %2$s руу түгээлээ",
- "You shared %1$s with group %2$s" : "Та %1$s-ийг %2$s групп руу түгээлээ",
- "You shared %1$s via link" : "Та %1$s-ийг холбоосоор түгээлээ",
- "%2$s shared %1$s with you" : "%2$s %1$s-ийг тань руу түгээлээ",
- "Shares" : "Түгээлтүүд",
- "Password" : "Нууц үг"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ms_MY.js b/apps/files_sharing/l10n/ms_MY.js
deleted file mode 100644
index 43c01b830e0..00000000000
--- a/apps/files_sharing/l10n/ms_MY.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Batal",
- "Shared by" : "Dikongsi dengan",
- "You shared %1$s via link" : "Anda kongsikan %1$s melalui sambungan",
- "%2$s shared %1$s with you" : "%2$s berkongsi %1$s dengan anda",
- "Shares" : "Kongsi",
- "Password" : "Kata laluan",
- "Name" : "Nama",
- "Download" : "Muat turun"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/ms_MY.json b/apps/files_sharing/l10n/ms_MY.json
deleted file mode 100644
index 333999e133b..00000000000
--- a/apps/files_sharing/l10n/ms_MY.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Cancel" : "Batal",
- "Shared by" : "Dikongsi dengan",
- "You shared %1$s via link" : "Anda kongsikan %1$s melalui sambungan",
- "%2$s shared %1$s with you" : "%2$s berkongsi %1$s dengan anda",
- "Shares" : "Kongsi",
- "Password" : "Kata laluan",
- "Name" : "Nama",
- "Download" : "Muat turun"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/nb.js b/apps/files_sharing/l10n/nb.js
index 3a3c9a895c3..120f5d4482f 100644
--- a/apps/files_sharing/l10n/nb.js
+++ b/apps/files_sharing/l10n/nb.js
@@ -242,12 +242,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "Ved å laste opp filer godtar du bruksvilkårene.",
"View terms of service" : "Vis bruksvilkårene",
"Terms of service" : "Betingelser for tjenesten",
- "Upload files to {folder}" : "Last opp filer til {folder}",
- "Submit name" : "Send inn navn",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med deg.",
- "To upload files, you need to provide your name first." : "For å laste opp filer må du først oppgi navnet ditt.",
- "Name" : "Navn",
- "Enter your name" : "Skriv inn navnet ditt",
"Share with {userName}" : "Del med {userName}",
"Share with email {email}" : "Del med e-post {email}",
"Share with group" : "Del med gruppe",
@@ -339,6 +333,8 @@ OC.L10N.register(
"Error updating the share" : "Feil under oppdatering av delingen",
"File \"{path}\" has been unshared" : "Deling av filen \"{path}\" er opphevd",
"Folder \"{path}\" has been unshared" : "Deling av mappen \"{path}\" er opphevd",
+ "Upload files to {folder}" : "Last opp filer til {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med deg.",
"Shared by" : "Delt av",
"Shared with" : "Delt med",
"Password created successfully" : "Passord opprettet",
@@ -369,13 +365,16 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Ingen kompatibel server ble funnet på {remote}",
"Invalid server URL" : "Ugyldig server adresse",
"Failed to add the public link to your Nextcloud" : "Feil oppsto under oppretting av offentlig lenke til din Nextcloud",
- "Files" : "Filer",
+ "You are not allowed to edit link shares that you don't own" : "Du har ikke lov til å redigere delte lenker du ikke eier",
"Download all files" : "Last ned alle filer",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadresse allerede lagt til","{count} e-postadresser allerede lagt til"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-postadresse lagt til","{count} e-postadresser lagt til"],
"Search for share recipients" : "Søk etter delingsmottakere",
"No recommendations. Start typing." : "Ingen forslag. Start skriving.",
- "Allow download" : "Tillat nedlasting",
- "You are not allowed to edit link shares that you don't own" : "Du har ikke lov til å redigere delte lenker du ikke eier",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadresse allerede lagt til","{count} e-postadresser allerede lagt til"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-postadresse lagt til","{count} e-postadresser lagt til"]
+ "To upload files, you need to provide your name first." : "For å laste opp filer må du først oppgi navnet ditt.",
+ "Enter your name" : "Skriv inn navnet ditt",
+ "Submit name" : "Send inn navn",
+ "Name" : "Navn",
+ "Filename must not be empty." : "Filnavn kan ikke være tomt."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/nb.json b/apps/files_sharing/l10n/nb.json
index 0acbd0f552f..0a21333bf4b 100644
--- a/apps/files_sharing/l10n/nb.json
+++ b/apps/files_sharing/l10n/nb.json
@@ -240,12 +240,6 @@
"By uploading files, you agree to the terms of service." : "Ved å laste opp filer godtar du bruksvilkårene.",
"View terms of service" : "Vis bruksvilkårene",
"Terms of service" : "Betingelser for tjenesten",
- "Upload files to {folder}" : "Last opp filer til {folder}",
- "Submit name" : "Send inn navn",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med deg.",
- "To upload files, you need to provide your name first." : "For å laste opp filer må du først oppgi navnet ditt.",
- "Name" : "Navn",
- "Enter your name" : "Skriv inn navnet ditt",
"Share with {userName}" : "Del med {userName}",
"Share with email {email}" : "Del med e-post {email}",
"Share with group" : "Del med gruppe",
@@ -337,6 +331,8 @@
"Error updating the share" : "Feil under oppdatering av delingen",
"File \"{path}\" has been unshared" : "Deling av filen \"{path}\" er opphevd",
"Folder \"{path}\" has been unshared" : "Deling av mappen \"{path}\" er opphevd",
+ "Upload files to {folder}" : "Last opp filer til {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delte en mappe med deg.",
"Shared by" : "Delt av",
"Shared with" : "Delt med",
"Password created successfully" : "Passord opprettet",
@@ -367,13 +363,16 @@
"No compatible server found at {remote}" : "Ingen kompatibel server ble funnet på {remote}",
"Invalid server URL" : "Ugyldig server adresse",
"Failed to add the public link to your Nextcloud" : "Feil oppsto under oppretting av offentlig lenke til din Nextcloud",
- "Files" : "Filer",
+ "You are not allowed to edit link shares that you don't own" : "Du har ikke lov til å redigere delte lenker du ikke eier",
"Download all files" : "Last ned alle filer",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadresse allerede lagt til","{count} e-postadresser allerede lagt til"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-postadresse lagt til","{count} e-postadresser lagt til"],
"Search for share recipients" : "Søk etter delingsmottakere",
"No recommendations. Start typing." : "Ingen forslag. Start skriving.",
- "Allow download" : "Tillat nedlasting",
- "You are not allowed to edit link shares that you don't own" : "Du har ikke lov til å redigere delte lenker du ikke eier",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadresse allerede lagt til","{count} e-postadresser allerede lagt til"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-postadresse lagt til","{count} e-postadresser lagt til"]
+ "To upload files, you need to provide your name first." : "For å laste opp filer må du først oppgi navnet ditt.",
+ "Enter your name" : "Skriv inn navnet ditt",
+ "Submit name" : "Send inn navn",
+ "Name" : "Navn",
+ "Filename must not be empty." : "Filnavn kan ikke være tomt."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index 8b6ede69a95..ba9536c334f 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -55,6 +55,7 @@ OC.L10N.register(
"Share for file {file} with {user} expired" : "Share voor bestande {file} met {user} verlopen",
"Share for file {file} expired" : "Share voor bestand {file} verlopen",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Een bestand of map gedeeld via mail of publieke link werd <strong>gedownload</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Bestanden zijn <strong>geüpload</strong> naar een map die per mail of via een openbare link wordt gedeeld",
"A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
"Sharing" : "Delen",
"A file or folder has been <strong>shared</strong>" : "Een bestand of map is <strong>gedeeld</strong>",
@@ -64,22 +65,42 @@ OC.L10N.register(
"Please specify a file or folder path" : "Geef een bestand of pad van een map op",
"Wrong path, file/folder does not exist" : "slecht path, file/folder bestaat niet",
"Could not create share" : "Kan gedeelde folder niet aanmaken",
+ "Please specify a valid account to share with" : "Geef een geldig account op waarmee je wilt delen",
"Group sharing is disabled by the administrator" : "Delen voor groepen is uitgeschakeld door de beheerder",
"Please specify a valid group" : "Geef een geldige groep op",
"Public link sharing is disabled by the administrator" : "Delen van openbare links is uitgeschakeld door de beheerder",
+ "Please specify a valid email address" : "Geef een geldig e-mailadres op",
"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",
"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 account ID" : "Geef een geldig federatief account-ID op",
"Please specify a valid federated group ID" : "Geef een geldig gefedereerd groepID op",
+ "You cannot share to a Team if the app is not enabled" : "Je kunt niet delen met een Team als de app niet is ingeschakeld",
+ "Please specify a valid team" : "Geef een geldig team op",
"Sharing %s failed because the back end does not support room shares" : "Delen van %s mislukte omdat de backend het delen in ruimtes niet ondersteunt",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Delen %s is mislukt omdat het back-end geen ScienceMesh-shares ondersteunt",
"Unknown share type" : "Onbekend type gedeelde folder",
"Not a directory" : "Geen directory",
"Could not lock node" : "Kon de node niet blokkeren",
"Public upload is only possible for publicly shared folders" : "Publieke upload is alleen mogelijk voor publiek gedeelde mappen",
+ "Share must at least have READ or CREATE permissions" : "Share moet ten minste READ - of CREATE-rechten hebben",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Share moet READ-toestemming hebben als de UPDATE- of DELETE-toestemming is ingesteld",
"Public upload disabled by the administrator" : "Publieke upload uitgeschakeld door de systeembeheerder",
"Could not lock path" : "Kan pad niet blokkeren",
+ "no sharing rights on this item" : "geen deelrechten op dit item",
+ "You are not allowed to edit incoming shares" : "Je mag geen inkomende shares bewerken",
"Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Het wachtwoord verzenden via Nextcloud Talk\" voor het delen van een bestand of map is mislukt omdat Nextcloud Talk niet is ingeschakeld.",
+ "Custom share link tokens have been disabled by the administrator" : "Aangepaste share link tokens zijn uitgeschakeld door de beheerder",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokens moeten minimaal 1 teken bevatten en mogen alleen letters, cijfers of een koppelteken bevatten",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ongeldige datum. Formaat moet zijn YYYY-MM-DD",
+ "No sharing rights on this item" : "Geen deelrechten op dit item",
+ "Invalid share attributes provided: \"%s\"" : "Ongeldige deelattributen verstrekt: \"%s\"",
+ "You are not allowed to send mail notifications" : "Je mag geen mailmeldingen versturen",
+ "No mail notification configured for this share type" : "Geen mailmelding geconfigureerd voor dit type share",
"Wrong password" : "Onjuist wachtwoord",
+ "Error while sending mail notification" : "Fout tijdens het verzenden van e-mailmelding",
+ "Failed to generate a unique token" : "Het genereren van een uniek token is mislukt",
+ "This share does not exist or is no longer available" : "Deze share bestaat niet of is niet meer beschikbaar",
"shared by %s" : "Gedeeld door %s",
"Download" : "Downloaden",
"Add to your %s" : "Toevoegen aan je %s",
@@ -92,9 +113,12 @@ OC.L10N.register(
"You received {share} to group {group} as a share by {user}" : "Je ontving {share} aan groep {group} als een share van {user}",
"Accept" : "Accepteren",
"Decline" : "Afwijzen",
+ "Remember to upload the files to %s" : "Vergeet niet om de bestanden te uploaden naar %s",
"We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "We willen je er vriendelijk op wijzen dat je nog geen bestanden hebt geüpload naar de gedeelde map.",
"Open \"%s\"" : "Open \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Met deze applicatie kunnen mensen bestanden delen binnen Nextcloud. Indien ingeschakeld kan de beheerder kiezen welke groepen bestanden kunnen delen. Deze mensen kunnen vervolgens bestanden en mappen delen met andere accounts en groepen binnen Nextcloud. Als de beheerder de share-linkfunctie inschakelt, kan bovendien een externe link worden gebruikt om bestanden te delen met andere mensen buiten Nextcloud. Beheerders kunnen ook wachtwoorden en vervaldata afdwingen en het delen tussen servers mogelijk maken via share-links, evenals delen vanaf mobiele apparaten.\nAls je de functie uitschakelt, worden gedeelde bestanden en mappen op de server verwijderd voor alle ontvangers van shares, en ook voor de synchronisatieclients en mobiele apps. Meer informatie is beschikbaar in de Nextcloud Documentatie.",
"People" : "Mensen",
+ "Filter accounts" : "Accounts filteren",
"The request will expire on {date} at midnight and will be password protected." : "De aanvraag verloopt op {date} om middernacht en zal beveiligd zijn met een wachtwoord.",
"The request will expire on {date} at midnight." : "De aanvraag verloopt op {date} om middernacht.",
"The request will be password protected." : "De aanvraag is wachtwoordbeveiligd",
@@ -126,9 +150,11 @@ OC.L10N.register(
"Select" : "Selecteer",
"What are you requesting?" : "Wat is je aanvraag?",
"Request subject" : "Onderwerp aanvraag",
+ "Birthday party photos, History assignment…" : "Verjaardagsfoto's, Geschiedenis…",
"Where should these files go?" : "Waar moeten deze bestanden naartoe?",
"Upload destination" : "Uploadbestemming",
"Revert to default" : "Val terug op standaard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De geüploade bestanden zijn alleen voor jou zichtbaar, tenzij je ervoor kiest ze te delen.",
"Add a note" : "Voeg een notitie toe",
"Note for recipient" : "Notitie voor ontvanger",
"Add a note to help people understand what you are requesting." : "Voeg een notitie toe zodat anderen begrijpen wat je aanvraag behelst",
@@ -141,6 +167,7 @@ OC.L10N.register(
"Error creating the share: {errorMessage}" : "Fout bij aanmaken share: {errorMessage}",
"Error creating the share" : "Fout tijdens aanmaken share",
"Error sending emails: {errorMessage}" : "Fout bij versturen e-mails: {errorMessage}",
+ "Error sending emails" : "Fout bij het verzenden van e-mails",
"Create a file request" : "Maak een bestandsaanvraag",
"Collect files from others even if they do not have an account." : "Verzamel bestanden van anderen, ook al hebben ze geen account.",
"To ensure you can receive files, verify you have enough storage available." : "Om zeker te zijn dat je bestanden kan ontvangen, controleer of je genoeg opslagruimte beschikbaar hebt.",
@@ -158,6 +185,8 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Stel standaard map in voor geaccepteerde shares",
"Reset" : "Herstellen",
"Reset folder to system default" : "Reset map naar systeem standaard",
+ "Share expiration: {date}" : "Vervaldatum van de share: {date}",
+ "Share Expiration" : "Vervaldatum van de share",
"group" : "groep",
"conversation" : "gesprek",
"remote" : "extern",
@@ -182,6 +211,7 @@ OC.L10N.register(
"File request ({label})" : "Bestandsaanvraag ({label})",
"Mail share ({label})" : "Mail share ({label})",
"Share link ({label})" : "Link delen ({label})",
+ "Mail share" : "Share mailen",
"Share link ({index})" : "Deellink ({index})",
"Create public link" : "Creëer openbare link",
"Actions for \"{title}\"" : "Acties voor \"{title}\"",
@@ -206,7 +236,7 @@ OC.L10N.register(
"View only" : "Alleen bekijken",
"Can edit" : "Kan bewerken",
"Custom permissions" : "Aangepaste machtigingen",
- "Resharing is not allowed" : "Verder delen niet toegestaan",
+ "Resharing is not allowed" : "Opnieuw delen niet toegestaan",
"Name or email …" : "Naam of e-mailadres …",
"Name, email, or Federated Cloud ID …" : "Naam, e-mailadres of gefedereerde Cloud ID …",
"Searching …" : "Zoeken ...",
@@ -220,19 +250,16 @@ OC.L10N.register(
"Deck board" : "Deck board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "op {server}",
+ "Enter external recipients" : "Externe ontvangers invoeren",
+ "Search for internal recipients" : "Interne ontvangers zoeken",
"Note from" : "Notirtie van",
"Note:" : "Notitie:",
"File drop" : "Bestandsopslag",
"Upload files to {foldername}." : "Upload bestanden naar {foldername}",
"By uploading files, you agree to the terms of service." : "Door het uploaden van bestanden stem je in met de gebruiksvoorwaarden.",
+ "Successfully uploaded files" : "Succesvol geüploade bestanden",
"View terms of service" : "Toon gebruiksvoorwaarden",
"Terms of service" : "Gebruiksvoorwaarden",
- "Upload files to {folder}" : "Upload bestanden naar {folder}",
- "Submit name" : "Naam doorgeven",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deelde een map met je.",
- "To upload files, you need to provide your name first." : "Om bestanden te uploaden moet je eerste je naam opgeven.",
- "Name" : "Naam",
- "Enter your name" : "Geef je naam op",
"Share with {userName}" : "Deel met {userName}",
"Share with email {email}" : "Deel met e-mail {email}",
"Share with group" : "Deel met groep",
@@ -247,12 +274,18 @@ OC.L10N.register(
"Edit" : "Bewerk",
"Share" : "Delen",
"Delete" : "Verwijderen",
+ "Password field cannot be empty" : "Wachtwoordveld kan niet leeg zijn",
"Replace current password" : "Vervang huidig wachtwoord",
+ "Failed to generate a new token" : "Het genereren van een nieuw token is mislukt",
"Allow upload and editing" : "Uploaden en bewerken toestaan",
"Allow editing" : "Bewerken toestaan",
"Upload only" : "Alleen upload",
"Advanced settings" : "Geavanceerde instellingen",
"Share label" : "Deel het label",
+ "Share link token" : "Share link token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Stel het publieke deellink-token in op iets dat gemakkelijk te onthouden is of genereer een nieuw token. Het is niet aanbevolen om een raadbaar token te gebruiken voor shares die gevoelige informatie bevatten.",
+ "Generating…" : "Genereren…",
+ "Generate new token" : "Nieuw token genereren",
"Set password" : "Instellen wachtwoord",
"Password expires {passwordExpirationTime}" : "Wachtwoord vervalt {passwordExpirationTime}",
"Password expired" : "Wachtwoord is vervallen",
@@ -263,6 +296,7 @@ OC.L10N.register(
"Allow download and sync" : "Download en synchroniseren toestaan",
"Note to recipient" : "Notitie voor ontvanger",
"Enter a note for the share recipient" : "Geef een notitie op voor de share-ontvanger",
+ "Show files in grid view" : "Bestanden tonen in rasterweergave",
"Delete share" : "Verwijder share",
"Others with access" : "Anderen met toegang",
"No other accounts with access found" : "Geen andere accounts met toegang gevonden",
@@ -271,12 +305,23 @@ OC.L10N.register(
"Unable to fetch inherited shares" : "Kon overerfde shares niet ophalen",
"Link shares" : "Deel shares",
"Shares" : "Shares",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Gebruik deze methode om bestanden te delen met personen of teams binnen je organisatie. Als de ontvanger al toegang heeft tot de share, maar deze niet kan lokaliseren, kun je deze de interne share-link sturen voor gemakkelijke toegang.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Gebruik deze methode om bestanden te delen met personen of organisaties buiten je organisatie. Bestanden en mappen kunnen worden gedeeld via openbare deellinks en e-mailadressen. Je kunt ook delen met andere Nextcloud-accounts die in verschillende instanties worden gehost met behulp van hun federatieve cloud-ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares die geen deel uitmaken van de interne of externe shares. Dit kunnen shares zijn van apps of andere bronnen.",
+ "Share with accounts, teams, federated cloud IDs" : "Delen met accounts, teams, federatieve cloud-ID's",
+ "Share with accounts and teams" : "Delen met accounts en teams",
+ "Federated cloud ID" : "Federatieve cloud-ID",
+ "Email, federated cloud ID" : "E-mail, federatieve cloud-ID",
"Unable to load the shares list" : "Kon de shares-lijst niet laden",
"Expires {relativetime}" : "Vervalt {relativetime}",
"this share just expired." : "deze share is net verlopen.",
"Shared with you by {owner}" : "Met je gedeeld door {owner}",
"Internal shares" : "Interne schijven",
+ "Internal shares explanation" : "Uitleg over interne shares",
"External shares" : "Externe schijven",
+ "External shares explanation" : "Uitleg over externe shares",
+ "Additional shares" : "Aanvullende shares",
+ "Additional shares explanation" : "Uitleg over aanvullende shares",
"Link to a file" : "Link naar een bestand",
"_Accept share_::_Accept shares_" : ["Accepteer share","Accepteer shares"],
"Open in Files" : "Open in Bestanden",
@@ -312,10 +357,18 @@ OC.L10N.register(
"No shared links" : "Geen gedeelde links",
"Files and folders you shared by link will show up here" : "Bestanden en mappen die je via links deelt, worden hier getoond",
"File requests" : "Bestandsaanvragen",
+ "List of file requests." : "Lijst met bestandsverzoeken.",
+ "No file requests" : "Geen bestandsverzoeken",
+ "File requests you have created will show up here" : "Bestandsverzoeken die je hebt aangemaakt, worden hier weergegeven",
"Deleted shares" : "Verwijderde shares",
+ "List of shares you left." : "Lijst met shares die je hebt behouden.",
"No deleted shares" : "Geen verwijderde shares",
+ "Shares you have left will show up here" : "Shares die je hebt behoudem, verschijnen hier",
"Pending shares" : "Deellinks in behandeling",
+ "List of unapproved shares." : "Lijst van niet-goedgekeurde shares.",
"No pending shares" : "Geen deellinks in behandeling",
+ "Shares you have received but not approved will show up here" : "Shares die je hebt ontvangen maar niet hebt goedgekeurd, verschijnen hier",
+ "Error deleting the share" : "Fout bij verwijderen share",
"Error updating the share: {errorMessage}" : "Fout bij aanpassen van de share: {errorMessage}",
"Error updating the share" : "Fout tijdens bijwerken share",
"File \"{path}\" has been unshared" : "Bestand \"{path}\" is niet meer gedeeld",
@@ -328,6 +381,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Share notitie voor ontvanger opgeslagen",
"Share password saved" : "Share wachtwoord opgeslagen",
"Share permissions saved" : "Share machtigingen opgeslagen",
+ "To upload files to {folder}, you need to provide your name first." : "Om bestanden te uploaden naar {folder}, moet je eerst je naam opgeven.",
+ "Upload files to {folder}" : "Upload bestanden naar {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bevestig je naam om bestanden naar {folder} te uploaden",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deelde een map met je.",
+ "Names must not be empty." : "Namen mogen niet leeg zijn.",
+ "Names must not start with a dot." : "Namen mogen niet met een punt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" is niet toegestaan in een naam.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" is een gereserveerde naam en niet toegestaan.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" is geen toegestane naam.",
+ "Names must not end with \"{extension}\"." : "Namen mogen niet eindigen met \"{extension}\".",
+ "Invalid name." : "Ongeldige naam.",
"Shared by" : "Gedeeld door",
"Shared with" : "Gedeeld met",
"Password created successfully" : "Wachtwoord succesvol gemaakt",
@@ -358,13 +422,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Geen geschikte server gevonden op {remote}",
"Invalid server URL" : "Ongeldig server URL",
"Failed to add the public link to your Nextcloud" : "Kon de openbare link niet aan je Nextcloud toevoegen",
- "Files" : "Bestanden",
+ "You are not allowed to edit link shares that you don't own" : "Je mag geen linkshares bewerken die je niet bezit",
"Download all files" : "Download alle bestanden",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-mailadres al toegevoegd","Al {count} e-mailadressen toegevoegd"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-mailadres toegevoegd","{count} E-mailadressen toegevoegd"],
"Search for share recipients" : "Zoek om mee te delen",
"No recommendations. Start typing." : "Geen aanbevelingen. Begin te typen.",
- "Allow download" : "Downloaden toestaan",
- "Share expire date saved" : "Share vervaldatum opgeslagen",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 E-mailadres al toegevoegd","Al {count} e-mailadressen toegevoegd"],
- "_1 email address added_::_{count} email addresses added_" : ["1 E-mailadres toegevoegd","{count} E-mailadressen toegevoegd"]
+ "To upload files, you need to provide your name first." : "Om bestanden te uploaden moet je eerste je naam opgeven.",
+ "Enter your name" : "Geef je naam op",
+ "Submit name" : "Naam doorgeven",
+ "Name" : "Naam",
+ "Share with accounts, teams, federated cloud id" : "Delen met accounts, teams, federatieve cloud-ID",
+ "Email, federated cloud id" : "E-mail, federatieve cloud-ID",
+ "Filename must not be empty." : "Bestandsnaam mag niet leeg zijn"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index 4531be4c7a4..e4ae659bdc3 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -53,6 +53,7 @@
"Share for file {file} with {user} expired" : "Share voor bestande {file} met {user} verlopen",
"Share for file {file} expired" : "Share voor bestand {file} verlopen",
"A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Een bestand of map gedeeld via mail of publieke link werd <strong>gedownload</strong>",
+ "Files have been <strong>uploaded</strong> to a folder shared by mail or by public link" : "Bestanden zijn <strong>geüpload</strong> naar een map die per mail of via een openbare link wordt gedeeld",
"A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
"Sharing" : "Delen",
"A file or folder has been <strong>shared</strong>" : "Een bestand of map is <strong>gedeeld</strong>",
@@ -62,22 +63,42 @@
"Please specify a file or folder path" : "Geef een bestand of pad van een map op",
"Wrong path, file/folder does not exist" : "slecht path, file/folder bestaat niet",
"Could not create share" : "Kan gedeelde folder niet aanmaken",
+ "Please specify a valid account to share with" : "Geef een geldig account op waarmee je wilt delen",
"Group sharing is disabled by the administrator" : "Delen voor groepen is uitgeschakeld door de beheerder",
"Please specify a valid group" : "Geef een geldige groep op",
"Public link sharing is disabled by the administrator" : "Delen van openbare links is uitgeschakeld door de beheerder",
+ "Please specify a valid email address" : "Geef een geldig e-mailadres op",
"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",
"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 account ID" : "Geef een geldig federatief account-ID op",
"Please specify a valid federated group ID" : "Geef een geldig gefedereerd groepID op",
+ "You cannot share to a Team if the app is not enabled" : "Je kunt niet delen met een Team als de app niet is ingeschakeld",
+ "Please specify a valid team" : "Geef een geldig team op",
"Sharing %s failed because the back end does not support room shares" : "Delen van %s mislukte omdat de backend het delen in ruimtes niet ondersteunt",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Delen %s is mislukt omdat het back-end geen ScienceMesh-shares ondersteunt",
"Unknown share type" : "Onbekend type gedeelde folder",
"Not a directory" : "Geen directory",
"Could not lock node" : "Kon de node niet blokkeren",
"Public upload is only possible for publicly shared folders" : "Publieke upload is alleen mogelijk voor publiek gedeelde mappen",
+ "Share must at least have READ or CREATE permissions" : "Share moet ten minste READ - of CREATE-rechten hebben",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Share moet READ-toestemming hebben als de UPDATE- of DELETE-toestemming is ingesteld",
"Public upload disabled by the administrator" : "Publieke upload uitgeschakeld door de systeembeheerder",
"Could not lock path" : "Kan pad niet blokkeren",
+ "no sharing rights on this item" : "geen deelrechten op dit item",
+ "You are not allowed to edit incoming shares" : "Je mag geen inkomende shares bewerken",
"Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Het wachtwoord verzenden via Nextcloud Talk\" voor het delen van een bestand of map is mislukt omdat Nextcloud Talk niet is ingeschakeld.",
+ "Custom share link tokens have been disabled by the administrator" : "Aangepaste share link tokens zijn uitgeschakeld door de beheerder",
+ "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Tokens moeten minimaal 1 teken bevatten en mogen alleen letters, cijfers of een koppelteken bevatten",
+ "Invalid date. Format must be YYYY-MM-DD" : "Ongeldige datum. Formaat moet zijn YYYY-MM-DD",
+ "No sharing rights on this item" : "Geen deelrechten op dit item",
+ "Invalid share attributes provided: \"%s\"" : "Ongeldige deelattributen verstrekt: \"%s\"",
+ "You are not allowed to send mail notifications" : "Je mag geen mailmeldingen versturen",
+ "No mail notification configured for this share type" : "Geen mailmelding geconfigureerd voor dit type share",
"Wrong password" : "Onjuist wachtwoord",
+ "Error while sending mail notification" : "Fout tijdens het verzenden van e-mailmelding",
+ "Failed to generate a unique token" : "Het genereren van een uniek token is mislukt",
+ "This share does not exist or is no longer available" : "Deze share bestaat niet of is niet meer beschikbaar",
"shared by %s" : "Gedeeld door %s",
"Download" : "Downloaden",
"Add to your %s" : "Toevoegen aan je %s",
@@ -90,9 +111,12 @@
"You received {share} to group {group} as a share by {user}" : "Je ontving {share} aan groep {group} als een share van {user}",
"Accept" : "Accepteren",
"Decline" : "Afwijzen",
+ "Remember to upload the files to %s" : "Vergeet niet om de bestanden te uploaden naar %s",
"We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "We willen je er vriendelijk op wijzen dat je nog geen bestanden hebt geüpload naar de gedeelde map.",
"Open \"%s\"" : "Open \"%s\"",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Met deze applicatie kunnen mensen bestanden delen binnen Nextcloud. Indien ingeschakeld kan de beheerder kiezen welke groepen bestanden kunnen delen. Deze mensen kunnen vervolgens bestanden en mappen delen met andere accounts en groepen binnen Nextcloud. Als de beheerder de share-linkfunctie inschakelt, kan bovendien een externe link worden gebruikt om bestanden te delen met andere mensen buiten Nextcloud. Beheerders kunnen ook wachtwoorden en vervaldata afdwingen en het delen tussen servers mogelijk maken via share-links, evenals delen vanaf mobiele apparaten.\nAls je de functie uitschakelt, worden gedeelde bestanden en mappen op de server verwijderd voor alle ontvangers van shares, en ook voor de synchronisatieclients en mobiele apps. Meer informatie is beschikbaar in de Nextcloud Documentatie.",
"People" : "Mensen",
+ "Filter accounts" : "Accounts filteren",
"The request will expire on {date} at midnight and will be password protected." : "De aanvraag verloopt op {date} om middernacht en zal beveiligd zijn met een wachtwoord.",
"The request will expire on {date} at midnight." : "De aanvraag verloopt op {date} om middernacht.",
"The request will be password protected." : "De aanvraag is wachtwoordbeveiligd",
@@ -124,9 +148,11 @@
"Select" : "Selecteer",
"What are you requesting?" : "Wat is je aanvraag?",
"Request subject" : "Onderwerp aanvraag",
+ "Birthday party photos, History assignment…" : "Verjaardagsfoto's, Geschiedenis…",
"Where should these files go?" : "Waar moeten deze bestanden naartoe?",
"Upload destination" : "Uploadbestemming",
"Revert to default" : "Val terug op standaard",
+ "The uploaded files are visible only to you unless you choose to share them." : "De geüploade bestanden zijn alleen voor jou zichtbaar, tenzij je ervoor kiest ze te delen.",
"Add a note" : "Voeg een notitie toe",
"Note for recipient" : "Notitie voor ontvanger",
"Add a note to help people understand what you are requesting." : "Voeg een notitie toe zodat anderen begrijpen wat je aanvraag behelst",
@@ -139,6 +165,7 @@
"Error creating the share: {errorMessage}" : "Fout bij aanmaken share: {errorMessage}",
"Error creating the share" : "Fout tijdens aanmaken share",
"Error sending emails: {errorMessage}" : "Fout bij versturen e-mails: {errorMessage}",
+ "Error sending emails" : "Fout bij het verzenden van e-mails",
"Create a file request" : "Maak een bestandsaanvraag",
"Collect files from others even if they do not have an account." : "Verzamel bestanden van anderen, ook al hebben ze geen account.",
"To ensure you can receive files, verify you have enough storage available." : "Om zeker te zijn dat je bestanden kan ontvangen, controleer of je genoeg opslagruimte beschikbaar hebt.",
@@ -156,6 +183,8 @@
"Set default folder for accepted shares" : "Stel standaard map in voor geaccepteerde shares",
"Reset" : "Herstellen",
"Reset folder to system default" : "Reset map naar systeem standaard",
+ "Share expiration: {date}" : "Vervaldatum van de share: {date}",
+ "Share Expiration" : "Vervaldatum van de share",
"group" : "groep",
"conversation" : "gesprek",
"remote" : "extern",
@@ -180,6 +209,7 @@
"File request ({label})" : "Bestandsaanvraag ({label})",
"Mail share ({label})" : "Mail share ({label})",
"Share link ({label})" : "Link delen ({label})",
+ "Mail share" : "Share mailen",
"Share link ({index})" : "Deellink ({index})",
"Create public link" : "Creëer openbare link",
"Actions for \"{title}\"" : "Acties voor \"{title}\"",
@@ -204,7 +234,7 @@
"View only" : "Alleen bekijken",
"Can edit" : "Kan bewerken",
"Custom permissions" : "Aangepaste machtigingen",
- "Resharing is not allowed" : "Verder delen niet toegestaan",
+ "Resharing is not allowed" : "Opnieuw delen niet toegestaan",
"Name or email …" : "Naam of e-mailadres …",
"Name, email, or Federated Cloud ID …" : "Naam, e-mailadres of gefedereerde Cloud ID …",
"Searching …" : "Zoeken ...",
@@ -218,19 +248,16 @@
"Deck board" : "Deck board",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "op {server}",
+ "Enter external recipients" : "Externe ontvangers invoeren",
+ "Search for internal recipients" : "Interne ontvangers zoeken",
"Note from" : "Notirtie van",
"Note:" : "Notitie:",
"File drop" : "Bestandsopslag",
"Upload files to {foldername}." : "Upload bestanden naar {foldername}",
"By uploading files, you agree to the terms of service." : "Door het uploaden van bestanden stem je in met de gebruiksvoorwaarden.",
+ "Successfully uploaded files" : "Succesvol geüploade bestanden",
"View terms of service" : "Toon gebruiksvoorwaarden",
"Terms of service" : "Gebruiksvoorwaarden",
- "Upload files to {folder}" : "Upload bestanden naar {folder}",
- "Submit name" : "Naam doorgeven",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deelde een map met je.",
- "To upload files, you need to provide your name first." : "Om bestanden te uploaden moet je eerste je naam opgeven.",
- "Name" : "Naam",
- "Enter your name" : "Geef je naam op",
"Share with {userName}" : "Deel met {userName}",
"Share with email {email}" : "Deel met e-mail {email}",
"Share with group" : "Deel met groep",
@@ -245,12 +272,18 @@
"Edit" : "Bewerk",
"Share" : "Delen",
"Delete" : "Verwijderen",
+ "Password field cannot be empty" : "Wachtwoordveld kan niet leeg zijn",
"Replace current password" : "Vervang huidig wachtwoord",
+ "Failed to generate a new token" : "Het genereren van een nieuw token is mislukt",
"Allow upload and editing" : "Uploaden en bewerken toestaan",
"Allow editing" : "Bewerken toestaan",
"Upload only" : "Alleen upload",
"Advanced settings" : "Geavanceerde instellingen",
"Share label" : "Deel het label",
+ "Share link token" : "Share link token",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Stel het publieke deellink-token in op iets dat gemakkelijk te onthouden is of genereer een nieuw token. Het is niet aanbevolen om een raadbaar token te gebruiken voor shares die gevoelige informatie bevatten.",
+ "Generating…" : "Genereren…",
+ "Generate new token" : "Nieuw token genereren",
"Set password" : "Instellen wachtwoord",
"Password expires {passwordExpirationTime}" : "Wachtwoord vervalt {passwordExpirationTime}",
"Password expired" : "Wachtwoord is vervallen",
@@ -261,6 +294,7 @@
"Allow download and sync" : "Download en synchroniseren toestaan",
"Note to recipient" : "Notitie voor ontvanger",
"Enter a note for the share recipient" : "Geef een notitie op voor de share-ontvanger",
+ "Show files in grid view" : "Bestanden tonen in rasterweergave",
"Delete share" : "Verwijder share",
"Others with access" : "Anderen met toegang",
"No other accounts with access found" : "Geen andere accounts met toegang gevonden",
@@ -269,12 +303,23 @@
"Unable to fetch inherited shares" : "Kon overerfde shares niet ophalen",
"Link shares" : "Deel shares",
"Shares" : "Shares",
+ "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Gebruik deze methode om bestanden te delen met personen of teams binnen je organisatie. Als de ontvanger al toegang heeft tot de share, maar deze niet kan lokaliseren, kun je deze de interne share-link sturen voor gemakkelijke toegang.",
+ "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Gebruik deze methode om bestanden te delen met personen of organisaties buiten je organisatie. Bestanden en mappen kunnen worden gedeeld via openbare deellinks en e-mailadressen. Je kunt ook delen met andere Nextcloud-accounts die in verschillende instanties worden gehost met behulp van hun federatieve cloud-ID.",
+ "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Shares die geen deel uitmaken van de interne of externe shares. Dit kunnen shares zijn van apps of andere bronnen.",
+ "Share with accounts, teams, federated cloud IDs" : "Delen met accounts, teams, federatieve cloud-ID's",
+ "Share with accounts and teams" : "Delen met accounts en teams",
+ "Federated cloud ID" : "Federatieve cloud-ID",
+ "Email, federated cloud ID" : "E-mail, federatieve cloud-ID",
"Unable to load the shares list" : "Kon de shares-lijst niet laden",
"Expires {relativetime}" : "Vervalt {relativetime}",
"this share just expired." : "deze share is net verlopen.",
"Shared with you by {owner}" : "Met je gedeeld door {owner}",
"Internal shares" : "Interne schijven",
+ "Internal shares explanation" : "Uitleg over interne shares",
"External shares" : "Externe schijven",
+ "External shares explanation" : "Uitleg over externe shares",
+ "Additional shares" : "Aanvullende shares",
+ "Additional shares explanation" : "Uitleg over aanvullende shares",
"Link to a file" : "Link naar een bestand",
"_Accept share_::_Accept shares_" : ["Accepteer share","Accepteer shares"],
"Open in Files" : "Open in Bestanden",
@@ -310,10 +355,18 @@
"No shared links" : "Geen gedeelde links",
"Files and folders you shared by link will show up here" : "Bestanden en mappen die je via links deelt, worden hier getoond",
"File requests" : "Bestandsaanvragen",
+ "List of file requests." : "Lijst met bestandsverzoeken.",
+ "No file requests" : "Geen bestandsverzoeken",
+ "File requests you have created will show up here" : "Bestandsverzoeken die je hebt aangemaakt, worden hier weergegeven",
"Deleted shares" : "Verwijderde shares",
+ "List of shares you left." : "Lijst met shares die je hebt behouden.",
"No deleted shares" : "Geen verwijderde shares",
+ "Shares you have left will show up here" : "Shares die je hebt behoudem, verschijnen hier",
"Pending shares" : "Deellinks in behandeling",
+ "List of unapproved shares." : "Lijst van niet-goedgekeurde shares.",
"No pending shares" : "Geen deellinks in behandeling",
+ "Shares you have received but not approved will show up here" : "Shares die je hebt ontvangen maar niet hebt goedgekeurd, verschijnen hier",
+ "Error deleting the share" : "Fout bij verwijderen share",
"Error updating the share: {errorMessage}" : "Fout bij aanpassen van de share: {errorMessage}",
"Error updating the share" : "Fout tijdens bijwerken share",
"File \"{path}\" has been unshared" : "Bestand \"{path}\" is niet meer gedeeld",
@@ -326,6 +379,17 @@
"Share note for recipient saved" : "Share notitie voor ontvanger opgeslagen",
"Share password saved" : "Share wachtwoord opgeslagen",
"Share permissions saved" : "Share machtigingen opgeslagen",
+ "To upload files to {folder}, you need to provide your name first." : "Om bestanden te uploaden naar {folder}, moet je eerst je naam opgeven.",
+ "Upload files to {folder}" : "Upload bestanden naar {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bevestig je naam om bestanden naar {folder} te uploaden",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} deelde een map met je.",
+ "Names must not be empty." : "Namen mogen niet leeg zijn.",
+ "Names must not start with a dot." : "Namen mogen niet met een punt beginnen.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" is niet toegestaan in een naam.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" is een gereserveerde naam en niet toegestaan.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" is geen toegestane naam.",
+ "Names must not end with \"{extension}\"." : "Namen mogen niet eindigen met \"{extension}\".",
+ "Invalid name." : "Ongeldige naam.",
"Shared by" : "Gedeeld door",
"Shared with" : "Gedeeld met",
"Password created successfully" : "Wachtwoord succesvol gemaakt",
@@ -356,13 +420,18 @@
"No compatible server found at {remote}" : "Geen geschikte server gevonden op {remote}",
"Invalid server URL" : "Ongeldig server URL",
"Failed to add the public link to your Nextcloud" : "Kon de openbare link niet aan je Nextcloud toevoegen",
- "Files" : "Bestanden",
+ "You are not allowed to edit link shares that you don't own" : "Je mag geen linkshares bewerken die je niet bezit",
"Download all files" : "Download alle bestanden",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 E-mailadres al toegevoegd","Al {count} e-mailadressen toegevoegd"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 E-mailadres toegevoegd","{count} E-mailadressen toegevoegd"],
"Search for share recipients" : "Zoek om mee te delen",
"No recommendations. Start typing." : "Geen aanbevelingen. Begin te typen.",
- "Allow download" : "Downloaden toestaan",
- "Share expire date saved" : "Share vervaldatum opgeslagen",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 E-mailadres al toegevoegd","Al {count} e-mailadressen toegevoegd"],
- "_1 email address added_::_{count} email addresses added_" : ["1 E-mailadres toegevoegd","{count} E-mailadressen toegevoegd"]
+ "To upload files, you need to provide your name first." : "Om bestanden te uploaden moet je eerste je naam opgeven.",
+ "Enter your name" : "Geef je naam op",
+ "Submit name" : "Naam doorgeven",
+ "Name" : "Naam",
+ "Share with accounts, teams, federated cloud id" : "Delen met accounts, teams, federatieve cloud-ID",
+ "Email, federated cloud id" : "E-mail, federatieve cloud-ID",
+ "Filename must not be empty." : "Bestandsnaam mag niet leeg zijn"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/nn_NO.js b/apps/files_sharing/l10n/nn_NO.js
deleted file mode 100644
index 5585f720596..00000000000
--- a/apps/files_sharing/l10n/nn_NO.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "Avbryt",
- "Shared by" : "Delt av",
- "Sharing" : "Deling",
- "A file or folder has been <strong>shared</strong>" : "Ei fil eller ei mappe har blitt <strong>delt</strong>",
- "You shared %1$s with %2$s" : "Du delte %1$s med %2$s",
- "You shared %1$s with group %2$s" : "Du delte %1$s med gruppa %2$s",
- "You shared %1$s via link" : "Du delte %1$s via ei lenkje",
- "%2$s shared %1$s with you" : "%2$s delte %1$s med deg",
- "Shares" : "Delingar",
- "The password is wrong. Try again." : "Passordet er gale. Prøv igjen.",
- "Password" : "Passord",
- "Name" : "Namn",
- "Sorry, this link doesn’t seem to work anymore." : "Orsak, denne lenkja fungerer visst ikkje lenger.",
- "Reasons might be:" : "Moglege grunnar:",
- "the item was removed" : "fila/mappa er fjerna",
- "the link expired" : "lenkja har gått ut på dato",
- "sharing is disabled" : "deling er slått av",
- "For more info, please ask the person who sent this link." : "Spør den som sende deg lenkje om du vil ha meir informasjon.",
- "Download" : "Last ned"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/nn_NO.json b/apps/files_sharing/l10n/nn_NO.json
deleted file mode 100644
index 81e16df9b28..00000000000
--- a/apps/files_sharing/l10n/nn_NO.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Cancel" : "Avbryt",
- "Shared by" : "Delt av",
- "Sharing" : "Deling",
- "A file or folder has been <strong>shared</strong>" : "Ei fil eller ei mappe har blitt <strong>delt</strong>",
- "You shared %1$s with %2$s" : "Du delte %1$s med %2$s",
- "You shared %1$s with group %2$s" : "Du delte %1$s med gruppa %2$s",
- "You shared %1$s via link" : "Du delte %1$s via ei lenkje",
- "%2$s shared %1$s with you" : "%2$s delte %1$s med deg",
- "Shares" : "Delingar",
- "The password is wrong. Try again." : "Passordet er gale. Prøv igjen.",
- "Password" : "Passord",
- "Name" : "Namn",
- "Sorry, this link doesn’t seem to work anymore." : "Orsak, denne lenkja fungerer visst ikkje lenger.",
- "Reasons might be:" : "Moglege grunnar:",
- "the item was removed" : "fila/mappa er fjerna",
- "the link expired" : "lenkja har gått ut på dato",
- "sharing is disabled" : "deling er slått av",
- "For more info, please ask the person who sent this link." : "Spør den som sende deg lenkje om du vil ha meir informasjon.",
- "Download" : "Last ned"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/oc.js b/apps/files_sharing/l10n/oc.js
deleted file mode 100644
index 50ca51ca1b1..00000000000
--- a/apps/files_sharing/l10n/oc.js
+++ /dev/null
@@ -1,72 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Server to server sharing is not enabled on this server" : "Lo partiment de servidor a servidor es pas activat sus aqueste servidor",
- "The mountpoint name contains invalid characters." : "Lo nom del punt de montatge conten de caractèrs invalids.",
- "Invalid or untrusted SSL certificate" : "Certificat SSL invalid o pas fisable",
- "Could not authenticate to remote share, password might be wrong" : "Impossible de s'autentificar al partiment distant : lo senhal es probablament incorrècte",
- "Storage not valid" : "Supòrt d'emmagazinatge invalid",
- "Couldn't add remote share" : "Impossible d'apondre lo partiment distant",
- "Shared with you" : "Partejats amb vos",
- "Shared with others" : "Partejats amb d'autres",
- "Shared by link" : "Partejats per ligam",
- "Nothing shared with you yet" : "Cap de fichièr es pas partejat amb vos pel moment",
- "Files and folders others share with you will show up here" : "Los fichièrs e dorsièrs partejats amb vos apareisseràn aicí",
- "Nothing shared yet" : "Res es pas partejat pel moment",
- "Files and folders you share will show up here" : "Los fichièrs e dorsièrs que partejatz apareisseràn aicí",
- "No shared links" : "Pas cap de partiment per ligam",
- "Files and folders you share by link will show up here" : "Los fichièrs e dorsièrs que partejatz per ligam apareisseràn aicí",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Volètz apondre lo partiment distant {name} de {owner}@{remote} ?",
- "Remote share" : "Partiment distant",
- "Remote share password" : "Senhal del partiment distant",
- "Cancel" : "Anullar",
- "Add remote share" : "Apondre un partiment distant",
- "You can upload into this folder" : "Podètz mandar dins aqueste dorsièr",
- "No ownCloud installation (7 or higher) found at {remote}" : "Cap d'installacion ownCloud (7 o superior) pas trobada sus {remote}",
- "Invalid ownCloud url" : "URL ownCloud invalida",
- "Shared by" : "Partejat per",
- "Sharing" : "Partiment",
- "A file or folder has been <strong>shared</strong>" : "Un fichièr o un repertòri es estat <strong>partejat</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un fichièr o un repertòri es estat partejat depuis <strong>un autre servidor</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Un fichièr o un repertòri partejat publicament es estat <strong>telecargat</strong>",
- "You received a new remote share %2$s from %1$s" : "L'utilizaire %1$s a partejat la ressorsa distanta %2$s amb vos",
- "You received a new remote share from %s" : "Avètz recebut un partiment distant de %s",
- "%1$s accepted remote share %2$s" : "%1$s a acceptat lo partiment distant %2$s",
- "%1$s declined remote share %2$s" : "%1$s a refusat lo partiment distant %2$s",
- "%1$s unshared %2$s from you" : "%1$s a daissat de partejar %2$s amb vos",
- "Public shared folder %1$s was downloaded" : "Lo dorsièr public %1$s es estat telecargat",
- "Public shared file %1$s was downloaded" : "Lo fichièr public %1$s es estat telecargat",
- "You shared %1$s with %2$s" : "Avètz partejat %1$s amb %2$s",
- "%2$s shared %1$s with %3$s" : "%2$s partejat %1$s amb %3$s",
- "You shared %1$s with group %2$s" : "Avètz partejat %1$s amb lo grop %2$s",
- "%2$s shared %1$s with group %3$s" : "%2$s partejat %1$s amb lo grop %3$s",
- "%2$s shared %1$s via link" : "%2$s a partejat %1$s per ligam public",
- "You shared %1$s via link" : "Avètz partejat %1$s per ligam public",
- "%2$s shared %1$s with you" : "%2$s a partejat %1$s amb vos",
- "Downloaded via public link" : "Telecargat per ligam public",
- "Shared with %2$s" : "Partejat amb %2$s",
- "Shared with %3$s by %2$s" : "Partejat amb %3$s per %2$s",
- "Shared with group %2$s" : "Partejat amb lo grop %2$s",
- "Shared with group %3$s by %2$s" : "Partejat amb lo grop %3$s per %2$s",
- "Shared via link by %2$s" : "Partejat via ligam per %2$s",
- "Shared via public link" : "Partejat per ligam public",
- "Shared by %2$s" : "Partejat per %2$s",
- "Shares" : "Partiments",
- "This share is password-protected" : "Aqueste partiment es protegit per un senhal",
- "The password is wrong. Try again." : "Lo senhal es incorrècte. Ensajatz tornamai.",
- "Password" : "Senhal",
- "No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
- "Name" : "Nom",
- "Share time" : "Data de partiment",
- "Sorry, this link doesn’t seem to work anymore." : "O planhèm, mas sembla qu'aqueste ligam fonciona pas mai.",
- "Reasons might be:" : "Las rasons pòdon èsser :",
- "the item was removed" : "l'element es estat suprimit",
- "the link expired" : "lo ligam a expirat",
- "sharing is disabled" : "lo partiment es desactivat",
- "For more info, please ask the person who sent this link." : "Per mai d'informacions, contactatz la persona qu'a mandat aqueste ligam.",
- "Add to your ownCloud" : "Apondre a vòstre ownCloud",
- "Download" : "Telecargar",
- "Download %s" : "Telecargar %s",
- "Direct link" : "Ligam dirècte"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/oc.json b/apps/files_sharing/l10n/oc.json
deleted file mode 100644
index a5280effab3..00000000000
--- a/apps/files_sharing/l10n/oc.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{ "translations": {
- "Server to server sharing is not enabled on this server" : "Lo partiment de servidor a servidor es pas activat sus aqueste servidor",
- "The mountpoint name contains invalid characters." : "Lo nom del punt de montatge conten de caractèrs invalids.",
- "Invalid or untrusted SSL certificate" : "Certificat SSL invalid o pas fisable",
- "Could not authenticate to remote share, password might be wrong" : "Impossible de s'autentificar al partiment distant : lo senhal es probablament incorrècte",
- "Storage not valid" : "Supòrt d'emmagazinatge invalid",
- "Couldn't add remote share" : "Impossible d'apondre lo partiment distant",
- "Shared with you" : "Partejats amb vos",
- "Shared with others" : "Partejats amb d'autres",
- "Shared by link" : "Partejats per ligam",
- "Nothing shared with you yet" : "Cap de fichièr es pas partejat amb vos pel moment",
- "Files and folders others share with you will show up here" : "Los fichièrs e dorsièrs partejats amb vos apareisseràn aicí",
- "Nothing shared yet" : "Res es pas partejat pel moment",
- "Files and folders you share will show up here" : "Los fichièrs e dorsièrs que partejatz apareisseràn aicí",
- "No shared links" : "Pas cap de partiment per ligam",
- "Files and folders you share by link will show up here" : "Los fichièrs e dorsièrs que partejatz per ligam apareisseràn aicí",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Volètz apondre lo partiment distant {name} de {owner}@{remote} ?",
- "Remote share" : "Partiment distant",
- "Remote share password" : "Senhal del partiment distant",
- "Cancel" : "Anullar",
- "Add remote share" : "Apondre un partiment distant",
- "You can upload into this folder" : "Podètz mandar dins aqueste dorsièr",
- "No ownCloud installation (7 or higher) found at {remote}" : "Cap d'installacion ownCloud (7 o superior) pas trobada sus {remote}",
- "Invalid ownCloud url" : "URL ownCloud invalida",
- "Shared by" : "Partejat per",
- "Sharing" : "Partiment",
- "A file or folder has been <strong>shared</strong>" : "Un fichièr o un repertòri es estat <strong>partejat</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Un fichièr o un repertòri es estat partejat depuis <strong>un autre servidor</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Un fichièr o un repertòri partejat publicament es estat <strong>telecargat</strong>",
- "You received a new remote share %2$s from %1$s" : "L'utilizaire %1$s a partejat la ressorsa distanta %2$s amb vos",
- "You received a new remote share from %s" : "Avètz recebut un partiment distant de %s",
- "%1$s accepted remote share %2$s" : "%1$s a acceptat lo partiment distant %2$s",
- "%1$s declined remote share %2$s" : "%1$s a refusat lo partiment distant %2$s",
- "%1$s unshared %2$s from you" : "%1$s a daissat de partejar %2$s amb vos",
- "Public shared folder %1$s was downloaded" : "Lo dorsièr public %1$s es estat telecargat",
- "Public shared file %1$s was downloaded" : "Lo fichièr public %1$s es estat telecargat",
- "You shared %1$s with %2$s" : "Avètz partejat %1$s amb %2$s",
- "%2$s shared %1$s with %3$s" : "%2$s partejat %1$s amb %3$s",
- "You shared %1$s with group %2$s" : "Avètz partejat %1$s amb lo grop %2$s",
- "%2$s shared %1$s with group %3$s" : "%2$s partejat %1$s amb lo grop %3$s",
- "%2$s shared %1$s via link" : "%2$s a partejat %1$s per ligam public",
- "You shared %1$s via link" : "Avètz partejat %1$s per ligam public",
- "%2$s shared %1$s with you" : "%2$s a partejat %1$s amb vos",
- "Downloaded via public link" : "Telecargat per ligam public",
- "Shared with %2$s" : "Partejat amb %2$s",
- "Shared with %3$s by %2$s" : "Partejat amb %3$s per %2$s",
- "Shared with group %2$s" : "Partejat amb lo grop %2$s",
- "Shared with group %3$s by %2$s" : "Partejat amb lo grop %3$s per %2$s",
- "Shared via link by %2$s" : "Partejat via ligam per %2$s",
- "Shared via public link" : "Partejat per ligam public",
- "Shared by %2$s" : "Partejat per %2$s",
- "Shares" : "Partiments",
- "This share is password-protected" : "Aqueste partiment es protegit per un senhal",
- "The password is wrong. Try again." : "Lo senhal es incorrècte. Ensajatz tornamai.",
- "Password" : "Senhal",
- "No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
- "Name" : "Nom",
- "Share time" : "Data de partiment",
- "Sorry, this link doesn’t seem to work anymore." : "O planhèm, mas sembla qu'aqueste ligam fonciona pas mai.",
- "Reasons might be:" : "Las rasons pòdon èsser :",
- "the item was removed" : "l'element es estat suprimit",
- "the link expired" : "lo ligam a expirat",
- "sharing is disabled" : "lo partiment es desactivat",
- "For more info, please ask the person who sent this link." : "Per mai d'informacions, contactatz la persona qu'a mandat aqueste ligam.",
- "Add to your ownCloud" : "Apondre a vòstre ownCloud",
- "Download" : "Telecargar",
- "Download %s" : "Telecargar %s",
- "Direct link" : "Ligam dirècte"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js
index 5781e3771b8..2a1bf493382 100644
--- a/apps/files_sharing/l10n/pl.js
+++ b/apps/files_sharing/l10n/pl.js
@@ -185,7 +185,6 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Ustaw domyślny katalog dla zaakceptowanych udostępnień",
"Reset" : "Resetuj",
"Reset folder to system default" : "Zresetuj katalog do domyślnych ustawień systemu",
- "Share expiration: " : "Wygaśnięcie udostępnienia:",
"Share Expiration" : "Wygaśnięcie udostępnienia",
"group" : "grupa",
"conversation" : "rozmowa",
@@ -257,14 +256,9 @@ OC.L10N.register(
"File drop" : "Upuść plik",
"Upload files to {foldername}." : "Prześlij pliki do {foldername}.",
"By uploading files, you agree to the terms of service." : "Przesyłając pliki, wyrażasz zgodę na warunki korzystania z usługi.",
+ "Successfully uploaded files" : "Pomyślnie przesłano pliki",
"View terms of service" : "Zobacz warunki korzystania z usługi",
"Terms of service" : "Warunki usługi",
- "Upload files to {folder}" : "Prześlij pliki do {folder}",
- "Submit name" : "Wyślij nazwę",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} udostępnił Ci katalog.",
- "To upload files, you need to provide your name first." : "Aby przesłać pliki, musisz najpierw podać swoje imię i nazwisko.",
- "Name" : "Nazwa",
- "Enter your name" : "Wpisz swoją nazwę",
"Share with {userName}" : "Podziel się z {userName}",
"Share with email {email}" : "Udostępnij na e-mail {email}",
"Share with group" : "Udostępnij grupie",
@@ -298,7 +292,7 @@ OC.L10N.register(
"Expiration date (enforced)" : "Data ważności (wymuszona)",
"Set expiration date" : "Ustaw datę wygaśnięcia",
"Hide download" : "Ukryj pobieranie",
- "Allow download and sync" : "Zezwól na pobieranie i synchronizację",
+ "Allow download and sync" : "Zezwalaj na pobieranie i synchronizację",
"Note to recipient" : "Informacja dla odbiorcy",
"Enter a note for the share recipient" : "Napisz notatkę dla odbiorcy udostępnienia",
"Show files in grid view" : "Pokaż pliki w widoku siatki",
@@ -313,16 +307,17 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Użyj tej metody, aby udostępniać pliki osobom lub zespołom w swojej organizacji. Jeśli odbiorca ma już dostęp do udostępnionego pliku, ale nie może go zlokalizować, możesz wysłać mu wewnętrzny link do udostępniania, aby ułatwić dostęp.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Użyj tej metody, aby udostępniać pliki osobom lub organizacjom spoza Twojej organizacji. Pliki i katalogi można udostępniać za pośrednictwem publicznych linków udostępniania i adresów e-mail. Możesz również udostępniać pliki innym kontom Nextcloud hostowanym na różnych instancjach, używając ich identyfikatora Chmury Federacyjnej.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Udostępnienia, które nie są częścią udostępnień wewnętrznych lub zewnętrznych. Mogą to być udostępnienia z aplikacji lub innych źródeł.",
+ "Share with accounts, teams, federated cloud IDs" : "Udostępnij kontom, zespołom, federacyjnym identyfikatorom chmury",
+ "Share with accounts and teams" : "Udostępnij kontom i zespołom",
+ "Email, federated cloud ID" : "E-mail, federacyjny identyfikator chmury",
"Unable to load the shares list" : "Nie można pobrać listy udostępnień",
"Expires {relativetime}" : "Wygasa {relativetime}",
"this share just expired." : "te udostępnienie właśnie wygasło.",
"Shared with you by {owner}" : "Udostępnione Tobie przez {owner}",
"Internal shares" : "Udostępnianie wewnętrzne",
"Internal shares explanation" : "Objaśnienie udostępnień wewnętrznych",
- "Share with accounts and teams" : "Udostępnij kontom i zespołom",
"External shares" : "Udostępnienia zewnętrzne",
"External shares explanation" : "Objaśnienie udostępnień zewnętrznych",
- "Email, federated cloud id" : "E-mail, identyfikator Chmury Federacyjnej",
"Additional shares" : "Dodatkowe udostępnienia",
"Additional shares explanation" : "Objaśnienia dodatkowych udostępnień",
"Link to a file" : "Link do pliku",
@@ -371,6 +366,7 @@ OC.L10N.register(
"List of unapproved shares." : "Lista niezatwierdzonych udostępnień.",
"No pending shares" : "Brak oczekujących udostępnień",
"Shares you have received but not approved will show up here" : "Tutaj pojawią się udostępnienia, które otrzymałeś, ale nie zostały zatwierdzone",
+ "Error deleting the share" : "Błąd podczas usuwania udostępnienia",
"Error updating the share: {errorMessage}" : "Błąd podczas aktualizacji udostępnienia: {errorMessage}",
"Error updating the share" : "Błąd podczas aktualizacji udostępnienia",
"File \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla pliku \"{path}\"",
@@ -383,6 +379,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Zapisano udostępnianą notatkę dla odbiorcy",
"Share password saved" : "Hasło udostępnienia zapisane",
"Share permissions saved" : "Zapisano uprawnienia udostępniania",
+ "To upload files to {folder}, you need to provide your name first." : "Aby przesłać pliki do {folder}, musisz najpierw podać swoje imię.",
+ "Upload files to {folder}" : "Prześlij pliki do {folder}",
+ "Please confirm your name to upload files to {folder}" : "Proszę potwierdź swoje imię, aby przesłać pliki do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} udostępnił Ci katalog.",
+ "Names must not be empty." : "Imię nie może być puste.",
+ "Names must not start with a dot." : "Imię nie może zaczynać się od kropki.",
+ "\"{char}\" is not allowed inside a name." : "Znak \"{char}\" nie jest dozwolony w nazwie.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" jest nazwą zastrzeżoną i nie jest dozwolona.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" nie jest dozwoloną nazwą.",
+ "Names must not end with \"{extension}\"." : "Nazwy nie mogą kończyć się na \"{extension}\".",
+ "Invalid name." : "Nieprawidłowa nazwa.",
"Shared by" : "Udostępnione przez",
"Shared with" : "Udostępnione",
"Password created successfully" : "Hasło utworzone pomyślnie",
@@ -413,15 +420,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Nie znaleziono kompatybilnego serwera na {remote}",
"Invalid server URL" : "Nieprawidłowy adres URL serwera",
"Failed to add the public link to your Nextcloud" : "Nie udało się dodać linku publicznego do Nextcloud",
- "Files" : "Pliki",
+ "You are not allowed to edit link shares that you don't own" : "Nie możesz modyfikować udostępnionych odnośników, których nie jesteś właścicielem",
"Download all files" : "Pobierz wszystkie pliki",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Dodano już 1 adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"],
+ "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"],
"Search for share recipients" : "Szukaj odbiorców udostępnienia",
"No recommendations. Start typing." : "Brak rekomendacji. Możesz napisać.",
- "Password field can't be empty" : "Pole hasła nie może być puste",
- "Allow download" : "Zezwól na pobieranie",
- "Share expire date saved" : "Zapisano datę ważności udziału",
- "You are not allowed to edit link shares that you don't own" : "Nie możesz modyfikować udostępnionych odnośników, których nie jesteś właścicielem",
- "_1 email address already added_::_{count} email addresses already added_" : ["Dodano już 1 adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"],
- "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"]
+ "To upload files, you need to provide your name first." : "Aby przesłać pliki, musisz najpierw podać swoje imię i nazwisko.",
+ "Enter your name" : "Wpisz swoją nazwę",
+ "Submit name" : "Wyślij nazwę",
+ "Name" : "Nazwa",
+ "Share with accounts, teams, federated cloud id" : "Udostępnij kontom, zespołom, ID Chmury Federacyjnej",
+ "Email, federated cloud id" : "E-mail, ID Chmury Federacyjnej",
+ "Filename must not be empty." : "Nazwa pliku nie może być pusta."
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json
index a9997c93454..313dc453fa9 100644
--- a/apps/files_sharing/l10n/pl.json
+++ b/apps/files_sharing/l10n/pl.json
@@ -183,7 +183,6 @@
"Set default folder for accepted shares" : "Ustaw domyślny katalog dla zaakceptowanych udostępnień",
"Reset" : "Resetuj",
"Reset folder to system default" : "Zresetuj katalog do domyślnych ustawień systemu",
- "Share expiration: " : "Wygaśnięcie udostępnienia:",
"Share Expiration" : "Wygaśnięcie udostępnienia",
"group" : "grupa",
"conversation" : "rozmowa",
@@ -255,14 +254,9 @@
"File drop" : "Upuść plik",
"Upload files to {foldername}." : "Prześlij pliki do {foldername}.",
"By uploading files, you agree to the terms of service." : "Przesyłając pliki, wyrażasz zgodę na warunki korzystania z usługi.",
+ "Successfully uploaded files" : "Pomyślnie przesłano pliki",
"View terms of service" : "Zobacz warunki korzystania z usługi",
"Terms of service" : "Warunki usługi",
- "Upload files to {folder}" : "Prześlij pliki do {folder}",
- "Submit name" : "Wyślij nazwę",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} udostępnił Ci katalog.",
- "To upload files, you need to provide your name first." : "Aby przesłać pliki, musisz najpierw podać swoje imię i nazwisko.",
- "Name" : "Nazwa",
- "Enter your name" : "Wpisz swoją nazwę",
"Share with {userName}" : "Podziel się z {userName}",
"Share with email {email}" : "Udostępnij na e-mail {email}",
"Share with group" : "Udostępnij grupie",
@@ -296,7 +290,7 @@
"Expiration date (enforced)" : "Data ważności (wymuszona)",
"Set expiration date" : "Ustaw datę wygaśnięcia",
"Hide download" : "Ukryj pobieranie",
- "Allow download and sync" : "Zezwól na pobieranie i synchronizację",
+ "Allow download and sync" : "Zezwalaj na pobieranie i synchronizację",
"Note to recipient" : "Informacja dla odbiorcy",
"Enter a note for the share recipient" : "Napisz notatkę dla odbiorcy udostępnienia",
"Show files in grid view" : "Pokaż pliki w widoku siatki",
@@ -311,16 +305,17 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Użyj tej metody, aby udostępniać pliki osobom lub zespołom w swojej organizacji. Jeśli odbiorca ma już dostęp do udostępnionego pliku, ale nie może go zlokalizować, możesz wysłać mu wewnętrzny link do udostępniania, aby ułatwić dostęp.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Użyj tej metody, aby udostępniać pliki osobom lub organizacjom spoza Twojej organizacji. Pliki i katalogi można udostępniać za pośrednictwem publicznych linków udostępniania i adresów e-mail. Możesz również udostępniać pliki innym kontom Nextcloud hostowanym na różnych instancjach, używając ich identyfikatora Chmury Federacyjnej.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Udostępnienia, które nie są częścią udostępnień wewnętrznych lub zewnętrznych. Mogą to być udostępnienia z aplikacji lub innych źródeł.",
+ "Share with accounts, teams, federated cloud IDs" : "Udostępnij kontom, zespołom, federacyjnym identyfikatorom chmury",
+ "Share with accounts and teams" : "Udostępnij kontom i zespołom",
+ "Email, federated cloud ID" : "E-mail, federacyjny identyfikator chmury",
"Unable to load the shares list" : "Nie można pobrać listy udostępnień",
"Expires {relativetime}" : "Wygasa {relativetime}",
"this share just expired." : "te udostępnienie właśnie wygasło.",
"Shared with you by {owner}" : "Udostępnione Tobie przez {owner}",
"Internal shares" : "Udostępnianie wewnętrzne",
"Internal shares explanation" : "Objaśnienie udostępnień wewnętrznych",
- "Share with accounts and teams" : "Udostępnij kontom i zespołom",
"External shares" : "Udostępnienia zewnętrzne",
"External shares explanation" : "Objaśnienie udostępnień zewnętrznych",
- "Email, federated cloud id" : "E-mail, identyfikator Chmury Federacyjnej",
"Additional shares" : "Dodatkowe udostępnienia",
"Additional shares explanation" : "Objaśnienia dodatkowych udostępnień",
"Link to a file" : "Link do pliku",
@@ -369,6 +364,7 @@
"List of unapproved shares." : "Lista niezatwierdzonych udostępnień.",
"No pending shares" : "Brak oczekujących udostępnień",
"Shares you have received but not approved will show up here" : "Tutaj pojawią się udostępnienia, które otrzymałeś, ale nie zostały zatwierdzone",
+ "Error deleting the share" : "Błąd podczas usuwania udostępnienia",
"Error updating the share: {errorMessage}" : "Błąd podczas aktualizacji udostępnienia: {errorMessage}",
"Error updating the share" : "Błąd podczas aktualizacji udostępnienia",
"File \"{path}\" has been unshared" : "Zatrzymane udostępnienie dla pliku \"{path}\"",
@@ -381,6 +377,17 @@
"Share note for recipient saved" : "Zapisano udostępnianą notatkę dla odbiorcy",
"Share password saved" : "Hasło udostępnienia zapisane",
"Share permissions saved" : "Zapisano uprawnienia udostępniania",
+ "To upload files to {folder}, you need to provide your name first." : "Aby przesłać pliki do {folder}, musisz najpierw podać swoje imię.",
+ "Upload files to {folder}" : "Prześlij pliki do {folder}",
+ "Please confirm your name to upload files to {folder}" : "Proszę potwierdź swoje imię, aby przesłać pliki do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} udostępnił Ci katalog.",
+ "Names must not be empty." : "Imię nie może być puste.",
+ "Names must not start with a dot." : "Imię nie może zaczynać się od kropki.",
+ "\"{char}\" is not allowed inside a name." : "Znak \"{char}\" nie jest dozwolony w nazwie.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" jest nazwą zastrzeżoną i nie jest dozwolona.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" nie jest dozwoloną nazwą.",
+ "Names must not end with \"{extension}\"." : "Nazwy nie mogą kończyć się na \"{extension}\".",
+ "Invalid name." : "Nieprawidłowa nazwa.",
"Shared by" : "Udostępnione przez",
"Shared with" : "Udostępnione",
"Password created successfully" : "Hasło utworzone pomyślnie",
@@ -411,15 +418,18 @@
"No compatible server found at {remote}" : "Nie znaleziono kompatybilnego serwera na {remote}",
"Invalid server URL" : "Nieprawidłowy adres URL serwera",
"Failed to add the public link to your Nextcloud" : "Nie udało się dodać linku publicznego do Nextcloud",
- "Files" : "Pliki",
+ "You are not allowed to edit link shares that you don't own" : "Nie możesz modyfikować udostępnionych odnośników, których nie jesteś właścicielem",
"Download all files" : "Pobierz wszystkie pliki",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Dodano już 1 adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"],
+ "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"],
"Search for share recipients" : "Szukaj odbiorców udostępnienia",
"No recommendations. Start typing." : "Brak rekomendacji. Możesz napisać.",
- "Password field can't be empty" : "Pole hasła nie może być puste",
- "Allow download" : "Zezwól na pobieranie",
- "Share expire date saved" : "Zapisano datę ważności udziału",
- "You are not allowed to edit link shares that you don't own" : "Nie możesz modyfikować udostępnionych odnośników, których nie jesteś właścicielem",
- "_1 email address already added_::_{count} email addresses already added_" : ["Dodano już 1 adres e-mail","Dodano już {count} adresy e-mail","Dodano już {count} adresów e-mail","Dodano już {count} adresów e-mail"],
- "_1 email address added_::_{count} email addresses added_" : ["Dodano 1 adres e-mail","Dodano {count} adresy e-mail","Dodano {count} adresów e-mail","Dodano {count} adresów e-mail"]
+ "To upload files, you need to provide your name first." : "Aby przesłać pliki, musisz najpierw podać swoje imię i nazwisko.",
+ "Enter your name" : "Wpisz swoją nazwę",
+ "Submit name" : "Wyślij nazwę",
+ "Name" : "Nazwa",
+ "Share with accounts, teams, federated cloud id" : "Udostępnij kontom, zespołom, ID Chmury Federacyjnej",
+ "Email, federated cloud id" : "E-mail, ID Chmury Federacyjnej",
+ "Filename must not be empty." : "Nazwa pliku nie może być pusta."
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index 0e9f6012dc3..19e44fd4c40 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -116,7 +116,7 @@ OC.L10N.register(
"Remember to upload the files to %s" : "Lembre-se de enviar os arquivos para %s",
"We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Gostaríamos de lembrar que você ainda não carregou nenhum arquivo para a pasta compartilhada.",
"Open \"%s\"" : "Abrir \"%s\"",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis ​​podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de compartilhamento de link, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na documentação do Nextcloud.",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis ​​podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de link de compartilhamento, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento a partir de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na Documentação do Nextcloud.",
"People" : "Pessoas",
"Filter accounts" : "Filtrar contas",
"The request will expire on {date} at midnight and will be password protected." : "A solicitação expirará em {date} à meia-noite e será protegida por senha.",
@@ -158,7 +158,7 @@ OC.L10N.register(
"Add a note" : "Adicionar uma nota",
"Note for recipient" : "Nota para o destinatário",
"Add a note to help people understand what you are requesting." : "Adicione uma nota para ajudar as pessoas a entenderem o que você está solicitando.",
- "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Você pode adicionar links, data ou qualquer outra informação que ajude o destinatário a entender o que você está solicitando.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Você pode adicionar links, datas ou qualquer outra informação que ajude o destinatário a entender o que você está solicitando.",
"Close" : "Fechar",
"_Send email and close_::_Send {count} emails and close_" : ["Envie e-mail e feche","Envie {count} e-mails e feche","Envie {count} e-mails e feche"],
"Please select a folder, you cannot share the root directory." : "Selecione uma pasta, você não pode compartilhar o diretório raiz.",
@@ -172,7 +172,7 @@ OC.L10N.register(
"Collect files from others even if they do not have an account." : "Colete arquivos de outras pessoas, mesmo que elas não tenham uma conta.",
"To ensure you can receive files, verify you have enough storage available." : "Para garantir que você possa receber arquivos, verifique se você tem armazenamento suficiente disponível.",
"File request" : "Solicitação de arquivo",
- "Previous step" : "Passo anterior",
+ "Previous step" : "Etapa anterior",
"Cancel" : "Cancelar",
"Cancel the file request creation" : "Cancelar a criação da solicitação de arquivo",
"Close without sending emails" : "Fechar sem enviar e-mails",
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Definir pasta padrão para compartilhamentos aceitos",
"Reset" : "Redefinir",
"Reset folder to system default" : "Redefinir pasta para o padrão do sistema",
- "Share expiration: " : "Expiração do compartilhamento:",
+ "Share expiration: {date}" : "Expiração do compartilhamento: {date}",
"Share Expiration" : "Expiração do Compartilhamento",
"group" : "grupo",
"conversation" : "conversa",
@@ -209,36 +209,36 @@ OC.L10N.register(
"{shareWith} by {initiator}" : "{shareWith} por {initiator}",
"Shared via link by {initiator}" : "Compartilhado via link por {initiator}",
"File request ({label})" : "Solicitação de arquivo ({label})",
- "Mail share ({label})" : "Compartilhar por e-mail ({label})",
- "Share link ({label})" : "Compartilhar link ({label})",
+ "Mail share ({label})" : "Compartilhamento por e-mail ({label})",
+ "Share link ({label})" : "Link de compartilhamento ({label})",
"Mail share" : "Compartilhamento por e-mail",
- "Share link ({index})" : "Compartilhar link ({index})",
+ "Share link ({index})" : "Link de compartilhamento ({index})",
"Create public link" : "Criar link público",
"Actions for \"{title}\"" : "Ações para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copie o link público de \"{title}\" para a área de transferência",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar link público de \"{title}\" para a área de transferência",
"Error, please enter proper password and/or expiration date" : "Erro, digite a senha correta e/ou a data de validade",
- "Link share created" : "Compartilhamento de link criado",
+ "Link share created" : "Compartilhamento por link criado",
"Error while creating the share" : "Erro ao criar o compartilhamento",
"Please enter the following required information before creating the share" : "Digite as seguintes informações necessárias antes de criar o compartilhamento",
"Password protection (enforced)" : "Proteção por senha (imposta)",
"Password protection" : "Proteger com senha",
"Enter a password" : "Digite uma senha",
- "Enable link expiration (enforced)" : "Habilitar expiração de link (imposta)",
- "Enable link expiration" : "Habilitar expiração de link",
+ "Enable link expiration (enforced)" : "Ativar expiração de link (imposta)",
+ "Enable link expiration" : "Ativar expiração de link",
"Enter expiration date (enforced)" : "Insira a data de expiração (imposta)",
- "Enter expiration date" : "Insira a data de validade",
+ "Enter expiration date" : "Insira a data de expiração",
"Create share" : "Criar compartilhamento",
"Customize link" : "Personalizar link",
"Generate QR code" : "Gerar código QR",
- "Add another link" : "Adicionar um novo link",
+ "Add another link" : "Adicionar outro link",
"Create a new share link" : "Criar um novo link de compartilhamento",
- "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o selecionado atualmente é \"{selectedOption}\"",
- "View only" : "Somente visualização ",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o atual selecionado é \"{selectedOption}\"",
+ "View only" : "Somente visualização",
"Can edit" : "Pode editar",
"Custom permissions" : "Permissões personalizadas",
"Resharing is not allowed" : "Recompartilhamento não é permitido",
"Name or email …" : "Nome ou e-mail...",
- "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID da nuvem federada...",
+ "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID de Nuvem Federada …",
"Searching …" : "Pesquisando...",
"No elements found." : "Nenhum elemento encontrado.",
"Search globally" : "Pesquisar globalmente",
@@ -251,30 +251,25 @@ OC.L10N.register(
"ScienceMesh" : "ScienceMesh",
"on {server}" : "em {server}",
"Enter external recipients" : "Insira destinatários externos",
- "Search for internal recipients" : "Pesquisar por destinatários internos",
+ "Search for internal recipients" : "Pesquisar destinatários internos",
"Note from" : "Nota de",
"Note:" : "Nota:",
- "File drop" : "Baixar Arquivo ",
- "Upload files to {foldername}." : "Subir arquivos para {foldername}.",
- "By uploading files, you agree to the terms of service." : "Ao enviar arquivos, você concorda com os termos de serviço.",
+ "File drop" : "Depósito de arquivos",
+ "Upload files to {foldername}." : "Fazer upload de arquivos para {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ao fazer upload de arquivos, você concorda com os termos de serviço.",
+ "Successfully uploaded files" : "Arquivos carregados com sucesso",
"View terms of service" : "Ver os termos de serviço",
"Terms of service" : "Termos de serviço",
- "Upload files to {folder}" : "Enviar arquivos para {folder}",
- "Submit name" : "Enviar nome",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartilhou uma pasta com você.",
- "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, você precisa primeiro fornecer seu nome.",
- "Name" : "Nome",
- "Enter your name" : "Digite seu nome",
- "Share with {userName}" : "Compartilhe com {userName}",
+ "Share with {userName}" : "Compartilhar com {userName}",
"Share with email {email}" : "Compartilhar com e-mail {email}",
"Share with group" : "Compartilhar com grupo",
"Share in conversation" : "Compartilhar na conversa",
- "Share with {user} on remote server {server}" : "Compartilhe com {user} no servidor remoto {server}",
+ "Share with {user} on remote server {server}" : "Compartilhar com {user} no servidor remoto {server}",
"Share with remote group" : "Compartilhar com grupo remoto",
"Share with guest" : "Compartilhar com convidado",
"Update share" : "Atualizar compartilhamento",
"Save share" : "Salvar compartilhamento",
- "Read" : "Leitura",
+ "Read" : "Ler",
"Create" : "Criar",
"Edit" : "Editar",
"Share" : "Compartilhar",
@@ -284,10 +279,10 @@ OC.L10N.register(
"Failed to generate a new token" : "Falha ao gerar um novo token",
"Allow upload and editing" : "Permitir uploads e edição",
"Allow editing" : "Permitir edição",
- "Upload only" : "Fazer upload apenas",
+ "Upload only" : "Somente upload",
"Advanced settings" : "Configurações avançadas",
"Share label" : "Compartilhar etiqueta",
- "Share link token" : "Token de link de compartilhamento",
+ "Share link token" : "Token do link de compartilhamento",
"Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Defina o token do link de compartilhamento público para algo fácil de lembrar ou gere um novo token. Não é recomendado usar um token fácil de adivinhar para compartilhamentos que contenham informações confidenciais.",
"Generating…" : "Gerando…",
"Generate new token" : "Gerar novo token",
@@ -296,33 +291,35 @@ OC.L10N.register(
"Password expired" : "Senha expirada",
"Video verification" : "Verificação de vídeo",
"Expiration date (enforced)" : "Data de vencimento (imposta)",
- "Set expiration date" : "Definir data de vencimento",
+ "Set expiration date" : "Definir data de expiração",
"Hide download" : "Ocultar download",
- "Allow download and sync" : "Permitir baixar e sincronizar",
- "Note to recipient" : "Observação ao destinatário",
+ "Allow download and sync" : "Permitir download e sincronização",
+ "Note to recipient" : "Nota para o destinatário",
"Enter a note for the share recipient" : "Digite uma observação ao destinatário",
- "Show files in grid view" : "Mostrar arquivos na visualização de grade",
+ "Show files in grid view" : "Mostrar arquivos na visualização em grade",
"Delete share" : "Excluir compartilhamento",
"Others with access" : "Outros com acesso",
"No other accounts with access found" : "Nenhuma outra conta com acesso encontrada",
"Toggle list of others with access to this directory" : "Alternar a lista de outras pessoas com acesso a este diretório",
"Toggle list of others with access to this file" : "Alternar a lista de outras pessoas com acesso a este arquivo",
"Unable to fetch inherited shares" : "Não foi possível buscar compartilhamentos herdados",
- "Link shares" : "Compartilhamentos de links",
+ "Link shares" : "Compartilhamentos por link",
"Shares" : "Compartilhamentos",
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use este método para compartilhar arquivos com pessoas ou equipes dentro da sua organização. Se o destinatário já tiver acesso ao compartilhamento, mas não conseguir encontrá-lo, você pode enviar o link de compartilhamento interno para facilitar o acesso.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartilhar arquivos com indivíduos ou organizações fora da sua organização. Arquivos e pastas podem ser compartilhados por meio de links públicos de compartilhamento e endereços de e-mail. Você também pode compartilhar com outras contas Nextcloud hospedadas em instâncias diferentes usando o ID de nuvem federada delas.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Compartilhamentos que não fazem parte dos compartilhamentos internos ou externos. Podem ser compartilhamentos de aplicativos ou outras fontes.",
+ "Share with accounts, teams, federated cloud IDs" : "Compartilhar com contas, equipes, IDs de nuvem federada",
+ "Share with accounts and teams" : "Compartilhar com contas e equipes",
+ "Federated cloud ID" : "ID de nuvem federada",
+ "Email, federated cloud ID" : "E-mail, ID de nuvem federada",
"Unable to load the shares list" : "Não foi possível carregar a lista de compartilhamentos",
"Expires {relativetime}" : "Expira {relativetime}",
"this share just expired." : "esse compartilhamento acabou de expirar.",
"Shared with you by {owner}" : "Compartilhado com você por {owner}",
"Internal shares" : "Compartilhamentos internos",
"Internal shares explanation" : "Explicação sobre compartilhamentos internos",
- "Share with accounts and teams" : "Compartilhar com contas e equipes",
"External shares" : "Compartilhamentos externos",
"External shares explanation" : "Explicação sobre compartilhamentos externos",
- "Email, federated cloud id" : "E-mail, ID de nuvem federada",
"Additional shares" : "Compartilhamentos adicionais",
"Additional shares explanation" : "Explicação sobre compartilhamentos adicionais",
"Link to a file" : "Criar link para um arquivo",
@@ -363,14 +360,16 @@ OC.L10N.register(
"List of file requests." : "Lista de solicitações de arquivos.",
"No file requests" : "Nenhuma solicitação de arquivo",
"File requests you have created will show up here" : "As solicitações de arquivo que você criou aparecerão aqui",
- "Deleted shares" : "Compartilhamentos apagados",
- "List of shares you left." : "Lista de compartilhamentos que você deixou.",
- "No deleted shares" : "Não há compartilhamentos apagados",
- "Shares you have left will show up here" : "Os compartilhamentos que você deixou aparecerão aqui",
+ "Deleted shares" : "Compartilhamentos excluídos",
+ "List of shares you left." : "Lista de compartilhamentos dos quais você saiu.",
+ "No deleted shares" : "Não há compartilhamentos excluídos",
+ "Shares you have left will show up here" : "Os compartilhamentos dos quais você saiu aparecerão aqui",
"Pending shares" : "Compartilhamentos pendentes",
"List of unapproved shares." : "Lista de compartilhamentos não aprovados.",
"No pending shares" : "Não há compartilhamentos pendentes",
"Shares you have received but not approved will show up here" : "Os compartilhamentos que você recebeu, mas não aprovou, aparecerão aqui",
+ "Error deleting the share: {errorMessage}" : "Erro ao excluir o compartilhamento: {errorMessage}",
+ "Error deleting the share" : "Erro ao excluir o compartilhamento",
"Error updating the share: {errorMessage}" : "Erro ao atualizar o compartilhamento: {errorMessage}",
"Error updating the share" : "Erro ao atualizar o compartilhamento",
"File \"{path}\" has been unshared" : "O arquivo \"{path}\" foi descompartilhado",
@@ -379,10 +378,21 @@ OC.L10N.register(
"Share saved" : "Compartilhamento salvo",
"Share expiry date saved" : "Data de expiração do compartilhamento salva",
"Share hide-download state saved" : "Estado ocultar-download do compartilhamento salvo",
- "Share label saved" : "Marcador de compartilhamento salvo",
- "Share note for recipient saved" : "Observação para o destinatário do compartilhamento salva",
+ "Share label saved" : "Rótulo de compartilhamento salvo",
+ "Share note for recipient saved" : "Nota para o destinatário do compartilhamento salva",
"Share password saved" : "Senha do compartilhamento salva",
"Share permissions saved" : "Permissões do compartilhamento salvas",
+ "To upload files to {folder}, you need to provide your name first." : "Para fazer upload de arquivos para {folder}, primeiro você precisa fornecer seu nome.",
+ "Upload files to {folder}" : "Fazer upload de arquivos para {folder}",
+ "Please confirm your name to upload files to {folder}" : "Confirme seu nome para fazer upload de arquivos para {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartilhou uma pasta com você.",
+ "Names must not be empty." : "Os nomes não podem estar vazios.",
+ "Names must not start with a dot." : "Os nomes não devem começar com um ponto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" não é permitido dentro de um nome.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" é um nome reservado e não permitido.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" não é um nome permitido.",
+ "Names must not end with \"{extension}\"." : "Os nomes não devem terminar com \"{extension}\".",
+ "Invalid name." : "Nome inválido.",
"Shared by" : "Compartilhado por",
"Shared with" : "Compartilhado com",
"Password created successfully" : "Senha criada com sucesso",
@@ -391,7 +401,7 @@ OC.L10N.register(
"Shared with you and {circle} by {owner}" : "Compartilhado com você e {circle} por {owner}",
"Shared with you and the conversation {conversation} by {owner}" : "Compartilhado com você e a conversa {conversation} por {owner}",
"Shared with you in a conversation by {owner}" : "Compartilhado com você em uma conversa por {owner}",
- "Share note" : "Anotação de compartilhamento",
+ "Share note" : "Compartilhar nota",
"Show list view" : "Mostrar visualização em lista",
"Show grid view" : "Mostrar visualização em grade",
"Upload files to %s" : "Enviar arquivos para %s",
@@ -413,15 +423,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Nenhum servidor compativel encontrado em {remote}",
"Invalid server URL" : "URL do servidor inválida",
"Failed to add the public link to your Nextcloud" : "Ocorreu uma falha ao adicionar o link público ao seu Nextcloud",
- "Files" : "Arquivos",
+ "You are not allowed to edit link shares that you don't own" : "Você não tem permissão para editar compartilhamentos de links que não são de sua propriedade",
"Download all files" : "Baixar todos os arquivos",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"],
"Search for share recipients" : "Pesquisar destinatários de compartilhamento",
"No recommendations. Start typing." : "Sem recomendações. Inicie a digitação.",
- "Password field can't be empty" : "O campo da senha não pode estar vazio",
- "Allow download" : "Permitir baixar",
- "Share expire date saved" : "Data de expiração do compartilhamento salva",
- "You are not allowed to edit link shares that you don't own" : "Você não tem permissão para editar compartilhamentos de links que não são de sua propriedade",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"],
- "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"]
+ "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, primeiro você precisa fornecer seu nome.",
+ "Enter your name" : "Digite seu nome",
+ "Submit name" : "Enviar nome",
+ "Name" : "Nome",
+ "Share with accounts, teams, federated cloud id" : "Compartilhar com contas, equipes, ID de nuvem federada",
+ "Email, federated cloud id" : "E-mail, ID de nuvem federada",
+ "Filename must not be empty." : "O nome do arquivo não pode estar vazio."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index fa597157945..854f492dee9 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -114,7 +114,7 @@
"Remember to upload the files to %s" : "Lembre-se de enviar os arquivos para %s",
"We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Gostaríamos de lembrar que você ainda não carregou nenhum arquivo para a pasta compartilhada.",
"Open \"%s\"" : "Abrir \"%s\"",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis ​​podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de compartilhamento de link, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na documentação do Nextcloud.",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Este aplicativo permite que as pessoas compartilhem arquivos dentro do Nextcloud. Se ativado, o administrador pode escolher quais grupos podem compartilhar arquivos. As pessoas aplicáveis ​​podem então compartilhar arquivos e pastas com outras contas e grupos dentro do Nextcloud. Além disso, se o administrador ativar o recurso de link de compartilhamento, um link externo poderá ser usado para compartilhar arquivos com outras pessoas fora do Nextcloud. Os administradores também podem impor senhas, datas de expiração e permitir o compartilhamento de servidor para servidor por meio de links de compartilhamento, bem como compartilhamento a partir de dispositivos móveis. \nDesativar o recurso remove arquivos e pastas compartilhados no servidor para todos os destinatários de compartilhamento e também nos clientes de sincronização e aplicativos móveis. Mais informações estão disponíveis na Documentação do Nextcloud.",
"People" : "Pessoas",
"Filter accounts" : "Filtrar contas",
"The request will expire on {date} at midnight and will be password protected." : "A solicitação expirará em {date} à meia-noite e será protegida por senha.",
@@ -156,7 +156,7 @@
"Add a note" : "Adicionar uma nota",
"Note for recipient" : "Nota para o destinatário",
"Add a note to help people understand what you are requesting." : "Adicione uma nota para ajudar as pessoas a entenderem o que você está solicitando.",
- "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Você pode adicionar links, data ou qualquer outra informação que ajude o destinatário a entender o que você está solicitando.",
+ "You can add links, date or any other information that will help the recipient understand what you are requesting." : "Você pode adicionar links, datas ou qualquer outra informação que ajude o destinatário a entender o que você está solicitando.",
"Close" : "Fechar",
"_Send email and close_::_Send {count} emails and close_" : ["Envie e-mail e feche","Envie {count} e-mails e feche","Envie {count} e-mails e feche"],
"Please select a folder, you cannot share the root directory." : "Selecione uma pasta, você não pode compartilhar o diretório raiz.",
@@ -170,7 +170,7 @@
"Collect files from others even if they do not have an account." : "Colete arquivos de outras pessoas, mesmo que elas não tenham uma conta.",
"To ensure you can receive files, verify you have enough storage available." : "Para garantir que você possa receber arquivos, verifique se você tem armazenamento suficiente disponível.",
"File request" : "Solicitação de arquivo",
- "Previous step" : "Passo anterior",
+ "Previous step" : "Etapa anterior",
"Cancel" : "Cancelar",
"Cancel the file request creation" : "Cancelar a criação da solicitação de arquivo",
"Close without sending emails" : "Fechar sem enviar e-mails",
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "Definir pasta padrão para compartilhamentos aceitos",
"Reset" : "Redefinir",
"Reset folder to system default" : "Redefinir pasta para o padrão do sistema",
- "Share expiration: " : "Expiração do compartilhamento:",
+ "Share expiration: {date}" : "Expiração do compartilhamento: {date}",
"Share Expiration" : "Expiração do Compartilhamento",
"group" : "grupo",
"conversation" : "conversa",
@@ -207,36 +207,36 @@
"{shareWith} by {initiator}" : "{shareWith} por {initiator}",
"Shared via link by {initiator}" : "Compartilhado via link por {initiator}",
"File request ({label})" : "Solicitação de arquivo ({label})",
- "Mail share ({label})" : "Compartilhar por e-mail ({label})",
- "Share link ({label})" : "Compartilhar link ({label})",
+ "Mail share ({label})" : "Compartilhamento por e-mail ({label})",
+ "Share link ({label})" : "Link de compartilhamento ({label})",
"Mail share" : "Compartilhamento por e-mail",
- "Share link ({index})" : "Compartilhar link ({index})",
+ "Share link ({index})" : "Link de compartilhamento ({index})",
"Create public link" : "Criar link público",
"Actions for \"{title}\"" : "Ações para \"{title}\"",
- "Copy public link of \"{title}\" to clipboard" : "Copie o link público de \"{title}\" para a área de transferência",
+ "Copy public link of \"{title}\" to clipboard" : "Copiar link público de \"{title}\" para a área de transferência",
"Error, please enter proper password and/or expiration date" : "Erro, digite a senha correta e/ou a data de validade",
- "Link share created" : "Compartilhamento de link criado",
+ "Link share created" : "Compartilhamento por link criado",
"Error while creating the share" : "Erro ao criar o compartilhamento",
"Please enter the following required information before creating the share" : "Digite as seguintes informações necessárias antes de criar o compartilhamento",
"Password protection (enforced)" : "Proteção por senha (imposta)",
"Password protection" : "Proteger com senha",
"Enter a password" : "Digite uma senha",
- "Enable link expiration (enforced)" : "Habilitar expiração de link (imposta)",
- "Enable link expiration" : "Habilitar expiração de link",
+ "Enable link expiration (enforced)" : "Ativar expiração de link (imposta)",
+ "Enable link expiration" : "Ativar expiração de link",
"Enter expiration date (enforced)" : "Insira a data de expiração (imposta)",
- "Enter expiration date" : "Insira a data de validade",
+ "Enter expiration date" : "Insira a data de expiração",
"Create share" : "Criar compartilhamento",
"Customize link" : "Personalizar link",
"Generate QR code" : "Gerar código QR",
- "Add another link" : "Adicionar um novo link",
+ "Add another link" : "Adicionar outro link",
"Create a new share link" : "Criar um novo link de compartilhamento",
- "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o selecionado atualmente é \"{selectedOption}\"",
- "View only" : "Somente visualização ",
+ "Quick share options, the current selected is \"{selectedOption}\"" : "Opções de compartilhamento rápido, o atual selecionado é \"{selectedOption}\"",
+ "View only" : "Somente visualização",
"Can edit" : "Pode editar",
"Custom permissions" : "Permissões personalizadas",
"Resharing is not allowed" : "Recompartilhamento não é permitido",
"Name or email …" : "Nome ou e-mail...",
- "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID da nuvem federada...",
+ "Name, email, or Federated Cloud ID …" : "Nome, e-mail ou ID de Nuvem Federada …",
"Searching …" : "Pesquisando...",
"No elements found." : "Nenhum elemento encontrado.",
"Search globally" : "Pesquisar globalmente",
@@ -249,30 +249,25 @@
"ScienceMesh" : "ScienceMesh",
"on {server}" : "em {server}",
"Enter external recipients" : "Insira destinatários externos",
- "Search for internal recipients" : "Pesquisar por destinatários internos",
+ "Search for internal recipients" : "Pesquisar destinatários internos",
"Note from" : "Nota de",
"Note:" : "Nota:",
- "File drop" : "Baixar Arquivo ",
- "Upload files to {foldername}." : "Subir arquivos para {foldername}.",
- "By uploading files, you agree to the terms of service." : "Ao enviar arquivos, você concorda com os termos de serviço.",
+ "File drop" : "Depósito de arquivos",
+ "Upload files to {foldername}." : "Fazer upload de arquivos para {foldername}.",
+ "By uploading files, you agree to the terms of service." : "Ao fazer upload de arquivos, você concorda com os termos de serviço.",
+ "Successfully uploaded files" : "Arquivos carregados com sucesso",
"View terms of service" : "Ver os termos de serviço",
"Terms of service" : "Termos de serviço",
- "Upload files to {folder}" : "Enviar arquivos para {folder}",
- "Submit name" : "Enviar nome",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartilhou uma pasta com você.",
- "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, você precisa primeiro fornecer seu nome.",
- "Name" : "Nome",
- "Enter your name" : "Digite seu nome",
- "Share with {userName}" : "Compartilhe com {userName}",
+ "Share with {userName}" : "Compartilhar com {userName}",
"Share with email {email}" : "Compartilhar com e-mail {email}",
"Share with group" : "Compartilhar com grupo",
"Share in conversation" : "Compartilhar na conversa",
- "Share with {user} on remote server {server}" : "Compartilhe com {user} no servidor remoto {server}",
+ "Share with {user} on remote server {server}" : "Compartilhar com {user} no servidor remoto {server}",
"Share with remote group" : "Compartilhar com grupo remoto",
"Share with guest" : "Compartilhar com convidado",
"Update share" : "Atualizar compartilhamento",
"Save share" : "Salvar compartilhamento",
- "Read" : "Leitura",
+ "Read" : "Ler",
"Create" : "Criar",
"Edit" : "Editar",
"Share" : "Compartilhar",
@@ -282,10 +277,10 @@
"Failed to generate a new token" : "Falha ao gerar um novo token",
"Allow upload and editing" : "Permitir uploads e edição",
"Allow editing" : "Permitir edição",
- "Upload only" : "Fazer upload apenas",
+ "Upload only" : "Somente upload",
"Advanced settings" : "Configurações avançadas",
"Share label" : "Compartilhar etiqueta",
- "Share link token" : "Token de link de compartilhamento",
+ "Share link token" : "Token do link de compartilhamento",
"Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Defina o token do link de compartilhamento público para algo fácil de lembrar ou gere um novo token. Não é recomendado usar um token fácil de adivinhar para compartilhamentos que contenham informações confidenciais.",
"Generating…" : "Gerando…",
"Generate new token" : "Gerar novo token",
@@ -294,33 +289,35 @@
"Password expired" : "Senha expirada",
"Video verification" : "Verificação de vídeo",
"Expiration date (enforced)" : "Data de vencimento (imposta)",
- "Set expiration date" : "Definir data de vencimento",
+ "Set expiration date" : "Definir data de expiração",
"Hide download" : "Ocultar download",
- "Allow download and sync" : "Permitir baixar e sincronizar",
- "Note to recipient" : "Observação ao destinatário",
+ "Allow download and sync" : "Permitir download e sincronização",
+ "Note to recipient" : "Nota para o destinatário",
"Enter a note for the share recipient" : "Digite uma observação ao destinatário",
- "Show files in grid view" : "Mostrar arquivos na visualização de grade",
+ "Show files in grid view" : "Mostrar arquivos na visualização em grade",
"Delete share" : "Excluir compartilhamento",
"Others with access" : "Outros com acesso",
"No other accounts with access found" : "Nenhuma outra conta com acesso encontrada",
"Toggle list of others with access to this directory" : "Alternar a lista de outras pessoas com acesso a este diretório",
"Toggle list of others with access to this file" : "Alternar a lista de outras pessoas com acesso a este arquivo",
"Unable to fetch inherited shares" : "Não foi possível buscar compartilhamentos herdados",
- "Link shares" : "Compartilhamentos de links",
+ "Link shares" : "Compartilhamentos por link",
"Shares" : "Compartilhamentos",
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Use este método para compartilhar arquivos com pessoas ou equipes dentro da sua organização. Se o destinatário já tiver acesso ao compartilhamento, mas não conseguir encontrá-lo, você pode enviar o link de compartilhamento interno para facilitar o acesso.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartilhar arquivos com indivíduos ou organizações fora da sua organização. Arquivos e pastas podem ser compartilhados por meio de links públicos de compartilhamento e endereços de e-mail. Você também pode compartilhar com outras contas Nextcloud hospedadas em instâncias diferentes usando o ID de nuvem federada delas.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Compartilhamentos que não fazem parte dos compartilhamentos internos ou externos. Podem ser compartilhamentos de aplicativos ou outras fontes.",
+ "Share with accounts, teams, federated cloud IDs" : "Compartilhar com contas, equipes, IDs de nuvem federada",
+ "Share with accounts and teams" : "Compartilhar com contas e equipes",
+ "Federated cloud ID" : "ID de nuvem federada",
+ "Email, federated cloud ID" : "E-mail, ID de nuvem federada",
"Unable to load the shares list" : "Não foi possível carregar a lista de compartilhamentos",
"Expires {relativetime}" : "Expira {relativetime}",
"this share just expired." : "esse compartilhamento acabou de expirar.",
"Shared with you by {owner}" : "Compartilhado com você por {owner}",
"Internal shares" : "Compartilhamentos internos",
"Internal shares explanation" : "Explicação sobre compartilhamentos internos",
- "Share with accounts and teams" : "Compartilhar com contas e equipes",
"External shares" : "Compartilhamentos externos",
"External shares explanation" : "Explicação sobre compartilhamentos externos",
- "Email, federated cloud id" : "E-mail, ID de nuvem federada",
"Additional shares" : "Compartilhamentos adicionais",
"Additional shares explanation" : "Explicação sobre compartilhamentos adicionais",
"Link to a file" : "Criar link para um arquivo",
@@ -361,14 +358,16 @@
"List of file requests." : "Lista de solicitações de arquivos.",
"No file requests" : "Nenhuma solicitação de arquivo",
"File requests you have created will show up here" : "As solicitações de arquivo que você criou aparecerão aqui",
- "Deleted shares" : "Compartilhamentos apagados",
- "List of shares you left." : "Lista de compartilhamentos que você deixou.",
- "No deleted shares" : "Não há compartilhamentos apagados",
- "Shares you have left will show up here" : "Os compartilhamentos que você deixou aparecerão aqui",
+ "Deleted shares" : "Compartilhamentos excluídos",
+ "List of shares you left." : "Lista de compartilhamentos dos quais você saiu.",
+ "No deleted shares" : "Não há compartilhamentos excluídos",
+ "Shares you have left will show up here" : "Os compartilhamentos dos quais você saiu aparecerão aqui",
"Pending shares" : "Compartilhamentos pendentes",
"List of unapproved shares." : "Lista de compartilhamentos não aprovados.",
"No pending shares" : "Não há compartilhamentos pendentes",
"Shares you have received but not approved will show up here" : "Os compartilhamentos que você recebeu, mas não aprovou, aparecerão aqui",
+ "Error deleting the share: {errorMessage}" : "Erro ao excluir o compartilhamento: {errorMessage}",
+ "Error deleting the share" : "Erro ao excluir o compartilhamento",
"Error updating the share: {errorMessage}" : "Erro ao atualizar o compartilhamento: {errorMessage}",
"Error updating the share" : "Erro ao atualizar o compartilhamento",
"File \"{path}\" has been unshared" : "O arquivo \"{path}\" foi descompartilhado",
@@ -377,10 +376,21 @@
"Share saved" : "Compartilhamento salvo",
"Share expiry date saved" : "Data de expiração do compartilhamento salva",
"Share hide-download state saved" : "Estado ocultar-download do compartilhamento salvo",
- "Share label saved" : "Marcador de compartilhamento salvo",
- "Share note for recipient saved" : "Observação para o destinatário do compartilhamento salva",
+ "Share label saved" : "Rótulo de compartilhamento salvo",
+ "Share note for recipient saved" : "Nota para o destinatário do compartilhamento salva",
"Share password saved" : "Senha do compartilhamento salva",
"Share permissions saved" : "Permissões do compartilhamento salvas",
+ "To upload files to {folder}, you need to provide your name first." : "Para fazer upload de arquivos para {folder}, primeiro você precisa fornecer seu nome.",
+ "Upload files to {folder}" : "Fazer upload de arquivos para {folder}",
+ "Please confirm your name to upload files to {folder}" : "Confirme seu nome para fazer upload de arquivos para {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} compartilhou uma pasta com você.",
+ "Names must not be empty." : "Os nomes não podem estar vazios.",
+ "Names must not start with a dot." : "Os nomes não devem começar com um ponto.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" não é permitido dentro de um nome.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" é um nome reservado e não permitido.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" não é um nome permitido.",
+ "Names must not end with \"{extension}\"." : "Os nomes não devem terminar com \"{extension}\".",
+ "Invalid name." : "Nome inválido.",
"Shared by" : "Compartilhado por",
"Shared with" : "Compartilhado com",
"Password created successfully" : "Senha criada com sucesso",
@@ -389,7 +399,7 @@
"Shared with you and {circle} by {owner}" : "Compartilhado com você e {circle} por {owner}",
"Shared with you and the conversation {conversation} by {owner}" : "Compartilhado com você e a conversa {conversation} por {owner}",
"Shared with you in a conversation by {owner}" : "Compartilhado com você em uma conversa por {owner}",
- "Share note" : "Anotação de compartilhamento",
+ "Share note" : "Compartilhar nota",
"Show list view" : "Mostrar visualização em lista",
"Show grid view" : "Mostrar visualização em grade",
"Upload files to %s" : "Enviar arquivos para %s",
@@ -411,15 +421,18 @@
"No compatible server found at {remote}" : "Nenhum servidor compativel encontrado em {remote}",
"Invalid server URL" : "URL do servidor inválida",
"Failed to add the public link to your Nextcloud" : "Ocorreu uma falha ao adicionar o link público ao seu Nextcloud",
- "Files" : "Arquivos",
+ "You are not allowed to edit link shares that you don't own" : "Você não tem permissão para editar compartilhamentos de links que não são de sua propriedade",
"Download all files" : "Baixar todos os arquivos",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"],
"Search for share recipients" : "Pesquisar destinatários de compartilhamento",
"No recommendations. Start typing." : "Sem recomendações. Inicie a digitação.",
- "Password field can't be empty" : "O campo da senha não pode estar vazio",
- "Allow download" : "Permitir baixar",
- "Share expire date saved" : "Data de expiração do compartilhamento salva",
- "You are not allowed to edit link shares that you don't own" : "Você não tem permissão para editar compartilhamentos de links que não são de sua propriedade",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 endereço de e-mail já adicionado","{count} endereços de e-mail já adicionados","{count} endereços de e-mail já adicionados"],
- "_1 email address added_::_{count} email addresses added_" : ["1 endereço de e-mail adicionado","{count} endereços de e-mail adicionados","{count} endereços de e-mail adicionados"]
+ "To upload files, you need to provide your name first." : "Para fazer upload de arquivos, primeiro você precisa fornecer seu nome.",
+ "Enter your name" : "Digite seu nome",
+ "Submit name" : "Enviar nome",
+ "Name" : "Nome",
+ "Share with accounts, teams, federated cloud id" : "Compartilhar com contas, equipes, ID de nuvem federada",
+ "Email, federated cloud id" : "E-mail, ID de nuvem federada",
+ "Filename must not be empty." : "O nome do arquivo não pode estar vazio."
},"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/files_sharing/l10n/pt_PT.js b/apps/files_sharing/l10n/pt_PT.js
deleted file mode 100644
index 528e8a7b9ae..00000000000
--- a/apps/files_sharing/l10n/pt_PT.js
+++ /dev/null
@@ -1,168 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "error" : "erro",
- "This will stop your current uploads." : "Isto irá interromper os seus carregamentos atuais.",
- "Move or copy" : "Mover ou copiar",
- "Download" : "Transferir",
- "Delete" : "Apagar",
- "You can upload into this folder" : "Pode enviar para esta pasta",
- "Terms of service" : "Termos de serviço",
- "Show list view" : "Mostrar visualização em lista",
- "Show grid view" : "Mostrar visualização em grelha",
- "No compatible server found at {remote}" : "Nenhum servidor compatível encontrado em {remote}",
- "Invalid server URL" : "URL de servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Não foi possível adicionar a hiperligação pública ao seu Nextcloud",
- "File shares" : "Partilhas de ficheiro",
- "Downloaded via public link" : "Transferido via hiperligação pública",
- "Downloaded by {email}" : "Transferido por {email}",
- "{file} downloaded via public link" : "{file} transferido via hiperligação pública",
- "{email} downloaded {file}" : "{email} transferiu {file}",
- "Shared with group {group}" : "Partilhado com o grupo {group}",
- "Removed share for group {group}" : "Removeu a partilha para o grupo {group}",
- "{actor} shared with group {group}" : "{actor} partilhou com o grupo {group}",
- "{actor} removed share for group {group}" : "{actor} removeu a partilha para o grupo {group}",
- "You shared {file} with group {group}" : "Partilhaste {file} com o grupo {group}",
- "You removed group {group} from {file}" : "Removeste o grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} partilhou {file} com o grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} removeu o grupo {group} de {file}",
- "Shared as public link" : "Partilhado como hiperligação pública",
- "Removed public link" : "Hiperligação pública removida",
- "Public link expired" : "A hiperligação pública expirou",
- "{actor} shared as public link" : "{actor} partilhou como hiperligação pública",
- "{actor} removed public link" : "{actor} removeu a hiperligação pública",
- "Public link of {actor} expired" : "Hiperligação pública de {actor} expirou",
- "You shared {file} as public link" : "Partilhou {file} como hiperligação pública",
- "You removed public link for {file}" : "Removeu a hiperligação pública de {file}",
- "Public link expired for {file}" : "Hiperligação pública expirada para {file}",
- "{actor} shared {file} as public link" : "{actor} partilhou {file} como hiperligação pública",
- "{actor} removed public link for {file}" : "{actor} removeu a hiperligação pública de {file}",
- "Public link of {actor} for {file} expired" : "Hiperligação pública de {actor} para {file} expirou",
- "{user} accepted the remote share" : "{user} aceitou a partilha remota",
- "{user} declined the remote share" : "{user} rejeitou a partilha remota",
- "You received a new remote share {file} from {user}" : "Recebeu uma nova partilha remota {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceitou a partilha remota de {file}",
- "{user} declined the remote share of {file}" : "{user} rejeitou a partilha remota de {file}",
- "{user} unshared {file} from you" : "{user} cancelou a partilha de {file} consigo",
- "Shared with {user}" : "Partilhado com {user}",
- "Removed share for {user}" : "Partilha removida para {user}",
- "{actor} removed themselves" : "{actor} removeu eles mesmos",
- "{actor} shared with {user}" : "{actor} partilhou com {user}",
- "{actor} removed share for {user}" : "{actor} removeu partilha com {user}",
- "Shared by {actor}" : "Partilhado por {actor}",
- "{actor} removed share" : "{actor} removeu partilha",
- "You shared {file} with {user}" : "Partilhaste {file} com {user}",
- "You removed {user} from {file}" : "Removeste {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} partilhou {file} com {user}",
- "{actor} removed {user} from {file}" : "{actor} removeu {user} de {file}",
- "{actor} shared {file} with you" : "{actor} partilhou {file} consigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um ficheiro ou pasta partilhado por e-mail ou hiperligação publica foi <strong>transferido</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Um ficheiro ou pasta foi partilhado a partir de <strong>outro servidor</strong>",
- "Files" : "Ficheiros",
- "A file or folder has been <strong>shared</strong>" : "Foi <strong>partilhado</strong> um ficheiro ou uma pasta",
- "Could not delete share" : "Não foi possível eliminar a partilha",
- "Please specify a file or folder path" : "Por favor, especifique um ficheiro ou caminho de pasta",
- "Wrong path, file/folder does not exist" : "Caminho errado, ficheiro/pasta não existe",
- "Could not create share" : "Não foi possível criar partilha",
- "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD",
- "Group sharing is disabled by the administrator" : "A partilha em grupo está desativada pelo administrador",
- "Please specify a valid group" : "Por favor, especifique um grupo válido",
- "Public link sharing is disabled by the administrator" : "A partilha da hiperligação pública está desativada pelo administrador",
- "Public upload disabled by the administrator" : "Envio público desativado pelo administrador",
- "Public upload is only possible for publicly shared folders" : "O envio público só é possível para as pastas partilhadas publicamente",
- "You cannot share to a Circle if the app is not enabled" : "Não pode partilhar um Círculo se a aplicação não estiver activa",
- "Please specify a valid circle" : "Por favor especifique um círculo válido",
- "Unknown share type" : "Tipo de partilha desconhecido",
- "Not a directory" : "Não é uma diretoria",
- "Could not lock path" : "Não foi possível bloquear o caminho",
- "Wrong or no update parameter given" : "Parâmetro indicado errado ou desatualizado",
- "shared by %s" : "partilhado por %s",
- "Download all files" : "Transferir todos os ficheiros",
- "Direct link" : "Hiperligação direta",
- "Share API is disabled" : "A partilha de API está desativada",
- "File sharing" : "Partilha de ficheiro",
- "Accept" : "Aceitar",
- "Decline" : "Recusar",
- "Sharing" : "Partilha",
- "Reset" : "Reiniciar",
- "Unknown error" : "Erro desconhecido",
- "group" : "grupo",
- "conversation" : "conversação",
- "remote" : "remoto",
- "remote group" : "grupo remoto",
- "guest" : "convidado",
- "Unshare" : "Cancelar partilha",
- "Cannot copy, please copy the link manually" : "Não foi possível copiar, copie a ligação manualmente",
- "Link copied" : "Link copiado",
- "Password protection" : "Protegido por palavra-passe",
- "Enter a password" : "Insira uma palavra-passe",
- "Cancel" : "Cancelar",
- "Add another link" : "Adicionar outra hiperligação",
- "Share link" : "Share link",
- "View only" : "Visualizar apenas",
- "Can edit" : "Pode editar",
- "File drop" : "File drop",
- "No recommendations. Start typing." : "Nenhuma recomendação. Comece a escrever ",
- "Resharing is not allowed" : "Voltar a partilhar não é permitido",
- "Searching …" : "À procura …",
- "No elements found." : "Não foram encontrados elementos.",
- "Search globally" : "Procura global",
- "Guest" : "Convidado",
- "Group" : "Grupo",
- "Email" : "E-mail",
- "Allow upload and editing" : "Permtir carregamentos e edições",
- "Allow editing" : "Permitir edição",
- "Advanced settings" : "Definições avançadas",
- "Set password" : "Definir palavra-passe",
- "Password" : "Password",
- "Set expiration date" : "Definir a data de expiração",
- "Expiration date" : "Data de expiração",
- "Hide download" : "Ocultar transferência",
- "Note to recipient" : "Nota para o destinatário",
- "Read" : "Ler",
- "Create" : "Criar",
- "Edit" : "Editar",
- "Share" : "Partilhar",
- "Shared with you by {owner}" : "Partilhado consigo por {owner}",
- "Shared" : "Partilhados",
- "Shared by" : "Partilhado por",
- "Shared with" : "Partilhado com ",
- "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Partilhado consigo e com {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Partilhado consigo e com a conversação {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Partilhado consigo numa conversação por {owner}",
- "Shares" : "Partilhas",
- "Shared with you" : "Partilhado consigo ",
- "Nothing shared with you yet" : "Ainda não foi partilhado nada consigo",
- "Shared with others" : "Partilhado com terceiros",
- "Nothing shared yet" : "Ainda não foi partilhado nada",
- "Shared by link" : "Partilhado por hiperligação",
- "No shared links" : "Sem hiperligações partilhadas",
- "Share note" : "Partilhar nota",
- "Upload files to %s" : "Enviar ficheiros para %s",
- "Note" : "Nota",
- "Select or drop files" : "Seleccione ou solte ficheiros",
- "Uploaded files:" : "Ficheiros enviados:",
- "Add to your Nextcloud" : "Adicionar à sua Nextcloud",
- "Files and folders others share with you will show up here" : "Os ficheiros e pastas que terceiros partilham consigo, serão mostrados aqui",
- "Files and folders you share will show up here" : "Os ficheiros e as pastas que partilha serão mostrados aqui",
- "Files and folders you share by link will show up here" : "Os ficheiros e as pastas que partilha por hiperligação, serão mostrados aqui",
- "Restore" : "Restaurar",
- "No expiration date set" : "Data de expiração não definida",
- "Please specify a valid user" : "Por favor, especifique um utilizador válido",
- "Read only" : "Apenas leitura",
- "File drop (upload only)" : "Pasta de carregamento apenas",
- "Upload" : "Upload",
- "Only works for users with access to this folder" : "Apenas funciona para utilizadores com acesso a esta pasta",
- "Circle" : "Círculo",
- "Update" : "Atualizar",
- "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
- "Name" : "Nome",
- "Share time" : "Hora da Partilha",
- "Reasons might be:" : "As razões poderão ser:",
- "the item was removed" : "o item foi removido",
- "the link expired" : "a hiperligação expirou",
- "sharing is disabled" : "a partilha está desativada",
- "For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação."
-},
-"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_sharing/l10n/pt_PT.json b/apps/files_sharing/l10n/pt_PT.json
deleted file mode 100644
index 6221d9ab54b..00000000000
--- a/apps/files_sharing/l10n/pt_PT.json
+++ /dev/null
@@ -1,166 +0,0 @@
-{ "translations": {
- "error" : "erro",
- "This will stop your current uploads." : "Isto irá interromper os seus carregamentos atuais.",
- "Move or copy" : "Mover ou copiar",
- "Download" : "Transferir",
- "Delete" : "Apagar",
- "You can upload into this folder" : "Pode enviar para esta pasta",
- "Terms of service" : "Termos de serviço",
- "Show list view" : "Mostrar visualização em lista",
- "Show grid view" : "Mostrar visualização em grelha",
- "No compatible server found at {remote}" : "Nenhum servidor compatível encontrado em {remote}",
- "Invalid server URL" : "URL de servidor inválido",
- "Failed to add the public link to your Nextcloud" : "Não foi possível adicionar a hiperligação pública ao seu Nextcloud",
- "File shares" : "Partilhas de ficheiro",
- "Downloaded via public link" : "Transferido via hiperligação pública",
- "Downloaded by {email}" : "Transferido por {email}",
- "{file} downloaded via public link" : "{file} transferido via hiperligação pública",
- "{email} downloaded {file}" : "{email} transferiu {file}",
- "Shared with group {group}" : "Partilhado com o grupo {group}",
- "Removed share for group {group}" : "Removeu a partilha para o grupo {group}",
- "{actor} shared with group {group}" : "{actor} partilhou com o grupo {group}",
- "{actor} removed share for group {group}" : "{actor} removeu a partilha para o grupo {group}",
- "You shared {file} with group {group}" : "Partilhaste {file} com o grupo {group}",
- "You removed group {group} from {file}" : "Removeste o grupo {group} de {file}",
- "{actor} shared {file} with group {group}" : "{actor} partilhou {file} com o grupo {group}",
- "{actor} removed group {group} from {file}" : "{actor} removeu o grupo {group} de {file}",
- "Shared as public link" : "Partilhado como hiperligação pública",
- "Removed public link" : "Hiperligação pública removida",
- "Public link expired" : "A hiperligação pública expirou",
- "{actor} shared as public link" : "{actor} partilhou como hiperligação pública",
- "{actor} removed public link" : "{actor} removeu a hiperligação pública",
- "Public link of {actor} expired" : "Hiperligação pública de {actor} expirou",
- "You shared {file} as public link" : "Partilhou {file} como hiperligação pública",
- "You removed public link for {file}" : "Removeu a hiperligação pública de {file}",
- "Public link expired for {file}" : "Hiperligação pública expirada para {file}",
- "{actor} shared {file} as public link" : "{actor} partilhou {file} como hiperligação pública",
- "{actor} removed public link for {file}" : "{actor} removeu a hiperligação pública de {file}",
- "Public link of {actor} for {file} expired" : "Hiperligação pública de {actor} para {file} expirou",
- "{user} accepted the remote share" : "{user} aceitou a partilha remota",
- "{user} declined the remote share" : "{user} rejeitou a partilha remota",
- "You received a new remote share {file} from {user}" : "Recebeu uma nova partilha remota {file} de {user}",
- "{user} accepted the remote share of {file}" : "{user} aceitou a partilha remota de {file}",
- "{user} declined the remote share of {file}" : "{user} rejeitou a partilha remota de {file}",
- "{user} unshared {file} from you" : "{user} cancelou a partilha de {file} consigo",
- "Shared with {user}" : "Partilhado com {user}",
- "Removed share for {user}" : "Partilha removida para {user}",
- "{actor} removed themselves" : "{actor} removeu eles mesmos",
- "{actor} shared with {user}" : "{actor} partilhou com {user}",
- "{actor} removed share for {user}" : "{actor} removeu partilha com {user}",
- "Shared by {actor}" : "Partilhado por {actor}",
- "{actor} removed share" : "{actor} removeu partilha",
- "You shared {file} with {user}" : "Partilhaste {file} com {user}",
- "You removed {user} from {file}" : "Removeste {user} de {file}",
- "{actor} shared {file} with {user}" : "{actor} partilhou {file} com {user}",
- "{actor} removed {user} from {file}" : "{actor} removeu {user} de {file}",
- "{actor} shared {file} with you" : "{actor} partilhou {file} consigo",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um ficheiro ou pasta partilhado por e-mail ou hiperligação publica foi <strong>transferido</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Um ficheiro ou pasta foi partilhado a partir de <strong>outro servidor</strong>",
- "Files" : "Ficheiros",
- "A file or folder has been <strong>shared</strong>" : "Foi <strong>partilhado</strong> um ficheiro ou uma pasta",
- "Could not delete share" : "Não foi possível eliminar a partilha",
- "Please specify a file or folder path" : "Por favor, especifique um ficheiro ou caminho de pasta",
- "Wrong path, file/folder does not exist" : "Caminho errado, ficheiro/pasta não existe",
- "Could not create share" : "Não foi possível criar partilha",
- "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser AAAA-MM-DD",
- "Group sharing is disabled by the administrator" : "A partilha em grupo está desativada pelo administrador",
- "Please specify a valid group" : "Por favor, especifique um grupo válido",
- "Public link sharing is disabled by the administrator" : "A partilha da hiperligação pública está desativada pelo administrador",
- "Public upload disabled by the administrator" : "Envio público desativado pelo administrador",
- "Public upload is only possible for publicly shared folders" : "O envio público só é possível para as pastas partilhadas publicamente",
- "You cannot share to a Circle if the app is not enabled" : "Não pode partilhar um Círculo se a aplicação não estiver activa",
- "Please specify a valid circle" : "Por favor especifique um círculo válido",
- "Unknown share type" : "Tipo de partilha desconhecido",
- "Not a directory" : "Não é uma diretoria",
- "Could not lock path" : "Não foi possível bloquear o caminho",
- "Wrong or no update parameter given" : "Parâmetro indicado errado ou desatualizado",
- "shared by %s" : "partilhado por %s",
- "Download all files" : "Transferir todos os ficheiros",
- "Direct link" : "Hiperligação direta",
- "Share API is disabled" : "A partilha de API está desativada",
- "File sharing" : "Partilha de ficheiro",
- "Accept" : "Aceitar",
- "Decline" : "Recusar",
- "Sharing" : "Partilha",
- "Reset" : "Reiniciar",
- "Unknown error" : "Erro desconhecido",
- "group" : "grupo",
- "conversation" : "conversação",
- "remote" : "remoto",
- "remote group" : "grupo remoto",
- "guest" : "convidado",
- "Unshare" : "Cancelar partilha",
- "Cannot copy, please copy the link manually" : "Não foi possível copiar, copie a ligação manualmente",
- "Link copied" : "Link copiado",
- "Password protection" : "Protegido por palavra-passe",
- "Enter a password" : "Insira uma palavra-passe",
- "Cancel" : "Cancelar",
- "Add another link" : "Adicionar outra hiperligação",
- "Share link" : "Share link",
- "View only" : "Visualizar apenas",
- "Can edit" : "Pode editar",
- "File drop" : "File drop",
- "No recommendations. Start typing." : "Nenhuma recomendação. Comece a escrever ",
- "Resharing is not allowed" : "Voltar a partilhar não é permitido",
- "Searching …" : "À procura …",
- "No elements found." : "Não foram encontrados elementos.",
- "Search globally" : "Procura global",
- "Guest" : "Convidado",
- "Group" : "Grupo",
- "Email" : "E-mail",
- "Allow upload and editing" : "Permtir carregamentos e edições",
- "Allow editing" : "Permitir edição",
- "Advanced settings" : "Definições avançadas",
- "Set password" : "Definir palavra-passe",
- "Password" : "Password",
- "Set expiration date" : "Definir a data de expiração",
- "Expiration date" : "Data de expiração",
- "Hide download" : "Ocultar transferência",
- "Note to recipient" : "Nota para o destinatário",
- "Read" : "Ler",
- "Create" : "Criar",
- "Edit" : "Editar",
- "Share" : "Partilhar",
- "Shared with you by {owner}" : "Partilhado consigo por {owner}",
- "Shared" : "Partilhados",
- "Shared by" : "Partilhado por",
- "Shared with" : "Partilhado com ",
- "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}",
- "Shared with you and {circle} by {owner}" : "Partilhado consigo e com {circle} por {owner}",
- "Shared with you and the conversation {conversation} by {owner}" : "Partilhado consigo e com a conversação {conversation} por {owner}",
- "Shared with you in a conversation by {owner}" : "Partilhado consigo numa conversação por {owner}",
- "Shares" : "Partilhas",
- "Shared with you" : "Partilhado consigo ",
- "Nothing shared with you yet" : "Ainda não foi partilhado nada consigo",
- "Shared with others" : "Partilhado com terceiros",
- "Nothing shared yet" : "Ainda não foi partilhado nada",
- "Shared by link" : "Partilhado por hiperligação",
- "No shared links" : "Sem hiperligações partilhadas",
- "Share note" : "Partilhar nota",
- "Upload files to %s" : "Enviar ficheiros para %s",
- "Note" : "Nota",
- "Select or drop files" : "Seleccione ou solte ficheiros",
- "Uploaded files:" : "Ficheiros enviados:",
- "Add to your Nextcloud" : "Adicionar à sua Nextcloud",
- "Files and folders others share with you will show up here" : "Os ficheiros e pastas que terceiros partilham consigo, serão mostrados aqui",
- "Files and folders you share will show up here" : "Os ficheiros e as pastas que partilha serão mostrados aqui",
- "Files and folders you share by link will show up here" : "Os ficheiros e as pastas que partilha por hiperligação, serão mostrados aqui",
- "Restore" : "Restaurar",
- "No expiration date set" : "Data de expiração não definida",
- "Please specify a valid user" : "Por favor, especifique um utilizador válido",
- "Read only" : "Apenas leitura",
- "File drop (upload only)" : "Pasta de carregamento apenas",
- "Upload" : "Upload",
- "Only works for users with access to this folder" : "Apenas funciona para utilizadores com acesso a esta pasta",
- "Circle" : "Círculo",
- "Update" : "Atualizar",
- "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
- "Name" : "Nome",
- "Share time" : "Hora da Partilha",
- "Reasons might be:" : "As razões poderão ser:",
- "the item was removed" : "o item foi removido",
- "the link expired" : "a hiperligação expirou",
- "sharing is disabled" : "a partilha está desativada",
- "For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação."
-},"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/files_sharing/l10n/ro.js b/apps/files_sharing/l10n/ro.js
deleted file mode 100644
index 3cdb34d5d2f..00000000000
--- a/apps/files_sharing/l10n/ro.js
+++ /dev/null
@@ -1,215 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "File shares" : "Fișiere partajate",
- "Downloaded via public link" : "Descărcat prin link public",
- "Downloaded by {email}" : "Descărcat de {email}",
- "{file} downloaded via public link" : "{file} descărcat din link public",
- "{email} downloaded {file}" : "{email} a descărcat {file}",
- "Shared with group {group}" : "Partajat cu grupul {group}",
- "Removed share for group {group}" : "Elimină partajarea pentru grupul {group}",
- "{actor} shared with group {group}" : "{actor} a partajat cu grupul {group}",
- "{actor} removed share for group {group}" : "{actor} a eliminat partajarea pentru grupul {group}",
- "Share for group {group} expired" : "Partajarea pentru grupul {group} a expirat",
- "You shared {file} with group {group}" : "Ați partajat {file} cu grupul {group}",
- "You removed group {group} from {file}" : "Ați eliminat accesul grupului {group} la {file}",
- "{actor} shared {file} with group {group}" : "{actor} a partajat {file} cu grupul {group}",
- "{actor} removed group {group} from {file}" : "{actor} a eliminat accesul grupului {group} la {file}",
- "Share for file {file} with group {group} expired" : "Partajarea fișierului {file} cu grupul {group} a expirat",
- "Shared as public link" : "Partajează un link public",
- "Removed public link" : "Elimină link public",
- "Public link expired" : "Link-ul public a expirat",
- "{actor} shared as public link" : "{actor} a partajat ca link public",
- "{actor} removed public link" : "{actor} a eliminat link public",
- "Public link of {actor} expired" : "Linkul public al {actor} a expirat",
- "You shared {file} as public link" : "Ați partajat {file} ca link public",
- "You removed public link for {file}" : "Ați șters linkul public pentru {file}",
- "Public link expired for {file}" : "Linkul public pentru {file} a expirat",
- "{actor} shared {file} as public link" : "{actor} a partajat {file} ca link public",
- "{actor} removed public link for {file}" : "{actor} a șters linkul public pentru {file}",
- "Public link of {actor} for {file} expired" : "Linkul public al {actor} pentru {file} a expirat",
- "{user} accepted the remote share" : "{user} a acceptat partajarea la distanță",
- "{user} declined the remote share" : "{user} nu a acceptat partajarea la distanță",
- "You received a new remote share {file} from {user}" : "Ați primit o partajare la distanță {file} de la {user}",
- "{user} accepted the remote share of {file}" : "{user} a acceptat partajarea la distanță a {file}",
- "{user} declined the remote share of {file}" : "{user} nu a acceptat partajarea la distanță a {file}",
- "{user} unshared {file} from you" : "{user} a eliminat partajarea cu tine a {file}",
- "Shared with {user}" : "Partajat cu {user}",
- "Removed share for {user}" : "S-a eliminat partajarea pentru {user}",
- "You removed yourself" : "V-ați exclus",
- "{actor} removed themselves" : "{actor} s-au exclus",
- "{actor} shared with {user}" : "{actor} a partajat cu {user}",
- "{actor} removed share for {user}" : "{actor} a eliminat partajarea pentru {user}",
- "Shared by {actor}" : "Partajat de {actor}",
- "{actor} removed share" : "{actor} a eliminat partajarea",
- "Share for {user} expired" : "Partajarea cu {user} a expirat",
- "Share expired" : "Partajare expirată",
- "You shared {file} with {user}" : "Ați partajat {file} cu {user}",
- "You removed {user} from {file}" : "Ați eliminat pe {user} de la partajarea {file}",
- "You removed yourself from {file}" : "V-ați eliminat de la partajarea {file}",
- "{actor} removed themselves from {file}" : "{actor} s-au eliminat de la partajarea {file}",
- "{actor} shared {file} with {user}" : "{actor} a partajat {file} cu {user}",
- "{actor} removed {user} from {file}" : "{actor} a eliminat pe {user} de la partajarea {file}",
- "{actor} shared {file} with you" : "{actor} a partajat {file} cu tine",
- "{actor} removed you from the share named {file}" : "{actor} v-a eliminat de la partajarea denumită {file}",
- "Share for file {file} with {user} expired" : "Partajarea fișierului {file} cu {user} a expirat",
- "Share for file {file} expired" : "Partajarea fișierului {file} a expirat",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "A fost <strong>descărcat</strong> un fișier sau folder partajat primân email sau prin link public",
- "A file or folder was shared from <strong>another server</strong>" : "A fost partajat un fișier sau folder de la <strong>alt server</strong>",
- "Sharing" : "Partajare",
- "A file or folder has been <strong>shared</strong>" : "Un fișier sau director a fost <strong>partajat</strong>",
- "Shared link" : "Link partajat",
- "Wrong share ID, share does not exist" : "ID partajare greșit, partajarea nu există",
- "Could not delete share" : "Nu s-a putut șterge elementul partajat",
- "Please specify a file or folder path" : "Specifică un fișier sau o cale către un director",
- "Wrong path, file/folder does not exist" : "Cale eronată, fișier/folder inexistent",
- "Could not create share" : "Nu s-a putut crea partajarea",
- "Invalid permissions" : "Permisiuni invalide",
- "Group sharing is disabled by the administrator" : "Partajarea de grup este dezactivată de administrator",
- "Please specify a valid group" : "Specifică un grup valid",
- "Public link sharing is disabled by the administrator" : "Partajarea prin link public este dezactivată de administrator",
- "Public upload disabled by the administrator" : "Încărcarea publică este dezactivată de administrator",
- "Public upload is only possible for publicly shared folders" : "Încărcarea publică este posibilă doar pentru folderele partajate public",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Trimiterea de către Nextcloud Talk a parolei pentru partajarea %s a eșuat deoarece Nextcloud Talk nu este activat",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Partajarea %1$s a eșuat deoarece backend-ul nu permite partajări de tipul %2$s",
- "Sharing %s failed because the back end does not support room shares" : "Partajarea %s a eșuat deoarece backend-ul nu suportă partajări în săli",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Partajarea %s a eșuat deoarece backend-ul nu suportă partajări ScienceMesh",
- "Unknown share type" : "Tip necunoscut de partajare",
- "Not a directory" : "Nu este un director",
- "Could not lock node" : "Nu s-a putut bloca nodul",
- "Could not lock path" : "Calea nu a putut fi blocată",
- "Wrong or no update parameter given" : "S-a furnizat un parametru greșit sau neactualizat",
- "Share must at least have READ or CREATE permissions" : "Partajarea trebuie să aibă cel puțin permisiunea READ sau CREATE",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "Partajarea trebuie să aibă permisiunea READ dacă este setată permisiunea UPDATE sau DELETE",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Trimiterea parolei de către Nextcloud Talk\" pentru partajarea unui fișier sau folder a eșuat deoarece Nextcloud Talk nu este activat.",
- "Wrong password" : "Parolă greșită",
- "shared by %s" : "partajat de %s",
- "Download" : "Descarcă",
- "Add to your %s" : "Adaugă la %s tău",
- "Direct link" : "Legătură directă",
- "Share API is disabled" : "API-ul de partajare este dezactivat",
- "File sharing" : "Partajare fișiere",
- "Share will expire tomorrow" : "Partajarea va expira mâine",
- "Your share of {node} will expire tomorrow" : "Partajarea {node} va expira mâine",
- "You received {share} as a share by {user}" : "Aţi primit {share} ca partajare de către {user}",
- "You received {share} to group {group} as a share by {user}" : "Ați primit {share} la grupul {group} ca partajare de către {user}",
- "Accept" : "Accept",
- "Decline" : "Refuză",
- "People" : "Persoane",
- "Expiration date" : "Data expirării",
- "Password" : "Parolă",
- "Share link" : "Partajează link-ul",
- "Copy to clipboard" : "Copiază în clipboard",
- "Send link via email" : "Trimite link via email",
- "Select" : "Selectează",
- "Cancel" : "Anulează",
- "Close" : "Închide",
- "Continue" : "Continuă",
- "Error creating the share" : "Eroare la crearea partajării",
- "Error while toggling options" : "Eroare la comutarea opțiunilor",
- "Set default folder for accepted shares" : "Stabiliți folderul implicit pentru partajările acceptate",
- "Reset" : "Resetare",
- "Reset folder to system default" : "Resetați folderul la setările implicite de sistem",
- "Choose a default folder for accepted shares" : "Alegeți un folder implicit pentru partajările acceptate",
- "Invalid path selected" : "Calea selectată este invalidă",
- "Unknown error" : "Eroare necunoscută",
- "Open Sharing Details" : "Deschide detalii partajare",
- "group" : "grup",
- "conversation" : "conversație",
- "remote" : "de la distanță",
- "remote group" : "grup la distanță",
- "guest" : "invitat",
- "Unshare" : "Oprește partajarea",
- "Internal link" : "Link intern",
- "Cannot copy, please copy the link manually" : "Nu s-a putut copia, vă rugăm să copiați link-ul manual",
- "Link copied" : "Link copiat",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Add another link" : "Adaugă un alt link",
- "View only" : "Numai se vizualizează",
- "Can edit" : "Poate edita",
- "Custom permissions" : "Permisiuni particularizate",
- "No recommendations. Start typing." : "Nu am găsit recomandări. Începeți să scrieți.",
- "Resharing is not allowed" : "Repartajarea nu este permisă",
- "Searching …" : "Căutare ...",
- "No elements found." : "Nu sunt elemente.",
- "Search globally" : "Caută global",
- "Guest" : "Invitat",
- "Group" : "Grup",
- "Email" : "E-mail",
- "Team" : "Echipă",
- "Talk conversation" : "Conversație Talk",
- "Deck board" : "Panou Deck",
- "File drop" : "Aducere fișier",
- "Terms of service" : "Termenii serviciului",
- "Allow upload and editing" : "Permite încărcarea și editarea",
- "Allow editing" : "Permite editarea",
- "Advanced settings" : "Setări avansate",
- "Set expiration date" : "Specifică data expirării",
- "Hide download" : "Ascunde descărcarea",
- "Note to recipient" : "Notă către destinatar",
- "Read" : "Citit",
- "Create" : "Crează",
- "Edit" : "Editează",
- "Share" : "Partajează",
- "Delete" : "Șterge",
- "Shares" : "Partajări",
- "Shared with you by {owner}" : "Partajat cu tine de {owner}",
- "Open in Files" : "Deschide în Fișiere",
- "Shared" : "Partajat",
- "Shared with others" : "Partajat cu alții",
- "No shares" : "Nicio partajare",
- "Shared with you" : "Partajat cu tine",
- "Nothing shared with you yet" : "Nimic nu e partajat cu tine încă",
- "Nothing shared yet" : "Nimic partajat încă",
- "Shared by link" : "Partajat prin link",
- "No shared links" : "Nicio legătură partajată",
- "Deleted shares" : "Partajări șterse",
- "No deleted shares" : "Nicio partajare ștearsă",
- "Pending shares" : "Partajări în așteptare",
- "No pending shares" : "Nicio partajare în așteptare",
- "Shared by" : "impartite in ",
- "Shared with" : "Partajat cu",
- "Shared with you and the group {group} by {owner}" : "Partajat cu tine si cu grupul {group} de {owner}",
- "Shared with you and {circle} by {owner}" : "Partajat cu tine și {circle} de {owner} ",
- "Shared with you and the conversation {conversation} by {owner}" : "Partajat cu tine si conversația {conversation} de {owner}",
- "Shared with you in a conversation by {owner}" : "Partajat cu tine în o conversație {owner}",
- "Share note" : "Partajează nota",
- "Show list view" : "Afișează vizualizarea listă",
- "Show grid view" : "Afișează vizualizarea grilă",
- "Upload files to %s" : "Încarcă fișiere la %s",
- "Note" : "Notă",
- "Select or drop files" : "Selectează sau plasează fișiere",
- "Uploaded files:" : "Fișiere încărcate:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Prin încărcarea fișierelor ești de accord cu %1$s termenii și serviciile %2$s",
- "Back to %s" : "Înapoi la %s",
- "Waiting…" : "În așteptare...",
- "error" : "eroare",
- "finished" : "finalizat",
- "This will stop your current uploads." : "Asta va opri descărcările curente.",
- "Move or copy" : "Mută sau copiază",
- "You can upload into this folder" : "Poți încărca în acest director",
- "No compatible server found at {remote}" : "Niciun server compatibil nu a fost găsit la {remote}",
- "Invalid server URL" : "URL server invalid",
- "Failed to add the public link to your Nextcloud" : "Eroare la adăugarea link-ului public la Nextcloud",
- "Files" : "Fișiere",
- "Please specify a valid user" : "Specifică un utilizator valid",
- "You cannot share to a Circle if the app is not enabled" : "Nu puteți partaja cu un Cerc dacă aplicația nu este activată",
- "Please specify a valid circle" : "Specificați un cerc valid",
- "Download all files" : "Descarcă toate fișierele",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Această aplicație permite utilizatorilor să partajeze fișiere în cadrul Nextcloud. Dacă este activată, administratorul poate stabili ce grupuri pot partaja fișiere. Utilizatorii respectivi pot apoi partaja fișiere și foldere cu alți utilizatori și grupuri în cadrul Nextcloud. În plus, dacă administratorul activează funcția de partajare linkuri, atunci poate fi folosit un link extern pentru partajarea fișierelor cu alți utilizatori din afara Nextcloud. Administratorii pot de asemenea să impună parole, date de expirare și să permită partajarea server la server via linkuri partajate precum și partajarea cu dispozitivele mobile.\nDezactivând această funcționalitate, se elimină accesul la fișierele și folderele partajate de pe server pentru toți destinatarii partajărilor și de asemenea de pe clienții de sincronizare și aplicațiile mobile. Mai multe informații se pot găsi în documentația Nextcloud.",
- "Accept user and group shares by default" : "Acceptă implicit partajările cu utilizatorii și grupurile",
- "Read only" : "Doar citire",
- "File drop (upload only)" : "Aruncă fișierul (numai încărcare)",
- "Upload" : "Încărcare",
- "Bundled permissions" : "Permisiuni încorporate",
- "Circle" : "Cerc",
- "No entries found in this folder" : "Niciun element găsit în acest director",
- "Name" : "Nume",
- "Reasons might be:" : "Motive posibile ar fi:",
- "the item was removed" : "acest articol a fost șters",
- "the link expired" : "linkul a expirat",
- "sharing is disabled" : "Partajare este oprită",
- "Enter your name" : "Introduceți numele"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/files_sharing/l10n/ro.json b/apps/files_sharing/l10n/ro.json
deleted file mode 100644
index 4a9ef553b57..00000000000
--- a/apps/files_sharing/l10n/ro.json
+++ /dev/null
@@ -1,213 +0,0 @@
-{ "translations": {
- "File shares" : "Fișiere partajate",
- "Downloaded via public link" : "Descărcat prin link public",
- "Downloaded by {email}" : "Descărcat de {email}",
- "{file} downloaded via public link" : "{file} descărcat din link public",
- "{email} downloaded {file}" : "{email} a descărcat {file}",
- "Shared with group {group}" : "Partajat cu grupul {group}",
- "Removed share for group {group}" : "Elimină partajarea pentru grupul {group}",
- "{actor} shared with group {group}" : "{actor} a partajat cu grupul {group}",
- "{actor} removed share for group {group}" : "{actor} a eliminat partajarea pentru grupul {group}",
- "Share for group {group} expired" : "Partajarea pentru grupul {group} a expirat",
- "You shared {file} with group {group}" : "Ați partajat {file} cu grupul {group}",
- "You removed group {group} from {file}" : "Ați eliminat accesul grupului {group} la {file}",
- "{actor} shared {file} with group {group}" : "{actor} a partajat {file} cu grupul {group}",
- "{actor} removed group {group} from {file}" : "{actor} a eliminat accesul grupului {group} la {file}",
- "Share for file {file} with group {group} expired" : "Partajarea fișierului {file} cu grupul {group} a expirat",
- "Shared as public link" : "Partajează un link public",
- "Removed public link" : "Elimină link public",
- "Public link expired" : "Link-ul public a expirat",
- "{actor} shared as public link" : "{actor} a partajat ca link public",
- "{actor} removed public link" : "{actor} a eliminat link public",
- "Public link of {actor} expired" : "Linkul public al {actor} a expirat",
- "You shared {file} as public link" : "Ați partajat {file} ca link public",
- "You removed public link for {file}" : "Ați șters linkul public pentru {file}",
- "Public link expired for {file}" : "Linkul public pentru {file} a expirat",
- "{actor} shared {file} as public link" : "{actor} a partajat {file} ca link public",
- "{actor} removed public link for {file}" : "{actor} a șters linkul public pentru {file}",
- "Public link of {actor} for {file} expired" : "Linkul public al {actor} pentru {file} a expirat",
- "{user} accepted the remote share" : "{user} a acceptat partajarea la distanță",
- "{user} declined the remote share" : "{user} nu a acceptat partajarea la distanță",
- "You received a new remote share {file} from {user}" : "Ați primit o partajare la distanță {file} de la {user}",
- "{user} accepted the remote share of {file}" : "{user} a acceptat partajarea la distanță a {file}",
- "{user} declined the remote share of {file}" : "{user} nu a acceptat partajarea la distanță a {file}",
- "{user} unshared {file} from you" : "{user} a eliminat partajarea cu tine a {file}",
- "Shared with {user}" : "Partajat cu {user}",
- "Removed share for {user}" : "S-a eliminat partajarea pentru {user}",
- "You removed yourself" : "V-ați exclus",
- "{actor} removed themselves" : "{actor} s-au exclus",
- "{actor} shared with {user}" : "{actor} a partajat cu {user}",
- "{actor} removed share for {user}" : "{actor} a eliminat partajarea pentru {user}",
- "Shared by {actor}" : "Partajat de {actor}",
- "{actor} removed share" : "{actor} a eliminat partajarea",
- "Share for {user} expired" : "Partajarea cu {user} a expirat",
- "Share expired" : "Partajare expirată",
- "You shared {file} with {user}" : "Ați partajat {file} cu {user}",
- "You removed {user} from {file}" : "Ați eliminat pe {user} de la partajarea {file}",
- "You removed yourself from {file}" : "V-ați eliminat de la partajarea {file}",
- "{actor} removed themselves from {file}" : "{actor} s-au eliminat de la partajarea {file}",
- "{actor} shared {file} with {user}" : "{actor} a partajat {file} cu {user}",
- "{actor} removed {user} from {file}" : "{actor} a eliminat pe {user} de la partajarea {file}",
- "{actor} shared {file} with you" : "{actor} a partajat {file} cu tine",
- "{actor} removed you from the share named {file}" : "{actor} v-a eliminat de la partajarea denumită {file}",
- "Share for file {file} with {user} expired" : "Partajarea fișierului {file} cu {user} a expirat",
- "Share for file {file} expired" : "Partajarea fișierului {file} a expirat",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "A fost <strong>descărcat</strong> un fișier sau folder partajat primân email sau prin link public",
- "A file or folder was shared from <strong>another server</strong>" : "A fost partajat un fișier sau folder de la <strong>alt server</strong>",
- "Sharing" : "Partajare",
- "A file or folder has been <strong>shared</strong>" : "Un fișier sau director a fost <strong>partajat</strong>",
- "Shared link" : "Link partajat",
- "Wrong share ID, share does not exist" : "ID partajare greșit, partajarea nu există",
- "Could not delete share" : "Nu s-a putut șterge elementul partajat",
- "Please specify a file or folder path" : "Specifică un fișier sau o cale către un director",
- "Wrong path, file/folder does not exist" : "Cale eronată, fișier/folder inexistent",
- "Could not create share" : "Nu s-a putut crea partajarea",
- "Invalid permissions" : "Permisiuni invalide",
- "Group sharing is disabled by the administrator" : "Partajarea de grup este dezactivată de administrator",
- "Please specify a valid group" : "Specifică un grup valid",
- "Public link sharing is disabled by the administrator" : "Partajarea prin link public este dezactivată de administrator",
- "Public upload disabled by the administrator" : "Încărcarea publică este dezactivată de administrator",
- "Public upload is only possible for publicly shared folders" : "Încărcarea publică este posibilă doar pentru folderele partajate public",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Trimiterea de către Nextcloud Talk a parolei pentru partajarea %s a eșuat deoarece Nextcloud Talk nu este activat",
- "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Partajarea %1$s a eșuat deoarece backend-ul nu permite partajări de tipul %2$s",
- "Sharing %s failed because the back end does not support room shares" : "Partajarea %s a eșuat deoarece backend-ul nu suportă partajări în săli",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Partajarea %s a eșuat deoarece backend-ul nu suportă partajări ScienceMesh",
- "Unknown share type" : "Tip necunoscut de partajare",
- "Not a directory" : "Nu este un director",
- "Could not lock node" : "Nu s-a putut bloca nodul",
- "Could not lock path" : "Calea nu a putut fi blocată",
- "Wrong or no update parameter given" : "S-a furnizat un parametru greșit sau neactualizat",
- "Share must at least have READ or CREATE permissions" : "Partajarea trebuie să aibă cel puțin permisiunea READ sau CREATE",
- "Share must have READ permission if UPDATE or DELETE permission is set" : "Partajarea trebuie să aibă permisiunea READ dacă este setată permisiunea UPDATE sau DELETE",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Trimiterea parolei de către Nextcloud Talk\" pentru partajarea unui fișier sau folder a eșuat deoarece Nextcloud Talk nu este activat.",
- "Wrong password" : "Parolă greșită",
- "shared by %s" : "partajat de %s",
- "Download" : "Descarcă",
- "Add to your %s" : "Adaugă la %s tău",
- "Direct link" : "Legătură directă",
- "Share API is disabled" : "API-ul de partajare este dezactivat",
- "File sharing" : "Partajare fișiere",
- "Share will expire tomorrow" : "Partajarea va expira mâine",
- "Your share of {node} will expire tomorrow" : "Partajarea {node} va expira mâine",
- "You received {share} as a share by {user}" : "Aţi primit {share} ca partajare de către {user}",
- "You received {share} to group {group} as a share by {user}" : "Ați primit {share} la grupul {group} ca partajare de către {user}",
- "Accept" : "Accept",
- "Decline" : "Refuză",
- "People" : "Persoane",
- "Expiration date" : "Data expirării",
- "Password" : "Parolă",
- "Share link" : "Partajează link-ul",
- "Copy to clipboard" : "Copiază în clipboard",
- "Send link via email" : "Trimite link via email",
- "Select" : "Selectează",
- "Cancel" : "Anulează",
- "Close" : "Închide",
- "Continue" : "Continuă",
- "Error creating the share" : "Eroare la crearea partajării",
- "Error while toggling options" : "Eroare la comutarea opțiunilor",
- "Set default folder for accepted shares" : "Stabiliți folderul implicit pentru partajările acceptate",
- "Reset" : "Resetare",
- "Reset folder to system default" : "Resetați folderul la setările implicite de sistem",
- "Choose a default folder for accepted shares" : "Alegeți un folder implicit pentru partajările acceptate",
- "Invalid path selected" : "Calea selectată este invalidă",
- "Unknown error" : "Eroare necunoscută",
- "Open Sharing Details" : "Deschide detalii partajare",
- "group" : "grup",
- "conversation" : "conversație",
- "remote" : "de la distanță",
- "remote group" : "grup la distanță",
- "guest" : "invitat",
- "Unshare" : "Oprește partajarea",
- "Internal link" : "Link intern",
- "Cannot copy, please copy the link manually" : "Nu s-a putut copia, vă rugăm să copiați link-ul manual",
- "Link copied" : "Link copiat",
- "Password protection" : "Password protection",
- "Enter a password" : "Enter a password",
- "Add another link" : "Adaugă un alt link",
- "View only" : "Numai se vizualizează",
- "Can edit" : "Poate edita",
- "Custom permissions" : "Permisiuni particularizate",
- "No recommendations. Start typing." : "Nu am găsit recomandări. Începeți să scrieți.",
- "Resharing is not allowed" : "Repartajarea nu este permisă",
- "Searching …" : "Căutare ...",
- "No elements found." : "Nu sunt elemente.",
- "Search globally" : "Caută global",
- "Guest" : "Invitat",
- "Group" : "Grup",
- "Email" : "E-mail",
- "Team" : "Echipă",
- "Talk conversation" : "Conversație Talk",
- "Deck board" : "Panou Deck",
- "File drop" : "Aducere fișier",
- "Terms of service" : "Termenii serviciului",
- "Allow upload and editing" : "Permite încărcarea și editarea",
- "Allow editing" : "Permite editarea",
- "Advanced settings" : "Setări avansate",
- "Set expiration date" : "Specifică data expirării",
- "Hide download" : "Ascunde descărcarea",
- "Note to recipient" : "Notă către destinatar",
- "Read" : "Citit",
- "Create" : "Crează",
- "Edit" : "Editează",
- "Share" : "Partajează",
- "Delete" : "Șterge",
- "Shares" : "Partajări",
- "Shared with you by {owner}" : "Partajat cu tine de {owner}",
- "Open in Files" : "Deschide în Fișiere",
- "Shared" : "Partajat",
- "Shared with others" : "Partajat cu alții",
- "No shares" : "Nicio partajare",
- "Shared with you" : "Partajat cu tine",
- "Nothing shared with you yet" : "Nimic nu e partajat cu tine încă",
- "Nothing shared yet" : "Nimic partajat încă",
- "Shared by link" : "Partajat prin link",
- "No shared links" : "Nicio legătură partajată",
- "Deleted shares" : "Partajări șterse",
- "No deleted shares" : "Nicio partajare ștearsă",
- "Pending shares" : "Partajări în așteptare",
- "No pending shares" : "Nicio partajare în așteptare",
- "Shared by" : "impartite in ",
- "Shared with" : "Partajat cu",
- "Shared with you and the group {group} by {owner}" : "Partajat cu tine si cu grupul {group} de {owner}",
- "Shared with you and {circle} by {owner}" : "Partajat cu tine și {circle} de {owner} ",
- "Shared with you and the conversation {conversation} by {owner}" : "Partajat cu tine si conversația {conversation} de {owner}",
- "Shared with you in a conversation by {owner}" : "Partajat cu tine în o conversație {owner}",
- "Share note" : "Partajează nota",
- "Show list view" : "Afișează vizualizarea listă",
- "Show grid view" : "Afișează vizualizarea grilă",
- "Upload files to %s" : "Încarcă fișiere la %s",
- "Note" : "Notă",
- "Select or drop files" : "Selectează sau plasează fișiere",
- "Uploaded files:" : "Fișiere încărcate:",
- "By uploading files, you agree to the %1$sterms of service%2$s." : "Prin încărcarea fișierelor ești de accord cu %1$s termenii și serviciile %2$s",
- "Back to %s" : "Înapoi la %s",
- "Waiting…" : "În așteptare...",
- "error" : "eroare",
- "finished" : "finalizat",
- "This will stop your current uploads." : "Asta va opri descărcările curente.",
- "Move or copy" : "Mută sau copiază",
- "You can upload into this folder" : "Poți încărca în acest director",
- "No compatible server found at {remote}" : "Niciun server compatibil nu a fost găsit la {remote}",
- "Invalid server URL" : "URL server invalid",
- "Failed to add the public link to your Nextcloud" : "Eroare la adăugarea link-ului public la Nextcloud",
- "Files" : "Fișiere",
- "Please specify a valid user" : "Specifică un utilizator valid",
- "You cannot share to a Circle if the app is not enabled" : "Nu puteți partaja cu un Cerc dacă aplicația nu este activată",
- "Please specify a valid circle" : "Specificați un cerc valid",
- "Download all files" : "Descarcă toate fișierele",
- "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Această aplicație permite utilizatorilor să partajeze fișiere în cadrul Nextcloud. Dacă este activată, administratorul poate stabili ce grupuri pot partaja fișiere. Utilizatorii respectivi pot apoi partaja fișiere și foldere cu alți utilizatori și grupuri în cadrul Nextcloud. În plus, dacă administratorul activează funcția de partajare linkuri, atunci poate fi folosit un link extern pentru partajarea fișierelor cu alți utilizatori din afara Nextcloud. Administratorii pot de asemenea să impună parole, date de expirare și să permită partajarea server la server via linkuri partajate precum și partajarea cu dispozitivele mobile.\nDezactivând această funcționalitate, se elimină accesul la fișierele și folderele partajate de pe server pentru toți destinatarii partajărilor și de asemenea de pe clienții de sincronizare și aplicațiile mobile. Mai multe informații se pot găsi în documentația Nextcloud.",
- "Accept user and group shares by default" : "Acceptă implicit partajările cu utilizatorii și grupurile",
- "Read only" : "Doar citire",
- "File drop (upload only)" : "Aruncă fișierul (numai încărcare)",
- "Upload" : "Încărcare",
- "Bundled permissions" : "Permisiuni încorporate",
- "Circle" : "Cerc",
- "No entries found in this folder" : "Niciun element găsit în acest director",
- "Name" : "Nume",
- "Reasons might be:" : "Motive posibile ar fi:",
- "the item was removed" : "acest articol a fost șters",
- "the link expired" : "linkul a expirat",
- "sharing is disabled" : "Partajare este oprită",
- "Enter your name" : "Introduceți numele"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index ced677044f8..599859b6be9 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -137,7 +137,9 @@ OC.L10N.register(
"Link copied to clipboard" : "Ссылка скопирована в буфер обмена",
"Email already added" : "Адрес электронной почты уже добавлен",
"Invalid email address" : "Неверный адрес электронной почты",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Следующий адрес электронной почты недействителен: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}"],
"_{count} email address already added_::_{count} email addresses already added_" : [" {count} e-mail адрес уже добавлен"," {count} e-mail адреса уже добавлено"," {count} e-mail адресов уже добавлены","{count} e-mail адресов уже добавлены"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Добавлен {count} адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"],
"You can now share the link below to allow people to upload files to your directory." : "Теперь вы можете поделиться приведенной ниже ссылкой, чтобы люди могли загружать файлы в ваш каталог.",
"Share link" : "Общий доступ по ссылке",
"Copy to clipboard" : "Копировать в буфер обмена",
@@ -158,8 +160,10 @@ OC.L10N.register(
"Add a note to help people understand what you are requesting." : "Добавьте примечание, чтобы помочь людям понять, о чем вы просите.",
"You can add links, date or any other information that will help the recipient understand what you are requesting." : "Вы можете добавить ссылки, дату или любую другую информацию, которая поможет получателю понять, что вы запрашиваете.",
"Close" : "Закрыть",
+ "_Send email and close_::_Send {count} emails and close_" : ["Отправить письмо и закрыть","Отправить {count} письма и закрыть","Отправить {count} писем и закрыть","Отправить {count} писем и закрыть"],
"Please select a folder, you cannot share the root directory." : "Пожалуйста, выберите папку, вы не можете предоставить общий доступ к корневому каталогу.",
"File request created" : "Создан запрос на файл",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Создан запрос файла и отправлено письмо","Создан запрос файла и отправлено {count} письма","Создан запрос файла и отправлено {count} писем","Создан запрос файла и отправлено {count} писем"],
"Error creating the share: {errorMessage}" : "Не удалось создать общий ресурс: {errorMessage}",
"Error creating the share" : "Ошибка создания общего доступа",
"Error sending emails: {errorMessage}" : "Ошибка при отправке электронных писем: {errorMessage}",
@@ -181,6 +185,8 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Задать папку для принятых опубликованных ресурсов",
"Reset" : "Сброс",
"Reset folder to system default" : "Сбросить папку к значениям по умолчанию",
+ "Share expiration: {date}" : "Срок действия общего ресурса: {date}",
+ "Share Expiration" : "Срок действия общего ресурса",
"group" : "группа",
"conversation" : "беседа",
"remote" : "на другом сервере",
@@ -244,19 +250,16 @@ OC.L10N.register(
"Deck board" : "Доска",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
+ "Enter external recipients" : "Введите внешних получателей",
+ "Search for internal recipients" : "Поиск внутренних получателей",
"Note from" : "Примечание от",
"Note:" : "Примечание:",
"File drop" : "Приём файлов",
"Upload files to {foldername}." : "Загрузка файлов в {foldername}.",
"By uploading files, you agree to the terms of service." : "Загружая файлы, вы соглашаетесь с условиями обслуживания.",
+ "Successfully uploaded files" : "Файлы успешно загружены",
"View terms of service" : "Ознакомиться с условиями предоставления услуг",
"Terms of service" : "Условия использования",
- "Upload files to {folder}" : "Загрузка файлов в {folder}",
- "Submit name" : "Отправить имя",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поделился с вами папкой.",
- "To upload files, you need to provide your name first." : "Чтобы загрузить файлы, вам необходимо сначала указать свое имя.",
- "Name" : "Имя",
- "Enter your name" : "Введите своё имя",
"Share with {userName}" : "Поделиться с {userName}",
"Share with email {email}" : "Поделитесь с помощью электронной почты",
"Share with group" : "Поделиться с группой",
@@ -271,6 +274,7 @@ OC.L10N.register(
"Edit" : "Редактировать",
"Share" : "Поделиться",
"Delete" : "Удалить",
+ "Password field cannot be empty" : "Поле пароля не может быть пустым",
"Replace current password" : "Заменить текущий пароль",
"Failed to generate a new token" : "Не удалось сгенерировать новый токен",
"Allow upload and editing" : "Разрешить приём и редактирование",
@@ -278,6 +282,10 @@ OC.L10N.register(
"Upload only" : "Только загружать",
"Advanced settings" : "Расширенные параметры",
"Share label" : "Метка общего доступа",
+ "Share link token" : "Токен ссылки на общий ресурс",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Установите простой для запоминания токен ссылки на общий ресурс или сгенерируйте новый. Не рекомендуется использовать легко угадываемые токены для общих ресурсов с конфиденциальной информацией.",
+ "Generating…" : "Создание…",
+ "Generate new token" : "Создать новый токен",
"Set password" : "Задать пароль",
"Password expires {passwordExpirationTime}" : "Срок действия пароля истекает {passwordExpirationTime}",
"Password expired" : "Срок действия пароля истёк",
@@ -288,6 +296,7 @@ OC.L10N.register(
"Allow download and sync" : "Разрешить загрузку и синхронизацию",
"Note to recipient" : "Примечание для получателя",
"Enter a note for the share recipient" : "Введите примечание для получателя",
+ "Show files in grid view" : "Показать файлы в виде сетки",
"Delete share" : "Удалить общий ресурс",
"Others with access" : "Другие пользователи, имеющие доступ",
"No other accounts with access found" : "Других учетных записей с доступом не найдено",
@@ -299,14 +308,20 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Используйте этот метод для обмена файлами с отдельными лицами или группами в вашей организации. Если получатель уже имеет доступ к ресурсу, но не может его найти, вы можете отправить ему внутреннюю ссылку на ресурс для легкого доступа.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Используйте этот метод для обмена файлами с отдельными лицами или организациями за пределами вашей организации. Файлы и папки можно делить через публичные ссылки и адреса электронной почты. Вы также можете делиться с другими учетными записями Nextcloud, размещенными на разных экземплярах, используя их идентификатор федеративного облака.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Ссылки, которые не являются частью внутренних или внешних ссылок. Это могут быть ссылки из приложений или других источников.",
+ "Share with accounts, teams, federated cloud IDs" : "Поделиться с учетными записями, командами, идентификаторами федеративного облака",
+ "Share with accounts and teams" : "Поделиться с аккаунтами и командами",
+ "Federated cloud ID" : "Федеративный облачный ID",
+ "Email, federated cloud ID" : "Электронная почта, федеративный облачный ID",
"Unable to load the shares list" : "Невозможно загрузить список общих ресурсов",
"Expires {relativetime}" : "Истекает {relativetime}",
"this share just expired." : "срок действия этого общего ресурса только что истёк.",
"Shared with you by {owner}" : "{owner} предоставил(а) Вам доступ",
"Internal shares" : "Внутренние ссылки",
+ "Internal shares explanation" : "Пояснение к внутренним общим ресурсам",
"External shares" : "Внешние ссылки",
- "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака",
+ "External shares explanation" : "Пояснение к внешним общим ресурсам",
"Additional shares" : "Дополнительные ссылки",
+ "Additional shares explanation" : "Пояснение к дополнительным общим ресурсам",
"Link to a file" : "Ссылка на файл",
"_Accept share_::_Accept shares_" : ["Принять общий ресурс","Принять общие ресурсы","Принять общие ресурсы","Принять общие ресурсы"],
"Open in Files" : "Открыть в Файлах",
@@ -353,6 +368,7 @@ OC.L10N.register(
"List of unapproved shares." : "Список ресурсов общего доступа, которые вы еще не приняли",
"No pending shares" : "Ожидающие общие ресурсы отсуствуют",
"Shares you have received but not approved will show up here" : "Здесь появятся ресурсы общего доступа, которые Вам предоставлены, но еще не подтверждены с Вашей стороны",
+ "Error deleting the share" : "Ошибка прекращения общего доступа",
"Error updating the share: {errorMessage}" : "Не удалось изменить общий ресурс: {errorMessage}",
"Error updating the share" : "Ошибка изменения параметров общего доступа",
"File \"{path}\" has been unshared" : "Закрыт общий доступ к файлу «{path}»",
@@ -362,8 +378,20 @@ OC.L10N.register(
"Share expiry date saved" : "Дата истечения срока общего доступа сохранена",
"Share hide-download state saved" : "Скрытая загрузка ссылки общего доступа сохранено",
"Share label saved" : "Метка общего доступа сохранена",
+ "Share note for recipient saved" : "Примечание к общему ресурсу для получателя сохранено",
"Share password saved" : "Пароль общего доступа сохранен",
"Share permissions saved" : "Разрешения общего доступа сохранены",
+ "To upload files to {folder}, you need to provide your name first." : "Чтобы загрузить файлы в {folder}, сначала укажите своё имя.",
+ "Upload files to {folder}" : "Загрузка файлов в {folder}",
+ "Please confirm your name to upload files to {folder}" : "Пожалуйста, подтвердите своё имя для загрузки файлов в {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поделился с вами папкой.",
+ "Names must not be empty." : "Имя не может быть пустым.",
+ "Names must not start with a dot." : "Имя не должно начинаться с точки.",
+ "\"{char}\" is not allowed inside a name." : "Символ «{char}» не допускается в имени.",
+ "\"{segment}\" is a reserved name and not allowed." : "«{segment}» — зарезервированное имя и не может быть использовано.",
+ "\"{extension}\" is not an allowed name." : "«{extension}» — недопустимое имя.",
+ "Names must not end with \"{extension}\"." : "Имя не должно оканчиваться на «{extension}».",
+ "Invalid name." : "Недопустимое имя.",
"Shared by" : "Поделился",
"Shared with" : "Общий доступ",
"Password created successfully" : "Пароль создан",
@@ -394,12 +422,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Не найден совместимый сервер на {remote}",
"Invalid server URL" : "Неверный URL сервера",
"Failed to add the public link to your Nextcloud" : "Не удалось создать общедоступную ссылку",
- "Files" : "Файлы",
+ "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете",
"Download all files" : "Скачать все файлы",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Уже добавлен 1 адрес электронной почты","Уже добавлено {count} адреса электронной почты","Уже добавлено {count} адресов электронной почты","Уже добавлено {count} адресов электронной почты"],
+ "_1 email address added_::_{count} email addresses added_" : ["Добавлен 1 адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"],
"Search for share recipients" : "Найти больше получателей общего ресурса",
"No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы",
- "Allow download" : "Разрешить скачивать",
- "Share expire date saved" : "Дата истечения общего доступа установлена",
- "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете"
+ "To upload files, you need to provide your name first." : "Чтобы загрузить файлы, вам необходимо сначала указать свое имя.",
+ "Enter your name" : "Введите своё имя",
+ "Submit name" : "Отправить имя",
+ "Name" : "Имя",
+ "Share with accounts, teams, federated cloud id" : "Поделиться с учетными записями, командами, идентификатором федеративного облака",
+ "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака",
+ "Filename must not be empty." : "Имя файла не должно быть пустым."
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index d073020b7a9..f570c39184c 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -135,7 +135,9 @@
"Link copied to clipboard" : "Ссылка скопирована в буфер обмена",
"Email already added" : "Адрес электронной почты уже добавлен",
"Invalid email address" : "Неверный адрес электронной почты",
+ "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["Следующий адрес электронной почты недействителен: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}","Следующие адреса электронной почты недействительны: {emails}"],
"_{count} email address already added_::_{count} email addresses already added_" : [" {count} e-mail адрес уже добавлен"," {count} e-mail адреса уже добавлено"," {count} e-mail адресов уже добавлены","{count} e-mail адресов уже добавлены"],
+ "_{count} email address added_::_{count} email addresses added_" : ["Добавлен {count} адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"],
"You can now share the link below to allow people to upload files to your directory." : "Теперь вы можете поделиться приведенной ниже ссылкой, чтобы люди могли загружать файлы в ваш каталог.",
"Share link" : "Общий доступ по ссылке",
"Copy to clipboard" : "Копировать в буфер обмена",
@@ -156,8 +158,10 @@
"Add a note to help people understand what you are requesting." : "Добавьте примечание, чтобы помочь людям понять, о чем вы просите.",
"You can add links, date or any other information that will help the recipient understand what you are requesting." : "Вы можете добавить ссылки, дату или любую другую информацию, которая поможет получателю понять, что вы запрашиваете.",
"Close" : "Закрыть",
+ "_Send email and close_::_Send {count} emails and close_" : ["Отправить письмо и закрыть","Отправить {count} письма и закрыть","Отправить {count} писем и закрыть","Отправить {count} писем и закрыть"],
"Please select a folder, you cannot share the root directory." : "Пожалуйста, выберите папку, вы не можете предоставить общий доступ к корневому каталогу.",
"File request created" : "Создан запрос на файл",
+ "_File request created and email sent_::_File request created and {count} emails sent_" : ["Создан запрос файла и отправлено письмо","Создан запрос файла и отправлено {count} письма","Создан запрос файла и отправлено {count} писем","Создан запрос файла и отправлено {count} писем"],
"Error creating the share: {errorMessage}" : "Не удалось создать общий ресурс: {errorMessage}",
"Error creating the share" : "Ошибка создания общего доступа",
"Error sending emails: {errorMessage}" : "Ошибка при отправке электронных писем: {errorMessage}",
@@ -179,6 +183,8 @@
"Set default folder for accepted shares" : "Задать папку для принятых опубликованных ресурсов",
"Reset" : "Сброс",
"Reset folder to system default" : "Сбросить папку к значениям по умолчанию",
+ "Share expiration: {date}" : "Срок действия общего ресурса: {date}",
+ "Share Expiration" : "Срок действия общего ресурса",
"group" : "группа",
"conversation" : "беседа",
"remote" : "на другом сервере",
@@ -242,19 +248,16 @@
"Deck board" : "Доска",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
+ "Enter external recipients" : "Введите внешних получателей",
+ "Search for internal recipients" : "Поиск внутренних получателей",
"Note from" : "Примечание от",
"Note:" : "Примечание:",
"File drop" : "Приём файлов",
"Upload files to {foldername}." : "Загрузка файлов в {foldername}.",
"By uploading files, you agree to the terms of service." : "Загружая файлы, вы соглашаетесь с условиями обслуживания.",
+ "Successfully uploaded files" : "Файлы успешно загружены",
"View terms of service" : "Ознакомиться с условиями предоставления услуг",
"Terms of service" : "Условия использования",
- "Upload files to {folder}" : "Загрузка файлов в {folder}",
- "Submit name" : "Отправить имя",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поделился с вами папкой.",
- "To upload files, you need to provide your name first." : "Чтобы загрузить файлы, вам необходимо сначала указать свое имя.",
- "Name" : "Имя",
- "Enter your name" : "Введите своё имя",
"Share with {userName}" : "Поделиться с {userName}",
"Share with email {email}" : "Поделитесь с помощью электронной почты",
"Share with group" : "Поделиться с группой",
@@ -269,6 +272,7 @@
"Edit" : "Редактировать",
"Share" : "Поделиться",
"Delete" : "Удалить",
+ "Password field cannot be empty" : "Поле пароля не может быть пустым",
"Replace current password" : "Заменить текущий пароль",
"Failed to generate a new token" : "Не удалось сгенерировать новый токен",
"Allow upload and editing" : "Разрешить приём и редактирование",
@@ -276,6 +280,10 @@
"Upload only" : "Только загружать",
"Advanced settings" : "Расширенные параметры",
"Share label" : "Метка общего доступа",
+ "Share link token" : "Токен ссылки на общий ресурс",
+ "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Установите простой для запоминания токен ссылки на общий ресурс или сгенерируйте новый. Не рекомендуется использовать легко угадываемые токены для общих ресурсов с конфиденциальной информацией.",
+ "Generating…" : "Создание…",
+ "Generate new token" : "Создать новый токен",
"Set password" : "Задать пароль",
"Password expires {passwordExpirationTime}" : "Срок действия пароля истекает {passwordExpirationTime}",
"Password expired" : "Срок действия пароля истёк",
@@ -286,6 +294,7 @@
"Allow download and sync" : "Разрешить загрузку и синхронизацию",
"Note to recipient" : "Примечание для получателя",
"Enter a note for the share recipient" : "Введите примечание для получателя",
+ "Show files in grid view" : "Показать файлы в виде сетки",
"Delete share" : "Удалить общий ресурс",
"Others with access" : "Другие пользователи, имеющие доступ",
"No other accounts with access found" : "Других учетных записей с доступом не найдено",
@@ -297,14 +306,20 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Используйте этот метод для обмена файлами с отдельными лицами или группами в вашей организации. Если получатель уже имеет доступ к ресурсу, но не может его найти, вы можете отправить ему внутреннюю ссылку на ресурс для легкого доступа.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Используйте этот метод для обмена файлами с отдельными лицами или организациями за пределами вашей организации. Файлы и папки можно делить через публичные ссылки и адреса электронной почты. Вы также можете делиться с другими учетными записями Nextcloud, размещенными на разных экземплярах, используя их идентификатор федеративного облака.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Ссылки, которые не являются частью внутренних или внешних ссылок. Это могут быть ссылки из приложений или других источников.",
+ "Share with accounts, teams, federated cloud IDs" : "Поделиться с учетными записями, командами, идентификаторами федеративного облака",
+ "Share with accounts and teams" : "Поделиться с аккаунтами и командами",
+ "Federated cloud ID" : "Федеративный облачный ID",
+ "Email, federated cloud ID" : "Электронная почта, федеративный облачный ID",
"Unable to load the shares list" : "Невозможно загрузить список общих ресурсов",
"Expires {relativetime}" : "Истекает {relativetime}",
"this share just expired." : "срок действия этого общего ресурса только что истёк.",
"Shared with you by {owner}" : "{owner} предоставил(а) Вам доступ",
"Internal shares" : "Внутренние ссылки",
+ "Internal shares explanation" : "Пояснение к внутренним общим ресурсам",
"External shares" : "Внешние ссылки",
- "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака",
+ "External shares explanation" : "Пояснение к внешним общим ресурсам",
"Additional shares" : "Дополнительные ссылки",
+ "Additional shares explanation" : "Пояснение к дополнительным общим ресурсам",
"Link to a file" : "Ссылка на файл",
"_Accept share_::_Accept shares_" : ["Принять общий ресурс","Принять общие ресурсы","Принять общие ресурсы","Принять общие ресурсы"],
"Open in Files" : "Открыть в Файлах",
@@ -351,6 +366,7 @@
"List of unapproved shares." : "Список ресурсов общего доступа, которые вы еще не приняли",
"No pending shares" : "Ожидающие общие ресурсы отсуствуют",
"Shares you have received but not approved will show up here" : "Здесь появятся ресурсы общего доступа, которые Вам предоставлены, но еще не подтверждены с Вашей стороны",
+ "Error deleting the share" : "Ошибка прекращения общего доступа",
"Error updating the share: {errorMessage}" : "Не удалось изменить общий ресурс: {errorMessage}",
"Error updating the share" : "Ошибка изменения параметров общего доступа",
"File \"{path}\" has been unshared" : "Закрыт общий доступ к файлу «{path}»",
@@ -360,8 +376,20 @@
"Share expiry date saved" : "Дата истечения срока общего доступа сохранена",
"Share hide-download state saved" : "Скрытая загрузка ссылки общего доступа сохранено",
"Share label saved" : "Метка общего доступа сохранена",
+ "Share note for recipient saved" : "Примечание к общему ресурсу для получателя сохранено",
"Share password saved" : "Пароль общего доступа сохранен",
"Share permissions saved" : "Разрешения общего доступа сохранены",
+ "To upload files to {folder}, you need to provide your name first." : "Чтобы загрузить файлы в {folder}, сначала укажите своё имя.",
+ "Upload files to {folder}" : "Загрузка файлов в {folder}",
+ "Please confirm your name to upload files to {folder}" : "Пожалуйста, подтвердите своё имя для загрузки файлов в {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поделился с вами папкой.",
+ "Names must not be empty." : "Имя не может быть пустым.",
+ "Names must not start with a dot." : "Имя не должно начинаться с точки.",
+ "\"{char}\" is not allowed inside a name." : "Символ «{char}» не допускается в имени.",
+ "\"{segment}\" is a reserved name and not allowed." : "«{segment}» — зарезервированное имя и не может быть использовано.",
+ "\"{extension}\" is not an allowed name." : "«{extension}» — недопустимое имя.",
+ "Names must not end with \"{extension}\"." : "Имя не должно оканчиваться на «{extension}».",
+ "Invalid name." : "Недопустимое имя.",
"Shared by" : "Поделился",
"Shared with" : "Общий доступ",
"Password created successfully" : "Пароль создан",
@@ -392,12 +420,18 @@
"No compatible server found at {remote}" : "Не найден совместимый сервер на {remote}",
"Invalid server URL" : "Неверный URL сервера",
"Failed to add the public link to your Nextcloud" : "Не удалось создать общедоступную ссылку",
- "Files" : "Файлы",
+ "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете",
"Download all files" : "Скачать все файлы",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Уже добавлен 1 адрес электронной почты","Уже добавлено {count} адреса электронной почты","Уже добавлено {count} адресов электронной почты","Уже добавлено {count} адресов электронной почты"],
+ "_1 email address added_::_{count} email addresses added_" : ["Добавлен 1 адрес электронной почты","Добавлено {count} адреса электронной почты","Добавлено {count} адресов электронной почты","Добавлено {count} адресов электронной почты"],
"Search for share recipients" : "Найти больше получателей общего ресурса",
"No recommendations. Start typing." : "Рекомендации отсутствуют, начните вводить символы",
- "Allow download" : "Разрешить скачивать",
- "Share expire date saved" : "Дата истечения общего доступа установлена",
- "You are not allowed to edit link shares that you don't own" : "Вам не разрешается редактировать ссылки, которыми вы не владеете"
+ "To upload files, you need to provide your name first." : "Чтобы загрузить файлы, вам необходимо сначала указать свое имя.",
+ "Enter your name" : "Введите своё имя",
+ "Submit name" : "Отправить имя",
+ "Name" : "Имя",
+ "Share with accounts, teams, federated cloud id" : "Поделиться с учетными записями, командами, идентификатором федеративного облака",
+ "Email, federated cloud id" : "Электронная почта, идентификатор федеративного облака",
+ "Filename must not be empty." : "Имя файла не должно быть пустым."
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sc.js b/apps/files_sharing/l10n/sc.js
index cacc9da26c5..fd3d247f573 100644
--- a/apps/files_sharing/l10n/sc.js
+++ b/apps/files_sharing/l10n/sc.js
@@ -99,8 +99,10 @@ OC.L10N.register(
"Copy to clipboard" : "Còpia in is punta de billete",
"Select" : "Seletziona",
"Close" : "Serra",
+ "File request created" : "Rechesta de archìviu creada",
"Error creating the share: {errorMessage}" : "Errore in sa creatzione de sa cumpartzidura: {errorMessage}",
"Error creating the share" : "Errore in sa creatzione de sa cumpartzidura",
+ "Create a file request" : "Crea rechesta de archìviu",
"Cancel" : "Annulla",
"Invalid path selected" : "Percursu seletzionadu non bàlidu",
"Unknown error" : "Errore disconnotu",
@@ -154,8 +156,6 @@ OC.L10N.register(
"Deck board" : "Tabella in Deck",
"on {server}" : "in {server}",
"Terms of service" : "Cunditziones de servìtziu",
- "Name" : "Nùmene",
- "Enter your name" : "Inserta•nche su nùmene tuo",
"Update share" : "Agiorna sa cumpartzidura",
"Read" : "Leghe",
"Create" : "Crea",
@@ -189,6 +189,7 @@ OC.L10N.register(
"Shared" : "Cumpartzidu",
"Shared by {ownerDisplayName}" : "Cumpartzidu dae {ownerDisplayName}",
"Shared with others" : "Cumpartzidu cun àtere",
+ "Create file request" : "Crea rechesta de archìviu",
"No shares" : "Peruna cumpartzidura",
"Shared with you" : "Cumpartzidu cun tegus",
"Nothing shared with you yet" : "Ancora peruna cumpartzidura cun tegus",
@@ -196,6 +197,10 @@ OC.L10N.register(
"Shared by link" : "Cumpartzidu cun ligòngiu",
"List of files that are shared by link." : "Lista de archìvios cumpartzidos cun ligòngiu.",
"No shared links" : "Perunu ligòngiu cumpartzidu",
+ "File requests" : "Archìvios rechestos",
+ "List of file requests." : "Lista de archìvios rechestos.",
+ "No file requests" : "Perunu archìviu rechestu",
+ "File requests you have created will show up here" : "Is rechestas de archìviu chi crees ant a èssere mustradas inoghe",
"Deleted shares" : "Cumpartziduras cantzelladas",
"No deleted shares" : "Peruna cumpartzidura cantzellada",
"Pending shares" : "Cumpartziduras in suspesu",
@@ -230,9 +235,10 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Perunu serbidore cumpatìbile agatadu in {remote}",
"Invalid server URL" : "URL de su serbidore non vàlidu",
"Failed to add the public link to your Nextcloud" : "No at fatu a agiùnghere su ligòngiu pùblicu in Nextcloud",
- "Files" : "Archìvios",
"Download all files" : "Iscàrriga totu is archìvios",
"Search for share recipients" : "Chirca destinatàrios de cumpartziduras",
- "No recommendations. Start typing." : "Peruna racumandatzione. Cumintza a iscrìere."
+ "No recommendations. Start typing." : "Peruna racumandatzione. Cumintza a iscrìere.",
+ "Enter your name" : "Inserta•nche su nùmene tuo",
+ "Name" : "Nùmene"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/sc.json b/apps/files_sharing/l10n/sc.json
index b830853148d..3962119a2ef 100644
--- a/apps/files_sharing/l10n/sc.json
+++ b/apps/files_sharing/l10n/sc.json
@@ -97,8 +97,10 @@
"Copy to clipboard" : "Còpia in is punta de billete",
"Select" : "Seletziona",
"Close" : "Serra",
+ "File request created" : "Rechesta de archìviu creada",
"Error creating the share: {errorMessage}" : "Errore in sa creatzione de sa cumpartzidura: {errorMessage}",
"Error creating the share" : "Errore in sa creatzione de sa cumpartzidura",
+ "Create a file request" : "Crea rechesta de archìviu",
"Cancel" : "Annulla",
"Invalid path selected" : "Percursu seletzionadu non bàlidu",
"Unknown error" : "Errore disconnotu",
@@ -152,8 +154,6 @@
"Deck board" : "Tabella in Deck",
"on {server}" : "in {server}",
"Terms of service" : "Cunditziones de servìtziu",
- "Name" : "Nùmene",
- "Enter your name" : "Inserta•nche su nùmene tuo",
"Update share" : "Agiorna sa cumpartzidura",
"Read" : "Leghe",
"Create" : "Crea",
@@ -187,6 +187,7 @@
"Shared" : "Cumpartzidu",
"Shared by {ownerDisplayName}" : "Cumpartzidu dae {ownerDisplayName}",
"Shared with others" : "Cumpartzidu cun àtere",
+ "Create file request" : "Crea rechesta de archìviu",
"No shares" : "Peruna cumpartzidura",
"Shared with you" : "Cumpartzidu cun tegus",
"Nothing shared with you yet" : "Ancora peruna cumpartzidura cun tegus",
@@ -194,6 +195,10 @@
"Shared by link" : "Cumpartzidu cun ligòngiu",
"List of files that are shared by link." : "Lista de archìvios cumpartzidos cun ligòngiu.",
"No shared links" : "Perunu ligòngiu cumpartzidu",
+ "File requests" : "Archìvios rechestos",
+ "List of file requests." : "Lista de archìvios rechestos.",
+ "No file requests" : "Perunu archìviu rechestu",
+ "File requests you have created will show up here" : "Is rechestas de archìviu chi crees ant a èssere mustradas inoghe",
"Deleted shares" : "Cumpartziduras cantzelladas",
"No deleted shares" : "Peruna cumpartzidura cantzellada",
"Pending shares" : "Cumpartziduras in suspesu",
@@ -228,9 +233,10 @@
"No compatible server found at {remote}" : "Perunu serbidore cumpatìbile agatadu in {remote}",
"Invalid server URL" : "URL de su serbidore non vàlidu",
"Failed to add the public link to your Nextcloud" : "No at fatu a agiùnghere su ligòngiu pùblicu in Nextcloud",
- "Files" : "Archìvios",
"Download all files" : "Iscàrriga totu is archìvios",
"Search for share recipients" : "Chirca destinatàrios de cumpartziduras",
- "No recommendations. Start typing." : "Peruna racumandatzione. Cumintza a iscrìere."
+ "No recommendations. Start typing." : "Peruna racumandatzione. Cumintza a iscrìere.",
+ "Enter your name" : "Inserta•nche su nùmene tuo",
+ "Name" : "Nùmene"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js
index 33e4d1c3238..4ee0e5e9722 100644
--- a/apps/files_sharing/l10n/sk.js
+++ b/apps/files_sharing/l10n/sk.js
@@ -185,7 +185,6 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Nastaviť predvolený priečinok pre prijaté zdieľania",
"Reset" : "Resetovať",
"Reset folder to system default" : "Obnoviť priečinok na predvolené hodnoty systému",
- "Share expiration: " : "Vypršanie platnosti zdieľania:",
"Share Expiration" : "Vypršanie platnosti zdieľania",
"group" : "skupina",
"conversation" : "rozhovor",
@@ -259,12 +258,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "Nahraním súborov vyjadrujete súhlas s podmienkami služby.",
"View terms of service" : "Zobraziť podmienky používania",
"Terms of service" : "Všeobecné podmienky",
- "Upload files to {folder}" : "Nahrať súbory do {folder}",
- "Submit name" : "Odoslať meno",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} pre vás zdieľal adresár",
- "To upload files, you need to provide your name first." : "Pre nahranie súborov, musíte najprv zdať svoje meno.",
- "Name" : "Názov",
- "Enter your name" : "Zadajte svoje meno",
"Share with {userName}" : "Zdiľať s {userName}",
"Share with email {email}" : "Zdieľať s emailom {email}",
"Share with group" : "Zdieľať so skupinou",
@@ -313,16 +306,15 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo tímami v rámci vašej organizácie. Ak príjemca už má prístup k zdieľanej zložke, ale nemôže ju nájsť, môžete mu poslať interný odkaz na zdieľanie, aby k nemu mal jednoduchý prístup.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo organizáciami mimo vašej organizácie. Súbory a priečinky je možné zdieľať prostredníctvom verejných zdieľaných odkazov a e-mailových adries. Môžete tiež zdieľať s inými účtami Nextcloud hosťovanými v rôznych inštanciách pomocou ich federatívneho cloudového ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Akcie, ktoré nie sú súčasťou interných alebo externých akcií. Môžu to byť zdieľania z aplikácií alebo iných zdrojov.",
+ "Share with accounts and teams" : "Zdieľať s účtami a tímami",
"Unable to load the shares list" : "Nedarí sa načítať zoznam zdieľaní",
"Expires {relativetime}" : "Platnosť končí {relativetime}",
"this share just expired." : "platnosť tohto zdieľania práve skončila.",
"Shared with you by {owner}" : "Zdieľané s vami používateľom {owner}",
"Internal shares" : "Interné zdieľania",
"Internal shares explanation" : "Vysvetlenie interných zdieľaní",
- "Share with accounts and teams" : "Zdieľať s účtami a tímami",
"External shares" : "Externé zdieľania",
"External shares explanation" : "Vysvetlenie externých zdieľaní",
- "Email, federated cloud id" : "E-mail, id federovaného cloudu",
"Additional shares" : "Ďalšie zdieľania",
"Additional shares explanation" : "Vysvetlenie ďalších zdieľaní",
"Link to a file" : "Odkaz na súbor",
@@ -371,6 +363,7 @@ OC.L10N.register(
"List of unapproved shares." : "Zoznam neschválených zdieľaní.",
"No pending shares" : "Žiadne čakajúce zdieľania",
"Shares you have received but not approved will show up here" : "Tu sa zobrazia zdieľania, ktoré ste obdržali, ale nepotvrdili",
+ "Error deleting the share" : "Pri odstraňovaní zdieľania sa vyskytla chyba",
"Error updating the share: {errorMessage}" : "Chyba pri úprave zdieľania: {errorMessage}",
"Error updating the share" : "Pri aktualizácii zdieľania sa vyskytla chyba",
"File \"{path}\" has been unshared" : "Pre súbor \"{path}\" bolo zrušené zdieľanie.",
@@ -383,6 +376,8 @@ OC.L10N.register(
"Share note for recipient saved" : "Poznámka pre príjemcu zdieľania bola uložená",
"Share password saved" : "Heslo zdieľania bolo uložené",
"Share permissions saved" : "Práva zdieľania boli uložené",
+ "Upload files to {folder}" : "Nahrať súbory do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} pre vás zdieľal adresár",
"Shared by" : "Zdieľané od",
"Shared with" : "Sprístupnené používateľovi",
"Password created successfully" : "Heslo úspešne vytvorené.",
@@ -413,15 +408,17 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Nebol nájdený kompatibilný server na adrese {remote}",
"Invalid server URL" : "Neplatná URL servera",
"Failed to add the public link to your Nextcloud" : "Pridanie verejne dostupného odkazu do vášho Nextcloud zlyhalo",
- "Files" : "Súbory",
+ "You are not allowed to edit link shares that you don't own" : "Nemáte povolenie upravovať zdieľania odkazov, ktoré nevlastníte",
"Download all files" : "Stiahnuť všetky súbory",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"],
"Search for share recipients" : "Vyhľadanie ďalších účastníkov zdieľania",
"No recommendations. Start typing." : "Žiadne odporúčania. Píšte.",
- "Password field can't be empty" : "Pole hesla nemôže byť prázdne",
- "Allow download" : "Povoliť sťahovanie",
- "Share expire date saved" : "Dátum skončenia platnosti zdieľania bol uložený",
- "You are not allowed to edit link shares that you don't own" : "Nemáte povolenie upravovať zdieľania odkazov, ktoré nevlastníte",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"],
- "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"]
+ "To upload files, you need to provide your name first." : "Pre nahranie súborov, musíte najprv zdať svoje meno.",
+ "Enter your name" : "Zadajte svoje meno",
+ "Submit name" : "Odoslať meno",
+ "Name" : "Názov",
+ "Email, federated cloud id" : "E-mail, id federovaného cloudu",
+ "Filename must not be empty." : "Názov súboru nesmie byť prázdny."
},
"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json
index df7ecb75e7a..e735bd1c637 100644
--- a/apps/files_sharing/l10n/sk.json
+++ b/apps/files_sharing/l10n/sk.json
@@ -183,7 +183,6 @@
"Set default folder for accepted shares" : "Nastaviť predvolený priečinok pre prijaté zdieľania",
"Reset" : "Resetovať",
"Reset folder to system default" : "Obnoviť priečinok na predvolené hodnoty systému",
- "Share expiration: " : "Vypršanie platnosti zdieľania:",
"Share Expiration" : "Vypršanie platnosti zdieľania",
"group" : "skupina",
"conversation" : "rozhovor",
@@ -257,12 +256,6 @@
"By uploading files, you agree to the terms of service." : "Nahraním súborov vyjadrujete súhlas s podmienkami služby.",
"View terms of service" : "Zobraziť podmienky používania",
"Terms of service" : "Všeobecné podmienky",
- "Upload files to {folder}" : "Nahrať súbory do {folder}",
- "Submit name" : "Odoslať meno",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} pre vás zdieľal adresár",
- "To upload files, you need to provide your name first." : "Pre nahranie súborov, musíte najprv zdať svoje meno.",
- "Name" : "Názov",
- "Enter your name" : "Zadajte svoje meno",
"Share with {userName}" : "Zdiľať s {userName}",
"Share with email {email}" : "Zdieľať s emailom {email}",
"Share with group" : "Zdieľať so skupinou",
@@ -311,16 +304,15 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo tímami v rámci vašej organizácie. Ak príjemca už má prístup k zdieľanej zložke, ale nemôže ju nájsť, môžete mu poslať interný odkaz na zdieľanie, aby k nemu mal jednoduchý prístup.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Túto metódu použite na zdieľanie súborov s jednotlivcami alebo organizáciami mimo vašej organizácie. Súbory a priečinky je možné zdieľať prostredníctvom verejných zdieľaných odkazov a e-mailových adries. Môžete tiež zdieľať s inými účtami Nextcloud hosťovanými v rôznych inštanciách pomocou ich federatívneho cloudového ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Akcie, ktoré nie sú súčasťou interných alebo externých akcií. Môžu to byť zdieľania z aplikácií alebo iných zdrojov.",
+ "Share with accounts and teams" : "Zdieľať s účtami a tímami",
"Unable to load the shares list" : "Nedarí sa načítať zoznam zdieľaní",
"Expires {relativetime}" : "Platnosť končí {relativetime}",
"this share just expired." : "platnosť tohto zdieľania práve skončila.",
"Shared with you by {owner}" : "Zdieľané s vami používateľom {owner}",
"Internal shares" : "Interné zdieľania",
"Internal shares explanation" : "Vysvetlenie interných zdieľaní",
- "Share with accounts and teams" : "Zdieľať s účtami a tímami",
"External shares" : "Externé zdieľania",
"External shares explanation" : "Vysvetlenie externých zdieľaní",
- "Email, federated cloud id" : "E-mail, id federovaného cloudu",
"Additional shares" : "Ďalšie zdieľania",
"Additional shares explanation" : "Vysvetlenie ďalších zdieľaní",
"Link to a file" : "Odkaz na súbor",
@@ -369,6 +361,7 @@
"List of unapproved shares." : "Zoznam neschválených zdieľaní.",
"No pending shares" : "Žiadne čakajúce zdieľania",
"Shares you have received but not approved will show up here" : "Tu sa zobrazia zdieľania, ktoré ste obdržali, ale nepotvrdili",
+ "Error deleting the share" : "Pri odstraňovaní zdieľania sa vyskytla chyba",
"Error updating the share: {errorMessage}" : "Chyba pri úprave zdieľania: {errorMessage}",
"Error updating the share" : "Pri aktualizácii zdieľania sa vyskytla chyba",
"File \"{path}\" has been unshared" : "Pre súbor \"{path}\" bolo zrušené zdieľanie.",
@@ -381,6 +374,8 @@
"Share note for recipient saved" : "Poznámka pre príjemcu zdieľania bola uložená",
"Share password saved" : "Heslo zdieľania bolo uložené",
"Share permissions saved" : "Práva zdieľania boli uložené",
+ "Upload files to {folder}" : "Nahrať súbory do {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} pre vás zdieľal adresár",
"Shared by" : "Zdieľané od",
"Shared with" : "Sprístupnené používateľovi",
"Password created successfully" : "Heslo úspešne vytvorené.",
@@ -411,15 +406,17 @@
"No compatible server found at {remote}" : "Nebol nájdený kompatibilný server na adrese {remote}",
"Invalid server URL" : "Neplatná URL servera",
"Failed to add the public link to your Nextcloud" : "Pridanie verejne dostupného odkazu do vášho Nextcloud zlyhalo",
- "Files" : "Súbory",
+ "You are not allowed to edit link shares that you don't own" : "Nemáte povolenie upravovať zdieľania odkazov, ktoré nevlastníte",
"Download all files" : "Stiahnuť všetky súbory",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"],
"Search for share recipients" : "Vyhľadanie ďalších účastníkov zdieľania",
"No recommendations. Start typing." : "Žiadne odporúčania. Píšte.",
- "Password field can't be empty" : "Pole hesla nemôže byť prázdne",
- "Allow download" : "Povoliť sťahovanie",
- "Share expire date saved" : "Dátum skončenia platnosti zdieľania bol uložený",
- "You are not allowed to edit link shares that you don't own" : "Nemáte povolenie upravovať zdieľania odkazov, ktoré nevlastníte",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-mailová adriesa už bola pridaná","{count} e-mailové adriesy už boli pridané","{count} e-mailových adries už bolo pridaných","{count} e-mailových adries už bolo pridaných"],
- "_1 email address added_::_{count} email addresses added_" : ["1 pridaná e-mailová adresa","{count} pridané e-mailové adriesy","{count} pridaných e-mailových adries","{count} pridaných e-mailových adries"]
+ "To upload files, you need to provide your name first." : "Pre nahranie súborov, musíte najprv zdať svoje meno.",
+ "Enter your name" : "Zadajte svoje meno",
+ "Submit name" : "Odoslať meno",
+ "Name" : "Názov",
+ "Email, federated cloud id" : "E-mail, id federovaného cloudu",
+ "Filename must not be empty." : "Názov súboru nesmie byť prázdny."
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js
index 6d6b4b2d401..4927fca9f6b 100644
--- a/apps/files_sharing/l10n/sl.js
+++ b/apps/files_sharing/l10n/sl.js
@@ -191,8 +191,6 @@ OC.L10N.register(
"Note:" : "Opomba:",
"File drop" : "Poteg datotek v mapo",
"Terms of service" : "Pogoji uporabe storitve",
- "Name" : "Ime podpisnika",
- "Enter your name" : "Vpišite ime",
"Read" : "Branje",
"Create" : "Ustvari",
"Edit" : "Uredi",
@@ -217,7 +215,7 @@ OC.L10N.register(
"Toggle list of others with access to this directory" : "Preklopi seznam drugih z dostopom do te mape",
"Toggle list of others with access to this file" : "Preklopi seznam drugih z dostopom do te datoteke",
"Unable to fetch inherited shares" : "Ni mogoče pridobiti podedovanih mest souporabe",
- "Shares" : "‧ V Souporabi",
+ "Shares" : "V souporabi",
"Unable to load the shares list" : "Ni mogoče naložiti seznama predmetov v souporabi",
"Expires {relativetime}" : "Preteče {relativetime}",
"this share just expired." : "to mesto souporabe je ravnokar preteklo.",
@@ -238,6 +236,7 @@ OC.L10N.register(
"No deleted shares" : "Ni izbrisanih povezav za souporabo.",
"Pending shares" : "Predmeti za souporabo na čakanju",
"No pending shares" : "Ni nobenega predmeta za souporabo na čakanju",
+ "Error deleting the share" : " Napaka brisanja mesta souporabe",
"Error updating the share: {errorMessage}" : "Napaka pri posodabljanju mesta souporabe: {errorMessage}",
"Error updating the share" : "Napaka posodabljanja mesta souporabe",
"File \"{path}\" has been unshared" : "Souporaba datoteke »{path}« je odstranjena",
@@ -271,11 +270,12 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Skladnega strežnika na {remote} ni mogoče najti",
"Invalid server URL" : "Neveljaven naslov URL strežnika",
"Failed to add the public link to your Nextcloud" : "Dodajanje javne povezave v oblak je spodletelo.",
- "Files" : "Datoteke",
"Download all files" : "Prejmi vse datoteke",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} elektronski naslov je že dodan","{count} elektronska naslova sta že dodana","{count} elektronski naslovi so že dodani","{count} elektronskih naslovov je že dodanih"],
"Search for share recipients" : "Iskanje prejemnikov mesta souporabe",
"No recommendations. Start typing." : "Ni priporočil; začnite vpisovati",
- "Allow download" : "Dovoli prejem datotek",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count} elektronski naslov je že dodan","{count} elektronska naslova sta že dodana","{count} elektronski naslovi so že dodani","{count} elektronskih naslovov je že dodanih"]
+ "Enter your name" : "Vpišite ime",
+ "Name" : "Ime podpisnika",
+ "Filename must not be empty." : "Ime datoteke ne sme biti prazno."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json
index 409d903a2e8..9f7d5b5049b 100644
--- a/apps/files_sharing/l10n/sl.json
+++ b/apps/files_sharing/l10n/sl.json
@@ -189,8 +189,6 @@
"Note:" : "Opomba:",
"File drop" : "Poteg datotek v mapo",
"Terms of service" : "Pogoji uporabe storitve",
- "Name" : "Ime podpisnika",
- "Enter your name" : "Vpišite ime",
"Read" : "Branje",
"Create" : "Ustvari",
"Edit" : "Uredi",
@@ -215,7 +213,7 @@
"Toggle list of others with access to this directory" : "Preklopi seznam drugih z dostopom do te mape",
"Toggle list of others with access to this file" : "Preklopi seznam drugih z dostopom do te datoteke",
"Unable to fetch inherited shares" : "Ni mogoče pridobiti podedovanih mest souporabe",
- "Shares" : "‧ V Souporabi",
+ "Shares" : "V souporabi",
"Unable to load the shares list" : "Ni mogoče naložiti seznama predmetov v souporabi",
"Expires {relativetime}" : "Preteče {relativetime}",
"this share just expired." : "to mesto souporabe je ravnokar preteklo.",
@@ -236,6 +234,7 @@
"No deleted shares" : "Ni izbrisanih povezav za souporabo.",
"Pending shares" : "Predmeti za souporabo na čakanju",
"No pending shares" : "Ni nobenega predmeta za souporabo na čakanju",
+ "Error deleting the share" : " Napaka brisanja mesta souporabe",
"Error updating the share: {errorMessage}" : "Napaka pri posodabljanju mesta souporabe: {errorMessage}",
"Error updating the share" : "Napaka posodabljanja mesta souporabe",
"File \"{path}\" has been unshared" : "Souporaba datoteke »{path}« je odstranjena",
@@ -269,11 +268,12 @@
"No compatible server found at {remote}" : "Skladnega strežnika na {remote} ni mogoče najti",
"Invalid server URL" : "Neveljaven naslov URL strežnika",
"Failed to add the public link to your Nextcloud" : "Dodajanje javne povezave v oblak je spodletelo.",
- "Files" : "Datoteke",
"Download all files" : "Prejmi vse datoteke",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count} elektronski naslov je že dodan","{count} elektronska naslova sta že dodana","{count} elektronski naslovi so že dodani","{count} elektronskih naslovov je že dodanih"],
"Search for share recipients" : "Iskanje prejemnikov mesta souporabe",
"No recommendations. Start typing." : "Ni priporočil; začnite vpisovati",
- "Allow download" : "Dovoli prejem datotek",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count} elektronski naslov je že dodan","{count} elektronska naslova sta že dodana","{count} elektronski naslovi so že dodani","{count} elektronskih naslovov je že dodanih"]
+ "Enter your name" : "Vpišite ime",
+ "Name" : "Ime podpisnika",
+ "Filename must not be empty." : "Ime datoteke ne sme biti prazno."
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sq.js b/apps/files_sharing/l10n/sq.js
deleted file mode 100644
index c56e46415d3..00000000000
--- a/apps/files_sharing/l10n/sq.js
+++ /dev/null
@@ -1,144 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Shared with you" : "Të ndara me ju",
- "Nothing shared with you yet" : "Ende pa ndarë gjë me ju",
- "Files and folders others share with you will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që të jerët ndajnë me ju",
- "Shared with others" : "Të ndara me të tjerët",
- "Nothing shared yet" : "Ende pa ndarë gjë",
- "Files and folders you share will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që ndani me të tjerët",
- "Shared by link" : "Të ndara me lidhje",
- "No shared links" : "Pa lidhje ndarjesh",
- "Files and folders you share by link will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që ndani përmes lidhjesh",
- "Deleted shares" : "Fshi shpërndarjet",
- "Shares" : "Shpërndarje",
- "Restore" : "Rikthe",
- "error" : "gabim",
- "Download" : "Shkarko",
- "Delete" : "Delete",
- "You can upload into this folder" : "Mund të ngarkoni te kjo dosje",
- "Terms of service" : "Termat e shërbimit",
- "No compatible server found at {remote}" : "Asnjë server i pajtueshëm nuk është gjetur tek { }",
- "Invalid server URL" : "Server i pavlefshëm URL",
- "Failed to add the public link to your Nextcloud" : "Nuk arritët të shtoni ndërlidhjen publike tek Nextcloud juaj",
- "No expiration date set" : "Nuk është vendosur data e përfundimit",
- "Shared by" : "Ndarë nga",
- "File shares" : "Ndarja e skedarëve",
- "Downloaded via public link" : "Shkarkuar nga një link publik",
- "Downloaded by {email}" : "Shkarkuar nga {email}",
- "{file} downloaded via public link" : "{file} shkarkuar përmes një lidhjeje publike",
- "{email} downloaded {file}" : "{email} shkarkoi {file}",
- "Shared with group {group}" : "U nda me grupin {group}",
- "Removed share for group {group}" : "Hoqi ndarjen për grupin {group}",
- "{actor} shared with group {group}" : "{actor} u nda me grupin {group}",
- "{actor} removed share for group {group}" : "{actor} hoqi ndarjen për grupin {group}",
- "You shared {file} with group {group}" : "Ndatë {file} me grupin {group}",
- "You removed group {group} from {file}" : "Hoqët grupin {group} nga {file}",
- "{actor} shared {file} with group {group}" : "{actor} ndau {file} me grupin {group}",
- "{actor} removed group {group} from {file}" : "{actor} hoqi grupin {group} nga {file}",
- "Shared as public link" : "U nda si një lidhje publike",
- "Removed public link" : "Hoqi lidhje publike",
- "Public link expired" : "Lidhja publike skadoi",
- "{actor} shared as public link" : "{actor} u nda si një lidhje publike",
- "{actor} removed public link" : "{actor} hoqi lidhje publike",
- "Public link of {actor} expired" : "Lidhja publike e {actor} skadoi",
- "You shared {file} as public link" : "Ndatë {file} si një lidhje publike",
- "You removed public link for {file}" : "Hoqët lidhje publike për {file}",
- "Public link expired for {file}" : "Lidhja publike skadoi për {file}",
- "{actor} shared {file} as public link" : "{actor} u nda {file} si një lidhje publike",
- "{actor} removed public link for {file}" : "{actor} hoqi lidhje publike për {file}",
- "Public link of {actor} for {file} expired" : "Lidhja publike e {actor} për {file} ka skaduar",
- "{user} accepted the remote share" : "{user} pranoi ndarjen e largët",
- "{user} declined the remote share" : "{user} hodhi tej ndarjen e largët",
- "You received a new remote share {file} from {user}" : "Morët një ndarje të largët {file} nga {user}",
- "{user} accepted the remote share of {file}" : "{user} pranoi ndarjen e largët të {file}",
- "{user} declined the remote share of {file}" : "{user} hodhi tej ndarjen e largët të {file}",
- "{user} unshared {file} from you" : "{user} nuk ndau {file} nga ju",
- "Shared with {user}" : "Ndarë me {user}",
- "Removed share for {user}" : "Hoqi ndarjen për {user}",
- "{actor} shared with {user}" : "{aktori} ndau me {përdoruesin}",
- "{actor} removed share for {user}" : "{actor} hoqi ndarjen për {user}",
- "Shared by {actor}" : "U nda nga {actor}",
- "{actor} removed share" : "{actor} hoqi ndarjen",
- "You shared {file} with {user}" : "Ndatë {file} me {user}",
- "You removed {user} from {file}" : "Hoqët {user} nga {file}",
- "{actor} shared {file} with {user}" : "{aktori} ndau {skedarë} me {përdoruesin}",
- "{actor} removed {user} from {file}" : "{actor} hoqi {user} nga {file}",
- "{actor} shared {file} with you" : "{actor} ndau {skedarë} me ju",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Një skedar ose dosje e ndarë nga posta ose lidhja publike ishte <strong> shkarkuar</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Një kartelë ose dosje u nda prej një <strong>shërbyesi tjetër</strong>",
- "Files" : "Skedarët",
- "A file or folder has been <strong>shared</strong>" : "U <strong>nda me të tjerë</strong> një kartelë ose dosje",
- "Could not delete share" : "Ndarja s’u fshi dot",
- "Please specify a file or folder path" : "Ju lutemi, tregoni një shteg kartele ose dosjeje",
- "Could not create share" : "Ndarja nuk u krijua dot",
- "Please specify a valid user" : "Ju lutemi, tregoni një përdorues të vlefshëm",
- "Group sharing is disabled by the administrator" : "Ndarja në grup është çaktivizuar nga përgjegjësi",
- "Please specify a valid group" : "Ju lutemi, tregoni një grup të vlefshëm",
- "Public link sharing is disabled by the administrator" : "Ndarja e lidhjeve publike është çaktivizuar nga përgjegjësi",
- "Public upload disabled by the administrator" : "Ngarkimi publik është çaktivizuar nga përgjegjësi",
- "Public upload is only possible for publicly shared folders" : "Ngarkimi publik është i mundshëm vetëm për dosje të ndara publikisht",
- "Invalid date, date format must be YYYY-MM-DD" : "Datë e pavlefshme, formati i datës duhet të jetë VVVV-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "Nuk mund të shpërndani në një rreth nëse aplikacioni nuk është i aktivizuar",
- "Please specify a valid circle" : "Ju lutem specifikoni një rreth i vlefshëm",
- "Unknown share type" : "Lloj i panjohur ndarjesh",
- "Not a directory" : "S’është drejtori",
- "Could not lock path" : "S’u kyç dot shtegu",
- "Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ",
- "shared by %s" : "ndarë nga %s",
- "Direct link" : "Lidhje e drejtpërdrejtë",
- "Share API is disabled" : "API i ndarjeve është çaktivizuar",
- "File sharing" : "Shpërndarja e skedarëve",
- "Accept" : "Prano",
- "Sharing" : "Ndarje",
- "Reset" : "Rivendos",
- "Unknown error" : "Gabim i panjohur",
- "Allow editing" : "Lejo redaktimin",
- "Read only" : "Vetëm i lexueshëm",
- "Allow upload and editing" : "Lejo ngarkim dhe editim",
- "File drop (upload only)" : "Lësho skedar (vetëm ngarkim)",
- "Read" : "Lexoni",
- "Upload" : "Ngarkoni",
- "Edit" : "Përpuno",
- "Allow resharing" : "Lejo rindarje",
- "Set expiration date" : "Caktoni datë skadimi",
- "Note to recipient" : "Shënim për marrësin",
- "Unshare" : "Hiqe ndarjen",
- "group" : "grup",
- "conversation" : "bisedë",
- "remote" : "i largët",
- "guest" : "vizitor",
- "Only works for users with access to this folder" : "Punon vetëm për përdoruesit që kanë qasje në këtë dosje",
- "Link copied" : "Linku u kopjua",
- "Password protection" : "Password protection",
- "Enter a password" : "Fusni një fjalëkalim",
- "Cancel" : "Anullo",
- "Hide download" : "Fshih shkarkimin",
- "Password protect" : "Mbroje me fjalëkalim",
- "Share link" : "Share link",
- "Resharing is not allowed" : "Nuk lejohet rishperndarja",
- "Guest" : "I ftuar",
- "Group" : "Grup",
- "Email" : "Emaili",
- "Circle" : "Rreth",
- "Shared with you by {owner}" : "Ndarë me ju nga {owner}",
- "Shared" : "Ndarë",
- "Share" : "shpërndaj",
- "Shared with" : "Ndarë me",
- "Shared with you and the group {group} by {owner}" : "Ndarë me ju dhe me grupin {group} nga {owner}",
- "No entries found in this folder" : "S’u gjetën zëra në këtë dosje",
- "Name" : "Emër",
- "Share time" : "Kohë ndarjeje",
- "Expiration date" : "Datë skadimi",
- "Reasons might be:" : "Arsyet mund të jenë:",
- "the item was removed" : "objekti është hequr",
- "the link expired" : "lidhja ka skaduar",
- "sharing is disabled" : "ndarjet janë çaktivizuar",
- "For more info, please ask the person who sent this link." : "Për më shumë të dhëna, ju lutemi, pyetni personin që ju dërgoi këtë lidhje.",
- "Upload files to %s" : "Ngrako skedarët tek %s",
- "Note" : "Shënim",
- "Select or drop files" : "Përzgjidh ose hiq skedarët",
- "Uploaded files:" : "Skedarët e ngarkuar:",
- "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/sq.json b/apps/files_sharing/l10n/sq.json
deleted file mode 100644
index 4dda374ab87..00000000000
--- a/apps/files_sharing/l10n/sq.json
+++ /dev/null
@@ -1,142 +0,0 @@
-{ "translations": {
- "Shared with you" : "Të ndara me ju",
- "Nothing shared with you yet" : "Ende pa ndarë gjë me ju",
- "Files and folders others share with you will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që të jerët ndajnë me ju",
- "Shared with others" : "Të ndara me të tjerët",
- "Nothing shared yet" : "Ende pa ndarë gjë",
- "Files and folders you share will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që ndani me të tjerët",
- "Shared by link" : "Të ndara me lidhje",
- "No shared links" : "Pa lidhje ndarjesh",
- "Files and folders you share by link will show up here" : "Këtu do të shfaqen kartelat dhe dosjet që ndani përmes lidhjesh",
- "Deleted shares" : "Fshi shpërndarjet",
- "Shares" : "Shpërndarje",
- "Restore" : "Rikthe",
- "error" : "gabim",
- "Download" : "Shkarko",
- "Delete" : "Delete",
- "You can upload into this folder" : "Mund të ngarkoni te kjo dosje",
- "Terms of service" : "Termat e shërbimit",
- "No compatible server found at {remote}" : "Asnjë server i pajtueshëm nuk është gjetur tek { }",
- "Invalid server URL" : "Server i pavlefshëm URL",
- "Failed to add the public link to your Nextcloud" : "Nuk arritët të shtoni ndërlidhjen publike tek Nextcloud juaj",
- "No expiration date set" : "Nuk është vendosur data e përfundimit",
- "Shared by" : "Ndarë nga",
- "File shares" : "Ndarja e skedarëve",
- "Downloaded via public link" : "Shkarkuar nga një link publik",
- "Downloaded by {email}" : "Shkarkuar nga {email}",
- "{file} downloaded via public link" : "{file} shkarkuar përmes një lidhjeje publike",
- "{email} downloaded {file}" : "{email} shkarkoi {file}",
- "Shared with group {group}" : "U nda me grupin {group}",
- "Removed share for group {group}" : "Hoqi ndarjen për grupin {group}",
- "{actor} shared with group {group}" : "{actor} u nda me grupin {group}",
- "{actor} removed share for group {group}" : "{actor} hoqi ndarjen për grupin {group}",
- "You shared {file} with group {group}" : "Ndatë {file} me grupin {group}",
- "You removed group {group} from {file}" : "Hoqët grupin {group} nga {file}",
- "{actor} shared {file} with group {group}" : "{actor} ndau {file} me grupin {group}",
- "{actor} removed group {group} from {file}" : "{actor} hoqi grupin {group} nga {file}",
- "Shared as public link" : "U nda si një lidhje publike",
- "Removed public link" : "Hoqi lidhje publike",
- "Public link expired" : "Lidhja publike skadoi",
- "{actor} shared as public link" : "{actor} u nda si një lidhje publike",
- "{actor} removed public link" : "{actor} hoqi lidhje publike",
- "Public link of {actor} expired" : "Lidhja publike e {actor} skadoi",
- "You shared {file} as public link" : "Ndatë {file} si një lidhje publike",
- "You removed public link for {file}" : "Hoqët lidhje publike për {file}",
- "Public link expired for {file}" : "Lidhja publike skadoi për {file}",
- "{actor} shared {file} as public link" : "{actor} u nda {file} si një lidhje publike",
- "{actor} removed public link for {file}" : "{actor} hoqi lidhje publike për {file}",
- "Public link of {actor} for {file} expired" : "Lidhja publike e {actor} për {file} ka skaduar",
- "{user} accepted the remote share" : "{user} pranoi ndarjen e largët",
- "{user} declined the remote share" : "{user} hodhi tej ndarjen e largët",
- "You received a new remote share {file} from {user}" : "Morët një ndarje të largët {file} nga {user}",
- "{user} accepted the remote share of {file}" : "{user} pranoi ndarjen e largët të {file}",
- "{user} declined the remote share of {file}" : "{user} hodhi tej ndarjen e largët të {file}",
- "{user} unshared {file} from you" : "{user} nuk ndau {file} nga ju",
- "Shared with {user}" : "Ndarë me {user}",
- "Removed share for {user}" : "Hoqi ndarjen për {user}",
- "{actor} shared with {user}" : "{aktori} ndau me {përdoruesin}",
- "{actor} removed share for {user}" : "{actor} hoqi ndarjen për {user}",
- "Shared by {actor}" : "U nda nga {actor}",
- "{actor} removed share" : "{actor} hoqi ndarjen",
- "You shared {file} with {user}" : "Ndatë {file} me {user}",
- "You removed {user} from {file}" : "Hoqët {user} nga {file}",
- "{actor} shared {file} with {user}" : "{aktori} ndau {skedarë} me {përdoruesin}",
- "{actor} removed {user} from {file}" : "{actor} hoqi {user} nga {file}",
- "{actor} shared {file} with you" : "{actor} ndau {skedarë} me ju",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Një skedar ose dosje e ndarë nga posta ose lidhja publike ishte <strong> shkarkuar</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Një kartelë ose dosje u nda prej një <strong>shërbyesi tjetër</strong>",
- "Files" : "Skedarët",
- "A file or folder has been <strong>shared</strong>" : "U <strong>nda me të tjerë</strong> një kartelë ose dosje",
- "Could not delete share" : "Ndarja s’u fshi dot",
- "Please specify a file or folder path" : "Ju lutemi, tregoni një shteg kartele ose dosjeje",
- "Could not create share" : "Ndarja nuk u krijua dot",
- "Please specify a valid user" : "Ju lutemi, tregoni një përdorues të vlefshëm",
- "Group sharing is disabled by the administrator" : "Ndarja në grup është çaktivizuar nga përgjegjësi",
- "Please specify a valid group" : "Ju lutemi, tregoni një grup të vlefshëm",
- "Public link sharing is disabled by the administrator" : "Ndarja e lidhjeve publike është çaktivizuar nga përgjegjësi",
- "Public upload disabled by the administrator" : "Ngarkimi publik është çaktivizuar nga përgjegjësi",
- "Public upload is only possible for publicly shared folders" : "Ngarkimi publik është i mundshëm vetëm për dosje të ndara publikisht",
- "Invalid date, date format must be YYYY-MM-DD" : "Datë e pavlefshme, formati i datës duhet të jetë VVVV-MM-DD",
- "You cannot share to a Circle if the app is not enabled" : "Nuk mund të shpërndani në një rreth nëse aplikacioni nuk është i aktivizuar",
- "Please specify a valid circle" : "Ju lutem specifikoni një rreth i vlefshëm",
- "Unknown share type" : "Lloj i panjohur ndarjesh",
- "Not a directory" : "S’është drejtori",
- "Could not lock path" : "S’u kyç dot shtegu",
- "Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ",
- "shared by %s" : "ndarë nga %s",
- "Direct link" : "Lidhje e drejtpërdrejtë",
- "Share API is disabled" : "API i ndarjeve është çaktivizuar",
- "File sharing" : "Shpërndarja e skedarëve",
- "Accept" : "Prano",
- "Sharing" : "Ndarje",
- "Reset" : "Rivendos",
- "Unknown error" : "Gabim i panjohur",
- "Allow editing" : "Lejo redaktimin",
- "Read only" : "Vetëm i lexueshëm",
- "Allow upload and editing" : "Lejo ngarkim dhe editim",
- "File drop (upload only)" : "Lësho skedar (vetëm ngarkim)",
- "Read" : "Lexoni",
- "Upload" : "Ngarkoni",
- "Edit" : "Përpuno",
- "Allow resharing" : "Lejo rindarje",
- "Set expiration date" : "Caktoni datë skadimi",
- "Note to recipient" : "Shënim për marrësin",
- "Unshare" : "Hiqe ndarjen",
- "group" : "grup",
- "conversation" : "bisedë",
- "remote" : "i largët",
- "guest" : "vizitor",
- "Only works for users with access to this folder" : "Punon vetëm për përdoruesit që kanë qasje në këtë dosje",
- "Link copied" : "Linku u kopjua",
- "Password protection" : "Password protection",
- "Enter a password" : "Fusni një fjalëkalim",
- "Cancel" : "Anullo",
- "Hide download" : "Fshih shkarkimin",
- "Password protect" : "Mbroje me fjalëkalim",
- "Share link" : "Share link",
- "Resharing is not allowed" : "Nuk lejohet rishperndarja",
- "Guest" : "I ftuar",
- "Group" : "Grup",
- "Email" : "Emaili",
- "Circle" : "Rreth",
- "Shared with you by {owner}" : "Ndarë me ju nga {owner}",
- "Shared" : "Ndarë",
- "Share" : "shpërndaj",
- "Shared with" : "Ndarë me",
- "Shared with you and the group {group} by {owner}" : "Ndarë me ju dhe me grupin {group} nga {owner}",
- "No entries found in this folder" : "S’u gjetën zëra në këtë dosje",
- "Name" : "Emër",
- "Share time" : "Kohë ndarjeje",
- "Expiration date" : "Datë skadimi",
- "Reasons might be:" : "Arsyet mund të jenë:",
- "the item was removed" : "objekti është hequr",
- "the link expired" : "lidhja ka skaduar",
- "sharing is disabled" : "ndarjet janë çaktivizuar",
- "For more info, please ask the person who sent this link." : "Për më shumë të dhëna, ju lutemi, pyetni personin që ju dërgoi këtë lidhje.",
- "Upload files to %s" : "Ngrako skedarët tek %s",
- "Note" : "Shënim",
- "Select or drop files" : "Përzgjidh ose hiq skedarët",
- "Uploaded files:" : "Skedarët e ngarkuar:",
- "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js
index 3fed266334e..b97ed376dda 100644
--- a/apps/files_sharing/l10n/sr.js
+++ b/apps/files_sharing/l10n/sr.js
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Подесите подразумевани фолдер за прихваћена дељења",
"Reset" : "Ресетуј",
"Reset folder to system default" : "Vratite fasciklu na podrazumevane vrednosti sistema",
- "Share expiration: " : "Истек дељења:",
+ "Share expiration: {date}" : "Дељење истиче: {date} ",
"Share Expiration" : "Истицање дељења",
"group" : "група",
"conversation" : "разговор",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "Место за упуштање фајлова",
"Upload files to {foldername}." : "Отпреми фајлове у {foldername}.",
"By uploading files, you agree to the terms of service." : "Отпремањем фајлова, слажете се са условима коришћења.",
+ "Successfully uploaded files" : "Фајлови су успешно отпремљени",
"View terms of service" : "Прикажи услове коришћења",
"Terms of service" : "Услови коришћења",
- "Upload files to {folder}" : "Отпреми фајлове у {folder}",
- "Submit name" : "Поднеси име",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} је са вама поделио фолдер.",
- "To upload files, you need to provide your name first." : "Да бисте могли да отпремите фајлове, најпре наведите своје име.",
- "Name" : "Име",
- "Enter your name" : "Унесите Ваше име",
"Share with {userName}" : "Подели са {userName}",
"Share with email {email}" : "Подели и-мејлом {email}",
"Share with group" : "Подели са групом",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Употребите ову методу да фајлове делите да појединцима или тимовима унутар своје организације. Ако прималац већ има приступ дељењу, али не може да га лоцира, можете му послати интерни линк дељења тако да може лако да му приступи.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Употребите ову методу да фајлове делите са појединцима или организацијама ван своје организације. Фајлови и фолдери могу да се деле путем јавних линкова дељења и и-мејл адресама. Такође можете да делите осталим Nextcloud налозима који се хостују на другим инстанцама користећи њихов ID здруженог облака.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Дељења која нису део интерних или спољних дељења. Ово могу бити дељења из апликација или осталих извора.",
+ "Share with accounts, teams, federated cloud IDs" : "Дели са налозима, тимовима, ID-јевима здруженог облака",
+ "Share with accounts and teams" : "Дељење са налозима и тимовима",
+ "Federated cloud ID" : "ИД Здруженог облака",
+ "Email, federated cloud ID" : "И-мејл, ID здруженог облака",
"Unable to load the shares list" : "Неуспело учитавање листе дељења",
"Expires {relativetime}" : "Истиче {relativetime}",
"this share just expired." : "ово дељење је управо истекло.",
"Shared with you by {owner}" : "{owner} је поделио са Вама",
"Internal shares" : "Интерна дељења",
"Internal shares explanation" : "Објашњење интерних дељења",
- "Share with accounts and teams" : "Дељење са налозима и тимовима",
"External shares" : "Спољна дељења",
"External shares explanation" : "Објашњење спољних дељења",
- "Email, federated cloud id" : "И-мејл, ID здруженог облака",
"Additional shares" : "Додатна дељења",
"Additional shares explanation" : "Објашњење додатних дељења",
"Link to a file" : "Веза ка фајлу",
@@ -371,6 +368,7 @@ OC.L10N.register(
"List of unapproved shares." : "Листа дељења која нису одобрена.",
"No pending shares" : "Нема дељења на чекању",
"Shares you have received but not approved will show up here" : "Овде ће се појавити дељења која сте прилмили, али нисте одобрили",
+ "Error deleting the share" : "Грешка при брисању дељења",
"Error updating the share: {errorMessage}" : "Greška pri ažuriranju deljenja: {errorMessage}",
"Error updating the share" : "Грешка при ажурирању дељења",
"File \"{path}\" has been unshared" : "Фајл „{path}” се више не дели",
@@ -383,6 +381,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Сачувана је напомена за примаоца дељења",
"Share password saved" : "Сачувана је лозинка дељења",
"Share permissions saved" : "Сачуване су дозволе дељења",
+ "To upload files to {folder}, you need to provide your name first." : "Да бисте могли да отпремите фајлове у фолдер {folder}, најпре наведите своје име.",
+ "Upload files to {folder}" : "Отпреми фајлове у {folder}",
+ "Please confirm your name to upload files to {folder}" : "Потврдите своје име да бисте отпремили фајлове у {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} је са вама поделио фолдер.",
+ "Names must not be empty." : "Имена не смеју остати празна.",
+ "Names must not start with a dot." : "Имена не смеју да се почну тачком.",
+ "\"{char}\" is not allowed inside a name." : "„{char}” није дозвољен карактер у имену.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}” је резервисано име и не сме се користити.",
+ "\"{extension}\" is not an allowed name." : "„{extension}” није дозвољено име.",
+ "Names must not end with \"{extension}\"." : "Имена не смеју да се завршавају са „{extension}”.",
+ "Invalid name." : "Неисправно име.",
"Shared by" : "Поделио",
"Shared with" : "Подељено са",
"Password created successfully" : "Лозинка је успешно креирана",
@@ -413,15 +422,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Нема компатибилног сервера на {remote}",
"Invalid server URL" : "Неисправна адреса сервера",
"Failed to add the public link to your Nextcloud" : "Неуспело додавање јавне везе ка Вашем Некстклауду",
- "Files" : "Фајлови",
+ "You are not allowed to edit link shares that you don't own" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво",
"Download all files" : "Преузми све фајлове",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"],
+ "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"],
"Search for share recipients" : "Претрага прималаца дељења",
"No recommendations. Start typing." : "Нема препорука. Започните куцање.",
- "Password field can't be empty" : "Поље лозинке не може да буде празно",
- "Allow download" : "Дозволи преузимање",
- "Share expire date saved" : "Сачуван је датум истека дељења",
- "You are not allowed to edit link shares that you don't own" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"],
- "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"]
+ "To upload files, you need to provide your name first." : "Да бисте могли да отпремите фајлове, најпре наведите своје име.",
+ "Enter your name" : "Унесите Ваше име",
+ "Submit name" : "Поднеси име",
+ "Name" : "Име",
+ "Share with accounts, teams, federated cloud id" : "Дели са налозима, тимовима, id здруженог облака",
+ "Email, federated cloud id" : "И-мејл, ID здруженог облака",
+ "Filename must not be empty." : "Назив фајла не може бити празан."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json
index c74220d4377..9cd894b43d5 100644
--- a/apps/files_sharing/l10n/sr.json
+++ b/apps/files_sharing/l10n/sr.json
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "Подесите подразумевани фолдер за прихваћена дељења",
"Reset" : "Ресетуј",
"Reset folder to system default" : "Vratite fasciklu na podrazumevane vrednosti sistema",
- "Share expiration: " : "Истек дељења:",
+ "Share expiration: {date}" : "Дељење истиче: {date} ",
"Share Expiration" : "Истицање дељења",
"group" : "група",
"conversation" : "разговор",
@@ -255,14 +255,9 @@
"File drop" : "Место за упуштање фајлова",
"Upload files to {foldername}." : "Отпреми фајлове у {foldername}.",
"By uploading files, you agree to the terms of service." : "Отпремањем фајлова, слажете се са условима коришћења.",
+ "Successfully uploaded files" : "Фајлови су успешно отпремљени",
"View terms of service" : "Прикажи услове коришћења",
"Terms of service" : "Услови коришћења",
- "Upload files to {folder}" : "Отпреми фајлове у {folder}",
- "Submit name" : "Поднеси име",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} је са вама поделио фолдер.",
- "To upload files, you need to provide your name first." : "Да бисте могли да отпремите фајлове, најпре наведите своје име.",
- "Name" : "Име",
- "Enter your name" : "Унесите Ваше име",
"Share with {userName}" : "Подели са {userName}",
"Share with email {email}" : "Подели и-мејлом {email}",
"Share with group" : "Подели са групом",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Употребите ову методу да фајлове делите да појединцима или тимовима унутар своје организације. Ако прималац већ има приступ дељењу, али не може да га лоцира, можете му послати интерни линк дељења тако да може лако да му приступи.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Употребите ову методу да фајлове делите са појединцима или организацијама ван своје организације. Фајлови и фолдери могу да се деле путем јавних линкова дељења и и-мејл адресама. Такође можете да делите осталим Nextcloud налозима који се хостују на другим инстанцама користећи њихов ID здруженог облака.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Дељења која нису део интерних или спољних дељења. Ово могу бити дељења из апликација или осталих извора.",
+ "Share with accounts, teams, federated cloud IDs" : "Дели са налозима, тимовима, ID-јевима здруженог облака",
+ "Share with accounts and teams" : "Дељење са налозима и тимовима",
+ "Federated cloud ID" : "ИД Здруженог облака",
+ "Email, federated cloud ID" : "И-мејл, ID здруженог облака",
"Unable to load the shares list" : "Неуспело учитавање листе дељења",
"Expires {relativetime}" : "Истиче {relativetime}",
"this share just expired." : "ово дељење је управо истекло.",
"Shared with you by {owner}" : "{owner} је поделио са Вама",
"Internal shares" : "Интерна дељења",
"Internal shares explanation" : "Објашњење интерних дељења",
- "Share with accounts and teams" : "Дељење са налозима и тимовима",
"External shares" : "Спољна дељења",
"External shares explanation" : "Објашњење спољних дељења",
- "Email, federated cloud id" : "И-мејл, ID здруженог облака",
"Additional shares" : "Додатна дељења",
"Additional shares explanation" : "Објашњење додатних дељења",
"Link to a file" : "Веза ка фајлу",
@@ -369,6 +366,7 @@
"List of unapproved shares." : "Листа дељења која нису одобрена.",
"No pending shares" : "Нема дељења на чекању",
"Shares you have received but not approved will show up here" : "Овде ће се појавити дељења која сте прилмили, али нисте одобрили",
+ "Error deleting the share" : "Грешка при брисању дељења",
"Error updating the share: {errorMessage}" : "Greška pri ažuriranju deljenja: {errorMessage}",
"Error updating the share" : "Грешка при ажурирању дељења",
"File \"{path}\" has been unshared" : "Фајл „{path}” се више не дели",
@@ -381,6 +379,17 @@
"Share note for recipient saved" : "Сачувана је напомена за примаоца дељења",
"Share password saved" : "Сачувана је лозинка дељења",
"Share permissions saved" : "Сачуване су дозволе дељења",
+ "To upload files to {folder}, you need to provide your name first." : "Да бисте могли да отпремите фајлове у фолдер {folder}, најпре наведите своје име.",
+ "Upload files to {folder}" : "Отпреми фајлове у {folder}",
+ "Please confirm your name to upload files to {folder}" : "Потврдите своје име да бисте отпремили фајлове у {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} је са вама поделио фолдер.",
+ "Names must not be empty." : "Имена не смеју остати празна.",
+ "Names must not start with a dot." : "Имена не смеју да се почну тачком.",
+ "\"{char}\" is not allowed inside a name." : "„{char}” није дозвољен карактер у имену.",
+ "\"{segment}\" is a reserved name and not allowed." : "„{segment}” је резервисано име и не сме се користити.",
+ "\"{extension}\" is not an allowed name." : "„{extension}” није дозвољено име.",
+ "Names must not end with \"{extension}\"." : "Имена не смеју да се завршавају са „{extension}”.",
+ "Invalid name." : "Неисправно име.",
"Shared by" : "Поделио",
"Shared with" : "Подељено са",
"Password created successfully" : "Лозинка је успешно креирана",
@@ -411,15 +420,18 @@
"No compatible server found at {remote}" : "Нема компатибилног сервера на {remote}",
"Invalid server URL" : "Неисправна адреса сервера",
"Failed to add the public link to your Nextcloud" : "Неуспело додавање јавне везе ка Вашем Некстклауду",
- "Files" : "Фајлови",
+ "You are not allowed to edit link shares that you don't own" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво",
"Download all files" : "Преузми све фајлове",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"],
+ "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"],
"Search for share recipients" : "Претрага прималаца дељења",
"No recommendations. Start typing." : "Нема препорука. Започните куцање.",
- "Password field can't be empty" : "Поље лозинке не може да буде празно",
- "Allow download" : "Дозволи преузимање",
- "Share expire date saved" : "Сачуван је датум истека дељења",
- "You are not allowed to edit link shares that you don't own" : "Није вам дозвољено да уређујете дељења линком која нису ваше власништво",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 и-мејл адреса је већ додата","{count} и-мејл адресе су већ додате","{count} и-мејл адреса је већ додато"],
- "_1 email address added_::_{count} email addresses added_" : ["Додата је 1 и-мејл адреса","Додате су {count} и-мејл адресе","Додато је {count} и-мејл адреса"]
+ "To upload files, you need to provide your name first." : "Да бисте могли да отпремите фајлове, најпре наведите своје име.",
+ "Enter your name" : "Унесите Ваше име",
+ "Submit name" : "Поднеси име",
+ "Name" : "Име",
+ "Share with accounts, teams, federated cloud id" : "Дели са налозима, тимовима, id здруженог облака",
+ "Email, federated cloud id" : "И-мејл, ID здруженог облака",
+ "Filename must not be empty." : "Назив фајла не може бити празан."
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sr@latin.js b/apps/files_sharing/l10n/sr@latin.js
deleted file mode 100644
index e044946e117..00000000000
--- a/apps/files_sharing/l10n/sr@latin.js
+++ /dev/null
@@ -1,56 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Server to server sharing is not enabled on this server" : "Deljenje od servera do servera nije omogućeno na ovom serveru.",
- "The mountpoint name contains invalid characters." : "Ime tačke za montiranje sadrži neispravne karaktere.",
- "Invalid or untrusted SSL certificate" : "Nevažeći SSL sertifikat ili SSL sertifikat koji nije od poverenja.",
- "Couldn't add remote share" : "Nemoguće dodavanje udaljenog deljenog direktorijuma",
- "Shared with you" : "Deljeno sa Vama",
- "Shared with others" : "Deljeno sa ostalima",
- "Shared by link" : "Deljeno pomoću prečice",
- "Nothing shared with you yet" : "Još ništa nije deljeno sa Vama",
- "Files and folders others share with you will show up here" : "Fajlovi i direktorijumi koji drugi dele sa Vama će se pojaviti ovde",
- "Nothing shared yet" : "Još ništa nije deljeno",
- "Files and folders you share will show up here" : "Fajlovi i direktorijumi koje vi delite će se pojaviti ovde",
- "No shared links" : "Nema deljenih prečica",
- "Files and folders you share by link will show up here" : "Fajlovi i direktorijumi koje delite putem prečice će se pojaviti ovde",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Da li želite da dodate udaljeni deljeni resurs {name} od {owner}@{remote}?",
- "Remote share" : "Udaljeni deljeni resurs",
- "Remote share password" : "Lozinka za udaljeni deljeni resurs",
- "Cancel" : "Otkaži",
- "Add remote share" : "Dodaj udaljeni deljeni resurs",
- "No ownCloud installation (7 or higher) found at {remote}" : "Nije pronađena ownCloud instalacija (7 ili noviji) na {remote}",
- "Invalid ownCloud url" : "Neispravan ownCloud url",
- "Shared by" : "Deljeno od strane",
- "A file or folder has been <strong>shared</strong>" : "Fijl ili direktorijum je <strong>podeljen</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Fajl ili direktorijum je deljen sa <strong>drugog servera</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Javni deljeni fajl ili direktorijum je <strong>preuzet</strong>",
- "You received a new remote share from %s" : "Primili ste novi udaljeni deljeni resurs od %s",
- "%1$s accepted remote share %2$s" : "%1$s je prihvatio udaljeni deljeni resurs %2$s",
- "%1$s declined remote share %2$s" : "%1$s je odbio %2$s",
- "%1$s unshared %2$s from you" : "%1$s je prekinuo deljenje %2$s sa Vama",
- "Public shared folder %1$s was downloaded" : "Javni deljeni direktorijum %1$s je preuzet",
- "Public shared file %1$s was downloaded" : "Javni deljeni fajl %1$s je preuzet",
- "You shared %1$s with %2$s" : "Delili ste %1$s sa %2$s",
- "You shared %1$s with group %2$s" : "Delili ste %1$s sa grupom %2$s",
- "You shared %1$s via link" : "Delili ste %1$s pomoću prečice",
- "%2$s shared %1$s with you" : "%2$s je delio %1$s sa Vama",
- "Shares" : "Deljenja",
- "This share is password-protected" : "Ovaj deljeni resurs je zaštićen lozinkom",
- "The password is wrong. Try again." : "Lozinka je netačna. Pokušajte ponovo.",
- "Password" : "Lozinka",
- "No entries found in this folder" : "Nema unosa u ovom direktorijumu",
- "Name" : "Ime",
- "Share time" : "Vreme deljenja",
- "Sorry, this link doesn’t seem to work anymore." : "Žao nam je, ali ova prečica više ne radi.",
- "Reasons might be:" : "Razlozi mogu biti:",
- "the item was removed" : "stavka je uklonjena",
- "the link expired" : "prečica je istekla",
- "sharing is disabled" : "deljenje je onemogućeno",
- "For more info, please ask the person who sent this link." : "Za više informacija, molimo Vas da se obratite osobi koja je poslala prečicu.",
- "Add to your ownCloud" : "Dodaj na svoj ownCloud",
- "Download" : "Preuzmi",
- "Download %s" : "Preuzmi %s",
- "Direct link" : "Direktna prečica"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_sharing/l10n/sr@latin.json b/apps/files_sharing/l10n/sr@latin.json
deleted file mode 100644
index f4942a0dfa9..00000000000
--- a/apps/files_sharing/l10n/sr@latin.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{ "translations": {
- "Server to server sharing is not enabled on this server" : "Deljenje od servera do servera nije omogućeno na ovom serveru.",
- "The mountpoint name contains invalid characters." : "Ime tačke za montiranje sadrži neispravne karaktere.",
- "Invalid or untrusted SSL certificate" : "Nevažeći SSL sertifikat ili SSL sertifikat koji nije od poverenja.",
- "Couldn't add remote share" : "Nemoguće dodavanje udaljenog deljenog direktorijuma",
- "Shared with you" : "Deljeno sa Vama",
- "Shared with others" : "Deljeno sa ostalima",
- "Shared by link" : "Deljeno pomoću prečice",
- "Nothing shared with you yet" : "Još ništa nije deljeno sa Vama",
- "Files and folders others share with you will show up here" : "Fajlovi i direktorijumi koji drugi dele sa Vama će se pojaviti ovde",
- "Nothing shared yet" : "Još ništa nije deljeno",
- "Files and folders you share will show up here" : "Fajlovi i direktorijumi koje vi delite će se pojaviti ovde",
- "No shared links" : "Nema deljenih prečica",
- "Files and folders you share by link will show up here" : "Fajlovi i direktorijumi koje delite putem prečice će se pojaviti ovde",
- "Do you want to add the remote share {name} from {owner}@{remote}?" : "Da li želite da dodate udaljeni deljeni resurs {name} od {owner}@{remote}?",
- "Remote share" : "Udaljeni deljeni resurs",
- "Remote share password" : "Lozinka za udaljeni deljeni resurs",
- "Cancel" : "Otkaži",
- "Add remote share" : "Dodaj udaljeni deljeni resurs",
- "No ownCloud installation (7 or higher) found at {remote}" : "Nije pronađena ownCloud instalacija (7 ili noviji) na {remote}",
- "Invalid ownCloud url" : "Neispravan ownCloud url",
- "Shared by" : "Deljeno od strane",
- "A file or folder has been <strong>shared</strong>" : "Fijl ili direktorijum je <strong>podeljen</strong>",
- "A file or folder was shared from <strong>another server</strong>" : "Fajl ili direktorijum je deljen sa <strong>drugog servera</strong>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Javni deljeni fajl ili direktorijum je <strong>preuzet</strong>",
- "You received a new remote share from %s" : "Primili ste novi udaljeni deljeni resurs od %s",
- "%1$s accepted remote share %2$s" : "%1$s je prihvatio udaljeni deljeni resurs %2$s",
- "%1$s declined remote share %2$s" : "%1$s je odbio %2$s",
- "%1$s unshared %2$s from you" : "%1$s je prekinuo deljenje %2$s sa Vama",
- "Public shared folder %1$s was downloaded" : "Javni deljeni direktorijum %1$s je preuzet",
- "Public shared file %1$s was downloaded" : "Javni deljeni fajl %1$s je preuzet",
- "You shared %1$s with %2$s" : "Delili ste %1$s sa %2$s",
- "You shared %1$s with group %2$s" : "Delili ste %1$s sa grupom %2$s",
- "You shared %1$s via link" : "Delili ste %1$s pomoću prečice",
- "%2$s shared %1$s with you" : "%2$s je delio %1$s sa Vama",
- "Shares" : "Deljenja",
- "This share is password-protected" : "Ovaj deljeni resurs je zaštićen lozinkom",
- "The password is wrong. Try again." : "Lozinka je netačna. Pokušajte ponovo.",
- "Password" : "Lozinka",
- "No entries found in this folder" : "Nema unosa u ovom direktorijumu",
- "Name" : "Ime",
- "Share time" : "Vreme deljenja",
- "Sorry, this link doesn’t seem to work anymore." : "Žao nam je, ali ova prečica više ne radi.",
- "Reasons might be:" : "Razlozi mogu biti:",
- "the item was removed" : "stavka je uklonjena",
- "the link expired" : "prečica je istekla",
- "sharing is disabled" : "deljenje je onemogućeno",
- "For more info, please ask the person who sent this link." : "Za više informacija, molimo Vas da se obratite osobi koja je poslala prečicu.",
- "Add to your ownCloud" : "Dodaj na svoj ownCloud",
- "Download" : "Preuzmi",
- "Download %s" : "Preuzmi %s",
- "Direct link" : "Direktna prečica"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js
index d49eb79716f..f378ee9e6be 100644
--- a/apps/files_sharing/l10n/sv.js
+++ b/apps/files_sharing/l10n/sv.js
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Sätt standardmapp för accepterade delningar",
"Reset" : "Återställ",
"Reset folder to system default" : "Återställ mapp till system-standard",
- "Share expiration: " : "Delningens utgång:",
+ "Share expiration: {date}" : "Delningens utgång: {date}",
"Share Expiration" : "Delningens utgång",
"group" : "grupp",
"conversation" : "konversation",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "Filinkast",
"Upload files to {foldername}." : "Ladda upp filer till {foldername}.",
"By uploading files, you agree to the terms of service." : "Genom att ladda upp filer godkänner du användarvillkoren.",
+ "Successfully uploaded files" : "Filer har laddats upp",
"View terms of service" : "Visa användarvillkoren",
"Terms of service" : "Användarvillkor",
- "Upload files to {folder}" : "Ladda upp filer till {folder}",
- "Submit name" : "Skicka namn",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delade en mapp med dig.",
- "To upload files, you need to provide your name first." : "För att ladda upp filer måste du först ange ditt namn.",
- "Name" : "Namn",
- "Enter your name" : "Ange ditt namn",
"Share with {userName}" : "Dela med {userName}",
"Share with email {email}" : "Dela med e-post {email}",
"Share with group" : "Dela med grupp",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Använd den här metoden för att dela filer med individer eller team inom din organisation. Om mottagaren redan har åtkomst till delningen men inte kan hitta den, kan du skicka den interna delningslänken för enkel åtkomst.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Använd den här metoden för att dela filer med individer eller organisationer utanför din organisation. Filer och mappar kan delas via publika delningslänkar och e-postadresser. Du kan också dela med andra Nextcloud-konton som finns på andra instanser genom deras federerade moln-ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delningar som inte ingår i de interna eller externa delningarna. Detta kan vara delningar från appar eller andra källor.",
+ "Share with accounts, teams, federated cloud IDs" : "Dela med konton, team, federerade moln-ID:n",
+ "Share with accounts and teams" : "Dela med konton och team",
+ "Federated cloud ID" : "Federerat moln-ID",
+ "Email, federated cloud ID" : "E-post, federerat moln-ID",
"Unable to load the shares list" : "Kunde inte läsa in delningslistan",
"Expires {relativetime}" : "Upphör {relativetime}",
"this share just expired." : "denna delning har just gått ut.",
"Shared with you by {owner}" : "Delad med dig av {owner}",
"Internal shares" : "Interna delningar",
"Internal shares explanation" : "Förklaring av interna delningar",
- "Share with accounts and teams" : "Dela med konton och team",
"External shares" : "Externa delningar",
"External shares explanation" : "Förklaring av externa delningar",
- "Email, federated cloud id" : "E-post, federerat moln-id",
"Additional shares" : "Ytterligare delningar",
"Additional shares explanation" : "Förklaring av ytterligare delningar",
"Link to a file" : "Länka till en fil",
@@ -371,6 +368,8 @@ OC.L10N.register(
"List of unapproved shares." : "Lista över ej godkända delningar.",
"No pending shares" : "Inga väntande delningar",
"Shares you have received but not approved will show up here" : "Delningar du har mottagit men inte bekräftat kommer att visas här",
+ "Error deleting the share: {errorMessage}" : "Fel vid radering av delning: {errorMessage}",
+ "Error deleting the share" : "Kunde inte radera delningen",
"Error updating the share: {errorMessage}" : "Kunde inte uppdatera delningen: {errorMessage}",
"Error updating the share" : "Kunde inte uppdatera delning",
"File \"{path}\" has been unshared" : "Fil \"{path}\" har slutat att delas",
@@ -383,6 +382,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Delningens notering för mottagare sparad",
"Share password saved" : "Lösenord för delning sparad",
"Share permissions saved" : "Delningsbehörighet sparad",
+ "To upload files to {folder}, you need to provide your name first." : "För att ladda upp filer till {folder}, måste du först ange ditt namn.",
+ "Upload files to {folder}" : "Ladda upp filer till {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bekräfta ditt namn för att ladda upp filer till {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delade en mapp med dig.",
+ "Names must not be empty." : "Namn får inte vara tomt.",
+ "Names must not start with a dot." : "Namn får inte börja med en punkt.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" är inte tillåtet i ett namn.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" är ett reserverat namn och inte tillåtet.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" är inte ett tillåtet namn.",
+ "Names must not end with \"{extension}\"." : "Namn får inte sluta med \"{extension}\".",
+ "Invalid name." : "Ogiltigt namn.",
"Shared by" : "Delad av",
"Shared with" : "Delad med",
"Password created successfully" : "Lösenordet har skapats",
@@ -413,15 +423,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Ingen kompatibel server hittad på {remote}",
"Invalid server URL" : "Ogiltig serverwebbadress",
"Failed to add the public link to your Nextcloud" : "Misslyckades skapa den offentliga delningslänken till ditt moln",
- "Files" : "Filer",
+ "You are not allowed to edit link shares that you don't own" : "Du får inte redigera länkdelningar som du inte äger",
"Download all files" : "Hämta alla filer",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"],
"Search for share recipients" : "Sök efter delningsmottagare",
"No recommendations. Start typing." : "Inga rekommendationer. Börja skriva.",
- "Password field can't be empty" : "Lösenordsfältet får inte vara tomt",
- "Allow download" : "Tillåt nedladdning",
- "Share expire date saved" : "Delningens utgångsdatum sparad",
- "You are not allowed to edit link shares that you don't own" : "Du får inte redigera länkdelningar som du inte äger",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"]
+ "To upload files, you need to provide your name first." : "För att ladda upp filer måste du först ange ditt namn.",
+ "Enter your name" : "Ange ditt namn",
+ "Submit name" : "Skicka namn",
+ "Name" : "Namn",
+ "Share with accounts, teams, federated cloud id" : "Dela med konton, team, federerat moln-id",
+ "Email, federated cloud id" : "E-post, federerat moln-id",
+ "Filename must not be empty." : "Filnamn får inte vara tomt."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json
index 3260d534275..f6ab3c72b19 100644
--- a/apps/files_sharing/l10n/sv.json
+++ b/apps/files_sharing/l10n/sv.json
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "Sätt standardmapp för accepterade delningar",
"Reset" : "Återställ",
"Reset folder to system default" : "Återställ mapp till system-standard",
- "Share expiration: " : "Delningens utgång:",
+ "Share expiration: {date}" : "Delningens utgång: {date}",
"Share Expiration" : "Delningens utgång",
"group" : "grupp",
"conversation" : "konversation",
@@ -255,14 +255,9 @@
"File drop" : "Filinkast",
"Upload files to {foldername}." : "Ladda upp filer till {foldername}.",
"By uploading files, you agree to the terms of service." : "Genom att ladda upp filer godkänner du användarvillkoren.",
+ "Successfully uploaded files" : "Filer har laddats upp",
"View terms of service" : "Visa användarvillkoren",
"Terms of service" : "Användarvillkor",
- "Upload files to {folder}" : "Ladda upp filer till {folder}",
- "Submit name" : "Skicka namn",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delade en mapp med dig.",
- "To upload files, you need to provide your name first." : "För att ladda upp filer måste du först ange ditt namn.",
- "Name" : "Namn",
- "Enter your name" : "Ange ditt namn",
"Share with {userName}" : "Dela med {userName}",
"Share with email {email}" : "Dela med e-post {email}",
"Share with group" : "Dela med grupp",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Använd den här metoden för att dela filer med individer eller team inom din organisation. Om mottagaren redan har åtkomst till delningen men inte kan hitta den, kan du skicka den interna delningslänken för enkel åtkomst.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Använd den här metoden för att dela filer med individer eller organisationer utanför din organisation. Filer och mappar kan delas via publika delningslänkar och e-postadresser. Du kan också dela med andra Nextcloud-konton som finns på andra instanser genom deras federerade moln-ID.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Delningar som inte ingår i de interna eller externa delningarna. Detta kan vara delningar från appar eller andra källor.",
+ "Share with accounts, teams, federated cloud IDs" : "Dela med konton, team, federerade moln-ID:n",
+ "Share with accounts and teams" : "Dela med konton och team",
+ "Federated cloud ID" : "Federerat moln-ID",
+ "Email, federated cloud ID" : "E-post, federerat moln-ID",
"Unable to load the shares list" : "Kunde inte läsa in delningslistan",
"Expires {relativetime}" : "Upphör {relativetime}",
"this share just expired." : "denna delning har just gått ut.",
"Shared with you by {owner}" : "Delad med dig av {owner}",
"Internal shares" : "Interna delningar",
"Internal shares explanation" : "Förklaring av interna delningar",
- "Share with accounts and teams" : "Dela med konton och team",
"External shares" : "Externa delningar",
"External shares explanation" : "Förklaring av externa delningar",
- "Email, federated cloud id" : "E-post, federerat moln-id",
"Additional shares" : "Ytterligare delningar",
"Additional shares explanation" : "Förklaring av ytterligare delningar",
"Link to a file" : "Länka till en fil",
@@ -369,6 +366,8 @@
"List of unapproved shares." : "Lista över ej godkända delningar.",
"No pending shares" : "Inga väntande delningar",
"Shares you have received but not approved will show up here" : "Delningar du har mottagit men inte bekräftat kommer att visas här",
+ "Error deleting the share: {errorMessage}" : "Fel vid radering av delning: {errorMessage}",
+ "Error deleting the share" : "Kunde inte radera delningen",
"Error updating the share: {errorMessage}" : "Kunde inte uppdatera delningen: {errorMessage}",
"Error updating the share" : "Kunde inte uppdatera delning",
"File \"{path}\" has been unshared" : "Fil \"{path}\" har slutat att delas",
@@ -381,6 +380,17 @@
"Share note for recipient saved" : "Delningens notering för mottagare sparad",
"Share password saved" : "Lösenord för delning sparad",
"Share permissions saved" : "Delningsbehörighet sparad",
+ "To upload files to {folder}, you need to provide your name first." : "För att ladda upp filer till {folder}, måste du först ange ditt namn.",
+ "Upload files to {folder}" : "Ladda upp filer till {folder}",
+ "Please confirm your name to upload files to {folder}" : "Bekräfta ditt namn för att ladda upp filer till {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} delade en mapp med dig.",
+ "Names must not be empty." : "Namn får inte vara tomt.",
+ "Names must not start with a dot." : "Namn får inte börja med en punkt.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" är inte tillåtet i ett namn.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" är ett reserverat namn och inte tillåtet.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" är inte ett tillåtet namn.",
+ "Names must not end with \"{extension}\"." : "Namn får inte sluta med \"{extension}\".",
+ "Invalid name." : "Ogiltigt namn.",
"Shared by" : "Delad av",
"Shared with" : "Delad med",
"Password created successfully" : "Lösenordet har skapats",
@@ -411,15 +421,18 @@
"No compatible server found at {remote}" : "Ingen kompatibel server hittad på {remote}",
"Invalid server URL" : "Ogiltig serverwebbadress",
"Failed to add the public link to your Nextcloud" : "Misslyckades skapa den offentliga delningslänken till ditt moln",
- "Files" : "Filer",
+ "You are not allowed to edit link shares that you don't own" : "Du får inte redigera länkdelningar som du inte äger",
"Download all files" : "Hämta alla filer",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"],
"Search for share recipients" : "Sök efter delningsmottagare",
"No recommendations. Start typing." : "Inga rekommendationer. Börja skriva.",
- "Password field can't be empty" : "Lösenordsfältet får inte vara tomt",
- "Allow download" : "Tillåt nedladdning",
- "Share expire date saved" : "Delningens utgångsdatum sparad",
- "You are not allowed to edit link shares that you don't own" : "Du får inte redigera länkdelningar som du inte äger",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-postadress som redan har lagts till","{count} e-postadresser som redan har lagts till"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-postadress har lagts till","{count} e-postadresser har lagts till"]
+ "To upload files, you need to provide your name first." : "För att ladda upp filer måste du först ange ditt namn.",
+ "Enter your name" : "Ange ditt namn",
+ "Submit name" : "Skicka namn",
+ "Name" : "Namn",
+ "Share with accounts, teams, federated cloud id" : "Dela med konton, team, federerat moln-id",
+ "Email, federated cloud id" : "E-post, federerat moln-id",
+ "Filename must not be empty." : "Filnamn får inte vara tomt."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js
index f1b539894f0..4c0314bc3f3 100644
--- a/apps/files_sharing/l10n/tr.js
+++ b/apps/files_sharing/l10n/tr.js
@@ -66,31 +66,31 @@ OC.L10N.register(
"Wrong path, file/folder does not exist" : "Yol yanlış. Dosya ya da klasör bulunamadı",
"Could not create share" : "Paylaşılamadı",
"Please specify a valid account to share with" : "Lütfen paylaşılacak geçerli bir hesap belirtin",
- "Group sharing is disabled by the administrator" : "Grup paylaşımı BT yöneticisi tarafından kullanımdan kaldırılmış",
+ "Group sharing is disabled by the administrator" : "Grup paylaşımı özelliği BT yöneticisi tarafından kapatılmış",
"Please specify a valid group" : "Lütfen geçerli bir grup belirtin",
- "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı BT yöneticisi tarafından kullanımdan kaldırılmış",
+ "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı özelliği BT yöneticisi tarafından kapatılmış",
"Please specify a valid email address" : "Lütfen geçerli bir e-posta adresi yazın",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Konuş kullanıma alınmamış olduğundan, %s paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Konuş uygulaması kullanıma alınmamış. %s paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi",
"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 account ID" : "Lütfen geçerli bir birleşik hesap kimliği belirtin",
"Please specify a valid federated group ID" : "Lütfen geçerli bir birleşik grup kimliği belirtin",
- "You cannot share to a Team if the app is not enabled" : "Uygulama kullanıma alınmamış ise bir Takım ile paylaşamazsınız",
+ "You cannot share to a Team if the app is not enabled" : "Uygulama kullanıma alınmamışsa bir Takım ile paylaşamazsınız",
"Please specify a valid team" : "Lütfen geçerli bir takım belirtin",
- "Sharing %s failed because the back end does not support room shares" : "Arka uç oda paylaşımlarına izin vermediğinden %s paylaşılamadı",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka uç ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı",
+ "Sharing %s failed because the back end does not support room shares" : "Arka yüz oda paylaşımlarına izin vermediğinden %s paylaşılamadı",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka yüz ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı",
"Unknown share type" : "Paylaşım türü bilinmiyor",
"Not a directory" : "Bir klasör değil",
"Could not lock node" : "Düğüm kilitlenemedi",
"Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir",
"Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır",
"Share must have READ permission if UPDATE or DELETE permission is set" : "UPDATE ya da DELETE izinleri verilmiş ise paylaşıma READ izni verilmelidir",
- "Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından kullanımdan kaldırılmış",
+ "Public upload disabled by the administrator" : "Herkese açık yükleme özelliği BT yöneticisi tarafından kapatılmış",
"Could not lock path" : "Yol kilitlenemedi",
"no sharing rights on this item" : "bu ögenin herhangi bir paylaşım izni yok",
"You are not allowed to edit incoming shares" : "Gelen paylaşımları düzenleme izniniz yok",
"Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Konuş kullanıma alınmamış olduğundan, paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi.",
- "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından kullanımdan kaldırılmış",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Konuş uygulaması kullanıma alınmamış. Paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi.",
+ "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından kapatılmış",
"Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Kodlar en az 1 karakter uzunluğunda olmalı ve yalnızca harf, sayı veya tire karakterlerini içermelidir",
"Invalid date. Format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
"No sharing rights on this item" : "Bu ögenin herhangi bir paylaşım izni yok",
@@ -105,7 +105,7 @@ OC.L10N.register(
"Download" : "İndir",
"Add to your %s" : "%s uygulamanıza ekleyin",
"Direct link" : "Doğrudan bağlantı",
- "Share API is disabled" : "Paylaşım API arayüzü kullanımdan kaldırılmış",
+ "Share API is disabled" : "Paylaşım API arayüzü kapatılmış",
"File sharing" : "Dosya paylaşımı",
"Share will expire tomorrow" : "Paylaşımın geçerlilik süresi yarın dolacak",
"Your share of {node} will expire tomorrow" : "{node} paylaşımınızın geçerlilik süresi yarın dolacak",
@@ -116,7 +116,7 @@ OC.L10N.register(
"Remember to upload the files to %s" : "Dosyaları %s üzerine yüklemeyi unutmayın",
"We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Paylaşılan klasöre henüz herhangi bir dosya yüklemediğinizi hatırlatmak isteriz.",
"Open \"%s\"" : "\"%s\" aç",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Kullanıma alındığında, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini kullanıma almış ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri kullanıma alabilir.\nBu özellik kullanımdan kaldırıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Kullanıma alındığında, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini açmış ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri açabilir.\nBu özellik kapatıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
"People" : "Kişiler",
"Filter accounts" : "Hesapları süz",
"The request will expire on {date} at midnight and will be password protected." : "İstek {date} gece yarısı geçersiz olacak ve parola ile korunacak.",
@@ -126,7 +126,7 @@ OC.L10N.register(
"Set a submission expiration date" : "Gönderim geçerlilik sonu tarihini ayarlayın",
"Expiration date" : "Geçerlilik sonu tarihi",
"Select a date" : "Bir tarih seçin",
- "Your administrator has enforced a {count} days expiration policy." : "Yöneticiniz geçerlilik sonu ilkesini {count} gün olarak belirlemiş.",
+ "Your administrator has enforced a {count} days expiration policy." : "Yöneticiniz geçerlilik sonu ilkesini {count} gün olarak zorunlu kılmış.",
"What password should be used for the request?" : "İstek için kullanılacak parola nedir?",
"Set a password" : "Bir parola ayarlayın",
"Password" : "Parola",
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Onaylanmış paylaşımların varsayılan klasörünü ayarlayın",
"Reset" : "Sıfırla",
"Reset folder to system default" : "Sistem varsayılan klasörüne sıfırlar",
- "Share expiration: " : "Paylaşım geçerlilik sonu:",
+ "Share expiration: {date}" : "Paylaşım geçerlilik sonu: {date}",
"Share Expiration" : "Paylaşım geçerlilik sonu",
"group" : "grup",
"conversation" : "görüşme",
@@ -220,16 +220,16 @@ OC.L10N.register(
"Link share created" : "Paylaşım bağlantısı oluşturuldu",
"Error while creating the share" : "Paylaşım oluşturulurken sorun çıktı",
"Please enter the following required information before creating the share" : "Lütfen paylaşımı oluşturmadan önce aşağıdaki zorunlu bilgileri yazın",
- "Password protection (enforced)" : "Parola koruması (dayatılmış)",
+ "Password protection (enforced)" : "Parola koruması (zorunlu kılınmış)",
"Password protection" : "Parola koruması",
"Enter a password" : "Bir parola yazın",
- "Enable link expiration (enforced)" : "Bağlantıya geçerlilik sonu ekle (dayatılan)",
+ "Enable link expiration (enforced)" : "Bağlantıya geçerlilik sonu ekle (zorunlu kılınmış)",
"Enable link expiration" : "Bağlantı geçerlilik sonu kullanılsın",
- "Enter expiration date (enforced)" : "Geçerlilik sonu tarihini yazın (dayatılan)",
+ "Enter expiration date (enforced)" : "Geçerlilik sonu tarihini yazın (zorunlu kılınmış)",
"Enter expiration date" : "Geçerlilik sonu tarihini yazın",
"Create share" : "Paylaşım ekle",
"Customize link" : "Bağlantıyı özelleştir",
- "Generate QR code" : "QR kodu oluştur",
+ "Generate QR code" : "Kare kod oluştur",
"Add another link" : "Başka bir bağlantı ekle",
"Create a new share link" : "Yeni bir paylaşım bağlantısı ekle",
"Quick share options, the current selected is \"{selectedOption}\"" : "Hızlı paylaşım seçenekleri, geçerli seçim \"{selectedOption}\"",
@@ -246,7 +246,7 @@ OC.L10N.register(
"Group" : "Grup",
"Email" : "E-posta",
"Team" : "Takım",
- "Talk conversation" : "Konuş uygulaması görüşmesi",
+ "Talk conversation" : "Konuş görüşmesi",
"Deck board" : "Tahta panosu",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} üzerinde",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "Dosya bırakma",
"Upload files to {foldername}." : "Dosyaları {foldername} klasörüne yükle.",
"By uploading files, you agree to the terms of service." : "Dosya yükleyerek hizmet koşullarını kabul etmiş olursunuz.",
+ "Successfully uploaded files" : "Dosyalar yüklendi",
"View terms of service" : "Hizmet koşullarını görüntüle",
"Terms of service" : "Hizmet koşulları",
- "Upload files to {folder}" : "Dosyaları {folder} klasörüne yükle",
- "Submit name" : "Adı gönder",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} sizinle bir klasör paylaştı.",
- "To upload files, you need to provide your name first." : "Dosyaları yükleyebilmek için önce adınızı yazmalısınız.",
- "Name" : "Ad",
- "Enter your name" : "Adınızı yazın",
"Share with {userName}" : "{userName} ile paylaş",
"Share with email {email}" : "{email} e-posta adresi ile paylaş",
"Share with group" : "Grupla paylaş",
@@ -295,7 +290,7 @@ OC.L10N.register(
"Password expires {passwordExpirationTime}" : "Parolanın geçerlilik süresi sonu {passwordExpirationTime}",
"Password expired" : "Parolanın geçerlilik süresi dolmuş",
"Video verification" : "Görüntü doğrulaması",
- "Expiration date (enforced)" : "Geçerlilik sonu tarihi (dayatılmış)",
+ "Expiration date (enforced)" : "Geçerlilik sonu tarihi (zorunlu kılınmış)",
"Set expiration date" : "Geçerlilik sonu tarihini ayarla",
"Hide download" : "İndirme gizlensin",
"Allow download and sync" : "İndirmeye izin ver ve eşitle",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Bu yöntemi, dosyaları kuruluşunuzdaki kişilerle veya takımlarla paylaşmak için kullanın. Alıcının paylaşıma zaten erişimi varsa ancak bulamıyorlarsa, kolay erişmeleri için iç paylaşım bağlantısını gönderebilirsiniz.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bu yöntemi, dosyaları kuruluşunuzun dışındaki kişilerle veya kuruluşlarla paylaşmak için kullanın. Dosyalar ve klasörler herkese açık paylaşım bağlantıları ve e-posta adresleri ile paylaşılabilir. Ayrıca, birleşik bulut kimliklerini kullanarak farklı kopyalarda barındırılan diğer Nextcloud hesaplarıyla da paylaşım yapabilirsiniz.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "İç veya dış paylaşımların parçası olmayan paylaşımlar. Bunlar uygulamalardan veya diğer kaynaklardan gelen paylaşımlar olabilir.",
+ "Share with accounts, teams, federated cloud IDs" : "Hesaplar, takımlar ve birleşik bulut kimlikleri ile paylaşın",
+ "Share with accounts and teams" : "Hesaplar ve takımlarla paylaşın",
+ "Federated cloud ID" : "Birleşik bulut kimliği",
+ "Email, federated cloud ID" : "E-posta adresi, birleşik bulut kimliği",
"Unable to load the shares list" : "Paylaşımlar listesi yüklenemedi",
"Expires {relativetime}" : "Geçerlilik süresi sonu {relativetime}",
"this share just expired." : "bu paylaşımın geçerlilik süresi dolmuş.",
"Shared with you by {owner}" : "{owner} tarafından sizinle paylaşılmış",
"Internal shares" : "İç paylaşımlar",
"Internal shares explanation" : "İç paylaşımlar açıklaması",
- "Share with accounts and teams" : "Hesaplar ve takımlarla paylaşın",
"External shares" : "Dış paylaşımlar",
"External shares explanation" : "Dış paylaşımlar açıklaması",
- "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği",
"Additional shares" : "Ek paylaşımlar",
"Additional shares explanation" : "Ek paylaşımlar açıklaması",
"Link to a file" : "Bir dosya bağlantısı",
@@ -371,6 +368,8 @@ OC.L10N.register(
"List of unapproved shares." : "Kabul edilmemiş paylaşımların listesi.",
"No pending shares" : "Bekleyen paylaşım yok",
"Shares you have received but not approved will show up here" : "Aldığınız ancak henüz kabul etmediğiniz paylaşımlar burada görüntülenir",
+ "Error deleting the share: {errorMessage}" : "Paylaşım silinirken sorun çıktı: {errorMessage}",
+ "Error deleting the share" : "Paylaşım silinirken sorun çıktı",
"Error updating the share: {errorMessage}" : "Paylaşım güncellenirken sorun çıktı: {errorMessage}",
"Error updating the share" : "Paylaşım güncellenirken sorun çıktı",
"File \"{path}\" has been unshared" : "\"{path}\" dosyası paylaşımdan kaldırıldı",
@@ -383,6 +382,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Alıcı için paylaşım notu kaydedildi",
"Share password saved" : "Paylaşım parolası kaydedildi",
"Share permissions saved" : "Paylaşım izinleri kaydedildi",
+ "To upload files to {folder}, you need to provide your name first." : "{folder} üzerine dosyalar yükleyebilmek için önce adınızı yazmalısınız.",
+ "Upload files to {folder}" : "Dosyaları {folder} klasörüne yükle",
+ "Please confirm your name to upload files to {folder}" : "Lütfen {folder} üzerinde dosyalar yükleyebilmek için adınızı doğrulayın",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} sizinle bir klasör paylaştı.",
+ "Names must not be empty." : "Ad boş olamaz.",
+ "Names must not start with a dot." : "Ad bir nokta ile başlayamaz.",
+ "\"{char}\" is not allowed inside a name." : "Bir ad içinde \"{char}\" karakteri kullanılamaz.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ayrılmış bir ad olduğundan kullanılamaz.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" adı kullanılamaz.",
+ "Names must not end with \"{extension}\"." : "Adlar \"{extension}\" karakteri ile bitemez.",
+ "Invalid name." : "Ad geçersiz.",
"Shared by" : "Paylaşan",
"Shared with" : "Şunlarla paylaşılmış",
"Password created successfully" : "Parola oluşturuldu",
@@ -413,15 +423,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "{remote} konumunda uyumlu sunucu bulunamadı",
"Invalid server URL" : "Sunucu adresi geçersiz",
"Failed to add the public link to your Nextcloud" : "Herkese açık bağlantı Nextcould üzerine eklenemedi",
- "Files" : "Dosyalar",
+ "You are not allowed to edit link shares that you don't own" : "Sahibi olmadığınız bağlantı paylaşımlarını düzenleme izniniz yok",
"Download all files" : "Tüm dosyaları indir",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"],
"Search for share recipients" : "Paylaşım alıcıları ara",
"No recommendations. Start typing." : "Herhangi bir öneri yok. Yazmaya başlayın.",
- "Password field can't be empty" : "Parola alanı boş olamaz",
- "Allow download" : "İndirilebilsin",
- "Share expire date saved" : "Paylaşım geçerlilik süresi kaydedildi",
- "You are not allowed to edit link shares that you don't own" : "Sahibi olmadığınız bağlantı paylaşımlarını düzenleme izniniz yok",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"]
+ "To upload files, you need to provide your name first." : "Dosyaları yükleyebilmek için önce adınızı yazmalısınız.",
+ "Enter your name" : "Adınızı yazın",
+ "Submit name" : "Adı gönder",
+ "Name" : "Ad",
+ "Share with accounts, teams, federated cloud id" : "Hesaplar, takımlar ve birleşik bulut kimlikleri ile paylaşın",
+ "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği",
+ "Filename must not be empty." : "Dosya adı boş olamaz."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json
index b6cc4a1a088..3a4f872c006 100644
--- a/apps/files_sharing/l10n/tr.json
+++ b/apps/files_sharing/l10n/tr.json
@@ -64,31 +64,31 @@
"Wrong path, file/folder does not exist" : "Yol yanlış. Dosya ya da klasör bulunamadı",
"Could not create share" : "Paylaşılamadı",
"Please specify a valid account to share with" : "Lütfen paylaşılacak geçerli bir hesap belirtin",
- "Group sharing is disabled by the administrator" : "Grup paylaşımı BT yöneticisi tarafından kullanımdan kaldırılmış",
+ "Group sharing is disabled by the administrator" : "Grup paylaşımı özelliği BT yöneticisi tarafından kapatılmış",
"Please specify a valid group" : "Lütfen geçerli bir grup belirtin",
- "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı BT yöneticisi tarafından kullanımdan kaldırılmış",
+ "Public link sharing is disabled by the administrator" : "Herkese açık bağlantı paylaşımı özelliği BT yöneticisi tarafından kapatılmış",
"Please specify a valid email address" : "Lütfen geçerli bir e-posta adresi yazın",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Konuş kullanıma alınmamış olduğundan, %s paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Konuş uygulaması kullanıma alınmamış. %s paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi",
"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 account ID" : "Lütfen geçerli bir birleşik hesap kimliği belirtin",
"Please specify a valid federated group ID" : "Lütfen geçerli bir birleşik grup kimliği belirtin",
- "You cannot share to a Team if the app is not enabled" : "Uygulama kullanıma alınmamış ise bir Takım ile paylaşamazsınız",
+ "You cannot share to a Team if the app is not enabled" : "Uygulama kullanıma alınmamışsa bir Takım ile paylaşamazsınız",
"Please specify a valid team" : "Lütfen geçerli bir takım belirtin",
- "Sharing %s failed because the back end does not support room shares" : "Arka uç oda paylaşımlarına izin vermediğinden %s paylaşılamadı",
- "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka uç ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı",
+ "Sharing %s failed because the back end does not support room shares" : "Arka yüz oda paylaşımlarına izin vermediğinden %s paylaşılamadı",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Arka yüz ScienceMesh paylaşımlarına izin vermediğinden %s paylaşılamadı",
"Unknown share type" : "Paylaşım türü bilinmiyor",
"Not a directory" : "Bir klasör değil",
"Could not lock node" : "Düğüm kilitlenemedi",
"Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir",
"Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır",
"Share must have READ permission if UPDATE or DELETE permission is set" : "UPDATE ya da DELETE izinleri verilmiş ise paylaşıma READ izni verilmelidir",
- "Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından kullanımdan kaldırılmış",
+ "Public upload disabled by the administrator" : "Herkese açık yükleme özelliği BT yöneticisi tarafından kapatılmış",
"Could not lock path" : "Yol kilitlenemedi",
"no sharing rights on this item" : "bu ögenin herhangi bir paylaşım izni yok",
"You are not allowed to edit incoming shares" : "Gelen paylaşımları düzenleme izniniz yok",
"Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Konuş kullanıma alınmamış olduğundan, paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi.",
- "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından kullanımdan kaldırılmış",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Konuş uygulaması kullanıma alınmamış. Paylaşım parolası Nextcloud Konuş uygulaması ile gönderilemedi.",
+ "Custom share link tokens have been disabled by the administrator" : "Özel bağlantı paylaşımı kodları yöneticiniz tarafından kapatılmış",
"Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Kodlar en az 1 karakter uzunluğunda olmalı ve yalnızca harf, sayı veya tire karakterlerini içermelidir",
"Invalid date. Format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
"No sharing rights on this item" : "Bu ögenin herhangi bir paylaşım izni yok",
@@ -103,7 +103,7 @@
"Download" : "İndir",
"Add to your %s" : "%s uygulamanıza ekleyin",
"Direct link" : "Doğrudan bağlantı",
- "Share API is disabled" : "Paylaşım API arayüzü kullanımdan kaldırılmış",
+ "Share API is disabled" : "Paylaşım API arayüzü kapatılmış",
"File sharing" : "Dosya paylaşımı",
"Share will expire tomorrow" : "Paylaşımın geçerlilik süresi yarın dolacak",
"Your share of {node} will expire tomorrow" : "{node} paylaşımınızın geçerlilik süresi yarın dolacak",
@@ -114,7 +114,7 @@
"Remember to upload the files to %s" : "Dosyaları %s üzerine yüklemeyi unutmayın",
"We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Paylaşılan klasöre henüz herhangi bir dosya yüklemediğinizi hatırlatmak isteriz.",
"Open \"%s\"" : "\"%s\" aç",
- "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Kullanıma alındığında, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini kullanıma almış ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri kullanıma alabilir.\nBu özellik kullanımdan kaldırıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
+ "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Bu uygulama kişilerin Nextcloud üzerinde dosya paylaşabilmesini sağlar. Kullanıma alındığında, yöneticiler dosya paylaşabilecek grupları belirleyebilir. Seçilmiş gruplardaki kişiler Nextcloud üzerindeki diğer kişi ve gruplar ile dosya ve klasör paylaşabilir. Ek olarak, yönetici bağlantı paylaşımı özelliğini açmış ise, Nextcloud üzerinde olmayan kişiler ile dosya paylaşımı bağlantıları kullanılabilir. Yöneticiler ayrıca parola ve geçerlilik sonu tarihi kullanılmasını zorunlu kılmanın yanında, paylaşım bağlantıları ile sunucudan sunucuya paylaşım ve mobil aygıtlar ile paylaşım gibi özellikleri açabilir.\nBu özellik kapatıldığında, sunucu, eşitleme istemcileri ve mobil uygulamalar üzerinden alıcılar ile paylaşılmış dosya ve klasörler kaldırılır. Ayrıntılı bilgi almak için Nextcloud belgelerine bakabilirsiniz.",
"People" : "Kişiler",
"Filter accounts" : "Hesapları süz",
"The request will expire on {date} at midnight and will be password protected." : "İstek {date} gece yarısı geçersiz olacak ve parola ile korunacak.",
@@ -124,7 +124,7 @@
"Set a submission expiration date" : "Gönderim geçerlilik sonu tarihini ayarlayın",
"Expiration date" : "Geçerlilik sonu tarihi",
"Select a date" : "Bir tarih seçin",
- "Your administrator has enforced a {count} days expiration policy." : "Yöneticiniz geçerlilik sonu ilkesini {count} gün olarak belirlemiş.",
+ "Your administrator has enforced a {count} days expiration policy." : "Yöneticiniz geçerlilik sonu ilkesini {count} gün olarak zorunlu kılmış.",
"What password should be used for the request?" : "İstek için kullanılacak parola nedir?",
"Set a password" : "Bir parola ayarlayın",
"Password" : "Parola",
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "Onaylanmış paylaşımların varsayılan klasörünü ayarlayın",
"Reset" : "Sıfırla",
"Reset folder to system default" : "Sistem varsayılan klasörüne sıfırlar",
- "Share expiration: " : "Paylaşım geçerlilik sonu:",
+ "Share expiration: {date}" : "Paylaşım geçerlilik sonu: {date}",
"Share Expiration" : "Paylaşım geçerlilik sonu",
"group" : "grup",
"conversation" : "görüşme",
@@ -218,16 +218,16 @@
"Link share created" : "Paylaşım bağlantısı oluşturuldu",
"Error while creating the share" : "Paylaşım oluşturulurken sorun çıktı",
"Please enter the following required information before creating the share" : "Lütfen paylaşımı oluşturmadan önce aşağıdaki zorunlu bilgileri yazın",
- "Password protection (enforced)" : "Parola koruması (dayatılmış)",
+ "Password protection (enforced)" : "Parola koruması (zorunlu kılınmış)",
"Password protection" : "Parola koruması",
"Enter a password" : "Bir parola yazın",
- "Enable link expiration (enforced)" : "Bağlantıya geçerlilik sonu ekle (dayatılan)",
+ "Enable link expiration (enforced)" : "Bağlantıya geçerlilik sonu ekle (zorunlu kılınmış)",
"Enable link expiration" : "Bağlantı geçerlilik sonu kullanılsın",
- "Enter expiration date (enforced)" : "Geçerlilik sonu tarihini yazın (dayatılan)",
+ "Enter expiration date (enforced)" : "Geçerlilik sonu tarihini yazın (zorunlu kılınmış)",
"Enter expiration date" : "Geçerlilik sonu tarihini yazın",
"Create share" : "Paylaşım ekle",
"Customize link" : "Bağlantıyı özelleştir",
- "Generate QR code" : "QR kodu oluştur",
+ "Generate QR code" : "Kare kod oluştur",
"Add another link" : "Başka bir bağlantı ekle",
"Create a new share link" : "Yeni bir paylaşım bağlantısı ekle",
"Quick share options, the current selected is \"{selectedOption}\"" : "Hızlı paylaşım seçenekleri, geçerli seçim \"{selectedOption}\"",
@@ -244,7 +244,7 @@
"Group" : "Grup",
"Email" : "E-posta",
"Team" : "Takım",
- "Talk conversation" : "Konuş uygulaması görüşmesi",
+ "Talk conversation" : "Konuş görüşmesi",
"Deck board" : "Tahta panosu",
"ScienceMesh" : "ScienceMesh",
"on {server}" : "{server} üzerinde",
@@ -255,14 +255,9 @@
"File drop" : "Dosya bırakma",
"Upload files to {foldername}." : "Dosyaları {foldername} klasörüne yükle.",
"By uploading files, you agree to the terms of service." : "Dosya yükleyerek hizmet koşullarını kabul etmiş olursunuz.",
+ "Successfully uploaded files" : "Dosyalar yüklendi",
"View terms of service" : "Hizmet koşullarını görüntüle",
"Terms of service" : "Hizmet koşulları",
- "Upload files to {folder}" : "Dosyaları {folder} klasörüne yükle",
- "Submit name" : "Adı gönder",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} sizinle bir klasör paylaştı.",
- "To upload files, you need to provide your name first." : "Dosyaları yükleyebilmek için önce adınızı yazmalısınız.",
- "Name" : "Ad",
- "Enter your name" : "Adınızı yazın",
"Share with {userName}" : "{userName} ile paylaş",
"Share with email {email}" : "{email} e-posta adresi ile paylaş",
"Share with group" : "Grupla paylaş",
@@ -293,7 +288,7 @@
"Password expires {passwordExpirationTime}" : "Parolanın geçerlilik süresi sonu {passwordExpirationTime}",
"Password expired" : "Parolanın geçerlilik süresi dolmuş",
"Video verification" : "Görüntü doğrulaması",
- "Expiration date (enforced)" : "Geçerlilik sonu tarihi (dayatılmış)",
+ "Expiration date (enforced)" : "Geçerlilik sonu tarihi (zorunlu kılınmış)",
"Set expiration date" : "Geçerlilik sonu tarihini ayarla",
"Hide download" : "İndirme gizlensin",
"Allow download and sync" : "İndirmeye izin ver ve eşitle",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Bu yöntemi, dosyaları kuruluşunuzdaki kişilerle veya takımlarla paylaşmak için kullanın. Alıcının paylaşıma zaten erişimi varsa ancak bulamıyorlarsa, kolay erişmeleri için iç paylaşım bağlantısını gönderebilirsiniz.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Bu yöntemi, dosyaları kuruluşunuzun dışındaki kişilerle veya kuruluşlarla paylaşmak için kullanın. Dosyalar ve klasörler herkese açık paylaşım bağlantıları ve e-posta adresleri ile paylaşılabilir. Ayrıca, birleşik bulut kimliklerini kullanarak farklı kopyalarda barındırılan diğer Nextcloud hesaplarıyla da paylaşım yapabilirsiniz.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "İç veya dış paylaşımların parçası olmayan paylaşımlar. Bunlar uygulamalardan veya diğer kaynaklardan gelen paylaşımlar olabilir.",
+ "Share with accounts, teams, federated cloud IDs" : "Hesaplar, takımlar ve birleşik bulut kimlikleri ile paylaşın",
+ "Share with accounts and teams" : "Hesaplar ve takımlarla paylaşın",
+ "Federated cloud ID" : "Birleşik bulut kimliği",
+ "Email, federated cloud ID" : "E-posta adresi, birleşik bulut kimliği",
"Unable to load the shares list" : "Paylaşımlar listesi yüklenemedi",
"Expires {relativetime}" : "Geçerlilik süresi sonu {relativetime}",
"this share just expired." : "bu paylaşımın geçerlilik süresi dolmuş.",
"Shared with you by {owner}" : "{owner} tarafından sizinle paylaşılmış",
"Internal shares" : "İç paylaşımlar",
"Internal shares explanation" : "İç paylaşımlar açıklaması",
- "Share with accounts and teams" : "Hesaplar ve takımlarla paylaşın",
"External shares" : "Dış paylaşımlar",
"External shares explanation" : "Dış paylaşımlar açıklaması",
- "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği",
"Additional shares" : "Ek paylaşımlar",
"Additional shares explanation" : "Ek paylaşımlar açıklaması",
"Link to a file" : "Bir dosya bağlantısı",
@@ -369,6 +366,8 @@
"List of unapproved shares." : "Kabul edilmemiş paylaşımların listesi.",
"No pending shares" : "Bekleyen paylaşım yok",
"Shares you have received but not approved will show up here" : "Aldığınız ancak henüz kabul etmediğiniz paylaşımlar burada görüntülenir",
+ "Error deleting the share: {errorMessage}" : "Paylaşım silinirken sorun çıktı: {errorMessage}",
+ "Error deleting the share" : "Paylaşım silinirken sorun çıktı",
"Error updating the share: {errorMessage}" : "Paylaşım güncellenirken sorun çıktı: {errorMessage}",
"Error updating the share" : "Paylaşım güncellenirken sorun çıktı",
"File \"{path}\" has been unshared" : "\"{path}\" dosyası paylaşımdan kaldırıldı",
@@ -381,6 +380,17 @@
"Share note for recipient saved" : "Alıcı için paylaşım notu kaydedildi",
"Share password saved" : "Paylaşım parolası kaydedildi",
"Share permissions saved" : "Paylaşım izinleri kaydedildi",
+ "To upload files to {folder}, you need to provide your name first." : "{folder} üzerine dosyalar yükleyebilmek için önce adınızı yazmalısınız.",
+ "Upload files to {folder}" : "Dosyaları {folder} klasörüne yükle",
+ "Please confirm your name to upload files to {folder}" : "Lütfen {folder} üzerinde dosyalar yükleyebilmek için adınızı doğrulayın",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} sizinle bir klasör paylaştı.",
+ "Names must not be empty." : "Ad boş olamaz.",
+ "Names must not start with a dot." : "Ad bir nokta ile başlayamaz.",
+ "\"{char}\" is not allowed inside a name." : "Bir ad içinde \"{char}\" karakteri kullanılamaz.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" ayrılmış bir ad olduğundan kullanılamaz.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" adı kullanılamaz.",
+ "Names must not end with \"{extension}\"." : "Adlar \"{extension}\" karakteri ile bitemez.",
+ "Invalid name." : "Ad geçersiz.",
"Shared by" : "Paylaşan",
"Shared with" : "Şunlarla paylaşılmış",
"Password created successfully" : "Parola oluşturuldu",
@@ -411,15 +421,18 @@
"No compatible server found at {remote}" : "{remote} konumunda uyumlu sunucu bulunamadı",
"Invalid server URL" : "Sunucu adresi geçersiz",
"Failed to add the public link to your Nextcloud" : "Herkese açık bağlantı Nextcould üzerine eklenemedi",
- "Files" : "Dosyalar",
+ "You are not allowed to edit link shares that you don't own" : "Sahibi olmadığınız bağlantı paylaşımlarını düzenleme izniniz yok",
"Download all files" : "Tüm dosyaları indir",
+ "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"],
+ "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"],
"Search for share recipients" : "Paylaşım alıcıları ara",
"No recommendations. Start typing." : "Herhangi bir öneri yok. Yazmaya başlayın.",
- "Password field can't be empty" : "Parola alanı boş olamaz",
- "Allow download" : "İndirilebilsin",
- "Share expire date saved" : "Paylaşım geçerlilik süresi kaydedildi",
- "You are not allowed to edit link shares that you don't own" : "Sahibi olmadığınız bağlantı paylaşımlarını düzenleme izniniz yok",
- "_1 email address already added_::_{count} email addresses already added_" : ["1 e-posta adresi zaten eklenmiş","{count} e-posta adresi zaten eklenmiş"],
- "_1 email address added_::_{count} email addresses added_" : ["1 e-posta adresi eklendi","{count} e-posta adresi eklendi"]
+ "To upload files, you need to provide your name first." : "Dosyaları yükleyebilmek için önce adınızı yazmalısınız.",
+ "Enter your name" : "Adınızı yazın",
+ "Submit name" : "Adı gönder",
+ "Name" : "Ad",
+ "Share with accounts, teams, federated cloud id" : "Hesaplar, takımlar ve birleşik bulut kimlikleri ile paylaşın",
+ "Email, federated cloud id" : "E-posta adresi, birleşik bulut kimliği",
+ "Filename must not be empty." : "Dosya adı boş olamaz."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ug.js b/apps/files_sharing/l10n/ug.js
index 81d6c3dd094..2eab79f6f98 100644
--- a/apps/files_sharing/l10n/ug.js
+++ b/apps/files_sharing/l10n/ug.js
@@ -242,12 +242,6 @@ OC.L10N.register(
"By uploading files, you agree to the terms of service." : "ھۆججەتلەرنى يوللاش ئارقىلىق مۇلازىمەت شەرتلىرىگە قوشۇلىسىز.",
"View terms of service" : "مۇلازىمەت شەرتلىرىنى كۆرۈش",
"Terms of service" : "مۇلازىمەت شەرتلىرى",
- "Upload files to {folder}" : "ھۆججەتلەرنى {folder} يۈكلەڭ",
- "Submit name" : "ئىسىم يوللاڭ",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ھۆججەت قىسقۇچنى سىز بىلەن ئورتاقلاشتى.",
- "To upload files, you need to provide your name first." : "ھۆججەتلەرنى يوللاش ئۈچۈن ئالدى بىلەن ئىسمىڭىزنى تەمىنلىشىڭىز كېرەك.",
- "Name" : "ئاتى",
- "Enter your name" : "ئىسمىڭىزنى كىرگۈزۈڭ",
"Share with {userName}" : "{userName} بىلەن ئورتاقلىشىڭ",
"Share with email {email}" : "ئېلېكترونلۇق خەت {email} خەت}",
"Share with group" : "گۇرۇپپا بىلەن ئورتاقلىشىش",
@@ -345,6 +339,8 @@ OC.L10N.register(
"Share note for recipient saved" : "تاپشۇرۇۋالغۇچى ئۈچۈن خاتىرە قالدۇرۇڭ",
"Share password saved" : "پارولنى ئورتاقلاشتى",
"Share permissions saved" : "ئورتاقلىشىش ئىجازەتلىرى ساقلاندى",
+ "Upload files to {folder}" : "ھۆججەتلەرنى {folder} يۈكلەڭ",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ھۆججەت قىسقۇچنى سىز بىلەن ئورتاقلاشتى.",
"Shared by" : "ھەمبەھىرلىگۈچى",
"Shared with" : "بىلەن ئورتاقلاشتى",
"Password created successfully" : "پارول مۇۋەپپەقىيەتلىك قۇرۇلدى",
@@ -375,12 +371,14 @@ OC.L10N.register(
"No compatible server found at {remote}" : "{remote} ماس كېلىدىغان مۇلازىمېتىر تېپىلمىدى",
"Invalid server URL" : "مۇلازىمېتىر URL ئىناۋەتسىز",
"Failed to add the public link to your Nextcloud" : "Nextcloud غا ئاممىۋى ئۇلىنىشنى قوشالمىدى",
- "Files" : "ھۆججەتلەر",
+ "You are not allowed to edit link shares that you don't own" : "ئۆزىڭىز ئىگە بولمىغان ئۇلىنىش ھەمبەھىرلىرىنى تەھرىرلىشىڭىزگە رۇخسەت قىلىنمايدۇ",
"Download all files" : "بارلىق ھۆججەتلەرنى چۈشۈرۈڭ",
"Search for share recipients" : "ھەمبەھىر تاپشۇرۇۋالغۇچىلارنى ئىزدەڭ",
"No recommendations. Start typing." : "تەۋسىيە يوق. يېزىشنى باشلاڭ.",
- "Allow download" : "چۈشۈرۈشكە يول قويۇڭ",
- "Share expire date saved" : "ئورتاقلىشىش ۋاقتى ساقلاندى",
- "You are not allowed to edit link shares that you don't own" : "ئۆزىڭىز ئىگە بولمىغان ئۇلىنىش ھەمبەھىرلىرىنى تەھرىرلىشىڭىزگە رۇخسەت قىلىنمايدۇ"
+ "To upload files, you need to provide your name first." : "ھۆججەتلەرنى يوللاش ئۈچۈن ئالدى بىلەن ئىسمىڭىزنى تەمىنلىشىڭىز كېرەك.",
+ "Enter your name" : "ئىسمىڭىزنى كىرگۈزۈڭ",
+ "Submit name" : "ئىسىم يوللاڭ",
+ "Name" : "ئاتى",
+ "Filename must not be empty." : "ھۆججەت ئىسمى بوش بولماسلىقى كېرەك."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ug.json b/apps/files_sharing/l10n/ug.json
index 1e3c9c55ec4..fc8a8a3d907 100644
--- a/apps/files_sharing/l10n/ug.json
+++ b/apps/files_sharing/l10n/ug.json
@@ -240,12 +240,6 @@
"By uploading files, you agree to the terms of service." : "ھۆججەتلەرنى يوللاش ئارقىلىق مۇلازىمەت شەرتلىرىگە قوشۇلىسىز.",
"View terms of service" : "مۇلازىمەت شەرتلىرىنى كۆرۈش",
"Terms of service" : "مۇلازىمەت شەرتلىرى",
- "Upload files to {folder}" : "ھۆججەتلەرنى {folder} يۈكلەڭ",
- "Submit name" : "ئىسىم يوللاڭ",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ھۆججەت قىسقۇچنى سىز بىلەن ئورتاقلاشتى.",
- "To upload files, you need to provide your name first." : "ھۆججەتلەرنى يوللاش ئۈچۈن ئالدى بىلەن ئىسمىڭىزنى تەمىنلىشىڭىز كېرەك.",
- "Name" : "ئاتى",
- "Enter your name" : "ئىسمىڭىزنى كىرگۈزۈڭ",
"Share with {userName}" : "{userName} بىلەن ئورتاقلىشىڭ",
"Share with email {email}" : "ئېلېكترونلۇق خەت {email} خەت}",
"Share with group" : "گۇرۇپپا بىلەن ئورتاقلىشىش",
@@ -343,6 +337,8 @@
"Share note for recipient saved" : "تاپشۇرۇۋالغۇچى ئۈچۈن خاتىرە قالدۇرۇڭ",
"Share password saved" : "پارولنى ئورتاقلاشتى",
"Share permissions saved" : "ئورتاقلىشىش ئىجازەتلىرى ساقلاندى",
+ "Upload files to {folder}" : "ھۆججەتلەرنى {folder} يۈكلەڭ",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ھۆججەت قىسقۇچنى سىز بىلەن ئورتاقلاشتى.",
"Shared by" : "ھەمبەھىرلىگۈچى",
"Shared with" : "بىلەن ئورتاقلاشتى",
"Password created successfully" : "پارول مۇۋەپپەقىيەتلىك قۇرۇلدى",
@@ -373,12 +369,14 @@
"No compatible server found at {remote}" : "{remote} ماس كېلىدىغان مۇلازىمېتىر تېپىلمىدى",
"Invalid server URL" : "مۇلازىمېتىر URL ئىناۋەتسىز",
"Failed to add the public link to your Nextcloud" : "Nextcloud غا ئاممىۋى ئۇلىنىشنى قوشالمىدى",
- "Files" : "ھۆججەتلەر",
+ "You are not allowed to edit link shares that you don't own" : "ئۆزىڭىز ئىگە بولمىغان ئۇلىنىش ھەمبەھىرلىرىنى تەھرىرلىشىڭىزگە رۇخسەت قىلىنمايدۇ",
"Download all files" : "بارلىق ھۆججەتلەرنى چۈشۈرۈڭ",
"Search for share recipients" : "ھەمبەھىر تاپشۇرۇۋالغۇچىلارنى ئىزدەڭ",
"No recommendations. Start typing." : "تەۋسىيە يوق. يېزىشنى باشلاڭ.",
- "Allow download" : "چۈشۈرۈشكە يول قويۇڭ",
- "Share expire date saved" : "ئورتاقلىشىش ۋاقتى ساقلاندى",
- "You are not allowed to edit link shares that you don't own" : "ئۆزىڭىز ئىگە بولمىغان ئۇلىنىش ھەمبەھىرلىرىنى تەھرىرلىشىڭىزگە رۇخسەت قىلىنمايدۇ"
+ "To upload files, you need to provide your name first." : "ھۆججەتلەرنى يوللاش ئۈچۈن ئالدى بىلەن ئىسمىڭىزنى تەمىنلىشىڭىز كېرەك.",
+ "Enter your name" : "ئىسمىڭىزنى كىرگۈزۈڭ",
+ "Submit name" : "ئىسىم يوللاڭ",
+ "Name" : "ئاتى",
+ "Filename must not be empty." : "ھۆججەت ئىسمى بوش بولماسلىقى كېرەك."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js
index a87d5169bfc..f1d8ed89a22 100644
--- a/apps/files_sharing/l10n/uk.js
+++ b/apps/files_sharing/l10n/uk.js
@@ -184,7 +184,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "Встановити типовий каталог для прийнятих спільних ресурсів",
"Reset" : "Скидання",
"Reset folder to system default" : "Відновити типові системні налаштування для каталогу",
- "Share expiration: " : "Термін дії спільного ресурсу:",
+ "Share expiration: {date}" : "У спільному доступі до: {date}",
"Share Expiration" : "Термін дії спільного ресурсу:",
"group" : "група",
"conversation" : "розмова",
@@ -256,14 +256,9 @@ OC.L10N.register(
"File drop" : "Перетягнути файл",
"Upload files to {foldername}." : "Завантажити файли до {foldername}.",
"By uploading files, you agree to the terms of service." : "Завантаження файлів означає, що ви погоджуєтеся з умовами користування.",
+ "Successfully uploaded files" : "Успішно завантажено файли",
"View terms of service" : "Переглянути умови користування.",
"Terms of service" : "Умови використання",
- "Upload files to {folder}" : "Завантажити файли до {folder}",
- "Submit name" : "Надайте ім'я",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поділив(-ла)ся з вами каталогом.",
- "To upload files, you need to provide your name first." : "Щоби завантажити файли, спочатку зазначте ваше ім'я.",
- "Name" : "Назва",
- "Enter your name" : "Зазначте ваше ім'я",
"Share with {userName}" : "Поділитися з {userName}",
"Share with email {email}" : "Поділитися через ел.пошту {email}",
"Share with group" : "Поділитися з групою",
@@ -312,16 +307,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або командам. Якщо отримувач вже має доступ до спільного ресурсу, але не може його знайти, ви можете допомогти йому/їй - надіслати посилання на внутрішній ресурс.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або організаціям за межами вашої організації. Файли та каталоги можна надати у спільний доступ користувачам інших примірників хмар Nextcloud з використанням ідентифікатора об'єднаних хмар.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Спільні ресурси, що не є ані внутрішніми, ані зовнішніми спільними ресурсами, наприклад, спільні ресурси, створені застосунками чи іншими ресурсами.",
+ "Share with accounts, teams, federated cloud IDs" : "Поділитися з користувачами, командами, об'єднаними хмарами",
+ "Share with accounts and teams" : "Поділитися з користувачами або командами",
+ "Federated cloud ID" : "Ідентифікатор об'єднаної хмари",
+ "Email, federated cloud ID" : "Ел. пошта, ID об'єднаної хмари",
"Unable to load the shares list" : "Не вдалося завантажити список спільних ресурсів",
"Expires {relativetime}" : "Термін дії закінчується {relativetime}",
"this share just expired." : "термін дії спільного доступу вичерпано.",
"Shared with you by {owner}" : "{owner} поділив(-ла-)ся з вами",
"Internal shares" : "Внутрішні спільні ресурси",
"Internal shares explanation" : "Опис внутрішніх спільних ресурсів",
- "Share with accounts and teams" : "Поділитися з користувачами або командами",
"External shares" : "Зовнішні спільні ресурси",
"External shares explanation" : "Опис зовнішніх спільних ресурсів",
- "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари",
"Additional shares" : "Додаткові спільні ресурси",
"Additional shares explanation" : "Опис додаткових спільних ресурсів",
"Link to a file" : "Посилання на файл",
@@ -382,6 +379,17 @@ OC.L10N.register(
"Share note for recipient saved" : "Збережено примітку отримувачеві спільного ресурсу",
"Share password saved" : "Пароль до спільного ресурсу збережено",
"Share permissions saved" : "Дозволи доступу до спільного ресурсу збережено",
+ "To upload files to {folder}, you need to provide your name first." : "Щоб завантажити файли до каталогу {folder}, спочатку потрібно зазначити ваше ім'я.",
+ "Upload files to {folder}" : "Завантажити файли до {folder}",
+ "Please confirm your name to upload files to {folder}" : "Зазначте ваше ім'я, щоби завантажити файли до каталогу {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поділив(-ла)ся з вами каталогом.",
+ "Names must not be empty." : "Ім'я не може бути порожнім.",
+ "Names must not start with a dot." : "Імена не можуть починатися з крапки.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" не дозволено всередині імени.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" є зарезервованим ім'ям і не дозволене.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" не дозволене ім'я.",
+ "Names must not end with \"{extension}\"." : "Імена не можуть закінчуватися на \"{extension}\".",
+ "Invalid name." : "Недійсне ім'я",
"Shared by" : "Поділилися",
"Shared with" : "Спільний доступ з",
"Password created successfully" : "Успішно створено пароль",
@@ -412,15 +420,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Відсутній сумісний сервер за адресою {remote}",
"Invalid server URL" : "Недійсна адреса сервера URL",
"Failed to add the public link to your Nextcloud" : "Не вдалося додати публічне посилання до вашого Nextcloud",
- "Files" : "Файли",
+ "You are not allowed to edit link shares that you don't own" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є",
"Download all files" : "Звантажити всі файли",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Вже додано 1 адресу ел. пошти","Вже додано {count} адреси ел. пошти","Вже додано {count} адрес ел. пошти","Вже додано {count} адрес ел. пошти"],
+ "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"],
"Search for share recipients" : "Виберіть отримувачів",
"No recommendations. Start typing." : "Відсутні рекомендації. Будь ласка, додайте.",
- "Password field can't be empty" : "Потрібно зазначити пароль",
- "Allow download" : "Дозволити звантаження",
- "Share expire date saved" : "Збережено термін доступности спільного ресурсу",
- "You are not allowed to edit link shares that you don't own" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є",
- "_1 email address already added_::_{count} email addresses already added_" : ["Вже додано 1 адресу ел. пошти","Вже додано {count} адреси ел. пошти","Вже додано {count} адрес ел. пошти","Вже додано {count} адрес ел. пошти"],
- "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"]
+ "To upload files, you need to provide your name first." : "Щоби завантажити файли, спочатку зазначте ваше ім'я.",
+ "Enter your name" : "Зазначте ваше ім'я",
+ "Submit name" : "Надайте ім'я",
+ "Name" : "Назва",
+ "Share with accounts, teams, federated cloud id" : "Поділитися з користувачами, командами, ID об'єднаних хмар",
+ "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари",
+ "Filename must not be empty." : "Імена файлів не мають бути порожні."
},
"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 2f199857bc3..395814ab6f4 100644
--- a/apps/files_sharing/l10n/uk.json
+++ b/apps/files_sharing/l10n/uk.json
@@ -182,7 +182,7 @@
"Set default folder for accepted shares" : "Встановити типовий каталог для прийнятих спільних ресурсів",
"Reset" : "Скидання",
"Reset folder to system default" : "Відновити типові системні налаштування для каталогу",
- "Share expiration: " : "Термін дії спільного ресурсу:",
+ "Share expiration: {date}" : "У спільному доступі до: {date}",
"Share Expiration" : "Термін дії спільного ресурсу:",
"group" : "група",
"conversation" : "розмова",
@@ -254,14 +254,9 @@
"File drop" : "Перетягнути файл",
"Upload files to {foldername}." : "Завантажити файли до {foldername}.",
"By uploading files, you agree to the terms of service." : "Завантаження файлів означає, що ви погоджуєтеся з умовами користування.",
+ "Successfully uploaded files" : "Успішно завантажено файли",
"View terms of service" : "Переглянути умови користування.",
"Terms of service" : "Умови використання",
- "Upload files to {folder}" : "Завантажити файли до {folder}",
- "Submit name" : "Надайте ім'я",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поділив(-ла)ся з вами каталогом.",
- "To upload files, you need to provide your name first." : "Щоби завантажити файли, спочатку зазначте ваше ім'я.",
- "Name" : "Назва",
- "Enter your name" : "Зазначте ваше ім'я",
"Share with {userName}" : "Поділитися з {userName}",
"Share with email {email}" : "Поділитися через ел.пошту {email}",
"Share with group" : "Поділитися з групою",
@@ -310,16 +305,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або командам. Якщо отримувач вже має доступ до спільного ресурсу, але не може його знайти, ви можете допомогти йому/їй - надіслати посилання на внутрішній ресурс.",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Використовуйте цей спосіб надання файлів у спільний доступ окремим користувачам або організаціям за межами вашої організації. Файли та каталоги можна надати у спільний доступ користувачам інших примірників хмар Nextcloud з використанням ідентифікатора об'єднаних хмар.",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Спільні ресурси, що не є ані внутрішніми, ані зовнішніми спільними ресурсами, наприклад, спільні ресурси, створені застосунками чи іншими ресурсами.",
+ "Share with accounts, teams, federated cloud IDs" : "Поділитися з користувачами, командами, об'єднаними хмарами",
+ "Share with accounts and teams" : "Поділитися з користувачами або командами",
+ "Federated cloud ID" : "Ідентифікатор об'єднаної хмари",
+ "Email, federated cloud ID" : "Ел. пошта, ID об'єднаної хмари",
"Unable to load the shares list" : "Не вдалося завантажити список спільних ресурсів",
"Expires {relativetime}" : "Термін дії закінчується {relativetime}",
"this share just expired." : "термін дії спільного доступу вичерпано.",
"Shared with you by {owner}" : "{owner} поділив(-ла-)ся з вами",
"Internal shares" : "Внутрішні спільні ресурси",
"Internal shares explanation" : "Опис внутрішніх спільних ресурсів",
- "Share with accounts and teams" : "Поділитися з користувачами або командами",
"External shares" : "Зовнішні спільні ресурси",
"External shares explanation" : "Опис зовнішніх спільних ресурсів",
- "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари",
"Additional shares" : "Додаткові спільні ресурси",
"Additional shares explanation" : "Опис додаткових спільних ресурсів",
"Link to a file" : "Посилання на файл",
@@ -380,6 +377,17 @@
"Share note for recipient saved" : "Збережено примітку отримувачеві спільного ресурсу",
"Share password saved" : "Пароль до спільного ресурсу збережено",
"Share permissions saved" : "Дозволи доступу до спільного ресурсу збережено",
+ "To upload files to {folder}, you need to provide your name first." : "Щоб завантажити файли до каталогу {folder}, спочатку потрібно зазначити ваше ім'я.",
+ "Upload files to {folder}" : "Завантажити файли до {folder}",
+ "Please confirm your name to upload files to {folder}" : "Зазначте ваше ім'я, щоби завантажити файли до каталогу {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} поділив(-ла)ся з вами каталогом.",
+ "Names must not be empty." : "Ім'я не може бути порожнім.",
+ "Names must not start with a dot." : "Імена не можуть починатися з крапки.",
+ "\"{char}\" is not allowed inside a name." : "\"{char}\" не дозволено всередині імени.",
+ "\"{segment}\" is a reserved name and not allowed." : "\"{segment}\" є зарезервованим ім'ям і не дозволене.",
+ "\"{extension}\" is not an allowed name." : "\"{extension}\" не дозволене ім'я.",
+ "Names must not end with \"{extension}\"." : "Імена не можуть закінчуватися на \"{extension}\".",
+ "Invalid name." : "Недійсне ім'я",
"Shared by" : "Поділилися",
"Shared with" : "Спільний доступ з",
"Password created successfully" : "Успішно створено пароль",
@@ -410,15 +418,18 @@
"No compatible server found at {remote}" : "Відсутній сумісний сервер за адресою {remote}",
"Invalid server URL" : "Недійсна адреса сервера URL",
"Failed to add the public link to your Nextcloud" : "Не вдалося додати публічне посилання до вашого Nextcloud",
- "Files" : "Файли",
+ "You are not allowed to edit link shares that you don't own" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є",
"Download all files" : "Звантажити всі файли",
+ "_1 email address already added_::_{count} email addresses already added_" : ["Вже додано 1 адресу ел. пошти","Вже додано {count} адреси ел. пошти","Вже додано {count} адрес ел. пошти","Вже додано {count} адрес ел. пошти"],
+ "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"],
"Search for share recipients" : "Виберіть отримувачів",
"No recommendations. Start typing." : "Відсутні рекомендації. Будь ласка, додайте.",
- "Password field can't be empty" : "Потрібно зазначити пароль",
- "Allow download" : "Дозволити звантаження",
- "Share expire date saved" : "Збережено термін доступности спільного ресурсу",
- "You are not allowed to edit link shares that you don't own" : "У вас відсутні права на редагування спільних ресурсів, якими з вами поділилися через посилання, власником яких ви не є",
- "_1 email address already added_::_{count} email addresses already added_" : ["Вже додано 1 адресу ел. пошти","Вже додано {count} адреси ел. пошти","Вже додано {count} адрес ел. пошти","Вже додано {count} адрес ел. пошти"],
- "_1 email address added_::_{count} email addresses added_" : ["Додано 1 адресу ел. пошти","Додано {count} адреси ел. пошти","Додано {count} адрес ел. пошти","Додано {count} адрес ел. пошти"]
+ "To upload files, you need to provide your name first." : "Щоби завантажити файли, спочатку зазначте ваше ім'я.",
+ "Enter your name" : "Зазначте ваше ім'я",
+ "Submit name" : "Надайте ім'я",
+ "Name" : "Назва",
+ "Share with accounts, teams, federated cloud id" : "Поділитися з користувачами, командами, ID об'єднаних хмар",
+ "Email, federated cloud id" : "Ел.пошта, ідентифікатор об'єднаної хмари",
+ "Filename must not be empty." : "Імена файлів не мають бути порожні."
},"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/ur_PK.js b/apps/files_sharing/l10n/ur_PK.js
deleted file mode 100644
index 2e9b145d789..00000000000
--- a/apps/files_sharing/l10n/ur_PK.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_sharing",
- {
- "Cancel" : "منسوخ کریں",
- "Shared by" : "سے اشتراک شدہ",
- "Password" : "پاسورڈ",
- "Name" : "اسم",
- "Download" : "ڈاؤن لوڈ،"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/ur_PK.json b/apps/files_sharing/l10n/ur_PK.json
deleted file mode 100644
index b0ac6d244b8..00000000000
--- a/apps/files_sharing/l10n/ur_PK.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Cancel" : "منسوخ کریں",
- "Shared by" : "سے اشتراک شدہ",
- "Password" : "پاسورڈ",
- "Name" : "اسم",
- "Download" : "ڈاؤن لوڈ،"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/vi.js b/apps/files_sharing/l10n/vi.js
index 37413583af9..8d512daae9e 100644
--- a/apps/files_sharing/l10n/vi.js
+++ b/apps/files_sharing/l10n/vi.js
@@ -166,7 +166,6 @@ OC.L10N.register(
"on {server}" : "trên {server}",
"File drop" : "Thả file",
"Terms of service" : "Điều khoản dịch vụ",
- "Name" : "Tên",
"Update share" : "Cập nhật chia sẻ",
"Save share" : "Lưu chia sẻ",
"Read" : "Đọc",
@@ -262,10 +261,10 @@ OC.L10N.register(
"No compatible server found at {remote}" : "Máy chủ không tương thích được tìm thấy tại {remote}",
"Invalid server URL" : "URL máy chủ không hợp lệ",
"Failed to add the public link to your Nextcloud" : "Không thể thêm liên kết công khai",
- "Files" : "Tệp tin",
"Download all files" : "Tải xuống tất cả các tập tin",
"Search for share recipients" : "Tìm kiếm người nhận chia sẻ",
"No recommendations. Start typing." : "Không có khuyến nghị. Bắt đầu gõ.",
- "Allow download" : "Cho phép tải xuống"
+ "Name" : "Tên",
+ "Filename must not be empty." : "Tên tập tin không thể trống"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/vi.json b/apps/files_sharing/l10n/vi.json
index bdcd65e4a6f..9a9adbcb67f 100644
--- a/apps/files_sharing/l10n/vi.json
+++ b/apps/files_sharing/l10n/vi.json
@@ -164,7 +164,6 @@
"on {server}" : "trên {server}",
"File drop" : "Thả file",
"Terms of service" : "Điều khoản dịch vụ",
- "Name" : "Tên",
"Update share" : "Cập nhật chia sẻ",
"Save share" : "Lưu chia sẻ",
"Read" : "Đọc",
@@ -260,10 +259,10 @@
"No compatible server found at {remote}" : "Máy chủ không tương thích được tìm thấy tại {remote}",
"Invalid server URL" : "URL máy chủ không hợp lệ",
"Failed to add the public link to your Nextcloud" : "Không thể thêm liên kết công khai",
- "Files" : "Tệp tin",
"Download all files" : "Tải xuống tất cả các tập tin",
"Search for share recipients" : "Tìm kiếm người nhận chia sẻ",
"No recommendations. Start typing." : "Không có khuyến nghị. Bắt đầu gõ.",
- "Allow download" : "Cho phép tải xuống"
+ "Name" : "Tên",
+ "Filename must not be empty." : "Tên tập tin không thể trống"
},"pluralForm" :"nplurals=1; plural=0;"
} \ 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 10fa087e766..c1cff4dc3d0 100644
--- a/apps/files_sharing/l10n/zh_CN.js
+++ b/apps/files_sharing/l10n/zh_CN.js
@@ -185,8 +185,8 @@ OC.L10N.register(
"Set default folder for accepted shares" : "设置已接受共享的默认文件夹",
"Reset" : "重置",
"Reset folder to system default" : "重置文件夹为系统默认值",
- "Share expiration: " : "共享有效期‌:",
- "Share Expiration" : "共享有效期‌",
+ "Share expiration: {date}" : "分享过期日期:{date}",
+ "Share Expiration" : "分享过期日期",
"group" : "分组",
"conversation" : "会话",
"remote" : "远程",
@@ -237,14 +237,14 @@ OC.L10N.register(
"Can edit" : "可以编辑",
"Custom permissions" : "自定义权限",
"Resharing is not allowed" : "不允许再次共享",
- "Name or email …" : "姓名或电子邮件 ...",
- "Name, email, or Federated Cloud ID …" : "名称、电子邮件或联合云 ID ...",
- "Searching …" : "正在搜索 ...",
+ "Name or email …" : "名称或电子邮件…",
+ "Name, email, or Federated Cloud ID …" : "名称、电子邮件或联合云 ID…",
+ "Searching …" : "正在搜索…",
"No elements found." : "未发现元素。",
"Search globally" : "全局搜索",
"Guest" : "访客",
"Group" : "群组",
- "Email" : "电子邮箱",
+ "Email" : "电子邮件",
"Team" : "团队",
"Talk conversation" : "通话应用对话",
"Deck board" : "看板",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "文件拖放",
"Upload files to {foldername}." : "将文件上传到 {foldername}。",
"By uploading files, you agree to the terms of service." : "上传文件即表示您同意服务条款。",
+ "Successfully uploaded files" : "已成功上传文件",
"View terms of service" : "查看服务条款",
"Terms of service" : "服务条款",
- "Upload files to {folder}" : "将文件上传到 {folder}",
- "Submit name" : "提交名称",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 与您分享了一个文件夹。",
- "To upload files, you need to provide your name first." : "要上传文件,您需要先提供名称。",
- "Name" : "名称",
- "Enter your name" : "输入你的名字",
"Share with {userName}" : "分享至 {userName}",
"Share with email {email}" : "与邮箱 {email} 分享",
"Share with group" : "分享至群组",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法与组织内的个人或团队共享文件。如果接收者已经可以访问共享,但找不到它,您可以向他们发送内部共享链接以便于访问。",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法与组织外部的个人或组织共享文件。文件和文件夹可以通过公开共享链接和电子邮件地址共享。您还可以使用其联合云 ID 共享给托管在不同实例上的其他 Nextcloud 账号。",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不属于内部或外部共享的共享,这可以是来自应用或其他来源的共享。",
+ "Share with accounts, teams, federated cloud IDs" : "与账号、团队、联合云 ID 共享",
+ "Share with accounts and teams" : "与账号和团队共享",
+ "Federated cloud ID" : "联合云 ID",
+ "Email, federated cloud ID" : "电子邮件、联合云 ID",
"Unable to load the shares list" : "无法加载共享列表",
"Expires {relativetime}" : "过期 {relativetime}",
"this share just expired." : "此共享已过期。",
"Shared with you by {owner}" : "{owner} 与您共享",
"Internal shares" : "内部共享",
"Internal shares explanation" : "内部共享说明",
- "Share with accounts and teams" : "与账号和团队共享",
"External shares" : "外部共享",
"External shares explanation" : "外部共享说明",
- "Email, federated cloud id" : "电子邮件、联合云 ID",
"Additional shares" : "额外共享",
"Additional shares explanation" : "额外共享说明",
"Link to a file" : "链接到文件",
@@ -371,6 +368,7 @@ OC.L10N.register(
"List of unapproved shares." : "未批准的分享列表",
"No pending shares" : "没有待定共享",
"Shares you have received but not approved will show up here" : "您已收到但未批准的分享将显示在这里",
+ "Error deleting the share" : "删除分享时出错",
"Error updating the share: {errorMessage}" : "更新共享失败:{errorMessage}",
"Error updating the share" : "更新共享时出错",
"File \"{path}\" has been unshared" : "文件“{path}”已取消共享",
@@ -383,6 +381,17 @@ OC.L10N.register(
"Share note for recipient saved" : "接收者的共享备注已保存",
"Share password saved" : "共享密码已保存",
"Share permissions saved" : "共享权限已保存",
+ "To upload files to {folder}, you need to provide your name first." : "要将文件上传到 {folder},您需要先提供名称。",
+ "Upload files to {folder}" : "将文件上传到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "请确认名称以将文件上传到 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 与您分享了一个文件夹。",
+ "Names must not be empty." : "名称不能为空。",
+ "Names must not start with a dot." : "名称不能以点开头。",
+ "\"{char}\" is not allowed inside a name." : "名称中不允许使用“{char}”。",
+ "\"{segment}\" is a reserved name and not allowed." : "“{segment}”是保留名称,不允许使用。",
+ "\"{extension}\" is not an allowed name." : "“{extension}”不是允许的名称。",
+ "Names must not end with \"{extension}\"." : "名称不能以“{extension}”结尾。",
+ "Invalid name." : "无效名称。",
"Shared by" : "共享人",
"Shared with" : "共享给",
"Password created successfully" : "密码已创建成功",
@@ -413,15 +422,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : " {remote} 未发现匹配的服务器",
"Invalid server URL" : "无效的服务器地址",
"Failed to add the public link to your Nextcloud" : "添加公开链接到您的Nextcloud失败",
- "Files" : "文件",
+ "You are not allowed to edit link shares that you don't own" : "不允许编辑不属于您的链接共享",
"Download all files" : "下载所有文件",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count}个电子邮箱地址已添加"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"],
"Search for share recipients" : "查找共享参与者",
"No recommendations. Start typing." : "无建议。开始输入。",
- "Password field can't be empty" : "密码字段不能为空",
- "Allow download" : "允许下载",
- "Share expire date saved" : "共享过期日期已保存",
- "You are not allowed to edit link shares that you don't own" : "不允许编辑不属于您的链接共享",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count}个电子邮箱地址已添加"],
- "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"]
+ "To upload files, you need to provide your name first." : "要上传文件,您需要先提供名称。",
+ "Enter your name" : "输入名称",
+ "Submit name" : "提交名称",
+ "Name" : "名称",
+ "Share with accounts, teams, federated cloud id" : "与账号、团队、联合云 ID 共享",
+ "Email, federated cloud id" : "电子邮件、联合云 ID",
+ "Filename must not be empty." : "文件名不能为空。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json
index 26b40505ac0..226fb4b4abb 100644
--- a/apps/files_sharing/l10n/zh_CN.json
+++ b/apps/files_sharing/l10n/zh_CN.json
@@ -183,8 +183,8 @@
"Set default folder for accepted shares" : "设置已接受共享的默认文件夹",
"Reset" : "重置",
"Reset folder to system default" : "重置文件夹为系统默认值",
- "Share expiration: " : "共享有效期‌:",
- "Share Expiration" : "共享有效期‌",
+ "Share expiration: {date}" : "分享过期日期:{date}",
+ "Share Expiration" : "分享过期日期",
"group" : "分组",
"conversation" : "会话",
"remote" : "远程",
@@ -235,14 +235,14 @@
"Can edit" : "可以编辑",
"Custom permissions" : "自定义权限",
"Resharing is not allowed" : "不允许再次共享",
- "Name or email …" : "姓名或电子邮件 ...",
- "Name, email, or Federated Cloud ID …" : "名称、电子邮件或联合云 ID ...",
- "Searching …" : "正在搜索 ...",
+ "Name or email …" : "名称或电子邮件…",
+ "Name, email, or Federated Cloud ID …" : "名称、电子邮件或联合云 ID…",
+ "Searching …" : "正在搜索…",
"No elements found." : "未发现元素。",
"Search globally" : "全局搜索",
"Guest" : "访客",
"Group" : "群组",
- "Email" : "电子邮箱",
+ "Email" : "电子邮件",
"Team" : "团队",
"Talk conversation" : "通话应用对话",
"Deck board" : "看板",
@@ -255,14 +255,9 @@
"File drop" : "文件拖放",
"Upload files to {foldername}." : "将文件上传到 {foldername}。",
"By uploading files, you agree to the terms of service." : "上传文件即表示您同意服务条款。",
+ "Successfully uploaded files" : "已成功上传文件",
"View terms of service" : "查看服务条款",
"Terms of service" : "服务条款",
- "Upload files to {folder}" : "将文件上传到 {folder}",
- "Submit name" : "提交名称",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 与您分享了一个文件夹。",
- "To upload files, you need to provide your name first." : "要上传文件,您需要先提供名称。",
- "Name" : "名称",
- "Enter your name" : "输入你的名字",
"Share with {userName}" : "分享至 {userName}",
"Share with email {email}" : "与邮箱 {email} 分享",
"Share with group" : "分享至群组",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法与组织内的个人或团队共享文件。如果接收者已经可以访问共享,但找不到它,您可以向他们发送内部共享链接以便于访问。",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法与组织外部的个人或组织共享文件。文件和文件夹可以通过公开共享链接和电子邮件地址共享。您还可以使用其联合云 ID 共享给托管在不同实例上的其他 Nextcloud 账号。",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不属于内部或外部共享的共享,这可以是来自应用或其他来源的共享。",
+ "Share with accounts, teams, federated cloud IDs" : "与账号、团队、联合云 ID 共享",
+ "Share with accounts and teams" : "与账号和团队共享",
+ "Federated cloud ID" : "联合云 ID",
+ "Email, federated cloud ID" : "电子邮件、联合云 ID",
"Unable to load the shares list" : "无法加载共享列表",
"Expires {relativetime}" : "过期 {relativetime}",
"this share just expired." : "此共享已过期。",
"Shared with you by {owner}" : "{owner} 与您共享",
"Internal shares" : "内部共享",
"Internal shares explanation" : "内部共享说明",
- "Share with accounts and teams" : "与账号和团队共享",
"External shares" : "外部共享",
"External shares explanation" : "外部共享说明",
- "Email, federated cloud id" : "电子邮件、联合云 ID",
"Additional shares" : "额外共享",
"Additional shares explanation" : "额外共享说明",
"Link to a file" : "链接到文件",
@@ -369,6 +366,7 @@
"List of unapproved shares." : "未批准的分享列表",
"No pending shares" : "没有待定共享",
"Shares you have received but not approved will show up here" : "您已收到但未批准的分享将显示在这里",
+ "Error deleting the share" : "删除分享时出错",
"Error updating the share: {errorMessage}" : "更新共享失败:{errorMessage}",
"Error updating the share" : "更新共享时出错",
"File \"{path}\" has been unshared" : "文件“{path}”已取消共享",
@@ -381,6 +379,17 @@
"Share note for recipient saved" : "接收者的共享备注已保存",
"Share password saved" : "共享密码已保存",
"Share permissions saved" : "共享权限已保存",
+ "To upload files to {folder}, you need to provide your name first." : "要将文件上传到 {folder},您需要先提供名称。",
+ "Upload files to {folder}" : "将文件上传到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "请确认名称以将文件上传到 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 与您分享了一个文件夹。",
+ "Names must not be empty." : "名称不能为空。",
+ "Names must not start with a dot." : "名称不能以点开头。",
+ "\"{char}\" is not allowed inside a name." : "名称中不允许使用“{char}”。",
+ "\"{segment}\" is a reserved name and not allowed." : "“{segment}”是保留名称,不允许使用。",
+ "\"{extension}\" is not an allowed name." : "“{extension}”不是允许的名称。",
+ "Names must not end with \"{extension}\"." : "名称不能以“{extension}”结尾。",
+ "Invalid name." : "无效名称。",
"Shared by" : "共享人",
"Shared with" : "共享给",
"Password created successfully" : "密码已创建成功",
@@ -411,15 +420,18 @@
"No compatible server found at {remote}" : " {remote} 未发现匹配的服务器",
"Invalid server URL" : "无效的服务器地址",
"Failed to add the public link to your Nextcloud" : "添加公开链接到您的Nextcloud失败",
- "Files" : "文件",
+ "You are not allowed to edit link shares that you don't own" : "不允许编辑不属于您的链接共享",
"Download all files" : "下载所有文件",
+ "_1 email address already added_::_{count} email addresses already added_" : ["{count}个电子邮箱地址已添加"],
+ "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"],
"Search for share recipients" : "查找共享参与者",
"No recommendations. Start typing." : "无建议。开始输入。",
- "Password field can't be empty" : "密码字段不能为空",
- "Allow download" : "允许下载",
- "Share expire date saved" : "共享过期日期已保存",
- "You are not allowed to edit link shares that you don't own" : "不允许编辑不属于您的链接共享",
- "_1 email address already added_::_{count} email addresses already added_" : ["{count}个电子邮箱地址已添加"],
- "_1 email address added_::_{count} email addresses added_" : ["{count}电子邮箱地址已添加"]
+ "To upload files, you need to provide your name first." : "要上传文件,您需要先提供名称。",
+ "Enter your name" : "输入名称",
+ "Submit name" : "提交名称",
+ "Name" : "名称",
+ "Share with accounts, teams, federated cloud id" : "与账号、团队、联合云 ID 共享",
+ "Email, federated cloud id" : "电子邮件、联合云 ID",
+ "Filename must not be empty." : "文件名不能为空。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js
index e66a30b09bd..41397009db4 100644
--- a/apps/files_sharing/l10n/zh_HK.js
+++ b/apps/files_sharing/l10n/zh_HK.js
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "為已接受的分享選擇一個默認資料夾",
"Reset" : "重設",
"Reset folder to system default" : "將資料夾重置為系統默認值",
- "Share expiration: " : "共享有效期‌:",
+ "Share expiration: {date}" : "分享到期日:{date}",
"Share Expiration" : "共享有效期‌",
"group" : "群組",
"conversation" : "對話",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "檔案拖放",
"Upload files to {foldername}." : "上傳檔案至 {foldername}。",
"By uploading files, you agree to the terms of service." : "上傳檔案即表示您同意服務條款。",
+ "Successfully uploaded files" : "檔案上傳成功",
"View terms of service" : "檢視服務條款",
"Terms of service" : "服務條款",
- "Upload files to {folder}" : "上傳檔案到 {folder}",
- "Submit name" : "遞交名字",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
- "To upload files, you need to provide your name first." : "要上傳檔案,您需要先提供您的姓名。",
- "Name" : "名字",
- "Enter your name" : "輸入您的名稱",
"Share with {userName}" : "與 {userName} 分享",
"Share with email {email}" : "與電郵地址 {email} 分享",
"Share with group" : "與群組分享",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。",
+ "Share with accounts, teams, federated cloud IDs" : "與帳戶、團隊、聯邦雲端 ID 分享",
+ "Share with accounts and teams" : "與帳號及團隊分享",
+ "Federated cloud ID" : "雲端聯邦 ID",
+ "Email, federated cloud ID" : "電郵地址、聯邦雲端 ID",
"Unable to load the shares list" : "無法載入分享清單",
"Expires {relativetime}" : "有效期至 {relativetime}",
"this share just expired." : "此分享剛過期。",
"Shared with you by {owner}" : "{owner} 已經和您分享",
"Internal shares" : "內部分享",
"Internal shares explanation" : "內部分享說明",
- "Share with accounts and teams" : "與帳號及團隊分享",
"External shares" : "外部分享",
"External shares explanation" : "外部分享說明",
- "Email, federated cloud id" : "電郵地址、聯邦雲端 ID",
"Additional shares" : "額外分享",
"Additional shares explanation" : "額外分享說明",
"Link to a file" : "連結到一個檔案",
@@ -383,6 +380,17 @@ OC.L10N.register(
"Share note for recipient saved" : "已儲存給收件者的分享備註",
"Share password saved" : "已保存分享密碼",
"Share permissions saved" : "已儲存分享權限",
+ "To upload files to {folder}, you need to provide your name first." : "要上傳檔案至 {folder},您需要先提供您的姓名。",
+ "Upload files to {folder}" : "上傳檔案到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "請確認您的姓名以上傳檔案至 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
+ "Names must not be empty." : "名稱不能為空。",
+ "Names must not start with a dot." : "名稱不能以「點」開始。",
+ "\"{char}\" is not allowed inside a name." : "名稱中不允許出現「{char}」。",
+ "\"{segment}\" is a reserved name and not allowed." : "「{segment}」是保留名稱,不允許用在名稱。",
+ "\"{extension}\" is not an allowed name." : "「{extension}」是不允許的名稱。",
+ "Names must not end with \"{extension}\"." : "名稱不能以「{extension}」結尾。",
+ "Invalid name." : "無效的名稱。",
"Shared by" : "分享自",
"Shared with" : "分享給",
"Password created successfully" : "成功創建了密碼",
@@ -413,15 +421,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "沒有在 {remote} 找到相容的伺服器",
"Invalid server URL" : "無效的伺服器 URL",
"Failed to add the public link to your Nextcloud" : "無法將公開連結加入您的 Nextcloud",
- "Files" : "檔案",
+ "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的鏈接共享",
"Download all files" : "下載所有檔案",
+ "_1 email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"],
+ "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"],
"Search for share recipients" : "搜尋分享參與者",
"No recommendations. Start typing." : "沒有建議。開始輸入。",
- "Password field can't be empty" : "密碼欄位不可為空白",
- "Allow download" : "允許下載",
- "Share expire date saved" : "已儲存分享過期日期",
- "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的鏈接共享",
- "_1 email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"],
- "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"]
+ "To upload files, you need to provide your name first." : "要上傳檔案,您需要先提供您的姓名。",
+ "Enter your name" : "輸入您的名稱",
+ "Submit name" : "遞交名字",
+ "Name" : "名字",
+ "Share with accounts, teams, federated cloud id" : "與帳戶、團隊、聯邦雲端ID 分享",
+ "Email, federated cloud id" : "電郵地址、聯邦雲端 ID",
+ "Filename must not be empty." : "檔案名稱不能為空。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json
index 5ecda76da0d..724afdb0ae8 100644
--- a/apps/files_sharing/l10n/zh_HK.json
+++ b/apps/files_sharing/l10n/zh_HK.json
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "為已接受的分享選擇一個默認資料夾",
"Reset" : "重設",
"Reset folder to system default" : "將資料夾重置為系統默認值",
- "Share expiration: " : "共享有效期‌:",
+ "Share expiration: {date}" : "分享到期日:{date}",
"Share Expiration" : "共享有效期‌",
"group" : "群組",
"conversation" : "對話",
@@ -255,14 +255,9 @@
"File drop" : "檔案拖放",
"Upload files to {foldername}." : "上傳檔案至 {foldername}。",
"By uploading files, you agree to the terms of service." : "上傳檔案即表示您同意服務條款。",
+ "Successfully uploaded files" : "檔案上傳成功",
"View terms of service" : "檢視服務條款",
"Terms of service" : "服務條款",
- "Upload files to {folder}" : "上傳檔案到 {folder}",
- "Submit name" : "遞交名字",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
- "To upload files, you need to provide your name first." : "要上傳檔案,您需要先提供您的姓名。",
- "Name" : "名字",
- "Enter your name" : "輸入您的名稱",
"Share with {userName}" : "與 {userName} 分享",
"Share with email {email}" : "與電郵地址 {email} 分享",
"Share with group" : "與群組分享",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。",
+ "Share with accounts, teams, federated cloud IDs" : "與帳戶、團隊、聯邦雲端 ID 分享",
+ "Share with accounts and teams" : "與帳號及團隊分享",
+ "Federated cloud ID" : "雲端聯邦 ID",
+ "Email, federated cloud ID" : "電郵地址、聯邦雲端 ID",
"Unable to load the shares list" : "無法載入分享清單",
"Expires {relativetime}" : "有效期至 {relativetime}",
"this share just expired." : "此分享剛過期。",
"Shared with you by {owner}" : "{owner} 已經和您分享",
"Internal shares" : "內部分享",
"Internal shares explanation" : "內部分享說明",
- "Share with accounts and teams" : "與帳號及團隊分享",
"External shares" : "外部分享",
"External shares explanation" : "外部分享說明",
- "Email, federated cloud id" : "電郵地址、聯邦雲端 ID",
"Additional shares" : "額外分享",
"Additional shares explanation" : "額外分享說明",
"Link to a file" : "連結到一個檔案",
@@ -381,6 +378,17 @@
"Share note for recipient saved" : "已儲存給收件者的分享備註",
"Share password saved" : "已保存分享密碼",
"Share permissions saved" : "已儲存分享權限",
+ "To upload files to {folder}, you need to provide your name first." : "要上傳檔案至 {folder},您需要先提供您的姓名。",
+ "Upload files to {folder}" : "上傳檔案到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "請確認您的姓名以上傳檔案至 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
+ "Names must not be empty." : "名稱不能為空。",
+ "Names must not start with a dot." : "名稱不能以「點」開始。",
+ "\"{char}\" is not allowed inside a name." : "名稱中不允許出現「{char}」。",
+ "\"{segment}\" is a reserved name and not allowed." : "「{segment}」是保留名稱,不允許用在名稱。",
+ "\"{extension}\" is not an allowed name." : "「{extension}」是不允許的名稱。",
+ "Names must not end with \"{extension}\"." : "名稱不能以「{extension}」結尾。",
+ "Invalid name." : "無效的名稱。",
"Shared by" : "分享自",
"Shared with" : "分享給",
"Password created successfully" : "成功創建了密碼",
@@ -411,15 +419,18 @@
"No compatible server found at {remote}" : "沒有在 {remote} 找到相容的伺服器",
"Invalid server URL" : "無效的伺服器 URL",
"Failed to add the public link to your Nextcloud" : "無法將公開連結加入您的 Nextcloud",
- "Files" : "檔案",
+ "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的鏈接共享",
"Download all files" : "下載所有檔案",
+ "_1 email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"],
+ "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"],
"Search for share recipients" : "搜尋分享參與者",
"No recommendations. Start typing." : "沒有建議。開始輸入。",
- "Password field can't be empty" : "密碼欄位不可為空白",
- "Allow download" : "允許下載",
- "Share expire date saved" : "已儲存分享過期日期",
- "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的鏈接共享",
- "_1 email address already added_::_{count} email addresses already added_" : ["已添加 {count} 個電郵地址"],
- "_1 email address added_::_{count} email addresses added_" : ["添加了{count}個電郵地址"]
+ "To upload files, you need to provide your name first." : "要上傳檔案,您需要先提供您的姓名。",
+ "Enter your name" : "輸入您的名稱",
+ "Submit name" : "遞交名字",
+ "Name" : "名字",
+ "Share with accounts, teams, federated cloud id" : "與帳戶、團隊、聯邦雲端ID 分享",
+ "Email, federated cloud id" : "電郵地址、聯邦雲端 ID",
+ "Filename must not be empty." : "檔案名稱不能為空。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js
index 87ee702d58e..764bd713123 100644
--- a/apps/files_sharing/l10n/zh_TW.js
+++ b/apps/files_sharing/l10n/zh_TW.js
@@ -185,7 +185,7 @@ OC.L10N.register(
"Set default folder for accepted shares" : "為接受的分享設定預設資料夾",
"Reset" : "重設",
"Reset folder to system default" : "將資料夾重設回系統預設",
- "Share expiration: " : "分享過期:",
+ "Share expiration: {date}" : "分享到期日:{date}",
"Share Expiration" : "分享過期",
"group" : "群組",
"conversation" : "對話",
@@ -257,14 +257,9 @@ OC.L10N.register(
"File drop" : "檔案投遞",
"Upload files to {foldername}." : "上傳檔案至 {foldername}。",
"By uploading files, you agree to the terms of service." : "上傳檔案即表示您同意服務條款。",
+ "Successfully uploaded files" : "已成功上傳檔案",
"View terms of service" : "檢視服務條款",
"Terms of service" : "服務條款",
- "Upload files to {folder}" : "上傳檔案到 {folder}",
- "Submit name" : "遞交名稱",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
- "To upload files, you need to provide your name first." : "要上傳檔案,您必須先提供您的名字。",
- "Name" : "名稱",
- "Enter your name" : "輸入您的名稱",
"Share with {userName}" : "與 {userName} 分享",
"Share with email {email}" : "與電子郵件 {email} 分享",
"Share with group" : "與群組分享",
@@ -313,16 +308,18 @@ OC.L10N.register(
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。",
+ "Share with accounts, teams, federated cloud IDs" : "與帳號、團隊、聯邦雲端 ID 分享",
+ "Share with accounts and teams" : "與帳號及團隊分享",
+ "Federated cloud ID" : "聯邦雲端 ID",
+ "Email, federated cloud ID" : "電子郵件、聯邦雲端 ID",
"Unable to load the shares list" : "無法載入分享列表",
"Expires {relativetime}" : "過期於 {relativetime}",
"this share just expired." : "此分享剛過期。",
"Shared with you by {owner}" : "{owner} 已與您分享",
"Internal shares" : "內部分享",
"Internal shares explanation" : "內部分享說明",
- "Share with accounts and teams" : "與帳號及團隊分享",
"External shares" : "外部分享",
"External shares explanation" : "外部分享說明",
- "Email, federated cloud id" : "電子郵件、聯邦雲端 ID",
"Additional shares" : "額外分享",
"Additional shares explanation" : "額外分享說明",
"Link to a file" : "檔案連結",
@@ -383,6 +380,17 @@ OC.L10N.register(
"Share note for recipient saved" : "已儲存給收件者的分享備註",
"Share password saved" : "分享密碼已儲存",
"Share permissions saved" : "已儲存分享權限",
+ "To upload files to {folder}, you need to provide your name first." : "要上傳檔案至 {folder},您必須先提供您的名稱。",
+ "Upload files to {folder}" : "上傳檔案到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "請確認您的名稱以上傳檔案至 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
+ "Names must not be empty." : "名稱不能為空。",
+ "Names must not start with a dot." : "名稱不能以點開頭。",
+ "\"{char}\" is not allowed inside a name." : "「{char}」不能在名稱內使用。",
+ "\"{segment}\" is a reserved name and not allowed." : "「{segment}」為保留名稱且不允許使用。",
+ "\"{extension}\" is not an allowed name." : "「{extension}」不是允許的名稱。",
+ "Names must not end with \"{extension}\"." : "名稱不能以「{extension}」結尾。",
+ "Invalid name." : "無效的名稱。",
"Shared by" : "分享者",
"Shared with" : "分享給",
"Password created successfully" : "成功建立密碼",
@@ -413,15 +421,18 @@ OC.L10N.register(
"No compatible server found at {remote}" : "在 {remote} 找不到相容的伺服器",
"Invalid server URL" : "無效的伺服器 URL",
"Failed to add the public link to your Nextcloud" : "無法將公開連結新增到您的 Nextcloud",
- "Files" : "檔案",
+ "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的連結分享",
"Download all files" : "下載所有檔案",
+ "_1 email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"],
+ "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"],
"Search for share recipients" : "搜尋分享接收者",
"No recommendations. Start typing." : "沒有建議。請開始輸入。",
- "Password field can't be empty" : "密碼欄位不能為空",
- "Allow download" : "允許下載",
- "Share expire date saved" : "已儲存分享過期日期",
- "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的連結分享",
- "_1 email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"],
- "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"]
+ "To upload files, you need to provide your name first." : "要上傳檔案,您必須先提供您的名字。",
+ "Enter your name" : "輸入您的名稱",
+ "Submit name" : "遞交名稱",
+ "Name" : "名稱",
+ "Share with accounts, teams, federated cloud id" : "與帳號、團隊、聯邦雲端ID 分享",
+ "Email, federated cloud id" : "電子郵件、聯邦雲端 ID",
+ "Filename must not be empty." : "檔案名稱不能為空。"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json
index acbf27f4c22..580be7e28e2 100644
--- a/apps/files_sharing/l10n/zh_TW.json
+++ b/apps/files_sharing/l10n/zh_TW.json
@@ -183,7 +183,7 @@
"Set default folder for accepted shares" : "為接受的分享設定預設資料夾",
"Reset" : "重設",
"Reset folder to system default" : "將資料夾重設回系統預設",
- "Share expiration: " : "分享過期:",
+ "Share expiration: {date}" : "分享到期日:{date}",
"Share Expiration" : "分享過期",
"group" : "群組",
"conversation" : "對話",
@@ -255,14 +255,9 @@
"File drop" : "檔案投遞",
"Upload files to {foldername}." : "上傳檔案至 {foldername}。",
"By uploading files, you agree to the terms of service." : "上傳檔案即表示您同意服務條款。",
+ "Successfully uploaded files" : "已成功上傳檔案",
"View terms of service" : "檢視服務條款",
"Terms of service" : "服務條款",
- "Upload files to {folder}" : "上傳檔案到 {folder}",
- "Submit name" : "遞交名稱",
- "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
- "To upload files, you need to provide your name first." : "要上傳檔案,您必須先提供您的名字。",
- "Name" : "名稱",
- "Enter your name" : "輸入您的名稱",
"Share with {userName}" : "與 {userName} 分享",
"Share with email {email}" : "與電子郵件 {email} 分享",
"Share with group" : "與群組分享",
@@ -311,16 +306,18 @@
"Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "使用此方法與組織內的個人或團隊分享檔案。如果收件者已經可以存取分享但找不到,您可以將內部分享連結傳送給他們,以方便存取。",
"Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "使用此方法與組織外的個人或組織分享檔案。檔案與資料夾可以透過公開的分享連結與電子郵件地址來分享。您也可以使用其他 Nextcloud 帳號的聯邦雲端 ID,將檔案分享給託管在不同站台上的其他 Nextcloud 帳號。",
"Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "不屬於內部或外部分享的分享。這可能是來自應用程式或其他來源的分享。",
+ "Share with accounts, teams, federated cloud IDs" : "與帳號、團隊、聯邦雲端 ID 分享",
+ "Share with accounts and teams" : "與帳號及團隊分享",
+ "Federated cloud ID" : "聯邦雲端 ID",
+ "Email, federated cloud ID" : "電子郵件、聯邦雲端 ID",
"Unable to load the shares list" : "無法載入分享列表",
"Expires {relativetime}" : "過期於 {relativetime}",
"this share just expired." : "此分享剛過期。",
"Shared with you by {owner}" : "{owner} 已與您分享",
"Internal shares" : "內部分享",
"Internal shares explanation" : "內部分享說明",
- "Share with accounts and teams" : "與帳號及團隊分享",
"External shares" : "外部分享",
"External shares explanation" : "外部分享說明",
- "Email, federated cloud id" : "電子郵件、聯邦雲端 ID",
"Additional shares" : "額外分享",
"Additional shares explanation" : "額外分享說明",
"Link to a file" : "檔案連結",
@@ -381,6 +378,17 @@
"Share note for recipient saved" : "已儲存給收件者的分享備註",
"Share password saved" : "分享密碼已儲存",
"Share permissions saved" : "已儲存分享權限",
+ "To upload files to {folder}, you need to provide your name first." : "要上傳檔案至 {folder},您必須先提供您的名稱。",
+ "Upload files to {folder}" : "上傳檔案到 {folder}",
+ "Please confirm your name to upload files to {folder}" : "請確認您的名稱以上傳檔案至 {folder}",
+ "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} 與您分享了一個資料夾。",
+ "Names must not be empty." : "名稱不能為空。",
+ "Names must not start with a dot." : "名稱不能以點開頭。",
+ "\"{char}\" is not allowed inside a name." : "「{char}」不能在名稱內使用。",
+ "\"{segment}\" is a reserved name and not allowed." : "「{segment}」為保留名稱且不允許使用。",
+ "\"{extension}\" is not an allowed name." : "「{extension}」不是允許的名稱。",
+ "Names must not end with \"{extension}\"." : "名稱不能以「{extension}」結尾。",
+ "Invalid name." : "無效的名稱。",
"Shared by" : "分享者",
"Shared with" : "分享給",
"Password created successfully" : "成功建立密碼",
@@ -411,15 +419,18 @@
"No compatible server found at {remote}" : "在 {remote} 找不到相容的伺服器",
"Invalid server URL" : "無效的伺服器 URL",
"Failed to add the public link to your Nextcloud" : "無法將公開連結新增到您的 Nextcloud",
- "Files" : "檔案",
+ "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的連結分享",
"Download all files" : "下載所有檔案",
+ "_1 email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"],
+ "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"],
"Search for share recipients" : "搜尋分享接收者",
"No recommendations. Start typing." : "沒有建議。請開始輸入。",
- "Password field can't be empty" : "密碼欄位不能為空",
- "Allow download" : "允許下載",
- "Share expire date saved" : "已儲存分享過期日期",
- "You are not allowed to edit link shares that you don't own" : "您無權編輯不屬於您的連結分享",
- "_1 email address already added_::_{count} email addresses already added_" : ["已新增 {count} 個電子郵件地址"],
- "_1 email address added_::_{count} email addresses added_" : ["已新增 {count} 個電子郵件地址"]
+ "To upload files, you need to provide your name first." : "要上傳檔案,您必須先提供您的名字。",
+ "Enter your name" : "輸入您的名稱",
+ "Submit name" : "遞交名稱",
+ "Name" : "名稱",
+ "Share with accounts, teams, federated cloud id" : "與帳號、團隊、聯邦雲端ID 分享",
+ "Email, federated cloud id" : "電子郵件、聯邦雲端 ID",
+ "Filename must not be empty." : "檔案名稱不能為空。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php b/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php
index 00bf7d0dde9..bcdc4a4ff97 100644
--- a/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php
+++ b/apps/files_sharing/lib/Activity/Settings/PublicLinksUpload.php
@@ -61,6 +61,6 @@ class PublicLinksUpload extends ShareActivitySettings {
* @since 11.0.0
*/
public function isDefaultEnabledMail() {
- return true;
+ return false;
}
}
diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php
index 4c47d3fc2c0..8ddb3afaf33 100644
--- a/apps/files_sharing/lib/AppInfo/Application.php
+++ b/apps/files_sharing/lib/AppInfo/Application.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,6 +13,7 @@ use OC\User\DisplayNameCache;
use OCA\Files\Event\LoadAdditionalScriptsEvent;
use OCA\Files\Event\LoadSidebar;
use OCA\Files_Sharing\Capabilities;
+use OCA\Files_Sharing\Config\ConfigLexicon;
use OCA\Files_Sharing\External\Manager;
use OCA\Files_Sharing\External\MountProvider as ExternalMountProvider;
use OCA\Files_Sharing\Helper;
@@ -106,6 +108,8 @@ class Application extends App implements IBootstrap {
// File request auth
$context->registerEventListener(BeforeTemplateRenderedEvent::class, LoadPublicFileRequestAuthListener::class);
+
+ $context->registerConfigLexicon(ConfigLexicon::class);
}
public function boot(IBootContext $context): void {
diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php
index ccc93eb0952..024df5d3f43 100644
--- a/apps/files_sharing/lib/Cache.php
+++ b/apps/files_sharing/lib/Cache.php
@@ -68,7 +68,7 @@ class Cache extends CacheJail {
return $this->root;
}
- protected function getGetUnjailedRoot(): string {
+ public function getGetUnjailedRoot(): string {
return $this->sourceRootInfo->getPath();
}
diff --git a/apps/files_sharing/lib/Config/ConfigLexicon.php b/apps/files_sharing/lib/Config/ConfigLexicon.php
new file mode 100644
index 00000000000..a463b4e7ef2
--- /dev/null
+++ b/apps/files_sharing/lib/Config/ConfigLexicon.php
@@ -0,0 +1,39 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Config;
+
+use NCU\Config\Lexicon\ConfigLexiconEntry;
+use NCU\Config\Lexicon\ConfigLexiconStrictness;
+use NCU\Config\Lexicon\IConfigLexicon;
+use NCU\Config\ValueType;
+
+/**
+ * Config Lexicon for files_sharing.
+ *
+ * Please Add & Manage your Config Keys in that file and keep the Lexicon up to date!
+ *
+ * {@see IConfigLexicon}
+ */
+class ConfigLexicon implements IConfigLexicon {
+ public const SHOW_FEDERATED_AS_INTERNAL = 'show_federated_shares_as_internal';
+
+ public function getStrictness(): ConfigLexiconStrictness {
+ return ConfigLexiconStrictness::IGNORE;
+ }
+
+ public function getAppConfigs(): array {
+ return [
+ new ConfigLexiconEntry(self::SHOW_FEDERATED_AS_INTERNAL, ValueType::BOOL, false, 'shows federated shares as internal shares', true),
+ ];
+ }
+
+ public function getUserConfigs(): array {
+ return [];
+ }
+}
diff --git a/apps/files_sharing/lib/Controller/PublicPreviewController.php b/apps/files_sharing/lib/Controller/PublicPreviewController.php
index 91dead57e80..f275001f162 100644
--- a/apps/files_sharing/lib/Controller/PublicPreviewController.php
+++ b/apps/files_sharing/lib/Controller/PublicPreviewController.php
@@ -11,6 +11,7 @@ use OCP\AppFramework\Http\Attribute\OpenAPI;
use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\FileDisplayResponse;
+use OCP\AppFramework\Http\RedirectResponse;
use OCP\AppFramework\PublicShareController;
use OCP\Constants;
use OCP\Files\Folder;
@@ -18,6 +19,7 @@ use OCP\Files\NotFoundException;
use OCP\IPreview;
use OCP\IRequest;
use OCP\ISession;
+use OCP\Preview\IMimeIconProvider;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager as ShareManager;
use OCP\Share\IShare;
@@ -33,6 +35,7 @@ class PublicPreviewController extends PublicShareController {
private ShareManager $shareManager,
ISession $session,
private IPreview $previewManager,
+ private IMimeIconProvider $mimeIconProvider,
) {
parent::__construct($appName, $request, $session);
}
@@ -63,9 +66,11 @@ class PublicPreviewController extends PublicShareController {
* @param int $x Width of the preview
* @param int $y Height of the preview
* @param bool $a Whether to not crop the preview
- * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, list<empty>, array{}>
+ * @param bool $mimeFallback Whether to fallback to the mime icon if no preview is available
+ * @return FileDisplayResponse<Http::STATUS_OK, array{Content-Type: string}>|DataResponse<Http::STATUS_BAD_REQUEST|Http::STATUS_FORBIDDEN|Http::STATUS_NOT_FOUND, list<empty>, array{}>|RedirectResponse<Http::STATUS_SEE_OTHER, array{}>
*
* 200: Preview returned
+ * 303: Redirect to the mime icon url if mimeFallback is true
* 400: Getting preview is not possible
* 403: Getting preview is not allowed
* 404: Share or preview not found
@@ -79,6 +84,7 @@ class PublicPreviewController extends PublicShareController {
int $x = 32,
int $y = 32,
$a = false,
+ bool $mimeFallback = false,
) {
$cacheForSeconds = 60 * 60 * 24; // 1 day
@@ -101,7 +107,7 @@ class PublicPreviewController extends PublicShareController {
$downloadForbidden = $attributes?->getAttribute('permissions', 'download') === false;
// Is this header is set it means our UI is doing a preview for no-download shares
// we check a header so we at least prevent people from using the link directly (obfuscation)
- $isPublicPreview = $this->request->getHeader('X-NC-Preview') === 'true';
+ $isPublicPreview = $this->request->getHeader('x-nc-preview') === 'true';
if ($isPublicPreview && $downloadForbidden) {
// Only cache for 15 minutes on public preview requests to quickly remove from cache
@@ -124,6 +130,12 @@ class PublicPreviewController extends PublicShareController {
$response->cacheFor($cacheForSeconds);
return $response;
} catch (NotFoundException $e) {
+ // If we have no preview enabled, we can redirect to the mime icon if any
+ if ($mimeFallback) {
+ if ($url = $this->mimeIconProvider->getMimeIconUrl($file->getMimeType())) {
+ return new RedirectResponse($url);
+ }
+ }
return new DataResponse([], Http::STATUS_NOT_FOUND);
} catch (\InvalidArgumentException $e) {
return new DataResponse([], Http::STATUS_BAD_REQUEST);
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index 81ead3c4978..23ba9da1568 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -94,6 +94,7 @@ class ShareAPIController extends OCSController {
private LoggerInterface $logger,
private IProviderFactory $factory,
private IMailer $mailer,
+ private ITagManager $tagManager,
private ?string $userId = null,
) {
parent::__construct($appName, $request);
@@ -472,7 +473,7 @@ class ShareAPIController extends OCSController {
$share = $this->formatShare($share);
if ($include_tags) {
- $share = Helper::populateTags([$share], Server::get(ITagManager::class));
+ $share = $this->populateTags([$share]);
} else {
$share = [$share];
}
@@ -847,7 +848,7 @@ class ShareAPIController extends OCSController {
}
if ($includeTags) {
- $formatted = Helper::populateTags($formatted, Server::get(ITagManager::class));
+ $formatted = $this->populateTags($formatted);
}
return $formatted;
@@ -1100,8 +1101,7 @@ class ShareAPIController extends OCSController {
$formatted = $this->fixMissingDisplayName($formatted);
if ($includeTags) {
- $formatted =
- Helper::populateTags($formatted, Server::get(ITagManager::class));
+ $formatted = $this->populateTags($formatted);
}
return $formatted;
@@ -2118,6 +2118,8 @@ class ShareAPIController extends OCSController {
$hideDownload = $hideDownload && $originalShare->getHideDownload();
// allow download if already allowed by previous share or when the current share allows downloading
$canDownload = $canDownload || $inheritedAttributes === null || $inheritedAttributes->getAttribute('permissions', 'download') !== false;
+ } elseif ($node->getStorage()->instanceOfStorage(Storage::class)) {
+ $canDownload = true; // in case of federation storage, we can expect the download to be activated by default
}
}
@@ -2219,4 +2221,41 @@ class ShareAPIController extends OCSController {
throw new OCSException($this->l->t('Failed to generate a unique token'));
}
}
+
+ /**
+ * Populate the result set with file tags
+ *
+ * @psalm-template T of array{tags?: list<string>, file_source: int, ...array<string, mixed>}
+ * @param list<T> $fileList
+ * @return list<T> file list populated with tags
+ */
+ private function populateTags(array $fileList): array {
+ $tagger = $this->tagManager->load('files');
+ $tags = $tagger->getTagsForObjects(array_map(static fn (array $fileData) => $fileData['file_source'], $fileList));
+
+ if (!is_array($tags)) {
+ throw new \UnexpectedValueException('$tags must be an array');
+ }
+
+ // Set empty tag array
+ foreach ($fileList as &$fileData) {
+ $fileData['tags'] = [];
+ }
+ unset($fileData);
+
+ if (!empty($tags)) {
+ foreach ($tags as $fileId => $fileTags) {
+ foreach ($fileList as &$fileData) {
+ if ($fileId !== $fileData['file_source']) {
+ continue;
+ }
+
+ $fileData['tags'] = $fileTags;
+ }
+ unset($fileData);
+ }
+ }
+
+ return $fileList;
+ }
}
diff --git a/apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php b/apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php
index 686ba32fd49..afba45cac4a 100644
--- a/apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php
+++ b/apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php
@@ -91,6 +91,9 @@ class DefaultPublicShareTemplateProvider implements IPublicShareTemplateProvider
'disclaimer',
$this->appConfig->getValueString('core', 'shareapi_public_link_disclaimertext'),
);
+ // file drops do not request the root folder so we need to provide label and note if available
+ $this->initialState->provideInitialState('label', $share->getLabel());
+ $this->initialState->provideInitialState('note', $share->getNote());
}
// Set up initial state
$this->initialState->provideInitialState('isPublic', true);
@@ -104,13 +107,12 @@ class DefaultPublicShareTemplateProvider implements IPublicShareTemplateProvider
Util::addInitScript(Application::APP_ID, 'init');
Util::addInitScript(Application::APP_ID, 'init-public');
Util::addScript('files', 'main');
+ Util::addScript(Application::APP_ID, 'public-nickname-handler');
// Add file-request script if needed
$attributes = $share->getAttributes();
$isFileRequest = $attributes?->getAttribute('fileRequest', 'enabled') === true;
- if ($isFileRequest) {
- Util::addScript(Application::APP_ID, 'public-file-request');
- }
+ $this->initialState->provideInitialState('isFileRequest', $isFileRequest);
// Load Viewer scripts
if (class_exists(LoadViewer::class)) {
@@ -149,10 +151,7 @@ class DefaultPublicShareTemplateProvider implements IPublicShareTemplateProvider
$headerActions = [];
if ($view !== 'public-file-drop' && !$share->getHideDownload()) {
// The download URL is used for the "download" header action as well as in some cases for the direct link
- $downloadUrl = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.downloadShare', [
- 'token' => $token,
- 'filename' => ($shareNode instanceof File) ? $shareNode->getName() : null,
- ]);
+ $downloadUrl = $this->urlGenerator->getAbsoluteURL('/public.php/dav/files/' . $token . '/?accept=zip');
// If not a file drop, then add the download header action
$headerActions[] = new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $downloadUrl, 0, (string)$shareNode->getSize());
diff --git a/apps/files_sharing/lib/External/Scanner.php b/apps/files_sharing/lib/External/Scanner.php
index e45d3723923..2b0741b4b96 100644
--- a/apps/files_sharing/lib/External/Scanner.php
+++ b/apps/files_sharing/lib/External/Scanner.php
@@ -6,6 +6,7 @@
*/
namespace OCA\Files_Sharing\External;
+use OC\Files\Cache\CacheEntry;
use OC\ForbiddenException;
use OCP\Files\NotFoundException;
use OCP\Files\StorageInvalidException;
@@ -29,7 +30,7 @@ class Scanner extends \OC\Files\Cache\Scanner {
* @param string $file file to scan
* @param int $reuseExisting
* @param int $parentId
- * @param \OC\Files\Cache\CacheEntry|array|null|false $cacheData existing data in the cache for the file to be scanned
+ * @param CacheEntry|array|null|false $cacheData existing data in the cache for the file to be scanned
* @param bool $lock set to false to disable getting an additional read lock during scanning
* @param array|null $data the metadata for the file, as returned by the storage
* @return array|null an array of metadata of the scanned file
diff --git a/apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php b/apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php
index f1e054c7ee5..6da2476194b 100644
--- a/apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php
+++ b/apps/files_sharing/lib/Listener/LoadPublicFileRequestAuthListener.php
@@ -10,6 +10,7 @@ namespace OCA\Files_Sharing\Listener;
use OCA\Files_Sharing\AppInfo\Application;
use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Services\IInitialState;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\Share\IManager;
@@ -19,6 +20,7 @@ use OCP\Util;
class LoadPublicFileRequestAuthListener implements IEventListener {
public function __construct(
private IManager $shareManager,
+ private IInitialState $initialState,
) {
}
@@ -51,9 +53,9 @@ class LoadPublicFileRequestAuthListener implements IEventListener {
// Ignore, this is not a file request or the share does not exist
}
- if ($isFileRequest) {
- // Add the script to the public page
- Util::addScript(Application::APP_ID, 'public-file-request');
- }
+ Util::addScript(Application::APP_ID, 'public-nickname-handler');
+
+ // Add file-request script if needed
+ $this->initialState->provideInitialState('isFileRequest', $isFileRequest);
}
}
diff --git a/apps/files_sharing/lib/Listener/LoadSidebarListener.php b/apps/files_sharing/lib/Listener/LoadSidebarListener.php
index b00e937d675..9f0eee9159a 100644
--- a/apps/files_sharing/lib/Listener/LoadSidebarListener.php
+++ b/apps/files_sharing/lib/Listener/LoadSidebarListener.php
@@ -11,9 +11,12 @@ namespace OCA\Files_Sharing\Listener;
use OCA\Files\Event\LoadSidebar;
use OCA\Files_Sharing\AppInfo\Application;
+use OCA\Files_Sharing\Config\ConfigLexicon;
use OCP\AppFramework\Services\IInitialState;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
+use OCP\IAppConfig;
+use OCP\Server;
use OCP\Share\IManager;
use OCP\Util;
@@ -33,6 +36,8 @@ class LoadSidebarListener implements IEventListener {
return;
}
+ $appConfig = Server::get(IAppConfig::class);
+ $this->initialState->provideInitialState('showFederatedSharesAsInternal', $appConfig->getValueBool('files_sharing', ConfigLexicon::SHOW_FEDERATED_AS_INTERNAL));
Util::addScript(Application::APP_ID, 'files_sharing_tab', 'files');
}
}
diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php
index ea99023676b..91c392de6eb 100644
--- a/apps/files_sharing/lib/MountProvider.php
+++ b/apps/files_sharing/lib/MountProvider.php
@@ -60,7 +60,8 @@ class MountProvider implements IMountProvider {
$superShares = $this->buildSuperShares($shares, $user);
- $mounts = $this->mountManager->getAll();
+ $otherMounts = $this->mountManager->getAll();
+ $mounts = [];
$view = new View('/' . $user->getUID() . '/files');
$ownerViews = [];
$sharingDisabledForUser = $this->shareManager->sharingDisabledForUser($user->getUID());
@@ -90,7 +91,7 @@ class MountProvider implements IMountProvider {
$shareId = (int)$parentShare->getId();
$mount = new SharedMount(
'\OCA\Files_Sharing\SharedStorage',
- $mounts,
+ array_merge($mounts, $otherMounts),
[
'user' => $user->getUID(),
// parent share
@@ -105,7 +106,7 @@ class MountProvider implements IMountProvider {
$foldersExistCache,
$this->eventDispatcher,
$user,
- ($shareId <= $maxValidatedShare)
+ ($shareId <= $maxValidatedShare),
);
$newMaxValidatedShare = max($shareId, $newMaxValidatedShare);
diff --git a/apps/files_sharing/lib/SharedStorage.php b/apps/files_sharing/lib/SharedStorage.php
index dfd4854de1f..1014b0d37d9 100644
--- a/apps/files_sharing/lib/SharedStorage.php
+++ b/apps/files_sharing/lib/SharedStorage.php
@@ -555,4 +555,9 @@ class SharedStorage extends Jail implements LegacyISharedStorage, ISharedStorage
$this->init();
return parent::getUnjailedPath($path);
}
+
+ public function getDirectDownload(string $path): array|false {
+ // disable direct download for shares
+ return [];
+ }
}
diff --git a/apps/files_sharing/openapi.json b/apps/files_sharing/openapi.json
index e70764a59f2..627c25ce8ea 100644
--- a/apps/files_sharing/openapi.json
+++ b/apps/files_sharing/openapi.json
@@ -1477,6 +1477,26 @@
1
]
}
+ },
+ {
+ "name": "mimeFallback",
+ "in": "query",
+ "description": "Whether to fallback to the mime icon if no preview is available",
+ "schema": {
+ "type": "integer",
+ "default": 0,
+ "enum": [
+ 0,
+ 1
+ ]
+ }
+ },
+ {
+ "name": "x-nc-preview",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ }
}
],
"responses": {
@@ -1514,6 +1534,16 @@
"schema": {}
}
}
+ },
+ "303": {
+ "description": "Redirect to the mime icon url if mimeFallback is true",
+ "headers": {
+ "Location": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
}
}
}
@@ -1551,11 +1581,13 @@
"password": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Password of the share"
},
"dir": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Subdirectory to get info about"
},
"depth": {
@@ -1759,12 +1791,14 @@
"path": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Path of the share"
},
"permissions": {
"type": "integer",
"format": "int64",
"nullable": true,
+ "default": null,
"description": "Permissions for the share"
},
"shareType": {
@@ -1776,11 +1810,13 @@
"shareWith": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "The entity this should be shared with"
},
"publicUpload": {
"type": "string",
"nullable": true,
+ "default": null,
"enum": [
"true",
"false"
@@ -1795,11 +1831,13 @@
"sendPasswordByTalk": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Send the password for the share over Talk"
},
"expireDate": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "The expiry date of the share in the user's timezone at 00:00. If $expireDate is not supplied or set to `null`, the system default will be used."
},
"note": {
@@ -1815,11 +1853,13 @@
"attributes": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Additional attributes for the share"
},
"sendMail": {
"type": "string",
"nullable": true,
+ "default": null,
"enum": [
"false",
"true"
@@ -2274,56 +2314,67 @@
"type": "integer",
"format": "int64",
"nullable": true,
+ "default": null,
"description": "New permissions"
},
"password": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "New password"
},
"sendPasswordByTalk": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "New condition if the password should be send over Talk"
},
"publicUpload": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "New condition if public uploading is allowed"
},
"expireDate": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "New expiry date"
},
"note": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "New note"
},
"label": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "New label"
},
"hideDownload": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "New condition if the download should be hidden"
},
"attributes": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "New additional attributes"
},
"sendMail": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "if the share should be send by mail. Considering the share already exists, no mail will be send after the share is updated. You will have to use the sendMail action to send the mail."
},
"token": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "New token"
}
}
@@ -3076,7 +3127,8 @@
"description": "Limit to specific item types",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -3105,6 +3157,7 @@
"description": "Limit to specific share types",
"schema": {
"nullable": true,
+ "default": null,
"oneOf": [
{
"type": "integer",
@@ -3244,6 +3297,7 @@
"description": "Limit to specific share types",
"schema": {
"nullable": true,
+ "default": null,
"oneOf": [
{
"type": "integer",
diff --git a/apps/files_sharing/src/components/ShareExpiryTime.vue b/apps/files_sharing/src/components/ShareExpiryTime.vue
index b789bc92db5..939142616e9 100644
--- a/apps/files_sharing/src/components/ShareExpiryTime.vue
+++ b/apps/files_sharing/src/components/ShareExpiryTime.vue
@@ -9,7 +9,7 @@
<NcButton v-if="expiryTime"
class="hint-icon"
type="tertiary"
- :aria-label="t('files_sharing', 'Share expiration: ') + new Date(expiryTime).toLocaleString()">
+ :aria-label="t('files_sharing', 'Share expiration: {date}', { date: new Date(expiryTime).toLocaleString() })">
<template #icon>
<ClockIcon :size="20" />
</template>
diff --git a/apps/files_sharing/src/components/SharingEntryLink.vue b/apps/files_sharing/src/components/SharingEntryLink.vue
index 781626a1ec9..702b876306f 100644
--- a/apps/files_sharing/src/components/SharingEntryLink.vue
+++ b/apps/files_sharing/src/components/SharingEntryLink.vue
@@ -223,13 +223,14 @@
</template>
<script>
+import { showError, showSuccess } from '@nextcloud/dialogs'
import { emit } from '@nextcloud/event-bus'
+import { t } from '@nextcloud/l10n'
+import moment from '@nextcloud/moment'
import { generateUrl, getBaseUrl } from '@nextcloud/router'
-import { showError, showSuccess } from '@nextcloud/dialogs'
import { ShareType } from '@nextcloud/sharing'
-import VueQrcode from '@chenfengyuan/vue-qrcode'
-import moment from '@nextcloud/moment'
+import VueQrcode from '@chenfengyuan/vue-qrcode'
import NcActionButton from '@nextcloud/vue/components/NcActionButton'
import NcActionCheckbox from '@nextcloud/vue/components/NcActionCheckbox'
import NcActionInput from '@nextcloud/vue/components/NcActionInput'
@@ -258,7 +259,7 @@ import GeneratePassword from '../utils/GeneratePassword.ts'
import Share from '../models/Share.ts'
import SharesMixin from '../mixins/SharesMixin.js'
import ShareDetails from '../mixins/ShareDetails.js'
-import { getLoggerBuilder } from '@nextcloud/logger'
+import logger from '../services/logger.ts'
export default {
name: 'SharingEntryLink',
@@ -313,10 +314,6 @@ export default {
ExternalLegacyLinkActions: OCA.Sharing.ExternalLinkActions.state,
ExternalShareActions: OCA.Sharing.ExternalShareActions.state,
- logger: getLoggerBuilder()
- .setApp('files_sharing')
- .detectUser()
- .build(),
// tracks whether modal should be opened or not
showQRCode: false,
@@ -330,6 +327,8 @@ export default {
* @return {string}
*/
title() {
+ const l10nOptions = { escape: false /* no escape as this string is already escaped by Vue */ }
+
// if we have a valid existing share (not pending)
if (this.share && this.share.id) {
if (!this.isShareOwner && this.share.ownerDisplayName) {
@@ -337,26 +336,26 @@ export default {
return t('files_sharing', '{shareWith} by {initiator}', {
shareWith: this.share.shareWith,
initiator: this.share.ownerDisplayName,
- })
+ }, l10nOptions)
}
return t('files_sharing', 'Shared via link by {initiator}', {
initiator: this.share.ownerDisplayName,
- })
+ }, l10nOptions)
}
if (this.share.label && this.share.label.trim() !== '') {
if (this.isEmailShareType) {
if (this.isFileRequest) {
return t('files_sharing', 'File request ({label})', {
label: this.share.label.trim(),
- })
+ }, l10nOptions)
}
return t('files_sharing', 'Mail share ({label})', {
label: this.share.label.trim(),
- })
+ }, l10nOptions)
}
return t('files_sharing', 'Share link ({label})', {
label: this.share.label.trim(),
- })
+ }, l10nOptions)
}
if (this.isEmailShareType) {
if (!this.share.shareWith || this.share.shareWith.trim() === '') {
@@ -391,6 +390,7 @@ export default {
}
return null
},
+
passwordExpirationTime() {
if (this.share.passwordExpirationTime === null) {
return null
@@ -613,7 +613,7 @@ export default {
* @param {boolean} shareReviewComplete if the share was reviewed
*/
async onNewLinkShare(shareReviewComplete = false) {
- this.logger.debug('onNewLinkShare called (with this.share)', this.share)
+ logger.debug('onNewLinkShare called (with this.share)', this.share)
// do not run again if already loading
if (this.loading) {
return
@@ -628,7 +628,7 @@ export default {
shareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate)
}
- this.logger.debug('Missing required properties?', this.enforcedPropertiesMissing)
+ logger.debug('Missing required properties?', this.enforcedPropertiesMissing)
// Do not push yet if we need a password or an expiration date: show pending menu
// A share would require a review for example is default expiration date is set but not enforced, this allows
// the user to review the share and remove the expiration date if they don't want it
@@ -636,7 +636,7 @@ export default {
this.pending = true
this.shareCreationComplete = false
- this.logger.info('Share policy requires a review or has mandated properties (password, expirationDate)...')
+ logger.info('Share policy requires a review or has mandated properties (password, expirationDate)...')
// ELSE, show the pending popovermenu
// if password default or enforced, pre-fill with random one
@@ -664,13 +664,13 @@ export default {
// if the share is valid, create it on the server
if (this.checkShare(this.share)) {
try {
- this.logger.info('Sending existing share to server', this.share)
+ logger.info('Sending existing share to server', this.share)
await this.pushNewLinkShare(this.share, true)
this.shareCreationComplete = true
- this.logger.info('Share created on server', this.share)
+ logger.info('Share created on server', this.share)
} catch (e) {
this.pending = false
- this.logger.error('Error creating share', e)
+ logger.error('Error creating share', e)
return false
}
return true
diff --git a/apps/files_sharing/src/components/SharingInput.vue b/apps/files_sharing/src/components/SharingInput.vue
index 49a39915e5e..b886ba95a17 100644
--- a/apps/files_sharing/src/components/SharingInput.vue
+++ b/apps/files_sharing/src/components/SharingInput.vue
@@ -194,11 +194,11 @@ export default {
let shareType = []
- if (this.isExternal) {
- shareType.push(ShareType.Remote)
- shareType.push(ShareType.RemoteGroup)
+ const remoteTypes = [ShareType.Remote, ShareType.RemoteGroup]
+
+ if (this.isExternal && !this.config.showFederatedSharesAsInternal) {
+ shareType.push(...remoteTypes)
} else {
- // Merge shareType array
shareType = shareType.concat([
ShareType.User,
ShareType.Group,
@@ -209,6 +209,9 @@ export default {
ShareType.ScienceMesh,
])
+ if (this.config.showFederatedSharesAsInternal) {
+ shareType.push(...remoteTypes)
+ }
}
if (getCapabilities().files_sharing.public.enabled === true && this.isExternal) {
diff --git a/apps/files_sharing/src/files_filters/AccountFilter.ts b/apps/files_sharing/src/files_filters/AccountFilter.ts
index 56bcef07200..4f185d9fd9c 100644
--- a/apps/files_sharing/src/files_filters/AccountFilter.ts
+++ b/apps/files_sharing/src/files_filters/AccountFilter.ts
@@ -10,6 +10,7 @@ import { ShareType } from '@nextcloud/sharing'
import Vue from 'vue'
import FileListFilterAccount from '../components/FileListFilterAccount.vue'
+import { isPublicShare } from '@nextcloud/sharing/public'
export interface IAccountData {
uid: string
@@ -152,5 +153,10 @@ class AccountFilter extends FileListFilter {
* Register the file list filter by owner or sharees
*/
export function registerAccountFilter() {
+ if (isPublicShare()) {
+ // We do not show the filter on public pages - it makes no sense
+ return
+ }
+
registerFileListFilter(new AccountFilter())
}
diff --git a/apps/files_sharing/src/files_views/publicFileDrop.ts b/apps/files_sharing/src/files_views/publicFileDrop.ts
index 0d782d48fc7..65756e83c74 100644
--- a/apps/files_sharing/src/files_views/publicFileDrop.ts
+++ b/apps/files_sharing/src/files_views/publicFileDrop.ts
@@ -4,7 +4,8 @@
*/
import type { VueConstructor } from 'vue'
-import { Folder, Permission, View, davRemoteURL, davRootPath, getNavigation } from '@nextcloud/files'
+import { Folder, Permission, View, getNavigation } from '@nextcloud/files'
+import { defaultRemoteURL, defaultRootPath } from '@nextcloud/files/dav'
import { loadState } from '@nextcloud/initial-state'
import { translate as t } from '@nextcloud/l10n'
import svgCloudUpload from '@mdi/svg/svg/cloud-upload.svg?raw'
@@ -45,8 +46,8 @@ export default () => {
// Fake a writeonly folder as root
folder: new Folder({
id: 0,
- source: `${davRemoteURL}${davRootPath}`,
- root: davRootPath,
+ source: `${defaultRemoteURL}${defaultRootPath}`,
+ root: defaultRootPath,
owner: null,
permissions: Permission.CREATE,
}),
diff --git a/apps/files_sharing/src/public-file-request.ts b/apps/files_sharing/src/public-file-request.ts
deleted file mode 100644
index 1d640c5ea5e..00000000000
--- a/apps/files_sharing/src/public-file-request.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-import { defineAsyncComponent } from 'vue'
-import { getBuilder } from '@nextcloud/browser-storage'
-import { getGuestNickname, setGuestNickname } from '@nextcloud/auth'
-import { getUploader } from '@nextcloud/upload'
-import { spawnDialog } from '@nextcloud/dialogs'
-
-import logger from './services/logger'
-
-const storage = getBuilder('files_sharing').build()
-
-/**
- * Setup file-request nickname header for the uploader
- * @param nickname The nickname
- */
-function registerFileRequestHeader(nickname: string) {
- const uploader = getUploader()
- uploader.setCustomHeader('X-NC-Nickname', encodeURIComponent(nickname))
- logger.debug('Nickname header registered for uploader', { headers: uploader.customHeaders })
-}
-
-/**
- * Callback when a nickname was chosen
- * @param nickname The chosen nickname
- */
-function onSetNickname(nickname: string): void {
- // Set the nickname
- setGuestNickname(nickname)
- // Set the dialog as shown
- storage.setItem('public-auth-prompt-shown', 'true')
- // Register header for uploader
- registerFileRequestHeader(nickname)
-}
-
-window.addEventListener('DOMContentLoaded', () => {
- const nickname = getGuestNickname() ?? ''
- const dialogShown = storage.getItem('public-auth-prompt-shown') !== null
-
- // If we don't have a nickname or the public auth prompt hasn't been shown yet, show it
- // We still show the prompt if the user has a nickname to double check
- if (!nickname || !dialogShown) {
- spawnDialog(
- defineAsyncComponent(() => import('./views/PublicAuthPrompt.vue')),
- {
- nickname,
- },
- onSetNickname as (...rest: unknown[]) => void,
- )
- } else {
- logger.debug('Public auth prompt already shown.', { nickname })
- registerFileRequestHeader(nickname)
- }
-})
diff --git a/apps/files_sharing/src/public-nickname-handler.ts b/apps/files_sharing/src/public-nickname-handler.ts
new file mode 100644
index 00000000000..02bdc641aaf
--- /dev/null
+++ b/apps/files_sharing/src/public-nickname-handler.ts
@@ -0,0 +1,86 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import { getBuilder } from '@nextcloud/browser-storage'
+import { getGuestNickname, type NextcloudUser } from '@nextcloud/auth'
+import { getUploader } from '@nextcloud/upload'
+import { loadState } from '@nextcloud/initial-state'
+import { showGuestUserPrompt } from '@nextcloud/dialogs'
+import { t } from '@nextcloud/l10n'
+
+import logger from './services/logger'
+import { subscribe } from '@nextcloud/event-bus'
+
+const storage = getBuilder('files_sharing').build()
+
+// Setup file-request nickname header for the uploader
+const registerFileRequestHeader = (nickname: string) => {
+ const uploader = getUploader()
+ uploader.setCustomHeader('X-NC-Nickname', encodeURIComponent(nickname))
+ logger.debug('Nickname header registered for uploader', { headers: uploader.customHeaders })
+}
+
+// Callback when a nickname was chosen
+const onUserInfoChanged = (guest: NextcloudUser) => {
+ logger.debug('User info changed', { guest })
+ registerFileRequestHeader(guest.displayName ?? '')
+}
+
+// Monitor nickname changes
+subscribe('user:info:changed', onUserInfoChanged)
+
+window.addEventListener('DOMContentLoaded', () => {
+ const nickname = getGuestNickname() ?? ''
+ const dialogShown = storage.getItem('public-auth-prompt-shown') !== null
+
+ // Check if a nickname is mandatory
+ const isFileRequest = loadState('files_sharing', 'isFileRequest', false)
+
+ const owner = loadState('files_sharing', 'owner', '')
+ const ownerDisplayName = loadState('files_sharing', 'ownerDisplayName', '')
+ const label = loadState('files_sharing', 'label', '')
+ const filename = loadState('files_sharing', 'filename', '')
+
+ // If the owner provided a custom label, use it instead of the filename
+ const folder = label || filename
+
+ const options = {
+ nickname,
+ notice: t('files_sharing', 'To upload files to {folder}, you need to provide your name first.', { folder }),
+ subtitle: undefined as string | undefined,
+ title: t('files_sharing', 'Upload files to {folder}', { folder }),
+ }
+
+ // If the guest already has a nickname, we just make them double check
+ if (nickname) {
+ options.notice = t('files_sharing', 'Please confirm your name to upload files to {folder}', { folder })
+ }
+
+ // If the account owner set their name as public,
+ // we show it in the subtitle
+ if (owner) {
+ options.subtitle = t('files_sharing', '{ownerDisplayName} shared a folder with you.', { ownerDisplayName })
+ }
+
+ // If this is a file request, then we need a nickname
+ if (isFileRequest) {
+ // If we don't have a nickname or the public auth prompt hasn't been shown yet, show it
+ // We still show the prompt if the user has a nickname to double check
+ if (!nickname || !dialogShown) {
+ logger.debug('Showing public auth prompt.', { nickname })
+ showGuestUserPrompt(options)
+ }
+ return
+ }
+
+ if (!dialogShown && !nickname) {
+ logger.debug('Public auth prompt not shown yet but nickname is not mandatory.', { nickname })
+ return
+ }
+
+ // Else, we just register the nickname header if any.
+ logger.debug('Public auth prompt already shown.', { nickname })
+ registerFileRequestHeader(nickname)
+})
diff --git a/apps/files_sharing/src/services/ConfigService.ts b/apps/files_sharing/src/services/ConfigService.ts
index 09fdca13598..2114e2d1bae 100644
--- a/apps/files_sharing/src/services/ConfigService.ts
+++ b/apps/files_sharing/src/services/ConfigService.ts
@@ -3,6 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { getCapabilities } from '@nextcloud/capabilities'
+import { loadState } from '@nextcloud/initial-state'
type PasswordPolicyCapabilities = {
enforceNonCommonPassword: boolean
@@ -306,4 +307,12 @@ export default class Config {
return this._capabilities?.files_sharing?.public?.custom_tokens
}
+ /**
+ * Show federated shares as internal shares
+ * @return {boolean}
+ */
+ get showFederatedSharesAsInternal(): boolean {
+ return loadState('files_sharing', 'showFederatedSharesAsInternal', false)
+ }
+
}
diff --git a/apps/files_sharing/src/services/GuestNameValidity.ts b/apps/files_sharing/src/services/GuestNameValidity.ts
new file mode 100644
index 00000000000..0557c5253ca
--- /dev/null
+++ b/apps/files_sharing/src/services/GuestNameValidity.ts
@@ -0,0 +1,45 @@
+/*!
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import { InvalidFilenameError, InvalidFilenameErrorReason, validateFilename } from '@nextcloud/files'
+import { t } from '@nextcloud/l10n'
+
+/**
+ * Get the validity of a filename (empty if valid).
+ * This can be used for `setCustomValidity` on input elements
+ * @param name The filename
+ * @param escape Escape the matched string in the error (only set when used in HTML)
+ */
+export function getGuestNameValidity(name: string, escape = false): string {
+ if (name.trim() === '') {
+ return t('files', 'Names must not be empty.')
+ }
+
+ if (name.startsWith('.')) {
+ return t('files', 'Names must not start with a dot.')
+ }
+
+ try {
+ validateFilename(name)
+ return ''
+ } catch (error) {
+ if (!(error instanceof InvalidFilenameError)) {
+ throw error
+ }
+
+ switch (error.reason) {
+ case InvalidFilenameErrorReason.Character:
+ return t('files', '"{char}" is not allowed inside a name.', { char: error.segment }, undefined, { escape })
+ case InvalidFilenameErrorReason.ReservedName:
+ return t('files', '"{segment}" is a reserved name and not allowed.', { segment: error.segment }, undefined, { escape: false })
+ case InvalidFilenameErrorReason.Extension:
+ if (error.segment.match(/\.[a-z]/i)) {
+ return t('files', '"{extension}" is not an allowed name.', { extension: error.segment }, undefined, { escape: false })
+ }
+ return t('files', 'Names must not end with "{extension}".', { extension: error.segment }, undefined, { escape: false })
+ default:
+ return t('files', 'Invalid name.')
+ }
+ }
+}
diff --git a/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue b/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue
index 5571e5e9f5d..33fec9af028 100644
--- a/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue
+++ b/apps/files_sharing/src/views/FilesViewFileDropEmptyContent.vue
@@ -5,13 +5,29 @@
<template>
<NcEmptyContent class="file-drop-empty-content"
data-cy-files-sharing-file-drop
- :name="t('files_sharing', 'File drop')">
+ :name="name">
<template #icon>
<NcIconSvgWrapper :svg="svgCloudUpload" />
</template>
<template #description>
- {{ t('files_sharing', 'Upload files to {foldername}.', { foldername }) }}
- {{ disclaimer === '' ? '' : t('files_sharing', 'By uploading files, you agree to the terms of service.') }}
+ <p>
+ {{ shareNote || t('files_sharing', 'Upload files to {foldername}.', { foldername }) }}
+ </p>
+ <p v-if="disclaimer">
+ {{ t('files_sharing', 'By uploading files, you agree to the terms of service.') }}
+ </p>
+ <NcNoteCard v-if="getSortedUploads().length"
+ class="file-drop-empty-content__note-card"
+ type="success">
+ <h2 id="file-drop-empty-content__heading">
+ {{ t('files_sharing', 'Successfully uploaded files') }}
+ </h2>
+ <ul aria-labelledby="file-drop-empty-content__heading" class="file-drop-empty-content__list">
+ <li v-for="file in getSortedUploads()" :key="file">
+ {{ file }}
+ </li>
+ </ul>
+ </NcNoteCard>
</template>
<template #action>
<template v-if="disclaimer">
@@ -34,16 +50,24 @@
</NcEmptyContent>
</template>
+<script lang="ts">
+/* eslint-disable import/first */
+
+// We need this on module level rather than on the instance as view will be refreshed by the files app after uploading
+const uploads = new Set<string>()
+</script>
+
<script setup lang="ts">
import { loadState } from '@nextcloud/initial-state'
import { translate as t } from '@nextcloud/l10n'
-import { getUploader, UploadPicker } from '@nextcloud/upload'
+import { getUploader, UploadPicker, UploadStatus } from '@nextcloud/upload'
import { ref } from 'vue'
import NcButton from '@nextcloud/vue/components/NcButton'
import NcDialog from '@nextcloud/vue/components/NcDialog'
import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'
import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'
+import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
import svgCloudUpload from '@mdi/svg/svg/cloud-upload.svg?raw'
defineProps<{
@@ -51,17 +75,62 @@ defineProps<{
}>()
const disclaimer = loadState<string>('files_sharing', 'disclaimer', '')
+const shareLabel = loadState<string>('files_sharing', 'label', '')
+const shareNote = loadState<string>('files_sharing', 'note', '')
+
+const name = shareLabel || t('files_sharing', 'File drop')
+
const showDialog = ref(false)
const uploadDestination = getUploader().destination
-</script>
-<style scoped>
-:deep(.terms-of-service-dialog) {
- min-height: min(100px, 20vh);
+getUploader()
+ .addNotifier((upload) => {
+ if (upload.status === UploadStatus.FINISHED && upload.file.name) {
+ // if a upload is finished and is not a meta upload (name is set)
+ // then we add the upload to the list of finished uploads to be shown to the user
+ uploads.add(upload.file.name)
+ }
+ })
+
+/**
+ * Get the previous uploads as sorted list
+ */
+function getSortedUploads() {
+ return [...uploads].sort((a, b) => a.localeCompare(b))
}
-/* TODO fix in library */
-.file-drop-empty-content :deep(.empty-content__action) {
- display: flex;
- gap: var(--default-grid-baseline);
+</script>
+
+<style scoped lang="scss">
+.file-drop-empty-content {
+ margin: auto;
+ max-width: max(50vw, 300px);
+
+ .file-drop-empty-content__note-card {
+ width: fit-content;
+ margin-inline: auto;
+ }
+
+ #file-drop-empty-content__heading {
+ margin-block: 0 10px;
+ font-weight: bold;
+ font-size: 20px;
+ }
+
+ .file-drop-empty-content__list {
+ list-style: inside;
+ max-height: min(350px, 33vh);
+ overflow-y: scroll;
+ padding-inline-end: calc(2 * var(--default-grid-baseline));
+ }
+
+ :deep(.terms-of-service-dialog) {
+ min-height: min(100px, 20vh);
+ }
+
+ /* TODO fix in library */
+ :deep(.empty-content__action) {
+ display: flex;
+ gap: var(--default-grid-baseline);
+ }
}
</style>
diff --git a/apps/files_sharing/src/views/PublicAuthPrompt.vue b/apps/files_sharing/src/views/PublicAuthPrompt.vue
deleted file mode 100644
index 39f5adc4650..00000000000
--- a/apps/files_sharing/src/views/PublicAuthPrompt.vue
+++ /dev/null
@@ -1,123 +0,0 @@
-<!--
- - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
- - SPDX-License-Identifier: AGPL-3.0-or-later
--->
-
-<template>
- <NcDialog :buttons="dialogButtons"
- class="public-auth-prompt"
- data-cy-public-auth-prompt-dialog
- is-form
- :can-close="false"
- :name="dialogName"
- @submit="$emit('close', name)">
- <p v-if="owner" class="public-auth-prompt__subtitle">
- {{ t('files_sharing', '{ownerDisplayName} shared a folder with you.', { ownerDisplayName }) }}
- </p>
-
- <!-- Header -->
- <NcNoteCard class="public-auth-prompt__header"
- :text="t('files_sharing', 'To upload files, you need to provide your name first.')"
- type="info" />
-
- <!-- Form -->
- <NcTextField ref="input"
- class="public-auth-prompt__input"
- data-cy-public-auth-prompt-dialog-name
- :label="t('files_sharing', 'Name')"
- :placeholder="t('files_sharing', 'Enter your name')"
- minlength="2"
- name="name"
- required
- :value.sync="name" />
- </NcDialog>
-</template>
-
-<script lang="ts">
-import { defineComponent } from 'vue'
-import { t } from '@nextcloud/l10n'
-
-import NcDialog from '@nextcloud/vue/components/NcDialog'
-import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
-import NcTextField from '@nextcloud/vue/components/NcTextField'
-import { loadState } from '@nextcloud/initial-state'
-
-export default defineComponent({
- name: 'PublicAuthPrompt',
-
- components: {
- NcDialog,
- NcNoteCard,
- NcTextField,
- },
-
- props: {
- /**
- * Preselected nickname
- * @default '' No name preselected by default
- */
- nickname: {
- type: String,
- default: '',
- },
- },
-
- setup() {
- return {
- t,
-
- owner: loadState('files_sharing', 'owner', ''),
- ownerDisplayName: loadState('files_sharing', 'ownerDisplayName', ''),
- label: loadState('files_sharing', 'label', ''),
- note: loadState('files_sharing', 'note', ''),
- filename: loadState('files_sharing', 'filename', ''),
- }
- },
-
- data() {
- return {
- name: '',
- }
- },
-
- computed: {
- dialogName() {
- return this.t('files_sharing', 'Upload files to {folder}', { folder: this.label || this.filename })
- },
- dialogButtons() {
- return [{
- label: t('files_sharing', 'Submit name'),
- type: 'primary',
- nativeType: 'submit',
- }]
- },
- },
-
- watch: {
- /** Reset name to pre-selected nickname (e.g. Talk / Collabora ) */
- nickname: {
- handler() {
- this.name = this.nickname
- },
- immediate: true,
- },
- },
-})
-</script>
-<style scoped lang="scss">
-.public-auth-prompt {
- &__subtitle {
- // Smaller than dialog title
- font-size: 1.25em;
- margin-block: 0 calc(3 * var(--default-grid-baseline));
- }
-
- &__header {
- margin-block: 0 calc(3 * var(--default-grid-baseline));
- }
-
- &__input {
- margin-block: calc(4 * var(--default-grid-baseline)) calc(2 * var(--default-grid-baseline));
- }
-}
-</style>
diff --git a/apps/files_sharing/src/views/SharingDetailsTab.vue b/apps/files_sharing/src/views/SharingDetailsTab.vue
index 5b778223c8b..f1fb78e548b 100644
--- a/apps/files_sharing/src/views/SharingDetailsTab.vue
+++ b/apps/files_sharing/src/views/SharingDetailsTab.vue
@@ -226,19 +226,6 @@
{{ t('files_sharing', 'Delete') }}
</NcCheckboxRadioSwitch>
</section>
- <div class="sharingTabDetailsView__delete">
- <NcButton v-if="!isNewShare"
- :aria-label="t('files_sharing', 'Delete share')"
- :disabled="false"
- :readonly="false"
- type="tertiary"
- @click.prevent="removeShare">
- <template #icon>
- <CloseIcon :size="16" />
- </template>
- {{ t('files_sharing', 'Delete share') }}
- </NcButton>
- </div>
</section>
</div>
</div>
@@ -249,6 +236,19 @@
@click="cancel">
{{ t('files_sharing', 'Cancel') }}
</NcButton>
+ <div class="sharingTabDetailsView__delete">
+ <NcButton v-if="!isNewShare"
+ :aria-label="t('files_sharing', 'Delete share')"
+ :disabled="false"
+ :readonly="false"
+ variant="tertiary"
+ @click.prevent="removeShare">
+ <template #icon>
+ <CloseIcon :size="20" />
+ </template>
+ {{ t('files_sharing', 'Delete share') }}
+ </NcButton>
+ </div>
<NcButton type="primary"
data-cy-files-sharing-share-editor-action="save"
:disabled="creating"
@@ -905,8 +905,9 @@ export default {
this.advancedSectionAccordionExpanded = true
}
- if (this.share.note) {
+ if (this.isValidShareAttribute(this.share.note)) {
this.writeNoteToRecipientIsChecked = true
+ this.advancedSectionAccordionExpanded = true
}
},
diff --git a/apps/files_sharing/src/views/SharingTab.vue b/apps/files_sharing/src/views/SharingTab.vue
index e9e068a7c1d..82a11dea2e0 100644
--- a/apps/files_sharing/src/views/SharingTab.vue
+++ b/apps/files_sharing/src/views/SharingTab.vue
@@ -50,7 +50,7 @@
:link-shares="linkShares"
:reshare="reshare"
:shares="shares"
- :placeholder="t('files_sharing', 'Share with accounts and teams')"
+ :placeholder="internalShareInputPlaceholder"
@open-sharing-details="toggleShareDetailsView" />
<!-- other shares list -->
@@ -90,7 +90,7 @@
:file-info="fileInfo"
:link-shares="linkShares"
:is-external="true"
- :placeholder="t('files_sharing', 'Email, federated cloud id')"
+ :placeholder="externalShareInputPlaceholder"
:reshare="reshare"
:shares="shares"
@open-sharing-details="toggleShareDetailsView" />
@@ -100,7 +100,7 @@
:file-info="fileInfo"
@open-sharing-details="toggleShareDetailsView" />
<!-- link shares list -->
- <SharingLinkList v-if="!loading"
+ <SharingLinkList v-if="!loading && isLinkSharingAllowed"
ref="linkShareList"
:can-reshare="canReshare"
:file-info="fileInfo"
@@ -157,6 +157,7 @@
<script>
import { getCurrentUser } from '@nextcloud/auth'
+import { getCapabilities } from '@nextcloud/capabilities'
import { orderBy } from '@nextcloud/files'
import { loadState } from '@nextcloud/initial-state'
import { generateOcsUrl } from '@nextcloud/router'
@@ -242,13 +243,45 @@ export default {
* @return {boolean}
*/
isSharedWithMe() {
- return Object.keys(this.sharedWithMe).length > 0
+ return this.sharedWithMe !== null
+ && this.sharedWithMe !== undefined
+ },
+
+ /**
+ * Is link sharing allowed for the current user?
+ *
+ * @return {boolean}
+ */
+ isLinkSharingAllowed() {
+ const currentUser = getCurrentUser()
+ if (!currentUser) {
+ return false
+ }
+
+ const capabilities = getCapabilities()
+ const publicSharing = capabilities.files_sharing?.public || {}
+ return publicSharing.enabled === true
},
canReshare() {
return !!(this.fileInfo.permissions & OC.PERMISSION_SHARE)
|| !!(this.reshare && this.reshare.hasSharePermission && this.config.isResharingAllowed)
},
+
+ internalShareInputPlaceholder() {
+ return this.config.showFederatedSharesAsInternal
+ ? t('files_sharing', 'Share with accounts, teams, federated cloud IDs')
+ : t('files_sharing', 'Share with accounts and teams')
+ },
+
+ externalShareInputPlaceholder() {
+ if (!this.isLinkSharingAllowed) {
+ return t('files_sharing', 'Federated cloud ID')
+ }
+ return this.config.showFederatedSharesAsInternal
+ ? t('files_sharing', 'Email')
+ : t('files_sharing', 'Email, federated cloud ID')
+ },
},
methods: {
@@ -369,7 +402,11 @@ export default {
if ([ShareType.Link, ShareType.Email].includes(share.type)) {
this.linkShares.push(share)
} else if ([ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) {
- this.externalShares.push(share)
+ if (this.config.showFederatedSharesAsInternal) {
+ this.shares.push(share)
+ } else {
+ this.externalShares.push(share)
+ }
} else {
this.shares.push(share)
}
@@ -439,7 +476,11 @@ export default {
if (share.type === ShareType.Email) {
this.linkShares.unshift(share)
} else if ([ShareType.Remote, ShareType.RemoteGroup].includes(share.type)) {
- this.externalShares.unshift(share)
+ if (this.config.showFederatedSharesAsInternal) {
+ this.shares.unshift(share)
+ } else {
+ this.externalShares.unshift(share)
+ }
} else {
this.shares.unshift(share)
}
diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php
index 4ef9f536cb9..a712903d768 100644
--- a/apps/files_sharing/tests/ApiTest.php
+++ b/apps/files_sharing/tests/ApiTest.php
@@ -26,6 +26,7 @@ use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IPreview;
use OCP\IRequest;
+use OCP\ITagManager;
use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\Mail\IMailer;
@@ -111,6 +112,7 @@ class ApiTest extends TestCase {
$logger = $this->createMock(LoggerInterface::class);
$providerFactory = $this->createMock(IProviderFactory::class);
$mailer = $this->createMock(IMailer::class);
+ $tagManager = $this->createMock(ITagManager::class);
$dateTimeZone->method('getTimeZone')->willReturn(new \DateTimeZone(date_default_timezone_get()));
return new ShareAPIController(
@@ -131,6 +133,7 @@ class ApiTest extends TestCase {
$logger,
$providerFactory,
$mailer,
+ $tagManager,
$userId,
);
}
diff --git a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
index 888b2cdd596..769516cda85 100644
--- a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
+++ b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php
@@ -11,6 +11,7 @@ use OCP\Federation\ICloudId;
use OCP\Federation\ICloudIdManager;
use OCP\IDBConnection;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Test\TestCase;
@@ -24,20 +25,9 @@ use Test\TestCase;
*/
class CleanupRemoteStoragesTest extends TestCase {
- /**
- * @var CleanupRemoteStorages
- */
- private $command;
-
- /**
- * @var IDBConnection
- */
- private $connection;
-
- /**
- * @var ICloudIdManager|\PHPUnit\Framework\MockObject\MockObject
- */
- private $cloudIdManager;
+ protected IDBConnection $connection;
+ protected CleanupRemoteStorages $command;
+ private ICloudIdManager&MockObject $cloudIdManager;
private $storages = [
['id' => 'shared::7b4a322b22f9d0047c38d77d471ce3cf', 'share_token' => 'f2c69dad1dc0649f26976fd210fc62e1', 'remote' => 'https://hostname.tld/owncloud1', 'user' => 'user1'],
@@ -77,7 +67,7 @@ class CleanupRemoteStoragesTest extends TestCase {
foreach ($this->storages as &$storage) {
if (isset($storage['id'])) {
$storageQuery->setParameter('id', $storage['id']);
- $storageQuery->execute();
+ $storageQuery->executeStatement();
$storage['numeric_id'] = $storageQuery->getLastInsertId();
}
@@ -121,13 +111,13 @@ class CleanupRemoteStoragesTest extends TestCase {
foreach ($this->storages as $storage) {
if (isset($storage['id'])) {
$storageQuery->setParameter('id', $storage['id']);
- $storageQuery->execute();
+ $storageQuery->executeStatement();
}
if (isset($storage['share_token'])) {
$shareExternalQuery->setParameter('share_token', $storage['share_token']);
$shareExternalQuery->setParameter('remote', $storage['remote']);
- $shareExternalQuery->execute();
+ $shareExternalQuery->executeStatement();
}
}
@@ -174,14 +164,13 @@ class CleanupRemoteStoragesTest extends TestCase {
->getMock();
// parent folder, `files`, ´test` and `welcome.txt` => 4 elements
-
+ $outputCalls = [];
$output
->expects($this->any())
->method('writeln')
- ->withConsecutive(
- ['5 remote storage(s) need(s) to be checked'],
- ['5 remote share(s) exist'],
- );
+ ->willReturnCallback(function (string $text) use (&$outputCalls) {
+ $outputCalls[] = $text;
+ });
$this->cloudIdManager
->expects($this->any())
@@ -206,5 +195,10 @@ class CleanupRemoteStoragesTest extends TestCase {
$this->assertFalse($this->doesStorageExist($this->storages[3]['numeric_id']));
$this->assertTrue($this->doesStorageExist($this->storages[4]['numeric_id']));
$this->assertFalse($this->doesStorageExist($this->storages[5]['numeric_id']));
+
+ $this->assertEquals([
+ '5 remote storage(s) need(s) to be checked',
+ '5 remote share(s) exist',
+ ], array_slice($outputCalls, 0, 2));
}
}
diff --git a/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php b/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
index bd64cfc60b4..41789cdd138 100644
--- a/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
+++ b/apps/files_sharing/tests/Controller/PublicPreviewControllerTest.php
@@ -18,6 +18,7 @@ use OCP\Files\SimpleFS\ISimpleFile;
use OCP\IPreview;
use OCP\IRequest;
use OCP\ISession;
+use OCP\Preview\IMimeIconProvider;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IAttributes;
use OCP\Share\IManager;
@@ -52,7 +53,8 @@ class PublicPreviewControllerTest extends TestCase {
$this->request,
$this->shareManager,
$this->createMock(ISession::class),
- $this->previewManager
+ $this->previewManager,
+ $this->createMock(IMimeIconProvider::class),
);
}
@@ -142,7 +144,7 @@ class PublicPreviewControllerTest extends TestCase {
->willReturn($attributes);
$this->request->method('getHeader')
- ->with('X-NC-Preview')
+ ->with('x-nc-preview')
->willReturn('true');
$file = $this->createMock(File::class);
@@ -182,7 +184,7 @@ class PublicPreviewControllerTest extends TestCase {
->willReturn($attributes);
$this->request->method('getHeader')
- ->with('X-NC-Preview')
+ ->with('x-nc-preview')
->willReturn('true');
$file = $this->createMock(File::class);
diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
index 29eae2dc581..f245f0a25c7 100644
--- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
@@ -28,6 +28,8 @@ use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IPreview;
use OCP\IRequest;
+use OCP\ITagManager;
+use OCP\ITags;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
@@ -76,6 +78,7 @@ class ShareAPIControllerTest extends TestCase {
private LoggerInterface&MockObject $logger;
private IProviderFactory&MockObject $factory;
private IMailer&MockObject $mailer;
+ private ITagManager&MockObject $tagManager;
protected function setUp(): void {
$this->shareManager = $this->createMock(IManager::class);
@@ -111,6 +114,7 @@ class ShareAPIControllerTest extends TestCase {
$this->logger = $this->createMock(LoggerInterface::class);
$this->factory = $this->createMock(IProviderFactory::class);
$this->mailer = $this->createMock(IMailer::class);
+ $this->tagManager = $this->createMock(ITagManager::class);
$this->ocs = new ShareAPIController(
$this->appName,
@@ -130,6 +134,7 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
);
}
@@ -157,6 +162,7 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
])->onlyMethods(['formatShare'])
->getMock();
@@ -841,8 +847,8 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
-
])
->onlyMethods(['canAccessShare'])
->getMock();
@@ -1474,6 +1480,7 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
])
->onlyMethods(['formatShare'])
@@ -1535,84 +1542,129 @@ class ShareAPIControllerTest extends TestCase {
$this->assertEquals($expected, $result->getData());
}
- public function testCanAccessShare(): void {
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ public function testCanAccessShareAsOwner(): void {
+ $share = $this->createMock(IShare::class);
$share->method('getShareOwner')->willReturn($this->currentUser);
$this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ public function testCanAccessShareAsSharer(): void {
+ $share = $this->createMock(IShare::class);
$share->method('getSharedBy')->willReturn($this->currentUser);
$this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ public function testCanAccessShareAsSharee(): void {
+ $share = $this->createMock(IShare::class);
$share->method('getShareType')->willReturn(IShare::TYPE_USER);
$share->method('getSharedWith')->willReturn($this->currentUser);
$this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
- $file = $this->getMockBuilder(File::class)->getMock();
+ public function testCannotAccessLinkShare(): void {
+ $share = $this->createMock(IShare::class);
+ $share->method('getShareType')->willReturn(IShare::TYPE_LINK);
+ $share->method('getNodeId')->willReturn(42);
- $userFolder = $this->getMockBuilder(Folder::class)->getMock();
+ $userFolder = $this->createMock(Folder::class);
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturn($userFolder);
+ $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
+
+ /**
+ * @dataProvider dataCanAccessShareWithPermissions
+ */
+ public function testCanAccessShareWithPermissions(int $permissions, bool $expected): void {
+ $share = $this->createMock(IShare::class);
+ $share->method('getShareType')->willReturn(IShare::TYPE_USER);
+ $share->method('getSharedWith')->willReturn($this->createMock(IUser::class));
+ $share->method('getNodeId')->willReturn(42);
+
+ $file = $this->createMock(File::class);
+
+ $userFolder = $this->getMockBuilder(Folder::class)->getMock();
$userFolder->method('getFirstNodeById')
->with($share->getNodeId())
->willReturn($file);
$userFolder->method('getById')
->with($share->getNodeId())
->willReturn([$file]);
+ $this->rootFolder->method('getUserFolder')
+ ->with($this->currentUser)
+ ->willReturn($userFolder);
$file->method('getPermissions')
- ->will($this->onConsecutiveCalls(Constants::PERMISSION_SHARE, Constants::PERMISSION_READ));
+ ->willReturn($permissions);
- // getPermissions -> share
- $share = $this->getMockBuilder(IShare::class)->getMock();
- $share->method('getShareType')->willReturn(IShare::TYPE_USER);
- $share->method('getSharedWith')->willReturn($this->getMockBuilder(IUser::class)->getMock());
- $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ if ($expected) {
+ $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ } else {
+ $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
+ }
- // getPermissions -> read
- $share = $this->getMockBuilder(IShare::class)->getMock();
- $share->method('getShareType')->willReturn(IShare::TYPE_USER);
- $share->method('getSharedWith')->willReturn($this->getMockBuilder(IUser::class)->getMock());
- $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ public static function dataCanAccessShareWithPermissions(): array {
+ return [
+ [Constants::PERMISSION_SHARE, true],
+ [Constants::PERMISSION_READ, false],
+ [Constants::PERMISSION_READ | Constants::PERMISSION_SHARE, true],
+ ];
+ }
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ /**
+ * @dataProvider dataCanAccessShareAsGroupMember
+ */
+ public function testCanAccessShareAsGroupMember(string $group, bool $expected): void {
+ $share = $this->createMock(IShare::class);
$share->method('getShareType')->willReturn(IShare::TYPE_GROUP);
- $share->method('getSharedWith')->willReturn('group');
+ $share->method('getSharedWith')->willReturn($group);
+ $share->method('getNodeId')->willReturn(42);
+
+ $file = $this->createMock(File::class);
+
+ $userFolder = $this->createMock(Folder::class);
+ $userFolder->method('getFirstNodeById')
+ ->with($share->getNodeId())
+ ->willReturn($file);
+ $userFolder->method('getById')
+ ->with($share->getNodeId())
+ ->willReturn([$file]);
+ $this->rootFolder->method('getUserFolder')
+ ->with($this->currentUser)
+ ->willReturn($userFolder);
$user = $this->createMock(IUser::class);
$this->userManager->method('get')
->with($this->currentUser)
->willReturn($user);
- $group = $this->getMockBuilder(IGroup::class)->getMock();
+ $group = $this->createMock(IGroup::class);
$group->method('inGroup')->with($user)->willReturn(true);
- $group2 = $this->getMockBuilder(IGroup::class)->getMock();
+ $group2 = $this->createMock(IGroup::class);
$group2->method('inGroup')->with($user)->willReturn(false);
$this->groupManager->method('get')->willReturnMap([
['group', $group],
['group2', $group2],
- ['groupnull', null],
+ ['group-null', null],
]);
- $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
- $share = $this->createMock(IShare::class);
- $share->method('getShareType')->willReturn(IShare::TYPE_GROUP);
- $share->method('getSharedWith')->willReturn('group2');
- $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
-
- // null group
- $share = $this->createMock(IShare::class);
- $share->method('getShareType')->willReturn(IShare::TYPE_GROUP);
- $share->method('getSharedWith')->willReturn('groupnull');
- $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ if ($expected) {
+ $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ } else {
+ $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ }
+ }
- $share = $this->createMock(IShare::class);
- $share->method('getShareType')->willReturn(IShare::TYPE_LINK);
- $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share]));
+ public static function dataCanAccessShareAsGroupMember(): array {
+ return [
+ ['group', true],
+ ['group2', false],
+ ['group-null', false],
+ ];
}
public function dataCanAccessRoomShare() {
@@ -1668,8 +1720,11 @@ class ShareAPIControllerTest extends TestCase {
->with('spreed')
->willReturn(true);
- $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
- ->setMethods(['canAccessShare'])
+ // This is not possible anymore with PHPUnit 10+
+ // as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
+ // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
+ $helper = $this->getMockBuilder(\stdClass::class)
+ ->addMethods(['canAccessShare'])
->getMock();
$helper->method('canAccessShare')
->with($share, $this->currentUser)
@@ -1816,8 +1871,9 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
[$userFolder, $path] = $this->getNonSharedUserFile();
@@ -1913,8 +1969,9 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
$this->request
@@ -2338,8 +2395,9 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
[$userFolder, $path] = $this->getNonSharedUserFile();
@@ -2408,8 +2466,9 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
[$userFolder, $path] = $this->getNonSharedUserFile();
@@ -2481,8 +2540,11 @@ class ShareAPIControllerTest extends TestCase {
->with('spreed')
->willReturn(true);
- $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
- ->setMethods(['createShare'])
+ // This is not possible anymore with PHPUnit 10+
+ // as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
+ // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
+ $helper = $this->getMockBuilder(\stdClass::class)
+ ->addMethods(['createShare'])
->getMock();
$helper->method('createShare')
->with(
@@ -2587,7 +2649,10 @@ class ShareAPIControllerTest extends TestCase {
->with('spreed')
->willReturn(true);
- $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
+ // This is not possible anymore with PHPUnit 10+
+ // as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
+ // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
+ $helper = $this->getMockBuilder(\stdClass::class)
->addMethods(['createShare'])
->getMock();
$helper->method('createShare')
@@ -2639,8 +2704,9 @@ class ShareAPIControllerTest extends TestCase {
$this->logger,
$this->factory,
$this->mailer,
+ $this->tagManager,
$this->currentUser,
- ])->setMethods(['formatShare'])
+ ])->onlyMethods(['formatShare'])
->getMock();
$userFolder = $this->getMockBuilder(Folder::class)->getMock();
@@ -5081,8 +5147,11 @@ class ShareAPIControllerTest extends TestCase {
->with('spreed')
->willReturn(true);
- $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
- ->setMethods(['formatShare', 'canAccessShare'])
+ // This is not possible anymore with PHPUnit 10+
+ // as `setMethods` was removed and now real reflection is used, thus the class needs to exist.
+ // $helper = $this->getMockBuilder('\OCA\Talk\Share\Helper\ShareAPIController')
+ $helper = $this->getMockBuilder(\stdClass::class)
+ ->addMethods(['formatShare', 'canAccessShare'])
->getMock();
$helper->method('formatShare')
->with($share)
@@ -5138,4 +5207,30 @@ class ShareAPIControllerTest extends TestCase {
$node->method('getId')->willReturn(42);
return [$userFolder, $node];
}
+
+ public function testPopulateTags(): void {
+ $tagger = $this->createMock(ITags::class);
+ $this->tagManager->method('load')
+ ->with('files')
+ ->willReturn($tagger);
+ $data = [
+ ['file_source' => 10],
+ ['file_source' => 22, 'foo' => 'bar'],
+ ['file_source' => 42, 'x' => 'y'],
+ ];
+ $tags = [
+ 10 => ['tag3'],
+ 42 => ['tag1', 'tag2'],
+ ];
+ $tagger->method('getTagsForObjects')
+ ->with([10, 22, 42])
+ ->willReturn($tags);
+
+ $result = self::invokePrivate($this->ocs, 'populateTags', [$data]);
+ $this->assertSame([
+ ['file_source' => 10, 'tags' => ['tag3']],
+ ['file_source' => 22, 'foo' => 'bar', 'tags' => []],
+ ['file_source' => 42, 'x' => 'y', 'tags' => ['tag1', 'tag2']],
+ ], $result);
+ }
}
diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php
index 58cbb4e0b82..27fa7ecf480 100644
--- a/apps/files_sharing/tests/Controller/ShareControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php
@@ -261,8 +261,12 @@ class ShareControllerTest extends \Test\TestCase {
['files_sharing.sharecontroller.showShare', ['token' => 'token'], 'shareUrl'],
// this share is not an image to the default preview is used
['files_sharing.PublicPreview.getPreview', ['x' => 256, 'y' => 256, 'file' => $share->getTarget(), 'token' => 'token'], 'previewUrl'],
- // for the direct link
- ['files_sharing.sharecontroller.downloadShare', ['token' => 'token', 'filename' => $filename ], 'downloadUrl'],
+ ]);
+
+ $this->urlGenerator->expects($this->once())
+ ->method('getAbsoluteURL')
+ ->willReturnMap([
+ ['/public.php/dav/files/token/?accept=zip', 'downloadUrl'],
]);
$this->previewManager->method('isMimeSupported')->with('text/plain')->willReturn(true);
@@ -332,6 +336,7 @@ class ShareControllerTest extends \Test\TestCase {
'fileId' => 111,
'owner' => 'ownerUID',
'ownerDisplayName' => 'ownerDisplay',
+ 'isFileRequest' => false,
];
$response = $this->shareController->showShare();
@@ -395,6 +400,8 @@ class ShareControllerTest extends \Test\TestCase {
->setPassword('password')
->setShareOwner('ownerUID')
->setSharedBy('initiatorUID')
+ ->setNote('The note')
+ ->setLabel('A label')
->setNode($file)
->setTarget("/$filename")
->setToken('token');
@@ -474,6 +481,9 @@ class ShareControllerTest extends \Test\TestCase {
'disclaimer' => 'My disclaimer text',
'owner' => 'ownerUID',
'ownerDisplayName' => 'ownerDisplay',
+ 'isFileRequest' => false,
+ 'note' => 'The note',
+ 'label' => 'A label',
];
$response = $this->shareController->showShare();
@@ -483,9 +493,9 @@ class ShareControllerTest extends \Test\TestCase {
$csp = new ContentSecurityPolicy();
$csp->addAllowedFrameDomain('\'self\'');
$expectedResponse = new PublicTemplateResponse('files', 'index');
- $expectedResponse->setParams(['pageTitle' => $filename]);
+ $expectedResponse->setParams(['pageTitle' => 'A label']);
$expectedResponse->setContentSecurityPolicy($csp);
- $expectedResponse->setHeaderTitle($filename);
+ $expectedResponse->setHeaderTitle('A label');
$expectedResponse->setHeaderDetails('shared by ownerDisplay');
$expectedResponse->setHeaderActions([
new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', 'shareUrl'),
@@ -552,8 +562,12 @@ class ShareControllerTest extends \Test\TestCase {
['files_sharing.sharecontroller.showShare', ['token' => 'token'], 'shareUrl'],
// this share is not an image to the default preview is used
['files_sharing.PublicPreview.getPreview', ['x' => 256, 'y' => 256, 'file' => $share->getTarget(), 'token' => 'token'], 'previewUrl'],
- // for the direct link
- ['files_sharing.sharecontroller.downloadShare', ['token' => 'token', 'filename' => $filename ], 'downloadUrl'],
+ ]);
+
+ $this->urlGenerator->expects($this->once())
+ ->method('getAbsoluteURL')
+ ->willReturnMap([
+ ['/public.php/dav/files/token/?accept=zip', 'downloadUrl'],
]);
$this->previewManager->method('isMimeSupported')->with('text/plain')->willReturn(true);
diff --git a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
index f2df74fd01b..571647829f2 100644
--- a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php
@@ -15,15 +15,13 @@ use OCP\IRequest;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager as ShareManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ShareInfoControllerTest extends TestCase {
- /** @var ShareInfoController */
- private $controller;
-
- /** @var ShareManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
+ protected ShareInfoController $controller;
+ protected ShareManager&MockObject $shareManager;
protected function setUp(): void {
@@ -31,14 +29,11 @@ class ShareInfoControllerTest extends TestCase {
$this->shareManager = $this->createMock(ShareManager::class);
- $this->controller = $this->getMockBuilder(ShareInfoController::class)
- ->setConstructorArgs([
- 'files_sharing',
- $this->createMock(IRequest::class),
- $this->shareManager
- ])
- ->setMethods(['addROWrapper'])
- ->getMock();
+ $this->controller = new ShareInfoController(
+ 'files_sharing',
+ $this->createMock(IRequest::class),
+ $this->shareManager
+ );
}
public function testNoShare(): void {
diff --git a/apps/files_sharing/tests/EncryptedSizePropagationTest.php b/apps/files_sharing/tests/EncryptedSizePropagationTest.php
index 1430e5f17ac..6bcded8b3e2 100644
--- a/apps/files_sharing/tests/EncryptedSizePropagationTest.php
+++ b/apps/files_sharing/tests/EncryptedSizePropagationTest.php
@@ -17,13 +17,27 @@ use Test\Traits\EncryptionTrait;
class EncryptedSizePropagationTest extends SizePropagationTest {
use EncryptionTrait;
+ protected function setUp(): void {
+ parent::setUp();
+ $this->config->setAppValue('encryption', 'useMasterKey', '0');
+ }
+
protected function setupUser($name, $password = '') {
$this->createUser($name, $password);
- $tmpFolder = Server::get(ITempManager::class)->getTemporaryFolder();
- $this->registerMount($name, '\OC\Files\Storage\Local', '/' . $name, ['datadir' => $tmpFolder]);
- $this->config->setAppValue('encryption', 'useMasterKey', '0');
+ $this->registerMountForUser($name);
$this->setupForUser($name, $password);
$this->loginWithEncryption($name);
return new View('/' . $name . '/files');
}
+
+ private function registerMountForUser($user): void {
+ $tmpFolder = Server::get(ITempManager::class)->getTemporaryFolder();
+ $this->registerMount($user, '\OC\Files\Storage\Local', '/' . $user, ['datadir' => $tmpFolder]);
+ }
+
+ protected function loginHelper($user, $create = false, $password = false) {
+ $this->registerMountForUser($user);
+ $this->setupForUser($user, $password);
+ parent::loginHelper($user, $create, $password);
+ }
}
diff --git a/apps/files_sharing/tests/External/ManagerTest.php b/apps/files_sharing/tests/External/ManagerTest.php
index 611392c286e..5314d1ec00f 100644
--- a/apps/files_sharing/tests/External/ManagerTest.php
+++ b/apps/files_sharing/tests/External/ManagerTest.php
@@ -33,6 +33,7 @@ use OCP\IUserSession;
use OCP\OCS\IDiscoveryService;
use OCP\Server;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\Traits\UserTrait;
@@ -46,42 +47,19 @@ use Test\Traits\UserTrait;
class ManagerTest extends TestCase {
use UserTrait;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $contactsManager;
-
- /** @var Manager|\PHPUnit\Framework\MockObject\MockObject * */
- private $manager;
-
- /** @var \OC\Files\Mount\Manager */
- private $mountManager;
-
- /** @var IClientService|\PHPUnit\Framework\MockObject\MockObject */
- private $clientService;
-
- /** @var ICloudFederationProviderManager|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationProviderManager;
-
- /** @var ICloudFederationFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationFactory;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|IGroupManager */
- private $groupManager;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject|IUserManager */
- private $userManager;
-
- /** @var LoggerInterface */
- private $logger;
-
- private $uid;
-
- /**
- * @var IUser
- */
- private $user;
- private $testMountProvider;
- /** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
- private $eventDispatcher;
+ protected string $uid;
+ protected IUser $user;
+ protected MountProvider $testMountProvider;
+ protected IEventDispatcher&MockObject $eventDispatcher;
+ protected LoggerInterface&MockObject $logger;
+ protected \OC\Files\Mount\Manager $mountManager;
+ protected IManager&MockObject $contactsManager;
+ protected Manager&MockObject $manager;
+ protected IClientService&MockObject $clientService;
+ protected ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
+ protected ICloudFederationFactory&MockObject $cloudFederationFactory;
+ protected IGroupManager&MockObject $groupManager;
+ protected IUserManager&MockObject $userManager;
protected function setUp(): void {
parent::setUp();
@@ -169,7 +147,7 @@ class ManagerTest extends TestCase {
$this->eventDispatcher,
$this->logger,
]
- )->setMethods(['tryOCMEndPoint'])->getMock();
+ )->onlyMethods(['tryOCMEndPoint'])->getMock();
}
private function setupMounts() {
@@ -222,14 +200,12 @@ class ManagerTest extends TestCase {
if ($isGroup) {
$this->manager->expects($this->never())->method('tryOCMEndPoint');
} else {
- $this->manager->method('tryOCMEndPoint')
- ->withConsecutive(
- ['http://localhost', 'token1', '2342', 'accept'],
- ['http://localhost', 'token3', '2342', 'decline'],
- )->willReturnOnConsecutiveCalls(
- false,
- false,
- );
+ $this->manager->expects(self::atLeast(2))
+ ->method('tryOCMEndPoint')
+ ->willReturnMap([
+ ['http://localhost', 'token1', '2342', 'accept', false],
+ ['http://localhost', 'token3', '2342', 'decline', false],
+ ]);
}
// Add a share for "user"
diff --git a/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php b/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php
new file mode 100644
index 00000000000..75bee35d58a
--- /dev/null
+++ b/apps/files_sharing/tests/Listener/LoadAdditionalListenerTest.php
@@ -0,0 +1,120 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Sharing\Tests\Listener;
+
+use OC\InitialStateService;
+use OCA\Files\Event\LoadAdditionalScriptsEvent;
+use OCA\Files_Sharing\Listener\LoadAdditionalListener;
+use OCP\EventDispatcher\Event;
+use OCP\IConfig;
+use OCP\L10N\IFactory;
+use OCP\Share\IManager;
+use OCP\Util;
+use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Log\LoggerInterface;
+use Test\TestCase;
+
+class LoadAdditionalListenerTest extends TestCase {
+ protected LoggerInterface&MockObject $logger;
+ protected LoadAdditionalScriptsEvent&MockObject $event;
+ protected IManager&MockObject $shareManager;
+ protected IFactory&MockObject $factory;
+ protected InitialStateService&MockObject $initialStateService;
+ protected IConfig&MockObject $config;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->logger = $this->createMock(LoggerInterface::class);
+ $this->event = $this->createMock(LoadAdditionalScriptsEvent::class);
+ $this->shareManager = $this->createMock(IManager::class);
+ $this->factory = $this->createMock(IFactory::class);
+ $this->initialStateService = $this->createMock(InitialStateService::class);
+ $this->config = $this->createMock(IConfig::class);
+
+ /* Empty static array to avoid inter-test conflicts */
+ \OC_Util::$styles = [];
+ self::invokePrivate(Util::class, 'scripts', [[]]);
+ self::invokePrivate(Util::class, 'scriptDeps', [[]]);
+ self::invokePrivate(Util::class, 'scriptsInit', [[]]);
+ }
+
+ protected function tearDown(): void {
+ parent::tearDown();
+
+ \OC_Util::$styles = [];
+ self::invokePrivate(Util::class, 'scripts', [[]]);
+ self::invokePrivate(Util::class, 'scriptDeps', [[]]);
+ self::invokePrivate(Util::class, 'scriptsInit', [[]]);
+ }
+
+ public function testHandleIgnoresNonMatchingEvent(): void {
+ $listener = new LoadAdditionalListener();
+ $event = $this->createMock(Event::class);
+
+ // Should not throw or call anything
+ $listener->handle($event);
+
+ $this->assertTrue(true); // No exception means pass
+ }
+
+ public function testHandleWithLoadAdditionalScriptsEvent(): void {
+ $listener = new LoadAdditionalListener();
+
+ $this->shareManager->method('shareApiEnabled')->willReturn(false);
+ $this->factory->method('findLanguage')->willReturn('language_mock');
+ $this->config->method('getSystemValueBool')->willReturn(true);
+
+ $this->overwriteService(IManager::class, $this->shareManager);
+ $this->overwriteService(IFactory::class, $this->factory);
+ $this->overwriteService(InitialStateService::class, $this->initialStateService);
+ $this->overwriteService(IConfig::class, $this->config);
+
+ $scriptsBefore = Util::getScripts();
+ $this->assertNotContains('files_sharing/l10n/language_mock', $scriptsBefore);
+ $this->assertNotContains('files_sharing/js/additionalScripts', $scriptsBefore);
+ $this->assertNotContains('files_sharing/js/init', $scriptsBefore);
+ $this->assertNotContains('files_sharing/css/icons', \OC_Util::$styles);
+
+ // Util static methods can't be easily mocked, so just ensure no exceptions
+ $listener->handle($this->event);
+
+ // assert array $scripts contains the expected scripts
+ $scriptsAfter = Util::getScripts();
+ $this->assertContains('files_sharing/l10n/language_mock', $scriptsAfter);
+ $this->assertContains('files_sharing/js/additionalScripts', $scriptsAfter);
+ $this->assertNotContains('files_sharing/js/init', $scriptsAfter);
+
+ $this->assertContains('files_sharing/css/icons', \OC_Util::$styles);
+ }
+
+ public function testHandleWithLoadAdditionalScriptsEventWithShareApiEnabled(): void {
+ $listener = new LoadAdditionalListener();
+
+ $this->shareManager->method('shareApiEnabled')->willReturn(true);
+ $this->config->method('getSystemValueBool')->willReturn(true);
+
+ $this->overwriteService(IManager::class, $this->shareManager);
+ $this->overwriteService(InitialStateService::class, $this->initialStateService);
+ $this->overwriteService(IConfig::class, $this->config);
+ $this->overwriteService(IFactory::class, $this->factory);
+
+ $scriptsBefore = Util::getScripts();
+ $this->assertNotContains('files_sharing/js/init', $scriptsBefore);
+
+ // Util static methods can't be easily mocked, so just ensure no exceptions
+ $listener->handle($this->event);
+
+ $scriptsAfter = Util::getScripts();
+
+ // assert array $scripts contains the expected scripts
+ $this->assertContains('files_sharing/js/init', $scriptsAfter);
+ }
+}
diff --git a/apps/files_sharing/tests/MountProviderTest.php b/apps/files_sharing/tests/MountProviderTest.php
index 285af51f022..4a1eb673a06 100644
--- a/apps/files_sharing/tests/MountProviderTest.php
+++ b/apps/files_sharing/tests/MountProviderTest.php
@@ -20,29 +20,21 @@ use OCP\IUserManager;
use OCP\Share\IAttributes as IShareAttributes;
use OCP\Share\IManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
/**
* @group DB
*/
class MountProviderTest extends \Test\TestCase {
- /** @var MountProvider */
- private $provider;
- /** @var IConfig|MockObject */
- private $config;
+ protected MountProvider $provider;
- /** @var IUser|MockObject */
- private $user;
-
- /** @var IStorageFactory|MockObject */
- private $loader;
-
- /** @var IManager|MockObject */
- private $shareManager;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
+ protected IUser&MockObject $user;
+ protected IConfig&MockObject $config;
+ protected IManager&MockObject $shareManager;
+ protected IStorageFactory&MockObject $loader;
+ protected LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
@@ -144,38 +136,34 @@ class MountProviderTest extends \Test\TestCase {
];
// tests regarding circles and sciencemesh are made in the apps themselves.
$circleShares = [];
- $sciencemeshShares = [];
+ $scienceMeshShares = [];
$this->user->expects($this->any())
->method('getUID')
->willReturn('user1');
$this->shareManager->expects($this->exactly(6))
->method('getSharedWith')
- ->withConsecutive(
- ['user1', IShare::TYPE_USER],
- ['user1', IShare::TYPE_GROUP, null, -1],
- ['user1', IShare::TYPE_CIRCLE, null, -1],
- ['user1', IShare::TYPE_ROOM, null, -1],
- ['user1', IShare::TYPE_DECK, null, -1],
- ['user1', IShare::TYPE_SCIENCEMESH, null, -1],
- )->willReturnOnConsecutiveCalls(
- $userShares,
- $groupShares,
- $circleShares,
- $roomShares,
- $deckShares,
- $sciencemeshShares
- );
+ ->willReturnMap([
+ ['user1', IShare::TYPE_USER, null, -1, 0, $userShares],
+ ['user1', IShare::TYPE_GROUP, null, -1, 0, $groupShares],
+ ['user1', IShare::TYPE_CIRCLE, null, -1, 0, $circleShares],
+ ['user1', IShare::TYPE_ROOM, null, -1, 0, $roomShares],
+ ['user1', IShare::TYPE_DECK, null, -1, 0, $deckShares],
+ ['user1', IShare::TYPE_SCIENCEMESH, null, -1, 0, $scienceMeshShares],
+ ]);
+
$this->shareManager->expects($this->any())
->method('newShare')
->willReturnCallback(function () use ($rootFolder, $userManager) {
return new Share($rootFolder, $userManager);
});
+
$mounts = $this->provider->getMountsForUser($this->user, $this->loader);
$this->assertCount(4, $mounts);
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[0]);
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[1]);
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[2]);
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mounts[3]);
+ /** @var OCA\Files_Sharing\SharedMount[] $mounts */
$mountedShare1 = $mounts[0]->getShare();
$this->assertEquals('2', $mountedShare1->getId());
$this->assertEquals('user2', $mountedShare1->getShareOwner());
@@ -204,7 +192,7 @@ class MountProviderTest extends \Test\TestCase {
$this->assertEquals(31, $mountedShare4->getPermissions());
}
- public function mergeSharesDataProvider() {
+ public static function mergeSharesDataProvider(): array {
// note: the user in the specs here is the shareOwner not recipient
// the recipient is always "user1"
return [
@@ -368,24 +356,18 @@ class MountProviderTest extends \Test\TestCase {
$circleShares = [];
$roomShares = [];
$deckShares = [];
- $sciencemeshShares = [];
+ $scienceMeshShares = [];
$this->shareManager->expects($this->exactly(6))
->method('getSharedWith')
- ->withConsecutive(
- ['user1', IShare::TYPE_USER],
- ['user1', IShare::TYPE_GROUP, null, -1],
- ['user1', IShare::TYPE_CIRCLE, null, -1],
- ['user1', IShare::TYPE_ROOM, null, -1],
- ['user1', IShare::TYPE_DECK, null, -1],
- ['user1', IShare::TYPE_SCIENCEMESH, null, -1],
- )->willReturnOnConsecutiveCalls(
- $userShares,
- $groupShares,
- $circleShares,
- $roomShares,
- $deckShares,
- $sciencemeshShares
- );
+ ->willReturnMap([
+ ['user1', IShare::TYPE_USER, null, -1, 0, $userShares],
+ ['user1', IShare::TYPE_GROUP, null, -1, 0, $groupShares],
+ ['user1', IShare::TYPE_CIRCLE, null, -1, 0, $circleShares],
+ ['user1', IShare::TYPE_ROOM, null, -1, 0, $roomShares],
+ ['user1', IShare::TYPE_DECK, null, -1, 0, $deckShares],
+ ['user1', IShare::TYPE_SCIENCEMESH, null, -1, 0, $scienceMeshShares],
+ ]);
+
$this->shareManager->expects($this->any())
->method('newShare')
->willReturnCallback(function () use ($rootFolder, $userManager) {
@@ -407,6 +389,7 @@ class MountProviderTest extends \Test\TestCase {
$this->assertInstanceOf('OCA\Files_Sharing\SharedMount', $mount);
// supershare
+ /** @var OCA\Files_Sharing\SharedMount $mount */
$share = $mount->getShare();
$this->assertEquals($expectedShare[0], $share->getId());
diff --git a/apps/files_sharing/tests/TestCase.php b/apps/files_sharing/tests/TestCase.php
index 647a591db8d..34e2d71fb02 100644
--- a/apps/files_sharing/tests/TestCase.php
+++ b/apps/files_sharing/tests/TestCase.php
@@ -108,7 +108,7 @@ abstract class TestCase extends \Test\TestCase {
Server::get(DisplayNameCache::class)->clear();
//login as user1
- self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
+ $this->loginHelper(self::TEST_FILES_SHARING_API_USER1);
$this->data = 'foobar';
$this->view = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
@@ -173,7 +173,7 @@ abstract class TestCase extends \Test\TestCase {
* @param bool $create
* @param bool $password
*/
- protected static function loginHelper($user, $create = false, $password = false) {
+ protected function loginHelper($user, $create = false, $password = false) {
if ($password === false) {
$password = $user;
}
diff --git a/apps/files_trashbin/l10n/af.js b/apps/files_trashbin/l10n/af.js
deleted file mode 100644
index dbc81dd6dcf..00000000000
--- a/apps/files_trashbin/l10n/af.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "herstel",
- "Deleted files" : "Geskrapte lêers",
- "Restore" : "Herstel",
- "No deleted files" : "Geen geskrapte lêers",
- "Deleted" : "Geskrap",
- "You will be able to recover deleted files from here" : "U sal geskrapte lêers van hier kan herstel",
- "No entries found in this folder" : "Geen inskrwyings in hierdie vouer gevind",
- "Select all" : "Kies alle",
- "Name" : "Naam",
- "Actions" : "Aksies"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/af.json b/apps/files_trashbin/l10n/af.json
deleted file mode 100644
index 04a7f433920..00000000000
--- a/apps/files_trashbin/l10n/af.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "restored" : "herstel",
- "Deleted files" : "Geskrapte lêers",
- "Restore" : "Herstel",
- "No deleted files" : "Geen geskrapte lêers",
- "Deleted" : "Geskrap",
- "You will be able to recover deleted files from here" : "U sal geskrapte lêers van hier kan herstel",
- "No entries found in this folder" : "Geen inskrwyings in hierdie vouer gevind",
- "Select all" : "Kies alle",
- "Name" : "Naam",
- "Actions" : "Aksies"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/az.js b/apps/files_trashbin/l10n/az.js
deleted file mode 100644
index c1ef01c8d15..00000000000
--- a/apps/files_trashbin/l10n/az.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "geriqaytarılıb",
- "Deleted files" : "Silinmiş fayllar",
- "Restore" : "Geri qaytar",
- "All files" : "Bütün fayllar",
- "No deleted files" : "Silinmiş fayllar mövcud deyil",
- "Deleted" : "Silinib",
- "You will be able to recover deleted files from here" : "Siz silinmiş faylları burdan bərpa edə bilərsiniz",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Select all" : "Hamısıı seç",
- "Name" : "Ad",
- "Actions" : "İşlər"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/az.json b/apps/files_trashbin/l10n/az.json
deleted file mode 100644
index f0bbd3e8fe8..00000000000
--- a/apps/files_trashbin/l10n/az.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "restored" : "geriqaytarılıb",
- "Deleted files" : "Silinmiş fayllar",
- "Restore" : "Geri qaytar",
- "All files" : "Bütün fayllar",
- "No deleted files" : "Silinmiş fayllar mövcud deyil",
- "Deleted" : "Silinib",
- "You will be able to recover deleted files from here" : "Siz silinmiş faylları burdan bərpa edə bilərsiniz",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Select all" : "Hamısıı seç",
- "Name" : "Ad",
- "Actions" : "İşlər"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/be.js b/apps/files_trashbin/l10n/be.js
deleted file mode 100644
index c72c72bbe91..00000000000
--- a/apps/files_trashbin/l10n/be.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Error" : "Памылка"
-},
-"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files_trashbin/l10n/be.json b/apps/files_trashbin/l10n/be.json
deleted file mode 100644
index a2514254e13..00000000000
--- a/apps/files_trashbin/l10n/be.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Error" : "Памылка"
-},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/bg.js b/apps/files_trashbin/l10n/bg.js
deleted file mode 100644
index 4e831810813..00000000000
--- a/apps/files_trashbin/l10n/bg.js
+++ /dev/null
@@ -1,22 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "възстановено",
- "Deleted files" : "Изтрити файлове",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Изтрити файлове и папки в кошчето (може да изтекът по време на експортиране, ако нямате място във вашето хранилище)",
- "Restore" : "Възстановяне",
- "Unknown" : "Неизвестен",
- "All files" : "Всички файлове",
- "Deleted" : "Изтрито",
- "Cancel" : "Отказ",
- "List of files that have been deleted." : "Списък на файловете, които са били изтрити.",
- "No deleted files" : "Няма изтрити файлове",
- "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% от наличната в момента безплатна квота за изтрити файлове. Ако изтритите файлове надхвърлят това ограничение, приложението изтрива най-старите файлове, докато стигне под това ограничение. Повече информация можете да намерите в документацията за изтритите файлове.",
- "You will be able to recover deleted files from here" : "От тук можете да възстановите изтрити файлове",
- "No entries found in this folder" : "Няма намерени записи в тази папка",
- "Select all" : "Избери всички",
- "Name" : "Име",
- "Actions" : "Действия"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/bg.json b/apps/files_trashbin/l10n/bg.json
deleted file mode 100644
index 3b80e6d9347..00000000000
--- a/apps/files_trashbin/l10n/bg.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{ "translations": {
- "restored" : "възстановено",
- "Deleted files" : "Изтрити файлове",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Изтрити файлове и папки в кошчето (може да изтекът по време на експортиране, ако нямате място във вашето хранилище)",
- "Restore" : "Възстановяне",
- "Unknown" : "Неизвестен",
- "All files" : "Всички файлове",
- "Deleted" : "Изтрито",
- "Cancel" : "Отказ",
- "List of files that have been deleted." : "Списък на файловете, които са били изтрити.",
- "No deleted files" : "Няма изтрити файлове",
- "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% от наличната в момента безплатна квота за изтрити файлове. Ако изтритите файлове надхвърлят това ограничение, приложението изтрива най-старите файлове, докато стигне под това ограничение. Повече информация можете да намерите в документацията за изтритите файлове.",
- "You will be able to recover deleted files from here" : "От тук можете да възстановите изтрити файлове",
- "No entries found in this folder" : "Няма намерени записи в тази папка",
- "Select all" : "Избери всички",
- "Name" : "Име",
- "Actions" : "Действия"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/bn_BD.js b/apps/files_trashbin/l10n/bn_BD.js
deleted file mode 100644
index 12537a14afb..00000000000
--- a/apps/files_trashbin/l10n/bn_BD.js
+++ /dev/null
@@ -1,14 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Couldn't delete %s permanently" : "%s স্থায়ীভাবে মুছে ফেলা গেলনা",
- "Couldn't restore %s" : "%s ফেরত আনা গেলনা",
- "Deleted files" : "মুছে ফেলা ফাইলসমূহ",
- "Restore" : "ফিরিয়ে দাও",
- "Delete" : "মুছে",
- "Error" : "সমস্যা",
- "restored" : "পূণঃসংরক্ষিত",
- "Name" : "নাম",
- "Deleted" : "মুছে ফেলা"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/bn_BD.json b/apps/files_trashbin/l10n/bn_BD.json
deleted file mode 100644
index 3630d490455..00000000000
--- a/apps/files_trashbin/l10n/bn_BD.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{ "translations": {
- "Couldn't delete %s permanently" : "%s স্থায়ীভাবে মুছে ফেলা গেলনা",
- "Couldn't restore %s" : "%s ফেরত আনা গেলনা",
- "Deleted files" : "মুছে ফেলা ফাইলসমূহ",
- "Restore" : "ফিরিয়ে দাও",
- "Delete" : "মুছে",
- "Error" : "সমস্যা",
- "restored" : "পূণঃসংরক্ষিত",
- "Name" : "নাম",
- "Deleted" : "মুছে ফেলা"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/br.js b/apps/files_trashbin/l10n/br.js
deleted file mode 100644
index 184d6597585..00000000000
--- a/apps/files_trashbin/l10n/br.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "adkrouet",
- "Deleted files" : "Restroù diverket",
- "Restore" : "Adkrouiñ",
- "Unknown" : "Dianv",
- "All files" : "An holl restroù",
- "Deleted" : "Lamet",
- "Cancel" : "Nullañ",
- "No deleted files" : "Restr lemet ebet",
- "This application enables users to restore files that were deleted from the system." : "Ar meziant-mañ a aotre an implijourienn da adtapout ho restroù a oa bet lamet eus ar sistem.",
- "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." : "Ar meziant-mañ a aotre an implijourienn da adkroui ar restroù a zo bet lamet eus ar sistem. Lak a ra da gwelet ur roll restroù lamet en etrefas web, ha dibaboù adkrouiñ ar restroù lamet en teuliadoù an implijer pe lemel anezho da viken eus ar sistem. Adkrouiñ ar restr a adkrou ivez pep stumm restr liammet, ma ez eus eus ar stumm meziant. Pa e vez lamet ur restr eus ur rannadenn, posupl eo adkrouién anezhañ gant memes doare, mes n'eo ket rannet kenn. dre ziouer, chom a ra ar restroù e pad 30 deiz.\nEvit ampechiñ un implijer da gol plas, ar meziant restroù Lamet n'a implijo nemet 50% eus ar lec'h dieub evit ar restrom lamet. Ma vez tremenet ar vevenn gant ar restroù lamet, lamet e vo ar restroù kozhañ betek ma vint en dro dindan ar vevenn. Muioc'h a ditouroù en dielvadur Restroù Lamet.",
- "You will be able to recover deleted files from here" : "Posupl a vo deoc'h adtapout restroù lamet diouzh al lec'h mañ",
- "No entries found in this folder" : "Disoc'h ebet en teuliad-mañ",
- "Select all" : "Dibab pep tra",
- "Name" : "Anv",
- "Actions" : "Oberoù"
-},
-"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");
diff --git a/apps/files_trashbin/l10n/br.json b/apps/files_trashbin/l10n/br.json
deleted file mode 100644
index cb9b8384574..00000000000
--- a/apps/files_trashbin/l10n/br.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "restored" : "adkrouet",
- "Deleted files" : "Restroù diverket",
- "Restore" : "Adkrouiñ",
- "Unknown" : "Dianv",
- "All files" : "An holl restroù",
- "Deleted" : "Lamet",
- "Cancel" : "Nullañ",
- "No deleted files" : "Restr lemet ebet",
- "This application enables users to restore files that were deleted from the system." : "Ar meziant-mañ a aotre an implijourienn da adtapout ho restroù a oa bet lamet eus ar sistem.",
- "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." : "Ar meziant-mañ a aotre an implijourienn da adkroui ar restroù a zo bet lamet eus ar sistem. Lak a ra da gwelet ur roll restroù lamet en etrefas web, ha dibaboù adkrouiñ ar restroù lamet en teuliadoù an implijer pe lemel anezho da viken eus ar sistem. Adkrouiñ ar restr a adkrou ivez pep stumm restr liammet, ma ez eus eus ar stumm meziant. Pa e vez lamet ur restr eus ur rannadenn, posupl eo adkrouién anezhañ gant memes doare, mes n'eo ket rannet kenn. dre ziouer, chom a ra ar restroù e pad 30 deiz.\nEvit ampechiñ un implijer da gol plas, ar meziant restroù Lamet n'a implijo nemet 50% eus ar lec'h dieub evit ar restrom lamet. Ma vez tremenet ar vevenn gant ar restroù lamet, lamet e vo ar restroù kozhañ betek ma vint en dro dindan ar vevenn. Muioc'h a ditouroù en dielvadur Restroù Lamet.",
- "You will be able to recover deleted files from here" : "Posupl a vo deoc'h adtapout restroù lamet diouzh al lec'h mañ",
- "No entries found in this folder" : "Disoc'h ebet en teuliad-mañ",
- "Select all" : "Dibab pep tra",
- "Name" : "Anv",
- "Actions" : "Oberoù"
-},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/bs.js b/apps/files_trashbin/l10n/bs.js
deleted file mode 100644
index c02d88b07e4..00000000000
--- a/apps/files_trashbin/l10n/bs.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Restore" : "Obnovi",
- "Delete" : "Izbriši",
- "Error" : "Greška",
- "Select all" : "Označi sve",
- "Name" : "Ime"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_trashbin/l10n/bs.json b/apps/files_trashbin/l10n/bs.json
deleted file mode 100644
index 00f1105abc6..00000000000
--- a/apps/files_trashbin/l10n/bs.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Restore" : "Obnovi",
- "Delete" : "Izbriši",
- "Error" : "Greška",
- "Select all" : "Označi sve",
- "Name" : "Ime"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/cs.js b/apps/files_trashbin/l10n/cs.js
index de43bf97faf..1c551eeb576 100644
--- a/apps/files_trashbin/l10n/cs.js
+++ b/apps/files_trashbin/l10n/cs.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "Tato aplikace umožňuje lidem obnovovat soubory, které byly ze systému vymazány.",
"This application enables people 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 people 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 an account 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." : "Tato aplikace lidem umožňuje obnovovat soubory, které byly ze systému vymazány. Ve webovém rozhraní zobrazuje seznam smazaných souborů a má volby pro obnovení těchto souborů zpět do složek se soubory lidí nebo jejich trvalé odebrání. Obnovení souboru také obnoví jeho související verze (pokud je zapnutá aplikace pro správu verzí). Když je soubor smazán ze sdílení, je možné ho obnovit stejným způsobem, ačkoli už nebude sdílený. Ve výchozím stavu, tyto soubory jsou ponechávány v koši po dobu 30 dnů.\nAby lidé nezaplnili celý disk, aplikace Smazané soubory pro ně nevyužije více než 50% kvóty. Pokud smazané soubory přesahují tento limit, aplikace maže nejstarší soubory, dokud se nedostane pod limit. Další informace jsou k dispozici v dokumentaci ke Smazané soubory.",
"Restore" : "Obnovit",
+ "Not enough free space to restore the file/folder" : "Nedostatek volného místa pro obnovení souboru/složky",
"Empty deleted files" : "Vyprázdnit smazané soubory",
"Confirm permanent deletion" : "Potvrdit nevratné smazání",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Opravdu chcete nevratně smazat veškeré soubory a složky v koši? Toto nelze vzít zpět!",
@@ -15,12 +16,15 @@ OC.L10N.register(
"Original location" : "Původní umístění",
"Deleted by" : "Smazal(a)",
"Deleted" : "Smazáno",
+ "few seconds ago" : "před několika sekundami",
"A long time ago" : "Před dlouhou dobou",
"Unknown" : "Neznámé",
"All files" : "Všechny soubory",
"You" : "Vy",
"List of files that have been deleted." : "Seznam souborů, které byly smazány",
"No deleted files" : "Žádné smazané soubory",
- "Files and folders you have deleted will show up here" : "Zde budou zobrazeny soubory a složky, které jste smazali"
+ "Files and folders you have deleted will show up here" : "Zde budou zobrazeny soubory a složky, které jste smazali",
+ "All files have been permanently deleted" : "Veškeré soubory byly nevratně smazány",
+ "Failed to empty deleted files" : "Nepodařilo se vyprázdnit smazané soubory"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
diff --git a/apps/files_trashbin/l10n/cs.json b/apps/files_trashbin/l10n/cs.json
index 791bdf1d481..af9702b3dbb 100644
--- a/apps/files_trashbin/l10n/cs.json
+++ b/apps/files_trashbin/l10n/cs.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "Tato aplikace umožňuje lidem obnovovat soubory, které byly ze systému vymazány.",
"This application enables people 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 people 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 an account 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." : "Tato aplikace lidem umožňuje obnovovat soubory, které byly ze systému vymazány. Ve webovém rozhraní zobrazuje seznam smazaných souborů a má volby pro obnovení těchto souborů zpět do složek se soubory lidí nebo jejich trvalé odebrání. Obnovení souboru také obnoví jeho související verze (pokud je zapnutá aplikace pro správu verzí). Když je soubor smazán ze sdílení, je možné ho obnovit stejným způsobem, ačkoli už nebude sdílený. Ve výchozím stavu, tyto soubory jsou ponechávány v koši po dobu 30 dnů.\nAby lidé nezaplnili celý disk, aplikace Smazané soubory pro ně nevyužije více než 50% kvóty. Pokud smazané soubory přesahují tento limit, aplikace maže nejstarší soubory, dokud se nedostane pod limit. Další informace jsou k dispozici v dokumentaci ke Smazané soubory.",
"Restore" : "Obnovit",
+ "Not enough free space to restore the file/folder" : "Nedostatek volného místa pro obnovení souboru/složky",
"Empty deleted files" : "Vyprázdnit smazané soubory",
"Confirm permanent deletion" : "Potvrdit nevratné smazání",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Opravdu chcete nevratně smazat veškeré soubory a složky v koši? Toto nelze vzít zpět!",
@@ -13,12 +14,15 @@
"Original location" : "Původní umístění",
"Deleted by" : "Smazal(a)",
"Deleted" : "Smazáno",
+ "few seconds ago" : "před několika sekundami",
"A long time ago" : "Před dlouhou dobou",
"Unknown" : "Neznámé",
"All files" : "Všechny soubory",
"You" : "Vy",
"List of files that have been deleted." : "Seznam souborů, které byly smazány",
"No deleted files" : "Žádné smazané soubory",
- "Files and folders you have deleted will show up here" : "Zde budou zobrazeny soubory a složky, které jste smazali"
+ "Files and folders you have deleted will show up here" : "Zde budou zobrazeny soubory a složky, které jste smazali",
+ "All files have been permanently deleted" : "Veškeré soubory byly nevratně smazány",
+ "Failed to empty deleted files" : "Nepodařilo se vyprázdnit smazané soubory"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/cy_GB.js b/apps/files_trashbin/l10n/cy_GB.js
deleted file mode 100644
index e689aa9b52c..00000000000
--- a/apps/files_trashbin/l10n/cy_GB.js
+++ /dev/null
@@ -1,14 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Couldn't delete %s permanently" : "Methwyd dileu %s yn barhaol",
- "Couldn't restore %s" : "Methwyd adfer %s",
- "Deleted files" : "Ffeiliau ddilewyd",
- "Restore" : "Adfer",
- "Delete" : "Dileu",
- "Delete permanently" : "Dileu'n barhaol",
- "Error" : "Gwall",
- "Name" : "Enw",
- "Deleted" : "Wedi dileu"
-},
-"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/apps/files_trashbin/l10n/cy_GB.json b/apps/files_trashbin/l10n/cy_GB.json
deleted file mode 100644
index c42ce3d10ea..00000000000
--- a/apps/files_trashbin/l10n/cy_GB.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{ "translations": {
- "Couldn't delete %s permanently" : "Methwyd dileu %s yn barhaol",
- "Couldn't restore %s" : "Methwyd adfer %s",
- "Deleted files" : "Ffeiliau ddilewyd",
- "Restore" : "Adfer",
- "Delete" : "Dileu",
- "Delete permanently" : "Dileu'n barhaol",
- "Error" : "Gwall",
- "Name" : "Enw",
- "Deleted" : "Wedi dileu"
-},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/de.js b/apps/files_trashbin/l10n/de.js
index e5fc521180e..301e9f8b5ec 100644
--- a/apps/files_trashbin/l10n/de.js
+++ b/apps/files_trashbin/l10n/de.js
@@ -3,24 +3,28 @@ OC.L10N.register(
{
"restored" : "Wiederhergestellt",
"Deleted files" : "Gelöschte Dateien",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Gelöschte Dateien und Ordner im Papierkorb (können während des Exports gelöscht werden, wenn der Speicherplatz knapp wird)",
- "This application enables people to restore files that were deleted from the system." : "Diese Anwendung ermöglicht es Benutzern, Dateien die vom System gelöscht wurden wieder herzustellen.",
- "This application enables people 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 people 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 an account 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." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die aus dem System gelöscht wurden. Es zeigt eine Liste der gelöschten Dateien in der Web-Oberfläche an und bietet die Möglichkeit, diese gelöschten Dateien in die Verzeichnisse der Personen wiederherzustellen oder sie dauerhaft aus dem System zu entfernen. Beim Wiederherstellen einer Datei werden auch die zugehörigen Dateiversionen wiederhergestellt, sofern die Versionsanwendung aktiviert ist. Wenn eine Datei aus einer Freigabe gelöscht wird, kann sie auf dem gleichen Weg wiederhergestellt werden, ist jedoch nicht mehr geteilt. Standardmäßig verbleiben gelöschte Dateien 30 Tage lang im Papierkorb.\nUm zu verhindern, dass einem Konto der Speicherplatz ausgeht, nutzt die Anwendung für gelöschte Dateien maximal 50% des aktuell verfügbaren freien Kontingents. Wenn die gelöschten Dateien dieses Limit überschreiten, löscht die Anwendung die ältesten Dateien, bis sie unter dieses Limit fällt. Weitere Informationen findest du in der Dokumentation zu gelöschten Dateien.",
+ "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Gelöschte Dateien und Ordner im Papierkorb (können während des Exports ablaufen, wenn der Speicherplatz knapp wird)",
+ "This application enables people to restore files that were deleted from the system." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die vom System gelöscht wurden.",
+ "This application enables people 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 people 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 an account 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." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die aus dem System gelöscht wurden. Es zeigt eine Liste der gelöschten Dateien in der Web-Oberfläche an und bietet die Möglichkeit, diese gelöschten Dateien in die Verzeichnisse der Personen wiederherzustellen oder sie dauerhaft aus dem System zu entfernen. Beim Wiederherstellen einer Datei werden auch die zugehörigen Dateiversionen wiederhergestellt, sofern die Versionsanwendung aktiviert ist. Wenn eine Datei aus einer Freigabe gelöscht wird, kann sie auf dem gleichen Weg wiederhergestellt werden, ist jedoch nicht mehr geteilt. Standardmäßig verbleiben gelöschte Dateien 30 Tage lang im Papierkorb.\nUm zu verhindern, dass einem Konto der Speicherplatz ausgeht, nutzt die Anwendung für gelöschte Dateien maximal 50 % des aktuell verfügbaren freien Kontingents. Wenn die gelöschten Dateien dieses Limit überschreiten, löscht die Anwendung die ältesten Dateien, bis sie unter dieses Limit fällt. Weitere Informationen findest du in der Dokumentation zu gelöschten Dateien.",
"Restore" : "Wiederherstellen",
+ "Not enough free space to restore the file/folder" : "Nicht genügend freier Speicherplatz zum Wiederherstellen der Datei/des Ordners",
"Empty deleted files" : "Gelöschte Dateien leeren",
"Confirm permanent deletion" : "Endgültiges Löschen bestätigen",
- "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Möchtest Du wirklich alle Dateien und Ordner im Papierkorb endgültig löschen? Dies kann nicht rückgängig gemacht werden.",
+ "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Möchtest du wirklich alle Dateien und Ordner im Papierkorb endgültig löschen? Dies kann nicht rückgängig gemacht werden.",
"Cancel" : "Abbrechen",
"Deletion cancelled" : "Löschen abgebrochen",
"Original location" : "Ursprünglicher Ort",
"Deleted by" : "Gelöscht von",
- "Deleted" : "gelöscht",
+ "Deleted" : "Gelöscht",
+ "few seconds ago" : "Gerade eben",
"A long time ago" : "Vor langer Zeit",
"Unknown" : "Unbekannt",
"All files" : "Alle Dateien",
- "You" : "Du",
+ "You" : "Dir",
"List of files that have been deleted." : "Liste der gelöschten Dateien.",
"No deleted files" : "Keine gelöschten Dateien",
- "Files and folders you have deleted will show up here" : "Die von dir gelöschten Dateien und Ordner werden hier angezeigt"
+ "Files and folders you have deleted will show up here" : "Die von dir gelöschten Dateien und Ordner werden hier angezeigt",
+ "All files have been permanently deleted" : "Alle Dateien wurden dauerhaft gelöscht",
+ "Failed to empty deleted files" : "Gelöschte Dateien konnten nicht geleert werden"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/de.json b/apps/files_trashbin/l10n/de.json
index bfa65bb5d0d..3a0d2129645 100644
--- a/apps/files_trashbin/l10n/de.json
+++ b/apps/files_trashbin/l10n/de.json
@@ -1,24 +1,28 @@
{ "translations": {
"restored" : "Wiederhergestellt",
"Deleted files" : "Gelöschte Dateien",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Gelöschte Dateien und Ordner im Papierkorb (können während des Exports gelöscht werden, wenn der Speicherplatz knapp wird)",
- "This application enables people to restore files that were deleted from the system." : "Diese Anwendung ermöglicht es Benutzern, Dateien die vom System gelöscht wurden wieder herzustellen.",
- "This application enables people 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 people 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 an account 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." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die aus dem System gelöscht wurden. Es zeigt eine Liste der gelöschten Dateien in der Web-Oberfläche an und bietet die Möglichkeit, diese gelöschten Dateien in die Verzeichnisse der Personen wiederherzustellen oder sie dauerhaft aus dem System zu entfernen. Beim Wiederherstellen einer Datei werden auch die zugehörigen Dateiversionen wiederhergestellt, sofern die Versionsanwendung aktiviert ist. Wenn eine Datei aus einer Freigabe gelöscht wird, kann sie auf dem gleichen Weg wiederhergestellt werden, ist jedoch nicht mehr geteilt. Standardmäßig verbleiben gelöschte Dateien 30 Tage lang im Papierkorb.\nUm zu verhindern, dass einem Konto der Speicherplatz ausgeht, nutzt die Anwendung für gelöschte Dateien maximal 50% des aktuell verfügbaren freien Kontingents. Wenn die gelöschten Dateien dieses Limit überschreiten, löscht die Anwendung die ältesten Dateien, bis sie unter dieses Limit fällt. Weitere Informationen findest du in der Dokumentation zu gelöschten Dateien.",
+ "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Gelöschte Dateien und Ordner im Papierkorb (können während des Exports ablaufen, wenn der Speicherplatz knapp wird)",
+ "This application enables people to restore files that were deleted from the system." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die vom System gelöscht wurden.",
+ "This application enables people 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 people 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 an account 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." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die aus dem System gelöscht wurden. Es zeigt eine Liste der gelöschten Dateien in der Web-Oberfläche an und bietet die Möglichkeit, diese gelöschten Dateien in die Verzeichnisse der Personen wiederherzustellen oder sie dauerhaft aus dem System zu entfernen. Beim Wiederherstellen einer Datei werden auch die zugehörigen Dateiversionen wiederhergestellt, sofern die Versionsanwendung aktiviert ist. Wenn eine Datei aus einer Freigabe gelöscht wird, kann sie auf dem gleichen Weg wiederhergestellt werden, ist jedoch nicht mehr geteilt. Standardmäßig verbleiben gelöschte Dateien 30 Tage lang im Papierkorb.\nUm zu verhindern, dass einem Konto der Speicherplatz ausgeht, nutzt die Anwendung für gelöschte Dateien maximal 50 % des aktuell verfügbaren freien Kontingents. Wenn die gelöschten Dateien dieses Limit überschreiten, löscht die Anwendung die ältesten Dateien, bis sie unter dieses Limit fällt. Weitere Informationen findest du in der Dokumentation zu gelöschten Dateien.",
"Restore" : "Wiederherstellen",
+ "Not enough free space to restore the file/folder" : "Nicht genügend freier Speicherplatz zum Wiederherstellen der Datei/des Ordners",
"Empty deleted files" : "Gelöschte Dateien leeren",
"Confirm permanent deletion" : "Endgültiges Löschen bestätigen",
- "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Möchtest Du wirklich alle Dateien und Ordner im Papierkorb endgültig löschen? Dies kann nicht rückgängig gemacht werden.",
+ "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Möchtest du wirklich alle Dateien und Ordner im Papierkorb endgültig löschen? Dies kann nicht rückgängig gemacht werden.",
"Cancel" : "Abbrechen",
"Deletion cancelled" : "Löschen abgebrochen",
"Original location" : "Ursprünglicher Ort",
"Deleted by" : "Gelöscht von",
- "Deleted" : "gelöscht",
+ "Deleted" : "Gelöscht",
+ "few seconds ago" : "Gerade eben",
"A long time ago" : "Vor langer Zeit",
"Unknown" : "Unbekannt",
"All files" : "Alle Dateien",
- "You" : "Du",
+ "You" : "Dir",
"List of files that have been deleted." : "Liste der gelöschten Dateien.",
"No deleted files" : "Keine gelöschten Dateien",
- "Files and folders you have deleted will show up here" : "Die von dir gelöschten Dateien und Ordner werden hier angezeigt"
+ "Files and folders you have deleted will show up here" : "Die von dir gelöschten Dateien und Ordner werden hier angezeigt",
+ "All files have been permanently deleted" : "Alle Dateien wurden dauerhaft gelöscht",
+ "Failed to empty deleted files" : "Gelöschte Dateien konnten nicht geleert werden"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/de_DE.js b/apps/files_trashbin/l10n/de_DE.js
index f790c296f4a..58c9ebb01ff 100644
--- a/apps/files_trashbin/l10n/de_DE.js
+++ b/apps/files_trashbin/l10n/de_DE.js
@@ -4,9 +4,10 @@ OC.L10N.register(
"restored" : "Wiederhergestellt",
"Deleted files" : "Gelöschte Dateien",
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Gelöschte Dateien und Ordner im Papierkorb (können während des Exports ablaufen, wenn der Speicherplatz knapp wird)",
- "This application enables people to restore files that were deleted from the system." : "Diese Anwendung ermöglicht Personen, Dateien wiederherzustellen, die vom System gelöscht wurden.",
- "This application enables people 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 people 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 an account 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." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die aus dem System gelöscht wurden. Es zeigt eine Liste der gelöschten Dateien in der Web-Oberfläche an und bietet die Möglichkeit, diese gelöschten Dateien in die Verzeichnisse der Personen wiederherzustellen oder sie dauerhaft aus dem System zu entfernen. Beim Wiederherstellen einer Datei werden auch die zugehörigen Dateiversionen wiederhergestellt, sofern die Versionsanwendung aktiviert ist. Wenn eine Datei aus einer Freigabe gelöscht wird, kann sie auf dem gleichen Weg wiederhergestellt werden, ist jedoch nicht mehr geteilt. Standardmäßig verbleiben gelöschte Dateien 30 Tage lang im Papierkorb.\nUm zu verhindern, dass einem Konto der Speicherplatz ausgeht, nutzt die Anwendung für gelöschte Dateien maximal 50% des aktuell verfügbaren freien Kontingents. Wenn die gelöschten Dateien dieses Limit überschreiten, löscht die Anwendung die ältesten Dateien, bis sie unter dieses Limit fällt. Weitere Informationen finden Sie in der Dokumentation zu gelöschten Dateien.",
+ "This application enables people to restore files that were deleted from the system." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die vom System gelöscht wurden.",
+ "This application enables people 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 people 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 an account 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." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die aus dem System gelöscht wurden. Es zeigt eine Liste der gelöschten Dateien in der Web-Oberfläche an und bietet die Möglichkeit, diese gelöschten Dateien in die Verzeichnisse der Personen wiederherzustellen oder sie dauerhaft aus dem System zu entfernen. Beim Wiederherstellen einer Datei werden auch die zugehörigen Dateiversionen wiederhergestellt, sofern die Versionsanwendung aktiviert ist. Wenn eine Datei aus einer Freigabe gelöscht wird, kann sie auf dem gleichen Weg wiederhergestellt werden, ist jedoch nicht mehr geteilt. Standardmäßig verbleiben gelöschte Dateien 30 Tage lang im Papierkorb.\nUm zu verhindern, dass einem Konto der Speicherplatz ausgeht, nutzt die Anwendung für gelöschte Dateien maximal 50 % des aktuell verfügbaren freien Kontingents. Wenn die gelöschten Dateien dieses Limit überschreiten, löscht die Anwendung die ältesten Dateien, bis sie unter dieses Limit fällt. Weitere Informationen finden Sie in der Dokumentation zu gelöschten Dateien.",
"Restore" : "Wiederherstellen",
+ "Not enough free space to restore the file/folder" : "Nicht genügend freier Speicherplatz zum Wiederherstellen der Datei/des Ordners",
"Empty deleted files" : "Gelöschte Dateien leeren",
"Confirm permanent deletion" : "Endgültiges Löschen bestätigen",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Möchten Sie wirklich alle Dateien und Ordner im Papierkorb endgültig löschen? Dies kann nicht rückgängig gemacht werden.",
@@ -15,12 +16,15 @@ OC.L10N.register(
"Original location" : "Ursprünglicher Ort",
"Deleted by" : "Gelöscht von",
"Deleted" : "Gelöscht",
+ "few seconds ago" : "Gerade eben",
"A long time ago" : "Vor langer Zeit",
"Unknown" : "Unbekannt",
"All files" : "Alle Dateien",
- "You" : "Sie",
+ "You" : "Ihnen",
"List of files that have been deleted." : "Liste der gelöschten Dateien.",
"No deleted files" : "Keine gelöschten Dateien",
- "Files and folders you have deleted will show up here" : "Die von Ihnen gelöschten Dateien und Ordner werden hier angezeigt"
+ "Files and folders you have deleted will show up here" : "Die von Ihnen gelöschten Dateien und Ordner werden hier angezeigt",
+ "All files have been permanently deleted" : "Alle Dateien wurden dauerhaft gelöscht",
+ "Failed to empty deleted files" : "Gelöschte Dateien konnten nicht geleert werden"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/de_DE.json b/apps/files_trashbin/l10n/de_DE.json
index 74b1b262e57..38a7037401b 100644
--- a/apps/files_trashbin/l10n/de_DE.json
+++ b/apps/files_trashbin/l10n/de_DE.json
@@ -2,9 +2,10 @@
"restored" : "Wiederhergestellt",
"Deleted files" : "Gelöschte Dateien",
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Gelöschte Dateien und Ordner im Papierkorb (können während des Exports ablaufen, wenn der Speicherplatz knapp wird)",
- "This application enables people to restore files that were deleted from the system." : "Diese Anwendung ermöglicht Personen, Dateien wiederherzustellen, die vom System gelöscht wurden.",
- "This application enables people 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 people 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 an account 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." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die aus dem System gelöscht wurden. Es zeigt eine Liste der gelöschten Dateien in der Web-Oberfläche an und bietet die Möglichkeit, diese gelöschten Dateien in die Verzeichnisse der Personen wiederherzustellen oder sie dauerhaft aus dem System zu entfernen. Beim Wiederherstellen einer Datei werden auch die zugehörigen Dateiversionen wiederhergestellt, sofern die Versionsanwendung aktiviert ist. Wenn eine Datei aus einer Freigabe gelöscht wird, kann sie auf dem gleichen Weg wiederhergestellt werden, ist jedoch nicht mehr geteilt. Standardmäßig verbleiben gelöschte Dateien 30 Tage lang im Papierkorb.\nUm zu verhindern, dass einem Konto der Speicherplatz ausgeht, nutzt die Anwendung für gelöschte Dateien maximal 50% des aktuell verfügbaren freien Kontingents. Wenn die gelöschten Dateien dieses Limit überschreiten, löscht die Anwendung die ältesten Dateien, bis sie unter dieses Limit fällt. Weitere Informationen finden Sie in der Dokumentation zu gelöschten Dateien.",
+ "This application enables people to restore files that were deleted from the system." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die vom System gelöscht wurden.",
+ "This application enables people 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 people 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 an account 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." : "Diese Anwendung ermöglicht es Personen, Dateien wiederherzustellen, die aus dem System gelöscht wurden. Es zeigt eine Liste der gelöschten Dateien in der Web-Oberfläche an und bietet die Möglichkeit, diese gelöschten Dateien in die Verzeichnisse der Personen wiederherzustellen oder sie dauerhaft aus dem System zu entfernen. Beim Wiederherstellen einer Datei werden auch die zugehörigen Dateiversionen wiederhergestellt, sofern die Versionsanwendung aktiviert ist. Wenn eine Datei aus einer Freigabe gelöscht wird, kann sie auf dem gleichen Weg wiederhergestellt werden, ist jedoch nicht mehr geteilt. Standardmäßig verbleiben gelöschte Dateien 30 Tage lang im Papierkorb.\nUm zu verhindern, dass einem Konto der Speicherplatz ausgeht, nutzt die Anwendung für gelöschte Dateien maximal 50 % des aktuell verfügbaren freien Kontingents. Wenn die gelöschten Dateien dieses Limit überschreiten, löscht die Anwendung die ältesten Dateien, bis sie unter dieses Limit fällt. Weitere Informationen finden Sie in der Dokumentation zu gelöschten Dateien.",
"Restore" : "Wiederherstellen",
+ "Not enough free space to restore the file/folder" : "Nicht genügend freier Speicherplatz zum Wiederherstellen der Datei/des Ordners",
"Empty deleted files" : "Gelöschte Dateien leeren",
"Confirm permanent deletion" : "Endgültiges Löschen bestätigen",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Möchten Sie wirklich alle Dateien und Ordner im Papierkorb endgültig löschen? Dies kann nicht rückgängig gemacht werden.",
@@ -13,12 +14,15 @@
"Original location" : "Ursprünglicher Ort",
"Deleted by" : "Gelöscht von",
"Deleted" : "Gelöscht",
+ "few seconds ago" : "Gerade eben",
"A long time ago" : "Vor langer Zeit",
"Unknown" : "Unbekannt",
"All files" : "Alle Dateien",
- "You" : "Sie",
+ "You" : "Ihnen",
"List of files that have been deleted." : "Liste der gelöschten Dateien.",
"No deleted files" : "Keine gelöschten Dateien",
- "Files and folders you have deleted will show up here" : "Die von Ihnen gelöschten Dateien und Ordner werden hier angezeigt"
+ "Files and folders you have deleted will show up here" : "Die von Ihnen gelöschten Dateien und Ordner werden hier angezeigt",
+ "All files have been permanently deleted" : "Alle Dateien wurden dauerhaft gelöscht",
+ "Failed to empty deleted files" : "Gelöschte Dateien konnten nicht geleert werden"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/el.js b/apps/files_trashbin/l10n/el.js
deleted file mode 100644
index 62a28fb2d6f..00000000000
--- a/apps/files_trashbin/l10n/el.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "επαναφέρθηκαν",
- "Deleted files" : "Διεγραμμένα αρχεία",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Διαγραμμένα αρχεία και φάκελοι στον κάδο απορριμμάτων (μπορεί να λήξουν κατά την εξαγωγή, αν δεν έχετε αρκετό αποθηκευτικό χώρο)",
- "Restore" : "Επαναφορά",
- "Cancel" : "Ακύρωση",
- "Deletion cancelled" : "Διαγραφή ακυρώθηκε",
- "Deleted" : "Διαγραμμένα",
- "A long time ago" : "Πριν αρκετό καιρό",
- "Unknown" : "Άγνωστο",
- "All files" : "Όλα τα αρχεία",
- "You" : "Εσύ",
- "No deleted files" : "Κανένα διαγεγραμμένο αρχείο"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/el.json b/apps/files_trashbin/l10n/el.json
deleted file mode 100644
index 3a4f562b54b..00000000000
--- a/apps/files_trashbin/l10n/el.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "επαναφέρθηκαν",
- "Deleted files" : "Διεγραμμένα αρχεία",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Διαγραμμένα αρχεία και φάκελοι στον κάδο απορριμμάτων (μπορεί να λήξουν κατά την εξαγωγή, αν δεν έχετε αρκετό αποθηκευτικό χώρο)",
- "Restore" : "Επαναφορά",
- "Cancel" : "Ακύρωση",
- "Deletion cancelled" : "Διαγραφή ακυρώθηκε",
- "Deleted" : "Διαγραμμένα",
- "A long time ago" : "Πριν αρκετό καιρό",
- "Unknown" : "Άγνωστο",
- "All files" : "Όλα τα αρχεία",
- "You" : "Εσύ",
- "No deleted files" : "Κανένα διαγεγραμμένο αρχείο"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/en_GB.js b/apps/files_trashbin/l10n/en_GB.js
index 6a42b161815..c54c8cd2bfe 100644
--- a/apps/files_trashbin/l10n/en_GB.js
+++ b/apps/files_trashbin/l10n/en_GB.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "This application enables people to restore files that were deleted from the system.",
"This application enables people 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 people 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 an account 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." : "This application enables people 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 people 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 an account 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.",
"Restore" : "Restore",
+ "Not enough free space to restore the file/folder" : "Not enough free space to restore the file/folder",
"Empty deleted files" : "Empty deleted files",
"Confirm permanent deletion" : "Confirm permanent deletion",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone.",
@@ -15,6 +16,7 @@ OC.L10N.register(
"Original location" : "Original location",
"Deleted by" : "Deleted by",
"Deleted" : "Deleted",
+ "few seconds ago" : "few seconds ago",
"A long time ago" : "A long time ago",
"Unknown" : "Unknown",
"All files" : "All files",
diff --git a/apps/files_trashbin/l10n/en_GB.json b/apps/files_trashbin/l10n/en_GB.json
index b4f372b73ca..bbc5dcf3a1e 100644
--- a/apps/files_trashbin/l10n/en_GB.json
+++ b/apps/files_trashbin/l10n/en_GB.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "This application enables people to restore files that were deleted from the system.",
"This application enables people 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 people 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 an account 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." : "This application enables people 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 people 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 an account 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.",
"Restore" : "Restore",
+ "Not enough free space to restore the file/folder" : "Not enough free space to restore the file/folder",
"Empty deleted files" : "Empty deleted files",
"Confirm permanent deletion" : "Confirm permanent deletion",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone.",
@@ -13,6 +14,7 @@
"Original location" : "Original location",
"Deleted by" : "Deleted by",
"Deleted" : "Deleted",
+ "few seconds ago" : "few seconds ago",
"A long time ago" : "A long time ago",
"Unknown" : "Unknown",
"All files" : "All files",
diff --git a/apps/files_trashbin/l10n/eo.js b/apps/files_trashbin/l10n/eo.js
deleted file mode 100644
index d55b2138349..00000000000
--- a/apps/files_trashbin/l10n/eo.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaŭrita",
- "Deleted files" : "Forigitaj dosieroj",
- "Restore" : "Restaŭri",
- "Unknown" : "Nekonata",
- "All files" : "Ĉiuj dosieroj",
- "Deleted" : "Forigita",
- "No deleted files" : "Neniu dosiero foriĝis",
- "This application enables users to restore files that were deleted from the system." : "Per tiu aplikaĵo, uzanto povas restaŭri dosierojn, kiuj estis forigitaj el la sistemo.",
- "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." : "Per tiu aplikaĵo, uzanto povas restaŭri dosierojn, kiuj estis forigitaj el la sistemo. Listo de forigitaj dosieroj montriĝas en la retumila fasado, kun opcio por restaŭri ilin aŭ definitive forigi ilin. Restaŭro de dosiero ankaŭ restaŭras ĉiujn versiojn de tiu dosiero, se la aplikaĵo „Versioj“ estas ŝaltita. Kiam dosiero estas forigita el kunhavo, ĝi restaŭreblas sammaniere, kvankam ĝi ne plu estas kunhavigita. Defaŭlte, la dosieroj restas en la rubujo 30 tagojn.\nPor antaŭmalhelpi al uzanto ne plu havi liberan spacon, tiu ĉi aplikaĵo ne uzos pli ol 50% el la aktuale disponebla libera kvoto por forigitaj dosieroj. Se la forigitaj dosieroj transpasas tiun limon, la aplikaĵo forigas la plej malnovajn dosierojn ĝis irado sub la limo. Pliajn informoj en la dokumentaro.",
- "You will be able to recover deleted files from here" : "Vi eblos restaŭrigi forigitaj dosieroj el tie",
- "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
- "Select all" : "Elekti ĉion",
- "Name" : "Nomo",
- "Actions" : "Agoj"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/eo.json b/apps/files_trashbin/l10n/eo.json
deleted file mode 100644
index cfddef34d75..00000000000
--- a/apps/files_trashbin/l10n/eo.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "restored" : "restaŭrita",
- "Deleted files" : "Forigitaj dosieroj",
- "Restore" : "Restaŭri",
- "Unknown" : "Nekonata",
- "All files" : "Ĉiuj dosieroj",
- "Deleted" : "Forigita",
- "No deleted files" : "Neniu dosiero foriĝis",
- "This application enables users to restore files that were deleted from the system." : "Per tiu aplikaĵo, uzanto povas restaŭri dosierojn, kiuj estis forigitaj el la sistemo.",
- "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." : "Per tiu aplikaĵo, uzanto povas restaŭri dosierojn, kiuj estis forigitaj el la sistemo. Listo de forigitaj dosieroj montriĝas en la retumila fasado, kun opcio por restaŭri ilin aŭ definitive forigi ilin. Restaŭro de dosiero ankaŭ restaŭras ĉiujn versiojn de tiu dosiero, se la aplikaĵo „Versioj“ estas ŝaltita. Kiam dosiero estas forigita el kunhavo, ĝi restaŭreblas sammaniere, kvankam ĝi ne plu estas kunhavigita. Defaŭlte, la dosieroj restas en la rubujo 30 tagojn.\nPor antaŭmalhelpi al uzanto ne plu havi liberan spacon, tiu ĉi aplikaĵo ne uzos pli ol 50% el la aktuale disponebla libera kvoto por forigitaj dosieroj. Se la forigitaj dosieroj transpasas tiun limon, la aplikaĵo forigas la plej malnovajn dosierojn ĝis irado sub la limo. Pliajn informoj en la dokumentaro.",
- "You will be able to recover deleted files from here" : "Vi eblos restaŭrigi forigitaj dosieroj el tie",
- "No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
- "Select all" : "Elekti ĉion",
- "Name" : "Nomo",
- "Actions" : "Agoj"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_419.js b/apps/files_trashbin/l10n/es_419.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_419.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_419.json b/apps/files_trashbin/l10n/es_419.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_419.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_AR.js b/apps/files_trashbin/l10n/es_AR.js
deleted file mode 100644
index dbf5f78acc2..00000000000
--- a/apps/files_trashbin/l10n/es_AR.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "recuperado",
- "Deleted files" : "Archivos eliminados",
- "Restore" : "Recuperar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Eliminado",
- "No deleted files" : "No hay archivos eliminados",
- "This application enables users to restore files that were deleted from the system." : "Esta aplicación permite a los usuarios restaurar archivos que fueron eliminados del sistema.",
- "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." : "Esta aplicación permite a los usuarios restaurar archivos que fueron eliminados del sistema. Muestra una lista de los archivos eliminados en la interfaz web y tiene opciones para restaurar esos archivos eliminados a las carpetas del usuario o eliminarlos permanentemente del sistema. Restaurando un archivo también se restauran las versiones del archivo relacionadas, si la aplicación de versiones está habilitada. Cuando un archivo compartido es eliminado, éste puede ser restaurado de la misma manera, aunque ya no estará compartido. Por defecto, estos archivos permanecen en la papelera por 30 días.\nPara prevenir que un usuario se quede sin espacio en el disco, la aplicación de Archivos eliminados no utilizará mas del 50% de la cuota de espacio libre para archivos eliminados. Si los archivos eliminados exceden este límite, la aplicación elimina los archivos mas antiguos hasta permanecer debajo de ese límite. Más información está disponible en la documentación de Archivos Eliminados.",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos eliminados desde aquí",
- "No entries found in this folder" : "No se encontraron entradas en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_AR.json b/apps/files_trashbin/l10n/es_AR.json
deleted file mode 100644
index 99d7f0ae8b1..00000000000
--- a/apps/files_trashbin/l10n/es_AR.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "restored" : "recuperado",
- "Deleted files" : "Archivos eliminados",
- "Restore" : "Recuperar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Eliminado",
- "No deleted files" : "No hay archivos eliminados",
- "This application enables users to restore files that were deleted from the system." : "Esta aplicación permite a los usuarios restaurar archivos que fueron eliminados del sistema.",
- "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." : "Esta aplicación permite a los usuarios restaurar archivos que fueron eliminados del sistema. Muestra una lista de los archivos eliminados en la interfaz web y tiene opciones para restaurar esos archivos eliminados a las carpetas del usuario o eliminarlos permanentemente del sistema. Restaurando un archivo también se restauran las versiones del archivo relacionadas, si la aplicación de versiones está habilitada. Cuando un archivo compartido es eliminado, éste puede ser restaurado de la misma manera, aunque ya no estará compartido. Por defecto, estos archivos permanecen en la papelera por 30 días.\nPara prevenir que un usuario se quede sin espacio en el disco, la aplicación de Archivos eliminados no utilizará mas del 50% de la cuota de espacio libre para archivos eliminados. Si los archivos eliminados exceden este límite, la aplicación elimina los archivos mas antiguos hasta permanecer debajo de ese límite. Más información está disponible en la documentación de Archivos Eliminados.",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos eliminados desde aquí",
- "No entries found in this folder" : "No se encontraron entradas en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_CL.js b/apps/files_trashbin/l10n/es_CL.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_CL.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_CL.json b/apps/files_trashbin/l10n/es_CL.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_CL.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_CO.js b/apps/files_trashbin/l10n/es_CO.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_CO.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_CO.json b/apps/files_trashbin/l10n/es_CO.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_CO.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_CR.js b/apps/files_trashbin/l10n/es_CR.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_CR.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_CR.json b/apps/files_trashbin/l10n/es_CR.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_CR.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_DO.js b/apps/files_trashbin/l10n/es_DO.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_DO.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_DO.json b/apps/files_trashbin/l10n/es_DO.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_DO.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_EC.js b/apps/files_trashbin/l10n/es_EC.js
deleted file mode 100644
index 1675080ce8b..00000000000
--- a/apps/files_trashbin/l10n/es_EC.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Archivos y carpetas eliminados en la papelera de reciclaje (pueden expirar durante la exportación si tienes poco espacio de almacenamiento)",
- "Restore" : "Restaurar",
- "Cancel" : "Cancelar",
- "Deleted" : "Borrado",
- "A long time ago" : "Hace mucho tiempo.",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "List of files that have been deleted." : "Lista de archivos que han sido eliminados.",
- "No deleted files" : "No hay archivos borrados",
- "Files and folders you have deleted will show up here" : "Los archivos y carpetas que has eliminado aparecerán aquí. "
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_EC.json b/apps/files_trashbin/l10n/es_EC.json
deleted file mode 100644
index 9865975acd6..00000000000
--- a/apps/files_trashbin/l10n/es_EC.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Archivos y carpetas eliminados en la papelera de reciclaje (pueden expirar durante la exportación si tienes poco espacio de almacenamiento)",
- "Restore" : "Restaurar",
- "Cancel" : "Cancelar",
- "Deleted" : "Borrado",
- "A long time ago" : "Hace mucho tiempo.",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "List of files that have been deleted." : "Lista de archivos que han sido eliminados.",
- "No deleted files" : "No hay archivos borrados",
- "Files and folders you have deleted will show up here" : "Los archivos y carpetas que has eliminado aparecerán aquí. "
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_GT.js b/apps/files_trashbin/l10n/es_GT.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_GT.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_GT.json b/apps/files_trashbin/l10n/es_GT.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_GT.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_HN.js b/apps/files_trashbin/l10n/es_HN.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_HN.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_HN.json b/apps/files_trashbin/l10n/es_HN.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_HN.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_NI.js b/apps/files_trashbin/l10n/es_NI.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_NI.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_NI.json b/apps/files_trashbin/l10n/es_NI.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_NI.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_PA.js b/apps/files_trashbin/l10n/es_PA.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_PA.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_PA.json b/apps/files_trashbin/l10n/es_PA.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_PA.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_PE.js b/apps/files_trashbin/l10n/es_PE.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_PE.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_PE.json b/apps/files_trashbin/l10n/es_PE.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_PE.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_PR.js b/apps/files_trashbin/l10n/es_PR.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_PR.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_PR.json b/apps/files_trashbin/l10n/es_PR.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_PR.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_PY.js b/apps/files_trashbin/l10n/es_PY.js
deleted file mode 100644
index a7fd87452f7..00000000000
--- a/apps/files_trashbin/l10n/es_PY.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "All files" : "Todos los archivos",
- "No deleted files" : "No hay archivos borrados",
- "Deleted" : "Borrado",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_PY.json b/apps/files_trashbin/l10n/es_PY.json
deleted file mode 100644
index c5119b42fd5..00000000000
--- a/apps/files_trashbin/l10n/es_PY.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "All files" : "Todos los archivos",
- "No deleted files" : "No hay archivos borrados",
- "Deleted" : "Borrado",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_SV.js b/apps/files_trashbin/l10n/es_SV.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_SV.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_SV.json b/apps/files_trashbin/l10n/es_SV.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_SV.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/es_UY.js b/apps/files_trashbin/l10n/es_UY.js
deleted file mode 100644
index 10fabba195b..00000000000
--- a/apps/files_trashbin/l10n/es_UY.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/es_UY.json b/apps/files_trashbin/l10n/es_UY.json
deleted file mode 100644
index fd3c7cd2a7e..00000000000
--- a/apps/files_trashbin/l10n/es_UY.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurado",
- "Deleted files" : "Archivos borrados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconocido",
- "All files" : "Todos los archivos",
- "Deleted" : "Borrado",
- "No deleted files" : "No hay archivos borrados",
- "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Select all" : "Seleccionar todo",
- "Name" : "Nombre",
- "Actions" : "Acciones"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/et_EE.js b/apps/files_trashbin/l10n/et_EE.js
index a91297dee6c..26968b2cdaa 100644
--- a/apps/files_trashbin/l10n/et_EE.js
+++ b/apps/files_trashbin/l10n/et_EE.js
@@ -4,23 +4,27 @@ OC.L10N.register(
"restored" : "taastatud",
"Deleted files" : "Kustutatud failid",
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Kustutatud failid ja kaustad prügikastis (võivad ekspordi käigus aeguda, kui salvestusruum on otsakorral)",
- "This application enables people to restore files that were deleted from the system." : "See rakendus võimaldab inimestel taastada faile mis nad süsteemist kustutasid.",
+ "This application enables people to restore files that were deleted from the system." : "See rakendus võimaldab kasutajatel taastada faile, mis nad süsteemist kustutasid.",
"This application enables people 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 people 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 an account 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." : "See rakendus võimaldab inimestel taastada süsteemist kustutatud faile. See kuvab veebiliideses kustutatud failide loendi ja pakub võimalusi kustutatud failide taastamiseks inimeste failikataloogidesse või süsteemist jäädavalt eemaldamiseks. Faili taastamine taastab ka seotud failiversioonid, kui versioonirakendus on lubatud. Kui fail ühiskasutusest kustutatakse, saab selle taastada samal viisil, kuigi seda enam ei jagata. Vaikimisi jäävad need failid prügikasti 30 päevaks.\nKonto kettaruumi tühjenemise vältimiseks ei kasuta rakendus Kustutatud failid rohkem kui 50% praegu saadaolevast kustutatud failide tasuta kvoodist. Kui kustutatud failid ületavad selle limiidi, kustutab rakendus vanimad failid, kuni need jäävad sellest limiidist allapoole. Lisateavet leiate kustutatud failide dokumentatsioonist.",
"Restore" : "Taasta",
- "Empty deleted files" : "Tühjenda kustutatud failid",
+ "Not enough free space to restore the file/folder" : "Faili või kausta taastamiseks pole piisavalt vaba ruumi",
+ "Empty deleted files" : "Eemalda kustutatud failid lõplikult",
"Confirm permanent deletion" : "Kinnita lõplik kustutamine",
- "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Kas oled kindel, et tahad lõplikult kustutada kõik prügikastis olevad failid ja kaustad? Seda ei saa tagasi keerata.",
+ "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Kas oled kindel, et tahad lõplikult kustutada kõik prügikastis olevad failid ja kaustad? Seda tegevust ei saa tagasi keerata.",
"Cancel" : "Tühista",
- "Deletion cancelled" : "Kustutamine tühistatud",
+ "Deletion cancelled" : "Kustutamine on tühistatud",
"Original location" : "Algasukoht",
"Deleted by" : "Kustutas",
"Deleted" : "Kustutatud",
+ "few seconds ago" : "mõne sekundi eest",
"A long time ago" : "Pikka aega tagasi",
"Unknown" : "Teadmata",
"All files" : "Kõik failid",
"You" : "Sina",
"List of files that have been deleted." : "Kustutatud failide loend.",
"No deleted files" : "Kustutatud faile pole",
- "Files and folders you have deleted will show up here" : "Failid ja kaustad, mis oled kustutanud, ilmuvad siia"
+ "Files and folders you have deleted will show up here" : "Sinu kustutatud failid ja kaustad on nähtavad siin",
+ "All files have been permanently deleted" : "Kõik failid on kustutatud jäädavalt",
+ "Failed to empty deleted files" : "Kustutatud failide eemaldamine ei õnnestunud"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/et_EE.json b/apps/files_trashbin/l10n/et_EE.json
index 5b5f3804b26..99ecf77c9ec 100644
--- a/apps/files_trashbin/l10n/et_EE.json
+++ b/apps/files_trashbin/l10n/et_EE.json
@@ -2,23 +2,27 @@
"restored" : "taastatud",
"Deleted files" : "Kustutatud failid",
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Kustutatud failid ja kaustad prügikastis (võivad ekspordi käigus aeguda, kui salvestusruum on otsakorral)",
- "This application enables people to restore files that were deleted from the system." : "See rakendus võimaldab inimestel taastada faile mis nad süsteemist kustutasid.",
+ "This application enables people to restore files that were deleted from the system." : "See rakendus võimaldab kasutajatel taastada faile, mis nad süsteemist kustutasid.",
"This application enables people 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 people 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 an account 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." : "See rakendus võimaldab inimestel taastada süsteemist kustutatud faile. See kuvab veebiliideses kustutatud failide loendi ja pakub võimalusi kustutatud failide taastamiseks inimeste failikataloogidesse või süsteemist jäädavalt eemaldamiseks. Faili taastamine taastab ka seotud failiversioonid, kui versioonirakendus on lubatud. Kui fail ühiskasutusest kustutatakse, saab selle taastada samal viisil, kuigi seda enam ei jagata. Vaikimisi jäävad need failid prügikasti 30 päevaks.\nKonto kettaruumi tühjenemise vältimiseks ei kasuta rakendus Kustutatud failid rohkem kui 50% praegu saadaolevast kustutatud failide tasuta kvoodist. Kui kustutatud failid ületavad selle limiidi, kustutab rakendus vanimad failid, kuni need jäävad sellest limiidist allapoole. Lisateavet leiate kustutatud failide dokumentatsioonist.",
"Restore" : "Taasta",
- "Empty deleted files" : "Tühjenda kustutatud failid",
+ "Not enough free space to restore the file/folder" : "Faili või kausta taastamiseks pole piisavalt vaba ruumi",
+ "Empty deleted files" : "Eemalda kustutatud failid lõplikult",
"Confirm permanent deletion" : "Kinnita lõplik kustutamine",
- "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Kas oled kindel, et tahad lõplikult kustutada kõik prügikastis olevad failid ja kaustad? Seda ei saa tagasi keerata.",
+ "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Kas oled kindel, et tahad lõplikult kustutada kõik prügikastis olevad failid ja kaustad? Seda tegevust ei saa tagasi keerata.",
"Cancel" : "Tühista",
- "Deletion cancelled" : "Kustutamine tühistatud",
+ "Deletion cancelled" : "Kustutamine on tühistatud",
"Original location" : "Algasukoht",
"Deleted by" : "Kustutas",
"Deleted" : "Kustutatud",
+ "few seconds ago" : "mõne sekundi eest",
"A long time ago" : "Pikka aega tagasi",
"Unknown" : "Teadmata",
"All files" : "Kõik failid",
"You" : "Sina",
"List of files that have been deleted." : "Kustutatud failide loend.",
"No deleted files" : "Kustutatud faile pole",
- "Files and folders you have deleted will show up here" : "Failid ja kaustad, mis oled kustutanud, ilmuvad siia"
+ "Files and folders you have deleted will show up here" : "Sinu kustutatud failid ja kaustad on nähtavad siin",
+ "All files have been permanently deleted" : "Kõik failid on kustutatud jäädavalt",
+ "Failed to empty deleted files" : "Kustutatud failide eemaldamine ei õnnestunud"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/fa.js b/apps/files_trashbin/l10n/fa.js
index da76294a244..55b89e58982 100644
--- a/apps/files_trashbin/l10n/fa.js
+++ b/apps/files_trashbin/l10n/fa.js
@@ -6,10 +6,12 @@ OC.L10N.register(
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)",
"Restore" : "بازیابی",
"Cancel" : "منصرف شدن",
+ "Deletion cancelled" : "Deletion cancelled",
"Deleted" : "حذف شده",
"A long time ago" : "مدت ها پیش",
"Unknown" : "ناشناخته",
"All files" : "تمامی فایل‌ها",
+ "You" : "You",
"List of files that have been deleted." : "List of files that have been deleted.",
"No deleted files" : "هیچ فایل حذف شده وجود ندارد",
"Files and folders you have deleted will show up here" : "Files and folders you have deleted will show up here"
diff --git a/apps/files_trashbin/l10n/fa.json b/apps/files_trashbin/l10n/fa.json
index 22ee88dd2f0..18cdca47044 100644
--- a/apps/files_trashbin/l10n/fa.json
+++ b/apps/files_trashbin/l10n/fa.json
@@ -4,10 +4,12 @@
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)",
"Restore" : "بازیابی",
"Cancel" : "منصرف شدن",
+ "Deletion cancelled" : "Deletion cancelled",
"Deleted" : "حذف شده",
"A long time ago" : "مدت ها پیش",
"Unknown" : "ناشناخته",
"All files" : "تمامی فایل‌ها",
+ "You" : "You",
"List of files that have been deleted." : "List of files that have been deleted.",
"No deleted files" : "هیچ فایل حذف شده وجود ندارد",
"Files and folders you have deleted will show up here" : "Files and folders you have deleted will show up here"
diff --git a/apps/files_trashbin/l10n/fi.js b/apps/files_trashbin/l10n/fi.js
index 20ad0ecdcfb..2ce9a4f2c18 100644
--- a/apps/files_trashbin/l10n/fi.js
+++ b/apps/files_trashbin/l10n/fi.js
@@ -4,6 +4,7 @@ OC.L10N.register(
"restored" : "palautettu",
"Deleted files" : "Poistetut tiedostot",
"Restore" : "Palauta",
+ "Not enough free space to restore the file/folder" : "Tiedoston/kansion palauttamiseksi ei ole riittävästi vapaata tilaa",
"Empty deleted files" : "Tyhjennä poistetut tiedostot",
"Confirm permanent deletion" : "Vahvista lopullinen poistaminen",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Haluatko varmasti poistaa pysyvästi kaikki roskakorissa olevat tiedostot ja kansiot? Tätä ei voi perua.",
diff --git a/apps/files_trashbin/l10n/fi.json b/apps/files_trashbin/l10n/fi.json
index cea7d0c42e1..9d2b9fd3a37 100644
--- a/apps/files_trashbin/l10n/fi.json
+++ b/apps/files_trashbin/l10n/fi.json
@@ -2,6 +2,7 @@
"restored" : "palautettu",
"Deleted files" : "Poistetut tiedostot",
"Restore" : "Palauta",
+ "Not enough free space to restore the file/folder" : "Tiedoston/kansion palauttamiseksi ei ole riittävästi vapaata tilaa",
"Empty deleted files" : "Tyhjennä poistetut tiedostot",
"Confirm permanent deletion" : "Vahvista lopullinen poistaminen",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Haluatko varmasti poistaa pysyvästi kaikki roskakorissa olevat tiedostot ja kansiot? Tätä ei voi perua.",
diff --git a/apps/files_trashbin/l10n/fr.js b/apps/files_trashbin/l10n/fr.js
index dd615fab5fb..7fa10abb4b6 100644
--- a/apps/files_trashbin/l10n/fr.js
+++ b/apps/files_trashbin/l10n/fr.js
@@ -5,8 +5,9 @@ OC.L10N.register(
"Deleted files" : "Fichiers supprimés",
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Dossiers et fichiers supprimés dans la corbeille (peuvent expirer pendant l'export s'il reste peu d'espace disque)",
"This application enables people to restore files that were deleted from the system." : "Cette application permet aux personnes de restaurer des fichiers qui ont été supprimés du système.",
- "This application enables people 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 people 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 an account 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." : "Cette application permet aux personnes de restaurer les fichiers qui ont été supprimés du système. Il affiche une liste de fichiers supprimés dans l'interface Web et dispose d'options pour restaurer ces fichiers supprimés dans les dossiers de fichiers des personnes ou les supprimer définitivement du système. La restauration d'un fichier restaure également les versions de fichiers associées, si l'application de versions est activée. Lorsqu'un fichier est supprimé d'un partage, il peut être restauré de la même manière, bien qu'il ne soit plus partagé. Par défaut, ces fichiers restent dans la corbeille pendant 30 jours.\n\nPour empêcher un compte de manquer d'espace disque, l'application Fichiers supprimés n'utilisera pas plus de 50 % du quota gratuit actuellement disponible pour les fichiers supprimés. Si les fichiers supprimés dépassent cette limite, l'application supprime les fichiers les plus anciens jusqu'à ce qu'elle soit inférieure à cette limite. Plus d'informations sont disponibles dans la documentation Fichiers supprimés.",
+ "This application enables people 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 people 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 an account 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." : "Cette application permet aux personnes de restaurer les fichiers qui ont été supprimés du système. Il affiche une liste de fichiers supprimés dans l'interface Web et dispose d'options pour restaurer ces fichiers supprimés dans les dossiers de fichiers des personnes ou les supprimer définitivement du système. La restauration d'un fichier restaure également les versions de fichiers associées, si l'application de versions est activée. Lorsqu'un fichier est supprimé d'un partage, il peut être restauré de la même manière, bien qu'il ne soit plus partagé. Par défaut, ces fichiers restent dans la corbeille pendant 30 jours.\n\nPour empêcher un compte de manquer d'espace disque, l'application \"Fichiers supprimés\" n'utilisera pas plus de 50 % du quota actuellement disponible pour les fichiers supprimés. Si les fichiers supprimés dépassent cette limite, l'application supprime les fichiers les plus anciens jusqu'à ce qu'elle soit inférieure à cette limite. Plus d'informations sont disponibles dans la documentation Fichiers supprimés.",
"Restore" : "Restaurer",
+ "Not enough free space to restore the file/folder" : "Espace libre insuffisant pour restaurer le fichier/dossier",
"Empty deleted files" : "Vider les fichiers supprimés",
"Confirm permanent deletion" : "Confirmer la suppression définitive",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Êtes-vous sûr de vouloir supprimer définitivement tous les fichiers et dossiers dans la corbeille ? Cette action est irréversible.",
@@ -15,12 +16,15 @@ OC.L10N.register(
"Original location" : "Emplacement original",
"Deleted by" : "Supprimé par",
"Deleted" : "Supprimé",
+ "few seconds ago" : "Il y a quelques secondes",
"A long time ago" : "Il y a longtemps",
"Unknown" : "Inconnu",
"All files" : "Tous les fichiers",
"You" : "Vous",
"List of files that have been deleted." : "Liste des fichiers qui ont été supprimés.",
"No deleted files" : "Aucun fichier supprimé",
- "Files and folders you have deleted will show up here" : "Les fichiers et dossiers que vous avez supprimés apparaîtront ici"
+ "Files and folders you have deleted will show up here" : "Les fichiers et dossiers que vous avez supprimés apparaîtront ici",
+ "All files have been permanently deleted" : "Tous les fichiers ont été définitivement supprimés",
+ "Failed to empty deleted files" : "Échec de la vidange des fichiers supprimés"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/fr.json b/apps/files_trashbin/l10n/fr.json
index e3f17f80b64..651e674f964 100644
--- a/apps/files_trashbin/l10n/fr.json
+++ b/apps/files_trashbin/l10n/fr.json
@@ -3,8 +3,9 @@
"Deleted files" : "Fichiers supprimés",
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Dossiers et fichiers supprimés dans la corbeille (peuvent expirer pendant l'export s'il reste peu d'espace disque)",
"This application enables people to restore files that were deleted from the system." : "Cette application permet aux personnes de restaurer des fichiers qui ont été supprimés du système.",
- "This application enables people 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 people 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 an account 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." : "Cette application permet aux personnes de restaurer les fichiers qui ont été supprimés du système. Il affiche une liste de fichiers supprimés dans l'interface Web et dispose d'options pour restaurer ces fichiers supprimés dans les dossiers de fichiers des personnes ou les supprimer définitivement du système. La restauration d'un fichier restaure également les versions de fichiers associées, si l'application de versions est activée. Lorsqu'un fichier est supprimé d'un partage, il peut être restauré de la même manière, bien qu'il ne soit plus partagé. Par défaut, ces fichiers restent dans la corbeille pendant 30 jours.\n\nPour empêcher un compte de manquer d'espace disque, l'application Fichiers supprimés n'utilisera pas plus de 50 % du quota gratuit actuellement disponible pour les fichiers supprimés. Si les fichiers supprimés dépassent cette limite, l'application supprime les fichiers les plus anciens jusqu'à ce qu'elle soit inférieure à cette limite. Plus d'informations sont disponibles dans la documentation Fichiers supprimés.",
+ "This application enables people 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 people 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 an account 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." : "Cette application permet aux personnes de restaurer les fichiers qui ont été supprimés du système. Il affiche une liste de fichiers supprimés dans l'interface Web et dispose d'options pour restaurer ces fichiers supprimés dans les dossiers de fichiers des personnes ou les supprimer définitivement du système. La restauration d'un fichier restaure également les versions de fichiers associées, si l'application de versions est activée. Lorsqu'un fichier est supprimé d'un partage, il peut être restauré de la même manière, bien qu'il ne soit plus partagé. Par défaut, ces fichiers restent dans la corbeille pendant 30 jours.\n\nPour empêcher un compte de manquer d'espace disque, l'application \"Fichiers supprimés\" n'utilisera pas plus de 50 % du quota actuellement disponible pour les fichiers supprimés. Si les fichiers supprimés dépassent cette limite, l'application supprime les fichiers les plus anciens jusqu'à ce qu'elle soit inférieure à cette limite. Plus d'informations sont disponibles dans la documentation Fichiers supprimés.",
"Restore" : "Restaurer",
+ "Not enough free space to restore the file/folder" : "Espace libre insuffisant pour restaurer le fichier/dossier",
"Empty deleted files" : "Vider les fichiers supprimés",
"Confirm permanent deletion" : "Confirmer la suppression définitive",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Êtes-vous sûr de vouloir supprimer définitivement tous les fichiers et dossiers dans la corbeille ? Cette action est irréversible.",
@@ -13,12 +14,15 @@
"Original location" : "Emplacement original",
"Deleted by" : "Supprimé par",
"Deleted" : "Supprimé",
+ "few seconds ago" : "Il y a quelques secondes",
"A long time ago" : "Il y a longtemps",
"Unknown" : "Inconnu",
"All files" : "Tous les fichiers",
"You" : "Vous",
"List of files that have been deleted." : "Liste des fichiers qui ont été supprimés.",
"No deleted files" : "Aucun fichier supprimé",
- "Files and folders you have deleted will show up here" : "Les fichiers et dossiers que vous avez supprimés apparaîtront ici"
+ "Files and folders you have deleted will show up here" : "Les fichiers et dossiers que vous avez supprimés apparaîtront ici",
+ "All files have been permanently deleted" : "Tous les fichiers ont été définitivement supprimés",
+ "Failed to empty deleted files" : "Échec de la vidange des fichiers supprimés"
},"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/files_trashbin/l10n/ga.js b/apps/files_trashbin/l10n/ga.js
index 5c7a47f5216..4ba726da2f2 100644
--- a/apps/files_trashbin/l10n/ga.js
+++ b/apps/files_trashbin/l10n/ga.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a scriosadh as an gcóras a chur ar ais.",
"This application enables people 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 people 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 an account 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." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a scriosadh as an gcóras a chur ar ais. Taispeánann sé liosta de chomhaid scriosta sa chomhéadan gréasáin, agus tá roghanna ann chun na comhaid sin a scriosadh a chur ar ais go dtí na heolairí comhaid daoine nó iad a bhaint go buan den chóras. Athchóiríonn comhad a athbhunú leaganacha gaolmhara comhaid, má tá feidhmchlár na leaganacha cumasaithe. Nuair a scriostar comhad ó sciar, is féidir é a chur ar ais ar an mbealach céanna, cé nach bhfuil sé roinnte a thuilleadh. De réir réamhshocraithe, fanann na comhaid seo sa bhosca bruscair ar feadh 30 lá.\nChun cosc ​​a chur ar chuntas imeacht as spás diosca, ní úsáidfidh an aip Comhaid Scriosta níos mó ná 50% den chuóta saor in aisce atá ar fáil faoi láthair le haghaidh comhaid scriosta. Má sháraíonn na comhaid scriosta an teorainn seo, scriosann an aip na comhaid is sine go dtí go n-éireoidh sé faoin teorainn seo. Tá tuilleadh faisnéise ar fáil sa doiciméadú Comhaid Scriosta.",
"Restore" : "Athchóirigh",
+ "Not enough free space to restore the file/folder" : "Níl dóthain spáis saor ann chun an comhad/fillteán a athchóiriú",
"Empty deleted files" : "Comhaid scriosta folamh",
"Confirm permanent deletion" : "Deimhnigh scriosadh buan",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "An bhfuil tú cinnte gur mian leat gach comhad agus fillteán sa bhruscar a scriosadh go buan? Ní féidir é seo a chealú.",
@@ -15,6 +16,7 @@ OC.L10N.register(
"Original location" : "Suíomh bunaidh",
"Deleted by" : "Scriosta ag",
"Deleted" : "Scriosta",
+ "few seconds ago" : "cúpla soicind ó shin",
"A long time ago" : "Fadó fadó",
"Unknown" : "Anaithnid",
"All files" : "Gach comhad",
diff --git a/apps/files_trashbin/l10n/ga.json b/apps/files_trashbin/l10n/ga.json
index 0a7738a7f1c..0f524a0a8f2 100644
--- a/apps/files_trashbin/l10n/ga.json
+++ b/apps/files_trashbin/l10n/ga.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a scriosadh as an gcóras a chur ar ais.",
"This application enables people 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 people 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 an account 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." : "Cuireann an feidhmchlár seo ar chumas daoine comhaid a scriosadh as an gcóras a chur ar ais. Taispeánann sé liosta de chomhaid scriosta sa chomhéadan gréasáin, agus tá roghanna ann chun na comhaid sin a scriosadh a chur ar ais go dtí na heolairí comhaid daoine nó iad a bhaint go buan den chóras. Athchóiríonn comhad a athbhunú leaganacha gaolmhara comhaid, má tá feidhmchlár na leaganacha cumasaithe. Nuair a scriostar comhad ó sciar, is féidir é a chur ar ais ar an mbealach céanna, cé nach bhfuil sé roinnte a thuilleadh. De réir réamhshocraithe, fanann na comhaid seo sa bhosca bruscair ar feadh 30 lá.\nChun cosc ​​a chur ar chuntas imeacht as spás diosca, ní úsáidfidh an aip Comhaid Scriosta níos mó ná 50% den chuóta saor in aisce atá ar fáil faoi láthair le haghaidh comhaid scriosta. Má sháraíonn na comhaid scriosta an teorainn seo, scriosann an aip na comhaid is sine go dtí go n-éireoidh sé faoin teorainn seo. Tá tuilleadh faisnéise ar fáil sa doiciméadú Comhaid Scriosta.",
"Restore" : "Athchóirigh",
+ "Not enough free space to restore the file/folder" : "Níl dóthain spáis saor ann chun an comhad/fillteán a athchóiriú",
"Empty deleted files" : "Comhaid scriosta folamh",
"Confirm permanent deletion" : "Deimhnigh scriosadh buan",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "An bhfuil tú cinnte gur mian leat gach comhad agus fillteán sa bhruscar a scriosadh go buan? Ní féidir é seo a chealú.",
@@ -13,6 +14,7 @@
"Original location" : "Suíomh bunaidh",
"Deleted by" : "Scriosta ag",
"Deleted" : "Scriosta",
+ "few seconds ago" : "cúpla soicind ó shin",
"A long time ago" : "Fadó fadó",
"Unknown" : "Anaithnid",
"All files" : "Gach comhad",
diff --git a/apps/files_trashbin/l10n/he.js b/apps/files_trashbin/l10n/he.js
deleted file mode 100644
index 85941f16684..00000000000
--- a/apps/files_trashbin/l10n/he.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "שוחזר",
- "Deleted files" : "קבצים שנמחקו",
- "Restore" : "שחזור",
- "Unknown" : "לא ידוע",
- "All files" : "כל הקבצים",
- "Deleted" : "נמחק",
- "Cancel" : "ביטול",
- "No deleted files" : "אין קבצים שנמחקו",
- "This application enables users to restore files that were deleted from the system." : "יישומון זה מאפשר למשתמשים לשחזר קבצים שנמחקו מהמערכת.",
- "You will be able to recover deleted files from here" : "ניתן לבטל מחיקת קבצים מכאן",
- "No entries found in this folder" : "לא נמצאו כניסות לתיקייה זו",
- "Select all" : "לבחור הכול",
- "Name" : "שם",
- "Actions" : "פעולולת"
-},
-"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;");
diff --git a/apps/files_trashbin/l10n/he.json b/apps/files_trashbin/l10n/he.json
deleted file mode 100644
index 4532f307655..00000000000
--- a/apps/files_trashbin/l10n/he.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "restored" : "שוחזר",
- "Deleted files" : "קבצים שנמחקו",
- "Restore" : "שחזור",
- "Unknown" : "לא ידוע",
- "All files" : "כל הקבצים",
- "Deleted" : "נמחק",
- "Cancel" : "ביטול",
- "No deleted files" : "אין קבצים שנמחקו",
- "This application enables users to restore files that were deleted from the system." : "יישומון זה מאפשר למשתמשים לשחזר קבצים שנמחקו מהמערכת.",
- "You will be able to recover deleted files from here" : "ניתן לבטל מחיקת קבצים מכאן",
- "No entries found in this folder" : "לא נמצאו כניסות לתיקייה זו",
- "Select all" : "לבחור הכול",
- "Name" : "שם",
- "Actions" : "פעולולת"
-},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/hr.js b/apps/files_trashbin/l10n/hr.js
deleted file mode 100644
index 9ce19066e82..00000000000
--- a/apps/files_trashbin/l10n/hr.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "vraćeno",
- "Deleted files" : "Izbrisane datoteke",
- "Restore" : "Vrati",
- "Unknown" : "Nepoznata pogreška",
- "All files" : "Sve datoteke",
- "Deleted" : "Izbrisano",
- "Cancel" : "Odustani",
- "No deleted files" : "Nema izbrisanih datoteka",
- "This application enables users to restore files that were deleted from the system." : "Ova aplikacija omogućuje korisnicima vraćanje datoteka izbrisanih iz sustava.",
- "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." : "Ova aplikacija omogućuje korisnicima vraćanje datoteka izbrisanih iz sustava. Prikazuje popis izbrisanih datoteka u web sučelju i nudi mogućnosti vraćanja tih izbrisanih datoteka natrag u direktorij s datotekama korisnika ili trajnog uklanjanja iz sustava. Vraćanjem datoteke također se vraćaju povezane inačice datoteke ako je omogućena aplikacija za upravljanje inačicama. Kad se datoteka izbriše iz dijeljenja, ona se može vratiti na isti način ali se više ne dijeli. Te datoteke prema zadanim postavkama ostaju u kanti za smeće 30 dana.\nKako bi se spriječilo da korisnik ostane bez prostora na disku, aplikacija Izbrisane datoteke neće koristiti više od 50 % trenutno dostupne besplatne kvote za izbrisane datoteke. Ako izbrisane datoteke premaše ovo ograničenje, aplikacija briše najstarije datoteke dok se količina iskorištenog prostora ne spusti ispod ove granice. Više informacija dostupno je u dokumentaciji Izbrisane datoteke.",
- "You will be able to recover deleted files from here" : "Ovdje ćete moći vratiti izbrisane datoteke",
- "No entries found in this folder" : "U ovoj mapi nisu pronađeni nikakvi zapisi",
- "Select all" : "Odaberi sve",
- "Name" : "Naziv",
- "Actions" : "Radnje"
-},
-"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/hr.json b/apps/files_trashbin/l10n/hr.json
deleted file mode 100644
index 31891f4cf96..00000000000
--- a/apps/files_trashbin/l10n/hr.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "restored" : "vraćeno",
- "Deleted files" : "Izbrisane datoteke",
- "Restore" : "Vrati",
- "Unknown" : "Nepoznata pogreška",
- "All files" : "Sve datoteke",
- "Deleted" : "Izbrisano",
- "Cancel" : "Odustani",
- "No deleted files" : "Nema izbrisanih datoteka",
- "This application enables users to restore files that were deleted from the system." : "Ova aplikacija omogućuje korisnicima vraćanje datoteka izbrisanih iz sustava.",
- "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." : "Ova aplikacija omogućuje korisnicima vraćanje datoteka izbrisanih iz sustava. Prikazuje popis izbrisanih datoteka u web sučelju i nudi mogućnosti vraćanja tih izbrisanih datoteka natrag u direktorij s datotekama korisnika ili trajnog uklanjanja iz sustava. Vraćanjem datoteke također se vraćaju povezane inačice datoteke ako je omogućena aplikacija za upravljanje inačicama. Kad se datoteka izbriše iz dijeljenja, ona se može vratiti na isti način ali se više ne dijeli. Te datoteke prema zadanim postavkama ostaju u kanti za smeće 30 dana.\nKako bi se spriječilo da korisnik ostane bez prostora na disku, aplikacija Izbrisane datoteke neće koristiti više od 50 % trenutno dostupne besplatne kvote za izbrisane datoteke. Ako izbrisane datoteke premaše ovo ograničenje, aplikacija briše najstarije datoteke dok se količina iskorištenog prostora ne spusti ispod ove granice. Više informacija dostupno je u dokumentaciji Izbrisane datoteke.",
- "You will be able to recover deleted files from here" : "Ovdje ćete moći vratiti izbrisane datoteke",
- "No entries found in this folder" : "U ovoj mapi nisu pronađeni nikakvi zapisi",
- "Select all" : "Odaberi sve",
- "Name" : "Naziv",
- "Actions" : "Radnje"
-},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/hy.js b/apps/files_trashbin/l10n/hy.js
deleted file mode 100644
index b5f14a21117..00000000000
--- a/apps/files_trashbin/l10n/hy.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Couldn't restore %s" : "Չկարողացա վերականգնել %s",
- "Deleted files" : "Ջնջված ֆայլեր",
- "Restore" : "Վերականգնել",
- "Delete" : "Ջնջել",
- "Delete permanently" : "Ջնջել ընդմիշտ",
- "Error" : "Սխալ",
- "No deleted files" : "Ջնջված ֆայլեր չկան",
- "Select all" : "Նշել բոլորը",
- "Name" : "Անուն",
- "Deleted" : "Ջնջված"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/hy.json b/apps/files_trashbin/l10n/hy.json
deleted file mode 100644
index 4cdf8121c67..00000000000
--- a/apps/files_trashbin/l10n/hy.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Couldn't restore %s" : "Չկարողացա վերականգնել %s",
- "Deleted files" : "Ջնջված ֆայլեր",
- "Restore" : "Վերականգնել",
- "Delete" : "Ջնջել",
- "Delete permanently" : "Ջնջել ընդմիշտ",
- "Error" : "Սխալ",
- "No deleted files" : "Ջնջված ֆայլեր չկան",
- "Select all" : "Նշել բոլորը",
- "Name" : "Անուն",
- "Deleted" : "Ջնջված"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ia.js b/apps/files_trashbin/l10n/ia.js
deleted file mode 100644
index a97095225b9..00000000000
--- a/apps/files_trashbin/l10n/ia.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurate",
- "Deleted files" : "Files delite",
- "Restore" : "Restaurar",
- "Unknown" : "Incognite",
- "All files" : "Tote files",
- "Deleted" : "Delite",
- "No deleted files" : "Nulle files delite",
- "You will be able to recover deleted files from here" : "Tu potera recuperar files delite desde ci",
- "No entries found in this folder" : "Nulle entratas trovate in iste dossier",
- "Select all" : "Selectionar toto",
- "Name" : "Nomine",
- "Actions" : "Actiones"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/ia.json b/apps/files_trashbin/l10n/ia.json
deleted file mode 100644
index a5d169faff5..00000000000
--- a/apps/files_trashbin/l10n/ia.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurate",
- "Deleted files" : "Files delite",
- "Restore" : "Restaurar",
- "Unknown" : "Incognite",
- "All files" : "Tote files",
- "Deleted" : "Delite",
- "No deleted files" : "Nulle files delite",
- "You will be able to recover deleted files from here" : "Tu potera recuperar files delite desde ci",
- "No entries found in this folder" : "Nulle entratas trovate in iste dossier",
- "Select all" : "Selectionar toto",
- "Name" : "Nomine",
- "Actions" : "Actiones"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/id.js b/apps/files_trashbin/l10n/id.js
deleted file mode 100644
index 011b3fce91a..00000000000
--- a/apps/files_trashbin/l10n/id.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "dipulihkan",
- "Deleted files" : "Berkas yang dihapus",
- "Restore" : "Pulihkan",
- "Unknown" : "Tidak diketahui",
- "All files" : "Semua berkas",
- "Deleted" : "Dihapus",
- "Cancel" : "Batal",
- "No deleted files" : "Tidak ada berkas yang dihapus",
- "This application enables users to restore files that were deleted from the system." : "Aplikasi ini memungkinkan pengguna untuk memulihkan berkas terhapus dari sistem.",
- "You will be able to recover deleted files from here" : "Anda dapat memulihkan berkas yang dihapus dari sini",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Select all" : "Pilih Semua",
- "Name" : "Nama",
- "Actions" : "Tindakan"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/id.json b/apps/files_trashbin/l10n/id.json
deleted file mode 100644
index 0785ecf0b10..00000000000
--- a/apps/files_trashbin/l10n/id.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "restored" : "dipulihkan",
- "Deleted files" : "Berkas yang dihapus",
- "Restore" : "Pulihkan",
- "Unknown" : "Tidak diketahui",
- "All files" : "Semua berkas",
- "Deleted" : "Dihapus",
- "Cancel" : "Batal",
- "No deleted files" : "Tidak ada berkas yang dihapus",
- "This application enables users to restore files that were deleted from the system." : "Aplikasi ini memungkinkan pengguna untuk memulihkan berkas terhapus dari sistem.",
- "You will be able to recover deleted files from here" : "Anda dapat memulihkan berkas yang dihapus dari sini",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Select all" : "Pilih Semua",
- "Name" : "Nama",
- "Actions" : "Tindakan"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ja.js b/apps/files_trashbin/l10n/ja.js
index cb018fc6275..b57fdbce9db 100644
--- a/apps/files_trashbin/l10n/ja.js
+++ b/apps/files_trashbin/l10n/ja.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "このアプリケーションを使用すると、利用者はシステムから削除されたファイルを復元できます。",
"This application enables people 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 people 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 an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "このアプリケーションを使用すると、システムから削除されたファイルを復元できます。Webインターフェイスには削除されたファイルのリストが表示され、これらの削除されたファイルを元の場所に復元するか、システムから完全に削除するかを選択できます。バージョン管理アプリが有効になっている場合、ファイルを復元すると関連するファイルのバージョンも復元されます。削除された共有ファイルは同じ方法で復元できますが、共有は復元されません。デフォルトでは、これらのファイルは30日間ごみ箱に残ります。\nアカウントのディスク容量が不足しないようにするため、削除済みファイルアプリでは削除済みファイルに現在利用可能な割り当て容量の50%を超える容量は使用されません。削除されたファイルがこの制限を超えると、この制限以下になるまでアプリは最も古いファイルを削除し続けます。詳細は「削除済みファイル」のドキュメントで確認できます。",
"Restore" : "復元",
+ "Not enough free space to restore the file/folder" : "ファイル/フォルダーを復元するのに十分な空き容量がありません",
"Empty deleted files" : "削除済みファイルを空にする",
"Confirm permanent deletion" : "完全削除を承認",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "ごみ箱のすべてのファイルとフォルダーを完全に削除しますか?この操作は元に戻すことができません。",
@@ -15,6 +16,7 @@ OC.L10N.register(
"Original location" : "元の場所",
"Deleted by" : "削除者",
"Deleted" : "削除日時",
+ "few seconds ago" : "数秒前",
"A long time ago" : "ずっと以前に",
"Unknown" : "不明",
"All files" : "すべてのファイル",
diff --git a/apps/files_trashbin/l10n/ja.json b/apps/files_trashbin/l10n/ja.json
index 42e94b18508..9acd7eab157 100644
--- a/apps/files_trashbin/l10n/ja.json
+++ b/apps/files_trashbin/l10n/ja.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "このアプリケーションを使用すると、利用者はシステムから削除されたファイルを復元できます。",
"This application enables people 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 people 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 an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "このアプリケーションを使用すると、システムから削除されたファイルを復元できます。Webインターフェイスには削除されたファイルのリストが表示され、これらの削除されたファイルを元の場所に復元するか、システムから完全に削除するかを選択できます。バージョン管理アプリが有効になっている場合、ファイルを復元すると関連するファイルのバージョンも復元されます。削除された共有ファイルは同じ方法で復元できますが、共有は復元されません。デフォルトでは、これらのファイルは30日間ごみ箱に残ります。\nアカウントのディスク容量が不足しないようにするため、削除済みファイルアプリでは削除済みファイルに現在利用可能な割り当て容量の50%を超える容量は使用されません。削除されたファイルがこの制限を超えると、この制限以下になるまでアプリは最も古いファイルを削除し続けます。詳細は「削除済みファイル」のドキュメントで確認できます。",
"Restore" : "復元",
+ "Not enough free space to restore the file/folder" : "ファイル/フォルダーを復元するのに十分な空き容量がありません",
"Empty deleted files" : "削除済みファイルを空にする",
"Confirm permanent deletion" : "完全削除を承認",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "ごみ箱のすべてのファイルとフォルダーを完全に削除しますか?この操作は元に戻すことができません。",
@@ -13,6 +14,7 @@
"Original location" : "元の場所",
"Deleted by" : "削除者",
"Deleted" : "削除日時",
+ "few seconds ago" : "数秒前",
"A long time ago" : "ずっと以前に",
"Unknown" : "不明",
"All files" : "すべてのファイル",
diff --git a/apps/files_trashbin/l10n/ka.js b/apps/files_trashbin/l10n/ka.js
deleted file mode 100644
index 48b15c6b09d..00000000000
--- a/apps/files_trashbin/l10n/ka.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restored",
- "Deleted files" : "Deleted files",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)",
- "Restore" : "Restore",
- "Cancel" : "Cancel",
- "Deleted" : "Deleted",
- "Unknown" : "Unknown",
- "All files" : "All files",
- "You" : "You",
- "List of files that have been deleted." : "List of files that have been deleted.",
- "No deleted files" : "No deleted files",
- "Files and folders you have deleted will show up here" : "Files and folders you have deleted will show up here"
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/files_trashbin/l10n/ka.json b/apps/files_trashbin/l10n/ka.json
deleted file mode 100644
index 046fff19f6b..00000000000
--- a/apps/files_trashbin/l10n/ka.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restored",
- "Deleted files" : "Deleted files",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)",
- "Restore" : "Restore",
- "Cancel" : "Cancel",
- "Deleted" : "Deleted",
- "Unknown" : "Unknown",
- "All files" : "All files",
- "You" : "You",
- "List of files that have been deleted." : "List of files that have been deleted.",
- "No deleted files" : "No deleted files",
- "Files and folders you have deleted will show up here" : "Files and folders you have deleted will show up here"
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ka_GE.js b/apps/files_trashbin/l10n/ka_GE.js
deleted file mode 100644
index b472933090e..00000000000
--- a/apps/files_trashbin/l10n/ka_GE.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "აღდგენილია",
- "Deleted files" : "წაშლილი ფაილები",
- "Restore" : "აღდგენა",
- "Unknown" : "უცნობია",
- "All files" : "ყველა ფაილი",
- "Deleted" : "წაშლილი",
- "No deleted files" : "წაშლილი ფაილები ვერ მოიძებნა",
- "You will be able to recover deleted files from here" : "წაშლილი ფაილების აღდგენა შესაძლებელია აქ",
- "No entries found in this folder" : "დირექტორიაში ჩანაწერები ვერ მოიძებნა",
- "Select all" : "ყველას მონიშვნა",
- "Name" : "სახელი",
- "Actions" : "მოქმედებები"
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/files_trashbin/l10n/ka_GE.json b/apps/files_trashbin/l10n/ka_GE.json
deleted file mode 100644
index 4af86b3295f..00000000000
--- a/apps/files_trashbin/l10n/ka_GE.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "აღდგენილია",
- "Deleted files" : "წაშლილი ფაილები",
- "Restore" : "აღდგენა",
- "Unknown" : "უცნობია",
- "All files" : "ყველა ფაილი",
- "Deleted" : "წაშლილი",
- "No deleted files" : "წაშლილი ფაილები ვერ მოიძებნა",
- "You will be able to recover deleted files from here" : "წაშლილი ფაილების აღდგენა შესაძლებელია აქ",
- "No entries found in this folder" : "დირექტორიაში ჩანაწერები ვერ მოიძებნა",
- "Select all" : "ყველას მონიშვნა",
- "Name" : "სახელი",
- "Actions" : "მოქმედებები"
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/km.js b/apps/files_trashbin/l10n/km.js
deleted file mode 100644
index b568abde589..00000000000
--- a/apps/files_trashbin/l10n/km.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Couldn't delete %s permanently" : "មិន​អាច​លុប %s ចោល​ជា​អចិន្ត្រៃយ៍​ទេ",
- "Couldn't restore %s" : "មិន​អាច​ស្ដារ %s ឡើង​វិញ​បាន​ទេ",
- "Deleted files" : "ឯកសារ​ដែល​បាន​លុប",
- "Restore" : "ស្ដារ​មក​វិញ",
- "Delete" : "លុប",
- "Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍",
- "Error" : "កំហុស",
- "restored" : "បាន​ស្ដារ​វិញ",
- "Name" : "ឈ្មោះ",
- "Deleted" : "បាន​លុប"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/km.json b/apps/files_trashbin/l10n/km.json
deleted file mode 100644
index 14481c4f2e7..00000000000
--- a/apps/files_trashbin/l10n/km.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Couldn't delete %s permanently" : "មិន​អាច​លុប %s ចោល​ជា​អចិន្ត្រៃយ៍​ទេ",
- "Couldn't restore %s" : "មិន​អាច​ស្ដារ %s ឡើង​វិញ​បាន​ទេ",
- "Deleted files" : "ឯកសារ​ដែល​បាន​លុប",
- "Restore" : "ស្ដារ​មក​វិញ",
- "Delete" : "លុប",
- "Delete permanently" : "លុប​ជា​អចិន្ត្រៃយ៍",
- "Error" : "កំហុស",
- "restored" : "បាន​ស្ដារ​វិញ",
- "Name" : "ឈ្មោះ",
- "Deleted" : "បាន​លុប"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/kn.js b/apps/files_trashbin/l10n/kn.js
deleted file mode 100644
index c9e17d94c58..00000000000
--- a/apps/files_trashbin/l10n/kn.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Restore" : "ಮರುಸ್ಥಾಪಿಸು",
- "Delete" : "ಅಳಿಸಿ",
- "Error" : "ತಪ್ಪಾಗಿದೆ",
- "Select all" : "ಎಲ್ಲಾ ಆಯ್ಕೆ ಮಾಡಿ",
- "Name" : "ಹೆಸರು"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/kn.json b/apps/files_trashbin/l10n/kn.json
deleted file mode 100644
index 3bd9118dfce..00000000000
--- a/apps/files_trashbin/l10n/kn.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Restore" : "ಮರುಸ್ಥಾಪಿಸು",
- "Delete" : "ಅಳಿಸಿ",
- "Error" : "ತಪ್ಪಾಗಿದೆ",
- "Select all" : "ಎಲ್ಲಾ ಆಯ್ಕೆ ಮಾಡಿ",
- "Name" : "ಹೆಸರು"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/lb.js b/apps/files_trashbin/l10n/lb.js
deleted file mode 100644
index e98308cd22c..00000000000
--- a/apps/files_trashbin/l10n/lb.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "erëmhiergestallt",
- "Deleted files" : "Geläscht Fichieren",
- "Restore" : "Erëmhierstellen",
- "Unknown" : "Onbekannt",
- "All files" : "All d'Fichieren",
- "Deleted" : "Geläscht",
- "No deleted files" : "Keng geläscht Fichieren",
- "You will be able to recover deleted files from here" : "Du kanns geläscht Fichieren aus desëm Dossier erëmhierstellen",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Select all" : "All auswielen",
- "Name" : "Numm",
- "Actions" : "Aktiounen"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/lb.json b/apps/files_trashbin/l10n/lb.json
deleted file mode 100644
index 2b5690ccc7f..00000000000
--- a/apps/files_trashbin/l10n/lb.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "erëmhiergestallt",
- "Deleted files" : "Geläscht Fichieren",
- "Restore" : "Erëmhierstellen",
- "Unknown" : "Onbekannt",
- "All files" : "All d'Fichieren",
- "Deleted" : "Geläscht",
- "No deleted files" : "Keng geläscht Fichieren",
- "You will be able to recover deleted files from here" : "Du kanns geläscht Fichieren aus desëm Dossier erëmhierstellen",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Select all" : "All auswielen",
- "Name" : "Numm",
- "Actions" : "Aktiounen"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/lv.js b/apps/files_trashbin/l10n/lv.js
deleted file mode 100644
index 4839332c29d..00000000000
--- a/apps/files_trashbin/l10n/lv.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "atjaunots",
- "Deleted files" : "Izdzēstās datnes",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Atkritnē esošās izdzēstās datnes un mapes (var izbeigties izgūšanas laikā, ja trūkst krātuves vietas)",
- "This application enables people 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 people 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 an account 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." : "Šī lietotne sniedz cilvēkiem iespēju atjaunot datnes, kas tika izdzēstas no sistēmas. Tā tīmekļa saskarnē attēlo izdzēsto datņu sarakstu, un tai ir iespējas tās atjaunot cilvēku datņu mapēs vai neatgriezeniski noņemt no sistēmas. Datnes atjaunošana atjauno arī saistītās datnes versijas, ja ir iespējota versiju lietotne. Kad datne tiek izdzēsta no koplietojuma, to var atjaunot tādā pašā veidā, tomēr tā vairs nebūs koplietota. Pēc noklusējuma izdzēstās datnes atkritnē atrodas 30 dienas.\nLai novērstu konta diska vietas pārtēriņu, izdzēstās datnes neaizņems vairāk kā 50% no pašreiz pieejamās brīvās vietas izdzēstajām datnēm. Ja izdzēstās datnes pārsniegs šo ierobežojumu, lietotne izdzēsīs vecākās datnes, līdz tajā atkal iekļausies. Vairāk informācijas ir pieejama izdzēsto datņu dokumentācijā.",
- "Restore" : "Atjaunot",
- "Empty deleted files" : "Iztukšot izdzēstās datnes",
- "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Vai tiešām neatgriezeniski izdzēst visas atkritnē esošās datnes un mapes? To nevar atdarīt.",
- "Cancel" : "Atcelt",
- "Deleted" : "Izdzēsts",
- "Unknown" : "Nezināms",
- "All files" : "Visas datnes",
- "No deleted files" : "Nav izdzēstu datņu"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/files_trashbin/l10n/lv.json b/apps/files_trashbin/l10n/lv.json
deleted file mode 100644
index 421470ba333..00000000000
--- a/apps/files_trashbin/l10n/lv.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "atjaunots",
- "Deleted files" : "Izdzēstās datnes",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Atkritnē esošās izdzēstās datnes un mapes (var izbeigties izgūšanas laikā, ja trūkst krātuves vietas)",
- "This application enables people 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 people 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 an account 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." : "Šī lietotne sniedz cilvēkiem iespēju atjaunot datnes, kas tika izdzēstas no sistēmas. Tā tīmekļa saskarnē attēlo izdzēsto datņu sarakstu, un tai ir iespējas tās atjaunot cilvēku datņu mapēs vai neatgriezeniski noņemt no sistēmas. Datnes atjaunošana atjauno arī saistītās datnes versijas, ja ir iespējota versiju lietotne. Kad datne tiek izdzēsta no koplietojuma, to var atjaunot tādā pašā veidā, tomēr tā vairs nebūs koplietota. Pēc noklusējuma izdzēstās datnes atkritnē atrodas 30 dienas.\nLai novērstu konta diska vietas pārtēriņu, izdzēstās datnes neaizņems vairāk kā 50% no pašreiz pieejamās brīvās vietas izdzēstajām datnēm. Ja izdzēstās datnes pārsniegs šo ierobežojumu, lietotne izdzēsīs vecākās datnes, līdz tajā atkal iekļausies. Vairāk informācijas ir pieejama izdzēsto datņu dokumentācijā.",
- "Restore" : "Atjaunot",
- "Empty deleted files" : "Iztukšot izdzēstās datnes",
- "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Vai tiešām neatgriezeniski izdzēst visas atkritnē esošās datnes un mapes? To nevar atdarīt.",
- "Cancel" : "Atcelt",
- "Deleted" : "Izdzēsts",
- "Unknown" : "Nezināms",
- "All files" : "Visas datnes",
- "No deleted files" : "Nav izdzēstu datņu"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/mn.js b/apps/files_trashbin/l10n/mn.js
deleted file mode 100644
index b81cfed77a2..00000000000
--- a/apps/files_trashbin/l10n/mn.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Deleted files" : "Устгасан файлууд",
- "Restore" : "Сэргээх",
- "Delete permanently" : "Үүрд устгах",
- "This operation is forbidden" : "Энэ үйлдэл хориотой",
- "This directory is unavailable, please check the logs or contact the administrator" : "Энэ хавтас байхгүй байна, үйлдлийн лог шалгах эсвэл админ хэрэглэгчтэй холбогдоно уу.",
- "Deleted" : "Устгагдсан",
- "No entries found in this folder" : "Энэ хавтаст юм олдсонгүй",
- "Select all" : "Бүгдийг сонгох",
- "Name" : "Нэр",
- "Actions" : "Үйл ажиллагаа",
- "Delete" : "Устгах"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/mn.json b/apps/files_trashbin/l10n/mn.json
deleted file mode 100644
index 08c5e9a4630..00000000000
--- a/apps/files_trashbin/l10n/mn.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "Deleted files" : "Устгасан файлууд",
- "Restore" : "Сэргээх",
- "Delete permanently" : "Үүрд устгах",
- "This operation is forbidden" : "Энэ үйлдэл хориотой",
- "This directory is unavailable, please check the logs or contact the administrator" : "Энэ хавтас байхгүй байна, үйлдлийн лог шалгах эсвэл админ хэрэглэгчтэй холбогдоно уу.",
- "Deleted" : "Устгагдсан",
- "No entries found in this folder" : "Энэ хавтаст юм олдсонгүй",
- "Select all" : "Бүгдийг сонгох",
- "Name" : "Нэр",
- "Actions" : "Үйл ажиллагаа",
- "Delete" : "Устгах"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ms_MY.js b/apps/files_trashbin/l10n/ms_MY.js
deleted file mode 100644
index 22680ff254d..00000000000
--- a/apps/files_trashbin/l10n/ms_MY.js
+++ /dev/null
@@ -1,14 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Couldn't delete %s permanently" : "Tidak dapat menghapuskan %s secara kekal",
- "Couldn't restore %s" : "Tidak dapat memulihkan %s",
- "Deleted files" : "Fail dipadam",
- "Restore" : "Pulihkan",
- "Delete" : "Padam",
- "Error" : "Ralat",
- "restored" : "dipulihkan",
- "Name" : "Nama",
- "Deleted" : "Dipadam"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/ms_MY.json b/apps/files_trashbin/l10n/ms_MY.json
deleted file mode 100644
index 340b46e78a1..00000000000
--- a/apps/files_trashbin/l10n/ms_MY.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{ "translations": {
- "Couldn't delete %s permanently" : "Tidak dapat menghapuskan %s secara kekal",
- "Couldn't restore %s" : "Tidak dapat memulihkan %s",
- "Deleted files" : "Fail dipadam",
- "Restore" : "Pulihkan",
- "Delete" : "Padam",
- "Error" : "Ralat",
- "restored" : "dipulihkan",
- "Name" : "Nama",
- "Deleted" : "Dipadam"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/nl.js b/apps/files_trashbin/l10n/nl.js
index 68913984e38..c36ecaab64a 100644
--- a/apps/files_trashbin/l10n/nl.js
+++ b/apps/files_trashbin/l10n/nl.js
@@ -3,20 +3,26 @@ OC.L10N.register(
{
"restored" : "hersteld",
"Deleted files" : "Verwijderde bestanden",
+ "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Verwijderde bestanden en mappen in de prullenbak (kunnen vervallen tijdens het exporteren wanneer je weinig opslag over hebt)",
+ "This application enables people to restore files that were deleted from the system." : "Deze applicatie maakt het mogelijk om mensen bestanden te laten herstellen die zijn verwijderd van het systeem.",
+ "This application enables people 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 people 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 an account 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." : "Deze applicatie maakt het mogelijk om mensen bestanden te laten herstellen die zijn verwijderd van het systeem. Het laat een lijst van verwijderde bestanden zien in de web interface, en het heeft de mogelijkheid van het herstellen van die verwijderde bestanden terug naar de bestandmappen van de gebruikers of de mogelijkheid tot het permanent verwijderen van die bestanden van het systeem. Het herstellen van een bestand doet ook de gerelateerde bestandversies herstellen, wanneer de versies applicatie is ingeschakeld. Wanneer een bestand is verwijderd van een share, kan deze op dezelfde manier hersteld worden, alleen het is niet langer meer gedeeld. Standaard, blijven de bestanden in de prullenbak voor 30 dagen.\nOm er voor te zorgen dat een account vrije opslag overhoudt, doet de Verwijderde bestanden app niet meer dan 50% van het huidige beschikbare vrije quota voor verwijderde bestanden gebruiken. Als de verwijderde bestanden het limeit bereiken, doet de app eerst de oudste bestanden verwijderden totdat het onder het limiet komt. Meer informatie is beschikbaar in de Verwijderde bestanden documentatie.",
"Restore" : "Herstellen",
+ "Not enough free space to restore the file/folder" : "Er is niet genoeg vrije opslag over om het bestand/de map te herstellen",
+ "Empty deleted files" : "Leeg verwijderde bestanden",
+ "Confirm permanent deletion" : "Bevestig permanente verwijdering",
+ "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Weet je zeker dat je parmanent alle bestanden en mappen in de prullenbak wilt verwijderen? Dit kan niet ongedaan worden gemaakt.",
+ "Cancel" : "Annuleren",
+ "Deletion cancelled" : "Verwijdering geannuleerd",
+ "Original location" : "Originele locatie",
+ "Deleted by" : "Verwijderd door",
+ "Deleted" : "Verwijderd",
+ "few seconds ago" : "paar seconden geleden",
+ "A long time ago" : "Een lange tijd geleden",
"Unknown" : "Onbekend",
"All files" : "Alle bestanden",
- "You" : "Je",
- "Deleted" : "Verwijderd",
- "Cancel" : "Annuleren",
- "Deletion cancelled" : "Verwijderen geannulleerd",
+ "You" : "Jou",
+ "List of files that have been deleted." : "Lijst van bestanden die verwijderd zijn.",
"No deleted files" : "Geen verwijderde bestanden",
- "This application enables users to restore files that were deleted from the system." : "Deze applicatie stelt gebruikers in staat om verwijderde bestanden te herstellen.",
- "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." : "Met deze applicatie kunnen gebruikers bestanden herstellen die uit het systeem zijn verwijderd. Het toont in de webinterface een lijst met verwijderde bestanden en heeft opties om die verwijderde bestanden terug te zetten naar de bestandsmappen van de gebruikers of ze permanent uit het systeem te verwijderen. Het herstellen van een bestand herstelt ook gerelateerde bestandsversies, als de versiebeheer-applicatie is ingeschakeld. Wanneer een bestand uit een share wordt verwijderd, kan het op dezelfde manier worden hersteld, hoewel het niet langer wordt gedeeld. Standaard blijven deze bestanden 30 dagen in de prullenbak staan.\nOm te voorkomen dat een gebruiker onvoldoende schijfruimte heeft, gebruikt de app Verwijderde bestanden niet meer dan 50% van de momenteel beschikbare vrije quota voor verwijderde bestanden. Als de verwijderde bestanden deze limiet overschrijden, verwijdert de app de oudste bestanden totdat deze de limiet is bereikt. Meer informatie is beschikbaar in de documentatie voor Verwijderde bestanden.",
- "You will be able to recover deleted files from here" : "Van hieruit kun je verwijderde bestanden terugzetten",
- "No entries found in this folder" : "Niets gevonden in deze map",
- "Select all" : "Alles selecteren",
- "Name" : "Naam",
- "Actions" : "Acties"
+ "Files and folders you have deleted will show up here" : "Bestanden en mappen die je verwijderd hebt worden hier getoond"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/nl.json b/apps/files_trashbin/l10n/nl.json
index 01efdaacca8..3b2898f9f44 100644
--- a/apps/files_trashbin/l10n/nl.json
+++ b/apps/files_trashbin/l10n/nl.json
@@ -1,20 +1,26 @@
{ "translations": {
"restored" : "hersteld",
"Deleted files" : "Verwijderde bestanden",
+ "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Verwijderde bestanden en mappen in de prullenbak (kunnen vervallen tijdens het exporteren wanneer je weinig opslag over hebt)",
+ "This application enables people to restore files that were deleted from the system." : "Deze applicatie maakt het mogelijk om mensen bestanden te laten herstellen die zijn verwijderd van het systeem.",
+ "This application enables people 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 people 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 an account 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." : "Deze applicatie maakt het mogelijk om mensen bestanden te laten herstellen die zijn verwijderd van het systeem. Het laat een lijst van verwijderde bestanden zien in de web interface, en het heeft de mogelijkheid van het herstellen van die verwijderde bestanden terug naar de bestandmappen van de gebruikers of de mogelijkheid tot het permanent verwijderen van die bestanden van het systeem. Het herstellen van een bestand doet ook de gerelateerde bestandversies herstellen, wanneer de versies applicatie is ingeschakeld. Wanneer een bestand is verwijderd van een share, kan deze op dezelfde manier hersteld worden, alleen het is niet langer meer gedeeld. Standaard, blijven de bestanden in de prullenbak voor 30 dagen.\nOm er voor te zorgen dat een account vrije opslag overhoudt, doet de Verwijderde bestanden app niet meer dan 50% van het huidige beschikbare vrije quota voor verwijderde bestanden gebruiken. Als de verwijderde bestanden het limeit bereiken, doet de app eerst de oudste bestanden verwijderden totdat het onder het limiet komt. Meer informatie is beschikbaar in de Verwijderde bestanden documentatie.",
"Restore" : "Herstellen",
+ "Not enough free space to restore the file/folder" : "Er is niet genoeg vrije opslag over om het bestand/de map te herstellen",
+ "Empty deleted files" : "Leeg verwijderde bestanden",
+ "Confirm permanent deletion" : "Bevestig permanente verwijdering",
+ "Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Weet je zeker dat je parmanent alle bestanden en mappen in de prullenbak wilt verwijderen? Dit kan niet ongedaan worden gemaakt.",
+ "Cancel" : "Annuleren",
+ "Deletion cancelled" : "Verwijdering geannuleerd",
+ "Original location" : "Originele locatie",
+ "Deleted by" : "Verwijderd door",
+ "Deleted" : "Verwijderd",
+ "few seconds ago" : "paar seconden geleden",
+ "A long time ago" : "Een lange tijd geleden",
"Unknown" : "Onbekend",
"All files" : "Alle bestanden",
- "You" : "Je",
- "Deleted" : "Verwijderd",
- "Cancel" : "Annuleren",
- "Deletion cancelled" : "Verwijderen geannulleerd",
+ "You" : "Jou",
+ "List of files that have been deleted." : "Lijst van bestanden die verwijderd zijn.",
"No deleted files" : "Geen verwijderde bestanden",
- "This application enables users to restore files that were deleted from the system." : "Deze applicatie stelt gebruikers in staat om verwijderde bestanden te herstellen.",
- "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." : "Met deze applicatie kunnen gebruikers bestanden herstellen die uit het systeem zijn verwijderd. Het toont in de webinterface een lijst met verwijderde bestanden en heeft opties om die verwijderde bestanden terug te zetten naar de bestandsmappen van de gebruikers of ze permanent uit het systeem te verwijderen. Het herstellen van een bestand herstelt ook gerelateerde bestandsversies, als de versiebeheer-applicatie is ingeschakeld. Wanneer een bestand uit een share wordt verwijderd, kan het op dezelfde manier worden hersteld, hoewel het niet langer wordt gedeeld. Standaard blijven deze bestanden 30 dagen in de prullenbak staan.\nOm te voorkomen dat een gebruiker onvoldoende schijfruimte heeft, gebruikt de app Verwijderde bestanden niet meer dan 50% van de momenteel beschikbare vrije quota voor verwijderde bestanden. Als de verwijderde bestanden deze limiet overschrijden, verwijdert de app de oudste bestanden totdat deze de limiet is bereikt. Meer informatie is beschikbaar in de documentatie voor Verwijderde bestanden.",
- "You will be able to recover deleted files from here" : "Van hieruit kun je verwijderde bestanden terugzetten",
- "No entries found in this folder" : "Niets gevonden in deze map",
- "Select all" : "Alles selecteren",
- "Name" : "Naam",
- "Actions" : "Acties"
+ "Files and folders you have deleted will show up here" : "Bestanden en mappen die je verwijderd hebt worden hier getoond"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/nn_NO.js b/apps/files_trashbin/l10n/nn_NO.js
deleted file mode 100644
index a3779d14135..00000000000
--- a/apps/files_trashbin/l10n/nn_NO.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "gjenoppretta",
- "Deleted files" : "Sletta filer",
- "Restore" : "Gjenopprett",
- "Unknown" : "Ukjend",
- "All files" : "Alle filer",
- "No deleted files" : "Ingen sletta filer",
- "Deleted" : "Sletta",
- "No entries found in this folder" : "Ingen oppføringar funne i denne mappa",
- "Select all" : "Merk alt",
- "Name" : "Namn",
- "Actions" : "Handlingar"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/nn_NO.json b/apps/files_trashbin/l10n/nn_NO.json
deleted file mode 100644
index 73ee98c639c..00000000000
--- a/apps/files_trashbin/l10n/nn_NO.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "restored" : "gjenoppretta",
- "Deleted files" : "Sletta filer",
- "Restore" : "Gjenopprett",
- "Unknown" : "Ukjend",
- "All files" : "Alle filer",
- "No deleted files" : "Ingen sletta filer",
- "Deleted" : "Sletta",
- "No entries found in this folder" : "Ingen oppføringar funne i denne mappa",
- "Select all" : "Merk alt",
- "Name" : "Namn",
- "Actions" : "Handlingar"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/oc.js b/apps/files_trashbin/l10n/oc.js
deleted file mode 100644
index 762d7a9b424..00000000000
--- a/apps/files_trashbin/l10n/oc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Couldn't delete %s permanently" : "Impossible de suprimir %s definitivament",
- "Couldn't restore %s" : "Impossible de restablir %s",
- "Deleted files" : "Fichièrs suprimits",
- "Restore" : "Restablir",
- "Delete" : "Suprimir",
- "Delete permanently" : "Suprimir de faiçon definitiva",
- "Error" : "Error",
- "This operation is forbidden" : "L'operacion es interdicha",
- "This directory is unavailable, please check the logs or contact the administrator" : "Aqueste repertòri es pas disponible. Consultatz los logs o contactatz vòstre administrator",
- "restored" : "restablit",
- "No deleted files" : "Cap de fichièr pas suprimit",
- "You will be able to recover deleted files from here" : "Poiretz restablir vòstres fichièrs suprimits aicí",
- "No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
- "Select all" : "Seleccionar tot",
- "Name" : "Nom",
- "Deleted" : "Escafat"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_trashbin/l10n/oc.json b/apps/files_trashbin/l10n/oc.json
deleted file mode 100644
index a48b12e0c6e..00000000000
--- a/apps/files_trashbin/l10n/oc.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{ "translations": {
- "Couldn't delete %s permanently" : "Impossible de suprimir %s definitivament",
- "Couldn't restore %s" : "Impossible de restablir %s",
- "Deleted files" : "Fichièrs suprimits",
- "Restore" : "Restablir",
- "Delete" : "Suprimir",
- "Delete permanently" : "Suprimir de faiçon definitiva",
- "Error" : "Error",
- "This operation is forbidden" : "L'operacion es interdicha",
- "This directory is unavailable, please check the logs or contact the administrator" : "Aqueste repertòri es pas disponible. Consultatz los logs o contactatz vòstre administrator",
- "restored" : "restablit",
- "No deleted files" : "Cap de fichièr pas suprimit",
- "You will be able to recover deleted files from here" : "Poiretz restablir vòstres fichièrs suprimits aicí",
- "No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
- "Select all" : "Seleccionar tot",
- "Name" : "Nom",
- "Deleted" : "Escafat"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/pl.js b/apps/files_trashbin/l10n/pl.js
index 6262c8ce684..4e555ba4e4d 100644
--- a/apps/files_trashbin/l10n/pl.js
+++ b/apps/files_trashbin/l10n/pl.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "Ta aplikacja umożliwia przywracanie plików, które zostały usunięte z systemu.",
"This application enables people 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 people 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 an account 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." : "Ta aplikacja umożliwia ludziom przywracanie plików, które zostały usunięte z systemu. Wyświetla listę usuniętych plików w interfejsie internetowym i oferuje opcje przywracania usuniętych plików z powrotem do katalogów plików osób lub trwałego usuwania ich z systemu. Przywracanie pliku przywraca również powiązane wersje plików, jeśli włączona jest aplikacja wersji. Gdy plik zostanie usunięty z udziału, można go przywrócić w ten sam sposób, chociaż nie jest już udostępniany. Domyślnie pliki te pozostają w koszu przez 30 dni.\nAby zapobiec wyczerpaniu się miejsca na dysku, aplikacja Usunięte pliki nie wykorzysta więcej niż 50% aktualnie dostępnego bezpłatnego miejsca na usunięte pliki. Jeśli usunięte pliki przekroczą ten limit, aplikacja usunie najstarsze pliki, aż spadnie poniżej tego limitu. Więcej informacji można znaleźć w dokumentacji usuniętych plików.",
"Restore" : "Przywróć",
+ "Not enough free space to restore the file/folder" : "Brak miejsca na dysku na odzyskanie pliku/folderu",
"Empty deleted files" : "Opróżnij usunięte pliki",
"Confirm permanent deletion" : "Potwierdź trwałe usunięcie",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Czy na pewno chcesz trwale usunąć wszystkie pliki i katalogi w koszu? Tego nie można cofnąć.",
@@ -15,6 +16,7 @@ OC.L10N.register(
"Original location" : "Oryginalna lokalizacja",
"Deleted by" : "Usunięto przez",
"Deleted" : "Usunięto",
+ "few seconds ago" : "kilka sekund temu",
"A long time ago" : "Dawno temu",
"Unknown" : "Nieznany",
"All files" : "Wszystkie pliki",
diff --git a/apps/files_trashbin/l10n/pl.json b/apps/files_trashbin/l10n/pl.json
index d193345a74d..24fd5b2f473 100644
--- a/apps/files_trashbin/l10n/pl.json
+++ b/apps/files_trashbin/l10n/pl.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "Ta aplikacja umożliwia przywracanie plików, które zostały usunięte z systemu.",
"This application enables people 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 people 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 an account 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." : "Ta aplikacja umożliwia ludziom przywracanie plików, które zostały usunięte z systemu. Wyświetla listę usuniętych plików w interfejsie internetowym i oferuje opcje przywracania usuniętych plików z powrotem do katalogów plików osób lub trwałego usuwania ich z systemu. Przywracanie pliku przywraca również powiązane wersje plików, jeśli włączona jest aplikacja wersji. Gdy plik zostanie usunięty z udziału, można go przywrócić w ten sam sposób, chociaż nie jest już udostępniany. Domyślnie pliki te pozostają w koszu przez 30 dni.\nAby zapobiec wyczerpaniu się miejsca na dysku, aplikacja Usunięte pliki nie wykorzysta więcej niż 50% aktualnie dostępnego bezpłatnego miejsca na usunięte pliki. Jeśli usunięte pliki przekroczą ten limit, aplikacja usunie najstarsze pliki, aż spadnie poniżej tego limitu. Więcej informacji można znaleźć w dokumentacji usuniętych plików.",
"Restore" : "Przywróć",
+ "Not enough free space to restore the file/folder" : "Brak miejsca na dysku na odzyskanie pliku/folderu",
"Empty deleted files" : "Opróżnij usunięte pliki",
"Confirm permanent deletion" : "Potwierdź trwałe usunięcie",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Czy na pewno chcesz trwale usunąć wszystkie pliki i katalogi w koszu? Tego nie można cofnąć.",
@@ -13,6 +14,7 @@
"Original location" : "Oryginalna lokalizacja",
"Deleted by" : "Usunięto przez",
"Deleted" : "Usunięto",
+ "few seconds ago" : "kilka sekund temu",
"A long time ago" : "Dawno temu",
"Unknown" : "Nieznany",
"All files" : "Wszystkie pliki",
diff --git a/apps/files_trashbin/l10n/pt_BR.js b/apps/files_trashbin/l10n/pt_BR.js
index 59a67c33b48..f1e360f82c0 100644
--- a/apps/files_trashbin/l10n/pt_BR.js
+++ b/apps/files_trashbin/l10n/pt_BR.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "Este aplicativo permite que as pessoas restaurem arquivos que foram excluídos do sistema.",
"This application enables people 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 people 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 an account 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." : "Este aplicativo permite que as pessoas restaurem arquivos que foram excluídos do sistema. Ele exibe uma lista de arquivos excluídos na interface da web e tem opções para restaurar esses arquivos excluídos de volta aos diretórios de arquivos de pessoas ou removê-los permanentemente do sistema. A restauração de um arquivo também restaura versões de arquivos relacionadas, se o aplicativo de versões estiver ativado. Quando um arquivo é excluído de um compartilhamento, ele pode ser restaurado da mesma maneira, embora não seja mais compartilhado. Por padrão, esses arquivos permanecem na lixeira por 30 dias. \nPara evitar que uma conta fique sem espaço em disco, o aplicativo Arquivos excluídos não utilizará mais de 50% da cota livre atualmente disponível para arquivos excluídos. Se os arquivos excluídos excederem esse limite, o aplicativo excluirá os arquivos mais antigos até ficarem abaixo desse limite. Mais informações estão disponíveis na documentação Arquivos Excluídos.",
"Restore" : "Restaurar",
+ "Not enough free space to restore the file/folder" : "Não há espaço livre suficiente para restaurar o arquivo/pasta",
"Empty deleted files" : "Esvaziar arquivos excluídos",
"Confirm permanent deletion" : "Confirme exclusão permanente",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Tem certeza de que deseja excluir permanentemente todos os arquivos e pastas na lixeira? Isso não pode ser desfeito.",
@@ -15,12 +16,15 @@ OC.L10N.register(
"Original location" : "Localização original",
"Deleted by" : "Excluído por",
"Deleted" : "Excluído",
+ "few seconds ago" : "há alguns segundos",
"A long time ago" : "Há muito tempo",
"Unknown" : "Desconhecida",
"All files" : "Todos os arquivos",
"You" : "Você",
"List of files that have been deleted." : "Lista de arquivos que foram excluídos.",
"No deleted files" : "Nenhum arquivo excluído",
- "Files and folders you have deleted will show up here" : "Arquivos e pastas que você excluiu aparecerão aqui"
+ "Files and folders you have deleted will show up here" : "Arquivos e pastas que você excluiu aparecerão aqui",
+ "All files have been permanently deleted" : "Todos os arquivos foram excluídos permanentemente",
+ "Failed to empty deleted files" : "Falha ao esvaziar arquivos excluídos"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/pt_BR.json b/apps/files_trashbin/l10n/pt_BR.json
index 3cdbaad0f17..da1f67d35ed 100644
--- a/apps/files_trashbin/l10n/pt_BR.json
+++ b/apps/files_trashbin/l10n/pt_BR.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "Este aplicativo permite que as pessoas restaurem arquivos que foram excluídos do sistema.",
"This application enables people 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 people 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 an account 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." : "Este aplicativo permite que as pessoas restaurem arquivos que foram excluídos do sistema. Ele exibe uma lista de arquivos excluídos na interface da web e tem opções para restaurar esses arquivos excluídos de volta aos diretórios de arquivos de pessoas ou removê-los permanentemente do sistema. A restauração de um arquivo também restaura versões de arquivos relacionadas, se o aplicativo de versões estiver ativado. Quando um arquivo é excluído de um compartilhamento, ele pode ser restaurado da mesma maneira, embora não seja mais compartilhado. Por padrão, esses arquivos permanecem na lixeira por 30 dias. \nPara evitar que uma conta fique sem espaço em disco, o aplicativo Arquivos excluídos não utilizará mais de 50% da cota livre atualmente disponível para arquivos excluídos. Se os arquivos excluídos excederem esse limite, o aplicativo excluirá os arquivos mais antigos até ficarem abaixo desse limite. Mais informações estão disponíveis na documentação Arquivos Excluídos.",
"Restore" : "Restaurar",
+ "Not enough free space to restore the file/folder" : "Não há espaço livre suficiente para restaurar o arquivo/pasta",
"Empty deleted files" : "Esvaziar arquivos excluídos",
"Confirm permanent deletion" : "Confirme exclusão permanente",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Tem certeza de que deseja excluir permanentemente todos os arquivos e pastas na lixeira? Isso não pode ser desfeito.",
@@ -13,12 +14,15 @@
"Original location" : "Localização original",
"Deleted by" : "Excluído por",
"Deleted" : "Excluído",
+ "few seconds ago" : "há alguns segundos",
"A long time ago" : "Há muito tempo",
"Unknown" : "Desconhecida",
"All files" : "Todos os arquivos",
"You" : "Você",
"List of files that have been deleted." : "Lista de arquivos que foram excluídos.",
"No deleted files" : "Nenhum arquivo excluído",
- "Files and folders you have deleted will show up here" : "Arquivos e pastas que você excluiu aparecerão aqui"
+ "Files and folders you have deleted will show up here" : "Arquivos e pastas que você excluiu aparecerão aqui",
+ "All files have been permanently deleted" : "Todos os arquivos foram excluídos permanentemente",
+ "Failed to empty deleted files" : "Falha ao esvaziar arquivos excluídos"
},"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/files_trashbin/l10n/pt_PT.js b/apps/files_trashbin/l10n/pt_PT.js
deleted file mode 100644
index b571e26de4e..00000000000
--- a/apps/files_trashbin/l10n/pt_PT.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "Restaurado",
- "Deleted files" : "Ficheiros eliminados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconhecido",
- "All files" : "Todos os ficheiros",
- "You" : "Vovê",
- "Deleted" : "Eliminado",
- "Cancel" : "Cancelar",
- "No deleted files" : "Sem ficheiros eliminados",
- "You will be able to recover deleted files from here" : "Poderá recuperar ficheiros eliminados a partir daqui",
- "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
- "Select all" : "Selecionar tudo",
- "Name" : "Nome",
- "Actions" : "Ações"
-},
-"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_trashbin/l10n/pt_PT.json b/apps/files_trashbin/l10n/pt_PT.json
deleted file mode 100644
index a29bde30726..00000000000
--- a/apps/files_trashbin/l10n/pt_PT.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "restored" : "Restaurado",
- "Deleted files" : "Ficheiros eliminados",
- "Restore" : "Restaurar",
- "Unknown" : "Desconhecido",
- "All files" : "Todos os ficheiros",
- "You" : "Vovê",
- "Deleted" : "Eliminado",
- "Cancel" : "Cancelar",
- "No deleted files" : "Sem ficheiros eliminados",
- "You will be able to recover deleted files from here" : "Poderá recuperar ficheiros eliminados a partir daqui",
- "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
- "Select all" : "Selecionar tudo",
- "Name" : "Nome",
- "Actions" : "Ações"
-},"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/files_trashbin/l10n/ro.js b/apps/files_trashbin/l10n/ro.js
deleted file mode 100644
index 947a82a4cea..00000000000
--- a/apps/files_trashbin/l10n/ro.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "restaurat",
- "Deleted files" : "Fișiere șterse",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Fișierele și folderele șterse din coșul de gunoi (pot expira în timpul exportului dacă spațiul de stocare e limitat)",
- "Restore" : "Restaurare",
- "Cancel" : "Anulare",
- "Deleted" : "A fost șters.",
- "Unknown" : "Necunoscut",
- "All files" : "Toate fișierele",
- "You" : "Tu",
- "List of files that have been deleted." : "Lista fișierelor șterse.",
- "No deleted files" : "Nu sunt fișiere șterse",
- "Files and folders you have deleted will show up here" : "Fișierele și dosarele șterse vor fi afișate aici"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/files_trashbin/l10n/ro.json b/apps/files_trashbin/l10n/ro.json
deleted file mode 100644
index 3b5b67ded9b..00000000000
--- a/apps/files_trashbin/l10n/ro.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "restaurat",
- "Deleted files" : "Fișiere șterse",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Fișierele și folderele șterse din coșul de gunoi (pot expira în timpul exportului dacă spațiul de stocare e limitat)",
- "Restore" : "Restaurare",
- "Cancel" : "Anulare",
- "Deleted" : "A fost șters.",
- "Unknown" : "Necunoscut",
- "All files" : "Toate fișierele",
- "You" : "Tu",
- "List of files that have been deleted." : "Lista fișierelor șterse.",
- "No deleted files" : "Nu sunt fișiere șterse",
- "Files and folders you have deleted will show up here" : "Fișierele și dosarele șterse vor fi afișate aici"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ru.js b/apps/files_trashbin/l10n/ru.js
index 1ee42427dbd..a62710baef6 100644
--- a/apps/files_trashbin/l10n/ru.js
+++ b/apps/files_trashbin/l10n/ru.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "Это приложение позволяет людям восстанавливать файлы, которые были удалены из системы.",
"This application enables people 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 people 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 an account 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." : "Это приложение позволяет пользователям восстанавливать файлы, которые были удалены из системы. Оно отображает список удаленных файлов в веб-интерфейсе и содержит опции для восстановления этих удаленных файлов обратно в каталоги файлов people или для их окончательного удаления из системы. При восстановлении файла также восстанавливаются версии связанных файлов, если включено приложение \"Версии\". Когда файл удаляется из общего доступа, его можно восстановить тем же способом, хотя он больше не является общим. По умолчанию эти файлы остаются в корзине в течение 30 дней.\nЧтобы предотвратить нехватку дискового пространства в учетной записи, приложение \"Удаленные файлы\" не будет использовать более 50% доступной в данный момент бесплатной квоты для удаленных файлов. Если количество удаленных файлов превышает это ограничение, приложение удаляет самые старые файлы до тех пор, пока оно не станет меньше этого ограничения. Более подробная информация доступна в документации по удаленным файлам.",
"Restore" : "Восстановить",
+ "Not enough free space to restore the file/folder" : "Недостаточно свободного места для восстановления файла/папки",
"Empty deleted files" : "Очистить удаленные файлы",
"Confirm permanent deletion" : "Подтвердите постоянное удаление",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Вы уверены, что хотите навсегда удалить все файлы и папки в корзине? Это действие нельзя отменить.",
@@ -15,6 +16,7 @@ OC.L10N.register(
"Original location" : "Исходный путь",
"Deleted by" : "Удалено",
"Deleted" : "Удалён",
+ "few seconds ago" : "несколько секунд назад",
"A long time ago" : "Очень давно",
"Unknown" : "Неизвестно",
"All files" : "Все файлы",
diff --git a/apps/files_trashbin/l10n/ru.json b/apps/files_trashbin/l10n/ru.json
index 149fb2386c4..70e8796bf3b 100644
--- a/apps/files_trashbin/l10n/ru.json
+++ b/apps/files_trashbin/l10n/ru.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "Это приложение позволяет людям восстанавливать файлы, которые были удалены из системы.",
"This application enables people 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 people 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 an account 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." : "Это приложение позволяет пользователям восстанавливать файлы, которые были удалены из системы. Оно отображает список удаленных файлов в веб-интерфейсе и содержит опции для восстановления этих удаленных файлов обратно в каталоги файлов people или для их окончательного удаления из системы. При восстановлении файла также восстанавливаются версии связанных файлов, если включено приложение \"Версии\". Когда файл удаляется из общего доступа, его можно восстановить тем же способом, хотя он больше не является общим. По умолчанию эти файлы остаются в корзине в течение 30 дней.\nЧтобы предотвратить нехватку дискового пространства в учетной записи, приложение \"Удаленные файлы\" не будет использовать более 50% доступной в данный момент бесплатной квоты для удаленных файлов. Если количество удаленных файлов превышает это ограничение, приложение удаляет самые старые файлы до тех пор, пока оно не станет меньше этого ограничения. Более подробная информация доступна в документации по удаленным файлам.",
"Restore" : "Восстановить",
+ "Not enough free space to restore the file/folder" : "Недостаточно свободного места для восстановления файла/папки",
"Empty deleted files" : "Очистить удаленные файлы",
"Confirm permanent deletion" : "Подтвердите постоянное удаление",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Вы уверены, что хотите навсегда удалить все файлы и папки в корзине? Это действие нельзя отменить.",
@@ -13,6 +14,7 @@
"Original location" : "Исходный путь",
"Deleted by" : "Удалено",
"Deleted" : "Удалён",
+ "few seconds ago" : "несколько секунд назад",
"A long time ago" : "Очень давно",
"Unknown" : "Неизвестно",
"All files" : "Все файлы",
diff --git a/apps/files_trashbin/l10n/sc.js b/apps/files_trashbin/l10n/sc.js
deleted file mode 100644
index 55b2e1f8a78..00000000000
--- a/apps/files_trashbin/l10n/sc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "recuperados",
- "Deleted files" : "Archìvios cantzellados",
- "Restore" : "Riprìstina",
- "Unknown" : "Disconnotu",
- "All files" : "Totu is archìvios",
- "You" : "Tue",
- "Deleted" : "Cantzelladu",
- "Cancel" : "Annulla",
- "No deleted files" : "Archìvios no cantzellados",
- "This application enables users to restore files that were deleted from the system." : "Custa aplicatzione permitit a is utentes de recuperare archìvios chi sunt istados cantzellados dae su sistema.",
- "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." : "Custa aplicatzione permitit a is utentes de recuperare archìvios chi sunt istados cantzellados dae su sistema. Mustrat una lista de is archìvios cantzellados in s'interfache web, e tenet sèberos pro ripristinare is archìvios in is cartellas de is utentes o nche ddos bogare definitivamente dae su sistema. Su recùperu de un'archìviu riprìstinat puru is versiones relativas, si s'aplicatzione de is versiones est ativa. Si un'archìviu est cantzelladu dae una cumpartzidura, si podet recuperare in sa pròpria manera, mancari non siat prus cumpartzidu. In manera predefinida, custos archìvios abarrant in s'àlia pro 30 dies.\nPro impedire a un'utente de abarrare chene logu in su discu, s'aplicatzione Archìvios cantzellados no at a impreare prus de su 50% de sa cuota lìbera a disponimentu. Si is archìvios cantzellados passant custu lìmite, s'aplicatzione cantzellat is archìvios prus betzos finas a torrare suta de custu lìmite. Àteras informatziones sunt a disponimentu in sa dicumentatzione de Archìvios cantzellados.",
- "You will be able to recover deleted files from here" : "As a pòdere recuperare is archìvios cantzellados dae inoghe",
- "No entries found in this folder" : "Perunu elementu agatadu in custa cartella",
- "Select all" : "Seletziona totu",
- "Name" : "Nùmene",
- "Actions" : "Atziones"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/sc.json b/apps/files_trashbin/l10n/sc.json
deleted file mode 100644
index 89f0d5fdfd9..00000000000
--- a/apps/files_trashbin/l10n/sc.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{ "translations": {
- "restored" : "recuperados",
- "Deleted files" : "Archìvios cantzellados",
- "Restore" : "Riprìstina",
- "Unknown" : "Disconnotu",
- "All files" : "Totu is archìvios",
- "You" : "Tue",
- "Deleted" : "Cantzelladu",
- "Cancel" : "Annulla",
- "No deleted files" : "Archìvios no cantzellados",
- "This application enables users to restore files that were deleted from the system." : "Custa aplicatzione permitit a is utentes de recuperare archìvios chi sunt istados cantzellados dae su sistema.",
- "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." : "Custa aplicatzione permitit a is utentes de recuperare archìvios chi sunt istados cantzellados dae su sistema. Mustrat una lista de is archìvios cantzellados in s'interfache web, e tenet sèberos pro ripristinare is archìvios in is cartellas de is utentes o nche ddos bogare definitivamente dae su sistema. Su recùperu de un'archìviu riprìstinat puru is versiones relativas, si s'aplicatzione de is versiones est ativa. Si un'archìviu est cantzelladu dae una cumpartzidura, si podet recuperare in sa pròpria manera, mancari non siat prus cumpartzidu. In manera predefinida, custos archìvios abarrant in s'àlia pro 30 dies.\nPro impedire a un'utente de abarrare chene logu in su discu, s'aplicatzione Archìvios cantzellados no at a impreare prus de su 50% de sa cuota lìbera a disponimentu. Si is archìvios cantzellados passant custu lìmite, s'aplicatzione cantzellat is archìvios prus betzos finas a torrare suta de custu lìmite. Àteras informatziones sunt a disponimentu in sa dicumentatzione de Archìvios cantzellados.",
- "You will be able to recover deleted files from here" : "As a pòdere recuperare is archìvios cantzellados dae inoghe",
- "No entries found in this folder" : "Perunu elementu agatadu in custa cartella",
- "Select all" : "Seletziona totu",
- "Name" : "Nùmene",
- "Actions" : "Atziones"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/sl.js b/apps/files_trashbin/l10n/sl.js
deleted file mode 100644
index 1f12d70ea00..00000000000
--- a/apps/files_trashbin/l10n/sl.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "obnovljeno",
- "Deleted files" : "Izbrisane datoteke",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Izbrisane datoteke in mape v smeteh (nabor je odvisen od velikosti prostora)",
- "Restore" : "Obnovi",
- "Cancel" : "Prekliči",
- "Deletion cancelled" : "Brisanje je bilo preklicano",
- "Deleted" : "Izbrisano",
- "Unknown" : "Neznano",
- "All files" : "Vse datoteke",
- "You" : "Jaz",
- "List of files that have been deleted." : "Seznam datotek, ki so bile izbrisane.",
- "No deleted files" : "Ni izbrisanih datotek"
-},
-"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/files_trashbin/l10n/sl.json b/apps/files_trashbin/l10n/sl.json
deleted file mode 100644
index 2e27afe6cab..00000000000
--- a/apps/files_trashbin/l10n/sl.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "obnovljeno",
- "Deleted files" : "Izbrisane datoteke",
- "Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Izbrisane datoteke in mape v smeteh (nabor je odvisen od velikosti prostora)",
- "Restore" : "Obnovi",
- "Cancel" : "Prekliči",
- "Deletion cancelled" : "Brisanje je bilo preklicano",
- "Deleted" : "Izbrisano",
- "Unknown" : "Neznano",
- "All files" : "Vse datoteke",
- "You" : "Jaz",
- "List of files that have been deleted." : "Seznam datotek, ki so bile izbrisane.",
- "No deleted files" : "Ni izbrisanih datotek"
-},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/sq.js b/apps/files_trashbin/l10n/sq.js
deleted file mode 100644
index 7d4770f13ce..00000000000
--- a/apps/files_trashbin/l10n/sq.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "u rikthye",
- "Deleted files" : "Kartela të fshira",
- "Restore" : "Riktheje",
- "Unknown" : "I panjohur",
- "All files" : "Të gjithë skedarët",
- "Deleted" : "U fshi",
- "No deleted files" : "Pa kartela të fshira",
- "You will be able to recover deleted files from here" : "Që këtu do të jeni në gjendje të rimerrni kartela të fshira",
- "No entries found in this folder" : "Në këtë dosje s’u gjetën zëra",
- "Select all" : "Përzgjidhi krejt",
- "Name" : "Emër",
- "Actions" : "Veprimet"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/sq.json b/apps/files_trashbin/l10n/sq.json
deleted file mode 100644
index f574e3408fe..00000000000
--- a/apps/files_trashbin/l10n/sq.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "u rikthye",
- "Deleted files" : "Kartela të fshira",
- "Restore" : "Riktheje",
- "Unknown" : "I panjohur",
- "All files" : "Të gjithë skedarët",
- "Deleted" : "U fshi",
- "No deleted files" : "Pa kartela të fshira",
- "You will be able to recover deleted files from here" : "Që këtu do të jeni në gjendje të rimerrni kartela të fshira",
- "No entries found in this folder" : "Në këtë dosje s’u gjetën zëra",
- "Select all" : "Përzgjidhi krejt",
- "Name" : "Emër",
- "Actions" : "Veprimet"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/sr.js b/apps/files_trashbin/l10n/sr.js
index 8b7cdafed96..11821c8a114 100644
--- a/apps/files_trashbin/l10n/sr.js
+++ b/apps/files_trashbin/l10n/sr.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "Ова апликација омогућава људима да опораве фајлове који су обрисани са система.",
"This application enables people 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 people 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 an account 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" : "Врати",
+ "Not enough free space to restore the file/folder" : "Нема довољно слободног простора за враћање фајла/фолдера",
"Empty deleted files" : "Испразни обрисане фајлове",
"Confirm permanent deletion" : "Потврдите трајно брисање",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Да ли сте сигурни да желите трајно да обришете све фајлове и фолдере у корпи за отпад? Ово не може да се поништи.",
@@ -15,6 +16,7 @@ OC.L10N.register(
"Original location" : "Оригинална локација",
"Deleted by" : "Обрисао је",
"Deleted" : "Обрисано",
+ "few seconds ago" : "пре неколико секунди",
"A long time ago" : "Пре доста времена",
"Unknown" : "Непознато",
"All files" : "Сви фајлови",
diff --git a/apps/files_trashbin/l10n/sr.json b/apps/files_trashbin/l10n/sr.json
index 31f8cd3b448..179e1352fa4 100644
--- a/apps/files_trashbin/l10n/sr.json
+++ b/apps/files_trashbin/l10n/sr.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "Ова апликација омогућава људима да опораве фајлове који су обрисани са система.",
"This application enables people 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 people 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 an account 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" : "Врати",
+ "Not enough free space to restore the file/folder" : "Нема довољно слободног простора за враћање фајла/фолдера",
"Empty deleted files" : "Испразни обрисане фајлове",
"Confirm permanent deletion" : "Потврдите трајно брисање",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Да ли сте сигурни да желите трајно да обришете све фајлове и фолдере у корпи за отпад? Ово не може да се поништи.",
@@ -13,6 +14,7 @@
"Original location" : "Оригинална локација",
"Deleted by" : "Обрисао је",
"Deleted" : "Обрисано",
+ "few seconds ago" : "пре неколико секунди",
"A long time ago" : "Пре доста времена",
"Unknown" : "Непознато",
"All files" : "Сви фајлови",
diff --git a/apps/files_trashbin/l10n/sr@latin.js b/apps/files_trashbin/l10n/sr@latin.js
deleted file mode 100644
index e6eb817ccf3..00000000000
--- a/apps/files_trashbin/l10n/sr@latin.js
+++ /dev/null
@@ -1,19 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Couldn't delete %s permanently" : "Ne mogu zauvek da obrišem %s",
- "Couldn't restore %s" : "Ne mogu da vratim %s",
- "Deleted files" : "Obrisani fajlovi",
- "Restore" : "Vrati",
- "Delete" : "Obriši",
- "Delete permanently" : "Obriši zauvek",
- "Error" : "Greška",
- "restored" : "vraćeno",
- "No deleted files" : "Nema obrisanih fajlova",
- "You will be able to recover deleted files from here" : "Odavde ćete moći da povratite obrisane fajlove",
- "No entries found in this folder" : "Nema ničega u ovoj fascikli",
- "Select all" : "Označi sve",
- "Name" : "Naziv",
- "Deleted" : "Obrisano"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_trashbin/l10n/sr@latin.json b/apps/files_trashbin/l10n/sr@latin.json
deleted file mode 100644
index 462e2f21e2a..00000000000
--- a/apps/files_trashbin/l10n/sr@latin.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{ "translations": {
- "Couldn't delete %s permanently" : "Ne mogu zauvek da obrišem %s",
- "Couldn't restore %s" : "Ne mogu da vratim %s",
- "Deleted files" : "Obrisani fajlovi",
- "Restore" : "Vrati",
- "Delete" : "Obriši",
- "Delete permanently" : "Obriši zauvek",
- "Error" : "Greška",
- "restored" : "vraćeno",
- "No deleted files" : "Nema obrisanih fajlova",
- "You will be able to recover deleted files from here" : "Odavde ćete moći da povratite obrisane fajlove",
- "No entries found in this folder" : "Nema ničega u ovoj fascikli",
- "Select all" : "Označi sve",
- "Name" : "Naziv",
- "Deleted" : "Obrisano"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/sv.js b/apps/files_trashbin/l10n/sv.js
index 39fe5bd3f27..8f84f5c04f4 100644
--- a/apps/files_trashbin/l10n/sv.js
+++ b/apps/files_trashbin/l10n/sv.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "Denna app gör det möjligt för användare att återställa filer som raderats från systemet.",
"This application enables people 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 people 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 an account 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." : "Denna applikation gör det möjligt för användare att återställa filer som tagits bort från systemet. Den visar en lista över borttagna filer i webbgränssnittet, och har alternativ för att återställa de borttagna filerna tillbaka till användarfilkataloger eller ta bort dem permanent från systemet. Återställa en fil återställer också relaterade filversioner, om versionsprogrammet är aktiverat. När en delad fil tas bort från kan den återställas på samma sätt, med är inte längre delad. Som standard ligger filerna i papperskorgen i 30 dagar.\nFör att förhindra att en användare får slut på diskutrymme kommer appen Borttagna filer inte att använda mer än 50% av den tillgängliga oanvända utrymmeskvoten för att lagra borttagna filer. Om storleken på borttagna filerna överskrider gränsen raderar appen de äldsta filerna tills den kommer under gränsen. Mer information finns i dokumentationen för Borttagna filer.",
"Restore" : "Återskapa",
+ "Not enough free space to restore the file/folder" : "Inte tillräckligt med ledigt utrymme för att återställa filen/mappen",
"Empty deleted files" : "Töm raderade filer",
"Confirm permanent deletion" : "Bekräfta permanent radering",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Är du säker på att du vill radera alla filer och mappar i papperskorgen permanent? Detta kan inte ångras.",
@@ -15,12 +16,15 @@ OC.L10N.register(
"Original location" : "Ursprunglig plats",
"Deleted by" : "Raderad av",
"Deleted" : "Borttagen",
+ "few seconds ago" : "några sekunder sedan",
"A long time ago" : "För länge sedan",
"Unknown" : "Okänd",
"All files" : "Alla filer",
"You" : "Du",
"List of files that have been deleted." : "Lista över filer som har tagits bort.",
"No deleted files" : "Inga borttagna filer",
- "Files and folders you have deleted will show up here" : "Filer och mappar som du har tagit bort kommer att visas här"
+ "Files and folders you have deleted will show up here" : "Filer och mappar som du har tagit bort kommer att visas här",
+ "All files have been permanently deleted" : "Alla filer har raderats permanent",
+ "Failed to empty deleted files" : "Kunde inte tömma raderade filer"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/sv.json b/apps/files_trashbin/l10n/sv.json
index 5cc6c187a71..2d4dcfb7d6f 100644
--- a/apps/files_trashbin/l10n/sv.json
+++ b/apps/files_trashbin/l10n/sv.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "Denna app gör det möjligt för användare att återställa filer som raderats från systemet.",
"This application enables people 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 people 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 an account 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." : "Denna applikation gör det möjligt för användare att återställa filer som tagits bort från systemet. Den visar en lista över borttagna filer i webbgränssnittet, och har alternativ för att återställa de borttagna filerna tillbaka till användarfilkataloger eller ta bort dem permanent från systemet. Återställa en fil återställer också relaterade filversioner, om versionsprogrammet är aktiverat. När en delad fil tas bort från kan den återställas på samma sätt, med är inte längre delad. Som standard ligger filerna i papperskorgen i 30 dagar.\nFör att förhindra att en användare får slut på diskutrymme kommer appen Borttagna filer inte att använda mer än 50% av den tillgängliga oanvända utrymmeskvoten för att lagra borttagna filer. Om storleken på borttagna filerna överskrider gränsen raderar appen de äldsta filerna tills den kommer under gränsen. Mer information finns i dokumentationen för Borttagna filer.",
"Restore" : "Återskapa",
+ "Not enough free space to restore the file/folder" : "Inte tillräckligt med ledigt utrymme för att återställa filen/mappen",
"Empty deleted files" : "Töm raderade filer",
"Confirm permanent deletion" : "Bekräfta permanent radering",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Är du säker på att du vill radera alla filer och mappar i papperskorgen permanent? Detta kan inte ångras.",
@@ -13,12 +14,15 @@
"Original location" : "Ursprunglig plats",
"Deleted by" : "Raderad av",
"Deleted" : "Borttagen",
+ "few seconds ago" : "några sekunder sedan",
"A long time ago" : "För länge sedan",
"Unknown" : "Okänd",
"All files" : "Alla filer",
"You" : "Du",
"List of files that have been deleted." : "Lista över filer som har tagits bort.",
"No deleted files" : "Inga borttagna filer",
- "Files and folders you have deleted will show up here" : "Filer och mappar som du har tagit bort kommer att visas här"
+ "Files and folders you have deleted will show up here" : "Filer och mappar som du har tagit bort kommer att visas här",
+ "All files have been permanently deleted" : "Alla filer har raderats permanent",
+ "Failed to empty deleted files" : "Kunde inte tömma raderade filer"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/th.js b/apps/files_trashbin/l10n/th.js
deleted file mode 100644
index 5b6078d6928..00000000000
--- a/apps/files_trashbin/l10n/th.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "restored" : "เรียกคืนแล้ว",
- "Deleted files" : "ไฟล์ที่ถูกลบ",
- "Restore" : "คืนค่า",
- "Unknown" : "ไม่ทราบ",
- "All files" : "ไฟล์ทั้งหมด",
- "Deleted" : "ลบแล้ว",
- "No deleted files" : "ไม่มีไฟล์ที่ถูกลบ",
- "You will be able to recover deleted files from here" : "คุณจะสามารถกู้คืนไฟล์ที่ถูกได้ลบจากที่นี่",
- "No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
- "Select all" : "เลือกทั้งหมด",
- "Name" : "ชื่อ",
- "Actions" : "การกระทำ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_trashbin/l10n/th.json b/apps/files_trashbin/l10n/th.json
deleted file mode 100644
index 77668f1bdd4..00000000000
--- a/apps/files_trashbin/l10n/th.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "restored" : "เรียกคืนแล้ว",
- "Deleted files" : "ไฟล์ที่ถูกลบ",
- "Restore" : "คืนค่า",
- "Unknown" : "ไม่ทราบ",
- "All files" : "ไฟล์ทั้งหมด",
- "Deleted" : "ลบแล้ว",
- "No deleted files" : "ไม่มีไฟล์ที่ถูกลบ",
- "You will be able to recover deleted files from here" : "คุณจะสามารถกู้คืนไฟล์ที่ถูกได้ลบจากที่นี่",
- "No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
- "Select all" : "เลือกทั้งหมด",
- "Name" : "ชื่อ",
- "Actions" : "การกระทำ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/tr.js b/apps/files_trashbin/l10n/tr.js
index 334bb9981de..ab14ad7cad8 100644
--- a/apps/files_trashbin/l10n/tr.js
+++ b/apps/files_trashbin/l10n/tr.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar.",
"This application enables people 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 people 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 an account 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." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar. Site arayüzünde silinmiş dosyaların listesini ve kullanıcı klasörlerine geri yükleme ya da kalıcı olarak silme seçeneklerini görüntüler. Sürümler uygulaması kullanıma alınmış ise, geri yüklenen dosyaların önceki sürümleri de geri yüklenir. Paylaşım üzerinden silinen dosyalar da aynı şekilde ancak paylaşılmamış olarak geri yüklenebilir. Silinmiş dosyalar varsayılan olarak 30 gün boyunca çöp kutusunda tutulur.\nSilinmiş dosyalar uygulaması kişilerin disk alanının dolmasını engellemek için, hesap depolama alanının en çok %50 oranındaki bölümünü kullanır. Silinmiş dosyaların boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski silinmiş dosyalar silinir. Ayrıntılı bilgi almak için Silinmiş Dosyalar uygulamasının belgelerine bakabilirsiniz.",
"Restore" : "Geri yükle",
+ "Not enough free space to restore the file/folder" : "Dosyayı veya klasörü geri yüklemek için yeterli boş alan yok",
"Empty deleted files" : "Silinmiş dosyaları yok et",
"Confirm permanent deletion" : "Kalıcı olarak silmeyi onaylayın",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Çöp kutusundaki tüm dosyaları ve klasörleri kalıcı olarak silmek istediğinize emin misiniz? Bu işlem geri alınamaz.",
@@ -15,12 +16,15 @@ OC.L10N.register(
"Original location" : "Özgün konum",
"Deleted by" : "Silen",
"Deleted" : "Silindi",
+ "few seconds ago" : "bir kaç saniye önce",
"A long time ago" : "Uzun süre önce",
"Unknown" : "Bilinmiyor",
"All files" : "Tüm dosyalar",
"You" : "Siz",
"List of files that have been deleted." : "Silinmiş dosyaların listesi",
"No deleted files" : "Silinmiş bir dosya yok",
- "Files and folders you have deleted will show up here" : "Sildiğiniz dosya ve klasörler burada görüntülenir"
+ "Files and folders you have deleted will show up here" : "Sildiğiniz dosya ve klasörler burada görüntülenir",
+ "All files have been permanently deleted" : "Tüm dosyalar kalıcı olarak silindi",
+ "Failed to empty deleted files" : "Silinmiş dosyalar bölümü boşaltılamadı"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_trashbin/l10n/tr.json b/apps/files_trashbin/l10n/tr.json
index ec57b977d04..0d86ecf3639 100644
--- a/apps/files_trashbin/l10n/tr.json
+++ b/apps/files_trashbin/l10n/tr.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar.",
"This application enables people 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 people 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 an account 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." : "Bu uygulama kişilerin sistem üzerinde sildiği dosyaları geri yükleyebilmesini sağlar. Site arayüzünde silinmiş dosyaların listesini ve kullanıcı klasörlerine geri yükleme ya da kalıcı olarak silme seçeneklerini görüntüler. Sürümler uygulaması kullanıma alınmış ise, geri yüklenen dosyaların önceki sürümleri de geri yüklenir. Paylaşım üzerinden silinen dosyalar da aynı şekilde ancak paylaşılmamış olarak geri yüklenebilir. Silinmiş dosyalar varsayılan olarak 30 gün boyunca çöp kutusunda tutulur.\nSilinmiş dosyalar uygulaması kişilerin disk alanının dolmasını engellemek için, hesap depolama alanının en çok %50 oranındaki bölümünü kullanır. Silinmiş dosyaların boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski silinmiş dosyalar silinir. Ayrıntılı bilgi almak için Silinmiş Dosyalar uygulamasının belgelerine bakabilirsiniz.",
"Restore" : "Geri yükle",
+ "Not enough free space to restore the file/folder" : "Dosyayı veya klasörü geri yüklemek için yeterli boş alan yok",
"Empty deleted files" : "Silinmiş dosyaları yok et",
"Confirm permanent deletion" : "Kalıcı olarak silmeyi onaylayın",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Çöp kutusundaki tüm dosyaları ve klasörleri kalıcı olarak silmek istediğinize emin misiniz? Bu işlem geri alınamaz.",
@@ -13,12 +14,15 @@
"Original location" : "Özgün konum",
"Deleted by" : "Silen",
"Deleted" : "Silindi",
+ "few seconds ago" : "bir kaç saniye önce",
"A long time ago" : "Uzun süre önce",
"Unknown" : "Bilinmiyor",
"All files" : "Tüm dosyalar",
"You" : "Siz",
"List of files that have been deleted." : "Silinmiş dosyaların listesi",
"No deleted files" : "Silinmiş bir dosya yok",
- "Files and folders you have deleted will show up here" : "Sildiğiniz dosya ve klasörler burada görüntülenir"
+ "Files and folders you have deleted will show up here" : "Sildiğiniz dosya ve klasörler burada görüntülenir",
+ "All files have been permanently deleted" : "Tüm dosyalar kalıcı olarak silindi",
+ "Failed to empty deleted files" : "Silinmiş dosyalar bölümü boşaltılamadı"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/uk.js b/apps/files_trashbin/l10n/uk.js
index 296a4d9f603..43f6a021a09 100644
--- a/apps/files_trashbin/l10n/uk.js
+++ b/apps/files_trashbin/l10n/uk.js
@@ -6,6 +6,7 @@ OC.L10N.register(
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Вилучені файли та каталоги з кошику (термін дії може завершитися під час експорту, якщо у вас мало місця для збереження)",
"This application enables people to restore files that were deleted from the system." : "Цей застосунок дозволяє людям відновлювати файли, які було переміщено до кошику.",
"Restore" : "Відновити",
+ "Not enough free space to restore the file/folder" : "Недостатньо вільного простору для відновлення файлу або каталогу",
"Empty deleted files" : "Очистити вилучені файли",
"Confirm permanent deletion" : "Підтвердити остаточне вилучення",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Дійсно остаточно вилучити усі файли та каталоги у кошику? Цю операцію буде неможливо скасувати.",
@@ -14,6 +15,7 @@ OC.L10N.register(
"Original location" : "Звідки вилучено",
"Deleted by" : "Ким вилучено",
"Deleted" : "Вилучено",
+ "few seconds ago" : "кілька секунд тому",
"A long time ago" : "Давно",
"Unknown" : "Невідомо",
"All files" : "Усі файли",
diff --git a/apps/files_trashbin/l10n/uk.json b/apps/files_trashbin/l10n/uk.json
index 488a0226458..dcef4ac3b36 100644
--- a/apps/files_trashbin/l10n/uk.json
+++ b/apps/files_trashbin/l10n/uk.json
@@ -4,6 +4,7 @@
"Deleted files and folders in the trash bin (may expire during export if you are low on storage space)" : "Вилучені файли та каталоги з кошику (термін дії може завершитися під час експорту, якщо у вас мало місця для збереження)",
"This application enables people to restore files that were deleted from the system." : "Цей застосунок дозволяє людям відновлювати файли, які було переміщено до кошику.",
"Restore" : "Відновити",
+ "Not enough free space to restore the file/folder" : "Недостатньо вільного простору для відновлення файлу або каталогу",
"Empty deleted files" : "Очистити вилучені файли",
"Confirm permanent deletion" : "Підтвердити остаточне вилучення",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "Дійсно остаточно вилучити усі файли та каталоги у кошику? Цю операцію буде неможливо скасувати.",
@@ -12,6 +13,7 @@
"Original location" : "Звідки вилучено",
"Deleted by" : "Ким вилучено",
"Deleted" : "Вилучено",
+ "few seconds ago" : "кілька секунд тому",
"A long time ago" : "Давно",
"Unknown" : "Невідомо",
"All files" : "Усі файли",
diff --git a/apps/files_trashbin/l10n/ur_PK.js b/apps/files_trashbin/l10n/ur_PK.js
deleted file mode 100644
index eaa9dca8e34..00000000000
--- a/apps/files_trashbin/l10n/ur_PK.js
+++ /dev/null
@@ -1,14 +0,0 @@
-OC.L10N.register(
- "files_trashbin",
- {
- "Couldn't delete %s permanently" : "حذف نہیں ہو سکتا %s مستقل طور پر",
- "Couldn't restore %s" : "بحال نہيں کيا جا سکتا %s",
- "Deleted files" : "حذف شدہ فائليں",
- "Restore" : "بحال",
- "Delete" : "حذف کریں",
- "Error" : "ایرر",
- "restored" : "بحال شدہ",
- "Name" : "اسم",
- "Deleted" : "حذف شدہ "
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/ur_PK.json b/apps/files_trashbin/l10n/ur_PK.json
deleted file mode 100644
index fd88573d62a..00000000000
--- a/apps/files_trashbin/l10n/ur_PK.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{ "translations": {
- "Couldn't delete %s permanently" : "حذف نہیں ہو سکتا %s مستقل طور پر",
- "Couldn't restore %s" : "بحال نہيں کيا جا سکتا %s",
- "Deleted files" : "حذف شدہ فائليں",
- "Restore" : "بحال",
- "Delete" : "حذف کریں",
- "Error" : "ایرر",
- "restored" : "بحال شدہ",
- "Name" : "اسم",
- "Deleted" : "حذف شدہ "
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/zh_CN.js b/apps/files_trashbin/l10n/zh_CN.js
index 83cdeb467d4..5d05961ec76 100644
--- a/apps/files_trashbin/l10n/zh_CN.js
+++ b/apps/files_trashbin/l10n/zh_CN.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "此应用程序使人们能够恢复从系统中删除的文件。",
"This application enables people 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 people 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 an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "此应用程序使人们能够恢复从系统中删除的文件。它在web界面中显示已删除文件的列表,并可以选择将这些已删除的文件还原回人员文件目录或从系统中永久删除这些文件。如果启用了版本应用程序,恢复文件也会恢复相关的文件版本。当文件从共享中删除时,可以以相同的方式恢复,尽管不再共享。默认情况下,这些文件将在垃圾桶中保留30天。\n为了防止帐户磁盘空间不足,“已删除文件”应用程序将不会为已删除文件使用超过当前可用可用配额的50%。如果删除的文件超过此限制,应用程序将删除最旧的文件,直到其低于此限制。有关详细信息,请参阅“已删除的文件”文档。",
"Restore" : "恢复",
+ "Not enough free space to restore the file/folder" : "空间不足‌,无法恢复文件/文件夹",
"Empty deleted files" : "清空已删除的文件",
"Confirm permanent deletion" : "确认永久删除",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "是否确定要永久删除回收站中的所有文件和文件夹?此操作无法撤销。",
@@ -15,6 +16,7 @@ OC.L10N.register(
"Original location" : "初始位置",
"Deleted by" : "删除者",
"Deleted" : "已删除",
+ "few seconds ago" : "几秒钟前",
"A long time ago" : "很久之前",
"Unknown" : "未知",
"All files" : "全部文件",
diff --git a/apps/files_trashbin/l10n/zh_CN.json b/apps/files_trashbin/l10n/zh_CN.json
index a1f624394cc..5603ac5a94e 100644
--- a/apps/files_trashbin/l10n/zh_CN.json
+++ b/apps/files_trashbin/l10n/zh_CN.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "此应用程序使人们能够恢复从系统中删除的文件。",
"This application enables people 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 people 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 an account from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "此应用程序使人们能够恢复从系统中删除的文件。它在web界面中显示已删除文件的列表,并可以选择将这些已删除的文件还原回人员文件目录或从系统中永久删除这些文件。如果启用了版本应用程序,恢复文件也会恢复相关的文件版本。当文件从共享中删除时,可以以相同的方式恢复,尽管不再共享。默认情况下,这些文件将在垃圾桶中保留30天。\n为了防止帐户磁盘空间不足,“已删除文件”应用程序将不会为已删除文件使用超过当前可用可用配额的50%。如果删除的文件超过此限制,应用程序将删除最旧的文件,直到其低于此限制。有关详细信息,请参阅“已删除的文件”文档。",
"Restore" : "恢复",
+ "Not enough free space to restore the file/folder" : "空间不足‌,无法恢复文件/文件夹",
"Empty deleted files" : "清空已删除的文件",
"Confirm permanent deletion" : "确认永久删除",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "是否确定要永久删除回收站中的所有文件和文件夹?此操作无法撤销。",
@@ -13,6 +14,7 @@
"Original location" : "初始位置",
"Deleted by" : "删除者",
"Deleted" : "已删除",
+ "few seconds ago" : "几秒钟前",
"A long time ago" : "很久之前",
"Unknown" : "未知",
"All files" : "全部文件",
diff --git a/apps/files_trashbin/l10n/zh_HK.js b/apps/files_trashbin/l10n/zh_HK.js
index 9a13dce5326..668a56dd4a2 100644
--- a/apps/files_trashbin/l10n/zh_HK.js
+++ b/apps/files_trashbin/l10n/zh_HK.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "此應用程式讓人仕可以還原他們在系統當中刪除的檔案",
"This application enables people 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 people 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 an account 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" : "還原",
+ "Not enough free space to restore the file/folder" : "空間不足,不能還原檔案/資料夾",
"Empty deleted files" : "清空已刪除的檔案",
"Confirm permanent deletion" : "確認永久刪除",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "您確定要永久刪除回收桶中的所有檔案與資料夾嗎?這無法還原。",
@@ -15,6 +16,7 @@ OC.L10N.register(
"Original location" : "原先的位置",
"Deleted by" : "被以下人仕刪除",
"Deleted" : "已刪除",
+ "few seconds ago" : "幾秒前",
"A long time ago" : "很久以前",
"Unknown" : "不詳",
"All files" : "所有檔案",
diff --git a/apps/files_trashbin/l10n/zh_HK.json b/apps/files_trashbin/l10n/zh_HK.json
index d45a562fcb2..19227093f11 100644
--- a/apps/files_trashbin/l10n/zh_HK.json
+++ b/apps/files_trashbin/l10n/zh_HK.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "此應用程式讓人仕可以還原他們在系統當中刪除的檔案",
"This application enables people 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 people 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 an account 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" : "還原",
+ "Not enough free space to restore the file/folder" : "空間不足,不能還原檔案/資料夾",
"Empty deleted files" : "清空已刪除的檔案",
"Confirm permanent deletion" : "確認永久刪除",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "您確定要永久刪除回收桶中的所有檔案與資料夾嗎?這無法還原。",
@@ -13,6 +14,7 @@
"Original location" : "原先的位置",
"Deleted by" : "被以下人仕刪除",
"Deleted" : "已刪除",
+ "few seconds ago" : "幾秒前",
"A long time ago" : "很久以前",
"Unknown" : "不詳",
"All files" : "所有檔案",
diff --git a/apps/files_trashbin/l10n/zh_TW.js b/apps/files_trashbin/l10n/zh_TW.js
index 879c5aee231..26b9abd0e0f 100644
--- a/apps/files_trashbin/l10n/zh_TW.js
+++ b/apps/files_trashbin/l10n/zh_TW.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"This application enables people to restore files that were deleted from the system." : "此應用程式讓使用者可以還原他們在系統當中刪除的檔案",
"This application enables people 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 people 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 an account 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" : "還原",
+ "Not enough free space to restore the file/folder" : "空間不足,無法還原檔案/資料夾",
"Empty deleted files" : "清空已刪除的檔案",
"Confirm permanent deletion" : "確認永久刪除",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "您確定您想要永久刪除回收桶中的所有檔案與資料夾嗎?這無法還原。",
@@ -15,6 +16,7 @@ OC.L10N.register(
"Original location" : "原始位置",
"Deleted by" : "刪除者",
"Deleted" : "已刪除",
+ "few seconds ago" : "幾秒前",
"A long time ago" : "很久以前",
"Unknown" : "未知",
"All files" : "所有檔案",
diff --git a/apps/files_trashbin/l10n/zh_TW.json b/apps/files_trashbin/l10n/zh_TW.json
index 176a8861e08..e9c0e9de42d 100644
--- a/apps/files_trashbin/l10n/zh_TW.json
+++ b/apps/files_trashbin/l10n/zh_TW.json
@@ -5,6 +5,7 @@
"This application enables people to restore files that were deleted from the system." : "此應用程式讓使用者可以還原他們在系統當中刪除的檔案",
"This application enables people 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 people 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 an account 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" : "還原",
+ "Not enough free space to restore the file/folder" : "空間不足,無法還原檔案/資料夾",
"Empty deleted files" : "清空已刪除的檔案",
"Confirm permanent deletion" : "確認永久刪除",
"Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone." : "您確定您想要永久刪除回收桶中的所有檔案與資料夾嗎?這無法還原。",
@@ -13,6 +14,7 @@
"Original location" : "原始位置",
"Deleted by" : "刪除者",
"Deleted" : "已刪除",
+ "few seconds ago" : "幾秒前",
"A long time ago" : "很久以前",
"Unknown" : "未知",
"All files" : "所有檔案",
diff --git a/apps/files_trashbin/lib/Command/CleanUp.php b/apps/files_trashbin/lib/Command/CleanUp.php
index daaa4003f7a..e9b4fa8ae60 100644
--- a/apps/files_trashbin/lib/Command/CleanUp.php
+++ b/apps/files_trashbin/lib/Command/CleanUp.php
@@ -11,6 +11,7 @@ use OCP\Files\IRootFolder;
use OCP\IDBConnection;
use OCP\IUserBackend;
use OCP\IUserManager;
+use OCP\Util;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Exception\InvalidOptionException;
use Symfony\Component\Console\Input\InputArgument;
@@ -96,7 +97,7 @@ class CleanUp extends Command {
$node = $this->rootFolder->get($path);
if ($verbose) {
- $output->writeln('Deleting <info>' . \OC_Helper::humanFileSize($node->getSize()) . "</info> in trash for <info>$uid</info>.");
+ $output->writeln('Deleting <info>' . Util::humanFileSize($node->getSize()) . "</info> in trash for <info>$uid</info>.");
}
$node->delete();
if ($this->rootFolder->nodeExists($path)) {
diff --git a/apps/files_trashbin/lib/Command/Size.php b/apps/files_trashbin/lib/Command/Size.php
index 11699ce25ea..9c19d4d92b3 100644
--- a/apps/files_trashbin/lib/Command/Size.php
+++ b/apps/files_trashbin/lib/Command/Size.php
@@ -13,6 +13,7 @@ use OCP\Command\IBus;
use OCP\IConfig;
use OCP\IUser;
use OCP\IUserManager;
+use OCP\Util;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
@@ -45,7 +46,7 @@ class Size extends Base {
$size = $input->getArgument('size');
if ($size) {
- $parsedSize = \OC_Helper::computerFileSize($size);
+ $parsedSize = Util::computerFileSize($size);
if ($parsedSize === false) {
$output->writeln('<error>Failed to parse input size</error>');
return -1;
@@ -70,7 +71,7 @@ class Size extends Base {
if ($globalSize < 0) {
$globalHumanSize = 'default (50% of available space)';
} else {
- $globalHumanSize = \OC_Helper::humanFileSize($globalSize);
+ $globalHumanSize = Util::humanFileSize($globalSize);
}
if ($user) {
@@ -79,7 +80,7 @@ class Size extends Base {
if ($userSize < 0) {
$userHumanSize = ($globalSize < 0) ? $globalHumanSize : "default($globalHumanSize)";
} else {
- $userHumanSize = \OC_Helper::humanFileSize($userSize);
+ $userHumanSize = Util::humanFileSize($userSize);
}
if ($input->getOption('output') == self::OUTPUT_FORMAT_PLAIN) {
@@ -106,7 +107,7 @@ class Size extends Base {
if (count($userValues)) {
$output->writeln('Per-user sizes:');
$this->writeArrayInOutputFormat($input, $output, array_map(function ($size) {
- return \OC_Helper::humanFileSize($size);
+ return Util::humanFileSize($size);
}, $userValues));
} else {
$output->writeln('No per-user sizes configured');
diff --git a/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php b/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php
index 2a2e3a141dc..e9213882804 100644
--- a/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php
+++ b/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php
@@ -8,9 +8,12 @@ declare(strict_types=1);
*/
namespace OCA\Files_Trashbin\Sabre;
+use OC\Files\FileInfo;
+use OC\Files\View;
use OCA\DAV\Connector\Sabre\FilesPlugin;
use OCA\Files_Trashbin\Trash\ITrashItem;
use OCP\IPreview;
+use Psr\Log\LoggerInterface;
use Sabre\DAV\INode;
use Sabre\DAV\PropFind;
use Sabre\DAV\Server;
@@ -32,6 +35,7 @@ class TrashbinPlugin extends ServerPlugin {
public function __construct(
private IPreview $previewManager,
+ private View $view,
) {
}
@@ -40,6 +44,7 @@ class TrashbinPlugin extends ServerPlugin {
$this->server->on('propFind', [$this, 'propFind']);
$this->server->on('afterMethod:GET', [$this,'httpGet']);
+ $this->server->on('beforeMove', [$this, 'beforeMove']);
}
@@ -129,4 +134,47 @@ class TrashbinPlugin extends ServerPlugin {
$response->addHeader('Content-Disposition', 'attachment; filename="' . $node->getFilename() . '"');
}
}
+
+ /**
+ * Check if a user has available space before attempting to
+ * restore from trashbin unless they have unlimited quota.
+ *
+ * @param string $sourcePath
+ * @param string $destinationPath
+ * @return bool
+ */
+ public function beforeMove(string $sourcePath, string $destinationPath): bool {
+ try {
+ $node = $this->server->tree->getNodeForPath($sourcePath);
+ $destinationNodeParent = $this->server->tree->getNodeForPath(dirname($destinationPath));
+ } catch (\Sabre\DAV\Exception $e) {
+ \OCP\Server::get(LoggerInterface::class)
+ ->error($e->getMessage(), ['app' => 'files_trashbin', 'exception' => $e]);
+ return true;
+ }
+
+ // Check if a file is being restored before proceeding
+ if (!$node instanceof ITrash || !$destinationNodeParent instanceof RestoreFolder) {
+ return true;
+ }
+
+ $fileInfo = $node->getFileInfo();
+ if (!$fileInfo instanceof ITrashItem) {
+ return true;
+ }
+ $restoreFolder = dirname($fileInfo->getOriginalLocation());
+ $freeSpace = $this->view->free_space($restoreFolder);
+ if ($freeSpace === FileInfo::SPACE_NOT_COMPUTED ||
+ $freeSpace === FileInfo::SPACE_UNKNOWN ||
+ $freeSpace === FileInfo::SPACE_UNLIMITED) {
+ return true;
+ }
+ $filesize = $fileInfo->getSize();
+ if ($freeSpace < $filesize) {
+ $this->server->httpResponse->setStatus(507);
+ return false;
+ }
+
+ return true;
+ }
}
diff --git a/apps/files_trashbin/src/files_actions/restoreAction.ts b/apps/files_trashbin/src/files_actions/restoreAction.ts
index 9af0a13a2b0..3aeeceea7b3 100644
--- a/apps/files_trashbin/src/files_actions/restoreAction.ts
+++ b/apps/files_trashbin/src/files_actions/restoreAction.ts
@@ -3,6 +3,7 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { getCurrentUser } from '@nextcloud/auth'
+import { showError } from '@nextcloud/dialogs'
import { emit } from '@nextcloud/event-bus'
import { Permission, Node, View, FileAction } from '@nextcloud/files'
import { t } from '@nextcloud/l10n'
@@ -52,6 +53,9 @@ export const restoreAction = new FileAction({
emit('files:node:deleted', node)
return true
} catch (error) {
+ if (error.response?.status === 507) {
+ showError(t('files_trashbin', 'Not enough free space to restore the file/folder'))
+ }
logger.error('Failed to restore node', { error, node })
return false
}
diff --git a/apps/files_trashbin/src/files_views/columns.spec.ts b/apps/files_trashbin/src/files_views/columns.spec.ts
index 12fb1628bb3..a22ef17ea6b 100644
--- a/apps/files_trashbin/src/files_views/columns.spec.ts
+++ b/apps/files_trashbin/src/files_views/columns.spec.ts
@@ -9,6 +9,12 @@ import { deleted, deletedBy, originalLocation } from './columns.ts'
import { trashbinView } from './trashbinView.ts'
import * as ncAuth from '@nextcloud/auth'
+vi.mock('@nextcloud/l10n', async (originalModule) => ({
+ ...(await originalModule()),
+ getLanguage: () => 'en',
+ getCanonicalLocale: () => 'en-US',
+}))
+
describe('files_trashbin: file list columns', () => {
describe('column: original location', () => {
@@ -100,19 +106,19 @@ describe('files_trashbin: file list columns', () => {
})
it('renders a node with deletion date', () => {
- const node = new File({ owner: 'test', source: 'https://example.com/remote.php/dav/files/test/a.txt', mime: 'text/plain', attributes: { 'trashbin-deletion-time': 1741684522 } })
+ const node = new File({ owner: 'test', source: 'https://example.com/remote.php/dav/files/test/a.txt', mime: 'text/plain', attributes: { 'trashbin-deletion-time': (Date.now() / 1000) - 120 } })
const el: HTMLElement = deleted.render(node, trashbinView)
expect(el).toBeInstanceOf(HTMLElement)
- expect(el.textContent).toBe('a minute ago')
- expect(el.title).toBe('March 11, 2025 9:15 AM')
+ expect(el.textContent).toBe('2 minutes ago')
+ expect(el.title).toBe('March 11, 2025 at 9:14 AM')
})
it('renders a node when deletion date is missing and falls back to mtime', () => {
- const node = new File({ owner: 'test', source: 'https://example.com/remote.php/dav/files/test/a.txt', mime: 'text/plain', mtime: new Date(1741684522000) })
+ const node = new File({ owner: 'test', source: 'https://example.com/remote.php/dav/files/test/a.txt', mime: 'text/plain', mtime: new Date(Date.now() - 60000) })
const el: HTMLElement = deleted.render(node, trashbinView)
expect(el).toBeInstanceOf(HTMLElement)
- expect(el.textContent).toBe('a minute ago')
- expect(el.title).toBe('March 11, 2025 9:15 AM')
+ expect(el.textContent).toBe('1 minute ago')
+ expect(el.title).toBe('March 11, 2025 at 9:15 AM')
})
it('renders a node when deletion date is missing', () => {
diff --git a/apps/files_trashbin/src/files_views/columns.ts b/apps/files_trashbin/src/files_views/columns.ts
index 78c5d368878..085d22c67a6 100644
--- a/apps/files_trashbin/src/files_views/columns.ts
+++ b/apps/files_trashbin/src/files_views/columns.ts
@@ -3,10 +3,9 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import moment from '@nextcloud/moment'
import { getCurrentUser } from '@nextcloud/auth'
import { Column, Node } from '@nextcloud/files'
-import { getCanonicalLocale, getLanguage, translate as t } from '@nextcloud/l10n'
+import { formatRelativeTime, getCanonicalLocale, getLanguage, t } from '@nextcloud/l10n'
import { dirname } from '@nextcloud/paths'
import Vue from 'vue'
@@ -67,8 +66,11 @@ export const deleted = new Column({
const deletionTime = node.attributes?.['trashbin-deletion-time'] || ((node?.mtime?.getTime() ?? 0) / 1000)
const span = document.createElement('span')
if (deletionTime) {
- span.title = moment.unix(deletionTime).format('LLL')
- span.textContent = moment.unix(deletionTime).fromNow()
+ const formatter = Intl.DateTimeFormat([getCanonicalLocale()], { dateStyle: 'long', timeStyle: 'short' })
+ const timestamp = new Date(deletionTime * 1000)
+
+ span.title = formatter.format(timestamp)
+ span.textContent = formatRelativeTime(timestamp, { ignoreSeconds: t('files', 'few seconds ago') })
return span
}
diff --git a/apps/files_trashbin/tests/BackgroundJob/ExpireTrashTest.php b/apps/files_trashbin/tests/BackgroundJob/ExpireTrashTest.php
index ee833e6beb8..9468fb7add0 100644
--- a/apps/files_trashbin/tests/BackgroundJob/ExpireTrashTest.php
+++ b/apps/files_trashbin/tests/BackgroundJob/ExpireTrashTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,23 +20,12 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class ExpireTrashTest extends TestCase {
- /** @var IAppConfig&MockObject */
- private $appConfig;
-
- /** @var IUserManager&MockObject */
- private $userManager;
-
- /** @var Expiration&MockObject */
- private $expiration;
-
- /** @var IJobList&MockObject */
- private $jobList;
-
- /** @var LoggerInterface&MockObject */
- private $logger;
-
- /** @var ITimeFactory&MockObject */
- private $time;
+ private IAppConfig&MockObject $appConfig;
+ private IUserManager&MockObject $userManager;
+ private Expiration&MockObject $expiration;
+ private IJobList&MockObject $jobList;
+ private LoggerInterface&MockObject $logger;
+ private ITimeFactory&MockObject $time;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/files_trashbin/tests/CapabilitiesTest.php b/apps/files_trashbin/tests/CapabilitiesTest.php
index a5e4e79aefd..1c460cc5665 100644
--- a/apps/files_trashbin/tests/CapabilitiesTest.php
+++ b/apps/files_trashbin/tests/CapabilitiesTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,9 +11,7 @@ use OCA\Files_Trashbin\Capabilities;
use Test\TestCase;
class CapabilitiesTest extends TestCase {
-
- /** @var Capabilities */
- private $capabilities;
+ private Capabilities $capabilities;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/files_trashbin/tests/Command/CleanUpTest.php b/apps/files_trashbin/tests/Command/CleanUpTest.php
index 25d38752e91..3dce8f0c92e 100644
--- a/apps/files_trashbin/tests/Command/CleanUpTest.php
+++ b/apps/files_trashbin/tests/Command/CleanUpTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -6,12 +8,13 @@
*/
namespace OCA\Files_Trashbin\Tests\Command;
-use OC\User\Manager;
use OCA\Files_Trashbin\Command\CleanUp;
use OCP\Files\IRootFolder;
use OCP\IDBConnection;
+use OCP\IUserManager;
use OCP\Server;
use OCP\UserInterface;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\Console\Exception\InvalidOptionException;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\NullOutput;
@@ -26,31 +29,17 @@ use Test\TestCase;
* @package OCA\Files_Trashbin\Tests\Command
*/
class CleanUpTest extends TestCase {
-
- /** @var CleanUp */
- protected $cleanup;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | Manager */
- protected $userManager;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IRootFolder */
- protected $rootFolder;
-
- /** @var IDBConnection */
- protected $dbConnection;
-
- /** @var string */
- protected $trashTable = 'files_trash';
-
- /** @var string */
- protected $user0 = 'user0';
+ protected IUserManager&MockObject $userManager;
+ protected IRootFolder&MockObject $rootFolder;
+ protected IDBConnection $dbConnection;
+ protected CleanUp $cleanup;
+ protected string $trashTable = 'files_trash';
+ protected string $user0 = 'user0';
protected function setUp(): void {
parent::setUp();
- $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')
- ->disableOriginalConstructor()->getMock();
- $this->userManager = $this->getMockBuilder('OC\User\Manager')
- ->disableOriginalConstructor()->getMock();
+ $this->rootFolder = $this->createMock(IRootFolder::class);
+ $this->userManager = $this->createMock(IUserManager::class);
$this->dbConnection = Server::get(IDBConnection::class);
@@ -60,9 +49,9 @@ class CleanUpTest extends TestCase {
/**
* populate files_trash table with 10 dummy values
*/
- public function initTable() {
+ public function initTable(): void {
$query = $this->dbConnection->getQueryBuilder();
- $query->delete($this->trashTable)->execute();
+ $query->delete($this->trashTable)->executeStatement();
for ($i = 0; $i < 10; $i++) {
$query->insert($this->trashTable)
->values([
@@ -70,19 +59,18 @@ class CleanUpTest extends TestCase {
'timestamp' => $query->expr()->literal($i),
'location' => $query->expr()->literal('.'),
'user' => $query->expr()->literal('user' . $i % 2)
- ])->execute();
+ ])->executeStatement();
}
$getAllQuery = $this->dbConnection->getQueryBuilder();
$result = $getAllQuery->select('id')
->from($this->trashTable)
- ->execute()
+ ->executeQuery()
->fetchAll();
- $this->assertSame(10, count($result));
+ $this->assertCount(10, $result);
}
/**
* @dataProvider dataTestRemoveDeletedFiles
- * @param boolean $nodeExists
*/
public function testRemoveDeletedFiles(bool $nodeExists): void {
$this->initTable();
@@ -101,7 +89,7 @@ class CleanUpTest extends TestCase {
$this->rootFolder->expects($this->never())->method('get');
$this->rootFolder->expects($this->never())->method('delete');
}
- $this->invokePrivate($this->cleanup, 'removeDeletedFiles', [$this->user0, new NullOutput(), false]);
+ self::invokePrivate($this->cleanup, 'removeDeletedFiles', [$this->user0, new NullOutput(), false]);
if ($nodeExists) {
// if the delete operation was executed only files from user1
@@ -110,11 +98,11 @@ class CleanUpTest extends TestCase {
$query->select('user')
->from($this->trashTable);
- $qResult = $query->execute();
+ $qResult = $query->executeQuery();
$result = $qResult->fetchAll();
$qResult->closeCursor();
- $this->assertSame(5, count($result));
+ $this->assertCount(5, $result);
foreach ($result as $r) {
$this->assertSame('user1', $r['user']);
}
@@ -124,12 +112,12 @@ class CleanUpTest extends TestCase {
$getAllQuery = $this->dbConnection->getQueryBuilder();
$result = $getAllQuery->select('id')
->from($this->trashTable)
- ->execute()
+ ->executeQuery()
->fetchAll();
- $this->assertSame(10, count($result));
+ $this->assertCount(10, $result);
}
}
- public function dataTestRemoveDeletedFiles() {
+ public static function dataTestRemoveDeletedFiles(): array {
return [
[true],
[false]
@@ -141,8 +129,8 @@ class CleanUpTest extends TestCase {
*/
public function testExecuteDeleteListOfUsers(): void {
$userIds = ['user1', 'user2', 'user3'];
- $instance = $this->getMockBuilder('OCA\Files_Trashbin\Command\CleanUp')
- ->setMethods(['removeDeletedFiles'])
+ $instance = $this->getMockBuilder(\OCA\Files_Trashbin\Command\CleanUp::class)
+ ->onlyMethods(['removeDeletedFiles'])
->setConstructorArgs([$this->rootFolder, $this->userManager, $this->dbConnection])
->getMock();
$instance->expects($this->exactly(count($userIds)))
@@ -152,8 +140,7 @@ class CleanUpTest extends TestCase {
});
$this->userManager->expects($this->exactly(count($userIds)))
->method('userExists')->willReturn(true);
- $inputInterface = $this->getMockBuilder('\Symfony\Component\Console\Input\InputInterface')
- ->disableOriginalConstructor()->getMock();
+ $inputInterface = $this->createMock(\Symfony\Component\Console\Input\InputInterface::class);
$inputInterface->method('getArgument')
->with('user_id')
->willReturn($userIds);
@@ -162,9 +149,8 @@ class CleanUpTest extends TestCase {
['all-users', false],
['verbose', false],
]);
- $outputInterface = $this->getMockBuilder('\Symfony\Component\Console\Output\OutputInterface')
- ->disableOriginalConstructor()->getMock();
- $this->invokePrivate($instance, 'execute', [$inputInterface, $outputInterface]);
+ $outputInterface = $this->createMock(\Symfony\Component\Console\Output\OutputInterface::class);
+ self::invokePrivate($instance, 'execute', [$inputInterface, $outputInterface]);
}
/**
@@ -173,8 +159,8 @@ class CleanUpTest extends TestCase {
public function testExecuteAllUsers(): void {
$userIds = [];
$backendUsers = ['user1', 'user2'];
- $instance = $this->getMockBuilder('OCA\Files_Trashbin\Command\CleanUp')
- ->setMethods(['removeDeletedFiles'])
+ $instance = $this->getMockBuilder(\OCA\Files_Trashbin\Command\CleanUp::class)
+ ->onlyMethods(['removeDeletedFiles'])
->setConstructorArgs([$this->rootFolder, $this->userManager, $this->dbConnection])
->getMock();
$backend = $this->createMock(UserInterface::class);
@@ -199,7 +185,7 @@ class CleanUpTest extends TestCase {
$this->userManager
->method('getBackends')
->willReturn([$backend]);
- $this->invokePrivate($instance, 'execute', [$inputInterface, $outputInterface]);
+ self::invokePrivate($instance, 'execute', [$inputInterface, $outputInterface]);
}
public function testExecuteNoUsersAndNoAllUsers(): void {
@@ -217,7 +203,7 @@ class CleanUpTest extends TestCase {
$this->expectException(InvalidOptionException::class);
$this->expectExceptionMessage('Either specify a user_id or --all-users');
- $this->invokePrivate($this->cleanup, 'execute', [$inputInterface, $outputInterface]);
+ self::invokePrivate($this->cleanup, 'execute', [$inputInterface, $outputInterface]);
}
public function testExecuteUsersAndAllUsers(): void {
@@ -235,6 +221,6 @@ class CleanUpTest extends TestCase {
$this->expectException(InvalidOptionException::class);
$this->expectExceptionMessage('Either specify a user_id or --all-users');
- $this->invokePrivate($this->cleanup, 'execute', [$inputInterface, $outputInterface]);
+ self::invokePrivate($this->cleanup, 'execute', [$inputInterface, $outputInterface]);
}
}
diff --git a/apps/files_trashbin/tests/Command/ExpireTest.php b/apps/files_trashbin/tests/Command/ExpireTest.php
index 4402e07bbb0..5a66dac8c6e 100644
--- a/apps/files_trashbin/tests/Command/ExpireTest.php
+++ b/apps/files_trashbin/tests/Command/ExpireTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_trashbin/tests/Controller/PreviewControllerTest.php b/apps/files_trashbin/tests/Controller/PreviewControllerTest.php
index 1076870bb9f..bb951c9c8c7 100644
--- a/apps/files_trashbin/tests/Controller/PreviewControllerTest.php
+++ b/apps/files_trashbin/tests/Controller/PreviewControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,32 +22,18 @@ use OCP\IPreview;
use OCP\IRequest;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class PreviewControllerTest extends TestCase {
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var string */
- private $userId;
-
- /** @var IMimeTypeDetector|\PHPUnit\Framework\MockObject\MockObject */
- private $mimeTypeDetector;
-
- /** @var IPreview|\PHPUnit\Framework\MockObject\MockObject */
- private $previewManager;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $time;
-
- /** @var PreviewController */
- private $controller;
-
- /** @var ITrashManager|\PHPUnit\Framework\MockObject\MockObject */
- private $trashManager;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
+ private IRootFolder&MockObject $rootFolder;
+ private string $userId;
+ private IMimeTypeDetector&MockObject $mimeTypeDetector;
+ private IPreview&MockObject $previewManager;
+ private ITimeFactory&MockObject $time;
+ private ITrashManager&MockObject $trashManager;
+ private IUserSession&MockObject $userSession;
+ private PreviewController $controller;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/files_trashbin/tests/ExpirationTest.php b/apps/files_trashbin/tests/ExpirationTest.php
index 7f026c16806..aab07de8162 100644
--- a/apps/files_trashbin/tests/ExpirationTest.php
+++ b/apps/files_trashbin/tests/ExpirationTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -16,7 +18,7 @@ class ExpirationTest extends \Test\TestCase {
public const FAKE_TIME_NOW = 1000000;
- public function expirationData() {
+ public static function expirationData(): array {
$today = 100 * self::SECONDS_PER_DAY;
$back10Days = (100 - 10) * self::SECONDS_PER_DAY;
$back20Days = (100 - 20) * self::SECONDS_PER_DAY;
@@ -82,14 +84,8 @@ class ExpirationTest extends \Test\TestCase {
/**
* @dataProvider expirationData
- *
- * @param string $retentionObligation
- * @param int $timeNow
- * @param int $timestamp
- * @param bool $quotaExceeded
- * @param string $expectedResult
*/
- public function testExpiration($retentionObligation, $timeNow, $timestamp, $quotaExceeded, $expectedResult): void {
+ public function testExpiration(string $retentionObligation, int $timeNow, int $timestamp, bool $quotaExceeded, bool $expectedResult): void {
$mockedConfig = $this->getMockedConfig($retentionObligation);
$mockedTimeFactory = $this->getMockedTimeFactory($timeNow);
@@ -100,7 +96,7 @@ class ExpirationTest extends \Test\TestCase {
}
- public function timestampTestData(): array {
+ public static function timestampTestData(): array {
return [
[ 'disabled', false],
[ 'auto', false ],
@@ -116,11 +112,8 @@ class ExpirationTest extends \Test\TestCase {
/**
* @dataProvider timestampTestData
- *
- * @param string $configValue
- * @param int $expectedMaxAgeTimestamp
*/
- public function testGetMaxAgeAsTimestamp($configValue, $expectedMaxAgeTimestamp): void {
+ public function testGetMaxAgeAsTimestamp(string $configValue, bool|int $expectedMaxAgeTimestamp): void {
$mockedConfig = $this->getMockedConfig($configValue);
$mockedTimeFactory = $this->getMockedTimeFactory(
self::FAKE_TIME_NOW
@@ -132,10 +125,9 @@ class ExpirationTest extends \Test\TestCase {
}
/**
- * @param int $time
* @return ITimeFactory|MockObject
*/
- private function getMockedTimeFactory($time) {
+ private function getMockedTimeFactory(int $time) {
$mockedTimeFactory = $this->createMock(ITimeFactory::class);
$mockedTimeFactory->expects($this->any())
->method('getTime')
@@ -145,10 +137,9 @@ class ExpirationTest extends \Test\TestCase {
}
/**
- * @param string $returnValue
* @return IConfig|MockObject
*/
- private function getMockedConfig($returnValue) {
+ private function getMockedConfig(string $returnValue) {
$mockedConfig = $this->createMock(IConfig::class);
$mockedConfig->expects($this->any())
->method('getSystemValue')
diff --git a/apps/files_trashbin/tests/Sabre/TrashbinPluginTest.php b/apps/files_trashbin/tests/Sabre/TrashbinPluginTest.php
new file mode 100644
index 00000000000..6c566afc738
--- /dev/null
+++ b/apps/files_trashbin/tests/Sabre/TrashbinPluginTest.php
@@ -0,0 +1,72 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Files_Trashbin\Tests\Sabre;
+
+use OC\Files\FileInfo;
+use OC\Files\View;
+use OCA\Files_Trashbin\Sabre\ITrash;
+use OCA\Files_Trashbin\Sabre\RestoreFolder;
+use OCA\Files_Trashbin\Sabre\TrashbinPlugin;
+use OCA\Files_Trashbin\Trash\ITrashItem;
+use OCP\IPreview;
+use Sabre\DAV\Server;
+use Sabre\DAV\Tree;
+use Test\TestCase;
+
+class TrashbinPluginTest extends TestCase {
+ private Server $server;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $tree = $this->createMock(Tree::class);
+ $this->server = new Server($tree);
+ }
+
+ /**
+ * @dataProvider quotaProvider
+ */
+ public function testQuota(int $quota, int $fileSize, bool $expectedResult): void {
+ $fileInfo = $this->createMock(ITrashItem::class);
+ $fileInfo->method('getSize')
+ ->willReturn($fileSize);
+
+ $trashNode = $this->createMock(ITrash::class);
+ $trashNode->method('getFileInfo')
+ ->willReturn($fileInfo);
+
+ $restoreNode = $this->createMock(RestoreFolder::class);
+
+ $this->server->tree->method('getNodeForPath')
+ ->willReturn($trashNode, $restoreNode);
+
+ $previewManager = $this->createMock(IPreview::class);
+
+ $view = $this->createMock(View::class);
+ $view->method('free_space')
+ ->willReturn($quota);
+
+ $plugin = new TrashbinPlugin($previewManager, $view);
+ $plugin->initialize($this->server);
+
+ $sourcePath = 'trashbin/test/trash/file1';
+ $destinationPath = 'trashbin/test/restore/file1';
+ $this->assertEquals($expectedResult, $plugin->beforeMove($sourcePath, $destinationPath));
+ }
+
+ public static function quotaProvider(): array {
+ return [
+ [ 1024, 512, true ],
+ [ 512, 513, false ],
+ [ FileInfo::SPACE_NOT_COMPUTED, 1024, true ],
+ [ FileInfo::SPACE_UNKNOWN, 1024, true ],
+ [ FileInfo::SPACE_UNLIMITED, 1024, true ]
+ ];
+ }
+}
diff --git a/apps/files_trashbin/tests/StorageTest.php b/apps/files_trashbin/tests/StorageTest.php
index 5c73e47b307..2b2508a358b 100644
--- a/apps/files_trashbin/tests/StorageTest.php
+++ b/apps/files_trashbin/tests/StorageTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -27,6 +29,7 @@ use OCP\IUserManager;
use OCP\Lock\ILockingProvider;
use OCP\Server;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\Traits\MountProviderTrait;
@@ -50,20 +53,9 @@ class TemporaryNoCross extends Temporary {
class StorageTest extends \Test\TestCase {
use MountProviderTrait;
- /**
- * @var string
- */
- private $user;
-
- /**
- * @var View
- */
- private $rootView;
-
- /**
- * @var View
- */
- private $userView;
+ private string $user;
+ private View $rootView;
+ private View $userView;
// 239 chars so appended timestamp of 12 chars will exceed max length of 250 chars
private const LONG_FILENAME = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt';
@@ -121,7 +113,7 @@ class StorageTest extends \Test\TestCase {
// check if file is in trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('test.txt', substr($name, 0, strrpos($name, '.')));
}
@@ -138,7 +130,7 @@ class StorageTest extends \Test\TestCase {
// check if folder is in trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('folder', substr($name, 0, strrpos($name, '.')));
@@ -162,7 +154,7 @@ class StorageTest extends \Test\TestCase {
// check if file is in trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals($truncatedFilename, substr($name, 0, strrpos($name, '.')));
}
@@ -181,7 +173,7 @@ class StorageTest extends \Test\TestCase {
// check if file is in trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals($truncatedFilename, substr($name, 0, strrpos($name, '.')));
}
@@ -207,7 +199,7 @@ class StorageTest extends \Test\TestCase {
// check if file is in trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('subfile.txt', substr($name, 0, strrpos($name, '.')));
}
@@ -234,12 +226,12 @@ class StorageTest extends \Test\TestCase {
// check if folder is in trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('folder', substr($name, 0, strrpos($name, '.')));
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/' . $name . '/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('subfile.txt', $name);
}
@@ -262,13 +254,13 @@ class StorageTest extends \Test\TestCase {
// check if versions are in trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
// versions deleted
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
}
/**
@@ -279,7 +271,7 @@ class StorageTest extends \Test\TestCase {
$this->userView->file_put_contents('folder/inside.txt', 'v1');
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/folder/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$this->userView->rmdir('folder');
@@ -289,19 +281,19 @@ class StorageTest extends \Test\TestCase {
// check if versions are in trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('folder.d', substr($name, 0, strlen('folder.d')));
// check if versions are in trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions/' . $name . '/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('inside.txt.v', substr($name, 0, strlen('inside.txt.v')));
// versions deleted
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/folder/');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
}
/**
@@ -314,12 +306,12 @@ class StorageTest extends \Test\TestCase {
$this->userView->file_put_contents('share/test.txt', 'v2');
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/share/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$recipientUser = $this->getUniqueId('recipient_');
Server::get(IUserManager::class)->createUser($recipientUser, $recipientUser);
- $node = \OC::$server->getUserFolder($this->user)->get('share');
+ $node = \OCP\Server::get(IRootFolder::class)->getUserFolder($this->user)->get('share');
$share = Server::get(\OCP\Share\IManager::class)->newShare();
$share->setNode($node)
->setShareType(IShare::TYPE_USER)
@@ -341,18 +333,18 @@ class StorageTest extends \Test\TestCase {
// check if versions are in trashbin for both users
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions');
- $this->assertEquals(1, count($results), 'Versions in owner\'s trashbin');
+ $this->assertCount(1, $results, 'Versions in owner\'s trashbin');
$name = $results[0]->getName();
$this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
$results = $this->rootView->getDirectoryContent($recipientUser . '/files_trashbin/versions');
- $this->assertEquals(1, count($results), 'Versions in recipient\'s trashbin');
+ $this->assertCount(1, $results, 'Versions in recipient\'s trashbin');
$name = $results[0]->getName();
$this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
// versions deleted
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/share/');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
}
/**
@@ -366,12 +358,11 @@ class StorageTest extends \Test\TestCase {
$this->userView->file_put_contents('share/folder/test.txt', 'v2');
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/share/folder/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$recipientUser = $this->getUniqueId('recipient_');
Server::get(IUserManager::class)->createUser($recipientUser, $recipientUser);
-
- $node = \OC::$server->getUserFolder($this->user)->get('share');
+ $node = \OCP\Server::get(IRootFolder::class)->getUserFolder($this->user)->get('share');
$share = Server::get(\OCP\Share\IManager::class)->newShare();
$share->setNode($node)
->setShareType(IShare::TYPE_USER)
@@ -393,31 +384,31 @@ class StorageTest extends \Test\TestCase {
// check if versions are in trashbin for owner
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('folder.d', substr($name, 0, strlen('folder.d')));
// check if file versions are in trashbin for owner
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions/' . $name . '/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
// check if versions are in trashbin for recipient
$results = $this->rootView->getDirectoryContent($recipientUser . '/files_trashbin/versions');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('folder.d', substr($name, 0, strlen('folder.d')));
// check if file versions are in trashbin for recipient
$results = $this->rootView->getDirectoryContent($recipientUser . '/files_trashbin/versions/' . $name . '/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
$name = $results[0]->getName();
$this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
// versions deleted
$results = $this->rootView->getDirectoryContent($recipientUser . '/files_versions/share/folder/');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
}
/**
@@ -433,10 +424,10 @@ class StorageTest extends \Test\TestCase {
$this->userView->file_put_contents('test.txt', 'v1');
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
// move to another storage
$this->userView->rename('test.txt', 'substorage/test.txt');
@@ -448,15 +439,15 @@ class StorageTest extends \Test\TestCase {
// versions were moved too
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/substorage');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
// check that nothing got trashed by the rename's unlink() call
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
// check that versions were moved and not trashed
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions/');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
}
/**
@@ -472,10 +463,10 @@ class StorageTest extends \Test\TestCase {
$this->userView->file_put_contents('folder/inside.txt', 'v1');
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/folder/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
// move to another storage
$this->userView->rename('folder', 'substorage/folder');
@@ -487,15 +478,15 @@ class StorageTest extends \Test\TestCase {
// versions were moved too
$results = $this->rootView->getDirectoryContent($this->user . '/files_versions/substorage/folder/');
- $this->assertEquals(1, count($results));
+ $this->assertCount(1, $results);
// check that nothing got trashed by the rename's unlink() call
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
// check that versions were moved and not trashed
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions/');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
}
/**
@@ -503,11 +494,11 @@ class StorageTest extends \Test\TestCase {
*/
public function testSingleStorageDeleteFileFail(): void {
/**
- * @var Temporary|\PHPUnit\Framework\MockObject\MockObject $storage
+ * @var Temporary&MockObject $storage
*/
- $storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
+ $storage = $this->getMockBuilder(\OC\Files\Storage\Temporary::class)
->setConstructorArgs([[]])
- ->setMethods(['rename', 'unlink', 'moveFromStorage'])
+ ->onlyMethods(['rename', 'unlink', 'moveFromStorage'])
->getMock();
$storage->expects($this->any())
@@ -532,7 +523,7 @@ class StorageTest extends \Test\TestCase {
// file should not be in the trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
}
/**
@@ -540,11 +531,11 @@ class StorageTest extends \Test\TestCase {
*/
public function testSingleStorageDeleteFolderFail(): void {
/**
- * @var Temporary|\PHPUnit\Framework\MockObject\MockObject $storage
+ * @var Temporary&MockObject $storage
*/
- $storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
+ $storage = $this->getMockBuilder(\OC\Files\Storage\Temporary::class)
->setConstructorArgs([[]])
- ->setMethods(['rename', 'unlink', 'rmdir'])
+ ->onlyMethods(['rename', 'unlink', 'rmdir'])
->getMock();
$storage->expects($this->any())
@@ -566,18 +557,17 @@ class StorageTest extends \Test\TestCase {
// file should not be in the trashbin
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/');
- $this->assertEquals(0, count($results));
+ $this->assertCount(0, $results);
}
/**
* @dataProvider dataTestShouldMoveToTrash
*/
- public function testShouldMoveToTrash($mountPoint, $path, $userExists, $appDisablesTrash, $expected): void {
+ public function testShouldMoveToTrash(string $mountPoint, string $path, bool $userExists, bool $appDisablesTrash, bool $expected): void {
$fileID = 1;
$cache = $this->createMock(ICache::class);
$cache->expects($this->any())->method('getId')->willReturn($fileID);
- $tmpStorage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
- ->disableOriginalConstructor()->getMock($cache);
+ $tmpStorage = $this->createMock(\OC\Files\Storage\Temporary::class);
$tmpStorage->expects($this->any())->method('getCache')->willReturn($cache);
$userManager = $this->getMockBuilder(IUserManager::class)
->disableOriginalConstructor()->getMock();
@@ -606,7 +596,9 @@ class StorageTest extends \Test\TestCase {
$eventDispatcher,
$rootFolder
]
- )->setMethods(['createMoveToTrashEvent'])->getMock();
+ )
+ ->onlyMethods(['createMoveToTrashEvent'])
+ ->getMock();
$storage->expects($this->any())->method('createMoveToTrashEvent')->with($node)
->willReturn($event);
@@ -616,7 +608,7 @@ class StorageTest extends \Test\TestCase {
);
}
- public function dataTestShouldMoveToTrash() {
+ public static function dataTestShouldMoveToTrash(): array {
return [
['/schiesbn/', '/files/test.txt', true, false, true],
['/schiesbn/', '/files/test.txt', false, false, false],
diff --git a/apps/files_trashbin/tests/TrashbinTest.php b/apps/files_trashbin/tests/TrashbinTest.php
index d16e90f74e9..d8486ccbdc2 100644
--- a/apps/files_trashbin/tests/TrashbinTest.php
+++ b/apps/files_trashbin/tests/TrashbinTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -12,6 +14,7 @@ use OC\Files\Filesystem;
use OC\Files\Storage\Local;
use OC\Files\View;
use OC\SystemConfig;
+use OC\User\Database;
use OCA\Files_Sharing\AppInfo\Application;
use OCA\Files_Trashbin\AppInfo\Application as TrashbinApplication;
use OCA\Files_Trashbin\Expiration;
@@ -21,6 +24,7 @@ use OCP\App\IAppManager;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Constants;
use OCP\Files\FileInfo;
+use OCP\Files\IRootFolder;
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IUserManager;
@@ -40,16 +44,8 @@ class TrashbinTest extends \Test\TestCase {
private $trashRoot2;
private static $rememberRetentionObligation;
-
- /**
- * @var bool
- */
- private static $trashBinStatus;
-
- /**
- * @var View
- */
- private $rootView;
+ private static bool $trashBinStatus;
+ private View $rootView;
public static function setUpBeforeClass(): void {
parent::setUpBeforeClass();
@@ -59,7 +55,7 @@ class TrashbinTest extends \Test\TestCase {
// reset backend
Server::get(IUserManager::class)->clearBackends();
- Server::get(IUserManager::class)->registerBackend(new \OC\User\Database());
+ Server::get(IUserManager::class)->registerBackend(new Database());
// clear share hooks
\OC_Hook::clear('OCP\\Share');
@@ -73,7 +69,7 @@ class TrashbinTest extends \Test\TestCase {
$config = Server::get(IConfig::class);
//configure trashbin
- self::$rememberRetentionObligation = $config->getSystemValue('trashbin_retention_obligation', Expiration::DEFAULT_RETENTION_OBLIGATION);
+ self::$rememberRetentionObligation = (string)$config->getSystemValue('trashbin_retention_obligation', Expiration::DEFAULT_RETENTION_OBLIGATION);
/** @var Expiration $expiration */
$expiration = Server::get(Expiration::class);
$expiration->setRetentionObligation('auto, 2');
@@ -115,8 +111,11 @@ class TrashbinTest extends \Test\TestCase {
Server::get(IAppManager::class)->enableApp('files_trashbin');
$config = Server::get(IConfig::class);
- $mockConfig = $this->createMock(IConfig::class);
- $mockConfig
+ $mockConfig = $this->getMockBuilder(AllConfig::class)
+ ->onlyMethods(['getSystemValue'])
+ ->setConstructorArgs([Server::get(SystemConfig::class)])
+ ->getMock();
+ $mockConfig->expects($this->any())
->method('getSystemValue')
->willReturnCallback(static function ($key, $default) use ($config) {
if ($key === 'filesystem_check_changes') {
@@ -125,16 +124,6 @@ class TrashbinTest extends \Test\TestCase {
return $config->getSystemValue($key, $default);
}
});
- $mockConfig
- ->method('getUserValue')
- ->willReturnCallback(static function ($userId, $appName, $key, $default = '') use ($config) {
- return $config->getUserValue($userId, $appName, $key, $default);
- });
- $mockConfig
- ->method('getAppValue')
- ->willReturnCallback(static function ($appName, $key, $default = '') use ($config) {
- return $config->getAppValue($appName, $key, $default);
- });
$this->overwriteService(AllConfig::class, $mockConfig);
$this->trashRoot1 = '/' . self::TEST_TRASHBIN_USER1 . '/files_trashbin';
@@ -196,14 +185,14 @@ class TrashbinTest extends \Test\TestCase {
// only file2.txt should be left
$remainingFiles = array_slice($manipulatedList, $count);
- $this->assertSame(1, count($remainingFiles));
+ $this->assertCount(1, $remainingFiles);
$remainingFile = reset($remainingFiles);
// TODO: failing test
#$this->assertSame('file2.txt', $remainingFile['name']);
// check that file1.txt and file3.txt was really deleted
$newTrashContent = Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1);
- $this->assertSame(1, count($newTrashContent));
+ $this->assertCount(1, $newTrashContent);
$element = reset($newTrashContent);
// TODO: failing test
#$this->assertSame('file2.txt', $element['name']);
@@ -291,8 +280,8 @@ class TrashbinTest extends \Test\TestCase {
* @param FileInfo[] $result
* @param string[] $expected
*/
- private function verifyArray($result, $expected) {
- $this->assertSame(count($expected), count($result));
+ private function verifyArray(array $result, array $expected): void {
+ $this->assertCount(count($expected), $result);
foreach ($expected as $expectedFile) {
$found = false;
foreach ($result as $fileInTrash) {
@@ -310,10 +299,8 @@ class TrashbinTest extends \Test\TestCase {
/**
* @param FileInfo[] $files
- * @param string $trashRoot
- * @param integer $expireDate
*/
- private function manipulateDeleteTime($files, $trashRoot, $expireDate) {
+ private function manipulateDeleteTime(array $files, string $trashRoot, int $expireDate): array {
$counter = 0;
foreach ($files as &$file) {
// modify every second file
@@ -367,7 +354,7 @@ class TrashbinTest extends \Test\TestCase {
* Test restoring a file
*/
public function testRestoreFileInRoot(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = \OCP\Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$file = $userFolder->newFile('file1.txt');
$file->putContent('foo');
@@ -399,7 +386,7 @@ class TrashbinTest extends \Test\TestCase {
* Test restoring a file in subfolder
*/
public function testRestoreFileInSubfolder(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = \OCP\Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -432,7 +419,7 @@ class TrashbinTest extends \Test\TestCase {
* Test restoring a folder
*/
public function testRestoreFolder(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = \OCP\Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -465,7 +452,7 @@ class TrashbinTest extends \Test\TestCase {
* Test restoring a file from inside a trashed folder
*/
public function testRestoreFileFromTrashedSubfolder(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = \OCP\Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -499,7 +486,7 @@ class TrashbinTest extends \Test\TestCase {
* The file should then land in the root.
*/
public function testRestoreFileWithMissingSourceFolder(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = \OCP\Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -536,7 +523,7 @@ class TrashbinTest extends \Test\TestCase {
* with the same name in the root folder
*/
public function testRestoreFileDoesNotOverwriteExistingInRoot(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = \OCP\Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$file = $userFolder->newFile('file1.txt');
$file->putContent('foo');
@@ -576,7 +563,7 @@ class TrashbinTest extends \Test\TestCase {
* with the same name in the source folder
*/
public function testRestoreFileDoesNotOverwriteExistingInSubfolder(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = \OCP\Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -630,7 +617,7 @@ class TrashbinTest extends \Test\TestCase {
* the file to root instead
*/
public function testRestoreFileIntoReadOnlySourceFolder(): void {
- $userFolder = \OC::$server->getUserFolder();
+ $userFolder = \OCP\Server::get(IRootFolder::class)->getUserFolder(self::TEST_TRASHBIN_USER1);
$folder = $userFolder->newFolder('folder');
$file = $folder->newFile('file1.txt');
$file->putContent('foo');
@@ -686,7 +673,7 @@ class TrashbinTest extends \Test\TestCase {
Filesystem::tearDown();
\OC_User::setUserId($user);
\OC_Util::setupFS($user);
- \OC::$server->getUserFolder($user);
+ \OCP\Server::get(IRootFolder::class)->getUserFolder($user);
}
}
diff --git a/apps/files_versions/appinfo/routes.php b/apps/files_versions/appinfo/routes.php
index b7058b222f8..11b5e0c783f 100644
--- a/apps/files_versions/appinfo/routes.php
+++ b/apps/files_versions/appinfo/routes.php
@@ -6,16 +6,6 @@
*/
namespace OCA\Files_Versions\AppInfo;
-use OCP\Route\IRouter;
-
-/** @var IRouter $this */
-$this->create('files_versions_download', 'apps/files_versions/download.php')
- ->actionInclude('files_versions/download.php');
-$this->create('files_versions_ajax_getVersions', 'apps/files_versions/ajax/getVersions.php')
- ->actionInclude('files_versions/ajax/getVersions.php');
-$this->create('files_versions_ajax_rollbackVersion', 'apps/files_versions/ajax/rollbackVersion.php')
- ->actionInclude('files_versions/ajax/rollbackVersion.php');
-
return [
'routes' => [
[
diff --git a/apps/files_versions/l10n/af.js b/apps/files_versions/l10n/af.js
deleted file mode 100644
index 7986f018877..00000000000
--- a/apps/files_versions/l10n/af.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Weergawes",
- "Failed to revert {file} to revision {timestamp}." : "Kon nie {file} na {timestamp} se hersiening terugstel nie.",
- "_%n byte_::_%n bytes_" : ["%n greep","%n grepe"],
- "Restore" : "Herstel"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/af.json b/apps/files_versions/l10n/af.json
deleted file mode 100644
index 23f30920b9e..00000000000
--- a/apps/files_versions/l10n/af.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Weergawes",
- "Failed to revert {file} to revision {timestamp}." : "Kon nie {file} na {timestamp} se hersiening terugstel nie.",
- "_%n byte_::_%n bytes_" : ["%n greep","%n grepe"],
- "Restore" : "Herstel"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/az.js b/apps/files_versions/l10n/az.js
deleted file mode 100644
index 34c9ddf1c9b..00000000000
--- a/apps/files_versions/l10n/az.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiyaları",
- "Failed to revert {file} to revision {timestamp}." : "{timestamp} yenidən baxılması üçün {file} geri qaytarmaq mümkün olmadı.",
- "Restore" : "Geri qaytar",
- "No other versions available" : "Başqa versiyalar mövcud deyil"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/az.json b/apps/files_versions/l10n/az.json
deleted file mode 100644
index dd67d6ca403..00000000000
--- a/apps/files_versions/l10n/az.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiyaları",
- "Failed to revert {file} to revision {timestamp}." : "{timestamp} yenidən baxılması üçün {file} geri qaytarmaq mümkün olmadı.",
- "Restore" : "Geri qaytar",
- "No other versions available" : "Başqa versiyalar mövcud deyil"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/bn_BD.js b/apps/files_versions/l10n/bn_BD.js
deleted file mode 100644
index 4466198c4f3..00000000000
--- a/apps/files_versions/l10n/bn_BD.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "সংষ্করন",
- "Failed to revert {file} to revision {timestamp}." : " {file} সংশোধিত {timestamp} এ ফিরে যেতে ব্যার্থ হলো।",
- "Restore" : "ফিরিয়ে দাও",
- "No other versions available" : "আর কোন সংষ্করণ প্রাপ্তব্য নয়"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/bn_BD.json b/apps/files_versions/l10n/bn_BD.json
deleted file mode 100644
index 09ac6eae066..00000000000
--- a/apps/files_versions/l10n/bn_BD.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "সংষ্করন",
- "Failed to revert {file} to revision {timestamp}." : " {file} সংশোধিত {timestamp} এ ফিরে যেতে ব্যার্থ হলো।",
- "Restore" : "ফিরিয়ে দাও",
- "No other versions available" : "আর কোন সংষ্করণ প্রাপ্তব্য নয়"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/br.js b/apps/files_versions/l10n/br.js
deleted file mode 100644
index 2b6cc838a27..00000000000
--- a/apps/files_versions/l10n/br.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Stumm",
- "This application automatically maintains older versions of files that are changed." : "Ar meziant-man a laosk en un doare otomatek stumm ar resrtoù kozh a vez cheñchet",
- "Version" : "Stumm",
- "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 doesn’t 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." : "Ar meziant a dalc'h en un doare otomatek stummoù kozh ar restroù cheñchet. P'az eo aotreet, un teuliad koachet a vez roet e pep teuliad an implijour evit gwarn stummoù kozh ar restr. An implijer a c'hel adkemer ur stumm kozh n'eus forz peseurt amzer dre an etrefas web. Ar meziant a ra war dro teuliad ar stummoù evit bezhañ sur ez eus traouac'h a cQuota gant an implijer.\n\t\tOuzhpenn ar stumm diskarzed, stumm ar meziant a ra ma ne vefe ket implijet muioc'h eget 50% eus a plass vak an implijer. M'a vez dibaset e vo lemmet gant ar meziant ar stumm kozhañ da gentañ. Muioc'h titouriù en dielvadur Versions. ",
- "Failed to revert {file} to revision {timestamp}." : "C'hwitet m ar mon en dro {file} evit adober {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n okted","%n okted","%n okted","%n okted","%n octed"],
- "Restore" : "Adkrouiñ",
- "No other versions available" : "Stumm all ebet kavet"
-},
-"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");
diff --git a/apps/files_versions/l10n/br.json b/apps/files_versions/l10n/br.json
deleted file mode 100644
index 5ebdc584bee..00000000000
--- a/apps/files_versions/l10n/br.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Versions" : "Stumm",
- "This application automatically maintains older versions of files that are changed." : "Ar meziant-man a laosk en un doare otomatek stumm ar resrtoù kozh a vez cheñchet",
- "Version" : "Stumm",
- "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 doesn’t 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." : "Ar meziant a dalc'h en un doare otomatek stummoù kozh ar restroù cheñchet. P'az eo aotreet, un teuliad koachet a vez roet e pep teuliad an implijour evit gwarn stummoù kozh ar restr. An implijer a c'hel adkemer ur stumm kozh n'eus forz peseurt amzer dre an etrefas web. Ar meziant a ra war dro teuliad ar stummoù evit bezhañ sur ez eus traouac'h a cQuota gant an implijer.\n\t\tOuzhpenn ar stumm diskarzed, stumm ar meziant a ra ma ne vefe ket implijet muioc'h eget 50% eus a plass vak an implijer. M'a vez dibaset e vo lemmet gant ar meziant ar stumm kozhañ da gentañ. Muioc'h titouriù en dielvadur Versions. ",
- "Failed to revert {file} to revision {timestamp}." : "C'hwitet m ar mon en dro {file} evit adober {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n okted","%n okted","%n okted","%n okted","%n octed"],
- "Restore" : "Adkrouiñ",
- "No other versions available" : "Stumm all ebet kavet"
-},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/bs.js b/apps/files_versions/l10n/bs.js
deleted file mode 100644
index 2a971f48b21..00000000000
--- a/apps/files_versions/l10n/bs.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Verzije",
- "Failed to revert {file} to revision {timestamp}." : "Nije uspelo vraćanje {file} na reviziju {timestamp}.",
- "Restore" : "Obnovi",
- "No other versions available" : "Druge verzije su nedostupne"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_versions/l10n/bs.json b/apps/files_versions/l10n/bs.json
deleted file mode 100644
index c4c20540e14..00000000000
--- a/apps/files_versions/l10n/bs.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Verzije",
- "Failed to revert {file} to revision {timestamp}." : "Nije uspelo vraćanje {file} na reviziju {timestamp}.",
- "Restore" : "Obnovi",
- "No other versions available" : "Druge verzije su nedostupne"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/cs.js b/apps/files_versions/l10n/cs.js
index 1cdc5564ede..b9192c54cf5 100644
--- a/apps/files_versions/l10n/cs.js
+++ b/apps/files_versions/l10n/cs.js
@@ -12,7 +12,7 @@ OC.L10N.register(
"Edit version name" : "Upravit název verze",
"Compare to current version" : "Porovnat se stávající verzí",
"Restore version" : "Obnovit verzi",
- "Download version" : "Stáhnout si verzi",
+ "Download version" : "Stáhnout verzi",
"Delete version" : "Smazat verzi",
"Cancel" : "Storno",
"Remove version name" : "Odebrat název verze",
diff --git a/apps/files_versions/l10n/cs.json b/apps/files_versions/l10n/cs.json
index 1ef843d2b90..1d47a9c69dc 100644
--- a/apps/files_versions/l10n/cs.json
+++ b/apps/files_versions/l10n/cs.json
@@ -10,7 +10,7 @@
"Edit version name" : "Upravit název verze",
"Compare to current version" : "Porovnat se stávající verzí",
"Restore version" : "Obnovit verzi",
- "Download version" : "Stáhnout si verzi",
+ "Download version" : "Stáhnout verzi",
"Delete version" : "Smazat verzi",
"Cancel" : "Storno",
"Remove version name" : "Odebrat název verze",
diff --git a/apps/files_versions/l10n/cy_GB.js b/apps/files_versions/l10n/cy_GB.js
deleted file mode 100644
index e5285e2e157..00000000000
--- a/apps/files_versions/l10n/cy_GB.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Restore" : "Adfer"
-},
-"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/apps/files_versions/l10n/cy_GB.json b/apps/files_versions/l10n/cy_GB.json
deleted file mode 100644
index 5ad23a5ac6f..00000000000
--- a/apps/files_versions/l10n/cy_GB.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Restore" : "Adfer"
-},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/eo.js b/apps/files_versions/l10n/eo.js
deleted file mode 100644
index 90c2546c3c2..00000000000
--- a/apps/files_versions/l10n/eo.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versioj",
- "This application automatically maintains older versions of files that are changed." : "Tiu ĉi aplikaĵo aŭtomate konservas antaŭajn versiojn de dosieroj, kiuj ŝanĝiĝis.",
- "Version" : "Versio",
- "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 doesn’t 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." : "Tiu ĉi aplikaĵo aŭtomate konservas antaŭajn versiojn de dosieroj, kiuj ŝanĝiĝis. Kiam ĝi estas ebligita, kaŝita dosierujo por enteni versiojn kreiĝas en ĉiu uzantodosierujo kaj uziĝas por konservi la antaŭajn versiojn de dosieroj. Uzanto povas reveni al antaŭa versio pere de la TTT-a fasado iam ajn, kaj la anstataŭigita dosiero iĝas versio. La aplikaĵo aŭtomate observas la versian dosierujon por garantii, ke la uzanto ne transpasu sian kvoton pro troaj versioj.\n\t\tKrom la eksvalidiĝo de versioj, la aplikaĵo neniam uzas pli ol 50 % de la aktuala libera spaco de la uzanto. Se la konservitaj versioj transpasos tiun limon, la aplikaĵo forigos la plej antaŭajn versiojn ĝis atingo de la limo. Pliaj informoj disponeblas en la dokumentaro pri Versioj.",
- "Failed to revert {file} to revision {timestamp}." : "Malsukcesis remeti {file} al la revizio {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajto","%n bajtoj"],
- "Restore" : "Restaŭri",
- "No other versions available" : "Neniu alia versio disponeblas"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/eo.json b/apps/files_versions/l10n/eo.json
deleted file mode 100644
index 8a76db600d7..00000000000
--- a/apps/files_versions/l10n/eo.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Versions" : "Versioj",
- "This application automatically maintains older versions of files that are changed." : "Tiu ĉi aplikaĵo aŭtomate konservas antaŭajn versiojn de dosieroj, kiuj ŝanĝiĝis.",
- "Version" : "Versio",
- "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 doesn’t 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." : "Tiu ĉi aplikaĵo aŭtomate konservas antaŭajn versiojn de dosieroj, kiuj ŝanĝiĝis. Kiam ĝi estas ebligita, kaŝita dosierujo por enteni versiojn kreiĝas en ĉiu uzantodosierujo kaj uziĝas por konservi la antaŭajn versiojn de dosieroj. Uzanto povas reveni al antaŭa versio pere de la TTT-a fasado iam ajn, kaj la anstataŭigita dosiero iĝas versio. La aplikaĵo aŭtomate observas la versian dosierujon por garantii, ke la uzanto ne transpasu sian kvoton pro troaj versioj.\n\t\tKrom la eksvalidiĝo de versioj, la aplikaĵo neniam uzas pli ol 50 % de la aktuala libera spaco de la uzanto. Se la konservitaj versioj transpasos tiun limon, la aplikaĵo forigos la plej antaŭajn versiojn ĝis atingo de la limo. Pliaj informoj disponeblas en la dokumentaro pri Versioj.",
- "Failed to revert {file} to revision {timestamp}." : "Malsukcesis remeti {file} al la revizio {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajto","%n bajtoj"],
- "Restore" : "Restaŭri",
- "No other versions available" : "Neniu alia versio disponeblas"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_419.js b/apps/files_versions/l10n/es_419.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_419.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_419.json b/apps/files_versions/l10n/es_419.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_419.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_AR.js b/apps/files_versions/l10n/es_AR.js
deleted file mode 100644
index 4f6573a0e18..00000000000
--- a/apps/files_versions/l10n/es_AR.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {archivo} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar",
- "No other versions available" : "No hay más versiones disponibles"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_AR.json b/apps/files_versions/l10n/es_AR.json
deleted file mode 100644
index b00cf1b0550..00000000000
--- a/apps/files_versions/l10n/es_AR.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {archivo} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar",
- "No other versions available" : "No hay más versiones disponibles"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_CL.js b/apps/files_versions/l10n/es_CL.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_CL.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_CL.json b/apps/files_versions/l10n/es_CL.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_CL.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_CO.js b/apps/files_versions/l10n/es_CO.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_CO.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_CO.json b/apps/files_versions/l10n/es_CO.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_CO.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_CR.js b/apps/files_versions/l10n/es_CR.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_CR.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_CR.json b/apps/files_versions/l10n/es_CR.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_CR.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_DO.js b/apps/files_versions/l10n/es_DO.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_DO.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_DO.json b/apps/files_versions/l10n/es_DO.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_DO.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_GT.js b/apps/files_versions/l10n/es_GT.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_GT.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_GT.json b/apps/files_versions/l10n/es_GT.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_GT.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_HN.js b/apps/files_versions/l10n/es_HN.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_HN.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_HN.json b/apps/files_versions/l10n/es_HN.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_HN.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_NI.js b/apps/files_versions/l10n/es_NI.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_NI.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_NI.json b/apps/files_versions/l10n/es_NI.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_NI.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_PA.js b/apps/files_versions/l10n/es_PA.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_PA.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_PA.json b/apps/files_versions/l10n/es_PA.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_PA.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_PE.js b/apps/files_versions/l10n/es_PE.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_PE.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_PE.json b/apps/files_versions/l10n/es_PE.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_PE.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_PR.js b/apps/files_versions/l10n/es_PR.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_PR.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_PR.json b/apps/files_versions/l10n/es_PR.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_PR.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_PY.js b/apps/files_versions/l10n/es_PY.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_PY.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_PY.json b/apps/files_versions/l10n/es_PY.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_PY.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_SV.js b/apps/files_versions/l10n/es_SV.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_SV.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_SV.json b/apps/files_versions/l10n/es_SV.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_SV.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/es_UY.js b/apps/files_versions/l10n/es_UY.js
deleted file mode 100644
index 5d974ef3480..00000000000
--- a/apps/files_versions/l10n/es_UY.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/es_UY.json b/apps/files_versions/l10n/es_UY.json
deleted file mode 100644
index 4348982b777..00000000000
--- a/apps/files_versions/l10n/es_UY.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/fa.js b/apps/files_versions/l10n/fa.js
index c2bbbcd6487..6f50077efdc 100644
--- a/apps/files_versions/l10n/fa.js
+++ b/apps/files_versions/l10n/fa.js
@@ -4,6 +4,7 @@ OC.L10N.register(
"Versions" : "نسخه ها",
"This application automatically maintains older versions of files that are changed." : "این برنامه به طور خودکار نسخه های قدیمی تر پرونده های تغییر یافته را حفظ می کند.",
"Current version" : "نسخه فعلی",
+ "You" : "You",
"Name this version" : "Name this version",
"Edit version name" : "Edit version name",
"Compare to current version" : "Compare to current version",
diff --git a/apps/files_versions/l10n/fa.json b/apps/files_versions/l10n/fa.json
index a5afce9ed79..a96d8d4cd31 100644
--- a/apps/files_versions/l10n/fa.json
+++ b/apps/files_versions/l10n/fa.json
@@ -2,6 +2,7 @@
"Versions" : "نسخه ها",
"This application automatically maintains older versions of files that are changed." : "این برنامه به طور خودکار نسخه های قدیمی تر پرونده های تغییر یافته را حفظ می کند.",
"Current version" : "نسخه فعلی",
+ "You" : "You",
"Name this version" : "Name this version",
"Edit version name" : "Edit version name",
"Compare to current version" : "Compare to current version",
diff --git a/apps/files_versions/l10n/fr.js b/apps/files_versions/l10n/fr.js
index 34d2e110a98..88e5299734e 100644
--- a/apps/files_versions/l10n/fr.js
+++ b/apps/files_versions/l10n/fr.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Version restored" : "Version restaurée",
"Could not restore version" : "Impossible de restaurer la version",
"Could not set version label" : "Impossible de définir l'étiquette de version",
- "Could not delete version" : "Impossible de supprimer la version"
+ "Could not delete version" : "Impossible de supprimer la version",
+ "File versions" : "Versions des fichiers"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/fr.json b/apps/files_versions/l10n/fr.json
index 3e5343e93dc..e59d1f3e59c 100644
--- a/apps/files_versions/l10n/fr.json
+++ b/apps/files_versions/l10n/fr.json
@@ -21,6 +21,7 @@
"Version restored" : "Version restaurée",
"Could not restore version" : "Impossible de restaurer la version",
"Could not set version label" : "Impossible de définir l'étiquette de version",
- "Could not delete version" : "Impossible de supprimer la version"
+ "Could not delete version" : "Impossible de supprimer la version",
+ "File versions" : "Versions des fichiers"
},"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/files_versions/l10n/he.js b/apps/files_versions/l10n/he.js
deleted file mode 100644
index edeac4bb278..00000000000
--- a/apps/files_versions/l10n/he.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "גרסאות",
- "This application automatically maintains older versions of files that are changed." : "יישומון זה שומר אוטומטית על גרסאות קודמות של קבצים שהשתנו.",
- "Version" : "גרסה",
- "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 doesn’t 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." : "יישום זה מתחזק באופן אוטומטי גרסאות ישנות יותר של קבצים שמשתנים. כאשר היא מופעלת, תיקייה של גרסאות נסתרות מסופקת בספריה של כל משתמש, ומשמשת לאחסן גרסאות קבצים ישנות. משתמש יכול לחזור לגרסה ישנה יותר באמצעות ממשק האינטרנט בכל עת, כאשר הקובץ שהוחלף יהפוך לגרסה. האפליקציה מנהלת באופן אוטומטי את תיקיית הגרסאות כדי להבטיח שלמשתמש לא נגמר המכסה בגלל גרסאות.\nבנוסף לתום תפוגת הגרסאות, אפליקציית הגרסאות מקפידה שלא להשתמש ביותר מ -50% מהשטח הפנוי של המשתמש הזמין כרגע. אם גרסאות מאוחסנות חורגות ממגבלה זו, האפליקציה תמחק תחילה את הגרסאות העתיקות ביותר, עד שתעמוד במגבלה זו. מידע נוסף זמין בתיעוד ה-Versions.",
- "Failed to revert {file} to revision {timestamp}." : "נכשל אחזור {file} לגרסה {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים","%n בייטים"],
- "Restore" : "שחזור",
- "No other versions available" : "אין גרסאות אחרות זמינות"
-},
-"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");
diff --git a/apps/files_versions/l10n/he.json b/apps/files_versions/l10n/he.json
deleted file mode 100644
index 91c9f75130d..00000000000
--- a/apps/files_versions/l10n/he.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Versions" : "גרסאות",
- "This application automatically maintains older versions of files that are changed." : "יישומון זה שומר אוטומטית על גרסאות קודמות של קבצים שהשתנו.",
- "Version" : "גרסה",
- "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 doesn’t 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." : "יישום זה מתחזק באופן אוטומטי גרסאות ישנות יותר של קבצים שמשתנים. כאשר היא מופעלת, תיקייה של גרסאות נסתרות מסופקת בספריה של כל משתמש, ומשמשת לאחסן גרסאות קבצים ישנות. משתמש יכול לחזור לגרסה ישנה יותר באמצעות ממשק האינטרנט בכל עת, כאשר הקובץ שהוחלף יהפוך לגרסה. האפליקציה מנהלת באופן אוטומטי את תיקיית הגרסאות כדי להבטיח שלמשתמש לא נגמר המכסה בגלל גרסאות.\nבנוסף לתום תפוגת הגרסאות, אפליקציית הגרסאות מקפידה שלא להשתמש ביותר מ -50% מהשטח הפנוי של המשתמש הזמין כרגע. אם גרסאות מאוחסנות חורגות ממגבלה זו, האפליקציה תמחק תחילה את הגרסאות העתיקות ביותר, עד שתעמוד במגבלה זו. מידע נוסף זמין בתיעוד ה-Versions.",
- "Failed to revert {file} to revision {timestamp}." : "נכשל אחזור {file} לגרסה {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים","%n בייטים"],
- "Restore" : "שחזור",
- "No other versions available" : "אין גרסאות אחרות זמינות"
-},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/hr.js b/apps/files_versions/l10n/hr.js
deleted file mode 100644
index a5a02529866..00000000000
--- a/apps/files_versions/l10n/hr.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Inačice",
- "This application automatically maintains older versions of files that are changed." : "Ova aplikacija automatski održava starije inačice datoteka koje su promijenjene.",
- "Version" : "Inačica",
- "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 doesn’t 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." : "Ova aplikacija automatski održava starije inačice datoteka koje su promijenjene. Kad se omogući, u direktoriju svakog korisnika stvori se skrivena mapa s inačicama i koristi za pohranu starih inačica datoteka. Korisnik se u bilo kojem trenutku može vratiti na stariju inačicu putem web sučelja, a zamijenjena datoteka postaje inačica. Aplikacija automatski upravlja mapom s inačicama kako bi se osiguralo da korisnik ne ostane bez prostora zbog brojnih inačica.\n\t\tOsim isteka inačica, aplikacija za inačice pazi da nikada ne iskoristite više od 50 % trenutno dostupnog slobodnog prostora. Ako pohranjene inačice premaše ovo ograničenje, aplikacija će najprije izbrisati najstarije inačice tako da dosegne navedeno ograničenje. Više informacija dostupno je u dokumentaciji Inačice.",
- "Failed to revert {file} to revision {timestamp}." : "Neuspješno vraćanje {file} na reviziju {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtova","%n bajtova"],
- "Restore" : "Vrati",
- "No other versions available" : "Nema drugih inačica"
-},
-"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/files_versions/l10n/hr.json b/apps/files_versions/l10n/hr.json
deleted file mode 100644
index 76607baf3e9..00000000000
--- a/apps/files_versions/l10n/hr.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Versions" : "Inačice",
- "This application automatically maintains older versions of files that are changed." : "Ova aplikacija automatski održava starije inačice datoteka koje su promijenjene.",
- "Version" : "Inačica",
- "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 doesn’t 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." : "Ova aplikacija automatski održava starije inačice datoteka koje su promijenjene. Kad se omogući, u direktoriju svakog korisnika stvori se skrivena mapa s inačicama i koristi za pohranu starih inačica datoteka. Korisnik se u bilo kojem trenutku može vratiti na stariju inačicu putem web sučelja, a zamijenjena datoteka postaje inačica. Aplikacija automatski upravlja mapom s inačicama kako bi se osiguralo da korisnik ne ostane bez prostora zbog brojnih inačica.\n\t\tOsim isteka inačica, aplikacija za inačice pazi da nikada ne iskoristite više od 50 % trenutno dostupnog slobodnog prostora. Ako pohranjene inačice premaše ovo ograničenje, aplikacija će najprije izbrisati najstarije inačice tako da dosegne navedeno ograničenje. Više informacija dostupno je u dokumentaciji Inačice.",
- "Failed to revert {file} to revision {timestamp}." : "Neuspješno vraćanje {file} na reviziju {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtova","%n bajtova"],
- "Restore" : "Vrati",
- "No other versions available" : "Nema drugih inačica"
-},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/hy.js b/apps/files_versions/l10n/hy.js
deleted file mode 100644
index d48487a9a84..00000000000
--- a/apps/files_versions/l10n/hy.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Տարբերակներ",
- "Restore" : "Վերականգնել",
- "No other versions available" : "Այլ տարբերակներ չկան"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/hy.json b/apps/files_versions/l10n/hy.json
deleted file mode 100644
index 579b9240310..00000000000
--- a/apps/files_versions/l10n/hy.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Versions" : "Տարբերակներ",
- "Restore" : "Վերականգնել",
- "No other versions available" : "Այլ տարբերակներ չկան"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/ia.js b/apps/files_versions/l10n/ia.js
deleted file mode 100644
index 46aa143e4a7..00000000000
--- a/apps/files_versions/l10n/ia.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Il falleva a reverter {file} a revision {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Restore" : "Restaurar",
- "No other versions available" : "Nulle altere versiones disponibile"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/ia.json b/apps/files_versions/l10n/ia.json
deleted file mode 100644
index 10c18bab080..00000000000
--- a/apps/files_versions/l10n/ia.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "Failed to revert {file} to revision {timestamp}." : "Il falleva a reverter {file} a revision {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
- "Restore" : "Restaurar",
- "No other versions available" : "Nulle altere versiones disponibile"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/id.js b/apps/files_versions/l10n/id.js
deleted file mode 100644
index 35ad4ded36e..00000000000
--- a/apps/files_versions/l10n/id.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versi",
- "This application automatically maintains older versions of files that are changed." : "Aplikasi ini secara otomatis memelihara versi-versi sebelumnya dari berkas yang telah diubah.",
- "Version" : "Versi",
- "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 doesn’t 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." : "Aplikasi ini secara otomatis memelihara versi-versi sebelumnya dari berkas yang telah diubah. Saat diaktifkan, suatu folder tersembunyi akan dibuat pada semua direktori pengguna, dan digunakan sebagai wadah penyimpanan versi-versi berkas. Secara otomatis akan mengelola folder versi-versi untuk memastikan pengguna tidak kehabisan kuota dikarenakan versi yang ada.\n\t\tSebagai tambahan dari kedaluwarsa suatu versi, aplikasi ini memastikan tidak akan menggunakan kuota 50% lebih dari sisa kapasitas yang dimiliki oleh pengguna. Jika versi yang tersimpan melampaui batasan, maka versi tertua akan dihapus lebih dahulu sampai batasan kembali sesuai ketentuan. Informasi lebih lanjut mengenai Versi dapat dilihat pada dokumentasi",
- "Failed to revert {file} to revision {timestamp}." : "Gagal mengembalikan {file} ke revisi {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bytes"],
- "Restore" : "Pulihkan",
- "No other versions available" : "Tidak ada versi lain yang tersedia"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_versions/l10n/id.json b/apps/files_versions/l10n/id.json
deleted file mode 100644
index 4b38ca58c70..00000000000
--- a/apps/files_versions/l10n/id.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Versions" : "Versi",
- "This application automatically maintains older versions of files that are changed." : "Aplikasi ini secara otomatis memelihara versi-versi sebelumnya dari berkas yang telah diubah.",
- "Version" : "Versi",
- "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 doesn’t 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." : "Aplikasi ini secara otomatis memelihara versi-versi sebelumnya dari berkas yang telah diubah. Saat diaktifkan, suatu folder tersembunyi akan dibuat pada semua direktori pengguna, dan digunakan sebagai wadah penyimpanan versi-versi berkas. Secara otomatis akan mengelola folder versi-versi untuk memastikan pengguna tidak kehabisan kuota dikarenakan versi yang ada.\n\t\tSebagai tambahan dari kedaluwarsa suatu versi, aplikasi ini memastikan tidak akan menggunakan kuota 50% lebih dari sisa kapasitas yang dimiliki oleh pengguna. Jika versi yang tersimpan melampaui batasan, maka versi tertua akan dihapus lebih dahulu sampai batasan kembali sesuai ketentuan. Informasi lebih lanjut mengenai Versi dapat dilihat pada dokumentasi",
- "Failed to revert {file} to revision {timestamp}." : "Gagal mengembalikan {file} ke revisi {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bytes"],
- "Restore" : "Pulihkan",
- "No other versions available" : "Tidak ada versi lain yang tersedia"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/ka_GE.js b/apps/files_versions/l10n/ka_GE.js
deleted file mode 100644
index 598dd4e40e3..00000000000
--- a/apps/files_versions/l10n/ka_GE.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "ვერსიები",
- "Failed to revert {file} to revision {timestamp}." : "ფაილის {file} დაბრუნება რევიზიაზე {timestamp} ვერ ხერხდება.",
- "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"],
- "Restore" : "აღდგენა"
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/files_versions/l10n/ka_GE.json b/apps/files_versions/l10n/ka_GE.json
deleted file mode 100644
index 1b2607a309b..00000000000
--- a/apps/files_versions/l10n/ka_GE.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "ვერსიები",
- "Failed to revert {file} to revision {timestamp}." : "ფაილის {file} დაბრუნება რევიზიაზე {timestamp} ვერ ხერხდება.",
- "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"],
- "Restore" : "აღდგენა"
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/km.js b/apps/files_versions/l10n/km.js
deleted file mode 100644
index a459413b284..00000000000
--- a/apps/files_versions/l10n/km.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "កំណែ",
- "Failed to revert {file} to revision {timestamp}." : "មិន​អាច​ត្រឡប់ {file} ទៅ​កំណែ​សម្រួល {timestamp} បាន​ទេ។",
- "Restore" : "ស្ដារ​មក​វិញ",
- "No other versions available" : "មិន​មាន​កំណែ​ផ្សេង​ទៀត​ទេ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_versions/l10n/km.json b/apps/files_versions/l10n/km.json
deleted file mode 100644
index b2e34f4fb35..00000000000
--- a/apps/files_versions/l10n/km.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "កំណែ",
- "Failed to revert {file} to revision {timestamp}." : "មិន​អាច​ត្រឡប់ {file} ទៅ​កំណែ​សម្រួល {timestamp} បាន​ទេ។",
- "Restore" : "ស្ដារ​មក​វិញ",
- "No other versions available" : "មិន​មាន​កំណែ​ផ្សេង​ទៀត​ទេ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/kn.js b/apps/files_versions/l10n/kn.js
deleted file mode 100644
index db64a419828..00000000000
--- a/apps/files_versions/l10n/kn.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "ಆವೃತ್ತಿಗಳು",
- "Failed to revert {file} to revision {timestamp}." : "{timestamp} ದ ಪರಿಷ್ಕರಣೆ ಇಂದ {file} ಕಡತವನ್ನು ಹಿಂದಿರುಗಿಸಲು ವಿಫಲವಾಗಿದೆ.",
- "Restore" : "ಮರುಸ್ಥಾಪಿಸು",
- "No other versions available" : "ಇನ್ನಿತರೆ ಯಾವುದೇ ಆವೃತ್ತಿಗಳು ಲಭ್ಯವಿಲ್ಲ"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_versions/l10n/kn.json b/apps/files_versions/l10n/kn.json
deleted file mode 100644
index d7226c306eb..00000000000
--- a/apps/files_versions/l10n/kn.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "ಆವೃತ್ತಿಗಳು",
- "Failed to revert {file} to revision {timestamp}." : "{timestamp} ದ ಪರಿಷ್ಕರಣೆ ಇಂದ {file} ಕಡತವನ್ನು ಹಿಂದಿರುಗಿಸಲು ವಿಫಲವಾಗಿದೆ.",
- "Restore" : "ಮರುಸ್ಥಾಪಿಸು",
- "No other versions available" : "ಇನ್ನಿತರೆ ಯಾವುದೇ ಆವೃತ್ತಿಗಳು ಲಭ್ಯವಿಲ್ಲ"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/lb.js b/apps/files_versions/l10n/lb.js
deleted file mode 100644
index d0339a4fd2a..00000000000
--- a/apps/files_versions/l10n/lb.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiounen",
- "Failed to revert {file} to revision {timestamp}." : "Konnt {file} net op d'Versioun {timestamp} zrécksetzen.",
- "_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"],
- "Restore" : "Zrécksetzen",
- "No other versions available" : "Keng aner Versiounen disponibel"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/lb.json b/apps/files_versions/l10n/lb.json
deleted file mode 100644
index 68b63f27485..00000000000
--- a/apps/files_versions/l10n/lb.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Versions" : "Versiounen",
- "Failed to revert {file} to revision {timestamp}." : "Konnt {file} net op d'Versioun {timestamp} zrécksetzen.",
- "_%n byte_::_%n bytes_" : ["%n Byte","%n Bytes"],
- "Restore" : "Zrécksetzen",
- "No other versions available" : "Keng aner Versiounen disponibel"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/lv.js b/apps/files_versions/l10n/lv.js
deleted file mode 100644
index 109c867101d..00000000000
--- a/apps/files_versions/l10n/lv.js
+++ /dev/null
@@ -1,12 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versijas",
- "This application automatically maintains older versions of files that are changed." : "Šī lietotne automātiski uztur vecākas versijas datnēm, kas tiek izmainītas.",
- "Version" : "Versija",
- "Failed to revert {file} to revision {timestamp}." : "Neizdevās atjaunot {file} no rediģējuma {timestamp} ",
- "_%n byte_::_%n bytes_" : ["%n baiti","%n baiti","%n baiti"],
- "Restore" : "Atjaunot",
- "No other versions available" : "Citas versijas nav pieejamas"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/files_versions/l10n/lv.json b/apps/files_versions/l10n/lv.json
deleted file mode 100644
index 46d90c62b7a..00000000000
--- a/apps/files_versions/l10n/lv.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "translations": {
- "Versions" : "Versijas",
- "This application automatically maintains older versions of files that are changed." : "Šī lietotne automātiski uztur vecākas versijas datnēm, kas tiek izmainītas.",
- "Version" : "Versija",
- "Failed to revert {file} to revision {timestamp}." : "Neizdevās atjaunot {file} no rediģējuma {timestamp} ",
- "_%n byte_::_%n bytes_" : ["%n baiti","%n baiti","%n baiti"],
- "Restore" : "Atjaunot",
- "No other versions available" : "Citas versijas nav pieejamas"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/ms_MY.js b/apps/files_versions/l10n/ms_MY.js
deleted file mode 100644
index 4ec22f9b141..00000000000
--- a/apps/files_versions/l10n/ms_MY.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versi",
- "Failed to revert {file} to revision {timestamp}." : "Gagal kembalikan {file} ke semakan {timestamp}.",
- "Restore" : "Pulihkan",
- "No other versions available" : "Tiada lagi versi lain"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_versions/l10n/ms_MY.json b/apps/files_versions/l10n/ms_MY.json
deleted file mode 100644
index 7510c52ceb8..00000000000
--- a/apps/files_versions/l10n/ms_MY.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versi",
- "Failed to revert {file} to revision {timestamp}." : "Gagal kembalikan {file} ke semakan {timestamp}.",
- "Restore" : "Pulihkan",
- "No other versions available" : "Tiada lagi versi lain"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/nl.js b/apps/files_versions/l10n/nl.js
index dba7e5bc48e..7500ff8b9f4 100644
--- a/apps/files_versions/l10n/nl.js
+++ b/apps/files_versions/l10n/nl.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"Current version" : "Huidige versie",
"Initial version" : "Initiële versie",
"You" : "Jij",
+ "Actions for version from {versionHumanExplicitDate}" : "Acties voor versie van {versionHumanExplicitDate}",
"Name this version" : "Geef deze versie een naam",
"Edit version name" : "Bewerk versie naam",
"Compare to current version" : "Vergelijk met huidige versie",
@@ -22,6 +23,7 @@ OC.L10N.register(
"Version restored" : "Versie hersteld",
"Could not restore version" : "Kon versie niet herstellen",
"Could not set version label" : "Kon versie label niet instellen",
- "Could not delete version" : "Kon versie niet verwijderen"
+ "Could not delete version" : "Kon versie niet verwijderen",
+ "File versions" : "Bestandsversies"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/nl.json b/apps/files_versions/l10n/nl.json
index 425b5db0399..da0eb03c679 100644
--- a/apps/files_versions/l10n/nl.json
+++ b/apps/files_versions/l10n/nl.json
@@ -5,6 +5,7 @@
"Current version" : "Huidige versie",
"Initial version" : "Initiële versie",
"You" : "Jij",
+ "Actions for version from {versionHumanExplicitDate}" : "Acties voor versie van {versionHumanExplicitDate}",
"Name this version" : "Geef deze versie een naam",
"Edit version name" : "Bewerk versie naam",
"Compare to current version" : "Vergelijk met huidige versie",
@@ -20,6 +21,7 @@
"Version restored" : "Versie hersteld",
"Could not restore version" : "Kon versie niet herstellen",
"Could not set version label" : "Kon versie label niet instellen",
- "Could not delete version" : "Kon versie niet verwijderen"
+ "Could not delete version" : "Kon versie niet verwijderen",
+ "File versions" : "Bestandsversies"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_versions/l10n/nn_NO.js b/apps/files_versions/l10n/nn_NO.js
deleted file mode 100644
index 16ed15afe20..00000000000
--- a/apps/files_versions/l10n/nn_NO.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Utgåver",
- "Failed to revert {file} to revision {timestamp}." : "Klarte ikkje å tilbakestilla {file} til utgåva {timestamp}.",
- "Restore" : "Gjenopprett",
- "No other versions available" : "Ingen andre utgåver tilgjengeleg"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/nn_NO.json b/apps/files_versions/l10n/nn_NO.json
deleted file mode 100644
index ea92d533333..00000000000
--- a/apps/files_versions/l10n/nn_NO.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Utgåver",
- "Failed to revert {file} to revision {timestamp}." : "Klarte ikkje å tilbakestilla {file} til utgåva {timestamp}.",
- "Restore" : "Gjenopprett",
- "No other versions available" : "Ingen andre utgåver tilgjengeleg"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/oc.js b/apps/files_versions/l10n/oc.js
deleted file mode 100644
index c5f8550abe0..00000000000
--- a/apps/files_versions/l10n/oc.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versions",
- "_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
- "Restore" : "Restaurar",
- "No other versions available" : "Cap d’autra version pas disponibla"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_versions/l10n/oc.json b/apps/files_versions/l10n/oc.json
deleted file mode 100644
index af314939d07..00000000000
--- a/apps/files_versions/l10n/oc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Versions" : "Versions",
- "_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
- "Restore" : "Restaurar",
- "No other versions available" : "Cap d’autra version pas disponibla"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/pt_PT.js b/apps/files_versions/l10n/pt_PT.js
deleted file mode 100644
index 2af884961af..00000000000
--- a/apps/files_versions/l10n/pt_PT.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versões",
- "Failed to revert {file} to revision {timestamp}." : "Falhou a recuperação do ficheiro {file} para a revisão {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar",
- "No other versions available" : "Nenhuma outra versão disponível"
-},
-"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/files_versions/l10n/pt_PT.json b/apps/files_versions/l10n/pt_PT.json
deleted file mode 100644
index 94cafae4a6e..00000000000
--- a/apps/files_versions/l10n/pt_PT.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Versions" : "Versões",
- "Failed to revert {file} to revision {timestamp}." : "Falhou a recuperação do ficheiro {file} para a revisão {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n bytes","%n bytes"],
- "Restore" : "Restaurar",
- "No other versions available" : "Nenhuma outra versão disponível"
-},"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/files_versions/l10n/ro.js b/apps/files_versions/l10n/ro.js
deleted file mode 100644
index 55279ebf913..00000000000
--- a/apps/files_versions/l10n/ro.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiuni",
- "This application automatically maintains older versions of files that are changed." : "Această aplicație păștrează versiunile mai vechi a fișierelor care sunt schimbate.",
- "Version" : "Versiune",
- "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 doesn’t 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." : "Această aplicație păștrează versiunile mai vechi a fișierelor care sunt schimbate.Când este activată un dosar ascuns este creeat în dosarul personal al fiecărui utilizator pentru a memora versiunile mai vechi. Un utilizator poate să revină la o versiune mai veche folosind interfața web în orice moment, cu fișierul înlocuit devenind o versiune păstrată. Aplicația are grijă să nu rămână fără spațiu.\n\t\tDe asemenea aplicația are grijă să nu folosească mai mult de 50% din spațiul disponibil. Dacă veriunile vechi depășec această valoare atunci versiunile mai vechi vor fi șterse. Mai multe informații sunt disponibile în documentația aplicației Versiuni.",
- "Failed to revert {file} to revision {timestamp}." : "S-a eșuat restaurarea fișierului {file} la revizia {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n byți","%n byți"],
- "Restore" : "Restaurare",
- "No other versions available" : "Nu există alte versiuni disponibile"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/files_versions/l10n/ro.json b/apps/files_versions/l10n/ro.json
deleted file mode 100644
index 87c70af4531..00000000000
--- a/apps/files_versions/l10n/ro.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Versions" : "Versiuni",
- "This application automatically maintains older versions of files that are changed." : "Această aplicație păștrează versiunile mai vechi a fișierelor care sunt schimbate.",
- "Version" : "Versiune",
- "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 doesn’t 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." : "Această aplicație păștrează versiunile mai vechi a fișierelor care sunt schimbate.Când este activată un dosar ascuns este creeat în dosarul personal al fiecărui utilizator pentru a memora versiunile mai vechi. Un utilizator poate să revină la o versiune mai veche folosind interfața web în orice moment, cu fișierul înlocuit devenind o versiune păstrată. Aplicația are grijă să nu rămână fără spațiu.\n\t\tDe asemenea aplicația are grijă să nu folosească mai mult de 50% din spațiul disponibil. Dacă veriunile vechi depășec această valoare atunci versiunile mai vechi vor fi șterse. Mai multe informații sunt disponibile în documentația aplicației Versiuni.",
- "Failed to revert {file} to revision {timestamp}." : "S-a eșuat restaurarea fișierului {file} la revizia {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n byte","%n byți","%n byți"],
- "Restore" : "Restaurare",
- "No other versions available" : "Nu există alte versiuni disponibile"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/ru.js b/apps/files_versions/l10n/ru.js
index a06b03e6126..9472af2f1a3 100644
--- a/apps/files_versions/l10n/ru.js
+++ b/apps/files_versions/l10n/ru.js
@@ -23,6 +23,7 @@ OC.L10N.register(
"Version restored" : "Версия восстановлена",
"Could not restore version" : "Не удалось восстановить версию",
"Could not set version label" : "Не удалось установить метку версии",
- "Could not delete version" : "Не удалось удалить версию"
+ "Could not delete version" : "Не удалось удалить версию",
+ "File versions" : "Версии файлов"
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files_versions/l10n/ru.json b/apps/files_versions/l10n/ru.json
index 4df12d77afa..f0870081d62 100644
--- a/apps/files_versions/l10n/ru.json
+++ b/apps/files_versions/l10n/ru.json
@@ -21,6 +21,7 @@
"Version restored" : "Версия восстановлена",
"Could not restore version" : "Не удалось восстановить версию",
"Could not set version label" : "Не удалось установить метку версии",
- "Could not delete version" : "Не удалось удалить версию"
+ "Could not delete version" : "Не удалось удалить версию",
+ "File versions" : "Версии файлов"
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_versions/l10n/sc.js b/apps/files_versions/l10n/sc.js
deleted file mode 100644
index 05799b22a12..00000000000
--- a/apps/files_versions/l10n/sc.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versiones",
- "This application automatically maintains older versions of files that are changed." : "Custa aplicatzione allogat de manera automàtica is versiones prus bècias de documentos modificados.",
- "Version" : "Versione",
- "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 doesn’t 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." : "Custa aplicatzione allogat in manera automàtica is versiones prus bècias de documentos modificados. Cando est ativa, frunit una cartella cuada de versiones in cada directory de s'utente e dda impreat pro allogare is versiones bècias de su documentu. S'utente podet semper torrare a una versione prus bècias cun s'interface de internet, e su documentu cambiadu benet a èssere una versione. S'aplicatzione gestit de manera automàtica is cartellas de versiones pro assegurare chi s'utente doesn’t run out of Quota because of versions.\n\t\t In prus de s'iscadèntzia de is versiones, s'aplicatzione assegurat de no impreare mai prus de su 50% de su logu lìberu a disponimentu de s'utente. Chi is versiones allogadas bàrigant custu lìmite, s'aplicatzione at a cantzellare innantis is versione prus bècias finas a lòmpere a su lìmite. Sunt disponìbiles prus informatziones in sa documentatzione de Versions.",
- "Failed to revert {file} to revision {timestamp}." : "Non s'at pòdidu torrare a {documentu} pro sa revisione {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%nbyte","%n bytes"],
- "Restore" : "Recùpera",
- "No other versions available" : "Peruna àtera versione disponìbile"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/sc.json b/apps/files_versions/l10n/sc.json
deleted file mode 100644
index add70007130..00000000000
--- a/apps/files_versions/l10n/sc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "Versions" : "Versiones",
- "This application automatically maintains older versions of files that are changed." : "Custa aplicatzione allogat de manera automàtica is versiones prus bècias de documentos modificados.",
- "Version" : "Versione",
- "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 doesn’t 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." : "Custa aplicatzione allogat in manera automàtica is versiones prus bècias de documentos modificados. Cando est ativa, frunit una cartella cuada de versiones in cada directory de s'utente e dda impreat pro allogare is versiones bècias de su documentu. S'utente podet semper torrare a una versione prus bècias cun s'interface de internet, e su documentu cambiadu benet a èssere una versione. S'aplicatzione gestit de manera automàtica is cartellas de versiones pro assegurare chi s'utente doesn’t run out of Quota because of versions.\n\t\t In prus de s'iscadèntzia de is versiones, s'aplicatzione assegurat de no impreare mai prus de su 50% de su logu lìberu a disponimentu de s'utente. Chi is versiones allogadas bàrigant custu lìmite, s'aplicatzione at a cantzellare innantis is versione prus bècias finas a lòmpere a su lìmite. Sunt disponìbiles prus informatziones in sa documentatzione de Versions.",
- "Failed to revert {file} to revision {timestamp}." : "Non s'at pòdidu torrare a {documentu} pro sa revisione {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%nbyte","%n bytes"],
- "Restore" : "Recùpera",
- "No other versions available" : "Peruna àtera versione disponìbile"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/sq.js b/apps/files_versions/l10n/sq.js
deleted file mode 100644
index 59d42371c2f..00000000000
--- a/apps/files_versions/l10n/sq.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "Versione",
- "Failed to revert {file} to revision {timestamp}." : "Dështoi në rikthimin e {file} te rishikimi {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajte","%n bajte"],
- "Restore" : "Riktheje",
- "No other versions available" : "Nuk ka versione të tjera të gatshme"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/sq.json b/apps/files_versions/l10n/sq.json
deleted file mode 100644
index 73fe6d0ab58..00000000000
--- a/apps/files_versions/l10n/sq.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Versions" : "Versione",
- "Failed to revert {file} to revision {timestamp}." : "Dështoi në rikthimin e {file} te rishikimi {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajte","%n bajte"],
- "Restore" : "Riktheje",
- "No other versions available" : "Nuk ka versione të tjera të gatshme"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/sr@latin.js b/apps/files_versions/l10n/sr@latin.js
deleted file mode 100644
index 627d70eb51b..00000000000
--- a/apps/files_versions/l10n/sr@latin.js
+++ /dev/null
@@ -1,11 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Could not revert: %s" : "Ne mogu da vratim: %s",
- "Versions" : "Verzije",
- "Failed to revert {file} to revision {timestamp}." : "Ne mogu da vratim {file} na reviziju {timestamp}.",
- "Restore" : "Vrati",
- "No other versions available" : "Nema drugih verzija",
- "More versions..." : "Još verzija..."
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_versions/l10n/sr@latin.json b/apps/files_versions/l10n/sr@latin.json
deleted file mode 100644
index 63fe55cf50e..00000000000
--- a/apps/files_versions/l10n/sr@latin.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "translations": {
- "Could not revert: %s" : "Ne mogu da vratim: %s",
- "Versions" : "Verzije",
- "Failed to revert {file} to revision {timestamp}." : "Ne mogu da vratim {file} na reviziju {timestamp}.",
- "Restore" : "Vrati",
- "No other versions available" : "Nema drugih verzija",
- "More versions..." : "Još verzija..."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/th.js b/apps/files_versions/l10n/th.js
deleted file mode 100644
index e86c92c3e8b..00000000000
--- a/apps/files_versions/l10n/th.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Versions" : "รุ่น",
- "Failed to revert {file} to revision {timestamp}." : "{file} ล้มเหลวที่จะย้อนกลับไปยังการแก้ไขเมื่อ {timestamp}",
- "_%n byte_::_%n bytes_" : ["%n ไบต์"],
- "Restore" : "คืนค่า",
- "No other versions available" : "ไม่มีรุ่นอื่น ๆ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/files_versions/l10n/th.json b/apps/files_versions/l10n/th.json
deleted file mode 100644
index c46285ab31f..00000000000
--- a/apps/files_versions/l10n/th.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Versions" : "รุ่น",
- "Failed to revert {file} to revision {timestamp}." : "{file} ล้มเหลวที่จะย้อนกลับไปยังการแก้ไขเมื่อ {timestamp}",
- "_%n byte_::_%n bytes_" : ["%n ไบต์"],
- "Restore" : "คืนค่า",
- "No other versions available" : "ไม่มีรุ่นอื่น ๆ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/files_versions/l10n/tr.js b/apps/files_versions/l10n/tr.js
index f73c10ecf45..dc216107c52 100644
--- a/apps/files_versions/l10n/tr.js
+++ b/apps/files_versions/l10n/tr.js
@@ -3,7 +3,7 @@ OC.L10N.register(
{
"Versions" : "Sürümler",
"This application automatically maintains older versions of files that are changed." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar.",
- "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 account 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 account'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." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Kullanıma alındığında, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.",
+ "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 account 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 account'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." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Kullanıma alındığında, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.",
"Current version" : "Geçerli sürüm",
"Initial version" : "İlk sürüm",
"You" : "Siz",
diff --git a/apps/files_versions/l10n/tr.json b/apps/files_versions/l10n/tr.json
index 814e9ea7a97..e914457e8bd 100644
--- a/apps/files_versions/l10n/tr.json
+++ b/apps/files_versions/l10n/tr.json
@@ -1,7 +1,7 @@
{ "translations": {
"Versions" : "Sürümler",
"This application automatically maintains older versions of files that are changed." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar.",
- "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 account 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 account'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." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Kullanıma alındığında, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının daha önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.",
+ "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 account 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 account'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." : "Bu uygulama değiştirilen dosyaların önceki sürümlerini otomatik olarak izler ve saklar. Kullanıma alındığında, dosya sürümlerini saklamak için her kullanıcının klasörlerinde gizli bir versions klasörü oluşturulur. Kullanıcılar site arayüzünü kullanarak istedikleri zaman dosyalarının önceki sürümlerine geri dönebilirler. Uygulama versions klasörünü otomatik olarak düzenler ve önceki dosya sürümleri nedeniyle hesabın kotasının dolmasını engeller.\n\t\tSürümler uygulaması dosya sürümlerini belirli bir süreyle saklarken, hesabın depolama alanının en çok %50 oranındaki bölümünü kullanır. Depolanan sürüm dosyalarının boyutu bu sınırın üzerine çıkarsa, sınır değerine geri dönülene kadar en eski sürüm dosyaları silinir. Ayrıntılı bilgi almak için Sürümler uygulamasının belgelerine bakabilirsiniz.",
"Current version" : "Geçerli sürüm",
"Initial version" : "İlk sürüm",
"You" : "Siz",
diff --git a/apps/files_versions/l10n/ur_PK.js b/apps/files_versions/l10n/ur_PK.js
deleted file mode 100644
index ae55363a2dd..00000000000
--- a/apps/files_versions/l10n/ur_PK.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "files_versions",
- {
- "Restore" : "بحال"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/ur_PK.json b/apps/files_versions/l10n/ur_PK.json
deleted file mode 100644
index bfbcb42de28..00000000000
--- a/apps/files_versions/l10n/ur_PK.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Restore" : "بحال"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/files_versions/lib/Listener/FileEventsListener.php b/apps/files_versions/lib/Listener/FileEventsListener.php
index d847c60ec64..4b7385d6e2d 100644
--- a/apps/files_versions/lib/Listener/FileEventsListener.php
+++ b/apps/files_versions/lib/Listener/FileEventsListener.php
@@ -36,6 +36,7 @@ use OCP\Files\Folder;
use OCP\Files\IMimeTypeLoader;
use OCP\Files\IRootFolder;
use OCP\Files\Node;
+use OCP\Files\NotFoundException;
use OCP\IUserSession;
use Psr\Log\LoggerInterface;
@@ -250,7 +251,7 @@ class FileEventsListener implements IEventListener {
/**
* Erase versions of deleted file
*
- * This function is connected to the delete signal of OC_Filesystem
+ * This function is connected to the NodeDeletedEvent event
* cleanup the versions directory if the actual file gets deleted
*/
public function remove_hook(Node $node): void {
@@ -282,7 +283,7 @@ class FileEventsListener implements IEventListener {
/**
* rename/move versions of renamed/moved files
*
- * This function is connected to the rename signal of OC_Filesystem and adjust the name and location
+ * This function is connected to the NodeRenamedEvent event and adjust the name and location
* of the stored versions along the actual file
*/
public function rename_hook(Node $source, Node $target): void {
@@ -301,7 +302,7 @@ class FileEventsListener implements IEventListener {
/**
* copy versions of copied files
*
- * This function is connected to the copy signal of OC_Filesystem and copies the
+ * This function is connected to the NodeCopiedEvent event and copies the
* the stored versions to the new location
*/
public function copy_hook(Node $source, Node $target): void {
@@ -378,7 +379,7 @@ class FileEventsListener implements IEventListener {
try {
$owner = $node->getOwner()?->getUid();
- } catch (\OCP\Files\NotFoundException) {
+ } catch (NotFoundException) {
$owner = null;
}
diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php
index 19e7dd598ae..0fb3a0522f4 100644
--- a/apps/files_versions/lib/Storage.php
+++ b/apps/files_versions/lib/Storage.php
@@ -23,6 +23,7 @@ use OCA\Files_Versions\Versions\IVersionManager;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\Command\IBus;
use OCP\EventDispatcher\IEventDispatcher;
+use OCP\Files;
use OCP\Files\FileInfo;
use OCP\Files\Folder;
use OCP\Files\IMimeTypeDetector;
@@ -32,6 +33,7 @@ use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
use OCP\Files\Search\ISearchBinaryOperator;
use OCP\Files\Search\ISearchComparison;
+use OCP\Files\Storage\IWriteStreamStorage;
use OCP\Files\StorageInvalidException;
use OCP\Files\StorageNotAvailableException;
use OCP\IURLGenerator;
@@ -416,12 +418,31 @@ class Storage {
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')) {
+ if ($storage1->instanceOfStorage(\OC\Files\ObjectStore\ObjectStoreStorage::class)
+ || $storage2->instanceOfStorage(\OC\Files\ObjectStore\ObjectStoreStorage::class)
+ ) {
$source = $storage1->fopen($internalPath1, 'r');
- $target = $storage2->fopen($internalPath2, 'w');
- [, $result] = \OC_Helper::streamCopy($source, $target);
- fclose($source);
- fclose($target);
+ $result = $source !== false;
+ if ($result) {
+ if ($storage2->instanceOfStorage(IWriteStreamStorage::class)) {
+ /** @var IWriteStreamStorage $storage2 */
+ $storage2->writeStream($internalPath2, $source);
+ } else {
+ $target = $storage2->fopen($internalPath2, 'w');
+ $result = $target !== false;
+ if ($result) {
+ [, $result] = Files::streamCopy($source, $target, true);
+ }
+ // explicit check as S3 library closes streams already
+ if (is_resource($target)) {
+ fclose($target);
+ }
+ }
+ }
+ // explicit check as S3 library closes streams already
+ if (is_resource($source)) {
+ fclose($source);
+ }
if ($result !== false) {
$storage1->unlink($internalPath1);
diff --git a/apps/files_versions/lib/Versions/LegacyVersionsBackend.php b/apps/files_versions/lib/Versions/LegacyVersionsBackend.php
index 92b326b6cd3..59a10a0775d 100644
--- a/apps/files_versions/lib/Versions/LegacyVersionsBackend.php
+++ b/apps/files_versions/lib/Versions/LegacyVersionsBackend.php
@@ -367,16 +367,20 @@ class LegacyVersionsBackend implements IVersionBackend, IDeletableVersionBackend
* @inheritdoc
*/
public function clearVersionsForFile(IUser $user, Node $source, Node $target): void {
- $userFolder = $this->rootFolder->getUserFolder($user->getUID());
+ $userId = $user->getUID();
+ $userFolder = $this->rootFolder->getUserFolder($userId);
$relativePath = $userFolder->getRelativePath($source->getPath());
if ($relativePath === null) {
throw new Exception('Relative path not found for node with path: ' . $source->getPath());
}
- $versions = Storage::getVersions($user->getUID(), $relativePath);
- /** @var Folder versionFolder */
- $versionFolder = $this->rootFolder->get('admin/files_versions');
+ $versionFolder = $this->rootFolder->get($userId . '/files_versions');
+ if (!$versionFolder instanceof Folder) {
+ throw new Exception('User versions folder does not exist');
+ }
+
+ $versions = Storage::getVersions($userId, $relativePath);
foreach ($versions as $version) {
$versionFolder->get($version['path'] . '.v' . (int)$version['version'])->delete();
}
diff --git a/apps/files_versions/src/components/Version.vue b/apps/files_versions/src/components/Version.vue
index 8ea16e215c6..275f1d0ddbf 100644
--- a/apps/files_versions/src/components/Version.vue
+++ b/apps/files_versions/src/components/Version.vue
@@ -45,7 +45,10 @@
disable-menu
disable-tooltip
:show-user-status="false" />
- <div>{{ versionAuthor }}</div>
+ <div class="version__info__author_name"
+ :title="versionAuthor">
+ {{ versionAuthor }}
+ </div>
</div>
</div>
</template>
@@ -349,12 +352,19 @@ export default defineComponent({
gap: 0.5rem;
color: var(--color-main-text);
font-weight: 500;
+ overflow: hidden;
&__label {
font-weight: 700;
// Fix overflow on narrow screens
overflow: hidden;
text-overflow: ellipsis;
+ min-width: 110px;
+ }
+
+ &__author_name {
+ overflow: hidden;
+ text-overflow: ellipsis;
}
&__date {
diff --git a/apps/files_versions/src/views/VersionTab.vue b/apps/files_versions/src/views/VersionTab.vue
index 48e07b7c786..a643aef439d 100644
--- a/apps/files_versions/src/views/VersionTab.vue
+++ b/apps/files_versions/src/views/VersionTab.vue
@@ -203,7 +203,7 @@ export default {
try {
await restoreVersion(version)
- if (version.label !== '') {
+ if (version.label) {
showSuccess(t('files_versions', `${version.label} restored`))
} else if (version.mtime === this.initialVersionMtime) {
showSuccess(t('files_versions', 'Initial version restored'))
diff --git a/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php b/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php
index 7a35e9f5f39..21e88e86f90 100644
--- a/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php
+++ b/apps/files_versions/tests/BackgroundJob/ExpireVersionsTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,17 +18,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ExpireVersionsTest extends TestCase {
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var Expiration|MockObject */
- private $expiration;
-
- /** @var IJobList|MockObject */
- private $jobList;
+ private IConfig&MockObject $config;
+ private IUserManager&MockObject $userManager;
+ private Expiration&MockObject $expiration;
+ private IJobList&MockObject $jobList;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/files_versions/tests/Command/CleanupTest.php b/apps/files_versions/tests/Command/CleanupTest.php
index 62d9576e9c5..b0a5c0ca268 100644
--- a/apps/files_versions/tests/Command/CleanupTest.php
+++ b/apps/files_versions/tests/Command/CleanupTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -8,11 +10,13 @@ namespace OCA\Files_Versions\Tests\Command;
use OC\User\Manager;
use OCA\Files_Versions\Command\CleanUp;
+use OCA\Files_Versions\Db\VersionsMapper;
use OCP\Files\Cache\ICache;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\Storage\IStorage;
use OCP\UserInterface;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
/**
@@ -23,28 +27,17 @@ use Test\TestCase;
* @package OCA\Files_Versions\Tests\Command
*/
class CleanupTest extends TestCase {
-
- /** @var CleanUp */
- protected $cleanup;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | Manager */
- protected $userManager;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | IRootFolder */
- protected $rootFolder;
-
- /** @var \PHPUnit\Framework\MockObject\MockObject | VersionsMapper */
- protected $versionMapper;
+ protected Manager&MockObject $userManager;
+ protected IRootFolder&MockObject $rootFolder;
+ protected VersionsMapper&MockObject $versionMapper;
+ protected CleanUp $cleanup;
protected function setUp(): void {
parent::setUp();
- $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')
- ->disableOriginalConstructor()->getMock();
- $this->userManager = $this->getMockBuilder('OC\User\Manager')
- ->disableOriginalConstructor()->getMock();
- $this->versionMapper = $this->getMockBuilder('OCA\Files_Versions\Db\VersionsMapper')
- ->disableOriginalConstructor()->getMock();
+ $this->rootFolder = $this->createMock(IRootFolder::class);
+ $this->userManager = $this->createMock(Manager::class);
+ $this->versionMapper = $this->createMock(VersionsMapper::class);
$this->cleanup = new CleanUp($this->rootFolder, $this->userManager, $this->versionMapper);
}
@@ -53,7 +46,7 @@ class CleanupTest extends TestCase {
* @dataProvider dataTestDeleteVersions
* @param boolean $nodeExists
*/
- public function testDeleteVersions($nodeExists): void {
+ public function testDeleteVersions(bool $nodeExists): void {
$this->rootFolder->expects($this->once())
->method('nodeExists')
->with('/testUser/files_versions')
@@ -92,7 +85,7 @@ class CleanupTest extends TestCase {
$this->invokePrivate($this->cleanup, 'deleteVersions', ['testUser']);
}
- public function dataTestDeleteVersions() {
+ public static function dataTestDeleteVersions(): array {
return [
[true],
[false]
@@ -106,8 +99,8 @@ class CleanupTest extends TestCase {
public function testExecuteDeleteListOfUsers(): void {
$userIds = ['user1', 'user2', 'user3'];
- $instance = $this->getMockBuilder('OCA\Files_Versions\Command\CleanUp')
- ->setMethods(['deleteVersions'])
+ $instance = $this->getMockBuilder(CleanUp::class)
+ ->onlyMethods(['deleteVersions'])
->setConstructorArgs([$this->rootFolder, $this->userManager, $this->versionMapper])
->getMock();
$instance->expects($this->exactly(count($userIds)))
@@ -119,14 +112,12 @@ class CleanupTest extends TestCase {
$this->userManager->expects($this->exactly(count($userIds)))
->method('userExists')->willReturn(true);
- $inputInterface = $this->getMockBuilder('\Symfony\Component\Console\Input\InputInterface')
- ->disableOriginalConstructor()->getMock();
+ $inputInterface = $this->createMock(\Symfony\Component\Console\Input\InputInterface::class);
$inputInterface->expects($this->once())->method('getArgument')
->with('user_id')
->willReturn($userIds);
- $outputInterface = $this->getMockBuilder('\Symfony\Component\Console\Output\OutputInterface')
- ->disableOriginalConstructor()->getMock();
+ $outputInterface = $this->createMock(\Symfony\Component\Console\Output\OutputInterface::class);
$this->invokePrivate($instance, 'execute', [$inputInterface, $outputInterface]);
}
@@ -138,8 +129,8 @@ class CleanupTest extends TestCase {
$userIds = [];
$backendUsers = ['user1', 'user2'];
- $instance = $this->getMockBuilder('OCA\Files_Versions\Command\CleanUp')
- ->setMethods(['deleteVersions'])
+ $instance = $this->getMockBuilder(CleanUp::class)
+ ->onlyMethods(['deleteVersions'])
->setConstructorArgs([$this->rootFolder, $this->userManager, $this->versionMapper])
->getMock();
@@ -155,14 +146,12 @@ class CleanupTest extends TestCase {
$this->assertTrue(in_array($user, $backendUsers));
});
- $inputInterface = $this->getMockBuilder('\Symfony\Component\Console\Input\InputInterface')
- ->disableOriginalConstructor()->getMock();
+ $inputInterface = $this->createMock(\Symfony\Component\Console\Input\InputInterface::class);
$inputInterface->expects($this->once())->method('getArgument')
->with('user_id')
->willReturn($userIds);
- $outputInterface = $this->getMockBuilder('\Symfony\Component\Console\Output\OutputInterface')
- ->disableOriginalConstructor()->getMock();
+ $outputInterface = $this->createMock(\Symfony\Component\Console\Output\OutputInterface::class);
$this->userManager->expects($this->once())
->method('getBackends')
diff --git a/apps/files_versions/tests/Command/ExpireTest.php b/apps/files_versions/tests/Command/ExpireTest.php
index 11f4eb2e2be..b74457a7fd6 100644
--- a/apps/files_versions/tests/Command/ExpireTest.php
+++ b/apps/files_versions/tests/Command/ExpireTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
diff --git a/apps/files_versions/tests/Controller/PreviewControllerTest.php b/apps/files_versions/tests/Controller/PreviewControllerTest.php
index 0e36703d5aa..542ea2b6b34 100644
--- a/apps/files_versions/tests/Controller/PreviewControllerTest.php
+++ b/apps/files_versions/tests/Controller/PreviewControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,7 +14,6 @@ use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\Files\File;
use OCP\Files\Folder;
-use OCP\Files\IMimeTypeDetector;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\Files\SimpleFS\ISimpleFile;
@@ -25,29 +26,14 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class PreviewControllerTest extends TestCase {
-
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
-
- /** @var string */
- private $userId;
-
- /** @var IMimeTypeDetector|\PHPUnit\Framework\MockObject\MockObject */
- private $mimeTypeDetector;
-
- /** @var IPreview|\PHPUnit\Framework\MockObject\MockObject */
- private $previewManager;
-
- /** @var PreviewController|\PHPUnit\Framework\MockObject\MockObject */
- private $controller;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
-
- /** @var IVersionManager|\PHPUnit\Framework\MockObject\MockObject */
- private $versionManager;
+ private IRootFolder&MockObject $rootFolder;
+ private string $userId;
+ private IPreview&MockObject $previewManager;
+ private IUserSession&MockObject $userSession;
+ private IVersionManager&MockObject $versionManager;
private IMimeIconProvider&MockObject $mimeIconProvider;
+ private PreviewController $controller;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/files_versions/tests/ExpirationTest.php b/apps/files_versions/tests/ExpirationTest.php
index ac8af7c093a..866e4861741 100644
--- a/apps/files_versions/tests/ExpirationTest.php
+++ b/apps/files_versions/tests/ExpirationTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -15,7 +17,7 @@ use Psr\Log\LoggerInterface;
class ExpirationTest extends \Test\TestCase {
public const SECONDS_PER_DAY = 86400; //60*60*24
- public function expirationData() {
+ public static function expirationData(): array {
$today = 100 * self::SECONDS_PER_DAY;
$back10Days = (100 - 10) * self::SECONDS_PER_DAY;
$back20Days = (100 - 20) * self::SECONDS_PER_DAY;
@@ -81,14 +83,8 @@ class ExpirationTest extends \Test\TestCase {
/**
* @dataProvider expirationData
- *
- * @param string $retentionObligation
- * @param int $timeNow
- * @param int $timestamp
- * @param bool $quotaExceeded
- * @param string $expectedResult
*/
- public function testExpiration($retentionObligation, $timeNow, $timestamp, $quotaExceeded, $expectedResult): void {
+ public function testExpiration(string $retentionObligation, int $timeNow, int $timestamp, bool $quotaExceeded, bool $expectedResult): void {
$mockedConfig = $this->getMockedConfig($retentionObligation);
$mockedTimeFactory = $this->getMockedTimeFactory($timeNow);
$mockedLogger = $this->createMock(LoggerInterface::class);
@@ -100,11 +96,7 @@ class ExpirationTest extends \Test\TestCase {
}
- /**
- * @param int $time
- * @return ITimeFactory|MockObject
- */
- private function getMockedTimeFactory($time) {
+ private function getMockedTimeFactory(int $time): ITimeFactory&MockObject {
$mockedTimeFactory = $this->createMock(ITimeFactory::class);
$mockedTimeFactory->expects($this->any())
->method('getTime')
@@ -113,11 +105,7 @@ class ExpirationTest extends \Test\TestCase {
return $mockedTimeFactory;
}
- /**
- * @param string $returnValue
- * @return IConfig|MockObject
- */
- private function getMockedConfig($returnValue) {
+ private function getMockedConfig(string $returnValue): IConfig&MockObject {
$mockedConfig = $this->createMock(IConfig::class);
$mockedConfig->expects($this->any())
->method('getSystemValue')
diff --git a/apps/files_versions/tests/StorageTest.php b/apps/files_versions/tests/StorageTest.php
index dd5b94c7a22..443cff3ee06 100644
--- a/apps/files_versions/tests/StorageTest.php
+++ b/apps/files_versions/tests/StorageTest.php
@@ -24,7 +24,7 @@ class StorageTest extends TestCase {
private $versionsRoot;
private $userFolder;
- private $expireTimestamp = 10;
+ private int $expireTimestamp = 10;
protected function setUp(): void {
parent::setUp();
@@ -46,13 +46,13 @@ class StorageTest extends TestCase {
}
- protected function createPastFile(string $path, int $mtime) {
+ protected function createPastFile(string $path, int $mtime): void {
try {
$file = $this->userFolder->get($path);
+ $file->putContent((string)$mtime);
} catch (NotFoundException $e) {
- $file = $this->userFolder->newFile($path);
+ $file = $this->userFolder->newFile($path, (string)$mtime);
}
- $file->putContent((string)$mtime);
$file->touch($mtime);
}
diff --git a/apps/files_versions/tests/VersioningTest.php b/apps/files_versions/tests/VersioningTest.php
index f294390a593..659b2cff10c 100644
--- a/apps/files_versions/tests/VersioningTest.php
+++ b/apps/files_versions/tests/VersioningTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -83,7 +85,10 @@ class VersioningTest extends \Test\TestCase {
parent::setUp();
$config = Server::get(IConfig::class);
- $mockConfig = $this->createMock(IConfig::class);
+ $mockConfig = $this->getMockBuilder(AllConfig::class)
+ ->onlyMethods(['getSystemValue'])
+ ->setConstructorArgs([Server::get(SystemConfig::class)])
+ ->getMock();
$mockConfig->expects($this->any())
->method('getSystemValue')
->willReturnCallback(function ($key, $default) use ($config) {
@@ -160,7 +165,7 @@ class VersioningTest extends \Test\TestCase {
}
}
- public function versionsProvider() {
+ public static function versionsProvider(): array {
return [
// first set of versions uniformly distributed versions
[
@@ -427,8 +432,9 @@ class VersioningTest extends \Test\TestCase {
$this->rootView->file_put_contents($v2, 'version2');
// move file into the shared folder as recipient
- Filesystem::rename('/test.txt', '/folder1/test.txt');
+ $success = Filesystem::rename('/test.txt', '/folder1/test.txt');
+ $this->assertTrue($success);
$this->assertFalse($this->rootView->file_exists($v1));
$this->assertFalse($this->rootView->file_exists($v2));
@@ -679,7 +685,7 @@ class VersioningTest extends \Test\TestCase {
$firstVersion = current($versions);
- $this->assertFalse(Storage::rollback('folder/test.txt', $firstVersion['version'], $this->user2), 'Revert did not happen');
+ $this->assertFalse(Storage::rollback('folder/test.txt', (int)$firstVersion['version'], $this->user2), 'Revert did not happen');
$this->loginAsUser(self::TEST_VERSIONS_USER);
@@ -739,8 +745,8 @@ class VersioningTest extends \Test\TestCase {
return;
}
- $eventHandler = $this->getMockBuilder(\stdclass::class)
- ->setMethods(['callback'])
+ $eventHandler = $this->getMockBuilder(DummyHookListener::class)
+ ->onlyMethods(['callback'])
->getMock();
$eventHandler->expects($this->any())
@@ -759,7 +765,7 @@ class VersioningTest extends \Test\TestCase {
);
}
- private function doTestRestore() {
+ private function doTestRestore(): void {
$filePath = self::TEST_VERSIONS_USER . '/files/sub/test.txt';
$this->rootView->file_put_contents($filePath, 'test file');
@@ -808,7 +814,7 @@ class VersioningTest extends \Test\TestCase {
$eventDispatcher = Server::get(IEventDispatcher::class);
$eventFired = false;
- $eventDispatcher->addListener(VersionRestoredEvent::class, function ($event) use (&$eventFired, $t2) {
+ $eventDispatcher->addListener(VersionRestoredEvent::class, function ($event) use (&$eventFired, $t2): void {
$eventFired = true;
$this->assertEquals('/sub/test.txt', $event->getVersion()->getVersionPath());
$this->assertTrue($event->getVersion()->getRevisionId() > 0);
@@ -937,11 +943,7 @@ class VersioningTest extends \Test\TestCase {
);
}
- /**
- * @param View $view
- * @param string $path
- */
- private function createAndCheckVersions(View $view, $path) {
+ private function createAndCheckVersions(View $view, string $path): array {
$view->file_put_contents($path, 'test file');
$view->file_put_contents($path, 'version 1');
$view->file_put_contents($path, 'version 2');
@@ -963,11 +965,7 @@ class VersioningTest extends \Test\TestCase {
return $versions;
}
- /**
- * @param string $user
- * @param bool $create
- */
- public static function loginHelper($user, $create = false) {
+ public static function loginHelper(string $user, bool $create = false) {
if ($create) {
$backend = new \Test\Util\User\Dummy();
$backend->createUser($user, $user);
@@ -983,6 +981,11 @@ class VersioningTest extends \Test\TestCase {
}
}
+class DummyHookListener {
+ public function callback() {
+ }
+}
+
// extend the original class to make it possible to test protected methods
class VersionStorageToTest extends Storage {
diff --git a/apps/files_versions/tests/Versions/VersionManagerTest.php b/apps/files_versions/tests/Versions/VersionManagerTest.php
index 8001d9fbf0e..79caa65d5f1 100644
--- a/apps/files_versions/tests/Versions/VersionManagerTest.php
+++ b/apps/files_versions/tests/Versions/VersionManagerTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\files_versions\tests\Versions;
+namespace OCA\Files_Versions\Tests\Versions;
use OC\Files\Storage\Local;
use OCA\Files_Versions\Events\VersionRestoredEvent;
@@ -15,6 +15,7 @@ use OCA\Files_Versions\Versions\IVersionBackend;
use OCA\Files_Versions\Versions\VersionManager;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Storage\IStorage;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class VersionManagerTest extends TestCase {
@@ -25,10 +26,10 @@ class VersionManagerTest extends TestCase {
return $backend;
}
- private function getStorage(string $class): IStorage {
+ private function getStorage(string $class): IStorage&MockObject {
return $this->getMockBuilder($class)
->disableOriginalConstructor()
- ->setMethodsExcept(['instanceOfStorage'])
+ ->onlyMethods(array_diff(get_class_methods($class), ['instanceOfStorage']))
->getMock();
}
diff --git a/apps/oauth2/l10n/af.js b/apps/oauth2/l10n/af.js
deleted file mode 100644
index dbc8eeb71d3..00000000000
--- a/apps/oauth2/l10n/af.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0" : "OAuth 2.0",
- "OAuth 2.0 clients" : "OAuth 2.0-kliënte",
- "Name" : "Naam",
- "Redirection URI" : "Herverwysings-URI",
- "Client Identifier" : "Kliëntidentifiseerder",
- "Add client" : "Voeg kliënt toe",
- "Add" : "Voeg toe",
- "Delete" : "Skrap"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/oauth2/l10n/af.json b/apps/oauth2/l10n/af.json
deleted file mode 100644
index 9f8e49b2d5a..00000000000
--- a/apps/oauth2/l10n/af.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0" : "OAuth 2.0",
- "OAuth 2.0 clients" : "OAuth 2.0-kliënte",
- "Name" : "Naam",
- "Redirection URI" : "Herverwysings-URI",
- "Client Identifier" : "Kliëntidentifiseerder",
- "Add client" : "Voeg kliënt toe",
- "Add" : "Voeg toe",
- "Delete" : "Skrap"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/es_419.js b/apps/oauth2/l10n/es_419.js
deleted file mode 100644
index e40806c627d..00000000000
--- a/apps/oauth2/l10n/es_419.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/oauth2/l10n/es_419.json b/apps/oauth2/l10n/es_419.json
deleted file mode 100644
index 0e63ef8d72e..00000000000
--- a/apps/oauth2/l10n/es_419.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/es_HN.js b/apps/oauth2/l10n/es_HN.js
deleted file mode 100644
index e40806c627d..00000000000
--- a/apps/oauth2/l10n/es_HN.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/oauth2/l10n/es_HN.json b/apps/oauth2/l10n/es_HN.json
deleted file mode 100644
index 0e63ef8d72e..00000000000
--- a/apps/oauth2/l10n/es_HN.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/es_NI.js b/apps/oauth2/l10n/es_NI.js
deleted file mode 100644
index e40806c627d..00000000000
--- a/apps/oauth2/l10n/es_NI.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/oauth2/l10n/es_NI.json b/apps/oauth2/l10n/es_NI.json
deleted file mode 100644
index 0e63ef8d72e..00000000000
--- a/apps/oauth2/l10n/es_NI.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/es_PA.js b/apps/oauth2/l10n/es_PA.js
deleted file mode 100644
index e40806c627d..00000000000
--- a/apps/oauth2/l10n/es_PA.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/oauth2/l10n/es_PA.json b/apps/oauth2/l10n/es_PA.json
deleted file mode 100644
index 0e63ef8d72e..00000000000
--- a/apps/oauth2/l10n/es_PA.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/es_PE.js b/apps/oauth2/l10n/es_PE.js
deleted file mode 100644
index e40806c627d..00000000000
--- a/apps/oauth2/l10n/es_PE.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/oauth2/l10n/es_PE.json b/apps/oauth2/l10n/es_PE.json
deleted file mode 100644
index 0e63ef8d72e..00000000000
--- a/apps/oauth2/l10n/es_PE.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/es_PR.js b/apps/oauth2/l10n/es_PR.js
deleted file mode 100644
index e40806c627d..00000000000
--- a/apps/oauth2/l10n/es_PR.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/oauth2/l10n/es_PR.json b/apps/oauth2/l10n/es_PR.json
deleted file mode 100644
index 0e63ef8d72e..00000000000
--- a/apps/oauth2/l10n/es_PR.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/es_PY.js b/apps/oauth2/l10n/es_PY.js
deleted file mode 100644
index e40806c627d..00000000000
--- a/apps/oauth2/l10n/es_PY.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/oauth2/l10n/es_PY.json b/apps/oauth2/l10n/es_PY.json
deleted file mode 100644
index 0e63ef8d72e..00000000000
--- a/apps/oauth2/l10n/es_PY.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/es_UY.js b/apps/oauth2/l10n/es_UY.js
deleted file mode 100644
index e40806c627d..00000000000
--- a/apps/oauth2/l10n/es_UY.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/oauth2/l10n/es_UY.json b/apps/oauth2/l10n/es_UY.json
deleted file mode 100644
index 0e63ef8d72e..00000000000
--- a/apps/oauth2/l10n/es_UY.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0 clients" : "Clientes OAuth 2.0",
- "Name" : "Nombre",
- "Redirection URI" : "URI para redirección",
- "Client Identifier" : "Identificador del cliente",
- "Secret key" : "Llave secreta",
- "Add client" : "Agregar cliente",
- "Add" : "Agregar",
- "Delete" : "Borrar"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/hu.js b/apps/oauth2/l10n/hu.js
index d584b3e8f83..eddb2928651 100644
--- a/apps/oauth2/l10n/hu.js
+++ b/apps/oauth2/l10n/hu.js
@@ -9,12 +9,15 @@ OC.L10N.register(
"OAuth 2.0 clients" : "OAuth 2.0 kliensek",
"OAuth 2.0 allows external services to request access to {instanceName}." : "Az OAuth 2.0 engedélyezi, hogy külső szolgáltatások hozzáférést kérjenek a következőhöz: {instanceName}.",
"Name" : "Név",
- "Redirection URI" : "Átirányítési URI",
+ "Redirection URI" : "Átirányítási URI",
"Client Identifier" : "Ügyfélazonosító",
"Secret key" : "Titkos kulcs",
+ "Delete client" : "Kliens törlése",
+ "Make sure you store the secret key, it cannot be recovered." : "Győződjön meg róla tárolja a titkos kulcsot, mert nem nyerhető vissza.",
"Add client" : "Kliens hozzáadása",
"Add" : "Hozzáadás",
- "Show client secret" : "Kliens titkának megjelenítése",
+ "Show client secret" : "Klienstitok megjelenítése",
+ "Hide client secret" : "Klienstitok elrejtése",
"Delete" : "Törlés"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/oauth2/l10n/hu.json b/apps/oauth2/l10n/hu.json
index 99888640fbc..2e0a9c4de02 100644
--- a/apps/oauth2/l10n/hu.json
+++ b/apps/oauth2/l10n/hu.json
@@ -7,12 +7,15 @@
"OAuth 2.0 clients" : "OAuth 2.0 kliensek",
"OAuth 2.0 allows external services to request access to {instanceName}." : "Az OAuth 2.0 engedélyezi, hogy külső szolgáltatások hozzáférést kérjenek a következőhöz: {instanceName}.",
"Name" : "Név",
- "Redirection URI" : "Átirányítési URI",
+ "Redirection URI" : "Átirányítási URI",
"Client Identifier" : "Ügyfélazonosító",
"Secret key" : "Titkos kulcs",
+ "Delete client" : "Kliens törlése",
+ "Make sure you store the secret key, it cannot be recovered." : "Győződjön meg róla tárolja a titkos kulcsot, mert nem nyerhető vissza.",
"Add client" : "Kliens hozzáadása",
"Add" : "Hozzáadás",
- "Show client secret" : "Kliens titkának megjelenítése",
+ "Show client secret" : "Klienstitok megjelenítése",
+ "Hide client secret" : "Klienstitok elrejtése",
"Delete" : "Törlés"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/oauth2/l10n/id.js b/apps/oauth2/l10n/id.js
deleted file mode 100644
index 7be61f59d20..00000000000
--- a/apps/oauth2/l10n/id.js
+++ /dev/null
@@ -1,13 +0,0 @@
-OC.L10N.register(
- "oauth2",
- {
- "OAuth 2.0 clients" : "Klien OAuth 2.0",
- "Name" : "Nama",
- "Redirection URI" : "URI Pengalihan",
- "Client Identifier" : "Identifier klien",
- "Secret key" : "Kunci rahasia",
- "Add client" : "Tambah klien",
- "Add" : "Tambah",
- "Delete" : "Hapus"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/oauth2/l10n/id.json b/apps/oauth2/l10n/id.json
deleted file mode 100644
index 430b92957b8..00000000000
--- a/apps/oauth2/l10n/id.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{ "translations": {
- "OAuth 2.0 clients" : "Klien OAuth 2.0",
- "Name" : "Nama",
- "Redirection URI" : "URI Pengalihan",
- "Client Identifier" : "Identifier klien",
- "Secret key" : "Kunci rahasia",
- "Add client" : "Tambah klien",
- "Add" : "Tambah",
- "Delete" : "Hapus"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/oauth2/l10n/nl.js b/apps/oauth2/l10n/nl.js
index 5cd0b50fb54..f27d2a062d8 100644
--- a/apps/oauth2/l10n/nl.js
+++ b/apps/oauth2/l10n/nl.js
@@ -12,9 +12,12 @@ OC.L10N.register(
"Redirection URI" : "Omeiding URI",
"Client Identifier" : "Client identificatie",
"Secret key" : "Geheime sleutel",
+ "Delete client" : "Client verwijderen",
+ "Make sure you store the secret key, it cannot be recovered." : "Zorg ervoor dat je de geheime sleutel opslaat, deze kan niet worden hersteld.",
"Add client" : "Voeg client toe",
"Add" : "Toevoegen",
- "Show client secret" : "Tonen client secret",
+ "Show client secret" : "Geheime sleutel van cliënt weergeven",
+ "Hide client secret" : "Geheime sleutel van cliënt verbergen",
"Delete" : "verwijderen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/oauth2/l10n/nl.json b/apps/oauth2/l10n/nl.json
index f0637c88e5a..c66631b5750 100644
--- a/apps/oauth2/l10n/nl.json
+++ b/apps/oauth2/l10n/nl.json
@@ -10,9 +10,12 @@
"Redirection URI" : "Omeiding URI",
"Client Identifier" : "Client identificatie",
"Secret key" : "Geheime sleutel",
+ "Delete client" : "Client verwijderen",
+ "Make sure you store the secret key, it cannot be recovered." : "Zorg ervoor dat je de geheime sleutel opslaat, deze kan niet worden hersteld.",
"Add client" : "Voeg client toe",
"Add" : "Toevoegen",
- "Show client secret" : "Tonen client secret",
+ "Show client secret" : "Geheime sleutel van cliënt weergeven",
+ "Hide client secret" : "Geheime sleutel van cliënt verbergen",
"Delete" : "verwijderen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/profile/l10n/nl.js b/apps/profile/l10n/nl.js
index 944feec3e0f..63c6d1d0056 100644
--- a/apps/profile/l10n/nl.js
+++ b/apps/profile/l10n/nl.js
@@ -2,6 +2,8 @@ OC.L10N.register(
"profile",
{
"Profile" : "Profiel",
+ "This application provides the profile" : "Deze applicatie biedt het profiel",
+ "Provides a customisable user profile interface." : "Biedt een aanpasbare gebruikersprofielinterface.",
"You have not added any info yet" : "Je hebt nog geen info toegevoegd",
"{user} has not added any info yet" : "{user} heeft nog geen info toegevoegd",
"Error opening the user status modal, try hard refreshing the page" : "Fout bij het openen van het gebruiker status model, probeer een harde refresh van de pagina",
diff --git a/apps/profile/l10n/nl.json b/apps/profile/l10n/nl.json
index 534a8e535da..920d89bf38f 100644
--- a/apps/profile/l10n/nl.json
+++ b/apps/profile/l10n/nl.json
@@ -1,5 +1,7 @@
{ "translations": {
"Profile" : "Profiel",
+ "This application provides the profile" : "Deze applicatie biedt het profiel",
+ "Provides a customisable user profile interface." : "Biedt een aanpasbare gebruikersprofielinterface.",
"You have not added any info yet" : "Je hebt nog geen info toegevoegd",
"{user} has not added any info yet" : "{user} heeft nog geen info toegevoegd",
"Error opening the user status modal, try hard refreshing the page" : "Fout bij het openen van het gebruiker status model, probeer een harde refresh van de pagina",
diff --git a/apps/profile/l10n/pt_PT.js b/apps/profile/l10n/pt_PT.js
new file mode 100644
index 00000000000..c9627213248
--- /dev/null
+++ b/apps/profile/l10n/pt_PT.js
@@ -0,0 +1,13 @@
+OC.L10N.register(
+ "profile",
+ {
+ "You have not added any info yet" : "Ainda não adicionou qualquer informação ",
+ "{user} has not added any info yet" : "{user} ainda não adicionou qualquer informação",
+ "Error opening the user status modal, try hard refreshing the page" : "Erro ao abrir o modal de estado do utilizador; tente atualizar a página forçadamente",
+ "Edit Profile" : "Editar perfil",
+ "The headline and about sections will show up here" : "Os campos de título e sobre aparecerão aqui",
+ "Profile not found" : "Perfil não encontrado",
+ "The profile does not exist." : "O perfil não existe.",
+ "Back to %s" : "Voltar para %s"
+},
+"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/profile/l10n/pt_PT.json b/apps/profile/l10n/pt_PT.json
new file mode 100644
index 00000000000..11ce126965c
--- /dev/null
+++ b/apps/profile/l10n/pt_PT.json
@@ -0,0 +1,11 @@
+{ "translations": {
+ "You have not added any info yet" : "Ainda não adicionou qualquer informação ",
+ "{user} has not added any info yet" : "{user} ainda não adicionou qualquer informação",
+ "Error opening the user status modal, try hard refreshing the page" : "Erro ao abrir o modal de estado do utilizador; tente atualizar a página forçadamente",
+ "Edit Profile" : "Editar perfil",
+ "The headline and about sections will show up here" : "Os campos de título e sobre aparecerão aqui",
+ "Profile not found" : "Perfil não encontrado",
+ "The profile does not exist." : "O perfil não existe.",
+ "Back to %s" : "Voltar para %s"
+},"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/profile/l10n/sw.js b/apps/profile/l10n/sw.js
new file mode 100644
index 00000000000..5091aa159ee
--- /dev/null
+++ b/apps/profile/l10n/sw.js
@@ -0,0 +1,13 @@
+OC.L10N.register(
+ "profile",
+ {
+ "You have not added any info yet" : "Hujaongeza taarifa yoyote bado",
+ "{user} has not added any info yet" : "{user} hajaongeza taarifa yoyote bado",
+ "Error opening the user status modal, try hard refreshing the page" : "Hitilafu imetokea wakati wa kufungua modi ya hali ya mtumiaji, jaribu kuonyesha upya ukurasa kwa bidii",
+ "Edit Profile" : "Hariri wasifu",
+ "The headline and about sections will show up here" : "The headline and about sections will show up here",
+ "Profile not found" : "Wasifu haupatikani",
+ "The profile does not exist." : "Wasifu haupo",
+ "Back to %s" : "Rudi kwenye %s"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/profile/l10n/sw.json b/apps/profile/l10n/sw.json
new file mode 100644
index 00000000000..86a4dee089a
--- /dev/null
+++ b/apps/profile/l10n/sw.json
@@ -0,0 +1,11 @@
+{ "translations": {
+ "You have not added any info yet" : "Hujaongeza taarifa yoyote bado",
+ "{user} has not added any info yet" : "{user} hajaongeza taarifa yoyote bado",
+ "Error opening the user status modal, try hard refreshing the page" : "Hitilafu imetokea wakati wa kufungua modi ya hali ya mtumiaji, jaribu kuonyesha upya ukurasa kwa bidii",
+ "Edit Profile" : "Hariri wasifu",
+ "The headline and about sections will show up here" : "The headline and about sections will show up here",
+ "Profile not found" : "Wasifu haupatikani",
+ "The profile does not exist." : "Wasifu haupo",
+ "Back to %s" : "Rudi kwenye %s"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/provisioning_api/appinfo/routes.php b/apps/provisioning_api/appinfo/routes.php
index 66d1fb699a9..df4f806fa08 100644
--- a/apps/provisioning_api/appinfo/routes.php
+++ b/apps/provisioning_api/appinfo/routes.php
@@ -35,6 +35,7 @@ return [
['root' => '/cloud', 'name' => 'Users#getCurrentUser', 'url' => '/user', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#getEditableFields', 'url' => '/user/fields', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#getEditableFieldsForUser', 'url' => '/user/fields/{userId}', 'verb' => 'GET'],
+ ['root' => '/cloud', 'name' => 'Users#getEnabledApps', 'url' => '/user/apps', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#editUser', 'url' => '/users/{userId}', 'verb' => 'PUT'],
['root' => '/cloud', 'name' => 'Users#editUserMultiValue', 'url' => '/users/{userId}/{collectionName}', 'verb' => 'PUT', 'requirements' => ['collectionName' => '^(?!enable$|disable$)[a-zA-Z0-9_]*$']],
['root' => '/cloud', 'name' => 'Users#wipeUserDevices', 'url' => '/users/{userId}/wipe', 'verb' => 'POST'],
diff --git a/apps/provisioning_api/l10n/bg.js b/apps/provisioning_api/l10n/bg.js
deleted file mode 100644
index 65f85f8e42a..00000000000
--- a/apps/provisioning_api/l10n/bg.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Влезлият потребител трябва да е администратор или да има разрешение за редактиране на тази настройка.",
- "User already exists" : "Вече съществува потребител",
- "Email confirmation" : "Потвърждение по имейл",
- "To enable the email address %s please click the button below." : "За да активирате имейл адреса %s, моля, щракнете върху долния бутон.",
- "Confirm" : "Потвърди",
- "Email was already removed from account and cannot be confirmed anymore." : "Имейлът вече е премахнат от профила и не може да бъде потвърден повече.",
- "Could not verify mail because the token is expired." : "Не можа да се потвърди пощата, защото токенът е изтекъл.",
- "Could not verify mail because the token is invalid." : "Не можа да се потвърди пощата, защото токенът е невалиден.",
- "An unexpected error occurred. Please contact your admin." : "Възникна неочаквана грешка. Моля, свържете се с вашия администратор.",
- "Email confirmation successful" : "Потвърждението по имейл е успешно",
- "Provisioning API" : "Осигуряващ API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Това приложение активира набор от API, които външните системи могат да използват за управление на потребители, групи и приложения.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Това приложение активира набор от API, които външните системи могат да използват за създаване, редактиране, изтриване и запитване на потребител\n\t\tатрибути, заявка, задаване и премахване на групи, задаване на квота и заявка за общо хранилище, използвано в Nextcloud. Потребители с администратор на групата\n\t\tможе също да подава заявка към Nextcloud и да изпълнява същите функции като администратор за групи, които управляват. API също позволява\n\t\tадминистратор, който да потърси активни приложения Nextcloud, информация за приложението и да активира или деактивира приложение от разстояние.\n\t\tСлед като приложението е активирано, HTTP заявките могат да се използват чрез Basic Auth заглавка за изпълнение на някоя от функциите\n\t\tизброени по-горе. Повече информация е налична в документацията на API за предоставяне, включително примерни повиквания\n\t\tи отговори на сървъра."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/bg.json b/apps/provisioning_api/l10n/bg.json
deleted file mode 100644
index 52b2fdb313f..00000000000
--- a/apps/provisioning_api/l10n/bg.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Влезлият потребител трябва да е администратор или да има разрешение за редактиране на тази настройка.",
- "User already exists" : "Вече съществува потребител",
- "Email confirmation" : "Потвърждение по имейл",
- "To enable the email address %s please click the button below." : "За да активирате имейл адреса %s, моля, щракнете върху долния бутон.",
- "Confirm" : "Потвърди",
- "Email was already removed from account and cannot be confirmed anymore." : "Имейлът вече е премахнат от профила и не може да бъде потвърден повече.",
- "Could not verify mail because the token is expired." : "Не можа да се потвърди пощата, защото токенът е изтекъл.",
- "Could not verify mail because the token is invalid." : "Не можа да се потвърди пощата, защото токенът е невалиден.",
- "An unexpected error occurred. Please contact your admin." : "Възникна неочаквана грешка. Моля, свържете се с вашия администратор.",
- "Email confirmation successful" : "Потвърждението по имейл е успешно",
- "Provisioning API" : "Осигуряващ API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Това приложение активира набор от API, които външните системи могат да използват за управление на потребители, групи и приложения.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Това приложение активира набор от API, които външните системи могат да използват за създаване, редактиране, изтриване и запитване на потребител\n\t\tатрибути, заявка, задаване и премахване на групи, задаване на квота и заявка за общо хранилище, използвано в Nextcloud. Потребители с администратор на групата\n\t\tможе също да подава заявка към Nextcloud и да изпълнява същите функции като администратор за групи, които управляват. API също позволява\n\t\tадминистратор, който да потърси активни приложения Nextcloud, информация за приложението и да активира или деактивира приложение от разстояние.\n\t\tСлед като приложението е активирано, HTTP заявките могат да се използват чрез Basic Auth заглавка за изпълнение на някоя от функциите\n\t\tизброени по-горе. Повече информация е налична в документацията на API за предоставяне, включително примерни повиквания\n\t\tи отговори на сървъра."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/de.js b/apps/provisioning_api/l10n/de.js
index e407741f9d5..155d7f9c848 100644
--- a/apps/provisioning_api/l10n/de.js
+++ b/apps/provisioning_api/l10n/de.js
@@ -29,11 +29,11 @@ OC.L10N.register(
"Email address not available" : "E-Mail-Adresse nicht verfügbar",
"Sending email failed" : "Senden der E-Mail ist fehlgeschlagen",
"Email confirmation" : "E-Mail-Bestätigung",
- "To enable the email address %s please click the button below." : "Um die E-Mail-Adresse %s zu bestätigen, klicke bitte auf die untenstehende Schaltfläche.",
+ "To enable the email address %s please click the button below." : "Um die E-Mailadresse %s zu bestätigen, auf die untenstehende Schaltfläche klicken.",
"Confirm" : "Bestätigen",
"Email was already removed from account and cannot be confirmed anymore." : "Diese E-Mail-Adresse wurde bereits aus dem Konto entfernt und kann nicht mehr bestätigt werden.",
- "Could not verify mail because the token is expired." : "Die E-Mail konnte nicht verifiziert werden, da die Frist des Tokens abgelaufen ist.",
- "Could not verify mail because the token is invalid." : "Die E-Mail konnte nicht verifiziert werden, da der Token ungültig ist.",
+ "Could not verify mail because the token is expired." : "Die E-Mailadresse konnte nicht verifiziert werden, da das Token abgelaufen ist.",
+ "Could not verify mail because the token is invalid." : "Die E-Mailadresse konnte nicht verifiziert werden, da der Token ungültig ist.",
"An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktiere deine Administration.",
"Email confirmation successful" : "Die E-Mail Bestätigung war erfolgreich.",
"Provisioning API" : "Bereitstellungs-API",
diff --git a/apps/provisioning_api/l10n/de.json b/apps/provisioning_api/l10n/de.json
index 36249979fa4..0fa532f48cd 100644
--- a/apps/provisioning_api/l10n/de.json
+++ b/apps/provisioning_api/l10n/de.json
@@ -27,11 +27,11 @@
"Email address not available" : "E-Mail-Adresse nicht verfügbar",
"Sending email failed" : "Senden der E-Mail ist fehlgeschlagen",
"Email confirmation" : "E-Mail-Bestätigung",
- "To enable the email address %s please click the button below." : "Um die E-Mail-Adresse %s zu bestätigen, klicke bitte auf die untenstehende Schaltfläche.",
+ "To enable the email address %s please click the button below." : "Um die E-Mailadresse %s zu bestätigen, auf die untenstehende Schaltfläche klicken.",
"Confirm" : "Bestätigen",
"Email was already removed from account and cannot be confirmed anymore." : "Diese E-Mail-Adresse wurde bereits aus dem Konto entfernt und kann nicht mehr bestätigt werden.",
- "Could not verify mail because the token is expired." : "Die E-Mail konnte nicht verifiziert werden, da die Frist des Tokens abgelaufen ist.",
- "Could not verify mail because the token is invalid." : "Die E-Mail konnte nicht verifiziert werden, da der Token ungültig ist.",
+ "Could not verify mail because the token is expired." : "Die E-Mailadresse konnte nicht verifiziert werden, da das Token abgelaufen ist.",
+ "Could not verify mail because the token is invalid." : "Die E-Mailadresse konnte nicht verifiziert werden, da der Token ungültig ist.",
"An unexpected error occurred. Please contact your admin." : "Es ist ein unerwarteter Fehler aufgetreten, bitte kontaktiere deine Administration.",
"Email confirmation successful" : "Die E-Mail Bestätigung war erfolgreich.",
"Provisioning API" : "Bereitstellungs-API",
diff --git a/apps/provisioning_api/l10n/el.js b/apps/provisioning_api/l10n/el.js
deleted file mode 100644
index 5b10b4adafe..00000000000
--- a/apps/provisioning_api/l10n/el.js
+++ /dev/null
@@ -1,16 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "User already exists" : "Ο χρήστης υπάρχει ήδη",
- "Email confirmation" : "Επιβεβαίωση ηλεκτρονικού ταχυδρομείου",
- "To enable the email address %s please click the button below." : "Για να ενεργοποιήσετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου %s κάντε κλικ στο παρακάτω κουμπί.",
- "Confirm" : "Επιβεβαίωση",
- "Email was already removed from account and cannot be confirmed anymore." : "Η διεύθυνση ηλεκτρονικού ταχυδρομείου έχει ήδη αφαιρεθεί από τον λογαριασμό και δεν μπορεί πλέον να επιβεβαιωθεί.",
- "Could not verify mail because the token is expired." : "Δεν ήταν δυνατή η επαλήθευση της αλληλογραφίας επειδή το διακριτικό έχει λήξει.",
- "Could not verify mail because the token is invalid." : "Αδυναμία επαλήθευσης ηλεκτρονικής αλληλογραφίας επειδή το διακριτικό δεν είναι έγκυρο.",
- "Email confirmation successful" : "Η επιβεβαίωση μέσω ηλεκτρονικού ταχυδρομείου ήταν επιτυχής",
- "Provisioning API" : "API παροχής",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Αυτή η εφαρμογή επιτρέπει ένα σύνολο API που μπορούν να χρησιμοποιήσουν τα εξωτερικά συστήματα για τη διαχείριση χρηστών, ομάδων και εφαρμογών.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Αυτή η εφαρμογή επιτρέπει ένα σύνολο API που μπορούν να χρησιμοποιήσουν τα εξωτερικά συστήματα για να δημιουργήσουν, να επεξεργαστούν, να διαγράψουν και να ρωτήσουν τις ιδιότητες των χρηστών, το ερώτημα, να ορίσουν και να αφαιρέσουν ομάδες, να ορίσουν το όριο και το συνολικό χώρο αποθήκευσης ερωτημάτων που χρησιμοποιούνται στο Nextcloud. Οι χρήστες διαχειριστή ομάδας μπορούν επίσης να υποβάλουν ερώτημα στο Nextcloud και να εκτελούν τις ίδιες λειτουργίες με έναν διαχειριστή για ομάδες που αυτοί διαχειρίζονται. Το API επιτρέπει επίσης σε έναν διαχειριστή να υποβάλλει ερώτημα για ενεργές εφαρμογές Nextcloud, πληροφορίες εφαρμογής και να ενεργοποιήσει ή να απενεργοποιήσει μια εφαρμογή από απόσταση. Μόλις ενεργοποιηθεί η εφαρμογή, τα αιτήματα HTTP μπορούν να χρησιμοποιηθούν μέσω κεφαλίδας Basic Auth για να εκτελέσουν οποιαδήποτε των λειτουργιών που αναφέρονται παραπάνω. Περισσότερες πληροφορίες διατίθενται στην τεκμηρίωση Provisioning API, συμπεριλαμβανομένων παραδειγμάτων κλήσεων και απαντήσεων διακομιστή."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/el.json b/apps/provisioning_api/l10n/el.json
deleted file mode 100644
index 525148a11a8..00000000000
--- a/apps/provisioning_api/l10n/el.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{ "translations": {
- "User already exists" : "Ο χρήστης υπάρχει ήδη",
- "Email confirmation" : "Επιβεβαίωση ηλεκτρονικού ταχυδρομείου",
- "To enable the email address %s please click the button below." : "Για να ενεργοποιήσετε τη διεύθυνση ηλεκτρονικού ταχυδρομείου %s κάντε κλικ στο παρακάτω κουμπί.",
- "Confirm" : "Επιβεβαίωση",
- "Email was already removed from account and cannot be confirmed anymore." : "Η διεύθυνση ηλεκτρονικού ταχυδρομείου έχει ήδη αφαιρεθεί από τον λογαριασμό και δεν μπορεί πλέον να επιβεβαιωθεί.",
- "Could not verify mail because the token is expired." : "Δεν ήταν δυνατή η επαλήθευση της αλληλογραφίας επειδή το διακριτικό έχει λήξει.",
- "Could not verify mail because the token is invalid." : "Αδυναμία επαλήθευσης ηλεκτρονικής αλληλογραφίας επειδή το διακριτικό δεν είναι έγκυρο.",
- "Email confirmation successful" : "Η επιβεβαίωση μέσω ηλεκτρονικού ταχυδρομείου ήταν επιτυχής",
- "Provisioning API" : "API παροχής",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Αυτή η εφαρμογή επιτρέπει ένα σύνολο API που μπορούν να χρησιμοποιήσουν τα εξωτερικά συστήματα για τη διαχείριση χρηστών, ομάδων και εφαρμογών.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Αυτή η εφαρμογή επιτρέπει ένα σύνολο API που μπορούν να χρησιμοποιήσουν τα εξωτερικά συστήματα για να δημιουργήσουν, να επεξεργαστούν, να διαγράψουν και να ρωτήσουν τις ιδιότητες των χρηστών, το ερώτημα, να ορίσουν και να αφαιρέσουν ομάδες, να ορίσουν το όριο και το συνολικό χώρο αποθήκευσης ερωτημάτων που χρησιμοποιούνται στο Nextcloud. Οι χρήστες διαχειριστή ομάδας μπορούν επίσης να υποβάλουν ερώτημα στο Nextcloud και να εκτελούν τις ίδιες λειτουργίες με έναν διαχειριστή για ομάδες που αυτοί διαχειρίζονται. Το API επιτρέπει επίσης σε έναν διαχειριστή να υποβάλλει ερώτημα για ενεργές εφαρμογές Nextcloud, πληροφορίες εφαρμογής και να ενεργοποιήσει ή να απενεργοποιήσει μια εφαρμογή από απόσταση. Μόλις ενεργοποιηθεί η εφαρμογή, τα αιτήματα HTTP μπορούν να χρησιμοποιηθούν μέσω κεφαλίδας Basic Auth για να εκτελέσουν οποιαδήποτε των λειτουργιών που αναφέρονται παραπάνω. Περισσότερες πληροφορίες διατίθενται στην τεκμηρίωση Provisioning API, συμπεριλαμβανομένων παραδειγμάτων κλήσεων και απαντήσεων διακομιστή."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/es_EC.js b/apps/provisioning_api/l10n/es_EC.js
deleted file mode 100644
index 5f62f67c552..00000000000
--- a/apps/provisioning_api/l10n/es_EC.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "El usuario conectado debe ser un administrador o tener autorización para editar esta configuración.",
- "User already exists" : "El usuario ya existe",
- "Email confirmation" : "Confirmación de correo electrónico",
- "To enable the email address %s please click the button below." : "Para habilitar la dirección de correo electrónico %s, haz clic en el botón de abajo.",
- "Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "El correo electrónico ya fue eliminado de la cuenta y no se puede confirmar.",
- "Could not verify mail because the token is expired." : "No se pudo verificar el correo porque el token ha expirado.",
- "Could not verify mail because the token is invalid." : "No se pudo verificar el correo porque el token no es válido.",
- "An unexpected error occurred. Please contact your admin." : "Se produjo un error inesperado. Por favor, contacta al administrador.",
- "Email confirmation successful" : "Confirmación de correo electrónico exitosa",
- "Provisioning API" : "API de aprovisionamiento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Esta aplicación habilita un conjunto de API que los sistemas externos pueden usar para administrar usuarios, grupos y aplicaciones.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Esta aplicación habilita un conjunto de API que los sistemas externos pueden usar para crear, editar, eliminar y consultar atributos de usuarios, consultar, establecer y eliminar grupos, establecer cuotas y consultar el almacenamiento total utilizado en Nextcloud. Los usuarios administradores de grupos también pueden consultar Nextcloud y realizar las mismas funciones que un administrador para los grupos que administran. La API también permite a un administrador consultar las aplicaciones activas de Nextcloud, la información de las aplicaciones y habilitar o deshabilitar una aplicación de forma remota. Una vez que la aplicación está habilitada, se pueden utilizar solicitudes HTTP a través de un encabezado de autenticación básica para realizar cualquiera de las funciones mencionadas anteriormente. Hay más información disponible en la documentación de la API de aprovisionamiento, que incluye ejemplos de llamadas y respuestas del servidor."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/provisioning_api/l10n/es_EC.json b/apps/provisioning_api/l10n/es_EC.json
deleted file mode 100644
index f37c9a17418..00000000000
--- a/apps/provisioning_api/l10n/es_EC.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "El usuario conectado debe ser un administrador o tener autorización para editar esta configuración.",
- "User already exists" : "El usuario ya existe",
- "Email confirmation" : "Confirmación de correo electrónico",
- "To enable the email address %s please click the button below." : "Para habilitar la dirección de correo electrónico %s, haz clic en el botón de abajo.",
- "Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "El correo electrónico ya fue eliminado de la cuenta y no se puede confirmar.",
- "Could not verify mail because the token is expired." : "No se pudo verificar el correo porque el token ha expirado.",
- "Could not verify mail because the token is invalid." : "No se pudo verificar el correo porque el token no es válido.",
- "An unexpected error occurred. Please contact your admin." : "Se produjo un error inesperado. Por favor, contacta al administrador.",
- "Email confirmation successful" : "Confirmación de correo electrónico exitosa",
- "Provisioning API" : "API de aprovisionamiento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Esta aplicación habilita un conjunto de API que los sistemas externos pueden usar para administrar usuarios, grupos y aplicaciones.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Esta aplicación habilita un conjunto de API que los sistemas externos pueden usar para crear, editar, eliminar y consultar atributos de usuarios, consultar, establecer y eliminar grupos, establecer cuotas y consultar el almacenamiento total utilizado en Nextcloud. Los usuarios administradores de grupos también pueden consultar Nextcloud y realizar las mismas funciones que un administrador para los grupos que administran. La API también permite a un administrador consultar las aplicaciones activas de Nextcloud, la información de las aplicaciones y habilitar o deshabilitar una aplicación de forma remota. Una vez que la aplicación está habilitada, se pueden utilizar solicitudes HTTP a través de un encabezado de autenticación básica para realizar cualquiera de las funciones mencionadas anteriormente. Hay más información disponible en la documentación de la API de aprovisionamiento, que incluye ejemplos de llamadas y respuestas del servidor."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/fa.js b/apps/provisioning_api/l10n/fa.js
deleted file mode 100644
index be264dd36af..00000000000
--- a/apps/provisioning_api/l10n/fa.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Logged in user must be an administrator or have authorization to edit this setting.",
- "User already exists" : "User already exists",
- "Email confirmation" : "Email confirmation",
- "To enable the email address %s please click the button below." : "To enable the email address %s please click the button below.",
- "Confirm" : "تائید",
- "Email was already removed from account and cannot be confirmed anymore." : "Email was already removed from account and cannot be confirmed anymore.",
- "Could not verify mail because the token is expired." : "Could not verify mail because the token is expired.",
- "Could not verify mail because the token is invalid." : "Could not verify mail because the token is invalid.",
- "An unexpected error occurred. Please contact your admin." : "An unexpected error occurred. Please contact your admin.",
- "Email confirmation successful" : "Email confirmation successful",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "This application enables a set of APIs that external systems can use to manage users, groups and apps.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses."
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/provisioning_api/l10n/fa.json b/apps/provisioning_api/l10n/fa.json
deleted file mode 100644
index bffa08e9c25..00000000000
--- a/apps/provisioning_api/l10n/fa.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Logged in user must be an administrator or have authorization to edit this setting.",
- "User already exists" : "User already exists",
- "Email confirmation" : "Email confirmation",
- "To enable the email address %s please click the button below." : "To enable the email address %s please click the button below.",
- "Confirm" : "تائید",
- "Email was already removed from account and cannot be confirmed anymore." : "Email was already removed from account and cannot be confirmed anymore.",
- "Could not verify mail because the token is expired." : "Could not verify mail because the token is expired.",
- "Could not verify mail because the token is invalid." : "Could not verify mail because the token is invalid.",
- "An unexpected error occurred. Please contact your admin." : "An unexpected error occurred. Please contact your admin.",
- "Email confirmation successful" : "Email confirmation successful",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "This application enables a set of APIs that external systems can use to manage users, groups and apps.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses."
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/hr.js b/apps/provisioning_api/l10n/hr.js
deleted file mode 100644
index 5c94beac555..00000000000
--- a/apps/provisioning_api/l10n/hr.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Korisnik koji je prijavljen mora biti administrator ili imati ovlaštenje za uređivanje ove postavke.",
- "User already exists" : "Korisnik već postoji",
- "Email confirmation" : "Potvrda e-poštom",
- "To enable the email address %s please click the button below." : "Kliknite na gumb u nastavku kako biste omogućili adresu e-pošte %s.",
- "Confirm" : "Potvrdi",
- "Email was already removed from account and cannot be confirmed anymore." : "Adresa e-pošte uklonjena je iz računa i nije je moguće potvrditi.",
- "Could not verify mail because the token is expired." : "Potvrđivanje adrese e-pošte nije moguće jer je token istekao.",
- "Could not verify mail because the token is invalid." : "Potvrđivanje adrese e-pošte nije moguće jer je token nevažeći.",
- "An unexpected error occurred. Please contact your admin." : "Došlo je do neočekivane pogreške. Obratite se svom administratoru.",
- "Email confirmation successful" : "Adresa e-pošte uspješno je potvrđena",
- "Provisioning API" : "API za uvođenje u rad",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Ova aplikacija omogućuje uporabu skupa API-ja koje vanjski sustavi mogu iskoristiti za upravljanje korisnicima, grupama i aplikacijama.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ova aplikacija omogućuje skup API-ja koje vanjski sustavi mogu iskoristiti za stvaranje, uređivanje, brisanje i upućivanje upita o korisničkim\n\t\tatributima, postavljanje i uklanjanje grupa, postavljanje kvota i provjeravanje ukupne količine pohrane koju upotrebljava Nextcloud. Korisnici administratori grupe\n\t\ttakođer mogu upućivati upite Nextcloudu i izvršavati iste funkcije kao i administrator grupe kojima upravljaju. API također omogućuje\n\t\tadministratoru upućivanje upita o aktivnim aplikacijama u Nextcloudu, traženje informacija o aplikacijama i daljinsko omogućavanje ili onemogućavanje aplikacije.\n\t\tKad je aplikacija omogućena, HTTP zahtjevi mogu se slati putem Basic Auth zaglavlja za izvršavanje bilo koje od\n\t\tnavedenih funkcija. Više informacija možete pronaći u dokumentaciji API-ja, uključujući primjere poziva\n\t\ti odgovora poslužitelja."
-},
-"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/provisioning_api/l10n/hr.json b/apps/provisioning_api/l10n/hr.json
deleted file mode 100644
index f2270c9f90d..00000000000
--- a/apps/provisioning_api/l10n/hr.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Korisnik koji je prijavljen mora biti administrator ili imati ovlaštenje za uređivanje ove postavke.",
- "User already exists" : "Korisnik već postoji",
- "Email confirmation" : "Potvrda e-poštom",
- "To enable the email address %s please click the button below." : "Kliknite na gumb u nastavku kako biste omogućili adresu e-pošte %s.",
- "Confirm" : "Potvrdi",
- "Email was already removed from account and cannot be confirmed anymore." : "Adresa e-pošte uklonjena je iz računa i nije je moguće potvrditi.",
- "Could not verify mail because the token is expired." : "Potvrđivanje adrese e-pošte nije moguće jer je token istekao.",
- "Could not verify mail because the token is invalid." : "Potvrđivanje adrese e-pošte nije moguće jer je token nevažeći.",
- "An unexpected error occurred. Please contact your admin." : "Došlo je do neočekivane pogreške. Obratite se svom administratoru.",
- "Email confirmation successful" : "Adresa e-pošte uspješno je potvrđena",
- "Provisioning API" : "API za uvođenje u rad",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Ova aplikacija omogućuje uporabu skupa API-ja koje vanjski sustavi mogu iskoristiti za upravljanje korisnicima, grupama i aplikacijama.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ova aplikacija omogućuje skup API-ja koje vanjski sustavi mogu iskoristiti za stvaranje, uređivanje, brisanje i upućivanje upita o korisničkim\n\t\tatributima, postavljanje i uklanjanje grupa, postavljanje kvota i provjeravanje ukupne količine pohrane koju upotrebljava Nextcloud. Korisnici administratori grupe\n\t\ttakođer mogu upućivati upite Nextcloudu i izvršavati iste funkcije kao i administrator grupe kojima upravljaju. API također omogućuje\n\t\tadministratoru upućivanje upita o aktivnim aplikacijama u Nextcloudu, traženje informacija o aplikacijama i daljinsko omogućavanje ili onemogućavanje aplikacije.\n\t\tKad je aplikacija omogućena, HTTP zahtjevi mogu se slati putem Basic Auth zaglavlja za izvršavanje bilo koje od\n\t\tnavedenih funkcija. Više informacija možete pronaći u dokumentaciji API-ja, uključujući primjere poziva\n\t\ti odgovora poslužitelja."
-},"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/provisioning_api/l10n/hu.js b/apps/provisioning_api/l10n/hu.js
deleted file mode 100644
index df4aef6fd00..00000000000
--- a/apps/provisioning_api/l10n/hu.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "A bejelentkezett felhasználónak rendszergazdának kell lennie, vagy engedéllyel kell rendelkeznie, hogy szerkessze ezt a beállítást.",
- "User already exists" : "A felhasználó már létezik",
- "Email confirmation" : "E-mail-cím megerősítése",
- "To enable the email address %s please click the button below." : "A(z) %s e-mail-cím engedélyezéséhez kattintson a lenti gombra.",
- "Confirm" : "Megerősítés",
- "Email was already removed from account and cannot be confirmed anymore." : "Az e-mail már el lett távolítva a fiókból, és már nem erősíthető meg.",
- "Could not verify mail because the token is expired." : "Az e-mail-címet nem lehet megerősíteni, mert a token lejárt.",
- "Could not verify mail because the token is invalid." : "Az e-mail-címet nem lehet megerősíteni, mert a token érvénytelen.",
- "An unexpected error occurred. Please contact your admin." : "Váratlan hiba történt. Lépjen kapcsolatba a rendszergazdával.",
- "Email confirmation successful" : "Az e-mail-cím megerősítése sikeres",
- "Provisioning API" : "Felügyeleti API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Ez az alkalmazás bekapcsol egy API készletet, melyeket külső rendszerek arra használhatnak, hogy a felhasználókat, csoportokat és alkalmazásokat kezeljenek.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ez az alkalmazás bekapcsol egy API készletet, melyeket külső rendszerek használhatnak a felhasználók létrehozására,\n\t\tszerkesztésére, törlésére és attribútumok lekérdezésére, csoportok beállítására, eltávolítására és\n\t\tlekérdezésére, kvóta beállítására és a teljes tárhely lekérdezésére a Nextcloudban. A csoport admin felhasználók\n\t\tlekérdezhetik a Nextcloudot, és ugyanazokat a funkciókat hajthatják végre, mint az adminisztrátor az általuk\n\t\tkezelt csoportoknál. Az API szintén megengedi a rendszergazdának az aktív nextcloudos alkalmazások,\n\t\talkalmazásinformációk lekérdezését, valamint az alkalmazások távoli engedélyezését vagy letiltását. Miután\n\t\tengedélyezte az alkalmazást, a HTTP-kéréseket a Basic hitelesítési fejlécen keresztül fel lehet használni\n\t\tbármely, a feljebb felsorolt funkció végrehajtására. További információ a Provisioning API dokumentációjában\n\t\ttalálható, beleértve a példahívásokat és a kiszolgáló válaszait is."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/hu.json b/apps/provisioning_api/l10n/hu.json
deleted file mode 100644
index 4a08b9acae8..00000000000
--- a/apps/provisioning_api/l10n/hu.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "A bejelentkezett felhasználónak rendszergazdának kell lennie, vagy engedéllyel kell rendelkeznie, hogy szerkessze ezt a beállítást.",
- "User already exists" : "A felhasználó már létezik",
- "Email confirmation" : "E-mail-cím megerősítése",
- "To enable the email address %s please click the button below." : "A(z) %s e-mail-cím engedélyezéséhez kattintson a lenti gombra.",
- "Confirm" : "Megerősítés",
- "Email was already removed from account and cannot be confirmed anymore." : "Az e-mail már el lett távolítva a fiókból, és már nem erősíthető meg.",
- "Could not verify mail because the token is expired." : "Az e-mail-címet nem lehet megerősíteni, mert a token lejárt.",
- "Could not verify mail because the token is invalid." : "Az e-mail-címet nem lehet megerősíteni, mert a token érvénytelen.",
- "An unexpected error occurred. Please contact your admin." : "Váratlan hiba történt. Lépjen kapcsolatba a rendszergazdával.",
- "Email confirmation successful" : "Az e-mail-cím megerősítése sikeres",
- "Provisioning API" : "Felügyeleti API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Ez az alkalmazás bekapcsol egy API készletet, melyeket külső rendszerek arra használhatnak, hogy a felhasználókat, csoportokat és alkalmazásokat kezeljenek.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Ez az alkalmazás bekapcsol egy API készletet, melyeket külső rendszerek használhatnak a felhasználók létrehozására,\n\t\tszerkesztésére, törlésére és attribútumok lekérdezésére, csoportok beállítására, eltávolítására és\n\t\tlekérdezésére, kvóta beállítására és a teljes tárhely lekérdezésére a Nextcloudban. A csoport admin felhasználók\n\t\tlekérdezhetik a Nextcloudot, és ugyanazokat a funkciókat hajthatják végre, mint az adminisztrátor az általuk\n\t\tkezelt csoportoknál. Az API szintén megengedi a rendszergazdának az aktív nextcloudos alkalmazások,\n\t\talkalmazásinformációk lekérdezését, valamint az alkalmazások távoli engedélyezését vagy letiltását. Miután\n\t\tengedélyezte az alkalmazást, a HTTP-kéréseket a Basic hitelesítési fejlécen keresztül fel lehet használni\n\t\tbármely, a feljebb felsorolt funkció végrehajtására. További információ a Provisioning API dokumentációjában\n\t\ttalálható, beleértve a példahívásokat és a kiszolgáló válaszait is."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/is.js b/apps/provisioning_api/l10n/is.js
deleted file mode 100644
index 1e84328cd81..00000000000
--- a/apps/provisioning_api/l10n/is.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Innskráður notandi verður að vera kerfisstjóri eða hafa fengið sérstaka aðgangsheimild fyrir þessa stillingu.",
- "User already exists" : "Notandi er þegar til",
- "Email confirmation" : "Staðfesting tölvupósts",
- "To enable the email address %s please click the button below." : "Til að virkja tölvupóstfangið %s skaltu ýta á hnappinn hér fyrir neðan.",
- "Confirm" : "Staðfesta",
- "Email was already removed from account and cannot be confirmed anymore." : "Tölvupóstfangið hefur þegar verið fjarlægt úr aðgangnum og er ekki lengur hægt að staðfesta það.",
- "Could not verify mail because the token is expired." : "Gat ekki staðfest tölvupóstfang vegna þess að teiknið er útrunnið.",
- "Could not verify mail because the token is invalid." : "Gat ekki staðfest tölvupóstfang vegna þess að teiknið er ógilt.",
- "An unexpected error occurred. Please contact your admin." : "Óvænt villa kom upp. Hafðu samband við kerfisstjóra.",
- "Email confirmation successful" : "Staðfesting tölvupósts tókst"
-},
-"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/provisioning_api/l10n/is.json b/apps/provisioning_api/l10n/is.json
deleted file mode 100644
index 727ac3a9c09..00000000000
--- a/apps/provisioning_api/l10n/is.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Innskráður notandi verður að vera kerfisstjóri eða hafa fengið sérstaka aðgangsheimild fyrir þessa stillingu.",
- "User already exists" : "Notandi er þegar til",
- "Email confirmation" : "Staðfesting tölvupósts",
- "To enable the email address %s please click the button below." : "Til að virkja tölvupóstfangið %s skaltu ýta á hnappinn hér fyrir neðan.",
- "Confirm" : "Staðfesta",
- "Email was already removed from account and cannot be confirmed anymore." : "Tölvupóstfangið hefur þegar verið fjarlægt úr aðgangnum og er ekki lengur hægt að staðfesta það.",
- "Could not verify mail because the token is expired." : "Gat ekki staðfest tölvupóstfang vegna þess að teiknið er útrunnið.",
- "Could not verify mail because the token is invalid." : "Gat ekki staðfest tölvupóstfang vegna þess að teiknið er ógilt.",
- "An unexpected error occurred. Please contact your admin." : "Óvænt villa kom upp. Hafðu samband við kerfisstjóra.",
- "Email confirmation successful" : "Staðfesting tölvupósts tókst"
-},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/it.js b/apps/provisioning_api/l10n/it.js
deleted file mode 100644
index d9c7c0352e2..00000000000
--- a/apps/provisioning_api/l10n/it.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "L'utente connesso deve essere un amministratore o avere il permesso di modificare questa impostazione.",
- "User already exists" : "L'utente esiste già",
- "Email confirmation" : "Conferma email",
- "To enable the email address %s please click the button below." : "Per attivare l'indirizzo email %s fai clic sul pulsante sottostante.",
- "Confirm" : "Conferma",
- "Email was already removed from account and cannot be confirmed anymore." : "L'email era già stata rimossa dall'account e non può più essere confermata.",
- "Could not verify mail because the token is expired." : "Impossibile verificare l'email perché il token è scaduto.",
- "Could not verify mail because the token is invalid." : "Impossibile verificare l'email perché il token non è valido.",
- "An unexpected error occurred. Please contact your admin." : "Si è verificato un errore imprevisto. Contatta l'amministratore.",
- "Email confirmation successful" : "Conferma email riuscita",
- "Provisioning API" : "API di approvvigionamento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Questa applicazione abilita un insiemw di API che sistemi esterni possono usare per gestire utenti, gruppi e applicazioni.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Questa applicazione abilita un insieme di API che sistemi esterni possono usare per creare, modificare, eliminare e rilevare attributi\n\t\tutente, interrogare, impostare e rimuovere gruppi, limitare e rilevare lo spazio totale usato in Nextcloud. Gli utenti amministratori di un gruppo\n\t\tpossono anche interrogare Nextcloud e fare le stesse azioni degli amministratori per i gruppi che gestiscono. L'API permette anche\n\t\ta un amministratore di interrogare le applicazioni Nextcloud attive, informazioni sulle applicazioni, e di abilitare e disabilitare un'applicazione da remoto.\n\t\tUna volta che l'applicazione è abilitata, possono essere utilizzate richieste HTTP attraverso un'intestazione Basic Auth per eseguire qualsiasi funzione\n\telencata sopra. Ulteriori informazioni sono disponibili nella documentazione dell'API di approvvigionamento, incluse chiamate di esempio\n\t\te risposte del server."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/provisioning_api/l10n/it.json b/apps/provisioning_api/l10n/it.json
deleted file mode 100644
index a1493bda9f7..00000000000
--- a/apps/provisioning_api/l10n/it.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "L'utente connesso deve essere un amministratore o avere il permesso di modificare questa impostazione.",
- "User already exists" : "L'utente esiste già",
- "Email confirmation" : "Conferma email",
- "To enable the email address %s please click the button below." : "Per attivare l'indirizzo email %s fai clic sul pulsante sottostante.",
- "Confirm" : "Conferma",
- "Email was already removed from account and cannot be confirmed anymore." : "L'email era già stata rimossa dall'account e non può più essere confermata.",
- "Could not verify mail because the token is expired." : "Impossibile verificare l'email perché il token è scaduto.",
- "Could not verify mail because the token is invalid." : "Impossibile verificare l'email perché il token non è valido.",
- "An unexpected error occurred. Please contact your admin." : "Si è verificato un errore imprevisto. Contatta l'amministratore.",
- "Email confirmation successful" : "Conferma email riuscita",
- "Provisioning API" : "API di approvvigionamento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Questa applicazione abilita un insiemw di API che sistemi esterni possono usare per gestire utenti, gruppi e applicazioni.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Questa applicazione abilita un insieme di API che sistemi esterni possono usare per creare, modificare, eliminare e rilevare attributi\n\t\tutente, interrogare, impostare e rimuovere gruppi, limitare e rilevare lo spazio totale usato in Nextcloud. Gli utenti amministratori di un gruppo\n\t\tpossono anche interrogare Nextcloud e fare le stesse azioni degli amministratori per i gruppi che gestiscono. L'API permette anche\n\t\ta un amministratore di interrogare le applicazioni Nextcloud attive, informazioni sulle applicazioni, e di abilitare e disabilitare un'applicazione da remoto.\n\t\tUna volta che l'applicazione è abilitata, possono essere utilizzate richieste HTTP attraverso un'intestazione Basic Auth per eseguire qualsiasi funzione\n\telencata sopra. Ulteriori informazioni sono disponibili nella documentazione dell'API di approvvigionamento, incluse chiamate di esempio\n\t\te risposte del server."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/nl.js b/apps/provisioning_api/l10n/nl.js
deleted file mode 100644
index 0a5cb60fc79..00000000000
--- a/apps/provisioning_api/l10n/nl.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Ingelogde gebruiker moet een beheerder zijn of geautoriseerd zijn om deze instelling aan te passen",
- "User already exists" : "Gebruiker bestaat al",
- "Email confirmation" : "E-mailbevestiging",
- "To enable the email address %s please click the button below." : "Klik op de onderstaande knop om het e-mail adres %s in te schakelen.",
- "Confirm" : "Bevestigen",
- "Email was already removed from account and cannot be confirmed anymore." : "E-mail was reeds verwijderd van de account en kan niet meer bevestigd worden.",
- "Could not verify mail because the token is expired." : "Kon de mail niet verifiëren omdat de token verlopen is.",
- "Could not verify mail because the token is invalid." : "Kon de mail niet verifiëren omdat de token ongeldig is.",
- "An unexpected error occurred. Please contact your admin." : "Een onverwachte fout trad op. Neem contact op met je beheerder.",
- "Email confirmation successful" : "E-mailbevestiging succesvol",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Deze applicatie maakt een reeks API's mogelijk die externe systemen kunnen gebruiken om gebruikers, groepen en apps te beheren.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Deze applicatie maakt een reeks API's mogelijk die externe systemen kunnen gebruiken om gebruikers te creëren, bewerken, verwijderen en bevragen\n\t\tattributen, query's uitvoeren, groepen instellen en verwijderen, quota instellen en de totale opslagruimte opvragen die wordt gebruikt in Nextcloud. Groepsbeheerders\n\t\tkunnen ook Nextcloud opvragen en dezelfde functies uitvoeren als een beheerder voor groepen die ze beheert. De API maakt het ook\n\t\tmogelijk voor een beheerder om te vragen naar actieve Nextcloud-applicaties, applicatie-info en om een app op afstand in- of uit te schakelen.\n\t\tZodra de app is ingeschakeld, kunnen HTTP-verzoeken worden gebruikt via een Basic Auth-header om de functies \n\t\thierboven uit te voeren. Meer informatie is beschikbaar in de Provisioning API-documentatie, inclusief voorbeeldoproepen\n\t\ten serverreacties."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/nl.json b/apps/provisioning_api/l10n/nl.json
deleted file mode 100644
index 6b79cc3fd5c..00000000000
--- a/apps/provisioning_api/l10n/nl.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Ingelogde gebruiker moet een beheerder zijn of geautoriseerd zijn om deze instelling aan te passen",
- "User already exists" : "Gebruiker bestaat al",
- "Email confirmation" : "E-mailbevestiging",
- "To enable the email address %s please click the button below." : "Klik op de onderstaande knop om het e-mail adres %s in te schakelen.",
- "Confirm" : "Bevestigen",
- "Email was already removed from account and cannot be confirmed anymore." : "E-mail was reeds verwijderd van de account en kan niet meer bevestigd worden.",
- "Could not verify mail because the token is expired." : "Kon de mail niet verifiëren omdat de token verlopen is.",
- "Could not verify mail because the token is invalid." : "Kon de mail niet verifiëren omdat de token ongeldig is.",
- "An unexpected error occurred. Please contact your admin." : "Een onverwachte fout trad op. Neem contact op met je beheerder.",
- "Email confirmation successful" : "E-mailbevestiging succesvol",
- "Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Deze applicatie maakt een reeks API's mogelijk die externe systemen kunnen gebruiken om gebruikers, groepen en apps te beheren.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Deze applicatie maakt een reeks API's mogelijk die externe systemen kunnen gebruiken om gebruikers te creëren, bewerken, verwijderen en bevragen\n\t\tattributen, query's uitvoeren, groepen instellen en verwijderen, quota instellen en de totale opslagruimte opvragen die wordt gebruikt in Nextcloud. Groepsbeheerders\n\t\tkunnen ook Nextcloud opvragen en dezelfde functies uitvoeren als een beheerder voor groepen die ze beheert. De API maakt het ook\n\t\tmogelijk voor een beheerder om te vragen naar actieve Nextcloud-applicaties, applicatie-info en om een app op afstand in- of uit te schakelen.\n\t\tZodra de app is ingeschakeld, kunnen HTTP-verzoeken worden gebruikt via een Basic Auth-header om de functies \n\t\thierboven uit te voeren. Meer informatie is beschikbaar in de Provisioning API-documentatie, inclusief voorbeeldoproepen\n\t\ten serverreacties."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/pl.js b/apps/provisioning_api/l10n/pl.js
deleted file mode 100644
index 1a3b3c554f8..00000000000
--- a/apps/provisioning_api/l10n/pl.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Zalogowany użytkownik musi być administratorem lub mieć uprawnienia do edycji tego ustawienia.",
- "User already exists" : "Użytkownik już istnieje",
- "Email confirmation" : "Potwierdzenie e-mailem",
- "To enable the email address %s please click the button below." : "Aby włączyć adres e-mail %s, kliknij poniższy przycisk.",
- "Confirm" : "Potwierdź",
- "Email was already removed from account and cannot be confirmed anymore." : "E-mail został już usunięty z konta i nie można go już potwierdzić.",
- "Could not verify mail because the token is expired." : "Nie można zweryfikować poczty, ponieważ token wygasł.",
- "Could not verify mail because the token is invalid." : "Nie można zweryfikować poczty, ponieważ token jest nieprawidłowy.",
- "An unexpected error occurred. Please contact your admin." : "Wystąpił nieoczekiwany błąd. Skontaktuj się z administratorem.",
- "Email confirmation successful" : "Potwierdzenie e-maila powiodło się",
- "Provisioning API" : "API obsługi administracyjnej",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Aplikacja udostępnia zestaw interfejsów API, których systemy zewnętrzne mogą używać ich do zarządzania użytkownikami, grupami i aplikacjami.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Aplikacja udostępnia zestaw interfejsów API, których systemy zewnętrzne mogą używać ich do tworzenia, edytowania, usuwania i wysyłania zapytań o atrybuty użytkowników,\n\t\tkonfigurowania i usuwania grup, ustawiania przydziałów i zapytań o całkowitą pamięć używaną w Nextcloud. Użytkownicy będący administratorami grup\n\t\tmogą również wysyłać zapytania do Nextcloud i wykonywać te same funkcje, co administrator w zarządzanych przez siebie grupach. API umożliwia również\n\t\tadministratorowi do wysyłania zapytań o aktywne aplikacje Nextcloud, informacje o aplikacji oraz do zdalnego włączania lub wyłączania aplikacji.\n\t\tPo włączeniu aplikacji można używać żądań HTTP za pośrednictwem nagłówka Basic Auth do wykonywania dowolnej funkcji\n\t\twymienionej powyżej. Więcej informacji można znaleźć w dokumentacji interfejsu API do obsługi administracyjnej, w tym przykładowe wywołania\n\t\ti odpowiedzi serwera."
-},
-"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/provisioning_api/l10n/pl.json b/apps/provisioning_api/l10n/pl.json
deleted file mode 100644
index e35ae0c4279..00000000000
--- a/apps/provisioning_api/l10n/pl.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Zalogowany użytkownik musi być administratorem lub mieć uprawnienia do edycji tego ustawienia.",
- "User already exists" : "Użytkownik już istnieje",
- "Email confirmation" : "Potwierdzenie e-mailem",
- "To enable the email address %s please click the button below." : "Aby włączyć adres e-mail %s, kliknij poniższy przycisk.",
- "Confirm" : "Potwierdź",
- "Email was already removed from account and cannot be confirmed anymore." : "E-mail został już usunięty z konta i nie można go już potwierdzić.",
- "Could not verify mail because the token is expired." : "Nie można zweryfikować poczty, ponieważ token wygasł.",
- "Could not verify mail because the token is invalid." : "Nie można zweryfikować poczty, ponieważ token jest nieprawidłowy.",
- "An unexpected error occurred. Please contact your admin." : "Wystąpił nieoczekiwany błąd. Skontaktuj się z administratorem.",
- "Email confirmation successful" : "Potwierdzenie e-maila powiodło się",
- "Provisioning API" : "API obsługi administracyjnej",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Aplikacja udostępnia zestaw interfejsów API, których systemy zewnętrzne mogą używać ich do zarządzania użytkownikami, grupami i aplikacjami.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Aplikacja udostępnia zestaw interfejsów API, których systemy zewnętrzne mogą używać ich do tworzenia, edytowania, usuwania i wysyłania zapytań o atrybuty użytkowników,\n\t\tkonfigurowania i usuwania grup, ustawiania przydziałów i zapytań o całkowitą pamięć używaną w Nextcloud. Użytkownicy będący administratorami grup\n\t\tmogą również wysyłać zapytania do Nextcloud i wykonywać te same funkcje, co administrator w zarządzanych przez siebie grupach. API umożliwia również\n\t\tadministratorowi do wysyłania zapytań o aktywne aplikacje Nextcloud, informacje o aplikacji oraz do zdalnego włączania lub wyłączania aplikacji.\n\t\tPo włączeniu aplikacji można używać żądań HTTP za pośrednictwem nagłówka Basic Auth do wykonywania dowolnej funkcji\n\t\twymienionej powyżej. Więcej informacji można znaleźć w dokumentacji interfejsu API do obsługi administracyjnej, w tym przykładowe wywołania\n\t\ti odpowiedzi serwera."
-},"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/provisioning_api/l10n/pt_PT.js b/apps/provisioning_api/l10n/pt_PT.js
deleted file mode 100644
index 88f90905de4..00000000000
--- a/apps/provisioning_api/l10n/pt_PT.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "O usuário conectado deve ser um administrador ou ter autorização para editar esta configuração. ",
- "Email confirmation" : "Verificação de correio eletrónico.",
- "To enable the email address %s please click the button below." : "Para habilitar o endereço de correio eletrónico %s por favor pressione o botão abaixo.",
- "Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "O endereço já foi removido da conta e não pode mais ser confirmado.",
- "Could not verify mail because the token is expired." : "Não foi possível verificar o endereço porque o marcador expirou.",
- "Could not verify mail because the token is invalid." : "Não foi possível verificar o endereço porque o marcador é inválido.",
- "An unexpected error occurred. Please contact your admin." : "Ocorreu um erro inesperado. Contacte o seu administrador de sistemas.",
- "Email confirmation successful" : "Endereço confirmado com sucesso",
- "Provisioning API" : "API de aprovisionamento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Esta aplicação ativa um conjunto de API que sistemas externos podem usar para gerir utilizadores, grupos e aplicações.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Esta aplicação ativa um conjunto de API que sistemas externos podem usar para gerir criar, editar, apagar ou pesquisar atributos de utilizadores,\n\t\tpesquisar, definir e remover grupos, definir cotas e consultar o armazenamento total usado em Nextcloud. Utilizadores administradores de grupos\n\t\ttambém podem pesquisar no Nextcloud e executar as mesmas funções que um administrador para os grupos que gerem. A API também permite\n\t\tque um administrador possa consultar aplicações ativas no Nextcloud, informações das mesmas e para ativar ou desativar uma aplicação remotamente.\n\t\tDepois de ativar uma aplicação, podem-se usar pedidos HTTP com um cabeçalho Basic Auth para executar qualquer uma das funções\n\t\tacima indicadas. Mais informações estão disponíveis na documentação da API de aprovisionamento, incluindo pedidos de exemplo\n\t\te respostas do servidor."
-},
-"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/provisioning_api/l10n/pt_PT.json b/apps/provisioning_api/l10n/pt_PT.json
deleted file mode 100644
index bbb9fb9754b..00000000000
--- a/apps/provisioning_api/l10n/pt_PT.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "O usuário conectado deve ser um administrador ou ter autorização para editar esta configuração. ",
- "Email confirmation" : "Verificação de correio eletrónico.",
- "To enable the email address %s please click the button below." : "Para habilitar o endereço de correio eletrónico %s por favor pressione o botão abaixo.",
- "Confirm" : "Confirmar",
- "Email was already removed from account and cannot be confirmed anymore." : "O endereço já foi removido da conta e não pode mais ser confirmado.",
- "Could not verify mail because the token is expired." : "Não foi possível verificar o endereço porque o marcador expirou.",
- "Could not verify mail because the token is invalid." : "Não foi possível verificar o endereço porque o marcador é inválido.",
- "An unexpected error occurred. Please contact your admin." : "Ocorreu um erro inesperado. Contacte o seu administrador de sistemas.",
- "Email confirmation successful" : "Endereço confirmado com sucesso",
- "Provisioning API" : "API de aprovisionamento",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Esta aplicação ativa um conjunto de API que sistemas externos podem usar para gerir utilizadores, grupos e aplicações.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Esta aplicação ativa um conjunto de API que sistemas externos podem usar para gerir criar, editar, apagar ou pesquisar atributos de utilizadores,\n\t\tpesquisar, definir e remover grupos, definir cotas e consultar o armazenamento total usado em Nextcloud. Utilizadores administradores de grupos\n\t\ttambém podem pesquisar no Nextcloud e executar as mesmas funções que um administrador para os grupos que gerem. A API também permite\n\t\tque um administrador possa consultar aplicações ativas no Nextcloud, informações das mesmas e para ativar ou desativar uma aplicação remotamente.\n\t\tDepois de ativar uma aplicação, podem-se usar pedidos HTTP com um cabeçalho Basic Auth para executar qualquer uma das funções\n\t\tacima indicadas. Mais informações estão disponíveis na documentação da API de aprovisionamento, incluindo pedidos de exemplo\n\t\te respostas do servidor."
-},"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/provisioning_api/l10n/ro.js b/apps/provisioning_api/l10n/ro.js
deleted file mode 100644
index ee35fa15cd8..00000000000
--- a/apps/provisioning_api/l10n/ro.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Utilizatorul trebuie să fie un administrator sau să fie autorizat să editeze această setare.",
- "User already exists" : "Utilizatorul există deja",
- "Email confirmation" : "Confirmare email",
- "To enable the email address %s please click the button below." : "Pentru a activa adresa de mail %s apăsați butonul de mai jos.",
- "Confirm" : "Confirmă",
- "Email was already removed from account and cannot be confirmed anymore." : "Emailul a fost eliminat din cont și nu mai poate fi reconfirmat.",
- "Could not verify mail because the token is expired." : "Nu se poate verifica emailul deoarece tokenul a exirat.",
- "Could not verify mail because the token is invalid." : "Nu se poate verifica emailul deoarece tokenul este invalid.",
- "An unexpected error occurred. Please contact your admin." : "A apărut o eroare neașteptată. Contactați administratorul.",
- "Email confirmation successful" : "Confirmare email cu succes",
- "Provisioning API" : "API de provizionare",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Această aplicație pornește un set de API-uri ce pot fi folosite de systemele externe pentru a gestiona utilizatori, grupuri și aplicații. ",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Această aplicație permite unui set de API-uri ce pot fi folosite de sustemele externe pentru a creea, edita, șterge și a interoga utilizatori\n\t\tatribute, interogare, setare și eliminare grupuri, setare cote și interogare stocare totală utilizată în Nextcloud. Utilizatorii grupului admin\n\t\tpot de asemenea iteroga Nextcloud și îndeplini aceleași funcții ca și grupul de admini pe care îi și gestionează. API-ul permite \n\t\tunui administrator să caute aplicații active Nextcloud, informații despre aplicații și informații legate de activarea sau dezactivarea unei aplicații de la distanță.\n\t\tOdată ce aplicația este activată, solicitările HTTP pot fi utilizate printr-un antet Basic Auth pentru a efectua oricare dintre funcțiile\n\t\tmenționate mai sus. Mai multe informații sunt prezente în documentatie de provizionare de API, inclusiv exemple de interogări\n\t\tși răspunsul primit de la server."
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/provisioning_api/l10n/ro.json b/apps/provisioning_api/l10n/ro.json
deleted file mode 100644
index eafdab0876b..00000000000
--- a/apps/provisioning_api/l10n/ro.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Utilizatorul trebuie să fie un administrator sau să fie autorizat să editeze această setare.",
- "User already exists" : "Utilizatorul există deja",
- "Email confirmation" : "Confirmare email",
- "To enable the email address %s please click the button below." : "Pentru a activa adresa de mail %s apăsați butonul de mai jos.",
- "Confirm" : "Confirmă",
- "Email was already removed from account and cannot be confirmed anymore." : "Emailul a fost eliminat din cont și nu mai poate fi reconfirmat.",
- "Could not verify mail because the token is expired." : "Nu se poate verifica emailul deoarece tokenul a exirat.",
- "Could not verify mail because the token is invalid." : "Nu se poate verifica emailul deoarece tokenul este invalid.",
- "An unexpected error occurred. Please contact your admin." : "A apărut o eroare neașteptată. Contactați administratorul.",
- "Email confirmation successful" : "Confirmare email cu succes",
- "Provisioning API" : "API de provizionare",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Această aplicație pornește un set de API-uri ce pot fi folosite de systemele externe pentru a gestiona utilizatori, grupuri și aplicații. ",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Această aplicație permite unui set de API-uri ce pot fi folosite de sustemele externe pentru a creea, edita, șterge și a interoga utilizatori\n\t\tatribute, interogare, setare și eliminare grupuri, setare cote și interogare stocare totală utilizată în Nextcloud. Utilizatorii grupului admin\n\t\tpot de asemenea iteroga Nextcloud și îndeplini aceleași funcții ca și grupul de admini pe care îi și gestionează. API-ul permite \n\t\tunui administrator să caute aplicații active Nextcloud, informații despre aplicații și informații legate de activarea sau dezactivarea unei aplicații de la distanță.\n\t\tOdată ce aplicația este activată, solicitările HTTP pot fi utilizate printr-un antet Basic Auth pentru a efectua oricare dintre funcțiile\n\t\tmenționate mai sus. Mai multe informații sunt prezente în documentatie de provizionare de API, inclusiv exemple de interogări\n\t\tși răspunsul primit de la server."
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/ru.js b/apps/provisioning_api/l10n/ru.js
index 604a71392e7..7fa4c8d7e81 100644
--- a/apps/provisioning_api/l10n/ru.js
+++ b/apps/provisioning_api/l10n/ru.js
@@ -1,8 +1,33 @@
OC.L10N.register(
"provisioning_api",
{
- "Logged in user must be an administrator or have authorization to edit this setting." : "Вошедший пользователь должен быть администратором или иметь полномочия для редактирования этого параметра.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Для изменения этого параметра необходимо быть администратором или иметь соответствующие права.",
+ "Could not create non-existing user ID" : "Невозможно создать несуществующий идентификатор пользователя",
"User already exists" : "Пользователь уже существует",
+ "Group %1$s does not exist" : "Группа %1$s не существует",
+ "Insufficient privileges for group %1$s" : "Недостаточно прав для группы %1$s",
+ "No group specified (required for sub-admins)" : "Группа не указана (обязательно для субадминистраторов)",
+ "Sub-admin group does not exist" : "Группа субадминистратора не существует",
+ "Cannot create sub-admins for admin group" : "Нельзя назначить субадминистраторов для группы администраторов",
+ "No permissions to promote sub-admins" : "Недостаточно прав для назначения субадминистраторов",
+ "Invalid password value" : "Некорректное значение пароля",
+ "An email address is required, to send a password link to the user." : "Требуется адрес электронной почты для отправки ссылки на установку пароля пользователю.",
+ "Required email address was not provided" : "Не указан обязательный адрес электронной почты",
+ "Invalid quota value: %1$s" : "Недопустимое значение квоты: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Недопустимое значение квоты.%1$s превышает максимальное значение",
+ "Unlimited quota is forbidden on this instance" : "Безлимитная квота запрещена в этом инстансе",
+ "Setting the password is not supported by the users backend" : "Установка пароля не поддерживается используемой системой управления пользователями",
+ "Invalid language" : "Недопустимый язык",
+ "Invalid locale" : "Недопустимая локаль",
+ "Invalid first day of week" : "Недопустимый первый день недели",
+ "Cannot remove yourself from the admin group" : "Нельзя удалить себя из группы администраторов",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Нельзя удалить себя из этой группы, так как вы являетесь субадминистратором",
+ "Not viable to remove user from the last group you are sub-admin of" : "Нельзя удалить пользователя из последней группы, в которой вы являетесь субадминистратором",
+ "User does not exist" : "Пользователь не существует",
+ "Group does not exist" : "Группа не существует",
+ "User is not a sub-admin of this group" : "Пользователь не является субадминистратором этой группы",
+ "Email address not available" : "Адрес электронной почты недоступен",
+ "Sending email failed" : "Не удалось отправить письмо",
"Email confirmation" : "Подтверждение электронной почты",
"To enable the email address %s please click the button below." : "Чтобы включить адрес электронной почты %s, пожалуйста, нажмите на кнопку ниже.",
"Confirm" : "Подтвердить",
@@ -12,7 +37,7 @@ OC.L10N.register(
"An unexpected error occurred. Please contact your admin." : "Произошла неизвестная ошибка. Пожалуйста, свяжитесь с администратором.",
"Email confirmation successful" : "Электронная почта подтверждена",
"Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Это приложение предоставляет API, которое может использоваться внешними системами для управления пользователями, группами и приложениями.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API-интерфейсов, которые внешние системы могут использовать для создания, редактирования, удаления и запроса пользователя\n\t\tатрибуты, запрос, установка и удаление групп, установка квоты и запрос общего хранилища, используемого в Nextcloud. Пользователи-администраторы группы\n\t\tтакже может запрашивать Nextcloud и выполнять те же функции, что и администратор, для групп, которыми они управляют. API также позволяет\n\t\tадминистратору запрос активных приложений Nextcloud, информации о приложении, а также для удаленного включения или отключения приложения.\n\t\tПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любых функций.\n\t\tДополнительная информация доступна в документации по Provisioning API, включая примеры вызовов.\n\t\tи ответы сервера."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Это приложение предоставляет набор API, которые внешние системы могут использовать для управления учётными записями, группами и приложениями.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API, которые внешние системы могут использовать для создания, редактирования, удаления и запроса атрибутов учетной записи, запроса, установки и удаления групп, установки квоты и запроса общего хранилища, используемого в Nextcloud. Учетные записи администратора группы\nтакже могут запрашивать Nextcloud и выполнять те же функции, что и администратор для групп, которыми они управляют. API также позволяет\nадминистратору запрашивать активные приложения Nextcloud, информацию о приложении и включать или отключать приложение удаленно.\nПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любой из функций,\nперечисленных выше. Дополнительная информация доступна в документации API Provisioning, включая примеры вызовов\nи ответы сервера."
},
"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/provisioning_api/l10n/ru.json b/apps/provisioning_api/l10n/ru.json
index d2e5e4f12cc..41989b6ba29 100644
--- a/apps/provisioning_api/l10n/ru.json
+++ b/apps/provisioning_api/l10n/ru.json
@@ -1,6 +1,31 @@
{ "translations": {
- "Logged in user must be an administrator or have authorization to edit this setting." : "Вошедший пользователь должен быть администратором или иметь полномочия для редактирования этого параметра.",
+ "Logged in account must be an administrator or have authorization to edit this setting." : "Для изменения этого параметра необходимо быть администратором или иметь соответствующие права.",
+ "Could not create non-existing user ID" : "Невозможно создать несуществующий идентификатор пользователя",
"User already exists" : "Пользователь уже существует",
+ "Group %1$s does not exist" : "Группа %1$s не существует",
+ "Insufficient privileges for group %1$s" : "Недостаточно прав для группы %1$s",
+ "No group specified (required for sub-admins)" : "Группа не указана (обязательно для субадминистраторов)",
+ "Sub-admin group does not exist" : "Группа субадминистратора не существует",
+ "Cannot create sub-admins for admin group" : "Нельзя назначить субадминистраторов для группы администраторов",
+ "No permissions to promote sub-admins" : "Недостаточно прав для назначения субадминистраторов",
+ "Invalid password value" : "Некорректное значение пароля",
+ "An email address is required, to send a password link to the user." : "Требуется адрес электронной почты для отправки ссылки на установку пароля пользователю.",
+ "Required email address was not provided" : "Не указан обязательный адрес электронной почты",
+ "Invalid quota value: %1$s" : "Недопустимое значение квоты: %1$s",
+ "Invalid quota value. %1$s is exceeding the maximum quota" : "Недопустимое значение квоты.%1$s превышает максимальное значение",
+ "Unlimited quota is forbidden on this instance" : "Безлимитная квота запрещена в этом инстансе",
+ "Setting the password is not supported by the users backend" : "Установка пароля не поддерживается используемой системой управления пользователями",
+ "Invalid language" : "Недопустимый язык",
+ "Invalid locale" : "Недопустимая локаль",
+ "Invalid first day of week" : "Недопустимый первый день недели",
+ "Cannot remove yourself from the admin group" : "Нельзя удалить себя из группы администраторов",
+ "Cannot remove yourself from this group as you are a sub-admin" : "Нельзя удалить себя из этой группы, так как вы являетесь субадминистратором",
+ "Not viable to remove user from the last group you are sub-admin of" : "Нельзя удалить пользователя из последней группы, в которой вы являетесь субадминистратором",
+ "User does not exist" : "Пользователь не существует",
+ "Group does not exist" : "Группа не существует",
+ "User is not a sub-admin of this group" : "Пользователь не является субадминистратором этой группы",
+ "Email address not available" : "Адрес электронной почты недоступен",
+ "Sending email failed" : "Не удалось отправить письмо",
"Email confirmation" : "Подтверждение электронной почты",
"To enable the email address %s please click the button below." : "Чтобы включить адрес электронной почты %s, пожалуйста, нажмите на кнопку ниже.",
"Confirm" : "Подтвердить",
@@ -10,7 +35,7 @@
"An unexpected error occurred. Please contact your admin." : "Произошла неизвестная ошибка. Пожалуйста, свяжитесь с администратором.",
"Email confirmation successful" : "Электронная почта подтверждена",
"Provisioning API" : "Provisioning API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Это приложение предоставляет API, которое может использоваться внешними системами для управления пользователями, группами и приложениями.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API-интерфейсов, которые внешние системы могут использовать для создания, редактирования, удаления и запроса пользователя\n\t\tатрибуты, запрос, установка и удаление групп, установка квоты и запрос общего хранилища, используемого в Nextcloud. Пользователи-администраторы группы\n\t\tтакже может запрашивать Nextcloud и выполнять те же функции, что и администратор, для групп, которыми они управляют. API также позволяет\n\t\tадминистратору запрос активных приложений Nextcloud, информации о приложении, а также для удаленного включения или отключения приложения.\n\t\tПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любых функций.\n\t\tДополнительная информация доступна в документации по Provisioning API, включая примеры вызовов.\n\t\tи ответы сервера."
+ "This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Это приложение предоставляет набор API, которые внешние системы могут использовать для управления учётными записями, группами и приложениями.",
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Это приложение включает набор API, которые внешние системы могут использовать для создания, редактирования, удаления и запроса атрибутов учетной записи, запроса, установки и удаления групп, установки квоты и запроса общего хранилища, используемого в Nextcloud. Учетные записи администратора группы\nтакже могут запрашивать Nextcloud и выполнять те же функции, что и администратор для групп, которыми они управляют. API также позволяет\nадминистратору запрашивать активные приложения Nextcloud, информацию о приложении и включать или отключать приложение удаленно.\nПосле включения приложения HTTP-запросы можно использовать через заголовок Basic Auth для выполнения любой из функций,\nперечисленных выше. Дополнительная информация доступна в документации API Provisioning, включая примеры вызовов\nи ответы сервера."
},"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/provisioning_api/l10n/sc.js b/apps/provisioning_api/l10n/sc.js
deleted file mode 100644
index e5331408419..00000000000
--- a/apps/provisioning_api/l10n/sc.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "Provisioning API" : "Frunidura API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Custa aplicatzione ativat unas cantas API chi is sistemas esternos podint impreare pro organizare utentes, grupos e aplicatziones.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Custa aplicatzione ativat unas cantas API chi is sistemas esternos podent impreare pro creare, modificare, cantzellare e chircare\n\t\tatributos de s'utèntzia, chircare, impostare e eliminare grupos, impostare su lìmite e chircare totu su chi est allogadu in Nextcloud. Is chi amministrant unu grupu\n\t\tpodint puru pregontare a Nextcloud e acumprire is pròpias funtziones de un'amministradore pro su grupu chi amministrant. S'API ativat\n\t\tpermitit puru a un'amministradore de pedire aplicatziones Nextcloud ativas, informatziones de is aplicatziones e de ativare o disativare dae tesu. \n\t\t Cando s'ativat s'aplicatzione, is preguntas HTTP si podent impreare cun una intestatzione de autenticatzione bàsica pro acumprire cale si siat funtzione in s'elencu. \n\t\t Àteras informatziones a disponimentu in sa documentatzione de Frunidura API, inclùdidos esèmpios de mutidas\n\t\t e rispostas de su serbidore."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/provisioning_api/l10n/sc.json b/apps/provisioning_api/l10n/sc.json
deleted file mode 100644
index 9c411e484e7..00000000000
--- a/apps/provisioning_api/l10n/sc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Provisioning API" : "Frunidura API",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Custa aplicatzione ativat unas cantas API chi is sistemas esternos podint impreare pro organizare utentes, grupos e aplicatziones.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Custa aplicatzione ativat unas cantas API chi is sistemas esternos podent impreare pro creare, modificare, cantzellare e chircare\n\t\tatributos de s'utèntzia, chircare, impostare e eliminare grupos, impostare su lìmite e chircare totu su chi est allogadu in Nextcloud. Is chi amministrant unu grupu\n\t\tpodint puru pregontare a Nextcloud e acumprire is pròpias funtziones de un'amministradore pro su grupu chi amministrant. S'API ativat\n\t\tpermitit puru a un'amministradore de pedire aplicatziones Nextcloud ativas, informatziones de is aplicatziones e de ativare o disativare dae tesu. \n\t\t Cando s'ativat s'aplicatzione, is preguntas HTTP si podent impreare cun una intestatzione de autenticatzione bàsica pro acumprire cale si siat funtzione in s'elencu. \n\t\t Àteras informatziones a disponimentu in sa documentatzione de Frunidura API, inclùdidos esèmpios de mutidas\n\t\t e rispostas de su serbidore."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/provisioning_api/l10n/sl.js b/apps/provisioning_api/l10n/sl.js
deleted file mode 100644
index 96bf5c7e3b2..00000000000
--- a/apps/provisioning_api/l10n/sl.js
+++ /dev/null
@@ -1,12 +0,0 @@
-OC.L10N.register(
- "provisioning_api",
- {
- "User already exists" : "Uporabnik že obstaja",
- "Email confirmation" : "Potrditev elektronskega naslova",
- "Confirm" : "Potrdi",
- "Email confirmation successful" : "Potrditev elektronskega naslov je uspela.",
- "Provisioning API" : "Vmesnik API za povezovanje",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Program omogoča nastavitev vmesnikov API, ki jih zunanji sistemi lahko uporabijo za upravljanje uporabnikov, skupin in programov.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Program omogoča uporabo različnih vmesnikov, ki jih lahko zunanji sistemi uporabijo za ustvarjanje, urejanje, upravljanje in preverjanje\n\t\tatributov uporabnikov, poizvedb, upravljanje skupin, količinskih omejitev in nadzor na skupno uporabljenim prostorom v okolju. Skrbniki skupin\n\t\tlahko prav tako izvajajo dejavnosti za upravljanje skupin znotraj okolja. Vmesnik API omogoča\n\t\tskrbnikom pregled nad dejavnimi programi, podrobnostmi in upravljanje tudi na daljavo.\n\t\tKo je program enkrat zagnan, je mogoče pošiljati zahteve za izvajanje osnovnega postopka overjanja.\n\t\tVeč podrobnosti je na voljo v dokumentaciji za uporabo vmesnika, vključno s\n\t\tprimeri sklicev in odzivov strežnika."
-},
-"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/provisioning_api/l10n/sl.json b/apps/provisioning_api/l10n/sl.json
deleted file mode 100644
index 44572066c09..00000000000
--- a/apps/provisioning_api/l10n/sl.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "translations": {
- "User already exists" : "Uporabnik že obstaja",
- "Email confirmation" : "Potrditev elektronskega naslova",
- "Confirm" : "Potrdi",
- "Email confirmation successful" : "Potrditev elektronskega naslov je uspela.",
- "Provisioning API" : "Vmesnik API za povezovanje",
- "This application enables a set of APIs that external systems can use to manage users, groups and apps." : "Program omogoča nastavitev vmesnikov API, ki jih zunanji sistemi lahko uporabijo za upravljanje uporabnikov, skupin in programov.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query user\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin users\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Program omogoča uporabo različnih vmesnikov, ki jih lahko zunanji sistemi uporabijo za ustvarjanje, urejanje, upravljanje in preverjanje\n\t\tatributov uporabnikov, poizvedb, upravljanje skupin, količinskih omejitev in nadzor na skupno uporabljenim prostorom v okolju. Skrbniki skupin\n\t\tlahko prav tako izvajajo dejavnosti za upravljanje skupin znotraj okolja. Vmesnik API omogoča\n\t\tskrbnikom pregled nad dejavnimi programi, podrobnostmi in upravljanje tudi na daljavo.\n\t\tKo je program enkrat zagnan, je mogoče pošiljati zahteve za izvajanje osnovnega postopka overjanja.\n\t\tVeč podrobnosti je na voljo v dokumentaciji za uporabo vmesnika, vključno s\n\t\tprimeri sklicev in odzivov strežnika."
-},"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/provisioning_api/l10n/tr.js b/apps/provisioning_api/l10n/tr.js
index a8aeb46e790..db6d11429bb 100644
--- a/apps/provisioning_api/l10n/tr.js
+++ b/apps/provisioning_api/l10n/tr.js
@@ -38,6 +38,6 @@ OC.L10N.register(
"Email confirmation successful" : "E-posta onaylandı",
"Provisioning API" : "Karşılama API",
"This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Bu uygulama, dış sistemlerin hesapları, grupları ve uygulamaları yönetmek için kullanabileceği bir dizi API uygulaması sağlar.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel Kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tkullanılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz."
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tyapılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/provisioning_api/l10n/tr.json b/apps/provisioning_api/l10n/tr.json
index cb045906426..3e4a591bb5f 100644
--- a/apps/provisioning_api/l10n/tr.json
+++ b/apps/provisioning_api/l10n/tr.json
@@ -36,6 +36,6 @@
"Email confirmation successful" : "E-posta onaylandı",
"Provisioning API" : "Karşılama API",
"This application enables a set of APIs that external systems can use to manage accounts, groups and apps." : "Bu uygulama, dış sistemlerin hesapları, grupları ve uygulamaları yönetmek için kullanabileceği bir dizi API uygulaması sağlar.",
- "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel Kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tkullanılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz."
+ "This application enables a set of APIs that external systems can use to create, edit, delete and query account\n\t\tattributes, query, set and remove groups, set quota and query total storage used in Nextcloud. Group admin accounts\n\t\tcan also query Nextcloud and perform the same functions as an admin for groups they manage. The API also enables\n\t\tan admin to query for active Nextcloud applications, application info, and to enable or disable an app remotely.\n\t\tOnce the app is enabled, HTTP requests can be used via a Basic Auth header to perform any of the functions\n\t\tlisted above. More information is available in the Provisioning API documentation, including example calls\n\t\tand server responses." : "Bu uygulama, dış sistemlerin hesap özelliklerini eklemesi, düzenlemesi ve sorgulaması, grupları ayarlaması\n\t\tve silmesi ile Nextcloud tarafından kullanılan toplam depolama alanını sorgulaması için kullanabileceği\n\t\t bir dizi API uygulaması sağlar. Grup yöneticisi olan hesaplar da Nextcloud sorguları yürüterek yönettikleri\n\t\tgruplar üzerinde aynı işlemleri yöneticiler gibi yapabilirler. API uygulaması ayrıca kullanıma alınmış Nextcloud uygulamalarını\n\t\t ve uygulama bilgilerini sorgulayabilir ve uygulamaları uzaktan kullanıma alıp, kullanımdan kaldırabilir. Uygulama\n\t\tkullanıma alındıktan sonra yukarıdaki işlemleri yapmak için Temel kimlik doğrulaması üst bilgisi ile HTTP istekleri\n\t\tyapılabilir. Ayrıntılı bilgi almak ve örnek çağrılar ile sunucu yanıtlarını görmek için API hazırlama belgesine bakabilirsiniz."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/provisioning_api/lib/Controller/AppsController.php b/apps/provisioning_api/lib/Controller/AppsController.php
index 4d32584591b..3f6cff7442a 100644
--- a/apps/provisioning_api/lib/Controller/AppsController.php
+++ b/apps/provisioning_api/lib/Controller/AppsController.php
@@ -8,6 +8,8 @@ declare(strict_types=1);
*/
namespace OCA\Provisioning_API\Controller;
+use OC\App\AppStore\AppNotFoundException;
+use OC\Installer;
use OC_App;
use OCP\App\AppPathNotFoundException;
use OCP\App\IAppManager;
@@ -16,6 +18,7 @@ use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCSController;
+use OCP\IAppConfig;
use OCP\IRequest;
class AppsController extends OCSController {
@@ -23,6 +26,8 @@ class AppsController extends OCSController {
string $appName,
IRequest $request,
private IAppManager $appManager,
+ private Installer $installer,
+ private IAppConfig $appConfig,
) {
parent::__construct($appName, $request);
}
@@ -108,10 +113,19 @@ class AppsController extends OCSController {
public function enable(string $app): DataResponse {
try {
$app = $this->verifyAppId($app);
+
+ if (!$this->installer->isDownloaded($app)) {
+ $this->installer->downloadApp($app);
+ }
+
+ if ($this->appConfig->getValueString($app, 'installed_version', '') === '') {
+ $this->installer->installApp($app);
+ }
+
$this->appManager->enableApp($app);
} catch (\InvalidArgumentException $e) {
throw new OCSException($e->getMessage(), OCSController::RESPOND_UNAUTHORISED);
- } catch (AppPathNotFoundException $e) {
+ } catch (AppPathNotFoundException|AppNotFoundException $e) {
throw new OCSException('The request app was not found', OCSController::RESPOND_NOT_FOUND);
}
return new DataResponse();
diff --git a/apps/provisioning_api/lib/Controller/GroupsController.php b/apps/provisioning_api/lib/Controller/GroupsController.php
index 3d9fa6b1cfc..37af51419df 100644
--- a/apps/provisioning_api/lib/Controller/GroupsController.php
+++ b/apps/provisioning_api/lib/Controller/GroupsController.php
@@ -98,6 +98,7 @@ class GroupsController extends AUserDataOCSController {
*/
#[NoAdminRequired]
#[AuthorizedAdminSetting(settings: Sharing::class)]
+ #[AuthorizedAdminSetting(settings: Users::class)]
public function getGroupsDetails(string $search = '', ?int $limit = null, int $offset = 0): DataResponse {
$groups = $this->groupManager->search($search, $limit, $offset);
$groups = array_values(array_map(function ($group) {
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index 4b3db45f518..3dfa8f1fe5a 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -21,6 +21,7 @@ use OCA\Settings\Settings\Admin\Users;
use OCP\Accounts\IAccountManager;
use OCP\Accounts\IAccountProperty;
use OCP\Accounts\PropertyDoesNotExistException;
+use OCP\App\IAppManager;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\AuthorizedAdminSetting;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
@@ -79,6 +80,7 @@ class UsersController extends AUserDataOCSController {
private KnownUserService $knownUserService,
private IEventDispatcher $eventDispatcher,
private IPhoneNumberUtil $phoneNumberUtil,
+ private IAppManager $appManager,
) {
parent::__construct(
$appName,
@@ -710,6 +712,19 @@ class UsersController extends AUserDataOCSController {
}
/**
+ * Get a list of enabled apps for the current user
+ *
+ * @return DataResponse<Http::STATUS_OK, array{apps: list<string>}, array{}>
+ *
+ * 200: Enabled apps returned
+ */
+ #[NoAdminRequired]
+ public function getEnabledApps(): DataResponse {
+ $currentLoggedInUser = $this->userSession->getUser();
+ return new DataResponse(['apps' => $this->appManager->getEnabledAppsForUser($currentLoggedInUser)]);
+ }
+
+ /**
* @NoSubAdminRequired
*
* Get a list of fields that are editable for a user
diff --git a/apps/provisioning_api/openapi-administration.json b/apps/provisioning_api/openapi-administration.json
index 3c54be68194..84b1a12d2dd 100644
--- a/apps/provisioning_api/openapi-administration.json
+++ b/apps/provisioning_api/openapi-administration.json
@@ -381,7 +381,8 @@
"description": "Filter for enabled or disabled apps",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1003,7 +1004,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
diff --git a/apps/provisioning_api/openapi-full.json b/apps/provisioning_api/openapi-full.json
index 9079404c35c..cde7eeaa557 100644
--- a/apps/provisioning_api/openapi-full.json
+++ b/apps/provisioning_api/openapi-full.json
@@ -428,7 +428,8 @@
"description": "Filter for enabled or disabled apps",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -885,7 +886,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1230,7 +1232,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -2189,7 +2192,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -2438,7 +2442,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -2554,7 +2559,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -2695,6 +2701,7 @@
"manager": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Manager of the user"
}
}
@@ -2816,7 +2823,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -2932,7 +2940,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -3564,6 +3573,78 @@
}
}
},
+ "/ocs/v2.php/cloud/user/apps": {
+ "get": {
+ "operationId": "users-get-enabled-apps",
+ "summary": "Get a list of enabled apps for the current user",
+ "tags": [
+ "users"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Enabled apps returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "apps"
+ ],
+ "properties": {
+ "apps": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/cloud/users/{userId}/{collectionName}": {
"put": {
"operationId": "users-edit-user-multi-value",
diff --git a/apps/provisioning_api/openapi.json b/apps/provisioning_api/openapi.json
index 59f31a2c25d..29272f34956 100644
--- a/apps/provisioning_api/openapi.json
+++ b/apps/provisioning_api/openapi.json
@@ -437,7 +437,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -538,7 +539,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -787,7 +789,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -986,7 +989,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1127,6 +1131,7 @@
"manager": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Manager of the user"
}
}
@@ -1248,7 +1253,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1364,7 +1370,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -1996,6 +2003,78 @@
}
}
},
+ "/ocs/v2.php/cloud/user/apps": {
+ "get": {
+ "operationId": "users-get-enabled-apps",
+ "summary": "Get a list of enabled apps for the current user",
+ "tags": [
+ "users"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Enabled apps returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "apps"
+ ],
+ "properties": {
+ "apps": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/cloud/users/{userId}/{collectionName}": {
"put": {
"operationId": "users-edit-user-multi-value",
diff --git a/apps/provisioning_api/tests/CapabilitiesTest.php b/apps/provisioning_api/tests/CapabilitiesTest.php
index e3c14f37ed7..67a0335829c 100644
--- a/apps/provisioning_api/tests/CapabilitiesTest.php
+++ b/apps/provisioning_api/tests/CapabilitiesTest.php
@@ -1,9 +1,11 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Provisioning_API\Tests\unit;
+namespace OCA\Provisioning_API\Tests;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCA\Provisioning_API\Capabilities;
@@ -21,11 +23,8 @@ use Test\TestCase;
*/
class CapabilitiesTest extends TestCase {
- /** @var Capabilities */
- protected $capabilities;
-
- /** @var IAppManager|MockObject */
- protected $appManager;
+ protected IAppManager&MockObject $appManager;
+ protected Capabilities $capabilities;
public function setUp(): void {
parent::setUp();
@@ -38,7 +37,7 @@ class CapabilitiesTest extends TestCase {
->willReturn('1.12');
}
- public function getCapabilitiesProvider() {
+ public static function getCapabilitiesProvider(): array {
return [
[true, false, false, true, false],
[true, true, false, true, false],
@@ -52,7 +51,7 @@ class CapabilitiesTest extends TestCase {
/**
* @dataProvider getCapabilitiesProvider
*/
- public function testGetCapabilities($federationAppEnabled, $federatedFileSharingAppEnabled, $lookupServerEnabled, $expectedFederatedScopeEnabled, $expectedPublishedScopeEnabled): void {
+ public function testGetCapabilities(bool $federationAppEnabled, bool $federatedFileSharingAppEnabled, bool $lookupServerEnabled, bool $expectedFederatedScopeEnabled, bool $expectedPublishedScopeEnabled): void {
$this->appManager->expects($this->any())
->method('isEnabledForUser')
->will($this->returnValueMap([
diff --git a/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php b/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php
index 41739b6283f..3d2c1645d25 100644
--- a/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -30,7 +32,6 @@ use function json_encode;
* @package OCA\Provisioning_API\Tests
*/
class AppConfigControllerTest extends TestCase {
-
private IAppConfig&MockObject $appConfig;
private IUserSession&MockObject $userSession;
private IL10N&MockObject $l10n;
@@ -51,7 +52,7 @@ class AppConfigControllerTest extends TestCase {
/**
* @param string[] $methods
- * @return AppConfigController|\PHPUnit\Framework\MockObject\MockObject
+ * @return AppConfigController|MockObject
*/
protected function getInstance(array $methods = []) {
$request = $this->createMock(IRequest::class);
@@ -79,7 +80,7 @@ class AppConfigControllerTest extends TestCase {
$this->settingManager,
$this->appManager,
])
- ->setMethods($methods)
+ ->onlyMethods($methods)
->getMock();
}
}
@@ -95,7 +96,7 @@ class AppConfigControllerTest extends TestCase {
$this->assertEquals(['data' => ['apps']], $result->getData());
}
- public function dataGetKeys() {
+ public static function dataGetKeys(): array {
return [
['app1 ', null, new \InvalidArgumentException('error'), Http::STATUS_FORBIDDEN],
['app2', ['keys'], null, Http::STATUS_OK],
@@ -104,12 +105,8 @@ class AppConfigControllerTest extends TestCase {
/**
* @dataProvider dataGetKeys
- * @param string $app
- * @param array|null $keys
- * @param \Exception|null $throws
- * @param int $status
*/
- public function testGetKeys($app, $keys, $throws, $status): void {
+ public function testGetKeys(string $app, ?array $keys, ?\Throwable $throws, int $status): void {
$api = $this->getInstance(['verifyAppId']);
if ($throws instanceof \Exception) {
$api->expects($this->once())
@@ -140,7 +137,7 @@ class AppConfigControllerTest extends TestCase {
}
}
- public function dataGetValue() {
+ public static function dataGetValue(): array {
return [
['app1', 'key', 'default', null, new \InvalidArgumentException('error'), Http::STATUS_FORBIDDEN],
['app2', 'key', 'default', 'return', null, Http::STATUS_OK],
@@ -149,14 +146,8 @@ class AppConfigControllerTest extends TestCase {
/**
* @dataProvider dataGetValue
- * @param string $app
- * @param string|null $key
- * @param string|null $default
- * @param string|null $return
- * @param \Exception|null $throws
- * @param int $status
*/
- public function testGetValue($app, $key, $default, $return, $throws, $status): void {
+ public function testGetValue(string $app, string $key, string $default, ?string $return, ?\Throwable $throws, int $status): void {
$api = $this->getInstance(['verifyAppId']);
if ($throws instanceof \Exception) {
$api->expects($this->once())
@@ -184,7 +175,7 @@ class AppConfigControllerTest extends TestCase {
}
}
- public function dataSetValue() {
+ public static function dataSetValue(): array {
return [
['app1', 'key', 'default', new \InvalidArgumentException('error1'), null, Http::STATUS_FORBIDDEN],
['app2', 'key', 'default', null, new \InvalidArgumentException('error2'), Http::STATUS_FORBIDDEN],
@@ -201,14 +192,8 @@ class AppConfigControllerTest extends TestCase {
/**
* @dataProvider dataSetValue
- * @param string $app
- * @param string|null $key
- * @param string|null $value
- * @param \Exception|null $appThrows
- * @param \Exception|null $keyThrows
- * @param int|\Throwable $status
*/
- public function testSetValue($app, $key, $value, $appThrows, $keyThrows, $status, int|\Throwable $type = IAppConfig::VALUE_MIXED): void {
+ public function testSetValue(string $app, string $key, string $value, ?\Throwable $appThrows, ?\Throwable $keyThrows, int $status, int|\Throwable $type = IAppConfig::VALUE_MIXED): void {
$adminUser = $this->createMock(IUser::class);
$adminUser->expects($this->once())
->method('getUid')
@@ -297,7 +282,7 @@ class AppConfigControllerTest extends TestCase {
}
}
- public function dataDeleteValue() {
+ public static function dataDeleteValue(): array {
return [
['app1', 'key', new \InvalidArgumentException('error1'), null, Http::STATUS_FORBIDDEN],
['app2', 'key', null, new \InvalidArgumentException('error2'), Http::STATUS_FORBIDDEN],
@@ -307,13 +292,8 @@ class AppConfigControllerTest extends TestCase {
/**
* @dataProvider dataDeleteValue
- * @param string $app
- * @param string|null $key
- * @param \Exception|null $appThrows
- * @param \Exception|null $keyThrows
- * @param int $status
*/
- public function testDeleteValue($app, $key, $appThrows, $keyThrows, $status): void {
+ public function testDeleteValue(string $app, string $key, ?\Throwable $appThrows, ?\Throwable $keyThrows, int $status): void {
$api = $this->getInstance(['verifyAppId', 'verifyConfigKey']);
if ($appThrows instanceof \Exception) {
$api->expects($this->once())
@@ -367,7 +347,7 @@ class AppConfigControllerTest extends TestCase {
$this->addToAssertionCount(1);
}
- public function dataVerifyAppIdThrows() {
+ public static function dataVerifyAppIdThrows(): array {
return [
['activity..'],
['activity/'],
@@ -378,16 +358,15 @@ class AppConfigControllerTest extends TestCase {
/**
* @dataProvider dataVerifyAppIdThrows
- * @param string $app
*/
- public function testVerifyAppIdThrows($app): void {
+ public function testVerifyAppIdThrows(string $app): void {
$this->expectException(\InvalidArgumentException::class);
$api = $this->getInstance();
$this->invokePrivate($api, 'verifyAppId', [$app]);
}
- public function dataVerifyConfigKey() {
+ public static function dataVerifyConfigKey(): array {
return [
['activity', 'abc', ''],
['dav', 'public_route', ''],
@@ -398,17 +377,14 @@ class AppConfigControllerTest extends TestCase {
/**
* @dataProvider dataVerifyConfigKey
- * @param string $app
- * @param string $key
- * @param string $value
*/
- public function testVerifyConfigKey($app, $key, $value): void {
+ public function testVerifyConfigKey(string $app, string $key, string $value): void {
$api = $this->getInstance();
$this->invokePrivate($api, 'verifyConfigKey', [$app, $key, $value]);
$this->addToAssertionCount(1);
}
- public function dataVerifyConfigKeyThrows() {
+ public static function dataVerifyConfigKeyThrows(): array {
return [
['activity', 'installed_version', ''],
['calendar', 'enabled', ''],
@@ -424,11 +400,8 @@ class AppConfigControllerTest extends TestCase {
/**
* @dataProvider dataVerifyConfigKeyThrows
- * @param string $app
- * @param string $key
- * @param string $value
*/
- public function testVerifyConfigKeyThrows($app, $key, $value): void {
+ public function testVerifyConfigKeyThrows(string $app, string $key, string $value): void {
$this->expectException(\InvalidArgumentException::class);
$api = $this->getInstance();
diff --git a/apps/provisioning_api/tests/Controller/AppsControllerTest.php b/apps/provisioning_api/tests/Controller/AppsControllerTest.php
index bbcabfddd8b..f95daeae7d3 100644
--- a/apps/provisioning_api/tests/Controller/AppsControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/AppsControllerTest.php
@@ -7,14 +7,17 @@
*/
namespace OCA\Provisioning_API\Tests\Controller;
+use OC\Installer;
use OCA\Provisioning_API\Controller\AppsController;
use OCA\Provisioning_API\Tests\TestCase;
use OCP\App\IAppManager;
use OCP\AppFramework\OCS\OCSException;
+use OCP\IAppConfig;
use OCP\IGroupManager;
use OCP\IRequest;
use OCP\IUserSession;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
/**
* Class AppsTest
@@ -24,12 +27,11 @@ use OCP\Server;
* @package OCA\Provisioning_API\Tests
*/
class AppsControllerTest extends TestCase {
- /** @var IAppManager */
- private $appManager;
- /** @var AppsController */
- private $api;
- /** @var IUserSession */
- private $userSession;
+ private IAppManager $appManager;
+ private IAppConfig&MockObject $appConfig;
+ private Installer&MockObject $installer;
+ private AppsController $api;
+ private IUserSession $userSession;
protected function setUp(): void {
parent::setUp();
@@ -37,15 +39,17 @@ class AppsControllerTest extends TestCase {
$this->appManager = Server::get(IAppManager::class);
$this->groupManager = Server::get(IGroupManager::class);
$this->userSession = Server::get(IUserSession::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
+ $this->installer = $this->createMock(Installer::class);
- $request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $request = $this->createMock(IRequest::class);
$this->api = new AppsController(
'provisioning_api',
$request,
- $this->appManager
+ $this->appManager,
+ $this->installer,
+ $this->appConfig,
);
}
@@ -96,7 +100,7 @@ class AppsControllerTest extends TestCase {
$this->assertEquals(count($disabled), count($data['apps']));
}
-
+
public function testGetAppsInvalidFilter(): void {
$this->expectException(OCSException::class);
$this->expectExceptionCode(101);
diff --git a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php
index 29b098429e8..e4f8b3af183 100644
--- a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php
@@ -22,30 +22,20 @@ use OCP\IUserManager;
use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\UserInterface;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
class GroupsControllerTest extends \Test\TestCase {
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- protected $request;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
- /** @var Manager|\PHPUnit\Framework\MockObject\MockObject */
- protected $groupManager;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
- /** @var IAccountManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $accountManager;
- /** @var ISubAdmin|\PHPUnit\Framework\MockObject\MockObject */
- protected $subAdminManager;
- /** @var IFactory|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10nFactory;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
-
- /** @var GroupsController|\PHPUnit\Framework\MockObject\MockObject */
- protected $api;
+ protected IRequest&MockObject $request;
+ protected IUserManager&MockObject $userManager;
+ protected IConfig&MockObject $config;
+ protected Manager&MockObject $groupManager;
+ protected IUserSession&MockObject $userSession;
+ protected IAccountManager&MockObject $accountManager;
+ protected ISubAdmin&MockObject $subAdminManager;
+ protected IFactory&MockObject $l10nFactory;
+ protected LoggerInterface&MockObject $logger;
+ protected GroupsController&MockObject $api;
private IRootFolder $rootFolder;
@@ -82,16 +72,12 @@ class GroupsControllerTest extends \Test\TestCase {
$this->rootFolder,
$this->logger
])
- ->setMethods(['fillStorageInfo'])
+ ->onlyMethods(['fillStorageInfo'])
->getMock();
}
- /**
- * @param string $gid
- * @return IGroup|\PHPUnit\Framework\MockObject\MockObject
- */
- private function createGroup($gid) {
- $group = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
+ private function createGroup(string $gid): IGroup&MockObject {
+ $group = $this->createMock(\OCP\IGroup::class);
$group
->method('getGID')
->willReturn($gid);
@@ -116,7 +102,7 @@ class GroupsControllerTest extends \Test\TestCase {
/**
* @param string $uid
- * @return IUser|\PHPUnit\Framework\MockObject\MockObject
+ * @return IUser&MockObject
*/
private function createUser($uid) {
$user = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock();
@@ -165,7 +151,7 @@ class GroupsControllerTest extends \Test\TestCase {
});
}
- public function dataGetGroups() {
+ public static function dataGetGroups(): array {
return [
[null, 0, 0],
['foo', 0, 0],
@@ -177,12 +163,8 @@ class GroupsControllerTest extends \Test\TestCase {
/**
* @dataProvider dataGetGroups
- *
- * @param string|null $search
- * @param int|null $limit
- * @param int|null $offset
*/
- public function testGetGroups($search, $limit, $offset): void {
+ public function testGetGroups(?string $search, int $limit, int $offset): void {
$groups = [$this->createGroup('group1'), $this->createGroup('group2')];
$search = $search === null ? '' : $search;
@@ -509,7 +491,7 @@ class GroupsControllerTest extends \Test\TestCase {
->method('getUserGroups')
->willReturn([$group]);
- /** @var \PHPUnit\Framework\MockObject\MockObject */
+ /** @var MockObject */
$this->subAdminManager->expects($this->any())
->method('isSubAdminOfGroup')
->willReturn(false);
@@ -554,7 +536,7 @@ class GroupsControllerTest extends \Test\TestCase {
->method('getUserGroups')
->willReturn([$group]);
- /** @var \PHPUnit\Framework\MockObject\MockObject */
+ /** @var MockObject */
$this->subAdminManager->expects($this->any())
->method('isSubAdminOfGroup')
->willReturn(false);
diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
index 7d4f99356b3..3f8c1566b5d 100644
--- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
@@ -20,6 +20,7 @@ use OCP\Accounts\IAccount;
use OCP\Accounts\IAccountManager;
use OCP\Accounts\IAccountProperty;
use OCP\Accounts\IAccountPropertyCollection;
+use OCP\App\IAppManager;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSException;
use OCP\EventDispatcher\IEventDispatcher;
@@ -46,41 +47,25 @@ use RuntimeException;
use Test\TestCase;
class UsersControllerTest extends TestCase {
- /** @var IUserManager|MockObject */
- protected $userManager;
- /** @var IConfig|MockObject */
- protected $config;
- /** @var Manager|MockObject */
- protected $groupManager;
- /** @var IUserSession|MockObject */
- protected $userSession;
- /** @var LoggerInterface|MockObject */
- protected $logger;
- /** @var UsersController|MockObject */
- protected $api;
- /** @var IAccountManager|MockObject */
- protected $accountManager;
- /** @var ISubAdmin|MockObject */
- protected $subAdminManager;
- /** @var IURLGenerator|MockObject */
- protected $urlGenerator;
- /** @var IRequest|MockObject */
- protected $request;
- /** @var IFactory|MockObject */
- private $l10nFactory;
- /** @var NewUserMailHelper|MockObject */
- private $newUserMailHelper;
- /** @var ISecureRandom|MockObject */
- private $secureRandom;
- /** @var RemoteWipe|MockObject */
- private $remoteWipe;
- /** @var KnownUserService|MockObject */
- private $knownUserService;
- /** @var IEventDispatcher|MockObject */
- private $eventDispatcher;
+ protected IUserManager&MockObject $userManager;
+ protected IConfig&MockObject $config;
+ protected Manager&MockObject $groupManager;
+ protected IUserSession&MockObject $userSession;
+ protected LoggerInterface&MockObject $logger;
+ protected UsersController&MockObject $api;
+ protected IAccountManager&MockObject $accountManager;
+ protected ISubAdmin&MockObject $subAdminManager;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected IRequest&MockObject $request;
+ private IFactory&MockObject $l10nFactory;
+ private NewUserMailHelper&MockObject $newUserMailHelper;
+ private ISecureRandom&MockObject $secureRandom;
+ private RemoteWipe&MockObject $remoteWipe;
+ private KnownUserService&MockObject $knownUserService;
+ private IEventDispatcher&MockObject $eventDispatcher;
private IRootFolder $rootFolder;
- /** @var IPhoneNumberUtil */
- private $phoneNumberUtil;
+ private IPhoneNumberUtil $phoneNumberUtil;
+ private IAppManager $appManager;
protected function setUp(): void {
parent::setUp();
@@ -101,6 +86,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService = $this->createMock(KnownUserService::class);
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
$this->phoneNumberUtil = new PhoneNumberUtil();
+ $this->appManager = $this->createMock(IAppManager::class);
$this->rootFolder = $this->createMock(IRootFolder::class);
$l10n = $this->createMock(IL10N::class);
@@ -127,6 +113,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['fillStorageInfo'])
->getMock();
@@ -449,10 +436,6 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->exactly(2))
->method('groupExists')
- ->withConsecutive(
- ['ExistingGroup'],
- ['NonExistingGroup']
- )
->willReturnMap([
['ExistingGroup', true],
['NonExistingGroup', false]
@@ -522,6 +505,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['editUser'])
->getMock();
@@ -798,18 +782,20 @@ class UsersControllerTest extends TestCase {
->method('get')
->with('ExistingGroup')
->willReturn($group);
+
+ $calls = [
+ ['Successful addUser call with userid: NewUser', ['app' => 'ocs_api']],
+ ['Added userid NewUser to group ExistingGroup', ['app' => 'ocs_api']],
+ ];
$this->logger
->expects($this->exactly(2))
->method('info')
- ->withConsecutive(
- ['Successful addUser call with userid: NewUser', ['app' => 'ocs_api']],
- ['Added userid NewUser to group ExistingGroup', ['app' => 'ocs_api']]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
- $this->assertTrue(key_exists(
- 'id',
- $this->api->addUser('NewUser', 'PasswordOfTheNewUser', '', '', ['ExistingGroup'])->getData()
- ));
+ $this->assertArrayHasKey('id', $this->api->addUser('NewUser', 'PasswordOfTheNewUser', '', '', ['ExistingGroup'])->getData());
}
@@ -966,11 +952,10 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->exactly(2))
->method('groupExists')
- ->withConsecutive(
- ['ExistingGroup1'],
- ['ExistingGroup2']
- )
- ->willReturn(true);
+ ->willReturnMap([
+ ['ExistingGroup1', true],
+ ['ExistingGroup2', true]
+ ]);
$user = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
->getMock();
@@ -996,24 +981,23 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->exactly(4))
->method('get')
- ->withConsecutive(
- ['ExistingGroup1'],
- ['ExistingGroup2'],
- ['ExistingGroup1'],
- ['ExistingGroup2']
- )
->willReturnMap([
['ExistingGroup1', $existingGroup1],
['ExistingGroup2', $existingGroup2]
]);
+
+ $calls = [
+ ['Successful addUser call with userid: NewUser', ['app' => 'ocs_api']],
+ ['Added userid NewUser to group ExistingGroup1', ['app' => 'ocs_api']],
+ ['Added userid NewUser to group ExistingGroup2', ['app' => 'ocs_api']],
+ ];
$this->logger
->expects($this->exactly(3))
->method('info')
- ->withConsecutive(
- ['Successful addUser call with userid: NewUser', ['app' => 'ocs_api']],
- ['Added userid NewUser to group ExistingGroup1', ['app' => 'ocs_api']],
- ['Added userid NewUser to group ExistingGroup2', ['app' => 'ocs_api']]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$subAdminManager = $this->getMockBuilder('OC\SubAdmin')
->disableOriginalConstructor()->getMock();
$this->groupManager
@@ -1023,16 +1007,12 @@ class UsersControllerTest extends TestCase {
$subAdminManager
->expects($this->exactly(2))
->method('isSubAdminOfGroup')
- ->withConsecutive(
- [$loggedInUser, $existingGroup1],
- [$loggedInUser, $existingGroup2]
- )
- ->willReturn(true);
+ ->willReturnMap([
+ [$loggedInUser, $existingGroup1, true],
+ [$loggedInUser, $existingGroup2, true],
+ ]);
- $this->assertTrue(key_exists(
- 'id',
- $this->api->addUser('NewUser', 'PasswordOfTheNewUser', '', '', ['ExistingGroup1', 'ExistingGroup2'])->getData()
- ));
+ $this->assertArrayHasKey('id', $this->api->addUser('NewUser', 'PasswordOfTheNewUser', '', '', ['ExistingGroup1', 'ExistingGroup2'])->getData());
}
@@ -1541,7 +1521,7 @@ class UsersControllerTest extends TestCase {
$this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UID']));
}
- public function dataSearchByPhoneNumbers(): array {
+ public static function dataSearchByPhoneNumbers(): array {
return [
'Invalid country' => ['Not a country code', ['12345' => ['NaN']], 400, null, null, []],
'No number to search' => ['DE', ['12345' => ['NaN']], 200, null, null, []],
@@ -1556,10 +1536,6 @@ class UsersControllerTest extends TestCase {
/**
* @dataProvider dataSearchByPhoneNumbers
- * @param string $location
- * @param array $search
- * @param int $status
- * @param array $expected
*/
public function testSearchByPhoneNumbers(string $location, array $search, int $status, ?array $searchUsers, ?array $userMatches, array $expected): void {
$knownTo = 'knownTo';
@@ -1870,7 +1846,7 @@ class UsersControllerTest extends TestCase {
$this->api->editUser('UserToEdit', 'email', 'demo.org');
}
- public function selfEditChangePropertyProvider() {
+ public static function selfEditChangePropertyProvider(): array {
return [
[IAccountManager::PROPERTY_TWITTER, '@oldtwitter', '@newtwitter'],
[IAccountManager::PROPERTY_FEDIVERSE, '@oldFediverse@floss.social', '@newFediverse@floss.social'],
@@ -2294,7 +2270,7 @@ class UsersControllerTest extends TestCase {
$this->assertEquals([], $this->api->editUser('UserToEdit', 'language', 'de')->getData());
}
- public function dataEditUserSelfEditChangeLanguageButForced() {
+ public static function dataEditUserSelfEditChangeLanguageButForced(): array {
return [
['de'],
[true],
@@ -3825,6 +3801,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['getUserData'])
->getMock();
@@ -3916,6 +3893,7 @@ class UsersControllerTest extends TestCase {
$this->knownUserService,
$this->eventDispatcher,
$this->phoneNumberUtil,
+ $this->appManager,
])
->onlyMethods(['getUserData'])
->getMock();
@@ -3942,11 +3920,10 @@ class UsersControllerTest extends TestCase {
$api->expects($this->exactly(2))
->method('getUserData')
- ->withConsecutive(
- ['uid', false],
- ['currentuser', true],
- )
- ->willReturn($expected);
+ ->willReturnMap([
+ ['uid', false, $expected],
+ ['currentuser', true, $expected],
+ ]);
$this->assertSame($expected, $api->getUser('uid')->getData());
@@ -4263,7 +4240,7 @@ class UsersControllerTest extends TestCase {
}
- public function dataGetEditableFields() {
+ public static function dataGetEditableFields(): array {
return [
[false, true, ISetDisplayNameBackend::class, [
IAccountManager::PROPERTY_EMAIL,
@@ -4388,10 +4365,6 @@ class UsersControllerTest extends TestCase {
/**
* @dataProvider dataGetEditableFields
- *
- * @param bool $allowedToChangeDisplayName
- * @param string $userBackend
- * @param array $expected
*/
public function testGetEditableFields(bool $allowedToChangeDisplayName, bool $allowedToChangeEmail, string $userBackend, array $expected): void {
$this->config->method('getSystemValue')->willReturnCallback(fn (string $key, mixed $default) => match ($key) {
diff --git a/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php b/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php
index d097febb04f..d40aab90d66 100644
--- a/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php
+++ b/apps/provisioning_api/tests/Middleware/ProvisioningApiMiddlewareTest.php
@@ -24,34 +24,29 @@ class ProvisioningApiMiddlewareTest extends TestCase {
$this->reflector = $this->createMock(IControllerMethodReflector::class);
}
- public function dataAnnotation() {
+ public static function dataAnnotation(): array {
return [
[false, false, false, false, false],
- [false, false, true, false, false],
- [false, true, true, false, false],
- [ true, false, false, false, true],
- [ true, false, true, false, false],
- [ true, true, false, false, false],
- [ true, true, true, false, false],
+ [false, false, true, false, false],
+ [false, true, true, false, false],
+ [true, false, false, false, true],
+ [true, false, true, false, false],
+ [true, true, false, false, false],
+ [true, true, true, false, false],
[false, false, false, true, false],
- [false, false, true, true, false],
- [false, true, true, true, false],
- [ true, false, false, true, false],
- [ true, false, true, true, false],
- [ true, true, false, true, false],
- [ true, true, true, true, false],
+ [false, false, true, true, false],
+ [false, true, true, true, false],
+ [true, false, false, true, false],
+ [true, false, true, true, false],
+ [true, true, false, true, false],
+ [true, true, true, true, false],
];
}
/**
* @dataProvider dataAnnotation
- *
- * @param bool $subadminRequired
- * @param bool $isAdmin
- * @param bool $isSubAdmin
- * @param bool $shouldThrowException
*/
- public function testBeforeController($subadminRequired, $isAdmin, $isSubAdmin, $hasSettingAuthorizationAnnotation, $shouldThrowException): void {
+ public function testBeforeController(bool $subadminRequired, bool $isAdmin, bool $isSubAdmin, bool $hasSettingAuthorizationAnnotation, bool $shouldThrowException): void {
$middleware = new ProvisioningApiMiddleware(
$this->reflector,
$isAdmin,
@@ -80,7 +75,7 @@ class ProvisioningApiMiddlewareTest extends TestCase {
}
}
- public function dataAfterException() {
+ public static function dataAfterException(): array {
return [
[new NotSubAdminException(), false],
[new \Exception('test', 42), true],
@@ -89,11 +84,8 @@ class ProvisioningApiMiddlewareTest extends TestCase {
/**
* @dataProvider dataAfterException
- *
- * @param \Exception $e
- * @param bool $forwared
*/
- public function testAfterException(\Exception $exception, $forwared): void {
+ public function testAfterException(\Exception $exception, bool $forwared): void {
$middleware = new ProvisioningApiMiddleware(
$this->reflector,
false,
diff --git a/apps/settings/appinfo/routes.php b/apps/settings/appinfo/routes.php
index 5038cf33348..b0ce73113f4 100644
--- a/apps/settings/appinfo/routes.php
+++ b/apps/settings/appinfo/routes.php
@@ -67,6 +67,7 @@ return [
],
'ocs' => [
['name' => 'DeclarativeSettings#setValue', 'url' => '/settings/api/declarative/value', 'verb' => 'POST', 'root' => ''],
+ ['name' => 'DeclarativeSettings#setSensitiveValue', 'url' => '/settings/api/declarative/value-sensitive', 'verb' => 'POST', 'root' => ''],
['name' => 'DeclarativeSettings#getForms', 'url' => '/settings/api/declarative/forms', 'verb' => 'GET', 'root' => ''],
],
];
diff --git a/apps/settings/composer/composer/autoload_classmap.php b/apps/settings/composer/composer/autoload_classmap.php
index 969b97dd693..1e8bc75c687 100644
--- a/apps/settings/composer/composer/autoload_classmap.php
+++ b/apps/settings/composer/composer/autoload_classmap.php
@@ -129,6 +129,7 @@ return array(
'OCA\\Settings\\SetupChecks\\SecurityHeaders' => $baseDir . '/../lib/SetupChecks/SecurityHeaders.php',
'OCA\\Settings\\SetupChecks\\SupportedDatabase' => $baseDir . '/../lib/SetupChecks/SupportedDatabase.php',
'OCA\\Settings\\SetupChecks\\SystemIs64bit' => $baseDir . '/../lib/SetupChecks/SystemIs64bit.php',
+ 'OCA\\Settings\\SetupChecks\\TaskProcessingPickupSpeed' => $baseDir . '/../lib/SetupChecks/TaskProcessingPickupSpeed.php',
'OCA\\Settings\\SetupChecks\\TempSpaceAvailable' => $baseDir . '/../lib/SetupChecks/TempSpaceAvailable.php',
'OCA\\Settings\\SetupChecks\\TransactionIsolation' => $baseDir . '/../lib/SetupChecks/TransactionIsolation.php',
'OCA\\Settings\\SetupChecks\\WellKnownUrls' => $baseDir . '/../lib/SetupChecks/WellKnownUrls.php',
diff --git a/apps/settings/composer/composer/autoload_static.php b/apps/settings/composer/composer/autoload_static.php
index 7aa86889c4c..5dc337e158c 100644
--- a/apps/settings/composer/composer/autoload_static.php
+++ b/apps/settings/composer/composer/autoload_static.php
@@ -144,6 +144,7 @@ class ComposerStaticInitSettings
'OCA\\Settings\\SetupChecks\\SecurityHeaders' => __DIR__ . '/..' . '/../lib/SetupChecks/SecurityHeaders.php',
'OCA\\Settings\\SetupChecks\\SupportedDatabase' => __DIR__ . '/..' . '/../lib/SetupChecks/SupportedDatabase.php',
'OCA\\Settings\\SetupChecks\\SystemIs64bit' => __DIR__ . '/..' . '/../lib/SetupChecks/SystemIs64bit.php',
+ 'OCA\\Settings\\SetupChecks\\TaskProcessingPickupSpeed' => __DIR__ . '/..' . '/../lib/SetupChecks/TaskProcessingPickupSpeed.php',
'OCA\\Settings\\SetupChecks\\TempSpaceAvailable' => __DIR__ . '/..' . '/../lib/SetupChecks/TempSpaceAvailable.php',
'OCA\\Settings\\SetupChecks\\TransactionIsolation' => __DIR__ . '/..' . '/../lib/SetupChecks/TransactionIsolation.php',
'OCA\\Settings\\SetupChecks\\WellKnownUrls' => __DIR__ . '/..' . '/../lib/SetupChecks/WellKnownUrls.php',
diff --git a/apps/settings/l10n/af.js b/apps/settings/l10n/af.js
deleted file mode 100644
index 07122872763..00000000000
--- a/apps/settings/l10n/af.js
+++ /dev/null
@@ -1,117 +0,0 @@
-OC.L10N.register(
- "settings",
- {
- "Private" : "Privaat",
- "Published" : "Gepubliseer",
- "Very weak password" : "Baie swak wagwoord",
- "Weak password" : "Swak wagwoord",
- "So-so password" : "Gemiddelde wagwoord",
- "Good password" : "Goeie wagwoord",
- "Strong password" : "Sterk wagwoord",
- "Groups" : "Groepe",
- "Group list is empty" : "Groeplys is leeg",
- "Unable to retrieve the group list" : "Kan nie die groeplys ophaal nie",
- "{actor} changed your password" : "{actor} het u wagwoord verander",
- "You changed your password" : "U het u wagwoord verander",
- "Your password was reset by an administrator" : "U wagwoord is deur ’n administrateur herstel",
- "{actor} changed your email address" : "{actor} het u e-posadres verander",
- "You changed your email address" : "U het u e-posadres verander",
- "Your email address was changed by an administrator" : "U e-posadres is deur ’n administrateur verander",
- "Security" : "Sekuriteit",
- "Your <strong>password</strong> or <strong>email</strong> was modified" : "U <strong>wagwoord</strong> of <strong>e-pos</strong> is gewysig",
- "Apps" : "Toeps",
- "Wrong password" : "Verkeerde wagwoord",
- "Saved" : "Bewaar",
- "No user supplied" : "Geen gebruiker verskaf nie",
- "Administrator documentation" : "Administrateurdokumentasie",
- "User documentation" : "Gebruikerdokumentasie",
- "Well done, %s!" : "Welgedaan %s!",
- "Users" : "Gebruikers",
- "Invalid user" : "Ongeldige gebruiker",
- "Invalid mail address" : "Ongeldige posadres",
- "Settings saved" : "Instellings gestoor",
- "Go to %s" : "Gaan na %s",
- "Settings" : "Instellings",
- "Personal" : "Persoonlik",
- "Calendar" : "Kalender",
- "Personal info" : "Persoonlike inligting",
- "Create" : "Skep",
- "Delete" : "Skrap",
- "Unlimited" : "Onbeperkte",
- "None" : "Geen",
- "Save changes" : "Bewaar veranderinge",
- "All" : "Alle",
- "Update to {version}" : "Werk by na {version}",
- "Remove" : "Verwyder",
- "Disable" : "Deaktiveer",
- "View in store" : "Bekyk in winkel",
- "Visit website" : "Besoek webwerf",
- "Admin documentation" : "Admindokumentasie",
- "Developer documentation" : "Ontwikkelaardokumentasie",
- "Rename" : "Hernoem",
- "Device" : "Toestel",
- "App name" : "Toepnaam",
- "Create new app password" : "Skep nuwe toepwagwoord",
- "Username" : "Gebruikersnaam",
- "Password" : "Wagwoord",
- "Done" : "Gereed",
- "Copied!" : "Gekopieer!",
- "Copy" : "Kopieer",
- "Profile" : "Profiel",
- "Enable" : "Aktiveer",
- "Current password" : "Huidige wagwoord",
- "New password" : "Nuwe wagwoord",
- "Change password" : "Verander wagwoord",
- "Cancel" : "Kanselleer",
- "Details" : "Besonderhede",
- "Your email address" : "U e-posadres",
- "No email address set" : "Geen e-posadres ingestel",
- "Language" : "Taal",
- "Help translate" : "Help met vertaling",
- "Your phone number" : "U foonnommer",
- "Your Twitter handle" : "U Twitter-handvatsel",
- "Your website" : "U webwerf",
- "Add" : "Voeg by",
- "Display name" : "Vertoonnaam",
- "Email" : "E-pos",
- "Quota" : "Kwota",
- "Group admin for" : "Groepadmin vir",
- "Last login" : "Laaste aantekening",
- "Default quota" : "Verstekkwota",
- "Unnamed device" : "Onbenoemde toestel",
- "Your apps" : "U toeps",
- "Changelog" : "Veranderingslog",
- "Active users" : "Aktiewe gebruikers",
- "Email sent" : "E-pos gestuur",
- "Location" : "Ligging",
- "Profile picture" : "Profielprent",
- "About" : "Oor",
- "Full name" : "Volle naam",
- "Phone number" : "Foonnommer",
- "Twitter" : "Twitter",
- "Website" : "Webwerf",
- "Disabled apps" : "Gedeaktiveerde toeps",
- "Updates" : "Bywerkings",
- "App bundles" : "Toepbundels",
- "Never" : "Nooit",
- "Documentation" : "Dokumentasie",
- "Forum" : "Forum",
- "Login" : "Teken aan",
- "Open documentation" : "Open dokumentasie",
- "Encryption" : "Enkripsie",
- "Server address" : "Bedieneradres",
- "Port" : "Poort",
- "Authentication required" : "Verifikasie word vereis",
- "SMTP Password" : "SMTP-wagwoord",
- "Save" : "Stoor",
- "Version" : "Weergawe",
- "Like our Facebook page" : "Hou van ons Facebook-blad",
- "Follow us on Twitter" : "Volg ons op Twitter",
- "Check out our blog" : "Besoek ons woernaal",
- "Subscribe to our newsletter" : "Teken in op ons nuusbrief",
- "png or jpg, max. 20 MB" : "png of jpg, maks. 20 MB",
- "Send email to new user" : "Stuur e-pos aan nuwe gebruiker",
- "SSL/TLS" : "SSL/TLS",
- "STARTTLS" : "STARTTLS"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/af.json b/apps/settings/l10n/af.json
deleted file mode 100644
index bc2e1dcebe1..00000000000
--- a/apps/settings/l10n/af.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{ "translations": {
- "Private" : "Privaat",
- "Published" : "Gepubliseer",
- "Very weak password" : "Baie swak wagwoord",
- "Weak password" : "Swak wagwoord",
- "So-so password" : "Gemiddelde wagwoord",
- "Good password" : "Goeie wagwoord",
- "Strong password" : "Sterk wagwoord",
- "Groups" : "Groepe",
- "Group list is empty" : "Groeplys is leeg",
- "Unable to retrieve the group list" : "Kan nie die groeplys ophaal nie",
- "{actor} changed your password" : "{actor} het u wagwoord verander",
- "You changed your password" : "U het u wagwoord verander",
- "Your password was reset by an administrator" : "U wagwoord is deur ’n administrateur herstel",
- "{actor} changed your email address" : "{actor} het u e-posadres verander",
- "You changed your email address" : "U het u e-posadres verander",
- "Your email address was changed by an administrator" : "U e-posadres is deur ’n administrateur verander",
- "Security" : "Sekuriteit",
- "Your <strong>password</strong> or <strong>email</strong> was modified" : "U <strong>wagwoord</strong> of <strong>e-pos</strong> is gewysig",
- "Apps" : "Toeps",
- "Wrong password" : "Verkeerde wagwoord",
- "Saved" : "Bewaar",
- "No user supplied" : "Geen gebruiker verskaf nie",
- "Administrator documentation" : "Administrateurdokumentasie",
- "User documentation" : "Gebruikerdokumentasie",
- "Well done, %s!" : "Welgedaan %s!",
- "Users" : "Gebruikers",
- "Invalid user" : "Ongeldige gebruiker",
- "Invalid mail address" : "Ongeldige posadres",
- "Settings saved" : "Instellings gestoor",
- "Go to %s" : "Gaan na %s",
- "Settings" : "Instellings",
- "Personal" : "Persoonlik",
- "Calendar" : "Kalender",
- "Personal info" : "Persoonlike inligting",
- "Create" : "Skep",
- "Delete" : "Skrap",
- "Unlimited" : "Onbeperkte",
- "None" : "Geen",
- "Save changes" : "Bewaar veranderinge",
- "All" : "Alle",
- "Update to {version}" : "Werk by na {version}",
- "Remove" : "Verwyder",
- "Disable" : "Deaktiveer",
- "View in store" : "Bekyk in winkel",
- "Visit website" : "Besoek webwerf",
- "Admin documentation" : "Admindokumentasie",
- "Developer documentation" : "Ontwikkelaardokumentasie",
- "Rename" : "Hernoem",
- "Device" : "Toestel",
- "App name" : "Toepnaam",
- "Create new app password" : "Skep nuwe toepwagwoord",
- "Username" : "Gebruikersnaam",
- "Password" : "Wagwoord",
- "Done" : "Gereed",
- "Copied!" : "Gekopieer!",
- "Copy" : "Kopieer",
- "Profile" : "Profiel",
- "Enable" : "Aktiveer",
- "Current password" : "Huidige wagwoord",
- "New password" : "Nuwe wagwoord",
- "Change password" : "Verander wagwoord",
- "Cancel" : "Kanselleer",
- "Details" : "Besonderhede",
- "Your email address" : "U e-posadres",
- "No email address set" : "Geen e-posadres ingestel",
- "Language" : "Taal",
- "Help translate" : "Help met vertaling",
- "Your phone number" : "U foonnommer",
- "Your Twitter handle" : "U Twitter-handvatsel",
- "Your website" : "U webwerf",
- "Add" : "Voeg by",
- "Display name" : "Vertoonnaam",
- "Email" : "E-pos",
- "Quota" : "Kwota",
- "Group admin for" : "Groepadmin vir",
- "Last login" : "Laaste aantekening",
- "Default quota" : "Verstekkwota",
- "Unnamed device" : "Onbenoemde toestel",
- "Your apps" : "U toeps",
- "Changelog" : "Veranderingslog",
- "Active users" : "Aktiewe gebruikers",
- "Email sent" : "E-pos gestuur",
- "Location" : "Ligging",
- "Profile picture" : "Profielprent",
- "About" : "Oor",
- "Full name" : "Volle naam",
- "Phone number" : "Foonnommer",
- "Twitter" : "Twitter",
- "Website" : "Webwerf",
- "Disabled apps" : "Gedeaktiveerde toeps",
- "Updates" : "Bywerkings",
- "App bundles" : "Toepbundels",
- "Never" : "Nooit",
- "Documentation" : "Dokumentasie",
- "Forum" : "Forum",
- "Login" : "Teken aan",
- "Open documentation" : "Open dokumentasie",
- "Encryption" : "Enkripsie",
- "Server address" : "Bedieneradres",
- "Port" : "Poort",
- "Authentication required" : "Verifikasie word vereis",
- "SMTP Password" : "SMTP-wagwoord",
- "Save" : "Stoor",
- "Version" : "Weergawe",
- "Like our Facebook page" : "Hou van ons Facebook-blad",
- "Follow us on Twitter" : "Volg ons op Twitter",
- "Check out our blog" : "Besoek ons woernaal",
- "Subscribe to our newsletter" : "Teken in op ons nuusbrief",
- "png or jpg, max. 20 MB" : "png of jpg, maks. 20 MB",
- "Send email to new user" : "Stuur e-pos aan nuwe gebruiker",
- "SSL/TLS" : "SSL/TLS",
- "STARTTLS" : "STARTTLS"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/settings/l10n/ar.js b/apps/settings/l10n/ar.js
index 3f197613c6e..7fda2c285f7 100644
--- a/apps/settings/l10n/ar.js
+++ b/apps/settings/l10n/ar.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "ترويسات الـ HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- لم يتم تعيين ترويسة الـ HTTP ـ `%1$s` إلى `%2$s`. يمكن ألّا تعمل بعض الخصائص بالشكل الصحيح بسبب عدم ضبط هذا الإعداد كما يجب.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- لم يتم تعيين ترويسة الـ HTTP ـ `%1$s` إلى `%2$s`. يمكن أن يٌشكِّل هذا تهديداً محتملاً للأمن و الخصوصية بسبب عدم ضبط هذا الإعداد كما يجب.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- ترويسة الـ HTTP ـ `%1$s` لا تحتوي على `%2$s`. يمكن أن يٌشكِّل هذا تهديداً محتملاً للأمن و الخصوصية بسبب عدم ضبط هذا الإعداد كما يجب.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- ترويسة الـ HTTP ـ `%1$s` لم يتم ضبطها على `%2$s`, أو `%3$s`, أو `%4$s`, أو `%5$s`، أو `%6$s`. يمكن أن يؤدي هذا إلى تسريب معلومات المرجِع . للمزيد، أنظُر: {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- ترويسة HTTP للنقل الآمن `Strict-Transport-Security` لم يتم ضبطها على `%d` ثوانٍ على الأقل (القيمة الحالية: `%d`). لتعزيز الأمن، يُوصى باستعمال سياسة HSTS طويلة.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- ترويسة HTTP للنقل الآمن `Strict-Transport-Security` ـ : `%s`. لتعزيز الأمن، يُنصح بتمكين HSTS.",
@@ -443,97 +442,6 @@ OC.L10N.register(
"Could not load section content from app store." : "تعذّر تحميل محتوى القسم من متجر التطبيقات",
"Loading" : "التحميل جارٍ...",
"Fetching the latest news…" : "تحميل آخر الأخبار...",
- "Carousel" : "دوَّار",
- "Previous slide" : "الشريحة السابقة",
- "Next slide" : "الشريحة التالية",
- "Choose slide to display" : "إختر شريحة للعرض",
- "{index} of {total}" : "{index} من {total}",
- "Daemon" : "برنامج خفي Daemon",
- "Deploy Daemon" : "نشر البرنامج الخفي",
- "Type" : "النوع",
- "Display Name" : "إسم العرض",
- "GPUs support" : "دعم وحدات المعالجة الرسومية GPU",
- "Compute device" : "إحسب الجهاز",
- "Advanced deploy options" : "خيارات النشر المتقدمة",
- "Edit ExApp deploy options before installation" : "قُم بتعديل خيارات نشر التطبيقات الخارجية ExAPP قبل التثبيت",
- "Configured ExApp deploy options. Can be set only during installation" : "الخيارات المُهيَّأة لنشر التطبيقات الخارجية ExAPP، يمكن تعيينها فقط أثناء التثبيت",
- "Learn more" : "تعلم المزيد",
- "Environment variables" : "متغيرات البيئة",
- "ExApp container environment variables" : "متغيرات بيئة حاوية التطبيقات الخارجية ExApp",
- "No environment variables defined" : "لم يتم تعريف أي متغيرات بيئية",
- "Mounts" : "نقاط تثبيت",
- "Define host folder mounts to bind to the ExApp container" : "قم بتحديد مجلدات المضيف المراد ربطها بحاوية التطبيق الخارجي ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "يجب أن يكون موجوداً على مضيف البرنامج المُقِيم للنشر Deploy daemon قبل تثبيت التطبيق الخارجي ExApp",
- "Host path" : "مسار المُضِيف",
- "Container path" : "مسار الحاوية",
- "Read-only" : "للقراءة فقط",
- "Remove mount" : "إزالة نقطة تثبيت",
- "New mount" : "نقطة تثبيت جديدة",
- "Enter path to host folder" : "أدخِل مسار مجلد الاسضافة",
- "Enter path to container folder" : "أدخِل مسار مجلد الحاوية",
- "Toggle read-only mode" : "تبديل وضعية \"للقراءة فقط\"",
- "Confirm adding new mount" : "أكِّد على إضافة نقطة التثبيت الجديدة",
- "Confirm" : "تأكيد",
- "Cancel adding mount" : "إلغاء إضافة نقطة التثبيت",
- "Cancel" : "إلغاء",
- "Add mount" : "إضافة نقطة تثبيت",
- "ExApp container mounts" : "نقاط تثبيت حاوية التطبيق الخارجي ExApp",
- "No mounts defined" : "لم يتم تعريف أي نقاط تثبيت",
- "Description" : "الوصف",
- "View in store" : "العرض في المتجر store",
- "Visit website" : "زيارة الموقع",
- "Usage documentation" : "توثيق المُستخدِم",
- "Admin documentation" : "دليل المدير",
- "Developer documentation" : "دليل المُطوّر",
- "Details" : "التفاصيل",
- "All" : "الكل",
- "Limit app usage to groups" : "قصر استخدام التطبيق على بعض المجموعات",
- "No results" : "لا نتائج",
- "Update to {version}" : "التحديث إلى {version}",
- "Deploy options" : "خيارات النشر",
- "Default Deploy daemon is not accessible" : "الوصول إلى البرنامج الخفي التلقائي لنشر التطبيقات Default Deploy Daemon غير ممكن.",
- "Delete data on remove" : "إحذف البيانات عند الإزالة",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "هذا التطبيق لم يُحدّد فيه أقدم إصدار متوافق معه من نكست كلاود. هذا قد يسبب خطأ في المستقبل.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "هذا التطبيق لم يُحدّد فيه أحدث إصدار متوافق معه من نكست كلاود. هذا قد يسبب خطأ في المستقبل.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "تعذّر تنصيب التطبيق بسبب عدم توافر التَبعِيّات dependencies التالية:",
- "Latest updated" : "آخر ما تمّ تحديثه",
- "Author" : "الكاتب",
- "Categories" : "التصنيفات",
- "Resources" : "الموارد",
- "Documentation" : "توثيق النظام",
- "Interact" : "تفاعل",
- "Report a bug" : "الإبلاغ عن خطإٍ",
- "Request feature" : "طلب خاصّيّةٍ",
- "Ask questions or discuss" : "إسأل أو ناقش",
- "Rate the app" : "قَيِّم التطبيق",
- "Rate" : "تقييم",
- "Changelog" : "سجل التغييرات",
- "Google Chrome for Android" : "مُتصفِّح \"كرُوم\" على الأندرويد من قوقل Chrome ",
- "{productName} iOS app" : "تطبيق iOS ـ {productName} ",
- "{productName} Android app" : "تطبيق أندرويد ـ {productName} ",
- "{productName} Talk for iOS" : "تطبيق المحادثة Talk على iOS ـ {productName} ",
- "{productName} Talk for Android" : "تطبيق المحادثة Talk على أندرويد ـ {productName} ",
- "Sync client" : "مُزامنة العميل",
- "This session" : "هذه الجلسة",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "اسم الجهاز",
- "Cancel renaming" : "إلغِ إعادة التسمية",
- "Save new name" : "حفظ الاسم الجديد",
- "Marked for remote wipe" : "مُعلَّمٌ ليتم مَحوُه عن بُعدٍ",
- "Device settings" : "إعدادات الجهاز",
- "Allow filesystem access" : "السماح بالنفاذ إلى نظام الملفات",
- "Rename" : "تعديل الاسم",
- "Revoke" : "سحب ",
- "Wipe device" : "مَحوُ الجهاز",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "إبطال رمز Token قد يتسبب في منع محو جهازك إذا لم تكن عملية المحو قد بدأت حتى الآن",
- "Device" : "الجهاز",
- "Last activity" : "آخر حركة",
- "Devices & sessions" : "الأجهزة والجلسات",
- "Web, desktop and mobile clients currently logged in to your account." : "تطبيق الويب وسطح المكتب والجوال المسجل دخولهم حالياً في حسابك.",
- "Error while creating device token" : "حدث خطأ اثناء إنشاء أَمَارَة token للجهاز",
- "App name" : "اسم التطبيق",
- "Create new app password" : "إنشاء كلمة مرور جديدة للتطبيق",
"App password copied!" : "تمّ نسخ كلمة مرور التطبيق!",
"Copy app password" : "إنسَخ كلمة مرور التطبيق",
"Login name copied!" : "اسم الدخول تمّ نسخه!",
@@ -561,6 +469,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "تعذّر تحديث الإعدادات التلقائية لملف التعريف الشخصي profile",
"Profile" : "الملف الشخصي",
"Enable or disable profile by default for new accounts." : "تمكين أو تعطيل الملف الشخصي بشكل افتراضي للحسابات الجديدة.",
+ "Password confirmation is required" : "مِن الواجب تأكيد كلمة السر",
"Failed to save setting" : "فشل في حفظ الإعداد",
"{app}'s declarative setting field: {name}" : "حقل الإعدادات التصريحي للتطبيق {app} : {name}",
"Unable to update server side encryption config" : "تعذر تحديث تهيئة التشفير من جانب الخادم",
@@ -583,206 +492,11 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "من المهم دائماً إنشاء نسخ احتياطية بشكل معتاد لبياناتك. في حال كنت مُفعِّلا لخاصية التشفير تأكد دائما من حصولك على رمز التشفير بالإضافة الى البيانات.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "إرجِع إلى توثيق المُشرِف حول كيفية تشفير الملفات الموجودة يدويّاً أيضاً.",
"This is the final warning: Do you really want to enable encryption?" : "هذا هو التحذير الاخير: هل تريد حقا تفعيل خاصية التشفير؟",
- "Failed to remove group \"{group}\"" : "تعذّر حذف المجموعة \"{group}\"",
"Please confirm the group removal" : "رجاءً، قم بتأكيد حذف المجموعة",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "أنت على وشك إزالة المجموعة \"{group}\". لن يتم حذف الحسابات.",
+ "Cancel" : "إلغاء",
+ "Confirm" : "تأكيد",
"Submit" : "إرسال ",
"Rename group" : "تغيير تسمية مجموعة",
- "Remove group" : "حذف مجموعة",
- "Current password" : "كلمة المرور الحالية",
- "New password" : "كلمة المرور الجديدة",
- "Change password" : "تغيير كلمة المرور",
- "Choose your profile picture" : "إختر صورة ملفك الشخصي",
- "Please select a valid png or jpg file" : "رجاءً، إختر ملف PNG أو JPG صالح",
- "Error setting profile picture" : "حدث خطأُ أثناء تعيين صورة الملف الشخصي",
- "Error cropping profile picture" : "حدث خطأُ أثناء قصقصة cropping صورة الملف الشخصي",
- "Error saving profile picture" : "حدث خطأُ أثناء حفظ صورة الملف الشخصي",
- "Error removing profile picture" : "حدث خطأُ أثناء حذف صورة الملف الشخصي",
- "Your profile picture" : "صورة ملفك الشخصي",
- "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" : "الصورة المستخدمة من الحساب الاصلي",
- "Set as profile picture" : "تعيين كصورة للملف الشخصي",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "يرجى ملاحظة أن الأمر قد يستغرق ما يصل إلى 24 ساعة حتى يتم تحديث صورة ملفك الشخصي في كل مكان.",
- "Your biography. Markdown is supported." : "سيرتك الذاتية. تنسيق \"ماركداون\" مدعوم أيضاً.",
- "Unable to update date of birth" : "يتعذّر تحديث تاريخ الميلاد",
- "Enter your date of birth" : "أدخل تاريخ ميلادك",
- "You are using {s}{usage}{/s}" : "أنت تستعمل {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "أنت تستعمل {s}{usage}{/s} من {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "أنت عضو في المجموعات التالية:",
- "Your full name" : "اسمك الكامل",
- "Email options" : "خيارات الإيميل",
- "Options for additional email address {index}" : "خيارات عنوان البريد الإلكتروني الإضافي {index}",
- "Remove primary email" : "حذف حساب البريد الالكتروني الأساسي",
- "Delete email" : "حذف الإيميل",
- "This address is not confirmed" : "هذا العنوان غير مؤكد",
- "Unset as primary email" : "إلغاء التعيين كحساب بريد الكتروني أساسي",
- "Set as primary email" : "تعيين كحساب بريد الكتروني أساسي",
- "Additional email address {index}" : "إيميل إضافي {index}",
- "Unable to delete primary email address" : "تعذّر حذف حساب البريد الالكتروني الأساسي",
- "Unable to update primary email address" : "تعذّر تحديث حساب البريد الالكتروني الأساسي",
- "Unable to add additional email address" : "تعذّرت إضافة حساب بريد الكتروني إضافي",
- "Unable to update additional email address" : "تعذّر تحديث حساب البريد الالكتروني الإضافي",
- "Unable to delete additional email address" : "تعذّرت إضافة حساب بريد الكتروني إضافي",
- "Primary email for password reset and notifications" : "البريد الإلكتروني الأساسي لإعادة تعيين كلمة المرور والإشعارات",
- "No email address set" : "لم يتم تعيين أي إيميل",
- "Your handle" : "حسابك",
- "Derived from your locale ({weekDayName})" : "مشتق من إعدادات منطقتك ({weekDayName})",
- "Unable to update first day of week" : "تعذّر تحديث اليوم الأول في الأسبوع",
- "Day to use as the first day of week" : "اليوم الذي سيتم اعتباره أول يوم في الأسبوع",
- "Your headline" : "عنوان ملفك الشخصي",
- "Unable to update language" : "تعذّر تحديث اللغة",
- "Languages" : "اللغات",
- "Help translate" : "المساعدة في الترجمة",
- "No language set" : "لم يتم تعيين أيّ لغةٍ",
- "Unable to update locale" : "تعذر تحديث إعدادات المنطقة",
- "Locales" : "الدول والمناطق",
- "Week starts on {firstDayOfWeek}" : "يبدأ الأسبوع بيوم {firstDayOfWeek}",
- "No locale set" : "لم يتم تعيين أي إعدادات للمنطقة",
- "Your city" : "مدينتك",
- "Your organisation" : "مؤسستك",
- "Your phone number" : "رقم هاتفك",
- "Edit your Profile visibility" : "حدّد من يستطيع أن يرى ملفك الشخصي",
- "Unable to update profile enabled state" : "تعذّر تحديث حالة الملف الشخصي المُفعّلة profile enabled state",
- "Enable profile" : "تمكين الملف الشخصي",
- "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." : "الإعداد الأكثر تقييدًا للرؤية أو النطاق في ملف تعريفك الشخصي هو الذي سيتم تطبيقه. على سبيل المثال، إذا تم تعيين الرؤية على \"إظهار للجميع\" و تم تعيين النطاق على \"خاص\"، فسيتم تطبيق \"خاص\".",
- "Unable to update visibility of {displayId}" : "تعذر تحديث رؤية {displayId}",
- "she/her" : "هو/هي",
- "he/him" : "هو",
- "they/them" : "هم",
- "Your role" : "وظيفتك",
- "Your X (formerly Twitter) handle" : "حساب منصة X (تويتر سابقاً)",
- "Your website" : "صفحتك على الويب",
- "Invalid value" : "قيمة غير صحيحة",
- "Unable to update {property}" : "تعذّر تحديث {property}",
- "No {property} set" : "لم يتم تعيين أي {property} ",
- "Change scope level of {property}, current scope is {scope}" : "تمّ تغيير مستوى نطاق scope level ـ {property}. النطاق الحالي {scope}",
- "Unable to update federation scope of the primary {property}" : "تعذّر تحديث نطاق الاتحاد لـ {property} الأساسي/الأساسية",
- "Unable to update federation scope of additional {property}" : "تعذّر تحديث نطاق الاتحاد لـ {property} الإضافي/الإضافي",
- "Add additional email" : "إضافة بريد إلكتروني إضافي",
- "Add" : "إضافة",
- "Create" : "إنشاء",
- "Change" : "تعديل",
- "Delete" : "إلغاء",
- "Reshare" : "إعادة المشاركة",
- "Default language" : "اللغة الافتراضية",
- "Common languages" : "اللغات الشائعة",
- "Other languages" : "لُغات أخرى",
- "Password change is disabled because the master key is disabled" : "تم تعطيل تغيير كلمة المرور لأن المفتاح الرئيسي master key معطلٌ",
- "No accounts" : "لا توجد أي حسابات",
- "Loading accounts …" : "تحميل الحسابات ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "قائمة الحسابات. لم يتم تقديم هذه القائمة بالكامل لأسباب تتعلق بسرعة الأداء. سيتم عرض باقي الحسابات أثناء التنقل عبر القائمة.",
- "Manager" : "مدير",
- "Set line manager" : "تعيين الرئيس المباشر",
- "Account name will be autogenerated" : "سيتم توليد اسم الحساب تلقائيّاً",
- "Account name (required)" : "اسم الحساب (مطلوب)",
- "Failed to search groups" : "فشل البحث في المجموعات",
- "New account" : "حساب جديد",
- "Display name" : "اسم العرض",
- "Either password or email is required" : "يتطلب كلمة المرور أو البريد الإلكتروني",
- "Password (required)" : "كلمة المرور (مطلوب)",
- "Email (required)" : "البريد الالكتروني (مطلوب)",
- "Email" : "البريد الإلكتروني",
- "Member of the following groups (required)" : "عضو في المجموعات التالية ( مطلوب)",
- "Member of the following groups" : "عضو في المجموعات التالية",
- "Set account groups" : "تعيين مجموعات الحساب",
- "Admin of the following groups" : "مدير في المجموعات التالية",
- "Set account as admin for …" : "تعيين الحساب كمدير على ...",
- "Quota" : "الحصة التخزينية",
- "Set account quota" : "تعيين الحصة التخزينية للحساب",
- "Language" : "اللغة",
- "Set default language" : "تعيين اللغة الافتراضية",
- "Add new account" : "إضافة حساب جديد",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} حساب …","{userCount} حساب …","{userCount} حساب …","{userCount} حسابات …","{userCount} حساب …","{userCount} حساب …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} حساب ","{userCount} حساب ","{userCount} حساب ","{userCount} حسابات","{userCount} حساب ","{userCount} حساب "],
- "Total rows summary" : "ملخص مجموع الأسطر",
- "Scroll to load more rows" : "مرِّر على القائمة لتحميل المزيد من الصفوف",
- "Password or insufficient permissions message" : "رسالة حول كلمة المرور أو عدم كفاية الأذونات",
- "Avatar" : "صورة الملف الشخصي الرمزية",
- "Account name" : "اسم الحساب",
- "Group admin for" : "مدير المجموعة لـ",
- "Account backend" : "الواجهة الخلفية للحساب",
- "Storage location" : "مسار التخزين",
- "First login" : "أول دخول",
- "Last login" : "آخِر تسجيلٍ للدخول",
- "Account actions" : "إجراءات الحساب",
- "{size} used" : "تم استهلاك{size} ",
- "Delete account" : "حذف الحساب",
- "Disconnect all devices and delete local data" : "قطع اتصال جميع الأجهزة وحذف البيانات المحلية فيها",
- "Disable account" : "تعطيل الحساب",
- "Enable account" : "تمكين الحساب",
- "Resend welcome email" : "إعادة إرسال الإيميل الترحيبي",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "في حالة فقد الجهاز أو ترك العمل بالمؤسسة، يمكن مَحْو بيانات نكست كلاود عن بُعد من جميع الأجهزة المرتبطة بـ {userid}. يعمل فقط إذا كانت الأجهزة متصلة بالإنترنت.",
- "Remote wipe of devices" : "مَحْو الأجهزة عن بُعدٍ",
- "Wipe {userid}'s devices" : "قُم بمَحْو أجهزة {userid}",
- "Wiped {userid}'s devices" : "أجهزة {userid} تمّ محوُها",
- "Failed to load groups with details" : "فل تحميل المجموعات مع التفاصيل",
- "Failed to load sub admin groups with details" : "فشل تحميل مجموعات المشرف الفرعي مع التفاصيل",
- "Failed to update line manager" : "تعذّر تحديث الرئيس المباشر",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "حذفُ حساب {userid} بالكامل بما في ذلك جميع ملفاته الشخصية وبيانات التطبيقات و غيرها.",
- "Account deletion" : "حذف حساب",
- "Delete {userid}'s account" : "حذف حساب {userid}",
- "Display name was successfully changed" : "تم تغيير اسم العرض بنجاح",
- "Password can't be empty" : "كلمة المرور لايمكن أن تكون فارغةً",
- "Password was successfully changed" : "تم تغيير كلمة المرور بنجاح",
- "Email can't be empty" : "البريد الإلكتروني لايمكن أن يكون فارغاً",
- "Email was successfully changed" : "تم تغيير البريد الإلكتروني بنجاح",
- "Welcome mail sent!" : "تمّ إرسال إيميل ترحيبي!",
- "Loading account …" : "تحميل حسابات ...",
- "Change display name" : "تعديل اسم العرض",
- "Set new password" : "تعيين كلمة مرور جديدة",
- "You do not have permissions to see the details of this account" : "ليس لديك الإذن بالاطلاع على تفاصيل هذا الحساب",
- "Set new email address" : "تعيين عنوان بريد الكتروني جديد",
- "Add account to group" : "إضافة حساب إلى مجموعة",
- "Set account as admin for" : "تعيين حساب كمدير على ",
- "Select account quota" : "تعيين الحصة التخزينية للحساب",
- "Set the language" : "تعيين اللغة",
- "Toggle account actions menu" : "تبديل قائمة إجراءات الحساب",
- "Done" : "تمّ",
- "Edit" : "تعديل",
- "Account management settings" : "إعدادات إدارة الحساب",
- "Visibility" : "الرؤية",
- "Show language" : "لغة العرض",
- "Show account backend" : "إظهار خلفية الحساب",
- "Show storage path" : "عرض مسار التخزين",
- "Show first login" : "أظهِر أول دخول",
- "Show last login" : "عرض آخر تسجيل دخول",
- "Sorting" : "ترتيب",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "يفرض تكوين النظام فرز المجموعات حسب الاسم. يؤدي هذا أيضًا إلى تعطيل إظهار عدد الأعضاء.",
- "Group list sorting" : "ترتيب قائمة المجموعات",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "ينطبق الترتيب فقط على المجموعات التي تم تحميلها مؤخراً لاسباب تتعلق بالأداء. مزيد من المجموعات سيتم تحميلها كلما تحركت عبر القائمة أو بحثت فيها.",
- "By member count" : "بحسب عدد الأعضاء",
- "By name" : "بحسب الاسم",
- "Send email" : "إرسال بريد إلكتروني",
- "Send welcome email to new accounts" : "إرسال إيميل ترحيبي للحسابات الجديدة",
- "Defaults" : "الافتراضي",
- "Default quota" : "الحصة الافتراضية",
- "Select default quota" : "تعيين الحصة الافتراضية",
- "Server error while trying to complete WebAuthn device registration" : "حدث خطأ في الخادم أثناء محاولة إكمال تسجيل جهاز WebAuthn",
- "Passwordless authentication requires a secure connection." : "تتطلب المصادقة بدون كلمة مرور اتصالاً آمنًا.",
- "Add WebAuthn device" : "إضافة جهاز WebAuthn",
- "Please authorize your WebAuthn device." : "يُرجى منح الإذن لجهاز WebAuthn الخاص بك.",
- "Adding your device …" : "إضافة جهازك جاريةٌ ...",
- "Unnamed device" : "جهاز بدون اسم",
- "Passwordless Authentication" : "المصادقة بدون كلمة مرور",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "قم بإعداد حسابك للمصادقة بدون كلمة مرور وفق معيار FIDO2.",
- "No devices configured." : "لم تتمّ تهيئة أي أجهزة.",
- "The following devices are configured for your account:" : "تمّت تهيئة الأجهزة التالية لحسابك:",
- "Your browser does not support WebAuthn." : "مُتصفِّحُك لا يدعم WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "بصفتك مدير يمكنك ضبط سلوك وآلية عمليات المشاركة. يرجى الاطلاع على التوثيق لمزيد من المعلومات.",
- "You need to enable the File sharing App." : "يلزمك تمكين تطبيق مُشارَكة الملفات File sharing.",
- "App Store" : "متجر التطبيقات",
- "Loading app list" : "تحميل قائمة التطبيقات",
- "Loading categories" : "تحميل الفئات",
- "Developer documentation ↗" : "توثيق المطورين ↗",
- "Version {version}, {license}-licensed" : "النسخة {version}, {license}-مُرخَّصَة",
- "Version {version}" : "الإصدار {version}",
- "All accounts" : "جميع الحسابات",
- "Admins" : "المديرون",
- "Account group: {group}" : "مجموعة الحساب: {group}",
- "Account management" : "إدارة الحساب",
"Sending…" : "الإرسال جارٍ …",
"Email sent" : "تمّ إرسال الإيميل",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "لأسباب تتعلق بالأداء، عندما تقوم بتمكين التشفير على خادوم نكست كلاود، يتم تشفير الملفات الجديدة والمتغيرة فقط.",
@@ -792,6 +506,7 @@ OC.L10N.register(
"Date of birth" : "تاريخ الميلاد",
"Full name" : "الاسم الكامل",
"Additional email" : "إيميل إضافي",
+ "Email" : "البريد الإلكتروني",
"Fediverse (e.g. Mastodon)" : "الحساب على شبكات التواصل الاجتماعي Fediverse (مثل Mastodon)",
"Headline" : "العنوان",
"Organisation" : "المؤسسة",
@@ -801,6 +516,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "منصة X (تويتر سابقاً)",
"Website" : "صفحة الويب",
"Profile visibility" : "رؤية الملف الشخصي",
+ "Language" : "اللغة",
"Locale" : "إعدادات المنطقة واللغة",
"First day of week" : "أول يوم في الأسبوع",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "غير مُتاحٍ لأن هذه الخاصية مطلوبة للوظائف الأساسية بما في ذلك مشاركة الملفات و دعوات التقويم",
@@ -818,6 +534,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "عرض للمسجل دخولهم فقط",
"Hide" : "إخفاء",
"Manually installed apps cannot be updated" : "التطبيقات المثبتة يدويّاً لايمكن تحديثها",
+ "Update to {version}" : "التحديث إلى {version}",
"{progress}% Deploying …" : "{progress}% النشر جارٍ …",
"{progress}% Initializing …" : "{progress}% التهيئة جارية …",
"Health checking" : "فحص الصحة",
@@ -827,6 +544,7 @@ OC.L10N.register(
"Allow untested app" : "السماح للتطبيقات غير المجازة",
"The app will be downloaded from the App Store" : "سيتم تنزيل التطبيق من متجر التطبيقات ",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "لم يتم التعرّف على هذا التطبيق باعتباره متوافقاً مع إصدار نكست كلاود الخاص بك. إذا تابعت، فسيظل بإمكانك تنصيب التطبيق. ولكن يجب ملاحظة أن التطبيق قد لا يعمل بالشكل المتوقع.",
+ "{size} used" : "تم استهلاك{size} ",
"Unknown" : "غير معروف",
"Never" : "أبدا",
"Could not register device: Network error" : "تعذّر تسجيل الجهاز: خطأ في الشبكة",
@@ -845,8 +563,10 @@ OC.L10N.register(
"Could not set group sorting" : "تعذّر تعيين كيفية ترتيب المجموعات",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "الطلبات الموجودة أكثر من الحد المسموح به في الشبكة. أعد المحاولة أو اتصل بمدير النظام.",
"Error" : "خطأ",
+ "Default quota" : "الحصة الافتراضية",
"Account documentation" : "وثائق المستخدم",
"Administration documentation" : "وثائق الإدارة",
+ "Documentation" : "توثيق النظام",
"Forum" : "المنتدى",
"Nextcloud help & privacy resources" : "مصادر للمساعدة والخصوصية حول نكست كلاود",
"General documentation" : "وثائق عامة",
@@ -869,6 +589,7 @@ OC.L10N.register(
"SMTP Password" : "كلمة مرور الـ SMTP",
"Save" : "حفظ",
"Test and verify email settings" : "إختبر و تحقّق من إعدادات البريد الالكتروني",
+ "Send email" : "إرسال بريد إلكتروني",
"Security & setup warnings" : "تحذيرات الإعداد والأمان",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "من المهم لأمان الخادم و مستوى أدائه أن يتم تكوين كل شيء بشكل صحيح. لمساعدتك في ذلك، نقوم ببعض الفحوصات التلقائية. يُرجى الاطلاع على الوثائق ذات الصلة لمزيد من المعلومات.",
"All checks passed." : "تمّ اجتياز جميع الاختبارات بنجاح.",
@@ -888,51 +609,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "استخدم عاملاً ثانياً إلى جانب كلمة مرورك لزيادة أمان حسابك.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "إذا كنت تستخدم تطبيقات من طرفٍ ثالثٍ للاتصال بنكست كلاود، فالرجاء التأكد من إنشاء و تهيئة كلمة مرور التطبيق لكل منها قبل تمكين التحقق ثنائي العوامل من الهويّة 2FA.",
"Logged in account must be a subadmin" : "يجب أن يكون الحساب الذي تم تسجيل الدخول إليه مديراً فرعياً",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "للسماح بتشغيل هذا الفحص، عليك التأكد من أن خادم الويب عندك يمكنه الاتصال بنفسه. ولذلك، يجب أن يكون قادراً على حل المشكلة والاتصال بنطاق واحد على الأقل من \"النطاقات_الموثوقة\" أو 'overwrite.cli.url'.",
- "Missing optional index \"%s\" in table \"%s\"." : "دليل اختياري ناقص \"%s\" في الجدول \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "تفتقد قاعدة البيانات إلى بعض الفهارس. نظرًا لحقيقة أن إضافة الفهارس على الجداول الكبيرة قد تستغرق بعض الوقت لم تتم إضافتها تلقائيًا. من خلال تشغيل \"occ db: add-missing-indexices\" ، يمكن إضافة تلك الفهارس المفقودة يدويًا أثناء استمرار تشغيل الخادم. بمجرد إضافة الفهارس، تكون الاستعلامات إلى هذه الجداول عادةً أسرع بكثير.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "للسماح بتشغيل هذا الفحص، عليك التأكد من أن خادم الويب الخاص بك يمكنه الاتصال بنفسه. لذلك، يجب أن يكون قادراً على حل المشكلة والاتصال بواحد على الأقل من \"النطاقات_الموثوقة\" أو \"overwrite.cli.url\". قد يكون هذا الفشل نتيجة لعدم تطابق DNS من جانب الخادم أو قاعدة صادرة لجدار الحماية.",
"File locking" : "قفل الملف",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "تم تعطيل خاصية \"قفل الملف أثناء العمل عليه\" Transactional file locking؛ الأمر الذي قد يؤدي إلى حدوث مشكلة \"التسابق على الموارد\" race condition. قُم بتمكين \"filelocking.enabled\" في ملف config.php لتجنب حدوث ذلك.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "تعذر التحقُّق من دعم JavaScript عبر أيٍّ من \"النطاقات_الموثوقة\" أو \"overwrite.cli.url\". قد يكون هذا نتيجة عدم تطابق DNS من جانب الخادم أو بسبب إحدى سياسات إدارة الحركة الصادرة في جدار الحماية. يرجى التحقق يدويًا مما إذا كان خادم الويب عندك يقدم ملفات `.mjs` باستخدام نوع JavaScript MIME.",
"The PHP memory limit is below the recommended value of %s." : "حد ذاكرة PHP أقل من القيمة الموصى بها وهي %s.",
"for WebAuthn passwordless login" : "للدخول بدون كلمة مرور passwordless login في WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "للدخول بدون كلمة مرور passwordless login في WebAuthn، و وحدات تخزين SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "إصدار PHP الذي تقوم بتشغيله الآن هو %s. النسخة 8.0 من PHP لم تعد مدعومة منذ الإصدار 27 لنكست كلاود. الإصدار 28 من نكست كلاود يتطلب استعمال الإصدار 8.1 من PHP على الأقل. رجاءً، قم بترقية إصدارPHP إلى إحدى الإصدارات المدعومة من نكست كلاود في أسرع وقت.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "الإصدار المستعمل من MaridaDB هو \"%s\" . بدايةً من نكست كلاود 21 فما فوق تتطلب استعمال الإصدار MariaDN 10.2 أو أحدث.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "الإصدار المستعمل من MySQL هو \"%s\" . بدايةً من نكست كلاود 21 فما فوق تتطلب استعمال الإصدار MySAL 8.0 أو MariaDB 10.2 أو أحدث.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "الإصدار المستعمل من PostgreSQL هو \"%s\" . بدايةً من نكست كلاود 21 فما فوق تتطلب استعمال الإصدار PostgreSQL 9,6 أو أحدث.",
- "Speech-To-Text" : "تحويل الكلام إلى نص",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "يمكن تنفيذ تحويل الكلام إلى نص بواسطة تطبيقات مختلفة. هنا يمكنك تعيين التطبيق الذي يجب استخدامه.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "لا توفر أي من تطبيقاتك المثبتة حاليًا وظيفة تحويل الكلام إلى نص",
- "None of your currently installed apps provide Text processing functionality" : "لا يوفر أي من تطبيقاتك المثبتة حاليًا وظيفة معالجة النصوص",
- "Set default expiration date for shares" : "تعيين تاريخ إنتهاء الصلاحية للمشاركات",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "السماح بالإكمال التلقائي لاسم المستخدم في حوار المشاركة والسماح بالوصول إلى دفتر عناوين النظام",
- "Your biography" : "سيرتك الذاتية",
- "You are using <strong>{usage}</strong>" : "أنت تستعمل <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "أنت تستعمل <strong>{usage}</strong> من <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "تعيين مدير المستخدم",
- "Username will be autogenerated" : "يتم توليد وإنشاء اسم المستخدم تلقائيا",
- "Username (required)" : "اسم المستخدم (مطلوب)",
- "New user" : "مستخدم جديد",
- "Groups (required)" : "المجموعات (مطلوب)",
- "Set user groups" : "تعيين مجموعات المستخدم",
- "Administered groups" : "المجموعات المدارة",
- "Set user as admin for …" : "تعيين المستخدم كمدير على ...",
- "Set user quota" : "تعيين حصة المستخدم",
- "Add new user" : "إضافة مستخدم جديد",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} مستخدم …","{userCount} مستخدِم …","{userCount} مستخدِمان …","{userCount} مستخدِم …","{userCount} مستخدِم …","{userCount} users …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} مستخدِم","{userCount} مستخدِم","{userCount} مستخدِم","{userCount} مستخدِم","{userCount} مستخدِم","{userCount} مستخدِم"],
- "Loading users …" : "تحميل المستخدِمين جارٍ ...",
- "Username" : "اسم المستخدم",
- "User backend" : "الواجهة الخلفية للمستخدم",
- "User actions" : "إجراءات المستخدِم",
- "Add user to group" : "إضافة مستخدم إلى مجموعة",
- "Server error while trying to add WebAuthn device" : "حدث خطأ في الخادم أثناء محاولة إضافة جهاز WebAuthn",
- "Name your device" : "اسم جهازك",
- "Active accounts" : "حسابات نشطة",
- "Follow us on Twitter" : "تابعونا على تويتر",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "للسماح بتشغيل هذا الفحص، عليك التأكد من أن خادم الويب الخاص بك يمكنه الاتصال بنفسه. لذلك، يجب أن يكون قادراً على حل المشكلة والاتصال بواحد على الأقل من \"النطاقات_الموثوقة\" أو \"overwrite.cli.url\". قد يكون هذا الفشل نتيجة لعدم تطابق DNS من جانب الخادم أو قاعدة صادرة لجدار الحماية.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- ترويسة الـ HTTP ـ `%1$s` لا تحتوي على `%2$s`. يمكن أن يٌشكِّل هذا تهديداً محتملاً للأمن و الخصوصية بسبب عدم ضبط هذا الإعداد كما يجب.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "تمّ اكتشاف الإصدار \"%s\" من PostgreSQL. الإصدارات الموصى بها لأفضل أداء و للثبات و لاكتمال الوظائف مع هذا الإصدار من نكست كلاود هي من 12 إلى 16. ",
- "Failed to load subadmin groups with details" : "فشل تحميل المجموعات الفرعية مع التفاصيل"
+ "Set default expiration date for shares" : "تعيين تاريخ إنتهاء الصلاحية للمشاركات"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/settings/l10n/ar.json b/apps/settings/l10n/ar.json
index e0579a3398f..e3f96de6c10 100644
--- a/apps/settings/l10n/ar.json
+++ b/apps/settings/l10n/ar.json
@@ -294,7 +294,6 @@
"HTTP headers" : "ترويسات الـ HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- لم يتم تعيين ترويسة الـ HTTP ـ `%1$s` إلى `%2$s`. يمكن ألّا تعمل بعض الخصائص بالشكل الصحيح بسبب عدم ضبط هذا الإعداد كما يجب.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- لم يتم تعيين ترويسة الـ HTTP ـ `%1$s` إلى `%2$s`. يمكن أن يٌشكِّل هذا تهديداً محتملاً للأمن و الخصوصية بسبب عدم ضبط هذا الإعداد كما يجب.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- ترويسة الـ HTTP ـ `%1$s` لا تحتوي على `%2$s`. يمكن أن يٌشكِّل هذا تهديداً محتملاً للأمن و الخصوصية بسبب عدم ضبط هذا الإعداد كما يجب.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- ترويسة الـ HTTP ـ `%1$s` لم يتم ضبطها على `%2$s`, أو `%3$s`, أو `%4$s`, أو `%5$s`، أو `%6$s`. يمكن أن يؤدي هذا إلى تسريب معلومات المرجِع . للمزيد، أنظُر: {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- ترويسة HTTP للنقل الآمن `Strict-Transport-Security` لم يتم ضبطها على `%d` ثوانٍ على الأقل (القيمة الحالية: `%d`). لتعزيز الأمن، يُوصى باستعمال سياسة HSTS طويلة.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- ترويسة HTTP للنقل الآمن `Strict-Transport-Security` ـ : `%s`. لتعزيز الأمن، يُنصح بتمكين HSTS.",
@@ -441,97 +440,6 @@
"Could not load section content from app store." : "تعذّر تحميل محتوى القسم من متجر التطبيقات",
"Loading" : "التحميل جارٍ...",
"Fetching the latest news…" : "تحميل آخر الأخبار...",
- "Carousel" : "دوَّار",
- "Previous slide" : "الشريحة السابقة",
- "Next slide" : "الشريحة التالية",
- "Choose slide to display" : "إختر شريحة للعرض",
- "{index} of {total}" : "{index} من {total}",
- "Daemon" : "برنامج خفي Daemon",
- "Deploy Daemon" : "نشر البرنامج الخفي",
- "Type" : "النوع",
- "Display Name" : "إسم العرض",
- "GPUs support" : "دعم وحدات المعالجة الرسومية GPU",
- "Compute device" : "إحسب الجهاز",
- "Advanced deploy options" : "خيارات النشر المتقدمة",
- "Edit ExApp deploy options before installation" : "قُم بتعديل خيارات نشر التطبيقات الخارجية ExAPP قبل التثبيت",
- "Configured ExApp deploy options. Can be set only during installation" : "الخيارات المُهيَّأة لنشر التطبيقات الخارجية ExAPP، يمكن تعيينها فقط أثناء التثبيت",
- "Learn more" : "تعلم المزيد",
- "Environment variables" : "متغيرات البيئة",
- "ExApp container environment variables" : "متغيرات بيئة حاوية التطبيقات الخارجية ExApp",
- "No environment variables defined" : "لم يتم تعريف أي متغيرات بيئية",
- "Mounts" : "نقاط تثبيت",
- "Define host folder mounts to bind to the ExApp container" : "قم بتحديد مجلدات المضيف المراد ربطها بحاوية التطبيق الخارجي ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "يجب أن يكون موجوداً على مضيف البرنامج المُقِيم للنشر Deploy daemon قبل تثبيت التطبيق الخارجي ExApp",
- "Host path" : "مسار المُضِيف",
- "Container path" : "مسار الحاوية",
- "Read-only" : "للقراءة فقط",
- "Remove mount" : "إزالة نقطة تثبيت",
- "New mount" : "نقطة تثبيت جديدة",
- "Enter path to host folder" : "أدخِل مسار مجلد الاسضافة",
- "Enter path to container folder" : "أدخِل مسار مجلد الحاوية",
- "Toggle read-only mode" : "تبديل وضعية \"للقراءة فقط\"",
- "Confirm adding new mount" : "أكِّد على إضافة نقطة التثبيت الجديدة",
- "Confirm" : "تأكيد",
- "Cancel adding mount" : "إلغاء إضافة نقطة التثبيت",
- "Cancel" : "إلغاء",
- "Add mount" : "إضافة نقطة تثبيت",
- "ExApp container mounts" : "نقاط تثبيت حاوية التطبيق الخارجي ExApp",
- "No mounts defined" : "لم يتم تعريف أي نقاط تثبيت",
- "Description" : "الوصف",
- "View in store" : "العرض في المتجر store",
- "Visit website" : "زيارة الموقع",
- "Usage documentation" : "توثيق المُستخدِم",
- "Admin documentation" : "دليل المدير",
- "Developer documentation" : "دليل المُطوّر",
- "Details" : "التفاصيل",
- "All" : "الكل",
- "Limit app usage to groups" : "قصر استخدام التطبيق على بعض المجموعات",
- "No results" : "لا نتائج",
- "Update to {version}" : "التحديث إلى {version}",
- "Deploy options" : "خيارات النشر",
- "Default Deploy daemon is not accessible" : "الوصول إلى البرنامج الخفي التلقائي لنشر التطبيقات Default Deploy Daemon غير ممكن.",
- "Delete data on remove" : "إحذف البيانات عند الإزالة",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "هذا التطبيق لم يُحدّد فيه أقدم إصدار متوافق معه من نكست كلاود. هذا قد يسبب خطأ في المستقبل.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "هذا التطبيق لم يُحدّد فيه أحدث إصدار متوافق معه من نكست كلاود. هذا قد يسبب خطأ في المستقبل.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "تعذّر تنصيب التطبيق بسبب عدم توافر التَبعِيّات dependencies التالية:",
- "Latest updated" : "آخر ما تمّ تحديثه",
- "Author" : "الكاتب",
- "Categories" : "التصنيفات",
- "Resources" : "الموارد",
- "Documentation" : "توثيق النظام",
- "Interact" : "تفاعل",
- "Report a bug" : "الإبلاغ عن خطإٍ",
- "Request feature" : "طلب خاصّيّةٍ",
- "Ask questions or discuss" : "إسأل أو ناقش",
- "Rate the app" : "قَيِّم التطبيق",
- "Rate" : "تقييم",
- "Changelog" : "سجل التغييرات",
- "Google Chrome for Android" : "مُتصفِّح \"كرُوم\" على الأندرويد من قوقل Chrome ",
- "{productName} iOS app" : "تطبيق iOS ـ {productName} ",
- "{productName} Android app" : "تطبيق أندرويد ـ {productName} ",
- "{productName} Talk for iOS" : "تطبيق المحادثة Talk على iOS ـ {productName} ",
- "{productName} Talk for Android" : "تطبيق المحادثة Talk على أندرويد ـ {productName} ",
- "Sync client" : "مُزامنة العميل",
- "This session" : "هذه الجلسة",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "اسم الجهاز",
- "Cancel renaming" : "إلغِ إعادة التسمية",
- "Save new name" : "حفظ الاسم الجديد",
- "Marked for remote wipe" : "مُعلَّمٌ ليتم مَحوُه عن بُعدٍ",
- "Device settings" : "إعدادات الجهاز",
- "Allow filesystem access" : "السماح بالنفاذ إلى نظام الملفات",
- "Rename" : "تعديل الاسم",
- "Revoke" : "سحب ",
- "Wipe device" : "مَحوُ الجهاز",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "إبطال رمز Token قد يتسبب في منع محو جهازك إذا لم تكن عملية المحو قد بدأت حتى الآن",
- "Device" : "الجهاز",
- "Last activity" : "آخر حركة",
- "Devices & sessions" : "الأجهزة والجلسات",
- "Web, desktop and mobile clients currently logged in to your account." : "تطبيق الويب وسطح المكتب والجوال المسجل دخولهم حالياً في حسابك.",
- "Error while creating device token" : "حدث خطأ اثناء إنشاء أَمَارَة token للجهاز",
- "App name" : "اسم التطبيق",
- "Create new app password" : "إنشاء كلمة مرور جديدة للتطبيق",
"App password copied!" : "تمّ نسخ كلمة مرور التطبيق!",
"Copy app password" : "إنسَخ كلمة مرور التطبيق",
"Login name copied!" : "اسم الدخول تمّ نسخه!",
@@ -559,6 +467,7 @@
"Unable to update profile default setting" : "تعذّر تحديث الإعدادات التلقائية لملف التعريف الشخصي profile",
"Profile" : "الملف الشخصي",
"Enable or disable profile by default for new accounts." : "تمكين أو تعطيل الملف الشخصي بشكل افتراضي للحسابات الجديدة.",
+ "Password confirmation is required" : "مِن الواجب تأكيد كلمة السر",
"Failed to save setting" : "فشل في حفظ الإعداد",
"{app}'s declarative setting field: {name}" : "حقل الإعدادات التصريحي للتطبيق {app} : {name}",
"Unable to update server side encryption config" : "تعذر تحديث تهيئة التشفير من جانب الخادم",
@@ -581,206 +490,11 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "من المهم دائماً إنشاء نسخ احتياطية بشكل معتاد لبياناتك. في حال كنت مُفعِّلا لخاصية التشفير تأكد دائما من حصولك على رمز التشفير بالإضافة الى البيانات.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "إرجِع إلى توثيق المُشرِف حول كيفية تشفير الملفات الموجودة يدويّاً أيضاً.",
"This is the final warning: Do you really want to enable encryption?" : "هذا هو التحذير الاخير: هل تريد حقا تفعيل خاصية التشفير؟",
- "Failed to remove group \"{group}\"" : "تعذّر حذف المجموعة \"{group}\"",
"Please confirm the group removal" : "رجاءً، قم بتأكيد حذف المجموعة",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "أنت على وشك إزالة المجموعة \"{group}\". لن يتم حذف الحسابات.",
+ "Cancel" : "إلغاء",
+ "Confirm" : "تأكيد",
"Submit" : "إرسال ",
"Rename group" : "تغيير تسمية مجموعة",
- "Remove group" : "حذف مجموعة",
- "Current password" : "كلمة المرور الحالية",
- "New password" : "كلمة المرور الجديدة",
- "Change password" : "تغيير كلمة المرور",
- "Choose your profile picture" : "إختر صورة ملفك الشخصي",
- "Please select a valid png or jpg file" : "رجاءً، إختر ملف PNG أو JPG صالح",
- "Error setting profile picture" : "حدث خطأُ أثناء تعيين صورة الملف الشخصي",
- "Error cropping profile picture" : "حدث خطأُ أثناء قصقصة cropping صورة الملف الشخصي",
- "Error saving profile picture" : "حدث خطأُ أثناء حفظ صورة الملف الشخصي",
- "Error removing profile picture" : "حدث خطأُ أثناء حذف صورة الملف الشخصي",
- "Your profile picture" : "صورة ملفك الشخصي",
- "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" : "الصورة المستخدمة من الحساب الاصلي",
- "Set as profile picture" : "تعيين كصورة للملف الشخصي",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "يرجى ملاحظة أن الأمر قد يستغرق ما يصل إلى 24 ساعة حتى يتم تحديث صورة ملفك الشخصي في كل مكان.",
- "Your biography. Markdown is supported." : "سيرتك الذاتية. تنسيق \"ماركداون\" مدعوم أيضاً.",
- "Unable to update date of birth" : "يتعذّر تحديث تاريخ الميلاد",
- "Enter your date of birth" : "أدخل تاريخ ميلادك",
- "You are using {s}{usage}{/s}" : "أنت تستعمل {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "أنت تستعمل {s}{usage}{/s} من {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "أنت عضو في المجموعات التالية:",
- "Your full name" : "اسمك الكامل",
- "Email options" : "خيارات الإيميل",
- "Options for additional email address {index}" : "خيارات عنوان البريد الإلكتروني الإضافي {index}",
- "Remove primary email" : "حذف حساب البريد الالكتروني الأساسي",
- "Delete email" : "حذف الإيميل",
- "This address is not confirmed" : "هذا العنوان غير مؤكد",
- "Unset as primary email" : "إلغاء التعيين كحساب بريد الكتروني أساسي",
- "Set as primary email" : "تعيين كحساب بريد الكتروني أساسي",
- "Additional email address {index}" : "إيميل إضافي {index}",
- "Unable to delete primary email address" : "تعذّر حذف حساب البريد الالكتروني الأساسي",
- "Unable to update primary email address" : "تعذّر تحديث حساب البريد الالكتروني الأساسي",
- "Unable to add additional email address" : "تعذّرت إضافة حساب بريد الكتروني إضافي",
- "Unable to update additional email address" : "تعذّر تحديث حساب البريد الالكتروني الإضافي",
- "Unable to delete additional email address" : "تعذّرت إضافة حساب بريد الكتروني إضافي",
- "Primary email for password reset and notifications" : "البريد الإلكتروني الأساسي لإعادة تعيين كلمة المرور والإشعارات",
- "No email address set" : "لم يتم تعيين أي إيميل",
- "Your handle" : "حسابك",
- "Derived from your locale ({weekDayName})" : "مشتق من إعدادات منطقتك ({weekDayName})",
- "Unable to update first day of week" : "تعذّر تحديث اليوم الأول في الأسبوع",
- "Day to use as the first day of week" : "اليوم الذي سيتم اعتباره أول يوم في الأسبوع",
- "Your headline" : "عنوان ملفك الشخصي",
- "Unable to update language" : "تعذّر تحديث اللغة",
- "Languages" : "اللغات",
- "Help translate" : "المساعدة في الترجمة",
- "No language set" : "لم يتم تعيين أيّ لغةٍ",
- "Unable to update locale" : "تعذر تحديث إعدادات المنطقة",
- "Locales" : "الدول والمناطق",
- "Week starts on {firstDayOfWeek}" : "يبدأ الأسبوع بيوم {firstDayOfWeek}",
- "No locale set" : "لم يتم تعيين أي إعدادات للمنطقة",
- "Your city" : "مدينتك",
- "Your organisation" : "مؤسستك",
- "Your phone number" : "رقم هاتفك",
- "Edit your Profile visibility" : "حدّد من يستطيع أن يرى ملفك الشخصي",
- "Unable to update profile enabled state" : "تعذّر تحديث حالة الملف الشخصي المُفعّلة profile enabled state",
- "Enable profile" : "تمكين الملف الشخصي",
- "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." : "الإعداد الأكثر تقييدًا للرؤية أو النطاق في ملف تعريفك الشخصي هو الذي سيتم تطبيقه. على سبيل المثال، إذا تم تعيين الرؤية على \"إظهار للجميع\" و تم تعيين النطاق على \"خاص\"، فسيتم تطبيق \"خاص\".",
- "Unable to update visibility of {displayId}" : "تعذر تحديث رؤية {displayId}",
- "she/her" : "هو/هي",
- "he/him" : "هو",
- "they/them" : "هم",
- "Your role" : "وظيفتك",
- "Your X (formerly Twitter) handle" : "حساب منصة X (تويتر سابقاً)",
- "Your website" : "صفحتك على الويب",
- "Invalid value" : "قيمة غير صحيحة",
- "Unable to update {property}" : "تعذّر تحديث {property}",
- "No {property} set" : "لم يتم تعيين أي {property} ",
- "Change scope level of {property}, current scope is {scope}" : "تمّ تغيير مستوى نطاق scope level ـ {property}. النطاق الحالي {scope}",
- "Unable to update federation scope of the primary {property}" : "تعذّر تحديث نطاق الاتحاد لـ {property} الأساسي/الأساسية",
- "Unable to update federation scope of additional {property}" : "تعذّر تحديث نطاق الاتحاد لـ {property} الإضافي/الإضافي",
- "Add additional email" : "إضافة بريد إلكتروني إضافي",
- "Add" : "إضافة",
- "Create" : "إنشاء",
- "Change" : "تعديل",
- "Delete" : "إلغاء",
- "Reshare" : "إعادة المشاركة",
- "Default language" : "اللغة الافتراضية",
- "Common languages" : "اللغات الشائعة",
- "Other languages" : "لُغات أخرى",
- "Password change is disabled because the master key is disabled" : "تم تعطيل تغيير كلمة المرور لأن المفتاح الرئيسي master key معطلٌ",
- "No accounts" : "لا توجد أي حسابات",
- "Loading accounts …" : "تحميل الحسابات ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "قائمة الحسابات. لم يتم تقديم هذه القائمة بالكامل لأسباب تتعلق بسرعة الأداء. سيتم عرض باقي الحسابات أثناء التنقل عبر القائمة.",
- "Manager" : "مدير",
- "Set line manager" : "تعيين الرئيس المباشر",
- "Account name will be autogenerated" : "سيتم توليد اسم الحساب تلقائيّاً",
- "Account name (required)" : "اسم الحساب (مطلوب)",
- "Failed to search groups" : "فشل البحث في المجموعات",
- "New account" : "حساب جديد",
- "Display name" : "اسم العرض",
- "Either password or email is required" : "يتطلب كلمة المرور أو البريد الإلكتروني",
- "Password (required)" : "كلمة المرور (مطلوب)",
- "Email (required)" : "البريد الالكتروني (مطلوب)",
- "Email" : "البريد الإلكتروني",
- "Member of the following groups (required)" : "عضو في المجموعات التالية ( مطلوب)",
- "Member of the following groups" : "عضو في المجموعات التالية",
- "Set account groups" : "تعيين مجموعات الحساب",
- "Admin of the following groups" : "مدير في المجموعات التالية",
- "Set account as admin for …" : "تعيين الحساب كمدير على ...",
- "Quota" : "الحصة التخزينية",
- "Set account quota" : "تعيين الحصة التخزينية للحساب",
- "Language" : "اللغة",
- "Set default language" : "تعيين اللغة الافتراضية",
- "Add new account" : "إضافة حساب جديد",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} حساب …","{userCount} حساب …","{userCount} حساب …","{userCount} حسابات …","{userCount} حساب …","{userCount} حساب …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} حساب ","{userCount} حساب ","{userCount} حساب ","{userCount} حسابات","{userCount} حساب ","{userCount} حساب "],
- "Total rows summary" : "ملخص مجموع الأسطر",
- "Scroll to load more rows" : "مرِّر على القائمة لتحميل المزيد من الصفوف",
- "Password or insufficient permissions message" : "رسالة حول كلمة المرور أو عدم كفاية الأذونات",
- "Avatar" : "صورة الملف الشخصي الرمزية",
- "Account name" : "اسم الحساب",
- "Group admin for" : "مدير المجموعة لـ",
- "Account backend" : "الواجهة الخلفية للحساب",
- "Storage location" : "مسار التخزين",
- "First login" : "أول دخول",
- "Last login" : "آخِر تسجيلٍ للدخول",
- "Account actions" : "إجراءات الحساب",
- "{size} used" : "تم استهلاك{size} ",
- "Delete account" : "حذف الحساب",
- "Disconnect all devices and delete local data" : "قطع اتصال جميع الأجهزة وحذف البيانات المحلية فيها",
- "Disable account" : "تعطيل الحساب",
- "Enable account" : "تمكين الحساب",
- "Resend welcome email" : "إعادة إرسال الإيميل الترحيبي",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "في حالة فقد الجهاز أو ترك العمل بالمؤسسة، يمكن مَحْو بيانات نكست كلاود عن بُعد من جميع الأجهزة المرتبطة بـ {userid}. يعمل فقط إذا كانت الأجهزة متصلة بالإنترنت.",
- "Remote wipe of devices" : "مَحْو الأجهزة عن بُعدٍ",
- "Wipe {userid}'s devices" : "قُم بمَحْو أجهزة {userid}",
- "Wiped {userid}'s devices" : "أجهزة {userid} تمّ محوُها",
- "Failed to load groups with details" : "فل تحميل المجموعات مع التفاصيل",
- "Failed to load sub admin groups with details" : "فشل تحميل مجموعات المشرف الفرعي مع التفاصيل",
- "Failed to update line manager" : "تعذّر تحديث الرئيس المباشر",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "حذفُ حساب {userid} بالكامل بما في ذلك جميع ملفاته الشخصية وبيانات التطبيقات و غيرها.",
- "Account deletion" : "حذف حساب",
- "Delete {userid}'s account" : "حذف حساب {userid}",
- "Display name was successfully changed" : "تم تغيير اسم العرض بنجاح",
- "Password can't be empty" : "كلمة المرور لايمكن أن تكون فارغةً",
- "Password was successfully changed" : "تم تغيير كلمة المرور بنجاح",
- "Email can't be empty" : "البريد الإلكتروني لايمكن أن يكون فارغاً",
- "Email was successfully changed" : "تم تغيير البريد الإلكتروني بنجاح",
- "Welcome mail sent!" : "تمّ إرسال إيميل ترحيبي!",
- "Loading account …" : "تحميل حسابات ...",
- "Change display name" : "تعديل اسم العرض",
- "Set new password" : "تعيين كلمة مرور جديدة",
- "You do not have permissions to see the details of this account" : "ليس لديك الإذن بالاطلاع على تفاصيل هذا الحساب",
- "Set new email address" : "تعيين عنوان بريد الكتروني جديد",
- "Add account to group" : "إضافة حساب إلى مجموعة",
- "Set account as admin for" : "تعيين حساب كمدير على ",
- "Select account quota" : "تعيين الحصة التخزينية للحساب",
- "Set the language" : "تعيين اللغة",
- "Toggle account actions menu" : "تبديل قائمة إجراءات الحساب",
- "Done" : "تمّ",
- "Edit" : "تعديل",
- "Account management settings" : "إعدادات إدارة الحساب",
- "Visibility" : "الرؤية",
- "Show language" : "لغة العرض",
- "Show account backend" : "إظهار خلفية الحساب",
- "Show storage path" : "عرض مسار التخزين",
- "Show first login" : "أظهِر أول دخول",
- "Show last login" : "عرض آخر تسجيل دخول",
- "Sorting" : "ترتيب",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "يفرض تكوين النظام فرز المجموعات حسب الاسم. يؤدي هذا أيضًا إلى تعطيل إظهار عدد الأعضاء.",
- "Group list sorting" : "ترتيب قائمة المجموعات",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "ينطبق الترتيب فقط على المجموعات التي تم تحميلها مؤخراً لاسباب تتعلق بالأداء. مزيد من المجموعات سيتم تحميلها كلما تحركت عبر القائمة أو بحثت فيها.",
- "By member count" : "بحسب عدد الأعضاء",
- "By name" : "بحسب الاسم",
- "Send email" : "إرسال بريد إلكتروني",
- "Send welcome email to new accounts" : "إرسال إيميل ترحيبي للحسابات الجديدة",
- "Defaults" : "الافتراضي",
- "Default quota" : "الحصة الافتراضية",
- "Select default quota" : "تعيين الحصة الافتراضية",
- "Server error while trying to complete WebAuthn device registration" : "حدث خطأ في الخادم أثناء محاولة إكمال تسجيل جهاز WebAuthn",
- "Passwordless authentication requires a secure connection." : "تتطلب المصادقة بدون كلمة مرور اتصالاً آمنًا.",
- "Add WebAuthn device" : "إضافة جهاز WebAuthn",
- "Please authorize your WebAuthn device." : "يُرجى منح الإذن لجهاز WebAuthn الخاص بك.",
- "Adding your device …" : "إضافة جهازك جاريةٌ ...",
- "Unnamed device" : "جهاز بدون اسم",
- "Passwordless Authentication" : "المصادقة بدون كلمة مرور",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "قم بإعداد حسابك للمصادقة بدون كلمة مرور وفق معيار FIDO2.",
- "No devices configured." : "لم تتمّ تهيئة أي أجهزة.",
- "The following devices are configured for your account:" : "تمّت تهيئة الأجهزة التالية لحسابك:",
- "Your browser does not support WebAuthn." : "مُتصفِّحُك لا يدعم WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "بصفتك مدير يمكنك ضبط سلوك وآلية عمليات المشاركة. يرجى الاطلاع على التوثيق لمزيد من المعلومات.",
- "You need to enable the File sharing App." : "يلزمك تمكين تطبيق مُشارَكة الملفات File sharing.",
- "App Store" : "متجر التطبيقات",
- "Loading app list" : "تحميل قائمة التطبيقات",
- "Loading categories" : "تحميل الفئات",
- "Developer documentation ↗" : "توثيق المطورين ↗",
- "Version {version}, {license}-licensed" : "النسخة {version}, {license}-مُرخَّصَة",
- "Version {version}" : "الإصدار {version}",
- "All accounts" : "جميع الحسابات",
- "Admins" : "المديرون",
- "Account group: {group}" : "مجموعة الحساب: {group}",
- "Account management" : "إدارة الحساب",
"Sending…" : "الإرسال جارٍ …",
"Email sent" : "تمّ إرسال الإيميل",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "لأسباب تتعلق بالأداء، عندما تقوم بتمكين التشفير على خادوم نكست كلاود، يتم تشفير الملفات الجديدة والمتغيرة فقط.",
@@ -790,6 +504,7 @@
"Date of birth" : "تاريخ الميلاد",
"Full name" : "الاسم الكامل",
"Additional email" : "إيميل إضافي",
+ "Email" : "البريد الإلكتروني",
"Fediverse (e.g. Mastodon)" : "الحساب على شبكات التواصل الاجتماعي Fediverse (مثل Mastodon)",
"Headline" : "العنوان",
"Organisation" : "المؤسسة",
@@ -799,6 +514,7 @@
"X (formerly Twitter)" : "منصة X (تويتر سابقاً)",
"Website" : "صفحة الويب",
"Profile visibility" : "رؤية الملف الشخصي",
+ "Language" : "اللغة",
"Locale" : "إعدادات المنطقة واللغة",
"First day of week" : "أول يوم في الأسبوع",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "غير مُتاحٍ لأن هذه الخاصية مطلوبة للوظائف الأساسية بما في ذلك مشاركة الملفات و دعوات التقويم",
@@ -816,6 +532,7 @@
"Show to logged in accounts only" : "عرض للمسجل دخولهم فقط",
"Hide" : "إخفاء",
"Manually installed apps cannot be updated" : "التطبيقات المثبتة يدويّاً لايمكن تحديثها",
+ "Update to {version}" : "التحديث إلى {version}",
"{progress}% Deploying …" : "{progress}% النشر جارٍ …",
"{progress}% Initializing …" : "{progress}% التهيئة جارية …",
"Health checking" : "فحص الصحة",
@@ -825,6 +542,7 @@
"Allow untested app" : "السماح للتطبيقات غير المجازة",
"The app will be downloaded from the App Store" : "سيتم تنزيل التطبيق من متجر التطبيقات ",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "لم يتم التعرّف على هذا التطبيق باعتباره متوافقاً مع إصدار نكست كلاود الخاص بك. إذا تابعت، فسيظل بإمكانك تنصيب التطبيق. ولكن يجب ملاحظة أن التطبيق قد لا يعمل بالشكل المتوقع.",
+ "{size} used" : "تم استهلاك{size} ",
"Unknown" : "غير معروف",
"Never" : "أبدا",
"Could not register device: Network error" : "تعذّر تسجيل الجهاز: خطأ في الشبكة",
@@ -843,8 +561,10 @@
"Could not set group sorting" : "تعذّر تعيين كيفية ترتيب المجموعات",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "الطلبات الموجودة أكثر من الحد المسموح به في الشبكة. أعد المحاولة أو اتصل بمدير النظام.",
"Error" : "خطأ",
+ "Default quota" : "الحصة الافتراضية",
"Account documentation" : "وثائق المستخدم",
"Administration documentation" : "وثائق الإدارة",
+ "Documentation" : "توثيق النظام",
"Forum" : "المنتدى",
"Nextcloud help & privacy resources" : "مصادر للمساعدة والخصوصية حول نكست كلاود",
"General documentation" : "وثائق عامة",
@@ -867,6 +587,7 @@
"SMTP Password" : "كلمة مرور الـ SMTP",
"Save" : "حفظ",
"Test and verify email settings" : "إختبر و تحقّق من إعدادات البريد الالكتروني",
+ "Send email" : "إرسال بريد إلكتروني",
"Security & setup warnings" : "تحذيرات الإعداد والأمان",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "من المهم لأمان الخادم و مستوى أدائه أن يتم تكوين كل شيء بشكل صحيح. لمساعدتك في ذلك، نقوم ببعض الفحوصات التلقائية. يُرجى الاطلاع على الوثائق ذات الصلة لمزيد من المعلومات.",
"All checks passed." : "تمّ اجتياز جميع الاختبارات بنجاح.",
@@ -886,51 +607,14 @@
"Use a second factor besides your password to increase security for your account." : "استخدم عاملاً ثانياً إلى جانب كلمة مرورك لزيادة أمان حسابك.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "إذا كنت تستخدم تطبيقات من طرفٍ ثالثٍ للاتصال بنكست كلاود، فالرجاء التأكد من إنشاء و تهيئة كلمة مرور التطبيق لكل منها قبل تمكين التحقق ثنائي العوامل من الهويّة 2FA.",
"Logged in account must be a subadmin" : "يجب أن يكون الحساب الذي تم تسجيل الدخول إليه مديراً فرعياً",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "للسماح بتشغيل هذا الفحص، عليك التأكد من أن خادم الويب عندك يمكنه الاتصال بنفسه. ولذلك، يجب أن يكون قادراً على حل المشكلة والاتصال بنطاق واحد على الأقل من \"النطاقات_الموثوقة\" أو 'overwrite.cli.url'.",
- "Missing optional index \"%s\" in table \"%s\"." : "دليل اختياري ناقص \"%s\" في الجدول \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "تفتقد قاعدة البيانات إلى بعض الفهارس. نظرًا لحقيقة أن إضافة الفهارس على الجداول الكبيرة قد تستغرق بعض الوقت لم تتم إضافتها تلقائيًا. من خلال تشغيل \"occ db: add-missing-indexices\" ، يمكن إضافة تلك الفهارس المفقودة يدويًا أثناء استمرار تشغيل الخادم. بمجرد إضافة الفهارس، تكون الاستعلامات إلى هذه الجداول عادةً أسرع بكثير.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "للسماح بتشغيل هذا الفحص، عليك التأكد من أن خادم الويب الخاص بك يمكنه الاتصال بنفسه. لذلك، يجب أن يكون قادراً على حل المشكلة والاتصال بواحد على الأقل من \"النطاقات_الموثوقة\" أو \"overwrite.cli.url\". قد يكون هذا الفشل نتيجة لعدم تطابق DNS من جانب الخادم أو قاعدة صادرة لجدار الحماية.",
"File locking" : "قفل الملف",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "تم تعطيل خاصية \"قفل الملف أثناء العمل عليه\" Transactional file locking؛ الأمر الذي قد يؤدي إلى حدوث مشكلة \"التسابق على الموارد\" race condition. قُم بتمكين \"filelocking.enabled\" في ملف config.php لتجنب حدوث ذلك.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "تعذر التحقُّق من دعم JavaScript عبر أيٍّ من \"النطاقات_الموثوقة\" أو \"overwrite.cli.url\". قد يكون هذا نتيجة عدم تطابق DNS من جانب الخادم أو بسبب إحدى سياسات إدارة الحركة الصادرة في جدار الحماية. يرجى التحقق يدويًا مما إذا كان خادم الويب عندك يقدم ملفات `.mjs` باستخدام نوع JavaScript MIME.",
"The PHP memory limit is below the recommended value of %s." : "حد ذاكرة PHP أقل من القيمة الموصى بها وهي %s.",
"for WebAuthn passwordless login" : "للدخول بدون كلمة مرور passwordless login في WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "للدخول بدون كلمة مرور passwordless login في WebAuthn، و وحدات تخزين SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "إصدار PHP الذي تقوم بتشغيله الآن هو %s. النسخة 8.0 من PHP لم تعد مدعومة منذ الإصدار 27 لنكست كلاود. الإصدار 28 من نكست كلاود يتطلب استعمال الإصدار 8.1 من PHP على الأقل. رجاءً، قم بترقية إصدارPHP إلى إحدى الإصدارات المدعومة من نكست كلاود في أسرع وقت.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "الإصدار المستعمل من MaridaDB هو \"%s\" . بدايةً من نكست كلاود 21 فما فوق تتطلب استعمال الإصدار MariaDN 10.2 أو أحدث.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "الإصدار المستعمل من MySQL هو \"%s\" . بدايةً من نكست كلاود 21 فما فوق تتطلب استعمال الإصدار MySAL 8.0 أو MariaDB 10.2 أو أحدث.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "الإصدار المستعمل من PostgreSQL هو \"%s\" . بدايةً من نكست كلاود 21 فما فوق تتطلب استعمال الإصدار PostgreSQL 9,6 أو أحدث.",
- "Speech-To-Text" : "تحويل الكلام إلى نص",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "يمكن تنفيذ تحويل الكلام إلى نص بواسطة تطبيقات مختلفة. هنا يمكنك تعيين التطبيق الذي يجب استخدامه.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "لا توفر أي من تطبيقاتك المثبتة حاليًا وظيفة تحويل الكلام إلى نص",
- "None of your currently installed apps provide Text processing functionality" : "لا يوفر أي من تطبيقاتك المثبتة حاليًا وظيفة معالجة النصوص",
- "Set default expiration date for shares" : "تعيين تاريخ إنتهاء الصلاحية للمشاركات",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "السماح بالإكمال التلقائي لاسم المستخدم في حوار المشاركة والسماح بالوصول إلى دفتر عناوين النظام",
- "Your biography" : "سيرتك الذاتية",
- "You are using <strong>{usage}</strong>" : "أنت تستعمل <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "أنت تستعمل <strong>{usage}</strong> من <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "تعيين مدير المستخدم",
- "Username will be autogenerated" : "يتم توليد وإنشاء اسم المستخدم تلقائيا",
- "Username (required)" : "اسم المستخدم (مطلوب)",
- "New user" : "مستخدم جديد",
- "Groups (required)" : "المجموعات (مطلوب)",
- "Set user groups" : "تعيين مجموعات المستخدم",
- "Administered groups" : "المجموعات المدارة",
- "Set user as admin for …" : "تعيين المستخدم كمدير على ...",
- "Set user quota" : "تعيين حصة المستخدم",
- "Add new user" : "إضافة مستخدم جديد",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} مستخدم …","{userCount} مستخدِم …","{userCount} مستخدِمان …","{userCount} مستخدِم …","{userCount} مستخدِم …","{userCount} users …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} مستخدِم","{userCount} مستخدِم","{userCount} مستخدِم","{userCount} مستخدِم","{userCount} مستخدِم","{userCount} مستخدِم"],
- "Loading users …" : "تحميل المستخدِمين جارٍ ...",
- "Username" : "اسم المستخدم",
- "User backend" : "الواجهة الخلفية للمستخدم",
- "User actions" : "إجراءات المستخدِم",
- "Add user to group" : "إضافة مستخدم إلى مجموعة",
- "Server error while trying to add WebAuthn device" : "حدث خطأ في الخادم أثناء محاولة إضافة جهاز WebAuthn",
- "Name your device" : "اسم جهازك",
- "Active accounts" : "حسابات نشطة",
- "Follow us on Twitter" : "تابعونا على تويتر",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "للسماح بتشغيل هذا الفحص، عليك التأكد من أن خادم الويب الخاص بك يمكنه الاتصال بنفسه. لذلك، يجب أن يكون قادراً على حل المشكلة والاتصال بواحد على الأقل من \"النطاقات_الموثوقة\" أو \"overwrite.cli.url\". قد يكون هذا الفشل نتيجة لعدم تطابق DNS من جانب الخادم أو قاعدة صادرة لجدار الحماية.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- ترويسة الـ HTTP ـ `%1$s` لا تحتوي على `%2$s`. يمكن أن يٌشكِّل هذا تهديداً محتملاً للأمن و الخصوصية بسبب عدم ضبط هذا الإعداد كما يجب.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "تمّ اكتشاف الإصدار \"%s\" من PostgreSQL. الإصدارات الموصى بها لأفضل أداء و للثبات و لاكتمال الوظائف مع هذا الإصدار من نكست كلاود هي من 12 إلى 16. ",
- "Failed to load subadmin groups with details" : "فشل تحميل المجموعات الفرعية مع التفاصيل"
+ "Set default expiration date for shares" : "تعيين تاريخ إنتهاء الصلاحية للمشاركات"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/ast.js b/apps/settings/l10n/ast.js
index d93ee721b9a..79a7f365be3 100644
--- a/apps/settings/l10n/ast.js
+++ b/apps/settings/l10n/ast.js
@@ -240,60 +240,6 @@ OC.L10N.register(
"Could not load app discover section" : "Nun se pudo cargar la seición de descubrimientu d'aplicaciones",
"Could not render element" : "Nun se pudo dibuxar l'elementu",
"Loading" : "Cargando",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Diapositiva siguiente",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Degorriu",
- "Type" : "Tipu",
- "Display Name" : "Nome visible",
- "Learn more" : "Deprendi más",
- "Confirm" : "Confirmar",
- "Cancel" : "Encaboxar",
- "Description" : "Descripción",
- "View in store" : "Ver na tienda",
- "Visit website" : "Visitar el sitiu web",
- "Admin documentation" : "Documentación p'alministradores",
- "Developer documentation" : "Documentación pa desendolcadores",
- "Details" : "Detalles",
- "All" : "Too",
- "No results" : "Nun hai nengún resultáu",
- "Update to {version}" : "Anovar a la versión {version}",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación nun se pue instalar porque nun se cumplen les dependencies siguientes:",
- "Author" : "Autoría",
- "Categories" : "Categories",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Interact" : "Interactuar",
- "Report a bug" : "Informar d'un fallju",
- "Request feature" : "Pidir una función",
- "Ask questions or discuss" : "Entrugar o discutir",
- "Rate" : "Valorar",
- "Changelog" : "Rexistru de cambeos",
- "Google Chrome for Android" : "Google Chrome p'Android",
- "{productName} iOS app" : "Aplicación de {productName} pa iOS",
- "{productName} Android app" : "Aplicación de {productName} p'Android",
- "{productName} Talk for iOS" : "{productName} Talk pa iOS",
- "{productName} Talk for Android" : "{productName} Talk p'Android",
- "Sync client" : "Sincronizar el veceru",
- "This session" : "Esta sesión",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nome del preséu",
- "Cancel renaming" : "Anular el cambéu de nome",
- "Save new name" : "Guardar el nome nuevu",
- "Device settings" : "Configuración del preséu",
- "Allow filesystem access" : "Permitir l'accesu al sistema de ficheros",
- "Rename" : "Renomar",
- "Revoke" : "Revocar",
- "Wipe device" : "Borrar el preséu",
- "Device" : "Preséu",
- "Last activity" : "Última actividá",
- "Devices & sessions" : "Preseos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Los veceros que tienen la sesión aniciada na cuenta.",
- "Error while creating device token" : "Hebo error mentanto se creaba'l pase del preséu",
- "App name" : "Nome de l'aplicación",
- "Create new app password" : "Crear una contraseña d'aplicación",
"App password copied!" : "¡Copióse la contraseña d'aplicación!",
"Copy app password" : "Copiar la contraseña d'aplicación",
"Login name copied!" : "¡Copióse'l nome p'aniciar la sesión!",
@@ -317,6 +263,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Nun ye posible anovar la opción predeterminada del sirvidor",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Des/activa'l perfil predetermináu pa les cuentes nueves.",
+ "Password confirmation is required" : "Ríquese la contraseña de confirmación",
"Failed to save setting" : "Nun se pue guardar la opción",
"Unable to update server side encryption config" : "Nun ye posible anovar la configuración del cifráu del sirvidor",
"Server-side encryption" : "Cifráu de llau del sirvidor",
@@ -324,139 +271,11 @@ OC.L10N.register(
"No encryption module loaded, please enable an encryption module in the app menu." : "Nun se cargó nengún módulu de cifráu, activa unu nel menú d'aplicaciones.",
"Enable encryption" : "Activar el cifráu",
"Please read carefully before activating server-side encryption:" : "Llei con procuru enantes d'activar el cifráu nel sirvidor:",
- "Failed to remove group \"{group}\"" : "Nun se pue quitar el grupu «{group}»",
"Please confirm the group removal" : "Confirma'l desaniciu del grupu",
+ "Cancel" : "Encaboxar",
+ "Confirm" : "Confirmar",
"Submit" : "Unviar",
"Rename group" : "Renomar el grupu",
- "Remove group" : "Quitar el grupu",
- "Current password" : "Contraseña actual",
- "New password" : "Contraseña nueva",
- "Change password" : "Camudar la contraseña",
- "Please select a valid png or jpg file" : "Seleiciona un ficheru PNG o JPEG válidu",
- "Error setting profile picture" : "Hebo un error al afitar la semeya del perfil",
- "Error cropping profile picture" : "Hebo un error al recortar la semeya del perfil",
- "Error saving profile picture" : "Hebo un error al guardar la semeya del perfil",
- "Error removing profile picture" : "Hebo un error al quitar la semeya del perfil",
- "Upload profile picture" : "Xubir una semeya del perfil",
- "Choose profile picture from Files" : "Escoyer una semeya de Ficheros",
- "Remove profile picture" : "Quitar la semeya del perfil",
- "The file must be a PNG or JPG" : "El ficheru a ser PNG o JPG",
- "Picture provided by original account" : "La cuenta orixinal fornió la imaxe",
- "Set as profile picture" : "Afitar como semeya del perfil",
- "You are a member of the following groups:" : "Yes miembru de los grupos siguientes:",
- "Your full name" : "Nome completu",
- "Remove primary email" : "Quitar la direición de corréu electrónicu",
- "Delete email" : "Desaniciar la direición de corréu electrónicu",
- "This address is not confirmed" : "Esta direición nun ta confirmada",
- "Set as primary email" : "Afitar como direición de corréu electrónicu primaria",
- "Unable to delete primary email address" : "Nun ye posible desaniciar la direición de corréu electrónicu primaria",
- "Unable to update primary email address" : "Nun ye posible desaniciar la direición de corréu electrónicu primaria",
- "Unable to add additional email address" : "Nun ye posible amestar la direición de corréu electrónicu adicional",
- "Unable to update additional email address" : "Nun ye posible amestar la direición de corréu electrónicu adicional",
- "Unable to delete additional email address" : "Nun ye posible desaniciar la direición de corréu electrónicu adicional",
- "No email address set" : "Nun s'afitó nenguna direición de corréu electrónicu",
- "Unable to update language" : "Nun ye posible anovar la llingua",
- "Languages" : "Llingües",
- "Help translate" : "Ayudar a traducir",
- "No language set" : "Nun s'afitó nenguna llingua",
- "Unable to update locale" : "Nun ye posible anovar la locale",
- "Locales" : "Locales",
- "No locale set" : "Nun s'afitó nenguna locale",
- "Your city" : "Ciudá",
- "Your organisation" : "Organización",
- "Your phone number" : "Númberu de teléfonu",
- "Edit your Profile visibility" : "Editar la visibilidá del perfil",
- "Unable to update profile enabled state" : "Nun ye posible anovar l'estáu d'activación del perfil",
- "Enable profile" : "Activar el perfil",
- "Unable to update visibility of {displayId}" : "Nun ye posible anovar la visibilidá de: {displayId}",
- "Your role" : "El to rol",
- "Your website" : "El to sitiu web",
- "Invalid value" : "El valor ye inválidu",
- "Unable to update {property}" : "Nun ye posible anovar «{property}»",
- "No {property} set" : "Nun s'afitó la propiedá «{property}»",
- "Unable to update federation scope of the primary {property}" : "Nun ye posible anovar l'ámbitu de federación de la propiedá «{property}»",
- "Unable to update federation scope of additional {property}" : "Nun ye posible anovar l'ámbitu de federación de la propiedá adicional «{property}»",
- "Add additional email" : "Direición de corréu electrónicu adicional",
- "Add" : "Amestar",
- "Create" : "Crear",
- "Change" : "Camudar",
- "Delete" : "Desaniciar",
- "Reshare" : "Volver compartir",
- "Default language" : "Llingua predeterminada",
- "Common languages" : "Llingües habituales",
- "Other languages" : "Otres llingües",
- "Password change is disabled because the master key is disabled" : "El cambéu de contraseña ta desactiváu porque la clave maestra ta desactivada",
- "No accounts" : "Nun hai nenguna cuenta",
- "Loading accounts …" : "Cargando les cuentes…",
- "Manager" : "Xestor",
- "Set line manager" : "Afitar el xestor de llinies",
- "New account" : "Cuenta nueva",
- "Display name" : "Nome visible",
- "Password (required)" : "Contraseña (obligatoria)",
- "Email (required)" : "Corréu electrónicu (obligatoriu)",
- "Email" : "Corréu electrónicu",
- "Quota" : "Cuota",
- "Language" : "Llingua",
- "Set default language" : "Predeterminar la llingua",
- "Total rows summary" : "Resume total de fieleres",
- "Scroll to load more rows" : "Desplaza pa cargar fileres",
- "Avatar" : "Avatar",
- "Storage location" : "Llocalización del almacenamientu",
- "Last login" : "Últimu aniciu de la sesión",
- "{size} used" : "{size} n'usu",
- "Delete account" : "Dersaniciar la cuenta",
- "Disconnect all devices and delete local data" : "Desconectar tolos preseos y desaniciar los datos llocales",
- "Disable account" : "Desactivar la cuenta",
- "Enable account" : "Activar la cuenta",
- "Resend welcome email" : "Volver unviar el mensaxe d'acoyida",
- "Remote wipe of devices" : "Borráu remotu de los preseos",
- "Failed to update line manager" : "Nun se pue anovar el xestor de llinies",
- "Account deletion" : "Desaniciu de la cuenta",
- "Delete {userid}'s account" : "Desaniciar la cuenta de: {userid}",
- "Display name was successfully changed" : "El nome visible camudó correutamente",
- "Password was successfully changed" : "La contraseña camudó correutamente",
- "Email was successfully changed" : "La direición de corréu electrónicu camudó correutamente",
- "Welcome mail sent!" : "¡Unvióse'l mensaxe d'acoyida!",
- "Loading account …" : "Cargando la cuenta…",
- "Change display name" : "Camudar el nome visible",
- "Set new password" : "Afitar una contraseña nueva",
- "You do not have permissions to see the details of this account" : "Nun tienes permisu pa ver los detalles d'esta cuenta",
- "Set new email address" : "Afitar una direición de corréu electrónicu nueva",
- "Add account to group" : "Amestar la cuenta al grupu",
- "Set the language" : "Afitar la llingua",
- "Done" : "Fecho",
- "Edit" : "Editar",
- "Account management settings" : "Configuración de la xestión de cuentes",
- "Visibility" : "Visibilidá",
- "Show language" : "Amosar la llingua",
- "Show last login" : "Amosar l'últimu aniciu de la sesión",
- "Sorting" : "Orde",
- "By member count" : "Pol númberu de miembros",
- "By name" : "Pol nome",
- "Send email" : "Unviar un corréu electrónicu",
- "Send welcome email to new accounts" : "Unviar el mensaxe d'acoyida a les cuentes nueves",
- "Defaults" : "Valores predeterminaos",
- "Default quota" : "Cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error del sirvidor mentanto se completaba'l rexistru del preséu WebAuthn.",
- "Passwordless authentication requires a secure connection." : "L'autenticación ensin contraseña rique una conexón segura.",
- "Add WebAuthn device" : "Amestar preséu WebAuthn",
- "Please authorize your WebAuthn device." : "Autoriza'l preséu WebAuthn.",
- "Adding your device …" : "Amestando'l preséu…",
- "Unnamed device" : "Preséu ensin nome",
- "Passwordless Authentication" : "Autenticación ensin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configura una cuenta pa l'autenticación ensin contraseña siguiendo l'estándar FIDO2.",
- "No devices configured." : "Nun se configuró nengún preséu.",
- "The following devices are configured for your account:" : "Configuráronse los preseos siguientes pa la cuenta:",
- "Your browser does not support WebAuthn." : "El restolador nun ye compatible con WebAuthn.",
- "You need to enable the File sharing App." : "Tienes d'activar l'aplicación de compartir ficheros.",
- "App Store" : "Tienda d'aplicaciones",
- "Loading app list" : "Cargando la llista d'aplicaciones",
- "Loading categories" : "Cargando les categoríes",
- "Developer documentation ↗" : "Documentación pa desendolcadores ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, con llicencia {license}",
- "Admins" : "Alministradores",
- "Account group: {group}" : "Grupu de cuentes: {group}",
- "Account management" : "Xestión de cuentes",
"Sending…" : "Unviando…",
"Email sent" : "Unvióse'l corréu electrónicu",
"Location" : "Llocalización",
@@ -464,6 +283,7 @@ OC.L10N.register(
"About" : "Tocante a",
"Full name" : "Nome completu",
"Additional email" : "Direición de corréu electrónicu adicional",
+ "Email" : "Corréu electrónicu",
"Fediverse (e.g. Mastodon)" : "Fediversu",
"Headline" : "Titular",
"Organisation" : "Organización",
@@ -472,6 +292,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Sitiu web",
"Profile visibility" : "Visibilidá del perfil",
+ "Language" : "Llingua",
"Locale" : "Locale",
"Discover" : "Descubrir",
"Your apps" : "Les to aplicaciones",
@@ -483,9 +304,11 @@ OC.L10N.register(
"Show to everyone" : "Amosar a tol mundu",
"Show to logged in accounts only" : "Amosar namás a les cuentes cola sesión aniciada",
"Hide" : "Esconder",
+ "Update to {version}" : "Anovar a la versión {version}",
"Download and enable" : "Baxar y activar",
"Disable" : "Desactivar",
"Allow untested app" : "Permitir l'aplicación ensin probar",
+ "{size} used" : "{size} n'usu",
"Unknown" : "Desconocí­u",
"Never" : "Enxamás",
"An error occurred during the request. Unable to proceed." : "Prodúxose un error demientres la solicitú. Nun ye posible siguir.",
@@ -500,8 +323,10 @@ OC.L10N.register(
"Could not set group sorting" : "Nun se pudo afitar l'orde de los grupos",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ficiéronse milenta solicitúes dende la to rede. Volvi tentalo dempués o ponte en contautu cola alministración si esti mensaxe ye un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
"Account documentation" : "Documentación de la cuenta",
"Administration documentation" : "Documentación de l'alministración",
+ "Documentation" : "Documentación",
"Forum" : "Foru",
"Nextcloud help & privacy resources" : "Ayuda de Nextcloud y recursos de privacidá",
"General documentation" : "Documentación xeneral",
@@ -520,6 +345,7 @@ OC.L10N.register(
"Authentication required" : "L'autenticación ye obligatoria",
"SMTP Password" : "Contraseña de SMTP",
"Save" : "Guardar",
+ "Send email" : "Unviar un corréu electrónicu",
"Security & setup warnings" : "Alvertencies de seguranza y de configuración",
"There are some errors regarding your setup." : "Hai dalgunos errores en rellación a la configuración.",
"There are some warnings regarding your setup." : "Hai dalgunes alvertencies en rellación a la configuración.",
@@ -530,36 +356,8 @@ OC.L10N.register(
"Check out our blog" : "Revisa'l nuesu blogue",
"Subscribe to our newsletter" : "Soscríbite al nuesu boletín",
"Logged in account must be a subadmin" : "La cuenta qu'anició la sesión ha ser un soalministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Pa permitir qu'esta comprobación s'execute, tienes d'asegurate de que'l sirvidor web se pueda conectase. Poro, ha ser a resolver y conectase a, polo menos, unu de los sos «trusted_domains» o al «overwrite.cli.url».",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta l'índiz opcional «%s» de la tabla «%s».",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos fálten-y dalgunos índices. Como amestar índices a tables grandes pue tardar tiempu, nun s'amestaron automáticamente. Pues executar «occ db:add-missing-columns» p'amestar los índices que falten manualmente cola instancia en funcionamientu. Dempués d'amestar los índices, les consultes que se faigan a eses tables van ser, polo xeneral, muncho más rápides.",
"File locking" : "Bloquéu de ficheros",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "El bloquéu de ficheros transaicional ta desactiváu y esto quiciabes produza problemes con condiciones de carrera. Activa «filelocking.enabled» nel ficheru config.php pa evitar estos problemes.",
- "The PHP memory limit is below the recommended value of %s." : "La llende de memoria de PHP ye inferior al valor aconseyáu de %s.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Úsase la versión «%s» de MariaDB. Nextcloud 21 y les versiones superiores nun son compatibles con esta versión y riquen MariaDB 10.2 ó superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Úsase la versión «%s» de MySQL. Nextcloud 21 y les versiones superiores nun son compatibles con esta versión y riquen MySQL 8.0 ó MariaDB 10.2 ó superiores.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Úsase la versión «%s» de PostgreSQL. Nextcloud 21 y les versiones superiores nun son compatibles con esta versión y riquen PostgreSQL 9.6 ó superior.",
- "Speech-To-Text" : "Voz a testu",
- "Your biography" : "Biografía",
- "You are using <strong>{usage}</strong>" : "Tas usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Tas usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Afitar el xestor d'usuarios",
- "Username will be autogenerated" : "El nome d'usuariu va xenerase automáticamente",
- "Username (required)" : "Nome d'usuariu (obligatoriu)",
- "New user" : "Usuariu nuevu",
- "Groups (required)" : "Grupos (obligatorios)",
- "Administered groups" : "Grupos alministraos",
- "Set user quota" : "Afitar la cuota d'usuariu",
- "Add new user" : "Amestar un usuariu nuevu",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuariu…","{userCount} usuarios…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuariu","{userCount} usuarios"],
- "Loading users …" : "Cargando los usuarios…",
- "Username" : "Nome d'usuariu",
- "User backend" : "Backend d'usuarios",
- "User actions" : "Aiciones del ususariu",
- "Add user to group" : "Amestar l'usuariu al grupu",
- "Server error while trying to add WebAuthn device" : "Error del sirvidor mentanto s'amestaba'l preséu WebAuthn",
- "Active accounts" : "Cuentes actives",
- "Follow us on Twitter" : "Síguinos en Twitter"
+ "The PHP memory limit is below the recommended value of %s." : "La llende de memoria de PHP ye inferior al valor aconseyáu de %s."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/ast.json b/apps/settings/l10n/ast.json
index e989236ce1a..31fe6bee675 100644
--- a/apps/settings/l10n/ast.json
+++ b/apps/settings/l10n/ast.json
@@ -238,60 +238,6 @@
"Could not load app discover section" : "Nun se pudo cargar la seición de descubrimientu d'aplicaciones",
"Could not render element" : "Nun se pudo dibuxar l'elementu",
"Loading" : "Cargando",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Diapositiva siguiente",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Degorriu",
- "Type" : "Tipu",
- "Display Name" : "Nome visible",
- "Learn more" : "Deprendi más",
- "Confirm" : "Confirmar",
- "Cancel" : "Encaboxar",
- "Description" : "Descripción",
- "View in store" : "Ver na tienda",
- "Visit website" : "Visitar el sitiu web",
- "Admin documentation" : "Documentación p'alministradores",
- "Developer documentation" : "Documentación pa desendolcadores",
- "Details" : "Detalles",
- "All" : "Too",
- "No results" : "Nun hai nengún resultáu",
- "Update to {version}" : "Anovar a la versión {version}",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación nun se pue instalar porque nun se cumplen les dependencies siguientes:",
- "Author" : "Autoría",
- "Categories" : "Categories",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Interact" : "Interactuar",
- "Report a bug" : "Informar d'un fallju",
- "Request feature" : "Pidir una función",
- "Ask questions or discuss" : "Entrugar o discutir",
- "Rate" : "Valorar",
- "Changelog" : "Rexistru de cambeos",
- "Google Chrome for Android" : "Google Chrome p'Android",
- "{productName} iOS app" : "Aplicación de {productName} pa iOS",
- "{productName} Android app" : "Aplicación de {productName} p'Android",
- "{productName} Talk for iOS" : "{productName} Talk pa iOS",
- "{productName} Talk for Android" : "{productName} Talk p'Android",
- "Sync client" : "Sincronizar el veceru",
- "This session" : "Esta sesión",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nome del preséu",
- "Cancel renaming" : "Anular el cambéu de nome",
- "Save new name" : "Guardar el nome nuevu",
- "Device settings" : "Configuración del preséu",
- "Allow filesystem access" : "Permitir l'accesu al sistema de ficheros",
- "Rename" : "Renomar",
- "Revoke" : "Revocar",
- "Wipe device" : "Borrar el preséu",
- "Device" : "Preséu",
- "Last activity" : "Última actividá",
- "Devices & sessions" : "Preseos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Los veceros que tienen la sesión aniciada na cuenta.",
- "Error while creating device token" : "Hebo error mentanto se creaba'l pase del preséu",
- "App name" : "Nome de l'aplicación",
- "Create new app password" : "Crear una contraseña d'aplicación",
"App password copied!" : "¡Copióse la contraseña d'aplicación!",
"Copy app password" : "Copiar la contraseña d'aplicación",
"Login name copied!" : "¡Copióse'l nome p'aniciar la sesión!",
@@ -315,6 +261,7 @@
"Unable to update profile default setting" : "Nun ye posible anovar la opción predeterminada del sirvidor",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Des/activa'l perfil predetermináu pa les cuentes nueves.",
+ "Password confirmation is required" : "Ríquese la contraseña de confirmación",
"Failed to save setting" : "Nun se pue guardar la opción",
"Unable to update server side encryption config" : "Nun ye posible anovar la configuración del cifráu del sirvidor",
"Server-side encryption" : "Cifráu de llau del sirvidor",
@@ -322,139 +269,11 @@
"No encryption module loaded, please enable an encryption module in the app menu." : "Nun se cargó nengún módulu de cifráu, activa unu nel menú d'aplicaciones.",
"Enable encryption" : "Activar el cifráu",
"Please read carefully before activating server-side encryption:" : "Llei con procuru enantes d'activar el cifráu nel sirvidor:",
- "Failed to remove group \"{group}\"" : "Nun se pue quitar el grupu «{group}»",
"Please confirm the group removal" : "Confirma'l desaniciu del grupu",
+ "Cancel" : "Encaboxar",
+ "Confirm" : "Confirmar",
"Submit" : "Unviar",
"Rename group" : "Renomar el grupu",
- "Remove group" : "Quitar el grupu",
- "Current password" : "Contraseña actual",
- "New password" : "Contraseña nueva",
- "Change password" : "Camudar la contraseña",
- "Please select a valid png or jpg file" : "Seleiciona un ficheru PNG o JPEG válidu",
- "Error setting profile picture" : "Hebo un error al afitar la semeya del perfil",
- "Error cropping profile picture" : "Hebo un error al recortar la semeya del perfil",
- "Error saving profile picture" : "Hebo un error al guardar la semeya del perfil",
- "Error removing profile picture" : "Hebo un error al quitar la semeya del perfil",
- "Upload profile picture" : "Xubir una semeya del perfil",
- "Choose profile picture from Files" : "Escoyer una semeya de Ficheros",
- "Remove profile picture" : "Quitar la semeya del perfil",
- "The file must be a PNG or JPG" : "El ficheru a ser PNG o JPG",
- "Picture provided by original account" : "La cuenta orixinal fornió la imaxe",
- "Set as profile picture" : "Afitar como semeya del perfil",
- "You are a member of the following groups:" : "Yes miembru de los grupos siguientes:",
- "Your full name" : "Nome completu",
- "Remove primary email" : "Quitar la direición de corréu electrónicu",
- "Delete email" : "Desaniciar la direición de corréu electrónicu",
- "This address is not confirmed" : "Esta direición nun ta confirmada",
- "Set as primary email" : "Afitar como direición de corréu electrónicu primaria",
- "Unable to delete primary email address" : "Nun ye posible desaniciar la direición de corréu electrónicu primaria",
- "Unable to update primary email address" : "Nun ye posible desaniciar la direición de corréu electrónicu primaria",
- "Unable to add additional email address" : "Nun ye posible amestar la direición de corréu electrónicu adicional",
- "Unable to update additional email address" : "Nun ye posible amestar la direición de corréu electrónicu adicional",
- "Unable to delete additional email address" : "Nun ye posible desaniciar la direición de corréu electrónicu adicional",
- "No email address set" : "Nun s'afitó nenguna direición de corréu electrónicu",
- "Unable to update language" : "Nun ye posible anovar la llingua",
- "Languages" : "Llingües",
- "Help translate" : "Ayudar a traducir",
- "No language set" : "Nun s'afitó nenguna llingua",
- "Unable to update locale" : "Nun ye posible anovar la locale",
- "Locales" : "Locales",
- "No locale set" : "Nun s'afitó nenguna locale",
- "Your city" : "Ciudá",
- "Your organisation" : "Organización",
- "Your phone number" : "Númberu de teléfonu",
- "Edit your Profile visibility" : "Editar la visibilidá del perfil",
- "Unable to update profile enabled state" : "Nun ye posible anovar l'estáu d'activación del perfil",
- "Enable profile" : "Activar el perfil",
- "Unable to update visibility of {displayId}" : "Nun ye posible anovar la visibilidá de: {displayId}",
- "Your role" : "El to rol",
- "Your website" : "El to sitiu web",
- "Invalid value" : "El valor ye inválidu",
- "Unable to update {property}" : "Nun ye posible anovar «{property}»",
- "No {property} set" : "Nun s'afitó la propiedá «{property}»",
- "Unable to update federation scope of the primary {property}" : "Nun ye posible anovar l'ámbitu de federación de la propiedá «{property}»",
- "Unable to update federation scope of additional {property}" : "Nun ye posible anovar l'ámbitu de federación de la propiedá adicional «{property}»",
- "Add additional email" : "Direición de corréu electrónicu adicional",
- "Add" : "Amestar",
- "Create" : "Crear",
- "Change" : "Camudar",
- "Delete" : "Desaniciar",
- "Reshare" : "Volver compartir",
- "Default language" : "Llingua predeterminada",
- "Common languages" : "Llingües habituales",
- "Other languages" : "Otres llingües",
- "Password change is disabled because the master key is disabled" : "El cambéu de contraseña ta desactiváu porque la clave maestra ta desactivada",
- "No accounts" : "Nun hai nenguna cuenta",
- "Loading accounts …" : "Cargando les cuentes…",
- "Manager" : "Xestor",
- "Set line manager" : "Afitar el xestor de llinies",
- "New account" : "Cuenta nueva",
- "Display name" : "Nome visible",
- "Password (required)" : "Contraseña (obligatoria)",
- "Email (required)" : "Corréu electrónicu (obligatoriu)",
- "Email" : "Corréu electrónicu",
- "Quota" : "Cuota",
- "Language" : "Llingua",
- "Set default language" : "Predeterminar la llingua",
- "Total rows summary" : "Resume total de fieleres",
- "Scroll to load more rows" : "Desplaza pa cargar fileres",
- "Avatar" : "Avatar",
- "Storage location" : "Llocalización del almacenamientu",
- "Last login" : "Últimu aniciu de la sesión",
- "{size} used" : "{size} n'usu",
- "Delete account" : "Dersaniciar la cuenta",
- "Disconnect all devices and delete local data" : "Desconectar tolos preseos y desaniciar los datos llocales",
- "Disable account" : "Desactivar la cuenta",
- "Enable account" : "Activar la cuenta",
- "Resend welcome email" : "Volver unviar el mensaxe d'acoyida",
- "Remote wipe of devices" : "Borráu remotu de los preseos",
- "Failed to update line manager" : "Nun se pue anovar el xestor de llinies",
- "Account deletion" : "Desaniciu de la cuenta",
- "Delete {userid}'s account" : "Desaniciar la cuenta de: {userid}",
- "Display name was successfully changed" : "El nome visible camudó correutamente",
- "Password was successfully changed" : "La contraseña camudó correutamente",
- "Email was successfully changed" : "La direición de corréu electrónicu camudó correutamente",
- "Welcome mail sent!" : "¡Unvióse'l mensaxe d'acoyida!",
- "Loading account …" : "Cargando la cuenta…",
- "Change display name" : "Camudar el nome visible",
- "Set new password" : "Afitar una contraseña nueva",
- "You do not have permissions to see the details of this account" : "Nun tienes permisu pa ver los detalles d'esta cuenta",
- "Set new email address" : "Afitar una direición de corréu electrónicu nueva",
- "Add account to group" : "Amestar la cuenta al grupu",
- "Set the language" : "Afitar la llingua",
- "Done" : "Fecho",
- "Edit" : "Editar",
- "Account management settings" : "Configuración de la xestión de cuentes",
- "Visibility" : "Visibilidá",
- "Show language" : "Amosar la llingua",
- "Show last login" : "Amosar l'últimu aniciu de la sesión",
- "Sorting" : "Orde",
- "By member count" : "Pol númberu de miembros",
- "By name" : "Pol nome",
- "Send email" : "Unviar un corréu electrónicu",
- "Send welcome email to new accounts" : "Unviar el mensaxe d'acoyida a les cuentes nueves",
- "Defaults" : "Valores predeterminaos",
- "Default quota" : "Cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error del sirvidor mentanto se completaba'l rexistru del preséu WebAuthn.",
- "Passwordless authentication requires a secure connection." : "L'autenticación ensin contraseña rique una conexón segura.",
- "Add WebAuthn device" : "Amestar preséu WebAuthn",
- "Please authorize your WebAuthn device." : "Autoriza'l preséu WebAuthn.",
- "Adding your device …" : "Amestando'l preséu…",
- "Unnamed device" : "Preséu ensin nome",
- "Passwordless Authentication" : "Autenticación ensin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configura una cuenta pa l'autenticación ensin contraseña siguiendo l'estándar FIDO2.",
- "No devices configured." : "Nun se configuró nengún preséu.",
- "The following devices are configured for your account:" : "Configuráronse los preseos siguientes pa la cuenta:",
- "Your browser does not support WebAuthn." : "El restolador nun ye compatible con WebAuthn.",
- "You need to enable the File sharing App." : "Tienes d'activar l'aplicación de compartir ficheros.",
- "App Store" : "Tienda d'aplicaciones",
- "Loading app list" : "Cargando la llista d'aplicaciones",
- "Loading categories" : "Cargando les categoríes",
- "Developer documentation ↗" : "Documentación pa desendolcadores ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, con llicencia {license}",
- "Admins" : "Alministradores",
- "Account group: {group}" : "Grupu de cuentes: {group}",
- "Account management" : "Xestión de cuentes",
"Sending…" : "Unviando…",
"Email sent" : "Unvióse'l corréu electrónicu",
"Location" : "Llocalización",
@@ -462,6 +281,7 @@
"About" : "Tocante a",
"Full name" : "Nome completu",
"Additional email" : "Direición de corréu electrónicu adicional",
+ "Email" : "Corréu electrónicu",
"Fediverse (e.g. Mastodon)" : "Fediversu",
"Headline" : "Titular",
"Organisation" : "Organización",
@@ -470,6 +290,7 @@
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Sitiu web",
"Profile visibility" : "Visibilidá del perfil",
+ "Language" : "Llingua",
"Locale" : "Locale",
"Discover" : "Descubrir",
"Your apps" : "Les to aplicaciones",
@@ -481,9 +302,11 @@
"Show to everyone" : "Amosar a tol mundu",
"Show to logged in accounts only" : "Amosar namás a les cuentes cola sesión aniciada",
"Hide" : "Esconder",
+ "Update to {version}" : "Anovar a la versión {version}",
"Download and enable" : "Baxar y activar",
"Disable" : "Desactivar",
"Allow untested app" : "Permitir l'aplicación ensin probar",
+ "{size} used" : "{size} n'usu",
"Unknown" : "Desconocí­u",
"Never" : "Enxamás",
"An error occurred during the request. Unable to proceed." : "Prodúxose un error demientres la solicitú. Nun ye posible siguir.",
@@ -498,8 +321,10 @@
"Could not set group sorting" : "Nun se pudo afitar l'orde de los grupos",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ficiéronse milenta solicitúes dende la to rede. Volvi tentalo dempués o ponte en contautu cola alministración si esti mensaxe ye un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
"Account documentation" : "Documentación de la cuenta",
"Administration documentation" : "Documentación de l'alministración",
+ "Documentation" : "Documentación",
"Forum" : "Foru",
"Nextcloud help & privacy resources" : "Ayuda de Nextcloud y recursos de privacidá",
"General documentation" : "Documentación xeneral",
@@ -518,6 +343,7 @@
"Authentication required" : "L'autenticación ye obligatoria",
"SMTP Password" : "Contraseña de SMTP",
"Save" : "Guardar",
+ "Send email" : "Unviar un corréu electrónicu",
"Security & setup warnings" : "Alvertencies de seguranza y de configuración",
"There are some errors regarding your setup." : "Hai dalgunos errores en rellación a la configuración.",
"There are some warnings regarding your setup." : "Hai dalgunes alvertencies en rellación a la configuración.",
@@ -528,36 +354,8 @@
"Check out our blog" : "Revisa'l nuesu blogue",
"Subscribe to our newsletter" : "Soscríbite al nuesu boletín",
"Logged in account must be a subadmin" : "La cuenta qu'anició la sesión ha ser un soalministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Pa permitir qu'esta comprobación s'execute, tienes d'asegurate de que'l sirvidor web se pueda conectase. Poro, ha ser a resolver y conectase a, polo menos, unu de los sos «trusted_domains» o al «overwrite.cli.url».",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta l'índiz opcional «%s» de la tabla «%s».",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos fálten-y dalgunos índices. Como amestar índices a tables grandes pue tardar tiempu, nun s'amestaron automáticamente. Pues executar «occ db:add-missing-columns» p'amestar los índices que falten manualmente cola instancia en funcionamientu. Dempués d'amestar los índices, les consultes que se faigan a eses tables van ser, polo xeneral, muncho más rápides.",
"File locking" : "Bloquéu de ficheros",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "El bloquéu de ficheros transaicional ta desactiváu y esto quiciabes produza problemes con condiciones de carrera. Activa «filelocking.enabled» nel ficheru config.php pa evitar estos problemes.",
- "The PHP memory limit is below the recommended value of %s." : "La llende de memoria de PHP ye inferior al valor aconseyáu de %s.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Úsase la versión «%s» de MariaDB. Nextcloud 21 y les versiones superiores nun son compatibles con esta versión y riquen MariaDB 10.2 ó superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Úsase la versión «%s» de MySQL. Nextcloud 21 y les versiones superiores nun son compatibles con esta versión y riquen MySQL 8.0 ó MariaDB 10.2 ó superiores.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Úsase la versión «%s» de PostgreSQL. Nextcloud 21 y les versiones superiores nun son compatibles con esta versión y riquen PostgreSQL 9.6 ó superior.",
- "Speech-To-Text" : "Voz a testu",
- "Your biography" : "Biografía",
- "You are using <strong>{usage}</strong>" : "Tas usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Tas usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Afitar el xestor d'usuarios",
- "Username will be autogenerated" : "El nome d'usuariu va xenerase automáticamente",
- "Username (required)" : "Nome d'usuariu (obligatoriu)",
- "New user" : "Usuariu nuevu",
- "Groups (required)" : "Grupos (obligatorios)",
- "Administered groups" : "Grupos alministraos",
- "Set user quota" : "Afitar la cuota d'usuariu",
- "Add new user" : "Amestar un usuariu nuevu",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuariu…","{userCount} usuarios…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuariu","{userCount} usuarios"],
- "Loading users …" : "Cargando los usuarios…",
- "Username" : "Nome d'usuariu",
- "User backend" : "Backend d'usuarios",
- "User actions" : "Aiciones del ususariu",
- "Add user to group" : "Amestar l'usuariu al grupu",
- "Server error while trying to add WebAuthn device" : "Error del sirvidor mentanto s'amestaba'l preséu WebAuthn",
- "Active accounts" : "Cuentes actives",
- "Follow us on Twitter" : "Síguinos en Twitter"
+ "The PHP memory limit is below the recommended value of %s." : "La llende de memoria de PHP ye inferior al valor aconseyáu de %s."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/az.js b/apps/settings/l10n/az.js
deleted file mode 100644
index e25c0b8549d..00000000000
--- a/apps/settings/l10n/az.js
+++ /dev/null
@@ -1,188 +0,0 @@
-OC.L10N.register(
- "settings",
- {
- "Private" : "Gizli",
- "Local" : "Yerli",
- "Federated" : "Federated",
- "Published" : "Nəşr edilmiş",
- "Verify" : "Təsdiq et",
- "Verifying …" : "Təsdiqlənir ...",
- "Unable to change password" : "Şifrəni dəyişmək olmur",
- "Very weak password" : "Çox asan şifrə",
- "Weak password" : "Asan şifrə",
- "So-so password" : "Elə-belə şifrə",
- "Good password" : "Yaxşı şifrə",
- "Strong password" : "Çətin şifrə",
- "Groups" : "Qruplar",
- "Group list is empty" : "Qrup listi boşdur",
- "Your password was reset" : "Sizin parol yeniləndi",
- "You changed your email address" : "Siz email ünvanınızı dəyişdir",
- "Settings" : "Quraşdırmalar",
- "Could not remove app." : "Tətbiqi silmək olmur.",
- "Could not update app." : "Tətbiqi yeniləmək alınmır",
- "Wrong password" : "Yalnış şifrə",
- "Unable to change personal password" : "Şəxsi parolu dəyişmək alınmadı",
- "Saved" : "Saxlanıldı",
- "Unable to change password. Password too long." : "Parolu dəyişmək alınmadı. Parol çox uzundur.",
- "Authentication error" : "Təyinat metodikası",
- "Wrong admin recovery password. Please check the password and try again." : "İnzibatçı geriyə qayıdış şifrəsi yalnışdır. Xahiş olunur şifrəni yoxlayıb yenidən təkrar edəsiniz.",
- "User documentation" : "İstifadəçi dokumentasiyası",
- "Invalid SMTP password." : "SMTP parol səhvdir",
- "Email setting test" : "Email parametrləriinin testi",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Məktubun yollanmasında səhv baş verdi. Xahiş olunur öz quraşdırmalarınıza yenidən göz yetirəsiniz.(Error: %s)",
- "Invalid mail address" : "Yalnış mail ünvanı",
- "Settings saved" : "Parametrlər yaddaşa verildi",
- "Unable to change full name" : "Tam adı dəyişmək olmur",
- "Your %s account was created" : "Sizin %s hesab yaradıldı",
- "Welcome aboard" : "Xoş gəlmisiniz!",
- "Welcome aboard %s" : "%s-a xoş gəlmisiniz",
- "Set your password" : "Parolunuzu təyin edin",
- "Install Client" : "Müştərini Quraşdır",
- "Apps" : "Tətbiqlər",
- "Personal" : "Şəxsi",
- "Administration" : "İdarəetmə",
- "Users" : "İstifadəçilər",
- "Additional settings" : "Əlavə parametrlər",
- "Overview" : "İcmal",
- "Basic settings" : "İlkin parametrlər",
- "Sharing" : "Paylaşılır",
- "Availability" : "Əlçatanlıq",
- "Calendar" : "Təqvim",
- "Personal info" : "Şəxsi məlumat",
- "Mobile & desktop" : "Mobil & Desktop",
- "Email server" : "Email server",
- "Background jobs" : "Background işlər",
- "Unlimited" : "Limitsiz",
- "Verifying" : "Təsdiqlənir",
- "Disabled" : "Dayandırılıb",
- "The old server-side-encryption format is enabled. We recommend disabling this." : "Server tərəfdən köhnə şifrələnmə formatı aktivdir. Onu söndürməyi tövsiyyə edirik.",
- "Supported" : "Dəstəklənir",
- "Profile information" : "Profil məlumatı",
- "Nextcloud settings" : "Nextcloud parametrləri",
- "None" : "Heç bir",
- "Unable to modify setting" : "Xassələri yeniləmək olmadı",
- "Allow apps to use the Share API" : "Proqramlara izin verin ki, Paylaşım API-sindən istifadə edə bilsinlər.",
- "Allow resharing" : "Yenidən paylaşıma izin",
- "Restrict users to only share with users in their groups" : "İstifadəçiləri yalnız yerləşdikləri qrup üzvləri ilə paylaşım edə bilmələrini məhdudla",
- "Allow public uploads" : "Ümumi yüklənmələrə izin vermək",
- "Enforce password protection" : "Şifrə müdafiəsini həyata keçirmək",
- "Enforce expiration date" : "Bitmə tarixini həyata keçir",
- "Two-Factor Authentication" : "İki faktorlu autentifikasiya",
- "Limit to groups" : "Qruplara limitlə",
- "Save changes" : "Dəyişiklikləri yaddaşa ver",
- "Remove" : "Sil",
- "Featured" : "Seçilmiş",
- "Name" : "Ad",
- "Version" : "Versiya",
- "Actions" : "İşlər",
- "No apps found for your version" : "Sizin versiya üçün proqram tapılmadı",
- "Description" : "Açıqlanma",
- "Details" : "Detallar",
- "All" : "Hamısı",
- "Limit app usage to groups" : "Tətbiqin istifadəsini qruplar üçün limitlə",
- "No results" : "Nəticə yoxdur",
- "Update to {version}" : "{version} dək yenilə",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Bu proqram yüklənə bilməz ona görə ki, göstərilən asılılıqlar yerinə yetirilməyib:",
- "Categories" : "Kateqoriyalar",
- "Resources" : "Resurslar",
- "Documentation" : "Sənədlər",
- "Report a bug" : "Səhv haqqında bildir",
- "View in store" : "Dükanda bax",
- "Visit website" : "Sayta keç",
- "Admin documentation" : "İdarəci dokumentasiyası",
- "Developer documentation" : "Yaradıcı sənədləşməsi",
- "Changelog" : "Dəyişikliklər jurnalı",
- "Device settings" : "Cihazın parametrləri",
- "Rename" : "Adı dəyiş",
- "Wipe device" : "Cihazı silin",
- "Google Chrome for Android" : "Android üçün Google Chrome",
- "{productName} iOS app" : "{productName} iOS tətbiq",
- "{productName} Android app" : "{productName} Android tətbiq",
- "{productName} Talk for iOS" : "{productName} iOS üçün danış",
- "{productName} Talk for Android" : "{productName} Android üçün danış",
- "This session" : "Bu sessiya",
- "Device" : "Cihaz",
- "Last activity" : "Son aktivlik",
- "Devices & sessions" : "Cihaz & sessiyalar",
- "App name" : "Tətbiqin adı",
- "Create new app password" : "Yeni tətbiq parolu yaradın",
- "Login" : "Giriş",
- "Password" : "Şifrə",
- "Show QR code for mobile apps" : "Mobil tətbiqlər üçün QR kodu göstərin",
- "Last job ran {relativeTime}." : "Son işin icra vaxtı {relativeTime}.",
- "AJAX" : "AJAX",
- "Webcron" : "Webcron",
- "Cron (Recommended)" : "Cron (Tövsiyyə edilən)",
- "Profile" : "Profil",
- "Enable" : "İşə sal",
- "Cancel" : "Dayandır",
- "Confirm" : "Təsdiq edin",
- "Rename group" : "Qrupun adını dəyiş",
- "Remove group" : "Qrupu sil",
- "Current password" : "Hazırkı şifrə",
- "New password" : "Yeni şifrə",
- "Change password" : "Şifrəni dəyiş",
- "Your profile picture" : "Sizin profil şəkliniz",
- "Upload profile picture" : "Profil şəklini yüklə",
- "Choose profile picture from Files" : "Profil şəklini Faylalrdan seçin",
- "Remove profile picture" : "Profil şəklini silin",
- "The file must be a PNG or JPG" : "Fayl PNG və ya JPG olmalıdır",
- "Set as profile picture" : "Profil şəkli kimi təyin et",
- "Please select a valid png or jpg file" : "Zəhmət olmasa düzgün png və ya jpg fayl seçin",
- "Error setting profile picture" : "Profil şəklini təyiin edən vaxtı səhv baş verdi",
- "Error saving profile picture" : "Profil şəklini saxlayan vaxtı səhv baş verdi",
- "Error removing profile picture" : "Profil şəklini silən vaxtı səhv baş verdi",
- "No email address set" : "Email ünvanı dəsti yoxdur",
- "Help translate" : "Tərcüməyə kömək",
- "Add" : "Əlavə etmək",
- "Create" : "Yarat",
- "Change" : "Dəyiş",
- "Delete" : "Sil",
- "Email" : "Email",
- "Quota" : "Norma",
- "Language" : "Dil",
- "Resend welcome email" : "Salamlama e-poçtunu yenidən göndərin",
- "Welcome mail sent!" : "Salamlama məktubu göndərildi!",
- "Done" : "Edildi",
- "Edit" : "Dəyişiklik et",
- "Send email" : "Email yolla",
- "Admins" : "İnzibatçılar",
- "Email sent" : "Məktub göndərildi",
- "Location" : "Yerləşdiyiniz ünvan",
- "Profile picture" : "Profil şəkli",
- "About" : "Haqqında",
- "Full name" : "Tam ad",
- "Updates" : "Yenilənmələr",
- "Hide" : "Gizlə",
- "Disable" : "Dayandır",
- "Never" : "Heç vaxt",
- "Confirm wipe" : "Silməni təsdiq edin",
- "Error while updating device token name" : "Cihazın tokeninin adını yeniləyən vaxtı səhv baş verdi",
- "Error" : "Səhv",
- "Forum" : "Forum",
- "SSL" : "SSL",
- "Open documentation" : "Sənədləri aç",
- "Send mode" : "Göndərmə rejimi",
- "Encryption" : "Şifrələnmə",
- "From address" : "Ünvandan",
- "Server address" : "Server ünvanı",
- "Port" : "Port",
- "Authentication" : "Autentifikasiya",
- "Authentication required" : "Qeydiyyat tələb edilir",
- "Credentials" : "Səlahiyyətlər",
- "SMTP Password" : "SMTP Şifrəsi",
- "Save" : "Saxla",
- "Security & setup warnings" : "Təhlükəsizlik & işə salma xəbərdarlıqları",
- "Check out our blog" : "Bizim bloqa baxın",
- "Subscribe to our newsletter" : "Yeniliklərə abunə olun",
- "No user supplied" : "Heç bir istifadəçiyə mənimsədilmir",
- "Invalid user" : "İstifadəçi adı yalnışdır",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB \"%s\" versiyası istifadə edilir. Nextcloud 21 və yuxarı versiyaları bunu dəstəkləmir və ən azı MariaDB 10.2 və ya yuxarı versiya tələb edir.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL \"%s\" versiyası istifadə edilir. Nextcloud 21 və yuxarı versiyaları bunu dəstəkləmir və ən azı MySQL 8.0 və ya MariaDB 10.2 və ya yuxarı versiya tələb edir.",
- "Exclude groups from sharing" : "Qrupları paylaşımdan ayır",
- "These groups will still be able to receive shares, but not to initiate them." : "Bu qruplar paylaşımları hələdə ala biləcəklər ancaq, yarada bilməyəcəklər",
- "Username" : "İstifadəçi adı",
- "Show user backend" : "Daxili istifadəçini göstər",
- "SMTP Username" : "SMTP İstifadəçi adı"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/az.json b/apps/settings/l10n/az.json
deleted file mode 100644
index e11ce882f5e..00000000000
--- a/apps/settings/l10n/az.json
+++ /dev/null
@@ -1,186 +0,0 @@
-{ "translations": {
- "Private" : "Gizli",
- "Local" : "Yerli",
- "Federated" : "Federated",
- "Published" : "Nəşr edilmiş",
- "Verify" : "Təsdiq et",
- "Verifying …" : "Təsdiqlənir ...",
- "Unable to change password" : "Şifrəni dəyişmək olmur",
- "Very weak password" : "Çox asan şifrə",
- "Weak password" : "Asan şifrə",
- "So-so password" : "Elə-belə şifrə",
- "Good password" : "Yaxşı şifrə",
- "Strong password" : "Çətin şifrə",
- "Groups" : "Qruplar",
- "Group list is empty" : "Qrup listi boşdur",
- "Your password was reset" : "Sizin parol yeniləndi",
- "You changed your email address" : "Siz email ünvanınızı dəyişdir",
- "Settings" : "Quraşdırmalar",
- "Could not remove app." : "Tətbiqi silmək olmur.",
- "Could not update app." : "Tətbiqi yeniləmək alınmır",
- "Wrong password" : "Yalnış şifrə",
- "Unable to change personal password" : "Şəxsi parolu dəyişmək alınmadı",
- "Saved" : "Saxlanıldı",
- "Unable to change password. Password too long." : "Parolu dəyişmək alınmadı. Parol çox uzundur.",
- "Authentication error" : "Təyinat metodikası",
- "Wrong admin recovery password. Please check the password and try again." : "İnzibatçı geriyə qayıdış şifrəsi yalnışdır. Xahiş olunur şifrəni yoxlayıb yenidən təkrar edəsiniz.",
- "User documentation" : "İstifadəçi dokumentasiyası",
- "Invalid SMTP password." : "SMTP parol səhvdir",
- "Email setting test" : "Email parametrləriinin testi",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Məktubun yollanmasında səhv baş verdi. Xahiş olunur öz quraşdırmalarınıza yenidən göz yetirəsiniz.(Error: %s)",
- "Invalid mail address" : "Yalnış mail ünvanı",
- "Settings saved" : "Parametrlər yaddaşa verildi",
- "Unable to change full name" : "Tam adı dəyişmək olmur",
- "Your %s account was created" : "Sizin %s hesab yaradıldı",
- "Welcome aboard" : "Xoş gəlmisiniz!",
- "Welcome aboard %s" : "%s-a xoş gəlmisiniz",
- "Set your password" : "Parolunuzu təyin edin",
- "Install Client" : "Müştərini Quraşdır",
- "Apps" : "Tətbiqlər",
- "Personal" : "Şəxsi",
- "Administration" : "İdarəetmə",
- "Users" : "İstifadəçilər",
- "Additional settings" : "Əlavə parametrlər",
- "Overview" : "İcmal",
- "Basic settings" : "İlkin parametrlər",
- "Sharing" : "Paylaşılır",
- "Availability" : "Əlçatanlıq",
- "Calendar" : "Təqvim",
- "Personal info" : "Şəxsi məlumat",
- "Mobile & desktop" : "Mobil & Desktop",
- "Email server" : "Email server",
- "Background jobs" : "Background işlər",
- "Unlimited" : "Limitsiz",
- "Verifying" : "Təsdiqlənir",
- "Disabled" : "Dayandırılıb",
- "The old server-side-encryption format is enabled. We recommend disabling this." : "Server tərəfdən köhnə şifrələnmə formatı aktivdir. Onu söndürməyi tövsiyyə edirik.",
- "Supported" : "Dəstəklənir",
- "Profile information" : "Profil məlumatı",
- "Nextcloud settings" : "Nextcloud parametrləri",
- "None" : "Heç bir",
- "Unable to modify setting" : "Xassələri yeniləmək olmadı",
- "Allow apps to use the Share API" : "Proqramlara izin verin ki, Paylaşım API-sindən istifadə edə bilsinlər.",
- "Allow resharing" : "Yenidən paylaşıma izin",
- "Restrict users to only share with users in their groups" : "İstifadəçiləri yalnız yerləşdikləri qrup üzvləri ilə paylaşım edə bilmələrini məhdudla",
- "Allow public uploads" : "Ümumi yüklənmələrə izin vermək",
- "Enforce password protection" : "Şifrə müdafiəsini həyata keçirmək",
- "Enforce expiration date" : "Bitmə tarixini həyata keçir",
- "Two-Factor Authentication" : "İki faktorlu autentifikasiya",
- "Limit to groups" : "Qruplara limitlə",
- "Save changes" : "Dəyişiklikləri yaddaşa ver",
- "Remove" : "Sil",
- "Featured" : "Seçilmiş",
- "Name" : "Ad",
- "Version" : "Versiya",
- "Actions" : "İşlər",
- "No apps found for your version" : "Sizin versiya üçün proqram tapılmadı",
- "Description" : "Açıqlanma",
- "Details" : "Detallar",
- "All" : "Hamısı",
- "Limit app usage to groups" : "Tətbiqin istifadəsini qruplar üçün limitlə",
- "No results" : "Nəticə yoxdur",
- "Update to {version}" : "{version} dək yenilə",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Bu proqram yüklənə bilməz ona görə ki, göstərilən asılılıqlar yerinə yetirilməyib:",
- "Categories" : "Kateqoriyalar",
- "Resources" : "Resurslar",
- "Documentation" : "Sənədlər",
- "Report a bug" : "Səhv haqqında bildir",
- "View in store" : "Dükanda bax",
- "Visit website" : "Sayta keç",
- "Admin documentation" : "İdarəci dokumentasiyası",
- "Developer documentation" : "Yaradıcı sənədləşməsi",
- "Changelog" : "Dəyişikliklər jurnalı",
- "Device settings" : "Cihazın parametrləri",
- "Rename" : "Adı dəyiş",
- "Wipe device" : "Cihazı silin",
- "Google Chrome for Android" : "Android üçün Google Chrome",
- "{productName} iOS app" : "{productName} iOS tətbiq",
- "{productName} Android app" : "{productName} Android tətbiq",
- "{productName} Talk for iOS" : "{productName} iOS üçün danış",
- "{productName} Talk for Android" : "{productName} Android üçün danış",
- "This session" : "Bu sessiya",
- "Device" : "Cihaz",
- "Last activity" : "Son aktivlik",
- "Devices & sessions" : "Cihaz & sessiyalar",
- "App name" : "Tətbiqin adı",
- "Create new app password" : "Yeni tətbiq parolu yaradın",
- "Login" : "Giriş",
- "Password" : "Şifrə",
- "Show QR code for mobile apps" : "Mobil tətbiqlər üçün QR kodu göstərin",
- "Last job ran {relativeTime}." : "Son işin icra vaxtı {relativeTime}.",
- "AJAX" : "AJAX",
- "Webcron" : "Webcron",
- "Cron (Recommended)" : "Cron (Tövsiyyə edilən)",
- "Profile" : "Profil",
- "Enable" : "İşə sal",
- "Cancel" : "Dayandır",
- "Confirm" : "Təsdiq edin",
- "Rename group" : "Qrupun adını dəyiş",
- "Remove group" : "Qrupu sil",
- "Current password" : "Hazırkı şifrə",
- "New password" : "Yeni şifrə",
- "Change password" : "Şifrəni dəyiş",
- "Your profile picture" : "Sizin profil şəkliniz",
- "Upload profile picture" : "Profil şəklini yüklə",
- "Choose profile picture from Files" : "Profil şəklini Faylalrdan seçin",
- "Remove profile picture" : "Profil şəklini silin",
- "The file must be a PNG or JPG" : "Fayl PNG və ya JPG olmalıdır",
- "Set as profile picture" : "Profil şəkli kimi təyin et",
- "Please select a valid png or jpg file" : "Zəhmət olmasa düzgün png və ya jpg fayl seçin",
- "Error setting profile picture" : "Profil şəklini təyiin edən vaxtı səhv baş verdi",
- "Error saving profile picture" : "Profil şəklini saxlayan vaxtı səhv baş verdi",
- "Error removing profile picture" : "Profil şəklini silən vaxtı səhv baş verdi",
- "No email address set" : "Email ünvanı dəsti yoxdur",
- "Help translate" : "Tərcüməyə kömək",
- "Add" : "Əlavə etmək",
- "Create" : "Yarat",
- "Change" : "Dəyiş",
- "Delete" : "Sil",
- "Email" : "Email",
- "Quota" : "Norma",
- "Language" : "Dil",
- "Resend welcome email" : "Salamlama e-poçtunu yenidən göndərin",
- "Welcome mail sent!" : "Salamlama məktubu göndərildi!",
- "Done" : "Edildi",
- "Edit" : "Dəyişiklik et",
- "Send email" : "Email yolla",
- "Admins" : "İnzibatçılar",
- "Email sent" : "Məktub göndərildi",
- "Location" : "Yerləşdiyiniz ünvan",
- "Profile picture" : "Profil şəkli",
- "About" : "Haqqında",
- "Full name" : "Tam ad",
- "Updates" : "Yenilənmələr",
- "Hide" : "Gizlə",
- "Disable" : "Dayandır",
- "Never" : "Heç vaxt",
- "Confirm wipe" : "Silməni təsdiq edin",
- "Error while updating device token name" : "Cihazın tokeninin adını yeniləyən vaxtı səhv baş verdi",
- "Error" : "Səhv",
- "Forum" : "Forum",
- "SSL" : "SSL",
- "Open documentation" : "Sənədləri aç",
- "Send mode" : "Göndərmə rejimi",
- "Encryption" : "Şifrələnmə",
- "From address" : "Ünvandan",
- "Server address" : "Server ünvanı",
- "Port" : "Port",
- "Authentication" : "Autentifikasiya",
- "Authentication required" : "Qeydiyyat tələb edilir",
- "Credentials" : "Səlahiyyətlər",
- "SMTP Password" : "SMTP Şifrəsi",
- "Save" : "Saxla",
- "Security & setup warnings" : "Təhlükəsizlik & işə salma xəbərdarlıqları",
- "Check out our blog" : "Bizim bloqa baxın",
- "Subscribe to our newsletter" : "Yeniliklərə abunə olun",
- "No user supplied" : "Heç bir istifadəçiyə mənimsədilmir",
- "Invalid user" : "İstifadəçi adı yalnışdır",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB \"%s\" versiyası istifadə edilir. Nextcloud 21 və yuxarı versiyaları bunu dəstəkləmir və ən azı MariaDB 10.2 və ya yuxarı versiya tələb edir.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL \"%s\" versiyası istifadə edilir. Nextcloud 21 və yuxarı versiyaları bunu dəstəkləmir və ən azı MySQL 8.0 və ya MariaDB 10.2 və ya yuxarı versiya tələb edir.",
- "Exclude groups from sharing" : "Qrupları paylaşımdan ayır",
- "These groups will still be able to receive shares, but not to initiate them." : "Bu qruplar paylaşımları hələdə ala biləcəklər ancaq, yarada bilməyəcəklər",
- "Username" : "İstifadəçi adı",
- "Show user backend" : "Daxili istifadəçini göstər",
- "SMTP Username" : "SMTP İstifadəçi adı"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/settings/l10n/bg.js b/apps/settings/l10n/bg.js
index 94d156b1bbb..2b422554878 100644
--- a/apps/settings/l10n/bg.js
+++ b/apps/settings/l10n/bg.js
@@ -1,13 +1,13 @@
OC.L10N.register(
"settings",
{
- "Private" : "Частен",
+ "Private" : "Лично",
"Only visible to people matched via phone number integration through Talk on mobile" : "Видим само за хора, съчетани чрез интегриране на телефонен номер чрез Talk на мобилен телефон",
"Local" : "Локално",
- "Only visible to people on this instance and guests" : "Вижда се само за хора в този екземпляр и гости",
+ "Only visible to people on this instance and guests" : "Видимо само за потребители на тази инстанция на сървъра, както и гости.",
"Federated" : "Федериран",
"Only synchronize to trusted servers" : "Синхронизиране само с доверени сървъри",
- "Published" : "Публикувано",
+ "Published" : "Публично",
"Synchronize to trusted servers and the global and public address book" : "Синхронизиране с доверени сървъри и с глобалната и публичната адресна книга",
"Verify" : "Потвърждаване",
"Verifying …" : "Потвърждаване...",
@@ -58,7 +58,9 @@ OC.L10N.register(
"Saved" : "Запаметяване",
"Unable to change password. Password too long." : "Неуспешна промяна на паролата. Паролата е твърде дълга.",
"Authentication error" : "Възникна проблем с удостоверяването",
+ "Please provide an admin recovery password; otherwise, all account data will be lost." : "Моля, задайте администраторска парола за възстановяване; в противен случай цялата профилна информация ще бъде загубена.",
"Wrong admin recovery password. Please check the password and try again." : "Грешна администраторска парола за възстановяване. Моля, проверете паролата и опитайте отново.",
+ "Backend does not support password change, but the encryption of the account key was updated." : "Сървърът не поддържа смяна на паролата, но настройката за криптиране на профила беше обновена.",
"Administrator documentation" : "Документация за администратори",
"User documentation" : "Документация за потребители",
"Invalid SMTP password." : "Невалидна SMTP парола.",
@@ -67,6 +69,8 @@ OC.L10N.register(
"If you received this email, the email configuration seems to be correct." : "Ако сте получили този имейл, конфигурацията на имейла изглежда е правилна.",
"Email could not be sent. Check your mail server log" : "Ймеила не се изпрати.",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Възникна проблем при изпращането на имейла. Моля, провери настройките. (Грешка: %s)",
+ "You need to set your account email before being able to send test emails. Go to %s for that." : "Трябва да настроите е-мейл профила, за да можете да изпратите тестови е-мейли. Отидете на %s за това.",
+ "Disabled accounts" : "Неактивни профили",
"Invalid account" : "Невалиден профил",
"Invalid mail address" : "невалиден адрес на електронна поща",
"Settings saved" : "Настройките са запазени",
@@ -107,11 +111,13 @@ OC.L10N.register(
"Overview" : "Преглед",
"Basic settings" : "Основни настройки",
"Sharing" : "Споделяне",
- "Availability" : "Наличност",
+ "Availability" : "Работно време",
"Calendar" : "Kалендар",
"Personal info" : "Лични данни",
"Mobile & desktop" : "Мобилни и настолни",
"Email server" : "Имейл сървър",
+ "User's email account" : "Потребителски е-мейл профил",
+ "System email account" : "Системен е-мейл профил",
"Background jobs" : "Фонови процеси",
"Unlimited" : "Неограничено",
"Verifying" : "Потвърждаване",
@@ -121,6 +127,7 @@ OC.L10N.register(
"This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Сървърът няма работеща интернет връзка: Множество крайни точки не могат да бъдат достигнати. Това означава, че някои от функциите като монтиране на външно хранилище, известия за актуализации или инсталиране на приложения на трети страни няма да работят. Достъпът до файлове от разстояние и изпращането на имейли с известие, също може да не работят. Установете връзка от този сървър с Интернет, за да се насладите на всички функции.",
"Disabled" : "Изключено",
"The old server-side-encryption format is enabled. We recommend disabling this." : "Старият формат за криптиране от страна на сървъра е активиран. Препоръчваме да го деактивирате.",
+ "You are not using MySQL" : "Не използвате MySQL",
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Функцията PHP \"set_time_limit\" не е налична. Това може да доведе до спиране на скриптове в средата на изпълнение, което ще повреди вашата инсталация. Активирането на тази функция е силно препоръчително.",
"Supported" : "Поддържан",
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Вашият PHP не поддържа FreeType, в резулта това ще доведе до неправилното показване на профилните снимки и настройките на интерфейса",
@@ -177,54 +184,9 @@ OC.L10N.register(
"_%n app has an update available_::_%n apps have an update available_" : ["%n приложения имат налична актуализация ","%n приложения имат налична актуализация"],
"_Update_::_Update all_" : ["Актуализиране на всички","Актуализиране на всички"],
"Group name" : "Име на групата",
+ "Search groups…" : "Търси в групи ...",
"Loading groups…" : "Зареждане на групи ...",
"Loading" : "Зареждане",
- "Type" : "Тип",
- "Display Name" : "Име за визуализация",
- "Learn more" : "Научете повече",
- "Confirm" : "Потвърдете",
- "Cancel" : "Отказ",
- "View in store" : "Страница в магазина",
- "Visit website" : "Уеб страницата",
- "Admin documentation" : "Документация за администратори",
- "Developer documentation" : "Документация за разработчици",
- "Details" : "Подробности",
- "All" : "Всички",
- "Limit app usage to groups" : "Ограничаване използването на приложението от групи",
- "No results" : "Няма резултати",
- "Update to {version}" : "Актуализирай до {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Това приложение няма присвоена минимална версия на Nextcloud. В бъдеще това ще бъде грешка.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Това приложение няма зададена максимална версия на Nextcloud. В бъдеще това ще бъде грешка.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Приложението не може да бъде инсталирано, защото следните зависимости не са удовлетворени:",
- "Author" : "Автор",
- "Categories" : "Категории",
- "Resources" : "Ресурси",
- "Documentation" : "Документация",
- "Report a bug" : "Докладване на грешка",
- "Request feature" : "Заявете функционалност",
- "Ask questions or discuss" : "Задайте въпрос",
- "Rate" : "Оценяване",
- "Changelog" : "Списък на промените",
- "Google Chrome for Android" : "Google Chrome за Android",
- "{productName} iOS app" : "{productName} приложение за iOS",
- "{productName} Android app" : "{productName} приложение за Android",
- "{productName} Talk for iOS" : "{productName} Talk за iOS",
- "{productName} Talk for Android" : "{productName} Talk за Android",
- "This session" : "Текущата сесия",
- "Marked for remote wipe" : "Маркирано за отдалечено изтриване",
- "Device settings" : "Настройки за устройството",
- "Allow filesystem access" : "Разрешен достъп до файловете",
- "Rename" : "Преименувай",
- "Revoke" : "Отнемане",
- "Wipe device" : "Изтрий устройството",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Отмяната на този маркер може да попречи на изтриването на вашето устройство, ако то все още не е започнало изтриването.",
- "Device" : "Устройство",
- "Last activity" : "Последна активност",
- "Devices & sessions" : "Устройства и сесии",
- "Web, desktop and mobile clients currently logged in to your account." : "Уеб, настолни и мобилни клиенти, които в момента са вписани чрез вашия акаунт.",
- "Error while creating device token" : "Грешка при създаването на токен на устройството",
- "App name" : "Име на приложението",
- "Create new app password" : "Създай парола за приложението",
"Could not copy app password. Please copy it manually." : "Не можа да се копира паролата за приложение. Моля, копирайте я ръчно.",
"Login" : "Вписване",
"Password" : "Парола",
@@ -240,6 +202,7 @@ OC.L10N.register(
"Cron (Recommended)" : "Cron (препоръчително)",
"Unable to update profile default setting" : "Не може да се актуализира настройката по подразбиране на профила",
"Profile" : "Профил",
+ "Enable or disable profile by default for new accounts." : "Включи или изключи профила за нови потребители",
"Unable to update server side encryption config" : "Не може да се актуализира конфигурацията за криптиране от страна на сървъра",
"Server-side encryption" : "Сървърно криптиране",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Криптирането от страна на сървъра, прави възможно криптирането на файлове, които се качват на този сървър. Това идва с ограничения като намаляване на производителността, така че го активирайте, само ако е необходимо. ",
@@ -254,133 +217,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Имайте предвид, че криптирането винаги увеличава размера на файла.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Добре е винаги да създавате редовни резервни копия на вашите данни, в случай на криптиране не забравяйте да архивирате ключовете за криптиране заедно с вашите данни.",
"This is the final warning: Do you really want to enable encryption?" : "Това е последно предупреждение: Наистина ли искате да активирате криптирането?",
+ "Cancel" : "Отказ",
+ "Confirm" : "Потвърдете",
"Submit" : "Изпращане",
"Rename group" : "Преименуване на група",
- "Remove group" : "Премахване на групата",
- "Current password" : "Текуща парола",
- "New password" : "Нова парола",
- "Change password" : "Промени паролата",
- "Choose your profile picture" : "Избор на профилна снимка",
- "Please select a valid png or jpg file" : "Моля, изберете валиден png или jpg файл",
- "Error setting profile picture" : "Грешка при задаване на профилна снимка",
- "Error cropping profile picture" : "Грешка при изрязване на профилна снимка",
- "Error saving profile picture" : "Грешка при записване на профилната снимка",
- "Error removing profile picture" : "Грешка при премахване на профилна снимка",
- "Your profile picture" : "Вашата профилна снимка",
- "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" : "Снимката е предоставена от оригиналния профил",
- "Set as profile picture" : "Задаване като профилна снимка",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Моля, имайте предвид, че може да отнеме до 24 часа, докато вашата профилна снимка бъде актуализирана навсякъде.",
- "You are a member of the following groups:" : "Членувате в следните групи:",
- "Your full name" : "Вашето пълно име",
- "Email options" : "Опции за имейл",
- "Remove primary email" : "Премахване на основния имейл",
- "Delete email" : "Изтриване на имейл",
- "This address is not confirmed" : "Този адрес не е потвърден",
- "Unset as primary email" : "Премахване на настройка като основен имейл",
- "Set as primary email" : "Задаване като основен имейл",
- "Additional email address {index}" : "Допълнителен имейл адрес {index}",
- "Unable to delete primary email address" : "Не може да се изтрие основният имейл адрес",
- "Unable to update primary email address" : "Основният имейл адрес не може да се актуализира",
- "Unable to add additional email address" : "Не може да се добави допълнителен имейл адрес",
- "Unable to update additional email address" : "Не може да се актуализира допълнителен имейл адрес",
- "Unable to delete additional email address" : "Не може да се изтрие допълнителен имейл адрес",
- "Primary email for password reset and notifications" : "Основен имейл за възстановяване на парола и известия",
- "No email address set" : "Не е въведен имейл адрес",
- "Your handle" : "Вашият манипулатор",
- "Your headline" : "Вашето заглавие",
- "Unable to update language" : "Езикът не може да се актуализира",
- "Help translate" : "Помогнете с превода",
- "No language set" : "Няма зададен език",
- "Unable to update locale" : "Не може да се актуализира езиково-географската променлива",
- "Week starts on {firstDayOfWeek}" : "Седмицата започва на {firstDayOfWeek}",
- "No locale set" : "Не е зададена езиково-географска променлива",
- "Your organisation" : "Вашата организация",
- "Your phone number" : "Вашият тел. номер",
- "Edit your Profile visibility" : "Редактиране на видимостта на вашия профил",
- "Unable to update profile enabled state" : "Не може да се актуализира активирано състояние на профил",
- "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." : "По-рестриктивна настройка за видимост или обхват се спазва във вашия профил. Например, ако видимостта е зададена на „Показване на всички“ и обхватът е настроен на „Частен“, „Частен“ се зачита.",
- "Unable to update visibility of {displayId}" : "Не може да се актуализира видимостта на {displayId}",
- "Your role" : "Вашата роля",
- "Your website" : "Вашата уеб страница",
- "Unable to update {property}" : "Не може да се актуализира {property}",
- "No {property} set" : "Не е зададено {property}",
- "Change scope level of {property}, current scope is {scope}" : "Променете нивото на обхват на {property}, текущият обхват е {scope}",
- "Unable to update federation scope of the primary {property}" : "Не може да се актуализира обхватът на обединяване на основното {property}",
- "Unable to update federation scope of additional {property}" : "Не може да се актуализира обхватът на обединяване на допълнителното {property}",
- "Add additional email" : "Добавяне на допълнителен имейл",
- "Add" : "Добави",
- "Create" : "Създай",
- "Change" : "Промени",
- "Delete" : "Изтриване",
- "Reshare" : "Повторно споделяне",
- "Default language" : "Стандартен език",
- "Common languages" : "Познати езици",
- "Other languages" : "Други езици",
- "Password change is disabled because the master key is disabled" : "Промяната на паролата е деактивирана, защото главният ключ е деактивиран",
- "No accounts" : "Без сметки",
- "Display name" : "Вписване като",
- "Email" : "Имейл",
- "Quota" : "Квота",
- "Language" : "Език",
- "Total rows summary" : "Обобщение на общия брой редове",
- "Avatar" : "Аватар",
- "Account name" : "Име на профил",
- "Group admin for" : "Групов администратор за",
- "Storage location" : "Дисково пространство",
- "Last login" : "Последно вписване",
- "Account actions" : "Действия на профил",
- "{size} used" : "{size} използвани",
- "Delete account" : "Изтриване на профила",
- "Resend welcome email" : "Повторно изпращане на имейл за добре дошъл ",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "В случай на изгубено устройство или излизане от организацията, това може отдалечено да изтрие данните на Nextcloud от всички устройства, свързани с {userid}. Работи, само ако устройствата са свързани към интернет.",
- "Remote wipe of devices" : "Отдалечено изтриване на устройства",
- "Wipe {userid}'s devices" : "Изтриване на устройствата на {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Напълно изтриване на профил на {userid}, включително всички негови лични файлове, данни от приложения и т.н.",
- "Account deletion" : "Изтриване на профил",
- "Delete {userid}'s account" : "Изтриване на профил на {userid}",
- "Welcome mail sent!" : "Изпратена е поща за добре дошли!",
- "Done" : "Готово",
- "Edit" : "Редактиране",
- "Show storage path" : "Показване на пътя за хранилище",
- "Show last login" : "Показвай последното вписване",
- "Send email" : "Изпрати имейл",
- "Defaults" : "Стойности по подразбиране",
- "Default quota" : "Стандартна квота",
- "Select default quota" : "Изберете стандартна квота",
- "Server error while trying to complete WebAuthn device registration" : "Грешка в сървъра при опит за завършване на регистрация на WebAuthn устройство ",
- "Passwordless authentication requires a secure connection." : "Удостоверяване без парола изисква сигурна връзка.",
- "Add WebAuthn device" : "Добавяне на WebAuthn устройство",
- "Please authorize your WebAuthn device." : "Моля, да упълномощите вашето WebAuthn устройство.",
- "Adding your device …" : "Вашето устройство се добавя …",
- "Unnamed device" : "Устройство без име",
- "Passwordless Authentication" : "Удостоверяване без парола",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Настройте вашият профил за удостоверяване без парола, следвайки стандарта FIDO2.",
- "No devices configured." : "Няма конфигурирани устройства.",
- "The following devices are configured for your account:" : "Следните устройства са конфигурирани за вашия профил:",
- "Your browser does not support WebAuthn." : "Вашият браузър не поддържа WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Като администратор можете да прецизирате поведението на споделяне. Моля, вижте документацията за повече информация.",
- "You need to enable the File sharing App." : "Трябва да активирате приложението за споделяне на файлове.",
- "Admins" : "Администратори",
"Sending…" : "Изпращане...",
"Email sent" : "Имейлът е изпратен",
"Location" : "Местоположение",
"Profile picture" : "Снимка за профила",
"About" : "Относно",
+ "Date of birth" : "Дата на раждане",
"Full name" : "Име",
"Additional email" : "Допълнителен имейл",
+ "Email" : "Имейл",
"Fediverse (e.g. Mastodon)" : "Fediverse (напр. Mastodon)",
"Headline" : "Заглавие",
"Organisation" : "Организация",
"Phone number" : "Тел. номер",
+ "Pronouns" : "Обръщение",
"Role" : "Роля",
"Website" : "Уеб страница",
"Profile visibility" : "Видимост на профил",
- "Locale" : "Локален/Местен/",
+ "Language" : "Език",
+ "Locale" : "Регионални настройки",
+ "First day of week" : "Първи ден от седмицата",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Не е налично, тъй като това свойство е нужно за основна функционалност, включително споделяне на файлове и покани в календар",
+ "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Опцията не е достъпна, понеже настройката за федерация не е достъпна за профила Ви. Свържете се със системния администратор при допълнителни въпроси.",
+ "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Опцията не е достъпна, понеже настройката за публикуване на профилна информация към контактния сървър не е достъпна. Свържете се със системния администратор при допълнителни въпроси.",
"Your apps" : "Вашите приложения",
"Active apps" : "Включени приложения",
"Disabled apps" : "Изключени приложения",
@@ -389,10 +252,12 @@ OC.L10N.register(
"Featured apps" : "Представени приложения",
"Show to everyone" : "Показване на всички",
"Hide" : "Скриване",
+ "Update to {version}" : "Актуализирай до {version}",
"Download and enable" : "Сваляне и включване",
"Disable" : "Изключване",
"The app will be downloaded from the App Store" : "Приложението ще бъде изтеглено от App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Приложението не е маркирано като съвместимо с вашата версия на Nextcloud. Можете да инсталирате приложението, но е вероятно да не работи безпроблемно.",
+ "{size} used" : "{size} използвани",
"Unknown" : "Неизвестен",
"Never" : "Никога",
"An error occurred during the request. Unable to proceed." : "Възникна грешка по време на заявката. Не може да се продължи.",
@@ -405,6 +270,8 @@ OC.L10N.register(
"Error while updating device token scope" : "Грешка при актуализиране на обхвата на токена на устройството",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Имаше твърде много заявки от вашата мрежа. Опитайте отново по-късно или се свържете с вашия администратор, ако това е грешка.",
"Error" : "Грешка",
+ "Default quota" : "Стандартна квота",
+ "Documentation" : "Документация",
"Forum" : "Форум",
"Legal notice" : "Правна информация",
"Privacy policy" : "Политика за поверителност",
@@ -423,6 +290,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP парола",
"Save" : "Запазване",
"Test and verify email settings" : "Тествайте и потвърждаване на настройките на имейла",
+ "Send email" : "Изпрати имейл",
"Security & setup warnings" : "Предупреждения за сигурността и настройките",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Важно е, от гледна точка на сигурност и производителност, всичко да бъде настроено коректно. За тази цел са създадени автоматични проверки. Прегледайте връзките, към документацията (по-долу), за допълнителна информация.",
"All checks passed." : "Всички проверки са преминати.",
@@ -440,21 +308,6 @@ OC.L10N.register(
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Тази общностна версия на Nextcloud не се поддържа и не са налични незабавни известия.",
"Use a second factor besides your password to increase security for your account." : "Ползвайте двустепенно удостоверяване за да повишите сигурността на профила си.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ако използвате приложения на трети страни, за да се свържете с Nextcloud, моля, не забравяйте да създадете и конфигурирате парола за приложение за всяко едно от тях, преди да активирате удостоверяване на втория фактор.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Някои индекси липсват в базата данни. Не са добавени защото процеса може да отнеме доста време. Можете да стартирате процеса ръчно като изпълните командата \"occ db:add-missing-indices\". След добавянето на индексите заявките към изброените таблици ще минават много по-бързо.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Използва се версия на MariaDB „%s “. Nextcloud 21 и по-новите версии вече няма да поддържат тази версия и се изисква MariaDB 10.2 или по-нова версия.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Използва се версия на MySQL „ %s“. Nextcloud 21 и по-новите версии вече няма да поддържат тази версия и се изискват MySQL 8.0 или MariaDB 10.2, или по-нова версия.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Използва се PostgreSQL версия „%s “. Nextcloud 21 и по-новите версии вече няма да поддържат тази версия и се изисква PostgreSQL 9.6 или по-нова версия.",
- "Set default expiration date for shares" : "Задай дата за изтичане по подразбиране за споделянията",
- "Your biography" : "Вашата биография",
- "You are using <strong>{usage}</strong>" : "Използвате <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Използвате <strong>{usage}</strong> от <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "New user" : "Нов потребител",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} потребители","{userCount} потребители"],
- "Username" : "Потребител",
- "User backend" : "Потребителски сървър",
- "Add user to group" : "Добавяне на потребител към група",
- "Server error while trying to add WebAuthn device" : "Грешка в сървъра при опит за добавяне на WebAuthn устройство",
- "Name your device" : "Име на устройството",
- "Follow us on Twitter" : "Следвайте ни в Twitter"
+ "Set default expiration date for shares" : "Задай дата за изтичане по подразбиране за споделянията"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/bg.json b/apps/settings/l10n/bg.json
index f121cc1cad9..093cee926b4 100644
--- a/apps/settings/l10n/bg.json
+++ b/apps/settings/l10n/bg.json
@@ -1,11 +1,11 @@
{ "translations": {
- "Private" : "Частен",
+ "Private" : "Лично",
"Only visible to people matched via phone number integration through Talk on mobile" : "Видим само за хора, съчетани чрез интегриране на телефонен номер чрез Talk на мобилен телефон",
"Local" : "Локално",
- "Only visible to people on this instance and guests" : "Вижда се само за хора в този екземпляр и гости",
+ "Only visible to people on this instance and guests" : "Видимо само за потребители на тази инстанция на сървъра, както и гости.",
"Federated" : "Федериран",
"Only synchronize to trusted servers" : "Синхронизиране само с доверени сървъри",
- "Published" : "Публикувано",
+ "Published" : "Публично",
"Synchronize to trusted servers and the global and public address book" : "Синхронизиране с доверени сървъри и с глобалната и публичната адресна книга",
"Verify" : "Потвърждаване",
"Verifying …" : "Потвърждаване...",
@@ -56,7 +56,9 @@
"Saved" : "Запаметяване",
"Unable to change password. Password too long." : "Неуспешна промяна на паролата. Паролата е твърде дълга.",
"Authentication error" : "Възникна проблем с удостоверяването",
+ "Please provide an admin recovery password; otherwise, all account data will be lost." : "Моля, задайте администраторска парола за възстановяване; в противен случай цялата профилна информация ще бъде загубена.",
"Wrong admin recovery password. Please check the password and try again." : "Грешна администраторска парола за възстановяване. Моля, проверете паролата и опитайте отново.",
+ "Backend does not support password change, but the encryption of the account key was updated." : "Сървърът не поддържа смяна на паролата, но настройката за криптиране на профила беше обновена.",
"Administrator documentation" : "Документация за администратори",
"User documentation" : "Документация за потребители",
"Invalid SMTP password." : "Невалидна SMTP парола.",
@@ -65,6 +67,8 @@
"If you received this email, the email configuration seems to be correct." : "Ако сте получили този имейл, конфигурацията на имейла изглежда е правилна.",
"Email could not be sent. Check your mail server log" : "Ймеила не се изпрати.",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Възникна проблем при изпращането на имейла. Моля, провери настройките. (Грешка: %s)",
+ "You need to set your account email before being able to send test emails. Go to %s for that." : "Трябва да настроите е-мейл профила, за да можете да изпратите тестови е-мейли. Отидете на %s за това.",
+ "Disabled accounts" : "Неактивни профили",
"Invalid account" : "Невалиден профил",
"Invalid mail address" : "невалиден адрес на електронна поща",
"Settings saved" : "Настройките са запазени",
@@ -105,11 +109,13 @@
"Overview" : "Преглед",
"Basic settings" : "Основни настройки",
"Sharing" : "Споделяне",
- "Availability" : "Наличност",
+ "Availability" : "Работно време",
"Calendar" : "Kалендар",
"Personal info" : "Лични данни",
"Mobile & desktop" : "Мобилни и настолни",
"Email server" : "Имейл сървър",
+ "User's email account" : "Потребителски е-мейл профил",
+ "System email account" : "Системен е-мейл профил",
"Background jobs" : "Фонови процеси",
"Unlimited" : "Неограничено",
"Verifying" : "Потвърждаване",
@@ -119,6 +125,7 @@
"This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Сървърът няма работеща интернет връзка: Множество крайни точки не могат да бъдат достигнати. Това означава, че някои от функциите като монтиране на външно хранилище, известия за актуализации или инсталиране на приложения на трети страни няма да работят. Достъпът до файлове от разстояние и изпращането на имейли с известие, също може да не работят. Установете връзка от този сървър с Интернет, за да се насладите на всички функции.",
"Disabled" : "Изключено",
"The old server-side-encryption format is enabled. We recommend disabling this." : "Старият формат за криптиране от страна на сървъра е активиран. Препоръчваме да го деактивирате.",
+ "You are not using MySQL" : "Не използвате MySQL",
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Функцията PHP \"set_time_limit\" не е налична. Това може да доведе до спиране на скриптове в средата на изпълнение, което ще повреди вашата инсталация. Активирането на тази функция е силно препоръчително.",
"Supported" : "Поддържан",
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Вашият PHP не поддържа FreeType, в резулта това ще доведе до неправилното показване на профилните снимки и настройките на интерфейса",
@@ -175,54 +182,9 @@
"_%n app has an update available_::_%n apps have an update available_" : ["%n приложения имат налична актуализация ","%n приложения имат налична актуализация"],
"_Update_::_Update all_" : ["Актуализиране на всички","Актуализиране на всички"],
"Group name" : "Име на групата",
+ "Search groups…" : "Търси в групи ...",
"Loading groups…" : "Зареждане на групи ...",
"Loading" : "Зареждане",
- "Type" : "Тип",
- "Display Name" : "Име за визуализация",
- "Learn more" : "Научете повече",
- "Confirm" : "Потвърдете",
- "Cancel" : "Отказ",
- "View in store" : "Страница в магазина",
- "Visit website" : "Уеб страницата",
- "Admin documentation" : "Документация за администратори",
- "Developer documentation" : "Документация за разработчици",
- "Details" : "Подробности",
- "All" : "Всички",
- "Limit app usage to groups" : "Ограничаване използването на приложението от групи",
- "No results" : "Няма резултати",
- "Update to {version}" : "Актуализирай до {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Това приложение няма присвоена минимална версия на Nextcloud. В бъдеще това ще бъде грешка.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Това приложение няма зададена максимална версия на Nextcloud. В бъдеще това ще бъде грешка.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Приложението не може да бъде инсталирано, защото следните зависимости не са удовлетворени:",
- "Author" : "Автор",
- "Categories" : "Категории",
- "Resources" : "Ресурси",
- "Documentation" : "Документация",
- "Report a bug" : "Докладване на грешка",
- "Request feature" : "Заявете функционалност",
- "Ask questions or discuss" : "Задайте въпрос",
- "Rate" : "Оценяване",
- "Changelog" : "Списък на промените",
- "Google Chrome for Android" : "Google Chrome за Android",
- "{productName} iOS app" : "{productName} приложение за iOS",
- "{productName} Android app" : "{productName} приложение за Android",
- "{productName} Talk for iOS" : "{productName} Talk за iOS",
- "{productName} Talk for Android" : "{productName} Talk за Android",
- "This session" : "Текущата сесия",
- "Marked for remote wipe" : "Маркирано за отдалечено изтриване",
- "Device settings" : "Настройки за устройството",
- "Allow filesystem access" : "Разрешен достъп до файловете",
- "Rename" : "Преименувай",
- "Revoke" : "Отнемане",
- "Wipe device" : "Изтрий устройството",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Отмяната на този маркер може да попречи на изтриването на вашето устройство, ако то все още не е започнало изтриването.",
- "Device" : "Устройство",
- "Last activity" : "Последна активност",
- "Devices & sessions" : "Устройства и сесии",
- "Web, desktop and mobile clients currently logged in to your account." : "Уеб, настолни и мобилни клиенти, които в момента са вписани чрез вашия акаунт.",
- "Error while creating device token" : "Грешка при създаването на токен на устройството",
- "App name" : "Име на приложението",
- "Create new app password" : "Създай парола за приложението",
"Could not copy app password. Please copy it manually." : "Не можа да се копира паролата за приложение. Моля, копирайте я ръчно.",
"Login" : "Вписване",
"Password" : "Парола",
@@ -238,6 +200,7 @@
"Cron (Recommended)" : "Cron (препоръчително)",
"Unable to update profile default setting" : "Не може да се актуализира настройката по подразбиране на профила",
"Profile" : "Профил",
+ "Enable or disable profile by default for new accounts." : "Включи или изключи профила за нови потребители",
"Unable to update server side encryption config" : "Не може да се актуализира конфигурацията за криптиране от страна на сървъра",
"Server-side encryption" : "Сървърно криптиране",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Криптирането от страна на сървъра, прави възможно криптирането на файлове, които се качват на този сървър. Това идва с ограничения като намаляване на производителността, така че го активирайте, само ако е необходимо. ",
@@ -252,133 +215,33 @@
"Be aware that encryption always increases the file size." : "Имайте предвид, че криптирането винаги увеличава размера на файла.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Добре е винаги да създавате редовни резервни копия на вашите данни, в случай на криптиране не забравяйте да архивирате ключовете за криптиране заедно с вашите данни.",
"This is the final warning: Do you really want to enable encryption?" : "Това е последно предупреждение: Наистина ли искате да активирате криптирането?",
+ "Cancel" : "Отказ",
+ "Confirm" : "Потвърдете",
"Submit" : "Изпращане",
"Rename group" : "Преименуване на група",
- "Remove group" : "Премахване на групата",
- "Current password" : "Текуща парола",
- "New password" : "Нова парола",
- "Change password" : "Промени паролата",
- "Choose your profile picture" : "Избор на профилна снимка",
- "Please select a valid png or jpg file" : "Моля, изберете валиден png или jpg файл",
- "Error setting profile picture" : "Грешка при задаване на профилна снимка",
- "Error cropping profile picture" : "Грешка при изрязване на профилна снимка",
- "Error saving profile picture" : "Грешка при записване на профилната снимка",
- "Error removing profile picture" : "Грешка при премахване на профилна снимка",
- "Your profile picture" : "Вашата профилна снимка",
- "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" : "Снимката е предоставена от оригиналния профил",
- "Set as profile picture" : "Задаване като профилна снимка",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Моля, имайте предвид, че може да отнеме до 24 часа, докато вашата профилна снимка бъде актуализирана навсякъде.",
- "You are a member of the following groups:" : "Членувате в следните групи:",
- "Your full name" : "Вашето пълно име",
- "Email options" : "Опции за имейл",
- "Remove primary email" : "Премахване на основния имейл",
- "Delete email" : "Изтриване на имейл",
- "This address is not confirmed" : "Този адрес не е потвърден",
- "Unset as primary email" : "Премахване на настройка като основен имейл",
- "Set as primary email" : "Задаване като основен имейл",
- "Additional email address {index}" : "Допълнителен имейл адрес {index}",
- "Unable to delete primary email address" : "Не може да се изтрие основният имейл адрес",
- "Unable to update primary email address" : "Основният имейл адрес не може да се актуализира",
- "Unable to add additional email address" : "Не може да се добави допълнителен имейл адрес",
- "Unable to update additional email address" : "Не може да се актуализира допълнителен имейл адрес",
- "Unable to delete additional email address" : "Не може да се изтрие допълнителен имейл адрес",
- "Primary email for password reset and notifications" : "Основен имейл за възстановяване на парола и известия",
- "No email address set" : "Не е въведен имейл адрес",
- "Your handle" : "Вашият манипулатор",
- "Your headline" : "Вашето заглавие",
- "Unable to update language" : "Езикът не може да се актуализира",
- "Help translate" : "Помогнете с превода",
- "No language set" : "Няма зададен език",
- "Unable to update locale" : "Не може да се актуализира езиково-географската променлива",
- "Week starts on {firstDayOfWeek}" : "Седмицата започва на {firstDayOfWeek}",
- "No locale set" : "Не е зададена езиково-географска променлива",
- "Your organisation" : "Вашата организация",
- "Your phone number" : "Вашият тел. номер",
- "Edit your Profile visibility" : "Редактиране на видимостта на вашия профил",
- "Unable to update profile enabled state" : "Не може да се актуализира активирано състояние на профил",
- "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." : "По-рестриктивна настройка за видимост или обхват се спазва във вашия профил. Например, ако видимостта е зададена на „Показване на всички“ и обхватът е настроен на „Частен“, „Частен“ се зачита.",
- "Unable to update visibility of {displayId}" : "Не може да се актуализира видимостта на {displayId}",
- "Your role" : "Вашата роля",
- "Your website" : "Вашата уеб страница",
- "Unable to update {property}" : "Не може да се актуализира {property}",
- "No {property} set" : "Не е зададено {property}",
- "Change scope level of {property}, current scope is {scope}" : "Променете нивото на обхват на {property}, текущият обхват е {scope}",
- "Unable to update federation scope of the primary {property}" : "Не може да се актуализира обхватът на обединяване на основното {property}",
- "Unable to update federation scope of additional {property}" : "Не може да се актуализира обхватът на обединяване на допълнителното {property}",
- "Add additional email" : "Добавяне на допълнителен имейл",
- "Add" : "Добави",
- "Create" : "Създай",
- "Change" : "Промени",
- "Delete" : "Изтриване",
- "Reshare" : "Повторно споделяне",
- "Default language" : "Стандартен език",
- "Common languages" : "Познати езици",
- "Other languages" : "Други езици",
- "Password change is disabled because the master key is disabled" : "Промяната на паролата е деактивирана, защото главният ключ е деактивиран",
- "No accounts" : "Без сметки",
- "Display name" : "Вписване като",
- "Email" : "Имейл",
- "Quota" : "Квота",
- "Language" : "Език",
- "Total rows summary" : "Обобщение на общия брой редове",
- "Avatar" : "Аватар",
- "Account name" : "Име на профил",
- "Group admin for" : "Групов администратор за",
- "Storage location" : "Дисково пространство",
- "Last login" : "Последно вписване",
- "Account actions" : "Действия на профил",
- "{size} used" : "{size} използвани",
- "Delete account" : "Изтриване на профила",
- "Resend welcome email" : "Повторно изпращане на имейл за добре дошъл ",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "В случай на изгубено устройство или излизане от организацията, това може отдалечено да изтрие данните на Nextcloud от всички устройства, свързани с {userid}. Работи, само ако устройствата са свързани към интернет.",
- "Remote wipe of devices" : "Отдалечено изтриване на устройства",
- "Wipe {userid}'s devices" : "Изтриване на устройствата на {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Напълно изтриване на профил на {userid}, включително всички негови лични файлове, данни от приложения и т.н.",
- "Account deletion" : "Изтриване на профил",
- "Delete {userid}'s account" : "Изтриване на профил на {userid}",
- "Welcome mail sent!" : "Изпратена е поща за добре дошли!",
- "Done" : "Готово",
- "Edit" : "Редактиране",
- "Show storage path" : "Показване на пътя за хранилище",
- "Show last login" : "Показвай последното вписване",
- "Send email" : "Изпрати имейл",
- "Defaults" : "Стойности по подразбиране",
- "Default quota" : "Стандартна квота",
- "Select default quota" : "Изберете стандартна квота",
- "Server error while trying to complete WebAuthn device registration" : "Грешка в сървъра при опит за завършване на регистрация на WebAuthn устройство ",
- "Passwordless authentication requires a secure connection." : "Удостоверяване без парола изисква сигурна връзка.",
- "Add WebAuthn device" : "Добавяне на WebAuthn устройство",
- "Please authorize your WebAuthn device." : "Моля, да упълномощите вашето WebAuthn устройство.",
- "Adding your device …" : "Вашето устройство се добавя …",
- "Unnamed device" : "Устройство без име",
- "Passwordless Authentication" : "Удостоверяване без парола",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Настройте вашият профил за удостоверяване без парола, следвайки стандарта FIDO2.",
- "No devices configured." : "Няма конфигурирани устройства.",
- "The following devices are configured for your account:" : "Следните устройства са конфигурирани за вашия профил:",
- "Your browser does not support WebAuthn." : "Вашият браузър не поддържа WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Като администратор можете да прецизирате поведението на споделяне. Моля, вижте документацията за повече информация.",
- "You need to enable the File sharing App." : "Трябва да активирате приложението за споделяне на файлове.",
- "Admins" : "Администратори",
"Sending…" : "Изпращане...",
"Email sent" : "Имейлът е изпратен",
"Location" : "Местоположение",
"Profile picture" : "Снимка за профила",
"About" : "Относно",
+ "Date of birth" : "Дата на раждане",
"Full name" : "Име",
"Additional email" : "Допълнителен имейл",
+ "Email" : "Имейл",
"Fediverse (e.g. Mastodon)" : "Fediverse (напр. Mastodon)",
"Headline" : "Заглавие",
"Organisation" : "Организация",
"Phone number" : "Тел. номер",
+ "Pronouns" : "Обръщение",
"Role" : "Роля",
"Website" : "Уеб страница",
"Profile visibility" : "Видимост на профил",
- "Locale" : "Локален/Местен/",
+ "Language" : "Език",
+ "Locale" : "Регионални настройки",
+ "First day of week" : "Първи ден от седмицата",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Не е налично, тъй като това свойство е нужно за основна функционалност, включително споделяне на файлове и покани в календар",
+ "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Опцията не е достъпна, понеже настройката за федерация не е достъпна за профила Ви. Свържете се със системния администратор при допълнителни въпроси.",
+ "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Опцията не е достъпна, понеже настройката за публикуване на профилна информация към контактния сървър не е достъпна. Свържете се със системния администратор при допълнителни въпроси.",
"Your apps" : "Вашите приложения",
"Active apps" : "Включени приложения",
"Disabled apps" : "Изключени приложения",
@@ -387,10 +250,12 @@
"Featured apps" : "Представени приложения",
"Show to everyone" : "Показване на всички",
"Hide" : "Скриване",
+ "Update to {version}" : "Актуализирай до {version}",
"Download and enable" : "Сваляне и включване",
"Disable" : "Изключване",
"The app will be downloaded from the App Store" : "Приложението ще бъде изтеглено от App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Приложението не е маркирано като съвместимо с вашата версия на Nextcloud. Можете да инсталирате приложението, но е вероятно да не работи безпроблемно.",
+ "{size} used" : "{size} използвани",
"Unknown" : "Неизвестен",
"Never" : "Никога",
"An error occurred during the request. Unable to proceed." : "Възникна грешка по време на заявката. Не може да се продължи.",
@@ -403,6 +268,8 @@
"Error while updating device token scope" : "Грешка при актуализиране на обхвата на токена на устройството",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Имаше твърде много заявки от вашата мрежа. Опитайте отново по-късно или се свържете с вашия администратор, ако това е грешка.",
"Error" : "Грешка",
+ "Default quota" : "Стандартна квота",
+ "Documentation" : "Документация",
"Forum" : "Форум",
"Legal notice" : "Правна информация",
"Privacy policy" : "Политика за поверителност",
@@ -421,6 +288,7 @@
"SMTP Password" : "SMTP парола",
"Save" : "Запазване",
"Test and verify email settings" : "Тествайте и потвърждаване на настройките на имейла",
+ "Send email" : "Изпрати имейл",
"Security & setup warnings" : "Предупреждения за сигурността и настройките",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Важно е, от гледна точка на сигурност и производителност, всичко да бъде настроено коректно. За тази цел са създадени автоматични проверки. Прегледайте връзките, към документацията (по-долу), за допълнителна информация.",
"All checks passed." : "Всички проверки са преминати.",
@@ -438,21 +306,6 @@
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Тази общностна версия на Nextcloud не се поддържа и не са налични незабавни известия.",
"Use a second factor besides your password to increase security for your account." : "Ползвайте двустепенно удостоверяване за да повишите сигурността на профила си.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ако използвате приложения на трети страни, за да се свържете с Nextcloud, моля, не забравяйте да създадете и конфигурирате парола за приложение за всяко едно от тях, преди да активирате удостоверяване на втория фактор.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Някои индекси липсват в базата данни. Не са добавени защото процеса може да отнеме доста време. Можете да стартирате процеса ръчно като изпълните командата \"occ db:add-missing-indices\". След добавянето на индексите заявките към изброените таблици ще минават много по-бързо.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Използва се версия на MariaDB „%s “. Nextcloud 21 и по-новите версии вече няма да поддържат тази версия и се изисква MariaDB 10.2 или по-нова версия.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Използва се версия на MySQL „ %s“. Nextcloud 21 и по-новите версии вече няма да поддържат тази версия и се изискват MySQL 8.0 или MariaDB 10.2, или по-нова версия.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Използва се PostgreSQL версия „%s “. Nextcloud 21 и по-новите версии вече няма да поддържат тази версия и се изисква PostgreSQL 9.6 или по-нова версия.",
- "Set default expiration date for shares" : "Задай дата за изтичане по подразбиране за споделянията",
- "Your biography" : "Вашата биография",
- "You are using <strong>{usage}</strong>" : "Използвате <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Използвате <strong>{usage}</strong> от <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "New user" : "Нов потребител",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} потребители","{userCount} потребители"],
- "Username" : "Потребител",
- "User backend" : "Потребителски сървър",
- "Add user to group" : "Добавяне на потребител към група",
- "Server error while trying to add WebAuthn device" : "Грешка в сървъра при опит за добавяне на WebAuthn устройство",
- "Name your device" : "Име на устройството",
- "Follow us on Twitter" : "Следвайте ни в Twitter"
+ "Set default expiration date for shares" : "Задай дата за изтичане по подразбиране за споделянията"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/br.js b/apps/settings/l10n/br.js
index b3b8db178f5..43e22c681b2 100644
--- a/apps/settings/l10n/br.js
+++ b/apps/settings/l10n/br.js
@@ -144,41 +144,6 @@ OC.L10N.register(
"No apps found for your version" : "Meziant ebet kavet evit ar stumm",
"_%n app has an update available_::_%n apps have an update available_" : ["%n meziant a zo posuple adnevesiñ","%n meziant a zo posuple adnevesiñ","%n meziant a zo posuple adnevesiñ","%n meziant a zo posuple adnevesiñ","%n meziant a zo posuple adnevesiñ"],
"Loading" : "Kargañ",
- "Type" : "Seurt",
- "Learn more" : "Deskiñ muioc'h",
- "Confirm" : "Kadarnañ",
- "Cancel" : "Nullañ",
- "Description" : "Deskrivadur",
- "View in store" : "Gwellet er stall",
- "Visit website" : "Mont war al lec'hienn",
- "Admin documentation" : "Dielvadur ar merour",
- "Developer documentation" : "Diellvadur an digeler",
- "Details" : "Munudoù",
- "All" : "Pep tra",
- "Limit app usage to groups" : "Lakaat ar meziant da veza implijet gant ar strolladoù nemetken",
- "No results" : "Disoc'h ebet",
- "Update to {version}" : "Oc'h adneveziñ da {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "N'en deus ket ar meziant ur stumm izelañ evit Nextcloud. Ur fazi a vo en dazont.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ar meziant n'en deus ket ur stumm huela eus Nextcloud merked. Ur fazi vo en dazont.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "N'eo ket posupl staliañ ar meziant peogwir n'eo ket bet graet war dro an amzalc'hioù :",
- "Categories" : "Rummadoù",
- "Documentation" : "Diellvadur",
- "Report a bug" : "Dugas ur gudenn",
- "Google Chrome for Android" : "Google Chrome evit Android",
- "This session" : "An estez-mañ",
- "Marked for remote wipe" : "Market evit bezañ lamet a bell",
- "Device settings" : "Stummoù ardivink",
- "Allow filesystem access" : "Aotreañ an tremen d'ar restroù sistem",
- "Rename" : "Adenvel",
- "Revoke" : "Digargañ",
- "Wipe device" : "Lemel an dra",
- "Device" : "Ardivink",
- "Last activity" : "Oberenn divezhañ",
- "Devices & sessions" : "Ardivinkoù ha estezioù",
- "Web, desktop and mobile clients currently logged in to your account." : "Ar c'hliant Web, burev ha hezouk a zo kenstaget en ho c'hont.",
- "Error while creating device token" : "Ur fazi a zo bet en ur groiñ jedour an ardivink",
- "App name" : "Anv meziant",
- "Create new app password" : "Krouiñ ur ger-tremen meziant nevez",
"Could not copy app password. Please copy it manually." : "N'eo ket posupl eilan ar ger-tremen meziant. Eilit anezhan gant an dorn.",
"Login" : "Anv arveriad",
"Password" : "Ger-tremen",
@@ -196,64 +161,9 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Gouzit eo vez kemeret muioc'h a blas gant ur restr sifret.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Mat eo kaout ur vackup reoliek eus o roadennoù, ha e bezit sur ober ur vackup eus an alrv'hwez sifrañ gant o roadennoù sifret.",
"This is the final warning: Do you really want to enable encryption?" : "Kemenadenn diwall divezhañ : Sur oc'h aotreañ ar sifrañ ?",
+ "Cancel" : "Nullañ",
+ "Confirm" : "Kadarnañ",
"Submit" : "Kinnig",
- "Remove group" : "Lemel strollad",
- "Current password" : "Ger-tremen hiziv",
- "New password" : "Ger-tremen nevez",
- "Change password" : "Cheñch ger-tremen",
- "Picture provided by original account" : "Skeudenn roet gant ar c'hont orin",
- "Unable to update date of birth" : "N'haller ket cheñch an deiziad ganedigezh",
- "Enter your date of birth" : "Lakaat ho teiziad ganedigezh",
- "You are a member of the following groups:" : "Er strolladoù-mañ emaoc'h",
- "No email address set" : "Chom-lec'h postel ebet lakaet",
- "Help translate" : "Sikour treiñ",
- "No language set" : "Yezh ebet lakaet",
- "Your phone number" : "O niverenn pelgomzer",
- "Add" : "Ouzhpennañ",
- "Create" : "Krouiñ",
- "Change" : "Cheñch",
- "Delete" : "Dilemel",
- "Reshare" : "Adrannañ",
- "Default language" : "Yezh dre ziouer",
- "Common languages" : "Yezh boutiñ",
- "Password change is disabled because the master key is disabled" : "N'eo ket aotreet cheñch ger-tremen peogwir n'eo ket aotreet an alc'hwez meur",
- "Display name" : "Anv ardivink",
- "Email" : "Postel",
- "Quota" : "Quota",
- "Language" : "Yezh",
- "Avatar" : "Avatar",
- "Group admin for" : "Strollad merour evit",
- "Storage location" : "Lec'h berniañ",
- "Last login" : "Mont-tre divezhañ",
- "{size} used" : "{size} implijet",
- "Resend welcome email" : "Adkas ar postel degemer mat",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Ma peus kollet o ardivink pe kuitaet ar strollad, posupl e vefe lemet a pell roadennoù Nextcloud eus tout o ardivinkoù liamet gant {userid}. Ne gerzh nemet ma eo kenstaget an ardivinkoù gant internet.",
- "Remote wipe of devices" : "Lemel a bell an ardivink",
- "Wipe {userid}'s devices" : "Lemel ardivink {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Lemet eo bet penn-da-benn kont {userid} gant pep restr personnel, roadennoù meziant, hag-all-hag-all.",
- "Account deletion" : "Lemel ar c'hont",
- "Delete {userid}'s account" : "Dilemel kont {userid}",
- "Welcome mail sent!" : "Postel degemer kaset !",
- "Done" : "Graet",
- "Edit" : "Cheñch",
- "Show storage path" : "Diskouez an hent klenkañ",
- "Show last login" : "Diskouez ar c'hennask diwezhañ",
- "Send email" : "Kas postel",
- "Default quota" : "Quota dre ziouer",
- "Select default quota" : "Choaz ar c'hota dre ziouer",
- "Server error while trying to complete WebAuthn device registration" : "Ur fazi servijour a zo bet pa oa glotaet an ardivink WebAuthn",
- "Passwordless authentication requires a secure connection." : "Ret eo kaout ur c'henstagadur sur evit un dilesa di-ger-tremen.",
- "Add WebAuthn device" : "Ouzhpenn ardivink WebAuthn",
- "Please authorize your WebAuthn device." : "Aotreit o ardivink WebAuthn.",
- "Adding your device …" : "Ouehpennit ho ardivink ...",
- "Unnamed device" : "Ardivink hep anv",
- "Passwordless Authentication" : "Dilesa hep ger-tremen",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Lakaat o c'hont da implij an dilesa hap ger-tremen en ur heuliañ ar standart FIDO2.",
- "No devices configured." : "Ardivink stummet ebet.",
- "The following devices are configured for your account:" : "Stummet eo bet an ardivinkoù ma d'ho c'hont.",
- "Your browser does not support WebAuthn." : "Ne vez ket douget WebAuthn gant o furcher.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Evel ar merour eo posupl deoc'h stumañ pizh penaos e vez rannet. Sellit ouz an diellvadur evit muioc'h a ditouroù.",
- "Admins" : "Merourien",
"Sending…" : "O kas...",
"Email sent" : "Postel kaset",
"Location" : "Lec'hiadur",
@@ -261,9 +171,11 @@ OC.L10N.register(
"About" : "Diwar-benn",
"Date of birth" : "Deiziad ganedigezh",
"Full name" : "Anv klok",
+ "Email" : "Postel",
"Phone number" : "Niverenn bellgomz",
"Role" : "Roll",
"Website" : "Lec'hienn web",
+ "Language" : "Yezh",
"Locale" : "Diabarzh",
"Your apps" : "Ho meziantoù",
"Active apps" : "Meziantoù lakaet en dro",
@@ -272,9 +184,11 @@ OC.L10N.register(
"App bundles" : "Strolladoù meziant",
"Featured apps" : "Meziant perzhiet",
"Hide" : "Kouacha",
+ "Update to {version}" : "Oc'h adneveziñ da {version}",
"Download and enable" : "Pellgargañ ha aotreañ",
"Disable" : "Disaotreañ",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "N'eo ket ar meziant keverlec'h gant stumm Nextcloud. Ma kendalc'hit e o posupl deoc'h staliañ ar meziant. Taolit evez, ne labouro ket ar meziant evel ma zlefe.",
+ "{size} used" : "{size} implijet",
"Unknown" : "Dianv",
"Never" : "James",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aotreet eo bet ar meziant mes ezomm e deus bezhan adnevesaet. Kaset a voc'h d'ar bajenn adneveziñ a benn 5 eilenn.",
@@ -285,6 +199,8 @@ OC.L10N.register(
"Error while updating device token scope" : "Ur fazi a zo bet en ur adnevesiñ pellder ar jedouer",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Re a goulennoù a zo bet eus ar rouedat. Klaskit en dro diwezhatoc'h pe galvit ho merour m'az eus ur fazi.",
"Error" : "Fazi",
+ "Default quota" : "Quota dre ziouer",
+ "Documentation" : "Diellvadur",
"Forum" : "Forum",
"Legal notice" : "Meneg lezenn",
"Open documentation" : "Digeriñ an dielvadur",
@@ -299,6 +215,7 @@ OC.L10N.register(
"Credentials" : "Kretaatoù",
"SMTP Password" : "Ger-tremen SMTP",
"Save" : "Enrollañ",
+ "Send email" : "Kas postel",
"Security & setup warnings" : "Kemmenadennoù suretez ha stumm",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Pouezus eo evit ar surentez hag ar mont en dro ho azgoulenn e vefe pep tra stummet mat. Evit sikour ac'hanoc'h e vez graet gwiradennoù otomatek. Sellit ouz an diellvadur liammet evit muioc'h a ditouroù.",
"All checks passed." : "Pep gwiriekadenn tremenat.",
@@ -313,14 +230,6 @@ OC.L10N.register(
"Check out our blog" : "Sellit ouzh hon vlog",
"Subscribe to our newsletter" : "Koumannantit d'hon kemenadennoù nevesadur",
"Use a second factor besides your password to increase security for your account." : "Implijour un eil-elfenn d'ho ger-tremen a gwella urentez o c'hont.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Mankout a ra rollioù er roadenn-diaz. Abalamour e kemer amzer ouzhpennañ rollioù e taolennoù bras, n'int ket bet lakaet en un doare otomatek. En ul lakaat da dreiñ \"occ db:add-missing-indices\" eo posupl ouzhpennañ ar rollioù a vank gant an dorn pa vo an azgoulenn o treiñ. Ur wech ar rollioù ouzhpennet, goulennoù savet d'an taolennoù a vo buanaet.",
- "Set default expiration date for shares" : "Lakaat un deizat termen dre ziouer evit ar rannañ",
- "New user" : "Implijer nevez",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} implijer","{userCount} implijer","{userCount} implijer","{userCount} implijer","{userCount} implijer"],
- "Username" : "anv implijer",
- "User backend" : "Backen implijer",
- "Server error while trying to add WebAuthn device" : "Ur fazi servijour a zo bet pa oa ouzhpennet an ardivink WebAuthn",
- "Name your device" : "Anvit o ardivink",
- "Follow us on Twitter" : "Heuliit ac'henomp war Twitter"
+ "Set default expiration date for shares" : "Lakaat un deizat termen dre ziouer evit ar rannañ"
},
"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");
diff --git a/apps/settings/l10n/br.json b/apps/settings/l10n/br.json
index 359c122efa0..c039235f05d 100644
--- a/apps/settings/l10n/br.json
+++ b/apps/settings/l10n/br.json
@@ -142,41 +142,6 @@
"No apps found for your version" : "Meziant ebet kavet evit ar stumm",
"_%n app has an update available_::_%n apps have an update available_" : ["%n meziant a zo posuple adnevesiñ","%n meziant a zo posuple adnevesiñ","%n meziant a zo posuple adnevesiñ","%n meziant a zo posuple adnevesiñ","%n meziant a zo posuple adnevesiñ"],
"Loading" : "Kargañ",
- "Type" : "Seurt",
- "Learn more" : "Deskiñ muioc'h",
- "Confirm" : "Kadarnañ",
- "Cancel" : "Nullañ",
- "Description" : "Deskrivadur",
- "View in store" : "Gwellet er stall",
- "Visit website" : "Mont war al lec'hienn",
- "Admin documentation" : "Dielvadur ar merour",
- "Developer documentation" : "Diellvadur an digeler",
- "Details" : "Munudoù",
- "All" : "Pep tra",
- "Limit app usage to groups" : "Lakaat ar meziant da veza implijet gant ar strolladoù nemetken",
- "No results" : "Disoc'h ebet",
- "Update to {version}" : "Oc'h adneveziñ da {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "N'en deus ket ar meziant ur stumm izelañ evit Nextcloud. Ur fazi a vo en dazont.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ar meziant n'en deus ket ur stumm huela eus Nextcloud merked. Ur fazi vo en dazont.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "N'eo ket posupl staliañ ar meziant peogwir n'eo ket bet graet war dro an amzalc'hioù :",
- "Categories" : "Rummadoù",
- "Documentation" : "Diellvadur",
- "Report a bug" : "Dugas ur gudenn",
- "Google Chrome for Android" : "Google Chrome evit Android",
- "This session" : "An estez-mañ",
- "Marked for remote wipe" : "Market evit bezañ lamet a bell",
- "Device settings" : "Stummoù ardivink",
- "Allow filesystem access" : "Aotreañ an tremen d'ar restroù sistem",
- "Rename" : "Adenvel",
- "Revoke" : "Digargañ",
- "Wipe device" : "Lemel an dra",
- "Device" : "Ardivink",
- "Last activity" : "Oberenn divezhañ",
- "Devices & sessions" : "Ardivinkoù ha estezioù",
- "Web, desktop and mobile clients currently logged in to your account." : "Ar c'hliant Web, burev ha hezouk a zo kenstaget en ho c'hont.",
- "Error while creating device token" : "Ur fazi a zo bet en ur groiñ jedour an ardivink",
- "App name" : "Anv meziant",
- "Create new app password" : "Krouiñ ur ger-tremen meziant nevez",
"Could not copy app password. Please copy it manually." : "N'eo ket posupl eilan ar ger-tremen meziant. Eilit anezhan gant an dorn.",
"Login" : "Anv arveriad",
"Password" : "Ger-tremen",
@@ -194,64 +159,9 @@
"Be aware that encryption always increases the file size." : "Gouzit eo vez kemeret muioc'h a blas gant ur restr sifret.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Mat eo kaout ur vackup reoliek eus o roadennoù, ha e bezit sur ober ur vackup eus an alrv'hwez sifrañ gant o roadennoù sifret.",
"This is the final warning: Do you really want to enable encryption?" : "Kemenadenn diwall divezhañ : Sur oc'h aotreañ ar sifrañ ?",
+ "Cancel" : "Nullañ",
+ "Confirm" : "Kadarnañ",
"Submit" : "Kinnig",
- "Remove group" : "Lemel strollad",
- "Current password" : "Ger-tremen hiziv",
- "New password" : "Ger-tremen nevez",
- "Change password" : "Cheñch ger-tremen",
- "Picture provided by original account" : "Skeudenn roet gant ar c'hont orin",
- "Unable to update date of birth" : "N'haller ket cheñch an deiziad ganedigezh",
- "Enter your date of birth" : "Lakaat ho teiziad ganedigezh",
- "You are a member of the following groups:" : "Er strolladoù-mañ emaoc'h",
- "No email address set" : "Chom-lec'h postel ebet lakaet",
- "Help translate" : "Sikour treiñ",
- "No language set" : "Yezh ebet lakaet",
- "Your phone number" : "O niverenn pelgomzer",
- "Add" : "Ouzhpennañ",
- "Create" : "Krouiñ",
- "Change" : "Cheñch",
- "Delete" : "Dilemel",
- "Reshare" : "Adrannañ",
- "Default language" : "Yezh dre ziouer",
- "Common languages" : "Yezh boutiñ",
- "Password change is disabled because the master key is disabled" : "N'eo ket aotreet cheñch ger-tremen peogwir n'eo ket aotreet an alc'hwez meur",
- "Display name" : "Anv ardivink",
- "Email" : "Postel",
- "Quota" : "Quota",
- "Language" : "Yezh",
- "Avatar" : "Avatar",
- "Group admin for" : "Strollad merour evit",
- "Storage location" : "Lec'h berniañ",
- "Last login" : "Mont-tre divezhañ",
- "{size} used" : "{size} implijet",
- "Resend welcome email" : "Adkas ar postel degemer mat",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Ma peus kollet o ardivink pe kuitaet ar strollad, posupl e vefe lemet a pell roadennoù Nextcloud eus tout o ardivinkoù liamet gant {userid}. Ne gerzh nemet ma eo kenstaget an ardivinkoù gant internet.",
- "Remote wipe of devices" : "Lemel a bell an ardivink",
- "Wipe {userid}'s devices" : "Lemel ardivink {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Lemet eo bet penn-da-benn kont {userid} gant pep restr personnel, roadennoù meziant, hag-all-hag-all.",
- "Account deletion" : "Lemel ar c'hont",
- "Delete {userid}'s account" : "Dilemel kont {userid}",
- "Welcome mail sent!" : "Postel degemer kaset !",
- "Done" : "Graet",
- "Edit" : "Cheñch",
- "Show storage path" : "Diskouez an hent klenkañ",
- "Show last login" : "Diskouez ar c'hennask diwezhañ",
- "Send email" : "Kas postel",
- "Default quota" : "Quota dre ziouer",
- "Select default quota" : "Choaz ar c'hota dre ziouer",
- "Server error while trying to complete WebAuthn device registration" : "Ur fazi servijour a zo bet pa oa glotaet an ardivink WebAuthn",
- "Passwordless authentication requires a secure connection." : "Ret eo kaout ur c'henstagadur sur evit un dilesa di-ger-tremen.",
- "Add WebAuthn device" : "Ouzhpenn ardivink WebAuthn",
- "Please authorize your WebAuthn device." : "Aotreit o ardivink WebAuthn.",
- "Adding your device …" : "Ouehpennit ho ardivink ...",
- "Unnamed device" : "Ardivink hep anv",
- "Passwordless Authentication" : "Dilesa hep ger-tremen",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Lakaat o c'hont da implij an dilesa hap ger-tremen en ur heuliañ ar standart FIDO2.",
- "No devices configured." : "Ardivink stummet ebet.",
- "The following devices are configured for your account:" : "Stummet eo bet an ardivinkoù ma d'ho c'hont.",
- "Your browser does not support WebAuthn." : "Ne vez ket douget WebAuthn gant o furcher.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Evel ar merour eo posupl deoc'h stumañ pizh penaos e vez rannet. Sellit ouz an diellvadur evit muioc'h a ditouroù.",
- "Admins" : "Merourien",
"Sending…" : "O kas...",
"Email sent" : "Postel kaset",
"Location" : "Lec'hiadur",
@@ -259,9 +169,11 @@
"About" : "Diwar-benn",
"Date of birth" : "Deiziad ganedigezh",
"Full name" : "Anv klok",
+ "Email" : "Postel",
"Phone number" : "Niverenn bellgomz",
"Role" : "Roll",
"Website" : "Lec'hienn web",
+ "Language" : "Yezh",
"Locale" : "Diabarzh",
"Your apps" : "Ho meziantoù",
"Active apps" : "Meziantoù lakaet en dro",
@@ -270,9 +182,11 @@
"App bundles" : "Strolladoù meziant",
"Featured apps" : "Meziant perzhiet",
"Hide" : "Kouacha",
+ "Update to {version}" : "Oc'h adneveziñ da {version}",
"Download and enable" : "Pellgargañ ha aotreañ",
"Disable" : "Disaotreañ",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "N'eo ket ar meziant keverlec'h gant stumm Nextcloud. Ma kendalc'hit e o posupl deoc'h staliañ ar meziant. Taolit evez, ne labouro ket ar meziant evel ma zlefe.",
+ "{size} used" : "{size} implijet",
"Unknown" : "Dianv",
"Never" : "James",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aotreet eo bet ar meziant mes ezomm e deus bezhan adnevesaet. Kaset a voc'h d'ar bajenn adneveziñ a benn 5 eilenn.",
@@ -283,6 +197,8 @@
"Error while updating device token scope" : "Ur fazi a zo bet en ur adnevesiñ pellder ar jedouer",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Re a goulennoù a zo bet eus ar rouedat. Klaskit en dro diwezhatoc'h pe galvit ho merour m'az eus ur fazi.",
"Error" : "Fazi",
+ "Default quota" : "Quota dre ziouer",
+ "Documentation" : "Diellvadur",
"Forum" : "Forum",
"Legal notice" : "Meneg lezenn",
"Open documentation" : "Digeriñ an dielvadur",
@@ -297,6 +213,7 @@
"Credentials" : "Kretaatoù",
"SMTP Password" : "Ger-tremen SMTP",
"Save" : "Enrollañ",
+ "Send email" : "Kas postel",
"Security & setup warnings" : "Kemmenadennoù suretez ha stumm",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Pouezus eo evit ar surentez hag ar mont en dro ho azgoulenn e vefe pep tra stummet mat. Evit sikour ac'hanoc'h e vez graet gwiradennoù otomatek. Sellit ouz an diellvadur liammet evit muioc'h a ditouroù.",
"All checks passed." : "Pep gwiriekadenn tremenat.",
@@ -311,14 +228,6 @@
"Check out our blog" : "Sellit ouzh hon vlog",
"Subscribe to our newsletter" : "Koumannantit d'hon kemenadennoù nevesadur",
"Use a second factor besides your password to increase security for your account." : "Implijour un eil-elfenn d'ho ger-tremen a gwella urentez o c'hont.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Mankout a ra rollioù er roadenn-diaz. Abalamour e kemer amzer ouzhpennañ rollioù e taolennoù bras, n'int ket bet lakaet en un doare otomatek. En ul lakaat da dreiñ \"occ db:add-missing-indices\" eo posupl ouzhpennañ ar rollioù a vank gant an dorn pa vo an azgoulenn o treiñ. Ur wech ar rollioù ouzhpennet, goulennoù savet d'an taolennoù a vo buanaet.",
- "Set default expiration date for shares" : "Lakaat un deizat termen dre ziouer evit ar rannañ",
- "New user" : "Implijer nevez",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} implijer","{userCount} implijer","{userCount} implijer","{userCount} implijer","{userCount} implijer"],
- "Username" : "anv implijer",
- "User backend" : "Backen implijer",
- "Server error while trying to add WebAuthn device" : "Ur fazi servijour a zo bet pa oa ouzhpennet an ardivink WebAuthn",
- "Name your device" : "Anvit o ardivink",
- "Follow us on Twitter" : "Heuliit ac'henomp war Twitter"
+ "Set default expiration date for shares" : "Lakaat un deizat termen dre ziouer evit ar rannañ"
},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/bs.js b/apps/settings/l10n/bs.js
deleted file mode 100644
index 0fbc5ad235c..00000000000
--- a/apps/settings/l10n/bs.js
+++ /dev/null
@@ -1,104 +0,0 @@
-OC.L10N.register(
- "settings",
- {
- "Saved" : "Spremljeno",
- "Email sent" : "E-pošta je poslana",
- "Local" : "Lokalno",
- "Unable to change password" : "Promjena lozinke nije moguća",
- "Very weak password" : "Veoma slaba lozinka",
- "Weak password" : "Slaba lozinka",
- "So-so password" : "Tu-i-tamo lozinka",
- "Good password" : "Dobra lozinka",
- "Strong password" : "Jaka lozinka",
- "Select a profile picture" : "Odaberi sliku profila",
- "Groups" : "Grupe",
- "Couldn't remove app." : "Nije moguće ukloniti aplikaciju.",
- "Couldn't update app." : "Ažuriranje aplikacije nije moguće.",
- "Wrong password" : "Pogrešna lozinka",
- "No user supplied" : "Nijedan korisnik nije dostavljen",
- "Authentication error" : "Grešna autentifikacije",
- "Wrong admin recovery password. Please check the password and try again." : "Pogrešna admin lozinka za povratak. Molim provjerite lozinku i pokušajte ponovno.",
- "You need to set your user email before being able to send test emails." : "Prije nego li ste u mogućnosti slati testnu email trebate postaviti svoj korisnički email.",
- "Invalid mail address" : "Nevažeća adresa e-pošte",
- "Unable to change full name" : "Puno ime nije moguće promijeniti",
- "Your %s account was created" : "Vaš %s račun je kreiran",
- "Apps" : "Aplikacije",
- "Settings" : "Podešavanje",
- "Personal" : "Osobno",
- "Sharing" : "Dijeljenje",
- "Create" : "Ustvari",
- "Delete" : "Izbriši",
- "Unlimited" : "Neograničeno",
- "All" : "Sve",
- "Disable" : "Onemogući",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ova aplikacija se ne može instalirati zbog slijedećih neispunjenih ovisnosti:",
- "Rename" : "Preimenuj",
- "Username" : "Korisničko ime",
- "Password" : "Lozinka",
- "Done" : "Done",
- "Copied!" : "Kopirano",
- "Cancel" : "Odustani",
- "Email" : "E-pošta",
- "Quota" : "Kvota",
- "Language" : "Jezik",
- "Add" : "Dodaj",
- "Updates" : "Ažuriranja",
- "Admins" : "Administratori",
- "Show user backend" : "Prikaži korisničku pozadinu (backend)",
- "Send email to new user" : "Pošalji e-poštu novom korisniku",
- "Enable" : "Omogući",
- "Documentation" : "Dokumentacija",
- "Forum" : "Forum",
- "None" : "Ništa",
- "Login" : "Prijava",
- "Plain" : "Čisti tekst",
- "NT LAN Manager" : "NT LAN menedžer",
- "Send mode" : "Način rada za slanje",
- "Encryption" : "Šifriranje",
- "From address" : "S adrese",
- "Authentication method" : "Metoda autentifikacije",
- "Authentication required" : "Potrebna autentifikacija",
- "Server address" : "Adresa servera",
- "Port" : "Priključak",
- "Credentials" : "Vjerodajnice",
- "SMTP Username" : "SMTP Korisničko ime",
- "SMTP Password" : "SMPT Lozinka",
- "Save" : "Spremi",
- "Test email settings" : "Postavke za testnu e-poštu",
- "Send email" : "Pošalji e-poštu",
- "Version" : "Verzija",
- "Allow apps to use the Share API" : "Dozvoli aplikacijama korištenje Share API",
- "Enforce expiration date" : "Nametni datum isteka",
- "Allow public uploads" : "Dozvoli javno učitavanje",
- "Enforce password protection" : "Nametni zaštitu lozinke",
- "Allow resharing" : "Dopustite ponovno dijeljenje",
- "Restrict users to only share with users in their groups" : "Ograniči korisnike na međusobno dijeljenje resursa samo s korisnicima unutar svoje grupe",
- "Exclude groups from sharing" : "Isključite grupe iz dijeljenja",
- "These groups will still be able to receive shares, but not to initiate them." : "Ove će grupe i dalje moći primati dijeljene resurse, ali ne i inicirati ih",
- "Profile picture" : "Slika profila",
- "Upload new" : "Učitaj novu",
- "Remove image" : "Ukloni sliku",
- "Your email address" : "Vaša adresa e-pošte",
- "Address" : "Adresa",
- "Website" : "Web-prezentacija",
- "Help translate" : "Pomozi prevesti",
- "Current password" : "Trenutna lozinka",
- "New password" : "Nova lozinka",
- "Change password" : "Promijeni lozinku",
- "Valid until {date}" : "Validno do {date}",
- "Contacts" : "Kontakti",
- "Public" : "Javno",
- "by" : "od strane",
- "Close" : "Zatvori",
- "Everyone" : "Svi",
- "Common Name" : "Opće Ime",
- "Valid until" : "Validno do",
- "Issued By" : "Izdano od",
- "Valid until %s" : "Validno do %s",
- "mail" : "pošta",
- "Execute one task with each page loaded" : "Izvrši jedan zadatak sa svakom učitanom stranicom",
- "Expire after " : "Istek nakon",
- "days" : "dana",
- "Allow users to share via link" : "Dozvoli korisnicima dijeljenje putem veze"
-},
-"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/settings/l10n/bs.json b/apps/settings/l10n/bs.json
deleted file mode 100644
index 40e626a4cd0..00000000000
--- a/apps/settings/l10n/bs.json
+++ /dev/null
@@ -1,102 +0,0 @@
-{ "translations": {
- "Saved" : "Spremljeno",
- "Email sent" : "E-pošta je poslana",
- "Local" : "Lokalno",
- "Unable to change password" : "Promjena lozinke nije moguća",
- "Very weak password" : "Veoma slaba lozinka",
- "Weak password" : "Slaba lozinka",
- "So-so password" : "Tu-i-tamo lozinka",
- "Good password" : "Dobra lozinka",
- "Strong password" : "Jaka lozinka",
- "Select a profile picture" : "Odaberi sliku profila",
- "Groups" : "Grupe",
- "Couldn't remove app." : "Nije moguće ukloniti aplikaciju.",
- "Couldn't update app." : "Ažuriranje aplikacije nije moguće.",
- "Wrong password" : "Pogrešna lozinka",
- "No user supplied" : "Nijedan korisnik nije dostavljen",
- "Authentication error" : "Grešna autentifikacije",
- "Wrong admin recovery password. Please check the password and try again." : "Pogrešna admin lozinka za povratak. Molim provjerite lozinku i pokušajte ponovno.",
- "You need to set your user email before being able to send test emails." : "Prije nego li ste u mogućnosti slati testnu email trebate postaviti svoj korisnički email.",
- "Invalid mail address" : "Nevažeća adresa e-pošte",
- "Unable to change full name" : "Puno ime nije moguće promijeniti",
- "Your %s account was created" : "Vaš %s račun je kreiran",
- "Apps" : "Aplikacije",
- "Settings" : "Podešavanje",
- "Personal" : "Osobno",
- "Sharing" : "Dijeljenje",
- "Create" : "Ustvari",
- "Delete" : "Izbriši",
- "Unlimited" : "Neograničeno",
- "All" : "Sve",
- "Disable" : "Onemogući",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ova aplikacija se ne može instalirati zbog slijedećih neispunjenih ovisnosti:",
- "Rename" : "Preimenuj",
- "Username" : "Korisničko ime",
- "Password" : "Lozinka",
- "Done" : "Done",
- "Copied!" : "Kopirano",
- "Cancel" : "Odustani",
- "Email" : "E-pošta",
- "Quota" : "Kvota",
- "Language" : "Jezik",
- "Add" : "Dodaj",
- "Updates" : "Ažuriranja",
- "Admins" : "Administratori",
- "Show user backend" : "Prikaži korisničku pozadinu (backend)",
- "Send email to new user" : "Pošalji e-poštu novom korisniku",
- "Enable" : "Omogući",
- "Documentation" : "Dokumentacija",
- "Forum" : "Forum",
- "None" : "Ništa",
- "Login" : "Prijava",
- "Plain" : "Čisti tekst",
- "NT LAN Manager" : "NT LAN menedžer",
- "Send mode" : "Način rada za slanje",
- "Encryption" : "Šifriranje",
- "From address" : "S adrese",
- "Authentication method" : "Metoda autentifikacije",
- "Authentication required" : "Potrebna autentifikacija",
- "Server address" : "Adresa servera",
- "Port" : "Priključak",
- "Credentials" : "Vjerodajnice",
- "SMTP Username" : "SMTP Korisničko ime",
- "SMTP Password" : "SMPT Lozinka",
- "Save" : "Spremi",
- "Test email settings" : "Postavke za testnu e-poštu",
- "Send email" : "Pošalji e-poštu",
- "Version" : "Verzija",
- "Allow apps to use the Share API" : "Dozvoli aplikacijama korištenje Share API",
- "Enforce expiration date" : "Nametni datum isteka",
- "Allow public uploads" : "Dozvoli javno učitavanje",
- "Enforce password protection" : "Nametni zaštitu lozinke",
- "Allow resharing" : "Dopustite ponovno dijeljenje",
- "Restrict users to only share with users in their groups" : "Ograniči korisnike na međusobno dijeljenje resursa samo s korisnicima unutar svoje grupe",
- "Exclude groups from sharing" : "Isključite grupe iz dijeljenja",
- "These groups will still be able to receive shares, but not to initiate them." : "Ove će grupe i dalje moći primati dijeljene resurse, ali ne i inicirati ih",
- "Profile picture" : "Slika profila",
- "Upload new" : "Učitaj novu",
- "Remove image" : "Ukloni sliku",
- "Your email address" : "Vaša adresa e-pošte",
- "Address" : "Adresa",
- "Website" : "Web-prezentacija",
- "Help translate" : "Pomozi prevesti",
- "Current password" : "Trenutna lozinka",
- "New password" : "Nova lozinka",
- "Change password" : "Promijeni lozinku",
- "Valid until {date}" : "Validno do {date}",
- "Contacts" : "Kontakti",
- "Public" : "Javno",
- "by" : "od strane",
- "Close" : "Zatvori",
- "Everyone" : "Svi",
- "Common Name" : "Opće Ime",
- "Valid until" : "Validno do",
- "Issued By" : "Izdano od",
- "Valid until %s" : "Validno do %s",
- "mail" : "pošta",
- "Execute one task with each page loaded" : "Izvrši jedan zadatak sa svakom učitanom stranicom",
- "Expire after " : "Istek nakon",
- "days" : "dana",
- "Allow users to share via link" : "Dozvoli korisnicima dijeljenje putem veze"
-},"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/settings/l10n/ca.js b/apps/settings/l10n/ca.js
index 0b1ec0f6dca..d4678e33631 100644
--- a/apps/settings/l10n/ca.js
+++ b/apps/settings/l10n/ca.js
@@ -294,7 +294,6 @@ OC.L10N.register(
"HTTP headers" : "Capçaleres HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- La capçalera HTTP `%1$s` no està configurada en `%2$s`. És possible que algunes funcions no funcionin correctament, ja que es recomana ajustar aquesta configuració en conseqüència.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- La capçalera HTTP `%1$s` no està configurada en `%2$s`. Aquest és un risc potencial de seguretat o privadesa, ja que es recomana ajustar aquesta configuració en conseqüència.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- La capçalera HTTP `%1$s` no conté `%2$s`. Aquest és un risc potencial de seguretat o privadesa, ja que es recomana ajustar aquesta configuració en conseqüència.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- La capçalera HTTP `%1$s` no està configurada a `%2$s`, `%3$s`, `%4$s`, `%5$s` o `%6$s`. Això pot filtrar informació de referència. Vegeu la {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- La capçalera HTTP `Strict-Transport-Security` no està configurada com a mínim en `%d` segons (valor actual: `%d`). Per millorar la seguretat, es recomana utilitzar una política HSTS llarga.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- La capçalera HTTP `Strict-Transport-Security` té un format incorrecte: `%s`. Per millorar la seguretat, es recomana activar HSTS.",
@@ -438,97 +437,6 @@ OC.L10N.register(
"Could not load section content from app store." : "No s'ha pogut carregar el contingut de la secció del magatzem d'aplicacions.",
"Loading" : "S'està carregant",
"Fetching the latest news…" : "Recollint les darreres notícies…",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Diapositiva següent",
- "Choose slide to display" : "Trieu la diapositiva per mostrar",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Dimoni",
- "Deploy Daemon" : "Desplega Dimoni",
- "Type" : "Tipus",
- "Display Name" : "Nom d'usuari",
- "GPUs support" : "Suport de GPU",
- "Compute device" : "Dispositiu de computació",
- "Advanced deploy options" : "Opcions de desplegament avançades",
- "Edit ExApp deploy options before installation" : "Editeu les opcions de desplegament d'ExApp abans de la instal·lació",
- "Configured ExApp deploy options. Can be set only during installation" : "Opcions de desplegament d'ExApp configurades. Només es pot configurar durant la instal·lació",
- "Learn more" : "Més informació",
- "Environment variables" : "Variables d'entorn",
- "ExApp container environment variables" : "Variables d'entorn del contenidor ExApp",
- "No environment variables defined" : "No s'han definit variables d'entorn",
- "Mounts" : "Munts",
- "Define host folder mounts to bind to the ExApp container" : "Definiu els muntatges de carpetes host per vincular-los al contenidor ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Ha d'existir al servidor del dimoni Deploy abans d'instal·lar l'ExApp",
- "Host path" : "Camí del servidor",
- "Container path" : "Camí del contenidor",
- "Read-only" : "Només lectura",
- "Remove mount" : "Suprimir el muntatge",
- "New mount" : "Muntatge nou",
- "Enter path to host folder" : "Introduïu el camí a la carpeta servidora",
- "Enter path to container folder" : "Introduïu el camí a la carpeta contenidora",
- "Toggle read-only mode" : "Commuta el mode de només lectura",
- "Confirm adding new mount" : "Confirmeu l'addició d'un muntatge nou",
- "Confirm" : "Confirma",
- "Cancel adding mount" : "Cancel·la l'addició de muntatge",
- "Cancel" : "Cancel·la",
- "Add mount" : "Afegeix muntatge",
- "ExApp container mounts" : "Muntatge de contenidors ExApp",
- "No mounts defined" : "No s'han definit muntatges",
- "Description" : "Descripció",
- "View in store" : "Mostra-ho al magatzem",
- "Visit website" : "Visita el lloc web",
- "Usage documentation" : "Documentació d'ús",
- "Admin documentation" : "Documentació per a administradors",
- "Developer documentation" : "Documentació per a desenvolupadors",
- "Details" : "Detalls",
- "All" : "Tots",
- "Limit app usage to groups" : "Limita l’ús de l’aplicació als grups",
- "No results" : "No hi ha resultats",
- "Update to {version}" : "Actualitza a {version}",
- "Deploy options" : "Opcions de desplegament",
- "Default Deploy daemon is not accessible" : "El dimoni de desplegament per defecte no és accessible",
- "Delete data on remove" : "Suprimir dades en eliminar",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Aquesta aplicació no té cap versió mínima de Nextcloud assignada. Això serà un error en el futur.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aquesta aplicació no té cap versió màxima de Nextcloud assignada. Això serà un error en el futur.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:",
- "Latest updated" : "Darrera actualització",
- "Author" : "Autor/a",
- "Categories" : "Categories",
- "Resources" : "Recursos",
- "Documentation" : "Documentació",
- "Interact" : "Interactuar",
- "Report a bug" : "Informa d'un error",
- "Request feature" : "Sol·licitud de característica",
- "Ask questions or discuss" : "Fer preguntes o debatre",
- "Rate the app" : "Valoreu l'aplicació",
- "Rate" : "Puntua",
- "Changelog" : "Registre de canvis",
- "Google Chrome for Android" : "Google Chrome per a Android",
- "{productName} iOS app" : "Aplicació iOS de {productName}",
- "{productName} Android app" : "Aplicació Android de {productName}",
- "{productName} Talk for iOS" : "Talk for iOS de {productName}",
- "{productName} Talk for Android" : "Talk for Android de {productName}",
- "Sync client" : "Client de sincronització",
- "This session" : "Aquesta sessió",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nom del dispositiu",
- "Cancel renaming" : "Cancel·la el canvi de nom",
- "Save new name" : "Desar el nou nom",
- "Marked for remote wipe" : "Marcat per netejar remotament",
- "Device settings" : "Paràmetres del dispositiu",
- "Allow filesystem access" : "Permet l'accés al sistema de fitxers",
- "Rename" : "Canvia el nom",
- "Revoke" : "Revoca",
- "Wipe device" : "Esborra el dispositiu",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revocar aquest testimoni podria evitar la neteja del dispositiu si encara no ha començat.",
- "Device" : "Dispositiu",
- "Last activity" : "Darrera activitat",
- "Devices & sessions" : "Dispositius i sessions",
- "Web, desktop and mobile clients currently logged in to your account." : "Clients Web, d'escriptori i mòbils connectats actualment al vostre compte.",
- "Error while creating device token" : "S'ha produït un error mentre es creava el testimoni del dispositiu",
- "App name" : "Nom de l'aplicació",
- "Create new app password" : "Crea una nova contrasenya d'aplicació",
"App password copied!" : "S'ha copiat la contrasenya de l'aplicació!",
"Copy app password" : "Copia la contrasenya de l'aplicació",
"Login name copied!" : "S'ha copiat el nom d'inici de sessió!",
@@ -556,6 +464,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "No s'ha pogut actualitzar els paràmetres predeterminats del perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Habilita o deshabilita el perfil de manera predeterminada per als comptes nous.",
+ "Password confirmation is required" : "Cal una confirmació de la contrasenya",
"Failed to save setting" : "No s'ha pogut desar el paràmetre",
"{app}'s declarative setting field: {name}" : "Camp de paràmetre declaratiu de {app}: {name}",
"Unable to update server side encryption config" : "No es pot actualitzar la configuració del xifratge de la banda del servidor",
@@ -578,202 +487,11 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Sempre és bó crear còpies de seguretat de les vostres dades amb regularitat, en el cas de xifratge assegureu-vos de desar les claus de xifratge juntament amb les vostres dades a la còpia de seguretat.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulteu la documentació d'administració sobre com xifrar també manualment els fitxers existents.",
"This is the final warning: Do you really want to enable encryption?" : "Avís final: Realment voleu activar xifratge?",
- "Failed to remove group \"{group}\"" : "No s'ha pogut suprimir el grup \"{group}\"",
"Please confirm the group removal" : "Confirmeu l'eliminació del grup",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Esteu a punt d'eliminar el grup \"{group}\". Els comptes NO es suprimiràn.",
+ "Cancel" : "Cancel·la",
+ "Confirm" : "Confirma",
"Submit" : "Envia",
"Rename group" : "Canvia el nom del grup",
- "Remove group" : "Suprimir el grup",
- "Current password" : "Contrasenya actual",
- "New password" : "Contrasenya nova",
- "Change password" : "Canvia la contrasenya",
- "Choose your profile picture" : "Trieu la vostra imatge de perfil",
- "Please select a valid png or jpg file" : "Seleccioneu un fitxer png o jpg vàlid",
- "Error setting profile picture" : "Error en establir la imatge de perfil",
- "Error cropping profile picture" : "Error en retallar la imatge de perfil",
- "Error saving profile picture" : "Error en desar la imatge de perfil",
- "Error removing profile picture" : "Error en treure la imatge de perfil",
- "Your profile picture" : "La vostra imatge de perfil",
- "Upload profile picture" : "Pujar la imatge de perfil",
- "Choose profile picture from Files" : "Trieu la imatge des de Fitxers",
- "Remove profile picture" : "Treu la imatge de perfil",
- "The file must be a PNG or JPG" : "El fitxer ha de ser PNG o JPG",
- "Picture provided by original account" : "Imatge proporcionada pel compte original",
- "Set as profile picture" : "Estableix com a imatge de perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tingueu en compte que la imatge de perfil pot tardar fins a 24 hores a actualitzar-se a tot arreu.",
- "Your biography. Markdown is supported." : "La teva biografia. S'admet Markdown.",
- "Unable to update date of birth" : "No es pot actualitzar la data de naixement",
- "Enter your date of birth" : "Introduïu la vostra data de naixement",
- "You are using {s}{usage}{/s}" : "Esteu utilitzant {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Esteu utilitzant {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Sou membre dels grups següents:",
- "Your full name" : "El vostre nom complet",
- "Email options" : "Opcions de correu electrònic",
- "Options for additional email address {index}" : "Opcions per a l'adreça de correu electrònic addicional {index}",
- "Remove primary email" : "Treu l'adreça de correu electrònic principal",
- "Delete email" : "Treu l'adreça de correu electrònic",
- "This address is not confirmed" : "Aquesta adreça no està confirmada",
- "Unset as primary email" : "Desactivat com a correu electrònic principal",
- "Set as primary email" : "Estableix com a correu electrònic principal",
- "Additional email address {index}" : "Adreça de correu electrònic addicional {index}",
- "Unable to delete primary email address" : "No es pot suprimir l'adreça de correu electrònic principal",
- "Unable to update primary email address" : "No es pot actualitzar l'adreça de correu electrònic principal",
- "Unable to add additional email address" : "No es pot afegir una adreça de correu electrònic addicional",
- "Unable to update additional email address" : "No es pot actualitzar l'adreça de correu electrònic addicional",
- "Unable to delete additional email address" : "No es pot suprimir l'adreça de correu electrònic addicional",
- "Primary email for password reset and notifications" : "Adreça de correu electrònic principal per a restablir la contrasenya i per a les notificacions",
- "No email address set" : "No s'ha establert cap adreça de correu electrònic",
- "Your handle" : "El teu identificador",
- "Derived from your locale ({weekDayName})" : "Derivat de la vostra configuració regional ({weekDayName})",
- "Unable to update first day of week" : "No es pot actualitzar el primer dia de la setmana",
- "Day to use as the first day of week" : "Dia per utilitzar com a primer dia de la setmana",
- "Your headline" : "El teu titular",
- "Unable to update language" : "No es pot actualitzar la llengua",
- "Languages" : "Llengües",
- "Help translate" : "Ajudeu-nos amb la traducció",
- "No language set" : "No s'ha establert cap idioma",
- "Unable to update locale" : "No es pot actualitzar la configuració local",
- "Locales" : "Localitzacions",
- "Week starts on {firstDayOfWeek}" : "La setmana comença el {firstDayOfWeek}",
- "No locale set" : "No s'ha establert cap configuració local",
- "Your city" : "La teva ciutat",
- "Your organisation" : "La vostra organització",
- "Your phone number" : "El vostre número de telèfon",
- "Edit your Profile visibility" : "Edició de la visibilitat del vostre perfil",
- "Unable to update profile enabled state" : "No es pot actualitzar l'estat d'habilitació del perfil",
- "Enable profile" : "Habilita el 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." : "El paràmetre més restrictiu de visibilitat o abast es respecta al vostre perfil. Per exemple, si la visibilitat s'estableix a \"Mostra a tothom\" i l'abast s'estableix a \"Privat\", es respectarà \"Privat\".",
- "Unable to update visibility of {displayId}" : "No es pot actualitzar la visibilitat de {displayId}",
- "she/her" : "ella/la",
- "he/him" : "ell/el",
- "they/them" : "ells/elles",
- "Your role" : "El teu rol",
- "Your X (formerly Twitter) handle" : "El vostre identificador X (anteriorment Twitter)",
- "Your website" : "El teu lloc web",
- "Invalid value" : "El valor no és vàlid",
- "Unable to update {property}" : "No es pot actualitzar {property}",
- "No {property} set" : "No hi ha {property} establert",
- "Change scope level of {property}, current scope is {scope}" : "Canvia el nivell d'abast de {property}, l'abast actual és {scope}",
- "Unable to update federation scope of the primary {property}" : "No es pot actualitzar l'àmbit de la federació de la {property} principal",
- "Unable to update federation scope of additional {property}" : "No es pot actualitzar l'àmbit de la federació de {property} addicional",
- "Add additional email" : "Afegeix un correu electrònic addicional",
- "Add" : "Afegeix",
- "Create" : "Crea",
- "Change" : "Canvia",
- "Delete" : "Suprimeix",
- "Reshare" : "Tornar a compartir",
- "Default language" : "Llengua per defecte",
- "Common languages" : "Llengües freqüents",
- "Other languages" : "Altres llengües",
- "Password change is disabled because the master key is disabled" : "El canvi de contrasenya està inhabilitat perquè la clau mestra està desactivada",
- "No accounts" : "Sense comptes",
- "Loading accounts …" : "S'estan carregant els comptes …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Llista de comptes. Aquesta llista no es presenta completament per motius de rendiment. Els comptes es mostraran mentre navegueu per la llista.",
- "Manager" : "Gestor",
- "Set line manager" : "Estableix el gestor de línia",
- "Account name will be autogenerated" : "El nom del compte es generarà automàticament",
- "Account name (required)" : "Nom del compte (obligatori)",
- "New account" : "Nou compte",
- "Display name" : "Nom per mostrar",
- "Either password or email is required" : "Es requereix una contrasenya o un correu electrònic",
- "Password (required)" : "Contrasenya (obligatori)",
- "Email (required)" : "Correu electrònic (obligatori)",
- "Email" : "Correu electrònic",
- "Member of the following groups (required)" : "Membre dels següents grups (obligatori)",
- "Member of the following groups" : "Membre dels següents grups",
- "Set account groups" : "Establir grups de comptes",
- "Admin of the following groups" : "Administrador dels següents grups",
- "Set account as admin for …" : "Estableix el compte com a administrador de …",
- "Quota" : "Quota",
- "Set account quota" : "Estableix la quota del compte",
- "Language" : "Llengua",
- "Set default language" : "Estableix la llengua predeterminada",
- "Add new account" : "Addició d'un compte nou",
- "_{userCount} account …_::_{userCount} accounts …_" : ["compte de {userCount} …","comptes de {userCount} …"],
- "_{userCount} account_::_{userCount} accounts_" : ["compte de {userCount}","comptes de {userCount}"],
- "Total rows summary" : "Resum de totes les files",
- "Scroll to load more rows" : "Desplaceu-vos per carregar més files",
- "Password or insufficient permissions message" : "Contrasenya o missatge de permisos insuficients",
- "Avatar" : "Avatar",
- "Account name" : "Nom de compte",
- "Group admin for" : "Administrador de grup per",
- "Account backend" : "Rerefons del compte",
- "Storage location" : "Ubicació de l'emmagatzematge",
- "First login" : "Primer inici de sessió",
- "Last login" : "Darrer inici de sessió",
- "Account actions" : "Accions del compte",
- "{size} used" : "{size} en ús",
- "Delete account" : "Suprimeix el compte",
- "Disconnect all devices and delete local data" : "Desconnecteu tots els dispositius i suprimiu les dades locals",
- "Disable account" : "Desactiva el compte",
- "Enable account" : "Habilita el compte",
- "Resend welcome email" : "Torna a enviar el correu electrònic de benvinguda",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En cas de perdre un dispositiu o sortir de l’organització, es pot esborrar de forma remota les dades del Nextcloud de tots els dispositius associats a {userid}. Només funciona si els dispositius estan connectats a Internet.",
- "Remote wipe of devices" : "Neteja remota de dispositius",
- "Wipe {userid}'s devices" : "Neteja els dispositius de {userid}",
- "Wiped {userid}'s devices" : "S'han esborrat els dispositius de {userid}",
- "Failed to update line manager" : "No s'ha pogut actualitzar el gestor de línia",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Suprimir completament el compte de {userid} inclosos tots els seus fitxers personals, dades d'aplicacions, etc.",
- "Account deletion" : "Supressió del compte",
- "Delete {userid}'s account" : "Suprimir el compte de {userid}",
- "Display name was successfully changed" : "El nom a mostrar s'ha canviat correctament",
- "Password can't be empty" : "La contrasenya no pot estar buida",
- "Password was successfully changed" : "La contrasenya s'ha canviat correctament",
- "Email can't be empty" : "El correu electrònic no pot estar buit",
- "Email was successfully changed" : "El correu electrònic s'ha canviat correctament",
- "Welcome mail sent!" : "S'ha enviat el correu electrònic de benvinguda!",
- "Loading account …" : "S'està carregant el compte …",
- "Change display name" : "Canvia el nom de visualització",
- "Set new password" : "Estableix una contrasenya nova",
- "You do not have permissions to see the details of this account" : "No teniu permís per veure els detalls d'aquest compte",
- "Set new email address" : "Estableix una nova adreça de correu electrònic",
- "Add account to group" : "Afegeix un compte al grup",
- "Set account as admin for" : "Estableix el compte com a administrador de",
- "Select account quota" : "Seleccioneu la quota del compte",
- "Set the language" : "Estableix la llengua",
- "Toggle account actions menu" : "Commuta el menú d'accions del compte",
- "Done" : "Fet",
- "Edit" : "Edició",
- "Account management settings" : "Configuració de gestió del compte",
- "Visibility" : "Visibilitat",
- "Show language" : "Mostra la llengua",
- "Show account backend" : "Mostra el rerefons del compte",
- "Show storage path" : "Mostra el camí del magatzem",
- "Show first login" : "Mostra el primer inici de sessió",
- "Show last login" : "Mostra el darrer inici de sessió",
- "Sorting" : "Ordenació",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuració del sistema força a ordenar els grups per nom. Això també desactiva mostrar el recompte de membres.",
- "Group list sorting" : "Ordenació de llista de grups",
- "By member count" : "Per recompte de membres",
- "By name" : "Nom",
- "Send email" : "Envia el correu electrònic",
- "Send welcome email to new accounts" : "Envieu un correu electrònic de benvinguda als comptes nous",
- "Defaults" : "Valors per defecte",
- "Default quota" : "Quota per defecte",
- "Select default quota" : "Seleccioneu la quota per defecte",
- "Server error while trying to complete WebAuthn device registration" : "Error del servidor mentre s'intentava completar el registre del dispositiu WebAuthn",
- "Passwordless authentication requires a secure connection." : "L'autenticació sense contrasenya necessita una connexió segura.",
- "Add WebAuthn device" : "Afegeix un dispositiu WebAuthn",
- "Please authorize your WebAuthn device." : "Si us plau, autoritzeu el vostre dispositiu WebAuthn.",
- "Adding your device …" : "S'està afegint el vostre dispositiu …",
- "Unnamed device" : "Dispositiu sense nom",
- "Passwordless Authentication" : "Autenticació sense Contrasenya",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configura el teu compte per a l'autenticació sense contrasenya seguint l'estàndard FIDO2.",
- "No devices configured." : "No hi han dispositius configurats.",
- "The following devices are configured for your account:" : "Els següents dispositius estan configurats per al vostre compte:",
- "Your browser does not support WebAuthn." : "El vostre navegador no suporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Com a administrador, podeu afinar els ajustaments per compartir fitxers. Si us plau, per més informació llegiu la documentació.",
- "You need to enable the File sharing App." : "Heu d'habilitar l'aplicació per compartir Fitxers.",
- "App Store" : "Magatzem d’aplicacions",
- "Loading app list" : "S'està carregant la llista d'aplicacions",
- "Loading categories" : "Carregant categories",
- "Developer documentation ↗" : "Documentació del desenvolupador ↗",
- "Version {version}, {license}-licensed" : "Versió {version}, amb llicència {license}",
- "Version {version}" : "Versió {version}",
- "All accounts" : "Tots els comptes",
- "Admins" : "Administradors",
- "Account group: {group}" : "Grup de comptes: {group}",
- "Account management" : "Gestió de comptes",
"Sending…" : "S'està enviant…",
"Email sent" : "S'ha enviat el correu electrònic",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Per raons de rendiment, quan s'habilita el xifratge en un servidor Nextcloud només es xifren els fitxers nous i els modificats.",
@@ -783,6 +501,7 @@ OC.L10N.register(
"Date of birth" : "Data de naixement",
"Full name" : "Nom complet",
"Additional email" : "Adreça de correu electrònic addicional",
+ "Email" : "Correu electrònic",
"Fediverse (e.g. Mastodon)" : "Fediverse (p. ex. Mastodon)",
"Headline" : "Titular",
"Organisation" : "Organització",
@@ -792,6 +511,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (abans Twitter)",
"Website" : "Lloc web",
"Profile visibility" : "Visibilitat del perfil",
+ "Language" : "Llengua",
"Locale" : "Configuració regional",
"First day of week" : "Primer dia de la setmana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No disponible, ja que aquesta propietat és necessària per a les funcions bàsiques, com ara compartir fitxers i invitacions al calendari",
@@ -809,6 +529,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Mostra només als comptes connectats",
"Hide" : "Amaga",
"Manually installed apps cannot be updated" : "Les aplicacions instal·lades manualment no es poden actualitzar",
+ "Update to {version}" : "Actualitza a {version}",
"{progress}% Deploying …" : "{progress}% Desplegant …",
"{progress}% Initializing …" : "{progress}% S'està inicialitzant …",
"Health checking" : "Control de salut",
@@ -818,6 +539,7 @@ OC.L10N.register(
"Allow untested app" : "Permet l'aplicació no provada",
"The app will be downloaded from the App Store" : "L'aplicació es baixarà des del Magatzem d'aplicacions",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Aquesta aplicació no està marcada com a compatible amb la vostra versió de Nextcloud. Si continueu, encara podreu instal·lar l’aplicació. Tingueu en compte que pot ser que l’aplicació no funcioni correctament.",
+ "{size} used" : "{size} en ús",
"Unknown" : "Desconegut",
"Never" : "Mai",
"Could not register device: Network error" : "No s'ha pogut registrar el dispositiu: error de xarxa",
@@ -836,8 +558,10 @@ OC.L10N.register(
"Could not set group sorting" : "No s'ha pogut establir l'ordenació del grup",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hi havia massa sol·licituds de la seva xarxa. Reintentar més tard o contactar amb l'administrador si això és un error.",
"Error" : "Error",
+ "Default quota" : "Quota per defecte",
"Account documentation" : "Documentació del compte",
"Administration documentation" : "Documentació administrativa",
+ "Documentation" : "Documentació",
"Forum" : "Fòrum",
"Nextcloud help & privacy resources" : "Recursos d'ajuda i privadesa de Nextcloud",
"General documentation" : "Documentació general",
@@ -860,6 +584,7 @@ OC.L10N.register(
"SMTP Password" : "Contrasenya SMTP",
"Save" : "Desa",
"Test and verify email settings" : "Prova i verifica els paràmetres del correu electrònic",
+ "Send email" : "Envia el correu electrònic",
"Security & setup warnings" : "Avisos de seguretat i configuració",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "És important per a la seguretat i el rendiment de la vostra instància que tot estigui configurat correctament. Per ajudar-vos, fem algunes comprovacions automàtiques. Si us plau, consulteu la documentació enllaçada per obtenir més informació.",
"All checks passed." : "Totes les comprovacions correctes.",
@@ -879,50 +604,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Feu servir un segon factor a més de la vostra contrasenya per augmentar la seguretat del vostre compte.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si utilitzeu aplicacions de tercers per a connectar-vos a Nextcloud, assegureu-vos de crear i configurar una contrasenya d'aplicació per a cadascuna abans d'habilitar l'autenticació de segon factor.",
"Logged in account must be a subadmin" : "El compte iniciat ha de ser un subadministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Per permetre que aquesta comprovació s'executi, heu d'assegurar-vos que el vostre servidor web es pugui connectar a si mateix. Per tant, ha de ser capaç de resoldre i connectar-se a almenys un dels seus `trusted_domains` o el `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta l'índex opcional \"%s\" a la taula \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Falten alguns índexs en la base de dades. Com que afegir índexs a taules grans pot tardar una estona, no s'han afegit automàticament. Si executeu «occ db:add-missing-indices», els índexs que falten es podran afegir manualment amb la instància en funcionament. Un cop afegits els índexs, les consultes en les taules solen ser molt més ràpides.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Per permetre que aquesta comprovació s'executi, heu d'assegurar-vos que el vostre servidor web es pot connectar a si mateix. Per tant, ha de ser capaç de resoldre i connectar-se a almenys un dels seus `trusted_domains` o `overwrite.cli.url`. Aquest error pot ser el resultat d'una manca de concordança de DNS del servidor o d'una regla de tallafoc de sortida.",
"File locking" : "Bloqueig de fitxers",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "El bloqueig de fitxers transaccionals està inhabilitat, això pot provocar problemes amb les condicions de carrera. Habiliteu \"filelocking.enabled\" a config.php per evitar aquests problemes.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "No s'ha pogut comprovar si hi ha compatibilitat amb JavaScript mitjançant cap dels vostres `trusted_domains` ni `overwrite.cli.url`. Això pot ser el resultat d'una falta de coincidència de DNS del servidor o d'una regla de tallafoc de sortida. Si us plau, comproveu manualment si el vostre servidor web serveix fitxers `.mjs` utilitzant el tipus MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "El límit de memòria PHP està per sota del valor recomanat de %s.",
"for WebAuthn passwordless login" : "per a l'inici de sessió sense contrasenya de WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "per a l'inici de sessió sense contrasenya de WebAuthn i emmagatzematge SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Actualment esteu executant PHP %s. PHP 8.0 ara està obsolet a Nextcloud 27. Nextcloud 28 pot requerir almenys PHP 8.1. Si us plau, actualitzeu a una de les versions de PHP amb suport oficial proporcionades pel Grup PHP tan aviat com sigui possible.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "S'utilitza la versió \"%s\" de MariaDB . Nextcloud 21 i les versions superiors no admeten aquesta versió i requereixen MariaDB 10.2 o superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "S'utilitza la versió \"%s\" de MariaDB . Nextcloud 21 i les versions superiors no admeten aquesta versió i requereixen MySQL 8.0 o MariaDB 10.2 o superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "S'utilitza la versió \"%s\" de PostgreSQL . Nextcloud 21 i les versions superiors no admeten aquesta versió i requereixen PostgreSQL 9.6 o superior.",
- "Speech-To-Text" : "Conversió de parla a text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "La conversió de parla a text es pot implementar per diferents aplicacions. Aquí podeu definir quina aplicació s'ha d'utilitzar.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Cap de les vostres aplicacions instal·lades actualment ofereix la funció de conversió de parla a text",
- "None of your currently installed apps provide Text processing functionality" : "Cap de les vostres aplicacions instal·lades actualment ofereix la funcionalitat de processament de text",
- "Set default expiration date for shares" : "Estableix la data de caducitat per defecte per comparticions",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permet l'emplenament automàtic del nom d'usuari al diàleg de compartició i permet l'accés a la llibreta d'adreces del sistema",
- "Your biography" : "La vostra biografia",
- "You are using <strong>{usage}</strong>" : "Esteu utilitzant <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Esteu utilitzant <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Estableix el gestor d'usuaris",
- "Username will be autogenerated" : "El nom d'usuari es generarà automàticament",
- "Username (required)" : "Nom d'usuari (obligatori)",
- "New user" : "Nou usuari",
- "Groups (required)" : "Grups (obligatori)",
- "Set user groups" : "Establir grups d'usuaris",
- "Administered groups" : "Grups administrats",
- "Set user as admin for …" : "Estableix l'usuari com a administrador de …",
- "Set user quota" : "Estableix la quota d'usuari",
- "Add new user" : "Afegeix un usuari nou",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuari …","{userCount} usuaris …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuari","{userCount} usuaris"],
- "Loading users …" : "S'estan carregant usuaris …",
- "Username" : "Nom d'usuari",
- "User backend" : "Rerefons d'usuari",
- "User actions" : "Accions de l'usuari",
- "Add user to group" : "Afegeix l'usuari al grup",
- "Server error while trying to add WebAuthn device" : "Error del servidor mentre s'intentava afegir un dispositiu WebAuthn",
- "Name your device" : "Anomeneu el vostre dispositiu",
- "Active accounts" : "Comptes actius",
- "Follow us on Twitter" : "Seguiu-nos a Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Per permetre que aquesta comprovació s'executi, heu d'assegurar-vos que el vostre servidor web es pot connectar a si mateix. Per tant, ha de ser capaç de resoldre i connectar-se a almenys un dels seus `trusted_domains` o `overwrite.cli.url`. Aquest error pot ser el resultat d'una manca de concordança de DNS del servidor o d'una regla de tallafoc de sortida.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "S'ha detectat la versió de PostgreSQL \"%s\". Es recomana PostgreSQL >=12 i <=16 per obtenir el millor rendiment, estabilitat i funcionalitat amb aquesta versió de Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- La capçalera HTTP `%1$s` no conté `%2$s`. Aquest és un risc potencial de seguretat o privadesa, ja que es recomana ajustar aquesta configuració en conseqüència.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "S'ha detectat la versió de PostgreSQL \"%s\". Es recomana PostgreSQL >=12 i <=16 per obtenir el millor rendiment, estabilitat i funcionalitat amb aquesta versió de Nextcloud.",
+ "Set default expiration date for shares" : "Estableix la data de caducitat per defecte per comparticions"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/ca.json b/apps/settings/l10n/ca.json
index 07827fe5459..ecff344431b 100644
--- a/apps/settings/l10n/ca.json
+++ b/apps/settings/l10n/ca.json
@@ -292,7 +292,6 @@
"HTTP headers" : "Capçaleres HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- La capçalera HTTP `%1$s` no està configurada en `%2$s`. És possible que algunes funcions no funcionin correctament, ja que es recomana ajustar aquesta configuració en conseqüència.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- La capçalera HTTP `%1$s` no està configurada en `%2$s`. Aquest és un risc potencial de seguretat o privadesa, ja que es recomana ajustar aquesta configuració en conseqüència.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- La capçalera HTTP `%1$s` no conté `%2$s`. Aquest és un risc potencial de seguretat o privadesa, ja que es recomana ajustar aquesta configuració en conseqüència.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- La capçalera HTTP `%1$s` no està configurada a `%2$s`, `%3$s`, `%4$s`, `%5$s` o `%6$s`. Això pot filtrar informació de referència. Vegeu la {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- La capçalera HTTP `Strict-Transport-Security` no està configurada com a mínim en `%d` segons (valor actual: `%d`). Per millorar la seguretat, es recomana utilitzar una política HSTS llarga.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- La capçalera HTTP `Strict-Transport-Security` té un format incorrecte: `%s`. Per millorar la seguretat, es recomana activar HSTS.",
@@ -436,97 +435,6 @@
"Could not load section content from app store." : "No s'ha pogut carregar el contingut de la secció del magatzem d'aplicacions.",
"Loading" : "S'està carregant",
"Fetching the latest news…" : "Recollint les darreres notícies…",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Diapositiva següent",
- "Choose slide to display" : "Trieu la diapositiva per mostrar",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Dimoni",
- "Deploy Daemon" : "Desplega Dimoni",
- "Type" : "Tipus",
- "Display Name" : "Nom d'usuari",
- "GPUs support" : "Suport de GPU",
- "Compute device" : "Dispositiu de computació",
- "Advanced deploy options" : "Opcions de desplegament avançades",
- "Edit ExApp deploy options before installation" : "Editeu les opcions de desplegament d'ExApp abans de la instal·lació",
- "Configured ExApp deploy options. Can be set only during installation" : "Opcions de desplegament d'ExApp configurades. Només es pot configurar durant la instal·lació",
- "Learn more" : "Més informació",
- "Environment variables" : "Variables d'entorn",
- "ExApp container environment variables" : "Variables d'entorn del contenidor ExApp",
- "No environment variables defined" : "No s'han definit variables d'entorn",
- "Mounts" : "Munts",
- "Define host folder mounts to bind to the ExApp container" : "Definiu els muntatges de carpetes host per vincular-los al contenidor ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Ha d'existir al servidor del dimoni Deploy abans d'instal·lar l'ExApp",
- "Host path" : "Camí del servidor",
- "Container path" : "Camí del contenidor",
- "Read-only" : "Només lectura",
- "Remove mount" : "Suprimir el muntatge",
- "New mount" : "Muntatge nou",
- "Enter path to host folder" : "Introduïu el camí a la carpeta servidora",
- "Enter path to container folder" : "Introduïu el camí a la carpeta contenidora",
- "Toggle read-only mode" : "Commuta el mode de només lectura",
- "Confirm adding new mount" : "Confirmeu l'addició d'un muntatge nou",
- "Confirm" : "Confirma",
- "Cancel adding mount" : "Cancel·la l'addició de muntatge",
- "Cancel" : "Cancel·la",
- "Add mount" : "Afegeix muntatge",
- "ExApp container mounts" : "Muntatge de contenidors ExApp",
- "No mounts defined" : "No s'han definit muntatges",
- "Description" : "Descripció",
- "View in store" : "Mostra-ho al magatzem",
- "Visit website" : "Visita el lloc web",
- "Usage documentation" : "Documentació d'ús",
- "Admin documentation" : "Documentació per a administradors",
- "Developer documentation" : "Documentació per a desenvolupadors",
- "Details" : "Detalls",
- "All" : "Tots",
- "Limit app usage to groups" : "Limita l’ús de l’aplicació als grups",
- "No results" : "No hi ha resultats",
- "Update to {version}" : "Actualitza a {version}",
- "Deploy options" : "Opcions de desplegament",
- "Default Deploy daemon is not accessible" : "El dimoni de desplegament per defecte no és accessible",
- "Delete data on remove" : "Suprimir dades en eliminar",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Aquesta aplicació no té cap versió mínima de Nextcloud assignada. Això serà un error en el futur.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aquesta aplicació no té cap versió màxima de Nextcloud assignada. Això serà un error en el futur.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:",
- "Latest updated" : "Darrera actualització",
- "Author" : "Autor/a",
- "Categories" : "Categories",
- "Resources" : "Recursos",
- "Documentation" : "Documentació",
- "Interact" : "Interactuar",
- "Report a bug" : "Informa d'un error",
- "Request feature" : "Sol·licitud de característica",
- "Ask questions or discuss" : "Fer preguntes o debatre",
- "Rate the app" : "Valoreu l'aplicació",
- "Rate" : "Puntua",
- "Changelog" : "Registre de canvis",
- "Google Chrome for Android" : "Google Chrome per a Android",
- "{productName} iOS app" : "Aplicació iOS de {productName}",
- "{productName} Android app" : "Aplicació Android de {productName}",
- "{productName} Talk for iOS" : "Talk for iOS de {productName}",
- "{productName} Talk for Android" : "Talk for Android de {productName}",
- "Sync client" : "Client de sincronització",
- "This session" : "Aquesta sessió",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nom del dispositiu",
- "Cancel renaming" : "Cancel·la el canvi de nom",
- "Save new name" : "Desar el nou nom",
- "Marked for remote wipe" : "Marcat per netejar remotament",
- "Device settings" : "Paràmetres del dispositiu",
- "Allow filesystem access" : "Permet l'accés al sistema de fitxers",
- "Rename" : "Canvia el nom",
- "Revoke" : "Revoca",
- "Wipe device" : "Esborra el dispositiu",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revocar aquest testimoni podria evitar la neteja del dispositiu si encara no ha començat.",
- "Device" : "Dispositiu",
- "Last activity" : "Darrera activitat",
- "Devices & sessions" : "Dispositius i sessions",
- "Web, desktop and mobile clients currently logged in to your account." : "Clients Web, d'escriptori i mòbils connectats actualment al vostre compte.",
- "Error while creating device token" : "S'ha produït un error mentre es creava el testimoni del dispositiu",
- "App name" : "Nom de l'aplicació",
- "Create new app password" : "Crea una nova contrasenya d'aplicació",
"App password copied!" : "S'ha copiat la contrasenya de l'aplicació!",
"Copy app password" : "Copia la contrasenya de l'aplicació",
"Login name copied!" : "S'ha copiat el nom d'inici de sessió!",
@@ -554,6 +462,7 @@
"Unable to update profile default setting" : "No s'ha pogut actualitzar els paràmetres predeterminats del perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Habilita o deshabilita el perfil de manera predeterminada per als comptes nous.",
+ "Password confirmation is required" : "Cal una confirmació de la contrasenya",
"Failed to save setting" : "No s'ha pogut desar el paràmetre",
"{app}'s declarative setting field: {name}" : "Camp de paràmetre declaratiu de {app}: {name}",
"Unable to update server side encryption config" : "No es pot actualitzar la configuració del xifratge de la banda del servidor",
@@ -576,202 +485,11 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Sempre és bó crear còpies de seguretat de les vostres dades amb regularitat, en el cas de xifratge assegureu-vos de desar les claus de xifratge juntament amb les vostres dades a la còpia de seguretat.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulteu la documentació d'administració sobre com xifrar també manualment els fitxers existents.",
"This is the final warning: Do you really want to enable encryption?" : "Avís final: Realment voleu activar xifratge?",
- "Failed to remove group \"{group}\"" : "No s'ha pogut suprimir el grup \"{group}\"",
"Please confirm the group removal" : "Confirmeu l'eliminació del grup",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Esteu a punt d'eliminar el grup \"{group}\". Els comptes NO es suprimiràn.",
+ "Cancel" : "Cancel·la",
+ "Confirm" : "Confirma",
"Submit" : "Envia",
"Rename group" : "Canvia el nom del grup",
- "Remove group" : "Suprimir el grup",
- "Current password" : "Contrasenya actual",
- "New password" : "Contrasenya nova",
- "Change password" : "Canvia la contrasenya",
- "Choose your profile picture" : "Trieu la vostra imatge de perfil",
- "Please select a valid png or jpg file" : "Seleccioneu un fitxer png o jpg vàlid",
- "Error setting profile picture" : "Error en establir la imatge de perfil",
- "Error cropping profile picture" : "Error en retallar la imatge de perfil",
- "Error saving profile picture" : "Error en desar la imatge de perfil",
- "Error removing profile picture" : "Error en treure la imatge de perfil",
- "Your profile picture" : "La vostra imatge de perfil",
- "Upload profile picture" : "Pujar la imatge de perfil",
- "Choose profile picture from Files" : "Trieu la imatge des de Fitxers",
- "Remove profile picture" : "Treu la imatge de perfil",
- "The file must be a PNG or JPG" : "El fitxer ha de ser PNG o JPG",
- "Picture provided by original account" : "Imatge proporcionada pel compte original",
- "Set as profile picture" : "Estableix com a imatge de perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tingueu en compte que la imatge de perfil pot tardar fins a 24 hores a actualitzar-se a tot arreu.",
- "Your biography. Markdown is supported." : "La teva biografia. S'admet Markdown.",
- "Unable to update date of birth" : "No es pot actualitzar la data de naixement",
- "Enter your date of birth" : "Introduïu la vostra data de naixement",
- "You are using {s}{usage}{/s}" : "Esteu utilitzant {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Esteu utilitzant {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Sou membre dels grups següents:",
- "Your full name" : "El vostre nom complet",
- "Email options" : "Opcions de correu electrònic",
- "Options for additional email address {index}" : "Opcions per a l'adreça de correu electrònic addicional {index}",
- "Remove primary email" : "Treu l'adreça de correu electrònic principal",
- "Delete email" : "Treu l'adreça de correu electrònic",
- "This address is not confirmed" : "Aquesta adreça no està confirmada",
- "Unset as primary email" : "Desactivat com a correu electrònic principal",
- "Set as primary email" : "Estableix com a correu electrònic principal",
- "Additional email address {index}" : "Adreça de correu electrònic addicional {index}",
- "Unable to delete primary email address" : "No es pot suprimir l'adreça de correu electrònic principal",
- "Unable to update primary email address" : "No es pot actualitzar l'adreça de correu electrònic principal",
- "Unable to add additional email address" : "No es pot afegir una adreça de correu electrònic addicional",
- "Unable to update additional email address" : "No es pot actualitzar l'adreça de correu electrònic addicional",
- "Unable to delete additional email address" : "No es pot suprimir l'adreça de correu electrònic addicional",
- "Primary email for password reset and notifications" : "Adreça de correu electrònic principal per a restablir la contrasenya i per a les notificacions",
- "No email address set" : "No s'ha establert cap adreça de correu electrònic",
- "Your handle" : "El teu identificador",
- "Derived from your locale ({weekDayName})" : "Derivat de la vostra configuració regional ({weekDayName})",
- "Unable to update first day of week" : "No es pot actualitzar el primer dia de la setmana",
- "Day to use as the first day of week" : "Dia per utilitzar com a primer dia de la setmana",
- "Your headline" : "El teu titular",
- "Unable to update language" : "No es pot actualitzar la llengua",
- "Languages" : "Llengües",
- "Help translate" : "Ajudeu-nos amb la traducció",
- "No language set" : "No s'ha establert cap idioma",
- "Unable to update locale" : "No es pot actualitzar la configuració local",
- "Locales" : "Localitzacions",
- "Week starts on {firstDayOfWeek}" : "La setmana comença el {firstDayOfWeek}",
- "No locale set" : "No s'ha establert cap configuració local",
- "Your city" : "La teva ciutat",
- "Your organisation" : "La vostra organització",
- "Your phone number" : "El vostre número de telèfon",
- "Edit your Profile visibility" : "Edició de la visibilitat del vostre perfil",
- "Unable to update profile enabled state" : "No es pot actualitzar l'estat d'habilitació del perfil",
- "Enable profile" : "Habilita el 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." : "El paràmetre més restrictiu de visibilitat o abast es respecta al vostre perfil. Per exemple, si la visibilitat s'estableix a \"Mostra a tothom\" i l'abast s'estableix a \"Privat\", es respectarà \"Privat\".",
- "Unable to update visibility of {displayId}" : "No es pot actualitzar la visibilitat de {displayId}",
- "she/her" : "ella/la",
- "he/him" : "ell/el",
- "they/them" : "ells/elles",
- "Your role" : "El teu rol",
- "Your X (formerly Twitter) handle" : "El vostre identificador X (anteriorment Twitter)",
- "Your website" : "El teu lloc web",
- "Invalid value" : "El valor no és vàlid",
- "Unable to update {property}" : "No es pot actualitzar {property}",
- "No {property} set" : "No hi ha {property} establert",
- "Change scope level of {property}, current scope is {scope}" : "Canvia el nivell d'abast de {property}, l'abast actual és {scope}",
- "Unable to update federation scope of the primary {property}" : "No es pot actualitzar l'àmbit de la federació de la {property} principal",
- "Unable to update federation scope of additional {property}" : "No es pot actualitzar l'àmbit de la federació de {property} addicional",
- "Add additional email" : "Afegeix un correu electrònic addicional",
- "Add" : "Afegeix",
- "Create" : "Crea",
- "Change" : "Canvia",
- "Delete" : "Suprimeix",
- "Reshare" : "Tornar a compartir",
- "Default language" : "Llengua per defecte",
- "Common languages" : "Llengües freqüents",
- "Other languages" : "Altres llengües",
- "Password change is disabled because the master key is disabled" : "El canvi de contrasenya està inhabilitat perquè la clau mestra està desactivada",
- "No accounts" : "Sense comptes",
- "Loading accounts …" : "S'estan carregant els comptes …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Llista de comptes. Aquesta llista no es presenta completament per motius de rendiment. Els comptes es mostraran mentre navegueu per la llista.",
- "Manager" : "Gestor",
- "Set line manager" : "Estableix el gestor de línia",
- "Account name will be autogenerated" : "El nom del compte es generarà automàticament",
- "Account name (required)" : "Nom del compte (obligatori)",
- "New account" : "Nou compte",
- "Display name" : "Nom per mostrar",
- "Either password or email is required" : "Es requereix una contrasenya o un correu electrònic",
- "Password (required)" : "Contrasenya (obligatori)",
- "Email (required)" : "Correu electrònic (obligatori)",
- "Email" : "Correu electrònic",
- "Member of the following groups (required)" : "Membre dels següents grups (obligatori)",
- "Member of the following groups" : "Membre dels següents grups",
- "Set account groups" : "Establir grups de comptes",
- "Admin of the following groups" : "Administrador dels següents grups",
- "Set account as admin for …" : "Estableix el compte com a administrador de …",
- "Quota" : "Quota",
- "Set account quota" : "Estableix la quota del compte",
- "Language" : "Llengua",
- "Set default language" : "Estableix la llengua predeterminada",
- "Add new account" : "Addició d'un compte nou",
- "_{userCount} account …_::_{userCount} accounts …_" : ["compte de {userCount} …","comptes de {userCount} …"],
- "_{userCount} account_::_{userCount} accounts_" : ["compte de {userCount}","comptes de {userCount}"],
- "Total rows summary" : "Resum de totes les files",
- "Scroll to load more rows" : "Desplaceu-vos per carregar més files",
- "Password or insufficient permissions message" : "Contrasenya o missatge de permisos insuficients",
- "Avatar" : "Avatar",
- "Account name" : "Nom de compte",
- "Group admin for" : "Administrador de grup per",
- "Account backend" : "Rerefons del compte",
- "Storage location" : "Ubicació de l'emmagatzematge",
- "First login" : "Primer inici de sessió",
- "Last login" : "Darrer inici de sessió",
- "Account actions" : "Accions del compte",
- "{size} used" : "{size} en ús",
- "Delete account" : "Suprimeix el compte",
- "Disconnect all devices and delete local data" : "Desconnecteu tots els dispositius i suprimiu les dades locals",
- "Disable account" : "Desactiva el compte",
- "Enable account" : "Habilita el compte",
- "Resend welcome email" : "Torna a enviar el correu electrònic de benvinguda",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En cas de perdre un dispositiu o sortir de l’organització, es pot esborrar de forma remota les dades del Nextcloud de tots els dispositius associats a {userid}. Només funciona si els dispositius estan connectats a Internet.",
- "Remote wipe of devices" : "Neteja remota de dispositius",
- "Wipe {userid}'s devices" : "Neteja els dispositius de {userid}",
- "Wiped {userid}'s devices" : "S'han esborrat els dispositius de {userid}",
- "Failed to update line manager" : "No s'ha pogut actualitzar el gestor de línia",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Suprimir completament el compte de {userid} inclosos tots els seus fitxers personals, dades d'aplicacions, etc.",
- "Account deletion" : "Supressió del compte",
- "Delete {userid}'s account" : "Suprimir el compte de {userid}",
- "Display name was successfully changed" : "El nom a mostrar s'ha canviat correctament",
- "Password can't be empty" : "La contrasenya no pot estar buida",
- "Password was successfully changed" : "La contrasenya s'ha canviat correctament",
- "Email can't be empty" : "El correu electrònic no pot estar buit",
- "Email was successfully changed" : "El correu electrònic s'ha canviat correctament",
- "Welcome mail sent!" : "S'ha enviat el correu electrònic de benvinguda!",
- "Loading account …" : "S'està carregant el compte …",
- "Change display name" : "Canvia el nom de visualització",
- "Set new password" : "Estableix una contrasenya nova",
- "You do not have permissions to see the details of this account" : "No teniu permís per veure els detalls d'aquest compte",
- "Set new email address" : "Estableix una nova adreça de correu electrònic",
- "Add account to group" : "Afegeix un compte al grup",
- "Set account as admin for" : "Estableix el compte com a administrador de",
- "Select account quota" : "Seleccioneu la quota del compte",
- "Set the language" : "Estableix la llengua",
- "Toggle account actions menu" : "Commuta el menú d'accions del compte",
- "Done" : "Fet",
- "Edit" : "Edició",
- "Account management settings" : "Configuració de gestió del compte",
- "Visibility" : "Visibilitat",
- "Show language" : "Mostra la llengua",
- "Show account backend" : "Mostra el rerefons del compte",
- "Show storage path" : "Mostra el camí del magatzem",
- "Show first login" : "Mostra el primer inici de sessió",
- "Show last login" : "Mostra el darrer inici de sessió",
- "Sorting" : "Ordenació",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuració del sistema força a ordenar els grups per nom. Això també desactiva mostrar el recompte de membres.",
- "Group list sorting" : "Ordenació de llista de grups",
- "By member count" : "Per recompte de membres",
- "By name" : "Nom",
- "Send email" : "Envia el correu electrònic",
- "Send welcome email to new accounts" : "Envieu un correu electrònic de benvinguda als comptes nous",
- "Defaults" : "Valors per defecte",
- "Default quota" : "Quota per defecte",
- "Select default quota" : "Seleccioneu la quota per defecte",
- "Server error while trying to complete WebAuthn device registration" : "Error del servidor mentre s'intentava completar el registre del dispositiu WebAuthn",
- "Passwordless authentication requires a secure connection." : "L'autenticació sense contrasenya necessita una connexió segura.",
- "Add WebAuthn device" : "Afegeix un dispositiu WebAuthn",
- "Please authorize your WebAuthn device." : "Si us plau, autoritzeu el vostre dispositiu WebAuthn.",
- "Adding your device …" : "S'està afegint el vostre dispositiu …",
- "Unnamed device" : "Dispositiu sense nom",
- "Passwordless Authentication" : "Autenticació sense Contrasenya",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configura el teu compte per a l'autenticació sense contrasenya seguint l'estàndard FIDO2.",
- "No devices configured." : "No hi han dispositius configurats.",
- "The following devices are configured for your account:" : "Els següents dispositius estan configurats per al vostre compte:",
- "Your browser does not support WebAuthn." : "El vostre navegador no suporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Com a administrador, podeu afinar els ajustaments per compartir fitxers. Si us plau, per més informació llegiu la documentació.",
- "You need to enable the File sharing App." : "Heu d'habilitar l'aplicació per compartir Fitxers.",
- "App Store" : "Magatzem d’aplicacions",
- "Loading app list" : "S'està carregant la llista d'aplicacions",
- "Loading categories" : "Carregant categories",
- "Developer documentation ↗" : "Documentació del desenvolupador ↗",
- "Version {version}, {license}-licensed" : "Versió {version}, amb llicència {license}",
- "Version {version}" : "Versió {version}",
- "All accounts" : "Tots els comptes",
- "Admins" : "Administradors",
- "Account group: {group}" : "Grup de comptes: {group}",
- "Account management" : "Gestió de comptes",
"Sending…" : "S'està enviant…",
"Email sent" : "S'ha enviat el correu electrònic",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Per raons de rendiment, quan s'habilita el xifratge en un servidor Nextcloud només es xifren els fitxers nous i els modificats.",
@@ -781,6 +499,7 @@
"Date of birth" : "Data de naixement",
"Full name" : "Nom complet",
"Additional email" : "Adreça de correu electrònic addicional",
+ "Email" : "Correu electrònic",
"Fediverse (e.g. Mastodon)" : "Fediverse (p. ex. Mastodon)",
"Headline" : "Titular",
"Organisation" : "Organització",
@@ -790,6 +509,7 @@
"X (formerly Twitter)" : "X (abans Twitter)",
"Website" : "Lloc web",
"Profile visibility" : "Visibilitat del perfil",
+ "Language" : "Llengua",
"Locale" : "Configuració regional",
"First day of week" : "Primer dia de la setmana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No disponible, ja que aquesta propietat és necessària per a les funcions bàsiques, com ara compartir fitxers i invitacions al calendari",
@@ -807,6 +527,7 @@
"Show to logged in accounts only" : "Mostra només als comptes connectats",
"Hide" : "Amaga",
"Manually installed apps cannot be updated" : "Les aplicacions instal·lades manualment no es poden actualitzar",
+ "Update to {version}" : "Actualitza a {version}",
"{progress}% Deploying …" : "{progress}% Desplegant …",
"{progress}% Initializing …" : "{progress}% S'està inicialitzant …",
"Health checking" : "Control de salut",
@@ -816,6 +537,7 @@
"Allow untested app" : "Permet l'aplicació no provada",
"The app will be downloaded from the App Store" : "L'aplicació es baixarà des del Magatzem d'aplicacions",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Aquesta aplicació no està marcada com a compatible amb la vostra versió de Nextcloud. Si continueu, encara podreu instal·lar l’aplicació. Tingueu en compte que pot ser que l’aplicació no funcioni correctament.",
+ "{size} used" : "{size} en ús",
"Unknown" : "Desconegut",
"Never" : "Mai",
"Could not register device: Network error" : "No s'ha pogut registrar el dispositiu: error de xarxa",
@@ -834,8 +556,10 @@
"Could not set group sorting" : "No s'ha pogut establir l'ordenació del grup",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hi havia massa sol·licituds de la seva xarxa. Reintentar més tard o contactar amb l'administrador si això és un error.",
"Error" : "Error",
+ "Default quota" : "Quota per defecte",
"Account documentation" : "Documentació del compte",
"Administration documentation" : "Documentació administrativa",
+ "Documentation" : "Documentació",
"Forum" : "Fòrum",
"Nextcloud help & privacy resources" : "Recursos d'ajuda i privadesa de Nextcloud",
"General documentation" : "Documentació general",
@@ -858,6 +582,7 @@
"SMTP Password" : "Contrasenya SMTP",
"Save" : "Desa",
"Test and verify email settings" : "Prova i verifica els paràmetres del correu electrònic",
+ "Send email" : "Envia el correu electrònic",
"Security & setup warnings" : "Avisos de seguretat i configuració",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "És important per a la seguretat i el rendiment de la vostra instància que tot estigui configurat correctament. Per ajudar-vos, fem algunes comprovacions automàtiques. Si us plau, consulteu la documentació enllaçada per obtenir més informació.",
"All checks passed." : "Totes les comprovacions correctes.",
@@ -877,50 +602,14 @@
"Use a second factor besides your password to increase security for your account." : "Feu servir un segon factor a més de la vostra contrasenya per augmentar la seguretat del vostre compte.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si utilitzeu aplicacions de tercers per a connectar-vos a Nextcloud, assegureu-vos de crear i configurar una contrasenya d'aplicació per a cadascuna abans d'habilitar l'autenticació de segon factor.",
"Logged in account must be a subadmin" : "El compte iniciat ha de ser un subadministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Per permetre que aquesta comprovació s'executi, heu d'assegurar-vos que el vostre servidor web es pugui connectar a si mateix. Per tant, ha de ser capaç de resoldre i connectar-se a almenys un dels seus `trusted_domains` o el `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta l'índex opcional \"%s\" a la taula \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Falten alguns índexs en la base de dades. Com que afegir índexs a taules grans pot tardar una estona, no s'han afegit automàticament. Si executeu «occ db:add-missing-indices», els índexs que falten es podran afegir manualment amb la instància en funcionament. Un cop afegits els índexs, les consultes en les taules solen ser molt més ràpides.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Per permetre que aquesta comprovació s'executi, heu d'assegurar-vos que el vostre servidor web es pot connectar a si mateix. Per tant, ha de ser capaç de resoldre i connectar-se a almenys un dels seus `trusted_domains` o `overwrite.cli.url`. Aquest error pot ser el resultat d'una manca de concordança de DNS del servidor o d'una regla de tallafoc de sortida.",
"File locking" : "Bloqueig de fitxers",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "El bloqueig de fitxers transaccionals està inhabilitat, això pot provocar problemes amb les condicions de carrera. Habiliteu \"filelocking.enabled\" a config.php per evitar aquests problemes.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "No s'ha pogut comprovar si hi ha compatibilitat amb JavaScript mitjançant cap dels vostres `trusted_domains` ni `overwrite.cli.url`. Això pot ser el resultat d'una falta de coincidència de DNS del servidor o d'una regla de tallafoc de sortida. Si us plau, comproveu manualment si el vostre servidor web serveix fitxers `.mjs` utilitzant el tipus MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "El límit de memòria PHP està per sota del valor recomanat de %s.",
"for WebAuthn passwordless login" : "per a l'inici de sessió sense contrasenya de WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "per a l'inici de sessió sense contrasenya de WebAuthn i emmagatzematge SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Actualment esteu executant PHP %s. PHP 8.0 ara està obsolet a Nextcloud 27. Nextcloud 28 pot requerir almenys PHP 8.1. Si us plau, actualitzeu a una de les versions de PHP amb suport oficial proporcionades pel Grup PHP tan aviat com sigui possible.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "S'utilitza la versió \"%s\" de MariaDB . Nextcloud 21 i les versions superiors no admeten aquesta versió i requereixen MariaDB 10.2 o superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "S'utilitza la versió \"%s\" de MariaDB . Nextcloud 21 i les versions superiors no admeten aquesta versió i requereixen MySQL 8.0 o MariaDB 10.2 o superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "S'utilitza la versió \"%s\" de PostgreSQL . Nextcloud 21 i les versions superiors no admeten aquesta versió i requereixen PostgreSQL 9.6 o superior.",
- "Speech-To-Text" : "Conversió de parla a text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "La conversió de parla a text es pot implementar per diferents aplicacions. Aquí podeu definir quina aplicació s'ha d'utilitzar.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Cap de les vostres aplicacions instal·lades actualment ofereix la funció de conversió de parla a text",
- "None of your currently installed apps provide Text processing functionality" : "Cap de les vostres aplicacions instal·lades actualment ofereix la funcionalitat de processament de text",
- "Set default expiration date for shares" : "Estableix la data de caducitat per defecte per comparticions",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permet l'emplenament automàtic del nom d'usuari al diàleg de compartició i permet l'accés a la llibreta d'adreces del sistema",
- "Your biography" : "La vostra biografia",
- "You are using <strong>{usage}</strong>" : "Esteu utilitzant <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Esteu utilitzant <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Estableix el gestor d'usuaris",
- "Username will be autogenerated" : "El nom d'usuari es generarà automàticament",
- "Username (required)" : "Nom d'usuari (obligatori)",
- "New user" : "Nou usuari",
- "Groups (required)" : "Grups (obligatori)",
- "Set user groups" : "Establir grups d'usuaris",
- "Administered groups" : "Grups administrats",
- "Set user as admin for …" : "Estableix l'usuari com a administrador de …",
- "Set user quota" : "Estableix la quota d'usuari",
- "Add new user" : "Afegeix un usuari nou",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuari …","{userCount} usuaris …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuari","{userCount} usuaris"],
- "Loading users …" : "S'estan carregant usuaris …",
- "Username" : "Nom d'usuari",
- "User backend" : "Rerefons d'usuari",
- "User actions" : "Accions de l'usuari",
- "Add user to group" : "Afegeix l'usuari al grup",
- "Server error while trying to add WebAuthn device" : "Error del servidor mentre s'intentava afegir un dispositiu WebAuthn",
- "Name your device" : "Anomeneu el vostre dispositiu",
- "Active accounts" : "Comptes actius",
- "Follow us on Twitter" : "Seguiu-nos a Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Per permetre que aquesta comprovació s'executi, heu d'assegurar-vos que el vostre servidor web es pot connectar a si mateix. Per tant, ha de ser capaç de resoldre i connectar-se a almenys un dels seus `trusted_domains` o `overwrite.cli.url`. Aquest error pot ser el resultat d'una manca de concordança de DNS del servidor o d'una regla de tallafoc de sortida.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "S'ha detectat la versió de PostgreSQL \"%s\". Es recomana PostgreSQL >=12 i <=16 per obtenir el millor rendiment, estabilitat i funcionalitat amb aquesta versió de Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- La capçalera HTTP `%1$s` no conté `%2$s`. Aquest és un risc potencial de seguretat o privadesa, ja que es recomana ajustar aquesta configuració en conseqüència.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "S'ha detectat la versió de PostgreSQL \"%s\". Es recomana PostgreSQL >=12 i <=16 per obtenir el millor rendiment, estabilitat i funcionalitat amb aquesta versió de Nextcloud.",
+ "Set default expiration date for shares" : "Estableix la data de caducitat per defecte per comparticions"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/cs.js b/apps/settings/l10n/cs.js
index 35a3d23b341..3535d03ce18 100644
--- a/apps/settings/l10n/cs.js
+++ b/apps/settings/l10n/cs.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP hlavičky",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- HTTP hlavička `%1$s` není nastavena na `%2$s`. To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP hlavička `%1$s` není nastavena na `%2$s`. To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP hlavička `%1$s` neobsahuje `%2$s`. To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- HTTP hlavička `%1$s` není nastavena na `%2$s`, `%3$s`, `%4$s`, `%5$s` nebo `%6$s`. Kvůli tomu může uniknout referer údaj. Podrobnosti viz {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- HTTP hlavička `Strict-Transport-Security` není nastavena na hodnotu alespoň `%d` sekund (stávající hodnota: `%d`). Pro zlepšení zabezpečení je doporučeno použít dlouhou zásadu HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP hlavička `Strict-Transport-Security` HTTP nemá správnou podobu: `%s`. Pro zlepšení zabezpečení je doporučeno zapnout HSTS.",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "Architektura",
"64-bit" : "64bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Zdá se, že provozujete 32bitovou verzi PHP. Aby správně fungoval, potřebuje Nextcloud 64bit. Přejděte na 64bit instalaci operačního systému a PHP!",
+ "Task Processing pickup speed" : "Rychlost vyzvedávání zpracovávání úkolů",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Žádné naplánované úkoly v uplynulé %n hodině.","Žádné naplánované úkoly v uplynulých %n hodinách.","Žádné naplánované úkoly v uplynulých %n hodinách.","Žádné naplánované úkoly v uplynulých %n hodinách."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Rychlost vyzvedávání úkolů byla ok za uplynulou %n hodinu.","Rychlost vyzvedávání úkolů byla ok za uplynulých %n hodin.","Rychlost vyzvedávání úkolů byla ok za uplynulých %n hodin.","Rychlost vyzvedávání úkolů byla ok za uplynulých %n hodin."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Rychlost vyzvedávání byla nízká za uplynulou %n hodinu. U mnoha úkolů trvalo více než 4 minuty, než byly vyzvednuty. Zvažte nastavení zpracovávajícího procesu na pozadí.","Rychlost vyzvedávání byla nízká za uplynulé %n hodiny. U mnoha úkolů trvalo více než 4 minuty, než byly vyzvednuty. Zvažte nastavení zpracovávajícího procesu na pozadí.","Rychlost vyzvedávání byla nízká za uplynulých %n hodin. U mnoha úkolů trvalo více než 4 minuty, než byly vyzvednuty. Zvažte nastavení zpracovávajícího procesu na pozadí.","Rychlost vyzvedávání byla nízká za uplynulé %n hodiny. U mnoha úkolů trvalo více než 4 minuty, než byly vyzvednuty. Zvažte nastavení zpracovávajícího procesu na pozadí."],
"Temporary space available" : "Dočasný prostor k dispozici",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Chyba při kontrole popisu umístění dočasných souborů PHP – nebylo správně nastaveno na složku. Vrácená hodnota: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP funkce „disk_free_space“ je vypnutá, což brání v kontrolách zda je k dispozici dostatek místa ve složkách pro dočasná data.",
@@ -417,7 +420,7 @@ OC.L10N.register(
"Featured apps are developed by and within the community. They offer central functionality and are ready for production use." : "Doporučované aplikace jsou vyvíjeny komunitou. Jsou propojeny se zbytkem Nextcloud a připraveny na produkční nasazení.",
"Community rating: {score}/5" : "Hodnocení komunitou: {score}/5",
"Disable all" : "Zakázat vše",
- "Download and enable all" : "Stáhnout si a zapnout vše",
+ "Download and enable all" : "Stáhnout a zapnout vše",
"All apps are up-to-date." : "Všechny aplikace jsou aktuální",
"Icon" : "Ikona",
"Name" : "Název",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Nepodařilo se načíst obsah sekce z katalogu aplikací.",
"Loading" : "Načítání",
"Fetching the latest news…" : "Získávání nejnovějších zpráv…",
- "Carousel" : "Kolotoč",
- "Previous slide" : "Předchozí snímek",
- "Next slide" : "Následující snímek",
- "Choose slide to display" : "Zvolte snímek který zobrazit",
- "{index} of {total}" : "{index} z {total}",
- "Daemon" : "Proces služby",
- "Deploy Daemon" : "Nasadit proces služby",
- "Type" : "Typ",
- "Display Name" : "Zobrazované jméno",
- "GPUs support" : "Podpora pro výpočty na GPU",
- "Compute device" : "Výpočetní zařízení",
- "Advanced deploy options" : "Pokročilé předvolby pro nasazení",
- "Edit ExApp deploy options before installation" : "Předvolby nasazení ExApp před instalací",
- "Configured ExApp deploy options. Can be set only during installation" : "Nastavené předvolby nasazení ExAPP. Je možné nastavovat pouze při instalaci",
- "Learn more" : "Zjistit více",
- "Environment variables" : "Proměnné prostředí",
- "ExApp container environment variables" : "Proměnné prostředí pro kontejner s ExApp",
- "No environment variables defined" : "Nedefinovány žádné proměnné prostředí",
- "Mounts" : "Připojení",
- "Define host folder mounts to bind to the ExApp container" : "Definovat připojení hostitelské složky pro napojení na kontejner s ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Je třeba, aby existovalo na hostiteli procesu nasazovací služby ještě před instalací ExApp",
- "Host path" : "Popis umístění hostitele",
- "Container path" : "Popis umístění kontejneru",
- "Read-only" : "Pouze pro čtení",
- "Remove mount" : "Odebrat připojení",
- "New mount" : "Nové připojení",
- "Enter path to host folder" : "Zadejte popis umístění složky hostitele",
- "Enter path to container folder" : "Zadejte popis umístění složky kontejneru",
- "Toggle read-only mode" : "Vyp/zap. režim pouze pro čtení",
- "Confirm adding new mount" : "Potvrďte přidání nového připojení",
- "Confirm" : "Potvrdit",
- "Cancel adding mount" : "Zrušit přidávání připojení",
- "Cancel" : "Storno",
- "Add mount" : "Přidat připojení",
- "ExApp container mounts" : "Připojení kontejneru s ExApp",
- "No mounts defined" : "Nedefinována žádná připojení",
- "Description" : "Popis",
- "View in store" : "Zobrazit v katalogu",
- "Visit website" : "Navštívit webovou stránku",
- "Usage documentation" : "Dokumentace k používání",
- "Admin documentation" : "Dokumentace pro správce",
- "Developer documentation" : "Dokumentace pro vývojáře",
- "Details" : "Podrobnosti",
- "All" : "Vše",
- "Limit app usage to groups" : "Omezit používání aplikace na skupiny",
- "No results" : "Žádné výsledky",
- "Update to {version}" : "Aktualizovat na {version}",
- "Deploy options" : "Předvolby nasazení",
- "Default Deploy daemon is not accessible" : "Výchozí proces služby nasazování není dostupný",
- "Delete data on remove" : "Při odebrání smazat data",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavený žádný požadavek na minimální verzi Nextcloud. To v budoucnu bude hodnoceno jako chyba.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavenou žádnou nejvyšší podporovanou verzi Nextcloud. To v budoucnu bude hodnoceno jako chyba.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Tuto aplikaci nelze nainstalovat, protože nejsou splněny následující závislosti:",
- "Latest updated" : "Naposledy aktualizováno",
- "Author" : "Autor",
- "Categories" : "Kategorie",
- "Resources" : "Prostředky",
- "Documentation" : "Dokumentace",
- "Interact" : "Interakce",
- "Report a bug" : "Nahlásit chybu",
- "Request feature" : "Požádat o přidání funkce",
- "Ask questions or discuss" : "Položit dotaz či diskutovat",
- "Rate the app" : "Ohodnotit aplikaci",
- "Rate" : "Hodnotit",
- "Changelog" : "Souhrn změn",
- "Google Chrome for Android" : "Google Chrome pro Android",
- "{productName} iOS app" : "{productName} aplikace pro iOS",
- "{productName} Android app" : "{productName} aplikace pro Android",
- "{productName} Talk for iOS" : "{productName} Talk pro iOS",
- "{productName} Talk for Android" : "{productName} Talk pro Android",
- "Sync client" : "Synchronizační klient",
- "This session" : "Toto sezení",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Název zařízení",
- "Cancel renaming" : "Zrušit přejmenovávání",
- "Save new name" : "Uložit nový název",
- "Marked for remote wipe" : "Označeno k vymazání obsahu na dálku",
- "Device settings" : "Nastavení zařízení",
- "Allow filesystem access" : "Povolit přístup k souborovému systému",
- "Rename" : "Přejmenovat",
- "Revoke" : "Odvolat",
- "Wipe device" : "Vymazat obsah zařízení",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Odvolání platnosti tohoto tokenu může zabránit vymazání obsahu zařízení, pokud proces vymazání ještě nebyl do teď zahájen.",
- "Device" : "Zařízení",
- "Last activity" : "Poslední aktivita",
- "Devices & sessions" : "Zařízení a sezení",
- "Web, desktop and mobile clients currently logged in to your account." : "Weboví, desktopoví a mobilní klienti aktuálně přihlášení k vašemu účtu.",
- "Error while creating device token" : "Chyba při vytváření tokenu zařízení",
- "App name" : "Název aplikace",
- "Create new app password" : "Vytvořit nové heslo aplikace",
"App password copied!" : "Heslo pro aplikaci zkopírováno!",
"Copy app password" : "Zkopírovat heslo pro aplikaci",
"Login name copied!" : "Přihlašovací jméno zkopírováno!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Nedaří se aktualizovat výchozí nastavení pro profily",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Profily nově vytvářených účtů ve výchozím stavu zpřístupňovat nebo nezpřístupňovat.",
+ "Password confirmation is required" : "Je vyžadováno potvrzení hesla",
"Failed to save setting" : "Nastavení se nepodařilo uložit",
"{app}'s declarative setting field: {name}" : "Kolonka deklarativního nastavení {app}: {name}",
"Unable to update server side encryption config" : "Nedaří se zaktualizovat nastavení šifrování na straně serveru",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je vždy dobré vytvářet pravidelné zálohy svých dat. V případě zapnutého šifrování také společně s daty zajistěte zálohu šifrovacích klíčů k nim.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Ohledně toho, jak ručně zašifrovat také existující soubory, nahlédněte do dokumentace pro správce.",
"This is the final warning: Do you really want to enable encryption?" : "Toto je poslední varování: Opravdu chcete zapnout šifrování?",
- "Failed to remove group \"{group}\"" : "Nepodařilo se odebrat skupinu „{group}“",
+ "Failed to delete group \"{group}\"" : "Nepodařilo se vytvořit skupinu „{group}“",
"Please confirm the group removal" : "Potvrďte odstranění skupiny",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Chystáte se smazat skupinu „{group}“. Účty NEbudou smazány.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Chystáte se smazat skupinu „{group}“. Účty k ní přiřazené nebudou smazány.",
+ "Cancel" : "Storno",
+ "Confirm" : "Potvrdit",
"Submit" : "Odeslat",
"Rename group" : "Přejmenovat skupinu",
- "Remove group" : "Odebrat skupinu",
- "Current password" : "Stávající heslo",
- "New password" : "Nové heslo",
- "Change password" : "Změnit heslo",
- "Choose your profile picture" : "Vyberte si svůj profilový obrázek",
- "Please select a valid png or jpg file" : "Vyberte platný png nebo jpg soubor",
- "Error setting profile picture" : "Chyba při nastavování profilového obrázku",
- "Error cropping profile picture" : "Chyba při ořezávání profilového obrázku",
- "Error saving profile picture" : "Chyba při ukládání profilového obrázku",
- "Error removing profile picture" : "Chyba při odebírání profilového obrázku",
- "Your profile picture" : "Váš profilový obrázek",
- "Upload profile picture" : "Nahrát profilový obrázek",
- "Choose profile picture from Files" : "Zvolit profilový obrázek ze Souborů",
- "Remove profile picture" : "Odebrat profilový obrázek",
- "The file must be a PNG or JPG" : "Je třeba, aby soubor by PNG nebo JPG",
- "Picture provided by original account" : "Obrázek poskytovaný původním účtem",
- "Set as profile picture" : "Nastavit jako profilový obrázek",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Mějte na paměti, že může trvat až 24 hodin, než bude váš profilový obrázek aktualizován všude.",
- "Your biography. Markdown is supported." : "Váš životopis. Jsou podporovány Markdown značky.",
- "Unable to update date of birth" : "Nedaří se aktualizovat datum narození",
- "Enter your date of birth" : "Zadejte datum svého narození",
- "You are using {s}{usage}{/s}" : "Využíváte {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Využíváte {s}{usage}{/s} z {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Jste členy následujících skupin:",
- "Your full name" : "Vaše celé jméno",
- "Email options" : "Předvolby e-mailu",
- "Options for additional email address {index}" : "Volby pro dodatečnou e-mailovou adresu {index}",
- "Remove primary email" : "Odebrat hlavní e-mail",
- "Delete email" : "Smazat e-mail",
- "This address is not confirmed" : "Z této adresy jste ještě nepotvrdili ověřovací e-mail",
- "Unset as primary email" : "Zrušeno nastavení coby hlavního e-mailu",
- "Set as primary email" : "Nastavit jako hlavní e-mail",
- "Additional email address {index}" : "Další e-mailová adresa {index}",
- "Unable to delete primary email address" : "Nepodařilo se smazat hlavní e-mailovou adresu",
- "Unable to update primary email address" : "Nepodařilo se aktualizovat hlavní e-mailovou adresu",
- "Unable to add additional email address" : "Nepodařilo se přidat další e-mailovou adresu",
- "Unable to update additional email address" : "Nepodařilo se aktualizovat další e-mailovou adresu",
- "Unable to delete additional email address" : "Nepodařilo se smazat další e-mailovou adresu",
- "Primary email for password reset and notifications" : "Hlavní e-mail pro resetování hesla a oznamování",
- "No email address set" : "E-mailová adresa není nastavena",
- "Your handle" : "Váš identifikátor (handle)",
- "Derived from your locale ({weekDayName})" : "Odvozeno od místních a jazykových nastavení ({weekDayName})",
- "Unable to update first day of week" : "Nepodařilo se zaktualizovat nastavení prvního dne týdne",
- "Day to use as the first day of week" : "Den který používat jako první den týdne",
- "Your headline" : "Váš nadpis",
- "Unable to update language" : "Jazyk se nedaří aktualizovat",
- "Languages" : "Jazyky",
- "Help translate" : "Pomoci s překladem",
- "No language set" : "Není nastaven jazyk",
- "Unable to update locale" : "Nedaří se aktualizovat místní a jazyková nastavení",
- "Locales" : "Místní jazyková nastavení",
- "Week starts on {firstDayOfWeek}" : "Týden začíná {firstDayOfWeek}",
- "No locale set" : "Nenastaveno žádné místní a jazykové nastavení",
- "Your city" : "Město ve kterém/poblíž kterého žijete",
- "Your organisation" : "Vaše organizace",
- "Your phone number" : "Vaše telefonní číslo",
- "Edit your Profile visibility" : "Upravit viditelnost profilu",
- "Unable to update profile enabled state" : "Nedaří se aktualizovat stav zapnutí profilu",
- "Enable profile" : "Zapnout profil",
- "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." : "Ohledně vašeho profilu bude respektována to více omezující nastavení – například, pokud je viditelnost nastavená na „Zobrazit všem“ a rozsah je nastavený na „Soukromé“, je respektováno „Soukromé.",
- "Unable to update visibility of {displayId}" : "Nedaří se aktualizovat viditelnost {displayId}",
- "she/her" : "ona/jí",
- "he/him" : "on/jemu",
- "they/them" : "oni/jim",
- "Your role" : "Vaše úloha",
- "Your X (formerly Twitter) handle" : "Vaše přezdívka na X (dříve Twitter)",
- "Your website" : "Vlastní webová stránka",
- "Invalid value" : "Neplatná hodnota",
- "Unable to update {property}" : "Nedaří se aktualizovat {property}",
- "No {property} set" : "Nenastaveno žádné {property}",
- "Change scope level of {property}, current scope is {scope}" : "Změnit stupeň rozsahu {property}, stávající je {scope}",
- "Unable to update federation scope of the primary {property}" : "Nedaří se aktualizovat rozsah federování primární {property}",
- "Unable to update federation scope of additional {property}" : "Nedaří se aktualizovat rozsah federování dodatečné {property}",
- "Add additional email" : "Přidat další e-mail",
- "Add" : "Přidat",
- "Create" : "Vytvořit",
- "Change" : "Změnit",
- "Delete" : "Smazat",
- "Reshare" : "Sdílet dál dalším",
- "Default language" : "Výchozí jazyk",
- "Common languages" : "Běžné jazyky",
- "Other languages" : "Ostatní jazyky",
- "Password change is disabled because the master key is disabled" : "Změna hesla je vypnutá protože je vypnutý hlavní klíč",
- "No accounts" : "Žádné účty",
- "Loading accounts …" : "Načítání účtů…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Seznam účtů. Není vykreslen celý z důvodu nároků na výkon. Účty budou dokreslovány, jak se budete posouvat seznamem.",
- "Manager" : "Nástroj pro správu",
- "Set line manager" : "Nastavit přímého nadřízeného",
- "Account name will be autogenerated" : "Název účtu bude vytvořen automaticky",
- "Account name (required)" : "Název účtu (vyžadováno)",
- "Failed to search groups" : "Nepodařilo se prohledat skupiny",
- "New account" : "Nový účet",
- "Display name" : "Zobrazované jméno",
- "Either password or email is required" : "Je zapotřebí heslo nebo e-mail",
- "Password (required)" : "Heslo (vyžadováno)",
- "Email (required)" : "E-mail (vyžadováno)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Člen následujících skupin (vyžadováno)",
- "Member of the following groups" : "Člen následujících skupin",
- "Set account groups" : "Nastavit skupiny účtu",
- "Admin of the following groups" : "Správce následujících skupin",
- "Set account as admin for …" : "Nastavit účet správce pro…",
- "Quota" : "Kvóta",
- "Set account quota" : "Nastavit kvótu pro účet",
- "Language" : "Jazyk",
- "Set default language" : "Nastavit výchozí jazyk",
- "Add new account" : "Přidat nový účet",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} účet …","{userCount} účty …","{userCount} účtů …","{userCount} účty …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} účet","{userCount} účty","{userCount} účtů","{userCount} účty"],
- "Total rows summary" : "Celkový souhrn řádek",
- "Scroll to load more rows" : "Další řádky načtete posunutím dolů",
- "Password or insufficient permissions message" : "Zpráva o heslu nebo nedostatečném oprávnění",
- "Avatar" : "Profilový obrázek",
- "Account name" : "Název účtu",
- "Group admin for" : "Správce skupiny",
- "Account backend" : "Podpůrná vrstva účtu",
- "Storage location" : "Úložiště dat",
- "First login" : "První přihlášení",
- "Last login" : "Poslední přihlášení",
- "Account actions" : "Akce ohledně účtu",
- "{size} used" : "{size} použito",
- "Delete account" : "Smazat účet",
- "Disconnect all devices and delete local data" : "Odpojit veškerá zařízení a smazat data na nich",
- "Disable account" : "Vypnout účet",
- "Enable account" : "Zapnout účet",
- "Resend welcome email" : "Znovu poslat uvítací e-mail",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "V případě ztráty zařízení, nebo např. odchodu z firmy, toto může vzdáleně vymazat Nextcloud data ze všech zařízení asociovaných s uživatelem {userid}. Funguje jen pokud se zařízení připojí k Internetu.",
- "Remote wipe of devices" : "Vymazat obsah zařízení na dálku",
- "Wipe {userid}'s devices" : "Vymazat obsah ze zařízení uživatele {userid}",
- "Wiped {userid}'s devices" : "Data ze zařízení uživatele {userid} vymazána",
- "Failed to load groups with details" : "Nepodařilo se načíst skupiny s podrobnostmi",
- "Failed to load sub admin groups with details" : "Nepodařilo se načíst skupiny dílčích správců s podrobnostmi",
- "Failed to update line manager" : "Nepodařilo se aktualizovat přímého nadřízeného",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Úplně vymazat účet {userid}, včetně veškerých osobní souborů, dat aplikací, atd.",
- "Account deletion" : "Smazání účtu",
- "Delete {userid}'s account" : "Smazat účet {userid}",
- "Display name was successfully changed" : "Zobrazené jméno bylo úspěšně změněno",
- "Password can't be empty" : "Heslo je třeba vyplnit",
- "Password was successfully changed" : "Heslo bylo úspěšně změněno",
- "Email can't be empty" : "E-mail je třeba vyplnit",
- "Email was successfully changed" : "E-mail byl úspěšně změněn",
- "Welcome mail sent!" : "Uvítací e-mail odeslán!",
- "Loading account …" : "Načítání účtu…",
- "Change display name" : "Změnit zobrazované jméno",
- "Set new password" : "Nastavit nové heslo",
- "You do not have permissions to see the details of this account" : "Nemáte oprávnění zobrazit si podrobností o tomto účtu",
- "Set new email address" : "Nastavit novou e-mailovou adresu",
- "Add account to group" : "Přidat účet do skupiny",
- "Set account as admin for" : "Nastavit účet coby správce pro",
- "Select account quota" : "Vyberte kvótu pro účet",
- "Set the language" : "Nastavit jazyk",
- "Toggle account actions menu" : "Vyp/zap. nabídku akcí účtu",
- "Done" : "Dokončeno",
- "Edit" : "Upravit",
- "Account management settings" : "Nastavení správy uživatelských účtů",
- "Visibility" : "Viditelnost",
- "Show language" : "Zobrazit jazyk",
- "Show account backend" : "Zobrazit podpůrnou vrstvu účtu",
- "Show storage path" : "Zobrazit popis umístění úložiště",
- "Show first login" : "Zobrazit první přihlášení",
- "Show last login" : "Zobrazit poslední přihlášení",
- "Sorting" : "Řazení",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Nastavení systému vynucuje řazení skupin podle názvu. Toto také vypíná zobrazování počtu členů.",
- "Group list sorting" : "Řazení seznamu skupin",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Z výkonnostních důvodů bude řazení uplatněno pouze na v tuto chvíli načtené skupiny. Ty budou načteny jak se budete pohybovat seznamem nebo ho prohledávat.",
- "By member count" : "Podle počtu členů",
- "By name" : "Podle názvu",
- "Send email" : "Odeslat e-mail",
- "Send welcome email to new accounts" : "Novým účtům posílat uvítací e-maily",
- "Defaults" : "Výchozí",
- "Default quota" : "Výchozí kvóta",
- "Select default quota" : "Vybrat výchozí kvótu",
- "Server error while trying to complete WebAuthn device registration" : "Chyba serveru při pokusu o dokončení registrace WebAuthn zařízení",
- "Passwordless authentication requires a secure connection." : "Ověřování se bez hesla vyžaduje zabezpečené připojení.",
- "Add WebAuthn device" : "Přidat WebAuthn zařízení",
- "Please authorize your WebAuthn device." : "Udělte pověření vámi využívanému WebAuthn zařízení.",
- "Adding your device …" : "Přidávání zařízení…",
- "Unnamed device" : "Nepojmenované zařízení",
- "Passwordless Authentication" : "Ověřování se bez zadávání hesla",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Nastavte svůj účet pro využívání ověřování se bez hesla pomocí standardu FIDO2.",
- "No devices configured." : "Není nastavené žádné zařízení.",
- "The following devices are configured for your account:" : "U svého účtu máte nastavená následující zařízení:",
- "Your browser does not support WebAuthn." : "Vámi používaný prohlížeč nepodporuje WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Jako správce můžete upravit chování sdílení. Více informací naleznete v dokumentaci.",
- "You need to enable the File sharing App." : "Je třeba zapnout aplikaci pro sdílení souborů.",
- "App Store" : "Katalog aplikací",
- "Loading app list" : "Načítání seznamu aplikací…",
- "Loading categories" : "Načítání kategorií…",
- "Developer documentation ↗" : "Dokumentace pro vývojáře ↗",
- "Version {version}, {license}-licensed" : "Verze {version}, {license}-licencováno",
- "Version {version}" : "Verze {version}",
- "All accounts" : "Veškeré účty",
- "Admins" : "Správci",
- "Account group: {group}" : "Skupina účtu: {group}",
- "Account management" : "Správa účtů",
+ "Delete group" : "Smazat skupinu",
"Sending…" : "Odesílání…",
"Email sent" : "E-mail odeslán",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Z výkonových důvodů, pokud zapnete šifrování na Nextcloud serveru, budou šifrovány pouze nové a změněné soubory.",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "Datum narození",
"Full name" : "Celé jméno",
"Additional email" : "Další e-mail",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (např. Mastodon)",
"Headline" : "Nadpis",
"Organisation" : "Organizace",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (dříve Twitter)",
"Website" : "Webová stránka",
"Profile visibility" : "Viditelnost profilu",
+ "Language" : "Jazyk",
"Locale" : "Místní a jazyková nastavení",
"First day of week" : "První den v týdnu",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Není k dispozici, protože tato vlastnost je vyžadována pro hlavní funkce, včetně sdílení souborů a pozvánek v kalendáři",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Ukázat jen přihlášeným účtům",
"Hide" : "Skrýt",
"Manually installed apps cannot be updated" : "Ručně nainstalované aplikace není možné zaktualizovat",
+ "Update to {version}" : "Aktualizovat na {version}",
"{progress}% Deploying …" : "{progress}% nasazování…",
"{progress}% Initializing …" : "{progress}% inicializace…",
"Health checking" : "Kontrola stavu",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Umožnit nevyzkoušenou aplikaci",
"The app will be downloaded from the App Store" : "Aplikace bude stažena z katalogu aplikací",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Tato aplikace není označena jako kompatibilní s vámi používanou verzí Nexcloud. Pokud budete pokračovat, pořád budete moci aplikaci nainstalovat. Uvědomte si ale, že aplikace nemusí fungovat, jak je očekáváno.",
+ "{size} used" : "{size} použito",
"Unknown" : "Neznámé",
"Never" : "Nikdy",
"Could not register device: Network error" : "Zařízení se nepodařilo zaregistrovat: chyba sítě",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Nepodařilo se nastavit řazení skupiny",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Z vaší sítě bylo příliš mnoho požadavků. Zkuste to později nebo (pokud je toto chyba) se obraťte na svého správce.",
"Error" : "Chyba",
+ "Default quota" : "Výchozí kvóta",
"Account documentation" : "Dokumentace k účtům",
"Administration documentation" : "Dokumentace ke správě",
+ "Documentation" : "Dokumentace",
"Forum" : "Diskuzní fórum",
"Nextcloud help & privacy resources" : "Nápověda k Nextcloud a prostředky k soukromí",
"General documentation" : "Obecná dokumentace",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "Heslo pro SMTP",
"Save" : "Uložit",
"Test and verify email settings" : "Vyzkoušet a ověřit nastavení e-mailu",
+ "Send email" : "Odeslat e-mail",
"Security & setup warnings" : "Varování ohledně zabezpečení a nastavení",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Pro zabezpečení a optimální výkon instance Nextcloud je důležité, aby vše bylo správně nastaveno. Jako pomoc, instance samotná automaticky ověřuje některá nastavení. Další informace naleznete v odkazované dokumentaci.",
"All checks passed." : "Všechny kontroly dopadly dobře.",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Pro zlepšení zabezpečení vašeho účtu použijte vedle hesla také druhý faktor.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Pokud pro připojování se k Nextcloud používáte aplikace třetích stran, nezapomeňte před zapnutím ověřování druhým faktorem vytvořit pro jednotlivé aplikace jejich hesla.",
"Logged in account must be a subadmin" : "Je třeba, aby přihlášený účet byl dílčím správcem",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Aby bylo možné možné povolit spuštění této kontroly je třeba zajistit, aby se webový server mohl připojit sám na sebe. Proto je třeba, aby bylo možné přeložit na IP adresu a připojit se k alespoň jedné z `trusted_domains` nebo `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Chybí volitelný index „%s“ v tabulce „%s“.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "V databázi chybí některé indexy. Protože přidávání indexů na velkých tabulkách může zabrat nějaký čas, nebyly přidány automaticky. Spuštěním „occ db:add-missing-indices“ je možné tyto chybějící indexy ručně za provozu instance. Po přidání indexů dotazy do těchto tabulek jsou obvykle mnohem rychlejší.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Aby bylo možné možné povolit spuštění této kontroly je třeba zajistit, aby se webový server mohl připojit sám na sebe. Proto je třeba, aby bylo možné přeložit na IP adresu a připojit se k alespoň jedné z `trusted_domains` nebo `overwrite.cli.url`. Tento nezdar může být výsledkem neshody DNS na serveru nebo odchozího pravidla na bráně firewall.",
"File locking" : "Zamykání souborů",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transakční zamykání souborů je vypnuto, což může vést k problémům při souběžném přístupu. Abyste se jim vyhnuli, zapněte v config.php volbu „filelocking.enabled“.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Nepodařilo se zkontrolovat ohledně podpory pro JavaScript prostřednictvím libovolné z vašich `trusted_domains` ani `overwrite.cli.url`. Může se jednat o důsledek neshody DNS na straně serveru nebo odchozího pravidla na bráně firewall. Ručně zkontrolujte zda váš webový server poskytuje `.mjs` soubory pomocí MIME typu JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "Limit paměti pro PHP je nastaven na níže než doporučenou hodnotu %s.",
"for WebAuthn passwordless login" : "pro WebAuthn přihlášení bez hesla",
"for WebAuthn passwordless login, and SFTP storage" : "pro WebAuthn přihlášení bez hesla a SFTP úložiště",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Nyní provozujete na PHP %s. Od Nextcloud 27 je PHP 8.0 už označeno jako zastaralé. Nextcloud 28 pak už může vyžadovat alespoň PHP 8.1. Co možná nejdříve přejděte na některou z oficiálně podporovaných verzí PHP, poskytovaných PHP Group.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Je používána verze MariaDB „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje MariaDB 10.2 nebo novější.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Je používána verze MySQL „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje MySQL 8.0 nebo MariaDB 10.2 a novější.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Je používána verze PostgreSQL „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje PostgreSQL 9.6 nebo novější.",
- "Speech-To-Text" : "Převod řeči na text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Převod řeči na text je možné implementovat různými aplikacemi. Zde je možné nastavit, která z nich má být používána.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Žádná z v tuto chvíli nainstalovaných aplikací neposkytuje funkci převodu řeči na text",
- "None of your currently installed apps provide Text processing functionality" : "Žádná z v tuto chvíli nainstalovaných aplikací neposkytuje funkci zpracovávání textu",
- "Set default expiration date for shares" : "Nastavit výchozí datum skončení platnosti pro sdílení",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Povolit automatické doplňování uživatelského jména v dialogu sdílení a umožnit přístup k systémovému adresáři kontaktů",
- "Your biography" : "Váš životopis",
- "You are using <strong>{usage}</strong>" : "Využíváte <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Využíváte <strong>{usage}</strong> z <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Nastavit nadřízeného uživatele",
- "Username will be autogenerated" : "Uživatelské jméno bude vytvořeno automaticky",
- "Username (required)" : "Uživatelské jméno (vyžadováno)",
- "New user" : "Nový uživatel",
- "Groups (required)" : "Skupiny (vyžadováno)",
- "Set user groups" : "Nastavit skupiny uživatele",
- "Administered groups" : "Spravované skupiny",
- "Set user as admin for …" : "Nastavit uživatele jako správce pro",
- "Set user quota" : "Nastavit uživateli kvótu",
- "Add new user" : "Přidat nového uživatele",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} uživatel …","{userCount} uživatelé …","{userCount} uživatelů …","{userCount} uživatelé …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} uživatel","{userCount} uživatelé","{userCount} uživatelů","{userCount} uživatelé"],
- "Loading users …" : "Načítání uživatelů…",
- "Username" : "Uživatelské jméno",
- "User backend" : "Podpůrná vrstva pro uživatelské účty",
- "User actions" : "Akce ohledně uživatele",
- "Add user to group" : "Přidat uživatele do skupiny",
- "Server error while trying to add WebAuthn device" : "Chyba serveru při pokusu o přidání WebAuthn zařízení",
- "Name your device" : "Nazvěte své zařízení",
- "Active accounts" : "Aktivní účty",
- "Follow us on Twitter" : "Následujte nás na Twitteru",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Aby bylo možné možné povolit spuštění této kontroly je třeba zajistit, aby se webový server mohl připojit sám na sebe. Proto je třeba, aby bylo možné přeložit na IP adresu a připojit se k alespoň jedné z `trusted_domains` nebo `overwrite.cli.url`. Tento nezdar může být výsledkem neshody DNS na serveru nebo odchozího pravidla na bráně firewall.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP hlavička `%1$s` neobsahuje `%2$s`. To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Zjištěna verze PostgreSQL „%s“. Pro nejlepší výkon, stabilitu a funkčnost s touto verzí Nextcloud je doporučeno PostgreSQL >=12 a <=16.",
- "Failed to load subadmin groups with details" : "Nepodařilo se načíst skupiny dílčích správců s podrobnostmi"
+ "Set default expiration date for shares" : "Nastavit výchozí datum skončení platnosti pro sdílení"
},
"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/settings/l10n/cs.json b/apps/settings/l10n/cs.json
index db6823e7b24..69fe3bccbe1 100644
--- a/apps/settings/l10n/cs.json
+++ b/apps/settings/l10n/cs.json
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP hlavičky",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- HTTP hlavička `%1$s` není nastavena na `%2$s`. To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP hlavička `%1$s` není nastavena na `%2$s`. To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP hlavička `%1$s` neobsahuje `%2$s`. To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- HTTP hlavička `%1$s` není nastavena na `%2$s`, `%3$s`, `%4$s`, `%5$s` nebo `%6$s`. Kvůli tomu může uniknout referer údaj. Podrobnosti viz {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- HTTP hlavička `Strict-Transport-Security` není nastavena na hodnotu alespoň `%d` sekund (stávající hodnota: `%d`). Pro zlepšení zabezpečení je doporučeno použít dlouhou zásadu HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP hlavička `Strict-Transport-Security` HTTP nemá správnou podobu: `%s`. Pro zlepšení zabezpečení je doporučeno zapnout HSTS.",
@@ -313,6 +312,10 @@
"Architecture" : "Architektura",
"64-bit" : "64bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Zdá se, že provozujete 32bitovou verzi PHP. Aby správně fungoval, potřebuje Nextcloud 64bit. Přejděte na 64bit instalaci operačního systému a PHP!",
+ "Task Processing pickup speed" : "Rychlost vyzvedávání zpracovávání úkolů",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Žádné naplánované úkoly v uplynulé %n hodině.","Žádné naplánované úkoly v uplynulých %n hodinách.","Žádné naplánované úkoly v uplynulých %n hodinách.","Žádné naplánované úkoly v uplynulých %n hodinách."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Rychlost vyzvedávání úkolů byla ok za uplynulou %n hodinu.","Rychlost vyzvedávání úkolů byla ok za uplynulých %n hodin.","Rychlost vyzvedávání úkolů byla ok za uplynulých %n hodin.","Rychlost vyzvedávání úkolů byla ok za uplynulých %n hodin."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Rychlost vyzvedávání byla nízká za uplynulou %n hodinu. U mnoha úkolů trvalo více než 4 minuty, než byly vyzvednuty. Zvažte nastavení zpracovávajícího procesu na pozadí.","Rychlost vyzvedávání byla nízká za uplynulé %n hodiny. U mnoha úkolů trvalo více než 4 minuty, než byly vyzvednuty. Zvažte nastavení zpracovávajícího procesu na pozadí.","Rychlost vyzvedávání byla nízká za uplynulých %n hodin. U mnoha úkolů trvalo více než 4 minuty, než byly vyzvednuty. Zvažte nastavení zpracovávajícího procesu na pozadí.","Rychlost vyzvedávání byla nízká za uplynulé %n hodiny. U mnoha úkolů trvalo více než 4 minuty, než byly vyzvednuty. Zvažte nastavení zpracovávajícího procesu na pozadí."],
"Temporary space available" : "Dočasný prostor k dispozici",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Chyba při kontrole popisu umístění dočasných souborů PHP – nebylo správně nastaveno na složku. Vrácená hodnota: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP funkce „disk_free_space“ je vypnutá, což brání v kontrolách zda je k dispozici dostatek místa ve složkách pro dočasná data.",
@@ -415,7 +418,7 @@
"Featured apps are developed by and within the community. They offer central functionality and are ready for production use." : "Doporučované aplikace jsou vyvíjeny komunitou. Jsou propojeny se zbytkem Nextcloud a připraveny na produkční nasazení.",
"Community rating: {score}/5" : "Hodnocení komunitou: {score}/5",
"Disable all" : "Zakázat vše",
- "Download and enable all" : "Stáhnout si a zapnout vše",
+ "Download and enable all" : "Stáhnout a zapnout vše",
"All apps are up-to-date." : "Všechny aplikace jsou aktuální",
"Icon" : "Ikona",
"Name" : "Název",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "Nepodařilo se načíst obsah sekce z katalogu aplikací.",
"Loading" : "Načítání",
"Fetching the latest news…" : "Získávání nejnovějších zpráv…",
- "Carousel" : "Kolotoč",
- "Previous slide" : "Předchozí snímek",
- "Next slide" : "Následující snímek",
- "Choose slide to display" : "Zvolte snímek který zobrazit",
- "{index} of {total}" : "{index} z {total}",
- "Daemon" : "Proces služby",
- "Deploy Daemon" : "Nasadit proces služby",
- "Type" : "Typ",
- "Display Name" : "Zobrazované jméno",
- "GPUs support" : "Podpora pro výpočty na GPU",
- "Compute device" : "Výpočetní zařízení",
- "Advanced deploy options" : "Pokročilé předvolby pro nasazení",
- "Edit ExApp deploy options before installation" : "Předvolby nasazení ExApp před instalací",
- "Configured ExApp deploy options. Can be set only during installation" : "Nastavené předvolby nasazení ExAPP. Je možné nastavovat pouze při instalaci",
- "Learn more" : "Zjistit více",
- "Environment variables" : "Proměnné prostředí",
- "ExApp container environment variables" : "Proměnné prostředí pro kontejner s ExApp",
- "No environment variables defined" : "Nedefinovány žádné proměnné prostředí",
- "Mounts" : "Připojení",
- "Define host folder mounts to bind to the ExApp container" : "Definovat připojení hostitelské složky pro napojení na kontejner s ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Je třeba, aby existovalo na hostiteli procesu nasazovací služby ještě před instalací ExApp",
- "Host path" : "Popis umístění hostitele",
- "Container path" : "Popis umístění kontejneru",
- "Read-only" : "Pouze pro čtení",
- "Remove mount" : "Odebrat připojení",
- "New mount" : "Nové připojení",
- "Enter path to host folder" : "Zadejte popis umístění složky hostitele",
- "Enter path to container folder" : "Zadejte popis umístění složky kontejneru",
- "Toggle read-only mode" : "Vyp/zap. režim pouze pro čtení",
- "Confirm adding new mount" : "Potvrďte přidání nového připojení",
- "Confirm" : "Potvrdit",
- "Cancel adding mount" : "Zrušit přidávání připojení",
- "Cancel" : "Storno",
- "Add mount" : "Přidat připojení",
- "ExApp container mounts" : "Připojení kontejneru s ExApp",
- "No mounts defined" : "Nedefinována žádná připojení",
- "Description" : "Popis",
- "View in store" : "Zobrazit v katalogu",
- "Visit website" : "Navštívit webovou stránku",
- "Usage documentation" : "Dokumentace k používání",
- "Admin documentation" : "Dokumentace pro správce",
- "Developer documentation" : "Dokumentace pro vývojáře",
- "Details" : "Podrobnosti",
- "All" : "Vše",
- "Limit app usage to groups" : "Omezit používání aplikace na skupiny",
- "No results" : "Žádné výsledky",
- "Update to {version}" : "Aktualizovat na {version}",
- "Deploy options" : "Předvolby nasazení",
- "Default Deploy daemon is not accessible" : "Výchozí proces služby nasazování není dostupný",
- "Delete data on remove" : "Při odebrání smazat data",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavený žádný požadavek na minimální verzi Nextcloud. To v budoucnu bude hodnoceno jako chyba.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavenou žádnou nejvyšší podporovanou verzi Nextcloud. To v budoucnu bude hodnoceno jako chyba.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Tuto aplikaci nelze nainstalovat, protože nejsou splněny následující závislosti:",
- "Latest updated" : "Naposledy aktualizováno",
- "Author" : "Autor",
- "Categories" : "Kategorie",
- "Resources" : "Prostředky",
- "Documentation" : "Dokumentace",
- "Interact" : "Interakce",
- "Report a bug" : "Nahlásit chybu",
- "Request feature" : "Požádat o přidání funkce",
- "Ask questions or discuss" : "Položit dotaz či diskutovat",
- "Rate the app" : "Ohodnotit aplikaci",
- "Rate" : "Hodnotit",
- "Changelog" : "Souhrn změn",
- "Google Chrome for Android" : "Google Chrome pro Android",
- "{productName} iOS app" : "{productName} aplikace pro iOS",
- "{productName} Android app" : "{productName} aplikace pro Android",
- "{productName} Talk for iOS" : "{productName} Talk pro iOS",
- "{productName} Talk for Android" : "{productName} Talk pro Android",
- "Sync client" : "Synchronizační klient",
- "This session" : "Toto sezení",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Název zařízení",
- "Cancel renaming" : "Zrušit přejmenovávání",
- "Save new name" : "Uložit nový název",
- "Marked for remote wipe" : "Označeno k vymazání obsahu na dálku",
- "Device settings" : "Nastavení zařízení",
- "Allow filesystem access" : "Povolit přístup k souborovému systému",
- "Rename" : "Přejmenovat",
- "Revoke" : "Odvolat",
- "Wipe device" : "Vymazat obsah zařízení",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Odvolání platnosti tohoto tokenu může zabránit vymazání obsahu zařízení, pokud proces vymazání ještě nebyl do teď zahájen.",
- "Device" : "Zařízení",
- "Last activity" : "Poslední aktivita",
- "Devices & sessions" : "Zařízení a sezení",
- "Web, desktop and mobile clients currently logged in to your account." : "Weboví, desktopoví a mobilní klienti aktuálně přihlášení k vašemu účtu.",
- "Error while creating device token" : "Chyba při vytváření tokenu zařízení",
- "App name" : "Název aplikace",
- "Create new app password" : "Vytvořit nové heslo aplikace",
"App password copied!" : "Heslo pro aplikaci zkopírováno!",
"Copy app password" : "Zkopírovat heslo pro aplikaci",
"Login name copied!" : "Přihlašovací jméno zkopírováno!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "Nedaří se aktualizovat výchozí nastavení pro profily",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Profily nově vytvářených účtů ve výchozím stavu zpřístupňovat nebo nezpřístupňovat.",
+ "Password confirmation is required" : "Je vyžadováno potvrzení hesla",
"Failed to save setting" : "Nastavení se nepodařilo uložit",
"{app}'s declarative setting field: {name}" : "Kolonka deklarativního nastavení {app}: {name}",
"Unable to update server side encryption config" : "Nedaří se zaktualizovat nastavení šifrování na straně serveru",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je vždy dobré vytvářet pravidelné zálohy svých dat. V případě zapnutého šifrování také společně s daty zajistěte zálohu šifrovacích klíčů k nim.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Ohledně toho, jak ručně zašifrovat také existující soubory, nahlédněte do dokumentace pro správce.",
"This is the final warning: Do you really want to enable encryption?" : "Toto je poslední varování: Opravdu chcete zapnout šifrování?",
- "Failed to remove group \"{group}\"" : "Nepodařilo se odebrat skupinu „{group}“",
+ "Failed to delete group \"{group}\"" : "Nepodařilo se vytvořit skupinu „{group}“",
"Please confirm the group removal" : "Potvrďte odstranění skupiny",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Chystáte se smazat skupinu „{group}“. Účty NEbudou smazány.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Chystáte se smazat skupinu „{group}“. Účty k ní přiřazené nebudou smazány.",
+ "Cancel" : "Storno",
+ "Confirm" : "Potvrdit",
"Submit" : "Odeslat",
"Rename group" : "Přejmenovat skupinu",
- "Remove group" : "Odebrat skupinu",
- "Current password" : "Stávající heslo",
- "New password" : "Nové heslo",
- "Change password" : "Změnit heslo",
- "Choose your profile picture" : "Vyberte si svůj profilový obrázek",
- "Please select a valid png or jpg file" : "Vyberte platný png nebo jpg soubor",
- "Error setting profile picture" : "Chyba při nastavování profilového obrázku",
- "Error cropping profile picture" : "Chyba při ořezávání profilového obrázku",
- "Error saving profile picture" : "Chyba při ukládání profilového obrázku",
- "Error removing profile picture" : "Chyba při odebírání profilového obrázku",
- "Your profile picture" : "Váš profilový obrázek",
- "Upload profile picture" : "Nahrát profilový obrázek",
- "Choose profile picture from Files" : "Zvolit profilový obrázek ze Souborů",
- "Remove profile picture" : "Odebrat profilový obrázek",
- "The file must be a PNG or JPG" : "Je třeba, aby soubor by PNG nebo JPG",
- "Picture provided by original account" : "Obrázek poskytovaný původním účtem",
- "Set as profile picture" : "Nastavit jako profilový obrázek",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Mějte na paměti, že může trvat až 24 hodin, než bude váš profilový obrázek aktualizován všude.",
- "Your biography. Markdown is supported." : "Váš životopis. Jsou podporovány Markdown značky.",
- "Unable to update date of birth" : "Nedaří se aktualizovat datum narození",
- "Enter your date of birth" : "Zadejte datum svého narození",
- "You are using {s}{usage}{/s}" : "Využíváte {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Využíváte {s}{usage}{/s} z {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Jste členy následujících skupin:",
- "Your full name" : "Vaše celé jméno",
- "Email options" : "Předvolby e-mailu",
- "Options for additional email address {index}" : "Volby pro dodatečnou e-mailovou adresu {index}",
- "Remove primary email" : "Odebrat hlavní e-mail",
- "Delete email" : "Smazat e-mail",
- "This address is not confirmed" : "Z této adresy jste ještě nepotvrdili ověřovací e-mail",
- "Unset as primary email" : "Zrušeno nastavení coby hlavního e-mailu",
- "Set as primary email" : "Nastavit jako hlavní e-mail",
- "Additional email address {index}" : "Další e-mailová adresa {index}",
- "Unable to delete primary email address" : "Nepodařilo se smazat hlavní e-mailovou adresu",
- "Unable to update primary email address" : "Nepodařilo se aktualizovat hlavní e-mailovou adresu",
- "Unable to add additional email address" : "Nepodařilo se přidat další e-mailovou adresu",
- "Unable to update additional email address" : "Nepodařilo se aktualizovat další e-mailovou adresu",
- "Unable to delete additional email address" : "Nepodařilo se smazat další e-mailovou adresu",
- "Primary email for password reset and notifications" : "Hlavní e-mail pro resetování hesla a oznamování",
- "No email address set" : "E-mailová adresa není nastavena",
- "Your handle" : "Váš identifikátor (handle)",
- "Derived from your locale ({weekDayName})" : "Odvozeno od místních a jazykových nastavení ({weekDayName})",
- "Unable to update first day of week" : "Nepodařilo se zaktualizovat nastavení prvního dne týdne",
- "Day to use as the first day of week" : "Den který používat jako první den týdne",
- "Your headline" : "Váš nadpis",
- "Unable to update language" : "Jazyk se nedaří aktualizovat",
- "Languages" : "Jazyky",
- "Help translate" : "Pomoci s překladem",
- "No language set" : "Není nastaven jazyk",
- "Unable to update locale" : "Nedaří se aktualizovat místní a jazyková nastavení",
- "Locales" : "Místní jazyková nastavení",
- "Week starts on {firstDayOfWeek}" : "Týden začíná {firstDayOfWeek}",
- "No locale set" : "Nenastaveno žádné místní a jazykové nastavení",
- "Your city" : "Město ve kterém/poblíž kterého žijete",
- "Your organisation" : "Vaše organizace",
- "Your phone number" : "Vaše telefonní číslo",
- "Edit your Profile visibility" : "Upravit viditelnost profilu",
- "Unable to update profile enabled state" : "Nedaří se aktualizovat stav zapnutí profilu",
- "Enable profile" : "Zapnout profil",
- "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." : "Ohledně vašeho profilu bude respektována to více omezující nastavení – například, pokud je viditelnost nastavená na „Zobrazit všem“ a rozsah je nastavený na „Soukromé“, je respektováno „Soukromé.",
- "Unable to update visibility of {displayId}" : "Nedaří se aktualizovat viditelnost {displayId}",
- "she/her" : "ona/jí",
- "he/him" : "on/jemu",
- "they/them" : "oni/jim",
- "Your role" : "Vaše úloha",
- "Your X (formerly Twitter) handle" : "Vaše přezdívka na X (dříve Twitter)",
- "Your website" : "Vlastní webová stránka",
- "Invalid value" : "Neplatná hodnota",
- "Unable to update {property}" : "Nedaří se aktualizovat {property}",
- "No {property} set" : "Nenastaveno žádné {property}",
- "Change scope level of {property}, current scope is {scope}" : "Změnit stupeň rozsahu {property}, stávající je {scope}",
- "Unable to update federation scope of the primary {property}" : "Nedaří se aktualizovat rozsah federování primární {property}",
- "Unable to update federation scope of additional {property}" : "Nedaří se aktualizovat rozsah federování dodatečné {property}",
- "Add additional email" : "Přidat další e-mail",
- "Add" : "Přidat",
- "Create" : "Vytvořit",
- "Change" : "Změnit",
- "Delete" : "Smazat",
- "Reshare" : "Sdílet dál dalším",
- "Default language" : "Výchozí jazyk",
- "Common languages" : "Běžné jazyky",
- "Other languages" : "Ostatní jazyky",
- "Password change is disabled because the master key is disabled" : "Změna hesla je vypnutá protože je vypnutý hlavní klíč",
- "No accounts" : "Žádné účty",
- "Loading accounts …" : "Načítání účtů…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Seznam účtů. Není vykreslen celý z důvodu nároků na výkon. Účty budou dokreslovány, jak se budete posouvat seznamem.",
- "Manager" : "Nástroj pro správu",
- "Set line manager" : "Nastavit přímého nadřízeného",
- "Account name will be autogenerated" : "Název účtu bude vytvořen automaticky",
- "Account name (required)" : "Název účtu (vyžadováno)",
- "Failed to search groups" : "Nepodařilo se prohledat skupiny",
- "New account" : "Nový účet",
- "Display name" : "Zobrazované jméno",
- "Either password or email is required" : "Je zapotřebí heslo nebo e-mail",
- "Password (required)" : "Heslo (vyžadováno)",
- "Email (required)" : "E-mail (vyžadováno)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Člen následujících skupin (vyžadováno)",
- "Member of the following groups" : "Člen následujících skupin",
- "Set account groups" : "Nastavit skupiny účtu",
- "Admin of the following groups" : "Správce následujících skupin",
- "Set account as admin for …" : "Nastavit účet správce pro…",
- "Quota" : "Kvóta",
- "Set account quota" : "Nastavit kvótu pro účet",
- "Language" : "Jazyk",
- "Set default language" : "Nastavit výchozí jazyk",
- "Add new account" : "Přidat nový účet",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} účet …","{userCount} účty …","{userCount} účtů …","{userCount} účty …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} účet","{userCount} účty","{userCount} účtů","{userCount} účty"],
- "Total rows summary" : "Celkový souhrn řádek",
- "Scroll to load more rows" : "Další řádky načtete posunutím dolů",
- "Password or insufficient permissions message" : "Zpráva o heslu nebo nedostatečném oprávnění",
- "Avatar" : "Profilový obrázek",
- "Account name" : "Název účtu",
- "Group admin for" : "Správce skupiny",
- "Account backend" : "Podpůrná vrstva účtu",
- "Storage location" : "Úložiště dat",
- "First login" : "První přihlášení",
- "Last login" : "Poslední přihlášení",
- "Account actions" : "Akce ohledně účtu",
- "{size} used" : "{size} použito",
- "Delete account" : "Smazat účet",
- "Disconnect all devices and delete local data" : "Odpojit veškerá zařízení a smazat data na nich",
- "Disable account" : "Vypnout účet",
- "Enable account" : "Zapnout účet",
- "Resend welcome email" : "Znovu poslat uvítací e-mail",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "V případě ztráty zařízení, nebo např. odchodu z firmy, toto může vzdáleně vymazat Nextcloud data ze všech zařízení asociovaných s uživatelem {userid}. Funguje jen pokud se zařízení připojí k Internetu.",
- "Remote wipe of devices" : "Vymazat obsah zařízení na dálku",
- "Wipe {userid}'s devices" : "Vymazat obsah ze zařízení uživatele {userid}",
- "Wiped {userid}'s devices" : "Data ze zařízení uživatele {userid} vymazána",
- "Failed to load groups with details" : "Nepodařilo se načíst skupiny s podrobnostmi",
- "Failed to load sub admin groups with details" : "Nepodařilo se načíst skupiny dílčích správců s podrobnostmi",
- "Failed to update line manager" : "Nepodařilo se aktualizovat přímého nadřízeného",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Úplně vymazat účet {userid}, včetně veškerých osobní souborů, dat aplikací, atd.",
- "Account deletion" : "Smazání účtu",
- "Delete {userid}'s account" : "Smazat účet {userid}",
- "Display name was successfully changed" : "Zobrazené jméno bylo úspěšně změněno",
- "Password can't be empty" : "Heslo je třeba vyplnit",
- "Password was successfully changed" : "Heslo bylo úspěšně změněno",
- "Email can't be empty" : "E-mail je třeba vyplnit",
- "Email was successfully changed" : "E-mail byl úspěšně změněn",
- "Welcome mail sent!" : "Uvítací e-mail odeslán!",
- "Loading account …" : "Načítání účtu…",
- "Change display name" : "Změnit zobrazované jméno",
- "Set new password" : "Nastavit nové heslo",
- "You do not have permissions to see the details of this account" : "Nemáte oprávnění zobrazit si podrobností o tomto účtu",
- "Set new email address" : "Nastavit novou e-mailovou adresu",
- "Add account to group" : "Přidat účet do skupiny",
- "Set account as admin for" : "Nastavit účet coby správce pro",
- "Select account quota" : "Vyberte kvótu pro účet",
- "Set the language" : "Nastavit jazyk",
- "Toggle account actions menu" : "Vyp/zap. nabídku akcí účtu",
- "Done" : "Dokončeno",
- "Edit" : "Upravit",
- "Account management settings" : "Nastavení správy uživatelských účtů",
- "Visibility" : "Viditelnost",
- "Show language" : "Zobrazit jazyk",
- "Show account backend" : "Zobrazit podpůrnou vrstvu účtu",
- "Show storage path" : "Zobrazit popis umístění úložiště",
- "Show first login" : "Zobrazit první přihlášení",
- "Show last login" : "Zobrazit poslední přihlášení",
- "Sorting" : "Řazení",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Nastavení systému vynucuje řazení skupin podle názvu. Toto také vypíná zobrazování počtu členů.",
- "Group list sorting" : "Řazení seznamu skupin",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Z výkonnostních důvodů bude řazení uplatněno pouze na v tuto chvíli načtené skupiny. Ty budou načteny jak se budete pohybovat seznamem nebo ho prohledávat.",
- "By member count" : "Podle počtu členů",
- "By name" : "Podle názvu",
- "Send email" : "Odeslat e-mail",
- "Send welcome email to new accounts" : "Novým účtům posílat uvítací e-maily",
- "Defaults" : "Výchozí",
- "Default quota" : "Výchozí kvóta",
- "Select default quota" : "Vybrat výchozí kvótu",
- "Server error while trying to complete WebAuthn device registration" : "Chyba serveru při pokusu o dokončení registrace WebAuthn zařízení",
- "Passwordless authentication requires a secure connection." : "Ověřování se bez hesla vyžaduje zabezpečené připojení.",
- "Add WebAuthn device" : "Přidat WebAuthn zařízení",
- "Please authorize your WebAuthn device." : "Udělte pověření vámi využívanému WebAuthn zařízení.",
- "Adding your device …" : "Přidávání zařízení…",
- "Unnamed device" : "Nepojmenované zařízení",
- "Passwordless Authentication" : "Ověřování se bez zadávání hesla",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Nastavte svůj účet pro využívání ověřování se bez hesla pomocí standardu FIDO2.",
- "No devices configured." : "Není nastavené žádné zařízení.",
- "The following devices are configured for your account:" : "U svého účtu máte nastavená následující zařízení:",
- "Your browser does not support WebAuthn." : "Vámi používaný prohlížeč nepodporuje WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Jako správce můžete upravit chování sdílení. Více informací naleznete v dokumentaci.",
- "You need to enable the File sharing App." : "Je třeba zapnout aplikaci pro sdílení souborů.",
- "App Store" : "Katalog aplikací",
- "Loading app list" : "Načítání seznamu aplikací…",
- "Loading categories" : "Načítání kategorií…",
- "Developer documentation ↗" : "Dokumentace pro vývojáře ↗",
- "Version {version}, {license}-licensed" : "Verze {version}, {license}-licencováno",
- "Version {version}" : "Verze {version}",
- "All accounts" : "Veškeré účty",
- "Admins" : "Správci",
- "Account group: {group}" : "Skupina účtu: {group}",
- "Account management" : "Správa účtů",
+ "Delete group" : "Smazat skupinu",
"Sending…" : "Odesílání…",
"Email sent" : "E-mail odeslán",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Z výkonových důvodů, pokud zapnete šifrování na Nextcloud serveru, budou šifrovány pouze nové a změněné soubory.",
@@ -790,6 +511,7 @@
"Date of birth" : "Datum narození",
"Full name" : "Celé jméno",
"Additional email" : "Další e-mail",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (např. Mastodon)",
"Headline" : "Nadpis",
"Organisation" : "Organizace",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X (dříve Twitter)",
"Website" : "Webová stránka",
"Profile visibility" : "Viditelnost profilu",
+ "Language" : "Jazyk",
"Locale" : "Místní a jazyková nastavení",
"First day of week" : "První den v týdnu",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Není k dispozici, protože tato vlastnost je vyžadována pro hlavní funkce, včetně sdílení souborů a pozvánek v kalendáři",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "Ukázat jen přihlášeným účtům",
"Hide" : "Skrýt",
"Manually installed apps cannot be updated" : "Ručně nainstalované aplikace není možné zaktualizovat",
+ "Update to {version}" : "Aktualizovat na {version}",
"{progress}% Deploying …" : "{progress}% nasazování…",
"{progress}% Initializing …" : "{progress}% inicializace…",
"Health checking" : "Kontrola stavu",
@@ -825,6 +549,7 @@
"Allow untested app" : "Umožnit nevyzkoušenou aplikaci",
"The app will be downloaded from the App Store" : "Aplikace bude stažena z katalogu aplikací",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Tato aplikace není označena jako kompatibilní s vámi používanou verzí Nexcloud. Pokud budete pokračovat, pořád budete moci aplikaci nainstalovat. Uvědomte si ale, že aplikace nemusí fungovat, jak je očekáváno.",
+ "{size} used" : "{size} použito",
"Unknown" : "Neznámé",
"Never" : "Nikdy",
"Could not register device: Network error" : "Zařízení se nepodařilo zaregistrovat: chyba sítě",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "Nepodařilo se nastavit řazení skupiny",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Z vaší sítě bylo příliš mnoho požadavků. Zkuste to později nebo (pokud je toto chyba) se obraťte na svého správce.",
"Error" : "Chyba",
+ "Default quota" : "Výchozí kvóta",
"Account documentation" : "Dokumentace k účtům",
"Administration documentation" : "Dokumentace ke správě",
+ "Documentation" : "Dokumentace",
"Forum" : "Diskuzní fórum",
"Nextcloud help & privacy resources" : "Nápověda k Nextcloud a prostředky k soukromí",
"General documentation" : "Obecná dokumentace",
@@ -867,6 +594,7 @@
"SMTP Password" : "Heslo pro SMTP",
"Save" : "Uložit",
"Test and verify email settings" : "Vyzkoušet a ověřit nastavení e-mailu",
+ "Send email" : "Odeslat e-mail",
"Security & setup warnings" : "Varování ohledně zabezpečení a nastavení",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Pro zabezpečení a optimální výkon instance Nextcloud je důležité, aby vše bylo správně nastaveno. Jako pomoc, instance samotná automaticky ověřuje některá nastavení. Další informace naleznete v odkazované dokumentaci.",
"All checks passed." : "Všechny kontroly dopadly dobře.",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "Pro zlepšení zabezpečení vašeho účtu použijte vedle hesla také druhý faktor.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Pokud pro připojování se k Nextcloud používáte aplikace třetích stran, nezapomeňte před zapnutím ověřování druhým faktorem vytvořit pro jednotlivé aplikace jejich hesla.",
"Logged in account must be a subadmin" : "Je třeba, aby přihlášený účet byl dílčím správcem",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Aby bylo možné možné povolit spuštění této kontroly je třeba zajistit, aby se webový server mohl připojit sám na sebe. Proto je třeba, aby bylo možné přeložit na IP adresu a připojit se k alespoň jedné z `trusted_domains` nebo `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Chybí volitelný index „%s“ v tabulce „%s“.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "V databázi chybí některé indexy. Protože přidávání indexů na velkých tabulkách může zabrat nějaký čas, nebyly přidány automaticky. Spuštěním „occ db:add-missing-indices“ je možné tyto chybějící indexy ručně za provozu instance. Po přidání indexů dotazy do těchto tabulek jsou obvykle mnohem rychlejší.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Aby bylo možné možné povolit spuštění této kontroly je třeba zajistit, aby se webový server mohl připojit sám na sebe. Proto je třeba, aby bylo možné přeložit na IP adresu a připojit se k alespoň jedné z `trusted_domains` nebo `overwrite.cli.url`. Tento nezdar může být výsledkem neshody DNS na serveru nebo odchozího pravidla na bráně firewall.",
"File locking" : "Zamykání souborů",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transakční zamykání souborů je vypnuto, což může vést k problémům při souběžném přístupu. Abyste se jim vyhnuli, zapněte v config.php volbu „filelocking.enabled“.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Nepodařilo se zkontrolovat ohledně podpory pro JavaScript prostřednictvím libovolné z vašich `trusted_domains` ani `overwrite.cli.url`. Může se jednat o důsledek neshody DNS na straně serveru nebo odchozího pravidla na bráně firewall. Ručně zkontrolujte zda váš webový server poskytuje `.mjs` soubory pomocí MIME typu JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "Limit paměti pro PHP je nastaven na níže než doporučenou hodnotu %s.",
"for WebAuthn passwordless login" : "pro WebAuthn přihlášení bez hesla",
"for WebAuthn passwordless login, and SFTP storage" : "pro WebAuthn přihlášení bez hesla a SFTP úložiště",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Nyní provozujete na PHP %s. Od Nextcloud 27 je PHP 8.0 už označeno jako zastaralé. Nextcloud 28 pak už může vyžadovat alespoň PHP 8.1. Co možná nejdříve přejděte na některou z oficiálně podporovaných verzí PHP, poskytovaných PHP Group.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Je používána verze MariaDB „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje MariaDB 10.2 nebo novější.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Je používána verze MySQL „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje MySQL 8.0 nebo MariaDB 10.2 a novější.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Je používána verze PostgreSQL „%s“. Nextcloud 21 a novější už tuto verzi nepodporuje a vyžaduje PostgreSQL 9.6 nebo novější.",
- "Speech-To-Text" : "Převod řeči na text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Převod řeči na text je možné implementovat různými aplikacemi. Zde je možné nastavit, která z nich má být používána.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Žádná z v tuto chvíli nainstalovaných aplikací neposkytuje funkci převodu řeči na text",
- "None of your currently installed apps provide Text processing functionality" : "Žádná z v tuto chvíli nainstalovaných aplikací neposkytuje funkci zpracovávání textu",
- "Set default expiration date for shares" : "Nastavit výchozí datum skončení platnosti pro sdílení",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Povolit automatické doplňování uživatelského jména v dialogu sdílení a umožnit přístup k systémovému adresáři kontaktů",
- "Your biography" : "Váš životopis",
- "You are using <strong>{usage}</strong>" : "Využíváte <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Využíváte <strong>{usage}</strong> z <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Nastavit nadřízeného uživatele",
- "Username will be autogenerated" : "Uživatelské jméno bude vytvořeno automaticky",
- "Username (required)" : "Uživatelské jméno (vyžadováno)",
- "New user" : "Nový uživatel",
- "Groups (required)" : "Skupiny (vyžadováno)",
- "Set user groups" : "Nastavit skupiny uživatele",
- "Administered groups" : "Spravované skupiny",
- "Set user as admin for …" : "Nastavit uživatele jako správce pro",
- "Set user quota" : "Nastavit uživateli kvótu",
- "Add new user" : "Přidat nového uživatele",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} uživatel …","{userCount} uživatelé …","{userCount} uživatelů …","{userCount} uživatelé …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} uživatel","{userCount} uživatelé","{userCount} uživatelů","{userCount} uživatelé"],
- "Loading users …" : "Načítání uživatelů…",
- "Username" : "Uživatelské jméno",
- "User backend" : "Podpůrná vrstva pro uživatelské účty",
- "User actions" : "Akce ohledně uživatele",
- "Add user to group" : "Přidat uživatele do skupiny",
- "Server error while trying to add WebAuthn device" : "Chyba serveru při pokusu o přidání WebAuthn zařízení",
- "Name your device" : "Nazvěte své zařízení",
- "Active accounts" : "Aktivní účty",
- "Follow us on Twitter" : "Následujte nás na Twitteru",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Aby bylo možné možné povolit spuštění této kontroly je třeba zajistit, aby se webový server mohl připojit sám na sebe. Proto je třeba, aby bylo možné přeložit na IP adresu a připojit se k alespoň jedné z `trusted_domains` nebo `overwrite.cli.url`. Tento nezdar může být výsledkem neshody DNS na serveru nebo odchozího pravidla na bráně firewall.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP hlavička `%1$s` neobsahuje `%2$s`. To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Zjištěna verze PostgreSQL „%s“. Pro nejlepší výkon, stabilitu a funkčnost s touto verzí Nextcloud je doporučeno PostgreSQL >=12 a <=16.",
- "Failed to load subadmin groups with details" : "Nepodařilo se načíst skupiny dílčích správců s podrobnostmi"
+ "Set default expiration date for shares" : "Nastavit výchozí datum skončení platnosti pro sdílení"
},"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/settings/l10n/da.js b/apps/settings/l10n/da.js
index 5eb926c6de6..c897036afbd 100644
--- a/apps/settings/l10n/da.js
+++ b/apps/settings/l10n/da.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP headere",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- The ' %1$s' HTTP- header er ikke indstillet til ' %2$s'. Nogle funktioner virker måske ikke korrekt, da det anbefales at justere denne indstilling i overensstemmelse hermed.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- The ' %1$s' HTTP- header er ikke indstillet til ' %2$s'. Dette er en potentiel sikkerheds- eller fortrolighedsrisiko, da det anbefales at justere denne indstilling i overensstemmelse hermed.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP- headeren ' %1$s' indeholder ikke ' %2$s'. Dette er en potentiel sikkerheds- eller fortrolighedsrisiko, da det anbefales at justere denne indstilling i overensstemmelse hermed.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP header er ikke indstillet til `%2$s`, `%3$s`, `%4$s`, `%5$s` eller `%6$s`. Dette kan lække reference information. Se mere {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- The 'Strict-Transport-Security' HTTP- header er ikke indstillet til mindst '%d' sekunder (aktuel værdi: '%d'). For øget sikkerhed, anbefales det at bruge en lang HSTS politik.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- The 'Strict-Transport-Security' HTTP- header er misdannet: '%s'. For øget sikkerhed anbefales det at aktivere HSTS.",
@@ -443,97 +442,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Kunne ikke hente det valgte indhold fra app store.",
"Loading" : "Loader",
"Fetching the latest news…" : "Henter seneste nyt...",
- "Carousel" : "Karrusel",
- "Previous slide" : "Forrige slide",
- "Next slide" : "Næste slide",
- "Choose slide to display" : "Vælg slide til visning",
- "{index} of {total}" : "{index} ud af {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Implementer Daemon",
- "Type" : "Type",
- "Display Name" : "Vist navn",
- "GPUs support" : "GPUs understøttelse",
- "Compute device" : "Beregningsapparat",
- "Advanced deploy options" : "Avancerede implementeringsmuligheder",
- "Edit ExApp deploy options before installation" : "Rediger ExApp implementeringsindstillinger før installation",
- "Configured ExApp deploy options. Can be set only during installation" : "Konfigurerede ExApp implementeringsmuligheder. Kan kun indstilles under installationen",
- "Learn more" : "Lær mere",
- "Environment variables" : "Miljøvariabler",
- "ExApp container environment variables" : "ExApp container miljøvariabler",
- "No environment variables defined" : "Ingen miljøvariabler defineret",
- "Mounts" : "Monteringer",
- "Define host folder mounts to bind to the ExApp container" : "Definer værtsmappemonteringer for at binde til ExApp beholderen",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Skal eksistere på Deploy daemon værten, før installation af ExApp",
- "Host path" : "Host stien",
- "Container path" : "Beholderstien",
- "Read-only" : "Skrivebeskyttet",
- "Remove mount" : "Fjern montering",
- "New mount" : "Ny montering",
- "Enter path to host folder" : "Indtast stien til host mappen",
- "Enter path to container folder" : "Indtast stien til beholdermappen",
- "Toggle read-only mode" : "Skift skrivebeskyttet tilstand",
- "Confirm adding new mount" : "Bekræft tilføjelse af ny montering",
- "Confirm" : "Bekræft",
- "Cancel adding mount" : "Annuller tilføjelse af montering",
- "Cancel" : "Annuller",
- "Add mount" : "Tilføj montering",
- "ExApp container mounts" : "ExApp beholdermonteringer",
- "No mounts defined" : "Der er ikke defineret nogen monteringer",
- "Description" : "Beskrivelse",
- "View in store" : "Se i butik",
- "Visit website" : "Besøg hjemmeside",
- "Usage documentation" : "Anvendelsesdokumentation",
- "Admin documentation" : "Admin-dokumentation",
- "Developer documentation" : "Dokumentation for udviklere",
- "Details" : "Detaljer",
- "All" : "Alle",
- "Limit app usage to groups" : "Begræns appanvendelse til grupper",
- "No results" : "Ingen resultater",
- "Update to {version}" : "Opdateret til {version}",
- "Deploy options" : "Implementeringsmuligheder",
- "Default Deploy daemon is not accessible" : "Standard udrulningsdaemon er ikke tilgængelig",
- "Delete data on remove" : "Slet data ved fjernelse",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Denne app har ikke angivet en minimums understøttet version af Nextcloud. I fremtiden vil dette medføre en fejl.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denne app har ikke angivet en maksimums understøttet version af Nextcloud. I fremtiden vil dette medføre en fejl.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Dette program kan ikke installeres, da følgende afhængigheder ikke imødekommes:",
- "Latest updated" : "Sidst opdaterede",
- "Author" : "Forfatter",
- "Categories" : "Kategorier",
- "Resources" : "Resourcer",
- "Documentation" : "Dokumentation",
- "Interact" : "Interager",
- "Report a bug" : "Rapporter en fejl",
- "Request feature" : "Foreslå feature",
- "Ask questions or discuss" : "Stil spørgsmål eller diskuter",
- "Rate the app" : "Bedøm appen",
- "Rate" : "Bedøm",
- "Changelog" : "Ændringslog",
- "Google Chrome for Android" : "Google Chrome til Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Snak til iOS",
- "{productName} Talk for Android" : "{productName} Snak til Android",
- "Sync client" : "Synkroniser klient",
- "This session" : "Sessionen",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Enheds navn",
- "Cancel renaming" : "Annuller omdøbning",
- "Save new name" : "Gem nyt navn",
- "Marked for remote wipe" : "Markeret til fjernsletning",
- "Device settings" : "Enhedsindstillinger",
- "Allow filesystem access" : "Tillad filsystem adgang",
- "Rename" : "Omdøb",
- "Revoke" : "Tilbagekald",
- "Wipe device" : "Slet enhed",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Tilbagekaldelse af denne token kan muligvis forhindre sletning af din enhed, hvis sletningen endnu ikke er startet.",
- "Device" : "Enhed",
- "Last activity" : "Sidste aktivitet",
- "Devices & sessions" : "Enheder og sessioner",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, stationære og mobile klienter, der er logget ind på din konto.",
- "Error while creating device token" : "Fejl ved oprettelse af enhedsnøgle",
- "App name" : "App navn",
- "Create new app password" : "Opret nyt app kodeord",
"App password copied!" : "App adgangskode kopieret!",
"Copy app password" : "Kopier app adgangskode",
"Login name copied!" : "Log på navn kopieret!",
@@ -561,6 +469,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Kan ikke opdatere profilens standardindstilling",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Aktiver eller deaktiver profil som standard for nye konti.",
+ "Password confirmation is required" : "Bekræftelse af adgangskode er påkrævet",
"Failed to save setting" : "Kunne ikke gemme indstillingerne",
"{app}'s declarative setting field: {name}" : "{app}'s deklarative indstillingsfelt: {name}",
"Unable to update server side encryption config" : "Kan ikke opdatere krypteringskonfigurationen på serversiden",
@@ -583,206 +492,11 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det er altid godt at lave regelmæssige sikkerhedskopier af dine data, i tilfælde af kryptering skal du sørge for at tage backup af krypteringsnøglerne sammen med dine data.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Se administratordokumentationen om, hvordan man manuelt også krypterer eksisterende filer.",
"This is the final warning: Do you really want to enable encryption?" : "Dette er den sidste advarsel: Sikker på at du vil slå kryptering til?",
- "Failed to remove group \"{group}\"" : "Kunne ikke slette gruppen \"{group}\"",
"Please confirm the group removal" : "Bekræft venligst sletning af gruppen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du er ved at fjerne gruppen \"{group}\". Konti indeholdt i gruppen vil IKKE blive slettet.",
+ "Cancel" : "Annuller",
+ "Confirm" : "Bekræft",
"Submit" : "Tilføj",
"Rename group" : "Omdøb gruppe",
- "Remove group" : "Fjern gruppe",
- "Current password" : "Nuværende adgangskode",
- "New password" : "Ny adgangskode",
- "Change password" : "Skift kodeord",
- "Choose your profile picture" : "Vælg dit profil billede",
- "Please select a valid png or jpg file" : "Vælg en gyldig PNG eller JPG fil",
- "Error setting profile picture" : "Fejl; profil billede ikke gyldigt",
- "Error cropping profile picture" : "Fejl, kunne ikke beskære profil billede",
- "Error saving profile picture" : "Fejl; kunne ikke gemme profil billede",
- "Error removing profile picture" : "Fejl; kunne ikke slette profil billede",
- "Your profile picture" : "Dit profil billede",
- "Upload profile picture" : "Upload profil billede",
- "Choose profile picture from Files" : "Vælg profil billede fra Filer",
- "Remove profile picture" : "Fjern profil billede",
- "The file must be a PNG or JPG" : "Fil format: PNG eller JPG",
- "Picture provided by original account" : "Billede leveret af den oprindelige konto",
- "Set as profile picture" : "Indstil som profil billede",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Bemærk; det tager op til 24 timer for dit profil billede, at blive opdateret alle steder.",
- "Your biography. Markdown is supported." : "Din biografi. Markdown understøttes.",
- "Unable to update date of birth" : "Kunne ikke opdatere fødselsdato",
- "Enter your date of birth" : "Indtast din fødselsdato",
- "You are using {s}{usage}{/s}" : "Du anvender {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Du anvender {s}{usage}{/s} af {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Du er medlem af følgende grupper:",
- "Your full name" : "Dit fulde navn",
- "Email options" : "E-mail indstillinger",
- "Options for additional email address {index}" : "Muligheder for yderligere email {index}",
- "Remove primary email" : "Fjern primær e-mail",
- "Delete email" : "Slet e-mail",
- "This address is not confirmed" : "Denne adresse er ikke bekræftet",
- "Unset as primary email" : "Deaktiveret som primær e-mail",
- "Set as primary email" : "Indstil som primær e-mail",
- "Additional email address {index}" : "Yderligere e-mailadresse {index}",
- "Unable to delete primary email address" : "Den primære e-mailadresse kunne ikke slettes",
- "Unable to update primary email address" : "Den primære e-mailadresse kunne ikke opdateres",
- "Unable to add additional email address" : "Kan ikke tilføje yderligere e-mailadresse",
- "Unable to update additional email address" : "Kan ikke opdatere yderligere e-mailadresse",
- "Unable to delete additional email address" : "Kan ikke slette yderligere e-mailadresse",
- "Primary email for password reset and notifications" : "Primær e-mail til nulstilling af adgangskode og meddelelser",
- "No email address set" : "Der er ikke angivet e-mailadresse",
- "Your handle" : "Dit kendetegn",
- "Derived from your locale ({weekDayName})" : "Afledt af systemindstillinger ({weekDayName})",
- "Unable to update first day of week" : "Kunne ikke opdatere indstillingerne for første ugedag",
- "Day to use as the first day of week" : "Første dag i ugen",
- "Your headline" : "Din overskrift",
- "Unable to update language" : "Kunne ikke opdatere sproget",
- "Languages" : "Sprog",
- "Help translate" : "Hjælp med oversættelsen",
- "No language set" : "Intet sprog indstillet",
- "Unable to update locale" : "Kunne ikke opdaterer lokalitet",
- "Locales" : "Lokaliteter",
- "Week starts on {firstDayOfWeek}" : "Første ugedag: {firstDayOfWeek}",
- "No locale set" : "Ingen lokalitet indstillet",
- "Your city" : "Din by",
- "Your organisation" : "Din organisation",
- "Your phone number" : "Dit telefon nummer",
- "Edit your Profile visibility" : "Rediger din profils synlighed",
- "Unable to update profile enabled state" : "Kan ikke opdatere profilaktiveret tilstand",
- "Enable profile" : "Aktiver profil",
- "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." : "Den mere restriktive indstilling af enten synlighed eller omfang respekteres på din profil. For eksempel, hvis synlighed er indstillet til \"Vis til alle\", og omfanget er indstillet til \"Privat\", så respekteres \"Privat\".",
- "Unable to update visibility of {displayId}" : "Kan ikke opdatere synligheden af {displayId}",
- "she/her" : "hun/hende",
- "he/him" : "han/ham",
- "they/them" : "de/dem",
- "Your role" : "Din rolle",
- "Your X (formerly Twitter) handle" : "Dit X (tidligere Twitter) brugernavn",
- "Your website" : "Vores hjemmeside",
- "Invalid value" : "Ugyldig værdi",
- "Unable to update {property}" : "Kunne ikke opdaterer {property}",
- "No {property} set" : "Ingen {property} indstillet",
- "Change scope level of {property}, current scope is {scope}" : "Skift omfangsniveau for {property}, nuværende omfang er {scope}",
- "Unable to update federation scope of the primary {property}" : "Kan ikke opdatere sammenkoblings scope for den primære {property}",
- "Unable to update federation scope of additional {property}" : "Kan ikke opdatere sammenkoblings scope for yderligere {property}",
- "Add additional email" : "Tilføj yderligere e-mail",
- "Add" : "Tilføj",
- "Create" : "Opret",
- "Change" : "Ændr",
- "Delete" : "Slet",
- "Reshare" : "Videredel",
- "Default language" : "Standardsprog",
- "Common languages" : "Hyppigt anvendte sprog",
- "Other languages" : "Andre sprog",
- "Password change is disabled because the master key is disabled" : "Adgangskodeændring er deaktiveret, fordi hovednøglen er deaktiveret",
- "No accounts" : "Ingen konto",
- "Loading accounts …" : "Indlæser kontoerne...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Brugerkonti. Hele listen er ikke hentet, af hensyn til størrelsen. Listen vil blive hentet løbende som du kører igennem listen.",
- "Manager" : "Administrer",
- "Set line manager" : "Sæt linjeleder",
- "Account name will be autogenerated" : "Brugernavnet vil blive genereret automatisk",
- "Account name (required)" : "Brugernavn (påkrævet)",
- "Failed to search groups" : "Fejl under søgning af grupper",
- "New account" : "Ny konto",
- "Display name" : "Vist navn",
- "Either password or email is required" : "Adgangskode eller e-mail er påkrævet",
- "Password (required)" : "Adgangskode (påkrævet)",
- "Email (required)" : "E-mail (påkrævet)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Medlem af følgende grupper (påkrævet)",
- "Member of the following groups" : "Medlem af følgende grupper",
- "Set account groups" : "Indstil bruger grupper",
- "Admin of the following groups" : "Administrator for følgende grupper",
- "Set account as admin for …" : "Sæt konto som administrator for ...",
- "Quota" : "Kvote",
- "Set account quota" : "Sæt konto kvote",
- "Language" : "Sprog",
- "Set default language" : "Vælg standard sprog",
- "Add new account" : "Tilføj ny konto",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} konto …","{userCount} konti …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} konto","{userCount} konti"],
- "Total rows summary" : "Samlet række antal",
- "Scroll to load more rows" : "Rul for at indlæse flere rækker",
- "Password or insufficient permissions message" : "Besked om adgangskode eller manglende rettigheder",
- "Avatar" : "Avatar",
- "Account name" : "Kontonavn",
- "Group admin for" : "Gruppeadministrator for",
- "Account backend" : "Konto backend",
- "Storage location" : "Placering af lageret",
- "First login" : "Første log på",
- "Last login" : "Seneste login",
- "Account actions" : "Kontohandlinger",
- "{size} used" : "{size} brugt",
- "Delete account" : "Slet konto",
- "Disconnect all devices and delete local data" : "Afbryd forbindelsen til alle indloggede enheder og slet lokale data",
- "Disable account" : "Deaktiver konto",
- "Enable account" : "Aktiver konto",
- "Resend welcome email" : "Send velkomstemail igen",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "I tilfælde af en tabt enhed eller at en forlader organisationen, så kan dette fjernslette Nextcloud-dataene fra alle enheder, der er knyttet til {userid}. Virker kun, hvis enhederne er forbundet til internettet.",
- "Remote wipe of devices" : "Fjernsletning af enheder",
- "Wipe {userid}'s devices" : "Slet {userid}'s enheder",
- "Wiped {userid}'s devices" : "Slettede {userid}'s enheder",
- "Failed to load groups with details" : "Kunne ikke indlæse grupper med detaljer",
- "Failed to load sub admin groups with details" : "Kunne ikke indlæse underadministratorgrupper med detaljer",
- "Failed to update line manager" : "Kunne ikke opdatere linjeleder",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Slet {userid}s konto fuldstændigt, inklusiv alle deres personlige filer, appdata osv.",
- "Account deletion" : "Sletning af konto",
- "Delete {userid}'s account" : "Slet {userid}s konto",
- "Display name was successfully changed" : "Vist navn er ændret",
- "Password can't be empty" : "Adgangskode kan ikke være tom",
- "Password was successfully changed" : "Adgangskode er ændret",
- "Email can't be empty" : "E-mail kan ikke være tom",
- "Email was successfully changed" : "E-mail adresse er ændret",
- "Welcome mail sent!" : "Velkomstemail sendt!",
- "Loading account …" : "Indlæser konto ...",
- "Change display name" : "Rediger vist navn",
- "Set new password" : "Angiv ny adgangskode",
- "You do not have permissions to see the details of this account" : "Du har ikke tilladelse til at se denne brugers detaljer",
- "Set new email address" : "Angiv ny e-mail adresse",
- "Add account to group" : "Føj bruger til gruppe",
- "Set account as admin for" : "Sæt konto som administrator for ...",
- "Select account quota" : "Sæt konto kvote",
- "Set the language" : "Indstil sproget",
- "Toggle account actions menu" : "Skift kontohandlingsmenu",
- "Done" : "Færdig",
- "Edit" : "Rediger",
- "Account management settings" : "Kontoadministrationsindstillinger",
- "Visibility" : "Synlighed",
- "Show language" : "Vis sprog",
- "Show account backend" : "Vis backend konto",
- "Show storage path" : "Vis lagersti",
- "Show first login" : "Vis første log på",
- "Show last login" : "Vis seneste login",
- "Sorting" : "Sortering",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Systemkonfigurationen gennemtvinger sortering af grupperne efter navn. Dette deaktiverer også visning af medlemsantallet.",
- "Group list sorting" : "Gruppeliste sortering",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Sortering gælder kun for de aktuelt indlæste grupper af hensyn til ydeevne. Grupper vil blive indlæst som du navigere eller søge gennem listen.",
- "By member count" : "Efter medlemstal",
- "By name" : "Efter navn",
- "Send email" : "Send e-mail",
- "Send welcome email to new accounts" : "Send velkomstmail til nye konti",
- "Defaults" : "Standarder",
- "Default quota" : "Standard kvote",
- "Select default quota" : "Vælg standardkvote",
- "Server error while trying to complete WebAuthn device registration" : "Serverfejl under forsøg på at fuldføre WebAuthn-enhedsregistrering",
- "Passwordless authentication requires a secure connection." : "Adgangskodefri godkendelse kræver en sikker forbindelse.",
- "Add WebAuthn device" : "Tilføj WebAuthn-enhed",
- "Please authorize your WebAuthn device." : "Godkend venligst din WebAuthn-enhed.",
- "Adding your device …" : "Tilføjer din enhed...",
- "Unnamed device" : "Unavngiven enhed",
- "Passwordless Authentication" : "Adgangskodeløs godkendelse",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Konfigurer din konto til adgangskodefri godkendelse efter FIDO2-standarden.",
- "No devices configured." : "Ingen enheder konfigureret.",
- "The following devices are configured for your account:" : "Følgende enheder er konfigureret til din konto:",
- "Your browser does not support WebAuthn." : "Din browser understøtter ikke WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Som administrator kan du finjustere delingsadfærden. Se venligst dokumentationen for mere information.",
- "You need to enable the File sharing App." : "Du skal aktivere fildelingsappen.",
- "App Store" : "App Store",
- "Loading app list" : "Send velkomstmail til nye konti",
- "Loading categories" : "Indlæser kategorier",
- "Developer documentation ↗" : "Udviklerdokumentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-licenseret",
- "Version {version}" : "Version {version}",
- "All accounts" : "Alle konti",
- "Admins" : "Administratorer",
- "Account group: {group}" : "Konto gruppe: {group}",
- "Account management" : "Kontostyring",
"Sending…" : "Sender...",
"Email sent" : "E-mail afsendt",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Af hensyn til performancemæssige, så er det kun nye og ændrede filer, der krypteres, når du aktiverer kryptering på en Nextcloud server.",
@@ -792,6 +506,7 @@ OC.L10N.register(
"Date of birth" : "Fødselsdato",
"Full name" : "Fulde navn",
"Additional email" : "Yderligere e-mail",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (fx Mastodon)",
"Headline" : "Overskrift",
"Organisation" : "Organisation",
@@ -801,6 +516,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (tidligere Twitter)",
"Website" : "Hjemmeside",
"Profile visibility" : "Profilsynlighed",
+ "Language" : "Sprog",
"Locale" : "Lokalitet",
"First day of week" : "Første dag i ugen",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Ikke tilgængelig, da denne egenskab er påkrævet for kernefunktionalitet, herunder fildeling og kalenderinvitationer",
@@ -818,6 +534,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Vis kun til påloggede konti",
"Hide" : "Skjul",
"Manually installed apps cannot be updated" : "Manuelt installerede apps kan ikke opdateres",
+ "Update to {version}" : "Opdateret til {version}",
"{progress}% Deploying …" : "{progress}% Udruller …",
"{progress}% Initializing …" : "{progress}% Initialiserer …",
"Health checking" : "Sundhedskontrol",
@@ -827,6 +544,7 @@ OC.L10N.register(
"Allow untested app" : "Tillad ikke-testet app",
"The app will be downloaded from the App Store" : "Appen vil blive downloadet fra App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Denne app er ikke markeret som kompatibel med din Nextcloud version. Hvis du fortsætter, vil du stadig være i stand til at installere appen. Bemærk, at appen muligvis ikke fungerer som forventet.",
+ "{size} used" : "{size} brugt",
"Unknown" : "Ukendt",
"Never" : "Aldrig",
"Could not register device: Network error" : "Kunne ikke registrere apparat: Netværksfejl",
@@ -845,8 +563,10 @@ OC.L10N.register(
"Could not set group sorting" : "Kunne ikke indstille gruppesortering",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Der har været for mange forespørgsmåler fra dit netværk. Forsøg igen senere eller kontakt din administrator hvis dette er en fejl.",
"Error" : "Fejl",
+ "Default quota" : "Standard kvote",
"Account documentation" : "Konto dokumentation",
"Administration documentation" : "Administrations dokumentation",
+ "Documentation" : "Dokumentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud hjælpe- og privatlivsressourcer",
"General documentation" : "Overordnet dokumentation",
@@ -869,6 +589,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP Kodeord",
"Save" : "Gem",
"Test and verify email settings" : "Afprøv og bekræft indstillinger",
+ "Send email" : "Send e-mail",
"Security & setup warnings" : "Advarsler om sikkerhed og opsætning",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Det er vigtigt for sikkerheden og ydeevnen af din instans, at alt er konfigureret korrekt. For at hjælpe dig med det, så laver vi foretager vi nogle automatiske kontroller. Se venligst den linkede dokumentation for mere information.",
"All checks passed." : "Alle tjek blev bestået.",
@@ -888,51 +609,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Brug to-faktor godkendelse for at øge sikkerheden for din konto.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Hvis du bruger tredjepartsapplikationer til at oprette forbindelse til Nextcloud, så skal du sørge for at oprette og konfigurere en app-adgangskode for hver applikation, før du aktiverer to-faktor-godkendelse.",
"Logged in account must be a subadmin" : "På-logget konto skal være en subadmin",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "For at tillade denne kontrol at køre, så skal du sørge for, at din webserver kan oprette forbindelse til sig selv. Derfor skal den være i stand til at opløse og oprette forbindelse til mindst et af sine `trusted_domains` eller `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Manglende valgfrit indeks \"%s\" i tabellen \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Databasen mangler nogle indekser. Da tilføjelse af indekser kan tage noget tid, blev de ikke tilføjet automatisk. Kør \"occ db:add-missing-indices\" for manuelt at tilføje disse indekser mens forekomsten forbliver aktiv. Når indekserne er tilføjet, er forespørgsler til disse tabeller normalt meget hurtigere. ",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "For at tillade at denne kontrol køres så skal du sikre dig at din webserver kan forbinde til sig selv. Derfor skal den kunne opløse og forbinde til mindst en af dets `trusted_domains` eller `overwrite.cli.url`. Denne fejl kan være resultatet af en server-side DNS mismatch eller udadgående firewall regel.",
"File locking" : "Fillåsning",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transaktionel fillåsning er deaktiveret. Dette kan føre til problemer med ræskonditioner. Aktiver \"filelocking.enabled\" i config.php for at undgå disse problemer.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Kunne ikke søge efter JavaScript understøttelse via nogen af ​​dine `trusted_domains` eller `overwrite.cli.url`. Dette kan være på grund af en DNS uoverensstemmelse på serversiden eller udgående firewallregel. Tjek venligst manuelt, om din webserver leverer `.mjs` filer ved hjælp af JavaScript MIME typen.",
"The PHP memory limit is below the recommended value of %s." : "PHP hukommelsesgræsen er under den anbefalede værdi på %s.",
"for WebAuthn passwordless login" : "til WebAuthn adgangskodeløst login",
"for WebAuthn passwordless login, and SFTP storage" : "til WebAuthn adgangskodeløst login, og SFTP lagring",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du kører i øjeblikket PHP %s. PHP 8.0 er nu forældet i Nextcloud 27. Nextcloud 28 kan kræve mindst PHP 8.1. Opgrader til en af de officielt understøttede PHP-versioner, som PHP Group leverer så hurtigt som muligt.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" anvendes. Nextcloud 21 og højere understøtter ikke denne version og kræver MariaDB 10.2 eller højere.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" anvendes. Nextcloud 21 og højere understøtter ikke denne version og kræver MySQL 8.0 eller MariaDB 10.2 eller højere.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" anvendes. Nextcloud 21 og højere understøtter ikke denne version og kræver PostgreSQL 9.6 eller højere.",
- "Speech-To-Text" : "Tale Til Tekst",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "\"Tale Til Tekst\" kan implementeres af forskellige apps. Her kan du indstille hvilken app der skal bruges.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ingen af dine aktuelt installerede apps giver \"Tale Til Tekst\" funktionalitet",
- "None of your currently installed apps provide Text processing functionality" : "Ingen af ​​dine aktuelt installerede apps giver tekstbehandlingsfunktionalitet",
- "Set default expiration date for shares" : "Indstil standardudløbsdato for delinger",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Tillad automatisk fuldførelse af brugernavn i delingsdialogen og giv adgang til systemadressebogen",
- "Your biography" : "Din biografi",
- "You are using <strong>{usage}</strong>" : "Forbrug: <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Forbrug: <strong>{usage}</strong> af <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Vælg administrator",
- "Username will be autogenerated" : "Brugernavnet vil blive genereret automatisk",
- "Username (required)" : "Brugernavn (påkrævet)",
- "New user" : "Ny bruger",
- "Groups (required)" : "Grupper (påkrævet)",
- "Set user groups" : "Vælg bruger grupper",
- "Administered groups" : "Administrerede grupper",
- "Set user as admin for …" : "Gør til administrator for ...",
- "Set user quota" : "Vælg bruger kvote",
- "Add new user" : "Tilføj ny bruger",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} bruger …","{userCount} brugere …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} bruger","{userCount} brugere"],
- "Loading users …" : "Henter brugere ...",
- "Username" : "Brugernavn",
- "User backend" : "Bruger-backend",
- "User actions" : "Bruger handlinger",
- "Add user to group" : "Føj bruger til gruppe",
- "Server error while trying to add WebAuthn device" : "Serverfejl under forsøg på at tilføje WebAuthn-enhed",
- "Name your device" : "Navngiv din enhed",
- "Active accounts" : "Aktive konti",
- "Follow us on Twitter" : "Følg os på Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "For at tillade at denne kontrol køres så skal du sikre dig at din webserver kan forbinde til sig selv. Derfor skal den kunne opløse og forbinde til mindst en af dets `trusted_domains` eller `overwrite.cli.url`. Denne fejl kan være resultatet af en server-side DNS mismatch eller udadgående firewall regel.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP- headeren ' %1$s' indeholder ikke ' %2$s'. Dette er en potentiel sikkerheds- eller fortrolighedsrisiko, da det anbefales at justere denne indstilling i overensstemmelse hermed.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL- version \"%s\" fundet. PostgreSQL > = 12 og < = 16 er foreslået for bedste ydeevne, stabilitet og funktionalitet med denne version af Nextcloud.",
- "Failed to load subadmin groups with details" : "Kunne ikke indlæse subadmin grupper med detaljer"
+ "Set default expiration date for shares" : "Indstil standardudløbsdato for delinger"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/da.json b/apps/settings/l10n/da.json
index 9e7c0049e71..66e7a16f99a 100644
--- a/apps/settings/l10n/da.json
+++ b/apps/settings/l10n/da.json
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP headere",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- The ' %1$s' HTTP- header er ikke indstillet til ' %2$s'. Nogle funktioner virker måske ikke korrekt, da det anbefales at justere denne indstilling i overensstemmelse hermed.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- The ' %1$s' HTTP- header er ikke indstillet til ' %2$s'. Dette er en potentiel sikkerheds- eller fortrolighedsrisiko, da det anbefales at justere denne indstilling i overensstemmelse hermed.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP- headeren ' %1$s' indeholder ikke ' %2$s'. Dette er en potentiel sikkerheds- eller fortrolighedsrisiko, da det anbefales at justere denne indstilling i overensstemmelse hermed.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP header er ikke indstillet til `%2$s`, `%3$s`, `%4$s`, `%5$s` eller `%6$s`. Dette kan lække reference information. Se mere {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- The 'Strict-Transport-Security' HTTP- header er ikke indstillet til mindst '%d' sekunder (aktuel værdi: '%d'). For øget sikkerhed, anbefales det at bruge en lang HSTS politik.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- The 'Strict-Transport-Security' HTTP- header er misdannet: '%s'. For øget sikkerhed anbefales det at aktivere HSTS.",
@@ -441,97 +440,6 @@
"Could not load section content from app store." : "Kunne ikke hente det valgte indhold fra app store.",
"Loading" : "Loader",
"Fetching the latest news…" : "Henter seneste nyt...",
- "Carousel" : "Karrusel",
- "Previous slide" : "Forrige slide",
- "Next slide" : "Næste slide",
- "Choose slide to display" : "Vælg slide til visning",
- "{index} of {total}" : "{index} ud af {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Implementer Daemon",
- "Type" : "Type",
- "Display Name" : "Vist navn",
- "GPUs support" : "GPUs understøttelse",
- "Compute device" : "Beregningsapparat",
- "Advanced deploy options" : "Avancerede implementeringsmuligheder",
- "Edit ExApp deploy options before installation" : "Rediger ExApp implementeringsindstillinger før installation",
- "Configured ExApp deploy options. Can be set only during installation" : "Konfigurerede ExApp implementeringsmuligheder. Kan kun indstilles under installationen",
- "Learn more" : "Lær mere",
- "Environment variables" : "Miljøvariabler",
- "ExApp container environment variables" : "ExApp container miljøvariabler",
- "No environment variables defined" : "Ingen miljøvariabler defineret",
- "Mounts" : "Monteringer",
- "Define host folder mounts to bind to the ExApp container" : "Definer værtsmappemonteringer for at binde til ExApp beholderen",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Skal eksistere på Deploy daemon værten, før installation af ExApp",
- "Host path" : "Host stien",
- "Container path" : "Beholderstien",
- "Read-only" : "Skrivebeskyttet",
- "Remove mount" : "Fjern montering",
- "New mount" : "Ny montering",
- "Enter path to host folder" : "Indtast stien til host mappen",
- "Enter path to container folder" : "Indtast stien til beholdermappen",
- "Toggle read-only mode" : "Skift skrivebeskyttet tilstand",
- "Confirm adding new mount" : "Bekræft tilføjelse af ny montering",
- "Confirm" : "Bekræft",
- "Cancel adding mount" : "Annuller tilføjelse af montering",
- "Cancel" : "Annuller",
- "Add mount" : "Tilføj montering",
- "ExApp container mounts" : "ExApp beholdermonteringer",
- "No mounts defined" : "Der er ikke defineret nogen monteringer",
- "Description" : "Beskrivelse",
- "View in store" : "Se i butik",
- "Visit website" : "Besøg hjemmeside",
- "Usage documentation" : "Anvendelsesdokumentation",
- "Admin documentation" : "Admin-dokumentation",
- "Developer documentation" : "Dokumentation for udviklere",
- "Details" : "Detaljer",
- "All" : "Alle",
- "Limit app usage to groups" : "Begræns appanvendelse til grupper",
- "No results" : "Ingen resultater",
- "Update to {version}" : "Opdateret til {version}",
- "Deploy options" : "Implementeringsmuligheder",
- "Default Deploy daemon is not accessible" : "Standard udrulningsdaemon er ikke tilgængelig",
- "Delete data on remove" : "Slet data ved fjernelse",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Denne app har ikke angivet en minimums understøttet version af Nextcloud. I fremtiden vil dette medføre en fejl.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denne app har ikke angivet en maksimums understøttet version af Nextcloud. I fremtiden vil dette medføre en fejl.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Dette program kan ikke installeres, da følgende afhængigheder ikke imødekommes:",
- "Latest updated" : "Sidst opdaterede",
- "Author" : "Forfatter",
- "Categories" : "Kategorier",
- "Resources" : "Resourcer",
- "Documentation" : "Dokumentation",
- "Interact" : "Interager",
- "Report a bug" : "Rapporter en fejl",
- "Request feature" : "Foreslå feature",
- "Ask questions or discuss" : "Stil spørgsmål eller diskuter",
- "Rate the app" : "Bedøm appen",
- "Rate" : "Bedøm",
- "Changelog" : "Ændringslog",
- "Google Chrome for Android" : "Google Chrome til Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Snak til iOS",
- "{productName} Talk for Android" : "{productName} Snak til Android",
- "Sync client" : "Synkroniser klient",
- "This session" : "Sessionen",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Enheds navn",
- "Cancel renaming" : "Annuller omdøbning",
- "Save new name" : "Gem nyt navn",
- "Marked for remote wipe" : "Markeret til fjernsletning",
- "Device settings" : "Enhedsindstillinger",
- "Allow filesystem access" : "Tillad filsystem adgang",
- "Rename" : "Omdøb",
- "Revoke" : "Tilbagekald",
- "Wipe device" : "Slet enhed",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Tilbagekaldelse af denne token kan muligvis forhindre sletning af din enhed, hvis sletningen endnu ikke er startet.",
- "Device" : "Enhed",
- "Last activity" : "Sidste aktivitet",
- "Devices & sessions" : "Enheder og sessioner",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, stationære og mobile klienter, der er logget ind på din konto.",
- "Error while creating device token" : "Fejl ved oprettelse af enhedsnøgle",
- "App name" : "App navn",
- "Create new app password" : "Opret nyt app kodeord",
"App password copied!" : "App adgangskode kopieret!",
"Copy app password" : "Kopier app adgangskode",
"Login name copied!" : "Log på navn kopieret!",
@@ -559,6 +467,7 @@
"Unable to update profile default setting" : "Kan ikke opdatere profilens standardindstilling",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Aktiver eller deaktiver profil som standard for nye konti.",
+ "Password confirmation is required" : "Bekræftelse af adgangskode er påkrævet",
"Failed to save setting" : "Kunne ikke gemme indstillingerne",
"{app}'s declarative setting field: {name}" : "{app}'s deklarative indstillingsfelt: {name}",
"Unable to update server side encryption config" : "Kan ikke opdatere krypteringskonfigurationen på serversiden",
@@ -581,206 +490,11 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det er altid godt at lave regelmæssige sikkerhedskopier af dine data, i tilfælde af kryptering skal du sørge for at tage backup af krypteringsnøglerne sammen med dine data.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Se administratordokumentationen om, hvordan man manuelt også krypterer eksisterende filer.",
"This is the final warning: Do you really want to enable encryption?" : "Dette er den sidste advarsel: Sikker på at du vil slå kryptering til?",
- "Failed to remove group \"{group}\"" : "Kunne ikke slette gruppen \"{group}\"",
"Please confirm the group removal" : "Bekræft venligst sletning af gruppen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du er ved at fjerne gruppen \"{group}\". Konti indeholdt i gruppen vil IKKE blive slettet.",
+ "Cancel" : "Annuller",
+ "Confirm" : "Bekræft",
"Submit" : "Tilføj",
"Rename group" : "Omdøb gruppe",
- "Remove group" : "Fjern gruppe",
- "Current password" : "Nuværende adgangskode",
- "New password" : "Ny adgangskode",
- "Change password" : "Skift kodeord",
- "Choose your profile picture" : "Vælg dit profil billede",
- "Please select a valid png or jpg file" : "Vælg en gyldig PNG eller JPG fil",
- "Error setting profile picture" : "Fejl; profil billede ikke gyldigt",
- "Error cropping profile picture" : "Fejl, kunne ikke beskære profil billede",
- "Error saving profile picture" : "Fejl; kunne ikke gemme profil billede",
- "Error removing profile picture" : "Fejl; kunne ikke slette profil billede",
- "Your profile picture" : "Dit profil billede",
- "Upload profile picture" : "Upload profil billede",
- "Choose profile picture from Files" : "Vælg profil billede fra Filer",
- "Remove profile picture" : "Fjern profil billede",
- "The file must be a PNG or JPG" : "Fil format: PNG eller JPG",
- "Picture provided by original account" : "Billede leveret af den oprindelige konto",
- "Set as profile picture" : "Indstil som profil billede",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Bemærk; det tager op til 24 timer for dit profil billede, at blive opdateret alle steder.",
- "Your biography. Markdown is supported." : "Din biografi. Markdown understøttes.",
- "Unable to update date of birth" : "Kunne ikke opdatere fødselsdato",
- "Enter your date of birth" : "Indtast din fødselsdato",
- "You are using {s}{usage}{/s}" : "Du anvender {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Du anvender {s}{usage}{/s} af {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Du er medlem af følgende grupper:",
- "Your full name" : "Dit fulde navn",
- "Email options" : "E-mail indstillinger",
- "Options for additional email address {index}" : "Muligheder for yderligere email {index}",
- "Remove primary email" : "Fjern primær e-mail",
- "Delete email" : "Slet e-mail",
- "This address is not confirmed" : "Denne adresse er ikke bekræftet",
- "Unset as primary email" : "Deaktiveret som primær e-mail",
- "Set as primary email" : "Indstil som primær e-mail",
- "Additional email address {index}" : "Yderligere e-mailadresse {index}",
- "Unable to delete primary email address" : "Den primære e-mailadresse kunne ikke slettes",
- "Unable to update primary email address" : "Den primære e-mailadresse kunne ikke opdateres",
- "Unable to add additional email address" : "Kan ikke tilføje yderligere e-mailadresse",
- "Unable to update additional email address" : "Kan ikke opdatere yderligere e-mailadresse",
- "Unable to delete additional email address" : "Kan ikke slette yderligere e-mailadresse",
- "Primary email for password reset and notifications" : "Primær e-mail til nulstilling af adgangskode og meddelelser",
- "No email address set" : "Der er ikke angivet e-mailadresse",
- "Your handle" : "Dit kendetegn",
- "Derived from your locale ({weekDayName})" : "Afledt af systemindstillinger ({weekDayName})",
- "Unable to update first day of week" : "Kunne ikke opdatere indstillingerne for første ugedag",
- "Day to use as the first day of week" : "Første dag i ugen",
- "Your headline" : "Din overskrift",
- "Unable to update language" : "Kunne ikke opdatere sproget",
- "Languages" : "Sprog",
- "Help translate" : "Hjælp med oversættelsen",
- "No language set" : "Intet sprog indstillet",
- "Unable to update locale" : "Kunne ikke opdaterer lokalitet",
- "Locales" : "Lokaliteter",
- "Week starts on {firstDayOfWeek}" : "Første ugedag: {firstDayOfWeek}",
- "No locale set" : "Ingen lokalitet indstillet",
- "Your city" : "Din by",
- "Your organisation" : "Din organisation",
- "Your phone number" : "Dit telefon nummer",
- "Edit your Profile visibility" : "Rediger din profils synlighed",
- "Unable to update profile enabled state" : "Kan ikke opdatere profilaktiveret tilstand",
- "Enable profile" : "Aktiver profil",
- "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." : "Den mere restriktive indstilling af enten synlighed eller omfang respekteres på din profil. For eksempel, hvis synlighed er indstillet til \"Vis til alle\", og omfanget er indstillet til \"Privat\", så respekteres \"Privat\".",
- "Unable to update visibility of {displayId}" : "Kan ikke opdatere synligheden af {displayId}",
- "she/her" : "hun/hende",
- "he/him" : "han/ham",
- "they/them" : "de/dem",
- "Your role" : "Din rolle",
- "Your X (formerly Twitter) handle" : "Dit X (tidligere Twitter) brugernavn",
- "Your website" : "Vores hjemmeside",
- "Invalid value" : "Ugyldig værdi",
- "Unable to update {property}" : "Kunne ikke opdaterer {property}",
- "No {property} set" : "Ingen {property} indstillet",
- "Change scope level of {property}, current scope is {scope}" : "Skift omfangsniveau for {property}, nuværende omfang er {scope}",
- "Unable to update federation scope of the primary {property}" : "Kan ikke opdatere sammenkoblings scope for den primære {property}",
- "Unable to update federation scope of additional {property}" : "Kan ikke opdatere sammenkoblings scope for yderligere {property}",
- "Add additional email" : "Tilføj yderligere e-mail",
- "Add" : "Tilføj",
- "Create" : "Opret",
- "Change" : "Ændr",
- "Delete" : "Slet",
- "Reshare" : "Videredel",
- "Default language" : "Standardsprog",
- "Common languages" : "Hyppigt anvendte sprog",
- "Other languages" : "Andre sprog",
- "Password change is disabled because the master key is disabled" : "Adgangskodeændring er deaktiveret, fordi hovednøglen er deaktiveret",
- "No accounts" : "Ingen konto",
- "Loading accounts …" : "Indlæser kontoerne...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Brugerkonti. Hele listen er ikke hentet, af hensyn til størrelsen. Listen vil blive hentet løbende som du kører igennem listen.",
- "Manager" : "Administrer",
- "Set line manager" : "Sæt linjeleder",
- "Account name will be autogenerated" : "Brugernavnet vil blive genereret automatisk",
- "Account name (required)" : "Brugernavn (påkrævet)",
- "Failed to search groups" : "Fejl under søgning af grupper",
- "New account" : "Ny konto",
- "Display name" : "Vist navn",
- "Either password or email is required" : "Adgangskode eller e-mail er påkrævet",
- "Password (required)" : "Adgangskode (påkrævet)",
- "Email (required)" : "E-mail (påkrævet)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Medlem af følgende grupper (påkrævet)",
- "Member of the following groups" : "Medlem af følgende grupper",
- "Set account groups" : "Indstil bruger grupper",
- "Admin of the following groups" : "Administrator for følgende grupper",
- "Set account as admin for …" : "Sæt konto som administrator for ...",
- "Quota" : "Kvote",
- "Set account quota" : "Sæt konto kvote",
- "Language" : "Sprog",
- "Set default language" : "Vælg standard sprog",
- "Add new account" : "Tilføj ny konto",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} konto …","{userCount} konti …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} konto","{userCount} konti"],
- "Total rows summary" : "Samlet række antal",
- "Scroll to load more rows" : "Rul for at indlæse flere rækker",
- "Password or insufficient permissions message" : "Besked om adgangskode eller manglende rettigheder",
- "Avatar" : "Avatar",
- "Account name" : "Kontonavn",
- "Group admin for" : "Gruppeadministrator for",
- "Account backend" : "Konto backend",
- "Storage location" : "Placering af lageret",
- "First login" : "Første log på",
- "Last login" : "Seneste login",
- "Account actions" : "Kontohandlinger",
- "{size} used" : "{size} brugt",
- "Delete account" : "Slet konto",
- "Disconnect all devices and delete local data" : "Afbryd forbindelsen til alle indloggede enheder og slet lokale data",
- "Disable account" : "Deaktiver konto",
- "Enable account" : "Aktiver konto",
- "Resend welcome email" : "Send velkomstemail igen",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "I tilfælde af en tabt enhed eller at en forlader organisationen, så kan dette fjernslette Nextcloud-dataene fra alle enheder, der er knyttet til {userid}. Virker kun, hvis enhederne er forbundet til internettet.",
- "Remote wipe of devices" : "Fjernsletning af enheder",
- "Wipe {userid}'s devices" : "Slet {userid}'s enheder",
- "Wiped {userid}'s devices" : "Slettede {userid}'s enheder",
- "Failed to load groups with details" : "Kunne ikke indlæse grupper med detaljer",
- "Failed to load sub admin groups with details" : "Kunne ikke indlæse underadministratorgrupper med detaljer",
- "Failed to update line manager" : "Kunne ikke opdatere linjeleder",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Slet {userid}s konto fuldstændigt, inklusiv alle deres personlige filer, appdata osv.",
- "Account deletion" : "Sletning af konto",
- "Delete {userid}'s account" : "Slet {userid}s konto",
- "Display name was successfully changed" : "Vist navn er ændret",
- "Password can't be empty" : "Adgangskode kan ikke være tom",
- "Password was successfully changed" : "Adgangskode er ændret",
- "Email can't be empty" : "E-mail kan ikke være tom",
- "Email was successfully changed" : "E-mail adresse er ændret",
- "Welcome mail sent!" : "Velkomstemail sendt!",
- "Loading account …" : "Indlæser konto ...",
- "Change display name" : "Rediger vist navn",
- "Set new password" : "Angiv ny adgangskode",
- "You do not have permissions to see the details of this account" : "Du har ikke tilladelse til at se denne brugers detaljer",
- "Set new email address" : "Angiv ny e-mail adresse",
- "Add account to group" : "Føj bruger til gruppe",
- "Set account as admin for" : "Sæt konto som administrator for ...",
- "Select account quota" : "Sæt konto kvote",
- "Set the language" : "Indstil sproget",
- "Toggle account actions menu" : "Skift kontohandlingsmenu",
- "Done" : "Færdig",
- "Edit" : "Rediger",
- "Account management settings" : "Kontoadministrationsindstillinger",
- "Visibility" : "Synlighed",
- "Show language" : "Vis sprog",
- "Show account backend" : "Vis backend konto",
- "Show storage path" : "Vis lagersti",
- "Show first login" : "Vis første log på",
- "Show last login" : "Vis seneste login",
- "Sorting" : "Sortering",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Systemkonfigurationen gennemtvinger sortering af grupperne efter navn. Dette deaktiverer også visning af medlemsantallet.",
- "Group list sorting" : "Gruppeliste sortering",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Sortering gælder kun for de aktuelt indlæste grupper af hensyn til ydeevne. Grupper vil blive indlæst som du navigere eller søge gennem listen.",
- "By member count" : "Efter medlemstal",
- "By name" : "Efter navn",
- "Send email" : "Send e-mail",
- "Send welcome email to new accounts" : "Send velkomstmail til nye konti",
- "Defaults" : "Standarder",
- "Default quota" : "Standard kvote",
- "Select default quota" : "Vælg standardkvote",
- "Server error while trying to complete WebAuthn device registration" : "Serverfejl under forsøg på at fuldføre WebAuthn-enhedsregistrering",
- "Passwordless authentication requires a secure connection." : "Adgangskodefri godkendelse kræver en sikker forbindelse.",
- "Add WebAuthn device" : "Tilføj WebAuthn-enhed",
- "Please authorize your WebAuthn device." : "Godkend venligst din WebAuthn-enhed.",
- "Adding your device …" : "Tilføjer din enhed...",
- "Unnamed device" : "Unavngiven enhed",
- "Passwordless Authentication" : "Adgangskodeløs godkendelse",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Konfigurer din konto til adgangskodefri godkendelse efter FIDO2-standarden.",
- "No devices configured." : "Ingen enheder konfigureret.",
- "The following devices are configured for your account:" : "Følgende enheder er konfigureret til din konto:",
- "Your browser does not support WebAuthn." : "Din browser understøtter ikke WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Som administrator kan du finjustere delingsadfærden. Se venligst dokumentationen for mere information.",
- "You need to enable the File sharing App." : "Du skal aktivere fildelingsappen.",
- "App Store" : "App Store",
- "Loading app list" : "Send velkomstmail til nye konti",
- "Loading categories" : "Indlæser kategorier",
- "Developer documentation ↗" : "Udviklerdokumentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-licenseret",
- "Version {version}" : "Version {version}",
- "All accounts" : "Alle konti",
- "Admins" : "Administratorer",
- "Account group: {group}" : "Konto gruppe: {group}",
- "Account management" : "Kontostyring",
"Sending…" : "Sender...",
"Email sent" : "E-mail afsendt",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Af hensyn til performancemæssige, så er det kun nye og ændrede filer, der krypteres, når du aktiverer kryptering på en Nextcloud server.",
@@ -790,6 +504,7 @@
"Date of birth" : "Fødselsdato",
"Full name" : "Fulde navn",
"Additional email" : "Yderligere e-mail",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (fx Mastodon)",
"Headline" : "Overskrift",
"Organisation" : "Organisation",
@@ -799,6 +514,7 @@
"X (formerly Twitter)" : "X (tidligere Twitter)",
"Website" : "Hjemmeside",
"Profile visibility" : "Profilsynlighed",
+ "Language" : "Sprog",
"Locale" : "Lokalitet",
"First day of week" : "Første dag i ugen",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Ikke tilgængelig, da denne egenskab er påkrævet for kernefunktionalitet, herunder fildeling og kalenderinvitationer",
@@ -816,6 +532,7 @@
"Show to logged in accounts only" : "Vis kun til påloggede konti",
"Hide" : "Skjul",
"Manually installed apps cannot be updated" : "Manuelt installerede apps kan ikke opdateres",
+ "Update to {version}" : "Opdateret til {version}",
"{progress}% Deploying …" : "{progress}% Udruller …",
"{progress}% Initializing …" : "{progress}% Initialiserer …",
"Health checking" : "Sundhedskontrol",
@@ -825,6 +542,7 @@
"Allow untested app" : "Tillad ikke-testet app",
"The app will be downloaded from the App Store" : "Appen vil blive downloadet fra App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Denne app er ikke markeret som kompatibel med din Nextcloud version. Hvis du fortsætter, vil du stadig være i stand til at installere appen. Bemærk, at appen muligvis ikke fungerer som forventet.",
+ "{size} used" : "{size} brugt",
"Unknown" : "Ukendt",
"Never" : "Aldrig",
"Could not register device: Network error" : "Kunne ikke registrere apparat: Netværksfejl",
@@ -843,8 +561,10 @@
"Could not set group sorting" : "Kunne ikke indstille gruppesortering",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Der har været for mange forespørgsmåler fra dit netværk. Forsøg igen senere eller kontakt din administrator hvis dette er en fejl.",
"Error" : "Fejl",
+ "Default quota" : "Standard kvote",
"Account documentation" : "Konto dokumentation",
"Administration documentation" : "Administrations dokumentation",
+ "Documentation" : "Dokumentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud hjælpe- og privatlivsressourcer",
"General documentation" : "Overordnet dokumentation",
@@ -867,6 +587,7 @@
"SMTP Password" : "SMTP Kodeord",
"Save" : "Gem",
"Test and verify email settings" : "Afprøv og bekræft indstillinger",
+ "Send email" : "Send e-mail",
"Security & setup warnings" : "Advarsler om sikkerhed og opsætning",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Det er vigtigt for sikkerheden og ydeevnen af din instans, at alt er konfigureret korrekt. For at hjælpe dig med det, så laver vi foretager vi nogle automatiske kontroller. Se venligst den linkede dokumentation for mere information.",
"All checks passed." : "Alle tjek blev bestået.",
@@ -886,51 +607,14 @@
"Use a second factor besides your password to increase security for your account." : "Brug to-faktor godkendelse for at øge sikkerheden for din konto.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Hvis du bruger tredjepartsapplikationer til at oprette forbindelse til Nextcloud, så skal du sørge for at oprette og konfigurere en app-adgangskode for hver applikation, før du aktiverer to-faktor-godkendelse.",
"Logged in account must be a subadmin" : "På-logget konto skal være en subadmin",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "For at tillade denne kontrol at køre, så skal du sørge for, at din webserver kan oprette forbindelse til sig selv. Derfor skal den være i stand til at opløse og oprette forbindelse til mindst et af sine `trusted_domains` eller `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Manglende valgfrit indeks \"%s\" i tabellen \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Databasen mangler nogle indekser. Da tilføjelse af indekser kan tage noget tid, blev de ikke tilføjet automatisk. Kør \"occ db:add-missing-indices\" for manuelt at tilføje disse indekser mens forekomsten forbliver aktiv. Når indekserne er tilføjet, er forespørgsler til disse tabeller normalt meget hurtigere. ",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "For at tillade at denne kontrol køres så skal du sikre dig at din webserver kan forbinde til sig selv. Derfor skal den kunne opløse og forbinde til mindst en af dets `trusted_domains` eller `overwrite.cli.url`. Denne fejl kan være resultatet af en server-side DNS mismatch eller udadgående firewall regel.",
"File locking" : "Fillåsning",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transaktionel fillåsning er deaktiveret. Dette kan føre til problemer med ræskonditioner. Aktiver \"filelocking.enabled\" i config.php for at undgå disse problemer.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Kunne ikke søge efter JavaScript understøttelse via nogen af ​​dine `trusted_domains` eller `overwrite.cli.url`. Dette kan være på grund af en DNS uoverensstemmelse på serversiden eller udgående firewallregel. Tjek venligst manuelt, om din webserver leverer `.mjs` filer ved hjælp af JavaScript MIME typen.",
"The PHP memory limit is below the recommended value of %s." : "PHP hukommelsesgræsen er under den anbefalede værdi på %s.",
"for WebAuthn passwordless login" : "til WebAuthn adgangskodeløst login",
"for WebAuthn passwordless login, and SFTP storage" : "til WebAuthn adgangskodeløst login, og SFTP lagring",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du kører i øjeblikket PHP %s. PHP 8.0 er nu forældet i Nextcloud 27. Nextcloud 28 kan kræve mindst PHP 8.1. Opgrader til en af de officielt understøttede PHP-versioner, som PHP Group leverer så hurtigt som muligt.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" anvendes. Nextcloud 21 og højere understøtter ikke denne version og kræver MariaDB 10.2 eller højere.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" anvendes. Nextcloud 21 og højere understøtter ikke denne version og kræver MySQL 8.0 eller MariaDB 10.2 eller højere.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" anvendes. Nextcloud 21 og højere understøtter ikke denne version og kræver PostgreSQL 9.6 eller højere.",
- "Speech-To-Text" : "Tale Til Tekst",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "\"Tale Til Tekst\" kan implementeres af forskellige apps. Her kan du indstille hvilken app der skal bruges.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ingen af dine aktuelt installerede apps giver \"Tale Til Tekst\" funktionalitet",
- "None of your currently installed apps provide Text processing functionality" : "Ingen af ​​dine aktuelt installerede apps giver tekstbehandlingsfunktionalitet",
- "Set default expiration date for shares" : "Indstil standardudløbsdato for delinger",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Tillad automatisk fuldførelse af brugernavn i delingsdialogen og giv adgang til systemadressebogen",
- "Your biography" : "Din biografi",
- "You are using <strong>{usage}</strong>" : "Forbrug: <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Forbrug: <strong>{usage}</strong> af <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Vælg administrator",
- "Username will be autogenerated" : "Brugernavnet vil blive genereret automatisk",
- "Username (required)" : "Brugernavn (påkrævet)",
- "New user" : "Ny bruger",
- "Groups (required)" : "Grupper (påkrævet)",
- "Set user groups" : "Vælg bruger grupper",
- "Administered groups" : "Administrerede grupper",
- "Set user as admin for …" : "Gør til administrator for ...",
- "Set user quota" : "Vælg bruger kvote",
- "Add new user" : "Tilføj ny bruger",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} bruger …","{userCount} brugere …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} bruger","{userCount} brugere"],
- "Loading users …" : "Henter brugere ...",
- "Username" : "Brugernavn",
- "User backend" : "Bruger-backend",
- "User actions" : "Bruger handlinger",
- "Add user to group" : "Føj bruger til gruppe",
- "Server error while trying to add WebAuthn device" : "Serverfejl under forsøg på at tilføje WebAuthn-enhed",
- "Name your device" : "Navngiv din enhed",
- "Active accounts" : "Aktive konti",
- "Follow us on Twitter" : "Følg os på Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "For at tillade at denne kontrol køres så skal du sikre dig at din webserver kan forbinde til sig selv. Derfor skal den kunne opløse og forbinde til mindst en af dets `trusted_domains` eller `overwrite.cli.url`. Denne fejl kan være resultatet af en server-side DNS mismatch eller udadgående firewall regel.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP- headeren ' %1$s' indeholder ikke ' %2$s'. Dette er en potentiel sikkerheds- eller fortrolighedsrisiko, da det anbefales at justere denne indstilling i overensstemmelse hermed.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL- version \"%s\" fundet. PostgreSQL > = 12 og < = 16 er foreslået for bedste ydeevne, stabilitet og funktionalitet med denne version af Nextcloud.",
- "Failed to load subadmin groups with details" : "Kunne ikke indlæse subadmin grupper med detaljer"
+ "Set default expiration date for shares" : "Indstil standardudløbsdato for delinger"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js
index 6460690502f..6064d3213ef 100644
--- a/apps/settings/l10n/de.js
+++ b/apps/settings/l10n/de.js
@@ -10,7 +10,7 @@ OC.L10N.register(
"Published" : "Veröffentlicht",
"Synchronize to trusted servers and the global and public address book" : "Mit vertrauenswürdigen Servern und dem globalen und öffentlichen Adressbuch synchronisieren",
"Verify" : "Überprüfen",
- "Verifying …" : "Überprüfe …",
+ "Verifying …" : "Überprüfe…",
"Unable to change password" : "Passwort konnte nicht geändert werden",
"Very weak password" : "Sehr schwaches Passwort",
"Weak password" : "Schwaches Passwort",
@@ -45,7 +45,7 @@ OC.L10N.register(
"You granted filesystem access to app password \"{token}\"" : "Du hast den Dateisystemzugriff für das App-Passwort \"{token}\" erlaubt",
"You revoked filesystem access from app password \"{token}\"" : "Du hast den Dateisystemzugriff für das App-Passwort \"{token}\" widerrufen",
"Security" : "Sicherheit",
- "You successfully logged in using two-factor authentication (%1$s)" : "Du hast dich erfolgreich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)",
+ "You successfully logged in using two-factor authentication (%1$s)" : "Du hast dich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)",
"Remote wipe was started on %1$s" : "Fernlöschung wurde am %1$s gestartet",
"Remote wipe has finished on %1$s" : "Fernlöschung wurde am %1$s abgeschlossen",
@@ -71,7 +71,7 @@ OC.L10N.register(
"If you received this email, the email configuration seems to be correct." : "Wenn du diese E-Mail empfangen hast, sind die E-Mail-Einstellungen korrekt.",
"Email could not be sent. Check your mail server log" : "E-Mail konnte nicht versandt werden. E-Mail-Serverprotokoll überprüfen",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Beim Senden der E-Mail ist ein Problem aufgetreten. Bitte die Einstellungen überprüfen. (Fehler: %s)",
- "You need to set your account email before being able to send test emails. Go to %s for that." : "Vor dem Versenden von Test-E-Mails musse die Konto-E-Mailadresse festgelegt werden. Gehe dazu zu %s.",
+ "You need to set your account email before being able to send test emails. Go to %s for that." : "Vor dem Versenden von Test-E-Mails muss die Konto-E-Mail-Adresse festgelegt werden. Gehe dazu zu %s.",
"Recently active" : "Kürzlich aktiv",
"Disabled accounts" : "Deaktivierte Konten",
"Invalid account" : "Ungültiges Konto",
@@ -103,12 +103,12 @@ OC.L10N.register(
"Your Login is: %s" : "Dein Anmeldename lautet: %s",
"Set your password" : "Setze dein Passwort",
"Go to %s" : "%s aufrufen",
- "Install Client" : "Installiere den Client",
+ "Install Client" : "Client installieren",
"Logged in account must be a sub admin" : "Das angemeldete Konto muss eine Unteradministration sein.",
"Apps" : "Apps",
"Personal" : "Persönlich",
"Administration" : "Administration",
- "Users" : "Benutzer",
+ "Users" : "Konten",
"Additional settings" : "Zusätzliche Einstellungen",
"Artificial Intelligence" : "Künstliche Intelligenz",
"Administration privileges" : "Administrationsrechte",
@@ -122,7 +122,7 @@ OC.L10N.register(
"Mobile & desktop" : "Mobil & Desktop",
"Email server" : "E-Mail-Server",
"Mail Providers" : "E-Mail-Anbieter",
- "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Der E-Mail-Provider ermöglicht das Senden von E-Mails direkt über das persönliche E-Mail-Konto des Benutzers. Derzeit ist diese Funktion auf Kalendereinladungen beschränkt. Es erfordert Nextcloud Mail 4.1 und ein E-Mail-Konto in Nextcloud Mail, das mit der E-Mail-Adresse des Benutzers in Nextcloud übereinstimmt.",
+ "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Der E-Mail-Anbieter ermöglicht das Senden von E-Mails direkt über das persönliche E-Mail-Konto des Benutzers. Derzeit ist diese Funktion auf Kalendereinladungen beschränkt. Es erfordert Nextcloud Mail 4.1 und ein E-Mail-Konto in Nextcloud Mail, das mit der E-Mail-Adresse des Benutzers in Nextcloud übereinstimmt.",
"Send emails using" : "E-Mails senden mittels",
"User's email account" : "E-Mail-Konto des Benutzers",
"System email account" : "System-E-Mail-Konto",
@@ -142,8 +142,8 @@ OC.L10N.register(
"Your remote address could not be determined." : "Deine Remote-Adresse konnte nicht ermittelt werden.",
"Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Deine Remote-Adresse wurde als \"%s\" erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht deine Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist.",
"Your remote address \"%s\" is not brute-force throttled." : "Deine Remote-Adresse \"%s\" ist nicht durch die Brute-Force-Erkennung gedrosselt.",
- "Old administration imported certificates" : "Alte, von der Adminstration importierte Zertifikate",
- "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach, von der Adminstration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
+ "Old administration imported certificates" : "Alte, von der Administration importierte Zertifikate",
+ "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach von der Administration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige, von der Administration importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Du kannst diese über den Befehl \"occ security:certificates:import\" in der Befehlszeile importieren. Deine Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.",
"Code integrity" : "Codeintegrität",
"Integrity checker has been disabled. Integrity cannot be verified." : "Die Integritätsprüfung wurde deaktiviert. Die Integrität kann nicht überprüft werden.",
@@ -153,11 +153,11 @@ OC.L10N.register(
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s" : "Es war nicht möglich, den Cron-Job über die CLI auszuführen. Es sind folgende technische Fehler aufgetreten:\n%s",
"The last cron job ran without errors." : "Der letzte Cron-Job wurde ohne Fehler ausgeführt.",
"Cron last run" : "Cron zuletzt ausgeführt",
- "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrund-Jobausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
- "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.",
+ "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrundaufgaben-Ausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
+ "Last background job execution ran %s." : "Letzte Hintergrundaufgaben-Ausführung lief %s.",
"Data directory protected" : "Datenverzeichnis geschützt",
"Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass du es aus dem Document-Root-Verzeichnis des Webservers herausverschiebst.",
- "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Konnte nicht überprüfen, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
+ "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
"Database missing columns" : "In der Datenbank fehlen Spalten",
"Missing optional column \"%s\" in table \"%s\"." : "Fehlende optionale Spalte \"%s\" in der Tabelle \"%s\".",
"The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von \"occ db:add-missing-columns\" können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Benutzerfreundlichkeit verbessern.",
@@ -177,7 +177,7 @@ OC.L10N.register(
"Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für diese Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können. Um Nummern ohne Ländervorwahl zuzulassen, bitte \"default_phone_region\" mit dem entsprechenden ISO 3166-1-Code der Region der Konfigurationsdatei hinzufügen.",
"Email test" : "E-Mail-Test",
"Mail delivery is disabled by instance config \"%s\"." : "Die E-Mail-Zustellung ist aufgrund der Instanzkonfiguration \"%s\" deaktiviert.",
- "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt",
+ "Email test was successfully sent" : "Die Test-E-Mail wurde versandt",
"You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Die E-Mail-Serverkonfiguration wurde noch nicht festgelegt oder überprüft. Bitte zu den Grundeinstellungen gehen, um die Einstellungen vorzunehmen. Anschließend die Schaltfläche \"E-Mail senden\" unterhalb des Formulars verwenden, um die Einstellungen zu überprüfen.",
"Transactional File Locking" : "Transaktionale Dateisperre",
"Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert. Dies ist keine unterstützte Konfiguration und kann zu schwer zu einzugrenzenden Problemen führen, einschließlich der Beschädigung von Dateien. Bitte entferne den Konfigurationseintrag `'filelocking.enabled' => false` aus deiner `config.php`, um solche Probleme zu vermeiden.",
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP-Header",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- Der `%1$s`-HTTP-Header ist nicht auf `%2$s` gesetzt. Einige Funktionen arbeiten möglicherweise nicht richtig. Es wird daher empfohlen, diese Einstellung entsprechend anzupassen.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` ist nicht auf `%2$s` gesetzt. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` enthält nicht `%2$s`. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Der HTTP-Header `%1$s` ist nicht auf \"%2$s\", \"%3$s\", \"%4$s\", \"%5$s\" oder \"%6$s\" gesetzt. Dadurch können Verweisinformationen preisgegeben werden. Siehe die {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Der HTTP-Header `Strict-Transport-Security` ist nicht auf mindestens `%d` Sekunden eingestellt (aktueller Wert: `%d`). Für erhöhte Sicherheit wird die Verwendung einer langen HSTS-Richtlinie empfohlen.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Der `Strict-Transport-Security`-HTTP-Header ist fehlerhaft: `%s`. Für erhöhte Sicherheit wird empfohlen, HSTS zu aktivieren.",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "Architektur",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Anscheinend wird eine 32-Bit-PHP-Version verwendet. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte Betriebssystem und PHP auf 64-Bit aktualisieren!",
+ "Task Processing pickup speed" : "Abholgeschwindigkeit für Aufgabenverarbeitung",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Keine geplanten Aufgaben in der letzten %n Stunde.","Keine geplanten Aufgaben in den letzten %n Stunden."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Die Geschwindigkeit der Aufgabenübernahme war in der letzten %n Stunde in Ordnung.","Die Geschwindigkeit der Aufgabenübernahme war in den letzten %n Stunden in Ordnung."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Die Aufgabenabholgeschwindigkeit war in der letzten %n Stunde langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwäge die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet.","Die Aufgabenabholgeschwindigkeit war in den letzten %n Stunden langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet."],
"Temporary space available" : "Temporärer Platz verfügbar",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Fehler beim Überprüfen des temporären PHP-Pfads - er wurde nicht ordnungsgemäß auf ein Verzeichnis festgelegt. Zurückgegebener Wert: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Die PHP-Funktion \"disk_free_space\" ist deaktiviert, was die Überprüfung auf ausreichend Speicherplatz in den temporären Verzeichnissen verhindert.",
@@ -351,7 +354,7 @@ OC.L10N.register(
"Text processing" : "Textverarbeitung",
"Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Textverarbeitungsaufgaben können mittels verschiedener Apps umgesetzt werden. Hier kann eingestellt werden, welche App für welche Aufgabe verwendet werden soll.",
"None of your currently installed apps provide text processing functionality using the Text Processing API." : "Keine deiner derzeit installierten Apps bietet Funktionalität zur Textverarbeitung durch Nutzung der Text-Processing-API.",
- "Here you can decide which group can access certain sections of the administration settings." : "Hier kann festgelegt werden, welche Gruppe auf bestimmte Bereiche der Verwaltungseinstellungen zugreifen kann.",
+ "Here you can decide which group can access certain sections of the administration settings." : "Hier kann festgelegt werden, welche Gruppe auf bestimmte Bereiche der Administrationseinstellungen zugreifen kann.",
"Unable to modify setting" : "Einstellung konnte nicht geändert werden",
"None" : "Keine",
"Changed disclaimer text" : "Geänderter Haftungsausschlusstext",
@@ -371,14 +374,14 @@ OC.L10N.register(
"Allow users to set custom share link tokens" : "Benutzern erlauben, benutzerdefinierte Freigabelink-Token festzulegen",
"Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Freigaben mit benutzerdefinierten Token sind auch noch nach der Deaktivierung dieser Einstellung zugänglich",
"Shares with guessable tokens may be accessed easily" : "Auf Freigaben mit erratbaren Token kann u. U. leicht zugegriffen werden",
- "Limit sharing based on groups" : "Freigeben basierend auf Gruppen beschränken",
+ "Limit sharing based on groups" : "Freigaben nach Gruppen einschränken",
"Allow sharing for everyone (default)" : "Teilen für alle erlauben (Standard)",
- "Exclude some groups from sharing" : "Einige Gruppen vom Teilen ausschließen",
- "Limit sharing to some groups" : "Teilen auf einige Gruppen beschränken",
- "Groups allowed to share" : "Gruppen, die teilen dürfen",
+ "Exclude some groups from sharing" : "Bestimmte Gruppen vom Teilen ausschließen",
+ "Limit sharing to some groups" : "Teilen für bestimmte Gruppen erlauben",
+ "Groups allowed to share" : "Für die Linkfreigabe zugelassene Gruppen",
"Groups excluded from sharing" : "Von der Linkfreigabe ausgeschlossene Gruppen",
"Not allowed groups will still be able to receive shares, but not to initiate them." : "Nicht zugelassene Gruppen können zwar weiterhin Freigaben empfangen, aber nicht erstellen.",
- "Set default expiration date for internal shares" : "Lege das Standardablaufdatum für interne Freigaben fest",
+ "Set default expiration date for internal shares" : "Standardablaufdatum für interne Freigaben festlegen",
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Default expiration time of new shares in days" : "Standardablaufzeit neuer Freigaben in Tagen",
"Expire shares after x days" : "Freigaben laufen nach x Tagen ab",
@@ -393,7 +396,7 @@ OC.L10N.register(
"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.",
"Restrict account name autocompletion and system address book access to users within the same groups" : "Die automatische Vervollständigung von Kontonamen und den Zugriff auf das Systemadressbuch auf Benutzer innerhalb derselben Gruppen beschränken",
"Restrict account name autocompletion to users based on phone number integration" : "Die automatische Vervollständigung des Kontonamens auf Benutzer beschränken, die auf der Integration von Telefonnummern basieren.",
- "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)",
+ "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Die automatische Vervollständigung ermöglichen, wenn der vollständige Name oder die E-Mail-Adresse eingegeben wird (ignoriert fehlende Telefonbuchübereinstimmungen und gleiche Gruppenzugehörigkeit)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Zeige Haftungsausschluss auf der öffentlichen Upload-Seite (Wird nur gezeigt, wenn die Dateiliste nicht angezeigt wird.) ",
"Disclaimer text" : "Haftungsausschlusstext",
"This text will be shown on the public link upload page when the file list is hidden." : "Dieser Text wird auf der öffentlichen Upload-Seite angezeigt wenn die Dateiliste nicht angezeigt wird.",
@@ -437,103 +440,12 @@ OC.L10N.register(
"Search groups…" : "Suche Gruppen…",
"List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list." : "Liste der Gruppen. Diese Liste ist aus Leistungsgründen nicht vollständig gefüllt. Die Gruppen werden während des Navigierens oder Suchens geladen.",
"Loading groups…" : "Lade Gruppen…",
- "Could not load app discover section" : "Der App-Erkennungsabschnitt konnte nicht geladen werden",
+ "Could not load app discover section" : "Der Menüpunkt \"Endecken\" konnte nicht geladen werden.",
"Could not render element" : "Element konnte nicht dargestellt werden",
"Nothing to show" : "Nichts anzuzeigen",
"Could not load section content from app store." : "Abschnittsinhalt konnte nicht aus dem App Store geladen werden.",
"Loading" : "Lade",
"Fetching the latest news…" : "Aktuelle Nachrichten werden abgerufen…",
- "Carousel" : "Karussell",
- "Previous slide" : "Vorherige Folie",
- "Next slide" : "Nächste Folie",
- "Choose slide to display" : "Folie zum Anzeigen auswählen",
- "{index} of {total}" : "{index} von {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon bereitstellen",
- "Type" : "Typ",
- "Display Name" : "Anzeigename",
- "GPUs support" : "GPUs Unterstützung",
- "Compute device" : "Compute-Gerät",
- "Advanced deploy options" : "Erweiterte Bereitstellungsoptionen",
- "Edit ExApp deploy options before installation" : "Bereitstellungsoptionen von ExApp vor der Installation bearbeiten",
- "Configured ExApp deploy options. Can be set only during installation" : "Eingestellte ExApp-Bereitstellungsoptionen. Kann nur während der Installation festgelegt werden",
- "Learn more" : "Mehr erfahren",
- "Environment variables" : "Umgebungsvariablen",
- "ExApp container environment variables" : "Umgebungsvariablen für ExApp-Container",
- "No environment variables defined" : "Keine Umgebungsvariablen definiert",
- "Mounts" : "Einhängepunkte",
- "Define host folder mounts to bind to the ExApp container" : "Host-Ordner-Mounts zum Binden an den ExApp-Container definieren",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Muss auf dem Deploy-Daemon-Host vorhanden sein, bevor die ExApp installiert wird",
- "Host path" : "Hostpfad",
- "Container path" : "Containerpfad",
- "Read-only" : "Schreibgeschützt",
- "Remove mount" : "Einhängepunkt entfernen",
- "New mount" : "Neuer Einhängepunkt",
- "Enter path to host folder" : "Pfad zum Hostordner eingeben",
- "Enter path to container folder" : "Pfad zum Containerordner eingeben",
- "Toggle read-only mode" : "Schreibschutz umschalten",
- "Confirm adding new mount" : "Hinzufügen des neuen Einhängepunkts bestätigen",
- "Confirm" : "Bestätigen",
- "Cancel adding mount" : "Hinzufügen des Einhängepunkts abbrechen",
- "Cancel" : "Abbrechen",
- "Add mount" : "Einhängepunkt hinzufügen",
- "ExApp container mounts" : "ExApp-Container-Einhängepunkte",
- "No mounts defined" : "Keine Einhängepunkte definiert",
- "Description" : "Beschreibung",
- "View in store" : "Im Store anzeigen",
- "Visit website" : "Webseite besuchen",
- "Usage documentation" : "Nutzungsdokumentation",
- "Admin documentation" : "Dokumentation für die Administration",
- "Developer documentation" : "Dokumentation für Entwickler",
- "Details" : "Details",
- "All" : "Alle",
- "Limit app usage to groups" : "App-Verwendung auf Gruppen beschränken",
- "No results" : "Keine Ergebnisse",
- "Update to {version}" : "Aktualisieren auf {version}",
- "Deploy options" : "Bereitstellungsoptionen",
- "Default Deploy daemon is not accessible" : "Der Standard-Deploy-Daemon ist nicht zugänglich",
- "Delete data on remove" : "Daten beim Entfernen löschen",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
- "Latest updated" : "Zuletzt aktualisiert",
- "Author" : "Autor",
- "Categories" : "Kategorien",
- "Resources" : "Ressourcen",
- "Documentation" : "Dokumentation",
- "Interact" : "Interagieren",
- "Report a bug" : "Einen technischen Fehler melden",
- "Request feature" : "Funktion vorschlagen",
- "Ask questions or discuss" : "Fragen stellen oder diskutieren",
- "Rate the app" : "App bewerten",
- "Rate" : "Bewerten",
- "Changelog" : "Liste der Veränderungen",
- "Google Chrome for Android" : "Google Chrome für Android",
- "{productName} iOS app" : "{productName} iOS-App",
- "{productName} Android app" : "{productName} Android-App",
- "{productName} Talk for iOS" : "{productName} Talk für iOS",
- "{productName} Talk for Android" : "{productName} Talk für Android",
- "Sync client" : "Sync-Client",
- "This session" : "Diese Sitzung",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Gerätename",
- "Cancel renaming" : "Umbenennen abbrechen",
- "Save new name" : "Neuen Namen speichern",
- "Marked for remote wipe" : "Für Fernlöschung markiert",
- "Device settings" : "Geräteeinstellungen",
- "Allow filesystem access" : "Erlaube Dateisystem-Zugriff",
- "Rename" : "Umbenennen",
- "Revoke" : "Widerrufen",
- "Wipe device" : "Gerät löschen",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen deines Gerät verhindern, so lange die Löschung noch nicht gestartet wurde.",
- "Device" : "Gerät",
- "Last activity" : "Letzte Aktivität",
- "Devices & sessions" : "Geräte & Sitzungen",
- "Web, desktop and mobile clients currently logged in to your account." : "Aktuell in deinem Konto angemeldete Web-, Desktop- und Mobil-Clients:",
- "Error while creating device token" : "Fehler beim Erstellen des Geräte-Tokens",
- "App name" : "App-Name",
- "Create new app password" : "Neues App-Passwort erstellen",
"App password copied!" : "App-Passwort kopiert!",
"Copy app password" : "App-Passwort kopieren",
"Login name copied!" : "Anmeldename kopiert!",
@@ -548,11 +460,11 @@ OC.L10N.register(
"Use system cron service to call the cron.php file every 5 minutes." : "Den System-Cron-Dienst verwenden, um die Datei cron.php alle 5 Minuten aufzurufen.",
"The cron.php needs to be executed by the system account \"{user}\"." : "Die cron.php muss von dem Systemkonto \"{user}\" ausgeführt werden.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Die PHP-POSIX-Erweiterung ist erforderlich. Weitere Einzelheiten hierzu in der {linkstart}PHP-Dokumentation{linkend}.",
- "Unable to update background job mode" : "Hintergrund-Job-Modus kann nicht aktualisiert werden",
- "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." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundjobs richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden sich in der Dokumentation.",
+ "Unable to update background job mode" : "Hintergrundaufgaben-Modus kann nicht aktualisiert werden",
+ "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." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundaufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden sich in der Dokumentation.",
"Last job execution ran {time}. Something seems wrong." : "Der letzte Job lief {time}. Etwas scheint nicht zu stimmen.",
"Last job ran {relativeTime}." : "Der letzte Job lief {relativeTime}.",
- "Background job did not run yet!" : "Hintergrund-Job wurde bislang nicht ausgeführt!",
+ "Background job did not run yet!" : "Hintergrundaufgabe wurde bislang nicht ausgeführt!",
"AJAX" : "AJAX",
"Execute one task with each page loaded. Use case: Single account instance." : "Mit jeder geladenen Seite wird eine Aufgabe ausgeführt. Anwendungsfall: Einzelkonto-Installation.",
"Webcron" : "Webcron",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Standardeinstellung des Profils kann nicht aktualisiert werden",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Profil für neue Konten standardmäßig aktivieren oder deaktivieren.",
+ "Password confirmation is required" : "Passwortbestätigung erforderlich",
"Failed to save setting" : "Einstellung konnte nicht gespeichert werden",
"{app}'s declarative setting field: {name}" : "Deklaratives Einstellungsfeld von {app}: {name}",
"Unable to update server side encryption config" : "Die Serverseitige Verschlüsselungskonfiguration kann nicht aktualisiert werden.",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Datensicherungen zu erstellen. Sofern die Verschlüsselung genutzt wird, sollte auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit den Daten durchgeführt werden.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informationen zum manuellen Verschlüsseln vorhandener Dateien finden sich in der Administrationsdokumentation.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Soll die Verschlüsselung wirklich aktiviert werden?",
- "Failed to remove group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht entfernt werden.",
+ "Failed to delete group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht gelöscht werden",
"Please confirm the group removal" : "Bitte die Löschung der Gruppe bestätigen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du bist im Begriff, die Gruppe \"{group}\" zu entfernen. Die Konten werden NICHT gelöscht.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Du bist im Begriff, die Gruppe \"{group}\" zu löschen. Die Konten werden NICHT gelöscht.",
+ "Cancel" : "Abbrechen",
+ "Confirm" : "Bestätigen",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
- "Remove group" : "Gruppe entfernen",
- "Current password" : "Aktuelles Passwort",
- "New password" : "Neues Passwort",
- "Change password" : "Passwort ändern",
- "Choose your profile picture" : "Wähle dein Profilbild aus.",
- "Please select a valid png or jpg file" : "Bitte eine gültige PNG- oder JPG-Datei auswählen",
- "Error setting profile picture" : "Fehler beim Einstellen des Profilbilds",
- "Error cropping profile picture" : "Fehler beim Zuschneiden des Profilbilds",
- "Error saving profile picture" : "Fehler beim Speichern des Profilbilds",
- "Error removing profile picture" : "Fehler beim Entfernen des Profilbilds",
- "Your profile picture" : "Dein Profilbild",
- "Upload profile picture" : "Profilbild hochladen",
- "Choose profile picture from Files" : "Profilbild aus Dateien wählen",
- "Remove profile picture" : "Profilbild entfernen",
- "The file must be a PNG or JPG" : "Die Datei muss im PNG- oder JPG-Format sein",
- "Picture provided by original account" : "Bild von Original-Konto zur Verfügung gestellt",
- "Set as profile picture" : "Als Profilbild festlegen",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Bitte beachten, dass es bis zu 24 Stunden dauern kann, bis das Profilbild überall aktualisiert wird.",
- "Your biography. Markdown is supported." : "Deine Biographie. Markdown wird unterstützt.",
- "Unable to update date of birth" : "Geburtsdatum konnte nicht aktualisiert werden",
- "Enter your date of birth" : "Gib dein Geburtsdatum ein",
- "You are using {s}{usage}{/s}" : "Du verwendest {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Du verwendest {s}{usage}{/s} von {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Du bist Mitglied folgender Gruppen:",
- "Your full name" : "Dein vollständiger Name",
- "Email options" : "E-Mail-Optionen",
- "Options for additional email address {index}" : "Optionen für zusätzliche E-Mail-Adresse {index}",
- "Remove primary email" : "Primäre E-Mail-Adresse entfernen",
- "Delete email" : "E-Mail löschen",
- "This address is not confirmed" : "Diese Adresse ist nicht bestätigt",
- "Unset as primary email" : "Als primäre E-Mail-Adresse deaktivieren",
- "Set as primary email" : "Als primäre E-Mail-Adresse festlegen",
- "Additional email address {index}" : "Zusätzliche E-Mail-Adresse {index}",
- "Unable to delete primary email address" : "Primäre E-Mail-Adresse konnte nicht gelöscht werden",
- "Unable to update primary email address" : "Primäre E-Mail-Adresse konnte nicht aktualisiert werden",
- "Unable to add additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht hinzugefügt werden",
- "Unable to update additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht aktualisiert werden",
- "Unable to delete additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht gelöscht werden",
- "Primary email for password reset and notifications" : "Primäre E-Mail-Adresse für Benachrichtigungen und zum Zurücksetzen des Passworts",
- "No email address set" : "Keine E-Mail-Adresse angegeben",
- "Your handle" : "Dein Online-Name",
- "Derived from your locale ({weekDayName})" : "Abgeleitet von deinem Gebietsschema ({weekDayName})",
- "Unable to update first day of week" : "Der erste Tag der Woche kann nicht aktualisiert werden",
- "Day to use as the first day of week" : "Tag, der als erster Tag der Woche verwendet werden soll",
- "Your headline" : "Deine Überschrift",
- "Unable to update language" : "Sprache konnte nicht aktualisiert werden",
- "Languages" : "Sprachen",
- "Help translate" : "Hilf bei der Übersetzung mit",
- "No language set" : "Keine Sprache eingestellt.",
- "Unable to update locale" : "Gebietsschema konnte nicht aktualisiert werden.",
- "Locales" : "Gebietsschemen",
- "Week starts on {firstDayOfWeek}" : "Woche beginnt am {firstDayOfWeek}",
- "No locale set" : "Kein Gebietsschema festgelegt",
- "Your city" : "Deine Stadt",
- "Your organisation" : "Deine Organisation",
- "Your phone number" : "Deine Telefonnummer",
- "Edit your Profile visibility" : "Sichtbarkeit des Profils anpassen",
- "Unable to update profile enabled state" : "Der Status „Profil aktiviert“ kann nicht aktualisiert werden.",
- "Enable profile" : "Profil aktivieren",
- "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." : "Die restriktivere Einstellung von Sichtbarkeit oder Bereich wird in deinem Profil berücksichtigt. Wenn beispielsweise die Sichtbarkeit auf \"Für jeden sichtbar\" und der Bereich auf \"Privat\" festgelegt ist, wird \"Privat\" respektiert.",
- "Unable to update visibility of {displayId}" : "Sichtbarkeit von {displayId} kann nicht aktualisiert werden",
- "she/her" : "sie/ihr",
- "he/him" : "er/sein",
- "they/them" : "sie/sie",
- "Your role" : "Deine Funktion",
- "Your X (formerly Twitter) handle" : "Dein X (früher Twitter)-Handle",
- "Your website" : "Deine Internetseite",
- "Invalid value" : "Ungültiger Wert",
- "Unable to update {property}" : "{property} konnte nicht aktualisiert werden.",
- "No {property} set" : "Keine {property} eingestellt",
- "Change scope level of {property}, current scope is {scope}" : "Den Geltungsbereich von {property} ändern, aktueller Bereich ist {scope}",
- "Unable to update federation scope of the primary {property}" : "Der Federations-Bereich des primären {property} kann nicht aktualisiert werden.",
- "Unable to update federation scope of additional {property}" : "Der Federations-Bereich des zusätzlichen {property} kann nicht aktualisiert werden.",
- "Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen",
- "Add" : "Hinzufügen",
- "Create" : "Erstellen",
- "Change" : "Ändern",
- "Delete" : "Löschen",
- "Reshare" : "Weiterteilen",
- "Default language" : "Standard-Sprache",
- "Common languages" : "Gängige Sprachen",
- "Other languages" : "Weitere Sprachen",
- "Password change is disabled because the master key is disabled" : "Das Ändern des Passwortes ist deaktiviert, da der Master-Schlüssel deaktiviert ist",
- "No accounts" : "Keine Konten",
- "Loading accounts …" : "Lade Konten …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Kontenliste. Diese Liste wird aus Performance-Gründen nicht vollständig ausgegeben. Die Konten werden ausgegeben, wenn durch die Liste navigiert wird.",
- "Manager" : "Manager",
- "Set line manager" : "Linien-Manager festlegen",
- "Account name will be autogenerated" : "Kontenname wird automatisch erstellt",
- "Account name (required)" : "Kontoname (erforderlich)",
- "Failed to search groups" : "Suche nach Gruppen fehlgeschlagen",
- "New account" : "Neues Konto",
- "Display name" : "Anzeigename",
- "Either password or email is required" : "Passwort oder E-Mail-Adresse ist erforderlich.",
- "Password (required)" : "Passwort (erforderlich)",
- "Email (required)" : "E-Mail-Adresse (erforderlich)",
- "Email" : "E-Mail-Adresse",
- "Member of the following groups (required)" : "Mitglied der folgenden Gruppen (erforderlich)",
- "Member of the following groups" : "Mitglied der folgenden Gruppen",
- "Set account groups" : "Kontengruppen setzen",
- "Admin of the following groups" : "Administration der folgenden Gruppen",
- "Set account as admin for …" : "Konto als Administration setzen für …",
- "Quota" : "Kontingent",
- "Set account quota" : "Kontokontigent setzen",
- "Language" : "Sprache",
- "Set default language" : "Standard-Sprache einstellen",
- "Add new account" : "Neues Konto hinzufügen",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} Konto …","{userCount} Konten …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} Konto","{userCount} Konten"],
- "Total rows summary" : "Zusammenfassung aller Zeilen",
- "Scroll to load more rows" : "Scrollen, um weitere Zeilen zu laden",
- "Password or insufficient permissions message" : "Passwort oder unzureichende Berechtigungen Nachricht",
- "Avatar" : "Avatar",
- "Account name" : "Kontoname",
- "Group admin for" : "Gruppenadministration für",
- "Account backend" : "Konto-Backend",
- "Storage location" : "Speicherort",
- "First login" : "Erste Anmeldung",
- "Last login" : "Letzte Anmeldung",
- "Account actions" : "Konto-Aktionen",
- "{size} used" : "{size} verwendet",
- "Delete account" : "Konto löschen",
- "Disconnect all devices and delete local data" : "Alle Geräte trennen und lokale Daten löschen",
- "Disable account" : "Konto deaktivieren",
- "Enable account" : "Konto aktivieren",
- "Resend welcome email" : "Willkommens-E-Mail erneut senden",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Im Falle des Verlusts des Gerätes oder der Verlassens der Organisation können mit dieser Funktion sämtliche Nextcloud-Daten von allen Geräten die mit {userid} verbunden sind gelöscht werden. Funktioniert nur wenn das Gerät mit dem Internet verbunden ist.",
- "Remote wipe of devices" : "Fernlöschung von Geräten",
- "Wipe {userid}'s devices" : "Lösche {userid}s Geräte",
- "Wiped {userid}'s devices" : "{userid}s Geräte bereinigt",
- "Failed to load groups with details" : "Gruppen mit Details konnten nicht geladen werden",
- "Failed to load sub admin groups with details" : "Unteradministrations-Gruppen mit Details konnten nicht geladen werden",
- "Failed to update line manager" : "Manager konnte nicht aktualisiert werden",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Vollständig {userid}s Konto löschen inklusive aller persönlichen Dateien, App-Daten, usw.",
- "Account deletion" : "Kontenlöschung",
- "Delete {userid}'s account" : "Konto von {userid} löschen",
- "Display name was successfully changed" : "Der Anzeigename wurde geändert",
- "Password can't be empty" : "Passwort darf nicht leer sein",
- "Password was successfully changed" : "Das Passwort wurde geändert",
- "Email can't be empty" : "E-Mail darf nicht leer sein",
- "Email was successfully changed" : "E-Mail wurde geändert",
- "Welcome mail sent!" : "Willkommens-E-Mail gesendet!",
- "Loading account …" : "Lade Konto …",
- "Change display name" : "Anzeigename ändern",
- "Set new password" : "Neues Passwort setzen",
- "You do not have permissions to see the details of this account" : "Keine Berechtigung, die Details dieses Kontos anzusehen.",
- "Set new email address" : "Neue E-Mail-Adresse setzen",
- "Add account to group" : "Konto zur Gruppe hinzufügen",
- "Set account as admin for" : "Konto als Administration festlegen für",
- "Select account quota" : "Kontokontigent auswählen",
- "Set the language" : "Sprache einstellen",
- "Toggle account actions menu" : "Kontenaktionsmenü umschalten",
- "Done" : "Erledigt",
- "Edit" : "Bearbeiten",
- "Account management settings" : "Kontoverwaltungseinstellungen",
- "Visibility" : "Sichtbarkeit",
- "Show language" : "Sprache anzeigen",
- "Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
- "Show first login" : "Erste Anmeldung anzeigen",
- "Show last login" : "Letzte Anmeldung anzeigen",
- "Sorting" : "Sortiere",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Die Systemkonfiguration erzwingt die Sortierung der Gruppen nach Namen. Dadurch wird auch die Anzeige der Mitgliederzahl deaktiviert.",
- "Group list sorting" : "Sortierung der Gruppenliste",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Aus Leistungsgründen wird die Sortierung nur auf die aktuell geladenen Gruppen angewendet. Gruppen werden beim Navigieren oder Suchen geladen.",
- "By member count" : "Nach Mitgliederzahl",
- "By name" : "Nach Name",
- "Send email" : "E-Mail senden",
- "Send welcome email to new accounts" : "Begrüßungs-E-Mail an neuen Konten senden",
- "Defaults" : "Standardeinstellungen",
- "Default quota" : "Standardkontingent",
- "Select default quota" : "Standardkontingent auswählen",
- "Server error while trying to complete WebAuthn device registration" : "Serverfehler beim Versuch die WebAuthn-Geräte-Registrierung abzuschließen",
- "Passwordless authentication requires a secure connection." : "Die Anmeldung ohne Passwort erfordert eine sichere Verbindung.",
- "Add WebAuthn device" : "WebAuthn-Gerät hinzufügen",
- "Please authorize your WebAuthn device." : "Bitte das WebAuthn-Gerät autorisieren.",
- "Adding your device …" : "Dieses Gerät hinzufügen …",
- "Unnamed device" : "Unbenanntes Gerät",
- "Passwordless Authentication" : "Authentifizierung ohne Passwort",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Dieses Konto für die Authentifizierung ohne Passwort nach dem FIDO2-Standard einrichten.",
- "No devices configured." : "Keine Geräte eingerichtet.",
- "The following devices are configured for your account:" : "Die folgenden Geräte sind für dein Konto eingerichtet:",
- "Your browser does not support WebAuthn." : "Dein Browser unterstützt kein WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Die Administration kann das Teilen-Verhalten fein abstimmen. Weitere Informationen finden sich in der Dokumentation.",
- "You need to enable the File sharing App." : "Die App \"File sharing\" muss aktiviert werden.",
- "App Store" : "App Store",
- "Loading app list" : "Lade App-Liste",
- "Loading categories" : "Lade Kategorien",
- "Developer documentation ↗" : "Entwickler-Dokumentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-lizensiert",
- "Version {version}" : "Version {version}",
- "All accounts" : "Alle Konten",
- "Admins" : "Administration",
- "Account group: {group}" : "Kontengruppe: {group}",
- "Account management" : "Kontoverwaltung",
+ "Delete group" : "Gruppe löschen",
"Sending…" : "Sende…",
"Email sent" : "E-Mail gesendet",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Beim Aktivieren der Verschlüsselung auf einem Nextcloud-Server werden aus Leistungsgründen nur neue und geänderte Dateien verschlüsselt.",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "Geburtsdatum",
"Full name" : "Vollständiger Name",
"Additional email" : "Zusätzliche E-Mail-Adresse",
+ "Email" : "E-Mail-Adresse",
"Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)",
"Headline" : "Überschrift",
"Organisation" : "Organisation",
@@ -801,11 +523,12 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (früher Twitter)",
"Website" : "Webseite",
"Profile visibility" : "Sichtbarkeit des Profils",
+ "Language" : "Sprache",
"Locale" : "Gebietsschema",
"First day of week" : "Erster Tag der Woche",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nicht verfügbar, da diese Eigenschaft für Kernfunktionen wie Dateifreigabe und Kalendereinladungen erforderlich ist.",
- "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Nicht verfügbar, da Federation für dein Konto deaktiviert ist. Wende dich an deine Administration, wenn du Fragen hast.",
- "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Nicht verfügbar, da die Veröffentlichung benutzerspezifischer Daten auf dem Lookup-Server nicht zulässig ist. Bei Fragen bitte an die Systemadministration wenden..",
+ "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Nicht verfügbar, da Federation für dein Konto deaktiviert ist. Wende dich bei Fragen an deine Systemadministration.",
+ "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Nicht verfügbar, da die Veröffentlichung kontospezifischer Daten auf dem Lookup-Server nicht zulässig ist. Wende dich bei Fragen an deine Systemadministration.",
"Discover" : "Entdecken",
"Your apps" : "Deine Apps",
"Active apps" : "Aktive Apps",
@@ -814,10 +537,11 @@ OC.L10N.register(
"App bundles" : "App-Pakete",
"Featured apps" : "Vorgestellte Apps",
"Supported apps" : "Unterstützte Apps",
- "Show to everyone" : "Für jeden sichtbar",
+ "Show to everyone" : "Für alle sichtbar",
"Show to logged in accounts only" : "Nur angemeldeten Konten anzeigen",
"Hide" : "Ausblenden",
"Manually installed apps cannot be updated" : "Manuell installierte Apps können nicht aktualisiert werden",
+ "Update to {version}" : "Aktualisieren auf {version}",
"{progress}% Deploying …" : "{progress}% Bereitstellen …",
"{progress}% Initializing …" : "{progress}% Initialisierung …",
"Health checking" : "Gesundheitsprüfung",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Ungetestete App zulassen",
"The app will be downloaded from the App Store" : "Die App wird aus dem App-Store heruntergeladen",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Diese App ist als nicht-kompatibel mit dieser Nextcloud-Version markiert. Fortfahren um die App dennoch zu installieren. Es kann jedoch sein, dass die App nicht wie erwartet funktioniert.",
+ "{size} used" : "{size} verwendet",
"Unknown" : "Unbekannt",
"Never" : "Niemals",
"Could not register device: Network error" : "Gerät konnte nicht registriert werden: Netzwerkfehler",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Die Gruppensortierung konnte nicht festgelegt werden",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zu viele Anfragen aus diesem Netzwerk. Bitte später erneut versuchen oder an die Administration wenden, wenn dies ein Fehler sein sollte.",
"Error" : "Fehler",
+ "Default quota" : "Standardkontingent",
"Account documentation" : "Kontodokumentation",
"Administration documentation" : "Administrationsdokumentation",
+ "Documentation" : "Dokumentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud-Hilfe & Datenschutz-Ressourcen",
"General documentation" : "Allgemeine Dokumentation",
@@ -869,8 +596,9 @@ OC.L10N.register(
"SMTP Password" : "SMTP-Passwort",
"Save" : "Speichern",
"Test and verify email settings" : "Testen und überprüfen der E-Mail-Einstellungen",
+ "Send email" : "E-Mail senden",
"Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen",
- "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Performance deiner Instanz ist es wichtig, dass alles richtig konfiguriert ist. Um dir dabei zu helfen, werden einige automatische Prüfungen durchgeführt. Weitere Informationen kannst du der verlinkten Dokumentation entnehmen.",
+ "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Leistung deiner Instanz ist es von großer Bedeutung, dass alles richtig konfiguriert ist. Um dich dabei zu unterstützen, werden einige automatische Prüfungen durchgeführt. Weitere Informationen findest du in der verlinkten Dokumentation.",
"All checks passed." : "Alle Überprüfungen bestanden.",
"There are some errors regarding your setup." : "Es gibt einige Fehler in der Systemkonfiguration.",
"There are some warnings regarding your setup." : "Es gibt einige Warnungen in der Systemkonfiguration.",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Neben dem Passwort einen zweiten Faktor verwenden, um die Sicherheit des Kontos zu erhöhen.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Wenn du Anwendungen von Drittanbietern verwendest, um dich mit Nextcloud zu verbinden, stelle bitte sicher, dass du für jede Anwendung ein Anwendungspasswort erstellst und einrichtest, bevor du die Zwei-Faktor-Authentifizierung aktivierst.",
"Logged in account must be a subadmin" : "Das angemeldete Konto muss eine Unteradministration sein.",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Um diese Prüfung auszuführen, musst du sicherstellen, dass dein Webserver eine Verbindung zu sich selbst herstellen kann. Dafür muss dieser in der Lage sein, sich mit mindestens einer seiner \"trusted_domains\" oder der \"overwrite.cli.url\" zu verbinden und diese aufzulösen.",
- "Missing optional index \"%s\" in table \"%s\"." : "Fehlender optionaler Index \"%s\" in der Tabelle \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von \"occ db:add-missing-indices\" können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Damit diese Prüfung ausgeführt werden kann, musst du sicherstellen, dass dein Webserver eine Verbindung zu sich selbst herstellen kann. Daher muss er in der Lage sein, mindestens eine seiner `trusted_domains` oder `overwrite.cli.url` aufzulösen und eine Verbindung zu ihnen herzustellen. Dieser Fehler kann das Ergebnis einer serverseitigen DNS-Nichtübereinstimmung oder einer ausgehenden Firewall-Regel sein.",
"File locking" : "Dateisperre",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert, dies kann zu Problemen mit Race Conditions führen. Aktiviere \"filelocking.enabled\" in config.php, um diese Probleme zu vermeiden.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Es konnte weder über deine `trusted_domains` noch über `overwrite.cli.url` nach JavaScript-Unterstützung gesucht werden. Dies kann auf eine serverseitige DNS-Nichtübereinstimmung oder eine ausgehende Firewall-Regel zurückzuführen sein. Bitte überprüfe manuell, ob dein Webserver `.mjs`-Dateien mit dem JavaScript-MIME-Typ bereitstellt.",
"The PHP memory limit is below the recommended value of %s." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von %s.",
"for WebAuthn passwordless login" : "für WebAuthn passwortlose Anmeldung",
"for WebAuthn passwordless login, and SFTP storage" : "für WebAuthn passwortlose Anmeldung und SFTP-Speicher",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du verwendest derzeit PHP %s. PHP 8.0 ist ab Nextcloud 27 veraltet. Nextcloud 28 erfordert mindestens PHP 8.1. Bitte aktualisiere so schnell wie möglich auf eine der offiziell unterstützten PHP-Versionen der PHP Gruppe.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und benötigen MariaDB 10.2 oder neuer.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützten diese Version nicht und benötigen MySQL 8.0 oder MariaDB 10.2 oder neuer.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und beötigen PostgreSQL 9.6 oder neuer.",
- "Speech-To-Text" : "Sprache-zu-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Sprache-zu-Text kann mittels verschiedener Apps implementiert werden. Hier kannst du einstellen, welche App verwendet werden soll.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Keine deiner derzeit installierten Apps bietet Sprache-zu-Text-Funktionalität.",
- "None of your currently installed apps provide Text processing functionality" : "Keine deiner derzeit installierten Apps bietet Funktionalität zur Textverarbeitung.",
- "Set default expiration date for shares" : "Lege das Standardablaufdatum für Freigaben fest",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Die automatische Vervollständigung des Benutzernamens im Freigabedialog und den Zugriff auf das Systemadressbuch erlauben",
- "Your biography" : "Deine Biografie",
- "You are using <strong>{usage}</strong>" : "Du benutzt <strong>{usage}</strong>.",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Du benutzt <strong>{usage}</strong> von <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>).",
- "Set user manager" : "Benutzermanager setzen",
- "Username will be autogenerated" : "Benutzername wird automatisch erzeugt.",
- "Username (required)" : "Benutzername (erforderlich)",
- "New user" : "Neuer Benutzer",
- "Groups (required)" : "Gruppen (erforderlich)",
- "Set user groups" : "Benutzergruppen einstellen",
- "Administered groups" : "Administrierte Gruppen",
- "Set user as admin for …" : "Benutzer als Administration setzen für …",
- "Set user quota" : "Kontokontingent einstellen",
- "Add new user" : "Neuen Benutzer hinzufügen",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} Benutzer …","{userCount} Benutzer …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} Benutzer","{userCount} Benutzer"],
- "Loading users …" : "Lade Benutzer …",
- "Username" : "Benutzername",
- "User backend" : "Benutzer-Backend",
- "User actions" : "Benutzeraktionen",
- "Add user to group" : "Benutzer der Gruppe hinzufügen",
- "Server error while trying to add WebAuthn device" : "Serverfehler beim Versuch ein WebAuthn-Gerät hinzuzufügen",
- "Name your device" : "Gerät benennen",
- "Active accounts" : "Aktive Konten",
- "Follow us on Twitter" : "Uns auf X folgen",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Damit diese Prüfung ausgeführt werden kann, musst du sicherstellen, dass dein Webserver eine Verbindung zu sich selbst herstellen kann. Daher muss er in der Lage sein, mindestens eine seiner `trusted_domains` oder `overwrite.cli.url` aufzulösen und eine Verbindung zu ihnen herzustellen. Dieser Fehler kann das Ergebnis einer serverseitigen DNS-Nichtübereinstimmung oder einer ausgehenden Firewall-Regel sein.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` enthält nicht `%2$s`. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL-Version \"%s\" erkannt. Für optimale Leistung, Stabilität und Funktionalität mit dieser Version von Nextcloud wird PostgreSQL >=12 und <=16 empfohlen.",
- "Failed to load subadmin groups with details" : "Unteradministrations-Gruppen mit Details konnten nicht geladen werden"
+ "Set default expiration date for shares" : "Lege das Standardablaufdatum für Freigaben fest"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json
index bb76e29c208..afd4eedb7a0 100644
--- a/apps/settings/l10n/de.json
+++ b/apps/settings/l10n/de.json
@@ -8,7 +8,7 @@
"Published" : "Veröffentlicht",
"Synchronize to trusted servers and the global and public address book" : "Mit vertrauenswürdigen Servern und dem globalen und öffentlichen Adressbuch synchronisieren",
"Verify" : "Überprüfen",
- "Verifying …" : "Überprüfe …",
+ "Verifying …" : "Überprüfe…",
"Unable to change password" : "Passwort konnte nicht geändert werden",
"Very weak password" : "Sehr schwaches Passwort",
"Weak password" : "Schwaches Passwort",
@@ -43,7 +43,7 @@
"You granted filesystem access to app password \"{token}\"" : "Du hast den Dateisystemzugriff für das App-Passwort \"{token}\" erlaubt",
"You revoked filesystem access from app password \"{token}\"" : "Du hast den Dateisystemzugriff für das App-Passwort \"{token}\" widerrufen",
"Security" : "Sicherheit",
- "You successfully logged in using two-factor authentication (%1$s)" : "Du hast dich erfolgreich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)",
+ "You successfully logged in using two-factor authentication (%1$s)" : "Du hast dich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)",
"Remote wipe was started on %1$s" : "Fernlöschung wurde am %1$s gestartet",
"Remote wipe has finished on %1$s" : "Fernlöschung wurde am %1$s abgeschlossen",
@@ -69,7 +69,7 @@
"If you received this email, the email configuration seems to be correct." : "Wenn du diese E-Mail empfangen hast, sind die E-Mail-Einstellungen korrekt.",
"Email could not be sent. Check your mail server log" : "E-Mail konnte nicht versandt werden. E-Mail-Serverprotokoll überprüfen",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Beim Senden der E-Mail ist ein Problem aufgetreten. Bitte die Einstellungen überprüfen. (Fehler: %s)",
- "You need to set your account email before being able to send test emails. Go to %s for that." : "Vor dem Versenden von Test-E-Mails musse die Konto-E-Mailadresse festgelegt werden. Gehe dazu zu %s.",
+ "You need to set your account email before being able to send test emails. Go to %s for that." : "Vor dem Versenden von Test-E-Mails muss die Konto-E-Mail-Adresse festgelegt werden. Gehe dazu zu %s.",
"Recently active" : "Kürzlich aktiv",
"Disabled accounts" : "Deaktivierte Konten",
"Invalid account" : "Ungültiges Konto",
@@ -101,12 +101,12 @@
"Your Login is: %s" : "Dein Anmeldename lautet: %s",
"Set your password" : "Setze dein Passwort",
"Go to %s" : "%s aufrufen",
- "Install Client" : "Installiere den Client",
+ "Install Client" : "Client installieren",
"Logged in account must be a sub admin" : "Das angemeldete Konto muss eine Unteradministration sein.",
"Apps" : "Apps",
"Personal" : "Persönlich",
"Administration" : "Administration",
- "Users" : "Benutzer",
+ "Users" : "Konten",
"Additional settings" : "Zusätzliche Einstellungen",
"Artificial Intelligence" : "Künstliche Intelligenz",
"Administration privileges" : "Administrationsrechte",
@@ -120,7 +120,7 @@
"Mobile & desktop" : "Mobil & Desktop",
"Email server" : "E-Mail-Server",
"Mail Providers" : "E-Mail-Anbieter",
- "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Der E-Mail-Provider ermöglicht das Senden von E-Mails direkt über das persönliche E-Mail-Konto des Benutzers. Derzeit ist diese Funktion auf Kalendereinladungen beschränkt. Es erfordert Nextcloud Mail 4.1 und ein E-Mail-Konto in Nextcloud Mail, das mit der E-Mail-Adresse des Benutzers in Nextcloud übereinstimmt.",
+ "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Der E-Mail-Anbieter ermöglicht das Senden von E-Mails direkt über das persönliche E-Mail-Konto des Benutzers. Derzeit ist diese Funktion auf Kalendereinladungen beschränkt. Es erfordert Nextcloud Mail 4.1 und ein E-Mail-Konto in Nextcloud Mail, das mit der E-Mail-Adresse des Benutzers in Nextcloud übereinstimmt.",
"Send emails using" : "E-Mails senden mittels",
"User's email account" : "E-Mail-Konto des Benutzers",
"System email account" : "System-E-Mail-Konto",
@@ -140,8 +140,8 @@
"Your remote address could not be determined." : "Deine Remote-Adresse konnte nicht ermittelt werden.",
"Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Deine Remote-Adresse wurde als \"%s\" erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht deine Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist.",
"Your remote address \"%s\" is not brute-force throttled." : "Deine Remote-Adresse \"%s\" ist nicht durch die Brute-Force-Erkennung gedrosselt.",
- "Old administration imported certificates" : "Alte, von der Adminstration importierte Zertifikate",
- "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach, von der Adminstration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
+ "Old administration imported certificates" : "Alte, von der Administration importierte Zertifikate",
+ "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach von der Administration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige, von der Administration importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Du kannst diese über den Befehl \"occ security:certificates:import\" in der Befehlszeile importieren. Deine Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.",
"Code integrity" : "Codeintegrität",
"Integrity checker has been disabled. Integrity cannot be verified." : "Die Integritätsprüfung wurde deaktiviert. Die Integrität kann nicht überprüft werden.",
@@ -151,11 +151,11 @@
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s" : "Es war nicht möglich, den Cron-Job über die CLI auszuführen. Es sind folgende technische Fehler aufgetreten:\n%s",
"The last cron job ran without errors." : "Der letzte Cron-Job wurde ohne Fehler ausgeführt.",
"Cron last run" : "Cron zuletzt ausgeführt",
- "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrund-Jobausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
- "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.",
+ "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrundaufgaben-Ausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
+ "Last background job execution ran %s." : "Letzte Hintergrundaufgaben-Ausführung lief %s.",
"Data directory protected" : "Datenverzeichnis geschützt",
"Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass du es aus dem Document-Root-Verzeichnis des Webservers herausverschiebst.",
- "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Konnte nicht überprüfen, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
+ "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfe manuell, ob dein Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
"Database missing columns" : "In der Datenbank fehlen Spalten",
"Missing optional column \"%s\" in table \"%s\"." : "Fehlende optionale Spalte \"%s\" in der Tabelle \"%s\".",
"The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von \"occ db:add-missing-columns\" können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Benutzerfreundlichkeit verbessern.",
@@ -175,7 +175,7 @@
"Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für diese Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können. Um Nummern ohne Ländervorwahl zuzulassen, bitte \"default_phone_region\" mit dem entsprechenden ISO 3166-1-Code der Region der Konfigurationsdatei hinzufügen.",
"Email test" : "E-Mail-Test",
"Mail delivery is disabled by instance config \"%s\"." : "Die E-Mail-Zustellung ist aufgrund der Instanzkonfiguration \"%s\" deaktiviert.",
- "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt",
+ "Email test was successfully sent" : "Die Test-E-Mail wurde versandt",
"You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Die E-Mail-Serverkonfiguration wurde noch nicht festgelegt oder überprüft. Bitte zu den Grundeinstellungen gehen, um die Einstellungen vorzunehmen. Anschließend die Schaltfläche \"E-Mail senden\" unterhalb des Formulars verwenden, um die Einstellungen zu überprüfen.",
"Transactional File Locking" : "Transaktionale Dateisperre",
"Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert. Dies ist keine unterstützte Konfiguration und kann zu schwer zu einzugrenzenden Problemen führen, einschließlich der Beschädigung von Dateien. Bitte entferne den Konfigurationseintrag `'filelocking.enabled' => false` aus deiner `config.php`, um solche Probleme zu vermeiden.",
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP-Header",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- Der `%1$s`-HTTP-Header ist nicht auf `%2$s` gesetzt. Einige Funktionen arbeiten möglicherweise nicht richtig. Es wird daher empfohlen, diese Einstellung entsprechend anzupassen.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` ist nicht auf `%2$s` gesetzt. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` enthält nicht `%2$s`. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Der HTTP-Header `%1$s` ist nicht auf \"%2$s\", \"%3$s\", \"%4$s\", \"%5$s\" oder \"%6$s\" gesetzt. Dadurch können Verweisinformationen preisgegeben werden. Siehe die {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Der HTTP-Header `Strict-Transport-Security` ist nicht auf mindestens `%d` Sekunden eingestellt (aktueller Wert: `%d`). Für erhöhte Sicherheit wird die Verwendung einer langen HSTS-Richtlinie empfohlen.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Der `Strict-Transport-Security`-HTTP-Header ist fehlerhaft: `%s`. Für erhöhte Sicherheit wird empfohlen, HSTS zu aktivieren.",
@@ -313,6 +312,10 @@
"Architecture" : "Architektur",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Anscheinend wird eine 32-Bit-PHP-Version verwendet. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte Betriebssystem und PHP auf 64-Bit aktualisieren!",
+ "Task Processing pickup speed" : "Abholgeschwindigkeit für Aufgabenverarbeitung",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Keine geplanten Aufgaben in der letzten %n Stunde.","Keine geplanten Aufgaben in den letzten %n Stunden."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Die Geschwindigkeit der Aufgabenübernahme war in der letzten %n Stunde in Ordnung.","Die Geschwindigkeit der Aufgabenübernahme war in den letzten %n Stunden in Ordnung."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Die Aufgabenabholgeschwindigkeit war in der letzten %n Stunde langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwäge die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet.","Die Aufgabenabholgeschwindigkeit war in den letzten %n Stunden langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet."],
"Temporary space available" : "Temporärer Platz verfügbar",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Fehler beim Überprüfen des temporären PHP-Pfads - er wurde nicht ordnungsgemäß auf ein Verzeichnis festgelegt. Zurückgegebener Wert: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Die PHP-Funktion \"disk_free_space\" ist deaktiviert, was die Überprüfung auf ausreichend Speicherplatz in den temporären Verzeichnissen verhindert.",
@@ -349,7 +352,7 @@
"Text processing" : "Textverarbeitung",
"Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Textverarbeitungsaufgaben können mittels verschiedener Apps umgesetzt werden. Hier kann eingestellt werden, welche App für welche Aufgabe verwendet werden soll.",
"None of your currently installed apps provide text processing functionality using the Text Processing API." : "Keine deiner derzeit installierten Apps bietet Funktionalität zur Textverarbeitung durch Nutzung der Text-Processing-API.",
- "Here you can decide which group can access certain sections of the administration settings." : "Hier kann festgelegt werden, welche Gruppe auf bestimmte Bereiche der Verwaltungseinstellungen zugreifen kann.",
+ "Here you can decide which group can access certain sections of the administration settings." : "Hier kann festgelegt werden, welche Gruppe auf bestimmte Bereiche der Administrationseinstellungen zugreifen kann.",
"Unable to modify setting" : "Einstellung konnte nicht geändert werden",
"None" : "Keine",
"Changed disclaimer text" : "Geänderter Haftungsausschlusstext",
@@ -369,14 +372,14 @@
"Allow users to set custom share link tokens" : "Benutzern erlauben, benutzerdefinierte Freigabelink-Token festzulegen",
"Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Freigaben mit benutzerdefinierten Token sind auch noch nach der Deaktivierung dieser Einstellung zugänglich",
"Shares with guessable tokens may be accessed easily" : "Auf Freigaben mit erratbaren Token kann u. U. leicht zugegriffen werden",
- "Limit sharing based on groups" : "Freigeben basierend auf Gruppen beschränken",
+ "Limit sharing based on groups" : "Freigaben nach Gruppen einschränken",
"Allow sharing for everyone (default)" : "Teilen für alle erlauben (Standard)",
- "Exclude some groups from sharing" : "Einige Gruppen vom Teilen ausschließen",
- "Limit sharing to some groups" : "Teilen auf einige Gruppen beschränken",
- "Groups allowed to share" : "Gruppen, die teilen dürfen",
+ "Exclude some groups from sharing" : "Bestimmte Gruppen vom Teilen ausschließen",
+ "Limit sharing to some groups" : "Teilen für bestimmte Gruppen erlauben",
+ "Groups allowed to share" : "Für die Linkfreigabe zugelassene Gruppen",
"Groups excluded from sharing" : "Von der Linkfreigabe ausgeschlossene Gruppen",
"Not allowed groups will still be able to receive shares, but not to initiate them." : "Nicht zugelassene Gruppen können zwar weiterhin Freigaben empfangen, aber nicht erstellen.",
- "Set default expiration date for internal shares" : "Lege das Standardablaufdatum für interne Freigaben fest",
+ "Set default expiration date for internal shares" : "Standardablaufdatum für interne Freigaben festlegen",
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Default expiration time of new shares in days" : "Standardablaufzeit neuer Freigaben in Tagen",
"Expire shares after x days" : "Freigaben laufen nach x Tagen ab",
@@ -391,7 +394,7 @@
"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.",
"Restrict account name autocompletion and system address book access to users within the same groups" : "Die automatische Vervollständigung von Kontonamen und den Zugriff auf das Systemadressbuch auf Benutzer innerhalb derselben Gruppen beschränken",
"Restrict account name autocompletion to users based on phone number integration" : "Die automatische Vervollständigung des Kontonamens auf Benutzer beschränken, die auf der Integration von Telefonnummern basieren.",
- "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)",
+ "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Die automatische Vervollständigung ermöglichen, wenn der vollständige Name oder die E-Mail-Adresse eingegeben wird (ignoriert fehlende Telefonbuchübereinstimmungen und gleiche Gruppenzugehörigkeit)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Zeige Haftungsausschluss auf der öffentlichen Upload-Seite (Wird nur gezeigt, wenn die Dateiliste nicht angezeigt wird.) ",
"Disclaimer text" : "Haftungsausschlusstext",
"This text will be shown on the public link upload page when the file list is hidden." : "Dieser Text wird auf der öffentlichen Upload-Seite angezeigt wenn die Dateiliste nicht angezeigt wird.",
@@ -435,103 +438,12 @@
"Search groups…" : "Suche Gruppen…",
"List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list." : "Liste der Gruppen. Diese Liste ist aus Leistungsgründen nicht vollständig gefüllt. Die Gruppen werden während des Navigierens oder Suchens geladen.",
"Loading groups…" : "Lade Gruppen…",
- "Could not load app discover section" : "Der App-Erkennungsabschnitt konnte nicht geladen werden",
+ "Could not load app discover section" : "Der Menüpunkt \"Endecken\" konnte nicht geladen werden.",
"Could not render element" : "Element konnte nicht dargestellt werden",
"Nothing to show" : "Nichts anzuzeigen",
"Could not load section content from app store." : "Abschnittsinhalt konnte nicht aus dem App Store geladen werden.",
"Loading" : "Lade",
"Fetching the latest news…" : "Aktuelle Nachrichten werden abgerufen…",
- "Carousel" : "Karussell",
- "Previous slide" : "Vorherige Folie",
- "Next slide" : "Nächste Folie",
- "Choose slide to display" : "Folie zum Anzeigen auswählen",
- "{index} of {total}" : "{index} von {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon bereitstellen",
- "Type" : "Typ",
- "Display Name" : "Anzeigename",
- "GPUs support" : "GPUs Unterstützung",
- "Compute device" : "Compute-Gerät",
- "Advanced deploy options" : "Erweiterte Bereitstellungsoptionen",
- "Edit ExApp deploy options before installation" : "Bereitstellungsoptionen von ExApp vor der Installation bearbeiten",
- "Configured ExApp deploy options. Can be set only during installation" : "Eingestellte ExApp-Bereitstellungsoptionen. Kann nur während der Installation festgelegt werden",
- "Learn more" : "Mehr erfahren",
- "Environment variables" : "Umgebungsvariablen",
- "ExApp container environment variables" : "Umgebungsvariablen für ExApp-Container",
- "No environment variables defined" : "Keine Umgebungsvariablen definiert",
- "Mounts" : "Einhängepunkte",
- "Define host folder mounts to bind to the ExApp container" : "Host-Ordner-Mounts zum Binden an den ExApp-Container definieren",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Muss auf dem Deploy-Daemon-Host vorhanden sein, bevor die ExApp installiert wird",
- "Host path" : "Hostpfad",
- "Container path" : "Containerpfad",
- "Read-only" : "Schreibgeschützt",
- "Remove mount" : "Einhängepunkt entfernen",
- "New mount" : "Neuer Einhängepunkt",
- "Enter path to host folder" : "Pfad zum Hostordner eingeben",
- "Enter path to container folder" : "Pfad zum Containerordner eingeben",
- "Toggle read-only mode" : "Schreibschutz umschalten",
- "Confirm adding new mount" : "Hinzufügen des neuen Einhängepunkts bestätigen",
- "Confirm" : "Bestätigen",
- "Cancel adding mount" : "Hinzufügen des Einhängepunkts abbrechen",
- "Cancel" : "Abbrechen",
- "Add mount" : "Einhängepunkt hinzufügen",
- "ExApp container mounts" : "ExApp-Container-Einhängepunkte",
- "No mounts defined" : "Keine Einhängepunkte definiert",
- "Description" : "Beschreibung",
- "View in store" : "Im Store anzeigen",
- "Visit website" : "Webseite besuchen",
- "Usage documentation" : "Nutzungsdokumentation",
- "Admin documentation" : "Dokumentation für die Administration",
- "Developer documentation" : "Dokumentation für Entwickler",
- "Details" : "Details",
- "All" : "Alle",
- "Limit app usage to groups" : "App-Verwendung auf Gruppen beschränken",
- "No results" : "Keine Ergebnisse",
- "Update to {version}" : "Aktualisieren auf {version}",
- "Deploy options" : "Bereitstellungsoptionen",
- "Default Deploy daemon is not accessible" : "Der Standard-Deploy-Daemon ist nicht zugänglich",
- "Delete data on remove" : "Daten beim Entfernen löschen",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
- "Latest updated" : "Zuletzt aktualisiert",
- "Author" : "Autor",
- "Categories" : "Kategorien",
- "Resources" : "Ressourcen",
- "Documentation" : "Dokumentation",
- "Interact" : "Interagieren",
- "Report a bug" : "Einen technischen Fehler melden",
- "Request feature" : "Funktion vorschlagen",
- "Ask questions or discuss" : "Fragen stellen oder diskutieren",
- "Rate the app" : "App bewerten",
- "Rate" : "Bewerten",
- "Changelog" : "Liste der Veränderungen",
- "Google Chrome for Android" : "Google Chrome für Android",
- "{productName} iOS app" : "{productName} iOS-App",
- "{productName} Android app" : "{productName} Android-App",
- "{productName} Talk for iOS" : "{productName} Talk für iOS",
- "{productName} Talk for Android" : "{productName} Talk für Android",
- "Sync client" : "Sync-Client",
- "This session" : "Diese Sitzung",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Gerätename",
- "Cancel renaming" : "Umbenennen abbrechen",
- "Save new name" : "Neuen Namen speichern",
- "Marked for remote wipe" : "Für Fernlöschung markiert",
- "Device settings" : "Geräteeinstellungen",
- "Allow filesystem access" : "Erlaube Dateisystem-Zugriff",
- "Rename" : "Umbenennen",
- "Revoke" : "Widerrufen",
- "Wipe device" : "Gerät löschen",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen deines Gerät verhindern, so lange die Löschung noch nicht gestartet wurde.",
- "Device" : "Gerät",
- "Last activity" : "Letzte Aktivität",
- "Devices & sessions" : "Geräte & Sitzungen",
- "Web, desktop and mobile clients currently logged in to your account." : "Aktuell in deinem Konto angemeldete Web-, Desktop- und Mobil-Clients:",
- "Error while creating device token" : "Fehler beim Erstellen des Geräte-Tokens",
- "App name" : "App-Name",
- "Create new app password" : "Neues App-Passwort erstellen",
"App password copied!" : "App-Passwort kopiert!",
"Copy app password" : "App-Passwort kopieren",
"Login name copied!" : "Anmeldename kopiert!",
@@ -546,11 +458,11 @@
"Use system cron service to call the cron.php file every 5 minutes." : "Den System-Cron-Dienst verwenden, um die Datei cron.php alle 5 Minuten aufzurufen.",
"The cron.php needs to be executed by the system account \"{user}\"." : "Die cron.php muss von dem Systemkonto \"{user}\" ausgeführt werden.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Die PHP-POSIX-Erweiterung ist erforderlich. Weitere Einzelheiten hierzu in der {linkstart}PHP-Dokumentation{linkend}.",
- "Unable to update background job mode" : "Hintergrund-Job-Modus kann nicht aktualisiert werden",
- "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." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundjobs richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden sich in der Dokumentation.",
+ "Unable to update background job mode" : "Hintergrundaufgaben-Modus kann nicht aktualisiert werden",
+ "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." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundaufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden sich in der Dokumentation.",
"Last job execution ran {time}. Something seems wrong." : "Der letzte Job lief {time}. Etwas scheint nicht zu stimmen.",
"Last job ran {relativeTime}." : "Der letzte Job lief {relativeTime}.",
- "Background job did not run yet!" : "Hintergrund-Job wurde bislang nicht ausgeführt!",
+ "Background job did not run yet!" : "Hintergrundaufgabe wurde bislang nicht ausgeführt!",
"AJAX" : "AJAX",
"Execute one task with each page loaded. Use case: Single account instance." : "Mit jeder geladenen Seite wird eine Aufgabe ausgeführt. Anwendungsfall: Einzelkonto-Installation.",
"Webcron" : "Webcron",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "Standardeinstellung des Profils kann nicht aktualisiert werden",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Profil für neue Konten standardmäßig aktivieren oder deaktivieren.",
+ "Password confirmation is required" : "Passwortbestätigung erforderlich",
"Failed to save setting" : "Einstellung konnte nicht gespeichert werden",
"{app}'s declarative setting field: {name}" : "Deklaratives Einstellungsfeld von {app}: {name}",
"Unable to update server side encryption config" : "Die Serverseitige Verschlüsselungskonfiguration kann nicht aktualisiert werden.",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Datensicherungen zu erstellen. Sofern die Verschlüsselung genutzt wird, sollte auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit den Daten durchgeführt werden.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informationen zum manuellen Verschlüsseln vorhandener Dateien finden sich in der Administrationsdokumentation.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Soll die Verschlüsselung wirklich aktiviert werden?",
- "Failed to remove group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht entfernt werden.",
+ "Failed to delete group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht gelöscht werden",
"Please confirm the group removal" : "Bitte die Löschung der Gruppe bestätigen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du bist im Begriff, die Gruppe \"{group}\" zu entfernen. Die Konten werden NICHT gelöscht.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Du bist im Begriff, die Gruppe \"{group}\" zu löschen. Die Konten werden NICHT gelöscht.",
+ "Cancel" : "Abbrechen",
+ "Confirm" : "Bestätigen",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
- "Remove group" : "Gruppe entfernen",
- "Current password" : "Aktuelles Passwort",
- "New password" : "Neues Passwort",
- "Change password" : "Passwort ändern",
- "Choose your profile picture" : "Wähle dein Profilbild aus.",
- "Please select a valid png or jpg file" : "Bitte eine gültige PNG- oder JPG-Datei auswählen",
- "Error setting profile picture" : "Fehler beim Einstellen des Profilbilds",
- "Error cropping profile picture" : "Fehler beim Zuschneiden des Profilbilds",
- "Error saving profile picture" : "Fehler beim Speichern des Profilbilds",
- "Error removing profile picture" : "Fehler beim Entfernen des Profilbilds",
- "Your profile picture" : "Dein Profilbild",
- "Upload profile picture" : "Profilbild hochladen",
- "Choose profile picture from Files" : "Profilbild aus Dateien wählen",
- "Remove profile picture" : "Profilbild entfernen",
- "The file must be a PNG or JPG" : "Die Datei muss im PNG- oder JPG-Format sein",
- "Picture provided by original account" : "Bild von Original-Konto zur Verfügung gestellt",
- "Set as profile picture" : "Als Profilbild festlegen",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Bitte beachten, dass es bis zu 24 Stunden dauern kann, bis das Profilbild überall aktualisiert wird.",
- "Your biography. Markdown is supported." : "Deine Biographie. Markdown wird unterstützt.",
- "Unable to update date of birth" : "Geburtsdatum konnte nicht aktualisiert werden",
- "Enter your date of birth" : "Gib dein Geburtsdatum ein",
- "You are using {s}{usage}{/s}" : "Du verwendest {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Du verwendest {s}{usage}{/s} von {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Du bist Mitglied folgender Gruppen:",
- "Your full name" : "Dein vollständiger Name",
- "Email options" : "E-Mail-Optionen",
- "Options for additional email address {index}" : "Optionen für zusätzliche E-Mail-Adresse {index}",
- "Remove primary email" : "Primäre E-Mail-Adresse entfernen",
- "Delete email" : "E-Mail löschen",
- "This address is not confirmed" : "Diese Adresse ist nicht bestätigt",
- "Unset as primary email" : "Als primäre E-Mail-Adresse deaktivieren",
- "Set as primary email" : "Als primäre E-Mail-Adresse festlegen",
- "Additional email address {index}" : "Zusätzliche E-Mail-Adresse {index}",
- "Unable to delete primary email address" : "Primäre E-Mail-Adresse konnte nicht gelöscht werden",
- "Unable to update primary email address" : "Primäre E-Mail-Adresse konnte nicht aktualisiert werden",
- "Unable to add additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht hinzugefügt werden",
- "Unable to update additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht aktualisiert werden",
- "Unable to delete additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht gelöscht werden",
- "Primary email for password reset and notifications" : "Primäre E-Mail-Adresse für Benachrichtigungen und zum Zurücksetzen des Passworts",
- "No email address set" : "Keine E-Mail-Adresse angegeben",
- "Your handle" : "Dein Online-Name",
- "Derived from your locale ({weekDayName})" : "Abgeleitet von deinem Gebietsschema ({weekDayName})",
- "Unable to update first day of week" : "Der erste Tag der Woche kann nicht aktualisiert werden",
- "Day to use as the first day of week" : "Tag, der als erster Tag der Woche verwendet werden soll",
- "Your headline" : "Deine Überschrift",
- "Unable to update language" : "Sprache konnte nicht aktualisiert werden",
- "Languages" : "Sprachen",
- "Help translate" : "Hilf bei der Übersetzung mit",
- "No language set" : "Keine Sprache eingestellt.",
- "Unable to update locale" : "Gebietsschema konnte nicht aktualisiert werden.",
- "Locales" : "Gebietsschemen",
- "Week starts on {firstDayOfWeek}" : "Woche beginnt am {firstDayOfWeek}",
- "No locale set" : "Kein Gebietsschema festgelegt",
- "Your city" : "Deine Stadt",
- "Your organisation" : "Deine Organisation",
- "Your phone number" : "Deine Telefonnummer",
- "Edit your Profile visibility" : "Sichtbarkeit des Profils anpassen",
- "Unable to update profile enabled state" : "Der Status „Profil aktiviert“ kann nicht aktualisiert werden.",
- "Enable profile" : "Profil aktivieren",
- "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." : "Die restriktivere Einstellung von Sichtbarkeit oder Bereich wird in deinem Profil berücksichtigt. Wenn beispielsweise die Sichtbarkeit auf \"Für jeden sichtbar\" und der Bereich auf \"Privat\" festgelegt ist, wird \"Privat\" respektiert.",
- "Unable to update visibility of {displayId}" : "Sichtbarkeit von {displayId} kann nicht aktualisiert werden",
- "she/her" : "sie/ihr",
- "he/him" : "er/sein",
- "they/them" : "sie/sie",
- "Your role" : "Deine Funktion",
- "Your X (formerly Twitter) handle" : "Dein X (früher Twitter)-Handle",
- "Your website" : "Deine Internetseite",
- "Invalid value" : "Ungültiger Wert",
- "Unable to update {property}" : "{property} konnte nicht aktualisiert werden.",
- "No {property} set" : "Keine {property} eingestellt",
- "Change scope level of {property}, current scope is {scope}" : "Den Geltungsbereich von {property} ändern, aktueller Bereich ist {scope}",
- "Unable to update federation scope of the primary {property}" : "Der Federations-Bereich des primären {property} kann nicht aktualisiert werden.",
- "Unable to update federation scope of additional {property}" : "Der Federations-Bereich des zusätzlichen {property} kann nicht aktualisiert werden.",
- "Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen",
- "Add" : "Hinzufügen",
- "Create" : "Erstellen",
- "Change" : "Ändern",
- "Delete" : "Löschen",
- "Reshare" : "Weiterteilen",
- "Default language" : "Standard-Sprache",
- "Common languages" : "Gängige Sprachen",
- "Other languages" : "Weitere Sprachen",
- "Password change is disabled because the master key is disabled" : "Das Ändern des Passwortes ist deaktiviert, da der Master-Schlüssel deaktiviert ist",
- "No accounts" : "Keine Konten",
- "Loading accounts …" : "Lade Konten …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Kontenliste. Diese Liste wird aus Performance-Gründen nicht vollständig ausgegeben. Die Konten werden ausgegeben, wenn durch die Liste navigiert wird.",
- "Manager" : "Manager",
- "Set line manager" : "Linien-Manager festlegen",
- "Account name will be autogenerated" : "Kontenname wird automatisch erstellt",
- "Account name (required)" : "Kontoname (erforderlich)",
- "Failed to search groups" : "Suche nach Gruppen fehlgeschlagen",
- "New account" : "Neues Konto",
- "Display name" : "Anzeigename",
- "Either password or email is required" : "Passwort oder E-Mail-Adresse ist erforderlich.",
- "Password (required)" : "Passwort (erforderlich)",
- "Email (required)" : "E-Mail-Adresse (erforderlich)",
- "Email" : "E-Mail-Adresse",
- "Member of the following groups (required)" : "Mitglied der folgenden Gruppen (erforderlich)",
- "Member of the following groups" : "Mitglied der folgenden Gruppen",
- "Set account groups" : "Kontengruppen setzen",
- "Admin of the following groups" : "Administration der folgenden Gruppen",
- "Set account as admin for …" : "Konto als Administration setzen für …",
- "Quota" : "Kontingent",
- "Set account quota" : "Kontokontigent setzen",
- "Language" : "Sprache",
- "Set default language" : "Standard-Sprache einstellen",
- "Add new account" : "Neues Konto hinzufügen",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} Konto …","{userCount} Konten …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} Konto","{userCount} Konten"],
- "Total rows summary" : "Zusammenfassung aller Zeilen",
- "Scroll to load more rows" : "Scrollen, um weitere Zeilen zu laden",
- "Password or insufficient permissions message" : "Passwort oder unzureichende Berechtigungen Nachricht",
- "Avatar" : "Avatar",
- "Account name" : "Kontoname",
- "Group admin for" : "Gruppenadministration für",
- "Account backend" : "Konto-Backend",
- "Storage location" : "Speicherort",
- "First login" : "Erste Anmeldung",
- "Last login" : "Letzte Anmeldung",
- "Account actions" : "Konto-Aktionen",
- "{size} used" : "{size} verwendet",
- "Delete account" : "Konto löschen",
- "Disconnect all devices and delete local data" : "Alle Geräte trennen und lokale Daten löschen",
- "Disable account" : "Konto deaktivieren",
- "Enable account" : "Konto aktivieren",
- "Resend welcome email" : "Willkommens-E-Mail erneut senden",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Im Falle des Verlusts des Gerätes oder der Verlassens der Organisation können mit dieser Funktion sämtliche Nextcloud-Daten von allen Geräten die mit {userid} verbunden sind gelöscht werden. Funktioniert nur wenn das Gerät mit dem Internet verbunden ist.",
- "Remote wipe of devices" : "Fernlöschung von Geräten",
- "Wipe {userid}'s devices" : "Lösche {userid}s Geräte",
- "Wiped {userid}'s devices" : "{userid}s Geräte bereinigt",
- "Failed to load groups with details" : "Gruppen mit Details konnten nicht geladen werden",
- "Failed to load sub admin groups with details" : "Unteradministrations-Gruppen mit Details konnten nicht geladen werden",
- "Failed to update line manager" : "Manager konnte nicht aktualisiert werden",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Vollständig {userid}s Konto löschen inklusive aller persönlichen Dateien, App-Daten, usw.",
- "Account deletion" : "Kontenlöschung",
- "Delete {userid}'s account" : "Konto von {userid} löschen",
- "Display name was successfully changed" : "Der Anzeigename wurde geändert",
- "Password can't be empty" : "Passwort darf nicht leer sein",
- "Password was successfully changed" : "Das Passwort wurde geändert",
- "Email can't be empty" : "E-Mail darf nicht leer sein",
- "Email was successfully changed" : "E-Mail wurde geändert",
- "Welcome mail sent!" : "Willkommens-E-Mail gesendet!",
- "Loading account …" : "Lade Konto …",
- "Change display name" : "Anzeigename ändern",
- "Set new password" : "Neues Passwort setzen",
- "You do not have permissions to see the details of this account" : "Keine Berechtigung, die Details dieses Kontos anzusehen.",
- "Set new email address" : "Neue E-Mail-Adresse setzen",
- "Add account to group" : "Konto zur Gruppe hinzufügen",
- "Set account as admin for" : "Konto als Administration festlegen für",
- "Select account quota" : "Kontokontigent auswählen",
- "Set the language" : "Sprache einstellen",
- "Toggle account actions menu" : "Kontenaktionsmenü umschalten",
- "Done" : "Erledigt",
- "Edit" : "Bearbeiten",
- "Account management settings" : "Kontoverwaltungseinstellungen",
- "Visibility" : "Sichtbarkeit",
- "Show language" : "Sprache anzeigen",
- "Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
- "Show first login" : "Erste Anmeldung anzeigen",
- "Show last login" : "Letzte Anmeldung anzeigen",
- "Sorting" : "Sortiere",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Die Systemkonfiguration erzwingt die Sortierung der Gruppen nach Namen. Dadurch wird auch die Anzeige der Mitgliederzahl deaktiviert.",
- "Group list sorting" : "Sortierung der Gruppenliste",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Aus Leistungsgründen wird die Sortierung nur auf die aktuell geladenen Gruppen angewendet. Gruppen werden beim Navigieren oder Suchen geladen.",
- "By member count" : "Nach Mitgliederzahl",
- "By name" : "Nach Name",
- "Send email" : "E-Mail senden",
- "Send welcome email to new accounts" : "Begrüßungs-E-Mail an neuen Konten senden",
- "Defaults" : "Standardeinstellungen",
- "Default quota" : "Standardkontingent",
- "Select default quota" : "Standardkontingent auswählen",
- "Server error while trying to complete WebAuthn device registration" : "Serverfehler beim Versuch die WebAuthn-Geräte-Registrierung abzuschließen",
- "Passwordless authentication requires a secure connection." : "Die Anmeldung ohne Passwort erfordert eine sichere Verbindung.",
- "Add WebAuthn device" : "WebAuthn-Gerät hinzufügen",
- "Please authorize your WebAuthn device." : "Bitte das WebAuthn-Gerät autorisieren.",
- "Adding your device …" : "Dieses Gerät hinzufügen …",
- "Unnamed device" : "Unbenanntes Gerät",
- "Passwordless Authentication" : "Authentifizierung ohne Passwort",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Dieses Konto für die Authentifizierung ohne Passwort nach dem FIDO2-Standard einrichten.",
- "No devices configured." : "Keine Geräte eingerichtet.",
- "The following devices are configured for your account:" : "Die folgenden Geräte sind für dein Konto eingerichtet:",
- "Your browser does not support WebAuthn." : "Dein Browser unterstützt kein WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Die Administration kann das Teilen-Verhalten fein abstimmen. Weitere Informationen finden sich in der Dokumentation.",
- "You need to enable the File sharing App." : "Die App \"File sharing\" muss aktiviert werden.",
- "App Store" : "App Store",
- "Loading app list" : "Lade App-Liste",
- "Loading categories" : "Lade Kategorien",
- "Developer documentation ↗" : "Entwickler-Dokumentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-lizensiert",
- "Version {version}" : "Version {version}",
- "All accounts" : "Alle Konten",
- "Admins" : "Administration",
- "Account group: {group}" : "Kontengruppe: {group}",
- "Account management" : "Kontoverwaltung",
+ "Delete group" : "Gruppe löschen",
"Sending…" : "Sende…",
"Email sent" : "E-Mail gesendet",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Beim Aktivieren der Verschlüsselung auf einem Nextcloud-Server werden aus Leistungsgründen nur neue und geänderte Dateien verschlüsselt.",
@@ -790,6 +511,7 @@
"Date of birth" : "Geburtsdatum",
"Full name" : "Vollständiger Name",
"Additional email" : "Zusätzliche E-Mail-Adresse",
+ "Email" : "E-Mail-Adresse",
"Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)",
"Headline" : "Überschrift",
"Organisation" : "Organisation",
@@ -799,11 +521,12 @@
"X (formerly Twitter)" : "X (früher Twitter)",
"Website" : "Webseite",
"Profile visibility" : "Sichtbarkeit des Profils",
+ "Language" : "Sprache",
"Locale" : "Gebietsschema",
"First day of week" : "Erster Tag der Woche",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nicht verfügbar, da diese Eigenschaft für Kernfunktionen wie Dateifreigabe und Kalendereinladungen erforderlich ist.",
- "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Nicht verfügbar, da Federation für dein Konto deaktiviert ist. Wende dich an deine Administration, wenn du Fragen hast.",
- "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Nicht verfügbar, da die Veröffentlichung benutzerspezifischer Daten auf dem Lookup-Server nicht zulässig ist. Bei Fragen bitte an die Systemadministration wenden..",
+ "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Nicht verfügbar, da Federation für dein Konto deaktiviert ist. Wende dich bei Fragen an deine Systemadministration.",
+ "Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Nicht verfügbar, da die Veröffentlichung kontospezifischer Daten auf dem Lookup-Server nicht zulässig ist. Wende dich bei Fragen an deine Systemadministration.",
"Discover" : "Entdecken",
"Your apps" : "Deine Apps",
"Active apps" : "Aktive Apps",
@@ -812,10 +535,11 @@
"App bundles" : "App-Pakete",
"Featured apps" : "Vorgestellte Apps",
"Supported apps" : "Unterstützte Apps",
- "Show to everyone" : "Für jeden sichtbar",
+ "Show to everyone" : "Für alle sichtbar",
"Show to logged in accounts only" : "Nur angemeldeten Konten anzeigen",
"Hide" : "Ausblenden",
"Manually installed apps cannot be updated" : "Manuell installierte Apps können nicht aktualisiert werden",
+ "Update to {version}" : "Aktualisieren auf {version}",
"{progress}% Deploying …" : "{progress}% Bereitstellen …",
"{progress}% Initializing …" : "{progress}% Initialisierung …",
"Health checking" : "Gesundheitsprüfung",
@@ -825,6 +549,7 @@
"Allow untested app" : "Ungetestete App zulassen",
"The app will be downloaded from the App Store" : "Die App wird aus dem App-Store heruntergeladen",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Diese App ist als nicht-kompatibel mit dieser Nextcloud-Version markiert. Fortfahren um die App dennoch zu installieren. Es kann jedoch sein, dass die App nicht wie erwartet funktioniert.",
+ "{size} used" : "{size} verwendet",
"Unknown" : "Unbekannt",
"Never" : "Niemals",
"Could not register device: Network error" : "Gerät konnte nicht registriert werden: Netzwerkfehler",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "Die Gruppensortierung konnte nicht festgelegt werden",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zu viele Anfragen aus diesem Netzwerk. Bitte später erneut versuchen oder an die Administration wenden, wenn dies ein Fehler sein sollte.",
"Error" : "Fehler",
+ "Default quota" : "Standardkontingent",
"Account documentation" : "Kontodokumentation",
"Administration documentation" : "Administrationsdokumentation",
+ "Documentation" : "Dokumentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud-Hilfe & Datenschutz-Ressourcen",
"General documentation" : "Allgemeine Dokumentation",
@@ -867,8 +594,9 @@
"SMTP Password" : "SMTP-Passwort",
"Save" : "Speichern",
"Test and verify email settings" : "Testen und überprüfen der E-Mail-Einstellungen",
+ "Send email" : "E-Mail senden",
"Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen",
- "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Performance deiner Instanz ist es wichtig, dass alles richtig konfiguriert ist. Um dir dabei zu helfen, werden einige automatische Prüfungen durchgeführt. Weitere Informationen kannst du der verlinkten Dokumentation entnehmen.",
+ "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Leistung deiner Instanz ist es von großer Bedeutung, dass alles richtig konfiguriert ist. Um dich dabei zu unterstützen, werden einige automatische Prüfungen durchgeführt. Weitere Informationen findest du in der verlinkten Dokumentation.",
"All checks passed." : "Alle Überprüfungen bestanden.",
"There are some errors regarding your setup." : "Es gibt einige Fehler in der Systemkonfiguration.",
"There are some warnings regarding your setup." : "Es gibt einige Warnungen in der Systemkonfiguration.",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "Neben dem Passwort einen zweiten Faktor verwenden, um die Sicherheit des Kontos zu erhöhen.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Wenn du Anwendungen von Drittanbietern verwendest, um dich mit Nextcloud zu verbinden, stelle bitte sicher, dass du für jede Anwendung ein Anwendungspasswort erstellst und einrichtest, bevor du die Zwei-Faktor-Authentifizierung aktivierst.",
"Logged in account must be a subadmin" : "Das angemeldete Konto muss eine Unteradministration sein.",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Um diese Prüfung auszuführen, musst du sicherstellen, dass dein Webserver eine Verbindung zu sich selbst herstellen kann. Dafür muss dieser in der Lage sein, sich mit mindestens einer seiner \"trusted_domains\" oder der \"overwrite.cli.url\" zu verbinden und diese aufzulösen.",
- "Missing optional index \"%s\" in table \"%s\"." : "Fehlender optionaler Index \"%s\" in der Tabelle \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von \"occ db:add-missing-indices\" können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Damit diese Prüfung ausgeführt werden kann, musst du sicherstellen, dass dein Webserver eine Verbindung zu sich selbst herstellen kann. Daher muss er in der Lage sein, mindestens eine seiner `trusted_domains` oder `overwrite.cli.url` aufzulösen und eine Verbindung zu ihnen herzustellen. Dieser Fehler kann das Ergebnis einer serverseitigen DNS-Nichtübereinstimmung oder einer ausgehenden Firewall-Regel sein.",
"File locking" : "Dateisperre",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert, dies kann zu Problemen mit Race Conditions führen. Aktiviere \"filelocking.enabled\" in config.php, um diese Probleme zu vermeiden.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Es konnte weder über deine `trusted_domains` noch über `overwrite.cli.url` nach JavaScript-Unterstützung gesucht werden. Dies kann auf eine serverseitige DNS-Nichtübereinstimmung oder eine ausgehende Firewall-Regel zurückzuführen sein. Bitte überprüfe manuell, ob dein Webserver `.mjs`-Dateien mit dem JavaScript-MIME-Typ bereitstellt.",
"The PHP memory limit is below the recommended value of %s." : "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von %s.",
"for WebAuthn passwordless login" : "für WebAuthn passwortlose Anmeldung",
"for WebAuthn passwordless login, and SFTP storage" : "für WebAuthn passwortlose Anmeldung und SFTP-Speicher",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du verwendest derzeit PHP %s. PHP 8.0 ist ab Nextcloud 27 veraltet. Nextcloud 28 erfordert mindestens PHP 8.1. Bitte aktualisiere so schnell wie möglich auf eine der offiziell unterstützten PHP-Versionen der PHP Gruppe.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und benötigen MariaDB 10.2 oder neuer.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützten diese Version nicht und benötigen MySQL 8.0 oder MariaDB 10.2 oder neuer.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und beötigen PostgreSQL 9.6 oder neuer.",
- "Speech-To-Text" : "Sprache-zu-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Sprache-zu-Text kann mittels verschiedener Apps implementiert werden. Hier kannst du einstellen, welche App verwendet werden soll.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Keine deiner derzeit installierten Apps bietet Sprache-zu-Text-Funktionalität.",
- "None of your currently installed apps provide Text processing functionality" : "Keine deiner derzeit installierten Apps bietet Funktionalität zur Textverarbeitung.",
- "Set default expiration date for shares" : "Lege das Standardablaufdatum für Freigaben fest",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Die automatische Vervollständigung des Benutzernamens im Freigabedialog und den Zugriff auf das Systemadressbuch erlauben",
- "Your biography" : "Deine Biografie",
- "You are using <strong>{usage}</strong>" : "Du benutzt <strong>{usage}</strong>.",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Du benutzt <strong>{usage}</strong> von <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>).",
- "Set user manager" : "Benutzermanager setzen",
- "Username will be autogenerated" : "Benutzername wird automatisch erzeugt.",
- "Username (required)" : "Benutzername (erforderlich)",
- "New user" : "Neuer Benutzer",
- "Groups (required)" : "Gruppen (erforderlich)",
- "Set user groups" : "Benutzergruppen einstellen",
- "Administered groups" : "Administrierte Gruppen",
- "Set user as admin for …" : "Benutzer als Administration setzen für …",
- "Set user quota" : "Kontokontingent einstellen",
- "Add new user" : "Neuen Benutzer hinzufügen",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} Benutzer …","{userCount} Benutzer …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} Benutzer","{userCount} Benutzer"],
- "Loading users …" : "Lade Benutzer …",
- "Username" : "Benutzername",
- "User backend" : "Benutzer-Backend",
- "User actions" : "Benutzeraktionen",
- "Add user to group" : "Benutzer der Gruppe hinzufügen",
- "Server error while trying to add WebAuthn device" : "Serverfehler beim Versuch ein WebAuthn-Gerät hinzuzufügen",
- "Name your device" : "Gerät benennen",
- "Active accounts" : "Aktive Konten",
- "Follow us on Twitter" : "Uns auf X folgen",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Damit diese Prüfung ausgeführt werden kann, musst du sicherstellen, dass dein Webserver eine Verbindung zu sich selbst herstellen kann. Daher muss er in der Lage sein, mindestens eine seiner `trusted_domains` oder `overwrite.cli.url` aufzulösen und eine Verbindung zu ihnen herzustellen. Dieser Fehler kann das Ergebnis einer serverseitigen DNS-Nichtübereinstimmung oder einer ausgehenden Firewall-Regel sein.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` enthält nicht `%2$s`. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL-Version \"%s\" erkannt. Für optimale Leistung, Stabilität und Funktionalität mit dieser Version von Nextcloud wird PostgreSQL >=12 und <=16 empfohlen.",
- "Failed to load subadmin groups with details" : "Unteradministrations-Gruppen mit Details konnten nicht geladen werden"
+ "Set default expiration date for shares" : "Lege das Standardablaufdatum für Freigaben fest"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js
index 35698a0a7fd..950d324f060 100644
--- a/apps/settings/l10n/de_DE.js
+++ b/apps/settings/l10n/de_DE.js
@@ -2,9 +2,9 @@ OC.L10N.register(
"settings",
{
"Private" : "Privat",
- "Only visible to people matched via phone number integration through Talk on mobile" : "Nur sichtbar für Personen, die über Rufnummernintegration von Talk on mobile abgeglichen wurden.",
+ "Only visible to people matched via phone number integration through Talk on mobile" : "Nur sichtbar für Personen, die über die Rufnummernintegration von Talk auf dem Smartphone abgeglichen wurden.",
"Local" : "Lokal",
- "Only visible to people on this instance and guests" : "Nur für Personen dieser Instanz und Gästen sichtbar",
+ "Only visible to people on this instance and guests" : "Nur für Personen dieser Instanz und Gäste sichtbar",
"Federated" : "Federated",
"Only synchronize to trusted servers" : "Nur mit vertrauenswürdigen Servern synchronisieren",
"Published" : "Veröffentlicht",
@@ -25,11 +25,11 @@ OC.L10N.register(
"{actor} added {user} to group {group}" : "{actor} hat {user} zur Gruppe {group} hinzugefügt",
"An administrator added you to group {group}" : "Die Administration hat Sie zur Gruppe {group} hinzugefügt",
"An administrator added {user} to group {group}" : "Die Administration hat {user} zur Gruppe {group} hinzugefügt",
- "{actor} removed you from group {group}" : "{actor} hat Sie von der Gruppe {group} entfernt",
- "You removed {user} from group {group}" : "Sie haben {user} von der Gruppe {group} entfernt",
- "{actor} removed {user} from group {group}" : "{actor} hat {user} von der Gruppe {group} entfernt",
- "An administrator removed you from group {group}" : "Die Administration hat Sie von der Gruppe {group} entfernt",
- "An administrator removed {user} from group {group}" : "Die Administration hat {user} von der Gruppe {group} entfernt",
+ "{actor} removed you from group {group}" : "{actor} hat Sie aus der Gruppe {group} entfernt",
+ "You removed {user} from group {group}" : "Sie haben {user} aus der Gruppe {group} entfernt",
+ "{actor} removed {user} from group {group}" : "{actor} hat {user} aus der Gruppe {group} entfernt",
+ "An administrator removed you from group {group}" : "Die Administration hat Sie aus der Gruppe {group} entfernt",
+ "An administrator removed {user} from group {group}" : "Die Administration hat {user} aus der Gruppe {group} entfernt",
"Your <strong>group memberships</strong> were modified" : "Ihre <strong>Gruppenmitgliedschaft</strong> wurde geändert",
"{actor} changed your password" : "{actor} hat Ihr Passwort geändert",
"You changed your password" : "Sie haben Ihr Passwort geändert",
@@ -42,8 +42,8 @@ OC.L10N.register(
"An administrator created an app password for a session named \"{token}\"" : "Die Administration hat ein App-Passwort für eine Sitzung mit dem Namen \"{token}\" erstellt",
"You deleted app password \"{token}\"" : "Sie haben das App-Passwort \"{token}\" gelöscht",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Sie haben das App-Passwort \"{token}\" in \"{newToken}\" umbenannt",
- "You granted filesystem access to app password \"{token}\"" : "Sie haben Dateisystemzugriff für App-Passwort \"{token}\" erlaubt",
- "You revoked filesystem access from app password \"{token}\"" : "Sie haben Dateisystemzugriff für App-Passwort \"{token}\" widerrufen",
+ "You granted filesystem access to app password \"{token}\"" : "Sie haben den Dateisystemzugriff für das App-Passwort \"{token}\" erlaubt",
+ "You revoked filesystem access from app password \"{token}\"" : "Sie haben den Dateisystemzugriff für das App-Passwort \"{token}\" widerrufen",
"Security" : "Sicherheit",
"You successfully logged in using two-factor authentication (%1$s)" : "Sie haben sich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)",
@@ -63,9 +63,9 @@ OC.L10N.register(
"Wrong admin recovery password. Please check the password and try again." : "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfen Sie das Passwort und versuchen Sie es erneut.",
"Backend does not support password change, but the encryption of the account key was updated." : "Das Backend unterstützt keine Passwortänderung, aber die Verschlüsselung des Kontoschlüssels wurde aktualisiert.",
"Administrator documentation" : "Dokumentation für die Administration",
- "User documentation" : "Nutzungsdokumentation",
+ "User documentation" : "Dokumentation für Benutzer",
"Nextcloud help overview" : "Übersicht über die Nextcloud-Hilfe",
- "Invalid SMTP password." : "Ungültiges SMTP-Passwort.",
+ "Invalid SMTP password." : "Ungültiges SMTP-Passwort",
"Email setting test" : "Test der E-Mail-Einstellungen",
"Well done, %s!" : "Gut gemacht, %s!",
"If you received this email, the email configuration seems to be correct." : "Wenn Sie diese E-Mail empfangen haben, sind die E-Mail-Einstellungen korrekt.",
@@ -79,8 +79,8 @@ OC.L10N.register(
"Settings saved" : "Einstellungen gespeichert",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Unable to change email address" : "E-Mail-Adresse konnte nicht geändert werden",
- "Unable to set invalid phone number" : "Ungültige Rufnummer kann nicht eingestellt werden",
- "Unable to set invalid website" : "Ungültige Webseite kann nicht eingestellt werden",
+ "Unable to set invalid phone number" : "Ungültige Telefonnummer konnte nicht festgelegt werden",
+ "Unable to set invalid website" : "Ungültige Webseite konnte nicht festgelegt werden",
"Some account data was invalid" : "Einige Kontodaten waren ungültig",
"In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Um Ihr Twitter-Konto zu überprüfen, veröffentlichen Sie bitte den folgenden Tweet auf Twitter (Bitte stellen Sie sicher, dass der Tweet keinen Zeilenumbruch enthält):",
"In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Um Ihre Webseite zu überprüfen, speichern Sie bitte den folgenden Inhalt im Web-Wurzelverzeichnist in der Datei '.well-known/CloudIdVerificationCode.txt' (bitte stellen Sie sicher, das sich der gesamte Text in einer Zeile befindet):",
@@ -103,11 +103,11 @@ OC.L10N.register(
"Your Login is: %s" : "Ihr Anmeldename lautet: %s",
"Set your password" : "Setzen Sie Ihr Passwort",
"Go to %s" : "%s aufrufen",
- "Install Client" : "Installiere den Client",
+ "Install Client" : "Client installieren",
"Logged in account must be a sub admin" : "Das angemeldete Konto muss eine Unteradministration sein.",
"Apps" : "Apps",
"Personal" : "Persönlich",
- "Administration" : "Verwaltung",
+ "Administration" : "Administration",
"Users" : "Konten",
"Additional settings" : "Zusätzliche Einstellungen",
"Artificial Intelligence" : "Künstliche Intelligenz",
@@ -122,12 +122,12 @@ OC.L10N.register(
"Mobile & desktop" : "Mobil & Desktop",
"Email server" : "E-Mail-Server",
"Mail Providers" : "E-Mail-Anbieter",
- "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Der E-Mail-Provider ermöglicht das Senden von E-Mails direkt über das persönliche E-Mail-Konto des Benutzers. Derzeit ist diese Funktion auf Kalendereinladungen beschränkt. Es erfordert Nextcloud Mail 4.1 und ein E-Mail-Konto in Nextcloud Mail, das mit der E-Mail-Adresse des Benutzers in Nextcloud übereinstimmt.",
+ "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Der E-Mail-Anbieter ermöglicht das Senden von E-Mails direkt über das persönliche E-Mail-Konto des Benutzers. Derzeit ist diese Funktion auf Kalendereinladungen beschränkt. Es erfordert Nextcloud Mail 4.1 und ein E-Mail-Konto in Nextcloud Mail, das mit der E-Mail-Adresse des Benutzers in Nextcloud übereinstimmt.",
"Send emails using" : "E-Mails senden mittels",
"User's email account" : "E-Mail-Konto des Benutzers",
"System email account" : "System-E-Mail-Konto",
- "Security & setup checks" : "Sicherheits- & Einrichtungsüberprüfungen",
- "Background jobs" : "Hintergrund-Aufgaben",
+ "Security & setup checks" : "Sicherheits- und Einrichtungsüberprüfungen",
+ "Background jobs" : "Hintergrundaufgaben",
"Unlimited" : "Unbegrenzt",
"Verifying" : "Überprüfe",
"Allowed admin IP ranges" : "Zulässige Administrations-IP-Bereiche",
@@ -142,8 +142,8 @@ OC.L10N.register(
"Your remote address could not be determined." : "Ihre Remote-Adresse konnte nicht ermittelt werden.",
"Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Ihre Remote-Adresse wurde als \"%s\" erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht Ihre Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist.",
"Your remote address \"%s\" is not brute-force throttled." : "Ihre Remote-Adresse \"%s\" ist nicht durch die Brute-Force-Erkennung gedrosselt.",
- "Old administration imported certificates" : "Alte, von der Adminstration importierte Zertifikate",
- "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach, von der Adminstration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
+ "Old administration imported certificates" : "Alte, von der Administration importierte Zertifikate",
+ "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach von der Administration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige, von der Administration importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Sie können über den Befehl \"occ security:certificates:import\" in der Befehlszeile importiert werden. Ihre Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.",
"Code integrity" : "Codeintegrität",
"Integrity checker has been disabled. Integrity cannot be verified." : "Die Integritätsprüfung wurde deaktiviert. Die Integrität kann nicht überprüft werden.",
@@ -153,11 +153,11 @@ OC.L10N.register(
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s" : "Es war nicht möglich, den Cron-Job über die CLI auszuführen. Es sind folgende technische Fehler aufgetreten:\n%s",
"The last cron job ran without errors." : "Der letzte Cron-Job wurde ohne Fehler ausgeführt.",
"Cron last run" : "Cron zuletzt ausgeführt",
- "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrund-Jobausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
- "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.",
+ "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrundaufgaben-Ausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
+ "Last background job execution ran %s." : "Letzte Hintergrundaufgaben-Ausführung lief %s.",
"Data directory protected" : "Datenverzeichnis geschützt",
"Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.",
- "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Konnte nicht überprüfen, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
+ "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
"Database missing columns" : "In der Datenbank fehlen Spalten",
"Missing optional column \"%s\" in table \"%s\"." : "Fehlende optionale Spalte \"%s\" in der Tabelle \"%s\".",
"The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von \"occ db:add-missing-columns\" können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Bedienfreundlichkeit verbessern.",
@@ -177,7 +177,7 @@ OC.L10N.register(
"Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für Ihre Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländervorwahl zu überprüfen. Um Nummern ohne Ländervorwahl zuzulassen, fügen Sie bitte \"default_phone_region\" mit dem entsprechenden ISO 3166-1-Code der Region zu Ihrer Konfigurationsdatei hinzu.",
"Email test" : "E-Mail-Test",
"Mail delivery is disabled by instance config \"%s\"." : "Die E-Mail-Zustellung ist aufgrund der Instanzkonfiguration \"%s\" deaktiviert.",
- "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt",
+ "Email test was successfully sent" : "Die Test-E-Mail wurde versandt",
"You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Sie haben Ihre E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft. Gehen Sie bitte zu den \"Grundeinstellungen\", um diese festzulegen. Benutzen Sie anschließend den Button \"E-Mail senden\" unterhalb des Formulars, um Ihre Einstellungen zu überprüfen.",
"Transactional File Locking" : "Transaktionale Dateisperre",
"Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert. Dies ist keine unterstützte Konfiguration und kann zu schwer zu einzugrenzenden Problemen führen, einschließlich der Beschädigung von Dateien. Bitte entfernen Sie den Konfigurationseintrag `'filelocking.enabled' => false` aus Ihrer `config.php`, um solche Probleme zu vermeiden.",
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP-Header",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- Der `%1$s`-HTTP-Header ist nicht auf `%2$s` gesetzt. Einige Funktionen arbeiten möglicherweise nicht richtig. Es wird daher empfohlen, diese Einstellung entsprechend anzupassen.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` ist nicht auf `%2$s` gesetzt. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` enthält nicht `%2$s`. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Der HTTP-Header `%1$s` ist nicht auf \"%2$s\", \"%3$s\", \"%4$s\", \"%5$s\" oder \"%6$s\" gesetzt. Dadurch können Verweisinformationen preisgegeben werden. Siehe die {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Der HTTP-Header `Strict-Transport-Security` ist nicht auf mindestens `%d` Sekunden eingestellt (aktueller Wert: `%d`). Für erhöhte Sicherheit wird die Verwendung einer langen HSTS-Richtlinie empfohlen.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Der `Strict-Transport-Security`-HTTP-Header ist fehlerhaft: `%s`. Für erhöhte Sicherheit wird empfohlen, HSTS zu aktivieren.",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "Architektur",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Anscheinend verwenden Sie eine 32-Bit-PHP-Version. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte aktualisieren Sie Ihr Betriebssystem und PHP auf 64-Bit!",
+ "Task Processing pickup speed" : "Abholgeschwindigkeit für Aufgabenverarbeitung",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Keine geplanten Aufgaben in der letzten %n Stunde.","Keine geplanten Aufgaben in den letzten %n Stunden."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Die Geschwindigkeit der Aufgabenübernahme war in der letzten %n Stunde in Ordnung.","Die Geschwindigkeit der Aufgabenübernahme war in den letzten %n Stunden in Ordnung."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Die Aufgabenabholgeschwindigkeit war in der letzten %n Stunde langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet.","Die Aufgabenabholgeschwindigkeit war in den letzten %n Stunden langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet."],
"Temporary space available" : "Temporärer Platz verfügbar",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Fehler beim Überprüfen des temporären PHP-Pfads - er wurde nicht ordnungsgemäß auf ein Verzeichnis festgelegt. Zurückgegebener Wert: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Die PHP-Funktion \"disk_free_space\" ist deaktiviert, was die Überprüfung auf ausreichend Speicherplatz in den temporären Verzeichnissen verhindert.",
@@ -371,14 +374,14 @@ OC.L10N.register(
"Allow users to set custom share link tokens" : "Benutzern erlauben, benutzerdefinierte Freigabelink-Token festzulegen",
"Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Freigaben mit benutzerdefinierten Token sind auch noch nach der Deaktivierung dieser Einstellung zugänglich",
"Shares with guessable tokens may be accessed easily" : "Auf Freigaben mit erratbaren Token kann u. U. leicht zugegriffen werden",
- "Limit sharing based on groups" : "Freigeben basierend auf Gruppen beschränken",
- "Allow sharing for everyone (default)" : "Teilen für jedermann erlauben (Standard)",
- "Exclude some groups from sharing" : "Einige Gruppen vom Teilen ausschließen",
- "Limit sharing to some groups" : "Teilen auf einige Gruppen beschränken",
- "Groups allowed to share" : "Gruppen, die teilen dürfen",
+ "Limit sharing based on groups" : "Freigaben nach Gruppen einschränken",
+ "Allow sharing for everyone (default)" : "Teilen für alle erlauben (Standard)",
+ "Exclude some groups from sharing" : "Bestimmte Gruppen vom Teilen ausschließen",
+ "Limit sharing to some groups" : "Teilen für bestimmte Gruppen erlauben",
+ "Groups allowed to share" : "Für die Linkfreigabe zugelassene Gruppen",
"Groups excluded from sharing" : "Von der Linkfreigabe ausgeschlossene Gruppen",
"Not allowed groups will still be able to receive shares, but not to initiate them." : "Nicht zugelassene Gruppen können zwar weiterhin Freigaben empfangen, aber nicht erstellen.",
- "Set default expiration date for internal shares" : "Legen Sie das Standardablaufdatum für interne Freigaben fest",
+ "Set default expiration date for internal shares" : "Standardablaufdatum für interne Freigaben festlegen",
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Default expiration time of new shares in days" : "Standardablaufzeit neuer Freigaben in Tagen",
"Expire shares after x days" : "Freigaben laufen nach x Tagen ab",
@@ -393,7 +396,7 @@ OC.L10N.register(
"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.",
"Restrict account name autocompletion and system address book access to users within the same groups" : "Die automatische Vervollständigung von Kontonamen und den Zugriff auf das Systemadressbuch auf Benutzer innerhalb derselben Gruppen beschränken",
"Restrict account name autocompletion to users based on phone number integration" : "Die automatische Vervollständigung des Kontonamens auf Benutzer beschränken, die auf der Integration von Telefonnummern basieren.",
- "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)",
+ "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Die automatische Vervollständigung ermöglichen, wenn der vollständige Name oder die E-Mail-Adresse eingegeben wird (ignoriert fehlende Telefonbuchübereinstimmungen und gleiche Gruppenzugehörigkeit)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Haftungsausschluss auf der öffentlichen Upload-Seite anzeigen (Wird nur gezeigt, wenn die Dateiliste nicht angezeigt wird.) ",
"Disclaimer text" : "Haftungsausschlusstext",
"This text will be shown on the public link upload page when the file list is hidden." : "Dieser Text wird auf der öffentlichen Upload-Seite angezeigt wenn die Dateiliste nicht angezeigt wird.",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Abschnittsinhalt konnte nicht aus dem App Store geladen werden.",
"Loading" : "Lade",
"Fetching the latest news…" : "Aktuelle Nachrichten werden abgerufen…",
- "Carousel" : "Karussell",
- "Previous slide" : "Vorherige Folie",
- "Next slide" : "Nächste Folie",
- "Choose slide to display" : "Folie zum Anzeigen auswählen",
- "{index} of {total}" : "{index} von {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon bereitstellen",
- "Type" : "Typ",
- "Display Name" : "Anzeigename",
- "GPUs support" : "GPUs-Unterstützung",
- "Compute device" : "Compute-Gerät",
- "Advanced deploy options" : "Erweiterte Bereitstellungsoptionen",
- "Edit ExApp deploy options before installation" : "Bereitstellungsoptionen von ExApp vor der Installation bearbeiten",
- "Configured ExApp deploy options. Can be set only during installation" : "Eingestellte ExApp-Bereitstellungsoptionen. Kann nur während der Installation festgelegt werden",
- "Learn more" : "Mehr erfahren",
- "Environment variables" : "Umgebungsvariablen",
- "ExApp container environment variables" : "Umgebungsvariablen für ExApp-Container",
- "No environment variables defined" : "Keine Umgebungsvariablen definiert",
- "Mounts" : "Einhängepunkte",
- "Define host folder mounts to bind to the ExApp container" : "Host-Ordner-Mounts zum Binden an den ExApp-Container definieren",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Muss auf dem Deploy-Daemon-Host vorhanden sein, bevor die ExApp installiert wird",
- "Host path" : "Hostpfad",
- "Container path" : "Containerpfad",
- "Read-only" : "Schreibgeschützt",
- "Remove mount" : "Einhängepunkt entfernen",
- "New mount" : "Neuer Einhängepunkt",
- "Enter path to host folder" : "Pfad zum Hostordner eingeben",
- "Enter path to container folder" : "Pfad zum Containerordner eingeben",
- "Toggle read-only mode" : "Schreibschutz umschalten",
- "Confirm adding new mount" : "Hinzufügen des neuen Einhängepunkts bestätigen",
- "Confirm" : "Bestätigen",
- "Cancel adding mount" : "Hinzufügen des Einhängepunkts abbrechen",
- "Cancel" : "Abbrechen",
- "Add mount" : "Einhängepunkt hinzufügen",
- "ExApp container mounts" : "ExApp-Container-Einhängepunkte",
- "No mounts defined" : "Keine Einhängepunkte definiert",
- "Description" : "Beschreibung",
- "View in store" : "Im Store anzeigen",
- "Visit website" : "Webseite besuchen",
- "Usage documentation" : "Nutzungsdokumentation",
- "Admin documentation" : "Dokumentation für die Administration",
- "Developer documentation" : "Dokumentation für Entwickler",
- "Details" : "Details",
- "All" : "Alle",
- "Limit app usage to groups" : "App-Verwendung auf Gruppen beschränken",
- "No results" : "Keine Ergebnisse",
- "Update to {version}" : "Aktualisieren auf {version}",
- "Deploy options" : "Bereitstellungsoptionen",
- "Default Deploy daemon is not accessible" : "Der Standard-Deploy-Daemon ist nicht zugänglich",
- "Delete data on remove" : "Daten beim Entfernen löschen",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
- "Latest updated" : "Zuletzt aktualisiert",
- "Author" : "Autor",
- "Categories" : "Kategorien",
- "Resources" : "Ressourcen",
- "Documentation" : "Dokumentation",
- "Interact" : "Interagieren",
- "Report a bug" : "Einen technischen Fehler melden",
- "Request feature" : "Funktion vorschlagen",
- "Ask questions or discuss" : "Fragen stellen oder diskutieren",
- "Rate the app" : "App bewerten",
- "Rate" : "Bewerten",
- "Changelog" : "Liste der Änderungen",
- "Google Chrome for Android" : "Google Chrome für Android",
- "{productName} iOS app" : "{productName} iOS-App",
- "{productName} Android app" : "{productName} Android-App",
- "{productName} Talk for iOS" : "{productName} Talk für iOS",
- "{productName} Talk for Android" : "{productName} Talk für Android",
- "Sync client" : "Sync-Client",
- "This session" : "Diese Sitzung",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Gerätename",
- "Cancel renaming" : "Umbenennen abbrechen",
- "Save new name" : "Neuen Namen speichern",
- "Marked for remote wipe" : "Für Fernlöschung markiert",
- "Device settings" : "Geräteeinstellungen",
- "Allow filesystem access" : "Erlaube Dateisystem-Zugriff",
- "Rename" : "Umbenennen",
- "Revoke" : "Widerrufen",
- "Wipe device" : "Gerät löschen",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Ihrem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.",
- "Device" : "Gerät",
- "Last activity" : "Letzte Aktivität",
- "Devices & sessions" : "Geräte & Sitzungen",
- "Web, desktop and mobile clients currently logged in to your account." : "Aktuell in Ihrem Konto angemeldete Web-, Desktop- und Mobil-Clients.",
- "Error while creating device token" : "Fehler beim Erstellen des Geräte-Tokens",
- "App name" : "App-Name",
- "Create new app password" : "Neues App-Passwort erstellen",
"App password copied!" : "App-Passwort kopiert!",
"Copy app password" : "App-Passwort kopieren",
"Login name copied!" : "Anmeldename kopiert!",
@@ -549,7 +461,7 @@ OC.L10N.register(
"The cron.php needs to be executed by the system account \"{user}\"." : "Die cron.php muss von dem Systemkonto \"{user}\" ausgeführt werden.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Die PHP-POSIX-Erweiterung ist erforderlich. Weitere Einzelheiten finden Sie in der {linkstart}PHP-Dokumentation{linkend}.",
"Unable to update background job mode" : "Hintergrund-Aufgaben-Modus kann nicht aktualisiert werden",
- "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." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundjobs richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden Sie in der Dokumentation.",
+ "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." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundaufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden Sie in der Dokumentation.",
"Last job execution ran {time}. Something seems wrong." : "Die letzte Aufgaben-Ausführung lief {time}. Etwas scheint falsch zu sein.",
"Last job ran {relativeTime}." : "Die letzte Aufgabe lief {relativeTime}.",
"Background job did not run yet!" : "Hintergrund-Aufgabe wurde bislang nicht ausgeführt!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Standardeinstellung des Profils kann nicht aktualisiert werden",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Profil für neue Konten standardmäßig aktivieren oder deaktivieren.",
+ "Password confirmation is required" : "Passwortbestätigung erforderlich",
"Failed to save setting" : "Einstellung konnte nicht gespeichert werden",
"{app}'s declarative setting field: {name}" : "Deklaratives Einstellungsfeld von {app}: {name}",
"Unable to update server side encryption config" : "Serverseitige Verschlüsselungskonfiguration kann nicht aktualisiert werden",
@@ -583,215 +496,24 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Sicherungskopien von ihren Daten zu machen. Falls Sie die Verschlüsselung nutzen, sollten Sie auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit Ihren Daten machen.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informationen zum manuellen Verschlüsseln vorhandener Dateien finden Sie in der Administrationsdokumentation.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Möchten Sie die Verschlüsselung wirklich aktivieren?",
- "Failed to remove group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht entfernt werden.",
+ "Failed to delete group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht gelöscht werden",
"Please confirm the group removal" : "Bitte die Löschung der Gruppe bestätigen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Sie sind im Begriff, die Gruppe \"{group}\" zu entfernen. Die Konten werden NICHT gelöscht.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Sie sind im Begriff, die Gruppe \"{group}\" zu löschen. Die Konten werden NICHT gelöscht.",
+ "Cancel" : "Abbrechen",
+ "Confirm" : "Bestätigen",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
- "Remove group" : "Gruppe entfernen",
- "Current password" : "Aktuelles Passwort",
- "New password" : "Neues Passwort",
- "Change password" : "Passwort ändern",
- "Choose your profile picture" : "Wählen Sie Ihr Profilbild aus.",
- "Please select a valid png or jpg file" : "Bitte eine gültige PNG- oder JPG-Datei auswählen",
- "Error setting profile picture" : "Fehler beim Einstellen des Profilbilds",
- "Error cropping profile picture" : "Fehler beim Zuschneiden des Profilbilds",
- "Error saving profile picture" : "Fehler beim Speichern des Profilbilds",
- "Error removing profile picture" : "Fehler beim Entfernen des Profilbilds",
- "Your profile picture" : "Ihr Profilbild",
- "Upload profile picture" : "Profilbild hochladen",
- "Choose profile picture from Files" : "Profilbild aus Dateien wählen",
- "Remove profile picture" : "Profilbild entfernen",
- "The file must be a PNG or JPG" : "Die Datei muss im PNG- oder JPG-Format sein",
- "Picture provided by original account" : "Bild von Original-Konto zur Verfügung gestellt",
- "Set as profile picture" : "Als Profilbild festlegen",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Bitte beachten, dass es bis zu 24 Stunden dauern kann, bis Ihr Profilbild überall aktualisiert ist.",
- "Your biography. Markdown is supported." : "Ihre Biographie. Markdown wird unterstützt.",
- "Unable to update date of birth" : "Geburtsdatum konnte nicht aktualisiert werden",
- "Enter your date of birth" : "Geben Sie Ihr Geburtsdatum ein",
- "You are using {s}{usage}{/s}" : "Sie verwenden {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Sie verwenden {s}{usage}{/s} von {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Sie sind Mitglied folgender Gruppen:",
- "Your full name" : "Ihr vollständiger Name",
- "Email options" : "E-Mail-Optionen",
- "Options for additional email address {index}" : "Optionen für zusätzliche E-Mail-Adresse {index}",
- "Remove primary email" : "Primäre E-Mail-Adresse entfernen",
- "Delete email" : "E-Mail löschen",
- "This address is not confirmed" : "Diese Adresse ist nicht bestätigt",
- "Unset as primary email" : "Als primäre E-Mail-Adresse deaktiviert",
- "Set as primary email" : "Als primäre E-Mail-Adresse festlegen",
- "Additional email address {index}" : "Zusätzliche E-Mail-Adresse {index}",
- "Unable to delete primary email address" : "Primäre E-Mail-Adresse konnte nicht gelöscht werden",
- "Unable to update primary email address" : "Primäre E-Mail-Adresse konnte nicht aktualisiert werden",
- "Unable to add additional email address" : "Zusätzliche E-Mail-Adresse kann nicht hinzugefügt werden",
- "Unable to update additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht aktualisiert werden",
- "Unable to delete additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht gelöscht werden",
- "Primary email for password reset and notifications" : "Primäre E-Mail-Adresse für Benachrichtigungen und Passwort-Zurücksetzen",
- "No email address set" : "Keine E-Mail-Adresse angegeben",
- "Your handle" : "Dein Online-Name",
- "Derived from your locale ({weekDayName})" : "Abgeleitet von Ihrem Gebietsschema ({weekDayName})",
- "Unable to update first day of week" : "Der erste Tag der Woche kann nicht aktualisiert werden",
- "Day to use as the first day of week" : "Tag, der als erster Tag der Woche verwendet werden soll",
- "Your headline" : "Ihre Überschrift",
- "Unable to update language" : "Sprache konnte nicht aktualisiert werden",
- "Languages" : "Sprachen",
- "Help translate" : "Helfen Sie bei der Übersetzung",
- "No language set" : "Keine Sprache eingestellt",
- "Unable to update locale" : "Gebietsschema kann nicht aktualisiert werden",
- "Locales" : "Gebietsschemen",
- "Week starts on {firstDayOfWeek}" : "Woche beginnt am {firstDayOfWeek}",
- "No locale set" : "Kein Gebietsschema festgelegt",
- "Your city" : "Ihre Stadt",
- "Your organisation" : "Ihre Organisation",
- "Your phone number" : "Ihre Telefonnummer",
- "Edit your Profile visibility" : "Bearbeiten Sie die Sichtbarkeit Ihres Profils",
- "Unable to update profile enabled state" : "Der Status für aktiviertes Profil konnte nicht aktualisiert werden",
- "Enable profile" : "Profil aktivieren",
- "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." : "Die restriktivere Einstellung von Sichtbarkeit oder Bereich wird in Ihrem Profil berücksichtigt. Wenn beispielsweise die Sichtbarkeit auf \"Für alle anzeigen\" und der Bereich auf \"Privat\" festgelegt ist, wird \"Privat\" respektiert.",
- "Unable to update visibility of {displayId}" : "Sichtbarkeit von {displayId} kann nicht aktualisiert werden",
- "she/her" : "sie/ihr",
- "he/him" : "er/sein",
- "they/them" : "sie/sie",
- "Your role" : "Ihre Funktion",
- "Your X (formerly Twitter) handle" : "Ihr X (früher Twitter)-Handle",
- "Your website" : "Ihre Webseite",
- "Invalid value" : "Ungültiger Wert",
- "Unable to update {property}" : "{property} konnte nicht aktualisiert werden",
- "No {property} set" : "Keine {property} gesetzt",
- "Change scope level of {property}, current scope is {scope}" : "Ändern des Geltungsbereich von {property}, aktueller Bereich ist {scope}",
- "Unable to update federation scope of the primary {property}" : "Der Federation-Bereich des primären {property} kann nicht aktualisiert werden",
- "Unable to update federation scope of additional {property}" : "Der Federation-Bereich des zusätzlichen {property} kann nicht aktualisiert werden",
- "Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen",
- "Add" : "Hinzufügen",
- "Create" : "Erstellen",
- "Change" : "Ändern",
- "Delete" : "Löschen",
- "Reshare" : "Weiterteilen",
- "Default language" : "Standard-Sprache",
- "Common languages" : "Gebräuchliche Sprachen",
- "Other languages" : "Weitere Sprachen",
- "Password change is disabled because the master key is disabled" : "Das Ändern des Passwortes ist deaktiviert, da der Master-Schlüssel deaktiviert ist",
- "No accounts" : "Keine Konten",
- "Loading accounts …" : "Lade Konten …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Kontenliste. Diese Liste wird aus Performance-Gründen nicht vollständig ausgegeben. Die Konten werden ausgegeben, wenn Sie durch die Liste navigieren.",
- "Manager" : "Manager",
- "Set line manager" : "Manager festlegen",
- "Account name will be autogenerated" : "Kontenname wird automatisch erstellt",
- "Account name (required)" : "Kontoname (erforderlich)",
- "Failed to search groups" : "Gruppen konnten nicht gesucht werden",
- "New account" : "Neues Konto",
- "Display name" : "Anzeigename",
- "Either password or email is required" : "Passwort oder E-Mail-Adresse ist erforderlich",
- "Password (required)" : "Passwort (erforderlich)",
- "Email (required)" : "E-Mail-Adresse (erforderlich)",
- "Email" : "E-Mail",
- "Member of the following groups (required)" : "Mitglied der folgenden Gruppen (erforderlich)",
- "Member of the following groups" : "Mitglied der folgenden Gruppen",
- "Set account groups" : "Kontengruppen setzen",
- "Admin of the following groups" : "Administration der folgenden Gruppen",
- "Set account as admin for …" : "Konto als Administration setzen für …",
- "Quota" : "Kontingent",
- "Set account quota" : "Kontokontigent setzen",
- "Language" : "Sprache",
- "Set default language" : "Standard-Sprache einstellen",
- "Add new account" : "Neues Konto hinzufügen",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} Konto …","{userCount} Konten …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} Konto","{userCount} Konten"],
- "Total rows summary" : "Zusammenfassung aller Zeilen",
- "Scroll to load more rows" : "Scrollen, um weitere Zeilen zu laden",
- "Password or insufficient permissions message" : "Passwort oder unzureichende Berechtigungen Nachricht",
- "Avatar" : "Avatar",
- "Account name" : "Kontoname",
- "Group admin for" : "Gruppenadministration für",
- "Account backend" : "Konto-Backend",
- "Storage location" : "Speicherort",
- "First login" : "Erste Anmeldung",
- "Last login" : "Letzte Anmeldung",
- "Account actions" : "Konto-Aktionen",
- "{size} used" : "{size} verwendet",
- "Delete account" : "Konto löschen",
- "Disconnect all devices and delete local data" : "Alle Geräte trennen und lokale Daten löschen",
- "Disable account" : "Konto deaktivieren",
- "Enable account" : "Konto aktivieren",
- "Resend welcome email" : "Willkommens-E-Mail erneut senden",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Im Falle des Verlusts des Gerätes oder des Verlassens der Organisation können mit dieser Funktion sämtliche Nextcloud-Daten von allen Geräten, die mit {userid} verbunden sind, gelöscht werden. Funktioniert nur, wenn das Gerät mit dem Internet verbunden ist.",
- "Remote wipe of devices" : "Fernlöschung von Geräten",
- "Wipe {userid}'s devices" : "Lösche {userid}s Geräte",
- "Wiped {userid}'s devices" : "{userid}s Geräte gelöscht",
- "Failed to load groups with details" : "Gruppen mit Details konnten nicht geladen werden",
- "Failed to load sub admin groups with details" : "Unteradministrations-Gruppen mit Details konnten nicht geladen werden",
- "Failed to update line manager" : "Manager konnte nicht aktualisiert werden",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Lösche {userid}s Konto vollständig inklusive aller persönlichen Dateien, App-Daten, usw.",
- "Account deletion" : "Löschung des Kontos",
- "Delete {userid}'s account" : "Konto von {userid} löschen",
- "Display name was successfully changed" : "Der Anzeigename wurde geändert",
- "Password can't be empty" : "Passwort darf nicht leer sein",
- "Password was successfully changed" : "Das Passwort wurde erfolgreich geändert",
- "Email can't be empty" : "E-Mail darf nicht leer sein",
- "Email was successfully changed" : "E-Mail-Adresse wurde geändert",
- "Welcome mail sent!" : "Willkommens-E-Mail gesendet!",
- "Loading account …" : "Lade Konto …",
- "Change display name" : "Anzeigename ändern",
- "Set new password" : "Neues Passwort setzen",
- "You do not have permissions to see the details of this account" : "Keine Berechtigung, die Details dieses Kontos anzusehen.",
- "Set new email address" : "Neue E-Mail-Adresse setzen",
- "Add account to group" : "Konto zur Gruppe hinzufügen",
- "Set account as admin for" : "Konto als Administration festlegen für",
- "Select account quota" : "Kontokontigent auswählen",
- "Set the language" : "Sprache einstellen",
- "Toggle account actions menu" : "Kontenaktionsmenü umschalten",
- "Done" : "Erledigt",
- "Edit" : "Bearbeiten",
- "Account management settings" : "Kontoverwaltungseinstellungen",
- "Visibility" : "Sichtbarkeit",
- "Show language" : "Sprache anzeigen",
- "Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
- "Show first login" : "Erste Anmeldung anzeigen",
- "Show last login" : "Letzte Anmeldung anzeigen",
- "Sorting" : "Sortierung",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Die Systemkonfiguration erzwingt die Sortierung der Gruppen nach Namen. Dadurch wird auch die Anzeige der Kontenzahl deaktiviert.",
- "Group list sorting" : "Sortierung der Gruppenliste",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Aus Leistungsgründen wird die Sortierung nur auf die aktuell geladenen Gruppen angewendet. Gruppen werden beim Navigieren oder Suchen geladen.",
- "By member count" : "Nach Kontenzahl",
- "By name" : "Nach Name",
- "Send email" : "E-Mail senden",
- "Send welcome email to new accounts" : "Begrüßungs-E-Mail an neuen Konten senden",
- "Defaults" : "Standardeinstellungen",
- "Default quota" : "Standard Speicherkontingent ",
- "Select default quota" : "Standardkontingent auswählen",
- "Server error while trying to complete WebAuthn device registration" : "Serverfehler beim Versuch die WebAuthn-Geräte-Registrierung abzuschließen",
- "Passwordless authentication requires a secure connection." : "Die Anmeldung ohne Passwort erfordert eine sichere Verbindung.",
- "Add WebAuthn device" : "WebAuthn-Gerät hinzufügen",
- "Please authorize your WebAuthn device." : "Bitte das WebAuthn-Gerät autorisieren.",
- "Adding your device …" : "Dieses Gerät hinzufügen …",
- "Unnamed device" : "Unbenanntes Gerät",
- "Passwordless Authentication" : "Authentifizierung ohne Passwort",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Dieses Konto für die Authentifizierung ohne Passwort nach dem FIDO2-Standard einrichten.",
- "No devices configured." : "Keine Geräte eingerichtet.",
- "The following devices are configured for your account:" : "Die folgenden Geräte sind für Ihr Konto eingerichtet:",
- "Your browser does not support WebAuthn." : "Ihr Browser unterstützt kein WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Als Administration können Sie das Teilen-Verhalten feinabstimmen. Weitere Informationen finden Sie in der Dokumentation.",
- "You need to enable the File sharing App." : "Die App \"File sharing\" muss aktiviert werden.",
- "App Store" : "App Store",
- "Loading app list" : "Lade App-Liste",
- "Loading categories" : "Lade Kategorien",
- "Developer documentation ↗" : "Entwickler-Dokumentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-lizensiert",
- "Version {version}" : "Version {version}",
- "All accounts" : "Alle Konten",
- "Admins" : "Administration",
- "Account group: {group}" : "Kontengruppe: {group}",
- "Account management" : "Kontoverwaltung",
+ "Delete group" : "Gruppe löschen",
"Sending…" : "Senden…",
"Email sent" : "E-Mail gesendet",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Beim Aktivieren der Verschlüsselung auf einem Nextcloud-Server werden aus Leistungsgründen nur neue und geänderte Dateien verschlüsselt.",
"Location" : "Ort",
"Profile picture" : "Profilbild",
"About" : "Über",
- "Date of birth" : "Geburtsdatum:",
+ "Date of birth" : "Geburtsdatum",
"Full name" : "Vollständiger Name",
"Additional email" : "Zusätzliche E-Mail-Adresse",
+ "Email" : "E-Mail-Adresse",
"Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)",
"Headline" : "Überschrift",
"Organisation" : "Organisation",
@@ -801,10 +523,11 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (früher Twitter)",
"Website" : "Webseite",
"Profile visibility" : "Sichtbarkeit des Profils",
+ "Language" : "Sprache",
"Locale" : "Gebietsschema",
"First day of week" : "Erster Tag der Woche",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nicht verfügbar, da diese Eigenschaft für Kernfunktionen wie Dateifreigabe und Kalendereinladungen erforderlich ist.",
- "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Nicht verfügbar, da Federation für Ihr Konto deaktiviert ist. Bitte wenden Sie sich an Ihre Administration, wenn Sie Fragen haben",
+ "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Nicht verfügbar, da Federation für Ihr Konto deaktiviert ist. Wenden Sie sich bei Fragen an Ihre Systemadministration.",
"Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Nicht verfügbar, da die Veröffentlichung kontospezifischer Daten auf dem Lookup-Server nicht zulässig ist. Wenden Sie sich bei Fragen an Ihre Systemadministration.",
"Discover" : "Entdecken",
"Your apps" : "Ihre Apps",
@@ -814,10 +537,11 @@ OC.L10N.register(
"App bundles" : "App-Pakete",
"Featured apps" : "Vorgestellte Apps",
"Supported apps" : "Unterstützte Apps",
- "Show to everyone" : "Jedem anzeigen",
+ "Show to everyone" : "Für alle sichtbar",
"Show to logged in accounts only" : "Nur angemeldeten Konten anzeigen",
"Hide" : "Ausblenden",
"Manually installed apps cannot be updated" : "Manuell installierte Apps können nicht aktualisiert werden",
+ "Update to {version}" : "Aktualisieren auf {version}",
"{progress}% Deploying …" : "{progress}% bereitstellen …",
"{progress}% Initializing …" : "{progress}% initialisiere …",
"Health checking" : "Gesundheitsprüfung",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Ungetestete App zulassen",
"The app will be downloaded from the App Store" : "Die App wird aus dem App-Store heruntergeladen",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Diese App ist als nicht-kompatibel mit Ihrer Nextcloud-Version markiert. Wenn Sie fortfahren, so können Sie die App installieren. Bitte beachten Sie, dass die App nicht wie erwartet funktionieren könnte.",
+ "{size} used" : "{size} verwendet",
"Unknown" : "Unbekannt",
"Never" : "Niemals",
"Could not register device: Network error" : "Gerät konnte nicht registriert werden: Netzwerkfehler",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Die Gruppensortierung konnte nicht festgelegt werden",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zu viele Anfragen aus Ihrem Netzwerk. Versuchen Sie es später erneut oder wenden Sie sich an Ihre Administration, wenn dies ein Fehler sein sollte.",
"Error" : "Fehler",
+ "Default quota" : "Standard Speicherkontingent ",
"Account documentation" : "Kontodokumentation",
"Administration documentation" : "Administrationsdokumentation",
+ "Documentation" : "Dokumentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud-Hilfe & Datenschutz-Ressourcen",
"General documentation" : "Allgemeine Dokumentation",
@@ -869,8 +596,9 @@ OC.L10N.register(
"SMTP Password" : "SMTP-Passwort",
"Save" : "Speichern",
"Test and verify email settings" : "Testen und Überprüfen der E-Mail-Einstellungen",
+ "Send email" : "E-Mail senden",
"Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen",
- "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Geschwindigkeit Ihrer Installation ist es von großer Bedeutung, dass sie richtig konfiguriert ist. Um Ihnen hierbei zu helfen werden einige automatische Tests durchgeführt. Weitere Informationen finden Sie in der verlinkten Dokumentation.",
+ "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Leistung Ihrer Instanz ist es von großer Bedeutung, dass alles richtig konfiguriert ist. Um Sie dabei zu unterstützen, werden einige automatische Prüfungen durchgeführt. Weitere Informationen finden Sie in der verlinkten Dokumentation.",
"All checks passed." : "Alle Überprüfungen bestanden.",
"There are some errors regarding your setup." : "Es gibt einige Fehler in Ihrer Systemkonfiguration.",
"There are some warnings regarding your setup." : "Es gibt einige Warnungen zu Ihrer Systemkonfiguration.",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Verwenden Sie neben Ihrem Passwort einen zweiten Faktor, um die Sicherheit für Ihr Konto zu erhöhen.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Wenn Sie Anwendungen von Drittanbietern verwenden, um sich mit Nextcloud zu verbinden, stellen Sie bitte sicher, dass Sie für jede Anwendung ein Anwendungspasswort erstellen und konfigurieren, bevor Sie die Zwei-Faktor-Authentifizierung aktivieren.",
"Logged in account must be a subadmin" : "Das angemeldete Konto muss eine Unteradministration sein.",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Um diese Prüfung auszuführen, müssen Sie sicherstellen, dass Ihr Webserver eine Verbindung zu sich selbst herstellen kann. Dafür muss er in der Lage sein, sich mit mindestens einer seiner \"trusted_domains\" oder der \"overwrite.cli.url\" zu verbinden und diese aufzulösen.",
- "Missing optional index \"%s\" in table \"%s\"." : "Fehlende optionaler Index \"%s\" in der Tabelle \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von \"occ db:add-missing-indices\" können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Damit diese Prüfung ausgeführt werden kann, müssen Sie sicherstellen, dass Ihr Webserver eine Verbindung zu sich selbst herstellen kann. Daher muss er in der Lage sein, mindestens eine seiner `trusted_domains` oder `overwrite.cli.url` aufzulösen und eine Verbindung zu ihnen herzustellen. Dieser Fehler kann das Ergebnis einer serverseitigen DNS-Nichtübereinstimmung oder einer ausgehenden Firewall-Regel sein.",
"File locking" : "Dateisperre",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert, dies kann zu Problemen mit Race Conditions führen. Aktivieren Sie \"filelocking.enabled\" in config.php, um diese Probleme zu vermeiden.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Es konnte weder über Ihre `trusted_domains` noch über `overwrite.cli.url` nach JavaScript-Unterstützung gesucht werden. Dies kann auf eine serverseitige DNS-Nichtübereinstimmung oder eine ausgehende Firewall-Regel zurückzuführen sein. Bitte überprüfen Sie manuell, ob Ihr Webserver `.mjs`-Dateien mit dem JavaScript-MIME-Typ bereitstellt.",
"The PHP memory limit is below the recommended value of %s." : "Das PHP-Speicherllmit liegt unterhalb des empfohlenen Wertes von %s.",
"for WebAuthn passwordless login" : "für WebAuthn passwortlose Anmeldung",
"for WebAuthn passwordless login, and SFTP storage" : "für WebAuthn passwortlose Anmeldung und SFTP-Speicher",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sie verwenden derzeit PHP %s. PHP 8.0 ist ab Nextcloud 27 veraltet. Nextcloud 28 erfordert möglicherweise mindestens PHP 8.1. Bitte aktualisieren Sie so schnell wie möglich auf eine der offiziell unterstützten PHP-Versionen der PHP Gruppe.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und benötigen MariaDB 10.2 oder neuer.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützten diese Version nicht und benötigen MySQL 8.0 oder MariaDB 10.2 oder neuer.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und beötigen PostgreSQL 9.6 oder neuer.",
- "Speech-To-Text" : "Sprache-zu-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Sprache-zu-Text kann mittels verschiedener Apps implementiert werden. Hier können Sie einstellen, welche App verwendet werden soll.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Keine Ihrer derzeit installierten Apps bietet Sprache-zu-Text-Funktionalität",
- "None of your currently installed apps provide Text processing functionality" : "Keine Ihrer derzeit installierten Apps bietet Funktionalität zur Textverarbeitung",
- "Set default expiration date for shares" : "Legen Sie das Standardablaufdatum für Freigaben fest",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Die automatische Vervollständigung des Benutzernamens im Freigabedialog und den Zugriff auf das Systemadressbuch erlauben",
- "Your biography" : "Ihre Biografie",
- "You are using <strong>{usage}</strong>" : "Sie benutzen <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Sie benutzen <strong>{usage}</strong> von <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Manager setzen",
- "Username will be autogenerated" : "Anmeldename wird automatisch erzeugt",
- "Username (required)" : "Anmeldename (erforderlich)",
- "New user" : "Neues Konto",
- "Groups (required)" : "Gruppen (erforderlich)",
- "Set user groups" : "Kontengruppen einstellen",
- "Administered groups" : "Administrierte Gruppen",
- "Set user as admin for …" : "Benutzer als Administration setzen für…",
- "Set user quota" : "Kontokontingent einstellen",
- "Add new user" : "Neues Konto hinzufügen",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} Benutzer…","{userCount} Benutzer …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} Konto","{userCount} Konten"],
- "Loading users …" : "Lade Konten …",
- "Username" : "Kontenname",
- "User backend" : "Konto-Backend",
- "User actions" : "Kontoaktionen",
- "Add user to group" : "Konto der Gruppe hinzufügen",
- "Server error while trying to add WebAuthn device" : "Serverfehler beim Versuch ein WebAuthn-Gerät hinzuzufügen",
- "Name your device" : "Gerät benennen",
- "Active accounts" : "Aktive Konten",
- "Follow us on Twitter" : "Folgen Sie uns auf Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Damit diese Prüfung ausgeführt werden kann, müssen Sie sicherstellen, dass Ihr Webserver eine Verbindung zu sich selbst herstellen kann. Daher muss er in der Lage sein, mindestens eine seiner `trusted_domains` oder `overwrite.cli.url` aufzulösen und eine Verbindung zu ihnen herzustellen. Dieser Fehler kann das Ergebnis einer serverseitigen DNS-Nichtübereinstimmung oder einer ausgehenden Firewall-Regel sein.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` enthält nicht `%2$s`. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL-Version \"%s\" erkannt. Für optimale Leistung, Stabilität und Funktionalität mit dieser Version von Nextcloud wird PostgreSQL >=12 und <=16 empfohlen.",
- "Failed to load subadmin groups with details" : "Unteradministrations-Gruppen mit Details konnten nicht geladen werden"
+ "Set default expiration date for shares" : "Legen Sie das Standardablaufdatum für Freigaben fest"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json
index 423964970c0..1c5cc1b55c8 100644
--- a/apps/settings/l10n/de_DE.json
+++ b/apps/settings/l10n/de_DE.json
@@ -1,8 +1,8 @@
{ "translations": {
"Private" : "Privat",
- "Only visible to people matched via phone number integration through Talk on mobile" : "Nur sichtbar für Personen, die über Rufnummernintegration von Talk on mobile abgeglichen wurden.",
+ "Only visible to people matched via phone number integration through Talk on mobile" : "Nur sichtbar für Personen, die über die Rufnummernintegration von Talk auf dem Smartphone abgeglichen wurden.",
"Local" : "Lokal",
- "Only visible to people on this instance and guests" : "Nur für Personen dieser Instanz und Gästen sichtbar",
+ "Only visible to people on this instance and guests" : "Nur für Personen dieser Instanz und Gäste sichtbar",
"Federated" : "Federated",
"Only synchronize to trusted servers" : "Nur mit vertrauenswürdigen Servern synchronisieren",
"Published" : "Veröffentlicht",
@@ -23,11 +23,11 @@
"{actor} added {user} to group {group}" : "{actor} hat {user} zur Gruppe {group} hinzugefügt",
"An administrator added you to group {group}" : "Die Administration hat Sie zur Gruppe {group} hinzugefügt",
"An administrator added {user} to group {group}" : "Die Administration hat {user} zur Gruppe {group} hinzugefügt",
- "{actor} removed you from group {group}" : "{actor} hat Sie von der Gruppe {group} entfernt",
- "You removed {user} from group {group}" : "Sie haben {user} von der Gruppe {group} entfernt",
- "{actor} removed {user} from group {group}" : "{actor} hat {user} von der Gruppe {group} entfernt",
- "An administrator removed you from group {group}" : "Die Administration hat Sie von der Gruppe {group} entfernt",
- "An administrator removed {user} from group {group}" : "Die Administration hat {user} von der Gruppe {group} entfernt",
+ "{actor} removed you from group {group}" : "{actor} hat Sie aus der Gruppe {group} entfernt",
+ "You removed {user} from group {group}" : "Sie haben {user} aus der Gruppe {group} entfernt",
+ "{actor} removed {user} from group {group}" : "{actor} hat {user} aus der Gruppe {group} entfernt",
+ "An administrator removed you from group {group}" : "Die Administration hat Sie aus der Gruppe {group} entfernt",
+ "An administrator removed {user} from group {group}" : "Die Administration hat {user} aus der Gruppe {group} entfernt",
"Your <strong>group memberships</strong> were modified" : "Ihre <strong>Gruppenmitgliedschaft</strong> wurde geändert",
"{actor} changed your password" : "{actor} hat Ihr Passwort geändert",
"You changed your password" : "Sie haben Ihr Passwort geändert",
@@ -40,8 +40,8 @@
"An administrator created an app password for a session named \"{token}\"" : "Die Administration hat ein App-Passwort für eine Sitzung mit dem Namen \"{token}\" erstellt",
"You deleted app password \"{token}\"" : "Sie haben das App-Passwort \"{token}\" gelöscht",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Sie haben das App-Passwort \"{token}\" in \"{newToken}\" umbenannt",
- "You granted filesystem access to app password \"{token}\"" : "Sie haben Dateisystemzugriff für App-Passwort \"{token}\" erlaubt",
- "You revoked filesystem access from app password \"{token}\"" : "Sie haben Dateisystemzugriff für App-Passwort \"{token}\" widerrufen",
+ "You granted filesystem access to app password \"{token}\"" : "Sie haben den Dateisystemzugriff für das App-Passwort \"{token}\" erlaubt",
+ "You revoked filesystem access from app password \"{token}\"" : "Sie haben den Dateisystemzugriff für das App-Passwort \"{token}\" widerrufen",
"Security" : "Sicherheit",
"You successfully logged in using two-factor authentication (%1$s)" : "Sie haben sich mittels Zwei-Faktor-Authentifizierung angemeldet (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Ein Anmeldeversuch mittels Zwei-Faktor-Authentifizierung schlug fehl (%1$s)",
@@ -61,9 +61,9 @@
"Wrong admin recovery password. Please check the password and try again." : "Falsches Wiederherstellungspasswort für das Admin-Konto. Bitte überprüfen Sie das Passwort und versuchen Sie es erneut.",
"Backend does not support password change, but the encryption of the account key was updated." : "Das Backend unterstützt keine Passwortänderung, aber die Verschlüsselung des Kontoschlüssels wurde aktualisiert.",
"Administrator documentation" : "Dokumentation für die Administration",
- "User documentation" : "Nutzungsdokumentation",
+ "User documentation" : "Dokumentation für Benutzer",
"Nextcloud help overview" : "Übersicht über die Nextcloud-Hilfe",
- "Invalid SMTP password." : "Ungültiges SMTP-Passwort.",
+ "Invalid SMTP password." : "Ungültiges SMTP-Passwort",
"Email setting test" : "Test der E-Mail-Einstellungen",
"Well done, %s!" : "Gut gemacht, %s!",
"If you received this email, the email configuration seems to be correct." : "Wenn Sie diese E-Mail empfangen haben, sind die E-Mail-Einstellungen korrekt.",
@@ -77,8 +77,8 @@
"Settings saved" : "Einstellungen gespeichert",
"Unable to change full name" : "Der vollständige Name konnte nicht geändert werden",
"Unable to change email address" : "E-Mail-Adresse konnte nicht geändert werden",
- "Unable to set invalid phone number" : "Ungültige Rufnummer kann nicht eingestellt werden",
- "Unable to set invalid website" : "Ungültige Webseite kann nicht eingestellt werden",
+ "Unable to set invalid phone number" : "Ungültige Telefonnummer konnte nicht festgelegt werden",
+ "Unable to set invalid website" : "Ungültige Webseite konnte nicht festgelegt werden",
"Some account data was invalid" : "Einige Kontodaten waren ungültig",
"In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Um Ihr Twitter-Konto zu überprüfen, veröffentlichen Sie bitte den folgenden Tweet auf Twitter (Bitte stellen Sie sicher, dass der Tweet keinen Zeilenumbruch enthält):",
"In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Um Ihre Webseite zu überprüfen, speichern Sie bitte den folgenden Inhalt im Web-Wurzelverzeichnist in der Datei '.well-known/CloudIdVerificationCode.txt' (bitte stellen Sie sicher, das sich der gesamte Text in einer Zeile befindet):",
@@ -101,11 +101,11 @@
"Your Login is: %s" : "Ihr Anmeldename lautet: %s",
"Set your password" : "Setzen Sie Ihr Passwort",
"Go to %s" : "%s aufrufen",
- "Install Client" : "Installiere den Client",
+ "Install Client" : "Client installieren",
"Logged in account must be a sub admin" : "Das angemeldete Konto muss eine Unteradministration sein.",
"Apps" : "Apps",
"Personal" : "Persönlich",
- "Administration" : "Verwaltung",
+ "Administration" : "Administration",
"Users" : "Konten",
"Additional settings" : "Zusätzliche Einstellungen",
"Artificial Intelligence" : "Künstliche Intelligenz",
@@ -120,12 +120,12 @@
"Mobile & desktop" : "Mobil & Desktop",
"Email server" : "E-Mail-Server",
"Mail Providers" : "E-Mail-Anbieter",
- "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Der E-Mail-Provider ermöglicht das Senden von E-Mails direkt über das persönliche E-Mail-Konto des Benutzers. Derzeit ist diese Funktion auf Kalendereinladungen beschränkt. Es erfordert Nextcloud Mail 4.1 und ein E-Mail-Konto in Nextcloud Mail, das mit der E-Mail-Adresse des Benutzers in Nextcloud übereinstimmt.",
+ "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Der E-Mail-Anbieter ermöglicht das Senden von E-Mails direkt über das persönliche E-Mail-Konto des Benutzers. Derzeit ist diese Funktion auf Kalendereinladungen beschränkt. Es erfordert Nextcloud Mail 4.1 und ein E-Mail-Konto in Nextcloud Mail, das mit der E-Mail-Adresse des Benutzers in Nextcloud übereinstimmt.",
"Send emails using" : "E-Mails senden mittels",
"User's email account" : "E-Mail-Konto des Benutzers",
"System email account" : "System-E-Mail-Konto",
- "Security & setup checks" : "Sicherheits- & Einrichtungsüberprüfungen",
- "Background jobs" : "Hintergrund-Aufgaben",
+ "Security & setup checks" : "Sicherheits- und Einrichtungsüberprüfungen",
+ "Background jobs" : "Hintergrundaufgaben",
"Unlimited" : "Unbegrenzt",
"Verifying" : "Überprüfe",
"Allowed admin IP ranges" : "Zulässige Administrations-IP-Bereiche",
@@ -140,8 +140,8 @@
"Your remote address could not be determined." : "Ihre Remote-Adresse konnte nicht ermittelt werden.",
"Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Ihre Remote-Adresse wurde als \"%s\" erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht Ihre Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist.",
"Your remote address \"%s\" is not brute-force throttled." : "Ihre Remote-Adresse \"%s\" ist nicht durch die Brute-Force-Erkennung gedrosselt.",
- "Old administration imported certificates" : "Alte, von der Adminstration importierte Zertifikate",
- "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach, von der Adminstration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
+ "Old administration imported certificates" : "Alte, von der Administration importierte Zertifikate",
+ "A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Eine Hintergrundaufgabe, die nach von der Administration importierten SSL-Zertifikaten sucht, läuft noch. Bitte später erneut versuchen.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Es sind einige, von der Administration importierte SSL-Zertifikate vorhanden, die von Nextcloud 21 nicht mehr verwendet werden. Sie können über den Befehl \"occ security:certificates:import\" in der Befehlszeile importiert werden. Ihre Pfade innerhalb des Datenverzeichnisses werden unten angezeigt.",
"Code integrity" : "Codeintegrität",
"Integrity checker has been disabled. Integrity cannot be verified." : "Die Integritätsprüfung wurde deaktiviert. Die Integrität kann nicht überprüft werden.",
@@ -151,11 +151,11 @@
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s" : "Es war nicht möglich, den Cron-Job über die CLI auszuführen. Es sind folgende technische Fehler aufgetreten:\n%s",
"The last cron job ran without errors." : "Der letzte Cron-Job wurde ohne Fehler ausgeführt.",
"Cron last run" : "Cron zuletzt ausgeführt",
- "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrund-Jobausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
- "Last background job execution ran %s." : "Letzte Hintergrund-Jobausführung lief %s.",
+ "Last background job execution ran %s. Something seems wrong. {link}." : "Letzte Hintergrundaufgaben-Ausführung lief %s. Etwas scheint nicht in Ordnung zu sein. {link}.",
+ "Last background job execution ran %s." : "Letzte Hintergrundaufgaben-Ausführung lief %s.",
"Data directory protected" : "Datenverzeichnis geschützt",
"Your data directory and files are probably accessible from the internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.",
- "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Konnte nicht überprüfen, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
+ "Could not check that the data directory is protected. Please check manually that your server does not allow access to the data directory." : "Es konnte nicht überprüft werden, ob das Datenverzeichnis geschützt ist. Bitte überprüfen Sie manuell, ob Ihr Server keinen Zugriff auf das Datenverzeichnis erlaubt.",
"Database missing columns" : "In der Datenbank fehlen Spalten",
"Missing optional column \"%s\" in table \"%s\"." : "Fehlende optionale Spalte \"%s\" in der Tabelle \"%s\".",
"The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "In der Datenbank fehlen einige optionale Spalten. Da das Hinzufügen von Spalten bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch hinzugefügt, wenn sie optional sein können. Durch Ausführen von \"occ db:add-missing-columns\" können diese fehlenden Spalten manuell hinzugefügt werden, während die Instanz weiter läuft. Sobald die Spalten hinzugefügt sind, könnten einige Funktionen die Reaktionsfähigkeit oder die Bedienfreundlichkeit verbessern.",
@@ -175,7 +175,7 @@
"Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Für Ihre Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländervorwahl zu überprüfen. Um Nummern ohne Ländervorwahl zuzulassen, fügen Sie bitte \"default_phone_region\" mit dem entsprechenden ISO 3166-1-Code der Region zu Ihrer Konfigurationsdatei hinzu.",
"Email test" : "E-Mail-Test",
"Mail delivery is disabled by instance config \"%s\"." : "Die E-Mail-Zustellung ist aufgrund der Instanzkonfiguration \"%s\" deaktiviert.",
- "Email test was successfully sent" : "Die Test-E-Mail wurde erfolgreich versandt",
+ "Email test was successfully sent" : "Die Test-E-Mail wurde versandt",
"You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "Sie haben Ihre E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft. Gehen Sie bitte zu den \"Grundeinstellungen\", um diese festzulegen. Benutzen Sie anschließend den Button \"E-Mail senden\" unterhalb des Formulars, um Ihre Einstellungen zu überprüfen.",
"Transactional File Locking" : "Transaktionale Dateisperre",
"Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert. Dies ist keine unterstützte Konfiguration und kann zu schwer zu einzugrenzenden Problemen führen, einschließlich der Beschädigung von Dateien. Bitte entfernen Sie den Konfigurationseintrag `'filelocking.enabled' => false` aus Ihrer `config.php`, um solche Probleme zu vermeiden.",
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP-Header",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- Der `%1$s`-HTTP-Header ist nicht auf `%2$s` gesetzt. Einige Funktionen arbeiten möglicherweise nicht richtig. Es wird daher empfohlen, diese Einstellung entsprechend anzupassen.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` ist nicht auf `%2$s` gesetzt. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` enthält nicht `%2$s`. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Der HTTP-Header `%1$s` ist nicht auf \"%2$s\", \"%3$s\", \"%4$s\", \"%5$s\" oder \"%6$s\" gesetzt. Dadurch können Verweisinformationen preisgegeben werden. Siehe die {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Der HTTP-Header `Strict-Transport-Security` ist nicht auf mindestens `%d` Sekunden eingestellt (aktueller Wert: `%d`). Für erhöhte Sicherheit wird die Verwendung einer langen HSTS-Richtlinie empfohlen.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Der `Strict-Transport-Security`-HTTP-Header ist fehlerhaft: `%s`. Für erhöhte Sicherheit wird empfohlen, HSTS zu aktivieren.",
@@ -313,6 +312,10 @@
"Architecture" : "Architektur",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Anscheinend verwenden Sie eine 32-Bit-PHP-Version. Nextcloud benötigt 64-Bit, um gut zu laufen. Bitte aktualisieren Sie Ihr Betriebssystem und PHP auf 64-Bit!",
+ "Task Processing pickup speed" : "Abholgeschwindigkeit für Aufgabenverarbeitung",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Keine geplanten Aufgaben in der letzten %n Stunde.","Keine geplanten Aufgaben in den letzten %n Stunden."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Die Geschwindigkeit der Aufgabenübernahme war in der letzten %n Stunde in Ordnung.","Die Geschwindigkeit der Aufgabenübernahme war in den letzten %n Stunden in Ordnung."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Die Aufgabenabholgeschwindigkeit war in der letzten %n Stunde langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet.","Die Aufgabenabholgeschwindigkeit war in den letzten %n Stunden langsam. Viele Aufgaben benötigten länger als 4 Minuten, um abgeholt zu werden. Erwägen Sie die Einrichtung eines Workers, der Aufgaben im Hintergrund verarbeitet."],
"Temporary space available" : "Temporärer Platz verfügbar",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Fehler beim Überprüfen des temporären PHP-Pfads - er wurde nicht ordnungsgemäß auf ein Verzeichnis festgelegt. Zurückgegebener Wert: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Die PHP-Funktion \"disk_free_space\" ist deaktiviert, was die Überprüfung auf ausreichend Speicherplatz in den temporären Verzeichnissen verhindert.",
@@ -369,14 +372,14 @@
"Allow users to set custom share link tokens" : "Benutzern erlauben, benutzerdefinierte Freigabelink-Token festzulegen",
"Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Freigaben mit benutzerdefinierten Token sind auch noch nach der Deaktivierung dieser Einstellung zugänglich",
"Shares with guessable tokens may be accessed easily" : "Auf Freigaben mit erratbaren Token kann u. U. leicht zugegriffen werden",
- "Limit sharing based on groups" : "Freigeben basierend auf Gruppen beschränken",
- "Allow sharing for everyone (default)" : "Teilen für jedermann erlauben (Standard)",
- "Exclude some groups from sharing" : "Einige Gruppen vom Teilen ausschließen",
- "Limit sharing to some groups" : "Teilen auf einige Gruppen beschränken",
- "Groups allowed to share" : "Gruppen, die teilen dürfen",
+ "Limit sharing based on groups" : "Freigaben nach Gruppen einschränken",
+ "Allow sharing for everyone (default)" : "Teilen für alle erlauben (Standard)",
+ "Exclude some groups from sharing" : "Bestimmte Gruppen vom Teilen ausschließen",
+ "Limit sharing to some groups" : "Teilen für bestimmte Gruppen erlauben",
+ "Groups allowed to share" : "Für die Linkfreigabe zugelassene Gruppen",
"Groups excluded from sharing" : "Von der Linkfreigabe ausgeschlossene Gruppen",
"Not allowed groups will still be able to receive shares, but not to initiate them." : "Nicht zugelassene Gruppen können zwar weiterhin Freigaben empfangen, aber nicht erstellen.",
- "Set default expiration date for internal shares" : "Legen Sie das Standardablaufdatum für interne Freigaben fest",
+ "Set default expiration date for internal shares" : "Standardablaufdatum für interne Freigaben festlegen",
"Enforce expiration date" : "Ablaufdatum erzwingen",
"Default expiration time of new shares in days" : "Standardablaufzeit neuer Freigaben in Tagen",
"Expire shares after x days" : "Freigaben laufen nach x Tagen ab",
@@ -391,7 +394,7 @@
"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.",
"Restrict account name autocompletion and system address book access to users within the same groups" : "Die automatische Vervollständigung von Kontonamen und den Zugriff auf das Systemadressbuch auf Benutzer innerhalb derselben Gruppen beschränken",
"Restrict account name autocompletion to users based on phone number integration" : "Die automatische Vervollständigung des Kontonamens auf Benutzer beschränken, die auf der Integration von Telefonnummern basieren.",
- "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)",
+ "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Die automatische Vervollständigung ermöglichen, wenn der vollständige Name oder die E-Mail-Adresse eingegeben wird (ignoriert fehlende Telefonbuchübereinstimmungen und gleiche Gruppenzugehörigkeit)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Haftungsausschluss auf der öffentlichen Upload-Seite anzeigen (Wird nur gezeigt, wenn die Dateiliste nicht angezeigt wird.) ",
"Disclaimer text" : "Haftungsausschlusstext",
"This text will be shown on the public link upload page when the file list is hidden." : "Dieser Text wird auf der öffentlichen Upload-Seite angezeigt wenn die Dateiliste nicht angezeigt wird.",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "Abschnittsinhalt konnte nicht aus dem App Store geladen werden.",
"Loading" : "Lade",
"Fetching the latest news…" : "Aktuelle Nachrichten werden abgerufen…",
- "Carousel" : "Karussell",
- "Previous slide" : "Vorherige Folie",
- "Next slide" : "Nächste Folie",
- "Choose slide to display" : "Folie zum Anzeigen auswählen",
- "{index} of {total}" : "{index} von {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon bereitstellen",
- "Type" : "Typ",
- "Display Name" : "Anzeigename",
- "GPUs support" : "GPUs-Unterstützung",
- "Compute device" : "Compute-Gerät",
- "Advanced deploy options" : "Erweiterte Bereitstellungsoptionen",
- "Edit ExApp deploy options before installation" : "Bereitstellungsoptionen von ExApp vor der Installation bearbeiten",
- "Configured ExApp deploy options. Can be set only during installation" : "Eingestellte ExApp-Bereitstellungsoptionen. Kann nur während der Installation festgelegt werden",
- "Learn more" : "Mehr erfahren",
- "Environment variables" : "Umgebungsvariablen",
- "ExApp container environment variables" : "Umgebungsvariablen für ExApp-Container",
- "No environment variables defined" : "Keine Umgebungsvariablen definiert",
- "Mounts" : "Einhängepunkte",
- "Define host folder mounts to bind to the ExApp container" : "Host-Ordner-Mounts zum Binden an den ExApp-Container definieren",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Muss auf dem Deploy-Daemon-Host vorhanden sein, bevor die ExApp installiert wird",
- "Host path" : "Hostpfad",
- "Container path" : "Containerpfad",
- "Read-only" : "Schreibgeschützt",
- "Remove mount" : "Einhängepunkt entfernen",
- "New mount" : "Neuer Einhängepunkt",
- "Enter path to host folder" : "Pfad zum Hostordner eingeben",
- "Enter path to container folder" : "Pfad zum Containerordner eingeben",
- "Toggle read-only mode" : "Schreibschutz umschalten",
- "Confirm adding new mount" : "Hinzufügen des neuen Einhängepunkts bestätigen",
- "Confirm" : "Bestätigen",
- "Cancel adding mount" : "Hinzufügen des Einhängepunkts abbrechen",
- "Cancel" : "Abbrechen",
- "Add mount" : "Einhängepunkt hinzufügen",
- "ExApp container mounts" : "ExApp-Container-Einhängepunkte",
- "No mounts defined" : "Keine Einhängepunkte definiert",
- "Description" : "Beschreibung",
- "View in store" : "Im Store anzeigen",
- "Visit website" : "Webseite besuchen",
- "Usage documentation" : "Nutzungsdokumentation",
- "Admin documentation" : "Dokumentation für die Administration",
- "Developer documentation" : "Dokumentation für Entwickler",
- "Details" : "Details",
- "All" : "Alle",
- "Limit app usage to groups" : "App-Verwendung auf Gruppen beschränken",
- "No results" : "Keine Ergebnisse",
- "Update to {version}" : "Aktualisieren auf {version}",
- "Deploy options" : "Bereitstellungsoptionen",
- "Default Deploy daemon is not accessible" : "Der Standard-Deploy-Daemon ist nicht zugänglich",
- "Delete data on remove" : "Daten beim Entfernen löschen",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
- "Latest updated" : "Zuletzt aktualisiert",
- "Author" : "Autor",
- "Categories" : "Kategorien",
- "Resources" : "Ressourcen",
- "Documentation" : "Dokumentation",
- "Interact" : "Interagieren",
- "Report a bug" : "Einen technischen Fehler melden",
- "Request feature" : "Funktion vorschlagen",
- "Ask questions or discuss" : "Fragen stellen oder diskutieren",
- "Rate the app" : "App bewerten",
- "Rate" : "Bewerten",
- "Changelog" : "Liste der Änderungen",
- "Google Chrome for Android" : "Google Chrome für Android",
- "{productName} iOS app" : "{productName} iOS-App",
- "{productName} Android app" : "{productName} Android-App",
- "{productName} Talk for iOS" : "{productName} Talk für iOS",
- "{productName} Talk for Android" : "{productName} Talk für Android",
- "Sync client" : "Sync-Client",
- "This session" : "Diese Sitzung",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Gerätename",
- "Cancel renaming" : "Umbenennen abbrechen",
- "Save new name" : "Neuen Namen speichern",
- "Marked for remote wipe" : "Für Fernlöschung markiert",
- "Device settings" : "Geräteeinstellungen",
- "Allow filesystem access" : "Erlaube Dateisystem-Zugriff",
- "Rename" : "Umbenennen",
- "Revoke" : "Widerrufen",
- "Wipe device" : "Gerät löschen",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Zurückziehen dieses Tokens könnte das Löschen von Ihrem Gerät verhindern, wenn die Löschung noch nicht gestartet wurde.",
- "Device" : "Gerät",
- "Last activity" : "Letzte Aktivität",
- "Devices & sessions" : "Geräte & Sitzungen",
- "Web, desktop and mobile clients currently logged in to your account." : "Aktuell in Ihrem Konto angemeldete Web-, Desktop- und Mobil-Clients.",
- "Error while creating device token" : "Fehler beim Erstellen des Geräte-Tokens",
- "App name" : "App-Name",
- "Create new app password" : "Neues App-Passwort erstellen",
"App password copied!" : "App-Passwort kopiert!",
"Copy app password" : "App-Passwort kopieren",
"Login name copied!" : "Anmeldename kopiert!",
@@ -547,7 +459,7 @@
"The cron.php needs to be executed by the system account \"{user}\"." : "Die cron.php muss von dem Systemkonto \"{user}\" ausgeführt werden.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "Die PHP-POSIX-Erweiterung ist erforderlich. Weitere Einzelheiten finden Sie in der {linkstart}PHP-Dokumentation{linkend}.",
"Unable to update background job mode" : "Hintergrund-Aufgaben-Modus kann nicht aktualisiert werden",
- "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." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundjobs richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden Sie in der Dokumentation.",
+ "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." : "Damit der Server ordnungsgemäß funktioniert, ist es wichtig, Hintergrundaufgaben richtig zu konfigurieren. Cron ist die empfohlene Einstellung. Weitere Informationen finden Sie in der Dokumentation.",
"Last job execution ran {time}. Something seems wrong." : "Die letzte Aufgaben-Ausführung lief {time}. Etwas scheint falsch zu sein.",
"Last job ran {relativeTime}." : "Die letzte Aufgabe lief {relativeTime}.",
"Background job did not run yet!" : "Hintergrund-Aufgabe wurde bislang nicht ausgeführt!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "Standardeinstellung des Profils kann nicht aktualisiert werden",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Profil für neue Konten standardmäßig aktivieren oder deaktivieren.",
+ "Password confirmation is required" : "Passwortbestätigung erforderlich",
"Failed to save setting" : "Einstellung konnte nicht gespeichert werden",
"{app}'s declarative setting field: {name}" : "Deklaratives Einstellungsfeld von {app}: {name}",
"Unable to update server side encryption config" : "Serverseitige Verschlüsselungskonfiguration kann nicht aktualisiert werden",
@@ -581,215 +494,24 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Sicherungskopien von ihren Daten zu machen. Falls Sie die Verschlüsselung nutzen, sollten Sie auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit Ihren Daten machen.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informationen zum manuellen Verschlüsseln vorhandener Dateien finden Sie in der Administrationsdokumentation.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Möchten Sie die Verschlüsselung wirklich aktivieren?",
- "Failed to remove group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht entfernt werden.",
+ "Failed to delete group \"{group}\"" : "Die Gruppe \"{group}\" konnte nicht gelöscht werden",
"Please confirm the group removal" : "Bitte die Löschung der Gruppe bestätigen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Sie sind im Begriff, die Gruppe \"{group}\" zu entfernen. Die Konten werden NICHT gelöscht.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Sie sind im Begriff, die Gruppe \"{group}\" zu löschen. Die Konten werden NICHT gelöscht.",
+ "Cancel" : "Abbrechen",
+ "Confirm" : "Bestätigen",
"Submit" : "Übermitteln",
"Rename group" : "Gruppe umbenennen",
- "Remove group" : "Gruppe entfernen",
- "Current password" : "Aktuelles Passwort",
- "New password" : "Neues Passwort",
- "Change password" : "Passwort ändern",
- "Choose your profile picture" : "Wählen Sie Ihr Profilbild aus.",
- "Please select a valid png or jpg file" : "Bitte eine gültige PNG- oder JPG-Datei auswählen",
- "Error setting profile picture" : "Fehler beim Einstellen des Profilbilds",
- "Error cropping profile picture" : "Fehler beim Zuschneiden des Profilbilds",
- "Error saving profile picture" : "Fehler beim Speichern des Profilbilds",
- "Error removing profile picture" : "Fehler beim Entfernen des Profilbilds",
- "Your profile picture" : "Ihr Profilbild",
- "Upload profile picture" : "Profilbild hochladen",
- "Choose profile picture from Files" : "Profilbild aus Dateien wählen",
- "Remove profile picture" : "Profilbild entfernen",
- "The file must be a PNG or JPG" : "Die Datei muss im PNG- oder JPG-Format sein",
- "Picture provided by original account" : "Bild von Original-Konto zur Verfügung gestellt",
- "Set as profile picture" : "Als Profilbild festlegen",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Bitte beachten, dass es bis zu 24 Stunden dauern kann, bis Ihr Profilbild überall aktualisiert ist.",
- "Your biography. Markdown is supported." : "Ihre Biographie. Markdown wird unterstützt.",
- "Unable to update date of birth" : "Geburtsdatum konnte nicht aktualisiert werden",
- "Enter your date of birth" : "Geben Sie Ihr Geburtsdatum ein",
- "You are using {s}{usage}{/s}" : "Sie verwenden {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Sie verwenden {s}{usage}{/s} von {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Sie sind Mitglied folgender Gruppen:",
- "Your full name" : "Ihr vollständiger Name",
- "Email options" : "E-Mail-Optionen",
- "Options for additional email address {index}" : "Optionen für zusätzliche E-Mail-Adresse {index}",
- "Remove primary email" : "Primäre E-Mail-Adresse entfernen",
- "Delete email" : "E-Mail löschen",
- "This address is not confirmed" : "Diese Adresse ist nicht bestätigt",
- "Unset as primary email" : "Als primäre E-Mail-Adresse deaktiviert",
- "Set as primary email" : "Als primäre E-Mail-Adresse festlegen",
- "Additional email address {index}" : "Zusätzliche E-Mail-Adresse {index}",
- "Unable to delete primary email address" : "Primäre E-Mail-Adresse konnte nicht gelöscht werden",
- "Unable to update primary email address" : "Primäre E-Mail-Adresse konnte nicht aktualisiert werden",
- "Unable to add additional email address" : "Zusätzliche E-Mail-Adresse kann nicht hinzugefügt werden",
- "Unable to update additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht aktualisiert werden",
- "Unable to delete additional email address" : "Zusätzliche E-Mail-Adresse konnte nicht gelöscht werden",
- "Primary email for password reset and notifications" : "Primäre E-Mail-Adresse für Benachrichtigungen und Passwort-Zurücksetzen",
- "No email address set" : "Keine E-Mail-Adresse angegeben",
- "Your handle" : "Dein Online-Name",
- "Derived from your locale ({weekDayName})" : "Abgeleitet von Ihrem Gebietsschema ({weekDayName})",
- "Unable to update first day of week" : "Der erste Tag der Woche kann nicht aktualisiert werden",
- "Day to use as the first day of week" : "Tag, der als erster Tag der Woche verwendet werden soll",
- "Your headline" : "Ihre Überschrift",
- "Unable to update language" : "Sprache konnte nicht aktualisiert werden",
- "Languages" : "Sprachen",
- "Help translate" : "Helfen Sie bei der Übersetzung",
- "No language set" : "Keine Sprache eingestellt",
- "Unable to update locale" : "Gebietsschema kann nicht aktualisiert werden",
- "Locales" : "Gebietsschemen",
- "Week starts on {firstDayOfWeek}" : "Woche beginnt am {firstDayOfWeek}",
- "No locale set" : "Kein Gebietsschema festgelegt",
- "Your city" : "Ihre Stadt",
- "Your organisation" : "Ihre Organisation",
- "Your phone number" : "Ihre Telefonnummer",
- "Edit your Profile visibility" : "Bearbeiten Sie die Sichtbarkeit Ihres Profils",
- "Unable to update profile enabled state" : "Der Status für aktiviertes Profil konnte nicht aktualisiert werden",
- "Enable profile" : "Profil aktivieren",
- "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." : "Die restriktivere Einstellung von Sichtbarkeit oder Bereich wird in Ihrem Profil berücksichtigt. Wenn beispielsweise die Sichtbarkeit auf \"Für alle anzeigen\" und der Bereich auf \"Privat\" festgelegt ist, wird \"Privat\" respektiert.",
- "Unable to update visibility of {displayId}" : "Sichtbarkeit von {displayId} kann nicht aktualisiert werden",
- "she/her" : "sie/ihr",
- "he/him" : "er/sein",
- "they/them" : "sie/sie",
- "Your role" : "Ihre Funktion",
- "Your X (formerly Twitter) handle" : "Ihr X (früher Twitter)-Handle",
- "Your website" : "Ihre Webseite",
- "Invalid value" : "Ungültiger Wert",
- "Unable to update {property}" : "{property} konnte nicht aktualisiert werden",
- "No {property} set" : "Keine {property} gesetzt",
- "Change scope level of {property}, current scope is {scope}" : "Ändern des Geltungsbereich von {property}, aktueller Bereich ist {scope}",
- "Unable to update federation scope of the primary {property}" : "Der Federation-Bereich des primären {property} kann nicht aktualisiert werden",
- "Unable to update federation scope of additional {property}" : "Der Federation-Bereich des zusätzlichen {property} kann nicht aktualisiert werden",
- "Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen",
- "Add" : "Hinzufügen",
- "Create" : "Erstellen",
- "Change" : "Ändern",
- "Delete" : "Löschen",
- "Reshare" : "Weiterteilen",
- "Default language" : "Standard-Sprache",
- "Common languages" : "Gebräuchliche Sprachen",
- "Other languages" : "Weitere Sprachen",
- "Password change is disabled because the master key is disabled" : "Das Ändern des Passwortes ist deaktiviert, da der Master-Schlüssel deaktiviert ist",
- "No accounts" : "Keine Konten",
- "Loading accounts …" : "Lade Konten …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Kontenliste. Diese Liste wird aus Performance-Gründen nicht vollständig ausgegeben. Die Konten werden ausgegeben, wenn Sie durch die Liste navigieren.",
- "Manager" : "Manager",
- "Set line manager" : "Manager festlegen",
- "Account name will be autogenerated" : "Kontenname wird automatisch erstellt",
- "Account name (required)" : "Kontoname (erforderlich)",
- "Failed to search groups" : "Gruppen konnten nicht gesucht werden",
- "New account" : "Neues Konto",
- "Display name" : "Anzeigename",
- "Either password or email is required" : "Passwort oder E-Mail-Adresse ist erforderlich",
- "Password (required)" : "Passwort (erforderlich)",
- "Email (required)" : "E-Mail-Adresse (erforderlich)",
- "Email" : "E-Mail",
- "Member of the following groups (required)" : "Mitglied der folgenden Gruppen (erforderlich)",
- "Member of the following groups" : "Mitglied der folgenden Gruppen",
- "Set account groups" : "Kontengruppen setzen",
- "Admin of the following groups" : "Administration der folgenden Gruppen",
- "Set account as admin for …" : "Konto als Administration setzen für …",
- "Quota" : "Kontingent",
- "Set account quota" : "Kontokontigent setzen",
- "Language" : "Sprache",
- "Set default language" : "Standard-Sprache einstellen",
- "Add new account" : "Neues Konto hinzufügen",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} Konto …","{userCount} Konten …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} Konto","{userCount} Konten"],
- "Total rows summary" : "Zusammenfassung aller Zeilen",
- "Scroll to load more rows" : "Scrollen, um weitere Zeilen zu laden",
- "Password or insufficient permissions message" : "Passwort oder unzureichende Berechtigungen Nachricht",
- "Avatar" : "Avatar",
- "Account name" : "Kontoname",
- "Group admin for" : "Gruppenadministration für",
- "Account backend" : "Konto-Backend",
- "Storage location" : "Speicherort",
- "First login" : "Erste Anmeldung",
- "Last login" : "Letzte Anmeldung",
- "Account actions" : "Konto-Aktionen",
- "{size} used" : "{size} verwendet",
- "Delete account" : "Konto löschen",
- "Disconnect all devices and delete local data" : "Alle Geräte trennen und lokale Daten löschen",
- "Disable account" : "Konto deaktivieren",
- "Enable account" : "Konto aktivieren",
- "Resend welcome email" : "Willkommens-E-Mail erneut senden",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Im Falle des Verlusts des Gerätes oder des Verlassens der Organisation können mit dieser Funktion sämtliche Nextcloud-Daten von allen Geräten, die mit {userid} verbunden sind, gelöscht werden. Funktioniert nur, wenn das Gerät mit dem Internet verbunden ist.",
- "Remote wipe of devices" : "Fernlöschung von Geräten",
- "Wipe {userid}'s devices" : "Lösche {userid}s Geräte",
- "Wiped {userid}'s devices" : "{userid}s Geräte gelöscht",
- "Failed to load groups with details" : "Gruppen mit Details konnten nicht geladen werden",
- "Failed to load sub admin groups with details" : "Unteradministrations-Gruppen mit Details konnten nicht geladen werden",
- "Failed to update line manager" : "Manager konnte nicht aktualisiert werden",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Lösche {userid}s Konto vollständig inklusive aller persönlichen Dateien, App-Daten, usw.",
- "Account deletion" : "Löschung des Kontos",
- "Delete {userid}'s account" : "Konto von {userid} löschen",
- "Display name was successfully changed" : "Der Anzeigename wurde geändert",
- "Password can't be empty" : "Passwort darf nicht leer sein",
- "Password was successfully changed" : "Das Passwort wurde erfolgreich geändert",
- "Email can't be empty" : "E-Mail darf nicht leer sein",
- "Email was successfully changed" : "E-Mail-Adresse wurde geändert",
- "Welcome mail sent!" : "Willkommens-E-Mail gesendet!",
- "Loading account …" : "Lade Konto …",
- "Change display name" : "Anzeigename ändern",
- "Set new password" : "Neues Passwort setzen",
- "You do not have permissions to see the details of this account" : "Keine Berechtigung, die Details dieses Kontos anzusehen.",
- "Set new email address" : "Neue E-Mail-Adresse setzen",
- "Add account to group" : "Konto zur Gruppe hinzufügen",
- "Set account as admin for" : "Konto als Administration festlegen für",
- "Select account quota" : "Kontokontigent auswählen",
- "Set the language" : "Sprache einstellen",
- "Toggle account actions menu" : "Kontenaktionsmenü umschalten",
- "Done" : "Erledigt",
- "Edit" : "Bearbeiten",
- "Account management settings" : "Kontoverwaltungseinstellungen",
- "Visibility" : "Sichtbarkeit",
- "Show language" : "Sprache anzeigen",
- "Show account backend" : "Konto-Backend anzeigen",
- "Show storage path" : "Zeige Speicherpfad",
- "Show first login" : "Erste Anmeldung anzeigen",
- "Show last login" : "Letzte Anmeldung anzeigen",
- "Sorting" : "Sortierung",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Die Systemkonfiguration erzwingt die Sortierung der Gruppen nach Namen. Dadurch wird auch die Anzeige der Kontenzahl deaktiviert.",
- "Group list sorting" : "Sortierung der Gruppenliste",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Aus Leistungsgründen wird die Sortierung nur auf die aktuell geladenen Gruppen angewendet. Gruppen werden beim Navigieren oder Suchen geladen.",
- "By member count" : "Nach Kontenzahl",
- "By name" : "Nach Name",
- "Send email" : "E-Mail senden",
- "Send welcome email to new accounts" : "Begrüßungs-E-Mail an neuen Konten senden",
- "Defaults" : "Standardeinstellungen",
- "Default quota" : "Standard Speicherkontingent ",
- "Select default quota" : "Standardkontingent auswählen",
- "Server error while trying to complete WebAuthn device registration" : "Serverfehler beim Versuch die WebAuthn-Geräte-Registrierung abzuschließen",
- "Passwordless authentication requires a secure connection." : "Die Anmeldung ohne Passwort erfordert eine sichere Verbindung.",
- "Add WebAuthn device" : "WebAuthn-Gerät hinzufügen",
- "Please authorize your WebAuthn device." : "Bitte das WebAuthn-Gerät autorisieren.",
- "Adding your device …" : "Dieses Gerät hinzufügen …",
- "Unnamed device" : "Unbenanntes Gerät",
- "Passwordless Authentication" : "Authentifizierung ohne Passwort",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Dieses Konto für die Authentifizierung ohne Passwort nach dem FIDO2-Standard einrichten.",
- "No devices configured." : "Keine Geräte eingerichtet.",
- "The following devices are configured for your account:" : "Die folgenden Geräte sind für Ihr Konto eingerichtet:",
- "Your browser does not support WebAuthn." : "Ihr Browser unterstützt kein WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Als Administration können Sie das Teilen-Verhalten feinabstimmen. Weitere Informationen finden Sie in der Dokumentation.",
- "You need to enable the File sharing App." : "Die App \"File sharing\" muss aktiviert werden.",
- "App Store" : "App Store",
- "Loading app list" : "Lade App-Liste",
- "Loading categories" : "Lade Kategorien",
- "Developer documentation ↗" : "Entwickler-Dokumentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-lizensiert",
- "Version {version}" : "Version {version}",
- "All accounts" : "Alle Konten",
- "Admins" : "Administration",
- "Account group: {group}" : "Kontengruppe: {group}",
- "Account management" : "Kontoverwaltung",
+ "Delete group" : "Gruppe löschen",
"Sending…" : "Senden…",
"Email sent" : "E-Mail gesendet",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Beim Aktivieren der Verschlüsselung auf einem Nextcloud-Server werden aus Leistungsgründen nur neue und geänderte Dateien verschlüsselt.",
"Location" : "Ort",
"Profile picture" : "Profilbild",
"About" : "Über",
- "Date of birth" : "Geburtsdatum:",
+ "Date of birth" : "Geburtsdatum",
"Full name" : "Vollständiger Name",
"Additional email" : "Zusätzliche E-Mail-Adresse",
+ "Email" : "E-Mail-Adresse",
"Fediverse (e.g. Mastodon)" : "Fediverse (wie z. B. Mastodon)",
"Headline" : "Überschrift",
"Organisation" : "Organisation",
@@ -799,10 +521,11 @@
"X (formerly Twitter)" : "X (früher Twitter)",
"Website" : "Webseite",
"Profile visibility" : "Sichtbarkeit des Profils",
+ "Language" : "Sprache",
"Locale" : "Gebietsschema",
"First day of week" : "Erster Tag der Woche",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nicht verfügbar, da diese Eigenschaft für Kernfunktionen wie Dateifreigabe und Kalendereinladungen erforderlich ist.",
- "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Nicht verfügbar, da Federation für Ihr Konto deaktiviert ist. Bitte wenden Sie sich an Ihre Administration, wenn Sie Fragen haben",
+ "Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "Nicht verfügbar, da Federation für Ihr Konto deaktiviert ist. Wenden Sie sich bei Fragen an Ihre Systemadministration.",
"Not available as publishing account specific data to the lookup server is not allowed, contact your system administration if you have any questions" : "Nicht verfügbar, da die Veröffentlichung kontospezifischer Daten auf dem Lookup-Server nicht zulässig ist. Wenden Sie sich bei Fragen an Ihre Systemadministration.",
"Discover" : "Entdecken",
"Your apps" : "Ihre Apps",
@@ -812,10 +535,11 @@
"App bundles" : "App-Pakete",
"Featured apps" : "Vorgestellte Apps",
"Supported apps" : "Unterstützte Apps",
- "Show to everyone" : "Jedem anzeigen",
+ "Show to everyone" : "Für alle sichtbar",
"Show to logged in accounts only" : "Nur angemeldeten Konten anzeigen",
"Hide" : "Ausblenden",
"Manually installed apps cannot be updated" : "Manuell installierte Apps können nicht aktualisiert werden",
+ "Update to {version}" : "Aktualisieren auf {version}",
"{progress}% Deploying …" : "{progress}% bereitstellen …",
"{progress}% Initializing …" : "{progress}% initialisiere …",
"Health checking" : "Gesundheitsprüfung",
@@ -825,6 +549,7 @@
"Allow untested app" : "Ungetestete App zulassen",
"The app will be downloaded from the App Store" : "Die App wird aus dem App-Store heruntergeladen",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Diese App ist als nicht-kompatibel mit Ihrer Nextcloud-Version markiert. Wenn Sie fortfahren, so können Sie die App installieren. Bitte beachten Sie, dass die App nicht wie erwartet funktionieren könnte.",
+ "{size} used" : "{size} verwendet",
"Unknown" : "Unbekannt",
"Never" : "Niemals",
"Could not register device: Network error" : "Gerät konnte nicht registriert werden: Netzwerkfehler",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "Die Gruppensortierung konnte nicht festgelegt werden",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zu viele Anfragen aus Ihrem Netzwerk. Versuchen Sie es später erneut oder wenden Sie sich an Ihre Administration, wenn dies ein Fehler sein sollte.",
"Error" : "Fehler",
+ "Default quota" : "Standard Speicherkontingent ",
"Account documentation" : "Kontodokumentation",
"Administration documentation" : "Administrationsdokumentation",
+ "Documentation" : "Dokumentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud-Hilfe & Datenschutz-Ressourcen",
"General documentation" : "Allgemeine Dokumentation",
@@ -867,8 +594,9 @@
"SMTP Password" : "SMTP-Passwort",
"Save" : "Speichern",
"Test and verify email settings" : "Testen und Überprüfen der E-Mail-Einstellungen",
+ "Send email" : "E-Mail senden",
"Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen",
- "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Geschwindigkeit Ihrer Installation ist es von großer Bedeutung, dass sie richtig konfiguriert ist. Um Ihnen hierbei zu helfen werden einige automatische Tests durchgeführt. Weitere Informationen finden Sie in der verlinkten Dokumentation.",
+ "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Für die Sicherheit und Leistung Ihrer Instanz ist es von großer Bedeutung, dass alles richtig konfiguriert ist. Um Sie dabei zu unterstützen, werden einige automatische Prüfungen durchgeführt. Weitere Informationen finden Sie in der verlinkten Dokumentation.",
"All checks passed." : "Alle Überprüfungen bestanden.",
"There are some errors regarding your setup." : "Es gibt einige Fehler in Ihrer Systemkonfiguration.",
"There are some warnings regarding your setup." : "Es gibt einige Warnungen zu Ihrer Systemkonfiguration.",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "Verwenden Sie neben Ihrem Passwort einen zweiten Faktor, um die Sicherheit für Ihr Konto zu erhöhen.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Wenn Sie Anwendungen von Drittanbietern verwenden, um sich mit Nextcloud zu verbinden, stellen Sie bitte sicher, dass Sie für jede Anwendung ein Anwendungspasswort erstellen und konfigurieren, bevor Sie die Zwei-Faktor-Authentifizierung aktivieren.",
"Logged in account must be a subadmin" : "Das angemeldete Konto muss eine Unteradministration sein.",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Um diese Prüfung auszuführen, müssen Sie sicherstellen, dass Ihr Webserver eine Verbindung zu sich selbst herstellen kann. Dafür muss er in der Lage sein, sich mit mindestens einer seiner \"trusted_domains\" oder der \"overwrite.cli.url\" zu verbinden und diese aufzulösen.",
- "Missing optional index \"%s\" in table \"%s\"." : "Fehlende optionaler Index \"%s\" in der Tabelle \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von \"occ db:add-missing-indices\" können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Damit diese Prüfung ausgeführt werden kann, müssen Sie sicherstellen, dass Ihr Webserver eine Verbindung zu sich selbst herstellen kann. Daher muss er in der Lage sein, mindestens eine seiner `trusted_domains` oder `overwrite.cli.url` aufzulösen und eine Verbindung zu ihnen herzustellen. Dieser Fehler kann das Ergebnis einer serverseitigen DNS-Nichtübereinstimmung oder einer ausgehenden Firewall-Regel sein.",
"File locking" : "Dateisperre",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Die transaktionale Dateisperre ist deaktiviert, dies kann zu Problemen mit Race Conditions führen. Aktivieren Sie \"filelocking.enabled\" in config.php, um diese Probleme zu vermeiden.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Es konnte weder über Ihre `trusted_domains` noch über `overwrite.cli.url` nach JavaScript-Unterstützung gesucht werden. Dies kann auf eine serverseitige DNS-Nichtübereinstimmung oder eine ausgehende Firewall-Regel zurückzuführen sein. Bitte überprüfen Sie manuell, ob Ihr Webserver `.mjs`-Dateien mit dem JavaScript-MIME-Typ bereitstellt.",
"The PHP memory limit is below the recommended value of %s." : "Das PHP-Speicherllmit liegt unterhalb des empfohlenen Wertes von %s.",
"for WebAuthn passwordless login" : "für WebAuthn passwortlose Anmeldung",
"for WebAuthn passwordless login, and SFTP storage" : "für WebAuthn passwortlose Anmeldung und SFTP-Speicher",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sie verwenden derzeit PHP %s. PHP 8.0 ist ab Nextcloud 27 veraltet. Nextcloud 28 erfordert möglicherweise mindestens PHP 8.1. Bitte aktualisieren Sie so schnell wie möglich auf eine der offiziell unterstützten PHP-Versionen der PHP Gruppe.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und benötigen MariaDB 10.2 oder neuer.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützten diese Version nicht und benötigen MySQL 8.0 oder MariaDB 10.2 oder neuer.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL Version \"%s\" wird verwendet. Nextcloud 21 und neuer unterstützen diese Version nicht und beötigen PostgreSQL 9.6 oder neuer.",
- "Speech-To-Text" : "Sprache-zu-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Sprache-zu-Text kann mittels verschiedener Apps implementiert werden. Hier können Sie einstellen, welche App verwendet werden soll.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Keine Ihrer derzeit installierten Apps bietet Sprache-zu-Text-Funktionalität",
- "None of your currently installed apps provide Text processing functionality" : "Keine Ihrer derzeit installierten Apps bietet Funktionalität zur Textverarbeitung",
- "Set default expiration date for shares" : "Legen Sie das Standardablaufdatum für Freigaben fest",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Die automatische Vervollständigung des Benutzernamens im Freigabedialog und den Zugriff auf das Systemadressbuch erlauben",
- "Your biography" : "Ihre Biografie",
- "You are using <strong>{usage}</strong>" : "Sie benutzen <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Sie benutzen <strong>{usage}</strong> von <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Manager setzen",
- "Username will be autogenerated" : "Anmeldename wird automatisch erzeugt",
- "Username (required)" : "Anmeldename (erforderlich)",
- "New user" : "Neues Konto",
- "Groups (required)" : "Gruppen (erforderlich)",
- "Set user groups" : "Kontengruppen einstellen",
- "Administered groups" : "Administrierte Gruppen",
- "Set user as admin for …" : "Benutzer als Administration setzen für…",
- "Set user quota" : "Kontokontingent einstellen",
- "Add new user" : "Neues Konto hinzufügen",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} Benutzer…","{userCount} Benutzer …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} Konto","{userCount} Konten"],
- "Loading users …" : "Lade Konten …",
- "Username" : "Kontenname",
- "User backend" : "Konto-Backend",
- "User actions" : "Kontoaktionen",
- "Add user to group" : "Konto der Gruppe hinzufügen",
- "Server error while trying to add WebAuthn device" : "Serverfehler beim Versuch ein WebAuthn-Gerät hinzuzufügen",
- "Name your device" : "Gerät benennen",
- "Active accounts" : "Aktive Konten",
- "Follow us on Twitter" : "Folgen Sie uns auf Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Damit diese Prüfung ausgeführt werden kann, müssen Sie sicherstellen, dass Ihr Webserver eine Verbindung zu sich selbst herstellen kann. Daher muss er in der Lage sein, mindestens eine seiner `trusted_domains` oder `overwrite.cli.url` aufzulösen und eine Verbindung zu ihnen herzustellen. Dieser Fehler kann das Ergebnis einer serverseitigen DNS-Nichtübereinstimmung oder einer ausgehenden Firewall-Regel sein.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Der HTTP-Header `%1$s` enthält nicht `%2$s`. Dies stellt ein potenzielles Sicherheits- oder Datenschutzrisiko dar und es wird empfohlen, diese Einstellung zu ändern.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL-Version \"%s\" erkannt. Für optimale Leistung, Stabilität und Funktionalität mit dieser Version von Nextcloud wird PostgreSQL >=12 und <=16 empfohlen.",
- "Failed to load subadmin groups with details" : "Unteradministrations-Gruppen mit Details konnten nicht geladen werden"
+ "Set default expiration date for shares" : "Legen Sie das Standardablaufdatum für Freigaben fest"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/el.js b/apps/settings/l10n/el.js
index 18e163acc58..aefd1209da0 100644
--- a/apps/settings/l10n/el.js
+++ b/apps/settings/l10n/el.js
@@ -294,7 +294,6 @@ OC.L10N.register(
"HTTP headers" : "Επικεφαλίδες HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- Η επικεφαλίδα HTTP `%1$s` δεν έχει οριστεί σε `%2$s`. Ορισμένες λειτουργίες ενδέχεται να μην λειτουργούν σωστά, καθώς συνιστάται η προσαρμογή αυτής της ρύθμισης ανάλογα.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Η επικεφαλίδα HTTP `%1$s` δεν έχει οριστεί σε `%2$s`. Αυτό αποτελεί πιθανό κίνδυνο ασφαλείας ή απορρήτου, καθώς συνιστάται η προσαρμογή αυτής της ρύθμισης ανάλογα.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Η επικεφαλίδα HTTP `%1$s` δεν περιέχει `%2$s`. Αυτό αποτελεί πιθανό κίνδυνο ασφαλείας ή απορρήτου, καθώς συνιστάται η προσαρμογή αυτής της ρύθμισης ανάλογα.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Η επικεφαλίδα HTTP `%1$s` δεν έχει οριστεί σε `%2$s`, `%3$s`, `%4$s`, `%5$s` ή `%6$s`. Αυτό μπορεί να διαρρεύσει πληροφορίες referer. Δείτε την {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Η επικεφαλίδα HTTP `Strict-Transport-Security` δεν έχει οριστεί σε τουλάχιστον `%d` δευτερόλεπτα (τρέχουσα τιμή: `%d`). Για ενισχυμένη ασφάλεια, συνιστάται η χρήση μιας μακροπρόθεσμης πολιτικής HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Η επικεφαλίδα HTTP `Strict-Transport-Security` είναι εσφαλμένη: `%s`. Για ενισχυμένη ασφάλεια, συνιστάται η ενεργοποίηση του HSTS.",
@@ -438,97 +437,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Δεν ήταν δυνατή η φόρτωση του περιεχομένου της ενότητας από το κατάστημα εφαρμογών.",
"Loading" : "Γίνεται φόρτωση",
"Fetching the latest news…" : "Ανάκτηση των τελευταίων ειδήσεων…",
- "Carousel" : "Καρουσέλ",
- "Previous slide" : "Προηγούμενη διαφάνεια",
- "Next slide" : "Επόμενη διαφάνεια",
- "Choose slide to display" : "Επιλέξτε διαφάνεια για εμφάνιση",
- "{index} of {total}" : "{index} από {total}",
- "Daemon" : "Υπηρεσία",
- "Deploy Daemon" : "Υπηρεσία Ανάπτυξης",
- "Type" : "Τύπος",
- "Display Name" : "Εμφανιζόμενο όνομα",
- "GPUs support" : "Υποστήριξη GPUs",
- "Compute device" : "Συσκευή υπολογισμού",
- "Advanced deploy options" : "Προηγμένες επιλογές ανάπτυξης",
- "Edit ExApp deploy options before installation" : "Επεξεργασία επιλογών ανάπτυξης ExApp πριν την εγκατάσταση",
- "Configured ExApp deploy options. Can be set only during installation" : "Ρυθμισμένες επιλογές ανάπτυξης ExApp. Μπορούν να ρυθμιστούν μόνο κατά την εγκατάσταση",
- "Learn more" : "Μάθετε περισσότερα",
- "Environment variables" : "Μεταβλητές περιβάλλοντος",
- "ExApp container environment variables" : "Μεταβλητές περιβάλλοντος ExApp container",
- "No environment variables defined" : "Δεν έχουν οριστεί μεταβλητές περιβάλλοντος",
- "Mounts" : "Σημεία προσάρτησης",
- "Define host folder mounts to bind to the ExApp container" : "Ορίστε σημεία προσάρτησης φακέλων του host για σύνδεση με το ExApp container",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Πρέπει να υπάρχει στον host του Deploy daemon πριν από την εγκατάσταση του ExApp",
- "Host path" : "Διαδρομή host",
- "Container path" : "Διαδρομή container",
- "Read-only" : "Μόνο για ανάγνωση",
- "Remove mount" : "Αφαίρεση σημείου προσάρτησης",
- "New mount" : "Νέο σημείο προσάρτησης",
- "Enter path to host folder" : "Εισάγετε τη διαδρομή προς τον φάκελο του host",
- "Enter path to container folder" : "Εισάγετε τη διαδρομή προς τον φάκελο του container",
- "Toggle read-only mode" : "Εναλλαγή λειτουργίας μόνο για ανάγνωση",
- "Confirm adding new mount" : "Επιβεβαίωση προσθήκης νέου σημείου προσάρτησης",
- "Confirm" : "Επιβεβαίωση",
- "Cancel adding mount" : "Ακύρωση προσθήκης σημείου προσάρτησης",
- "Cancel" : "Άκυρο",
- "Add mount" : "Προσθήκη σημείου προσάρτησης",
- "ExApp container mounts" : "Σημεία προσάρτησης ExApp container",
- "No mounts defined" : "Δεν έχουν οριστεί σημεία προσάρτησης",
- "Description" : "Περιγραφή",
- "View in store" : "Προβολή στο κέντρο εφαρμογών",
- "Visit website" : "Επισκεφθείτε την ιστοσελίδα",
- "Usage documentation" : "Τεκμηρίωση χρήσης",
- "Admin documentation" : "Τεκμηρίωση Διαχειριστή",
- "Developer documentation" : "Τεκμηρίωση προγραμματιστή",
- "Details" : "Λεπτομέρειες",
- "All" : "Όλες",
- "Limit app usage to groups" : "Περιορίστε τη χρήση της εφαρμογής σε ομάδες",
- "No results" : "Κανένα αποτέλεσμα",
- "Update to {version}" : "Ενημέρωση στην έκδοση {version}",
- "Deploy options" : "Επιλογές ανάπτυξης",
- "Default Deploy daemon is not accessible" : "Το προεπιλεγμένο Deploy daemon δεν είναι προσβάσιμο",
- "Delete data on remove" : "Διαγραφή δεδομένων κατά την αφαίρεση",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Αυτή η εφαρμογή δεν έχει ελάχιστη έκδοση του Nextcloud ανατεθειμένη. Αυτό θα αποτελεί σφάλμα στο μέλλον.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Αυτή η εφαρμογή δεν έχει μέγιστη έκδοση του Nextcloud ανατεθειμένη. Αυτό θα αποτελεί σφάλμα στο μέλλον.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Αυτή η εφαρμογή δεν μπορεί να εγκατασταθεί διότι δεν εκπληρώνονται οι ακόλουθες εξαρτήσεις:",
- "Latest updated" : "Τελευταία ενημέρωση",
- "Author" : "Δημιουργός",
- "Categories" : "Κατηγορίες",
- "Resources" : "Πηγές",
- "Documentation" : "Τεκμηρίωση",
- "Interact" : "Αλληλεπίδραση",
- "Report a bug" : "Αναφορά σφάλματος",
- "Request feature" : "Αίτημα δυνατότητας",
- "Ask questions or discuss" : "Κάνε ερωτήσεις ή συζήτηση",
- "Rate the app" : "Βαθμολόγησε την εφαρμογή",
- "Rate" : "Αξιολογήστε",
- "Changelog" : "Αρχείο καταγραφής αλλαγών",
- "Google Chrome for Android" : "Google Chrome για Android",
- "{productName} iOS app" : "{productName} εφαρμογή iOS",
- "{productName} Android app" : "{productName} εφαρμογή Android",
- "{productName} Talk for iOS" : "{productName} Talk για iOS",
- "{productName} Talk for Android" : "{productName} Talk για Android",
- "Sync client" : "Συγχρονισμός πελάτη",
- "This session" : "Αυτή η συνεδρία",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Όνομα συσκευής",
- "Cancel renaming" : "Ακύρωση μετονομασίας",
- "Save new name" : "Αποθήκευση νέου ονόματος",
- "Marked for remote wipe" : "Επισημάνθηκε για απομακρυσμένη εκκαθάριση",
- "Device settings" : "Ρυθμίσεις συσκευής",
- "Allow filesystem access" : "Επιτρέπεται η πρόσβαση στο σύστημα αρχείων",
- "Rename" : "Μετονομασία",
- "Revoke" : "Ανάκληση",
- "Wipe device" : "Εκκαθάριση συσκευής",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Η κατάργηση αυτού του αναγνωριστικού ενδέχεται να αποτρέψει την εκκαθάριση της συσκευής σας αν δεν έχει ξεκινήσει ακόμα.",
- "Device" : "Συσκευή",
- "Last activity" : "Τελευταία δραστηριότητα",
- "Devices & sessions" : "Συσκευές & συνδέσεις",
- "Web, desktop and mobile clients currently logged in to your account." : "Έχουν συνδεθεί στον λογαριασμό σας εφαρμογές από περιηγητή ιστού, υπολογιστή και εφαρμογή τηλεφώνου.",
- "Error while creating device token" : "Σφάλμα κατά τη δημιουργία διακριτικού συσκευής",
- "App name" : "Όνομα εφαρμογής",
- "Create new app password" : "Δημιουργία νέου συνθηματικού εφαρμογής",
"App password copied!" : "Το συνθηματικό εφαρμογής αντιγράφηκε!",
"Copy app password" : "Αντιγραφή συνθηματικού εφαρμογής",
"Login name copied!" : "Το όνομα σύνδεσης αντιγράφηκε!",
@@ -556,6 +464,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Δεν είναι δυνατή η ενημέρωση της προεπιλεγμένης ρύθμισης προφίλ",
"Profile" : "Προφίλ",
"Enable or disable profile by default for new accounts." : "Ενεργοποίηση ή απενεργοποίηση του προφίλ από προεπιλογή για νέους λογαριασμούς.",
+ "Password confirmation is required" : "Απαιτείται επιβεβαίωση συνθηματικού",
"Failed to save setting" : "Αποτυχία αποθήκευσης ρύθμισης",
"{app}'s declarative setting field: {name}" : "Δηλωτικό πεδίο ρύθμισης της {app}: {name}",
"Unable to update server side encryption config" : "Δεν είναι δυνατή η ενημέρωση της διαμόρφωσης κρυπτογράφησης από τον διακομιστή",
@@ -577,202 +486,11 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Είναι πάντοτε καλό να δημιουργείτε τακτικά αντίγραφα ασφαλείας των δεδομένων σας, στην περίπτωση της κρυπτογράφησης βεβαιωθείτε ότι έχετε λάβει αντίγραφο ασφαλείας των κλειδιών κρυπτογράφησης παράλληλα με τα δεδομένα σας.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Ανατρέξτε στην τεκμηρίωση του διαχειριστή για το πώς να κρυπτογραφήσετε χειροκίνητα τα υπάρχοντα αρχεία.",
"This is the final warning: Do you really want to enable encryption?" : "Αυτή είναι η τελευταία προειδοποίηση: Θέλετε πραγματικά να ενεργοποιήσετε την κρυπτογράφηση;",
- "Failed to remove group \"{group}\"" : "Αποτυχία κατά την αφαίρεση της ομάδας \"{group}\"",
"Please confirm the group removal" : "Παρακαλώ επιβεβαιώστε την αφαίρεση της ομάδας",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Πρόκειται να αφαιρέσετε την ομάδα \"{group}\". Οι λογαριασμοί ΔΕΝ θα διαγραφούν.",
+ "Cancel" : "Άκυρο",
+ "Confirm" : "Επιβεβαίωση",
"Submit" : "Υποβολή",
"Rename group" : "Μετονομασία ομάδας",
- "Remove group" : "Αφαίρεση ομάδας",
- "Current password" : "Τρέχον συνθηματικό",
- "New password" : "Νέο συνθηματικό",
- "Change password" : "Αλλαγή συνθηματικού",
- "Choose your profile picture" : "Επιλέξτε την εικόνα προφίλ σας",
- "Please select a valid png or jpg file" : "Παρακαλούμε επιλέξτε συμβατό αρχείο png ή jpg",
- "Error setting profile picture" : "Σφάλμα ορισμού εικόνας προφίλ",
- "Error cropping profile picture" : "Σφάλμα περικοπής εικόνας προφίλ",
- "Error saving profile picture" : "Σφάλμα αποθήκευσης εικόνας προφίλ",
- "Error removing profile picture" : "Σφάλμα αφαίρεσης εικόνας προφίλ",
- "Your profile picture" : "Η εικόνα του προφίλ σας",
- "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" : "Φωτογραφία που παρέχεται από τον πρωτότυπο λογαριασμό",
- "Set as profile picture" : "Ορισμός ως εικόνας προφίλ",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Λάβετε υπόψη ότι μπορεί να χρειαστούν έως και 24 ώρες για να ενημερωθεί παντού η εικόνα του προφίλ σας.",
- "Your biography. Markdown is supported." : "Το βιογραφικό σας. Υποστηρίζεται Markdown.",
- "Unable to update date of birth" : "Δεν είναι δυνατή η ενημέρωση της ημερομηνίας γέννησης",
- "Enter your date of birth" : "Εισάγετε την ημερομηνία γέννησής σας",
- "You are using {s}{usage}{/s}" : "Χρησιμοποιείτε {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Χρησιμοποιείτε {s}{usage}{/s} από {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:",
- "Your full name" : "Το ονοματεπώνυμο σας",
- "Email options" : "Επιλογές email",
- "Options for additional email address {index}" : "Επιλογές για πρόσθετη διεύθυνση email {index}",
- "Remove primary email" : "Κατάργηση κύριου email",
- "Delete email" : "Διαγραφή email",
- "This address is not confirmed" : "Αυτή η διεύθυνση email δεν έχει επιβεβαιωθεί",
- "Unset as primary email" : "Κατάργηση ορισμού ως κύριου email",
- "Set as primary email" : "Ορισμός ως κύριου email",
- "Additional email address {index}" : "Πρόσθετη διεύθυνση email {index}",
- "Unable to delete primary email address" : "Δεν είναι δυνατή η διαγραφή της κύριας διεύθυνσης email",
- "Unable to update primary email address" : "Δεν είναι δυνατή η ενημέρωση της κύριας διεύθυνσης email",
- "Unable to add additional email address" : "Δεν είναι δυνατή η προσθήκη πρόσθετης διεύθυνσης email",
- "Unable to update additional email address" : "Δεν είναι δυνατή η ενημέρωση της πρόσθετης διεύθυνσης email",
- "Unable to delete additional email address" : "Δεν είναι δυνατή η διαγραφή της πρόσθετης διεύθυνσης email",
- "Primary email for password reset and notifications" : "Κύριο email για επαναφορά συνθηματικού και ειδοποιήσεις",
- "No email address set" : "Δεν ορίστηκε διεύθυνση email",
- "Your handle" : "Το handle σας",
- "Derived from your locale ({weekDayName})" : "Προέρχεται από τις ρυθμίσεις τοποθεσίας σας ({weekDayName})",
- "Unable to update first day of week" : "Δεν είναι δυνατή η ενημέρωση της πρώτης ημέρας της εβδομάδας",
- "Day to use as the first day of week" : "Ημέρα που χρησιμοποιείται ως πρώτη ημέρα της εβδομάδας",
- "Your headline" : "Ο τίτλος σας",
- "Unable to update language" : "Δεν είναι δυνατή η ενημέρωση της γλώσσας",
- "Languages" : "Γλώσσες",
- "Help translate" : "Βοηθήστε στη μετάφραση",
- "No language set" : "Δεν ορίστηκε γλώσσα",
- "Unable to update locale" : "Δεν είναι δυνατή η ενημέρωση των ρυθμίσεων τοποθεσίας",
- "Locales" : "Ρυθμίσεις τοποθεσίας",
- "Week starts on {firstDayOfWeek}" : "Η εβδομάδα ξεκινά την {firstDayOfWeek}",
- "No locale set" : "Δεν ορίστηκαν ρυθμίσεις τοποθεσίας",
- "Your city" : "Η πόλη σας",
- "Your organisation" : "Ο οργανισμός σας",
- "Your phone number" : "Ο αριθμός τηλεφώνου σας",
- "Edit your Profile visibility" : "Επεξεργασία της ορατότητας του Προφίλ σας",
- "Unable to update profile enabled state" : "Δεν είναι δυνατή η ενημέρωση της κατάστασης του προφίλ",
- "Enable profile" : "Ενεργοποίηση προφίλ",
- "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." : "Η πιο περιοριστική ρύθμιση ορατότητας ή εύρους τηρείται στο Προφίλ σας. Για παράδειγμα, εάν η ορατότητα έχει οριστεί σε \"Εμφάνιση σε όλους\" και το εύρος έχει οριστεί σε \"Ιδιωτικό\", το \"Ιδιωτικό\" τηρείται.",
- "Unable to update visibility of {displayId}" : "Δεν είναι δυνατή η ενημέρωση της ορατότητας του {displayId}",
- "she/her" : "αυτή/της",
- "he/him" : "αυτός/του",
- "they/them" : "αυτοί/τους",
- "Your role" : "Ο ρόλος σας",
- "Your X (formerly Twitter) handle" : "Το handle σας στο X (πρώην Twitter)",
- "Your website" : "Η ιστοσελίδα σας",
- "Invalid value" : "Μη έγκυρη τιμή",
- "Unable to update {property}" : "Δεν είναι δυνατή η ενημέρωση του {property}",
- "No {property} set" : "Δεν ορίστηκε {property}",
- "Change scope level of {property}, current scope is {scope}" : "Αλλαγή επιπέδου εύρους του {property}, το τρέχον εύρος είναι {scope}",
- "Unable to update federation scope of the primary {property}" : "Δεν είναι δυνατή η ενημέρωση του εύρους ομοσπονδίας του κύριου {property}",
- "Unable to update federation scope of additional {property}" : "Δεν είναι δυνατή η ενημέρωση του εύρους ομοσπονδίας του πρόσθετου {property}",
- "Add additional email" : "Προσθέστε επιπλέον email",
- "Add" : "Προσθήκη",
- "Create" : "Δημιουργία",
- "Change" : "Αλλαγή",
- "Delete" : "Διαγραφή",
- "Reshare" : "Επαναδιαμοιρασμός",
- "Default language" : "Προεπιλεγμένη γλώσσα",
- "Common languages" : "Κοινές γλώσσες",
- "Other languages" : "Άλλες γλώσσες",
- "Password change is disabled because the master key is disabled" : "Η αλλαγή συνθηματικού είναι απενεργοποιημένη επειδή το κεντρικό κλειδί είναι απενεργοποιημένο",
- "No accounts" : "Δεν υπάρχουν λογαριασμοί",
- "Loading accounts …" : "Φόρτωση λογαριασμών …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Λίστα λογαριασμών. Αυτή η λίστα δεν αποδίδεται πλήρως για λόγους απόδοσης. Οι λογαριασμοί θα αποδίδονται καθώς πλοηγείστε στη λίστα.",
- "Manager" : "Διαχειριστής",
- "Set line manager" : "Ορισμός γραμμικού διαχειριστή",
- "Account name will be autogenerated" : "Το όνομα λογαριασμού θα δημιουργηθεί αυτόματα",
- "Account name (required)" : "Όνομα λογαριασμού (απαιτείται)",
- "New account" : "Νέος λογαριασμός",
- "Display name" : "Εμφανιζόμενο όνομα",
- "Either password or email is required" : "Απαιτείται είτε συνθηματικό είτε email",
- "Password (required)" : "Συνθηματικό (απαιτείται)",
- "Email (required)" : "Email (απαιτείται)",
- "Email" : "Email",
- "Member of the following groups (required)" : "Μέλος των ακόλουθων ομάδων (απαιτείται)",
- "Member of the following groups" : "Μέλος των ακόλουθων ομάδων",
- "Set account groups" : "Ορισμός ομάδων λογαριασμού",
- "Admin of the following groups" : "Διαχειριστής των ακόλουθων ομάδων",
- "Set account as admin for …" : "Ορισμός λογαριασμού ως διαχειριστή για …",
- "Quota" : "Χωρητικότητα",
- "Set account quota" : "Ορισμός χωρητικότητας λογαριασμού",
- "Language" : "Γλώσσα",
- "Set default language" : "Ορισμός προεπιλεγμένης γλώσσας",
- "Add new account" : "Προσθήκη νέου λογαριασμού",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} λογαριασμός …","{userCount} λογαριασμοί …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} λογαριασμός","{userCount} λογαριασμοί"],
- "Total rows summary" : "Συνολική σύνοψη γραμμών",
- "Scroll to load more rows" : "Κυλήστε για να φορτώσετε περισσότερες γραμμές",
- "Password or insufficient permissions message" : "Συνθηματικό ή μήνυμα ανεπαρκών δικαιωμάτων",
- "Avatar" : "Εικόνα προφίλ",
- "Account name" : "Όνομα λογαριασμού",
- "Group admin for" : "Ομαδα διαχειριστή για",
- "Account backend" : "Σύστημα υποστήριξης λογαριασμού",
- "Storage location" : "Τοποθεσία αποθηκευτικού χώρου",
- "First login" : "Πρώτη σύνδεση",
- "Last login" : "Τελευταία είσοδος",
- "Account actions" : "Δραστηριότητα λογαριασμού",
- "{size} used" : "{size} που χρησιμοποιείται",
- "Delete account" : "Διαγραφή λογαριασμού",
- "Disconnect all devices and delete local data" : "Αποσύνδεση όλων των συσκευών και διαγραφή τοπικών δεδομένων",
- "Disable account" : "Απενεργοποίηση λογαριασμού",
- "Enable account" : "Ενεργοποίηση λογαριασμού",
- "Resend welcome email" : "Επαναποστολή αλληλογραφίας καλωσορίσματος",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Σε περίπτωση απώλειας συσκευής ή αποχώρησης από τον οργανισμό, μπορεί να γίνει εκκαθάριση των δεδομένων του Nextcloud από όλες τις συσκευές σε σχέση με το {userid}. Λειτουργεί μόνο εάν οι συσκευές είναι συνδεμένες στο ίντερνετ.",
- "Remote wipe of devices" : "Απομακρυσμένη εκκαθάριση συσκευών",
- "Wipe {userid}'s devices" : "Εκκαθάριση συσκευών του {userid}",
- "Wiped {userid}'s devices" : "Εκκαθάριση συσκευών του {userid}",
- "Failed to update line manager" : "Αποτυχία ενημέρωσης γραμμικού διαχειριστή",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Διαγραφή λογαριασμού του {userid} και όλων των προσωπικών αρχείων, δεδομένων εφαρμογών, κτλ.",
- "Account deletion" : "Διαγραφή λογαριασμού",
- "Delete {userid}'s account" : "Διαγραφή λογαριασμού του {userid}",
- "Display name was successfully changed" : "Το εμφανιζόμενο όνομα άλλαξε επιτυχώς",
- "Password can't be empty" : "Το συνθηματικό δεν μπορεί να είναι κενό",
- "Password was successfully changed" : "Το συνθηματικό άλλαξε επιτυχώς",
- "Email can't be empty" : "Το email δεν μπορεί να είναι κενό",
- "Email was successfully changed" : "Το email άλλαξε επιτυχώς",
- "Welcome mail sent!" : "Απεστάλη το μήνυμα καλωσορίσματος!",
- "Loading account …" : "Φόρτωση λογαριασμού …",
- "Change display name" : "Αλλαγή εμφανιζόμενου ονόματος",
- "Set new password" : "Ορισμός νέου συνθηματικού",
- "You do not have permissions to see the details of this account" : "Δεν έχετε δικαιώματα για να δείτε τις λεπτομέρειες αυτού του λογαριασμού",
- "Set new email address" : "Ορισμός νέας διεύθυνσης email",
- "Add account to group" : "Προσθήκη λογαριασμού σε ομάδα",
- "Set account as admin for" : "Ορισμός λογαριασμού ως διαχειριστή για",
- "Select account quota" : "Επιλογή χωρητικότητας λογαριασμού",
- "Set the language" : "Ορισμός γλώσσας",
- "Toggle account actions menu" : "Εναλλαγή μενού ενεργειών λογαριασμού",
- "Done" : "Ολοκληρώθηκε",
- "Edit" : "Επεξεργασία",
- "Account management settings" : "Ρυθμίσεις διαχείρισης λογαριασμών",
- "Visibility" : "Ορατότητα",
- "Show language" : "Εμφάνιση γλώσσας",
- "Show account backend" : "Εμφάνιση συστήματος υποστήριξης λογαριασμού",
- "Show storage path" : "Εμφάνιση διαδρομής αποθήκευσης",
- "Show first login" : "Εμφάνιση πρώτης σύνδεσης",
- "Show last login" : "Εμφάνιση τελευταίας σύνδεσης",
- "Sorting" : "Ταξινόμηση",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Η διαμόρφωση του συστήματος επιβάλλει την ταξινόμηση των ομάδων κατά όνομα. Αυτό απενεργοποιεί επίσης την εμφάνιση του αριθμού των μελών.",
- "Group list sorting" : "Ταξινόμηση λίστας ομάδων",
- "By member count" : "Κατά αριθμό μελών",
- "By name" : "Κατά όνομα",
- "Send email" : "Αποστολή email",
- "Send welcome email to new accounts" : "Αποστολή email καλωσορίσματος σε νέους λογαριασμούς",
- "Defaults" : "Προεπιλογές",
- "Default quota" : "Προεπιλεγμένη χωρητικότητα",
- "Select default quota" : "Επιλογή προεπιλεγμένης χωρητικότητας",
- "Server error while trying to complete WebAuthn device registration" : "Σφάλμα διακομιστή κατά την εγγραφή συσκευής WebAuthn",
- "Passwordless authentication requires a secure connection." : "Η σύνδεση χωρίς συνθηματικό απαιτεί ασφαλή σύνδεση.",
- "Add WebAuthn device" : "Προσθήκη συσκευής WebAuthn",
- "Please authorize your WebAuthn device." : "Παρακαλώ εξουσιοδοτήστε την συσκευή σας WebAuthn.",
- "Adding your device …" : "Προσθήκη της συσκευής σας …",
- "Unnamed device" : "Ανώνυμη συσκευή",
- "Passwordless Authentication" : "Πιστοποίηση χωρίς συνθηματικό",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Ρυθμίστε τον λογαριασμό σας για πιστοποίηση χωρίς κωδικό ακολουθώντας τα πρότυπα του FIDO2.",
- "No devices configured." : "Καμιά συσκευή δεν ρυθμίστηκε.",
- "The following devices are configured for your account:" : "Οι ακόλουθες συσκευές ρυθμίστηκαν για τον λογαριασμό σας:",
- "Your browser does not support WebAuthn." : "Ο περιηγητής σας δεν υποστηρίζει το WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Ως διαχειριστής μπορείτε να ρυθμίσετε λεπτομερώς την συμπεριφορά διαμοιρασμού.\nΠαρακαλούμε ανατρέξτε στην τεκμηρίωση για περισσότερες πληροφορίες.",
- "You need to enable the File sharing App." : "Πρέπει να ενεργοποιήσετε την εφαρμογή Διαμοιρασμός Αρχείων.",
- "App Store" : "Κατάστημα εφαρμογών",
- "Loading app list" : "Φόρτωση λίστας εφαρμογών",
- "Loading categories" : "Φόρτωση κατηγοριών",
- "Developer documentation ↗" : "Τεκμηρίωση προγραμματιστή ↗",
- "Version {version}, {license}-licensed" : "Έκδοση {version}, άδεια χρήσης {license}",
- "Version {version}" : "Έκδοση {version}",
- "All accounts" : "Όλοι οι λογαριασμοί",
- "Admins" : "Διαχειριστές",
- "Account group: {group}" : "Ομάδα λογαριασμού: {group}",
- "Account management" : "Διαχείριση λογαριασμών",
"Sending…" : "Γίνεται αποστολή…",
"Email sent" : "Το Email απεστάλη",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Για λόγους απόδοσης, όταν ενεργοποιείτε την κρυπτογράφηση σε έναν διακομιστή Nextcloud, μόνο τα νέα και τα τροποποιημένα αρχεία κρυπτογραφούνται.",
@@ -782,6 +500,7 @@ OC.L10N.register(
"Date of birth" : "Ημερομηνία γέννησης",
"Full name" : "Πλήρες όνομα",
"Additional email" : "Πρόσθετες διευθύνσεις email",
+ "Email" : "Email",
"Fediverse (e.g. Mastodon)" : "Fediverse (π.χ. Mastodon)",
"Headline" : "Τίτλος",
"Organisation" : "Οργανισμός",
@@ -791,6 +510,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (πρώην Twitter)",
"Website" : "Ιστοσελίδα",
"Profile visibility" : "Ορατότητα προφίλ",
+ "Language" : "Γλώσσα",
"Locale" : "Ρυθμίσεις τοποθεσίας",
"First day of week" : "Πρώτη ημέρα της εβδομάδας",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Δεν είναι διαθέσιμη, καθώς αυτή η ιδιότητα απαιτείται για βασικές λειτουργίες, συμπεριλαμβανομένης της κοινής χρήσης αρχείων και των προσκλήσεων ημερολογίου",
@@ -808,6 +528,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Εμφάνιση μόνο σε συνδεδεμένους λογαριασμούς",
"Hide" : "Απόκρυψη",
"Manually installed apps cannot be updated" : "Οι εγκατεστημένες εφαρμογές χειροκίνητα δεν μπορούν να ενημερωθούν",
+ "Update to {version}" : "Ενημέρωση στην έκδοση {version}",
"{progress}% Deploying …" : "{progress}% Ανάπτυξη …",
"{progress}% Initializing …" : "{progress}% Αρχικοποίηση …",
"Health checking" : "Έλεγχος υγείας",
@@ -817,6 +538,7 @@ OC.L10N.register(
"Allow untested app" : "Επιτρέψτε μη δοκιμασμένες εφαρμογές",
"The app will be downloaded from the App Store" : "Θα γίνει λήψη της εφαρμογής από το App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Η εφαρμογή δεν είναι συμβατή με την έκδοση Nextcloud σας. Εάν συνεχίσετε μπορείτε να εγκαταστήσετε την εφαρμογή. Η εφαρμογή ίσως να μην λειτουργεί σωστά.",
+ "{size} used" : "{size} που χρησιμοποιείται",
"Unknown" : "Άγνωστο",
"Never" : "Ποτέ",
"Could not register device: Network error" : "Δεν ήταν δυνατή η εγγραφή της συσκευής: Σφάλμα δικτύου",
@@ -835,8 +557,10 @@ OC.L10N.register(
"Could not set group sorting" : "Δεν ήταν δυνατός ο ορισμός της ταξινόμησης ομάδων",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Υπήρχαν πάρα πολλά αιτήματα από το δίκτυό σας. Δοκιμάστε ξανά αργότερα ή επικοινωνήστε με τον διαχειριστή σας εάν πρόκειται για σφάλμα.",
"Error" : "Σφάλμα",
+ "Default quota" : "Προεπιλεγμένη χωρητικότητα",
"Account documentation" : "Τεκμηρίωση λογαριασμού",
"Administration documentation" : "Τεκμηρίωση Διαχειριστή",
+ "Documentation" : "Τεκμηρίωση",
"Forum" : "Φόρουμ",
"Nextcloud help & privacy resources" : "Βοήθεια και πόροι απορρήτου του Nextcloud",
"General documentation" : "Γενική τεκμηρίωση",
@@ -859,6 +583,7 @@ OC.L10N.register(
"SMTP Password" : "Συνθηματικό SMTP",
"Save" : "Αποθήκευση",
"Test and verify email settings" : "Δοκιμή και επαλήθευση τις ρυθμίσεων email",
+ "Send email" : "Αποστολή email",
"Security & setup warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Είναι σημαντικό για την ασφάλεια και την απόδοση του συστήματός σας ότι όλα έχουν ρυθμιστεί σωστά. Για να σας βοηθήσουμε, κάνουμε μερικούς αυτόματους ελέγχους. Για περισσότερες πληροφορίες, ανατρέξτε στη σχετική τεκμηρίωση.",
"All checks passed." : "Όλοι οι έλεγχοι επιτυχείς.",
@@ -878,50 +603,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Χρησιμοποιείστε έναν δεύτερο παράγοντα εκτός του συνθηματικού για να αυξήσετε την ασφάλεια του λογαριασμού σας.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Εάν χρησιμοποιείτε εφαρμογές τρίτων για σύνδεση στο Nextcloud, βεβαιωθείτε ότι έχετε δημιουργήσει και διαμορφώσει έναν κωδικό πρόσβασης εφαρμογής για κάθε έναν προτού ενεργοποιήσετε τον έλεγχο ταυτότητας δεύτερου παράγοντα.",
"Logged in account must be a subadmin" : "Ο συνδεδεμένος λογαριασμός πρέπει να είναι υποδιαχειριστής",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Για να επιτρέψετε αυτόν τον έλεγχο, πρέπει να βεβαιωθείτε ότι ο διακομιστής σας μπορεί να συνδεθεί με τον εαυτό του. Για αυτό, πρέπει να μπορεί να επιλύσει και να συνδεθεί με τουλάχιστον ένα από τα `trusted_domains` ή το `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Λείπει το προαιρετικό ευρετήριο \"%s\" στον πίνακα \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Η βάση δεδομένων λείπει κάποια ευρετήρια. Λόγω του γεγονότος ότι η προσθήκη ευρετηρίων σε μεγάλους πίνακες μπορεί να πάρει κάποιο χρόνο, δεν προστέθηκαν αυτόματα. Εκτελώντας την εντολή \"occ db:add-missing-indices\", τα ευρετήρια που λείπουν μπορούν να προστεθούν χειροκίνητα ενώ η εφαρμογή συνεχίζει να λειτουργεί. Μόλις προστεθούν τα ευρετήρια, τα ερωτήματα σε αυτούς τους πίνακες γίνονται συνήθως πολύ πιο γρήγορα.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Για να επιτρέψετε αυτόν τον έλεγχο, πρέπει να βεβαιωθείτε ότι ο διακομιστής σας μπορεί να συνδεθεί με τον εαυτό του. Επομένως, πρέπει να μπορεί να επιλύσει και να συνδεθεί με τουλάχιστον ένα από τα `trusted_domains` ή το `overwrite.cli.url`. Αυτή η αποτυχία μπορεί να οφείλεται σε αντιστοιχία DNS από την πλευρά του διακομιστή ή σε κανόνα τείχους προστασίας εξερχομένων.",
"File locking" : "Κλείδωμα αρχείων",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Το κλείδωμα αρχείων σε συναλλαγές είναι απενεργοποιημένο, κάτι που μπορεί να οδηγήσει σε προβλήματα με συνθήκες ανταγωνισμού. Ενεργοποιήστε το \"filelocking.enabled\" στο config.php για να αποφύγετε αυτά τα προβλήματα.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Δεν ήταν δυνατός ο έλεγχος για υποστήριξη JavaScript μέσω κανενός από τα `trusted_domains` ή το `overwrite.cli.url`. Αυτό μπορεί να οφείλεται σε αντιστοιχία DNS από την πλευρά του διακομιστή ή σε κανόνα τείχους προστασίας εξερχομένων. Παρακαλώ ελέγξτε χειροκίνητα αν ο διακομιστής σας εξυπηρετεί αρχεία `.mjs` χρησιμοποιώντας τον τύπο MIME του JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "Το όριο μνήμης της PHP είναι κάτω από την προτεινόμενη τιμή των %s.",
"for WebAuthn passwordless login" : "για σύνδεση χωρίς συνθηματικό με WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "για σύνδεση χωρίς συνθηματικό με WebAuthn και αποθήκευση SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Αυτή τη στιγμή χρησιμοποιείτε την PHP %s. Η PHP 8.0 είναι πλέον παρωχημένη στο Nextcloud 27. Το Nextcloud 28 μπορεί να απαιτεί τουλάχιστον την PHP 8.1. Παρακαλώ αναβαθμίστε σε μία από τις επίσημα υποστηριζόμενες εκδόσεις της PHP που παρέχονται από την PHP Group το συντομότερο δυνατό.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Χρησιμοποιείται η έκδοση MariaDB \"%s\". Το Nextcloud 21 και νεότερες εκδόσεις δεν υποστηρίζουν αυτήν την έκδοση και απαιτούν MariaDB 10.2 ή νεότερη.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Χρησιμοποιείται η έκδοση MySQL \"%s\". Το Nextcloud 21 και νεότερες εκδόσεις δεν υποστηρίζουν αυτήν την έκδοση και απαιτούν MySQL 8.0 ή MariaDB 10.2 ή νεότερη.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Χρησιμοποιείται η έκδοση PostgreSQL \"%s\". Το Nextcloud 21 και νεότερες εκδόσεις δεν υποστηρίζουν αυτήν την έκδοση και απαιτούν PostgreSQL 9.6 ή νεότερη.",
- "Speech-To-Text" : "Ομιλία-σε-Κείμενο",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Η λειτουργία Ομιλία-σε-Κείμενο μπορεί να υλοποιηθεί από διαφορετικές εφαρμογές. Εδώ μπορείτε να ορίσετε ποια εφαρμογή θα χρησιμοποιηθεί.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Καμία από τις εγκατεστημένες εφαρμογές σας δεν παρέχει λειτουργικότητα Ομιλία-σε-Κείμενο",
- "None of your currently installed apps provide Text processing functionality" : "Καμία από τις εγκατεστημένες εφαρμογές σας δεν παρέχει λειτουργικότητα Επεξεργασίας Κειμένου",
- "Set default expiration date for shares" : "Ορισμός προεπιλεγμένης ημερομηνίας λήξης για τα κοινόχρηστα",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Επιτρέψτε την αυτόματη συμπλήρωση ονόματος χρήστη στο παράθυρο διαμοιρασμού και την πρόσβαση στο βιβλίο διευθύνσεων του συστήματος",
- "Your biography" : "Το βιογραφικό σας",
- "You are using <strong>{usage}</strong>" : "Χρησιμοποιείτε <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Χρησιμοποιείτε <strong>{usage}</strong> από <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Ορισμός διαχειριστή χρήστη",
- "Username will be autogenerated" : "Το όνομα χρήστη θα δημιουργηθεί αυτόματα",
- "Username (required)" : "Όνομα χρήστη (απαιτείται)",
- "New user" : "Νέος χρήστης",
- "Groups (required)" : "Ομάδες (απαιτείται)",
- "Set user groups" : "Ορισμός ομάδων χρήστη",
- "Administered groups" : "Ομάδες διαχείρισης",
- "Set user as admin for …" : "Ορισμός χρήστη ως διαχειριστή για …",
- "Set user quota" : "Ορισμός ποσόστωσης χρήστη",
- "Add new user" : "Προσθήκη νέου χρήστη",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} χρήστης …","{userCount} χρήστες …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} χρήστης","{userCount} χρήστες"],
- "Loading users …" : "Φόρτωση χρηστών …",
- "Username" : "Όνομα χρήστη",
- "User backend" : "Σύστημα υποστήριξης χρήστη",
- "User actions" : "Ενέργειες χρήστη",
- "Add user to group" : "Προσθήκη χρήστη στην ομάδα",
- "Server error while trying to add WebAuthn device" : "Σφάλμα διακομιστή κατά την προσθήκη συσκευής WebAuthn",
- "Name your device" : "Ονομάστε τη συσκευή σας",
- "Active accounts" : "Ενεργοί λογαριασμοί",
- "Follow us on Twitter" : "Ακολουθήστε μας στο Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Για να επιτρέψετε αυτόν τον έλεγχο, πρέπει να βεβαιωθείτε ότι ο διακομιστής σας μπορεί να συνδεθεί με τον εαυτό του. Επομένως, πρέπει να μπορεί να επιλύσει και να συνδεθεί με τουλάχιστον ένα από τα `trusted_domains` ή το `overwrite.cli.url`. Αυτή η αποτυχία μπορεί να οφείλεται σε αντιστοιχία DNS από την πλευρά του διακομιστή ή σε κανόνα τείχους προστασίας εξερχομένων.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Ανιχνεύθηκε η έκδοση PostgreSQL \"%s\". Προτείνεται PostgreSQL >=12 και <=16 για την καλύτερη απόδοση, σταθερότητα και λειτουργικότητα με αυτήν την έκδοση του Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Η επικεφαλίδα HTTP `%1$s` δεν περιέχει `%2$s`. Αυτό αποτελεί πιθανό κίνδυνο ασφαλείας ή απορρήτου, καθώς συνιστάται η προσαρμογή αυτής της ρύθμισης ανάλογα.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Ανιχνεύθηκε η έκδοση PostgreSQL \"%s\". Προτείνεται PostgreSQL >=12 και <=16 για την καλύτερη απόδοση, σταθερότητα και λειτουργικότητα με αυτήν την έκδοση του Nextcloud.",
+ "Set default expiration date for shares" : "Ορισμός προεπιλεγμένης ημερομηνίας λήξης για τα κοινόχρηστα"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/el.json b/apps/settings/l10n/el.json
index 645b51770bb..18aee222b29 100644
--- a/apps/settings/l10n/el.json
+++ b/apps/settings/l10n/el.json
@@ -292,7 +292,6 @@
"HTTP headers" : "Επικεφαλίδες HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- Η επικεφαλίδα HTTP `%1$s` δεν έχει οριστεί σε `%2$s`. Ορισμένες λειτουργίες ενδέχεται να μην λειτουργούν σωστά, καθώς συνιστάται η προσαρμογή αυτής της ρύθμισης ανάλογα.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Η επικεφαλίδα HTTP `%1$s` δεν έχει οριστεί σε `%2$s`. Αυτό αποτελεί πιθανό κίνδυνο ασφαλείας ή απορρήτου, καθώς συνιστάται η προσαρμογή αυτής της ρύθμισης ανάλογα.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Η επικεφαλίδα HTTP `%1$s` δεν περιέχει `%2$s`. Αυτό αποτελεί πιθανό κίνδυνο ασφαλείας ή απορρήτου, καθώς συνιστάται η προσαρμογή αυτής της ρύθμισης ανάλογα.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Η επικεφαλίδα HTTP `%1$s` δεν έχει οριστεί σε `%2$s`, `%3$s`, `%4$s`, `%5$s` ή `%6$s`. Αυτό μπορεί να διαρρεύσει πληροφορίες referer. Δείτε την {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Η επικεφαλίδα HTTP `Strict-Transport-Security` δεν έχει οριστεί σε τουλάχιστον `%d` δευτερόλεπτα (τρέχουσα τιμή: `%d`). Για ενισχυμένη ασφάλεια, συνιστάται η χρήση μιας μακροπρόθεσμης πολιτικής HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Η επικεφαλίδα HTTP `Strict-Transport-Security` είναι εσφαλμένη: `%s`. Για ενισχυμένη ασφάλεια, συνιστάται η ενεργοποίηση του HSTS.",
@@ -436,97 +435,6 @@
"Could not load section content from app store." : "Δεν ήταν δυνατή η φόρτωση του περιεχομένου της ενότητας από το κατάστημα εφαρμογών.",
"Loading" : "Γίνεται φόρτωση",
"Fetching the latest news…" : "Ανάκτηση των τελευταίων ειδήσεων…",
- "Carousel" : "Καρουσέλ",
- "Previous slide" : "Προηγούμενη διαφάνεια",
- "Next slide" : "Επόμενη διαφάνεια",
- "Choose slide to display" : "Επιλέξτε διαφάνεια για εμφάνιση",
- "{index} of {total}" : "{index} από {total}",
- "Daemon" : "Υπηρεσία",
- "Deploy Daemon" : "Υπηρεσία Ανάπτυξης",
- "Type" : "Τύπος",
- "Display Name" : "Εμφανιζόμενο όνομα",
- "GPUs support" : "Υποστήριξη GPUs",
- "Compute device" : "Συσκευή υπολογισμού",
- "Advanced deploy options" : "Προηγμένες επιλογές ανάπτυξης",
- "Edit ExApp deploy options before installation" : "Επεξεργασία επιλογών ανάπτυξης ExApp πριν την εγκατάσταση",
- "Configured ExApp deploy options. Can be set only during installation" : "Ρυθμισμένες επιλογές ανάπτυξης ExApp. Μπορούν να ρυθμιστούν μόνο κατά την εγκατάσταση",
- "Learn more" : "Μάθετε περισσότερα",
- "Environment variables" : "Μεταβλητές περιβάλλοντος",
- "ExApp container environment variables" : "Μεταβλητές περιβάλλοντος ExApp container",
- "No environment variables defined" : "Δεν έχουν οριστεί μεταβλητές περιβάλλοντος",
- "Mounts" : "Σημεία προσάρτησης",
- "Define host folder mounts to bind to the ExApp container" : "Ορίστε σημεία προσάρτησης φακέλων του host για σύνδεση με το ExApp container",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Πρέπει να υπάρχει στον host του Deploy daemon πριν από την εγκατάσταση του ExApp",
- "Host path" : "Διαδρομή host",
- "Container path" : "Διαδρομή container",
- "Read-only" : "Μόνο για ανάγνωση",
- "Remove mount" : "Αφαίρεση σημείου προσάρτησης",
- "New mount" : "Νέο σημείο προσάρτησης",
- "Enter path to host folder" : "Εισάγετε τη διαδρομή προς τον φάκελο του host",
- "Enter path to container folder" : "Εισάγετε τη διαδρομή προς τον φάκελο του container",
- "Toggle read-only mode" : "Εναλλαγή λειτουργίας μόνο για ανάγνωση",
- "Confirm adding new mount" : "Επιβεβαίωση προσθήκης νέου σημείου προσάρτησης",
- "Confirm" : "Επιβεβαίωση",
- "Cancel adding mount" : "Ακύρωση προσθήκης σημείου προσάρτησης",
- "Cancel" : "Άκυρο",
- "Add mount" : "Προσθήκη σημείου προσάρτησης",
- "ExApp container mounts" : "Σημεία προσάρτησης ExApp container",
- "No mounts defined" : "Δεν έχουν οριστεί σημεία προσάρτησης",
- "Description" : "Περιγραφή",
- "View in store" : "Προβολή στο κέντρο εφαρμογών",
- "Visit website" : "Επισκεφθείτε την ιστοσελίδα",
- "Usage documentation" : "Τεκμηρίωση χρήσης",
- "Admin documentation" : "Τεκμηρίωση Διαχειριστή",
- "Developer documentation" : "Τεκμηρίωση προγραμματιστή",
- "Details" : "Λεπτομέρειες",
- "All" : "Όλες",
- "Limit app usage to groups" : "Περιορίστε τη χρήση της εφαρμογής σε ομάδες",
- "No results" : "Κανένα αποτέλεσμα",
- "Update to {version}" : "Ενημέρωση στην έκδοση {version}",
- "Deploy options" : "Επιλογές ανάπτυξης",
- "Default Deploy daemon is not accessible" : "Το προεπιλεγμένο Deploy daemon δεν είναι προσβάσιμο",
- "Delete data on remove" : "Διαγραφή δεδομένων κατά την αφαίρεση",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Αυτή η εφαρμογή δεν έχει ελάχιστη έκδοση του Nextcloud ανατεθειμένη. Αυτό θα αποτελεί σφάλμα στο μέλλον.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Αυτή η εφαρμογή δεν έχει μέγιστη έκδοση του Nextcloud ανατεθειμένη. Αυτό θα αποτελεί σφάλμα στο μέλλον.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Αυτή η εφαρμογή δεν μπορεί να εγκατασταθεί διότι δεν εκπληρώνονται οι ακόλουθες εξαρτήσεις:",
- "Latest updated" : "Τελευταία ενημέρωση",
- "Author" : "Δημιουργός",
- "Categories" : "Κατηγορίες",
- "Resources" : "Πηγές",
- "Documentation" : "Τεκμηρίωση",
- "Interact" : "Αλληλεπίδραση",
- "Report a bug" : "Αναφορά σφάλματος",
- "Request feature" : "Αίτημα δυνατότητας",
- "Ask questions or discuss" : "Κάνε ερωτήσεις ή συζήτηση",
- "Rate the app" : "Βαθμολόγησε την εφαρμογή",
- "Rate" : "Αξιολογήστε",
- "Changelog" : "Αρχείο καταγραφής αλλαγών",
- "Google Chrome for Android" : "Google Chrome για Android",
- "{productName} iOS app" : "{productName} εφαρμογή iOS",
- "{productName} Android app" : "{productName} εφαρμογή Android",
- "{productName} Talk for iOS" : "{productName} Talk για iOS",
- "{productName} Talk for Android" : "{productName} Talk για Android",
- "Sync client" : "Συγχρονισμός πελάτη",
- "This session" : "Αυτή η συνεδρία",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Όνομα συσκευής",
- "Cancel renaming" : "Ακύρωση μετονομασίας",
- "Save new name" : "Αποθήκευση νέου ονόματος",
- "Marked for remote wipe" : "Επισημάνθηκε για απομακρυσμένη εκκαθάριση",
- "Device settings" : "Ρυθμίσεις συσκευής",
- "Allow filesystem access" : "Επιτρέπεται η πρόσβαση στο σύστημα αρχείων",
- "Rename" : "Μετονομασία",
- "Revoke" : "Ανάκληση",
- "Wipe device" : "Εκκαθάριση συσκευής",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Η κατάργηση αυτού του αναγνωριστικού ενδέχεται να αποτρέψει την εκκαθάριση της συσκευής σας αν δεν έχει ξεκινήσει ακόμα.",
- "Device" : "Συσκευή",
- "Last activity" : "Τελευταία δραστηριότητα",
- "Devices & sessions" : "Συσκευές & συνδέσεις",
- "Web, desktop and mobile clients currently logged in to your account." : "Έχουν συνδεθεί στον λογαριασμό σας εφαρμογές από περιηγητή ιστού, υπολογιστή και εφαρμογή τηλεφώνου.",
- "Error while creating device token" : "Σφάλμα κατά τη δημιουργία διακριτικού συσκευής",
- "App name" : "Όνομα εφαρμογής",
- "Create new app password" : "Δημιουργία νέου συνθηματικού εφαρμογής",
"App password copied!" : "Το συνθηματικό εφαρμογής αντιγράφηκε!",
"Copy app password" : "Αντιγραφή συνθηματικού εφαρμογής",
"Login name copied!" : "Το όνομα σύνδεσης αντιγράφηκε!",
@@ -554,6 +462,7 @@
"Unable to update profile default setting" : "Δεν είναι δυνατή η ενημέρωση της προεπιλεγμένης ρύθμισης προφίλ",
"Profile" : "Προφίλ",
"Enable or disable profile by default for new accounts." : "Ενεργοποίηση ή απενεργοποίηση του προφίλ από προεπιλογή για νέους λογαριασμούς.",
+ "Password confirmation is required" : "Απαιτείται επιβεβαίωση συνθηματικού",
"Failed to save setting" : "Αποτυχία αποθήκευσης ρύθμισης",
"{app}'s declarative setting field: {name}" : "Δηλωτικό πεδίο ρύθμισης της {app}: {name}",
"Unable to update server side encryption config" : "Δεν είναι δυνατή η ενημέρωση της διαμόρφωσης κρυπτογράφησης από τον διακομιστή",
@@ -575,202 +484,11 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Είναι πάντοτε καλό να δημιουργείτε τακτικά αντίγραφα ασφαλείας των δεδομένων σας, στην περίπτωση της κρυπτογράφησης βεβαιωθείτε ότι έχετε λάβει αντίγραφο ασφαλείας των κλειδιών κρυπτογράφησης παράλληλα με τα δεδομένα σας.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Ανατρέξτε στην τεκμηρίωση του διαχειριστή για το πώς να κρυπτογραφήσετε χειροκίνητα τα υπάρχοντα αρχεία.",
"This is the final warning: Do you really want to enable encryption?" : "Αυτή είναι η τελευταία προειδοποίηση: Θέλετε πραγματικά να ενεργοποιήσετε την κρυπτογράφηση;",
- "Failed to remove group \"{group}\"" : "Αποτυχία κατά την αφαίρεση της ομάδας \"{group}\"",
"Please confirm the group removal" : "Παρακαλώ επιβεβαιώστε την αφαίρεση της ομάδας",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Πρόκειται να αφαιρέσετε την ομάδα \"{group}\". Οι λογαριασμοί ΔΕΝ θα διαγραφούν.",
+ "Cancel" : "Άκυρο",
+ "Confirm" : "Επιβεβαίωση",
"Submit" : "Υποβολή",
"Rename group" : "Μετονομασία ομάδας",
- "Remove group" : "Αφαίρεση ομάδας",
- "Current password" : "Τρέχον συνθηματικό",
- "New password" : "Νέο συνθηματικό",
- "Change password" : "Αλλαγή συνθηματικού",
- "Choose your profile picture" : "Επιλέξτε την εικόνα προφίλ σας",
- "Please select a valid png or jpg file" : "Παρακαλούμε επιλέξτε συμβατό αρχείο png ή jpg",
- "Error setting profile picture" : "Σφάλμα ορισμού εικόνας προφίλ",
- "Error cropping profile picture" : "Σφάλμα περικοπής εικόνας προφίλ",
- "Error saving profile picture" : "Σφάλμα αποθήκευσης εικόνας προφίλ",
- "Error removing profile picture" : "Σφάλμα αφαίρεσης εικόνας προφίλ",
- "Your profile picture" : "Η εικόνα του προφίλ σας",
- "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" : "Φωτογραφία που παρέχεται από τον πρωτότυπο λογαριασμό",
- "Set as profile picture" : "Ορισμός ως εικόνας προφίλ",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Λάβετε υπόψη ότι μπορεί να χρειαστούν έως και 24 ώρες για να ενημερωθεί παντού η εικόνα του προφίλ σας.",
- "Your biography. Markdown is supported." : "Το βιογραφικό σας. Υποστηρίζεται Markdown.",
- "Unable to update date of birth" : "Δεν είναι δυνατή η ενημέρωση της ημερομηνίας γέννησης",
- "Enter your date of birth" : "Εισάγετε την ημερομηνία γέννησής σας",
- "You are using {s}{usage}{/s}" : "Χρησιμοποιείτε {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Χρησιμοποιείτε {s}{usage}{/s} από {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:",
- "Your full name" : "Το ονοματεπώνυμο σας",
- "Email options" : "Επιλογές email",
- "Options for additional email address {index}" : "Επιλογές για πρόσθετη διεύθυνση email {index}",
- "Remove primary email" : "Κατάργηση κύριου email",
- "Delete email" : "Διαγραφή email",
- "This address is not confirmed" : "Αυτή η διεύθυνση email δεν έχει επιβεβαιωθεί",
- "Unset as primary email" : "Κατάργηση ορισμού ως κύριου email",
- "Set as primary email" : "Ορισμός ως κύριου email",
- "Additional email address {index}" : "Πρόσθετη διεύθυνση email {index}",
- "Unable to delete primary email address" : "Δεν είναι δυνατή η διαγραφή της κύριας διεύθυνσης email",
- "Unable to update primary email address" : "Δεν είναι δυνατή η ενημέρωση της κύριας διεύθυνσης email",
- "Unable to add additional email address" : "Δεν είναι δυνατή η προσθήκη πρόσθετης διεύθυνσης email",
- "Unable to update additional email address" : "Δεν είναι δυνατή η ενημέρωση της πρόσθετης διεύθυνσης email",
- "Unable to delete additional email address" : "Δεν είναι δυνατή η διαγραφή της πρόσθετης διεύθυνσης email",
- "Primary email for password reset and notifications" : "Κύριο email για επαναφορά συνθηματικού και ειδοποιήσεις",
- "No email address set" : "Δεν ορίστηκε διεύθυνση email",
- "Your handle" : "Το handle σας",
- "Derived from your locale ({weekDayName})" : "Προέρχεται από τις ρυθμίσεις τοποθεσίας σας ({weekDayName})",
- "Unable to update first day of week" : "Δεν είναι δυνατή η ενημέρωση της πρώτης ημέρας της εβδομάδας",
- "Day to use as the first day of week" : "Ημέρα που χρησιμοποιείται ως πρώτη ημέρα της εβδομάδας",
- "Your headline" : "Ο τίτλος σας",
- "Unable to update language" : "Δεν είναι δυνατή η ενημέρωση της γλώσσας",
- "Languages" : "Γλώσσες",
- "Help translate" : "Βοηθήστε στη μετάφραση",
- "No language set" : "Δεν ορίστηκε γλώσσα",
- "Unable to update locale" : "Δεν είναι δυνατή η ενημέρωση των ρυθμίσεων τοποθεσίας",
- "Locales" : "Ρυθμίσεις τοποθεσίας",
- "Week starts on {firstDayOfWeek}" : "Η εβδομάδα ξεκινά την {firstDayOfWeek}",
- "No locale set" : "Δεν ορίστηκαν ρυθμίσεις τοποθεσίας",
- "Your city" : "Η πόλη σας",
- "Your organisation" : "Ο οργανισμός σας",
- "Your phone number" : "Ο αριθμός τηλεφώνου σας",
- "Edit your Profile visibility" : "Επεξεργασία της ορατότητας του Προφίλ σας",
- "Unable to update profile enabled state" : "Δεν είναι δυνατή η ενημέρωση της κατάστασης του προφίλ",
- "Enable profile" : "Ενεργοποίηση προφίλ",
- "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." : "Η πιο περιοριστική ρύθμιση ορατότητας ή εύρους τηρείται στο Προφίλ σας. Για παράδειγμα, εάν η ορατότητα έχει οριστεί σε \"Εμφάνιση σε όλους\" και το εύρος έχει οριστεί σε \"Ιδιωτικό\", το \"Ιδιωτικό\" τηρείται.",
- "Unable to update visibility of {displayId}" : "Δεν είναι δυνατή η ενημέρωση της ορατότητας του {displayId}",
- "she/her" : "αυτή/της",
- "he/him" : "αυτός/του",
- "they/them" : "αυτοί/τους",
- "Your role" : "Ο ρόλος σας",
- "Your X (formerly Twitter) handle" : "Το handle σας στο X (πρώην Twitter)",
- "Your website" : "Η ιστοσελίδα σας",
- "Invalid value" : "Μη έγκυρη τιμή",
- "Unable to update {property}" : "Δεν είναι δυνατή η ενημέρωση του {property}",
- "No {property} set" : "Δεν ορίστηκε {property}",
- "Change scope level of {property}, current scope is {scope}" : "Αλλαγή επιπέδου εύρους του {property}, το τρέχον εύρος είναι {scope}",
- "Unable to update federation scope of the primary {property}" : "Δεν είναι δυνατή η ενημέρωση του εύρους ομοσπονδίας του κύριου {property}",
- "Unable to update federation scope of additional {property}" : "Δεν είναι δυνατή η ενημέρωση του εύρους ομοσπονδίας του πρόσθετου {property}",
- "Add additional email" : "Προσθέστε επιπλέον email",
- "Add" : "Προσθήκη",
- "Create" : "Δημιουργία",
- "Change" : "Αλλαγή",
- "Delete" : "Διαγραφή",
- "Reshare" : "Επαναδιαμοιρασμός",
- "Default language" : "Προεπιλεγμένη γλώσσα",
- "Common languages" : "Κοινές γλώσσες",
- "Other languages" : "Άλλες γλώσσες",
- "Password change is disabled because the master key is disabled" : "Η αλλαγή συνθηματικού είναι απενεργοποιημένη επειδή το κεντρικό κλειδί είναι απενεργοποιημένο",
- "No accounts" : "Δεν υπάρχουν λογαριασμοί",
- "Loading accounts …" : "Φόρτωση λογαριασμών …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Λίστα λογαριασμών. Αυτή η λίστα δεν αποδίδεται πλήρως για λόγους απόδοσης. Οι λογαριασμοί θα αποδίδονται καθώς πλοηγείστε στη λίστα.",
- "Manager" : "Διαχειριστής",
- "Set line manager" : "Ορισμός γραμμικού διαχειριστή",
- "Account name will be autogenerated" : "Το όνομα λογαριασμού θα δημιουργηθεί αυτόματα",
- "Account name (required)" : "Όνομα λογαριασμού (απαιτείται)",
- "New account" : "Νέος λογαριασμός",
- "Display name" : "Εμφανιζόμενο όνομα",
- "Either password or email is required" : "Απαιτείται είτε συνθηματικό είτε email",
- "Password (required)" : "Συνθηματικό (απαιτείται)",
- "Email (required)" : "Email (απαιτείται)",
- "Email" : "Email",
- "Member of the following groups (required)" : "Μέλος των ακόλουθων ομάδων (απαιτείται)",
- "Member of the following groups" : "Μέλος των ακόλουθων ομάδων",
- "Set account groups" : "Ορισμός ομάδων λογαριασμού",
- "Admin of the following groups" : "Διαχειριστής των ακόλουθων ομάδων",
- "Set account as admin for …" : "Ορισμός λογαριασμού ως διαχειριστή για …",
- "Quota" : "Χωρητικότητα",
- "Set account quota" : "Ορισμός χωρητικότητας λογαριασμού",
- "Language" : "Γλώσσα",
- "Set default language" : "Ορισμός προεπιλεγμένης γλώσσας",
- "Add new account" : "Προσθήκη νέου λογαριασμού",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} λογαριασμός …","{userCount} λογαριασμοί …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} λογαριασμός","{userCount} λογαριασμοί"],
- "Total rows summary" : "Συνολική σύνοψη γραμμών",
- "Scroll to load more rows" : "Κυλήστε για να φορτώσετε περισσότερες γραμμές",
- "Password or insufficient permissions message" : "Συνθηματικό ή μήνυμα ανεπαρκών δικαιωμάτων",
- "Avatar" : "Εικόνα προφίλ",
- "Account name" : "Όνομα λογαριασμού",
- "Group admin for" : "Ομαδα διαχειριστή για",
- "Account backend" : "Σύστημα υποστήριξης λογαριασμού",
- "Storage location" : "Τοποθεσία αποθηκευτικού χώρου",
- "First login" : "Πρώτη σύνδεση",
- "Last login" : "Τελευταία είσοδος",
- "Account actions" : "Δραστηριότητα λογαριασμού",
- "{size} used" : "{size} που χρησιμοποιείται",
- "Delete account" : "Διαγραφή λογαριασμού",
- "Disconnect all devices and delete local data" : "Αποσύνδεση όλων των συσκευών και διαγραφή τοπικών δεδομένων",
- "Disable account" : "Απενεργοποίηση λογαριασμού",
- "Enable account" : "Ενεργοποίηση λογαριασμού",
- "Resend welcome email" : "Επαναποστολή αλληλογραφίας καλωσορίσματος",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Σε περίπτωση απώλειας συσκευής ή αποχώρησης από τον οργανισμό, μπορεί να γίνει εκκαθάριση των δεδομένων του Nextcloud από όλες τις συσκευές σε σχέση με το {userid}. Λειτουργεί μόνο εάν οι συσκευές είναι συνδεμένες στο ίντερνετ.",
- "Remote wipe of devices" : "Απομακρυσμένη εκκαθάριση συσκευών",
- "Wipe {userid}'s devices" : "Εκκαθάριση συσκευών του {userid}",
- "Wiped {userid}'s devices" : "Εκκαθάριση συσκευών του {userid}",
- "Failed to update line manager" : "Αποτυχία ενημέρωσης γραμμικού διαχειριστή",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Διαγραφή λογαριασμού του {userid} και όλων των προσωπικών αρχείων, δεδομένων εφαρμογών, κτλ.",
- "Account deletion" : "Διαγραφή λογαριασμού",
- "Delete {userid}'s account" : "Διαγραφή λογαριασμού του {userid}",
- "Display name was successfully changed" : "Το εμφανιζόμενο όνομα άλλαξε επιτυχώς",
- "Password can't be empty" : "Το συνθηματικό δεν μπορεί να είναι κενό",
- "Password was successfully changed" : "Το συνθηματικό άλλαξε επιτυχώς",
- "Email can't be empty" : "Το email δεν μπορεί να είναι κενό",
- "Email was successfully changed" : "Το email άλλαξε επιτυχώς",
- "Welcome mail sent!" : "Απεστάλη το μήνυμα καλωσορίσματος!",
- "Loading account …" : "Φόρτωση λογαριασμού …",
- "Change display name" : "Αλλαγή εμφανιζόμενου ονόματος",
- "Set new password" : "Ορισμός νέου συνθηματικού",
- "You do not have permissions to see the details of this account" : "Δεν έχετε δικαιώματα για να δείτε τις λεπτομέρειες αυτού του λογαριασμού",
- "Set new email address" : "Ορισμός νέας διεύθυνσης email",
- "Add account to group" : "Προσθήκη λογαριασμού σε ομάδα",
- "Set account as admin for" : "Ορισμός λογαριασμού ως διαχειριστή για",
- "Select account quota" : "Επιλογή χωρητικότητας λογαριασμού",
- "Set the language" : "Ορισμός γλώσσας",
- "Toggle account actions menu" : "Εναλλαγή μενού ενεργειών λογαριασμού",
- "Done" : "Ολοκληρώθηκε",
- "Edit" : "Επεξεργασία",
- "Account management settings" : "Ρυθμίσεις διαχείρισης λογαριασμών",
- "Visibility" : "Ορατότητα",
- "Show language" : "Εμφάνιση γλώσσας",
- "Show account backend" : "Εμφάνιση συστήματος υποστήριξης λογαριασμού",
- "Show storage path" : "Εμφάνιση διαδρομής αποθήκευσης",
- "Show first login" : "Εμφάνιση πρώτης σύνδεσης",
- "Show last login" : "Εμφάνιση τελευταίας σύνδεσης",
- "Sorting" : "Ταξινόμηση",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Η διαμόρφωση του συστήματος επιβάλλει την ταξινόμηση των ομάδων κατά όνομα. Αυτό απενεργοποιεί επίσης την εμφάνιση του αριθμού των μελών.",
- "Group list sorting" : "Ταξινόμηση λίστας ομάδων",
- "By member count" : "Κατά αριθμό μελών",
- "By name" : "Κατά όνομα",
- "Send email" : "Αποστολή email",
- "Send welcome email to new accounts" : "Αποστολή email καλωσορίσματος σε νέους λογαριασμούς",
- "Defaults" : "Προεπιλογές",
- "Default quota" : "Προεπιλεγμένη χωρητικότητα",
- "Select default quota" : "Επιλογή προεπιλεγμένης χωρητικότητας",
- "Server error while trying to complete WebAuthn device registration" : "Σφάλμα διακομιστή κατά την εγγραφή συσκευής WebAuthn",
- "Passwordless authentication requires a secure connection." : "Η σύνδεση χωρίς συνθηματικό απαιτεί ασφαλή σύνδεση.",
- "Add WebAuthn device" : "Προσθήκη συσκευής WebAuthn",
- "Please authorize your WebAuthn device." : "Παρακαλώ εξουσιοδοτήστε την συσκευή σας WebAuthn.",
- "Adding your device …" : "Προσθήκη της συσκευής σας …",
- "Unnamed device" : "Ανώνυμη συσκευή",
- "Passwordless Authentication" : "Πιστοποίηση χωρίς συνθηματικό",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Ρυθμίστε τον λογαριασμό σας για πιστοποίηση χωρίς κωδικό ακολουθώντας τα πρότυπα του FIDO2.",
- "No devices configured." : "Καμιά συσκευή δεν ρυθμίστηκε.",
- "The following devices are configured for your account:" : "Οι ακόλουθες συσκευές ρυθμίστηκαν για τον λογαριασμό σας:",
- "Your browser does not support WebAuthn." : "Ο περιηγητής σας δεν υποστηρίζει το WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Ως διαχειριστής μπορείτε να ρυθμίσετε λεπτομερώς την συμπεριφορά διαμοιρασμού.\nΠαρακαλούμε ανατρέξτε στην τεκμηρίωση για περισσότερες πληροφορίες.",
- "You need to enable the File sharing App." : "Πρέπει να ενεργοποιήσετε την εφαρμογή Διαμοιρασμός Αρχείων.",
- "App Store" : "Κατάστημα εφαρμογών",
- "Loading app list" : "Φόρτωση λίστας εφαρμογών",
- "Loading categories" : "Φόρτωση κατηγοριών",
- "Developer documentation ↗" : "Τεκμηρίωση προγραμματιστή ↗",
- "Version {version}, {license}-licensed" : "Έκδοση {version}, άδεια χρήσης {license}",
- "Version {version}" : "Έκδοση {version}",
- "All accounts" : "Όλοι οι λογαριασμοί",
- "Admins" : "Διαχειριστές",
- "Account group: {group}" : "Ομάδα λογαριασμού: {group}",
- "Account management" : "Διαχείριση λογαριασμών",
"Sending…" : "Γίνεται αποστολή…",
"Email sent" : "Το Email απεστάλη",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Για λόγους απόδοσης, όταν ενεργοποιείτε την κρυπτογράφηση σε έναν διακομιστή Nextcloud, μόνο τα νέα και τα τροποποιημένα αρχεία κρυπτογραφούνται.",
@@ -780,6 +498,7 @@
"Date of birth" : "Ημερομηνία γέννησης",
"Full name" : "Πλήρες όνομα",
"Additional email" : "Πρόσθετες διευθύνσεις email",
+ "Email" : "Email",
"Fediverse (e.g. Mastodon)" : "Fediverse (π.χ. Mastodon)",
"Headline" : "Τίτλος",
"Organisation" : "Οργανισμός",
@@ -789,6 +508,7 @@
"X (formerly Twitter)" : "X (πρώην Twitter)",
"Website" : "Ιστοσελίδα",
"Profile visibility" : "Ορατότητα προφίλ",
+ "Language" : "Γλώσσα",
"Locale" : "Ρυθμίσεις τοποθεσίας",
"First day of week" : "Πρώτη ημέρα της εβδομάδας",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Δεν είναι διαθέσιμη, καθώς αυτή η ιδιότητα απαιτείται για βασικές λειτουργίες, συμπεριλαμβανομένης της κοινής χρήσης αρχείων και των προσκλήσεων ημερολογίου",
@@ -806,6 +526,7 @@
"Show to logged in accounts only" : "Εμφάνιση μόνο σε συνδεδεμένους λογαριασμούς",
"Hide" : "Απόκρυψη",
"Manually installed apps cannot be updated" : "Οι εγκατεστημένες εφαρμογές χειροκίνητα δεν μπορούν να ενημερωθούν",
+ "Update to {version}" : "Ενημέρωση στην έκδοση {version}",
"{progress}% Deploying …" : "{progress}% Ανάπτυξη …",
"{progress}% Initializing …" : "{progress}% Αρχικοποίηση …",
"Health checking" : "Έλεγχος υγείας",
@@ -815,6 +536,7 @@
"Allow untested app" : "Επιτρέψτε μη δοκιμασμένες εφαρμογές",
"The app will be downloaded from the App Store" : "Θα γίνει λήψη της εφαρμογής από το App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Η εφαρμογή δεν είναι συμβατή με την έκδοση Nextcloud σας. Εάν συνεχίσετε μπορείτε να εγκαταστήσετε την εφαρμογή. Η εφαρμογή ίσως να μην λειτουργεί σωστά.",
+ "{size} used" : "{size} που χρησιμοποιείται",
"Unknown" : "Άγνωστο",
"Never" : "Ποτέ",
"Could not register device: Network error" : "Δεν ήταν δυνατή η εγγραφή της συσκευής: Σφάλμα δικτύου",
@@ -833,8 +555,10 @@
"Could not set group sorting" : "Δεν ήταν δυνατός ο ορισμός της ταξινόμησης ομάδων",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Υπήρχαν πάρα πολλά αιτήματα από το δίκτυό σας. Δοκιμάστε ξανά αργότερα ή επικοινωνήστε με τον διαχειριστή σας εάν πρόκειται για σφάλμα.",
"Error" : "Σφάλμα",
+ "Default quota" : "Προεπιλεγμένη χωρητικότητα",
"Account documentation" : "Τεκμηρίωση λογαριασμού",
"Administration documentation" : "Τεκμηρίωση Διαχειριστή",
+ "Documentation" : "Τεκμηρίωση",
"Forum" : "Φόρουμ",
"Nextcloud help & privacy resources" : "Βοήθεια και πόροι απορρήτου του Nextcloud",
"General documentation" : "Γενική τεκμηρίωση",
@@ -857,6 +581,7 @@
"SMTP Password" : "Συνθηματικό SMTP",
"Save" : "Αποθήκευση",
"Test and verify email settings" : "Δοκιμή και επαλήθευση τις ρυθμίσεων email",
+ "Send email" : "Αποστολή email",
"Security & setup warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Είναι σημαντικό για την ασφάλεια και την απόδοση του συστήματός σας ότι όλα έχουν ρυθμιστεί σωστά. Για να σας βοηθήσουμε, κάνουμε μερικούς αυτόματους ελέγχους. Για περισσότερες πληροφορίες, ανατρέξτε στη σχετική τεκμηρίωση.",
"All checks passed." : "Όλοι οι έλεγχοι επιτυχείς.",
@@ -876,50 +601,14 @@
"Use a second factor besides your password to increase security for your account." : "Χρησιμοποιείστε έναν δεύτερο παράγοντα εκτός του συνθηματικού για να αυξήσετε την ασφάλεια του λογαριασμού σας.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Εάν χρησιμοποιείτε εφαρμογές τρίτων για σύνδεση στο Nextcloud, βεβαιωθείτε ότι έχετε δημιουργήσει και διαμορφώσει έναν κωδικό πρόσβασης εφαρμογής για κάθε έναν προτού ενεργοποιήσετε τον έλεγχο ταυτότητας δεύτερου παράγοντα.",
"Logged in account must be a subadmin" : "Ο συνδεδεμένος λογαριασμός πρέπει να είναι υποδιαχειριστής",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Για να επιτρέψετε αυτόν τον έλεγχο, πρέπει να βεβαιωθείτε ότι ο διακομιστής σας μπορεί να συνδεθεί με τον εαυτό του. Για αυτό, πρέπει να μπορεί να επιλύσει και να συνδεθεί με τουλάχιστον ένα από τα `trusted_domains` ή το `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Λείπει το προαιρετικό ευρετήριο \"%s\" στον πίνακα \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Η βάση δεδομένων λείπει κάποια ευρετήρια. Λόγω του γεγονότος ότι η προσθήκη ευρετηρίων σε μεγάλους πίνακες μπορεί να πάρει κάποιο χρόνο, δεν προστέθηκαν αυτόματα. Εκτελώντας την εντολή \"occ db:add-missing-indices\", τα ευρετήρια που λείπουν μπορούν να προστεθούν χειροκίνητα ενώ η εφαρμογή συνεχίζει να λειτουργεί. Μόλις προστεθούν τα ευρετήρια, τα ερωτήματα σε αυτούς τους πίνακες γίνονται συνήθως πολύ πιο γρήγορα.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Για να επιτρέψετε αυτόν τον έλεγχο, πρέπει να βεβαιωθείτε ότι ο διακομιστής σας μπορεί να συνδεθεί με τον εαυτό του. Επομένως, πρέπει να μπορεί να επιλύσει και να συνδεθεί με τουλάχιστον ένα από τα `trusted_domains` ή το `overwrite.cli.url`. Αυτή η αποτυχία μπορεί να οφείλεται σε αντιστοιχία DNS από την πλευρά του διακομιστή ή σε κανόνα τείχους προστασίας εξερχομένων.",
"File locking" : "Κλείδωμα αρχείων",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Το κλείδωμα αρχείων σε συναλλαγές είναι απενεργοποιημένο, κάτι που μπορεί να οδηγήσει σε προβλήματα με συνθήκες ανταγωνισμού. Ενεργοποιήστε το \"filelocking.enabled\" στο config.php για να αποφύγετε αυτά τα προβλήματα.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Δεν ήταν δυνατός ο έλεγχος για υποστήριξη JavaScript μέσω κανενός από τα `trusted_domains` ή το `overwrite.cli.url`. Αυτό μπορεί να οφείλεται σε αντιστοιχία DNS από την πλευρά του διακομιστή ή σε κανόνα τείχους προστασίας εξερχομένων. Παρακαλώ ελέγξτε χειροκίνητα αν ο διακομιστής σας εξυπηρετεί αρχεία `.mjs` χρησιμοποιώντας τον τύπο MIME του JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "Το όριο μνήμης της PHP είναι κάτω από την προτεινόμενη τιμή των %s.",
"for WebAuthn passwordless login" : "για σύνδεση χωρίς συνθηματικό με WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "για σύνδεση χωρίς συνθηματικό με WebAuthn και αποθήκευση SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Αυτή τη στιγμή χρησιμοποιείτε την PHP %s. Η PHP 8.0 είναι πλέον παρωχημένη στο Nextcloud 27. Το Nextcloud 28 μπορεί να απαιτεί τουλάχιστον την PHP 8.1. Παρακαλώ αναβαθμίστε σε μία από τις επίσημα υποστηριζόμενες εκδόσεις της PHP που παρέχονται από την PHP Group το συντομότερο δυνατό.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Χρησιμοποιείται η έκδοση MariaDB \"%s\". Το Nextcloud 21 και νεότερες εκδόσεις δεν υποστηρίζουν αυτήν την έκδοση και απαιτούν MariaDB 10.2 ή νεότερη.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Χρησιμοποιείται η έκδοση MySQL \"%s\". Το Nextcloud 21 και νεότερες εκδόσεις δεν υποστηρίζουν αυτήν την έκδοση και απαιτούν MySQL 8.0 ή MariaDB 10.2 ή νεότερη.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Χρησιμοποιείται η έκδοση PostgreSQL \"%s\". Το Nextcloud 21 και νεότερες εκδόσεις δεν υποστηρίζουν αυτήν την έκδοση και απαιτούν PostgreSQL 9.6 ή νεότερη.",
- "Speech-To-Text" : "Ομιλία-σε-Κείμενο",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Η λειτουργία Ομιλία-σε-Κείμενο μπορεί να υλοποιηθεί από διαφορετικές εφαρμογές. Εδώ μπορείτε να ορίσετε ποια εφαρμογή θα χρησιμοποιηθεί.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Καμία από τις εγκατεστημένες εφαρμογές σας δεν παρέχει λειτουργικότητα Ομιλία-σε-Κείμενο",
- "None of your currently installed apps provide Text processing functionality" : "Καμία από τις εγκατεστημένες εφαρμογές σας δεν παρέχει λειτουργικότητα Επεξεργασίας Κειμένου",
- "Set default expiration date for shares" : "Ορισμός προεπιλεγμένης ημερομηνίας λήξης για τα κοινόχρηστα",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Επιτρέψτε την αυτόματη συμπλήρωση ονόματος χρήστη στο παράθυρο διαμοιρασμού και την πρόσβαση στο βιβλίο διευθύνσεων του συστήματος",
- "Your biography" : "Το βιογραφικό σας",
- "You are using <strong>{usage}</strong>" : "Χρησιμοποιείτε <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Χρησιμοποιείτε <strong>{usage}</strong> από <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Ορισμός διαχειριστή χρήστη",
- "Username will be autogenerated" : "Το όνομα χρήστη θα δημιουργηθεί αυτόματα",
- "Username (required)" : "Όνομα χρήστη (απαιτείται)",
- "New user" : "Νέος χρήστης",
- "Groups (required)" : "Ομάδες (απαιτείται)",
- "Set user groups" : "Ορισμός ομάδων χρήστη",
- "Administered groups" : "Ομάδες διαχείρισης",
- "Set user as admin for …" : "Ορισμός χρήστη ως διαχειριστή για …",
- "Set user quota" : "Ορισμός ποσόστωσης χρήστη",
- "Add new user" : "Προσθήκη νέου χρήστη",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} χρήστης …","{userCount} χρήστες …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} χρήστης","{userCount} χρήστες"],
- "Loading users …" : "Φόρτωση χρηστών …",
- "Username" : "Όνομα χρήστη",
- "User backend" : "Σύστημα υποστήριξης χρήστη",
- "User actions" : "Ενέργειες χρήστη",
- "Add user to group" : "Προσθήκη χρήστη στην ομάδα",
- "Server error while trying to add WebAuthn device" : "Σφάλμα διακομιστή κατά την προσθήκη συσκευής WebAuthn",
- "Name your device" : "Ονομάστε τη συσκευή σας",
- "Active accounts" : "Ενεργοί λογαριασμοί",
- "Follow us on Twitter" : "Ακολουθήστε μας στο Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Για να επιτρέψετε αυτόν τον έλεγχο, πρέπει να βεβαιωθείτε ότι ο διακομιστής σας μπορεί να συνδεθεί με τον εαυτό του. Επομένως, πρέπει να μπορεί να επιλύσει και να συνδεθεί με τουλάχιστον ένα από τα `trusted_domains` ή το `overwrite.cli.url`. Αυτή η αποτυχία μπορεί να οφείλεται σε αντιστοιχία DNS από την πλευρά του διακομιστή ή σε κανόνα τείχους προστασίας εξερχομένων.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Ανιχνεύθηκε η έκδοση PostgreSQL \"%s\". Προτείνεται PostgreSQL >=12 και <=16 για την καλύτερη απόδοση, σταθερότητα και λειτουργικότητα με αυτήν την έκδοση του Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Η επικεφαλίδα HTTP `%1$s` δεν περιέχει `%2$s`. Αυτό αποτελεί πιθανό κίνδυνο ασφαλείας ή απορρήτου, καθώς συνιστάται η προσαρμογή αυτής της ρύθμισης ανάλογα.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Ανιχνεύθηκε η έκδοση PostgreSQL \"%s\". Προτείνεται PostgreSQL >=12 και <=16 για την καλύτερη απόδοση, σταθερότητα και λειτουργικότητα με αυτήν την έκδοση του Nextcloud.",
+ "Set default expiration date for shares" : "Ορισμός προεπιλεγμένης ημερομηνίας λήξης για τα κοινόχρηστα"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/en_GB.js b/apps/settings/l10n/en_GB.js
index 24cd911da25..f5c0842220d 100644
--- a/apps/settings/l10n/en_GB.js
+++ b/apps/settings/l10n/en_GB.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP headers",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS.",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "Architecture",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!",
+ "Task Processing pickup speed" : "Task Processing pickup speed",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["No scheduled tasks in the last %n hour.","No scheduled tasks in the last %n hours."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["The task pickup speed has been ok in the last %n hour.","The task pickup speed has been ok in the last %n hours."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background.","The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background."],
"Temporary space available" : "Temporary space available",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "The PHP function \"disk_free_space\" is disabled, preventing the system from checking for sufficient space in the temporary directories.",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Could not load section content from app store.",
"Loading" : "Loading",
"Fetching the latest news…" : "Fetching the latest news…",
- "Carousel" : "Carousel",
- "Previous slide" : "Previous slide",
- "Next slide" : "Next slide",
- "Choose slide to display" : "Choose slide to display",
- "{index} of {total}" : "{index} of {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Deploy Daemon",
- "Type" : "Type",
- "Display Name" : "Display Name",
- "GPUs support" : "GPUs support",
- "Compute device" : "Compute device",
- "Advanced deploy options" : "Advanced deploy options",
- "Edit ExApp deploy options before installation" : "Edit ExApp deploy options before installation",
- "Configured ExApp deploy options. Can be set only during installation" : "Configured ExApp deploy options. Can be set only during installation",
- "Learn more" : "Learn more",
- "Environment variables" : "Environment variables",
- "ExApp container environment variables" : "ExApp container environment variables",
- "No environment variables defined" : "No environment variables defined",
- "Mounts" : "Mounts",
- "Define host folder mounts to bind to the ExApp container" : "Define host folder mounts to bind to the ExApp container",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Must exist on the Deploy daemon host prior to installing the ExApp",
- "Host path" : "Host path",
- "Container path" : "Container path",
- "Read-only" : "Read-only",
- "Remove mount" : "Remove mount",
- "New mount" : "New mount",
- "Enter path to host folder" : "Enter path to host folder",
- "Enter path to container folder" : "Enter path to container folder",
- "Toggle read-only mode" : "Toggle read-only mode",
- "Confirm adding new mount" : "Confirm adding new mount",
- "Confirm" : "Confirm",
- "Cancel adding mount" : "Cancel adding mount",
- "Cancel" : "Cancel",
- "Add mount" : "Add mount",
- "ExApp container mounts" : "ExApp container mounts",
- "No mounts defined" : "No mounts defined",
- "Description" : "Description",
- "View in store" : "View in store",
- "Visit website" : "Visit website",
- "Usage documentation" : "Usage documentation",
- "Admin documentation" : "Admin documentation",
- "Developer documentation" : "Developer documentation",
- "Details" : "Details",
- "All" : "All",
- "Limit app usage to groups" : "Limit app usage to groups",
- "No results" : "No results",
- "Update to {version}" : "Update to {version}",
- "Deploy options" : "Deploy options",
- "Default Deploy daemon is not accessible" : "Default Deploy daemon is not accessible",
- "Delete data on remove" : "Delete data on remove",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will cause an error in the future.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will cause an error in the future.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:",
- "Latest updated" : "Latest updated",
- "Author" : "Author",
- "Categories" : "Categories",
- "Resources" : "Resources",
- "Documentation" : "Documentation",
- "Interact" : "Interact",
- "Report a bug" : "Report a bug",
- "Request feature" : "Request feature",
- "Ask questions or discuss" : "Ask questions or discuss",
- "Rate the app" : "Rate the app",
- "Rate" : "Rate",
- "Changelog" : "Changelog",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "Sync client" : "Sync client",
- "This session" : "This session",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Device name",
- "Cancel renaming" : "Cancel renaming",
- "Save new name" : "Save new name",
- "Marked for remote wipe" : "Marked for remote wipe",
- "Device settings" : "Device settings",
- "Allow filesystem access" : "Allow filesystem access",
- "Rename" : "Rename",
- "Revoke" : "Revoke",
- "Wipe device" : "Wipe device",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revoking this token might prevent the wiping of your device if it has not started the wipe yet.",
- "Device" : "Device",
- "Last activity" : "Last activity",
- "Devices & sessions" : "Devices & sessions",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, desktop and mobile clients currently logged in to your account.",
- "Error while creating device token" : "Error while creating device token",
- "App name" : "App name",
- "Create new app password" : "Create new app password",
"App password copied!" : "App password copied!",
"Copy app password" : "Copy app password",
"Login name copied!" : "Login name copied!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Unable to update profile default setting",
"Profile" : "Profile",
"Enable or disable profile by default for new accounts." : "Enable or disable profile by default for new accounts.",
+ "Password confirmation is required" : "Password confirmation is required",
"Failed to save setting" : "Failed to save setting",
"{app}'s declarative setting field: {name}" : "{app}'s declarative setting field: {name}",
"Unable to update server side encryption config" : "Unable to update server side encryption config",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Refer to the admin documentation on how to manually also encrypt existing files.",
"This is the final warning: Do you really want to enable encryption?" : "This is the final warning: Do you really want to enable encryption?",
- "Failed to remove group \"{group}\"" : "Failed to remove group \"{group}\"",
+ "Failed to delete group \"{group}\"" : "Failed to delete group \"{group}\"",
"Please confirm the group removal" : "Please confirm the group removal",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "You are about to remove the group \"{group}\". The accounts will NOT be deleted.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "You are about to delete the group \"{group}\". The accounts will NOT be deleted.",
+ "Cancel" : "Cancel",
+ "Confirm" : "Confirm",
"Submit" : "Submit",
"Rename group" : "Rename group",
- "Remove group" : "Remove group",
- "Current password" : "Current password",
- "New password" : "New password",
- "Change password" : "Change password",
- "Choose your profile picture" : "Choose your profile picture",
- "Please select a valid png or jpg file" : "Please select a valid png or jpg file",
- "Error setting profile picture" : "Error setting profile picture",
- "Error cropping profile picture" : "Error cropping profile picture",
- "Error saving profile picture" : "Error saving profile picture",
- "Error removing profile picture" : "Error removing profile picture",
- "Your profile picture" : "Your profile picture",
- "Upload profile picture" : "Upload profile picture",
- "Choose profile picture from Files" : "Choose profile picture from Files",
- "Remove profile picture" : "Remove profile picture",
- "The file must be a PNG or JPG" : "The file must be a PNG or JPG",
- "Picture provided by original account" : "Picture provided by original account",
- "Set as profile picture" : "Set as profile picture",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Please note that it can take up to 24 hours for your profile picture to be updated everywhere.",
- "Your biography. Markdown is supported." : "Your biography. Markdown is supported.",
- "Unable to update date of birth" : "Unable to update date of birth",
- "Enter your date of birth" : "Enter your date of birth",
- "You are using {s}{usage}{/s}" : "You are using {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "You are a member of the following groups:",
- "Your full name" : "Your full name",
- "Email options" : "Email options",
- "Options for additional email address {index}" : "Options for additional email address {index}",
- "Remove primary email" : "Remove primary email",
- "Delete email" : "Delete email",
- "This address is not confirmed" : "This address is not confirmed",
- "Unset as primary email" : "Unset as primary email",
- "Set as primary email" : "Set as primary email",
- "Additional email address {index}" : "Additional email address {index}",
- "Unable to delete primary email address" : "Unable to delete primary email address",
- "Unable to update primary email address" : "Unable to update primary email address",
- "Unable to add additional email address" : "Unable to add additional email address",
- "Unable to update additional email address" : "Unable to update additional email address",
- "Unable to delete additional email address" : "Unable to delete additional email address",
- "Primary email for password reset and notifications" : "Primary email for password reset and notifications",
- "No email address set" : "No email address set",
- "Your handle" : "Your handle",
- "Derived from your locale ({weekDayName})" : "Derived from your locale ({weekDayName})",
- "Unable to update first day of week" : "Unable to update first day of week",
- "Day to use as the first day of week" : "Day to use as the first day of week",
- "Your headline" : "Your headline",
- "Unable to update language" : "Unable to update language",
- "Languages" : "Languages",
- "Help translate" : "Help translate",
- "No language set" : "No language set",
- "Unable to update locale" : "Unable to update locale",
- "Locales" : "Locales",
- "Week starts on {firstDayOfWeek}" : "Week starts on {firstDayOfWeek}",
- "No locale set" : "No locale set",
- "Your city" : "Your city",
- "Your organisation" : "Your organisation",
- "Your phone number" : "Your phone number",
- "Edit your Profile visibility" : "Edit your Profile visibility",
- "Unable to update profile enabled state" : "Unable to update profile enabled state",
- "Enable profile" : "Enable profile",
- "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." : "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.",
- "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}",
- "she/her" : "she/her",
- "he/him" : "he/him",
- "they/them" : "they/them",
- "Your role" : "Your role",
- "Your X (formerly Twitter) handle" : "Your X (formerly Twitter) handle",
- "Your website" : "Your website",
- "Invalid value" : "Invalid value",
- "Unable to update {property}" : "Unable to update {property}",
- "No {property} set" : "No {property} set",
- "Change scope level of {property}, current scope is {scope}" : "Change scope level of {property}, current scope is {scope}",
- "Unable to update federation scope of the primary {property}" : "Unable to update federation scope of the primary {property}",
- "Unable to update federation scope of additional {property}" : "Unable to update federation scope of additional {property}",
- "Add additional email" : "Add additional email",
- "Add" : "Add",
- "Create" : "Create",
- "Change" : "Change",
- "Delete" : "Delete",
- "Reshare" : "Reshare",
- "Default language" : "Default language",
- "Common languages" : "Common languages",
- "Other languages" : "Other languages",
- "Password change is disabled because the master key is disabled" : "Password change is disabled because the master key is disabled",
- "No accounts" : "No accounts",
- "Loading accounts …" : "Loading accounts …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.",
- "Manager" : "Manager",
- "Set line manager" : "Set line manager",
- "Account name will be autogenerated" : "Account name will be autogenerated",
- "Account name (required)" : "Account name (required)",
- "Failed to search groups" : "Failed to search groups",
- "New account" : "New account",
- "Display name" : "Display name",
- "Either password or email is required" : "Either password or email is required",
- "Password (required)" : "Password (required)",
- "Email (required)" : "Email (required)",
- "Email" : "Email",
- "Member of the following groups (required)" : "Member of the following groups (required)",
- "Member of the following groups" : "Member of the following groups",
- "Set account groups" : "Set account groups",
- "Admin of the following groups" : "Admin of the following groups",
- "Set account as admin for …" : "Set account as admin for …",
- "Quota" : "Quota",
- "Set account quota" : "Set account quota",
- "Language" : "Language",
- "Set default language" : "Set default language",
- "Add new account" : "Add new account",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} account …","{userCount} accounts …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} account","{userCount} accounts"],
- "Total rows summary" : "Total rows summary",
- "Scroll to load more rows" : "Scroll to load more rows",
- "Password or insufficient permissions message" : "Password or insufficient permissions message",
- "Avatar" : "Avatar",
- "Account name" : "Account name",
- "Group admin for" : "Group admin for",
- "Account backend" : "Account backend",
- "Storage location" : "Storage location",
- "First login" : "First login",
- "Last login" : "Last login",
- "Account actions" : "Account actions",
- "{size} used" : "{size} used",
- "Delete account" : "Delete account",
- "Disconnect all devices and delete local data" : "Disconnect all devices and delete local data",
- "Disable account" : "Disable account",
- "Enable account" : "Enable account",
- "Resend welcome email" : "Resend welcome email",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.",
- "Remote wipe of devices" : "Remote wipe of devices",
- "Wipe {userid}'s devices" : "Wipe {userid}'s devices",
- "Wiped {userid}'s devices" : "Wiped {userid}'s devices",
- "Failed to load groups with details" : "Failed to load groups with details",
- "Failed to load sub admin groups with details" : "Failed to load sub admin groups with details",
- "Failed to update line manager" : "Failed to update line manager",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Fully delete {userid}'s account including all their personal files, app data, etc.",
- "Account deletion" : "Account deletion",
- "Delete {userid}'s account" : "Delete {userid}'s account",
- "Display name was successfully changed" : "Display name was successfully changed",
- "Password can't be empty" : "Password can't be empty",
- "Password was successfully changed" : "Password was successfully changed",
- "Email can't be empty" : "Email can't be empty",
- "Email was successfully changed" : "Email was successfully changed",
- "Welcome mail sent!" : "Welcome mail sent!",
- "Loading account …" : "Loading account …",
- "Change display name" : "Change display name",
- "Set new password" : "Set new password",
- "You do not have permissions to see the details of this account" : "You do not have permissions to see the details of this account",
- "Set new email address" : "Set new email address",
- "Add account to group" : "Add account to group",
- "Set account as admin for" : "Set account as admin for",
- "Select account quota" : "Select account quota",
- "Set the language" : "Set the language",
- "Toggle account actions menu" : "Toggle account actions menu",
- "Done" : "Done",
- "Edit" : "Edit",
- "Account management settings" : "Account management settings",
- "Visibility" : "Visibility",
- "Show language" : "Show language",
- "Show account backend" : "Show account backend",
- "Show storage path" : "Show storage path",
- "Show first login" : "Show first login",
- "Show last login" : "Show last login",
- "Sorting" : "Sorting",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "The system config enforces sorting the groups by name. This also disables showing the member count.",
- "Group list sorting" : "Group list sorting",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.",
- "By member count" : "By member count",
- "By name" : "By name",
- "Send email" : "Send email",
- "Send welcome email to new accounts" : "Send welcome email to new accounts",
- "Defaults" : "Defaults",
- "Default quota" : "Default quota",
- "Select default quota" : "Select default quota",
- "Server error while trying to complete WebAuthn device registration" : "Server error while trying to complete WebAuthn device registration",
- "Passwordless authentication requires a secure connection." : "Passwordless authentication requires a secure connection.",
- "Add WebAuthn device" : "Add WebAuthn device",
- "Please authorize your WebAuthn device." : "Please authorise your WebAuthn device.",
- "Adding your device …" : "Adding your device …",
- "Unnamed device" : "Unnamed device",
- "Passwordless Authentication" : "Passwordless Authentication",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Set up your account for passwordless authentication following the FIDO2 standard.",
- "No devices configured." : "No devices configured.",
- "The following devices are configured for your account:" : "The following devices are configured for your account:",
- "Your browser does not support WebAuthn." : "Your browser does not support WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "As admin you can fine-tune the sharing behavior. Please see the documentation for more information.",
- "You need to enable the File sharing App." : "You need to enable the File sharing App.",
- "App Store" : "App Store",
- "Loading app list" : "Loading app list",
- "Loading categories" : "Loading categories",
- "Developer documentation ↗" : "Developer documentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-licensed",
- "Version {version}" : "Version {version}",
- "All accounts" : "All accounts",
- "Admins" : "Admins",
- "Account group: {group}" : "Account group: {group}",
- "Account management" : "Account management",
+ "Delete group" : "Delete group",
"Sending…" : "Sending…",
"Email sent" : "Email sent",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted.",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "Date of birth",
"Full name" : "Full name",
"Additional email" : "Additional email",
+ "Email" : "Email",
"Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)",
"Headline" : "Headline",
"Organisation" : "Organisation",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (formerly Twitter)",
"Website" : "Website",
"Profile visibility" : "Profile visibility",
+ "Language" : "Language",
"Locale" : "Locale",
"First day of week" : "First day of week",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Not available as this property is required for core functionality including file sharing and calendar invitations",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Show to logged in accounts only",
"Hide" : "Hide",
"Manually installed apps cannot be updated" : "Manually installed apps cannot be updated",
+ "Update to {version}" : "Update to {version}",
"{progress}% Deploying …" : "{progress}% Deploying …",
"{progress}% Initializing …" : "{progress}% Initializing …",
"Health checking" : "Health checking",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Allow untested app",
"The app will be downloaded from the App Store" : "The app will be downloaded from the App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.",
+ "{size} used" : "{size} used",
"Unknown" : "Unknown",
"Never" : "Never",
"Could not register device: Network error" : "Could not register device: Network error",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Could not set group sorting",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "There were too many requests from your network. Retry later or contact your administrator if this is an error.",
"Error" : "Error",
+ "Default quota" : "Default quota",
"Account documentation" : "Account documentation",
"Administration documentation" : "Administration documentation",
+ "Documentation" : "Documentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud help & privacy resources",
"General documentation" : "General documentation",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP Password",
"Save" : "Save",
"Test and verify email settings" : "Test and verify email settings",
+ "Send email" : "Send email",
"Security & setup warnings" : "Security & setup warnings",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information.",
"All checks passed." : "All checks passed.",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Use a second factor besides your password to increase security for your account.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.",
"Logged in account must be a subadmin" : "Logged in account must be a subadmin",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Missing optional index \"%s\" in table \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule.",
"File locking" : "File locking",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type.",
"The PHP memory limit is below the recommended value of %s." : "The PHP memory limit is below the recommended value of %s.",
"for WebAuthn passwordless login" : "for WebAuthn passwordless login",
"for WebAuthn passwordless login, and SFTP storage" : "for WebAuthn passwordless login, and SFTP storage",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.",
- "Speech-To-Text" : "Speech-To-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text can be implemented by different apps. Here you can set which app should be used.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "None of your currently installed apps provide Speech-To-Text functionality",
- "None of your currently installed apps provide Text processing functionality" : "None of your currently installed apps provide Text processing functionality",
- "Set default expiration date for shares" : "Set default expiration date for shares",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Allow username autocompletion in share dialogue and allow access to the system address book",
- "Your biography" : "Your biography",
- "You are using <strong>{usage}</strong>" : "You are using <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Set user manager",
- "Username will be autogenerated" : "Username will be autogenerated",
- "Username (required)" : "Username (required)",
- "New user" : "New user",
- "Groups (required)" : "Groups (required)",
- "Set user groups" : "Set user groups",
- "Administered groups" : "Administered groups",
- "Set user as admin for …" : "Set user as admin for …",
- "Set user quota" : "Set user quota",
- "Add new user" : "Add new user",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} user …","{userCount} users …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} user","{userCount} users"],
- "Loading users …" : "Loading users …",
- "Username" : "Username",
- "User backend" : "User backend",
- "User actions" : "User actions",
- "Add user to group" : "Add user to group",
- "Server error while trying to add WebAuthn device" : "Server error while trying to add WebAuthn device",
- "Name your device" : "Name your device",
- "Active accounts" : "Active accounts",
- "Follow us on Twitter" : "Follow us on Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud.",
- "Failed to load subadmin groups with details" : "Failed to load subadmin groups with details"
+ "Set default expiration date for shares" : "Set default expiration date for shares"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/en_GB.json b/apps/settings/l10n/en_GB.json
index 7b8675490cf..d893b3424d9 100644
--- a/apps/settings/l10n/en_GB.json
+++ b/apps/settings/l10n/en_GB.json
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP headers",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS.",
@@ -313,6 +312,10 @@
"Architecture" : "Architecture",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!",
+ "Task Processing pickup speed" : "Task Processing pickup speed",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["No scheduled tasks in the last %n hour.","No scheduled tasks in the last %n hours."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["The task pickup speed has been ok in the last %n hour.","The task pickup speed has been ok in the last %n hours."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background.","The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background."],
"Temporary space available" : "Temporary space available",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "The PHP function \"disk_free_space\" is disabled, preventing the system from checking for sufficient space in the temporary directories.",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "Could not load section content from app store.",
"Loading" : "Loading",
"Fetching the latest news…" : "Fetching the latest news…",
- "Carousel" : "Carousel",
- "Previous slide" : "Previous slide",
- "Next slide" : "Next slide",
- "Choose slide to display" : "Choose slide to display",
- "{index} of {total}" : "{index} of {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Deploy Daemon",
- "Type" : "Type",
- "Display Name" : "Display Name",
- "GPUs support" : "GPUs support",
- "Compute device" : "Compute device",
- "Advanced deploy options" : "Advanced deploy options",
- "Edit ExApp deploy options before installation" : "Edit ExApp deploy options before installation",
- "Configured ExApp deploy options. Can be set only during installation" : "Configured ExApp deploy options. Can be set only during installation",
- "Learn more" : "Learn more",
- "Environment variables" : "Environment variables",
- "ExApp container environment variables" : "ExApp container environment variables",
- "No environment variables defined" : "No environment variables defined",
- "Mounts" : "Mounts",
- "Define host folder mounts to bind to the ExApp container" : "Define host folder mounts to bind to the ExApp container",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Must exist on the Deploy daemon host prior to installing the ExApp",
- "Host path" : "Host path",
- "Container path" : "Container path",
- "Read-only" : "Read-only",
- "Remove mount" : "Remove mount",
- "New mount" : "New mount",
- "Enter path to host folder" : "Enter path to host folder",
- "Enter path to container folder" : "Enter path to container folder",
- "Toggle read-only mode" : "Toggle read-only mode",
- "Confirm adding new mount" : "Confirm adding new mount",
- "Confirm" : "Confirm",
- "Cancel adding mount" : "Cancel adding mount",
- "Cancel" : "Cancel",
- "Add mount" : "Add mount",
- "ExApp container mounts" : "ExApp container mounts",
- "No mounts defined" : "No mounts defined",
- "Description" : "Description",
- "View in store" : "View in store",
- "Visit website" : "Visit website",
- "Usage documentation" : "Usage documentation",
- "Admin documentation" : "Admin documentation",
- "Developer documentation" : "Developer documentation",
- "Details" : "Details",
- "All" : "All",
- "Limit app usage to groups" : "Limit app usage to groups",
- "No results" : "No results",
- "Update to {version}" : "Update to {version}",
- "Deploy options" : "Deploy options",
- "Default Deploy daemon is not accessible" : "Default Deploy daemon is not accessible",
- "Delete data on remove" : "Delete data on remove",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will cause an error in the future.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will cause an error in the future.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:",
- "Latest updated" : "Latest updated",
- "Author" : "Author",
- "Categories" : "Categories",
- "Resources" : "Resources",
- "Documentation" : "Documentation",
- "Interact" : "Interact",
- "Report a bug" : "Report a bug",
- "Request feature" : "Request feature",
- "Ask questions or discuss" : "Ask questions or discuss",
- "Rate the app" : "Rate the app",
- "Rate" : "Rate",
- "Changelog" : "Changelog",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "Sync client" : "Sync client",
- "This session" : "This session",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Device name",
- "Cancel renaming" : "Cancel renaming",
- "Save new name" : "Save new name",
- "Marked for remote wipe" : "Marked for remote wipe",
- "Device settings" : "Device settings",
- "Allow filesystem access" : "Allow filesystem access",
- "Rename" : "Rename",
- "Revoke" : "Revoke",
- "Wipe device" : "Wipe device",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revoking this token might prevent the wiping of your device if it has not started the wipe yet.",
- "Device" : "Device",
- "Last activity" : "Last activity",
- "Devices & sessions" : "Devices & sessions",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, desktop and mobile clients currently logged in to your account.",
- "Error while creating device token" : "Error while creating device token",
- "App name" : "App name",
- "Create new app password" : "Create new app password",
"App password copied!" : "App password copied!",
"Copy app password" : "Copy app password",
"Login name copied!" : "Login name copied!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "Unable to update profile default setting",
"Profile" : "Profile",
"Enable or disable profile by default for new accounts." : "Enable or disable profile by default for new accounts.",
+ "Password confirmation is required" : "Password confirmation is required",
"Failed to save setting" : "Failed to save setting",
"{app}'s declarative setting field: {name}" : "{app}'s declarative setting field: {name}",
"Unable to update server side encryption config" : "Unable to update server side encryption config",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Refer to the admin documentation on how to manually also encrypt existing files.",
"This is the final warning: Do you really want to enable encryption?" : "This is the final warning: Do you really want to enable encryption?",
- "Failed to remove group \"{group}\"" : "Failed to remove group \"{group}\"",
+ "Failed to delete group \"{group}\"" : "Failed to delete group \"{group}\"",
"Please confirm the group removal" : "Please confirm the group removal",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "You are about to remove the group \"{group}\". The accounts will NOT be deleted.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "You are about to delete the group \"{group}\". The accounts will NOT be deleted.",
+ "Cancel" : "Cancel",
+ "Confirm" : "Confirm",
"Submit" : "Submit",
"Rename group" : "Rename group",
- "Remove group" : "Remove group",
- "Current password" : "Current password",
- "New password" : "New password",
- "Change password" : "Change password",
- "Choose your profile picture" : "Choose your profile picture",
- "Please select a valid png or jpg file" : "Please select a valid png or jpg file",
- "Error setting profile picture" : "Error setting profile picture",
- "Error cropping profile picture" : "Error cropping profile picture",
- "Error saving profile picture" : "Error saving profile picture",
- "Error removing profile picture" : "Error removing profile picture",
- "Your profile picture" : "Your profile picture",
- "Upload profile picture" : "Upload profile picture",
- "Choose profile picture from Files" : "Choose profile picture from Files",
- "Remove profile picture" : "Remove profile picture",
- "The file must be a PNG or JPG" : "The file must be a PNG or JPG",
- "Picture provided by original account" : "Picture provided by original account",
- "Set as profile picture" : "Set as profile picture",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Please note that it can take up to 24 hours for your profile picture to be updated everywhere.",
- "Your biography. Markdown is supported." : "Your biography. Markdown is supported.",
- "Unable to update date of birth" : "Unable to update date of birth",
- "Enter your date of birth" : "Enter your date of birth",
- "You are using {s}{usage}{/s}" : "You are using {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "You are a member of the following groups:",
- "Your full name" : "Your full name",
- "Email options" : "Email options",
- "Options for additional email address {index}" : "Options for additional email address {index}",
- "Remove primary email" : "Remove primary email",
- "Delete email" : "Delete email",
- "This address is not confirmed" : "This address is not confirmed",
- "Unset as primary email" : "Unset as primary email",
- "Set as primary email" : "Set as primary email",
- "Additional email address {index}" : "Additional email address {index}",
- "Unable to delete primary email address" : "Unable to delete primary email address",
- "Unable to update primary email address" : "Unable to update primary email address",
- "Unable to add additional email address" : "Unable to add additional email address",
- "Unable to update additional email address" : "Unable to update additional email address",
- "Unable to delete additional email address" : "Unable to delete additional email address",
- "Primary email for password reset and notifications" : "Primary email for password reset and notifications",
- "No email address set" : "No email address set",
- "Your handle" : "Your handle",
- "Derived from your locale ({weekDayName})" : "Derived from your locale ({weekDayName})",
- "Unable to update first day of week" : "Unable to update first day of week",
- "Day to use as the first day of week" : "Day to use as the first day of week",
- "Your headline" : "Your headline",
- "Unable to update language" : "Unable to update language",
- "Languages" : "Languages",
- "Help translate" : "Help translate",
- "No language set" : "No language set",
- "Unable to update locale" : "Unable to update locale",
- "Locales" : "Locales",
- "Week starts on {firstDayOfWeek}" : "Week starts on {firstDayOfWeek}",
- "No locale set" : "No locale set",
- "Your city" : "Your city",
- "Your organisation" : "Your organisation",
- "Your phone number" : "Your phone number",
- "Edit your Profile visibility" : "Edit your Profile visibility",
- "Unable to update profile enabled state" : "Unable to update profile enabled state",
- "Enable profile" : "Enable profile",
- "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." : "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.",
- "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}",
- "she/her" : "she/her",
- "he/him" : "he/him",
- "they/them" : "they/them",
- "Your role" : "Your role",
- "Your X (formerly Twitter) handle" : "Your X (formerly Twitter) handle",
- "Your website" : "Your website",
- "Invalid value" : "Invalid value",
- "Unable to update {property}" : "Unable to update {property}",
- "No {property} set" : "No {property} set",
- "Change scope level of {property}, current scope is {scope}" : "Change scope level of {property}, current scope is {scope}",
- "Unable to update federation scope of the primary {property}" : "Unable to update federation scope of the primary {property}",
- "Unable to update federation scope of additional {property}" : "Unable to update federation scope of additional {property}",
- "Add additional email" : "Add additional email",
- "Add" : "Add",
- "Create" : "Create",
- "Change" : "Change",
- "Delete" : "Delete",
- "Reshare" : "Reshare",
- "Default language" : "Default language",
- "Common languages" : "Common languages",
- "Other languages" : "Other languages",
- "Password change is disabled because the master key is disabled" : "Password change is disabled because the master key is disabled",
- "No accounts" : "No accounts",
- "Loading accounts …" : "Loading accounts …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.",
- "Manager" : "Manager",
- "Set line manager" : "Set line manager",
- "Account name will be autogenerated" : "Account name will be autogenerated",
- "Account name (required)" : "Account name (required)",
- "Failed to search groups" : "Failed to search groups",
- "New account" : "New account",
- "Display name" : "Display name",
- "Either password or email is required" : "Either password or email is required",
- "Password (required)" : "Password (required)",
- "Email (required)" : "Email (required)",
- "Email" : "Email",
- "Member of the following groups (required)" : "Member of the following groups (required)",
- "Member of the following groups" : "Member of the following groups",
- "Set account groups" : "Set account groups",
- "Admin of the following groups" : "Admin of the following groups",
- "Set account as admin for …" : "Set account as admin for …",
- "Quota" : "Quota",
- "Set account quota" : "Set account quota",
- "Language" : "Language",
- "Set default language" : "Set default language",
- "Add new account" : "Add new account",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} account …","{userCount} accounts …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} account","{userCount} accounts"],
- "Total rows summary" : "Total rows summary",
- "Scroll to load more rows" : "Scroll to load more rows",
- "Password or insufficient permissions message" : "Password or insufficient permissions message",
- "Avatar" : "Avatar",
- "Account name" : "Account name",
- "Group admin for" : "Group admin for",
- "Account backend" : "Account backend",
- "Storage location" : "Storage location",
- "First login" : "First login",
- "Last login" : "Last login",
- "Account actions" : "Account actions",
- "{size} used" : "{size} used",
- "Delete account" : "Delete account",
- "Disconnect all devices and delete local data" : "Disconnect all devices and delete local data",
- "Disable account" : "Disable account",
- "Enable account" : "Enable account",
- "Resend welcome email" : "Resend welcome email",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.",
- "Remote wipe of devices" : "Remote wipe of devices",
- "Wipe {userid}'s devices" : "Wipe {userid}'s devices",
- "Wiped {userid}'s devices" : "Wiped {userid}'s devices",
- "Failed to load groups with details" : "Failed to load groups with details",
- "Failed to load sub admin groups with details" : "Failed to load sub admin groups with details",
- "Failed to update line manager" : "Failed to update line manager",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Fully delete {userid}'s account including all their personal files, app data, etc.",
- "Account deletion" : "Account deletion",
- "Delete {userid}'s account" : "Delete {userid}'s account",
- "Display name was successfully changed" : "Display name was successfully changed",
- "Password can't be empty" : "Password can't be empty",
- "Password was successfully changed" : "Password was successfully changed",
- "Email can't be empty" : "Email can't be empty",
- "Email was successfully changed" : "Email was successfully changed",
- "Welcome mail sent!" : "Welcome mail sent!",
- "Loading account …" : "Loading account …",
- "Change display name" : "Change display name",
- "Set new password" : "Set new password",
- "You do not have permissions to see the details of this account" : "You do not have permissions to see the details of this account",
- "Set new email address" : "Set new email address",
- "Add account to group" : "Add account to group",
- "Set account as admin for" : "Set account as admin for",
- "Select account quota" : "Select account quota",
- "Set the language" : "Set the language",
- "Toggle account actions menu" : "Toggle account actions menu",
- "Done" : "Done",
- "Edit" : "Edit",
- "Account management settings" : "Account management settings",
- "Visibility" : "Visibility",
- "Show language" : "Show language",
- "Show account backend" : "Show account backend",
- "Show storage path" : "Show storage path",
- "Show first login" : "Show first login",
- "Show last login" : "Show last login",
- "Sorting" : "Sorting",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "The system config enforces sorting the groups by name. This also disables showing the member count.",
- "Group list sorting" : "Group list sorting",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.",
- "By member count" : "By member count",
- "By name" : "By name",
- "Send email" : "Send email",
- "Send welcome email to new accounts" : "Send welcome email to new accounts",
- "Defaults" : "Defaults",
- "Default quota" : "Default quota",
- "Select default quota" : "Select default quota",
- "Server error while trying to complete WebAuthn device registration" : "Server error while trying to complete WebAuthn device registration",
- "Passwordless authentication requires a secure connection." : "Passwordless authentication requires a secure connection.",
- "Add WebAuthn device" : "Add WebAuthn device",
- "Please authorize your WebAuthn device." : "Please authorise your WebAuthn device.",
- "Adding your device …" : "Adding your device …",
- "Unnamed device" : "Unnamed device",
- "Passwordless Authentication" : "Passwordless Authentication",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Set up your account for passwordless authentication following the FIDO2 standard.",
- "No devices configured." : "No devices configured.",
- "The following devices are configured for your account:" : "The following devices are configured for your account:",
- "Your browser does not support WebAuthn." : "Your browser does not support WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "As admin you can fine-tune the sharing behavior. Please see the documentation for more information.",
- "You need to enable the File sharing App." : "You need to enable the File sharing App.",
- "App Store" : "App Store",
- "Loading app list" : "Loading app list",
- "Loading categories" : "Loading categories",
- "Developer documentation ↗" : "Developer documentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-licensed",
- "Version {version}" : "Version {version}",
- "All accounts" : "All accounts",
- "Admins" : "Admins",
- "Account group: {group}" : "Account group: {group}",
- "Account management" : "Account management",
+ "Delete group" : "Delete group",
"Sending…" : "Sending…",
"Email sent" : "Email sent",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted.",
@@ -790,6 +511,7 @@
"Date of birth" : "Date of birth",
"Full name" : "Full name",
"Additional email" : "Additional email",
+ "Email" : "Email",
"Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)",
"Headline" : "Headline",
"Organisation" : "Organisation",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X (formerly Twitter)",
"Website" : "Website",
"Profile visibility" : "Profile visibility",
+ "Language" : "Language",
"Locale" : "Locale",
"First day of week" : "First day of week",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Not available as this property is required for core functionality including file sharing and calendar invitations",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "Show to logged in accounts only",
"Hide" : "Hide",
"Manually installed apps cannot be updated" : "Manually installed apps cannot be updated",
+ "Update to {version}" : "Update to {version}",
"{progress}% Deploying …" : "{progress}% Deploying …",
"{progress}% Initializing …" : "{progress}% Initializing …",
"Health checking" : "Health checking",
@@ -825,6 +549,7 @@
"Allow untested app" : "Allow untested app",
"The app will be downloaded from the App Store" : "The app will be downloaded from the App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.",
+ "{size} used" : "{size} used",
"Unknown" : "Unknown",
"Never" : "Never",
"Could not register device: Network error" : "Could not register device: Network error",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "Could not set group sorting",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "There were too many requests from your network. Retry later or contact your administrator if this is an error.",
"Error" : "Error",
+ "Default quota" : "Default quota",
"Account documentation" : "Account documentation",
"Administration documentation" : "Administration documentation",
+ "Documentation" : "Documentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud help & privacy resources",
"General documentation" : "General documentation",
@@ -867,6 +594,7 @@
"SMTP Password" : "SMTP Password",
"Save" : "Save",
"Test and verify email settings" : "Test and verify email settings",
+ "Send email" : "Send email",
"Security & setup warnings" : "Security & setup warnings",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information.",
"All checks passed." : "All checks passed.",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "Use a second factor besides your password to increase security for your account.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.",
"Logged in account must be a subadmin" : "Logged in account must be a subadmin",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Missing optional index \"%s\" in table \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule.",
"File locking" : "File locking",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type.",
"The PHP memory limit is below the recommended value of %s." : "The PHP memory limit is below the recommended value of %s.",
"for WebAuthn passwordless login" : "for WebAuthn passwordless login",
"for WebAuthn passwordless login, and SFTP storage" : "for WebAuthn passwordless login, and SFTP storage",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.",
- "Speech-To-Text" : "Speech-To-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text can be implemented by different apps. Here you can set which app should be used.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "None of your currently installed apps provide Speech-To-Text functionality",
- "None of your currently installed apps provide Text processing functionality" : "None of your currently installed apps provide Text processing functionality",
- "Set default expiration date for shares" : "Set default expiration date for shares",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Allow username autocompletion in share dialogue and allow access to the system address book",
- "Your biography" : "Your biography",
- "You are using <strong>{usage}</strong>" : "You are using <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Set user manager",
- "Username will be autogenerated" : "Username will be autogenerated",
- "Username (required)" : "Username (required)",
- "New user" : "New user",
- "Groups (required)" : "Groups (required)",
- "Set user groups" : "Set user groups",
- "Administered groups" : "Administered groups",
- "Set user as admin for …" : "Set user as admin for …",
- "Set user quota" : "Set user quota",
- "Add new user" : "Add new user",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} user …","{userCount} users …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} user","{userCount} users"],
- "Loading users …" : "Loading users …",
- "Username" : "Username",
- "User backend" : "User backend",
- "User actions" : "User actions",
- "Add user to group" : "Add user to group",
- "Server error while trying to add WebAuthn device" : "Server error while trying to add WebAuthn device",
- "Name your device" : "Name your device",
- "Active accounts" : "Active accounts",
- "Follow us on Twitter" : "Follow us on Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud.",
- "Failed to load subadmin groups with details" : "Failed to load subadmin groups with details"
+ "Set default expiration date for shares" : "Set default expiration date for shares"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/eo.js b/apps/settings/l10n/eo.js
index 5bc41ce9ec6..681d00bebb4 100644
--- a/apps/settings/l10n/eo.js
+++ b/apps/settings/l10n/eo.js
@@ -139,51 +139,12 @@ OC.L10N.register(
"No apps found for your version" : "Neniu aplikaĵo trovita por via versio",
"Group name" : "Gruponomo",
"Loading" : "Ŝargado",
- "Type" : "Tipo",
- "Learn more" : "Scii pli",
- "Confirm" : "Konfirmi",
- "Cancel" : "Nuligi",
- "Description" : "Priskribo",
- "View in store" : "Vidi en butiko",
- "Visit website" : "Viziti retejon",
- "Admin documentation" : "Dokumentaro por administranto",
- "Developer documentation" : "Dokumentaro por programisto",
- "Details" : "Detaloj",
- "All" : "Ĉio",
- "Limit app usage to groups" : "Limigi aplikaĵan uzon al grupoj",
- "No results" : "Neniu rezulto",
- "Update to {version}" : "Ĝisdatigi al {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tiu aplikaĵo ne postulas minimuman Nextcloud-version. Tio estos eraro en la estonteco.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tiu aplikaĵo ne postulas maksimuman Nextcloud-version. Tio estos eraro en la estonteco.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Tiu aplikaĵo ne instaliĝas, ĉar la jenaj dependecoj ne plenumiĝas:",
- "Categories" : "Kategorioj",
- "Resources" : "Rimedoj",
- "Documentation" : "Dokumentaro",
- "Report a bug" : "Raporti problemon",
- "Request feature" : "Peti novan funkcion",
- "Ask questions or discuss" : "Demandi aŭ priparoli",
- "Rate" : "Pritakso",
- "Changelog" : "Ŝanĝoprotokolo",
- "Google Chrome for Android" : "Google Chrome por Android",
- "This session" : "Tiu ĉi seanco",
- "Marked for remote wipe" : "Elektita por fora forviŝado",
- "Device settings" : "Aparataj agordoj",
- "Allow filesystem access" : "Permesi aliron al dosiersistemo",
- "Rename" : "Alinomi",
- "Revoke" : "Senvalidigi",
- "Wipe device" : "Forviŝi aparaton",
- "Device" : "Aparato",
- "Last activity" : "Lasta aktivaĵo",
- "Devices & sessions" : "Aparatoj kaj seancoj",
- "Web, desktop and mobile clients currently logged in to your account." : "Reta, surtabla kaj portebla klientoj nun konektitaj al via konto.",
- "Error while creating device token" : "Eraro dum kreo de aparata ĵetono",
- "App name" : "Aplikaĵa nomo",
- "Create new app password" : "Krei novan aplikaĵan pasvorton",
"Could not copy app password. Please copy it manually." : "Ne eblis kopii la aplikaĵan pasvorton. Bv. kopii ĝin permane.",
"Login" : "Ensaluti",
"Password" : "Pasvorto",
"Show QR code for mobile apps" : "Montri rapidrespondan (QR) kodon por porteblaj aplikaĵoj",
"Use system cron service to call the cron.php file every 5 minutes." : "Uzu la sisteman „cron“-servon por voki cron.php ĉiujn 5 minutojn.",
+ "Password confirmation is required" : "Konfirmo per pasvorto estas bezonata",
"Server-side encryption" : "Ĉeservila ĉifrado",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Ĉeservila ĉifrado elbigas ĉifri ĉiujn alŝutitajn dosierojn al la servilo. Tio havas kelkajn limigojn kiel pli malbonan rendimenton, do ŝaltu tion nur se necese.",
"Enable server-side encryption" : "Ŝalti ĉeservilan ĉifradon",
@@ -195,60 +156,19 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Atentu, ke ĉifrado ĉiam pligrandigas dosierojn.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Ĉiam estas bone krei savkopiojn de viaj datumoj. Se tiuj ĉi lastaj estas ĉifritaj, certigu, ke vi savkopias ankaŭ la ĉifroŝlosilon kune kun la datumoj.",
"This is the final warning: Do you really want to enable encryption?" : "Jen la fina averto: ĉu vi certe volas ŝalti ĉifradon?",
+ "Cancel" : "Nuligi",
+ "Confirm" : "Konfirmi",
"Submit" : "Sendi",
- "Remove group" : "Forigi grupon",
- "Current password" : "Nuna pasvorto",
- "New password" : "Nova pasvorto",
- "Change password" : "Ŝanĝi la pasvorton",
- "Picture provided by original account" : "Bildo el la origina konto",
- "You are a member of the following groups:" : "Vi estas membro el la jenaj grupoj:",
- "No email address set" : "Neniu retpoŝta adreso agordita",
- "Languages" : "Lingvoj",
- "Help translate" : "Helpu traduki",
- "No language set" : "Neniu lingvo agordita",
- "Your phone number" : "Via telefonnumero",
- "Add" : "Aldoni",
- "Create" : "Krei",
- "Change" : "Ŝanĝi",
- "Delete" : "Forigi",
- "Default language" : "Defaŭlta lingvo",
- "Common languages" : "Ordinaraj lingvoj",
- "Password change is disabled because the master key is disabled" : "Pasvorta ŝanĝo ne eblas, ĉar la ĉefa ŝlosilo estas neebligita",
- "Display name" : "Vidiga nomo",
- "Email" : "Retpoŝtadreso",
- "Quota" : "Kvoto",
- "Language" : "Lingvo",
- "Avatar" : "Avataro",
- "Group admin for" : "Grupadministranto por",
- "Storage location" : "Konserveja loko",
- "Last login" : "Lasta ensaluto",
- "{size} used" : "{size} uzataj",
- "Delete account" : "Forigi konton",
- "Resend welcome email" : "Resendi bonvenan retpoŝtmesaĝon",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Okaze de perdo de aparato aŭ eliro de la organizaĵo, tio povas defore forviŝi la datumojn de Nextcloud el ĉiuj aparatoj ligitaj per {userid}. Nur funkcias, se la aparatoj estas konektitaj al interreto.",
- "Remote wipe of devices" : "Defora forviŝado de aparatoj",
- "Wipe {userid}'s devices" : "Forviŝi la aparatojn de {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Forigi la tuton de la konto de {userid}, inkluzive de ĉiuj ties personaj dosieroj, datumoj el aplikaĵoj, k.t.p.",
- "Account deletion" : "Forigo de konto",
- "Delete {userid}'s account" : "Forigi konton de {userid}",
- "Welcome mail sent!" : "Bonvena retpoŝtmesaĝo sendita!",
- "Done" : "Farita",
- "Edit" : "Modifi",
- "Show storage path" : "Montri vojon al konservejo",
- "Show last login" : "Montri lastan ensaluton",
- "Send email" : "Sendi retpoŝtmesaĝon",
- "Default quota" : "Defaŭlta kvoto",
- "Select default quota" : "Elekti defaŭltan kvoton",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Kiel administranto, vi povas agordi plidetale la kunhavigon. Bv. vidi la dokumentaron pri tio.",
- "Admins" : "Administrantoj",
"Sending…" : "Sendado...",
"Email sent" : "La retpoŝtaĵo sendiĝis",
"Location" : "Loko",
"Profile picture" : "Profila bildo",
"About" : "Pri",
"Full name" : "Plena nomo",
+ "Email" : "Retpoŝtadreso",
"Phone number" : "Telefonnumero",
"Website" : "Retejo",
+ "Language" : "Lingvo",
"Locale" : "Lokaĵaro",
"Your apps" : "Viaj aplikaĵoj",
"Active apps" : "Aktivaj aplikaĵoj",
@@ -256,9 +176,11 @@ OC.L10N.register(
"Updates" : "Ĝisdatigoj",
"App bundles" : "Aplikaĵaj kuniĝoj",
"Hide" : "Malmontri",
+ "Update to {version}" : "Ĝisdatigi al {version}",
"Download and enable" : "Elŝuti kaj ŝalti",
"Disable" : "Malŝalti",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Tiu aplikaĵo ne kongruas kun via Nextcloud-versio. Se vi daŭrigas, vi tamen povos instali ĝin, sed eble tiu aplikaĵo ne funkcios bone.",
+ "{size} used" : "{size} uzataj",
"Unknown" : "Nekonata",
"Never" : "Neniam",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplikaĵo estis ŝaltita, sed ĝi bezonas ĝisdatiĝi. Vi estos direktita al ĝisdatiga paĝon post 5 sekundoj.",
@@ -269,6 +191,8 @@ OC.L10N.register(
"Error while updating device token scope" : "Eraro dum ĝisdatigo de la amplekso de la aparataj ĵetonoj",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Estis tro multaj petoj de via reto. Reprovu poste aŭ kontaktu vian administranton se tio estas eraro.",
"Error" : "Eraro",
+ "Default quota" : "Defaŭlta kvoto",
+ "Documentation" : "Dokumentaro",
"Forum" : "Forumo",
"Legal notice" : "Leĝa regularo",
"Privacy policy" : "Privateca regularo",
@@ -286,6 +210,7 @@ OC.L10N.register(
"Credentials" : "Aŭtentigiloj",
"SMTP Password" : "SMTP-pasvorto",
"Save" : "Konservi",
+ "Send email" : "Sendi retpoŝtmesaĝon",
"Security & setup warnings" : "Avertoj pri sekureco kaj agordoj",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Gravas por sekureco kaj rapideco de via servilo, ke ĉio estu agordita bone. Por helpi vin pri tio, ni faras kelkajn aŭtomatajn testojn. Bv. vidi la dokumentaron por pli da informoj.",
"All checks passed." : "Ĉiuj testoj sukcese trapasitaj.",
@@ -300,11 +225,6 @@ OC.L10N.register(
"Check out our blog" : "Vizitu nian blogon",
"Subscribe to our newsletter" : "Aboni nian retan bultenon",
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Tiu elkomunuma eldono de Nextcloud ne estas subtenata, kaj tuj-sciigoj ne disponeblas.",
- "Use a second factor besides your password to increase security for your account." : "Uzu duan fazon krom via pasvorto por plisekurigi vian konton.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Mankas kelkaj indeksoj en la datumbazo. Pro la ebla malrapideco aldoni indeksojn en grandaj tabeloj, ili ne estis aldonitaj aŭtomate. Vi povas aldoni ilin mane, rulante komandlinie „occ db:add-missing-indices“, dum la servilo estas funkcianta. Kiam la indeksoj ekzistos, la uzo de tiuj tabelojn estos kutime pli rapida.",
- "New user" : "Nova uzanto",
- "Username" : "Uzantonomo",
- "User backend" : "Uzanto-loko",
- "Follow us on Twitter" : "Sekvu nin per Twitter"
+ "Use a second factor besides your password to increase security for your account." : "Uzu duan fazon krom via pasvorto por plisekurigi vian konton."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/eo.json b/apps/settings/l10n/eo.json
index baf93471b1b..5f21fabd439 100644
--- a/apps/settings/l10n/eo.json
+++ b/apps/settings/l10n/eo.json
@@ -137,51 +137,12 @@
"No apps found for your version" : "Neniu aplikaĵo trovita por via versio",
"Group name" : "Gruponomo",
"Loading" : "Ŝargado",
- "Type" : "Tipo",
- "Learn more" : "Scii pli",
- "Confirm" : "Konfirmi",
- "Cancel" : "Nuligi",
- "Description" : "Priskribo",
- "View in store" : "Vidi en butiko",
- "Visit website" : "Viziti retejon",
- "Admin documentation" : "Dokumentaro por administranto",
- "Developer documentation" : "Dokumentaro por programisto",
- "Details" : "Detaloj",
- "All" : "Ĉio",
- "Limit app usage to groups" : "Limigi aplikaĵan uzon al grupoj",
- "No results" : "Neniu rezulto",
- "Update to {version}" : "Ĝisdatigi al {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tiu aplikaĵo ne postulas minimuman Nextcloud-version. Tio estos eraro en la estonteco.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tiu aplikaĵo ne postulas maksimuman Nextcloud-version. Tio estos eraro en la estonteco.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Tiu aplikaĵo ne instaliĝas, ĉar la jenaj dependecoj ne plenumiĝas:",
- "Categories" : "Kategorioj",
- "Resources" : "Rimedoj",
- "Documentation" : "Dokumentaro",
- "Report a bug" : "Raporti problemon",
- "Request feature" : "Peti novan funkcion",
- "Ask questions or discuss" : "Demandi aŭ priparoli",
- "Rate" : "Pritakso",
- "Changelog" : "Ŝanĝoprotokolo",
- "Google Chrome for Android" : "Google Chrome por Android",
- "This session" : "Tiu ĉi seanco",
- "Marked for remote wipe" : "Elektita por fora forviŝado",
- "Device settings" : "Aparataj agordoj",
- "Allow filesystem access" : "Permesi aliron al dosiersistemo",
- "Rename" : "Alinomi",
- "Revoke" : "Senvalidigi",
- "Wipe device" : "Forviŝi aparaton",
- "Device" : "Aparato",
- "Last activity" : "Lasta aktivaĵo",
- "Devices & sessions" : "Aparatoj kaj seancoj",
- "Web, desktop and mobile clients currently logged in to your account." : "Reta, surtabla kaj portebla klientoj nun konektitaj al via konto.",
- "Error while creating device token" : "Eraro dum kreo de aparata ĵetono",
- "App name" : "Aplikaĵa nomo",
- "Create new app password" : "Krei novan aplikaĵan pasvorton",
"Could not copy app password. Please copy it manually." : "Ne eblis kopii la aplikaĵan pasvorton. Bv. kopii ĝin permane.",
"Login" : "Ensaluti",
"Password" : "Pasvorto",
"Show QR code for mobile apps" : "Montri rapidrespondan (QR) kodon por porteblaj aplikaĵoj",
"Use system cron service to call the cron.php file every 5 minutes." : "Uzu la sisteman „cron“-servon por voki cron.php ĉiujn 5 minutojn.",
+ "Password confirmation is required" : "Konfirmo per pasvorto estas bezonata",
"Server-side encryption" : "Ĉeservila ĉifrado",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Ĉeservila ĉifrado elbigas ĉifri ĉiujn alŝutitajn dosierojn al la servilo. Tio havas kelkajn limigojn kiel pli malbonan rendimenton, do ŝaltu tion nur se necese.",
"Enable server-side encryption" : "Ŝalti ĉeservilan ĉifradon",
@@ -193,60 +154,19 @@
"Be aware that encryption always increases the file size." : "Atentu, ke ĉifrado ĉiam pligrandigas dosierojn.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Ĉiam estas bone krei savkopiojn de viaj datumoj. Se tiuj ĉi lastaj estas ĉifritaj, certigu, ke vi savkopias ankaŭ la ĉifroŝlosilon kune kun la datumoj.",
"This is the final warning: Do you really want to enable encryption?" : "Jen la fina averto: ĉu vi certe volas ŝalti ĉifradon?",
+ "Cancel" : "Nuligi",
+ "Confirm" : "Konfirmi",
"Submit" : "Sendi",
- "Remove group" : "Forigi grupon",
- "Current password" : "Nuna pasvorto",
- "New password" : "Nova pasvorto",
- "Change password" : "Ŝanĝi la pasvorton",
- "Picture provided by original account" : "Bildo el la origina konto",
- "You are a member of the following groups:" : "Vi estas membro el la jenaj grupoj:",
- "No email address set" : "Neniu retpoŝta adreso agordita",
- "Languages" : "Lingvoj",
- "Help translate" : "Helpu traduki",
- "No language set" : "Neniu lingvo agordita",
- "Your phone number" : "Via telefonnumero",
- "Add" : "Aldoni",
- "Create" : "Krei",
- "Change" : "Ŝanĝi",
- "Delete" : "Forigi",
- "Default language" : "Defaŭlta lingvo",
- "Common languages" : "Ordinaraj lingvoj",
- "Password change is disabled because the master key is disabled" : "Pasvorta ŝanĝo ne eblas, ĉar la ĉefa ŝlosilo estas neebligita",
- "Display name" : "Vidiga nomo",
- "Email" : "Retpoŝtadreso",
- "Quota" : "Kvoto",
- "Language" : "Lingvo",
- "Avatar" : "Avataro",
- "Group admin for" : "Grupadministranto por",
- "Storage location" : "Konserveja loko",
- "Last login" : "Lasta ensaluto",
- "{size} used" : "{size} uzataj",
- "Delete account" : "Forigi konton",
- "Resend welcome email" : "Resendi bonvenan retpoŝtmesaĝon",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Okaze de perdo de aparato aŭ eliro de la organizaĵo, tio povas defore forviŝi la datumojn de Nextcloud el ĉiuj aparatoj ligitaj per {userid}. Nur funkcias, se la aparatoj estas konektitaj al interreto.",
- "Remote wipe of devices" : "Defora forviŝado de aparatoj",
- "Wipe {userid}'s devices" : "Forviŝi la aparatojn de {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Forigi la tuton de la konto de {userid}, inkluzive de ĉiuj ties personaj dosieroj, datumoj el aplikaĵoj, k.t.p.",
- "Account deletion" : "Forigo de konto",
- "Delete {userid}'s account" : "Forigi konton de {userid}",
- "Welcome mail sent!" : "Bonvena retpoŝtmesaĝo sendita!",
- "Done" : "Farita",
- "Edit" : "Modifi",
- "Show storage path" : "Montri vojon al konservejo",
- "Show last login" : "Montri lastan ensaluton",
- "Send email" : "Sendi retpoŝtmesaĝon",
- "Default quota" : "Defaŭlta kvoto",
- "Select default quota" : "Elekti defaŭltan kvoton",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Kiel administranto, vi povas agordi plidetale la kunhavigon. Bv. vidi la dokumentaron pri tio.",
- "Admins" : "Administrantoj",
"Sending…" : "Sendado...",
"Email sent" : "La retpoŝtaĵo sendiĝis",
"Location" : "Loko",
"Profile picture" : "Profila bildo",
"About" : "Pri",
"Full name" : "Plena nomo",
+ "Email" : "Retpoŝtadreso",
"Phone number" : "Telefonnumero",
"Website" : "Retejo",
+ "Language" : "Lingvo",
"Locale" : "Lokaĵaro",
"Your apps" : "Viaj aplikaĵoj",
"Active apps" : "Aktivaj aplikaĵoj",
@@ -254,9 +174,11 @@
"Updates" : "Ĝisdatigoj",
"App bundles" : "Aplikaĵaj kuniĝoj",
"Hide" : "Malmontri",
+ "Update to {version}" : "Ĝisdatigi al {version}",
"Download and enable" : "Elŝuti kaj ŝalti",
"Disable" : "Malŝalti",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Tiu aplikaĵo ne kongruas kun via Nextcloud-versio. Se vi daŭrigas, vi tamen povos instali ĝin, sed eble tiu aplikaĵo ne funkcios bone.",
+ "{size} used" : "{size} uzataj",
"Unknown" : "Nekonata",
"Never" : "Neniam",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplikaĵo estis ŝaltita, sed ĝi bezonas ĝisdatiĝi. Vi estos direktita al ĝisdatiga paĝon post 5 sekundoj.",
@@ -267,6 +189,8 @@
"Error while updating device token scope" : "Eraro dum ĝisdatigo de la amplekso de la aparataj ĵetonoj",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Estis tro multaj petoj de via reto. Reprovu poste aŭ kontaktu vian administranton se tio estas eraro.",
"Error" : "Eraro",
+ "Default quota" : "Defaŭlta kvoto",
+ "Documentation" : "Dokumentaro",
"Forum" : "Forumo",
"Legal notice" : "Leĝa regularo",
"Privacy policy" : "Privateca regularo",
@@ -284,6 +208,7 @@
"Credentials" : "Aŭtentigiloj",
"SMTP Password" : "SMTP-pasvorto",
"Save" : "Konservi",
+ "Send email" : "Sendi retpoŝtmesaĝon",
"Security & setup warnings" : "Avertoj pri sekureco kaj agordoj",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Gravas por sekureco kaj rapideco de via servilo, ke ĉio estu agordita bone. Por helpi vin pri tio, ni faras kelkajn aŭtomatajn testojn. Bv. vidi la dokumentaron por pli da informoj.",
"All checks passed." : "Ĉiuj testoj sukcese trapasitaj.",
@@ -298,11 +223,6 @@
"Check out our blog" : "Vizitu nian blogon",
"Subscribe to our newsletter" : "Aboni nian retan bultenon",
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Tiu elkomunuma eldono de Nextcloud ne estas subtenata, kaj tuj-sciigoj ne disponeblas.",
- "Use a second factor besides your password to increase security for your account." : "Uzu duan fazon krom via pasvorto por plisekurigi vian konton.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Mankas kelkaj indeksoj en la datumbazo. Pro la ebla malrapideco aldoni indeksojn en grandaj tabeloj, ili ne estis aldonitaj aŭtomate. Vi povas aldoni ilin mane, rulante komandlinie „occ db:add-missing-indices“, dum la servilo estas funkcianta. Kiam la indeksoj ekzistos, la uzo de tiuj tabelojn estos kutime pli rapida.",
- "New user" : "Nova uzanto",
- "Username" : "Uzantonomo",
- "User backend" : "Uzanto-loko",
- "Follow us on Twitter" : "Sekvu nin per Twitter"
+ "Use a second factor besides your password to increase security for your account." : "Uzu duan fazon krom via pasvorto por plisekurigi vian konton."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es.js b/apps/settings/l10n/es.js
index eb81fe977c3..6b04b394727 100644
--- a/apps/settings/l10n/es.js
+++ b/apps/settings/l10n/es.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "Encabezados HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- El encabezado HTTP `%1$s` no está configurado a `%2$s`. Algunas características podrían no funcionar correctamente, por lo que se recomienda ajustar esta configuración adecuadamente.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- El encabezado HTTP `%1$s` no está configurado a `%2$s`. Este es un riesgo potencial de seguridad o privacidad, por lo que se recomienda ajustar esta configuración adecuadamente.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- El encabezado HTTP `%1$s` no contiene `%2$s`. Este es un riesgo potencial de seguridad o privacidad, por lo que se recomienda ajustar esta configuración adecuadamente.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- El encabezado HTTP `%1$s` no está configurado a `%2$s`, `%3$s`, `%4$s`, `%5$s` ó `%6$s`. Esto podría filtrar la información de referidos. Vea las recomendaciones de la W3C en {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- El encabezado HTTP `Strict-Transport-Security` no está configurado a al menos `%d` segundos (valor actual: `%d`). Para una seguridad mejorada, se recomienda usar una política HSTS larga.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- El encabezado HTTP `Strict-Transport-Security` HTTP esta malformado: `%s`. Para una seguridad mejorada, se recomienda habilitar HSTS.",
@@ -443,97 +442,6 @@ OC.L10N.register(
"Could not load section content from app store." : "No se pudo cargar el contenido de la sección desde la tienda de aplicaciones.",
"Loading" : "Cargando",
"Fetching the latest news…" : "Obteniendo las últimas noticias...",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Diapositiva siguiente",
- "Choose slide to display" : "Elegir diapositiva a mostrar",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon de despligue",
- "Type" : "Tipo",
- "Display Name" : "Nombre a mostrar",
- "GPUs support" : "Soporte a GPUs",
- "Compute device" : "Dispositivo de cómputo",
- "Advanced deploy options" : "Opciones avanzadas del despliegue",
- "Edit ExApp deploy options before installation" : "Editar las opciones de despliegue de ExApp antes de la instalación",
- "Configured ExApp deploy options. Can be set only during installation" : "Opciones de despliegue de ExApp configuradas. Sólo pueden configurarse durante la instalación",
- "Learn more" : "Aprender más",
- "Environment variables" : "Variables de entorno",
- "ExApp container environment variables" : "Variables de entorno del contenedor ExApp ",
- "No environment variables defined" : "No hay variables de entorno definidas",
- "Mounts" : "Montajes",
- "Define host folder mounts to bind to the ExApp container" : "Definir la carpeta de montajes del host para enlazar con el contenedor ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Debe existir en el host el daemon Deploy antes de instalar ExApp",
- "Host path" : "Carpeta del host",
- "Container path" : "Carpeta del contenedor",
- "Read-only" : "Solo lectura",
- "Remove mount" : "Eliminar montaje",
- "New mount" : "Montar nuevo",
- "Enter path to host folder" : "Introduzca la ubicación de la carpeta del host",
- "Enter path to container folder" : "Introduzca la ubicación de la carpeta del contenedor",
- "Toggle read-only mode" : "Alternar modo solo lectura",
- "Confirm adding new mount" : "Confirmar añadir montaje",
- "Confirm" : "Confirmar",
- "Cancel adding mount" : "Cancelar añadir montaje",
- "Cancel" : "Cancelar",
- "Add mount" : "Añadir montaje",
- "ExApp container mounts" : "Montajes del contenedor ExApp",
- "No mounts defined" : "No hay montajes definidos",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visite el sitio web",
- "Usage documentation" : "Documentación de uso",
- "Admin documentation" : "Documentación de administrador",
- "Developer documentation" : "Documentación de desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "Limit app usage to groups" : "Limitar uso de apps a grupos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "Deploy options" : "Opciones del despliegue",
- "Default Deploy daemon is not accessible" : "No se puede acceder al Daemon de despliegue predeterminado",
- "Delete data on remove" : "Eliminar datos al borrar",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede instalarse porque las siguientes dependencias no están cumplimentadas:",
- "Latest updated" : "Última actualización",
- "Author" : "Autor",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Interact" : "Interactuar",
- "Report a bug" : "Notificar un error",
- "Request feature" : "Solicitar característica",
- "Ask questions or discuss" : "Preguntar o discutir",
- "Rate the app" : "Calificar la aplicación",
- "Rate" : "Calificar",
- "Changelog" : "Historial de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "Sync client" : "Cliente de sincronización",
- "This session" : "Esta sesión",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nombre del dispositivo",
- "Cancel renaming" : "Cancelar renombrado",
- "Save new name" : "Guardar nombre nuevo",
- "Marked for remote wipe" : "Marcado para borrado remoto",
- "Device settings" : "Configuración del dispositivo",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Anular",
- "Wipe device" : "Borrar dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Anular este token podría evitar el borrado de tu dispositivo si no ha empezado todavía.",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móviles y de escritorio actualmente conectados a su cuenta.",
- "Error while creating device token" : "Error al crear \"token\" de dispositivo",
- "App name" : "Nombre de la app",
- "Create new app password" : "Crear nueva contraseña de app",
"App password copied!" : "¡Se copió la contraseña de aplicación!",
"Copy app password" : "Copiar contraseña de aplicación",
"Login name copied!" : "¡Se copió el nombre de inicio de sesión!",
@@ -561,6 +469,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "No se pudo actualizar la configuración por defecto del perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Habilitar o deshabilitar el perfil por defecto para nuevas cuentas.",
+ "Password confirmation is required" : "Se requiere confirmar la contraseña",
"Failed to save setting" : "No se pudo guardar la configuración",
"{app}'s declarative setting field: {name}" : "Campo de configuración declarativa de {app}: {name}",
"Unable to update server side encryption config" : "No ha sido posible actualizar la configuración de cifrado del lado del servidor",
@@ -583,206 +492,11 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es bueno crear copias de seguridad de sus datos, en el caso del cifrado, asegúrese de tener una copia de seguridad de las claves de cifrado junto con sus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulta la documentación del administrador para saber cómo cifrar manualmente también los archivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final. ¿Realmente quiere activar el cifrado?",
- "Failed to remove group \"{group}\"" : "Fallo al eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor, confirme la eliminación del grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a punto de eliminar el grupo \"{group}\". Las cuentas NO serán eliminadas.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
- "Remove group" : "Eliminar grupo",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Choose your profile picture" : "Seleccione su imagen de perfil",
- "Please select a valid png or jpg file" : "Por favor, seleccione un archivo png o jpg válido",
- "Error setting profile picture" : "Error configurando imagen del perfil",
- "Error cropping profile picture" : "Error recortando imagen del perfil",
- "Error saving profile picture" : "Error guardando imagen del perfil",
- "Error removing profile picture" : "Error eliminando imagen del perfil",
- "Your profile picture" : "Su imagen de perfil",
- "Upload profile picture" : "Subir imagen del perfil",
- "Choose profile picture from Files" : "Seleccionar imagen del perfil desde los archivos",
- "Remove profile picture" : "Eliminar imagen del perfil",
- "The file must be a PNG or JPG" : "El archivo debe ser un PNG o JPG",
- "Picture provided by original account" : "Imagen provista por la cuenta original",
- "Set as profile picture" : "Establecer como imagen del perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tenga en cuenta que puede tomar hasta 24 horas para que su imagen del perfil sea actualizada en todas partes",
- "Your biography. Markdown is supported." : "Tu biografía. Se admite Markdown.",
- "Unable to update date of birth" : "No se puede actualizar su fecha de nacimiento",
- "Enter your date of birth" : "Indica tu fecha de nacimiento",
- "You are using {s}{usage}{/s}" : "Estás usando {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Estás usando {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Eres miembro de los siguientes grupos:",
- "Your full name" : "Tu nombre completo",
- "Email options" : "Opciones de email",
- "Options for additional email address {index}" : "Opciones para direcciones de correo electrónico adicionales {index}",
- "Remove primary email" : "Borrar email principal",
- "Delete email" : "Borrar email",
- "This address is not confirmed" : "Esta dirección no está confirmada",
- "Unset as primary email" : "Quitar como email principal",
- "Set as primary email" : "Establecer como email principal",
- "Additional email address {index}" : "Direcciones email adicionales {index}",
- "Unable to delete primary email address" : "No se pudo borrar tu dirección de email principal",
- "Unable to update primary email address" : "No se pudo actualizar tu dirección de email principal",
- "Unable to add additional email address" : "No se pudo añadir una dirección de email adicional",
- "Unable to update additional email address" : "No se pudo actualizar la dirección de email adicional",
- "Unable to delete additional email address" : "No se pudo borrar la dirección de email adicional",
- "Primary email for password reset and notifications" : "Dirección email principal para restablecer contraseña y notificaciones",
- "No email address set" : "No hay establecida ninguna dirección de correo",
- "Your handle" : "Su identificador",
- "Derived from your locale ({weekDayName})" : "Obtenido de su región ({weekDayName})",
- "Unable to update first day of week" : "No se pudo modificar el primer día de la semana",
- "Day to use as the first day of week" : "Primer día de la semana",
- "Your headline" : "Su titular",
- "Unable to update language" : "No se pudo actualizar tu idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Ayúdanos a traducir",
- "No language set" : "No se ha establecido ningún idioma",
- "Unable to update locale" : "No fue posible actualizar el idioma",
- "Locales" : "Configuración regional",
- "Week starts on {firstDayOfWeek}" : "La semana comienza en {firstDayOfWeek}",
- "No locale set" : "No se ha establecido el idioma",
- "Your city" : "Su ciudad",
- "Your organisation" : "Su organización",
- "Your phone number" : "Su número de teléfono",
- "Edit your Profile visibility" : "Editar la visibilidad de tu perfil",
- "Unable to update profile enabled state" : "No se pudo actualizar el estado habilitado del perfil",
- "Enable profile" : "Habilitar 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 su 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}",
- "she/her" : "ella",
- "he/him" : "él",
- "they/them" : "elle",
- "Your role" : "Su rol",
- "Your X (formerly Twitter) handle" : "Tu usuario de X (anteriormente Twitter)",
- "Your website" : "La dirección de su sitio web",
- "Invalid value" : "Valor inválido",
- "Unable to update {property}" : "Imposible actualizar {property}",
- "No {property} set" : "No se ha establecido {property}",
- "Change scope level of {property}, current scope is {scope}" : "Cambiar el nivel de privacidad de {property}, el valor actual es {scope}",
- "Unable to update federation scope of the primary {property}" : "No se puede actualizar el alcance de federación del principal {property}",
- "Unable to update federation scope of additional {property}" : "No se puede actualizar el alcance de federación adicional de {property}",
- "Add additional email" : "Añadir un email adicional",
- "Add" : "Añadir",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Eliminar",
- "Reshare" : "Volver a compartir",
- "Default language" : "Idioma predeterminado",
- "Common languages" : "Idiomas habituales",
- "Other languages" : "Otros idiomas",
- "Password change is disabled because the master key is disabled" : "El cambio de contraseña está desactivado porque la clave maestra está desactivada",
- "No accounts" : "Sin cuentas",
- "Loading accounts …" : "Cargando cuentas ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista de cuentas. Esta lista no se muestra completa por razones de rendimiento. Las cuentas se mostrarán a medida que navegue por la lista.",
- "Manager" : "Administrador",
- "Set line manager" : "Establecer el administrador",
- "Account name will be autogenerated" : "El nombre de la cuenta se generará automáticamente",
- "Account name (required)" : "Nombre de la cuenta (requerido)",
- "Failed to search groups" : "Fallo al buscar grupos",
- "New account" : "Nueva cuenta",
- "Display name" : "Nombre para mostrar",
- "Either password or email is required" : "Se requiere contraseña o correo electrónico",
- "Password (required)" : "Contraseña (requerido)",
- "Email (required)" : "Email (requerido)",
- "Email" : "Correo electrónico",
- "Member of the following groups (required)" : "Miembro de los siguientes grupos (requerido)",
- "Member of the following groups" : "Miembro de los siguientes grupos",
- "Set account groups" : "Definir grupos de la cuenta",
- "Admin of the following groups" : "Administrador de los siguientes grupos",
- "Set account as admin for …" : "Establecer cuenta de administrador a ...",
- "Quota" : "Espacio asignado",
- "Set account quota" : "Definir cuota de la cuenta",
- "Language" : "Idioma",
- "Set default language" : "Establecer idioma por defecto",
- "Add new account" : "Añadir nueva cuenta",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} cuenta …","{userCount} cuentas …","{userCount} cuentas …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} cuenta","{userCount} cuentas","{userCount} cuentas"],
- "Total rows summary" : "Resumen de filas totales",
- "Scroll to load more rows" : "Desplácese para cargar más filas",
- "Password or insufficient permissions message" : "Contraseña o mensaje de permisos insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nombre de cuenta",
- "Group admin for" : "Administrador de grupo para",
- "Account backend" : "Backend de cuenta",
- "Storage location" : "Ubicación de los datos",
- "First login" : "Primer inicio de sesión",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usados",
- "Delete account" : "Borrar cuenta",
- "Disconnect all devices and delete local data" : "Desconectar todos los dispositivos y eliminar los datos locales",
- "Disable account" : "Deshabilitar cuenta",
- "Enable account" : "Habilitar cuenta",
- "Resend welcome email" : "Volver a enviar correo de bienvenida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En caso de pérdida del dispositivo o dejar la organización, esto puede eliminar remotamente los datos de Nextcloud de todos los dispositivos asociados con {userid}. Nota: sólo funciona si los dispositivos están conectados a Internet.",
- "Remote wipe of devices" : "Eliminación remota de dispositivos",
- "Wipe {userid}'s devices" : "Eliminar dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Dispositivos de {userid} borrados",
- "Failed to load groups with details" : "Fallo al cargar grupos con detalles",
- "Failed to load sub admin groups with details" : "Fallo al cargar grupos de subadministradores con detalles",
- "Failed to update line manager" : "No se pudo actualizar el administrador",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar completamente la cuenta de {userid}, incluyendo todos sus archivos personales, datos de las apps, etc.",
- "Account deletion" : "Eliminación de la cuenta",
- "Delete {userid}'s account" : "Eliminar cuentas de {userid}",
- "Display name was successfully changed" : "El nombre para mostrar se ha cambiado correctamente",
- "Password can't be empty" : "La contraseña no puede estar vacía",
- "Password was successfully changed" : "La contraseña se ha cambiado correctamente",
- "Email can't be empty" : "El correo electrónico no puede estar vacío",
- "Email was successfully changed" : "El email se ha cambiado correctamente",
- "Welcome mail sent!" : "¡Correo de bienvenida enviado!",
- "Loading account …" : "Cargando cuenta ...",
- "Change display name" : "Cambiar nombre a mostrar",
- "Set new password" : "Establecer contraseña nueva",
- "You do not have permissions to see the details of this account" : "No tiene los permisos para ver los detalles de esta cuenta",
- "Set new email address" : "Establecer correo electrónico nuevo",
- "Add account to group" : "Añadir cuenta al grupo",
- "Set account as admin for" : "Establecer cuenta como administrador de",
- "Select account quota" : "Seleccionar cuota de cuenta",
- "Set the language" : "Establecer el idioma",
- "Toggle account actions menu" : "Alternar menú de acciones de cuenta",
- "Done" : "Hecho",
- "Edit" : "Editar",
- "Account management settings" : "Ajustes de administración de cuentas",
- "Visibility" : "Visibilidad",
- "Show language" : "Mostrar lenguaje",
- "Show account backend" : "Mostrar backend de la cuenta",
- "Show storage path" : "Mostrar ruta de almacenamiento",
- "Show first login" : "Mostrar primer inicio de sesión",
- "Show last login" : "Mostrar último inicio de sesión",
- "Sorting" : "Orden",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuración de sistema obliga a que los grupos sean ordenados por nombre. Esto también impide mostrar la cantidad de miembros.",
- "Group list sorting" : "Ordenado de la lista de grupos",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "El ordenamiento sólo aplica a los grupos actualmente cargados por razones de rendimiento. Los grupos se cargarán a medida que navegue o busque en la lista.",
- "By member count" : "Por número de miembros",
- "By name" : "Por nombre",
- "Send email" : "Enviar mensaje",
- "Send welcome email to new accounts" : "Enviar correo de bienvenida a usuarios nuevos",
- "Defaults" : "Valores por defecto",
- "Default quota" : "Cuota predeterminada",
- "Select default quota" : "Seleccionar cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error del servidor al intentar completar el registro del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "La autenticación sin contraseña requiere una conexión segura.",
- "Add WebAuthn device" : "Añadir dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorice a su dispositivo WebAuthn, por favor.",
- "Adding your device …" : "Añadiendo tu dispositivo...",
- "Unnamed device" : "Dispositivo sin nombre",
- "Passwordless Authentication" : "Autenticación sin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configure su cuenta para autenticación sin contraseña siguiendo el estándar FIDO2.",
- "No devices configured." : "No hay dispositivos configurados.",
- "The following devices are configured for your account:" : "Los siguientes dispositivos están configurados en su cuenta:",
- "Your browser does not support WebAuthn." : "Tu navegador no soporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador puede ajustar el comportamiento de compartir. Por favor, lea la documentación para más información.",
- "You need to enable the File sharing App." : "Tiene que activar la app File sharing",
- "App Store" : "Tienda de aplicaciones",
- "Loading app list" : "Cargando la lista de aplicaciones",
- "Loading categories" : "Cargando categorías",
- "Developer documentation ↗" : "Documentación del desarrollador ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, licenciado bajo {license}",
- "Version {version}" : "Versión {version}",
- "All accounts" : "Todas las cuentas",
- "Admins" : "Administradores",
- "Account group: {group}" : "Grupo de cuentas: {group}",
- "Account management" : "Administración de cuentas",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Por razones de rendimiento, cuando activas el cifrado en un servidor Nextcloud sólo se cifrarán los archivos nuevos y modificados.",
@@ -792,6 +506,7 @@ OC.L10N.register(
"Date of birth" : "Fecha de nacimiento",
"Full name" : "Nombre completo",
"Additional email" : "Email adicional",
+ "Email" : "Correo electrónico",
"Fediverse (e.g. Mastodon)" : "Fediverso (p.ej. Mastodon)",
"Headline" : "Titular",
"Organisation" : "Organización",
@@ -801,6 +516,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidad del perfil",
+ "Language" : "Idioma",
"Locale" : "Región",
"First day of week" : "Primer día de la semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No está disponible, ya que esta característica es necesaria para la funcionalidad principal, incluyendo el intercambio de archivos y las invitaciones de calendario",
@@ -818,6 +534,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Mostrar únicamente a usuarios con sesión iniciada",
"Hide" : "Ocultar",
"Manually installed apps cannot be updated" : "Las aplicaciones instaladas manualmente no pueden ser actualizadas",
+ "Update to {version}" : "Actualizar a {version}",
"{progress}% Deploying …" : "{progress}% Desplegando …",
"{progress}% Initializing …" : "{progress}% Iniciando …",
"Health checking" : "Revisión de salud del servidor",
@@ -827,6 +544,7 @@ OC.L10N.register(
"Allow untested app" : "Habillitar aplicación no probada",
"The app will be downloaded from the App Store" : "La app va a ser descargada de la App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta app no está marcada como compatible con tu versión de Nextcloud. Si continúas podrás instalar la app, pero ten en cuenta que podría no funcionar según lo esperado.",
+ "{size} used" : "{size} usados",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"Could not register device: Network error" : "No se pudo registrar el dispositivo: Error de red",
@@ -845,8 +563,10 @@ OC.L10N.register(
"Could not set group sorting" : "No se pudo establecer el ordenamiento por grupo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hubo demasiadas peticiones desde su red. Vuelva a intentarlo más tarde o póngase en contacto con su administrador si se trata de un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
"Account documentation" : "Documentación de la cuenta",
"Administration documentation" : "Documentación de administración",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Nextcloud help & privacy resources" : "Ayuda de Nextcloud y recursos de privacidad",
"General documentation" : "Documentación general",
@@ -869,6 +589,7 @@ OC.L10N.register(
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
"Test and verify email settings" : "Comprobar y verificar configuración de correo",
+ "Send email" : "Enviar mensaje",
"Security & setup warnings" : "Avisos de seguridad y configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Es importante para la seguridad y rendimiento de su instancia que todo esté correctamente configurado. Para ayudarle en ello estamos haciendo algunas comprobaciones automáticas. Para más información, por favor compruebe la documentación enlazada.",
"All checks passed." : "Ha pasado todos los controles",
@@ -888,51 +609,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Use un segundo factor además de su contraseña para incrementar la seguridad de su cuenta. ",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si utiliza aplicaciones de terceras partes para conectarse a Nextcloud, por favor compruebe que crea y configura una contraseña de app para cada una antes de activar el factor de autentificación de dos pasos.",
"Logged in account must be a subadmin" : "El usuario conectado debe ser un subadministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que este chequeo se lleve a cabo, debe asegurarse que su servidor pueda conectarse a sí mismo. Por tanto, este debe poder resolver y conectarse a alguno de sus `trusted_domains` o al url definido en `overwrite.cli.url`",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta el índice opcional \"%s\" en la tabla \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos le faltan algunos índices. Debido al hecho de que añadir índices en tablas grandes puede llevar cierto tiempo, no se han añadido automáticamente. Se pueden añadir manualmente dichos índices perdidos mientras la instancia sigue funcionando si se ejecuta \"occ db:add-missing-indices\". Una vez se han añadido los índices, las consultas a esas tablas suelen ser mucho más rápidas.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que este chequeo se lleve a cabo, debe asegurarse que su servidor pueda conectarse a sí mismo. Por tanto, este debe poder resolver y conectarse a alguno de sus `trusted_domains` o al url definido en `overwrite.cli.url`. Este fallo puede ser resultado de una inconsistencia DNS del lado del servidor o una regla de salida del cortafuegos.",
"File locking" : "Bloqueo de archivos",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "El bloqueo de ficheros transaccional está deshabilitado, esto puede crear problemas por condiciones de carrera. Habilita \"filelocking.enabled\" en config.php para evitar estos problemas.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "No se ha podido comprobar la compatibilidad con JavaScript a través de ninguno de sus `trusted_domains` ni `overwrite.cli.url`. Esto puede deberse a un error de DNS en el servidor o a una regla del cortafuegos de salida. Compruebe manualmente si su servidor web sirve archivos `.mjs` utilizando el tipo MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "El límite de memoria PHP está por debajo del valor recomendado, %s.",
"for WebAuthn passwordless login" : "para inicio de sesión sin contraseña de WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "para inicio de sesión sin contraseña de WebAuthn, y almacenamiento SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Estás utilizando la versión PHP %s. PHP 8.0 está obsoleto en Nextcloud 27. Nextcloud 28 puede requerir PHP 8.1 como mínimo. Por favor, actualiza cuanto antes a una de las versiones de PHP soportadas oficialmente por el Grupo PHP.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Está instalada la versión MariaDB \"%s\". Nextcloud 21 ya no soporta esta versión y requiere MariaDB 10.2 o superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Se utiliza la versión \"%s\" de MySQL. Nextcloud 21 ya no soportará esta versión y requiere MySQL 8.0 o MariaDB 10.2 o superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Está instalada la versión PostgreSQL \"%s\". Nextcloud 21 ya no soporta esta versión y requiere PostgreSQL 9.6 o superior.",
- "Speech-To-Text" : "Dictado a texto",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "El dictado a texto puede estar implementada por diferentes apps. Aquí puede definir cual de ellas debería utilizarse.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ninguna de las aplicaciones que tiene actualmente instaladas proveen la funcionalidad de dictado a texto",
- "None of your currently installed apps provide Text processing functionality" : "Ninguna de las aplicaciones que tiene actualmente instaladas proveen la funcionalidad de procesamiento de texto",
- "Set default expiration date for shares" : "Establecer fecha de caducidad predeterminada para recursos compartidos",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir el auto-completado del nombre de usuario en el diálogo de compartir y permitir el acceso a la libreta de direcciones del sistema",
- "Your biography" : "Tu biografía",
- "You are using <strong>{usage}</strong>" : "Estás usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Estás usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Establecer administrador de usuario",
- "Username will be autogenerated" : "El nombre de usuario será autogenerado",
- "Username (required)" : "Nombre de usuario (requerido)",
- "New user" : "Nuevo usuario",
- "Groups (required)" : "Grupos (requerido)",
- "Set user groups" : "Establecer grupos de usuario",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Establecer usuario como admin durante …",
- "Set user quota" : "Establecer cuota de usuario",
- "Add new user" : "Añadir nuevo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario ...","{userCount} usuarios ...","{userCount} usuarios ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios …",
- "Username" : "Nombre de usuario",
- "User backend" : "Motor de usuario",
- "User actions" : "Acciones de usuario",
- "Add user to group" : "Añadir usuario a grupo",
- "Server error while trying to add WebAuthn device" : "Error del servidor al intentar añadir el dispositivo WebAuthn",
- "Name your device" : "Nombre de tu dispositivo",
- "Active accounts" : "Cuentas activas",
- "Follow us on Twitter" : "Síguenos en Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que este chequeo se lleve a cabo, debe asegurarse que su servidor pueda conectarse a sí mismo. Por tanto, este debe poder resolver y conectarse a alguno de sus `trusted_domains` o al url definido en `overwrite.cli.url`. Este fallo puede ser resultado de una inconsistencia DNS del lado del servidor o una regla de salida del cortafuegos.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- El encabezado HTTP `%1$s` no contiene `%2$s`. Este es un riesgo potencial de seguridad o privacidad, por lo que se recomienda ajustar esta configuración adecuadamente.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Se detectó la versión PostgreSQL \"%s\". Se sugiere utilizar PostgreSQL >=12 y <=16 para el mejor rendimiento, estabilidad y funcionalidad con esta versión de Nextcloud.",
- "Failed to load subadmin groups with details" : "Fallo al cargar grupos de subadministradores con detalles"
+ "Set default expiration date for shares" : "Establecer fecha de caducidad predeterminada para recursos compartidos"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es.json b/apps/settings/l10n/es.json
index 8faf76572ff..32db4cb7391 100644
--- a/apps/settings/l10n/es.json
+++ b/apps/settings/l10n/es.json
@@ -294,7 +294,6 @@
"HTTP headers" : "Encabezados HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- El encabezado HTTP `%1$s` no está configurado a `%2$s`. Algunas características podrían no funcionar correctamente, por lo que se recomienda ajustar esta configuración adecuadamente.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- El encabezado HTTP `%1$s` no está configurado a `%2$s`. Este es un riesgo potencial de seguridad o privacidad, por lo que se recomienda ajustar esta configuración adecuadamente.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- El encabezado HTTP `%1$s` no contiene `%2$s`. Este es un riesgo potencial de seguridad o privacidad, por lo que se recomienda ajustar esta configuración adecuadamente.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- El encabezado HTTP `%1$s` no está configurado a `%2$s`, `%3$s`, `%4$s`, `%5$s` ó `%6$s`. Esto podría filtrar la información de referidos. Vea las recomendaciones de la W3C en {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- El encabezado HTTP `Strict-Transport-Security` no está configurado a al menos `%d` segundos (valor actual: `%d`). Para una seguridad mejorada, se recomienda usar una política HSTS larga.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- El encabezado HTTP `Strict-Transport-Security` HTTP esta malformado: `%s`. Para una seguridad mejorada, se recomienda habilitar HSTS.",
@@ -441,97 +440,6 @@
"Could not load section content from app store." : "No se pudo cargar el contenido de la sección desde la tienda de aplicaciones.",
"Loading" : "Cargando",
"Fetching the latest news…" : "Obteniendo las últimas noticias...",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Diapositiva siguiente",
- "Choose slide to display" : "Elegir diapositiva a mostrar",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon de despligue",
- "Type" : "Tipo",
- "Display Name" : "Nombre a mostrar",
- "GPUs support" : "Soporte a GPUs",
- "Compute device" : "Dispositivo de cómputo",
- "Advanced deploy options" : "Opciones avanzadas del despliegue",
- "Edit ExApp deploy options before installation" : "Editar las opciones de despliegue de ExApp antes de la instalación",
- "Configured ExApp deploy options. Can be set only during installation" : "Opciones de despliegue de ExApp configuradas. Sólo pueden configurarse durante la instalación",
- "Learn more" : "Aprender más",
- "Environment variables" : "Variables de entorno",
- "ExApp container environment variables" : "Variables de entorno del contenedor ExApp ",
- "No environment variables defined" : "No hay variables de entorno definidas",
- "Mounts" : "Montajes",
- "Define host folder mounts to bind to the ExApp container" : "Definir la carpeta de montajes del host para enlazar con el contenedor ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Debe existir en el host el daemon Deploy antes de instalar ExApp",
- "Host path" : "Carpeta del host",
- "Container path" : "Carpeta del contenedor",
- "Read-only" : "Solo lectura",
- "Remove mount" : "Eliminar montaje",
- "New mount" : "Montar nuevo",
- "Enter path to host folder" : "Introduzca la ubicación de la carpeta del host",
- "Enter path to container folder" : "Introduzca la ubicación de la carpeta del contenedor",
- "Toggle read-only mode" : "Alternar modo solo lectura",
- "Confirm adding new mount" : "Confirmar añadir montaje",
- "Confirm" : "Confirmar",
- "Cancel adding mount" : "Cancelar añadir montaje",
- "Cancel" : "Cancelar",
- "Add mount" : "Añadir montaje",
- "ExApp container mounts" : "Montajes del contenedor ExApp",
- "No mounts defined" : "No hay montajes definidos",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visite el sitio web",
- "Usage documentation" : "Documentación de uso",
- "Admin documentation" : "Documentación de administrador",
- "Developer documentation" : "Documentación de desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "Limit app usage to groups" : "Limitar uso de apps a grupos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "Deploy options" : "Opciones del despliegue",
- "Default Deploy daemon is not accessible" : "No se puede acceder al Daemon de despliegue predeterminado",
- "Delete data on remove" : "Eliminar datos al borrar",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede instalarse porque las siguientes dependencias no están cumplimentadas:",
- "Latest updated" : "Última actualización",
- "Author" : "Autor",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Interact" : "Interactuar",
- "Report a bug" : "Notificar un error",
- "Request feature" : "Solicitar característica",
- "Ask questions or discuss" : "Preguntar o discutir",
- "Rate the app" : "Calificar la aplicación",
- "Rate" : "Calificar",
- "Changelog" : "Historial de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "Sync client" : "Cliente de sincronización",
- "This session" : "Esta sesión",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nombre del dispositivo",
- "Cancel renaming" : "Cancelar renombrado",
- "Save new name" : "Guardar nombre nuevo",
- "Marked for remote wipe" : "Marcado para borrado remoto",
- "Device settings" : "Configuración del dispositivo",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Anular",
- "Wipe device" : "Borrar dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Anular este token podría evitar el borrado de tu dispositivo si no ha empezado todavía.",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móviles y de escritorio actualmente conectados a su cuenta.",
- "Error while creating device token" : "Error al crear \"token\" de dispositivo",
- "App name" : "Nombre de la app",
- "Create new app password" : "Crear nueva contraseña de app",
"App password copied!" : "¡Se copió la contraseña de aplicación!",
"Copy app password" : "Copiar contraseña de aplicación",
"Login name copied!" : "¡Se copió el nombre de inicio de sesión!",
@@ -559,6 +467,7 @@
"Unable to update profile default setting" : "No se pudo actualizar la configuración por defecto del perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Habilitar o deshabilitar el perfil por defecto para nuevas cuentas.",
+ "Password confirmation is required" : "Se requiere confirmar la contraseña",
"Failed to save setting" : "No se pudo guardar la configuración",
"{app}'s declarative setting field: {name}" : "Campo de configuración declarativa de {app}: {name}",
"Unable to update server side encryption config" : "No ha sido posible actualizar la configuración de cifrado del lado del servidor",
@@ -581,206 +490,11 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es bueno crear copias de seguridad de sus datos, en el caso del cifrado, asegúrese de tener una copia de seguridad de las claves de cifrado junto con sus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulta la documentación del administrador para saber cómo cifrar manualmente también los archivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final. ¿Realmente quiere activar el cifrado?",
- "Failed to remove group \"{group}\"" : "Fallo al eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor, confirme la eliminación del grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a punto de eliminar el grupo \"{group}\". Las cuentas NO serán eliminadas.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
- "Remove group" : "Eliminar grupo",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Choose your profile picture" : "Seleccione su imagen de perfil",
- "Please select a valid png or jpg file" : "Por favor, seleccione un archivo png o jpg válido",
- "Error setting profile picture" : "Error configurando imagen del perfil",
- "Error cropping profile picture" : "Error recortando imagen del perfil",
- "Error saving profile picture" : "Error guardando imagen del perfil",
- "Error removing profile picture" : "Error eliminando imagen del perfil",
- "Your profile picture" : "Su imagen de perfil",
- "Upload profile picture" : "Subir imagen del perfil",
- "Choose profile picture from Files" : "Seleccionar imagen del perfil desde los archivos",
- "Remove profile picture" : "Eliminar imagen del perfil",
- "The file must be a PNG or JPG" : "El archivo debe ser un PNG o JPG",
- "Picture provided by original account" : "Imagen provista por la cuenta original",
- "Set as profile picture" : "Establecer como imagen del perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tenga en cuenta que puede tomar hasta 24 horas para que su imagen del perfil sea actualizada en todas partes",
- "Your biography. Markdown is supported." : "Tu biografía. Se admite Markdown.",
- "Unable to update date of birth" : "No se puede actualizar su fecha de nacimiento",
- "Enter your date of birth" : "Indica tu fecha de nacimiento",
- "You are using {s}{usage}{/s}" : "Estás usando {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Estás usando {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Eres miembro de los siguientes grupos:",
- "Your full name" : "Tu nombre completo",
- "Email options" : "Opciones de email",
- "Options for additional email address {index}" : "Opciones para direcciones de correo electrónico adicionales {index}",
- "Remove primary email" : "Borrar email principal",
- "Delete email" : "Borrar email",
- "This address is not confirmed" : "Esta dirección no está confirmada",
- "Unset as primary email" : "Quitar como email principal",
- "Set as primary email" : "Establecer como email principal",
- "Additional email address {index}" : "Direcciones email adicionales {index}",
- "Unable to delete primary email address" : "No se pudo borrar tu dirección de email principal",
- "Unable to update primary email address" : "No se pudo actualizar tu dirección de email principal",
- "Unable to add additional email address" : "No se pudo añadir una dirección de email adicional",
- "Unable to update additional email address" : "No se pudo actualizar la dirección de email adicional",
- "Unable to delete additional email address" : "No se pudo borrar la dirección de email adicional",
- "Primary email for password reset and notifications" : "Dirección email principal para restablecer contraseña y notificaciones",
- "No email address set" : "No hay establecida ninguna dirección de correo",
- "Your handle" : "Su identificador",
- "Derived from your locale ({weekDayName})" : "Obtenido de su región ({weekDayName})",
- "Unable to update first day of week" : "No se pudo modificar el primer día de la semana",
- "Day to use as the first day of week" : "Primer día de la semana",
- "Your headline" : "Su titular",
- "Unable to update language" : "No se pudo actualizar tu idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Ayúdanos a traducir",
- "No language set" : "No se ha establecido ningún idioma",
- "Unable to update locale" : "No fue posible actualizar el idioma",
- "Locales" : "Configuración regional",
- "Week starts on {firstDayOfWeek}" : "La semana comienza en {firstDayOfWeek}",
- "No locale set" : "No se ha establecido el idioma",
- "Your city" : "Su ciudad",
- "Your organisation" : "Su organización",
- "Your phone number" : "Su número de teléfono",
- "Edit your Profile visibility" : "Editar la visibilidad de tu perfil",
- "Unable to update profile enabled state" : "No se pudo actualizar el estado habilitado del perfil",
- "Enable profile" : "Habilitar 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 su 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}",
- "she/her" : "ella",
- "he/him" : "él",
- "they/them" : "elle",
- "Your role" : "Su rol",
- "Your X (formerly Twitter) handle" : "Tu usuario de X (anteriormente Twitter)",
- "Your website" : "La dirección de su sitio web",
- "Invalid value" : "Valor inválido",
- "Unable to update {property}" : "Imposible actualizar {property}",
- "No {property} set" : "No se ha establecido {property}",
- "Change scope level of {property}, current scope is {scope}" : "Cambiar el nivel de privacidad de {property}, el valor actual es {scope}",
- "Unable to update federation scope of the primary {property}" : "No se puede actualizar el alcance de federación del principal {property}",
- "Unable to update federation scope of additional {property}" : "No se puede actualizar el alcance de federación adicional de {property}",
- "Add additional email" : "Añadir un email adicional",
- "Add" : "Añadir",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Eliminar",
- "Reshare" : "Volver a compartir",
- "Default language" : "Idioma predeterminado",
- "Common languages" : "Idiomas habituales",
- "Other languages" : "Otros idiomas",
- "Password change is disabled because the master key is disabled" : "El cambio de contraseña está desactivado porque la clave maestra está desactivada",
- "No accounts" : "Sin cuentas",
- "Loading accounts …" : "Cargando cuentas ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista de cuentas. Esta lista no se muestra completa por razones de rendimiento. Las cuentas se mostrarán a medida que navegue por la lista.",
- "Manager" : "Administrador",
- "Set line manager" : "Establecer el administrador",
- "Account name will be autogenerated" : "El nombre de la cuenta se generará automáticamente",
- "Account name (required)" : "Nombre de la cuenta (requerido)",
- "Failed to search groups" : "Fallo al buscar grupos",
- "New account" : "Nueva cuenta",
- "Display name" : "Nombre para mostrar",
- "Either password or email is required" : "Se requiere contraseña o correo electrónico",
- "Password (required)" : "Contraseña (requerido)",
- "Email (required)" : "Email (requerido)",
- "Email" : "Correo electrónico",
- "Member of the following groups (required)" : "Miembro de los siguientes grupos (requerido)",
- "Member of the following groups" : "Miembro de los siguientes grupos",
- "Set account groups" : "Definir grupos de la cuenta",
- "Admin of the following groups" : "Administrador de los siguientes grupos",
- "Set account as admin for …" : "Establecer cuenta de administrador a ...",
- "Quota" : "Espacio asignado",
- "Set account quota" : "Definir cuota de la cuenta",
- "Language" : "Idioma",
- "Set default language" : "Establecer idioma por defecto",
- "Add new account" : "Añadir nueva cuenta",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} cuenta …","{userCount} cuentas …","{userCount} cuentas …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} cuenta","{userCount} cuentas","{userCount} cuentas"],
- "Total rows summary" : "Resumen de filas totales",
- "Scroll to load more rows" : "Desplácese para cargar más filas",
- "Password or insufficient permissions message" : "Contraseña o mensaje de permisos insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nombre de cuenta",
- "Group admin for" : "Administrador de grupo para",
- "Account backend" : "Backend de cuenta",
- "Storage location" : "Ubicación de los datos",
- "First login" : "Primer inicio de sesión",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usados",
- "Delete account" : "Borrar cuenta",
- "Disconnect all devices and delete local data" : "Desconectar todos los dispositivos y eliminar los datos locales",
- "Disable account" : "Deshabilitar cuenta",
- "Enable account" : "Habilitar cuenta",
- "Resend welcome email" : "Volver a enviar correo de bienvenida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En caso de pérdida del dispositivo o dejar la organización, esto puede eliminar remotamente los datos de Nextcloud de todos los dispositivos asociados con {userid}. Nota: sólo funciona si los dispositivos están conectados a Internet.",
- "Remote wipe of devices" : "Eliminación remota de dispositivos",
- "Wipe {userid}'s devices" : "Eliminar dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Dispositivos de {userid} borrados",
- "Failed to load groups with details" : "Fallo al cargar grupos con detalles",
- "Failed to load sub admin groups with details" : "Fallo al cargar grupos de subadministradores con detalles",
- "Failed to update line manager" : "No se pudo actualizar el administrador",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar completamente la cuenta de {userid}, incluyendo todos sus archivos personales, datos de las apps, etc.",
- "Account deletion" : "Eliminación de la cuenta",
- "Delete {userid}'s account" : "Eliminar cuentas de {userid}",
- "Display name was successfully changed" : "El nombre para mostrar se ha cambiado correctamente",
- "Password can't be empty" : "La contraseña no puede estar vacía",
- "Password was successfully changed" : "La contraseña se ha cambiado correctamente",
- "Email can't be empty" : "El correo electrónico no puede estar vacío",
- "Email was successfully changed" : "El email se ha cambiado correctamente",
- "Welcome mail sent!" : "¡Correo de bienvenida enviado!",
- "Loading account …" : "Cargando cuenta ...",
- "Change display name" : "Cambiar nombre a mostrar",
- "Set new password" : "Establecer contraseña nueva",
- "You do not have permissions to see the details of this account" : "No tiene los permisos para ver los detalles de esta cuenta",
- "Set new email address" : "Establecer correo electrónico nuevo",
- "Add account to group" : "Añadir cuenta al grupo",
- "Set account as admin for" : "Establecer cuenta como administrador de",
- "Select account quota" : "Seleccionar cuota de cuenta",
- "Set the language" : "Establecer el idioma",
- "Toggle account actions menu" : "Alternar menú de acciones de cuenta",
- "Done" : "Hecho",
- "Edit" : "Editar",
- "Account management settings" : "Ajustes de administración de cuentas",
- "Visibility" : "Visibilidad",
- "Show language" : "Mostrar lenguaje",
- "Show account backend" : "Mostrar backend de la cuenta",
- "Show storage path" : "Mostrar ruta de almacenamiento",
- "Show first login" : "Mostrar primer inicio de sesión",
- "Show last login" : "Mostrar último inicio de sesión",
- "Sorting" : "Orden",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuración de sistema obliga a que los grupos sean ordenados por nombre. Esto también impide mostrar la cantidad de miembros.",
- "Group list sorting" : "Ordenado de la lista de grupos",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "El ordenamiento sólo aplica a los grupos actualmente cargados por razones de rendimiento. Los grupos se cargarán a medida que navegue o busque en la lista.",
- "By member count" : "Por número de miembros",
- "By name" : "Por nombre",
- "Send email" : "Enviar mensaje",
- "Send welcome email to new accounts" : "Enviar correo de bienvenida a usuarios nuevos",
- "Defaults" : "Valores por defecto",
- "Default quota" : "Cuota predeterminada",
- "Select default quota" : "Seleccionar cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error del servidor al intentar completar el registro del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "La autenticación sin contraseña requiere una conexión segura.",
- "Add WebAuthn device" : "Añadir dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorice a su dispositivo WebAuthn, por favor.",
- "Adding your device …" : "Añadiendo tu dispositivo...",
- "Unnamed device" : "Dispositivo sin nombre",
- "Passwordless Authentication" : "Autenticación sin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configure su cuenta para autenticación sin contraseña siguiendo el estándar FIDO2.",
- "No devices configured." : "No hay dispositivos configurados.",
- "The following devices are configured for your account:" : "Los siguientes dispositivos están configurados en su cuenta:",
- "Your browser does not support WebAuthn." : "Tu navegador no soporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador puede ajustar el comportamiento de compartir. Por favor, lea la documentación para más información.",
- "You need to enable the File sharing App." : "Tiene que activar la app File sharing",
- "App Store" : "Tienda de aplicaciones",
- "Loading app list" : "Cargando la lista de aplicaciones",
- "Loading categories" : "Cargando categorías",
- "Developer documentation ↗" : "Documentación del desarrollador ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, licenciado bajo {license}",
- "Version {version}" : "Versión {version}",
- "All accounts" : "Todas las cuentas",
- "Admins" : "Administradores",
- "Account group: {group}" : "Grupo de cuentas: {group}",
- "Account management" : "Administración de cuentas",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Por razones de rendimiento, cuando activas el cifrado en un servidor Nextcloud sólo se cifrarán los archivos nuevos y modificados.",
@@ -790,6 +504,7 @@
"Date of birth" : "Fecha de nacimiento",
"Full name" : "Nombre completo",
"Additional email" : "Email adicional",
+ "Email" : "Correo electrónico",
"Fediverse (e.g. Mastodon)" : "Fediverso (p.ej. Mastodon)",
"Headline" : "Titular",
"Organisation" : "Organización",
@@ -799,6 +514,7 @@
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidad del perfil",
+ "Language" : "Idioma",
"Locale" : "Región",
"First day of week" : "Primer día de la semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No está disponible, ya que esta característica es necesaria para la funcionalidad principal, incluyendo el intercambio de archivos y las invitaciones de calendario",
@@ -816,6 +532,7 @@
"Show to logged in accounts only" : "Mostrar únicamente a usuarios con sesión iniciada",
"Hide" : "Ocultar",
"Manually installed apps cannot be updated" : "Las aplicaciones instaladas manualmente no pueden ser actualizadas",
+ "Update to {version}" : "Actualizar a {version}",
"{progress}% Deploying …" : "{progress}% Desplegando …",
"{progress}% Initializing …" : "{progress}% Iniciando …",
"Health checking" : "Revisión de salud del servidor",
@@ -825,6 +542,7 @@
"Allow untested app" : "Habillitar aplicación no probada",
"The app will be downloaded from the App Store" : "La app va a ser descargada de la App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta app no está marcada como compatible con tu versión de Nextcloud. Si continúas podrás instalar la app, pero ten en cuenta que podría no funcionar según lo esperado.",
+ "{size} used" : "{size} usados",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"Could not register device: Network error" : "No se pudo registrar el dispositivo: Error de red",
@@ -843,8 +561,10 @@
"Could not set group sorting" : "No se pudo establecer el ordenamiento por grupo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hubo demasiadas peticiones desde su red. Vuelva a intentarlo más tarde o póngase en contacto con su administrador si se trata de un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
"Account documentation" : "Documentación de la cuenta",
"Administration documentation" : "Documentación de administración",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Nextcloud help & privacy resources" : "Ayuda de Nextcloud y recursos de privacidad",
"General documentation" : "Documentación general",
@@ -867,6 +587,7 @@
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
"Test and verify email settings" : "Comprobar y verificar configuración de correo",
+ "Send email" : "Enviar mensaje",
"Security & setup warnings" : "Avisos de seguridad y configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Es importante para la seguridad y rendimiento de su instancia que todo esté correctamente configurado. Para ayudarle en ello estamos haciendo algunas comprobaciones automáticas. Para más información, por favor compruebe la documentación enlazada.",
"All checks passed." : "Ha pasado todos los controles",
@@ -886,51 +607,14 @@
"Use a second factor besides your password to increase security for your account." : "Use un segundo factor además de su contraseña para incrementar la seguridad de su cuenta. ",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si utiliza aplicaciones de terceras partes para conectarse a Nextcloud, por favor compruebe que crea y configura una contraseña de app para cada una antes de activar el factor de autentificación de dos pasos.",
"Logged in account must be a subadmin" : "El usuario conectado debe ser un subadministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que este chequeo se lleve a cabo, debe asegurarse que su servidor pueda conectarse a sí mismo. Por tanto, este debe poder resolver y conectarse a alguno de sus `trusted_domains` o al url definido en `overwrite.cli.url`",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta el índice opcional \"%s\" en la tabla \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos le faltan algunos índices. Debido al hecho de que añadir índices en tablas grandes puede llevar cierto tiempo, no se han añadido automáticamente. Se pueden añadir manualmente dichos índices perdidos mientras la instancia sigue funcionando si se ejecuta \"occ db:add-missing-indices\". Una vez se han añadido los índices, las consultas a esas tablas suelen ser mucho más rápidas.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que este chequeo se lleve a cabo, debe asegurarse que su servidor pueda conectarse a sí mismo. Por tanto, este debe poder resolver y conectarse a alguno de sus `trusted_domains` o al url definido en `overwrite.cli.url`. Este fallo puede ser resultado de una inconsistencia DNS del lado del servidor o una regla de salida del cortafuegos.",
"File locking" : "Bloqueo de archivos",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "El bloqueo de ficheros transaccional está deshabilitado, esto puede crear problemas por condiciones de carrera. Habilita \"filelocking.enabled\" en config.php para evitar estos problemas.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "No se ha podido comprobar la compatibilidad con JavaScript a través de ninguno de sus `trusted_domains` ni `overwrite.cli.url`. Esto puede deberse a un error de DNS en el servidor o a una regla del cortafuegos de salida. Compruebe manualmente si su servidor web sirve archivos `.mjs` utilizando el tipo MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "El límite de memoria PHP está por debajo del valor recomendado, %s.",
"for WebAuthn passwordless login" : "para inicio de sesión sin contraseña de WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "para inicio de sesión sin contraseña de WebAuthn, y almacenamiento SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Estás utilizando la versión PHP %s. PHP 8.0 está obsoleto en Nextcloud 27. Nextcloud 28 puede requerir PHP 8.1 como mínimo. Por favor, actualiza cuanto antes a una de las versiones de PHP soportadas oficialmente por el Grupo PHP.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Está instalada la versión MariaDB \"%s\". Nextcloud 21 ya no soporta esta versión y requiere MariaDB 10.2 o superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Se utiliza la versión \"%s\" de MySQL. Nextcloud 21 ya no soportará esta versión y requiere MySQL 8.0 o MariaDB 10.2 o superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Está instalada la versión PostgreSQL \"%s\". Nextcloud 21 ya no soporta esta versión y requiere PostgreSQL 9.6 o superior.",
- "Speech-To-Text" : "Dictado a texto",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "El dictado a texto puede estar implementada por diferentes apps. Aquí puede definir cual de ellas debería utilizarse.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ninguna de las aplicaciones que tiene actualmente instaladas proveen la funcionalidad de dictado a texto",
- "None of your currently installed apps provide Text processing functionality" : "Ninguna de las aplicaciones que tiene actualmente instaladas proveen la funcionalidad de procesamiento de texto",
- "Set default expiration date for shares" : "Establecer fecha de caducidad predeterminada para recursos compartidos",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir el auto-completado del nombre de usuario en el diálogo de compartir y permitir el acceso a la libreta de direcciones del sistema",
- "Your biography" : "Tu biografía",
- "You are using <strong>{usage}</strong>" : "Estás usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Estás usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Establecer administrador de usuario",
- "Username will be autogenerated" : "El nombre de usuario será autogenerado",
- "Username (required)" : "Nombre de usuario (requerido)",
- "New user" : "Nuevo usuario",
- "Groups (required)" : "Grupos (requerido)",
- "Set user groups" : "Establecer grupos de usuario",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Establecer usuario como admin durante …",
- "Set user quota" : "Establecer cuota de usuario",
- "Add new user" : "Añadir nuevo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario ...","{userCount} usuarios ...","{userCount} usuarios ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios …",
- "Username" : "Nombre de usuario",
- "User backend" : "Motor de usuario",
- "User actions" : "Acciones de usuario",
- "Add user to group" : "Añadir usuario a grupo",
- "Server error while trying to add WebAuthn device" : "Error del servidor al intentar añadir el dispositivo WebAuthn",
- "Name your device" : "Nombre de tu dispositivo",
- "Active accounts" : "Cuentas activas",
- "Follow us on Twitter" : "Síguenos en Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que este chequeo se lleve a cabo, debe asegurarse que su servidor pueda conectarse a sí mismo. Por tanto, este debe poder resolver y conectarse a alguno de sus `trusted_domains` o al url definido en `overwrite.cli.url`. Este fallo puede ser resultado de una inconsistencia DNS del lado del servidor o una regla de salida del cortafuegos.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- El encabezado HTTP `%1$s` no contiene `%2$s`. Este es un riesgo potencial de seguridad o privacidad, por lo que se recomienda ajustar esta configuración adecuadamente.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Se detectó la versión PostgreSQL \"%s\". Se sugiere utilizar PostgreSQL >=12 y <=16 para el mejor rendimiento, estabilidad y funcionalidad con esta versión de Nextcloud.",
- "Failed to load subadmin groups with details" : "Fallo al cargar grupos de subadministradores con detalles"
+ "Set default expiration date for shares" : "Establecer fecha de caducidad predeterminada para recursos compartidos"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_419.js b/apps/settings/l10n/es_419.js
index 33fef6fceb8..421873c3dac 100644
--- a/apps/settings/l10n/es_419.js
+++ b/apps/settings/l10n/es_419.js
@@ -102,45 +102,9 @@ OC.L10N.register(
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -152,56 +116,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "You are a member of the following groups:" : "Eres miembro de los siguientes grupos:",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Locale" : "Región",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -216,6 +157,7 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"There are some warnings regarding your setup." : "Hay advertencias respecto de la configuración.",
@@ -223,9 +165,6 @@ OC.L10N.register(
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_419.json b/apps/settings/l10n/es_419.json
index d50cf12fc29..bd9aea17386 100644
--- a/apps/settings/l10n/es_419.json
+++ b/apps/settings/l10n/es_419.json
@@ -100,45 +100,9 @@
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -150,56 +114,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "You are a member of the following groups:" : "Eres miembro de los siguientes grupos:",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Locale" : "Región",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -214,6 +155,7 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"There are some warnings regarding your setup." : "Hay advertencias respecto de la configuración.",
@@ -221,9 +163,6 @@
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_AR.js b/apps/settings/l10n/es_AR.js
index e1e23014593..5c0280c37d9 100644
--- a/apps/settings/l10n/es_AR.js
+++ b/apps/settings/l10n/es_AR.js
@@ -279,48 +279,12 @@ OC.L10N.register(
"Group name" : "Nombre del grupo",
"Please enter a valid group name" : "Ingresá un nombre de grupo válido",
"Loading" : "Cargando",
- "Type" : "Escribir",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conozca más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visitá el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "Sin resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categoría",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporte un tema",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentar",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles conectados actualmente a tu cuenta.",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Inicio de sesión",
"Password" : "Contraseña",
"Unable to update profile default setting" : "No se pudo actualizar la configuración por defecto del perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Habilitar o deshabilitar el perfil por defecto para cuentas nuevas.",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Failed to save setting" : "No se pudo guardar la configuración",
"{app}'s declarative setting field: {name}" : "Campo de configuración declarativa de {app}: {name}",
"Unable to update server side encryption config" : "No se pudo actualizar la configuración de cifrado en el servidor",
@@ -343,166 +307,11 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea crear copias de seguridad de tus datos, en el caso del cifrado asegurate de tener una copia de seguridad de las claves de cifrado junto con tus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consultá la documentación del administrador para saber cómo cifrar manualmente también los archivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final. ¿Realmente querés activar el cifrado?",
- "Failed to remove group \"{group}\"" : "No se pudo eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor confirmá la eliminación del grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Vas a eliminar el grupo {group}. Los usuarios NO serán eliminados.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Cambiar nombre del grupo",
- "Remove group" : "Eliminar grupo",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Choose your profile picture" : "Elegí tu foto del perfil",
- "Please select a valid png or jpg file" : "Por favor, seleccioná un archivo PNG o JPG válido",
- "Error setting profile picture" : "Error al establecer la foto del perfil",
- "Error cropping profile picture" : "Error al recortar la foto del perfil",
- "Error saving profile picture" : "Error al guardar la foto del perfil",
- "Error removing profile picture" : "Error al eliminar la foto del perfil",
- "Your profile picture" : "Tu foto del perfil",
- "Upload profile picture" : "Subir foto del perfil",
- "Choose profile picture from Files" : "Elegir foto del perfil desde Archivos",
- "Remove profile picture" : "Eliminar la foto del perfil",
- "The file must be a PNG or JPG" : "El archivo debe ser PNG o JPG",
- "Picture provided by original account" : "Imagen proporcionadoa por la cuenta original ",
- "Set as profile picture" : "Establecer como foto del perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tené en cuenta que puede llevar hasta 24 horas para que tu foto del perfil se actualice en todos lados.",
- "Your biography. Markdown is supported." : "Tu biografía. Se admite Markdown.",
- "Unable to update date of birth" : "No se pudo actualizar tu fecha de nacimiento",
- "Enter your date of birth" : "Ingresá tu fecha de nacimiento",
- "You are using {s}{usage}{/s}" : "Estás usando {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Estás usando {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Sos miembro de los siguientes grupos:",
- "Your full name" : "Tu nombre completo",
- "Email options" : "Opciones de correo electrónico",
- "Options for additional email address {index}" : "Opciones para la dirección de correo electrónico adicional {index}",
- "Remove primary email" : "Eliminar correo electrónico principal",
- "Delete email" : "Eliminar correo electrónico",
- "This address is not confirmed" : "Esta dirección no está confirmada",
- "Unset as primary email" : "Remover como correo electrónico principal",
- "Set as primary email" : "Establecer como correo electrónico principal",
- "Additional email address {index}" : "Dirección de correo electrónico adicional {index}",
- "Unable to delete primary email address" : "No se pudo eliminar la dirección de correo electrónico principal",
- "Unable to update primary email address" : "No se pudo actualizar la dirección de correo electrónico principal",
- "Unable to add additional email address" : "No se pudo agregar la dirección de correo electrónico adicional",
- "Unable to update additional email address" : "No se pudo actualizar la dirección de correo electrónico adicional",
- "Unable to delete additional email address" : "No se pudo eliminar la dirección de correo electrónico adicional",
- "Primary email for password reset and notifications" : "Correo electrónico principal para restablecer la contraseña y notificaciones",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Your handle" : "Tu usuario",
- "Derived from your locale ({weekDayName})" : "Obtenido de tu locale ({weekDayName})",
- "Unable to update first day of week" : "No se pudo modificar el primer día de la semana",
- "Day to use as the first day of week" : "Primer día de la semana",
- "Your headline" : "Tu titular",
- "Unable to update language" : "No se pudo actualizar tu idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Ayudá a traducir",
- "No language set" : "No hay ningún idioma configurado",
- "Unable to update locale" : "No se pudo actualizar la configuración regional",
- "Locales" : "Configuración regional",
- "Week starts on {firstDayOfWeek}" : "La semana empieza el {firstDayOfWeek}",
- "No locale set" : "No hay ninguna configuración regional",
- "Your city" : "Tu ciudad",
- "Your organisation" : "Tu organización",
- "Your phone number" : "Tu número de teléfono",
- "Edit your Profile visibility" : "Editar la visibilidad de tu perfil",
- "Unable to update profile enabled state" : "No se pudo actualizar la habilitación del perfil",
- "Enable profile" : "Habilitar 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 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}",
- "she/her" : "ella",
- "he/him" : "él",
- "they/them" : "elle",
- "Your role" : "Tu rol",
- "Your X (formerly Twitter) handle" : "Tu usuario de X (anteriormente Twitter)",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre para mostrar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Account name" : "Nombre de la cuenta",
- "Group admin for" : "Administrador del grupo para",
- "Account backend" : "Backend de la cuenta",
- "Storage location" : "Úbicación del almacenamiento",
- "First login" : "Primer inicio de sesión",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usados",
- "Delete account" : "Borrar cuenta",
- "Disconnect all devices and delete local data" : "Desconectar todos los dispositivos y eliminar los datos locales",
- "Disable account" : "Deshabilitar la cuenta",
- "Enable account" : "Habilitar la cuenta",
- "Resend welcome email" : "Volver a enviar el correo electrónico de bienvenida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En caso de pérdida del dispositivo o salida de la organización, esto puede borrar de forma remota los datos de Nextcloud de todos los dispositivos asociados con {userid}. Funciona únicamente si los dispositivos están conectados a Internet.",
- "Remote wipe of devices" : "Borrado remoto de dispositivos",
- "Wipe {userid}'s devices" : "Borrar los dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Se borraron los dispositivos de {userid}",
- "Failed to update line manager" : "No se pudo actualizar el superior inmediato",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar completamente la cuenta de {userid}, incluyendo todos sus archivos personales, datos de las aplicaciones, etc.",
- "Account deletion" : "Eliminación de la cuenta",
- "Delete {userid}'s account" : "Eliminar la cuenta de {userid}",
- "Display name was successfully changed" : "Se cambió correctamente el nombre para mostrar",
- "Password can't be empty" : "La contraseña no puede estar en blanco",
- "Password was successfully changed" : "La contraseña se cambió correctamente",
- "Email can't be empty" : "El correo electrónico no puede estar en blanco",
- "Email was successfully changed" : "El correo electrónico se cambió correctamente",
- "Welcome mail sent!" : "¡Correo electrónico de bienvenida enviado!",
- "Loading account …" : "Cargando cuenta ...",
- "Change display name" : "Cambiar el nombre a mostrar",
- "Set new password" : "Establecer nueva contraseña",
- "You do not have permissions to see the details of this account" : "No tenés permisos para ver los detalles de esta cuenta",
- "Set new email address" : "Establecer nueva dirección de correo electrónico",
- "Add account to group" : "Agregar cuenta al grupo",
- "Set account as admin for" : "Establecer cuenta como administrador de",
- "Select account quota" : "Seleccionar la cuota de la cuenta",
- "Set the language" : "Establecer el lenguaje",
- "Toggle account actions menu" : "Alternar menú de acciones de cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Account management settings" : "Configuración de administración de cuentas",
- "Visibility" : "Visibilidad",
- "Show language" : "Mostrar lenguaje",
- "Show account backend" : "Mostrar el backend de la cuenta",
- "Show storage path" : "Mostrar la ruta de almacenamiento",
- "Show first login" : "Mostrar primer inicio de sesión",
- "Show last login" : "Mostrar último inicio de sesión",
- "Sorting" : "Orden",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuración de sistema fuerza a que los grupos sean ordenados por nombre. Esto también impide mostrar la cantidad de miembros.",
- "Group list sorting" : "Ordenamiento de la lista de grupos",
- "By member count" : "Por cantidad de miembros",
- "By name" : "Por nombre",
- "Send email" : "Enviar correo electrónico",
- "Send welcome email to new accounts" : "Enviar un correo electrónico de bienvenida a usuarios nuevos",
- "Defaults" : "Valores por defecto",
- "Default quota" : "Cuota predeterminada",
- "Select default quota" : "Seleccionar la cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error en el servidor al intentar completar el registro del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "La autenticación sin contraseña requiere una conexión segura.",
- "Add WebAuthn device" : "Agregar dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorizá tu dispositivo WebAuthn.",
- "Adding your device …" : "Agregando tu dispositivo...",
- "Unnamed device" : "Dispositivo sin nombre",
- "Passwordless Authentication" : "Autenticación sin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configurá tu cuenta para la autenticación sin contraseña siguiendo el estándar FIDO2.",
- "No devices configured." : "No hay ningún dispositivo configurado.",
- "The following devices are configured for your account:" : "Los siguientes dispositivos están configurados para tu cuenta:",
- "Your browser does not support WebAuthn." : "Tu navegador no admite WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, usted puede hacer ajustes finos al comportamiento de compartir. Favor de consultar la documentación para más información. ",
- "You need to enable the File sharing App." : "Tenés que habilitar la aplicación Compartir archivos.",
- "App Store" : "Tienda de aplicaciones",
- "Loading app list" : "Cargando la lista de aplicaciones",
- "Loading categories" : "Cargando categorías",
- "Developer documentation ↗" : "Documentación del desarrollador ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, bajo licencia {license}",
- "Version {version}" : "Versión {version}",
- "All accounts" : "Todas las cuentas",
- "Admins" : "Administradores",
- "Account group: {group}" : "Grupo de cuentas: {group}",
- "Account management" : "Administración de cuentas",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Por razones de rendimiento, cuando actives el cifrado en un servidor Nextcloud sólo se cifrarán los archivos nuevos y modificados.",
@@ -512,6 +321,7 @@ OC.L10N.register(
"Date of birth" : "Fecha de nacimiento",
"Full name" : "Nombre completo",
"Additional email" : "Correo electrónico adicional",
+ "Email" : "Correo electrónico",
"Fediverse (e.g. Mastodon)" : "Fediverso (p.ej. Mastodon)",
"Headline" : "Títular",
"Organisation" : "Organización",
@@ -521,6 +331,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidad del perfil",
+ "Language" : "Idioma",
"Locale" : "Configuración regional",
"First day of week" : "Primer día de la semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No está disponible porque esta propiedad es necesaria para la funcionalidad básica, incluyendo el compartir archivos y las invitaciones de calendario",
@@ -538,6 +349,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Visible únicamente para usuarios conectados",
"Hide" : "Invisible",
"Manually installed apps cannot be updated" : "Las aplicaciones instaladas manualmente no pueden ser actualizadas",
+ "Update to {version}" : "Actualizar a {version}",
"{progress}% Deploying …" : "Desplegando {progress}%",
"{progress}% Initializing …" : "Inicializando {progress}%",
"Health checking" : "Revisión de salud del servidor",
@@ -547,6 +359,7 @@ OC.L10N.register(
"Allow untested app" : "Permitir aplicación no probada",
"The app will be downloaded from the App Store" : "La aplicación será descargada de la tienda de aplicaciones",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta aplicación no está marcada como compatible con tu versión de Nextcloud. Si continuás podrás instalar la aplicación, pero tené en cuenta que podría no funcionar según lo esperado.",
+ "{size} used" : "{size} usados",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"Could not register device: Network error" : "No se pudo registrar el dispositivo: error de red",
@@ -565,8 +378,10 @@ OC.L10N.register(
"Could not set group sorting" : "No se pudo establecer el ordenamiento de grupos",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hubo demasiadas solicitudes desde tu red. Volvé a intentarlo más tarde o ponete en contacto con tu administrador si se trata de un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
"Account documentation" : "Documentación de la cuenta",
"Administration documentation" : "Documentación de administración",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Nextcloud help & privacy resources" : "Ayuda de Nextcloud y recursos de privacidad",
"General documentation" : "Documentación general",
@@ -589,6 +404,7 @@ OC.L10N.register(
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
"Test and verify email settings" : "Probar y verificar la configuración del correo electrónico",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Es importante para la seguridad y rendimiento de tu instancia que todo esté configurado correctamente. Para ayudarte con eso estamos haciendo algunas comprobaciones automáticas. Consultá la documentación para mayor información.",
"All checks passed." : "Todas las verificaciones fueron exitosas.",
@@ -608,36 +424,9 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Usá un segundo factor además de tu contraseña para aumentar la seguridad de tu cuenta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si usás aplicaciones de terceros para conectarte a Nextcloud, por favor asegurate de crear y configurar una contraseña de app para cada una antes de activar la autenticación en dos pasos.",
"Logged in account must be a subadmin" : "La cuenta conectada debe ser de un subadministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que este chequeo se lleve a cabo, tenés que asegurarte de que tu servidor pueda conectarse a sí mismo. Por tanto, este debe poder resolver y conectarse a alguno de sus `trusted_domains` o al url definido en `overwrite.cli.url`",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta el índice opcional \"%s\" en la tabla \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos le faltan algunos índices. Dado que agregar índices a tablas grandes puede llevar bastante tiempo, no se han agregado automáticamente. Ejecutando \"occ db:add-missing-indices\" se pueden agregar manualmente los índices faltantes mientras la instancia sigue corriendo. Una vez agregados los índices, las consultas a esas tablas suelen ser mucho más rápidas.",
"File locking" : "Bloqueo de archivos",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "El bloqueo transaccional de archivos está desactivado, lo que podría ocasionar problemas de race conditions. Habilitá \"filelocking.enabled\" en config.php para evitar estos problemas.",
"for WebAuthn passwordless login" : "para el inicio de sesión sin contraseña de WebAuthn",
- "for WebAuthn passwordless login, and SFTP storage" : "para el inicio de sesión sin contraseña de WebAuthn y el almacenamiento SFTP",
- "Your biography" : "Tu biografía",
- "You are using <strong>{usage}</strong>" : "Estás usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Estás usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Establecer el administrador del usuario",
- "Username will be autogenerated" : "El nombre del usuario se generará automáticamente",
- "Username (required)" : "Nombre del usuario (requerido)",
- "New user" : "Nuevo usuario",
- "Groups (required)" : "Grupos (requerido)",
- "Set user groups" : "Establecer grupos del usuario",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Establecer al usuario como administrador de...",
- "Set user quota" : "Establecer la cuota del usuario",
- "Add new user" : "Agregar un nuevo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario...","{userCount} usuarios...","{userCount} usuarios..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios...",
- "Username" : "Nombre de usuario",
- "User backend" : "Backend del usuario",
- "User actions" : "Acciones de usuario",
- "Add user to group" : "Agregar usuario al grupo",
- "Server error while trying to add WebAuthn device" : "Error del servidor al intentar agregar el dispositivo WebAuthn",
- "Name your device" : "Dale un nombre a tu dispositivo",
- "Active accounts" : "Cuentas activas",
- "Follow us on Twitter" : "Seguinos en Twitter"
+ "for WebAuthn passwordless login, and SFTP storage" : "para el inicio de sesión sin contraseña de WebAuthn y el almacenamiento SFTP"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_AR.json b/apps/settings/l10n/es_AR.json
index a57e5f1757f..880e99d48e3 100644
--- a/apps/settings/l10n/es_AR.json
+++ b/apps/settings/l10n/es_AR.json
@@ -277,48 +277,12 @@
"Group name" : "Nombre del grupo",
"Please enter a valid group name" : "Ingresá un nombre de grupo válido",
"Loading" : "Cargando",
- "Type" : "Escribir",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conozca más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visitá el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "Sin resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categoría",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporte un tema",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentar",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles conectados actualmente a tu cuenta.",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Inicio de sesión",
"Password" : "Contraseña",
"Unable to update profile default setting" : "No se pudo actualizar la configuración por defecto del perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Habilitar o deshabilitar el perfil por defecto para cuentas nuevas.",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Failed to save setting" : "No se pudo guardar la configuración",
"{app}'s declarative setting field: {name}" : "Campo de configuración declarativa de {app}: {name}",
"Unable to update server side encryption config" : "No se pudo actualizar la configuración de cifrado en el servidor",
@@ -341,166 +305,11 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea crear copias de seguridad de tus datos, en el caso del cifrado asegurate de tener una copia de seguridad de las claves de cifrado junto con tus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consultá la documentación del administrador para saber cómo cifrar manualmente también los archivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final. ¿Realmente querés activar el cifrado?",
- "Failed to remove group \"{group}\"" : "No se pudo eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor confirmá la eliminación del grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Vas a eliminar el grupo {group}. Los usuarios NO serán eliminados.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Cambiar nombre del grupo",
- "Remove group" : "Eliminar grupo",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Choose your profile picture" : "Elegí tu foto del perfil",
- "Please select a valid png or jpg file" : "Por favor, seleccioná un archivo PNG o JPG válido",
- "Error setting profile picture" : "Error al establecer la foto del perfil",
- "Error cropping profile picture" : "Error al recortar la foto del perfil",
- "Error saving profile picture" : "Error al guardar la foto del perfil",
- "Error removing profile picture" : "Error al eliminar la foto del perfil",
- "Your profile picture" : "Tu foto del perfil",
- "Upload profile picture" : "Subir foto del perfil",
- "Choose profile picture from Files" : "Elegir foto del perfil desde Archivos",
- "Remove profile picture" : "Eliminar la foto del perfil",
- "The file must be a PNG or JPG" : "El archivo debe ser PNG o JPG",
- "Picture provided by original account" : "Imagen proporcionadoa por la cuenta original ",
- "Set as profile picture" : "Establecer como foto del perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tené en cuenta que puede llevar hasta 24 horas para que tu foto del perfil se actualice en todos lados.",
- "Your biography. Markdown is supported." : "Tu biografía. Se admite Markdown.",
- "Unable to update date of birth" : "No se pudo actualizar tu fecha de nacimiento",
- "Enter your date of birth" : "Ingresá tu fecha de nacimiento",
- "You are using {s}{usage}{/s}" : "Estás usando {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Estás usando {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Sos miembro de los siguientes grupos:",
- "Your full name" : "Tu nombre completo",
- "Email options" : "Opciones de correo electrónico",
- "Options for additional email address {index}" : "Opciones para la dirección de correo electrónico adicional {index}",
- "Remove primary email" : "Eliminar correo electrónico principal",
- "Delete email" : "Eliminar correo electrónico",
- "This address is not confirmed" : "Esta dirección no está confirmada",
- "Unset as primary email" : "Remover como correo electrónico principal",
- "Set as primary email" : "Establecer como correo electrónico principal",
- "Additional email address {index}" : "Dirección de correo electrónico adicional {index}",
- "Unable to delete primary email address" : "No se pudo eliminar la dirección de correo electrónico principal",
- "Unable to update primary email address" : "No se pudo actualizar la dirección de correo electrónico principal",
- "Unable to add additional email address" : "No se pudo agregar la dirección de correo electrónico adicional",
- "Unable to update additional email address" : "No se pudo actualizar la dirección de correo electrónico adicional",
- "Unable to delete additional email address" : "No se pudo eliminar la dirección de correo electrónico adicional",
- "Primary email for password reset and notifications" : "Correo electrónico principal para restablecer la contraseña y notificaciones",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Your handle" : "Tu usuario",
- "Derived from your locale ({weekDayName})" : "Obtenido de tu locale ({weekDayName})",
- "Unable to update first day of week" : "No se pudo modificar el primer día de la semana",
- "Day to use as the first day of week" : "Primer día de la semana",
- "Your headline" : "Tu titular",
- "Unable to update language" : "No se pudo actualizar tu idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Ayudá a traducir",
- "No language set" : "No hay ningún idioma configurado",
- "Unable to update locale" : "No se pudo actualizar la configuración regional",
- "Locales" : "Configuración regional",
- "Week starts on {firstDayOfWeek}" : "La semana empieza el {firstDayOfWeek}",
- "No locale set" : "No hay ninguna configuración regional",
- "Your city" : "Tu ciudad",
- "Your organisation" : "Tu organización",
- "Your phone number" : "Tu número de teléfono",
- "Edit your Profile visibility" : "Editar la visibilidad de tu perfil",
- "Unable to update profile enabled state" : "No se pudo actualizar la habilitación del perfil",
- "Enable profile" : "Habilitar 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 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}",
- "she/her" : "ella",
- "he/him" : "él",
- "they/them" : "elle",
- "Your role" : "Tu rol",
- "Your X (formerly Twitter) handle" : "Tu usuario de X (anteriormente Twitter)",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre para mostrar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Account name" : "Nombre de la cuenta",
- "Group admin for" : "Administrador del grupo para",
- "Account backend" : "Backend de la cuenta",
- "Storage location" : "Úbicación del almacenamiento",
- "First login" : "Primer inicio de sesión",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usados",
- "Delete account" : "Borrar cuenta",
- "Disconnect all devices and delete local data" : "Desconectar todos los dispositivos y eliminar los datos locales",
- "Disable account" : "Deshabilitar la cuenta",
- "Enable account" : "Habilitar la cuenta",
- "Resend welcome email" : "Volver a enviar el correo electrónico de bienvenida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En caso de pérdida del dispositivo o salida de la organización, esto puede borrar de forma remota los datos de Nextcloud de todos los dispositivos asociados con {userid}. Funciona únicamente si los dispositivos están conectados a Internet.",
- "Remote wipe of devices" : "Borrado remoto de dispositivos",
- "Wipe {userid}'s devices" : "Borrar los dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Se borraron los dispositivos de {userid}",
- "Failed to update line manager" : "No se pudo actualizar el superior inmediato",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar completamente la cuenta de {userid}, incluyendo todos sus archivos personales, datos de las aplicaciones, etc.",
- "Account deletion" : "Eliminación de la cuenta",
- "Delete {userid}'s account" : "Eliminar la cuenta de {userid}",
- "Display name was successfully changed" : "Se cambió correctamente el nombre para mostrar",
- "Password can't be empty" : "La contraseña no puede estar en blanco",
- "Password was successfully changed" : "La contraseña se cambió correctamente",
- "Email can't be empty" : "El correo electrónico no puede estar en blanco",
- "Email was successfully changed" : "El correo electrónico se cambió correctamente",
- "Welcome mail sent!" : "¡Correo electrónico de bienvenida enviado!",
- "Loading account …" : "Cargando cuenta ...",
- "Change display name" : "Cambiar el nombre a mostrar",
- "Set new password" : "Establecer nueva contraseña",
- "You do not have permissions to see the details of this account" : "No tenés permisos para ver los detalles de esta cuenta",
- "Set new email address" : "Establecer nueva dirección de correo electrónico",
- "Add account to group" : "Agregar cuenta al grupo",
- "Set account as admin for" : "Establecer cuenta como administrador de",
- "Select account quota" : "Seleccionar la cuota de la cuenta",
- "Set the language" : "Establecer el lenguaje",
- "Toggle account actions menu" : "Alternar menú de acciones de cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Account management settings" : "Configuración de administración de cuentas",
- "Visibility" : "Visibilidad",
- "Show language" : "Mostrar lenguaje",
- "Show account backend" : "Mostrar el backend de la cuenta",
- "Show storage path" : "Mostrar la ruta de almacenamiento",
- "Show first login" : "Mostrar primer inicio de sesión",
- "Show last login" : "Mostrar último inicio de sesión",
- "Sorting" : "Orden",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuración de sistema fuerza a que los grupos sean ordenados por nombre. Esto también impide mostrar la cantidad de miembros.",
- "Group list sorting" : "Ordenamiento de la lista de grupos",
- "By member count" : "Por cantidad de miembros",
- "By name" : "Por nombre",
- "Send email" : "Enviar correo electrónico",
- "Send welcome email to new accounts" : "Enviar un correo electrónico de bienvenida a usuarios nuevos",
- "Defaults" : "Valores por defecto",
- "Default quota" : "Cuota predeterminada",
- "Select default quota" : "Seleccionar la cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error en el servidor al intentar completar el registro del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "La autenticación sin contraseña requiere una conexión segura.",
- "Add WebAuthn device" : "Agregar dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorizá tu dispositivo WebAuthn.",
- "Adding your device …" : "Agregando tu dispositivo...",
- "Unnamed device" : "Dispositivo sin nombre",
- "Passwordless Authentication" : "Autenticación sin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configurá tu cuenta para la autenticación sin contraseña siguiendo el estándar FIDO2.",
- "No devices configured." : "No hay ningún dispositivo configurado.",
- "The following devices are configured for your account:" : "Los siguientes dispositivos están configurados para tu cuenta:",
- "Your browser does not support WebAuthn." : "Tu navegador no admite WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, usted puede hacer ajustes finos al comportamiento de compartir. Favor de consultar la documentación para más información. ",
- "You need to enable the File sharing App." : "Tenés que habilitar la aplicación Compartir archivos.",
- "App Store" : "Tienda de aplicaciones",
- "Loading app list" : "Cargando la lista de aplicaciones",
- "Loading categories" : "Cargando categorías",
- "Developer documentation ↗" : "Documentación del desarrollador ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, bajo licencia {license}",
- "Version {version}" : "Versión {version}",
- "All accounts" : "Todas las cuentas",
- "Admins" : "Administradores",
- "Account group: {group}" : "Grupo de cuentas: {group}",
- "Account management" : "Administración de cuentas",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Por razones de rendimiento, cuando actives el cifrado en un servidor Nextcloud sólo se cifrarán los archivos nuevos y modificados.",
@@ -510,6 +319,7 @@
"Date of birth" : "Fecha de nacimiento",
"Full name" : "Nombre completo",
"Additional email" : "Correo electrónico adicional",
+ "Email" : "Correo electrónico",
"Fediverse (e.g. Mastodon)" : "Fediverso (p.ej. Mastodon)",
"Headline" : "Títular",
"Organisation" : "Organización",
@@ -519,6 +329,7 @@
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidad del perfil",
+ "Language" : "Idioma",
"Locale" : "Configuración regional",
"First day of week" : "Primer día de la semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No está disponible porque esta propiedad es necesaria para la funcionalidad básica, incluyendo el compartir archivos y las invitaciones de calendario",
@@ -536,6 +347,7 @@
"Show to logged in accounts only" : "Visible únicamente para usuarios conectados",
"Hide" : "Invisible",
"Manually installed apps cannot be updated" : "Las aplicaciones instaladas manualmente no pueden ser actualizadas",
+ "Update to {version}" : "Actualizar a {version}",
"{progress}% Deploying …" : "Desplegando {progress}%",
"{progress}% Initializing …" : "Inicializando {progress}%",
"Health checking" : "Revisión de salud del servidor",
@@ -545,6 +357,7 @@
"Allow untested app" : "Permitir aplicación no probada",
"The app will be downloaded from the App Store" : "La aplicación será descargada de la tienda de aplicaciones",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta aplicación no está marcada como compatible con tu versión de Nextcloud. Si continuás podrás instalar la aplicación, pero tené en cuenta que podría no funcionar según lo esperado.",
+ "{size} used" : "{size} usados",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"Could not register device: Network error" : "No se pudo registrar el dispositivo: error de red",
@@ -563,8 +376,10 @@
"Could not set group sorting" : "No se pudo establecer el ordenamiento de grupos",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hubo demasiadas solicitudes desde tu red. Volvé a intentarlo más tarde o ponete en contacto con tu administrador si se trata de un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
"Account documentation" : "Documentación de la cuenta",
"Administration documentation" : "Documentación de administración",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Nextcloud help & privacy resources" : "Ayuda de Nextcloud y recursos de privacidad",
"General documentation" : "Documentación general",
@@ -587,6 +402,7 @@
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
"Test and verify email settings" : "Probar y verificar la configuración del correo electrónico",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Es importante para la seguridad y rendimiento de tu instancia que todo esté configurado correctamente. Para ayudarte con eso estamos haciendo algunas comprobaciones automáticas. Consultá la documentación para mayor información.",
"All checks passed." : "Todas las verificaciones fueron exitosas.",
@@ -606,36 +422,9 @@
"Use a second factor besides your password to increase security for your account." : "Usá un segundo factor además de tu contraseña para aumentar la seguridad de tu cuenta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si usás aplicaciones de terceros para conectarte a Nextcloud, por favor asegurate de crear y configurar una contraseña de app para cada una antes de activar la autenticación en dos pasos.",
"Logged in account must be a subadmin" : "La cuenta conectada debe ser de un subadministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que este chequeo se lleve a cabo, tenés que asegurarte de que tu servidor pueda conectarse a sí mismo. Por tanto, este debe poder resolver y conectarse a alguno de sus `trusted_domains` o al url definido en `overwrite.cli.url`",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta el índice opcional \"%s\" en la tabla \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos le faltan algunos índices. Dado que agregar índices a tablas grandes puede llevar bastante tiempo, no se han agregado automáticamente. Ejecutando \"occ db:add-missing-indices\" se pueden agregar manualmente los índices faltantes mientras la instancia sigue corriendo. Una vez agregados los índices, las consultas a esas tablas suelen ser mucho más rápidas.",
"File locking" : "Bloqueo de archivos",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "El bloqueo transaccional de archivos está desactivado, lo que podría ocasionar problemas de race conditions. Habilitá \"filelocking.enabled\" en config.php para evitar estos problemas.",
"for WebAuthn passwordless login" : "para el inicio de sesión sin contraseña de WebAuthn",
- "for WebAuthn passwordless login, and SFTP storage" : "para el inicio de sesión sin contraseña de WebAuthn y el almacenamiento SFTP",
- "Your biography" : "Tu biografía",
- "You are using <strong>{usage}</strong>" : "Estás usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Estás usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Establecer el administrador del usuario",
- "Username will be autogenerated" : "El nombre del usuario se generará automáticamente",
- "Username (required)" : "Nombre del usuario (requerido)",
- "New user" : "Nuevo usuario",
- "Groups (required)" : "Grupos (requerido)",
- "Set user groups" : "Establecer grupos del usuario",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Establecer al usuario como administrador de...",
- "Set user quota" : "Establecer la cuota del usuario",
- "Add new user" : "Agregar un nuevo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario...","{userCount} usuarios...","{userCount} usuarios..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios...",
- "Username" : "Nombre de usuario",
- "User backend" : "Backend del usuario",
- "User actions" : "Acciones de usuario",
- "Add user to group" : "Agregar usuario al grupo",
- "Server error while trying to add WebAuthn device" : "Error del servidor al intentar agregar el dispositivo WebAuthn",
- "Name your device" : "Dale un nombre a tu dispositivo",
- "Active accounts" : "Cuentas activas",
- "Follow us on Twitter" : "Seguinos en Twitter"
+ "for WebAuthn passwordless login, and SFTP storage" : "para el inicio de sesión sin contraseña de WebAuthn y el almacenamiento SFTP"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_CL.js b/apps/settings/l10n/es_CL.js
index c932220248f..783ef49861e 100644
--- a/apps/settings/l10n/es_CL.js
+++ b/apps/settings/l10n/es_CL.js
@@ -106,46 +106,9 @@ OC.L10N.register(
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -157,56 +120,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -222,14 +162,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_CL.json b/apps/settings/l10n/es_CL.json
index 62934bb093e..a92ba3e5ae7 100644
--- a/apps/settings/l10n/es_CL.json
+++ b/apps/settings/l10n/es_CL.json
@@ -104,46 +104,9 @@
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -155,56 +118,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -220,14 +160,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_CO.js b/apps/settings/l10n/es_CO.js
index 5d8a9eb6dac..461e76412f7 100644
--- a/apps/settings/l10n/es_CO.js
+++ b/apps/settings/l10n/es_CO.js
@@ -105,46 +105,9 @@ OC.L10N.register(
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -156,54 +119,32 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -219,14 +160,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_CO.json b/apps/settings/l10n/es_CO.json
index 84c9dde44b9..07e3082bd39 100644
--- a/apps/settings/l10n/es_CO.json
+++ b/apps/settings/l10n/es_CO.json
@@ -103,46 +103,9 @@
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -154,54 +117,32 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -217,14 +158,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_CR.js b/apps/settings/l10n/es_CR.js
index 69c1a438ed6..7dbe237ef5a 100644
--- a/apps/settings/l10n/es_CR.js
+++ b/apps/settings/l10n/es_CR.js
@@ -106,45 +106,9 @@ OC.L10N.register(
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -156,55 +120,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -220,14 +162,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_CR.json b/apps/settings/l10n/es_CR.json
index aafa425f83e..0ef34fe1660 100644
--- a/apps/settings/l10n/es_CR.json
+++ b/apps/settings/l10n/es_CR.json
@@ -104,45 +104,9 @@
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -154,55 +118,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -218,14 +160,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_DO.js b/apps/settings/l10n/es_DO.js
index 1b31f277732..303a5ac6e0f 100644
--- a/apps/settings/l10n/es_DO.js
+++ b/apps/settings/l10n/es_DO.js
@@ -105,45 +105,9 @@ OC.L10N.register(
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Daemon" : "Demonio",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -155,55 +119,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -219,14 +161,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_DO.json b/apps/settings/l10n/es_DO.json
index fcc3f24420a..7e67e4edcf5 100644
--- a/apps/settings/l10n/es_DO.json
+++ b/apps/settings/l10n/es_DO.json
@@ -103,45 +103,9 @@
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Daemon" : "Demonio",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -153,55 +117,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -217,14 +159,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_EC.js b/apps/settings/l10n/es_EC.js
index 142948761a3..ec2d1306d45 100644
--- a/apps/settings/l10n/es_EC.js
+++ b/apps/settings/l10n/es_EC.js
@@ -180,54 +180,6 @@ OC.L10N.register(
"Group name" : "Nombre del grupo",
"Loading groups…" : "Cargando grupos...",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "Limit app usage to groups" : "Limitar el uso de aplicaciones a grupos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Author" : "Autor",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "Aplicación de {productName} para iOS",
- "{productName} Android app" : "Aplicación de {productName} para Android",
- "{productName} Talk for iOS" : "{productName} Talk para iOS",
- "{productName} Talk for Android" : "{productName} Talk para Android",
- "This session" : "Esta sesión",
- "Marked for remote wipe" : "Marcado para borrado remoto",
- "Device settings" : "Configuración del dispositivo",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Wipe device" : "Borrar dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revocar este token podría evitar el borrado de tu dispositivo si aún no ha comenzado el borrado.",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Could not copy app password. Please copy it manually." : "No se pudo copiar la contraseña de la aplicación. Cópiala manualmente.",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
@@ -242,6 +194,7 @@ OC.L10N.register(
"Cron (Recommended)" : "Cron (recomendado)",
"Unable to update profile default setting" : "No se pudo actualizar la configuración predeterminada del perfil",
"Profile" : "Perfil",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Unable to update server side encryption config" : "No se pudo actualizar la configuración de cifrado en el servidor",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
@@ -256,131 +209,10 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
- "Remove group" : "Eliminar grupo",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Choose your profile picture" : "Elige tu foto de perfil",
- "Please select a valid png or jpg file" : "Selecciona un archivo válido PNG o JPG",
- "Error setting profile picture" : "Error al establecer la foto de perfil",
- "Error cropping profile picture" : "Error al recortar la foto de perfil",
- "Error saving profile picture" : "Error al guardar la foto de perfil",
- "Error removing profile picture" : "Error al eliminar la foto de perfil",
- "Your profile picture" : "Tu foto de perfil",
- "Upload profile picture" : "Subir foto de perfil",
- "Choose profile picture from Files" : "Elegir foto de perfil desde Archivos",
- "Remove profile picture" : "Eliminar foto de perfil",
- "The file must be a PNG or JPG" : "El archivo debe ser PNG o JPG",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "Set as profile picture" : "Establecer como foto de perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Ten en cuenta que puede tomar hasta 24 horas para que tu foto de perfil se actualice en todos lados.",
- "You are a member of the following groups:" : "Eres miembro de los siguientes grupos:",
- "Your full name" : "Tu nombre completo",
- "Email options" : "Opciones de correo electrónico",
- "Remove primary email" : "Eliminar correo electrónico principal",
- "Delete email" : "Eliminar correo electrónico",
- "This address is not confirmed" : "Esta dirección no está confirmada",
- "Unset as primary email" : "Quitar como correo electrónico principal",
- "Set as primary email" : "Establecer como correo electrónico principal",
- "Additional email address {index}" : "Dirección de correo electrónico adicional {index}",
- "Unable to delete primary email address" : "No se pudo eliminar la dirección de correo electrónico principal",
- "Unable to update primary email address" : "No se pudo actualizar la dirección de correo electrónico principal",
- "Unable to add additional email address" : "No se pudo agregar la dirección de correo electrónico adicional",
- "Unable to update additional email address" : "No se pudo actualizar la dirección de correo electrónico adicional",
- "Unable to delete additional email address" : "No se pudo eliminar la dirección de correo electrónico adicional",
- "Primary email for password reset and notifications" : "Correo electrónico principal para restablecimiento de contraseña y notificaciones",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Your handle" : "Nombre de usuario/a",
- "Your headline" : "Título",
- "Unable to update language" : "No se pudo actualizar el idioma",
- "Help translate" : "Ayuda a traducir",
- "No language set" : "No se ha configurado ningún idioma",
- "Unable to update locale" : "No se pudo actualizar la configuración regional",
- "Week starts on {firstDayOfWeek}" : "La semana comienza el {firstDayOfWeek}",
- "No locale set" : "No se ha configurado ninguna configuración regional",
- "Your city" : "Tu ciudad",
- "Your organisation" : "Tu organización",
- "Your phone number" : "Su número telefónico",
- "Edit your Profile visibility" : "Editar la visibilidad de tu 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 respeta la configuración más restrictiva de visibilidad o alcance en tu perfil. Por ejemplo, si la visibilidad está configurada en \"Mostrar a todos\" y el alcance está configurado en \"Privado\", se respeta \"Privado\".",
- "Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}",
- "Your role" : "Tu cargo",
- "Your website" : "Tu sitio web",
- "Unable to update {property}" : "No se pudo actualizar {property}",
- "No {property} set" : "Ningún {property} establecido",
- "Change scope level of {property}, current scope is {scope}" : "Cambiar el nivel de alcance de {property}, el alcance actual es {scope}",
- "Unable to update federation scope of the primary {property}" : "No se pudo actualizar el alcance de federación del {property} principal",
- "Unable to update federation scope of additional {property}" : "No se pudo actualizar el alcance de federación del {property} adicional",
- "Add additional email" : "Agregar correo electrónico adicional",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Reshare" : "Recompartir",
- "Default language" : "Idioma predeterminado",
- "Common languages" : "Idiomas comunes",
- "Other languages" : "Otros idiomas",
- "Password change is disabled because the master key is disabled" : "El cambio de contraseña está deshabilitado porque la clave maestra está deshabilitada",
- "Manager" : "Administrador",
- "Display name" : "Nombre a desplegar",
- "Either password or email is required" : "Se requiere una contraseña o un correo electrónico",
- "Password (required)" : "Contraseña (requerida)",
- "Email (required)" : "Correo electrónico (requerido)",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Set default language" : "Establecer idioma predeterminado",
- "Total rows summary" : "Resumen total de filas.",
- "Scroll to load more rows" : "Desplázate para cargar más filas",
- "Password or insufficient permissions message" : "Contraseña o mensaje de permisos insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nombre de la cuenta",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Resend welcome email" : "Reenviar correo de bienvenida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En caso de pérdida del dispositivo o salida de la organización, esto puede borrar de forma remota los datos de Nextcloud de todos los dispositivos asociados con {userid}. Solo funciona si los dispositivos están conectados a Internet.",
- "Remote wipe of devices" : "Borrado remoto de dispositivos",
- "Wipe {userid}'s devices" : "Borrar dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Se borraron los dispositivos de {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar por completo la cuenta de {userid}, incluidos todos los archivos personales, datos de aplicaciones, etc.",
- "Account deletion" : "Borrado de cuenta",
- "Delete {userid}'s account" : "Borrar la cuenta de {userid}",
- "Display name was successfully changed" : "Se cambió correctamente el nombre para mostrar",
- "Password was successfully changed" : "Se cambió correctamente la contraseña",
- "Email was successfully changed" : "Se cambió correctamente el correo electrónico",
- "Welcome mail sent!" : "¡Correo de bienvenida enviado!",
- "Set the language" : "Establecer el idioma",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Visibility" : "Visibilidad",
- "Show storage path" : "Mostrar ruta de almacenamiento",
- "Show last login" : "Mostrar último inicio de sesión",
- "Sorting" : "Ordenar",
- "Send email" : "Enviar correo electrónico",
- "Defaults" : "Valores predeterminados",
- "Default quota" : "Cuota predeterminada",
- "Select default quota" : "Seleccionar cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error del servidor al intentar completar el registro del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "La autenticación sin contraseña requiere una conexión segura.",
- "Add WebAuthn device" : "Agregar dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autoriza tu dispositivo WebAuthn.",
- "Adding your device …" : "Agregando tu dispositivo ...",
- "Unnamed device" : "Dispositivo sin nombre",
- "Passwordless Authentication" : "Autenticación sin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configura tu cuenta para la autenticación sin contraseña siguiendo el estándar FIDO2.",
- "No devices configured." : "No hay dispositivos configurados.",
- "The following devices are configured for your account:" : "Los siguientes dispositivos están configurados para tu cuenta:",
- "Your browser does not support WebAuthn." : "Tu navegador no admite WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "You need to enable the File sharing App." : "Debes habilitar la aplicación Compartir archivos.",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
@@ -388,6 +220,7 @@ OC.L10N.register(
"About" : "Acerca de",
"Full name" : "Nombre completo",
"Additional email" : "Correo electrónico adicional",
+ "Email" : "Correo electrónico",
"Fediverse (e.g. Mastodon)" : "Fediverse (por ejemplo, Mastodon)",
"Headline" : "Título",
"Organisation" : "Organización",
@@ -395,6 +228,7 @@ OC.L10N.register(
"Role" : "Rol",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidad del perfil",
+ "Language" : "Idioma",
"Locale" : "Configuración regional",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No disponible, ya que esta propiedad es necesaria para la funcionalidad básica, incluyendo el intercambio de archivos y las invitaciones de calendario.",
"Your apps" : "Tus aplicaciones",
@@ -405,10 +239,12 @@ OC.L10N.register(
"Featured apps" : "Aplicaciones destacadas",
"Show to everyone" : "Mostrar a todos",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Download and enable" : "Descargar y habilitar",
"Disable" : "Deshabilitar",
"The app will be downloaded from the App Store" : "La aplicación se descargará desde la App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta aplicación no está marcada como compatible con tu versión de Nextcloud. Si continúas, aún podrás instalar la aplicación. Ten en cuenta que es posible que la aplicación no funcione como se espera.",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"An error occurred during the request. Unable to proceed." : "Ocurrió un error durante la solicitud. No se puede continuar.",
@@ -421,6 +257,8 @@ OC.L10N.register(
"Error while updating device token scope" : "Error al actualizar el alcance del token del dispositivo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Había demasiadas solicitudes desde tu red. Vuelve a intentarlo más tarde o contacta a tu administrador si se trata de un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"Privacy policy" : "Política de privacidad",
@@ -440,6 +278,7 @@ OC.L10N.register(
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
"Test and verify email settings" : "Probar y verificar la configuración del correo electrónico",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Es importante para la seguridad y el rendimiento de tu instancia que todo esté configurado correctamente. Para ayudarte con eso, realizamos algunas comprobaciones automáticas. Consulta la documentación enlazada para obtener más información.",
"All checks passed." : "Pasaron todas las verificaciones. ",
@@ -457,34 +296,6 @@ OC.L10N.register(
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Esta versión comunitaria de Nextcloud no cuenta con soporte y las notificaciones instantáneas no están disponibles.",
"Use a second factor besides your password to increase security for your account." : "Utiliza un segundo factor además de tu contraseña para aumentar la seguridad de tu cuenta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si utilizas aplicaciones de terceros para conectarte a Nextcloud, asegúrate de crear y configurar una contraseña de aplicación para cada una antes de habilitar la autenticación de segundo factor.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos le faltan algunos índices. Debido a que agregar índices en tablas grandes puede llevar tiempo, no se agregaron automáticamente. Al ejecutar \"occ db:add-missing-indices\", se pueden agregar manualmente esos índices faltantes mientras la instancia sigue funcionando. Una vez que se agregan los índices, las consultas a esas tablas suelen ser mucho más rápidas.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Se está utilizando la versión \"%s\" de MariaDB. Nextcloud 21 y versiones posteriores no admiten esta versión y requieren MariaDB 10.2 o superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Se está utilizando la versión \"%s\" de MySQL. Nextcloud 21 y versiones posteriores no admiten esta versión y requieren MySQL 8.0 o MariaDB 10.2 o superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Se está utilizando la versión \"%s\" de PostgreSQL. Nextcloud 21 y versiones posteriores no admiten esta versión y requieren PostgreSQL 9.6 o superior.",
- "Set default expiration date for shares" : "Establecer fecha de vencimiento predeterminada para los compartidos",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir autocompletado de nombre de usuario en el cuadro de diálogo de compartir y permitir acceso a la libreta de direcciones del sistema",
- "Your biography" : "Tu biografía",
- "You are using <strong>{usage}</strong>" : "Estás usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Estás usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Establecer al usuario como administrador",
- "Username will be autogenerated" : "El nombre de usuario se generará automáticamente",
- "Username (required)" : "Nombre de usuario (requerido)",
- "New user" : "Nuevo usuario",
- "Groups (required)" : "Grupos (requeridos)",
- "Set user groups" : "Establecer grupos de usuario",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Establecer al usuario como administrador de ...",
- "Set user quota" : "Establecer cuota de usuario",
- "Add new user" : "Agregar nuevo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario ...","{userCount} usuarios ...","{userCount} usuarios ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios...",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "User actions" : "Acciones de usuario",
- "Add user to group" : "Agregar usuario al grupo",
- "Server error while trying to add WebAuthn device" : "Error del servidor al intentar agregar el dispositivo WebAuthn",
- "Name your device" : "Nombra tu dispositivo",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Set default expiration date for shares" : "Establecer fecha de vencimiento predeterminada para los compartidos"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_EC.json b/apps/settings/l10n/es_EC.json
index a24e1117084..5de2b50b2b3 100644
--- a/apps/settings/l10n/es_EC.json
+++ b/apps/settings/l10n/es_EC.json
@@ -178,54 +178,6 @@
"Group name" : "Nombre del grupo",
"Loading groups…" : "Cargando grupos...",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "Limit app usage to groups" : "Limitar el uso de aplicaciones a grupos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Author" : "Autor",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "Aplicación de {productName} para iOS",
- "{productName} Android app" : "Aplicación de {productName} para Android",
- "{productName} Talk for iOS" : "{productName} Talk para iOS",
- "{productName} Talk for Android" : "{productName} Talk para Android",
- "This session" : "Esta sesión",
- "Marked for remote wipe" : "Marcado para borrado remoto",
- "Device settings" : "Configuración del dispositivo",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Wipe device" : "Borrar dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revocar este token podría evitar el borrado de tu dispositivo si aún no ha comenzado el borrado.",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Could not copy app password. Please copy it manually." : "No se pudo copiar la contraseña de la aplicación. Cópiala manualmente.",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
@@ -240,6 +192,7 @@
"Cron (Recommended)" : "Cron (recomendado)",
"Unable to update profile default setting" : "No se pudo actualizar la configuración predeterminada del perfil",
"Profile" : "Perfil",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Unable to update server side encryption config" : "No se pudo actualizar la configuración de cifrado en el servidor",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
@@ -254,131 +207,10 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
- "Remove group" : "Eliminar grupo",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Choose your profile picture" : "Elige tu foto de perfil",
- "Please select a valid png or jpg file" : "Selecciona un archivo válido PNG o JPG",
- "Error setting profile picture" : "Error al establecer la foto de perfil",
- "Error cropping profile picture" : "Error al recortar la foto de perfil",
- "Error saving profile picture" : "Error al guardar la foto de perfil",
- "Error removing profile picture" : "Error al eliminar la foto de perfil",
- "Your profile picture" : "Tu foto de perfil",
- "Upload profile picture" : "Subir foto de perfil",
- "Choose profile picture from Files" : "Elegir foto de perfil desde Archivos",
- "Remove profile picture" : "Eliminar foto de perfil",
- "The file must be a PNG or JPG" : "El archivo debe ser PNG o JPG",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "Set as profile picture" : "Establecer como foto de perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Ten en cuenta que puede tomar hasta 24 horas para que tu foto de perfil se actualice en todos lados.",
- "You are a member of the following groups:" : "Eres miembro de los siguientes grupos:",
- "Your full name" : "Tu nombre completo",
- "Email options" : "Opciones de correo electrónico",
- "Remove primary email" : "Eliminar correo electrónico principal",
- "Delete email" : "Eliminar correo electrónico",
- "This address is not confirmed" : "Esta dirección no está confirmada",
- "Unset as primary email" : "Quitar como correo electrónico principal",
- "Set as primary email" : "Establecer como correo electrónico principal",
- "Additional email address {index}" : "Dirección de correo electrónico adicional {index}",
- "Unable to delete primary email address" : "No se pudo eliminar la dirección de correo electrónico principal",
- "Unable to update primary email address" : "No se pudo actualizar la dirección de correo electrónico principal",
- "Unable to add additional email address" : "No se pudo agregar la dirección de correo electrónico adicional",
- "Unable to update additional email address" : "No se pudo actualizar la dirección de correo electrónico adicional",
- "Unable to delete additional email address" : "No se pudo eliminar la dirección de correo electrónico adicional",
- "Primary email for password reset and notifications" : "Correo electrónico principal para restablecimiento de contraseña y notificaciones",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Your handle" : "Nombre de usuario/a",
- "Your headline" : "Título",
- "Unable to update language" : "No se pudo actualizar el idioma",
- "Help translate" : "Ayuda a traducir",
- "No language set" : "No se ha configurado ningún idioma",
- "Unable to update locale" : "No se pudo actualizar la configuración regional",
- "Week starts on {firstDayOfWeek}" : "La semana comienza el {firstDayOfWeek}",
- "No locale set" : "No se ha configurado ninguna configuración regional",
- "Your city" : "Tu ciudad",
- "Your organisation" : "Tu organización",
- "Your phone number" : "Su número telefónico",
- "Edit your Profile visibility" : "Editar la visibilidad de tu 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 respeta la configuración más restrictiva de visibilidad o alcance en tu perfil. Por ejemplo, si la visibilidad está configurada en \"Mostrar a todos\" y el alcance está configurado en \"Privado\", se respeta \"Privado\".",
- "Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}",
- "Your role" : "Tu cargo",
- "Your website" : "Tu sitio web",
- "Unable to update {property}" : "No se pudo actualizar {property}",
- "No {property} set" : "Ningún {property} establecido",
- "Change scope level of {property}, current scope is {scope}" : "Cambiar el nivel de alcance de {property}, el alcance actual es {scope}",
- "Unable to update federation scope of the primary {property}" : "No se pudo actualizar el alcance de federación del {property} principal",
- "Unable to update federation scope of additional {property}" : "No se pudo actualizar el alcance de federación del {property} adicional",
- "Add additional email" : "Agregar correo electrónico adicional",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Reshare" : "Recompartir",
- "Default language" : "Idioma predeterminado",
- "Common languages" : "Idiomas comunes",
- "Other languages" : "Otros idiomas",
- "Password change is disabled because the master key is disabled" : "El cambio de contraseña está deshabilitado porque la clave maestra está deshabilitada",
- "Manager" : "Administrador",
- "Display name" : "Nombre a desplegar",
- "Either password or email is required" : "Se requiere una contraseña o un correo electrónico",
- "Password (required)" : "Contraseña (requerida)",
- "Email (required)" : "Correo electrónico (requerido)",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Set default language" : "Establecer idioma predeterminado",
- "Total rows summary" : "Resumen total de filas.",
- "Scroll to load more rows" : "Desplázate para cargar más filas",
- "Password or insufficient permissions message" : "Contraseña o mensaje de permisos insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nombre de la cuenta",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Resend welcome email" : "Reenviar correo de bienvenida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En caso de pérdida del dispositivo o salida de la organización, esto puede borrar de forma remota los datos de Nextcloud de todos los dispositivos asociados con {userid}. Solo funciona si los dispositivos están conectados a Internet.",
- "Remote wipe of devices" : "Borrado remoto de dispositivos",
- "Wipe {userid}'s devices" : "Borrar dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Se borraron los dispositivos de {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar por completo la cuenta de {userid}, incluidos todos los archivos personales, datos de aplicaciones, etc.",
- "Account deletion" : "Borrado de cuenta",
- "Delete {userid}'s account" : "Borrar la cuenta de {userid}",
- "Display name was successfully changed" : "Se cambió correctamente el nombre para mostrar",
- "Password was successfully changed" : "Se cambió correctamente la contraseña",
- "Email was successfully changed" : "Se cambió correctamente el correo electrónico",
- "Welcome mail sent!" : "¡Correo de bienvenida enviado!",
- "Set the language" : "Establecer el idioma",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Visibility" : "Visibilidad",
- "Show storage path" : "Mostrar ruta de almacenamiento",
- "Show last login" : "Mostrar último inicio de sesión",
- "Sorting" : "Ordenar",
- "Send email" : "Enviar correo electrónico",
- "Defaults" : "Valores predeterminados",
- "Default quota" : "Cuota predeterminada",
- "Select default quota" : "Seleccionar cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error del servidor al intentar completar el registro del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "La autenticación sin contraseña requiere una conexión segura.",
- "Add WebAuthn device" : "Agregar dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autoriza tu dispositivo WebAuthn.",
- "Adding your device …" : "Agregando tu dispositivo ...",
- "Unnamed device" : "Dispositivo sin nombre",
- "Passwordless Authentication" : "Autenticación sin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configura tu cuenta para la autenticación sin contraseña siguiendo el estándar FIDO2.",
- "No devices configured." : "No hay dispositivos configurados.",
- "The following devices are configured for your account:" : "Los siguientes dispositivos están configurados para tu cuenta:",
- "Your browser does not support WebAuthn." : "Tu navegador no admite WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "You need to enable the File sharing App." : "Debes habilitar la aplicación Compartir archivos.",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
@@ -386,6 +218,7 @@
"About" : "Acerca de",
"Full name" : "Nombre completo",
"Additional email" : "Correo electrónico adicional",
+ "Email" : "Correo electrónico",
"Fediverse (e.g. Mastodon)" : "Fediverse (por ejemplo, Mastodon)",
"Headline" : "Título",
"Organisation" : "Organización",
@@ -393,6 +226,7 @@
"Role" : "Rol",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidad del perfil",
+ "Language" : "Idioma",
"Locale" : "Configuración regional",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No disponible, ya que esta propiedad es necesaria para la funcionalidad básica, incluyendo el intercambio de archivos y las invitaciones de calendario.",
"Your apps" : "Tus aplicaciones",
@@ -403,10 +237,12 @@
"Featured apps" : "Aplicaciones destacadas",
"Show to everyone" : "Mostrar a todos",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Download and enable" : "Descargar y habilitar",
"Disable" : "Deshabilitar",
"The app will be downloaded from the App Store" : "La aplicación se descargará desde la App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta aplicación no está marcada como compatible con tu versión de Nextcloud. Si continúas, aún podrás instalar la aplicación. Ten en cuenta que es posible que la aplicación no funcione como se espera.",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"An error occurred during the request. Unable to proceed." : "Ocurrió un error durante la solicitud. No se puede continuar.",
@@ -419,6 +255,8 @@
"Error while updating device token scope" : "Error al actualizar el alcance del token del dispositivo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Había demasiadas solicitudes desde tu red. Vuelve a intentarlo más tarde o contacta a tu administrador si se trata de un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"Privacy policy" : "Política de privacidad",
@@ -438,6 +276,7 @@
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
"Test and verify email settings" : "Probar y verificar la configuración del correo electrónico",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Es importante para la seguridad y el rendimiento de tu instancia que todo esté configurado correctamente. Para ayudarte con eso, realizamos algunas comprobaciones automáticas. Consulta la documentación enlazada para obtener más información.",
"All checks passed." : "Pasaron todas las verificaciones. ",
@@ -455,34 +294,6 @@
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Esta versión comunitaria de Nextcloud no cuenta con soporte y las notificaciones instantáneas no están disponibles.",
"Use a second factor besides your password to increase security for your account." : "Utiliza un segundo factor además de tu contraseña para aumentar la seguridad de tu cuenta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si utilizas aplicaciones de terceros para conectarte a Nextcloud, asegúrate de crear y configurar una contraseña de aplicación para cada una antes de habilitar la autenticación de segundo factor.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos le faltan algunos índices. Debido a que agregar índices en tablas grandes puede llevar tiempo, no se agregaron automáticamente. Al ejecutar \"occ db:add-missing-indices\", se pueden agregar manualmente esos índices faltantes mientras la instancia sigue funcionando. Una vez que se agregan los índices, las consultas a esas tablas suelen ser mucho más rápidas.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Se está utilizando la versión \"%s\" de MariaDB. Nextcloud 21 y versiones posteriores no admiten esta versión y requieren MariaDB 10.2 o superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Se está utilizando la versión \"%s\" de MySQL. Nextcloud 21 y versiones posteriores no admiten esta versión y requieren MySQL 8.0 o MariaDB 10.2 o superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Se está utilizando la versión \"%s\" de PostgreSQL. Nextcloud 21 y versiones posteriores no admiten esta versión y requieren PostgreSQL 9.6 o superior.",
- "Set default expiration date for shares" : "Establecer fecha de vencimiento predeterminada para los compartidos",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir autocompletado de nombre de usuario en el cuadro de diálogo de compartir y permitir acceso a la libreta de direcciones del sistema",
- "Your biography" : "Tu biografía",
- "You are using <strong>{usage}</strong>" : "Estás usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Estás usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Establecer al usuario como administrador",
- "Username will be autogenerated" : "El nombre de usuario se generará automáticamente",
- "Username (required)" : "Nombre de usuario (requerido)",
- "New user" : "Nuevo usuario",
- "Groups (required)" : "Grupos (requeridos)",
- "Set user groups" : "Establecer grupos de usuario",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Establecer al usuario como administrador de ...",
- "Set user quota" : "Establecer cuota de usuario",
- "Add new user" : "Agregar nuevo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario ...","{userCount} usuarios ...","{userCount} usuarios ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios...",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "User actions" : "Acciones de usuario",
- "Add user to group" : "Agregar usuario al grupo",
- "Server error while trying to add WebAuthn device" : "Error del servidor al intentar agregar el dispositivo WebAuthn",
- "Name your device" : "Nombra tu dispositivo",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Set default expiration date for shares" : "Establecer fecha de vencimiento predeterminada para los compartidos"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_GT.js b/apps/settings/l10n/es_GT.js
index db206ca98c9..7dbe237ef5a 100644
--- a/apps/settings/l10n/es_GT.js
+++ b/apps/settings/l10n/es_GT.js
@@ -106,46 +106,9 @@ OC.L10N.register(
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -157,56 +120,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -222,14 +162,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_GT.json b/apps/settings/l10n/es_GT.json
index 0219ce7c120..0ef34fe1660 100644
--- a/apps/settings/l10n/es_GT.json
+++ b/apps/settings/l10n/es_GT.json
@@ -104,46 +104,9 @@
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -155,56 +118,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -220,14 +160,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_HN.js b/apps/settings/l10n/es_HN.js
index cc7466b70cd..bb8b5119ae1 100644
--- a/apps/settings/l10n/es_HN.js
+++ b/apps/settings/l10n/es_HN.js
@@ -101,45 +101,9 @@ OC.L10N.register(
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -151,55 +115,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -214,14 +156,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_HN.json b/apps/settings/l10n/es_HN.json
index da2e6984a5e..6ca5d459bc3 100644
--- a/apps/settings/l10n/es_HN.json
+++ b/apps/settings/l10n/es_HN.json
@@ -99,45 +99,9 @@
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -149,55 +113,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -212,14 +154,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_MX.js b/apps/settings/l10n/es_MX.js
index 2aed5bbdedf..33a1a17e37d 100644
--- a/apps/settings/l10n/es_MX.js
+++ b/apps/settings/l10n/es_MX.js
@@ -357,74 +357,6 @@ OC.L10N.register(
"Could not load section content from app store." : "No se pudo cargar el contenido de la sección desde la tienda de aplicaciones.",
"Loading" : "Cargando",
"Fetching the latest news…" : "Obteniendo las últimas noticias...",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Diapositiva siguiente",
- "Choose slide to display" : "Elegir diapositiva a mostrar",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Demonio",
- "Deploy Daemon" : "Demonio de Desplegue",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "GPUs support" : "Soporte de GPUs",
- "Compute device" : "Dispositivo de cómputo",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Usage documentation" : "Documentación de uso",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "Limit app usage to groups" : "Limitar el uso de aplicaciones a grupos",
- "No results" : "Sin resultados",
- "Update to {version}" : "Actualizar a {version}",
- "Default Deploy daemon is not accessible" : "No se puede acceder al demonio de despliegue predeterminado",
- "Delete data on remove" : "Eliminar datos al remover",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Latest updated" : "Última actualización",
- "Author" : "Autor",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Interact" : "Interactuar",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate the app" : "Calificar la aplicación",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "Aplicación de {productName} para iOS",
- "{productName} Android app" : "Aplicación de {productName} para Android",
- "{productName} Talk for iOS" : "{productName} Talk para iOS",
- "{productName} Talk for Android" : "{productName} Talk para Android",
- "Sync client" : "Cliente de sincronización",
- "This session" : "Esta sesión",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nombre del dispositivo",
- "Cancel renaming" : "Cancelar renombrado",
- "Save new name" : "Guardar nuevo nombre",
- "Marked for remote wipe" : "Marcado para borrado remoto",
- "Device settings" : "Configuración del dispositivo",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Wipe device" : "Limpiar dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revocar este token podría evitar el limpiado del dispositivo si la limpieza aún no ha comenzado.",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"App password copied!" : "¡Se copió la contraseña de aplicación!",
"Copy app password" : "Copiar la contraseña de aplicación",
"Login name copied!" : "¡Se copió el nombre de usuario!",
@@ -452,6 +384,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "No se pudo actualizar la configuración predeterminada del perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Habilitar o deshabilitar el perfil por defecto para nuevos usuarios.",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Failed to save setting" : "No se pudo guardar la configuración",
"{app}'s declarative setting field: {name}" : "Campo de configuración declarativa de {app}: {name}",
"Unable to update server side encryption config" : "No se pudo actualizar la configuración de cifrado del lado del servidor",
@@ -468,195 +401,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
- "Failed to remove group \"{group}\"" : "No se pudo eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor, confirme la eliminación del grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a punto de eliminar el grupo \"{group}\". Los usuarios NO serán eliminados.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
- "Remove group" : "Eliminar grupo",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Choose your profile picture" : "Elegir la foto de perfil",
- "Please select a valid png or jpg file" : "Por favor, seleccione un archivo png o jpg válido",
- "Error setting profile picture" : "Error al establecer la foto de perfil",
- "Error cropping profile picture" : "Error al recortar la foto de perfil",
- "Error saving profile picture" : "Error al guardar la foto de perfil",
- "Error removing profile picture" : "Error al eliminar la foto de perfil",
- "Your profile picture" : "Su foto de perfil",
- "Upload profile picture" : "Cargar foto de perfil",
- "Choose profile picture from Files" : "Seleccionar la imagen de perfil desde Archivos",
- "Remove profile picture" : "Eliminar la foto de perfil",
- "The file must be a PNG or JPG" : "El archivo debe ser PNG o JPG",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "Set as profile picture" : "Establecer como foto de perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tenga en cuenta que puede tomar hasta 24 horas para que su imagen de perfil sea actualizada en todos lados.",
- "Unable to update date of birth" : "No se pudo actualizar tu fecha de nacimiento",
- "Enter your date of birth" : "Ingresa tu fecha de nacimiento",
- "You are using {s}{usage}{/s}" : "Estás usando {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Estás usando {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Usted es miembro de los siguientes grupos:",
- "Your full name" : "Su nombre completo",
- "Email options" : "Opciones de correo electrónico",
- "Options for additional email address {index}" : "Opciones para direcciones de correo electrónico adicionales {index}",
- "Remove primary email" : "Eliminar correo electrónico principal",
- "Delete email" : "Eliminar correo electrónico",
- "This address is not confirmed" : "Esta dirección no está confirmada",
- "Unset as primary email" : "Remover como correo electrónico principal",
- "Set as primary email" : "Establecer como correo electrónico principal",
- "Additional email address {index}" : "Dirección de correo electrónico adicional {index}",
- "Unable to delete primary email address" : "No se pudo eliminar la dirección de correo electrónico principal",
- "Unable to update primary email address" : "No se pudo actualizar la dirección de correo electrónico principal",
- "Unable to add additional email address" : "No se pudo agregar la dirección de correo electrónico adicional",
- "Unable to update additional email address" : "No se pudo actualizar la dirección de correo electrónico adicional",
- "Unable to delete additional email address" : "No se pudo eliminar la dirección de correo electrónico adicional",
- "Primary email for password reset and notifications" : "Correo electrónico principal para restablecer la contraseña y notificaciones",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Your handle" : "Su identificador",
- "Derived from your locale ({weekDayName})" : "Deducido de tu locale ({weekDayName})",
- "Unable to update first day of week" : "No se pudo modificar el primer día de la semana",
- "Day to use as the first day of week" : "Primer día de la semana",
- "Your headline" : "Su titular",
- "Unable to update language" : "No se pudo actualizar el idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Ayuda a traducir",
- "No language set" : "No se ha establecido ningún idioma",
- "Unable to update locale" : "No se pudo actualizar la configuración regional",
- "Locales" : "Configuración regional",
- "Week starts on {firstDayOfWeek}" : "La semana empieza el {firstDayOfWeek}",
- "No locale set" : "No se ha configurado ninguna configuración regional",
- "Your city" : "Su ciudad",
- "Your organisation" : "Su organización",
- "Your phone number" : "Su número telefónico",
- "Edit your Profile visibility" : "Editar la visibilidad de su perfil",
- "Unable to update profile enabled state" : "No se pudo actualizar el estado de habilitado del perfil",
- "Enable profile" : "Habilitar 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 respeta la configuración más restrictiva de visibilidad o alcance en su perfil. Por ejemplo, si la visibilidad está configurada como \"Mostrar a todos\" y el alcance está configurado como \"Privado\", se respeta \"Privado\".",
- "Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}",
- "she/her" : "ella",
- "he/him" : "él",
- "they/them" : "elle",
- "Your role" : "Su cargo",
- "Your X (formerly Twitter) handle" : "Su X (anteriormente Twitter)",
- "Your website" : "Tu sitio web",
- "Invalid value" : "Valor inválido",
- "Unable to update {property}" : "No se pudo actualizar {property}",
- "No {property} set" : "No se ha establecido {property}",
- "Change scope level of {property}, current scope is {scope}" : "Cambiar el alcance de {property}, el alcance actual es {scope}",
- "Unable to update federation scope of the primary {property}" : "No se pudo actualizar el alcance de federación del {property} principal",
- "Unable to update federation scope of additional {property}" : "No se pudo actualizar el alcance de federación del {property} adicional",
- "Add additional email" : "Añadir correo electrónico adicional",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Reshare" : "Volver a compartir",
- "Default language" : "Idioma predeterminado",
- "Common languages" : "Idiomas comunes",
- "Other languages" : "Otros idiomas",
- "Password change is disabled because the master key is disabled" : "El cambio de contraseña está deshabilitado porque la llave maestra está deshabilitada",
- "No accounts" : "Sin cuentas",
- "Loading accounts …" : "Cargando cuentas ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista de usuarios. Esta lista no se muestra completa por razones de rendimiento. Los usuarios se mostrarán a medida que navegue por la lista.",
- "Manager" : "Administrador",
- "Set line manager" : "Establecer el administrador",
- "Account name will be autogenerated" : "El nombre de la cuenta se generará automáticamente",
- "Account name (required)" : "Nombre de la cuenta (requerido)",
- "New account" : "Nueva cuenta",
- "Display name" : "Nombre a desplegar",
- "Either password or email is required" : "Se requiere una contraseña o un correo electrónico",
- "Password (required)" : "Contraseña (requerida)",
- "Email (required)" : "Correo electrónico (requerido)",
- "Email" : "Correo electrónico",
- "Member of the following groups (required)" : "Miembro de los siguientes grupos (requerido)",
- "Member of the following groups" : "Miembro de los siguientes grupos",
- "Set account groups" : "Configurar grupos de la cuenta",
- "Admin of the following groups" : "Administrador de los siguientes grupos",
- "Set account as admin for …" : "Establecer cuenta como administrador de ...",
- "Quota" : "Cuota",
- "Set account quota" : "Definir cuota de la cuenta",
- "Language" : "Idioma",
- "Set default language" : "Establecer el idioma predeterminado",
- "Add new account" : "Añadir nueva cuenta",
- "Total rows summary" : "Resumen de filas totales",
- "Scroll to load more rows" : "Desplazar para cargar más filas",
- "Password or insufficient permissions message" : "Mensaje de contraseña o permisos insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nombre de cuenta",
- "Group admin for" : "Administrador del grupo para",
- "Account backend" : "Backend de cuenta",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Disconnect all devices and delete local data" : "Desconectar todos los dispositivos y eliminar los datos locales",
- "Disable account" : "Deshabilitar cuenta",
- "Enable account" : "Habilitar cuenta",
- "Resend welcome email" : "Reenviar correo de bienvenida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En caso de pérdida del dispositivo o salida de la organización, esto puede borrar de forma remota los datos de Nextcloud de todos los dispositivos asociados con {userid}. Solo funciona si los dispositivos están conectados a Internet.",
- "Remote wipe of devices" : "Limpieza remota de dispositivos",
- "Wipe {userid}'s devices" : "Limpiar los dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Los dispositivos de {userid} fueron limpiados",
- "Failed to update line manager" : "No se pudo actualizar el gerente de línea",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar por completo la cuenta de {userid}, incluidos todos los archivos personales, datos de aplicaciones, etc.",
- "Account deletion" : "Borrado de cuenta",
- "Delete {userid}'s account" : "Borrar la cuenta de {userid}",
- "Display name was successfully changed" : "Se cambió correctamente el nombre para mostrar",
- "Password was successfully changed" : "Se cambió correctamente la contraseña",
- "Email was successfully changed" : "Se cambió correctamente el correo electrónico",
- "Welcome mail sent!" : "¡Correo de bienvenida enviado!",
- "Loading account …" : "Cargando cuenta ...",
- "Change display name" : "Cambiar el nombre a mostrar",
- "Set new password" : "Establecer nueva contraseña",
- "You do not have permissions to see the details of this account" : "No tiene los permisos para ver los detalles de este usuario",
- "Set new email address" : "Establecer nueva dirección de correo electrónico",
- "Add account to group" : "Añadir cuenta al grupo",
- "Set account as admin for" : "Establecer usuario como administrador de",
- "Select account quota" : "Establecer la cuota de la cuenta",
- "Set the language" : "Establecer el idioma",
- "Toggle account actions menu" : "Alternar menú de acciones de usuario",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Account management settings" : "Ajustes de administración de usuarios",
- "Visibility" : "Visibilidad",
- "Show language" : "Mostrar idioma",
- "Show account backend" : "Mostrar backend del usuario",
- "Show storage path" : "Mostrar la ruta de almacenamiento",
- "Show last login" : "Mostrar último inicio de sesión",
- "Sorting" : "Ordenando",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuración de sistema aplica el ordenado de grupos por nombre. Esto también deshabilita mostrar el número de miembros.",
- "Group list sorting" : "Ordenando la lista de grupo",
- "By member count" : "Por número de miembros",
- "By name" : "Por nombre",
- "Send email" : "Enviar correo electrónico",
- "Send welcome email to new accounts" : "Enviar correo de bienvenida a usuarios nuevos",
- "Defaults" : "Valores predeterminados",
- "Default quota" : "Cuota predeterminada",
- "Select default quota" : "Establecer la cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error en el servidor al intentar completar el registro del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "La autentificación sin contraseña requiere una conexión segura.",
- "Add WebAuthn device" : "Añadir dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Por favor, autorice su dispositivo WebAuthn.",
- "Adding your device …" : "Añadiendo su dispositivo ...",
- "Unnamed device" : "Dispositivo sin nombre",
- "Passwordless Authentication" : "Autentificación sin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configure su cuenta para autentificación sin contraseña siguiendo el estándar FIDO2.",
- "No devices configured." : "No hay dispositivos configurados.",
- "The following devices are configured for your account:" : "Los siguientes dispositivos están configurados para su cuenta:",
- "Your browser does not support WebAuthn." : "Su navegador no soporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "You need to enable the File sharing App." : "Debe habilitar la aplicación Compartir archivos.",
- "App Store" : "Tienda de aplicaciones",
- "Loading app list" : "Cargando la lista de aplicaciones",
- "Loading categories" : "Cargando categorías",
- "Developer documentation ↗" : "Documentación del desarrollador ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, licencia {license}",
- "Version {version}" : "Versión {version}",
- "All accounts" : "Todas las cuentas",
- "Admins" : "Administradores",
- "Account group: {group}" : "Grupo de cuentas: {group}",
- "Account management" : "Administración de cuentas",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
@@ -665,6 +414,7 @@ OC.L10N.register(
"Date of birth" : "Fecha de nacimiento",
"Full name" : "Nombre completo",
"Additional email" : "Correo electrónico adicional",
+ "Email" : "Correo electrónico",
"Fediverse (e.g. Mastodon)" : "Fediverse (por ejemplo, Mastodon)",
"Headline" : "Titular",
"Organisation" : "Organización",
@@ -674,6 +424,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidad del perfil",
+ "Language" : "Idioma",
"Locale" : "Configuración regional",
"First day of week" : "Primer día de la semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No disponible, ya que esta propiedad es necesaria para la funcionalidad básica, incluyendo el compartir archivos y las invitaciones de calendario.",
@@ -690,6 +441,7 @@ OC.L10N.register(
"Show to everyone" : "Mostrar a todos",
"Show to logged in accounts only" : "Mostrar únicamente a usuarios conectados",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"{progress}% Deploying …" : "{progress}% Desplegando...",
"{progress}% Initializing …" : "{progress}% Inicializando...",
"Health checking" : "Revisión de salud del servidor",
@@ -699,6 +451,7 @@ OC.L10N.register(
"Allow untested app" : "Permitir aplicación no probada",
"The app will be downloaded from the App Store" : "La aplicación será descargada de la tienda de aplicaciones",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta app no está marcada como compatible con tu versión de Nextcloud. Si continúas podrás instalar la app, pero ten en cuenta que podría no funcionar según lo esperado.",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"Could not register device: Network error" : "No se pudo registrar el dispositivo: Error de red",
@@ -717,8 +470,10 @@ OC.L10N.register(
"Could not set group sorting" : "No se pudo establecer el ordenamiento por grupo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hubieron demasiadas solicitudes desde su red. Vuelva a intentarlo más tarde o contacte a su administrador si se trata de un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
"Account documentation" : "Documentación de la cuenta",
"Administration documentation" : "Documentación de administración",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Nextcloud help & privacy resources" : "Ayuda de Nextcloud y recursos de privacidad",
"General documentation" : "Documentación general",
@@ -741,6 +496,7 @@ OC.L10N.register(
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
"Test and verify email settings" : "Probar y verificar la configuración del correo electrónico",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Es importante para la seguridad y rendimiento de su instancia que todo esté correctamente configurado. Para ayudarle en ello estamos haciendo algunas comprobaciones automáticas. Para más información, por favor compruebe la documentación enlazada.",
"All checks passed." : "Pasaron todas las verificaciones. ",
@@ -759,45 +515,10 @@ OC.L10N.register(
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "El lanzamiento de esta versión para la comunidad de Nextcloud no cuenta con soporte y las notificaciones instantáneas no están disponibles.",
"Use a second factor besides your password to increase security for your account." : "Use un segundo factor además de su contraseña para incrementar la seguridad de su cuenta. ",
"Logged in account must be a subadmin" : "El usuario conectado debe ser un subadministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que esta verificación se lleve a cabo, debe asegurarse que su servidor web pueda conectarse a sí mismo. Por lo tanto, éste debe poder resolver y conectarse a al menos uno de sus `trusted_domains` o a `overwrite.cli.url`",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta el índice opcional \"%s\" en la tabla \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos le faltan algunos índices. Debido al hecho de que añadir índices en tablas grandes puede llevar cierto tiempo, no se han añadido automáticamente. Al ejecutar \"occ db:add-missing-indices\" se pueden añadir los índices faltantes manualmente mientras la instancia sigue corriendo. Una vez se añadidos los índices, las consultas a esas tablas suelen ser mucho más rápidas.",
"File locking" : "Bloqueo de archivos",
"The PHP memory limit is below the recommended value of %s." : "El límite de memoria de PHP está por debajo del valor recomendado de %s.",
"for WebAuthn passwordless login" : "para el inicio de sesión sin contraseña de WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "para el inicio de sesión sin contraseña de WebAuthn y el almacenamiento SFTP",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Se está utilizando la versión \"%s\" de MariaDB. Nextcloud 21 y posteriores no soportan esta versión y requieren MariaDB 10.2 o superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Se está utilizando la versión \"%s\" de MySQL. Nextcloud 21 y posteriores no soportan esta versión y requieren MySQL 8.0 o MariaDB 10.2 o superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Se está utilizando la versión \"%s\" de PostgreSQL. Nextcloud 21 y posteriores no soportan esta versión y requieren PostgreSQL 9.6 o superior.",
- "Speech-To-Text" : "Dictado a texto",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "El dictado a texto puede estar implementada por diferentes aplicaciones. Aquí puede definir cual de ellas debería utilizarse.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ninguna de las aplicaciones que tiene actualmente instaladas proveen la funcionalidad de dictado a texto",
- "None of your currently installed apps provide Text processing functionality" : "Ninguna de sus aplicaciones instaladas proveen la funcionalidad de procesamiento de texto",
- "Set default expiration date for shares" : "Establecer fecha de caducidad predeterminada para compartidos",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir autocompletado de nombres de usuario en el cuadro de diálogo de compartir y permitir acceso a la libreta de direcciones del sistema",
- "Your biography" : "Su biografía",
- "You are using <strong>{usage}</strong>" : "Está usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Está usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Establecer al administrador del usuario",
- "Username will be autogenerated" : "El nombre de usuario será autogenerado",
- "Username (required)" : "Nombre de usuario (requerido)",
- "New user" : "Nuevo usuario",
- "Groups (required)" : "Grupos (requerido)",
- "Set user groups" : "Establecer grupos de usuario",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Establecer al usuario como administrador de ...",
- "Set user quota" : "Establecer la cuota de usuario",
- "Add new user" : "Añadir nuevo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario ...","{userCount} usuarios ...","{userCount} usuarios ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios …",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "User actions" : "Acciones de usuario",
- "Add user to group" : "Añadir usuario al grupo",
- "Server error while trying to add WebAuthn device" : "Error en el servidor al intentar agregar el dispositivo WebAuthn",
- "Name your device" : "Nombrar su dispositivo",
- "Active accounts" : "Cuentas activas",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Set default expiration date for shares" : "Establecer fecha de caducidad predeterminada para compartidos"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_MX.json b/apps/settings/l10n/es_MX.json
index ad90877c6d5..3a4969af836 100644
--- a/apps/settings/l10n/es_MX.json
+++ b/apps/settings/l10n/es_MX.json
@@ -355,74 +355,6 @@
"Could not load section content from app store." : "No se pudo cargar el contenido de la sección desde la tienda de aplicaciones.",
"Loading" : "Cargando",
"Fetching the latest news…" : "Obteniendo las últimas noticias...",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Diapositiva siguiente",
- "Choose slide to display" : "Elegir diapositiva a mostrar",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Demonio",
- "Deploy Daemon" : "Demonio de Desplegue",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "GPUs support" : "Soporte de GPUs",
- "Compute device" : "Dispositivo de cómputo",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Usage documentation" : "Documentación de uso",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "Limit app usage to groups" : "Limitar el uso de aplicaciones a grupos",
- "No results" : "Sin resultados",
- "Update to {version}" : "Actualizar a {version}",
- "Default Deploy daemon is not accessible" : "No se puede acceder al demonio de despliegue predeterminado",
- "Delete data on remove" : "Eliminar datos al remover",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Latest updated" : "Última actualización",
- "Author" : "Autor",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Interact" : "Interactuar",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate the app" : "Calificar la aplicación",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "Aplicación de {productName} para iOS",
- "{productName} Android app" : "Aplicación de {productName} para Android",
- "{productName} Talk for iOS" : "{productName} Talk para iOS",
- "{productName} Talk for Android" : "{productName} Talk para Android",
- "Sync client" : "Cliente de sincronización",
- "This session" : "Esta sesión",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nombre del dispositivo",
- "Cancel renaming" : "Cancelar renombrado",
- "Save new name" : "Guardar nuevo nombre",
- "Marked for remote wipe" : "Marcado para borrado remoto",
- "Device settings" : "Configuración del dispositivo",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Wipe device" : "Limpiar dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revocar este token podría evitar el limpiado del dispositivo si la limpieza aún no ha comenzado.",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"App password copied!" : "¡Se copió la contraseña de aplicación!",
"Copy app password" : "Copiar la contraseña de aplicación",
"Login name copied!" : "¡Se copió el nombre de usuario!",
@@ -450,6 +382,7 @@
"Unable to update profile default setting" : "No se pudo actualizar la configuración predeterminada del perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Habilitar o deshabilitar el perfil por defecto para nuevos usuarios.",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Failed to save setting" : "No se pudo guardar la configuración",
"{app}'s declarative setting field: {name}" : "Campo de configuración declarativa de {app}: {name}",
"Unable to update server side encryption config" : "No se pudo actualizar la configuración de cifrado del lado del servidor",
@@ -466,195 +399,11 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
- "Failed to remove group \"{group}\"" : "No se pudo eliminar el grupo \"{group}\"",
"Please confirm the group removal" : "Por favor, confirme la eliminación del grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a punto de eliminar el grupo \"{group}\". Los usuarios NO serán eliminados.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Renombrar grupo",
- "Remove group" : "Eliminar grupo",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Choose your profile picture" : "Elegir la foto de perfil",
- "Please select a valid png or jpg file" : "Por favor, seleccione un archivo png o jpg válido",
- "Error setting profile picture" : "Error al establecer la foto de perfil",
- "Error cropping profile picture" : "Error al recortar la foto de perfil",
- "Error saving profile picture" : "Error al guardar la foto de perfil",
- "Error removing profile picture" : "Error al eliminar la foto de perfil",
- "Your profile picture" : "Su foto de perfil",
- "Upload profile picture" : "Cargar foto de perfil",
- "Choose profile picture from Files" : "Seleccionar la imagen de perfil desde Archivos",
- "Remove profile picture" : "Eliminar la foto de perfil",
- "The file must be a PNG or JPG" : "El archivo debe ser PNG o JPG",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "Set as profile picture" : "Establecer como foto de perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tenga en cuenta que puede tomar hasta 24 horas para que su imagen de perfil sea actualizada en todos lados.",
- "Unable to update date of birth" : "No se pudo actualizar tu fecha de nacimiento",
- "Enter your date of birth" : "Ingresa tu fecha de nacimiento",
- "You are using {s}{usage}{/s}" : "Estás usando {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Estás usando {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Usted es miembro de los siguientes grupos:",
- "Your full name" : "Su nombre completo",
- "Email options" : "Opciones de correo electrónico",
- "Options for additional email address {index}" : "Opciones para direcciones de correo electrónico adicionales {index}",
- "Remove primary email" : "Eliminar correo electrónico principal",
- "Delete email" : "Eliminar correo electrónico",
- "This address is not confirmed" : "Esta dirección no está confirmada",
- "Unset as primary email" : "Remover como correo electrónico principal",
- "Set as primary email" : "Establecer como correo electrónico principal",
- "Additional email address {index}" : "Dirección de correo electrónico adicional {index}",
- "Unable to delete primary email address" : "No se pudo eliminar la dirección de correo electrónico principal",
- "Unable to update primary email address" : "No se pudo actualizar la dirección de correo electrónico principal",
- "Unable to add additional email address" : "No se pudo agregar la dirección de correo electrónico adicional",
- "Unable to update additional email address" : "No se pudo actualizar la dirección de correo electrónico adicional",
- "Unable to delete additional email address" : "No se pudo eliminar la dirección de correo electrónico adicional",
- "Primary email for password reset and notifications" : "Correo electrónico principal para restablecer la contraseña y notificaciones",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Your handle" : "Su identificador",
- "Derived from your locale ({weekDayName})" : "Deducido de tu locale ({weekDayName})",
- "Unable to update first day of week" : "No se pudo modificar el primer día de la semana",
- "Day to use as the first day of week" : "Primer día de la semana",
- "Your headline" : "Su titular",
- "Unable to update language" : "No se pudo actualizar el idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Ayuda a traducir",
- "No language set" : "No se ha establecido ningún idioma",
- "Unable to update locale" : "No se pudo actualizar la configuración regional",
- "Locales" : "Configuración regional",
- "Week starts on {firstDayOfWeek}" : "La semana empieza el {firstDayOfWeek}",
- "No locale set" : "No se ha configurado ninguna configuración regional",
- "Your city" : "Su ciudad",
- "Your organisation" : "Su organización",
- "Your phone number" : "Su número telefónico",
- "Edit your Profile visibility" : "Editar la visibilidad de su perfil",
- "Unable to update profile enabled state" : "No se pudo actualizar el estado de habilitado del perfil",
- "Enable profile" : "Habilitar 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 respeta la configuración más restrictiva de visibilidad o alcance en su perfil. Por ejemplo, si la visibilidad está configurada como \"Mostrar a todos\" y el alcance está configurado como \"Privado\", se respeta \"Privado\".",
- "Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}",
- "she/her" : "ella",
- "he/him" : "él",
- "they/them" : "elle",
- "Your role" : "Su cargo",
- "Your X (formerly Twitter) handle" : "Su X (anteriormente Twitter)",
- "Your website" : "Tu sitio web",
- "Invalid value" : "Valor inválido",
- "Unable to update {property}" : "No se pudo actualizar {property}",
- "No {property} set" : "No se ha establecido {property}",
- "Change scope level of {property}, current scope is {scope}" : "Cambiar el alcance de {property}, el alcance actual es {scope}",
- "Unable to update federation scope of the primary {property}" : "No se pudo actualizar el alcance de federación del {property} principal",
- "Unable to update federation scope of additional {property}" : "No se pudo actualizar el alcance de federación del {property} adicional",
- "Add additional email" : "Añadir correo electrónico adicional",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Reshare" : "Volver a compartir",
- "Default language" : "Idioma predeterminado",
- "Common languages" : "Idiomas comunes",
- "Other languages" : "Otros idiomas",
- "Password change is disabled because the master key is disabled" : "El cambio de contraseña está deshabilitado porque la llave maestra está deshabilitada",
- "No accounts" : "Sin cuentas",
- "Loading accounts …" : "Cargando cuentas ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista de usuarios. Esta lista no se muestra completa por razones de rendimiento. Los usuarios se mostrarán a medida que navegue por la lista.",
- "Manager" : "Administrador",
- "Set line manager" : "Establecer el administrador",
- "Account name will be autogenerated" : "El nombre de la cuenta se generará automáticamente",
- "Account name (required)" : "Nombre de la cuenta (requerido)",
- "New account" : "Nueva cuenta",
- "Display name" : "Nombre a desplegar",
- "Either password or email is required" : "Se requiere una contraseña o un correo electrónico",
- "Password (required)" : "Contraseña (requerida)",
- "Email (required)" : "Correo electrónico (requerido)",
- "Email" : "Correo electrónico",
- "Member of the following groups (required)" : "Miembro de los siguientes grupos (requerido)",
- "Member of the following groups" : "Miembro de los siguientes grupos",
- "Set account groups" : "Configurar grupos de la cuenta",
- "Admin of the following groups" : "Administrador de los siguientes grupos",
- "Set account as admin for …" : "Establecer cuenta como administrador de ...",
- "Quota" : "Cuota",
- "Set account quota" : "Definir cuota de la cuenta",
- "Language" : "Idioma",
- "Set default language" : "Establecer el idioma predeterminado",
- "Add new account" : "Añadir nueva cuenta",
- "Total rows summary" : "Resumen de filas totales",
- "Scroll to load more rows" : "Desplazar para cargar más filas",
- "Password or insufficient permissions message" : "Mensaje de contraseña o permisos insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nombre de cuenta",
- "Group admin for" : "Administrador del grupo para",
- "Account backend" : "Backend de cuenta",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Disconnect all devices and delete local data" : "Desconectar todos los dispositivos y eliminar los datos locales",
- "Disable account" : "Deshabilitar cuenta",
- "Enable account" : "Habilitar cuenta",
- "Resend welcome email" : "Reenviar correo de bienvenida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En caso de pérdida del dispositivo o salida de la organización, esto puede borrar de forma remota los datos de Nextcloud de todos los dispositivos asociados con {userid}. Solo funciona si los dispositivos están conectados a Internet.",
- "Remote wipe of devices" : "Limpieza remota de dispositivos",
- "Wipe {userid}'s devices" : "Limpiar los dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Los dispositivos de {userid} fueron limpiados",
- "Failed to update line manager" : "No se pudo actualizar el gerente de línea",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar por completo la cuenta de {userid}, incluidos todos los archivos personales, datos de aplicaciones, etc.",
- "Account deletion" : "Borrado de cuenta",
- "Delete {userid}'s account" : "Borrar la cuenta de {userid}",
- "Display name was successfully changed" : "Se cambió correctamente el nombre para mostrar",
- "Password was successfully changed" : "Se cambió correctamente la contraseña",
- "Email was successfully changed" : "Se cambió correctamente el correo electrónico",
- "Welcome mail sent!" : "¡Correo de bienvenida enviado!",
- "Loading account …" : "Cargando cuenta ...",
- "Change display name" : "Cambiar el nombre a mostrar",
- "Set new password" : "Establecer nueva contraseña",
- "You do not have permissions to see the details of this account" : "No tiene los permisos para ver los detalles de este usuario",
- "Set new email address" : "Establecer nueva dirección de correo electrónico",
- "Add account to group" : "Añadir cuenta al grupo",
- "Set account as admin for" : "Establecer usuario como administrador de",
- "Select account quota" : "Establecer la cuota de la cuenta",
- "Set the language" : "Establecer el idioma",
- "Toggle account actions menu" : "Alternar menú de acciones de usuario",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Account management settings" : "Ajustes de administración de usuarios",
- "Visibility" : "Visibilidad",
- "Show language" : "Mostrar idioma",
- "Show account backend" : "Mostrar backend del usuario",
- "Show storage path" : "Mostrar la ruta de almacenamiento",
- "Show last login" : "Mostrar último inicio de sesión",
- "Sorting" : "Ordenando",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuración de sistema aplica el ordenado de grupos por nombre. Esto también deshabilita mostrar el número de miembros.",
- "Group list sorting" : "Ordenando la lista de grupo",
- "By member count" : "Por número de miembros",
- "By name" : "Por nombre",
- "Send email" : "Enviar correo electrónico",
- "Send welcome email to new accounts" : "Enviar correo de bienvenida a usuarios nuevos",
- "Defaults" : "Valores predeterminados",
- "Default quota" : "Cuota predeterminada",
- "Select default quota" : "Establecer la cuota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Error en el servidor al intentar completar el registro del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "La autentificación sin contraseña requiere una conexión segura.",
- "Add WebAuthn device" : "Añadir dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Por favor, autorice su dispositivo WebAuthn.",
- "Adding your device …" : "Añadiendo su dispositivo ...",
- "Unnamed device" : "Dispositivo sin nombre",
- "Passwordless Authentication" : "Autentificación sin contraseña",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configure su cuenta para autentificación sin contraseña siguiendo el estándar FIDO2.",
- "No devices configured." : "No hay dispositivos configurados.",
- "The following devices are configured for your account:" : "Los siguientes dispositivos están configurados para su cuenta:",
- "Your browser does not support WebAuthn." : "Su navegador no soporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "You need to enable the File sharing App." : "Debe habilitar la aplicación Compartir archivos.",
- "App Store" : "Tienda de aplicaciones",
- "Loading app list" : "Cargando la lista de aplicaciones",
- "Loading categories" : "Cargando categorías",
- "Developer documentation ↗" : "Documentación del desarrollador ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, licencia {license}",
- "Version {version}" : "Versión {version}",
- "All accounts" : "Todas las cuentas",
- "Admins" : "Administradores",
- "Account group: {group}" : "Grupo de cuentas: {group}",
- "Account management" : "Administración de cuentas",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
@@ -663,6 +412,7 @@
"Date of birth" : "Fecha de nacimiento",
"Full name" : "Nombre completo",
"Additional email" : "Correo electrónico adicional",
+ "Email" : "Correo electrónico",
"Fediverse (e.g. Mastodon)" : "Fediverse (por ejemplo, Mastodon)",
"Headline" : "Titular",
"Organisation" : "Organización",
@@ -672,6 +422,7 @@
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidad del perfil",
+ "Language" : "Idioma",
"Locale" : "Configuración regional",
"First day of week" : "Primer día de la semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "No disponible, ya que esta propiedad es necesaria para la funcionalidad básica, incluyendo el compartir archivos y las invitaciones de calendario.",
@@ -688,6 +439,7 @@
"Show to everyone" : "Mostrar a todos",
"Show to logged in accounts only" : "Mostrar únicamente a usuarios conectados",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"{progress}% Deploying …" : "{progress}% Desplegando...",
"{progress}% Initializing …" : "{progress}% Inicializando...",
"Health checking" : "Revisión de salud del servidor",
@@ -697,6 +449,7 @@
"Allow untested app" : "Permitir aplicación no probada",
"The app will be downloaded from the App Store" : "La aplicación será descargada de la tienda de aplicaciones",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta app no está marcada como compatible con tu versión de Nextcloud. Si continúas podrás instalar la app, pero ten en cuenta que podría no funcionar según lo esperado.",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"Could not register device: Network error" : "No se pudo registrar el dispositivo: Error de red",
@@ -715,8 +468,10 @@
"Could not set group sorting" : "No se pudo establecer el ordenamiento por grupo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hubieron demasiadas solicitudes desde su red. Vuelva a intentarlo más tarde o contacte a su administrador si se trata de un error.",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
"Account documentation" : "Documentación de la cuenta",
"Administration documentation" : "Documentación de administración",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Nextcloud help & privacy resources" : "Ayuda de Nextcloud y recursos de privacidad",
"General documentation" : "Documentación general",
@@ -739,6 +494,7 @@
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
"Test and verify email settings" : "Probar y verificar la configuración del correo electrónico",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Es importante para la seguridad y rendimiento de su instancia que todo esté correctamente configurado. Para ayudarle en ello estamos haciendo algunas comprobaciones automáticas. Para más información, por favor compruebe la documentación enlazada.",
"All checks passed." : "Pasaron todas las verificaciones. ",
@@ -757,45 +513,10 @@
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "El lanzamiento de esta versión para la comunidad de Nextcloud no cuenta con soporte y las notificaciones instantáneas no están disponibles.",
"Use a second factor besides your password to increase security for your account." : "Use un segundo factor además de su contraseña para incrementar la seguridad de su cuenta. ",
"Logged in account must be a subadmin" : "El usuario conectado debe ser un subadministrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que esta verificación se lleve a cabo, debe asegurarse que su servidor web pueda conectarse a sí mismo. Por lo tanto, éste debe poder resolver y conectarse a al menos uno de sus `trusted_domains` o a `overwrite.cli.url`",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta el índice opcional \"%s\" en la tabla \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "A la base de datos le faltan algunos índices. Debido al hecho de que añadir índices en tablas grandes puede llevar cierto tiempo, no se han añadido automáticamente. Al ejecutar \"occ db:add-missing-indices\" se pueden añadir los índices faltantes manualmente mientras la instancia sigue corriendo. Una vez se añadidos los índices, las consultas a esas tablas suelen ser mucho más rápidas.",
"File locking" : "Bloqueo de archivos",
"The PHP memory limit is below the recommended value of %s." : "El límite de memoria de PHP está por debajo del valor recomendado de %s.",
"for WebAuthn passwordless login" : "para el inicio de sesión sin contraseña de WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "para el inicio de sesión sin contraseña de WebAuthn y el almacenamiento SFTP",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Se está utilizando la versión \"%s\" de MariaDB. Nextcloud 21 y posteriores no soportan esta versión y requieren MariaDB 10.2 o superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Se está utilizando la versión \"%s\" de MySQL. Nextcloud 21 y posteriores no soportan esta versión y requieren MySQL 8.0 o MariaDB 10.2 o superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Se está utilizando la versión \"%s\" de PostgreSQL. Nextcloud 21 y posteriores no soportan esta versión y requieren PostgreSQL 9.6 o superior.",
- "Speech-To-Text" : "Dictado a texto",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "El dictado a texto puede estar implementada por diferentes aplicaciones. Aquí puede definir cual de ellas debería utilizarse.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ninguna de las aplicaciones que tiene actualmente instaladas proveen la funcionalidad de dictado a texto",
- "None of your currently installed apps provide Text processing functionality" : "Ninguna de sus aplicaciones instaladas proveen la funcionalidad de procesamiento de texto",
- "Set default expiration date for shares" : "Establecer fecha de caducidad predeterminada para compartidos",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir autocompletado de nombres de usuario en el cuadro de diálogo de compartir y permitir acceso a la libreta de direcciones del sistema",
- "Your biography" : "Su biografía",
- "You are using <strong>{usage}</strong>" : "Está usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Está usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Establecer al administrador del usuario",
- "Username will be autogenerated" : "El nombre de usuario será autogenerado",
- "Username (required)" : "Nombre de usuario (requerido)",
- "New user" : "Nuevo usuario",
- "Groups (required)" : "Grupos (requerido)",
- "Set user groups" : "Establecer grupos de usuario",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Establecer al usuario como administrador de ...",
- "Set user quota" : "Establecer la cuota de usuario",
- "Add new user" : "Añadir nuevo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario ...","{userCount} usuarios ...","{userCount} usuarios ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios …",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "User actions" : "Acciones de usuario",
- "Add user to group" : "Añadir usuario al grupo",
- "Server error while trying to add WebAuthn device" : "Error en el servidor al intentar agregar el dispositivo WebAuthn",
- "Name your device" : "Nombrar su dispositivo",
- "Active accounts" : "Cuentas activas",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Set default expiration date for shares" : "Establecer fecha de caducidad predeterminada para compartidos"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_NI.js b/apps/settings/l10n/es_NI.js
index 993679bc09e..bb8b5119ae1 100644
--- a/apps/settings/l10n/es_NI.js
+++ b/apps/settings/l10n/es_NI.js
@@ -101,44 +101,9 @@ OC.L10N.register(
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -150,55 +115,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -213,14 +156,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_NI.json b/apps/settings/l10n/es_NI.json
index 11f292af0dc..6ca5d459bc3 100644
--- a/apps/settings/l10n/es_NI.json
+++ b/apps/settings/l10n/es_NI.json
@@ -99,44 +99,9 @@
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -148,55 +113,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -211,14 +154,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_PA.js b/apps/settings/l10n/es_PA.js
index 074dbf3d7d7..bb8b5119ae1 100644
--- a/apps/settings/l10n/es_PA.js
+++ b/apps/settings/l10n/es_PA.js
@@ -101,44 +101,9 @@ OC.L10N.register(
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -150,56 +115,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -214,14 +156,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_PA.json b/apps/settings/l10n/es_PA.json
index e7a5edb32bb..6ca5d459bc3 100644
--- a/apps/settings/l10n/es_PA.json
+++ b/apps/settings/l10n/es_PA.json
@@ -99,44 +99,9 @@
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -148,56 +113,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -212,14 +154,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_PE.js b/apps/settings/l10n/es_PE.js
index 32a0f331dd7..dc32fb7a651 100644
--- a/apps/settings/l10n/es_PE.js
+++ b/apps/settings/l10n/es_PE.js
@@ -100,44 +100,9 @@ OC.L10N.register(
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -149,56 +114,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -213,14 +155,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_PE.json b/apps/settings/l10n/es_PE.json
index 86e2d0bb204..5460330ba42 100644
--- a/apps/settings/l10n/es_PE.json
+++ b/apps/settings/l10n/es_PE.json
@@ -98,44 +98,9 @@
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -147,56 +112,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -211,14 +153,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_PR.js b/apps/settings/l10n/es_PR.js
index 074dbf3d7d7..bb8b5119ae1 100644
--- a/apps/settings/l10n/es_PR.js
+++ b/apps/settings/l10n/es_PR.js
@@ -101,44 +101,9 @@ OC.L10N.register(
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -150,56 +115,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -214,14 +156,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_PR.json b/apps/settings/l10n/es_PR.json
index e7a5edb32bb..6ca5d459bc3 100644
--- a/apps/settings/l10n/es_PR.json
+++ b/apps/settings/l10n/es_PR.json
@@ -99,44 +99,9 @@
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -148,56 +113,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -212,14 +154,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_PY.js b/apps/settings/l10n/es_PY.js
index 30d67c0650b..0903ee092d5 100644
--- a/apps/settings/l10n/es_PY.js
+++ b/apps/settings/l10n/es_PY.js
@@ -101,44 +101,9 @@ OC.L10N.register(
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -150,55 +115,32 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -213,14 +155,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_PY.json b/apps/settings/l10n/es_PY.json
index 5b6159b1261..6c96a7a0549 100644
--- a/apps/settings/l10n/es_PY.json
+++ b/apps/settings/l10n/es_PY.json
@@ -99,44 +99,9 @@
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -148,55 +113,32 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -211,14 +153,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_SV.js b/apps/settings/l10n/es_SV.js
index db206ca98c9..7dbe237ef5a 100644
--- a/apps/settings/l10n/es_SV.js
+++ b/apps/settings/l10n/es_SV.js
@@ -106,46 +106,9 @@ OC.L10N.register(
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -157,56 +120,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -222,14 +162,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_SV.json b/apps/settings/l10n/es_SV.json
index 0219ce7c120..0ef34fe1660 100644
--- a/apps/settings/l10n/es_SV.json
+++ b/apps/settings/l10n/es_SV.json
@@ -104,46 +104,9 @@
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
"Loading" : "Cargando",
- "Daemon" : "Demonio",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Devices & sessions" : "Dispositivos y sesiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -155,56 +118,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Delete account" : "Borrar cuenta",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca de",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Legal notice" : "Aviso legal",
"SSL" : "SSL",
@@ -220,14 +160,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/es_UY.js b/apps/settings/l10n/es_UY.js
index 01ae7d8d062..dc32fb7a651 100644
--- a/apps/settings/l10n/es_UY.js
+++ b/apps/settings/l10n/es_UY.js
@@ -100,44 +100,9 @@ OC.L10N.register(
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -149,55 +114,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -212,14 +155,12 @@ OC.L10N.register(
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/es_UY.json b/apps/settings/l10n/es_UY.json
index 25239b016c4..5460330ba42 100644
--- a/apps/settings/l10n/es_UY.json
+++ b/apps/settings/l10n/es_UY.json
@@ -98,44 +98,9 @@
"Actions" : "Acciones",
"No apps found for your version" : "No se encontraron aplicaciones para tu versión",
"Group name" : "Nombre del grupo",
- "Type" : "Tipo",
- "Display Name" : "Nombre a desplegar",
- "Learn more" : "Conoce más",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descripción",
- "View in store" : "Ver en la tienda",
- "Visit website" : "Visita el sitio web",
- "Admin documentation" : "Documentación del administrador",
- "Developer documentation" : "Documentación del desarrollador",
- "Details" : "Detalles",
- "All" : "Todos",
- "No results" : "No hay resultados",
- "Update to {version}" : "Actualizar a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Report a bug" : "Reporta un detalle",
- "Request feature" : "Solicitar una funcionalidad",
- "Ask questions or discuss" : "Hacer una pregunta o comentario",
- "Rate" : "Calificar",
- "Changelog" : "Bitácora de cambios",
- "Google Chrome for Android" : "Google Chrome para Android",
- "This session" : "Esta sesión",
- "Allow filesystem access" : "Permitir acceso al sistema de archivos",
- "Rename" : "Renombrar",
- "Revoke" : "Revocar",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividad",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
- "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo",
- "App name" : "Nombre de la aplicación",
- "Create new app password" : "Crear una nueva contraseña de aplicación",
"Login" : "Iniciar sesión",
"Password" : "Contraseña",
+ "Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Server-side encryption" : "Encripción del lado del servidor",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ",
"Enable server-side encryption" : "Habilitar encripción del lado del servidor",
@@ -147,55 +112,33 @@
"Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ",
"This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
- "Current password" : "Contraseña actual",
- "New password" : "Nueva contraseña",
- "Change password" : "Cambiar contraseña",
- "Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
- "No email address set" : "No se ha establecido la dirección de correo electrónico",
- "Help translate" : "Ayuda a traducir",
- "Your phone number" : "Su número telefónico",
- "Your website" : "Tu sitio web",
- "Add" : "Agregar",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Borrar",
- "Display name" : "Nombre a desplegar",
- "Email" : "Correo electrónico",
- "Quota" : "Cuota",
- "Language" : "Idioma",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador del grupo para",
- "Storage location" : "Úbicación del almacenamiento",
- "Last login" : "Último inicio de sesión",
- "Account actions" : "Acciones de la cuenta",
- "{size} used" : "{size} usado",
- "Done" : "Terminado",
- "Edit" : "Editar",
- "Show last login" : "Mostrar último inicio de sesión",
- "Send email" : "Enviar correo electrónico",
- "Default quota" : "Cuota predeterminada",
- "Unnamed device" : "Dispositivo sin nombre",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ",
- "Admins" : "Administradores",
"Sending…" : "Enviando...",
"Email sent" : "Correo electrónico enviado",
"Location" : "Ubicación",
"Profile picture" : "Foto de perfil",
"About" : "Acerca",
"Full name" : "Nombre completo",
+ "Email" : "Correo electrónico",
"Phone number" : "Número de teléfono",
"Website" : "Sitio web",
+ "Language" : "Idioma",
"Your apps" : "Tus aplicaciones",
"Disabled apps" : "Aplicaciones deshabilitadas",
"Updates" : "Actualizaciones",
"App bundles" : "Paquetes de aplicación",
"Hide" : "Ocultar",
+ "Update to {version}" : "Actualizar a {version}",
"Disable" : "Deshabilitar",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconocido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
"Error" : "Error",
+ "Default quota" : "Cuota predeterminada",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"SSL" : "SSL",
"Open documentation" : "Abrir documentación",
@@ -210,14 +153,12 @@
"Credentials" : "Credenciales",
"SMTP Password" : "Contraseña SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar correo electrónico",
"Security & setup warnings" : "Advertencias de seguridad y configuración",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Da un Like a nuestra página de Facebook",
"Check out our blog" : "Visita nuestro blog",
- "Subscribe to our newsletter" : "Suscribete a nuestro boletín",
- "Username" : "Usuario",
- "User backend" : "Backend del usuario",
- "Follow us on Twitter" : "Síguenos en Twitter"
+ "Subscribe to our newsletter" : "Suscribete a nuestro boletín"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/et_EE.js b/apps/settings/l10n/et_EE.js
index a2dce7d235e..a6738ee6a79 100644
--- a/apps/settings/l10n/et_EE.js
+++ b/apps/settings/l10n/et_EE.js
@@ -33,8 +33,8 @@ OC.L10N.register(
"Your <strong>group memberships</strong> were modified" : "Sinu <strong>grupide liikmelisus</strong> on muutunud",
"{actor} changed your password" : "{actor} muutis sinu salasõna",
"You changed your password" : "Sa muutsid oma salasõna",
- "Your password was reset by an administrator" : "Administraator lähtestas sinu parooli",
- "Your password was reset" : "Sinu parool lähtestati",
+ "Your password was reset by an administrator" : "Peakasutaja lähtestas sinu salasõna",
+ "Your password was reset" : "Sinu salasõna on lähtestatud",
"{actor} changed your email address" : "{actor} muutis sinu e-posti aadressi",
"You changed your email address" : "Sa muutsid oma e-posti aadressi",
"Your email address was changed by an administrator" : "Administraator muutis sinu e-posti aadressi",
@@ -49,7 +49,7 @@ OC.L10N.register(
"A login attempt using two-factor authentication failed (%1$s)" : "Sisselogimiskatse kaheastmelise autentimisega ebaõnnestus (%1$s)",
"Remote wipe was started on %1$s" : "Kaugkustutamine algas: %1$s",
"Remote wipe has finished on %1$s" : "Kaugkustutamine lõppes: %1$s",
- "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sinu <strong>parooli</strong> või <strong>e-posti aadressi</strong> muudeti",
+ "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sinu <strong>salasõna</strong> või <strong>e-posti aadress</strong> on muudetud",
"Settings" : "Seaded",
"Could not remove app." : "Rakenduse eemaldamine ei õnnestunud.",
"Could not update app." : "Rakenduse uuendamine ei õnnestunud.",
@@ -65,7 +65,7 @@ OC.L10N.register(
"Administrator documentation" : "Administraatori dokumentatsioon",
"User documentation" : "Kasutaja dokumentatsioon",
"Nextcloud help overview" : "Nextcloudi abiteabe ülevaade",
- "Invalid SMTP password." : "Vale SMTP parool.",
+ "Invalid SMTP password." : "Vale SMTP salasõna.",
"Email setting test" : "E-posti sätete kontroll",
"Well done, %s!" : "Hästi tehtud, %s!",
"If you received this email, the email configuration seems to be correct." : "Kui said selle kirja, näib e-posti seadistus õige.",
@@ -83,12 +83,13 @@ OC.L10N.register(
"Unable to set invalid website" : "Vigase veebisaidi lisamine pole võimalik",
"Some account data was invalid" : "Osa kasutajakonto andmeid olid vigased",
"In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Selleks, et tuvastada, et tegemist tõesti on sinu X-i / Twitteri kasutajakontoga, palun postita oma kontole järgnev säuts (palun kontrolli, et sinna ei satuks reavahetusi):",
- "%1$s changed your password on %2$s." : "%1$s muutis su parooli %2$s.",
- "Your password on %s was changed." : "Sinu %s parool muudeti.",
- "Your password on %s was reset by an administrator." : "Administraator lähtestas sinu %s parooli.",
+ "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Sinu veebisaidi õigsuse kontrolliks palun salvesta järgnev sisu oma saiti asukohta „.well-known/CloudIdVerificationCode.txt“ (ning kontrolli, et järgnev tekst on seal failis ühel real):",
+ "%1$s changed your password on %2$s." : "%1$s muutis sinu salasõna teenuses %2$s.",
+ "Your password on %s was changed." : "Sinu %s salasõna on muudetud.",
+ "Your password on %s was reset by an administrator." : "Peakasutaja lähtestas sinu %s salasõna.",
"Your password on %s was reset." : "Sinu salasõna „%s“ sai lähtestatud.",
- "Password for %1$s changed on %2$s" : "%1$s parool muudetud %2$s",
- "Password changed for %s" : "%s parool muudetud",
+ "Password for %1$s changed on %2$s" : "%1$s salasõna teenuses %2$s on muutunud",
+ "Password changed for %s" : "%s salasõna on muudetud",
"If you did not request this, please contact an administrator." : "Kui sa pole seda taotlenud, võta ühendust administraatoriga.",
"Your email address on %s was changed." : "Sinu %s e-posti aadressi muudeti.",
"Your email address on %s was changed by an administrator." : "Administraator muutis sinu %s e-posti aadressi.",
@@ -100,7 +101,7 @@ OC.L10N.register(
"Welcome aboard %s" : "Tere tulemast %s",
"Welcome to your %s account, you can add, protect, and share your data." : "Tere tulemast oma %s kontole. Sa saad lisada, kaitsta ja jagada oma andmeid.",
"Your Login is: %s" : "Sinu kasutajanimi on: %s",
- "Set your password" : "Määra oma parool",
+ "Set your password" : "Sisesta oma salasõna",
"Go to %s" : "Mine %s",
"Install Client" : "Paigalda kliendiprogramm",
"Logged in account must be a sub admin" : "Sisselogitud kasutajakonto peab olema peakasutajate alamgrupi liige",
@@ -121,30 +122,42 @@ OC.L10N.register(
"Mobile & desktop" : "Mobiil ja töölaud",
"Email server" : "E-kirjade server",
"Mail Providers" : "E-posti teenusepakkujad",
- "User's email account" : "Kasutaja e-postikonto",
- "System email account" : "Süsteemi e-posti konto",
+ "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Lisaks järgnevale üldisele valikule on võimalik ka isikliku e-postiikonto kasutamine. Hetkel toimib see võimalus vaid Nextcloudi kalendrikutsete puhul ning eelduseks on Nextcloud Mail 4.1 või suurem ning seal seadistatud e-postikonto vastab kasutaja e-postiaadressile Nextcloudi profiilis.",
+ "Send emails using" : "E-kirjade saatmisel on kasutusel",
+ "User's email account" : "Kasutaja seadistatud e-postikonto",
+ "System email account" : "Süsteemis seadistatud e-postikonto",
"Security & setup checks" : "Turva- ja paigalduse kontrollid",
"Background jobs" : "Taustal toimivad haldustoimingud",
"Unlimited" : "Piiramatult",
"Verifying" : "Kontrollin",
- "Allowed admin IP ranges" : "Süsteemihalduseks lubatud IP-aadresside filtreerimine",
- "Admin IP filtering isn't applied." : "Süsteemihalduseks lubatud IP-aadresside filtreerimine pole kasutusel.",
+ "Allowed admin IP ranges" : "Süsteemihalduseks lubatud IP-aadresside vahemikus",
+ "Admin IP filtering isn't applied." : "Süsteemihalduseks lubatud IP-aadresside vahemikud pole seadistatud.",
"Configuration key \"%1$s\" expects an array (%2$s found). Admin IP range validation will not be applied." : "Seadistuste võtmes „%1$s“ peab olema kirjas massiiv ( aga leidsime „%2$s“). Süsteemihalduseks lubatud IP-aadresside filtreerimine hetkel ei toimi.",
"Configuration key \"%1$s\" contains invalid IP range(s): \"%2$s\"" : "Seadistuste võtmes „%1$s“ on vigane IP-aadressi(de) vahemik: „%2$s“",
"Admin IP filtering is correctly configured." : "Süsteemihalduseks lubatud IP-aadresside filtreerimine on korrektselt seadistatud.",
+ "App directories owner" : "Rakenduste kausta omanik",
+ "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:\n%s" : "Mõnede rakenduste kaustade omanik erinev kogu Nextcloudi serveri omanikust. Nii võib juhtuda, kui rakendused on paigaldatud käsitsi. Palun kontrolli järgnevate rakenduste kaustade omanikke:\n%s",
+ "App directories have the correct owner \"%s\"" : "Rakenduste kaustadel on korrektne omanik: „%s“",
"Your remote address could not be determined." : "Sinu kaugaadressi tuvastamine ei õnnestunud.",
"No altered files" : "Muudetud faile pole",
"Database missing primary keys" : "Andmebaasis on puudu primaarvõtmed",
"Missing primary key on table \"%s\"." : "Puuduv primaarvõti tabelis „%s“.",
+ "Default phone region" : "Telefonide vaikimisi piirkond",
"Email test" : "E-kirjade saatmise test",
"Mail delivery is disabled by instance config \"%s\"." : "Selles serveris piirab e-kirjade edasisaatmist seadistus „%s“.",
- "Email test was successfully sent" : "Test e-kirja saatmine õnnestus",
+ "Email test was successfully sent" : "Testkirja saatmine õnnestus",
+ "Your \"trusted_proxies\" setting is not correctly set, it should be an array." : "Serveri „trusted_proxies“ seadistus pole korrektne - seal peab leiduma massiiv, aga hetkel on midagi muud.",
+ "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Sellel serveril puudub toimiv internetiühendus: mitmete otspunktidega ei ole leitavad. See tähendab, et mõned funktsionaalsused, nagu näiteks väliste andmehoidlate ühendamine, uuenduste teavitused või kolmandate osapoolte rakenduste paigaldamine ei tööta. Ligipääs failidele eemalt ning teavistuste saatmine e-kirjaga ei pruugi samuti toimida. Kui soovid kasutada täielikku funktsionaalsust, siis palun taga toimiv internetiühendus.",
+ "Old server-side-encryption" : "Vana serveripoolne krüptimine",
"Disabled" : "Keelatud",
+ "The old server-side-encryption format is enabled. We recommend disabling this." : "Vana serveripoolse krüptimise vorming on kasutusel. Mes soovitame, et lülitad selle välja.",
"Logging level" : "Logitase",
"The %1$s configuration option must be a valid integer value." : "Seadistusvalik „%1$s“ peab olema korrektne täisarv.",
"The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Logimistase on hetkel seatud veaotsinguks. Kasuta seda vaid siis, kui tõesti tegeled veaotsinguga ning peale seda muuda logimine jälle tavaliseks. Veaotsinguks vajalik logimine on väga väljundirikas ning võib mõjutada serveri jõudlust.",
"Logging level configured correctly." : "Logimistase on korrektselt seadistatud",
+ "PHP configuration option \"default_charset\" should be UTF-8" : "PHP seadistuse „default_charset“ väärtus peab olema UTF-8",
"Supported" : "Toetatud",
+ "PHP getenv" : "PHP getenv",
"PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP ei tundu olevat süsteemsete keskkonnamuutujate pärimiseks korrektselt seadistatud. Test getenv(\"PATH\") abil tagastab tühja vastuse.",
"PHP file size upload limit" : "PHP failide üleslaadimise mahupiir",
"The PHP upload_max_filesize is too low. A size of at least %1$s is recommended. Current value: %2$s." : "PHP seadistuse „upload_max_filesize“ väärtus on liiga väike. Meie soovitatud väärtus: %1$s. Praegune väärtus: %2$s.",
@@ -152,47 +165,83 @@ OC.L10N.register(
"The PHP max_input_time is too low. A time of at least %1$s is recommended. Current value: %2$s." : "PHP seadistuse „max_input_time“ väärtus on liiga väike. Meie soovitatud väärtus: %1$s. Praegune väärtus: %2$s.",
"The PHP max_execution_time is too low. A time of at least %1$s is recommended. Current value: %2$s." : "PHP seadistuse „max_execution_time“ väärtus on liiga väike. Meie soovitatud väärtus: %1$s. Praegune väärtus: %2$s.",
"PHP memory limit" : "PHP mälukasutuse ülempiir",
+ "The PHP memory limit is below the recommended value of %s. Some features or apps - including the Updater - may not function properly." : "PHP mälukasutuse piir on väiksem, muid soovitatav väärtus %s. Mõned funktsionaalsused või rakendused, sealhulgas uuendaja, ei pruugi toimida korrektselt.",
+ "PHP modules" : "PHP lisamoodulid",
"for Argon2 for password hashing" : "Argon2-põhise salasõna räsimise jaoks",
"required for SFTP storage and recommended for WebAuthn performance" : "nõutav SFTP andmeruumi jaoks ja soovitatav WebAuthn jõudluse jaoks",
+ "This instance is missing some required PHP modules. It is required to install them: %s." : "Siit serverist on puudu mõned vajalikud PHP moodulid. On nõutav, et paigaldad alljärgnevad lisamoodulid: %s.",
+ "Correctly configured" : "Korrektselt seadistatud",
"PHP version" : "PHP versioon",
"You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sa kasutad hetkel PHP versiooni %1$s. PHP %2$s on aga alates Nexctcloudi versioonist %3$s kasutuselt eemaldatud. Nexctcloud %4$s eeldab, et PHP versioon on vähemalt %5$s. Palun uuenda oma server PHP Groupi poolt väljaantud ametliku PHP versioonini niipea, kui võimalik.",
"You are currently running PHP %s." : "Sul on hetkel kasutusel PHP versioon %s.",
+ "PHP \"output_buffering\" option" : "PHP eelistus „output_buffering“",
+ "PHP configuration option \"output_buffering\" must be disabled" : "PHP seadistus „output_buffering“ peab olema lülitatud välja",
"Push service" : "Tõuketeenus",
"Valid enterprise license" : "Suurfirmade litsents",
"Free push service" : "Tasuta tõuketeenus",
"This is the unsupported community build of Nextcloud. Given the size of this instance, performance, reliability and scalability cannot be guaranteed. Push notifications are limited to avoid overloading our free service. Learn more about the benefits of Nextcloud Enterprise at {link}." : "See on mittetoetatud Nextcloudi variant kogukonnale. Arvestades selle serveri parameetreid, pole jõudlus, töökindlus ja skaleeritavus garanteeritud. Meie tasuta teenuse ülekoormuse vältimiseks on tõuketeavituste arv piiratud. Nextcloud Enterprise versiooni eelistest loe siin: {link}.",
+ "Secure" : "Turvaline",
+ "Configuration file access rights" : "Ligipääsuõigused seadistuste failile",
+ "Nextcloud configuration file is writable" : "Nextcloudi seadistusfail on on kirjutatav",
"Database version" : "Andmebaasi versioon",
"MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MariaDB versiooni 10.3 ning tema kasutusperiood on lõppenud ja tugi on olemas vaid Ubuntu 20.04 puhul. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MariaDB versioone >=%1$s and <= %2$s.",
"MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MariaDB versiooni „%1$s“. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MariaDB versioone >=%2$s and <= %3$s.",
"MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MySQLi versiooni „%1$s“. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MySQLi versioone >=%2$s and <= %3$s.",
"PostgreSQL version \"%1$s\" detected. PostgreSQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin PostgreSQLi versiooni „%1$s“. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks PostgreSQLi >=%2$s and <= %3$s.",
+ "Unknown database platform" : "Tuvastamatu andmebaasiplatvorm",
"Architecture" : "Arhitektuur",
"64-bit" : "64-bitine",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Tundub, et kasutad PHP 32-bitist versiooni. Tõhusaks toimimiseks eeldab Nextcloud 64-bitist keskkonda. Palun uuenda oma serveri operatsioonisüsteem ja PHP 64-bitiseks versiooniks!",
+ "Task Processing pickup speed" : "Ülesannete töötlemise kiirus",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Viimase %n tunni jooksul pole olnud ühtegi ajastatud ülesannet.","Viimase %n tunni jooksul pole olnud ühtegi ajastatud ülesannet."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud mõistlik.","Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud mõistlik."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud aeglane. Paljude ülesannete töölepanekuks kulus enam, kui 4 minutit. Palun kaalu võimalust, et ülesannete töötlemiseks seadistad taustal töötava protsessihalduri.","Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud aeglane. Paljude ülesannete töölepanekuks kulus enam, kui 4 minutit. Palun kaalu võimalust, et ülesannete töötlemiseks seadistad taustal töötava protsessihalduri."],
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP funktsioon „disk_free_space“ pole kasutusel. Selle puudumine takistab ajutiste kaustade jaoks vajaliku andmeruumi kontrollimist.",
"Profile information" : "Kasutajaprofiili teave",
"Nextcloud settings" : "Nextcloudi seadistused",
"Task:" : "Ülesanded:",
"Enable" : "Lülita sisse",
"Machine translation" : "Masintõlge",
+ "Image generation" : "Pildiloome",
+ "Text processing" : "Tekstitöötlus",
+ "Here you can decide which group can access certain sections of the administration settings." : "Siinkohal saad sa otsustada mis gruppidel on ligipääs valitud haldusseadistustele.",
+ "Unable to modify setting" : "Seadistuse muutmine ei õnnestu",
"None" : "Pole",
+ "Changed disclaimer text" : "Vastutusest lahtiütluse tekst on muutunud",
+ "Deleted disclaimer text" : "Vastutusest lahtiütluse tekst on kustutatud",
+ "Could not set disclaimer text" : "Vastutusest lahtiütluse teksti seadistamine ei õnnestunud",
"Allow apps to use the Share API" : "Luba rakendustel kasutada Share API-t",
"Allow resharing" : "Luba edasijagamine",
"Allow sharing with groups" : "Luba gruppidega jagamine",
"Restrict users to only share with users in their groups" : "Luba kasutajatel jagada kasutajatega ainult oma grupi piires",
+ "Allow users to share via link and emails" : "Luba kasutajatel lingiga ja e-postiga jagamist",
"Allow public uploads" : "Luba avalikud üleslaadimised",
- "Always ask for a password" : "Alati küsi parooli",
- "Enforce password protection" : "Jõusta paroolikaitse",
+ "Always ask for a password" : "Alati küsi salasõna",
+ "Enforce password protection" : "Jõusta salasõnakaitse",
"Exclude groups from password requirements" : "Välista grupid salasõnareeglitest",
+ "Exclude groups from creating link shares" : "Välista grupid jagamislinkide loomisest",
"Limit sharing based on groups" : "Piira jagamist gruppide alusel",
"Allow sharing for everyone (default)" : "Luba jagamine kõikidele (vaikimisi)",
"Exclude some groups from sharing" : "Välista mõned grupid jagamisest",
"Limit sharing to some groups" : "Piira jagamist mõnede gruppidega",
+ "Groups allowed to share" : "Grupid, millel on jagamine lubatud",
"Groups excluded from sharing" : "Jagamisest välistatud grupid",
+ "Not allowed groups will still be able to receive shares, but not to initiate them." : "Mittelubatud gruppide liikmed saavad vastu võtta jagamisi, kuid ise jagamisi algatada ei saa.",
+ "Set default expiration date for internal shares" : "Jagamisel selle serveri piires kasuta vaikimisi aegumist",
"Enforce expiration date" : "Sunnitud aegumise kuupäev",
"Default expiration time of new shares in days" : "Uue jaosmeedia vaikimisi aegumine päevades",
"Expire shares after x days" : "Jaosmeedia aegub x päeva möödudes",
+ "Set default expiration date for shares to other servers" : "Jagamisel teistesse serveritesse kasuta vaikimisi aegumist",
+ "Enforce expiration date for remote shares" : "Määra lingi kaugserverid asuva jaosmeedia vaikimisi aegumiskuupäev ",
+ "Default expiration time of remote shares in days" : "Kaugserveris asuva jaosmeedia vaikimisi aegumine päevades",
+ "Expire remote shares after x days" : "Jaosmeedia aegub x päeva möödudes",
+ "Set default expiration date for shares via link or mail" : "Määra lingi või e-kirjaga jagatava jaosmeedia vaikimisi aegumiskuupäev",
+ "Default expiration time of shares in days" : "Jaosmeedia vaikimisi aegumine päevades",
+ "Privacy settings for sharing" : "Jagamise privaatsusseadistused",
+ "Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Kuva avaliku lingiga üleslaadimise lehel lahtiütluste tekst (vaid siis, kui failide loend on peidetud)",
+ "Disclaimer text" : "Vastutusest lahtiütluse tekst",
"This text will be shown on the public link upload page when the file list is hidden." : "Seda teksti näidatakse avaliku lingiga üleslaadimise lehel kui failide loend on peidetud.",
+ "Default share permissions" : "Vaikimisi õigusel jagamisel",
"Two-Factor Authentication" : "Kaheastmeline autentimine",
"Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system." : "Kaheastmelist autentimist on võimalik teha kohustuslikuks kas kõikidele kasutajakontodele või konkreetsete gruppide kaupa. Kui kaheastmelise autentimise kohustuslikkus on määratud, kuid on kasutajal seadistamata, siis ta ei saa siia serverisse sisse logida.",
"Enforce two-factor authentication" : "Tee kaheastmeline autentimine kohustuslikuks",
@@ -204,6 +253,7 @@ OC.L10N.register(
"Excluded groups" : "Välistatud neis gruppides",
"Save changes" : "Salvesta muudatused",
"Show details for {appName} app" : "Näita „{appName}“ rakenduse üksikasju",
+ "Update to {update}" : "Uuenda versioonini {update}",
"Remove" : "Eemalda",
"Featured" : "Esiletõstetud",
"This app is supported via your current Nextcloud subscription." : "See rakendus on toetatud sinu praeguses Nextcloudi tellimuses. ",
@@ -230,78 +280,12 @@ OC.L10N.register(
"Search groups…" : "Otsi gruppe…",
"List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list." : "Gruppide loend. Jõudluse mõttes ei ole kogu loend esimesel hetkel tervikuna nähtav. Uued grupid lisanduvad sedamööda, kui sa loendis edasi liigud.",
"Loading groups…" : "Laadin gruppe…",
- "Loading" : "Laadimine",
+ "Could not load app discover section" : "Rakenduse tuvastamise jaotise laadimine ei õnnestunud",
+ "Could not render element" : "Elemendi töötlemine ei õnnestunud",
+ "Nothing to show" : "Pole midagi näidata",
+ "Could not load section content from app store." : "Jaotise sisu laadimine rakendustepoest ei õnnestunud.",
+ "Loading" : "Laadin",
"Fetching the latest news…" : "Laadin viimaseid uuendusi",
- "Carousel" : "Karussell",
- "Previous slide" : "Eelmine slaid",
- "Next slide" : "Järgmine slaid",
- "Choose slide to display" : "Vali kuvatav slaid",
- "{index} of {total}" : "{index} / {total}",
- "Type" : "Tüüp",
- "Display Name" : "Kuvatav nimi",
- "Edit ExApp deploy options before installation" : "Muuda ExApp konteineri seadistuse enne paigaldamist",
- "Configured ExApp deploy options. Can be set only during installation" : "ExApp'i konteineri seadistuse valikud. Neid saab määrata vaid paigalduse ajal",
- "Learn more" : "Lisateave",
- "Environment variables" : "Keskonnamuutujad",
- "ExApp container environment variables" : "ExApp konteineri keskonnamuutujad",
- "No environment variables defined" : "Ühtegi keskonnamuutujat pole defineeritud",
- "Mounts" : "Haakepunktid",
- "Read-only" : "Ainult lugemiseks",
- "Remove mount" : "Eemalda haakepunkt",
- "New mount" : "Uus haakepunkt",
- "Enter path to container folder" : "Sisesta konteinerikausta asukoht",
- "Toggle read-only mode" : "Lülita „ainult lugemiseks“ režiim sisse/välja",
- "Confirm adding new mount" : "Kinnita uue haakepunkti lisamine",
- "Confirm" : "Kinnita",
- "Cancel adding mount" : "Katkesta haakepunkti lisamine",
- "Cancel" : "Loobu",
- "Add mount" : "Lisa haakepunkt",
- "ExApp container mounts" : "ExApp konteinerite haakepunktid",
- "No mounts defined" : "Ühtegi haakepunkti pole määratletud",
- "Description" : "Kirjeldus",
- "View in store" : "Vaata poes",
- "Visit website" : "Külasta veebisaiti",
- "Admin documentation" : "Administraatori dokumentatsioon",
- "Developer documentation" : "Arendaja dokumentatsioon",
- "Details" : "Üksikasjad",
- "All" : "Kõik",
- "Limit app usage to groups" : "Piira rakenduse kasutamist gruppidega",
- "No results" : "Vasteid ei leitud",
- "Update to {version}" : "Uuenda versioonile {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Sellel rakendusel pole määratud minimaalset Nextcloudi versiooni. See põhjustab tulevikus veateateid.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Sellel rakendusel pole määratud maksimaalset Nextcloudi versiooni. See põhjustab tulevikus veateateid.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Seda rakendust ei saa paigaldada, sest järgmised sõltuvusel ei ole täidetud:",
- "Author" : "Autor",
- "Categories" : "Kategooriad",
- "Resources" : "Ressursid",
- "Documentation" : "Dokumentatsioon",
- "Report a bug" : "Teata veast",
- "Ask questions or discuss" : "Küsi nõu või aruta",
- "Changelog" : "Muudatuste logi",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName}i iOS-i rakendus",
- "{productName} Android app" : "{productName}i Androidi rakendus",
- "{productName} Talk for iOS" : "{productName} Talk iOS-i jaoks",
- "{productName} Talk for Android" : "{productName} Talk Androidi jaoks",
- "Sync client" : "Sünkroniseerimisklient",
- "This session" : "See sessioon",
- "Device name" : "Seadme nimi",
- "Cancel renaming" : "Katkesta nime muutmine",
- "Save new name" : "Salvesta uus nimi",
- "Marked for remote wipe" : "Märgitud kaugkustutamisele",
- "Device settings" : "Seadme seaded",
- "Allow filesystem access" : "Luba juurdepääs failisüsteemile",
- "Rename" : "Muuda nime",
- "Revoke" : "Tühista",
- "Wipe device" : "Kaugkustuta seade",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Selle tunnusloa tühistamine võib katkestada sinu seadme kaugkustutamise, kui kustutamine pole veel alanud.",
- "Device" : "Seade",
- "Last activity" : "Viimane tegevus",
- "Devices & sessions" : "Seadmed & sessioonid",
- "Web, desktop and mobile clients currently logged in to your account." : "Sinu kontole hetkel sisse loginud veebi-, töölaua-, ja mobiilsed kliendid.",
- "Error while creating device token" : "Tõrge seadme märke loomisel",
- "App name" : "Rakenduse nimi",
- "Create new app password" : "Loo uus rakenduse parool",
"App password copied!" : "Rakenduse salasõna on kopeeritud!",
"Copy app password" : "Kopeeri rakenduse salasõna",
"Login name copied!" : "Kasutajanimi on koeeritud!",
@@ -315,7 +299,15 @@ OC.L10N.register(
"Show QR code for mobile apps" : "Näita QR-koodi nutiseadmete rakenduste jaoks",
"Last job execution ran {time}. Something seems wrong." : "Viimane käivitus kestis {time}. See pole päris õige.",
"Last job ran {relativeTime}." : "Viimane käivitus kestis {relativeTime}.",
+ "Background job did not run yet!" : "Taustal töötav ülesanne pole veel käivitunud!",
+ "AJAX" : "AJAX",
+ "Execute one task with each page loaded. Use case: Single account instance." : "Käivita igal lehe laadimisel üks ülesanne. Kasutusjuhtum: ühe kasutajakontoga server.",
+ "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 accounts depending on the usage)." : "cron.php on registreeritud webcroni teenuses käivitama cron.php skripti HTTP-päringuga iga 5 minuti järel. Kasutusjuhtum: väga väike server (sõltuvalt kasutusviisist 1–5 kontot).",
+ "Cron (Recommended)" : "Cron (Soovitatav)",
+ "Unable to update profile default setting" : "Profiili vaikimisi seadistuste uuendamine ei õnnestu",
"Profile" : "Profiil",
+ "Password confirmation is required" : "Salasõna kinnitamine on vajalik",
"Failed to save setting" : "Seadistuse salvestamine ei õnnestunud",
"Unable to update server side encryption config" : "Serveripoolse krüptimise seadistusi ei õnnestu uuendada",
"Server-side encryption" : "Serveripoolne krüptimine",
@@ -336,175 +328,24 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Alati on hea mõte, kui varundad oma andmeid. Kui aga kasutusel on krüptimine, siis palun kontrolli, et lisaks andmetele on varundatud ka krüptovõtmed.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Süsteemihalduse juhendist leiad teavet kuidas saad käsitsi krüptida juba olemasolevaid faile.",
"This is the final warning: Do you really want to enable encryption?" : "See on viimane hoiatus: Kas oled kindel, et soovid krüptimise sisse lülitada?",
- "Failed to remove group \"{group}\"" : "„{group}“ grupi eemaldamine ei õnnestunud",
+ "Failed to delete group \"{group}\"" : "„{group}“ grupi eemaldamine ei õnnestunud",
"Please confirm the group removal" : "Palun kinnita grupi eemaldamine",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Sa oled eemaldamas gruppi „{group}“. Selles grupis olevad kasutajad aga JÄÄVAD kustutamata.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Sa oled eemaldamas gruppi „{group}“. Selles grupis olevad kasutajad aga JÄÄVAD kustutamata.",
+ "Cancel" : "Loobu",
+ "Confirm" : "Kinnita",
"Submit" : "Saada",
"Rename group" : "Muuda grupi nime",
- "Remove group" : "Eemalda grupp",
- "Current password" : "Praegune salasõna",
- "New password" : "Uus salasõna",
- "Change password" : "Muuda salasõna",
- "Choose your profile picture" : "Vali oma tunnuspilt",
- "Please select a valid png or jpg file" : "Palun vali korrektne png või jpg fail",
- "Error setting profile picture" : "Viga tunnuspildi jõustamisel",
- "Error cropping profile picture" : "Viga tunnuspildi kadreerimisel",
- "Error saving profile picture" : "Viga tunnuspildi salvestamisel",
- "Error removing profile picture" : "Viga tunnuspildi eemaldamisel",
- "Your profile picture" : "Sinu tunnuspilt",
- "Upload profile picture" : "Laadi tunnuspilt üles",
- "Choose profile picture from Files" : "Vali oma tunnuspilt failirakendusest",
- "Remove profile picture" : "Eemalda tunnuspilt",
- "The file must be a PNG or JPG" : "Fail peab olema png või jpg vormingus",
- "Picture provided by original account" : "Pilt esitatud originaalse konto poolt",
- "Set as profile picture" : "Määra tunnuspildiks",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Palun arvesta, et võib kuluda kuni 24 tundi enne, kuni sinu uus tunnuspilt on kõikjal uuendatud.",
- "Your biography. Markdown is supported." : "Teave sinu kohta. Võid kasutada ka markdown-vormingut.",
- "Enter your date of birth" : "Palun sisesta sünnikuupäev",
- "You are using {s}{usage}{/s}" : "Sa kasutad: {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Sa kasutad: {s}{usage}{/s} / {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Sa oled nende gruppide liige:",
- "Your full name" : "Sinu täispikk nimi",
- "Email options" : "E-posti valikud",
- "Remove primary email" : "Eemalda põhiline e-postiaadress",
- "Delete email" : "Kustuta e-posti aadress",
- "This address is not confirmed" : "See aadress pole kinnitatud",
- "Unset as primary email" : "Eemalda määramine põhiliseks e-postiaadressiks",
- "Set as primary email" : "Määra põhiliseks e-postiaadressiks",
- "Additional email address {index}" : "Täiendav e-posti aadress {index}",
- "Unable to delete primary email address" : "Ei õnnestunud eemaldada põhilist e-postiaadressi",
- "Unable to update primary email address" : "Ei õnnestunud uuendada põhilist e-postiaadressi",
- "Unable to add additional email address" : "Ei õnnestunud laadida täiendavat e-posti aadressi",
- "Unable to update additional email address" : "Ei õnnestunud uuendada täiendavat e-posti aadressi",
- "Unable to delete additional email address" : "Ei õnnestunud kustutada täiendavat e-posti aadressi",
- "Primary email for password reset and notifications" : "Põhiline e-postiaadress salasõna lähtestamiseks ja teavituste jaoks",
- "No email address set" : "E-posti aadressi pole veel määratud",
- "Your handle" : "Sinu pseudonüüm",
- "Derived from your locale ({weekDayName})" : "Tuletatud lokaadist ({weekDayName})",
- "Unable to update first day of week" : "Nädala esimese päeva uuendamine ei õnnestu",
- "Day to use as the first day of week" : "Nädala esimene päev",
- "Your headline" : "Sind kirjeldav alapealkiri",
- "Unable to update language" : "Keele uuendamine ei õnnestu",
- "Languages" : "Keeled",
- "Help translate" : "Aita tõlkida",
- "No language set" : "Keel on määramata",
- "Unable to update locale" : "Lokaadi uuendamine ei õnnestu",
- "Locales" : "Lokaadid",
- "Week starts on {firstDayOfWeek}" : "Nädala esimene päev: {firstDayOfWeek}",
- "No locale set" : "Lokaat on määramata",
- "Your city" : "Sinu asukoht",
- "Your organisation" : "Sinu organisatsioon",
- "Your phone number" : "Sinu telefoninumber",
- "Edit your Profile visibility" : "Muuda oma profiili nähtavust",
- "Your role" : "Sinu roll",
- "Your X (formerly Twitter) handle" : "Sinu X-i (varasemalt Twitteri) kasutajanimi",
- "Your website" : "Sinu veebileht",
- "Invalid value" : "Vigane väärtus",
- "Unable to update {property}" : "„{property}“ uuendamine ei õnnestu",
- "No {property} set" : "„{property}“ on määramata",
- "Add additional email" : "Lisa täiendav e-posti aadress",
- "Add" : "Lisa",
- "Create" : "Loo",
- "Change" : "Muuda",
- "Delete" : "Kustuta",
- "Reshare" : "Jaga edasi",
- "Default language" : "Vaikekeel",
- "Common languages" : "Levinud keeled",
- "Other languages" : "Muud keeled",
- "Password change is disabled because the master key is disabled" : "Salasõna muutmine on lülitatud välja, kuna ka peremeesvõti on lülitatud välja",
- "No accounts" : "Kasutajakontosid pole",
- "Loading accounts …" : "Kontode laadimine ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Kasutajakontode loend. Jõudluse mõttes ei ole kogu loend esimesel hetkel tervikuna nähtav. Uued kasutajakontid lisanduvad sedamööda, kui sa loendis edasi liigud.",
- "Manager" : "Haldaaja",
- "Account name will be autogenerated" : "Kasutajakonto nimi luuakse automaatselt",
- "Account name (required)" : "Kasutajakonto nimi (nõutav)",
- "Failed to search groups" : "Gruppe ei õnnestunud otsida",
- "New account" : "Uus kasutajakonto",
- "Display name" : "Kuvatav nimi",
- "Either password or email is required" : "Kas salasõna või e-posti aadress on kohustuslik",
- "Password (required)" : "Salasõna (nõutav)",
- "Email (required)" : "E-posti aadress (nõutav)",
- "Email" : "E-post",
- "Member of the following groups (required)" : "Järgmiste gruppide liige (nõutav)",
- "Member of the following groups" : "Järgmiste gruppide liige",
- "Set account groups" : "Määra kasutajakonto grupid",
- "Admin of the following groups" : "Järgmiste gruppide peakasutaja",
- "Set account as admin for …" : "Määra kasutajakonto peakasutajaks siin:",
- "Quota" : "Mahupiir",
- "Set account quota" : "Määra kasutajakonto kvoot",
- "Language" : "Keel",
- "Set default language" : "Määra vaikimisi keel",
- "Add new account" : "Lisa uus kasutajakonto",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} kasutajakonto…","{userCount} kasutajakontot…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} kasutajakonto","{userCount} kasutajakontot"],
- "Total rows summary" : "Ridade koondkokkuvõte",
- "Scroll to load more rows" : "Täiendavate ridade laadimiseks keri",
- "Password or insufficient permissions message" : "Teavitus salasõna või puuduvate õiguste kohta",
- "Avatar" : "Tunnuspilt ehk avatar",
- "Account name" : "Kasutajakonto nimi",
- "Group admin for" : "Grupi admin",
- "Account backend" : "Kasutajakonto taustateenus",
- "Storage location" : "Salvestusruumi asukoht",
- "First login" : "Esimene sisselogimine",
- "Last login" : "Viimane sisselogimine",
- "Account actions" : "Kasutajakonto tegevused",
- "{size} used" : "{size} kasutatud",
- "Delete account" : "Kustuta konto",
- "Disconnect all devices and delete local data" : "Katkesta ühendused kõikide seadmetega ja kustuta kohalikud andmed",
- "Disable account" : "Lülita kasutajakonto välja",
- "Enable account" : "Lülita kasutajakonto sisse",
- "Resend welcome email" : "Saada tervituskiri uuesti",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Kas seadme kadumisel või organisatsioonist lahkumisel on võimalik kaugkustutamise abil kustutada Nextcloudi andmed kõikidest „{userid}“ kasutaja seadmetest. Loomulikult toimib see vaid siis, kui vastav seade on ühendatud internetiga.",
- "Remote wipe of devices" : "Seadmete kaugkustutamine",
- "Wipe {userid}'s devices" : "Kaugkustuta kasutaja „{userid}“ seadmed",
- "Wiped {userid}'s devices" : "Kasutaja „{userid}“ seadmed on kaugkustutatud",
- "Failed to load groups with details" : "Gruppe koos üksikasjadega ei õnnestunud laadida",
- "Failed to load sub admin groups with details" : "Alamgruppe koos üksikasjadega ei õnnestunud laadida",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Kustuta „{userid}“ kasutajakonto täis mahus, sealhulgas tema isiklikud failid, rakenduste andmed ja muud.",
- "Account deletion" : "Kasutajakonto kustutamine",
- "Delete {userid}'s account" : "Kustuta kasutajakonto: „{userid}“",
- "Display name was successfully changed" : "Kuvatava nime muutmine õnnestus",
- "Password can't be empty" : "Salasõna ei saa olla tühi",
- "Password was successfully changed" : "Salasõna muutmine õnnestus",
- "Email can't be empty" : "E-posti aadress ei saa olla tühi",
- "Email was successfully changed" : "E-posti aadressi muutmine õnnestus",
- "Welcome mail sent!" : "Tervituskiri on saadetud!",
- "Loading account …" : "Laadin kasutajakontot…",
- "Change display name" : "Muuda kuvatavat nime",
- "Set new password" : "Määra uus salasõna",
- "Set new email address" : "Sisesta uus e-posti aadress",
- "Add account to group" : "Lisa kasutajakonto gruppi",
- "Set account as admin for" : "Määra kasutajakonto peakasutajaks siin:",
- "Select account quota" : "Määra kasutajakonto kvoot",
- "Set the language" : "Vali keel",
- "Done" : "Valmis",
- "Edit" : "Muuda",
- "Visibility" : "Nähtavus",
- "Show language" : "Näita keelt",
- "Show last login" : "Näita viimast sisselogimist",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Jõudluse mõttes kehtib järjestus vaid hetkel laaditud gruppidele. Uued grupid lisanduvad sedamööda, kuidas sa loendis edasi liigud.",
- "Send email" : "Saada kiri",
- "Defaults" : "Vaikeväärtused",
- "Default quota" : "Vaikimisi mahupiir",
- "Passwordless authentication requires a secure connection." : "Salasõnata autentimine eeldab turvalise võrguühenduse kasutamist.",
- "Unnamed device" : "Nimetu seade",
- "Passwordless Authentication" : "Salasõnata autentimine",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Seadista oma kasutajakonto jaoks salasõnata autentimine, mis põhineb FIDO2 standardil.",
- "The following devices are configured for your account:" : "Järgmised seadmed on seadistatud kasutama sinu kontot:",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Administraatorina saate jagamise valikuid täpselt seadistada. Lisateavet leiad dokumentatsioonist.",
- "Version {version}" : "Versioon {version}",
- "All accounts" : "Kõik kasutajakontod",
- "Admins" : "Haldurid",
- "Account group: {group}" : "Kasutajakontode grupp: {group}",
- "Account management" : "Kasutajakontode haldus",
+ "Delete group" : "Kustuta grupp",
"Sending…" : "Saadan...",
"Email sent" : "E-kiri on saadetud",
+ "For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Kui võtad Nextcloudi serveris krüptimise kasutsele, siis jõudlusest johtuvalt krüptitakse vaid uusi ja muudetud faile.",
"Location" : "Asukoht",
"Profile picture" : "Profiili pilt",
"About" : "Teave",
"Date of birth" : "Sünnikuupäev",
"Full name" : "Täielik nimi",
"Additional email" : "Täiendav e-post",
+ "Email" : "E-post",
"Fediverse (e.g. Mastodon)" : "Fediverse (nt. Mastodon)",
"Headline" : "Alapealkiri",
"Organisation" : "Organisatsioon",
@@ -514,6 +355,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (varasemalt Twitter)",
"Website" : "Veebileht",
"Profile visibility" : "Profiili nähtavus",
+ "Language" : "Keel",
"Locale" : "Kasutuskoht",
"First day of week" : "Nädala esimene päev",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Pole saadaval, sest see omadus on vajalik tuumikfunktsionaalsuse jaoks, sh failide jagamine ja kalendrikutsed",
@@ -531,19 +373,27 @@ OC.L10N.register(
"Show to logged in accounts only" : "Näita vaid sisseloginud kasutajatele",
"Hide" : "Peida",
"Manually installed apps cannot be updated" : "Käsitsi paigaldatud rakendusi ei saa uuendada",
+ "Update to {version}" : "Uuenda versioonile {version}",
+ "{progress}% Deploying …" : "Võtan kasutusele {progress}%…",
+ "Deploy and Enable" : "Võta kasutusele ja lülita sisse",
"Disable" : "Lülita välja",
"Allow untested app" : "Luba testimata rakenduse kasutamine",
+ "The app will be downloaded from the App Store" : "See rakendus laaditakse alla App Store'ist",
+ "{size} used" : "{size} kasutatud",
"Unknown" : "Teadmata",
"Never" : "Mitte kunagi",
"Could not register device: Network error" : "Seadme registreerimine polnud võimalik: võrguühenduse viga",
"An error occurred during the request. Unable to proceed." : "Päringu ajal tekkis viga. Jätkamine pole võimalik.",
+ "Error: This app cannot be enabled because it makes the server unstable" : "Viga: Kuna ta muudaks selle serveri mittetöökindlaks, siis seda rakendust ei saa sisse lülitada",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Rakendus on lubatud, aga see vajab uuendamist. Sind suunatakse 5 sekundi pärast uuendamise lehele.",
"Do you really want to wipe your data from this device?" : "Oled sa kindel, et soovid siit seadmest oma andmed kaugkustutada?",
"Confirm wipe" : "Kinnita kaugkustutamine",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Sinu võrgust tuli liiga palju päringuid. Proovi hiljem uuesti, või võta ühendust administraatoriga, kui tegu on veaga.",
"Error" : "Viga",
+ "Default quota" : "Vaikimisi mahupiir",
"Account documentation" : "Kasutajakonto juhendid",
"Administration documentation" : "Süsteemihalduse juhendid",
+ "Documentation" : "Dokumentatsioon",
"Forum" : "Foorum",
"General documentation" : "Üldjuhendid",
"Legal notice" : "Juriidiline teave",
@@ -563,8 +413,10 @@ OC.L10N.register(
"SMTP Password" : "SMTP salasõna",
"Save" : "Salvesta",
"Test and verify email settings" : "Testi ja kontrolli e-posti seadistusi",
+ "Send email" : "Saada kiri",
"Security & setup warnings" : "Turva- ja paigalduse hoiatused",
"All checks passed." : "Kõik kontrollid on läbitud.",
+ "Reasons to use Nextcloud in your organization" : "Põhjused, miks peaksid Nextcloudi kasutama oma organisatsioonis",
"Follow us on X" : "Järgne meile X-is",
"Follow us on Mastodon" : "Järgne meile Mastodonis",
"Check out our blog" : "Loe meie ajaveebi",
@@ -574,32 +426,6 @@ OC.L10N.register(
"The PHP memory limit is below the recommended value of %s." : "PHP mälukasutuse ülempiir on väiksem, kui soovitatav %s.",
"for WebAuthn passwordless login" : "WebAuthn salasõnata sisselogimise jaoks",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn salasõnata sisselogimise ja SFTP andmeruumi jaoks",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sa kasutad hetkel PHP versiooni %s. PHP 8.0 on aga alates Nexctcloudi versioonist 27 kasutuselt eemaldatud. Nexctcloud 28 eeldab, et PHP versioon on vähemalt 8.1. Palun uuenda oma server PHP Groupi poolt väljaantud ametliku PHP versioonini niipea, kui võimalik.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Kasutusel on MariaDB versioon „%s“ . Nextcloud 21 või hilisem seda versiooni ei toeta ning eeldab, et kasutusel on MariaDB versioon 10.2 või hilisem.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Kasutusel on MySQLi versioon „%s“ . Nextcloud 21 või hilisem seda versiooni ei toeta ning eeldab, et kasutusel on MySQLi versioon 8.0 või MariaDB versioon 10.2 või hilisemad.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Kasutusel on PostgreSQLi versioon „%s“ . Nextcloud 21 või hilisem seda versiooni ei toeta ning eeldab, et kasutusel on PostgreSQLi versioon 9.6 või hilisem.",
- "You are using <strong>{usage}</strong>" : "Sa kasutad: <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Sa kasutad: <strong>{usage}</strong> / <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Määra kasutaja haldur",
- "Username will be autogenerated" : "Kasutajanimi luuakse automaatselt",
- "Username (required)" : "Kasutajanimi (nõutav)",
- "New user" : "Uus kasutaja",
- "Groups (required)" : "Grupid (nõutav)",
- "Set user groups" : "Määra kasutajagrupid",
- "Administered groups" : "Hallatud grupid",
- "Set user as admin for …" : "Määra kasutaja peakasutajaks grupis…",
- "Add new user" : "Lisa uus kasutaja",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} kasutaja…","{userCount} kasutajat…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} kasutaja","{userCount} kasutajat"],
- "Loading users …" : "Laadin kasutajaid…",
- "Username" : "Kasutajanimi",
- "User backend" : "Kasutaja taustarakendus",
- "User actions" : "Kasutaja tegevused",
- "Add user to group" : "Lisa kasutaja gruppi",
- "Server error while trying to add WebAuthn device" : "Serveriviga WebAuthn seadme lisamisel",
- "Name your device" : "Anna seadmele nimi",
- "Active accounts" : "Aktiivsed kasutajakontod",
- "Follow us on Twitter" : "Järgne meile Twitteris",
- "Failed to load subadmin groups with details" : "Alamgruppe koos üksikasjadega ei õnnestunud laadida"
+ "Set default expiration date for shares" : "Määra jaosmeedia vaikimisi aegumiskuupäev"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/et_EE.json b/apps/settings/l10n/et_EE.json
index 72c5450d2cf..9af5f5e59ca 100644
--- a/apps/settings/l10n/et_EE.json
+++ b/apps/settings/l10n/et_EE.json
@@ -31,8 +31,8 @@
"Your <strong>group memberships</strong> were modified" : "Sinu <strong>grupide liikmelisus</strong> on muutunud",
"{actor} changed your password" : "{actor} muutis sinu salasõna",
"You changed your password" : "Sa muutsid oma salasõna",
- "Your password was reset by an administrator" : "Administraator lähtestas sinu parooli",
- "Your password was reset" : "Sinu parool lähtestati",
+ "Your password was reset by an administrator" : "Peakasutaja lähtestas sinu salasõna",
+ "Your password was reset" : "Sinu salasõna on lähtestatud",
"{actor} changed your email address" : "{actor} muutis sinu e-posti aadressi",
"You changed your email address" : "Sa muutsid oma e-posti aadressi",
"Your email address was changed by an administrator" : "Administraator muutis sinu e-posti aadressi",
@@ -47,7 +47,7 @@
"A login attempt using two-factor authentication failed (%1$s)" : "Sisselogimiskatse kaheastmelise autentimisega ebaõnnestus (%1$s)",
"Remote wipe was started on %1$s" : "Kaugkustutamine algas: %1$s",
"Remote wipe has finished on %1$s" : "Kaugkustutamine lõppes: %1$s",
- "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sinu <strong>parooli</strong> või <strong>e-posti aadressi</strong> muudeti",
+ "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sinu <strong>salasõna</strong> või <strong>e-posti aadress</strong> on muudetud",
"Settings" : "Seaded",
"Could not remove app." : "Rakenduse eemaldamine ei õnnestunud.",
"Could not update app." : "Rakenduse uuendamine ei õnnestunud.",
@@ -63,7 +63,7 @@
"Administrator documentation" : "Administraatori dokumentatsioon",
"User documentation" : "Kasutaja dokumentatsioon",
"Nextcloud help overview" : "Nextcloudi abiteabe ülevaade",
- "Invalid SMTP password." : "Vale SMTP parool.",
+ "Invalid SMTP password." : "Vale SMTP salasõna.",
"Email setting test" : "E-posti sätete kontroll",
"Well done, %s!" : "Hästi tehtud, %s!",
"If you received this email, the email configuration seems to be correct." : "Kui said selle kirja, näib e-posti seadistus õige.",
@@ -81,12 +81,13 @@
"Unable to set invalid website" : "Vigase veebisaidi lisamine pole võimalik",
"Some account data was invalid" : "Osa kasutajakonto andmeid olid vigased",
"In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Selleks, et tuvastada, et tegemist tõesti on sinu X-i / Twitteri kasutajakontoga, palun postita oma kontole järgnev säuts (palun kontrolli, et sinna ei satuks reavahetusi):",
- "%1$s changed your password on %2$s." : "%1$s muutis su parooli %2$s.",
- "Your password on %s was changed." : "Sinu %s parool muudeti.",
- "Your password on %s was reset by an administrator." : "Administraator lähtestas sinu %s parooli.",
+ "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Sinu veebisaidi õigsuse kontrolliks palun salvesta järgnev sisu oma saiti asukohta „.well-known/CloudIdVerificationCode.txt“ (ning kontrolli, et järgnev tekst on seal failis ühel real):",
+ "%1$s changed your password on %2$s." : "%1$s muutis sinu salasõna teenuses %2$s.",
+ "Your password on %s was changed." : "Sinu %s salasõna on muudetud.",
+ "Your password on %s was reset by an administrator." : "Peakasutaja lähtestas sinu %s salasõna.",
"Your password on %s was reset." : "Sinu salasõna „%s“ sai lähtestatud.",
- "Password for %1$s changed on %2$s" : "%1$s parool muudetud %2$s",
- "Password changed for %s" : "%s parool muudetud",
+ "Password for %1$s changed on %2$s" : "%1$s salasõna teenuses %2$s on muutunud",
+ "Password changed for %s" : "%s salasõna on muudetud",
"If you did not request this, please contact an administrator." : "Kui sa pole seda taotlenud, võta ühendust administraatoriga.",
"Your email address on %s was changed." : "Sinu %s e-posti aadressi muudeti.",
"Your email address on %s was changed by an administrator." : "Administraator muutis sinu %s e-posti aadressi.",
@@ -98,7 +99,7 @@
"Welcome aboard %s" : "Tere tulemast %s",
"Welcome to your %s account, you can add, protect, and share your data." : "Tere tulemast oma %s kontole. Sa saad lisada, kaitsta ja jagada oma andmeid.",
"Your Login is: %s" : "Sinu kasutajanimi on: %s",
- "Set your password" : "Määra oma parool",
+ "Set your password" : "Sisesta oma salasõna",
"Go to %s" : "Mine %s",
"Install Client" : "Paigalda kliendiprogramm",
"Logged in account must be a sub admin" : "Sisselogitud kasutajakonto peab olema peakasutajate alamgrupi liige",
@@ -119,30 +120,42 @@
"Mobile & desktop" : "Mobiil ja töölaud",
"Email server" : "E-kirjade server",
"Mail Providers" : "E-posti teenusepakkujad",
- "User's email account" : "Kasutaja e-postikonto",
- "System email account" : "Süsteemi e-posti konto",
+ "Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "Lisaks järgnevale üldisele valikule on võimalik ka isikliku e-postiikonto kasutamine. Hetkel toimib see võimalus vaid Nextcloudi kalendrikutsete puhul ning eelduseks on Nextcloud Mail 4.1 või suurem ning seal seadistatud e-postikonto vastab kasutaja e-postiaadressile Nextcloudi profiilis.",
+ "Send emails using" : "E-kirjade saatmisel on kasutusel",
+ "User's email account" : "Kasutaja seadistatud e-postikonto",
+ "System email account" : "Süsteemis seadistatud e-postikonto",
"Security & setup checks" : "Turva- ja paigalduse kontrollid",
"Background jobs" : "Taustal toimivad haldustoimingud",
"Unlimited" : "Piiramatult",
"Verifying" : "Kontrollin",
- "Allowed admin IP ranges" : "Süsteemihalduseks lubatud IP-aadresside filtreerimine",
- "Admin IP filtering isn't applied." : "Süsteemihalduseks lubatud IP-aadresside filtreerimine pole kasutusel.",
+ "Allowed admin IP ranges" : "Süsteemihalduseks lubatud IP-aadresside vahemikus",
+ "Admin IP filtering isn't applied." : "Süsteemihalduseks lubatud IP-aadresside vahemikud pole seadistatud.",
"Configuration key \"%1$s\" expects an array (%2$s found). Admin IP range validation will not be applied." : "Seadistuste võtmes „%1$s“ peab olema kirjas massiiv ( aga leidsime „%2$s“). Süsteemihalduseks lubatud IP-aadresside filtreerimine hetkel ei toimi.",
"Configuration key \"%1$s\" contains invalid IP range(s): \"%2$s\"" : "Seadistuste võtmes „%1$s“ on vigane IP-aadressi(de) vahemik: „%2$s“",
"Admin IP filtering is correctly configured." : "Süsteemihalduseks lubatud IP-aadresside filtreerimine on korrektselt seadistatud.",
+ "App directories owner" : "Rakenduste kausta omanik",
+ "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:\n%s" : "Mõnede rakenduste kaustade omanik erinev kogu Nextcloudi serveri omanikust. Nii võib juhtuda, kui rakendused on paigaldatud käsitsi. Palun kontrolli järgnevate rakenduste kaustade omanikke:\n%s",
+ "App directories have the correct owner \"%s\"" : "Rakenduste kaustadel on korrektne omanik: „%s“",
"Your remote address could not be determined." : "Sinu kaugaadressi tuvastamine ei õnnestunud.",
"No altered files" : "Muudetud faile pole",
"Database missing primary keys" : "Andmebaasis on puudu primaarvõtmed",
"Missing primary key on table \"%s\"." : "Puuduv primaarvõti tabelis „%s“.",
+ "Default phone region" : "Telefonide vaikimisi piirkond",
"Email test" : "E-kirjade saatmise test",
"Mail delivery is disabled by instance config \"%s\"." : "Selles serveris piirab e-kirjade edasisaatmist seadistus „%s“.",
- "Email test was successfully sent" : "Test e-kirja saatmine õnnestus",
+ "Email test was successfully sent" : "Testkirja saatmine õnnestus",
+ "Your \"trusted_proxies\" setting is not correctly set, it should be an array." : "Serveri „trusted_proxies“ seadistus pole korrektne - seal peab leiduma massiiv, aga hetkel on midagi muud.",
+ "This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Sellel serveril puudub toimiv internetiühendus: mitmete otspunktidega ei ole leitavad. See tähendab, et mõned funktsionaalsused, nagu näiteks väliste andmehoidlate ühendamine, uuenduste teavitused või kolmandate osapoolte rakenduste paigaldamine ei tööta. Ligipääs failidele eemalt ning teavistuste saatmine e-kirjaga ei pruugi samuti toimida. Kui soovid kasutada täielikku funktsionaalsust, siis palun taga toimiv internetiühendus.",
+ "Old server-side-encryption" : "Vana serveripoolne krüptimine",
"Disabled" : "Keelatud",
+ "The old server-side-encryption format is enabled. We recommend disabling this." : "Vana serveripoolse krüptimise vorming on kasutusel. Mes soovitame, et lülitad selle välja.",
"Logging level" : "Logitase",
"The %1$s configuration option must be a valid integer value." : "Seadistusvalik „%1$s“ peab olema korrektne täisarv.",
"The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Logimistase on hetkel seatud veaotsinguks. Kasuta seda vaid siis, kui tõesti tegeled veaotsinguga ning peale seda muuda logimine jälle tavaliseks. Veaotsinguks vajalik logimine on väga väljundirikas ning võib mõjutada serveri jõudlust.",
"Logging level configured correctly." : "Logimistase on korrektselt seadistatud",
+ "PHP configuration option \"default_charset\" should be UTF-8" : "PHP seadistuse „default_charset“ väärtus peab olema UTF-8",
"Supported" : "Toetatud",
+ "PHP getenv" : "PHP getenv",
"PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP ei tundu olevat süsteemsete keskkonnamuutujate pärimiseks korrektselt seadistatud. Test getenv(\"PATH\") abil tagastab tühja vastuse.",
"PHP file size upload limit" : "PHP failide üleslaadimise mahupiir",
"The PHP upload_max_filesize is too low. A size of at least %1$s is recommended. Current value: %2$s." : "PHP seadistuse „upload_max_filesize“ väärtus on liiga väike. Meie soovitatud väärtus: %1$s. Praegune väärtus: %2$s.",
@@ -150,47 +163,83 @@
"The PHP max_input_time is too low. A time of at least %1$s is recommended. Current value: %2$s." : "PHP seadistuse „max_input_time“ väärtus on liiga väike. Meie soovitatud väärtus: %1$s. Praegune väärtus: %2$s.",
"The PHP max_execution_time is too low. A time of at least %1$s is recommended. Current value: %2$s." : "PHP seadistuse „max_execution_time“ väärtus on liiga väike. Meie soovitatud väärtus: %1$s. Praegune väärtus: %2$s.",
"PHP memory limit" : "PHP mälukasutuse ülempiir",
+ "The PHP memory limit is below the recommended value of %s. Some features or apps - including the Updater - may not function properly." : "PHP mälukasutuse piir on väiksem, muid soovitatav väärtus %s. Mõned funktsionaalsused või rakendused, sealhulgas uuendaja, ei pruugi toimida korrektselt.",
+ "PHP modules" : "PHP lisamoodulid",
"for Argon2 for password hashing" : "Argon2-põhise salasõna räsimise jaoks",
"required for SFTP storage and recommended for WebAuthn performance" : "nõutav SFTP andmeruumi jaoks ja soovitatav WebAuthn jõudluse jaoks",
+ "This instance is missing some required PHP modules. It is required to install them: %s." : "Siit serverist on puudu mõned vajalikud PHP moodulid. On nõutav, et paigaldad alljärgnevad lisamoodulid: %s.",
+ "Correctly configured" : "Korrektselt seadistatud",
"PHP version" : "PHP versioon",
"You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sa kasutad hetkel PHP versiooni %1$s. PHP %2$s on aga alates Nexctcloudi versioonist %3$s kasutuselt eemaldatud. Nexctcloud %4$s eeldab, et PHP versioon on vähemalt %5$s. Palun uuenda oma server PHP Groupi poolt väljaantud ametliku PHP versioonini niipea, kui võimalik.",
"You are currently running PHP %s." : "Sul on hetkel kasutusel PHP versioon %s.",
+ "PHP \"output_buffering\" option" : "PHP eelistus „output_buffering“",
+ "PHP configuration option \"output_buffering\" must be disabled" : "PHP seadistus „output_buffering“ peab olema lülitatud välja",
"Push service" : "Tõuketeenus",
"Valid enterprise license" : "Suurfirmade litsents",
"Free push service" : "Tasuta tõuketeenus",
"This is the unsupported community build of Nextcloud. Given the size of this instance, performance, reliability and scalability cannot be guaranteed. Push notifications are limited to avoid overloading our free service. Learn more about the benefits of Nextcloud Enterprise at {link}." : "See on mittetoetatud Nextcloudi variant kogukonnale. Arvestades selle serveri parameetreid, pole jõudlus, töökindlus ja skaleeritavus garanteeritud. Meie tasuta teenuse ülekoormuse vältimiseks on tõuketeavituste arv piiratud. Nextcloud Enterprise versiooni eelistest loe siin: {link}.",
+ "Secure" : "Turvaline",
+ "Configuration file access rights" : "Ligipääsuõigused seadistuste failile",
+ "Nextcloud configuration file is writable" : "Nextcloudi seadistusfail on on kirjutatav",
"Database version" : "Andmebaasi versioon",
"MariaDB version 10.3 detected, this version is end-of-life and only supported as part of Ubuntu 20.04. MariaDB >=%1$s and <=%2$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MariaDB versiooni 10.3 ning tema kasutusperiood on lõppenud ja tugi on olemas vaid Ubuntu 20.04 puhul. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MariaDB versioone >=%1$s and <= %2$s.",
"MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MariaDB versiooni „%1$s“. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MariaDB versioone >=%2$s and <= %3$s.",
"MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin MySQLi versiooni „%1$s“. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks MySQLi versioone >=%2$s and <= %3$s.",
"PostgreSQL version \"%1$s\" detected. PostgreSQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "Tuvastasin PostgreSQLi versiooni „%1$s“. Parima jõudluse, stabiilsuse ja funktsionaalsuse mõttes soovitame selle Nextcloudi versiooni jaoks PostgreSQLi >=%2$s and <= %3$s.",
+ "Unknown database platform" : "Tuvastamatu andmebaasiplatvorm",
"Architecture" : "Arhitektuur",
"64-bit" : "64-bitine",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Tundub, et kasutad PHP 32-bitist versiooni. Tõhusaks toimimiseks eeldab Nextcloud 64-bitist keskkonda. Palun uuenda oma serveri operatsioonisüsteem ja PHP 64-bitiseks versiooniks!",
+ "Task Processing pickup speed" : "Ülesannete töötlemise kiirus",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Viimase %n tunni jooksul pole olnud ühtegi ajastatud ülesannet.","Viimase %n tunni jooksul pole olnud ühtegi ajastatud ülesannet."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud mõistlik.","Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud mõistlik."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud aeglane. Paljude ülesannete töölepanekuks kulus enam, kui 4 minutit. Palun kaalu võimalust, et ülesannete töötlemiseks seadistad taustal töötava protsessihalduri.","Ülesannete töötlemise kiirus on viimase %n tunni jooksul olnud aeglane. Paljude ülesannete töölepanekuks kulus enam, kui 4 minutit. Palun kaalu võimalust, et ülesannete töötlemiseks seadistad taustal töötava protsessihalduri."],
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP funktsioon „disk_free_space“ pole kasutusel. Selle puudumine takistab ajutiste kaustade jaoks vajaliku andmeruumi kontrollimist.",
"Profile information" : "Kasutajaprofiili teave",
"Nextcloud settings" : "Nextcloudi seadistused",
"Task:" : "Ülesanded:",
"Enable" : "Lülita sisse",
"Machine translation" : "Masintõlge",
+ "Image generation" : "Pildiloome",
+ "Text processing" : "Tekstitöötlus",
+ "Here you can decide which group can access certain sections of the administration settings." : "Siinkohal saad sa otsustada mis gruppidel on ligipääs valitud haldusseadistustele.",
+ "Unable to modify setting" : "Seadistuse muutmine ei õnnestu",
"None" : "Pole",
+ "Changed disclaimer text" : "Vastutusest lahtiütluse tekst on muutunud",
+ "Deleted disclaimer text" : "Vastutusest lahtiütluse tekst on kustutatud",
+ "Could not set disclaimer text" : "Vastutusest lahtiütluse teksti seadistamine ei õnnestunud",
"Allow apps to use the Share API" : "Luba rakendustel kasutada Share API-t",
"Allow resharing" : "Luba edasijagamine",
"Allow sharing with groups" : "Luba gruppidega jagamine",
"Restrict users to only share with users in their groups" : "Luba kasutajatel jagada kasutajatega ainult oma grupi piires",
+ "Allow users to share via link and emails" : "Luba kasutajatel lingiga ja e-postiga jagamist",
"Allow public uploads" : "Luba avalikud üleslaadimised",
- "Always ask for a password" : "Alati küsi parooli",
- "Enforce password protection" : "Jõusta paroolikaitse",
+ "Always ask for a password" : "Alati küsi salasõna",
+ "Enforce password protection" : "Jõusta salasõnakaitse",
"Exclude groups from password requirements" : "Välista grupid salasõnareeglitest",
+ "Exclude groups from creating link shares" : "Välista grupid jagamislinkide loomisest",
"Limit sharing based on groups" : "Piira jagamist gruppide alusel",
"Allow sharing for everyone (default)" : "Luba jagamine kõikidele (vaikimisi)",
"Exclude some groups from sharing" : "Välista mõned grupid jagamisest",
"Limit sharing to some groups" : "Piira jagamist mõnede gruppidega",
+ "Groups allowed to share" : "Grupid, millel on jagamine lubatud",
"Groups excluded from sharing" : "Jagamisest välistatud grupid",
+ "Not allowed groups will still be able to receive shares, but not to initiate them." : "Mittelubatud gruppide liikmed saavad vastu võtta jagamisi, kuid ise jagamisi algatada ei saa.",
+ "Set default expiration date for internal shares" : "Jagamisel selle serveri piires kasuta vaikimisi aegumist",
"Enforce expiration date" : "Sunnitud aegumise kuupäev",
"Default expiration time of new shares in days" : "Uue jaosmeedia vaikimisi aegumine päevades",
"Expire shares after x days" : "Jaosmeedia aegub x päeva möödudes",
+ "Set default expiration date for shares to other servers" : "Jagamisel teistesse serveritesse kasuta vaikimisi aegumist",
+ "Enforce expiration date for remote shares" : "Määra lingi kaugserverid asuva jaosmeedia vaikimisi aegumiskuupäev ",
+ "Default expiration time of remote shares in days" : "Kaugserveris asuva jaosmeedia vaikimisi aegumine päevades",
+ "Expire remote shares after x days" : "Jaosmeedia aegub x päeva möödudes",
+ "Set default expiration date for shares via link or mail" : "Määra lingi või e-kirjaga jagatava jaosmeedia vaikimisi aegumiskuupäev",
+ "Default expiration time of shares in days" : "Jaosmeedia vaikimisi aegumine päevades",
+ "Privacy settings for sharing" : "Jagamise privaatsusseadistused",
+ "Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Kuva avaliku lingiga üleslaadimise lehel lahtiütluste tekst (vaid siis, kui failide loend on peidetud)",
+ "Disclaimer text" : "Vastutusest lahtiütluse tekst",
"This text will be shown on the public link upload page when the file list is hidden." : "Seda teksti näidatakse avaliku lingiga üleslaadimise lehel kui failide loend on peidetud.",
+ "Default share permissions" : "Vaikimisi õigusel jagamisel",
"Two-Factor Authentication" : "Kaheastmeline autentimine",
"Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system." : "Kaheastmelist autentimist on võimalik teha kohustuslikuks kas kõikidele kasutajakontodele või konkreetsete gruppide kaupa. Kui kaheastmelise autentimise kohustuslikkus on määratud, kuid on kasutajal seadistamata, siis ta ei saa siia serverisse sisse logida.",
"Enforce two-factor authentication" : "Tee kaheastmeline autentimine kohustuslikuks",
@@ -202,6 +251,7 @@
"Excluded groups" : "Välistatud neis gruppides",
"Save changes" : "Salvesta muudatused",
"Show details for {appName} app" : "Näita „{appName}“ rakenduse üksikasju",
+ "Update to {update}" : "Uuenda versioonini {update}",
"Remove" : "Eemalda",
"Featured" : "Esiletõstetud",
"This app is supported via your current Nextcloud subscription." : "See rakendus on toetatud sinu praeguses Nextcloudi tellimuses. ",
@@ -228,78 +278,12 @@
"Search groups…" : "Otsi gruppe…",
"List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list." : "Gruppide loend. Jõudluse mõttes ei ole kogu loend esimesel hetkel tervikuna nähtav. Uued grupid lisanduvad sedamööda, kui sa loendis edasi liigud.",
"Loading groups…" : "Laadin gruppe…",
- "Loading" : "Laadimine",
+ "Could not load app discover section" : "Rakenduse tuvastamise jaotise laadimine ei õnnestunud",
+ "Could not render element" : "Elemendi töötlemine ei õnnestunud",
+ "Nothing to show" : "Pole midagi näidata",
+ "Could not load section content from app store." : "Jaotise sisu laadimine rakendustepoest ei õnnestunud.",
+ "Loading" : "Laadin",
"Fetching the latest news…" : "Laadin viimaseid uuendusi",
- "Carousel" : "Karussell",
- "Previous slide" : "Eelmine slaid",
- "Next slide" : "Järgmine slaid",
- "Choose slide to display" : "Vali kuvatav slaid",
- "{index} of {total}" : "{index} / {total}",
- "Type" : "Tüüp",
- "Display Name" : "Kuvatav nimi",
- "Edit ExApp deploy options before installation" : "Muuda ExApp konteineri seadistuse enne paigaldamist",
- "Configured ExApp deploy options. Can be set only during installation" : "ExApp'i konteineri seadistuse valikud. Neid saab määrata vaid paigalduse ajal",
- "Learn more" : "Lisateave",
- "Environment variables" : "Keskonnamuutujad",
- "ExApp container environment variables" : "ExApp konteineri keskonnamuutujad",
- "No environment variables defined" : "Ühtegi keskonnamuutujat pole defineeritud",
- "Mounts" : "Haakepunktid",
- "Read-only" : "Ainult lugemiseks",
- "Remove mount" : "Eemalda haakepunkt",
- "New mount" : "Uus haakepunkt",
- "Enter path to container folder" : "Sisesta konteinerikausta asukoht",
- "Toggle read-only mode" : "Lülita „ainult lugemiseks“ režiim sisse/välja",
- "Confirm adding new mount" : "Kinnita uue haakepunkti lisamine",
- "Confirm" : "Kinnita",
- "Cancel adding mount" : "Katkesta haakepunkti lisamine",
- "Cancel" : "Loobu",
- "Add mount" : "Lisa haakepunkt",
- "ExApp container mounts" : "ExApp konteinerite haakepunktid",
- "No mounts defined" : "Ühtegi haakepunkti pole määratletud",
- "Description" : "Kirjeldus",
- "View in store" : "Vaata poes",
- "Visit website" : "Külasta veebisaiti",
- "Admin documentation" : "Administraatori dokumentatsioon",
- "Developer documentation" : "Arendaja dokumentatsioon",
- "Details" : "Üksikasjad",
- "All" : "Kõik",
- "Limit app usage to groups" : "Piira rakenduse kasutamist gruppidega",
- "No results" : "Vasteid ei leitud",
- "Update to {version}" : "Uuenda versioonile {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Sellel rakendusel pole määratud minimaalset Nextcloudi versiooni. See põhjustab tulevikus veateateid.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Sellel rakendusel pole määratud maksimaalset Nextcloudi versiooni. See põhjustab tulevikus veateateid.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Seda rakendust ei saa paigaldada, sest järgmised sõltuvusel ei ole täidetud:",
- "Author" : "Autor",
- "Categories" : "Kategooriad",
- "Resources" : "Ressursid",
- "Documentation" : "Dokumentatsioon",
- "Report a bug" : "Teata veast",
- "Ask questions or discuss" : "Küsi nõu või aruta",
- "Changelog" : "Muudatuste logi",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName}i iOS-i rakendus",
- "{productName} Android app" : "{productName}i Androidi rakendus",
- "{productName} Talk for iOS" : "{productName} Talk iOS-i jaoks",
- "{productName} Talk for Android" : "{productName} Talk Androidi jaoks",
- "Sync client" : "Sünkroniseerimisklient",
- "This session" : "See sessioon",
- "Device name" : "Seadme nimi",
- "Cancel renaming" : "Katkesta nime muutmine",
- "Save new name" : "Salvesta uus nimi",
- "Marked for remote wipe" : "Märgitud kaugkustutamisele",
- "Device settings" : "Seadme seaded",
- "Allow filesystem access" : "Luba juurdepääs failisüsteemile",
- "Rename" : "Muuda nime",
- "Revoke" : "Tühista",
- "Wipe device" : "Kaugkustuta seade",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Selle tunnusloa tühistamine võib katkestada sinu seadme kaugkustutamise, kui kustutamine pole veel alanud.",
- "Device" : "Seade",
- "Last activity" : "Viimane tegevus",
- "Devices & sessions" : "Seadmed & sessioonid",
- "Web, desktop and mobile clients currently logged in to your account." : "Sinu kontole hetkel sisse loginud veebi-, töölaua-, ja mobiilsed kliendid.",
- "Error while creating device token" : "Tõrge seadme märke loomisel",
- "App name" : "Rakenduse nimi",
- "Create new app password" : "Loo uus rakenduse parool",
"App password copied!" : "Rakenduse salasõna on kopeeritud!",
"Copy app password" : "Kopeeri rakenduse salasõna",
"Login name copied!" : "Kasutajanimi on koeeritud!",
@@ -313,7 +297,15 @@
"Show QR code for mobile apps" : "Näita QR-koodi nutiseadmete rakenduste jaoks",
"Last job execution ran {time}. Something seems wrong." : "Viimane käivitus kestis {time}. See pole päris õige.",
"Last job ran {relativeTime}." : "Viimane käivitus kestis {relativeTime}.",
+ "Background job did not run yet!" : "Taustal töötav ülesanne pole veel käivitunud!",
+ "AJAX" : "AJAX",
+ "Execute one task with each page loaded. Use case: Single account instance." : "Käivita igal lehe laadimisel üks ülesanne. Kasutusjuhtum: ühe kasutajakontoga server.",
+ "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 accounts depending on the usage)." : "cron.php on registreeritud webcroni teenuses käivitama cron.php skripti HTTP-päringuga iga 5 minuti järel. Kasutusjuhtum: väga väike server (sõltuvalt kasutusviisist 1–5 kontot).",
+ "Cron (Recommended)" : "Cron (Soovitatav)",
+ "Unable to update profile default setting" : "Profiili vaikimisi seadistuste uuendamine ei õnnestu",
"Profile" : "Profiil",
+ "Password confirmation is required" : "Salasõna kinnitamine on vajalik",
"Failed to save setting" : "Seadistuse salvestamine ei õnnestunud",
"Unable to update server side encryption config" : "Serveripoolse krüptimise seadistusi ei õnnestu uuendada",
"Server-side encryption" : "Serveripoolne krüptimine",
@@ -334,175 +326,24 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Alati on hea mõte, kui varundad oma andmeid. Kui aga kasutusel on krüptimine, siis palun kontrolli, et lisaks andmetele on varundatud ka krüptovõtmed.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Süsteemihalduse juhendist leiad teavet kuidas saad käsitsi krüptida juba olemasolevaid faile.",
"This is the final warning: Do you really want to enable encryption?" : "See on viimane hoiatus: Kas oled kindel, et soovid krüptimise sisse lülitada?",
- "Failed to remove group \"{group}\"" : "„{group}“ grupi eemaldamine ei õnnestunud",
+ "Failed to delete group \"{group}\"" : "„{group}“ grupi eemaldamine ei õnnestunud",
"Please confirm the group removal" : "Palun kinnita grupi eemaldamine",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Sa oled eemaldamas gruppi „{group}“. Selles grupis olevad kasutajad aga JÄÄVAD kustutamata.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Sa oled eemaldamas gruppi „{group}“. Selles grupis olevad kasutajad aga JÄÄVAD kustutamata.",
+ "Cancel" : "Loobu",
+ "Confirm" : "Kinnita",
"Submit" : "Saada",
"Rename group" : "Muuda grupi nime",
- "Remove group" : "Eemalda grupp",
- "Current password" : "Praegune salasõna",
- "New password" : "Uus salasõna",
- "Change password" : "Muuda salasõna",
- "Choose your profile picture" : "Vali oma tunnuspilt",
- "Please select a valid png or jpg file" : "Palun vali korrektne png või jpg fail",
- "Error setting profile picture" : "Viga tunnuspildi jõustamisel",
- "Error cropping profile picture" : "Viga tunnuspildi kadreerimisel",
- "Error saving profile picture" : "Viga tunnuspildi salvestamisel",
- "Error removing profile picture" : "Viga tunnuspildi eemaldamisel",
- "Your profile picture" : "Sinu tunnuspilt",
- "Upload profile picture" : "Laadi tunnuspilt üles",
- "Choose profile picture from Files" : "Vali oma tunnuspilt failirakendusest",
- "Remove profile picture" : "Eemalda tunnuspilt",
- "The file must be a PNG or JPG" : "Fail peab olema png või jpg vormingus",
- "Picture provided by original account" : "Pilt esitatud originaalse konto poolt",
- "Set as profile picture" : "Määra tunnuspildiks",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Palun arvesta, et võib kuluda kuni 24 tundi enne, kuni sinu uus tunnuspilt on kõikjal uuendatud.",
- "Your biography. Markdown is supported." : "Teave sinu kohta. Võid kasutada ka markdown-vormingut.",
- "Enter your date of birth" : "Palun sisesta sünnikuupäev",
- "You are using {s}{usage}{/s}" : "Sa kasutad: {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Sa kasutad: {s}{usage}{/s} / {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Sa oled nende gruppide liige:",
- "Your full name" : "Sinu täispikk nimi",
- "Email options" : "E-posti valikud",
- "Remove primary email" : "Eemalda põhiline e-postiaadress",
- "Delete email" : "Kustuta e-posti aadress",
- "This address is not confirmed" : "See aadress pole kinnitatud",
- "Unset as primary email" : "Eemalda määramine põhiliseks e-postiaadressiks",
- "Set as primary email" : "Määra põhiliseks e-postiaadressiks",
- "Additional email address {index}" : "Täiendav e-posti aadress {index}",
- "Unable to delete primary email address" : "Ei õnnestunud eemaldada põhilist e-postiaadressi",
- "Unable to update primary email address" : "Ei õnnestunud uuendada põhilist e-postiaadressi",
- "Unable to add additional email address" : "Ei õnnestunud laadida täiendavat e-posti aadressi",
- "Unable to update additional email address" : "Ei õnnestunud uuendada täiendavat e-posti aadressi",
- "Unable to delete additional email address" : "Ei õnnestunud kustutada täiendavat e-posti aadressi",
- "Primary email for password reset and notifications" : "Põhiline e-postiaadress salasõna lähtestamiseks ja teavituste jaoks",
- "No email address set" : "E-posti aadressi pole veel määratud",
- "Your handle" : "Sinu pseudonüüm",
- "Derived from your locale ({weekDayName})" : "Tuletatud lokaadist ({weekDayName})",
- "Unable to update first day of week" : "Nädala esimese päeva uuendamine ei õnnestu",
- "Day to use as the first day of week" : "Nädala esimene päev",
- "Your headline" : "Sind kirjeldav alapealkiri",
- "Unable to update language" : "Keele uuendamine ei õnnestu",
- "Languages" : "Keeled",
- "Help translate" : "Aita tõlkida",
- "No language set" : "Keel on määramata",
- "Unable to update locale" : "Lokaadi uuendamine ei õnnestu",
- "Locales" : "Lokaadid",
- "Week starts on {firstDayOfWeek}" : "Nädala esimene päev: {firstDayOfWeek}",
- "No locale set" : "Lokaat on määramata",
- "Your city" : "Sinu asukoht",
- "Your organisation" : "Sinu organisatsioon",
- "Your phone number" : "Sinu telefoninumber",
- "Edit your Profile visibility" : "Muuda oma profiili nähtavust",
- "Your role" : "Sinu roll",
- "Your X (formerly Twitter) handle" : "Sinu X-i (varasemalt Twitteri) kasutajanimi",
- "Your website" : "Sinu veebileht",
- "Invalid value" : "Vigane väärtus",
- "Unable to update {property}" : "„{property}“ uuendamine ei õnnestu",
- "No {property} set" : "„{property}“ on määramata",
- "Add additional email" : "Lisa täiendav e-posti aadress",
- "Add" : "Lisa",
- "Create" : "Loo",
- "Change" : "Muuda",
- "Delete" : "Kustuta",
- "Reshare" : "Jaga edasi",
- "Default language" : "Vaikekeel",
- "Common languages" : "Levinud keeled",
- "Other languages" : "Muud keeled",
- "Password change is disabled because the master key is disabled" : "Salasõna muutmine on lülitatud välja, kuna ka peremeesvõti on lülitatud välja",
- "No accounts" : "Kasutajakontosid pole",
- "Loading accounts …" : "Kontode laadimine ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Kasutajakontode loend. Jõudluse mõttes ei ole kogu loend esimesel hetkel tervikuna nähtav. Uued kasutajakontid lisanduvad sedamööda, kui sa loendis edasi liigud.",
- "Manager" : "Haldaaja",
- "Account name will be autogenerated" : "Kasutajakonto nimi luuakse automaatselt",
- "Account name (required)" : "Kasutajakonto nimi (nõutav)",
- "Failed to search groups" : "Gruppe ei õnnestunud otsida",
- "New account" : "Uus kasutajakonto",
- "Display name" : "Kuvatav nimi",
- "Either password or email is required" : "Kas salasõna või e-posti aadress on kohustuslik",
- "Password (required)" : "Salasõna (nõutav)",
- "Email (required)" : "E-posti aadress (nõutav)",
- "Email" : "E-post",
- "Member of the following groups (required)" : "Järgmiste gruppide liige (nõutav)",
- "Member of the following groups" : "Järgmiste gruppide liige",
- "Set account groups" : "Määra kasutajakonto grupid",
- "Admin of the following groups" : "Järgmiste gruppide peakasutaja",
- "Set account as admin for …" : "Määra kasutajakonto peakasutajaks siin:",
- "Quota" : "Mahupiir",
- "Set account quota" : "Määra kasutajakonto kvoot",
- "Language" : "Keel",
- "Set default language" : "Määra vaikimisi keel",
- "Add new account" : "Lisa uus kasutajakonto",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} kasutajakonto…","{userCount} kasutajakontot…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} kasutajakonto","{userCount} kasutajakontot"],
- "Total rows summary" : "Ridade koondkokkuvõte",
- "Scroll to load more rows" : "Täiendavate ridade laadimiseks keri",
- "Password or insufficient permissions message" : "Teavitus salasõna või puuduvate õiguste kohta",
- "Avatar" : "Tunnuspilt ehk avatar",
- "Account name" : "Kasutajakonto nimi",
- "Group admin for" : "Grupi admin",
- "Account backend" : "Kasutajakonto taustateenus",
- "Storage location" : "Salvestusruumi asukoht",
- "First login" : "Esimene sisselogimine",
- "Last login" : "Viimane sisselogimine",
- "Account actions" : "Kasutajakonto tegevused",
- "{size} used" : "{size} kasutatud",
- "Delete account" : "Kustuta konto",
- "Disconnect all devices and delete local data" : "Katkesta ühendused kõikide seadmetega ja kustuta kohalikud andmed",
- "Disable account" : "Lülita kasutajakonto välja",
- "Enable account" : "Lülita kasutajakonto sisse",
- "Resend welcome email" : "Saada tervituskiri uuesti",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Kas seadme kadumisel või organisatsioonist lahkumisel on võimalik kaugkustutamise abil kustutada Nextcloudi andmed kõikidest „{userid}“ kasutaja seadmetest. Loomulikult toimib see vaid siis, kui vastav seade on ühendatud internetiga.",
- "Remote wipe of devices" : "Seadmete kaugkustutamine",
- "Wipe {userid}'s devices" : "Kaugkustuta kasutaja „{userid}“ seadmed",
- "Wiped {userid}'s devices" : "Kasutaja „{userid}“ seadmed on kaugkustutatud",
- "Failed to load groups with details" : "Gruppe koos üksikasjadega ei õnnestunud laadida",
- "Failed to load sub admin groups with details" : "Alamgruppe koos üksikasjadega ei õnnestunud laadida",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Kustuta „{userid}“ kasutajakonto täis mahus, sealhulgas tema isiklikud failid, rakenduste andmed ja muud.",
- "Account deletion" : "Kasutajakonto kustutamine",
- "Delete {userid}'s account" : "Kustuta kasutajakonto: „{userid}“",
- "Display name was successfully changed" : "Kuvatava nime muutmine õnnestus",
- "Password can't be empty" : "Salasõna ei saa olla tühi",
- "Password was successfully changed" : "Salasõna muutmine õnnestus",
- "Email can't be empty" : "E-posti aadress ei saa olla tühi",
- "Email was successfully changed" : "E-posti aadressi muutmine õnnestus",
- "Welcome mail sent!" : "Tervituskiri on saadetud!",
- "Loading account …" : "Laadin kasutajakontot…",
- "Change display name" : "Muuda kuvatavat nime",
- "Set new password" : "Määra uus salasõna",
- "Set new email address" : "Sisesta uus e-posti aadress",
- "Add account to group" : "Lisa kasutajakonto gruppi",
- "Set account as admin for" : "Määra kasutajakonto peakasutajaks siin:",
- "Select account quota" : "Määra kasutajakonto kvoot",
- "Set the language" : "Vali keel",
- "Done" : "Valmis",
- "Edit" : "Muuda",
- "Visibility" : "Nähtavus",
- "Show language" : "Näita keelt",
- "Show last login" : "Näita viimast sisselogimist",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Jõudluse mõttes kehtib järjestus vaid hetkel laaditud gruppidele. Uued grupid lisanduvad sedamööda, kuidas sa loendis edasi liigud.",
- "Send email" : "Saada kiri",
- "Defaults" : "Vaikeväärtused",
- "Default quota" : "Vaikimisi mahupiir",
- "Passwordless authentication requires a secure connection." : "Salasõnata autentimine eeldab turvalise võrguühenduse kasutamist.",
- "Unnamed device" : "Nimetu seade",
- "Passwordless Authentication" : "Salasõnata autentimine",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Seadista oma kasutajakonto jaoks salasõnata autentimine, mis põhineb FIDO2 standardil.",
- "The following devices are configured for your account:" : "Järgmised seadmed on seadistatud kasutama sinu kontot:",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Administraatorina saate jagamise valikuid täpselt seadistada. Lisateavet leiad dokumentatsioonist.",
- "Version {version}" : "Versioon {version}",
- "All accounts" : "Kõik kasutajakontod",
- "Admins" : "Haldurid",
- "Account group: {group}" : "Kasutajakontode grupp: {group}",
- "Account management" : "Kasutajakontode haldus",
+ "Delete group" : "Kustuta grupp",
"Sending…" : "Saadan...",
"Email sent" : "E-kiri on saadetud",
+ "For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Kui võtad Nextcloudi serveris krüptimise kasutsele, siis jõudlusest johtuvalt krüptitakse vaid uusi ja muudetud faile.",
"Location" : "Asukoht",
"Profile picture" : "Profiili pilt",
"About" : "Teave",
"Date of birth" : "Sünnikuupäev",
"Full name" : "Täielik nimi",
"Additional email" : "Täiendav e-post",
+ "Email" : "E-post",
"Fediverse (e.g. Mastodon)" : "Fediverse (nt. Mastodon)",
"Headline" : "Alapealkiri",
"Organisation" : "Organisatsioon",
@@ -512,6 +353,7 @@
"X (formerly Twitter)" : "X (varasemalt Twitter)",
"Website" : "Veebileht",
"Profile visibility" : "Profiili nähtavus",
+ "Language" : "Keel",
"Locale" : "Kasutuskoht",
"First day of week" : "Nädala esimene päev",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Pole saadaval, sest see omadus on vajalik tuumikfunktsionaalsuse jaoks, sh failide jagamine ja kalendrikutsed",
@@ -529,19 +371,27 @@
"Show to logged in accounts only" : "Näita vaid sisseloginud kasutajatele",
"Hide" : "Peida",
"Manually installed apps cannot be updated" : "Käsitsi paigaldatud rakendusi ei saa uuendada",
+ "Update to {version}" : "Uuenda versioonile {version}",
+ "{progress}% Deploying …" : "Võtan kasutusele {progress}%…",
+ "Deploy and Enable" : "Võta kasutusele ja lülita sisse",
"Disable" : "Lülita välja",
"Allow untested app" : "Luba testimata rakenduse kasutamine",
+ "The app will be downloaded from the App Store" : "See rakendus laaditakse alla App Store'ist",
+ "{size} used" : "{size} kasutatud",
"Unknown" : "Teadmata",
"Never" : "Mitte kunagi",
"Could not register device: Network error" : "Seadme registreerimine polnud võimalik: võrguühenduse viga",
"An error occurred during the request. Unable to proceed." : "Päringu ajal tekkis viga. Jätkamine pole võimalik.",
+ "Error: This app cannot be enabled because it makes the server unstable" : "Viga: Kuna ta muudaks selle serveri mittetöökindlaks, siis seda rakendust ei saa sisse lülitada",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Rakendus on lubatud, aga see vajab uuendamist. Sind suunatakse 5 sekundi pärast uuendamise lehele.",
"Do you really want to wipe your data from this device?" : "Oled sa kindel, et soovid siit seadmest oma andmed kaugkustutada?",
"Confirm wipe" : "Kinnita kaugkustutamine",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Sinu võrgust tuli liiga palju päringuid. Proovi hiljem uuesti, või võta ühendust administraatoriga, kui tegu on veaga.",
"Error" : "Viga",
+ "Default quota" : "Vaikimisi mahupiir",
"Account documentation" : "Kasutajakonto juhendid",
"Administration documentation" : "Süsteemihalduse juhendid",
+ "Documentation" : "Dokumentatsioon",
"Forum" : "Foorum",
"General documentation" : "Üldjuhendid",
"Legal notice" : "Juriidiline teave",
@@ -561,8 +411,10 @@
"SMTP Password" : "SMTP salasõna",
"Save" : "Salvesta",
"Test and verify email settings" : "Testi ja kontrolli e-posti seadistusi",
+ "Send email" : "Saada kiri",
"Security & setup warnings" : "Turva- ja paigalduse hoiatused",
"All checks passed." : "Kõik kontrollid on läbitud.",
+ "Reasons to use Nextcloud in your organization" : "Põhjused, miks peaksid Nextcloudi kasutama oma organisatsioonis",
"Follow us on X" : "Järgne meile X-is",
"Follow us on Mastodon" : "Järgne meile Mastodonis",
"Check out our blog" : "Loe meie ajaveebi",
@@ -572,32 +424,6 @@
"The PHP memory limit is below the recommended value of %s." : "PHP mälukasutuse ülempiir on väiksem, kui soovitatav %s.",
"for WebAuthn passwordless login" : "WebAuthn salasõnata sisselogimise jaoks",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn salasõnata sisselogimise ja SFTP andmeruumi jaoks",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Sa kasutad hetkel PHP versiooni %s. PHP 8.0 on aga alates Nexctcloudi versioonist 27 kasutuselt eemaldatud. Nexctcloud 28 eeldab, et PHP versioon on vähemalt 8.1. Palun uuenda oma server PHP Groupi poolt väljaantud ametliku PHP versioonini niipea, kui võimalik.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Kasutusel on MariaDB versioon „%s“ . Nextcloud 21 või hilisem seda versiooni ei toeta ning eeldab, et kasutusel on MariaDB versioon 10.2 või hilisem.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Kasutusel on MySQLi versioon „%s“ . Nextcloud 21 või hilisem seda versiooni ei toeta ning eeldab, et kasutusel on MySQLi versioon 8.0 või MariaDB versioon 10.2 või hilisemad.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Kasutusel on PostgreSQLi versioon „%s“ . Nextcloud 21 või hilisem seda versiooni ei toeta ning eeldab, et kasutusel on PostgreSQLi versioon 9.6 või hilisem.",
- "You are using <strong>{usage}</strong>" : "Sa kasutad: <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Sa kasutad: <strong>{usage}</strong> / <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Määra kasutaja haldur",
- "Username will be autogenerated" : "Kasutajanimi luuakse automaatselt",
- "Username (required)" : "Kasutajanimi (nõutav)",
- "New user" : "Uus kasutaja",
- "Groups (required)" : "Grupid (nõutav)",
- "Set user groups" : "Määra kasutajagrupid",
- "Administered groups" : "Hallatud grupid",
- "Set user as admin for …" : "Määra kasutaja peakasutajaks grupis…",
- "Add new user" : "Lisa uus kasutaja",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} kasutaja…","{userCount} kasutajat…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} kasutaja","{userCount} kasutajat"],
- "Loading users …" : "Laadin kasutajaid…",
- "Username" : "Kasutajanimi",
- "User backend" : "Kasutaja taustarakendus",
- "User actions" : "Kasutaja tegevused",
- "Add user to group" : "Lisa kasutaja gruppi",
- "Server error while trying to add WebAuthn device" : "Serveriviga WebAuthn seadme lisamisel",
- "Name your device" : "Anna seadmele nimi",
- "Active accounts" : "Aktiivsed kasutajakontod",
- "Follow us on Twitter" : "Järgne meile Twitteris",
- "Failed to load subadmin groups with details" : "Alamgruppe koos üksikasjadega ei õnnestunud laadida"
+ "Set default expiration date for shares" : "Määra jaosmeedia vaikimisi aegumiskuupäev"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/eu.js b/apps/settings/l10n/eu.js
index f699f6b8aea..b6cfbc6adcc 100644
--- a/apps/settings/l10n/eu.js
+++ b/apps/settings/l10n/eu.js
@@ -286,7 +286,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP goiburuak",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "`%1$s`HTTP goiburua ez dago `%2$s` baliora ezarria. Baliteke ezaugarri batzuk espero bezala ez funtzionatzea. Ezarpenean dagokion balioa jartzea gomendatzen da.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP goiburua ez dago `%2$s` baliora ezarria. Hau segurtasun edo pribatutasun arrisku bat izan daiteke. Ezarpenean dagokion balioa jartzea gomendatzen da.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP goiburuak ez dauka `%2$s` balioa. Hau segurtasun edo pribatutasun arrisku bat izan daiteke. Ezarpenean dagokion balioa jartzea gomendatzen da.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP goiburua ez dago `%2$s`, `%3$s`, `%4$s`, `%5$s` edo `%6$s` baliotara ezarrita. Honek referer informazioa isuri dezake. Ikusi {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTP goiburua ez dago gutxienez `%d` segundotan ezarrita (uneko balioa: `%d`). Segurtasuna hobetzeko, HSTS politika luzea erabiltzea gomendatzen da.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTP goiburua gaizki osatuta dago: `%s`. Segurtasun handiagoa lortzeko, HSTS gaitzea gomendatzen da.",
@@ -427,74 +426,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Ezin izan da atalaren edukia kargatu aplikazio dendatik.",
"Loading" : "Kargatzen",
"Fetching the latest news…" : "Azken berriak eskuratzen...",
- "Carousel" : "Karrusela",
- "Previous slide" : "Aurreko diapositiba",
- "Next slide" : "Hurrengo diapositiba",
- "Choose slide to display" : "Aukeratu erakusteko diapositiba",
- "{index} of {total}" : "{total}(e)tik {index}",
- "Daemon" : "Daemona",
- "Deploy Daemon" : "Zabaldu daimona",
- "Type" : "Mota",
- "Display Name" : "Izena erakutsi",
- "GPUs support" : "GPUen bateragarritasuna",
- "Compute device" : "Konputazio gailua",
- "Learn more" : "Ikasi gehiago",
- "Confirm" : "Berretsi",
- "Cancel" : "Ezeztatu",
- "Description" : "Deskripzioa",
- "View in store" : "Dendan ikusi",
- "Visit website" : "Web orria ikusi",
- "Usage documentation" : "Erabilera dokumentazioa",
- "Admin documentation" : "Administratzailearen dokumentazioa",
- "Developer documentation" : "Garatzailearen dokumentazioa",
- "Details" : "Xehetasunak",
- "All" : "Denak",
- "Limit app usage to groups" : "Mugatu aplikazioaren erabilera taldeei",
- "No results" : "Emaitzarik ez",
- "Update to {version}" : "Eguneratu {version} bertsiora",
- "Default Deploy daemon is not accessible" : "Zabalpen lehenetsia ez dago eskuragarri",
- "Delete data on remove" : "Ezabatu datuak kentzean",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will be an error in the future.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will be an error in the future.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Aplikazioa ezin da instalatu hurrengo menpekotasunak betetzen ez direlako:",
- "Latest updated" : "Azkenean eguneratuta",
- "Author" : "Egilea",
- "Categories" : "Kategoriak",
- "Resources" : "Baliabideak",
- "Documentation" : "Dokumentazioa",
- "Interact" : "Elkarreragin",
- "Report a bug" : "Eman akats baten berri ",
- "Request feature" : "Eskatu ezaugarria",
- "Ask questions or discuss" : "Egin galderak edo eztabaidatu",
- "Rate the app" : "Baloratu aplikazioa",
- "Rate" : "Balorazioa",
- "Changelog" : "Aldaketak",
- "Google Chrome for Android" : "Google Chrome Android-erako",
- "{productName} iOS app" : "{productName} iOS aplikazioa",
- "{productName} Android app" : "{productName} Android aplikazioa",
- "{productName} Talk for iOS" : "{productName} Talk iOSentzat",
- "{productName} Talk for Android" : "{productName} Talk Androidentzat",
- "Sync client" : "Sinkronizazio bezeroa",
- "This session" : "Saio hau",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Gailuaren izena",
- "Cancel renaming" : "Utzi izena aldatzeari",
- "Save new name" : "Gorde izen berria",
- "Marked for remote wipe" : "Urruneko garbiketarako markatuta",
- "Device settings" : "Gailuaren ezarpenak",
- "Allow filesystem access" : "Onartu fitxategi sisteman sarbidea",
- "Rename" : "Berrizendatu",
- "Revoke" : "Ezeztatu",
- "Wipe device" : "Ezabatu gailua",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Token hau baliogabetzeak zure gailua ezabatzea eragotzi dezake oraindik ezabatzen hasi ez bada.",
- "Device" : "Gailua",
- "Last activity" : "Azken jarduerak",
- "Devices & sessions" : "Gailuak eta saioak",
- "Web, desktop and mobile clients currently logged in to your account." : "Webgunean edota mahaigaineko zein mugikorreko bezero hauetan saioa hasita duzu.",
- "Error while creating device token" : "Errorea gailuaren tokena sortzean",
- "App name" : "Aplikazioaren izena",
- "Create new app password" : "Sortu aplikaziorako pasahitz berria",
"App password copied!" : "Aplikazio pasahitza kopiatuta",
"Copy app password" : "Kopiatu aplikazioaren pasahitza",
"Login name copied!" : "Saioaren izena kopiatuta!",
@@ -522,6 +453,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Ezin izan da eguneratu profilaren ezarpen lehenetsia",
"Profile" : "Profila",
"Enable or disable profile by default for new accounts." : "Gaitu edo desgaitu profila lehenespenez kontu berrientzat.",
+ "Password confirmation is required" : "Pasahitza konfirmatzea beharrezkoa da",
"Failed to save setting" : "Ezarpena gordetzeak huts egin du",
"{app}'s declarative setting field: {name}" : "{app}-ren ezarpen deklaratiboaren eremua: {name}",
"Unable to update server side encryption config" : "Ezin izan da zerbitzariaren aldeko zifratzearen konfigurazioa eguneratu",
@@ -538,199 +470,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Kontuan izan zifratzeak beti fitxategiaren tamaina handitzen duela.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Zure datuen babeskopiak sortu beharko zenituzke aldizka, eta zifratuta badaude, ziurtatu zifratze-gakoen babeskopia ere egiten dela datuekin batera.",
"This is the final warning: Do you really want to enable encryption?" : "Azken abisua da: Benetan gaitu nahi duzu zifratzea?",
- "Failed to remove group \"{group}\"" : "Ezin izan da \"{group}\" taldea kendu",
"Please confirm the group removal" : "Mesedez, baieztatu taldearen ezabaketa",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "\"{group}\" taldea ezabatzera zoaz. Kontuak EZ dira ezabatuko.",
+ "Cancel" : "Ezeztatu",
+ "Confirm" : "Berretsi",
"Submit" : "Bidali",
"Rename group" : "Berrizendatu taldea",
- "Remove group" : "Ezabatu taldea",
- "Current password" : "Uneko pasahitza",
- "New password" : "Pasahitz berria",
- "Change password" : "Aldatu pasahitza",
- "Choose your profile picture" : "Aukeratu zure profil-irudia",
- "Please select a valid png or jpg file" : "Mesedez hautatu baliozko png edo jpg fitxategi bat",
- "Error setting profile picture" : "Errorea profil-irudia ezartzean",
- "Error cropping profile picture" : "Errorea profil-irudia moztean",
- "Error saving profile picture" : "Errorea profil-irudia gordetzean",
- "Error removing profile picture" : "Errorea profil-irudia kentzean",
- "Your profile picture" : "Zure profil-irudia",
- "Upload profile picture" : "Igo profil-irudia",
- "Choose profile picture from Files" : "Aukeratu Fitxategiak-en profileko argazkia",
- "Remove profile picture" : "Kendu profil-irudia",
- "The file must be a PNG or JPG" : "Fitxategiak PNG edo JPG izan behar du",
- "Picture provided by original account" : "Irudia jatorrizko kontutik hartuta",
- "Set as profile picture" : "Ezarri profil-irudia",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Kontuan izan profil-irudia edonon eguneratzeko 24 ordu arte igaro daitezkeela.",
- "Unable to update date of birth" : "Ezin da jaioteguna eguneratu",
- "Enter your date of birth" : "Sartu zure jaioteguna",
- "You are using {s}{usage}{/s}" : "{s}{usage}{/s} erabiltzen ari zara",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "{s}{totalSpace}{/s}tik {s}{usage}{/s} erabiltzen ari zara ({s}%{usageRelative}{/s})",
- "You are a member of the following groups:" : "Honako taldeetako kide zara:",
- "Your full name" : "Zure izen osoa",
- "Email options" : "Posta elektronikoaren aukerak",
- "Options for additional email address {index}" : "Posta elektroniko gehigarrirako aukerak {index}",
- "Remove primary email" : "Kendu posta elektroniko nagusia",
- "Delete email" : "Ezabatu posta elektronikoa",
- "This address is not confirmed" : "Helbide hau ez dago berretsita",
- "Unset as primary email" : "Kendu posta nagusia",
- "Set as primary email" : "Ezarri e-posta nagusi bezala",
- "Additional email address {index}" : "Posta elektroniko gehigarria {index}",
- "Unable to delete primary email address" : "Ezin izan da helbide elektroniko nagusia ezabatu",
- "Unable to update primary email address" : "Ezin izan da helbide elektroniko nagusia eguneratu",
- "Unable to add additional email address" : "Ezin izan da helbide elektroniko gehigarria gehitu",
- "Unable to update additional email address" : "Ezin izan da helbide elektroniko gehigarria eguneratu",
- "Unable to delete additional email address" : "Ezin izan da helbide elektroniko gehigarria ezabatu",
- "Primary email for password reset and notifications" : "Pasahitz berrezartzeko eta jakinarazpenetarako posta elektroniko nagusia",
- "No email address set" : "Ez da eposta helbidea ezarri",
- "Your handle" : "Zure heldulekua",
- "Derived from your locale ({weekDayName})" : "Zure lokaletik eratorria: ({weekDayName})",
- "Unable to update first day of week" : "Ezin da eguneratu asteko lehen eguna",
- "Day to use as the first day of week" : "Asteko lehen egun gisa markatzeko eguna",
- "Your headline" : "Zure izenburua",
- "Unable to update language" : "Ezin izan da hizkuntza eguneratu",
- "Languages" : "Hizkuntzak",
- "Help translate" : "Lagundu itzultzen",
- "No language set" : "Ez da hizkuntzarik ezarri",
- "Unable to update locale" : "Ezin izan da lokalizazioa eguneratu",
- "Locales" : "Eskualdeak",
- "Week starts on {firstDayOfWeek}" : "Astea {firstDayOfWeek} egunean hasten da",
- "No locale set" : "Ez da lokalizaziorik ezarri",
- "Your city" : "Zure hiria",
- "Your organisation" : "Zure erakundea",
- "Your phone number" : "Zure telefono zenbakia",
- "Edit your Profile visibility" : "Editatu profilaren ikusgarritasuna",
- "Unable to update profile enabled state" : "Ezin izan da profila gaitutako egoerara eguneratu",
- "Enable profile" : "Gaitu profila",
- "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." : "Ikusgarritasunaren edo esparruaren ezarpen murriztaileena zure profilean errespetatzen da. Esaterako, ikusgarritasuna \"Erakutsi guztiei\" eta esparrua \"Pribatua\" gisa ezarrita badago, \"Pribatua\" errespetatzen da.",
- "Unable to update visibility of {displayId}" : "Ezin izan da {displayId}(r)en ikusgarritasuna eguneratu",
- "she/her" : "♀",
- "he/him" : "♂",
- "they/them" : "⚥/☿",
- "Your role" : "Zure rola",
- "Your X (formerly Twitter) handle" : "Zure X (lehen Twitter) erabiltzailea",
- "Your website" : "Zure web orria",
- "Invalid value" : "Balio baliogabea",
- "Unable to update {property}" : "Ezin izan da {property} eguneratu",
- "No {property} set" : "Ez da {property} ezarri",
- "Change scope level of {property}, current scope is {scope}" : "Aldatu {property}-(r)en esparru-maila, unekoa {scope} esparru-maila da",
- "Unable to update federation scope of the primary {property}" : "Ezin da eguneratu lehen mailako {property}-ren federazio-esparrua",
- "Unable to update federation scope of additional {property}" : "Ezin da eguneratu {property} gehigarriaren federazio-esparrua",
- "Add additional email" : "Gehitu e-posta gehigarria",
- "Add" : "Gehitu",
- "Create" : "Sortu",
- "Change" : "Aldatu",
- "Delete" : "Ezabatu",
- "Reshare" : "Birpartekatu",
- "Default language" : "Hizkuntza lehenetsia",
- "Common languages" : "Hizkuntza komunak",
- "Other languages" : "Beste hizkuntza batzuk",
- "Password change is disabled because the master key is disabled" : "Pasahitza aldatzea desgaituta dago gako nagusia desaktibatuta baitago.",
- "No accounts" : "Konturik ez",
- "Loading accounts …" : "Kontuak kargatzen ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Kontuen zerrenda. Zerrenda ez da guztiz errenderizatzen errendimendu arrazoiengatik. Kontuak zerrenda nabigatzen duzun heinean errenderizatuko dira.",
- "Manager" : "Zuzendaria",
- "Set line manager" : "Ezarri linea-arduraduna",
- "Account name will be autogenerated" : "Kontuaren izena automatikoki sortuko da",
- "Account name (required)" : "Kontuaren izena (beharrezkoa)",
- "New account" : "Kontu berria",
- "Display name" : "Erakusteko izena",
- "Either password or email is required" : "Posta elektronikoa edo pasahitza beharrezkoak dira",
- "Password (required)" : "Pasahitza (beharrezkoa)",
- "Email (required)" : "Posta elektronikoa (beharrezkoa)",
- "Email" : "E-posta",
- "Member of the following groups (required)" : "Talde hauetako kidea (beharrezkoa)",
- "Member of the following groups" : "Talde hauetako kidea",
- "Set account groups" : "Ezarri kontuaren taldeak",
- "Admin of the following groups" : "Talde hauetako administratzailea",
- "Set account as admin for …" : "Ezarri kontua administratzaile gisa",
- "Quota" : "Kuota",
- "Set account quota" : "Ezarri kontuaren kuota",
- "Language" : "Hizkuntza",
- "Set default language" : "Ezarri hizkuntza lehenetsia",
- "Add new account" : "Gehitu kontu berri bat",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} kontu…","{userCount} kontu…"],
- "_{userCount} account_::_{userCount} accounts_" : ["kontu {userCount} ","{userCount} kontu"],
- "Total rows summary" : "Errenkaden guztirako laburpena",
- "Scroll to load more rows" : "Mugitu pantailan behera errenkada gehiago kargatzeko",
- "Password or insufficient permissions message" : "Pasahitz edo baimen gutxiegiko mezua",
- "Avatar" : "Avatarra",
- "Account name" : "Kontuaren izena",
- "Group admin for" : "Talde honen administratzailea",
- "Account backend" : "Kontuaren motorra",
- "Storage location" : "Biltegiratze kokapena",
- "First login" : "Lehen saio-hasiera",
- "Last login" : "Azken saioa",
- "Account actions" : "Kontuaren ekintzak",
- "{size} used" : "{size} erabilita",
- "Delete account" : "Ezabatu kontua",
- "Disconnect all devices and delete local data" : "Deskonektatu gailu guztiak eta ezabatu datu lokalak",
- "Disable account" : "Desgaitu kontua",
- "Enable account" : "Gaitu kontua",
- "Resend welcome email" : "Birbidali ongi etorri mezua",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Gailua galtzen baduzu edo erakundetik irteten bazara, honek {userid} erabiltzaileari lotutako gailu guztietako Nextcloudeko datuak garbitu ditzake. Gailuak internetera konektatuta badaude bakarrik funtzionatzen du.",
- "Remote wipe of devices" : "Gailuen urruneko garbiketa",
- "Wipe {userid}'s devices" : "Garbitu {userid}-ren gailuak",
- "Wiped {userid}'s devices" : "{userid}-ren gailuak garbitu dira",
- "Failed to update line manager" : "Ezin izan da arduraduna eguneratu",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} erabiltzailearen kontua, bere fitxategi eta aplikazioen datuak barne, guztiz ezabatu.",
- "Account deletion" : "Kontu ezabaketa",
- "Delete {userid}'s account" : "Ezabatu {userid} erabiltzailearen kontua",
- "Display name was successfully changed" : "Erakusteko izena ondo aldatu da",
- "Password was successfully changed" : "Pasahitza ondo aldatu da",
- "Email was successfully changed" : "Posta elektronikoa ondo aldatu da",
- "Welcome mail sent!" : "Ongi etorri mezua bidalita!",
- "Loading account …" : "Kontua kargatzen ...",
- "Change display name" : "Aldatu erakutsiko den izena",
- "Set new password" : "Ezarri pasahitz berria",
- "You do not have permissions to see the details of this account" : "Ez duzu baimenik kontu honen xehetasunak ikusteko",
- "Set new email address" : "Ezarri helbide elektroniko berria",
- "Add account to group" : "Gehitu kontua taldera",
- "Set account as admin for" : "Ezarri kontua admin gisa",
- "Select account quota" : "Hautatu kontuaren kuota",
- "Set the language" : "Ezarri hizkuntza",
- "Toggle account actions menu" : "Txandakatu kontuen ekintza menua",
- "Done" : "Egina",
- "Edit" : "Aldatu",
- "Account management settings" : "Kontuen kudeaketaren ezarpenak",
- "Visibility" : "Ikusgarritasuna",
- "Show language" : "Erakutsi hizkuntza",
- "Show account backend" : "Erakutsi kontuaren motorra",
- "Show storage path" : "Erakutsi biltegiaren bidea",
- "Show first login" : "Erakutsi lehen saio-hasiera",
- "Show last login" : "Azken izen ematea erakutsi",
- "Sorting" : "Antolaketa",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Sistemaren konfigurazioak taldeak izenaren arabera ordenatzea eskatzen du. Horrek kideen kopurua erakustea ere desgaitzen du.",
- "Group list sorting" : "Talde-zerrenda ordena",
- "By member count" : "Kide kopuruaren arabera",
- "By name" : "Izenez",
- "Send email" : "Bidali posta-mezua",
- "Send welcome email to new accounts" : "Bidali ongietorri mezu elektronikoa kontu berriei",
- "Defaults" : "Defektuzkoak",
- "Default quota" : "Kuota lehenetsia",
- "Select default quota" : "Aukeratu lehenetsitako kuota",
- "Server error while trying to complete WebAuthn device registration" : "Zerbitzariaren errorea WebAuthn gailuaren erregistroa osatzen saiatzean",
- "Passwordless authentication requires a secure connection." : "Pasahitzik gabeko autentifikazioak konexio segurua behar du.",
- "Add WebAuthn device" : "Gehitu WebAuthn gailua",
- "Please authorize your WebAuthn device." : "Mesedez, baimendu zure WebAuthn gailua.",
- "Adding your device …" : "Zure gailua gehitzen ...",
- "Unnamed device" : "Izen gabeko gailua",
- "Passwordless Authentication" : "Pasahitzik gabeko autentifikazioa",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Konfiguratu kontua pasahitzik gabeko autentifikaziorako FIDO2 estandarra jarraituz.",
- "No devices configured." : "Ez da gailurik konfiguratu.",
- "The following devices are configured for your account:" : "Hurrengo gailuak zure konturako konfiguratuta daude:",
- "Your browser does not support WebAuthn." : "Zure nabigatzaileak ez du WebAuthn onartzen.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Admin bezala partekatze portaerak zehaztasunez konfigura daitezke. Ikusi dokumentazioa informazio gehiagorako. ",
- "You need to enable the File sharing App." : "Fitxategi partekatze aplikazioa gaitu behar duzu.",
- "App Store" : "Aplikazioen denda",
- "Loading app list" : "Aplikazio-zerrenda kargatzen",
- "Loading categories" : "Kategoriak kargatzen",
- "Developer documentation ↗" : "Garatzaileen dokumentazioa ↗",
- "Version {version}, {license}-licensed" : "{version} bertsioa, {license}-lizentziarekin",
- "Version {version}" : "{version} bertsioa",
- "All accounts" : "Kontu guztiak",
- "Admins" : "Administratzaileak",
- "Account group: {group}" : "Kontuaren taldea: {group}",
- "Account management" : "Kontuen kudeaketa",
"Sending…" : "Bidaltzen...",
"Email sent" : "Eposta bidalia",
"Location" : "Kokapena",
@@ -739,6 +483,7 @@ OC.L10N.register(
"Date of birth" : "Jaioteguna",
"Full name" : "Izen osoa",
"Additional email" : "Helbide elektroniko gehigarria",
+ "Email" : "E-posta",
"Fediverse (e.g. Mastodon)" : "Fedibertsoa (adibidez, Mastodon)",
"Headline" : "Izenburua",
"Organisation" : "Erakundea",
@@ -748,6 +493,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (lehen Twitter)",
"Website" : "Webgunea",
"Profile visibility" : "Profilaren ikusgarritasuna",
+ "Language" : "Hizkuntza",
"Locale" : "Eskualdeko ezarpenak",
"First day of week" : "Asteko lehen eguna",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Ez dago eskuragarri propietate hau oinarrizko funtzionaltasunentzako beharrezkoa delako, fitxategien partekatze eta egutegien gonbidapenak barne",
@@ -764,6 +510,7 @@ OC.L10N.register(
"Show to everyone" : "Erakutsi denei",
"Show to logged in accounts only" : "Erakutsi saioa hasi duten kontuei soilik",
"Hide" : "Ezkutatu",
+ "Update to {version}" : "Eguneratu {version} bertsiora",
"{progress}% Deploying …" : "%{progress} zabaltzen",
"{progress}% Initializing …" : "%{progress} hasieratzen",
"Health checking" : "Osasuna egiaztatzen",
@@ -773,6 +520,7 @@ OC.L10N.register(
"Allow untested app" : "Baimendu probatu gabeko aplikazioa",
"The app will be downloaded from the App Store" : "Aplikazioa aplikazio biltegitik deskargatuko da",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Aplikazio hau ez dago zure Nextcloud bertsioarekin bateragarri bezala markatuta. Jarraitzen baduzu aplikazioa instalatu egingo duzu. Kontuan izan agian aplikazioak ez duela ondo funtzionatuko.",
+ "{size} used" : "{size} erabilita",
"Unknown" : "Ezezaguna",
"Never" : "Inoiz ez",
"Could not register device: Network error" : "Ezin izan da gailua erregistratu: Sare errorea",
@@ -791,8 +539,10 @@ OC.L10N.register(
"Could not set group sorting" : "Ezin izan da talde-ordena ezarri",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Eskaera gehiegi zeuden zure saretik. Saiatu beranduago edo kontaktatu zure administrailearekin hau errorea bada.",
"Error" : "Errorea",
+ "Default quota" : "Kuota lehenetsia",
"Account documentation" : "Kontuen dokumentazioa",
"Administration documentation" : "Administrazioaren dokumentazioa",
+ "Documentation" : "Dokumentazioa",
"Forum" : "Foroa",
"Nextcloud help & privacy resources" : "Nextcloud laguntza eta pribatutasun baliabideak",
"General documentation" : "Dokumentazio orokorra",
@@ -815,6 +565,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP pasahitza",
"Save" : "Gorde",
"Test and verify email settings" : "Probatu eta egiaztatu posta elektronikoaren ezarpenak",
+ "Send email" : "Bidali posta-mezua",
"Security & setup warnings" : "Segurtasun eta konfigurazio abisuak",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Zure instantziaren segurtasuna eta funtzionamenduarentzat oso garrantzitsua da dena ondo konfiguratuta egotea. Horretan laguntzeko egiaztapen automatiko batzuk egiten ditu tresnak bera. Irakurri estekatutako dokumentazioa informazio gehiago lortzeko.",
"All checks passed." : "Egiaztapen guztiak gaindituta.",
@@ -834,50 +585,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Zure pasahitzaz gain bigarren faktore bat erabiltzeak zure kontua seguruago egingo du.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Hirugarrenen aplikazioak erabiltzen badituzu Nextcloud-era konektatzeko, ziurtatu bakoitzarentzako aplikazioaren pasahitza sortu eta konfiguratzen duzula bigarren faktorearen autentifikazioa gaitu aurretik.",
"Logged in account must be a subadmin" : "Saioa hasitako erabiltzaileak azpi-administratzailea izan behar du",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Egiaztapen hau exekuta dadin zure web zerbitzaria bere buruarekin konektatu daitekeela ziurtatu behar duzu. Hori dela eta, gutxienez bere `trusted_domains` edo `overwrite.cli.url` batera konektatzeko gai izan behar da.",
- "Missing optional index \"%s\" in table \"%s\"." : "\"%s\" hautazko indizea falta da \"%s\" taulan.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Datu-baseak zenbait indize falta ditu. Taula handietan indizeak gehitzeak denbora dezente har dezakeenez ez dira automatikoki gehitu. \"occ db:add-missing-indices\" exekutatuz indize horiek eskuz gehitu daitezke instantzia martxan dagoen bitartean. Indizeak gehitu ondoren taula horietan egindako kontsultak askoz azkarragoak izan ohi dira.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Egiaztapen hau exekuta dadin ziurtatu behar duzu zure web zerbitzaria bere buruarekin konektatu daitekeela. Hori dela eta, bere `trusted_domains` edo `overwrite.cli.url`ra gutxienez ebatzi eta konektatzeko gai izan behar du. Baliteke hutsegite hau zerbitzariaren aldeko DNS ez bat etortzea edo irteerako suebakiaren arauaren ondorioa izatea.",
"File locking" : "Fitxategien blokeoa",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transakzio-fitxategiak blokeatzea desgaituta dago, honek lasterketa baldintzekin arazoak sor ditzake. Gaitu \"filelocking.enabled\" config.php-n arazo horiek saihesteko.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Ezin izan da egiaztatu JavaScript onartzen baden zure `trusted_domains` edo `overwrite.cli.url` bidez. Baliteke zerbitzariaren DNS bat ez datozenen edo irteerako suebakiaren arauaren ondorioa izatea. Mesedez, egiaztatu eskuz zure web zerbitzariak `.mjs` fitxategiak hornitzen dituen JavaScript MIME mota erabiliz.",
"The PHP memory limit is below the recommended value of %s." : "PHPren memoria muga aholkatutako %s balioaren azpitik dago.",
"for WebAuthn passwordless login" : "WebAuthn pasahitzik gabeko saio-hasierarako",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn pasahitzik gabeko saio-hasiera eta SFTP biltegiratzerako",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "PHP %s exekutatzen ari zara. PHP 8.0 Nextcloud 27-n zaharkituta dago. Nextcloud 28k gutxienez PHP 8.1 behar ahal izango du. Mesedez, eguneratu PHP Group-ek ofizialki onartzen dituen PHP bertsioatara ahalik eta lasterren.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB \"%s\" bertsioa erabiltzen da. Nextcloud 21ek eta berriagoak ez dute bertsio hau onartzen eta MariaDB 10.2 edo berriagoa behar dute.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL bertsioa \"%s\" erabiltzen da. Nextcloud 21 eta berriek ez dute bertsio hau onartzen eta MySQL 8.0 edo MariaDB 10.2 edo berriagoa behar dute.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL \"%s\" bertsioa erabiltzen da. Nextcloud 21ek eta berriagoak ez dute bertsio hau onartzen eta PostgreSQL 9.6 edo berriagoa behar dute.",
- "Speech-To-Text" : "Ahotsetik testura",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Ahotsetik testura aplikazio ezberdinek inplementatu dezakete. Zeintzuk aplikazio erabili daitezkeen ezarri dezakezu hemen.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ez dago ahotsetik testurako funtzionalitatea ematen duen aplikaziorik unean.",
- "None of your currently installed apps provide Text processing functionality" : "Ez dago testu-prozesamendu funtzionalitatea ematen duen aplikaziorik unean.",
- "Set default expiration date for shares" : "Partekatzeei iraungitze data lehenetsia ezarri",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Baimendu erabiltzaile izena automatikoki osatzea elkarrizketa-koadroan eta baimendu sistemako helbide-liburua atzitzea",
- "Your biography" : "Zure biografia",
- "You are using <strong>{usage}</strong>" : "<strong>{usage}</strong> erabiltzen ari zara",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "<strong>{usage}</strong>/<strong>{totalSpace}</strong> erabiltzen ari zara (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Ezarri erabiltzaile-kudeatzailea",
- "Username will be autogenerated" : "Erabiltzaile izena automatikoki sortuko da",
- "Username (required)" : "Erabiltzailea (beharrezkoa)",
- "New user" : "Erabiltzaile berria",
- "Groups (required)" : "Taldeak (beharrezkoa)",
- "Set user groups" : "Ezarri erabiltzailearen taldeak",
- "Administered groups" : "Administratturiko taldeak",
- "Set user as admin for …" : "Ezarri erabiltzailea admin gisa honentzat...",
- "Set user quota" : "Ezarri erabiltzaie-kuota",
- "Add new user" : "Gehitu erabiltzaile berria",
- "_{userCount} user …_::_{userCount} users …_" : ["Erabiltzaile {userCount} …","{userCount} erabiltzaile …"],
- "_{userCount} user_::_{userCount} users_" : ["Erabiltzaile {userCount}","{userCount} erabiltzaile"],
- "Loading users …" : "Erabiltzaileak kargatzen ...",
- "Username" : "Erabiltzaile izena",
- "User backend" : "Erabiltzaile jatorria",
- "User actions" : "Erabiltzaile-ekintzak",
- "Add user to group" : "Gehitu erabiltzailea taldera",
- "Server error while trying to add WebAuthn device" : "Zerbitzariaren errorea WebAuthn gailua gehitzen saiatzean",
- "Name your device" : "Izendatu zure gailua",
- "Active accounts" : "Kontu gaituak",
- "Follow us on Twitter" : "Jarrai gaitzazu Twitterren",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Egiaztapen hau exekuta dadin ziurtatu behar duzu zure web zerbitzaria bere buruarekin konektatu daitekeela. Hori dela eta, bere `trusted_domains` edo `overwrite.cli.url`ra gutxienez ebatzi eta konektatzeko gai izan behar du. Baliteke hutsegite hau zerbitzariaren aldeko DNS ez bat etortzea edo irteerako suebakiaren arauaren ondorioa izatea.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%s\" bertsioa detektatu da. PostgreSQL >=12 eta <=16 iradokitzen da Nextcloud-en bertsio honekin errendimendu, egonkortasun eta funtzionalitate onena lortzeko."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP goiburuak ez dauka `%2$s` balioa. Hau segurtasun edo pribatutasun arrisku bat izan daiteke. Ezarpenean dagokion balioa jartzea gomendatzen da.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%s\" bertsioa detektatu da. PostgreSQL >=12 eta <=16 iradokitzen da Nextcloud-en bertsio honekin errendimendu, egonkortasun eta funtzionalitate onena lortzeko.",
+ "Set default expiration date for shares" : "Partekatzeei iraungitze data lehenetsia ezarri"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/eu.json b/apps/settings/l10n/eu.json
index 3626caf9743..05f35801475 100644
--- a/apps/settings/l10n/eu.json
+++ b/apps/settings/l10n/eu.json
@@ -284,7 +284,6 @@
"HTTP headers" : "HTTP goiburuak",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "`%1$s`HTTP goiburua ez dago `%2$s` baliora ezarria. Baliteke ezaugarri batzuk espero bezala ez funtzionatzea. Ezarpenean dagokion balioa jartzea gomendatzen da.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP goiburua ez dago `%2$s` baliora ezarria. Hau segurtasun edo pribatutasun arrisku bat izan daiteke. Ezarpenean dagokion balioa jartzea gomendatzen da.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP goiburuak ez dauka `%2$s` balioa. Hau segurtasun edo pribatutasun arrisku bat izan daiteke. Ezarpenean dagokion balioa jartzea gomendatzen da.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP goiburua ez dago `%2$s`, `%3$s`, `%4$s`, `%5$s` edo `%6$s` baliotara ezarrita. Honek referer informazioa isuri dezake. Ikusi {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTP goiburua ez dago gutxienez `%d` segundotan ezarrita (uneko balioa: `%d`). Segurtasuna hobetzeko, HSTS politika luzea erabiltzea gomendatzen da.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTP goiburua gaizki osatuta dago: `%s`. Segurtasun handiagoa lortzeko, HSTS gaitzea gomendatzen da.",
@@ -425,74 +424,6 @@
"Could not load section content from app store." : "Ezin izan da atalaren edukia kargatu aplikazio dendatik.",
"Loading" : "Kargatzen",
"Fetching the latest news…" : "Azken berriak eskuratzen...",
- "Carousel" : "Karrusela",
- "Previous slide" : "Aurreko diapositiba",
- "Next slide" : "Hurrengo diapositiba",
- "Choose slide to display" : "Aukeratu erakusteko diapositiba",
- "{index} of {total}" : "{total}(e)tik {index}",
- "Daemon" : "Daemona",
- "Deploy Daemon" : "Zabaldu daimona",
- "Type" : "Mota",
- "Display Name" : "Izena erakutsi",
- "GPUs support" : "GPUen bateragarritasuna",
- "Compute device" : "Konputazio gailua",
- "Learn more" : "Ikasi gehiago",
- "Confirm" : "Berretsi",
- "Cancel" : "Ezeztatu",
- "Description" : "Deskripzioa",
- "View in store" : "Dendan ikusi",
- "Visit website" : "Web orria ikusi",
- "Usage documentation" : "Erabilera dokumentazioa",
- "Admin documentation" : "Administratzailearen dokumentazioa",
- "Developer documentation" : "Garatzailearen dokumentazioa",
- "Details" : "Xehetasunak",
- "All" : "Denak",
- "Limit app usage to groups" : "Mugatu aplikazioaren erabilera taldeei",
- "No results" : "Emaitzarik ez",
- "Update to {version}" : "Eguneratu {version} bertsiora",
- "Default Deploy daemon is not accessible" : "Zabalpen lehenetsia ez dago eskuragarri",
- "Delete data on remove" : "Ezabatu datuak kentzean",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will be an error in the future.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will be an error in the future.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Aplikazioa ezin da instalatu hurrengo menpekotasunak betetzen ez direlako:",
- "Latest updated" : "Azkenean eguneratuta",
- "Author" : "Egilea",
- "Categories" : "Kategoriak",
- "Resources" : "Baliabideak",
- "Documentation" : "Dokumentazioa",
- "Interact" : "Elkarreragin",
- "Report a bug" : "Eman akats baten berri ",
- "Request feature" : "Eskatu ezaugarria",
- "Ask questions or discuss" : "Egin galderak edo eztabaidatu",
- "Rate the app" : "Baloratu aplikazioa",
- "Rate" : "Balorazioa",
- "Changelog" : "Aldaketak",
- "Google Chrome for Android" : "Google Chrome Android-erako",
- "{productName} iOS app" : "{productName} iOS aplikazioa",
- "{productName} Android app" : "{productName} Android aplikazioa",
- "{productName} Talk for iOS" : "{productName} Talk iOSentzat",
- "{productName} Talk for Android" : "{productName} Talk Androidentzat",
- "Sync client" : "Sinkronizazio bezeroa",
- "This session" : "Saio hau",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Gailuaren izena",
- "Cancel renaming" : "Utzi izena aldatzeari",
- "Save new name" : "Gorde izen berria",
- "Marked for remote wipe" : "Urruneko garbiketarako markatuta",
- "Device settings" : "Gailuaren ezarpenak",
- "Allow filesystem access" : "Onartu fitxategi sisteman sarbidea",
- "Rename" : "Berrizendatu",
- "Revoke" : "Ezeztatu",
- "Wipe device" : "Ezabatu gailua",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Token hau baliogabetzeak zure gailua ezabatzea eragotzi dezake oraindik ezabatzen hasi ez bada.",
- "Device" : "Gailua",
- "Last activity" : "Azken jarduerak",
- "Devices & sessions" : "Gailuak eta saioak",
- "Web, desktop and mobile clients currently logged in to your account." : "Webgunean edota mahaigaineko zein mugikorreko bezero hauetan saioa hasita duzu.",
- "Error while creating device token" : "Errorea gailuaren tokena sortzean",
- "App name" : "Aplikazioaren izena",
- "Create new app password" : "Sortu aplikaziorako pasahitz berria",
"App password copied!" : "Aplikazio pasahitza kopiatuta",
"Copy app password" : "Kopiatu aplikazioaren pasahitza",
"Login name copied!" : "Saioaren izena kopiatuta!",
@@ -520,6 +451,7 @@
"Unable to update profile default setting" : "Ezin izan da eguneratu profilaren ezarpen lehenetsia",
"Profile" : "Profila",
"Enable or disable profile by default for new accounts." : "Gaitu edo desgaitu profila lehenespenez kontu berrientzat.",
+ "Password confirmation is required" : "Pasahitza konfirmatzea beharrezkoa da",
"Failed to save setting" : "Ezarpena gordetzeak huts egin du",
"{app}'s declarative setting field: {name}" : "{app}-ren ezarpen deklaratiboaren eremua: {name}",
"Unable to update server side encryption config" : "Ezin izan da zerbitzariaren aldeko zifratzearen konfigurazioa eguneratu",
@@ -536,199 +468,11 @@
"Be aware that encryption always increases the file size." : "Kontuan izan zifratzeak beti fitxategiaren tamaina handitzen duela.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Zure datuen babeskopiak sortu beharko zenituzke aldizka, eta zifratuta badaude, ziurtatu zifratze-gakoen babeskopia ere egiten dela datuekin batera.",
"This is the final warning: Do you really want to enable encryption?" : "Azken abisua da: Benetan gaitu nahi duzu zifratzea?",
- "Failed to remove group \"{group}\"" : "Ezin izan da \"{group}\" taldea kendu",
"Please confirm the group removal" : "Mesedez, baieztatu taldearen ezabaketa",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "\"{group}\" taldea ezabatzera zoaz. Kontuak EZ dira ezabatuko.",
+ "Cancel" : "Ezeztatu",
+ "Confirm" : "Berretsi",
"Submit" : "Bidali",
"Rename group" : "Berrizendatu taldea",
- "Remove group" : "Ezabatu taldea",
- "Current password" : "Uneko pasahitza",
- "New password" : "Pasahitz berria",
- "Change password" : "Aldatu pasahitza",
- "Choose your profile picture" : "Aukeratu zure profil-irudia",
- "Please select a valid png or jpg file" : "Mesedez hautatu baliozko png edo jpg fitxategi bat",
- "Error setting profile picture" : "Errorea profil-irudia ezartzean",
- "Error cropping profile picture" : "Errorea profil-irudia moztean",
- "Error saving profile picture" : "Errorea profil-irudia gordetzean",
- "Error removing profile picture" : "Errorea profil-irudia kentzean",
- "Your profile picture" : "Zure profil-irudia",
- "Upload profile picture" : "Igo profil-irudia",
- "Choose profile picture from Files" : "Aukeratu Fitxategiak-en profileko argazkia",
- "Remove profile picture" : "Kendu profil-irudia",
- "The file must be a PNG or JPG" : "Fitxategiak PNG edo JPG izan behar du",
- "Picture provided by original account" : "Irudia jatorrizko kontutik hartuta",
- "Set as profile picture" : "Ezarri profil-irudia",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Kontuan izan profil-irudia edonon eguneratzeko 24 ordu arte igaro daitezkeela.",
- "Unable to update date of birth" : "Ezin da jaioteguna eguneratu",
- "Enter your date of birth" : "Sartu zure jaioteguna",
- "You are using {s}{usage}{/s}" : "{s}{usage}{/s} erabiltzen ari zara",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "{s}{totalSpace}{/s}tik {s}{usage}{/s} erabiltzen ari zara ({s}%{usageRelative}{/s})",
- "You are a member of the following groups:" : "Honako taldeetako kide zara:",
- "Your full name" : "Zure izen osoa",
- "Email options" : "Posta elektronikoaren aukerak",
- "Options for additional email address {index}" : "Posta elektroniko gehigarrirako aukerak {index}",
- "Remove primary email" : "Kendu posta elektroniko nagusia",
- "Delete email" : "Ezabatu posta elektronikoa",
- "This address is not confirmed" : "Helbide hau ez dago berretsita",
- "Unset as primary email" : "Kendu posta nagusia",
- "Set as primary email" : "Ezarri e-posta nagusi bezala",
- "Additional email address {index}" : "Posta elektroniko gehigarria {index}",
- "Unable to delete primary email address" : "Ezin izan da helbide elektroniko nagusia ezabatu",
- "Unable to update primary email address" : "Ezin izan da helbide elektroniko nagusia eguneratu",
- "Unable to add additional email address" : "Ezin izan da helbide elektroniko gehigarria gehitu",
- "Unable to update additional email address" : "Ezin izan da helbide elektroniko gehigarria eguneratu",
- "Unable to delete additional email address" : "Ezin izan da helbide elektroniko gehigarria ezabatu",
- "Primary email for password reset and notifications" : "Pasahitz berrezartzeko eta jakinarazpenetarako posta elektroniko nagusia",
- "No email address set" : "Ez da eposta helbidea ezarri",
- "Your handle" : "Zure heldulekua",
- "Derived from your locale ({weekDayName})" : "Zure lokaletik eratorria: ({weekDayName})",
- "Unable to update first day of week" : "Ezin da eguneratu asteko lehen eguna",
- "Day to use as the first day of week" : "Asteko lehen egun gisa markatzeko eguna",
- "Your headline" : "Zure izenburua",
- "Unable to update language" : "Ezin izan da hizkuntza eguneratu",
- "Languages" : "Hizkuntzak",
- "Help translate" : "Lagundu itzultzen",
- "No language set" : "Ez da hizkuntzarik ezarri",
- "Unable to update locale" : "Ezin izan da lokalizazioa eguneratu",
- "Locales" : "Eskualdeak",
- "Week starts on {firstDayOfWeek}" : "Astea {firstDayOfWeek} egunean hasten da",
- "No locale set" : "Ez da lokalizaziorik ezarri",
- "Your city" : "Zure hiria",
- "Your organisation" : "Zure erakundea",
- "Your phone number" : "Zure telefono zenbakia",
- "Edit your Profile visibility" : "Editatu profilaren ikusgarritasuna",
- "Unable to update profile enabled state" : "Ezin izan da profila gaitutako egoerara eguneratu",
- "Enable profile" : "Gaitu profila",
- "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." : "Ikusgarritasunaren edo esparruaren ezarpen murriztaileena zure profilean errespetatzen da. Esaterako, ikusgarritasuna \"Erakutsi guztiei\" eta esparrua \"Pribatua\" gisa ezarrita badago, \"Pribatua\" errespetatzen da.",
- "Unable to update visibility of {displayId}" : "Ezin izan da {displayId}(r)en ikusgarritasuna eguneratu",
- "she/her" : "♀",
- "he/him" : "♂",
- "they/them" : "⚥/☿",
- "Your role" : "Zure rola",
- "Your X (formerly Twitter) handle" : "Zure X (lehen Twitter) erabiltzailea",
- "Your website" : "Zure web orria",
- "Invalid value" : "Balio baliogabea",
- "Unable to update {property}" : "Ezin izan da {property} eguneratu",
- "No {property} set" : "Ez da {property} ezarri",
- "Change scope level of {property}, current scope is {scope}" : "Aldatu {property}-(r)en esparru-maila, unekoa {scope} esparru-maila da",
- "Unable to update federation scope of the primary {property}" : "Ezin da eguneratu lehen mailako {property}-ren federazio-esparrua",
- "Unable to update federation scope of additional {property}" : "Ezin da eguneratu {property} gehigarriaren federazio-esparrua",
- "Add additional email" : "Gehitu e-posta gehigarria",
- "Add" : "Gehitu",
- "Create" : "Sortu",
- "Change" : "Aldatu",
- "Delete" : "Ezabatu",
- "Reshare" : "Birpartekatu",
- "Default language" : "Hizkuntza lehenetsia",
- "Common languages" : "Hizkuntza komunak",
- "Other languages" : "Beste hizkuntza batzuk",
- "Password change is disabled because the master key is disabled" : "Pasahitza aldatzea desgaituta dago gako nagusia desaktibatuta baitago.",
- "No accounts" : "Konturik ez",
- "Loading accounts …" : "Kontuak kargatzen ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Kontuen zerrenda. Zerrenda ez da guztiz errenderizatzen errendimendu arrazoiengatik. Kontuak zerrenda nabigatzen duzun heinean errenderizatuko dira.",
- "Manager" : "Zuzendaria",
- "Set line manager" : "Ezarri linea-arduraduna",
- "Account name will be autogenerated" : "Kontuaren izena automatikoki sortuko da",
- "Account name (required)" : "Kontuaren izena (beharrezkoa)",
- "New account" : "Kontu berria",
- "Display name" : "Erakusteko izena",
- "Either password or email is required" : "Posta elektronikoa edo pasahitza beharrezkoak dira",
- "Password (required)" : "Pasahitza (beharrezkoa)",
- "Email (required)" : "Posta elektronikoa (beharrezkoa)",
- "Email" : "E-posta",
- "Member of the following groups (required)" : "Talde hauetako kidea (beharrezkoa)",
- "Member of the following groups" : "Talde hauetako kidea",
- "Set account groups" : "Ezarri kontuaren taldeak",
- "Admin of the following groups" : "Talde hauetako administratzailea",
- "Set account as admin for …" : "Ezarri kontua administratzaile gisa",
- "Quota" : "Kuota",
- "Set account quota" : "Ezarri kontuaren kuota",
- "Language" : "Hizkuntza",
- "Set default language" : "Ezarri hizkuntza lehenetsia",
- "Add new account" : "Gehitu kontu berri bat",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} kontu…","{userCount} kontu…"],
- "_{userCount} account_::_{userCount} accounts_" : ["kontu {userCount} ","{userCount} kontu"],
- "Total rows summary" : "Errenkaden guztirako laburpena",
- "Scroll to load more rows" : "Mugitu pantailan behera errenkada gehiago kargatzeko",
- "Password or insufficient permissions message" : "Pasahitz edo baimen gutxiegiko mezua",
- "Avatar" : "Avatarra",
- "Account name" : "Kontuaren izena",
- "Group admin for" : "Talde honen administratzailea",
- "Account backend" : "Kontuaren motorra",
- "Storage location" : "Biltegiratze kokapena",
- "First login" : "Lehen saio-hasiera",
- "Last login" : "Azken saioa",
- "Account actions" : "Kontuaren ekintzak",
- "{size} used" : "{size} erabilita",
- "Delete account" : "Ezabatu kontua",
- "Disconnect all devices and delete local data" : "Deskonektatu gailu guztiak eta ezabatu datu lokalak",
- "Disable account" : "Desgaitu kontua",
- "Enable account" : "Gaitu kontua",
- "Resend welcome email" : "Birbidali ongi etorri mezua",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Gailua galtzen baduzu edo erakundetik irteten bazara, honek {userid} erabiltzaileari lotutako gailu guztietako Nextcloudeko datuak garbitu ditzake. Gailuak internetera konektatuta badaude bakarrik funtzionatzen du.",
- "Remote wipe of devices" : "Gailuen urruneko garbiketa",
- "Wipe {userid}'s devices" : "Garbitu {userid}-ren gailuak",
- "Wiped {userid}'s devices" : "{userid}-ren gailuak garbitu dira",
- "Failed to update line manager" : "Ezin izan da arduraduna eguneratu",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} erabiltzailearen kontua, bere fitxategi eta aplikazioen datuak barne, guztiz ezabatu.",
- "Account deletion" : "Kontu ezabaketa",
- "Delete {userid}'s account" : "Ezabatu {userid} erabiltzailearen kontua",
- "Display name was successfully changed" : "Erakusteko izena ondo aldatu da",
- "Password was successfully changed" : "Pasahitza ondo aldatu da",
- "Email was successfully changed" : "Posta elektronikoa ondo aldatu da",
- "Welcome mail sent!" : "Ongi etorri mezua bidalita!",
- "Loading account …" : "Kontua kargatzen ...",
- "Change display name" : "Aldatu erakutsiko den izena",
- "Set new password" : "Ezarri pasahitz berria",
- "You do not have permissions to see the details of this account" : "Ez duzu baimenik kontu honen xehetasunak ikusteko",
- "Set new email address" : "Ezarri helbide elektroniko berria",
- "Add account to group" : "Gehitu kontua taldera",
- "Set account as admin for" : "Ezarri kontua admin gisa",
- "Select account quota" : "Hautatu kontuaren kuota",
- "Set the language" : "Ezarri hizkuntza",
- "Toggle account actions menu" : "Txandakatu kontuen ekintza menua",
- "Done" : "Egina",
- "Edit" : "Aldatu",
- "Account management settings" : "Kontuen kudeaketaren ezarpenak",
- "Visibility" : "Ikusgarritasuna",
- "Show language" : "Erakutsi hizkuntza",
- "Show account backend" : "Erakutsi kontuaren motorra",
- "Show storage path" : "Erakutsi biltegiaren bidea",
- "Show first login" : "Erakutsi lehen saio-hasiera",
- "Show last login" : "Azken izen ematea erakutsi",
- "Sorting" : "Antolaketa",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Sistemaren konfigurazioak taldeak izenaren arabera ordenatzea eskatzen du. Horrek kideen kopurua erakustea ere desgaitzen du.",
- "Group list sorting" : "Talde-zerrenda ordena",
- "By member count" : "Kide kopuruaren arabera",
- "By name" : "Izenez",
- "Send email" : "Bidali posta-mezua",
- "Send welcome email to new accounts" : "Bidali ongietorri mezu elektronikoa kontu berriei",
- "Defaults" : "Defektuzkoak",
- "Default quota" : "Kuota lehenetsia",
- "Select default quota" : "Aukeratu lehenetsitako kuota",
- "Server error while trying to complete WebAuthn device registration" : "Zerbitzariaren errorea WebAuthn gailuaren erregistroa osatzen saiatzean",
- "Passwordless authentication requires a secure connection." : "Pasahitzik gabeko autentifikazioak konexio segurua behar du.",
- "Add WebAuthn device" : "Gehitu WebAuthn gailua",
- "Please authorize your WebAuthn device." : "Mesedez, baimendu zure WebAuthn gailua.",
- "Adding your device …" : "Zure gailua gehitzen ...",
- "Unnamed device" : "Izen gabeko gailua",
- "Passwordless Authentication" : "Pasahitzik gabeko autentifikazioa",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Konfiguratu kontua pasahitzik gabeko autentifikaziorako FIDO2 estandarra jarraituz.",
- "No devices configured." : "Ez da gailurik konfiguratu.",
- "The following devices are configured for your account:" : "Hurrengo gailuak zure konturako konfiguratuta daude:",
- "Your browser does not support WebAuthn." : "Zure nabigatzaileak ez du WebAuthn onartzen.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Admin bezala partekatze portaerak zehaztasunez konfigura daitezke. Ikusi dokumentazioa informazio gehiagorako. ",
- "You need to enable the File sharing App." : "Fitxategi partekatze aplikazioa gaitu behar duzu.",
- "App Store" : "Aplikazioen denda",
- "Loading app list" : "Aplikazio-zerrenda kargatzen",
- "Loading categories" : "Kategoriak kargatzen",
- "Developer documentation ↗" : "Garatzaileen dokumentazioa ↗",
- "Version {version}, {license}-licensed" : "{version} bertsioa, {license}-lizentziarekin",
- "Version {version}" : "{version} bertsioa",
- "All accounts" : "Kontu guztiak",
- "Admins" : "Administratzaileak",
- "Account group: {group}" : "Kontuaren taldea: {group}",
- "Account management" : "Kontuen kudeaketa",
"Sending…" : "Bidaltzen...",
"Email sent" : "Eposta bidalia",
"Location" : "Kokapena",
@@ -737,6 +481,7 @@
"Date of birth" : "Jaioteguna",
"Full name" : "Izen osoa",
"Additional email" : "Helbide elektroniko gehigarria",
+ "Email" : "E-posta",
"Fediverse (e.g. Mastodon)" : "Fedibertsoa (adibidez, Mastodon)",
"Headline" : "Izenburua",
"Organisation" : "Erakundea",
@@ -746,6 +491,7 @@
"X (formerly Twitter)" : "X (lehen Twitter)",
"Website" : "Webgunea",
"Profile visibility" : "Profilaren ikusgarritasuna",
+ "Language" : "Hizkuntza",
"Locale" : "Eskualdeko ezarpenak",
"First day of week" : "Asteko lehen eguna",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Ez dago eskuragarri propietate hau oinarrizko funtzionaltasunentzako beharrezkoa delako, fitxategien partekatze eta egutegien gonbidapenak barne",
@@ -762,6 +508,7 @@
"Show to everyone" : "Erakutsi denei",
"Show to logged in accounts only" : "Erakutsi saioa hasi duten kontuei soilik",
"Hide" : "Ezkutatu",
+ "Update to {version}" : "Eguneratu {version} bertsiora",
"{progress}% Deploying …" : "%{progress} zabaltzen",
"{progress}% Initializing …" : "%{progress} hasieratzen",
"Health checking" : "Osasuna egiaztatzen",
@@ -771,6 +518,7 @@
"Allow untested app" : "Baimendu probatu gabeko aplikazioa",
"The app will be downloaded from the App Store" : "Aplikazioa aplikazio biltegitik deskargatuko da",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Aplikazio hau ez dago zure Nextcloud bertsioarekin bateragarri bezala markatuta. Jarraitzen baduzu aplikazioa instalatu egingo duzu. Kontuan izan agian aplikazioak ez duela ondo funtzionatuko.",
+ "{size} used" : "{size} erabilita",
"Unknown" : "Ezezaguna",
"Never" : "Inoiz ez",
"Could not register device: Network error" : "Ezin izan da gailua erregistratu: Sare errorea",
@@ -789,8 +537,10 @@
"Could not set group sorting" : "Ezin izan da talde-ordena ezarri",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Eskaera gehiegi zeuden zure saretik. Saiatu beranduago edo kontaktatu zure administrailearekin hau errorea bada.",
"Error" : "Errorea",
+ "Default quota" : "Kuota lehenetsia",
"Account documentation" : "Kontuen dokumentazioa",
"Administration documentation" : "Administrazioaren dokumentazioa",
+ "Documentation" : "Dokumentazioa",
"Forum" : "Foroa",
"Nextcloud help & privacy resources" : "Nextcloud laguntza eta pribatutasun baliabideak",
"General documentation" : "Dokumentazio orokorra",
@@ -813,6 +563,7 @@
"SMTP Password" : "SMTP pasahitza",
"Save" : "Gorde",
"Test and verify email settings" : "Probatu eta egiaztatu posta elektronikoaren ezarpenak",
+ "Send email" : "Bidali posta-mezua",
"Security & setup warnings" : "Segurtasun eta konfigurazio abisuak",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Zure instantziaren segurtasuna eta funtzionamenduarentzat oso garrantzitsua da dena ondo konfiguratuta egotea. Horretan laguntzeko egiaztapen automatiko batzuk egiten ditu tresnak bera. Irakurri estekatutako dokumentazioa informazio gehiago lortzeko.",
"All checks passed." : "Egiaztapen guztiak gaindituta.",
@@ -832,50 +583,14 @@
"Use a second factor besides your password to increase security for your account." : "Zure pasahitzaz gain bigarren faktore bat erabiltzeak zure kontua seguruago egingo du.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Hirugarrenen aplikazioak erabiltzen badituzu Nextcloud-era konektatzeko, ziurtatu bakoitzarentzako aplikazioaren pasahitza sortu eta konfiguratzen duzula bigarren faktorearen autentifikazioa gaitu aurretik.",
"Logged in account must be a subadmin" : "Saioa hasitako erabiltzaileak azpi-administratzailea izan behar du",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Egiaztapen hau exekuta dadin zure web zerbitzaria bere buruarekin konektatu daitekeela ziurtatu behar duzu. Hori dela eta, gutxienez bere `trusted_domains` edo `overwrite.cli.url` batera konektatzeko gai izan behar da.",
- "Missing optional index \"%s\" in table \"%s\"." : "\"%s\" hautazko indizea falta da \"%s\" taulan.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Datu-baseak zenbait indize falta ditu. Taula handietan indizeak gehitzeak denbora dezente har dezakeenez ez dira automatikoki gehitu. \"occ db:add-missing-indices\" exekutatuz indize horiek eskuz gehitu daitezke instantzia martxan dagoen bitartean. Indizeak gehitu ondoren taula horietan egindako kontsultak askoz azkarragoak izan ohi dira.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Egiaztapen hau exekuta dadin ziurtatu behar duzu zure web zerbitzaria bere buruarekin konektatu daitekeela. Hori dela eta, bere `trusted_domains` edo `overwrite.cli.url`ra gutxienez ebatzi eta konektatzeko gai izan behar du. Baliteke hutsegite hau zerbitzariaren aldeko DNS ez bat etortzea edo irteerako suebakiaren arauaren ondorioa izatea.",
"File locking" : "Fitxategien blokeoa",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transakzio-fitxategiak blokeatzea desgaituta dago, honek lasterketa baldintzekin arazoak sor ditzake. Gaitu \"filelocking.enabled\" config.php-n arazo horiek saihesteko.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Ezin izan da egiaztatu JavaScript onartzen baden zure `trusted_domains` edo `overwrite.cli.url` bidez. Baliteke zerbitzariaren DNS bat ez datozenen edo irteerako suebakiaren arauaren ondorioa izatea. Mesedez, egiaztatu eskuz zure web zerbitzariak `.mjs` fitxategiak hornitzen dituen JavaScript MIME mota erabiliz.",
"The PHP memory limit is below the recommended value of %s." : "PHPren memoria muga aholkatutako %s balioaren azpitik dago.",
"for WebAuthn passwordless login" : "WebAuthn pasahitzik gabeko saio-hasierarako",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn pasahitzik gabeko saio-hasiera eta SFTP biltegiratzerako",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "PHP %s exekutatzen ari zara. PHP 8.0 Nextcloud 27-n zaharkituta dago. Nextcloud 28k gutxienez PHP 8.1 behar ahal izango du. Mesedez, eguneratu PHP Group-ek ofizialki onartzen dituen PHP bertsioatara ahalik eta lasterren.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB \"%s\" bertsioa erabiltzen da. Nextcloud 21ek eta berriagoak ez dute bertsio hau onartzen eta MariaDB 10.2 edo berriagoa behar dute.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL bertsioa \"%s\" erabiltzen da. Nextcloud 21 eta berriek ez dute bertsio hau onartzen eta MySQL 8.0 edo MariaDB 10.2 edo berriagoa behar dute.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL \"%s\" bertsioa erabiltzen da. Nextcloud 21ek eta berriagoak ez dute bertsio hau onartzen eta PostgreSQL 9.6 edo berriagoa behar dute.",
- "Speech-To-Text" : "Ahotsetik testura",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Ahotsetik testura aplikazio ezberdinek inplementatu dezakete. Zeintzuk aplikazio erabili daitezkeen ezarri dezakezu hemen.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ez dago ahotsetik testurako funtzionalitatea ematen duen aplikaziorik unean.",
- "None of your currently installed apps provide Text processing functionality" : "Ez dago testu-prozesamendu funtzionalitatea ematen duen aplikaziorik unean.",
- "Set default expiration date for shares" : "Partekatzeei iraungitze data lehenetsia ezarri",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Baimendu erabiltzaile izena automatikoki osatzea elkarrizketa-koadroan eta baimendu sistemako helbide-liburua atzitzea",
- "Your biography" : "Zure biografia",
- "You are using <strong>{usage}</strong>" : "<strong>{usage}</strong> erabiltzen ari zara",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "<strong>{usage}</strong>/<strong>{totalSpace}</strong> erabiltzen ari zara (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Ezarri erabiltzaile-kudeatzailea",
- "Username will be autogenerated" : "Erabiltzaile izena automatikoki sortuko da",
- "Username (required)" : "Erabiltzailea (beharrezkoa)",
- "New user" : "Erabiltzaile berria",
- "Groups (required)" : "Taldeak (beharrezkoa)",
- "Set user groups" : "Ezarri erabiltzailearen taldeak",
- "Administered groups" : "Administratturiko taldeak",
- "Set user as admin for …" : "Ezarri erabiltzailea admin gisa honentzat...",
- "Set user quota" : "Ezarri erabiltzaie-kuota",
- "Add new user" : "Gehitu erabiltzaile berria",
- "_{userCount} user …_::_{userCount} users …_" : ["Erabiltzaile {userCount} …","{userCount} erabiltzaile …"],
- "_{userCount} user_::_{userCount} users_" : ["Erabiltzaile {userCount}","{userCount} erabiltzaile"],
- "Loading users …" : "Erabiltzaileak kargatzen ...",
- "Username" : "Erabiltzaile izena",
- "User backend" : "Erabiltzaile jatorria",
- "User actions" : "Erabiltzaile-ekintzak",
- "Add user to group" : "Gehitu erabiltzailea taldera",
- "Server error while trying to add WebAuthn device" : "Zerbitzariaren errorea WebAuthn gailua gehitzen saiatzean",
- "Name your device" : "Izendatu zure gailua",
- "Active accounts" : "Kontu gaituak",
- "Follow us on Twitter" : "Jarrai gaitzazu Twitterren",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Egiaztapen hau exekuta dadin ziurtatu behar duzu zure web zerbitzaria bere buruarekin konektatu daitekeela. Hori dela eta, bere `trusted_domains` edo `overwrite.cli.url`ra gutxienez ebatzi eta konektatzeko gai izan behar du. Baliteke hutsegite hau zerbitzariaren aldeko DNS ez bat etortzea edo irteerako suebakiaren arauaren ondorioa izatea.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%s\" bertsioa detektatu da. PostgreSQL >=12 eta <=16 iradokitzen da Nextcloud-en bertsio honekin errendimendu, egonkortasun eta funtzionalitate onena lortzeko."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP goiburuak ez dauka `%2$s` balioa. Hau segurtasun edo pribatutasun arrisku bat izan daiteke. Ezarpenean dagokion balioa jartzea gomendatzen da.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%s\" bertsioa detektatu da. PostgreSQL >=12 eta <=16 iradokitzen da Nextcloud-en bertsio honekin errendimendu, egonkortasun eta funtzionalitate onena lortzeko.",
+ "Set default expiration date for shares" : "Partekatzeei iraungitze data lehenetsia ezarri"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/fa.js b/apps/settings/l10n/fa.js
index 53fe0e4de4b..e569902eb5f 100644
--- a/apps/settings/l10n/fa.js
+++ b/apps/settings/l10n/fa.js
@@ -186,54 +186,6 @@ OC.L10N.register(
"Group name" : "نام گروه",
"Loading groups…" : "Loading groups…",
"Loading" : "Loading",
- "Daemon" : "فرایندهای پس زمینه",
- "Type" : "نوع",
- "Learn more" : "بیشتر بدانید",
- "Confirm" : "تأیید",
- "Cancel" : "منصرف شدن",
- "Description" : "شرح",
- "View in store" : "نمایش در فروشگاه",
- "Visit website" : "سر زدن به پایگاه وب",
- "Admin documentation" : "مستندات مدیر",
- "Developer documentation" : "مستندات توسعه‌دهندگان",
- "Details" : "جزییات",
- "All" : "همه",
- "Limit app usage to groups" : "محدودیت استفاده از کاره به گروه‌ها",
- "No results" : "بدون نتیجه",
- "Update to {version}" : "به‌روز رسانی به {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "این برنامه حداقل دارای نسخه بعدی نکست کلود است. این یک خطا در آینده خواهد بود.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "این برنامه حداکثر نسخه نکست کلود اختصاصی ندارد. این یک خطا در آینده خواهد بود.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "امکان نصب این برنامه وجود ندارد، این پیش‌نیازها انجام نشده‌اند:",
- "Author" : "نویسنده",
- "Categories" : "دسته‌ها",
- "Resources" : "منابع",
- "Documentation" : "مستندسازی",
- "Interact" : "تعامل",
- "Report a bug" : "گزارش یک خطا",
- "Request feature" : "درخواست ویژگی",
- "Ask questions or discuss" : "پرسش یا بحث",
- "Rate" : "رتبه‌بندی",
- "Changelog" : "تغییر",
- "Google Chrome for Android" : "کروم گوگل برای اندروید",
- "{productName} iOS app" : "کارهٔ iOS {productName}",
- "{productName} Android app" : "کارهٔ اندرویدی {productName}",
- "{productName} Talk for iOS" : "صحبت {productName} برای iOS",
- "{productName} Talk for Android" : "صحبت {productName} برای اندروید",
- "This session" : "این نشست",
- "Marked for remote wipe" : "علامت خورده برای زودون دوردست",
- "Device settings" : "تنظیمات افزاره",
- "Allow filesystem access" : "اجازهٔ دسترسی به سامانه‌پرونده",
- "Rename" : "تغییرنام",
- "Revoke" : "لغو",
- "Wipe device" : "حذف دستگاه",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revoking this token might prevent the wiping of your device if it has not started the wipe yet.",
- "Device" : "افزاره",
- "Last activity" : "آخرین فعّالیت",
- "Devices & sessions" : "دستگاه ها و نشست ها",
- "Web, desktop and mobile clients currently logged in to your account." : "لیست دستگاه ها و نشست های فعال وارد شده با اکانت شما",
- "Error while creating device token" : "هنگام ایجاد نشانه وسیله خطایی رخ داد",
- "App name" : "نام برنامه",
- "Create new app password" : "ساختن رمزعبور برنامه جدید ",
"Could not copy app password. Please copy it manually." : "نمی توان رمزعبور برنامه را کپی کرد. لطفاً آن را به صورت دستی کپی کنید.",
"Login" : "ورود",
"Password" : "گذرواژه",
@@ -264,134 +216,10 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "توجه داشته باشید که همواره رمزگذاری حجم فایل را افزایش خواهد داد.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "همیشه خوب است که از داده های خود نسخه پشتیبان تهیه کنید ، در صورت رمزگذاری مطمئن شوید که از کلیدهای رمزنگاری به همراه داده خود نسخه پشتیبان تهیه کنید.",
"This is the final warning: Do you really want to enable encryption?" : "این آخرین اخطار است: آیا می‌خواهید رمزگذاری را فعال کنید ؟",
+ "Cancel" : "منصرف شدن",
+ "Confirm" : "تأیید",
"Submit" : "ارسال",
"Rename group" : "Rename group",
- "Remove group" : "برداشتن گروه",
- "Current password" : "گذرواژه کنونی",
- "New password" : "گذرواژه جدید",
- "Change password" : "تغییر گذر واژه",
- "Choose your profile picture" : "عکس نمایهٔ خود را انتخاب کنید",
- "Please select a valid png or jpg file" : "لطفاً یک فایل png یا jpg معتبر انتخاب کنید",
- "Error setting profile picture" : "خطا در تنظیم عکس نمایه",
- "Error cropping profile picture" : "خطا در برش عکس نمایه",
- "Error saving profile picture" : "خطا در ذخیره تصویر نمایه",
- "Error removing profile picture" : "خطا در حذف عکس نمایه",
- "Your profile picture" : "نگارهٔ نمایه‌تان",
- "Upload profile picture" : "بارگذاری نگارهٔ نمایه",
- "Choose profile picture from Files" : "تصویر نمایه‌تان را از پرونده‌ها انتخاب کنید",
- "Remove profile picture" : "برداشتن نگارهٔ نمایه",
- "The file must be a PNG or JPG" : "The file must be a PNG or JPG",
- "Picture provided by original account" : "نگاره فراهم شده به دست حساب اصلی",
- "Set as profile picture" : "به عنوان عکس نمایه تنظیم کنید",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "لطفاً توجه داشته باشید که ممکن است تا 24 ساعت طول بکشد تا عکس نمایه شما در همه جا به روز شود.",
- "You are a member of the following groups:" : "عضوی از گروه‌های زیر هستید:",
- "Your full name" : "Your full name",
- "Email options" : "Email options",
- "Remove primary email" : "Remove primary email",
- "Delete email" : "Delete email",
- "This address is not confirmed" : "This address is not confirmed",
- "Unset as primary email" : "Unset as primary email",
- "Set as primary email" : "Set as primary email",
- "Additional email address {index}" : "Additional email address {index}",
- "Unable to delete primary email address" : "Unable to delete primary email address",
- "Unable to update primary email address" : "Unable to update primary email address",
- "Unable to add additional email address" : "Unable to add additional email address",
- "Unable to update additional email address" : "Unable to update additional email address",
- "Unable to delete additional email address" : "Unable to delete additional email address",
- "Primary email for password reset and notifications" : "ایمیل اصلی برای بازیابی رمز عبور و دریافت اعلان ها",
- "No email address set" : "آدرس‌ایمیلی تنظیم نشده است",
- "Your handle" : "Your handle",
- "Your headline" : "عنوان سرصفحه",
- "Unable to update language" : "Unable to update language",
- "Help translate" : "به ترجمه آن کمک کنید",
- "No language set" : "زبانی تنظیم نشده است.",
- "Unable to update locale" : "Unable to update locale",
- "Week starts on {firstDayOfWeek}" : "Week starts on {firstDayOfWeek}",
- "No locale set" : "تنظیمات locale انجام نشده است",
- "Your city" : "شهر شما",
- "Your organisation" : "نام سازمان",
- "Your phone number" : "شماره تلفن شما",
- "Edit your Profile visibility" : "ویرایش امکان مشاهده پروفایل",
- "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." : "ملاک عمل، تنظیمات با محدودیت بالاتر است که اعمال می شوند. برای مثال، اگر \"قابلیت دیده شدن\" در وضعیت \"نمایش برای همه\" تنظیم شده باشد و \"محدوده دیده شدن\" در وضعیت \"خصوصی\" تنظیم شده باشد، تنظیم به وضعیت \"خصوصی\" که محدودیت بیشتری اعمال میکند اعمال خواهد شد.",
- "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}",
- "Your role" : "نقش شما",
- "Your website" : "وبسایت شما",
- "Unable to update {property}" : "Unable to update {property}",
- "No {property} set" : "No {property} set",
- "Change scope level of {property}, current scope is {scope}" : "Change scope level of {property}, current scope is {scope}",
- "Unable to update federation scope of the primary {property}" : "Unable to update federation scope of the primary {property}",
- "Unable to update federation scope of additional {property}" : "Unable to update federation scope of additional {property}",
- "Add additional email" : "Add additional email",
- "Add" : "افزودن",
- "Create" : "ایجاد",
- "Change" : "تغییر",
- "Delete" : "حذف",
- "Reshare" : "بازهم‌رسانی",
- "Default language" : "زبان پیش فرض",
- "Common languages" : "زبانهای رایج",
- "Other languages" : "Other languages",
- "Password change is disabled because the master key is disabled" : "تغییر رمز غیرفعال شده است زیرا کلید اصلی غیرفعال شده است",
- "No accounts" : "حسابی وجود ندارد",
- "Manager" : "Manager",
- "Display name" : "نمایش نام",
- "Either password or email is required" : "Either password or email is required",
- "Password (required)" : "Password (required)",
- "Email (required)" : "Email (required)",
- "Email" : "ایمیل",
- "Quota" : "سهم",
- "Language" : "زبان",
- "Set default language" : "Set default language",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} حساب ...","{userCount} حساب ..."],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} حساب","{userCount} حساب"],
- "Total rows summary" : "خلاصه کل ردیف ها",
- "Scroll to load more rows" : "Scroll to load more rows",
- "Password or insufficient permissions message" : "Password or insufficient permissions message",
- "Avatar" : "آواتار",
- "Account name" : "Account name",
- "Group admin for" : "مدیر گروه برای",
- "Storage location" : "محل ذخیره سازی",
- "Last login" : "آخرین ورود",
- "Account actions" : "اقدامات حساب",
- "{size} used" : "{size} مورد استفاده",
- "Resend welcome email" : "ارسال ایمیل خوش آمدید",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "در صورت گم شدن دستگاه یا خارج شدن از سازمان ، می توانید داده های نکست کلود را از راه دور از بین همه دستگاه های مرتبط با {userid} آن پاک کنید. فقط در صورت اتصال دستگاه ها به اینترنت کار می کند.",
- "Remote wipe of devices" : "پاک کردن از راه دور دستگاه ها",
- "Wipe {userid}'s devices" : "دستگاه های {userid} را پاک کنید",
- "Wiped {userid}'s devices" : "Wiped {userid}'s devices",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "حساب {userid} را با تمام پرونده های شخصی ، داده های برنامه و غیره به طور کامل حذف کنید.",
- "Account deletion" : "حذف حساب کاربری",
- "Delete {userid}'s account" : "حساب {userid} را حذف کنید",
- "Display name was successfully changed" : "Display name was successfully changed",
- "Password was successfully changed" : "Password was successfully changed",
- "Email was successfully changed" : "Email was successfully changed",
- "Welcome mail sent!" : "نامه خوش آمديد ارسال شد",
- "Set the language" : "Set the language",
- "Done" : "انجام شد",
- "Edit" : "ویرایش",
- "Visibility" : "Visibility",
- "Show language" : "Show language",
- "Show storage path" : "نمایش مسیر ذخیره سازی",
- "Show last login" : "نمایش آخرین ورود",
- "Sorting" : "مرتب سازی",
- "Send email" : "ارسال ایمیل",
- "Defaults" : "Defaults",
- "Default quota" : "سهمیه پیش فرض",
- "Select default quota" : "سهمیه پیش فرض را انتخاب کنید",
- "Server error while trying to complete WebAuthn device registration" : "Server error while trying to complete WebAuthn device registration",
- "Passwordless authentication requires a secure connection." : "Passwordless authentication requires a secure connection.",
- "Add WebAuthn device" : "Add WebAuthn device",
- "Please authorize your WebAuthn device." : "Please authorize your WebAuthn device.",
- "Adding your device …" : "Adding your device …",
- "Unnamed device" : "Unnamed device",
- "Passwordless Authentication" : "Passwordless Authentication",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Set up your account for passwordless authentication following the FIDO2 standard.",
- "No devices configured." : "No devices configured.",
- "The following devices are configured for your account:" : "The following devices are configured for your account:",
- "Your browser does not support WebAuthn." : "Your browser does not support WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "به عنوان مدیر ، می توانید رفتار اشتراک گذاری را تنظیم کنید. لطفا برای اطلاعات بیشتر به اسناد مراجعه کنید.",
- "You need to enable the File sharing App." : "You need to enable the File sharing App.",
- "All accounts" : "همهٔ حساب‌ها",
- "Admins" : "مدیران",
"Sending…" : "در حال ارسال",
"Email sent" : "ایمیل ارسال شد",
"Location" : "مکان",
@@ -399,13 +227,16 @@ OC.L10N.register(
"About" : "درباره",
"Full name" : "نام کامل",
"Additional email" : "Additional email",
+ "Email" : "ایمیل",
"Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)",
"Headline" : "عنوان",
"Organisation" : "سازمان",
"Phone number" : "شماره تلفن",
+ "Pronouns" : "ضمایر",
"Role" : "نقش",
"Website" : "وب‌ سایت",
"Profile visibility" : "امکان دیده شدن پروفایل",
+ "Language" : "زبان",
"Locale" : "محل",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Not available as this property is required for core functionality including file sharing and calendar invitations",
"Your apps" : "برنامه‌های شما",
@@ -418,11 +249,13 @@ OC.L10N.register(
"Show to everyone" : "نمایش به همه",
"Show to logged in accounts only" : "فقط به حساب‌هایی که وارد شده‌اند نمایش یابد",
"Hide" : "پنهان کردن",
+ "Update to {version}" : "به‌روز رسانی به {version}",
"Download and enable" : "بارگیری و فعال سازی",
"Disable" : "غیرفعال",
"Allow untested app" : "Allow untested app",
"The app will be downloaded from the App Store" : "The app will be downloaded from the App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "این برنامه مطابق با نسخه نکست کلود شما مشخص نشده است. اگر ادامه بدهید همچنان می توانید برنامه را نصب کنید. توجه داشته باشید که برنامه ممکن است مطابق آنچه انتظار می رود کار نکند.",
+ "{size} used" : "{size} مورد استفاده",
"Unknown" : "ناشناخته",
"Never" : "هرگز",
"An error occurred during the request. Unable to proceed." : "An error occurred during the request. Unable to proceed.",
@@ -435,6 +268,8 @@ OC.L10N.register(
"Error while updating device token scope" : "هنگام بروزرسانی دامنه توکن وسیله خطایی رخ داد",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "There were too many requests from your network. Retry later or contact your administrator if this is an error.",
"Error" : "خطا",
+ "Default quota" : "سهمیه پیش فرض",
+ "Documentation" : "مستندسازی",
"Forum" : "انجمن",
"Nextcloud help & privacy resources" : "منابع راهنما و حریم شخصی نکست‌کلود",
"Legal notice" : "توصیهٔ حقوقی",
@@ -455,6 +290,7 @@ OC.L10N.register(
"SMTP Password" : "رمز عبور SMTP",
"Save" : "ذخیره",
"Test and verify email settings" : "Test and verify email settings",
+ "Send email" : "ارسال ایمیل",
"Security & setup warnings" : "اخطارهای نصب و امنیتی",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "برای امنیت و عملکرد نمونه شما، مهم است که همه چیز به درستی پیکربندی شده باشد. برای کمک به شما در این مورد ، ما برخی از بررسی های خودکار را انجام می دهیم. لطفا برای اطلاعات بیشتر به مستندات مرتبط مراجعه کنید.",
"All checks passed." : "تمامی موارد با موفقیت چک شدند.",
@@ -472,39 +308,7 @@ OC.L10N.register(
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "This community release of Nextcloud is unsupported and instant notifications are unavailable.",
"Use a second factor besides your password to increase security for your account." : "برای افزایش امنیت حساب کاربری خود ، از یک عامل دوم علاوه بر رمز عبور خود استفاده کنید.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.",
- "Speech-To-Text" : "Speech-To-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text can be implemented by different apps. Here you can set which app should be used.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "None of your currently installed apps provide Speech-To-Text functionality",
- "None of your currently installed apps provide Text processing functionality" : "None of your currently installed apps provide Text processing functionality",
- "Set default expiration date for shares" : "تاریخ انقضا پیش فرض را برای اشتراک گذاری تعیین کنید",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Allow username autocompletion in share dialog and allow access to the system address book",
- "Your biography" : "بیوگرافی شما",
- "You are using <strong>{usage}</strong>" : "فضای مورد استفاده: <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "شما در حال استفادهٔ <strong>{usage}</strong> از <strong>{totalSpace}</strong> (<strong>{usageRelative}٪</strong>) فضا هستید",
- "Set user manager" : "Set user manager",
- "Username will be autogenerated" : "Username will be autogenerated",
- "Username (required)" : "Username (required)",
- "New user" : "کاربر جدید",
- "Groups (required)" : "Groups (required)",
- "Set user groups" : "Set user groups",
- "Administered groups" : "Administered groups",
- "Set user as admin for …" : "Set user as admin for …",
- "Set user quota" : "Set user quota",
- "Add new user" : "Add new user",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} user …","{userCount} users …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} user","{userCount} users"],
- "Loading users …" : "Loading users …",
- "Username" : "نام کاربری",
- "User backend" : "پشتیبان کاربر",
- "User actions" : "User actions",
- "Add user to group" : "Add user to group",
- "Server error while trying to add WebAuthn device" : "Server error while trying to add WebAuthn device",
- "Name your device" : "Name your device",
- "Active accounts" : "حساب‌های فعال",
- "Follow us on Twitter" : "ما را در توییتر دنبال کنید"
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "برای اجرای این بررسی، باید مطمئن شوید که وب‌سرور شما می‌تواند به خودش متصل شود. بنابراین باید بتواند حداقل یکی از `trusted_domains` یا `overwrite.cli.url` خود را حل و به آن متصل شود. این خطا ممکن است نتیجه عدم تطابق DNS سمت سرور یا قانون فایروال خروجی باشد.",
+ "Set default expiration date for shares" : "تاریخ انقضا پیش فرض را برای اشتراک گذاری تعیین کنید"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/settings/l10n/fa.json b/apps/settings/l10n/fa.json
index d623181172e..282dc046478 100644
--- a/apps/settings/l10n/fa.json
+++ b/apps/settings/l10n/fa.json
@@ -184,54 +184,6 @@
"Group name" : "نام گروه",
"Loading groups…" : "Loading groups…",
"Loading" : "Loading",
- "Daemon" : "فرایندهای پس زمینه",
- "Type" : "نوع",
- "Learn more" : "بیشتر بدانید",
- "Confirm" : "تأیید",
- "Cancel" : "منصرف شدن",
- "Description" : "شرح",
- "View in store" : "نمایش در فروشگاه",
- "Visit website" : "سر زدن به پایگاه وب",
- "Admin documentation" : "مستندات مدیر",
- "Developer documentation" : "مستندات توسعه‌دهندگان",
- "Details" : "جزییات",
- "All" : "همه",
- "Limit app usage to groups" : "محدودیت استفاده از کاره به گروه‌ها",
- "No results" : "بدون نتیجه",
- "Update to {version}" : "به‌روز رسانی به {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "این برنامه حداقل دارای نسخه بعدی نکست کلود است. این یک خطا در آینده خواهد بود.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "این برنامه حداکثر نسخه نکست کلود اختصاصی ندارد. این یک خطا در آینده خواهد بود.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "امکان نصب این برنامه وجود ندارد، این پیش‌نیازها انجام نشده‌اند:",
- "Author" : "نویسنده",
- "Categories" : "دسته‌ها",
- "Resources" : "منابع",
- "Documentation" : "مستندسازی",
- "Interact" : "تعامل",
- "Report a bug" : "گزارش یک خطا",
- "Request feature" : "درخواست ویژگی",
- "Ask questions or discuss" : "پرسش یا بحث",
- "Rate" : "رتبه‌بندی",
- "Changelog" : "تغییر",
- "Google Chrome for Android" : "کروم گوگل برای اندروید",
- "{productName} iOS app" : "کارهٔ iOS {productName}",
- "{productName} Android app" : "کارهٔ اندرویدی {productName}",
- "{productName} Talk for iOS" : "صحبت {productName} برای iOS",
- "{productName} Talk for Android" : "صحبت {productName} برای اندروید",
- "This session" : "این نشست",
- "Marked for remote wipe" : "علامت خورده برای زودون دوردست",
- "Device settings" : "تنظیمات افزاره",
- "Allow filesystem access" : "اجازهٔ دسترسی به سامانه‌پرونده",
- "Rename" : "تغییرنام",
- "Revoke" : "لغو",
- "Wipe device" : "حذف دستگاه",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revoking this token might prevent the wiping of your device if it has not started the wipe yet.",
- "Device" : "افزاره",
- "Last activity" : "آخرین فعّالیت",
- "Devices & sessions" : "دستگاه ها و نشست ها",
- "Web, desktop and mobile clients currently logged in to your account." : "لیست دستگاه ها و نشست های فعال وارد شده با اکانت شما",
- "Error while creating device token" : "هنگام ایجاد نشانه وسیله خطایی رخ داد",
- "App name" : "نام برنامه",
- "Create new app password" : "ساختن رمزعبور برنامه جدید ",
"Could not copy app password. Please copy it manually." : "نمی توان رمزعبور برنامه را کپی کرد. لطفاً آن را به صورت دستی کپی کنید.",
"Login" : "ورود",
"Password" : "گذرواژه",
@@ -262,134 +214,10 @@
"Be aware that encryption always increases the file size." : "توجه داشته باشید که همواره رمزگذاری حجم فایل را افزایش خواهد داد.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "همیشه خوب است که از داده های خود نسخه پشتیبان تهیه کنید ، در صورت رمزگذاری مطمئن شوید که از کلیدهای رمزنگاری به همراه داده خود نسخه پشتیبان تهیه کنید.",
"This is the final warning: Do you really want to enable encryption?" : "این آخرین اخطار است: آیا می‌خواهید رمزگذاری را فعال کنید ؟",
+ "Cancel" : "منصرف شدن",
+ "Confirm" : "تأیید",
"Submit" : "ارسال",
"Rename group" : "Rename group",
- "Remove group" : "برداشتن گروه",
- "Current password" : "گذرواژه کنونی",
- "New password" : "گذرواژه جدید",
- "Change password" : "تغییر گذر واژه",
- "Choose your profile picture" : "عکس نمایهٔ خود را انتخاب کنید",
- "Please select a valid png or jpg file" : "لطفاً یک فایل png یا jpg معتبر انتخاب کنید",
- "Error setting profile picture" : "خطا در تنظیم عکس نمایه",
- "Error cropping profile picture" : "خطا در برش عکس نمایه",
- "Error saving profile picture" : "خطا در ذخیره تصویر نمایه",
- "Error removing profile picture" : "خطا در حذف عکس نمایه",
- "Your profile picture" : "نگارهٔ نمایه‌تان",
- "Upload profile picture" : "بارگذاری نگارهٔ نمایه",
- "Choose profile picture from Files" : "تصویر نمایه‌تان را از پرونده‌ها انتخاب کنید",
- "Remove profile picture" : "برداشتن نگارهٔ نمایه",
- "The file must be a PNG or JPG" : "The file must be a PNG or JPG",
- "Picture provided by original account" : "نگاره فراهم شده به دست حساب اصلی",
- "Set as profile picture" : "به عنوان عکس نمایه تنظیم کنید",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "لطفاً توجه داشته باشید که ممکن است تا 24 ساعت طول بکشد تا عکس نمایه شما در همه جا به روز شود.",
- "You are a member of the following groups:" : "عضوی از گروه‌های زیر هستید:",
- "Your full name" : "Your full name",
- "Email options" : "Email options",
- "Remove primary email" : "Remove primary email",
- "Delete email" : "Delete email",
- "This address is not confirmed" : "This address is not confirmed",
- "Unset as primary email" : "Unset as primary email",
- "Set as primary email" : "Set as primary email",
- "Additional email address {index}" : "Additional email address {index}",
- "Unable to delete primary email address" : "Unable to delete primary email address",
- "Unable to update primary email address" : "Unable to update primary email address",
- "Unable to add additional email address" : "Unable to add additional email address",
- "Unable to update additional email address" : "Unable to update additional email address",
- "Unable to delete additional email address" : "Unable to delete additional email address",
- "Primary email for password reset and notifications" : "ایمیل اصلی برای بازیابی رمز عبور و دریافت اعلان ها",
- "No email address set" : "آدرس‌ایمیلی تنظیم نشده است",
- "Your handle" : "Your handle",
- "Your headline" : "عنوان سرصفحه",
- "Unable to update language" : "Unable to update language",
- "Help translate" : "به ترجمه آن کمک کنید",
- "No language set" : "زبانی تنظیم نشده است.",
- "Unable to update locale" : "Unable to update locale",
- "Week starts on {firstDayOfWeek}" : "Week starts on {firstDayOfWeek}",
- "No locale set" : "تنظیمات locale انجام نشده است",
- "Your city" : "شهر شما",
- "Your organisation" : "نام سازمان",
- "Your phone number" : "شماره تلفن شما",
- "Edit your Profile visibility" : "ویرایش امکان مشاهده پروفایل",
- "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." : "ملاک عمل، تنظیمات با محدودیت بالاتر است که اعمال می شوند. برای مثال، اگر \"قابلیت دیده شدن\" در وضعیت \"نمایش برای همه\" تنظیم شده باشد و \"محدوده دیده شدن\" در وضعیت \"خصوصی\" تنظیم شده باشد، تنظیم به وضعیت \"خصوصی\" که محدودیت بیشتری اعمال میکند اعمال خواهد شد.",
- "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}",
- "Your role" : "نقش شما",
- "Your website" : "وبسایت شما",
- "Unable to update {property}" : "Unable to update {property}",
- "No {property} set" : "No {property} set",
- "Change scope level of {property}, current scope is {scope}" : "Change scope level of {property}, current scope is {scope}",
- "Unable to update federation scope of the primary {property}" : "Unable to update federation scope of the primary {property}",
- "Unable to update federation scope of additional {property}" : "Unable to update federation scope of additional {property}",
- "Add additional email" : "Add additional email",
- "Add" : "افزودن",
- "Create" : "ایجاد",
- "Change" : "تغییر",
- "Delete" : "حذف",
- "Reshare" : "بازهم‌رسانی",
- "Default language" : "زبان پیش فرض",
- "Common languages" : "زبانهای رایج",
- "Other languages" : "Other languages",
- "Password change is disabled because the master key is disabled" : "تغییر رمز غیرفعال شده است زیرا کلید اصلی غیرفعال شده است",
- "No accounts" : "حسابی وجود ندارد",
- "Manager" : "Manager",
- "Display name" : "نمایش نام",
- "Either password or email is required" : "Either password or email is required",
- "Password (required)" : "Password (required)",
- "Email (required)" : "Email (required)",
- "Email" : "ایمیل",
- "Quota" : "سهم",
- "Language" : "زبان",
- "Set default language" : "Set default language",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} حساب ...","{userCount} حساب ..."],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} حساب","{userCount} حساب"],
- "Total rows summary" : "خلاصه کل ردیف ها",
- "Scroll to load more rows" : "Scroll to load more rows",
- "Password or insufficient permissions message" : "Password or insufficient permissions message",
- "Avatar" : "آواتار",
- "Account name" : "Account name",
- "Group admin for" : "مدیر گروه برای",
- "Storage location" : "محل ذخیره سازی",
- "Last login" : "آخرین ورود",
- "Account actions" : "اقدامات حساب",
- "{size} used" : "{size} مورد استفاده",
- "Resend welcome email" : "ارسال ایمیل خوش آمدید",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "در صورت گم شدن دستگاه یا خارج شدن از سازمان ، می توانید داده های نکست کلود را از راه دور از بین همه دستگاه های مرتبط با {userid} آن پاک کنید. فقط در صورت اتصال دستگاه ها به اینترنت کار می کند.",
- "Remote wipe of devices" : "پاک کردن از راه دور دستگاه ها",
- "Wipe {userid}'s devices" : "دستگاه های {userid} را پاک کنید",
- "Wiped {userid}'s devices" : "Wiped {userid}'s devices",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "حساب {userid} را با تمام پرونده های شخصی ، داده های برنامه و غیره به طور کامل حذف کنید.",
- "Account deletion" : "حذف حساب کاربری",
- "Delete {userid}'s account" : "حساب {userid} را حذف کنید",
- "Display name was successfully changed" : "Display name was successfully changed",
- "Password was successfully changed" : "Password was successfully changed",
- "Email was successfully changed" : "Email was successfully changed",
- "Welcome mail sent!" : "نامه خوش آمديد ارسال شد",
- "Set the language" : "Set the language",
- "Done" : "انجام شد",
- "Edit" : "ویرایش",
- "Visibility" : "Visibility",
- "Show language" : "Show language",
- "Show storage path" : "نمایش مسیر ذخیره سازی",
- "Show last login" : "نمایش آخرین ورود",
- "Sorting" : "مرتب سازی",
- "Send email" : "ارسال ایمیل",
- "Defaults" : "Defaults",
- "Default quota" : "سهمیه پیش فرض",
- "Select default quota" : "سهمیه پیش فرض را انتخاب کنید",
- "Server error while trying to complete WebAuthn device registration" : "Server error while trying to complete WebAuthn device registration",
- "Passwordless authentication requires a secure connection." : "Passwordless authentication requires a secure connection.",
- "Add WebAuthn device" : "Add WebAuthn device",
- "Please authorize your WebAuthn device." : "Please authorize your WebAuthn device.",
- "Adding your device …" : "Adding your device …",
- "Unnamed device" : "Unnamed device",
- "Passwordless Authentication" : "Passwordless Authentication",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Set up your account for passwordless authentication following the FIDO2 standard.",
- "No devices configured." : "No devices configured.",
- "The following devices are configured for your account:" : "The following devices are configured for your account:",
- "Your browser does not support WebAuthn." : "Your browser does not support WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "به عنوان مدیر ، می توانید رفتار اشتراک گذاری را تنظیم کنید. لطفا برای اطلاعات بیشتر به اسناد مراجعه کنید.",
- "You need to enable the File sharing App." : "You need to enable the File sharing App.",
- "All accounts" : "همهٔ حساب‌ها",
- "Admins" : "مدیران",
"Sending…" : "در حال ارسال",
"Email sent" : "ایمیل ارسال شد",
"Location" : "مکان",
@@ -397,13 +225,16 @@
"About" : "درباره",
"Full name" : "نام کامل",
"Additional email" : "Additional email",
+ "Email" : "ایمیل",
"Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)",
"Headline" : "عنوان",
"Organisation" : "سازمان",
"Phone number" : "شماره تلفن",
+ "Pronouns" : "ضمایر",
"Role" : "نقش",
"Website" : "وب‌ سایت",
"Profile visibility" : "امکان دیده شدن پروفایل",
+ "Language" : "زبان",
"Locale" : "محل",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Not available as this property is required for core functionality including file sharing and calendar invitations",
"Your apps" : "برنامه‌های شما",
@@ -416,11 +247,13 @@
"Show to everyone" : "نمایش به همه",
"Show to logged in accounts only" : "فقط به حساب‌هایی که وارد شده‌اند نمایش یابد",
"Hide" : "پنهان کردن",
+ "Update to {version}" : "به‌روز رسانی به {version}",
"Download and enable" : "بارگیری و فعال سازی",
"Disable" : "غیرفعال",
"Allow untested app" : "Allow untested app",
"The app will be downloaded from the App Store" : "The app will be downloaded from the App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "این برنامه مطابق با نسخه نکست کلود شما مشخص نشده است. اگر ادامه بدهید همچنان می توانید برنامه را نصب کنید. توجه داشته باشید که برنامه ممکن است مطابق آنچه انتظار می رود کار نکند.",
+ "{size} used" : "{size} مورد استفاده",
"Unknown" : "ناشناخته",
"Never" : "هرگز",
"An error occurred during the request. Unable to proceed." : "An error occurred during the request. Unable to proceed.",
@@ -433,6 +266,8 @@
"Error while updating device token scope" : "هنگام بروزرسانی دامنه توکن وسیله خطایی رخ داد",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "There were too many requests from your network. Retry later or contact your administrator if this is an error.",
"Error" : "خطا",
+ "Default quota" : "سهمیه پیش فرض",
+ "Documentation" : "مستندسازی",
"Forum" : "انجمن",
"Nextcloud help & privacy resources" : "منابع راهنما و حریم شخصی نکست‌کلود",
"Legal notice" : "توصیهٔ حقوقی",
@@ -453,6 +288,7 @@
"SMTP Password" : "رمز عبور SMTP",
"Save" : "ذخیره",
"Test and verify email settings" : "Test and verify email settings",
+ "Send email" : "ارسال ایمیل",
"Security & setup warnings" : "اخطارهای نصب و امنیتی",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "برای امنیت و عملکرد نمونه شما، مهم است که همه چیز به درستی پیکربندی شده باشد. برای کمک به شما در این مورد ، ما برخی از بررسی های خودکار را انجام می دهیم. لطفا برای اطلاعات بیشتر به مستندات مرتبط مراجعه کنید.",
"All checks passed." : "تمامی موارد با موفقیت چک شدند.",
@@ -470,39 +306,7 @@
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "This community release of Nextcloud is unsupported and instant notifications are unavailable.",
"Use a second factor besides your password to increase security for your account." : "برای افزایش امنیت حساب کاربری خود ، از یک عامل دوم علاوه بر رمز عبور خود استفاده کنید.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.",
- "Speech-To-Text" : "Speech-To-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text can be implemented by different apps. Here you can set which app should be used.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "None of your currently installed apps provide Speech-To-Text functionality",
- "None of your currently installed apps provide Text processing functionality" : "None of your currently installed apps provide Text processing functionality",
- "Set default expiration date for shares" : "تاریخ انقضا پیش فرض را برای اشتراک گذاری تعیین کنید",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Allow username autocompletion in share dialog and allow access to the system address book",
- "Your biography" : "بیوگرافی شما",
- "You are using <strong>{usage}</strong>" : "فضای مورد استفاده: <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "شما در حال استفادهٔ <strong>{usage}</strong> از <strong>{totalSpace}</strong> (<strong>{usageRelative}٪</strong>) فضا هستید",
- "Set user manager" : "Set user manager",
- "Username will be autogenerated" : "Username will be autogenerated",
- "Username (required)" : "Username (required)",
- "New user" : "کاربر جدید",
- "Groups (required)" : "Groups (required)",
- "Set user groups" : "Set user groups",
- "Administered groups" : "Administered groups",
- "Set user as admin for …" : "Set user as admin for …",
- "Set user quota" : "Set user quota",
- "Add new user" : "Add new user",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} user …","{userCount} users …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} user","{userCount} users"],
- "Loading users …" : "Loading users …",
- "Username" : "نام کاربری",
- "User backend" : "پشتیبان کاربر",
- "User actions" : "User actions",
- "Add user to group" : "Add user to group",
- "Server error while trying to add WebAuthn device" : "Server error while trying to add WebAuthn device",
- "Name your device" : "Name your device",
- "Active accounts" : "حساب‌های فعال",
- "Follow us on Twitter" : "ما را در توییتر دنبال کنید"
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "برای اجرای این بررسی، باید مطمئن شوید که وب‌سرور شما می‌تواند به خودش متصل شود. بنابراین باید بتواند حداقل یکی از `trusted_domains` یا `overwrite.cli.url` خود را حل و به آن متصل شود. این خطا ممکن است نتیجه عدم تطابق DNS سمت سرور یا قانون فایروال خروجی باشد.",
+ "Set default expiration date for shares" : "تاریخ انقضا پیش فرض را برای اشتراک گذاری تعیین کنید"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/fi.js b/apps/settings/l10n/fi.js
index e246392f9ce..b38508457cb 100644
--- a/apps/settings/l10n/fi.js
+++ b/apps/settings/l10n/fi.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Internet connectivity" : "Internet-yhdistettävyys",
"Disabled" : "Pois käytöstä",
"The old server-side-encryption format is enabled. We recommend disabling this." : "Vanha palvelinpuolen salausmenetelmä on käytössä. Suosittelemme sen ottamista pois käytöstä.",
+ "Logging level" : "Lokitustaso",
"Maintenance window start" : "Huoltoikkunan alku",
"Memcache" : "Memcache",
"You are not using MySQL" : "Et käytä MySQL:ää",
@@ -209,70 +210,17 @@ OC.L10N.register(
"No apps found for your version" : "Sovelluksia ei löytynyt versiollesi",
"_%n app has an update available_::_%n apps have an update available_" : ["%n sovelluksella on päivitys saatavilla","%n sovelluksella on päivitys saatavilla"],
"_Update_::_Update all_" : ["Päivitä","Päivitä kaikki"],
+ "Failed to load groups" : "Ryhmien lataaminen epäonnistui",
"Failed to create group" : "Ryhmän luonti epäonnistui",
"Creating group…" : "Luodaan ryhmä…",
"Create group" : "Luo ryhmä",
"Group name" : "Ryhmän nimi",
"Please enter a valid group name" : "Kirjoita kelvollinen ryhmän nimi",
+ "Search groups…" : "Etsi ryhmiä…",
"Loading groups…" : "Ladataan ryhmiä…",
"Nothing to show" : "Ei mitään näytettävää",
"Loading" : "Ladataan",
"Fetching the latest news…" : "Noudetaan viimeisimpiä uutisia…",
- "Carousel" : "Karuselli",
- "Previous slide" : "Edellinen dia",
- "Next slide" : "Seuraava dia",
- "Choose slide to display" : "Valitse näytettävä dia",
- "{index} of {total}" : "{index}/{total}",
- "Daemon" : "Taustapalvelu",
- "Type" : "Tyyppi",
- "Display Name" : "Näyttönimi",
- "Learn more" : "Opi lisää",
- "Confirm" : "Vahvista",
- "Cancel" : "Peru",
- "Description" : "Kuvaus",
- "View in store" : "Näytä kaupassa",
- "Visit website" : "Käy verkkosivustolla",
- "Admin documentation" : "Ylläpitäjän ohjeistus",
- "Developer documentation" : "Kehittäjädokumentaatio",
- "Details" : "Yksityiskohdat",
- "All" : "Kaikki",
- "Limit app usage to groups" : "Rajoita sovelluskäyttö ryhmiin",
- "No results" : "Ei tuloksia",
- "Update to {version}" : "Päivitä versioon {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tämä sovellus ei ole määritellyt minimi Nextcloud-versiota. Tämä tulee olemaan ongelma tulevaisuudessa.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tämä sovellus ei ole määritellyt maksimi Nextcloud-versiota. Tämä tulee olemaan ongelma tulevaisuudessa.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Tätä sovellusta ei voi asentaa, koska seuraavat riippuvuudet eivät täyty:",
- "Author" : "Tekijä",
- "Categories" : "Luokat",
- "Resources" : "Resurssit",
- "Documentation" : "Dokumentaatio",
- "Report a bug" : "Ilmoita viasta",
- "Request feature" : "Ehdota ominaisuutta",
- "Ask questions or discuss" : "Esitä kysymyksiä tai keskustele",
- "Rate the app" : "Arvostele sovellus",
- "Rate" : "Arvostele",
- "Changelog" : "Muutosloki",
- "Google Chrome for Android" : "Google Chrome Android-laitteelle",
- "{productName} iOS app" : "{productName}in iOS-sovellus",
- "{productName} Android app" : "{productName}in Android-sovellus",
- "{productName} Talk for iOS" : "{productName} Talk iOS:lle",
- "{productName} Talk for Android" : "{productName} Talk Androidille",
- "This session" : "Tämä istunto",
- "Device name" : "Laitteen nimi",
- "Save new name" : "Tallenna uusi nimi",
- "Marked for remote wipe" : "Merkitty etätyhjennettäväksi",
- "Device settings" : "Laiteasetukset",
- "Allow filesystem access" : "Salli pääsy tiedostojärjestelmään",
- "Rename" : "Nimeä uudelleen",
- "Revoke" : "Peru oikeus",
- "Wipe device" : "Tyhjennä laite",
- "Device" : "Laite",
- "Last activity" : "Viimeksi käytetty",
- "Devices & sessions" : "Laitteet ja istunnot",
- "Web, desktop and mobile clients currently logged in to your account." : "Verkko-, työpöytä- ja mobiililaitteet, jotka ovat parhaillaan kirjautuneet tilillesi.",
- "Error while creating device token" : "Virhe laitepolettia luotaessa",
- "App name" : "Sovelluksen nimi",
- "Create new app password" : "Luo uusi sovellussalasana",
"App password copied!" : "Sovellussalasana kopioitu!",
"Copy app password" : "Kopioi sovellussalasana",
"Login name copied!" : "Kirjautumisnimi kopioitu!",
@@ -286,9 +234,11 @@ OC.L10N.register(
"Use system cron service to call the cron.php file every 5 minutes." : "Käytä järjestelmän cron-palvelua cron.php-skriptin suorittamiseen 5 minuutin välein",
"Last job execution ran {time}. Something seems wrong." : "Viimeisimmän työn suoritus {time}. Jokin vaikuttaa olevan pielessä.",
"Last job ran {relativeTime}." : "Viimeisin työ ajettiin {relativeTime}.",
+ "AJAX" : "AJAX",
"Cron (Recommended)" : "Cron (suositeltu)",
"Unable to update profile default setting" : "Profiilin oletusasetuksen päivittäminen ei onnistunut",
"Profile" : "Profiili",
+ "Password confirmation is required" : "Salasanavahvistus vaaditaan",
"Server-side encryption" : "Palvelinpään salaus",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Palvelimelle ladatut tiedostot voidaan salata. Salaus aiheuttaa muun muassa palvelimen suorituskyvyn laskua, joten ota salaus käyttöön vain tarvittaessa.",
"Enable server-side encryption" : "Käytä palvelinpään salausta",
@@ -301,149 +251,13 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Ota huomioon, että salaus kasvattaa aina tiedostojen kokoa.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Säännöllisten varmuuskopioiden ottaminen on erittäin tärkeää. Jos olet ottanut salauksen käyttöön, huolehdi salausavainten varmuuskopioinnista.",
"This is the final warning: Do you really want to enable encryption?" : "Tämä on viimeinen varoitus: haluatko varmasti ottaa salauksen käyttöön?",
- "Failed to remove group \"{group}\"" : "Ryhmän \"{group}\" poistaminen epäonnistui",
+ "Failed to delete group \"{group}\"" : "Ryhmän \"{group}\" poistaminen epäonnistui",
"Please confirm the group removal" : "Vahvista ryhmän poistaminen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Olet aikeissa poistaa ryhmän \"{group}\". Tilejä EI poisteta.",
+ "Cancel" : "Peru",
+ "Confirm" : "Vahvista",
"Submit" : "Lähetä",
"Rename group" : "Nimeä ryhmä uudelleen",
- "Remove group" : "Poista ryhmä",
- "Current password" : "Nykyinen salasana",
- "New password" : "Uusi salasana",
- "Change password" : "Vaihda salasana",
- "Choose your profile picture" : "Valitse profiilikuva",
- "Please select a valid png or jpg file" : "Valitse kelvollinen png- tai jpg-tiedosto",
- "Error setting profile picture" : "Virhe profiilikuvaa asettaessa",
- "Error cropping profile picture" : "Virhe profiilikuvaa rajatessa",
- "Error saving profile picture" : "Virhe profiilikuvaa tallentaessa",
- "Error removing profile picture" : "Virhe profiilikuvaa poistaessa",
- "Your profile picture" : "Profiilikuvasi",
- "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",
- "Set as profile picture" : "Aseta profiilikuvaksi",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Ota huomioon, että profiilikuvasi päivittyminen kaikkialle saattaa kestää jopa 24 tuntia.",
- "Unable to update date of birth" : "Syntymäpäivää ei voitu päivittää",
- "Enter your date of birth" : "Kirjoita syntymäpäiväsi",
- "You are a member of the following groups:" : "Olet seuraavien ryhmien jäsen:",
- "Your full name" : "Koko nimesi",
- "Email options" : "Sähköpostiasetukset",
- "Remove primary email" : "Poista ensisijainen sähköpostiosoite",
- "Delete email" : "Poista sähköposti",
- "This address is not confirmed" : "Tätä osoitetta ei ole vahvistettu",
- "Unset as primary email" : "Poista ensisijaisesta sähköpostista",
- "Set as primary email" : "Aseta ensisijaiseksi sähköpostiosoitteeksi",
- "Additional email address {index}" : "Lisäsähköpostiosoite {index}",
- "Unable to delete primary email address" : "Ensisijaista sähköpostiosoitetta ei voitu poistaa",
- "Unable to update primary email address" : "Ensisijaista sähköpostiosoitetta ei voitu päivittää",
- "Primary email for password reset and notifications" : "Ensisijainen sähköposti salasanan nollaamista ja ilmoituksia varten",
- "No email address set" : "Sähköpostiosoitetta ei ole asetettu",
- "Your headline" : "Otsikkosi",
- "Unable to update language" : "Kieltä ei voi päivittää",
- "Languages" : "Kielet",
- "Help translate" : "Auta kääntämisessä",
- "No language set" : "Kieltä ei ole asetettu",
- "Unable to update locale" : "Maa-asetuston päivittäminen ei onnistu",
- "Locales" : "Aluekohtaiset asetukset",
- "Week starts on {firstDayOfWeek}" : "Viikon ensimmäinen päivä on {firstDayOfWeek}",
- "No locale set" : "Maa-asetustoa ei ole asetettu",
- "Your city" : "Kaupunkisi",
- "Your organisation" : "Organisaatiosi",
- "Your phone number" : "Puhelinnumerosi",
- "Edit your Profile visibility" : "Muokkaa profiilisi näkyvyyttä",
- "Enable profile" : "Ota profiili käyttöön",
- "Your role" : "Roolisi",
- "Your website" : "Verkkosivustosi",
- "Invalid value" : "Virheellinen arvo",
- "Add additional email" : "Lisää toissijainen sähköpostiosoite",
- "Add" : "Lisää",
- "Create" : "Luo",
- "Change" : "Muuta",
- "Delete" : "Poista",
- "Reshare" : "Jaa edelleen",
- "Default language" : "Oletuskieli",
- "Common languages" : "Yleiset kielet",
- "Other languages" : "Muut kielet",
- "No accounts" : "Ei tilejä",
- "Loading accounts …" : "Ladataan tilejä…",
- "Account name will be autogenerated" : "Tilin nimi luodaan automaattisesti",
- "Account name (required)" : "Tilin nimi (pakollinen)",
- "New account" : "Uusi tili",
- "Display name" : "Näyttönimi",
- "Either password or email is required" : "Joko salasana tai sähköpostiosoite vaaditaan",
- "Password (required)" : "Salasana (pakollinen)",
- "Email (required)" : "Sähköposti (pakollinen)",
- "Email" : "Sähköpostiosoite",
- "Quota" : "Kiintiö",
- "Set account quota" : "Aseta tilin kiintiö",
- "Language" : "Kieli",
- "Set default language" : "Aseta oletuskieli",
- "Add new account" : "Lisää uusi tili",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} tili…","{userCount} tiliä…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} tili","{userCount} tiliä"],
- "Scroll to load more rows" : "Vieritä ladataksesi enemmän rivejä",
- "Avatar" : "Profiilikuva",
- "Account name" : "Tilin nimi",
- "Group admin for" : "Ryhmäylläpitäjä ryhmille",
- "Storage location" : "Tallennustilan sijainti",
- "Last login" : "Viimeisin kirjautuminen",
- "Account actions" : "Tilin toiminnot",
- "{size} used" : "{size} käytetty",
- "Delete account" : "Poista tili",
- "Disable account" : "Poista tili käytöstä",
- "Enable account" : "Ota tili käyttöön",
- "Resend welcome email" : "Lähetä uudelleen tervetuloviesti",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Laitteen kadotessa tai organisaatiosta poistuessa voidaan käyttäjälle {userid} Nextcloudiin yhdistetyistä laitteista pyyhkiä tiedot. Toimii vain laitteiden ollessa yhteydessä Internetiin.",
- "Remote wipe of devices" : "Laitteiden etätyhjennys",
- "Wipe {userid}'s devices" : "Tyhjennä käyttäjän {userid} laitteet",
- "Wiped {userid}'s devices" : "Tyhjennetty käyttäjän {userid} laitteet",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Poista täysin käyttäjän {userid} tili mukaan lukien henkilökohtaiset tiedostot, sovellusten tiedot jne.",
- "Account deletion" : "Tilin poistaminen",
- "Delete {userid}'s account" : "Poista käyttäjän {userid} tili",
- "Display name was successfully changed" : "Näyttönimi vaihdettiin onnistuneesti",
- "Password was successfully changed" : "Salasana vaihdettiin onnistuneesti",
- "Email was successfully changed" : "Sähköpostiosoite vaihdettiin onnistuneesti",
- "Welcome mail sent!" : "Tervetuloviesti lähetetty!",
- "Loading account …" : "Ladataan tiliä…",
- "Change display name" : "Vaihda näyttönimi",
- "Set new password" : "Aseta uusi salasana:",
- "Set new email address" : "Aseta uusi sähköpostiosoite",
- "Add account to group" : "Lisää tili ryhmään",
- "Select account quota" : "Valitse tilin kiintiö",
- "Set the language" : "Aseta kieli",
- "Done" : "Valmis",
- "Edit" : "Muokkaa",
- "Account management settings" : "Tilihallinnan asetukset",
- "Visibility" : "Näkyvyys",
- "Show language" : "Näytä kieli",
- "Show storage path" : "Näytä tallennustilan polku",
- "Show last login" : "Näytä viimeisin sisäänkirjautuminen",
- "Sorting" : "Lajittelu",
- "Send email" : "Lähetä sähköpostiviesti",
- "Send welcome email to new accounts" : "Lähetä Tervetuloa-sähköposti uusille tileille",
- "Defaults" : "Oletukset",
- "Default quota" : "Oletuskiintiö",
- "Select default quota" : "Valitse oletuskiintiö",
- "Server error while trying to complete WebAuthn device registration" : "Palvelinvirhe kun yritettiin suorittaa WebAuthn-laitteen rekisteröintiä",
- "Passwordless authentication requires a secure connection." : "Tunnistautuminen ilman salasanaa vaatii salatun yhteyden.",
- "Add WebAuthn device" : "Lisää WebAuthn-laite",
- "Please authorize your WebAuthn device." : "Valtuuta WebAuthn-laitteesi.",
- "Adding your device …" : "Lisätään laitettasi…",
- "Unnamed device" : "Nimetön laite",
- "Passwordless Authentication" : "Tunnistautuminen ilman salasanaa",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Aseta tilillesi tunnistautuminen ilman salasanaa FIDO2-standardia seuraten.",
- "No devices configured." : "Laitteita ei ole määritetty.",
- "The following devices are configured for your account:" : "Seuraavat laitteet on määritetty tilillesi:",
- "Your browser does not support WebAuthn." : "Selaimesi ei tue WebAuthn-standardia.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Ylläpitäjänä voit hienosäätää jakamista. Katso dokumentaatiosta lisätietoa.",
- "Loading app list" : "Ladataan sovellusluetteloa",
- "Loading categories" : "Ladataan luokkia",
- "Developer documentation ↗" : "Kehittäjien dokumentaatio ↗",
- "Version {version}, {license}-licensed" : "Versio {version}, lisenssi {license}",
- "Admins" : "Ylläpitäjät",
- "Account group: {group}" : "Tiliryhmä: {group}",
- "Account management" : "Tilihallinta",
+ "Delete group" : "Poista ryhmä",
"Sending…" : "Lähetetään…",
"Email sent" : "Sähköposti lähetetty",
"Location" : "Sijainti",
@@ -452,6 +266,7 @@ OC.L10N.register(
"Date of birth" : "Syntymäpäivä",
"Full name" : "Koko nimi",
"Additional email" : "Toissijainen sähköpostiosoite",
+ "Email" : "Sähköpostiosoite",
"Fediverse (e.g. Mastodon)" : "Fediverse (esim. Mastodon)",
"Headline" : "Otsikko",
"Organisation" : "Organisaatio",
@@ -460,7 +275,9 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (aiemmin Twitter)",
"Website" : "Verkkosivusto",
"Profile visibility" : "Profiilin näkyvyys",
+ "Language" : "Kieli",
"Locale" : "Aluekohtainen asetus",
+ "First day of week" : "Viikon ensimmäinen päivä",
"Your apps" : "Sovelluksesi",
"Active apps" : "Aktiiviset sovellukset",
"Disabled apps" : "Käytöstä poistetut sovellukset",
@@ -471,11 +288,13 @@ OC.L10N.register(
"Show to everyone" : "Näytä kaikille",
"Show to logged in accounts only" : "Näytä vain sisäänkirjautuneille tileille",
"Hide" : "Piilota",
+ "Update to {version}" : "Päivitä versioon {version}",
"Download and enable" : "Lataa ja ota käyttöön",
"Disable" : "Poista käytöstä",
"Allow untested app" : "Salli testaamaton sovellus",
"The app will be downloaded from the App Store" : "Sovellus ladataan sovelluskaupasta",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Sovellusta ei ole merkattu yhteensopivaksi Nextcloud-versiosi kanssa. Voit kuitenkin jatkaa ja asentaa sovelluksen. Huomioi, että sovellus ei välttämättä toimi odotetusti.",
+ "{size} used" : "{size} käytetty",
"Unknown" : "Tuntematon",
"Never" : "Ei koskaan",
"Could not register device: Network error" : "Laitetta ei voitu rekisteröidä: verkkovirhe",
@@ -491,8 +310,10 @@ OC.L10N.register(
"Error while updating device token name" : "Virhe laitepoletin nimeä päivittäessä",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Verkostasi tehtiin liian monta pyyntöä. Yritä myöhemmin uudelleen tai ole yhteydessä ylläpitäjään, jos tämä on mielestäsi virhe.",
"Error" : "Virhe",
+ "Default quota" : "Oletuskiintiö",
"Account documentation" : "Tilin dokumentaatio",
"Administration documentation" : "Ylläpidon dokumentaatio",
+ "Documentation" : "Dokumentaatio",
"Forum" : "Keskustelupalsta",
"General documentation" : "Yleinen dokumentaatio",
"Legal notice" : "Lainopillinen huomautus",
@@ -512,6 +333,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP-salasana",
"Save" : "Tallenna",
"Test and verify email settings" : "Testaa ja vahvista sähköpostiasetukset",
+ "Send email" : "Lähetä sähköpostiviesti",
"Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Turvallisuuden ja suorituskyvyn vuoksi on tärkeää, että palvelimen asetukset ovat määritetty oikein. Apuna on joitain automaattisia tarkistuksia. Lue lisätietoja linkitetystä dokumentaatiosta.",
"All checks passed." : "Läpäistiin kaikki tarkistukset.",
@@ -529,33 +351,7 @@ OC.L10N.register(
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Tätä yhteisöjulkaisua Nextcloudista ei tueta, ja pikailmoitukset eivät ole saatavilla.",
"Use a second factor besides your password to increase security for your account." : "Käytä toista vaihetta salasanasi lisäksi parantaaksesi tilisi tietoturvaa.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Jos yhdistät kolmannen osapuolen ohjelmia Nextcloudiin, määritä niille sovellussalasanat ennen kaksiosaisen todentamismenetelmän käyttöönottoa.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Tietokannasta puuttuu indeksejä. Suuriin tauluihin indeksien lisääminen saattaa kestää kauan, ja sen vuoksi indeksejä ei lisätty automaattisesti. Suorita \"occ db:add-missing-indices\" lisätäksesi puuttuvat indeksit manuaalisesti samalla, kun instanssi pysyy käynnissä. Kun indeksit on lisätty, kyselyt kyseisiin tauluihin ovat yleensä huomattavasti aiempaa nopeampia.",
"File locking" : "Tiedostolukitus",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB:n versio \"%s\" on käytössä. Nextcloud 21 ja uudemmat eivät tue tätä versiota, vaatimus on MariaDB:n versio 10.2 tai uudempi.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL:n versio \"%s\" on käytössä. Nextcloud 21 ja uudemmat eivät tue tätä versiota, vaatimus on MySQL:n versio 8.0 tai MariaDB:n versio 10.2 tai uudempi.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL:n versio \"%s\" on käytössä. Nextcloud 21 ja uudemmat eivät tue tätä versiota, vaatimus on PostgreSQL:n versio 9.6 tai uudempi.",
- "Speech-To-Text" : "Puheesta tekstiksi",
- "Set default expiration date for shares" : "Aseta oletusarvoinen vanhenemispäivä jaoille",
- "Your biography" : "Sinun elämäkertasi",
- "You are using <strong>{usage}</strong>" : "Käytössäsi on <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Käytössäsi on <strong>{usage}</strong>/<strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Username will be autogenerated" : "Käyttäjänimi luodaan automaattisesti",
- "Username (required)" : "Käyttäjänimi (pakollinen)",
- "New user" : "Uusi käyttäjä",
- "Groups (required)" : "Ryhmät (pakollinen)",
- "Set user groups" : "Aseta käyttäjäryhmät",
- "Set user quota" : "Aseta käyttäjäkiintiö",
- "Add new user" : "Lisää uusi käyttäjä",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} käyttäjä…","{userCount} käyttäjää…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} käyttäjä","{userCount} käyttäjää"],
- "Loading users …" : "Ladataan käyttäjiä…",
- "Username" : "Käyttäjätunnus",
- "User backend" : "Käyttäjätaustaosa",
- "User actions" : "Käyttäjätoiminnot",
- "Add user to group" : "Lisää käyttäjä ryhmään",
- "Server error while trying to add WebAuthn device" : "Palvelinvirhe kun yritettiin lisätä WebAuthn-laitetta",
- "Name your device" : "Nimeä laitteesi",
- "Active accounts" : "Aktiiviset tilit",
- "Follow us on Twitter" : "Seuraa meitä Twitterissä"
+ "Set default expiration date for shares" : "Aseta oletusarvoinen vanhenemispäivä jaoille"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/fi.json b/apps/settings/l10n/fi.json
index f09740ab075..d7e70cdca8e 100644
--- a/apps/settings/l10n/fi.json
+++ b/apps/settings/l10n/fi.json
@@ -120,6 +120,7 @@
"Internet connectivity" : "Internet-yhdistettävyys",
"Disabled" : "Pois käytöstä",
"The old server-side-encryption format is enabled. We recommend disabling this." : "Vanha palvelinpuolen salausmenetelmä on käytössä. Suosittelemme sen ottamista pois käytöstä.",
+ "Logging level" : "Lokitustaso",
"Maintenance window start" : "Huoltoikkunan alku",
"Memcache" : "Memcache",
"You are not using MySQL" : "Et käytä MySQL:ää",
@@ -207,70 +208,17 @@
"No apps found for your version" : "Sovelluksia ei löytynyt versiollesi",
"_%n app has an update available_::_%n apps have an update available_" : ["%n sovelluksella on päivitys saatavilla","%n sovelluksella on päivitys saatavilla"],
"_Update_::_Update all_" : ["Päivitä","Päivitä kaikki"],
+ "Failed to load groups" : "Ryhmien lataaminen epäonnistui",
"Failed to create group" : "Ryhmän luonti epäonnistui",
"Creating group…" : "Luodaan ryhmä…",
"Create group" : "Luo ryhmä",
"Group name" : "Ryhmän nimi",
"Please enter a valid group name" : "Kirjoita kelvollinen ryhmän nimi",
+ "Search groups…" : "Etsi ryhmiä…",
"Loading groups…" : "Ladataan ryhmiä…",
"Nothing to show" : "Ei mitään näytettävää",
"Loading" : "Ladataan",
"Fetching the latest news…" : "Noudetaan viimeisimpiä uutisia…",
- "Carousel" : "Karuselli",
- "Previous slide" : "Edellinen dia",
- "Next slide" : "Seuraava dia",
- "Choose slide to display" : "Valitse näytettävä dia",
- "{index} of {total}" : "{index}/{total}",
- "Daemon" : "Taustapalvelu",
- "Type" : "Tyyppi",
- "Display Name" : "Näyttönimi",
- "Learn more" : "Opi lisää",
- "Confirm" : "Vahvista",
- "Cancel" : "Peru",
- "Description" : "Kuvaus",
- "View in store" : "Näytä kaupassa",
- "Visit website" : "Käy verkkosivustolla",
- "Admin documentation" : "Ylläpitäjän ohjeistus",
- "Developer documentation" : "Kehittäjädokumentaatio",
- "Details" : "Yksityiskohdat",
- "All" : "Kaikki",
- "Limit app usage to groups" : "Rajoita sovelluskäyttö ryhmiin",
- "No results" : "Ei tuloksia",
- "Update to {version}" : "Päivitä versioon {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Tämä sovellus ei ole määritellyt minimi Nextcloud-versiota. Tämä tulee olemaan ongelma tulevaisuudessa.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tämä sovellus ei ole määritellyt maksimi Nextcloud-versiota. Tämä tulee olemaan ongelma tulevaisuudessa.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Tätä sovellusta ei voi asentaa, koska seuraavat riippuvuudet eivät täyty:",
- "Author" : "Tekijä",
- "Categories" : "Luokat",
- "Resources" : "Resurssit",
- "Documentation" : "Dokumentaatio",
- "Report a bug" : "Ilmoita viasta",
- "Request feature" : "Ehdota ominaisuutta",
- "Ask questions or discuss" : "Esitä kysymyksiä tai keskustele",
- "Rate the app" : "Arvostele sovellus",
- "Rate" : "Arvostele",
- "Changelog" : "Muutosloki",
- "Google Chrome for Android" : "Google Chrome Android-laitteelle",
- "{productName} iOS app" : "{productName}in iOS-sovellus",
- "{productName} Android app" : "{productName}in Android-sovellus",
- "{productName} Talk for iOS" : "{productName} Talk iOS:lle",
- "{productName} Talk for Android" : "{productName} Talk Androidille",
- "This session" : "Tämä istunto",
- "Device name" : "Laitteen nimi",
- "Save new name" : "Tallenna uusi nimi",
- "Marked for remote wipe" : "Merkitty etätyhjennettäväksi",
- "Device settings" : "Laiteasetukset",
- "Allow filesystem access" : "Salli pääsy tiedostojärjestelmään",
- "Rename" : "Nimeä uudelleen",
- "Revoke" : "Peru oikeus",
- "Wipe device" : "Tyhjennä laite",
- "Device" : "Laite",
- "Last activity" : "Viimeksi käytetty",
- "Devices & sessions" : "Laitteet ja istunnot",
- "Web, desktop and mobile clients currently logged in to your account." : "Verkko-, työpöytä- ja mobiililaitteet, jotka ovat parhaillaan kirjautuneet tilillesi.",
- "Error while creating device token" : "Virhe laitepolettia luotaessa",
- "App name" : "Sovelluksen nimi",
- "Create new app password" : "Luo uusi sovellussalasana",
"App password copied!" : "Sovellussalasana kopioitu!",
"Copy app password" : "Kopioi sovellussalasana",
"Login name copied!" : "Kirjautumisnimi kopioitu!",
@@ -284,9 +232,11 @@
"Use system cron service to call the cron.php file every 5 minutes." : "Käytä järjestelmän cron-palvelua cron.php-skriptin suorittamiseen 5 minuutin välein",
"Last job execution ran {time}. Something seems wrong." : "Viimeisimmän työn suoritus {time}. Jokin vaikuttaa olevan pielessä.",
"Last job ran {relativeTime}." : "Viimeisin työ ajettiin {relativeTime}.",
+ "AJAX" : "AJAX",
"Cron (Recommended)" : "Cron (suositeltu)",
"Unable to update profile default setting" : "Profiilin oletusasetuksen päivittäminen ei onnistunut",
"Profile" : "Profiili",
+ "Password confirmation is required" : "Salasanavahvistus vaaditaan",
"Server-side encryption" : "Palvelinpään salaus",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Palvelimelle ladatut tiedostot voidaan salata. Salaus aiheuttaa muun muassa palvelimen suorituskyvyn laskua, joten ota salaus käyttöön vain tarvittaessa.",
"Enable server-side encryption" : "Käytä palvelinpään salausta",
@@ -299,149 +249,13 @@
"Be aware that encryption always increases the file size." : "Ota huomioon, että salaus kasvattaa aina tiedostojen kokoa.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Säännöllisten varmuuskopioiden ottaminen on erittäin tärkeää. Jos olet ottanut salauksen käyttöön, huolehdi salausavainten varmuuskopioinnista.",
"This is the final warning: Do you really want to enable encryption?" : "Tämä on viimeinen varoitus: haluatko varmasti ottaa salauksen käyttöön?",
- "Failed to remove group \"{group}\"" : "Ryhmän \"{group}\" poistaminen epäonnistui",
+ "Failed to delete group \"{group}\"" : "Ryhmän \"{group}\" poistaminen epäonnistui",
"Please confirm the group removal" : "Vahvista ryhmän poistaminen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Olet aikeissa poistaa ryhmän \"{group}\". Tilejä EI poisteta.",
+ "Cancel" : "Peru",
+ "Confirm" : "Vahvista",
"Submit" : "Lähetä",
"Rename group" : "Nimeä ryhmä uudelleen",
- "Remove group" : "Poista ryhmä",
- "Current password" : "Nykyinen salasana",
- "New password" : "Uusi salasana",
- "Change password" : "Vaihda salasana",
- "Choose your profile picture" : "Valitse profiilikuva",
- "Please select a valid png or jpg file" : "Valitse kelvollinen png- tai jpg-tiedosto",
- "Error setting profile picture" : "Virhe profiilikuvaa asettaessa",
- "Error cropping profile picture" : "Virhe profiilikuvaa rajatessa",
- "Error saving profile picture" : "Virhe profiilikuvaa tallentaessa",
- "Error removing profile picture" : "Virhe profiilikuvaa poistaessa",
- "Your profile picture" : "Profiilikuvasi",
- "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",
- "Set as profile picture" : "Aseta profiilikuvaksi",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Ota huomioon, että profiilikuvasi päivittyminen kaikkialle saattaa kestää jopa 24 tuntia.",
- "Unable to update date of birth" : "Syntymäpäivää ei voitu päivittää",
- "Enter your date of birth" : "Kirjoita syntymäpäiväsi",
- "You are a member of the following groups:" : "Olet seuraavien ryhmien jäsen:",
- "Your full name" : "Koko nimesi",
- "Email options" : "Sähköpostiasetukset",
- "Remove primary email" : "Poista ensisijainen sähköpostiosoite",
- "Delete email" : "Poista sähköposti",
- "This address is not confirmed" : "Tätä osoitetta ei ole vahvistettu",
- "Unset as primary email" : "Poista ensisijaisesta sähköpostista",
- "Set as primary email" : "Aseta ensisijaiseksi sähköpostiosoitteeksi",
- "Additional email address {index}" : "Lisäsähköpostiosoite {index}",
- "Unable to delete primary email address" : "Ensisijaista sähköpostiosoitetta ei voitu poistaa",
- "Unable to update primary email address" : "Ensisijaista sähköpostiosoitetta ei voitu päivittää",
- "Primary email for password reset and notifications" : "Ensisijainen sähköposti salasanan nollaamista ja ilmoituksia varten",
- "No email address set" : "Sähköpostiosoitetta ei ole asetettu",
- "Your headline" : "Otsikkosi",
- "Unable to update language" : "Kieltä ei voi päivittää",
- "Languages" : "Kielet",
- "Help translate" : "Auta kääntämisessä",
- "No language set" : "Kieltä ei ole asetettu",
- "Unable to update locale" : "Maa-asetuston päivittäminen ei onnistu",
- "Locales" : "Aluekohtaiset asetukset",
- "Week starts on {firstDayOfWeek}" : "Viikon ensimmäinen päivä on {firstDayOfWeek}",
- "No locale set" : "Maa-asetustoa ei ole asetettu",
- "Your city" : "Kaupunkisi",
- "Your organisation" : "Organisaatiosi",
- "Your phone number" : "Puhelinnumerosi",
- "Edit your Profile visibility" : "Muokkaa profiilisi näkyvyyttä",
- "Enable profile" : "Ota profiili käyttöön",
- "Your role" : "Roolisi",
- "Your website" : "Verkkosivustosi",
- "Invalid value" : "Virheellinen arvo",
- "Add additional email" : "Lisää toissijainen sähköpostiosoite",
- "Add" : "Lisää",
- "Create" : "Luo",
- "Change" : "Muuta",
- "Delete" : "Poista",
- "Reshare" : "Jaa edelleen",
- "Default language" : "Oletuskieli",
- "Common languages" : "Yleiset kielet",
- "Other languages" : "Muut kielet",
- "No accounts" : "Ei tilejä",
- "Loading accounts …" : "Ladataan tilejä…",
- "Account name will be autogenerated" : "Tilin nimi luodaan automaattisesti",
- "Account name (required)" : "Tilin nimi (pakollinen)",
- "New account" : "Uusi tili",
- "Display name" : "Näyttönimi",
- "Either password or email is required" : "Joko salasana tai sähköpostiosoite vaaditaan",
- "Password (required)" : "Salasana (pakollinen)",
- "Email (required)" : "Sähköposti (pakollinen)",
- "Email" : "Sähköpostiosoite",
- "Quota" : "Kiintiö",
- "Set account quota" : "Aseta tilin kiintiö",
- "Language" : "Kieli",
- "Set default language" : "Aseta oletuskieli",
- "Add new account" : "Lisää uusi tili",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} tili…","{userCount} tiliä…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} tili","{userCount} tiliä"],
- "Scroll to load more rows" : "Vieritä ladataksesi enemmän rivejä",
- "Avatar" : "Profiilikuva",
- "Account name" : "Tilin nimi",
- "Group admin for" : "Ryhmäylläpitäjä ryhmille",
- "Storage location" : "Tallennustilan sijainti",
- "Last login" : "Viimeisin kirjautuminen",
- "Account actions" : "Tilin toiminnot",
- "{size} used" : "{size} käytetty",
- "Delete account" : "Poista tili",
- "Disable account" : "Poista tili käytöstä",
- "Enable account" : "Ota tili käyttöön",
- "Resend welcome email" : "Lähetä uudelleen tervetuloviesti",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Laitteen kadotessa tai organisaatiosta poistuessa voidaan käyttäjälle {userid} Nextcloudiin yhdistetyistä laitteista pyyhkiä tiedot. Toimii vain laitteiden ollessa yhteydessä Internetiin.",
- "Remote wipe of devices" : "Laitteiden etätyhjennys",
- "Wipe {userid}'s devices" : "Tyhjennä käyttäjän {userid} laitteet",
- "Wiped {userid}'s devices" : "Tyhjennetty käyttäjän {userid} laitteet",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Poista täysin käyttäjän {userid} tili mukaan lukien henkilökohtaiset tiedostot, sovellusten tiedot jne.",
- "Account deletion" : "Tilin poistaminen",
- "Delete {userid}'s account" : "Poista käyttäjän {userid} tili",
- "Display name was successfully changed" : "Näyttönimi vaihdettiin onnistuneesti",
- "Password was successfully changed" : "Salasana vaihdettiin onnistuneesti",
- "Email was successfully changed" : "Sähköpostiosoite vaihdettiin onnistuneesti",
- "Welcome mail sent!" : "Tervetuloviesti lähetetty!",
- "Loading account …" : "Ladataan tiliä…",
- "Change display name" : "Vaihda näyttönimi",
- "Set new password" : "Aseta uusi salasana:",
- "Set new email address" : "Aseta uusi sähköpostiosoite",
- "Add account to group" : "Lisää tili ryhmään",
- "Select account quota" : "Valitse tilin kiintiö",
- "Set the language" : "Aseta kieli",
- "Done" : "Valmis",
- "Edit" : "Muokkaa",
- "Account management settings" : "Tilihallinnan asetukset",
- "Visibility" : "Näkyvyys",
- "Show language" : "Näytä kieli",
- "Show storage path" : "Näytä tallennustilan polku",
- "Show last login" : "Näytä viimeisin sisäänkirjautuminen",
- "Sorting" : "Lajittelu",
- "Send email" : "Lähetä sähköpostiviesti",
- "Send welcome email to new accounts" : "Lähetä Tervetuloa-sähköposti uusille tileille",
- "Defaults" : "Oletukset",
- "Default quota" : "Oletuskiintiö",
- "Select default quota" : "Valitse oletuskiintiö",
- "Server error while trying to complete WebAuthn device registration" : "Palvelinvirhe kun yritettiin suorittaa WebAuthn-laitteen rekisteröintiä",
- "Passwordless authentication requires a secure connection." : "Tunnistautuminen ilman salasanaa vaatii salatun yhteyden.",
- "Add WebAuthn device" : "Lisää WebAuthn-laite",
- "Please authorize your WebAuthn device." : "Valtuuta WebAuthn-laitteesi.",
- "Adding your device …" : "Lisätään laitettasi…",
- "Unnamed device" : "Nimetön laite",
- "Passwordless Authentication" : "Tunnistautuminen ilman salasanaa",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Aseta tilillesi tunnistautuminen ilman salasanaa FIDO2-standardia seuraten.",
- "No devices configured." : "Laitteita ei ole määritetty.",
- "The following devices are configured for your account:" : "Seuraavat laitteet on määritetty tilillesi:",
- "Your browser does not support WebAuthn." : "Selaimesi ei tue WebAuthn-standardia.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Ylläpitäjänä voit hienosäätää jakamista. Katso dokumentaatiosta lisätietoa.",
- "Loading app list" : "Ladataan sovellusluetteloa",
- "Loading categories" : "Ladataan luokkia",
- "Developer documentation ↗" : "Kehittäjien dokumentaatio ↗",
- "Version {version}, {license}-licensed" : "Versio {version}, lisenssi {license}",
- "Admins" : "Ylläpitäjät",
- "Account group: {group}" : "Tiliryhmä: {group}",
- "Account management" : "Tilihallinta",
+ "Delete group" : "Poista ryhmä",
"Sending…" : "Lähetetään…",
"Email sent" : "Sähköposti lähetetty",
"Location" : "Sijainti",
@@ -450,6 +264,7 @@
"Date of birth" : "Syntymäpäivä",
"Full name" : "Koko nimi",
"Additional email" : "Toissijainen sähköpostiosoite",
+ "Email" : "Sähköpostiosoite",
"Fediverse (e.g. Mastodon)" : "Fediverse (esim. Mastodon)",
"Headline" : "Otsikko",
"Organisation" : "Organisaatio",
@@ -458,7 +273,9 @@
"X (formerly Twitter)" : "X (aiemmin Twitter)",
"Website" : "Verkkosivusto",
"Profile visibility" : "Profiilin näkyvyys",
+ "Language" : "Kieli",
"Locale" : "Aluekohtainen asetus",
+ "First day of week" : "Viikon ensimmäinen päivä",
"Your apps" : "Sovelluksesi",
"Active apps" : "Aktiiviset sovellukset",
"Disabled apps" : "Käytöstä poistetut sovellukset",
@@ -469,11 +286,13 @@
"Show to everyone" : "Näytä kaikille",
"Show to logged in accounts only" : "Näytä vain sisäänkirjautuneille tileille",
"Hide" : "Piilota",
+ "Update to {version}" : "Päivitä versioon {version}",
"Download and enable" : "Lataa ja ota käyttöön",
"Disable" : "Poista käytöstä",
"Allow untested app" : "Salli testaamaton sovellus",
"The app will be downloaded from the App Store" : "Sovellus ladataan sovelluskaupasta",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Sovellusta ei ole merkattu yhteensopivaksi Nextcloud-versiosi kanssa. Voit kuitenkin jatkaa ja asentaa sovelluksen. Huomioi, että sovellus ei välttämättä toimi odotetusti.",
+ "{size} used" : "{size} käytetty",
"Unknown" : "Tuntematon",
"Never" : "Ei koskaan",
"Could not register device: Network error" : "Laitetta ei voitu rekisteröidä: verkkovirhe",
@@ -489,8 +308,10 @@
"Error while updating device token name" : "Virhe laitepoletin nimeä päivittäessä",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Verkostasi tehtiin liian monta pyyntöä. Yritä myöhemmin uudelleen tai ole yhteydessä ylläpitäjään, jos tämä on mielestäsi virhe.",
"Error" : "Virhe",
+ "Default quota" : "Oletuskiintiö",
"Account documentation" : "Tilin dokumentaatio",
"Administration documentation" : "Ylläpidon dokumentaatio",
+ "Documentation" : "Dokumentaatio",
"Forum" : "Keskustelupalsta",
"General documentation" : "Yleinen dokumentaatio",
"Legal notice" : "Lainopillinen huomautus",
@@ -510,6 +331,7 @@
"SMTP Password" : "SMTP-salasana",
"Save" : "Tallenna",
"Test and verify email settings" : "Testaa ja vahvista sähköpostiasetukset",
+ "Send email" : "Lähetä sähköpostiviesti",
"Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Turvallisuuden ja suorituskyvyn vuoksi on tärkeää, että palvelimen asetukset ovat määritetty oikein. Apuna on joitain automaattisia tarkistuksia. Lue lisätietoja linkitetystä dokumentaatiosta.",
"All checks passed." : "Läpäistiin kaikki tarkistukset.",
@@ -527,33 +349,7 @@
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Tätä yhteisöjulkaisua Nextcloudista ei tueta, ja pikailmoitukset eivät ole saatavilla.",
"Use a second factor besides your password to increase security for your account." : "Käytä toista vaihetta salasanasi lisäksi parantaaksesi tilisi tietoturvaa.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Jos yhdistät kolmannen osapuolen ohjelmia Nextcloudiin, määritä niille sovellussalasanat ennen kaksiosaisen todentamismenetelmän käyttöönottoa.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Tietokannasta puuttuu indeksejä. Suuriin tauluihin indeksien lisääminen saattaa kestää kauan, ja sen vuoksi indeksejä ei lisätty automaattisesti. Suorita \"occ db:add-missing-indices\" lisätäksesi puuttuvat indeksit manuaalisesti samalla, kun instanssi pysyy käynnissä. Kun indeksit on lisätty, kyselyt kyseisiin tauluihin ovat yleensä huomattavasti aiempaa nopeampia.",
"File locking" : "Tiedostolukitus",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB:n versio \"%s\" on käytössä. Nextcloud 21 ja uudemmat eivät tue tätä versiota, vaatimus on MariaDB:n versio 10.2 tai uudempi.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL:n versio \"%s\" on käytössä. Nextcloud 21 ja uudemmat eivät tue tätä versiota, vaatimus on MySQL:n versio 8.0 tai MariaDB:n versio 10.2 tai uudempi.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL:n versio \"%s\" on käytössä. Nextcloud 21 ja uudemmat eivät tue tätä versiota, vaatimus on PostgreSQL:n versio 9.6 tai uudempi.",
- "Speech-To-Text" : "Puheesta tekstiksi",
- "Set default expiration date for shares" : "Aseta oletusarvoinen vanhenemispäivä jaoille",
- "Your biography" : "Sinun elämäkertasi",
- "You are using <strong>{usage}</strong>" : "Käytössäsi on <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Käytössäsi on <strong>{usage}</strong>/<strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Username will be autogenerated" : "Käyttäjänimi luodaan automaattisesti",
- "Username (required)" : "Käyttäjänimi (pakollinen)",
- "New user" : "Uusi käyttäjä",
- "Groups (required)" : "Ryhmät (pakollinen)",
- "Set user groups" : "Aseta käyttäjäryhmät",
- "Set user quota" : "Aseta käyttäjäkiintiö",
- "Add new user" : "Lisää uusi käyttäjä",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} käyttäjä…","{userCount} käyttäjää…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} käyttäjä","{userCount} käyttäjää"],
- "Loading users …" : "Ladataan käyttäjiä…",
- "Username" : "Käyttäjätunnus",
- "User backend" : "Käyttäjätaustaosa",
- "User actions" : "Käyttäjätoiminnot",
- "Add user to group" : "Lisää käyttäjä ryhmään",
- "Server error while trying to add WebAuthn device" : "Palvelinvirhe kun yritettiin lisätä WebAuthn-laitetta",
- "Name your device" : "Nimeä laitteesi",
- "Active accounts" : "Aktiiviset tilit",
- "Follow us on Twitter" : "Seuraa meitä Twitterissä"
+ "Set default expiration date for shares" : "Aseta oletusarvoinen vanhenemispäivä jaoille"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/fo.js b/apps/settings/l10n/fo.js
deleted file mode 100644
index 15bbe97e590..00000000000
--- a/apps/settings/l10n/fo.js
+++ /dev/null
@@ -1,105 +0,0 @@
-OC.L10N.register(
- "settings",
- {
- "Saved" : "Goymt",
- "Email sent" : "Sendi t-post",
- "Private" : "Privat",
- "Unable to change password" : "Kundi ikki broyta loyniorðið",
- "Select a profile picture" : "Vel ein profil mynd",
- "Groups" : "Bólkar",
- "{actor} added you to group {group}" : "{actor} hevur koyrt teg í bólkin {group}",
- "You added {user} to group {group}" : "Tú hevur koyrt {user} í bólkin {group}",
- "{actor} added {user} to group {group}" : "{actor} koyrdi {user} í bólkin {group}",
- "An administrator added you to group {group}" : "Ein administrator koyrdi teg í bólkin {group}",
- "An administrator added {user} to group {group}" : "Ein administrator koyrdi {user} í bólkin {group}",
- "{actor} removed you from group {group}" : "{actor} hevur koyrt teg úr bólkin {group}",
- "You removed {user} from group {group}" : "Tú hevur koyrt {user} úr bólkin {group}",
- "{actor} removed {user} from group {group}" : "{actor} hevur koyrt {user} úr bólkin {group}",
- "An administrator removed you from group {group}" : "Ein administrator koyrdi teg úr bólkin {group}",
- "An administrator removed {user} from group {group}" : "Ein administrator koyrdi {user} úr bólkin {group}",
- "Your <strong>group memberships</strong> were modified" : "Tíni <strong>bólka limaskapir</strong>vóru broytt",
- "{actor} changed your password" : "{actor} broytti títt loyniorð",
- "You changed your password" : "Tú broytti títt loyniorð",
- "Your password was reset by an administrator" : "Títt loyniorð var nullstilla av einum administrator",
- "{actor} changed your email address" : "{actor} broytti tín t-post adressa",
- "You changed your email address" : "Tú broytti tín t-post adressa",
- "Your email address was changed by an administrator" : "Tín t-post adressa var broytt av einum administrator",
- "Security" : "Trygd",
- "Your <strong>password</strong> or <strong>email</strong> was modified" : "Títt <strong>loyniorð</strong>ella tín <strong>t-post</strong>var broytt",
- "Wrong password" : "Skeift loyniorð",
- "Authentication error" : "Samgildis feilur",
- "Invalid SMTP password." : "Ógildugt SMTP loyniorð",
- "Invalid mail address" : "Ógildug t-post adressa",
- "Settings saved" : "Stillingar eru goymd",
- "%1$s changed your password on %2$s." : "%1$sbroytti títt loyniorð á %2$s.",
- "Welcome aboard" : "Vælkomin umborð",
- "Welcome aboard %s" : "Vælkomin umborð %s",
- "Your username is: %s" : "Títt brúkaranavn er: %s",
- "Go to %s" : "Far til %s",
- "Personal" : "Persónligt",
- "Email server" : "T-post ambætara",
- "Delete" : "Strika",
- "Unlimited" : "Óavmarkað",
- "Save changes" : "Goym broytingar",
- "All" : "Øll",
- "Visit website" : "Vitja heimasíðu",
- "Rename" : "Nýnevn",
- "Revoke" : "strika",
- "Internet Explorer" : "Internet Explorer",
- "Edge" : "Edge",
- "Firefox" : "Firefox",
- "Google Chrome" : "Google Chrome",
- "Safari" : "Safari",
- "Google Chrome for Android" : "Google Chrome til Android",
- "iPhone" : "iPhone",
- "iPad" : "iPad",
- "App name" : "App navn",
- "Username" : "Brúkaranavn",
- "Password" : "Loyniorð",
- "Done" : "Gjørt",
- "Copied!" : "Kopiera!",
- "Copy" : "Kopi",
- "Cancel" : "strika",
- "{size} used" : "{size} brúkt",
- "New user" : "Nýggjur brúkari",
- "Email" : "T-post",
- "Your apps" : "Tínar appir",
- "Active apps" : "Virknar appir",
- "Disabled apps" : "Ógildaðar appir",
- "Admins" : "Administratorar",
- "Remove group" : "Strika bólkin",
- "Address" : "Adressa",
- "Full name" : "Fulla navn",
- "Phone number" : "Telefonnummar",
- "Twitter" : "Twitter",
- "Website" : "Heimasíða",
- "Enable" : "Gilda",
- "Never" : "ongantíð",
- "Login" : "Innrita",
- "SSL/TLS" : "SSL/TLS",
- "STARTTLS" : "STARTTLS",
- "From address" : "Frá adressu",
- "SMTP Username" : "SMTP Brúkaranavn",
- "SMTP Password" : "SMTP Loyniorð",
- "Send email" : "Send t-post",
- "Always ask for a password" : "Spyr altíð um eitt loyniorð",
- "Profile picture" : "Profil mynd",
- "Remove image" : "Strika Myndina",
- "png or jpg, max. 20 MB" : "png ella jpg, í mesta lagi 20MB",
- "Choose as profile picture" : "Vel sum profil mynd",
- "You are a member of the following groups:" : "Tú ert limur í teimum fylgjandi bólkarnar:",
- "Your phone number" : "Títt telefonnummar",
- "Your postal address" : "Tín bústaður",
- "Link https://…" : "Leinka https://...",
- "Current password" : "Núverandi loyniorð",
- "New password" : "Nýtt loyniorð",
- "Change password" : "Broyd loyniorð",
- "Public" : "Alment",
- "Nextcloud iOS app" : "Nextcloud iOS app",
- "Nextcloud Android app" : "Nextcloud Android app",
- "Nextcloud Talk for iOS" : "Nextcloud Talk til iOS",
- "Nextcloud Talk for Android" : "Nextcloud Talk til Android",
- "Everyone" : "Øll",
- "mail" : "post"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/fo.json b/apps/settings/l10n/fo.json
deleted file mode 100644
index 6bc1d0310b7..00000000000
--- a/apps/settings/l10n/fo.json
+++ /dev/null
@@ -1,103 +0,0 @@
-{ "translations": {
- "Saved" : "Goymt",
- "Email sent" : "Sendi t-post",
- "Private" : "Privat",
- "Unable to change password" : "Kundi ikki broyta loyniorðið",
- "Select a profile picture" : "Vel ein profil mynd",
- "Groups" : "Bólkar",
- "{actor} added you to group {group}" : "{actor} hevur koyrt teg í bólkin {group}",
- "You added {user} to group {group}" : "Tú hevur koyrt {user} í bólkin {group}",
- "{actor} added {user} to group {group}" : "{actor} koyrdi {user} í bólkin {group}",
- "An administrator added you to group {group}" : "Ein administrator koyrdi teg í bólkin {group}",
- "An administrator added {user} to group {group}" : "Ein administrator koyrdi {user} í bólkin {group}",
- "{actor} removed you from group {group}" : "{actor} hevur koyrt teg úr bólkin {group}",
- "You removed {user} from group {group}" : "Tú hevur koyrt {user} úr bólkin {group}",
- "{actor} removed {user} from group {group}" : "{actor} hevur koyrt {user} úr bólkin {group}",
- "An administrator removed you from group {group}" : "Ein administrator koyrdi teg úr bólkin {group}",
- "An administrator removed {user} from group {group}" : "Ein administrator koyrdi {user} úr bólkin {group}",
- "Your <strong>group memberships</strong> were modified" : "Tíni <strong>bólka limaskapir</strong>vóru broytt",
- "{actor} changed your password" : "{actor} broytti títt loyniorð",
- "You changed your password" : "Tú broytti títt loyniorð",
- "Your password was reset by an administrator" : "Títt loyniorð var nullstilla av einum administrator",
- "{actor} changed your email address" : "{actor} broytti tín t-post adressa",
- "You changed your email address" : "Tú broytti tín t-post adressa",
- "Your email address was changed by an administrator" : "Tín t-post adressa var broytt av einum administrator",
- "Security" : "Trygd",
- "Your <strong>password</strong> or <strong>email</strong> was modified" : "Títt <strong>loyniorð</strong>ella tín <strong>t-post</strong>var broytt",
- "Wrong password" : "Skeift loyniorð",
- "Authentication error" : "Samgildis feilur",
- "Invalid SMTP password." : "Ógildugt SMTP loyniorð",
- "Invalid mail address" : "Ógildug t-post adressa",
- "Settings saved" : "Stillingar eru goymd",
- "%1$s changed your password on %2$s." : "%1$sbroytti títt loyniorð á %2$s.",
- "Welcome aboard" : "Vælkomin umborð",
- "Welcome aboard %s" : "Vælkomin umborð %s",
- "Your username is: %s" : "Títt brúkaranavn er: %s",
- "Go to %s" : "Far til %s",
- "Personal" : "Persónligt",
- "Email server" : "T-post ambætara",
- "Delete" : "Strika",
- "Unlimited" : "Óavmarkað",
- "Save changes" : "Goym broytingar",
- "All" : "Øll",
- "Visit website" : "Vitja heimasíðu",
- "Rename" : "Nýnevn",
- "Revoke" : "strika",
- "Internet Explorer" : "Internet Explorer",
- "Edge" : "Edge",
- "Firefox" : "Firefox",
- "Google Chrome" : "Google Chrome",
- "Safari" : "Safari",
- "Google Chrome for Android" : "Google Chrome til Android",
- "iPhone" : "iPhone",
- "iPad" : "iPad",
- "App name" : "App navn",
- "Username" : "Brúkaranavn",
- "Password" : "Loyniorð",
- "Done" : "Gjørt",
- "Copied!" : "Kopiera!",
- "Copy" : "Kopi",
- "Cancel" : "strika",
- "{size} used" : "{size} brúkt",
- "New user" : "Nýggjur brúkari",
- "Email" : "T-post",
- "Your apps" : "Tínar appir",
- "Active apps" : "Virknar appir",
- "Disabled apps" : "Ógildaðar appir",
- "Admins" : "Administratorar",
- "Remove group" : "Strika bólkin",
- "Address" : "Adressa",
- "Full name" : "Fulla navn",
- "Phone number" : "Telefonnummar",
- "Twitter" : "Twitter",
- "Website" : "Heimasíða",
- "Enable" : "Gilda",
- "Never" : "ongantíð",
- "Login" : "Innrita",
- "SSL/TLS" : "SSL/TLS",
- "STARTTLS" : "STARTTLS",
- "From address" : "Frá adressu",
- "SMTP Username" : "SMTP Brúkaranavn",
- "SMTP Password" : "SMTP Loyniorð",
- "Send email" : "Send t-post",
- "Always ask for a password" : "Spyr altíð um eitt loyniorð",
- "Profile picture" : "Profil mynd",
- "Remove image" : "Strika Myndina",
- "png or jpg, max. 20 MB" : "png ella jpg, í mesta lagi 20MB",
- "Choose as profile picture" : "Vel sum profil mynd",
- "You are a member of the following groups:" : "Tú ert limur í teimum fylgjandi bólkarnar:",
- "Your phone number" : "Títt telefonnummar",
- "Your postal address" : "Tín bústaður",
- "Link https://…" : "Leinka https://...",
- "Current password" : "Núverandi loyniorð",
- "New password" : "Nýtt loyniorð",
- "Change password" : "Broyd loyniorð",
- "Public" : "Alment",
- "Nextcloud iOS app" : "Nextcloud iOS app",
- "Nextcloud Android app" : "Nextcloud Android app",
- "Nextcloud Talk for iOS" : "Nextcloud Talk til iOS",
- "Nextcloud Talk for Android" : "Nextcloud Talk til Android",
- "Everyone" : "Øll",
- "mail" : "post"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/settings/l10n/fr.js b/apps/settings/l10n/fr.js
index 38ccba9634c..561f3f8fa6a 100644
--- a/apps/settings/l10n/fr.js
+++ b/apps/settings/l10n/fr.js
@@ -131,6 +131,7 @@ OC.L10N.register(
"Unlimited" : "Illimité",
"Verifying" : "Vérification en cours",
"Allowed admin IP ranges" : "Plage d'adresses IP autorisées pour l'admin",
+ "Admin IP filtering isn't applied." : "Le filtrage IP admin n'est pas activé",
"Configuration key \"%1$s\" expects an array (%2$s found). Admin IP range validation will not be applied." : "La clé de configuration \"%1$s\" attends un tableau (trouver %2$s). La plage d'adresses IP de l'admin ne sera pas appliquée.",
"Configuration key \"%1$s\" contains invalid IP range(s): \"%2$s\"" : "La clé de configuration \"%1$s\" contient une ou plusieurs plages d'adresses IP invalides: \"%2$s\"",
"Admin IP filtering is correctly configured." : "Le filtrage IP admin est bien configuré.",
@@ -223,7 +224,7 @@ OC.L10N.register(
"MySQL row format" : "MySQL format row ",
"You are not using MySQL" : "Vous n'utilisez pas MySQL",
"None of your tables use ROW_FORMAT=Compressed" : "Aucune de vos tables n'utilise ROW_FORMAT=Compressed",
- "Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Format de ligne incorrect trouvé dans votre base de donnéées. ROW_FORMAT=Dynamic offre les meilleures performances de base de données pour Nextcloud. Veuillez modifier le format de ligne dans la liste: %s",
+ "Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Format de ligne incorrect trouvé dans votre base de données. ROW_FORMAT=Dynamic offre les meilleures performances de base de données pour Nextcloud. Veuillez modifier le format de ligne dans la liste: %s",
"MySQL Unicode support" : "Compatibilité Unicode MySQL",
"MySQL is used as database and does support 4-byte characters" : "MySQL est utilisé comme base de données et n'est pas compatible avec les caractères sur 4 octets",
"MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL." : "MySQL est utilisé comme base de données et n'est pas compatible avec les caractères sur 4 octets. Pour être capable de gérer les caractères sur 4 octets (comme les émojis) sans problème, par exemple, dans les noms de fichiers ou les commentaires, il est recommandé d'activer la compatibilité 4 octets dans MySQL.",
@@ -275,6 +276,7 @@ OC.L10N.register(
"The PHP OPcache module is not properly configured. %s." : "Le module PHP OPcache n'est pas correctement configuré. %s.",
"Correctly configured" : "Configuré correctement",
"PHP version" : "Version PHP",
+ "You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Vous utilisez actuellement PHP %1$s. PHP %2$s est obsolète depuis Nextcloud %3$s. Nextcloud %4$s peut nécessiter au moins PHP %5$s. Veuillez effectuer la mise à niveau vers l'une des versions PHP officiellement prises en charge par PHP Group dès que possible.",
"You are currently running PHP %s." : "Vous exécutez actuellement PHP %s.",
"PHP \"output_buffering\" option" : "l’option « output_buffering » de PHP",
"PHP configuration option \"output_buffering\" must be disabled" : "L’option de configuration PHP « output_buffering » doit être désactivée",
@@ -294,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "Entêtes HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- L'entête HTTP `%1$s` n'est pas défini à `%2$s`. Certaines fonctionnalités pourraient de pas fonctionner correctement, il est recommandé d'ajuster ce réglage en conséquence. ",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- L’en-tête HTTP `%1$s` n’est pas configuré pour être égal à `%2$s`. Ceci constitue un risque potentiel relatif à la sécurité et à la confidentialité, il est recommandé d’ajuster ce paramètre.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- L’en-tête HTTP `%1$s` ne contient pas `%2$s`. Ceci constitue un risque potentiel relatif à la sécurité et à la confidentialité, il est recommandé d’ajuster ce paramètre.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- L’en-tête HTTP `%1$s` n’est pas définit à `%2$s`, `%3$s`, `%4$s`, `%5$s` ou `%6$s`. Ceci pourrait dévoiler des informations sur le référent (referer). Voir la {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- L’en-tête HTTP `Strict-Transport-Security` n’est pas définit à au moins `%d` secondes (valeur actuelle : `%d`). Pour une sécurité renforcée, il est recommandé d’utiliser une politique HSTS longue.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- L’en-tête HTTP `Strict-Transport-Security` est mal formé :  `%s`. Pour une sécurité renforcée, il est recommandé d’activer HSTS.",
@@ -313,6 +314,10 @@ OC.L10N.register(
"Architecture" : "Architecture",
"64-bit" : "64 bits",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Il semblerait que vous exécutiez une version 32 bits de PHP. Nextcloud nécessite 64 bits pour fonctionner correctement. Veuillez mettre votre système d'exploitation et PHP à niveau vers du 64 bits !",
+ "Task Processing pickup speed" : "Vitesse de récupération du traitement des tâches",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Aucune tâche planifiée au cours de la dernière heure.","Aucune tâche planifiée au cours des %n dernières heures.","Aucune tâche planifiée au cours des %n dernières heures."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["La vitesse de récupération des tâches a été correcte au cours de la dernière %n heure.","La vitesse de récupération des tâches a été correcte au cours des dernières %n heures.","La vitesse de récupération des tâches a été correcte au cours des dernières %n heures."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["La vitesse de récupération des tâches a été lente cette dernière %n heure. De nombreuses tâches ont mis plus de 4 minutes à être récupérées. Envisagez de configurer un worker pour traiter les tâches en arrière-plan.","La vitesse de récupération des tâches a été lente ces dernières %n heures. De nombreuses tâches ont mis plus de 4 minutes à être récupérées. Envisagez de configurer un worker pour traiter les tâches en arrière-plan.","La vitesse de récupération des tâches a été lente ces dernières %n heures. De nombreuses tâches ont mis plus de 4 minutes à être récupérées. Envisagez de configurer un worker pour traiter les tâches en arrière-plan."],
"Temporary space available" : "Espace temporaire disponible",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Erreur lors de la vérification du chemin PHP temporaire - il n'a pas été correctement défini sur un répertoire. Valeur retournée : %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "La fonction PHP \"disk_free_space\" est désactivée, ce qui empêche la vérification de l'espace suffisant dans les répertoires temporaires.",
@@ -433,6 +438,7 @@ OC.L10N.register(
"Group name" : "Nom du groupe",
"Please enter a valid group name" : "Merci de saisir un nom de groupe valide",
"Search groups…" : "Recherche de groupes…",
+ "List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list." : "Liste des groupes. Pour des raisons de performances, cette liste n'est pas entièrement chargée. Les groupes seront chargés au fur et à mesure de votre navigation ou de votre recherche.",
"Loading groups…" : "Chargement des groupes …",
"Could not load app discover section" : "Impossible de charger la section des applications à découvrir",
"Could not render element" : "Impossible de générer l’élément",
@@ -440,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Impossible de charger le contenu de cette section du magasin d'applications.",
"Loading" : "Chargement",
"Fetching the latest news…" : "Récupération des dernières nouvelles…",
- "Carousel" : "Carousel",
- "Previous slide" : "Diapositive précédente",
- "Next slide" : "Diapositive suivante",
- "Choose slide to display" : "Choisir la diapositive à afficher",
- "{index} of {total}" : "{index} sur {total}",
- "Daemon" : "Processus",
- "Deploy Daemon" : "Deamon de déploiement",
- "Type" : "Type",
- "Display Name" : "Nom affiché",
- "GPUs support" : "Prise en charge des cartes graphiques",
- "Compute device" : "Appareil de calcul",
- "Advanced deploy options" : "Options avancées de déploiement",
- "Edit ExApp deploy options before installation" : "Éditer les options de déploiement ExApp avant l'installation",
- "Configured ExApp deploy options. Can be set only during installation" : "Options de déploiement ExApp. Ne peuvent être définies que lors de l'installation",
- "Learn more" : "En savoir plus",
- "Environment variables" : "Variables d'environnement",
- "ExApp container environment variables" : "Variables d'environnement du conteneur ExApp",
- "No environment variables defined" : "Aucune variable d'environnement définie",
- "Mounts" : "Montages",
- "Define host folder mounts to bind to the ExApp container" : "Définir les montages de volumes de l'hôte à attacher au conteneur ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Doivent exister sur l'hôte de déploiement du service avant d'installer ExApp",
- "Host path" : "Chemin de l'hôte",
- "Container path" : "Chemin du conteneur",
- "Read-only" : "Lecture seule",
- "Remove mount" : "Retirer le point de montage",
- "New mount" : "Nouveau point de montage",
- "Enter path to host folder" : "Entrer le chemin du dossier sur l'hôte",
- "Enter path to container folder" : "Entrer le chemin du dossier du conteneur",
- "Toggle read-only mode" : "Activer/Désactiver le mode lecture seule",
- "Confirm adding new mount" : "Confirmer l'ajout de nouveau point de montage",
- "Confirm" : "Confirmer",
- "Cancel adding mount" : "Annuler l'ajout de nouveau point de montage",
- "Cancel" : "Annuler",
- "Add mount" : "Ajouter un point de montage",
- "ExApp container mounts" : "Points de montage ExApp",
- "No mounts defined" : "Aucun point de montage défini",
- "Description" : "Description",
- "View in store" : "Afficher dans le magasin d'applications",
- "Visit website" : "Visiter le site web",
- "Usage documentation" : "Documentation d'utilisation",
- "Admin documentation" : "Documentation administrateur",
- "Developer documentation" : "Documentation développeurs",
- "Details" : "Détails",
- "All" : "Tous",
- "Limit app usage to groups" : "Limiter l'utilisation de l'application à des groupes",
- "No results" : "Aucun résultat",
- "Update to {version}" : "Mettre à jour vers {version}",
- "Deploy options" : "Options de déploiement",
- "Default Deploy daemon is not accessible" : "Le service de déploiement par défaut n'est pas accessible",
- "Delete data on remove" : "Supprimer les données lors de la désinstallation",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Cette application n’a pas de version minimum Nextcloud exigée. Ce sera considéré comme une erreur à l’avenir.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Cette application n’a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur à l’avenir.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Cette application ne peut être installée à cause de ces dépendances non satisfaites :",
- "Latest updated" : "Dernière mise à jour",
- "Author" : "Auteur",
- "Categories" : "Catégories",
- "Resources" : "Ressources",
- "Documentation" : "Documentation",
- "Interact" : "Interagir",
- "Report a bug" : "Signaler un bogue",
- "Request feature" : "Demander une fonctionnalité",
- "Ask questions or discuss" : "Poser des questions ou discuter",
- "Rate the app" : "Évaluer l’application",
- "Rate" : "Évaluation",
- "Changelog" : "Journal des modifications",
- "Google Chrome for Android" : "Google Chrome pour Android",
- "{productName} iOS app" : "Application iOS {productName}",
- "{productName} Android app" : "Application Android {productName}",
- "{productName} Talk for iOS" : " {productName} Talk pour iOS",
- "{productName} Talk for Android" : " {productName} Talk pour Android",
- "Sync client" : "Client de synchronisation",
- "This session" : "Cette session",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nom de l'appareil",
- "Cancel renaming" : "Annuler le renommage",
- "Save new name" : "Enregistrer un nouveau nom",
- "Marked for remote wipe" : "Marqué pour l'effaçage distant",
- "Device settings" : "Paramètres de l'appareil",
- "Allow filesystem access" : "Autoriser l’accès au gestionnaire de fichiers",
- "Rename" : "Renommer",
- "Revoke" : "Révoquer",
- "Wipe device" : "Effacer l'appareil",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Révoquer ce jeton peut empêcher l'effacement de votre appareil s'il n'a pas encore démarré l'effacement.",
- "Device" : "Appareil",
- "Last activity" : "Dernière activité",
- "Devices & sessions" : "Appareils & sessions",
- "Web, desktop and mobile clients currently logged in to your account." : "Clients web, applications de bureau et mobiles actuellement connectés avec votre compte.",
- "Error while creating device token" : "Erreur lors de la création du jeton de l’appareil",
- "App name" : "Nom de l’application",
- "Create new app password" : "Créer un nouveau mot de passe d’application",
"App password copied!" : "Mot de passe d'application copié !",
"Copy app password" : "Copier le mot de passe d'application",
"Login name copied!" : "Nom de l'identifiant copié !",
@@ -558,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Impossible de mettre à jour les paramètres par défaut du profil",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Active ou désactive le profil par défaut pour les nouveaux comptes.",
+ "Password confirmation is required" : "Confirmation par mot de passe est requise",
"Failed to save setting" : "Échec de la sauvegarde des paramètres",
"{app}'s declarative setting field: {name}" : "champ de paramètre déclaratif de l'{app}: {name}",
"Unable to update server side encryption config" : "Impossible de mettre à jour la configuration du chiffrement côté serveur",
@@ -574,208 +490,20 @@ OC.L10N.register(
"Confirm enabling encryption" : "Confirmer l'activation du chiffrement",
"Please read carefully before activating server-side encryption:" : "Veuillez lire attentivement avant d’activer le chiffrement côté serveur :",
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Une fois le chiffrement activé, les fichiers téléversés sur le serveur à partir de ce moment seront stockés sous forme chiffrée. Il n’est possible de désactiver le chiffrement que si le module utilisé le permet spécifiquement, et que toutes les conditions préalables sont réunies pour ce faire (par exemple la création d’une clé de récupération).",
+ "By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "Par défaut, une clé principale est générée pour l'ensemble de l'instance. Veuillez vérifier si ce niveau d'accès correspond à vos besoins.",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Le chiffrement seul ne garantit pas la sécurité du système. Veuillez consulter la documentation pour plus d'informations à propos du fonctionnement de l'application de chiffrement, et des cas d'usage supportés.",
"Be aware that encryption always increases the file size." : "Veuillez noter que le chiffrement augmente toujours la taille des fichiers.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Il est opportun de sauvegarder régulièrement vos données. Si ces données sont chiffrées, n’oubliez pas de sauvegarder aussi les clés de chiffrement.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Reportez-vous à la documentation d'administration pour savoir comment chiffrer manuellement les fichiers existants.",
"This is the final warning: Do you really want to enable encryption?" : "Dernier avertissement : Voulez-vous vraiment activer le chiffrement ?",
- "Failed to remove group \"{group}\"" : "Erreur à la suppression de « {group} »",
+ "Failed to delete group \"{group}\"" : "Échec de la suppression du groupe \"{group}\"",
"Please confirm the group removal" : "Merci de confirmer la suppression du groupe",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Vous êtes sur le point de supprimer le groupe « {group} ». Les comptes qui en font partie ne seront PAS supprimés.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Vous êtes sur le point de supprimer le groupe \"{group}\". Les comptes associés ne seront pas supprimés.",
+ "Cancel" : "Annuler",
+ "Confirm" : "Confirmer",
"Submit" : "Soumettre",
"Rename group" : "Renommer le groupe",
- "Remove group" : "Retirer le groupe",
- "Current password" : "Mot de passe actuel",
- "New password" : "Nouveau mot de passe",
- "Change password" : "Changer de mot de passe",
- "Choose your profile picture" : "Choisir votre image de profil",
- "Please select a valid png or jpg file" : "Merci de sélectionner un fichier jpg ou png valide",
- "Error setting profile picture" : "Erreur lors de la redéfinition de l'image de profil",
- "Error cropping profile picture" : "Erreur lors du recadrage d'image de profil",
- "Error saving profile picture" : "Erreur lors de la sauvegarde de l'image de profil",
- "Error removing profile picture" : "Erreur lors de la suppression de l'image de profil",
- "Your profile picture" : "Votre photo de profil",
- "Upload profile picture" : "Téléverser une photo de profil",
- "Choose profile picture from Files" : "Choisir une image de profil dans Fichiers",
- "Remove profile picture" : "Retirer la photo de profil",
- "The file must be a PNG or JPG" : "Le fichier doit être au format PNG ou JPG",
- "Picture provided by original account" : "Photo fournie par le compte original",
- "Set as profile picture" : "Définir comme image de profil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Veuillez noter que cela peut prendre jusqu'à 24 heures pour que votre image de profil soit mise à jour partout.",
- "Your biography. Markdown is supported." : "Votre biographie. Le format Markdown est pris en charge.",
- "Unable to update date of birth" : "Impossible de mettre à jour la date de naissance",
- "Enter your date of birth" : "Saisissez votre date de naissance",
- "You are using {s}{usage}{/s}" : "Vous utilisez {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Vous utilisez {s}{usage}{/s} de {s}{totalSpace}{/s}({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Vous êtes membre des groupes suivants :",
- "Your full name" : "Votre nom complet",
- "Email options" : "Options de messagerie",
- "Options for additional email address {index}" : "Options pour une adresse e-mail supplémentaire {index}",
- "Remove primary email" : "Supprimer l'adresse e-mail principale",
- "Delete email" : "Supprimer l'adresse e-mail",
- "This address is not confirmed" : "Cette adresse n'est pas confirmée",
- "Unset as primary email" : "Ne plus définir comme adresse e-mail principale",
- "Set as primary email" : "Définir comme adresse e-mail principale",
- "Additional email address {index}" : "E-mail supplémentaire {index}",
- "Unable to delete primary email address" : "Impossible de supprimer l'adresse e-mail principale",
- "Unable to update primary email address" : "Impossible de modifier l'adresse e-mail principale",
- "Unable to add additional email address" : "Impossible d'ajouter une adresse e-mail supplémentaire",
- "Unable to update additional email address" : "Impossible de modifier l'adresse e-mail supplémentaire",
- "Unable to delete additional email address" : "Impossible de supprimer l'adresse e-mail supplémentaire",
- "Primary email for password reset and notifications" : "Adresse e-mail principale pour la réinitialisation du mot de passe et les notifications",
- "No email address set" : "Aucune adresse e-mail configurée",
- "Your handle" : "Votre identifiant",
- "Derived from your locale ({weekDayName})" : "Issu de votre locale ({weekDayName})",
- "Unable to update first day of week" : "Impossible de mettre à jour le premier jour de la semaine",
- "Day to use as the first day of week" : "Jour à utiliser comme premier jour de la semaine",
- "Your headline" : "Votre titre",
- "Unable to update language" : "Impossible de modifier la langue",
- "Languages" : "Langues",
- "Help translate" : "Aidez à traduire",
- "No language set" : "Aucune langue définie",
- "Unable to update locale" : "Impossible de mettre à jour les paramètres régionaux",
- "Locales" : "Paramètres régionaux",
- "Week starts on {firstDayOfWeek}" : "Les semaines commencent le {firstDayOfWeek}",
- "No locale set" : "Paramètres régionaux non définis",
- "Your city" : "Votre ville",
- "Your organisation" : "Votre organisation",
- "Your phone number" : "Votre numéro de téléphone",
- "Edit your Profile visibility" : "Visibilité du profil",
- "Unable to update profile enabled state" : "Impossible de mettre à jour l'état du profil",
- "Enable profile" : "Activer le profil",
- "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." : "Le paramètre le plus restrictif entre la visibilité et la confidentialité est respecté. Par exemple, si la visibilité est définie à \"Montrer à tout le monde\" et que la confidentialité est \"Privé\", \"Privé\" est respecté.",
- "Unable to update visibility of {displayId}" : "Impossible de mettre à jour la visibilité de {displayId}",
- "she/her" : "elle/elle",
- "he/him" : "il/lui",
- "they/them" : "iel/ellui",
- "Your role" : "Votre fonction",
- "Your X (formerly Twitter) handle" : "Votre identifiant X (anciennement Twitter)",
- "Your website" : "Votre site web",
- "Invalid value" : "Valeur invalide",
- "Unable to update {property}" : "Impossible de mettre à jour {property}",
- "No {property} set" : "{property} n'est pas défini",
- "Change scope level of {property}, current scope is {scope}" : "Changer la portée de {property}, la portée actuelle est {scope}",
- "Unable to update federation scope of the primary {property}" : "Impossible de mettre à jour la portée de la fédération pour le/la {property} principal(e)",
- "Unable to update federation scope of additional {property}" : "Impossible de mettre à jour la portée de la fédération pour le/la {property} additionnel(le)",
- "Add additional email" : "Ajouter un e-mail supplémentaire",
- "Add" : "Ajouter",
- "Create" : "Créer",
- "Change" : "Modifier",
- "Delete" : "Supprimer",
- "Reshare" : "Repartager",
- "Default language" : "Langue par défaut",
- "Common languages" : "Langues communes",
- "Other languages" : "Autres langues",
- "Password change is disabled because the master key is disabled" : "Le changement de mot de passe est désactivé car la clé principale est désactivée",
- "No accounts" : "Aucun compte",
- "Loading accounts …" : "Chargement des comptes …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Liste des comptes. Cette liste n'est pas entièrement affichée pour des raisons de performance. Les comptes seront affichés au fur et à mesure que vous naviguerez dans la liste.",
- "Manager" : "Supérieur",
- "Set line manager" : "Définir le responsable hiérarchique",
- "Account name will be autogenerated" : "Le nom du compte sera généré automatiquement",
- "Account name (required)" : "Nom du compte (obligatoire)",
- "Failed to search groups" : "Échec de la recherche des groupes",
- "New account" : "Nouveau compte",
- "Display name" : "Nom d'affichage",
- "Either password or email is required" : "Le mot de passe ou l'e-mail est requis",
- "Password (required)" : "Mot de passe (requis)",
- "Email (required)" : "E-mail (requis)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Membre des groupes suivants (obligatoire)",
- "Member of the following groups" : "Membre des groupes suivants",
- "Set account groups" : "Définir les groupes de comptes",
- "Admin of the following groups" : "Administrateur des groupes suivants",
- "Set account as admin for …" : "Définir en tant qu'administrateur pour",
- "Quota" : "Quota",
- "Set account quota" : "Définir le quota du compte",
- "Language" : "Langue",
- "Set default language" : "Définir la langue par défaut",
- "Add new account" : "Ajouter le nouveau compte",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} compte…","{userCount} comptes…","{userCount} comptes…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} compte","{userCount} comptes","{userCount} comptes"],
- "Total rows summary" : "Récapitulatif du nombre total de lignes",
- "Scroll to load more rows" : "Défiler pour charger plus de lignes",
- "Password or insufficient permissions message" : "Mot de passe ou message d'autorisations insuffisantes",
- "Avatar" : "Avatar",
- "Account name" : "Nom du compte",
- "Group admin for" : "Administrateur de groupe pour",
- "Account backend" : "Origine du compte",
- "Storage location" : "Emplacement du stockage",
- "First login" : "Première connexion",
- "Last login" : "Dernière connexion",
- "Account actions" : "Actions du compte",
- "{size} used" : "{size} utilisés",
- "Delete account" : "Supprimer le compte",
- "Disconnect all devices and delete local data" : "Déconnecter tous les appareils et supprimer les données locales",
- "Disable account" : "Désactiver le compte",
- "Enable account" : "Activer le compte",
- "Resend welcome email" : "Renvoyer l'e-mail de bienvenue",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En cas de perte d'appareil ou si vous quittez un groupe ou une organisation, cela pourra supprimer les données de tous les appareils associés à {userid}. Ne fonctionne que si les appareils associés sont connectés à internet.",
- "Remote wipe of devices" : "Effacer les appareils à distance",
- "Wipe {userid}'s devices" : "Effacer les appareils de {userid}",
- "Wiped {userid}'s devices" : "Les appareils de {userid} ont été effacés",
- "Failed to update line manager" : "Échec de la mise à jour du responsable hiérarchique",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Supprime totalement le compte de {userid} et toutes ses données associées (fichiers personnels, données des applications, etc.)",
- "Account deletion" : "Suppression de compte",
- "Delete {userid}'s account" : "Supprimer le compte {userid}",
- "Display name was successfully changed" : "Le nom d'affichage a été modifié avec succès",
- "Password can't be empty" : "Le mot de passe ne peut pas être vide",
- "Password was successfully changed" : "Le mot de passe a été modifié avec succès",
- "Email can't be empty" : "L'adresse mail ne peut pas être vide",
- "Email was successfully changed" : "L'e-mail a été modifié avec succès",
- "Welcome mail sent!" : "E-mail de bienvenue envoyé !",
- "Loading account …" : "Chargement du compte…",
- "Change display name" : "Changer le nom de l'affichage",
- "Set new password" : "Définir un nouveau mot de passe",
- "You do not have permissions to see the details of this account" : "Vous n'avez pas les autorisations pour voir le détail de ce compte.",
- "Set new email address" : "Définir une nouvelle adresse e-mail",
- "Add account to group" : "Ajouter le compte au groupe",
- "Set account as admin for" : "Définir en tant qu'administrateur pour",
- "Select account quota" : "Sélectionner le quota du compte",
- "Set the language" : "Définir la langue",
- "Toggle account actions menu" : "Afficher / Masquer le menu des actions de compte",
- "Done" : "Terminé",
- "Edit" : "Editer",
- "Account management settings" : "Paramètres gestion des comptes",
- "Visibility" : "Visibilité",
- "Show language" : "Afficher la langue",
- "Show account backend" : "Afficher l'origine du compte",
- "Show storage path" : "Afficher l'emplacement du stockage",
- "Show first login" : "Afficher la première connexion",
- "Show last login" : "Afficher la dernière connexion",
- "Sorting" : "Trier",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuration système impose le tri des groupes par nom. Ceci désactive également l’affichage du nombre de membres.",
- "Group list sorting" : "Tri de la liste des groupes",
- "By member count" : "Par nombre de membres",
- "By name" : "Par nom",
- "Send email" : "Envoyer un e-mail",
- "Send welcome email to new accounts" : "Envoyer un e-mail de bienvenue aux nouveaux comptes",
- "Defaults" : "Par défaut",
- "Default quota" : "Quota par défaut",
- "Select default quota" : "Sélectionner le quota par défaut",
- "Server error while trying to complete WebAuthn device registration" : "Erreur du serveur lors de l'enregistrement du périphérique WebAuthn",
- "Passwordless authentication requires a secure connection." : "L'authentification sans mot de passe requiert une connexion sécurisée.",
- "Add WebAuthn device" : "Ajouter un périphérique WebAuthn",
- "Please authorize your WebAuthn device." : "Veuillez autoriser votre périphérique WebAuthn.",
- "Adding your device …" : "Ajout de votre périphérique…",
- "Unnamed device" : "Périphérique sans nom",
- "Passwordless Authentication" : "Authentification sans mot de passe",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configurer votre compte pour une authentification sans mot de passe suivant le standard FIDO2.",
- "No devices configured." : "Aucun périphérique paramétré.",
- "The following devices are configured for your account:" : "Les périphériques suivants sont paramétrés pour votre compte :",
- "Your browser does not support WebAuthn." : "Votre navigateur ne prend pas en charge WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "En tant qu'administrateur, vous pouvez affiner le comportement de partage. Veuillez consulter la documentation pour plus d'informations.",
- "You need to enable the File sharing App." : "Vous devez activer l'application de partage de fichiers",
- "App Store" : "Boutique d’applications",
- "Loading app list" : "Chargement de la liste des applications",
- "Loading categories" : "Chargement des catégories",
- "Developer documentation ↗" : "Documentation développeurs ↗",
- "Version {version}, {license}-licensed" : "Version {version}, sous licence {license}",
- "Version {version}" : "Version {version}",
- "All accounts" : "Tous les comptes",
- "Admins" : "Administrateurs",
- "Account group: {group}" : "Groupe de comptes : {group}",
- "Account management" : "Gestion de compte",
+ "Delete group" : "Supprimer le groupe",
"Sending…" : "Envoi en cours...",
"Email sent" : "E-mail envoyé",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Pour des raisons de performance, quand vous activez le chiffrement sur un serveur Nextcloud, seuls les fichiers nouveaux et modifiés sont chiffrés.",
@@ -785,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "Date de naissance",
"Full name" : "Nom complet",
"Additional email" : "Adresse e-mail supplémentaire",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (ex. Mastodon)",
"Headline" : "Titre",
"Organisation" : "Organisation",
@@ -794,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (anciennement Twitter)",
"Website" : "Site web",
"Profile visibility" : "Visibilité du profil",
+ "Language" : "Langue",
"Locale" : "Paramètres régionaux",
"First day of week" : "Premier jour de la semaine",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Non disponible car cette propriété est requise pour les fonctionnalités essentielles comme le partage de fichiers et les invitations de l'agenda.",
@@ -811,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Montrer seulement aux comptes connectés",
"Hide" : "Cacher",
"Manually installed apps cannot be updated" : "les applications installées manuellement ne peuvent pas être mises à jour",
+ "Update to {version}" : "Mettre à jour vers {version}",
"{progress}% Deploying …" : "{progress}% Déploiement…",
"{progress}% Initializing …" : "{progress}% Initialisation…",
"Health checking" : "Contrôle de santé",
@@ -820,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Autoriser l'application non testée",
"The app will be downloaded from the App Store" : "L'application sera téléchargée depuis le magasin d'applications",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Cette application n'est pas indiquée comme étant compatible avec votre version de Nextcloud. Si vous continuez vous pourrez toujours installer l'app. Notez cependant qu'elle pourrait ne pas fonctionner comme prévu.",
+ "{size} used" : "{size} utilisés",
"Unknown" : "Inconnu",
"Never" : "Jamais",
"Could not register device: Network error" : "Impossible d’enregistrer l’appareil : erreur réseau",
@@ -838,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Impossible de définir le tri des groupes",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Il y a trop de requêtes depuis votre réseau. Réessayez plus tard ou contactez votre administrateur s'il s'agit d'une erreur.",
"Error" : "Erreur",
+ "Default quota" : "Quota par défaut",
"Account documentation" : "Documentation utilisateur",
"Administration documentation" : "Documentation de l'administration",
+ "Documentation" : "Documentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Ressources d’aide Nextcloud & de confidentialité",
"General documentation" : "Documentation générale",
@@ -862,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "Mot de passe SMTP",
"Save" : "Enregistrer",
"Test and verify email settings" : "Tester les paramètres de messagerie",
+ "Send email" : "Envoyer un e-mail",
"Security & setup warnings" : "Avertissements de sécurité & configuration",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Il est important pour la sécurité et la performance de votre instance que celle-ci soit correctement configurée. Afin de vous aider, votre instance Nextcloud effectue des vérifications automatiques. Pour de plus amples informations, veuillez consulter la documentation liée.",
"All checks passed." : "Tous les contrôles ont été effectués avec succès.",
@@ -881,50 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Utilisez un second facteur d'authentification en plus de votre mot de passe pour renforcer la sécurité de votre compte.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si vous utilisez des applications tierces pour vous connecter à Nextcloud, assurez-vous de créer et de configurer un mot de passe d'application pour chacune avant d'activer l'authentification à deux facteurs.",
"Logged in account must be a subadmin" : "Le compte connecté doit être un sous-administrateur",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Pour autoriser cette vérification, pour devez vous assurer que votre serveur web peut se connecter à lui-même. Il doit donc être capable de résoudre et de se connecter à au moins un de ses `trusted_domains` ou à l'URL `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Index optionnels manquants « %s » dans la table « %s ».",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "La base de données a quelques index manquants. L'ajout d'index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant \"occ db:add-missing-indices\", ces index manquants pourront être ajoutés manuellement pendant que l'instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Pour autoriser cette vérification, pour devez vous assurer que votre serveur web peut se connecter à lui-même. Il doit donc être capable de résoudre et de se connecter à au moins un de ses `trusted_domains` ou à l'URL `overwrite.cli.url`. Cet échec peut être le résultat d'une erreur de DNS côté serveur ou d'une règle de pare-feu sortante.",
"File locking" : "Verrouillage des fichiers",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Le verrouillage transactionnel de fichiers est désactivé, cela peut causer des conflits en cas d'accès concurrent. Configurez « filelocking.enabled » dans config.php pour éviter ces problèmes.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Impossible de vérifier la prise en charge Javascript via l’un de vos `trusted_domains` ou `overwrite.cli.url`. Cela peut résulter d’une incompatibilité DNS côté serveur ou d’une règle de pare-feu sortante. Veuillez vérifier manuellement si votre serveur web sert des fichiers `.mjs` utilisant le type MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "La limite de mémoire PHP est sous la valeur recommandée de %s.",
"for WebAuthn passwordless login" : "pour WebAuthn pour la connexion sans mot de passe",
"for WebAuthn passwordless login, and SFTP storage" : "pour WebAuthn pour la connexion sans mot de passe, et le stockage SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Vous exécutez actuellement PHP %s. PHP 8.0 est maintenant obsolète pour Nextcloud 27. Nextcloud 28 nécessite au moins PHP 8.1. Veuillez mettre à jour vers l'une des versions PHP officiellement compatibles fournies par le PHP Group dès que possible.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" est utilisé. Nextcloud 21 et plus ne sont plus compatibles avec cette version et nécessitent MariaDB 10.2 ou plus.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" est utilisé. Nextcloud 21 et plus ne sont plus compatibles avec cette version et nécessitent MySQL 8.0 or MariaDB 10.2 ou plus.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" est utilisé. Nextcloud 21 et plus ne sont plus compatibles avec cette version et nécessitent PostgreSQL 9.6 ou plus.",
- "Speech-To-Text" : "Synthèse vocale",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "La reconnaissance vocale peut être implémentée par différentes applications. Vous pouvez définir ici quelle application doit être utilisée.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Aucune des applications actuellement installées ne fournit la fonctionnalité de reconnaissance vocale.",
- "None of your currently installed apps provide Text processing functionality" : "Aucune des applications actuellement installées ne fournit la fonctionnalité de génération de texte.",
- "Set default expiration date for shares" : "Définir par défaut une date d’expiration pour les partages",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Autoriser l'autocomplétion du nom d'utilisateur dans le dialogue de partage et permettre l'accès au carnet d'adresses système",
- "Your biography" : "Votre biographie",
- "You are using <strong>{usage}</strong>" : "Vous utilisez <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Vous utilisez <strong>{usage}</strong> sur <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Définir le supérieur de l'utilisateur",
- "Username will be autogenerated" : "Le nom d’utilisateur sera généré automatiquement",
- "Username (required)" : "Nom d’utilisateur (requis)",
- "New user" : "Nouvel utilisateur",
- "Groups (required)" : "Groupes (requis)",
- "Set user groups" : "Définir les groupes d'utilisateurs",
- "Administered groups" : "Groupes administrés",
- "Set user as admin for …" : "Définir l'utilisateur comme administrateur pour…",
- "Set user quota" : "Définir le quota de l'utilisateur",
- "Add new user" : "Ajouter un nouvel utilisateur",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} utilisateur …","{userCount} utilisateurs …","{userCount} utilisateurs…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} utilisateur","{userCount} utilisateurs","{userCount} utilisateurs"],
- "Loading users …" : "Chargement des utilisateurs...",
- "Username" : "Nom d’utilisateur",
- "User backend" : "Origine du compte",
- "User actions" : "Actions de l'utilisateur",
- "Add user to group" : "Ajouter l'utilisateur au groupe",
- "Server error while trying to add WebAuthn device" : "Erreur du serveur lors de l'ajout du périphérique WebAuthn",
- "Name your device" : "Nommez votre périphérique",
- "Active accounts" : "Comptes actifs",
- "Follow us on Twitter" : "Suivez-nous sur Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Pour autoriser cette vérification, pour devez vous assurer que votre serveur web peut se connecter à lui-même. Il doit donc être capable de résoudre et de se connecter à au moins un de ses `trusted_domains` ou à l'URL `overwrite.cli.url`. Cet échec peut être le résultat d'une erreur de DNS côté serveur ou d'une règle de pare-feu sortante.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Version PostgreSQL \"%s\" détectée. PostgreSQL >= 12 et <= 16 sont recommandés pour de meilleures performances, stabilité et fonctionnalités avec cette version de Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- L’en-tête HTTP `%1$s` ne contient pas `%2$s`. Ceci constitue un risque potentiel relatif à la sécurité et à la confidentialité, il est recommandé d’ajuster ce paramètre.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Version PostgreSQL \"%s\" détectée. PostgreSQL >= 12 et <= 16 sont recommandés pour de meilleures performances, stabilité et fonctionnalités avec cette version de Nextcloud.",
+ "Set default expiration date for shares" : "Définir par défaut une date d’expiration pour les partages"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/fr.json b/apps/settings/l10n/fr.json
index 5b5d67102f7..e0bf4ad199a 100644
--- a/apps/settings/l10n/fr.json
+++ b/apps/settings/l10n/fr.json
@@ -129,6 +129,7 @@
"Unlimited" : "Illimité",
"Verifying" : "Vérification en cours",
"Allowed admin IP ranges" : "Plage d'adresses IP autorisées pour l'admin",
+ "Admin IP filtering isn't applied." : "Le filtrage IP admin n'est pas activé",
"Configuration key \"%1$s\" expects an array (%2$s found). Admin IP range validation will not be applied." : "La clé de configuration \"%1$s\" attends un tableau (trouver %2$s). La plage d'adresses IP de l'admin ne sera pas appliquée.",
"Configuration key \"%1$s\" contains invalid IP range(s): \"%2$s\"" : "La clé de configuration \"%1$s\" contient une ou plusieurs plages d'adresses IP invalides: \"%2$s\"",
"Admin IP filtering is correctly configured." : "Le filtrage IP admin est bien configuré.",
@@ -221,7 +222,7 @@
"MySQL row format" : "MySQL format row ",
"You are not using MySQL" : "Vous n'utilisez pas MySQL",
"None of your tables use ROW_FORMAT=Compressed" : "Aucune de vos tables n'utilise ROW_FORMAT=Compressed",
- "Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Format de ligne incorrect trouvé dans votre base de donnéées. ROW_FORMAT=Dynamic offre les meilleures performances de base de données pour Nextcloud. Veuillez modifier le format de ligne dans la liste: %s",
+ "Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Format de ligne incorrect trouvé dans votre base de données. ROW_FORMAT=Dynamic offre les meilleures performances de base de données pour Nextcloud. Veuillez modifier le format de ligne dans la liste: %s",
"MySQL Unicode support" : "Compatibilité Unicode MySQL",
"MySQL is used as database and does support 4-byte characters" : "MySQL est utilisé comme base de données et n'est pas compatible avec les caractères sur 4 octets",
"MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL." : "MySQL est utilisé comme base de données et n'est pas compatible avec les caractères sur 4 octets. Pour être capable de gérer les caractères sur 4 octets (comme les émojis) sans problème, par exemple, dans les noms de fichiers ou les commentaires, il est recommandé d'activer la compatibilité 4 octets dans MySQL.",
@@ -273,6 +274,7 @@
"The PHP OPcache module is not properly configured. %s." : "Le module PHP OPcache n'est pas correctement configuré. %s.",
"Correctly configured" : "Configuré correctement",
"PHP version" : "Version PHP",
+ "You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Vous utilisez actuellement PHP %1$s. PHP %2$s est obsolète depuis Nextcloud %3$s. Nextcloud %4$s peut nécessiter au moins PHP %5$s. Veuillez effectuer la mise à niveau vers l'une des versions PHP officiellement prises en charge par PHP Group dès que possible.",
"You are currently running PHP %s." : "Vous exécutez actuellement PHP %s.",
"PHP \"output_buffering\" option" : "l’option « output_buffering » de PHP",
"PHP configuration option \"output_buffering\" must be disabled" : "L’option de configuration PHP « output_buffering » doit être désactivée",
@@ -292,7 +294,6 @@
"HTTP headers" : "Entêtes HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- L'entête HTTP `%1$s` n'est pas défini à `%2$s`. Certaines fonctionnalités pourraient de pas fonctionner correctement, il est recommandé d'ajuster ce réglage en conséquence. ",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- L’en-tête HTTP `%1$s` n’est pas configuré pour être égal à `%2$s`. Ceci constitue un risque potentiel relatif à la sécurité et à la confidentialité, il est recommandé d’ajuster ce paramètre.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- L’en-tête HTTP `%1$s` ne contient pas `%2$s`. Ceci constitue un risque potentiel relatif à la sécurité et à la confidentialité, il est recommandé d’ajuster ce paramètre.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- L’en-tête HTTP `%1$s` n’est pas définit à `%2$s`, `%3$s`, `%4$s`, `%5$s` ou `%6$s`. Ceci pourrait dévoiler des informations sur le référent (referer). Voir la {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- L’en-tête HTTP `Strict-Transport-Security` n’est pas définit à au moins `%d` secondes (valeur actuelle : `%d`). Pour une sécurité renforcée, il est recommandé d’utiliser une politique HSTS longue.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- L’en-tête HTTP `Strict-Transport-Security` est mal formé :  `%s`. Pour une sécurité renforcée, il est recommandé d’activer HSTS.",
@@ -311,6 +312,10 @@
"Architecture" : "Architecture",
"64-bit" : "64 bits",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Il semblerait que vous exécutiez une version 32 bits de PHP. Nextcloud nécessite 64 bits pour fonctionner correctement. Veuillez mettre votre système d'exploitation et PHP à niveau vers du 64 bits !",
+ "Task Processing pickup speed" : "Vitesse de récupération du traitement des tâches",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Aucune tâche planifiée au cours de la dernière heure.","Aucune tâche planifiée au cours des %n dernières heures.","Aucune tâche planifiée au cours des %n dernières heures."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["La vitesse de récupération des tâches a été correcte au cours de la dernière %n heure.","La vitesse de récupération des tâches a été correcte au cours des dernières %n heures.","La vitesse de récupération des tâches a été correcte au cours des dernières %n heures."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["La vitesse de récupération des tâches a été lente cette dernière %n heure. De nombreuses tâches ont mis plus de 4 minutes à être récupérées. Envisagez de configurer un worker pour traiter les tâches en arrière-plan.","La vitesse de récupération des tâches a été lente ces dernières %n heures. De nombreuses tâches ont mis plus de 4 minutes à être récupérées. Envisagez de configurer un worker pour traiter les tâches en arrière-plan.","La vitesse de récupération des tâches a été lente ces dernières %n heures. De nombreuses tâches ont mis plus de 4 minutes à être récupérées. Envisagez de configurer un worker pour traiter les tâches en arrière-plan."],
"Temporary space available" : "Espace temporaire disponible",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Erreur lors de la vérification du chemin PHP temporaire - il n'a pas été correctement défini sur un répertoire. Valeur retournée : %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "La fonction PHP \"disk_free_space\" est désactivée, ce qui empêche la vérification de l'espace suffisant dans les répertoires temporaires.",
@@ -431,6 +436,7 @@
"Group name" : "Nom du groupe",
"Please enter a valid group name" : "Merci de saisir un nom de groupe valide",
"Search groups…" : "Recherche de groupes…",
+ "List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list." : "Liste des groupes. Pour des raisons de performances, cette liste n'est pas entièrement chargée. Les groupes seront chargés au fur et à mesure de votre navigation ou de votre recherche.",
"Loading groups…" : "Chargement des groupes …",
"Could not load app discover section" : "Impossible de charger la section des applications à découvrir",
"Could not render element" : "Impossible de générer l’élément",
@@ -438,97 +444,6 @@
"Could not load section content from app store." : "Impossible de charger le contenu de cette section du magasin d'applications.",
"Loading" : "Chargement",
"Fetching the latest news…" : "Récupération des dernières nouvelles…",
- "Carousel" : "Carousel",
- "Previous slide" : "Diapositive précédente",
- "Next slide" : "Diapositive suivante",
- "Choose slide to display" : "Choisir la diapositive à afficher",
- "{index} of {total}" : "{index} sur {total}",
- "Daemon" : "Processus",
- "Deploy Daemon" : "Deamon de déploiement",
- "Type" : "Type",
- "Display Name" : "Nom affiché",
- "GPUs support" : "Prise en charge des cartes graphiques",
- "Compute device" : "Appareil de calcul",
- "Advanced deploy options" : "Options avancées de déploiement",
- "Edit ExApp deploy options before installation" : "Éditer les options de déploiement ExApp avant l'installation",
- "Configured ExApp deploy options. Can be set only during installation" : "Options de déploiement ExApp. Ne peuvent être définies que lors de l'installation",
- "Learn more" : "En savoir plus",
- "Environment variables" : "Variables d'environnement",
- "ExApp container environment variables" : "Variables d'environnement du conteneur ExApp",
- "No environment variables defined" : "Aucune variable d'environnement définie",
- "Mounts" : "Montages",
- "Define host folder mounts to bind to the ExApp container" : "Définir les montages de volumes de l'hôte à attacher au conteneur ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Doivent exister sur l'hôte de déploiement du service avant d'installer ExApp",
- "Host path" : "Chemin de l'hôte",
- "Container path" : "Chemin du conteneur",
- "Read-only" : "Lecture seule",
- "Remove mount" : "Retirer le point de montage",
- "New mount" : "Nouveau point de montage",
- "Enter path to host folder" : "Entrer le chemin du dossier sur l'hôte",
- "Enter path to container folder" : "Entrer le chemin du dossier du conteneur",
- "Toggle read-only mode" : "Activer/Désactiver le mode lecture seule",
- "Confirm adding new mount" : "Confirmer l'ajout de nouveau point de montage",
- "Confirm" : "Confirmer",
- "Cancel adding mount" : "Annuler l'ajout de nouveau point de montage",
- "Cancel" : "Annuler",
- "Add mount" : "Ajouter un point de montage",
- "ExApp container mounts" : "Points de montage ExApp",
- "No mounts defined" : "Aucun point de montage défini",
- "Description" : "Description",
- "View in store" : "Afficher dans le magasin d'applications",
- "Visit website" : "Visiter le site web",
- "Usage documentation" : "Documentation d'utilisation",
- "Admin documentation" : "Documentation administrateur",
- "Developer documentation" : "Documentation développeurs",
- "Details" : "Détails",
- "All" : "Tous",
- "Limit app usage to groups" : "Limiter l'utilisation de l'application à des groupes",
- "No results" : "Aucun résultat",
- "Update to {version}" : "Mettre à jour vers {version}",
- "Deploy options" : "Options de déploiement",
- "Default Deploy daemon is not accessible" : "Le service de déploiement par défaut n'est pas accessible",
- "Delete data on remove" : "Supprimer les données lors de la désinstallation",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Cette application n’a pas de version minimum Nextcloud exigée. Ce sera considéré comme une erreur à l’avenir.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Cette application n’a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur à l’avenir.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Cette application ne peut être installée à cause de ces dépendances non satisfaites :",
- "Latest updated" : "Dernière mise à jour",
- "Author" : "Auteur",
- "Categories" : "Catégories",
- "Resources" : "Ressources",
- "Documentation" : "Documentation",
- "Interact" : "Interagir",
- "Report a bug" : "Signaler un bogue",
- "Request feature" : "Demander une fonctionnalité",
- "Ask questions or discuss" : "Poser des questions ou discuter",
- "Rate the app" : "Évaluer l’application",
- "Rate" : "Évaluation",
- "Changelog" : "Journal des modifications",
- "Google Chrome for Android" : "Google Chrome pour Android",
- "{productName} iOS app" : "Application iOS {productName}",
- "{productName} Android app" : "Application Android {productName}",
- "{productName} Talk for iOS" : " {productName} Talk pour iOS",
- "{productName} Talk for Android" : " {productName} Talk pour Android",
- "Sync client" : "Client de synchronisation",
- "This session" : "Cette session",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nom de l'appareil",
- "Cancel renaming" : "Annuler le renommage",
- "Save new name" : "Enregistrer un nouveau nom",
- "Marked for remote wipe" : "Marqué pour l'effaçage distant",
- "Device settings" : "Paramètres de l'appareil",
- "Allow filesystem access" : "Autoriser l’accès au gestionnaire de fichiers",
- "Rename" : "Renommer",
- "Revoke" : "Révoquer",
- "Wipe device" : "Effacer l'appareil",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Révoquer ce jeton peut empêcher l'effacement de votre appareil s'il n'a pas encore démarré l'effacement.",
- "Device" : "Appareil",
- "Last activity" : "Dernière activité",
- "Devices & sessions" : "Appareils & sessions",
- "Web, desktop and mobile clients currently logged in to your account." : "Clients web, applications de bureau et mobiles actuellement connectés avec votre compte.",
- "Error while creating device token" : "Erreur lors de la création du jeton de l’appareil",
- "App name" : "Nom de l’application",
- "Create new app password" : "Créer un nouveau mot de passe d’application",
"App password copied!" : "Mot de passe d'application copié !",
"Copy app password" : "Copier le mot de passe d'application",
"Login name copied!" : "Nom de l'identifiant copié !",
@@ -556,6 +471,7 @@
"Unable to update profile default setting" : "Impossible de mettre à jour les paramètres par défaut du profil",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Active ou désactive le profil par défaut pour les nouveaux comptes.",
+ "Password confirmation is required" : "Confirmation par mot de passe est requise",
"Failed to save setting" : "Échec de la sauvegarde des paramètres",
"{app}'s declarative setting field: {name}" : "champ de paramètre déclaratif de l'{app}: {name}",
"Unable to update server side encryption config" : "Impossible de mettre à jour la configuration du chiffrement côté serveur",
@@ -572,208 +488,20 @@
"Confirm enabling encryption" : "Confirmer l'activation du chiffrement",
"Please read carefully before activating server-side encryption:" : "Veuillez lire attentivement avant d’activer le chiffrement côté serveur :",
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Une fois le chiffrement activé, les fichiers téléversés sur le serveur à partir de ce moment seront stockés sous forme chiffrée. Il n’est possible de désactiver le chiffrement que si le module utilisé le permet spécifiquement, et que toutes les conditions préalables sont réunies pour ce faire (par exemple la création d’une clé de récupération).",
+ "By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "Par défaut, une clé principale est générée pour l'ensemble de l'instance. Veuillez vérifier si ce niveau d'accès correspond à vos besoins.",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Le chiffrement seul ne garantit pas la sécurité du système. Veuillez consulter la documentation pour plus d'informations à propos du fonctionnement de l'application de chiffrement, et des cas d'usage supportés.",
"Be aware that encryption always increases the file size." : "Veuillez noter que le chiffrement augmente toujours la taille des fichiers.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Il est opportun de sauvegarder régulièrement vos données. Si ces données sont chiffrées, n’oubliez pas de sauvegarder aussi les clés de chiffrement.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Reportez-vous à la documentation d'administration pour savoir comment chiffrer manuellement les fichiers existants.",
"This is the final warning: Do you really want to enable encryption?" : "Dernier avertissement : Voulez-vous vraiment activer le chiffrement ?",
- "Failed to remove group \"{group}\"" : "Erreur à la suppression de « {group} »",
+ "Failed to delete group \"{group}\"" : "Échec de la suppression du groupe \"{group}\"",
"Please confirm the group removal" : "Merci de confirmer la suppression du groupe",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Vous êtes sur le point de supprimer le groupe « {group} ». Les comptes qui en font partie ne seront PAS supprimés.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Vous êtes sur le point de supprimer le groupe \"{group}\". Les comptes associés ne seront pas supprimés.",
+ "Cancel" : "Annuler",
+ "Confirm" : "Confirmer",
"Submit" : "Soumettre",
"Rename group" : "Renommer le groupe",
- "Remove group" : "Retirer le groupe",
- "Current password" : "Mot de passe actuel",
- "New password" : "Nouveau mot de passe",
- "Change password" : "Changer de mot de passe",
- "Choose your profile picture" : "Choisir votre image de profil",
- "Please select a valid png or jpg file" : "Merci de sélectionner un fichier jpg ou png valide",
- "Error setting profile picture" : "Erreur lors de la redéfinition de l'image de profil",
- "Error cropping profile picture" : "Erreur lors du recadrage d'image de profil",
- "Error saving profile picture" : "Erreur lors de la sauvegarde de l'image de profil",
- "Error removing profile picture" : "Erreur lors de la suppression de l'image de profil",
- "Your profile picture" : "Votre photo de profil",
- "Upload profile picture" : "Téléverser une photo de profil",
- "Choose profile picture from Files" : "Choisir une image de profil dans Fichiers",
- "Remove profile picture" : "Retirer la photo de profil",
- "The file must be a PNG or JPG" : "Le fichier doit être au format PNG ou JPG",
- "Picture provided by original account" : "Photo fournie par le compte original",
- "Set as profile picture" : "Définir comme image de profil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Veuillez noter que cela peut prendre jusqu'à 24 heures pour que votre image de profil soit mise à jour partout.",
- "Your biography. Markdown is supported." : "Votre biographie. Le format Markdown est pris en charge.",
- "Unable to update date of birth" : "Impossible de mettre à jour la date de naissance",
- "Enter your date of birth" : "Saisissez votre date de naissance",
- "You are using {s}{usage}{/s}" : "Vous utilisez {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Vous utilisez {s}{usage}{/s} de {s}{totalSpace}{/s}({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Vous êtes membre des groupes suivants :",
- "Your full name" : "Votre nom complet",
- "Email options" : "Options de messagerie",
- "Options for additional email address {index}" : "Options pour une adresse e-mail supplémentaire {index}",
- "Remove primary email" : "Supprimer l'adresse e-mail principale",
- "Delete email" : "Supprimer l'adresse e-mail",
- "This address is not confirmed" : "Cette adresse n'est pas confirmée",
- "Unset as primary email" : "Ne plus définir comme adresse e-mail principale",
- "Set as primary email" : "Définir comme adresse e-mail principale",
- "Additional email address {index}" : "E-mail supplémentaire {index}",
- "Unable to delete primary email address" : "Impossible de supprimer l'adresse e-mail principale",
- "Unable to update primary email address" : "Impossible de modifier l'adresse e-mail principale",
- "Unable to add additional email address" : "Impossible d'ajouter une adresse e-mail supplémentaire",
- "Unable to update additional email address" : "Impossible de modifier l'adresse e-mail supplémentaire",
- "Unable to delete additional email address" : "Impossible de supprimer l'adresse e-mail supplémentaire",
- "Primary email for password reset and notifications" : "Adresse e-mail principale pour la réinitialisation du mot de passe et les notifications",
- "No email address set" : "Aucune adresse e-mail configurée",
- "Your handle" : "Votre identifiant",
- "Derived from your locale ({weekDayName})" : "Issu de votre locale ({weekDayName})",
- "Unable to update first day of week" : "Impossible de mettre à jour le premier jour de la semaine",
- "Day to use as the first day of week" : "Jour à utiliser comme premier jour de la semaine",
- "Your headline" : "Votre titre",
- "Unable to update language" : "Impossible de modifier la langue",
- "Languages" : "Langues",
- "Help translate" : "Aidez à traduire",
- "No language set" : "Aucune langue définie",
- "Unable to update locale" : "Impossible de mettre à jour les paramètres régionaux",
- "Locales" : "Paramètres régionaux",
- "Week starts on {firstDayOfWeek}" : "Les semaines commencent le {firstDayOfWeek}",
- "No locale set" : "Paramètres régionaux non définis",
- "Your city" : "Votre ville",
- "Your organisation" : "Votre organisation",
- "Your phone number" : "Votre numéro de téléphone",
- "Edit your Profile visibility" : "Visibilité du profil",
- "Unable to update profile enabled state" : "Impossible de mettre à jour l'état du profil",
- "Enable profile" : "Activer le profil",
- "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." : "Le paramètre le plus restrictif entre la visibilité et la confidentialité est respecté. Par exemple, si la visibilité est définie à \"Montrer à tout le monde\" et que la confidentialité est \"Privé\", \"Privé\" est respecté.",
- "Unable to update visibility of {displayId}" : "Impossible de mettre à jour la visibilité de {displayId}",
- "she/her" : "elle/elle",
- "he/him" : "il/lui",
- "they/them" : "iel/ellui",
- "Your role" : "Votre fonction",
- "Your X (formerly Twitter) handle" : "Votre identifiant X (anciennement Twitter)",
- "Your website" : "Votre site web",
- "Invalid value" : "Valeur invalide",
- "Unable to update {property}" : "Impossible de mettre à jour {property}",
- "No {property} set" : "{property} n'est pas défini",
- "Change scope level of {property}, current scope is {scope}" : "Changer la portée de {property}, la portée actuelle est {scope}",
- "Unable to update federation scope of the primary {property}" : "Impossible de mettre à jour la portée de la fédération pour le/la {property} principal(e)",
- "Unable to update federation scope of additional {property}" : "Impossible de mettre à jour la portée de la fédération pour le/la {property} additionnel(le)",
- "Add additional email" : "Ajouter un e-mail supplémentaire",
- "Add" : "Ajouter",
- "Create" : "Créer",
- "Change" : "Modifier",
- "Delete" : "Supprimer",
- "Reshare" : "Repartager",
- "Default language" : "Langue par défaut",
- "Common languages" : "Langues communes",
- "Other languages" : "Autres langues",
- "Password change is disabled because the master key is disabled" : "Le changement de mot de passe est désactivé car la clé principale est désactivée",
- "No accounts" : "Aucun compte",
- "Loading accounts …" : "Chargement des comptes …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Liste des comptes. Cette liste n'est pas entièrement affichée pour des raisons de performance. Les comptes seront affichés au fur et à mesure que vous naviguerez dans la liste.",
- "Manager" : "Supérieur",
- "Set line manager" : "Définir le responsable hiérarchique",
- "Account name will be autogenerated" : "Le nom du compte sera généré automatiquement",
- "Account name (required)" : "Nom du compte (obligatoire)",
- "Failed to search groups" : "Échec de la recherche des groupes",
- "New account" : "Nouveau compte",
- "Display name" : "Nom d'affichage",
- "Either password or email is required" : "Le mot de passe ou l'e-mail est requis",
- "Password (required)" : "Mot de passe (requis)",
- "Email (required)" : "E-mail (requis)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Membre des groupes suivants (obligatoire)",
- "Member of the following groups" : "Membre des groupes suivants",
- "Set account groups" : "Définir les groupes de comptes",
- "Admin of the following groups" : "Administrateur des groupes suivants",
- "Set account as admin for …" : "Définir en tant qu'administrateur pour",
- "Quota" : "Quota",
- "Set account quota" : "Définir le quota du compte",
- "Language" : "Langue",
- "Set default language" : "Définir la langue par défaut",
- "Add new account" : "Ajouter le nouveau compte",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} compte…","{userCount} comptes…","{userCount} comptes…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} compte","{userCount} comptes","{userCount} comptes"],
- "Total rows summary" : "Récapitulatif du nombre total de lignes",
- "Scroll to load more rows" : "Défiler pour charger plus de lignes",
- "Password or insufficient permissions message" : "Mot de passe ou message d'autorisations insuffisantes",
- "Avatar" : "Avatar",
- "Account name" : "Nom du compte",
- "Group admin for" : "Administrateur de groupe pour",
- "Account backend" : "Origine du compte",
- "Storage location" : "Emplacement du stockage",
- "First login" : "Première connexion",
- "Last login" : "Dernière connexion",
- "Account actions" : "Actions du compte",
- "{size} used" : "{size} utilisés",
- "Delete account" : "Supprimer le compte",
- "Disconnect all devices and delete local data" : "Déconnecter tous les appareils et supprimer les données locales",
- "Disable account" : "Désactiver le compte",
- "Enable account" : "Activer le compte",
- "Resend welcome email" : "Renvoyer l'e-mail de bienvenue",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "En cas de perte d'appareil ou si vous quittez un groupe ou une organisation, cela pourra supprimer les données de tous les appareils associés à {userid}. Ne fonctionne que si les appareils associés sont connectés à internet.",
- "Remote wipe of devices" : "Effacer les appareils à distance",
- "Wipe {userid}'s devices" : "Effacer les appareils de {userid}",
- "Wiped {userid}'s devices" : "Les appareils de {userid} ont été effacés",
- "Failed to update line manager" : "Échec de la mise à jour du responsable hiérarchique",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Supprime totalement le compte de {userid} et toutes ses données associées (fichiers personnels, données des applications, etc.)",
- "Account deletion" : "Suppression de compte",
- "Delete {userid}'s account" : "Supprimer le compte {userid}",
- "Display name was successfully changed" : "Le nom d'affichage a été modifié avec succès",
- "Password can't be empty" : "Le mot de passe ne peut pas être vide",
- "Password was successfully changed" : "Le mot de passe a été modifié avec succès",
- "Email can't be empty" : "L'adresse mail ne peut pas être vide",
- "Email was successfully changed" : "L'e-mail a été modifié avec succès",
- "Welcome mail sent!" : "E-mail de bienvenue envoyé !",
- "Loading account …" : "Chargement du compte…",
- "Change display name" : "Changer le nom de l'affichage",
- "Set new password" : "Définir un nouveau mot de passe",
- "You do not have permissions to see the details of this account" : "Vous n'avez pas les autorisations pour voir le détail de ce compte.",
- "Set new email address" : "Définir une nouvelle adresse e-mail",
- "Add account to group" : "Ajouter le compte au groupe",
- "Set account as admin for" : "Définir en tant qu'administrateur pour",
- "Select account quota" : "Sélectionner le quota du compte",
- "Set the language" : "Définir la langue",
- "Toggle account actions menu" : "Afficher / Masquer le menu des actions de compte",
- "Done" : "Terminé",
- "Edit" : "Editer",
- "Account management settings" : "Paramètres gestion des comptes",
- "Visibility" : "Visibilité",
- "Show language" : "Afficher la langue",
- "Show account backend" : "Afficher l'origine du compte",
- "Show storage path" : "Afficher l'emplacement du stockage",
- "Show first login" : "Afficher la première connexion",
- "Show last login" : "Afficher la dernière connexion",
- "Sorting" : "Trier",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "La configuration système impose le tri des groupes par nom. Ceci désactive également l’affichage du nombre de membres.",
- "Group list sorting" : "Tri de la liste des groupes",
- "By member count" : "Par nombre de membres",
- "By name" : "Par nom",
- "Send email" : "Envoyer un e-mail",
- "Send welcome email to new accounts" : "Envoyer un e-mail de bienvenue aux nouveaux comptes",
- "Defaults" : "Par défaut",
- "Default quota" : "Quota par défaut",
- "Select default quota" : "Sélectionner le quota par défaut",
- "Server error while trying to complete WebAuthn device registration" : "Erreur du serveur lors de l'enregistrement du périphérique WebAuthn",
- "Passwordless authentication requires a secure connection." : "L'authentification sans mot de passe requiert une connexion sécurisée.",
- "Add WebAuthn device" : "Ajouter un périphérique WebAuthn",
- "Please authorize your WebAuthn device." : "Veuillez autoriser votre périphérique WebAuthn.",
- "Adding your device …" : "Ajout de votre périphérique…",
- "Unnamed device" : "Périphérique sans nom",
- "Passwordless Authentication" : "Authentification sans mot de passe",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configurer votre compte pour une authentification sans mot de passe suivant le standard FIDO2.",
- "No devices configured." : "Aucun périphérique paramétré.",
- "The following devices are configured for your account:" : "Les périphériques suivants sont paramétrés pour votre compte :",
- "Your browser does not support WebAuthn." : "Votre navigateur ne prend pas en charge WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "En tant qu'administrateur, vous pouvez affiner le comportement de partage. Veuillez consulter la documentation pour plus d'informations.",
- "You need to enable the File sharing App." : "Vous devez activer l'application de partage de fichiers",
- "App Store" : "Boutique d’applications",
- "Loading app list" : "Chargement de la liste des applications",
- "Loading categories" : "Chargement des catégories",
- "Developer documentation ↗" : "Documentation développeurs ↗",
- "Version {version}, {license}-licensed" : "Version {version}, sous licence {license}",
- "Version {version}" : "Version {version}",
- "All accounts" : "Tous les comptes",
- "Admins" : "Administrateurs",
- "Account group: {group}" : "Groupe de comptes : {group}",
- "Account management" : "Gestion de compte",
+ "Delete group" : "Supprimer le groupe",
"Sending…" : "Envoi en cours...",
"Email sent" : "E-mail envoyé",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Pour des raisons de performance, quand vous activez le chiffrement sur un serveur Nextcloud, seuls les fichiers nouveaux et modifiés sont chiffrés.",
@@ -783,6 +511,7 @@
"Date of birth" : "Date de naissance",
"Full name" : "Nom complet",
"Additional email" : "Adresse e-mail supplémentaire",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (ex. Mastodon)",
"Headline" : "Titre",
"Organisation" : "Organisation",
@@ -792,6 +521,7 @@
"X (formerly Twitter)" : "X (anciennement Twitter)",
"Website" : "Site web",
"Profile visibility" : "Visibilité du profil",
+ "Language" : "Langue",
"Locale" : "Paramètres régionaux",
"First day of week" : "Premier jour de la semaine",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Non disponible car cette propriété est requise pour les fonctionnalités essentielles comme le partage de fichiers et les invitations de l'agenda.",
@@ -809,6 +539,7 @@
"Show to logged in accounts only" : "Montrer seulement aux comptes connectés",
"Hide" : "Cacher",
"Manually installed apps cannot be updated" : "les applications installées manuellement ne peuvent pas être mises à jour",
+ "Update to {version}" : "Mettre à jour vers {version}",
"{progress}% Deploying …" : "{progress}% Déploiement…",
"{progress}% Initializing …" : "{progress}% Initialisation…",
"Health checking" : "Contrôle de santé",
@@ -818,6 +549,7 @@
"Allow untested app" : "Autoriser l'application non testée",
"The app will be downloaded from the App Store" : "L'application sera téléchargée depuis le magasin d'applications",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Cette application n'est pas indiquée comme étant compatible avec votre version de Nextcloud. Si vous continuez vous pourrez toujours installer l'app. Notez cependant qu'elle pourrait ne pas fonctionner comme prévu.",
+ "{size} used" : "{size} utilisés",
"Unknown" : "Inconnu",
"Never" : "Jamais",
"Could not register device: Network error" : "Impossible d’enregistrer l’appareil : erreur réseau",
@@ -836,8 +568,10 @@
"Could not set group sorting" : "Impossible de définir le tri des groupes",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Il y a trop de requêtes depuis votre réseau. Réessayez plus tard ou contactez votre administrateur s'il s'agit d'une erreur.",
"Error" : "Erreur",
+ "Default quota" : "Quota par défaut",
"Account documentation" : "Documentation utilisateur",
"Administration documentation" : "Documentation de l'administration",
+ "Documentation" : "Documentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Ressources d’aide Nextcloud & de confidentialité",
"General documentation" : "Documentation générale",
@@ -860,6 +594,7 @@
"SMTP Password" : "Mot de passe SMTP",
"Save" : "Enregistrer",
"Test and verify email settings" : "Tester les paramètres de messagerie",
+ "Send email" : "Envoyer un e-mail",
"Security & setup warnings" : "Avertissements de sécurité & configuration",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Il est important pour la sécurité et la performance de votre instance que celle-ci soit correctement configurée. Afin de vous aider, votre instance Nextcloud effectue des vérifications automatiques. Pour de plus amples informations, veuillez consulter la documentation liée.",
"All checks passed." : "Tous les contrôles ont été effectués avec succès.",
@@ -879,50 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "Utilisez un second facteur d'authentification en plus de votre mot de passe pour renforcer la sécurité de votre compte.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si vous utilisez des applications tierces pour vous connecter à Nextcloud, assurez-vous de créer et de configurer un mot de passe d'application pour chacune avant d'activer l'authentification à deux facteurs.",
"Logged in account must be a subadmin" : "Le compte connecté doit être un sous-administrateur",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Pour autoriser cette vérification, pour devez vous assurer que votre serveur web peut se connecter à lui-même. Il doit donc être capable de résoudre et de se connecter à au moins un de ses `trusted_domains` ou à l'URL `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Index optionnels manquants « %s » dans la table « %s ».",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "La base de données a quelques index manquants. L'ajout d'index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant \"occ db:add-missing-indices\", ces index manquants pourront être ajoutés manuellement pendant que l'instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Pour autoriser cette vérification, pour devez vous assurer que votre serveur web peut se connecter à lui-même. Il doit donc être capable de résoudre et de se connecter à au moins un de ses `trusted_domains` ou à l'URL `overwrite.cli.url`. Cet échec peut être le résultat d'une erreur de DNS côté serveur ou d'une règle de pare-feu sortante.",
"File locking" : "Verrouillage des fichiers",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Le verrouillage transactionnel de fichiers est désactivé, cela peut causer des conflits en cas d'accès concurrent. Configurez « filelocking.enabled » dans config.php pour éviter ces problèmes.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Impossible de vérifier la prise en charge Javascript via l’un de vos `trusted_domains` ou `overwrite.cli.url`. Cela peut résulter d’une incompatibilité DNS côté serveur ou d’une règle de pare-feu sortante. Veuillez vérifier manuellement si votre serveur web sert des fichiers `.mjs` utilisant le type MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "La limite de mémoire PHP est sous la valeur recommandée de %s.",
"for WebAuthn passwordless login" : "pour WebAuthn pour la connexion sans mot de passe",
"for WebAuthn passwordless login, and SFTP storage" : "pour WebAuthn pour la connexion sans mot de passe, et le stockage SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Vous exécutez actuellement PHP %s. PHP 8.0 est maintenant obsolète pour Nextcloud 27. Nextcloud 28 nécessite au moins PHP 8.1. Veuillez mettre à jour vers l'une des versions PHP officiellement compatibles fournies par le PHP Group dès que possible.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" est utilisé. Nextcloud 21 et plus ne sont plus compatibles avec cette version et nécessitent MariaDB 10.2 ou plus.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" est utilisé. Nextcloud 21 et plus ne sont plus compatibles avec cette version et nécessitent MySQL 8.0 or MariaDB 10.2 ou plus.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" est utilisé. Nextcloud 21 et plus ne sont plus compatibles avec cette version et nécessitent PostgreSQL 9.6 ou plus.",
- "Speech-To-Text" : "Synthèse vocale",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "La reconnaissance vocale peut être implémentée par différentes applications. Vous pouvez définir ici quelle application doit être utilisée.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Aucune des applications actuellement installées ne fournit la fonctionnalité de reconnaissance vocale.",
- "None of your currently installed apps provide Text processing functionality" : "Aucune des applications actuellement installées ne fournit la fonctionnalité de génération de texte.",
- "Set default expiration date for shares" : "Définir par défaut une date d’expiration pour les partages",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Autoriser l'autocomplétion du nom d'utilisateur dans le dialogue de partage et permettre l'accès au carnet d'adresses système",
- "Your biography" : "Votre biographie",
- "You are using <strong>{usage}</strong>" : "Vous utilisez <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Vous utilisez <strong>{usage}</strong> sur <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Définir le supérieur de l'utilisateur",
- "Username will be autogenerated" : "Le nom d’utilisateur sera généré automatiquement",
- "Username (required)" : "Nom d’utilisateur (requis)",
- "New user" : "Nouvel utilisateur",
- "Groups (required)" : "Groupes (requis)",
- "Set user groups" : "Définir les groupes d'utilisateurs",
- "Administered groups" : "Groupes administrés",
- "Set user as admin for …" : "Définir l'utilisateur comme administrateur pour…",
- "Set user quota" : "Définir le quota de l'utilisateur",
- "Add new user" : "Ajouter un nouvel utilisateur",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} utilisateur …","{userCount} utilisateurs …","{userCount} utilisateurs…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} utilisateur","{userCount} utilisateurs","{userCount} utilisateurs"],
- "Loading users …" : "Chargement des utilisateurs...",
- "Username" : "Nom d’utilisateur",
- "User backend" : "Origine du compte",
- "User actions" : "Actions de l'utilisateur",
- "Add user to group" : "Ajouter l'utilisateur au groupe",
- "Server error while trying to add WebAuthn device" : "Erreur du serveur lors de l'ajout du périphérique WebAuthn",
- "Name your device" : "Nommez votre périphérique",
- "Active accounts" : "Comptes actifs",
- "Follow us on Twitter" : "Suivez-nous sur Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Pour autoriser cette vérification, pour devez vous assurer que votre serveur web peut se connecter à lui-même. Il doit donc être capable de résoudre et de se connecter à au moins un de ses `trusted_domains` ou à l'URL `overwrite.cli.url`. Cet échec peut être le résultat d'une erreur de DNS côté serveur ou d'une règle de pare-feu sortante.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Version PostgreSQL \"%s\" détectée. PostgreSQL >= 12 et <= 16 sont recommandés pour de meilleures performances, stabilité et fonctionnalités avec cette version de Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- L’en-tête HTTP `%1$s` ne contient pas `%2$s`. Ceci constitue un risque potentiel relatif à la sécurité et à la confidentialité, il est recommandé d’ajuster ce paramètre.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Version PostgreSQL \"%s\" détectée. PostgreSQL >= 12 et <= 16 sont recommandés pour de meilleures performances, stabilité et fonctionnalités avec cette version de Nextcloud.",
+ "Set default expiration date for shares" : "Définir par défaut une date d’expiration pour les partages"
},"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/settings/l10n/ga.js b/apps/settings/l10n/ga.js
index 446b8da10c5..a0dd56f9187 100644
--- a/apps/settings/l10n/ga.js
+++ b/apps/settings/l10n/ga.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "Ceanntásca HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- Níl an ceanntásc HTTP `%1$s` socraithe go `%2$s`. Seans nach n-oibreoidh roinnt gnéithe i gceart, mar moltar an socrú seo a choigeartú dá réir.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Níl an ceanntásc HTTP `%1$s` socraithe go `%2$s`. Is riosca slándála nó príobháideachta féideartha é seo, mar moltar an socrú seo a choigeartú dá réir.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Níl `%2$s` sa cheanntásc HTTP `%1$s`. Is riosca slándála nó príobháideachta féideartha é seo, mar moltar an socrú seo a choigeartú dá réir.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Níl an ceanntásc HTTP `%1$s` socraithe mar `%2$s`, `%3$s`, `%4$s`, `%5$s` nó `%6$s`. Is féidir leis seo faisnéis atreoraithe a sceitheadh. Féach ar an {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Níl an ceanntásc HTTP `Strict-Transport-Security` socraithe go dtí `%d` soicind ar a laghad (luach reatha: `%d`). Ar mhaithe le slándáil fheabhsaithe, moltar beartas fada HSTS a úsáid.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Tá an ceanntásc HTTP `Strict-Transport-Security` míchumtha: `%s`. Ar mhaithe le slándáil fheabhsaithe, moltar HSTS a chumasú.",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "Ailtireacht",
"64-bit" : "64-giotán",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Is cosúil go bhfuil leagan PHP 32-giotán á rith agat. Tá 64-giotán ag teastáil ó Nextcloud chun go n-éireoidh go maith. Uasghrádaigh do OS agus PHP go 64-giotán le do thoil!",
+ "Task Processing pickup speed" : "Luas bailithe Próiseála Tascanna",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra."],
"Temporary space available" : "Spás sealadach ar fáil",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Earráid agus an cosán PHP sealadach á sheiceáil - níor socraíodh go heolaire é i gceart. Luach aischurtha: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Tá an fheidhm PHP \"disk_free_space\" díchumasaithe, rud a chuireann cosc ​​​​ar an seiceáil le haghaidh spás leordhóthanach sna heolairí sealadacha.",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Níorbh fhéidir ábhar na rannóige a lódáil ón appstore.",
"Loading" : "Ag lódáil",
"Fetching the latest news…" : "An nuacht is déanaí á bhfáil…",
- "Carousel" : "Timpealláin",
- "Previous slide" : "Sleamhnán roimhe seo",
- "Next slide" : "Sleamhnán seo chugainn",
- "Choose slide to display" : "Roghnaigh sleamhnán le taispeáint",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Deamhan",
- "Deploy Daemon" : "Imscaradh Deamhan",
- "Type" : "Cineál",
- "Display Name" : "Ainm taispeána",
- "GPUs support" : "Tacaíocht GPUs",
- "Compute device" : "Gléas ríomh",
- "Advanced deploy options" : "Ardroghanna imscaradh",
- "Edit ExApp deploy options before installation" : "Cuir roghanna imlonnaithe ExApp in eagar roimh an tsuiteáil",
- "Configured ExApp deploy options. Can be set only during installation" : "Roghanna imlonnaithe ExApp cumraithe. Ní féidir é a shocrú ach amháin le linn na suiteála",
- "Learn more" : "Foghlaim níos mó",
- "Environment variables" : "Athróga timpeallachta",
- "ExApp container environment variables" : "Athróga timpeallachta coimeádán ExApp",
- "No environment variables defined" : "Níl aon athróg timpeallachta sainithe",
- "Mounts" : "Feistis",
- "Define host folder mounts to bind to the ExApp container" : "Sainmhínigh gléasanna an fhillteáin óstaigh chun ceangal leis an gcoimeádán ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Ní mór a bheith ar an ósta Deploy Deploy roimh shuiteáil an ExApp",
- "Host path" : "Cosán óstach",
- "Container path" : "Cosán coimeádán",
- "Read-only" : "Inléite-amháin",
- "Remove mount" : "Bain feisteas",
- "New mount" : "Feisteas nua",
- "Enter path to host folder" : "Cuir isteach cosán chuig an bhfillteán óstach",
- "Enter path to container folder" : "Cuir isteach an cosán chuig an bhfillteán coimeádán",
- "Toggle read-only mode" : "Scoránaigh mód inléite-amháin",
- "Confirm adding new mount" : "Deimhnigh feisteas nua a chur leis",
- "Confirm" : "Deimhnigh",
- "Cancel adding mount" : "Cealaigh feisteas a chur leis",
- "Cancel" : "Cealaigh",
- "Add mount" : "Cuir feisteas",
- "ExApp container mounts" : "Feisteas coimeádán ExApp",
- "No mounts defined" : "Níl aon feisteas sainithe",
- "Description" : "Cur síos",
- "View in store" : "Amharc sa siopa",
- "Visit website" : "Tabhair cuairt ar an suíomh Gréasáin",
- "Usage documentation" : "Doiciméadú úsáide",
- "Admin documentation" : "Doiciméadúchán riaracháin",
- "Developer documentation" : "Doiciméadú forbróra",
- "Details" : "Sonraí",
- "All" : "Gach",
- "Limit app usage to groups" : "Teorainn úsáid aipeanna go grúpaí",
- "No results" : "Gan torthaí",
- "Update to {version}" : "Nuashonraigh go {version}",
- "Deploy options" : "Roghanna imscaradh",
- "Default Deploy daemon is not accessible" : "Níl an deamhan Réamhshocrú Imscaradh inrochtana",
- "Delete data on remove" : "Scrios sonraí ar bhaint",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Níl aon leagan íosta de Nextcloud sannta don aip seo. Earráid a bheidh anseo sa todhchaí.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Níl aon leagan Nextcloud uasta sannta don aip seo. Earráid a bheidh anseo sa todhchaí.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ní féidir an aip seo a shuiteáil toisc nach bhfuil na spleáchais seo a leanas comhlíonta:",
- "Latest updated" : "Nuashonraithe is déanaí",
- "Author" : "Údar",
- "Categories" : "Catagóirí",
- "Resources" : "Acmhainní",
- "Documentation" : "Doiciméadúchán",
- "Interact" : "Idirghníomhú",
- "Report a bug" : "Tuairiscigh fabht",
- "Request feature" : "Iarr gné",
- "Ask questions or discuss" : "Cuir ceisteanna nó pléigh",
- "Rate the app" : "Ráta an app",
- "Rate" : "Ráta",
- "Changelog" : "Loga athrú",
- "Google Chrome for Android" : "Google chrome le haghaidh Android saor in aisce",
- "{productName} iOS app" : "{productName} aip iOS",
- "{productName} Android app" : "{productName} aip Android",
- "{productName} Talk for iOS" : "{productName} Labhair le haghaidh iOS",
- "{productName} Talk for Android" : "{productName} Labhair le haghaidh Android",
- "Sync client" : "Sioncrónaigh cliant",
- "This session" : "An seisiún seo",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Ainm an ghléis",
- "Cancel renaming" : "Cealaigh athainmniú",
- "Save new name" : "Sábháil ainm nua",
- "Marked for remote wipe" : "Marcáilte le haghaidh glanadh cianda",
- "Device settings" : "Socruithe gléis",
- "Allow filesystem access" : "Ceadaigh rochtain ar an gcóras comhad",
- "Rename" : "Athainmnigh",
- "Revoke" : "Chúlghairm",
- "Wipe device" : "Wipe gléas",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Má dhéantar an comhartha seo a aisghairm, d'fhéadfadh sé go gcuirfí cosc ar do ghléas a ghlanadh mura bhfuil an cuimilteoir tosaithe fós.",
- "Device" : "Gléas",
- "Last activity" : "An ghníomhaíocht dheireanach",
- "Devices & sessions" : "Gléasanna & seisiúin",
- "Web, desktop and mobile clients currently logged in to your account." : "Tá cliaint ghréasáin, deisce agus móibíleacha logáilte isteach i do chuntas faoi láthair.",
- "Error while creating device token" : "Earráid agus comhartha gléis á chruthú",
- "App name" : "Ainm aip",
- "Create new app password" : "Cruthaigh pasfhocal feidhmchlár nua",
"App password copied!" : "Cóipeáladh pasfhocal na haipe!",
"Copy app password" : "Cóipeáil pasfhocal an aip",
"Login name copied!" : "Cóipeáladh an t-ainm logáil isteach!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Ní féidir socrú réamhshocraithe na próifíle a nuashonrú",
"Profile" : "Próifíl",
"Enable or disable profile by default for new accounts." : "Cumasaigh nó díchumasaigh próifíl de réir réamhshocraithe le haghaidh cuntas nua.",
+ "Password confirmation is required" : "Tá deimhniú pasfhocail ag teastáil",
"Failed to save setting" : "Theip ar an socrú a shábháil",
"{app}'s declarative setting field: {name}" : "Réimse socruithe dearbhaithe {app}'s: {name}",
"Unable to update server side encryption config" : "Ní féidir an chumraíocht chriptiúcháin ar thaobh an fhreastalaí a nuashonrú",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Is maith i gcónaí cúltacaí rialta de do shonraí a chruthú, i gcás criptithe déan cinnte cúltaca a dhéanamh de na heochracha criptithe chomh maith le do shonraí.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Déan tagairt don doiciméadú riaracháin maidir le conas comhaid atá ann cheana a chriptiú de láimh freisin.",
"This is the final warning: Do you really want to enable encryption?" : "Seo é an rabhadh deiridh: Ar mhaith leat criptiúchán a chumasú?",
- "Failed to remove group \"{group}\"" : "Theip ar an ngrúpa \"{group}\" a bhaint",
+ "Failed to delete group \"{group}\"" : "Theip ar an ngrúpa \"{group}\" a scriosadh",
"Please confirm the group removal" : "Deimhnigh baint an ghrúpa",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Tá tú ar tí an grúpa \"{group}\" a bhaint. NÍ scriosfar na cuntais.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Tá tú ar tí an grúpa \"{group}\" a scriosadh. NÍ scriosfar na cuntais.",
+ "Cancel" : "Cealaigh",
+ "Confirm" : "Deimhnigh",
"Submit" : "Cuir isteach",
"Rename group" : "Athainmnigh an grúpa",
- "Remove group" : "Bain an grúpa",
- "Current password" : "Pasfhocal reatha",
- "New password" : "Focal Faire Nua",
- "Change password" : "Athraigh do phasfhocal",
- "Choose your profile picture" : "Roghnaigh do phictiúr próifíle",
- "Please select a valid png or jpg file" : "Roghnaigh comhad png nó jpg bailí le do thoil",
- "Error setting profile picture" : "Earráid agus pictiúr próifíle á shocrú",
- "Error cropping profile picture" : "Earráid agus pictiúr próifíle á bhearradh",
- "Error saving profile picture" : "Earráid agus pictiúr próifíle á shábháil",
- "Error removing profile picture" : "Earráid agus an pictiúr próifíle á bhaint",
- "Your profile picture" : "Do phictiúr próifíle",
- "Upload profile picture" : "Íosluchtaigh pictiúr próifíl",
- "Choose profile picture from Files" : "Roghnaigh pictiúr próifíle ó Chomhaid",
- "Remove profile picture" : "Bain pictiúr próifíle",
- "The file must be a PNG or JPG" : "Caithfidh an comhad a bheith ina PNG nó JPG",
- "Picture provided by original account" : "Pictiúr curtha ar fáil ag an mbunchuntas",
- "Set as profile picture" : "Socraigh mar phictiúr próifíle",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tabhair faoi deara go bhféadfadh sé suas le 24 uair an chloig a ghlacadh chun do phictiúr próifíle a nuashonrú i ngach áit.",
- "Your biography. Markdown is supported." : "Do bheathaisnéis. Tacaítear le Markdown.",
- "Unable to update date of birth" : "Ní féidir an dáta breithe a nuashonrú",
- "Enter your date of birth" : "Cuir isteach do dháta breithe",
- "You are using {s}{usage}{/s}" : "Tá tú ag úsáid {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Tá tú ag úsáid{s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Tá tú i do bhall de na grúpaí seo a leanas:",
- "Your full name" : "D'ainm iomlán",
- "Email options" : "Roghanna ríomhphoist",
- "Options for additional email address {index}" : "Roghanna le haghaidh seoladh ríomhphoist breise {index}",
- "Remove primary email" : "Bain príomhsheoladh ríomhphoist",
- "Delete email" : "Scrios ríomhphost",
- "This address is not confirmed" : "Níl an seoladh seo deimhnithe",
- "Unset as primary email" : "Díshuiteáil mar phríomhphost ríomhphoist",
- "Set as primary email" : "Socraigh mar phríomh-ríomhphost",
- "Additional email address {index}" : "Seoladh ríomhphoist breise {index}",
- "Unable to delete primary email address" : "Ní féidir an príomhsheoladh ríomhphoist a scriosadh",
- "Unable to update primary email address" : "Ní féidir an príomhsheoladh ríomhphoist a nuashonrú",
- "Unable to add additional email address" : "Ní féidir seoladh ríomhphoist breise a chur leis",
- "Unable to update additional email address" : "Ní féidir seoladh ríomhphoist breise a nuashonrú",
- "Unable to delete additional email address" : "Ní féidir seoladh ríomhphoist breise a scriosadh",
- "Primary email for password reset and notifications" : "Príomh-ríomhphost le haghaidh athshocrú pasfhocal agus fógraí",
- "No email address set" : "Níl seoladh ríomhphoist socraithe",
- "Your handle" : "Do láimhseáil",
- "Derived from your locale ({weekDayName})" : "Díorthaithe ó do logán ({weekDayName})",
- "Unable to update first day of week" : "Ní féidir an chéad lá den tseachtain a nuashonrú",
- "Day to use as the first day of week" : "Lá a úsáid mar an chéad lá den tseachtain",
- "Your headline" : "Do cheannlíne",
- "Unable to update language" : "Ní féidir an teanga a nuashonrú",
- "Languages" : "Teangacha",
- "Help translate" : "Cabhraigh le haistriú",
- "No language set" : "Gan tacar teanga",
- "Unable to update locale" : "Ní féidir locale a nuashonrú",
- "Locales" : "Logánta",
- "Week starts on {firstDayOfWeek}" : "Tosaíonn an tseachtain ar {firstDayOfWeek}",
- "No locale set" : "Gan tacar locale",
- "Your city" : "Do chathair",
- "Your organisation" : "D'eagraíocht",
- "Your phone number" : "D'uimhir theileafóin",
- "Edit your Profile visibility" : "Cuir infheictheacht do Phróifíl in eagar",
- "Unable to update profile enabled state" : "Ní féidir staid chumasaithe na próifíle a nuashonrú",
- "Enable profile" : "Cumasaigh próifíl",
- "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." : "Tá meas ar do Phróifíl ar shocrú níos sriantaí infheictheachta nó scóip. Mar shampla, má tá an infheictheacht socraithe mar \"Taispeáin do chách\" agus go bhfuil an raon feidhme socraithe go \"Príobháideach\", meastar \"Príobháideach\".",
- "Unable to update visibility of {displayId}" : "Ní féidir infheictheacht {displayId} a nuashonrú",
- "she/her" : "sí/léi",
- "he/him" : "sé/dó",
- "they/them" : "siad/siad",
- "Your role" : "Do ról",
- "Your X (formerly Twitter) handle" : "Láimhseálann do X (Twitter roimhe seo).",
- "Your website" : "Do láithreán gréasáin",
- "Invalid value" : "Luach neamhbhailí",
- "Unable to update {property}" : "Ní féidir {property} a nuashonrú",
- "No {property} set" : "Níl {property} socraithe",
- "Change scope level of {property}, current scope is {scope}" : "Athraigh leibhéal scóip {property}, is é {scope} an raon feidhme reatha",
- "Unable to update federation scope of the primary {property}" : "Níorbh fhéidir scóip chónaidhme na príomh-{property} a nuashonrú",
- "Unable to update federation scope of additional {property}" : "Níorbh fhéidir scóip chónaidhme {property}maoin bhreise a nuashonrú",
- "Add additional email" : "Cuir ríomhphost breise leis",
- "Add" : "Cuir",
- "Create" : "Cruthaigh",
- "Change" : "Athrú",
- "Delete" : "Scrios",
- "Reshare" : "Roinn arís",
- "Default language" : "Teanga réamhshocraithe",
- "Common languages" : "Teangacha coitianta",
- "Other languages" : "Teangacha eile",
- "Password change is disabled because the master key is disabled" : "Tá athrú pasfhocal díchumasaithe toisc go bhfuil an máistir-eochair díchumasaithe",
- "No accounts" : "Gan cuntais",
- "Loading accounts …" : "Cuntais á lódáil…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Liosta cuntas. Níl an liosta seo le fáil go hiomlán ar chúiseanna feidhmíochta. Déanfar na cuntais a rindreáil agus tú ag dul tríd an liosta.",
- "Manager" : "Bainisteoir",
- "Set line manager" : "Socraigh bainisteoir líne",
- "Account name will be autogenerated" : "Déanfar ainm an chuntais a ghiniúint go huathoibríoch",
- "Account name (required)" : "Ainm an chuntais (riachtanach)",
- "Failed to search groups" : "Theip ar chuardach grúpaí",
- "New account" : "Cuntas nua",
- "Display name" : "Ainm taispeána",
- "Either password or email is required" : "Tá pasfhocal nó ríomhphost ag teastáil",
- "Password (required)" : "Pasfhocal (riachtanach)",
- "Email (required)" : "Ríomhphost (riachtanach)",
- "Email" : "Ríomhphost",
- "Member of the following groups (required)" : "Ball de na grúpaí seo a leanas (riachtanach)",
- "Member of the following groups" : "Ball de na grúpaí seo a leanas",
- "Set account groups" : "Socraigh grúpaí cuntais",
- "Admin of the following groups" : "Riarachán na ngrúpaí seo a leanas",
- "Set account as admin for …" : "Socraigh cuntas mar riarthóir do…",
- "Quota" : "Cuóta",
- "Set account quota" : "Socraigh cuóta cuntais",
- "Language" : "Teanga",
- "Set default language" : "Socraigh teanga réamhshocraithe",
- "Add new account" : "Cuir cuntas nua leis",
- "_{userCount} account …_::_{userCount} accounts …_" : ["cuntas {userCount}…","cuntais {userCount}…","cuntais {userCount}…","cuntais {userCount}…","cuntais {userCount}…"],
- "_{userCount} account_::_{userCount} accounts_" : ["cuntas {userCount}","cuntais {userCount}","cuntais {userCount}","cuntais {userCount}","cuntais {userCount}"],
- "Total rows summary" : "Achoimre ar na sraitheanna iomlána",
- "Scroll to load more rows" : "Scrollaigh chun tuilleadh sraitheanna a lódáil",
- "Password or insufficient permissions message" : "Pasfhocal nó teachtaireacht ceadanna neamhleor",
- "Avatar" : "Avatar",
- "Account name" : "Ainm chuntais",
- "Group admin for" : "Riarachán grúpa le haghaidh",
- "Account backend" : "Inneall chuntais",
- "Storage location" : "Suíomh stórála",
- "First login" : "An chéad logáil isteach",
- "Last login" : "Logáil isteach deiridh",
- "Account actions" : "Gníomhartha cuntais",
- "{size} used" : "{size} in úsáid",
- "Delete account" : "Scrios cuntas",
- "Disconnect all devices and delete local data" : "Déan gach gléas a dhícheangal agus scrios sonraí áitiúla",
- "Disable account" : "Díchumasaigh cuntas",
- "Enable account" : "Cumasaigh cuntas",
- "Resend welcome email" : "Seol ríomhphost fáilte arís",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Sa chás go gcailltear gléas nó go bhfágann sé an eagraíocht, is féidir leis seo sonraí Nextcloud a scriosadh go cianda ó gach gléas a bhaineann le {userid}. Ní oibríonn sé ach amháin má tá na gléasanna nasctha leis an Idirlíon.",
- "Remote wipe of devices" : "Cianda wipe gléasanna",
- "Wipe {userid}'s devices" : "Glan gléasanna {userid}",
- "Wiped {userid}'s devices" : "Scriosadh gléasanna {userid}",
- "Failed to load groups with details" : "Theip ar lódáil na ngrúpaí le sonraí",
- "Failed to load sub admin groups with details" : "Theip ar lódáil foghrúpaí riaracháin le sonraí",
- "Failed to update line manager" : "Theip ar an mbainisteoir líne a nuashonrú",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Scrios go hiomlán cuntas {userid} lena n-áirítear a chomhaid phearsanta go léir, sonraí aipe, etc.",
- "Account deletion" : "Scriosadh cuntais",
- "Delete {userid}'s account" : "Scrios cuntas {userid}",
- "Display name was successfully changed" : "D'éirigh le hathrú an ainm taispeána",
- "Password can't be empty" : "Ní féidir le pasfhocal a bheith folamh",
- "Password was successfully changed" : "Athraíodh an pasfhocal go rathúil",
- "Email can't be empty" : "Ní féidir le ríomhphost a bheith folamh",
- "Email was successfully changed" : "D'éirigh le hathrú an ríomhphoist",
- "Welcome mail sent!" : "Fáilte seolta!",
- "Loading account …" : "Cuntas á lódáil…",
- "Change display name" : "Athraigh an t-ainm taispeána",
- "Set new password" : "Socraigh pasfhocal nua",
- "You do not have permissions to see the details of this account" : "Níl cead agat sonraí an chuntais seo a fheiceáil",
- "Set new email address" : "Socraigh seoladh ríomhphoist nua",
- "Add account to group" : "Cuir cuntas leis an ngrúpa",
- "Set account as admin for" : "Socraigh cuntas mar riarthóir do",
- "Select account quota" : "Roghnaigh cuóta cuntais",
- "Set the language" : "Socraigh an teanga",
- "Toggle account actions menu" : "Scoránaigh roghchlár gníomhartha cuntais",
- "Done" : "Déanta",
- "Edit" : "Cuir in eagar",
- "Account management settings" : "Socruithe bainistíochta cuntais",
- "Visibility" : "Infheictheacht",
- "Show language" : "Taispeáin teanga",
- "Show account backend" : "Taispeáin inneall an chuntais",
- "Show storage path" : "Taispeáin cosán stórála",
- "Show first login" : "Taispeáin an chéad logáil isteach",
- "Show last login" : "Taispeáin logáil isteach deiridh",
- "Sorting" : "Sórtáil",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Forfheidhmíonn cumraíocht an chórais na grúpaí a shórtáil de réir ainm. Díchumasaítear é seo freisin líon na mball a thaispeáint.",
- "Group list sorting" : "Sórtáil liostaí grúpa",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Ní bhaineann an sórtáil ach leis na grúpaí luchtaithe faoi láthair ar chúiseanna feidhmíochta. Déanfar grúpaí a luchtú agus tú ag dul tríd an liosta nó ag cuardach tríd an liosta.",
- "By member count" : "De réir líon na mball",
- "By name" : "De réir ainm",
- "Send email" : "Seol ríomhphost",
- "Send welcome email to new accounts" : "Seol ríomhphost fáilte chuig cuntais nua",
- "Defaults" : "Réamhshocruithe",
- "Default quota" : "Cuóta réamhshocraithe",
- "Select default quota" : "Roghnaigh cuóta réamhshocraithe",
- "Server error while trying to complete WebAuthn device registration" : "Earráid fhreastalaí agus iarracht á déanamh clárú gléis WebAuthn a chur i gcrích",
- "Passwordless authentication requires a secure connection." : "Teastaíonn nasc slán le fíordheimhniú gan pasfhocal.",
- "Add WebAuthn device" : "Cuir gléas WebAuthn leis",
- "Please authorize your WebAuthn device." : "Ceadaigh do ghléas WebAuthn le do thoil.",
- "Adding your device …" : "Ag cur do ghléas leis…",
- "Unnamed device" : "Gléas gan ainm",
- "Passwordless Authentication" : "Fíordheimhniú gan Pasfhocal",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Socraigh do chuntas le haghaidh fíordheimhnithe gan pasfhocal de réir chaighdeán FIDO2.",
- "No devices configured." : "Níl aon ghléas cumraithe.",
- "The following devices are configured for your account:" : "Tá na gléasanna seo a leanas cumraithe do do chuntas:",
- "Your browser does not support WebAuthn." : "Ní thacaíonn do bhrabhsálaí le WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Mar riarthóir is féidir leat an t-iompar comhroinnte a mhionchoigeartú. Féach ar na doiciméid le haghaidh tuilleadh eolais le do thoil.",
- "You need to enable the File sharing App." : "Ní mór duit an App Roinnte Comhad a chumasú.",
- "App Store" : "Siopa aip",
- "Loading app list" : "Liosta feidhmchlár á lódáil",
- "Loading categories" : "Catagóirí á lódáil",
- "Developer documentation ↗" : "Doiciméadú forbróra ↗",
- "Version {version}, {license}-licensed" : "Leagan {version}, {license}-cheadúnaithe",
- "Version {version}" : "Leagan {version}",
- "All accounts" : "Gach cuntas",
- "Admins" : "Riarthóirí",
- "Account group: {group}" : "Grúpa cuntais: {group}",
- "Account management" : "Bainistíocht cuntais",
+ "Delete group" : "Scrios grúpa",
"Sending…" : "Á sheoladh…",
"Email sent" : "Ríomhphost seolta",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Ar chúiseanna feidhmíochta, nuair a chumasaíonn tú criptiú ar fhreastalaí Nextcloud ní dhéantar ach comhaid nua agus athraithe a chriptiú.",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "Dáta breithe",
"Full name" : "Ainm iomlán",
"Additional email" : "Ríomhphost breise",
+ "Email" : "Ríomhphost",
"Fediverse (e.g. Mastodon)" : "Fediverse (m.sh. Mastodon)",
"Headline" : "Ceannlíne",
"Organisation" : "Eagraíocht",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (Twitter roimhe seo)",
"Website" : "Suíomh Gréasáin",
"Profile visibility" : "Infheictheacht próifíle",
+ "Language" : "Teanga",
"Locale" : "Logán",
"First day of week" : "An chéad lá den tseachtain",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Níl sé ar fáil toisc go bhfuil an t-airí seo ag teastáil le haghaidh feidhmiúlacht lárnach lena n-áirítear comhroinnt comhad agus cuirí féilire",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Taispeáin go cuntais logáilte isteach amháin",
"Hide" : "Folaigh",
"Manually installed apps cannot be updated" : "Ní féidir aipeanna atá suiteáilte de láimh a nuashonrú",
+ "Update to {version}" : "Nuashonraigh go {version}",
"{progress}% Deploying …" : "{progress}% Ag imscaradh …",
"{progress}% Initializing …" : "{progress}% Ag tosú…",
"Health checking" : "Seiceáil sláinte",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Ceadaigh aip neamhthástáilte",
"The app will be downloaded from the App Store" : "Déanfar an aip a íoslódáil ón Siopa Aip",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Níl an aip seo marcáilte mar chomhoiriúnach le do leagan Nextcloud. Má leanann tú ar aghaidh beidh tú fós in ann an aip a shuiteáil. Tabhair faoi deara go bhféadfadh sé nach n-oibreoidh an aip mar a bhíothas ag súil leis.",
+ "{size} used" : "{size} in úsáid",
"Unknown" : "Anaithnid",
"Never" : "Riamh",
"Could not register device: Network error" : "Níorbh fhéidir gléas a chlárú: Earráid líonra",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Níorbh fhéidir sórtáil grúpa a shocrú",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Tháinig an iomarca iarratas ó do líonra. Bain triail eile as ar ball nó déan teagmháil le do riarthóir más earráid é seo.",
"Error" : "Earráid",
+ "Default quota" : "Cuóta réamhshocraithe",
"Account documentation" : "Doiciméadú cuntais",
"Administration documentation" : "Doiciméid riaracháin",
+ "Documentation" : "Doiciméadúchán",
"Forum" : "Fóram",
"Nextcloud help & privacy resources" : "Cabhair & acmhainní príobháideachais Nextcloud",
"General documentation" : "Doiciméadúchán ginearálta",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "Pasfhocal SMTP",
"Save" : "Sábháil",
"Test and verify email settings" : "Tástáil agus fíoraigh socruithe ríomhphoist",
+ "Send email" : "Seol ríomhphost",
"Security & setup warnings" : "Rabhaidh slándála & socraithe",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Tá sé tábhachtach ar mhaithe le slándáil agus feidhmíocht do chás go bhfuil gach rud cumraithe i gceart. Chun cabhrú leat leis sin táimid ag déanamh roinnt seiceálacha uathoibríocha. Féach ar an doiciméadú nasctha le haghaidh tuilleadh eolais le do thoil.",
"All checks passed." : "Gach seic a rith.",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Úsáid fachtóir eile seachas do phasfhocal chun slándáil do chuntais a mhéadú.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Má úsáideann tú feidhmchláir tríú páirtí chun nascadh le Nextcloud, déan cinnte le do thoil pasfhocal aipe a chruthú agus a chumrú le haghaidh gach ceann acu sula gceadaítear fíordheimhniú dara fachtóir.",
"Logged in account must be a subadmin" : "Ní mór gur fo-riarachán é cuntas logáilte isteach",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Le gur féidir an tseiceáil seo a rith caithfidh tú a chinntiú gur féidir le do fhreastalaí gréasáin nascadh leis féin. Mar sin caithfidh sé a bheith in ann réiteach agus ceangal a dhéanamh le ceann amháin ar a laghad dá `fearainn_iontaofa` nó don `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Innéacs roghnach \"%s\" ar iarraidh i dtábla \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Tá roinnt innéacsanna in easnamh ar an mbunachar sonraí. Toisc go bhféadfadh go dtógfadh roinnt ama innéacsanna a chur leis na táblaí móra níor cuireadh leis go huathoibríoch iad. Trí \"occ db:add-missing-indices\" a rith, d'fhéadfaí na hinnéacsanna sin atá in easnamh a chur leis de láimh agus an ásc ag feidhmiú i gcónaí. Nuair a chuirtear na hinnéacsanna isteach is iondúil go mbíonn fiosruithe ar na táblaí sin i bhfad níos tapúla.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Le gur féidir an tseiceáil seo a rith caithfidh tú a chinntiú gur féidir le do fhreastalaí Gréasáin nascadh leis féin. Mar sin caithfidh sé a bheith in ann réiteach agus ceangal a dhéanamh le ceann amháin ar a laghad dá chuid `fearainn_iontaofa` nó an `overwrite.cli.url`. D'fhéadfadh an teip seo a bheith mar thoradh ar mhímheaitseáil DNS ar thaobh an fhreastalaí nó riail balla dóiteáin amach.",
"File locking" : "Glasáil comhaid",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Díchumasaítear glasáil comhad idirbhirt, d'fhéadfadh fadhbanna le coinníollacha cine a bheith mar thoradh air seo. Cumasaigh \"filelocking.enabled\" i config.php chun na fadhbanna seo a sheachaint.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Níorbh fhéidir tacaíocht JavaScript a fháil trí aon cheann de na `fearainn_ iontaofa` ná `overwrite.cli.url`. D'fhéadfadh sé seo a bheith mar thoradh ar mhímheaitseáil DNS ar thaobh an fhreastalaí nó riail balla dóiteáin amach. Seiceáil le do thoil de láimh an bhfreastalaíonn do fhreastalaí gréasáin ar chomhaid `.mjs` ag baint úsáide as an gcineál JavaScript MIME.",
"The PHP memory limit is below the recommended value of %s." : "Tá an teorainn chuimhne PHP faoi bhun an luach molta de %s.",
"for WebAuthn passwordless login" : "le haghaidh logáil isteach gan phasfhocal WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "le haghaidh logáil isteach WebAuthn gan phasfhocal, agus stóráil SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Tá PHP %s á rith agat faoi láthair. Tá PHP 8.0 dímheasta anois i Nextcloud 27. D'fhéadfadh go mbeadh PHP 8.1 ar a laghad ag teastáil ó Nextcloud 28. Uasghrádaigh go dtí ceann de na leaganacha PHP a fhaigheann tacaíocht oifigiúil ón nGrúpa PHP chomh luath agus is féidir le do thoil.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Úsáidtear leagan MariaDB \"%s\". Ní thacaíonn Nextcloud 21 agus níos airde leis an leagan seo agus éilíonn siad MariaDB 10.2 nó níos airde.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Úsáidtear leagan MySQL \"%s\". Ní thacaíonn Nextcloud 21 agus níos airde leis an leagan seo agus éilíonn siad MySQL 8.0 nó MariaDB 10.2 nó níos airde.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Úsáidtear leagan PostgreSQL \"%s\". Ní thacaíonn Nextcloud 21 agus níos airde leis an leagan seo agus éilíonn siad PostgreSQL 9.6 nó níos airde.",
- "Speech-To-Text" : "Óráid-go-Téacs",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Is féidir Óráid-go-Téacs a chur i bhfeidhm ag aipeanna éagsúla. Anseo is féidir leat a shocrú cén app ba chóir a úsáid.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ní sholáthraíonn aon cheann de na haipeanna atá suiteáilte agat faoi láthair feidhmiúlacht Óráid-go-Téacs",
- "None of your currently installed apps provide Text processing functionality" : "Ní sholáthraíonn aon cheann de na haipeanna atá suiteáilte agat faoi láthair feidhmiúlacht próiseála Téacs",
- "Set default expiration date for shares" : "Socraigh dáta éaga réamhshocraithe le haghaidh scaireanna",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Ceadaigh uathchríochnú ainm úsáideora sa dialóg scaireanna agus ceadaigh rochtain ar leabhar seoltaí an chóras",
- "Your biography" : "Do bheathaisnéis",
- "You are using <strong>{usage}</strong>" : "Tá tú ag úsáid <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Tá tú ag úsáid<strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Socraigh bainisteoir úsáideora",
- "Username will be autogenerated" : "Déanfar an t-ainm úsáideora a ghiniúint go huathoibríoch",
- "Username (required)" : "Ainm úsáideora (riachtanach)",
- "New user" : "Úsáideoir nua",
- "Groups (required)" : "Grúpaí (riachtanach)",
- "Set user groups" : "Socraigh grúpaí úsáideoirí",
- "Administered groups" : "Grúpaí riartha",
- "Set user as admin for …" : "Socraigh úsáideoir mar riarthóir do…",
- "Set user quota" : "Socraigh cuóta úsáideora",
- "Add new user" : "Cuir úsáideoir nua leis",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} úsáideoir…","{userCount} úsáideoirí…","{userCount} úsáideoirí…","{userCount} úsáideoirí…","{userCount} úsáideoirí…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} úsáideoir","{userCount} úsáideoirí","{userCount} úsáideoirí","{userCount} úsáideoirí","{userCount} úsáideoirí"],
- "Loading users …" : "Úsáideoirí á lódáil…",
- "Username" : "Ainm úsáideora",
- "User backend" : "Inneall úsáideora",
- "User actions" : "Gníomhartha úsáideora",
- "Add user to group" : "Cuir úsáideoir leis an ngrúpa",
- "Server error while trying to add WebAuthn device" : "Earráid fhreastalaí agus iarracht á déanamh gléas WebAuthn a chur leis",
- "Name your device" : "Ainmnigh do ghléas",
- "Active accounts" : "Cuntais ghníomhacha",
- "Follow us on Twitter" : "Lean muid ar Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Le gur féidir an tseiceáil seo a rith caithfidh tú a chinntiú gur féidir le do fhreastalaí Gréasáin nascadh leis féin. Mar sin caithfidh sé a bheith in ann réiteach agus ceangal a dhéanamh le ceann amháin ar a laghad dá chuid `fearainn_iontaofa` nó an `overwrite.cli.url`. D'fhéadfadh an teip seo a bheith mar thoradh ar mhímheaitseáil DNS ar thaobh an fhreastalaí nó riail balla dóiteáin amach.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Níl `%2$s` sa cheanntásc HTTP `%1$s`. Is riosca slándála nó príobháideachta féideartha é seo, mar moltar an socrú seo a choigeartú dá réir.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Braitheadh ​​leagan PostgreSQL \"%s\". Moltar PostgreSQL >=12 agus <=16 don fheidhmíocht is fearr, don chobhsaíocht agus don fheidhmiúlacht leis an leagan seo de Nextcloud.",
- "Failed to load subadmin groups with details" : "Theip ar lódáil na ngrúpaí fo-riaracháin le sonraí"
+ "Set default expiration date for shares" : "Socraigh dáta éaga réamhshocraithe le haghaidh scaireanna"
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/settings/l10n/ga.json b/apps/settings/l10n/ga.json
index 26bc9c799ea..bc5c341abe0 100644
--- a/apps/settings/l10n/ga.json
+++ b/apps/settings/l10n/ga.json
@@ -294,7 +294,6 @@
"HTTP headers" : "Ceanntásca HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- Níl an ceanntásc HTTP `%1$s` socraithe go `%2$s`. Seans nach n-oibreoidh roinnt gnéithe i gceart, mar moltar an socrú seo a choigeartú dá réir.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Níl an ceanntásc HTTP `%1$s` socraithe go `%2$s`. Is riosca slándála nó príobháideachta féideartha é seo, mar moltar an socrú seo a choigeartú dá réir.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Níl `%2$s` sa cheanntásc HTTP `%1$s`. Is riosca slándála nó príobháideachta féideartha é seo, mar moltar an socrú seo a choigeartú dá réir.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Níl an ceanntásc HTTP `%1$s` socraithe mar `%2$s`, `%3$s`, `%4$s`, `%5$s` nó `%6$s`. Is féidir leis seo faisnéis atreoraithe a sceitheadh. Féach ar an {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Níl an ceanntásc HTTP `Strict-Transport-Security` socraithe go dtí `%d` soicind ar a laghad (luach reatha: `%d`). Ar mhaithe le slándáil fheabhsaithe, moltar beartas fada HSTS a úsáid.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Tá an ceanntásc HTTP `Strict-Transport-Security` míchumtha: `%s`. Ar mhaithe le slándáil fheabhsaithe, moltar HSTS a chumasú.",
@@ -313,6 +312,10 @@
"Architecture" : "Ailtireacht",
"64-bit" : "64-giotán",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Is cosúil go bhfuil leagan PHP 32-giotán á rith agat. Tá 64-giotán ag teastáil ó Nextcloud chun go n-éireoidh go maith. Uasghrádaigh do OS agus PHP go 64-giotán le do thoil!",
+ "Task Processing pickup speed" : "Luas bailithe Próiseála Tascanna",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas.","Gan aon tascanna sceidealaithe le %n uair an chloig anuas."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas.","Tá luas bailithe na dtascanna ceart go leor le %n uair an chloig anuas."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra.","Tá luas bailithe na dtascanna mall le %n uair an chloig anuas. Thóg sé níos mó ná 4 nóiméad go leor tascanna a bhailiú. Smaoinigh ar oibrí a shocrú chun tascanna a phróiseáil sa chúlra."],
"Temporary space available" : "Spás sealadach ar fáil",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Earráid agus an cosán PHP sealadach á sheiceáil - níor socraíodh go heolaire é i gceart. Luach aischurtha: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Tá an fheidhm PHP \"disk_free_space\" díchumasaithe, rud a chuireann cosc ​​​​ar an seiceáil le haghaidh spás leordhóthanach sna heolairí sealadacha.",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "Níorbh fhéidir ábhar na rannóige a lódáil ón appstore.",
"Loading" : "Ag lódáil",
"Fetching the latest news…" : "An nuacht is déanaí á bhfáil…",
- "Carousel" : "Timpealláin",
- "Previous slide" : "Sleamhnán roimhe seo",
- "Next slide" : "Sleamhnán seo chugainn",
- "Choose slide to display" : "Roghnaigh sleamhnán le taispeáint",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Deamhan",
- "Deploy Daemon" : "Imscaradh Deamhan",
- "Type" : "Cineál",
- "Display Name" : "Ainm taispeána",
- "GPUs support" : "Tacaíocht GPUs",
- "Compute device" : "Gléas ríomh",
- "Advanced deploy options" : "Ardroghanna imscaradh",
- "Edit ExApp deploy options before installation" : "Cuir roghanna imlonnaithe ExApp in eagar roimh an tsuiteáil",
- "Configured ExApp deploy options. Can be set only during installation" : "Roghanna imlonnaithe ExApp cumraithe. Ní féidir é a shocrú ach amháin le linn na suiteála",
- "Learn more" : "Foghlaim níos mó",
- "Environment variables" : "Athróga timpeallachta",
- "ExApp container environment variables" : "Athróga timpeallachta coimeádán ExApp",
- "No environment variables defined" : "Níl aon athróg timpeallachta sainithe",
- "Mounts" : "Feistis",
- "Define host folder mounts to bind to the ExApp container" : "Sainmhínigh gléasanna an fhillteáin óstaigh chun ceangal leis an gcoimeádán ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Ní mór a bheith ar an ósta Deploy Deploy roimh shuiteáil an ExApp",
- "Host path" : "Cosán óstach",
- "Container path" : "Cosán coimeádán",
- "Read-only" : "Inléite-amháin",
- "Remove mount" : "Bain feisteas",
- "New mount" : "Feisteas nua",
- "Enter path to host folder" : "Cuir isteach cosán chuig an bhfillteán óstach",
- "Enter path to container folder" : "Cuir isteach an cosán chuig an bhfillteán coimeádán",
- "Toggle read-only mode" : "Scoránaigh mód inléite-amháin",
- "Confirm adding new mount" : "Deimhnigh feisteas nua a chur leis",
- "Confirm" : "Deimhnigh",
- "Cancel adding mount" : "Cealaigh feisteas a chur leis",
- "Cancel" : "Cealaigh",
- "Add mount" : "Cuir feisteas",
- "ExApp container mounts" : "Feisteas coimeádán ExApp",
- "No mounts defined" : "Níl aon feisteas sainithe",
- "Description" : "Cur síos",
- "View in store" : "Amharc sa siopa",
- "Visit website" : "Tabhair cuairt ar an suíomh Gréasáin",
- "Usage documentation" : "Doiciméadú úsáide",
- "Admin documentation" : "Doiciméadúchán riaracháin",
- "Developer documentation" : "Doiciméadú forbróra",
- "Details" : "Sonraí",
- "All" : "Gach",
- "Limit app usage to groups" : "Teorainn úsáid aipeanna go grúpaí",
- "No results" : "Gan torthaí",
- "Update to {version}" : "Nuashonraigh go {version}",
- "Deploy options" : "Roghanna imscaradh",
- "Default Deploy daemon is not accessible" : "Níl an deamhan Réamhshocrú Imscaradh inrochtana",
- "Delete data on remove" : "Scrios sonraí ar bhaint",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Níl aon leagan íosta de Nextcloud sannta don aip seo. Earráid a bheidh anseo sa todhchaí.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Níl aon leagan Nextcloud uasta sannta don aip seo. Earráid a bheidh anseo sa todhchaí.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ní féidir an aip seo a shuiteáil toisc nach bhfuil na spleáchais seo a leanas comhlíonta:",
- "Latest updated" : "Nuashonraithe is déanaí",
- "Author" : "Údar",
- "Categories" : "Catagóirí",
- "Resources" : "Acmhainní",
- "Documentation" : "Doiciméadúchán",
- "Interact" : "Idirghníomhú",
- "Report a bug" : "Tuairiscigh fabht",
- "Request feature" : "Iarr gné",
- "Ask questions or discuss" : "Cuir ceisteanna nó pléigh",
- "Rate the app" : "Ráta an app",
- "Rate" : "Ráta",
- "Changelog" : "Loga athrú",
- "Google Chrome for Android" : "Google chrome le haghaidh Android saor in aisce",
- "{productName} iOS app" : "{productName} aip iOS",
- "{productName} Android app" : "{productName} aip Android",
- "{productName} Talk for iOS" : "{productName} Labhair le haghaidh iOS",
- "{productName} Talk for Android" : "{productName} Labhair le haghaidh Android",
- "Sync client" : "Sioncrónaigh cliant",
- "This session" : "An seisiún seo",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Ainm an ghléis",
- "Cancel renaming" : "Cealaigh athainmniú",
- "Save new name" : "Sábháil ainm nua",
- "Marked for remote wipe" : "Marcáilte le haghaidh glanadh cianda",
- "Device settings" : "Socruithe gléis",
- "Allow filesystem access" : "Ceadaigh rochtain ar an gcóras comhad",
- "Rename" : "Athainmnigh",
- "Revoke" : "Chúlghairm",
- "Wipe device" : "Wipe gléas",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Má dhéantar an comhartha seo a aisghairm, d'fhéadfadh sé go gcuirfí cosc ar do ghléas a ghlanadh mura bhfuil an cuimilteoir tosaithe fós.",
- "Device" : "Gléas",
- "Last activity" : "An ghníomhaíocht dheireanach",
- "Devices & sessions" : "Gléasanna & seisiúin",
- "Web, desktop and mobile clients currently logged in to your account." : "Tá cliaint ghréasáin, deisce agus móibíleacha logáilte isteach i do chuntas faoi láthair.",
- "Error while creating device token" : "Earráid agus comhartha gléis á chruthú",
- "App name" : "Ainm aip",
- "Create new app password" : "Cruthaigh pasfhocal feidhmchlár nua",
"App password copied!" : "Cóipeáladh pasfhocal na haipe!",
"Copy app password" : "Cóipeáil pasfhocal an aip",
"Login name copied!" : "Cóipeáladh an t-ainm logáil isteach!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "Ní féidir socrú réamhshocraithe na próifíle a nuashonrú",
"Profile" : "Próifíl",
"Enable or disable profile by default for new accounts." : "Cumasaigh nó díchumasaigh próifíl de réir réamhshocraithe le haghaidh cuntas nua.",
+ "Password confirmation is required" : "Tá deimhniú pasfhocail ag teastáil",
"Failed to save setting" : "Theip ar an socrú a shábháil",
"{app}'s declarative setting field: {name}" : "Réimse socruithe dearbhaithe {app}'s: {name}",
"Unable to update server side encryption config" : "Ní féidir an chumraíocht chriptiúcháin ar thaobh an fhreastalaí a nuashonrú",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Is maith i gcónaí cúltacaí rialta de do shonraí a chruthú, i gcás criptithe déan cinnte cúltaca a dhéanamh de na heochracha criptithe chomh maith le do shonraí.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Déan tagairt don doiciméadú riaracháin maidir le conas comhaid atá ann cheana a chriptiú de láimh freisin.",
"This is the final warning: Do you really want to enable encryption?" : "Seo é an rabhadh deiridh: Ar mhaith leat criptiúchán a chumasú?",
- "Failed to remove group \"{group}\"" : "Theip ar an ngrúpa \"{group}\" a bhaint",
+ "Failed to delete group \"{group}\"" : "Theip ar an ngrúpa \"{group}\" a scriosadh",
"Please confirm the group removal" : "Deimhnigh baint an ghrúpa",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Tá tú ar tí an grúpa \"{group}\" a bhaint. NÍ scriosfar na cuntais.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Tá tú ar tí an grúpa \"{group}\" a scriosadh. NÍ scriosfar na cuntais.",
+ "Cancel" : "Cealaigh",
+ "Confirm" : "Deimhnigh",
"Submit" : "Cuir isteach",
"Rename group" : "Athainmnigh an grúpa",
- "Remove group" : "Bain an grúpa",
- "Current password" : "Pasfhocal reatha",
- "New password" : "Focal Faire Nua",
- "Change password" : "Athraigh do phasfhocal",
- "Choose your profile picture" : "Roghnaigh do phictiúr próifíle",
- "Please select a valid png or jpg file" : "Roghnaigh comhad png nó jpg bailí le do thoil",
- "Error setting profile picture" : "Earráid agus pictiúr próifíle á shocrú",
- "Error cropping profile picture" : "Earráid agus pictiúr próifíle á bhearradh",
- "Error saving profile picture" : "Earráid agus pictiúr próifíle á shábháil",
- "Error removing profile picture" : "Earráid agus an pictiúr próifíle á bhaint",
- "Your profile picture" : "Do phictiúr próifíle",
- "Upload profile picture" : "Íosluchtaigh pictiúr próifíl",
- "Choose profile picture from Files" : "Roghnaigh pictiúr próifíle ó Chomhaid",
- "Remove profile picture" : "Bain pictiúr próifíle",
- "The file must be a PNG or JPG" : "Caithfidh an comhad a bheith ina PNG nó JPG",
- "Picture provided by original account" : "Pictiúr curtha ar fáil ag an mbunchuntas",
- "Set as profile picture" : "Socraigh mar phictiúr próifíle",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tabhair faoi deara go bhféadfadh sé suas le 24 uair an chloig a ghlacadh chun do phictiúr próifíle a nuashonrú i ngach áit.",
- "Your biography. Markdown is supported." : "Do bheathaisnéis. Tacaítear le Markdown.",
- "Unable to update date of birth" : "Ní féidir an dáta breithe a nuashonrú",
- "Enter your date of birth" : "Cuir isteach do dháta breithe",
- "You are using {s}{usage}{/s}" : "Tá tú ag úsáid {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Tá tú ag úsáid{s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Tá tú i do bhall de na grúpaí seo a leanas:",
- "Your full name" : "D'ainm iomlán",
- "Email options" : "Roghanna ríomhphoist",
- "Options for additional email address {index}" : "Roghanna le haghaidh seoladh ríomhphoist breise {index}",
- "Remove primary email" : "Bain príomhsheoladh ríomhphoist",
- "Delete email" : "Scrios ríomhphost",
- "This address is not confirmed" : "Níl an seoladh seo deimhnithe",
- "Unset as primary email" : "Díshuiteáil mar phríomhphost ríomhphoist",
- "Set as primary email" : "Socraigh mar phríomh-ríomhphost",
- "Additional email address {index}" : "Seoladh ríomhphoist breise {index}",
- "Unable to delete primary email address" : "Ní féidir an príomhsheoladh ríomhphoist a scriosadh",
- "Unable to update primary email address" : "Ní féidir an príomhsheoladh ríomhphoist a nuashonrú",
- "Unable to add additional email address" : "Ní féidir seoladh ríomhphoist breise a chur leis",
- "Unable to update additional email address" : "Ní féidir seoladh ríomhphoist breise a nuashonrú",
- "Unable to delete additional email address" : "Ní féidir seoladh ríomhphoist breise a scriosadh",
- "Primary email for password reset and notifications" : "Príomh-ríomhphost le haghaidh athshocrú pasfhocal agus fógraí",
- "No email address set" : "Níl seoladh ríomhphoist socraithe",
- "Your handle" : "Do láimhseáil",
- "Derived from your locale ({weekDayName})" : "Díorthaithe ó do logán ({weekDayName})",
- "Unable to update first day of week" : "Ní féidir an chéad lá den tseachtain a nuashonrú",
- "Day to use as the first day of week" : "Lá a úsáid mar an chéad lá den tseachtain",
- "Your headline" : "Do cheannlíne",
- "Unable to update language" : "Ní féidir an teanga a nuashonrú",
- "Languages" : "Teangacha",
- "Help translate" : "Cabhraigh le haistriú",
- "No language set" : "Gan tacar teanga",
- "Unable to update locale" : "Ní féidir locale a nuashonrú",
- "Locales" : "Logánta",
- "Week starts on {firstDayOfWeek}" : "Tosaíonn an tseachtain ar {firstDayOfWeek}",
- "No locale set" : "Gan tacar locale",
- "Your city" : "Do chathair",
- "Your organisation" : "D'eagraíocht",
- "Your phone number" : "D'uimhir theileafóin",
- "Edit your Profile visibility" : "Cuir infheictheacht do Phróifíl in eagar",
- "Unable to update profile enabled state" : "Ní féidir staid chumasaithe na próifíle a nuashonrú",
- "Enable profile" : "Cumasaigh próifíl",
- "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." : "Tá meas ar do Phróifíl ar shocrú níos sriantaí infheictheachta nó scóip. Mar shampla, má tá an infheictheacht socraithe mar \"Taispeáin do chách\" agus go bhfuil an raon feidhme socraithe go \"Príobháideach\", meastar \"Príobháideach\".",
- "Unable to update visibility of {displayId}" : "Ní féidir infheictheacht {displayId} a nuashonrú",
- "she/her" : "sí/léi",
- "he/him" : "sé/dó",
- "they/them" : "siad/siad",
- "Your role" : "Do ról",
- "Your X (formerly Twitter) handle" : "Láimhseálann do X (Twitter roimhe seo).",
- "Your website" : "Do láithreán gréasáin",
- "Invalid value" : "Luach neamhbhailí",
- "Unable to update {property}" : "Ní féidir {property} a nuashonrú",
- "No {property} set" : "Níl {property} socraithe",
- "Change scope level of {property}, current scope is {scope}" : "Athraigh leibhéal scóip {property}, is é {scope} an raon feidhme reatha",
- "Unable to update federation scope of the primary {property}" : "Níorbh fhéidir scóip chónaidhme na príomh-{property} a nuashonrú",
- "Unable to update federation scope of additional {property}" : "Níorbh fhéidir scóip chónaidhme {property}maoin bhreise a nuashonrú",
- "Add additional email" : "Cuir ríomhphost breise leis",
- "Add" : "Cuir",
- "Create" : "Cruthaigh",
- "Change" : "Athrú",
- "Delete" : "Scrios",
- "Reshare" : "Roinn arís",
- "Default language" : "Teanga réamhshocraithe",
- "Common languages" : "Teangacha coitianta",
- "Other languages" : "Teangacha eile",
- "Password change is disabled because the master key is disabled" : "Tá athrú pasfhocal díchumasaithe toisc go bhfuil an máistir-eochair díchumasaithe",
- "No accounts" : "Gan cuntais",
- "Loading accounts …" : "Cuntais á lódáil…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Liosta cuntas. Níl an liosta seo le fáil go hiomlán ar chúiseanna feidhmíochta. Déanfar na cuntais a rindreáil agus tú ag dul tríd an liosta.",
- "Manager" : "Bainisteoir",
- "Set line manager" : "Socraigh bainisteoir líne",
- "Account name will be autogenerated" : "Déanfar ainm an chuntais a ghiniúint go huathoibríoch",
- "Account name (required)" : "Ainm an chuntais (riachtanach)",
- "Failed to search groups" : "Theip ar chuardach grúpaí",
- "New account" : "Cuntas nua",
- "Display name" : "Ainm taispeána",
- "Either password or email is required" : "Tá pasfhocal nó ríomhphost ag teastáil",
- "Password (required)" : "Pasfhocal (riachtanach)",
- "Email (required)" : "Ríomhphost (riachtanach)",
- "Email" : "Ríomhphost",
- "Member of the following groups (required)" : "Ball de na grúpaí seo a leanas (riachtanach)",
- "Member of the following groups" : "Ball de na grúpaí seo a leanas",
- "Set account groups" : "Socraigh grúpaí cuntais",
- "Admin of the following groups" : "Riarachán na ngrúpaí seo a leanas",
- "Set account as admin for …" : "Socraigh cuntas mar riarthóir do…",
- "Quota" : "Cuóta",
- "Set account quota" : "Socraigh cuóta cuntais",
- "Language" : "Teanga",
- "Set default language" : "Socraigh teanga réamhshocraithe",
- "Add new account" : "Cuir cuntas nua leis",
- "_{userCount} account …_::_{userCount} accounts …_" : ["cuntas {userCount}…","cuntais {userCount}…","cuntais {userCount}…","cuntais {userCount}…","cuntais {userCount}…"],
- "_{userCount} account_::_{userCount} accounts_" : ["cuntas {userCount}","cuntais {userCount}","cuntais {userCount}","cuntais {userCount}","cuntais {userCount}"],
- "Total rows summary" : "Achoimre ar na sraitheanna iomlána",
- "Scroll to load more rows" : "Scrollaigh chun tuilleadh sraitheanna a lódáil",
- "Password or insufficient permissions message" : "Pasfhocal nó teachtaireacht ceadanna neamhleor",
- "Avatar" : "Avatar",
- "Account name" : "Ainm chuntais",
- "Group admin for" : "Riarachán grúpa le haghaidh",
- "Account backend" : "Inneall chuntais",
- "Storage location" : "Suíomh stórála",
- "First login" : "An chéad logáil isteach",
- "Last login" : "Logáil isteach deiridh",
- "Account actions" : "Gníomhartha cuntais",
- "{size} used" : "{size} in úsáid",
- "Delete account" : "Scrios cuntas",
- "Disconnect all devices and delete local data" : "Déan gach gléas a dhícheangal agus scrios sonraí áitiúla",
- "Disable account" : "Díchumasaigh cuntas",
- "Enable account" : "Cumasaigh cuntas",
- "Resend welcome email" : "Seol ríomhphost fáilte arís",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Sa chás go gcailltear gléas nó go bhfágann sé an eagraíocht, is féidir leis seo sonraí Nextcloud a scriosadh go cianda ó gach gléas a bhaineann le {userid}. Ní oibríonn sé ach amháin má tá na gléasanna nasctha leis an Idirlíon.",
- "Remote wipe of devices" : "Cianda wipe gléasanna",
- "Wipe {userid}'s devices" : "Glan gléasanna {userid}",
- "Wiped {userid}'s devices" : "Scriosadh gléasanna {userid}",
- "Failed to load groups with details" : "Theip ar lódáil na ngrúpaí le sonraí",
- "Failed to load sub admin groups with details" : "Theip ar lódáil foghrúpaí riaracháin le sonraí",
- "Failed to update line manager" : "Theip ar an mbainisteoir líne a nuashonrú",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Scrios go hiomlán cuntas {userid} lena n-áirítear a chomhaid phearsanta go léir, sonraí aipe, etc.",
- "Account deletion" : "Scriosadh cuntais",
- "Delete {userid}'s account" : "Scrios cuntas {userid}",
- "Display name was successfully changed" : "D'éirigh le hathrú an ainm taispeána",
- "Password can't be empty" : "Ní féidir le pasfhocal a bheith folamh",
- "Password was successfully changed" : "Athraíodh an pasfhocal go rathúil",
- "Email can't be empty" : "Ní féidir le ríomhphost a bheith folamh",
- "Email was successfully changed" : "D'éirigh le hathrú an ríomhphoist",
- "Welcome mail sent!" : "Fáilte seolta!",
- "Loading account …" : "Cuntas á lódáil…",
- "Change display name" : "Athraigh an t-ainm taispeána",
- "Set new password" : "Socraigh pasfhocal nua",
- "You do not have permissions to see the details of this account" : "Níl cead agat sonraí an chuntais seo a fheiceáil",
- "Set new email address" : "Socraigh seoladh ríomhphoist nua",
- "Add account to group" : "Cuir cuntas leis an ngrúpa",
- "Set account as admin for" : "Socraigh cuntas mar riarthóir do",
- "Select account quota" : "Roghnaigh cuóta cuntais",
- "Set the language" : "Socraigh an teanga",
- "Toggle account actions menu" : "Scoránaigh roghchlár gníomhartha cuntais",
- "Done" : "Déanta",
- "Edit" : "Cuir in eagar",
- "Account management settings" : "Socruithe bainistíochta cuntais",
- "Visibility" : "Infheictheacht",
- "Show language" : "Taispeáin teanga",
- "Show account backend" : "Taispeáin inneall an chuntais",
- "Show storage path" : "Taispeáin cosán stórála",
- "Show first login" : "Taispeáin an chéad logáil isteach",
- "Show last login" : "Taispeáin logáil isteach deiridh",
- "Sorting" : "Sórtáil",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Forfheidhmíonn cumraíocht an chórais na grúpaí a shórtáil de réir ainm. Díchumasaítear é seo freisin líon na mball a thaispeáint.",
- "Group list sorting" : "Sórtáil liostaí grúpa",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Ní bhaineann an sórtáil ach leis na grúpaí luchtaithe faoi láthair ar chúiseanna feidhmíochta. Déanfar grúpaí a luchtú agus tú ag dul tríd an liosta nó ag cuardach tríd an liosta.",
- "By member count" : "De réir líon na mball",
- "By name" : "De réir ainm",
- "Send email" : "Seol ríomhphost",
- "Send welcome email to new accounts" : "Seol ríomhphost fáilte chuig cuntais nua",
- "Defaults" : "Réamhshocruithe",
- "Default quota" : "Cuóta réamhshocraithe",
- "Select default quota" : "Roghnaigh cuóta réamhshocraithe",
- "Server error while trying to complete WebAuthn device registration" : "Earráid fhreastalaí agus iarracht á déanamh clárú gléis WebAuthn a chur i gcrích",
- "Passwordless authentication requires a secure connection." : "Teastaíonn nasc slán le fíordheimhniú gan pasfhocal.",
- "Add WebAuthn device" : "Cuir gléas WebAuthn leis",
- "Please authorize your WebAuthn device." : "Ceadaigh do ghléas WebAuthn le do thoil.",
- "Adding your device …" : "Ag cur do ghléas leis…",
- "Unnamed device" : "Gléas gan ainm",
- "Passwordless Authentication" : "Fíordheimhniú gan Pasfhocal",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Socraigh do chuntas le haghaidh fíordheimhnithe gan pasfhocal de réir chaighdeán FIDO2.",
- "No devices configured." : "Níl aon ghléas cumraithe.",
- "The following devices are configured for your account:" : "Tá na gléasanna seo a leanas cumraithe do do chuntas:",
- "Your browser does not support WebAuthn." : "Ní thacaíonn do bhrabhsálaí le WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Mar riarthóir is féidir leat an t-iompar comhroinnte a mhionchoigeartú. Féach ar na doiciméid le haghaidh tuilleadh eolais le do thoil.",
- "You need to enable the File sharing App." : "Ní mór duit an App Roinnte Comhad a chumasú.",
- "App Store" : "Siopa aip",
- "Loading app list" : "Liosta feidhmchlár á lódáil",
- "Loading categories" : "Catagóirí á lódáil",
- "Developer documentation ↗" : "Doiciméadú forbróra ↗",
- "Version {version}, {license}-licensed" : "Leagan {version}, {license}-cheadúnaithe",
- "Version {version}" : "Leagan {version}",
- "All accounts" : "Gach cuntas",
- "Admins" : "Riarthóirí",
- "Account group: {group}" : "Grúpa cuntais: {group}",
- "Account management" : "Bainistíocht cuntais",
+ "Delete group" : "Scrios grúpa",
"Sending…" : "Á sheoladh…",
"Email sent" : "Ríomhphost seolta",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Ar chúiseanna feidhmíochta, nuair a chumasaíonn tú criptiú ar fhreastalaí Nextcloud ní dhéantar ach comhaid nua agus athraithe a chriptiú.",
@@ -790,6 +511,7 @@
"Date of birth" : "Dáta breithe",
"Full name" : "Ainm iomlán",
"Additional email" : "Ríomhphost breise",
+ "Email" : "Ríomhphost",
"Fediverse (e.g. Mastodon)" : "Fediverse (m.sh. Mastodon)",
"Headline" : "Ceannlíne",
"Organisation" : "Eagraíocht",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X (Twitter roimhe seo)",
"Website" : "Suíomh Gréasáin",
"Profile visibility" : "Infheictheacht próifíle",
+ "Language" : "Teanga",
"Locale" : "Logán",
"First day of week" : "An chéad lá den tseachtain",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Níl sé ar fáil toisc go bhfuil an t-airí seo ag teastáil le haghaidh feidhmiúlacht lárnach lena n-áirítear comhroinnt comhad agus cuirí féilire",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "Taispeáin go cuntais logáilte isteach amháin",
"Hide" : "Folaigh",
"Manually installed apps cannot be updated" : "Ní féidir aipeanna atá suiteáilte de láimh a nuashonrú",
+ "Update to {version}" : "Nuashonraigh go {version}",
"{progress}% Deploying …" : "{progress}% Ag imscaradh …",
"{progress}% Initializing …" : "{progress}% Ag tosú…",
"Health checking" : "Seiceáil sláinte",
@@ -825,6 +549,7 @@
"Allow untested app" : "Ceadaigh aip neamhthástáilte",
"The app will be downloaded from the App Store" : "Déanfar an aip a íoslódáil ón Siopa Aip",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Níl an aip seo marcáilte mar chomhoiriúnach le do leagan Nextcloud. Má leanann tú ar aghaidh beidh tú fós in ann an aip a shuiteáil. Tabhair faoi deara go bhféadfadh sé nach n-oibreoidh an aip mar a bhíothas ag súil leis.",
+ "{size} used" : "{size} in úsáid",
"Unknown" : "Anaithnid",
"Never" : "Riamh",
"Could not register device: Network error" : "Níorbh fhéidir gléas a chlárú: Earráid líonra",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "Níorbh fhéidir sórtáil grúpa a shocrú",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Tháinig an iomarca iarratas ó do líonra. Bain triail eile as ar ball nó déan teagmháil le do riarthóir más earráid é seo.",
"Error" : "Earráid",
+ "Default quota" : "Cuóta réamhshocraithe",
"Account documentation" : "Doiciméadú cuntais",
"Administration documentation" : "Doiciméid riaracháin",
+ "Documentation" : "Doiciméadúchán",
"Forum" : "Fóram",
"Nextcloud help & privacy resources" : "Cabhair & acmhainní príobháideachais Nextcloud",
"General documentation" : "Doiciméadúchán ginearálta",
@@ -867,6 +594,7 @@
"SMTP Password" : "Pasfhocal SMTP",
"Save" : "Sábháil",
"Test and verify email settings" : "Tástáil agus fíoraigh socruithe ríomhphoist",
+ "Send email" : "Seol ríomhphost",
"Security & setup warnings" : "Rabhaidh slándála & socraithe",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Tá sé tábhachtach ar mhaithe le slándáil agus feidhmíocht do chás go bhfuil gach rud cumraithe i gceart. Chun cabhrú leat leis sin táimid ag déanamh roinnt seiceálacha uathoibríocha. Féach ar an doiciméadú nasctha le haghaidh tuilleadh eolais le do thoil.",
"All checks passed." : "Gach seic a rith.",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "Úsáid fachtóir eile seachas do phasfhocal chun slándáil do chuntais a mhéadú.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Má úsáideann tú feidhmchláir tríú páirtí chun nascadh le Nextcloud, déan cinnte le do thoil pasfhocal aipe a chruthú agus a chumrú le haghaidh gach ceann acu sula gceadaítear fíordheimhniú dara fachtóir.",
"Logged in account must be a subadmin" : "Ní mór gur fo-riarachán é cuntas logáilte isteach",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Le gur féidir an tseiceáil seo a rith caithfidh tú a chinntiú gur féidir le do fhreastalaí gréasáin nascadh leis féin. Mar sin caithfidh sé a bheith in ann réiteach agus ceangal a dhéanamh le ceann amháin ar a laghad dá `fearainn_iontaofa` nó don `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Innéacs roghnach \"%s\" ar iarraidh i dtábla \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Tá roinnt innéacsanna in easnamh ar an mbunachar sonraí. Toisc go bhféadfadh go dtógfadh roinnt ama innéacsanna a chur leis na táblaí móra níor cuireadh leis go huathoibríoch iad. Trí \"occ db:add-missing-indices\" a rith, d'fhéadfaí na hinnéacsanna sin atá in easnamh a chur leis de láimh agus an ásc ag feidhmiú i gcónaí. Nuair a chuirtear na hinnéacsanna isteach is iondúil go mbíonn fiosruithe ar na táblaí sin i bhfad níos tapúla.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Le gur féidir an tseiceáil seo a rith caithfidh tú a chinntiú gur féidir le do fhreastalaí Gréasáin nascadh leis féin. Mar sin caithfidh sé a bheith in ann réiteach agus ceangal a dhéanamh le ceann amháin ar a laghad dá chuid `fearainn_iontaofa` nó an `overwrite.cli.url`. D'fhéadfadh an teip seo a bheith mar thoradh ar mhímheaitseáil DNS ar thaobh an fhreastalaí nó riail balla dóiteáin amach.",
"File locking" : "Glasáil comhaid",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Díchumasaítear glasáil comhad idirbhirt, d'fhéadfadh fadhbanna le coinníollacha cine a bheith mar thoradh air seo. Cumasaigh \"filelocking.enabled\" i config.php chun na fadhbanna seo a sheachaint.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Níorbh fhéidir tacaíocht JavaScript a fháil trí aon cheann de na `fearainn_ iontaofa` ná `overwrite.cli.url`. D'fhéadfadh sé seo a bheith mar thoradh ar mhímheaitseáil DNS ar thaobh an fhreastalaí nó riail balla dóiteáin amach. Seiceáil le do thoil de láimh an bhfreastalaíonn do fhreastalaí gréasáin ar chomhaid `.mjs` ag baint úsáide as an gcineál JavaScript MIME.",
"The PHP memory limit is below the recommended value of %s." : "Tá an teorainn chuimhne PHP faoi bhun an luach molta de %s.",
"for WebAuthn passwordless login" : "le haghaidh logáil isteach gan phasfhocal WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "le haghaidh logáil isteach WebAuthn gan phasfhocal, agus stóráil SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Tá PHP %s á rith agat faoi láthair. Tá PHP 8.0 dímheasta anois i Nextcloud 27. D'fhéadfadh go mbeadh PHP 8.1 ar a laghad ag teastáil ó Nextcloud 28. Uasghrádaigh go dtí ceann de na leaganacha PHP a fhaigheann tacaíocht oifigiúil ón nGrúpa PHP chomh luath agus is féidir le do thoil.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Úsáidtear leagan MariaDB \"%s\". Ní thacaíonn Nextcloud 21 agus níos airde leis an leagan seo agus éilíonn siad MariaDB 10.2 nó níos airde.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Úsáidtear leagan MySQL \"%s\". Ní thacaíonn Nextcloud 21 agus níos airde leis an leagan seo agus éilíonn siad MySQL 8.0 nó MariaDB 10.2 nó níos airde.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Úsáidtear leagan PostgreSQL \"%s\". Ní thacaíonn Nextcloud 21 agus níos airde leis an leagan seo agus éilíonn siad PostgreSQL 9.6 nó níos airde.",
- "Speech-To-Text" : "Óráid-go-Téacs",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Is féidir Óráid-go-Téacs a chur i bhfeidhm ag aipeanna éagsúla. Anseo is féidir leat a shocrú cén app ba chóir a úsáid.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ní sholáthraíonn aon cheann de na haipeanna atá suiteáilte agat faoi láthair feidhmiúlacht Óráid-go-Téacs",
- "None of your currently installed apps provide Text processing functionality" : "Ní sholáthraíonn aon cheann de na haipeanna atá suiteáilte agat faoi láthair feidhmiúlacht próiseála Téacs",
- "Set default expiration date for shares" : "Socraigh dáta éaga réamhshocraithe le haghaidh scaireanna",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Ceadaigh uathchríochnú ainm úsáideora sa dialóg scaireanna agus ceadaigh rochtain ar leabhar seoltaí an chóras",
- "Your biography" : "Do bheathaisnéis",
- "You are using <strong>{usage}</strong>" : "Tá tú ag úsáid <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Tá tú ag úsáid<strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Socraigh bainisteoir úsáideora",
- "Username will be autogenerated" : "Déanfar an t-ainm úsáideora a ghiniúint go huathoibríoch",
- "Username (required)" : "Ainm úsáideora (riachtanach)",
- "New user" : "Úsáideoir nua",
- "Groups (required)" : "Grúpaí (riachtanach)",
- "Set user groups" : "Socraigh grúpaí úsáideoirí",
- "Administered groups" : "Grúpaí riartha",
- "Set user as admin for …" : "Socraigh úsáideoir mar riarthóir do…",
- "Set user quota" : "Socraigh cuóta úsáideora",
- "Add new user" : "Cuir úsáideoir nua leis",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} úsáideoir…","{userCount} úsáideoirí…","{userCount} úsáideoirí…","{userCount} úsáideoirí…","{userCount} úsáideoirí…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} úsáideoir","{userCount} úsáideoirí","{userCount} úsáideoirí","{userCount} úsáideoirí","{userCount} úsáideoirí"],
- "Loading users …" : "Úsáideoirí á lódáil…",
- "Username" : "Ainm úsáideora",
- "User backend" : "Inneall úsáideora",
- "User actions" : "Gníomhartha úsáideora",
- "Add user to group" : "Cuir úsáideoir leis an ngrúpa",
- "Server error while trying to add WebAuthn device" : "Earráid fhreastalaí agus iarracht á déanamh gléas WebAuthn a chur leis",
- "Name your device" : "Ainmnigh do ghléas",
- "Active accounts" : "Cuntais ghníomhacha",
- "Follow us on Twitter" : "Lean muid ar Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Le gur féidir an tseiceáil seo a rith caithfidh tú a chinntiú gur féidir le do fhreastalaí Gréasáin nascadh leis féin. Mar sin caithfidh sé a bheith in ann réiteach agus ceangal a dhéanamh le ceann amháin ar a laghad dá chuid `fearainn_iontaofa` nó an `overwrite.cli.url`. D'fhéadfadh an teip seo a bheith mar thoradh ar mhímheaitseáil DNS ar thaobh an fhreastalaí nó riail balla dóiteáin amach.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- Níl `%2$s` sa cheanntásc HTTP `%1$s`. Is riosca slándála nó príobháideachta féideartha é seo, mar moltar an socrú seo a choigeartú dá réir.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Braitheadh ​​leagan PostgreSQL \"%s\". Moltar PostgreSQL >=12 agus <=16 don fheidhmíocht is fearr, don chobhsaíocht agus don fheidhmiúlacht leis an leagan seo de Nextcloud.",
- "Failed to load subadmin groups with details" : "Theip ar lódáil na ngrúpaí fo-riaracháin le sonraí"
+ "Set default expiration date for shares" : "Socraigh dáta éaga réamhshocraithe le haghaidh scaireanna"
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/gl.js b/apps/settings/l10n/gl.js
index fde4b3b6ec2..ec364095933 100644
--- a/apps/settings/l10n/gl.js
+++ b/apps/settings/l10n/gl.js
@@ -294,7 +294,6 @@ OC.L10N.register(
"HTTP headers" : "Cabeceiras HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "– A cabeceira HTTP «%1$s» non está definida como «%2$s». É posíbel que algunhas funcións non traballen correctamente, polo que, en consecuencia, recoméndase este axuste.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– A cabeceira HTTP «%1$s» non está definida como «%2$s». Este é un risco potencial de seguridade ou privacidade, polo que, en consecuencia, recoméndase este axuste.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– A cabeceira HTTP «%1$s» non contén «%2$s». Este é un risco potencial de seguridade ou privacidade, polo que, en consecuencia, recoméndase este axuste.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "– A cabeceira HTTP «%1$s»non está definida como «%2$s», «%3$s», «%4$s», «%5$s» ou «%6$s». Isto pode filtrar información «referer». Consulte a {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "– A cabeceira HTTP «Strict-Transport-Security» non está definida como mínimo a «%d» segundos (valor actual: «%d»). Para mellorar a seguridade, recoméndase utilizar unha directiva HSTS longa.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "– A cabeceira HTTP «Strict-Transport-Security» ten un formato incorrecto: «%s». Para mellorar a seguridade, recoméndase activar HSTS.",
@@ -438,97 +437,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Non foi posíbel cargar o contido da sección da tenda de aplicacións.",
"Loading" : "Cargando",
"Fetching the latest news…" : "Recuperando as últimas novas…",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Seguinte diapositiva",
- "Choose slide to display" : "Escolla a diapositiva que quere amosar",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Servizo",
- "Deploy Daemon" : "Servizo de despregadura",
- "Type" : "Escribir",
- "Display Name" : "Nome para amosar",
- "GPUs support" : "Compatibilidade con GPU",
- "Compute device" : "Dispositivo de computación",
- "Advanced deploy options" : " Opcións avanzadas de despregadura",
- "Edit ExApp deploy options before installation" : "Editar as opcións de despregadura da aplicación externa (ExApp) antes da instalación",
- "Configured ExApp deploy options. Can be set only during installation" : "Opcións de despregadura da aplicación externa (ExApp) configuradas. Só é posíbel definilas durante a instalación",
- "Learn more" : "Máis información",
- "Environment variables" : "Variábeis de contorno",
- "ExApp container environment variables" : "Variábeis de contorno do contedor da aplicación externa (ExApp)",
- "No environment variables defined" : "Non foi definida ningunha variábel de contorno",
- "Mounts" : "Montaxes",
- "Define host folder mounts to bind to the ExApp container" : "Definir as montaxes do cartafol do servidor para unirse ao contedor da aplicación externa (ExApp)",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Debe existir no servidor/máquina do servizo de despregadura antes de instalar a aplicación externa (ExApp)",
- "Host path" : "Ruta ao servidor/máquina",
- "Container path" : "Ruta ao contedor",
- "Read-only" : "Só lectura",
- "Remove mount" : "Retirar a montaxe",
- "New mount" : "Nova montaxe",
- "Enter path to host folder" : "Introduza a ruta ao cartafol do servidor/máquina.",
- "Enter path to container folder" : "Introduza a ruta ao cartafol do contedor.",
- "Toggle read-only mode" : "Alternar o modo de só lectura",
- "Confirm adding new mount" : "Confirmar o engadido dunha nova montaxe",
- "Confirm" : "Confirmar",
- "Cancel adding mount" : "Cancelar o engadido da montaxe",
- "Cancel" : "Cancelar",
- "Add mount" : "Engadir unha montaxe",
- "ExApp container mounts" : "Montaxes de contedores de aplicacións externas (ExApp)",
- "No mounts defined" : "Non foi definida ningunha montaxe",
- "Description" : "Descrición",
- "View in store" : "Ver na tenda",
- "Visit website" : "Visite o sitio web",
- "Usage documentation" : "Documentación de utilización",
- "Admin documentation" : "Documentación da administración da instancia",
- "Developer documentation" : "Documentación para desenvolvedores",
- "Details" : "Detalles",
- "All" : "Todo",
- "Limit app usage to groups" : "Limitar o uso de aplicacións a grupos",
- "No results" : "Sen resultados",
- "Update to {version}" : "Actualizar a {version}",
- "Deploy options" : "Opcións de despregadura",
- "Default Deploy daemon is not accessible" : "Non é posíbel acceder ao servizo predeterminado de despregadura.",
- "Delete data on remove" : "Eliminar os datos ao retirar",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación non dispón dunha versión mínima de Nextcloud asignada. Isto será un erro no futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación non dispón dunha versión máxima de Nextcloud asignada. Isto será un erro no futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Non é posíbel instalar esta aplicación por mor de non cumprirse as dependencias:",
- "Latest updated" : "Última actualización",
- "Author" : "Autor",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Interact" : "Interactuar",
- "Report a bug" : "Informar dun fallo",
- "Request feature" : "Solicitar unha funcionalidade",
- "Ask questions or discuss" : "Facer preguntas ou debater",
- "Rate the app" : "Valore a aplicación",
- "Rate" : "Cualificar",
- "Changelog" : "Notas da versión",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "Aplicación de iOS {productName}",
- "{productName} Android app" : "Aplicación de Android {productName}",
- "{productName} Talk for iOS" : "Parladoiro para iOS {productName}",
- "{productName} Talk for Android" : "Parladoiro para Android {productName}",
- "Sync client" : "Sincronizar o cliente",
- "This session" : "Esta sesión",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nome do dispositivo",
- "Cancel renaming" : "Cancelar o cambio de nome",
- "Save new name" : "Gardar o novo nome",
- "Marked for remote wipe" : "Marcado para limpeza remota",
- "Device settings" : "Axustes do dispositivo",
- "Allow filesystem access" : "Permitir o acceso aos sistema de ficheiros",
- "Rename" : "Cambiar o nome",
- "Revoke" : "Revogar",
- "Wipe device" : "Limpar o dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "A revogación deste testemuño pode impedir a limpeza do seu dispositivo se aínda non iniciou a limpeza.",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividade",
- "Devices & sessions" : "Dispositivos e sesións",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móbiles e de escritorio actualmente conectados á súa conta.",
- "Error while creating device token" : "Produciuse un erro ao crear un testemuño de dispositivo",
- "App name" : "Nome da aplicación",
- "Create new app password" : "Crear un novo contrasinal de aplicación",
"App password copied!" : "Copiouse o contrasinal da aplicación!",
"Copy app password" : "Copiar o contrasinal da aplicación",
"Login name copied!" : "O nome de acceso foi copiado!",
@@ -556,6 +464,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Non é posíbel actualizar a configuración predeterminada do perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Activar ou desactivar o perfil predeterminado para as novas contas.",
+ "Password confirmation is required" : "Requírese a confirmación do contrasinal",
"Failed to save setting" : "Produciuse un fallo ao gardar o axuste",
"{app}'s declarative setting field: {name}" : "Campo de axuste declarativo de {app}: {name}",
"Unable to update server side encryption config" : "Non é posíbel actualizar a configuración de cifrado do servidor",
@@ -578,202 +487,11 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Sempre é bo crear copias de seguranza dos seus datos, no caso do cifrado, asegúrese de ter unha copia de seguranza das chaves de cifrado xunto cos seus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulte a documentación de administración sobre para saber tamén como cifrar manualmente os ficheiros existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta é a última advertencia: Confirma que quere activar o cifrado?",
- "Failed to remove group \"{group}\"" : "Produciuse un fallo ao retirar o grupo «{group}»",
"Please confirm the group removal" : "Confirme a retirada do grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a piques de retirar o grupo «{group}». As contas NON van ser eliminadas.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Cambiar o nome do grupo",
- "Remove group" : "Retirar o grupo",
- "Current password" : "Contrasinal actual",
- "New password" : "Novo contrasinal",
- "Change password" : "Cambiar o contrasinal",
- "Choose your profile picture" : "Escolla a súa imaxe de perfil",
- "Please select a valid png or jpg file" : "Seleccione un ficheiro png ou jpg válido",
- "Error setting profile picture" : "Produciuse un erro ao configurar a imaxe de perfil",
- "Error cropping profile picture" : "Produciuse un erro ao recortar a imaxe de perfil",
- "Error saving profile picture" : "Produciuse un erro ao gardar a imaxe de perfil",
- "Error removing profile picture" : "Produciuse un erro ao retirar a imaxe de perfil",
- "Your profile picture" : "A súa imaxe de perfil",
- "Upload profile picture" : "Enviar a imaxe de perfil",
- "Choose profile picture from Files" : "Escoller a imaxe de perfil en Ficheiros",
- "Remove profile picture" : "Retirar a imaxe de perfil",
- "The file must be a PNG or JPG" : "O ficheiro debe ser PNG ou JPG",
- "Picture provided by original account" : "Imaxe fornecida pola conta orixinal ",
- "Set as profile picture" : "Definir como imaxe de perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Teña en conta que pode tardar ata 24 horas en actualizar a súa foto de perfil en todos os sitios.",
- "Your biography. Markdown is supported." : "A túa biografía. Admítese Markdown.",
- "Unable to update date of birth" : "Non é posíbel actualizar a data de nacemento",
- "Enter your date of birth" : "Introduza a súa data de nacemento",
- "You are using {s}{usage}{/s}" : "Está a usar {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Está a usar {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Vde. é membro dos seguintes grupos:",
- "Your full name" : "O seu nome completo",
- "Email options" : "Opcións de correo -e",
- "Options for additional email address {index}" : "Opcións para o enderezo de correo adicional {index}",
- "Remove primary email" : "Retirar o correo-e principal",
- "Delete email" : "Eliminar o correo-e",
- "This address is not confirmed" : "Este enderezo non está confirmado",
- "Unset as primary email" : "Desactivar como correo principal",
- "Set as primary email" : "Definir como correo principal",
- "Additional email address {index}" : "Enderezo de correo adicional {index}",
- "Unable to delete primary email address" : "Non é posíbel eliminar o enderezo de correo principal",
- "Unable to update primary email address" : "Non é posíbel actualizar o enderezo de correo principal",
- "Unable to add additional email address" : "Non é posíbel engadir un o enderezo de correo adicional",
- "Unable to update additional email address" : "Non é posíbel actualizar o enderezo de correo adicional",
- "Unable to delete additional email address" : "Non é posíbel eliminar o enderezo de correo adicional",
- "Primary email for password reset and notifications" : "Correo-e principal para restabelecer o contrasinal e notificacións",
- "No email address set" : "Non hai un enderezo de correo definido",
- "Your handle" : "O seu identificador",
- "Derived from your locale ({weekDayName})" : "Derivado da súa configuración rexional ({weekDayName})",
- "Unable to update first day of week" : "Non é posíbel actualizar o primeiro día da semana",
- "Day to use as the first day of week" : "Días que pode usar como primeiro día da semana",
- "Your headline" : "O seu titular",
- "Unable to update language" : "Non é posíbel actualizar o idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Axude na tradución",
- "No language set" : "Non foi definido ningún idioma",
- "Unable to update locale" : "Non é posíbel actualizar a configuración rexional",
- "Locales" : "Configuracións rexionais",
- "Week starts on {firstDayOfWeek}" : "A semana comeza o {firstDayOfWeek}",
- "No locale set" : "Non foi definida ningunha configuración rexional",
- "Your city" : "A súa cidade",
- "Your organisation" : "A súa organización",
- "Your phone number" : "O seu número de teléfono",
- "Edit your Profile visibility" : "Edita a visibilidade do seu perfil",
- "Unable to update profile enabled state" : "Non é posíbel actualizar o estado activado do perfil",
- "Enable profile" : "Activar o 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." : "No seu perfil respectase a configuración máis restritiva de visibilidade ou ámbito. Por exemplo, se a visibilidade está definida como«Amosar a todos» e o ámbito está configurado como «Privado», respéctase «Privado».",
- "Unable to update visibility of {displayId}" : "Non é posíbel actualizar a visibilidade de {displayId}",
- "she/her" : "ela — she/her",
- "he/him" : "el — he/him",
- "they/them" : "ele — they/them",
- "Your role" : "O seu cargo",
- "Your X (formerly Twitter) handle" : "O seu identificador en X (anteriormente Twitter).",
- "Your website" : "O seu sitio web",
- "Invalid value" : "O valor é incorrecto",
- "Unable to update {property}" : "Non é posíbel actualizar a {property}",
- "No {property} set" : "Non definiu {property}",
- "Change scope level of {property}, current scope is {scope}" : "Cambiar o nivel de ámbito de {property}, o ámbito actual é {scope}",
- "Unable to update federation scope of the primary {property}" : "Non é posíbel actualizar o ámbito de federación da {property} principal",
- "Unable to update federation scope of additional {property}" : "Non é posíbel actualizar o ámbito da federación de {property} adicional",
- "Add additional email" : "Engadir un correo adicional",
- "Add" : "Engadir",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Eliminar",
- "Reshare" : "Volver compartir",
- "Default language" : "Idioma predeterminado",
- "Common languages" : "Idiomas habituais",
- "Other languages" : "Outros idiomas",
- "Password change is disabled because the master key is disabled" : "O cambio de contrasinal está desactivado porque a chave principal está desactivada",
- "No accounts" : "Non hai contas",
- "Loading accounts …" : "Cargando as contas…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista de contas. Esta lista non se representa de xeito completo por mor do rendemento. As contas represéntanse mentres se despraza pola lista.",
- "Manager" : "Xestor/a",
- "Set line manager" : "Definir o responsábel xerárquico",
- "Account name will be autogenerated" : "O nome da conta vai ser xerado automaticamente",
- "Account name (required)" : "Nome da conta (necesario)",
- "New account" : "Conta nova",
- "Display name" : "Nome para amosar",
- "Either password or email is required" : "Precísase dun contrasinal ou un correo-e",
- "Password (required)" : "Contrasinal (necesario)",
- "Email (required)" : "Correo-e (necesario)",
- "Email" : "Correo",
- "Member of the following groups (required)" : "Membro dos seguintes grupos (obrigatorio)",
- "Member of the following groups" : "Membro dos seguintes grupos",
- "Set account groups" : "Definir grupos de contas",
- "Admin of the following groups" : "Administrador dos seguintes grupos",
- "Set account as admin for …" : "Definir a conta como administradora para…",
- "Quota" : "Cota",
- "Set account quota" : "Definir a cota da conta",
- "Language" : "Idioma",
- "Set default language" : "Definir o idioma predeterminado",
- "Add new account" : "Engadir unha conta nova",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} conta…","{userCount} contas…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} conta","{userCount} contas"],
- "Total rows summary" : "Resumo total de filas",
- "Scroll to load more rows" : "Desprácese para cargar máis filas",
- "Password or insufficient permissions message" : "Mensaxe de contrasinal ou de permisos insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nome da conta",
- "Group admin for" : "Administrador de grupo para",
- "Account backend" : "Infraestrutura da conta",
- "Storage location" : "Localización do almacenamento",
- "First login" : "Primeiro acceso",
- "Last login" : "Último acceso",
- "Account actions" : "Accións da conta",
- "{size} used" : "{size} usado",
- "Delete account" : "Eliminar a conta",
- "Disconnect all devices and delete local data" : "Desconecta todos os dispositivos e borra os datos locais",
- "Disable account" : "Desactivar a conta",
- "Enable account" : "Activar a conta",
- "Resend welcome email" : "Volver enviar o correo de benvida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "No caso de perder o dispositivo ou saír da organización, pode limpar os datos de Nextcloud de xeito remoto de todos os dispositivos asociados a {userid}. Só funciona se os dispositivos están conectados Á Internet.",
- "Remote wipe of devices" : "Limpeza remota de dispositivos",
- "Wipe {userid}'s devices" : "Limpar os dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Limpáronse os dispositivos de {userid}",
- "Failed to update line manager" : "Produciuse un erro ao actualizar o responsábel xerárquico",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar completamente a conta de {userid} incluíndo todos os seus ficheiros persoais, datos de aplicacións, etc.",
- "Account deletion" : "Eliminación de conta",
- "Delete {userid}'s account" : "Eliminar a conta de {userid}",
- "Display name was successfully changed" : "O nome para amosar foi cambiado satisfactoriamente",
- "Password can't be empty" : "O contrasinal non pode estar baleiro",
- "Password was successfully changed" : "O contrasinal foi cambiado satisfactoriamente",
- "Email can't be empty" : "O correo-e non pode estar baleiro",
- "Email was successfully changed" : "O correo foi cambiado satisfactoriamente",
- "Welcome mail sent!" : "Enviado o correo de benvida!",
- "Loading account …" : "Cargando a conta…",
- "Change display name" : "Cambiar o nome para amosar",
- "Set new password" : "Definir un novo contrasinal",
- "You do not have permissions to see the details of this account" : "Vde. non ten permisos para ver os detalles desta conta",
- "Set new email address" : "Definir un novo enderezo de correo",
- "Add account to group" : "Engadir conta ao grupo",
- "Set account as admin for" : "Definir a conta como administradora para",
- "Select account quota" : "Seleccione a cota da conta",
- "Set the language" : "Definir o idioma",
- "Toggle account actions menu" : "Alternar o menú de accións da conta",
- "Done" : "Feito",
- "Edit" : "Editar",
- "Account management settings" : "Axustes da xestión da conta",
- "Visibility" : "Visibilidade",
- "Show language" : "Amosar o idioma",
- "Show account backend" : "Amosar a infraestrutura da conta",
- "Show storage path" : "Amosar a ruta do almacenamento",
- "Show first login" : "Amosar o primeiro acceso",
- "Show last login" : "Amosar o último acceso",
- "Sorting" : "Ordenación",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "A configuración do sistema obriga a clasificar os grupos por nome. Isto tamén desactiva a vista do reconto de membros.",
- "Group list sorting" : "Ordenación da lista de grupos",
- "By member count" : "Segundo o número de membros",
- "By name" : "Polo nome",
- "Send email" : "Enviar o correo",
- "Send welcome email to new accounts" : "Enviar correo de benvida ás novas contas",
- "Defaults" : "Predeterminados",
- "Default quota" : "Cota predeterminada",
- "Select default quota" : "Seleccionar a cota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Produciuse un erro do servidor cando se intentaba completar o rexistro do dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "A autenticación sen contrasinal precisa dunha conexión segura.",
- "Add WebAuthn device" : "Engadir un dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorice o seu dispositivo WebAuthn.",
- "Adding your device …" : "Engadindo o seu dispositivo…",
- "Unnamed device" : "Dispositivo sen nome",
- "Passwordless Authentication" : "Autenticación sen contrasinal",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configurar a súa conta para a autenticación sen contrasinal seguindo o estándar FIDO2.",
- "No devices configured." : "Non hai dispositivos configurados.",
- "The following devices are configured for your account:" : "Os seguintes dispositivos están configurados para a súa conta:",
- "Your browser does not support WebAuthn." : "O seu navegador non é compatíbel co WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador pode facer axustes finos do comportamento ao compartir. Lea a documentación para obter máis información.",
- "You need to enable the File sharing App." : "Debe activar a aplicación Compartir ficheiros.",
- "App Store" : "Tenda de aplicacións",
- "Loading app list" : "Cargando a lista de aplicacións",
- "Loading categories" : "Cargando categorías",
- "Developer documentation ↗" : "Documentación para desenvolvedores ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, con licenza {license}",
- "Version {version}" : "Versión {version}",
- "All accounts" : "Todas as contas",
- "Admins" : "Administración",
- "Account group: {group}" : "Grupo de contas: {group}",
- "Account management" : "Xestión de contas",
"Sending…" : "Enviando…",
"Email sent" : "Correo enviado",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Por razóns de rendemento, cando activa o cifrado nun servidor NextCloud só se cifran os ficheiros novos e os modificados.",
@@ -783,6 +501,7 @@ OC.L10N.register(
"Date of birth" : "Data de nacemento",
"Full name" : "Nome completo",
"Additional email" : "Correo-e adicional",
+ "Email" : "Correo",
"Fediverse (e.g. Mastodon)" : "Fediverso (p. ex., Mastodon)",
"Headline" : "Titular",
"Organisation" : "Organización",
@@ -792,6 +511,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (anteriormente Twitter).",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidade do perfil",
+ "Language" : "Idioma",
"Locale" : "Configuración rexional",
"First day of week" : "Primeiro día da semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Non está dispoñíbel porque esta propiedade é precisa para as funcións básicas, como compartir ficheiros e convites de calendario",
@@ -809,6 +529,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Amosar só ás contas iniciadas",
"Hide" : "Agochar",
"Manually installed apps cannot be updated" : "Non é posíbel actualizar as aplicacións instaladas manualmente",
+ "Update to {version}" : "Actualizar a {version}",
"{progress}% Deploying …" : "{progress}% Despregando…",
"{progress}% Initializing …" : "{progress}% Iniciando…",
"Health checking" : "Control de integridade",
@@ -818,6 +539,7 @@ OC.L10N.register(
"Allow untested app" : "Permitir aplicación non probada",
"The app will be downloaded from the App Store" : "A aplicación descargarase da tenda de aplicacións",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta aplicación non está marcado como compatíbel coa súa versión de Nextcloud. Se continúa, poderá instalar a aplicación. Teña en conta que é probábel que a aplicación non funcione como se agarda.",
+ "{size} used" : "{size} usado",
"Unknown" : "Descoñecido",
"Never" : "Nunca",
"Could not register device: Network error" : "Non foi posíbel rexistrar o dispositivo: Produciuse un erro de rede",
@@ -836,8 +558,10 @@ OC.L10N.register(
"Could not set group sorting" : "Non foi posíbel definir a ordenación por grupos",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houbo demasiadas solicitudes da súa rede. Volva tentalo máis adiante ou póñase en contacto coa administración desta instancia. se se trata dun erro.",
"Error" : "Erro",
+ "Default quota" : "Cota predeterminada",
"Account documentation" : "Documentación da conta",
"Administration documentation" : "Documentación da administración da instancia",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Nextcloud help & privacy resources" : "Recursos de axuda e privacidade de Nextcloud",
"General documentation" : "Documentación xeral",
@@ -860,6 +584,7 @@ OC.L10N.register(
"SMTP Password" : "Contrasinal SMTP",
"Save" : "Gardar",
"Test and verify email settings" : "Probe e verifique os axustes do correo",
+ "Send email" : "Enviar o correo",
"Security & setup warnings" : "Advertencias de seguranza e configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "É importante para a seguranza e o bo funcionamento da súa instancia que todo estea configurado correctamente. Para axudarlle niso, imos facer algunhas comprobacións automáticas. Vexa a documentación ligada para obter máis información. ",
"All checks passed." : "Pasáronse todas as comprobacións.",
@@ -879,50 +604,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Empregue un segundo factor ademais do seu contrasinal para aumentar a seguranza da súa conta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : " Se usa aplicacións de terceiros para conectarse a Nextcloud, asegúrese de crear e configurar un contrasinal de aplicación para cada unha antes de activar o segundo factor de autenticación.",
"Logged in account must be a subadmin" : "A conta que accede debe ser de subadministración",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que esta comprobación se execute, debe asegurarse de que o seu servidor web poida conectarse a si mesmo. Por tanto, debe ser quen de resolver e conectarse a polo menos un dos seus «trusted_domains» ou ao «overwrite.cli.url».",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta o índice opcional «%s» na táboa «%s».",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Á base de datos fáltanlle algúns índices. Por mor de que engadir os índices podería levar moito non foron engadidos automaticamente. Estes índices perdidos poden engadirse manualmente mentres siga funcionando a instancia, executando «occ db:add-missing-indices». Una vez se teñan engadidos os índices, as consultas a esas táboas adoitan ser moito máis rápidas.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que esta comprobación se execute, debe asegurarse de que o seu servidor web poida conectarse a si mesmo. Por tanto, debe ser quen de resolver e conectarse a polo menos un dos seus «trusted_domains» ou ao «overwrite.cli.url». Este fallo pode ser o resultado dunha falta de coincidencia de DNS do servidor ou dunha regra da devasa de saída.",
"File locking" : "Bloqueo de ficheiros",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "O bloqueo de ficheiros transaccionais está desactivado, isto podería levar a problemas baixo certas condicións. Active «filelocking.enabled» en «config.php» para evitar eses problemas",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Non foi posíbel comprobar a compatibilidade de JavaScript a través de ningún dos seus «trusted_domains» nin «overwrite.cli.url». Isto pode ser o resultado dunha falta de coincidencia de DNS do servidor ou dunha regra da devasa de saída. Comprobe manualmente se o seu servidor web serve ficheiros «.mjs» usando o tipo MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "O límite de memoria de PHP está por baixo do valor recomendado de %s.",
"for WebAuthn passwordless login" : "para acceso sen contrasinal de WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "para acceso sen contrasinal de WebAuthn, e almacenamento SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Actualmente está a executar PHP %s. PHP 8.0 é obsoleto en Nextcloud 27. Nextcloud 28 pode precisar polo menos PHP 8.1. Actualice a unha das versións de PHP oficialmente compatíbeis fornecidas polo Grupo PHP o antes posíbel.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Utilízase a versión «%s» de MariaDB. Nextcloud 21 ou superior non admite esta versión e precisa MariaDB 10.2 ou superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Utilízase a versión «%s» de MySQL. Nextcloud 21 e superior non admite esta versión e precisan MySQL 8.0 ou MariaDB 10.2 ou superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Utilízase a versión «%s» de PostgreSQL. Nextcloud 21 ou superior non admite esta versión e precisa PostgreSQL 9.6 ou superior.",
- "Speech-To-Text" : "Conversión de voz a texto",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text pode ser implementado por diferentes aplicacións. Aquí pode definir que aplicación debe usar.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ningunha das aplicacións instaladas neste momento ofrece funcións de conversión de voz a texto",
- "None of your currently installed apps provide Text processing functionality" : "Ningunha das aplicacións instaladas neste momento ofrece funcións de procesamento de texto",
- "Set default expiration date for shares" : "Definir a data de caducidade predeterminada das comparticións",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir o autocompletado do nome de usuario no diálogo de compartir e permitir o acceso ao caderno de enderezos do sistema",
- "Your biography" : "A súa biografía",
- "You are using <strong>{usage}</strong>" : "Está a usar <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Está a usar <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Definir o xestor de usuarios",
- "Username will be autogenerated" : "O nome de usuario vai ser xerado automaticamente",
- "Username (required)" : "Nome de usuario (necesario)",
- "New user" : "Novo usuario",
- "Groups (required)" : "Grupos (necesario)",
- "Set user groups" : "Definir grupos de usuarios",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Definir o usuario como administrador para…",
- "Set user quota" : "Definir a cota de usuario",
- "Add new user" : "Engadir un novo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario…","{userCount} usuarios…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios…",
- "Username" : "Nome de usuario",
- "User backend" : "Infraestrutura do usuario",
- "User actions" : "Accións do usuario",
- "Add user to group" : "Engadir usuario ao grupo",
- "Server error while trying to add WebAuthn device" : "Produciuse un erro do servidor cando se tentaba engadir un dispositivo WebAuthn",
- "Name your device" : "Nome do seu dispositivo",
- "Active accounts" : "Contas activas",
- "Follow us on Twitter" : "Síganos en Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que esta comprobación se execute, debe asegurarse de que o seu servidor web poida conectarse a si mesmo. Por tanto, debe ser quen de resolver e conectarse a polo menos un dos seus «trusted_domains» ou ao «overwrite.cli.url». Este fallo pode ser o resultado dunha falta de coincidencia de DNS do servidor ou dunha regra da devasa de saída.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Detectouse a versión «%s» de PostgreSQL. Suxírese PostgreSQL >=12 e <=16 para un mellor rendemento, estabilidade e funcionalidade con esta versión de Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– A cabeceira HTTP «%1$s» non contén «%2$s». Este é un risco potencial de seguridade ou privacidade, polo que, en consecuencia, recoméndase este axuste.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Detectouse a versión «%s» de PostgreSQL. Suxírese PostgreSQL >=12 e <=16 para un mellor rendemento, estabilidade e funcionalidade con esta versión de Nextcloud.",
+ "Set default expiration date for shares" : "Definir a data de caducidade predeterminada das comparticións"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/gl.json b/apps/settings/l10n/gl.json
index 33f049c6c42..a6b7160d09a 100644
--- a/apps/settings/l10n/gl.json
+++ b/apps/settings/l10n/gl.json
@@ -292,7 +292,6 @@
"HTTP headers" : "Cabeceiras HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "– A cabeceira HTTP «%1$s» non está definida como «%2$s». É posíbel que algunhas funcións non traballen correctamente, polo que, en consecuencia, recoméndase este axuste.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– A cabeceira HTTP «%1$s» non está definida como «%2$s». Este é un risco potencial de seguridade ou privacidade, polo que, en consecuencia, recoméndase este axuste.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– A cabeceira HTTP «%1$s» non contén «%2$s». Este é un risco potencial de seguridade ou privacidade, polo que, en consecuencia, recoméndase este axuste.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "– A cabeceira HTTP «%1$s»non está definida como «%2$s», «%3$s», «%4$s», «%5$s» ou «%6$s». Isto pode filtrar información «referer». Consulte a {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "– A cabeceira HTTP «Strict-Transport-Security» non está definida como mínimo a «%d» segundos (valor actual: «%d»). Para mellorar a seguridade, recoméndase utilizar unha directiva HSTS longa.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "– A cabeceira HTTP «Strict-Transport-Security» ten un formato incorrecto: «%s». Para mellorar a seguridade, recoméndase activar HSTS.",
@@ -436,97 +435,6 @@
"Could not load section content from app store." : "Non foi posíbel cargar o contido da sección da tenda de aplicacións.",
"Loading" : "Cargando",
"Fetching the latest news…" : "Recuperando as últimas novas…",
- "Carousel" : "Carrusel",
- "Previous slide" : "Diapositiva anterior",
- "Next slide" : "Seguinte diapositiva",
- "Choose slide to display" : "Escolla a diapositiva que quere amosar",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Servizo",
- "Deploy Daemon" : "Servizo de despregadura",
- "Type" : "Escribir",
- "Display Name" : "Nome para amosar",
- "GPUs support" : "Compatibilidade con GPU",
- "Compute device" : "Dispositivo de computación",
- "Advanced deploy options" : " Opcións avanzadas de despregadura",
- "Edit ExApp deploy options before installation" : "Editar as opcións de despregadura da aplicación externa (ExApp) antes da instalación",
- "Configured ExApp deploy options. Can be set only during installation" : "Opcións de despregadura da aplicación externa (ExApp) configuradas. Só é posíbel definilas durante a instalación",
- "Learn more" : "Máis información",
- "Environment variables" : "Variábeis de contorno",
- "ExApp container environment variables" : "Variábeis de contorno do contedor da aplicación externa (ExApp)",
- "No environment variables defined" : "Non foi definida ningunha variábel de contorno",
- "Mounts" : "Montaxes",
- "Define host folder mounts to bind to the ExApp container" : "Definir as montaxes do cartafol do servidor para unirse ao contedor da aplicación externa (ExApp)",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Debe existir no servidor/máquina do servizo de despregadura antes de instalar a aplicación externa (ExApp)",
- "Host path" : "Ruta ao servidor/máquina",
- "Container path" : "Ruta ao contedor",
- "Read-only" : "Só lectura",
- "Remove mount" : "Retirar a montaxe",
- "New mount" : "Nova montaxe",
- "Enter path to host folder" : "Introduza a ruta ao cartafol do servidor/máquina.",
- "Enter path to container folder" : "Introduza a ruta ao cartafol do contedor.",
- "Toggle read-only mode" : "Alternar o modo de só lectura",
- "Confirm adding new mount" : "Confirmar o engadido dunha nova montaxe",
- "Confirm" : "Confirmar",
- "Cancel adding mount" : "Cancelar o engadido da montaxe",
- "Cancel" : "Cancelar",
- "Add mount" : "Engadir unha montaxe",
- "ExApp container mounts" : "Montaxes de contedores de aplicacións externas (ExApp)",
- "No mounts defined" : "Non foi definida ningunha montaxe",
- "Description" : "Descrición",
- "View in store" : "Ver na tenda",
- "Visit website" : "Visite o sitio web",
- "Usage documentation" : "Documentación de utilización",
- "Admin documentation" : "Documentación da administración da instancia",
- "Developer documentation" : "Documentación para desenvolvedores",
- "Details" : "Detalles",
- "All" : "Todo",
- "Limit app usage to groups" : "Limitar o uso de aplicacións a grupos",
- "No results" : "Sen resultados",
- "Update to {version}" : "Actualizar a {version}",
- "Deploy options" : "Opcións de despregadura",
- "Default Deploy daemon is not accessible" : "Non é posíbel acceder ao servizo predeterminado de despregadura.",
- "Delete data on remove" : "Eliminar os datos ao retirar",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación non dispón dunha versión mínima de Nextcloud asignada. Isto será un erro no futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación non dispón dunha versión máxima de Nextcloud asignada. Isto será un erro no futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Non é posíbel instalar esta aplicación por mor de non cumprirse as dependencias:",
- "Latest updated" : "Última actualización",
- "Author" : "Autor",
- "Categories" : "Categorías",
- "Resources" : "Recursos",
- "Documentation" : "Documentación",
- "Interact" : "Interactuar",
- "Report a bug" : "Informar dun fallo",
- "Request feature" : "Solicitar unha funcionalidade",
- "Ask questions or discuss" : "Facer preguntas ou debater",
- "Rate the app" : "Valore a aplicación",
- "Rate" : "Cualificar",
- "Changelog" : "Notas da versión",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "Aplicación de iOS {productName}",
- "{productName} Android app" : "Aplicación de Android {productName}",
- "{productName} Talk for iOS" : "Parladoiro para iOS {productName}",
- "{productName} Talk for Android" : "Parladoiro para Android {productName}",
- "Sync client" : "Sincronizar o cliente",
- "This session" : "Esta sesión",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nome do dispositivo",
- "Cancel renaming" : "Cancelar o cambio de nome",
- "Save new name" : "Gardar o novo nome",
- "Marked for remote wipe" : "Marcado para limpeza remota",
- "Device settings" : "Axustes do dispositivo",
- "Allow filesystem access" : "Permitir o acceso aos sistema de ficheiros",
- "Rename" : "Cambiar o nome",
- "Revoke" : "Revogar",
- "Wipe device" : "Limpar o dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "A revogación deste testemuño pode impedir a limpeza do seu dispositivo se aínda non iniciou a limpeza.",
- "Device" : "Dispositivo",
- "Last activity" : "Última actividade",
- "Devices & sessions" : "Dispositivos e sesións",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móbiles e de escritorio actualmente conectados á súa conta.",
- "Error while creating device token" : "Produciuse un erro ao crear un testemuño de dispositivo",
- "App name" : "Nome da aplicación",
- "Create new app password" : "Crear un novo contrasinal de aplicación",
"App password copied!" : "Copiouse o contrasinal da aplicación!",
"Copy app password" : "Copiar o contrasinal da aplicación",
"Login name copied!" : "O nome de acceso foi copiado!",
@@ -554,6 +462,7 @@
"Unable to update profile default setting" : "Non é posíbel actualizar a configuración predeterminada do perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Activar ou desactivar o perfil predeterminado para as novas contas.",
+ "Password confirmation is required" : "Requírese a confirmación do contrasinal",
"Failed to save setting" : "Produciuse un fallo ao gardar o axuste",
"{app}'s declarative setting field: {name}" : "Campo de axuste declarativo de {app}: {name}",
"Unable to update server side encryption config" : "Non é posíbel actualizar a configuración de cifrado do servidor",
@@ -576,202 +485,11 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Sempre é bo crear copias de seguranza dos seus datos, no caso do cifrado, asegúrese de ter unha copia de seguranza das chaves de cifrado xunto cos seus datos.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulte a documentación de administración sobre para saber tamén como cifrar manualmente os ficheiros existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Esta é a última advertencia: Confirma que quere activar o cifrado?",
- "Failed to remove group \"{group}\"" : "Produciuse un fallo ao retirar o grupo «{group}»",
"Please confirm the group removal" : "Confirme a retirada do grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Está a piques de retirar o grupo «{group}». As contas NON van ser eliminadas.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Cambiar o nome do grupo",
- "Remove group" : "Retirar o grupo",
- "Current password" : "Contrasinal actual",
- "New password" : "Novo contrasinal",
- "Change password" : "Cambiar o contrasinal",
- "Choose your profile picture" : "Escolla a súa imaxe de perfil",
- "Please select a valid png or jpg file" : "Seleccione un ficheiro png ou jpg válido",
- "Error setting profile picture" : "Produciuse un erro ao configurar a imaxe de perfil",
- "Error cropping profile picture" : "Produciuse un erro ao recortar a imaxe de perfil",
- "Error saving profile picture" : "Produciuse un erro ao gardar a imaxe de perfil",
- "Error removing profile picture" : "Produciuse un erro ao retirar a imaxe de perfil",
- "Your profile picture" : "A súa imaxe de perfil",
- "Upload profile picture" : "Enviar a imaxe de perfil",
- "Choose profile picture from Files" : "Escoller a imaxe de perfil en Ficheiros",
- "Remove profile picture" : "Retirar a imaxe de perfil",
- "The file must be a PNG or JPG" : "O ficheiro debe ser PNG ou JPG",
- "Picture provided by original account" : "Imaxe fornecida pola conta orixinal ",
- "Set as profile picture" : "Definir como imaxe de perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Teña en conta que pode tardar ata 24 horas en actualizar a súa foto de perfil en todos os sitios.",
- "Your biography. Markdown is supported." : "A túa biografía. Admítese Markdown.",
- "Unable to update date of birth" : "Non é posíbel actualizar a data de nacemento",
- "Enter your date of birth" : "Introduza a súa data de nacemento",
- "You are using {s}{usage}{/s}" : "Está a usar {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Está a usar {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Vde. é membro dos seguintes grupos:",
- "Your full name" : "O seu nome completo",
- "Email options" : "Opcións de correo -e",
- "Options for additional email address {index}" : "Opcións para o enderezo de correo adicional {index}",
- "Remove primary email" : "Retirar o correo-e principal",
- "Delete email" : "Eliminar o correo-e",
- "This address is not confirmed" : "Este enderezo non está confirmado",
- "Unset as primary email" : "Desactivar como correo principal",
- "Set as primary email" : "Definir como correo principal",
- "Additional email address {index}" : "Enderezo de correo adicional {index}",
- "Unable to delete primary email address" : "Non é posíbel eliminar o enderezo de correo principal",
- "Unable to update primary email address" : "Non é posíbel actualizar o enderezo de correo principal",
- "Unable to add additional email address" : "Non é posíbel engadir un o enderezo de correo adicional",
- "Unable to update additional email address" : "Non é posíbel actualizar o enderezo de correo adicional",
- "Unable to delete additional email address" : "Non é posíbel eliminar o enderezo de correo adicional",
- "Primary email for password reset and notifications" : "Correo-e principal para restabelecer o contrasinal e notificacións",
- "No email address set" : "Non hai un enderezo de correo definido",
- "Your handle" : "O seu identificador",
- "Derived from your locale ({weekDayName})" : "Derivado da súa configuración rexional ({weekDayName})",
- "Unable to update first day of week" : "Non é posíbel actualizar o primeiro día da semana",
- "Day to use as the first day of week" : "Días que pode usar como primeiro día da semana",
- "Your headline" : "O seu titular",
- "Unable to update language" : "Non é posíbel actualizar o idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Axude na tradución",
- "No language set" : "Non foi definido ningún idioma",
- "Unable to update locale" : "Non é posíbel actualizar a configuración rexional",
- "Locales" : "Configuracións rexionais",
- "Week starts on {firstDayOfWeek}" : "A semana comeza o {firstDayOfWeek}",
- "No locale set" : "Non foi definida ningunha configuración rexional",
- "Your city" : "A súa cidade",
- "Your organisation" : "A súa organización",
- "Your phone number" : "O seu número de teléfono",
- "Edit your Profile visibility" : "Edita a visibilidade do seu perfil",
- "Unable to update profile enabled state" : "Non é posíbel actualizar o estado activado do perfil",
- "Enable profile" : "Activar o 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." : "No seu perfil respectase a configuración máis restritiva de visibilidade ou ámbito. Por exemplo, se a visibilidade está definida como«Amosar a todos» e o ámbito está configurado como «Privado», respéctase «Privado».",
- "Unable to update visibility of {displayId}" : "Non é posíbel actualizar a visibilidade de {displayId}",
- "she/her" : "ela — she/her",
- "he/him" : "el — he/him",
- "they/them" : "ele — they/them",
- "Your role" : "O seu cargo",
- "Your X (formerly Twitter) handle" : "O seu identificador en X (anteriormente Twitter).",
- "Your website" : "O seu sitio web",
- "Invalid value" : "O valor é incorrecto",
- "Unable to update {property}" : "Non é posíbel actualizar a {property}",
- "No {property} set" : "Non definiu {property}",
- "Change scope level of {property}, current scope is {scope}" : "Cambiar o nivel de ámbito de {property}, o ámbito actual é {scope}",
- "Unable to update federation scope of the primary {property}" : "Non é posíbel actualizar o ámbito de federación da {property} principal",
- "Unable to update federation scope of additional {property}" : "Non é posíbel actualizar o ámbito da federación de {property} adicional",
- "Add additional email" : "Engadir un correo adicional",
- "Add" : "Engadir",
- "Create" : "Crear",
- "Change" : "Cambiar",
- "Delete" : "Eliminar",
- "Reshare" : "Volver compartir",
- "Default language" : "Idioma predeterminado",
- "Common languages" : "Idiomas habituais",
- "Other languages" : "Outros idiomas",
- "Password change is disabled because the master key is disabled" : "O cambio de contrasinal está desactivado porque a chave principal está desactivada",
- "No accounts" : "Non hai contas",
- "Loading accounts …" : "Cargando as contas…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista de contas. Esta lista non se representa de xeito completo por mor do rendemento. As contas represéntanse mentres se despraza pola lista.",
- "Manager" : "Xestor/a",
- "Set line manager" : "Definir o responsábel xerárquico",
- "Account name will be autogenerated" : "O nome da conta vai ser xerado automaticamente",
- "Account name (required)" : "Nome da conta (necesario)",
- "New account" : "Conta nova",
- "Display name" : "Nome para amosar",
- "Either password or email is required" : "Precísase dun contrasinal ou un correo-e",
- "Password (required)" : "Contrasinal (necesario)",
- "Email (required)" : "Correo-e (necesario)",
- "Email" : "Correo",
- "Member of the following groups (required)" : "Membro dos seguintes grupos (obrigatorio)",
- "Member of the following groups" : "Membro dos seguintes grupos",
- "Set account groups" : "Definir grupos de contas",
- "Admin of the following groups" : "Administrador dos seguintes grupos",
- "Set account as admin for …" : "Definir a conta como administradora para…",
- "Quota" : "Cota",
- "Set account quota" : "Definir a cota da conta",
- "Language" : "Idioma",
- "Set default language" : "Definir o idioma predeterminado",
- "Add new account" : "Engadir unha conta nova",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} conta…","{userCount} contas…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} conta","{userCount} contas"],
- "Total rows summary" : "Resumo total de filas",
- "Scroll to load more rows" : "Desprácese para cargar máis filas",
- "Password or insufficient permissions message" : "Mensaxe de contrasinal ou de permisos insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nome da conta",
- "Group admin for" : "Administrador de grupo para",
- "Account backend" : "Infraestrutura da conta",
- "Storage location" : "Localización do almacenamento",
- "First login" : "Primeiro acceso",
- "Last login" : "Último acceso",
- "Account actions" : "Accións da conta",
- "{size} used" : "{size} usado",
- "Delete account" : "Eliminar a conta",
- "Disconnect all devices and delete local data" : "Desconecta todos os dispositivos e borra os datos locais",
- "Disable account" : "Desactivar a conta",
- "Enable account" : "Activar a conta",
- "Resend welcome email" : "Volver enviar o correo de benvida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "No caso de perder o dispositivo ou saír da organización, pode limpar os datos de Nextcloud de xeito remoto de todos os dispositivos asociados a {userid}. Só funciona se os dispositivos están conectados Á Internet.",
- "Remote wipe of devices" : "Limpeza remota de dispositivos",
- "Wipe {userid}'s devices" : "Limpar os dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Limpáronse os dispositivos de {userid}",
- "Failed to update line manager" : "Produciuse un erro ao actualizar o responsábel xerárquico",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eliminar completamente a conta de {userid} incluíndo todos os seus ficheiros persoais, datos de aplicacións, etc.",
- "Account deletion" : "Eliminación de conta",
- "Delete {userid}'s account" : "Eliminar a conta de {userid}",
- "Display name was successfully changed" : "O nome para amosar foi cambiado satisfactoriamente",
- "Password can't be empty" : "O contrasinal non pode estar baleiro",
- "Password was successfully changed" : "O contrasinal foi cambiado satisfactoriamente",
- "Email can't be empty" : "O correo-e non pode estar baleiro",
- "Email was successfully changed" : "O correo foi cambiado satisfactoriamente",
- "Welcome mail sent!" : "Enviado o correo de benvida!",
- "Loading account …" : "Cargando a conta…",
- "Change display name" : "Cambiar o nome para amosar",
- "Set new password" : "Definir un novo contrasinal",
- "You do not have permissions to see the details of this account" : "Vde. non ten permisos para ver os detalles desta conta",
- "Set new email address" : "Definir un novo enderezo de correo",
- "Add account to group" : "Engadir conta ao grupo",
- "Set account as admin for" : "Definir a conta como administradora para",
- "Select account quota" : "Seleccione a cota da conta",
- "Set the language" : "Definir o idioma",
- "Toggle account actions menu" : "Alternar o menú de accións da conta",
- "Done" : "Feito",
- "Edit" : "Editar",
- "Account management settings" : "Axustes da xestión da conta",
- "Visibility" : "Visibilidade",
- "Show language" : "Amosar o idioma",
- "Show account backend" : "Amosar a infraestrutura da conta",
- "Show storage path" : "Amosar a ruta do almacenamento",
- "Show first login" : "Amosar o primeiro acceso",
- "Show last login" : "Amosar o último acceso",
- "Sorting" : "Ordenación",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "A configuración do sistema obriga a clasificar os grupos por nome. Isto tamén desactiva a vista do reconto de membros.",
- "Group list sorting" : "Ordenación da lista de grupos",
- "By member count" : "Segundo o número de membros",
- "By name" : "Polo nome",
- "Send email" : "Enviar o correo",
- "Send welcome email to new accounts" : "Enviar correo de benvida ás novas contas",
- "Defaults" : "Predeterminados",
- "Default quota" : "Cota predeterminada",
- "Select default quota" : "Seleccionar a cota predeterminada",
- "Server error while trying to complete WebAuthn device registration" : "Produciuse un erro do servidor cando se intentaba completar o rexistro do dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "A autenticación sen contrasinal precisa dunha conexión segura.",
- "Add WebAuthn device" : "Engadir un dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorice o seu dispositivo WebAuthn.",
- "Adding your device …" : "Engadindo o seu dispositivo…",
- "Unnamed device" : "Dispositivo sen nome",
- "Passwordless Authentication" : "Autenticación sen contrasinal",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configurar a súa conta para a autenticación sen contrasinal seguindo o estándar FIDO2.",
- "No devices configured." : "Non hai dispositivos configurados.",
- "The following devices are configured for your account:" : "Os seguintes dispositivos están configurados para a súa conta:",
- "Your browser does not support WebAuthn." : "O seu navegador non é compatíbel co WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador pode facer axustes finos do comportamento ao compartir. Lea a documentación para obter máis información.",
- "You need to enable the File sharing App." : "Debe activar a aplicación Compartir ficheiros.",
- "App Store" : "Tenda de aplicacións",
- "Loading app list" : "Cargando a lista de aplicacións",
- "Loading categories" : "Cargando categorías",
- "Developer documentation ↗" : "Documentación para desenvolvedores ↗",
- "Version {version}, {license}-licensed" : "Versión {version}, con licenza {license}",
- "Version {version}" : "Versión {version}",
- "All accounts" : "Todas as contas",
- "Admins" : "Administración",
- "Account group: {group}" : "Grupo de contas: {group}",
- "Account management" : "Xestión de contas",
"Sending…" : "Enviando…",
"Email sent" : "Correo enviado",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Por razóns de rendemento, cando activa o cifrado nun servidor NextCloud só se cifran os ficheiros novos e os modificados.",
@@ -781,6 +499,7 @@
"Date of birth" : "Data de nacemento",
"Full name" : "Nome completo",
"Additional email" : "Correo-e adicional",
+ "Email" : "Correo",
"Fediverse (e.g. Mastodon)" : "Fediverso (p. ex., Mastodon)",
"Headline" : "Titular",
"Organisation" : "Organización",
@@ -790,6 +509,7 @@
"X (formerly Twitter)" : "X (anteriormente Twitter).",
"Website" : "Sitio web",
"Profile visibility" : "Visibilidade do perfil",
+ "Language" : "Idioma",
"Locale" : "Configuración rexional",
"First day of week" : "Primeiro día da semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Non está dispoñíbel porque esta propiedade é precisa para as funcións básicas, como compartir ficheiros e convites de calendario",
@@ -807,6 +527,7 @@
"Show to logged in accounts only" : "Amosar só ás contas iniciadas",
"Hide" : "Agochar",
"Manually installed apps cannot be updated" : "Non é posíbel actualizar as aplicacións instaladas manualmente",
+ "Update to {version}" : "Actualizar a {version}",
"{progress}% Deploying …" : "{progress}% Despregando…",
"{progress}% Initializing …" : "{progress}% Iniciando…",
"Health checking" : "Control de integridade",
@@ -816,6 +537,7 @@
"Allow untested app" : "Permitir aplicación non probada",
"The app will be downloaded from the App Store" : "A aplicación descargarase da tenda de aplicacións",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Esta aplicación non está marcado como compatíbel coa súa versión de Nextcloud. Se continúa, poderá instalar a aplicación. Teña en conta que é probábel que a aplicación non funcione como se agarda.",
+ "{size} used" : "{size} usado",
"Unknown" : "Descoñecido",
"Never" : "Nunca",
"Could not register device: Network error" : "Non foi posíbel rexistrar o dispositivo: Produciuse un erro de rede",
@@ -834,8 +556,10 @@
"Could not set group sorting" : "Non foi posíbel definir a ordenación por grupos",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houbo demasiadas solicitudes da súa rede. Volva tentalo máis adiante ou póñase en contacto coa administración desta instancia. se se trata dun erro.",
"Error" : "Erro",
+ "Default quota" : "Cota predeterminada",
"Account documentation" : "Documentación da conta",
"Administration documentation" : "Documentación da administración da instancia",
+ "Documentation" : "Documentación",
"Forum" : "Foro",
"Nextcloud help & privacy resources" : "Recursos de axuda e privacidade de Nextcloud",
"General documentation" : "Documentación xeral",
@@ -858,6 +582,7 @@
"SMTP Password" : "Contrasinal SMTP",
"Save" : "Gardar",
"Test and verify email settings" : "Probe e verifique os axustes do correo",
+ "Send email" : "Enviar o correo",
"Security & setup warnings" : "Advertencias de seguranza e configuración",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "É importante para a seguranza e o bo funcionamento da súa instancia que todo estea configurado correctamente. Para axudarlle niso, imos facer algunhas comprobacións automáticas. Vexa a documentación ligada para obter máis información. ",
"All checks passed." : "Pasáronse todas as comprobacións.",
@@ -877,50 +602,14 @@
"Use a second factor besides your password to increase security for your account." : "Empregue un segundo factor ademais do seu contrasinal para aumentar a seguranza da súa conta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : " Se usa aplicacións de terceiros para conectarse a Nextcloud, asegúrese de crear e configurar un contrasinal de aplicación para cada unha antes de activar o segundo factor de autenticación.",
"Logged in account must be a subadmin" : "A conta que accede debe ser de subadministración",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que esta comprobación se execute, debe asegurarse de que o seu servidor web poida conectarse a si mesmo. Por tanto, debe ser quen de resolver e conectarse a polo menos un dos seus «trusted_domains» ou ao «overwrite.cli.url».",
- "Missing optional index \"%s\" in table \"%s\"." : "Falta o índice opcional «%s» na táboa «%s».",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Á base de datos fáltanlle algúns índices. Por mor de que engadir os índices podería levar moito non foron engadidos automaticamente. Estes índices perdidos poden engadirse manualmente mentres siga funcionando a instancia, executando «occ db:add-missing-indices». Una vez se teñan engadidos os índices, as consultas a esas táboas adoitan ser moito máis rápidas.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que esta comprobación se execute, debe asegurarse de que o seu servidor web poida conectarse a si mesmo. Por tanto, debe ser quen de resolver e conectarse a polo menos un dos seus «trusted_domains» ou ao «overwrite.cli.url». Este fallo pode ser o resultado dunha falta de coincidencia de DNS do servidor ou dunha regra da devasa de saída.",
"File locking" : "Bloqueo de ficheiros",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "O bloqueo de ficheiros transaccionais está desactivado, isto podería levar a problemas baixo certas condicións. Active «filelocking.enabled» en «config.php» para evitar eses problemas",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Non foi posíbel comprobar a compatibilidade de JavaScript a través de ningún dos seus «trusted_domains» nin «overwrite.cli.url». Isto pode ser o resultado dunha falta de coincidencia de DNS do servidor ou dunha regra da devasa de saída. Comprobe manualmente se o seu servidor web serve ficheiros «.mjs» usando o tipo MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "O límite de memoria de PHP está por baixo do valor recomendado de %s.",
"for WebAuthn passwordless login" : "para acceso sen contrasinal de WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "para acceso sen contrasinal de WebAuthn, e almacenamento SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Actualmente está a executar PHP %s. PHP 8.0 é obsoleto en Nextcloud 27. Nextcloud 28 pode precisar polo menos PHP 8.1. Actualice a unha das versións de PHP oficialmente compatíbeis fornecidas polo Grupo PHP o antes posíbel.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Utilízase a versión «%s» de MariaDB. Nextcloud 21 ou superior non admite esta versión e precisa MariaDB 10.2 ou superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Utilízase a versión «%s» de MySQL. Nextcloud 21 e superior non admite esta versión e precisan MySQL 8.0 ou MariaDB 10.2 ou superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Utilízase a versión «%s» de PostgreSQL. Nextcloud 21 ou superior non admite esta versión e precisa PostgreSQL 9.6 ou superior.",
- "Speech-To-Text" : "Conversión de voz a texto",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text pode ser implementado por diferentes aplicacións. Aquí pode definir que aplicación debe usar.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ningunha das aplicacións instaladas neste momento ofrece funcións de conversión de voz a texto",
- "None of your currently installed apps provide Text processing functionality" : "Ningunha das aplicacións instaladas neste momento ofrece funcións de procesamento de texto",
- "Set default expiration date for shares" : "Definir a data de caducidade predeterminada das comparticións",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir o autocompletado do nome de usuario no diálogo de compartir e permitir o acceso ao caderno de enderezos do sistema",
- "Your biography" : "A súa biografía",
- "You are using <strong>{usage}</strong>" : "Está a usar <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Está a usar <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Definir o xestor de usuarios",
- "Username will be autogenerated" : "O nome de usuario vai ser xerado automaticamente",
- "Username (required)" : "Nome de usuario (necesario)",
- "New user" : "Novo usuario",
- "Groups (required)" : "Grupos (necesario)",
- "Set user groups" : "Definir grupos de usuarios",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Definir o usuario como administrador para…",
- "Set user quota" : "Definir a cota de usuario",
- "Add new user" : "Engadir un novo usuario",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuario…","{userCount} usuarios…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuario","{userCount} usuarios"],
- "Loading users …" : "Cargando usuarios…",
- "Username" : "Nome de usuario",
- "User backend" : "Infraestrutura do usuario",
- "User actions" : "Accións do usuario",
- "Add user to group" : "Engadir usuario ao grupo",
- "Server error while trying to add WebAuthn device" : "Produciuse un erro do servidor cando se tentaba engadir un dispositivo WebAuthn",
- "Name your device" : "Nome do seu dispositivo",
- "Active accounts" : "Contas activas",
- "Follow us on Twitter" : "Síganos en Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que esta comprobación se execute, debe asegurarse de que o seu servidor web poida conectarse a si mesmo. Por tanto, debe ser quen de resolver e conectarse a polo menos un dos seus «trusted_domains» ou ao «overwrite.cli.url». Este fallo pode ser o resultado dunha falta de coincidencia de DNS do servidor ou dunha regra da devasa de saída.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Detectouse a versión «%s» de PostgreSQL. Suxírese PostgreSQL >=12 e <=16 para un mellor rendemento, estabilidade e funcionalidade con esta versión de Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– A cabeceira HTTP «%1$s» non contén «%2$s». Este é un risco potencial de seguridade ou privacidade, polo que, en consecuencia, recoméndase este axuste.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Detectouse a versión «%s» de PostgreSQL. Suxírese PostgreSQL >=12 e <=16 para un mellor rendemento, estabilidade e funcionalidade con esta versión de Nextcloud.",
+ "Set default expiration date for shares" : "Definir a data de caducidade predeterminada das comparticións"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/he.js b/apps/settings/l10n/he.js
index 7066ac747ee..58143cbd76f 100644
--- a/apps/settings/l10n/he.js
+++ b/apps/settings/l10n/he.js
@@ -152,54 +152,13 @@ OC.L10N.register(
"Group name" : "שם קבוצה",
"Loading groups…" : "הקבוצות נטענות…",
"Loading" : "בטעינה",
- "Daemon" : "סוכן",
- "Type" : "סוג",
- "Display Name" : "שם תצוגה",
- "Learn more" : "לקריאה נוספת",
- "Confirm" : "אימות",
- "Cancel" : "ביטול",
- "Description" : "תיאור",
- "View in store" : "הצגה באחסון",
- "Visit website" : "ביקור באתר האינטרנט",
- "Admin documentation" : "תיעוד מנהל",
- "Developer documentation" : "תיעוד מפתח",
- "Details" : "פרטים",
- "All" : "הכל",
- "Limit app usage to groups" : "הגבלת השימוש ביישומון לקבוצות",
- "No results" : "אין תוצאות",
- "Update to {version}" : "עדכון ל־{version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "ליישומון זה לא מוקצית גרסת Nextcloud מזערית. מצב כזה עשוי להוביל לשגיאה בעתיד.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "ליישומון זה לא מוקצית גרסת Nextcloud מרבית. מצב כזה עשוי להוביל לשגיאה בעתיד.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "לא ניתן להתקין את יישום זה כיוון שייחסי התלות הבאים לא התקיימו:",
- "Categories" : "קטגוריות",
- "Resources" : "משאבים",
- "Documentation" : "תיעוד",
- "Report a bug" : "דיווח על באג",
- "Request feature" : "בקשת תכונה",
- "Ask questions or discuss" : "פרסום שאלות או דיון",
- "Rate" : "דירוג",
- "Changelog" : "יומן שינויים",
- "Google Chrome for Android" : "Google Chrome עבור Android",
- "This session" : "הפעלה זו",
- "Marked for remote wipe" : "מסומן להשמדת נתונים מרחוק",
- "Device settings" : "הגדרות מכשיר",
- "Allow filesystem access" : "לאפשר גישה למערכת הקבצים",
- "Rename" : "שינוי שם",
- "Revoke" : "שלילה",
- "Wipe device" : "השמדת נתוני מכשיר",
- "Device" : "התקן",
- "Last activity" : "פעילות אחרונה",
- "Devices & sessions" : "התקנים והפעלות",
- "Web, desktop and mobile clients currently logged in to your account." : "לקוחות שמחוברים כעת לחשבון שלך דרך דפדפן, שולחן עבודה והתקנים ניידים.",
- "Error while creating device token" : "שגיאה בזמן יצירת מחרוזת התקן",
- "App name" : "שם יישום",
- "Create new app password" : "יצירת סיסמת יישום חדשה",
"Could not copy app password. Please copy it manually." : "לא ניתן להעתיק את הססמה של היישומון. נא להעתיק אותה ידנית.",
"Login" : "התחברות",
"Password" : "ססמה",
"Show QR code for mobile apps" : "הצגת קוד QR ליישומונים לניידים",
"Use system cron service to call the cron.php file every 5 minutes." : "להשתמש בשירות ה־cron של המערכת כדי לקרוא לקובץ cron.php כל 5 דקות.",
"Profile" : "פרופיל",
+ "Password confirmation is required" : "נדרש אימות ססמה",
"Server-side encryption" : "הצפנת צד שרת",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "הצפנה בצד השרת מאפשרת להצפין קבצים שנשלחים לשרת. לתכונה זו יש מגבלות כגון ירידה בביצועים, מומלץ להפעיל רק אם יש צורך.",
"Enable server-side encryption" : "הפעלת הצפנה בצד שרת",
@@ -211,75 +170,19 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "תשומת לב לכך שהצפנה בהכרח מגדילה את גודל הקובץ.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "תמיד טוב ליצור גיבוי קבוע למידע , במקרה של הצפנה יש לוודא שגם מפתחות ההצפנה מגובים עם המידע שלך.",
"This is the final warning: Do you really want to enable encryption?" : "זו הזהרה אחרונה: האם באמת ברצונך להפעיל הצפנה?",
+ "Cancel" : "ביטול",
+ "Confirm" : "אימות",
"Submit" : "שליחה",
- "Remove group" : "הסרת קבוצה",
- "Current password" : "סיסמא נוכחית",
- "New password" : "סיסמא חדשה",
- "Change password" : "שינוי סיסמא",
- "Picture provided by original account" : "תמונה סופקה על ידי חשבון מקור",
- "You are a member of the following groups:" : "הקבוצות הבאות כוללות אותך:",
- "No email address set" : "לא נקבעה כתובת דואר אלקטרוני",
- "Languages" : "שפות",
- "Help translate" : "עזרה בתרגום",
- "No language set" : "לא הוגדרה שפה",
- "Your phone number" : "מספר הטלפון שלך",
- "Add" : "הוספה",
- "Create" : "יצירה",
- "Change" : "שינוי",
- "Delete" : "מחיקה",
- "Reshare" : "שיתוף מחדש",
- "Default language" : "שפת בררת מחדל",
- "Common languages" : "שפות נפוצות",
- "Password change is disabled because the master key is disabled" : "החלפת ססמה מושבתת כיוון שהמפתח הראשי מושבת",
- "New account" : "חשבון חדש",
- "Display name" : "שם תצוגה",
- "Email" : "דוא״ל",
- "Quota" : "מכיסה",
- "Language" : "שפה",
- "Avatar" : "תמונה מייצגת",
- "Group admin for" : "הנהלת הקבוצה",
- "Storage location" : "מיקום אחסון",
- "Last login" : "כניסה אחרונה",
- "Account actions" : "פעולות חשבון",
- "{size} used" : "{size} בשימוש",
- "Delete account" : "מחיקת חשבון",
- "Resend welcome email" : "שליחת הודעת קבלת פנים בדוא״ל מחדש",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "במקרה של אובדן מכשיר או עזיבה של הארגון, מנגנון זה יכול להשמיד את נתוני ה־Nextcloud מכל המכשירים שמשויכים אל {userid}. יעבוד רק אם כל המכשירים מחוברים לאינטרנט.",
- "Remote wipe of devices" : "השמדת נתונים מרוחקת במכשירים",
- "Wipe {userid}'s devices" : "השמדת נתוני המכשירים של {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "למחוק לחלוטין את החשבון של {userid} לרבות כל הקבצים האישיים, נתוני היישומונים וכו׳.",
- "Account deletion" : "מחיקת חשבון",
- "Delete {userid}'s account" : "מחיקת החשבון של {userid}",
- "Welcome mail sent!" : "נשלחה הודעת קבלת פנים בדוא״ל!",
- "Done" : "הסתיים",
- "Edit" : "עריכה",
- "Show storage path" : "הצגת נתיב אחסון",
- "Show last login" : "הצגת כניסה אחרונה",
- "Sorting" : "מיון",
- "Send email" : "שליחת דואר אלקטרוני",
- "Default quota" : "מיכסת בררת מחדל",
- "Select default quota" : "בחירת מכסת בררת מחדל",
- "Server error while trying to complete WebAuthn device registration" : "התקבלה שגיאת שרת בעת הניסיון להשלים את הרשמת התקן ה־WebAuthn",
- "Passwordless authentication requires a secure connection." : "אימות ללא ססמה דורש חיבור מוצפן.",
- "Add WebAuthn device" : "הוספת התקן WebAuthn",
- "Please authorize your WebAuthn device." : "נא לייפות את כוחו של התקן ה־WebAuthn שלך.",
- "Adding your device …" : "הוספת ההתקן שלך…",
- "Unnamed device" : "התקן ללא שם",
- "Passwordless Authentication" : "אימות ללא ססמה",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "הגדרת החשבון שלך לאימות ללא ססמה לפי תקן FIDO2.",
- "No devices configured." : "לא הוגדרו התקנים.",
- "The following devices are configured for your account:" : "ההתקנים הבאים הוגדרו לחשבון שלך:",
- "Your browser does not support WebAuthn." : "הדפדפן שלך אינו תומך ב־WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "כמנהל יש לך אפשרות לכוונן את התנהגות השיתוף. נא לעיין בתיעוד לפרטים נוספים.",
- "Admins" : "מנהלים",
"Sending…" : "בשליחה…",
"Email sent" : "הודעת הדואר האלקטרוני נשלחה",
"Location" : "מיקום",
"Profile picture" : "תמונת פרופיל",
"About" : "על אודות",
"Full name" : "שם מלא",
+ "Email" : "דוא״ל",
"Phone number" : "מספר טלפון",
"Website" : "אתר",
+ "Language" : "שפה",
"Locale" : "הגדרות אזוריות",
"Your apps" : "היישומונים שלך",
"Active apps" : "יישומונים פעילים",
@@ -288,9 +191,11 @@ OC.L10N.register(
"App bundles" : "מאגדי יישומונים",
"Featured apps" : "יישומונים מובילים",
"Hide" : "הסתרה",
+ "Update to {version}" : "עדכון ל־{version}",
"Download and enable" : "להוריד ולהפעיל",
"Disable" : "ניטרול",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "היישומון הזה לא מסומן כנתמך בגרסת ה־Nextcloud. עדיין יתאפשר לך להמשיך ולהתקין את היישומון. נא לשים לב שיכול להיות שהיישומון לא יעבוד כצפוי.",
+ "{size} used" : "{size} בשימוש",
"Unknown" : "לא ידוע",
"Never" : "מעולם לא",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "היישומון הופעל אך יש לעדכן אותו. ההפניה לעמוד העדכון תחל בעוד 5 שניות.",
@@ -301,6 +206,8 @@ OC.L10N.register(
"Error while updating device token scope" : "שגיאה בעדכון טווח אסימון מכשירים",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "היו יותר מדי בקשות מהרשת שלך. נסה שוב מאוחר יותר, או צור קשר עם מנהל המערכת שלך אם זו שגיאה.",
"Error" : "שגיאה",
+ "Default quota" : "מיכסת בררת מחדל",
+ "Documentation" : "תיעוד",
"Forum" : "פורום",
"Legal notice" : "הצהרה משפטית",
"Privacy policy" : "מדיניות פרטיות",
@@ -318,6 +225,7 @@ OC.L10N.register(
"Credentials" : "פרטי גישה",
"SMTP Password" : "סיסמת SMTP",
"Save" : "שמור",
+ "Send email" : "שליחת דואר אלקטרוני",
"Security & setup warnings" : "הזהרות אבטחה והתקנה",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "למטרות אבטחה וביצועים מיטביים עבור המערכת שלך חשוב שהכול יוגדר כראוי. כדי לסייע לך בכך אנו עורכים בדיקות אוטומטיות. נא לעיין בתיעוד המקושר לקבלת מידע נוסף.",
"All checks passed." : "כל הבדיקות עברו",
@@ -334,13 +242,6 @@ OC.L10N.register(
"Subscribe to our newsletter" : "הרשמה לרשימת הדיוור שלנו",
"Use a second factor besides your password to increase security for your account." : "ניתן להשתמש בגורם נוסף מלבד הססמה שלך כדי להגביר את אבטחת החשבון שלך.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "אם משמשים אותך יישומי צד־שלישי להתחברות אל Nextcloud, נא לוודא יצירת והגדרת ססמה ליישומון לכל אחד מהם בטרם הפעלת אימות דו־שלבי.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "למסד הנתונים חסרים אינדקסים. כיוון שהוספת אינדקסים על טבלאות גדולות היא פעולה שגוזלת זמן רב הם לא נוספים אוטומטית. על ידי הרצת הפקודה „occ db:add-missing-indices” האינדקסים החסרים נוספים ידנית ללא עצירת פעולת העותק. לאחר הוספת האינדקסים השאילתות על הטבלאות האלה מהירות בהרבה.",
- "Set default expiration date for shares" : "הגדרת תאריך תפוגה כבררת מחדל לשיתופים",
- "New user" : "משתמש חדש",
- "Username" : "שם משתמש",
- "User backend" : "מנגנון משתמש",
- "Server error while trying to add WebAuthn device" : "אירעה שגיאת שרת בעת הניסיון להוספת התקן WebAuthn",
- "Name your device" : "מתן שם להתקן שלך",
- "Follow us on Twitter" : "לעקוב אחרינו בטוויטר"
+ "Set default expiration date for shares" : "הגדרת תאריך תפוגה כבררת מחדל לשיתופים"
},
"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;");
diff --git a/apps/settings/l10n/he.json b/apps/settings/l10n/he.json
index d6628079bc1..c3aba4f0e73 100644
--- a/apps/settings/l10n/he.json
+++ b/apps/settings/l10n/he.json
@@ -150,54 +150,13 @@
"Group name" : "שם קבוצה",
"Loading groups…" : "הקבוצות נטענות…",
"Loading" : "בטעינה",
- "Daemon" : "סוכן",
- "Type" : "סוג",
- "Display Name" : "שם תצוגה",
- "Learn more" : "לקריאה נוספת",
- "Confirm" : "אימות",
- "Cancel" : "ביטול",
- "Description" : "תיאור",
- "View in store" : "הצגה באחסון",
- "Visit website" : "ביקור באתר האינטרנט",
- "Admin documentation" : "תיעוד מנהל",
- "Developer documentation" : "תיעוד מפתח",
- "Details" : "פרטים",
- "All" : "הכל",
- "Limit app usage to groups" : "הגבלת השימוש ביישומון לקבוצות",
- "No results" : "אין תוצאות",
- "Update to {version}" : "עדכון ל־{version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "ליישומון זה לא מוקצית גרסת Nextcloud מזערית. מצב כזה עשוי להוביל לשגיאה בעתיד.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "ליישומון זה לא מוקצית גרסת Nextcloud מרבית. מצב כזה עשוי להוביל לשגיאה בעתיד.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "לא ניתן להתקין את יישום זה כיוון שייחסי התלות הבאים לא התקיימו:",
- "Categories" : "קטגוריות",
- "Resources" : "משאבים",
- "Documentation" : "תיעוד",
- "Report a bug" : "דיווח על באג",
- "Request feature" : "בקשת תכונה",
- "Ask questions or discuss" : "פרסום שאלות או דיון",
- "Rate" : "דירוג",
- "Changelog" : "יומן שינויים",
- "Google Chrome for Android" : "Google Chrome עבור Android",
- "This session" : "הפעלה זו",
- "Marked for remote wipe" : "מסומן להשמדת נתונים מרחוק",
- "Device settings" : "הגדרות מכשיר",
- "Allow filesystem access" : "לאפשר גישה למערכת הקבצים",
- "Rename" : "שינוי שם",
- "Revoke" : "שלילה",
- "Wipe device" : "השמדת נתוני מכשיר",
- "Device" : "התקן",
- "Last activity" : "פעילות אחרונה",
- "Devices & sessions" : "התקנים והפעלות",
- "Web, desktop and mobile clients currently logged in to your account." : "לקוחות שמחוברים כעת לחשבון שלך דרך דפדפן, שולחן עבודה והתקנים ניידים.",
- "Error while creating device token" : "שגיאה בזמן יצירת מחרוזת התקן",
- "App name" : "שם יישום",
- "Create new app password" : "יצירת סיסמת יישום חדשה",
"Could not copy app password. Please copy it manually." : "לא ניתן להעתיק את הססמה של היישומון. נא להעתיק אותה ידנית.",
"Login" : "התחברות",
"Password" : "ססמה",
"Show QR code for mobile apps" : "הצגת קוד QR ליישומונים לניידים",
"Use system cron service to call the cron.php file every 5 minutes." : "להשתמש בשירות ה־cron של המערכת כדי לקרוא לקובץ cron.php כל 5 דקות.",
"Profile" : "פרופיל",
+ "Password confirmation is required" : "נדרש אימות ססמה",
"Server-side encryption" : "הצפנת צד שרת",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "הצפנה בצד השרת מאפשרת להצפין קבצים שנשלחים לשרת. לתכונה זו יש מגבלות כגון ירידה בביצועים, מומלץ להפעיל רק אם יש צורך.",
"Enable server-side encryption" : "הפעלת הצפנה בצד שרת",
@@ -209,75 +168,19 @@
"Be aware that encryption always increases the file size." : "תשומת לב לכך שהצפנה בהכרח מגדילה את גודל הקובץ.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "תמיד טוב ליצור גיבוי קבוע למידע , במקרה של הצפנה יש לוודא שגם מפתחות ההצפנה מגובים עם המידע שלך.",
"This is the final warning: Do you really want to enable encryption?" : "זו הזהרה אחרונה: האם באמת ברצונך להפעיל הצפנה?",
+ "Cancel" : "ביטול",
+ "Confirm" : "אימות",
"Submit" : "שליחה",
- "Remove group" : "הסרת קבוצה",
- "Current password" : "סיסמא נוכחית",
- "New password" : "סיסמא חדשה",
- "Change password" : "שינוי סיסמא",
- "Picture provided by original account" : "תמונה סופקה על ידי חשבון מקור",
- "You are a member of the following groups:" : "הקבוצות הבאות כוללות אותך:",
- "No email address set" : "לא נקבעה כתובת דואר אלקטרוני",
- "Languages" : "שפות",
- "Help translate" : "עזרה בתרגום",
- "No language set" : "לא הוגדרה שפה",
- "Your phone number" : "מספר הטלפון שלך",
- "Add" : "הוספה",
- "Create" : "יצירה",
- "Change" : "שינוי",
- "Delete" : "מחיקה",
- "Reshare" : "שיתוף מחדש",
- "Default language" : "שפת בררת מחדל",
- "Common languages" : "שפות נפוצות",
- "Password change is disabled because the master key is disabled" : "החלפת ססמה מושבתת כיוון שהמפתח הראשי מושבת",
- "New account" : "חשבון חדש",
- "Display name" : "שם תצוגה",
- "Email" : "דוא״ל",
- "Quota" : "מכיסה",
- "Language" : "שפה",
- "Avatar" : "תמונה מייצגת",
- "Group admin for" : "הנהלת הקבוצה",
- "Storage location" : "מיקום אחסון",
- "Last login" : "כניסה אחרונה",
- "Account actions" : "פעולות חשבון",
- "{size} used" : "{size} בשימוש",
- "Delete account" : "מחיקת חשבון",
- "Resend welcome email" : "שליחת הודעת קבלת פנים בדוא״ל מחדש",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "במקרה של אובדן מכשיר או עזיבה של הארגון, מנגנון זה יכול להשמיד את נתוני ה־Nextcloud מכל המכשירים שמשויכים אל {userid}. יעבוד רק אם כל המכשירים מחוברים לאינטרנט.",
- "Remote wipe of devices" : "השמדת נתונים מרוחקת במכשירים",
- "Wipe {userid}'s devices" : "השמדת נתוני המכשירים של {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "למחוק לחלוטין את החשבון של {userid} לרבות כל הקבצים האישיים, נתוני היישומונים וכו׳.",
- "Account deletion" : "מחיקת חשבון",
- "Delete {userid}'s account" : "מחיקת החשבון של {userid}",
- "Welcome mail sent!" : "נשלחה הודעת קבלת פנים בדוא״ל!",
- "Done" : "הסתיים",
- "Edit" : "עריכה",
- "Show storage path" : "הצגת נתיב אחסון",
- "Show last login" : "הצגת כניסה אחרונה",
- "Sorting" : "מיון",
- "Send email" : "שליחת דואר אלקטרוני",
- "Default quota" : "מיכסת בררת מחדל",
- "Select default quota" : "בחירת מכסת בררת מחדל",
- "Server error while trying to complete WebAuthn device registration" : "התקבלה שגיאת שרת בעת הניסיון להשלים את הרשמת התקן ה־WebAuthn",
- "Passwordless authentication requires a secure connection." : "אימות ללא ססמה דורש חיבור מוצפן.",
- "Add WebAuthn device" : "הוספת התקן WebAuthn",
- "Please authorize your WebAuthn device." : "נא לייפות את כוחו של התקן ה־WebAuthn שלך.",
- "Adding your device …" : "הוספת ההתקן שלך…",
- "Unnamed device" : "התקן ללא שם",
- "Passwordless Authentication" : "אימות ללא ססמה",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "הגדרת החשבון שלך לאימות ללא ססמה לפי תקן FIDO2.",
- "No devices configured." : "לא הוגדרו התקנים.",
- "The following devices are configured for your account:" : "ההתקנים הבאים הוגדרו לחשבון שלך:",
- "Your browser does not support WebAuthn." : "הדפדפן שלך אינו תומך ב־WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "כמנהל יש לך אפשרות לכוונן את התנהגות השיתוף. נא לעיין בתיעוד לפרטים נוספים.",
- "Admins" : "מנהלים",
"Sending…" : "בשליחה…",
"Email sent" : "הודעת הדואר האלקטרוני נשלחה",
"Location" : "מיקום",
"Profile picture" : "תמונת פרופיל",
"About" : "על אודות",
"Full name" : "שם מלא",
+ "Email" : "דוא״ל",
"Phone number" : "מספר טלפון",
"Website" : "אתר",
+ "Language" : "שפה",
"Locale" : "הגדרות אזוריות",
"Your apps" : "היישומונים שלך",
"Active apps" : "יישומונים פעילים",
@@ -286,9 +189,11 @@
"App bundles" : "מאגדי יישומונים",
"Featured apps" : "יישומונים מובילים",
"Hide" : "הסתרה",
+ "Update to {version}" : "עדכון ל־{version}",
"Download and enable" : "להוריד ולהפעיל",
"Disable" : "ניטרול",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "היישומון הזה לא מסומן כנתמך בגרסת ה־Nextcloud. עדיין יתאפשר לך להמשיך ולהתקין את היישומון. נא לשים לב שיכול להיות שהיישומון לא יעבוד כצפוי.",
+ "{size} used" : "{size} בשימוש",
"Unknown" : "לא ידוע",
"Never" : "מעולם לא",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "היישומון הופעל אך יש לעדכן אותו. ההפניה לעמוד העדכון תחל בעוד 5 שניות.",
@@ -299,6 +204,8 @@
"Error while updating device token scope" : "שגיאה בעדכון טווח אסימון מכשירים",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "היו יותר מדי בקשות מהרשת שלך. נסה שוב מאוחר יותר, או צור קשר עם מנהל המערכת שלך אם זו שגיאה.",
"Error" : "שגיאה",
+ "Default quota" : "מיכסת בררת מחדל",
+ "Documentation" : "תיעוד",
"Forum" : "פורום",
"Legal notice" : "הצהרה משפטית",
"Privacy policy" : "מדיניות פרטיות",
@@ -316,6 +223,7 @@
"Credentials" : "פרטי גישה",
"SMTP Password" : "סיסמת SMTP",
"Save" : "שמור",
+ "Send email" : "שליחת דואר אלקטרוני",
"Security & setup warnings" : "הזהרות אבטחה והתקנה",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "למטרות אבטחה וביצועים מיטביים עבור המערכת שלך חשוב שהכול יוגדר כראוי. כדי לסייע לך בכך אנו עורכים בדיקות אוטומטיות. נא לעיין בתיעוד המקושר לקבלת מידע נוסף.",
"All checks passed." : "כל הבדיקות עברו",
@@ -332,13 +240,6 @@
"Subscribe to our newsletter" : "הרשמה לרשימת הדיוור שלנו",
"Use a second factor besides your password to increase security for your account." : "ניתן להשתמש בגורם נוסף מלבד הססמה שלך כדי להגביר את אבטחת החשבון שלך.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "אם משמשים אותך יישומי צד־שלישי להתחברות אל Nextcloud, נא לוודא יצירת והגדרת ססמה ליישומון לכל אחד מהם בטרם הפעלת אימות דו־שלבי.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "למסד הנתונים חסרים אינדקסים. כיוון שהוספת אינדקסים על טבלאות גדולות היא פעולה שגוזלת זמן רב הם לא נוספים אוטומטית. על ידי הרצת הפקודה „occ db:add-missing-indices” האינדקסים החסרים נוספים ידנית ללא עצירת פעולת העותק. לאחר הוספת האינדקסים השאילתות על הטבלאות האלה מהירות בהרבה.",
- "Set default expiration date for shares" : "הגדרת תאריך תפוגה כבררת מחדל לשיתופים",
- "New user" : "משתמש חדש",
- "Username" : "שם משתמש",
- "User backend" : "מנגנון משתמש",
- "Server error while trying to add WebAuthn device" : "אירעה שגיאת שרת בעת הניסיון להוספת התקן WebAuthn",
- "Name your device" : "מתן שם להתקן שלך",
- "Follow us on Twitter" : "לעקוב אחרינו בטוויטר"
+ "Set default expiration date for shares" : "הגדרת תאריך תפוגה כבררת מחדל לשיתופים"
},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/hr.js b/apps/settings/l10n/hr.js
index 9cffe03cadb..c9a907c8cdb 100644
--- a/apps/settings/l10n/hr.js
+++ b/apps/settings/l10n/hr.js
@@ -163,53 +163,6 @@ OC.L10N.register(
"Group name" : "Naziv grupe",
"Loading groups…" : "Učitavanje grupa…",
"Loading" : "Učitavanje",
- "Daemon" : "Daemon",
- "Type" : "Vrsta",
- "Display Name" : "Ime",
- "Learn more" : "Saznajte više",
- "Confirm" : "Potvrdi",
- "Cancel" : "Odustani",
- "Description" : "Opis",
- "View in store" : "Pogledajte u trgovini",
- "Visit website" : "Posjeti web-mjesto",
- "Admin documentation" : "Dokumentacija za administratore",
- "Developer documentation" : "Dokumentacija za razvojne programere",
- "Details" : "Pojedinosti",
- "All" : "Sve",
- "Limit app usage to groups" : "Ograničite primjenu aplikacije na grupe",
- "No results" : "Nema rezultata",
- "Update to {version}" : "Ažuriraj na {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ovoj aplikaciji nije dodijeljena najmanja inačica Nextclouda. To će biti pogreška u budućnosti.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ovoj aplikaciji nije dodijeljena najveća inačica Nextclouda. To će biti pogreška u budućnosti.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Aplikaciju nije moguće instalirati jer nisu ispunjene sljedeće ovisnosti:",
- "Author" : "Autor",
- "Categories" : "Kategorije",
- "Resources" : "Resursi",
- "Documentation" : "Dokumentacija",
- "Report a bug" : "Prijavi pogrešku",
- "Request feature" : "Zatražite značajku",
- "Ask questions or discuss" : "Postavljajte pitanja ili raspravljajte",
- "Rate" : "Ocijeni",
- "Changelog" : "Zapis promjena",
- "Google Chrome for Android" : "Google Chrome za Android",
- "{productName} iOS app" : "{productName} aplikacija za iOS",
- "{productName} Android app" : "{productName} aplikacija za Android",
- "{productName} Talk for iOS" : "{productName} Talk za iOS",
- "{productName} Talk for Android" : "{productName} Talk za Android",
- "This session" : "Ova sesija",
- "Marked for remote wipe" : "Označeno za udaljeno brisanje",
- "Device settings" : "Postavke uređaja",
- "Allow filesystem access" : "Omogući pristup datotečnom sustavu",
- "Rename" : "Preimenuj",
- "Revoke" : "Opozovi",
- "Wipe device" : "Izbriši sve s uređaja",
- "Device" : "Uređaj",
- "Last activity" : "Posljednja aktivnost",
- "Devices & sessions" : "Uređaji i sesije",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, računalni i mobilni klijenti trenutno prijavljeni u vaš račun.",
- "Error while creating device token" : "Pogreška pri stvaranju tokena za uređaj",
- "App name" : "Naziv aplikacije",
- "Create new app password" : "Stvori novu zaporku za aplikaciju",
"Could not copy app password. Please copy it manually." : "Kopiranje zaporke aplikacije nije uspjelo. Kopirajte je ručno.",
"Login" : "Prijava",
"Password" : "Zaporka",
@@ -227,90 +180,9 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Imajte na umu da šifriranje uvijek povećava veličinu datoteke.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Uvijek je dobra ideja redovito izrađivati sigurnosne kopije podataka; ako upotrebljavate šifriranje, obavezno sigurnosno kopirajte ključeve za šifriranje zajedno sa svojim podacima.",
"This is the final warning: Do you really want to enable encryption?" : "Ovo je posljednje upozorenje: želite li zaista omogućiti šifriranje?",
+ "Cancel" : "Odustani",
+ "Confirm" : "Potvrdi",
"Submit" : "Šalji",
- "Remove group" : "Ukloni grupu",
- "Current password" : "Trenutna zaporka",
- "New password" : "Nova zaporka",
- "Change password" : "Promijeni zaporku",
- "Picture provided by original account" : "Slika s izvornog računa",
- "You are a member of the following groups:" : "Član ste sljedećih grupa:",
- "Your full name" : "Vaše ime i prezime",
- "Email options" : "Mogućnosti e-pošte",
- "Remove primary email" : "Ukloni primarnu adresu e-pošte",
- "Delete email" : "Izbriši adresu e-pošte",
- "This address is not confirmed" : "Ova adresa nije potvrđena",
- "Unset as primary email" : "Poništi primarnu adresu e-pošte",
- "Set as primary email" : "Postavi kao primarnu adresu e-pošte",
- "Additional email address {index}" : "Dodatne adrese e-pošte {index}",
- "Unable to delete primary email address" : "Nije moguće izbrisati primarnu adresu e-pošte",
- "Unable to update primary email address" : "Nije moguće ažurirati primarnu adresu e-pošte",
- "Unable to add additional email address" : "Nije moguće dodati dodatnu adresu e-pošte",
- "Unable to update additional email address" : "Nije moguće ažurirati dodatnu adresu e-pošte",
- "Unable to delete additional email address" : "Nije moguće izbrisati dodatnu adresu e-pošte",
- "Primary email for password reset and notifications" : "Primarna e-pošta za resetiranje zaporke i primanje obavijesti",
- "No email address set" : "Nije postavljena adresa e-pošte",
- "Your headline" : "Vaš naslov",
- "Unable to update language" : "Nije moguće ažurirati jezik",
- "Help translate" : "Pomozite prevesti",
- "No language set" : "Nije postavljen jezik",
- "Your organisation" : "Vaša organizacija",
- "Your phone number" : "Vaš broj telefona",
- "Edit your Profile visibility" : "Uredite vidljivost profila",
- "Unable to update profile enabled state" : "Nije moguće ažurirati stanje omogućenog profila",
- "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." : "Na profilu se primjenjuje stroža postavka vidljivosti ili opsega. Na primjer, ako je vidljivost postavljena na „Prikaži svima”, a opseg je postavljen na „Privatno”, primjenjuje se „Privatno”.",
- "Unable to update visibility of {displayId}" : "Nije moguće ažurirati vidljivost za {displayId}",
- "Your role" : "Vaša uloga",
- "Add" : "Dodaj",
- "Create" : "Stvori",
- "Change" : "Promijeni",
- "Delete" : "Izbriši",
- "Reshare" : "Dijeli ponovno",
- "Default language" : "Zadani jezik",
- "Common languages" : "Česti jezici",
- "Other languages" : "Drugi jezici",
- "Password change is disabled because the master key is disabled" : "Onemogućeno je mijenjanje zaporke jer je onemogućen glavni ključ",
- "New account" : "Novi račun",
- "Display name" : "Ime za prikaz",
- "Email" : "E-pošta",
- "Quota" : "Kvota",
- "Language" : "Jezik",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrator grupe za",
- "Storage location" : "Mjesto pohrane",
- "Last login" : "Posljednja prijava",
- "Account actions" : "Radnje računa",
- "{size} used" : "Iskorišteno {size}",
- "Delete account" : "Izbriši račun",
- "Resend welcome email" : "Ponovno pošalji poruku dobrodošlice",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "U slučaju gubitka uređaja ili napuštanja organizacije, može daljinski izbrisati Nextcloudove podatke sa svih uređaja kojima se koristi {userid}. Brisanje je moguće samo ako su uređaji povezani na internet.",
- "Remote wipe of devices" : "Daljinsko brisanje podataka s uređaja",
- "Wipe {userid}'s devices" : "Izbriši podatke sa svih uređaja koji pripadaju {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "U potpunosti izbriši račun koji pripada {userid}, uključujući sve osobne datoteke, aplikacije itd.",
- "Account deletion" : "Brisanje računa",
- "Delete {userid}'s account" : "Izbriši račun koji pripada {userid}",
- "Welcome mail sent!" : "Poslana poruka dobrodošlice!",
- "Done" : "Gotovo",
- "Edit" : "Uredi",
- "Show storage path" : "Prikaži put pohrane",
- "Show last login" : "Prikaži posljednju prijavu",
- "Sorting" : "Razvrstavanje",
- "Send email" : "Pošalji poruku e-pošte",
- "Default quota" : "Zadana kvota",
- "Select default quota" : "Odaberi zadanu kvotu",
- "Server error while trying to complete WebAuthn device registration" : "Pogreška poslužitelja tijekom dovršavanja registracije WebAuthn uređaja",
- "Passwordless authentication requires a secure connection." : "Autentifikacija bez zaporke zahtijeva sigurnu vezu.",
- "Add WebAuthn device" : "Dodaj WebAuthn uređaj",
- "Please authorize your WebAuthn device." : "Autorizirajte svoj WebAuthn uređaj.",
- "Adding your device …" : "Dodavanje uređaja...",
- "Unnamed device" : "Neimenovani uređaj",
- "Passwordless Authentication" : "Autentifikacija bez zaporke",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Omogućite korištenje autentifikacije bez zaporke na svom računu u skladu sa standardom FIDO2.",
- "No devices configured." : "Nema konfiguriranih uređaja.",
- "The following devices are configured for your account:" : "Sljedeći su uređaji konfigurirani za vaš račun:",
- "Your browser does not support WebAuthn." : "Vaš preglednik ne podržava WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Administrator možete detaljnije podešavati dijeljenja. Pogledajte odgovarajuću dokumentaciju za više informacija.",
- "You need to enable the File sharing App." : "Morate omogućiti aplikaciju za dijeljenje datoteka.",
- "Admins" : "Administratori",
"Sending…" : "Slanje…",
"Email sent" : "E-pošta je poslana",
"Location" : "Lokacija",
@@ -318,12 +190,14 @@ OC.L10N.register(
"About" : "Informacije",
"Full name" : "Puno ime",
"Additional email" : "Dodatna adresa e-pošte",
+ "Email" : "E-pošta",
"Headline" : "Naslov",
"Organisation" : "Organizacija",
"Phone number" : "Broj telefona",
"Role" : "Uloga",
"Website" : "Web-mjesto",
"Profile visibility" : "Vidljivost profila",
+ "Language" : "Jezik",
"Locale" : "Lokacija",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nije dostupno jer je ovo svojstvo potrebno za osnovnu funkcionalnost, uključujući dijeljenje datoteka i pozivnice za kalendar",
"Your apps" : "Vaše aplikacije",
@@ -334,10 +208,12 @@ OC.L10N.register(
"Featured apps" : "Istaknute aplikacije",
"Show to everyone" : "Prikaži svima",
"Hide" : "Sakrij",
+ "Update to {version}" : "Ažuriraj na {version}",
"Download and enable" : "Preuzmi i omogući",
"Disable" : "Onemogući",
"The app will be downloaded from the App Store" : "Aplikacija će se preuzeti iz trgovine aplikacijama",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ova aplikacija nije označena kao kompatibilna s vašom inačicom Nextclouda. Ako odlučite nastaviti, moći ćete instalirati aplikaciju. Imajte na umu da aplikacija možda neće raditi kako očekujete.",
+ "{size} used" : "Iskorišteno {size}",
"Unknown" : "Nepoznata pogreška",
"Never" : "Nikad",
"Error: This app cannot be enabled because it makes the server unstable" : "Pogreška: ova aplikacija ne može biti omogućena jer čini poslužitelj nestabilnim",
@@ -349,6 +225,8 @@ OC.L10N.register(
"Error while updating device token scope" : "Pogreška pri ažuriranju raspona tokena za uređaj",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zaprimljeno je previše zahtjeva iz vaše mreže. Pokušajte kasnije ili se obratite administratoru ako se radi o pogrešci.",
"Error" : "Pogreška",
+ "Default quota" : "Zadana kvota",
+ "Documentation" : "Dokumentacija",
"Forum" : "Forum",
"Legal notice" : "Pravna obavijest",
"Privacy policy" : "Pravila o privatnosti",
@@ -366,6 +244,7 @@ OC.L10N.register(
"Credentials" : "Vjerodajnice",
"SMTP Password" : "SMTP zaporka",
"Save" : "Spremi",
+ "Send email" : "Pošalji poruku e-pošte",
"Security & setup warnings" : "Upozorenja o sigurnosti i postavljanju",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Pravilna konfiguracija iznimno je važna za sigurnost i performanse vaše instance. Kako bismo vam pomogli pravilno konfigurirati sustav, provest ćemo neke automatske provjere. Za više informacija pogledajte navedenu dokumentaciju.",
"All checks passed." : "Sve su provjere uspješno dovršene.",
@@ -383,16 +262,6 @@ OC.L10N.register(
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Ovo izdanje Nextclouda nije podržano i nisu dostupne trenutne obavijesti.",
"Use a second factor besides your password to increase security for your account." : "Koristite se i drugim faktorom pored zaporke kako biste povećali sigurnost svog računa.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ako se za povezivanje s Nextcloudom koristite aplikacijama treće strane, stvorite i konfigurirajte lozinku za svaku aplikaciju prije omogućavanja drugog faktora za provođenje autentifikacije.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "U bazi podataka nedostaju određeni indeksi. Zbog činjenice da bi dodavanje indeksa u velikim tablicama moglo potrajati neko duže vrijeme, isti se ne dodaju automatski. Izvršenjem „occ db:add-missing-indices” se ti indeksi mogu ručno dodati dok instanca radi. Kada se indeksi dodaju, upiti u te tablice obično su mnogo brži.",
- "Set default expiration date for shares" : "Postavi zadani datum isteka dijeljenja",
- "Your biography" : "Vaša biografija",
- "New user" : "Novi korisnik",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} korisnik","{userCount} korisnika","{userCount} korisnika"],
- "Username" : "Korisničko ime",
- "User backend" : "Korisnički pozadinski sustav",
- "Add user to group" : "Dodaj korisnika u grupu",
- "Server error while trying to add WebAuthn device" : "Pogreška poslužitelja pri dodavanju WebAuthn uređaja",
- "Name your device" : "Dodijelite naziv svom uređaju",
- "Follow us on Twitter" : "Pratite nas na Twitteru"
+ "Set default expiration date for shares" : "Postavi zadani datum isteka dijeljenja"
},
"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/settings/l10n/hr.json b/apps/settings/l10n/hr.json
index 35c0e2d9b79..45f42e93f98 100644
--- a/apps/settings/l10n/hr.json
+++ b/apps/settings/l10n/hr.json
@@ -161,53 +161,6 @@
"Group name" : "Naziv grupe",
"Loading groups…" : "Učitavanje grupa…",
"Loading" : "Učitavanje",
- "Daemon" : "Daemon",
- "Type" : "Vrsta",
- "Display Name" : "Ime",
- "Learn more" : "Saznajte više",
- "Confirm" : "Potvrdi",
- "Cancel" : "Odustani",
- "Description" : "Opis",
- "View in store" : "Pogledajte u trgovini",
- "Visit website" : "Posjeti web-mjesto",
- "Admin documentation" : "Dokumentacija za administratore",
- "Developer documentation" : "Dokumentacija za razvojne programere",
- "Details" : "Pojedinosti",
- "All" : "Sve",
- "Limit app usage to groups" : "Ograničite primjenu aplikacije na grupe",
- "No results" : "Nema rezultata",
- "Update to {version}" : "Ažuriraj na {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ovoj aplikaciji nije dodijeljena najmanja inačica Nextclouda. To će biti pogreška u budućnosti.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ovoj aplikaciji nije dodijeljena najveća inačica Nextclouda. To će biti pogreška u budućnosti.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Aplikaciju nije moguće instalirati jer nisu ispunjene sljedeće ovisnosti:",
- "Author" : "Autor",
- "Categories" : "Kategorije",
- "Resources" : "Resursi",
- "Documentation" : "Dokumentacija",
- "Report a bug" : "Prijavi pogrešku",
- "Request feature" : "Zatražite značajku",
- "Ask questions or discuss" : "Postavljajte pitanja ili raspravljajte",
- "Rate" : "Ocijeni",
- "Changelog" : "Zapis promjena",
- "Google Chrome for Android" : "Google Chrome za Android",
- "{productName} iOS app" : "{productName} aplikacija za iOS",
- "{productName} Android app" : "{productName} aplikacija za Android",
- "{productName} Talk for iOS" : "{productName} Talk za iOS",
- "{productName} Talk for Android" : "{productName} Talk za Android",
- "This session" : "Ova sesija",
- "Marked for remote wipe" : "Označeno za udaljeno brisanje",
- "Device settings" : "Postavke uređaja",
- "Allow filesystem access" : "Omogući pristup datotečnom sustavu",
- "Rename" : "Preimenuj",
- "Revoke" : "Opozovi",
- "Wipe device" : "Izbriši sve s uređaja",
- "Device" : "Uređaj",
- "Last activity" : "Posljednja aktivnost",
- "Devices & sessions" : "Uređaji i sesije",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, računalni i mobilni klijenti trenutno prijavljeni u vaš račun.",
- "Error while creating device token" : "Pogreška pri stvaranju tokena za uređaj",
- "App name" : "Naziv aplikacije",
- "Create new app password" : "Stvori novu zaporku za aplikaciju",
"Could not copy app password. Please copy it manually." : "Kopiranje zaporke aplikacije nije uspjelo. Kopirajte je ručno.",
"Login" : "Prijava",
"Password" : "Zaporka",
@@ -225,90 +178,9 @@
"Be aware that encryption always increases the file size." : "Imajte na umu da šifriranje uvijek povećava veličinu datoteke.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Uvijek je dobra ideja redovito izrađivati sigurnosne kopije podataka; ako upotrebljavate šifriranje, obavezno sigurnosno kopirajte ključeve za šifriranje zajedno sa svojim podacima.",
"This is the final warning: Do you really want to enable encryption?" : "Ovo je posljednje upozorenje: želite li zaista omogućiti šifriranje?",
+ "Cancel" : "Odustani",
+ "Confirm" : "Potvrdi",
"Submit" : "Šalji",
- "Remove group" : "Ukloni grupu",
- "Current password" : "Trenutna zaporka",
- "New password" : "Nova zaporka",
- "Change password" : "Promijeni zaporku",
- "Picture provided by original account" : "Slika s izvornog računa",
- "You are a member of the following groups:" : "Član ste sljedećih grupa:",
- "Your full name" : "Vaše ime i prezime",
- "Email options" : "Mogućnosti e-pošte",
- "Remove primary email" : "Ukloni primarnu adresu e-pošte",
- "Delete email" : "Izbriši adresu e-pošte",
- "This address is not confirmed" : "Ova adresa nije potvrđena",
- "Unset as primary email" : "Poništi primarnu adresu e-pošte",
- "Set as primary email" : "Postavi kao primarnu adresu e-pošte",
- "Additional email address {index}" : "Dodatne adrese e-pošte {index}",
- "Unable to delete primary email address" : "Nije moguće izbrisati primarnu adresu e-pošte",
- "Unable to update primary email address" : "Nije moguće ažurirati primarnu adresu e-pošte",
- "Unable to add additional email address" : "Nije moguće dodati dodatnu adresu e-pošte",
- "Unable to update additional email address" : "Nije moguće ažurirati dodatnu adresu e-pošte",
- "Unable to delete additional email address" : "Nije moguće izbrisati dodatnu adresu e-pošte",
- "Primary email for password reset and notifications" : "Primarna e-pošta za resetiranje zaporke i primanje obavijesti",
- "No email address set" : "Nije postavljena adresa e-pošte",
- "Your headline" : "Vaš naslov",
- "Unable to update language" : "Nije moguće ažurirati jezik",
- "Help translate" : "Pomozite prevesti",
- "No language set" : "Nije postavljen jezik",
- "Your organisation" : "Vaša organizacija",
- "Your phone number" : "Vaš broj telefona",
- "Edit your Profile visibility" : "Uredite vidljivost profila",
- "Unable to update profile enabled state" : "Nije moguće ažurirati stanje omogućenog profila",
- "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." : "Na profilu se primjenjuje stroža postavka vidljivosti ili opsega. Na primjer, ako je vidljivost postavljena na „Prikaži svima”, a opseg je postavljen na „Privatno”, primjenjuje se „Privatno”.",
- "Unable to update visibility of {displayId}" : "Nije moguće ažurirati vidljivost za {displayId}",
- "Your role" : "Vaša uloga",
- "Add" : "Dodaj",
- "Create" : "Stvori",
- "Change" : "Promijeni",
- "Delete" : "Izbriši",
- "Reshare" : "Dijeli ponovno",
- "Default language" : "Zadani jezik",
- "Common languages" : "Česti jezici",
- "Other languages" : "Drugi jezici",
- "Password change is disabled because the master key is disabled" : "Onemogućeno je mijenjanje zaporke jer je onemogućen glavni ključ",
- "New account" : "Novi račun",
- "Display name" : "Ime za prikaz",
- "Email" : "E-pošta",
- "Quota" : "Kvota",
- "Language" : "Jezik",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrator grupe za",
- "Storage location" : "Mjesto pohrane",
- "Last login" : "Posljednja prijava",
- "Account actions" : "Radnje računa",
- "{size} used" : "Iskorišteno {size}",
- "Delete account" : "Izbriši račun",
- "Resend welcome email" : "Ponovno pošalji poruku dobrodošlice",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "U slučaju gubitka uređaja ili napuštanja organizacije, može daljinski izbrisati Nextcloudove podatke sa svih uređaja kojima se koristi {userid}. Brisanje je moguće samo ako su uređaji povezani na internet.",
- "Remote wipe of devices" : "Daljinsko brisanje podataka s uređaja",
- "Wipe {userid}'s devices" : "Izbriši podatke sa svih uređaja koji pripadaju {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "U potpunosti izbriši račun koji pripada {userid}, uključujući sve osobne datoteke, aplikacije itd.",
- "Account deletion" : "Brisanje računa",
- "Delete {userid}'s account" : "Izbriši račun koji pripada {userid}",
- "Welcome mail sent!" : "Poslana poruka dobrodošlice!",
- "Done" : "Gotovo",
- "Edit" : "Uredi",
- "Show storage path" : "Prikaži put pohrane",
- "Show last login" : "Prikaži posljednju prijavu",
- "Sorting" : "Razvrstavanje",
- "Send email" : "Pošalji poruku e-pošte",
- "Default quota" : "Zadana kvota",
- "Select default quota" : "Odaberi zadanu kvotu",
- "Server error while trying to complete WebAuthn device registration" : "Pogreška poslužitelja tijekom dovršavanja registracije WebAuthn uređaja",
- "Passwordless authentication requires a secure connection." : "Autentifikacija bez zaporke zahtijeva sigurnu vezu.",
- "Add WebAuthn device" : "Dodaj WebAuthn uređaj",
- "Please authorize your WebAuthn device." : "Autorizirajte svoj WebAuthn uređaj.",
- "Adding your device …" : "Dodavanje uređaja...",
- "Unnamed device" : "Neimenovani uređaj",
- "Passwordless Authentication" : "Autentifikacija bez zaporke",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Omogućite korištenje autentifikacije bez zaporke na svom računu u skladu sa standardom FIDO2.",
- "No devices configured." : "Nema konfiguriranih uređaja.",
- "The following devices are configured for your account:" : "Sljedeći su uređaji konfigurirani za vaš račun:",
- "Your browser does not support WebAuthn." : "Vaš preglednik ne podržava WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Administrator možete detaljnije podešavati dijeljenja. Pogledajte odgovarajuću dokumentaciju za više informacija.",
- "You need to enable the File sharing App." : "Morate omogućiti aplikaciju za dijeljenje datoteka.",
- "Admins" : "Administratori",
"Sending…" : "Slanje…",
"Email sent" : "E-pošta je poslana",
"Location" : "Lokacija",
@@ -316,12 +188,14 @@
"About" : "Informacije",
"Full name" : "Puno ime",
"Additional email" : "Dodatna adresa e-pošte",
+ "Email" : "E-pošta",
"Headline" : "Naslov",
"Organisation" : "Organizacija",
"Phone number" : "Broj telefona",
"Role" : "Uloga",
"Website" : "Web-mjesto",
"Profile visibility" : "Vidljivost profila",
+ "Language" : "Jezik",
"Locale" : "Lokacija",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nije dostupno jer je ovo svojstvo potrebno za osnovnu funkcionalnost, uključujući dijeljenje datoteka i pozivnice za kalendar",
"Your apps" : "Vaše aplikacije",
@@ -332,10 +206,12 @@
"Featured apps" : "Istaknute aplikacije",
"Show to everyone" : "Prikaži svima",
"Hide" : "Sakrij",
+ "Update to {version}" : "Ažuriraj na {version}",
"Download and enable" : "Preuzmi i omogući",
"Disable" : "Onemogući",
"The app will be downloaded from the App Store" : "Aplikacija će se preuzeti iz trgovine aplikacijama",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ova aplikacija nije označena kao kompatibilna s vašom inačicom Nextclouda. Ako odlučite nastaviti, moći ćete instalirati aplikaciju. Imajte na umu da aplikacija možda neće raditi kako očekujete.",
+ "{size} used" : "Iskorišteno {size}",
"Unknown" : "Nepoznata pogreška",
"Never" : "Nikad",
"Error: This app cannot be enabled because it makes the server unstable" : "Pogreška: ova aplikacija ne može biti omogućena jer čini poslužitelj nestabilnim",
@@ -347,6 +223,8 @@
"Error while updating device token scope" : "Pogreška pri ažuriranju raspona tokena za uređaj",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zaprimljeno je previše zahtjeva iz vaše mreže. Pokušajte kasnije ili se obratite administratoru ako se radi o pogrešci.",
"Error" : "Pogreška",
+ "Default quota" : "Zadana kvota",
+ "Documentation" : "Dokumentacija",
"Forum" : "Forum",
"Legal notice" : "Pravna obavijest",
"Privacy policy" : "Pravila o privatnosti",
@@ -364,6 +242,7 @@
"Credentials" : "Vjerodajnice",
"SMTP Password" : "SMTP zaporka",
"Save" : "Spremi",
+ "Send email" : "Pošalji poruku e-pošte",
"Security & setup warnings" : "Upozorenja o sigurnosti i postavljanju",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Pravilna konfiguracija iznimno je važna za sigurnost i performanse vaše instance. Kako bismo vam pomogli pravilno konfigurirati sustav, provest ćemo neke automatske provjere. Za više informacija pogledajte navedenu dokumentaciju.",
"All checks passed." : "Sve su provjere uspješno dovršene.",
@@ -381,16 +260,6 @@
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Ovo izdanje Nextclouda nije podržano i nisu dostupne trenutne obavijesti.",
"Use a second factor besides your password to increase security for your account." : "Koristite se i drugim faktorom pored zaporke kako biste povećali sigurnost svog računa.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ako se za povezivanje s Nextcloudom koristite aplikacijama treće strane, stvorite i konfigurirajte lozinku za svaku aplikaciju prije omogućavanja drugog faktora za provođenje autentifikacije.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "U bazi podataka nedostaju određeni indeksi. Zbog činjenice da bi dodavanje indeksa u velikim tablicama moglo potrajati neko duže vrijeme, isti se ne dodaju automatski. Izvršenjem „occ db:add-missing-indices” se ti indeksi mogu ručno dodati dok instanca radi. Kada se indeksi dodaju, upiti u te tablice obično su mnogo brži.",
- "Set default expiration date for shares" : "Postavi zadani datum isteka dijeljenja",
- "Your biography" : "Vaša biografija",
- "New user" : "Novi korisnik",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} korisnik","{userCount} korisnika","{userCount} korisnika"],
- "Username" : "Korisničko ime",
- "User backend" : "Korisnički pozadinski sustav",
- "Add user to group" : "Dodaj korisnika u grupu",
- "Server error while trying to add WebAuthn device" : "Pogreška poslužitelja pri dodavanju WebAuthn uređaja",
- "Name your device" : "Dodijelite naziv svom uređaju",
- "Follow us on Twitter" : "Pratite nas na Twitteru"
+ "Set default expiration date for shares" : "Postavi zadani datum isteka dijeljenja"
},"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/settings/l10n/hu.js b/apps/settings/l10n/hu.js
index 3500c745bb9..c21ec39942c 100644
--- a/apps/settings/l10n/hu.js
+++ b/apps/settings/l10n/hu.js
@@ -249,7 +249,7 @@ OC.L10N.register(
"Unable to modify setting" : "A beállítás nem módosítható",
"None" : "Egyik sem",
"Allow apps to use the Share API" : "Engedélyezés, hogy az alkalmazások is használják a megosztási API-t",
- "Allow resharing" : "Megosztás továbbosztásának engedélyezése",
+ "Allow resharing" : "Továbbosztás engedélyezése",
"Allow sharing with groups" : "Csoportokkal való megosztás engedélyezése",
"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",
"Allow users to share via link and emails" : "Hivatkozásokon és e-mailen keresztül megosztás engedélyezése a felhasználók számára",
@@ -302,66 +302,6 @@ OC.L10N.register(
"Nothing to show" : "Nincs mit megjeleníteni",
"Loading" : "Betöltés",
"Fetching the latest news…" : "Legfrissebb hírek lekérése…",
- "Previous slide" : "Előző dia",
- "Next slide" : "Következő dia",
- "Choose slide to display" : "Válassza ki a megjelenítendő diát",
- "{index} of {total}" : "{index} / {total}",
- "Daemon" : "Démon",
- "Type" : "Típus",
- "Display Name" : "Megjelenítendő név",
- "Learn more" : "Tudjon meg többet",
- "Confirm" : "Megerősítés",
- "Cancel" : "Mégse",
- "Description" : "Leírás",
- "View in store" : "Megtekintés a tárban",
- "Visit website" : "Weboldal meglátogatása",
- "Usage documentation" : "Felhasználási dokumentáció",
- "Admin documentation" : "Rendszergazdai dokumentáció",
- "Developer documentation" : "Fejlesztői dokumentáció",
- "Details" : "Részletek",
- "All" : "Mind",
- "Limit app usage to groups" : "Alkalmazás használatának csoportokra korlátozása",
- "No results" : "Nincs találat",
- "Update to {version}" : "Frissítés erre: {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs minimum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs maximum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ezt az alkalmazást nem lehet telepíteni, mert a következő függőségek hiányoznak:",
- "Latest updated" : "Utoljára frissítve",
- "Author" : "Szerző",
- "Categories" : "Kategóriák",
- "Resources" : "Erőforrások",
- "Documentation" : "Dokumentáció",
- "Interact" : "Interakció",
- "Report a bug" : "Hiba bejelentése",
- "Request feature" : "Funkció kérése",
- "Ask questions or discuss" : "Kérdések feltevése vagy megvitatás",
- "Rate the app" : "Értékelje az alkalmazást",
- "Rate" : "Értékelés",
- "Changelog" : "Változásnapló",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName} iOS-es alkalmazás",
- "{productName} Android app" : "{productName} androidos alkalmazás",
- "{productName} Talk for iOS" : "{productName} Beszélgetés iOS-re",
- "{productName} Talk for Android" : "{productName} Beszélgetés Androidra",
- "Sync client" : "Szinkronizálási kliens",
- "This session" : "Ez a munkamenet",
- "Device name" : "Eszköznév",
- "Cancel renaming" : "Átnevezés megszakítása",
- "Save new name" : "Új név mentése",
- "Marked for remote wipe" : "Távoli törlésre jelölve",
- "Device settings" : "Eszközbeállítások",
- "Allow filesystem access" : "Fájlrendszer hozzáférés engedélyezése",
- "Rename" : "Átnevezés",
- "Revoke" : "Visszavonás",
- "Wipe device" : "Eszköz törlése",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "A token visszavonása lehet hogy meggátolja az eszköz törlését, ha az még nem kezdődött el.",
- "Device" : "Eszköz",
- "Last activity" : "Utolsó tevékenység",
- "Devices & sessions" : "Eszközök és munkamenetek",
- "Web, desktop and mobile clients currently logged in to your account." : "A fiókjába jelenleg bejelentkezett webes, asztali és mobilkliensek.",
- "Error while creating device token" : "Hiba az eszköztoken létrehozása során",
- "App name" : "Alkalmazásnév",
- "Create new app password" : "Új alkalmazásjelszó létrehozása",
"App password copied!" : "Alkalmazásjelszó másolva!",
"Copy app password" : "Alkalmazásjelszó másolása",
"Login name copied!" : "Bejelentkezési név másolva!",
@@ -385,6 +325,7 @@ OC.L10N.register(
"Cron (Recommended)" : "Cron (ajánlott)",
"Unable to update profile default setting" : "A profil alapértelmezett beállítása nem frissíthető",
"Profile" : "Profil",
+ "Password confirmation is required" : "Jelszó megerősítés szükséges",
"Unable to update server side encryption config" : "A kiszolgálóoldali titkosítás beállításai nem frissíthetők",
"Server-side encryption" : "Kiszolgálóoldali titkosítás",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "A kiszolgálóoldali titkosítás segítségével a tárolt fájlok titkosítva lesznek tárolva a kiszolgálón. Ez korlátozásokkal jár, például teljesítménycsökkenést okoz, így csak akkor kapcsolja be, ha szükséges.",
@@ -399,172 +340,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Ügyeljen arra, hogy a titkosítás mindig megnöveli a fájlok méretét.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Mindig jó ötlet rendszeres biztonsági mentést készíteni az adatokról. Titkosítás esetén győződjön meg arról, hogy a titkosítási kulcsokról is készít biztonsági mentést.",
"This is the final warning: Do you really want to enable encryption?" : "Ez az utolsó figyelmeztetés: Biztos, hogy engedélyezi a titkosítást?",
- "Failed to remove group \"{group}\"" : "Nem sikerült a(z) „{group}” csoport törlése",
"Please confirm the group removal" : "Erősítse meg a csoport eltávolítását",
+ "Cancel" : "Mégse",
+ "Confirm" : "Megerősítés",
"Submit" : "Beküldés",
"Rename group" : "Csoport átnevezése",
- "Remove group" : "Csoport eltávolítása",
- "Current password" : "Jelenlegi jelszó",
- "New password" : "Új jelszó",
- "Change password" : "Jelszó megváltoztatása",
- "Choose your profile picture" : "Válassza ki a profilképét",
- "Please select a valid png or jpg file" : "Válasszon egy érvényes PNG- vagy JPG-fájlt",
- "Error setting profile picture" : "Hiba a profilkép beállítása során",
- "Error cropping profile picture" : "Hiba a profilkép levágása során",
- "Error saving profile picture" : "Hiba a profilkép mentése során",
- "Error removing profile picture" : "Hiba a profilkép eltávolítása során",
- "Your profile picture" : "Az Ön profilképe",
- "Upload profile picture" : "Profilkép feltöltése",
- "Choose profile picture from Files" : "Válasszon profilképet a Fájlokból",
- "Remove profile picture" : "Profilkép eltávolítása",
- "The file must be a PNG or JPG" : "A fájlnak PNG-nek vagy JPG-nek kell lennie",
- "Picture provided by original account" : "Az eredeti fiók által biztosított kép.",
- "Set as profile picture" : "Beállítás profilképként",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Vegye figyelembe, hogy akár 24 óráig is eltarthat, amíg a profilkép mindenhol frissül.",
- "You are a member of the following groups:" : "Ön a következő csoportok tagja:",
- "Your full name" : "Az Ön teljes neve",
- "Email options" : "E-mail beállítások",
- "Remove primary email" : "Elsődleges e-mail-cím eltávolítása",
- "Delete email" : "E-mail-cím törlése",
- "This address is not confirmed" : "Ez a cím nincs megerősítve",
- "Unset as primary email" : "Elsődleges e-mail-cím eltávolítása",
- "Set as primary email" : "Beállítás elsődleges e-mail-címként",
- "Additional email address {index}" : "{index}. további e-mail-cím",
- "Unable to delete primary email address" : "Az elsődleges e-mail-cím nem törölhető",
- "Unable to update primary email address" : "Az elsődleges e-mail-cím nem frissíthető",
- "Unable to add additional email address" : "További e-mail-cím nem adható hozzá",
- "Unable to update additional email address" : "A további e-mail-cím nem frissíthető",
- "Unable to delete additional email address" : "A további e-mail-cím nem törölhető",
- "Primary email for password reset and notifications" : "Elsődleges e-mail-cím a jelszó-visszaállításhoz és az értesítésekhez",
- "No email address set" : "Nincs e-mail-cím beállítva",
- "Your handle" : "Az Ön fiókneve",
- "Your headline" : "Az Ön címsora",
- "Unable to update language" : "A nyelv nem frissíthető",
- "Languages" : "Nyelvek",
- "Help translate" : "Segítsen a fordításban",
- "No language set" : "Nyelv nincs beállítva",
- "Unable to update locale" : "A területi beállítás nem frissíthető",
- "Locales" : "Területi beállítások",
- "Week starts on {firstDayOfWeek}" : "A hét kezdete: {firstDayOfWeek}",
- "No locale set" : "Nincs területi beállítás megadva",
- "Your city" : "Saját város",
- "Your organisation" : "Az Ön szervezete",
- "Your phone number" : "Telefonszáma",
- "Edit your Profile visibility" : "Profil láthatósága",
- "Unable to update profile enabled state" : "A profil engedélyezési állapota nem frissíthető",
- "Enable profile" : "Profil engedélyezése",
- "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." : "A profiljában a láthatóság vagy hatókör közül a szigorúbb beállítás lesz figyelembe véve. Például ha a láthatóság „Mindenki számára látható” és a hatókör „Privát”, akkor a „Privát” lesz figyelembe véve.",
- "Unable to update visibility of {displayId}" : "A(z) {displayId} láthatósága nem frissíthető",
- "Your role" : "Az Ön szerepköre",
- "Your website" : "A saját weboldala",
- "Invalid value" : "Érvénytelen érték",
- "Unable to update {property}" : "A(z) {property} nem frissíthető",
- "No {property} set" : "Nincs {property} beállítva",
- "Change scope level of {property}, current scope is {scope}" : "A(z) {property} hatókörszintjének módosítása, a jelenlegi hatókör: {scope}",
- "Unable to update federation scope of the primary {property}" : "Az elsődleges {property} föderációs hatóköre nem frissíthető",
- "Unable to update federation scope of additional {property}" : "A további {property} föderációs hatóköre nem frissíthető",
- "Add additional email" : "További e-mail hozzáadása",
- "Add" : "Hozzáadás",
- "Create" : "Létrehozás",
- "Change" : "Módosítás",
- "Delete" : "Törlés",
- "Reshare" : "Megosztás újra",
- "Default language" : "Alapértelmezett nyelv",
- "Common languages" : "Alapvető nyelvek",
- "Other languages" : "Más nyelvek",
- "Password change is disabled because the master key is disabled" : "A jelszó megváltoztatása tiltott, mert a mesterkulcs tiltott",
- "No accounts" : "Nincsenek fiókok",
- "Loading accounts …" : "Fiókok betöltése…",
- "Manager" : "Kezelő",
- "Account name will be autogenerated" : "A felhasználónév automatikusan keletkezik",
- "Account name (required)" : "Felhasználónév (kötelező)",
- "New account" : "Új fiók",
- "Display name" : "Megjelenítendő név",
- "Either password or email is required" : "Jelszó vagy e-mail szükséges",
- "Password (required)" : "Jelszó (kötelező)",
- "Email (required)" : "E-mail (kötelező)",
- "Email" : "E-mail",
- "Member of the following groups" : "Tagja a következő csoportoknak",
- "Set account groups" : "Fiók csoportjainak megadása",
- "Admin of the following groups" : "Adminisztrátora a következő csoportoknak",
- "Quota" : "Kvóta",
- "Set account quota" : "Felhasználói kvóta megadása",
- "Language" : "Nyelv",
- "Set default language" : "Alapértelmezett nyelv beállítása",
- "Add new account" : "Új fiók hozzáadása",
- "Total rows summary" : "Összes sor összegzése",
- "Scroll to load more rows" : "Görgessen a további sorok megjelenítéséhez",
- "Password or insufficient permissions message" : "Jelszó vagy elégtelen jogosultságok üzenet",
- "Avatar" : "Profilkép",
- "Account name" : "Fiók neve",
- "Group admin for" : "Csoport rendszergazda itt:",
- "Account backend" : "Fiók háttérrendszere",
- "Storage location" : "Háttértár helye",
- "Last login" : "Utolsó bejelentkezés",
- "Account actions" : "Fiókműveletek",
- "{size} used" : "{size} felhasználva",
- "Delete account" : "Fiók törlése",
- "Disconnect all devices and delete local data" : "Összes eszköz lecsatlakoztatása és a helyi adatok törlése",
- "Disable account" : "Fiók letiltása",
- "Enable account" : "Fiók engedélyezése",
- "Resend welcome email" : "Üdvözlő üzenet ismételt elküldése",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Az eszköz elvesztése vagy a szervezetből való kilépés esetén ez távolról képes eltávolítani {userid} minden nextcloudos adatát a hozzá köthető eszközökről: {userid}. Csak akkor működik, ha az eszközök kapcsolódnak az internethez.",
- "Remote wipe of devices" : "Eszközök távoli törlése",
- "Wipe {userid}'s devices" : "{userid} eszközeinek törlése",
- "Wiped {userid}'s devices" : "{userid} eszközei letörölve",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} fiókjának teljes törlése, beleértve a személyes fájljait, alkalmazásadatait, stb.",
- "Account deletion" : "Fiók törlése",
- "Delete {userid}'s account" : "{userid} fiókjának törlése",
- "Display name was successfully changed" : "A megjelenítendő név sikeresen megváltoztatva",
- "Password was successfully changed" : "A jelszó sikeresen megváltoztatva",
- "Email was successfully changed" : "Az e-mail-cím sikeresen megváltoztatva",
- "Welcome mail sent!" : "Üdvözlő üzenet elküldve!",
- "Loading account …" : "Felhasználó betöltése...",
- "Change display name" : "Megjelenítendő név megváltoztatása",
- "Set new password" : "Jelszó beállítása",
- "You do not have permissions to see the details of this account" : "Nincs jogosultsága megnézni a felhasználó részletes adatait",
- "Set new email address" : "Új e-mail-cím beállítása",
- "Add account to group" : "Felhasználó hozzáadása egy csoporthoz",
- "Select account quota" : "Fiókkvóta kiválasztása",
- "Set the language" : "Nyelv beállítása",
- "Done" : "Kész",
- "Edit" : "Szerkesztés",
- "Visibility" : "Láthatóság",
- "Show language" : "Nyelv megjelenítése",
- "Show account backend" : "Fiók háttérrendszerének megjelenítése",
- "Show storage path" : "Tároló útvonal megjelenítése",
- "Show last login" : "Utolsó bejelentkezés megjelenítése",
- "Sorting" : "Rendezés",
- "Group list sorting" : "Csoportlista sorrendje",
- "By member count" : "Tagok száma alapján",
- "By name" : "Név alapján",
- "Send email" : "E-mail küldése",
- "Send welcome email to new accounts" : "Üdvözlő e-mail küldése az új fiókoknak",
- "Defaults" : "Alapértelmezések",
- "Default quota" : "Alapértelmezett kvóta",
- "Select default quota" : "Válasszon alapértelmezett kvótát",
- "Server error while trying to complete WebAuthn device registration" : "Kiszolgálóhiba a WebAuthn eszköz regisztrációjának befejezése során",
- "Passwordless authentication requires a secure connection." : "A jelszó nélküli hitelesítés biztonságos kapcsolatot igényel.",
- "Add WebAuthn device" : "WebAuth eszköz hozzáadása",
- "Please authorize your WebAuthn device." : "Hitelesítse a WebAuthn eszközét.",
- "Adding your device …" : "Az eszköze hozzáadása…",
- "Unnamed device" : "Névtelen eszköz",
- "Passwordless Authentication" : "Jelszó nélküli hitelesítés",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Állítsa be a fiókját a a FIDO2 szabvány követő jelszó nélküli hitelesítéssel.",
- "No devices configured." : "Nincs eszköz beállítva.",
- "The following devices are configured for your account:" : "A következő eszközök vannak a fiókjához kapcsolva:",
- "Your browser does not support WebAuthn." : "A böngészője nem támogatja a WebAuthn szabványt.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Rendszergazdaként finomhangolhatja a megosztás viselkedését. A részletekért lásd a dokumentációt.",
- "You need to enable the File sharing App." : "Engedélyeznie kell a Fájlmegosztás alkalmazást.",
- "App Store" : "Alkalmazástár",
- "Loading app list" : "Alkalmazáslista betöltése",
- "Loading categories" : "Kategóriák betöltése",
- "Developer documentation ↗" : "Fejlesztői dokumentáció ↗",
- "Version {version}, {license}-licensed" : " {version} verzió,{license} licenc alatt",
- "All accounts" : "Összes fiók",
- "Admins" : "Rendszergazdák",
- "Account group: {group}" : "Fiókcsoport: {group}",
- "Account management" : "Fiókkezelés",
"Sending…" : "Küldés…",
"Email sent" : "E-mail elküldve",
"Location" : "Hely",
@@ -573,6 +353,7 @@ OC.L10N.register(
"Date of birth" : "Születési dátum",
"Full name" : "Teljes név",
"Additional email" : "További e-mail-cím",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Födiverzum (például Mastodon)",
"Headline" : "Címsor",
"Organisation" : "Szervezet",
@@ -581,6 +362,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (korábban Twitter)",
"Website" : "Weboldal",
"Profile visibility" : "Profil láthatósága",
+ "Language" : "Nyelv",
"Locale" : "Területi beállítás",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nem érhető el, mivel ez a tulajdonság szükséges a fő funkciókhoz, köztük a fájlmegosztáshoz és a naptármeghívásokhoz.",
"Your apps" : "Az Ön alkalmazásai",
@@ -592,11 +374,13 @@ OC.L10N.register(
"Supported apps" : "Támogatott alkalmazások",
"Show to everyone" : "Mindenki számára látható",
"Hide" : "Elrejtés",
+ "Update to {version}" : "Frissítés erre: {version}",
"Download and enable" : "Letöltés és engedélyezés",
"Disable" : "Letiltás",
"Allow untested app" : "Teszteletlen alkalmazás engedélyezése",
"The app will be downloaded from the App Store" : "Az alkalmazás letöltésre kerül az alkalmazástárból",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ez az alkalmazás nincs megjelölve, hogy kompatibilis lenne a jelenlegi Nextcloud verzióval. Ha folytatja, telepítheti az alkalmazást. Azonban az alkalmazás lehet, hogy nem fog rendeltetés szerint működni.",
+ "{size} used" : "{size} felhasználva",
"Unknown" : "Ismeretlen",
"Never" : "Soha",
"An error occurred during the request. Unable to proceed." : "Hiba történt a kérés során. Nem lehet folytatni.",
@@ -609,8 +393,10 @@ OC.L10N.register(
"Error while updating device token scope" : "Hiba az eszköztoken hatókörének frissítése során",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Túl sok kérés érkezett a hálózatától. Próbálja újra később, vagy ha ez egy hiba, akkor forduljon a rendszergazdához.",
"Error" : "Hiba",
+ "Default quota" : "Alapértelmezett kvóta",
"Account documentation" : "Fiók dokumentációja",
"Administration documentation" : "Rengszergazdai dokumentáció",
+ "Documentation" : "Dokumentáció",
"Forum" : "Fórum",
"Nextcloud help & privacy resources" : "Nextcloud súgó és adatvédelmi erőforrások",
"General documentation" : "Általános dokumentáció",
@@ -632,6 +418,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP jelszó",
"Save" : "Mentés",
"Test and verify email settings" : "E-mail beállítások tesztelése és ellenőrzése",
+ "Send email" : "E-mail küldése",
"Security & setup warnings" : "Biztonsági és telepítési figyelmeztetések",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "A példánya biztonságához és megfelelő teljesítményéhez fontos, hogy minden beállítás helyes legyen. Ennek érdekében segítünk pár automatikus ellenőrzéssel. További információkért nézze meg a kapcsolódó dokumentációt.",
"All checks passed." : "Minden ellenőrzés sikeres.",
@@ -650,41 +437,7 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Használjon egy második faktort a jelszava mellett, hogy növelje fiókja biztonságát.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ha harmadik féltől származó alkalmazásokat használ a Nextcloudhoz való csatlakozáshoz, akkor a két faktoros hitelesítés engedélyezése előtt győződjön meg róla, hogy mindegyikhez létrehozott és beállított egy alkalmazásjelszót.",
"Logged in account must be a subadmin" : "A belépett felhasználónak al-adminnak kell lennie",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Az adatbázisból hiányzik néhány index. Mivel az indexek hozzáadása nagy táblák esetén sokáig tarthat, ezért nem lettek automatikusan létrehozva. Futtassa az „occ db:add-missing-indices” parancsot, hogy kézzel létrehozza a hiányzó indexeket, miközben a példány továbbra is fut. Amint az indexek létre lettek hozva, a lekérdezések gyorsabban fognak futni azokon a táblákon.",
"File locking" : "Fájlzárolás",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "A jelenlegi PHP-verzió: %s. A PHP 8.0 már elavult a Nextcloud 27-ben. A Nextcloud 28-hoz legalább PHP 8.1 szükséges. Frissítsen az egyik hivatalosan támogatott PHP verzióra, melyet a PHP Group biztosít.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "A MariaDB következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a MariaDB 10.2-es verziója szükséges.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "A MySQL következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a MySQL 8.0-s vagy a MariaDB 10.2-es verziója szükséges.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "A PostgreSQL következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a PostgreSQL 9.6-os verziója szükséges.",
- "Speech-To-Text" : "Beszédfelismerés",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "A beszédfelismerés különböző alkalmazásokkal is megvalósítható. Itt állítható be, hogy melyik alkalmazás legyen használva.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Egyik jelenleg telepített alkalmazás sem támogatja a beszédfelismerés funkciót",
- "None of your currently installed apps provide Text processing functionality" : "Egyik jelenleg telepített alkalmazás sem támogatja a szövegfeldolgozás funkciót",
- "Set default expiration date for shares" : "A megosztások alapértelmezett lejárati idejének beállítása",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Felhasználónév automatikus kiegészítésének bekapcsolása a megosztási párbeszédablakban, és hozzáférés engedélyezése a rendszer címjegyzékéhez",
- "Your biography" : "Az Ön életrajza",
- "You are using <strong>{usage}</strong>" : "Ezt használja: <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Jelenleg <strong>{usage}</strong>-ot használ ennyiből: <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Felhasználókezelő beállítása",
- "Username will be autogenerated" : "A felhasználónév automatikusan keletkezik",
- "Username (required)" : "Felhasználónév (kötelező)",
- "New user" : "Új felhasználó",
- "Groups (required)" : "Csoportok (kötelező)",
- "Set user groups" : "Felhasználói csoportok beállítása",
- "Administered groups" : "Felügyelt csoportok",
- "Set user as admin for …" : "Felhasználó beállítása rendszergazdaként itt:",
- "Set user quota" : "Felhasználói kvóta beállítása",
- "Add new user" : "Új felhasználó hozzáadása",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} felhasználó…","{userCount} felhasználó…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} felhasználó","{userCount} felhasználó"],
- "Loading users …" : "Felhasználók betöltése…",
- "Username" : "Felhasználónév",
- "User backend" : "Felhasználói háttérszolgáltatás",
- "User actions" : "Felhasználói műveletek",
- "Add user to group" : "Felhasználó hozzáadása egy csoporthoz",
- "Server error while trying to add WebAuthn device" : "Kiszolgálóhiba a WebAuthn eszköz hozzáadása során",
- "Name your device" : "Nevezze el az eszközét",
- "Active accounts" : "Aktív fiókok",
- "Follow us on Twitter" : "Kövessen minket Twitteren"
+ "Set default expiration date for shares" : "A megosztások alapértelmezett lejárati idejének beállítása"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json
index d5e820ee38a..d272be295ce 100644
--- a/apps/settings/l10n/hu.json
+++ b/apps/settings/l10n/hu.json
@@ -247,7 +247,7 @@
"Unable to modify setting" : "A beállítás nem módosítható",
"None" : "Egyik sem",
"Allow apps to use the Share API" : "Engedélyezés, hogy az alkalmazások is használják a megosztási API-t",
- "Allow resharing" : "Megosztás továbbosztásának engedélyezése",
+ "Allow resharing" : "Továbbosztás engedélyezése",
"Allow sharing with groups" : "Csoportokkal való megosztás engedélyezése",
"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",
"Allow users to share via link and emails" : "Hivatkozásokon és e-mailen keresztül megosztás engedélyezése a felhasználók számára",
@@ -300,66 +300,6 @@
"Nothing to show" : "Nincs mit megjeleníteni",
"Loading" : "Betöltés",
"Fetching the latest news…" : "Legfrissebb hírek lekérése…",
- "Previous slide" : "Előző dia",
- "Next slide" : "Következő dia",
- "Choose slide to display" : "Válassza ki a megjelenítendő diát",
- "{index} of {total}" : "{index} / {total}",
- "Daemon" : "Démon",
- "Type" : "Típus",
- "Display Name" : "Megjelenítendő név",
- "Learn more" : "Tudjon meg többet",
- "Confirm" : "Megerősítés",
- "Cancel" : "Mégse",
- "Description" : "Leírás",
- "View in store" : "Megtekintés a tárban",
- "Visit website" : "Weboldal meglátogatása",
- "Usage documentation" : "Felhasználási dokumentáció",
- "Admin documentation" : "Rendszergazdai dokumentáció",
- "Developer documentation" : "Fejlesztői dokumentáció",
- "Details" : "Részletek",
- "All" : "Mind",
- "Limit app usage to groups" : "Alkalmazás használatának csoportokra korlátozása",
- "No results" : "Nincs találat",
- "Update to {version}" : "Frissítés erre: {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs minimum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs maximum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ezt az alkalmazást nem lehet telepíteni, mert a következő függőségek hiányoznak:",
- "Latest updated" : "Utoljára frissítve",
- "Author" : "Szerző",
- "Categories" : "Kategóriák",
- "Resources" : "Erőforrások",
- "Documentation" : "Dokumentáció",
- "Interact" : "Interakció",
- "Report a bug" : "Hiba bejelentése",
- "Request feature" : "Funkció kérése",
- "Ask questions or discuss" : "Kérdések feltevése vagy megvitatás",
- "Rate the app" : "Értékelje az alkalmazást",
- "Rate" : "Értékelés",
- "Changelog" : "Változásnapló",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName} iOS-es alkalmazás",
- "{productName} Android app" : "{productName} androidos alkalmazás",
- "{productName} Talk for iOS" : "{productName} Beszélgetés iOS-re",
- "{productName} Talk for Android" : "{productName} Beszélgetés Androidra",
- "Sync client" : "Szinkronizálási kliens",
- "This session" : "Ez a munkamenet",
- "Device name" : "Eszköznév",
- "Cancel renaming" : "Átnevezés megszakítása",
- "Save new name" : "Új név mentése",
- "Marked for remote wipe" : "Távoli törlésre jelölve",
- "Device settings" : "Eszközbeállítások",
- "Allow filesystem access" : "Fájlrendszer hozzáférés engedélyezése",
- "Rename" : "Átnevezés",
- "Revoke" : "Visszavonás",
- "Wipe device" : "Eszköz törlése",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "A token visszavonása lehet hogy meggátolja az eszköz törlését, ha az még nem kezdődött el.",
- "Device" : "Eszköz",
- "Last activity" : "Utolsó tevékenység",
- "Devices & sessions" : "Eszközök és munkamenetek",
- "Web, desktop and mobile clients currently logged in to your account." : "A fiókjába jelenleg bejelentkezett webes, asztali és mobilkliensek.",
- "Error while creating device token" : "Hiba az eszköztoken létrehozása során",
- "App name" : "Alkalmazásnév",
- "Create new app password" : "Új alkalmazásjelszó létrehozása",
"App password copied!" : "Alkalmazásjelszó másolva!",
"Copy app password" : "Alkalmazásjelszó másolása",
"Login name copied!" : "Bejelentkezési név másolva!",
@@ -383,6 +323,7 @@
"Cron (Recommended)" : "Cron (ajánlott)",
"Unable to update profile default setting" : "A profil alapértelmezett beállítása nem frissíthető",
"Profile" : "Profil",
+ "Password confirmation is required" : "Jelszó megerősítés szükséges",
"Unable to update server side encryption config" : "A kiszolgálóoldali titkosítás beállításai nem frissíthetők",
"Server-side encryption" : "Kiszolgálóoldali titkosítás",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "A kiszolgálóoldali titkosítás segítségével a tárolt fájlok titkosítva lesznek tárolva a kiszolgálón. Ez korlátozásokkal jár, például teljesítménycsökkenést okoz, így csak akkor kapcsolja be, ha szükséges.",
@@ -397,172 +338,11 @@
"Be aware that encryption always increases the file size." : "Ügyeljen arra, hogy a titkosítás mindig megnöveli a fájlok méretét.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Mindig jó ötlet rendszeres biztonsági mentést készíteni az adatokról. Titkosítás esetén győződjön meg arról, hogy a titkosítási kulcsokról is készít biztonsági mentést.",
"This is the final warning: Do you really want to enable encryption?" : "Ez az utolsó figyelmeztetés: Biztos, hogy engedélyezi a titkosítást?",
- "Failed to remove group \"{group}\"" : "Nem sikerült a(z) „{group}” csoport törlése",
"Please confirm the group removal" : "Erősítse meg a csoport eltávolítását",
+ "Cancel" : "Mégse",
+ "Confirm" : "Megerősítés",
"Submit" : "Beküldés",
"Rename group" : "Csoport átnevezése",
- "Remove group" : "Csoport eltávolítása",
- "Current password" : "Jelenlegi jelszó",
- "New password" : "Új jelszó",
- "Change password" : "Jelszó megváltoztatása",
- "Choose your profile picture" : "Válassza ki a profilképét",
- "Please select a valid png or jpg file" : "Válasszon egy érvényes PNG- vagy JPG-fájlt",
- "Error setting profile picture" : "Hiba a profilkép beállítása során",
- "Error cropping profile picture" : "Hiba a profilkép levágása során",
- "Error saving profile picture" : "Hiba a profilkép mentése során",
- "Error removing profile picture" : "Hiba a profilkép eltávolítása során",
- "Your profile picture" : "Az Ön profilképe",
- "Upload profile picture" : "Profilkép feltöltése",
- "Choose profile picture from Files" : "Válasszon profilképet a Fájlokból",
- "Remove profile picture" : "Profilkép eltávolítása",
- "The file must be a PNG or JPG" : "A fájlnak PNG-nek vagy JPG-nek kell lennie",
- "Picture provided by original account" : "Az eredeti fiók által biztosított kép.",
- "Set as profile picture" : "Beállítás profilképként",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Vegye figyelembe, hogy akár 24 óráig is eltarthat, amíg a profilkép mindenhol frissül.",
- "You are a member of the following groups:" : "Ön a következő csoportok tagja:",
- "Your full name" : "Az Ön teljes neve",
- "Email options" : "E-mail beállítások",
- "Remove primary email" : "Elsődleges e-mail-cím eltávolítása",
- "Delete email" : "E-mail-cím törlése",
- "This address is not confirmed" : "Ez a cím nincs megerősítve",
- "Unset as primary email" : "Elsődleges e-mail-cím eltávolítása",
- "Set as primary email" : "Beállítás elsődleges e-mail-címként",
- "Additional email address {index}" : "{index}. további e-mail-cím",
- "Unable to delete primary email address" : "Az elsődleges e-mail-cím nem törölhető",
- "Unable to update primary email address" : "Az elsődleges e-mail-cím nem frissíthető",
- "Unable to add additional email address" : "További e-mail-cím nem adható hozzá",
- "Unable to update additional email address" : "A további e-mail-cím nem frissíthető",
- "Unable to delete additional email address" : "A további e-mail-cím nem törölhető",
- "Primary email for password reset and notifications" : "Elsődleges e-mail-cím a jelszó-visszaállításhoz és az értesítésekhez",
- "No email address set" : "Nincs e-mail-cím beállítva",
- "Your handle" : "Az Ön fiókneve",
- "Your headline" : "Az Ön címsora",
- "Unable to update language" : "A nyelv nem frissíthető",
- "Languages" : "Nyelvek",
- "Help translate" : "Segítsen a fordításban",
- "No language set" : "Nyelv nincs beállítva",
- "Unable to update locale" : "A területi beállítás nem frissíthető",
- "Locales" : "Területi beállítások",
- "Week starts on {firstDayOfWeek}" : "A hét kezdete: {firstDayOfWeek}",
- "No locale set" : "Nincs területi beállítás megadva",
- "Your city" : "Saját város",
- "Your organisation" : "Az Ön szervezete",
- "Your phone number" : "Telefonszáma",
- "Edit your Profile visibility" : "Profil láthatósága",
- "Unable to update profile enabled state" : "A profil engedélyezési állapota nem frissíthető",
- "Enable profile" : "Profil engedélyezése",
- "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." : "A profiljában a láthatóság vagy hatókör közül a szigorúbb beállítás lesz figyelembe véve. Például ha a láthatóság „Mindenki számára látható” és a hatókör „Privát”, akkor a „Privát” lesz figyelembe véve.",
- "Unable to update visibility of {displayId}" : "A(z) {displayId} láthatósága nem frissíthető",
- "Your role" : "Az Ön szerepköre",
- "Your website" : "A saját weboldala",
- "Invalid value" : "Érvénytelen érték",
- "Unable to update {property}" : "A(z) {property} nem frissíthető",
- "No {property} set" : "Nincs {property} beállítva",
- "Change scope level of {property}, current scope is {scope}" : "A(z) {property} hatókörszintjének módosítása, a jelenlegi hatókör: {scope}",
- "Unable to update federation scope of the primary {property}" : "Az elsődleges {property} föderációs hatóköre nem frissíthető",
- "Unable to update federation scope of additional {property}" : "A további {property} föderációs hatóköre nem frissíthető",
- "Add additional email" : "További e-mail hozzáadása",
- "Add" : "Hozzáadás",
- "Create" : "Létrehozás",
- "Change" : "Módosítás",
- "Delete" : "Törlés",
- "Reshare" : "Megosztás újra",
- "Default language" : "Alapértelmezett nyelv",
- "Common languages" : "Alapvető nyelvek",
- "Other languages" : "Más nyelvek",
- "Password change is disabled because the master key is disabled" : "A jelszó megváltoztatása tiltott, mert a mesterkulcs tiltott",
- "No accounts" : "Nincsenek fiókok",
- "Loading accounts …" : "Fiókok betöltése…",
- "Manager" : "Kezelő",
- "Account name will be autogenerated" : "A felhasználónév automatikusan keletkezik",
- "Account name (required)" : "Felhasználónév (kötelező)",
- "New account" : "Új fiók",
- "Display name" : "Megjelenítendő név",
- "Either password or email is required" : "Jelszó vagy e-mail szükséges",
- "Password (required)" : "Jelszó (kötelező)",
- "Email (required)" : "E-mail (kötelező)",
- "Email" : "E-mail",
- "Member of the following groups" : "Tagja a következő csoportoknak",
- "Set account groups" : "Fiók csoportjainak megadása",
- "Admin of the following groups" : "Adminisztrátora a következő csoportoknak",
- "Quota" : "Kvóta",
- "Set account quota" : "Felhasználói kvóta megadása",
- "Language" : "Nyelv",
- "Set default language" : "Alapértelmezett nyelv beállítása",
- "Add new account" : "Új fiók hozzáadása",
- "Total rows summary" : "Összes sor összegzése",
- "Scroll to load more rows" : "Görgessen a további sorok megjelenítéséhez",
- "Password or insufficient permissions message" : "Jelszó vagy elégtelen jogosultságok üzenet",
- "Avatar" : "Profilkép",
- "Account name" : "Fiók neve",
- "Group admin for" : "Csoport rendszergazda itt:",
- "Account backend" : "Fiók háttérrendszere",
- "Storage location" : "Háttértár helye",
- "Last login" : "Utolsó bejelentkezés",
- "Account actions" : "Fiókműveletek",
- "{size} used" : "{size} felhasználva",
- "Delete account" : "Fiók törlése",
- "Disconnect all devices and delete local data" : "Összes eszköz lecsatlakoztatása és a helyi adatok törlése",
- "Disable account" : "Fiók letiltása",
- "Enable account" : "Fiók engedélyezése",
- "Resend welcome email" : "Üdvözlő üzenet ismételt elküldése",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Az eszköz elvesztése vagy a szervezetből való kilépés esetén ez távolról képes eltávolítani {userid} minden nextcloudos adatát a hozzá köthető eszközökről: {userid}. Csak akkor működik, ha az eszközök kapcsolódnak az internethez.",
- "Remote wipe of devices" : "Eszközök távoli törlése",
- "Wipe {userid}'s devices" : "{userid} eszközeinek törlése",
- "Wiped {userid}'s devices" : "{userid} eszközei letörölve",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} fiókjának teljes törlése, beleértve a személyes fájljait, alkalmazásadatait, stb.",
- "Account deletion" : "Fiók törlése",
- "Delete {userid}'s account" : "{userid} fiókjának törlése",
- "Display name was successfully changed" : "A megjelenítendő név sikeresen megváltoztatva",
- "Password was successfully changed" : "A jelszó sikeresen megváltoztatva",
- "Email was successfully changed" : "Az e-mail-cím sikeresen megváltoztatva",
- "Welcome mail sent!" : "Üdvözlő üzenet elküldve!",
- "Loading account …" : "Felhasználó betöltése...",
- "Change display name" : "Megjelenítendő név megváltoztatása",
- "Set new password" : "Jelszó beállítása",
- "You do not have permissions to see the details of this account" : "Nincs jogosultsága megnézni a felhasználó részletes adatait",
- "Set new email address" : "Új e-mail-cím beállítása",
- "Add account to group" : "Felhasználó hozzáadása egy csoporthoz",
- "Select account quota" : "Fiókkvóta kiválasztása",
- "Set the language" : "Nyelv beállítása",
- "Done" : "Kész",
- "Edit" : "Szerkesztés",
- "Visibility" : "Láthatóság",
- "Show language" : "Nyelv megjelenítése",
- "Show account backend" : "Fiók háttérrendszerének megjelenítése",
- "Show storage path" : "Tároló útvonal megjelenítése",
- "Show last login" : "Utolsó bejelentkezés megjelenítése",
- "Sorting" : "Rendezés",
- "Group list sorting" : "Csoportlista sorrendje",
- "By member count" : "Tagok száma alapján",
- "By name" : "Név alapján",
- "Send email" : "E-mail küldése",
- "Send welcome email to new accounts" : "Üdvözlő e-mail küldése az új fiókoknak",
- "Defaults" : "Alapértelmezések",
- "Default quota" : "Alapértelmezett kvóta",
- "Select default quota" : "Válasszon alapértelmezett kvótát",
- "Server error while trying to complete WebAuthn device registration" : "Kiszolgálóhiba a WebAuthn eszköz regisztrációjának befejezése során",
- "Passwordless authentication requires a secure connection." : "A jelszó nélküli hitelesítés biztonságos kapcsolatot igényel.",
- "Add WebAuthn device" : "WebAuth eszköz hozzáadása",
- "Please authorize your WebAuthn device." : "Hitelesítse a WebAuthn eszközét.",
- "Adding your device …" : "Az eszköze hozzáadása…",
- "Unnamed device" : "Névtelen eszköz",
- "Passwordless Authentication" : "Jelszó nélküli hitelesítés",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Állítsa be a fiókját a a FIDO2 szabvány követő jelszó nélküli hitelesítéssel.",
- "No devices configured." : "Nincs eszköz beállítva.",
- "The following devices are configured for your account:" : "A következő eszközök vannak a fiókjához kapcsolva:",
- "Your browser does not support WebAuthn." : "A böngészője nem támogatja a WebAuthn szabványt.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Rendszergazdaként finomhangolhatja a megosztás viselkedését. A részletekért lásd a dokumentációt.",
- "You need to enable the File sharing App." : "Engedélyeznie kell a Fájlmegosztás alkalmazást.",
- "App Store" : "Alkalmazástár",
- "Loading app list" : "Alkalmazáslista betöltése",
- "Loading categories" : "Kategóriák betöltése",
- "Developer documentation ↗" : "Fejlesztői dokumentáció ↗",
- "Version {version}, {license}-licensed" : " {version} verzió,{license} licenc alatt",
- "All accounts" : "Összes fiók",
- "Admins" : "Rendszergazdák",
- "Account group: {group}" : "Fiókcsoport: {group}",
- "Account management" : "Fiókkezelés",
"Sending…" : "Küldés…",
"Email sent" : "E-mail elküldve",
"Location" : "Hely",
@@ -571,6 +351,7 @@
"Date of birth" : "Születési dátum",
"Full name" : "Teljes név",
"Additional email" : "További e-mail-cím",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Födiverzum (például Mastodon)",
"Headline" : "Címsor",
"Organisation" : "Szervezet",
@@ -579,6 +360,7 @@
"X (formerly Twitter)" : "X (korábban Twitter)",
"Website" : "Weboldal",
"Profile visibility" : "Profil láthatósága",
+ "Language" : "Nyelv",
"Locale" : "Területi beállítás",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nem érhető el, mivel ez a tulajdonság szükséges a fő funkciókhoz, köztük a fájlmegosztáshoz és a naptármeghívásokhoz.",
"Your apps" : "Az Ön alkalmazásai",
@@ -590,11 +372,13 @@
"Supported apps" : "Támogatott alkalmazások",
"Show to everyone" : "Mindenki számára látható",
"Hide" : "Elrejtés",
+ "Update to {version}" : "Frissítés erre: {version}",
"Download and enable" : "Letöltés és engedélyezés",
"Disable" : "Letiltás",
"Allow untested app" : "Teszteletlen alkalmazás engedélyezése",
"The app will be downloaded from the App Store" : "Az alkalmazás letöltésre kerül az alkalmazástárból",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ez az alkalmazás nincs megjelölve, hogy kompatibilis lenne a jelenlegi Nextcloud verzióval. Ha folytatja, telepítheti az alkalmazást. Azonban az alkalmazás lehet, hogy nem fog rendeltetés szerint működni.",
+ "{size} used" : "{size} felhasználva",
"Unknown" : "Ismeretlen",
"Never" : "Soha",
"An error occurred during the request. Unable to proceed." : "Hiba történt a kérés során. Nem lehet folytatni.",
@@ -607,8 +391,10 @@
"Error while updating device token scope" : "Hiba az eszköztoken hatókörének frissítése során",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Túl sok kérés érkezett a hálózatától. Próbálja újra később, vagy ha ez egy hiba, akkor forduljon a rendszergazdához.",
"Error" : "Hiba",
+ "Default quota" : "Alapértelmezett kvóta",
"Account documentation" : "Fiók dokumentációja",
"Administration documentation" : "Rengszergazdai dokumentáció",
+ "Documentation" : "Dokumentáció",
"Forum" : "Fórum",
"Nextcloud help & privacy resources" : "Nextcloud súgó és adatvédelmi erőforrások",
"General documentation" : "Általános dokumentáció",
@@ -630,6 +416,7 @@
"SMTP Password" : "SMTP jelszó",
"Save" : "Mentés",
"Test and verify email settings" : "E-mail beállítások tesztelése és ellenőrzése",
+ "Send email" : "E-mail küldése",
"Security & setup warnings" : "Biztonsági és telepítési figyelmeztetések",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "A példánya biztonságához és megfelelő teljesítményéhez fontos, hogy minden beállítás helyes legyen. Ennek érdekében segítünk pár automatikus ellenőrzéssel. További információkért nézze meg a kapcsolódó dokumentációt.",
"All checks passed." : "Minden ellenőrzés sikeres.",
@@ -648,41 +435,7 @@
"Use a second factor besides your password to increase security for your account." : "Használjon egy második faktort a jelszava mellett, hogy növelje fiókja biztonságát.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ha harmadik féltől származó alkalmazásokat használ a Nextcloudhoz való csatlakozáshoz, akkor a két faktoros hitelesítés engedélyezése előtt győződjön meg róla, hogy mindegyikhez létrehozott és beállított egy alkalmazásjelszót.",
"Logged in account must be a subadmin" : "A belépett felhasználónak al-adminnak kell lennie",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Az adatbázisból hiányzik néhány index. Mivel az indexek hozzáadása nagy táblák esetén sokáig tarthat, ezért nem lettek automatikusan létrehozva. Futtassa az „occ db:add-missing-indices” parancsot, hogy kézzel létrehozza a hiányzó indexeket, miközben a példány továbbra is fut. Amint az indexek létre lettek hozva, a lekérdezések gyorsabban fognak futni azokon a táblákon.",
"File locking" : "Fájlzárolás",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "A jelenlegi PHP-verzió: %s. A PHP 8.0 már elavult a Nextcloud 27-ben. A Nextcloud 28-hoz legalább PHP 8.1 szükséges. Frissítsen az egyik hivatalosan támogatott PHP verzióra, melyet a PHP Group biztosít.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "A MariaDB következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a MariaDB 10.2-es verziója szükséges.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "A MySQL következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a MySQL 8.0-s vagy a MariaDB 10.2-es verziója szükséges.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "A PostgreSQL következő verziója van használatban: „%s”. A Nextcloud 21 és az újabb verziók már nem támogatják ezt a verziót, legalább a PostgreSQL 9.6-os verziója szükséges.",
- "Speech-To-Text" : "Beszédfelismerés",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "A beszédfelismerés különböző alkalmazásokkal is megvalósítható. Itt állítható be, hogy melyik alkalmazás legyen használva.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Egyik jelenleg telepített alkalmazás sem támogatja a beszédfelismerés funkciót",
- "None of your currently installed apps provide Text processing functionality" : "Egyik jelenleg telepített alkalmazás sem támogatja a szövegfeldolgozás funkciót",
- "Set default expiration date for shares" : "A megosztások alapértelmezett lejárati idejének beállítása",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Felhasználónév automatikus kiegészítésének bekapcsolása a megosztási párbeszédablakban, és hozzáférés engedélyezése a rendszer címjegyzékéhez",
- "Your biography" : "Az Ön életrajza",
- "You are using <strong>{usage}</strong>" : "Ezt használja: <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Jelenleg <strong>{usage}</strong>-ot használ ennyiből: <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Felhasználókezelő beállítása",
- "Username will be autogenerated" : "A felhasználónév automatikusan keletkezik",
- "Username (required)" : "Felhasználónév (kötelező)",
- "New user" : "Új felhasználó",
- "Groups (required)" : "Csoportok (kötelező)",
- "Set user groups" : "Felhasználói csoportok beállítása",
- "Administered groups" : "Felügyelt csoportok",
- "Set user as admin for …" : "Felhasználó beállítása rendszergazdaként itt:",
- "Set user quota" : "Felhasználói kvóta beállítása",
- "Add new user" : "Új felhasználó hozzáadása",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} felhasználó…","{userCount} felhasználó…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} felhasználó","{userCount} felhasználó"],
- "Loading users …" : "Felhasználók betöltése…",
- "Username" : "Felhasználónév",
- "User backend" : "Felhasználói háttérszolgáltatás",
- "User actions" : "Felhasználói műveletek",
- "Add user to group" : "Felhasználó hozzáadása egy csoporthoz",
- "Server error while trying to add WebAuthn device" : "Kiszolgálóhiba a WebAuthn eszköz hozzáadása során",
- "Name your device" : "Nevezze el az eszközét",
- "Active accounts" : "Aktív fiókok",
- "Follow us on Twitter" : "Kövessen minket Twitteren"
+ "Set default expiration date for shares" : "A megosztások alapértelmezett lejárati idejének beállítása"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/ia.js b/apps/settings/l10n/ia.js
deleted file mode 100644
index 11823ca9be9..00000000000
--- a/apps/settings/l10n/ia.js
+++ /dev/null
@@ -1,134 +0,0 @@
-OC.L10N.register(
- "settings",
- {
- "Private" : "Private",
- "Local" : "Local",
- "Federated" : "Federated",
- "Unable to change password" : "Impossibile cambiar contrasigno",
- "Very weak password" : "Contrasigno multo debile",
- "Weak password" : "Contrasigno debile",
- "So-so password" : "Contrasigno plus o minus acceptabile",
- "Good password" : "Contrasigno bon",
- "Strong password" : "Contrasigno forte",
- "Groups" : "Gruppos",
- "Wrong password" : "Contrasigno incorrecte",
- "Saved" : "Salveguardate",
- "No user supplied" : "Nulle usator fornite",
- "Authentication error" : "Error in authentication",
- "Wrong admin recovery password. Please check the password and try again." : "Le contrasigno administrator pro recuperation de datos es incorrecte. Per favor, verifica le contrasigno e tenta de novo.",
- "Federated Cloud Sharing" : "Compartimento del Nube Federate",
- "Administrator documentation" : "Documentation de administrator",
- "User documentation" : "Documentation de usator",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Un problema occurreva durante le invio del e-posta. Per favor, revide tu configurationes. (Error: %s)",
- "Users" : "Usatores",
- "Invalid user" : "Usator invalide",
- "Invalid mail address" : "Adresse de e-posta non valide",
- "Settings saved" : "Configurationes salveguardate",
- "Unable to change full name" : "Impossibile cambiar nomine complete",
- "Unable to change email address" : "Impossibile cambiar adresse de e-posta",
- "Your %s account was created" : "Tu conto %s esseva create",
- "Settings" : "Configurationes",
- "Personal" : "Personal",
- "Sharing" : "Compartente",
- "Calendar" : "Calendario",
- "Personal info" : "Information personal",
- "Email server" : "Servitor de e-posta",
- "Security & setup warnings" : "Securitate e advertimentos de configuration",
- "Create" : "Crear",
- "Delete" : "Deler",
- "Unlimited" : "Ilimitate",
- "None" : "Nulle",
- "Save changes" : "Salveguardar cambios",
- "All" : "Tote",
- "Disable" : "Disactivar",
- "Visit website" : "Visitar sito web",
- "Report a bug" : "Reportar un defecto",
- "Admin documentation" : "Documentation de administrator",
- "Developer documentation" : "Documentation de disveloppator",
- "Version" : "Version",
- "Actions" : "Actiones",
- "No apps found for your version" : "Nulle application trovate pro tu version",
- "Allow filesystem access" : "Permitter accesso a systema de files",
- "Rename" : "Renominar",
- "Revoke" : "Revocar",
- "Internet Explorer" : "Internet Explorer",
- "Edge" : "Edge",
- "Firefox" : "Firefox",
- "Google Chrome" : "Google Chrome",
- "Safari" : "Safari",
- "Google Chrome for Android" : "Google Chrome pro Android",
- "iPhone" : "iPhone",
- "Sync client - {os}" : "Synchronisar cliente - {os}",
- "This session" : "Iste session",
- "Device" : "Dispositivo",
- "Last activity" : "Ultime activitate",
- "App name" : "Nomine del application",
- "Create new app password" : "Crear un nove contrasigno pro application",
- "Use the credentials below to configure your app or device." : "Usa le datos de authentication infra pro configurar tu application o dispositivo.",
- "Username" : "Nomine de usator",
- "Password" : "Contrasigno",
- "Done" : "Preste",
- "Copied!" : "Copiate!",
- "Copy" : "Copiar",
- "Enable" : "Activar",
- "Select default encryption module:" : "Selectionar modulo de cryptographia standard",
- "Cancel" : "Cancellar",
- "Confirm" : "Confirmar",
- "Current password" : "Contrasigno actual",
- "New password" : "Nove contrasigno",
- "Change password" : "Cambiar contrasigno",
- "Picture provided by original account" : "Pictura fornite per conto original",
- "Details" : "Detalios",
- "No email address set" : "Nulle adresse de e-posta definite",
- "Help translate" : "Adjuta a traducer",
- "Your phone number" : "Tu numero de telephono",
- "Your website" : "Tu sito web",
- "Add" : "Adder",
- "Display name" : "Monstrar nomine",
- "Email" : "E-posta",
- "Quota" : "Quota",
- "Language" : "Lingua",
- "Edit" : "Modificar",
- "Send email" : "Inviar message de e-posta",
- "Default quota" : "Quota predefinite",
- "Active users" : "Usatores active",
- "Admins" : "Administratores",
- "Group name" : "Nomine del gruppo",
- "Not saved" : "Non salveguardate",
- "Email sent" : "Message de e-posta inviate",
- "Location" : "Loco",
- "Profile picture" : "Pictura de profilo",
- "About" : "A proposito",
- "Full name" : "Nomine complete",
- "Phone number" : "Numero de telephono",
- "Website" : "Sito web",
- "Never" : "Nunquam",
- "Documentation" : "Documentation",
- "Forum" : "Foro",
- "Login" : "Login",
- "Open documentation" : "Aperir documentation",
- "Send mode" : "Modo de invio",
- "Encryption" : "Cryptographia",
- "From address" : "De adresse",
- "Server address" : "Adresse del servitor",
- "Port" : "Porto",
- "Authentication" : "Authentication",
- "Authentication required" : "Authentication requirite",
- "Credentials" : "Datos de authentication",
- "SMTP Username" : "Nomine de usator SMTP",
- "SMTP Password" : "Contrasigno SMTP",
- "Save" : "Salveguardar",
- "Enforce expiration date" : "Exiger data de expiration",
- "Allow public uploads" : "Permitter incargas public",
- "Enforce password protection" : "Exiger protection per contrasigno",
- "Set default expiration date" : "Assignar data predefinite de expiration",
- "png or jpg, max. 20 MB" : "formato png o jpg, dimension maxime 20 MB",
- "Your email address" : "Tu adresse de e-posta",
- "Add group" : "Adder gruppo",
- "Send email to new user" : "Inviar message de e-posta a nove usator",
- "Twitter" : "Twitter",
- "SSL/TLS" : "SSL/TLS",
- "STARTTLS" : "STARTTLS",
- "Authentication method" : "Methodo de authentication"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/ia.json b/apps/settings/l10n/ia.json
deleted file mode 100644
index ecdb33d15c9..00000000000
--- a/apps/settings/l10n/ia.json
+++ /dev/null
@@ -1,132 +0,0 @@
-{ "translations": {
- "Private" : "Private",
- "Local" : "Local",
- "Federated" : "Federated",
- "Unable to change password" : "Impossibile cambiar contrasigno",
- "Very weak password" : "Contrasigno multo debile",
- "Weak password" : "Contrasigno debile",
- "So-so password" : "Contrasigno plus o minus acceptabile",
- "Good password" : "Contrasigno bon",
- "Strong password" : "Contrasigno forte",
- "Groups" : "Gruppos",
- "Wrong password" : "Contrasigno incorrecte",
- "Saved" : "Salveguardate",
- "No user supplied" : "Nulle usator fornite",
- "Authentication error" : "Error in authentication",
- "Wrong admin recovery password. Please check the password and try again." : "Le contrasigno administrator pro recuperation de datos es incorrecte. Per favor, verifica le contrasigno e tenta de novo.",
- "Federated Cloud Sharing" : "Compartimento del Nube Federate",
- "Administrator documentation" : "Documentation de administrator",
- "User documentation" : "Documentation de usator",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Un problema occurreva durante le invio del e-posta. Per favor, revide tu configurationes. (Error: %s)",
- "Users" : "Usatores",
- "Invalid user" : "Usator invalide",
- "Invalid mail address" : "Adresse de e-posta non valide",
- "Settings saved" : "Configurationes salveguardate",
- "Unable to change full name" : "Impossibile cambiar nomine complete",
- "Unable to change email address" : "Impossibile cambiar adresse de e-posta",
- "Your %s account was created" : "Tu conto %s esseva create",
- "Settings" : "Configurationes",
- "Personal" : "Personal",
- "Sharing" : "Compartente",
- "Calendar" : "Calendario",
- "Personal info" : "Information personal",
- "Email server" : "Servitor de e-posta",
- "Security & setup warnings" : "Securitate e advertimentos de configuration",
- "Create" : "Crear",
- "Delete" : "Deler",
- "Unlimited" : "Ilimitate",
- "None" : "Nulle",
- "Save changes" : "Salveguardar cambios",
- "All" : "Tote",
- "Disable" : "Disactivar",
- "Visit website" : "Visitar sito web",
- "Report a bug" : "Reportar un defecto",
- "Admin documentation" : "Documentation de administrator",
- "Developer documentation" : "Documentation de disveloppator",
- "Version" : "Version",
- "Actions" : "Actiones",
- "No apps found for your version" : "Nulle application trovate pro tu version",
- "Allow filesystem access" : "Permitter accesso a systema de files",
- "Rename" : "Renominar",
- "Revoke" : "Revocar",
- "Internet Explorer" : "Internet Explorer",
- "Edge" : "Edge",
- "Firefox" : "Firefox",
- "Google Chrome" : "Google Chrome",
- "Safari" : "Safari",
- "Google Chrome for Android" : "Google Chrome pro Android",
- "iPhone" : "iPhone",
- "Sync client - {os}" : "Synchronisar cliente - {os}",
- "This session" : "Iste session",
- "Device" : "Dispositivo",
- "Last activity" : "Ultime activitate",
- "App name" : "Nomine del application",
- "Create new app password" : "Crear un nove contrasigno pro application",
- "Use the credentials below to configure your app or device." : "Usa le datos de authentication infra pro configurar tu application o dispositivo.",
- "Username" : "Nomine de usator",
- "Password" : "Contrasigno",
- "Done" : "Preste",
- "Copied!" : "Copiate!",
- "Copy" : "Copiar",
- "Enable" : "Activar",
- "Select default encryption module:" : "Selectionar modulo de cryptographia standard",
- "Cancel" : "Cancellar",
- "Confirm" : "Confirmar",
- "Current password" : "Contrasigno actual",
- "New password" : "Nove contrasigno",
- "Change password" : "Cambiar contrasigno",
- "Picture provided by original account" : "Pictura fornite per conto original",
- "Details" : "Detalios",
- "No email address set" : "Nulle adresse de e-posta definite",
- "Help translate" : "Adjuta a traducer",
- "Your phone number" : "Tu numero de telephono",
- "Your website" : "Tu sito web",
- "Add" : "Adder",
- "Display name" : "Monstrar nomine",
- "Email" : "E-posta",
- "Quota" : "Quota",
- "Language" : "Lingua",
- "Edit" : "Modificar",
- "Send email" : "Inviar message de e-posta",
- "Default quota" : "Quota predefinite",
- "Active users" : "Usatores active",
- "Admins" : "Administratores",
- "Group name" : "Nomine del gruppo",
- "Not saved" : "Non salveguardate",
- "Email sent" : "Message de e-posta inviate",
- "Location" : "Loco",
- "Profile picture" : "Pictura de profilo",
- "About" : "A proposito",
- "Full name" : "Nomine complete",
- "Phone number" : "Numero de telephono",
- "Website" : "Sito web",
- "Never" : "Nunquam",
- "Documentation" : "Documentation",
- "Forum" : "Foro",
- "Login" : "Login",
- "Open documentation" : "Aperir documentation",
- "Send mode" : "Modo de invio",
- "Encryption" : "Cryptographia",
- "From address" : "De adresse",
- "Server address" : "Adresse del servitor",
- "Port" : "Porto",
- "Authentication" : "Authentication",
- "Authentication required" : "Authentication requirite",
- "Credentials" : "Datos de authentication",
- "SMTP Username" : "Nomine de usator SMTP",
- "SMTP Password" : "Contrasigno SMTP",
- "Save" : "Salveguardar",
- "Enforce expiration date" : "Exiger data de expiration",
- "Allow public uploads" : "Permitter incargas public",
- "Enforce password protection" : "Exiger protection per contrasigno",
- "Set default expiration date" : "Assignar data predefinite de expiration",
- "png or jpg, max. 20 MB" : "formato png o jpg, dimension maxime 20 MB",
- "Your email address" : "Tu adresse de e-posta",
- "Add group" : "Adder gruppo",
- "Send email to new user" : "Inviar message de e-posta a nove usator",
- "Twitter" : "Twitter",
- "SSL/TLS" : "SSL/TLS",
- "STARTTLS" : "STARTTLS",
- "Authentication method" : "Methodo de authentication"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/settings/l10n/id.js b/apps/settings/l10n/id.js
index 993ba07ad0b..c2094a265a3 100644
--- a/apps/settings/l10n/id.js
+++ b/apps/settings/l10n/id.js
@@ -150,48 +150,6 @@ OC.L10N.register(
"_Update_::_Update all_" : ["Perbarui semua"],
"Group name" : "Nama grup",
"Loading" : "Memuat",
- "Type" : "tipe",
- "Display Name" : "Nama Tampilan",
- "Learn more" : "Pelajari lebih lanjut",
- "Confirm" : "Konfirmasi",
- "Cancel" : "Batal",
- "Description" : "Deskrisi",
- "View in store" : "Lihat di toko",
- "Visit website" : "Kunjungi laman web",
- "Admin documentation" : "Dokumentasi admin",
- "Developer documentation" : "Dokumentasi pengembang",
- "Details" : "Detil",
- "All" : "Semua",
- "Limit app usage to groups" : "Batas pemakaian aplikasi untuk grup",
- "No results" : "Tidak ada hasil",
- "Update to {version}" : "Perbarui ke {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi minimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi maksimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Apl ini tidak dapat diinstal karena ketergantungan berikut belum terpenuhi:",
- "Author" : "Penulis",
- "Categories" : "Kategori",
- "Resources" : "Sumber daya",
- "Documentation" : "Dokumentasi",
- "Interact" : "Interaksi",
- "Report a bug" : "Laporkan kerusakan",
- "Request feature" : "Minta fitur",
- "Ask questions or discuss" : "Tanyakan atau berdiskusi",
- "Changelog" : "Log pembaruan",
- "Google Chrome for Android" : "Google Chrome untuk Android",
- "This session" : "Sesi ini",
- "Marked for remote wipe" : "Tandai untuk penghapusan remote",
- "Device settings" : "Pengaturan perangkat",
- "Allow filesystem access" : "Ijinkan akses berkas sistem",
- "Rename" : "Ubah nama",
- "Revoke" : "Cabut ijin",
- "Wipe device" : "Hapus perangkat",
- "Device" : "Perangkat",
- "Last activity" : "Aktivitas terakhir",
- "Devices & sessions" : "Perangkat & sesi",
- "Web, desktop and mobile clients currently logged in to your account." : "Klien web, desktop dan mobile yang sedang login di akun Anda.",
- "Error while creating device token" : "Terjadi kesalahan saat membuat token perangkat",
- "App name" : "Nama aplikasi",
- "Create new app password" : "Buat kata sandi aplikasi baru",
"Could not copy app password. Please copy it manually." : "Tidak dapat menyalin kata sandi aplikasi. Mohon salin secara manual.",
"Login" : "Masuk",
"Password" : "Kata sandi",
@@ -213,65 +171,20 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Ingat bahwa enkripsi selalu menambah ukuran berkas.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Alangkah baiknya untuk membuat cadangan data secara rutin, dalam kasus enkripsi, pastikan untuk mencadangkan kunci enkripsi bersama dengan data Anda.",
"This is the final warning: Do you really want to enable encryption?" : "Ini adalah peringatan terakhir: Apakah Anda yakin ingin mengaktifkan enkripsi?",
+ "Cancel" : "Batal",
+ "Confirm" : "Konfirmasi",
"Rename group" : "Ganti nama grup",
- "Remove group" : "Hapus grup",
- "Current password" : "Kata sandi saat ini",
- "New password" : "Kata sandi baru",
- "Change password" : "Ubah kata sandi",
- "Choose your profile picture" : "Pilih gambar profilmu",
- "Error removing profile picture" : "Kesalahan terjadi ketika mencoba hapus gambar profil",
- "Your profile picture" : "Gambar profilmu",
- "Upload profile picture" : "Unggah gambar profil",
- "Remove profile picture" : "Hapus gambar profil",
- "Picture provided by original account" : "Gambar disediakan oleh akun asli",
- "You are a member of the following groups:" : "Anda adalah seorang anggota dari grup berikut ini:",
- "Your full name" : "Nama lengkap Anda",
- "Remove primary email" : "Hapus surel utama",
- "Delete email" : "Hapus surel",
- "Primary email for password reset and notifications" : "Surel utama untuk pengaturan ulang kata sandi dan pemberitahuan",
- "No email address set" : "Alamat surel tidak diatur",
- "Help translate" : "Bantu menerjemahkan",
- "No language set" : "Tidak ada bahasa yang disetel",
- "Your phone number" : "Nomor telefon Anda",
- "Edit your Profile visibility" : "Ubah visibilitas Profil Anda",
- "Add" : "Masukkan",
- "Create" : "Buat",
- "Change" : "Ubah",
- "Delete" : "Hapus",
- "Default language" : "Bahasa bawaan",
- "Common languages" : "Bahasa umum",
- "Password change is disabled because the master key is disabled" : "Pengaturan kata sandi dinonaktifkan karena kunci master dinonaktifkan",
- "Display name" : "Nama tampilan",
- "Email" : "Surel",
- "Quota" : "Kuota",
- "Language" : "Bahasa",
- "Avatar" : "Avatar",
- "Group admin for" : "Grup admin untuk",
- "Storage location" : "Lokasi penyimpanan",
- "Last login" : "Log masuk terakhir",
- "{size} used" : "{size} digunakan",
- "Resend welcome email" : "Kirim ulang surel selamat datang",
- "Welcome mail sent!" : "Surat selamat datang terkirim!",
- "Done" : "Selesai",
- "Edit" : "Sunting",
- "Show storage path" : "Tampilkan jalur penyimpanan",
- "Show last login" : "Tampilkan yang terakhir masuk",
- "Send email" : "Kirim surel",
- "Default quota" : "Kuota standar",
- "Select default quota" : "Pilih kuota bawaan",
- "Passwordless authentication requires a secure connection." : "Otentikasi tanpa kata sandi membutuhkan koneksi aman.",
- "Passwordless Authentication" : "Otentikasi Tanpa Kata Sandi",
- "No devices configured." : "Tidak ada perangkat yang dikonfigurasi.",
- "Admins" : "Admin",
"Sending…" : "Mengirim…",
"Email sent" : "Surel terkirim",
"Location" : "Lokasi",
"Profile picture" : "Foto profil",
"About" : "Tentang.",
"Full name" : "Nama lengkap",
+ "Email" : "Surel",
"Phone number" : "Nomor telefon",
"Website" : "Situs",
"Profile visibility" : "Visibilitas profil",
+ "Language" : "Bahasa",
"Your apps" : "Aplikasi Anda",
"Active apps" : "Aplikasi aktif",
"Disabled apps" : "Matikan Aplikasi",
@@ -279,9 +192,11 @@ OC.L10N.register(
"App bundles" : "Kumpulan Apl",
"Featured apps" : "Aplikasi yang difiturkan",
"Hide" : "Sembunyikan",
+ "Update to {version}" : "Perbarui ke {version}",
"Download and enable" : "Unduh dan hidupkan",
"Disable" : "Nonaktifkan",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Aplikasi ini tidak ditandai sebagai versi Nextcloud Anda yang kompatibel. Jika Anda tetap ingin melanjutkannya, Anda tetap dapat memasang aplikasi. Catatan bahwa aplikasinya mungkin tidak akan berjalan seperti yang diharapkan.",
+ "{size} used" : "{size} digunakan",
"Unknown" : "Tidak diketahui",
"Never" : "Tidak pernah",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikasi diaktifkan namun butuh diperbarui. Anda akan dialihkan ke halaman pembaruan dalam 5 detik.",
@@ -292,6 +207,8 @@ OC.L10N.register(
"Error while updating device token scope" : "Galat saat memperbarui bidang token perangkat",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ada terlalu banyak permintaan dari jaringan Anda. Coba lagi nanti atau hubungi administrator Anda jika ini adalah kesalahan.",
"Error" : "Galat",
+ "Default quota" : "Kuota standar",
+ "Documentation" : "Dokumentasi",
"Forum" : "Forum",
"Legal notice" : "Pemberitahuan hukum",
"Privacy policy" : "Kebijakan privasi",
@@ -309,6 +226,7 @@ OC.L10N.register(
"Credentials" : "Kredensial",
"SMTP Password" : "Kata sandi SMTP",
"Save" : "Simpan",
+ "Send email" : "Kirim surel",
"Security & setup warnings" : "Peringatan Keamanan & Pengaturan",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Sangat penting sekali untuk semuanya diatur secara benar demi keamanan dan performa instansi Anda. Untuk membantu Anda dengan hal itu kami melakukan cek otomatis. Mohon melihat tautan dokumentasi untuk lebih lanjut.",
"All checks passed." : "Semua pemeriksaan lulus.",
@@ -322,12 +240,6 @@ OC.L10N.register(
"Follow us on Mastodon" : "Ikuti kami di Mastodon",
"Check out our blog" : "Cek blog kami",
"Subscribe to our newsletter" : "Berlangganan surat berita kami",
- "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Rilis komunitas Nextcloud ini tidak didukung dan pemberitahuan instan tidak tersedia.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Pangkalan data kehilangan beberapa indeks. Berdasarkan fakta bahwa menambahkan indeks pada tabel yang besar membutuhkan waktu cukup lama, maka ini tidak dilakukan otomatis. Eksekusi \"occ db: add-missing-indexes\", untuk menambahkan indeks secara manual sementara instance tetap berjalan. Setelah itu dilakukan, maka kueri akan jauh lebih cepat.",
- "Your biography" : "Biografi Anda",
- "New user" : "Pengguna baru",
- "Username" : "Nama pengguna",
- "User backend" : "Backend pengguna",
- "Follow us on Twitter" : "Ikuti kami di Twitter"
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Rilis komunitas Nextcloud ini tidak didukung dan pemberitahuan instan tidak tersedia."
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/id.json b/apps/settings/l10n/id.json
index de17cd90b46..2f3f8ded56c 100644
--- a/apps/settings/l10n/id.json
+++ b/apps/settings/l10n/id.json
@@ -148,48 +148,6 @@
"_Update_::_Update all_" : ["Perbarui semua"],
"Group name" : "Nama grup",
"Loading" : "Memuat",
- "Type" : "tipe",
- "Display Name" : "Nama Tampilan",
- "Learn more" : "Pelajari lebih lanjut",
- "Confirm" : "Konfirmasi",
- "Cancel" : "Batal",
- "Description" : "Deskrisi",
- "View in store" : "Lihat di toko",
- "Visit website" : "Kunjungi laman web",
- "Admin documentation" : "Dokumentasi admin",
- "Developer documentation" : "Dokumentasi pengembang",
- "Details" : "Detil",
- "All" : "Semua",
- "Limit app usage to groups" : "Batas pemakaian aplikasi untuk grup",
- "No results" : "Tidak ada hasil",
- "Update to {version}" : "Perbarui ke {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi minimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi maksimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Apl ini tidak dapat diinstal karena ketergantungan berikut belum terpenuhi:",
- "Author" : "Penulis",
- "Categories" : "Kategori",
- "Resources" : "Sumber daya",
- "Documentation" : "Dokumentasi",
- "Interact" : "Interaksi",
- "Report a bug" : "Laporkan kerusakan",
- "Request feature" : "Minta fitur",
- "Ask questions or discuss" : "Tanyakan atau berdiskusi",
- "Changelog" : "Log pembaruan",
- "Google Chrome for Android" : "Google Chrome untuk Android",
- "This session" : "Sesi ini",
- "Marked for remote wipe" : "Tandai untuk penghapusan remote",
- "Device settings" : "Pengaturan perangkat",
- "Allow filesystem access" : "Ijinkan akses berkas sistem",
- "Rename" : "Ubah nama",
- "Revoke" : "Cabut ijin",
- "Wipe device" : "Hapus perangkat",
- "Device" : "Perangkat",
- "Last activity" : "Aktivitas terakhir",
- "Devices & sessions" : "Perangkat & sesi",
- "Web, desktop and mobile clients currently logged in to your account." : "Klien web, desktop dan mobile yang sedang login di akun Anda.",
- "Error while creating device token" : "Terjadi kesalahan saat membuat token perangkat",
- "App name" : "Nama aplikasi",
- "Create new app password" : "Buat kata sandi aplikasi baru",
"Could not copy app password. Please copy it manually." : "Tidak dapat menyalin kata sandi aplikasi. Mohon salin secara manual.",
"Login" : "Masuk",
"Password" : "Kata sandi",
@@ -211,65 +169,20 @@
"Be aware that encryption always increases the file size." : "Ingat bahwa enkripsi selalu menambah ukuran berkas.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Alangkah baiknya untuk membuat cadangan data secara rutin, dalam kasus enkripsi, pastikan untuk mencadangkan kunci enkripsi bersama dengan data Anda.",
"This is the final warning: Do you really want to enable encryption?" : "Ini adalah peringatan terakhir: Apakah Anda yakin ingin mengaktifkan enkripsi?",
+ "Cancel" : "Batal",
+ "Confirm" : "Konfirmasi",
"Rename group" : "Ganti nama grup",
- "Remove group" : "Hapus grup",
- "Current password" : "Kata sandi saat ini",
- "New password" : "Kata sandi baru",
- "Change password" : "Ubah kata sandi",
- "Choose your profile picture" : "Pilih gambar profilmu",
- "Error removing profile picture" : "Kesalahan terjadi ketika mencoba hapus gambar profil",
- "Your profile picture" : "Gambar profilmu",
- "Upload profile picture" : "Unggah gambar profil",
- "Remove profile picture" : "Hapus gambar profil",
- "Picture provided by original account" : "Gambar disediakan oleh akun asli",
- "You are a member of the following groups:" : "Anda adalah seorang anggota dari grup berikut ini:",
- "Your full name" : "Nama lengkap Anda",
- "Remove primary email" : "Hapus surel utama",
- "Delete email" : "Hapus surel",
- "Primary email for password reset and notifications" : "Surel utama untuk pengaturan ulang kata sandi dan pemberitahuan",
- "No email address set" : "Alamat surel tidak diatur",
- "Help translate" : "Bantu menerjemahkan",
- "No language set" : "Tidak ada bahasa yang disetel",
- "Your phone number" : "Nomor telefon Anda",
- "Edit your Profile visibility" : "Ubah visibilitas Profil Anda",
- "Add" : "Masukkan",
- "Create" : "Buat",
- "Change" : "Ubah",
- "Delete" : "Hapus",
- "Default language" : "Bahasa bawaan",
- "Common languages" : "Bahasa umum",
- "Password change is disabled because the master key is disabled" : "Pengaturan kata sandi dinonaktifkan karena kunci master dinonaktifkan",
- "Display name" : "Nama tampilan",
- "Email" : "Surel",
- "Quota" : "Kuota",
- "Language" : "Bahasa",
- "Avatar" : "Avatar",
- "Group admin for" : "Grup admin untuk",
- "Storage location" : "Lokasi penyimpanan",
- "Last login" : "Log masuk terakhir",
- "{size} used" : "{size} digunakan",
- "Resend welcome email" : "Kirim ulang surel selamat datang",
- "Welcome mail sent!" : "Surat selamat datang terkirim!",
- "Done" : "Selesai",
- "Edit" : "Sunting",
- "Show storage path" : "Tampilkan jalur penyimpanan",
- "Show last login" : "Tampilkan yang terakhir masuk",
- "Send email" : "Kirim surel",
- "Default quota" : "Kuota standar",
- "Select default quota" : "Pilih kuota bawaan",
- "Passwordless authentication requires a secure connection." : "Otentikasi tanpa kata sandi membutuhkan koneksi aman.",
- "Passwordless Authentication" : "Otentikasi Tanpa Kata Sandi",
- "No devices configured." : "Tidak ada perangkat yang dikonfigurasi.",
- "Admins" : "Admin",
"Sending…" : "Mengirim…",
"Email sent" : "Surel terkirim",
"Location" : "Lokasi",
"Profile picture" : "Foto profil",
"About" : "Tentang.",
"Full name" : "Nama lengkap",
+ "Email" : "Surel",
"Phone number" : "Nomor telefon",
"Website" : "Situs",
"Profile visibility" : "Visibilitas profil",
+ "Language" : "Bahasa",
"Your apps" : "Aplikasi Anda",
"Active apps" : "Aplikasi aktif",
"Disabled apps" : "Matikan Aplikasi",
@@ -277,9 +190,11 @@
"App bundles" : "Kumpulan Apl",
"Featured apps" : "Aplikasi yang difiturkan",
"Hide" : "Sembunyikan",
+ "Update to {version}" : "Perbarui ke {version}",
"Download and enable" : "Unduh dan hidupkan",
"Disable" : "Nonaktifkan",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Aplikasi ini tidak ditandai sebagai versi Nextcloud Anda yang kompatibel. Jika Anda tetap ingin melanjutkannya, Anda tetap dapat memasang aplikasi. Catatan bahwa aplikasinya mungkin tidak akan berjalan seperti yang diharapkan.",
+ "{size} used" : "{size} digunakan",
"Unknown" : "Tidak diketahui",
"Never" : "Tidak pernah",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikasi diaktifkan namun butuh diperbarui. Anda akan dialihkan ke halaman pembaruan dalam 5 detik.",
@@ -290,6 +205,8 @@
"Error while updating device token scope" : "Galat saat memperbarui bidang token perangkat",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ada terlalu banyak permintaan dari jaringan Anda. Coba lagi nanti atau hubungi administrator Anda jika ini adalah kesalahan.",
"Error" : "Galat",
+ "Default quota" : "Kuota standar",
+ "Documentation" : "Dokumentasi",
"Forum" : "Forum",
"Legal notice" : "Pemberitahuan hukum",
"Privacy policy" : "Kebijakan privasi",
@@ -307,6 +224,7 @@
"Credentials" : "Kredensial",
"SMTP Password" : "Kata sandi SMTP",
"Save" : "Simpan",
+ "Send email" : "Kirim surel",
"Security & setup warnings" : "Peringatan Keamanan & Pengaturan",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Sangat penting sekali untuk semuanya diatur secara benar demi keamanan dan performa instansi Anda. Untuk membantu Anda dengan hal itu kami melakukan cek otomatis. Mohon melihat tautan dokumentasi untuk lebih lanjut.",
"All checks passed." : "Semua pemeriksaan lulus.",
@@ -320,12 +238,6 @@
"Follow us on Mastodon" : "Ikuti kami di Mastodon",
"Check out our blog" : "Cek blog kami",
"Subscribe to our newsletter" : "Berlangganan surat berita kami",
- "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Rilis komunitas Nextcloud ini tidak didukung dan pemberitahuan instan tidak tersedia.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Pangkalan data kehilangan beberapa indeks. Berdasarkan fakta bahwa menambahkan indeks pada tabel yang besar membutuhkan waktu cukup lama, maka ini tidak dilakukan otomatis. Eksekusi \"occ db: add-missing-indexes\", untuk menambahkan indeks secara manual sementara instance tetap berjalan. Setelah itu dilakukan, maka kueri akan jauh lebih cepat.",
- "Your biography" : "Biografi Anda",
- "New user" : "Pengguna baru",
- "Username" : "Nama pengguna",
- "User backend" : "Backend pengguna",
- "Follow us on Twitter" : "Ikuti kami di Twitter"
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Rilis komunitas Nextcloud ini tidak didukung dan pemberitahuan instan tidak tersedia."
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/is.js b/apps/settings/l10n/is.js
index f64d8b3ca29..43c39356fee 100644
--- a/apps/settings/l10n/is.js
+++ b/apps/settings/l10n/is.js
@@ -291,88 +291,6 @@ OC.L10N.register(
"Nothing to show" : "Ekkert til að sýna",
"Loading" : "Hleð inn",
"Fetching the latest news…" : "Sæki nýjustu fréttir…",
- "Carousel" : "Hringekja",
- "Previous slide" : "Fyrri skyggna",
- "Next slide" : "Næsta skyggna",
- "Choose slide to display" : "Veldu skyggnu til að birta",
- "{index} of {total}" : "{index} af {total}",
- "Daemon" : "Púki",
- "Deploy Daemon" : "Setja bakgrunnsþjónustu (daemon) í gang",
- "Type" : "Tegund",
- "Display Name" : "Birtingarnafn",
- "GPUs support" : "Stuðningur við GPUs-skjáörgjörva",
- "Compute device" : "Reiknitæki",
- "Learn more" : "Læra meira",
- "Environment variables" : "Umhverfisbreytur",
- "No environment variables defined" : "Engar umhverfisbreytur skilgreindar",
- "Mounts" : "Tengipunktar",
- "Host path" : "Slóð á hýsivél",
- "Container path" : "Slóð á gagnagám",
- "Read-only" : "Skrifvarið",
- "Remove mount" : "Fjarlægja tengipunkt",
- "New mount" : "Nýr tengipunktur",
- "Enter path to host folder" : "Settu inn slóð á hýsilvélarmöppu",
- "Enter path to container folder" : "Settu inn slóð á gagnagámsmöppu",
- "Toggle read-only mode" : "Víxla lesham/skrifham af/á",
- "Confirm adding new mount" : "Staðfestu viðbætingu tengipunkts",
- "Confirm" : "Staðfesta",
- "Cancel adding mount" : "Hætta við að bæta inn tengipunkti",
- "Cancel" : "Hætta við",
- "Add mount" : "Bæta við tengipunkti",
- "No mounts defined" : "Engir tengipunktar skilgreindir",
- "Description" : "Lýsing",
- "View in store" : "Skoða í hugbúnaðarsafni",
- "Visit website" : "Heimsækja vefsvæðið",
- "Usage documentation" : "Leiðbeiningar um notkun",
- "Admin documentation" : "Hjálparskjöl kerfisstjóra",
- "Developer documentation" : "Skjölun fyrir þróunaraðila",
- "Details" : "Nánar",
- "All" : "Allt",
- "Limit app usage to groups" : "Takmarka notkun forrits við tiltekna hópa",
- "No results" : "Engar niðurstöður",
- "Update to {version}" : "Uppfæra í {version}",
- "Delete data on remove" : "Eyða gögnum við fjarlægingu",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina lágmarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina hámarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ekki var hægt að setja upp forritið þar sem eftirfarandi kerfiskröfur eru ekki uppfylltar:",
- "Latest updated" : "Síðast uppfært",
- "Author" : "Höfundur",
- "Categories" : "Flokkar",
- "Resources" : "Tilföng",
- "Documentation" : "Hjálparskjöl",
- "Interact" : "Gagnvirkni",
- "Report a bug" : "Tilkynna um villu",
- "Request feature" : "Stinga upp á eiginleikum",
- "Ask questions or discuss" : "Spyrja spurninga eða ræða málin",
- "Rate the app" : "Gefðu forritinu einkunn",
- "Rate" : "Gefa einkunn",
- "Changelog" : "Breytingaskrá",
- "Google Chrome for Android" : "Google Chrome fyrir Android",
- "{productName} iOS app" : "{productName} iOS-forrit",
- "{productName} Android app" : "{productName} Android-forrit",
- "{productName} Talk for iOS" : "{productName} Talk fyrir iOS",
- "{productName} Talk for Android" : "{productName} Talk fyrir Android",
- "Sync client" : "Samstilla biðlara",
- "This session" : "Þessa setu",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Heiti tækis",
- "Cancel renaming" : "Hætta við að endurnefna",
- "Save new name" : "Vista nýtt nafn",
- "Marked for remote wipe" : "Merkt fyrir fjartengda útþurrkun",
- "Device settings" : "Stillingar tækis",
- "Allow filesystem access" : "Leyfa aðgang að skráakerfi",
- "Rename" : "Endurnefna",
- "Revoke" : "Afturkalla",
- "Wipe device" : "Þurrka út af tæki",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Afturköllun á þessu teikni gæti komið í veg fyrir útþurrkun af tækinu nema ef útþurrkunin sé þegar byrjuð.",
- "Device" : "Tæki",
- "Last activity" : "Síðasta virkni",
- "Devices & sessions" : "Tæki og setur",
- "Web, desktop and mobile clients currently logged in to your account." : "Veftól, tölvur og símar sem núna eru skráð inn á aðganginn þinn.",
- "Error while creating device token" : "Villa við að búa til teikn fyrir tækið",
- "App name" : "Heiti forrits",
- "Create new app password" : "Búa til nýtt lykilorð forrits",
"App password copied!" : "Lykilorð forrits afritað!",
"Copy app password" : "Afrita lykilorð forrits",
"Login name copied!" : "Notandanafn innskráningar afritað!",
@@ -399,6 +317,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Tókst ekki að uppfæra sjálfgefna stillingu notandasniðs",
"Profile" : "Notandasnið",
"Enable or disable profile by default for new accounts." : "Virkja eða gera notandasnið óvirkt sjálfgefið fyrir nýja notendaaðganga.",
+ "Password confirmation is required" : "Þörf á staðfestingu lykilorðs",
"Failed to save setting" : "Mistókst að vista stillingu",
"Unable to update server side encryption config" : " Get ekki uppfært uppsetningu fyrir dulritun á þjóni",
"Server-side encryption" : "Dulritun á þjóni",
@@ -414,195 +333,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Hafðu í huga að dulritun eykur alltaf skráastærð.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Það er góður siður að taka regluleg öryggisafrit af gögnunum þínum; ef um dulrituð gögn er að ræða, gakktu úr skugga um að einnig sé tekið öryggisafrit af dulritunarlyklum ásamt gögnunum.",
"This is the final warning: Do you really want to enable encryption?" : "Þetta er lokaaðvörun: Viltu örugglega virkja dulritun?",
- "Failed to remove group \"{group}\"" : "Mistókst að fjarlægja hópinn \"{group}\"",
"Please confirm the group removal" : "Staðfestu fjarlægingu hópsins",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Þú er í þann mund að fara að fjarlægja hópinn \"{group}\". Notendaaðgöngunum verður EKKI eytt.",
+ "Cancel" : "Hætta við",
+ "Confirm" : "Staðfesta",
"Submit" : "Senda inn",
"Rename group" : "Endurnefna hóp",
- "Remove group" : "Fjarlægja hóp",
- "Current password" : "Núverandi lykilorð",
- "New password" : "Nýtt lykilorð",
- "Change password" : "Breyta lykilorði",
- "Choose your profile picture" : "Veldu auðkennismynd fyrir þig",
- "Please select a valid png or jpg file" : "Veldu gilda PNG eða JPG-skrá",
- "Error setting profile picture" : "Villa kom upp við að setja auðkennismyndina",
- "Error cropping profile picture" : "Villa kom upp við að skera utan af auðkennismyndinni",
- "Error saving profile picture" : "Villa kom upp við að vista auðkennismyndina",
- "Error removing profile picture" : "Villa kom upp við að fjarlægja auðkennismyndina",
- "Your profile picture" : "Auðkennismyndin þín",
- "Upload profile picture" : "Senda inn auðkennismynd",
- "Choose profile picture from Files" : "Veldu sem auðkennismynd úr skrám",
- "Remove profile picture" : "Fjarlægja auðkennismynd",
- "The file must be a PNG or JPG" : "Skráin verður að vera PNG eða JPG",
- "Picture provided by original account" : "Mynd frá upprunalegum aðgangi",
- "Set as profile picture" : "Setja sem auðkennismynd",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Athugaðu að það getur tekið allt að 24 klukkustundir fyrir auðkennismyndina þína að uppfærast allsstaðar.",
- "Your biography. Markdown is supported." : "Æviágrip þitt. Stuðningur er við Markdown-snið.",
- "Unable to update date of birth" : "Tókst ekki að uppfæra fæðingardag",
- "Enter your date of birth" : "Settu inn fæðingardaginn þinn",
- "You are using {s}{usage}{/s}" : "Þú ert að nota {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Þú ert að nota {s}{usage}{/s} af {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Þú ert meðlimur eftirfarandi hópa:",
- "Your full name" : "Fullt nafn þitt",
- "Email options" : "Tölvupóststillingar",
- "Options for additional email address {index}" : "Valkostir fyrir aukalegt tölvupóstfang {index}",
- "Remove primary email" : "Fjarlægja aðaltölvupóstfang",
- "Delete email" : "Eyða tölvupósti",
- "This address is not confirmed" : "Þetta tölvupóstfang er ekki staðfest",
- "Unset as primary email" : "Aftengja sem aðaltölvupóstfang",
- "Set as primary email" : "Gera að aðaltölvupóstfangi",
- "Additional email address {index}" : "Aukalegt tölvupóstfang {index}",
- "Unable to delete primary email address" : "Get ekki eytt aðaltölvupóstfangi",
- "Unable to update primary email address" : "Get ekki uppfært aðaltölvupóstfang",
- "Unable to add additional email address" : "Get ekki bætt við aukatölvupóstfangi",
- "Unable to update additional email address" : "Get ekki uppfært aukatölvupóstfang",
- "Unable to delete additional email address" : "Get ekki eytt aukatölvupóstfangi",
- "Primary email for password reset and notifications" : "Aðallykilorð fyrir tilkynningar og endurstillingu lykilorðs",
- "No email address set" : "Ekkert tölvupóstfang sett",
- "Your handle" : "Auðkennið þitt",
- "Derived from your locale ({weekDayName})" : "Ákvarðað af staðfærslu kerfisins ({weekDayName})",
- "Unable to update first day of week" : "Mistókst að uppfæra fyrsta dag viku",
- "Day to use as the first day of week" : "Dagurinn sem á að nota sem fyrsta dag vikunnar",
- "Your headline" : "Fyrirsögnin þín",
- "Unable to update language" : "Tókst ekki að uppfæra tungumál",
- "Languages" : "Tungumál",
- "Help translate" : "Hjálpa við þýðingu",
- "No language set" : "Ekkert tungumál skilgreint",
- "Unable to update locale" : "Tókst ekki að uppfæra staðfærslu",
- "Locales" : "Staðfærslur",
- "Week starts on {firstDayOfWeek}" : "Vika byrjar á {firstDayOfWeek}",
- "No locale set" : "Engin staðfærsla tilgreind",
- "Your city" : "Borg/sveitarfélag",
- "Your organisation" : "Fyrirtækið þitt",
- "Your phone number" : "Símanúmerið þitt",
- "Edit your Profile visibility" : "Breyta sýnileika notandasniðsins þíns",
- "Unable to update profile enabled state" : "Tókst ekki að uppfæra virka stöðu notandasniðs",
- "Enable profile" : "Virkja notandasnið",
- "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." : "Sú stilling sem meira er takmarkandi, annað hvort sýnileiki eða dreifing, fær meira vægi í notandasniðinu þínu. Til dæmis ef sýnileiki er stilltur á \"Birta öllum\" og dreifing er stillt á \"Einka\", þá hefur \"Einka\" meira vægi.",
- "Unable to update visibility of {displayId}" : "Tókst ekki að uppfæra sýnileika á {displayId}",
- "she/her" : "hún",
- "he/him" : "hann",
- "they/them" : "hán/þau",
- "Your role" : "Hlutverk þitt",
- "Your X (formerly Twitter) handle" : "X (fyrrum Twitter) notandanafnið þitt",
- "Your website" : "Vefsvæðið þitt",
- "Invalid value" : "Ógilt gildi",
- "Unable to update {property}" : "Tókst ekki að uppfæra {property}",
- "No {property} set" : "Ekkert {property} sett",
- "Change scope level of {property}, current scope is {scope}" : "Breyta dreifingarstigi á {property}, fyrirliggjandi svið er {scope}",
- "Unable to update federation scope of the primary {property}" : "Tókst ekki að uppfæra skýjasambandsdreifingu á aðal {property}",
- "Unable to update federation scope of additional {property}" : "Tókst ekki að uppfæra skýjasambandsdreifingu á aukalegu {property}",
- "Add additional email" : "Bæta við aukatölvupóstfangi",
- "Add" : "Bæta við",
- "Create" : "Búa til",
- "Change" : "Breyta",
- "Delete" : "Eyða",
- "Reshare" : "Endurdeila",
- "Default language" : "Sjálfgefið tungumál",
- "Common languages" : "Algeng tungumál",
- "Other languages" : "Önnur tungumál",
- "Password change is disabled because the master key is disabled" : "Lykilorðabreyting er óvirk vegna þess að aðallykill er óvirkur",
- "No accounts" : "Engir aðgangar",
- "Loading accounts …" : "Hleð inn notendaaðgöngum...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Listi yfir notendaaðganga. Til að halda sem bestum afköstum er þessi listi ekki myndgerður að fullu. Notendaaðgangar munu birtast eftir því sem farið er í gegnum listann.",
- "Manager" : "Stjórnandi",
- "Set line manager" : "Settu línustjórnanda",
- "Account name will be autogenerated" : "Heiti notandaaðgangs verður útbúið sjálfvirkt",
- "Account name (required)" : "Heiti notandaaðgangs (krafist)",
- "New account" : "Nýr aðgangur",
- "Display name" : "Birtingarnafn",
- "Either password or email is required" : "Annað hvort lykilorð eða tölvupóstfang eru nauðsynleg",
- "Password (required)" : "Lykilorð (nauðsynlegt)",
- "Email (required)" : "Tölvupóstfang (nauðsynlegt)",
- "Email" : "Netfang",
- "Member of the following groups (required)" : "Meðlimur eftirfarandi hópa (nauðsynlegt)",
- "Member of the following groups" : "Meðlimur eftirfarandi hópa",
- "Set account groups" : "Setja hópa notandaaðgangs",
- "Admin of the following groups" : "Stjórnandi eftirfarandi hópa",
- "Set account as admin for …" : "Setja notandaaðganginn sem stjórnanda fyrir …",
- "Quota" : "Kvóti",
- "Set account quota" : "Settu kvóta notandaaðgangs",
- "Language" : "Tungumál",
- "Set default language" : "Settu sjálfgefið tungumál",
- "Add new account" : "Bæta við nýjum aðgangi",
- "Total rows summary" : "Samantek á fjölda raða",
- "Scroll to load more rows" : "Skrunaðu til að hlaða inn fleiri röðum",
- "Password or insufficient permissions message" : "Skilaboð um lykilorð eða ekki nægar heimildir",
- "Avatar" : "Auðkennismynd",
- "Account name" : "Heiti notandaaðgangs",
- "Group admin for" : "Hópstjóri fyrir",
- "Account backend" : "Bakendi notandaaðganga",
- "Storage location" : "Staðsetning gagnageymslu",
- "First login" : "Fyrsta innskráning",
- "Last login" : "Síðasta innskráning",
- "Account actions" : "Aðgerðir fyrir aðgang",
- "{size} used" : "{size} notað",
- "Delete account" : "Eyða notandaaðgangi",
- "Disable account" : "Gera notandaaðgang óvirkan",
- "Enable account" : "Virkja notandaaðgang",
- "Resend welcome email" : "Endursenda kveðjupóst",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Týnist tæki eða hætti einhver hjá fyrirtæki/stofnun, þá getur þetta hreinsað fjartengt út öll Nextcloud-gögn af öllum tækjum sem tengd eru {userid}. Virkar bara ef tækin eru tengd internetinu.",
- "Remote wipe of devices" : "Fjartengd útþurrkun af tækjum",
- "Wipe {userid}'s devices" : "Þurrka út af tækjum {userid}",
- "Wiped {userid}'s devices" : "Þurrkaði út af tækjum {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eyða að fullu notandaaðgangnum {userid}, þar með talið öllum persónulegum skrám viðkomandi, forritsgögnum, o.s.frv.",
- "Account deletion" : "Eyðing á aðgangi",
- "Delete {userid}'s account" : "Eyða notandaaðgangi {userid}",
- "Display name was successfully changed" : "Það tókst að breyta birtingarnafninu",
- "Password was successfully changed" : "Það tókst að breyta lykilorðinu",
- "Email was successfully changed" : "Það tókst að breyta tölvupóstfanginu",
- "Welcome mail sent!" : "Kveðjupóstur sendur!",
- "Loading account …" : "Hleð inn notandaaðgangi …",
- "Change display name" : "Breyta birtingarnafni",
- "Set new password" : "Stilla nýtt lykilorð",
- "You do not have permissions to see the details of this account" : "Þú hefur ekki réttindi til að skoða ítarupplýsingar um þennan notandaaðgang",
- "Set new email address" : "Stilla nýtt tölvupóstfang",
- "Add account to group" : "Bæta notandaaðgangi í hóp",
- "Set account as admin for" : "Setja notandaaðganginn sem stjórnanda fyrir",
- "Select account quota" : "Veldu kvóta notandaaðgangs",
- "Set the language" : "Settu tungumálið",
- "Toggle account actions menu" : "Víxla af/á valmynd fyrir aðgerðir notandaaðgangs",
- "Done" : "Lokið",
- "Edit" : "Breyta",
- "Account management settings" : "Stillingar umsýslu notandaaðgangs",
- "Visibility" : "Sýnileiki",
- "Show language" : "Birta tungumál",
- "Show account backend" : "Birta bakenda notandaaðgangs",
- "Show storage path" : "Birta slóð á gagnageymslu",
- "Show first login" : "Birta fyrstu innskráningu",
- "Show last login" : "Birta síðustu innskráningu",
- "Sorting" : "Röðun",
- "Group list sorting" : "Röðun lista yfir hópa",
- "By member count" : "Eftir fjölda meðlima",
- "By name" : "Eftir nafni",
- "Send email" : "Senda tölvupóst",
- "Send welcome email to new accounts" : "Senda tölvupóst sem býður nýja notendur velkomna",
- "Defaults" : "Sjálfgefin gildi",
- "Default quota" : "Sjálfgefinn kvóti",
- "Select default quota" : "Setja sjálfgefinn kvóta",
- "Server error while trying to complete WebAuthn device registration" : "Villa á þjóni við að ljúka skráningu WebAuthn-tækis",
- "Passwordless authentication requires a secure connection." : "Lykilorðalaus auðkenning krefst öruggrar tengingar.",
- "Add WebAuthn device" : "Bæta við WebAuthn-tæki",
- "Please authorize your WebAuthn device." : "Auðkenndu WebAuthn-tækið þitt.",
- "Adding your device …" : "Bæti við tækinu þínu …",
- "Unnamed device" : "Nafnlaust tæki",
- "Passwordless Authentication" : "Lykilorðalaus auðkenning",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Settu aðganginn þinn upp fyrir lykilorðalausa auðkenningu byggða á FIDO2-staðlinum.",
- "No devices configured." : "Engin tæki skilgreind.",
- "The following devices are configured for your account:" : "Eftirfarandi tæki eru uppsett fyrir notandaaðganginn þinn:",
- "Your browser does not support WebAuthn." : "Vafrinn þinn styður ekki WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Sem stjórnandi geturðu fínstillt hegðun við deilingu. Endilega kíktu á hjálparskjölin til að sjá ítarlegri upplýsingar.",
- "You need to enable the File sharing App." : "Þú verður að virkja skráardeilingarforritið.",
- "App Store" : "Forritasafn",
- "Loading app list" : "Hleð inn forritalista",
- "Loading categories" : "Hleð inn flokkum",
- "Developer documentation ↗" : "Hjálparskjöl þróunaraðila↗",
- "Version {version}, {license}-licensed" : "Útgáfa {version}, {license}-notkunarleyfi",
- "Version {version}" : "Útgáfa {version}",
- "All accounts" : "Allir aðgangar",
- "Admins" : "Kerfisstjórar",
- "Account group: {group}" : "Hópur notendaaðganga: {group}",
- "Account management" : "Umsýsla notandaaðgangs",
"Sending…" : "Sendi...",
"Email sent" : "Tölvupóstur sendur",
"Location" : "Staðsetning",
@@ -611,6 +346,7 @@ OC.L10N.register(
"Date of birth" : "Fæðingardagur",
"Full name" : "Fullt nafn",
"Additional email" : "Aukatölvupóstfang",
+ "Email" : "Netfang",
"Fediverse (e.g. Mastodon)" : "Skýjasamband - Fediverse (t.d. Mastodon)",
"Headline" : "Fyrirsögn",
"Organisation" : "Stofnun/Félag/Fyrirtæki",
@@ -620,6 +356,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (fyrrum Twitter)",
"Website" : "Vefsvæði",
"Profile visibility" : "Sýnileiki notandasniðs",
+ "Language" : "Tungumál",
"Locale" : "Staðfærsla",
"First day of week" : "Fyrsti dagur viku",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Er ekki tiltækt þar sem þessi eiginleiki er nauðsynlegur fyrir kjarnavirkni á borð við skráadeilingu og boð í dagatölum",
@@ -635,6 +372,7 @@ OC.L10N.register(
"Show to everyone" : "Birta öllum",
"Show to logged in accounts only" : "Birta einungis hjá innskráðum notendaaðgöngum",
"Hide" : "Fela",
+ "Update to {version}" : "Uppfæra í {version}",
"{progress}% Deploying …" : "{progress}% Sett í gang …",
"{progress}% Initializing …" : "{progress}% Frumstilling …",
"Health checking" : "Ástandsskoðun",
@@ -643,6 +381,7 @@ OC.L10N.register(
"Allow untested app" : "Leyfa óprófuð forrit",
"The app will be downloaded from the App Store" : "Forritið verður sótt úr forritabúðinni",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Þetta forrit er merkt sem ekki samhæft við þína útgáfu af Nextcloud. Ef þú heldur áfram er mögulegt að þú getir samt sett forritið upp. En athugaðu þá að ekki er víst að forritið virki eins og skyldi.",
+ "{size} used" : "{size} notað",
"Unknown" : "Óþekkt",
"Never" : "Aldrei",
"An error occurred during the request. Unable to proceed." : "Villa kom upp við beiðnina. Get ekki haldið áfram.",
@@ -655,8 +394,10 @@ OC.L10N.register(
"Error while updating device token scope" : "Villa við að uppfæra gildissvið fyrir teikn tækisins",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Það komu of margar beiðnir frá netkerfinu þínu. Reyndu aftur eða hafðu samband við kerfisstjóra ef þetta er ekki rétt.",
"Error" : "Villa",
+ "Default quota" : "Sjálfgefinn kvóti",
"Account documentation" : "Hjálparskjöl fyrir notendaaðganga",
"Administration documentation" : "Hjálparskjöl fyrir stjórnendur",
+ "Documentation" : "Hjálparskjöl",
"Forum" : "Vefspjall",
"General documentation" : "Almenn hjálparskjöl",
"Legal notice" : "Lagaleg atriði",
@@ -678,6 +419,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP-lykilorð",
"Save" : "Vista",
"Test and verify email settings" : "Prófa og staðfesta tölvupóststillingar",
+ "Send email" : "Senda tölvupóst",
"Security & setup warnings" : "Öryggi og aðvaranir vegna uppsetningar",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Það er mikilvægt fyrir öryggi og afköst uppsetningarinnar þinnar að allt sé rétt stillt. Til að hjálpa við að svo sé, eru gerðar ýmsar sjálfvirkar prófanir. Skoðaðu hjálparskjölin til að sjá ítarlegar upplýsingar.",
"All checks passed." : "Stóðst allar prófanir.",
@@ -697,38 +439,9 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Notaðu annað þrep til viðbótar lykilorðinu þínu til að auka öryggi notandaaðgangsins þíns.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ef þú notaðir utanaðkomandi forrit til að tengjast við Nextcloud, skaltu ganga úr skugga um að þú útbúir lykilorð fyrir hvert slíkt forrit áður en þú virkjar 2FA tveggja-þrepa auðkenningu.",
"Logged in account must be a subadmin" : "Innskráður aðgangur verður að vera undirstjórnandi (subadmin)",
- "Missing optional index \"%s\" in table \"%s\"." : "Vantar valkvæða vísinn \"s\" í töflunni \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Gagnagrunninn vantar nokkra atriðavísa (indexes). Vegna þess að það að bæta atriðavísum við stórar töflur getur tekið töluverðan tíma, þá var þeim ekki bætt við sjálfvirkt. Með því að keyra \"occ db:add-missing-indices\" væri hægt að bæta inn þessum atriðavísum sem vantar, á meðan kerfið er í gangi. Um leið og búið er að bæta inn þessum atriðavísum, munu fyrirspurnir í þessar töflur verða miklu hraðvirkari.",
"File locking" : "Skráalæsing",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Færslulæsing skráa (transactional file locking) er óvirk, þetta gæti leitt til vandamála út frá forgangsskilyrðum (race conditions). Virkjaðu 'filelocking.enabled' í config.php til að forðast slík vandamál.",
"The PHP memory limit is below the recommended value of %s." : "Minnismörk PHP eru lægri en gildið sem mælt er með; %s.",
- "Speech-To-Text" : "Tal-í-texta",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Tal-í-texta getur verið framkvæmt af mismunandi forritum. Hér geturðu stillt hvaða forrit ætti að nota.",
- "Set default expiration date for shares" : "Setja sjálfgefinn gildistíma fyrir sameignir",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Leyfa sjálfklárun notandanafns í deilingarglugga og heimila aðgang að nafnaskrá kerfisins",
- "Your biography" : "Æviágrip þitt",
- "You are using <strong>{usage}</strong>" : "Þú ert að nota <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Þú ert að nota <strong>{usage}</strong> af <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Settu stjórnanda notenda",
- "Username will be autogenerated" : "Notandanafn verður útbúið sjálfvirkt",
- "Username (required)" : "Notandanafn (nauðsynlegt)",
- "New user" : "Nýr notandi",
- "Groups (required)" : "Hópar (nauðsynlegt)",
- "Set user groups" : "Setja notendahópa",
- "Administered groups" : "Stýrðir hópar",
- "Set user as admin for …" : "Setja notanda sem stjórnanda fyrir …",
- "Set user quota" : "Settu kvóta notandans",
- "Add new user" : "Bæta við nýjum notanda",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} notandi …","{userCount} notendur …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} notandi","{userCount} notendur"],
- "Loading users …" : "Hleð inn notendum …",
- "Username" : "Notandanafn",
- "User backend" : "Bakendi notanda",
- "User actions" : "Aðgerðir notanda",
- "Add user to group" : "Bæta notanda í hóp",
- "Server error while trying to add WebAuthn device" : "Villa á þjóni við að bæta við WebAuthn-tæki",
- "Name your device" : "Gefðu tækinu þínu nafn",
- "Active accounts" : "Virkir aðgangar",
- "Follow us on Twitter" : "Fylgstu með okkur á Twitter"
+ "Set default expiration date for shares" : "Setja sjálfgefinn gildistíma fyrir sameignir"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/settings/l10n/is.json b/apps/settings/l10n/is.json
index 7ae8dbcf4b0..34a744fe8f5 100644
--- a/apps/settings/l10n/is.json
+++ b/apps/settings/l10n/is.json
@@ -289,88 +289,6 @@
"Nothing to show" : "Ekkert til að sýna",
"Loading" : "Hleð inn",
"Fetching the latest news…" : "Sæki nýjustu fréttir…",
- "Carousel" : "Hringekja",
- "Previous slide" : "Fyrri skyggna",
- "Next slide" : "Næsta skyggna",
- "Choose slide to display" : "Veldu skyggnu til að birta",
- "{index} of {total}" : "{index} af {total}",
- "Daemon" : "Púki",
- "Deploy Daemon" : "Setja bakgrunnsþjónustu (daemon) í gang",
- "Type" : "Tegund",
- "Display Name" : "Birtingarnafn",
- "GPUs support" : "Stuðningur við GPUs-skjáörgjörva",
- "Compute device" : "Reiknitæki",
- "Learn more" : "Læra meira",
- "Environment variables" : "Umhverfisbreytur",
- "No environment variables defined" : "Engar umhverfisbreytur skilgreindar",
- "Mounts" : "Tengipunktar",
- "Host path" : "Slóð á hýsivél",
- "Container path" : "Slóð á gagnagám",
- "Read-only" : "Skrifvarið",
- "Remove mount" : "Fjarlægja tengipunkt",
- "New mount" : "Nýr tengipunktur",
- "Enter path to host folder" : "Settu inn slóð á hýsilvélarmöppu",
- "Enter path to container folder" : "Settu inn slóð á gagnagámsmöppu",
- "Toggle read-only mode" : "Víxla lesham/skrifham af/á",
- "Confirm adding new mount" : "Staðfestu viðbætingu tengipunkts",
- "Confirm" : "Staðfesta",
- "Cancel adding mount" : "Hætta við að bæta inn tengipunkti",
- "Cancel" : "Hætta við",
- "Add mount" : "Bæta við tengipunkti",
- "No mounts defined" : "Engir tengipunktar skilgreindir",
- "Description" : "Lýsing",
- "View in store" : "Skoða í hugbúnaðarsafni",
- "Visit website" : "Heimsækja vefsvæðið",
- "Usage documentation" : "Leiðbeiningar um notkun",
- "Admin documentation" : "Hjálparskjöl kerfisstjóra",
- "Developer documentation" : "Skjölun fyrir þróunaraðila",
- "Details" : "Nánar",
- "All" : "Allt",
- "Limit app usage to groups" : "Takmarka notkun forrits við tiltekna hópa",
- "No results" : "Engar niðurstöður",
- "Update to {version}" : "Uppfæra í {version}",
- "Delete data on remove" : "Eyða gögnum við fjarlægingu",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina lágmarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina hámarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ekki var hægt að setja upp forritið þar sem eftirfarandi kerfiskröfur eru ekki uppfylltar:",
- "Latest updated" : "Síðast uppfært",
- "Author" : "Höfundur",
- "Categories" : "Flokkar",
- "Resources" : "Tilföng",
- "Documentation" : "Hjálparskjöl",
- "Interact" : "Gagnvirkni",
- "Report a bug" : "Tilkynna um villu",
- "Request feature" : "Stinga upp á eiginleikum",
- "Ask questions or discuss" : "Spyrja spurninga eða ræða málin",
- "Rate the app" : "Gefðu forritinu einkunn",
- "Rate" : "Gefa einkunn",
- "Changelog" : "Breytingaskrá",
- "Google Chrome for Android" : "Google Chrome fyrir Android",
- "{productName} iOS app" : "{productName} iOS-forrit",
- "{productName} Android app" : "{productName} Android-forrit",
- "{productName} Talk for iOS" : "{productName} Talk fyrir iOS",
- "{productName} Talk for Android" : "{productName} Talk fyrir Android",
- "Sync client" : "Samstilla biðlara",
- "This session" : "Þessa setu",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Heiti tækis",
- "Cancel renaming" : "Hætta við að endurnefna",
- "Save new name" : "Vista nýtt nafn",
- "Marked for remote wipe" : "Merkt fyrir fjartengda útþurrkun",
- "Device settings" : "Stillingar tækis",
- "Allow filesystem access" : "Leyfa aðgang að skráakerfi",
- "Rename" : "Endurnefna",
- "Revoke" : "Afturkalla",
- "Wipe device" : "Þurrka út af tæki",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Afturköllun á þessu teikni gæti komið í veg fyrir útþurrkun af tækinu nema ef útþurrkunin sé þegar byrjuð.",
- "Device" : "Tæki",
- "Last activity" : "Síðasta virkni",
- "Devices & sessions" : "Tæki og setur",
- "Web, desktop and mobile clients currently logged in to your account." : "Veftól, tölvur og símar sem núna eru skráð inn á aðganginn þinn.",
- "Error while creating device token" : "Villa við að búa til teikn fyrir tækið",
- "App name" : "Heiti forrits",
- "Create new app password" : "Búa til nýtt lykilorð forrits",
"App password copied!" : "Lykilorð forrits afritað!",
"Copy app password" : "Afrita lykilorð forrits",
"Login name copied!" : "Notandanafn innskráningar afritað!",
@@ -397,6 +315,7 @@
"Unable to update profile default setting" : "Tókst ekki að uppfæra sjálfgefna stillingu notandasniðs",
"Profile" : "Notandasnið",
"Enable or disable profile by default for new accounts." : "Virkja eða gera notandasnið óvirkt sjálfgefið fyrir nýja notendaaðganga.",
+ "Password confirmation is required" : "Þörf á staðfestingu lykilorðs",
"Failed to save setting" : "Mistókst að vista stillingu",
"Unable to update server side encryption config" : " Get ekki uppfært uppsetningu fyrir dulritun á þjóni",
"Server-side encryption" : "Dulritun á þjóni",
@@ -412,195 +331,11 @@
"Be aware that encryption always increases the file size." : "Hafðu í huga að dulritun eykur alltaf skráastærð.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Það er góður siður að taka regluleg öryggisafrit af gögnunum þínum; ef um dulrituð gögn er að ræða, gakktu úr skugga um að einnig sé tekið öryggisafrit af dulritunarlyklum ásamt gögnunum.",
"This is the final warning: Do you really want to enable encryption?" : "Þetta er lokaaðvörun: Viltu örugglega virkja dulritun?",
- "Failed to remove group \"{group}\"" : "Mistókst að fjarlægja hópinn \"{group}\"",
"Please confirm the group removal" : "Staðfestu fjarlægingu hópsins",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Þú er í þann mund að fara að fjarlægja hópinn \"{group}\". Notendaaðgöngunum verður EKKI eytt.",
+ "Cancel" : "Hætta við",
+ "Confirm" : "Staðfesta",
"Submit" : "Senda inn",
"Rename group" : "Endurnefna hóp",
- "Remove group" : "Fjarlægja hóp",
- "Current password" : "Núverandi lykilorð",
- "New password" : "Nýtt lykilorð",
- "Change password" : "Breyta lykilorði",
- "Choose your profile picture" : "Veldu auðkennismynd fyrir þig",
- "Please select a valid png or jpg file" : "Veldu gilda PNG eða JPG-skrá",
- "Error setting profile picture" : "Villa kom upp við að setja auðkennismyndina",
- "Error cropping profile picture" : "Villa kom upp við að skera utan af auðkennismyndinni",
- "Error saving profile picture" : "Villa kom upp við að vista auðkennismyndina",
- "Error removing profile picture" : "Villa kom upp við að fjarlægja auðkennismyndina",
- "Your profile picture" : "Auðkennismyndin þín",
- "Upload profile picture" : "Senda inn auðkennismynd",
- "Choose profile picture from Files" : "Veldu sem auðkennismynd úr skrám",
- "Remove profile picture" : "Fjarlægja auðkennismynd",
- "The file must be a PNG or JPG" : "Skráin verður að vera PNG eða JPG",
- "Picture provided by original account" : "Mynd frá upprunalegum aðgangi",
- "Set as profile picture" : "Setja sem auðkennismynd",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Athugaðu að það getur tekið allt að 24 klukkustundir fyrir auðkennismyndina þína að uppfærast allsstaðar.",
- "Your biography. Markdown is supported." : "Æviágrip þitt. Stuðningur er við Markdown-snið.",
- "Unable to update date of birth" : "Tókst ekki að uppfæra fæðingardag",
- "Enter your date of birth" : "Settu inn fæðingardaginn þinn",
- "You are using {s}{usage}{/s}" : "Þú ert að nota {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Þú ert að nota {s}{usage}{/s} af {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Þú ert meðlimur eftirfarandi hópa:",
- "Your full name" : "Fullt nafn þitt",
- "Email options" : "Tölvupóststillingar",
- "Options for additional email address {index}" : "Valkostir fyrir aukalegt tölvupóstfang {index}",
- "Remove primary email" : "Fjarlægja aðaltölvupóstfang",
- "Delete email" : "Eyða tölvupósti",
- "This address is not confirmed" : "Þetta tölvupóstfang er ekki staðfest",
- "Unset as primary email" : "Aftengja sem aðaltölvupóstfang",
- "Set as primary email" : "Gera að aðaltölvupóstfangi",
- "Additional email address {index}" : "Aukalegt tölvupóstfang {index}",
- "Unable to delete primary email address" : "Get ekki eytt aðaltölvupóstfangi",
- "Unable to update primary email address" : "Get ekki uppfært aðaltölvupóstfang",
- "Unable to add additional email address" : "Get ekki bætt við aukatölvupóstfangi",
- "Unable to update additional email address" : "Get ekki uppfært aukatölvupóstfang",
- "Unable to delete additional email address" : "Get ekki eytt aukatölvupóstfangi",
- "Primary email for password reset and notifications" : "Aðallykilorð fyrir tilkynningar og endurstillingu lykilorðs",
- "No email address set" : "Ekkert tölvupóstfang sett",
- "Your handle" : "Auðkennið þitt",
- "Derived from your locale ({weekDayName})" : "Ákvarðað af staðfærslu kerfisins ({weekDayName})",
- "Unable to update first day of week" : "Mistókst að uppfæra fyrsta dag viku",
- "Day to use as the first day of week" : "Dagurinn sem á að nota sem fyrsta dag vikunnar",
- "Your headline" : "Fyrirsögnin þín",
- "Unable to update language" : "Tókst ekki að uppfæra tungumál",
- "Languages" : "Tungumál",
- "Help translate" : "Hjálpa við þýðingu",
- "No language set" : "Ekkert tungumál skilgreint",
- "Unable to update locale" : "Tókst ekki að uppfæra staðfærslu",
- "Locales" : "Staðfærslur",
- "Week starts on {firstDayOfWeek}" : "Vika byrjar á {firstDayOfWeek}",
- "No locale set" : "Engin staðfærsla tilgreind",
- "Your city" : "Borg/sveitarfélag",
- "Your organisation" : "Fyrirtækið þitt",
- "Your phone number" : "Símanúmerið þitt",
- "Edit your Profile visibility" : "Breyta sýnileika notandasniðsins þíns",
- "Unable to update profile enabled state" : "Tókst ekki að uppfæra virka stöðu notandasniðs",
- "Enable profile" : "Virkja notandasnið",
- "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." : "Sú stilling sem meira er takmarkandi, annað hvort sýnileiki eða dreifing, fær meira vægi í notandasniðinu þínu. Til dæmis ef sýnileiki er stilltur á \"Birta öllum\" og dreifing er stillt á \"Einka\", þá hefur \"Einka\" meira vægi.",
- "Unable to update visibility of {displayId}" : "Tókst ekki að uppfæra sýnileika á {displayId}",
- "she/her" : "hún",
- "he/him" : "hann",
- "they/them" : "hán/þau",
- "Your role" : "Hlutverk þitt",
- "Your X (formerly Twitter) handle" : "X (fyrrum Twitter) notandanafnið þitt",
- "Your website" : "Vefsvæðið þitt",
- "Invalid value" : "Ógilt gildi",
- "Unable to update {property}" : "Tókst ekki að uppfæra {property}",
- "No {property} set" : "Ekkert {property} sett",
- "Change scope level of {property}, current scope is {scope}" : "Breyta dreifingarstigi á {property}, fyrirliggjandi svið er {scope}",
- "Unable to update federation scope of the primary {property}" : "Tókst ekki að uppfæra skýjasambandsdreifingu á aðal {property}",
- "Unable to update federation scope of additional {property}" : "Tókst ekki að uppfæra skýjasambandsdreifingu á aukalegu {property}",
- "Add additional email" : "Bæta við aukatölvupóstfangi",
- "Add" : "Bæta við",
- "Create" : "Búa til",
- "Change" : "Breyta",
- "Delete" : "Eyða",
- "Reshare" : "Endurdeila",
- "Default language" : "Sjálfgefið tungumál",
- "Common languages" : "Algeng tungumál",
- "Other languages" : "Önnur tungumál",
- "Password change is disabled because the master key is disabled" : "Lykilorðabreyting er óvirk vegna þess að aðallykill er óvirkur",
- "No accounts" : "Engir aðgangar",
- "Loading accounts …" : "Hleð inn notendaaðgöngum...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Listi yfir notendaaðganga. Til að halda sem bestum afköstum er þessi listi ekki myndgerður að fullu. Notendaaðgangar munu birtast eftir því sem farið er í gegnum listann.",
- "Manager" : "Stjórnandi",
- "Set line manager" : "Settu línustjórnanda",
- "Account name will be autogenerated" : "Heiti notandaaðgangs verður útbúið sjálfvirkt",
- "Account name (required)" : "Heiti notandaaðgangs (krafist)",
- "New account" : "Nýr aðgangur",
- "Display name" : "Birtingarnafn",
- "Either password or email is required" : "Annað hvort lykilorð eða tölvupóstfang eru nauðsynleg",
- "Password (required)" : "Lykilorð (nauðsynlegt)",
- "Email (required)" : "Tölvupóstfang (nauðsynlegt)",
- "Email" : "Netfang",
- "Member of the following groups (required)" : "Meðlimur eftirfarandi hópa (nauðsynlegt)",
- "Member of the following groups" : "Meðlimur eftirfarandi hópa",
- "Set account groups" : "Setja hópa notandaaðgangs",
- "Admin of the following groups" : "Stjórnandi eftirfarandi hópa",
- "Set account as admin for …" : "Setja notandaaðganginn sem stjórnanda fyrir …",
- "Quota" : "Kvóti",
- "Set account quota" : "Settu kvóta notandaaðgangs",
- "Language" : "Tungumál",
- "Set default language" : "Settu sjálfgefið tungumál",
- "Add new account" : "Bæta við nýjum aðgangi",
- "Total rows summary" : "Samantek á fjölda raða",
- "Scroll to load more rows" : "Skrunaðu til að hlaða inn fleiri röðum",
- "Password or insufficient permissions message" : "Skilaboð um lykilorð eða ekki nægar heimildir",
- "Avatar" : "Auðkennismynd",
- "Account name" : "Heiti notandaaðgangs",
- "Group admin for" : "Hópstjóri fyrir",
- "Account backend" : "Bakendi notandaaðganga",
- "Storage location" : "Staðsetning gagnageymslu",
- "First login" : "Fyrsta innskráning",
- "Last login" : "Síðasta innskráning",
- "Account actions" : "Aðgerðir fyrir aðgang",
- "{size} used" : "{size} notað",
- "Delete account" : "Eyða notandaaðgangi",
- "Disable account" : "Gera notandaaðgang óvirkan",
- "Enable account" : "Virkja notandaaðgang",
- "Resend welcome email" : "Endursenda kveðjupóst",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Týnist tæki eða hætti einhver hjá fyrirtæki/stofnun, þá getur þetta hreinsað fjartengt út öll Nextcloud-gögn af öllum tækjum sem tengd eru {userid}. Virkar bara ef tækin eru tengd internetinu.",
- "Remote wipe of devices" : "Fjartengd útþurrkun af tækjum",
- "Wipe {userid}'s devices" : "Þurrka út af tækjum {userid}",
- "Wiped {userid}'s devices" : "Þurrkaði út af tækjum {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Eyða að fullu notandaaðgangnum {userid}, þar með talið öllum persónulegum skrám viðkomandi, forritsgögnum, o.s.frv.",
- "Account deletion" : "Eyðing á aðgangi",
- "Delete {userid}'s account" : "Eyða notandaaðgangi {userid}",
- "Display name was successfully changed" : "Það tókst að breyta birtingarnafninu",
- "Password was successfully changed" : "Það tókst að breyta lykilorðinu",
- "Email was successfully changed" : "Það tókst að breyta tölvupóstfanginu",
- "Welcome mail sent!" : "Kveðjupóstur sendur!",
- "Loading account …" : "Hleð inn notandaaðgangi …",
- "Change display name" : "Breyta birtingarnafni",
- "Set new password" : "Stilla nýtt lykilorð",
- "You do not have permissions to see the details of this account" : "Þú hefur ekki réttindi til að skoða ítarupplýsingar um þennan notandaaðgang",
- "Set new email address" : "Stilla nýtt tölvupóstfang",
- "Add account to group" : "Bæta notandaaðgangi í hóp",
- "Set account as admin for" : "Setja notandaaðganginn sem stjórnanda fyrir",
- "Select account quota" : "Veldu kvóta notandaaðgangs",
- "Set the language" : "Settu tungumálið",
- "Toggle account actions menu" : "Víxla af/á valmynd fyrir aðgerðir notandaaðgangs",
- "Done" : "Lokið",
- "Edit" : "Breyta",
- "Account management settings" : "Stillingar umsýslu notandaaðgangs",
- "Visibility" : "Sýnileiki",
- "Show language" : "Birta tungumál",
- "Show account backend" : "Birta bakenda notandaaðgangs",
- "Show storage path" : "Birta slóð á gagnageymslu",
- "Show first login" : "Birta fyrstu innskráningu",
- "Show last login" : "Birta síðustu innskráningu",
- "Sorting" : "Röðun",
- "Group list sorting" : "Röðun lista yfir hópa",
- "By member count" : "Eftir fjölda meðlima",
- "By name" : "Eftir nafni",
- "Send email" : "Senda tölvupóst",
- "Send welcome email to new accounts" : "Senda tölvupóst sem býður nýja notendur velkomna",
- "Defaults" : "Sjálfgefin gildi",
- "Default quota" : "Sjálfgefinn kvóti",
- "Select default quota" : "Setja sjálfgefinn kvóta",
- "Server error while trying to complete WebAuthn device registration" : "Villa á þjóni við að ljúka skráningu WebAuthn-tækis",
- "Passwordless authentication requires a secure connection." : "Lykilorðalaus auðkenning krefst öruggrar tengingar.",
- "Add WebAuthn device" : "Bæta við WebAuthn-tæki",
- "Please authorize your WebAuthn device." : "Auðkenndu WebAuthn-tækið þitt.",
- "Adding your device …" : "Bæti við tækinu þínu …",
- "Unnamed device" : "Nafnlaust tæki",
- "Passwordless Authentication" : "Lykilorðalaus auðkenning",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Settu aðganginn þinn upp fyrir lykilorðalausa auðkenningu byggða á FIDO2-staðlinum.",
- "No devices configured." : "Engin tæki skilgreind.",
- "The following devices are configured for your account:" : "Eftirfarandi tæki eru uppsett fyrir notandaaðganginn þinn:",
- "Your browser does not support WebAuthn." : "Vafrinn þinn styður ekki WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Sem stjórnandi geturðu fínstillt hegðun við deilingu. Endilega kíktu á hjálparskjölin til að sjá ítarlegri upplýsingar.",
- "You need to enable the File sharing App." : "Þú verður að virkja skráardeilingarforritið.",
- "App Store" : "Forritasafn",
- "Loading app list" : "Hleð inn forritalista",
- "Loading categories" : "Hleð inn flokkum",
- "Developer documentation ↗" : "Hjálparskjöl þróunaraðila↗",
- "Version {version}, {license}-licensed" : "Útgáfa {version}, {license}-notkunarleyfi",
- "Version {version}" : "Útgáfa {version}",
- "All accounts" : "Allir aðgangar",
- "Admins" : "Kerfisstjórar",
- "Account group: {group}" : "Hópur notendaaðganga: {group}",
- "Account management" : "Umsýsla notandaaðgangs",
"Sending…" : "Sendi...",
"Email sent" : "Tölvupóstur sendur",
"Location" : "Staðsetning",
@@ -609,6 +344,7 @@
"Date of birth" : "Fæðingardagur",
"Full name" : "Fullt nafn",
"Additional email" : "Aukatölvupóstfang",
+ "Email" : "Netfang",
"Fediverse (e.g. Mastodon)" : "Skýjasamband - Fediverse (t.d. Mastodon)",
"Headline" : "Fyrirsögn",
"Organisation" : "Stofnun/Félag/Fyrirtæki",
@@ -618,6 +354,7 @@
"X (formerly Twitter)" : "X (fyrrum Twitter)",
"Website" : "Vefsvæði",
"Profile visibility" : "Sýnileiki notandasniðs",
+ "Language" : "Tungumál",
"Locale" : "Staðfærsla",
"First day of week" : "Fyrsti dagur viku",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Er ekki tiltækt þar sem þessi eiginleiki er nauðsynlegur fyrir kjarnavirkni á borð við skráadeilingu og boð í dagatölum",
@@ -633,6 +370,7 @@
"Show to everyone" : "Birta öllum",
"Show to logged in accounts only" : "Birta einungis hjá innskráðum notendaaðgöngum",
"Hide" : "Fela",
+ "Update to {version}" : "Uppfæra í {version}",
"{progress}% Deploying …" : "{progress}% Sett í gang …",
"{progress}% Initializing …" : "{progress}% Frumstilling …",
"Health checking" : "Ástandsskoðun",
@@ -641,6 +379,7 @@
"Allow untested app" : "Leyfa óprófuð forrit",
"The app will be downloaded from the App Store" : "Forritið verður sótt úr forritabúðinni",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Þetta forrit er merkt sem ekki samhæft við þína útgáfu af Nextcloud. Ef þú heldur áfram er mögulegt að þú getir samt sett forritið upp. En athugaðu þá að ekki er víst að forritið virki eins og skyldi.",
+ "{size} used" : "{size} notað",
"Unknown" : "Óþekkt",
"Never" : "Aldrei",
"An error occurred during the request. Unable to proceed." : "Villa kom upp við beiðnina. Get ekki haldið áfram.",
@@ -653,8 +392,10 @@
"Error while updating device token scope" : "Villa við að uppfæra gildissvið fyrir teikn tækisins",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Það komu of margar beiðnir frá netkerfinu þínu. Reyndu aftur eða hafðu samband við kerfisstjóra ef þetta er ekki rétt.",
"Error" : "Villa",
+ "Default quota" : "Sjálfgefinn kvóti",
"Account documentation" : "Hjálparskjöl fyrir notendaaðganga",
"Administration documentation" : "Hjálparskjöl fyrir stjórnendur",
+ "Documentation" : "Hjálparskjöl",
"Forum" : "Vefspjall",
"General documentation" : "Almenn hjálparskjöl",
"Legal notice" : "Lagaleg atriði",
@@ -676,6 +417,7 @@
"SMTP Password" : "SMTP-lykilorð",
"Save" : "Vista",
"Test and verify email settings" : "Prófa og staðfesta tölvupóststillingar",
+ "Send email" : "Senda tölvupóst",
"Security & setup warnings" : "Öryggi og aðvaranir vegna uppsetningar",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Það er mikilvægt fyrir öryggi og afköst uppsetningarinnar þinnar að allt sé rétt stillt. Til að hjálpa við að svo sé, eru gerðar ýmsar sjálfvirkar prófanir. Skoðaðu hjálparskjölin til að sjá ítarlegar upplýsingar.",
"All checks passed." : "Stóðst allar prófanir.",
@@ -695,38 +437,9 @@
"Use a second factor besides your password to increase security for your account." : "Notaðu annað þrep til viðbótar lykilorðinu þínu til að auka öryggi notandaaðgangsins þíns.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ef þú notaðir utanaðkomandi forrit til að tengjast við Nextcloud, skaltu ganga úr skugga um að þú útbúir lykilorð fyrir hvert slíkt forrit áður en þú virkjar 2FA tveggja-þrepa auðkenningu.",
"Logged in account must be a subadmin" : "Innskráður aðgangur verður að vera undirstjórnandi (subadmin)",
- "Missing optional index \"%s\" in table \"%s\"." : "Vantar valkvæða vísinn \"s\" í töflunni \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Gagnagrunninn vantar nokkra atriðavísa (indexes). Vegna þess að það að bæta atriðavísum við stórar töflur getur tekið töluverðan tíma, þá var þeim ekki bætt við sjálfvirkt. Með því að keyra \"occ db:add-missing-indices\" væri hægt að bæta inn þessum atriðavísum sem vantar, á meðan kerfið er í gangi. Um leið og búið er að bæta inn þessum atriðavísum, munu fyrirspurnir í þessar töflur verða miklu hraðvirkari.",
"File locking" : "Skráalæsing",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Færslulæsing skráa (transactional file locking) er óvirk, þetta gæti leitt til vandamála út frá forgangsskilyrðum (race conditions). Virkjaðu 'filelocking.enabled' í config.php til að forðast slík vandamál.",
"The PHP memory limit is below the recommended value of %s." : "Minnismörk PHP eru lægri en gildið sem mælt er með; %s.",
- "Speech-To-Text" : "Tal-í-texta",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Tal-í-texta getur verið framkvæmt af mismunandi forritum. Hér geturðu stillt hvaða forrit ætti að nota.",
- "Set default expiration date for shares" : "Setja sjálfgefinn gildistíma fyrir sameignir",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Leyfa sjálfklárun notandanafns í deilingarglugga og heimila aðgang að nafnaskrá kerfisins",
- "Your biography" : "Æviágrip þitt",
- "You are using <strong>{usage}</strong>" : "Þú ert að nota <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Þú ert að nota <strong>{usage}</strong> af <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Settu stjórnanda notenda",
- "Username will be autogenerated" : "Notandanafn verður útbúið sjálfvirkt",
- "Username (required)" : "Notandanafn (nauðsynlegt)",
- "New user" : "Nýr notandi",
- "Groups (required)" : "Hópar (nauðsynlegt)",
- "Set user groups" : "Setja notendahópa",
- "Administered groups" : "Stýrðir hópar",
- "Set user as admin for …" : "Setja notanda sem stjórnanda fyrir …",
- "Set user quota" : "Settu kvóta notandans",
- "Add new user" : "Bæta við nýjum notanda",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} notandi …","{userCount} notendur …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} notandi","{userCount} notendur"],
- "Loading users …" : "Hleð inn notendum …",
- "Username" : "Notandanafn",
- "User backend" : "Bakendi notanda",
- "User actions" : "Aðgerðir notanda",
- "Add user to group" : "Bæta notanda í hóp",
- "Server error while trying to add WebAuthn device" : "Villa á þjóni við að bæta við WebAuthn-tæki",
- "Name your device" : "Gefðu tækinu þínu nafn",
- "Active accounts" : "Virkir aðgangar",
- "Follow us on Twitter" : "Fylgstu með okkur á Twitter"
+ "Set default expiration date for shares" : "Setja sjálfgefinn gildistíma fyrir sameignir"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/it.js b/apps/settings/l10n/it.js
index 5fd40d06340..224e06bedb4 100644
--- a/apps/settings/l10n/it.js
+++ b/apps/settings/l10n/it.js
@@ -256,6 +256,7 @@ OC.L10N.register(
"OPcache is not working as it should, opcache_get_status() returns false, please check configuration." : "OPcache non funziona come dovrebbe, opcache_get_status() restituisce false, controlla la configurazione.",
"The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply \"opcache.max_accelerated_files\" to your PHP configuration with a value higher than \"%s\"." : "Il numero massimo di chiavi OPcache è stato quasi superato. Per garantire che tutti gli script possano essere mantenuti nella cache, si consiglia di applicare \"opcache.max_accelerated_files\" alla configurazione PHP con un valore superiore a \"%s\".",
"The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply \"opcache.memory_consumption\" to your PHP configuration with a value higher than \"%s\"." : "Il buffer OPcache è quasi pieno. Per garantire che tutti gli script possano essere conservati nella cache, si consiglia di applicare \"opcache.memory_consumption\" alla configurazione PHP con un valore superiore a \"%s\".",
+ "The PHP OPcache module is not properly configured. %s." : "Il modulo PHP OPcache non è correttamente configurato. %s.",
"Correctly configured" : "Configurato correttamente",
"PHP version" : "Versione PHP",
"You are currently running PHP %s." : "Attualmente stai usando PHP %s.",
@@ -304,7 +305,16 @@ OC.L10N.register(
"Enforce password protection" : "Imponi la protezione con password",
"Exclude groups from password requirements" : "Escludi gruppi dai requisiti della password",
"Exclude groups from creating link shares" : "Escludi gruppi dalla creazione dei collegamenti di condivisione",
+ "Allow users to set custom share link tokens" : "Consenti agli utenti di impostare token di collegamento personalizzati",
+ "Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Le condivisioni con token personalizzati continueranno a essere accessibili dopo aver disabilitato questa impostazione",
+ "Shares with guessable tokens may be accessed easily" : "Le condivisioni con token indovinabili sono facilmente accessibili",
+ "Limit sharing based on groups" : "Limita la condivisione in base ai gruppi",
+ "Exclude some groups from sharing" : "Escludi alcuni gruppi dalla condivisione",
+ "Limit sharing to some groups" : "Limita la condivisione ad alcuni gruppi",
+ "Groups allowed to share" : "Gruppi autorizzati a condividere",
"Groups excluded from sharing" : "Gruppi esclusi dalla condivisione",
+ "Not allowed groups will still be able to receive shares, but not to initiate them." : "I gruppi non autorizzati potranno comunque ricevere condivisioni, ma non avviarle.",
+ "Set default expiration date for internal shares" : "Imposta la data di scadenza predefinita per le condivisioni interne",
"Enforce expiration date" : "Forza la data di scadenza",
"Default expiration time of new shares in days" : "Scadenza predefinita delle nuove condivisioni in giorni",
"Expire shares after x days" : "Scadenza delle condivisioni dopo x giorni",
@@ -315,6 +325,7 @@ OC.L10N.register(
"Set default expiration date for shares via link or mail" : "Imposta la data di scadenza predefinita per le condivisioni tramite link o posta",
"Default expiration time of shares in days" : "Scadenza predefinita delle condivisioni in giorni",
"Privacy settings for sharing" : "Impostazioni sulla privacy per la condivisione",
+ "Allow account name autocompletion in share dialog and allow access to the system address book" : "Consenti il ​​completamento automatico del nome dell'account nella finestra di dialogo di condivisione e consenti l'accesso alla rubrica di sistema",
"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 email (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)",
@@ -348,6 +359,7 @@ OC.L10N.register(
"No apps found for your version" : "Nessuna applicazione trovata per la tua versione",
"_%n app has an update available_::_%n apps have an update available_" : ["%n applicazione ha un aggiornamento disponibile","%n applicazioni hanno un aggiornamento disponibile","%n applicazioni hanno un aggiornamento disponibile"],
"_Update_::_Update all_" : ["Aggiorna","Aggiorna","Aggiorna tutto"],
+ "Failed to load groups" : "Impossibile caricare i gruppi",
"Failed to create group" : "Creazione gruppo fallita",
"Create group" : "Crea gruppo",
"Group name" : "Nome del gruppo",
@@ -355,64 +367,6 @@ OC.L10N.register(
"Loading groups…" : "Caricamento gruppi...",
"Nothing to show" : "Niente da mostrare",
"Loading" : "Caricamento",
- "Carousel" : "Carosello",
- "Daemon" : "Demone",
- "Type" : "Tipo",
- "Display Name" : "Nome visualizzato",
- "Learn more" : "Scopri altro",
- "Confirm" : "Conferma",
- "Cancel" : "Annulla",
- "Description" : "Descrizione",
- "View in store" : "Visualizza nell'archivio",
- "Visit website" : "Visita il sito web",
- "Usage documentation" : "Manuale d'uso",
- "Admin documentation" : "Documentazione di amministrazione",
- "Developer documentation" : "Documentazione dello sviluppatore",
- "Details" : "Dettagli",
- "All" : "Tutti",
- "Limit app usage to groups" : "Limita l'utilizzo dell'applicazione a gruppi",
- "No results" : "Nessun risultato",
- "Update to {version}" : "Aggiorna a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione minima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione massima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Questa applicazione non può essere installata perché le seguenti dipendenze non sono soddisfatte:",
- "Author" : "Autore",
- "Categories" : "Categorie",
- "Resources" : "Risorse",
- "Documentation" : "Documentazione",
- "Interact" : "Interagisci",
- "Report a bug" : "Segnala un bug",
- "Request feature" : "Richiedi funzionalità",
- "Ask questions or discuss" : "Domanda o discuti",
- "Rate the app" : "Valuta l'applicazione",
- "Rate" : "Valuta",
- "Changelog" : "Novità",
- "Google Chrome for Android" : "Google Chrome per Android",
- "{productName} iOS app" : "Applicazione iOS di {productName}",
- "{productName} Android app" : "Applicazione Android di {productName}",
- "{productName} Talk for iOS" : "{productName} Talk per iOS",
- "{productName} Talk for Android" : "{productName} Talk per Android",
- "Sync client" : "Client di sincronizzazione",
- "This session" : "Questa sessione",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nome dispositivo",
- "Cancel renaming" : "Annulla la rinomina",
- "Save new name" : "Salva nuovo nome",
- "Marked for remote wipe" : "Marcato come cancellazione remota",
- "Device settings" : "Impostazioni dei dispositivi",
- "Allow filesystem access" : "Consenti accesso al filesystem",
- "Rename" : "Rinomina",
- "Revoke" : "Revoca",
- "Wipe device" : "Cancella dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "La revoca di questo token potrebbe impedire la cancellazione del tuo dispositivo se non ha ancora iniziato la cancellazione.",
- "Device" : "Dispositivo",
- "Last activity" : "Ultima attività",
- "Devices & sessions" : "Dispositivi e sessioni",
- "Web, desktop and mobile clients currently logged in to your account." : "Client web, desktop e mobile attualmente connessi al tuo account.",
- "Error while creating device token" : "Errore durante la creazione del token di dispositivo",
- "App name" : "Nome applicazione",
- "Create new app password" : "Crea nuova password di applicazione",
"App password copied!" : "Password dell'applicazione copiata!",
"Copy app password" : "Copia password dell'applicazione",
"Login name copied!" : "Nome di accesso copiato!",
@@ -423,6 +377,7 @@ OC.L10N.register(
"Password" : "Password",
"Show QR code for mobile apps" : "Mostra il codice QR per le applicazioni mobili",
"Use system cron service to call the cron.php file every 5 minutes." : "Usa il servizio cron di sistema per invocare il file cron.php ogni 5 minuti.",
+ "The cron.php needs to be executed by the system account \"{user}\"." : "Il cron.php deve essere eseguito dall'account di sistema \"{user}\".",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "È necessaria l'estensione POSIX di PHP. Vedi la {linkstart}documentazione di PHP{linkend} per maggiori dettagli.",
"Unable to update background job mode" : "Impossibile aggiornare la modalità delle operazioni in background",
"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." : "Per un buon funzionamento del server, è importante configurare le operazioni in background correttamente. \"Cron\" è l'impostazione consigliata. Vedi la documentazione per ulteriori informazioni.",
@@ -434,6 +389,7 @@ OC.L10N.register(
"Cron (Recommended)" : "Cron (Consigliato)",
"Unable to update profile default setting" : "Impossibile aggiornare l'impostazione predefinita del profilo",
"Profile" : "Profilo",
+ "Password confirmation is required" : "La conferma della password è richiesta",
"Unable to update server side encryption config" : "Impossibile aggiornare la configurazione della crittografia lato server",
"Server-side encryption" : "Cifratura lato server",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La cifratura lato server rende possibile cifrare i file caricati sul server. Ciò presenta dei limiti, come una riduzione delle prestazioni, perciò abilita questa funzione solo se necessario.",
@@ -448,148 +404,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Considera che la cifratura incrementa sempre la dimensione dei file.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Ti consigliamo di creare copie di sicurezza dei tuoi dati con regolarità, in caso di utilizzo della cifratura, assicurati di creare una copia delle chiavi di cifratura insieme ai tuoi dati.",
"This is the final warning: Do you really want to enable encryption?" : "Questo è l'ultimo avviso: vuoi davvero abilitare la cifratura?",
- "Failed to remove group \"{group}\"" : "Rimozione del gruppo \"{group}\" fallita",
"Please confirm the group removal" : "Conferma la rimozione del gruppo",
+ "Cancel" : "Annulla",
+ "Confirm" : "Conferma",
"Submit" : "Invia",
"Rename group" : "Rinomina gruppo",
- "Remove group" : "Rimuovi gruppo",
- "Current password" : "Password attuale",
- "New password" : "Nuova password",
- "Change password" : "Modifica password",
- "Choose your profile picture" : "Scegli la tua immagine del profilo",
- "Please select a valid png or jpg file" : "Scegli un file png o jpg valido",
- "Error setting profile picture" : "Errore durante l'impostazione dell'immagine del profilo",
- "Error cropping profile picture" : "Errore durante il ritaglio dell'immagine del profilo",
- "Error saving profile picture" : "Errore durante il salvataggio dell'immagine del profilo",
- "Error removing profile picture" : "Errore durante la rimozione dell'immagine del profilo",
- "Your profile picture" : "La tua immagine del profilo",
- "Upload profile picture" : "Carica immagine del profilo",
- "Choose profile picture from Files" : "Scegli immagine del profilo da File",
- "Remove profile picture" : "Rimuovi immagine del profilo",
- "The file must be a PNG or JPG" : "Il file deve essere una PNG o JPG",
- "Picture provided by original account" : "Immagine fornita dall'account originale",
- "Set as profile picture" : "Imposta come immagine del profilo",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tieni presente che possono essere necessarie fino a 24 ore prima che l'immagine del profilo venga aggiornata dappertutto.",
- "You are a member of the following groups:" : "Sei un membro dei seguenti gruppi:",
- "Your full name" : "Il tuo nome completo",
- "Email options" : "Opzioni email",
- "Remove primary email" : "Rimuovi email principale",
- "Delete email" : "Elimina email",
- "This address is not confirmed" : "Questo indirizzo non è confermato",
- "Unset as primary email" : "Togli dall'email principale",
- "Set as primary email" : "Imposta come email principale",
- "Additional email address {index}" : "Indirizzo email aggiuntivo {index}",
- "Unable to delete primary email address" : "Impossibile eliminare l'indirizzo di posta principale",
- "Unable to update primary email address" : "Impossibile aggiornare l'indirizzo di posta principale",
- "Unable to add additional email address" : "Impossibile aggiungere l'indirizzo di posta aggiuntivo",
- "Unable to update additional email address" : "Impossibile aggiornare l'indirizzo di posta aggiuntivo",
- "Unable to delete additional email address" : "Impossibile eliminare l'indirizzo di posta aggiuntivo",
- "Primary email for password reset and notifications" : "Email principale per ripristino della password e notifiche",
- "No email address set" : "Nessun indirizzo email impostato",
- "Your handle" : "Il tuo collegamento",
- "Your headline" : "Il tuo titolo",
- "Unable to update language" : "Impossibile aggiornare la lingua",
- "Languages" : "Lingue",
- "Help translate" : "Migliora la traduzione",
- "No language set" : "Nessuna lingua impostata",
- "Unable to update locale" : "Impossibile aggiornare la lingua",
- "Week starts on {firstDayOfWeek}" : "La settimana inizia: {firstDayOfWeek}",
- "No locale set" : "Nessuna lingua impostata",
- "Your city" : "La tua città",
- "Your organisation" : "La tua organizzazione",
- "Your phone number" : "Il tuo numero di telefono",
- "Edit your Profile visibility" : "Modifica la visibilità del profilo",
- "Unable to update profile enabled state" : "Impossibile aggiornare lo stato di attivazione del profilo",
- "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." : "L'impostazione più restrittiva di visibilità o ambito è rispettata sul tuo profilo. Ad esempio, quando la visibilità è su \"Mostra a tutti\" e l'ambito è su \"Privato\", verrà rispettato \"Privato\".",
- "Unable to update visibility of {displayId}" : "Impossibile aggiornare la visibilità di {displayId}",
- "Your role" : "Il tuo ruolo",
- "Your X (formerly Twitter) handle" : "Il tuo handle di X (ex Twitter)",
- "Your website" : "Il tuo sito web",
- "Invalid value" : "Valore non valido",
- "Unable to update {property}" : "Impossibile aggiornare {property}",
- "No {property} set" : "Nessun {property} impostato",
- "Change scope level of {property}, current scope is {scope}" : "Cambia libello di ambito di {property}, l'attuale ambito è {scope}",
- "Unable to update federation scope of the primary {property}" : "Impossibile aggiornare l'ambito federativo del {property} primario",
- "Unable to update federation scope of additional {property}" : "Impossibile aggiornare l'ambito federativo del {property} aggiuntivo",
- "Add additional email" : "Aggiungi email aggiuntiva",
- "Add" : "Aggiungi",
- "Create" : "Crea",
- "Change" : "Modifica",
- "Delete" : "Elimina",
- "Reshare" : "Ri-condividi",
- "Default language" : "Lingua predefinita",
- "Common languages" : "Lingue comuni",
- "Other languages" : "Altre lingue",
- "Password change is disabled because the master key is disabled" : "La modifica della password è disabilitata poiché la chiave principale è disabilitata",
- "Loading accounts …" : "Caricamento account in corso...",
- "Manager" : "Responsabile",
- "New account" : "Nuovo account",
- "Display name" : "Nome visualizzato",
- "Either password or email is required" : "La password o l'email è necessaria",
- "Password (required)" : "Password (richiesta)",
- "Email (required)" : "Email (richiesta)",
- "Email" : "Posta elettronica",
- "Quota" : "Quote",
- "Language" : "Lingua",
- "Set default language" : "Imposta lingua predefinita",
- "Total rows summary" : "Riepilogo totale delle righe",
- "Scroll to load more rows" : "Scorri per caricare più righe",
- "Password or insufficient permissions message" : "Messaggio password o permessi insufficienti",
- "Avatar" : "Avatar",
- "Account name" : "Nome account",
- "Group admin for" : "Amministratore per il gruppo",
- "Storage location" : "Posizione di archiviazione",
- "Last login" : "Ultimo accesso",
- "Account actions" : "Azioni account",
- "{size} used" : "{size} utilizzati",
- "Delete account" : "Elimina account",
- "Disable account" : "Disabilita account",
- "Enable account" : "Abilita account",
- "Resend welcome email" : "Invia nuovamente email di benvenuto",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In caso di smarrimento di un dispositivo o uscita dall'organizzazione, questa funzione può cancellare a distanza i dati di Nextcloud da tutti i dispositivi associati a {userid}. Funziona solo se i dispositivi sono connessi a Internet.",
- "Remote wipe of devices" : "Cancellazione remota dei dispositivi",
- "Wipe {userid}'s devices" : "Cancella i dispositivi di {userid}",
- "Wiped {userid}'s devices" : "Dispositivi di {userid} cancellati",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Elimina completamente l'account {userid} inclusi tutti i file personali, i dati delle applicazioni, ecc.",
- "Account deletion" : "Eliminazione account",
- "Delete {userid}'s account" : "Elimina l'account di {userid}",
- "Display name was successfully changed" : "Nome visualizzato modificato correttamente",
- "Password was successfully changed" : "Password modificata correttamente",
- "Email was successfully changed" : "Email modificata correttamente",
- "Welcome mail sent!" : "Email di benvenuto inviata!",
- "Change display name" : "Cambia nome visualizzato",
- "Set new password" : "Imposta una nuova password",
- "Set new email address" : "Imposta un nuovo indirizzo email",
- "Set the language" : "Imposta la lingua",
- "Done" : "Completato",
- "Edit" : "Modifica",
- "Visibility" : "Visibilità",
- "Show language" : "Mostra lingua",
- "Show storage path" : "Mostra percorso di archiviazione",
- "Show last login" : "Mostra ultimo accesso",
- "Sorting" : "Ordina",
- "By member count" : "Per numero di partecipanti",
- "By name" : "Per nome",
- "Send email" : "Invia email",
- "Send welcome email to new accounts" : "Invia email di benvenuto ai nuovi utenti",
- "Defaults" : "Predefiniti",
- "Default quota" : "Quota predefinita",
- "Select default quota" : "Seleziona la quota predefinita",
- "Server error while trying to complete WebAuthn device registration" : "Errore del server durante il tentativo di completare la registrazione del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "L'autenticazione senza password richiede una connessione sicura.",
- "Add WebAuthn device" : "Aggiungi dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorizza il tuo dispositivo WebAuthn.",
- "Adding your device …" : "Aggiunta del tuo dispositivo…",
- "Unnamed device" : "Dispositivo senza nome",
- "Passwordless Authentication" : "Autenticazione senza password",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configura il tuo account per l'autenticazione senza password seguendo lo standard FIDO2.",
- "No devices configured." : "Nessun dispositivo configurato.",
- "The following devices are configured for your account:" : "I seguenti dispositivi sono configurati per il tuo account:",
- "Your browser does not support WebAuthn." : "Il tuo browser non supporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "In qualità di amministratore puoi configurare in modo granulare il comportamento della condivisione. Vedi la documentazione per ulteriori informazioni.",
- "You need to enable the File sharing App." : "Devi attivare l'applicazione Condivisione file.",
- "App Store" : "App Store",
- "Admins" : "Amministratori",
"Sending…" : "Invio in corso...",
"Email sent" : "Email inviata",
"Location" : "Posizione",
@@ -597,6 +416,7 @@ OC.L10N.register(
"About" : "Informazioni",
"Full name" : "Nome completo",
"Additional email" : "Email aggiuntiva",
+ "Email" : "Posta elettronica",
"Fediverse (e.g. Mastodon)" : "Fediverso (es. Mastodon)",
"Headline" : "Titolo",
"Organisation" : "Organizzazione",
@@ -606,6 +426,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (ex Twitter)",
"Website" : "Sito web",
"Profile visibility" : "Visibilità del profilo",
+ "Language" : "Lingua",
"Locale" : "Localizzazione",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Non disponibile poiché questa proprietà è necessaria per funzioni di base inclusi la condivisione di file e gli inviti via calendario.",
"Your apps" : "Le tue applicazioni",
@@ -618,11 +439,13 @@ OC.L10N.register(
"Show to everyone" : "Mostra a tutti",
"Show to logged in accounts only" : "Mostra solo agli account che hanno effettuato l'accesso",
"Hide" : "Nascondi",
+ "Update to {version}" : "Aggiorna a {version}",
"Download and enable" : "Scarica e abilita",
"Disable" : "Disabilita",
"Allow untested app" : "Consenti applicazione non verificata",
"The app will be downloaded from the App Store" : "L'applicazione sarà scaricata dal negozio delle applicazioni",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Questa applicazione non è marcata come compatibile con la tua versione di Nextcloud. Se continui sarai ancora in grado di installare l'applicazione. Nota che l'applicazione potrebbe non funzionare come previsto.",
+ "{size} used" : "{size} utilizzati",
"Unknown" : "Sconosciuto",
"Never" : "Mai",
"An error occurred during the request. Unable to proceed." : "Si è verificato un errore durante la richiesta. Impossibile continuare.",
@@ -636,8 +459,10 @@ OC.L10N.register(
"Error while updating device token scope" : "Errore durante l'aggiornamento del campo del token del dispositivo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Sono arrivate troppe richieste dalla tua rete. Riprova più tardi o contatta il tuo amministratore se questo è un errore.",
"Error" : "Errore",
+ "Default quota" : "Quota predefinita",
"Account documentation" : "Documentazione dell'account",
"Administration documentation" : "Documentazione di amministrazione",
+ "Documentation" : "Documentazione",
"Forum" : "Forum",
"General documentation" : "Documentazione generale",
"Legal notice" : "Avviso legale",
@@ -658,6 +483,7 @@ OC.L10N.register(
"SMTP Password" : "Password SMTP",
"Save" : "Salva",
"Test and verify email settings" : "Prova e verifica impostazioni email",
+ "Send email" : "Invia email",
"Security & setup warnings" : "Avvisi di sicurezza e di configurazione",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "È importante per la sicurezza e le prestazioni della tua istanza che tutto sia configurato correttamente. Per aiutarti in questo senso, stiamo eseguendo alcuni controlli automatici. Vedi la documentazione collegata per ulteriori informazioni.",
"All checks passed." : "Tutti i controlli passati.",
@@ -676,44 +502,9 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Utilizza un secondo fattore oltre alla tua password per aumentare la sicurezza per il tuo account.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Se utilizzi applicazioni di terze parti per connetterti a Nextcloud, assicurati di creare e configurare una password per ciascuna applicazione prima di abilitare l'autenticazione a due fattori.",
"Logged in account must be a subadmin" : "L'account che ha eseguito l'accesso deve essere un sotto-amministratore",
- "Missing optional index \"%s\" in table \"%s\"." : "Manca l'indice facoltativo \"%s\" nella tabella \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Nel database mancano alcuni indici. Poiché l'aggiunta di indici su tabelle grandi può richiedere del tempo, non sono stati aggiunti automaticamente. Eseguendo \"occ db:add-missing-indices\", gli indici mancanti possono essere aggiunti manualmente mentre l'istanza è in esecuzione. Una volta che gli indici sono stati aggiunti, le interrogazioni a tali tabelle sono solitamente più veloci.",
"File locking" : "Blocco dei file",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Il blocco di file transazionale è disattivato, ciò potrebbe comportare problemi di race condition. Attiva \"filelocking.enabled\" nel config.php per evitare questi problemi.",
"The PHP memory limit is below the recommended value of %s." : "Il limite di memoria di PHP è inferiore al valore consigliato di %s.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Attualmente stai usando PHP %s. PHP 8.0 è deprecato in Nextcloud 27. Nextcloud 28 potrebbe richiedere almeno PHP 8.1. Aggiorna ad una delle versioni di PHP supportate ufficialmente fornite dal Gruppo PHP il prima possibile.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Stai usando la versione \"%s\" di MariaDB. Nextcloud 21 e successivi non supportano questa versione e richiedono MariaDB 10.2 o successivi.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Stai usando la versione \"%s\" di MySQL. Nextcloud 21 e successivi non supportano questa versione e richiedono MySQL 8.0 o MariaDB 10.2 o successivi.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Stai usando la versione \"%s\" di PostgreSQL. Nextcloud 21 e successivi non supportano questa versione e richiedono PostgreSQL 9.6 o successivi.",
- "Speech-To-Text" : "Riconoscimento vocale",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Il riconoscimento vocale può essere implementato da diverse applicazioni. Qui puoi impostare quale applicazioni usare.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Nessuna delle applicazioni installate integra la funzionalità di riconoscimento vocale",
- "None of your currently installed apps provide Text processing functionality" : "Nessuna delle applicazioni installate integra la funzionalità elaborazione del testo",
- "Set default expiration date for shares" : "Imposta data di scadenza predefinita per le condivisioni",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permetti l'autocompletamento dei nomi utente nella finestra di condivisione e l'accesso alla rubrica di sistema",
- "Your biography" : "La tua biografia",
- "You are using <strong>{usage}</strong>" : "Stai utilizzando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Stai utilizzando <strong>{usage}</strong> di <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Imposta responsabile utente",
- "Username will be autogenerated" : "Il nome utente verrà autogenerato",
- "Username (required)" : "Nome utente (richiesto)",
- "New user" : "Nuovo utente",
- "Groups (required)" : "Gruppi (richiesto)",
- "Set user groups" : "Imposta gruppi utente",
- "Administered groups" : "Gruppi amministrati",
- "Set user as admin for …" : "Imposta utente come admin di …",
- "Set user quota" : "Imposta quota utente",
- "Add new user" : "Aggiungi nuovo utente",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} utente …","{userCount} utenti …","{userCount} utenti …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} utente","{userCount} utenti","{userCount} utenti"],
- "Loading users …" : "Caricamento utenti …",
- "Username" : "Nome utente",
- "User backend" : "Motore utente",
- "User actions" : "Azioni utente",
- "Add user to group" : "Aggiungi utente al gruppo",
- "Server error while trying to add WebAuthn device" : "Errore del server durante il tentativo di aggiungere il dispositivo WebAuthn",
- "Name your device" : "Nome del tuo dispositivo",
- "Active accounts" : "Account attivi",
- "Follow us on Twitter" : "Seguici su Twitter!"
+ "Set default expiration date for shares" : "Imposta data di scadenza predefinita per le condivisioni"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/it.json b/apps/settings/l10n/it.json
index 7bc04158924..e4246934be2 100644
--- a/apps/settings/l10n/it.json
+++ b/apps/settings/l10n/it.json
@@ -254,6 +254,7 @@
"OPcache is not working as it should, opcache_get_status() returns false, please check configuration." : "OPcache non funziona come dovrebbe, opcache_get_status() restituisce false, controlla la configurazione.",
"The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply \"opcache.max_accelerated_files\" to your PHP configuration with a value higher than \"%s\"." : "Il numero massimo di chiavi OPcache è stato quasi superato. Per garantire che tutti gli script possano essere mantenuti nella cache, si consiglia di applicare \"opcache.max_accelerated_files\" alla configurazione PHP con un valore superiore a \"%s\".",
"The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply \"opcache.memory_consumption\" to your PHP configuration with a value higher than \"%s\"." : "Il buffer OPcache è quasi pieno. Per garantire che tutti gli script possano essere conservati nella cache, si consiglia di applicare \"opcache.memory_consumption\" alla configurazione PHP con un valore superiore a \"%s\".",
+ "The PHP OPcache module is not properly configured. %s." : "Il modulo PHP OPcache non è correttamente configurato. %s.",
"Correctly configured" : "Configurato correttamente",
"PHP version" : "Versione PHP",
"You are currently running PHP %s." : "Attualmente stai usando PHP %s.",
@@ -302,7 +303,16 @@
"Enforce password protection" : "Imponi la protezione con password",
"Exclude groups from password requirements" : "Escludi gruppi dai requisiti della password",
"Exclude groups from creating link shares" : "Escludi gruppi dalla creazione dei collegamenti di condivisione",
+ "Allow users to set custom share link tokens" : "Consenti agli utenti di impostare token di collegamento personalizzati",
+ "Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Le condivisioni con token personalizzati continueranno a essere accessibili dopo aver disabilitato questa impostazione",
+ "Shares with guessable tokens may be accessed easily" : "Le condivisioni con token indovinabili sono facilmente accessibili",
+ "Limit sharing based on groups" : "Limita la condivisione in base ai gruppi",
+ "Exclude some groups from sharing" : "Escludi alcuni gruppi dalla condivisione",
+ "Limit sharing to some groups" : "Limita la condivisione ad alcuni gruppi",
+ "Groups allowed to share" : "Gruppi autorizzati a condividere",
"Groups excluded from sharing" : "Gruppi esclusi dalla condivisione",
+ "Not allowed groups will still be able to receive shares, but not to initiate them." : "I gruppi non autorizzati potranno comunque ricevere condivisioni, ma non avviarle.",
+ "Set default expiration date for internal shares" : "Imposta la data di scadenza predefinita per le condivisioni interne",
"Enforce expiration date" : "Forza la data di scadenza",
"Default expiration time of new shares in days" : "Scadenza predefinita delle nuove condivisioni in giorni",
"Expire shares after x days" : "Scadenza delle condivisioni dopo x giorni",
@@ -313,6 +323,7 @@
"Set default expiration date for shares via link or mail" : "Imposta la data di scadenza predefinita per le condivisioni tramite link o posta",
"Default expiration time of shares in days" : "Scadenza predefinita delle condivisioni in giorni",
"Privacy settings for sharing" : "Impostazioni sulla privacy per la condivisione",
+ "Allow account name autocompletion in share dialog and allow access to the system address book" : "Consenti il ​​completamento automatico del nome dell'account nella finestra di dialogo di condivisione e consenti l'accesso alla rubrica di sistema",
"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 email (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)",
@@ -346,6 +357,7 @@
"No apps found for your version" : "Nessuna applicazione trovata per la tua versione",
"_%n app has an update available_::_%n apps have an update available_" : ["%n applicazione ha un aggiornamento disponibile","%n applicazioni hanno un aggiornamento disponibile","%n applicazioni hanno un aggiornamento disponibile"],
"_Update_::_Update all_" : ["Aggiorna","Aggiorna","Aggiorna tutto"],
+ "Failed to load groups" : "Impossibile caricare i gruppi",
"Failed to create group" : "Creazione gruppo fallita",
"Create group" : "Crea gruppo",
"Group name" : "Nome del gruppo",
@@ -353,64 +365,6 @@
"Loading groups…" : "Caricamento gruppi...",
"Nothing to show" : "Niente da mostrare",
"Loading" : "Caricamento",
- "Carousel" : "Carosello",
- "Daemon" : "Demone",
- "Type" : "Tipo",
- "Display Name" : "Nome visualizzato",
- "Learn more" : "Scopri altro",
- "Confirm" : "Conferma",
- "Cancel" : "Annulla",
- "Description" : "Descrizione",
- "View in store" : "Visualizza nell'archivio",
- "Visit website" : "Visita il sito web",
- "Usage documentation" : "Manuale d'uso",
- "Admin documentation" : "Documentazione di amministrazione",
- "Developer documentation" : "Documentazione dello sviluppatore",
- "Details" : "Dettagli",
- "All" : "Tutti",
- "Limit app usage to groups" : "Limita l'utilizzo dell'applicazione a gruppi",
- "No results" : "Nessun risultato",
- "Update to {version}" : "Aggiorna a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione minima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione massima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Questa applicazione non può essere installata perché le seguenti dipendenze non sono soddisfatte:",
- "Author" : "Autore",
- "Categories" : "Categorie",
- "Resources" : "Risorse",
- "Documentation" : "Documentazione",
- "Interact" : "Interagisci",
- "Report a bug" : "Segnala un bug",
- "Request feature" : "Richiedi funzionalità",
- "Ask questions or discuss" : "Domanda o discuti",
- "Rate the app" : "Valuta l'applicazione",
- "Rate" : "Valuta",
- "Changelog" : "Novità",
- "Google Chrome for Android" : "Google Chrome per Android",
- "{productName} iOS app" : "Applicazione iOS di {productName}",
- "{productName} Android app" : "Applicazione Android di {productName}",
- "{productName} Talk for iOS" : "{productName} Talk per iOS",
- "{productName} Talk for Android" : "{productName} Talk per Android",
- "Sync client" : "Client di sincronizzazione",
- "This session" : "Questa sessione",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nome dispositivo",
- "Cancel renaming" : "Annulla la rinomina",
- "Save new name" : "Salva nuovo nome",
- "Marked for remote wipe" : "Marcato come cancellazione remota",
- "Device settings" : "Impostazioni dei dispositivi",
- "Allow filesystem access" : "Consenti accesso al filesystem",
- "Rename" : "Rinomina",
- "Revoke" : "Revoca",
- "Wipe device" : "Cancella dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "La revoca di questo token potrebbe impedire la cancellazione del tuo dispositivo se non ha ancora iniziato la cancellazione.",
- "Device" : "Dispositivo",
- "Last activity" : "Ultima attività",
- "Devices & sessions" : "Dispositivi e sessioni",
- "Web, desktop and mobile clients currently logged in to your account." : "Client web, desktop e mobile attualmente connessi al tuo account.",
- "Error while creating device token" : "Errore durante la creazione del token di dispositivo",
- "App name" : "Nome applicazione",
- "Create new app password" : "Crea nuova password di applicazione",
"App password copied!" : "Password dell'applicazione copiata!",
"Copy app password" : "Copia password dell'applicazione",
"Login name copied!" : "Nome di accesso copiato!",
@@ -421,6 +375,7 @@
"Password" : "Password",
"Show QR code for mobile apps" : "Mostra il codice QR per le applicazioni mobili",
"Use system cron service to call the cron.php file every 5 minutes." : "Usa il servizio cron di sistema per invocare il file cron.php ogni 5 minuti.",
+ "The cron.php needs to be executed by the system account \"{user}\"." : "Il cron.php deve essere eseguito dall'account di sistema \"{user}\".",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "È necessaria l'estensione POSIX di PHP. Vedi la {linkstart}documentazione di PHP{linkend} per maggiori dettagli.",
"Unable to update background job mode" : "Impossibile aggiornare la modalità delle operazioni in background",
"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." : "Per un buon funzionamento del server, è importante configurare le operazioni in background correttamente. \"Cron\" è l'impostazione consigliata. Vedi la documentazione per ulteriori informazioni.",
@@ -432,6 +387,7 @@
"Cron (Recommended)" : "Cron (Consigliato)",
"Unable to update profile default setting" : "Impossibile aggiornare l'impostazione predefinita del profilo",
"Profile" : "Profilo",
+ "Password confirmation is required" : "La conferma della password è richiesta",
"Unable to update server side encryption config" : "Impossibile aggiornare la configurazione della crittografia lato server",
"Server-side encryption" : "Cifratura lato server",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La cifratura lato server rende possibile cifrare i file caricati sul server. Ciò presenta dei limiti, come una riduzione delle prestazioni, perciò abilita questa funzione solo se necessario.",
@@ -446,148 +402,11 @@
"Be aware that encryption always increases the file size." : "Considera che la cifratura incrementa sempre la dimensione dei file.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Ti consigliamo di creare copie di sicurezza dei tuoi dati con regolarità, in caso di utilizzo della cifratura, assicurati di creare una copia delle chiavi di cifratura insieme ai tuoi dati.",
"This is the final warning: Do you really want to enable encryption?" : "Questo è l'ultimo avviso: vuoi davvero abilitare la cifratura?",
- "Failed to remove group \"{group}\"" : "Rimozione del gruppo \"{group}\" fallita",
"Please confirm the group removal" : "Conferma la rimozione del gruppo",
+ "Cancel" : "Annulla",
+ "Confirm" : "Conferma",
"Submit" : "Invia",
"Rename group" : "Rinomina gruppo",
- "Remove group" : "Rimuovi gruppo",
- "Current password" : "Password attuale",
- "New password" : "Nuova password",
- "Change password" : "Modifica password",
- "Choose your profile picture" : "Scegli la tua immagine del profilo",
- "Please select a valid png or jpg file" : "Scegli un file png o jpg valido",
- "Error setting profile picture" : "Errore durante l'impostazione dell'immagine del profilo",
- "Error cropping profile picture" : "Errore durante il ritaglio dell'immagine del profilo",
- "Error saving profile picture" : "Errore durante il salvataggio dell'immagine del profilo",
- "Error removing profile picture" : "Errore durante la rimozione dell'immagine del profilo",
- "Your profile picture" : "La tua immagine del profilo",
- "Upload profile picture" : "Carica immagine del profilo",
- "Choose profile picture from Files" : "Scegli immagine del profilo da File",
- "Remove profile picture" : "Rimuovi immagine del profilo",
- "The file must be a PNG or JPG" : "Il file deve essere una PNG o JPG",
- "Picture provided by original account" : "Immagine fornita dall'account originale",
- "Set as profile picture" : "Imposta come immagine del profilo",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Tieni presente che possono essere necessarie fino a 24 ore prima che l'immagine del profilo venga aggiornata dappertutto.",
- "You are a member of the following groups:" : "Sei un membro dei seguenti gruppi:",
- "Your full name" : "Il tuo nome completo",
- "Email options" : "Opzioni email",
- "Remove primary email" : "Rimuovi email principale",
- "Delete email" : "Elimina email",
- "This address is not confirmed" : "Questo indirizzo non è confermato",
- "Unset as primary email" : "Togli dall'email principale",
- "Set as primary email" : "Imposta come email principale",
- "Additional email address {index}" : "Indirizzo email aggiuntivo {index}",
- "Unable to delete primary email address" : "Impossibile eliminare l'indirizzo di posta principale",
- "Unable to update primary email address" : "Impossibile aggiornare l'indirizzo di posta principale",
- "Unable to add additional email address" : "Impossibile aggiungere l'indirizzo di posta aggiuntivo",
- "Unable to update additional email address" : "Impossibile aggiornare l'indirizzo di posta aggiuntivo",
- "Unable to delete additional email address" : "Impossibile eliminare l'indirizzo di posta aggiuntivo",
- "Primary email for password reset and notifications" : "Email principale per ripristino della password e notifiche",
- "No email address set" : "Nessun indirizzo email impostato",
- "Your handle" : "Il tuo collegamento",
- "Your headline" : "Il tuo titolo",
- "Unable to update language" : "Impossibile aggiornare la lingua",
- "Languages" : "Lingue",
- "Help translate" : "Migliora la traduzione",
- "No language set" : "Nessuna lingua impostata",
- "Unable to update locale" : "Impossibile aggiornare la lingua",
- "Week starts on {firstDayOfWeek}" : "La settimana inizia: {firstDayOfWeek}",
- "No locale set" : "Nessuna lingua impostata",
- "Your city" : "La tua città",
- "Your organisation" : "La tua organizzazione",
- "Your phone number" : "Il tuo numero di telefono",
- "Edit your Profile visibility" : "Modifica la visibilità del profilo",
- "Unable to update profile enabled state" : "Impossibile aggiornare lo stato di attivazione del profilo",
- "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." : "L'impostazione più restrittiva di visibilità o ambito è rispettata sul tuo profilo. Ad esempio, quando la visibilità è su \"Mostra a tutti\" e l'ambito è su \"Privato\", verrà rispettato \"Privato\".",
- "Unable to update visibility of {displayId}" : "Impossibile aggiornare la visibilità di {displayId}",
- "Your role" : "Il tuo ruolo",
- "Your X (formerly Twitter) handle" : "Il tuo handle di X (ex Twitter)",
- "Your website" : "Il tuo sito web",
- "Invalid value" : "Valore non valido",
- "Unable to update {property}" : "Impossibile aggiornare {property}",
- "No {property} set" : "Nessun {property} impostato",
- "Change scope level of {property}, current scope is {scope}" : "Cambia libello di ambito di {property}, l'attuale ambito è {scope}",
- "Unable to update federation scope of the primary {property}" : "Impossibile aggiornare l'ambito federativo del {property} primario",
- "Unable to update federation scope of additional {property}" : "Impossibile aggiornare l'ambito federativo del {property} aggiuntivo",
- "Add additional email" : "Aggiungi email aggiuntiva",
- "Add" : "Aggiungi",
- "Create" : "Crea",
- "Change" : "Modifica",
- "Delete" : "Elimina",
- "Reshare" : "Ri-condividi",
- "Default language" : "Lingua predefinita",
- "Common languages" : "Lingue comuni",
- "Other languages" : "Altre lingue",
- "Password change is disabled because the master key is disabled" : "La modifica della password è disabilitata poiché la chiave principale è disabilitata",
- "Loading accounts …" : "Caricamento account in corso...",
- "Manager" : "Responsabile",
- "New account" : "Nuovo account",
- "Display name" : "Nome visualizzato",
- "Either password or email is required" : "La password o l'email è necessaria",
- "Password (required)" : "Password (richiesta)",
- "Email (required)" : "Email (richiesta)",
- "Email" : "Posta elettronica",
- "Quota" : "Quote",
- "Language" : "Lingua",
- "Set default language" : "Imposta lingua predefinita",
- "Total rows summary" : "Riepilogo totale delle righe",
- "Scroll to load more rows" : "Scorri per caricare più righe",
- "Password or insufficient permissions message" : "Messaggio password o permessi insufficienti",
- "Avatar" : "Avatar",
- "Account name" : "Nome account",
- "Group admin for" : "Amministratore per il gruppo",
- "Storage location" : "Posizione di archiviazione",
- "Last login" : "Ultimo accesso",
- "Account actions" : "Azioni account",
- "{size} used" : "{size} utilizzati",
- "Delete account" : "Elimina account",
- "Disable account" : "Disabilita account",
- "Enable account" : "Abilita account",
- "Resend welcome email" : "Invia nuovamente email di benvenuto",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In caso di smarrimento di un dispositivo o uscita dall'organizzazione, questa funzione può cancellare a distanza i dati di Nextcloud da tutti i dispositivi associati a {userid}. Funziona solo se i dispositivi sono connessi a Internet.",
- "Remote wipe of devices" : "Cancellazione remota dei dispositivi",
- "Wipe {userid}'s devices" : "Cancella i dispositivi di {userid}",
- "Wiped {userid}'s devices" : "Dispositivi di {userid} cancellati",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Elimina completamente l'account {userid} inclusi tutti i file personali, i dati delle applicazioni, ecc.",
- "Account deletion" : "Eliminazione account",
- "Delete {userid}'s account" : "Elimina l'account di {userid}",
- "Display name was successfully changed" : "Nome visualizzato modificato correttamente",
- "Password was successfully changed" : "Password modificata correttamente",
- "Email was successfully changed" : "Email modificata correttamente",
- "Welcome mail sent!" : "Email di benvenuto inviata!",
- "Change display name" : "Cambia nome visualizzato",
- "Set new password" : "Imposta una nuova password",
- "Set new email address" : "Imposta un nuovo indirizzo email",
- "Set the language" : "Imposta la lingua",
- "Done" : "Completato",
- "Edit" : "Modifica",
- "Visibility" : "Visibilità",
- "Show language" : "Mostra lingua",
- "Show storage path" : "Mostra percorso di archiviazione",
- "Show last login" : "Mostra ultimo accesso",
- "Sorting" : "Ordina",
- "By member count" : "Per numero di partecipanti",
- "By name" : "Per nome",
- "Send email" : "Invia email",
- "Send welcome email to new accounts" : "Invia email di benvenuto ai nuovi utenti",
- "Defaults" : "Predefiniti",
- "Default quota" : "Quota predefinita",
- "Select default quota" : "Seleziona la quota predefinita",
- "Server error while trying to complete WebAuthn device registration" : "Errore del server durante il tentativo di completare la registrazione del dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "L'autenticazione senza password richiede una connessione sicura.",
- "Add WebAuthn device" : "Aggiungi dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorizza il tuo dispositivo WebAuthn.",
- "Adding your device …" : "Aggiunta del tuo dispositivo…",
- "Unnamed device" : "Dispositivo senza nome",
- "Passwordless Authentication" : "Autenticazione senza password",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configura il tuo account per l'autenticazione senza password seguendo lo standard FIDO2.",
- "No devices configured." : "Nessun dispositivo configurato.",
- "The following devices are configured for your account:" : "I seguenti dispositivi sono configurati per il tuo account:",
- "Your browser does not support WebAuthn." : "Il tuo browser non supporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "In qualità di amministratore puoi configurare in modo granulare il comportamento della condivisione. Vedi la documentazione per ulteriori informazioni.",
- "You need to enable the File sharing App." : "Devi attivare l'applicazione Condivisione file.",
- "App Store" : "App Store",
- "Admins" : "Amministratori",
"Sending…" : "Invio in corso...",
"Email sent" : "Email inviata",
"Location" : "Posizione",
@@ -595,6 +414,7 @@
"About" : "Informazioni",
"Full name" : "Nome completo",
"Additional email" : "Email aggiuntiva",
+ "Email" : "Posta elettronica",
"Fediverse (e.g. Mastodon)" : "Fediverso (es. Mastodon)",
"Headline" : "Titolo",
"Organisation" : "Organizzazione",
@@ -604,6 +424,7 @@
"X (formerly Twitter)" : "X (ex Twitter)",
"Website" : "Sito web",
"Profile visibility" : "Visibilità del profilo",
+ "Language" : "Lingua",
"Locale" : "Localizzazione",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Non disponibile poiché questa proprietà è necessaria per funzioni di base inclusi la condivisione di file e gli inviti via calendario.",
"Your apps" : "Le tue applicazioni",
@@ -616,11 +437,13 @@
"Show to everyone" : "Mostra a tutti",
"Show to logged in accounts only" : "Mostra solo agli account che hanno effettuato l'accesso",
"Hide" : "Nascondi",
+ "Update to {version}" : "Aggiorna a {version}",
"Download and enable" : "Scarica e abilita",
"Disable" : "Disabilita",
"Allow untested app" : "Consenti applicazione non verificata",
"The app will be downloaded from the App Store" : "L'applicazione sarà scaricata dal negozio delle applicazioni",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Questa applicazione non è marcata come compatibile con la tua versione di Nextcloud. Se continui sarai ancora in grado di installare l'applicazione. Nota che l'applicazione potrebbe non funzionare come previsto.",
+ "{size} used" : "{size} utilizzati",
"Unknown" : "Sconosciuto",
"Never" : "Mai",
"An error occurred during the request. Unable to proceed." : "Si è verificato un errore durante la richiesta. Impossibile continuare.",
@@ -634,8 +457,10 @@
"Error while updating device token scope" : "Errore durante l'aggiornamento del campo del token del dispositivo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Sono arrivate troppe richieste dalla tua rete. Riprova più tardi o contatta il tuo amministratore se questo è un errore.",
"Error" : "Errore",
+ "Default quota" : "Quota predefinita",
"Account documentation" : "Documentazione dell'account",
"Administration documentation" : "Documentazione di amministrazione",
+ "Documentation" : "Documentazione",
"Forum" : "Forum",
"General documentation" : "Documentazione generale",
"Legal notice" : "Avviso legale",
@@ -656,6 +481,7 @@
"SMTP Password" : "Password SMTP",
"Save" : "Salva",
"Test and verify email settings" : "Prova e verifica impostazioni email",
+ "Send email" : "Invia email",
"Security & setup warnings" : "Avvisi di sicurezza e di configurazione",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "È importante per la sicurezza e le prestazioni della tua istanza che tutto sia configurato correttamente. Per aiutarti in questo senso, stiamo eseguendo alcuni controlli automatici. Vedi la documentazione collegata per ulteriori informazioni.",
"All checks passed." : "Tutti i controlli passati.",
@@ -674,44 +500,9 @@
"Use a second factor besides your password to increase security for your account." : "Utilizza un secondo fattore oltre alla tua password per aumentare la sicurezza per il tuo account.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Se utilizzi applicazioni di terze parti per connetterti a Nextcloud, assicurati di creare e configurare una password per ciascuna applicazione prima di abilitare l'autenticazione a due fattori.",
"Logged in account must be a subadmin" : "L'account che ha eseguito l'accesso deve essere un sotto-amministratore",
- "Missing optional index \"%s\" in table \"%s\"." : "Manca l'indice facoltativo \"%s\" nella tabella \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Nel database mancano alcuni indici. Poiché l'aggiunta di indici su tabelle grandi può richiedere del tempo, non sono stati aggiunti automaticamente. Eseguendo \"occ db:add-missing-indices\", gli indici mancanti possono essere aggiunti manualmente mentre l'istanza è in esecuzione. Una volta che gli indici sono stati aggiunti, le interrogazioni a tali tabelle sono solitamente più veloci.",
"File locking" : "Blocco dei file",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Il blocco di file transazionale è disattivato, ciò potrebbe comportare problemi di race condition. Attiva \"filelocking.enabled\" nel config.php per evitare questi problemi.",
"The PHP memory limit is below the recommended value of %s." : "Il limite di memoria di PHP è inferiore al valore consigliato di %s.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Attualmente stai usando PHP %s. PHP 8.0 è deprecato in Nextcloud 27. Nextcloud 28 potrebbe richiedere almeno PHP 8.1. Aggiorna ad una delle versioni di PHP supportate ufficialmente fornite dal Gruppo PHP il prima possibile.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Stai usando la versione \"%s\" di MariaDB. Nextcloud 21 e successivi non supportano questa versione e richiedono MariaDB 10.2 o successivi.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Stai usando la versione \"%s\" di MySQL. Nextcloud 21 e successivi non supportano questa versione e richiedono MySQL 8.0 o MariaDB 10.2 o successivi.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Stai usando la versione \"%s\" di PostgreSQL. Nextcloud 21 e successivi non supportano questa versione e richiedono PostgreSQL 9.6 o successivi.",
- "Speech-To-Text" : "Riconoscimento vocale",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Il riconoscimento vocale può essere implementato da diverse applicazioni. Qui puoi impostare quale applicazioni usare.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Nessuna delle applicazioni installate integra la funzionalità di riconoscimento vocale",
- "None of your currently installed apps provide Text processing functionality" : "Nessuna delle applicazioni installate integra la funzionalità elaborazione del testo",
- "Set default expiration date for shares" : "Imposta data di scadenza predefinita per le condivisioni",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permetti l'autocompletamento dei nomi utente nella finestra di condivisione e l'accesso alla rubrica di sistema",
- "Your biography" : "La tua biografia",
- "You are using <strong>{usage}</strong>" : "Stai utilizzando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Stai utilizzando <strong>{usage}</strong> di <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Imposta responsabile utente",
- "Username will be autogenerated" : "Il nome utente verrà autogenerato",
- "Username (required)" : "Nome utente (richiesto)",
- "New user" : "Nuovo utente",
- "Groups (required)" : "Gruppi (richiesto)",
- "Set user groups" : "Imposta gruppi utente",
- "Administered groups" : "Gruppi amministrati",
- "Set user as admin for …" : "Imposta utente come admin di …",
- "Set user quota" : "Imposta quota utente",
- "Add new user" : "Aggiungi nuovo utente",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} utente …","{userCount} utenti …","{userCount} utenti …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} utente","{userCount} utenti","{userCount} utenti"],
- "Loading users …" : "Caricamento utenti …",
- "Username" : "Nome utente",
- "User backend" : "Motore utente",
- "User actions" : "Azioni utente",
- "Add user to group" : "Aggiungi utente al gruppo",
- "Server error while trying to add WebAuthn device" : "Errore del server durante il tentativo di aggiungere il dispositivo WebAuthn",
- "Name your device" : "Nome del tuo dispositivo",
- "Active accounts" : "Account attivi",
- "Follow us on Twitter" : "Seguici su Twitter!"
+ "Set default expiration date for shares" : "Imposta data di scadenza predefinita per le condivisioni"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/ja.js b/apps/settings/l10n/ja.js
index ee3b0c11ca0..ca6c5a55880 100644
--- a/apps/settings/l10n/ja.js
+++ b/apps/settings/l10n/ja.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP ヘッダー",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP ヘッダーが `%2$s` に設定されていません。この設定を調整することが推奨されているため、一部の機能が正しく動作しない可能性があります。",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP ヘッダーが `%2$s` に設定されていません。これはセキュリティやプライバシーのリスクとなる可能性があるため、この設定を調整することが推奨されています。",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP ヘッダーに `%2$s` が含まれていません。これはセキュリティやプライバシーのリスクとなる可能性があるため、この設定を調整することが推奨されています。",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP ヘッダーが `%2$s`, `%3$s`, `%4$s`, `%5$s` または `%6$s`. に設定されていません。これにより、リファラー情報が漏れる可能性があります。詳しくは {w3c-recommendation} を参照してください。",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTPヘッダーが少なくとも `%d` 秒に設定されていません(現在の値:`%d`)。セキュリティを強化するために、長期間のHSTSポリシーを使用することを推奨します。",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTPヘッダーが不正です: `%s`。セキュリティを強化するために、HSTSを有効にすることを推奨します。",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "アーキテクチャ",
"64-bit" : "64ビット",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "このシステムは32ビット版のPHPで動いているようです。Nextcloudを正常に動かすには64ビット版が必要です。OSとPHPを64ビット版にアップグレードしてください!",
+ "Task Processing pickup speed" : "タスク処理のピックアップ速度",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["直近の%n時間に予定されたタスクはありません。"],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["タスクのピックアップ速度は、過去%n時間に問題ありませんでした。"],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["過去%n時間タスクのピックアップ速度が遅くなっています。多くのタスクが取得に4分以上かかりました。バックグラウンドでタスクを処理するようにワーカーを設定することを検討してください。"],
"Temporary space available" : "テンポラリ領域が利用可能です",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "PHP のテンポラリパスのチェック中にエラーが発生しました - ディレクトリが正しく設定されていませんでした。返された値:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHPの関数 \"disk_free_space\"が無効になっており、一時的なディレクトリに十分な空き容量があるかどうかをチェックできません。",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "アプリストアからセクションの内容を読み込めませんでした。",
"Loading" : "読み込み中",
"Fetching the latest news…" : "最新のニュースを取得しています...",
- "Carousel" : "カルーセル",
- "Previous slide" : "前のスライド",
- "Next slide" : "次のスライド",
- "Choose slide to display" : "表示するスライドを選択",
- "{index} of {total}" : "{total} のうち {index}",
- "Daemon" : "デーモン",
- "Deploy Daemon" : "デーモンのデプロイ",
- "Type" : "タイプ",
- "Display Name" : "表示名",
- "GPUs support" : "GPUサポート",
- "Compute device" : "計算デバイス",
- "Advanced deploy options" : "高度なデプロイオプション",
- "Edit ExApp deploy options before installation" : "インストール前にExAppの配置オプションを編集する",
- "Configured ExApp deploy options. Can be set only during installation" : "ExAppのデプロイオプションを設定。インストール時にのみ設定可能です",
- "Learn more" : "もっと見る",
- "Environment variables" : "環境変数",
- "ExApp container environment variables" : "ExAppコンテナ環境変数",
- "No environment variables defined" : "環境変数が定義されていません",
- "Mounts" : "マウント",
- "Define host folder mounts to bind to the ExApp container" : "ExAppコンテナにバインドするホストフォルダマウントの定義",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "ExAppをインストールする前に、Deployデーモンホスト上に存在する必要があります",
- "Host path" : "ホストパス",
- "Container path" : "コンテナパス",
- "Read-only" : "読み込み専用",
- "Remove mount" : "マウントを削除",
- "New mount" : "新しいマウント",
- "Enter path to host folder" : "ホストフォルダへのパスを入力してください",
- "Enter path to container folder" : "コンテナフォルダへのパスを入力してください",
- "Toggle read-only mode" : "読み取り専用モードの切り替え",
- "Confirm adding new mount" : "新しいマウントの追加を確認",
- "Confirm" : "承認",
- "Cancel adding mount" : "マウントの追加をキャンセル",
- "Cancel" : "キャンセル",
- "Add mount" : "マウントを追加",
- "ExApp container mounts" : "ExAppコンテナのマウント",
- "No mounts defined" : "マウントが定義されていません",
- "Description" : "説明",
- "View in store" : "ストア内で表示",
- "Visit website" : "ウェブサイトを表示",
- "Usage documentation" : "利用ドキュメント",
- "Admin documentation" : "管理者ドキュメント",
- "Developer documentation" : "開発者ドキュメント",
- "Details" : "詳細",
- "All" : "すべて",
- "Limit app usage to groups" : "アプリの使用をグループに制限する",
- "No results" : "該当なし",
- "Update to {version}" : "{version} にアップデート",
- "Deploy options" : "デプロイオプション",
- "Default Deploy daemon is not accessible" : "デフォルトのデプロイデーモンにアクセスできません",
- "Delete data on remove" : "削除時にデータを消去する",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud の最小バージョンが指定されていません.将来、エラーが発生する可能性があります.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud バージョンの上限が指定されていません.将来、エラーが発生する可能性があります.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係が満たされないためこのアプリをインストールできません:",
- "Latest updated" : "最新の更新",
- "Author" : "作者",
- "Categories" : "カテゴリ",
- "Resources" : "リソース",
- "Documentation" : "ドキュメント",
- "Interact" : "対話する",
- "Report a bug" : "不具合を報告",
- "Request feature" : "新機能をリクエストする",
- "Ask questions or discuss" : "質問するか議論する",
- "Rate the app" : "アプリを評価する",
- "Rate" : "評価",
- "Changelog" : "変更履歴",
- "Google Chrome for Android" : "Android用Google Chrome",
- "{productName} iOS app" : "{productName} iOSアプリ",
- "{productName} Android app" : "{productName} Androidアプリ",
- "{productName} Talk for iOS" : "{productName} iOS用Talk",
- "{productName} Talk for Android" : "{productName} Android用Talk",
- "Sync client" : "同期クライアント",
- "This session" : "本セッション",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "デバイス名",
- "Cancel renaming" : "リネームをキャンセル",
- "Save new name" : "新しい名前を保存する",
- "Marked for remote wipe" : "リモートワイプ用にマーク",
- "Device settings" : "デバイスの設定",
- "Allow filesystem access" : "ファイルシステムへのアクセスを許可",
- "Rename" : "名前を変更",
- "Revoke" : "取り消す",
- "Wipe device" : "デバイスをワイプ",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "ワイプが開始されていない場合、このトークンを無効にすると端末のワイプが無効になる可能性があります。",
- "Device" : "デバイス",
- "Last activity" : "最後のアクティビティ",
- "Devices & sessions" : "デバイスとセッション",
- "Web, desktop and mobile clients currently logged in to your account." : "現在、Web、デスクトップ、モバイルアプリであなたのアカウントにログインしている端末一覧です。",
- "Error while creating device token" : "デバイストークンの作成中にエラーが発生しました",
- "App name" : "アプリ名",
- "Create new app password" : "新しいアプリパスワードを作成",
"App password copied!" : "アプリパスワードをコピーしました!",
"Copy app password" : "アプリパスワードをコピー",
"Login name copied!" : "ログイン名をコピーしました!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "プロフィールのデフォルト設定を更新できませんでした",
"Profile" : "プロフィール",
"Enable or disable profile by default for new accounts." : "新しいアカウントの場合、デフォルトでプロフィールを有効または無効にします。",
+ "Password confirmation is required" : "パスワードの確認が必要です",
"Failed to save setting" : "設定の保存に失敗しました",
"{app}'s declarative setting field: {name}" : "{app}の宣言的設定フィールド: {name}",
"Unable to update server side encryption config" : "サーバー側暗号化の設定を更新できませんでした",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "暗号化した場合には必ず、あなたのデータと共に暗号化キーをバックアップすることを確認し、定期的にデータをバックアップを作成することをお勧めします。",
"Refer to the admin documentation on how to manually also encrypt existing files." : "既存のファイルを手動で暗号化する方法については、管理者のドキュメントを参照してください。",
"This is the final warning: Do you really want to enable encryption?" : "これが最後の警告です:本当に暗号化を有効にしますか?",
- "Failed to remove group \"{group}\"" : "グループ \"{group}\" の削除に失敗しました",
+ "Failed to delete group \"{group}\"" : "グループ \"{group}\"の削除に失敗しました",
"Please confirm the group removal" : "グループの削除を確認してください",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "グループ \"{group}\" を削除しようとしています。アカウントは削除されません。",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "グループ \"{group}\" を削除しようとしています。アカウントは削除されません。",
+ "Cancel" : "キャンセル",
+ "Confirm" : "承認",
"Submit" : "送信",
"Rename group" : "グループの名称変更",
- "Remove group" : "グループを削除",
- "Current password" : "現在のパスワード",
- "New password" : "新しいパスワード",
- "Change password" : "パスワードを変更",
- "Choose your profile picture" : "プロフィール画像を選択",
- "Please select a valid png or jpg file" : "pngもしくは、jpgファイルを選択してください",
- "Error setting profile picture" : "プロフィール画像に設定できませんでした",
- "Error cropping profile picture" : "プロフィール画像を切り取れませんでした",
- "Error saving profile picture" : "プロフィール画像を保存できませんでした",
- "Error removing profile picture" : "プロフィール画像を削除できませんでした",
- "Your profile picture" : "プロフィール画像",
- "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" : "オリジナルのアカウントで提供されている写真",
- "Set as profile picture" : "プロフィール画像として設定",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "プロフィール写真がすべての場所で更新されるまで、最大 24 時間かかる場合があることに注意してください。",
- "Your biography. Markdown is supported." : "あなたの経歴。Markdownに対応しています。",
- "Unable to update date of birth" : "生年月日の更新ができません",
- "Enter your date of birth" : "生年月日を入力してください",
- "You are using {s}{usage}{/s}" : "{s}{usage}{/s}使用中です",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "{s}{totalSpace}{/s} ({s}{usageRelative}%{/s})のうち{s}{usage}{/s}を使用しています",
- "You are a member of the following groups:" : "次のグループに所属:",
- "Your full name" : "フルネーム",
- "Email options" : "メールのオプション",
- "Options for additional email address {index}" : "追加メールアドレスのオプション {index}",
- "Remove primary email" : "基本メールアドレスを削除",
- "Delete email" : "メールアドレスを削除",
- "This address is not confirmed" : "このアドレスは確認できていません",
- "Unset as primary email" : "基本メールアドレスを解除",
- "Set as primary email" : "基本メールアドレスに設定",
- "Additional email address {index}" : "その他のメールアドレス {index}",
- "Unable to delete primary email address" : "基本メールアドレスを削除できませんでした",
- "Unable to update primary email address" : "基本メールアドレスを更新できませんでした",
- "Unable to add additional email address" : "その他のメールアドレスを追加できません",
- "Unable to update additional email address" : "その他のメールアドレスを更新できません",
- "Unable to delete additional email address" : "その他のメールアドレスを削除できません",
- "Primary email for password reset and notifications" : "パスワードのリセットや通知のための基本メールアドレス",
- "No email address set" : "メールアドレスが設定されていません",
- "Your handle" : "あなたのハンドル",
- "Derived from your locale ({weekDayName})" : "ユーザーのロケールから取得 ({weekDayName})",
- "Unable to update first day of week" : "週の最初の曜日を更新できません",
- "Day to use as the first day of week" : "週の最初の曜日として使用する日",
- "Your headline" : "あなたのヘッドライン",
- "Unable to update language" : "言語設定を更新できませんでした",
- "Languages" : "言語",
- "Help translate" : "翻訳に協力する",
- "No language set" : "言語設定なし",
- "Unable to update locale" : "ロケールを更新できませんでした",
- "Locales" : "ロケール",
- "Week starts on {firstDayOfWeek}" : "週の始まりは{firstDayOfWeek}です。",
- "No locale set" : "ロケールは未設定",
- "Your city" : "あなたの都道府県",
- "Your organisation" : "あなたの組織",
- "Your phone number" : "あなたの電話番号",
- "Edit your Profile visibility" : "プロフィールの公開範囲を変更",
- "Unable to update profile enabled state" : "プロフィールを公開できません",
- "Enable profile" : "プロフィールを有効化",
- "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." : "プロフィール公開ページは、可視性またはスコープのより制限的な設定が優先されます。たとえば、可視性が「全員に表示」に設定され、スコープが「プライベート」に設定されている場合、「プライベート」が尊重されます。",
- "Unable to update visibility of {displayId}" : "{displayId}の表示範囲を更新できませんでした",
- "she/her" : "彼女",
- "he/him" : "彼",
- "they/them" : "彼ら/彼女ら",
- "Your role" : "あなたの役",
- "Your X (formerly Twitter) handle" : "あなたの X (旧 Twitter) のハンドルネーム",
- "Your website" : "あなたの個人ウェブサイト",
- "Invalid value" : "無効な値",
- "Unable to update {property}" : "{property}を更新できませんでした",
- "No {property} set" : "{property} は未設定",
- "Change scope level of {property}, current scope is {scope}" : "{property}の公開範囲を変更、現在の公開範囲は{scope}です",
- "Unable to update federation scope of the primary {property}" : "プライマリー{property}のフェデレーションスコープを更新できませんでした",
- "Unable to update federation scope of additional {property}" : "追加の{property}のフェデレーションスコープを更新できませんでした",
- "Add additional email" : "その他メールアドレスを追加",
- "Add" : "追加",
- "Create" : "作成",
- "Change" : "変更",
- "Delete" : "削除",
- "Reshare" : "再共有",
- "Default language" : "デフォルトの言語",
- "Common languages" : "共通言語",
- "Other languages" : "他の言語",
- "Password change is disabled because the master key is disabled" : "マスターキーが無効になっているため、パスワードの変更は無効です",
- "No accounts" : "アカウントはありません",
- "Loading accounts …" : "アカウントを読み込み中 ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "アカウントのリスト。このリストはパフォーマンス上の理由から完全にはレンダリングされません。アカウントはリスト内を移動するにつれてレンダリングされます。",
- "Manager" : "Manager",
- "Set line manager" : "ラインマネージャーを設定",
- "Account name will be autogenerated" : "アカウント名は自動生成されます",
- "Account name (required)" : "アカウント名(必須)",
- "Failed to search groups" : "グループの検索に失敗しました",
- "New account" : "新規アカウント",
- "Display name" : "表示名",
- "Either password or email is required" : "パスワードまたはEメールのいずれかが必要",
- "Password (required)" : "パスワード (必須)",
- "Email (required)" : "Eメール (必須)",
- "Email" : "メール",
- "Member of the following groups (required)" : "以下のグループのメンバー(必須)",
- "Member of the following groups" : "以下のグループのメンバー",
- "Set account groups" : "アカウントグループを設定する",
- "Admin of the following groups" : "以下のグループの管理者",
- "Set account as admin for …" : "アカウントを管理者に設定 ...",
- "Quota" : "クオータ",
- "Set account quota" : "アカウントクォータを設定する",
- "Language" : "言語",
- "Set default language" : "デフォルト言語の設定",
- "Add new account" : "新しいアカウントを追加する",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount}アカウント ..."],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount}アカウント"],
- "Total rows summary" : "総行数のサマリー",
- "Scroll to load more rows" : "スクロールしてより多くの行を読み込む",
- "Password or insufficient permissions message" : "パスワードまたは権限不足のメッセージ",
- "Avatar" : "アバター",
- "Account name" : "アカウント名",
- "Group admin for" : "グループの管理者",
- "Account backend" : "アカウントバックエンド",
- "Storage location" : "データの保存場所",
- "First login" : "初回ログイン",
- "Last login" : "最終ログイン",
- "Account actions" : "アカウント操作",
- "{size} used" : "{size} を使用中",
- "Delete account" : "アカウントの削除",
- "Disconnect all devices and delete local data" : "すべてのデバイスを切断し、ローカルデータを削除する",
- "Disable account" : "アカウントの無効化",
- "Enable account" : "アカウントの有効化",
- "Resend welcome email" : "ウェルカムメールを再送する",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "デバイスを紛失した場合や、組織外に出た場合、{userid}に関連付けられたすべてのデバイスからリモートで Nextcloud のデータを消去することができます。デバイスがインターネットに接続されている場合にのみ機能します。",
- "Remote wipe of devices" : "デバイスのリモートワイプ",
- "Wipe {userid}'s devices" : " {userid} のデバイスをワイプ",
- "Wiped {userid}'s devices" : "{userid} のデバイスを消去",
- "Failed to load groups with details" : "詳細を含むグループのロードに失敗しました",
- "Failed to load sub admin groups with details" : "サブ管理グループの詳細の読み込みに失敗しました",
- "Failed to update line manager" : "ラインマネージャの更新に失敗しました",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} の個人ファイルやアプリケーションデータなどを含むアカウントを完全に削除します。",
- "Account deletion" : "アカウント削除",
- "Delete {userid}'s account" : "{userid} のアカウントを削除する",
- "Display name was successfully changed" : "表示名は正常に変更されました",
- "Password can't be empty" : "パスワードは空にできません",
- "Password was successfully changed" : "パスワードは正常に変更されました",
- "Email can't be empty" : "メールアドレスは空にできません",
- "Email was successfully changed" : "Eメールは正常に変更されました",
- "Welcome mail sent!" : "ウェルカムメールを送信しました!",
- "Loading account …" : "アカウントを読み込み中 ...",
- "Change display name" : "表示名の変更",
- "Set new password" : "新しいパスワードの設定",
- "You do not have permissions to see the details of this account" : "このアカウントの詳細を表示する権限がありません",
- "Set new email address" : "新しいメールアドレスを設定",
- "Add account to group" : "アカウントをグループに追加",
- "Set account as admin for" : "アカウントを管理者に設定",
- "Select account quota" : "アカウントのクォータを選択",
- "Set the language" : "言語の設定",
- "Toggle account actions menu" : "アカウントアクションメニューの切り替え",
- "Done" : "完了",
- "Edit" : "編集",
- "Account management settings" : "アカウント管理設定",
- "Visibility" : "可視性",
- "Show language" : "言語を表示",
- "Show account backend" : "アカウントバックエンドを表示",
- "Show storage path" : "ストレージの場所を表示",
- "Show first login" : "初回ログインを表示",
- "Show last login" : "最終ログインを表示",
- "Sorting" : "並べ替え",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "システム設定により、名前によるグループのソートが強制されます。これはメンバー数の表示も無効にします。",
- "Group list sorting" : "グループリストのソート",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "並べ替えは、パフォーマンス上の理由から、現在ロードされているグループにのみ適用されます。グループは、リスト内を移動または検索すると読み込まれます。",
- "By member count" : "メンバー数別",
- "By name" : "名前で",
- "Send email" : "メールを送信",
- "Send welcome email to new accounts" : "新規アカウントにウェルカムメールを送る",
- "Defaults" : "初期値",
- "Default quota" : "デフォルトのクオータ",
- "Select default quota" : "デフォルトのクオータを選択",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn デバイス登録を完了しようとしたときのサーバーエラー",
- "Passwordless authentication requires a secure connection." : "パスワードレス認証では、安全な接続が必要です。",
- "Add WebAuthn device" : "WebAuthn デバイスの追加",
- "Please authorize your WebAuthn device." : "WebAuthn デバイスを認証してください。",
- "Adding your device …" : "あなたのデバイスを追加しています…",
- "Unnamed device" : "名称設定されていないデバイス",
- "Passwordless Authentication" : "パスワードレス認証",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "FIDO2 規格に準拠したパスワードレス認証のためのアカウントを設定します。",
- "No devices configured." : "設定されたデバイスはありません。",
- "The following devices are configured for your account:" : "アカウントには以下のデバイスが設定されています。",
- "Your browser does not support WebAuthn." : "お使いのブラウザーは WebAuthn をサポートしていません。",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "管理者であれば共有時の挙動を微調整できます。詳細な情報はドキュメントを参照してください。",
- "You need to enable the File sharing App." : "ファイル共有アプリを有効にする必要があります。",
- "App Store" : "アプリストア",
- "Loading app list" : "アプリ一覧を読み込み中",
- "Loading categories" : "カテゴリーの読み込み中",
- "Developer documentation ↗" : "開発者向けドキュメント ↗",
- "Version {version}, {license}-licensed" : "バージョン{version}, {license}ライセンス",
- "Version {version}" : "Version {version}",
- "All accounts" : "全てのアカウント",
- "Admins" : "管理者",
- "Account group: {group}" : "アカウントグループ: {group}",
- "Account management" : "アカウント管理",
+ "Delete group" : "グループを削除",
"Sending…" : "送信中 …",
"Email sent" : "メールを送信しました",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "パフォーマンス上の理由から、Nextcloudサーバーで暗号化を有効にすると、新規ファイルと変更されたファイルだけが暗号化されます。",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "生年月日",
"Full name" : "氏名",
"Additional email" : "その他のメールアドレス",
+ "Email" : "メール",
"Fediverse (e.g. Mastodon)" : "フェディバース (例: Mastdon)",
"Headline" : "ヘッドライン",
"Organisation" : "組織",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (旧 Twitter)",
"Website" : "ウェブサイト",
"Profile visibility" : "プロフィールの公開範囲",
+ "Language" : "言語",
"Locale" : "ロケール",
"First day of week" : "週の最初の曜日",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "このプロパティは、ファイル共有やカレンダーへの招待などのコア機能に必要なため、使用できません",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "ログインしているアカウントのみに表示する",
"Hide" : "隠す",
"Manually installed apps cannot be updated" : "手動インストールしたアプリはアップデートできません",
+ "Update to {version}" : "{version} にアップデート",
"{progress}% Deploying …" : "{progress}% デプロイ中 …",
"{progress}% Initializing …" : "{progress}% 初期化中 …",
"Health checking" : "ヘルスチェック",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "テストされていないアプリを許可する",
"The app will be downloaded from the App Store" : "このアプリは、アプリストアからダウンロードできます。",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "このアプリはご利用中のNextcloudのバージョンと互換性があるとしてマークされていません。 続行しても、アプリをインストールすることはできます。 アプリが期待通りに動作しない可能性があることに注意してください。",
+ "{size} used" : "{size} を使用中",
"Unknown" : "不明",
"Never" : "なし",
"Could not register device: Network error" : "デバイスを登録できませんでした: ネットワークエラー",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "グループのソートを設定できませんでした",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "ネットワークからのリクエストが多すぎました。このようなエラーが発生した場合は、後で再試行するか、管理者に連絡してください。",
"Error" : "エラー",
+ "Default quota" : "デフォルトのクオータ",
"Account documentation" : "アカウント・ドキュメント",
"Administration documentation" : "管理者ドキュメント",
+ "Documentation" : "ドキュメント",
"Forum" : "フォーラム",
"Nextcloud help & privacy resources" : "Nextcloudのヘルプとプライバシーに関するリソース",
"General documentation" : "一般的なドキュメント",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "SMTPパスワード",
"Save" : "保存",
"Test and verify email settings" : "メールのテストと検証設定",
+ "Send email" : "メールを送信",
"Security & setup warnings" : "セキュリティ&セットアップ警告",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "サーバーのセキュリティとパフォーマンスにとって重要なことは、すべてが正確に設定されていることです。あなたの助けとなるよう、Nextcloudでは一部の自動チェックを行っています。詳細な情報は、リンク先のドキュメントを参照してください。",
"All checks passed." : "すべてのチェックに合格しました。",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "アカウントのセキュリティを強化するには、パスワード以外に2番目の要素を使用してください。",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "サードパーティのアプリケーションを使用してNextcloudに接続する場合は、二要素認証を有効にする前に必ずそれぞれのアプリパスワードを作成して設定してください。",
"Logged in account must be a subadmin" : "ログインアカウントはサブ管理者である必要があります",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "このチェックを実行させるには、ウェブサーバが自分自身に接続できることを確認する必要があります。したがって、少なくとも `trusted_domains` または `overwrite.cli.url` を解決して接続できなければなりません。",
- "Missing optional index \"%s\" in table \"%s\"." : "オプションのインデックス \"%s\" がテーブル \"%s\"にありません",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 \"occ db:add-missing-indices\"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "このチェックを実行させるには、Webサーバーが自分自身に接続できることを確認しなければならない。そのため、少なくとも一つの `trusted_domains` または `overwrite.cli.url` を解決して接続できなければなりません。この失敗は、サーバ側のDNSの不一致やアウトバウンドファイアウォールルールの結果かもしれません。",
"File locking" : "ファイルロック",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "トランザクションファイルロックが無効になっているため、競合状態の問題が発生する可能性があります。これらの問題を回避するには、config.phpで \"filelocking.enabled\" を有効にします。",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "`trusted_domains` または `overwrite.cli.url` で JavaScript のサポートを確認できませんでした。これはサーバ側の DNS の不一致か、アウトバウンドファイアウォールルールの結果である可能性があります。お使いのウェブサーバーが JavaScript MIMEタイプを使用して `.mjs` ファイルを提供しているかどうかを手動で確認してください。",
"The PHP memory limit is below the recommended value of %s." : "PHPのメモリ制限が推奨値の%s以下です。",
"for WebAuthn passwordless login" : "WebAuthn パスワードレスログイン用",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn パスワードレスログインと、SFTPストレージ用",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "PHP %s を実行しています。PHP 8.0 は Nextcloud 27 では非推奨です。Nextcloud 28 では、少なくとも PHP 8.1 が必要になる可能性があります。PHP グループが公式にサポートする PHP のいずれかのバージョンにできるだけ早くアップグレードしてください。",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB のバージョン\"%s\" が使われています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MariaDB 10.2 以降のバージョンが必要になります。",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQLのバージョン \"%s\" が使用されています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MySQL 8.0またはMariaDB 10.2以上が必要となります。",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQLのバージョン \"%s\" を使用しています。Nextcloud 21以降ではこのバージョンのサポートは終了し、PostgreSQL 9.6以降が必要となります。",
- "Speech-To-Text" : "Speech-To-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text はさまざまなアプリで実装できます。ここでは、どのアプリを使用するかを設定できます。",
- "None of your currently installed apps provide Speech-To-Text functionality" : "現在インストールされているどのアプリも音声テキスト化機能(Speech-To-Text)を提供していません。",
- "None of your currently installed apps provide Text processing functionality" : "現在インストールされているどのアプリも、テキスト処理機能を提供していません",
- "Set default expiration date for shares" : "共有のデフォルトの有効期限を設定する",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "共有ダイアログでユーザー名の自動補完を許可し、システムのアドレス帳へのアクセスを許可する",
- "Your biography" : "あなたのプロファイル",
- "You are using <strong>{usage}</strong>" : "<strong>{usage}</strong>使用中です",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "<strong>{totalSpace}</strong> (<strong>{usageRelative}</strong>) のうち<strong>{usage}</strong>を使用しています",
- "Set user manager" : "ユーザーマネージャーを設定",
- "Username will be autogenerated" : "ユーザー名は自動生成されます",
- "Username (required)" : "ユーザー名 (必須)",
- "New user" : "新しいユーザー",
- "Groups (required)" : "グループ (必須)",
- "Set user groups" : "ユーザーグループの設定",
- "Administered groups" : "管理グループ",
- "Set user as admin for …" : "ユーザーを管理者に設定 ...",
- "Set user quota" : "ユーザークォータの設定",
- "Add new user" : "新規ユーザーの追加",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} ユーザー…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} ユーザー"],
- "Loading users …" : "Loading users …",
- "Username" : "ユーザーID",
- "User backend" : "ユーザーバックエンド",
- "User actions" : "ユーザーアクション",
- "Add user to group" : "ユーザーをグループに追加",
- "Server error while trying to add WebAuthn device" : "WebAuthn デバイスを追加しようとしたときのサーバーエラー",
- "Name your device" : "デバイスに名前をつける",
- "Active accounts" : "アクティブなアカウント",
- "Follow us on Twitter" : "Twitter でフォロー!",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "このチェックを実行させるには、Webサーバーが自分自身に接続できることを確認しなければならない。そのため、少なくとも一つの `trusted_domains` または `overwrite.cli.url` を解決して接続できなければなりません。この失敗は、サーバ側のDNSの不一致やアウトバウンドファイアウォールルールの結果かもしれません。",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP ヘッダーに `%2$s` が含まれていません。これはセキュリティやプライバシーのリスクとなる可能性があるため、この設定を調整することが推奨されています。",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQLのバージョン \"%s\"が検出されました。 このバージョンのNextcloudで最高のパフォーマンス、安定性、機能性を得るには、PostgreSQL >=12および<=16を推奨します。",
- "Failed to load subadmin groups with details" : "サブ管理者グループの詳細の読み込みに失敗しました"
+ "Set default expiration date for shares" : "共有のデフォルトの有効期限を設定する"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/ja.json b/apps/settings/l10n/ja.json
index c4a7d1e9a1e..a6b222ddaca 100644
--- a/apps/settings/l10n/ja.json
+++ b/apps/settings/l10n/ja.json
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP ヘッダー",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP ヘッダーが `%2$s` に設定されていません。この設定を調整することが推奨されているため、一部の機能が正しく動作しない可能性があります。",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP ヘッダーが `%2$s` に設定されていません。これはセキュリティやプライバシーのリスクとなる可能性があるため、この設定を調整することが推奨されています。",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP ヘッダーに `%2$s` が含まれていません。これはセキュリティやプライバシーのリスクとなる可能性があるため、この設定を調整することが推奨されています。",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP ヘッダーが `%2$s`, `%3$s`, `%4$s`, `%5$s` または `%6$s`. に設定されていません。これにより、リファラー情報が漏れる可能性があります。詳しくは {w3c-recommendation} を参照してください。",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTPヘッダーが少なくとも `%d` 秒に設定されていません(現在の値:`%d`)。セキュリティを強化するために、長期間のHSTSポリシーを使用することを推奨します。",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTPヘッダーが不正です: `%s`。セキュリティを強化するために、HSTSを有効にすることを推奨します。",
@@ -313,6 +312,10 @@
"Architecture" : "アーキテクチャ",
"64-bit" : "64ビット",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "このシステムは32ビット版のPHPで動いているようです。Nextcloudを正常に動かすには64ビット版が必要です。OSとPHPを64ビット版にアップグレードしてください!",
+ "Task Processing pickup speed" : "タスク処理のピックアップ速度",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["直近の%n時間に予定されたタスクはありません。"],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["タスクのピックアップ速度は、過去%n時間に問題ありませんでした。"],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["過去%n時間タスクのピックアップ速度が遅くなっています。多くのタスクが取得に4分以上かかりました。バックグラウンドでタスクを処理するようにワーカーを設定することを検討してください。"],
"Temporary space available" : "テンポラリ領域が利用可能です",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "PHP のテンポラリパスのチェック中にエラーが発生しました - ディレクトリが正しく設定されていませんでした。返された値:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHPの関数 \"disk_free_space\"が無効になっており、一時的なディレクトリに十分な空き容量があるかどうかをチェックできません。",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "アプリストアからセクションの内容を読み込めませんでした。",
"Loading" : "読み込み中",
"Fetching the latest news…" : "最新のニュースを取得しています...",
- "Carousel" : "カルーセル",
- "Previous slide" : "前のスライド",
- "Next slide" : "次のスライド",
- "Choose slide to display" : "表示するスライドを選択",
- "{index} of {total}" : "{total} のうち {index}",
- "Daemon" : "デーモン",
- "Deploy Daemon" : "デーモンのデプロイ",
- "Type" : "タイプ",
- "Display Name" : "表示名",
- "GPUs support" : "GPUサポート",
- "Compute device" : "計算デバイス",
- "Advanced deploy options" : "高度なデプロイオプション",
- "Edit ExApp deploy options before installation" : "インストール前にExAppの配置オプションを編集する",
- "Configured ExApp deploy options. Can be set only during installation" : "ExAppのデプロイオプションを設定。インストール時にのみ設定可能です",
- "Learn more" : "もっと見る",
- "Environment variables" : "環境変数",
- "ExApp container environment variables" : "ExAppコンテナ環境変数",
- "No environment variables defined" : "環境変数が定義されていません",
- "Mounts" : "マウント",
- "Define host folder mounts to bind to the ExApp container" : "ExAppコンテナにバインドするホストフォルダマウントの定義",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "ExAppをインストールする前に、Deployデーモンホスト上に存在する必要があります",
- "Host path" : "ホストパス",
- "Container path" : "コンテナパス",
- "Read-only" : "読み込み専用",
- "Remove mount" : "マウントを削除",
- "New mount" : "新しいマウント",
- "Enter path to host folder" : "ホストフォルダへのパスを入力してください",
- "Enter path to container folder" : "コンテナフォルダへのパスを入力してください",
- "Toggle read-only mode" : "読み取り専用モードの切り替え",
- "Confirm adding new mount" : "新しいマウントの追加を確認",
- "Confirm" : "承認",
- "Cancel adding mount" : "マウントの追加をキャンセル",
- "Cancel" : "キャンセル",
- "Add mount" : "マウントを追加",
- "ExApp container mounts" : "ExAppコンテナのマウント",
- "No mounts defined" : "マウントが定義されていません",
- "Description" : "説明",
- "View in store" : "ストア内で表示",
- "Visit website" : "ウェブサイトを表示",
- "Usage documentation" : "利用ドキュメント",
- "Admin documentation" : "管理者ドキュメント",
- "Developer documentation" : "開発者ドキュメント",
- "Details" : "詳細",
- "All" : "すべて",
- "Limit app usage to groups" : "アプリの使用をグループに制限する",
- "No results" : "該当なし",
- "Update to {version}" : "{version} にアップデート",
- "Deploy options" : "デプロイオプション",
- "Default Deploy daemon is not accessible" : "デフォルトのデプロイデーモンにアクセスできません",
- "Delete data on remove" : "削除時にデータを消去する",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud の最小バージョンが指定されていません.将来、エラーが発生する可能性があります.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud バージョンの上限が指定されていません.将来、エラーが発生する可能性があります.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係が満たされないためこのアプリをインストールできません:",
- "Latest updated" : "最新の更新",
- "Author" : "作者",
- "Categories" : "カテゴリ",
- "Resources" : "リソース",
- "Documentation" : "ドキュメント",
- "Interact" : "対話する",
- "Report a bug" : "不具合を報告",
- "Request feature" : "新機能をリクエストする",
- "Ask questions or discuss" : "質問するか議論する",
- "Rate the app" : "アプリを評価する",
- "Rate" : "評価",
- "Changelog" : "変更履歴",
- "Google Chrome for Android" : "Android用Google Chrome",
- "{productName} iOS app" : "{productName} iOSアプリ",
- "{productName} Android app" : "{productName} Androidアプリ",
- "{productName} Talk for iOS" : "{productName} iOS用Talk",
- "{productName} Talk for Android" : "{productName} Android用Talk",
- "Sync client" : "同期クライアント",
- "This session" : "本セッション",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "デバイス名",
- "Cancel renaming" : "リネームをキャンセル",
- "Save new name" : "新しい名前を保存する",
- "Marked for remote wipe" : "リモートワイプ用にマーク",
- "Device settings" : "デバイスの設定",
- "Allow filesystem access" : "ファイルシステムへのアクセスを許可",
- "Rename" : "名前を変更",
- "Revoke" : "取り消す",
- "Wipe device" : "デバイスをワイプ",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "ワイプが開始されていない場合、このトークンを無効にすると端末のワイプが無効になる可能性があります。",
- "Device" : "デバイス",
- "Last activity" : "最後のアクティビティ",
- "Devices & sessions" : "デバイスとセッション",
- "Web, desktop and mobile clients currently logged in to your account." : "現在、Web、デスクトップ、モバイルアプリであなたのアカウントにログインしている端末一覧です。",
- "Error while creating device token" : "デバイストークンの作成中にエラーが発生しました",
- "App name" : "アプリ名",
- "Create new app password" : "新しいアプリパスワードを作成",
"App password copied!" : "アプリパスワードをコピーしました!",
"Copy app password" : "アプリパスワードをコピー",
"Login name copied!" : "ログイン名をコピーしました!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "プロフィールのデフォルト設定を更新できませんでした",
"Profile" : "プロフィール",
"Enable or disable profile by default for new accounts." : "新しいアカウントの場合、デフォルトでプロフィールを有効または無効にします。",
+ "Password confirmation is required" : "パスワードの確認が必要です",
"Failed to save setting" : "設定の保存に失敗しました",
"{app}'s declarative setting field: {name}" : "{app}の宣言的設定フィールド: {name}",
"Unable to update server side encryption config" : "サーバー側暗号化の設定を更新できませんでした",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "暗号化した場合には必ず、あなたのデータと共に暗号化キーをバックアップすることを確認し、定期的にデータをバックアップを作成することをお勧めします。",
"Refer to the admin documentation on how to manually also encrypt existing files." : "既存のファイルを手動で暗号化する方法については、管理者のドキュメントを参照してください。",
"This is the final warning: Do you really want to enable encryption?" : "これが最後の警告です:本当に暗号化を有効にしますか?",
- "Failed to remove group \"{group}\"" : "グループ \"{group}\" の削除に失敗しました",
+ "Failed to delete group \"{group}\"" : "グループ \"{group}\"の削除に失敗しました",
"Please confirm the group removal" : "グループの削除を確認してください",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "グループ \"{group}\" を削除しようとしています。アカウントは削除されません。",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "グループ \"{group}\" を削除しようとしています。アカウントは削除されません。",
+ "Cancel" : "キャンセル",
+ "Confirm" : "承認",
"Submit" : "送信",
"Rename group" : "グループの名称変更",
- "Remove group" : "グループを削除",
- "Current password" : "現在のパスワード",
- "New password" : "新しいパスワード",
- "Change password" : "パスワードを変更",
- "Choose your profile picture" : "プロフィール画像を選択",
- "Please select a valid png or jpg file" : "pngもしくは、jpgファイルを選択してください",
- "Error setting profile picture" : "プロフィール画像に設定できませんでした",
- "Error cropping profile picture" : "プロフィール画像を切り取れませんでした",
- "Error saving profile picture" : "プロフィール画像を保存できませんでした",
- "Error removing profile picture" : "プロフィール画像を削除できませんでした",
- "Your profile picture" : "プロフィール画像",
- "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" : "オリジナルのアカウントで提供されている写真",
- "Set as profile picture" : "プロフィール画像として設定",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "プロフィール写真がすべての場所で更新されるまで、最大 24 時間かかる場合があることに注意してください。",
- "Your biography. Markdown is supported." : "あなたの経歴。Markdownに対応しています。",
- "Unable to update date of birth" : "生年月日の更新ができません",
- "Enter your date of birth" : "生年月日を入力してください",
- "You are using {s}{usage}{/s}" : "{s}{usage}{/s}使用中です",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "{s}{totalSpace}{/s} ({s}{usageRelative}%{/s})のうち{s}{usage}{/s}を使用しています",
- "You are a member of the following groups:" : "次のグループに所属:",
- "Your full name" : "フルネーム",
- "Email options" : "メールのオプション",
- "Options for additional email address {index}" : "追加メールアドレスのオプション {index}",
- "Remove primary email" : "基本メールアドレスを削除",
- "Delete email" : "メールアドレスを削除",
- "This address is not confirmed" : "このアドレスは確認できていません",
- "Unset as primary email" : "基本メールアドレスを解除",
- "Set as primary email" : "基本メールアドレスに設定",
- "Additional email address {index}" : "その他のメールアドレス {index}",
- "Unable to delete primary email address" : "基本メールアドレスを削除できませんでした",
- "Unable to update primary email address" : "基本メールアドレスを更新できませんでした",
- "Unable to add additional email address" : "その他のメールアドレスを追加できません",
- "Unable to update additional email address" : "その他のメールアドレスを更新できません",
- "Unable to delete additional email address" : "その他のメールアドレスを削除できません",
- "Primary email for password reset and notifications" : "パスワードのリセットや通知のための基本メールアドレス",
- "No email address set" : "メールアドレスが設定されていません",
- "Your handle" : "あなたのハンドル",
- "Derived from your locale ({weekDayName})" : "ユーザーのロケールから取得 ({weekDayName})",
- "Unable to update first day of week" : "週の最初の曜日を更新できません",
- "Day to use as the first day of week" : "週の最初の曜日として使用する日",
- "Your headline" : "あなたのヘッドライン",
- "Unable to update language" : "言語設定を更新できませんでした",
- "Languages" : "言語",
- "Help translate" : "翻訳に協力する",
- "No language set" : "言語設定なし",
- "Unable to update locale" : "ロケールを更新できませんでした",
- "Locales" : "ロケール",
- "Week starts on {firstDayOfWeek}" : "週の始まりは{firstDayOfWeek}です。",
- "No locale set" : "ロケールは未設定",
- "Your city" : "あなたの都道府県",
- "Your organisation" : "あなたの組織",
- "Your phone number" : "あなたの電話番号",
- "Edit your Profile visibility" : "プロフィールの公開範囲を変更",
- "Unable to update profile enabled state" : "プロフィールを公開できません",
- "Enable profile" : "プロフィールを有効化",
- "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." : "プロフィール公開ページは、可視性またはスコープのより制限的な設定が優先されます。たとえば、可視性が「全員に表示」に設定され、スコープが「プライベート」に設定されている場合、「プライベート」が尊重されます。",
- "Unable to update visibility of {displayId}" : "{displayId}の表示範囲を更新できませんでした",
- "she/her" : "彼女",
- "he/him" : "彼",
- "they/them" : "彼ら/彼女ら",
- "Your role" : "あなたの役",
- "Your X (formerly Twitter) handle" : "あなたの X (旧 Twitter) のハンドルネーム",
- "Your website" : "あなたの個人ウェブサイト",
- "Invalid value" : "無効な値",
- "Unable to update {property}" : "{property}を更新できませんでした",
- "No {property} set" : "{property} は未設定",
- "Change scope level of {property}, current scope is {scope}" : "{property}の公開範囲を変更、現在の公開範囲は{scope}です",
- "Unable to update federation scope of the primary {property}" : "プライマリー{property}のフェデレーションスコープを更新できませんでした",
- "Unable to update federation scope of additional {property}" : "追加の{property}のフェデレーションスコープを更新できませんでした",
- "Add additional email" : "その他メールアドレスを追加",
- "Add" : "追加",
- "Create" : "作成",
- "Change" : "変更",
- "Delete" : "削除",
- "Reshare" : "再共有",
- "Default language" : "デフォルトの言語",
- "Common languages" : "共通言語",
- "Other languages" : "他の言語",
- "Password change is disabled because the master key is disabled" : "マスターキーが無効になっているため、パスワードの変更は無効です",
- "No accounts" : "アカウントはありません",
- "Loading accounts …" : "アカウントを読み込み中 ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "アカウントのリスト。このリストはパフォーマンス上の理由から完全にはレンダリングされません。アカウントはリスト内を移動するにつれてレンダリングされます。",
- "Manager" : "Manager",
- "Set line manager" : "ラインマネージャーを設定",
- "Account name will be autogenerated" : "アカウント名は自動生成されます",
- "Account name (required)" : "アカウント名(必須)",
- "Failed to search groups" : "グループの検索に失敗しました",
- "New account" : "新規アカウント",
- "Display name" : "表示名",
- "Either password or email is required" : "パスワードまたはEメールのいずれかが必要",
- "Password (required)" : "パスワード (必須)",
- "Email (required)" : "Eメール (必須)",
- "Email" : "メール",
- "Member of the following groups (required)" : "以下のグループのメンバー(必須)",
- "Member of the following groups" : "以下のグループのメンバー",
- "Set account groups" : "アカウントグループを設定する",
- "Admin of the following groups" : "以下のグループの管理者",
- "Set account as admin for …" : "アカウントを管理者に設定 ...",
- "Quota" : "クオータ",
- "Set account quota" : "アカウントクォータを設定する",
- "Language" : "言語",
- "Set default language" : "デフォルト言語の設定",
- "Add new account" : "新しいアカウントを追加する",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount}アカウント ..."],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount}アカウント"],
- "Total rows summary" : "総行数のサマリー",
- "Scroll to load more rows" : "スクロールしてより多くの行を読み込む",
- "Password or insufficient permissions message" : "パスワードまたは権限不足のメッセージ",
- "Avatar" : "アバター",
- "Account name" : "アカウント名",
- "Group admin for" : "グループの管理者",
- "Account backend" : "アカウントバックエンド",
- "Storage location" : "データの保存場所",
- "First login" : "初回ログイン",
- "Last login" : "最終ログイン",
- "Account actions" : "アカウント操作",
- "{size} used" : "{size} を使用中",
- "Delete account" : "アカウントの削除",
- "Disconnect all devices and delete local data" : "すべてのデバイスを切断し、ローカルデータを削除する",
- "Disable account" : "アカウントの無効化",
- "Enable account" : "アカウントの有効化",
- "Resend welcome email" : "ウェルカムメールを再送する",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "デバイスを紛失した場合や、組織外に出た場合、{userid}に関連付けられたすべてのデバイスからリモートで Nextcloud のデータを消去することができます。デバイスがインターネットに接続されている場合にのみ機能します。",
- "Remote wipe of devices" : "デバイスのリモートワイプ",
- "Wipe {userid}'s devices" : " {userid} のデバイスをワイプ",
- "Wiped {userid}'s devices" : "{userid} のデバイスを消去",
- "Failed to load groups with details" : "詳細を含むグループのロードに失敗しました",
- "Failed to load sub admin groups with details" : "サブ管理グループの詳細の読み込みに失敗しました",
- "Failed to update line manager" : "ラインマネージャの更新に失敗しました",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} の個人ファイルやアプリケーションデータなどを含むアカウントを完全に削除します。",
- "Account deletion" : "アカウント削除",
- "Delete {userid}'s account" : "{userid} のアカウントを削除する",
- "Display name was successfully changed" : "表示名は正常に変更されました",
- "Password can't be empty" : "パスワードは空にできません",
- "Password was successfully changed" : "パスワードは正常に変更されました",
- "Email can't be empty" : "メールアドレスは空にできません",
- "Email was successfully changed" : "Eメールは正常に変更されました",
- "Welcome mail sent!" : "ウェルカムメールを送信しました!",
- "Loading account …" : "アカウントを読み込み中 ...",
- "Change display name" : "表示名の変更",
- "Set new password" : "新しいパスワードの設定",
- "You do not have permissions to see the details of this account" : "このアカウントの詳細を表示する権限がありません",
- "Set new email address" : "新しいメールアドレスを設定",
- "Add account to group" : "アカウントをグループに追加",
- "Set account as admin for" : "アカウントを管理者に設定",
- "Select account quota" : "アカウントのクォータを選択",
- "Set the language" : "言語の設定",
- "Toggle account actions menu" : "アカウントアクションメニューの切り替え",
- "Done" : "完了",
- "Edit" : "編集",
- "Account management settings" : "アカウント管理設定",
- "Visibility" : "可視性",
- "Show language" : "言語を表示",
- "Show account backend" : "アカウントバックエンドを表示",
- "Show storage path" : "ストレージの場所を表示",
- "Show first login" : "初回ログインを表示",
- "Show last login" : "最終ログインを表示",
- "Sorting" : "並べ替え",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "システム設定により、名前によるグループのソートが強制されます。これはメンバー数の表示も無効にします。",
- "Group list sorting" : "グループリストのソート",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "並べ替えは、パフォーマンス上の理由から、現在ロードされているグループにのみ適用されます。グループは、リスト内を移動または検索すると読み込まれます。",
- "By member count" : "メンバー数別",
- "By name" : "名前で",
- "Send email" : "メールを送信",
- "Send welcome email to new accounts" : "新規アカウントにウェルカムメールを送る",
- "Defaults" : "初期値",
- "Default quota" : "デフォルトのクオータ",
- "Select default quota" : "デフォルトのクオータを選択",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn デバイス登録を完了しようとしたときのサーバーエラー",
- "Passwordless authentication requires a secure connection." : "パスワードレス認証では、安全な接続が必要です。",
- "Add WebAuthn device" : "WebAuthn デバイスの追加",
- "Please authorize your WebAuthn device." : "WebAuthn デバイスを認証してください。",
- "Adding your device …" : "あなたのデバイスを追加しています…",
- "Unnamed device" : "名称設定されていないデバイス",
- "Passwordless Authentication" : "パスワードレス認証",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "FIDO2 規格に準拠したパスワードレス認証のためのアカウントを設定します。",
- "No devices configured." : "設定されたデバイスはありません。",
- "The following devices are configured for your account:" : "アカウントには以下のデバイスが設定されています。",
- "Your browser does not support WebAuthn." : "お使いのブラウザーは WebAuthn をサポートしていません。",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "管理者であれば共有時の挙動を微調整できます。詳細な情報はドキュメントを参照してください。",
- "You need to enable the File sharing App." : "ファイル共有アプリを有効にする必要があります。",
- "App Store" : "アプリストア",
- "Loading app list" : "アプリ一覧を読み込み中",
- "Loading categories" : "カテゴリーの読み込み中",
- "Developer documentation ↗" : "開発者向けドキュメント ↗",
- "Version {version}, {license}-licensed" : "バージョン{version}, {license}ライセンス",
- "Version {version}" : "Version {version}",
- "All accounts" : "全てのアカウント",
- "Admins" : "管理者",
- "Account group: {group}" : "アカウントグループ: {group}",
- "Account management" : "アカウント管理",
+ "Delete group" : "グループを削除",
"Sending…" : "送信中 …",
"Email sent" : "メールを送信しました",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "パフォーマンス上の理由から、Nextcloudサーバーで暗号化を有効にすると、新規ファイルと変更されたファイルだけが暗号化されます。",
@@ -790,6 +511,7 @@
"Date of birth" : "生年月日",
"Full name" : "氏名",
"Additional email" : "その他のメールアドレス",
+ "Email" : "メール",
"Fediverse (e.g. Mastodon)" : "フェディバース (例: Mastdon)",
"Headline" : "ヘッドライン",
"Organisation" : "組織",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X (旧 Twitter)",
"Website" : "ウェブサイト",
"Profile visibility" : "プロフィールの公開範囲",
+ "Language" : "言語",
"Locale" : "ロケール",
"First day of week" : "週の最初の曜日",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "このプロパティは、ファイル共有やカレンダーへの招待などのコア機能に必要なため、使用できません",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "ログインしているアカウントのみに表示する",
"Hide" : "隠す",
"Manually installed apps cannot be updated" : "手動インストールしたアプリはアップデートできません",
+ "Update to {version}" : "{version} にアップデート",
"{progress}% Deploying …" : "{progress}% デプロイ中 …",
"{progress}% Initializing …" : "{progress}% 初期化中 …",
"Health checking" : "ヘルスチェック",
@@ -825,6 +549,7 @@
"Allow untested app" : "テストされていないアプリを許可する",
"The app will be downloaded from the App Store" : "このアプリは、アプリストアからダウンロードできます。",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "このアプリはご利用中のNextcloudのバージョンと互換性があるとしてマークされていません。 続行しても、アプリをインストールすることはできます。 アプリが期待通りに動作しない可能性があることに注意してください。",
+ "{size} used" : "{size} を使用中",
"Unknown" : "不明",
"Never" : "なし",
"Could not register device: Network error" : "デバイスを登録できませんでした: ネットワークエラー",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "グループのソートを設定できませんでした",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "ネットワークからのリクエストが多すぎました。このようなエラーが発生した場合は、後で再試行するか、管理者に連絡してください。",
"Error" : "エラー",
+ "Default quota" : "デフォルトのクオータ",
"Account documentation" : "アカウント・ドキュメント",
"Administration documentation" : "管理者ドキュメント",
+ "Documentation" : "ドキュメント",
"Forum" : "フォーラム",
"Nextcloud help & privacy resources" : "Nextcloudのヘルプとプライバシーに関するリソース",
"General documentation" : "一般的なドキュメント",
@@ -867,6 +594,7 @@
"SMTP Password" : "SMTPパスワード",
"Save" : "保存",
"Test and verify email settings" : "メールのテストと検証設定",
+ "Send email" : "メールを送信",
"Security & setup warnings" : "セキュリティ&セットアップ警告",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "サーバーのセキュリティとパフォーマンスにとって重要なことは、すべてが正確に設定されていることです。あなたの助けとなるよう、Nextcloudでは一部の自動チェックを行っています。詳細な情報は、リンク先のドキュメントを参照してください。",
"All checks passed." : "すべてのチェックに合格しました。",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "アカウントのセキュリティを強化するには、パスワード以外に2番目の要素を使用してください。",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "サードパーティのアプリケーションを使用してNextcloudに接続する場合は、二要素認証を有効にする前に必ずそれぞれのアプリパスワードを作成して設定してください。",
"Logged in account must be a subadmin" : "ログインアカウントはサブ管理者である必要があります",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "このチェックを実行させるには、ウェブサーバが自分自身に接続できることを確認する必要があります。したがって、少なくとも `trusted_domains` または `overwrite.cli.url` を解決して接続できなければなりません。",
- "Missing optional index \"%s\" in table \"%s\"." : "オプションのインデックス \"%s\" がテーブル \"%s\"にありません",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 \"occ db:add-missing-indices\"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "このチェックを実行させるには、Webサーバーが自分自身に接続できることを確認しなければならない。そのため、少なくとも一つの `trusted_domains` または `overwrite.cli.url` を解決して接続できなければなりません。この失敗は、サーバ側のDNSの不一致やアウトバウンドファイアウォールルールの結果かもしれません。",
"File locking" : "ファイルロック",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "トランザクションファイルロックが無効になっているため、競合状態の問題が発生する可能性があります。これらの問題を回避するには、config.phpで \"filelocking.enabled\" を有効にします。",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "`trusted_domains` または `overwrite.cli.url` で JavaScript のサポートを確認できませんでした。これはサーバ側の DNS の不一致か、アウトバウンドファイアウォールルールの結果である可能性があります。お使いのウェブサーバーが JavaScript MIMEタイプを使用して `.mjs` ファイルを提供しているかどうかを手動で確認してください。",
"The PHP memory limit is below the recommended value of %s." : "PHPのメモリ制限が推奨値の%s以下です。",
"for WebAuthn passwordless login" : "WebAuthn パスワードレスログイン用",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn パスワードレスログインと、SFTPストレージ用",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "PHP %s を実行しています。PHP 8.0 は Nextcloud 27 では非推奨です。Nextcloud 28 では、少なくとも PHP 8.1 が必要になる可能性があります。PHP グループが公式にサポートする PHP のいずれかのバージョンにできるだけ早くアップグレードしてください。",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB のバージョン\"%s\" が使われています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MariaDB 10.2 以降のバージョンが必要になります。",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQLのバージョン \"%s\" が使用されています。Nextcloud 21以降ではこのバージョンのサポートは終了し、MySQL 8.0またはMariaDB 10.2以上が必要となります。",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQLのバージョン \"%s\" を使用しています。Nextcloud 21以降ではこのバージョンのサポートは終了し、PostgreSQL 9.6以降が必要となります。",
- "Speech-To-Text" : "Speech-To-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text はさまざまなアプリで実装できます。ここでは、どのアプリを使用するかを設定できます。",
- "None of your currently installed apps provide Speech-To-Text functionality" : "現在インストールされているどのアプリも音声テキスト化機能(Speech-To-Text)を提供していません。",
- "None of your currently installed apps provide Text processing functionality" : "現在インストールされているどのアプリも、テキスト処理機能を提供していません",
- "Set default expiration date for shares" : "共有のデフォルトの有効期限を設定する",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "共有ダイアログでユーザー名の自動補完を許可し、システムのアドレス帳へのアクセスを許可する",
- "Your biography" : "あなたのプロファイル",
- "You are using <strong>{usage}</strong>" : "<strong>{usage}</strong>使用中です",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "<strong>{totalSpace}</strong> (<strong>{usageRelative}</strong>) のうち<strong>{usage}</strong>を使用しています",
- "Set user manager" : "ユーザーマネージャーを設定",
- "Username will be autogenerated" : "ユーザー名は自動生成されます",
- "Username (required)" : "ユーザー名 (必須)",
- "New user" : "新しいユーザー",
- "Groups (required)" : "グループ (必須)",
- "Set user groups" : "ユーザーグループの設定",
- "Administered groups" : "管理グループ",
- "Set user as admin for …" : "ユーザーを管理者に設定 ...",
- "Set user quota" : "ユーザークォータの設定",
- "Add new user" : "新規ユーザーの追加",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} ユーザー…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} ユーザー"],
- "Loading users …" : "Loading users …",
- "Username" : "ユーザーID",
- "User backend" : "ユーザーバックエンド",
- "User actions" : "ユーザーアクション",
- "Add user to group" : "ユーザーをグループに追加",
- "Server error while trying to add WebAuthn device" : "WebAuthn デバイスを追加しようとしたときのサーバーエラー",
- "Name your device" : "デバイスに名前をつける",
- "Active accounts" : "アクティブなアカウント",
- "Follow us on Twitter" : "Twitter でフォロー!",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "このチェックを実行させるには、Webサーバーが自分自身に接続できることを確認しなければならない。そのため、少なくとも一つの `trusted_domains` または `overwrite.cli.url` を解決して接続できなければなりません。この失敗は、サーバ側のDNSの不一致やアウトバウンドファイアウォールルールの結果かもしれません。",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP ヘッダーに `%2$s` が含まれていません。これはセキュリティやプライバシーのリスクとなる可能性があるため、この設定を調整することが推奨されています。",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQLのバージョン \"%s\"が検出されました。 このバージョンのNextcloudで最高のパフォーマンス、安定性、機能性を得るには、PostgreSQL >=12および<=16を推奨します。",
- "Failed to load subadmin groups with details" : "サブ管理者グループの詳細の読み込みに失敗しました"
+ "Set default expiration date for shares" : "共有のデフォルトの有効期限を設定する"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/ka.js b/apps/settings/l10n/ka.js
index 84521c935ed..82c8d3cf2a9 100644
--- a/apps/settings/l10n/ka.js
+++ b/apps/settings/l10n/ka.js
@@ -262,57 +262,6 @@ OC.L10N.register(
"Please enter a valid group name" : "Please enter a valid group name",
"Loading groups…" : "Loading groups…",
"Loading" : "Loading",
- "Type" : "Type",
- "Confirm" : "Confirm",
- "Cancel" : "Cancel",
- "Description" : "Description",
- "View in store" : "View in store",
- "Visit website" : "Visit website",
- "Admin documentation" : "Admin documentation",
- "Developer documentation" : "Developer documentation",
- "Details" : "Details",
- "All" : "All",
- "Limit app usage to groups" : "Limit app usage to groups",
- "No results" : "No results",
- "Update to {version}" : "Update to {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will be an error in the future.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will be an error in the future.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:",
- "Author" : "Author",
- "Categories" : "Categories",
- "Resources" : "Resources",
- "Documentation" : "Documentation",
- "Interact" : "Interact",
- "Report a bug" : "Report a bug",
- "Request feature" : "Request feature",
- "Ask questions or discuss" : "Ask questions or discuss",
- "Changelog" : "Changelog",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "Sync client" : "Sync client",
- "This session" : "This session",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Device name",
- "Cancel renaming" : "Cancel renaming",
- "Save new name" : "Save new name",
- "Marked for remote wipe" : "Marked for remote wipe",
- "Device settings" : "Device settings",
- "Allow filesystem access" : "Allow filesystem access",
- "Rename" : "Rename",
- "Revoke" : "Revoke",
- "Wipe device" : "Wipe device",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revoking this token might prevent the wiping of your device if it has not started the wipe yet.",
- "Device" : "Device",
- "Last activity" : "Last activity",
- "Devices & sessions" : "Devices & sessions",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, desktop and mobile clients currently logged in to your account.",
- "Error while creating device token" : "Error while creating device token",
- "App name" : "App name",
- "Create new app password" : "Create new app password",
"App password copied!" : "App password copied!",
"Copy app password" : "Copy app password",
"Login name copied!" : "Login name copied!",
@@ -350,138 +299,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Be aware that encryption always increases the file size.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data.",
"This is the final warning: Do you really want to enable encryption?" : "This is the final warning: Do you really want to enable encryption?",
- "Failed to remove group \"{group}\"" : "Failed to remove group \"{group}\"",
"Please confirm the group removal" : "Please confirm the group removal",
+ "Cancel" : "Cancel",
+ "Confirm" : "Confirm",
"Submit" : "Submit",
"Rename group" : "Rename group",
- "Remove group" : "Remove group",
- "Current password" : "Current password",
- "New password" : "New password",
- "Change password" : "Change password",
- "Choose your profile picture" : "Choose your profile picture",
- "Please select a valid png or jpg file" : "Please select a valid png or jpg file",
- "Error setting profile picture" : "Error setting profile picture",
- "Error cropping profile picture" : "Error cropping profile picture",
- "Error saving profile picture" : "Error saving profile picture",
- "Error removing profile picture" : "Error removing profile picture",
- "Your profile picture" : "Your profile picture",
- "Upload profile picture" : "Upload profile picture",
- "Choose profile picture from Files" : "Choose profile picture from Files",
- "Remove profile picture" : "Remove profile picture",
- "The file must be a PNG or JPG" : "The file must be a PNG or JPG",
- "Picture provided by original account" : "Picture provided by original account",
- "Set as profile picture" : "Set as profile picture",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Please note that it can take up to 24 hours for your profile picture to be updated everywhere.",
- "You are a member of the following groups:" : "You are a member of the following groups:",
- "Your full name" : "Your full name",
- "Email options" : "Email options",
- "Remove primary email" : "Remove primary email",
- "Delete email" : "Delete email",
- "This address is not confirmed" : "This address is not confirmed",
- "Unset as primary email" : "Unset as primary email",
- "Set as primary email" : "Set as primary email",
- "Additional email address {index}" : "Additional email address {index}",
- "Unable to delete primary email address" : "Unable to delete primary email address",
- "Unable to update primary email address" : "Unable to update primary email address",
- "Unable to add additional email address" : "Unable to add additional email address",
- "Unable to update additional email address" : "Unable to update additional email address",
- "Unable to delete additional email address" : "Unable to delete additional email address",
- "Primary email for password reset and notifications" : "Primary email for password reset and notifications",
- "No email address set" : "No email address set",
- "Your handle" : "Your handle",
- "Your headline" : "Your headline",
- "Unable to update language" : "Unable to update language",
- "Help translate" : "Help translate",
- "No language set" : "No language set",
- "Unable to update locale" : "Unable to update locale",
- "Week starts on {firstDayOfWeek}" : "Week starts on {firstDayOfWeek}",
- "No locale set" : "No locale set",
- "Your city" : "Your city",
- "Your organisation" : "Your organisation",
- "Your phone number" : "Your phone number",
- "Edit your Profile visibility" : "Edit your Profile visibility",
- "Unable to update profile enabled state" : "Unable to update profile enabled state",
- "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." : "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.",
- "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}",
- "Your role" : "Your role",
- "Your X (formerly Twitter) handle" : "Your X (formerly Twitter) handle",
- "Your website" : "Your website",
- "Unable to update {property}" : "Unable to update {property}",
- "No {property} set" : "No {property} set",
- "Change scope level of {property}, current scope is {scope}" : "Change scope level of {property}, current scope is {scope}",
- "Unable to update federation scope of the primary {property}" : "Unable to update federation scope of the primary {property}",
- "Unable to update federation scope of additional {property}" : "Unable to update federation scope of additional {property}",
- "Add additional email" : "Add additional email",
- "Add" : "Add",
- "Create" : "Create",
- "Change" : "Change",
- "Delete" : "Delete",
- "Reshare" : "Reshare",
- "Default language" : "Default language",
- "Common languages" : "Common languages",
- "Other languages" : "Other languages",
- "Password change is disabled because the master key is disabled" : "Password change is disabled because the master key is disabled",
- "Manager" : "Manager",
- "Display name" : "Display name",
- "Either password or email is required" : "Either password or email is required",
- "Password (required)" : "Password (required)",
- "Email (required)" : "Email (required)",
- "Email" : "Email",
- "Quota" : "Quota",
- "Language" : "Language",
- "Set default language" : "Set default language",
- "Total rows summary" : "Total rows summary",
- "Scroll to load more rows" : "Scroll to load more rows",
- "Password or insufficient permissions message" : "Password or insufficient permissions message",
- "Avatar" : "Avatar",
- "Account name" : "ექაუნთის სახელი",
- "Group admin for" : "Group admin for",
- "Storage location" : "Storage location",
- "Last login" : "Last login",
- "Account actions" : "Account actions",
- "{size} used" : "{size} used",
- "Delete account" : "Delete account",
- "Resend welcome email" : "Resend welcome email",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.",
- "Remote wipe of devices" : "Remote wipe of devices",
- "Wipe {userid}'s devices" : "Wipe {userid}'s devices",
- "Wiped {userid}'s devices" : "Wiped {userid}'s devices",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Fully delete {userid}'s account including all their personal files, app data, etc.",
- "Account deletion" : "Account deletion",
- "Delete {userid}'s account" : "Delete {userid}'s account",
- "Display name was successfully changed" : "Display name was successfully changed",
- "Password was successfully changed" : "Password was successfully changed",
- "Email was successfully changed" : "Email was successfully changed",
- "Welcome mail sent!" : "Welcome mail sent!",
- "Change display name" : "Change display name",
- "Set new password" : "Set new password",
- "Set new email address" : "Set new email address",
- "Set the language" : "Set the language",
- "Done" : "Done",
- "Edit" : "Edit",
- "Visibility" : "Visibility",
- "Show language" : "Show language",
- "Show storage path" : "Show storage path",
- "Show last login" : "Show last login",
- "Sorting" : "Sorting",
- "Send email" : "Send email",
- "Defaults" : "Defaults",
- "Default quota" : "Default quota",
- "Select default quota" : "Select default quota",
- "Server error while trying to complete WebAuthn device registration" : "Server error while trying to complete WebAuthn device registration",
- "Passwordless authentication requires a secure connection." : "Passwordless authentication requires a secure connection.",
- "Add WebAuthn device" : "Add WebAuthn device",
- "Please authorize your WebAuthn device." : "Please authorize your WebAuthn device.",
- "Adding your device …" : "Adding your device …",
- "Unnamed device" : "Unnamed device",
- "Passwordless Authentication" : "Passwordless Authentication",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Set up your account for passwordless authentication following the FIDO2 standard.",
- "No devices configured." : "No devices configured.",
- "The following devices are configured for your account:" : "The following devices are configured for your account:",
- "Your browser does not support WebAuthn." : "Your browser does not support WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "As admin you can fine-tune the sharing behavior. Please see the documentation for more information.",
- "You need to enable the File sharing App." : "You need to enable the File sharing App.",
- "Admins" : "Admins",
"Sending…" : "Sending…",
"Email sent" : "Email sent",
"Location" : "Location",
@@ -489,6 +311,7 @@ OC.L10N.register(
"About" : "About",
"Full name" : "Full name",
"Additional email" : "Additional email",
+ "Email" : "Email",
"Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)",
"Headline" : "Headline",
"Organisation" : "Organisation",
@@ -497,6 +320,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (formerly Twitter)",
"Website" : "Website",
"Profile visibility" : "Profile visibility",
+ "Language" : "Language",
"Locale" : "Locale",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Not available as this property is required for core functionality including file sharing and calendar invitations",
"Your apps" : "Your apps",
@@ -508,11 +332,13 @@ OC.L10N.register(
"Supported apps" : "Supported apps",
"Show to everyone" : "Show to everyone",
"Hide" : "Hide",
+ "Update to {version}" : "Update to {version}",
"Download and enable" : "Download and enable",
"Disable" : "Disable",
"Allow untested app" : "Allow untested app",
"The app will be downloaded from the App Store" : "The app will be downloaded from the App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.",
+ "{size} used" : "{size} used",
"Unknown" : "Unknown",
"Never" : "Never",
"An error occurred during the request. Unable to proceed." : "An error occurred during the request. Unable to proceed.",
@@ -526,8 +352,10 @@ OC.L10N.register(
"Error while updating device token scope" : "Error while updating device token scope",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "There were too many requests from your network. Retry later or contact your administrator if this is an error.",
"Error" : "Error",
+ "Default quota" : "Default quota",
"Account documentation" : "Account documentation",
"Administration documentation" : "Administration documentation",
+ "Documentation" : "Documentation",
"Forum" : "Forum",
"General documentation" : "General documentation",
"Legal notice" : "Legal notice",
@@ -548,6 +376,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP Password",
"Save" : "Save",
"Test and verify email settings" : "Test and verify email settings",
+ "Send email" : "Send email",
"Security & setup warnings" : "Security & setup warnings",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information.",
"All checks passed." : "All checks passed.",
@@ -565,43 +394,9 @@ OC.L10N.register(
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "This community release of Nextcloud is unsupported and instant notifications are unavailable.",
"Use a second factor besides your password to increase security for your account." : "Use a second factor besides your password to increase security for your account.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.",
- "Missing optional index \"%s\" in table \"%s\"." : "Missing optional index \"%s\" in table \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.",
"File locking" : "File locking",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems.",
"The PHP memory limit is below the recommended value of %s." : "The PHP memory limit is below the recommended value of %s.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.",
- "Speech-To-Text" : "Speech-To-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text can be implemented by different apps. Here you can set which app should be used.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "None of your currently installed apps provide Speech-To-Text functionality",
- "None of your currently installed apps provide Text processing functionality" : "None of your currently installed apps provide Text processing functionality",
- "Set default expiration date for shares" : "Set default expiration date for shares",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Allow username autocompletion in share dialog and allow access to the system address book",
- "Your biography" : "Your biography",
- "You are using <strong>{usage}</strong>" : "You are using <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Set user manager",
- "Username will be autogenerated" : "Username will be autogenerated",
- "Username (required)" : "Username (required)",
- "New user" : "New user",
- "Groups (required)" : "Groups (required)",
- "Set user groups" : "Set user groups",
- "Administered groups" : "Administered groups",
- "Set user as admin for …" : "Set user as admin for …",
- "Set user quota" : "Set user quota",
- "Add new user" : "Add new user",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} user …","{userCount} users …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} user","{userCount} users"],
- "Loading users …" : "Loading users …",
- "Username" : "Username",
- "User backend" : "User backend",
- "User actions" : "User actions",
- "Add user to group" : "Add user to group",
- "Server error while trying to add WebAuthn device" : "Server error while trying to add WebAuthn device",
- "Name your device" : "Name your device",
- "Follow us on Twitter" : "Follow us on Twitter"
+ "Set default expiration date for shares" : "Set default expiration date for shares"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/settings/l10n/ka.json b/apps/settings/l10n/ka.json
index c20562af659..318d4b3db54 100644
--- a/apps/settings/l10n/ka.json
+++ b/apps/settings/l10n/ka.json
@@ -260,57 +260,6 @@
"Please enter a valid group name" : "Please enter a valid group name",
"Loading groups…" : "Loading groups…",
"Loading" : "Loading",
- "Type" : "Type",
- "Confirm" : "Confirm",
- "Cancel" : "Cancel",
- "Description" : "Description",
- "View in store" : "View in store",
- "Visit website" : "Visit website",
- "Admin documentation" : "Admin documentation",
- "Developer documentation" : "Developer documentation",
- "Details" : "Details",
- "All" : "All",
- "Limit app usage to groups" : "Limit app usage to groups",
- "No results" : "No results",
- "Update to {version}" : "Update to {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "This app has no minimum Nextcloud version assigned. This will be an error in the future.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will be an error in the future.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:",
- "Author" : "Author",
- "Categories" : "Categories",
- "Resources" : "Resources",
- "Documentation" : "Documentation",
- "Interact" : "Interact",
- "Report a bug" : "Report a bug",
- "Request feature" : "Request feature",
- "Ask questions or discuss" : "Ask questions or discuss",
- "Changelog" : "Changelog",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "Sync client" : "Sync client",
- "This session" : "This session",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Device name",
- "Cancel renaming" : "Cancel renaming",
- "Save new name" : "Save new name",
- "Marked for remote wipe" : "Marked for remote wipe",
- "Device settings" : "Device settings",
- "Allow filesystem access" : "Allow filesystem access",
- "Rename" : "Rename",
- "Revoke" : "Revoke",
- "Wipe device" : "Wipe device",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Revoking this token might prevent the wiping of your device if it has not started the wipe yet.",
- "Device" : "Device",
- "Last activity" : "Last activity",
- "Devices & sessions" : "Devices & sessions",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, desktop and mobile clients currently logged in to your account.",
- "Error while creating device token" : "Error while creating device token",
- "App name" : "App name",
- "Create new app password" : "Create new app password",
"App password copied!" : "App password copied!",
"Copy app password" : "Copy app password",
"Login name copied!" : "Login name copied!",
@@ -348,138 +297,11 @@
"Be aware that encryption always increases the file size." : "Be aware that encryption always increases the file size.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data.",
"This is the final warning: Do you really want to enable encryption?" : "This is the final warning: Do you really want to enable encryption?",
- "Failed to remove group \"{group}\"" : "Failed to remove group \"{group}\"",
"Please confirm the group removal" : "Please confirm the group removal",
+ "Cancel" : "Cancel",
+ "Confirm" : "Confirm",
"Submit" : "Submit",
"Rename group" : "Rename group",
- "Remove group" : "Remove group",
- "Current password" : "Current password",
- "New password" : "New password",
- "Change password" : "Change password",
- "Choose your profile picture" : "Choose your profile picture",
- "Please select a valid png or jpg file" : "Please select a valid png or jpg file",
- "Error setting profile picture" : "Error setting profile picture",
- "Error cropping profile picture" : "Error cropping profile picture",
- "Error saving profile picture" : "Error saving profile picture",
- "Error removing profile picture" : "Error removing profile picture",
- "Your profile picture" : "Your profile picture",
- "Upload profile picture" : "Upload profile picture",
- "Choose profile picture from Files" : "Choose profile picture from Files",
- "Remove profile picture" : "Remove profile picture",
- "The file must be a PNG or JPG" : "The file must be a PNG or JPG",
- "Picture provided by original account" : "Picture provided by original account",
- "Set as profile picture" : "Set as profile picture",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Please note that it can take up to 24 hours for your profile picture to be updated everywhere.",
- "You are a member of the following groups:" : "You are a member of the following groups:",
- "Your full name" : "Your full name",
- "Email options" : "Email options",
- "Remove primary email" : "Remove primary email",
- "Delete email" : "Delete email",
- "This address is not confirmed" : "This address is not confirmed",
- "Unset as primary email" : "Unset as primary email",
- "Set as primary email" : "Set as primary email",
- "Additional email address {index}" : "Additional email address {index}",
- "Unable to delete primary email address" : "Unable to delete primary email address",
- "Unable to update primary email address" : "Unable to update primary email address",
- "Unable to add additional email address" : "Unable to add additional email address",
- "Unable to update additional email address" : "Unable to update additional email address",
- "Unable to delete additional email address" : "Unable to delete additional email address",
- "Primary email for password reset and notifications" : "Primary email for password reset and notifications",
- "No email address set" : "No email address set",
- "Your handle" : "Your handle",
- "Your headline" : "Your headline",
- "Unable to update language" : "Unable to update language",
- "Help translate" : "Help translate",
- "No language set" : "No language set",
- "Unable to update locale" : "Unable to update locale",
- "Week starts on {firstDayOfWeek}" : "Week starts on {firstDayOfWeek}",
- "No locale set" : "No locale set",
- "Your city" : "Your city",
- "Your organisation" : "Your organisation",
- "Your phone number" : "Your phone number",
- "Edit your Profile visibility" : "Edit your Profile visibility",
- "Unable to update profile enabled state" : "Unable to update profile enabled state",
- "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." : "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.",
- "Unable to update visibility of {displayId}" : "Unable to update visibility of {displayId}",
- "Your role" : "Your role",
- "Your X (formerly Twitter) handle" : "Your X (formerly Twitter) handle",
- "Your website" : "Your website",
- "Unable to update {property}" : "Unable to update {property}",
- "No {property} set" : "No {property} set",
- "Change scope level of {property}, current scope is {scope}" : "Change scope level of {property}, current scope is {scope}",
- "Unable to update federation scope of the primary {property}" : "Unable to update federation scope of the primary {property}",
- "Unable to update federation scope of additional {property}" : "Unable to update federation scope of additional {property}",
- "Add additional email" : "Add additional email",
- "Add" : "Add",
- "Create" : "Create",
- "Change" : "Change",
- "Delete" : "Delete",
- "Reshare" : "Reshare",
- "Default language" : "Default language",
- "Common languages" : "Common languages",
- "Other languages" : "Other languages",
- "Password change is disabled because the master key is disabled" : "Password change is disabled because the master key is disabled",
- "Manager" : "Manager",
- "Display name" : "Display name",
- "Either password or email is required" : "Either password or email is required",
- "Password (required)" : "Password (required)",
- "Email (required)" : "Email (required)",
- "Email" : "Email",
- "Quota" : "Quota",
- "Language" : "Language",
- "Set default language" : "Set default language",
- "Total rows summary" : "Total rows summary",
- "Scroll to load more rows" : "Scroll to load more rows",
- "Password or insufficient permissions message" : "Password or insufficient permissions message",
- "Avatar" : "Avatar",
- "Account name" : "ექაუნთის სახელი",
- "Group admin for" : "Group admin for",
- "Storage location" : "Storage location",
- "Last login" : "Last login",
- "Account actions" : "Account actions",
- "{size} used" : "{size} used",
- "Delete account" : "Delete account",
- "Resend welcome email" : "Resend welcome email",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.",
- "Remote wipe of devices" : "Remote wipe of devices",
- "Wipe {userid}'s devices" : "Wipe {userid}'s devices",
- "Wiped {userid}'s devices" : "Wiped {userid}'s devices",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Fully delete {userid}'s account including all their personal files, app data, etc.",
- "Account deletion" : "Account deletion",
- "Delete {userid}'s account" : "Delete {userid}'s account",
- "Display name was successfully changed" : "Display name was successfully changed",
- "Password was successfully changed" : "Password was successfully changed",
- "Email was successfully changed" : "Email was successfully changed",
- "Welcome mail sent!" : "Welcome mail sent!",
- "Change display name" : "Change display name",
- "Set new password" : "Set new password",
- "Set new email address" : "Set new email address",
- "Set the language" : "Set the language",
- "Done" : "Done",
- "Edit" : "Edit",
- "Visibility" : "Visibility",
- "Show language" : "Show language",
- "Show storage path" : "Show storage path",
- "Show last login" : "Show last login",
- "Sorting" : "Sorting",
- "Send email" : "Send email",
- "Defaults" : "Defaults",
- "Default quota" : "Default quota",
- "Select default quota" : "Select default quota",
- "Server error while trying to complete WebAuthn device registration" : "Server error while trying to complete WebAuthn device registration",
- "Passwordless authentication requires a secure connection." : "Passwordless authentication requires a secure connection.",
- "Add WebAuthn device" : "Add WebAuthn device",
- "Please authorize your WebAuthn device." : "Please authorize your WebAuthn device.",
- "Adding your device …" : "Adding your device …",
- "Unnamed device" : "Unnamed device",
- "Passwordless Authentication" : "Passwordless Authentication",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Set up your account for passwordless authentication following the FIDO2 standard.",
- "No devices configured." : "No devices configured.",
- "The following devices are configured for your account:" : "The following devices are configured for your account:",
- "Your browser does not support WebAuthn." : "Your browser does not support WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "As admin you can fine-tune the sharing behavior. Please see the documentation for more information.",
- "You need to enable the File sharing App." : "You need to enable the File sharing App.",
- "Admins" : "Admins",
"Sending…" : "Sending…",
"Email sent" : "Email sent",
"Location" : "Location",
@@ -487,6 +309,7 @@
"About" : "About",
"Full name" : "Full name",
"Additional email" : "Additional email",
+ "Email" : "Email",
"Fediverse (e.g. Mastodon)" : "Fediverse (e.g. Mastodon)",
"Headline" : "Headline",
"Organisation" : "Organisation",
@@ -495,6 +318,7 @@
"X (formerly Twitter)" : "X (formerly Twitter)",
"Website" : "Website",
"Profile visibility" : "Profile visibility",
+ "Language" : "Language",
"Locale" : "Locale",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Not available as this property is required for core functionality including file sharing and calendar invitations",
"Your apps" : "Your apps",
@@ -506,11 +330,13 @@
"Supported apps" : "Supported apps",
"Show to everyone" : "Show to everyone",
"Hide" : "Hide",
+ "Update to {version}" : "Update to {version}",
"Download and enable" : "Download and enable",
"Disable" : "Disable",
"Allow untested app" : "Allow untested app",
"The app will be downloaded from the App Store" : "The app will be downloaded from the App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.",
+ "{size} used" : "{size} used",
"Unknown" : "Unknown",
"Never" : "Never",
"An error occurred during the request. Unable to proceed." : "An error occurred during the request. Unable to proceed.",
@@ -524,8 +350,10 @@
"Error while updating device token scope" : "Error while updating device token scope",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "There were too many requests from your network. Retry later or contact your administrator if this is an error.",
"Error" : "Error",
+ "Default quota" : "Default quota",
"Account documentation" : "Account documentation",
"Administration documentation" : "Administration documentation",
+ "Documentation" : "Documentation",
"Forum" : "Forum",
"General documentation" : "General documentation",
"Legal notice" : "Legal notice",
@@ -546,6 +374,7 @@
"SMTP Password" : "SMTP Password",
"Save" : "Save",
"Test and verify email settings" : "Test and verify email settings",
+ "Send email" : "Send email",
"Security & setup warnings" : "Security & setup warnings",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information.",
"All checks passed." : "All checks passed.",
@@ -563,43 +392,9 @@
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "This community release of Nextcloud is unsupported and instant notifications are unavailable.",
"Use a second factor besides your password to increase security for your account." : "Use a second factor besides your password to increase security for your account.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication.",
- "Missing optional index \"%s\" in table \"%s\"." : "Missing optional index \"%s\" in table \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.",
"File locking" : "File locking",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems.",
"The PHP memory limit is below the recommended value of %s." : "The PHP memory limit is below the recommended value of %s.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.",
- "Speech-To-Text" : "Speech-To-Text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Speech-To-Text can be implemented by different apps. Here you can set which app should be used.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "None of your currently installed apps provide Speech-To-Text functionality",
- "None of your currently installed apps provide Text processing functionality" : "None of your currently installed apps provide Text processing functionality",
- "Set default expiration date for shares" : "Set default expiration date for shares",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Allow username autocompletion in share dialog and allow access to the system address book",
- "Your biography" : "Your biography",
- "You are using <strong>{usage}</strong>" : "You are using <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Set user manager",
- "Username will be autogenerated" : "Username will be autogenerated",
- "Username (required)" : "Username (required)",
- "New user" : "New user",
- "Groups (required)" : "Groups (required)",
- "Set user groups" : "Set user groups",
- "Administered groups" : "Administered groups",
- "Set user as admin for …" : "Set user as admin for …",
- "Set user quota" : "Set user quota",
- "Add new user" : "Add new user",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} user …","{userCount} users …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} user","{userCount} users"],
- "Loading users …" : "Loading users …",
- "Username" : "Username",
- "User backend" : "User backend",
- "User actions" : "User actions",
- "Add user to group" : "Add user to group",
- "Server error while trying to add WebAuthn device" : "Server error while trying to add WebAuthn device",
- "Name your device" : "Name your device",
- "Follow us on Twitter" : "Follow us on Twitter"
+ "Set default expiration date for shares" : "Set default expiration date for shares"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/ka_GE.js b/apps/settings/l10n/ka_GE.js
index cc4dd566e7c..8d553189e30 100644
--- a/apps/settings/l10n/ka_GE.js
+++ b/apps/settings/l10n/ka_GE.js
@@ -105,44 +105,9 @@ OC.L10N.register(
"Actions" : "მოქმედებები",
"No apps found for your version" : "აპლიკაციები თქვენი ვერსიისთვის ვერ იქნა ნაპოვნი",
"Group name" : "ჯგუფის სახელი",
- "Daemon" : "დაემონი",
- "Display Name" : "დისპლეი სახელი",
- "Learn more" : "შეიტყვეთ მეტი",
- "Confirm" : "დადასტურება",
- "Cancel" : "უარყოფა",
- "Description" : "აღწერილობა",
- "View in store" : "იხილეთ store-ში",
- "Visit website" : "საიტზე სტუმრობა",
- "Admin documentation" : "ადმინისტრატორის დოკუმენტაცია",
- "Developer documentation" : "დეველოპერის დოკუმენტაცია",
- "Details" : "დეტალები",
- "All" : "ყველა",
- "No results" : "შედეგები არაა",
- "Update to {version}" : "განაახლეთ ვერსიაზე {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "ეს აპლიკაცია არ საზღვრავს Nextcloud-ის მინიმალურ ვერსიას. სამომავლოდ ეს ჩაითვლება შეცდომად.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "ეს აპლიკაცია არ საზღვრავს Nextcloud-ის მაქსიმალურ ვერსიას. სამომავლოდ ეს ჩაითვლება შეცდომად.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "ეს აპლიკაცია ვერ დაყენდა რადგან შემდეგი დამოკიდებულებები არაა დაკმაყოფილებული:",
- "Categories" : "კატეგორიები",
- "Resources" : "რესურსები",
- "Documentation" : "დოკუმენტაცია",
- "Report a bug" : "განაცხადეთ შეცდომის შესახებ",
- "Request feature" : "მოითხოვეთ ფუნქცია",
- "Ask questions or discuss" : "იკითხეთ ან განიხილეთ",
- "Rate" : "შეაფასეთ",
- "Changelog" : "ცვლილებების ლოგი",
- "Google Chrome for Android" : "Google Chrome Android-ისთვის",
- "This session" : "ეს სესია",
- "Allow filesystem access" : "ფაილ-სისტემაზე წვდომის მინიჭება",
- "Rename" : "სახელის შეცვლა",
- "Revoke" : "წვდომის გაუქმება",
- "Device" : "მოწყობილობა",
- "Last activity" : "ბოლო აქტივობა",
- "Web, desktop and mobile clients currently logged in to your account." : "ვებ, დესკტოპ და მობილური კლიენტები ამჟამად ავტორიზირებული თქვენს ანგარიშზე.",
- "Error while creating device token" : "მოწყობილობის ტოკენის ჩატვირთვისას წარმოიქმნა შეცდომა",
- "App name" : "აპლიკაციის სახელი",
- "Create new app password" : "ახალი აპლიკაციის პაროლის შექმნა",
"Login" : "ლოგინი",
"Password" : "პაროლი",
+ "Password confirmation is required" : "საჭიროა პაროლის დამოწმება",
"Server-side encryption" : "სერვერული-მხარის შიფრაცია",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "სერვერული-მხარის შიფრაცია იძლევა სერვერზე ატვირთული ფაილების შიფრაციის საშუალებას. ეს ფუნქცია ლიმიტს აწესებს მოქმედებაზე, ასე რომ გააქტიურედ მხოლოდ აუცილებლობისას.",
"Enable server-side encryption" : "სერვერული-მხარის შიფრაციის ამოქმედება",
@@ -154,56 +119,33 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "იცოდეთ, შიფრაცია ყოველთვის ზრდის ფაილის ზომას.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "ყოველთვის კარგია თქვენი მონაცემების დაზღვევა, შიფრაციის შემთხვევაში თვენს მონაცემებთან ერთად აუცილებლად დააზღვიეთ შიფრაციის გასაღებებიც.",
"This is the final warning: Do you really want to enable encryption?" : "ეს ბოლო გაფრთხილებაა: ნამდვილად გსურთ შიფრაციის ამოქმედება?",
+ "Cancel" : "უარყოფა",
+ "Confirm" : "დადასტურება",
"Submit" : "გაგზავნა",
- "Current password" : "მიმდინარე პაროლი",
- "New password" : "ახალი პაროლი",
- "Change password" : "პაროლის შეცვლა",
- "Picture provided by original account" : "სურათი ორიგინალი ანგარიშიდან",
- "No email address set" : "ელ-ფოსტის მისამართი არაა დაყენებული",
- "Help translate" : "თარგმნის დახმარება",
- "Your phone number" : "თქვენი ტელეფონის ნომერი",
- "Your website" : "თქვენი ვებ-საიტი",
- "Add" : "დამატება",
- "Create" : "შექმნა",
- "Change" : "შეცვლა",
- "Delete" : "წაშლა",
- "Display name" : "დისპლეი სახელი",
- "Email" : "ელ-ფოსტა",
- "Quota" : "ქვოტა",
- "Language" : "ენა",
- "Avatar" : "ავატარი",
- "Group admin for" : "ადმინისტრატორის შეჯგუფება",
- "Storage location" : "საცავის ადგილმდებარეობა",
- "Last login" : "ბოლო ავტორიზაცია",
- "Account actions" : "ანგარიშის ქმედებები",
- "{size} used" : "მოხმარებულია {size}",
- "Delete account" : "ანგარიშის გაუქმება",
- "Done" : "დასრულებულია",
- "Edit" : "შეცვლა",
- "Show last login" : "ბოლო ავტორიზაციის ჩვენება",
- "Send email" : "ელ-წერილის გაგზავნა",
- "Default quota" : "საწყისი კვოტა",
- "Unnamed device" : "უსახელო მოწყობილობა",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "როგორც ადმინისტრატორს შეგიძლიათ გაზიარების ქცევის კორექტირება. დამატებითი ინფორმაციისთვის იხილეთ დოკუმენტაცია.",
- "Admins" : "ადმინისტრატორები",
"Sending…" : "იგზავნება…",
"Email sent" : "ელ-წერილი გაიგზავნა",
"Location" : "ადგილმდებარეობა",
"Profile picture" : "პროფილის სურათი",
"About" : "შესახებ",
"Full name" : "სრული სახელი",
+ "Email" : "ელ-ფოსტა",
"Phone number" : "ტელეფონის ნომერი",
"Website" : "ვებ-საიტი",
+ "Language" : "ენა",
"Your apps" : "თქვენი აპლიკაციები",
"Disabled apps" : "არამოქმედი აპლიკაციები",
"Updates" : "განახლებები",
"App bundles" : "აპლიკაციის შეკვრები",
"Hide" : "დამალვა",
+ "Update to {version}" : "განაახლეთ ვერსიაზე {version}",
"Disable" : "გამორთვა",
+ "{size} used" : "მოხმარებულია {size}",
"Unknown" : "უცნობია",
"Never" : "არასდროს",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "აპლიკაცია ამოქმედდა, თუმცა საჭიროებს განახლებას. 5 წამში გადამისამართდებით განახლების გვერდზე.",
"Error" : "შეცდომა",
+ "Default quota" : "საწყისი კვოტა",
+ "Documentation" : "დოკუმენტაცია",
"Forum" : "ფორუმი",
"SSL" : "SSL",
"Open documentation" : "ღია დოკუმენტაცია",
@@ -218,14 +160,12 @@ OC.L10N.register(
"Credentials" : "უფლებამოსილებანი",
"SMTP Password" : "SMTP მომხმარებლის პაროლი",
"Save" : "შენახვა",
+ "Send email" : "ელ-წერილის გაგზავნა",
"Security & setup warnings" : "უსაფრთხოების და მოწყობის გაფრთხილებები",
"All checks passed." : "ყველა შემოწმებამ ჩაიარა დადებითად.",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "განავითარა {communityopen}Nextcloud საზოგადოებამ{linkclose}, {githubopen}კოდი{linkclose} is ლიცენზირებულია {licenseopen}AGPL ლიცენზიით{linkclose}.",
"Like our Facebook page" : "მოიწონეთ ჩვენი Facebook გვერდი",
"Check out our blog" : "იხილეთ ჩვენი ბლოგი",
- "Subscribe to our newsletter" : "გამოიწერეთ ჩვენი სიახლეები",
- "Username" : "მომხმარებლის სახელი",
- "User backend" : "მომხმარებელის ბექენდი",
- "Follow us on Twitter" : "გამოგვყევით Twitter-ზე"
+ "Subscribe to our newsletter" : "გამოიწერეთ ჩვენი სიახლეები"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/settings/l10n/ka_GE.json b/apps/settings/l10n/ka_GE.json
index 1e854b08572..b7525791d8c 100644
--- a/apps/settings/l10n/ka_GE.json
+++ b/apps/settings/l10n/ka_GE.json
@@ -103,44 +103,9 @@
"Actions" : "მოქმედებები",
"No apps found for your version" : "აპლიკაციები თქვენი ვერსიისთვის ვერ იქნა ნაპოვნი",
"Group name" : "ჯგუფის სახელი",
- "Daemon" : "დაემონი",
- "Display Name" : "დისპლეი სახელი",
- "Learn more" : "შეიტყვეთ მეტი",
- "Confirm" : "დადასტურება",
- "Cancel" : "უარყოფა",
- "Description" : "აღწერილობა",
- "View in store" : "იხილეთ store-ში",
- "Visit website" : "საიტზე სტუმრობა",
- "Admin documentation" : "ადმინისტრატორის დოკუმენტაცია",
- "Developer documentation" : "დეველოპერის დოკუმენტაცია",
- "Details" : "დეტალები",
- "All" : "ყველა",
- "No results" : "შედეგები არაა",
- "Update to {version}" : "განაახლეთ ვერსიაზე {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "ეს აპლიკაცია არ საზღვრავს Nextcloud-ის მინიმალურ ვერსიას. სამომავლოდ ეს ჩაითვლება შეცდომად.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "ეს აპლიკაცია არ საზღვრავს Nextcloud-ის მაქსიმალურ ვერსიას. სამომავლოდ ეს ჩაითვლება შეცდომად.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "ეს აპლიკაცია ვერ დაყენდა რადგან შემდეგი დამოკიდებულებები არაა დაკმაყოფილებული:",
- "Categories" : "კატეგორიები",
- "Resources" : "რესურსები",
- "Documentation" : "დოკუმენტაცია",
- "Report a bug" : "განაცხადეთ შეცდომის შესახებ",
- "Request feature" : "მოითხოვეთ ფუნქცია",
- "Ask questions or discuss" : "იკითხეთ ან განიხილეთ",
- "Rate" : "შეაფასეთ",
- "Changelog" : "ცვლილებების ლოგი",
- "Google Chrome for Android" : "Google Chrome Android-ისთვის",
- "This session" : "ეს სესია",
- "Allow filesystem access" : "ფაილ-სისტემაზე წვდომის მინიჭება",
- "Rename" : "სახელის შეცვლა",
- "Revoke" : "წვდომის გაუქმება",
- "Device" : "მოწყობილობა",
- "Last activity" : "ბოლო აქტივობა",
- "Web, desktop and mobile clients currently logged in to your account." : "ვებ, დესკტოპ და მობილური კლიენტები ამჟამად ავტორიზირებული თქვენს ანგარიშზე.",
- "Error while creating device token" : "მოწყობილობის ტოკენის ჩატვირთვისას წარმოიქმნა შეცდომა",
- "App name" : "აპლიკაციის სახელი",
- "Create new app password" : "ახალი აპლიკაციის პაროლის შექმნა",
"Login" : "ლოგინი",
"Password" : "პაროლი",
+ "Password confirmation is required" : "საჭიროა პაროლის დამოწმება",
"Server-side encryption" : "სერვერული-მხარის შიფრაცია",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "სერვერული-მხარის შიფრაცია იძლევა სერვერზე ატვირთული ფაილების შიფრაციის საშუალებას. ეს ფუნქცია ლიმიტს აწესებს მოქმედებაზე, ასე რომ გააქტიურედ მხოლოდ აუცილებლობისას.",
"Enable server-side encryption" : "სერვერული-მხარის შიფრაციის ამოქმედება",
@@ -152,56 +117,33 @@
"Be aware that encryption always increases the file size." : "იცოდეთ, შიფრაცია ყოველთვის ზრდის ფაილის ზომას.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "ყოველთვის კარგია თქვენი მონაცემების დაზღვევა, შიფრაციის შემთხვევაში თვენს მონაცემებთან ერთად აუცილებლად დააზღვიეთ შიფრაციის გასაღებებიც.",
"This is the final warning: Do you really want to enable encryption?" : "ეს ბოლო გაფრთხილებაა: ნამდვილად გსურთ შიფრაციის ამოქმედება?",
+ "Cancel" : "უარყოფა",
+ "Confirm" : "დადასტურება",
"Submit" : "გაგზავნა",
- "Current password" : "მიმდინარე პაროლი",
- "New password" : "ახალი პაროლი",
- "Change password" : "პაროლის შეცვლა",
- "Picture provided by original account" : "სურათი ორიგინალი ანგარიშიდან",
- "No email address set" : "ელ-ფოსტის მისამართი არაა დაყენებული",
- "Help translate" : "თარგმნის დახმარება",
- "Your phone number" : "თქვენი ტელეფონის ნომერი",
- "Your website" : "თქვენი ვებ-საიტი",
- "Add" : "დამატება",
- "Create" : "შექმნა",
- "Change" : "შეცვლა",
- "Delete" : "წაშლა",
- "Display name" : "დისპლეი სახელი",
- "Email" : "ელ-ფოსტა",
- "Quota" : "ქვოტა",
- "Language" : "ენა",
- "Avatar" : "ავატარი",
- "Group admin for" : "ადმინისტრატორის შეჯგუფება",
- "Storage location" : "საცავის ადგილმდებარეობა",
- "Last login" : "ბოლო ავტორიზაცია",
- "Account actions" : "ანგარიშის ქმედებები",
- "{size} used" : "მოხმარებულია {size}",
- "Delete account" : "ანგარიშის გაუქმება",
- "Done" : "დასრულებულია",
- "Edit" : "შეცვლა",
- "Show last login" : "ბოლო ავტორიზაციის ჩვენება",
- "Send email" : "ელ-წერილის გაგზავნა",
- "Default quota" : "საწყისი კვოტა",
- "Unnamed device" : "უსახელო მოწყობილობა",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "როგორც ადმინისტრატორს შეგიძლიათ გაზიარების ქცევის კორექტირება. დამატებითი ინფორმაციისთვის იხილეთ დოკუმენტაცია.",
- "Admins" : "ადმინისტრატორები",
"Sending…" : "იგზავნება…",
"Email sent" : "ელ-წერილი გაიგზავნა",
"Location" : "ადგილმდებარეობა",
"Profile picture" : "პროფილის სურათი",
"About" : "შესახებ",
"Full name" : "სრული სახელი",
+ "Email" : "ელ-ფოსტა",
"Phone number" : "ტელეფონის ნომერი",
"Website" : "ვებ-საიტი",
+ "Language" : "ენა",
"Your apps" : "თქვენი აპლიკაციები",
"Disabled apps" : "არამოქმედი აპლიკაციები",
"Updates" : "განახლებები",
"App bundles" : "აპლიკაციის შეკვრები",
"Hide" : "დამალვა",
+ "Update to {version}" : "განაახლეთ ვერსიაზე {version}",
"Disable" : "გამორთვა",
+ "{size} used" : "მოხმარებულია {size}",
"Unknown" : "უცნობია",
"Never" : "არასდროს",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "აპლიკაცია ამოქმედდა, თუმცა საჭიროებს განახლებას. 5 წამში გადამისამართდებით განახლების გვერდზე.",
"Error" : "შეცდომა",
+ "Default quota" : "საწყისი კვოტა",
+ "Documentation" : "დოკუმენტაცია",
"Forum" : "ფორუმი",
"SSL" : "SSL",
"Open documentation" : "ღია დოკუმენტაცია",
@@ -216,14 +158,12 @@
"Credentials" : "უფლებამოსილებანი",
"SMTP Password" : "SMTP მომხმარებლის პაროლი",
"Save" : "შენახვა",
+ "Send email" : "ელ-წერილის გაგზავნა",
"Security & setup warnings" : "უსაფრთხოების და მოწყობის გაფრთხილებები",
"All checks passed." : "ყველა შემოწმებამ ჩაიარა დადებითად.",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "განავითარა {communityopen}Nextcloud საზოგადოებამ{linkclose}, {githubopen}კოდი{linkclose} is ლიცენზირებულია {licenseopen}AGPL ლიცენზიით{linkclose}.",
"Like our Facebook page" : "მოიწონეთ ჩვენი Facebook გვერდი",
"Check out our blog" : "იხილეთ ჩვენი ბლოგი",
- "Subscribe to our newsletter" : "გამოიწერეთ ჩვენი სიახლეები",
- "Username" : "მომხმარებლის სახელი",
- "User backend" : "მომხმარებელის ბექენდი",
- "Follow us on Twitter" : "გამოგვყევით Twitter-ზე"
+ "Subscribe to our newsletter" : "გამოიწერეთ ჩვენი სიახლეები"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/ko.js b/apps/settings/l10n/ko.js
index 12122bd24ac..e50173437d4 100644
--- a/apps/settings/l10n/ko.js
+++ b/apps/settings/l10n/ko.js
@@ -372,74 +372,6 @@ OC.L10N.register(
"Could not load section content from app store." : "앱 스토어에서 섹션 내용을 가져올 수 없음",
"Loading" : "불러오는 중",
"Fetching the latest news…" : "최신 소식 가져오는 중...",
- "Carousel" : "캐러셀",
- "Previous slide" : "이전 슬라이드",
- "Next slide" : "다음 슬라이드",
- "Choose slide to display" : "표시할 슬라이드 선택",
- "{index} of {total}" : "{total}개 중 {index}",
- "Daemon" : "데몬",
- "Deploy Daemon" : "배포 데몬",
- "Type" : "종류",
- "Display Name" : "표시 이름",
- "GPUs support" : "GPU 지원<br>",
- "Compute device" : "컴퓨팅 장치",
- "Learn more" : "자세히 알아보기",
- "Environment variables" : "환경 변수",
- "Read-only" : "읽기 전용",
- "Confirm" : "확인",
- "Cancel" : "취소",
- "Description" : "설명",
- "View in store" : "스토어에서 보기",
- "Visit website" : "웹 사이트 방문",
- "Usage documentation" : "사용법 문서",
- "Admin documentation" : "관리 문서",
- "Developer documentation" : "개발자 문서",
- "Details" : "자세히",
- "All" : "모두",
- "Limit app usage to groups" : "앱 사용을 그룹으로 제한합니다.",
- "No results" : "결과 없음",
- "Update to {version}" : "{version}(으)로 업데이트",
- "Default Deploy daemon is not accessible" : "기본 배포 데몬에 액세스할 수 없음",
- "Delete data on remove" : "제거 시 데이터 삭제",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:",
- "Latest updated" : "최신 업데이트됨",
- "Author" : "저자",
- "Categories" : "분류",
- "Resources" : "자원",
- "Documentation" : "문서",
- "Interact" : "상호작용",
- "Report a bug" : "버그 신고",
- "Request feature" : "기능 요청",
- "Ask questions or discuss" : "질문 및 토론",
- "Rate the app" : "앱 평가하기",
- "Rate" : "평가",
- "Changelog" : "변경 기록",
- "Google Chrome for Android" : "Android용 Google 크롬",
- "{productName} iOS app" : "{productName} iOS 앱",
- "{productName} Android app" : "{productName} Android 앱",
- "{productName} Talk for iOS" : "{productName} iOS용 Talk",
- "{productName} Talk for Android" : "{productName} Android용 Talk",
- "Sync client" : "클라이언드 동기화",
- "This session" : "이 세션",
- "Device name" : "기기 이름",
- "Cancel renaming" : "이름 변경 취소",
- "Save new name" : "새 이름 저장",
- "Marked for remote wipe" : "원격 제거를 위해 지정됨",
- "Device settings" : "디바이스 설정",
- "Allow filesystem access" : "파일시스템 접근 허용",
- "Rename" : "이름 바꾸기",
- "Revoke" : "취소",
- "Wipe device" : "디바이스 지우기",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "기기 제거가 아직 시작되지 않았다면, 이 토큰을 취소하여 기기의 제거를 방지할 수 있습니다.",
- "Device" : "장치",
- "Last activity" : "최근 활동",
- "Devices & sessions" : "디바이스 & 세션",
- "Web, desktop and mobile clients currently logged in to your account." : "사용자 계정으로 로그인된 웹, 데스크톱, 모바일 클라이언트 목록입니다.",
- "Error while creating device token" : "장치 토큰을 만드는 중 오류가 발생했습니다",
- "App name" : "앱 이름",
- "Create new app password" : "새로운 앱 암호 만들기",
"App password copied!" : "앱 암호가 복사되었습니다!",
"Copy app password" : "앱 암호 복사",
"Login name copied!" : "로그인 이름이 복사되었습니다!",
@@ -467,6 +399,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "프로필 기본 설정을 업데이트 할 수 없음",
"Profile" : "프로필",
"Enable or disable profile by default for new accounts." : "신규 계정에 대한 프로필 기본 사용 여부를 설정하십시오.",
+ "Password confirmation is required" : "암호 확인이 필요합니다",
"Failed to save setting" : "설정 저장 실패",
"Unable to update server side encryption config" : "서버 측 암호화 설정을 갱신할 수 없음",
"Server-side encryption" : "서버 측 암호화",
@@ -482,160 +415,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "암호화된 파일의 크기는 항상 커집니다.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "데이터를 주기적으로 백업하는 것을 추천하며, 암호화를 사용하고 있다면 데이터와 더불어 암호화 키도 백업하십시오.",
"This is the final warning: Do you really want to enable encryption?" : "마지막 경고입니다. 암호화를 활성화하시겠습니까?",
- "Failed to remove group \"{group}\"" : "그룹 \"{group}\"을(를) 삭제할 수 없음",
"Please confirm the group removal" : "그룹 지우기를 확인해 주십시오",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "그룹 \"{group}\"을(를) 지우려고 합니다. 그룹의 계정은 삭제되지 않습니다.",
+ "Cancel" : "취소",
+ "Confirm" : "확인",
"Submit" : "제출",
"Rename group" : "그룹 이름 바꾸기",
- "Remove group" : "그룹 지우기",
- "Current password" : "현재 암호",
- "New password" : "새 암호",
- "Change password" : "암호 변경",
- "Choose your profile picture" : "프로필 사진을 선택하십시오",
- "Please select a valid png or jpg file" : "올바른 PNG 또는 JPG 파일을 선택하십시오",
- "Error setting profile picture" : "프로필 사진 설정 중 오류 발생",
- "Error cropping profile picture" : "프로필 사진을 자르는 중 오류 발생",
- "Error saving profile picture" : "프로필 사진 저장 중 오류 발생",
- "Error removing profile picture" : "프로필 사진 삭제 중 오류 발생",
- "Your profile picture" : "내 프로필 사진",
- "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" : "원래 계정에서 제공하는 사진",
- "Set as profile picture" : "프로필 사진으로 설정",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "프로필사진이 모든 곳에 갱신될 때까지 최대 24시간이 걸릴 수 있습니다.",
- "Unable to update date of birth" : "생일 변경 실패",
- "Enter your date of birth" : "생일을 입력하세요",
- "You are a member of the following groups:" : "당신은 다음 그룹의 멤버입니다:",
- "Your full name" : "내 전체 이름",
- "Email options" : "이메일 옵션",
- "Remove primary email" : "주 이메일 삭제",
- "Delete email" : "이메일 삭제",
- "This address is not confirmed" : "이 주소는 확인되지 않음",
- "Unset as primary email" : "주 이메일 지정 해제",
- "Set as primary email" : "주 이메일로 지정",
- "Additional email address {index}" : "추가 이메일 주소 {index}",
- "Unable to delete primary email address" : "주 이메일 주소를 삭제할 수 없음",
- "Unable to update primary email address" : "주 이메일 주소를 갱신할 수 없음",
- "Unable to add additional email address" : "추가 이메일 주소를 추가할 수 없음",
- "Unable to update additional email address" : "추가 이메일 주소를 갱신할 수 없음",
- "Unable to delete additional email address" : "추가 이메일 주소를 삭제할 수 없음",
- "Primary email for password reset and notifications" : "암호 초기화 및 알림 수신용 주 이메일 주소",
- "No email address set" : "이메일 주소가 설정되지 않음",
- "Your handle" : "내 아이디",
- "Derived from your locale ({weekDayName})" : "지역의 규정을 바탕으로 함({weekDayName})",
- "Your headline" : "내 표제",
- "Unable to update language" : "언어를 갱신할 수 없음",
- "Languages" : "언어",
- "Help translate" : "번역 돕기",
- "No language set" : "언어가 설정되지 않음",
- "Unable to update locale" : "지역을 갱신할 수 없음",
- "Locales" : "지역",
- "Week starts on {firstDayOfWeek}" : "일주일이 {firstDayOfWeek}에 시작함",
- "No locale set" : "지역이 설정되지 않음",
- "Your city" : "내 도시",
- "Your organisation" : "내 조직",
- "Your phone number" : "내 휴대폰 번호",
- "Edit your Profile visibility" : "프로필 표시 여부 편집",
- "Unable to update profile enabled state" : "프로필 활성화 여부를 갱신할 수 없음",
- "Enable profile" : "프로필 활성화",
- "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." : "표시 여부나 표시 범위 설정은 더 좁은 쪽이 우선 적용됩니다. 예를 들어, 표시 여부는 \"전체 공개\", 표시 범위는 \"개인\"으로 설정되어 있다면, 해당 항목은 \"개인\"에게만 보여집니다.",
- "Unable to update visibility of {displayId}" : "{displayId}의 표시 여부를 갱신할 수 없음",
- "Your role" : "내 직책",
- "Your X (formerly Twitter) handle" : "내 X (구 Twitter) 아이디",
- "Your website" : "내 웹 사이트",
- "Invalid value" : "잘못된 값",
- "Unable to update {property}" : "{property}을(를) 갱신할 수 없음",
- "No {property} set" : "{property}이(가) 설정되지 않음",
- "Add additional email" : "추가 이메일 추가",
- "Add" : "추가",
- "Create" : "생성",
- "Change" : "변경",
- "Delete" : "삭제",
- "Reshare" : "재공유",
- "Default language" : "기본 언어",
- "Common languages" : "공통 언어",
- "Other languages" : "다른 언어",
- "Password change is disabled because the master key is disabled" : "마스터 키가 비활성화 되어 암호 변경이 비활성화 됨",
- "No accounts" : "계정 없음",
- "Loading accounts …" : "계정 불러오는 중 ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "계정 목록입니다. 성능 저하를 막기 위해 이 목록을 완전히 처리하지 않았습니다. 계속 탐색하면 남은 목록이 자동으로 처리됩니다.",
- "Manager" : "담당 관리자",
- "New account" : "새로운 계정",
- "Display name" : "표시 이름",
- "Either password or email is required" : "암호 또는 이메일이 필요합니다",
- "Password (required)" : "암호 (필수)",
- "Email (required)" : "이메일 (필수)",
- "Email" : "이메일",
- "Quota" : "할당량",
- "Language" : "언어",
- "Set default language" : "기본 언어 지정",
- "Total rows summary" : "총 행 요약",
- "Scroll to load more rows" : "스크롤 하여 더 불러오기",
- "Avatar" : "아바타",
- "Account name" : "계정 아이디",
- "Group admin for" : "다음 그룹의 관리자:",
- "Storage location" : "저장소 위치",
- "Last login" : "마지막 로그인",
- "Account actions" : "계정 동작",
- "{size} used" : "{size} 사용됨",
- "Delete account" : "계정 삭제",
- "Disable account" : "계정 비활성화",
- "Enable account" : "계정 활성화",
- "Resend welcome email" : "환영 메일 다시 보내기",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "기기를 분실했거나 조직에서 이탈할 경우, 이를 통해 모든 기기에 있는 {userid} 관련 Nextcloud 데이터를 원격으로 삭제할 수 있습니다. 해당 기기들이 인터넷에 연결된 경우에 한하여 작동합니다.",
- "Remote wipe of devices" : "기기 원격 제거",
- "Wipe {userid}'s devices" : "{userid}의 기기 제거",
- "Wiped {userid}'s devices" : "{userid}의 기기를 제거함",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "모든 개인 파일, 앱, 데이터 등을 포함한 {userid} 계정을 완전히 삭제하기",
- "Account deletion" : "계정 삭제",
- "Delete {userid}'s account" : "{userid}의 계정 삭제",
- "Display name was successfully changed" : "표시 이름이 성공적으로 변경됨",
- "Password was successfully changed" : "암호를 성공적으로 변경함",
- "Email was successfully changed" : "이메일을 성공적으로 변경함",
- "Welcome mail sent!" : "환영 메일을 보냈습니다!",
- "Loading account …" : "계정 불러오는 중 ...",
- "Change display name" : "표시 이름 변경",
- "Set new password" : "새 암호 설정",
- "You do not have permissions to see the details of this account" : "이 계정의 상세정보를 볼 권한이 없습니다.",
- "Set new email address" : "새 이메일 주소 설정",
- "Add account to group" : "계정을 그룹에 추가",
- "Set account as admin for" : "계정을 다음에 대한 관리자로 설정: ",
- "Select account quota" : "계정 할당량 설정",
- "Set the language" : "언어 설정",
- "Toggle account actions menu" : "계정 동작 메뉴 켜고 끄기",
- "Done" : "완료",
- "Edit" : "편집",
- "Account management settings" : "계정 관리 설정",
- "Visibility" : "표시 여부",
- "Show language" : "언어 보이기",
- "Show account backend" : "계정 백엔드 보이기",
- "Show storage path" : "스토리지 경로 보이기",
- "Show last login" : "마지막 로그인 보이기",
- "Sorting" : "정렬",
- "Send email" : "이메일 보내기",
- "Send welcome email to new accounts" : "새 계정에 환영 이메일 보내기",
- "Defaults" : "기본값",
- "Default quota" : "기본 할당량",
- "Select default quota" : "기본 할당량 설정",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn 기기 등록을 마치는 중 오류 발생",
- "Passwordless authentication requires a secure connection." : "무암호 인증을 위해 보안 연결이 필요합니다.",
- "Add WebAuthn device" : "WebAuthn 기기 추가",
- "Please authorize your WebAuthn device." : "내 WebAuthn 기기를 인증하십시오.",
- "Adding your device …" : "장치 추가 중 …",
- "Unnamed device" : "이름 없는 장치",
- "Passwordless Authentication" : "무암호 인증",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "FIDO2 기준을 준수하여 계정에 무암호 인증을 설정하세요.",
- "No devices configured." : "설정된 기기가 없습니다.",
- "The following devices are configured for your account:" : "다음의 기기가 계정에 설정되었습니다:",
- "Your browser does not support WebAuthn." : "WebAuthn이 현재 브라우저를 지원하지 않습니다.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "관리자로 공유 행동을 미세 조정할 수 있습니다. 더 많은 정보를 보려면 문서를 참조하십시오.",
- "You need to enable the File sharing App." : "파일 공유 앱을 활성화해야 합니다.",
- "Developer documentation ↗" : "개발자 문서 ↗",
- "Admins" : "관리자",
- "Account group: {group}" : "계정 그룹: {group}",
- "Account management" : "계정 관리",
"Sending…" : "보내는 중…",
"Email sent" : "이메일 보냄",
"Location" : "위치",
@@ -643,6 +427,7 @@ OC.L10N.register(
"About" : "정보",
"Full name" : "전체 이름",
"Additional email" : "추가 이메일",
+ "Email" : "이메일",
"Fediverse (e.g. Mastodon)" : "Fediverse (예: Mastodon)",
"Headline" : "표제",
"Organisation" : "조직",
@@ -651,6 +436,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (구 Twitter)",
"Website" : "웹사이트",
"Profile visibility" : "프로필 표시 여부",
+ "Language" : "언어",
"Locale" : "지역",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "이 설정은 파일 공유, 달력 초대 등 핵심 기능에 필요하므로 비울 수 없습니다",
"Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "이 계정에 대한 연합이 비활성화되어 현재 사용할 수 없는 상태입니다. 시스템 관리자에게 문의하십시오.",
@@ -664,12 +450,14 @@ OC.L10N.register(
"Show to everyone" : "전체 공개",
"Show to logged in accounts only" : "로그인된 계정에 공개",
"Hide" : "비공개",
+ "Update to {version}" : "{version}(으)로 업데이트",
"Deploy and Enable" : "배포 및 활성화",
"Download and enable" : "다운로드 및 사용",
"Disable" : "사용 안함",
"Allow untested app" : "확인되지 않은 앱 허용",
"The app will be downloaded from the App Store" : "이 앱이 앱 스토어에서 다운로드됩니다.",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "이 앱은 현재 Nextcloud 버젼과 호환되지 않습니다. 이 앱을 설치하면, 제대로 작동하지 않을 수 있습니다.",
+ "{size} used" : "{size} 사용됨",
"Unknown" : "알 수 없음",
"Never" : "하지 않음",
"Could not register device: Network error" : "기기를 등록할 수 없음: 네트워크 오류",
@@ -686,8 +474,10 @@ OC.L10N.register(
"Error while updating device token name" : "기기 토큰 이름을 갱신하는 중 오류 발생",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "이 네트워크에 너무 요청이 많습니다. 나중에 다시 시도하십시오. 이것이 오류일 경우 관리자에게 문의하십시오.",
"Error" : "오류",
+ "Default quota" : "기본 할당량",
"Account documentation" : "계정 문서",
"Administration documentation" : "관리 문서",
+ "Documentation" : "문서",
"Forum" : "포럼",
"General documentation" : "일반 문서",
"Legal notice" : "법적 고지",
@@ -709,6 +499,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP 암호",
"Save" : "저장",
"Test and verify email settings" : "이메일 설정 테스트 및 검증",
+ "Send email" : "이메일 보내기",
"Security & setup warnings" : "보안 및 설치 경고",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "정확한 설정은 인스턴스의 보안과 성능에 중요합니다. 아래의 자동 진단 결과를 참조하여 최적의 설정으로 조정하십시오. 더 자세한 정보를 위해서 링크된 문서를 참고하세요.",
"All checks passed." : "모든 검사를 통과했습니다.",
@@ -727,45 +518,11 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "사용자의 계정을 더욱 안전하게 보호하기 위해 암호와 함께 2단계 인증을 사용하세요.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud에 연결하기 위해 서드파티 애플리케이션을 사용할 경우 2차 인증을 활성화하기 앞서 각 애플리케이션에 대한 앱 암호를 생성, 설정하십시오.",
"Logged in account must be a subadmin" : "로그인한 계정은 부관리자여야 합니다.",
- "Missing optional index \"%s\" in table \"%s\"." : "표 \"%s\"의 optional index \"%s\"이(가) 사라졌습니다",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "데이터베이스에 일부 인덱스가 없습니다. 큰 테이블에 인덱스를 추가하는 데 시간이 걸리기 때문에 자동으로 추가하지 않았습니다. 명령행에서 \"occ db:add-missing-indices\" 명령을 실행하여 인스턴스를 실행하는 동안 수동으로 인덱스를 추가할 수 있습니다. 해당 테이블에 인덱스를 추가하면 질의 속도가 다시 빨라집니다.",
"File locking" : "파일 잠금",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "트랜잭션 파일 잠금이 비활성화되어 있어 동시 접근 시 문제가 발생할 수 있습니다. config.php에서 \"filelocking.enabled\"를 활성화하여 이 문제를 방지하십시오.",
"The PHP memory limit is below the recommended value of %s." : "PHP 메모리 제한이 추천값인 %s보다 작습니다.",
"for WebAuthn passwordless login" : ": WebAuthn 무암호 인증을 위해 사용",
"for WebAuthn passwordless login, and SFTP storage" : ": WebAuthn 무암호 인증 및 SFTP 저장소를 위해 사용",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "현재 PHP %s이(가) 동작 중입니다. Nextcloud 27에서 PHP 8.0의 지원이 중단되었습니다. Nextcloud 28은 최소 PHP 8.1이 요구됩니다. 가능한 빨리 PHP Group에서 제공하는 공식 지원 PHP 버전으로 업그레이드 하십시오.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "현재 MariaDB \"%s\" 버전이 사용되고 있습니다. Nextcloud 21 및 그 이상의 버전은 이를 지원하지 않습니다. MariaDB 10.2 이상을 사용하십시오.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "현재 MySQL \"%s\" 버전이 사용되고 있습니다. Nextcloud 21 및 그 이상의 버전은 이를 지원하지 않습니다. MySQL 8.0 혹은 MariaDB 10.2 이상을 사용하십시오.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "현재 PostgreSQL \"%s\" 버전이 사용되고 있습니다. Nextcloud 21 및 그 이상의 버전은 이를 지원하지 않습니다. PostgreSQL 9.6 이상을 사용하십시오.",
- "Speech-To-Text" : "음성인식",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "음성인식 기능을 채용한 앱이 이곳에 표시됩니다. 음성인식 기능을 사용할 앱을 선택하십시오. ",
- "None of your currently installed apps provide Speech-To-Text functionality" : "현재 설치된 앱 중 음성인식 기능을 제공하는 것이 없습니다",
- "None of your currently installed apps provide Text processing functionality" : "현재 설치된 앱 중 문장처리 기술을 제공하는 것이 없습니다",
- "Set default expiration date for shares" : "공유에 대한 기본 만료 날짜 설정",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "공유 대화창에서 시스템 주소록에 있는 사용자 이름을 자동으로 채울 수 있도록 허용",
- "Your biography" : "내 소개문구",
- "You are using <strong>{usage}</strong>" : "<strong>{usage}</strong>를 사용하고 있습니다.",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "전체 <strong>{totalSpace}</strong> 중 <strong>{usage}</strong>(<strong>{usageRelative}%</strong>)를 사용하고 있습니다.",
- "Set user manager" : "사용자 담당 관리자 지정",
- "Username will be autogenerated" : "사용자 이름이 자동으로 생성됩니다",
- "Username (required)" : "사용자 이름 (필수)",
- "New user" : "새 사용자",
- "Groups (required)" : "그룹 (필수)",
- "Set user groups" : "사용자 그룹 설정",
- "Set user as admin for …" : "사용자를 다음에 대한 관리자로 설정 ...",
- "Set user quota" : "사용자 할당량 지정",
- "Add new user" : "새 사용자 추가",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount}명의 사용자 ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount}명의 사용자"],
- "Loading users …" : "사용자 불러오는 중 ...",
- "Username" : "사용자 이름",
- "User backend" : "사용자 백엔드",
- "User actions" : "사용자 동작",
- "Add user to group" : "사용자를 그룹에 추가",
- "Server error while trying to add WebAuthn device" : "WebAuthn 기기 추가 시도 중 서버 오류 발생",
- "Name your device" : "장치 이름 설정",
- "Active accounts" : "활성화된 계정",
- "Follow us on Twitter" : "트위터에서 팔로하기"
+ "Set default expiration date for shares" : "공유에 대한 기본 만료 날짜 설정"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/ko.json b/apps/settings/l10n/ko.json
index 594676ef1ed..a0f291efe98 100644
--- a/apps/settings/l10n/ko.json
+++ b/apps/settings/l10n/ko.json
@@ -370,74 +370,6 @@
"Could not load section content from app store." : "앱 스토어에서 섹션 내용을 가져올 수 없음",
"Loading" : "불러오는 중",
"Fetching the latest news…" : "최신 소식 가져오는 중...",
- "Carousel" : "캐러셀",
- "Previous slide" : "이전 슬라이드",
- "Next slide" : "다음 슬라이드",
- "Choose slide to display" : "표시할 슬라이드 선택",
- "{index} of {total}" : "{total}개 중 {index}",
- "Daemon" : "데몬",
- "Deploy Daemon" : "배포 데몬",
- "Type" : "종류",
- "Display Name" : "표시 이름",
- "GPUs support" : "GPU 지원<br>",
- "Compute device" : "컴퓨팅 장치",
- "Learn more" : "자세히 알아보기",
- "Environment variables" : "환경 변수",
- "Read-only" : "읽기 전용",
- "Confirm" : "확인",
- "Cancel" : "취소",
- "Description" : "설명",
- "View in store" : "스토어에서 보기",
- "Visit website" : "웹 사이트 방문",
- "Usage documentation" : "사용법 문서",
- "Admin documentation" : "관리 문서",
- "Developer documentation" : "개발자 문서",
- "Details" : "자세히",
- "All" : "모두",
- "Limit app usage to groups" : "앱 사용을 그룹으로 제한합니다.",
- "No results" : "결과 없음",
- "Update to {version}" : "{version}(으)로 업데이트",
- "Default Deploy daemon is not accessible" : "기본 배포 데몬에 액세스할 수 없음",
- "Delete data on remove" : "제거 시 데이터 삭제",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:",
- "Latest updated" : "최신 업데이트됨",
- "Author" : "저자",
- "Categories" : "분류",
- "Resources" : "자원",
- "Documentation" : "문서",
- "Interact" : "상호작용",
- "Report a bug" : "버그 신고",
- "Request feature" : "기능 요청",
- "Ask questions or discuss" : "질문 및 토론",
- "Rate the app" : "앱 평가하기",
- "Rate" : "평가",
- "Changelog" : "변경 기록",
- "Google Chrome for Android" : "Android용 Google 크롬",
- "{productName} iOS app" : "{productName} iOS 앱",
- "{productName} Android app" : "{productName} Android 앱",
- "{productName} Talk for iOS" : "{productName} iOS용 Talk",
- "{productName} Talk for Android" : "{productName} Android용 Talk",
- "Sync client" : "클라이언드 동기화",
- "This session" : "이 세션",
- "Device name" : "기기 이름",
- "Cancel renaming" : "이름 변경 취소",
- "Save new name" : "새 이름 저장",
- "Marked for remote wipe" : "원격 제거를 위해 지정됨",
- "Device settings" : "디바이스 설정",
- "Allow filesystem access" : "파일시스템 접근 허용",
- "Rename" : "이름 바꾸기",
- "Revoke" : "취소",
- "Wipe device" : "디바이스 지우기",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "기기 제거가 아직 시작되지 않았다면, 이 토큰을 취소하여 기기의 제거를 방지할 수 있습니다.",
- "Device" : "장치",
- "Last activity" : "최근 활동",
- "Devices & sessions" : "디바이스 & 세션",
- "Web, desktop and mobile clients currently logged in to your account." : "사용자 계정으로 로그인된 웹, 데스크톱, 모바일 클라이언트 목록입니다.",
- "Error while creating device token" : "장치 토큰을 만드는 중 오류가 발생했습니다",
- "App name" : "앱 이름",
- "Create new app password" : "새로운 앱 암호 만들기",
"App password copied!" : "앱 암호가 복사되었습니다!",
"Copy app password" : "앱 암호 복사",
"Login name copied!" : "로그인 이름이 복사되었습니다!",
@@ -465,6 +397,7 @@
"Unable to update profile default setting" : "프로필 기본 설정을 업데이트 할 수 없음",
"Profile" : "프로필",
"Enable or disable profile by default for new accounts." : "신규 계정에 대한 프로필 기본 사용 여부를 설정하십시오.",
+ "Password confirmation is required" : "암호 확인이 필요합니다",
"Failed to save setting" : "설정 저장 실패",
"Unable to update server side encryption config" : "서버 측 암호화 설정을 갱신할 수 없음",
"Server-side encryption" : "서버 측 암호화",
@@ -480,160 +413,11 @@
"Be aware that encryption always increases the file size." : "암호화된 파일의 크기는 항상 커집니다.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "데이터를 주기적으로 백업하는 것을 추천하며, 암호화를 사용하고 있다면 데이터와 더불어 암호화 키도 백업하십시오.",
"This is the final warning: Do you really want to enable encryption?" : "마지막 경고입니다. 암호화를 활성화하시겠습니까?",
- "Failed to remove group \"{group}\"" : "그룹 \"{group}\"을(를) 삭제할 수 없음",
"Please confirm the group removal" : "그룹 지우기를 확인해 주십시오",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "그룹 \"{group}\"을(를) 지우려고 합니다. 그룹의 계정은 삭제되지 않습니다.",
+ "Cancel" : "취소",
+ "Confirm" : "확인",
"Submit" : "제출",
"Rename group" : "그룹 이름 바꾸기",
- "Remove group" : "그룹 지우기",
- "Current password" : "현재 암호",
- "New password" : "새 암호",
- "Change password" : "암호 변경",
- "Choose your profile picture" : "프로필 사진을 선택하십시오",
- "Please select a valid png or jpg file" : "올바른 PNG 또는 JPG 파일을 선택하십시오",
- "Error setting profile picture" : "프로필 사진 설정 중 오류 발생",
- "Error cropping profile picture" : "프로필 사진을 자르는 중 오류 발생",
- "Error saving profile picture" : "프로필 사진 저장 중 오류 발생",
- "Error removing profile picture" : "프로필 사진 삭제 중 오류 발생",
- "Your profile picture" : "내 프로필 사진",
- "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" : "원래 계정에서 제공하는 사진",
- "Set as profile picture" : "프로필 사진으로 설정",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "프로필사진이 모든 곳에 갱신될 때까지 최대 24시간이 걸릴 수 있습니다.",
- "Unable to update date of birth" : "생일 변경 실패",
- "Enter your date of birth" : "생일을 입력하세요",
- "You are a member of the following groups:" : "당신은 다음 그룹의 멤버입니다:",
- "Your full name" : "내 전체 이름",
- "Email options" : "이메일 옵션",
- "Remove primary email" : "주 이메일 삭제",
- "Delete email" : "이메일 삭제",
- "This address is not confirmed" : "이 주소는 확인되지 않음",
- "Unset as primary email" : "주 이메일 지정 해제",
- "Set as primary email" : "주 이메일로 지정",
- "Additional email address {index}" : "추가 이메일 주소 {index}",
- "Unable to delete primary email address" : "주 이메일 주소를 삭제할 수 없음",
- "Unable to update primary email address" : "주 이메일 주소를 갱신할 수 없음",
- "Unable to add additional email address" : "추가 이메일 주소를 추가할 수 없음",
- "Unable to update additional email address" : "추가 이메일 주소를 갱신할 수 없음",
- "Unable to delete additional email address" : "추가 이메일 주소를 삭제할 수 없음",
- "Primary email for password reset and notifications" : "암호 초기화 및 알림 수신용 주 이메일 주소",
- "No email address set" : "이메일 주소가 설정되지 않음",
- "Your handle" : "내 아이디",
- "Derived from your locale ({weekDayName})" : "지역의 규정을 바탕으로 함({weekDayName})",
- "Your headline" : "내 표제",
- "Unable to update language" : "언어를 갱신할 수 없음",
- "Languages" : "언어",
- "Help translate" : "번역 돕기",
- "No language set" : "언어가 설정되지 않음",
- "Unable to update locale" : "지역을 갱신할 수 없음",
- "Locales" : "지역",
- "Week starts on {firstDayOfWeek}" : "일주일이 {firstDayOfWeek}에 시작함",
- "No locale set" : "지역이 설정되지 않음",
- "Your city" : "내 도시",
- "Your organisation" : "내 조직",
- "Your phone number" : "내 휴대폰 번호",
- "Edit your Profile visibility" : "프로필 표시 여부 편집",
- "Unable to update profile enabled state" : "프로필 활성화 여부를 갱신할 수 없음",
- "Enable profile" : "프로필 활성화",
- "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." : "표시 여부나 표시 범위 설정은 더 좁은 쪽이 우선 적용됩니다. 예를 들어, 표시 여부는 \"전체 공개\", 표시 범위는 \"개인\"으로 설정되어 있다면, 해당 항목은 \"개인\"에게만 보여집니다.",
- "Unable to update visibility of {displayId}" : "{displayId}의 표시 여부를 갱신할 수 없음",
- "Your role" : "내 직책",
- "Your X (formerly Twitter) handle" : "내 X (구 Twitter) 아이디",
- "Your website" : "내 웹 사이트",
- "Invalid value" : "잘못된 값",
- "Unable to update {property}" : "{property}을(를) 갱신할 수 없음",
- "No {property} set" : "{property}이(가) 설정되지 않음",
- "Add additional email" : "추가 이메일 추가",
- "Add" : "추가",
- "Create" : "생성",
- "Change" : "변경",
- "Delete" : "삭제",
- "Reshare" : "재공유",
- "Default language" : "기본 언어",
- "Common languages" : "공통 언어",
- "Other languages" : "다른 언어",
- "Password change is disabled because the master key is disabled" : "마스터 키가 비활성화 되어 암호 변경이 비활성화 됨",
- "No accounts" : "계정 없음",
- "Loading accounts …" : "계정 불러오는 중 ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "계정 목록입니다. 성능 저하를 막기 위해 이 목록을 완전히 처리하지 않았습니다. 계속 탐색하면 남은 목록이 자동으로 처리됩니다.",
- "Manager" : "담당 관리자",
- "New account" : "새로운 계정",
- "Display name" : "표시 이름",
- "Either password or email is required" : "암호 또는 이메일이 필요합니다",
- "Password (required)" : "암호 (필수)",
- "Email (required)" : "이메일 (필수)",
- "Email" : "이메일",
- "Quota" : "할당량",
- "Language" : "언어",
- "Set default language" : "기본 언어 지정",
- "Total rows summary" : "총 행 요약",
- "Scroll to load more rows" : "스크롤 하여 더 불러오기",
- "Avatar" : "아바타",
- "Account name" : "계정 아이디",
- "Group admin for" : "다음 그룹의 관리자:",
- "Storage location" : "저장소 위치",
- "Last login" : "마지막 로그인",
- "Account actions" : "계정 동작",
- "{size} used" : "{size} 사용됨",
- "Delete account" : "계정 삭제",
- "Disable account" : "계정 비활성화",
- "Enable account" : "계정 활성화",
- "Resend welcome email" : "환영 메일 다시 보내기",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "기기를 분실했거나 조직에서 이탈할 경우, 이를 통해 모든 기기에 있는 {userid} 관련 Nextcloud 데이터를 원격으로 삭제할 수 있습니다. 해당 기기들이 인터넷에 연결된 경우에 한하여 작동합니다.",
- "Remote wipe of devices" : "기기 원격 제거",
- "Wipe {userid}'s devices" : "{userid}의 기기 제거",
- "Wiped {userid}'s devices" : "{userid}의 기기를 제거함",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "모든 개인 파일, 앱, 데이터 등을 포함한 {userid} 계정을 완전히 삭제하기",
- "Account deletion" : "계정 삭제",
- "Delete {userid}'s account" : "{userid}의 계정 삭제",
- "Display name was successfully changed" : "표시 이름이 성공적으로 변경됨",
- "Password was successfully changed" : "암호를 성공적으로 변경함",
- "Email was successfully changed" : "이메일을 성공적으로 변경함",
- "Welcome mail sent!" : "환영 메일을 보냈습니다!",
- "Loading account …" : "계정 불러오는 중 ...",
- "Change display name" : "표시 이름 변경",
- "Set new password" : "새 암호 설정",
- "You do not have permissions to see the details of this account" : "이 계정의 상세정보를 볼 권한이 없습니다.",
- "Set new email address" : "새 이메일 주소 설정",
- "Add account to group" : "계정을 그룹에 추가",
- "Set account as admin for" : "계정을 다음에 대한 관리자로 설정: ",
- "Select account quota" : "계정 할당량 설정",
- "Set the language" : "언어 설정",
- "Toggle account actions menu" : "계정 동작 메뉴 켜고 끄기",
- "Done" : "완료",
- "Edit" : "편집",
- "Account management settings" : "계정 관리 설정",
- "Visibility" : "표시 여부",
- "Show language" : "언어 보이기",
- "Show account backend" : "계정 백엔드 보이기",
- "Show storage path" : "스토리지 경로 보이기",
- "Show last login" : "마지막 로그인 보이기",
- "Sorting" : "정렬",
- "Send email" : "이메일 보내기",
- "Send welcome email to new accounts" : "새 계정에 환영 이메일 보내기",
- "Defaults" : "기본값",
- "Default quota" : "기본 할당량",
- "Select default quota" : "기본 할당량 설정",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn 기기 등록을 마치는 중 오류 발생",
- "Passwordless authentication requires a secure connection." : "무암호 인증을 위해 보안 연결이 필요합니다.",
- "Add WebAuthn device" : "WebAuthn 기기 추가",
- "Please authorize your WebAuthn device." : "내 WebAuthn 기기를 인증하십시오.",
- "Adding your device …" : "장치 추가 중 …",
- "Unnamed device" : "이름 없는 장치",
- "Passwordless Authentication" : "무암호 인증",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "FIDO2 기준을 준수하여 계정에 무암호 인증을 설정하세요.",
- "No devices configured." : "설정된 기기가 없습니다.",
- "The following devices are configured for your account:" : "다음의 기기가 계정에 설정되었습니다:",
- "Your browser does not support WebAuthn." : "WebAuthn이 현재 브라우저를 지원하지 않습니다.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "관리자로 공유 행동을 미세 조정할 수 있습니다. 더 많은 정보를 보려면 문서를 참조하십시오.",
- "You need to enable the File sharing App." : "파일 공유 앱을 활성화해야 합니다.",
- "Developer documentation ↗" : "개발자 문서 ↗",
- "Admins" : "관리자",
- "Account group: {group}" : "계정 그룹: {group}",
- "Account management" : "계정 관리",
"Sending…" : "보내는 중…",
"Email sent" : "이메일 보냄",
"Location" : "위치",
@@ -641,6 +425,7 @@
"About" : "정보",
"Full name" : "전체 이름",
"Additional email" : "추가 이메일",
+ "Email" : "이메일",
"Fediverse (e.g. Mastodon)" : "Fediverse (예: Mastodon)",
"Headline" : "표제",
"Organisation" : "조직",
@@ -649,6 +434,7 @@
"X (formerly Twitter)" : "X (구 Twitter)",
"Website" : "웹사이트",
"Profile visibility" : "프로필 표시 여부",
+ "Language" : "언어",
"Locale" : "지역",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "이 설정은 파일 공유, 달력 초대 등 핵심 기능에 필요하므로 비울 수 없습니다",
"Not available as federation has been disabled for your account, contact your system administration if you have any questions" : "이 계정에 대한 연합이 비활성화되어 현재 사용할 수 없는 상태입니다. 시스템 관리자에게 문의하십시오.",
@@ -662,12 +448,14 @@
"Show to everyone" : "전체 공개",
"Show to logged in accounts only" : "로그인된 계정에 공개",
"Hide" : "비공개",
+ "Update to {version}" : "{version}(으)로 업데이트",
"Deploy and Enable" : "배포 및 활성화",
"Download and enable" : "다운로드 및 사용",
"Disable" : "사용 안함",
"Allow untested app" : "확인되지 않은 앱 허용",
"The app will be downloaded from the App Store" : "이 앱이 앱 스토어에서 다운로드됩니다.",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "이 앱은 현재 Nextcloud 버젼과 호환되지 않습니다. 이 앱을 설치하면, 제대로 작동하지 않을 수 있습니다.",
+ "{size} used" : "{size} 사용됨",
"Unknown" : "알 수 없음",
"Never" : "하지 않음",
"Could not register device: Network error" : "기기를 등록할 수 없음: 네트워크 오류",
@@ -684,8 +472,10 @@
"Error while updating device token name" : "기기 토큰 이름을 갱신하는 중 오류 발생",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "이 네트워크에 너무 요청이 많습니다. 나중에 다시 시도하십시오. 이것이 오류일 경우 관리자에게 문의하십시오.",
"Error" : "오류",
+ "Default quota" : "기본 할당량",
"Account documentation" : "계정 문서",
"Administration documentation" : "관리 문서",
+ "Documentation" : "문서",
"Forum" : "포럼",
"General documentation" : "일반 문서",
"Legal notice" : "법적 고지",
@@ -707,6 +497,7 @@
"SMTP Password" : "SMTP 암호",
"Save" : "저장",
"Test and verify email settings" : "이메일 설정 테스트 및 검증",
+ "Send email" : "이메일 보내기",
"Security & setup warnings" : "보안 및 설치 경고",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "정확한 설정은 인스턴스의 보안과 성능에 중요합니다. 아래의 자동 진단 결과를 참조하여 최적의 설정으로 조정하십시오. 더 자세한 정보를 위해서 링크된 문서를 참고하세요.",
"All checks passed." : "모든 검사를 통과했습니다.",
@@ -725,45 +516,11 @@
"Use a second factor besides your password to increase security for your account." : "사용자의 계정을 더욱 안전하게 보호하기 위해 암호와 함께 2단계 인증을 사용하세요.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud에 연결하기 위해 서드파티 애플리케이션을 사용할 경우 2차 인증을 활성화하기 앞서 각 애플리케이션에 대한 앱 암호를 생성, 설정하십시오.",
"Logged in account must be a subadmin" : "로그인한 계정은 부관리자여야 합니다.",
- "Missing optional index \"%s\" in table \"%s\"." : "표 \"%s\"의 optional index \"%s\"이(가) 사라졌습니다",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "데이터베이스에 일부 인덱스가 없습니다. 큰 테이블에 인덱스를 추가하는 데 시간이 걸리기 때문에 자동으로 추가하지 않았습니다. 명령행에서 \"occ db:add-missing-indices\" 명령을 실행하여 인스턴스를 실행하는 동안 수동으로 인덱스를 추가할 수 있습니다. 해당 테이블에 인덱스를 추가하면 질의 속도가 다시 빨라집니다.",
"File locking" : "파일 잠금",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "트랜잭션 파일 잠금이 비활성화되어 있어 동시 접근 시 문제가 발생할 수 있습니다. config.php에서 \"filelocking.enabled\"를 활성화하여 이 문제를 방지하십시오.",
"The PHP memory limit is below the recommended value of %s." : "PHP 메모리 제한이 추천값인 %s보다 작습니다.",
"for WebAuthn passwordless login" : ": WebAuthn 무암호 인증을 위해 사용",
"for WebAuthn passwordless login, and SFTP storage" : ": WebAuthn 무암호 인증 및 SFTP 저장소를 위해 사용",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "현재 PHP %s이(가) 동작 중입니다. Nextcloud 27에서 PHP 8.0의 지원이 중단되었습니다. Nextcloud 28은 최소 PHP 8.1이 요구됩니다. 가능한 빨리 PHP Group에서 제공하는 공식 지원 PHP 버전으로 업그레이드 하십시오.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "현재 MariaDB \"%s\" 버전이 사용되고 있습니다. Nextcloud 21 및 그 이상의 버전은 이를 지원하지 않습니다. MariaDB 10.2 이상을 사용하십시오.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "현재 MySQL \"%s\" 버전이 사용되고 있습니다. Nextcloud 21 및 그 이상의 버전은 이를 지원하지 않습니다. MySQL 8.0 혹은 MariaDB 10.2 이상을 사용하십시오.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "현재 PostgreSQL \"%s\" 버전이 사용되고 있습니다. Nextcloud 21 및 그 이상의 버전은 이를 지원하지 않습니다. PostgreSQL 9.6 이상을 사용하십시오.",
- "Speech-To-Text" : "음성인식",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "음성인식 기능을 채용한 앱이 이곳에 표시됩니다. 음성인식 기능을 사용할 앱을 선택하십시오. ",
- "None of your currently installed apps provide Speech-To-Text functionality" : "현재 설치된 앱 중 음성인식 기능을 제공하는 것이 없습니다",
- "None of your currently installed apps provide Text processing functionality" : "현재 설치된 앱 중 문장처리 기술을 제공하는 것이 없습니다",
- "Set default expiration date for shares" : "공유에 대한 기본 만료 날짜 설정",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "공유 대화창에서 시스템 주소록에 있는 사용자 이름을 자동으로 채울 수 있도록 허용",
- "Your biography" : "내 소개문구",
- "You are using <strong>{usage}</strong>" : "<strong>{usage}</strong>를 사용하고 있습니다.",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "전체 <strong>{totalSpace}</strong> 중 <strong>{usage}</strong>(<strong>{usageRelative}%</strong>)를 사용하고 있습니다.",
- "Set user manager" : "사용자 담당 관리자 지정",
- "Username will be autogenerated" : "사용자 이름이 자동으로 생성됩니다",
- "Username (required)" : "사용자 이름 (필수)",
- "New user" : "새 사용자",
- "Groups (required)" : "그룹 (필수)",
- "Set user groups" : "사용자 그룹 설정",
- "Set user as admin for …" : "사용자를 다음에 대한 관리자로 설정 ...",
- "Set user quota" : "사용자 할당량 지정",
- "Add new user" : "새 사용자 추가",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount}명의 사용자 ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount}명의 사용자"],
- "Loading users …" : "사용자 불러오는 중 ...",
- "Username" : "사용자 이름",
- "User backend" : "사용자 백엔드",
- "User actions" : "사용자 동작",
- "Add user to group" : "사용자를 그룹에 추가",
- "Server error while trying to add WebAuthn device" : "WebAuthn 기기 추가 시도 중 서버 오류 발생",
- "Name your device" : "장치 이름 설정",
- "Active accounts" : "활성화된 계정",
- "Follow us on Twitter" : "트위터에서 팔로하기"
+ "Set default expiration date for shares" : "공유에 대한 기본 만료 날짜 설정"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/lt_LT.js b/apps/settings/l10n/lt_LT.js
index 15fb749d897..c01c5df0364 100644
--- a/apps/settings/l10n/lt_LT.js
+++ b/apps/settings/l10n/lt_LT.js
@@ -189,60 +189,6 @@ OC.L10N.register(
"Nothing to show" : "Nėra ką rodyti",
"Loading" : "Įkeliama",
"Fetching the latest news…" : "Gaunamos paskiausios naujienos…",
- "Previous slide" : "Ankstesnė skaidrė",
- "Next slide" : "Kita skaidrė",
- "{index} of {total}" : "{index} iš {total}",
- "Daemon" : "Tarnyba",
- "Type" : "Tipas",
- "Display Name" : "Rodomas vardas",
- "Learn more" : "Sužinoti daugiau",
- "Environment variables" : "Aplinkos kintamieji",
- "Read-only" : "Tik skaitymui",
- "Confirm" : "Patvirtinti",
- "Cancel" : "Atšaukti",
- "Description" : "Aprašas",
- "View in store" : "Rodyti parduotuvėje",
- "Visit website" : "Aplankyti svetainę",
- "Admin documentation" : "Administratoriaus dokumentacija",
- "Developer documentation" : "Plėtotojo dokumentacija",
- "Details" : "Išsamiau",
- "All" : "Viskas",
- "Limit app usage to groups" : "Programos panaudojimas ribojamas grupėms",
- "No results" : "Rezultatų nėra",
- "Update to {version}" : "Atnaujinti į versiją {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ši programėlė neturi priskirtos žemiausios „Nextcloud“ versijos. Ateityje tai bus klaida.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ši programėlė neturi priskirtos aukščiausios „Nextcloud“ versijos. Ateityje tai bus klaida.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ši programėlė negali būti įdiegta, nes nėra patenkintos žemiau išvardintos priklausomybės:",
- "Author" : "Autorius",
- "Categories" : "Kategorijos",
- "Resources" : "Ištekliai",
- "Documentation" : "Dokumentacija",
- "Report a bug" : "Pranešti apie klaidą",
- "Request feature" : "Prašyti funkcionalumo",
- "Ask questions or discuss" : "Užduokite klausimus arba diskutuokite",
- "Rate" : "Įvertinkite",
- "Changelog" : "Keitinių žurnalas",
- "Google Chrome for Android" : "Google Chrome, skirta Android",
- "{productName} iOS app" : "{productName} „iOS“ programėlė",
- "{productName} Android app" : "{productName} „Android“ programėlė",
- "This session" : "Šis seansas",
- "{client} - {version} ({system})" : "{client} – {version} ({system})",
- "{client} - {version}" : "{client} – {version}",
- "Device name" : "Įrenginio pavadinimas",
- "Cancel renaming" : "Atsisakyti pervadinimo",
- "Marked for remote wipe" : "Pažymėtas nuotolinių duomenų ištrynimui",
- "Device settings" : "Įrenginio nustatymai",
- "Allow filesystem access" : "Leisti prieigą prie failų sistemos",
- "Rename" : "Pervadinti",
- "Revoke" : "Panaikinti",
- "Wipe device" : "Ištrinti duomenis įrenginyje",
- "Device" : "Įrenginys",
- "Last activity" : "Paskutinė veikla",
- "Devices & sessions" : "Įrenginiai ir seansai",
- "Web, desktop and mobile clients currently logged in to your account." : "Saityno, darbalaukio ir mobilieji klientai, kurie šiuo metu yra prisijungę prie jūsų paskyros.",
- "Error while creating device token" : "Klaida, kuriant įrenginio prieigos raktą",
- "App name" : "Programėlės pavadinimas",
- "Create new app password" : "Sukurti naują programėlės slaptažodį",
"Could not copy app password. Please copy it manually." : "Nepavyko nukopijuoti programos slaptažodžio. Nukopijuokite jį ranka.",
"Login" : "Prisijungti",
"Password" : "Slaptažodis",
@@ -257,6 +203,7 @@ OC.L10N.register(
"Webcron" : "„Webcron“",
"Cron (Recommended)" : "„Cron“ (Rekomenduojama)",
"Profile" : "Profilis",
+ "Password confirmation is required" : "Reikalingas slaptažodžio patvirtinimas",
"Failed to save setting" : "Nepavyko įrašyti nustatymo",
"Server-side encryption" : "Šifravimas serverio pusėje",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Šifravimas serverio pusėje leidžia užšifruoti failus, kurie yra įkelti į serverį. Įjungti tik ik būtinais atvejais.",
@@ -270,134 +217,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Turėkite omenyje, kad šifravimas visada padidina failų dydį.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Visada yra gerai daryti reguliarias atsargines duomenų kopijas. Esant šifravimui, nepamirškite kartu su savo duomenų atsargine kopija, pasidaryti ir šifravimo raktų atsarginę kopiją.",
"This is the final warning: Do you really want to enable encryption?" : "Tai yra paskutinis įspėjimas: Ar tikrai norite įjungti šifravimą?",
- "Failed to remove group \"{group}\"" : "Nepavyko pašalinti grupės „{group}“",
"Please confirm the group removal" : "Patvirtinkite grupės pašalinimą",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Jūs ketinate pašalinti grupę „{group}“. Paskyros NEBUS ištrintos.",
+ "Cancel" : "Atšaukti",
+ "Confirm" : "Patvirtinti",
"Submit" : "Pateikti",
"Rename group" : "Pervadinti grupę",
- "Remove group" : "Šalinti grupę",
- "Current password" : "Dabartinis slaptažodis",
- "New password" : "Naujas slaptažodis",
- "Change password" : "Pakeisti slaptažodį",
- "Please select a valid png or jpg file" : "Pasirinkite tinkamą png ar jpg failą",
- "Error setting profile picture" : "Klaida nustatant profilio paveikslėlį",
- "Error cropping profile picture" : "Klaida apkerpant profilio paveikslėlį",
- "Error saving profile picture" : "Klaida įrašant profilio paveikslėlį",
- "Error removing profile picture" : "Klaida šalinant profilio paveikslėlį",
- "Your profile picture" : "Jūsų profilio paveikslėlis",
- "Remove profile picture" : "Šalinti profilio paveikslėlį",
- "The file must be a PNG or JPG" : "Failas privalo būti PNG ar JPG tipo",
- "Picture provided by original account" : "Paveikslėlis gautas iš pagrindinės paskyros",
- "Set as profile picture" : "Nustatyti kaip profilio paveikslėlį",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Turėkite omenyje, kad gali praeiti iki 24 valandų, kol jūsų profilis bus visur atnaujintas.",
- "Unable to update date of birth" : "Nepavyko atnaujinti gimimo datos",
- "Enter your date of birth" : "Įveskite savo gimimo datą",
- "You are a member of the following groups:" : "Jūs esate šių grupių narys:",
- "Your full name" : "Jūsų visas vardas",
- "Email options" : "El. pašto parinktys",
- "Remove primary email" : "Šalinti pirminį el. paštą",
- "Delete email" : "Ištrinti el. paštą",
- "This address is not confirmed" : "Šis adresas nėra patvirtintas",
- "Set as primary email" : "Nustatyti kaip pirminį el. paštą",
- "Additional email address {index}" : "Papildomas el. pašto adresas {index}",
- "Unable to delete primary email address" : "Nepavyko ištrinti pirminio el. pašto adreso",
- "Unable to update primary email address" : "Nepavyko atnaujinti pirminio el. pašto adreso",
- "Unable to add additional email address" : "Nepavyko pridėti papildomo el. pašto adreso",
- "Unable to update additional email address" : "Nepavyko atnaujinti papildomo el. pašto adreso",
- "Unable to delete additional email address" : "Nepavyko ištrinti papildomo el. pašto adreso",
- "Primary email for password reset and notifications" : "Pirminis el. paštas, skirtas slaptažodžio atstatymui bei pranešimams",
- "No email address set" : "Nenustatytas joks el. pašto adresas",
- "Your headline" : "Santrauka apie jus",
- "Unable to update language" : "Nepavyko atnaujinti kalbos",
- "Languages" : "Kalbos",
- "Help translate" : "Padėkite išversti",
- "No language set" : "Nenustatyta jokia kalba",
- "Unable to update locale" : "Nepavyko atnaujinti lokalės",
- "Locales" : "Lokalės",
- "Week starts on {firstDayOfWeek}" : "Savaitės pradžia yra {firstDayOfWeek}",
- "Your city" : "Jūsų miestas",
- "Your organisation" : "Jūsų organizacija",
- "Your phone number" : "Jūsų telefono numeris",
- "Edit your Profile visibility" : "Taisyti savo profilio matomumą",
- "Unable to update profile enabled state" : "Nepavyko atnaujinti profilio įjungimo būsenos",
- "Unable to update visibility of {displayId}" : "Nepavyko atnaujinti {displayId} matomumo",
- "Your role" : "Jūsų vaidmuo",
- "Your website" : "Jūsų svetainė",
- "Unable to update {property}" : "Nepavyko atnaujinti {property}",
- "Add additional email" : "Pridėti papildomą el. paštą",
- "Add" : "Pridėti",
- "Create" : "Sukurti",
- "Change" : "Keisti",
- "Delete" : "Ištrinti",
- "Reshare" : "Pakartotinai bendrinti",
- "Default language" : "Numatytoji kalba",
- "Common languages" : "Bendrosios kalbos",
- "Other languages" : "Kitos kalbos",
- "Password change is disabled because the master key is disabled" : "Slaptažodžių keitimas išjungtas, nes yra išjungtas pagrindinis raktas",
- "Loading accounts …" : "Įkeliamos paskyros ...",
- "New account" : "Nauja paskyra",
- "Display name" : "Rodomas vardas",
- "Password (required)" : "Slaptažodis (būtina)",
- "Email (required)" : "El. paštas (būtina)",
- "Email" : "El. paštas",
- "Quota" : "Limitas",
- "Language" : "Kalba",
- "Set default language" : "Nustatyti numatytąją kalbą",
- "Add new account" : "Pridėti naują paskyrą",
- "Avatar" : "Avataras",
- "Account name" : "Paskyros pavadinimas",
- "Group admin for" : "Grupės administratorius",
- "Storage location" : "Saugyklos vieta",
- "First login" : "Pirmas prisijungimas",
- "Last login" : "Paskutinis prisijungimas",
- "Account actions" : "Veiksmai su paskyra",
- "{size} used" : "{size} naudojama",
- "Delete account" : "Ištrinti paskyrą",
- "Disconnect all devices and delete local data" : "Atjungti visus įrenginius ir ištrinti vietinius duomenis",
- "Disable account" : "Išjungti paskyrą",
- "Enable account" : "Įjungti paskyrą",
- "Resend welcome email" : "Siųsti dar kartą pasveikinimo el. laišką",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Pametus įrenginį arba pasikeitus darbo santykiams su organizacija, galima nuotoliniu būdu išvalyti „Nextcloud“ duomenis iš visų įrenginių, susietų su {userid}. Veikia tik su prie interneto prijungtais įrenginiais.",
- "Remote wipe of devices" : "Nuotolinių duomenų įrenginiuose ištrynimas",
- "Wipe {userid}'s devices" : "Ištrinti duomenis naudotojo {userid} įrenginiuose",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Pilnai ištrinta {userid} paskyra, įskaitant visus asmeninius failus, programos duomenis ir pan. ",
- "Account deletion" : "Paskyros ištrynimas",
- "Delete {userid}'s account" : "Ištrinti naudotojo {userid} paskyrą",
- "Password was successfully changed" : "Slaptažodis buvo sėkmingai pakeistas",
- "Email was successfully changed" : "El. paštas buvo sėkmingai pakeistas",
- "Welcome mail sent!" : "Pasveikinimo laiškas išsiųstas!",
- "Loading account …" : "Įkeliama paskyra…",
- "Set new password" : "Nustatyti naują slaptažodį",
- "You do not have permissions to see the details of this account" : "Jūs neturite leidimo matyti išsamesnę informaciją apie šią paskyrą",
- "Set new email address" : "Nustatyti naują el. pašto adresą",
- "Add account to group" : "Pridėti paskyrą į grupę",
- "Set the language" : "Nustatyti kalbą",
- "Done" : "Atlikta",
- "Edit" : "Taisyti",
- "Visibility" : "Matomumas",
- "Show language" : "Rodyti kalbą",
- "Show storage path" : "Rodyti saugyklos kelią",
- "Show first login" : "Rodyti pirmą prisijungimą",
- "Show last login" : "Rodyti paskutinį prisijungimą",
- "Sorting" : "Rikiavimas",
- "Send email" : "Siųsti el. paštą",
- "Default quota" : "Numatytasis leidžiamas duomenų kiekis",
- "Select default quota" : "Pasirinkite numatytą leidžiamą duomenų kiekį ",
- "Server error while trying to complete WebAuthn device registration" : "Serverio klaida, bandant pabaigti WebAuthn įrenginio regsitraciją",
- "Passwordless authentication requires a secure connection." : "Tapatybės nustatymas be slaptažodžio reikalauja saugaus ryšio.",
- "Add WebAuthn device" : "Pridėti WebAuthn įrenginį",
- "Please authorize your WebAuthn device." : "Prašome, autorizikuote savo WebAuthn įrenginį.",
- "Adding your device …" : "Pridedamas jūsų įrenginys …",
- "Unnamed device" : "Įrenginys be pavadinimo",
- "Passwordless Authentication" : "Tapatybės nustatymas be slaptažodžio",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Nustatykite savo paskyrai tapatybės nustatymą be slaptažodžio, pagal FIDO2 standartą.",
- "No devices configured." : "Nėra sukonfiguruotų įrenginių.",
- "The following devices are configured for your account:" : "Jūsų paskyrai sukonfiguruoti šie įrenginiai:",
- "Your browser does not support WebAuthn." : "Jūsų naršyklė nepalaiko WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Būdami administratoriumi, galite reguliuoti bendrinimo elgseną. Išsamesnei informacijai, žiūrėkite dokumentaciją.",
- "Version {version}" : "Versija {version}",
- "All accounts" : "Visos paskyros",
- "Admins" : "Administratoriai",
"Sending…" : "Siunčiama…",
"Email sent" : "El. paštas išsiųstas",
"Location" : "Vieta",
@@ -406,12 +230,14 @@ OC.L10N.register(
"Date of birth" : "Gimimo data",
"Full name" : "Vardas, pavardė",
"Additional email" : "Papildomas el. paštas",
+ "Email" : "El. paštas",
"Headline" : "Santrauka",
"Organisation" : "Organizacija",
"Phone number" : "Telefono numeris",
"Role" : "Vaidmuo",
"Website" : "Svetainė",
"Profile visibility" : "Profilio matomumas",
+ "Language" : "Kalba",
"Locale" : "Lokalė",
"First day of week" : "Pirmoji savaitės diena",
"Your apps" : "Jūsų programėlės",
@@ -423,10 +249,12 @@ OC.L10N.register(
"Supported apps" : "Palaikomos programėlės",
"Show to everyone" : "Rodyti visiems",
"Hide" : "Slėpti",
+ "Update to {version}" : "Atnaujinti į versiją {version}",
"Download and enable" : "Atsisiųsti ir įjungti",
"Disable" : "Išjungti",
"The app will be downloaded from the App Store" : "Programėlė bus atsisiųsta iš programėlių parduotuvės",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ši programėlė nėra pažymėta kaip suderinama su jūsų Nextcloud versija. Jei tęsite, vis tiek galėsite įdiegti programėlę. Turėkite omenyje, kad programėlė gali neveikti taip, kaip tikimasi.",
+ "{size} used" : "{size} naudojama",
"Unknown" : "Nežinoma",
"Never" : "Niekada",
"Could not register device: Network error" : "Nepavyko registruoti įrenginio: Tinklo klaida",
@@ -443,6 +271,8 @@ OC.L10N.register(
"Error while updating device token scope" : "Įvyko klaida atnaujinant įrenginio prieigos rakto taikymą",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Iš jūsų tinklo buvo per daug užklausų. Bandykite dar kartą vėliau arba, jeigu tai klaida, susisiekite su savo administratoriumi.",
"Error" : "Klaida",
+ "Default quota" : "Numatytasis leidžiamas duomenų kiekis",
+ "Documentation" : "Dokumentacija",
"Forum" : "Forumas",
"Legal notice" : "Teisinis pranešimas",
"Privacy policy" : "Privatumo politika",
@@ -462,6 +292,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP slaptažodis",
"Save" : "Įrašyti",
"Test and verify email settings" : "Išbandyti ir patikrinti el. pašto nustatymus",
+ "Send email" : "Siųsti el. paštą",
"Security & setup warnings" : "Saugumo ir sąrankos įspėjimai",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Siekiant jūsų egzemplioriaus saugumo ir našumo, yra svarbu, kad viskas būtų teisingai sukonfigūruota. Norėdami jums padėti, atliekame tam tikrus automatinius patikrinimus. Išsamesnei informacijai, žiūrėkite susietą dokumentaciją.",
"All checks passed." : "Visi patikros rezultatai teigiami.",
@@ -477,25 +308,6 @@ OC.L10N.register(
"Check out our blog" : "Peržvelkite mūsų tinklaraštį",
"Subscribe to our newsletter" : "Prenumeruokite mūsų naujienlaiškį",
"Use a second factor besides your password to increase security for your account." : "Be savo slaptažodžio naudokite ir antrąjį faktorių, kad padidintumėte savo paskyros saugumą.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Yra naudojama MariaDB versija „%s“. Nextcloud 21 ir naujesnės laidos nepalaiko šios MariaDB versijos ir reikalauja 10.2 ar naujesnės versijos.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Yra naudojama MySQL versija „%s“. Nextcloud 21 ir naujesnės laidos nepalaiko šios MySQL versijos ir reikalauja MySQL 8.0 arba MariaDB 10.2, ar naujesnės versijos.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Yra naudojama PostgreSQL versija „%s“. Nextcloud 21 ir naujesnės laidos nepalaiko šios PostgreSQL versijos ir reikalauja PostgreSQL 9.6 ar naujesnės versijos.",
- "Set default expiration date for shares" : "Nustatyti viešiniams numatytąją galiojimo pabaigos datą",
- "Your biography" : "Jūsų biografija",
- "You are using <strong>{usage}</strong>" : "Jūs naudojate <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Jūs naudojate <strong>{usage}</strong> iš <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Username will be autogenerated" : "Naudotojo vardas bus automatiškai sugeneruotas",
- "Username (required)" : "Naudotojo vardas (būtina)",
- "New user" : "Naujas naudotojas",
- "Add new user" : "Pridėti naują naudotoją",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} naudotojas","{userCount} naudotojai","{userCount} naudotojų","{userCount} naudotojas"],
- "Loading users …" : "Įkeliami naudotojai…",
- "Username" : "Naudotojo vardas",
- "User backend" : "Naudotojo vidinė pusė",
- "Add user to group" : "Pridėti naudotoją į grupę",
- "Server error while trying to add WebAuthn device" : "Serverio klaida, bandant pridėti WbAuthn įrenginį",
- "Name your device" : "Pavadinkite savo įrenginį",
- "Active accounts" : "Aktyvios paskyros",
- "Follow us on Twitter" : "Sekite mus Twitter"
+ "Set default expiration date for shares" : "Nustatyti viešiniams numatytąją galiojimo pabaigos datą"
},
"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/settings/l10n/lt_LT.json b/apps/settings/l10n/lt_LT.json
index 8e5c0d29962..d06b6e1c758 100644
--- a/apps/settings/l10n/lt_LT.json
+++ b/apps/settings/l10n/lt_LT.json
@@ -187,60 +187,6 @@
"Nothing to show" : "Nėra ką rodyti",
"Loading" : "Įkeliama",
"Fetching the latest news…" : "Gaunamos paskiausios naujienos…",
- "Previous slide" : "Ankstesnė skaidrė",
- "Next slide" : "Kita skaidrė",
- "{index} of {total}" : "{index} iš {total}",
- "Daemon" : "Tarnyba",
- "Type" : "Tipas",
- "Display Name" : "Rodomas vardas",
- "Learn more" : "Sužinoti daugiau",
- "Environment variables" : "Aplinkos kintamieji",
- "Read-only" : "Tik skaitymui",
- "Confirm" : "Patvirtinti",
- "Cancel" : "Atšaukti",
- "Description" : "Aprašas",
- "View in store" : "Rodyti parduotuvėje",
- "Visit website" : "Aplankyti svetainę",
- "Admin documentation" : "Administratoriaus dokumentacija",
- "Developer documentation" : "Plėtotojo dokumentacija",
- "Details" : "Išsamiau",
- "All" : "Viskas",
- "Limit app usage to groups" : "Programos panaudojimas ribojamas grupėms",
- "No results" : "Rezultatų nėra",
- "Update to {version}" : "Atnaujinti į versiją {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ši programėlė neturi priskirtos žemiausios „Nextcloud“ versijos. Ateityje tai bus klaida.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ši programėlė neturi priskirtos aukščiausios „Nextcloud“ versijos. Ateityje tai bus klaida.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ši programėlė negali būti įdiegta, nes nėra patenkintos žemiau išvardintos priklausomybės:",
- "Author" : "Autorius",
- "Categories" : "Kategorijos",
- "Resources" : "Ištekliai",
- "Documentation" : "Dokumentacija",
- "Report a bug" : "Pranešti apie klaidą",
- "Request feature" : "Prašyti funkcionalumo",
- "Ask questions or discuss" : "Užduokite klausimus arba diskutuokite",
- "Rate" : "Įvertinkite",
- "Changelog" : "Keitinių žurnalas",
- "Google Chrome for Android" : "Google Chrome, skirta Android",
- "{productName} iOS app" : "{productName} „iOS“ programėlė",
- "{productName} Android app" : "{productName} „Android“ programėlė",
- "This session" : "Šis seansas",
- "{client} - {version} ({system})" : "{client} – {version} ({system})",
- "{client} - {version}" : "{client} – {version}",
- "Device name" : "Įrenginio pavadinimas",
- "Cancel renaming" : "Atsisakyti pervadinimo",
- "Marked for remote wipe" : "Pažymėtas nuotolinių duomenų ištrynimui",
- "Device settings" : "Įrenginio nustatymai",
- "Allow filesystem access" : "Leisti prieigą prie failų sistemos",
- "Rename" : "Pervadinti",
- "Revoke" : "Panaikinti",
- "Wipe device" : "Ištrinti duomenis įrenginyje",
- "Device" : "Įrenginys",
- "Last activity" : "Paskutinė veikla",
- "Devices & sessions" : "Įrenginiai ir seansai",
- "Web, desktop and mobile clients currently logged in to your account." : "Saityno, darbalaukio ir mobilieji klientai, kurie šiuo metu yra prisijungę prie jūsų paskyros.",
- "Error while creating device token" : "Klaida, kuriant įrenginio prieigos raktą",
- "App name" : "Programėlės pavadinimas",
- "Create new app password" : "Sukurti naują programėlės slaptažodį",
"Could not copy app password. Please copy it manually." : "Nepavyko nukopijuoti programos slaptažodžio. Nukopijuokite jį ranka.",
"Login" : "Prisijungti",
"Password" : "Slaptažodis",
@@ -255,6 +201,7 @@
"Webcron" : "„Webcron“",
"Cron (Recommended)" : "„Cron“ (Rekomenduojama)",
"Profile" : "Profilis",
+ "Password confirmation is required" : "Reikalingas slaptažodžio patvirtinimas",
"Failed to save setting" : "Nepavyko įrašyti nustatymo",
"Server-side encryption" : "Šifravimas serverio pusėje",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Šifravimas serverio pusėje leidžia užšifruoti failus, kurie yra įkelti į serverį. Įjungti tik ik būtinais atvejais.",
@@ -268,134 +215,11 @@
"Be aware that encryption always increases the file size." : "Turėkite omenyje, kad šifravimas visada padidina failų dydį.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Visada yra gerai daryti reguliarias atsargines duomenų kopijas. Esant šifravimui, nepamirškite kartu su savo duomenų atsargine kopija, pasidaryti ir šifravimo raktų atsarginę kopiją.",
"This is the final warning: Do you really want to enable encryption?" : "Tai yra paskutinis įspėjimas: Ar tikrai norite įjungti šifravimą?",
- "Failed to remove group \"{group}\"" : "Nepavyko pašalinti grupės „{group}“",
"Please confirm the group removal" : "Patvirtinkite grupės pašalinimą",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Jūs ketinate pašalinti grupę „{group}“. Paskyros NEBUS ištrintos.",
+ "Cancel" : "Atšaukti",
+ "Confirm" : "Patvirtinti",
"Submit" : "Pateikti",
"Rename group" : "Pervadinti grupę",
- "Remove group" : "Šalinti grupę",
- "Current password" : "Dabartinis slaptažodis",
- "New password" : "Naujas slaptažodis",
- "Change password" : "Pakeisti slaptažodį",
- "Please select a valid png or jpg file" : "Pasirinkite tinkamą png ar jpg failą",
- "Error setting profile picture" : "Klaida nustatant profilio paveikslėlį",
- "Error cropping profile picture" : "Klaida apkerpant profilio paveikslėlį",
- "Error saving profile picture" : "Klaida įrašant profilio paveikslėlį",
- "Error removing profile picture" : "Klaida šalinant profilio paveikslėlį",
- "Your profile picture" : "Jūsų profilio paveikslėlis",
- "Remove profile picture" : "Šalinti profilio paveikslėlį",
- "The file must be a PNG or JPG" : "Failas privalo būti PNG ar JPG tipo",
- "Picture provided by original account" : "Paveikslėlis gautas iš pagrindinės paskyros",
- "Set as profile picture" : "Nustatyti kaip profilio paveikslėlį",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Turėkite omenyje, kad gali praeiti iki 24 valandų, kol jūsų profilis bus visur atnaujintas.",
- "Unable to update date of birth" : "Nepavyko atnaujinti gimimo datos",
- "Enter your date of birth" : "Įveskite savo gimimo datą",
- "You are a member of the following groups:" : "Jūs esate šių grupių narys:",
- "Your full name" : "Jūsų visas vardas",
- "Email options" : "El. pašto parinktys",
- "Remove primary email" : "Šalinti pirminį el. paštą",
- "Delete email" : "Ištrinti el. paštą",
- "This address is not confirmed" : "Šis adresas nėra patvirtintas",
- "Set as primary email" : "Nustatyti kaip pirminį el. paštą",
- "Additional email address {index}" : "Papildomas el. pašto adresas {index}",
- "Unable to delete primary email address" : "Nepavyko ištrinti pirminio el. pašto adreso",
- "Unable to update primary email address" : "Nepavyko atnaujinti pirminio el. pašto adreso",
- "Unable to add additional email address" : "Nepavyko pridėti papildomo el. pašto adreso",
- "Unable to update additional email address" : "Nepavyko atnaujinti papildomo el. pašto adreso",
- "Unable to delete additional email address" : "Nepavyko ištrinti papildomo el. pašto adreso",
- "Primary email for password reset and notifications" : "Pirminis el. paštas, skirtas slaptažodžio atstatymui bei pranešimams",
- "No email address set" : "Nenustatytas joks el. pašto adresas",
- "Your headline" : "Santrauka apie jus",
- "Unable to update language" : "Nepavyko atnaujinti kalbos",
- "Languages" : "Kalbos",
- "Help translate" : "Padėkite išversti",
- "No language set" : "Nenustatyta jokia kalba",
- "Unable to update locale" : "Nepavyko atnaujinti lokalės",
- "Locales" : "Lokalės",
- "Week starts on {firstDayOfWeek}" : "Savaitės pradžia yra {firstDayOfWeek}",
- "Your city" : "Jūsų miestas",
- "Your organisation" : "Jūsų organizacija",
- "Your phone number" : "Jūsų telefono numeris",
- "Edit your Profile visibility" : "Taisyti savo profilio matomumą",
- "Unable to update profile enabled state" : "Nepavyko atnaujinti profilio įjungimo būsenos",
- "Unable to update visibility of {displayId}" : "Nepavyko atnaujinti {displayId} matomumo",
- "Your role" : "Jūsų vaidmuo",
- "Your website" : "Jūsų svetainė",
- "Unable to update {property}" : "Nepavyko atnaujinti {property}",
- "Add additional email" : "Pridėti papildomą el. paštą",
- "Add" : "Pridėti",
- "Create" : "Sukurti",
- "Change" : "Keisti",
- "Delete" : "Ištrinti",
- "Reshare" : "Pakartotinai bendrinti",
- "Default language" : "Numatytoji kalba",
- "Common languages" : "Bendrosios kalbos",
- "Other languages" : "Kitos kalbos",
- "Password change is disabled because the master key is disabled" : "Slaptažodžių keitimas išjungtas, nes yra išjungtas pagrindinis raktas",
- "Loading accounts …" : "Įkeliamos paskyros ...",
- "New account" : "Nauja paskyra",
- "Display name" : "Rodomas vardas",
- "Password (required)" : "Slaptažodis (būtina)",
- "Email (required)" : "El. paštas (būtina)",
- "Email" : "El. paštas",
- "Quota" : "Limitas",
- "Language" : "Kalba",
- "Set default language" : "Nustatyti numatytąją kalbą",
- "Add new account" : "Pridėti naują paskyrą",
- "Avatar" : "Avataras",
- "Account name" : "Paskyros pavadinimas",
- "Group admin for" : "Grupės administratorius",
- "Storage location" : "Saugyklos vieta",
- "First login" : "Pirmas prisijungimas",
- "Last login" : "Paskutinis prisijungimas",
- "Account actions" : "Veiksmai su paskyra",
- "{size} used" : "{size} naudojama",
- "Delete account" : "Ištrinti paskyrą",
- "Disconnect all devices and delete local data" : "Atjungti visus įrenginius ir ištrinti vietinius duomenis",
- "Disable account" : "Išjungti paskyrą",
- "Enable account" : "Įjungti paskyrą",
- "Resend welcome email" : "Siųsti dar kartą pasveikinimo el. laišką",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Pametus įrenginį arba pasikeitus darbo santykiams su organizacija, galima nuotoliniu būdu išvalyti „Nextcloud“ duomenis iš visų įrenginių, susietų su {userid}. Veikia tik su prie interneto prijungtais įrenginiais.",
- "Remote wipe of devices" : "Nuotolinių duomenų įrenginiuose ištrynimas",
- "Wipe {userid}'s devices" : "Ištrinti duomenis naudotojo {userid} įrenginiuose",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Pilnai ištrinta {userid} paskyra, įskaitant visus asmeninius failus, programos duomenis ir pan. ",
- "Account deletion" : "Paskyros ištrynimas",
- "Delete {userid}'s account" : "Ištrinti naudotojo {userid} paskyrą",
- "Password was successfully changed" : "Slaptažodis buvo sėkmingai pakeistas",
- "Email was successfully changed" : "El. paštas buvo sėkmingai pakeistas",
- "Welcome mail sent!" : "Pasveikinimo laiškas išsiųstas!",
- "Loading account …" : "Įkeliama paskyra…",
- "Set new password" : "Nustatyti naują slaptažodį",
- "You do not have permissions to see the details of this account" : "Jūs neturite leidimo matyti išsamesnę informaciją apie šią paskyrą",
- "Set new email address" : "Nustatyti naują el. pašto adresą",
- "Add account to group" : "Pridėti paskyrą į grupę",
- "Set the language" : "Nustatyti kalbą",
- "Done" : "Atlikta",
- "Edit" : "Taisyti",
- "Visibility" : "Matomumas",
- "Show language" : "Rodyti kalbą",
- "Show storage path" : "Rodyti saugyklos kelią",
- "Show first login" : "Rodyti pirmą prisijungimą",
- "Show last login" : "Rodyti paskutinį prisijungimą",
- "Sorting" : "Rikiavimas",
- "Send email" : "Siųsti el. paštą",
- "Default quota" : "Numatytasis leidžiamas duomenų kiekis",
- "Select default quota" : "Pasirinkite numatytą leidžiamą duomenų kiekį ",
- "Server error while trying to complete WebAuthn device registration" : "Serverio klaida, bandant pabaigti WebAuthn įrenginio regsitraciją",
- "Passwordless authentication requires a secure connection." : "Tapatybės nustatymas be slaptažodžio reikalauja saugaus ryšio.",
- "Add WebAuthn device" : "Pridėti WebAuthn įrenginį",
- "Please authorize your WebAuthn device." : "Prašome, autorizikuote savo WebAuthn įrenginį.",
- "Adding your device …" : "Pridedamas jūsų įrenginys …",
- "Unnamed device" : "Įrenginys be pavadinimo",
- "Passwordless Authentication" : "Tapatybės nustatymas be slaptažodžio",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Nustatykite savo paskyrai tapatybės nustatymą be slaptažodžio, pagal FIDO2 standartą.",
- "No devices configured." : "Nėra sukonfiguruotų įrenginių.",
- "The following devices are configured for your account:" : "Jūsų paskyrai sukonfiguruoti šie įrenginiai:",
- "Your browser does not support WebAuthn." : "Jūsų naršyklė nepalaiko WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Būdami administratoriumi, galite reguliuoti bendrinimo elgseną. Išsamesnei informacijai, žiūrėkite dokumentaciją.",
- "Version {version}" : "Versija {version}",
- "All accounts" : "Visos paskyros",
- "Admins" : "Administratoriai",
"Sending…" : "Siunčiama…",
"Email sent" : "El. paštas išsiųstas",
"Location" : "Vieta",
@@ -404,12 +228,14 @@
"Date of birth" : "Gimimo data",
"Full name" : "Vardas, pavardė",
"Additional email" : "Papildomas el. paštas",
+ "Email" : "El. paštas",
"Headline" : "Santrauka",
"Organisation" : "Organizacija",
"Phone number" : "Telefono numeris",
"Role" : "Vaidmuo",
"Website" : "Svetainė",
"Profile visibility" : "Profilio matomumas",
+ "Language" : "Kalba",
"Locale" : "Lokalė",
"First day of week" : "Pirmoji savaitės diena",
"Your apps" : "Jūsų programėlės",
@@ -421,10 +247,12 @@
"Supported apps" : "Palaikomos programėlės",
"Show to everyone" : "Rodyti visiems",
"Hide" : "Slėpti",
+ "Update to {version}" : "Atnaujinti į versiją {version}",
"Download and enable" : "Atsisiųsti ir įjungti",
"Disable" : "Išjungti",
"The app will be downloaded from the App Store" : "Programėlė bus atsisiųsta iš programėlių parduotuvės",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ši programėlė nėra pažymėta kaip suderinama su jūsų Nextcloud versija. Jei tęsite, vis tiek galėsite įdiegti programėlę. Turėkite omenyje, kad programėlė gali neveikti taip, kaip tikimasi.",
+ "{size} used" : "{size} naudojama",
"Unknown" : "Nežinoma",
"Never" : "Niekada",
"Could not register device: Network error" : "Nepavyko registruoti įrenginio: Tinklo klaida",
@@ -441,6 +269,8 @@
"Error while updating device token scope" : "Įvyko klaida atnaujinant įrenginio prieigos rakto taikymą",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Iš jūsų tinklo buvo per daug užklausų. Bandykite dar kartą vėliau arba, jeigu tai klaida, susisiekite su savo administratoriumi.",
"Error" : "Klaida",
+ "Default quota" : "Numatytasis leidžiamas duomenų kiekis",
+ "Documentation" : "Dokumentacija",
"Forum" : "Forumas",
"Legal notice" : "Teisinis pranešimas",
"Privacy policy" : "Privatumo politika",
@@ -460,6 +290,7 @@
"SMTP Password" : "SMTP slaptažodis",
"Save" : "Įrašyti",
"Test and verify email settings" : "Išbandyti ir patikrinti el. pašto nustatymus",
+ "Send email" : "Siųsti el. paštą",
"Security & setup warnings" : "Saugumo ir sąrankos įspėjimai",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Siekiant jūsų egzemplioriaus saugumo ir našumo, yra svarbu, kad viskas būtų teisingai sukonfigūruota. Norėdami jums padėti, atliekame tam tikrus automatinius patikrinimus. Išsamesnei informacijai, žiūrėkite susietą dokumentaciją.",
"All checks passed." : "Visi patikros rezultatai teigiami.",
@@ -475,25 +306,6 @@
"Check out our blog" : "Peržvelkite mūsų tinklaraštį",
"Subscribe to our newsletter" : "Prenumeruokite mūsų naujienlaiškį",
"Use a second factor besides your password to increase security for your account." : "Be savo slaptažodžio naudokite ir antrąjį faktorių, kad padidintumėte savo paskyros saugumą.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Yra naudojama MariaDB versija „%s“. Nextcloud 21 ir naujesnės laidos nepalaiko šios MariaDB versijos ir reikalauja 10.2 ar naujesnės versijos.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Yra naudojama MySQL versija „%s“. Nextcloud 21 ir naujesnės laidos nepalaiko šios MySQL versijos ir reikalauja MySQL 8.0 arba MariaDB 10.2, ar naujesnės versijos.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Yra naudojama PostgreSQL versija „%s“. Nextcloud 21 ir naujesnės laidos nepalaiko šios PostgreSQL versijos ir reikalauja PostgreSQL 9.6 ar naujesnės versijos.",
- "Set default expiration date for shares" : "Nustatyti viešiniams numatytąją galiojimo pabaigos datą",
- "Your biography" : "Jūsų biografija",
- "You are using <strong>{usage}</strong>" : "Jūs naudojate <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Jūs naudojate <strong>{usage}</strong> iš <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Username will be autogenerated" : "Naudotojo vardas bus automatiškai sugeneruotas",
- "Username (required)" : "Naudotojo vardas (būtina)",
- "New user" : "Naujas naudotojas",
- "Add new user" : "Pridėti naują naudotoją",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} naudotojas","{userCount} naudotojai","{userCount} naudotojų","{userCount} naudotojas"],
- "Loading users …" : "Įkeliami naudotojai…",
- "Username" : "Naudotojo vardas",
- "User backend" : "Naudotojo vidinė pusė",
- "Add user to group" : "Pridėti naudotoją į grupę",
- "Server error while trying to add WebAuthn device" : "Serverio klaida, bandant pridėti WbAuthn įrenginį",
- "Name your device" : "Pavadinkite savo įrenginį",
- "Active accounts" : "Aktyvios paskyros",
- "Follow us on Twitter" : "Sekite mus Twitter"
+ "Set default expiration date for shares" : "Nustatyti viešiniams numatytąją galiojimo pabaigos datą"
},"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/settings/l10n/lv.js b/apps/settings/l10n/lv.js
index a3181eb53ef..9ffcac35e6e 100644
--- a/apps/settings/l10n/lv.js
+++ b/apps/settings/l10n/lv.js
@@ -18,7 +18,7 @@ OC.L10N.register(
"You changed your password" : "Tu nomainīji savu paroli",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Tu pārdēvēji lietotnes paroli \"{token}\" par \"{newToken}\"",
"Security" : "Drošība",
- "You successfully logged in using two-factor authentication (%1$s)" : "Veiksmīga pieteikšanās ar divpakāpju autentifikāciju (%1$s)",
+ "You successfully logged in using two-factor authentication (%1$s)" : "Sekmīga pieteikšanās ar divpakāpju autentificēšanos (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Pieteikšanās mēģinājums ar divpakāpju autentifikāciju neizdevās (%1$s)",
"Settings" : "Iestatījumi",
"Could not update app." : "Lietotni nevarēja atjaunināt.",
@@ -34,7 +34,7 @@ OC.L10N.register(
"Invalid account" : "Nederīgs konts",
"Invalid mail address" : "Nepareiza e-pasta adrese",
"Settings saved" : "Iestatījumi saglabāti",
- "Unable to change full name" : "Nav iespējams nomainīt jūsu pilno vārdu",
+ "Unable to change full name" : "Nevar nomainīt pilno vārdu",
"Unable to change email address" : "Nevar mainīt e-pasta adresi",
"In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Lai apliecinātu savu tīmekļvietni, zemāk esošais saturs ir jāglabā tīmekļvietnes pamatmapē kā `.well-known/CloudIdVerificationCode.txt` (lūgums pārliecināties, ka viss teksts ir vienā rindiņā):",
"Your %s account was created" : "Konts %s ir izveidots",
@@ -60,7 +60,7 @@ OC.L10N.register(
"This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Šim serverim nav strādājoša savienojuma ar internetu: vairākus galamērķus nevarēja sasniegt. Tas nozīmē, ka dažas no iespējām, piemēram, ārējas krātuves piemontēšana, paziņojumi par atjauninājumiem vai trešo pušu lietotņu uzstādīšana, nedarbosies. Varētu nedarboties arī attālā piekļūšana datnēm paziņojumu e-pasta ziņojumu nosūtīšana. Šim serverim jānodrošina savienojums ar internetu, lai izmantotu visas iespējas.",
"Disabled" : "Atspējots",
"PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP nešķiet pareizi uzstādīts lai veiktu sistēmas vides mainīgo vaicājumus. Tests ar getenv(\"PATH\") atgriež tikai tukšu atbildi.",
- "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Ir iespējots tikai lasāma konfigurācija. Tas neatļauj iestatīt un mainīt dažas konfigurācijas caur tīmekļa interfeisu. Šī datne būs manuāli jāpārveido par rakstāmu, pirms katra atjauninājuma instalēšanas.",
+ "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Ir iespējota tikai lasāma konfigurācija. Tas neatļauj iestatīt atsevišķu konfigurāciju tīmekļa saskarnē. Turklāt šī datne pašrocīgi jāpadara par rakstāmu katram atjauninājumam.",
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Datubāze nedarbojas ar \"READ COMMITED\" transakciju izolācijas līmeni. Tas var radīt sarežģījumus, kad vienlaicīgi tiek veiktas vairākas darbības.",
"Nextcloud settings" : "Nextcloud iestatījumi",
"Enable" : "Aktivēt",
@@ -71,6 +71,7 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Ierobežot lietotājiem koplietot tikai ar lietotājiem savās grupās",
"Allow public uploads" : "Atļaut publisko augšupielādi",
"Enforce password protection" : "Ieviest paroles aizsardzību",
+ "Set default expiration date for internal shares" : "Iestatīt noklusējuma beigu datumu iekšējiem koplietojumiem",
"Enforce expiration date" : "Uzspiest beigu datumu",
"Privacy settings for sharing" : "Kopīgošanas privātuma iestatījumi",
"Two-Factor Authentication" : "Divpakāpju pieteikšanās",
@@ -88,43 +89,13 @@ OC.L10N.register(
"_Update_::_Update all_" : ["Atjaunināt visas","Atjaunināt","Atjaunināt visas"],
"Group name" : "Grupas nosaukums",
"Loading" : "Ielādē",
- "Type" : "Veids",
- "Display Name" : "Attēlojamais vārds",
- "Learn more" : "Uzziniet vairāk",
- "Confirm" : "Apstiprināt",
- "Cancel" : "Atcelt",
- "Description" : "Apraksts",
- "Visit website" : "Apmeklējiet vietni",
- "Admin documentation" : "Pārvaldītāja dokumentācija",
- "Developer documentation" : "Izstrādātāja dokumentācija",
- "Details" : "Detaļas",
- "All" : "Visi",
- "No results" : "Nav rezultātu",
- "Update to {version}" : "Atjaunināt uz {version}",
- "Latest updated" : "Pēdējoreiz atjaunināta",
- "Categories" : "Kategorijas",
- "Resources" : "Resursi",
- "Documentation" : "Dokumentācija",
- "Report a bug" : "Ziņot par kļūdu",
- "Rate" : "Vērtēt",
- "Changelog" : "Izmaiņu žurnāls",
- "Google Chrome for Android" : "Google Chrome for Android",
- "This session" : "Šajā sesijā",
- "Device settings" : "Ierīces iestatījumi",
- "Rename" : "Pārdēvēt",
- "Revoke" : "Atsaukt",
- "Device" : "Ierīce",
- "Last activity" : "Pēdējās darbības",
- "Devices & sessions" : "Ierīces un sesijas",
- "Web, desktop and mobile clients currently logged in to your account." : "Tīmekļa, darbvirsmas un viedierīču klienti, kas pašlaik ir pieteikušies Tavā kontā.",
- "App name" : "Lietotnes nosaukums",
- "Create new app password" : "Izveidot jaunu lietotnes paroli",
"New app password" : "Jauna lietotnes parole",
"Use the credentials below to configure your app or device. For security reasons this password will only be shown once." : "Zemāk esošie piekļuves dati jāizmanto, lai konfigurētu lietotni vai ierīci. Drošības iemeslu dēļ šī parole tiks parādīta tikai vienu reizi.",
"Login" : "Pieteikumvārds",
"Password" : "Parole",
"Show QR code for mobile apps" : "Parādīt kvadrātkodu tālruņa lietotnēm",
"Profile" : "Profils",
+ "Password confirmation is required" : "Nepieciešams paroles apstiprinājums",
"Server-side encryption" : "Servera šifrēšana",
"Enable server-side encryption" : "Ieslēgt servera šifrēšanu",
"No encryption module loaded, please enable an encryption module in the app menu." : "Nav ielādēts šifrēšanas moduļis, lūdzu, aktivizējiet šifrēšanas moduli lietotņu izvēlnē.",
@@ -134,56 +105,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Jāapzinās, ka šifrēšanas vienmēr palielina datnes lielumu.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Vienmēr ir ieteicams regulāri veidot datu rezerves kopijas, un šifrēšanas gadījumā jāpārliecinās, ka līdz ar datiem rezerves kopijas ir izveidotas arī šifrēšanas atslēgām.",
"This is the final warning: Do you really want to enable encryption?" : "Šis ir pēdējais brīdinājums: vai tiešām iespējot šifrēšanu?",
+ "Failed to delete group \"{group}\"" : "Neizdevās izdzēst kopu \"{group}\"",
+ "Cancel" : "Atcelt",
+ "Confirm" : "Apstiprināt",
"Submit" : "Iesniegt",
"Rename group" : "Pārdēvēt kopu",
- "Remove group" : "Noņemt grupu",
- "Current password" : "Pašreizējā parole",
- "New password" : "Jaunā parole",
- "Change password" : "Mainīt paroli",
- "The file must be a PNG or JPG" : "Datnei jābūt PNG vai JPG",
- "Unable to update date of birth" : "Nevarēja atjaunināt dzimšanas datumu",
- "Enter your date of birth" : "Ievadiet Jūsu dzimšanas datumu",
- "You are using {s}{usage}{/s}" : "Jūs izmantojat {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Jūs izmantojat {s}{usage}{/s} no {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Tu esi zemāk uzskaitīto kopu dalībnieks:",
- "This address is not confirmed" : "Šī adrese nav apstiprināta",
- "Primary email for password reset and notifications" : "Primārā e-pasta adrese paroles atjaunošanai un paziņojumiem",
- "No email address set" : "Nav norādīts e-pasts",
- "Help translate" : "Palīdzi tulkot",
- "Unable to update locale" : "Nevarēja atjaunināt lokalizāciju",
- "Locales" : "Lokalizācijas",
- "Week starts on {firstDayOfWeek}" : "Nedēļa sākas {firstDayOfWeek}",
- "No locale set" : "Lokalizācija nav iestatīta",
- "Your phone number" : "Jūsu tālruņa numurs",
- "Edit your Profile visibility" : "Labot Jūsu profila redzamību",
- "Your role" : "Jūsu loma",
- "Your website" : "Jūsu mājaslapa",
- "Add" : "Pievienot",
- "Create" : "Izveidot",
- "Change" : "Mainīt",
- "Delete" : "Izdzēst",
- "Display name" : "Attēlojamais vārds",
- "Email" : "E-pasts",
- "Quota" : "Apjoms",
- "Language" : "Valoda",
- "Add new account" : "Pievienot jaunu kontu",
- "Scroll to load more rows" : "Ritināt, lai ielādētu vairāk rindu",
- "Avatar" : "Profila attēls",
- "Account name" : "Konta nosaukums",
- "Group admin for" : "Kopa \"pārvaldītājs\"",
- "Storage location" : "Krātuves atrašanās vieta",
- "Last login" : "Pēdējā pieteikšanās",
- "Account actions" : "Konta darbības",
- "Delete account" : "Izdzēst kontu",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Pazaudētas ierīces vai apvienības pamešanas gadījumā šis var attālināti notīrīt Nextcloud datus visās ar {userid} saistītajās ierīcēs. Darbojas tikai tad, ja ierīces ir savienotas ar internetu.",
- "Add account to group" : "Pievienot kontu kopai",
- "Done" : "Pabeigts",
- "Edit" : "Labot",
- "Visibility" : "Redzamība",
- "Show last login" : "Rādīt pēdējo autorizāciju",
- "Send email" : "Nosūtīt e-pasta ziņojumu",
- "Default quota" : "Apjoms pēc noklusējuma",
- "Admins" : "Pārvaldītāji",
"Sending…" : "Sūta …",
"Email sent" : "E-pasta ziņojums nosūtīts",
"Location" : "Atrašanās vieta",
@@ -191,18 +117,24 @@ OC.L10N.register(
"About" : "Par",
"Date of birth" : "Dzimšanas datums",
"Full name" : "Pilns vārds",
+ "Email" : "E-pasts",
"Phone number" : "Tālruņa numurs",
"Role" : "Loma",
"Website" : "Mājaslapa",
+ "Language" : "Valoda",
"Locale" : "Lokalizācija",
"First day of week" : "Pirmā nedēļas diena",
"Updates" : "Atjauninājumi",
"Hide" : "Paslēpt",
+ "Update to {version}" : "Atjaunināt uz {version}",
"Disable" : "Deaktivēt",
+ "{size} used" : "Izmantoti {size}",
"Unknown" : "Nezināms",
"Never" : "Nekad",
"Do you really want to wipe your data from this device?" : "Vai tiešām izdzēst datus šajā ierīcē?",
"Error" : "Kļūda",
+ "Default quota" : "Apjoms pēc noklusējuma",
+ "Documentation" : "Dokumentācija",
"Forum" : "Forums",
"Nextcloud help & privacy resources" : "Nextcloud palīdzība un privātuma līdzekļi",
"Privacy policy" : "Privātuma politika",
@@ -219,14 +151,11 @@ OC.L10N.register(
"Credentials" : "Akreditācijas dati",
"SMTP Password" : "SMTP parole",
"Save" : "Saglabāt",
+ "Send email" : "Nosūtīt e-pasta ziņojumu",
"Security & setup warnings" : "Drošības un iestatījumu brīdinājumi",
"All checks passed." : "Visas pārbaudes veiksmīgas.",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Izstrādātās {communityopen}Nextcloud kopiena {linkclose}, {githubopen} avota kods {linkclose} licencēts saskaņā ar {licenseopen}AGPL{linkclose}.",
"Use a second factor besides your password to increase security for your account." : "Vēl viena apliecināšanas līdzekļa izmantošana papildus parolei, lai palielinātu sava konta drošību.",
- "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ja izmanto trešo pušu lietotnes, lai savienotos ar Nextcloud, lūgums ņemt vērā, ka pirms divpakāpju pieteikšanās iespējošanas katrai no tām ir nepieciešams izveidot un izmantot lietotnes paroli.",
- "Your biography" : "Jūsu biogrāfija",
- "You are using <strong>{usage}</strong>" : "Jūs izmantojat <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Jūs izmantojat <strong>{usage}</strong> no <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Username" : "Lietotājvārds"
+ "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ja izmanto trešo pušu lietotnes, lai savienotos ar Nextcloud, lūgums ņemt vērā, ka pirms divpakāpju pieteikšanās iespējošanas katrai no tām ir nepieciešams izveidot un izmantot lietotnes paroli."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/settings/l10n/lv.json b/apps/settings/l10n/lv.json
index c2ca7aeaf55..002a4162295 100644
--- a/apps/settings/l10n/lv.json
+++ b/apps/settings/l10n/lv.json
@@ -16,7 +16,7 @@
"You changed your password" : "Tu nomainīji savu paroli",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Tu pārdēvēji lietotnes paroli \"{token}\" par \"{newToken}\"",
"Security" : "Drošība",
- "You successfully logged in using two-factor authentication (%1$s)" : "Veiksmīga pieteikšanās ar divpakāpju autentifikāciju (%1$s)",
+ "You successfully logged in using two-factor authentication (%1$s)" : "Sekmīga pieteikšanās ar divpakāpju autentificēšanos (%1$s)",
"A login attempt using two-factor authentication failed (%1$s)" : "Pieteikšanās mēģinājums ar divpakāpju autentifikāciju neizdevās (%1$s)",
"Settings" : "Iestatījumi",
"Could not update app." : "Lietotni nevarēja atjaunināt.",
@@ -32,7 +32,7 @@
"Invalid account" : "Nederīgs konts",
"Invalid mail address" : "Nepareiza e-pasta adrese",
"Settings saved" : "Iestatījumi saglabāti",
- "Unable to change full name" : "Nav iespējams nomainīt jūsu pilno vārdu",
+ "Unable to change full name" : "Nevar nomainīt pilno vārdu",
"Unable to change email address" : "Nevar mainīt e-pasta adresi",
"In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Lai apliecinātu savu tīmekļvietni, zemāk esošais saturs ir jāglabā tīmekļvietnes pamatmapē kā `.well-known/CloudIdVerificationCode.txt` (lūgums pārliecināties, ka viss teksts ir vienā rindiņā):",
"Your %s account was created" : "Konts %s ir izveidots",
@@ -58,7 +58,7 @@
"This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Šim serverim nav strādājoša savienojuma ar internetu: vairākus galamērķus nevarēja sasniegt. Tas nozīmē, ka dažas no iespējām, piemēram, ārējas krātuves piemontēšana, paziņojumi par atjauninājumiem vai trešo pušu lietotņu uzstādīšana, nedarbosies. Varētu nedarboties arī attālā piekļūšana datnēm paziņojumu e-pasta ziņojumu nosūtīšana. Šim serverim jānodrošina savienojums ar internetu, lai izmantotu visas iespējas.",
"Disabled" : "Atspējots",
"PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP nešķiet pareizi uzstādīts lai veiktu sistēmas vides mainīgo vaicājumus. Tests ar getenv(\"PATH\") atgriež tikai tukšu atbildi.",
- "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Ir iespējots tikai lasāma konfigurācija. Tas neatļauj iestatīt un mainīt dažas konfigurācijas caur tīmekļa interfeisu. Šī datne būs manuāli jāpārveido par rakstāmu, pirms katra atjauninājuma instalēšanas.",
+ "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Ir iespējota tikai lasāma konfigurācija. Tas neatļauj iestatīt atsevišķu konfigurāciju tīmekļa saskarnē. Turklāt šī datne pašrocīgi jāpadara par rakstāmu katram atjauninājumam.",
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Datubāze nedarbojas ar \"READ COMMITED\" transakciju izolācijas līmeni. Tas var radīt sarežģījumus, kad vienlaicīgi tiek veiktas vairākas darbības.",
"Nextcloud settings" : "Nextcloud iestatījumi",
"Enable" : "Aktivēt",
@@ -69,6 +69,7 @@
"Restrict users to only share with users in their groups" : "Ierobežot lietotājiem koplietot tikai ar lietotājiem savās grupās",
"Allow public uploads" : "Atļaut publisko augšupielādi",
"Enforce password protection" : "Ieviest paroles aizsardzību",
+ "Set default expiration date for internal shares" : "Iestatīt noklusējuma beigu datumu iekšējiem koplietojumiem",
"Enforce expiration date" : "Uzspiest beigu datumu",
"Privacy settings for sharing" : "Kopīgošanas privātuma iestatījumi",
"Two-Factor Authentication" : "Divpakāpju pieteikšanās",
@@ -86,43 +87,13 @@
"_Update_::_Update all_" : ["Atjaunināt visas","Atjaunināt","Atjaunināt visas"],
"Group name" : "Grupas nosaukums",
"Loading" : "Ielādē",
- "Type" : "Veids",
- "Display Name" : "Attēlojamais vārds",
- "Learn more" : "Uzziniet vairāk",
- "Confirm" : "Apstiprināt",
- "Cancel" : "Atcelt",
- "Description" : "Apraksts",
- "Visit website" : "Apmeklējiet vietni",
- "Admin documentation" : "Pārvaldītāja dokumentācija",
- "Developer documentation" : "Izstrādātāja dokumentācija",
- "Details" : "Detaļas",
- "All" : "Visi",
- "No results" : "Nav rezultātu",
- "Update to {version}" : "Atjaunināt uz {version}",
- "Latest updated" : "Pēdējoreiz atjaunināta",
- "Categories" : "Kategorijas",
- "Resources" : "Resursi",
- "Documentation" : "Dokumentācija",
- "Report a bug" : "Ziņot par kļūdu",
- "Rate" : "Vērtēt",
- "Changelog" : "Izmaiņu žurnāls",
- "Google Chrome for Android" : "Google Chrome for Android",
- "This session" : "Šajā sesijā",
- "Device settings" : "Ierīces iestatījumi",
- "Rename" : "Pārdēvēt",
- "Revoke" : "Atsaukt",
- "Device" : "Ierīce",
- "Last activity" : "Pēdējās darbības",
- "Devices & sessions" : "Ierīces un sesijas",
- "Web, desktop and mobile clients currently logged in to your account." : "Tīmekļa, darbvirsmas un viedierīču klienti, kas pašlaik ir pieteikušies Tavā kontā.",
- "App name" : "Lietotnes nosaukums",
- "Create new app password" : "Izveidot jaunu lietotnes paroli",
"New app password" : "Jauna lietotnes parole",
"Use the credentials below to configure your app or device. For security reasons this password will only be shown once." : "Zemāk esošie piekļuves dati jāizmanto, lai konfigurētu lietotni vai ierīci. Drošības iemeslu dēļ šī parole tiks parādīta tikai vienu reizi.",
"Login" : "Pieteikumvārds",
"Password" : "Parole",
"Show QR code for mobile apps" : "Parādīt kvadrātkodu tālruņa lietotnēm",
"Profile" : "Profils",
+ "Password confirmation is required" : "Nepieciešams paroles apstiprinājums",
"Server-side encryption" : "Servera šifrēšana",
"Enable server-side encryption" : "Ieslēgt servera šifrēšanu",
"No encryption module loaded, please enable an encryption module in the app menu." : "Nav ielādēts šifrēšanas moduļis, lūdzu, aktivizējiet šifrēšanas moduli lietotņu izvēlnē.",
@@ -132,56 +103,11 @@
"Be aware that encryption always increases the file size." : "Jāapzinās, ka šifrēšanas vienmēr palielina datnes lielumu.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Vienmēr ir ieteicams regulāri veidot datu rezerves kopijas, un šifrēšanas gadījumā jāpārliecinās, ka līdz ar datiem rezerves kopijas ir izveidotas arī šifrēšanas atslēgām.",
"This is the final warning: Do you really want to enable encryption?" : "Šis ir pēdējais brīdinājums: vai tiešām iespējot šifrēšanu?",
+ "Failed to delete group \"{group}\"" : "Neizdevās izdzēst kopu \"{group}\"",
+ "Cancel" : "Atcelt",
+ "Confirm" : "Apstiprināt",
"Submit" : "Iesniegt",
"Rename group" : "Pārdēvēt kopu",
- "Remove group" : "Noņemt grupu",
- "Current password" : "Pašreizējā parole",
- "New password" : "Jaunā parole",
- "Change password" : "Mainīt paroli",
- "The file must be a PNG or JPG" : "Datnei jābūt PNG vai JPG",
- "Unable to update date of birth" : "Nevarēja atjaunināt dzimšanas datumu",
- "Enter your date of birth" : "Ievadiet Jūsu dzimšanas datumu",
- "You are using {s}{usage}{/s}" : "Jūs izmantojat {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Jūs izmantojat {s}{usage}{/s} no {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Tu esi zemāk uzskaitīto kopu dalībnieks:",
- "This address is not confirmed" : "Šī adrese nav apstiprināta",
- "Primary email for password reset and notifications" : "Primārā e-pasta adrese paroles atjaunošanai un paziņojumiem",
- "No email address set" : "Nav norādīts e-pasts",
- "Help translate" : "Palīdzi tulkot",
- "Unable to update locale" : "Nevarēja atjaunināt lokalizāciju",
- "Locales" : "Lokalizācijas",
- "Week starts on {firstDayOfWeek}" : "Nedēļa sākas {firstDayOfWeek}",
- "No locale set" : "Lokalizācija nav iestatīta",
- "Your phone number" : "Jūsu tālruņa numurs",
- "Edit your Profile visibility" : "Labot Jūsu profila redzamību",
- "Your role" : "Jūsu loma",
- "Your website" : "Jūsu mājaslapa",
- "Add" : "Pievienot",
- "Create" : "Izveidot",
- "Change" : "Mainīt",
- "Delete" : "Izdzēst",
- "Display name" : "Attēlojamais vārds",
- "Email" : "E-pasts",
- "Quota" : "Apjoms",
- "Language" : "Valoda",
- "Add new account" : "Pievienot jaunu kontu",
- "Scroll to load more rows" : "Ritināt, lai ielādētu vairāk rindu",
- "Avatar" : "Profila attēls",
- "Account name" : "Konta nosaukums",
- "Group admin for" : "Kopa \"pārvaldītājs\"",
- "Storage location" : "Krātuves atrašanās vieta",
- "Last login" : "Pēdējā pieteikšanās",
- "Account actions" : "Konta darbības",
- "Delete account" : "Izdzēst kontu",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Pazaudētas ierīces vai apvienības pamešanas gadījumā šis var attālināti notīrīt Nextcloud datus visās ar {userid} saistītajās ierīcēs. Darbojas tikai tad, ja ierīces ir savienotas ar internetu.",
- "Add account to group" : "Pievienot kontu kopai",
- "Done" : "Pabeigts",
- "Edit" : "Labot",
- "Visibility" : "Redzamība",
- "Show last login" : "Rādīt pēdējo autorizāciju",
- "Send email" : "Nosūtīt e-pasta ziņojumu",
- "Default quota" : "Apjoms pēc noklusējuma",
- "Admins" : "Pārvaldītāji",
"Sending…" : "Sūta …",
"Email sent" : "E-pasta ziņojums nosūtīts",
"Location" : "Atrašanās vieta",
@@ -189,18 +115,24 @@
"About" : "Par",
"Date of birth" : "Dzimšanas datums",
"Full name" : "Pilns vārds",
+ "Email" : "E-pasts",
"Phone number" : "Tālruņa numurs",
"Role" : "Loma",
"Website" : "Mājaslapa",
+ "Language" : "Valoda",
"Locale" : "Lokalizācija",
"First day of week" : "Pirmā nedēļas diena",
"Updates" : "Atjauninājumi",
"Hide" : "Paslēpt",
+ "Update to {version}" : "Atjaunināt uz {version}",
"Disable" : "Deaktivēt",
+ "{size} used" : "Izmantoti {size}",
"Unknown" : "Nezināms",
"Never" : "Nekad",
"Do you really want to wipe your data from this device?" : "Vai tiešām izdzēst datus šajā ierīcē?",
"Error" : "Kļūda",
+ "Default quota" : "Apjoms pēc noklusējuma",
+ "Documentation" : "Dokumentācija",
"Forum" : "Forums",
"Nextcloud help & privacy resources" : "Nextcloud palīdzība un privātuma līdzekļi",
"Privacy policy" : "Privātuma politika",
@@ -217,14 +149,11 @@
"Credentials" : "Akreditācijas dati",
"SMTP Password" : "SMTP parole",
"Save" : "Saglabāt",
+ "Send email" : "Nosūtīt e-pasta ziņojumu",
"Security & setup warnings" : "Drošības un iestatījumu brīdinājumi",
"All checks passed." : "Visas pārbaudes veiksmīgas.",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Izstrādātās {communityopen}Nextcloud kopiena {linkclose}, {githubopen} avota kods {linkclose} licencēts saskaņā ar {licenseopen}AGPL{linkclose}.",
"Use a second factor besides your password to increase security for your account." : "Vēl viena apliecināšanas līdzekļa izmantošana papildus parolei, lai palielinātu sava konta drošību.",
- "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ja izmanto trešo pušu lietotnes, lai savienotos ar Nextcloud, lūgums ņemt vērā, ka pirms divpakāpju pieteikšanās iespējošanas katrai no tām ir nepieciešams izveidot un izmantot lietotnes paroli.",
- "Your biography" : "Jūsu biogrāfija",
- "You are using <strong>{usage}</strong>" : "Jūs izmantojat <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Jūs izmantojat <strong>{usage}</strong> no <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Username" : "Lietotājvārds"
+ "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ja izmanto trešo pušu lietotnes, lai savienotos ar Nextcloud, lūgums ņemt vērā, ka pirms divpakāpju pieteikšanās iespējošanas katrai no tām ir nepieciešams izveidot un izmantot lietotnes paroli."
},"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/settings/l10n/mk.js b/apps/settings/l10n/mk.js
index ac37368954b..a1d9d0f9311 100644
--- a/apps/settings/l10n/mk.js
+++ b/apps/settings/l10n/mk.js
@@ -181,49 +181,6 @@ OC.L10N.register(
"_%n app has an update available_::_%n apps have an update available_" : ["За %n апликација има достапно ажурирање","За %n апликации има достапно ажурирање"],
"_Update_::_Update all_" : ["Ажурирај","Ажурирај ги сите"],
"Group name" : "Име на група",
- "Type" : "Вид",
- "Learn more" : "Научи повеќе",
- "Confirm" : "Потврди",
- "Cancel" : "Откажи",
- "View in store" : "Преглед во продавницата за апликации",
- "Visit website" : "Посети ја веб страната",
- "Admin documentation" : "Документација за администратор",
- "Developer documentation" : "Документација за програмери",
- "Details" : "Детали",
- "All" : "Сите",
- "Limit app usage to groups" : "Ограничување за користење на апликации во групи",
- "No results" : "Нема резултати",
- "Update to {version}" : "Надгради на {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Оваа апликација нема доделена минимална верзија. Може да настане грешка во иднина.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Оваа апликација нема доделена максимална верзија. Може да настане грешка во иднина.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Оваа апликација не може да се инсталира затоа што следниве зависности не се исполнети:",
- "Author" : "Автор",
- "Categories" : "Категории",
- "Resources" : "Ресурси",
- "Documentation" : "Документација",
- "Report a bug" : "Пријави грешка",
- "Changelog" : "Листа на промени",
- "Google Chrome for Android" : "Google Chrome за Android",
- "{productName} iOS app" : "{productName} iOS апликација",
- "{productName} Android app" : "{productName} Android апликација",
- "{productName} Talk for iOS" : "{productName} Talk за iOS",
- "{productName} Talk for Android" : "{productName} Talk за Android",
- "This session" : "Оваа сесија",
- "Device name" : "Име на уред",
- "Marked for remote wipe" : "Означи за далечинско бришење",
- "Device settings" : "Параметри за уреди",
- "Allow filesystem access" : "Дозвола за пристап до податоци",
- "Rename" : "Преименувај",
- "Revoke" : "Одземи",
- "Wipe device" : "Избриши уред",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Одземањето на овој токен може да спречи бришење на вашиот уред ако сè уште не е избришано.",
- "Device" : "Уред",
- "Last activity" : "Последна активност",
- "Devices & sessions" : "Уреди и сесии",
- "Web, desktop and mobile clients currently logged in to your account." : "Клиенти за веб, компјутер и мобелен кој моментално се поврзани на твојата сметка.",
- "Error while creating device token" : "Грешка при креирање на токен за уред",
- "App name" : "Име на апликација",
- "Create new app password" : "Креирај нова лозинка за апликација",
"Could not copy app password. Please copy it manually." : "Неможе да се копира лозинката за апликација. Ве молиме копирајте ја рачно.",
"Use the credentials below to configure your app or device. For security reasons this password will only be shown once." : "Користете ги акредитивите подолу за да ја конфигурирате вашата апликација или уред. Од безбедносни причини оваа лозинка ќе се прикаже само еднаш.",
"Login" : "Најава",
@@ -255,129 +212,10 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Бидете свесни дека енкрипцијата секогаш ја зголемува големината на датотеката.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Секогаш е добро да создавате редовни резервни кории на вашите податоци, во случај на енкрипција, осигурајте се да ги зачувате и клучевите за шифрирање заедно со вашите податоци.",
"This is the final warning: Do you really want to enable encryption?" : "Ова е последно предупредување: Дали навистина сакате да овозможите енкрипција?",
+ "Cancel" : "Откажи",
+ "Confirm" : "Потврди",
"Submit" : "Испрати",
"Rename group" : "Преименувај група",
- "Remove group" : "Отстрани група",
- "Current password" : "Моментална лозинка",
- "New password" : "Нова лозинка",
- "Change password" : "Промени лозинка",
- "Choose your profile picture" : "Избери за фотографија за профилот",
- "Please select a valid png or jpg file" : "Изберете png или jpg датотека",
- "Error setting profile picture" : "Грешка при поставување на фотографија за профилот",
- "Error cropping profile picture" : "Грешка при сечење на фотографија за профилот",
- "Error saving profile picture" : "Грешка при зачувување на фотографија за профилот",
- "Error removing profile picture" : "Грешка при бришење на фотографија за профилот",
- "Your profile picture" : "Ваша фотографија на профилот",
- "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" : "Слика обезбедена од оригинална сметка",
- "Set as profile picture" : "Постави фотографија на профилот",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Имајте предвид дека може да потрае до 24 часа за да се ажурира аватарот насекаде.",
- "Enter your date of birth" : "Внесете го вашиот датум на раѓање",
- "You are a member of the following groups:" : "Член сте на следниве групи",
- "Your full name" : "Вашето целосно име",
- "Email options" : "Е-пошта параметри",
- "Remove primary email" : "Избриши примарна е-пошта",
- "Delete email" : "Избриши е-пошта",
- "This address is not confirmed" : "Оваа адреса не е потврдена",
- "Unset as primary email" : "Острани од примарна е-пошта",
- "Set as primary email" : "Постави како примарна е-пошта",
- "Additional email address {index}" : "Дополнителна е-пошта {index}",
- "Unable to delete primary email address" : "Неможе да се избрише примарната е-пошта",
- "Unable to update primary email address" : "Не може да се ажурира примарната е-пошта адреса",
- "Unable to add additional email address" : "Не може да се додаде дополнителна е-пошта адреса",
- "Unable to update additional email address" : "Не може да се ажурира дополнителната е-пошта адреса",
- "Unable to delete additional email address" : "Не може да се избрише дополнителната е-пошта адреса",
- "Primary email for password reset and notifications" : "Примарна Е-пошта за ресетирање на лозинка и известувања",
- "No email address set" : "Нема поставено адреса за е-пошта ",
- "Derived from your locale ({weekDayName})" : "Произлезено од вашата локација ({weekDayName})",
- "Your headline" : "Вашиот наслов",
- "Unable to update language" : "Не може да се ажурира јазикот",
- "Help translate" : "Помогни во преводот",
- "No language set" : "Не е поставен јазик",
- "Unable to update locale" : "Не може да се ажурира локалната локација",
- "Week starts on {firstDayOfWeek}" : "Неделата започнува во {firstDayOfWeek}",
- "No locale set" : "Нема поставено локална локација",
- "Your city" : "Град",
- "Your organisation" : "Вашата организација",
- "Your phone number" : "Вашиот телефонски број",
- "Edit your Profile visibility" : "Уредете ја видливоста на вашиот профил",
- "Unable to update profile enabled state" : "Неможе да се ажурира достапноста на профилот",
- "Enable profile" : "Овозможи профил",
- "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." : "Порестриктивни параметри за видливост или опсег се почитува на вашиот профил. На пример, ако видливоста е поставена на \"Прикажи на сите\", а опсегот е поставен на \"Приватно\", се почитува \"Приватно\".",
- "Unable to update visibility of {displayId}" : "Неможе да се ажурира видливоста на {displayId}",
- "Your role" : "Ваша улога",
- "Your website" : "Ваша вебстрана",
- "Unable to update {property}" : "Неможе да се ажурира {property}",
- "No {property} set" : "Нема поставено {property}",
- "Change scope level of {property}, current scope is {scope}" : "Променете го нивото на опсегот на {property}, моменталниот опсег е {scope}",
- "Unable to update federation scope of the primary {property}" : "Не може да се ажурира опсегот на федерацијата на примарните {property}",
- "Unable to update federation scope of additional {property}" : "Не може да се ажурира опсегот на федерацијата на дополнителни {property}",
- "Add additional email" : "Додади дополнителна е-пошта",
- "Add" : "Додади",
- "Create" : "Креирај",
- "Change" : "Измени",
- "Delete" : "Избриши",
- "Reshare" : "Пресподели",
- "Default language" : "Стандарден јазик",
- "Common languages" : "Заеднички јазици",
- "Other languages" : "Други јазици",
- "Password change is disabled because the master key is disabled" : "Ресетирање на лозинка е оневозможено бидејќи главниот клуч е оневозможен",
- "No accounts" : "Нема сметки",
- "Manager" : "Менаџер",
- "Display name" : "Име и презиме",
- "Either password or email is required" : "Внесување на лозинка или Е-пошта е задолжително",
- "Password (required)" : "Лозинка (задолжително)",
- "Email (required)" : "Е-пошта (задолжително)",
- "Email" : "Е-пошта",
- "Quota" : "Квота",
- "Language" : "Јазик",
- "Set default language" : "Постави стандарден јазик",
- "Total rows summary" : "Резиме на вкупно редови",
- "Scroll to load more rows" : "Одете надолу за да се вчитаат повеќе редови",
- "Password or insufficient permissions message" : "Порака за лозинка или недоволна дозвола",
- "Avatar" : "Аватар",
- "Group admin for" : "Администратор на група",
- "Storage location" : "Локација на складиште",
- "Last login" : "Последно најавување",
- "{size} used" : "искористено {size}",
- "Delete account" : "Избриши сметка",
- "Resend welcome email" : "Повторно испрати е-пошта порака за добредојде",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Во случај да го изгубите уредот или да излезете од компанијата, можете далечински да ги избришете податоците од сите уреди кој се конектирани со корисникот {userid}. Ова работи само доколку уредот е поврзан на интернет.",
- "Remote wipe of devices" : "Далечинско бришење на уреди",
- "Wipe {userid}'s devices" : "Бришење уред на корисникот {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Целосно бришење на сметка на {userid} вклучувајќи и сопствените податоци, апликации итн.",
- "Account deletion" : "Бришење на сметката",
- "Delete {userid}'s account" : "Избриши го корисникот {userid}",
- "Welcome mail sent!" : "Испратена е-пошта порака за добредојде!",
- "Change display name" : "Промена на името",
- "Set the language" : "Постави јазик",
- "Done" : "Готово",
- "Edit" : "Уреди",
- "Visibility" : "Видливост",
- "Show language" : "Прикажи јазик",
- "Show storage path" : "Прикажи патека на складиште",
- "Show last login" : "Прикажи последно најавување",
- "Send email" : "Испрати пошта",
- "Defaults" : "Стандарди",
- "Default quota" : "Стандардна квота",
- "Select default quota" : "Избери стандардна квота",
- "Server error while trying to complete WebAuthn device registration" : "Грешка на серверот при обид за комплетирање на регистрацијата на WEBAuthn уред",
- "Passwordless authentication requires a secure connection." : "За најавување без лозинка потребно е да се користи безбедна врска.",
- "Add WebAuthn device" : "Додади WebAuthn уред",
- "Please authorize your WebAuthn device." : "Авторизирајте го вашиот WebAuthn уред.",
- "Adding your device …" : "Додавање на вашиот уред ...",
- "Unnamed device" : "Уреди без име",
- "Passwordless Authentication" : "Најавување без лозинка",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Поставете ја вашата сметка за најавување без лозинка притоа следете ги FIDO2 стандардите.",
- "No devices configured." : "Нема конфигурирани уреди",
- "The following devices are configured for your account:" : "Следниве уреди се конфигурирани за вашата сметка:",
- "Your browser does not support WebAuthn." : "Вашиот прелистувач не поддржува WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Како администратор, можете детално да го прилагодите однесувањето на споделувањето. Погледнете ја документацијата за повеќе информации.",
- "You need to enable the File sharing App." : "Треба да ја овозможите апликацијата Споделување на датотеки.",
- "Admins" : "Администратори",
"Sending…" : "Испраќа…",
"Email sent" : "Е-порака пратена",
"Location" : "Локација",
@@ -385,6 +223,7 @@ OC.L10N.register(
"About" : "За",
"Full name" : "Име и презиме",
"Additional email" : "Дополнителна е-пошта",
+ "Email" : "Е-пошта",
"Headline" : "Наслов",
"Organisation" : "Организација",
"Phone number" : "Телефонски број",
@@ -392,6 +231,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (поранешен Twitter)",
"Website" : "ВЕБ страна",
"Profile visibility" : "Видливост на профилот",
+ "Language" : "Јазик",
"Locale" : "Локација",
"First day of week" : "Прв ден од неделата",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Не е достапно бидејќи ова својство е потребно за основна функционалност, вклучувајќи споделување датотеки и покани од календар",
@@ -405,11 +245,13 @@ OC.L10N.register(
"Show to everyone" : "Прикажи на сите",
"Show to logged in accounts only" : "Прикажи само на најавени корисници",
"Hide" : "Сокриј",
+ "Update to {version}" : "Надгради на {version}",
"Download and enable" : "Преземи и овозможи",
"Disable" : "Оневозможи",
"Allow untested app" : "Дозволи не тестирана апликација",
"The app will be downloaded from the App Store" : "Апликацијата ќе биде преземена преку продавницата за апликации",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Апликацијата не е означена дека е компатибилна со вашата верзија на Nextcloud. Доколку продолжите апликацијата ќе се инсталира. Имајте на ум дека апликацијата може да не работи како што очекувате.",
+ "{size} used" : "искористено {size}",
"Unknown" : "Непознат",
"Never" : "Никогаш",
"An error occurred during the request. Unable to proceed." : "Настана грешка во процесот. Не може да продолжи.",
@@ -422,6 +264,8 @@ OC.L10N.register(
"Error while updating device token scope" : "Грешка при ажурирање на токен за уред",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Има испратено премногу барање од вашата мрежа. Обидете се подоцна повторно или контактирајте го администраторот.",
"Error" : "Грешка",
+ "Default quota" : "Стандардна квота",
+ "Documentation" : "Документација",
"Forum" : "Форум",
"Legal notice" : "Правно известување",
"Privacy policy" : "Политика за приватност",
@@ -441,6 +285,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP лозинка",
"Save" : "Зачувај",
"Test and verify email settings" : "Тестирај и потврди ги параметрите за електронска пошта",
+ "Send email" : "Испрати пошта",
"Security & setup warnings" : "Предупредувања за сигурност & параметри",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Важно е за безбедноста и перформансите на вашата истанца дека сè е правилно конфигурирано. Да ви помогнеме во тоа, правиме неколку автоматски проверки. Погледнете ја документација за повеќе информации.",
"All checks passed." : "Сите проверки се поминати.",
@@ -457,36 +302,6 @@ OC.L10N.register(
"Subscribe to our newsletter" : "Претплатете се на нашиот билтен",
"Use a second factor besides your password to increase security for your account." : "Користете втор фактор и покрај вашата лозинка за да ја зголемите безбедноста на вашата сметка.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Доколку користите друга апликација за поврзување на Nextcloud, осигурајте се дека имате креирано лозинка за секоја апликација пред да овозможите втор фактор.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Во базата недостасуваат некој индекси. Поради фактот што додавањето индекси во големи бази може да потрае, тие не беа додадени автоматски. Со стартување на командата \"occ db:add-missing-indices\" ќе бидат додадени оние индекси што недостасуваат и инстанцата непречено ќе работи. Еднаш кога ќе бидат додадени индексите, барањата во табелите ќе биде многу побрзо.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Се користи MariaDB верзија\"%s\". Nextcloud 21 и поголемите верзии, повеќе нема да ја поддржува оваа верзија и потебно е да ја ажурирате на верзија 10.2 или понова.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Се користи MySQL верзија\"%s\". Nextcloud 21 и поголемите верзии, повеќе нема да ја поддржува оваа верзија и потебно е да ја ажурирате на верзија 8.0 или MariaDB 10.2 или понова.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Се користи PostgreSQL верзија\"%s\". Nextcloud 21 и поголемите верзии, повеќе нема да ја поддржува оваа верзија и потебно е да ја ажурирате на верзија 9.6 или понова.",
- "Speech-To-Text" : "Говор-во-текст",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Говор-во-текст може да се имплементира од различни апликации. Овде можете да поставите која апликација треба да се користи.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ниту една од вашите тековно инсталирани апликации не обезбедува функционалност за говор во текст",
- "None of your currently installed apps provide Text processing functionality" : "Ниту една од вашите моментално инсталирани апликации не обезбедува функционалност за обработка на текст",
- "Set default expiration date for shares" : "Постави основен рок на траење за споделувањата",
- "Your biography" : "Ваша биографија",
- "You are using <strong>{usage}</strong>" : "Користите <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Користите <strong>{usage}</strong> од <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Постави корисник за менаџер",
- "Username will be autogenerated" : "Корисничкото име ќе биде автоматски генерирано",
- "Username (required)" : "Корисничко име (задолжително)",
- "New user" : "Нов корисник",
- "Groups (required)" : "Групи (задолжително)",
- "Set user groups" : "Постави корисничка група",
- "Administered groups" : "Администрирани групи",
- "Set user as admin for …" : "Назначи го корисникот како администратор за ...",
- "Set user quota" : "Постави квота за корисник",
- "Add new user" : "Додади нов корисник",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} корисник …","{userCount} корисници …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} корисник","{userCount} корисници"],
- "Loading users …" : "Вчитување корисници ...",
- "Username" : "Корисничко име",
- "User backend" : "Задна страна на корисник",
- "Add user to group" : "Додади корисник во група",
- "Server error while trying to add WebAuthn device" : "Грешка на серверот при обид за додавање на WEBAuthn уред",
- "Name your device" : "Име на вашиот уред",
- "Follow us on Twitter" : "Следете не на Twitter"
+ "Set default expiration date for shares" : "Постави основен рок на траење за споделувањата"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/settings/l10n/mk.json b/apps/settings/l10n/mk.json
index 802989feb41..20bd160a30e 100644
--- a/apps/settings/l10n/mk.json
+++ b/apps/settings/l10n/mk.json
@@ -179,49 +179,6 @@
"_%n app has an update available_::_%n apps have an update available_" : ["За %n апликација има достапно ажурирање","За %n апликации има достапно ажурирање"],
"_Update_::_Update all_" : ["Ажурирај","Ажурирај ги сите"],
"Group name" : "Име на група",
- "Type" : "Вид",
- "Learn more" : "Научи повеќе",
- "Confirm" : "Потврди",
- "Cancel" : "Откажи",
- "View in store" : "Преглед во продавницата за апликации",
- "Visit website" : "Посети ја веб страната",
- "Admin documentation" : "Документација за администратор",
- "Developer documentation" : "Документација за програмери",
- "Details" : "Детали",
- "All" : "Сите",
- "Limit app usage to groups" : "Ограничување за користење на апликации во групи",
- "No results" : "Нема резултати",
- "Update to {version}" : "Надгради на {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Оваа апликација нема доделена минимална верзија. Може да настане грешка во иднина.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Оваа апликација нема доделена максимална верзија. Може да настане грешка во иднина.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Оваа апликација не може да се инсталира затоа што следниве зависности не се исполнети:",
- "Author" : "Автор",
- "Categories" : "Категории",
- "Resources" : "Ресурси",
- "Documentation" : "Документација",
- "Report a bug" : "Пријави грешка",
- "Changelog" : "Листа на промени",
- "Google Chrome for Android" : "Google Chrome за Android",
- "{productName} iOS app" : "{productName} iOS апликација",
- "{productName} Android app" : "{productName} Android апликација",
- "{productName} Talk for iOS" : "{productName} Talk за iOS",
- "{productName} Talk for Android" : "{productName} Talk за Android",
- "This session" : "Оваа сесија",
- "Device name" : "Име на уред",
- "Marked for remote wipe" : "Означи за далечинско бришење",
- "Device settings" : "Параметри за уреди",
- "Allow filesystem access" : "Дозвола за пристап до податоци",
- "Rename" : "Преименувај",
- "Revoke" : "Одземи",
- "Wipe device" : "Избриши уред",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Одземањето на овој токен може да спречи бришење на вашиот уред ако сè уште не е избришано.",
- "Device" : "Уред",
- "Last activity" : "Последна активност",
- "Devices & sessions" : "Уреди и сесии",
- "Web, desktop and mobile clients currently logged in to your account." : "Клиенти за веб, компјутер и мобелен кој моментално се поврзани на твојата сметка.",
- "Error while creating device token" : "Грешка при креирање на токен за уред",
- "App name" : "Име на апликација",
- "Create new app password" : "Креирај нова лозинка за апликација",
"Could not copy app password. Please copy it manually." : "Неможе да се копира лозинката за апликација. Ве молиме копирајте ја рачно.",
"Use the credentials below to configure your app or device. For security reasons this password will only be shown once." : "Користете ги акредитивите подолу за да ја конфигурирате вашата апликација или уред. Од безбедносни причини оваа лозинка ќе се прикаже само еднаш.",
"Login" : "Најава",
@@ -253,129 +210,10 @@
"Be aware that encryption always increases the file size." : "Бидете свесни дека енкрипцијата секогаш ја зголемува големината на датотеката.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Секогаш е добро да создавате редовни резервни кории на вашите податоци, во случај на енкрипција, осигурајте се да ги зачувате и клучевите за шифрирање заедно со вашите податоци.",
"This is the final warning: Do you really want to enable encryption?" : "Ова е последно предупредување: Дали навистина сакате да овозможите енкрипција?",
+ "Cancel" : "Откажи",
+ "Confirm" : "Потврди",
"Submit" : "Испрати",
"Rename group" : "Преименувај група",
- "Remove group" : "Отстрани група",
- "Current password" : "Моментална лозинка",
- "New password" : "Нова лозинка",
- "Change password" : "Промени лозинка",
- "Choose your profile picture" : "Избери за фотографија за профилот",
- "Please select a valid png or jpg file" : "Изберете png или jpg датотека",
- "Error setting profile picture" : "Грешка при поставување на фотографија за профилот",
- "Error cropping profile picture" : "Грешка при сечење на фотографија за профилот",
- "Error saving profile picture" : "Грешка при зачувување на фотографија за профилот",
- "Error removing profile picture" : "Грешка при бришење на фотографија за профилот",
- "Your profile picture" : "Ваша фотографија на профилот",
- "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" : "Слика обезбедена од оригинална сметка",
- "Set as profile picture" : "Постави фотографија на профилот",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Имајте предвид дека може да потрае до 24 часа за да се ажурира аватарот насекаде.",
- "Enter your date of birth" : "Внесете го вашиот датум на раѓање",
- "You are a member of the following groups:" : "Член сте на следниве групи",
- "Your full name" : "Вашето целосно име",
- "Email options" : "Е-пошта параметри",
- "Remove primary email" : "Избриши примарна е-пошта",
- "Delete email" : "Избриши е-пошта",
- "This address is not confirmed" : "Оваа адреса не е потврдена",
- "Unset as primary email" : "Острани од примарна е-пошта",
- "Set as primary email" : "Постави како примарна е-пошта",
- "Additional email address {index}" : "Дополнителна е-пошта {index}",
- "Unable to delete primary email address" : "Неможе да се избрише примарната е-пошта",
- "Unable to update primary email address" : "Не може да се ажурира примарната е-пошта адреса",
- "Unable to add additional email address" : "Не може да се додаде дополнителна е-пошта адреса",
- "Unable to update additional email address" : "Не може да се ажурира дополнителната е-пошта адреса",
- "Unable to delete additional email address" : "Не може да се избрише дополнителната е-пошта адреса",
- "Primary email for password reset and notifications" : "Примарна Е-пошта за ресетирање на лозинка и известувања",
- "No email address set" : "Нема поставено адреса за е-пошта ",
- "Derived from your locale ({weekDayName})" : "Произлезено од вашата локација ({weekDayName})",
- "Your headline" : "Вашиот наслов",
- "Unable to update language" : "Не може да се ажурира јазикот",
- "Help translate" : "Помогни во преводот",
- "No language set" : "Не е поставен јазик",
- "Unable to update locale" : "Не може да се ажурира локалната локација",
- "Week starts on {firstDayOfWeek}" : "Неделата започнува во {firstDayOfWeek}",
- "No locale set" : "Нема поставено локална локација",
- "Your city" : "Град",
- "Your organisation" : "Вашата организација",
- "Your phone number" : "Вашиот телефонски број",
- "Edit your Profile visibility" : "Уредете ја видливоста на вашиот профил",
- "Unable to update profile enabled state" : "Неможе да се ажурира достапноста на профилот",
- "Enable profile" : "Овозможи профил",
- "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." : "Порестриктивни параметри за видливост или опсег се почитува на вашиот профил. На пример, ако видливоста е поставена на \"Прикажи на сите\", а опсегот е поставен на \"Приватно\", се почитува \"Приватно\".",
- "Unable to update visibility of {displayId}" : "Неможе да се ажурира видливоста на {displayId}",
- "Your role" : "Ваша улога",
- "Your website" : "Ваша вебстрана",
- "Unable to update {property}" : "Неможе да се ажурира {property}",
- "No {property} set" : "Нема поставено {property}",
- "Change scope level of {property}, current scope is {scope}" : "Променете го нивото на опсегот на {property}, моменталниот опсег е {scope}",
- "Unable to update federation scope of the primary {property}" : "Не може да се ажурира опсегот на федерацијата на примарните {property}",
- "Unable to update federation scope of additional {property}" : "Не може да се ажурира опсегот на федерацијата на дополнителни {property}",
- "Add additional email" : "Додади дополнителна е-пошта",
- "Add" : "Додади",
- "Create" : "Креирај",
- "Change" : "Измени",
- "Delete" : "Избриши",
- "Reshare" : "Пресподели",
- "Default language" : "Стандарден јазик",
- "Common languages" : "Заеднички јазици",
- "Other languages" : "Други јазици",
- "Password change is disabled because the master key is disabled" : "Ресетирање на лозинка е оневозможено бидејќи главниот клуч е оневозможен",
- "No accounts" : "Нема сметки",
- "Manager" : "Менаџер",
- "Display name" : "Име и презиме",
- "Either password or email is required" : "Внесување на лозинка или Е-пошта е задолжително",
- "Password (required)" : "Лозинка (задолжително)",
- "Email (required)" : "Е-пошта (задолжително)",
- "Email" : "Е-пошта",
- "Quota" : "Квота",
- "Language" : "Јазик",
- "Set default language" : "Постави стандарден јазик",
- "Total rows summary" : "Резиме на вкупно редови",
- "Scroll to load more rows" : "Одете надолу за да се вчитаат повеќе редови",
- "Password or insufficient permissions message" : "Порака за лозинка или недоволна дозвола",
- "Avatar" : "Аватар",
- "Group admin for" : "Администратор на група",
- "Storage location" : "Локација на складиште",
- "Last login" : "Последно најавување",
- "{size} used" : "искористено {size}",
- "Delete account" : "Избриши сметка",
- "Resend welcome email" : "Повторно испрати е-пошта порака за добредојде",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Во случај да го изгубите уредот или да излезете од компанијата, можете далечински да ги избришете податоците од сите уреди кој се конектирани со корисникот {userid}. Ова работи само доколку уредот е поврзан на интернет.",
- "Remote wipe of devices" : "Далечинско бришење на уреди",
- "Wipe {userid}'s devices" : "Бришење уред на корисникот {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Целосно бришење на сметка на {userid} вклучувајќи и сопствените податоци, апликации итн.",
- "Account deletion" : "Бришење на сметката",
- "Delete {userid}'s account" : "Избриши го корисникот {userid}",
- "Welcome mail sent!" : "Испратена е-пошта порака за добредојде!",
- "Change display name" : "Промена на името",
- "Set the language" : "Постави јазик",
- "Done" : "Готово",
- "Edit" : "Уреди",
- "Visibility" : "Видливост",
- "Show language" : "Прикажи јазик",
- "Show storage path" : "Прикажи патека на складиште",
- "Show last login" : "Прикажи последно најавување",
- "Send email" : "Испрати пошта",
- "Defaults" : "Стандарди",
- "Default quota" : "Стандардна квота",
- "Select default quota" : "Избери стандардна квота",
- "Server error while trying to complete WebAuthn device registration" : "Грешка на серверот при обид за комплетирање на регистрацијата на WEBAuthn уред",
- "Passwordless authentication requires a secure connection." : "За најавување без лозинка потребно е да се користи безбедна врска.",
- "Add WebAuthn device" : "Додади WebAuthn уред",
- "Please authorize your WebAuthn device." : "Авторизирајте го вашиот WebAuthn уред.",
- "Adding your device …" : "Додавање на вашиот уред ...",
- "Unnamed device" : "Уреди без име",
- "Passwordless Authentication" : "Најавување без лозинка",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Поставете ја вашата сметка за најавување без лозинка притоа следете ги FIDO2 стандардите.",
- "No devices configured." : "Нема конфигурирани уреди",
- "The following devices are configured for your account:" : "Следниве уреди се конфигурирани за вашата сметка:",
- "Your browser does not support WebAuthn." : "Вашиот прелистувач не поддржува WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Како администратор, можете детално да го прилагодите однесувањето на споделувањето. Погледнете ја документацијата за повеќе информации.",
- "You need to enable the File sharing App." : "Треба да ја овозможите апликацијата Споделување на датотеки.",
- "Admins" : "Администратори",
"Sending…" : "Испраќа…",
"Email sent" : "Е-порака пратена",
"Location" : "Локација",
@@ -383,6 +221,7 @@
"About" : "За",
"Full name" : "Име и презиме",
"Additional email" : "Дополнителна е-пошта",
+ "Email" : "Е-пошта",
"Headline" : "Наслов",
"Organisation" : "Организација",
"Phone number" : "Телефонски број",
@@ -390,6 +229,7 @@
"X (formerly Twitter)" : "X (поранешен Twitter)",
"Website" : "ВЕБ страна",
"Profile visibility" : "Видливост на профилот",
+ "Language" : "Јазик",
"Locale" : "Локација",
"First day of week" : "Прв ден од неделата",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Не е достапно бидејќи ова својство е потребно за основна функционалност, вклучувајќи споделување датотеки и покани од календар",
@@ -403,11 +243,13 @@
"Show to everyone" : "Прикажи на сите",
"Show to logged in accounts only" : "Прикажи само на најавени корисници",
"Hide" : "Сокриј",
+ "Update to {version}" : "Надгради на {version}",
"Download and enable" : "Преземи и овозможи",
"Disable" : "Оневозможи",
"Allow untested app" : "Дозволи не тестирана апликација",
"The app will be downloaded from the App Store" : "Апликацијата ќе биде преземена преку продавницата за апликации",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Апликацијата не е означена дека е компатибилна со вашата верзија на Nextcloud. Доколку продолжите апликацијата ќе се инсталира. Имајте на ум дека апликацијата може да не работи како што очекувате.",
+ "{size} used" : "искористено {size}",
"Unknown" : "Непознат",
"Never" : "Никогаш",
"An error occurred during the request. Unable to proceed." : "Настана грешка во процесот. Не може да продолжи.",
@@ -420,6 +262,8 @@
"Error while updating device token scope" : "Грешка при ажурирање на токен за уред",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Има испратено премногу барање од вашата мрежа. Обидете се подоцна повторно или контактирајте го администраторот.",
"Error" : "Грешка",
+ "Default quota" : "Стандардна квота",
+ "Documentation" : "Документација",
"Forum" : "Форум",
"Legal notice" : "Правно известување",
"Privacy policy" : "Политика за приватност",
@@ -439,6 +283,7 @@
"SMTP Password" : "SMTP лозинка",
"Save" : "Зачувај",
"Test and verify email settings" : "Тестирај и потврди ги параметрите за електронска пошта",
+ "Send email" : "Испрати пошта",
"Security & setup warnings" : "Предупредувања за сигурност & параметри",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Важно е за безбедноста и перформансите на вашата истанца дека сè е правилно конфигурирано. Да ви помогнеме во тоа, правиме неколку автоматски проверки. Погледнете ја документација за повеќе информации.",
"All checks passed." : "Сите проверки се поминати.",
@@ -455,36 +300,6 @@
"Subscribe to our newsletter" : "Претплатете се на нашиот билтен",
"Use a second factor besides your password to increase security for your account." : "Користете втор фактор и покрај вашата лозинка за да ја зголемите безбедноста на вашата сметка.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Доколку користите друга апликација за поврзување на Nextcloud, осигурајте се дека имате креирано лозинка за секоја апликација пред да овозможите втор фактор.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Во базата недостасуваат некој индекси. Поради фактот што додавањето индекси во големи бази може да потрае, тие не беа додадени автоматски. Со стартување на командата \"occ db:add-missing-indices\" ќе бидат додадени оние индекси што недостасуваат и инстанцата непречено ќе работи. Еднаш кога ќе бидат додадени индексите, барањата во табелите ќе биде многу побрзо.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Се користи MariaDB верзија\"%s\". Nextcloud 21 и поголемите верзии, повеќе нема да ја поддржува оваа верзија и потебно е да ја ажурирате на верзија 10.2 или понова.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Се користи MySQL верзија\"%s\". Nextcloud 21 и поголемите верзии, повеќе нема да ја поддржува оваа верзија и потебно е да ја ажурирате на верзија 8.0 или MariaDB 10.2 или понова.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Се користи PostgreSQL верзија\"%s\". Nextcloud 21 и поголемите верзии, повеќе нема да ја поддржува оваа верзија и потебно е да ја ажурирате на верзија 9.6 или понова.",
- "Speech-To-Text" : "Говор-во-текст",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Говор-во-текст може да се имплементира од различни апликации. Овде можете да поставите која апликација треба да се користи.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ниту една од вашите тековно инсталирани апликации не обезбедува функционалност за говор во текст",
- "None of your currently installed apps provide Text processing functionality" : "Ниту една од вашите моментално инсталирани апликации не обезбедува функционалност за обработка на текст",
- "Set default expiration date for shares" : "Постави основен рок на траење за споделувањата",
- "Your biography" : "Ваша биографија",
- "You are using <strong>{usage}</strong>" : "Користите <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Користите <strong>{usage}</strong> од <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Постави корисник за менаџер",
- "Username will be autogenerated" : "Корисничкото име ќе биде автоматски генерирано",
- "Username (required)" : "Корисничко име (задолжително)",
- "New user" : "Нов корисник",
- "Groups (required)" : "Групи (задолжително)",
- "Set user groups" : "Постави корисничка група",
- "Administered groups" : "Администрирани групи",
- "Set user as admin for …" : "Назначи го корисникот како администратор за ...",
- "Set user quota" : "Постави квота за корисник",
- "Add new user" : "Додади нов корисник",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} корисник …","{userCount} корисници …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} корисник","{userCount} корисници"],
- "Loading users …" : "Вчитување корисници ...",
- "Username" : "Корисничко име",
- "User backend" : "Задна страна на корисник",
- "Add user to group" : "Додади корисник во група",
- "Server error while trying to add WebAuthn device" : "Грешка на серверот при обид за додавање на WEBAuthn уред",
- "Name your device" : "Име на вашиот уред",
- "Follow us on Twitter" : "Следете не на Twitter"
+ "Set default expiration date for shares" : "Постави основен рок на траење за споделувањата"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/mn.js b/apps/settings/l10n/mn.js
deleted file mode 100644
index eb47c1bc352..00000000000
--- a/apps/settings/l10n/mn.js
+++ /dev/null
@@ -1,111 +0,0 @@
-OC.L10N.register(
- "settings",
- {
- "Private" : "Далд",
- "Federated" : "Federated",
- "Verify" : "Шалнгах",
- "Unable to change password" : "Нууц үг солих боломжгүй",
- "Very weak password" : "маш муу нууц үг",
- "Weak password" : "муу нууц үг",
- "So-so password" : "ердийн нууц үг",
- "Good password" : "зөв нууц үг ",
- "Strong password" : "баттай нууц үг",
- "Groups" : "Бүлгүүд",
- "{actor} changed your password" : "{actor} таны нууц үгийг солив",
- "You changed your password" : "Та өөрийн нууц үг солив",
- "Your password was reset by an administrator" : "Зохицуулагч таны нууц үгийг солив",
- "{actor} changed your email address" : "{actor} таны цахим шуудангийн хаягийг солив",
- "You changed your email address" : "Та өөрийн цахим шуудангийн хаягийг солив",
- "Your email address was changed by an administrator" : "Зохицуулагч таны цахим шуудангийн хаягийг солив",
- "Security" : "Хамгаалалт",
- "Wrong password" : "Нууц үг буруу байна",
- "Saved" : "Хадгалагдсан",
- "Authentication error" : "Нотолгооны алдаа",
- "Invalid SMTP password." : "SMTP -н нууц үг буруу байна ",
- "Email setting test" : "Цахим шуудангийн тохиргоог шалгах",
- "If you received this email, the email configuration seems to be correct." : "Хэрэв та энэ цахим захидалыг хүлээн авсан бол цахим шуудангийн тохиргоо нь зөв байна.",
- "Email could not be sent. Check your mail server log" : "Цахим захидлыг илгээж чадсангүй. Цахим шуудангийн серверийн лог шалгана уу.",
- "Invalid user" : "Буруу хэрэглэгч",
- "Settings saved" : "Тохиргоо хадгалагдлаа",
- "Unable to change full name" : "Бүтэн нэрийг солих боломжгүй",
- "Unable to change email address" : "Цахим шуудангийн хаягийг солих боломжгүй",
- "If you did not request this, please contact an administrator." : "Хэрэв та энэ хүсэлтийг илгээгээгүй бол зохицуулагч руу хандана уу.",
- "Set your password" : "Нууц үгээ тохируулна уу",
- "Apps" : "Аппликэйшинууд",
- "Settings" : "Тохиргоо",
- "Personal" : "Хувийн",
- "Sharing" : "Түгээх",
- "Personal info" : "Хувийн мэдээлэл",
- "Create" : "Үүсгэх",
- "Delete" : "Устгах",
- "None" : "юу ч үгүй",
- "Save changes" : "Өөрчлөлтийг хадгалах",
- "All" : "бүх",
- "No results" : "Үр дүн байхгүй",
- "Update to {version}" : "{version} хувилбар руу шинэчлэх",
- "Remove" : "Устгах",
- "Visit website" : "Цахим хуудсаар зочлох",
- "User documentation" : "Хэрэглэгчийн баримт бичиг",
- "Admin documentation" : "Админы баримт бичиг",
- "Featured" : "Алдартай",
- "Rename" : "Нэрлэнэ үү",
- "Device" : "Төхөөрөмж",
- "Last activity" : "Хамгийн сүүлийн үйлдэл",
- "App name" : "Аппликэйшны нэр",
- "Username" : "Хэрэглэгчийн нэр",
- "Password" : "Нууц үг",
- "Done" : "Дууссан",
- "Copied!" : "Хуулсан!",
- "Copy" : "Хуулах",
- "Language" : "Хэл",
- "Add" : "нэмэх",
- "Cancel" : "Цуцлах",
- "Display name" : "Харагдах нэр",
- "Email" : "Цахим шуудан",
- "Quota" : " хувь хэмжээ",
- "Last login" : "Сүүлд нэвтэрсэн огноо",
- "Unnamed device" : "нэргүй төхөөрөммж",
- "Your apps" : "Таны аппликэйшнүүд",
- "Disabled apps" : "Идэвхижээгүй аппликэйшнүүд",
- "App bundles" : "Аппликэйшны багц",
- "Details" : "Дэлгэрэнгүй",
- "Add group" : "Бүлэг нэмэх",
- "Active users" : "Идэвхтэй хэрэглэгчид",
- "Admins" : "Админууд",
- "Send email to new user" : "Шинэ хэрэглэгч рүү цахим шуудан илгээх",
- "Sending…" : "Илгээх...",
- "Address" : "Хаяг",
- "Avatar" : "Хөрөг",
- "About" : "Тухай",
- "Full name" : "Бүтэн нэр",
- "Phone number" : "Утасны дугаар",
- "Twitter" : "Твиттер",
- "Website" : "Цахим хуудас",
- "Never" : "хэзээч",
- "Administrator documentation" : "Админы баримт бичиг",
- "Forum" : "Хэлэлцүүлэг",
- "Login" : "Нэвтрэх",
- "Open documentation" : "бичиг баримт нээх",
- "Server address" : "хүлээн авагчийн хаяг",
- "Port" : "порт",
- "Credentials" : "Итгэмжлэл",
- "SMTP Password" : "Энгийн мэйл дамжуулах протокол-ийн нууц үг",
- "Save" : "Хадгалах",
- "Version" : "Хувилбар",
- "Always ask for a password" : "Үргэлж нууц үг асуух",
- "Enforce password protection" : "Нууц үгийн хамгаалалтыг хэрэгжүүлэх",
- "Profile picture" : "Профайл зураг",
- "Upload new" : "Шинийг байршуулах",
- "Select from Files" : "Файлуудаас сонгох",
- "Remove image" : "Зургийг хасах",
- "Choose as profile picture" : "Профайл зургаа сонгоно уу",
- "Your phone number" : "Таны утасны дугаар",
- "Your postal address" : "Таны шуудангийн хаяг",
- "Current password" : "Одоогийн нууц үг",
- "New password" : "Шинэ нууц үг",
- "Change password" : "Нууц үг солих",
- "All languages" : "Бүх хэлүүд",
- "Everyone" : "Бүх хэрэглэгчид",
- "days" : "өдрийн дараа"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/mn.json b/apps/settings/l10n/mn.json
deleted file mode 100644
index f7805f0890a..00000000000
--- a/apps/settings/l10n/mn.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{ "translations": {
- "Private" : "Далд",
- "Federated" : "Federated",
- "Verify" : "Шалнгах",
- "Unable to change password" : "Нууц үг солих боломжгүй",
- "Very weak password" : "маш муу нууц үг",
- "Weak password" : "муу нууц үг",
- "So-so password" : "ердийн нууц үг",
- "Good password" : "зөв нууц үг ",
- "Strong password" : "баттай нууц үг",
- "Groups" : "Бүлгүүд",
- "{actor} changed your password" : "{actor} таны нууц үгийг солив",
- "You changed your password" : "Та өөрийн нууц үг солив",
- "Your password was reset by an administrator" : "Зохицуулагч таны нууц үгийг солив",
- "{actor} changed your email address" : "{actor} таны цахим шуудангийн хаягийг солив",
- "You changed your email address" : "Та өөрийн цахим шуудангийн хаягийг солив",
- "Your email address was changed by an administrator" : "Зохицуулагч таны цахим шуудангийн хаягийг солив",
- "Security" : "Хамгаалалт",
- "Wrong password" : "Нууц үг буруу байна",
- "Saved" : "Хадгалагдсан",
- "Authentication error" : "Нотолгооны алдаа",
- "Invalid SMTP password." : "SMTP -н нууц үг буруу байна ",
- "Email setting test" : "Цахим шуудангийн тохиргоог шалгах",
- "If you received this email, the email configuration seems to be correct." : "Хэрэв та энэ цахим захидалыг хүлээн авсан бол цахим шуудангийн тохиргоо нь зөв байна.",
- "Email could not be sent. Check your mail server log" : "Цахим захидлыг илгээж чадсангүй. Цахим шуудангийн серверийн лог шалгана уу.",
- "Invalid user" : "Буруу хэрэглэгч",
- "Settings saved" : "Тохиргоо хадгалагдлаа",
- "Unable to change full name" : "Бүтэн нэрийг солих боломжгүй",
- "Unable to change email address" : "Цахим шуудангийн хаягийг солих боломжгүй",
- "If you did not request this, please contact an administrator." : "Хэрэв та энэ хүсэлтийг илгээгээгүй бол зохицуулагч руу хандана уу.",
- "Set your password" : "Нууц үгээ тохируулна уу",
- "Apps" : "Аппликэйшинууд",
- "Settings" : "Тохиргоо",
- "Personal" : "Хувийн",
- "Sharing" : "Түгээх",
- "Personal info" : "Хувийн мэдээлэл",
- "Create" : "Үүсгэх",
- "Delete" : "Устгах",
- "None" : "юу ч үгүй",
- "Save changes" : "Өөрчлөлтийг хадгалах",
- "All" : "бүх",
- "No results" : "Үр дүн байхгүй",
- "Update to {version}" : "{version} хувилбар руу шинэчлэх",
- "Remove" : "Устгах",
- "Visit website" : "Цахим хуудсаар зочлох",
- "User documentation" : "Хэрэглэгчийн баримт бичиг",
- "Admin documentation" : "Админы баримт бичиг",
- "Featured" : "Алдартай",
- "Rename" : "Нэрлэнэ үү",
- "Device" : "Төхөөрөмж",
- "Last activity" : "Хамгийн сүүлийн үйлдэл",
- "App name" : "Аппликэйшны нэр",
- "Username" : "Хэрэглэгчийн нэр",
- "Password" : "Нууц үг",
- "Done" : "Дууссан",
- "Copied!" : "Хуулсан!",
- "Copy" : "Хуулах",
- "Language" : "Хэл",
- "Add" : "нэмэх",
- "Cancel" : "Цуцлах",
- "Display name" : "Харагдах нэр",
- "Email" : "Цахим шуудан",
- "Quota" : " хувь хэмжээ",
- "Last login" : "Сүүлд нэвтэрсэн огноо",
- "Unnamed device" : "нэргүй төхөөрөммж",
- "Your apps" : "Таны аппликэйшнүүд",
- "Disabled apps" : "Идэвхижээгүй аппликэйшнүүд",
- "App bundles" : "Аппликэйшны багц",
- "Details" : "Дэлгэрэнгүй",
- "Add group" : "Бүлэг нэмэх",
- "Active users" : "Идэвхтэй хэрэглэгчид",
- "Admins" : "Админууд",
- "Send email to new user" : "Шинэ хэрэглэгч рүү цахим шуудан илгээх",
- "Sending…" : "Илгээх...",
- "Address" : "Хаяг",
- "Avatar" : "Хөрөг",
- "About" : "Тухай",
- "Full name" : "Бүтэн нэр",
- "Phone number" : "Утасны дугаар",
- "Twitter" : "Твиттер",
- "Website" : "Цахим хуудас",
- "Never" : "хэзээч",
- "Administrator documentation" : "Админы баримт бичиг",
- "Forum" : "Хэлэлцүүлэг",
- "Login" : "Нэвтрэх",
- "Open documentation" : "бичиг баримт нээх",
- "Server address" : "хүлээн авагчийн хаяг",
- "Port" : "порт",
- "Credentials" : "Итгэмжлэл",
- "SMTP Password" : "Энгийн мэйл дамжуулах протокол-ийн нууц үг",
- "Save" : "Хадгалах",
- "Version" : "Хувилбар",
- "Always ask for a password" : "Үргэлж нууц үг асуух",
- "Enforce password protection" : "Нууц үгийн хамгаалалтыг хэрэгжүүлэх",
- "Profile picture" : "Профайл зураг",
- "Upload new" : "Шинийг байршуулах",
- "Select from Files" : "Файлуудаас сонгох",
- "Remove image" : "Зургийг хасах",
- "Choose as profile picture" : "Профайл зургаа сонгоно уу",
- "Your phone number" : "Таны утасны дугаар",
- "Your postal address" : "Таны шуудангийн хаяг",
- "Current password" : "Одоогийн нууц үг",
- "New password" : "Шинэ нууц үг",
- "Change password" : "Нууц үг солих",
- "All languages" : "Бүх хэлүүд",
- "Everyone" : "Бүх хэрэглэгчид",
- "days" : "өдрийн дараа"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/settings/l10n/nb.js b/apps/settings/l10n/nb.js
index 45310f1a713..d0e359d76a8 100644
--- a/apps/settings/l10n/nb.js
+++ b/apps/settings/l10n/nb.js
@@ -275,7 +275,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP-hoder",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- HTTP-hodet '%1$s' er ikke satt til '%2$s'. Noen funksjoner fungerer kanskje ikke som de skal, da det anbefales å justere denne innstillingen tilsvarende.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP-hodet '%1$s' er ikke satt til '%2$s'. Dette er en potensiell sikkerhets- eller personvernrisiko, da det anbefales å justere denne innstillingen tilsvarende.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP-hodet '%1$s' inneholder ikke '%2$s'. Dette er en potensiell sikkerhets- eller personvernrisiko, da det anbefales å justere denne innstillingen tilsvarende.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- HTTP-hodet '%1$s' er ikke satt til '%2$s', '%3$s', '%4$s', '%5$s' eller '%6$s'. Dette kan lekke referanseinformasjon. Se {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "HTTP-hodet 'Strict-Transport-Security' er ikke satt til minst '%d' sekunder (gjeldende verdi: '%d'). For økt sikkerhet anbefales det å bruke en lang HSTS-policy.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP-hodet 'Strict-Transport-Security' er misformet: '%s'. For forbedret sikkerhet anbefales det å aktivere HSTS.",
@@ -414,74 +413,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Kunne ikke laste inn seksjonsinnhold fra app store.",
"Loading" : "Lasting",
"Fetching the latest news…" : "Henter siste nyheter...",
- "Carousel" : "Karusell",
- "Previous slide" : "Forrige lysbilde",
- "Next slide" : "Neste lysbilde",
- "Choose slide to display" : "Velg lysbilde som skal vises",
- "{index} of {total}" : "{index} av {total}",
- "Daemon" : "Nisse",
- "Deploy Daemon" : "Distribuerings-daemon",
- "Type" : "Type",
- "Display Name" : "Visningsnavn",
- "GPUs support" : "Støtte for GPUer",
- "Compute device" : "Beregningsenhet",
- "Learn more" : "Lær mer",
- "Confirm" : "Bekreft",
- "Cancel" : "Avbryt",
- "Description" : "Beskrivelse",
- "View in store" : "Vis i butikk",
- "Visit website" : "Besøk nettsiden",
- "Usage documentation" : "Bruksdokumentasjon",
- "Admin documentation" : "Administratordokumentasjon",
- "Developer documentation" : "Utviklerdokumentasjon",
- "Details" : "Detaljer",
- "All" : "Alle",
- "Limit app usage to groups" : "Begrens app-bruk til grupper",
- "No results" : "Ingen resultater",
- "Update to {version}" : "Oppdater til {version}",
- "Default Deploy daemon is not accessible" : "Standard distribuerings-daemon er ikke tilgjengelig.",
- "Delete data on remove" : "Slett data ved fjerning",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Denne appen har ingen minimumversjon av Nextcloud definert. Dette vil være en feil i fremtiden.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denne appen har ingen høyeste versjon av Nextcloud definert. Dette vil være en feil i fremtiden.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Denne appen kan ikke installeres fordi følgende avhengigheter ikke er tilfredsstilt:",
- "Latest updated" : "Sist oppdatert",
- "Author" : "Forfatter",
- "Categories" : "Kategorier",
- "Resources" : "Ressurser",
- "Documentation" : "Dokumentasjon",
- "Interact" : "Samhandle",
- "Report a bug" : "Rapporter en feil",
- "Request feature" : "Ønsk en funksjon",
- "Ask questions or discuss" : "Still spørsmål og diskuter",
- "Rate the app" : "Vurder appen",
- "Rate" : "Vurder",
- "Changelog" : "Endringslogg",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName} iOS-app",
- "{productName} Android app" : "{productName} Android-app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "Sync client" : "Synkroniser klient",
- "This session" : "Denne økten",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Enhetsnavn",
- "Cancel renaming" : "Avbryt gi nytt navn",
- "Save new name" : "Lagre nytt navn",
- "Marked for remote wipe" : "Markert for fjernsletting",
- "Device settings" : "Enhetsinnstillinger",
- "Allow filesystem access" : "Tillatt filsystemtilgang",
- "Rename" : "Gi nytt navn",
- "Revoke" : "Avslå",
- "Wipe device" : "Slett enhet",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Hvis du opphever dette tokenet, kan det forhindre sletting av enheten hvis det ikke har startet slettingen enda.",
- "Device" : "Enhet",
- "Last activity" : "Seneste aktivitet",
- "Devices & sessions" : "Enheter og økter",
- "Web, desktop and mobile clients currently logged in to your account." : "Følgende nett, skrivebord og mobile klienter er for øyeblikket logget på din konto.",
- "Error while creating device token" : "Feil under opprettelse av enhetsnøkkel",
- "App name" : "Appnavn",
- "Create new app password" : "Lag nytt apppassord",
"App password copied!" : "App-passord kopiert!",
"Copy app password" : "Kopier app-passord",
"Login name copied!" : "Påloggingsnavnet er kopiert!",
@@ -509,6 +440,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Kan ikke oppdatere profilens standardinnstilling",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Aktiver eller deaktiver profil som standard for nye kontoer.",
+ "Password confirmation is required" : "Passord bekreftelse er nødvendig",
"Failed to save setting" : "Lagring av innstilling feilet",
"{app}'s declarative setting field: {name}" : "{app}s deklarative innstillingsfelt: {name}",
"Unable to update server side encryption config" : "Kan ikke oppdatere konfigurasjonen av server-side-kryptering",
@@ -525,199 +457,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Vær oppmerksom på at kryptering alltid øker filstørrelsen.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det er alltid bra å ta regelmessig sikkerhetskopi av dataene dine. Pass på å ta kopi av krypteringsnøklene sammen med dataene når kryptering er i bruk.",
"This is the final warning: Do you really want to enable encryption?" : "Dette er siste advarsel: Vil du virkelig aktivere kryptering?",
- "Failed to remove group \"{group}\"" : "Fjerning av gruppe \"{group}\" feilet",
"Please confirm the group removal" : "Vennligst bekreft fjerning av gruppe",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du er i ferd med å fjerne gruppen \"{group}\". Kontoene vil IKKE bli slettet.",
+ "Cancel" : "Avbryt",
+ "Confirm" : "Bekreft",
"Submit" : "Send inn",
"Rename group" : "Gi nytt navn til gruppen",
- "Remove group" : "Fjern gruppe",
- "Current password" : "Nåværende passord",
- "New password" : "Nytt passord",
- "Change password" : "Endre passord",
- "Choose your profile picture" : "Velg profilbildet ditt",
- "Please select a valid png or jpg file" : "Velg en gyldig png- eller jpg-fil",
- "Error setting profile picture" : "Feil ved setting av profilbilde",
- "Error cropping profile picture" : "Feil under beskjæring av profilbilde",
- "Error saving profile picture" : "Feil under lagring av profilbilde",
- "Error removing profile picture" : "Feil ved fjerning av profilbilde",
- "Your profile picture" : "Ditt profilbilde",
- "Upload profile picture" : "Last opp profilbilde",
- "Choose profile picture from Files" : "Velg profilbilde fra Files",
- "Remove profile picture" : "Fjern profilbilde",
- "The file must be a PNG or JPG" : "Filen må være en .PNG eller .JPG",
- "Picture provided by original account" : "Bilde kommer fra opprinnelig konto",
- "Set as profile picture" : "Angi som profilbilde",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Vær oppmerksom på at det kan ta opptil 24 timer før profilbildet ditt blir oppdatert overalt.",
- "Unable to update date of birth" : "Kan ikke oppdatere fødselsdato",
- "Enter your date of birth" : "Skriv inn fødselsdatoen din",
- "You are using {s}{usage}{/s}" : "Du bruker {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Du bruker {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Du er medlem av følgende grupper:",
- "Your full name" : "Ditt fulle navn",
- "Email options" : "Alternativer for e-post",
- "Options for additional email address {index}" : "Alternativer for ekstra e-postadresse {index}",
- "Remove primary email" : "Fjern primær e-post",
- "Delete email" : "Slett e-post",
- "This address is not confirmed" : "Denne adressen er ikke bekreftet",
- "Unset as primary email" : "Deaktivert som primær e-post",
- "Set as primary email" : "Angi som primær e-post",
- "Additional email address {index}" : "Ekstra e-postadresse {index}",
- "Unable to delete primary email address" : "Kan ikke slette primær e-postadresse",
- "Unable to update primary email address" : "Kan ikke oppdatere primær e-postadresse",
- "Unable to add additional email address" : "Kan ikke legge til ytterligere e-postadresse",
- "Unable to update additional email address" : "Kan ikke oppdatere ytterligere e-postadresse",
- "Unable to delete additional email address" : "Kan ikke slette ytterligere e-postadresse",
- "Primary email for password reset and notifications" : "Primær e-postadresse for tilbakestilling av passord og varsler",
- "No email address set" : "E-postadresse ikke satt",
- "Your handle" : "Ditt brukernavn",
- "Derived from your locale ({weekDayName})" : "Avledet fra din nasjonale innstilling ({weekDayName})",
- "Unable to update first day of week" : "Kan ikke oppdatere første dag i uken",
- "Day to use as the first day of week" : "Dag som skal brukes som første dag i uken",
- "Your headline" : "Din overskrift",
- "Unable to update language" : "Kan ikke oppdatere språket",
- "Languages" : "Språk",
- "Help translate" : "Bidra til oversettelsen",
- "No language set" : "Språk ikke satt",
- "Unable to update locale" : "Kan ikke oppdatere lokaliteten",
- "Locales" : "Nasjonale innstillinger",
- "Week starts on {firstDayOfWeek}" : "Uken starter på {firstDayOfWeek}",
- "No locale set" : "Ingen nasjonal innstilling angitt",
- "Your city" : "Byen din",
- "Your organisation" : "Din organisasjon",
- "Your phone number" : "Ditt telefonnummer",
- "Edit your Profile visibility" : "Endre synlighet for din profil",
- "Unable to update profile enabled state" : "Kan ikke oppdatere profilaktivert tilstand",
- "Enable profile" : "Aktiver profil",
- "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." : "Den mest restriktive innstillingen synlighet eller omfang respekteres på profilen din. For eksempel, hvis synlighet er satt til \"Vis til alle\" og omfanget er satt til \"Privat\", respekteres \"Privat\".",
- "Unable to update visibility of {displayId}" : "Kan ikke oppdatere synligheten til {displayId}",
- "she/her" : "hun/henne",
- "he/him" : "han/ham",
- "they/them" : "de/dem",
- "Your role" : "Din rolle",
- "Your X (formerly Twitter) handle" : "Ditt X- (tidligere Twitter) brukernavn",
- "Your website" : "Din nettside",
- "Invalid value" : "Ugyldig verdi",
- "Unable to update {property}" : "Kan ikke oppdatere {property}",
- "No {property} set" : "Ingen {property} satt",
- "Change scope level of {property}, current scope is {scope}" : "Endre omfangsnivå til {property}, gjeldende omfang er {scope}",
- "Unable to update federation scope of the primary {property}" : "Kan ikke oppdatere føderasjonsomfanget for den primære {property}",
- "Unable to update federation scope of additional {property}" : "Kan ikke oppdatere føderasjonsomfanget for ytterligere {property}",
- "Add additional email" : "Legg til ekstra e-post",
- "Add" : "Legg til",
- "Create" : "Ny",
- "Change" : "Endre",
- "Delete" : "Slett",
- "Reshare" : "Videredele",
- "Default language" : "Standard språk",
- "Common languages" : "Vanlige språk",
- "Other languages" : "Andre språk",
- "Password change is disabled because the master key is disabled" : "Passordendring er deaktivert fordi hoved-nøkkelen er deaktivert",
- "No accounts" : "Ingen kontoer",
- "Loading accounts …" : "Laster kontoer…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Liste over kontoer. Denne listen er ikke fullstendig gjengitt av ytelsesgrunner. Kontoene blir gjengitt når du navigerer gjennom listen.",
- "Manager" : "Sjef",
- "Set line manager" : "Angi linjeleder",
- "Account name will be autogenerated" : "Kontonavnet blir automatisk generert",
- "Account name (required)" : "Kontonavn (obligatorisk)",
- "New account" : "Ny konto",
- "Display name" : "Visningsnavn",
- "Either password or email is required" : "Enten passord eller e-post kreves",
- "Password (required)" : "Passord (kreves)",
- "Email (required)" : "E-post (kreves)",
- "Email" : "E-post",
- "Member of the following groups (required)" : "Medlem av følgende grupper (obligatorisk)",
- "Member of the following groups" : "Medlem av følgende grupper",
- "Set account groups" : "Angi kontogrupper",
- "Admin of the following groups" : "Administrator for følgende grupper",
- "Set account as admin for …" : "Angi konto som administrator for...",
- "Quota" : "Kvote",
- "Set account quota" : "Angi kontokvote",
- "Language" : "Språk",
- "Set default language" : "Angi standard språk",
- "Add new account" : "Legg til ny konto",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} konto…","{userCount} kontoer…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} konto","{userCount} kontoer"],
- "Total rows summary" : "Sammendrag av totalrader",
- "Scroll to load more rows" : "Rull for å laste inn flere rader",
- "Password or insufficient permissions message" : "Melding om passord eller utilstrekkelige rettigheter",
- "Avatar" : "Avatar",
- "Account name" : "Kontonavn",
- "Group admin for" : "Gruppeadministrator for",
- "Account backend" : "Konto-backend",
- "Storage location" : "Lagringsplassering",
- "First login" : "Første innlogging",
- "Last login" : "Siste innlogging",
- "Account actions" : "Kontoaktiviteter",
- "{size} used" : "{size} brukt",
- "Delete account" : "Slett konto",
- "Disconnect all devices and delete local data" : "Frakoble alle enheter og slett lokal data",
- "Disable account" : "Deaktiver konto",
- "Enable account" : "Aktiver konto",
- "Resend welcome email" : "Send velkomst-epost igjen",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "I tilfelle man har mistet enheter eller skal ut av organisasjonen, så kan dette fjernslette Nextcloud data fra alle enheter tilknyttet bruker med {userid}. Dette fungerer kun dersom enhetene er tilkoblet internett.",
- "Remote wipe of devices" : "Fjernsletting av enheter",
- "Wipe {userid}'s devices" : "Tøm enhetene til {userid}",
- "Wiped {userid}'s devices" : "Slettet {userid}s enheter",
- "Failed to update line manager" : "Oppdatering av linjeleder feilet",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Slett {userid} sin konto fullstendig, inkludert alle personlige filer, appdata osv.",
- "Account deletion" : "Sletting av konto",
- "Delete {userid}'s account" : "Slett {userid} sin konto",
- "Display name was successfully changed" : "Visningsnavn ble endret",
- "Password was successfully changed" : "Passord ble endret",
- "Email was successfully changed" : "E-post ble endret",
- "Welcome mail sent!" : "Velkomst-epost sendt!",
- "Loading account …" : "Laster konto…",
- "Change display name" : "Endre visningsnavn",
- "Set new password" : "Angi nytt passord",
- "You do not have permissions to see the details of this account" : "Du har ikke tillatelser til å se detaljer om denne kontoen",
- "Set new email address" : "Angi ny e-postadresse",
- "Add account to group" : "Legg konto til gruppe",
- "Set account as admin for" : "Angi konto som administrator for",
- "Select account quota" : "Velg kontokvote",
- "Set the language" : "Angi språk",
- "Toggle account actions menu" : "Veksle meny over kontohandlinger",
- "Done" : "Ferdig",
- "Edit" : "Rediger",
- "Account management settings" : "Innstillinger for kontoadministrasjon",
- "Visibility" : "Synlighet",
- "Show language" : "Vis språk",
- "Show account backend" : "Vis konto-server",
- "Show storage path" : "Vis lagringsplassering",
- "Show first login" : "Vis første innlogging",
- "Show last login" : "Vis siste innlogging",
- "Sorting" : "Sorter",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Systemkonfigurasjonen håndhever sortering av gruppene etter navn. Dette deaktiverer også visning av medlemsantallet.",
- "Group list sorting" : "Gruppeliste sortering",
- "By member count" : "Etter medlemsantall",
- "By name" : "Etter navn",
- "Send email" : "Send e-post",
- "Send welcome email to new accounts" : "Sende velkomst-e-post til nye kontoer",
- "Defaults" : "Standarder",
- "Default quota" : "Standard kvote",
- "Select default quota" : "Sett standard kvote",
- "Server error while trying to complete WebAuthn device registration" : "Serverfeil under forsøk på å fullføre WebAuthn-enhetsregistrering",
- "Passwordless authentication requires a secure connection." : "Passordløs autentisering krever en sikker tilkobling.",
- "Add WebAuthn device" : "Legg til WebAuthn-enhet",
- "Please authorize your WebAuthn device." : "Vennligst autoriser WebAuthn-enheten din",
- "Adding your device …" : "Legger til enheten...",
- "Unnamed device" : "Ikke navngitt enhet",
- "Passwordless Authentication" : "Passordløs autentisering",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Sett opp kontoen din for passordløs autentisering i henhold til FIDO2-standarden.",
- "No devices configured." : "Ingen enheter konfigurert.",
- "The following devices are configured for your account:" : "Følgende enheter er konfigurert for kontoen din:",
- "Your browser does not support WebAuthn." : "Nettleseren din støtter ikke WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Som administrator kan du fininnstille delingsoppførselen. Se dokumentasjonen for mer informasjon.",
- "You need to enable the File sharing App." : "Du trenger å aktivere fildelingsappen.",
- "App Store" : "Appbutikk",
- "Loading app list" : "Laster appliste",
- "Loading categories" : "Laster kategorier",
- "Developer documentation ↗" : "Utviklerdokumentasjon ↗",
- "Version {version}, {license}-licensed" : "Versjon {version}, {license}-lisensiert",
- "Version {version}" : "Versjon {version}",
- "All accounts" : "Alle kontoer",
- "Admins" : "Administratorer",
- "Account group: {group}" : "Kontogruppe: {group}",
- "Account management" : "Kontoadministrasjon",
"Sending…" : "Sender…",
"Email sent" : "E-post sendt",
"Location" : "Sted",
@@ -726,6 +470,7 @@ OC.L10N.register(
"Date of birth" : "Fødselsdato",
"Full name" : "Fullt navn",
"Additional email" : "Ytterligere e-post",
+ "Email" : "E-post",
"Fediverse (e.g. Mastodon)" : "Fediverse (f.eks. Mastodon)",
"Headline" : "Overskrift",
"Organisation" : "Organisasjon",
@@ -735,6 +480,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (tidligere Twitter)",
"Website" : "Nettsted",
"Profile visibility" : "Profil-synlighet",
+ "Language" : "Språk",
"Locale" : "Nasjonal innstilling",
"First day of week" : "Første dag i uken",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Ikke tilgjengelig siden denne egenskapen kreves for kjernefunksjonalitet, inkludert fildeling og kalenderinvitasjoner.",
@@ -751,12 +497,14 @@ OC.L10N.register(
"Show to everyone" : "Vis til alle",
"Show to logged in accounts only" : "Vis kun for påloggede kontoer",
"Hide" : "Skjul",
+ "Update to {version}" : "Oppdater til {version}",
"Deploy and Enable" : "Distribuer og aktiver",
"Download and enable" : "Last ned og aktiver",
"Disable" : "Deaktiver ",
"Allow untested app" : "Tillatt utestet app",
"The app will be downloaded from the App Store" : "Appen vil bli lastet ned fra app-butikken",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Denne appen er ikke merket som kompatibel med Nextcloud-versjonen. Hvis du fortsetter, vil du fortsatt kunne installere appen. Vær oppmerksom på at appen kanskje ikke fungerer som forventet.",
+ "{size} used" : "{size} brukt",
"Unknown" : "Ukjent",
"Never" : "Aldri",
"Could not register device: Network error" : "Kunne ikke registrere enheten: nettverksfeil",
@@ -775,8 +523,10 @@ OC.L10N.register(
"Could not set group sorting" : "Kunne ikke angi gruppesortering",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Det var for mange forespørsler fra ditt nettverk. Prøv igjen senere eller kontakt din administrator hvis dette er en feil.",
"Error" : "Feil",
+ "Default quota" : "Standard kvote",
"Account documentation" : "Kontodokumentasjon",
"Administration documentation" : "Dokumentasjon for administrasjon",
+ "Documentation" : "Dokumentasjon",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud hjelp og personvernressurser",
"General documentation" : "Generell dokumentasjon",
@@ -799,6 +549,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP-passord",
"Save" : "Lagre",
"Test and verify email settings" : "Test og bekreft e-postinnstillinger",
+ "Send email" : "Send e-post",
"Security & setup warnings" : "Advarsler om sikkerhet og oppsett",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Det er viktig for sikkerheten og ytelsen på din installasjon at alt er satt opp rett. For å hjelpe deg er det satt i verk noen automatiske sjekker. Se vedlagt lenke for å lese mer i dokumentasjonen.",
"All checks passed." : "Alle sjekker bestått.",
@@ -818,50 +569,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Bruk en annen faktor i tillegg til passordet ditt for å øke sikkerheten for kontoen din.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Hvis du bruker tredjepartsapplikasjoner for å koble til Nextcloud, må du sørge for å opprette og konfigurere et app-passord for hver før du aktiverer tofaktorautentisering.",
"Logged in account must be a subadmin" : "Pålogget konto må være en underadministrator",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "For å la denne kontrollen kjøre, må du sørge for at webserveren din kan koble til seg selv. Derfor må den kunne løse og koble til minst en sin 'trusted_domains' eller 'overwrite.cli.url'.",
- "Missing optional index \"%s\" in table \"%s\"." : "Mangler valgfri indkeks \"%s\" i tabell \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Databasen mangler noen indekser. Å legge til indekser på store tabeller kan ta lang tid så de ble ikke lagt til automatisk. Ved å kjøre \"occ db:add-missing-indices\" legges de manglende indeksene til mens tjenesten fortsatt er tilgjengelig. Når indeksene er lagt til, er spørringer til tabellene raskere.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "For å la denne kontrollen kjøre, må du sørge for at webserveren din kan koble til seg selv. Derfor må den kunne løse og koble til minst en dens 'trusted_domains' eller 'overwrite.cli.url'. Denne feilen kan være et resultat av ikke-DNS-samsvar på serversiden eller en regel for utgående brannmur.",
"File locking" : "Låsing av filer",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Låsing av transaksjonsfiler er deaktivert, dette kan føre til problemer med løpsforholdene. Aktiver \"filelocking.enabled\" i config.php for å unngå disse problemene.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Kunne ikke se etter JavaScript-støtte via noen av dine 'trusted_domains' eller 'overwrite.cli.url'. Dette kan være et resultat av DNS-avvik på serversiden eller en regel for utgående brannmur. Kontroller manuelt om webserveren din tjener .mjs-filer ved hjelp av JavaScript MIME-typen.",
"The PHP memory limit is below the recommended value of %s." : "PHP-minnegrensen er under den anbefalte verdien på %s.",
"for WebAuthn passwordless login" : "for WebAuthn-passordfripålogging",
"for WebAuthn passwordless login, and SFTP storage" : "for WebAuthn-passordfripålogging og SFTP-lagring",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du kjører for øyeblikket PHP %s. PHP 8.0 er nå avviklet i Nextcloud 27. Nextcloud 28 kan kreve minst PHP 8.1. Oppgrader til en av de offisielt støttede PHP-versjonene levert av PHP Group så snart som mulig.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB versjon\"%s\" blir brukt. Nextcloud 21 og nyere støtter ikke denne versjonen og krever MariaDB 10.2 eller høyere.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL versjon \"%s\"blir brukt. Nextcloud 21 og nyere støtter ikke denne versjonen og krever MySQL 8.0 eller MariaDB 10.2 eller høyere.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL versjon \"%s\" blir brukt. Nextcloud 21 og nyere støtter ikke denne versjonen og krever PostgreSQL 9.6 eller høyere.",
- "Speech-To-Text" : "Tale-Til-Tekst",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Tale-til-tekst kan implementeres av forskjellige apper. Her kan du angi hvilken app som skal brukes.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ingen av de installerte appene dine har tale-til-tekst-funksjonalitet",
- "None of your currently installed apps provide Text processing functionality" : "Ingen av de installerte appene dine har tekstbehandlingsfunksjonalitet",
- "Set default expiration date for shares" : "Angi standard utløpsdato for delinger",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Tillat automatisk fullføring av brukernavn i delingsdialogen og gi tilgang til systemets adressebok",
- "Your biography" : "Din biografi",
- "You are using <strong>{usage}</strong>" : "Du bruker <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Du bruker <strong>{usage}</strong> av <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Angi brukersjef",
- "Username will be autogenerated" : "Brukernavn blir generert automatisk",
- "Username (required)" : "Brukernavn (kreves)",
- "New user" : "Ny bruker",
- "Groups (required)" : "Grupper (kreves)",
- "Set user groups" : "Angi brukergrupper",
- "Administered groups" : "Administrerte grupper",
- "Set user as admin for …" : "Angi bruker som administrator for...",
- "Set user quota" : "Angi brukerkvote",
- "Add new user" : "Legg til ny bruker",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} bruker...","{userCount} brukere..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} bruker","{userCount} brukere"],
- "Loading users …" : "Laster brukere...",
- "Username" : "Brukernavn",
- "User backend" : "Bruker-server",
- "User actions" : "Brukerhandlinger",
- "Add user to group" : "Legg bruker til gruppe",
- "Server error while trying to add WebAuthn device" : "Serverfeil under forsøk på å legge til WebAuthn-enhet",
- "Name your device" : "Gi navn til enhet",
- "Active accounts" : "Aktive kontoer",
- "Follow us on Twitter" : "Følg oss på Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "For å la denne kontrollen kjøre, må du sørge for at webserveren din kan koble til seg selv. Derfor må den kunne løse og koble til minst en dens 'trusted_domains' eller 'overwrite.cli.url'. Denne feilen kan være et resultat av ikke-DNS-samsvar på serversiden eller en regel for utgående brannmur.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL-versjon \"%s\" oppdaget. PostgreSQL >=12 og <=16 foreslås for best ytelse, stabilitet og funksjonalitet med denne versjonen av Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP-hodet '%1$s' inneholder ikke '%2$s'. Dette er en potensiell sikkerhets- eller personvernrisiko, da det anbefales å justere denne innstillingen tilsvarende.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL-versjon \"%s\" oppdaget. PostgreSQL >=12 og <=16 foreslås for best ytelse, stabilitet og funksjonalitet med denne versjonen av Nextcloud.",
+ "Set default expiration date for shares" : "Angi standard utløpsdato for delinger"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/nb.json b/apps/settings/l10n/nb.json
index caf5de41c45..4ee9be7fd43 100644
--- a/apps/settings/l10n/nb.json
+++ b/apps/settings/l10n/nb.json
@@ -273,7 +273,6 @@
"HTTP headers" : "HTTP-hoder",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- HTTP-hodet '%1$s' er ikke satt til '%2$s'. Noen funksjoner fungerer kanskje ikke som de skal, da det anbefales å justere denne innstillingen tilsvarende.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP-hodet '%1$s' er ikke satt til '%2$s'. Dette er en potensiell sikkerhets- eller personvernrisiko, da det anbefales å justere denne innstillingen tilsvarende.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP-hodet '%1$s' inneholder ikke '%2$s'. Dette er en potensiell sikkerhets- eller personvernrisiko, da det anbefales å justere denne innstillingen tilsvarende.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- HTTP-hodet '%1$s' er ikke satt til '%2$s', '%3$s', '%4$s', '%5$s' eller '%6$s'. Dette kan lekke referanseinformasjon. Se {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "HTTP-hodet 'Strict-Transport-Security' er ikke satt til minst '%d' sekunder (gjeldende verdi: '%d'). For økt sikkerhet anbefales det å bruke en lang HSTS-policy.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP-hodet 'Strict-Transport-Security' er misformet: '%s'. For forbedret sikkerhet anbefales det å aktivere HSTS.",
@@ -412,74 +411,6 @@
"Could not load section content from app store." : "Kunne ikke laste inn seksjonsinnhold fra app store.",
"Loading" : "Lasting",
"Fetching the latest news…" : "Henter siste nyheter...",
- "Carousel" : "Karusell",
- "Previous slide" : "Forrige lysbilde",
- "Next slide" : "Neste lysbilde",
- "Choose slide to display" : "Velg lysbilde som skal vises",
- "{index} of {total}" : "{index} av {total}",
- "Daemon" : "Nisse",
- "Deploy Daemon" : "Distribuerings-daemon",
- "Type" : "Type",
- "Display Name" : "Visningsnavn",
- "GPUs support" : "Støtte for GPUer",
- "Compute device" : "Beregningsenhet",
- "Learn more" : "Lær mer",
- "Confirm" : "Bekreft",
- "Cancel" : "Avbryt",
- "Description" : "Beskrivelse",
- "View in store" : "Vis i butikk",
- "Visit website" : "Besøk nettsiden",
- "Usage documentation" : "Bruksdokumentasjon",
- "Admin documentation" : "Administratordokumentasjon",
- "Developer documentation" : "Utviklerdokumentasjon",
- "Details" : "Detaljer",
- "All" : "Alle",
- "Limit app usage to groups" : "Begrens app-bruk til grupper",
- "No results" : "Ingen resultater",
- "Update to {version}" : "Oppdater til {version}",
- "Default Deploy daemon is not accessible" : "Standard distribuerings-daemon er ikke tilgjengelig.",
- "Delete data on remove" : "Slett data ved fjerning",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Denne appen har ingen minimumversjon av Nextcloud definert. Dette vil være en feil i fremtiden.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denne appen har ingen høyeste versjon av Nextcloud definert. Dette vil være en feil i fremtiden.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Denne appen kan ikke installeres fordi følgende avhengigheter ikke er tilfredsstilt:",
- "Latest updated" : "Sist oppdatert",
- "Author" : "Forfatter",
- "Categories" : "Kategorier",
- "Resources" : "Ressurser",
- "Documentation" : "Dokumentasjon",
- "Interact" : "Samhandle",
- "Report a bug" : "Rapporter en feil",
- "Request feature" : "Ønsk en funksjon",
- "Ask questions or discuss" : "Still spørsmål og diskuter",
- "Rate the app" : "Vurder appen",
- "Rate" : "Vurder",
- "Changelog" : "Endringslogg",
- "Google Chrome for Android" : "Google Chrome for Android",
- "{productName} iOS app" : "{productName} iOS-app",
- "{productName} Android app" : "{productName} Android-app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "Sync client" : "Synkroniser klient",
- "This session" : "Denne økten",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Enhetsnavn",
- "Cancel renaming" : "Avbryt gi nytt navn",
- "Save new name" : "Lagre nytt navn",
- "Marked for remote wipe" : "Markert for fjernsletting",
- "Device settings" : "Enhetsinnstillinger",
- "Allow filesystem access" : "Tillatt filsystemtilgang",
- "Rename" : "Gi nytt navn",
- "Revoke" : "Avslå",
- "Wipe device" : "Slett enhet",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Hvis du opphever dette tokenet, kan det forhindre sletting av enheten hvis det ikke har startet slettingen enda.",
- "Device" : "Enhet",
- "Last activity" : "Seneste aktivitet",
- "Devices & sessions" : "Enheter og økter",
- "Web, desktop and mobile clients currently logged in to your account." : "Følgende nett, skrivebord og mobile klienter er for øyeblikket logget på din konto.",
- "Error while creating device token" : "Feil under opprettelse av enhetsnøkkel",
- "App name" : "Appnavn",
- "Create new app password" : "Lag nytt apppassord",
"App password copied!" : "App-passord kopiert!",
"Copy app password" : "Kopier app-passord",
"Login name copied!" : "Påloggingsnavnet er kopiert!",
@@ -507,6 +438,7 @@
"Unable to update profile default setting" : "Kan ikke oppdatere profilens standardinnstilling",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Aktiver eller deaktiver profil som standard for nye kontoer.",
+ "Password confirmation is required" : "Passord bekreftelse er nødvendig",
"Failed to save setting" : "Lagring av innstilling feilet",
"{app}'s declarative setting field: {name}" : "{app}s deklarative innstillingsfelt: {name}",
"Unable to update server side encryption config" : "Kan ikke oppdatere konfigurasjonen av server-side-kryptering",
@@ -523,199 +455,11 @@
"Be aware that encryption always increases the file size." : "Vær oppmerksom på at kryptering alltid øker filstørrelsen.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det er alltid bra å ta regelmessig sikkerhetskopi av dataene dine. Pass på å ta kopi av krypteringsnøklene sammen med dataene når kryptering er i bruk.",
"This is the final warning: Do you really want to enable encryption?" : "Dette er siste advarsel: Vil du virkelig aktivere kryptering?",
- "Failed to remove group \"{group}\"" : "Fjerning av gruppe \"{group}\" feilet",
"Please confirm the group removal" : "Vennligst bekreft fjerning av gruppe",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du er i ferd med å fjerne gruppen \"{group}\". Kontoene vil IKKE bli slettet.",
+ "Cancel" : "Avbryt",
+ "Confirm" : "Bekreft",
"Submit" : "Send inn",
"Rename group" : "Gi nytt navn til gruppen",
- "Remove group" : "Fjern gruppe",
- "Current password" : "Nåværende passord",
- "New password" : "Nytt passord",
- "Change password" : "Endre passord",
- "Choose your profile picture" : "Velg profilbildet ditt",
- "Please select a valid png or jpg file" : "Velg en gyldig png- eller jpg-fil",
- "Error setting profile picture" : "Feil ved setting av profilbilde",
- "Error cropping profile picture" : "Feil under beskjæring av profilbilde",
- "Error saving profile picture" : "Feil under lagring av profilbilde",
- "Error removing profile picture" : "Feil ved fjerning av profilbilde",
- "Your profile picture" : "Ditt profilbilde",
- "Upload profile picture" : "Last opp profilbilde",
- "Choose profile picture from Files" : "Velg profilbilde fra Files",
- "Remove profile picture" : "Fjern profilbilde",
- "The file must be a PNG or JPG" : "Filen må være en .PNG eller .JPG",
- "Picture provided by original account" : "Bilde kommer fra opprinnelig konto",
- "Set as profile picture" : "Angi som profilbilde",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Vær oppmerksom på at det kan ta opptil 24 timer før profilbildet ditt blir oppdatert overalt.",
- "Unable to update date of birth" : "Kan ikke oppdatere fødselsdato",
- "Enter your date of birth" : "Skriv inn fødselsdatoen din",
- "You are using {s}{usage}{/s}" : "Du bruker {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Du bruker {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Du er medlem av følgende grupper:",
- "Your full name" : "Ditt fulle navn",
- "Email options" : "Alternativer for e-post",
- "Options for additional email address {index}" : "Alternativer for ekstra e-postadresse {index}",
- "Remove primary email" : "Fjern primær e-post",
- "Delete email" : "Slett e-post",
- "This address is not confirmed" : "Denne adressen er ikke bekreftet",
- "Unset as primary email" : "Deaktivert som primær e-post",
- "Set as primary email" : "Angi som primær e-post",
- "Additional email address {index}" : "Ekstra e-postadresse {index}",
- "Unable to delete primary email address" : "Kan ikke slette primær e-postadresse",
- "Unable to update primary email address" : "Kan ikke oppdatere primær e-postadresse",
- "Unable to add additional email address" : "Kan ikke legge til ytterligere e-postadresse",
- "Unable to update additional email address" : "Kan ikke oppdatere ytterligere e-postadresse",
- "Unable to delete additional email address" : "Kan ikke slette ytterligere e-postadresse",
- "Primary email for password reset and notifications" : "Primær e-postadresse for tilbakestilling av passord og varsler",
- "No email address set" : "E-postadresse ikke satt",
- "Your handle" : "Ditt brukernavn",
- "Derived from your locale ({weekDayName})" : "Avledet fra din nasjonale innstilling ({weekDayName})",
- "Unable to update first day of week" : "Kan ikke oppdatere første dag i uken",
- "Day to use as the first day of week" : "Dag som skal brukes som første dag i uken",
- "Your headline" : "Din overskrift",
- "Unable to update language" : "Kan ikke oppdatere språket",
- "Languages" : "Språk",
- "Help translate" : "Bidra til oversettelsen",
- "No language set" : "Språk ikke satt",
- "Unable to update locale" : "Kan ikke oppdatere lokaliteten",
- "Locales" : "Nasjonale innstillinger",
- "Week starts on {firstDayOfWeek}" : "Uken starter på {firstDayOfWeek}",
- "No locale set" : "Ingen nasjonal innstilling angitt",
- "Your city" : "Byen din",
- "Your organisation" : "Din organisasjon",
- "Your phone number" : "Ditt telefonnummer",
- "Edit your Profile visibility" : "Endre synlighet for din profil",
- "Unable to update profile enabled state" : "Kan ikke oppdatere profilaktivert tilstand",
- "Enable profile" : "Aktiver profil",
- "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." : "Den mest restriktive innstillingen synlighet eller omfang respekteres på profilen din. For eksempel, hvis synlighet er satt til \"Vis til alle\" og omfanget er satt til \"Privat\", respekteres \"Privat\".",
- "Unable to update visibility of {displayId}" : "Kan ikke oppdatere synligheten til {displayId}",
- "she/her" : "hun/henne",
- "he/him" : "han/ham",
- "they/them" : "de/dem",
- "Your role" : "Din rolle",
- "Your X (formerly Twitter) handle" : "Ditt X- (tidligere Twitter) brukernavn",
- "Your website" : "Din nettside",
- "Invalid value" : "Ugyldig verdi",
- "Unable to update {property}" : "Kan ikke oppdatere {property}",
- "No {property} set" : "Ingen {property} satt",
- "Change scope level of {property}, current scope is {scope}" : "Endre omfangsnivå til {property}, gjeldende omfang er {scope}",
- "Unable to update federation scope of the primary {property}" : "Kan ikke oppdatere føderasjonsomfanget for den primære {property}",
- "Unable to update federation scope of additional {property}" : "Kan ikke oppdatere føderasjonsomfanget for ytterligere {property}",
- "Add additional email" : "Legg til ekstra e-post",
- "Add" : "Legg til",
- "Create" : "Ny",
- "Change" : "Endre",
- "Delete" : "Slett",
- "Reshare" : "Videredele",
- "Default language" : "Standard språk",
- "Common languages" : "Vanlige språk",
- "Other languages" : "Andre språk",
- "Password change is disabled because the master key is disabled" : "Passordendring er deaktivert fordi hoved-nøkkelen er deaktivert",
- "No accounts" : "Ingen kontoer",
- "Loading accounts …" : "Laster kontoer…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Liste over kontoer. Denne listen er ikke fullstendig gjengitt av ytelsesgrunner. Kontoene blir gjengitt når du navigerer gjennom listen.",
- "Manager" : "Sjef",
- "Set line manager" : "Angi linjeleder",
- "Account name will be autogenerated" : "Kontonavnet blir automatisk generert",
- "Account name (required)" : "Kontonavn (obligatorisk)",
- "New account" : "Ny konto",
- "Display name" : "Visningsnavn",
- "Either password or email is required" : "Enten passord eller e-post kreves",
- "Password (required)" : "Passord (kreves)",
- "Email (required)" : "E-post (kreves)",
- "Email" : "E-post",
- "Member of the following groups (required)" : "Medlem av følgende grupper (obligatorisk)",
- "Member of the following groups" : "Medlem av følgende grupper",
- "Set account groups" : "Angi kontogrupper",
- "Admin of the following groups" : "Administrator for følgende grupper",
- "Set account as admin for …" : "Angi konto som administrator for...",
- "Quota" : "Kvote",
- "Set account quota" : "Angi kontokvote",
- "Language" : "Språk",
- "Set default language" : "Angi standard språk",
- "Add new account" : "Legg til ny konto",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} konto…","{userCount} kontoer…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} konto","{userCount} kontoer"],
- "Total rows summary" : "Sammendrag av totalrader",
- "Scroll to load more rows" : "Rull for å laste inn flere rader",
- "Password or insufficient permissions message" : "Melding om passord eller utilstrekkelige rettigheter",
- "Avatar" : "Avatar",
- "Account name" : "Kontonavn",
- "Group admin for" : "Gruppeadministrator for",
- "Account backend" : "Konto-backend",
- "Storage location" : "Lagringsplassering",
- "First login" : "Første innlogging",
- "Last login" : "Siste innlogging",
- "Account actions" : "Kontoaktiviteter",
- "{size} used" : "{size} brukt",
- "Delete account" : "Slett konto",
- "Disconnect all devices and delete local data" : "Frakoble alle enheter og slett lokal data",
- "Disable account" : "Deaktiver konto",
- "Enable account" : "Aktiver konto",
- "Resend welcome email" : "Send velkomst-epost igjen",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "I tilfelle man har mistet enheter eller skal ut av organisasjonen, så kan dette fjernslette Nextcloud data fra alle enheter tilknyttet bruker med {userid}. Dette fungerer kun dersom enhetene er tilkoblet internett.",
- "Remote wipe of devices" : "Fjernsletting av enheter",
- "Wipe {userid}'s devices" : "Tøm enhetene til {userid}",
- "Wiped {userid}'s devices" : "Slettet {userid}s enheter",
- "Failed to update line manager" : "Oppdatering av linjeleder feilet",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Slett {userid} sin konto fullstendig, inkludert alle personlige filer, appdata osv.",
- "Account deletion" : "Sletting av konto",
- "Delete {userid}'s account" : "Slett {userid} sin konto",
- "Display name was successfully changed" : "Visningsnavn ble endret",
- "Password was successfully changed" : "Passord ble endret",
- "Email was successfully changed" : "E-post ble endret",
- "Welcome mail sent!" : "Velkomst-epost sendt!",
- "Loading account …" : "Laster konto…",
- "Change display name" : "Endre visningsnavn",
- "Set new password" : "Angi nytt passord",
- "You do not have permissions to see the details of this account" : "Du har ikke tillatelser til å se detaljer om denne kontoen",
- "Set new email address" : "Angi ny e-postadresse",
- "Add account to group" : "Legg konto til gruppe",
- "Set account as admin for" : "Angi konto som administrator for",
- "Select account quota" : "Velg kontokvote",
- "Set the language" : "Angi språk",
- "Toggle account actions menu" : "Veksle meny over kontohandlinger",
- "Done" : "Ferdig",
- "Edit" : "Rediger",
- "Account management settings" : "Innstillinger for kontoadministrasjon",
- "Visibility" : "Synlighet",
- "Show language" : "Vis språk",
- "Show account backend" : "Vis konto-server",
- "Show storage path" : "Vis lagringsplassering",
- "Show first login" : "Vis første innlogging",
- "Show last login" : "Vis siste innlogging",
- "Sorting" : "Sorter",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Systemkonfigurasjonen håndhever sortering av gruppene etter navn. Dette deaktiverer også visning av medlemsantallet.",
- "Group list sorting" : "Gruppeliste sortering",
- "By member count" : "Etter medlemsantall",
- "By name" : "Etter navn",
- "Send email" : "Send e-post",
- "Send welcome email to new accounts" : "Sende velkomst-e-post til nye kontoer",
- "Defaults" : "Standarder",
- "Default quota" : "Standard kvote",
- "Select default quota" : "Sett standard kvote",
- "Server error while trying to complete WebAuthn device registration" : "Serverfeil under forsøk på å fullføre WebAuthn-enhetsregistrering",
- "Passwordless authentication requires a secure connection." : "Passordløs autentisering krever en sikker tilkobling.",
- "Add WebAuthn device" : "Legg til WebAuthn-enhet",
- "Please authorize your WebAuthn device." : "Vennligst autoriser WebAuthn-enheten din",
- "Adding your device …" : "Legger til enheten...",
- "Unnamed device" : "Ikke navngitt enhet",
- "Passwordless Authentication" : "Passordløs autentisering",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Sett opp kontoen din for passordløs autentisering i henhold til FIDO2-standarden.",
- "No devices configured." : "Ingen enheter konfigurert.",
- "The following devices are configured for your account:" : "Følgende enheter er konfigurert for kontoen din:",
- "Your browser does not support WebAuthn." : "Nettleseren din støtter ikke WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Som administrator kan du fininnstille delingsoppførselen. Se dokumentasjonen for mer informasjon.",
- "You need to enable the File sharing App." : "Du trenger å aktivere fildelingsappen.",
- "App Store" : "Appbutikk",
- "Loading app list" : "Laster appliste",
- "Loading categories" : "Laster kategorier",
- "Developer documentation ↗" : "Utviklerdokumentasjon ↗",
- "Version {version}, {license}-licensed" : "Versjon {version}, {license}-lisensiert",
- "Version {version}" : "Versjon {version}",
- "All accounts" : "Alle kontoer",
- "Admins" : "Administratorer",
- "Account group: {group}" : "Kontogruppe: {group}",
- "Account management" : "Kontoadministrasjon",
"Sending…" : "Sender…",
"Email sent" : "E-post sendt",
"Location" : "Sted",
@@ -724,6 +468,7 @@
"Date of birth" : "Fødselsdato",
"Full name" : "Fullt navn",
"Additional email" : "Ytterligere e-post",
+ "Email" : "E-post",
"Fediverse (e.g. Mastodon)" : "Fediverse (f.eks. Mastodon)",
"Headline" : "Overskrift",
"Organisation" : "Organisasjon",
@@ -733,6 +478,7 @@
"X (formerly Twitter)" : "X (tidligere Twitter)",
"Website" : "Nettsted",
"Profile visibility" : "Profil-synlighet",
+ "Language" : "Språk",
"Locale" : "Nasjonal innstilling",
"First day of week" : "Første dag i uken",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Ikke tilgjengelig siden denne egenskapen kreves for kjernefunksjonalitet, inkludert fildeling og kalenderinvitasjoner.",
@@ -749,12 +495,14 @@
"Show to everyone" : "Vis til alle",
"Show to logged in accounts only" : "Vis kun for påloggede kontoer",
"Hide" : "Skjul",
+ "Update to {version}" : "Oppdater til {version}",
"Deploy and Enable" : "Distribuer og aktiver",
"Download and enable" : "Last ned og aktiver",
"Disable" : "Deaktiver ",
"Allow untested app" : "Tillatt utestet app",
"The app will be downloaded from the App Store" : "Appen vil bli lastet ned fra app-butikken",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Denne appen er ikke merket som kompatibel med Nextcloud-versjonen. Hvis du fortsetter, vil du fortsatt kunne installere appen. Vær oppmerksom på at appen kanskje ikke fungerer som forventet.",
+ "{size} used" : "{size} brukt",
"Unknown" : "Ukjent",
"Never" : "Aldri",
"Could not register device: Network error" : "Kunne ikke registrere enheten: nettverksfeil",
@@ -773,8 +521,10 @@
"Could not set group sorting" : "Kunne ikke angi gruppesortering",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Det var for mange forespørsler fra ditt nettverk. Prøv igjen senere eller kontakt din administrator hvis dette er en feil.",
"Error" : "Feil",
+ "Default quota" : "Standard kvote",
"Account documentation" : "Kontodokumentasjon",
"Administration documentation" : "Dokumentasjon for administrasjon",
+ "Documentation" : "Dokumentasjon",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud hjelp og personvernressurser",
"General documentation" : "Generell dokumentasjon",
@@ -797,6 +547,7 @@
"SMTP Password" : "SMTP-passord",
"Save" : "Lagre",
"Test and verify email settings" : "Test og bekreft e-postinnstillinger",
+ "Send email" : "Send e-post",
"Security & setup warnings" : "Advarsler om sikkerhet og oppsett",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Det er viktig for sikkerheten og ytelsen på din installasjon at alt er satt opp rett. For å hjelpe deg er det satt i verk noen automatiske sjekker. Se vedlagt lenke for å lese mer i dokumentasjonen.",
"All checks passed." : "Alle sjekker bestått.",
@@ -816,50 +567,14 @@
"Use a second factor besides your password to increase security for your account." : "Bruk en annen faktor i tillegg til passordet ditt for å øke sikkerheten for kontoen din.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Hvis du bruker tredjepartsapplikasjoner for å koble til Nextcloud, må du sørge for å opprette og konfigurere et app-passord for hver før du aktiverer tofaktorautentisering.",
"Logged in account must be a subadmin" : "Pålogget konto må være en underadministrator",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "For å la denne kontrollen kjøre, må du sørge for at webserveren din kan koble til seg selv. Derfor må den kunne løse og koble til minst en sin 'trusted_domains' eller 'overwrite.cli.url'.",
- "Missing optional index \"%s\" in table \"%s\"." : "Mangler valgfri indkeks \"%s\" i tabell \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Databasen mangler noen indekser. Å legge til indekser på store tabeller kan ta lang tid så de ble ikke lagt til automatisk. Ved å kjøre \"occ db:add-missing-indices\" legges de manglende indeksene til mens tjenesten fortsatt er tilgjengelig. Når indeksene er lagt til, er spørringer til tabellene raskere.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "For å la denne kontrollen kjøre, må du sørge for at webserveren din kan koble til seg selv. Derfor må den kunne løse og koble til minst en dens 'trusted_domains' eller 'overwrite.cli.url'. Denne feilen kan være et resultat av ikke-DNS-samsvar på serversiden eller en regel for utgående brannmur.",
"File locking" : "Låsing av filer",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Låsing av transaksjonsfiler er deaktivert, dette kan føre til problemer med løpsforholdene. Aktiver \"filelocking.enabled\" i config.php for å unngå disse problemene.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Kunne ikke se etter JavaScript-støtte via noen av dine 'trusted_domains' eller 'overwrite.cli.url'. Dette kan være et resultat av DNS-avvik på serversiden eller en regel for utgående brannmur. Kontroller manuelt om webserveren din tjener .mjs-filer ved hjelp av JavaScript MIME-typen.",
"The PHP memory limit is below the recommended value of %s." : "PHP-minnegrensen er under den anbefalte verdien på %s.",
"for WebAuthn passwordless login" : "for WebAuthn-passordfripålogging",
"for WebAuthn passwordless login, and SFTP storage" : "for WebAuthn-passordfripålogging og SFTP-lagring",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du kjører for øyeblikket PHP %s. PHP 8.0 er nå avviklet i Nextcloud 27. Nextcloud 28 kan kreve minst PHP 8.1. Oppgrader til en av de offisielt støttede PHP-versjonene levert av PHP Group så snart som mulig.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB versjon\"%s\" blir brukt. Nextcloud 21 og nyere støtter ikke denne versjonen og krever MariaDB 10.2 eller høyere.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL versjon \"%s\"blir brukt. Nextcloud 21 og nyere støtter ikke denne versjonen og krever MySQL 8.0 eller MariaDB 10.2 eller høyere.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL versjon \"%s\" blir brukt. Nextcloud 21 og nyere støtter ikke denne versjonen og krever PostgreSQL 9.6 eller høyere.",
- "Speech-To-Text" : "Tale-Til-Tekst",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Tale-til-tekst kan implementeres av forskjellige apper. Her kan du angi hvilken app som skal brukes.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ingen av de installerte appene dine har tale-til-tekst-funksjonalitet",
- "None of your currently installed apps provide Text processing functionality" : "Ingen av de installerte appene dine har tekstbehandlingsfunksjonalitet",
- "Set default expiration date for shares" : "Angi standard utløpsdato for delinger",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Tillat automatisk fullføring av brukernavn i delingsdialogen og gi tilgang til systemets adressebok",
- "Your biography" : "Din biografi",
- "You are using <strong>{usage}</strong>" : "Du bruker <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Du bruker <strong>{usage}</strong> av <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Angi brukersjef",
- "Username will be autogenerated" : "Brukernavn blir generert automatisk",
- "Username (required)" : "Brukernavn (kreves)",
- "New user" : "Ny bruker",
- "Groups (required)" : "Grupper (kreves)",
- "Set user groups" : "Angi brukergrupper",
- "Administered groups" : "Administrerte grupper",
- "Set user as admin for …" : "Angi bruker som administrator for...",
- "Set user quota" : "Angi brukerkvote",
- "Add new user" : "Legg til ny bruker",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} bruker...","{userCount} brukere..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} bruker","{userCount} brukere"],
- "Loading users …" : "Laster brukere...",
- "Username" : "Brukernavn",
- "User backend" : "Bruker-server",
- "User actions" : "Brukerhandlinger",
- "Add user to group" : "Legg bruker til gruppe",
- "Server error while trying to add WebAuthn device" : "Serverfeil under forsøk på å legge til WebAuthn-enhet",
- "Name your device" : "Gi navn til enhet",
- "Active accounts" : "Aktive kontoer",
- "Follow us on Twitter" : "Følg oss på Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "For å la denne kontrollen kjøre, må du sørge for at webserveren din kan koble til seg selv. Derfor må den kunne løse og koble til minst en dens 'trusted_domains' eller 'overwrite.cli.url'. Denne feilen kan være et resultat av ikke-DNS-samsvar på serversiden eller en regel for utgående brannmur.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL-versjon \"%s\" oppdaget. PostgreSQL >=12 og <=16 foreslås for best ytelse, stabilitet og funksjonalitet med denne versjonen av Nextcloud."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP-hodet '%1$s' inneholder ikke '%2$s'. Dette er en potensiell sikkerhets- eller personvernrisiko, da det anbefales å justere denne innstillingen tilsvarende.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL-versjon \"%s\" oppdaget. PostgreSQL >=12 og <=16 foreslås for best ytelse, stabilitet og funksjonalitet med denne versjonen av Nextcloud.",
+ "Set default expiration date for shares" : "Angi standard utløpsdato for delinger"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/nl.js b/apps/settings/l10n/nl.js
index 27476ec30d3..20417f4b88e 100644
--- a/apps/settings/l10n/nl.js
+++ b/apps/settings/l10n/nl.js
@@ -198,7 +198,7 @@ OC.L10N.register(
"Unable to modify setting" : "Kan instelling niet aanpassen",
"None" : "Geen",
"Allow apps to use the Share API" : "Apps toestaan de Share API te gebruiken",
- "Allow resharing" : "Toestaan doordelen",
+ "Allow resharing" : "Opnieuw delen toestaan",
"Allow sharing with groups" : "Sta delen met groepen toe",
"Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen",
"Ignore the following groups when checking group membership" : "Negeer de volgende groepen bij het controleren van groepslidmaatschap",
@@ -275,67 +275,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Kon de inhoud van het onderdeel niet laden vanuit de app store.",
"Loading" : "Laden",
"Fetching the latest news…" : "Ophalen laatste nieuws...",
- "Carousel" : "Caroussel",
- "Previous slide" : "Vorige dia",
- "Next slide" : "Volgende dia",
- "Choose slide to display" : "Kies dia om te tonen",
- "{index} of {total}" : "{index} van {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon implementeren",
- "Type" : "Type",
- "Display Name" : "Weergavenaam",
- "GPUs support" : "GPUs support",
- "Learn more" : "Meer weten",
- "Confirm" : "Bevestigen",
- "Cancel" : "Annuleren",
- "Description" : "Omschrijving",
- "View in store" : "Bekijken in store",
- "Visit website" : "Bezoek website",
- "Usage documentation" : "Gebruiksdocumentatie",
- "Admin documentation" : "Beheerdocumentatie",
- "Developer documentation" : "Ontwikkelaarsdocumentatie",
- "Details" : "Details",
- "All" : "Alle",
- "Limit app usage to groups" : "Beperk appgebruik tot groepen",
- "No results" : "Geen resultaten",
- "Update to {version}" : "Update naar {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen minimum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen maximum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Deze app kan niet worden geïnstalleerd, omdat de volgende afhankelijkheden niet zijn ingevuld:",
- "Latest updated" : "Laatste update",
- "Author" : "Auteur",
- "Categories" : "Categorieën",
- "Resources" : "Bronnen",
- "Documentation" : "Documentatie",
- "Report a bug" : "Rapporteer een fout",
- "Request feature" : "Vraag functionaliteit aan",
- "Ask questions or discuss" : "Stel vragen of discussieer",
- "Rate the app" : "Beoordeel de app",
- "Rate" : "Beoordelen",
- "Changelog" : "Lijst van veranderingen",
- "Google Chrome for Android" : "Google Chrome voor Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "This session" : "Huidige sessie",
- "Device name" : "Apparaatnaam",
- "Cancel renaming" : "Annuleer hernoemen",
- "Save new name" : "Bewaar nieuwe naam",
- "Marked for remote wipe" : "Aangemerkt voor wissen op afstand",
- "Device settings" : "Apparaatinstellingen",
- "Allow filesystem access" : "Toestaan toegang bestandssysteem",
- "Rename" : "Hernoemen",
- "Revoke" : "Intrekken",
- "Wipe device" : "Apparaat wissen",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Intrekken van deze token kan het wissen van uw apparaat voorkomen als het nog niet is begonnen met wissen.",
- "Device" : "Apparaat",
- "Last activity" : "Laatste activiteit",
- "Devices & sessions" : "Apparaten & sessies",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, desktop en mobiele clients die momenteel zijn ingelogd op je account.",
- "Error while creating device token" : "Fout bij creëren apparaat-token",
- "App name" : "Appnaam",
- "Create new app password" : "Creëer een nieuw app wachtwoord",
"App password copied!" : "Appwachtwoord gekopieerd!",
"Copy app password" : "Kopieer appwachtwoord",
"Login name copied!" : "Loginnaam gekopieerd!",
@@ -353,6 +292,7 @@ OC.L10N.register(
"AJAX" : "AJAX",
"Webcron" : "Webcron",
"Profile" : "Profiel",
+ "Password confirmation is required" : "Wachtwoordbevestiging vereist",
"Server-side encryption" : "Server-side versleuteling",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Server-side versleuteling maakt het mogelijk om bestanden te versleutelen die worden geüploaded. Dit betekent wel enig prestatieverlies, dus schakel het alleen in als het nodig is.",
"Enable server-side encryption" : "Server-side versleuteling inschakelen",
@@ -364,180 +304,10 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Let erop dat versleuteling de bestandsomvang altijd laat toenemen.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Het is altijd verstandig om regelmatig backups van je bestanden te maken. Zorg ervoor dat je in geval van versleuteling ook de cryptosleutel met je gegevens backupt.",
"This is the final warning: Do you really want to enable encryption?" : "Dit is de laatste waarschuwing: Wil je versleuteling echt inschakelen?",
+ "Cancel" : "Annuleren",
+ "Confirm" : "Bevestigen",
"Submit" : "Verwerken",
"Rename group" : "Hernoem groep",
- "Remove group" : "Groep verwijderen",
- "Current password" : "Huidig wachtwoord",
- "New password" : "Nieuw wachtwoord",
- "Change password" : "Wijzig wachtwoord",
- "Choose your profile picture" : "Kies je profielafbeelding",
- "Please select a valid png or jpg file" : "Selecteer alstublieft een geldig png of jpg bestand",
- "Error setting profile picture" : "Fout bij instellen profielafbeelding",
- "Error cropping profile picture" : "Fout bij aanpassen profielafbeelding",
- "Error saving profile picture" : "Fout bij opslaan profielafbeelding",
- "Error removing profile picture" : "Fout bij verwijderen profielafbeelding",
- "Your profile picture" : "Je profielafbeelding",
- "Upload profile picture" : "Upload profielafbeelding",
- "Choose profile picture from Files" : "Kies afbeelding via Bestanden",
- "Remove profile picture" : "Verwijder profielafbeelding",
- "The file must be a PNG or JPG" : "Het bestand moet een PNG of JPG bestand zijn",
- "Picture provided by original account" : "Afbeelding is verstrekt door originele account.",
- "Set as profile picture" : "Kies als profielafbeelding",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Let erop dat het tot 24 uur kan duren voordat je profielaafbeelding overal aangepast is.",
- "Unable to update date of birth" : "Kan geboortedatum niet aanpassen",
- "Enter your date of birth" : "Voer je geboortedatum in",
- "You are using {s}{usage}{/s}" : "Je gebruikt {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Je gebruikt {s}{usage}{/s} van {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Je bent lid van de volgende groepen:",
- "Your full name" : "Je volledige naam",
- "Email options" : "E-mail-opties",
- "Options for additional email address {index}" : "Opties voor extra e-mailadressen {index}",
- "Remove primary email" : "Verwijder primair e-mailadres",
- "Delete email" : "Verwijder e-mailadres",
- "This address is not confirmed" : "Dit adres is niet bevestigd",
- "Unset as primary email" : "Verwijder instelling als primaire e-mail",
- "Set as primary email" : "Instellen als primair e-mailadres",
- "Additional email address {index}" : "Extra e-mailadres {index}",
- "Unable to delete primary email address" : "Kan primair e-mailadres niet verwijderen",
- "Unable to update primary email address" : "Kan primair e-mailadres niet updaten",
- "Unable to add additional email address" : "Kan extra e-mailadres niet toevoegen",
- "Unable to update additional email address" : "Kan extra e-mailadres niet updaten",
- "Unable to delete additional email address" : "Kan extra e-mailadres niet verwijderen",
- "Primary email for password reset and notifications" : "Primair e-mailadres voor wachtwoordherstel en meldingen",
- "No email address set" : "Geen e-mailadres opgegeven",
- "Derived from your locale ({weekDayName})" : "Afgeleid van je regionale instellingen {weekDayName}",
- "Unable to update first day of week" : "Kan Eerste dag van de week niet aanpassen",
- "Day to use as the first day of week" : "Eerste dag van de week",
- "Your headline" : "Jouw hoofdlijn",
- "Unable to update language" : "Kan taal niet updaten",
- "Languages" : "Talen",
- "Help translate" : "Help met vertalen",
- "No language set" : "Geen taal ingesteld",
- "Unable to update locale" : "Kan regionale instellingen niet aanpassen",
- "Locales" : "Regionale instellingen",
- "Week starts on {firstDayOfWeek}" : "Week begint op {firstDayOfWeek}",
- "No locale set" : "Geen regionale instelling ingevuld",
- "Your city" : "Je stad",
- "Your organisation" : "Jouw organisatie",
- "Your phone number" : "Je telefoonnummer",
- "Edit your Profile visibility" : "Wijzig je Profiel zichtbaarheid",
- "Unable to update profile enabled state" : "Kan profiel-inschakelstatus niet updaten",
- "Enable profile" : "Schakel profiel in",
- "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." : "De meer restrictieve de instelling van de zichtbaarheidsscope wordt gerespecteerd in je Profiel. Bijvoorbeeld als je zichtbaarheid is ingesteld op \"Zichtbaar voor iedereen\" en de scope is ingesteld op \"Privé\" wordt \"Privé\" gerespecteerd.",
- "Unable to update visibility of {displayId}" : "Kan zichtbaarheid van {displayId} niet updaten",
- "she/her" : "zij/haar",
- "he/him" : "hij/hem",
- "they/them" : "zij/hun",
- "Your role" : "Jouw rol",
- "Your X (formerly Twitter) handle" : "Je X (voorheen Twitter) handle",
- "Your website" : "Je website",
- "Invalid value" : "Ongeldige waarde",
- "Unable to update {property}" : "Kan {property} niet aanpassen",
- "No {property} set" : "Geen {property} ingesteld",
- "Add additional email" : "Toevoegen extra e-mailadres",
- "Add" : "Toevoegen",
- "Create" : "Maak",
- "Change" : "Pas aan",
- "Delete" : "Verwijder",
- "Reshare" : "Doordelen",
- "Default language" : "Standaardtaal",
- "Common languages" : "Gebruikelijke talen",
- "Other languages" : "Andere talen",
- "Password change is disabled because the master key is disabled" : "Wachtwoordwijziging is uitgeschakeld omdat de hoofdsleutel is uitgeschakeld",
- "No accounts" : "Geen accounts",
- "Loading accounts …" : "Laden van accounts …",
- "Manager" : "Manager",
- "Account name will be autogenerated" : "Accountnaam wordt automatisch gegenereert",
- "Account name (required)" : "Accountnaam (vereist)",
- "New account" : "Nieuw account",
- "Display name" : "Weergavenaam",
- "Either password or email is required" : "Wachtwoord of e-mail is vereist",
- "Password (required)" : "Wachtwoord (vereist)",
- "Email (required)" : "E-mail (vereist)",
- "Email" : "E-mailadres",
- "Member of the following groups (required)" : "Lid van de volgende groepen (vereist)",
- "Member of the following groups" : "Lid van de volgende groepen",
- "Set account groups" : "Selecteer accountgroepen",
- "Admin of the following groups" : "Beheerder van de volgende groepen",
- "Set account as admin for …" : "Maak account beheerder voor ...",
- "Quota" : "Limieten",
- "Set account quota" : "Voer account quota in",
- "Language" : "Taal",
- "Set default language" : "Voer standaardtaal in",
- "Add new account" : "Voeg nieuw account toe",
- "Total rows summary" : "Aantal rijen samenvatting",
- "Scroll to load more rows" : "Scroll om meer rijen te laden",
- "Password or insufficient permissions message" : "Wachtwoord of onvoldoende machtigingen bericht",
- "Avatar" : "Avatar",
- "Account name" : "Accountnaam",
- "Group admin for" : "Groepsbeheerder voor",
- "Storage location" : "Opslag locatie",
- "Last login" : "Laatste login",
- "Account actions" : "Accountacties",
- "{size} used" : "{size} gebruikt",
- "Delete account" : "Account verwijderen",
- "Disconnect all devices and delete local data" : "Ontkoppel alle apparaten en verwijder lokale data",
- "Disable account" : "Deactiveer account",
- "Enable account" : "Activeer account",
- "Resend welcome email" : "Verstuur welkomst-e-mail opnieuw",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In het geval van een verloren apparaat of het verlaten van de organisatie, kan dit op afstand de Nextcloud-gegevens wissen van alle apparaten die zijn gekoppeld aan {userid}. Werkt alleen als de apparaten zijn verbonden met het internet.",
- "Remote wipe of devices" : "Op afstand leegmaken toestellen",
- "Wipe {userid}'s devices" : "Wis {userid}'s toestel",
- "Wiped {userid}'s devices" : "{userid}'s apparaten gewist",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Verwijder {userid}'s account volledig, inclusief alle persoonlijke bestanden, app data, etc.",
- "Account deletion" : "Accountverwijdering",
- "Delete {userid}'s account" : "Verwijderen {userid}'s account",
- "Display name was successfully changed" : "Weergavenaam was succesvol gewijzigd",
- "Password was successfully changed" : "Wachtwoord was succesvol gewijzigd.",
- "Email was successfully changed" : "E-mail succesvol gewijzigd",
- "Welcome mail sent!" : "Welkomst-e-mail verstuurd!",
- "Loading account …" : "Account laden ...",
- "Change display name" : "Weergavenaam wijzigen",
- "Set new password" : "Instellen nieuw wachtwoord",
- "You do not have permissions to see the details of this account" : "Je hebt niet de machtigingen om de details van dit account te zien",
- "Set new email address" : "Voer nieuw e-mailadres in",
- "Add account to group" : "Voeg account toe aan groep",
- "Set account as admin for" : "Maak account beheerder voor ...",
- "Select account quota" : "Selecteer accountquota",
- "Set the language" : "Voer de taal in",
- "Toggle account actions menu" : "Omschakelen gebruikersactiemenu",
- "Done" : "Klaar",
- "Edit" : "Bewerken",
- "Account management settings" : "Accountbeheerinstellingen",
- "Visibility" : "Zichtbaarheid",
- "Show language" : "Toon taal",
- "Show account backend" : "Toon account backend",
- "Show storage path" : "Tonen opslagpad",
- "Show last login" : "Toon laatste inlog",
- "Sorting" : "Sorteren",
- "Send email" : "Verstuur e-mail",
- "Send welcome email to new accounts" : "Stuur welkom e-mail naar nieuwe accounts",
- "Defaults" : "Standaard",
- "Default quota" : "Standaard quota",
- "Select default quota" : "Selecteer standaardquotum",
- "Server error while trying to complete WebAuthn device registration" : "Serverfout tijdens registratie van het WebAuthn apparaat",
- "Passwordless authentication requires a secure connection." : "Inloggen zonder wachtwoord vereist een beveiligde verbinding.",
- "Add WebAuthn device" : "WebAuthn-apparaat toevoegen",
- "Please authorize your WebAuthn device." : "Autoriseer je WebAuthn toestel.",
- "Adding your device …" : "Je apparaat toevoegen...",
- "Unnamed device" : "Naamloos apparaat",
- "Passwordless Authentication" : "Inloggen zonder wachtwoord",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Stel voor je account wachtwoordloze authenticatie in volgens de FIDO2 standaard.",
- "No devices configured." : "Geen apparaten geconfigureerd.",
- "The following devices are configured for your account:" : "De volgende apparaten zijn ingesteld voor je account:",
- "Your browser does not support WebAuthn." : "Je browser ondersteunt WebAuthn niet.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Als beheerder kun je gedetailleerde regels voor delen instellen. Bekijk de documentatie voor meer informatie.",
- "You need to enable the File sharing App." : "Je dient de File sharing App in te schakelen",
- "App Store" : "App winkel",
- "Loading app list" : "Laden applijst",
- "Loading categories" : "Laden categorieën",
- "Developer documentation ↗" : "Ontwikkelaarsdocumentatie ↗",
- "Version {version}, {license}-licensed" : "Versie {version}, {license}-licensed",
- "Version {version}" : "Versie {version}",
- "All accounts" : "Alle accounts",
- "Admins" : "Beheerders",
- "Account group: {group}" : "Accountgroep: {group}",
- "Account management" : "Accountbeheer",
"Sending…" : "Versturen...",
"Email sent" : "E-mail verzonden",
"Location" : "Locatie",
@@ -546,6 +316,7 @@ OC.L10N.register(
"Date of birth" : "Geboortedatum",
"Full name" : "Volledige naam",
"Additional email" : "Extra e-mailadres",
+ "Email" : "E-mailadres",
"Headline" : "Hoofdlijn",
"Organisation" : "Organisatie",
"Phone number" : "Telefoonnummer",
@@ -553,6 +324,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (voorheen Twitter)",
"Website" : "Website",
"Profile visibility" : "Profiel zichtbaarheid",
+ "Language" : "Taal",
"Locale" : "Regionale instellingen",
"First day of week" : "Eerste dag van de week",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Niet beschikbaar omdat deze eigenschap benodigd is voor de basisfunctionaliteit inclusief bestandsdeling en kalender uitnodigingen",
@@ -567,6 +339,7 @@ OC.L10N.register(
"Show to everyone" : "Laat zien aan iedereen",
"Show to logged in accounts only" : "Laat alleen zien aan ingelogde accounts",
"Hide" : "Verberg",
+ "Update to {version}" : "Update naar {version}",
"{progress}% Deploying …" : "{progress} % implementeren ...",
"{progress}% Initializing …" : "{progress} % initialiseren ...",
"Health checking" : "Gezondheidscheck",
@@ -576,6 +349,7 @@ OC.L10N.register(
"Allow untested app" : "Niet-geteste apps toestaan",
"The app will be downloaded from the App Store" : "De app zal worden gedownload van de App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Deze is niet aangeduid als compatibel met jouw versie van Nextcloud. Als je verdergaat, zal je de app kunnen installeren. Let op dat de app misschien niet werkt zoals verwacht.",
+ "{size} used" : "{size} gebruikt",
"Unknown" : "Onbekend",
"Never" : "Nooit",
"Could not register device: Network error" : "Kon apparaat niet registreren: netwerkfout",
@@ -594,7 +368,9 @@ OC.L10N.register(
"Could not set group sorting" : "Kon groepsorteren niet instellen",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Er waren te veel aanvragen afkomstig uit uw netwerk. Probeer later opnieuw of contacteer de beheerder als dat niet correct is.",
"Error" : "Fout",
+ "Default quota" : "Standaard quota",
"Administration documentation" : "Beheerdersdocumentatie",
+ "Documentation" : "Documentatie",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud help- & privacy-bronnen",
"General documentation" : "Algemene documentatie",
@@ -615,6 +391,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP wachtwoord",
"Save" : "Bewaar",
"Test and verify email settings" : "Test en controleer de e-mailinstellingen",
+ "Send email" : "Verstuur e-mail",
"Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Voor beveiliging en prestaties van je server is het belangrijk dat alles goed is geconfigureerd. Om je hierbij te helpen doen we paar automatische controles. Bekijk de gerelateerde documentatie voor meer informatie.",
"All checks passed." : "Alle controles geslaagd",
@@ -634,30 +411,6 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Gebruik een tweede factor naast je wachtwoord om de beveiliging van je account te verhogen. ",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Als u toepassingen van derden gebruikt om met Nextcloud te verbinden, zorg er dan voor om voor elke app een wachtwoord te maken en te configureren voordat \"tweede factor authenticatie\" wordt geactiveerd.",
"Logged in account must be a subadmin" : "Aangemeld account moet een subadmin zijn",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "De database mist een paar indexen. Omdat het toevoegen van indexen op grote tabellen veel tijd kan kosten, zijn ze niet automatisch gecreëerd. Door het draaien van \"occ db:add-missing-indices\" kunnen deze indexen handmatig worden toegevoegd terwijl de server blijft draaien. Als de indexen zijn toegevoegd, zullen opvragingen op die tabellen veel sneller plaatsvinden.",
- "Set default expiration date for shares" : "Instellen standaard vervaldatum voor deellinks",
- "Your biography" : "Jouw biografie",
- "You are using <strong>{usage}</strong>" : "Je gebruikt <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Je gebruikt <strong>{usage}</strong> van <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Gebruikersbeheerder instellen",
- "Username will be autogenerated" : "Gebruikersnaam wordt automatisch gegenereerd",
- "Username (required)" : "Gebruikersnaam (vereist)",
- "New user" : "Nieuwe gebruiker",
- "Groups (required)" : "Groepen (vereist)",
- "Set user groups" : "Gebruikersgroepen instellen",
- "Administered groups" : "Beheerde groepen",
- "Set user as admin for …" : "Maak gebruiker beheerder voor ...",
- "Set user quota" : "Gebruikersquota instellen",
- "Add new user" : "Nieuwe gebruiker toevoegen",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} gebruiker","{userCount} gebruikers"],
- "Loading users …" : "Laden gebruikers ...",
- "Username" : "Gebruikersnaam",
- "User backend" : "Backend gebruiker",
- "User actions" : "Gebruikersacties",
- "Add user to group" : "Toevoegen gebruiker aan groep",
- "Server error while trying to add WebAuthn device" : "Serverfout tijdens het toevoegen van WebAuthn apparaat",
- "Name your device" : "Geef je apparaat een naam",
- "Active accounts" : "Actieve accounts",
- "Follow us on Twitter" : "Volg ons op Twitter"
+ "Set default expiration date for shares" : "Instellen standaard vervaldatum voor deellinks"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/nl.json b/apps/settings/l10n/nl.json
index c03e4263954..47391964421 100644
--- a/apps/settings/l10n/nl.json
+++ b/apps/settings/l10n/nl.json
@@ -196,7 +196,7 @@
"Unable to modify setting" : "Kan instelling niet aanpassen",
"None" : "Geen",
"Allow apps to use the Share API" : "Apps toestaan de Share API te gebruiken",
- "Allow resharing" : "Toestaan doordelen",
+ "Allow resharing" : "Opnieuw delen toestaan",
"Allow sharing with groups" : "Sta delen met groepen toe",
"Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen",
"Ignore the following groups when checking group membership" : "Negeer de volgende groepen bij het controleren van groepslidmaatschap",
@@ -273,67 +273,6 @@
"Could not load section content from app store." : "Kon de inhoud van het onderdeel niet laden vanuit de app store.",
"Loading" : "Laden",
"Fetching the latest news…" : "Ophalen laatste nieuws...",
- "Carousel" : "Caroussel",
- "Previous slide" : "Vorige dia",
- "Next slide" : "Volgende dia",
- "Choose slide to display" : "Kies dia om te tonen",
- "{index} of {total}" : "{index} van {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon implementeren",
- "Type" : "Type",
- "Display Name" : "Weergavenaam",
- "GPUs support" : "GPUs support",
- "Learn more" : "Meer weten",
- "Confirm" : "Bevestigen",
- "Cancel" : "Annuleren",
- "Description" : "Omschrijving",
- "View in store" : "Bekijken in store",
- "Visit website" : "Bezoek website",
- "Usage documentation" : "Gebruiksdocumentatie",
- "Admin documentation" : "Beheerdocumentatie",
- "Developer documentation" : "Ontwikkelaarsdocumentatie",
- "Details" : "Details",
- "All" : "Alle",
- "Limit app usage to groups" : "Beperk appgebruik tot groepen",
- "No results" : "Geen resultaten",
- "Update to {version}" : "Update naar {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen minimum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen maximum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Deze app kan niet worden geïnstalleerd, omdat de volgende afhankelijkheden niet zijn ingevuld:",
- "Latest updated" : "Laatste update",
- "Author" : "Auteur",
- "Categories" : "Categorieën",
- "Resources" : "Bronnen",
- "Documentation" : "Documentatie",
- "Report a bug" : "Rapporteer een fout",
- "Request feature" : "Vraag functionaliteit aan",
- "Ask questions or discuss" : "Stel vragen of discussieer",
- "Rate the app" : "Beoordeel de app",
- "Rate" : "Beoordelen",
- "Changelog" : "Lijst van veranderingen",
- "Google Chrome for Android" : "Google Chrome voor Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android",
- "This session" : "Huidige sessie",
- "Device name" : "Apparaatnaam",
- "Cancel renaming" : "Annuleer hernoemen",
- "Save new name" : "Bewaar nieuwe naam",
- "Marked for remote wipe" : "Aangemerkt voor wissen op afstand",
- "Device settings" : "Apparaatinstellingen",
- "Allow filesystem access" : "Toestaan toegang bestandssysteem",
- "Rename" : "Hernoemen",
- "Revoke" : "Intrekken",
- "Wipe device" : "Apparaat wissen",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Intrekken van deze token kan het wissen van uw apparaat voorkomen als het nog niet is begonnen met wissen.",
- "Device" : "Apparaat",
- "Last activity" : "Laatste activiteit",
- "Devices & sessions" : "Apparaten & sessies",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, desktop en mobiele clients die momenteel zijn ingelogd op je account.",
- "Error while creating device token" : "Fout bij creëren apparaat-token",
- "App name" : "Appnaam",
- "Create new app password" : "Creëer een nieuw app wachtwoord",
"App password copied!" : "Appwachtwoord gekopieerd!",
"Copy app password" : "Kopieer appwachtwoord",
"Login name copied!" : "Loginnaam gekopieerd!",
@@ -351,6 +290,7 @@
"AJAX" : "AJAX",
"Webcron" : "Webcron",
"Profile" : "Profiel",
+ "Password confirmation is required" : "Wachtwoordbevestiging vereist",
"Server-side encryption" : "Server-side versleuteling",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Server-side versleuteling maakt het mogelijk om bestanden te versleutelen die worden geüploaded. Dit betekent wel enig prestatieverlies, dus schakel het alleen in als het nodig is.",
"Enable server-side encryption" : "Server-side versleuteling inschakelen",
@@ -362,180 +302,10 @@
"Be aware that encryption always increases the file size." : "Let erop dat versleuteling de bestandsomvang altijd laat toenemen.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Het is altijd verstandig om regelmatig backups van je bestanden te maken. Zorg ervoor dat je in geval van versleuteling ook de cryptosleutel met je gegevens backupt.",
"This is the final warning: Do you really want to enable encryption?" : "Dit is de laatste waarschuwing: Wil je versleuteling echt inschakelen?",
+ "Cancel" : "Annuleren",
+ "Confirm" : "Bevestigen",
"Submit" : "Verwerken",
"Rename group" : "Hernoem groep",
- "Remove group" : "Groep verwijderen",
- "Current password" : "Huidig wachtwoord",
- "New password" : "Nieuw wachtwoord",
- "Change password" : "Wijzig wachtwoord",
- "Choose your profile picture" : "Kies je profielafbeelding",
- "Please select a valid png or jpg file" : "Selecteer alstublieft een geldig png of jpg bestand",
- "Error setting profile picture" : "Fout bij instellen profielafbeelding",
- "Error cropping profile picture" : "Fout bij aanpassen profielafbeelding",
- "Error saving profile picture" : "Fout bij opslaan profielafbeelding",
- "Error removing profile picture" : "Fout bij verwijderen profielafbeelding",
- "Your profile picture" : "Je profielafbeelding",
- "Upload profile picture" : "Upload profielafbeelding",
- "Choose profile picture from Files" : "Kies afbeelding via Bestanden",
- "Remove profile picture" : "Verwijder profielafbeelding",
- "The file must be a PNG or JPG" : "Het bestand moet een PNG of JPG bestand zijn",
- "Picture provided by original account" : "Afbeelding is verstrekt door originele account.",
- "Set as profile picture" : "Kies als profielafbeelding",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Let erop dat het tot 24 uur kan duren voordat je profielaafbeelding overal aangepast is.",
- "Unable to update date of birth" : "Kan geboortedatum niet aanpassen",
- "Enter your date of birth" : "Voer je geboortedatum in",
- "You are using {s}{usage}{/s}" : "Je gebruikt {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Je gebruikt {s}{usage}{/s} van {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Je bent lid van de volgende groepen:",
- "Your full name" : "Je volledige naam",
- "Email options" : "E-mail-opties",
- "Options for additional email address {index}" : "Opties voor extra e-mailadressen {index}",
- "Remove primary email" : "Verwijder primair e-mailadres",
- "Delete email" : "Verwijder e-mailadres",
- "This address is not confirmed" : "Dit adres is niet bevestigd",
- "Unset as primary email" : "Verwijder instelling als primaire e-mail",
- "Set as primary email" : "Instellen als primair e-mailadres",
- "Additional email address {index}" : "Extra e-mailadres {index}",
- "Unable to delete primary email address" : "Kan primair e-mailadres niet verwijderen",
- "Unable to update primary email address" : "Kan primair e-mailadres niet updaten",
- "Unable to add additional email address" : "Kan extra e-mailadres niet toevoegen",
- "Unable to update additional email address" : "Kan extra e-mailadres niet updaten",
- "Unable to delete additional email address" : "Kan extra e-mailadres niet verwijderen",
- "Primary email for password reset and notifications" : "Primair e-mailadres voor wachtwoordherstel en meldingen",
- "No email address set" : "Geen e-mailadres opgegeven",
- "Derived from your locale ({weekDayName})" : "Afgeleid van je regionale instellingen {weekDayName}",
- "Unable to update first day of week" : "Kan Eerste dag van de week niet aanpassen",
- "Day to use as the first day of week" : "Eerste dag van de week",
- "Your headline" : "Jouw hoofdlijn",
- "Unable to update language" : "Kan taal niet updaten",
- "Languages" : "Talen",
- "Help translate" : "Help met vertalen",
- "No language set" : "Geen taal ingesteld",
- "Unable to update locale" : "Kan regionale instellingen niet aanpassen",
- "Locales" : "Regionale instellingen",
- "Week starts on {firstDayOfWeek}" : "Week begint op {firstDayOfWeek}",
- "No locale set" : "Geen regionale instelling ingevuld",
- "Your city" : "Je stad",
- "Your organisation" : "Jouw organisatie",
- "Your phone number" : "Je telefoonnummer",
- "Edit your Profile visibility" : "Wijzig je Profiel zichtbaarheid",
- "Unable to update profile enabled state" : "Kan profiel-inschakelstatus niet updaten",
- "Enable profile" : "Schakel profiel in",
- "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." : "De meer restrictieve de instelling van de zichtbaarheidsscope wordt gerespecteerd in je Profiel. Bijvoorbeeld als je zichtbaarheid is ingesteld op \"Zichtbaar voor iedereen\" en de scope is ingesteld op \"Privé\" wordt \"Privé\" gerespecteerd.",
- "Unable to update visibility of {displayId}" : "Kan zichtbaarheid van {displayId} niet updaten",
- "she/her" : "zij/haar",
- "he/him" : "hij/hem",
- "they/them" : "zij/hun",
- "Your role" : "Jouw rol",
- "Your X (formerly Twitter) handle" : "Je X (voorheen Twitter) handle",
- "Your website" : "Je website",
- "Invalid value" : "Ongeldige waarde",
- "Unable to update {property}" : "Kan {property} niet aanpassen",
- "No {property} set" : "Geen {property} ingesteld",
- "Add additional email" : "Toevoegen extra e-mailadres",
- "Add" : "Toevoegen",
- "Create" : "Maak",
- "Change" : "Pas aan",
- "Delete" : "Verwijder",
- "Reshare" : "Doordelen",
- "Default language" : "Standaardtaal",
- "Common languages" : "Gebruikelijke talen",
- "Other languages" : "Andere talen",
- "Password change is disabled because the master key is disabled" : "Wachtwoordwijziging is uitgeschakeld omdat de hoofdsleutel is uitgeschakeld",
- "No accounts" : "Geen accounts",
- "Loading accounts …" : "Laden van accounts …",
- "Manager" : "Manager",
- "Account name will be autogenerated" : "Accountnaam wordt automatisch gegenereert",
- "Account name (required)" : "Accountnaam (vereist)",
- "New account" : "Nieuw account",
- "Display name" : "Weergavenaam",
- "Either password or email is required" : "Wachtwoord of e-mail is vereist",
- "Password (required)" : "Wachtwoord (vereist)",
- "Email (required)" : "E-mail (vereist)",
- "Email" : "E-mailadres",
- "Member of the following groups (required)" : "Lid van de volgende groepen (vereist)",
- "Member of the following groups" : "Lid van de volgende groepen",
- "Set account groups" : "Selecteer accountgroepen",
- "Admin of the following groups" : "Beheerder van de volgende groepen",
- "Set account as admin for …" : "Maak account beheerder voor ...",
- "Quota" : "Limieten",
- "Set account quota" : "Voer account quota in",
- "Language" : "Taal",
- "Set default language" : "Voer standaardtaal in",
- "Add new account" : "Voeg nieuw account toe",
- "Total rows summary" : "Aantal rijen samenvatting",
- "Scroll to load more rows" : "Scroll om meer rijen te laden",
- "Password or insufficient permissions message" : "Wachtwoord of onvoldoende machtigingen bericht",
- "Avatar" : "Avatar",
- "Account name" : "Accountnaam",
- "Group admin for" : "Groepsbeheerder voor",
- "Storage location" : "Opslag locatie",
- "Last login" : "Laatste login",
- "Account actions" : "Accountacties",
- "{size} used" : "{size} gebruikt",
- "Delete account" : "Account verwijderen",
- "Disconnect all devices and delete local data" : "Ontkoppel alle apparaten en verwijder lokale data",
- "Disable account" : "Deactiveer account",
- "Enable account" : "Activeer account",
- "Resend welcome email" : "Verstuur welkomst-e-mail opnieuw",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In het geval van een verloren apparaat of het verlaten van de organisatie, kan dit op afstand de Nextcloud-gegevens wissen van alle apparaten die zijn gekoppeld aan {userid}. Werkt alleen als de apparaten zijn verbonden met het internet.",
- "Remote wipe of devices" : "Op afstand leegmaken toestellen",
- "Wipe {userid}'s devices" : "Wis {userid}'s toestel",
- "Wiped {userid}'s devices" : "{userid}'s apparaten gewist",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Verwijder {userid}'s account volledig, inclusief alle persoonlijke bestanden, app data, etc.",
- "Account deletion" : "Accountverwijdering",
- "Delete {userid}'s account" : "Verwijderen {userid}'s account",
- "Display name was successfully changed" : "Weergavenaam was succesvol gewijzigd",
- "Password was successfully changed" : "Wachtwoord was succesvol gewijzigd.",
- "Email was successfully changed" : "E-mail succesvol gewijzigd",
- "Welcome mail sent!" : "Welkomst-e-mail verstuurd!",
- "Loading account …" : "Account laden ...",
- "Change display name" : "Weergavenaam wijzigen",
- "Set new password" : "Instellen nieuw wachtwoord",
- "You do not have permissions to see the details of this account" : "Je hebt niet de machtigingen om de details van dit account te zien",
- "Set new email address" : "Voer nieuw e-mailadres in",
- "Add account to group" : "Voeg account toe aan groep",
- "Set account as admin for" : "Maak account beheerder voor ...",
- "Select account quota" : "Selecteer accountquota",
- "Set the language" : "Voer de taal in",
- "Toggle account actions menu" : "Omschakelen gebruikersactiemenu",
- "Done" : "Klaar",
- "Edit" : "Bewerken",
- "Account management settings" : "Accountbeheerinstellingen",
- "Visibility" : "Zichtbaarheid",
- "Show language" : "Toon taal",
- "Show account backend" : "Toon account backend",
- "Show storage path" : "Tonen opslagpad",
- "Show last login" : "Toon laatste inlog",
- "Sorting" : "Sorteren",
- "Send email" : "Verstuur e-mail",
- "Send welcome email to new accounts" : "Stuur welkom e-mail naar nieuwe accounts",
- "Defaults" : "Standaard",
- "Default quota" : "Standaard quota",
- "Select default quota" : "Selecteer standaardquotum",
- "Server error while trying to complete WebAuthn device registration" : "Serverfout tijdens registratie van het WebAuthn apparaat",
- "Passwordless authentication requires a secure connection." : "Inloggen zonder wachtwoord vereist een beveiligde verbinding.",
- "Add WebAuthn device" : "WebAuthn-apparaat toevoegen",
- "Please authorize your WebAuthn device." : "Autoriseer je WebAuthn toestel.",
- "Adding your device …" : "Je apparaat toevoegen...",
- "Unnamed device" : "Naamloos apparaat",
- "Passwordless Authentication" : "Inloggen zonder wachtwoord",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Stel voor je account wachtwoordloze authenticatie in volgens de FIDO2 standaard.",
- "No devices configured." : "Geen apparaten geconfigureerd.",
- "The following devices are configured for your account:" : "De volgende apparaten zijn ingesteld voor je account:",
- "Your browser does not support WebAuthn." : "Je browser ondersteunt WebAuthn niet.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Als beheerder kun je gedetailleerde regels voor delen instellen. Bekijk de documentatie voor meer informatie.",
- "You need to enable the File sharing App." : "Je dient de File sharing App in te schakelen",
- "App Store" : "App winkel",
- "Loading app list" : "Laden applijst",
- "Loading categories" : "Laden categorieën",
- "Developer documentation ↗" : "Ontwikkelaarsdocumentatie ↗",
- "Version {version}, {license}-licensed" : "Versie {version}, {license}-licensed",
- "Version {version}" : "Versie {version}",
- "All accounts" : "Alle accounts",
- "Admins" : "Beheerders",
- "Account group: {group}" : "Accountgroep: {group}",
- "Account management" : "Accountbeheer",
"Sending…" : "Versturen...",
"Email sent" : "E-mail verzonden",
"Location" : "Locatie",
@@ -544,6 +314,7 @@
"Date of birth" : "Geboortedatum",
"Full name" : "Volledige naam",
"Additional email" : "Extra e-mailadres",
+ "Email" : "E-mailadres",
"Headline" : "Hoofdlijn",
"Organisation" : "Organisatie",
"Phone number" : "Telefoonnummer",
@@ -551,6 +322,7 @@
"X (formerly Twitter)" : "X (voorheen Twitter)",
"Website" : "Website",
"Profile visibility" : "Profiel zichtbaarheid",
+ "Language" : "Taal",
"Locale" : "Regionale instellingen",
"First day of week" : "Eerste dag van de week",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Niet beschikbaar omdat deze eigenschap benodigd is voor de basisfunctionaliteit inclusief bestandsdeling en kalender uitnodigingen",
@@ -565,6 +337,7 @@
"Show to everyone" : "Laat zien aan iedereen",
"Show to logged in accounts only" : "Laat alleen zien aan ingelogde accounts",
"Hide" : "Verberg",
+ "Update to {version}" : "Update naar {version}",
"{progress}% Deploying …" : "{progress} % implementeren ...",
"{progress}% Initializing …" : "{progress} % initialiseren ...",
"Health checking" : "Gezondheidscheck",
@@ -574,6 +347,7 @@
"Allow untested app" : "Niet-geteste apps toestaan",
"The app will be downloaded from the App Store" : "De app zal worden gedownload van de App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Deze is niet aangeduid als compatibel met jouw versie van Nextcloud. Als je verdergaat, zal je de app kunnen installeren. Let op dat de app misschien niet werkt zoals verwacht.",
+ "{size} used" : "{size} gebruikt",
"Unknown" : "Onbekend",
"Never" : "Nooit",
"Could not register device: Network error" : "Kon apparaat niet registreren: netwerkfout",
@@ -592,7 +366,9 @@
"Could not set group sorting" : "Kon groepsorteren niet instellen",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Er waren te veel aanvragen afkomstig uit uw netwerk. Probeer later opnieuw of contacteer de beheerder als dat niet correct is.",
"Error" : "Fout",
+ "Default quota" : "Standaard quota",
"Administration documentation" : "Beheerdersdocumentatie",
+ "Documentation" : "Documentatie",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud help- & privacy-bronnen",
"General documentation" : "Algemene documentatie",
@@ -613,6 +389,7 @@
"SMTP Password" : "SMTP wachtwoord",
"Save" : "Bewaar",
"Test and verify email settings" : "Test en controleer de e-mailinstellingen",
+ "Send email" : "Verstuur e-mail",
"Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Voor beveiliging en prestaties van je server is het belangrijk dat alles goed is geconfigureerd. Om je hierbij te helpen doen we paar automatische controles. Bekijk de gerelateerde documentatie voor meer informatie.",
"All checks passed." : "Alle controles geslaagd",
@@ -632,30 +409,6 @@
"Use a second factor besides your password to increase security for your account." : "Gebruik een tweede factor naast je wachtwoord om de beveiliging van je account te verhogen. ",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Als u toepassingen van derden gebruikt om met Nextcloud te verbinden, zorg er dan voor om voor elke app een wachtwoord te maken en te configureren voordat \"tweede factor authenticatie\" wordt geactiveerd.",
"Logged in account must be a subadmin" : "Aangemeld account moet een subadmin zijn",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "De database mist een paar indexen. Omdat het toevoegen van indexen op grote tabellen veel tijd kan kosten, zijn ze niet automatisch gecreëerd. Door het draaien van \"occ db:add-missing-indices\" kunnen deze indexen handmatig worden toegevoegd terwijl de server blijft draaien. Als de indexen zijn toegevoegd, zullen opvragingen op die tabellen veel sneller plaatsvinden.",
- "Set default expiration date for shares" : "Instellen standaard vervaldatum voor deellinks",
- "Your biography" : "Jouw biografie",
- "You are using <strong>{usage}</strong>" : "Je gebruikt <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Je gebruikt <strong>{usage}</strong> van <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Gebruikersbeheerder instellen",
- "Username will be autogenerated" : "Gebruikersnaam wordt automatisch gegenereerd",
- "Username (required)" : "Gebruikersnaam (vereist)",
- "New user" : "Nieuwe gebruiker",
- "Groups (required)" : "Groepen (vereist)",
- "Set user groups" : "Gebruikersgroepen instellen",
- "Administered groups" : "Beheerde groepen",
- "Set user as admin for …" : "Maak gebruiker beheerder voor ...",
- "Set user quota" : "Gebruikersquota instellen",
- "Add new user" : "Nieuwe gebruiker toevoegen",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} gebruiker","{userCount} gebruikers"],
- "Loading users …" : "Laden gebruikers ...",
- "Username" : "Gebruikersnaam",
- "User backend" : "Backend gebruiker",
- "User actions" : "Gebruikersacties",
- "Add user to group" : "Toevoegen gebruiker aan groep",
- "Server error while trying to add WebAuthn device" : "Serverfout tijdens het toevoegen van WebAuthn apparaat",
- "Name your device" : "Geef je apparaat een naam",
- "Active accounts" : "Actieve accounts",
- "Follow us on Twitter" : "Volg ons op Twitter"
+ "Set default expiration date for shares" : "Instellen standaard vervaldatum voor deellinks"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/nn_NO.js b/apps/settings/l10n/nn_NO.js
deleted file mode 100644
index 1638872ac64..00000000000
--- a/apps/settings/l10n/nn_NO.js
+++ /dev/null
@@ -1,122 +0,0 @@
-OC.L10N.register(
- "settings",
- {
- "Private" : "Privat",
- "Local" : "Lokal",
- "Federated" : "Federated",
- "Published" : "Publisert",
- "Verify" : "Stadfest",
- "Verifying …" : "Stadfestar…",
- "Unable to change password" : "Klarte ikkje å endra passordet",
- "Very weak password" : "Veldig svakt passord",
- "Weak password" : "Svakt passord",
- "So-so password" : "Middelmåtig passord",
- "Good password" : "OK passord",
- "Strong password" : "Sterkt passord",
- "Groups" : "Grupper",
- "Group list is empty" : "Gruppelista er tom",
- "Apps" : "Applikasjonar",
- "Wrong password" : "Feil passord",
- "Saved" : "Lagra",
- "No user supplied" : "Ingen brukar gjeve",
- "Authentication error" : "Autentiseringsfeil",
- "Wrong admin recovery password. Please check the password and try again." : "Feil admingjenopprettingspassord. Ver venleg og sjekk passordet og prøv igjen.",
- "Administrator documentation" : "Administratordokumentasjon",
- "User documentation" : "Brukardokumentasjon",
- "Users" : "Brukarare",
- "Invalid mail address" : "Ugyldig e--postadresse",
- "Welcome aboard" : "Velkomen ombord",
- "Welcome aboard %s" : "Velkomen ombord %s",
- "Your username is: %s" : "Brukarnamnet ditt er: %s",
- "Set your password" : "Vel eit passord",
- "Go to %s" : "Gå til %s",
- "Install Client" : "Installer klient",
- "Settings" : "Instillingar",
- "Personal" : "Personleg",
- "Administration" : "Administrasjon",
- "Additional settings" : "Tilleggsinnstillingar",
- "Overview" : "Oversyn",
- "Sharing" : "Deling",
- "Calendar" : "Kalendar",
- "Personal info" : "Personleg informasjon",
- "Email server" : "E-postserver",
- "Create" : "Lag",
- "Delete" : "Slett",
- "Unlimited" : "Ubegrensa",
- "None" : "Ingen",
- "All" : "Alle",
- "Remove" : "Fjern",
- "Disable" : "Slå av",
- "Visit website" : "Besøk nettstaden",
- "Report a bug" : "Rapporter feil",
- "Admin documentation" : "Admin-dokumentasjon",
- "Name" : "Namn",
- "Version" : "Utgåve",
- "Actions" : "Handlingar",
- "Rename" : "Gje nytt namn",
- "Internet Explorer" : "Internet Explorer",
- "Edge" : "Edge",
- "Firefox" : "Firefox",
- "Google Chrome" : "Google Chrome",
- "Safari" : "Safari",
- "Google Chrome for Android" : "Google Chrome for Android",
- "This session" : "Denne økta",
- "Device" : "Eining",
- "Last activity" : "Siste aktivitet",
- "App name" : "App-namn",
- "Username" : "Brukarnamn",
- "Password" : "Passord",
- "Done" : "Ferdig",
- "Copied!" : "Kopiert!",
- "Copy" : "Kopier",
- "Enable" : "Slå på",
- "Server-side encryption" : "Tenarsidekryptering",
- "Enable server-side encryption" : "Aktiver tenarsidekryptering",
- "Select default encryption module:" : "Vel standard krypteringsmodul:",
- "Current password" : "Passord",
- "New password" : "Nytt passord",
- "Change password" : "Endra passord",
- "Cancel" : "Avbryt",
- "Details" : "Detaljar",
- "Your email address" : "Di e-postadresse",
- "Language" : "Språk",
- "Help translate" : "Hjelp oss å omsetja",
- "Add" : "Legg til",
- "Email" : "E-post",
- "Quota" : "Kvote",
- "Avatar" : "Avatar",
- "Last login" : "Siste innlogging",
- "Edit" : "Rediger",
- "Send email" : "Send e-post",
- "Add group" : "Legg til gruppe",
- "Active users" : "Aktive brukarare",
- "Email sent" : "E-post sendt",
- "Location" : "Stad",
- "Profile picture" : "Profilbilete",
- "About" : "Om",
- "Full name" : "Fult namn",
- "Hide" : "Gøym",
- "Never" : "Aldri",
- "Documentation" : "Dokumentasjon",
- "Forum" : "Forum",
- "Login" : "Logg inn",
- "Open documentation" : "Opne dokumentasjon",
- "Encryption" : "Kryptering",
- "From address" : "Frå adresse",
- "Server address" : "Tenaradresse",
- "Port" : "Port",
- "Authentication" : "Godkjenning",
- "Credentials" : "Credentials",
- "SMTP Username" : "SMTP-brukarnamn",
- "Save" : "Lagre",
- "Allow apps to use the Share API" : "La app-ar bruka API-et til deling",
- "Allow public uploads" : "Tillat offentlege opplastingar",
- "Allow resharing" : "Tillat vidaredeling",
- "Allow sharing with groups" : "Tillat deling med grupper",
- "Like our Facebook page" : "Fylj på Facebook",
- "Follow us on Twitter" : "Fylj på Twitter",
- "Check out our blog" : "Les våre nettsider",
- "Subscribe to our newsletter" : "Abonner på nyhende",
- "png or jpg, max. 20 MB" : "png eller jpg, maks. 20 MB"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/nn_NO.json b/apps/settings/l10n/nn_NO.json
deleted file mode 100644
index 9212c32e56a..00000000000
--- a/apps/settings/l10n/nn_NO.json
+++ /dev/null
@@ -1,120 +0,0 @@
-{ "translations": {
- "Private" : "Privat",
- "Local" : "Lokal",
- "Federated" : "Federated",
- "Published" : "Publisert",
- "Verify" : "Stadfest",
- "Verifying …" : "Stadfestar…",
- "Unable to change password" : "Klarte ikkje å endra passordet",
- "Very weak password" : "Veldig svakt passord",
- "Weak password" : "Svakt passord",
- "So-so password" : "Middelmåtig passord",
- "Good password" : "OK passord",
- "Strong password" : "Sterkt passord",
- "Groups" : "Grupper",
- "Group list is empty" : "Gruppelista er tom",
- "Apps" : "Applikasjonar",
- "Wrong password" : "Feil passord",
- "Saved" : "Lagra",
- "No user supplied" : "Ingen brukar gjeve",
- "Authentication error" : "Autentiseringsfeil",
- "Wrong admin recovery password. Please check the password and try again." : "Feil admingjenopprettingspassord. Ver venleg og sjekk passordet og prøv igjen.",
- "Administrator documentation" : "Administratordokumentasjon",
- "User documentation" : "Brukardokumentasjon",
- "Users" : "Brukarare",
- "Invalid mail address" : "Ugyldig e--postadresse",
- "Welcome aboard" : "Velkomen ombord",
- "Welcome aboard %s" : "Velkomen ombord %s",
- "Your username is: %s" : "Brukarnamnet ditt er: %s",
- "Set your password" : "Vel eit passord",
- "Go to %s" : "Gå til %s",
- "Install Client" : "Installer klient",
- "Settings" : "Instillingar",
- "Personal" : "Personleg",
- "Administration" : "Administrasjon",
- "Additional settings" : "Tilleggsinnstillingar",
- "Overview" : "Oversyn",
- "Sharing" : "Deling",
- "Calendar" : "Kalendar",
- "Personal info" : "Personleg informasjon",
- "Email server" : "E-postserver",
- "Create" : "Lag",
- "Delete" : "Slett",
- "Unlimited" : "Ubegrensa",
- "None" : "Ingen",
- "All" : "Alle",
- "Remove" : "Fjern",
- "Disable" : "Slå av",
- "Visit website" : "Besøk nettstaden",
- "Report a bug" : "Rapporter feil",
- "Admin documentation" : "Admin-dokumentasjon",
- "Name" : "Namn",
- "Version" : "Utgåve",
- "Actions" : "Handlingar",
- "Rename" : "Gje nytt namn",
- "Internet Explorer" : "Internet Explorer",
- "Edge" : "Edge",
- "Firefox" : "Firefox",
- "Google Chrome" : "Google Chrome",
- "Safari" : "Safari",
- "Google Chrome for Android" : "Google Chrome for Android",
- "This session" : "Denne økta",
- "Device" : "Eining",
- "Last activity" : "Siste aktivitet",
- "App name" : "App-namn",
- "Username" : "Brukarnamn",
- "Password" : "Passord",
- "Done" : "Ferdig",
- "Copied!" : "Kopiert!",
- "Copy" : "Kopier",
- "Enable" : "Slå på",
- "Server-side encryption" : "Tenarsidekryptering",
- "Enable server-side encryption" : "Aktiver tenarsidekryptering",
- "Select default encryption module:" : "Vel standard krypteringsmodul:",
- "Current password" : "Passord",
- "New password" : "Nytt passord",
- "Change password" : "Endra passord",
- "Cancel" : "Avbryt",
- "Details" : "Detaljar",
- "Your email address" : "Di e-postadresse",
- "Language" : "Språk",
- "Help translate" : "Hjelp oss å omsetja",
- "Add" : "Legg til",
- "Email" : "E-post",
- "Quota" : "Kvote",
- "Avatar" : "Avatar",
- "Last login" : "Siste innlogging",
- "Edit" : "Rediger",
- "Send email" : "Send e-post",
- "Add group" : "Legg til gruppe",
- "Active users" : "Aktive brukarare",
- "Email sent" : "E-post sendt",
- "Location" : "Stad",
- "Profile picture" : "Profilbilete",
- "About" : "Om",
- "Full name" : "Fult namn",
- "Hide" : "Gøym",
- "Never" : "Aldri",
- "Documentation" : "Dokumentasjon",
- "Forum" : "Forum",
- "Login" : "Logg inn",
- "Open documentation" : "Opne dokumentasjon",
- "Encryption" : "Kryptering",
- "From address" : "Frå adresse",
- "Server address" : "Tenaradresse",
- "Port" : "Port",
- "Authentication" : "Godkjenning",
- "Credentials" : "Credentials",
- "SMTP Username" : "SMTP-brukarnamn",
- "Save" : "Lagre",
- "Allow apps to use the Share API" : "La app-ar bruka API-et til deling",
- "Allow public uploads" : "Tillat offentlege opplastingar",
- "Allow resharing" : "Tillat vidaredeling",
- "Allow sharing with groups" : "Tillat deling med grupper",
- "Like our Facebook page" : "Fylj på Facebook",
- "Follow us on Twitter" : "Fylj på Twitter",
- "Check out our blog" : "Les våre nettsider",
- "Subscribe to our newsletter" : "Abonner på nyhende",
- "png or jpg, max. 20 MB" : "png eller jpg, maks. 20 MB"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/settings/l10n/oc.js b/apps/settings/l10n/oc.js
index 8f5a7a5b053..c759fd6d1ea 100644
--- a/apps/settings/l10n/oc.js
+++ b/apps/settings/l10n/oc.js
@@ -92,95 +92,14 @@ OC.L10N.register(
"_%n app has an update available_::_%n apps have an update available_" : ["%n aplicacion an una mesa a jorn de disponibla","%n aplicacions an una mesa a jorn de disponibla"],
"Group name" : "Nom del grop",
"Loading" : "Cargament",
- "Type" : "Tipe",
- "Confirm" : "Confirmar",
- "Cancel" : "Anullar",
- "Description" : "Descripcion",
- "View in store" : "Veire a la botiga",
- "Visit website" : "Veire lo site web",
- "Admin documentation" : "Documentacion d’admin",
- "Developer documentation" : "Documentacion desvolopaire",
- "Details" : "Detalhs",
- "All" : "Tot",
- "No results" : "Cap de resultat",
- "Update to {version}" : "Metre a jorn cap a {version}",
- "Categories" : "Categorias",
- "Documentation" : "Documentacion",
- "Report a bug" : "Raportar un bug",
- "Request feature" : "Demanda de foncionalitat",
- "Ask questions or discuss" : "Pausar de question o discutir",
- "Changelog" : "Nòta de version",
- "Google Chrome for Android" : "Google Chrome per Android",
- "{productName} iOS app" : "Aplicacion iOS {productName}",
- "{productName} Android app" : "Aplicacion Android {productName}",
- "{productName} Talk for iOS" : "Talk de {productName} per iOS",
- "{productName} Talk for Android" : "Talk de {productName} per Android",
- "This session" : "Aquesta session",
- "Device settings" : "Paramètres periferic",
- "Allow filesystem access" : "Permetre accès filesystem",
- "Rename" : "Renomenar",
- "Revoke" : "Revocar",
- "Wipe device" : "Tirar periferic",
- "Device" : "Periferic",
- "Last activity" : "Darrièra activitat",
- "Devices & sessions" : "Periferics e sessions",
- "App name" : "Nom d’aplicacion",
"Login" : "Login",
"Password" : "Senhal",
"Profile" : "Perfil",
"Enable encryption" : "Activar lo chiframent",
+ "Cancel" : "Anullar",
+ "Confirm" : "Confirmar",
"Submit" : "Transmetre",
"Rename group" : "Renomenar lo grop",
- "Remove group" : "Suprimir lo grop",
- "Current password" : "Senhal actual",
- "New password" : "Senhal novèl",
- "Change password" : "Cambiar de senhal",
- "Picture provided by original account" : "Imatge provesit pel compte d’origina",
- "You are a member of the following groups:" : "Formatz part d’aquestes grops :",
- "Your full name" : "Vòstre nom complèt",
- "Email options" : "Opcions d’email",
- "This address is not confirmed" : "Aquesta adreça es pas confirmada",
- "Set as primary email" : "Definir coma adreça principala",
- "No email address set" : "Cap d’adreça pas definida",
- "Your headline" : "Vòstre títol",
- "Unable to update language" : "Actualizacion de la lenga impossibla",
- "Help translate" : "Ajudar a traduire",
- "No language set" : "Cap de lenga pas definida",
- "Your organisation" : "Vòstra organizacion",
- "Your phone number" : "Vòstre numèro de telefòn",
- "Edit your Profile visibility" : "Modificatz la visibilitat de vòstre perfil",
- "Your role" : "Vòstre ròtle",
- "Add" : "Ajustar",
- "Create" : "Crear",
- "Change" : "Modificar",
- "Delete" : "Suprimir",
- "Reshare" : "Repartir",
- "Default language" : "Lenga per defaut",
- "Common languages" : "Lengas comunas",
- "Other languages" : "Autras lengas",
- "Display name" : "Nom afichat",
- "Email" : "Adreça corrièl",
- "Quota" : "Quota",
- "Language" : "Lenga",
- "Avatar" : "Avatar",
- "Last login" : "Darrièra connexion",
- "{size} used" : "{size} utilizat",
- "Resend welcome email" : "Tornar enviar l’email de benvenguda",
- "Account deletion" : "Supression de compte",
- "Delete {userid}'s account" : "Suprimir lo compte de {userid}",
- "Welcome mail sent!" : "Email de benvenguda enviat !",
- "Done" : "Done",
- "Edit" : "Modificar",
- "Visibility" : "Visibilitat",
- "Show last login" : "Afichar la darrièra connexion",
- "Send email" : "Enviar email",
- "Default quota" : "Quota per defaut",
- "Adding your device …" : "Apondon del periferic…",
- "Unnamed device" : "Periferic sens nom",
- "Passwordless Authentication" : "Autentificacion sens senhal",
- "No devices configured." : "Cap de periferic pas configurat.",
- "Your browser does not support WebAuthn." : "Vòstre navigador es pas compatible amb WebAuthn.",
- "Admins" : "Admins",
"Sending…" : "Mandadís…",
"Email sent" : "Corrièl mandat",
"Location" : "Emplaçament",
@@ -188,12 +107,14 @@ OC.L10N.register(
"About" : "A prepaus",
"Full name" : "Nom complèt",
"Additional email" : "Email suplementari",
+ "Email" : "Adreça corrièl",
"Headline" : "Títol",
"Organisation" : "Organizacion",
"Phone number" : "Numèro de telefòn",
"Role" : "Ròtle",
"Website" : "Site web",
"Profile visibility" : "Visibilitat perfil",
+ "Language" : "Lenga",
"Locale" : "Varianta lingüistica",
"Your apps" : "Vòstras aplicacions",
"Active apps" : "Aplicacions activas",
@@ -201,11 +122,15 @@ OC.L10N.register(
"Updates" : "Mesas a jorn",
"Show to everyone" : "Afichar a tot lo monde",
"Hide" : "Amagar",
+ "Update to {version}" : "Metre a jorn cap a {version}",
"Disable" : "Desactivar",
+ "{size} used" : "{size} utilizat",
"Unknown" : "Desconegut",
"Never" : "Pas jamais",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "I a agut tròp de requèstas a partir de vòstre ret. Tornatz ensajar mai tard o contactatz vòstre administrator s’aquò es una error.",
"Error" : "Error",
+ "Default quota" : "Quota per defaut",
+ "Documentation" : "Documentacion",
"Forum" : "Forum",
"Open documentation" : "Dobrir la documentacion",
"Send mode" : "Mòde de mandadís",
@@ -217,18 +142,12 @@ OC.L10N.register(
"Credentials" : "Informacions d'identificacion",
"SMTP Password" : "Senhal SMTP",
"Save" : "Salvar",
+ "Send email" : "Enviar email",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desvolopat per la {communityopen}comunautat Nextcloud{linkclose}, lo {githubopen}còdi font{linkclose} es jos licéncia {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Aimar nòstra pagina Facebook",
"Follow us on Mastodon" : "Nos seguir sus Mastodon",
"Check out our blog" : "Donar un còp d’uèlh a nòstre blòg",
"Subscribe to our newsletter" : "S’abonar a l’infoletra",
- "Set default expiration date for shares" : "Definir una data d’expiracion per defaut pels partatges",
- "Your biography" : "Vòstra biografia",
- "New user" : "Utilizaire novèl",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} utilizaire","{userCount} utilizaires"],
- "Username" : "Nom d'utilizaire",
- "Add user to group" : "Apondre utilizaire al grop",
- "Name your device" : "Nommatz vòstre periferic",
- "Follow us on Twitter" : "Nos seguir sus Twitter"
+ "Set default expiration date for shares" : "Definir una data d’expiracion per defaut pels partatges"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/settings/l10n/oc.json b/apps/settings/l10n/oc.json
index 805af6783ba..22f5331964e 100644
--- a/apps/settings/l10n/oc.json
+++ b/apps/settings/l10n/oc.json
@@ -90,95 +90,14 @@
"_%n app has an update available_::_%n apps have an update available_" : ["%n aplicacion an una mesa a jorn de disponibla","%n aplicacions an una mesa a jorn de disponibla"],
"Group name" : "Nom del grop",
"Loading" : "Cargament",
- "Type" : "Tipe",
- "Confirm" : "Confirmar",
- "Cancel" : "Anullar",
- "Description" : "Descripcion",
- "View in store" : "Veire a la botiga",
- "Visit website" : "Veire lo site web",
- "Admin documentation" : "Documentacion d’admin",
- "Developer documentation" : "Documentacion desvolopaire",
- "Details" : "Detalhs",
- "All" : "Tot",
- "No results" : "Cap de resultat",
- "Update to {version}" : "Metre a jorn cap a {version}",
- "Categories" : "Categorias",
- "Documentation" : "Documentacion",
- "Report a bug" : "Raportar un bug",
- "Request feature" : "Demanda de foncionalitat",
- "Ask questions or discuss" : "Pausar de question o discutir",
- "Changelog" : "Nòta de version",
- "Google Chrome for Android" : "Google Chrome per Android",
- "{productName} iOS app" : "Aplicacion iOS {productName}",
- "{productName} Android app" : "Aplicacion Android {productName}",
- "{productName} Talk for iOS" : "Talk de {productName} per iOS",
- "{productName} Talk for Android" : "Talk de {productName} per Android",
- "This session" : "Aquesta session",
- "Device settings" : "Paramètres periferic",
- "Allow filesystem access" : "Permetre accès filesystem",
- "Rename" : "Renomenar",
- "Revoke" : "Revocar",
- "Wipe device" : "Tirar periferic",
- "Device" : "Periferic",
- "Last activity" : "Darrièra activitat",
- "Devices & sessions" : "Periferics e sessions",
- "App name" : "Nom d’aplicacion",
"Login" : "Login",
"Password" : "Senhal",
"Profile" : "Perfil",
"Enable encryption" : "Activar lo chiframent",
+ "Cancel" : "Anullar",
+ "Confirm" : "Confirmar",
"Submit" : "Transmetre",
"Rename group" : "Renomenar lo grop",
- "Remove group" : "Suprimir lo grop",
- "Current password" : "Senhal actual",
- "New password" : "Senhal novèl",
- "Change password" : "Cambiar de senhal",
- "Picture provided by original account" : "Imatge provesit pel compte d’origina",
- "You are a member of the following groups:" : "Formatz part d’aquestes grops :",
- "Your full name" : "Vòstre nom complèt",
- "Email options" : "Opcions d’email",
- "This address is not confirmed" : "Aquesta adreça es pas confirmada",
- "Set as primary email" : "Definir coma adreça principala",
- "No email address set" : "Cap d’adreça pas definida",
- "Your headline" : "Vòstre títol",
- "Unable to update language" : "Actualizacion de la lenga impossibla",
- "Help translate" : "Ajudar a traduire",
- "No language set" : "Cap de lenga pas definida",
- "Your organisation" : "Vòstra organizacion",
- "Your phone number" : "Vòstre numèro de telefòn",
- "Edit your Profile visibility" : "Modificatz la visibilitat de vòstre perfil",
- "Your role" : "Vòstre ròtle",
- "Add" : "Ajustar",
- "Create" : "Crear",
- "Change" : "Modificar",
- "Delete" : "Suprimir",
- "Reshare" : "Repartir",
- "Default language" : "Lenga per defaut",
- "Common languages" : "Lengas comunas",
- "Other languages" : "Autras lengas",
- "Display name" : "Nom afichat",
- "Email" : "Adreça corrièl",
- "Quota" : "Quota",
- "Language" : "Lenga",
- "Avatar" : "Avatar",
- "Last login" : "Darrièra connexion",
- "{size} used" : "{size} utilizat",
- "Resend welcome email" : "Tornar enviar l’email de benvenguda",
- "Account deletion" : "Supression de compte",
- "Delete {userid}'s account" : "Suprimir lo compte de {userid}",
- "Welcome mail sent!" : "Email de benvenguda enviat !",
- "Done" : "Done",
- "Edit" : "Modificar",
- "Visibility" : "Visibilitat",
- "Show last login" : "Afichar la darrièra connexion",
- "Send email" : "Enviar email",
- "Default quota" : "Quota per defaut",
- "Adding your device …" : "Apondon del periferic…",
- "Unnamed device" : "Periferic sens nom",
- "Passwordless Authentication" : "Autentificacion sens senhal",
- "No devices configured." : "Cap de periferic pas configurat.",
- "Your browser does not support WebAuthn." : "Vòstre navigador es pas compatible amb WebAuthn.",
- "Admins" : "Admins",
"Sending…" : "Mandadís…",
"Email sent" : "Corrièl mandat",
"Location" : "Emplaçament",
@@ -186,12 +105,14 @@
"About" : "A prepaus",
"Full name" : "Nom complèt",
"Additional email" : "Email suplementari",
+ "Email" : "Adreça corrièl",
"Headline" : "Títol",
"Organisation" : "Organizacion",
"Phone number" : "Numèro de telefòn",
"Role" : "Ròtle",
"Website" : "Site web",
"Profile visibility" : "Visibilitat perfil",
+ "Language" : "Lenga",
"Locale" : "Varianta lingüistica",
"Your apps" : "Vòstras aplicacions",
"Active apps" : "Aplicacions activas",
@@ -199,11 +120,15 @@
"Updates" : "Mesas a jorn",
"Show to everyone" : "Afichar a tot lo monde",
"Hide" : "Amagar",
+ "Update to {version}" : "Metre a jorn cap a {version}",
"Disable" : "Desactivar",
+ "{size} used" : "{size} utilizat",
"Unknown" : "Desconegut",
"Never" : "Pas jamais",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "I a agut tròp de requèstas a partir de vòstre ret. Tornatz ensajar mai tard o contactatz vòstre administrator s’aquò es una error.",
"Error" : "Error",
+ "Default quota" : "Quota per defaut",
+ "Documentation" : "Documentacion",
"Forum" : "Forum",
"Open documentation" : "Dobrir la documentacion",
"Send mode" : "Mòde de mandadís",
@@ -215,18 +140,12 @@
"Credentials" : "Informacions d'identificacion",
"SMTP Password" : "Senhal SMTP",
"Save" : "Salvar",
+ "Send email" : "Enviar email",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desvolopat per la {communityopen}comunautat Nextcloud{linkclose}, lo {githubopen}còdi font{linkclose} es jos licéncia {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Aimar nòstra pagina Facebook",
"Follow us on Mastodon" : "Nos seguir sus Mastodon",
"Check out our blog" : "Donar un còp d’uèlh a nòstre blòg",
"Subscribe to our newsletter" : "S’abonar a l’infoletra",
- "Set default expiration date for shares" : "Definir una data d’expiracion per defaut pels partatges",
- "Your biography" : "Vòstra biografia",
- "New user" : "Utilizaire novèl",
- "_{userCount} user_::_{userCount} users_" : ["{userCount} utilizaire","{userCount} utilizaires"],
- "Username" : "Nom d'utilizaire",
- "Add user to group" : "Apondre utilizaire al grop",
- "Name your device" : "Nommatz vòstre periferic",
- "Follow us on Twitter" : "Nos seguir sus Twitter"
+ "Set default expiration date for shares" : "Definir una data d’expiracion per defaut pels partatges"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js
index 4980c207733..32648a0c9a6 100644
--- a/apps/settings/l10n/pl.js
+++ b/apps/settings/l10n/pl.js
@@ -293,6 +293,8 @@ OC.L10N.register(
"Enforce password protection" : "Wymuszaj zabezpieczenie hasłem",
"Exclude groups from password requirements" : "Wyklucz grupy z wymagań dotyczących haseł",
"Exclude groups from creating link shares" : "Wyklucz grupy z tworzenia udostępnień linków",
+ "Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Udostępnienia z niestandardowymi tokenami będą nadal dostępne po wyłączeniu tego ustawienia",
+ "Shares with guessable tokens may be accessed easily" : "Dostęp do udostępnień z tokenami, które można zgadywać, jest łatwy",
"Limit sharing based on groups" : "Ogranicz udostępnianie w oparciu o grupy",
"Allow sharing for everyone (default)" : "Zezwalaj wszystkim na udostępnianie (domyślnie)",
"Exclude some groups from sharing" : "Wyklucz niektóre grupy z udostępniania",
@@ -311,7 +313,7 @@ OC.L10N.register(
"Set default expiration date for shares via link or mail" : "Ustaw domyślną datę wygaśnięcia udostępnień za pośrednictwem linku lub poczty",
"Default expiration time of shares in days" : "Domyślny czas wygaśnięcia udostępnień w dniach",
"Privacy settings for sharing" : "Ustawienia prywatności dotyczące udostępniania",
- "Allow account name autocompletion in share dialog and allow access to the system address book" : "Zezwól na automatyczne uzupełnianie nazwy konta w oknie udostępniania i zezwól na dostęp do systemowej książki adresowej",
+ "Allow account name autocompletion in share dialog and allow access to the system address book" : "Zezwalaj na automatyczne uzupełnianie nazwy konta w oknie udostępniania i zezwalaj na dostęp do systemowej książki adresowej",
"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.",
"Restrict account name autocompletion and system address book access to users within the same groups" : "Ogranicz autouzupełnianie nazwy konta i dostęp do systemowej książki adresowej do użytkowników w tych samych grupach",
"Restrict account name autocompletion to users based on phone number integration" : "Ogranicz automatyczne uzupełnianie nazwy konta do użytkowników w oparciu o integrację numeru telefonu",
@@ -361,73 +363,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Nie można wczytać zawartości sekcji ze sklepu z aplikacjami.",
"Loading" : "Wczytywanie",
"Fetching the latest news…" : "Pobieram najnowsze wiadomości…",
- "Carousel" : "Karuzela",
- "Previous slide" : "Poprzedni slajd",
- "Next slide" : "Następny slajd",
- "Choose slide to display" : "Wybierz slajd do wyświetlenia",
- "{index} of {total}" : "{index} z {total}",
- "Daemon" : "Demon",
- "Type" : "Rodzaj",
- "Display Name" : "Wyświetlana nazwa",
- "GPUs support" : "Obsługa procesorów graficznych",
- "Compute device" : "Urządzenie obliczeniowe",
- "Learn more" : "Dowiedz się więcej",
- "Confirm" : "Potwierdź",
- "Cancel" : "Anuluj",
- "Description" : "Opis",
- "View in store" : "Zobacz w sklepie",
- "Visit website" : "Odwiedź stronę",
- "Usage documentation" : "Dokumentacja użytkowania",
- "Admin documentation" : "Dokumentacja administratora",
- "Developer documentation" : "Dokumentacja dewelopera",
- "Details" : "Szczegóły",
- "All" : "Wszystkie",
- "Limit app usage to groups" : "Ogranicz korzystanie z aplikacji dla grup",
- "No results" : "Brak wyników",
- "Update to {version}" : "Zaktualizuj do {version}",
- "Default Deploy daemon is not accessible" : "Domyślny demon wdrażania jest niedostępny",
- "Delete data on remove" : "Usuń dane przy usuwaniu",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej minimalnej wersji Nextcloud. W przyszłości będzie to błąd.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej maksymalnej wersji Nextcloud. W przyszłości będzie to błąd.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ta aplikacja nie może być zainstalowana, ponieważ nie są spełnione następujące zależności:",
- "Latest updated" : "Ostatnia aktualizacja",
- "Author" : "Autor",
- "Categories" : "Kategorie",
- "Resources" : "Zasoby",
- "Documentation" : "Dokumentacja",
- "Interact" : "Współpraca",
- "Report a bug" : "Zgłoś błąd",
- "Request feature" : "Zgłoś propozycję",
- "Ask questions or discuss" : "Zadaj pytanie lub weź udział w dyskusji",
- "Rate the app" : "Oceń aplikację",
- "Rate" : "Oceń",
- "Changelog" : "Dziennik zmian",
- "Google Chrome for Android" : "Google Chrome dla Android",
- "{productName} iOS app" : "Aplikacja {productName} na iOS",
- "{productName} Android app" : "Aplikacja {productName} na Android",
- "{productName} Talk for iOS" : "{productName} Talk dla iOS",
- "{productName} Talk for Android" : "{productName} Talk dla Androida",
- "Sync client" : "Synchronizuj klienta",
- "This session" : "Ta sesja",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nazwa urządzenia",
- "Cancel renaming" : "Anuluj zmianę nazwy",
- "Save new name" : "Zapisz nową nazwę",
- "Marked for remote wipe" : "Oznaczone do zdalnego czyszczenia",
- "Device settings" : "Ustawienia urządzenia",
- "Allow filesystem access" : "Zezwalaj na dostęp do systemu plików",
- "Rename" : "Zmień nazwę",
- "Revoke" : "Cofnij",
- "Wipe device" : "Wyczyść urządzenie",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Unieważnienie tego tokena uniemożliwi czyszczenie urządzenia, jeśli jeszcze nie zostało rozpoczęte.",
- "Device" : "Urządzenie",
- "Last activity" : "Ostatnia aktywność",
- "Devices & sessions" : "Urządzenia i sesje",
- "Web, desktop and mobile clients currently logged in to your account." : "Klienci internetowi, desktopowi i mobilni aktualnie zalogowani na Twoim koncie.",
- "Error while creating device token" : "Błąd podczas tworzenia tokena urządzenia",
- "App name" : "Nazwa aplikacji",
- "Create new app password" : "Utwórz nowe hasło aplikacji",
"App password copied!" : "Hasło do aplikacji skopiowane!",
"Copy app password" : "Skopiuj hasło do aplikacji",
"Login name copied!" : "Nazwa logowania została skopiowana!",
@@ -455,6 +390,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Nie można zaktualizować domyślnych ustawień profilu",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Włącz lub wyłącz profil domyślnie dla nowych kont.",
+ "Password confirmation is required" : "Wymagane jest potwierdzenie hasła",
"Failed to save setting" : "Nie udało się zapisać ustawienia",
"{app}'s declarative setting field: {name}" : "Pole ustawień deklaratywnych aplikacji {app}: {name}",
"Unable to update server side encryption config" : "Nie można zaktualizować konfiguracji szyfrowania po stronie serwera",
@@ -471,190 +407,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Należy pamiętać, że szyfrowanie zawsze zwiększa rozmiar pliku.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Zawsze dobrze jest regularnie wykonywać kopie zapasowe swoich danych. W przypadku szyfrowania upewnij się, aby kopie zapasowe kluczy szyfrowania były wraz z danymi.",
"This is the final warning: Do you really want to enable encryption?" : "To ostatnie ostrzeżenie: Czy na pewno chcesz włączyć szyfrowanie?",
- "Failed to remove group \"{group}\"" : "Nie udało się usunąć grupy \"{group}\"",
"Please confirm the group removal" : "Potwierdź usunięcie grupy",
+ "Cancel" : "Anuluj",
+ "Confirm" : "Potwierdź",
"Submit" : "Wyślij",
"Rename group" : "Zmień nazwę grupy",
- "Remove group" : "Usuń grupę",
- "Current password" : "Bieżące hasło",
- "New password" : "Nowe hasło",
- "Change password" : "Zmień hasło",
- "Choose your profile picture" : "Wybierz swoje zdjęcie profilowe",
- "Please select a valid png or jpg file" : "Wybierz prawidłowy plik png lub jpg",
- "Error setting profile picture" : "Błąd podczas ustawiania zdjęcia profilowego",
- "Error cropping profile picture" : "Błąd przycinania zdjęcia profilowego",
- "Error saving profile picture" : "Błąd podczas zapisywania zdjęcia profilowego",
- "Error removing profile picture" : "Błąd podczas usuwania zdjęcia profilowego",
- "Your profile picture" : "Twoje zdjęcie profilowe",
- "Upload profile picture" : "Wyślij zdjęcie profilowe",
- "Choose profile picture from Files" : "Wybierz zdjęcie profilowe z Plików",
- "Remove profile picture" : "Usuń zdjęcie profilowe",
- "The file must be a PNG or JPG" : "Plik musi być w formacie PNG lub JPG",
- "Picture provided by original account" : "Zdjęcie dostarczone przez oryginalne konto",
- "Set as profile picture" : "Ustaw jako zdjęcie profilowe",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Pamiętaj, że aktualizacja Twojego zdjęcia profilowego może potrwać do 24 godzin.",
- "Unable to update date of birth" : "Nie można zapisać daty urodzin",
- "Enter your date of birth" : "Podaj datę swoich urodzin",
- "You are a member of the following groups:" : "Należysz do następujących grup:",
- "Your full name" : "Twoja pełna nazwa",
- "Email options" : "Opcje e-mail",
- "Remove primary email" : "Usuń podstawowy adres e-mail",
- "Delete email" : "Usuń e-mail",
- "This address is not confirmed" : "Ten adres nie jest potwierdzony",
- "Unset as primary email" : "Usuń jako podstawowy adres e-mail",
- "Set as primary email" : "Ustaw jako podstawowy adres e-mail",
- "Additional email address {index}" : "Dodatkowy adres e-mail {index}",
- "Unable to delete primary email address" : "Nie można usunąć głównego adresu e-mail",
- "Unable to update primary email address" : "Nie można zaktualizować głównego adresu e-mail",
- "Unable to add additional email address" : "Nie można dodać dodatkowego adresu e-mail",
- "Unable to update additional email address" : "Nie można zaktualizować dodatkowego adresu e-mail",
- "Unable to delete additional email address" : "Nie można usunąć dodatkowego adresu e-mail",
- "Primary email for password reset and notifications" : "Główny adres e-mail do resetowania hasła i powiadomień",
- "No email address set" : "Brak adresu e-mail",
- "Your handle" : "Twoja ksywka",
- "Unable to update first day of week" : "Nie można zaktualizować pierwszego dnia tygodnia",
- "Day to use as the first day of week" : "Dzień używany jako pierwszy dzień tygodnia",
- "Your headline" : "Twój nagłówek",
- "Unable to update language" : "Nie można zaktualizować języka",
- "Languages" : "Języki",
- "Help translate" : "Pomóż w tłumaczeniu",
- "No language set" : "Nie ustawiono języka",
- "Unable to update locale" : "Nie można zaktualizować regionu",
- "Locales" : "Ustawienia lokalizacyjne",
- "Week starts on {firstDayOfWeek}" : "Tydzień zaczyna się w {firstDayOfWeek}",
- "No locale set" : "Nie ustawiono regionu",
- "Your city" : "Miasto",
- "Your organisation" : "Twoja organizacja",
- "Your phone number" : "Twój numer telefonu",
- "Edit your Profile visibility" : "Edycja widoczności swojego profilu",
- "Unable to update profile enabled state" : "Nie można zaktualizować stanu włączenia profilu",
- "Enable profile" : "Włącz profil",
- "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." : "Bardziej restrykcyjne ustawienie widoczności lub zakresu jest przestrzegane w Twoim profilu. Na przykład, jeśli widoczność jest ustawiona na \"Pokaż wszystkim\", a zakres jest ustawiony na \"Prywatny\", to przestrzegany jest \"Prywatny\".",
- "Unable to update visibility of {displayId}" : "Nie można zaktualizować widoczności {displayId}",
- "she/her" : "ona/jej",
- "he/him" : "on/jego",
- "they/them" : "oni/ich",
- "Your role" : "Twoja rola społeczna",
- "Your X (formerly Twitter) handle" : "Twój przeniesiony X (dawniej Twitter).",
- "Your website" : "Twoja strona WWW",
- "Invalid value" : "Niewłaściwa wartość",
- "Unable to update {property}" : "Nie można zaktualizować {property}",
- "No {property} set" : "Nie ustawiono {property}",
- "Change scope level of {property}, current scope is {scope}" : "Zmień poziom zakresu {property}, obecny zakres to {scope}",
- "Unable to update federation scope of the primary {property}" : "Nie można zaktualizować zakresu federacji podstawowej {property}",
- "Unable to update federation scope of additional {property}" : "Nie można zaktualizować zakresu federacji dodatkowego {property}",
- "Add additional email" : "Dodaj dodatkowy e-mail",
- "Add" : "Dodaj",
- "Create" : "Utwórz",
- "Change" : "Zmień",
- "Delete" : "Usuń",
- "Reshare" : "Udostępnianie innym",
- "Default language" : "Domyślny język",
- "Common languages" : "Popularne języki",
- "Other languages" : "Inne języki",
- "Password change is disabled because the master key is disabled" : "Zmiana hasła jest zablokowana z powodu włączenia klucza głównego.",
- "No accounts" : "Brak kont",
- "Loading accounts …" : "Wczytywanie kont...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista kont. Ta lista nie jest w pełni renderowana ze względu na wydajność. Konta będą renderowane podczas poruszania się po liście.",
- "Manager" : "Menedżer",
- "Set line manager" : "Ustaw menedżera liniowego",
- "Account name will be autogenerated" : "Nazwa konta zostanie wygenerowana automatycznie",
- "Account name (required)" : "Nazwa konta (wymagane)",
- "New account" : "Nowe konto",
- "Display name" : "Nazwa wyświetlana",
- "Either password or email is required" : "Wymagane jest hasło lub adres e-mail",
- "Password (required)" : "Hasło (wymagane)",
- "Email (required)" : "E-mail (wymagany)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Członek następujących grup (wymagane)",
- "Member of the following groups" : "Członek następujących grup",
- "Set account groups" : "Ustaw grupy konta",
- "Admin of the following groups" : "Administrator następujących grup",
- "Set account as admin for …" : "Ustaw konto jako administrator dla…",
- "Quota" : "Limit",
- "Set account quota" : "Ustaw limit konta",
- "Language" : "Język",
- "Set default language" : "Ustaw domyślny język",
- "Add new account" : "Dodaj nowe konto",
- "Total rows summary" : "Podsumowanie wszystkich wierszy",
- "Scroll to load more rows" : "Przewiń, aby wczytać więcej wierszy",
- "Password or insufficient permissions message" : "Komunikat o haśle lub niewystarczających uprawnieniach",
- "Avatar" : "Awatar",
- "Account name" : "Nazwa konta",
- "Group admin for" : "Administrator grupy",
- "Account backend" : "Zaplecze konta",
- "Storage location" : "Lokalizacja magazynu",
- "Last login" : "Ostatnio zalogowany",
- "Account actions" : "Czynności na koncie",
- "{size} used" : "Wykorzystane: {size}",
- "Delete account" : "Usuń konto",
- "Disconnect all devices and delete local data" : "Odłącz wszystkie urządzenia i usuń dane lokalne",
- "Disable account" : "Wyłącz konto",
- "Enable account" : "Włącz konto",
- "Resend welcome email" : "Wyślij ponownie wiadomość powitalną",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "W przypadku zagubienia urządzenia lub opuszczenia organizacji można zdalnie wyczyścić dane Nextcloud ze wszystkich urządzeń powiązanych z {userid}. Działa tylko wtedy, gdy urządzenia są podłączone do Internetu.",
- "Remote wipe of devices" : "Zdalne czyszczenie urządzeń",
- "Wipe {userid}'s devices" : "Wyczyść urządzenia {userid}",
- "Wiped {userid}'s devices" : "Wyczyszczono urządzenia użytkownika {userid}",
- "Failed to update line manager" : "Nie udało się zaktualizować menedżera liniowego",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Całkowicie usuń konto {userid}, w tym wszystkie pliki osobiste, dane aplikacji itp.",
- "Account deletion" : "Usunięcie konta",
- "Delete {userid}'s account" : "Usuń konto {userid}",
- "Display name was successfully changed" : "Nazwa wyświetlana została zmieniona",
- "Password was successfully changed" : "Hasło zostało zmienione",
- "Email was successfully changed" : "Adres e-mail został pomyślnie zmieniony",
- "Welcome mail sent!" : "Wysłano wiadomość powitalną!",
- "Loading account …" : "Wczytywanie konta...",
- "Change display name" : "Zmiana wyświetlanej nazwy",
- "Set new password" : "Ustaw nowe hasło",
- "You do not have permissions to see the details of this account" : "Nie masz uprawnień, aby zobaczyć szczegóły tego konta",
- "Set new email address" : "Ustaw nowy adres e-mail",
- "Add account to group" : "Dodaj konto do grupy",
- "Set account as admin for" : "Ustaw konto jako administrator dla",
- "Select account quota" : "Wybierz limit konta",
- "Set the language" : "Ustaw język",
- "Toggle account actions menu" : "Przełącz menu działań na koncie",
- "Done" : "Gotowe",
- "Edit" : "Edycja",
- "Account management settings" : "Ustawienia zarządzania kontami",
- "Visibility" : "Widoczne",
- "Show language" : "Pokaż język",
- "Show account backend" : "Pokaż moduł konta",
- "Show storage path" : "Pokaż ścieżkę przechowywania",
- "Show last login" : "Pokaż ostatnie logowanie",
- "Sorting" : "Sortowanie",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Konfiguracja systemu wymusza sortowanie grup według nazwy. Wyłącza to również wyświetlanie liczby członków.",
- "Group list sorting" : "Sortowanie listy grup",
- "By member count" : "Według liczby członków",
- "By name" : "Według nazwy",
- "Send email" : "Wyślij e-mail",
- "Send welcome email to new accounts" : "Wyślij wiadomość powitalną do nowych kont",
- "Defaults" : "Domyślne",
- "Default quota" : "Domyślny limit",
- "Select default quota" : "Wybierz domyślny limit",
- "Server error while trying to complete WebAuthn device registration" : "Błąd serwera podczas próby ukończenia rejestracji urządzenia WebAuthn",
- "Passwordless authentication requires a secure connection." : "Uwierzytelnianie bez hasła wymaga bezpiecznego połączenia.",
- "Add WebAuthn device" : "Dodaj urządzenie WebAuthn",
- "Please authorize your WebAuthn device." : "Autoryzuj swoje urządzenie WebAuthn.",
- "Adding your device …" : "Dodawanie urządzenia…",
- "Unnamed device" : "Nienazwane urządzenie",
- "Passwordless Authentication" : "Uwierzytelnianie bez hasła",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Skonfiguruj konto do uwierzytelniania bez hasła zgodnie ze standardem FIDO2.",
- "No devices configured." : "Brak skonfigurowanych urządzeń.",
- "The following devices are configured for your account:" : "Dla Twojego konta skonfigurowane są następujące urządzenia:",
- "Your browser does not support WebAuthn." : "Twoja przeglądarka nie obsługuje WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Jako administrator możesz zoptymalizować ustawienia udostępniania. Szczegółowe informacje znajdziesz w dokumentacji.",
- "You need to enable the File sharing App." : "Musisz włączyć aplikację do udostępniania plików.",
- "App Store" : "Sklep aplikacji",
- "Loading app list" : "Wczytywanie listy aplikacji",
- "Loading categories" : "Wczytywanie kategorii",
- "Developer documentation ↗" : "Dokumentacja deweloperska ↗",
- "Version {version}, {license}-licensed" : "Wersja {version}, {license}-licencjonowana",
- "Version {version}" : "Wersja {version}",
- "All accounts" : "Wszystkie konta",
- "Admins" : "Administratorzy",
- "Account group: {group}" : "Grupa kont: {group}",
- "Account management" : "Zarządzanie kontem",
"Sending…" : "Wysyłam…",
"Email sent" : "E-mail został wysłany",
"Location" : "Lokalizacja",
@@ -663,6 +420,7 @@ OC.L10N.register(
"Date of birth" : "Data urodzin",
"Full name" : "Pełna nazwa",
"Additional email" : "Dodatkowy e-mail",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (np. Mastodon)",
"Headline" : "Nagłówek",
"Organisation" : "Organizacja",
@@ -672,6 +430,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (dawniej Twitter)",
"Website" : "Strona internetowa",
"Profile visibility" : "Widoczność profilu",
+ "Language" : "Język",
"Locale" : "Region",
"First day of week" : "Pierwszy dzień tygodnia",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Niedostępne, ponieważ ta właściwość jest wymagana do podstawowych funkcji, w tym udostępniania pliku i zaproszeń do kalendarza",
@@ -688,13 +447,15 @@ OC.L10N.register(
"Show to everyone" : "Pokaż wszystkim",
"Show to logged in accounts only" : "Pokaż tylko zalogowanym kontom",
"Hide" : "Ukryj",
+ "Update to {version}" : "Zaktualizuj do {version}",
"Health checking" : "Sprawdzanie stanu zdrowia",
"Deploy and Enable" : "Wdróż i włącz",
"Download and enable" : "Pobierz i włącz",
"Disable" : "Wyłącz",
- "Allow untested app" : "Zezwól na nietestowane aplikacje",
+ "Allow untested app" : "Zezwalaj na nietestowane aplikacje",
"The app will be downloaded from the App Store" : "Aplikacja zostanie pobrana ze sklepu z aplikacjami",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ta aplikacja jest niezgodna z wersją Nextcloud. Przy dalszej kontynuacji, możesz pozwolić na zainstalowanie tej aplikacji. Pamiętaj, że aplikacja może nie działać zgodnie z oczekiwaniami.",
+ "{size} used" : "Wykorzystane: {size}",
"Unknown" : "Nieznany",
"Never" : "Nigdy",
"Could not register device: Network error" : "Nie można zarejestrować urządzenia: błąd sieci",
@@ -713,8 +474,10 @@ OC.L10N.register(
"Could not set group sorting" : "Nie można ustawić sortowania grupy",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zbyt wiele żądań z Twojej sieci. Spróbuj ponownie później lub skontaktuj się z administratorem, jeśli jest to błąd.",
"Error" : "Błąd",
+ "Default quota" : "Domyślny limit",
"Account documentation" : "Dokumentacja konta",
"Administration documentation" : "Dokumentacja administracyjna",
+ "Documentation" : "Dokumentacja",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Zasoby pomocy i prywatności w Nextcloud",
"General documentation" : "Dokumentacja ogólna",
@@ -737,6 +500,7 @@ OC.L10N.register(
"SMTP Password" : "Hasło SMTP",
"Save" : "Zapisz",
"Test and verify email settings" : "Przetestuj i zweryfikuj ustawienia poczty e-mail",
+ "Send email" : "Wyślij e-mail",
"Security & setup warnings" : "Ostrzeżenia bezpieczeństwa i konfiguracji",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Poprawna konfiguracja jest ważna dla bezpieczeństwa i wydajności Twojej instancji. W celach pomocniczych przeprowadzane jest automatyczne sprawdzanie. Więcej informacji możesz znaleźć w dokumentacji.",
"All checks passed." : "Wszystkie testy konfiguracji zakończyły się pomyślnie.",
@@ -756,43 +520,10 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Użyj drugiego zabezpieczenia oprócz hasła, aby zwiększyć bezpieczeństwo konta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Jeśli używasz aplikacji innych firm do łączenia się z Nextcloud, upewnij się, że utworzyłeś i skonfigurowałeś hasło aplikacji dla każdej przed włączeniem uwierzytelniania dwuskładnikowego.",
"Logged in account must be a subadmin" : "Zalogowane konto musi być subadminem",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "W bazie danych brakuje niektórych indeksów. Ze względu na fakt, że dodanie indeksów do dużych tabel może zająć trochę czasu, dlatego nie zostały one dodane automatycznie. Brakujące indeksy można dodać ręcznie w trakcie pracy instancji uruchamiając \"occ db:add-missing-indices\". Po dopisaniu indeksów zapytania do tabel będą one znacznie szybsze.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Aby umożliwić wykonanie tego sprawdzenia, upewnij się, że serwer WWW może połączyć się sam ze sobą. Musi on być w stanie rozpoznać i połączyć się przynajmniej z jedną z wartości 'trusted_domains' lub 'overwrite.cli.url'. Błąd ten może być wynikiem niezgodności DNS po stronie serwera lub reguły zapory sieciowej wychodzącej.",
"File locking" : "Blokowanie plików",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Blokowanie plików transakcyjnych jest wyłączone, może to prowadzić do problemów z przepustowością. Włącz \"filelocking.enabled\" w config.php, aby uniknąć tych problemów.",
"The PHP memory limit is below the recommended value of %s." : "Limit pamięci PHP jest poniżej zalecanej wartości %s",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Aktualnie używasz PHP w wersji %s. PHP 8.0 jest teraz przestarzałe w Nextcloud 27. Nextcloud 28 może wymagać co najmniej PHP 8.1. Jak najszybciej zaktualizuj do jednej z oficjalnie obsługiwanych wersji PHP dostarczonych przez PHP Group",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Używana jest wersja MariaDB \"%s\". Nextcloud 21 i nowsze wersje nie obsługują tej wersji i wymagają MariaDB 10.2 lub nowszej.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Używana jest wersja MySQL \"%s\". Nextcloud 21 i nowsze wersje nie obsługują tej wersji i wymagają MySQL 8.0 lub MariaDB 10.2, albo nowszej.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Używana jest wersja PostgreSQL \"%s\". Nextcloud 21 i nowsze wersje nie obsługują tej wersji i wymagają PostgreSQL 9.6 lub nowszej.",
- "Speech-To-Text" : "Mowa na tekst",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "\"Mowa na tekst\" może być zaimplementowana przez różne aplikacje. Tutaj możesz ustawić, która aplikacja ma być używana.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Żadna z aktualnie zainstalowanych aplikacji nie obsługuje funkcji \"mowy na tekst\".",
- "None of your currently installed apps provide Text processing functionality" : "Żadna z aktualnie zainstalowanych aplikacji nie udostępnia funkcji przetwarzania tekstu.",
- "Set default expiration date for shares" : "Ustaw domyślną datę ważności udostępnień",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika w oknie udostępniania i zezwalaj na dostęp do systemowej książki adresowej",
- "Your biography" : "Twoja biografia",
- "You are using <strong>{usage}</strong>" : "Używasz <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Używasz <strong>{usage}</strong> z <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Ustaw menedżera użytkowników",
- "Username will be autogenerated" : "Nazwa użytkownika zostanie wygenerowana automatycznie",
- "Username (required)" : "Nazwa użytkownika (wymagane)",
- "New user" : "Nowy użytkownik",
- "Groups (required)" : "Grupy (wymagane)",
- "Set user groups" : "Ustaw grupy użytkownika",
- "Administered groups" : "Administrowane grupy",
- "Set user as admin for …" : "Ustaw użytkownika administratorem dla...",
- "Set user quota" : "Ustaw limit użytkownika",
- "Add new user" : "Dodaj nowego użytkownika",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} użytkownik…","{userCount} użytkowników…","{userCount} użytkowników…","{userCount} użytkowników…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} użytkownik","{userCount} użytkowników","{userCount} użytkowników","{userCount} użytkowników"],
- "Loading users …" : "Wczytywanie użytkowników ...",
- "Username" : "Nazwa użytkownika",
- "User backend" : "Moduł użytkownika",
- "User actions" : "Działania użytkownika",
- "Add user to group" : "Dodaj użytkownika do grupy",
- "Server error while trying to add WebAuthn device" : "Błąd serwera podczas próby dodania urządzenia WebAuthn",
- "Name your device" : "Nazwa twojego urządzenia",
- "Active accounts" : "Aktywne konta",
- "Follow us on Twitter" : "Bądź z nami na Twitterze"
+ "Set default expiration date for shares" : "Ustaw domyślną datę ważności udostępnień"
},
"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/settings/l10n/pl.json b/apps/settings/l10n/pl.json
index ae8760cdedf..5aacea84e46 100644
--- a/apps/settings/l10n/pl.json
+++ b/apps/settings/l10n/pl.json
@@ -291,6 +291,8 @@
"Enforce password protection" : "Wymuszaj zabezpieczenie hasłem",
"Exclude groups from password requirements" : "Wyklucz grupy z wymagań dotyczących haseł",
"Exclude groups from creating link shares" : "Wyklucz grupy z tworzenia udostępnień linków",
+ "Shares with custom tokens will continue to be accessible after this setting has been disabled" : "Udostępnienia z niestandardowymi tokenami będą nadal dostępne po wyłączeniu tego ustawienia",
+ "Shares with guessable tokens may be accessed easily" : "Dostęp do udostępnień z tokenami, które można zgadywać, jest łatwy",
"Limit sharing based on groups" : "Ogranicz udostępnianie w oparciu o grupy",
"Allow sharing for everyone (default)" : "Zezwalaj wszystkim na udostępnianie (domyślnie)",
"Exclude some groups from sharing" : "Wyklucz niektóre grupy z udostępniania",
@@ -309,7 +311,7 @@
"Set default expiration date for shares via link or mail" : "Ustaw domyślną datę wygaśnięcia udostępnień za pośrednictwem linku lub poczty",
"Default expiration time of shares in days" : "Domyślny czas wygaśnięcia udostępnień w dniach",
"Privacy settings for sharing" : "Ustawienia prywatności dotyczące udostępniania",
- "Allow account name autocompletion in share dialog and allow access to the system address book" : "Zezwól na automatyczne uzupełnianie nazwy konta w oknie udostępniania i zezwól na dostęp do systemowej książki adresowej",
+ "Allow account name autocompletion in share dialog and allow access to the system address book" : "Zezwalaj na automatyczne uzupełnianie nazwy konta w oknie udostępniania i zezwalaj na dostęp do systemowej książki adresowej",
"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.",
"Restrict account name autocompletion and system address book access to users within the same groups" : "Ogranicz autouzupełnianie nazwy konta i dostęp do systemowej książki adresowej do użytkowników w tych samych grupach",
"Restrict account name autocompletion to users based on phone number integration" : "Ogranicz automatyczne uzupełnianie nazwy konta do użytkowników w oparciu o integrację numeru telefonu",
@@ -359,73 +361,6 @@
"Could not load section content from app store." : "Nie można wczytać zawartości sekcji ze sklepu z aplikacjami.",
"Loading" : "Wczytywanie",
"Fetching the latest news…" : "Pobieram najnowsze wiadomości…",
- "Carousel" : "Karuzela",
- "Previous slide" : "Poprzedni slajd",
- "Next slide" : "Następny slajd",
- "Choose slide to display" : "Wybierz slajd do wyświetlenia",
- "{index} of {total}" : "{index} z {total}",
- "Daemon" : "Demon",
- "Type" : "Rodzaj",
- "Display Name" : "Wyświetlana nazwa",
- "GPUs support" : "Obsługa procesorów graficznych",
- "Compute device" : "Urządzenie obliczeniowe",
- "Learn more" : "Dowiedz się więcej",
- "Confirm" : "Potwierdź",
- "Cancel" : "Anuluj",
- "Description" : "Opis",
- "View in store" : "Zobacz w sklepie",
- "Visit website" : "Odwiedź stronę",
- "Usage documentation" : "Dokumentacja użytkowania",
- "Admin documentation" : "Dokumentacja administratora",
- "Developer documentation" : "Dokumentacja dewelopera",
- "Details" : "Szczegóły",
- "All" : "Wszystkie",
- "Limit app usage to groups" : "Ogranicz korzystanie z aplikacji dla grup",
- "No results" : "Brak wyników",
- "Update to {version}" : "Zaktualizuj do {version}",
- "Default Deploy daemon is not accessible" : "Domyślny demon wdrażania jest niedostępny",
- "Delete data on remove" : "Usuń dane przy usuwaniu",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej minimalnej wersji Nextcloud. W przyszłości będzie to błąd.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej maksymalnej wersji Nextcloud. W przyszłości będzie to błąd.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ta aplikacja nie może być zainstalowana, ponieważ nie są spełnione następujące zależności:",
- "Latest updated" : "Ostatnia aktualizacja",
- "Author" : "Autor",
- "Categories" : "Kategorie",
- "Resources" : "Zasoby",
- "Documentation" : "Dokumentacja",
- "Interact" : "Współpraca",
- "Report a bug" : "Zgłoś błąd",
- "Request feature" : "Zgłoś propozycję",
- "Ask questions or discuss" : "Zadaj pytanie lub weź udział w dyskusji",
- "Rate the app" : "Oceń aplikację",
- "Rate" : "Oceń",
- "Changelog" : "Dziennik zmian",
- "Google Chrome for Android" : "Google Chrome dla Android",
- "{productName} iOS app" : "Aplikacja {productName} na iOS",
- "{productName} Android app" : "Aplikacja {productName} na Android",
- "{productName} Talk for iOS" : "{productName} Talk dla iOS",
- "{productName} Talk for Android" : "{productName} Talk dla Androida",
- "Sync client" : "Synchronizuj klienta",
- "This session" : "Ta sesja",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nazwa urządzenia",
- "Cancel renaming" : "Anuluj zmianę nazwy",
- "Save new name" : "Zapisz nową nazwę",
- "Marked for remote wipe" : "Oznaczone do zdalnego czyszczenia",
- "Device settings" : "Ustawienia urządzenia",
- "Allow filesystem access" : "Zezwalaj na dostęp do systemu plików",
- "Rename" : "Zmień nazwę",
- "Revoke" : "Cofnij",
- "Wipe device" : "Wyczyść urządzenie",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Unieważnienie tego tokena uniemożliwi czyszczenie urządzenia, jeśli jeszcze nie zostało rozpoczęte.",
- "Device" : "Urządzenie",
- "Last activity" : "Ostatnia aktywność",
- "Devices & sessions" : "Urządzenia i sesje",
- "Web, desktop and mobile clients currently logged in to your account." : "Klienci internetowi, desktopowi i mobilni aktualnie zalogowani na Twoim koncie.",
- "Error while creating device token" : "Błąd podczas tworzenia tokena urządzenia",
- "App name" : "Nazwa aplikacji",
- "Create new app password" : "Utwórz nowe hasło aplikacji",
"App password copied!" : "Hasło do aplikacji skopiowane!",
"Copy app password" : "Skopiuj hasło do aplikacji",
"Login name copied!" : "Nazwa logowania została skopiowana!",
@@ -453,6 +388,7 @@
"Unable to update profile default setting" : "Nie można zaktualizować domyślnych ustawień profilu",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Włącz lub wyłącz profil domyślnie dla nowych kont.",
+ "Password confirmation is required" : "Wymagane jest potwierdzenie hasła",
"Failed to save setting" : "Nie udało się zapisać ustawienia",
"{app}'s declarative setting field: {name}" : "Pole ustawień deklaratywnych aplikacji {app}: {name}",
"Unable to update server side encryption config" : "Nie można zaktualizować konfiguracji szyfrowania po stronie serwera",
@@ -469,190 +405,11 @@
"Be aware that encryption always increases the file size." : "Należy pamiętać, że szyfrowanie zawsze zwiększa rozmiar pliku.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Zawsze dobrze jest regularnie wykonywać kopie zapasowe swoich danych. W przypadku szyfrowania upewnij się, aby kopie zapasowe kluczy szyfrowania były wraz z danymi.",
"This is the final warning: Do you really want to enable encryption?" : "To ostatnie ostrzeżenie: Czy na pewno chcesz włączyć szyfrowanie?",
- "Failed to remove group \"{group}\"" : "Nie udało się usunąć grupy \"{group}\"",
"Please confirm the group removal" : "Potwierdź usunięcie grupy",
+ "Cancel" : "Anuluj",
+ "Confirm" : "Potwierdź",
"Submit" : "Wyślij",
"Rename group" : "Zmień nazwę grupy",
- "Remove group" : "Usuń grupę",
- "Current password" : "Bieżące hasło",
- "New password" : "Nowe hasło",
- "Change password" : "Zmień hasło",
- "Choose your profile picture" : "Wybierz swoje zdjęcie profilowe",
- "Please select a valid png or jpg file" : "Wybierz prawidłowy plik png lub jpg",
- "Error setting profile picture" : "Błąd podczas ustawiania zdjęcia profilowego",
- "Error cropping profile picture" : "Błąd przycinania zdjęcia profilowego",
- "Error saving profile picture" : "Błąd podczas zapisywania zdjęcia profilowego",
- "Error removing profile picture" : "Błąd podczas usuwania zdjęcia profilowego",
- "Your profile picture" : "Twoje zdjęcie profilowe",
- "Upload profile picture" : "Wyślij zdjęcie profilowe",
- "Choose profile picture from Files" : "Wybierz zdjęcie profilowe z Plików",
- "Remove profile picture" : "Usuń zdjęcie profilowe",
- "The file must be a PNG or JPG" : "Plik musi być w formacie PNG lub JPG",
- "Picture provided by original account" : "Zdjęcie dostarczone przez oryginalne konto",
- "Set as profile picture" : "Ustaw jako zdjęcie profilowe",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Pamiętaj, że aktualizacja Twojego zdjęcia profilowego może potrwać do 24 godzin.",
- "Unable to update date of birth" : "Nie można zapisać daty urodzin",
- "Enter your date of birth" : "Podaj datę swoich urodzin",
- "You are a member of the following groups:" : "Należysz do następujących grup:",
- "Your full name" : "Twoja pełna nazwa",
- "Email options" : "Opcje e-mail",
- "Remove primary email" : "Usuń podstawowy adres e-mail",
- "Delete email" : "Usuń e-mail",
- "This address is not confirmed" : "Ten adres nie jest potwierdzony",
- "Unset as primary email" : "Usuń jako podstawowy adres e-mail",
- "Set as primary email" : "Ustaw jako podstawowy adres e-mail",
- "Additional email address {index}" : "Dodatkowy adres e-mail {index}",
- "Unable to delete primary email address" : "Nie można usunąć głównego adresu e-mail",
- "Unable to update primary email address" : "Nie można zaktualizować głównego adresu e-mail",
- "Unable to add additional email address" : "Nie można dodać dodatkowego adresu e-mail",
- "Unable to update additional email address" : "Nie można zaktualizować dodatkowego adresu e-mail",
- "Unable to delete additional email address" : "Nie można usunąć dodatkowego adresu e-mail",
- "Primary email for password reset and notifications" : "Główny adres e-mail do resetowania hasła i powiadomień",
- "No email address set" : "Brak adresu e-mail",
- "Your handle" : "Twoja ksywka",
- "Unable to update first day of week" : "Nie można zaktualizować pierwszego dnia tygodnia",
- "Day to use as the first day of week" : "Dzień używany jako pierwszy dzień tygodnia",
- "Your headline" : "Twój nagłówek",
- "Unable to update language" : "Nie można zaktualizować języka",
- "Languages" : "Języki",
- "Help translate" : "Pomóż w tłumaczeniu",
- "No language set" : "Nie ustawiono języka",
- "Unable to update locale" : "Nie można zaktualizować regionu",
- "Locales" : "Ustawienia lokalizacyjne",
- "Week starts on {firstDayOfWeek}" : "Tydzień zaczyna się w {firstDayOfWeek}",
- "No locale set" : "Nie ustawiono regionu",
- "Your city" : "Miasto",
- "Your organisation" : "Twoja organizacja",
- "Your phone number" : "Twój numer telefonu",
- "Edit your Profile visibility" : "Edycja widoczności swojego profilu",
- "Unable to update profile enabled state" : "Nie można zaktualizować stanu włączenia profilu",
- "Enable profile" : "Włącz profil",
- "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." : "Bardziej restrykcyjne ustawienie widoczności lub zakresu jest przestrzegane w Twoim profilu. Na przykład, jeśli widoczność jest ustawiona na \"Pokaż wszystkim\", a zakres jest ustawiony na \"Prywatny\", to przestrzegany jest \"Prywatny\".",
- "Unable to update visibility of {displayId}" : "Nie można zaktualizować widoczności {displayId}",
- "she/her" : "ona/jej",
- "he/him" : "on/jego",
- "they/them" : "oni/ich",
- "Your role" : "Twoja rola społeczna",
- "Your X (formerly Twitter) handle" : "Twój przeniesiony X (dawniej Twitter).",
- "Your website" : "Twoja strona WWW",
- "Invalid value" : "Niewłaściwa wartość",
- "Unable to update {property}" : "Nie można zaktualizować {property}",
- "No {property} set" : "Nie ustawiono {property}",
- "Change scope level of {property}, current scope is {scope}" : "Zmień poziom zakresu {property}, obecny zakres to {scope}",
- "Unable to update federation scope of the primary {property}" : "Nie można zaktualizować zakresu federacji podstawowej {property}",
- "Unable to update federation scope of additional {property}" : "Nie można zaktualizować zakresu federacji dodatkowego {property}",
- "Add additional email" : "Dodaj dodatkowy e-mail",
- "Add" : "Dodaj",
- "Create" : "Utwórz",
- "Change" : "Zmień",
- "Delete" : "Usuń",
- "Reshare" : "Udostępnianie innym",
- "Default language" : "Domyślny język",
- "Common languages" : "Popularne języki",
- "Other languages" : "Inne języki",
- "Password change is disabled because the master key is disabled" : "Zmiana hasła jest zablokowana z powodu włączenia klucza głównego.",
- "No accounts" : "Brak kont",
- "Loading accounts …" : "Wczytywanie kont...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista kont. Ta lista nie jest w pełni renderowana ze względu na wydajność. Konta będą renderowane podczas poruszania się po liście.",
- "Manager" : "Menedżer",
- "Set line manager" : "Ustaw menedżera liniowego",
- "Account name will be autogenerated" : "Nazwa konta zostanie wygenerowana automatycznie",
- "Account name (required)" : "Nazwa konta (wymagane)",
- "New account" : "Nowe konto",
- "Display name" : "Nazwa wyświetlana",
- "Either password or email is required" : "Wymagane jest hasło lub adres e-mail",
- "Password (required)" : "Hasło (wymagane)",
- "Email (required)" : "E-mail (wymagany)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Członek następujących grup (wymagane)",
- "Member of the following groups" : "Członek następujących grup",
- "Set account groups" : "Ustaw grupy konta",
- "Admin of the following groups" : "Administrator następujących grup",
- "Set account as admin for …" : "Ustaw konto jako administrator dla…",
- "Quota" : "Limit",
- "Set account quota" : "Ustaw limit konta",
- "Language" : "Język",
- "Set default language" : "Ustaw domyślny język",
- "Add new account" : "Dodaj nowe konto",
- "Total rows summary" : "Podsumowanie wszystkich wierszy",
- "Scroll to load more rows" : "Przewiń, aby wczytać więcej wierszy",
- "Password or insufficient permissions message" : "Komunikat o haśle lub niewystarczających uprawnieniach",
- "Avatar" : "Awatar",
- "Account name" : "Nazwa konta",
- "Group admin for" : "Administrator grupy",
- "Account backend" : "Zaplecze konta",
- "Storage location" : "Lokalizacja magazynu",
- "Last login" : "Ostatnio zalogowany",
- "Account actions" : "Czynności na koncie",
- "{size} used" : "Wykorzystane: {size}",
- "Delete account" : "Usuń konto",
- "Disconnect all devices and delete local data" : "Odłącz wszystkie urządzenia i usuń dane lokalne",
- "Disable account" : "Wyłącz konto",
- "Enable account" : "Włącz konto",
- "Resend welcome email" : "Wyślij ponownie wiadomość powitalną",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "W przypadku zagubienia urządzenia lub opuszczenia organizacji można zdalnie wyczyścić dane Nextcloud ze wszystkich urządzeń powiązanych z {userid}. Działa tylko wtedy, gdy urządzenia są podłączone do Internetu.",
- "Remote wipe of devices" : "Zdalne czyszczenie urządzeń",
- "Wipe {userid}'s devices" : "Wyczyść urządzenia {userid}",
- "Wiped {userid}'s devices" : "Wyczyszczono urządzenia użytkownika {userid}",
- "Failed to update line manager" : "Nie udało się zaktualizować menedżera liniowego",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Całkowicie usuń konto {userid}, w tym wszystkie pliki osobiste, dane aplikacji itp.",
- "Account deletion" : "Usunięcie konta",
- "Delete {userid}'s account" : "Usuń konto {userid}",
- "Display name was successfully changed" : "Nazwa wyświetlana została zmieniona",
- "Password was successfully changed" : "Hasło zostało zmienione",
- "Email was successfully changed" : "Adres e-mail został pomyślnie zmieniony",
- "Welcome mail sent!" : "Wysłano wiadomość powitalną!",
- "Loading account …" : "Wczytywanie konta...",
- "Change display name" : "Zmiana wyświetlanej nazwy",
- "Set new password" : "Ustaw nowe hasło",
- "You do not have permissions to see the details of this account" : "Nie masz uprawnień, aby zobaczyć szczegóły tego konta",
- "Set new email address" : "Ustaw nowy adres e-mail",
- "Add account to group" : "Dodaj konto do grupy",
- "Set account as admin for" : "Ustaw konto jako administrator dla",
- "Select account quota" : "Wybierz limit konta",
- "Set the language" : "Ustaw język",
- "Toggle account actions menu" : "Przełącz menu działań na koncie",
- "Done" : "Gotowe",
- "Edit" : "Edycja",
- "Account management settings" : "Ustawienia zarządzania kontami",
- "Visibility" : "Widoczne",
- "Show language" : "Pokaż język",
- "Show account backend" : "Pokaż moduł konta",
- "Show storage path" : "Pokaż ścieżkę przechowywania",
- "Show last login" : "Pokaż ostatnie logowanie",
- "Sorting" : "Sortowanie",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Konfiguracja systemu wymusza sortowanie grup według nazwy. Wyłącza to również wyświetlanie liczby członków.",
- "Group list sorting" : "Sortowanie listy grup",
- "By member count" : "Według liczby członków",
- "By name" : "Według nazwy",
- "Send email" : "Wyślij e-mail",
- "Send welcome email to new accounts" : "Wyślij wiadomość powitalną do nowych kont",
- "Defaults" : "Domyślne",
- "Default quota" : "Domyślny limit",
- "Select default quota" : "Wybierz domyślny limit",
- "Server error while trying to complete WebAuthn device registration" : "Błąd serwera podczas próby ukończenia rejestracji urządzenia WebAuthn",
- "Passwordless authentication requires a secure connection." : "Uwierzytelnianie bez hasła wymaga bezpiecznego połączenia.",
- "Add WebAuthn device" : "Dodaj urządzenie WebAuthn",
- "Please authorize your WebAuthn device." : "Autoryzuj swoje urządzenie WebAuthn.",
- "Adding your device …" : "Dodawanie urządzenia…",
- "Unnamed device" : "Nienazwane urządzenie",
- "Passwordless Authentication" : "Uwierzytelnianie bez hasła",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Skonfiguruj konto do uwierzytelniania bez hasła zgodnie ze standardem FIDO2.",
- "No devices configured." : "Brak skonfigurowanych urządzeń.",
- "The following devices are configured for your account:" : "Dla Twojego konta skonfigurowane są następujące urządzenia:",
- "Your browser does not support WebAuthn." : "Twoja przeglądarka nie obsługuje WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Jako administrator możesz zoptymalizować ustawienia udostępniania. Szczegółowe informacje znajdziesz w dokumentacji.",
- "You need to enable the File sharing App." : "Musisz włączyć aplikację do udostępniania plików.",
- "App Store" : "Sklep aplikacji",
- "Loading app list" : "Wczytywanie listy aplikacji",
- "Loading categories" : "Wczytywanie kategorii",
- "Developer documentation ↗" : "Dokumentacja deweloperska ↗",
- "Version {version}, {license}-licensed" : "Wersja {version}, {license}-licencjonowana",
- "Version {version}" : "Wersja {version}",
- "All accounts" : "Wszystkie konta",
- "Admins" : "Administratorzy",
- "Account group: {group}" : "Grupa kont: {group}",
- "Account management" : "Zarządzanie kontem",
"Sending…" : "Wysyłam…",
"Email sent" : "E-mail został wysłany",
"Location" : "Lokalizacja",
@@ -661,6 +418,7 @@
"Date of birth" : "Data urodzin",
"Full name" : "Pełna nazwa",
"Additional email" : "Dodatkowy e-mail",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (np. Mastodon)",
"Headline" : "Nagłówek",
"Organisation" : "Organizacja",
@@ -670,6 +428,7 @@
"X (formerly Twitter)" : "X (dawniej Twitter)",
"Website" : "Strona internetowa",
"Profile visibility" : "Widoczność profilu",
+ "Language" : "Język",
"Locale" : "Region",
"First day of week" : "Pierwszy dzień tygodnia",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Niedostępne, ponieważ ta właściwość jest wymagana do podstawowych funkcji, w tym udostępniania pliku i zaproszeń do kalendarza",
@@ -686,13 +445,15 @@
"Show to everyone" : "Pokaż wszystkim",
"Show to logged in accounts only" : "Pokaż tylko zalogowanym kontom",
"Hide" : "Ukryj",
+ "Update to {version}" : "Zaktualizuj do {version}",
"Health checking" : "Sprawdzanie stanu zdrowia",
"Deploy and Enable" : "Wdróż i włącz",
"Download and enable" : "Pobierz i włącz",
"Disable" : "Wyłącz",
- "Allow untested app" : "Zezwól na nietestowane aplikacje",
+ "Allow untested app" : "Zezwalaj na nietestowane aplikacje",
"The app will be downloaded from the App Store" : "Aplikacja zostanie pobrana ze sklepu z aplikacjami",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ta aplikacja jest niezgodna z wersją Nextcloud. Przy dalszej kontynuacji, możesz pozwolić na zainstalowanie tej aplikacji. Pamiętaj, że aplikacja może nie działać zgodnie z oczekiwaniami.",
+ "{size} used" : "Wykorzystane: {size}",
"Unknown" : "Nieznany",
"Never" : "Nigdy",
"Could not register device: Network error" : "Nie można zarejestrować urządzenia: błąd sieci",
@@ -711,8 +472,10 @@
"Could not set group sorting" : "Nie można ustawić sortowania grupy",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zbyt wiele żądań z Twojej sieci. Spróbuj ponownie później lub skontaktuj się z administratorem, jeśli jest to błąd.",
"Error" : "Błąd",
+ "Default quota" : "Domyślny limit",
"Account documentation" : "Dokumentacja konta",
"Administration documentation" : "Dokumentacja administracyjna",
+ "Documentation" : "Dokumentacja",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Zasoby pomocy i prywatności w Nextcloud",
"General documentation" : "Dokumentacja ogólna",
@@ -735,6 +498,7 @@
"SMTP Password" : "Hasło SMTP",
"Save" : "Zapisz",
"Test and verify email settings" : "Przetestuj i zweryfikuj ustawienia poczty e-mail",
+ "Send email" : "Wyślij e-mail",
"Security & setup warnings" : "Ostrzeżenia bezpieczeństwa i konfiguracji",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Poprawna konfiguracja jest ważna dla bezpieczeństwa i wydajności Twojej instancji. W celach pomocniczych przeprowadzane jest automatyczne sprawdzanie. Więcej informacji możesz znaleźć w dokumentacji.",
"All checks passed." : "Wszystkie testy konfiguracji zakończyły się pomyślnie.",
@@ -754,43 +518,10 @@
"Use a second factor besides your password to increase security for your account." : "Użyj drugiego zabezpieczenia oprócz hasła, aby zwiększyć bezpieczeństwo konta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Jeśli używasz aplikacji innych firm do łączenia się z Nextcloud, upewnij się, że utworzyłeś i skonfigurowałeś hasło aplikacji dla każdej przed włączeniem uwierzytelniania dwuskładnikowego.",
"Logged in account must be a subadmin" : "Zalogowane konto musi być subadminem",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "W bazie danych brakuje niektórych indeksów. Ze względu na fakt, że dodanie indeksów do dużych tabel może zająć trochę czasu, dlatego nie zostały one dodane automatycznie. Brakujące indeksy można dodać ręcznie w trakcie pracy instancji uruchamiając \"occ db:add-missing-indices\". Po dopisaniu indeksów zapytania do tabel będą one znacznie szybsze.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Aby umożliwić wykonanie tego sprawdzenia, upewnij się, że serwer WWW może połączyć się sam ze sobą. Musi on być w stanie rozpoznać i połączyć się przynajmniej z jedną z wartości 'trusted_domains' lub 'overwrite.cli.url'. Błąd ten może być wynikiem niezgodności DNS po stronie serwera lub reguły zapory sieciowej wychodzącej.",
"File locking" : "Blokowanie plików",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Blokowanie plików transakcyjnych jest wyłączone, może to prowadzić do problemów z przepustowością. Włącz \"filelocking.enabled\" w config.php, aby uniknąć tych problemów.",
"The PHP memory limit is below the recommended value of %s." : "Limit pamięci PHP jest poniżej zalecanej wartości %s",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Aktualnie używasz PHP w wersji %s. PHP 8.0 jest teraz przestarzałe w Nextcloud 27. Nextcloud 28 może wymagać co najmniej PHP 8.1. Jak najszybciej zaktualizuj do jednej z oficjalnie obsługiwanych wersji PHP dostarczonych przez PHP Group",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Używana jest wersja MariaDB \"%s\". Nextcloud 21 i nowsze wersje nie obsługują tej wersji i wymagają MariaDB 10.2 lub nowszej.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Używana jest wersja MySQL \"%s\". Nextcloud 21 i nowsze wersje nie obsługują tej wersji i wymagają MySQL 8.0 lub MariaDB 10.2, albo nowszej.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Używana jest wersja PostgreSQL \"%s\". Nextcloud 21 i nowsze wersje nie obsługują tej wersji i wymagają PostgreSQL 9.6 lub nowszej.",
- "Speech-To-Text" : "Mowa na tekst",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "\"Mowa na tekst\" może być zaimplementowana przez różne aplikacje. Tutaj możesz ustawić, która aplikacja ma być używana.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Żadna z aktualnie zainstalowanych aplikacji nie obsługuje funkcji \"mowy na tekst\".",
- "None of your currently installed apps provide Text processing functionality" : "Żadna z aktualnie zainstalowanych aplikacji nie udostępnia funkcji przetwarzania tekstu.",
- "Set default expiration date for shares" : "Ustaw domyślną datę ważności udostępnień",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika w oknie udostępniania i zezwalaj na dostęp do systemowej książki adresowej",
- "Your biography" : "Twoja biografia",
- "You are using <strong>{usage}</strong>" : "Używasz <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Używasz <strong>{usage}</strong> z <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Ustaw menedżera użytkowników",
- "Username will be autogenerated" : "Nazwa użytkownika zostanie wygenerowana automatycznie",
- "Username (required)" : "Nazwa użytkownika (wymagane)",
- "New user" : "Nowy użytkownik",
- "Groups (required)" : "Grupy (wymagane)",
- "Set user groups" : "Ustaw grupy użytkownika",
- "Administered groups" : "Administrowane grupy",
- "Set user as admin for …" : "Ustaw użytkownika administratorem dla...",
- "Set user quota" : "Ustaw limit użytkownika",
- "Add new user" : "Dodaj nowego użytkownika",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} użytkownik…","{userCount} użytkowników…","{userCount} użytkowników…","{userCount} użytkowników…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} użytkownik","{userCount} użytkowników","{userCount} użytkowników","{userCount} użytkowników"],
- "Loading users …" : "Wczytywanie użytkowników ...",
- "Username" : "Nazwa użytkownika",
- "User backend" : "Moduł użytkownika",
- "User actions" : "Działania użytkownika",
- "Add user to group" : "Dodaj użytkownika do grupy",
- "Server error while trying to add WebAuthn device" : "Błąd serwera podczas próby dodania urządzenia WebAuthn",
- "Name your device" : "Nazwa twojego urządzenia",
- "Active accounts" : "Aktywne konta",
- "Follow us on Twitter" : "Bądź z nami na Twitterze"
+ "Set default expiration date for shares" : "Ustaw domyślną datę ważności udostępnień"
},"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/settings/l10n/pt_BR.js b/apps/settings/l10n/pt_BR.js
index 6fdd9c842fe..865d7bd23a5 100644
--- a/apps/settings/l10n/pt_BR.js
+++ b/apps/settings/l10n/pt_BR.js
@@ -118,7 +118,7 @@ OC.L10N.register(
"Sharing" : "Compartilhamento",
"Availability" : "Disponibilidade",
"Calendar" : "Calendário",
- "Personal info" : "Informação pessoal",
+ "Personal info" : "Informações pessoais",
"Mobile & desktop" : "Móvel & desktop",
"Email server" : "Servidor de e-mail",
"Mail Providers" : "Provedores de E-mail",
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "Cabeçalhos HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- O cabeçalho HTTP `%1$s` não está definido como `%2$s`. Alguns recursos podem não funcionar corretamente, portanto, é recomendado ajustar esta configuração de acordo.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- O cabeçalho HTTP `%1$s` não está definido como `%2$s`. Este é um possível risco à segurança ou à privacidade, portanto, é recomendável ajustar esta configuração de acordo.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- O cabeçalho HTTP `%1$s` não contém `%2$s`. Este é um possível risco à segurança ou à privacidade, portanto, é recomendável ajustar esta configuração de acordo.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- O cabeçalho HTTP `%1$s` não está definido como `%2$s`, `%3$s`, `%4$s`, `%5$s` ou `%6$s`. Isso pode vazar informações do referenciador. Consulte a {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- O cabeçalho HTTP `Strict-Transport-Security` não está definido para pelo menos `%d` segundos (valor atual: `%d`). Para aumentar a segurança, é recomendável usar uma política HSTS longa.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- O cabeçalho HTTP `Strict-Transport-Security` está malformado: `%s`. Para aumentar a segurança, é recomendável ativar o HSTS.",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "Arquitetura",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Parece que você está executando uma versão PHP de 32 bits. Nextcloud precisa de 64 bits para funcionar bem. Atualize seu sistema operacional e PHP para 64 bits!",
+ "Task Processing pickup speed" : "Velocidade de inicio do Processamento de Tarefas",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Nenhuma tarefa agendada na última %n hora.","Nenhuma tarefa agendada no último %n de horas.","Nenhuma tarefa agendada nas últimas %n horas."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["A velocidade de inicio do processamento de tarefas tem sido boa na última %n hora.","A velocidade de inicio do processamento de tarefas tem sido boa nas últimas %n horas.","A velocidade de inicio do processamento de tarefas tem sido boa nas últimas %n horas."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["A velocidade de inicio do processamento de tarefas tem sido lenta nas última %n hora. Muitas tarefas levaram mais de 4 minutos para serem iniciadas. Considere a possibilidade de configurar um trabalhador para processar tarefas em segundo plano.","A velocidade de inicio do processamento de tarefas tem sido lenta nas últimas %n horas. Muitas tarefas levaram mais de 4 minutos para serem iniciadas. Considere a possibilidade de configurar um trabalhador para processar tarefas em segundo plano.","A velocidade de inicio do processamento de tarefas tem sido lenta nas últimas %n horas. Muitas tarefas levaram mais de 4 minutos para serem iniciadas. Considere a possibilidade de configurar um trabalhador para processar tarefas em segundo plano."],
"Temporary space available" : "Espaço temporário disponível",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Erro ao verificar o caminho temporário do PHP - ele não foi configurado corretamente para um diretório. Valor retornado:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "A função PHP \"disk_free_space\" está desativada, o que impede a verificação de espaço suficiente nos diretórios temporários.",
@@ -426,7 +429,7 @@ OC.L10N.register(
"Actions" : "Ações",
"Results from other categories" : "Resultados de outras categorias",
"No apps found for your version" : "Nenhum aplicativo encontrado para a sua versão",
- "_%n app has an update available_::_%n apps have an update available_" : ["%n aplicativo tem atualização disponível","%n aplicativos tem atualização disponível","%n aplicativos tem atualização disponível"],
+ "_%n app has an update available_::_%n apps have an update available_" : ["%n aplicativo tem atualização disponível","%n de aplicativos tem atualização disponível","%n aplicativos tem atualização disponível"],
"_Update_::_Update all_" : ["Atualizar","Atualizar todos","Atualizar todos"],
"Failed to load groups" : "Falha ao carregar grupos",
"Failed to create group" : "Falha ao criar grupo",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Não foi possível carregar o conteúdo da seção da loja de aplicativos.",
"Loading" : "Carregando",
"Fetching the latest news…" : "Buscando as últimas notícias…",
- "Carousel" : "Carrossel",
- "Previous slide" : "Slide anterior",
- "Next slide" : "Próximo slide",
- "Choose slide to display" : "Escolher slide a ser exibido",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon de Deploy",
- "Type" : "Tipo",
- "Display Name" : "Nome de Exibição",
- "GPUs support" : "Suporte a GPUs",
- "Compute device" : "Dispositivo de computação",
- "Advanced deploy options" : "Opções avançadas de implantação",
- "Edit ExApp deploy options before installation" : "Edite as opções de implantação do ExApp antes da instalação",
- "Configured ExApp deploy options. Can be set only during installation" : "Opções de implantação do ExApp configuradas. Podem ser definidas apenas durante a instalação",
- "Learn more" : "Saiba mais",
- "Environment variables" : "Variáveis de ambiente",
- "ExApp container environment variables" : "Variáveis de ambiente do contêiner ExApp",
- "No environment variables defined" : "Nenhuma variável de ambiente definida",
- "Mounts" : "Montagens",
- "Define host folder mounts to bind to the ExApp container" : "Definir montagens de pastas no host para vincular ao contêiner do ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Deve existir no host do daemon de Deploy antes da instalação do ExApp",
- "Host path" : "Caminho no host",
- "Container path" : "Caminho no contêiner",
- "Read-only" : "Somente leitura",
- "Remove mount" : "Remover montagem",
- "New mount" : "Nova montagem",
- "Enter path to host folder" : "Digite o caminho para a pasta no host",
- "Enter path to container folder" : "Digite o caminho para a pasta no contêiner",
- "Toggle read-only mode" : "Alternar o modo somente leitura",
- "Confirm adding new mount" : "Confirmar adição da nova montagem",
- "Confirm" : "Confirmar",
- "Cancel adding mount" : "Cancelar a adição de montagem",
- "Cancel" : "Cancelar",
- "Add mount" : "Adicionar montagem",
- "ExApp container mounts" : "Montagens de contêiner ExApp",
- "No mounts defined" : "Nenhuma montagem definida",
- "Description" : "Descrição",
- "View in store" : "Ver na loja",
- "Visit website" : "Visitar website",
- "Usage documentation" : "Documentação de uso",
- "Admin documentation" : "Documentação do administrador",
- "Developer documentation" : "Documentação do desenvolvedor",
- "Details" : "Detalhes",
- "All" : "Todos",
- "Limit app usage to groups" : "Limitar o uso de aplicativos a grupos",
- "No results" : "Sem resultados",
- "Update to {version}" : "Atualizar para {version}",
- "Deploy options" : "Opções de implantação",
- "Default Deploy daemon is not accessible" : "O Daemon de deploy padrão não está acessível.",
- "Delete data on remove" : "Excluir dados ao remover",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui uma versão mínima atribuída para uso no Nextcloud. Isto poderá se converter em um erro no futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui uma versão máxima atribuida para uso no Nextcloud. Isto poderá se converter em um erro no futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado pois as seguintes dependências não forão cumpridas:",
- "Latest updated" : "Última atualização",
- "Author" : "Autor",
- "Categories" : "Categorias ",
- "Resources" : "Recursos",
- "Documentation" : "Documentação",
- "Interact" : "Interagir",
- "Report a bug" : "Relatar um erro",
- "Request feature" : "Solicitar uma funcionalidade",
- "Ask questions or discuss" : "Fazer perguntas ou discutir",
- "Rate the app" : "Avalie o aplicativo",
- "Rate" : "Avaliação",
- "Changelog" : "Changelog",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "Aplicativo {productName} para iOS",
- "{productName} Android app" : "Aplicativo {productName} para Android",
- "{productName} Talk for iOS" : "{productName} Talk para iOS",
- "{productName} Talk for Android" : "{productName} Talk para Android ",
- "Sync client" : "Cliente de sincronização",
- "This session" : "Esta sessão",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nome do dispositivo",
- "Cancel renaming" : "Cancelar renomeação",
- "Save new name" : "Salvar novo nome",
- "Marked for remote wipe" : "Marcado para limpeza remota",
- "Device settings" : "Configuração dos dispositivos",
- "Allow filesystem access" : "Permitir acesso ao sistema de arquivos",
- "Rename" : "Renomear",
- "Revoke" : "Revogar",
- "Wipe device" : "Limpar o dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "A revogação desse token pode impedir o apagamento do seu dispositivo se ele ainda não tiver iniciado o apagamento.",
- "Device" : "Dispositivo",
- "Last activity" : "Última atividade",
- "Devices & sessions" : "Dispositivos & sessões",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, desktop e móvel que estão conectados à sua conta.",
- "Error while creating device token" : "Erro ao criar token de dispositivo",
- "App name" : "Nome do aplicativo",
- "Create new app password" : "Criar nova senha de aplicativo",
"App password copied!" : "Senha do aplicativo copiada!",
"Copy app password" : "Copiar senha do aplicativo",
"Login name copied!" : "Nome de login copiado!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Não foi possível atualizar a configuração padrão do perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Ativar ou desativar o perfil por padrão para novas contas.",
+ "Password confirmation is required" : "A confirmação da senha é necessária",
"Failed to save setting" : "Falha ao salvar a configuração",
"{app}'s declarative setting field: {name}" : "Campo de configuração declarativa de {app}: {name}",
"Unable to update server side encryption config" : "Não foi possível atualizar a configuração de criptografia do lado do servidor",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "É sempre bom criar backups regulares dos seus dados. No caso de criptografia, certifique-se de fazer backup das chaves de criptografia juntamente com os seus dados.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulte a documentação do administrador para saber como criptografar manualmente também os arquivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Este é o aviso final: Você realmente quer ativar a criptografia?",
- "Failed to remove group \"{group}\"" : "Falha ao remover o grupo \"{group}\"",
+ "Failed to delete group \"{group}\"" : "Falha ao excluir grupo \"{group}\"",
"Please confirm the group removal" : "Por favor confirme a remoção do grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Você está prestes a remover o grupo \"{group}\". As contas NÃO serão excluídas.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Você está prestes a excluir o grupo \"{group}\". As contas NÃO serão excluídas.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Renomear grupo",
- "Remove group" : "Excluir grupo",
- "Current password" : "Senha atual",
- "New password" : "Nova senha",
- "Change password" : "Alterar senha",
- "Choose your profile picture" : "Escolha sua foto de perfil",
- "Please select a valid png or jpg file" : "Por favor, selecione um arquivo png ou jpg válido",
- "Error setting profile picture" : "Erro ao definir a foto do perfil",
- "Error cropping profile picture" : "Erro ao recortar a foto do perfil",
- "Error saving profile picture" : "Erro ao salvar a foto do perfil",
- "Error removing profile picture" : "Erro ao remover a foto do perfil",
- "Your profile picture" : "Sua foto de perfil",
- "Upload profile picture" : "Fazer upload da foto do perfil",
- "Choose profile picture from Files" : "Escolher foto do perfil em Arquivos",
- "Remove profile picture" : "Remover foto do perfil",
- "The file must be a PNG or JPG" : "O arquivo deve ser um PNG ou JPG",
- "Picture provided by original account" : "Imagem fornecida pela conta original",
- "Set as profile picture" : "Definir como imagem do perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Observe que pode levar até 24 horas para que sua foto de perfil seja atualizada em todos os lugares.",
- "Your biography. Markdown is supported." : "Sua biografia. Markdown é suportado.",
- "Unable to update date of birth" : "Não foi possível atualizar a data de nascimento",
- "Enter your date of birth" : "Digite sua data de nascimento",
- "You are using {s}{usage}{/s}" : "Você está usando {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Você está usando {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Você é membro dos seguintes grupos:",
- "Your full name" : "Seu nome completo",
- "Email options" : "Opções de e-mail ",
- "Options for additional email address {index}" : "Opções para endereço de e-mail adicional {index}",
- "Remove primary email" : "Remover e-mail principal ",
- "Delete email" : "Excluir e-mail ",
- "This address is not confirmed" : "Este endereço não foi confirmado",
- "Unset as primary email" : "Desativar como e-mail principal",
- "Set as primary email" : "Definir como e-mail principal ",
- "Additional email address {index}" : "Endereço de e-mail adicional {index} ",
- "Unable to delete primary email address" : "Não é possível excluir o endereço de e-mail principal",
- "Unable to update primary email address" : "Não é possível atualizar o endereço de e-mail primário ",
- "Unable to add additional email address" : "Não é possível adicionar um endereço de e-mail adicional",
- "Unable to update additional email address" : "Não é possível atualizar o endereço de e-mail adicional ",
- "Unable to delete additional email address" : "Não é possível excluir endereço de e-mail adicional",
- "Primary email for password reset and notifications" : "E-mail principal para redefinição de senha e notificações",
- "No email address set" : "Nenhum endereço de e-mail foi configurado",
- "Your handle" : "Seu identificador",
- "Derived from your locale ({weekDayName})" : "Derivado da sua configuração regional ({weekDayName})",
- "Unable to update first day of week" : "Não é possível atualizar o primeiro dia da semana",
- "Day to use as the first day of week" : "Dia a ser usado como o primeiro dia da semana",
- "Your headline" : "Seu título",
- "Unable to update language" : "Não foi possível atualizar o idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Ajude a traduzir",
- "No language set" : "Nenhum conjunto de idiomas",
- "Unable to update locale" : "Não foi possível atualizar a configuração regional",
- "Locales" : "Configuração regional",
- "Week starts on {firstDayOfWeek}" : "A semana começa com {firstDayOfWeek}",
- "No locale set" : "Nenhuma configuração regional definida",
- "Your city" : "Sua cidade",
- "Your organisation" : "Sua organização",
- "Your phone number" : "Seu número de telefone",
- "Edit your Profile visibility" : "Edite a visibilidade do seu Perfil",
- "Unable to update profile enabled state" : "Não é possível atualizar o estado de ativação do perfil",
- "Enable profile" : "Ativar 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." : "A configuração mais restritiva de visibilidade ou escopo é respeitada em seu perfil. Por exemplo, se a visibilidade for definida como \"Mostrar para todos\" e o escopo for definido como \"Privado\", \"Privado\" será respeitado.",
- "Unable to update visibility of {displayId}" : "Não é possível atualizar a visibilidade de {displayId}",
- "she/her" : "ela/dela",
- "he/him" : "ele/dele",
- "they/them" : "eles/delas",
- "Your role" : "Sua função",
- "Your X (formerly Twitter) handle" : "Seu identificador X (anteriormente Twitter)",
- "Your website" : "Seu site",
- "Invalid value" : "Valor inválido",
- "Unable to update {property}" : "Não foi possível atualizar {property}",
- "No {property} set" : "Nenhum {property} definido",
- "Change scope level of {property}, current scope is {scope}" : "Alterar o nível de escopo de {property}, escopo atual é {scope}",
- "Unable to update federation scope of the primary {property}" : "Não é possível atualizar o escopo da federação do {property} primário",
- "Unable to update federation scope of additional {property}" : "Não é possível atualizar o escopo da federação de {property} adicional",
- "Add additional email" : "Adicionar e-mail adicional",
- "Add" : "Adicionar",
- "Create" : "Criar",
- "Change" : "Alterar",
- "Delete" : "Excluir",
- "Reshare" : "Recompartilhar",
- "Default language" : "Idioma padrão",
- "Common languages" : "Idiomas comuns",
- "Other languages" : "Outros idiomas",
- "Password change is disabled because the master key is disabled" : "A alteração de senha está desativada porque a chave mestra está desativada",
- "No accounts" : "Sem contas",
- "Loading accounts …" : "Carregando contas …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista de contas. Esta lista não foi totalmente renderizada por motivos de desempenho. As contas serão renderizadas quando você navegar pela lista.",
- "Manager" : "Gerente",
- "Set line manager" : "Definir superior hierárquico",
- "Account name will be autogenerated" : "O nome da conta será autogerado",
- "Account name (required)" : "Nome da conta (obrigatório)",
- "Failed to search groups" : "Falha ao pesquisar grupos",
- "New account" : "Nova conta",
- "Display name" : "Nome de exibição",
- "Either password or email is required" : "É necessário ou e-mail ou senha",
- "Password (required)" : "Senha (obrigatória)",
- "Email (required)" : "E-mail (obrigatório)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Membro dos seguintes grupos (obrigatório)",
- "Member of the following groups" : "Membro dos seguintes grupos",
- "Set account groups" : "Definir grupos de contas",
- "Admin of the following groups" : "Administrador dos seguintes grupos",
- "Set account as admin for …" : "Definir conta como administrador para …",
- "Quota" : "Cota",
- "Set account quota" : "Definir cota da conta",
- "Language" : "Idioma",
- "Set default language" : "Definir idioma padrão",
- "Add new account" : "Adicionar nova conta",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} conta …","{userCount} contas …","{userCount} contas …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} conta","{userCount} contas","{userCount} contas"],
- "Total rows summary" : "Resumo do total de linhas",
- "Scroll to load more rows" : "Role para carregar mais linhas",
- "Password or insufficient permissions message" : "Mensagem de senha ou permissões insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nome da conta",
- "Group admin for" : "Admin. de grupo",
- "Account backend" : "Back-end da conta",
- "Storage location" : "Local do armazenamento",
- "First login" : "Primeiro login",
- "Last login" : "Último acesso",
- "Account actions" : "Ações da conta",
- "{size} used" : "{size} usado",
- "Delete account" : "Excluir conta",
- "Disconnect all devices and delete local data" : "Desconecte todos os dispositivos e exclua os dados locais",
- "Disable account" : "Desativar conta",
- "Enable account" : "Ativar conta",
- "Resend welcome email" : "Reenviar e-mail de boas-vindas",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Em caso de perda do dispositivo ou saída da organização, pode-se limpar remotamente os dados do Nextcloud dos dispositivos associados ao {userid}. Só funciona se estiverem conectados à Internet.",
- "Remote wipe of devices" : "Limpeza remota de dispositivos",
- "Wipe {userid}'s devices" : "Limpar os dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Dispositivos de {userid} apagados",
- "Failed to load groups with details" : "Falha ao carregar grupos com detalhes",
- "Failed to load sub admin groups with details" : "Falha ao carregar grupos de subadministradores com detalhes",
- "Failed to update line manager" : "Falha ao atualizar o superior hierárquico",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Excluir a conta de {userid}, incluindo todos os arquivos pessoais, dados de aplicativos, etc",
- "Account deletion" : "Exclusão de conta",
- "Delete {userid}'s account" : "Excluir a conta de {userid}",
- "Display name was successfully changed" : "O nome de exibição foi alterado com sucesso",
- "Password can't be empty" : "A senha não pode estar vazia",
- "Password was successfully changed" : "A senha foi alterada com sucesso",
- "Email can't be empty" : "O e-mail não pode estar vazio",
- "Email was successfully changed" : "O e-mail foi alterado com sucesso",
- "Welcome mail sent!" : "E-mail de boas-vindas enviado!",
- "Loading account …" : "Carregando conta …",
- "Change display name" : "Alterar nome de exibição",
- "Set new password" : "Definir nova senha",
- "You do not have permissions to see the details of this account" : "Você não tem permissão para ver os detalhes desta conta",
- "Set new email address" : "Definir novo endereço de e-mail",
- "Add account to group" : "Adicionar conta ao grupo",
- "Set account as admin for" : "Definir conta como administrador para",
- "Select account quota" : "Selecionar cota da conta",
- "Set the language" : "Definir o idioma",
- "Toggle account actions menu" : "Alternar menu de ações da conta",
- "Done" : "Concluído",
- "Edit" : "Editar",
- "Account management settings" : "Configurações de gerenciamento de conta",
- "Visibility" : "Visibilidade",
- "Show language" : "Mostrar idioma",
- "Show account backend" : "Mostrar back-end da conta",
- "Show storage path" : "Exibir caminho de armazenamento",
- "Show first login" : "Mostrar primeiro login",
- "Show last login" : "Exibir último login",
- "Sorting" : "Classificação",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "A configuração do sistema impõe a classificação dos grupos por nome. Isso também desabilita a exibição da contagem de membros.",
- "Group list sorting" : "Classificação de lista de grupos",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Por motivos de desempenho, a classificação só se aplica aos grupos carregados no momento. Os grupos serão carregados quando você navegar ou pesquisar na lista.",
- "By member count" : "Por contagem de membros",
- "By name" : "Por nome",
- "Send email" : "Enviar e-mail",
- "Send welcome email to new accounts" : "Enviar e-mail de boas-vindas para novas contas",
- "Defaults" : "Padrões",
- "Default quota" : "Cota padrão",
- "Select default quota" : "Selecionar a cota padrão",
- "Server error while trying to complete WebAuthn device registration" : "Erro no servidor ao finalizar o registro do dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "Autenticação sem senha necessita uma conexão segura.",
- "Add WebAuthn device" : "Adicionar dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorize seu dispositivo Webauthn.",
- "Adding your device …" : "Adicionando seu dispositivo...",
- "Unnamed device" : "Dispositivo sem nome",
- "Passwordless Authentication" : "Autenticação sem senha",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configure sua conta para autenticação sem senha, seguindo o padrão FIDO2.",
- "No devices configured." : "Nenhum dispositivo configurado.",
- "The following devices are configured for your account:" : "Os seguintes dispositivos estão configurados para sua conta:",
- "Your browser does not support WebAuthn." : "Seu navegador não suporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, você pode ajustar o comportamento dos compartilhamentos. Consulte a documentação para obter mais informações.",
- "You need to enable the File sharing App." : "Você precisa habilitar o aplicativo de compartilhamento de arquivos.",
- "App Store" : "Loja de aplicativos",
- "Loading app list" : "Carregando lista de aplicativos",
- "Loading categories" : "Carregando categorias",
- "Developer documentation ↗" : "Documentação do desenvolvedor ↗",
- "Version {version}, {license}-licensed" : "Versão {version}, licenciada por {license}",
- "Version {version}" : "Versão {version}",
- "All accounts" : "Todas as contas",
- "Admins" : "Administradores",
- "Account group: {group}" : "Grupo de contas: {group}",
- "Account management" : "Gerenciamento de contas",
+ "Delete group" : "Excluir grupo",
"Sending…" : "Enviando...",
"Email sent" : "E-mail enviado",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Por motivos de desempenho, quando você ativa a criptografia em um servidor Nextcloud, somente os arquivos novos e alterados são criptografados.",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "Data de nascimento",
"Full name" : "Nome completo",
"Additional email" : "E-mail adicional ",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverso (p. ex. Mastodon)",
"Headline" : "Título",
"Organisation" : "Organização",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Website",
"Profile visibility" : "Visibilidade do perfil",
+ "Language" : "Idioma",
"Locale" : "Configuração regional",
"First day of week" : "Primeiro dia da semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Não disponível porque esta propriedade é necessária para a funcionalidade principal, incluindo compartilhamento de arquivos e convites de calendário",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Mostrar apenas para contas logadas",
"Hide" : "Ocultar",
"Manually installed apps cannot be updated" : "Aplicativos instalados manualmente não podem ser atualizados",
+ "Update to {version}" : "Atualizar para {version}",
"{progress}% Deploying …" : "{progress}% Implantando …",
"{progress}% Initializing …" : "{progress}% Inicializando …",
"Health checking" : "Verificação de saúde",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Permitir aplicativo não testado",
"The app will be downloaded from the App Store" : "O aplicativo será baixado da Loja de Aplicativos",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Este aplicativo não está marcado como compatível com sua versão do Nextcloud. Se você continuar, ainda poderá instalar o aplicativo mas poderá não funcionar como esperado.",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconhecido",
"Never" : "Nunca",
"Could not register device: Network error" : "Não foi possível registrar o dispositivo: Erro de rede",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Não foi possível definir a classificação de grupo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houve muitas solicitações de sua rede. Tente novamente mais tarde ou entre em contato com o administrador se isso for um erro.",
"Error" : "Erro",
+ "Default quota" : "Cota padrão",
"Account documentation" : "Documentação da conta",
"Administration documentation" : "Documentação de administração",
+ "Documentation" : "Documentação",
"Forum" : "Fórum",
"Nextcloud help & privacy resources" : "Ajuda & recursos de privacidade do Nextcloud",
"General documentation" : "Documentação geral",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "Senha SMTP",
"Save" : "Salvar",
"Test and verify email settings" : "Testar e verificar as configurações de e-mail",
+ "Send email" : "Enviar e-mail",
"Security & setup warnings" : "Segurança & avisos de configuração",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Para segurança e desempenho da sua instalação é importante que tudo esteja configurado corretamente. Para ajudá-lo com isso, estamos fazendo algumas verificações automáticas. Consulte a documentação para mais informações.",
"All checks passed." : "Todas as verificações passaram.",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Use um segundo fator além de sua senha para aumentar a segurança da conta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Se usar aplicativos de terceiros para se conectar ao Nextcloud, certifique-se de criar e configurar uma senha para cada aplicativo antes de habilitar a autenticação em duas etapas.",
"Logged in account must be a subadmin" : "A conta logada deve ser um subadmininistrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que esta verificação seja executada, você deve certificar-se de que seu servidor web pode se conectar a si mesmo. Portanto, ele deve ser capaz de resolver e conectar-se a pelo menos um de seus `trusted_domains` ou `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Faltando índice opcional \"%s\" na tabela \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Estão faltando alguns índices no banco de dados. Devido ao fato de que adicionar índices em tabelas grandes pode levar algum tempo, eles não foram adicionados automaticamente. Ao executar \"occ db:add-missing-indices\", os índices ausentes podem ser adicionados manualmente enquanto o Nextcloud continua em execução. Depois que os índices são adicionados, as consultas a essas tabelas geralmente são muito mais rápidas.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que esta verificação seja executada, você deve certificar-se de que seu servidor web pode se conectar a si mesmo. Portanto, ele deve ser capaz de resolver e conectar-se a pelo menos um de seus `trusted_domains` ou `overwrite.cli.url`. Esta falha pode ser o resultado de uma incompatibilidade de DNS no servidor ou de uma regra de firewall de saída.",
"File locking" : "Bloqueio de arquivo",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "O bloqueio de arquivo transacional está desabilitado, isso pode levar a problemas com condições de corrida. Habilite \"filelocking.enabled\" em config.php para evitar estes problemas.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Não foi possível verificar o suporte a JavaScript por meio de nenhum dos seus `trusted_domains` nem `overwrite.cli.url`. Isso pode ser o resultado de uma incompatibilidade de DNS no servidor ou de uma regra de firewall de saída. Verifique manualmente se o seu servidor web serve arquivos `.mjs` usando o tipo MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "O limite de memória do PHP está abaixo do valor recomendado de %s.",
"for WebAuthn passwordless login" : "para login sem senha via WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "para login sem senha via WebAuthn e armazenamento SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "No momento, você está executando PHP %s. PHP 8.0 agora está obsoleto no Nextcloud 27. Nextcloud 28 pode exigir pelo menos PHP 8.1. Atualize para uma das versões PHP com suporte oficial fornecidas pelo PHP Group o mais rápido possível.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "A versão do MariaDB \"%s\" está sendo usada. Nextcloud 21 e superior não suportam esta versão e requerem MariaDB 10.2 ou superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "A versão do MySQL \"%s\" está sendo usada. Nextcloud 21 e superior não suportam esta versão e requerem MySQL 8.0 ou MariaDB 10.2 ou superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "A versão do PostgreSQL \"%s\" está sendo usada. Nextcloud 21 e superior não suportam esta versão e requerem o PostgreSQL 9.6 ou superior.",
- "Speech-To-Text" : "Fala-Para-Texto",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "O Fala-Para-Texto pode ser implementado por diferentes aplicativos. Aqui você pode definir qual aplicativo deve ser usado.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Nenhum dos seus aplicativos atualmente instalados fornece a funcionalidade Fala-Para-Texto",
- "None of your currently installed apps provide Text processing functionality" : "Nenhum dos seus aplicativos atualmente instalados fornece funcionalidade de processamento de texto",
- "Set default expiration date for shares" : "Definir data de validade padrão para compartilhamentos",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir preenchimento automático de nome de usuário na caixa de diálogo de compartilhamento e permitir acesso ao catálogo de endereços do sistema",
- "Your biography" : "Sua biografia",
- "You are using <strong>{usage}</strong>" : "Você está usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Você está usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Definir gerente de usuário",
- "Username will be autogenerated" : "O nome de usuário será autogerado",
- "Username (required)" : "Nome de usuário (obrigatório)",
- "New user" : "Novo usuário",
- "Groups (required)" : "Grupos (obrigatório)",
- "Set user groups" : "Definir grupos do usuário",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Definir o usuário como administrador para …",
- "Set user quota" : "Definir cota do usuário",
- "Add new user" : "Adicionar novo usuário",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuário …","{userCount} usuários …","{userCount} usuários …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuário","{userCount} usuários","{userCount} usuários"],
- "Loading users …" : "Carregando usuários …",
- "Username" : "Nome de Usuário",
- "User backend" : "Plataforma de serviço de usuário",
- "User actions" : "Ações do usuário",
- "Add user to group" : "Adicionar usuário ao grupo",
- "Server error while trying to add WebAuthn device" : "Erro no servidor ao adicionar o dispositivo WebAuthn",
- "Name your device" : "Nomeie seu dispositivo",
- "Active accounts" : "Contas ativas",
- "Follow us on Twitter" : "Siga-nos no Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que esta verificação seja executada, você deve certificar-se de que seu servidor web pode se conectar a si mesmo. Portanto, ele deve ser capaz de resolver e conectar-se a pelo menos um de seus `trusted_domains` ou `overwrite.cli.url`. Esta falha pode ser o resultado de uma incompatibilidade de DNS no servidor ou de uma regra de firewall de saída.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- O cabeçalho HTTP `%1$s` não contém `%2$s`. Este é um possível risco à segurança ou à privacidade, portanto, é recomendável ajustar esta configuração de acordo.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Versão do PostgreSQL \"%s\" detectada. PostgreSQL >=12 e <=16 é sugerido para melhor desempenho, estabilidade e funcionalidade com esta versão do Nextcloud.",
- "Failed to load subadmin groups with details" : "Falha ao carregar grupos de subadministradores com detalhes"
+ "Set default expiration date for shares" : "Definir data de validade padrão para compartilhamentos"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/pt_BR.json b/apps/settings/l10n/pt_BR.json
index d6d31d1682c..84e8b919b43 100644
--- a/apps/settings/l10n/pt_BR.json
+++ b/apps/settings/l10n/pt_BR.json
@@ -116,7 +116,7 @@
"Sharing" : "Compartilhamento",
"Availability" : "Disponibilidade",
"Calendar" : "Calendário",
- "Personal info" : "Informação pessoal",
+ "Personal info" : "Informações pessoais",
"Mobile & desktop" : "Móvel & desktop",
"Email server" : "Servidor de e-mail",
"Mail Providers" : "Provedores de E-mail",
@@ -294,7 +294,6 @@
"HTTP headers" : "Cabeçalhos HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- O cabeçalho HTTP `%1$s` não está definido como `%2$s`. Alguns recursos podem não funcionar corretamente, portanto, é recomendado ajustar esta configuração de acordo.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- O cabeçalho HTTP `%1$s` não está definido como `%2$s`. Este é um possível risco à segurança ou à privacidade, portanto, é recomendável ajustar esta configuração de acordo.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- O cabeçalho HTTP `%1$s` não contém `%2$s`. Este é um possível risco à segurança ou à privacidade, portanto, é recomendável ajustar esta configuração de acordo.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- O cabeçalho HTTP `%1$s` não está definido como `%2$s`, `%3$s`, `%4$s`, `%5$s` ou `%6$s`. Isso pode vazar informações do referenciador. Consulte a {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- O cabeçalho HTTP `Strict-Transport-Security` não está definido para pelo menos `%d` segundos (valor atual: `%d`). Para aumentar a segurança, é recomendável usar uma política HSTS longa.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- O cabeçalho HTTP `Strict-Transport-Security` está malformado: `%s`. Para aumentar a segurança, é recomendável ativar o HSTS.",
@@ -313,6 +312,10 @@
"Architecture" : "Arquitetura",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Parece que você está executando uma versão PHP de 32 bits. Nextcloud precisa de 64 bits para funcionar bem. Atualize seu sistema operacional e PHP para 64 bits!",
+ "Task Processing pickup speed" : "Velocidade de inicio do Processamento de Tarefas",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Nenhuma tarefa agendada na última %n hora.","Nenhuma tarefa agendada no último %n de horas.","Nenhuma tarefa agendada nas últimas %n horas."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["A velocidade de inicio do processamento de tarefas tem sido boa na última %n hora.","A velocidade de inicio do processamento de tarefas tem sido boa nas últimas %n horas.","A velocidade de inicio do processamento de tarefas tem sido boa nas últimas %n horas."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["A velocidade de inicio do processamento de tarefas tem sido lenta nas última %n hora. Muitas tarefas levaram mais de 4 minutos para serem iniciadas. Considere a possibilidade de configurar um trabalhador para processar tarefas em segundo plano.","A velocidade de inicio do processamento de tarefas tem sido lenta nas últimas %n horas. Muitas tarefas levaram mais de 4 minutos para serem iniciadas. Considere a possibilidade de configurar um trabalhador para processar tarefas em segundo plano.","A velocidade de inicio do processamento de tarefas tem sido lenta nas últimas %n horas. Muitas tarefas levaram mais de 4 minutos para serem iniciadas. Considere a possibilidade de configurar um trabalhador para processar tarefas em segundo plano."],
"Temporary space available" : "Espaço temporário disponível",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Erro ao verificar o caminho temporário do PHP - ele não foi configurado corretamente para um diretório. Valor retornado:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "A função PHP \"disk_free_space\" está desativada, o que impede a verificação de espaço suficiente nos diretórios temporários.",
@@ -424,7 +427,7 @@
"Actions" : "Ações",
"Results from other categories" : "Resultados de outras categorias",
"No apps found for your version" : "Nenhum aplicativo encontrado para a sua versão",
- "_%n app has an update available_::_%n apps have an update available_" : ["%n aplicativo tem atualização disponível","%n aplicativos tem atualização disponível","%n aplicativos tem atualização disponível"],
+ "_%n app has an update available_::_%n apps have an update available_" : ["%n aplicativo tem atualização disponível","%n de aplicativos tem atualização disponível","%n aplicativos tem atualização disponível"],
"_Update_::_Update all_" : ["Atualizar","Atualizar todos","Atualizar todos"],
"Failed to load groups" : "Falha ao carregar grupos",
"Failed to create group" : "Falha ao criar grupo",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "Não foi possível carregar o conteúdo da seção da loja de aplicativos.",
"Loading" : "Carregando",
"Fetching the latest news…" : "Buscando as últimas notícias…",
- "Carousel" : "Carrossel",
- "Previous slide" : "Slide anterior",
- "Next slide" : "Próximo slide",
- "Choose slide to display" : "Escolher slide a ser exibido",
- "{index} of {total}" : "{index} de {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon de Deploy",
- "Type" : "Tipo",
- "Display Name" : "Nome de Exibição",
- "GPUs support" : "Suporte a GPUs",
- "Compute device" : "Dispositivo de computação",
- "Advanced deploy options" : "Opções avançadas de implantação",
- "Edit ExApp deploy options before installation" : "Edite as opções de implantação do ExApp antes da instalação",
- "Configured ExApp deploy options. Can be set only during installation" : "Opções de implantação do ExApp configuradas. Podem ser definidas apenas durante a instalação",
- "Learn more" : "Saiba mais",
- "Environment variables" : "Variáveis de ambiente",
- "ExApp container environment variables" : "Variáveis de ambiente do contêiner ExApp",
- "No environment variables defined" : "Nenhuma variável de ambiente definida",
- "Mounts" : "Montagens",
- "Define host folder mounts to bind to the ExApp container" : "Definir montagens de pastas no host para vincular ao contêiner do ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Deve existir no host do daemon de Deploy antes da instalação do ExApp",
- "Host path" : "Caminho no host",
- "Container path" : "Caminho no contêiner",
- "Read-only" : "Somente leitura",
- "Remove mount" : "Remover montagem",
- "New mount" : "Nova montagem",
- "Enter path to host folder" : "Digite o caminho para a pasta no host",
- "Enter path to container folder" : "Digite o caminho para a pasta no contêiner",
- "Toggle read-only mode" : "Alternar o modo somente leitura",
- "Confirm adding new mount" : "Confirmar adição da nova montagem",
- "Confirm" : "Confirmar",
- "Cancel adding mount" : "Cancelar a adição de montagem",
- "Cancel" : "Cancelar",
- "Add mount" : "Adicionar montagem",
- "ExApp container mounts" : "Montagens de contêiner ExApp",
- "No mounts defined" : "Nenhuma montagem definida",
- "Description" : "Descrição",
- "View in store" : "Ver na loja",
- "Visit website" : "Visitar website",
- "Usage documentation" : "Documentação de uso",
- "Admin documentation" : "Documentação do administrador",
- "Developer documentation" : "Documentação do desenvolvedor",
- "Details" : "Detalhes",
- "All" : "Todos",
- "Limit app usage to groups" : "Limitar o uso de aplicativos a grupos",
- "No results" : "Sem resultados",
- "Update to {version}" : "Atualizar para {version}",
- "Deploy options" : "Opções de implantação",
- "Default Deploy daemon is not accessible" : "O Daemon de deploy padrão não está acessível.",
- "Delete data on remove" : "Excluir dados ao remover",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui uma versão mínima atribuída para uso no Nextcloud. Isto poderá se converter em um erro no futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui uma versão máxima atribuida para uso no Nextcloud. Isto poderá se converter em um erro no futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado pois as seguintes dependências não forão cumpridas:",
- "Latest updated" : "Última atualização",
- "Author" : "Autor",
- "Categories" : "Categorias ",
- "Resources" : "Recursos",
- "Documentation" : "Documentação",
- "Interact" : "Interagir",
- "Report a bug" : "Relatar um erro",
- "Request feature" : "Solicitar uma funcionalidade",
- "Ask questions or discuss" : "Fazer perguntas ou discutir",
- "Rate the app" : "Avalie o aplicativo",
- "Rate" : "Avaliação",
- "Changelog" : "Changelog",
- "Google Chrome for Android" : "Google Chrome para Android",
- "{productName} iOS app" : "Aplicativo {productName} para iOS",
- "{productName} Android app" : "Aplicativo {productName} para Android",
- "{productName} Talk for iOS" : "{productName} Talk para iOS",
- "{productName} Talk for Android" : "{productName} Talk para Android ",
- "Sync client" : "Cliente de sincronização",
- "This session" : "Esta sessão",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Nome do dispositivo",
- "Cancel renaming" : "Cancelar renomeação",
- "Save new name" : "Salvar novo nome",
- "Marked for remote wipe" : "Marcado para limpeza remota",
- "Device settings" : "Configuração dos dispositivos",
- "Allow filesystem access" : "Permitir acesso ao sistema de arquivos",
- "Rename" : "Renomear",
- "Revoke" : "Revogar",
- "Wipe device" : "Limpar o dispositivo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "A revogação desse token pode impedir o apagamento do seu dispositivo se ele ainda não tiver iniciado o apagamento.",
- "Device" : "Dispositivo",
- "Last activity" : "Última atividade",
- "Devices & sessions" : "Dispositivos & sessões",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, desktop e móvel que estão conectados à sua conta.",
- "Error while creating device token" : "Erro ao criar token de dispositivo",
- "App name" : "Nome do aplicativo",
- "Create new app password" : "Criar nova senha de aplicativo",
"App password copied!" : "Senha do aplicativo copiada!",
"Copy app password" : "Copiar senha do aplicativo",
"Login name copied!" : "Nome de login copiado!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "Não foi possível atualizar a configuração padrão do perfil",
"Profile" : "Perfil",
"Enable or disable profile by default for new accounts." : "Ativar ou desativar o perfil por padrão para novas contas.",
+ "Password confirmation is required" : "A confirmação da senha é necessária",
"Failed to save setting" : "Falha ao salvar a configuração",
"{app}'s declarative setting field: {name}" : "Campo de configuração declarativa de {app}: {name}",
"Unable to update server side encryption config" : "Não foi possível atualizar a configuração de criptografia do lado do servidor",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "É sempre bom criar backups regulares dos seus dados. No caso de criptografia, certifique-se de fazer backup das chaves de criptografia juntamente com os seus dados.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Consulte a documentação do administrador para saber como criptografar manualmente também os arquivos existentes.",
"This is the final warning: Do you really want to enable encryption?" : "Este é o aviso final: Você realmente quer ativar a criptografia?",
- "Failed to remove group \"{group}\"" : "Falha ao remover o grupo \"{group}\"",
+ "Failed to delete group \"{group}\"" : "Falha ao excluir grupo \"{group}\"",
"Please confirm the group removal" : "Por favor confirme a remoção do grupo",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Você está prestes a remover o grupo \"{group}\". As contas NÃO serão excluídas.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Você está prestes a excluir o grupo \"{group}\". As contas NÃO serão excluídas.",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Enviar",
"Rename group" : "Renomear grupo",
- "Remove group" : "Excluir grupo",
- "Current password" : "Senha atual",
- "New password" : "Nova senha",
- "Change password" : "Alterar senha",
- "Choose your profile picture" : "Escolha sua foto de perfil",
- "Please select a valid png or jpg file" : "Por favor, selecione um arquivo png ou jpg válido",
- "Error setting profile picture" : "Erro ao definir a foto do perfil",
- "Error cropping profile picture" : "Erro ao recortar a foto do perfil",
- "Error saving profile picture" : "Erro ao salvar a foto do perfil",
- "Error removing profile picture" : "Erro ao remover a foto do perfil",
- "Your profile picture" : "Sua foto de perfil",
- "Upload profile picture" : "Fazer upload da foto do perfil",
- "Choose profile picture from Files" : "Escolher foto do perfil em Arquivos",
- "Remove profile picture" : "Remover foto do perfil",
- "The file must be a PNG or JPG" : "O arquivo deve ser um PNG ou JPG",
- "Picture provided by original account" : "Imagem fornecida pela conta original",
- "Set as profile picture" : "Definir como imagem do perfil",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Observe que pode levar até 24 horas para que sua foto de perfil seja atualizada em todos os lugares.",
- "Your biography. Markdown is supported." : "Sua biografia. Markdown é suportado.",
- "Unable to update date of birth" : "Não foi possível atualizar a data de nascimento",
- "Enter your date of birth" : "Digite sua data de nascimento",
- "You are using {s}{usage}{/s}" : "Você está usando {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Você está usando {s}{usage}{/s} de {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Você é membro dos seguintes grupos:",
- "Your full name" : "Seu nome completo",
- "Email options" : "Opções de e-mail ",
- "Options for additional email address {index}" : "Opções para endereço de e-mail adicional {index}",
- "Remove primary email" : "Remover e-mail principal ",
- "Delete email" : "Excluir e-mail ",
- "This address is not confirmed" : "Este endereço não foi confirmado",
- "Unset as primary email" : "Desativar como e-mail principal",
- "Set as primary email" : "Definir como e-mail principal ",
- "Additional email address {index}" : "Endereço de e-mail adicional {index} ",
- "Unable to delete primary email address" : "Não é possível excluir o endereço de e-mail principal",
- "Unable to update primary email address" : "Não é possível atualizar o endereço de e-mail primário ",
- "Unable to add additional email address" : "Não é possível adicionar um endereço de e-mail adicional",
- "Unable to update additional email address" : "Não é possível atualizar o endereço de e-mail adicional ",
- "Unable to delete additional email address" : "Não é possível excluir endereço de e-mail adicional",
- "Primary email for password reset and notifications" : "E-mail principal para redefinição de senha e notificações",
- "No email address set" : "Nenhum endereço de e-mail foi configurado",
- "Your handle" : "Seu identificador",
- "Derived from your locale ({weekDayName})" : "Derivado da sua configuração regional ({weekDayName})",
- "Unable to update first day of week" : "Não é possível atualizar o primeiro dia da semana",
- "Day to use as the first day of week" : "Dia a ser usado como o primeiro dia da semana",
- "Your headline" : "Seu título",
- "Unable to update language" : "Não foi possível atualizar o idioma",
- "Languages" : "Idiomas",
- "Help translate" : "Ajude a traduzir",
- "No language set" : "Nenhum conjunto de idiomas",
- "Unable to update locale" : "Não foi possível atualizar a configuração regional",
- "Locales" : "Configuração regional",
- "Week starts on {firstDayOfWeek}" : "A semana começa com {firstDayOfWeek}",
- "No locale set" : "Nenhuma configuração regional definida",
- "Your city" : "Sua cidade",
- "Your organisation" : "Sua organização",
- "Your phone number" : "Seu número de telefone",
- "Edit your Profile visibility" : "Edite a visibilidade do seu Perfil",
- "Unable to update profile enabled state" : "Não é possível atualizar o estado de ativação do perfil",
- "Enable profile" : "Ativar 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." : "A configuração mais restritiva de visibilidade ou escopo é respeitada em seu perfil. Por exemplo, se a visibilidade for definida como \"Mostrar para todos\" e o escopo for definido como \"Privado\", \"Privado\" será respeitado.",
- "Unable to update visibility of {displayId}" : "Não é possível atualizar a visibilidade de {displayId}",
- "she/her" : "ela/dela",
- "he/him" : "ele/dele",
- "they/them" : "eles/delas",
- "Your role" : "Sua função",
- "Your X (formerly Twitter) handle" : "Seu identificador X (anteriormente Twitter)",
- "Your website" : "Seu site",
- "Invalid value" : "Valor inválido",
- "Unable to update {property}" : "Não foi possível atualizar {property}",
- "No {property} set" : "Nenhum {property} definido",
- "Change scope level of {property}, current scope is {scope}" : "Alterar o nível de escopo de {property}, escopo atual é {scope}",
- "Unable to update federation scope of the primary {property}" : "Não é possível atualizar o escopo da federação do {property} primário",
- "Unable to update federation scope of additional {property}" : "Não é possível atualizar o escopo da federação de {property} adicional",
- "Add additional email" : "Adicionar e-mail adicional",
- "Add" : "Adicionar",
- "Create" : "Criar",
- "Change" : "Alterar",
- "Delete" : "Excluir",
- "Reshare" : "Recompartilhar",
- "Default language" : "Idioma padrão",
- "Common languages" : "Idiomas comuns",
- "Other languages" : "Outros idiomas",
- "Password change is disabled because the master key is disabled" : "A alteração de senha está desativada porque a chave mestra está desativada",
- "No accounts" : "Sem contas",
- "Loading accounts …" : "Carregando contas …",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista de contas. Esta lista não foi totalmente renderizada por motivos de desempenho. As contas serão renderizadas quando você navegar pela lista.",
- "Manager" : "Gerente",
- "Set line manager" : "Definir superior hierárquico",
- "Account name will be autogenerated" : "O nome da conta será autogerado",
- "Account name (required)" : "Nome da conta (obrigatório)",
- "Failed to search groups" : "Falha ao pesquisar grupos",
- "New account" : "Nova conta",
- "Display name" : "Nome de exibição",
- "Either password or email is required" : "É necessário ou e-mail ou senha",
- "Password (required)" : "Senha (obrigatória)",
- "Email (required)" : "E-mail (obrigatório)",
- "Email" : "E-mail",
- "Member of the following groups (required)" : "Membro dos seguintes grupos (obrigatório)",
- "Member of the following groups" : "Membro dos seguintes grupos",
- "Set account groups" : "Definir grupos de contas",
- "Admin of the following groups" : "Administrador dos seguintes grupos",
- "Set account as admin for …" : "Definir conta como administrador para …",
- "Quota" : "Cota",
- "Set account quota" : "Definir cota da conta",
- "Language" : "Idioma",
- "Set default language" : "Definir idioma padrão",
- "Add new account" : "Adicionar nova conta",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} conta …","{userCount} contas …","{userCount} contas …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} conta","{userCount} contas","{userCount} contas"],
- "Total rows summary" : "Resumo do total de linhas",
- "Scroll to load more rows" : "Role para carregar mais linhas",
- "Password or insufficient permissions message" : "Mensagem de senha ou permissões insuficientes",
- "Avatar" : "Avatar",
- "Account name" : "Nome da conta",
- "Group admin for" : "Admin. de grupo",
- "Account backend" : "Back-end da conta",
- "Storage location" : "Local do armazenamento",
- "First login" : "Primeiro login",
- "Last login" : "Último acesso",
- "Account actions" : "Ações da conta",
- "{size} used" : "{size} usado",
- "Delete account" : "Excluir conta",
- "Disconnect all devices and delete local data" : "Desconecte todos os dispositivos e exclua os dados locais",
- "Disable account" : "Desativar conta",
- "Enable account" : "Ativar conta",
- "Resend welcome email" : "Reenviar e-mail de boas-vindas",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Em caso de perda do dispositivo ou saída da organização, pode-se limpar remotamente os dados do Nextcloud dos dispositivos associados ao {userid}. Só funciona se estiverem conectados à Internet.",
- "Remote wipe of devices" : "Limpeza remota de dispositivos",
- "Wipe {userid}'s devices" : "Limpar os dispositivos de {userid}",
- "Wiped {userid}'s devices" : "Dispositivos de {userid} apagados",
- "Failed to load groups with details" : "Falha ao carregar grupos com detalhes",
- "Failed to load sub admin groups with details" : "Falha ao carregar grupos de subadministradores com detalhes",
- "Failed to update line manager" : "Falha ao atualizar o superior hierárquico",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Excluir a conta de {userid}, incluindo todos os arquivos pessoais, dados de aplicativos, etc",
- "Account deletion" : "Exclusão de conta",
- "Delete {userid}'s account" : "Excluir a conta de {userid}",
- "Display name was successfully changed" : "O nome de exibição foi alterado com sucesso",
- "Password can't be empty" : "A senha não pode estar vazia",
- "Password was successfully changed" : "A senha foi alterada com sucesso",
- "Email can't be empty" : "O e-mail não pode estar vazio",
- "Email was successfully changed" : "O e-mail foi alterado com sucesso",
- "Welcome mail sent!" : "E-mail de boas-vindas enviado!",
- "Loading account …" : "Carregando conta …",
- "Change display name" : "Alterar nome de exibição",
- "Set new password" : "Definir nova senha",
- "You do not have permissions to see the details of this account" : "Você não tem permissão para ver os detalhes desta conta",
- "Set new email address" : "Definir novo endereço de e-mail",
- "Add account to group" : "Adicionar conta ao grupo",
- "Set account as admin for" : "Definir conta como administrador para",
- "Select account quota" : "Selecionar cota da conta",
- "Set the language" : "Definir o idioma",
- "Toggle account actions menu" : "Alternar menu de ações da conta",
- "Done" : "Concluído",
- "Edit" : "Editar",
- "Account management settings" : "Configurações de gerenciamento de conta",
- "Visibility" : "Visibilidade",
- "Show language" : "Mostrar idioma",
- "Show account backend" : "Mostrar back-end da conta",
- "Show storage path" : "Exibir caminho de armazenamento",
- "Show first login" : "Mostrar primeiro login",
- "Show last login" : "Exibir último login",
- "Sorting" : "Classificação",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "A configuração do sistema impõe a classificação dos grupos por nome. Isso também desabilita a exibição da contagem de membros.",
- "Group list sorting" : "Classificação de lista de grupos",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Por motivos de desempenho, a classificação só se aplica aos grupos carregados no momento. Os grupos serão carregados quando você navegar ou pesquisar na lista.",
- "By member count" : "Por contagem de membros",
- "By name" : "Por nome",
- "Send email" : "Enviar e-mail",
- "Send welcome email to new accounts" : "Enviar e-mail de boas-vindas para novas contas",
- "Defaults" : "Padrões",
- "Default quota" : "Cota padrão",
- "Select default quota" : "Selecionar a cota padrão",
- "Server error while trying to complete WebAuthn device registration" : "Erro no servidor ao finalizar o registro do dispositivo WebAuthn",
- "Passwordless authentication requires a secure connection." : "Autenticação sem senha necessita uma conexão segura.",
- "Add WebAuthn device" : "Adicionar dispositivo WebAuthn",
- "Please authorize your WebAuthn device." : "Autorize seu dispositivo Webauthn.",
- "Adding your device …" : "Adicionando seu dispositivo...",
- "Unnamed device" : "Dispositivo sem nome",
- "Passwordless Authentication" : "Autenticação sem senha",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Configure sua conta para autenticação sem senha, seguindo o padrão FIDO2.",
- "No devices configured." : "Nenhum dispositivo configurado.",
- "The following devices are configured for your account:" : "Os seguintes dispositivos estão configurados para sua conta:",
- "Your browser does not support WebAuthn." : "Seu navegador não suporta WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, você pode ajustar o comportamento dos compartilhamentos. Consulte a documentação para obter mais informações.",
- "You need to enable the File sharing App." : "Você precisa habilitar o aplicativo de compartilhamento de arquivos.",
- "App Store" : "Loja de aplicativos",
- "Loading app list" : "Carregando lista de aplicativos",
- "Loading categories" : "Carregando categorias",
- "Developer documentation ↗" : "Documentação do desenvolvedor ↗",
- "Version {version}, {license}-licensed" : "Versão {version}, licenciada por {license}",
- "Version {version}" : "Versão {version}",
- "All accounts" : "Todas as contas",
- "Admins" : "Administradores",
- "Account group: {group}" : "Grupo de contas: {group}",
- "Account management" : "Gerenciamento de contas",
+ "Delete group" : "Excluir grupo",
"Sending…" : "Enviando...",
"Email sent" : "E-mail enviado",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Por motivos de desempenho, quando você ativa a criptografia em um servidor Nextcloud, somente os arquivos novos e alterados são criptografados.",
@@ -790,6 +511,7 @@
"Date of birth" : "Data de nascimento",
"Full name" : "Nome completo",
"Additional email" : "E-mail adicional ",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverso (p. ex. Mastodon)",
"Headline" : "Título",
"Organisation" : "Organização",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X (anteriormente Twitter)",
"Website" : "Website",
"Profile visibility" : "Visibilidade do perfil",
+ "Language" : "Idioma",
"Locale" : "Configuração regional",
"First day of week" : "Primeiro dia da semana",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Não disponível porque esta propriedade é necessária para a funcionalidade principal, incluindo compartilhamento de arquivos e convites de calendário",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "Mostrar apenas para contas logadas",
"Hide" : "Ocultar",
"Manually installed apps cannot be updated" : "Aplicativos instalados manualmente não podem ser atualizados",
+ "Update to {version}" : "Atualizar para {version}",
"{progress}% Deploying …" : "{progress}% Implantando …",
"{progress}% Initializing …" : "{progress}% Inicializando …",
"Health checking" : "Verificação de saúde",
@@ -825,6 +549,7 @@
"Allow untested app" : "Permitir aplicativo não testado",
"The app will be downloaded from the App Store" : "O aplicativo será baixado da Loja de Aplicativos",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Este aplicativo não está marcado como compatível com sua versão do Nextcloud. Se você continuar, ainda poderá instalar o aplicativo mas poderá não funcionar como esperado.",
+ "{size} used" : "{size} usado",
"Unknown" : "Desconhecido",
"Never" : "Nunca",
"Could not register device: Network error" : "Não foi possível registrar o dispositivo: Erro de rede",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "Não foi possível definir a classificação de grupo",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houve muitas solicitações de sua rede. Tente novamente mais tarde ou entre em contato com o administrador se isso for um erro.",
"Error" : "Erro",
+ "Default quota" : "Cota padrão",
"Account documentation" : "Documentação da conta",
"Administration documentation" : "Documentação de administração",
+ "Documentation" : "Documentação",
"Forum" : "Fórum",
"Nextcloud help & privacy resources" : "Ajuda & recursos de privacidade do Nextcloud",
"General documentation" : "Documentação geral",
@@ -867,6 +594,7 @@
"SMTP Password" : "Senha SMTP",
"Save" : "Salvar",
"Test and verify email settings" : "Testar e verificar as configurações de e-mail",
+ "Send email" : "Enviar e-mail",
"Security & setup warnings" : "Segurança & avisos de configuração",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Para segurança e desempenho da sua instalação é importante que tudo esteja configurado corretamente. Para ajudá-lo com isso, estamos fazendo algumas verificações automáticas. Consulte a documentação para mais informações.",
"All checks passed." : "Todas as verificações passaram.",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "Use um segundo fator além de sua senha para aumentar a segurança da conta.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Se usar aplicativos de terceiros para se conectar ao Nextcloud, certifique-se de criar e configurar uma senha para cada aplicativo antes de habilitar a autenticação em duas etapas.",
"Logged in account must be a subadmin" : "A conta logada deve ser um subadmininistrador",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Para permitir que esta verificação seja executada, você deve certificar-se de que seu servidor web pode se conectar a si mesmo. Portanto, ele deve ser capaz de resolver e conectar-se a pelo menos um de seus `trusted_domains` ou `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "Faltando índice opcional \"%s\" na tabela \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Estão faltando alguns índices no banco de dados. Devido ao fato de que adicionar índices em tabelas grandes pode levar algum tempo, eles não foram adicionados automaticamente. Ao executar \"occ db:add-missing-indices\", os índices ausentes podem ser adicionados manualmente enquanto o Nextcloud continua em execução. Depois que os índices são adicionados, as consultas a essas tabelas geralmente são muito mais rápidas.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que esta verificação seja executada, você deve certificar-se de que seu servidor web pode se conectar a si mesmo. Portanto, ele deve ser capaz de resolver e conectar-se a pelo menos um de seus `trusted_domains` ou `overwrite.cli.url`. Esta falha pode ser o resultado de uma incompatibilidade de DNS no servidor ou de uma regra de firewall de saída.",
"File locking" : "Bloqueio de arquivo",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "O bloqueio de arquivo transacional está desabilitado, isso pode levar a problemas com condições de corrida. Habilite \"filelocking.enabled\" em config.php para evitar estes problemas.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Não foi possível verificar o suporte a JavaScript por meio de nenhum dos seus `trusted_domains` nem `overwrite.cli.url`. Isso pode ser o resultado de uma incompatibilidade de DNS no servidor ou de uma regra de firewall de saída. Verifique manualmente se o seu servidor web serve arquivos `.mjs` usando o tipo MIME JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "O limite de memória do PHP está abaixo do valor recomendado de %s.",
"for WebAuthn passwordless login" : "para login sem senha via WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "para login sem senha via WebAuthn e armazenamento SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "No momento, você está executando PHP %s. PHP 8.0 agora está obsoleto no Nextcloud 27. Nextcloud 28 pode exigir pelo menos PHP 8.1. Atualize para uma das versões PHP com suporte oficial fornecidas pelo PHP Group o mais rápido possível.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "A versão do MariaDB \"%s\" está sendo usada. Nextcloud 21 e superior não suportam esta versão e requerem MariaDB 10.2 ou superior.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "A versão do MySQL \"%s\" está sendo usada. Nextcloud 21 e superior não suportam esta versão e requerem MySQL 8.0 ou MariaDB 10.2 ou superior.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "A versão do PostgreSQL \"%s\" está sendo usada. Nextcloud 21 e superior não suportam esta versão e requerem o PostgreSQL 9.6 ou superior.",
- "Speech-To-Text" : "Fala-Para-Texto",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "O Fala-Para-Texto pode ser implementado por diferentes aplicativos. Aqui você pode definir qual aplicativo deve ser usado.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Nenhum dos seus aplicativos atualmente instalados fornece a funcionalidade Fala-Para-Texto",
- "None of your currently installed apps provide Text processing functionality" : "Nenhum dos seus aplicativos atualmente instalados fornece funcionalidade de processamento de texto",
- "Set default expiration date for shares" : "Definir data de validade padrão para compartilhamentos",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Permitir preenchimento automático de nome de usuário na caixa de diálogo de compartilhamento e permitir acesso ao catálogo de endereços do sistema",
- "Your biography" : "Sua biografia",
- "You are using <strong>{usage}</strong>" : "Você está usando <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Você está usando <strong>{usage}</strong> de <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Definir gerente de usuário",
- "Username will be autogenerated" : "O nome de usuário será autogerado",
- "Username (required)" : "Nome de usuário (obrigatório)",
- "New user" : "Novo usuário",
- "Groups (required)" : "Grupos (obrigatório)",
- "Set user groups" : "Definir grupos do usuário",
- "Administered groups" : "Grupos administrados",
- "Set user as admin for …" : "Definir o usuário como administrador para …",
- "Set user quota" : "Definir cota do usuário",
- "Add new user" : "Adicionar novo usuário",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} usuário …","{userCount} usuários …","{userCount} usuários …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} usuário","{userCount} usuários","{userCount} usuários"],
- "Loading users …" : "Carregando usuários …",
- "Username" : "Nome de Usuário",
- "User backend" : "Plataforma de serviço de usuário",
- "User actions" : "Ações do usuário",
- "Add user to group" : "Adicionar usuário ao grupo",
- "Server error while trying to add WebAuthn device" : "Erro no servidor ao adicionar o dispositivo WebAuthn",
- "Name your device" : "Nomeie seu dispositivo",
- "Active accounts" : "Contas ativas",
- "Follow us on Twitter" : "Siga-nos no Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Para permitir que esta verificação seja executada, você deve certificar-se de que seu servidor web pode se conectar a si mesmo. Portanto, ele deve ser capaz de resolver e conectar-se a pelo menos um de seus `trusted_domains` ou `overwrite.cli.url`. Esta falha pode ser o resultado de uma incompatibilidade de DNS no servidor ou de uma regra de firewall de saída.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- O cabeçalho HTTP `%1$s` não contém `%2$s`. Este é um possível risco à segurança ou à privacidade, portanto, é recomendável ajustar esta configuração de acordo.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Versão do PostgreSQL \"%s\" detectada. PostgreSQL >=12 e <=16 é sugerido para melhor desempenho, estabilidade e funcionalidade com esta versão do Nextcloud.",
- "Failed to load subadmin groups with details" : "Falha ao carregar grupos de subadministradores com detalhes"
+ "Set default expiration date for shares" : "Definir data de validade padrão para compartilhamentos"
},"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/settings/l10n/pt_PT.js b/apps/settings/l10n/pt_PT.js
index c9fe6f0d14a..30385f3c85b 100644
--- a/apps/settings/l10n/pt_PT.js
+++ b/apps/settings/l10n/pt_PT.js
@@ -133,52 +133,10 @@ OC.L10N.register(
"_Update_::_Update all_" : ["Atualizar","Atualizar todos","Atualizar todos"],
"Group name" : "Nome do grupo",
"Loading" : "A carregar",
- "Type" : "Tipo",
- "Learn more" : "Conheça melhor",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descrição",
- "View in store" : "Ver na loja",
- "Visit website" : "Visitar o website",
- "Admin documentation" : "Documentação do Administrador",
- "Developer documentation" : "Documentação de Programador",
- "Details" : "Detalhes",
- "All" : "Todos",
- "No results" : "Sem resultados",
- "Update to {version}" : "Atualizar para {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta app não tem a versão mínima do Nextcloud atribuída. Isto será um erro no futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta app não tem a versão máxima do Nextcloud atribuída. Isto será um erro no futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicação não pode ser instalada porque as seguintes dependências não podem ser realizadas:",
- "Author" : "Autor",
- "Categories" : "Categorias",
- "Resources" : "Recursos",
- "Documentation" : "Documentação",
- "Interact" : "Interagir",
- "Report a bug" : "Reportar um erro",
- "Request feature" : "Pedir funcionalidade",
- "Ask questions or discuss" : "Perguntar ou discutir",
- "Rate" : "Classificar",
- "Changelog" : "Registo de alterações",
- "Google Chrome for Android" : "Google Chrome para Android",
- "Sync client" : "Sincronizar cliente",
- "This session" : "Esta sessão",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device settings" : "Definições de dispositivo",
- "Allow filesystem access" : "Permitir acesso ao sistema de ficheiros",
- "Rename" : "Renomear",
- "Revoke" : "Revogar",
- "Wipe device" : "Apagar dispositivo",
- "Device" : "Dispositivo",
- "Last activity" : "Última atividade",
- "Devices & sessions" : "Sessões e dispositivos",
- "Web, desktop and mobile clients currently logged in to your account." : "Os clientes da Web, de PC e móveis estão atualmente autenticados na sua conta.",
- "Error while creating device token" : "Erro durante a criação do token do dispositivo",
- "App name" : "Nome da App",
- "Create new app password" : "Criar nova palavra-passe de aplicação",
"Login" : "Iniciar Sessão",
"Password" : "Palavra-passe",
"Profile" : "Perfil",
+ "Password confirmation is required" : "Confirmação de senha necessária",
"Server-side encryption" : "Atualizar App",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "A cifra do lado do servidor possibilita cifrar os ficheiros que serão enviados para este servidor. Isto implica um impacto no desempenho e só deverá ser ativo quando necessário.",
"Enable server-side encryption" : "Ativar encriptação do lado do servidor",
@@ -190,80 +148,42 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Tenha em conta que a encriptação aumenta sempre o tamanho do ficheiro.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "É sempre bom criar cópias de segurança regulares dos seus dados, em caso de encriptação tenha a certeza de que faz cópia das chaves de encriptação em conjunto com os seus dados.",
"This is the final warning: Do you really want to enable encryption?" : "Este é o aviso final: quer mesmo ativar a encriptação?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Submeter",
- "Current password" : "Palavra-passe atual",
- "New password" : "Nova palavra-passe",
- "Change password" : "Alterar palavra-passe",
- "Choose your profile picture" : "Escolher imagem de perfil",
- "Please select a valid png or jpg file" : "Escolha ficheiro png ou jpg válido",
- "Error setting profile picture" : "Erro a definir imagem de perfil",
- "Error cropping profile picture" : "Erro a cortar imagem de perfil",
- "Error saving profile picture" : "Erro a guardar imagem de perfil",
- "Error removing profile picture" : "Erro a remover imagem de perfil",
- "Your profile picture" : "Imagem de perfil",
- "Upload profile picture" : "Atualização de imagem de perfil",
- "Choose profile picture from Files" : "Escolher a imagem de perfil em Ficheiros",
- "Remove profile picture" : "Remover imagem de perfil",
- "Picture provided by original account" : "Imagem fornecida pela conta original",
- "Set as profile picture" : "Definir como imagem de perfil",
- "You are a member of the following groups:" : "Membro dos seguintes grupos:",
- "Your full name" : "Nome completo",
- "Email options" : "Opções de correio eletrónico",
- "Remove primary email" : "Remoção de correio eletrónico principal",
- "Delete email" : "Apagar correio eletrónico",
- "Unset as primary email" : "Remove atribuição de correio eletrónico como principal",
- "No email address set" : "Nenhum endereço de email estabelecido",
- "Help translate" : "Ajude a traduzir",
- "Your phone number" : "O seu número de telefone",
- "Add" : "Adicionar",
- "Create" : "Criar",
- "Change" : "Mudar",
- "Delete" : "Apagar",
- "Reshare" : "Partilhar novamente",
- "Display name" : "Nome de apresentação",
- "Email" : "Email",
- "Quota" : "Quota",
- "Language" : "Idioma",
- "Total rows summary" : "Resumo do total de linhas",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador de grupo para",
- "Storage location" : "Localização do armazenamento",
- "Last login" : "Último início de sessão",
- "{size} used" : "{size} utilizado",
- "Done" : "Concluído",
- "Edit" : "Editar",
- "Visibility" : "Visibilidade",
- "Show last login" : "Mostrar último início de sessão",
- "Send email" : "Enviar email",
- "Default quota" : "Quota padrão",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador pode afinar o comportamento de partilha. Por favor veja a documentação para mais informação.",
- "Admins" : "Administrador",
"Sending…" : "A enviar...",
"Email sent" : "Mensagem de correio eletrónico enviada",
"Location" : "Localização",
"Profile picture" : "Foto do perfil",
"About" : "Sobre",
"Full name" : "Nome completo",
+ "Email" : "Email",
"Headline" : "Título ",
"Organisation" : "Organização",
"Phone number" : "Número de telefone",
"Role" : "Função",
"Website" : "Website",
+ "Language" : "Idioma",
"Your apps" : "As suas apps",
"Disabled apps" : "Apps desativadas",
"Updates" : "Atualizações",
"App bundles" : "Pacotes de apps",
"Featured apps" : "Aplicações principais",
"Hide" : "Ocultar",
+ "Update to {version}" : "Atualizar para {version}",
"Download and enable" : "Transferir e ativar",
"Disable" : "Desativar",
"The app will be downloaded from the App Store" : "A aplicação será transferida da App Store",
+ "{size} used" : "{size} utilizado",
"Unknown" : "Desconhecido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "A aplicação foi ativada mas necessita ser atualizada. Irá ser redirecionado para a página de atualização em 5 segundos.",
"Do you really want to wipe your data from this device?" : "Tem a certeza que deseja apagar os dados deste dispositivo?",
"Confirm wipe" : "Confirmação de limpeza",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Foram efetuados demasiados pedidos a partir da sua rede. Tente mais tarde ou contacte o administrador se for um erro.",
"Error" : "Erro",
+ "Default quota" : "Quota padrão",
+ "Documentation" : "Documentação",
"Forum" : "Fórum",
"Legal notice" : "Informação legal",
"Privacy policy" : "Política de privacidade",
@@ -280,16 +200,13 @@ OC.L10N.register(
"Credentials" : "Credenciais",
"SMTP Password" : "Palavra-passe SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar email",
"Security & setup warnings" : "Avisos de configuração e segurança",
"All checks passed." : "Todas as verificações passaram.",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolvido pela [communityopen]Comunidade Nextcloud[linkclose]. O [githubcode]código fonte[/linkclose] está licenciado sob [licenseopen]AGPL[linkclose].",
"Like our Facebook page" : "Deixe um Gosto na nossa página do Facebook",
"Check out our blog" : "Veja o nosso blog",
"Subscribe to our newsletter" : "Subscreva as nossas notícias",
- "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Este lançamento comunitário do Nextcloud não é compatível e as notificações instantâneas não estão disponíveis.",
- "Your biography" : "Biografia",
- "Username" : "Nome de utilizador",
- "User backend" : "Backend do utilizador",
- "Follow us on Twitter" : "Siga-nos no Twitter"
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Este lançamento comunitário do Nextcloud não é compatível e as notificações instantâneas não estão disponíveis."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/settings/l10n/pt_PT.json b/apps/settings/l10n/pt_PT.json
index 8dd56c1dc4e..91077199099 100644
--- a/apps/settings/l10n/pt_PT.json
+++ b/apps/settings/l10n/pt_PT.json
@@ -131,52 +131,10 @@
"_Update_::_Update all_" : ["Atualizar","Atualizar todos","Atualizar todos"],
"Group name" : "Nome do grupo",
"Loading" : "A carregar",
- "Type" : "Tipo",
- "Learn more" : "Conheça melhor",
- "Confirm" : "Confirmar",
- "Cancel" : "Cancelar",
- "Description" : "Descrição",
- "View in store" : "Ver na loja",
- "Visit website" : "Visitar o website",
- "Admin documentation" : "Documentação do Administrador",
- "Developer documentation" : "Documentação de Programador",
- "Details" : "Detalhes",
- "All" : "Todos",
- "No results" : "Sem resultados",
- "Update to {version}" : "Atualizar para {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta app não tem a versão mínima do Nextcloud atribuída. Isto será um erro no futuro.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta app não tem a versão máxima do Nextcloud atribuída. Isto será um erro no futuro.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicação não pode ser instalada porque as seguintes dependências não podem ser realizadas:",
- "Author" : "Autor",
- "Categories" : "Categorias",
- "Resources" : "Recursos",
- "Documentation" : "Documentação",
- "Interact" : "Interagir",
- "Report a bug" : "Reportar um erro",
- "Request feature" : "Pedir funcionalidade",
- "Ask questions or discuss" : "Perguntar ou discutir",
- "Rate" : "Classificar",
- "Changelog" : "Registo de alterações",
- "Google Chrome for Android" : "Google Chrome para Android",
- "Sync client" : "Sincronizar cliente",
- "This session" : "Esta sessão",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device settings" : "Definições de dispositivo",
- "Allow filesystem access" : "Permitir acesso ao sistema de ficheiros",
- "Rename" : "Renomear",
- "Revoke" : "Revogar",
- "Wipe device" : "Apagar dispositivo",
- "Device" : "Dispositivo",
- "Last activity" : "Última atividade",
- "Devices & sessions" : "Sessões e dispositivos",
- "Web, desktop and mobile clients currently logged in to your account." : "Os clientes da Web, de PC e móveis estão atualmente autenticados na sua conta.",
- "Error while creating device token" : "Erro durante a criação do token do dispositivo",
- "App name" : "Nome da App",
- "Create new app password" : "Criar nova palavra-passe de aplicação",
"Login" : "Iniciar Sessão",
"Password" : "Palavra-passe",
"Profile" : "Perfil",
+ "Password confirmation is required" : "Confirmação de senha necessária",
"Server-side encryption" : "Atualizar App",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "A cifra do lado do servidor possibilita cifrar os ficheiros que serão enviados para este servidor. Isto implica um impacto no desempenho e só deverá ser ativo quando necessário.",
"Enable server-side encryption" : "Ativar encriptação do lado do servidor",
@@ -188,80 +146,42 @@
"Be aware that encryption always increases the file size." : "Tenha em conta que a encriptação aumenta sempre o tamanho do ficheiro.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "É sempre bom criar cópias de segurança regulares dos seus dados, em caso de encriptação tenha a certeza de que faz cópia das chaves de encriptação em conjunto com os seus dados.",
"This is the final warning: Do you really want to enable encryption?" : "Este é o aviso final: quer mesmo ativar a encriptação?",
+ "Cancel" : "Cancelar",
+ "Confirm" : "Confirmar",
"Submit" : "Submeter",
- "Current password" : "Palavra-passe atual",
- "New password" : "Nova palavra-passe",
- "Change password" : "Alterar palavra-passe",
- "Choose your profile picture" : "Escolher imagem de perfil",
- "Please select a valid png or jpg file" : "Escolha ficheiro png ou jpg válido",
- "Error setting profile picture" : "Erro a definir imagem de perfil",
- "Error cropping profile picture" : "Erro a cortar imagem de perfil",
- "Error saving profile picture" : "Erro a guardar imagem de perfil",
- "Error removing profile picture" : "Erro a remover imagem de perfil",
- "Your profile picture" : "Imagem de perfil",
- "Upload profile picture" : "Atualização de imagem de perfil",
- "Choose profile picture from Files" : "Escolher a imagem de perfil em Ficheiros",
- "Remove profile picture" : "Remover imagem de perfil",
- "Picture provided by original account" : "Imagem fornecida pela conta original",
- "Set as profile picture" : "Definir como imagem de perfil",
- "You are a member of the following groups:" : "Membro dos seguintes grupos:",
- "Your full name" : "Nome completo",
- "Email options" : "Opções de correio eletrónico",
- "Remove primary email" : "Remoção de correio eletrónico principal",
- "Delete email" : "Apagar correio eletrónico",
- "Unset as primary email" : "Remove atribuição de correio eletrónico como principal",
- "No email address set" : "Nenhum endereço de email estabelecido",
- "Help translate" : "Ajude a traduzir",
- "Your phone number" : "O seu número de telefone",
- "Add" : "Adicionar",
- "Create" : "Criar",
- "Change" : "Mudar",
- "Delete" : "Apagar",
- "Reshare" : "Partilhar novamente",
- "Display name" : "Nome de apresentação",
- "Email" : "Email",
- "Quota" : "Quota",
- "Language" : "Idioma",
- "Total rows summary" : "Resumo do total de linhas",
- "Avatar" : "Avatar",
- "Group admin for" : "Administrador de grupo para",
- "Storage location" : "Localização do armazenamento",
- "Last login" : "Último início de sessão",
- "{size} used" : "{size} utilizado",
- "Done" : "Concluído",
- "Edit" : "Editar",
- "Visibility" : "Visibilidade",
- "Show last login" : "Mostrar último início de sessão",
- "Send email" : "Enviar email",
- "Default quota" : "Quota padrão",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador pode afinar o comportamento de partilha. Por favor veja a documentação para mais informação.",
- "Admins" : "Administrador",
"Sending…" : "A enviar...",
"Email sent" : "Mensagem de correio eletrónico enviada",
"Location" : "Localização",
"Profile picture" : "Foto do perfil",
"About" : "Sobre",
"Full name" : "Nome completo",
+ "Email" : "Email",
"Headline" : "Título ",
"Organisation" : "Organização",
"Phone number" : "Número de telefone",
"Role" : "Função",
"Website" : "Website",
+ "Language" : "Idioma",
"Your apps" : "As suas apps",
"Disabled apps" : "Apps desativadas",
"Updates" : "Atualizações",
"App bundles" : "Pacotes de apps",
"Featured apps" : "Aplicações principais",
"Hide" : "Ocultar",
+ "Update to {version}" : "Atualizar para {version}",
"Download and enable" : "Transferir e ativar",
"Disable" : "Desativar",
"The app will be downloaded from the App Store" : "A aplicação será transferida da App Store",
+ "{size} used" : "{size} utilizado",
"Unknown" : "Desconhecido",
"Never" : "Nunca",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "A aplicação foi ativada mas necessita ser atualizada. Irá ser redirecionado para a página de atualização em 5 segundos.",
"Do you really want to wipe your data from this device?" : "Tem a certeza que deseja apagar os dados deste dispositivo?",
"Confirm wipe" : "Confirmação de limpeza",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Foram efetuados demasiados pedidos a partir da sua rede. Tente mais tarde ou contacte o administrador se for um erro.",
"Error" : "Erro",
+ "Default quota" : "Quota padrão",
+ "Documentation" : "Documentação",
"Forum" : "Fórum",
"Legal notice" : "Informação legal",
"Privacy policy" : "Política de privacidade",
@@ -278,16 +198,13 @@
"Credentials" : "Credenciais",
"SMTP Password" : "Palavra-passe SMTP",
"Save" : "Guardar",
+ "Send email" : "Enviar email",
"Security & setup warnings" : "Avisos de configuração e segurança",
"All checks passed." : "Todas as verificações passaram.",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolvido pela [communityopen]Comunidade Nextcloud[linkclose]. O [githubcode]código fonte[/linkclose] está licenciado sob [licenseopen]AGPL[linkclose].",
"Like our Facebook page" : "Deixe um Gosto na nossa página do Facebook",
"Check out our blog" : "Veja o nosso blog",
"Subscribe to our newsletter" : "Subscreva as nossas notícias",
- "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Este lançamento comunitário do Nextcloud não é compatível e as notificações instantâneas não estão disponíveis.",
- "Your biography" : "Biografia",
- "Username" : "Nome de utilizador",
- "User backend" : "Backend do utilizador",
- "Follow us on Twitter" : "Siga-nos no Twitter"
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Este lançamento comunitário do Nextcloud não é compatível e as notificações instantâneas não estão disponíveis."
},"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/settings/l10n/ro.js b/apps/settings/l10n/ro.js
index bb160a45ffa..e3e2989988b 100644
--- a/apps/settings/l10n/ro.js
+++ b/apps/settings/l10n/ro.js
@@ -146,99 +146,39 @@ OC.L10N.register(
"Actions" : "Acțiuni",
"No apps found for your version" : "Nu au fost găsite aplicații pentru versiunea ta",
"Group name" : "Numele grupului",
- "Type" : "Tip",
- "Learn more" : "Află mai mult",
- "Confirm" : "Confirmă",
- "Cancel" : "Anulare",
- "Description" : "Descriere",
- "View in store" : "Vezi în magazin",
- "Visit website" : "Viziteaza pagina web",
- "Admin documentation" : "Documentație pentru administrare",
- "Developer documentation" : "Documentație pentru dezvoltatori",
- "Details" : "Detalii",
- "All" : "Toate ",
- "No results" : "Niciun rezultat",
- "Update to {version}" : "Actualizare la {version}",
- "Author" : "Autor",
- "Categories" : "Categori",
- "Resources" : "Resurse",
- "Documentation" : "Documentație",
- "Interact" : "Interacționați",
- "Report a bug" : "Raportează un defect",
- "Request feature" : "Solicitare funcționalități",
- "Ask questions or discuss" : "Puneți întrebări sau participați la discuții",
- "Changelog" : "Listă modificări",
- "Google Chrome for Android" : "Google Chrome for Android",
- "This session" : "Această sesiune",
- "Device settings" : "Setările dispozitivului",
- "Allow filesystem access" : "Permite accesul la fișierele de sistem",
- "Rename" : "Redenumește",
- "Revoke" : "Revocă",
- "Device" : "Dispozitiv",
- "Last activity" : "Ultima activitate",
- "Devices & sessions" : "Dispozitive și sesiuni",
- "Web, desktop and mobile clients currently logged in to your account." : "Clienții web, desktop și mobil conectați în prezent la contul dvs.",
- "Error while creating device token" : "Eroare la crearea token-ului de dispozitiv",
- "App name" : "Numele aplicației",
- "Create new app password" : "Crează o nouă parolă pentru aplicație",
"Login" : "Autentificare",
"Password" : "Parolă",
+ "Password confirmation is required" : "Confirmarea parolei este necesară",
"Server-side encryption" : "Criptare la nivel de server",
"Enable server-side encryption" : "Activează criptarea pe server",
"Select default encryption module:" : "Selectează modulul implicit de criptare:",
"Enable encryption" : "Activează criptarea",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Criptarea, ca unică variantă, nu garantează securitatea sistemului. Consultați documentația pentru mai multe informații despre cum funcționează aplicația de criptare și variantele de utilizare acceptate.",
"This is the final warning: Do you really want to enable encryption?" : "Aceasta este avertizarea finală: Chiar vrei să activezi criptarea?",
+ "Cancel" : "Anulare",
+ "Confirm" : "Confirmă",
"Submit" : "Trimite",
- "Remove group" : "Înlătură grupul",
- "Current password" : "Parola curentă",
- "New password" : "Noua parolă",
- "Change password" : "Schimbă parola",
- "No email address set" : "Fără adresă de email setată",
- "Help translate" : "Ajută la traducere",
- "Your phone number" : "Numărul tău de telefon",
- "Add" : "Adaugă",
- "Create" : "Creează",
- "Change" : "Schimbă",
- "Delete" : "Șterge",
- "Reshare" : "Redistribuiți",
- "Default language" : "Limba implicită",
- "Display name" : "Nume afișat",
- "Email" : "Email",
- "Quota" : "Cotă",
- "Language" : "Limba",
- "Total rows summary" : "Rezumat total rânduri",
- "Avatar" : "Avatar",
- "Last login" : "Ultima autentificare",
- "{size} used" : "{size} folosită",
- "Done" : "Realizat",
- "Edit" : "Editează",
- "Visibility" : "Vizibil",
- "Show last login" : "Arată ultima autentificare",
- "Send email" : "Expediază mesajul",
- "Server error while trying to complete WebAuthn device registration" : "Eroare de server în timpul încercării de a finaliza înregistrarea dispozitivului WebAuthn",
- "Add WebAuthn device" : "Adăugați dispozitivul WebAuthn",
- "Adding your device …" : "Adăugarea dispozitivului dvs ...",
- "Unnamed device" : "Dispozitiv fără nume",
- "Your browser does not support WebAuthn." : "Browserul dvs. nu acceptă WebAuthn.",
- "Admins" : "Administratori",
"Sending…" : "Se trimite...",
"Email sent" : "Mesajul a fost expediat",
"Location" : "Locație",
"Profile picture" : "Imagine de profil",
"About" : "Despre",
"Full name" : "Nume complet",
+ "Email" : "Email",
"Headline" : "Titlu",
"Organisation" : "Organizație",
"Phone number" : "Număr telefon",
"Role" : "Rol",
"Website" : "Site web",
+ "Language" : "Limba",
"Your apps" : "Aplicațiile tale",
"Disabled apps" : "Aplicații inactive",
"Updates" : "Actualizări",
"Featured apps" : "Aplicații recomandate",
"Hide" : "Ascunde",
+ "Update to {version}" : "Actualizare la {version}",
"Disable" : "Dezactivați",
+ "{size} used" : "{size} folosită",
"Unknown" : "Necunoscut",
"Never" : "Niciodată",
"Do you really want to wipe your data from this device?" : "Chiar doriți să vă ștergeți datele de pe acest dispozitiv?",
@@ -248,6 +188,7 @@ OC.L10N.register(
"Error while updating device token scope" : "Eroare la actualizarea domeniului de aplicare a token-ului de dispozitiv",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Prea multe cereri din această rețea. Încercați mai târziu sau contactați administratorul.",
"Error" : "Eroare",
+ "Documentation" : "Documentație",
"Forum" : "Forum",
"Legal notice" : "Aviz juridic",
"SSL" : "SSL",
@@ -262,11 +203,9 @@ OC.L10N.register(
"Credentials" : "Detalii de autentificare",
"SMTP Password" : "Parolă SMTP",
"Save" : "Salvează",
+ "Send email" : "Expediază mesajul",
"Security & setup warnings" : "Alerte de securitate & configurare",
"All checks passed." : "Toate verificările s-au terminat fără erori.",
- "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Această versiune comunitară a Nextcloud nu este suportată, iar notificările instantanee nu sunt disponibile.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Lipsesc indecși din baza de date. Datorită faptului că adăugarea indecșilor la tabelele mari durează mult, aceștia nu au fost adăugați automat. Rulând \"occ db:add-missing-indices\", indecși lipsă pot fi adăugați manual în timp ce instanța rulează în continuare. Odată ce indecșii au fost adăugați, interogările acelor tabele vor fi de obicei mai rapide.",
- "Username" : "Nume utilizator",
- "Name your device" : "Numiți dispozitivul dvs."
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Această versiune comunitară a Nextcloud nu este suportată, iar notificările instantanee nu sunt disponibile."
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/settings/l10n/ro.json b/apps/settings/l10n/ro.json
index 84186fcf74a..2a88dff6d1b 100644
--- a/apps/settings/l10n/ro.json
+++ b/apps/settings/l10n/ro.json
@@ -144,99 +144,39 @@
"Actions" : "Acțiuni",
"No apps found for your version" : "Nu au fost găsite aplicații pentru versiunea ta",
"Group name" : "Numele grupului",
- "Type" : "Tip",
- "Learn more" : "Află mai mult",
- "Confirm" : "Confirmă",
- "Cancel" : "Anulare",
- "Description" : "Descriere",
- "View in store" : "Vezi în magazin",
- "Visit website" : "Viziteaza pagina web",
- "Admin documentation" : "Documentație pentru administrare",
- "Developer documentation" : "Documentație pentru dezvoltatori",
- "Details" : "Detalii",
- "All" : "Toate ",
- "No results" : "Niciun rezultat",
- "Update to {version}" : "Actualizare la {version}",
- "Author" : "Autor",
- "Categories" : "Categori",
- "Resources" : "Resurse",
- "Documentation" : "Documentație",
- "Interact" : "Interacționați",
- "Report a bug" : "Raportează un defect",
- "Request feature" : "Solicitare funcționalități",
- "Ask questions or discuss" : "Puneți întrebări sau participați la discuții",
- "Changelog" : "Listă modificări",
- "Google Chrome for Android" : "Google Chrome for Android",
- "This session" : "Această sesiune",
- "Device settings" : "Setările dispozitivului",
- "Allow filesystem access" : "Permite accesul la fișierele de sistem",
- "Rename" : "Redenumește",
- "Revoke" : "Revocă",
- "Device" : "Dispozitiv",
- "Last activity" : "Ultima activitate",
- "Devices & sessions" : "Dispozitive și sesiuni",
- "Web, desktop and mobile clients currently logged in to your account." : "Clienții web, desktop și mobil conectați în prezent la contul dvs.",
- "Error while creating device token" : "Eroare la crearea token-ului de dispozitiv",
- "App name" : "Numele aplicației",
- "Create new app password" : "Crează o nouă parolă pentru aplicație",
"Login" : "Autentificare",
"Password" : "Parolă",
+ "Password confirmation is required" : "Confirmarea parolei este necesară",
"Server-side encryption" : "Criptare la nivel de server",
"Enable server-side encryption" : "Activează criptarea pe server",
"Select default encryption module:" : "Selectează modulul implicit de criptare:",
"Enable encryption" : "Activează criptarea",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Criptarea, ca unică variantă, nu garantează securitatea sistemului. Consultați documentația pentru mai multe informații despre cum funcționează aplicația de criptare și variantele de utilizare acceptate.",
"This is the final warning: Do you really want to enable encryption?" : "Aceasta este avertizarea finală: Chiar vrei să activezi criptarea?",
+ "Cancel" : "Anulare",
+ "Confirm" : "Confirmă",
"Submit" : "Trimite",
- "Remove group" : "Înlătură grupul",
- "Current password" : "Parola curentă",
- "New password" : "Noua parolă",
- "Change password" : "Schimbă parola",
- "No email address set" : "Fără adresă de email setată",
- "Help translate" : "Ajută la traducere",
- "Your phone number" : "Numărul tău de telefon",
- "Add" : "Adaugă",
- "Create" : "Creează",
- "Change" : "Schimbă",
- "Delete" : "Șterge",
- "Reshare" : "Redistribuiți",
- "Default language" : "Limba implicită",
- "Display name" : "Nume afișat",
- "Email" : "Email",
- "Quota" : "Cotă",
- "Language" : "Limba",
- "Total rows summary" : "Rezumat total rânduri",
- "Avatar" : "Avatar",
- "Last login" : "Ultima autentificare",
- "{size} used" : "{size} folosită",
- "Done" : "Realizat",
- "Edit" : "Editează",
- "Visibility" : "Vizibil",
- "Show last login" : "Arată ultima autentificare",
- "Send email" : "Expediază mesajul",
- "Server error while trying to complete WebAuthn device registration" : "Eroare de server în timpul încercării de a finaliza înregistrarea dispozitivului WebAuthn",
- "Add WebAuthn device" : "Adăugați dispozitivul WebAuthn",
- "Adding your device …" : "Adăugarea dispozitivului dvs ...",
- "Unnamed device" : "Dispozitiv fără nume",
- "Your browser does not support WebAuthn." : "Browserul dvs. nu acceptă WebAuthn.",
- "Admins" : "Administratori",
"Sending…" : "Se trimite...",
"Email sent" : "Mesajul a fost expediat",
"Location" : "Locație",
"Profile picture" : "Imagine de profil",
"About" : "Despre",
"Full name" : "Nume complet",
+ "Email" : "Email",
"Headline" : "Titlu",
"Organisation" : "Organizație",
"Phone number" : "Număr telefon",
"Role" : "Rol",
"Website" : "Site web",
+ "Language" : "Limba",
"Your apps" : "Aplicațiile tale",
"Disabled apps" : "Aplicații inactive",
"Updates" : "Actualizări",
"Featured apps" : "Aplicații recomandate",
"Hide" : "Ascunde",
+ "Update to {version}" : "Actualizare la {version}",
"Disable" : "Dezactivați",
+ "{size} used" : "{size} folosită",
"Unknown" : "Necunoscut",
"Never" : "Niciodată",
"Do you really want to wipe your data from this device?" : "Chiar doriți să vă ștergeți datele de pe acest dispozitiv?",
@@ -246,6 +186,7 @@
"Error while updating device token scope" : "Eroare la actualizarea domeniului de aplicare a token-ului de dispozitiv",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Prea multe cereri din această rețea. Încercați mai târziu sau contactați administratorul.",
"Error" : "Eroare",
+ "Documentation" : "Documentație",
"Forum" : "Forum",
"Legal notice" : "Aviz juridic",
"SSL" : "SSL",
@@ -260,11 +201,9 @@
"Credentials" : "Detalii de autentificare",
"SMTP Password" : "Parolă SMTP",
"Save" : "Salvează",
+ "Send email" : "Expediază mesajul",
"Security & setup warnings" : "Alerte de securitate & configurare",
"All checks passed." : "Toate verificările s-au terminat fără erori.",
- "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Această versiune comunitară a Nextcloud nu este suportată, iar notificările instantanee nu sunt disponibile.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Lipsesc indecși din baza de date. Datorită faptului că adăugarea indecșilor la tabelele mari durează mult, aceștia nu au fost adăugați automat. Rulând \"occ db:add-missing-indices\", indecși lipsă pot fi adăugați manual în timp ce instanța rulează în continuare. Odată ce indecșii au fost adăugați, interogările acelor tabele vor fi de obicei mai rapide.",
- "Username" : "Nume utilizator",
- "Name your device" : "Numiți dispozitivul dvs."
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Această versiune comunitară a Nextcloud nu este suportată, iar notificările instantanee nu sunt disponibile."
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
} \ No newline at end of file
diff --git a/apps/settings/l10n/ru.js b/apps/settings/l10n/ru.js
index 15da100a59f..4771fdf6796 100644
--- a/apps/settings/l10n/ru.js
+++ b/apps/settings/l10n/ru.js
@@ -104,6 +104,7 @@ OC.L10N.register(
"Set your password" : "Задайте свой пароль",
"Go to %s" : "Перейти к %s",
"Install Client" : "Установить программу-клиент",
+ "Logged in account must be a sub admin" : "Зарегистрированная учетная запись должна быть субадминистратором",
"Apps" : "Приложения",
"Personal" : "Параметры пользователя",
"Administration" : "Параметры сервера",
@@ -163,6 +164,7 @@ OC.L10N.register(
"Database missing indices" : "В базе данных отсутствуют некоторые индексы",
"Missing indices:" : "Отсутствующие индексы:",
"\"%s\" in table \"%s\"" : "«%s» в таблице «%s»",
+ "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "Обнаружены некоторые отсутствующие необязательные индексы. Иногда добавляются новые индексы (с помощью Nextcloud или установленных приложений) для повышения производительности базы данных. Иногда добавление индексов может занимать некоторое время и временно снижать производительность, поэтому это не выполняется автоматически во время обновлений. После добавления индексов запросы к этим таблицам должны выполняться быстрее. Используйте команду `occ db:add-missing-indices`, чтобы добавить их.",
"Database missing primary keys" : "В базе данных отсутствуют первичные ключи",
"Missing primary key on table \"%s\"." : "В таблице «%s» отсутствует первичный ключ.",
"The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running \"occ db:add-missing-primary-keys\" those missing primary keys could be added manually while the instance keeps running." : "В базе данных отсутствуют некоторые первичные ключи. Поскольку добавление первичных ключей в большие таблицы могло занять некоторое время, они не добавлялись автоматически. Запустив команду «occ db: add-missing-primary-keys», эти недостающие первичные ключи можно добавить вручную, пока экземпляр продолжает работать.",
@@ -204,6 +206,8 @@ OC.L10N.register(
"Disabled" : "Отключено",
"The old server-side-encryption format is enabled. We recommend disabling this." : "Задействован устаревший режим шифрования файлов на стороне сервера. Рекомендуется отключить такое шифрование.",
"Logging level" : "Уровень системного журнала",
+ "The %1$s configuration option must be a valid integer value." : "Параметр конфигурации %1$s должен быть допустимым целым значением.",
+ "The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Уровень ведения журнала установлен на уровень отладки. Используйте уровень отладки только в том случае, если необходимо диагностировать проблему, а затем сбросьте уровень ведения журнала до менее подробного, поскольку при этом выводится много информации и это может повлиять на производительность сервера.",
"Logging level configured correctly." : "Уровень ведения системного журнала настроен правильно.",
"Maintenance window start" : "Начало окна обслуживания",
"Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks." : "Не настроено время начала окна обслуживания. Это означает, что ресурсоемкие ежедневные фоновые задачи будут выполняться во время основного использования. Рекомендуется установить время в период низкой активности, чтобы снизить влияние выполнения ресурсоемких процедур на пользователей.",
@@ -254,6 +258,7 @@ OC.L10N.register(
"PHP modules" : "Модули PHP",
"increases language translation performance and fixes sorting of non-ASCII characters" : "улучшает производительность при использовании переводов и исправляет сортировку не-ASCII символов",
"for Argon2 for password hashing" : "для использования функции Argon2 для хэширования паролей",
+ "required for SFTP storage and recommended for WebAuthn performance" : "требуется для хранения данных по протоколу SFTP и рекомендуется для повышения производительности WebAuthn",
"for picture rotation in server and metadata extraction in the Photos app" : "для поворота изображений и извлечения метаданных в приложении Фотографии",
"This instance is missing some required PHP modules. It is required to install them: %s." : "На этом сервере отсутствуют некоторые рекомендуемые модули PHP. Рекомендуется установить: %s.",
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s" : "На этом сервере не установлены некоторые рекомендуемые модули PHP. Для улучшения производительности и совместимости рекомендуется установить следующие модули:\n%s",
@@ -291,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "Заголовки HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP-заголовок не установлен на `%2$s`. Некоторые функции могут работать некорректно, поэтому рекомендуется соответствующим образом настроить этот параметр.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP-заголовок не установлен на `%2$s`. Это потенциальный риск безопасности или конфиденциальности, поэтому рекомендуется соответствующим образом настроить этот параметр.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP-заголовок не содержит `%2$s`. Это потенциальный риск безопасности или конфиденциальности, поэтому рекомендуется соответствующим образом настроить этот параметр.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Заголовок `%1$s` HTTP не установлен в `%2$s`, `%3$s`, `%4$s`, `%5$s` или `%6$s`. Это может привести к утечке информации о реферере. См. {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- HTTP-заголовок `Strict-Transport-Security` не установлен по крайней мере на `%d` секунд (текущее значение: `%d`). Для повышения безопасности рекомендуется использовать длинную политику HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP-заголовок `Strict-Transport-Security` имеет неверный формат: `%s`. Для повышения безопасности рекомендуется включить HSTS.",
@@ -310,6 +314,10 @@ OC.L10N.register(
"Architecture" : "Архитектура",
"64-bit" : "64-бита",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Похоже, вы используете 32-битную версию PHP. Для нормальной работы Nextcloud требуется 64-битная версия. Пожалуйста, обновите свою ОС и PHP до 64-битной версии!",
+ "Task Processing pickup speed" : "Скорость подхвата обработки задач",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Нет запланированных задач за последний час.","Нет запланированных задач за последние %n часа.","Нет запланированных задач за последние %n часов.","Нет запланированных задач за последние %n часов."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Скорость подхвата задач за последний час была в норме.","Скорость подхвата задач за последние %n часа была в норме.","Скорость подхвата задач за последние %n часов была в норме.","Скорость подхвата задач за последние %n часов была в норме."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Скорость подхвата задач за последний час была низкой. Многим задачам потребовалось больше 4 минут на подхват. Рассмотрите возможность настройки воркера для обработки задач в фоновом режиме.","Скорость подхвата задач за последние %n часа была низкой. Многим задачам потребовалось больше 4 минут на подхват. Рассмотрите возможность настройки воркера для обработки задач в фоновом режиме.","Скорость подхвата задач за последние %n часов была низкой. Многим задачам потребовалось больше 4 минут на подхват. Рассмотрите возможность настройки воркера для обработки задач в фоновом режиме.","Скорость подхвата задач за последние %n часов была низкой. Многим задачам потребовалось больше 4 минут на подхват. Рассмотрите возможность настройки воркера для обработки задач в фоновом режиме."],
"Temporary space available" : "Доступное временное пространство",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Ошибка при проверке временного пути PHP - он не был правильно установлен в каталог. Возвращаемое значение: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Функция php \"disk_free_space\" отключена, что не дает провести проверку наличия свободного места во временных каталогах",
@@ -423,11 +431,14 @@ OC.L10N.register(
"No apps found for your version" : "Приложений, совместимых с установленной версией Nextcloud, не найдено",
"_%n app has an update available_::_%n apps have an update available_" : ["Возможно обновить %n приложение.","Возможно обновить %n приложения.","Возможно обновить %n приложений.","Возможно обновить %n приложения."],
"_Update_::_Update all_" : ["Обновить","Обновить все","Обновить все","Обновить все"],
+ "Failed to load groups" : "Не удалось загрузить группы",
"Failed to create group" : "Не удалось создать группу",
"Creating group…" : "Создание группы…",
"Create group" : "Создать группу",
"Group name" : "Название группы",
"Please enter a valid group name" : "Пожалуйста, введите допустимое название группы",
+ "Search groups…" : "Группы поиска…",
+ "List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list." : "Список групп. Этот список не полностью заполнен из соображений производительности. Группы будут загружаться по мере навигации или поиска по списку.",
"Loading groups…" : "Загрузка групп…",
"Could not load app discover section" : "Не удалось загрузить раздел «Центр приложений»",
"Could not render element" : "Не удалось подготовить объект к показу",
@@ -435,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Не удалось загрузить содержимое из магазина приложений",
"Loading" : "Загрузка",
"Fetching the latest news…" : "Получение последних новостей…",
- "Carousel" : "Карусель",
- "Previous slide" : "Предыдущий слайд",
- "Next slide" : "Следующий слайд",
- "Choose slide to display" : "Выберите слайд для показа",
- "{index} of {total}" : "{index} из {total}",
- "Daemon" : "Служба",
- "Deploy Daemon" : "Служба публикации",
- "Type" : "Тип",
- "Display Name" : "Отображаемое имя",
- "GPUs support" : "Поддержка графических процессоров",
- "Compute device" : "Вычислительное устройство",
- "Advanced deploy options" : "Расширенные возможности развертывания",
- "Edit ExApp deploy options before installation" : "Отредактируйте параметры развертывания ExApp перед установкой",
- "Configured ExApp deploy options. Can be set only during installation" : "Настроенные параметры развертывания ExApp. Можно задать только во время установки",
- "Learn more" : "Узнать больше",
- "Environment variables" : "Переменные среды",
- "ExApp container environment variables" : "Переменные среды контейнера ExApp",
- "No environment variables defined" : "Переменные среды не определены",
- "Mounts" : "Монтирования",
- "Define host folder mounts to bind to the ExApp container" : "Определите монтирование папок хоста для привязки к контейнеру ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Должен существовать на хосте демона развертывания до установки ExApp",
- "Host path" : "Путь к хосту",
- "Container path" : "Путь контейнера",
- "Read-only" : "Только для чтения",
- "Remove mount" : "Удалить монтирование",
- "New mount" : "Новое монтирование",
- "Enter path to host folder" : "Введите путь к папке хоста",
- "Enter path to container folder" : "Введите путь к папке контейнера",
- "Toggle read-only mode" : "Переключить режим «только чтение»",
- "Confirm adding new mount" : "Подтвердите добавление нового монтирования",
- "Confirm" : "Подтвердить",
- "Cancel adding mount" : "Отменить добавление монтирования",
- "Cancel" : "Отмена",
- "Add mount" : "Добавить монтирование",
- "ExApp container mounts" : "Монтирование контейнера ExApp",
- "No mounts defined" : "Монтирования не определены",
- "Description" : "Описание",
- "View in store" : "Посмотреть в магазине приложений",
- "Visit website" : "Перейти на веб-сайт",
- "Usage documentation" : "Документация по использованию",
- "Admin documentation" : "Документация для администратора",
- "Developer documentation" : "Документация для разработчиков",
- "Details" : "Подробные сведения",
- "All" : "Все",
- "Limit app usage to groups" : "Разрешить использовать приложение только участникам этих групп",
- "No results" : "Результаты отсутствуют",
- "Update to {version}" : "Обновление до {version}",
- "Deploy options" : "Варианты развертывания",
- "Default Deploy daemon is not accessible" : "Служба публикации по умолчанию недоступна",
- "Delete data on remove" : "Удалить данные при удалении",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Для этого приложения не указана минимальная поддерживаемая версия Nextcloud, в будущем это будет считаться ошибкой.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Для этого приложения не указана максимальная поддерживаемая версия Nextcloud, в будущем это будет считаться ошибкой.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Приложение не может быть установлено, следующие зависимости не удовлетворены:",
- "Latest updated" : "Недавно обновлённые",
- "Author" : "Автор",
- "Categories" : "Категории",
- "Resources" : "Ресурсы",
- "Documentation" : "Документация",
- "Interact" : "Содействовать",
- "Report a bug" : "Сообщить об ошибке",
- "Request feature" : "Запросить новую возможность",
- "Ask questions or discuss" : "Задать вопросы или обсудить",
- "Rate the app" : "Оценить приложение",
- "Rate" : "Оценка",
- "Changelog" : "Журнал изменений",
- "Google Chrome for Android" : "Google Chrome для Android",
- "{productName} iOS app" : "Приложение {productName} для iOS",
- "{productName} Android app" : "Приложение {productName} для Android",
- "{productName} Talk for iOS" : "Приложение {productName} Talk для iOS",
- "{productName} Talk for Android" : "Приложение {productName} Talk для Android",
- "Sync client" : "Приложение для синхронизации",
- "This session" : "Этот сеанс работы",
- "{client} - {version} ({system})" : "{client} — {version} ({system})",
- "{client} - {version}" : "{client} — {version}",
- "Device name" : "Название устройства",
- "Cancel renaming" : "Отменить переименование",
- "Save new name" : "Сохранить новое имя",
- "Marked for remote wipe" : "Помечено для удаления данных",
- "Device settings" : "Параметры устройства",
- "Allow filesystem access" : "Разрешить доступ к файлам",
- "Rename" : "Переименовать",
- "Revoke" : "Отозвать",
- "Wipe device" : "Удалить данные с устройства",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Отзыв токена может привести к невозможности удаления данных с устройства, если такое удаление ещё не запущено.",
- "Device" : "Устройство",
- "Last activity" : "Последние действия",
- "Devices & sessions" : "Активные устройства и сеансы",
- "Web, desktop and mobile clients currently logged in to your account." : "Веб, настольные и мобильные клиенты, которые в настоящий момент авторизованы вашей учётной записью.",
- "Error while creating device token" : "Ошибка при создании токена для устройства",
- "App name" : "Название приложения",
- "Create new app password" : "Создать пароль приложения",
"App password copied!" : "Пароль приложения скопирован.",
"Copy app password" : "Копировать пароль приложения",
"Login name copied!" : "Имя пользователя скопировано.",
@@ -553,7 +473,9 @@ OC.L10N.register(
"Unable to update profile default setting" : "Не удалось обновить состояние использования профилей по умолчанию",
"Profile" : "Профиль",
"Enable or disable profile by default for new accounts." : "Включите или отключите профиль по умолчанию для новых учетных записей.",
+ "Password confirmation is required" : "Требуется подтверждение пароля",
"Failed to save setting" : "Не удалось сохранить параметры",
+ "{app}'s declarative setting field: {name}" : "{app} поле декларативной настройки: {name}",
"Unable to update server side encryption config" : "Не удалось обновить параметры шифрования на стороне сервера",
"Server-side encryption" : "Шифрование на стороне сервера",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Шифрование на стороне сервера позволяет шифровать файлы, которые загружаются на этот сервер. Это связано с ограничениями, такими как снижение производительности, поэтому включите его только в случае необходимости.",
@@ -568,205 +490,20 @@ OC.L10N.register(
"Confirm enabling encryption" : "Подтвердите включение шифрования",
"Please read carefully before activating server-side encryption:" : "Перед включением шифрования на стороне сервера, внимательно прочтите следующее:",
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "После включения шифрования, все файлы, отправленные с этого момента на сервер, будут сохраняться в зашифрованном виде. Отключить шифрование в дальнейшем возможно только в случае, если использованный модуль шифрования поддерживает такую функцию, а также при соблюдении всех дополнительных условий (например, настроен ключ восстановления).",
+ "By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "По умолчанию будет сгенерирован главный ключ для всего экземпляра. Проверьте, соответствует ли этот уровень доступа вашим потребностям.",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Шифрование само по себе не гарантирует безопасность системы. В документации приведена дополнительная информация о работе приложения «Шифрование» и примеры его использования.",
"Be aware that encryption always increases the file size." : "Шифрование всегда увеличивает размер файлов.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Регулярно создавайте резервные копии данных. При использовании шифрования сохраняйте не только данные, но и ключи.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Информацию о том, как вручную зашифровать существующие файлы, см. в документации администратора.",
"This is the final warning: Do you really want to enable encryption?" : "Это последнее предупреждение: действительно включить шифрование?",
- "Failed to remove group \"{group}\"" : "Не удалось удалить группу \"{group}\"",
+ "Failed to delete group \"{group}\"" : "Не удалось удалить группу «{group}»",
"Please confirm the group removal" : "Подтвердите удаление группы",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Группа «{group}» будет удалена. Это действие НЕ ПРИВОДИТ к удалению учётных записей, входящих в эту группу.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Вы собираетесь удалить группу «{group}». Учётные записи НЕ будут удалены.",
+ "Cancel" : "Отмена",
+ "Confirm" : "Подтвердить",
"Submit" : "Отправить ответ",
"Rename group" : "Переименовать группу",
- "Remove group" : "Удалить группу",
- "Current password" : "Текущий пароль",
- "New password" : "Новый пароль",
- "Change password" : "Сменить пароль",
- "Choose your profile picture" : "Выберите изображение профиля",
- "Please select a valid png or jpg file" : "Выберите файл в формате .png и .jpg",
- "Error setting profile picture" : "Не удалось установить изображение профиля",
- "Error cropping profile picture" : "Не удалось обрезать изображение профиля",
- "Error saving profile picture" : "Не удалось сохранить изображение профиля",
- "Error removing profile picture" : "Не удалось очистить изображения профиля",
- "Your profile picture" : "Изображение профиля",
- "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" : "Изображение получено из исходной учётной записи",
- "Set as profile picture" : "Использовать как изображение профиля",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Обновление изображения профиля может занять до 24 часов.",
- "Your biography. Markdown is supported." : "Ваша биография. Markdown поддерживается.",
- "Unable to update date of birth" : "Не удалось обновить дату рождения",
- "Enter your date of birth" : "Введите дату своего рождения",
- "You are using {s}{usage}{/s}" : "Вы используете {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Вы используете {s} {usage} {/s} из {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Вы являетесь участником следующих групп:",
- "Your full name" : "Ваше полное имя",
- "Email options" : "Параметры эл. почты",
- "Options for additional email address {index}" : "Настройки для дополнительных адресов эл. почты ",
- "Remove primary email" : "Удалить основной адрес эл. почты",
- "Delete email" : "Удалить адрес эл. почты",
- "This address is not confirmed" : "Адрес не подтвержден",
- "Unset as primary email" : "Не использовать как основной адрес эл. почты",
- "Set as primary email" : "Использовать как основной адрес эл. почты",
- "Additional email address {index}" : "Дополнительные адреса эл. почты {index}",
- "Unable to delete primary email address" : "Не удалось удалить основной адрес эл. почты",
- "Unable to update primary email address" : "Не удалось изменить основной адрес эл. почты",
- "Unable to add additional email address" : "Не удалось добавить дополнительный адрес эл. почты",
- "Unable to update additional email address" : "Не удалось изменить дополнительный адрес эл. почты",
- "Unable to delete additional email address" : "Не удалось удалить дополнительный адрес эл. почты",
- "Primary email for password reset and notifications" : "Основной адрес эл. почты для сброса пароля и получения уведомлений",
- "No email address set" : "Адрес эл.почты не указан",
- "Your handle" : "Ваш дескриптор",
- "Derived from your locale ({weekDayName})" : "Зависит от вашего региона ({weekDayName})",
- "Unable to update first day of week" : "Не удалось обновить первый день недели",
- "Day to use as the first day of week" : "День для использования в качестве первого дня недели",
- "Your headline" : "Ваш заголовок",
- "Unable to update language" : "Не удалось изменить язык",
- "Languages" : "Языки",
- "Help translate" : "Помочь с переводом",
- "No language set" : "Язык не задан",
- "Unable to update locale" : "Не удалось обновить локаль",
- "Locales" : "Региональные стандарты",
- "Week starts on {firstDayOfWeek}" : "Первый день недели: {firstDayOfWeek}",
- "No locale set" : "Локаль не задана",
- "Your city" : "Ваш город",
- "Your organisation" : "Ваша организация",
- "Your phone number" : "Ваш номер телефона",
- "Edit your Profile visibility" : "Изменить видимость профиля",
- "Unable to update profile enabled state" : "Не удалось обновить состояние профиля",
- "Enable profile" : "Использовать профиль",
- "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." : "В профиле устанавливаются более строгие настройки видимости или области действия. Например, если для видимости установлено значение «Видно всем», а для области действия установлено значение «Скрыто», будет использоваться значение «Скрыто».",
- "Unable to update visibility of {displayId}" : "Не удалось изменить видимость {displayId}",
- "she/her" : "она/её",
- "he/him" : "он/его",
- "they/them" : "они/их",
- "Your role" : "Ваша роль",
- "Your X (formerly Twitter) handle" : "Ваше имя в сети X (ранее — Твиттер)",
- "Your website" : "Ваш сайт",
- "Invalid value" : "Недопустимое значение",
- "Unable to update {property}" : "Не удалось обновить свойство «{property}»",
- "No {property} set" : "Свойство «{property}» не задано",
- "Change scope level of {property}, current scope is {scope}" : "Изменить уровень области {property}, текущая область - {scope}",
- "Unable to update federation scope of the primary {property}" : "Не удалось обновить область федерации основного {property}",
- "Unable to update federation scope of additional {property}" : "Не удалось обновить область федерации дополнительного {property}",
- "Add additional email" : "Добавить дополнительную электронную почту",
- "Add" : "Добавить",
- "Create" : "Создать",
- "Change" : "Изменить",
- "Delete" : "Удалить",
- "Reshare" : "Публиковать",
- "Default language" : "Язык по умолчанию",
- "Common languages" : "Основные языки",
- "Other languages" : "Другие языки",
- "Password change is disabled because the master key is disabled" : "Смена пароля невозможна при отключённом мастер-ключе",
- "No accounts" : "Не найдено ни одной учётной записи",
- "Loading accounts …" : "Загрузка учётных записей",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Список учётных записей. Этот список отображен не полностью по соображениям производительности. Учётные записи будут отображаться по мере того, как Вы будете перемещаться по списку.",
- "Manager" : "Руководитель",
- "Set line manager" : "Выбрать руководителя",
- "Account name will be autogenerated" : "Имя учётной записи будет создано автоматически",
- "Account name (required)" : "Имя учётной записи (обязательно)",
- "New account" : "Новая учётная запись",
- "Display name" : "Отображаемое имя",
- "Either password or email is required" : "Также обязательны к заполнению пароль или эл.почта",
- "Password (required)" : "Пароль (обязательно)",
- "Email (required)" : "Эл. почта (обязательно)",
- "Email" : "Адрес эл. почты",
- "Member of the following groups (required)" : "Участник следующих групп (обязательное)",
- "Member of the following groups" : "Участник следующих групп",
- "Set account groups" : "Выбрать группы учётной записи",
- "Admin of the following groups" : "Администратор следующих групп",
- "Set account as admin for …" : "Установите учетную запись в качестве администратора для …",
- "Quota" : "Квота",
- "Set account quota" : "Задать квоту для учётной записи",
- "Language" : "Язык",
- "Set default language" : "Выбрать язык по умолчанию",
- "Add new account" : "Создать учётную запись",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} учётная запись…","{userCount} учётных записи…","{userCount} учётных записей…","{userCount} учётных записи…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} учётная запись","{userCount} учётные записи","{userCount} учётных записей","{userCount} учётные записи"],
- "Total rows summary" : "Количество строк в общем",
- "Scroll to load more rows" : "Прокрутите, чтобы загрузить больше строк",
- "Password or insufficient permissions message" : "Сообщение о пароле или недостаточных разрешениях",
- "Avatar" : "Аватар",
- "Account name" : "Имя учётной записи",
- "Group admin for" : "Администратор групп",
- "Account backend" : "Механизм учёта",
- "Storage location" : "Расположение хранилища",
- "First login" : "Первый вход",
- "Last login" : "Последний вход",
- "Account actions" : "Действия над аккаунтом",
- "{size} used" : "использовано {size}",
- "Delete account" : "Удалить учётную запись",
- "Disconnect all devices and delete local data" : "Отключить все устройства и удалить локальные данные",
- "Disable account" : "Отключить учётную запись",
- "Enable account" : "Включить учётную запись",
- "Resend welcome email" : "Отправить приглашение ещё раз",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Это действие позволяет удалить все данные Nextcloud с устройств {userid}, например, в случае утери или при завершении работы сотрудника в компании. Удаление будет выполнено только если устройства подключены к интернету.",
- "Remote wipe of devices" : "Удаление данных с устройств",
- "Wipe {userid}'s devices" : "Удалить данные с устройств пользователя {userid}",
- "Wiped {userid}'s devices" : "Удалить данные с устройств пользователя {userid}",
- "Failed to update line manager" : "Не удалось обновить линейного менеджера",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Полностью удалить все данные пользователя {userid}, в том числе учётную запись, личные файлы и данные приложений.",
- "Account deletion" : "Удаление учётной записи",
- "Delete {userid}'s account" : "Удалить учётную запись пользователя {userid}",
- "Display name was successfully changed" : "Отображаемое имя было успешно изменено",
- "Password was successfully changed" : "Пароль был успешно изменен",
- "Email was successfully changed" : "Эл. почта была успешно изменена",
- "Welcome mail sent!" : "Приглашение отправлено!",
- "Loading account …" : "Загрузка сведений об учётной записи…",
- "Change display name" : "Изменить отображаемое имя",
- "Set new password" : "Установить новый пароль",
- "You do not have permissions to see the details of this account" : "У вас нет прав на просмотр данных этой учётной записи",
- "Set new email address" : "Установить новый адрес эл. почты",
- "Add account to group" : "Добавить учётную запись в группу",
- "Set account as admin for" : "Назначить администратором",
- "Select account quota" : "Выбор квоты для учётной записи",
- "Set the language" : "Выбрать язык",
- "Toggle account actions menu" : "Переключение меню действий с учетной записью",
- "Done" : "Выполнено",
- "Edit" : "Редактирование",
- "Account management settings" : "Параметры управления учётными записями",
- "Visibility" : "Видимость",
- "Show language" : "Показывать язык",
- "Show account backend" : "Показать механизм учёта",
- "Show storage path" : "Путь хранилища",
- "Show first login" : "Показать первый вход",
- "Show last login" : "Время последнего входа в систему",
- "Sorting" : "Сортировка",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Системная конфигурация обеспечивает сортировку групп по названию. Это также отключает отображение количества участников.",
- "Group list sorting" : "Сортировка списка групп",
- "By member count" : "По количеству участников",
- "By name" : "По имени",
- "Send email" : "Отправить сообщение",
- "Send welcome email to new accounts" : "Отправлять приветственное электронное письмо новым пользователям",
- "Defaults" : "Значения по умолчанию",
- "Default quota" : "Квота по умолчанию",
- "Select default quota" : "Квота по умолчанию",
- "Server error while trying to complete WebAuthn device registration" : "Ошибка сервера при попытке завершить регистрацию устройства WebAuthn",
- "Passwordless authentication requires a secure connection." : "Аутентификация без пароля требует безопасного соединения.",
- "Add WebAuthn device" : "Добавить устройство WebAuthn",
- "Please authorize your WebAuthn device." : "Пожалуйста, авторизуйте ваше устройство WebAuthn.",
- "Adding your device …" : "Добавление устройства…",
- "Unnamed device" : "Безымянное устройство",
- "Passwordless Authentication" : "Аутентификация без пароля",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Настройте свою учетную запись для аутентификации без пароля в соответствии со стандартом FIDO2.",
- "No devices configured." : "Устройства не настроены.",
- "The following devices are configured for your account:" : "Следующие устройства настроены для вашей учетной записи:",
- "Your browser does not support WebAuthn." : "Ваш браузер не поддерживает WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "В этом разделе администраторы могут тонко настроить поведение механизма предоставления общего доступа. Обратитесь к документации для получения дополнительной информации.",
- "You need to enable the File sharing App." : "Необходимо включить приложение публикации файлов.",
- "App Store" : "Магазин приложений",
- "Loading app list" : "Получение списка приложений",
- "Loading categories" : "Загрузка категорий",
- "Developer documentation ↗" : "Документация разработчика ↗",
- "Version {version}, {license}-licensed" : "Версия: {version}, лицензия: {license}",
- "Version {version}" : "Версия {version}",
- "All accounts" : "Все аккаунты",
- "Admins" : "Администраторы",
- "Account group: {group}" : "Группа учётных записей: {group}",
- "Account management" : "Управление учётными записями",
+ "Delete group" : "Удалить группу",
"Sending…" : "Отправка…",
"Email sent" : "Письмо отправлено",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "В целях повышения производительности при включении шифрования на сервере Nextcloud шифруются только новые и измененные файлы.",
@@ -776,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "Дата рождения",
"Full name" : "Полное имя",
"Additional email" : "Доп. адрес эл. почты",
+ "Email" : "Адрес эл. почты",
"Fediverse (e.g. Mastodon)" : "Федерации (например, Mastodon)",
"Headline" : "Заголовок",
"Organisation" : "Организация",
@@ -785,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (ранее Твиттер)",
"Website" : "Адрес сайта",
"Profile visibility" : "Видимость профиля",
+ "Language" : "Язык",
"Locale" : "Региональные стандарты",
"First day of week" : "Первый день недели",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Заданный параметр не может быть использован, так как его используют основные функции, такие как совместный доступ к файлам и приглашения к событиям из календаря",
@@ -802,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Только для вошедших в систему",
"Hide" : "Скрыт",
"Manually installed apps cannot be updated" : "Приложения, установленные вручную, не могут быть обновлены.",
+ "Update to {version}" : "Обновление до {version}",
"{progress}% Deploying …" : "{progress} % Развертывание…",
"{progress}% Initializing …" : "{progress}% Инициализация…",
"Health checking" : "Проверка здоровья",
@@ -811,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Разрешить непроверенное приложение",
"The app will be downloaded from the App Store" : "Приложение будет скачано из магазина приложений",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Это приложение не отмечено как совместимое с вашей версией Nextcloud. Если вы продолжите, вы сможете установить это приложение, однако оно может работать не так, как ожидается.",
+ "{size} used" : "использовано {size}",
"Unknown" : "Неизвестно",
"Never" : "Никогда",
"Could not register device: Network error" : "Не удалось зарегистрировать устройство: ошибка сети",
@@ -829,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Не удалось настроить сортировку групп",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Превышено количество запросов из вашей сети. Попробуйте позднее или сообщите администратору об этой ошибке.",
"Error" : "Ошибка",
+ "Default quota" : "Квота по умолчанию",
"Account documentation" : "Учетная документация",
"Administration documentation" : "Документация администратора",
+ "Documentation" : "Документация",
"Forum" : "Форум",
"Nextcloud help & privacy resources" : "Справочные ресурсы Nexcloud и руководства по безопасности",
"General documentation" : "Основная документация",
@@ -853,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "Пароль SMTP",
"Save" : "Сохранить",
"Test and verify email settings" : "Проверить параметры эл. почты",
+ "Send email" : "Отправить сообщение",
"Security & setup warnings" : "Проверка безопасности и параметров",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Для обеспечения безопасности и производительности важно, чтобы всё было настроено правильно. Чтобы убедиться в этом, мы выполняем некоторые автоматические проверки. Для получения дополнительной информации обратитесь к соответствующему разделу документации.",
"All checks passed." : "Все проверки пройдены.",
@@ -872,50 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Чтобы повысить безопасность своей учётной записи, помимо пароля используйте второй фактор проверки подлинности.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Если вы используете сторонние приложения для подключения к Nextcloud, убедитесь что для них созданы и настроены пароли приложений, перед тем как активировать двухфакторную авторизацию.",
"Logged in account must be a subadmin" : "Вошедший в аккаунт должен быть субадминистратором",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Чтобы разрешить выполнение этой проверки, вы должны убедиться, что ваш веб-сервер может подключаться к самому себе. Для этого он должен иметь возможность разрешать и подключаться по крайней мере к одному из своих `trusted_domains\" или \"overwrite.cli.url\".",
- "Missing optional index \"%s\" in table \"%s\"." : "В таблице «%s» отсутствует необязательный индекс «%s».",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "В базе данных отсутствуют некоторые индексы. Так как создание таких индексов может занять достаточно продолжительное время, оно должно быть запущено вручную. Для создания индексов необходимо запустить команду «occ db:add-missing-indices» во время работы сервера Nextcloud. При созданных индексах, как правило, запросы к базе данных выполняются значительно быстрее.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Чтобы разрешить эту проверку, вам нужно убедиться, что ваш веб-сервер может подключаться к себе. Поэтому он должен иметь возможность разрешать и подключаться по крайней мере к одному из своих `trusted_domains` или `overwrite.cli.url`. Эта ошибка может быть результатом несоответствия DNS на стороне сервера или исходящего правила брандмауэра.",
"File locking" : "Блокирование файлов",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Транзакционное блокирование файлов не включено, что может привести к состоянию гонки. Для предупреждения возможных проблем включите параметр «filelocking.enabled» в файле конфигурации «config.php».",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Не удалось проверить поддержку JavaScript ни в одном из ваших `trusted_domains`, ни в `overwrite.cli.url`. Это может быть результатом несоответствия DNS на стороне сервера или правила исходящего брандмауэра. Пожалуйста, проверьте вручную, обслуживает ли ваш веб-сервер файлы `.mjs`, используя MIME-тип JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения %s.",
"for WebAuthn passwordless login" : "для входа без использования пароля по протоколу WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "для входа в систему без пароля WebAuthn и хранения данных по протоколу SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "В настоящее время вы используете PHP %s. PHP 8.0 больше не поддерживается в Nextcloud 27. Для Nextcloud 28 может потребоваться как минимум PHP 8.1. Пожалуйста, как можно скорее обновитесь до одной из официально поддерживаемых версий PHP, предоставленных PHP Group.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Используется MariaDB версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется MariaDB версии 10.2 или старше.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Используется mySQL версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется MySQL версии 8 или MariaDB 10.2 или старше.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Используется PostgreSQL версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется PostgreSQL версии 9.6 или старше.",
- "Speech-To-Text" : "Речь в текст",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Преобразование речи в текст может быть реализовано различными приложениями. Здесь вы можете указать, какое приложение следует использовать.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ни одно из установленных на данный момент приложений не поддерживает функцию преобразования речи в текст",
- "None of your currently installed apps provide Text processing functionality" : "Ни одно из установленных вами в данный момент приложений не предоставляет функции обработки текста",
- "Set default expiration date for shares" : "Установить срок действия общего доступа по умолчанию",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Разрешить автозаполнение имени пользователя в диалоговом окне общего доступа и разрешить доступ к системной адресной книге",
- "Your biography" : "Ваша биография",
- "You are using <strong>{usage}</strong>" : "Вы используете <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Вы используете <strong>{usage}</strong> из <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Выбрать менеджер пользователей",
- "Username will be autogenerated" : "Имя пользователя будет сгенерировано автоматически",
- "Username (required)" : "Имя пользователя (обязательно)",
- "New user" : "Новый пользователь",
- "Groups (required)" : "Группы (обязательно)",
- "Set user groups" : "Задать группы пользователя",
- "Administered groups" : "Администрируемые группы",
- "Set user as admin for …" : "Назначить пользователя администратором для ...",
- "Set user quota" : "Установить квоту пользователя",
- "Add new user" : "Добавить нового пользователя",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} пользователь …","{userCount} пользователя …","{userCount} пользователей …","{userCount} пользователей …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} пользователь","{userCount} пользователя","{userCount} пользователей","{userCount} пользователей"],
- "Loading users …" : "Загрузка пользователей…",
- "Username" : "Имя пользователя",
- "User backend" : "Механизм учёта",
- "User actions" : "Действия пользователя",
- "Add user to group" : "Добавить пользователя в группу",
- "Server error while trying to add WebAuthn device" : "Ошибка сервера при попытке добавить устройство WebAuthn",
- "Name your device" : "Назовите устройство",
- "Active accounts" : "Активные учётные записи",
- "Follow us on Twitter" : "Следите за нашими новостями в Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Чтобы разрешить эту проверку, вам нужно убедиться, что ваш веб-сервер может подключаться к себе. Поэтому он должен иметь возможность разрешать и подключаться по крайней мере к одному из своих `trusted_domains` или `overwrite.cli.url`. Эта ошибка может быть результатом несоответствия DNS на стороне сервера или исходящего правила брандмауэра.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Обнаружена версия PostgreSQL \"%s\". Для лучшей производительности, стабильности и функциональности с этой версией Nextcloud рекомендуется использовать PostgreSQL >=12 и <=16."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP-заголовок не содержит `%2$s`. Это потенциальный риск безопасности или конфиденциальности, поэтому рекомендуется соответствующим образом настроить этот параметр.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Обнаружена версия PostgreSQL \"%s\". Для лучшей производительности, стабильности и функциональности с этой версией Nextcloud рекомендуется использовать PostgreSQL >=12 и <=16.",
+ "Set default expiration date for shares" : "Установить срок действия общего доступа по умолчанию"
},
"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/settings/l10n/ru.json b/apps/settings/l10n/ru.json
index aff4192148f..84d72ad7719 100644
--- a/apps/settings/l10n/ru.json
+++ b/apps/settings/l10n/ru.json
@@ -102,6 +102,7 @@
"Set your password" : "Задайте свой пароль",
"Go to %s" : "Перейти к %s",
"Install Client" : "Установить программу-клиент",
+ "Logged in account must be a sub admin" : "Зарегистрированная учетная запись должна быть субадминистратором",
"Apps" : "Приложения",
"Personal" : "Параметры пользователя",
"Administration" : "Параметры сервера",
@@ -161,6 +162,7 @@
"Database missing indices" : "В базе данных отсутствуют некоторые индексы",
"Missing indices:" : "Отсутствующие индексы:",
"\"%s\" in table \"%s\"" : "«%s» в таблице «%s»",
+ "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "Обнаружены некоторые отсутствующие необязательные индексы. Иногда добавляются новые индексы (с помощью Nextcloud или установленных приложений) для повышения производительности базы данных. Иногда добавление индексов может занимать некоторое время и временно снижать производительность, поэтому это не выполняется автоматически во время обновлений. После добавления индексов запросы к этим таблицам должны выполняться быстрее. Используйте команду `occ db:add-missing-indices`, чтобы добавить их.",
"Database missing primary keys" : "В базе данных отсутствуют первичные ключи",
"Missing primary key on table \"%s\"." : "В таблице «%s» отсутствует первичный ключ.",
"The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running \"occ db:add-missing-primary-keys\" those missing primary keys could be added manually while the instance keeps running." : "В базе данных отсутствуют некоторые первичные ключи. Поскольку добавление первичных ключей в большие таблицы могло занять некоторое время, они не добавлялись автоматически. Запустив команду «occ db: add-missing-primary-keys», эти недостающие первичные ключи можно добавить вручную, пока экземпляр продолжает работать.",
@@ -202,6 +204,8 @@
"Disabled" : "Отключено",
"The old server-side-encryption format is enabled. We recommend disabling this." : "Задействован устаревший режим шифрования файлов на стороне сервера. Рекомендуется отключить такое шифрование.",
"Logging level" : "Уровень системного журнала",
+ "The %1$s configuration option must be a valid integer value." : "Параметр конфигурации %1$s должен быть допустимым целым значением.",
+ "The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Уровень ведения журнала установлен на уровень отладки. Используйте уровень отладки только в том случае, если необходимо диагностировать проблему, а затем сбросьте уровень ведения журнала до менее подробного, поскольку при этом выводится много информации и это может повлиять на производительность сервера.",
"Logging level configured correctly." : "Уровень ведения системного журнала настроен правильно.",
"Maintenance window start" : "Начало окна обслуживания",
"Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks." : "Не настроено время начала окна обслуживания. Это означает, что ресурсоемкие ежедневные фоновые задачи будут выполняться во время основного использования. Рекомендуется установить время в период низкой активности, чтобы снизить влияние выполнения ресурсоемких процедур на пользователей.",
@@ -252,6 +256,7 @@
"PHP modules" : "Модули PHP",
"increases language translation performance and fixes sorting of non-ASCII characters" : "улучшает производительность при использовании переводов и исправляет сортировку не-ASCII символов",
"for Argon2 for password hashing" : "для использования функции Argon2 для хэширования паролей",
+ "required for SFTP storage and recommended for WebAuthn performance" : "требуется для хранения данных по протоколу SFTP и рекомендуется для повышения производительности WebAuthn",
"for picture rotation in server and metadata extraction in the Photos app" : "для поворота изображений и извлечения метаданных в приложении Фотографии",
"This instance is missing some required PHP modules. It is required to install them: %s." : "На этом сервере отсутствуют некоторые рекомендуемые модули PHP. Рекомендуется установить: %s.",
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s" : "На этом сервере не установлены некоторые рекомендуемые модули PHP. Для улучшения производительности и совместимости рекомендуется установить следующие модули:\n%s",
@@ -289,7 +294,6 @@
"HTTP headers" : "Заголовки HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP-заголовок не установлен на `%2$s`. Некоторые функции могут работать некорректно, поэтому рекомендуется соответствующим образом настроить этот параметр.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP-заголовок не установлен на `%2$s`. Это потенциальный риск безопасности или конфиденциальности, поэтому рекомендуется соответствующим образом настроить этот параметр.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP-заголовок не содержит `%2$s`. Это потенциальный риск безопасности или конфиденциальности, поэтому рекомендуется соответствующим образом настроить этот параметр.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Заголовок `%1$s` HTTP не установлен в `%2$s`, `%3$s`, `%4$s`, `%5$s` или `%6$s`. Это может привести к утечке информации о реферере. См. {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- HTTP-заголовок `Strict-Transport-Security` не установлен по крайней мере на `%d` секунд (текущее значение: `%d`). Для повышения безопасности рекомендуется использовать длинную политику HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP-заголовок `Strict-Transport-Security` имеет неверный формат: `%s`. Для повышения безопасности рекомендуется включить HSTS.",
@@ -308,6 +312,10 @@
"Architecture" : "Архитектура",
"64-bit" : "64-бита",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Похоже, вы используете 32-битную версию PHP. Для нормальной работы Nextcloud требуется 64-битная версия. Пожалуйста, обновите свою ОС и PHP до 64-битной версии!",
+ "Task Processing pickup speed" : "Скорость подхвата обработки задач",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Нет запланированных задач за последний час.","Нет запланированных задач за последние %n часа.","Нет запланированных задач за последние %n часов.","Нет запланированных задач за последние %n часов."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Скорость подхвата задач за последний час была в норме.","Скорость подхвата задач за последние %n часа была в норме.","Скорость подхвата задач за последние %n часов была в норме.","Скорость подхвата задач за последние %n часов была в норме."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Скорость подхвата задач за последний час была низкой. Многим задачам потребовалось больше 4 минут на подхват. Рассмотрите возможность настройки воркера для обработки задач в фоновом режиме.","Скорость подхвата задач за последние %n часа была низкой. Многим задачам потребовалось больше 4 минут на подхват. Рассмотрите возможность настройки воркера для обработки задач в фоновом режиме.","Скорость подхвата задач за последние %n часов была низкой. Многим задачам потребовалось больше 4 минут на подхват. Рассмотрите возможность настройки воркера для обработки задач в фоновом режиме.","Скорость подхвата задач за последние %n часов была низкой. Многим задачам потребовалось больше 4 минут на подхват. Рассмотрите возможность настройки воркера для обработки задач в фоновом режиме."],
"Temporary space available" : "Доступное временное пространство",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Ошибка при проверке временного пути PHP - он не был правильно установлен в каталог. Возвращаемое значение: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Функция php \"disk_free_space\" отключена, что не дает провести проверку наличия свободного места во временных каталогах",
@@ -421,11 +429,14 @@
"No apps found for your version" : "Приложений, совместимых с установленной версией Nextcloud, не найдено",
"_%n app has an update available_::_%n apps have an update available_" : ["Возможно обновить %n приложение.","Возможно обновить %n приложения.","Возможно обновить %n приложений.","Возможно обновить %n приложения."],
"_Update_::_Update all_" : ["Обновить","Обновить все","Обновить все","Обновить все"],
+ "Failed to load groups" : "Не удалось загрузить группы",
"Failed to create group" : "Не удалось создать группу",
"Creating group…" : "Создание группы…",
"Create group" : "Создать группу",
"Group name" : "Название группы",
"Please enter a valid group name" : "Пожалуйста, введите допустимое название группы",
+ "Search groups…" : "Группы поиска…",
+ "List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list." : "Список групп. Этот список не полностью заполнен из соображений производительности. Группы будут загружаться по мере навигации или поиска по списку.",
"Loading groups…" : "Загрузка групп…",
"Could not load app discover section" : "Не удалось загрузить раздел «Центр приложений»",
"Could not render element" : "Не удалось подготовить объект к показу",
@@ -433,97 +444,6 @@
"Could not load section content from app store." : "Не удалось загрузить содержимое из магазина приложений",
"Loading" : "Загрузка",
"Fetching the latest news…" : "Получение последних новостей…",
- "Carousel" : "Карусель",
- "Previous slide" : "Предыдущий слайд",
- "Next slide" : "Следующий слайд",
- "Choose slide to display" : "Выберите слайд для показа",
- "{index} of {total}" : "{index} из {total}",
- "Daemon" : "Служба",
- "Deploy Daemon" : "Служба публикации",
- "Type" : "Тип",
- "Display Name" : "Отображаемое имя",
- "GPUs support" : "Поддержка графических процессоров",
- "Compute device" : "Вычислительное устройство",
- "Advanced deploy options" : "Расширенные возможности развертывания",
- "Edit ExApp deploy options before installation" : "Отредактируйте параметры развертывания ExApp перед установкой",
- "Configured ExApp deploy options. Can be set only during installation" : "Настроенные параметры развертывания ExApp. Можно задать только во время установки",
- "Learn more" : "Узнать больше",
- "Environment variables" : "Переменные среды",
- "ExApp container environment variables" : "Переменные среды контейнера ExApp",
- "No environment variables defined" : "Переменные среды не определены",
- "Mounts" : "Монтирования",
- "Define host folder mounts to bind to the ExApp container" : "Определите монтирование папок хоста для привязки к контейнеру ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Должен существовать на хосте демона развертывания до установки ExApp",
- "Host path" : "Путь к хосту",
- "Container path" : "Путь контейнера",
- "Read-only" : "Только для чтения",
- "Remove mount" : "Удалить монтирование",
- "New mount" : "Новое монтирование",
- "Enter path to host folder" : "Введите путь к папке хоста",
- "Enter path to container folder" : "Введите путь к папке контейнера",
- "Toggle read-only mode" : "Переключить режим «только чтение»",
- "Confirm adding new mount" : "Подтвердите добавление нового монтирования",
- "Confirm" : "Подтвердить",
- "Cancel adding mount" : "Отменить добавление монтирования",
- "Cancel" : "Отмена",
- "Add mount" : "Добавить монтирование",
- "ExApp container mounts" : "Монтирование контейнера ExApp",
- "No mounts defined" : "Монтирования не определены",
- "Description" : "Описание",
- "View in store" : "Посмотреть в магазине приложений",
- "Visit website" : "Перейти на веб-сайт",
- "Usage documentation" : "Документация по использованию",
- "Admin documentation" : "Документация для администратора",
- "Developer documentation" : "Документация для разработчиков",
- "Details" : "Подробные сведения",
- "All" : "Все",
- "Limit app usage to groups" : "Разрешить использовать приложение только участникам этих групп",
- "No results" : "Результаты отсутствуют",
- "Update to {version}" : "Обновление до {version}",
- "Deploy options" : "Варианты развертывания",
- "Default Deploy daemon is not accessible" : "Служба публикации по умолчанию недоступна",
- "Delete data on remove" : "Удалить данные при удалении",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Для этого приложения не указана минимальная поддерживаемая версия Nextcloud, в будущем это будет считаться ошибкой.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Для этого приложения не указана максимальная поддерживаемая версия Nextcloud, в будущем это будет считаться ошибкой.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Приложение не может быть установлено, следующие зависимости не удовлетворены:",
- "Latest updated" : "Недавно обновлённые",
- "Author" : "Автор",
- "Categories" : "Категории",
- "Resources" : "Ресурсы",
- "Documentation" : "Документация",
- "Interact" : "Содействовать",
- "Report a bug" : "Сообщить об ошибке",
- "Request feature" : "Запросить новую возможность",
- "Ask questions or discuss" : "Задать вопросы или обсудить",
- "Rate the app" : "Оценить приложение",
- "Rate" : "Оценка",
- "Changelog" : "Журнал изменений",
- "Google Chrome for Android" : "Google Chrome для Android",
- "{productName} iOS app" : "Приложение {productName} для iOS",
- "{productName} Android app" : "Приложение {productName} для Android",
- "{productName} Talk for iOS" : "Приложение {productName} Talk для iOS",
- "{productName} Talk for Android" : "Приложение {productName} Talk для Android",
- "Sync client" : "Приложение для синхронизации",
- "This session" : "Этот сеанс работы",
- "{client} - {version} ({system})" : "{client} — {version} ({system})",
- "{client} - {version}" : "{client} — {version}",
- "Device name" : "Название устройства",
- "Cancel renaming" : "Отменить переименование",
- "Save new name" : "Сохранить новое имя",
- "Marked for remote wipe" : "Помечено для удаления данных",
- "Device settings" : "Параметры устройства",
- "Allow filesystem access" : "Разрешить доступ к файлам",
- "Rename" : "Переименовать",
- "Revoke" : "Отозвать",
- "Wipe device" : "Удалить данные с устройства",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Отзыв токена может привести к невозможности удаления данных с устройства, если такое удаление ещё не запущено.",
- "Device" : "Устройство",
- "Last activity" : "Последние действия",
- "Devices & sessions" : "Активные устройства и сеансы",
- "Web, desktop and mobile clients currently logged in to your account." : "Веб, настольные и мобильные клиенты, которые в настоящий момент авторизованы вашей учётной записью.",
- "Error while creating device token" : "Ошибка при создании токена для устройства",
- "App name" : "Название приложения",
- "Create new app password" : "Создать пароль приложения",
"App password copied!" : "Пароль приложения скопирован.",
"Copy app password" : "Копировать пароль приложения",
"Login name copied!" : "Имя пользователя скопировано.",
@@ -551,7 +471,9 @@
"Unable to update profile default setting" : "Не удалось обновить состояние использования профилей по умолчанию",
"Profile" : "Профиль",
"Enable or disable profile by default for new accounts." : "Включите или отключите профиль по умолчанию для новых учетных записей.",
+ "Password confirmation is required" : "Требуется подтверждение пароля",
"Failed to save setting" : "Не удалось сохранить параметры",
+ "{app}'s declarative setting field: {name}" : "{app} поле декларативной настройки: {name}",
"Unable to update server side encryption config" : "Не удалось обновить параметры шифрования на стороне сервера",
"Server-side encryption" : "Шифрование на стороне сервера",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Шифрование на стороне сервера позволяет шифровать файлы, которые загружаются на этот сервер. Это связано с ограничениями, такими как снижение производительности, поэтому включите его только в случае необходимости.",
@@ -566,205 +488,20 @@
"Confirm enabling encryption" : "Подтвердите включение шифрования",
"Please read carefully before activating server-side encryption:" : "Перед включением шифрования на стороне сервера, внимательно прочтите следующее:",
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "После включения шифрования, все файлы, отправленные с этого момента на сервер, будут сохраняться в зашифрованном виде. Отключить шифрование в дальнейшем возможно только в случае, если использованный модуль шифрования поддерживает такую функцию, а также при соблюдении всех дополнительных условий (например, настроен ключ восстановления).",
+ "By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "По умолчанию будет сгенерирован главный ключ для всего экземпляра. Проверьте, соответствует ли этот уровень доступа вашим потребностям.",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Шифрование само по себе не гарантирует безопасность системы. В документации приведена дополнительная информация о работе приложения «Шифрование» и примеры его использования.",
"Be aware that encryption always increases the file size." : "Шифрование всегда увеличивает размер файлов.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Регулярно создавайте резервные копии данных. При использовании шифрования сохраняйте не только данные, но и ключи.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Информацию о том, как вручную зашифровать существующие файлы, см. в документации администратора.",
"This is the final warning: Do you really want to enable encryption?" : "Это последнее предупреждение: действительно включить шифрование?",
- "Failed to remove group \"{group}\"" : "Не удалось удалить группу \"{group}\"",
+ "Failed to delete group \"{group}\"" : "Не удалось удалить группу «{group}»",
"Please confirm the group removal" : "Подтвердите удаление группы",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Группа «{group}» будет удалена. Это действие НЕ ПРИВОДИТ к удалению учётных записей, входящих в эту группу.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Вы собираетесь удалить группу «{group}». Учётные записи НЕ будут удалены.",
+ "Cancel" : "Отмена",
+ "Confirm" : "Подтвердить",
"Submit" : "Отправить ответ",
"Rename group" : "Переименовать группу",
- "Remove group" : "Удалить группу",
- "Current password" : "Текущий пароль",
- "New password" : "Новый пароль",
- "Change password" : "Сменить пароль",
- "Choose your profile picture" : "Выберите изображение профиля",
- "Please select a valid png or jpg file" : "Выберите файл в формате .png и .jpg",
- "Error setting profile picture" : "Не удалось установить изображение профиля",
- "Error cropping profile picture" : "Не удалось обрезать изображение профиля",
- "Error saving profile picture" : "Не удалось сохранить изображение профиля",
- "Error removing profile picture" : "Не удалось очистить изображения профиля",
- "Your profile picture" : "Изображение профиля",
- "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" : "Изображение получено из исходной учётной записи",
- "Set as profile picture" : "Использовать как изображение профиля",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Обновление изображения профиля может занять до 24 часов.",
- "Your biography. Markdown is supported." : "Ваша биография. Markdown поддерживается.",
- "Unable to update date of birth" : "Не удалось обновить дату рождения",
- "Enter your date of birth" : "Введите дату своего рождения",
- "You are using {s}{usage}{/s}" : "Вы используете {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Вы используете {s} {usage} {/s} из {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Вы являетесь участником следующих групп:",
- "Your full name" : "Ваше полное имя",
- "Email options" : "Параметры эл. почты",
- "Options for additional email address {index}" : "Настройки для дополнительных адресов эл. почты ",
- "Remove primary email" : "Удалить основной адрес эл. почты",
- "Delete email" : "Удалить адрес эл. почты",
- "This address is not confirmed" : "Адрес не подтвержден",
- "Unset as primary email" : "Не использовать как основной адрес эл. почты",
- "Set as primary email" : "Использовать как основной адрес эл. почты",
- "Additional email address {index}" : "Дополнительные адреса эл. почты {index}",
- "Unable to delete primary email address" : "Не удалось удалить основной адрес эл. почты",
- "Unable to update primary email address" : "Не удалось изменить основной адрес эл. почты",
- "Unable to add additional email address" : "Не удалось добавить дополнительный адрес эл. почты",
- "Unable to update additional email address" : "Не удалось изменить дополнительный адрес эл. почты",
- "Unable to delete additional email address" : "Не удалось удалить дополнительный адрес эл. почты",
- "Primary email for password reset and notifications" : "Основной адрес эл. почты для сброса пароля и получения уведомлений",
- "No email address set" : "Адрес эл.почты не указан",
- "Your handle" : "Ваш дескриптор",
- "Derived from your locale ({weekDayName})" : "Зависит от вашего региона ({weekDayName})",
- "Unable to update first day of week" : "Не удалось обновить первый день недели",
- "Day to use as the first day of week" : "День для использования в качестве первого дня недели",
- "Your headline" : "Ваш заголовок",
- "Unable to update language" : "Не удалось изменить язык",
- "Languages" : "Языки",
- "Help translate" : "Помочь с переводом",
- "No language set" : "Язык не задан",
- "Unable to update locale" : "Не удалось обновить локаль",
- "Locales" : "Региональные стандарты",
- "Week starts on {firstDayOfWeek}" : "Первый день недели: {firstDayOfWeek}",
- "No locale set" : "Локаль не задана",
- "Your city" : "Ваш город",
- "Your organisation" : "Ваша организация",
- "Your phone number" : "Ваш номер телефона",
- "Edit your Profile visibility" : "Изменить видимость профиля",
- "Unable to update profile enabled state" : "Не удалось обновить состояние профиля",
- "Enable profile" : "Использовать профиль",
- "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." : "В профиле устанавливаются более строгие настройки видимости или области действия. Например, если для видимости установлено значение «Видно всем», а для области действия установлено значение «Скрыто», будет использоваться значение «Скрыто».",
- "Unable to update visibility of {displayId}" : "Не удалось изменить видимость {displayId}",
- "she/her" : "она/её",
- "he/him" : "он/его",
- "they/them" : "они/их",
- "Your role" : "Ваша роль",
- "Your X (formerly Twitter) handle" : "Ваше имя в сети X (ранее — Твиттер)",
- "Your website" : "Ваш сайт",
- "Invalid value" : "Недопустимое значение",
- "Unable to update {property}" : "Не удалось обновить свойство «{property}»",
- "No {property} set" : "Свойство «{property}» не задано",
- "Change scope level of {property}, current scope is {scope}" : "Изменить уровень области {property}, текущая область - {scope}",
- "Unable to update federation scope of the primary {property}" : "Не удалось обновить область федерации основного {property}",
- "Unable to update federation scope of additional {property}" : "Не удалось обновить область федерации дополнительного {property}",
- "Add additional email" : "Добавить дополнительную электронную почту",
- "Add" : "Добавить",
- "Create" : "Создать",
- "Change" : "Изменить",
- "Delete" : "Удалить",
- "Reshare" : "Публиковать",
- "Default language" : "Язык по умолчанию",
- "Common languages" : "Основные языки",
- "Other languages" : "Другие языки",
- "Password change is disabled because the master key is disabled" : "Смена пароля невозможна при отключённом мастер-ключе",
- "No accounts" : "Не найдено ни одной учётной записи",
- "Loading accounts …" : "Загрузка учётных записей",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Список учётных записей. Этот список отображен не полностью по соображениям производительности. Учётные записи будут отображаться по мере того, как Вы будете перемещаться по списку.",
- "Manager" : "Руководитель",
- "Set line manager" : "Выбрать руководителя",
- "Account name will be autogenerated" : "Имя учётной записи будет создано автоматически",
- "Account name (required)" : "Имя учётной записи (обязательно)",
- "New account" : "Новая учётная запись",
- "Display name" : "Отображаемое имя",
- "Either password or email is required" : "Также обязательны к заполнению пароль или эл.почта",
- "Password (required)" : "Пароль (обязательно)",
- "Email (required)" : "Эл. почта (обязательно)",
- "Email" : "Адрес эл. почты",
- "Member of the following groups (required)" : "Участник следующих групп (обязательное)",
- "Member of the following groups" : "Участник следующих групп",
- "Set account groups" : "Выбрать группы учётной записи",
- "Admin of the following groups" : "Администратор следующих групп",
- "Set account as admin for …" : "Установите учетную запись в качестве администратора для …",
- "Quota" : "Квота",
- "Set account quota" : "Задать квоту для учётной записи",
- "Language" : "Язык",
- "Set default language" : "Выбрать язык по умолчанию",
- "Add new account" : "Создать учётную запись",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} учётная запись…","{userCount} учётных записи…","{userCount} учётных записей…","{userCount} учётных записи…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} учётная запись","{userCount} учётные записи","{userCount} учётных записей","{userCount} учётные записи"],
- "Total rows summary" : "Количество строк в общем",
- "Scroll to load more rows" : "Прокрутите, чтобы загрузить больше строк",
- "Password or insufficient permissions message" : "Сообщение о пароле или недостаточных разрешениях",
- "Avatar" : "Аватар",
- "Account name" : "Имя учётной записи",
- "Group admin for" : "Администратор групп",
- "Account backend" : "Механизм учёта",
- "Storage location" : "Расположение хранилища",
- "First login" : "Первый вход",
- "Last login" : "Последний вход",
- "Account actions" : "Действия над аккаунтом",
- "{size} used" : "использовано {size}",
- "Delete account" : "Удалить учётную запись",
- "Disconnect all devices and delete local data" : "Отключить все устройства и удалить локальные данные",
- "Disable account" : "Отключить учётную запись",
- "Enable account" : "Включить учётную запись",
- "Resend welcome email" : "Отправить приглашение ещё раз",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Это действие позволяет удалить все данные Nextcloud с устройств {userid}, например, в случае утери или при завершении работы сотрудника в компании. Удаление будет выполнено только если устройства подключены к интернету.",
- "Remote wipe of devices" : "Удаление данных с устройств",
- "Wipe {userid}'s devices" : "Удалить данные с устройств пользователя {userid}",
- "Wiped {userid}'s devices" : "Удалить данные с устройств пользователя {userid}",
- "Failed to update line manager" : "Не удалось обновить линейного менеджера",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Полностью удалить все данные пользователя {userid}, в том числе учётную запись, личные файлы и данные приложений.",
- "Account deletion" : "Удаление учётной записи",
- "Delete {userid}'s account" : "Удалить учётную запись пользователя {userid}",
- "Display name was successfully changed" : "Отображаемое имя было успешно изменено",
- "Password was successfully changed" : "Пароль был успешно изменен",
- "Email was successfully changed" : "Эл. почта была успешно изменена",
- "Welcome mail sent!" : "Приглашение отправлено!",
- "Loading account …" : "Загрузка сведений об учётной записи…",
- "Change display name" : "Изменить отображаемое имя",
- "Set new password" : "Установить новый пароль",
- "You do not have permissions to see the details of this account" : "У вас нет прав на просмотр данных этой учётной записи",
- "Set new email address" : "Установить новый адрес эл. почты",
- "Add account to group" : "Добавить учётную запись в группу",
- "Set account as admin for" : "Назначить администратором",
- "Select account quota" : "Выбор квоты для учётной записи",
- "Set the language" : "Выбрать язык",
- "Toggle account actions menu" : "Переключение меню действий с учетной записью",
- "Done" : "Выполнено",
- "Edit" : "Редактирование",
- "Account management settings" : "Параметры управления учётными записями",
- "Visibility" : "Видимость",
- "Show language" : "Показывать язык",
- "Show account backend" : "Показать механизм учёта",
- "Show storage path" : "Путь хранилища",
- "Show first login" : "Показать первый вход",
- "Show last login" : "Время последнего входа в систему",
- "Sorting" : "Сортировка",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Системная конфигурация обеспечивает сортировку групп по названию. Это также отключает отображение количества участников.",
- "Group list sorting" : "Сортировка списка групп",
- "By member count" : "По количеству участников",
- "By name" : "По имени",
- "Send email" : "Отправить сообщение",
- "Send welcome email to new accounts" : "Отправлять приветственное электронное письмо новым пользователям",
- "Defaults" : "Значения по умолчанию",
- "Default quota" : "Квота по умолчанию",
- "Select default quota" : "Квота по умолчанию",
- "Server error while trying to complete WebAuthn device registration" : "Ошибка сервера при попытке завершить регистрацию устройства WebAuthn",
- "Passwordless authentication requires a secure connection." : "Аутентификация без пароля требует безопасного соединения.",
- "Add WebAuthn device" : "Добавить устройство WebAuthn",
- "Please authorize your WebAuthn device." : "Пожалуйста, авторизуйте ваше устройство WebAuthn.",
- "Adding your device …" : "Добавление устройства…",
- "Unnamed device" : "Безымянное устройство",
- "Passwordless Authentication" : "Аутентификация без пароля",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Настройте свою учетную запись для аутентификации без пароля в соответствии со стандартом FIDO2.",
- "No devices configured." : "Устройства не настроены.",
- "The following devices are configured for your account:" : "Следующие устройства настроены для вашей учетной записи:",
- "Your browser does not support WebAuthn." : "Ваш браузер не поддерживает WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "В этом разделе администраторы могут тонко настроить поведение механизма предоставления общего доступа. Обратитесь к документации для получения дополнительной информации.",
- "You need to enable the File sharing App." : "Необходимо включить приложение публикации файлов.",
- "App Store" : "Магазин приложений",
- "Loading app list" : "Получение списка приложений",
- "Loading categories" : "Загрузка категорий",
- "Developer documentation ↗" : "Документация разработчика ↗",
- "Version {version}, {license}-licensed" : "Версия: {version}, лицензия: {license}",
- "Version {version}" : "Версия {version}",
- "All accounts" : "Все аккаунты",
- "Admins" : "Администраторы",
- "Account group: {group}" : "Группа учётных записей: {group}",
- "Account management" : "Управление учётными записями",
+ "Delete group" : "Удалить группу",
"Sending…" : "Отправка…",
"Email sent" : "Письмо отправлено",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "В целях повышения производительности при включении шифрования на сервере Nextcloud шифруются только новые и измененные файлы.",
@@ -774,6 +511,7 @@
"Date of birth" : "Дата рождения",
"Full name" : "Полное имя",
"Additional email" : "Доп. адрес эл. почты",
+ "Email" : "Адрес эл. почты",
"Fediverse (e.g. Mastodon)" : "Федерации (например, Mastodon)",
"Headline" : "Заголовок",
"Organisation" : "Организация",
@@ -783,6 +521,7 @@
"X (formerly Twitter)" : "X (ранее Твиттер)",
"Website" : "Адрес сайта",
"Profile visibility" : "Видимость профиля",
+ "Language" : "Язык",
"Locale" : "Региональные стандарты",
"First day of week" : "Первый день недели",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Заданный параметр не может быть использован, так как его используют основные функции, такие как совместный доступ к файлам и приглашения к событиям из календаря",
@@ -800,6 +539,7 @@
"Show to logged in accounts only" : "Только для вошедших в систему",
"Hide" : "Скрыт",
"Manually installed apps cannot be updated" : "Приложения, установленные вручную, не могут быть обновлены.",
+ "Update to {version}" : "Обновление до {version}",
"{progress}% Deploying …" : "{progress} % Развертывание…",
"{progress}% Initializing …" : "{progress}% Инициализация…",
"Health checking" : "Проверка здоровья",
@@ -809,6 +549,7 @@
"Allow untested app" : "Разрешить непроверенное приложение",
"The app will be downloaded from the App Store" : "Приложение будет скачано из магазина приложений",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Это приложение не отмечено как совместимое с вашей версией Nextcloud. Если вы продолжите, вы сможете установить это приложение, однако оно может работать не так, как ожидается.",
+ "{size} used" : "использовано {size}",
"Unknown" : "Неизвестно",
"Never" : "Никогда",
"Could not register device: Network error" : "Не удалось зарегистрировать устройство: ошибка сети",
@@ -827,8 +568,10 @@
"Could not set group sorting" : "Не удалось настроить сортировку групп",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Превышено количество запросов из вашей сети. Попробуйте позднее или сообщите администратору об этой ошибке.",
"Error" : "Ошибка",
+ "Default quota" : "Квота по умолчанию",
"Account documentation" : "Учетная документация",
"Administration documentation" : "Документация администратора",
+ "Documentation" : "Документация",
"Forum" : "Форум",
"Nextcloud help & privacy resources" : "Справочные ресурсы Nexcloud и руководства по безопасности",
"General documentation" : "Основная документация",
@@ -851,6 +594,7 @@
"SMTP Password" : "Пароль SMTP",
"Save" : "Сохранить",
"Test and verify email settings" : "Проверить параметры эл. почты",
+ "Send email" : "Отправить сообщение",
"Security & setup warnings" : "Проверка безопасности и параметров",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Для обеспечения безопасности и производительности важно, чтобы всё было настроено правильно. Чтобы убедиться в этом, мы выполняем некоторые автоматические проверки. Для получения дополнительной информации обратитесь к соответствующему разделу документации.",
"All checks passed." : "Все проверки пройдены.",
@@ -870,50 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "Чтобы повысить безопасность своей учётной записи, помимо пароля используйте второй фактор проверки подлинности.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Если вы используете сторонние приложения для подключения к Nextcloud, убедитесь что для них созданы и настроены пароли приложений, перед тем как активировать двухфакторную авторизацию.",
"Logged in account must be a subadmin" : "Вошедший в аккаунт должен быть субадминистратором",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Чтобы разрешить выполнение этой проверки, вы должны убедиться, что ваш веб-сервер может подключаться к самому себе. Для этого он должен иметь возможность разрешать и подключаться по крайней мере к одному из своих `trusted_domains\" или \"overwrite.cli.url\".",
- "Missing optional index \"%s\" in table \"%s\"." : "В таблице «%s» отсутствует необязательный индекс «%s».",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "В базе данных отсутствуют некоторые индексы. Так как создание таких индексов может занять достаточно продолжительное время, оно должно быть запущено вручную. Для создания индексов необходимо запустить команду «occ db:add-missing-indices» во время работы сервера Nextcloud. При созданных индексах, как правило, запросы к базе данных выполняются значительно быстрее.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Чтобы разрешить эту проверку, вам нужно убедиться, что ваш веб-сервер может подключаться к себе. Поэтому он должен иметь возможность разрешать и подключаться по крайней мере к одному из своих `trusted_domains` или `overwrite.cli.url`. Эта ошибка может быть результатом несоответствия DNS на стороне сервера или исходящего правила брандмауэра.",
"File locking" : "Блокирование файлов",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Транзакционное блокирование файлов не включено, что может привести к состоянию гонки. Для предупреждения возможных проблем включите параметр «filelocking.enabled» в файле конфигурации «config.php».",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Не удалось проверить поддержку JavaScript ни в одном из ваших `trusted_domains`, ни в `overwrite.cli.url`. Это может быть результатом несоответствия DNS на стороне сервера или правила исходящего брандмауэра. Пожалуйста, проверьте вручную, обслуживает ли ваш веб-сервер файлы `.mjs`, используя MIME-тип JavaScript.",
"The PHP memory limit is below the recommended value of %s." : "Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения %s.",
"for WebAuthn passwordless login" : "для входа без использования пароля по протоколу WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "для входа в систему без пароля WebAuthn и хранения данных по протоколу SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "В настоящее время вы используете PHP %s. PHP 8.0 больше не поддерживается в Nextcloud 27. Для Nextcloud 28 может потребоваться как минимум PHP 8.1. Пожалуйста, как можно скорее обновитесь до одной из официально поддерживаемых версий PHP, предоставленных PHP Group.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Используется MariaDB версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется MariaDB версии 10.2 или старше.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Используется mySQL версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется MySQL версии 8 или MariaDB 10.2 или старше.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Используется PostgreSQL версии %s. В Nextcloud версии 21 эта версия не поддерживается, а для работы требуется PostgreSQL версии 9.6 или старше.",
- "Speech-To-Text" : "Речь в текст",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Преобразование речи в текст может быть реализовано различными приложениями. Здесь вы можете указать, какое приложение следует использовать.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ни одно из установленных на данный момент приложений не поддерживает функцию преобразования речи в текст",
- "None of your currently installed apps provide Text processing functionality" : "Ни одно из установленных вами в данный момент приложений не предоставляет функции обработки текста",
- "Set default expiration date for shares" : "Установить срок действия общего доступа по умолчанию",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Разрешить автозаполнение имени пользователя в диалоговом окне общего доступа и разрешить доступ к системной адресной книге",
- "Your biography" : "Ваша биография",
- "You are using <strong>{usage}</strong>" : "Вы используете <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Вы используете <strong>{usage}</strong> из <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Выбрать менеджер пользователей",
- "Username will be autogenerated" : "Имя пользователя будет сгенерировано автоматически",
- "Username (required)" : "Имя пользователя (обязательно)",
- "New user" : "Новый пользователь",
- "Groups (required)" : "Группы (обязательно)",
- "Set user groups" : "Задать группы пользователя",
- "Administered groups" : "Администрируемые группы",
- "Set user as admin for …" : "Назначить пользователя администратором для ...",
- "Set user quota" : "Установить квоту пользователя",
- "Add new user" : "Добавить нового пользователя",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} пользователь …","{userCount} пользователя …","{userCount} пользователей …","{userCount} пользователей …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} пользователь","{userCount} пользователя","{userCount} пользователей","{userCount} пользователей"],
- "Loading users …" : "Загрузка пользователей…",
- "Username" : "Имя пользователя",
- "User backend" : "Механизм учёта",
- "User actions" : "Действия пользователя",
- "Add user to group" : "Добавить пользователя в группу",
- "Server error while trying to add WebAuthn device" : "Ошибка сервера при попытке добавить устройство WebAuthn",
- "Name your device" : "Назовите устройство",
- "Active accounts" : "Активные учётные записи",
- "Follow us on Twitter" : "Следите за нашими новостями в Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Чтобы разрешить эту проверку, вам нужно убедиться, что ваш веб-сервер может подключаться к себе. Поэтому он должен иметь возможность разрешать и подключаться по крайней мере к одному из своих `trusted_domains` или `overwrite.cli.url`. Эта ошибка может быть результатом несоответствия DNS на стороне сервера или исходящего правила брандмауэра.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Обнаружена версия PostgreSQL \"%s\". Для лучшей производительности, стабильности и функциональности с этой версией Nextcloud рекомендуется использовать PostgreSQL >=12 и <=16."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP-заголовок не содержит `%2$s`. Это потенциальный риск безопасности или конфиденциальности, поэтому рекомендуется соответствующим образом настроить этот параметр.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Обнаружена версия PostgreSQL \"%s\". Для лучшей производительности, стабильности и функциональности с этой версией Nextcloud рекомендуется использовать PostgreSQL >=12 и <=16.",
+ "Set default expiration date for shares" : "Установить срок действия общего доступа по умолчанию"
},"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/settings/l10n/sc.js b/apps/settings/l10n/sc.js
index 769b242d503..3dbd0dec83a 100644
--- a/apps/settings/l10n/sc.js
+++ b/apps/settings/l10n/sc.js
@@ -161,51 +161,6 @@ OC.L10N.register(
"Loading groups…" : "Carrighende grupos...",
"Nothing to show" : "Nudda de mustrare",
"Loading" : "Carrighende",
- "Type" : "Genia",
- "Confirm" : "Cunfirma",
- "Cancel" : "Annulla",
- "Description" : "Descritzione",
- "View in store" : "Càstia in s'archìviu",
- "Visit website" : "Vìsita su situ",
- "Admin documentation" : "Documentatzione amministratzione",
- "Developer documentation" : "Documentatzione isvilupu",
- "Details" : "Detàllios",
- "All" : "Totu",
- "Limit app usage to groups" : "Lìmita s'impreu de s'aplicatzione a grupos",
- "No results" : "Perunu resurtadu",
- "Update to {version}" : "Agiorna a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Custa aplicatzione non cuntenet sa versione mìnima de Nextcloud assignada. At a èssere unu problema in su benidore.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Custa aplicatzione non cuntenet sa versione màssima de Nextcloud assignada. At a èssere unu problema in su benidore.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Non faghet a installare custa aplicatzione ca is dipendèntzias in fatu non sunt satisfatos:",
- "Author" : "Autoria",
- "Categories" : "Categ",
- "Resources" : "Risorsas",
- "Documentation" : "Documentatzione",
- "Report a bug" : "Signala un'errore",
- "Request feature" : "Rechede funtzionalidade",
- "Ask questions or discuss" : "Faghe preguntas o discuti",
- "Rate" : "Vàluta",
- "Changelog" : "Registru de is càmbios",
- "Google Chrome for Android" : "Google Chrome pro Android",
- "{productName} iOS app" : "{productName} aplicatzione iOS ",
- "{productName} Android app" : "Aplicatzione de {productName} pro Android",
- "{productName} Talk for iOS" : "{productName} Talk pro iOS",
- "{productName} Talk for Android" : "{productName} Talk pro Android",
- "This session" : "Custa sessione",
- "Save new name" : "Sarva nùmene nou",
- "Marked for remote wipe" : "Marcadu pro cantzelladura remota",
- "Device settings" : "Cunfiguratzione de su dispositivu",
- "Allow filesystem access" : "Permite s'intrada a su sistema de is archìvios",
- "Rename" : "Torra a numenare",
- "Revoke" : "Rèvoca",
- "Wipe device" : "Cantzella dispositivu",
- "Device" : "Dispositivu",
- "Last activity" : "Ùrtima atividade",
- "Devices & sessions" : "Dispositivos & sessiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de iscrivania e mòbiles collegados immoe in su contu tuo.",
- "Error while creating device token" : "Errore creende su token de su dispositivu",
- "App name" : "Nùmene de s'aplicatzione",
- "Create new app password" : "Crea una crae noa de aplicatzione",
"Could not copy app password. Please copy it manually." : "No at fatu a copiare sa crae. Copia·dda a manu.",
"New app password" : "Crae de aplicatzione noa",
"Login" : "Atzessu",
@@ -224,93 +179,16 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Regorda ca sa tzifradura creschet semper sa mannària de s'archìviu.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Benit semper a bene a creare còpias de seguresa regulares de is datos tuos, in casu de tzifradura assegura•ti de creare còpia de is craes de tzfradura paris cun is datos tuos.",
"This is the final warning: Do you really want to enable encryption?" : "Custu est s'ùrtimu avisu : a beru boles ativare sa tzifradura?",
+ "Cancel" : "Annulla",
+ "Confirm" : "Cunfirma",
"Submit" : "Imbia",
- "Remove group" : "Boga·nche grupu",
- "Current password" : "Crae currente",
- "New password" : "Crae noa",
- "Change password" : "Càmbia crae",
- "The file must be a PNG or JPG" : "S'archìviu depet èssere unu PNG o JPG",
- "Picture provided by original account" : "Immàgine frunida dae su contu originale",
- "You are a member of the following groups:" : "Faghes parte de custos grupos:",
- "Your full name" : "Nùmene cumpletu",
- "Email options" : "Optziones de posta eletrònica",
- "Remove primary email" : "Boga•nche s'indiritzu de posta eletrònica printzipale",
- "Delete email" : "Cantzella indiritzu de posta eletrònica",
- "Additional email address {index}" : "Segundu indiritzu de posta eletrònica {index}",
- "Primary email for password reset and notifications" : "Indiritzu de posta eletrònica printzipale pro torrare a cunfigurare sa crae e retzire notìficas",
- "No email address set" : "Perunu indiritzu de posta eletrònica cunfiguradu",
- "Your handle" : "Nùmene de utente tuo",
- "Your headline" : "Su tìtulu tuo",
- "Help translate" : "Agiuda a tradùere",
- "No language set" : "Peruna limba cunfigurada",
- "Week starts on {firstDayOfWeek}" : "Sa chida cumintzat su {firstDayOfWeek}",
- "Your city" : "Sa tzitade tua",
- "Your organisation" : "S'organizatzione tua",
- "Your phone number" : "Nùmero tuo de telèfonu",
- "Edit your Profile visibility" : "Modifica su visibilidade de su profilu tuo",
- "Unable to update profile enabled state" : "Impossìbile agiornare s'istadu de profilu ativu",
- "Enable profile" : "Ativa su profilu",
- "Your role" : "Sa faina tua",
- "Your X (formerly Twitter) handle" : "Su profilu tuo de X (in antis, Twitter)",
- "Your website" : "Su situ web tuo",
- "Add" : "Agiunghe",
- "Create" : "Crea",
- "Change" : "Càmbia",
- "Delete" : "Cantzella",
- "Reshare" : "Torra a cumpartzire",
- "Default language" : "Limba predefinida",
- "Common languages" : "Limbas comunes",
- "Password change is disabled because the master key is disabled" : "Su càmbiu de sa crae est disativadu ca sa crae printzipale est disativada",
- "New account" : "Contu nou",
- "Display name" : "Ammustra nùmene",
- "Email" : "Posta eletrònica",
- "Quota" : "Cuota",
- "Language" : "Limba",
- "Add new account" : "Agiunghe unu contu nou",
- "Avatar" : "Avatar",
- "Group admin for" : "In amministratzione pro su grupu",
- "Storage location" : "Positzione de s'archiviatzione",
- "Last login" : "Ùrtimu atzessu",
- "Account actions" : "Atziones de su contu",
- "{size} used" : "{size} impreadu",
- "Delete account" : "Cantzella contu",
- "Resend welcome email" : "Torra a imbiare su messàgiu de benebènnida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In casu de pèrdida de su dispositivu o de essida dae s'organizatzione, custu podet cantzellare dae remotu is datos de Nextcloud dae totu is dispositivos assotziados cun {userid}. Funtzionat isceti si is dispositivos sunt collegados a internet. ",
- "Remote wipe of devices" : "Cantzelladura remota de is dispositivos",
- "Wipe {userid}'s devices" : "Cantzella is dispositivos de {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Cantzella su contu de {userid}, inclùdidos archìvios personales, datos de aplicatziones, etc.",
- "Account deletion" : "Cantzelladura de su contu",
- "Delete {userid}'s account" : "Cantzella su contu de {userid}",
- "Welcome mail sent!" : "Messàgiu de benebènnida imbiadu!",
- "Set new password" : "Cunfigura una crae noa",
- "Set new email address" : "Cunfigura un'indiritzu nou de posta eletrònica",
- "Done" : "Fatu",
- "Edit" : "Modìfica",
- "Show storage path" : "Mustra su percursu de archiviatzione",
- "Show last login" : "Mustra s'ùrtimu atzessu",
- "Sorting" : "Assentende",
- "Send email" : "Imbia messàgiu de posta eletrònica",
- "Default quota" : "Cuota predefinida",
- "Select default quota" : "Seletziona cuota predefinida",
- "Server error while trying to complete WebAuthn device registration" : "Errore de su serbidore chirchende de cumpletare sa registratzione de su dispositivu WebAuthn",
- "Passwordless authentication requires a secure connection." : "S'autenticatzione chene crae rechedet una connessione segura.",
- "Add WebAuthn device" : "Agiunghe dispositivu WebAuthn",
- "Please authorize your WebAuthn device." : "Autoriza su dispositivu WebAuthn tuo.",
- "Adding your device …" : "Agiunghende su dispositivu tuo ...",
- "Unnamed device" : "Dispositivu chene nùmene",
- "Passwordless Authentication" : "Autenticatzione chene crae",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Cunfigura su contu tuo pro s'autenticatzione chene crae, sighende s'istandard FIDO2.",
- "No devices configured." : "Perunu dispositivu cunfiguradu.",
- "The following devices are configured for your account:" : "Is dispositivos in fatu sunt cunfigurados pro su contu tuo:",
- "Your browser does not support WebAuthn." : "Su serbidore tuo non suportat WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Comente parte de s'amministratzione podes afinigare su cumportamentu de cumpartzidura. Càstia sa documentatzione pro àteras informatziones.",
- "Admins" : "Amministratzione",
"Sending…" : "Imbiende...",
"Email sent" : "Messàgiu de posta imbiadu",
"Location" : "Positzione",
"Profile picture" : "Immàgine de profilu",
"About" : "In contu de",
"Full name" : "Nùmene cumpletu",
+ "Email" : "Posta eletrònica",
"Fediverse (e.g. Mastodon)" : "Fediverse (pro esempru, Mastodon)",
"Headline" : "Tìtulos",
"Organisation" : "Organizatzione",
@@ -319,6 +197,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (in antis, Twitter)",
"Website" : "Situ ìnternet",
"Profile visibility" : "Visibilidade de su profilu",
+ "Language" : "Limba",
"Locale" : "Localizatzione",
"Your apps" : "Is aplicatziones tuas",
"Active apps" : "Aplicatziones ativas",
@@ -329,10 +208,12 @@ OC.L10N.register(
"Show to everyone" : "Mustra a totus",
"Show to logged in accounts only" : "Mustra isceti a is contos autenticados",
"Hide" : "Cua",
+ "Update to {version}" : "Agiorna a {version}",
"Download and enable" : "Iscàrriga e ativa",
"Disable" : "Disativa",
"The app will be downloaded from the App Store" : "S'aplicatzione s'at a iscarrigare dae sa butega de is aplicatziones",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Custa aplicatzione no est marcada comente cumpatìbile cun sa versione tua de Nextcloud. Si sighis, as a pòdere installare s'aplicatzione. Càstia ca podet èssere chi non funtzionet comente prevìdidu.",
+ "{size} used" : "{size} impreadu",
"Unknown" : "Disconnotu",
"Never" : "Mai",
"Error: This app cannot be enabled because it makes the server unstable" : "Errore: Custa aplicatzione non si podet ativare ca faghet su serbidore no istàbile",
@@ -344,6 +225,8 @@ OC.L10N.register(
"Error while updating device token scope" : "Errore agiornende s'àmbitu de su token de su dispositivu",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Tropu rechestas sunt arribadas dae sa rete tua. Torra a proare prus a tardu o cuntata s'amministradore tuo chi ddoe at un'errore.",
"Error" : "Errore",
+ "Default quota" : "Cuota predefinida",
+ "Documentation" : "Documentatzione",
"Forum" : "Forum",
"Legal notice" : "Avisu legale",
"Privacy policy" : "Critèriu de riservadesa",
@@ -360,6 +243,7 @@ OC.L10N.register(
"Credentials" : "Credentziales",
"SMTP Password" : "Crae SMTP",
"Save" : "Sarva",
+ "Send email" : "Imbia messàgiu de posta eletrònica",
"Security & setup warnings" : "Avisos de seguresa e cunfiguratzione",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Est importante pro sa seguresa e s'esecutzione de s'istàntzia tua chi totu siat cunfiguradu bene. Pro t'agiudare, semus faghende controllos automàticos. Càstia sa documentatzione in ligòngiu pro àteras informatziones.",
"All checks passed." : "Passados totu is controllos.",
@@ -376,17 +260,6 @@ OC.L10N.register(
"Subscribe to our newsletter" : "Iscrie·ti a sa lista de messàgios nostra",
"Use a second factor besides your password to increase security for your account." : "Imprea unu segundu fatore a parte sa crae tua pro crèschere sa seguresa de su contu tuo.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si impreas aplicatziones de sa de tres partes pro ti connètere a Nextcloud, assegura•ti de creare e cunfigurare una crae pro cada aplicatzione antis de ativare su segundu fatore de autenticatzione.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "In sa base de datos mancat calicunu ìnditze. Agiùnghere is ìnditzes a tàulas mannas podet pigare unu pagu de tempus, tando no s'agiunghent de manera automàtica. Impreende \"occ db:add-missing-indices\" si podent agiùnghere a manu is ìnditzes chi mancant in s'interis chi s'istàntzia est in funtzione. Cando is ìnditzes sunt agiuntos is rechestas a custas tàulas andant giai semper prus a lestru meda.",
- "Set default expiration date for shares" : "Cunfigura sa data de iscadèntzia predefinida pro is cumpartziduras",
- "Your biography" : "Sa biografia tua",
- "New user" : "Utèntzia noa",
- "Add new user" : "Agiunghe utente nou",
- "_{userCount} user_::_{userCount} users_" : ["{userCount}utente","{userCount} utentes"],
- "Username" : "Nùmene utente",
- "User backend" : "Motore utente",
- "Add user to group" : "Agiunghe un'utente a unu grupu",
- "Server error while trying to add WebAuthn device" : "Errore de su serbidore chirchende de agiùnghere su dispositivu WebAuthn",
- "Name your device" : "Nùmena su dispositivu",
- "Follow us on Twitter" : "Sighi•nosi in Twitter"
+ "Set default expiration date for shares" : "Cunfigura sa data de iscadèntzia predefinida pro is cumpartziduras"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/sc.json b/apps/settings/l10n/sc.json
index e9127e3af0b..853fc2c3bdc 100644
--- a/apps/settings/l10n/sc.json
+++ b/apps/settings/l10n/sc.json
@@ -159,51 +159,6 @@
"Loading groups…" : "Carrighende grupos...",
"Nothing to show" : "Nudda de mustrare",
"Loading" : "Carrighende",
- "Type" : "Genia",
- "Confirm" : "Cunfirma",
- "Cancel" : "Annulla",
- "Description" : "Descritzione",
- "View in store" : "Càstia in s'archìviu",
- "Visit website" : "Vìsita su situ",
- "Admin documentation" : "Documentatzione amministratzione",
- "Developer documentation" : "Documentatzione isvilupu",
- "Details" : "Detàllios",
- "All" : "Totu",
- "Limit app usage to groups" : "Lìmita s'impreu de s'aplicatzione a grupos",
- "No results" : "Perunu resurtadu",
- "Update to {version}" : "Agiorna a {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Custa aplicatzione non cuntenet sa versione mìnima de Nextcloud assignada. At a èssere unu problema in su benidore.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Custa aplicatzione non cuntenet sa versione màssima de Nextcloud assignada. At a èssere unu problema in su benidore.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Non faghet a installare custa aplicatzione ca is dipendèntzias in fatu non sunt satisfatos:",
- "Author" : "Autoria",
- "Categories" : "Categ",
- "Resources" : "Risorsas",
- "Documentation" : "Documentatzione",
- "Report a bug" : "Signala un'errore",
- "Request feature" : "Rechede funtzionalidade",
- "Ask questions or discuss" : "Faghe preguntas o discuti",
- "Rate" : "Vàluta",
- "Changelog" : "Registru de is càmbios",
- "Google Chrome for Android" : "Google Chrome pro Android",
- "{productName} iOS app" : "{productName} aplicatzione iOS ",
- "{productName} Android app" : "Aplicatzione de {productName} pro Android",
- "{productName} Talk for iOS" : "{productName} Talk pro iOS",
- "{productName} Talk for Android" : "{productName} Talk pro Android",
- "This session" : "Custa sessione",
- "Save new name" : "Sarva nùmene nou",
- "Marked for remote wipe" : "Marcadu pro cantzelladura remota",
- "Device settings" : "Cunfiguratzione de su dispositivu",
- "Allow filesystem access" : "Permite s'intrada a su sistema de is archìvios",
- "Rename" : "Torra a numenare",
- "Revoke" : "Rèvoca",
- "Wipe device" : "Cantzella dispositivu",
- "Device" : "Dispositivu",
- "Last activity" : "Ùrtima atividade",
- "Devices & sessions" : "Dispositivos & sessiones",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de iscrivania e mòbiles collegados immoe in su contu tuo.",
- "Error while creating device token" : "Errore creende su token de su dispositivu",
- "App name" : "Nùmene de s'aplicatzione",
- "Create new app password" : "Crea una crae noa de aplicatzione",
"Could not copy app password. Please copy it manually." : "No at fatu a copiare sa crae. Copia·dda a manu.",
"New app password" : "Crae de aplicatzione noa",
"Login" : "Atzessu",
@@ -222,93 +177,16 @@
"Be aware that encryption always increases the file size." : "Regorda ca sa tzifradura creschet semper sa mannària de s'archìviu.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Benit semper a bene a creare còpias de seguresa regulares de is datos tuos, in casu de tzifradura assegura•ti de creare còpia de is craes de tzfradura paris cun is datos tuos.",
"This is the final warning: Do you really want to enable encryption?" : "Custu est s'ùrtimu avisu : a beru boles ativare sa tzifradura?",
+ "Cancel" : "Annulla",
+ "Confirm" : "Cunfirma",
"Submit" : "Imbia",
- "Remove group" : "Boga·nche grupu",
- "Current password" : "Crae currente",
- "New password" : "Crae noa",
- "Change password" : "Càmbia crae",
- "The file must be a PNG or JPG" : "S'archìviu depet èssere unu PNG o JPG",
- "Picture provided by original account" : "Immàgine frunida dae su contu originale",
- "You are a member of the following groups:" : "Faghes parte de custos grupos:",
- "Your full name" : "Nùmene cumpletu",
- "Email options" : "Optziones de posta eletrònica",
- "Remove primary email" : "Boga•nche s'indiritzu de posta eletrònica printzipale",
- "Delete email" : "Cantzella indiritzu de posta eletrònica",
- "Additional email address {index}" : "Segundu indiritzu de posta eletrònica {index}",
- "Primary email for password reset and notifications" : "Indiritzu de posta eletrònica printzipale pro torrare a cunfigurare sa crae e retzire notìficas",
- "No email address set" : "Perunu indiritzu de posta eletrònica cunfiguradu",
- "Your handle" : "Nùmene de utente tuo",
- "Your headline" : "Su tìtulu tuo",
- "Help translate" : "Agiuda a tradùere",
- "No language set" : "Peruna limba cunfigurada",
- "Week starts on {firstDayOfWeek}" : "Sa chida cumintzat su {firstDayOfWeek}",
- "Your city" : "Sa tzitade tua",
- "Your organisation" : "S'organizatzione tua",
- "Your phone number" : "Nùmero tuo de telèfonu",
- "Edit your Profile visibility" : "Modifica su visibilidade de su profilu tuo",
- "Unable to update profile enabled state" : "Impossìbile agiornare s'istadu de profilu ativu",
- "Enable profile" : "Ativa su profilu",
- "Your role" : "Sa faina tua",
- "Your X (formerly Twitter) handle" : "Su profilu tuo de X (in antis, Twitter)",
- "Your website" : "Su situ web tuo",
- "Add" : "Agiunghe",
- "Create" : "Crea",
- "Change" : "Càmbia",
- "Delete" : "Cantzella",
- "Reshare" : "Torra a cumpartzire",
- "Default language" : "Limba predefinida",
- "Common languages" : "Limbas comunes",
- "Password change is disabled because the master key is disabled" : "Su càmbiu de sa crae est disativadu ca sa crae printzipale est disativada",
- "New account" : "Contu nou",
- "Display name" : "Ammustra nùmene",
- "Email" : "Posta eletrònica",
- "Quota" : "Cuota",
- "Language" : "Limba",
- "Add new account" : "Agiunghe unu contu nou",
- "Avatar" : "Avatar",
- "Group admin for" : "In amministratzione pro su grupu",
- "Storage location" : "Positzione de s'archiviatzione",
- "Last login" : "Ùrtimu atzessu",
- "Account actions" : "Atziones de su contu",
- "{size} used" : "{size} impreadu",
- "Delete account" : "Cantzella contu",
- "Resend welcome email" : "Torra a imbiare su messàgiu de benebènnida",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "In casu de pèrdida de su dispositivu o de essida dae s'organizatzione, custu podet cantzellare dae remotu is datos de Nextcloud dae totu is dispositivos assotziados cun {userid}. Funtzionat isceti si is dispositivos sunt collegados a internet. ",
- "Remote wipe of devices" : "Cantzelladura remota de is dispositivos",
- "Wipe {userid}'s devices" : "Cantzella is dispositivos de {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Cantzella su contu de {userid}, inclùdidos archìvios personales, datos de aplicatziones, etc.",
- "Account deletion" : "Cantzelladura de su contu",
- "Delete {userid}'s account" : "Cantzella su contu de {userid}",
- "Welcome mail sent!" : "Messàgiu de benebènnida imbiadu!",
- "Set new password" : "Cunfigura una crae noa",
- "Set new email address" : "Cunfigura un'indiritzu nou de posta eletrònica",
- "Done" : "Fatu",
- "Edit" : "Modìfica",
- "Show storage path" : "Mustra su percursu de archiviatzione",
- "Show last login" : "Mustra s'ùrtimu atzessu",
- "Sorting" : "Assentende",
- "Send email" : "Imbia messàgiu de posta eletrònica",
- "Default quota" : "Cuota predefinida",
- "Select default quota" : "Seletziona cuota predefinida",
- "Server error while trying to complete WebAuthn device registration" : "Errore de su serbidore chirchende de cumpletare sa registratzione de su dispositivu WebAuthn",
- "Passwordless authentication requires a secure connection." : "S'autenticatzione chene crae rechedet una connessione segura.",
- "Add WebAuthn device" : "Agiunghe dispositivu WebAuthn",
- "Please authorize your WebAuthn device." : "Autoriza su dispositivu WebAuthn tuo.",
- "Adding your device …" : "Agiunghende su dispositivu tuo ...",
- "Unnamed device" : "Dispositivu chene nùmene",
- "Passwordless Authentication" : "Autenticatzione chene crae",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Cunfigura su contu tuo pro s'autenticatzione chene crae, sighende s'istandard FIDO2.",
- "No devices configured." : "Perunu dispositivu cunfiguradu.",
- "The following devices are configured for your account:" : "Is dispositivos in fatu sunt cunfigurados pro su contu tuo:",
- "Your browser does not support WebAuthn." : "Su serbidore tuo non suportat WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Comente parte de s'amministratzione podes afinigare su cumportamentu de cumpartzidura. Càstia sa documentatzione pro àteras informatziones.",
- "Admins" : "Amministratzione",
"Sending…" : "Imbiende...",
"Email sent" : "Messàgiu de posta imbiadu",
"Location" : "Positzione",
"Profile picture" : "Immàgine de profilu",
"About" : "In contu de",
"Full name" : "Nùmene cumpletu",
+ "Email" : "Posta eletrònica",
"Fediverse (e.g. Mastodon)" : "Fediverse (pro esempru, Mastodon)",
"Headline" : "Tìtulos",
"Organisation" : "Organizatzione",
@@ -317,6 +195,7 @@
"X (formerly Twitter)" : "X (in antis, Twitter)",
"Website" : "Situ ìnternet",
"Profile visibility" : "Visibilidade de su profilu",
+ "Language" : "Limba",
"Locale" : "Localizatzione",
"Your apps" : "Is aplicatziones tuas",
"Active apps" : "Aplicatziones ativas",
@@ -327,10 +206,12 @@
"Show to everyone" : "Mustra a totus",
"Show to logged in accounts only" : "Mustra isceti a is contos autenticados",
"Hide" : "Cua",
+ "Update to {version}" : "Agiorna a {version}",
"Download and enable" : "Iscàrriga e ativa",
"Disable" : "Disativa",
"The app will be downloaded from the App Store" : "S'aplicatzione s'at a iscarrigare dae sa butega de is aplicatziones",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Custa aplicatzione no est marcada comente cumpatìbile cun sa versione tua de Nextcloud. Si sighis, as a pòdere installare s'aplicatzione. Càstia ca podet èssere chi non funtzionet comente prevìdidu.",
+ "{size} used" : "{size} impreadu",
"Unknown" : "Disconnotu",
"Never" : "Mai",
"Error: This app cannot be enabled because it makes the server unstable" : "Errore: Custa aplicatzione non si podet ativare ca faghet su serbidore no istàbile",
@@ -342,6 +223,8 @@
"Error while updating device token scope" : "Errore agiornende s'àmbitu de su token de su dispositivu",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Tropu rechestas sunt arribadas dae sa rete tua. Torra a proare prus a tardu o cuntata s'amministradore tuo chi ddoe at un'errore.",
"Error" : "Errore",
+ "Default quota" : "Cuota predefinida",
+ "Documentation" : "Documentatzione",
"Forum" : "Forum",
"Legal notice" : "Avisu legale",
"Privacy policy" : "Critèriu de riservadesa",
@@ -358,6 +241,7 @@
"Credentials" : "Credentziales",
"SMTP Password" : "Crae SMTP",
"Save" : "Sarva",
+ "Send email" : "Imbia messàgiu de posta eletrònica",
"Security & setup warnings" : "Avisos de seguresa e cunfiguratzione",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Est importante pro sa seguresa e s'esecutzione de s'istàntzia tua chi totu siat cunfiguradu bene. Pro t'agiudare, semus faghende controllos automàticos. Càstia sa documentatzione in ligòngiu pro àteras informatziones.",
"All checks passed." : "Passados totu is controllos.",
@@ -374,17 +258,6 @@
"Subscribe to our newsletter" : "Iscrie·ti a sa lista de messàgios nostra",
"Use a second factor besides your password to increase security for your account." : "Imprea unu segundu fatore a parte sa crae tua pro crèschere sa seguresa de su contu tuo.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Si impreas aplicatziones de sa de tres partes pro ti connètere a Nextcloud, assegura•ti de creare e cunfigurare una crae pro cada aplicatzione antis de ativare su segundu fatore de autenticatzione.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "In sa base de datos mancat calicunu ìnditze. Agiùnghere is ìnditzes a tàulas mannas podet pigare unu pagu de tempus, tando no s'agiunghent de manera automàtica. Impreende \"occ db:add-missing-indices\" si podent agiùnghere a manu is ìnditzes chi mancant in s'interis chi s'istàntzia est in funtzione. Cando is ìnditzes sunt agiuntos is rechestas a custas tàulas andant giai semper prus a lestru meda.",
- "Set default expiration date for shares" : "Cunfigura sa data de iscadèntzia predefinida pro is cumpartziduras",
- "Your biography" : "Sa biografia tua",
- "New user" : "Utèntzia noa",
- "Add new user" : "Agiunghe utente nou",
- "_{userCount} user_::_{userCount} users_" : ["{userCount}utente","{userCount} utentes"],
- "Username" : "Nùmene utente",
- "User backend" : "Motore utente",
- "Add user to group" : "Agiunghe un'utente a unu grupu",
- "Server error while trying to add WebAuthn device" : "Errore de su serbidore chirchende de agiùnghere su dispositivu WebAuthn",
- "Name your device" : "Nùmena su dispositivu",
- "Follow us on Twitter" : "Sighi•nosi in Twitter"
+ "Set default expiration date for shares" : "Cunfigura sa data de iscadèntzia predefinida pro is cumpartziduras"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/sk.js b/apps/settings/l10n/sk.js
index 6f5394b86d2..7734f131b30 100644
--- a/apps/settings/l10n/sk.js
+++ b/apps/settings/l10n/sk.js
@@ -295,7 +295,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP hlavičky",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "Hlavička HTTP `%1$s` nie je nakonfigurovaná na `%2$s`. Niektoré funkcie nemusia pracovať správne a preto odporúčame toto nastavenie upraviť.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Hlavička HTTP `%1$s` nie je nakonfigurovaná na `%2$s`. Toto je potenciálne riziko pre bezpečnosť alebo ochranu osobných údajov a preto odporúčame toto nastavenie upraviť.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Hlavička HTTP `%1$s` neobsahuje `%2$s`. Toto je potenciálne riziko pre bezpečnosť alebo ochranu osobných údajov a preto odporúčame toto nastavenie upraviť.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Hlavička `%1$s` HTTP nie je nastavená na `%2$s`, `%3$s`, `%4$s`, `%5$s` alebo `%6$s`. Toto môže spôsobiť únik informácií o referentovi. Pozrite si {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- HTTP hlavička `Strict-Transport-Security` nie je nastavená na aspoň `%d` sekúnd (aktuálna hodnota: `%d`). Na zvýšenie bezpečnosti sa odporúča použiť dlhšiu politiku pre HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP hlavička `Strict-Transport-Security` má nesprávny tvar: `%s`. Pre zvýšenie bezpečnosti sa odporúča povoliť HSTS.",
@@ -442,97 +441,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Nepodarilo sa načítať obsah sekcie z obchodu s aplikáciami.",
"Loading" : "Načítava sa",
"Fetching the latest news…" : "Načítavajú sa najnovšie správy…",
- "Carousel" : "Karusel",
- "Previous slide" : "Predchádzajúca snímka",
- "Next slide" : "Ďalšia snímka",
- "Choose slide to display" : "Vyberte snímok pre zobrazenie",
- "{index} of {total}" : "{index} z {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Nasadiť proces služby",
- "Type" : "Typ",
- "Display Name" : "Zobrazované meno",
- "GPUs support" : "Podpora GPU",
- "Compute device" : "Výpočetné zariadenie",
- "Advanced deploy options" : "Pokročilé možnosti nasadenia",
- "Edit ExApp deploy options before installation" : "Editovať možnosti nasadenia ExApp pred inštaláciou",
- "Configured ExApp deploy options. Can be set only during installation" : "Nakonfigurované možnosti nasadenia ExApp. Dá sa nastaviť len počas inštalácie",
- "Learn more" : "Dozvedieť sa viac",
- "Environment variables" : "Premenné prostredia",
- "ExApp container environment variables" : "Premenné prostredia kontajnera AppAPI",
- "No environment variables defined" : "Neboli definované žiadne premenné prostredia",
- "Mounts" : "Prípojné body",
- "Define host folder mounts to bind to the ExApp container" : "Definujte pripojenia hostiteľského adresára, ktoré sa majú naviazať na kontajner ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Musí existovať na hostiteľovi démona Deploy pred inštaláciou ExApp",
- "Host path" : "Cesta k hostiteľovi",
- "Container path" : "Cesta ku kontajneru",
- "Read-only" : "Iba na čítanie",
- "Remove mount" : "Odstrániť prípojný bod",
- "New mount" : "Nový prípojný bod",
- "Enter path to host folder" : "Vložte cestu k hostiteľskému adresáru ",
- "Enter path to container folder" : "Vložte cestu k adresáru kontajnera",
- "Toggle read-only mode" : "Prepnúť režim iba na čítanie",
- "Confirm adding new mount" : "Potvrdiť pridanie nového prípojného bodu",
- "Confirm" : "Potvrdiť",
- "Cancel adding mount" : "Zrušiť pridanie prípojného bodu",
- "Cancel" : "Zrušiť",
- "Add mount" : "Pridať prípojný bod",
- "ExApp container mounts" : "Prípojné body kontajnera ExApp",
- "No mounts defined" : "Nie sú definované žiadne prípojné body",
- "Description" : "Popis",
- "View in store" : "Zobraz v obchode",
- "Visit website" : "Navštíviť webstránku",
- "Usage documentation" : "Užívateľská dokumentácia",
- "Admin documentation" : "Príručka administrátora",
- "Developer documentation" : "Dokumentácia vývojára",
- "Details" : "Detaily",
- "All" : "Všetky",
- "Limit app usage to groups" : "Obmedziť používanie aplikácií pre skupiny",
- "No results" : "Žiadne výsledky",
- "Update to {version}" : "Aktualizovať na {version}",
- "Deploy options" : "Možnosti nasadenia",
- "Default Deploy daemon is not accessible" : "Východzí proces služby nasadzovania nie je dostupný",
- "Delete data on remove" : "Pri odobraní zmazať dáta",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná minimálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná maximálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Túto aplikáciu nemožno nainštalovať, pretože nie sú splnené nasledovné závislosti:",
- "Latest updated" : "Naposledy aktualizované",
- "Author" : "Autor",
- "Categories" : "Kategórie",
- "Resources" : "Zdroje",
- "Documentation" : "Dokumentácia",
- "Interact" : "Interagovať",
- "Report a bug" : "Nahlásiť chybu",
- "Request feature" : "Požiadavka odporúčania",
- "Ask questions or discuss" : "Pýtajte sa alebo diskutujte",
- "Rate the app" : "Ohodnotiť aplikáciu",
- "Rate" : "Hodnotenie",
- "Changelog" : "Zoznam zmien",
- "Google Chrome for Android" : "Google Chrome pre Android",
- "{productName} iOS app" : "{productName} iOS aplikácia",
- "{productName} Android app" : "{productName} Android aplikácia",
- "{productName} Talk for iOS" : "{productName} Talk /Rozhovor/ pre iOS",
- "{productName} Talk for Android" : "{productName} Talk /Rozhovor/ pre Android",
- "Sync client" : "Klient synchronizácie",
- "This session" : "Táto relácia",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Názov zariadenia",
- "Cancel renaming" : "Zrušiť premenovanie",
- "Save new name" : "Uložiť nové meno",
- "Marked for remote wipe" : "Označené na vymazanie na diaľku",
- "Device settings" : "Nastavenia zariadenia",
- "Allow filesystem access" : "Povoliť prístup ku súborovému systému",
- "Rename" : "Premenovať",
- "Revoke" : "Odvolať",
- "Wipe device" : "Vymazať obsah zariadenia",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Ostránenie tohto tokenu môže zabrániť vymazaniu vášho zariadenia, ak sa ešte nezačalo mazanie.",
- "Device" : "Zariadenie",
- "Last activity" : "Posledná aktivita",
- "Devices & sessions" : "Zariadenia a relácie",
- "Web, desktop and mobile clients currently logged in to your account." : "Weboví, desktopoví alebo mobilní klienti práve prihlásení k vášmu účtu.",
- "Error while creating device token" : "Chyba pri vytváraní tokenov zariadenia",
- "App name" : "Názov aplikácie",
- "Create new app password" : "Vytvoriť nové heslo aplikácie",
"App password copied!" : "Heslo aplikácie skopírované!",
"Copy app password" : "Kopírovať heslo aplikácie",
"Login name copied!" : "Prihlasovacie meno bolo skopírované!",
@@ -560,6 +468,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Nie je možné aktualizovať predvolené nastavenie profilu",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Predvolene povoliť alebo zakázať profil pre nové účty.",
+ "Password confirmation is required" : "Vyžaduje sa overenie heslom",
"Failed to save setting" : "Nepodarilo sa uložiť nastavenie",
"{app}'s declarative setting field: {name}" : "Pole deklaratívneho nastavenia aplikácie {app}: {name}",
"Unable to update server side encryption config" : "Nedá sa aktualizovať konfigurácia šifrovania na strane servera",
@@ -582,205 +491,11 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je dobré vytvárať pravidelné zálohy vašich dát, uistite sa, že v prípade šifrovania spolu s vašimi dátami zálohujete aj šifrovacie kľúče.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informácie o tom, ako ručne zašifrovať aj existujúce súbory, nájdete v dokumentácii pre administrátora.",
"This is the final warning: Do you really want to enable encryption?" : "Toto je posledné varovanie: Vážne si prajete povoliť šifrovanie?",
- "Failed to remove group \"{group}\"" : "Nepodarilo sa odstrániť skupinu \"{group}\"",
"Please confirm the group removal" : "Prosím potvrďte vymazanie skupiny.",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Chystáte sa odstrániť skupinu \"{group}\". Používatelia NEBUDÚ vymazaní.",
+ "Cancel" : "Zrušiť",
+ "Confirm" : "Potvrdiť",
"Submit" : "Odoslať",
"Rename group" : "Premenovať skupinu",
- "Remove group" : "Odstrániť skupinu",
- "Current password" : "Aktuálne heslo",
- "New password" : "Nové heslo",
- "Change password" : "Zmeniť heslo",
- "Choose your profile picture" : "Vyberte si váš profilový obrázok",
- "Please select a valid png or jpg file" : "Prosím vyberte platný png alebo jpg súbor",
- "Error setting profile picture" : "Chyba pri nastavovaní profilového obrázku",
- "Error cropping profile picture" : "Chyba pri orezávaní profilového obrázku",
- "Error saving profile picture" : "Chyba pri ukladaní profilového obrázku",
- "Error removing profile picture" : "Chyba pri odstraňovaní profilového obrázku",
- "Your profile picture" : "Váš profilový obrázok",
- "Upload profile picture" : "Nahrať profilový obrázok",
- "Choose profile picture from Files" : "Vyberte profilový obrázok zo Súborov",
- "Remove profile picture" : "Odstrániť profilový obrázok",
- "The file must be a PNG or JPG" : "Súbor musí byť vo formáte PNG alebo JPG",
- "Picture provided by original account" : "Obrázok poskytnutý originálnym účtom",
- "Set as profile picture" : "Nastaviť ako profilový obrázok",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Upozorňujeme, že aktualizácia vášho profilového obrázka môže trvať až 24 hodín.",
- "Your biography. Markdown is supported." : "Váš životopis. Markdown je podporovaný.",
- "Unable to update date of birth" : "Nepodarilo sa aktualizovať dátum narodenia",
- "Enter your date of birth" : "Zadajte váš dátum narodenia",
- "You are using {s}{usage}{/s}" : "Využívate {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Využívate {s}{usage}{/s} z {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Ste členom nasledovných skupín:",
- "Your full name" : "Vaše celé meno",
- "Email options" : "E-mailové nastavenia",
- "Options for additional email address {index}" : "Možnosti pre ďalšiu emailovú adresu {index}",
- "Remove primary email" : "Odobrať primárny email",
- "Delete email" : "Zmazať email",
- "This address is not confirmed" : "Táto adresa nie je potvrdená",
- "Unset as primary email" : "Zrušiť nastavenie ako primárny e-mail",
- "Set as primary email" : "Nastaviť ako primárny e-mail",
- "Additional email address {index}" : "Ďalšia e-mailová adresa {index}",
- "Unable to delete primary email address" : "Nie je možné zmazať primárnu e-mail adresu",
- "Unable to update primary email address" : "Nie je možné aktualizovať primárnu e-mail adresu",
- "Unable to add additional email address" : "Nie je možné pridať ďalšiu e-mail adresu",
- "Unable to update additional email address" : "Nie je možné aktualizovať ďalšiu e-mail adresu",
- "Unable to delete additional email address" : "Nie je možné odstrániť ďalšiu e-mail adresu",
- "Primary email for password reset and notifications" : "Primárny e-mail na obnovenie hesla a zasielanie upozornení",
- "No email address set" : "Emailová adresa nie je nastavená",
- "Your handle" : "Váš identifikátor (handle)",
- "Derived from your locale ({weekDayName})" : "Odvodené z vášho miestneho nastavenia ({weekDayName})",
- "Unable to update first day of week" : "Nepodarilo sa aktualizovať deň používaný ako prvý deň v týždni",
- "Day to use as the first day of week" : "Deň používaný ako prvý deň v týždni",
- "Your headline" : "Váš titul",
- "Unable to update language" : "Nie je možné aktualizovať jazyk",
- "Languages" : "Jazyky",
- "Help translate" : "Pomôcť s prekladom",
- "No language set" : "Nie je nastavený žiadny jazyk",
- "Unable to update locale" : "Nie je možné aktualizovať regionálne nastavenia",
- "Locales" : "Regionálne nastavenia",
- "Week starts on {firstDayOfWeek}" : "Prvý deň v týždni je {firstDayOfWeek}",
- "No locale set" : "Nie sú konfigurované žiadne regionálne nastavenia",
- "Your city" : "Vaše mesto",
- "Your organisation" : "Vaša organizácia",
- "Your phone number" : "Vaše telefónne číslo",
- "Edit your Profile visibility" : "Upraviť viditeľnosť vášho profilu",
- "Unable to update profile enabled state" : "Nie je možné aktualizovať stav aktivácie profilu",
- "Enable profile" : "Povoliť profil",
- "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." : "Vo vašom profile sa rešpektuje prísnejšie nastavenie viditeľnosti alebo rozsahu. Ak je napríklad viditeľnosť nastavená na „Zobraziť všetkým“ a rozsah je nastavený na „Súkromné“, „Súkromné“ bude rešpektované.",
- "Unable to update visibility of {displayId}" : "Nie je možné aktualizovať viditeľnosť {displayId}",
- "she/her" : "ona/jej",
- "he/him" : "on/jeho",
- "they/them" : "oni/ich",
- "Your role" : "Vaša rola",
- "Your X (formerly Twitter) handle" : "Ovládanie Vašeho X (predtým Twitter)",
- "Your website" : "Vaša webstránka",
- "Invalid value" : "Chybná hodnota",
- "Unable to update {property}" : "Nie je možné aktualizovať {property}",
- "No {property} set" : "Nie je nastavená žiadna {property}",
- "Change scope level of {property}, current scope is {scope}" : "Zmeniť úroveň rozsahu {property}, aktuálny rozsah je {scope}",
- "Unable to update federation scope of the primary {property}" : "Nie je možné aktualizovať rozsah združenia primárneho {property}",
- "Unable to update federation scope of additional {property}" : "Nie je možné aktualizovať rozsah združenia ďalšieho {property}",
- "Add additional email" : "Pridať ďalší e-mail",
- "Add" : "Pridať",
- "Create" : "Vytvárať",
- "Change" : "Zmeniť",
- "Delete" : "Zmazať",
- "Reshare" : "Zdieľať ďalej",
- "Default language" : "Predvolený jazyk",
- "Common languages" : "Spoločné jazyky",
- "Other languages" : "Iné jazyky",
- "Password change is disabled because the master key is disabled" : "Zmena hesla je zablokovaná pretože hlavný kľúč je vypnutý",
- "No accounts" : "Žiadne účty",
- "Loading accounts …" : "Nahrávanie účtov ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Zoznam účtov. Tento zoznam nie je úplne vykreslený z dôvodov výkonu. Účty budú vykreslené, keď budete prechádzať zoznamom.",
- "Manager" : "Manažér",
- "Set line manager" : "Nastaviť líniového manažéra",
- "Account name will be autogenerated" : "Názov účtu bude automaticky generovaný",
- "Account name (required)" : "Názov účtu (povinné)",
- "Failed to search groups" : "Neporarilo sa prehľadať skupiny",
- "New account" : "Nový účet",
- "Display name" : "Zobrazované meno",
- "Either password or email is required" : "Buď je potrebné zadať heslo alebo e-mail",
- "Password (required)" : "Heslo (povinné)",
- "Email (required)" : "E-mail (povinné)",
- "Email" : "Email",
- "Member of the following groups (required)" : "Člen nasledujúcich skupín (povinné)",
- "Member of the following groups" : "Člen nasledujúcich skupín",
- "Set account groups" : "Nastaviť skupiny pre účet",
- "Admin of the following groups" : "Administrátor nasledujúcich skupín",
- "Set account as admin for …" : "Nastaviť účet ako adminstrátora pre ...",
- "Quota" : "Kvóta",
- "Set account quota" : "Nastaviť kvótu pre účet",
- "Language" : "Jazyk",
- "Set default language" : "Nastaviť predvolený jazyk",
- "Add new account" : " Pridať nový účet",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} účet ...","{userCount} účty ...","{userCount} účtov ...","{userCount} účtov ..."],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} účet","{userCount} účty","{userCount} účtov","{userCount} účtov"],
- "Total rows summary" : "Súčet všetkých riadkov",
- "Scroll to load more rows" : "Posúvajte pre načítanie ďalších riadkov",
- "Password or insufficient permissions message" : "Heslo alebo správa o nedostatočných oprávneniach",
- "Avatar" : "Avatar",
- "Account name" : "Názov účtu",
- "Group admin for" : "Administrátor skupiny pre",
- "Account backend" : "Backend účtu",
- "Storage location" : "Umiestnenie úložiska",
- "First login" : "Prvé prihlásenie",
- "Last login" : "Posledné prihlásenie",
- "Account actions" : "Možnosti účtu",
- "{size} used" : "{size} použité",
- "Delete account" : "Zmazať účet",
- "Disconnect all devices and delete local data" : "Odpojiť všetky zariadenia a vymazať lokálne dáta",
- "Disable account" : "Zakázať účet",
- "Enable account" : "Povoliť účet",
- "Resend welcome email" : "Znova odoslať privítací email",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "V prípade straty zariadenia alebo napr. odchodu z firmy to môže na daľku vymazať údaje Nextcloud zo všetkých zariadení priradených k {userid}. Funguje iba vtedy, ak sú zariadenia pripojené k internetu.",
- "Remote wipe of devices" : "Vymazať obsah zariadení na diaľku",
- "Wipe {userid}'s devices" : "Vymazať obsah zariadení {userid}",
- "Wiped {userid}'s devices" : "Vymazané zariadenia užívateľa {userid}",
- "Failed to load groups with details" : "Nepodarilo sa načítať skupiny s podrobnosťami",
- "Failed to update line manager" : "Nepodarilo sa aktualizovať líniového manažéra",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Úplne odstráiť účet používateľa {userid} vrátane všetkých osobných súborov, údajov aplikácií atď.",
- "Account deletion" : "Zmazanie účtu",
- "Delete {userid}'s account" : "Vymazať účet {userid}",
- "Display name was successfully changed" : "Zobrazované meno ste úspešne zmenili",
- "Password can't be empty" : "Heslo nemôže byť prázdne",
- "Password was successfully changed" : "Heslo bolo úspešne zmenené",
- "Email can't be empty" : "E-mail nemôže byť prázdny",
- "Email was successfully changed" : "Email bol úspešne zmenený",
- "Welcome mail sent!" : "Privítací email odoslaný",
- "Loading account …" : "Nahrávam účet ...",
- "Change display name" : "Zmeniť zobrazované meno",
- "Set new password" : "Vytvoriť nové heslo",
- "You do not have permissions to see the details of this account" : "Nemáte oprávnenie vidieť detaily tohto účtu",
- "Set new email address" : "Nastavte novú e-mailovú adresu",
- "Add account to group" : "Pridať účet do skupiny",
- "Set account as admin for" : "Nastavte účet ako správcu pre",
- "Select account quota" : "Vyberte kvótu účtu",
- "Set the language" : "Nastavte jazyk",
- "Toggle account actions menu" : "Prepnúť ponuku akcií účtu",
- "Done" : "Hotovo",
- "Edit" : "Upraviť",
- "Account management settings" : "Nastavenia správy účtu",
- "Visibility" : "Viditeľnosť",
- "Show language" : "Zobraziť jazyk",
- "Show account backend" : "Zobraziť backend účtu",
- "Show storage path" : "Zobraziť popis umiestnenia úložiska",
- "Show first login" : "Zobraziť prvé prihlásenie",
- "Show last login" : "Zobraziť posledné prihlásenie",
- "Sorting" : "Triedenie",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Systémová konfigurácia vynucuje triedenie skupín podľa názvu. Toto tiež zakáže zobrazovanie počtu členov.",
- "Group list sorting" : "Triedenie zoznamu skupín",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Zoradenie sa z dôvodu výkonu vzťahuje len na aktuálne načítané skupiny. Skupiny sa načítajú pri navigácii alebo vyhľadávaní v zozname.",
- "By member count" : "Podľa počtu členov",
- "By name" : "Podľa názvu",
- "Send email" : "Odoslať email",
- "Send welcome email to new accounts" : "Poslať uvítací e-mail novým účtom",
- "Defaults" : "Predvolené hodnoty",
- "Default quota" : "Predvolená kvóta",
- "Select default quota" : "Vybrať predvolenú kvótu",
- "Server error while trying to complete WebAuthn device registration" : "Chyba servera pri pokuse o dokončenie registrácie zariadenia WebAuthn",
- "Passwordless authentication requires a secure connection." : "Overenie bez hesla vyžaduje zabezpečné pripojenie.",
- "Add WebAuthn device" : "Pridať zariadenie WebAuthn",
- "Please authorize your WebAuthn device." : "Autorizujte svoje zariadenie WebAuthn.",
- "Adding your device …" : "Pridáva sa zariadenie...",
- "Unnamed device" : "Nepomenované zariadenie",
- "Passwordless Authentication" : "Overovanie bez hesla",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Nastavte si účet pre využívanie overovania bez hesla podľa štandardu FIDO2.",
- "No devices configured." : "Nie sú nastavené žiadne zariadenia.",
- "The following devices are configured for your account:" : "Pre váš účet máte nastavené nasledujúce zariadenia:",
- "Your browser does not support WebAuthn." : "Váš prehliadač nepodporuje WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Ako administrátor môžete nastaviť správanie sprístupňovania. Pre viac informácií pozrite dokumentáciu.",
- "You need to enable the File sharing App." : "Musíte povoliť Aplikáciu pre zdieľanie súborov.",
- "App Store" : "Obchod s aplikáciami",
- "Loading app list" : "Načítavam zoznam aplikácií",
- "Loading categories" : "Načítavam kategórie",
- "Developer documentation ↗" : "Dokumentácia vývojára ↗",
- "Version {version}, {license}-licensed" : "Verzia {version}, {license}-licencované",
- "Version {version}" : "Verzia {version}",
- "All accounts" : "Všetky účty",
- "Admins" : "Administrátori",
- "Account group: {group}" : "Skupina účtu: {group}",
- "Account management" : "Správa účtu",
"Sending…" : "Odosielam...",
"Email sent" : "Email odoslaný",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Z dôvodu zachovania výkonu, keď povolíte šifrovanie na serveri Nextcloud, budú šifrované iba nové a zmenené súbory.",
@@ -790,6 +505,7 @@ OC.L10N.register(
"Date of birth" : "Dátum narodenia",
"Full name" : "Meno a priezvisko",
"Additional email" : "Ďalšie e-maily",
+ "Email" : "Email",
"Fediverse (e.g. Mastodon)" : "Fediverse (napr. Mastodon)",
"Headline" : "Titul",
"Organisation" : "Organizácia",
@@ -799,6 +515,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (predtým Twitter)",
"Website" : "Webstránka",
"Profile visibility" : "Viditeľnosť profilu",
+ "Language" : "Jazyk",
"Locale" : "Regionálne nastavenia",
"First day of week" : "Prvý deň v týždni",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nie je k dispozícii, pretože táto vlastnosť je potrebná pre základné funkcie vrátane zdieľania súborov a pozvánok do kalendára",
@@ -816,6 +533,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Zobraziť len pre prihlásené účty",
"Hide" : "Skryť",
"Manually installed apps cannot be updated" : "Manuálne nainštalované aplikácie nemôžu byť aktualizované",
+ "Update to {version}" : "Aktualizovať na {version}",
"{progress}% Deploying …" : "{progress}% Nasadzovanie ...",
"{progress}% Initializing …" : "{progress}% Inicializuje sa ...",
"Health checking" : "Kontrola stavu",
@@ -825,6 +543,7 @@ OC.L10N.register(
"Allow untested app" : "Povoliť netestovanú aplikáciu",
"The app will be downloaded from the App Store" : "Aplikácia bude stiahnutá z obchodu",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Táto aplikácia nie je označená ako kompatibilná s vašou verziou Nextcloud. Ak budete pokračovať, aplikáciu budete môcť stále nainštalovať. Aplikácia nemusí fungovať podľa očakávania.",
+ "{size} used" : "{size} použité",
"Unknown" : "Neznámy",
"Never" : "Nikdy",
"Could not register device: Network error" : "Zariadenie sa nepodarilo zaregistrovať: Chyba siete",
@@ -843,8 +562,10 @@ OC.L10N.register(
"Could not set group sorting" : "Nepodarilo sa nastaviť triedenie podľa skupín",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Príliš mnoho požiadaviek z vašej siete. Skúste to znovu neskôr alebo kontaktujte svojho administrátora ak je toto chyba.",
"Error" : "Chyba",
+ "Default quota" : "Predvolená kvóta",
"Account documentation" : "Dokumentácia k účtom",
"Administration documentation" : "Príručka administrátora",
+ "Documentation" : "Dokumentácia",
"Forum" : "Fórum",
"Nextcloud help & privacy resources" : "Pomocník Nextcloud a zdroje ochrany osobných údajov",
"General documentation" : "Všeobecná dokumentácia",
@@ -867,6 +588,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP heslo",
"Save" : "Uložiť",
"Test and verify email settings" : "Otestovať a overiť nastavenia e-mailu",
+ "Send email" : "Odoslať email",
"Security & setup warnings" : "Bezpečnosť a nastavenia upozornení",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Kvôli bezpečnosti a výkonu vašej inštalácie je dôležité, aby bolo všetko správne nastavené. Robíme automatickú kontrolu, ktorá vám s touto úlohou pomôže. Pre ďalšie informácie nahliadnite do priloženej dokumentácie.",
"All checks passed." : "Všetky kontroly prešli úspešne.",
@@ -886,51 +608,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Pre zlepšenie zabezpečenia vášho účtu použite okrem hesla aj druhý faktor.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ak na pripojenie k NextCloudu používate aplikácie tretích strán, pred povolením dvojstupňového overovania totožnosti, nezabudnite pre každú z nich vytvoriť a nastaviť heslo aplikácie.",
"Logged in account must be a subadmin" : "Prihlásený účet musí byť sub-správca",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Pre povolenie tejto kontroly musíte zabezpečiť, aby sa váš webový server mohol pripojiť sám k sebe. Preto musí byť schopný rozpoznať a pripojiť sa aspoň k jednému z jeho \"trusted_domains\" alebo \"overwrite.cli.url\".",
- "Missing optional index \"%s\" in table \"%s\"." : "Chýba voliteľný index \"%s\" v tabuľke \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "V databáze chýbajú nejaké indexy. Keďže pridávanie indexov voči veľkým tabuľkám môže trvať dlho, tak neboli pridané automaticky. Spustením príkazu \"occ db:add-missing-indices\" môžete tieto chýbajúce indexy pridať ručne počas behu. Akonáhle budú indexy aktívne, tak požiadavky voči databáze budú podstatne rýchlejšie.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Ak chcete povoliť spustenie tejto kontroly, musíte sa uistiť, že váš webový server sa môže pripojiť sám k sebe. Preto musí byť schopný rozpoznať a pripojiť sa aspoň k jednej zo svojich `trusted_domains` alebo `overwrite.cli.url`. Výsledkom nesprávneho nastavenia môže byť nesúlad DNS na strane servera alebo pravidla brány firewall pre výstup.",
"File locking" : "Zamykanie súborov",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transakčné zamykanie súborov je zakázané, toto by mohlo viesť k problémom pri súbehu úloh. Povolte \"filelocking.enabled\" v config.php, aby ste týmto problémom predišli.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Nepodarilo sa skontrolovať podporu JavaScriptu prostredníctvom žiadnej z vašich domén `trusted_domains` ani `overwrite.cli.url`. Môže to byť výsledkom nesúladu DNS na strane servera alebo pravidla brány firewall pre výstup. Skontrolujte prosím manuálne, či váš webový server poskytuje súbory `.mjs` pomocou typu JavaScript MIME.",
"The PHP memory limit is below the recommended value of %s." : "Limit pre pamäť PHP je nižší ako odporúčaná hodnota %s.",
"for WebAuthn passwordless login" : "pre bezheslového prihlásenia pomocou WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "pre prihlásenie bez hesla WebAuthn a SFTP úložisko",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Momentálne používate PHP %s. PHP 8.0 je teraz zastarané v Nextcloud 27. Nextcloud 28 môže vyžadovať aspoň PHP 8.1. Prosím, aktualizujte sa čo najskôr na jednu z oficiálne podporovaných verzií PHP poskytovaných skupinou PHP.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Používa sa verzia MariaDB \"%s\". Nextcloud 21 a vyšší už nebude podporovať túto verziu a vyžaduje MariaDB 10.2 alebo novšiu.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Používa sa verzia MySQL \"%s\". Nextcloud 21 a vyšší už nebude podporovať túto verziu a vyžaduje MySQL 8.0 alebo MariaDB 10.2 alebo novšia.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Používa sa verzia PostgreSQL \"%s\". Nextcloud 21 a vyšší už nebude podporovať túto verziu a vyžaduje PostgreSQL 9.6 alebo novší.",
- "Speech-To-Text" : "Reč na text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Prevod Hlasu-Na-Text môže byť implementovaný rôznymi aplikáciami. Tu môžete nastaviť, ktorá aplikácia by mala byť použitá.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Žiadna z vašich momentálne nainštalovaných aplikácií neposkytuje funkciu prevodu hlasu na text.",
- "None of your currently installed apps provide Text processing functionality" : "Žiadna z vašich momentálne nainštalovaných aplikácií neposkytuje funkciu spracovania textu.",
- "Set default expiration date for shares" : "Nastaviť predvolený dátum expirácie pre sprístupnenia",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Povoliť dopĺňanie mena používateľa v dialógovom okne zdieľania a umožniť prístup do systémového adresára kontaktov",
- "Your biography" : "Váš životopis",
- "You are using <strong>{usage}</strong>" : "Využívate <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Využívate <strong>{usage}</strong> z <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Nastaviť manažéra pre užívateľa",
- "Username will be autogenerated" : " Meno užívateľa bude automaticky generované.",
- "Username (required)" : "Meno užívateľa (povinné)",
- "New user" : "Nový používateľ",
- "Groups (required)" : "Skupiny (povinné)",
- "Set user groups" : "Nastaviť skupiny užívateľa",
- "Administered groups" : "Administrované skupiny",
- "Set user as admin for …" : "Nastaviť užívateľa ako správcu pre ...",
- "Set user quota" : "Nastaviť kvótu užívateľa",
- "Add new user" : "Pridať nového používateľa",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} užívateľ ...","{userCount} užívatelia ...","{userCount} užívateľov ...","{userCount} užívateľov ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} užívateľ","{userCount} užívatelia","{userCount} užívateľov","{userCount} užívateľov"],
- "Loading users …" : "Načítavanie užívateľov ...",
- "Username" : "Používateľské meno",
- "User backend" : "Backend používateľa",
- "User actions" : "Akcie užívateľa",
- "Add user to group" : "Pridať užívateľa do skupiny",
- "Server error while trying to add WebAuthn device" : "Chyba servera pri pokuse o pridanie zariadenia WebAuthn",
- "Name your device" : "Pomenujte svoje zariadenie",
- "Active accounts" : "Aktívne účty",
- "Follow us on Twitter" : "Sleduj nás na Twitter-i",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Ak chcete povoliť spustenie tejto kontroly, musíte sa uistiť, že váš webový server sa môže pripojiť sám k sebe. Preto musí byť schopný rozpoznať a pripojiť sa aspoň k jednej zo svojich `trusted_domains` alebo `overwrite.cli.url`. Výsledkom nesprávneho nastavenia môže byť nesúlad DNS na strane servera alebo pravidla brány firewall pre výstup.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Hlavička HTTP `%1$s` neobsahuje `%2$s`. Toto je potenciálne riziko pre bezpečnosť alebo ochranu osobných údajov a preto odporúčame toto nastavenie upraviť.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Bola zistená verzia \"%s\" PostgreSQL. Odporúča sa PostgreSQL >=12 a <=16 pre najlepší výkon, stabilitu a funkčnosť s touto verziou Nextcloud.",
- "Failed to load subadmin groups with details" : "Nepodarilo sa načítať skupiny subadministátorov s podrobnosťami"
+ "Set default expiration date for shares" : "Nastaviť predvolený dátum expirácie pre sprístupnenia"
},
"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/settings/l10n/sk.json b/apps/settings/l10n/sk.json
index 27c4d313d0a..03065bfae56 100644
--- a/apps/settings/l10n/sk.json
+++ b/apps/settings/l10n/sk.json
@@ -293,7 +293,6 @@
"HTTP headers" : "HTTP hlavičky",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "Hlavička HTTP `%1$s` nie je nakonfigurovaná na `%2$s`. Niektoré funkcie nemusia pracovať správne a preto odporúčame toto nastavenie upraviť.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Hlavička HTTP `%1$s` nie je nakonfigurovaná na `%2$s`. Toto je potenciálne riziko pre bezpečnosť alebo ochranu osobných údajov a preto odporúčame toto nastavenie upraviť.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Hlavička HTTP `%1$s` neobsahuje `%2$s`. Toto je potenciálne riziko pre bezpečnosť alebo ochranu osobných údajov a preto odporúčame toto nastavenie upraviť.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- Hlavička `%1$s` HTTP nie je nastavená na `%2$s`, `%3$s`, `%4$s`, `%5$s` alebo `%6$s`. Toto môže spôsobiť únik informácií o referentovi. Pozrite si {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- HTTP hlavička `Strict-Transport-Security` nie je nastavená na aspoň `%d` sekúnd (aktuálna hodnota: `%d`). Na zvýšenie bezpečnosti sa odporúča použiť dlhšiu politiku pre HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP hlavička `Strict-Transport-Security` má nesprávny tvar: `%s`. Pre zvýšenie bezpečnosti sa odporúča povoliť HSTS.",
@@ -440,97 +439,6 @@
"Could not load section content from app store." : "Nepodarilo sa načítať obsah sekcie z obchodu s aplikáciami.",
"Loading" : "Načítava sa",
"Fetching the latest news…" : "Načítavajú sa najnovšie správy…",
- "Carousel" : "Karusel",
- "Previous slide" : "Predchádzajúca snímka",
- "Next slide" : "Ďalšia snímka",
- "Choose slide to display" : "Vyberte snímok pre zobrazenie",
- "{index} of {total}" : "{index} z {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Nasadiť proces služby",
- "Type" : "Typ",
- "Display Name" : "Zobrazované meno",
- "GPUs support" : "Podpora GPU",
- "Compute device" : "Výpočetné zariadenie",
- "Advanced deploy options" : "Pokročilé možnosti nasadenia",
- "Edit ExApp deploy options before installation" : "Editovať možnosti nasadenia ExApp pred inštaláciou",
- "Configured ExApp deploy options. Can be set only during installation" : "Nakonfigurované možnosti nasadenia ExApp. Dá sa nastaviť len počas inštalácie",
- "Learn more" : "Dozvedieť sa viac",
- "Environment variables" : "Premenné prostredia",
- "ExApp container environment variables" : "Premenné prostredia kontajnera AppAPI",
- "No environment variables defined" : "Neboli definované žiadne premenné prostredia",
- "Mounts" : "Prípojné body",
- "Define host folder mounts to bind to the ExApp container" : "Definujte pripojenia hostiteľského adresára, ktoré sa majú naviazať na kontajner ExApp",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Musí existovať na hostiteľovi démona Deploy pred inštaláciou ExApp",
- "Host path" : "Cesta k hostiteľovi",
- "Container path" : "Cesta ku kontajneru",
- "Read-only" : "Iba na čítanie",
- "Remove mount" : "Odstrániť prípojný bod",
- "New mount" : "Nový prípojný bod",
- "Enter path to host folder" : "Vložte cestu k hostiteľskému adresáru ",
- "Enter path to container folder" : "Vložte cestu k adresáru kontajnera",
- "Toggle read-only mode" : "Prepnúť režim iba na čítanie",
- "Confirm adding new mount" : "Potvrdiť pridanie nového prípojného bodu",
- "Confirm" : "Potvrdiť",
- "Cancel adding mount" : "Zrušiť pridanie prípojného bodu",
- "Cancel" : "Zrušiť",
- "Add mount" : "Pridať prípojný bod",
- "ExApp container mounts" : "Prípojné body kontajnera ExApp",
- "No mounts defined" : "Nie sú definované žiadne prípojné body",
- "Description" : "Popis",
- "View in store" : "Zobraz v obchode",
- "Visit website" : "Navštíviť webstránku",
- "Usage documentation" : "Užívateľská dokumentácia",
- "Admin documentation" : "Príručka administrátora",
- "Developer documentation" : "Dokumentácia vývojára",
- "Details" : "Detaily",
- "All" : "Všetky",
- "Limit app usage to groups" : "Obmedziť používanie aplikácií pre skupiny",
- "No results" : "Žiadne výsledky",
- "Update to {version}" : "Aktualizovať na {version}",
- "Deploy options" : "Možnosti nasadenia",
- "Default Deploy daemon is not accessible" : "Východzí proces služby nasadzovania nie je dostupný",
- "Delete data on remove" : "Pri odobraní zmazať dáta",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná minimálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná maximálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Túto aplikáciu nemožno nainštalovať, pretože nie sú splnené nasledovné závislosti:",
- "Latest updated" : "Naposledy aktualizované",
- "Author" : "Autor",
- "Categories" : "Kategórie",
- "Resources" : "Zdroje",
- "Documentation" : "Dokumentácia",
- "Interact" : "Interagovať",
- "Report a bug" : "Nahlásiť chybu",
- "Request feature" : "Požiadavka odporúčania",
- "Ask questions or discuss" : "Pýtajte sa alebo diskutujte",
- "Rate the app" : "Ohodnotiť aplikáciu",
- "Rate" : "Hodnotenie",
- "Changelog" : "Zoznam zmien",
- "Google Chrome for Android" : "Google Chrome pre Android",
- "{productName} iOS app" : "{productName} iOS aplikácia",
- "{productName} Android app" : "{productName} Android aplikácia",
- "{productName} Talk for iOS" : "{productName} Talk /Rozhovor/ pre iOS",
- "{productName} Talk for Android" : "{productName} Talk /Rozhovor/ pre Android",
- "Sync client" : "Klient synchronizácie",
- "This session" : "Táto relácia",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Názov zariadenia",
- "Cancel renaming" : "Zrušiť premenovanie",
- "Save new name" : "Uložiť nové meno",
- "Marked for remote wipe" : "Označené na vymazanie na diaľku",
- "Device settings" : "Nastavenia zariadenia",
- "Allow filesystem access" : "Povoliť prístup ku súborovému systému",
- "Rename" : "Premenovať",
- "Revoke" : "Odvolať",
- "Wipe device" : "Vymazať obsah zariadenia",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Ostránenie tohto tokenu môže zabrániť vymazaniu vášho zariadenia, ak sa ešte nezačalo mazanie.",
- "Device" : "Zariadenie",
- "Last activity" : "Posledná aktivita",
- "Devices & sessions" : "Zariadenia a relácie",
- "Web, desktop and mobile clients currently logged in to your account." : "Weboví, desktopoví alebo mobilní klienti práve prihlásení k vášmu účtu.",
- "Error while creating device token" : "Chyba pri vytváraní tokenov zariadenia",
- "App name" : "Názov aplikácie",
- "Create new app password" : "Vytvoriť nové heslo aplikácie",
"App password copied!" : "Heslo aplikácie skopírované!",
"Copy app password" : "Kopírovať heslo aplikácie",
"Login name copied!" : "Prihlasovacie meno bolo skopírované!",
@@ -558,6 +466,7 @@
"Unable to update profile default setting" : "Nie je možné aktualizovať predvolené nastavenie profilu",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Predvolene povoliť alebo zakázať profil pre nové účty.",
+ "Password confirmation is required" : "Vyžaduje sa overenie heslom",
"Failed to save setting" : "Nepodarilo sa uložiť nastavenie",
"{app}'s declarative setting field: {name}" : "Pole deklaratívneho nastavenia aplikácie {app}: {name}",
"Unable to update server side encryption config" : "Nedá sa aktualizovať konfigurácia šifrovania na strane servera",
@@ -580,205 +489,11 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Je dobré vytvárať pravidelné zálohy vašich dát, uistite sa, že v prípade šifrovania spolu s vašimi dátami zálohujete aj šifrovacie kľúče.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Informácie o tom, ako ručne zašifrovať aj existujúce súbory, nájdete v dokumentácii pre administrátora.",
"This is the final warning: Do you really want to enable encryption?" : "Toto je posledné varovanie: Vážne si prajete povoliť šifrovanie?",
- "Failed to remove group \"{group}\"" : "Nepodarilo sa odstrániť skupinu \"{group}\"",
"Please confirm the group removal" : "Prosím potvrďte vymazanie skupiny.",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Chystáte sa odstrániť skupinu \"{group}\". Používatelia NEBUDÚ vymazaní.",
+ "Cancel" : "Zrušiť",
+ "Confirm" : "Potvrdiť",
"Submit" : "Odoslať",
"Rename group" : "Premenovať skupinu",
- "Remove group" : "Odstrániť skupinu",
- "Current password" : "Aktuálne heslo",
- "New password" : "Nové heslo",
- "Change password" : "Zmeniť heslo",
- "Choose your profile picture" : "Vyberte si váš profilový obrázok",
- "Please select a valid png or jpg file" : "Prosím vyberte platný png alebo jpg súbor",
- "Error setting profile picture" : "Chyba pri nastavovaní profilového obrázku",
- "Error cropping profile picture" : "Chyba pri orezávaní profilového obrázku",
- "Error saving profile picture" : "Chyba pri ukladaní profilového obrázku",
- "Error removing profile picture" : "Chyba pri odstraňovaní profilového obrázku",
- "Your profile picture" : "Váš profilový obrázok",
- "Upload profile picture" : "Nahrať profilový obrázok",
- "Choose profile picture from Files" : "Vyberte profilový obrázok zo Súborov",
- "Remove profile picture" : "Odstrániť profilový obrázok",
- "The file must be a PNG or JPG" : "Súbor musí byť vo formáte PNG alebo JPG",
- "Picture provided by original account" : "Obrázok poskytnutý originálnym účtom",
- "Set as profile picture" : "Nastaviť ako profilový obrázok",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Upozorňujeme, že aktualizácia vášho profilového obrázka môže trvať až 24 hodín.",
- "Your biography. Markdown is supported." : "Váš životopis. Markdown je podporovaný.",
- "Unable to update date of birth" : "Nepodarilo sa aktualizovať dátum narodenia",
- "Enter your date of birth" : "Zadajte váš dátum narodenia",
- "You are using {s}{usage}{/s}" : "Využívate {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Využívate {s}{usage}{/s} z {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Ste členom nasledovných skupín:",
- "Your full name" : "Vaše celé meno",
- "Email options" : "E-mailové nastavenia",
- "Options for additional email address {index}" : "Možnosti pre ďalšiu emailovú adresu {index}",
- "Remove primary email" : "Odobrať primárny email",
- "Delete email" : "Zmazať email",
- "This address is not confirmed" : "Táto adresa nie je potvrdená",
- "Unset as primary email" : "Zrušiť nastavenie ako primárny e-mail",
- "Set as primary email" : "Nastaviť ako primárny e-mail",
- "Additional email address {index}" : "Ďalšia e-mailová adresa {index}",
- "Unable to delete primary email address" : "Nie je možné zmazať primárnu e-mail adresu",
- "Unable to update primary email address" : "Nie je možné aktualizovať primárnu e-mail adresu",
- "Unable to add additional email address" : "Nie je možné pridať ďalšiu e-mail adresu",
- "Unable to update additional email address" : "Nie je možné aktualizovať ďalšiu e-mail adresu",
- "Unable to delete additional email address" : "Nie je možné odstrániť ďalšiu e-mail adresu",
- "Primary email for password reset and notifications" : "Primárny e-mail na obnovenie hesla a zasielanie upozornení",
- "No email address set" : "Emailová adresa nie je nastavená",
- "Your handle" : "Váš identifikátor (handle)",
- "Derived from your locale ({weekDayName})" : "Odvodené z vášho miestneho nastavenia ({weekDayName})",
- "Unable to update first day of week" : "Nepodarilo sa aktualizovať deň používaný ako prvý deň v týždni",
- "Day to use as the first day of week" : "Deň používaný ako prvý deň v týždni",
- "Your headline" : "Váš titul",
- "Unable to update language" : "Nie je možné aktualizovať jazyk",
- "Languages" : "Jazyky",
- "Help translate" : "Pomôcť s prekladom",
- "No language set" : "Nie je nastavený žiadny jazyk",
- "Unable to update locale" : "Nie je možné aktualizovať regionálne nastavenia",
- "Locales" : "Regionálne nastavenia",
- "Week starts on {firstDayOfWeek}" : "Prvý deň v týždni je {firstDayOfWeek}",
- "No locale set" : "Nie sú konfigurované žiadne regionálne nastavenia",
- "Your city" : "Vaše mesto",
- "Your organisation" : "Vaša organizácia",
- "Your phone number" : "Vaše telefónne číslo",
- "Edit your Profile visibility" : "Upraviť viditeľnosť vášho profilu",
- "Unable to update profile enabled state" : "Nie je možné aktualizovať stav aktivácie profilu",
- "Enable profile" : "Povoliť profil",
- "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." : "Vo vašom profile sa rešpektuje prísnejšie nastavenie viditeľnosti alebo rozsahu. Ak je napríklad viditeľnosť nastavená na „Zobraziť všetkým“ a rozsah je nastavený na „Súkromné“, „Súkromné“ bude rešpektované.",
- "Unable to update visibility of {displayId}" : "Nie je možné aktualizovať viditeľnosť {displayId}",
- "she/her" : "ona/jej",
- "he/him" : "on/jeho",
- "they/them" : "oni/ich",
- "Your role" : "Vaša rola",
- "Your X (formerly Twitter) handle" : "Ovládanie Vašeho X (predtým Twitter)",
- "Your website" : "Vaša webstránka",
- "Invalid value" : "Chybná hodnota",
- "Unable to update {property}" : "Nie je možné aktualizovať {property}",
- "No {property} set" : "Nie je nastavená žiadna {property}",
- "Change scope level of {property}, current scope is {scope}" : "Zmeniť úroveň rozsahu {property}, aktuálny rozsah je {scope}",
- "Unable to update federation scope of the primary {property}" : "Nie je možné aktualizovať rozsah združenia primárneho {property}",
- "Unable to update federation scope of additional {property}" : "Nie je možné aktualizovať rozsah združenia ďalšieho {property}",
- "Add additional email" : "Pridať ďalší e-mail",
- "Add" : "Pridať",
- "Create" : "Vytvárať",
- "Change" : "Zmeniť",
- "Delete" : "Zmazať",
- "Reshare" : "Zdieľať ďalej",
- "Default language" : "Predvolený jazyk",
- "Common languages" : "Spoločné jazyky",
- "Other languages" : "Iné jazyky",
- "Password change is disabled because the master key is disabled" : "Zmena hesla je zablokovaná pretože hlavný kľúč je vypnutý",
- "No accounts" : "Žiadne účty",
- "Loading accounts …" : "Nahrávanie účtov ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Zoznam účtov. Tento zoznam nie je úplne vykreslený z dôvodov výkonu. Účty budú vykreslené, keď budete prechádzať zoznamom.",
- "Manager" : "Manažér",
- "Set line manager" : "Nastaviť líniového manažéra",
- "Account name will be autogenerated" : "Názov účtu bude automaticky generovaný",
- "Account name (required)" : "Názov účtu (povinné)",
- "Failed to search groups" : "Neporarilo sa prehľadať skupiny",
- "New account" : "Nový účet",
- "Display name" : "Zobrazované meno",
- "Either password or email is required" : "Buď je potrebné zadať heslo alebo e-mail",
- "Password (required)" : "Heslo (povinné)",
- "Email (required)" : "E-mail (povinné)",
- "Email" : "Email",
- "Member of the following groups (required)" : "Člen nasledujúcich skupín (povinné)",
- "Member of the following groups" : "Člen nasledujúcich skupín",
- "Set account groups" : "Nastaviť skupiny pre účet",
- "Admin of the following groups" : "Administrátor nasledujúcich skupín",
- "Set account as admin for …" : "Nastaviť účet ako adminstrátora pre ...",
- "Quota" : "Kvóta",
- "Set account quota" : "Nastaviť kvótu pre účet",
- "Language" : "Jazyk",
- "Set default language" : "Nastaviť predvolený jazyk",
- "Add new account" : " Pridať nový účet",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} účet ...","{userCount} účty ...","{userCount} účtov ...","{userCount} účtov ..."],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} účet","{userCount} účty","{userCount} účtov","{userCount} účtov"],
- "Total rows summary" : "Súčet všetkých riadkov",
- "Scroll to load more rows" : "Posúvajte pre načítanie ďalších riadkov",
- "Password or insufficient permissions message" : "Heslo alebo správa o nedostatočných oprávneniach",
- "Avatar" : "Avatar",
- "Account name" : "Názov účtu",
- "Group admin for" : "Administrátor skupiny pre",
- "Account backend" : "Backend účtu",
- "Storage location" : "Umiestnenie úložiska",
- "First login" : "Prvé prihlásenie",
- "Last login" : "Posledné prihlásenie",
- "Account actions" : "Možnosti účtu",
- "{size} used" : "{size} použité",
- "Delete account" : "Zmazať účet",
- "Disconnect all devices and delete local data" : "Odpojiť všetky zariadenia a vymazať lokálne dáta",
- "Disable account" : "Zakázať účet",
- "Enable account" : "Povoliť účet",
- "Resend welcome email" : "Znova odoslať privítací email",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "V prípade straty zariadenia alebo napr. odchodu z firmy to môže na daľku vymazať údaje Nextcloud zo všetkých zariadení priradených k {userid}. Funguje iba vtedy, ak sú zariadenia pripojené k internetu.",
- "Remote wipe of devices" : "Vymazať obsah zariadení na diaľku",
- "Wipe {userid}'s devices" : "Vymazať obsah zariadení {userid}",
- "Wiped {userid}'s devices" : "Vymazané zariadenia užívateľa {userid}",
- "Failed to load groups with details" : "Nepodarilo sa načítať skupiny s podrobnosťami",
- "Failed to update line manager" : "Nepodarilo sa aktualizovať líniového manažéra",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Úplne odstráiť účet používateľa {userid} vrátane všetkých osobných súborov, údajov aplikácií atď.",
- "Account deletion" : "Zmazanie účtu",
- "Delete {userid}'s account" : "Vymazať účet {userid}",
- "Display name was successfully changed" : "Zobrazované meno ste úspešne zmenili",
- "Password can't be empty" : "Heslo nemôže byť prázdne",
- "Password was successfully changed" : "Heslo bolo úspešne zmenené",
- "Email can't be empty" : "E-mail nemôže byť prázdny",
- "Email was successfully changed" : "Email bol úspešne zmenený",
- "Welcome mail sent!" : "Privítací email odoslaný",
- "Loading account …" : "Nahrávam účet ...",
- "Change display name" : "Zmeniť zobrazované meno",
- "Set new password" : "Vytvoriť nové heslo",
- "You do not have permissions to see the details of this account" : "Nemáte oprávnenie vidieť detaily tohto účtu",
- "Set new email address" : "Nastavte novú e-mailovú adresu",
- "Add account to group" : "Pridať účet do skupiny",
- "Set account as admin for" : "Nastavte účet ako správcu pre",
- "Select account quota" : "Vyberte kvótu účtu",
- "Set the language" : "Nastavte jazyk",
- "Toggle account actions menu" : "Prepnúť ponuku akcií účtu",
- "Done" : "Hotovo",
- "Edit" : "Upraviť",
- "Account management settings" : "Nastavenia správy účtu",
- "Visibility" : "Viditeľnosť",
- "Show language" : "Zobraziť jazyk",
- "Show account backend" : "Zobraziť backend účtu",
- "Show storage path" : "Zobraziť popis umiestnenia úložiska",
- "Show first login" : "Zobraziť prvé prihlásenie",
- "Show last login" : "Zobraziť posledné prihlásenie",
- "Sorting" : "Triedenie",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Systémová konfigurácia vynucuje triedenie skupín podľa názvu. Toto tiež zakáže zobrazovanie počtu členov.",
- "Group list sorting" : "Triedenie zoznamu skupín",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Zoradenie sa z dôvodu výkonu vzťahuje len na aktuálne načítané skupiny. Skupiny sa načítajú pri navigácii alebo vyhľadávaní v zozname.",
- "By member count" : "Podľa počtu členov",
- "By name" : "Podľa názvu",
- "Send email" : "Odoslať email",
- "Send welcome email to new accounts" : "Poslať uvítací e-mail novým účtom",
- "Defaults" : "Predvolené hodnoty",
- "Default quota" : "Predvolená kvóta",
- "Select default quota" : "Vybrať predvolenú kvótu",
- "Server error while trying to complete WebAuthn device registration" : "Chyba servera pri pokuse o dokončenie registrácie zariadenia WebAuthn",
- "Passwordless authentication requires a secure connection." : "Overenie bez hesla vyžaduje zabezpečné pripojenie.",
- "Add WebAuthn device" : "Pridať zariadenie WebAuthn",
- "Please authorize your WebAuthn device." : "Autorizujte svoje zariadenie WebAuthn.",
- "Adding your device …" : "Pridáva sa zariadenie...",
- "Unnamed device" : "Nepomenované zariadenie",
- "Passwordless Authentication" : "Overovanie bez hesla",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Nastavte si účet pre využívanie overovania bez hesla podľa štandardu FIDO2.",
- "No devices configured." : "Nie sú nastavené žiadne zariadenia.",
- "The following devices are configured for your account:" : "Pre váš účet máte nastavené nasledujúce zariadenia:",
- "Your browser does not support WebAuthn." : "Váš prehliadač nepodporuje WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Ako administrátor môžete nastaviť správanie sprístupňovania. Pre viac informácií pozrite dokumentáciu.",
- "You need to enable the File sharing App." : "Musíte povoliť Aplikáciu pre zdieľanie súborov.",
- "App Store" : "Obchod s aplikáciami",
- "Loading app list" : "Načítavam zoznam aplikácií",
- "Loading categories" : "Načítavam kategórie",
- "Developer documentation ↗" : "Dokumentácia vývojára ↗",
- "Version {version}, {license}-licensed" : "Verzia {version}, {license}-licencované",
- "Version {version}" : "Verzia {version}",
- "All accounts" : "Všetky účty",
- "Admins" : "Administrátori",
- "Account group: {group}" : "Skupina účtu: {group}",
- "Account management" : "Správa účtu",
"Sending…" : "Odosielam...",
"Email sent" : "Email odoslaný",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Z dôvodu zachovania výkonu, keď povolíte šifrovanie na serveri Nextcloud, budú šifrované iba nové a zmenené súbory.",
@@ -788,6 +503,7 @@
"Date of birth" : "Dátum narodenia",
"Full name" : "Meno a priezvisko",
"Additional email" : "Ďalšie e-maily",
+ "Email" : "Email",
"Fediverse (e.g. Mastodon)" : "Fediverse (napr. Mastodon)",
"Headline" : "Titul",
"Organisation" : "Organizácia",
@@ -797,6 +513,7 @@
"X (formerly Twitter)" : "X (predtým Twitter)",
"Website" : "Webstránka",
"Profile visibility" : "Viditeľnosť profilu",
+ "Language" : "Jazyk",
"Locale" : "Regionálne nastavenia",
"First day of week" : "Prvý deň v týždni",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Nie je k dispozícii, pretože táto vlastnosť je potrebná pre základné funkcie vrátane zdieľania súborov a pozvánok do kalendára",
@@ -814,6 +531,7 @@
"Show to logged in accounts only" : "Zobraziť len pre prihlásené účty",
"Hide" : "Skryť",
"Manually installed apps cannot be updated" : "Manuálne nainštalované aplikácie nemôžu byť aktualizované",
+ "Update to {version}" : "Aktualizovať na {version}",
"{progress}% Deploying …" : "{progress}% Nasadzovanie ...",
"{progress}% Initializing …" : "{progress}% Inicializuje sa ...",
"Health checking" : "Kontrola stavu",
@@ -823,6 +541,7 @@
"Allow untested app" : "Povoliť netestovanú aplikáciu",
"The app will be downloaded from the App Store" : "Aplikácia bude stiahnutá z obchodu",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Táto aplikácia nie je označená ako kompatibilná s vašou verziou Nextcloud. Ak budete pokračovať, aplikáciu budete môcť stále nainštalovať. Aplikácia nemusí fungovať podľa očakávania.",
+ "{size} used" : "{size} použité",
"Unknown" : "Neznámy",
"Never" : "Nikdy",
"Could not register device: Network error" : "Zariadenie sa nepodarilo zaregistrovať: Chyba siete",
@@ -841,8 +560,10 @@
"Could not set group sorting" : "Nepodarilo sa nastaviť triedenie podľa skupín",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Príliš mnoho požiadaviek z vašej siete. Skúste to znovu neskôr alebo kontaktujte svojho administrátora ak je toto chyba.",
"Error" : "Chyba",
+ "Default quota" : "Predvolená kvóta",
"Account documentation" : "Dokumentácia k účtom",
"Administration documentation" : "Príručka administrátora",
+ "Documentation" : "Dokumentácia",
"Forum" : "Fórum",
"Nextcloud help & privacy resources" : "Pomocník Nextcloud a zdroje ochrany osobných údajov",
"General documentation" : "Všeobecná dokumentácia",
@@ -865,6 +586,7 @@
"SMTP Password" : "SMTP heslo",
"Save" : "Uložiť",
"Test and verify email settings" : "Otestovať a overiť nastavenia e-mailu",
+ "Send email" : "Odoslať email",
"Security & setup warnings" : "Bezpečnosť a nastavenia upozornení",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Kvôli bezpečnosti a výkonu vašej inštalácie je dôležité, aby bolo všetko správne nastavené. Robíme automatickú kontrolu, ktorá vám s touto úlohou pomôže. Pre ďalšie informácie nahliadnite do priloženej dokumentácie.",
"All checks passed." : "Všetky kontroly prešli úspešne.",
@@ -884,51 +606,14 @@
"Use a second factor besides your password to increase security for your account." : "Pre zlepšenie zabezpečenia vášho účtu použite okrem hesla aj druhý faktor.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ak na pripojenie k NextCloudu používate aplikácie tretích strán, pred povolením dvojstupňového overovania totožnosti, nezabudnite pre každú z nich vytvoriť a nastaviť heslo aplikácie.",
"Logged in account must be a subadmin" : "Prihlásený účet musí byť sub-správca",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Pre povolenie tejto kontroly musíte zabezpečiť, aby sa váš webový server mohol pripojiť sám k sebe. Preto musí byť schopný rozpoznať a pripojiť sa aspoň k jednému z jeho \"trusted_domains\" alebo \"overwrite.cli.url\".",
- "Missing optional index \"%s\" in table \"%s\"." : "Chýba voliteľný index \"%s\" v tabuľke \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "V databáze chýbajú nejaké indexy. Keďže pridávanie indexov voči veľkým tabuľkám môže trvať dlho, tak neboli pridané automaticky. Spustením príkazu \"occ db:add-missing-indices\" môžete tieto chýbajúce indexy pridať ručne počas behu. Akonáhle budú indexy aktívne, tak požiadavky voči databáze budú podstatne rýchlejšie.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Ak chcete povoliť spustenie tejto kontroly, musíte sa uistiť, že váš webový server sa môže pripojiť sám k sebe. Preto musí byť schopný rozpoznať a pripojiť sa aspoň k jednej zo svojich `trusted_domains` alebo `overwrite.cli.url`. Výsledkom nesprávneho nastavenia môže byť nesúlad DNS na strane servera alebo pravidla brány firewall pre výstup.",
"File locking" : "Zamykanie súborov",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transakčné zamykanie súborov je zakázané, toto by mohlo viesť k problémom pri súbehu úloh. Povolte \"filelocking.enabled\" v config.php, aby ste týmto problémom predišli.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Nepodarilo sa skontrolovať podporu JavaScriptu prostredníctvom žiadnej z vašich domén `trusted_domains` ani `overwrite.cli.url`. Môže to byť výsledkom nesúladu DNS na strane servera alebo pravidla brány firewall pre výstup. Skontrolujte prosím manuálne, či váš webový server poskytuje súbory `.mjs` pomocou typu JavaScript MIME.",
"The PHP memory limit is below the recommended value of %s." : "Limit pre pamäť PHP je nižší ako odporúčaná hodnota %s.",
"for WebAuthn passwordless login" : "pre bezheslového prihlásenia pomocou WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "pre prihlásenie bez hesla WebAuthn a SFTP úložisko",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Momentálne používate PHP %s. PHP 8.0 je teraz zastarané v Nextcloud 27. Nextcloud 28 môže vyžadovať aspoň PHP 8.1. Prosím, aktualizujte sa čo najskôr na jednu z oficiálne podporovaných verzií PHP poskytovaných skupinou PHP.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Používa sa verzia MariaDB \"%s\". Nextcloud 21 a vyšší už nebude podporovať túto verziu a vyžaduje MariaDB 10.2 alebo novšiu.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Používa sa verzia MySQL \"%s\". Nextcloud 21 a vyšší už nebude podporovať túto verziu a vyžaduje MySQL 8.0 alebo MariaDB 10.2 alebo novšia.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Používa sa verzia PostgreSQL \"%s\". Nextcloud 21 a vyšší už nebude podporovať túto verziu a vyžaduje PostgreSQL 9.6 alebo novší.",
- "Speech-To-Text" : "Reč na text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Prevod Hlasu-Na-Text môže byť implementovaný rôznymi aplikáciami. Tu môžete nastaviť, ktorá aplikácia by mala byť použitá.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Žiadna z vašich momentálne nainštalovaných aplikácií neposkytuje funkciu prevodu hlasu na text.",
- "None of your currently installed apps provide Text processing functionality" : "Žiadna z vašich momentálne nainštalovaných aplikácií neposkytuje funkciu spracovania textu.",
- "Set default expiration date for shares" : "Nastaviť predvolený dátum expirácie pre sprístupnenia",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Povoliť dopĺňanie mena používateľa v dialógovom okne zdieľania a umožniť prístup do systémového adresára kontaktov",
- "Your biography" : "Váš životopis",
- "You are using <strong>{usage}</strong>" : "Využívate <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Využívate <strong>{usage}</strong> z <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Nastaviť manažéra pre užívateľa",
- "Username will be autogenerated" : " Meno užívateľa bude automaticky generované.",
- "Username (required)" : "Meno užívateľa (povinné)",
- "New user" : "Nový používateľ",
- "Groups (required)" : "Skupiny (povinné)",
- "Set user groups" : "Nastaviť skupiny užívateľa",
- "Administered groups" : "Administrované skupiny",
- "Set user as admin for …" : "Nastaviť užívateľa ako správcu pre ...",
- "Set user quota" : "Nastaviť kvótu užívateľa",
- "Add new user" : "Pridať nového používateľa",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} užívateľ ...","{userCount} užívatelia ...","{userCount} užívateľov ...","{userCount} užívateľov ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} užívateľ","{userCount} užívatelia","{userCount} užívateľov","{userCount} užívateľov"],
- "Loading users …" : "Načítavanie užívateľov ...",
- "Username" : "Používateľské meno",
- "User backend" : "Backend používateľa",
- "User actions" : "Akcie užívateľa",
- "Add user to group" : "Pridať užívateľa do skupiny",
- "Server error while trying to add WebAuthn device" : "Chyba servera pri pokuse o pridanie zariadenia WebAuthn",
- "Name your device" : "Pomenujte svoje zariadenie",
- "Active accounts" : "Aktívne účty",
- "Follow us on Twitter" : "Sleduj nás na Twitter-i",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Ak chcete povoliť spustenie tejto kontroly, musíte sa uistiť, že váš webový server sa môže pripojiť sám k sebe. Preto musí byť schopný rozpoznať a pripojiť sa aspoň k jednej zo svojich `trusted_domains` alebo `overwrite.cli.url`. Výsledkom nesprávneho nastavenia môže byť nesúlad DNS na strane servera alebo pravidla brány firewall pre výstup.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Hlavička HTTP `%1$s` neobsahuje `%2$s`. Toto je potenciálne riziko pre bezpečnosť alebo ochranu osobných údajov a preto odporúčame toto nastavenie upraviť.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Bola zistená verzia \"%s\" PostgreSQL. Odporúča sa PostgreSQL >=12 a <=16 pre najlepší výkon, stabilitu a funkčnosť s touto verziou Nextcloud.",
- "Failed to load subadmin groups with details" : "Nepodarilo sa načítať skupiny subadministátorov s podrobnosťami"
+ "Set default expiration date for shares" : "Nastaviť predvolený dátum expirácie pre sprístupnenia"
},"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/settings/l10n/sl.js b/apps/settings/l10n/sl.js
index 1c6b0a2d9b8..b0f1fb50f30 100644
--- a/apps/settings/l10n/sl.js
+++ b/apps/settings/l10n/sl.js
@@ -226,7 +226,6 @@ OC.L10N.register(
"HTTP headers" : "Glave HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "– Glava HTTP »%1$s« ni nastavljena na pričakovano vrednost »%2$s«. Nekatere možnosti morda ne bodo delovale pravilno, zato je priporočljivo prilagoditi nastavitve.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– Glava HTTP »%1$s« ni nastavljena na pričakovano vrednost »%2$s«. To predstavlja potencialno varnostno ali zasebnostno tveganje, zato je priporočljivo prilagoditi nastavitve.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– Glava HTTP »%1$s« ne vključuje vrednosti »%2$s«. To predstavlja potencialno varnostno ali zasebnostno tveganje, zato je priporočljivo prilagoditi nastavitve.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "– Glava HTTP »%1$s« ni nastavljena na »%2$s«, »%3$s«, »%4$s«, »%5$s« ali »%6$s«. To la hko povzroči spuščanje sklicnih podatkov. Več o tem je zapisano na {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "– Glava HTTP za varen prenos podatkov »Strict-Transport-Security« ni nastavljena na vsaj »%d« sekund (trenutna vrednost je »%d«). Za večjo varnost je priporočljivo omogočiti pravila HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "– Glava HTTP za varen prenos podatkov »Strict-Transport-Security« je neustrezno oblikovana: »%s«. Za večjo varnost je priporočljivo omogočiti pravila HSTS.",
@@ -317,67 +316,6 @@ OC.L10N.register(
"Nothing to show" : "Ni vsebine za prikaz",
"Loading" : "Poteka nalaganje ...",
"Fetching the latest news…" : "Poteka pridobivanje zadnjih novic ...",
- "Previous slide" : "Predhodni prikaz",
- "Next slide" : "Naslednji prikaz",
- "Choose slide to display" : "Izbor vsebine za prikaz",
- "{index} of {total}" : "{index} od {total}",
- "Daemon" : "Ozadnji program",
- "Type" : "Vrsta",
- "Learn more" : "Prikaži več",
- "Confirm" : "Potrdi",
- "Cancel" : "Prekliči",
- "Description" : "Opis",
- "View in store" : "Pokaži v trgovini",
- "Visit website" : "Odpri spletno stran",
- "Usage documentation" : "Dokumentacija uporabe",
- "Admin documentation" : "Skrbniška dokumentacija",
- "Developer documentation" : "Dokumentacija za razvijalce",
- "Details" : "Podrobnosti",
- "All" : "Vsi",
- "Limit app usage to groups" : "Omeji uporabo programa na skupine",
- "No results" : "Ni zadetkov",
- "Update to {version}" : "Posodobi na različico {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Program nima določene omejitve različice okolja Nextcloud. V prihodnosti se bo manjkajoči podatek pokazal kot napaka.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Program nima določene omejitve različice okolja Nextcoud. V prihodnosti se bo manjkajoči podatek pokazal kot napaka.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerazrešenih odvisnosti:",
- "Latest updated" : "Nazadnje posodobljeno",
- "Author" : "Avtor",
- "Categories" : "Kategorije",
- "Resources" : "Viri",
- "Documentation" : "Dokumentacija",
- "Interact" : "Interakcija",
- "Report a bug" : "Pošlji poročilo o hrošču",
- "Request feature" : "Predlagaj zmožnost",
- "Ask questions or discuss" : "Vključi se v pogovor",
- "Rate the app" : "Oceni program",
- "Rate" : "Oceni",
- "Changelog" : "Dnevnik sprememb",
- "Google Chrome for Android" : "Google Chrome za Android",
- "{productName} iOS app" : "{productName} za iOS",
- "{productName} Android app" : "{productName} za Android",
- "{productName} Talk for iOS" : "{productName} Talk za iOS",
- "{productName} Talk for Android" : "{productName} Talk za Android",
- "Sync client" : "Odjemalec za usklajevanje",
- "This session" : "Ta seja",
- "{client} - {version} ({system})" : "{client} – {version} ({system})",
- "{client} - {version}" : "{client} – {version}",
- "Device name" : "Ime naprave",
- "Cancel renaming" : "Prekliči preimenovanje",
- "Save new name" : "Shrani novo ime",
- "Marked for remote wipe" : "Označeno za oddaljeno varnostno brisanje",
- "Device settings" : "Nastavitve naprave",
- "Allow filesystem access" : "Dovoli dostop do datotečnega sistema",
- "Rename" : "Preimenuj",
- "Revoke" : "Prekliči",
- "Wipe device" : "Varnostno izbriši napravo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Obnovitev tega žetona lahko prepreči varnostno brisanje naprave, če se to še ni začelo.",
- "Device" : "Naprava",
- "Last activity" : "Zadnja dejavnost",
- "Devices & sessions" : "Naprave in seje",
- "Web, desktop and mobile clients currently logged in to your account." : "Spletne, namizne in mobilne naprave, ki so trenutno povezane z računom.",
- "Error while creating device token" : " Napaka med ustvarjanjem žetona naprave",
- "App name" : "Ime programa",
- "Create new app password" : "Ustvari novo geslo programa",
"App password copied!" : "Geslo programa je kopirano!",
"Copy app password" : "Kopiraj geslo programa",
"Login name copied!" : "Prijavno ime je kopirano!",
@@ -420,183 +358,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : " Upoštevajte, da šifriranje poveča velikost datoteke.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Priporočljivo je redno ustvarjati varnostne kopije podatkov, v primeru šifriranja pa varnostno kopirati tudi šifrirne ključe.",
"This is the final warning: Do you really want to enable encryption?" : "To je zadnje opozorilo. Ali res želite omogočiti šifriranje?",
- "Failed to remove group \"{group}\"" : "Odstranjevanje skupine »{group}« je spodlotelo",
"Please confirm the group removal" : "Potrditi je treba skupinsko odstranjevanje",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Odstranili boste skupino »{group}«. Računi ne bodo izbrisani.",
+ "Cancel" : "Prekliči",
+ "Confirm" : "Potrdi",
"Submit" : "Pošlji",
"Rename group" : "Preimenuj skupino",
- "Remove group" : "Odstrani skupino",
- "Current password" : "Trenutno geslo",
- "New password" : "Novo geslo",
- "Change password" : "Spremeni geslo",
- "Choose your profile picture" : "Izbor slike profila",
- "Please select a valid png or jpg file" : "Izbrati je treba veljavno datoteko png ali jpg.",
- "Error setting profile picture" : "Napaka nastavljanja slike profila",
- "Error cropping profile picture" : "Napaka obrezovanja slike profila",
- "Error saving profile picture" : "Napaka shranjevanja slike profila",
- "Error removing profile picture" : "Napaka odstranjevanja slike profila",
- "Your profile picture" : "Slika profila",
- "Upload profile picture" : "Pošlji sliko profila",
- "Choose profile picture from Files" : "Izbor slike profila med datotekami",
- "Remove profile picture" : "Odstrani sliko profila",
- "The file must be a PNG or JPG" : "Datoteka mora biti v zapisu PNG ali JPG",
- "Picture provided by original account" : "Slika iz izvornega računa",
- "Set as profile picture" : "Nastavi sliko profila",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Upoštevajte, da lahko traja tudi 24 ur preden se slika profila posodobi na vseh mestih.",
- "Unable to update date of birth" : "Datuma rojstva ni mogoče posodobiti",
- "Enter your date of birth" : "Vpišite datum rojstva",
- "You are a member of the following groups:" : "Omogočeno je članstvo v skupinah:",
- "Your full name" : "Polno ime",
- "Email options" : "Možnosti elektronske pošte",
- "Options for additional email address {index}" : "Dodatni elektronski naslov {index}",
- "Remove primary email" : "Odstrani osnovni elektronski naslov",
- "Delete email" : "Izbriši elektronski naslov",
- "This address is not confirmed" : "Ta naslov ni potrjen",
- "Unset as primary email" : "Odstrani oznako osnovnega elektronskega naslova",
- "Set as primary email" : "Nastavi kot osnovni elektronski naslov",
- "Additional email address {index}" : "Dodatni elektronski naslov {index}",
- "Unable to delete primary email address" : "Ni mogoče izbrisati osnovnega elektronskega naslova",
- "Unable to update primary email address" : "Ni mogoče posodobiti osnovnega elektronskega naslova",
- "Unable to add additional email address" : "Ni mogoče dodati dodatnega elektronskega naslova",
- "Unable to update additional email address" : "Ni mogoče posodobiti dodatnega elektronskega naslova",
- "Unable to delete additional email address" : "Ni mogoče izbrisati dodatnega elektronskega naslova",
- "Primary email for password reset and notifications" : "Osnovni elektronski naslov za obnavljanje gesla in obvestila",
- "No email address set" : "Poštni naslov ni nastavljen",
- "Your handle" : "Ročnik",
- "Your headline" : "Vaš naslov",
- "Unable to update language" : "Ni mogoče posodobiti jezika",
- "Languages" : "Jeziki",
- "Help translate" : "Sodelujte pri prevajanju",
- "No language set" : "Jezik ni nastavljen",
- "Unable to update locale" : "Ni mogoče posodobiti jezikovnih nastavitev",
- "Locales" : "Jezikovne nastavitve",
- "Week starts on {firstDayOfWeek}" : "Prvi dan tedna je {firstDayOfWeek}",
- "No locale set" : "Ni določenih jezikovnih nastavitev",
- "Your city" : "Kraj bivanja",
- "Your organisation" : "Ustanova",
- "Your phone number" : "Osebna telefonska številka",
- "Edit your Profile visibility" : "Prilagodi vidnost profila",
- "Unable to update profile enabled state" : "Ni mogoče posodobiti omogočenega stanja profila",
- "Enable profile" : "Omogoči profil",
- "Unable to update visibility of {displayId}" : "Ni mogoče posodobiti vidnosti {displayId}",
- "Your role" : "Vloga",
- "Your X (formerly Twitter) handle" : "Osebni ročnik X (prej Twitter)",
- "Your website" : "Osebna spletna stran",
- "Invalid value" : "Neveljavna vrednost",
- "Unable to update {property}" : "Lastnosti {property} ni mogoče posodobiti",
- "No {property} set" : "Lastnost {property} ni nastavljena",
- "Change scope level of {property}, current scope is {scope}" : "Spremenite raven obsega lastnosti {property}, trenutno je določena kot {scope}",
- "Unable to update federation scope of the primary {property}" : "Ni mogoče posodobiti obsega zveznosti osnovne lastnosti {property}",
- "Unable to update federation scope of additional {property}" : "Ni mogoče posodobiti obsega zveznosti nadaljnjih lastnosti {property}",
- "Add additional email" : "Dodaj dodaten elektronski naslov",
- "Add" : "Dodaj",
- "Create" : "Ustvarjanje",
- "Change" : "Spreminjanje",
- "Delete" : "Brisanje",
- "Reshare" : "Nadaljnja souporaba",
- "Default language" : "Privzeti jezik",
- "Common languages" : "Splošni jeziki",
- "Other languages" : "Drugi jeziki",
- "Password change is disabled because the master key is disabled" : "Spreminjanje gesla je onemogočeno, ker je onemogočen tudi glavni šifrirni ključ",
- "No accounts" : "Ni računov",
- "Loading accounts …" : "Poteka nalaganje računov ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Seznam računov. Seznam zaradi zmogljivosti sistema ni v celoti prikazan. Podatki uporabnikov se nalagajo med pomikanjem po seznamu.",
- "Manager" : "Upravljalnik",
- "Account name will be autogenerated" : "iME RAČUNA bo samodejno ustvarjeno",
- "Account name (required)" : "Ime računa (zahtevano)",
- "New account" : "Nov račun",
- "Display name" : "Prikazno ime",
- "Either password or email is required" : "Zahtevano je ali geslo ali elektronski naslov",
- "Password (required)" : "Geslo (zahtevano)",
- "Email (required)" : "Elektronski naslov (zahtevano)",
- "Email" : "Elektronski naslov",
- "Member of the following groups" : "Član navedenih skupin",
- "Set account groups" : "Nastavi skupine računov",
- "Admin of the following groups" : "Skrbnik navedenih skupin",
- "Set account as admin for …" : "Nastavi račun kot skrbniški za ...",
- "Quota" : "Količinska omejitev",
- "Set account quota" : "Nastavi količinsko omejitev računa",
- "Language" : "Jezik",
- "Set default language" : "Nastavi privzeti jezik",
- "Add new account" : "Dodaj nov račun",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} račun ...","{userCount} računa ...","{userCount} računi ...","{userCount} računov ..."],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} račun ...","{userCount} računa ...","{userCount} računi ...","{userCount} računov ..."],
- "Total rows summary" : "Skupni povzetek vrstic",
- "Scroll to load more rows" : "Podrsajte za nalaganje več vrstic",
- "Password or insufficient permissions message" : "Sporočilo gesla oziroma neustreznih dovoljenj",
- "Avatar" : "Podoba",
- "Account name" : "Ime računa",
- "Group admin for" : "Skrbnik skupine za",
- "Account backend" : "Ozadnji program računa",
- "Storage location" : "Mesto shrambe",
- "Last login" : "Zadnja prijava",
- "Account actions" : "Dejanja računa",
- "{size} used" : "V uporabi {size}·",
- "Delete account" : "Izbriši račun",
- "Disconnect all devices and delete local data" : "Odklopi vse naprave in izbriši krajevne podatke",
- "Disable account" : "Onemogoči račun",
- "Enable account" : "Omogoči račun",
- "Resend welcome email" : "Ponovno pošlji potrditveno sporočilo",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Možnost omogoča varnostno brisanje podatkov Nextcloud z vseh naprav, povezanih z uporabniškim računom {userid}. Možnost deluje le, če so naprave povezane v spletno omrežje. Brisanje z oddaljenih naprav je uporabno v primeru izgubljene naprave, ali na primer prekinitve sodelovanja v neki skupini.",
- "Remote wipe of devices" : "Oddaljeno varnostno brisanje naprav",
- "Wipe {userid}'s devices" : "Varnostno izbriši naprave uporabniškega računa {userid}",
- "Wiped {userid}'s devices" : "Varnostno izbrisane naprave računa {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Izbriši račun »{userid}« vključno z osebnimi podatki, datotekami, programi ...",
- "Account deletion" : "Brisanje računa",
- "Delete {userid}'s account" : "Izbriši račun {userid}",
- "Display name was successfully changed" : "Prikazno ime je uspešno zamenjano",
- "Password was successfully changed" : "Geslo je uspešno spremenjeno",
- "Email was successfully changed" : "Elektronski naslov je uspešno spremenjen",
- "Welcome mail sent!" : "Potrditveno sporočilo je poslano!",
- "Loading account …" : "Poteka nalaganje računa ...",
- "Change display name" : "Spremeni prikazno ime",
- "Set new password" : "Nastavi novo geslo",
- "You do not have permissions to see the details of this account" : "Ni ustreznih dovoljenj za pregled podrobnosti tega računa",
- "Set new email address" : "Nastavi nov elektronski naslov",
- "Add account to group" : "Dodaj račun v skupino",
- "Set account as admin for" : "Nastavi račun kot skrbniški za ...",
- "Select account quota" : "Nastavi količinsko omejitev računa",
- "Set the language" : "Nastavi jezik",
- "Toggle account actions menu" : "Preklopi meni dejanj računa",
- "Done" : "Končano",
- "Edit" : "Uredi",
- "Account management settings" : "Nastavitve upravljalnika računov",
- "Visibility" : "Vidnost",
- "Show language" : "Pokaži jezik",
- "Show account backend" : "Pokaži ozadnji program računa",
- "Show storage path" : "Pokaži pot mesta shrambe",
- "Show last login" : "Pokaži zadnjo prijavo",
- "Sorting" : "Razvrščanje",
- "Group list sorting" : "Razvrščanje seznama skupin",
- "By member count" : "Po številu članov",
- "By name" : "Po imenu",
- "Send email" : "Pošlji elektronsko sporočilo",
- "Send welcome email to new accounts" : "Pošlji sporočilo novim za nove račune",
- "Defaults" : "Privzeto",
- "Default quota" : "Privzeta omejitev",
- "Select default quota" : "Izbor količinske omejitve",
- "Server error while trying to complete WebAuthn device registration" : "Prišlo je do strežniške napake med zaključevanjem vpisovanja naprave WebAuthn",
- "Passwordless authentication requires a secure connection." : "Brezgeselna overitev zahteva varno povezavo.",
- "Add WebAuthn device" : "Dodaj napravo WebAuthn",
- "Please authorize your WebAuthn device." : "Overite napravo WebAuthn",
- "Adding your device …" : "Poteka dodajanje naprave ..",
- "Unnamed device" : "Neimenovana naprava",
- "Passwordless Authentication" : "Brezgeselna overitev",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Nastavitev račun za brezgeselno overitev dostopa po standardu FIDO2.",
- "No devices configured." : "Ni nastavljenih naprav.",
- "The following devices are configured for your account:" : "Z vašim računom so povezane navedene naprave:",
- "Your browser does not support WebAuthn." : "Brskalnik ne podpira overitve WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Skrbnik lahko prilagodi možnosti souporabe. Več podrobnosti je zapisanih v dokumentaciji.",
- "You need to enable the File sharing App." : "Omogočiti je treba program Souporabe datotek.",
- "App Store" : "Programska trgovina",
- "Loading app list" : "Poteka nalaganje seznama programov ...",
- "Loading categories" : "Poteka nalaganje kategorij",
- "Developer documentation ↗" : "Dokumentacija za razvijalce ↗",
- "Version {version}, {license}-licensed" : "Različica {version}, z dovoljenjem {license}",
- "All accounts" : "Vsi računi",
- "Admins" : "Skrbniki",
- "Account group: {group}" : "Skupina računov: {group}",
- "Account management" : "Upravljanje z računi",
"Sending…" : "Poteka pošiljanje ...",
"Email sent" : "Elektronsko sporočilo je poslano",
"Location" : "Trenutno mesto",
@@ -605,6 +371,7 @@ OC.L10N.register(
"Date of birth" : "Datum rojstva",
"Full name" : "Polno ime",
"Additional email" : "Dodatni elektronski naslov",
+ "Email" : "Elektronski naslov",
"Fediverse (e.g. Mastodon)" : "Fediverse (na primer Mastodon)",
"Headline" : "Naslov",
"Organisation" : "Ustanova",
@@ -613,6 +380,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (prej Twitter)",
"Website" : "Spletna stran",
"Profile visibility" : "Vidnost profila",
+ "Language" : "Jezik",
"Locale" : "Jezikovne nastavitve",
"First day of week" : "Prvi dan tedna",
"Discover" : "Predstavitve",
@@ -626,11 +394,13 @@ OC.L10N.register(
"Show to everyone" : "Pokaži vsem",
"Show to logged in accounts only" : "Pokaži le prijavljenim računom",
"Hide" : "Skrij",
+ "Update to {version}" : "Posodobi na različico {version}",
"Download and enable" : "Prejmi in omogoči",
"Disable" : "Onemogoči",
"Allow untested app" : "Omogoči nepreizkušen program",
"The app will be downloaded from the App Store" : "Program bo prejet iz zbirke programov",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ta program ni označen kot skladen z nameščeno različico oblaka Nextcloud. Če nameravate nadaljevati, boste program lahko namestili, vendar ta morda ne bo deloval po pričakovanjih, ali pa bo vplival na stabilnost sistema.",
+ "{size} used" : "V uporabi {size}·",
"Unknown" : "Neznano",
"Never" : "Nikoli",
"Could not register device: Network error" : "Naprave ni mogoče vpisati: napaka omrežja",
@@ -648,8 +418,10 @@ OC.L10N.register(
"Could not set group sorting" : "Ni mogoče nastaviti razvrščanja skupine",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Iz omrežja je bilo prejetih preveč zahtev. Če je to napaka, stopite v stik s skrbnikom, sicer pa poskusite spet kasneje.",
"Error" : "Napaka",
+ "Default quota" : "Privzeta omejitev",
"Account documentation" : "Dokumentacija računa",
"Administration documentation" : "Skrbniška dokumentacija",
+ "Documentation" : "Dokumentacija",
"Forum" : "Forum",
"General documentation" : "Splošna dokumentacija",
"Legal notice" : "Pravno obvestilo",
@@ -671,6 +443,7 @@ OC.L10N.register(
"SMTP Password" : "Geslo SMTP",
"Save" : "Shrani",
"Test and verify email settings" : "Preizkusi in overi nastavitve elektronske pošte",
+ "Send email" : "Pošlji elektronsko sporočilo",
"Security & setup warnings" : "Varnost in namestitvena opozorila",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Zaradi varnosti in optimizacije delovanja je nujno, da je sistem posodobljen in pravilno nastavljen. Preverjanje poteka tako, da se nekateri preizkusi izvajajo sproti in samodejno. Več podrobnosti je zabeleženih v dokumentaciji. ",
"All checks passed." : "Vsa preverjanja so uspešno zaključena.",
@@ -690,45 +463,11 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Ob geslu je priporočljivo uporabiti tudi drugo-stopenjsko overitev za večjo varnost računa.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Če uporabljate za povezavo z oblakom Nextcloud programe tretjih oseb, najprej ustvarite in nastavite gesla za vsak program, preden omogočite dvostopenjsko overitev.",
"Logged in account must be a subadmin" : "Račun prijave mora imeti dovoljenja podpornega skrbnika",
- "Missing optional index \"%s\" in table \"%s\"." : "Manjka izbirno kazalo »%s« v razpredelnici »%s«.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "V podatkovni zbirki ni določenih nekaterih določil. Ker je dodajanje določil na velikih razpredelnicah časovno izredno zahtevno opravilo, ta niso dodana samodejno. Z ukazom »occ db: add-missing-indices« je določila mogoče varno dodati ročno, medtem ko je sistem v delovanju. Po dodajanju bo izvajanje poizvedb teh razpredelnic neprimerno hitrejše.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Če želite omogočiti izvajanje tega preverjanja, je treba zagotoviti, da se spletni strežnik lahko poveže sam s seboj. Zato mora biti nastavljen za povezovanje z vsaj eno od določenih »varnih domen« (trusted_domains) ali naslovov za prepis »vmesnika ukazne vrstice« (overwrite.cli.url). Spodletelo preverjanje je lahko posledica neujemanja imen DNS na strani strežnika oziroma pravila požarnega zidu.",
"File locking" : "Zaklepanje datotek",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Zaklepanje datotek je onemogočeno, kar lahko privede do različnih težav. V izogib zapletom je priporočljivo omogočiti možnost »filelocking.enabled« v datoteki config.php.",
"The PHP memory limit is below the recommended value of %s." : "Omejitev pomnilnika PHP je pod priporočeno mejo %s.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Trenutno je nameščena različica PHP %s. Podpora PHP 8.0 je z različico programa Nextcloud 27 opuščena. Za okolje Nextcloud 28 je zahtevana vsaj podpora PHP 8.1. Priporočena je nadgradnja na uradno podprte različice PHP, ki jih zagotavlja skupnost.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "V uporabi je različica podatkovne zbirke MariaDB »%s«. Z namestitvijo Nextcloud 21 ta ni več podprta. Sistem zahteva nadgradnjo zbirke na različico MariaDB 10.2 ali višjo.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "V uporabi je različica podatkovne zbirke MySQL »%s«. Z namestitvijo Nextcloud 21 ta ni več podprta. Sistem zahteva nadgradnjo zbirke na različico MySQL 8.0, MariaDB 10.2 ali višje.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "V uporabi je različica podatkovne zbirke PostgreSQL »%s«. Z namestitvijo Nextcloud 21 ta ni več podprta. Sistem zahteva nadgradnjo zbirke na različico PostgreSQL 9.6 ali višjo.",
- "Speech-To-Text" : "Govor-v-besedilo",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Prepisovanje govora v besedilo lahko izvajajo različni programi. Na tem mestu je mogoče določiti program za uporabo.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Noben od trenutno nameščenih programov ne omogoča prepisovanja govora v besedilo.",
- "None of your currently installed apps provide Text processing functionality" : "Noben od trenutno nameščenih programov ne omogoča obdelave besedila.",
- "Set default expiration date for shares" : "Nastavi privzeti datuma poteka za mesta souporabe",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Omogočite samodejno dokončanje uporabniškega imena v pogovornih oknih za souporabo in omogočite dostop do sistemskega imenika.",
- "Your biography" : "Biografija",
- "You are using <strong>{usage}</strong>" : "Uporabljate <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Uporabljate <strong>{usage}</strong> od <strong>{totalSpace}</strong> (<strong>{usageRelative} %</strong>)",
- "Set user manager" : "Nastavi upravljalnik uporabnikov",
- "Username will be autogenerated" : "Uporabniško ime bo samodejno ustvarjeno",
- "Username (required)" : "Uporabniško ime (zahtevano)",
- "New user" : "Nov uporabnik",
- "Groups (required)" : "Skupine (zahtevano)",
- "Set user groups" : "Nastavi uporabniške skupine",
- "Administered groups" : "Upravljane skupine",
- "Set user as admin for …" : "Nastavi uporabnika kot skrbnika za ...",
- "Set user quota" : "Določi količinsko omejitev",
- "Add new user" : "Dodaj uporabnika",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} uporabnik …","{userCount} uporabnika …","{userCount} uporabniki …","{userCount} uporabnikov …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} uporabnik","{userCount} uporabnika","{userCount} uporabniki","{userCount} uporabnikov"],
- "Loading users …" : "Poteka nalaganje uporabnikov ...",
- "Username" : "Uporabniško ime",
- "User backend" : "Uporabniški ozadnji program",
- "User actions" : "Dejanja uporabnika",
- "Add user to group" : "Dodaj uporabnika v skupino",
- "Server error while trying to add WebAuthn device" : "Prišlo je do strežniške napake med dodajanjem naprave WebAuthn",
- "Name your device" : "Naziv naprave",
- "Active accounts" : "Dejavni računi",
- "Follow us on Twitter" : "Sledite nam na Twitter!",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Če želite omogočiti izvajanje tega preverjanja, je treba zagotoviti, da se spletni strežnik lahko poveže sam s seboj. Zato mora biti nastavljen za povezovanje z vsaj eno od določenih »varnih domen« (trusted_domains) ali naslovov za prepis »vmesnika ukazne vrstice« (overwrite.cli.url). Spodletelo preverjanje je lahko posledica neujemanja imen DNS na strani strežnika oziroma pravila požarnega zidu."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– Glava HTTP »%1$s« ne vključuje vrednosti »%2$s«. To predstavlja potencialno varnostno ali zasebnostno tveganje, zato je priporočljivo prilagoditi nastavitve.",
+ "Set default expiration date for shares" : "Nastavi privzeti datuma poteka za mesta souporabe"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/settings/l10n/sl.json b/apps/settings/l10n/sl.json
index 8b4b635323d..318e9fadf24 100644
--- a/apps/settings/l10n/sl.json
+++ b/apps/settings/l10n/sl.json
@@ -224,7 +224,6 @@
"HTTP headers" : "Glave HTTP",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "– Glava HTTP »%1$s« ni nastavljena na pričakovano vrednost »%2$s«. Nekatere možnosti morda ne bodo delovale pravilno, zato je priporočljivo prilagoditi nastavitve.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– Glava HTTP »%1$s« ni nastavljena na pričakovano vrednost »%2$s«. To predstavlja potencialno varnostno ali zasebnostno tveganje, zato je priporočljivo prilagoditi nastavitve.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– Glava HTTP »%1$s« ne vključuje vrednosti »%2$s«. To predstavlja potencialno varnostno ali zasebnostno tveganje, zato je priporočljivo prilagoditi nastavitve.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "– Glava HTTP »%1$s« ni nastavljena na »%2$s«, »%3$s«, »%4$s«, »%5$s« ali »%6$s«. To la hko povzroči spuščanje sklicnih podatkov. Več o tem je zapisano na {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "– Glava HTTP za varen prenos podatkov »Strict-Transport-Security« ni nastavljena na vsaj »%d« sekund (trenutna vrednost je »%d«). Za večjo varnost je priporočljivo omogočiti pravila HSTS.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "– Glava HTTP za varen prenos podatkov »Strict-Transport-Security« je neustrezno oblikovana: »%s«. Za večjo varnost je priporočljivo omogočiti pravila HSTS.",
@@ -315,67 +314,6 @@
"Nothing to show" : "Ni vsebine za prikaz",
"Loading" : "Poteka nalaganje ...",
"Fetching the latest news…" : "Poteka pridobivanje zadnjih novic ...",
- "Previous slide" : "Predhodni prikaz",
- "Next slide" : "Naslednji prikaz",
- "Choose slide to display" : "Izbor vsebine za prikaz",
- "{index} of {total}" : "{index} od {total}",
- "Daemon" : "Ozadnji program",
- "Type" : "Vrsta",
- "Learn more" : "Prikaži več",
- "Confirm" : "Potrdi",
- "Cancel" : "Prekliči",
- "Description" : "Opis",
- "View in store" : "Pokaži v trgovini",
- "Visit website" : "Odpri spletno stran",
- "Usage documentation" : "Dokumentacija uporabe",
- "Admin documentation" : "Skrbniška dokumentacija",
- "Developer documentation" : "Dokumentacija za razvijalce",
- "Details" : "Podrobnosti",
- "All" : "Vsi",
- "Limit app usage to groups" : "Omeji uporabo programa na skupine",
- "No results" : "Ni zadetkov",
- "Update to {version}" : "Posodobi na različico {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Program nima določene omejitve različice okolja Nextcloud. V prihodnosti se bo manjkajoči podatek pokazal kot napaka.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Program nima določene omejitve različice okolja Nextcoud. V prihodnosti se bo manjkajoči podatek pokazal kot napaka.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerazrešenih odvisnosti:",
- "Latest updated" : "Nazadnje posodobljeno",
- "Author" : "Avtor",
- "Categories" : "Kategorije",
- "Resources" : "Viri",
- "Documentation" : "Dokumentacija",
- "Interact" : "Interakcija",
- "Report a bug" : "Pošlji poročilo o hrošču",
- "Request feature" : "Predlagaj zmožnost",
- "Ask questions or discuss" : "Vključi se v pogovor",
- "Rate the app" : "Oceni program",
- "Rate" : "Oceni",
- "Changelog" : "Dnevnik sprememb",
- "Google Chrome for Android" : "Google Chrome za Android",
- "{productName} iOS app" : "{productName} za iOS",
- "{productName} Android app" : "{productName} za Android",
- "{productName} Talk for iOS" : "{productName} Talk za iOS",
- "{productName} Talk for Android" : "{productName} Talk za Android",
- "Sync client" : "Odjemalec za usklajevanje",
- "This session" : "Ta seja",
- "{client} - {version} ({system})" : "{client} – {version} ({system})",
- "{client} - {version}" : "{client} – {version}",
- "Device name" : "Ime naprave",
- "Cancel renaming" : "Prekliči preimenovanje",
- "Save new name" : "Shrani novo ime",
- "Marked for remote wipe" : "Označeno za oddaljeno varnostno brisanje",
- "Device settings" : "Nastavitve naprave",
- "Allow filesystem access" : "Dovoli dostop do datotečnega sistema",
- "Rename" : "Preimenuj",
- "Revoke" : "Prekliči",
- "Wipe device" : "Varnostno izbriši napravo",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Obnovitev tega žetona lahko prepreči varnostno brisanje naprave, če se to še ni začelo.",
- "Device" : "Naprava",
- "Last activity" : "Zadnja dejavnost",
- "Devices & sessions" : "Naprave in seje",
- "Web, desktop and mobile clients currently logged in to your account." : "Spletne, namizne in mobilne naprave, ki so trenutno povezane z računom.",
- "Error while creating device token" : " Napaka med ustvarjanjem žetona naprave",
- "App name" : "Ime programa",
- "Create new app password" : "Ustvari novo geslo programa",
"App password copied!" : "Geslo programa je kopirano!",
"Copy app password" : "Kopiraj geslo programa",
"Login name copied!" : "Prijavno ime je kopirano!",
@@ -418,183 +356,11 @@
"Be aware that encryption always increases the file size." : " Upoštevajte, da šifriranje poveča velikost datoteke.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Priporočljivo je redno ustvarjati varnostne kopije podatkov, v primeru šifriranja pa varnostno kopirati tudi šifrirne ključe.",
"This is the final warning: Do you really want to enable encryption?" : "To je zadnje opozorilo. Ali res želite omogočiti šifriranje?",
- "Failed to remove group \"{group}\"" : "Odstranjevanje skupine »{group}« je spodlotelo",
"Please confirm the group removal" : "Potrditi je treba skupinsko odstranjevanje",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Odstranili boste skupino »{group}«. Računi ne bodo izbrisani.",
+ "Cancel" : "Prekliči",
+ "Confirm" : "Potrdi",
"Submit" : "Pošlji",
"Rename group" : "Preimenuj skupino",
- "Remove group" : "Odstrani skupino",
- "Current password" : "Trenutno geslo",
- "New password" : "Novo geslo",
- "Change password" : "Spremeni geslo",
- "Choose your profile picture" : "Izbor slike profila",
- "Please select a valid png or jpg file" : "Izbrati je treba veljavno datoteko png ali jpg.",
- "Error setting profile picture" : "Napaka nastavljanja slike profila",
- "Error cropping profile picture" : "Napaka obrezovanja slike profila",
- "Error saving profile picture" : "Napaka shranjevanja slike profila",
- "Error removing profile picture" : "Napaka odstranjevanja slike profila",
- "Your profile picture" : "Slika profila",
- "Upload profile picture" : "Pošlji sliko profila",
- "Choose profile picture from Files" : "Izbor slike profila med datotekami",
- "Remove profile picture" : "Odstrani sliko profila",
- "The file must be a PNG or JPG" : "Datoteka mora biti v zapisu PNG ali JPG",
- "Picture provided by original account" : "Slika iz izvornega računa",
- "Set as profile picture" : "Nastavi sliko profila",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Upoštevajte, da lahko traja tudi 24 ur preden se slika profila posodobi na vseh mestih.",
- "Unable to update date of birth" : "Datuma rojstva ni mogoče posodobiti",
- "Enter your date of birth" : "Vpišite datum rojstva",
- "You are a member of the following groups:" : "Omogočeno je članstvo v skupinah:",
- "Your full name" : "Polno ime",
- "Email options" : "Možnosti elektronske pošte",
- "Options for additional email address {index}" : "Dodatni elektronski naslov {index}",
- "Remove primary email" : "Odstrani osnovni elektronski naslov",
- "Delete email" : "Izbriši elektronski naslov",
- "This address is not confirmed" : "Ta naslov ni potrjen",
- "Unset as primary email" : "Odstrani oznako osnovnega elektronskega naslova",
- "Set as primary email" : "Nastavi kot osnovni elektronski naslov",
- "Additional email address {index}" : "Dodatni elektronski naslov {index}",
- "Unable to delete primary email address" : "Ni mogoče izbrisati osnovnega elektronskega naslova",
- "Unable to update primary email address" : "Ni mogoče posodobiti osnovnega elektronskega naslova",
- "Unable to add additional email address" : "Ni mogoče dodati dodatnega elektronskega naslova",
- "Unable to update additional email address" : "Ni mogoče posodobiti dodatnega elektronskega naslova",
- "Unable to delete additional email address" : "Ni mogoče izbrisati dodatnega elektronskega naslova",
- "Primary email for password reset and notifications" : "Osnovni elektronski naslov za obnavljanje gesla in obvestila",
- "No email address set" : "Poštni naslov ni nastavljen",
- "Your handle" : "Ročnik",
- "Your headline" : "Vaš naslov",
- "Unable to update language" : "Ni mogoče posodobiti jezika",
- "Languages" : "Jeziki",
- "Help translate" : "Sodelujte pri prevajanju",
- "No language set" : "Jezik ni nastavljen",
- "Unable to update locale" : "Ni mogoče posodobiti jezikovnih nastavitev",
- "Locales" : "Jezikovne nastavitve",
- "Week starts on {firstDayOfWeek}" : "Prvi dan tedna je {firstDayOfWeek}",
- "No locale set" : "Ni določenih jezikovnih nastavitev",
- "Your city" : "Kraj bivanja",
- "Your organisation" : "Ustanova",
- "Your phone number" : "Osebna telefonska številka",
- "Edit your Profile visibility" : "Prilagodi vidnost profila",
- "Unable to update profile enabled state" : "Ni mogoče posodobiti omogočenega stanja profila",
- "Enable profile" : "Omogoči profil",
- "Unable to update visibility of {displayId}" : "Ni mogoče posodobiti vidnosti {displayId}",
- "Your role" : "Vloga",
- "Your X (formerly Twitter) handle" : "Osebni ročnik X (prej Twitter)",
- "Your website" : "Osebna spletna stran",
- "Invalid value" : "Neveljavna vrednost",
- "Unable to update {property}" : "Lastnosti {property} ni mogoče posodobiti",
- "No {property} set" : "Lastnost {property} ni nastavljena",
- "Change scope level of {property}, current scope is {scope}" : "Spremenite raven obsega lastnosti {property}, trenutno je določena kot {scope}",
- "Unable to update federation scope of the primary {property}" : "Ni mogoče posodobiti obsega zveznosti osnovne lastnosti {property}",
- "Unable to update federation scope of additional {property}" : "Ni mogoče posodobiti obsega zveznosti nadaljnjih lastnosti {property}",
- "Add additional email" : "Dodaj dodaten elektronski naslov",
- "Add" : "Dodaj",
- "Create" : "Ustvarjanje",
- "Change" : "Spreminjanje",
- "Delete" : "Brisanje",
- "Reshare" : "Nadaljnja souporaba",
- "Default language" : "Privzeti jezik",
- "Common languages" : "Splošni jeziki",
- "Other languages" : "Drugi jeziki",
- "Password change is disabled because the master key is disabled" : "Spreminjanje gesla je onemogočeno, ker je onemogočen tudi glavni šifrirni ključ",
- "No accounts" : "Ni računov",
- "Loading accounts …" : "Poteka nalaganje računov ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Seznam računov. Seznam zaradi zmogljivosti sistema ni v celoti prikazan. Podatki uporabnikov se nalagajo med pomikanjem po seznamu.",
- "Manager" : "Upravljalnik",
- "Account name will be autogenerated" : "iME RAČUNA bo samodejno ustvarjeno",
- "Account name (required)" : "Ime računa (zahtevano)",
- "New account" : "Nov račun",
- "Display name" : "Prikazno ime",
- "Either password or email is required" : "Zahtevano je ali geslo ali elektronski naslov",
- "Password (required)" : "Geslo (zahtevano)",
- "Email (required)" : "Elektronski naslov (zahtevano)",
- "Email" : "Elektronski naslov",
- "Member of the following groups" : "Član navedenih skupin",
- "Set account groups" : "Nastavi skupine računov",
- "Admin of the following groups" : "Skrbnik navedenih skupin",
- "Set account as admin for …" : "Nastavi račun kot skrbniški za ...",
- "Quota" : "Količinska omejitev",
- "Set account quota" : "Nastavi količinsko omejitev računa",
- "Language" : "Jezik",
- "Set default language" : "Nastavi privzeti jezik",
- "Add new account" : "Dodaj nov račun",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} račun ...","{userCount} računa ...","{userCount} računi ...","{userCount} računov ..."],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} račun ...","{userCount} računa ...","{userCount} računi ...","{userCount} računov ..."],
- "Total rows summary" : "Skupni povzetek vrstic",
- "Scroll to load more rows" : "Podrsajte za nalaganje več vrstic",
- "Password or insufficient permissions message" : "Sporočilo gesla oziroma neustreznih dovoljenj",
- "Avatar" : "Podoba",
- "Account name" : "Ime računa",
- "Group admin for" : "Skrbnik skupine za",
- "Account backend" : "Ozadnji program računa",
- "Storage location" : "Mesto shrambe",
- "Last login" : "Zadnja prijava",
- "Account actions" : "Dejanja računa",
- "{size} used" : "V uporabi {size}·",
- "Delete account" : "Izbriši račun",
- "Disconnect all devices and delete local data" : "Odklopi vse naprave in izbriši krajevne podatke",
- "Disable account" : "Onemogoči račun",
- "Enable account" : "Omogoči račun",
- "Resend welcome email" : "Ponovno pošlji potrditveno sporočilo",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Možnost omogoča varnostno brisanje podatkov Nextcloud z vseh naprav, povezanih z uporabniškim računom {userid}. Možnost deluje le, če so naprave povezane v spletno omrežje. Brisanje z oddaljenih naprav je uporabno v primeru izgubljene naprave, ali na primer prekinitve sodelovanja v neki skupini.",
- "Remote wipe of devices" : "Oddaljeno varnostno brisanje naprav",
- "Wipe {userid}'s devices" : "Varnostno izbriši naprave uporabniškega računa {userid}",
- "Wiped {userid}'s devices" : "Varnostno izbrisane naprave računa {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Izbriši račun »{userid}« vključno z osebnimi podatki, datotekami, programi ...",
- "Account deletion" : "Brisanje računa",
- "Delete {userid}'s account" : "Izbriši račun {userid}",
- "Display name was successfully changed" : "Prikazno ime je uspešno zamenjano",
- "Password was successfully changed" : "Geslo je uspešno spremenjeno",
- "Email was successfully changed" : "Elektronski naslov je uspešno spremenjen",
- "Welcome mail sent!" : "Potrditveno sporočilo je poslano!",
- "Loading account …" : "Poteka nalaganje računa ...",
- "Change display name" : "Spremeni prikazno ime",
- "Set new password" : "Nastavi novo geslo",
- "You do not have permissions to see the details of this account" : "Ni ustreznih dovoljenj za pregled podrobnosti tega računa",
- "Set new email address" : "Nastavi nov elektronski naslov",
- "Add account to group" : "Dodaj račun v skupino",
- "Set account as admin for" : "Nastavi račun kot skrbniški za ...",
- "Select account quota" : "Nastavi količinsko omejitev računa",
- "Set the language" : "Nastavi jezik",
- "Toggle account actions menu" : "Preklopi meni dejanj računa",
- "Done" : "Končano",
- "Edit" : "Uredi",
- "Account management settings" : "Nastavitve upravljalnika računov",
- "Visibility" : "Vidnost",
- "Show language" : "Pokaži jezik",
- "Show account backend" : "Pokaži ozadnji program računa",
- "Show storage path" : "Pokaži pot mesta shrambe",
- "Show last login" : "Pokaži zadnjo prijavo",
- "Sorting" : "Razvrščanje",
- "Group list sorting" : "Razvrščanje seznama skupin",
- "By member count" : "Po številu članov",
- "By name" : "Po imenu",
- "Send email" : "Pošlji elektronsko sporočilo",
- "Send welcome email to new accounts" : "Pošlji sporočilo novim za nove račune",
- "Defaults" : "Privzeto",
- "Default quota" : "Privzeta omejitev",
- "Select default quota" : "Izbor količinske omejitve",
- "Server error while trying to complete WebAuthn device registration" : "Prišlo je do strežniške napake med zaključevanjem vpisovanja naprave WebAuthn",
- "Passwordless authentication requires a secure connection." : "Brezgeselna overitev zahteva varno povezavo.",
- "Add WebAuthn device" : "Dodaj napravo WebAuthn",
- "Please authorize your WebAuthn device." : "Overite napravo WebAuthn",
- "Adding your device …" : "Poteka dodajanje naprave ..",
- "Unnamed device" : "Neimenovana naprava",
- "Passwordless Authentication" : "Brezgeselna overitev",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Nastavitev račun za brezgeselno overitev dostopa po standardu FIDO2.",
- "No devices configured." : "Ni nastavljenih naprav.",
- "The following devices are configured for your account:" : "Z vašim računom so povezane navedene naprave:",
- "Your browser does not support WebAuthn." : "Brskalnik ne podpira overitve WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Skrbnik lahko prilagodi možnosti souporabe. Več podrobnosti je zapisanih v dokumentaciji.",
- "You need to enable the File sharing App." : "Omogočiti je treba program Souporabe datotek.",
- "App Store" : "Programska trgovina",
- "Loading app list" : "Poteka nalaganje seznama programov ...",
- "Loading categories" : "Poteka nalaganje kategorij",
- "Developer documentation ↗" : "Dokumentacija za razvijalce ↗",
- "Version {version}, {license}-licensed" : "Različica {version}, z dovoljenjem {license}",
- "All accounts" : "Vsi računi",
- "Admins" : "Skrbniki",
- "Account group: {group}" : "Skupina računov: {group}",
- "Account management" : "Upravljanje z računi",
"Sending…" : "Poteka pošiljanje ...",
"Email sent" : "Elektronsko sporočilo je poslano",
"Location" : "Trenutno mesto",
@@ -603,6 +369,7 @@
"Date of birth" : "Datum rojstva",
"Full name" : "Polno ime",
"Additional email" : "Dodatni elektronski naslov",
+ "Email" : "Elektronski naslov",
"Fediverse (e.g. Mastodon)" : "Fediverse (na primer Mastodon)",
"Headline" : "Naslov",
"Organisation" : "Ustanova",
@@ -611,6 +378,7 @@
"X (formerly Twitter)" : "X (prej Twitter)",
"Website" : "Spletna stran",
"Profile visibility" : "Vidnost profila",
+ "Language" : "Jezik",
"Locale" : "Jezikovne nastavitve",
"First day of week" : "Prvi dan tedna",
"Discover" : "Predstavitve",
@@ -624,11 +392,13 @@
"Show to everyone" : "Pokaži vsem",
"Show to logged in accounts only" : "Pokaži le prijavljenim računom",
"Hide" : "Skrij",
+ "Update to {version}" : "Posodobi na različico {version}",
"Download and enable" : "Prejmi in omogoči",
"Disable" : "Onemogoči",
"Allow untested app" : "Omogoči nepreizkušen program",
"The app will be downloaded from the App Store" : "Program bo prejet iz zbirke programov",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ta program ni označen kot skladen z nameščeno različico oblaka Nextcloud. Če nameravate nadaljevati, boste program lahko namestili, vendar ta morda ne bo deloval po pričakovanjih, ali pa bo vplival na stabilnost sistema.",
+ "{size} used" : "V uporabi {size}·",
"Unknown" : "Neznano",
"Never" : "Nikoli",
"Could not register device: Network error" : "Naprave ni mogoče vpisati: napaka omrežja",
@@ -646,8 +416,10 @@
"Could not set group sorting" : "Ni mogoče nastaviti razvrščanja skupine",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Iz omrežja je bilo prejetih preveč zahtev. Če je to napaka, stopite v stik s skrbnikom, sicer pa poskusite spet kasneje.",
"Error" : "Napaka",
+ "Default quota" : "Privzeta omejitev",
"Account documentation" : "Dokumentacija računa",
"Administration documentation" : "Skrbniška dokumentacija",
+ "Documentation" : "Dokumentacija",
"Forum" : "Forum",
"General documentation" : "Splošna dokumentacija",
"Legal notice" : "Pravno obvestilo",
@@ -669,6 +441,7 @@
"SMTP Password" : "Geslo SMTP",
"Save" : "Shrani",
"Test and verify email settings" : "Preizkusi in overi nastavitve elektronske pošte",
+ "Send email" : "Pošlji elektronsko sporočilo",
"Security & setup warnings" : "Varnost in namestitvena opozorila",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Zaradi varnosti in optimizacije delovanja je nujno, da je sistem posodobljen in pravilno nastavljen. Preverjanje poteka tako, da se nekateri preizkusi izvajajo sproti in samodejno. Več podrobnosti je zabeleženih v dokumentaciji. ",
"All checks passed." : "Vsa preverjanja so uspešno zaključena.",
@@ -688,45 +461,11 @@
"Use a second factor besides your password to increase security for your account." : "Ob geslu je priporočljivo uporabiti tudi drugo-stopenjsko overitev za večjo varnost računa.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Če uporabljate za povezavo z oblakom Nextcloud programe tretjih oseb, najprej ustvarite in nastavite gesla za vsak program, preden omogočite dvostopenjsko overitev.",
"Logged in account must be a subadmin" : "Račun prijave mora imeti dovoljenja podpornega skrbnika",
- "Missing optional index \"%s\" in table \"%s\"." : "Manjka izbirno kazalo »%s« v razpredelnici »%s«.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "V podatkovni zbirki ni določenih nekaterih določil. Ker je dodajanje določil na velikih razpredelnicah časovno izredno zahtevno opravilo, ta niso dodana samodejno. Z ukazom »occ db: add-missing-indices« je določila mogoče varno dodati ročno, medtem ko je sistem v delovanju. Po dodajanju bo izvajanje poizvedb teh razpredelnic neprimerno hitrejše.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Če želite omogočiti izvajanje tega preverjanja, je treba zagotoviti, da se spletni strežnik lahko poveže sam s seboj. Zato mora biti nastavljen za povezovanje z vsaj eno od določenih »varnih domen« (trusted_domains) ali naslovov za prepis »vmesnika ukazne vrstice« (overwrite.cli.url). Spodletelo preverjanje je lahko posledica neujemanja imen DNS na strani strežnika oziroma pravila požarnega zidu.",
"File locking" : "Zaklepanje datotek",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Zaklepanje datotek je onemogočeno, kar lahko privede do različnih težav. V izogib zapletom je priporočljivo omogočiti možnost »filelocking.enabled« v datoteki config.php.",
"The PHP memory limit is below the recommended value of %s." : "Omejitev pomnilnika PHP je pod priporočeno mejo %s.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Trenutno je nameščena različica PHP %s. Podpora PHP 8.0 je z različico programa Nextcloud 27 opuščena. Za okolje Nextcloud 28 je zahtevana vsaj podpora PHP 8.1. Priporočena je nadgradnja na uradno podprte različice PHP, ki jih zagotavlja skupnost.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "V uporabi je različica podatkovne zbirke MariaDB »%s«. Z namestitvijo Nextcloud 21 ta ni več podprta. Sistem zahteva nadgradnjo zbirke na različico MariaDB 10.2 ali višjo.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "V uporabi je različica podatkovne zbirke MySQL »%s«. Z namestitvijo Nextcloud 21 ta ni več podprta. Sistem zahteva nadgradnjo zbirke na različico MySQL 8.0, MariaDB 10.2 ali višje.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "V uporabi je različica podatkovne zbirke PostgreSQL »%s«. Z namestitvijo Nextcloud 21 ta ni več podprta. Sistem zahteva nadgradnjo zbirke na različico PostgreSQL 9.6 ali višjo.",
- "Speech-To-Text" : "Govor-v-besedilo",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Prepisovanje govora v besedilo lahko izvajajo različni programi. Na tem mestu je mogoče določiti program za uporabo.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Noben od trenutno nameščenih programov ne omogoča prepisovanja govora v besedilo.",
- "None of your currently installed apps provide Text processing functionality" : "Noben od trenutno nameščenih programov ne omogoča obdelave besedila.",
- "Set default expiration date for shares" : "Nastavi privzeti datuma poteka za mesta souporabe",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Omogočite samodejno dokončanje uporabniškega imena v pogovornih oknih za souporabo in omogočite dostop do sistemskega imenika.",
- "Your biography" : "Biografija",
- "You are using <strong>{usage}</strong>" : "Uporabljate <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Uporabljate <strong>{usage}</strong> od <strong>{totalSpace}</strong> (<strong>{usageRelative} %</strong>)",
- "Set user manager" : "Nastavi upravljalnik uporabnikov",
- "Username will be autogenerated" : "Uporabniško ime bo samodejno ustvarjeno",
- "Username (required)" : "Uporabniško ime (zahtevano)",
- "New user" : "Nov uporabnik",
- "Groups (required)" : "Skupine (zahtevano)",
- "Set user groups" : "Nastavi uporabniške skupine",
- "Administered groups" : "Upravljane skupine",
- "Set user as admin for …" : "Nastavi uporabnika kot skrbnika za ...",
- "Set user quota" : "Določi količinsko omejitev",
- "Add new user" : "Dodaj uporabnika",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} uporabnik …","{userCount} uporabnika …","{userCount} uporabniki …","{userCount} uporabnikov …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} uporabnik","{userCount} uporabnika","{userCount} uporabniki","{userCount} uporabnikov"],
- "Loading users …" : "Poteka nalaganje uporabnikov ...",
- "Username" : "Uporabniško ime",
- "User backend" : "Uporabniški ozadnji program",
- "User actions" : "Dejanja uporabnika",
- "Add user to group" : "Dodaj uporabnika v skupino",
- "Server error while trying to add WebAuthn device" : "Prišlo je do strežniške napake med dodajanjem naprave WebAuthn",
- "Name your device" : "Naziv naprave",
- "Active accounts" : "Dejavni računi",
- "Follow us on Twitter" : "Sledite nam na Twitter!",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Če želite omogočiti izvajanje tega preverjanja, je treba zagotoviti, da se spletni strežnik lahko poveže sam s seboj. Zato mora biti nastavljen za povezovanje z vsaj eno od določenih »varnih domen« (trusted_domains) ali naslovov za prepis »vmesnika ukazne vrstice« (overwrite.cli.url). Spodletelo preverjanje je lahko posledica neujemanja imen DNS na strani strežnika oziroma pravila požarnega zidu."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "– Glava HTTP »%1$s« ne vključuje vrednosti »%2$s«. To predstavlja potencialno varnostno ali zasebnostno tveganje, zato je priporočljivo prilagoditi nastavitve.",
+ "Set default expiration date for shares" : "Nastavi privzeti datuma poteka za mesta souporabe"
},"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/settings/l10n/sq.js b/apps/settings/l10n/sq.js
index cbde7b52295..5eddf794077 100644
--- a/apps/settings/l10n/sq.js
+++ b/apps/settings/l10n/sq.js
@@ -97,44 +97,9 @@ OC.L10N.register(
"Actions" : "Veprimet",
"No apps found for your version" : "S’u gjetën aplikacione për versionin tuaj",
"Group name" : "Emër grupi",
- "Type" : "Tipi",
- "Display Name" : "Trego Emrin",
- "Learn more" : "Mësoni më shumë",
- "Confirm" : "Konfirmo",
- "Cancel" : "Anuloje",
- "Description" : "Përshkrim",
- "View in store" : "Shiko në dyqan",
- "Visit website" : "Vizitoni sajtin",
- "Admin documentation" : "Dokumentim për përgjegjësit",
- "Developer documentation" : "Dokumentim për zhvillues",
- "Details" : "Detaje",
- "All" : "Krejt",
- "No results" : "Asnjë rezultat",
- "Update to {version}" : "Përditëso në {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një minimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një maksimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ky aplikacion s’mund të instalohet, ngaqë për të nuk plotësohen varësitë vijuese:",
- "Categories" : "Kategoritë",
- "Resources" : "Burimet",
- "Documentation" : "Dokumentacioni",
- "Report a bug" : "Njoftoni një të metë",
- "Request feature" : "Kërkoni një karakteristikë",
- "Ask questions or discuss" : "Pyesni ose diskutoni",
- "Rate" : "Vlerësoj",
- "Changelog" : "Katalogu i ndryshimeve",
- "Google Chrome for Android" : "Google Chrome për Android",
- "This session" : "Ky sesion",
- "Allow filesystem access" : "Lejo aksesin e sistemit të skedarëve",
- "Rename" : "Rename",
- "Revoke" : "Anulo",
- "Device" : "Pajisje",
- "Last activity" : "Aktiviteti i fundit",
- "Web, desktop and mobile clients currently logged in to your account." : "Klientë në rrjet, desktop dhe celular kanë hyrë aktualisht në llogarinë tuaj.",
- "Error while creating device token" : "Gabim gjatë krijimit të token-ëve të pajisjejeve",
- "App name" : "Emër aplikacioni",
- "Create new app password" : "Krijoni fjalëkalim aplikacioni të ri",
"Login" : "Hyrje",
"Password" : "Fjalëkalim",
+ "Password confirmation is required" : "Kërkohet konfirmimi i fjalëkalimit",
"Server-side encryption" : "Fshehtëzim më anë shërbyesi",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Enkriptimi nga ana e serverit bën të mundur enkriptimin e skedarëve të ngarkuar në këtë server. Kjo vjen me kufizime si një ndëshkim për performancën, prandaj e lejoni këtë vetëm nëse është e nevojshme.",
"Enable server-side encryption" : "Aktivizo fshehtëzim më anë të shërbyesit",
@@ -146,59 +111,34 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Kini parasysh që fshehtëzimi e rrit gjithnjë madhësinë e kartelës.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Është gjithmonë ide e mirë të krijohen kopjeruajtje të rregullta të të dhënave tuaja, në rast fshehtëzimi sigurohuni që bëni kopjeruajtje të kyçeve të fshehtëzimit, tok me të dhënat tuaja.",
"This is the final warning: Do you really want to enable encryption?" : "Ky është sinjalizimi përfundimtar: Doni vërtet të aktivizohet fshehtëzimi?",
+ "Cancel" : "Anuloje",
+ "Confirm" : "Konfirmo",
"Submit" : "Dërgo",
- "Remove group" : "Hiq grupin",
- "Current password" : "Fjalëkalimi i tanishëm",
- "New password" : "Fjalëkalimi i ri",
- "Change password" : "Ndrysho fjalëkalimin",
- "Picture provided by original account" : "Foto e prurë nga llogaria origjinale",
- "No email address set" : "S’është caktuar adresë email",
- "Help translate" : "Ndihmoni në përkthim",
- "Your phone number" : "Numri juaj i telefonit",
- "Your website" : "Website-i juaj",
- "Add" : "Shto",
- "Create" : "Krijo",
- "Change" : "Ndrysho",
- "Delete" : "Fshij",
- "Display name" : "Shfaq emrin",
- "Email" : "Email",
- "Quota" : "Kuota",
- "Language" : "Gjuhë",
- "Avatar" : "Avatari",
- "Group admin for" : "Administratori i grupit për",
- "Storage location" : "Vendndodhje Depozite",
- "Last login" : "Hyrja e fundit",
- "Account actions" : "Veprimet e llogarisë",
- "{size} used" : "{size} e përdorur",
- "Delete account" : "Fshij llogarinë",
- "Done" : "U bë",
- "Edit" : "Përpuno",
- "Show last login" : "Shfaq hyrjen e fundit",
- "Send email" : "Dërgo email",
- "Default quota" : "Kuota Parazgjedhje",
- "Adding your device …" : "Shtoni pajisjen tuaj ...",
- "Unnamed device" : "Paisje pa emër",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Si admin ju mund të rregulloni mirë sjelljen e ndarjes. Ju lutem shih dokumentacionin për më shumë informacion.",
- "Admins" : "Administratorë",
"Sending…" : "dërgim",
"Email sent" : "Email-i u dërgua",
"Location" : "Vendndodhje",
"Profile picture" : "Foto profili",
"About" : "Rreth ",
"Full name" : "Emër i plotë",
+ "Email" : "Email",
"Phone number" : "Numri i telefonit",
"Website" : "Faqe web-i",
+ "Language" : "Gjuhë",
"Your apps" : "Aplikacionet tuaja ",
"Active apps" : "Aplikacionet aktive",
"Disabled apps" : "Aplikacionet pa aftësi ",
"Updates" : "Përditësime",
"App bundles" : "Pako e aplikacionit ",
"Hide" : "Fshihe",
+ "Update to {version}" : "Përditëso në {version}",
"Disable" : "Çaktivizoje",
+ "{size} used" : "{size} e përdorur",
"Unknown" : "I panjohur",
"Never" : "Kurrë",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacioni është aktivizuar, por lyp të përditësohet. Do të ridrejtoheni te faqja e përditësimeve brenda 5 sekondash.",
"Error" : "Gabim",
+ "Default quota" : "Kuota Parazgjedhje",
+ "Documentation" : "Dokumentacioni",
"Forum" : "Forum",
"SSL" : "SSL",
"Open documentation" : "Hapni dokumentimin",
@@ -213,16 +153,12 @@ OC.L10N.register(
"Credentials" : "Kredenciale",
"SMTP Password" : "Fjalëkalim SMTP",
"Save" : "Ruaj",
+ "Send email" : "Dërgo email",
"Security & setup warnings" : "Sinjalizime sigurie & rregullimi",
"All checks passed." : "I kaloi krejt kontrollet.",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Zhvilluar nga {communityopen}komuniteti Nextcloud {linkclose}, {githubopen}kodi i hapur{linkclose} iështë licensuar sipar {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Pëlqeni faqen tonë në Facebook",
"Check out our blog" : "Shikoni blogun tonë",
- "Subscribe to our newsletter" : "Abonohu në gazeten tonë",
- "New user" : "Përdorues i ri",
- "Username" : "Emër përdoruesi",
- "User backend" : "Program klient i përdoruesit",
- "Name your device" : "Emërtoni pajisjen tuaj",
- "Follow us on Twitter" : "Na ndiqni në Twitter"
+ "Subscribe to our newsletter" : "Abonohu në gazeten tonë"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/sq.json b/apps/settings/l10n/sq.json
index ba32ae4e6ce..65e0c93b1b0 100644
--- a/apps/settings/l10n/sq.json
+++ b/apps/settings/l10n/sq.json
@@ -95,44 +95,9 @@
"Actions" : "Veprimet",
"No apps found for your version" : "S’u gjetën aplikacione për versionin tuaj",
"Group name" : "Emër grupi",
- "Type" : "Tipi",
- "Display Name" : "Trego Emrin",
- "Learn more" : "Mësoni më shumë",
- "Confirm" : "Konfirmo",
- "Cancel" : "Anuloje",
- "Description" : "Përshkrim",
- "View in store" : "Shiko në dyqan",
- "Visit website" : "Vizitoni sajtin",
- "Admin documentation" : "Dokumentim për përgjegjësit",
- "Developer documentation" : "Dokumentim për zhvillues",
- "Details" : "Detaje",
- "All" : "Krejt",
- "No results" : "Asnjë rezultat",
- "Update to {version}" : "Përditëso në {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një minimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një maksimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ky aplikacion s’mund të instalohet, ngaqë për të nuk plotësohen varësitë vijuese:",
- "Categories" : "Kategoritë",
- "Resources" : "Burimet",
- "Documentation" : "Dokumentacioni",
- "Report a bug" : "Njoftoni një të metë",
- "Request feature" : "Kërkoni një karakteristikë",
- "Ask questions or discuss" : "Pyesni ose diskutoni",
- "Rate" : "Vlerësoj",
- "Changelog" : "Katalogu i ndryshimeve",
- "Google Chrome for Android" : "Google Chrome për Android",
- "This session" : "Ky sesion",
- "Allow filesystem access" : "Lejo aksesin e sistemit të skedarëve",
- "Rename" : "Rename",
- "Revoke" : "Anulo",
- "Device" : "Pajisje",
- "Last activity" : "Aktiviteti i fundit",
- "Web, desktop and mobile clients currently logged in to your account." : "Klientë në rrjet, desktop dhe celular kanë hyrë aktualisht në llogarinë tuaj.",
- "Error while creating device token" : "Gabim gjatë krijimit të token-ëve të pajisjejeve",
- "App name" : "Emër aplikacioni",
- "Create new app password" : "Krijoni fjalëkalim aplikacioni të ri",
"Login" : "Hyrje",
"Password" : "Fjalëkalim",
+ "Password confirmation is required" : "Kërkohet konfirmimi i fjalëkalimit",
"Server-side encryption" : "Fshehtëzim më anë shërbyesi",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Enkriptimi nga ana e serverit bën të mundur enkriptimin e skedarëve të ngarkuar në këtë server. Kjo vjen me kufizime si një ndëshkim për performancën, prandaj e lejoni këtë vetëm nëse është e nevojshme.",
"Enable server-side encryption" : "Aktivizo fshehtëzim më anë të shërbyesit",
@@ -144,59 +109,34 @@
"Be aware that encryption always increases the file size." : "Kini parasysh që fshehtëzimi e rrit gjithnjë madhësinë e kartelës.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Është gjithmonë ide e mirë të krijohen kopjeruajtje të rregullta të të dhënave tuaja, në rast fshehtëzimi sigurohuni që bëni kopjeruajtje të kyçeve të fshehtëzimit, tok me të dhënat tuaja.",
"This is the final warning: Do you really want to enable encryption?" : "Ky është sinjalizimi përfundimtar: Doni vërtet të aktivizohet fshehtëzimi?",
+ "Cancel" : "Anuloje",
+ "Confirm" : "Konfirmo",
"Submit" : "Dërgo",
- "Remove group" : "Hiq grupin",
- "Current password" : "Fjalëkalimi i tanishëm",
- "New password" : "Fjalëkalimi i ri",
- "Change password" : "Ndrysho fjalëkalimin",
- "Picture provided by original account" : "Foto e prurë nga llogaria origjinale",
- "No email address set" : "S’është caktuar adresë email",
- "Help translate" : "Ndihmoni në përkthim",
- "Your phone number" : "Numri juaj i telefonit",
- "Your website" : "Website-i juaj",
- "Add" : "Shto",
- "Create" : "Krijo",
- "Change" : "Ndrysho",
- "Delete" : "Fshij",
- "Display name" : "Shfaq emrin",
- "Email" : "Email",
- "Quota" : "Kuota",
- "Language" : "Gjuhë",
- "Avatar" : "Avatari",
- "Group admin for" : "Administratori i grupit për",
- "Storage location" : "Vendndodhje Depozite",
- "Last login" : "Hyrja e fundit",
- "Account actions" : "Veprimet e llogarisë",
- "{size} used" : "{size} e përdorur",
- "Delete account" : "Fshij llogarinë",
- "Done" : "U bë",
- "Edit" : "Përpuno",
- "Show last login" : "Shfaq hyrjen e fundit",
- "Send email" : "Dërgo email",
- "Default quota" : "Kuota Parazgjedhje",
- "Adding your device …" : "Shtoni pajisjen tuaj ...",
- "Unnamed device" : "Paisje pa emër",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Si admin ju mund të rregulloni mirë sjelljen e ndarjes. Ju lutem shih dokumentacionin për më shumë informacion.",
- "Admins" : "Administratorë",
"Sending…" : "dërgim",
"Email sent" : "Email-i u dërgua",
"Location" : "Vendndodhje",
"Profile picture" : "Foto profili",
"About" : "Rreth ",
"Full name" : "Emër i plotë",
+ "Email" : "Email",
"Phone number" : "Numri i telefonit",
"Website" : "Faqe web-i",
+ "Language" : "Gjuhë",
"Your apps" : "Aplikacionet tuaja ",
"Active apps" : "Aplikacionet aktive",
"Disabled apps" : "Aplikacionet pa aftësi ",
"Updates" : "Përditësime",
"App bundles" : "Pako e aplikacionit ",
"Hide" : "Fshihe",
+ "Update to {version}" : "Përditëso në {version}",
"Disable" : "Çaktivizoje",
+ "{size} used" : "{size} e përdorur",
"Unknown" : "I panjohur",
"Never" : "Kurrë",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacioni është aktivizuar, por lyp të përditësohet. Do të ridrejtoheni te faqja e përditësimeve brenda 5 sekondash.",
"Error" : "Gabim",
+ "Default quota" : "Kuota Parazgjedhje",
+ "Documentation" : "Dokumentacioni",
"Forum" : "Forum",
"SSL" : "SSL",
"Open documentation" : "Hapni dokumentimin",
@@ -211,16 +151,12 @@
"Credentials" : "Kredenciale",
"SMTP Password" : "Fjalëkalim SMTP",
"Save" : "Ruaj",
+ "Send email" : "Dërgo email",
"Security & setup warnings" : "Sinjalizime sigurie & rregullimi",
"All checks passed." : "I kaloi krejt kontrollet.",
"Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Zhvilluar nga {communityopen}komuniteti Nextcloud {linkclose}, {githubopen}kodi i hapur{linkclose} iështë licensuar sipar {licenseopen}AGPL{linkclose}.",
"Like our Facebook page" : "Pëlqeni faqen tonë në Facebook",
"Check out our blog" : "Shikoni blogun tonë",
- "Subscribe to our newsletter" : "Abonohu në gazeten tonë",
- "New user" : "Përdorues i ri",
- "Username" : "Emër përdoruesi",
- "User backend" : "Program klient i përdoruesit",
- "Name your device" : "Emërtoni pajisjen tuaj",
- "Follow us on Twitter" : "Na ndiqni në Twitter"
+ "Subscribe to our newsletter" : "Abonohu në gazeten tonë"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/sr.js b/apps/settings/l10n/sr.js
index 467b9c6d4ee..398ac60df20 100644
--- a/apps/settings/l10n/sr.js
+++ b/apps/settings/l10n/sr.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP заглавља",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- HTTP заглавље `%1$s` није подешено на `%2$s`. Неке функције можда неће радити исправно, па се препоручује да га поставите на одговарајућу вредност.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP заглавље `%1$s` није подешено на `%2$s`. Ово је потенцијални безбедносни ризик или може да угрози приватност, па се препоручује да га поставите на одговарајућу вредност.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP заглавље `%1$s` не садржи `%2$s`. Ово је потенцијални безбедносни ризик или може да угрози приватност, па се препоручује да га поставите на одговарајућу вредност.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- HTTP заглавље `%1$s` није постављено на `%2$s`, `%3$s`, `%4$s`, `%5$s` или `%6$s`. Услед тога могу процурити информације у упућивачу. Погледајте {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- HTTP заглавље `Strict-Transport-Security` није постављено на барем `%d` секунди (тренутна вредност је: `%d`). Препорука за унапређену безбедност је да се користи дуготрајна HSTS полиса.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP заглавље `Strict-Transport-Security` није исправно постављено: `%s`. Препорука за унапређену безбедност је да укључите HSTS.",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "Архитектура",
"64-bit" : "64-бита",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Изгледа да покрећете 32-битну PHP верзију. За правилно извршавање Nextcloud захтева 64-битну верзију. Молимо вас да ажурирате свој оперативни систем и PHP на 64-бита!",
+ "Task Processing pickup speed" : "Брзина прихватања Обраде задатака",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Нема ниједног заказаног задатка у последњих %n сат.","Нема ниједног заказаног задатка у последњих %n сата.","Нема ниједног заказаног задатка у последњих %n сати."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Брзина прихватања задатака је била у реду током последњег %n сата.","Брзина прихватања задатака је била у реду током последња %n сата.","Брзина прихватања задатака је била у реду током последњих %n сати."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Брзина прихватања задатака је била спора током последњег %n сата. За многе задатке је требало више од 4 минута да се прихвате. Размислите о подешавању радник-процеса за обраду задатака у позадини.","Брзина прихватања задатака је била спора током последња %n сата. За многе задатке је требало више од 4 минута да се прихвате. Размислите о подешавању радник-процеса за обраду задатака у позадини.","Брзина прихватања задатака је била спора током последњих %n сати. За многе задатке је требало више од 4 минута да се прихвате. Размислите о подешавању радник-процеса за обраду задатака у позадини."],
"Temporary space available" : "Доступан привремени простор",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Грешка приликом провере привремене PHP путање - није била исправно постављена на директоријум. Враћена вредност је: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Искључена је PHP функција „disk_free_space”, па не може да се провери довољна количина слободног простора у привременим директоријумима.",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Не може да се учита садржај одељка из продавнице апликација.",
"Loading" : "Учитавам",
"Fetching the latest news…" : "Преузимање најновијих вести",
- "Carousel" : "Карусел",
- "Previous slide" : "Претходни слајд",
- "Next slide" : "Наредни слајд",
- "Choose slide to display" : "Изаберите слајд за приказ",
- "{index} of {total}" : "{index} од {total}",
- "Daemon" : "Сервис",
- "Deploy Daemon" : "Даемон за постављање",
- "Type" : "Тип",
- "Display Name" : "Име за приказ",
- "GPUs support" : "Подршка за GPU",
- "Compute device" : "Рачунарски уређај",
- "Advanced deploy options" : "Напредне опције постављања",
- "Edit ExApp deploy options before installation" : "Уреди ExApp опције постављања пре инсталације",
- "Configured ExApp deploy options. Can be set only during installation" : "Конфигурисане су ExApp опције постављања. Може да се постави само током инсталације",
- "Learn more" : "Сазнајте више",
- "Environment variables" : "Променљиве окружења",
- "ExApp container environment variables" : "Променљиве окружења ExApp контејнера",
- "No environment variables defined" : "Није дефинисана ниједна променљиве окружења",
- "Mounts" : "Монтирања",
- "Define host folder mounts to bind to the ExApp container" : "Дефинише монтирања фолдера на хосту која се везују са ExApp контејнером",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Мора да постоји на хосту даемона постављања пре него што се инсталира ExApp",
- "Host path" : "Путања на хосту",
- "Container path" : "Путања контејнера",
- "Read-only" : "Само-за-читање",
- "Remove mount" : "Уклони монтирање",
- "New mount" : "Ново монтирање",
- "Enter path to host folder" : "Унесите путању до фолдера на хосту",
- "Enter path to container folder" : "Унесите путању до фолдера са контејнером",
- "Toggle read-only mode" : "Укључи/искључи режим само-за-читање",
- "Confirm adding new mount" : "Потврди додавање новог монтирања",
- "Confirm" : "Потврди",
- "Cancel adding mount" : "Откажи додавање монтирања",
- "Cancel" : "Откажи",
- "Add mount" : "Додај монтирање",
- "ExApp container mounts" : "Монтирања ExApp контејнера",
- "No mounts defined" : "Није дефинисано ниједно монтирање",
- "Description" : "Опис",
- "View in store" : "Погледај у продавници",
- "Visit website" : "Посети веб сајт",
- "Usage documentation" : "Документација о употреби",
- "Admin documentation" : "Администраторска документација",
- "Developer documentation" : "Програмерска документација",
- "Details" : "Детаљи",
- "All" : "Све",
- "Limit app usage to groups" : "Ограничи коришћење апликације на групе",
- "No results" : "Нема резултата",
- "Update to {version}" : "Ажурирај на верзију {version}",
- "Deploy options" : "Опције постављања",
- "Default Deploy daemon is not accessible" : "Није доступан подразумевани даемон за постављање ",
- "Delete data on remove" : "Обриши податке приликом уклањања",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ова апликација нема дефинисану минималну верзију Некстклауда на којој ради. Ово ће у будућности постати грешка.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ова апликација нема дефинисану максималну верзију Некстклауда на којој ради. Ово ће у будућности постати грешка.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Апликација се не може инсталирати јер следеће зависности нису испуњене:",
- "Latest updated" : "Последњи пут ажурирано",
- "Author" : "Аутор",
- "Categories" : "Категорије",
- "Resources" : "Ресурси",
- "Documentation" : "Документација",
- "Interact" : "Остварите узајамно деловање",
- "Report a bug" : "Пријави проблем",
- "Request feature" : "Затражи функционалност",
- "Ask questions or discuss" : "Питајте питање или дискутујте",
- "Rate the app" : "Оцените апликацију",
- "Rate" : "Оцени",
- "Changelog" : "Дневник измена",
- "Google Chrome for Android" : "Google Chrome за Андроид",
- "{productName} iOS app" : "{productName} iOS апликација",
- "{productName} Android app" : "{productName} Android апликација",
- "{productName} Talk for iOS" : "{productName} Talk за iOS",
- "{productName} Talk for Android" : "{productName} Talk за Android",
- "Sync client" : "Клијент за синхронизовање",
- "This session" : "Ова сесија",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Назив уређаја",
- "Cancel renaming" : "Откажи промену имена",
- "Save new name" : "Сачувај ново име",
- "Marked for remote wipe" : "Означено за удаљено брисање",
- "Device settings" : "Подешавања уређаја",
- "Allow filesystem access" : "Дозволи приступ фајловима",
- "Rename" : "Преименуј",
- "Revoke" : "Повуци",
- "Wipe device" : "Очисти уређај",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Опозив овог жетона може да спречи брисање вашег уређаја у случају да брисање још увек није започето.",
- "Device" : "Уређај",
- "Last activity" : "Последња активност",
- "Devices & sessions" : "Уређаји & сесије",
- "Web, desktop and mobile clients currently logged in to your account." : "Веб, рачунарски и мобилни клијенти тренутно пријављени на Ваш налог.",
- "Error while creating device token" : "Грешка при прављењу токена на уређају",
- "App name" : "Назив апликације",
- "Create new app password" : "Направите нову лозинку апликације",
"App password copied!" : "Копирана је лозинка апликације!",
"Copy app password" : "Копирај лозинку апликације",
"Login name copied!" : "Копирано име за пријаву!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Подразумевано подешавање профила не може да се ажурира",
"Profile" : "Профил",
"Enable or disable profile by default for new accounts." : "Профил нових налога се подразумевано укључује или искључује.",
+ "Password confirmation is required" : "Потребна је потврда лозинке",
"Failed to save setting" : "Није успело чување подешавања",
"{app}'s declarative setting field: {name}" : "поље декларативног подешавања апликације {app}: {name}",
"Unable to update server side encryption config" : "Конфигурација енкрипције на страни сервера не може да се ажурира",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Увек је паметно да правите редовне резервне копије података. У случају када су подаци шифровани, онда поред њих и резервне копије кључева за шифровања.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Погледајте админ документацију у вези са ручним шифровањем постојећих фајлова.",
"This is the final warning: Do you really want to enable encryption?" : "Ово је последње упозорење: Да ли стварно желите да укључите шифровање?",
- "Failed to remove group \"{group}\"" : "Није успело уклањање групе „{group}”",
+ "Failed to delete group \"{group}\"" : "Није успело брисање групе „{group}”",
"Please confirm the group removal" : "Молимо вас да потврдите уклањање групе",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Управо ћете уклонити групу „{group}”. Налози се НЕЋЕ обрисати.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Управо ћете обрисати групу „{group}”. Налози се НЕЋЕ обрисати.",
+ "Cancel" : "Откажи",
+ "Confirm" : "Потврди",
"Submit" : "Пошаљи",
"Rename group" : "Промени име групе",
- "Remove group" : "Уклони групу",
- "Current password" : "Тренутна лозинка",
- "New password" : "Нова лозинка",
- "Change password" : "Измени лозинку",
- "Choose your profile picture" : "Изаберите слику за свој профил",
- "Please select a valid png or jpg file" : "Молимо вас изаберите исправан png или jpg фајл",
- "Error setting profile picture" : "Грешка приликом постављања слике профила",
- "Error cropping profile picture" : "Грешка приликом опсецања слике профила",
- "Error saving profile picture" : "Грешка приликом чувања слике профила",
- "Error removing profile picture" : "Грешка приликом уклањања слике профила",
- "Your profile picture" : "Ваша слика профила",
- "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" : "Слика оригиналног налога",
- "Set as profile picture" : "Постави као слику профила",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Молимо вас да имате на уму да може проћи до 24 часа док се слика вашег профила не ажурира на свим местима.",
- "Your biography. Markdown is supported." : "Ваша биографија. Подржава се употреба Markdown означавања.",
- "Unable to update date of birth" : "Није успело ажурирање датума рођења",
- "Enter your date of birth" : "Унесите датум свог рођења",
- "You are using {s}{usage}{/s}" : "Користите {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Користите {s}{usage}{/s} од {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Члан сте следећих група:",
- "Your full name" : "Ваше пуно име",
- "Email options" : "Опције за и-мејл",
- "Options for additional email address {index}" : "Опције за додатну и-мејл адресу {index}",
- "Remove primary email" : "Уклони примарни и-мејл",
- "Delete email" : "Обриши и-мејл",
- "This address is not confirmed" : "Ова адреса није потврђена",
- "Unset as primary email" : "Постави да није примарни и-мејл",
- "Set as primary email" : "Постави као примарни и-мејл",
- "Additional email address {index}" : "Додатна и-мејл адреса {index}",
- "Unable to delete primary email address" : "Примарна и-мејл адреса не може да се обрише",
- "Unable to update primary email address" : "Примарна и-мејл адреса није могла да се ажурира",
- "Unable to add additional email address" : "Не може да се дода додатна и-мејл адреса",
- "Unable to update additional email address" : "Додатна и-мејл адреса није могла да се ажурира",
- "Unable to delete additional email address" : "Додатна и-мејл адреса не може да се обрише",
- "Primary email for password reset and notifications" : "Примарни и-мејл за ресетовање лозинке и обавештења",
- "No email address set" : "Није постављена адреса е-поште",
- "Your handle" : "Ваша ручка",
- "Derived from your locale ({weekDayName})" : "Закључено из вашег локале подешавања ({weekDayName})",
- "Unable to update first day of week" : "Није успело ажурирање првог дана недеље",
- "Day to use as the first day of week" : "Дан који се користи као први дан недеље",
- "Your headline" : "Ваша насловна линија",
- "Unable to update language" : "Језик није могао да се ажурира",
- "Languages" : "Језици",
- "Help translate" : " Помозите у превођењу",
- "No language set" : "Ниједан језик није постављен",
- "Unable to update locale" : "Локалитет није могао да се ажурира",
- "Locales" : "Локалитети",
- "Week starts on {firstDayOfWeek}" : "Недеља почиње у {firstDayOfWeek}",
- "No locale set" : "Није постављен локалитет",
- "Your city" : "Ваш град",
- "Your organisation" : "Ваша организација",
- "Your phone number" : "Ваш број телефона",
- "Edit your Profile visibility" : "Уредите видљивост вашег профила",
- "Unable to update profile enabled state" : "Није могло да се ажурира стање профила",
- "Enable profile" : "Укључи профил",
- "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." : "На вашем провилу се поштује рестриктивније подешавање било видљивости, било опсега важења. На пример, ако је видљивост постављена на „Прикажи свима”, а опсег важења на „Приватан”, поштује се „Приватан”.",
- "Unable to update visibility of {displayId}" : "Није успело ажурирање видљивости {displayId}",
- "she/her" : "она/њен",
- "he/him" : "он/њему",
- "they/them" : "они/њима",
- "Your role" : "Ваша улога",
- "Your X (formerly Twitter) handle" : "Ваша X (бивши Twitter) ручка",
- "Your website" : "Ваш веб сајт",
- "Invalid value" : "Неисправна вредност",
- "Unable to update {property}" : "Није успело ажурирање {property}",
- "No {property} set" : "{property} није постављено",
- "Change scope level of {property}, current scope is {scope}" : "Измена опсега важења {property}, тренутни опсег важења је {scope}",
- "Unable to update federation scope of the primary {property}" : "Није успело ажурирање опсега важења федерације примарне {property}",
- "Unable to update federation scope of additional {property}" : "Није успело ажурирање опсега важења федерације додатне {property}",
- "Add additional email" : "Додај додатни и-мејл",
- "Add" : "Додај",
- "Create" : "Направи",
- "Change" : "Измени",
- "Delete" : "Обриши",
- "Reshare" : "Дели даље",
- "Default language" : "Подразумевани језик",
- "Common languages" : "Најкоришћенији језици",
- "Other languages" : "Остали језици",
- "Password change is disabled because the master key is disabled" : "Промена лозинке је искључена пошто је главни кључ искључен",
- "No accounts" : "Нема налога",
- "Loading accounts …" : "Учитавање налога",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Листа налога. Услед разлога везаних за перформансе, ова листа се не приказује у потпуности. Налози ће се приказивати како се будете кретали кроз листу.",
- "Manager" : "Менаџер",
- "Set line manager" : "Избор надређеног менаџера",
- "Account name will be autogenerated" : "Име налога ће бити генерисано аутоматски",
- "Account name (required)" : "Име налога (обавезно)",
- "Failed to search groups" : "Није успело претраживање група",
- "New account" : "Нови налог",
- "Display name" : "Име за приказ",
- "Either password or email is required" : "Неопходна је или лозинка или и-мејл",
- "Password (required)" : "Лозинка (обавезно)",
- "Email (required)" : "И-мејл (обавезно)",
- "Email" : "Е-пошта",
- "Member of the following groups (required)" : "Члан следећих група (неопходно)",
- "Member of the following groups" : "Члан следећих група",
- "Set account groups" : "Постави групе налога",
- "Admin of the following groups" : "Админ следећих група",
- "Set account as admin for …" : "Постави налог као администратора за",
- "Quota" : "Квота",
- "Set account quota" : "Постави квоту за налог",
- "Language" : "Језик",
- "Set default language" : "Постави подразумевани језик",
- "Add new account" : "Додај нови налог",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} налог…","{userCount} налога…","{userCount} налога…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} налог","{userCount} налога","{userCount} налога"],
- "Total rows summary" : "Резиме укупног броја редова",
- "Scroll to load more rows" : "Скролујте да се учита још редова",
- "Password or insufficient permissions message" : "Порука о лозинки или недовољним дозволама",
- "Avatar" : "Аватар",
- "Account name" : "Име рачуна",
- "Group admin for" : "Администратор групе за",
- "Account backend" : "Позадински механизам за налоге",
- "Storage location" : "Локација складишта",
- "First login" : "Прва пријава",
- "Last login" : "Последња пријава",
- "Account actions" : "Акције налога",
- "{size} used" : "{size} искоришћено",
- "Delete account" : "Обриши рачун",
- "Disconnect all devices and delete local data" : "Раскини везу са свим уређајима и обриши локалне податке",
- "Disable account" : "Искључи налог",
- "Enable account" : "Укључи налог",
- "Resend welcome email" : "Поново пошаљи е-пошту добродошлице",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "У случају изгубљеног уређаја или напуштања организације, овим се могу удаљено обрисати Некстклауд подаци са свих уређаја повезаних са налогом {userid}. Ради само ако је уређај повезан на интернет.",
- "Remote wipe of devices" : "Удаљено брисање уређаја",
- "Wipe {userid}'s devices" : "Обриши уређај од корисника {userid}",
- "Wiped {userid}'s devices" : "Обрисани уређаји корисника {userid}",
- "Failed to load groups with details" : "Није успело учитавање група са детаљима",
- "Failed to load sub admin groups with details" : "Није успело учитавање под админ група са детаљима",
- "Failed to update line manager" : "Није успело ажурирање надређеног менаџера",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Комплетно брисање уређаја са налога корисника {userid} укључујући све личне фајлове, апликативне податке, итд.",
- "Account deletion" : "Брисање налога",
- "Delete {userid}'s account" : "Обриши налог корисника {userid}",
- "Display name was successfully changed" : "Име за приказ је успешно промењено",
- "Password can't be empty" : "Лозинка не може да буде празна",
- "Password was successfully changed" : "Лозинка је усшешно промењена",
- "Email can't be empty" : "И-мејл не може да буде празан",
- "Email was successfully changed" : "И-мејл је успешно промењен",
- "Welcome mail sent!" : "Е-пошта добродошлице послата!",
- "Loading account …" : "Налог се учитава…",
- "Change display name" : "Промени име за приказ",
- "Set new password" : "Постави нову лозинку",
- "You do not have permissions to see the details of this account" : "Немате дозволе да видите детаље о овом налогу",
- "Set new email address" : "Постави нову адресу е-поште",
- "Add account to group" : "Додај налог у групу",
- "Set account as admin for" : "Постави налог као администратора за",
- "Select account quota" : "Одаберите квоту за налог",
- "Set the language" : "Постави језик",
- "Toggle account actions menu" : "Укључи/искључи мени са акцијама налога",
- "Done" : "Завршено",
- "Edit" : "Измени",
- "Account management settings" : "Подешавања управљања налозима",
- "Visibility" : "Видљивост",
- "Show language" : "Прикажи језик",
- "Show account backend" : "Прикажи позадински механизам за налоге",
- "Show storage path" : "Прикажи путању до складишта",
- "Show first login" : "Прикажи прву пријаву",
- "Show last login" : "Прикажи последњу пријаву",
- "Sorting" : "Сортирање",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Конфигурација система форсира сортирање група по имену. Ово такође искључује приказ броја чланова.",
- "Group list sorting" : "Сортирање листе група",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Из разлога перформанси, сортирање се примењује само на тренутно учитане групе. Групе ће се учитавати како се крећете кроз листу.",
- "By member count" : "По броју чланова",
- "By name" : "По имену",
- "Send email" : "Пошаљи е-пошту",
- "Send welcome email to new accounts" : "Пошаљи и-мејл добродошлице новим налозима",
- "Defaults" : "Пордазумеване",
- "Default quota" : "Подразумевана квота",
- "Select default quota" : "Одаберите подразумевану квоту",
- "Server error while trying to complete WebAuthn device registration" : "Серверска грешка при завршетку регистрације WebAuthn уређаја",
- "Passwordless authentication requires a secure connection." : "Пријављивање без лозинке захтева безбедну конекцију.",
- "Add WebAuthn device" : "Додајте WebAuthn уређај",
- "Please authorize your WebAuthn device." : "Ауторизујте Ваш WebAuthn уређај.",
- "Adding your device …" : "Додајем Ваш уређај…",
- "Unnamed device" : "Неименовани уређај",
- "Passwordless Authentication" : "Провера идентитета без лозинке",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Подесите налог за пријављивање без лозинке користећи FIDO2 стандард.",
- "No devices configured." : "Ниједан уређај није подешен.",
- "The following devices are configured for your account:" : "Следећи уређаји су подешени за Ваш налог:",
- "Your browser does not support WebAuthn." : "Ваш веб читач не подржава WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Као администратор, можете фино подешавати понашања дељења. Погледајте документацију за више информација.",
- "You need to enable the File sharing App." : "Морате да укључите Апликацију за дељење фајла",
- "App Store" : "Продавница апликације",
- "Loading app list" : "Листа апликација се учитава",
- "Loading categories" : "Учитавају се категорије",
- "Developer documentation ↗" : "Програмерска документација ↗",
- "Version {version}, {license}-licensed" : "Верзија {version}, {license}-лиценцирано",
- "Version {version}" : "Верзија {version}",
- "All accounts" : "Сви налози",
- "Admins" : "Администратори",
- "Account group: {group}" : "Група налога: {group}",
- "Account management" : "Управљање налозима",
+ "Delete group" : "Брисање групе",
"Sending…" : "Шаљем…",
"Email sent" : "Порука је послата",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Из разлога перформанси, када укључите шифровање само на Nextcloud серверу, шифрују се нови и измењени фајлови.",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "Датум рођења",
"Full name" : "Пуно име",
"Additional email" : "Додатни и-мејл",
+ "Email" : "Е-пошта",
"Fediverse (e.g. Mastodon)" : "Fediverse (нпр. Mastodon)",
"Headline" : "Наслов",
"Organisation" : "Организација",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (бивши Twitter)",
"Website" : "Веб сајт",
"Profile visibility" : "Видљивост профила",
+ "Language" : "Језик",
"Locale" : "Локалитет",
"First day of week" : "Први дан недеље",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Није доступно јер је ова особина потребна за основну функционалност укључујући дељење фајла и позивнице календара",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Прикажи само пријављеним налозима",
"Hide" : "Сакриј",
"Manually installed apps cannot be updated" : "Ручно инсталиране апликације не могу да се ажурирају",
+ "Update to {version}" : "Ажурирај на верзију {version}",
"{progress}% Deploying …" : "{progress}% Поставља се",
"{progress}% Initializing …" : "{progress}% Иницијализује се…",
"Health checking" : "Провера здравља",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Дозволи нетестиране апликације",
"The app will be downloaded from the App Store" : "Апликација ће се преузети са Продавнице апликација",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ова апликација није означена као компатибилна са Вашом верзијом Некстклауда. Ако наставите, моћи ћете свеједно да инсталирате апликацију. Врло је могуће да апликација неће радити како је планирано.",
+ "{size} used" : "{size} искоришћено",
"Unknown" : "Непознато",
"Never" : "Никад",
"Could not register device: Network error" : "Не може да се региструје уређај: мрежна грешка",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Није могло да се постави соритирање групе",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Са ваше мреже долази превише захтева. Покушајте поново касније или контактирајте администратора уколико је ово нека грешка.",
"Error" : "Грешка",
+ "Default quota" : "Подразумевана квота",
"Account documentation" : "Документација налога",
"Administration documentation" : "Администраторска документација",
+ "Documentation" : "Документација",
"Forum" : "Форум",
"Nextcloud help & privacy resources" : "Nextcloud ресурси помоћи и приватности",
"General documentation" : "Општа документација",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP лозинка",
"Save" : "Сачувај",
"Test and verify email settings" : "Тестирај и потврди подешавања и-мејла",
+ "Send email" : "Пошаљи е-пошту",
"Security & setup warnings" : "Упозорења за безбедност и поставке",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Због безбедности и перформанси Ваше инстанце сервера, важно је да је све подешено исправно. Да бисмо Вам помогли у томе, радићемо неке аутоматске провере. Погледајте увезану документацију за више информација.",
"All checks passed." : "Све провере успешно прошле.",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Поред лозинке, користите и други фактор да повећате безбедност Вашег налога.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ако за повезивање са Nextcloud користите апликације треће стране, обезбедите да се лозинка сваке апликације креира и подеси пре него што се укључи двофакторска аутентификација.",
"Logged in account must be a subadmin" : "Пријављени налог мора бити подадминистратор",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Ако желите да се ова провера изврши, морате обезбедити да ваш веб сервер може да се повеже на самог себе. То значи да мора бити у стању да разреши и да се повеже барем на један од својих `trusted_domains` или `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "У табели „%s” недостаје необавезни индекс „%s”.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "У бази недостају поједини индекси. Због тога што додавање индекса на великим табелама може доста да потраје, индекси се не додају аутоматски. Покретањем „occ db:add-missing-indices“, индекси који недостају ће бити додати ручно док је инстанца покренута. Једном када су индекси додати, упити над тим табелама ће обично бити много бржи.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Ако желите да се ова провера изврши, морате обезбедити да ваш веб сервер може да се повеже на самог себе. То значи да мора бити у стању да разреши и да се повеже барем на један од својих `trusted_domains` или `overwrite.cli.url`. Ова грешка може да буде резултат DNS неподударања на страни сервера или одлазно правило заштитног зида.",
"File locking" : "Закључавање фајла",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Закључавање фајла по трансакцијама је искључено, то може да доведе до проблема са стањима утркивања. Укључите „filelocking.enabled” у config.php да спречите ове проблеме.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Није могла да се провери JavaScript подршка преко било ког од ваших `trusted_domains` нити преко `overwrite.cli.url`. То је можда услед DNS неслагања са стране сервера или одлазно правило заштитног зида. Молимо вас да ручно проверите да ли ваш сервер служи `.mjs` фајлове користећи JavaScript MIME тип.",
"The PHP memory limit is below the recommended value of %s." : "Ограничење PHP меморије је испод препоручене вредности од %s.",
"for WebAuthn passwordless login" : "за WebAuthn пријаву без лозинке",
"for WebAuthn passwordless login, and SFTP storage" : "за WebAuthn пријаву без лозинке и за SFTP складиште",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Тренутно изврешавате %s. PHP 8.0 је сада застарео у Nextcloud 27. Nextcloud 28 може да захтева барем PHP 8.1. Молимо вас да што је пре могуће извршите ажурирање на једну од званично подржаних PHP верзија које обезбеђује PHP Група.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Користи се MariaDB верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају MariaDB 10.2 или новију.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Користи се MySQL верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају MySQL 8.0 или MariaDB 10.2 или новију.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Користи се PostgreSQL верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају PostgreSQL 9.6 или новији.",
- "Speech-To-Text" : "Говор-у-текст",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Говор-у-текст могу да имплементирају разне апликације. Овде можете да подесите која ће се користити.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ниједна од ваших тренутно инсталираних апликација не пружа услуагу претварања Говора-у-текст",
- "None of your currently installed apps provide Text processing functionality" : "Ниједна од ваших тренутно инсталираних апликација не пружа функционалност обраде текста",
- "Set default expiration date for shares" : "Постави подразумевано време истека дељења",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Омогући аутоматско довршавање корисничког имена у дијалогу дељења и дозволи приступ системском адресару",
- "Your biography" : "Ваша биографија",
- "You are using <strong>{usage}</strong>" : "Користите <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Користите <strong>{usage}</strong> од <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Постави менаџера корисника",
- "Username will be autogenerated" : "Корисничко име ће бити генерисано аутоматски",
- "Username (required)" : "Корисничко име (обавезно)",
- "New user" : "Нови корисник",
- "Groups (required)" : "Групе (обавезно)",
- "Set user groups" : "Постављање група корисника",
- "Administered groups" : "Администриране групе",
- "Set user as admin for …" : "Постави корисника као администратора за...",
- "Set user quota" : "Постави квоту корисника",
- "Add new user" : "Додај новог корисника",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} корисник…","{userCount} корисника…","{userCount} корисника…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} корисник","{userCount} корисника","{userCount} корисника"],
- "Loading users …" : "Учитавају се корисници...",
- "Username" : "Корисничко име",
- "User backend" : "Позадина за кориснике",
- "User actions" : "Корисникове акције",
- "Add user to group" : "Додај корисника у групу",
- "Server error while trying to add WebAuthn device" : "Серверска грешка при додавању WebAuthn уређаја",
- "Name your device" : "Име Вашег уређаја",
- "Active accounts" : "Активни налози",
- "Follow us on Twitter" : "Пратите нас на Твитеру",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Ако желите да се ова провера изврши, морате обезбедити да ваш веб сервер може да се повеже на самог себе. То значи да мора бити у стању да разреши и да се повеже барем на један од својих `trusted_domains` или `overwrite.cli.url`. Ова грешка може да буде резултат DNS неподударања на страни сервера или одлазно правило заштитног зида.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP заглавље `%1$s` не садржи `%2$s`. Ово је потенцијални безбедносни ризик или може да угрози приватност, па се препоручује да га поставите на одговарајућу вредност.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Детектована је PostgreSQL верзија „%s”. За најбоље перформансе, стабилност и функционалност са овом Nextcloud верзијом, препоручује се PostgreSQL >=12 и <=16.",
- "Failed to load subadmin groups with details" : "Није успело учитавање подадмин група са детаљима"
+ "Set default expiration date for shares" : "Постави подразумевано време истека дељења"
},
"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/settings/l10n/sr.json b/apps/settings/l10n/sr.json
index cb0175f0542..5a0dd9597a3 100644
--- a/apps/settings/l10n/sr.json
+++ b/apps/settings/l10n/sr.json
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP заглавља",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- HTTP заглавље `%1$s` није подешено на `%2$s`. Неке функције можда неће радити исправно, па се препоручује да га поставите на одговарајућу вредност.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP заглавље `%1$s` није подешено на `%2$s`. Ово је потенцијални безбедносни ризик или може да угрози приватност, па се препоручује да га поставите на одговарајућу вредност.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP заглавље `%1$s` не садржи `%2$s`. Ово је потенцијални безбедносни ризик или може да угрози приватност, па се препоручује да га поставите на одговарајућу вредност.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- HTTP заглавље `%1$s` није постављено на `%2$s`, `%3$s`, `%4$s`, `%5$s` или `%6$s`. Услед тога могу процурити информације у упућивачу. Погледајте {w3c-recommendation}.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- HTTP заглавље `Strict-Transport-Security` није постављено на барем `%d` секунди (тренутна вредност је: `%d`). Препорука за унапређену безбедност је да се користи дуготрајна HSTS полиса.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- HTTP заглавље `Strict-Transport-Security` није исправно постављено: `%s`. Препорука за унапређену безбедност је да укључите HSTS.",
@@ -313,6 +312,10 @@
"Architecture" : "Архитектура",
"64-bit" : "64-бита",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "Изгледа да покрећете 32-битну PHP верзију. За правилно извршавање Nextcloud захтева 64-битну верзију. Молимо вас да ажурирате свој оперативни систем и PHP на 64-бита!",
+ "Task Processing pickup speed" : "Брзина прихватања Обраде задатака",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Нема ниједног заказаног задатка у последњих %n сат.","Нема ниједног заказаног задатка у последњих %n сата.","Нема ниједног заказаног задатка у последњих %n сати."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Брзина прихватања задатака је била у реду током последњег %n сата.","Брзина прихватања задатака је била у реду током последња %n сата.","Брзина прихватања задатака је била у реду током последњих %n сати."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["Брзина прихватања задатака је била спора током последњег %n сата. За многе задатке је требало више од 4 минута да се прихвате. Размислите о подешавању радник-процеса за обраду задатака у позадини.","Брзина прихватања задатака је била спора током последња %n сата. За многе задатке је требало више од 4 минута да се прихвате. Размислите о подешавању радник-процеса за обраду задатака у позадини.","Брзина прихватања задатака је била спора током последњих %n сати. За многе задатке је требало више од 4 минута да се прихвате. Размислите о подешавању радник-процеса за обраду задатака у позадини."],
"Temporary space available" : "Доступан привремени простор",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Грешка приликом провере привремене PHP путање - није била исправно постављена на директоријум. Враћена вредност је: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "Искључена је PHP функција „disk_free_space”, па не може да се провери довољна количина слободног простора у привременим директоријумима.",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "Не може да се учита садржај одељка из продавнице апликација.",
"Loading" : "Учитавам",
"Fetching the latest news…" : "Преузимање најновијих вести",
- "Carousel" : "Карусел",
- "Previous slide" : "Претходни слајд",
- "Next slide" : "Наредни слајд",
- "Choose slide to display" : "Изаберите слајд за приказ",
- "{index} of {total}" : "{index} од {total}",
- "Daemon" : "Сервис",
- "Deploy Daemon" : "Даемон за постављање",
- "Type" : "Тип",
- "Display Name" : "Име за приказ",
- "GPUs support" : "Подршка за GPU",
- "Compute device" : "Рачунарски уређај",
- "Advanced deploy options" : "Напредне опције постављања",
- "Edit ExApp deploy options before installation" : "Уреди ExApp опције постављања пре инсталације",
- "Configured ExApp deploy options. Can be set only during installation" : "Конфигурисане су ExApp опције постављања. Може да се постави само током инсталације",
- "Learn more" : "Сазнајте више",
- "Environment variables" : "Променљиве окружења",
- "ExApp container environment variables" : "Променљиве окружења ExApp контејнера",
- "No environment variables defined" : "Није дефинисана ниједна променљиве окружења",
- "Mounts" : "Монтирања",
- "Define host folder mounts to bind to the ExApp container" : "Дефинише монтирања фолдера на хосту која се везују са ExApp контејнером",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "Мора да постоји на хосту даемона постављања пре него што се инсталира ExApp",
- "Host path" : "Путања на хосту",
- "Container path" : "Путања контејнера",
- "Read-only" : "Само-за-читање",
- "Remove mount" : "Уклони монтирање",
- "New mount" : "Ново монтирање",
- "Enter path to host folder" : "Унесите путању до фолдера на хосту",
- "Enter path to container folder" : "Унесите путању до фолдера са контејнером",
- "Toggle read-only mode" : "Укључи/искључи режим само-за-читање",
- "Confirm adding new mount" : "Потврди додавање новог монтирања",
- "Confirm" : "Потврди",
- "Cancel adding mount" : "Откажи додавање монтирања",
- "Cancel" : "Откажи",
- "Add mount" : "Додај монтирање",
- "ExApp container mounts" : "Монтирања ExApp контејнера",
- "No mounts defined" : "Није дефинисано ниједно монтирање",
- "Description" : "Опис",
- "View in store" : "Погледај у продавници",
- "Visit website" : "Посети веб сајт",
- "Usage documentation" : "Документација о употреби",
- "Admin documentation" : "Администраторска документација",
- "Developer documentation" : "Програмерска документација",
- "Details" : "Детаљи",
- "All" : "Све",
- "Limit app usage to groups" : "Ограничи коришћење апликације на групе",
- "No results" : "Нема резултата",
- "Update to {version}" : "Ажурирај на верзију {version}",
- "Deploy options" : "Опције постављања",
- "Default Deploy daemon is not accessible" : "Није доступан подразумевани даемон за постављање ",
- "Delete data on remove" : "Обриши податке приликом уклањања",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ова апликација нема дефинисану минималну верзију Некстклауда на којој ради. Ово ће у будућности постати грешка.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ова апликација нема дефинисану максималну верзију Некстклауда на којој ради. Ово ће у будућности постати грешка.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Апликација се не може инсталирати јер следеће зависности нису испуњене:",
- "Latest updated" : "Последњи пут ажурирано",
- "Author" : "Аутор",
- "Categories" : "Категорије",
- "Resources" : "Ресурси",
- "Documentation" : "Документација",
- "Interact" : "Остварите узајамно деловање",
- "Report a bug" : "Пријави проблем",
- "Request feature" : "Затражи функционалност",
- "Ask questions or discuss" : "Питајте питање или дискутујте",
- "Rate the app" : "Оцените апликацију",
- "Rate" : "Оцени",
- "Changelog" : "Дневник измена",
- "Google Chrome for Android" : "Google Chrome за Андроид",
- "{productName} iOS app" : "{productName} iOS апликација",
- "{productName} Android app" : "{productName} Android апликација",
- "{productName} Talk for iOS" : "{productName} Talk за iOS",
- "{productName} Talk for Android" : "{productName} Talk за Android",
- "Sync client" : "Клијент за синхронизовање",
- "This session" : "Ова сесија",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Назив уређаја",
- "Cancel renaming" : "Откажи промену имена",
- "Save new name" : "Сачувај ново име",
- "Marked for remote wipe" : "Означено за удаљено брисање",
- "Device settings" : "Подешавања уређаја",
- "Allow filesystem access" : "Дозволи приступ фајловима",
- "Rename" : "Преименуј",
- "Revoke" : "Повуци",
- "Wipe device" : "Очисти уређај",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Опозив овог жетона може да спречи брисање вашег уређаја у случају да брисање још увек није започето.",
- "Device" : "Уређај",
- "Last activity" : "Последња активност",
- "Devices & sessions" : "Уређаји & сесије",
- "Web, desktop and mobile clients currently logged in to your account." : "Веб, рачунарски и мобилни клијенти тренутно пријављени на Ваш налог.",
- "Error while creating device token" : "Грешка при прављењу токена на уређају",
- "App name" : "Назив апликације",
- "Create new app password" : "Направите нову лозинку апликације",
"App password copied!" : "Копирана је лозинка апликације!",
"Copy app password" : "Копирај лозинку апликације",
"Login name copied!" : "Копирано име за пријаву!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "Подразумевано подешавање профила не може да се ажурира",
"Profile" : "Профил",
"Enable or disable profile by default for new accounts." : "Профил нових налога се подразумевано укључује или искључује.",
+ "Password confirmation is required" : "Потребна је потврда лозинке",
"Failed to save setting" : "Није успело чување подешавања",
"{app}'s declarative setting field: {name}" : "поље декларативног подешавања апликације {app}: {name}",
"Unable to update server side encryption config" : "Конфигурација енкрипције на страни сервера не може да се ажурира",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Увек је паметно да правите редовне резервне копије података. У случају када су подаци шифровани, онда поред њих и резервне копије кључева за шифровања.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Погледајте админ документацију у вези са ручним шифровањем постојећих фајлова.",
"This is the final warning: Do you really want to enable encryption?" : "Ово је последње упозорење: Да ли стварно желите да укључите шифровање?",
- "Failed to remove group \"{group}\"" : "Није успело уклањање групе „{group}”",
+ "Failed to delete group \"{group}\"" : "Није успело брисање групе „{group}”",
"Please confirm the group removal" : "Молимо вас да потврдите уклањање групе",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Управо ћете уклонити групу „{group}”. Налози се НЕЋЕ обрисати.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "Управо ћете обрисати групу „{group}”. Налози се НЕЋЕ обрисати.",
+ "Cancel" : "Откажи",
+ "Confirm" : "Потврди",
"Submit" : "Пошаљи",
"Rename group" : "Промени име групе",
- "Remove group" : "Уклони групу",
- "Current password" : "Тренутна лозинка",
- "New password" : "Нова лозинка",
- "Change password" : "Измени лозинку",
- "Choose your profile picture" : "Изаберите слику за свој профил",
- "Please select a valid png or jpg file" : "Молимо вас изаберите исправан png или jpg фајл",
- "Error setting profile picture" : "Грешка приликом постављања слике профила",
- "Error cropping profile picture" : "Грешка приликом опсецања слике профила",
- "Error saving profile picture" : "Грешка приликом чувања слике профила",
- "Error removing profile picture" : "Грешка приликом уклањања слике профила",
- "Your profile picture" : "Ваша слика профила",
- "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" : "Слика оригиналног налога",
- "Set as profile picture" : "Постави као слику профила",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Молимо вас да имате на уму да може проћи до 24 часа док се слика вашег профила не ажурира на свим местима.",
- "Your biography. Markdown is supported." : "Ваша биографија. Подржава се употреба Markdown означавања.",
- "Unable to update date of birth" : "Није успело ажурирање датума рођења",
- "Enter your date of birth" : "Унесите датум свог рођења",
- "You are using {s}{usage}{/s}" : "Користите {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Користите {s}{usage}{/s} од {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Члан сте следећих група:",
- "Your full name" : "Ваше пуно име",
- "Email options" : "Опције за и-мејл",
- "Options for additional email address {index}" : "Опције за додатну и-мејл адресу {index}",
- "Remove primary email" : "Уклони примарни и-мејл",
- "Delete email" : "Обриши и-мејл",
- "This address is not confirmed" : "Ова адреса није потврђена",
- "Unset as primary email" : "Постави да није примарни и-мејл",
- "Set as primary email" : "Постави као примарни и-мејл",
- "Additional email address {index}" : "Додатна и-мејл адреса {index}",
- "Unable to delete primary email address" : "Примарна и-мејл адреса не може да се обрише",
- "Unable to update primary email address" : "Примарна и-мејл адреса није могла да се ажурира",
- "Unable to add additional email address" : "Не може да се дода додатна и-мејл адреса",
- "Unable to update additional email address" : "Додатна и-мејл адреса није могла да се ажурира",
- "Unable to delete additional email address" : "Додатна и-мејл адреса не може да се обрише",
- "Primary email for password reset and notifications" : "Примарни и-мејл за ресетовање лозинке и обавештења",
- "No email address set" : "Није постављена адреса е-поште",
- "Your handle" : "Ваша ручка",
- "Derived from your locale ({weekDayName})" : "Закључено из вашег локале подешавања ({weekDayName})",
- "Unable to update first day of week" : "Није успело ажурирање првог дана недеље",
- "Day to use as the first day of week" : "Дан који се користи као први дан недеље",
- "Your headline" : "Ваша насловна линија",
- "Unable to update language" : "Језик није могао да се ажурира",
- "Languages" : "Језици",
- "Help translate" : " Помозите у превођењу",
- "No language set" : "Ниједан језик није постављен",
- "Unable to update locale" : "Локалитет није могао да се ажурира",
- "Locales" : "Локалитети",
- "Week starts on {firstDayOfWeek}" : "Недеља почиње у {firstDayOfWeek}",
- "No locale set" : "Није постављен локалитет",
- "Your city" : "Ваш град",
- "Your organisation" : "Ваша организација",
- "Your phone number" : "Ваш број телефона",
- "Edit your Profile visibility" : "Уредите видљивост вашег профила",
- "Unable to update profile enabled state" : "Није могло да се ажурира стање профила",
- "Enable profile" : "Укључи профил",
- "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." : "На вашем провилу се поштује рестриктивније подешавање било видљивости, било опсега важења. На пример, ако је видљивост постављена на „Прикажи свима”, а опсег важења на „Приватан”, поштује се „Приватан”.",
- "Unable to update visibility of {displayId}" : "Није успело ажурирање видљивости {displayId}",
- "she/her" : "она/њен",
- "he/him" : "он/њему",
- "they/them" : "они/њима",
- "Your role" : "Ваша улога",
- "Your X (formerly Twitter) handle" : "Ваша X (бивши Twitter) ручка",
- "Your website" : "Ваш веб сајт",
- "Invalid value" : "Неисправна вредност",
- "Unable to update {property}" : "Није успело ажурирање {property}",
- "No {property} set" : "{property} није постављено",
- "Change scope level of {property}, current scope is {scope}" : "Измена опсега важења {property}, тренутни опсег важења је {scope}",
- "Unable to update federation scope of the primary {property}" : "Није успело ажурирање опсега важења федерације примарне {property}",
- "Unable to update federation scope of additional {property}" : "Није успело ажурирање опсега важења федерације додатне {property}",
- "Add additional email" : "Додај додатни и-мејл",
- "Add" : "Додај",
- "Create" : "Направи",
- "Change" : "Измени",
- "Delete" : "Обриши",
- "Reshare" : "Дели даље",
- "Default language" : "Подразумевани језик",
- "Common languages" : "Најкоришћенији језици",
- "Other languages" : "Остали језици",
- "Password change is disabled because the master key is disabled" : "Промена лозинке је искључена пошто је главни кључ искључен",
- "No accounts" : "Нема налога",
- "Loading accounts …" : "Учитавање налога",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Листа налога. Услед разлога везаних за перформансе, ова листа се не приказује у потпуности. Налози ће се приказивати како се будете кретали кроз листу.",
- "Manager" : "Менаџер",
- "Set line manager" : "Избор надређеног менаџера",
- "Account name will be autogenerated" : "Име налога ће бити генерисано аутоматски",
- "Account name (required)" : "Име налога (обавезно)",
- "Failed to search groups" : "Није успело претраживање група",
- "New account" : "Нови налог",
- "Display name" : "Име за приказ",
- "Either password or email is required" : "Неопходна је или лозинка или и-мејл",
- "Password (required)" : "Лозинка (обавезно)",
- "Email (required)" : "И-мејл (обавезно)",
- "Email" : "Е-пошта",
- "Member of the following groups (required)" : "Члан следећих група (неопходно)",
- "Member of the following groups" : "Члан следећих група",
- "Set account groups" : "Постави групе налога",
- "Admin of the following groups" : "Админ следећих група",
- "Set account as admin for …" : "Постави налог као администратора за",
- "Quota" : "Квота",
- "Set account quota" : "Постави квоту за налог",
- "Language" : "Језик",
- "Set default language" : "Постави подразумевани језик",
- "Add new account" : "Додај нови налог",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} налог…","{userCount} налога…","{userCount} налога…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} налог","{userCount} налога","{userCount} налога"],
- "Total rows summary" : "Резиме укупног броја редова",
- "Scroll to load more rows" : "Скролујте да се учита још редова",
- "Password or insufficient permissions message" : "Порука о лозинки или недовољним дозволама",
- "Avatar" : "Аватар",
- "Account name" : "Име рачуна",
- "Group admin for" : "Администратор групе за",
- "Account backend" : "Позадински механизам за налоге",
- "Storage location" : "Локација складишта",
- "First login" : "Прва пријава",
- "Last login" : "Последња пријава",
- "Account actions" : "Акције налога",
- "{size} used" : "{size} искоришћено",
- "Delete account" : "Обриши рачун",
- "Disconnect all devices and delete local data" : "Раскини везу са свим уређајима и обриши локалне податке",
- "Disable account" : "Искључи налог",
- "Enable account" : "Укључи налог",
- "Resend welcome email" : "Поново пошаљи е-пошту добродошлице",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "У случају изгубљеног уређаја или напуштања организације, овим се могу удаљено обрисати Некстклауд подаци са свих уређаја повезаних са налогом {userid}. Ради само ако је уређај повезан на интернет.",
- "Remote wipe of devices" : "Удаљено брисање уређаја",
- "Wipe {userid}'s devices" : "Обриши уређај од корисника {userid}",
- "Wiped {userid}'s devices" : "Обрисани уређаји корисника {userid}",
- "Failed to load groups with details" : "Није успело учитавање група са детаљима",
- "Failed to load sub admin groups with details" : "Није успело учитавање под админ група са детаљима",
- "Failed to update line manager" : "Није успело ажурирање надређеног менаџера",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Комплетно брисање уређаја са налога корисника {userid} укључујући све личне фајлове, апликативне податке, итд.",
- "Account deletion" : "Брисање налога",
- "Delete {userid}'s account" : "Обриши налог корисника {userid}",
- "Display name was successfully changed" : "Име за приказ је успешно промењено",
- "Password can't be empty" : "Лозинка не може да буде празна",
- "Password was successfully changed" : "Лозинка је усшешно промењена",
- "Email can't be empty" : "И-мејл не може да буде празан",
- "Email was successfully changed" : "И-мејл је успешно промењен",
- "Welcome mail sent!" : "Е-пошта добродошлице послата!",
- "Loading account …" : "Налог се учитава…",
- "Change display name" : "Промени име за приказ",
- "Set new password" : "Постави нову лозинку",
- "You do not have permissions to see the details of this account" : "Немате дозволе да видите детаље о овом налогу",
- "Set new email address" : "Постави нову адресу е-поште",
- "Add account to group" : "Додај налог у групу",
- "Set account as admin for" : "Постави налог као администратора за",
- "Select account quota" : "Одаберите квоту за налог",
- "Set the language" : "Постави језик",
- "Toggle account actions menu" : "Укључи/искључи мени са акцијама налога",
- "Done" : "Завршено",
- "Edit" : "Измени",
- "Account management settings" : "Подешавања управљања налозима",
- "Visibility" : "Видљивост",
- "Show language" : "Прикажи језик",
- "Show account backend" : "Прикажи позадински механизам за налоге",
- "Show storage path" : "Прикажи путању до складишта",
- "Show first login" : "Прикажи прву пријаву",
- "Show last login" : "Прикажи последњу пријаву",
- "Sorting" : "Сортирање",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Конфигурација система форсира сортирање група по имену. Ово такође искључује приказ броја чланова.",
- "Group list sorting" : "Сортирање листе група",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Из разлога перформанси, сортирање се примењује само на тренутно учитане групе. Групе ће се учитавати како се крећете кроз листу.",
- "By member count" : "По броју чланова",
- "By name" : "По имену",
- "Send email" : "Пошаљи е-пошту",
- "Send welcome email to new accounts" : "Пошаљи и-мејл добродошлице новим налозима",
- "Defaults" : "Пордазумеване",
- "Default quota" : "Подразумевана квота",
- "Select default quota" : "Одаберите подразумевану квоту",
- "Server error while trying to complete WebAuthn device registration" : "Серверска грешка при завршетку регистрације WebAuthn уређаја",
- "Passwordless authentication requires a secure connection." : "Пријављивање без лозинке захтева безбедну конекцију.",
- "Add WebAuthn device" : "Додајте WebAuthn уређај",
- "Please authorize your WebAuthn device." : "Ауторизујте Ваш WebAuthn уређај.",
- "Adding your device …" : "Додајем Ваш уређај…",
- "Unnamed device" : "Неименовани уређај",
- "Passwordless Authentication" : "Провера идентитета без лозинке",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Подесите налог за пријављивање без лозинке користећи FIDO2 стандард.",
- "No devices configured." : "Ниједан уређај није подешен.",
- "The following devices are configured for your account:" : "Следећи уређаји су подешени за Ваш налог:",
- "Your browser does not support WebAuthn." : "Ваш веб читач не подржава WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Као администратор, можете фино подешавати понашања дељења. Погледајте документацију за више информација.",
- "You need to enable the File sharing App." : "Морате да укључите Апликацију за дељење фајла",
- "App Store" : "Продавница апликације",
- "Loading app list" : "Листа апликација се учитава",
- "Loading categories" : "Учитавају се категорије",
- "Developer documentation ↗" : "Програмерска документација ↗",
- "Version {version}, {license}-licensed" : "Верзија {version}, {license}-лиценцирано",
- "Version {version}" : "Верзија {version}",
- "All accounts" : "Сви налози",
- "Admins" : "Администратори",
- "Account group: {group}" : "Група налога: {group}",
- "Account management" : "Управљање налозима",
+ "Delete group" : "Брисање групе",
"Sending…" : "Шаљем…",
"Email sent" : "Порука је послата",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Из разлога перформанси, када укључите шифровање само на Nextcloud серверу, шифрују се нови и измењени фајлови.",
@@ -790,6 +511,7 @@
"Date of birth" : "Датум рођења",
"Full name" : "Пуно име",
"Additional email" : "Додатни и-мејл",
+ "Email" : "Е-пошта",
"Fediverse (e.g. Mastodon)" : "Fediverse (нпр. Mastodon)",
"Headline" : "Наслов",
"Organisation" : "Организација",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X (бивши Twitter)",
"Website" : "Веб сајт",
"Profile visibility" : "Видљивост профила",
+ "Language" : "Језик",
"Locale" : "Локалитет",
"First day of week" : "Први дан недеље",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Није доступно јер је ова особина потребна за основну функционалност укључујући дељење фајла и позивнице календара",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "Прикажи само пријављеним налозима",
"Hide" : "Сакриј",
"Manually installed apps cannot be updated" : "Ручно инсталиране апликације не могу да се ажурирају",
+ "Update to {version}" : "Ажурирај на верзију {version}",
"{progress}% Deploying …" : "{progress}% Поставља се",
"{progress}% Initializing …" : "{progress}% Иницијализује се…",
"Health checking" : "Провера здравља",
@@ -825,6 +549,7 @@
"Allow untested app" : "Дозволи нетестиране апликације",
"The app will be downloaded from the App Store" : "Апликација ће се преузети са Продавнице апликација",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ова апликација није означена као компатибилна са Вашом верзијом Некстклауда. Ако наставите, моћи ћете свеједно да инсталирате апликацију. Врло је могуће да апликација неће радити како је планирано.",
+ "{size} used" : "{size} искоришћено",
"Unknown" : "Непознато",
"Never" : "Никад",
"Could not register device: Network error" : "Не може да се региструје уређај: мрежна грешка",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "Није могло да се постави соритирање групе",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Са ваше мреже долази превише захтева. Покушајте поново касније или контактирајте администратора уколико је ово нека грешка.",
"Error" : "Грешка",
+ "Default quota" : "Подразумевана квота",
"Account documentation" : "Документација налога",
"Administration documentation" : "Администраторска документација",
+ "Documentation" : "Документација",
"Forum" : "Форум",
"Nextcloud help & privacy resources" : "Nextcloud ресурси помоћи и приватности",
"General documentation" : "Општа документација",
@@ -867,6 +594,7 @@
"SMTP Password" : "SMTP лозинка",
"Save" : "Сачувај",
"Test and verify email settings" : "Тестирај и потврди подешавања и-мејла",
+ "Send email" : "Пошаљи е-пошту",
"Security & setup warnings" : "Упозорења за безбедност и поставке",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Због безбедности и перформанси Ваше инстанце сервера, важно је да је све подешено исправно. Да бисмо Вам помогли у томе, радићемо неке аутоматске провере. Погледајте увезану документацију за више информација.",
"All checks passed." : "Све провере успешно прошле.",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "Поред лозинке, користите и други фактор да повећате безбедност Вашег налога.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Ако за повезивање са Nextcloud користите апликације треће стране, обезбедите да се лозинка сваке апликације креира и подеси пре него што се укључи двофакторска аутентификација.",
"Logged in account must be a subadmin" : "Пријављени налог мора бити подадминистратор",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Ако желите да се ова провера изврши, морате обезбедити да ваш веб сервер може да се повеже на самог себе. То значи да мора бити у стању да разреши и да се повеже барем на један од својих `trusted_domains` или `overwrite.cli.url`.",
- "Missing optional index \"%s\" in table \"%s\"." : "У табели „%s” недостаје необавезни индекс „%s”.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "У бази недостају поједини индекси. Због тога што додавање индекса на великим табелама може доста да потраје, индекси се не додају аутоматски. Покретањем „occ db:add-missing-indices“, индекси који недостају ће бити додати ручно док је инстанца покренута. Једном када су индекси додати, упити над тим табелама ће обично бити много бржи.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Ако желите да се ова провера изврши, морате обезбедити да ваш веб сервер може да се повеже на самог себе. То значи да мора бити у стању да разреши и да се повеже барем на један од својих `trusted_domains` или `overwrite.cli.url`. Ова грешка може да буде резултат DNS неподударања на страни сервера или одлазно правило заштитног зида.",
"File locking" : "Закључавање фајла",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Закључавање фајла по трансакцијама је искључено, то може да доведе до проблема са стањима утркивања. Укључите „filelocking.enabled” у config.php да спречите ове проблеме.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "Није могла да се провери JavaScript подршка преко било ког од ваших `trusted_domains` нити преко `overwrite.cli.url`. То је можда услед DNS неслагања са стране сервера или одлазно правило заштитног зида. Молимо вас да ручно проверите да ли ваш сервер служи `.mjs` фајлове користећи JavaScript MIME тип.",
"The PHP memory limit is below the recommended value of %s." : "Ограничење PHP меморије је испод препоручене вредности од %s.",
"for WebAuthn passwordless login" : "за WebAuthn пријаву без лозинке",
"for WebAuthn passwordless login, and SFTP storage" : "за WebAuthn пријаву без лозинке и за SFTP складиште",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Тренутно изврешавате %s. PHP 8.0 је сада застарео у Nextcloud 27. Nextcloud 28 може да захтева барем PHP 8.1. Молимо вас да што је пре могуће извршите ажурирање на једну од званично подржаних PHP верзија које обезбеђује PHP Група.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Користи се MariaDB верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају MariaDB 10.2 или новију.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Користи се MySQL верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају MySQL 8.0 или MariaDB 10.2 или новију.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Користи се PostgreSQL верзије „%s”. Nextcloud 21 и новији не подржавају ову верзију и захтевају PostgreSQL 9.6 или новији.",
- "Speech-To-Text" : "Говор-у-текст",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Говор-у-текст могу да имплементирају разне апликације. Овде можете да подесите која ће се користити.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ниједна од ваших тренутно инсталираних апликација не пружа услуагу претварања Говора-у-текст",
- "None of your currently installed apps provide Text processing functionality" : "Ниједна од ваших тренутно инсталираних апликација не пружа функционалност обраде текста",
- "Set default expiration date for shares" : "Постави подразумевано време истека дељења",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Омогући аутоматско довршавање корисничког имена у дијалогу дељења и дозволи приступ системском адресару",
- "Your biography" : "Ваша биографија",
- "You are using <strong>{usage}</strong>" : "Користите <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Користите <strong>{usage}</strong> од <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Постави менаџера корисника",
- "Username will be autogenerated" : "Корисничко име ће бити генерисано аутоматски",
- "Username (required)" : "Корисничко име (обавезно)",
- "New user" : "Нови корисник",
- "Groups (required)" : "Групе (обавезно)",
- "Set user groups" : "Постављање група корисника",
- "Administered groups" : "Администриране групе",
- "Set user as admin for …" : "Постави корисника као администратора за...",
- "Set user quota" : "Постави квоту корисника",
- "Add new user" : "Додај новог корисника",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} корисник…","{userCount} корисника…","{userCount} корисника…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} корисник","{userCount} корисника","{userCount} корисника"],
- "Loading users …" : "Учитавају се корисници...",
- "Username" : "Корисничко име",
- "User backend" : "Позадина за кориснике",
- "User actions" : "Корисникове акције",
- "Add user to group" : "Додај корисника у групу",
- "Server error while trying to add WebAuthn device" : "Серверска грешка при додавању WebAuthn уређаја",
- "Name your device" : "Име Вашег уређаја",
- "Active accounts" : "Активни налози",
- "Follow us on Twitter" : "Пратите нас на Твитеру",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Ако желите да се ова провера изврши, морате обезбедити да ваш веб сервер може да се повеже на самог себе. То значи да мора бити у стању да разреши и да се повеже барем на један од својих `trusted_domains` или `overwrite.cli.url`. Ова грешка може да буде резултат DNS неподударања на страни сервера или одлазно правило заштитног зида.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- HTTP заглавље `%1$s` не садржи `%2$s`. Ово је потенцијални безбедносни ризик или може да угрози приватност, па се препоручује да га поставите на одговарајућу вредност.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "Детектована је PostgreSQL верзија „%s”. За најбоље перформансе, стабилност и функционалност са овом Nextcloud верзијом, препоручује се PostgreSQL >=12 и <=16.",
- "Failed to load subadmin groups with details" : "Није успело учитавање подадмин група са детаљима"
+ "Set default expiration date for shares" : "Постави подразумевано време истека дељења"
},"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/settings/l10n/sv.js b/apps/settings/l10n/sv.js
index ee3fb23acea..8f8fbbd8a78 100644
--- a/apps/settings/l10n/sv.js
+++ b/apps/settings/l10n/sv.js
@@ -317,69 +317,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Det gick inte att ladda avsnittsinnehåll från app store.",
"Loading" : "Läser in",
"Fetching the latest news…" : "Hämtar de senaste nyheterna...",
- "Carousel" : "Karusell",
- "Previous slide" : "Föregående sida",
- "Next slide" : "Nästa sida",
- "Choose slide to display" : "Välj sida att visa",
- "{index} of {total}" : "{index} av {total}",
- "Daemon" : "Demon",
- "Type" : "Typ",
- "Display Name" : "Visningsnamn",
- "Learn more" : "Läs mer",
- "Confirm" : "Bekräfta",
- "Cancel" : "Avbryt",
- "Description" : "Beskrivning",
- "View in store" : "Visa i butik",
- "Visit website" : "Besök webbplats",
- "Usage documentation" : "Användardokumentation",
- "Admin documentation" : "Administratörsdokumentation",
- "Developer documentation" : "Utvecklardokumentation",
- "Details" : "Detaljer",
- "All" : "Alla",
- "Limit app usage to groups" : "Begränsa appanvändning till grupper",
- "No results" : "Inga resultat",
- "Update to {version}" : "Uppdatera till {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen lägsta Nextcloud-version tilldelad. Detta kommer att innebära ett problem i framtiden.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen minimum Nextcloud-version tilldelad. Detta kommer att innebära ett problem i framtiden.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Denna applikation kan inte installeras då följande beroenden inte är uppfyllda: %s",
- "Latest updated" : "Senast uppdaterad",
- "Author" : "Upphovsman",
- "Categories" : "Kategorier",
- "Resources" : "Resurser",
- "Documentation" : "Dokumentation",
- "Interact" : "Interagera",
- "Report a bug" : "Rapportera ett problem",
- "Request feature" : "Begär egenskap",
- "Ask questions or discuss" : "Ställ frågor eller diskutera",
- "Rate the app" : "Betygsätt appen",
- "Rate" : "Betygsätt",
- "Changelog" : "Ändringslogg",
- "Google Chrome for Android" : "Google Chrome för Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk för iOS",
- "{productName} Talk for Android" : "{productName} Talk för Android",
- "Sync client" : "Synkklient",
- "This session" : "Denna session ",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Enhetsnamn",
- "Cancel renaming" : "Avbryt namnändring",
- "Save new name" : "Spara nya namnet",
- "Marked for remote wipe" : "Markerad för fjärrensning",
- "Device settings" : "Enhetsinställningar",
- "Allow filesystem access" : "Tillåt åtkomst till filsystemet",
- "Rename" : "Byt namn",
- "Revoke" : "Återkalla",
- "Wipe device" : "Rensa enhet",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Återkallning kan förhindra att enheten rensas om inte rensningen redan har startat.",
- "Device" : "Enhet",
- "Last activity" : "Senaste aktivitet",
- "Devices & sessions" : "Enheter & sessioner",
- "Web, desktop and mobile clients currently logged in to your account." : "Webb-, skrivbords- och mobila klienter som är inloggade på ditt konto just nu.",
- "Error while creating device token" : "Fel vid skapande av enhetstoken",
- "App name" : "Appnamn",
- "Create new app password" : "Skapa nytt applösenord",
"App password copied!" : "Applösenordet har kopierats!",
"Copy app password" : "Kopiera applösenord",
"Login name copied!" : "Inloggningsnamnet kopierat!",
@@ -404,6 +341,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Det gick inte att uppdatera profilens standardinställning",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Aktivera eller inaktivera profil som standard för nya konton.",
+ "Password confirmation is required" : "Lösenordsbekräftelse krävs",
"Failed to save setting" : "Kunde inte spara inställning",
"Unable to update server side encryption config" : "Kunde inte uppdatera serversidans krypteringskonfiguration",
"Server-side encryption" : "Serverkryptering",
@@ -419,199 +357,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "OBS! Observera att kryptering alltid ökar filstorleken",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det är alltid en god ide att skapa regelbundna säkerhetskopior av din data, om kryptering används var säker på att även krypteringsnycklarna säkerhetskopieras tillsammans med din data.",
"This is the final warning: Do you really want to enable encryption?" : "Detta är en slutgiltig varning: Vill du verkligen aktivera kryptering?",
- "Failed to remove group \"{group}\"" : "Det gick inte att ta bort gruppen \"{group}\"",
"Please confirm the group removal" : "Bekräfta borttagning av gruppen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du håller på att ta bort gruppen \"{group}\". Kontona kommer INTE att raderas.",
+ "Cancel" : "Avbryt",
+ "Confirm" : "Bekräfta",
"Submit" : "Skicka",
"Rename group" : "Byt namn på grupp",
- "Remove group" : "Ta bort grupp",
- "Current password" : "Nuvarande lösenord",
- "New password" : "Nytt lösenord",
- "Change password" : "Ändra lösenord",
- "Choose your profile picture" : "Välj din profilbild",
- "Please select a valid png or jpg file" : "Välj en giltig png- eller jpg-fil",
- "Error setting profile picture" : "Fel vid inställning av profilbild",
- "Error cropping profile picture" : "Det gick inte att beskära profilbilden",
- "Error saving profile picture" : "Det gick inte att spara profilbilden",
- "Error removing profile picture" : "Det gick inte att ta bort profilbilden",
- "Your profile picture" : "Din profilbild",
- "Upload profile picture" : "Ladda upp profilbild",
- "Choose profile picture from Files" : "Välj profilbild från filer",
- "Remove profile picture" : "Ta bort profilbild",
- "The file must be a PNG or JPG" : "Filen måste vara en PNG eller JPG",
- "Picture provided by original account" : "Bild gjordes tillgänglig av orginalkonto",
- "Set as profile picture" : "Ställ in som profilbild",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Observera att det kan ta upp till 24 timmar för din profilbild att uppdateras överallt.",
- "Your biography. Markdown is supported." : "Din biografi. Markdown stöds.",
- "Unable to update date of birth" : "Det gick inte att uppdatera födelsedatum",
- "Enter your date of birth" : "Ange ditt födelsedatum",
- "You are using {s}{usage}{/s}" : "Du använder {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Du använder {s}{usage}{/s} av {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Du är medlem i följande grupper:",
- "Your full name" : "Ditt fullständiga namn",
- "Email options" : "E-postinställningar",
- "Options for additional email address {index}" : "Alternativ för ytterligare e-postadress {index}",
- "Remove primary email" : "Ta bort primär e-postadress",
- "Delete email" : "Ta bort e-post",
- "This address is not confirmed" : "Denna adress är inte verifierad",
- "Unset as primary email" : "Ta bort som primär e-post",
- "Set as primary email" : "Välj som primär e-post",
- "Additional email address {index}" : "Ytterligare e-postadress {index}",
- "Unable to delete primary email address" : "Kunde inte ta bort primär e-postadress",
- "Unable to update primary email address" : "Kunde inte uppdatera primär e-postadress",
- "Unable to add additional email address" : "Kunde inte lägga till ytterligare e-postadress",
- "Unable to update additional email address" : "Kunde inte uppdatera ytterligare e-postadress",
- "Unable to delete additional email address" : "Kunde inte ta bort ytterligare e-postadress",
- "Primary email for password reset and notifications" : "Primär e-postadress för notifikationer och återställning av lösenord",
- "No email address set" : "Ingen e-postadress angiven",
- "Your handle" : "Ditt kontonamn",
- "Derived from your locale ({weekDayName})" : "Härledd från din plats ({weekDayName})",
- "Unable to update first day of week" : "Kunde inte uppdatera första veckodagen",
- "Day to use as the first day of week" : "Dag att använda som första veckodag",
- "Your headline" : "Din rubrik",
- "Unable to update language" : "Kunde inte uppdatera språk",
- "Languages" : "Språk",
- "Help translate" : "Hjälp till med översättningarna",
- "No language set" : "Inget språk angivet",
- "Unable to update locale" : "Det gick inte att uppdatera språk",
- "Locales" : "Platser",
- "Week starts on {firstDayOfWeek}" : "Veckan börjar med {firstDayOfWeek}",
- "No locale set" : "Inget språk angivet",
- "Your city" : "Din stad",
- "Your organisation" : "Din organisation",
- "Your phone number" : "Ditt telefonnummer",
- "Edit your Profile visibility" : "Ändra synligheten för din profil",
- "Unable to update profile enabled state" : "Kunde inte uppdatera profilaktivering",
- "Enable profile" : "Aktivera profil",
- "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." : "Den mer restriktiva inställningen av antingen synlighet eller omfattning respekteras på din profil. Till exempel, om synlighet är inställd på \"Visa för alla\" och omfattningen är inställd på \"Privat\", respekteras \"Privat\".",
- "Unable to update visibility of {displayId}" : "Kunde inte uppdatera synlighet för {displayId}",
- "she/her" : "hon/henne",
- "he/him" : "han/honom",
- "they/them" : "de/dem",
- "Your role" : "Din roll",
- "Your X (formerly Twitter) handle" : "Ditt användarnamn på X (tidigare Twitter)",
- "Your website" : "Din webbsida",
- "Invalid value" : "Ogiltigt värde",
- "Unable to update {property}" : "Det gick inte att uppdatera {property}",
- "No {property} set" : "Ingen {property} inställd",
- "Change scope level of {property}, current scope is {scope}" : "Ändra omfattningsnivå för {property}, nuvarande omfattning är {scope}",
- "Unable to update federation scope of the primary {property}" : "Det gick inte att uppdatera federationsomfånget för den primära {property}",
- "Unable to update federation scope of additional {property}" : "Det gick inte att uppdatera federationens omfattning för ytterligare {property}",
- "Add additional email" : "Lägg till ytterligare e-post",
- "Add" : "Lägg till",
- "Create" : "Skapa",
- "Change" : "Ändra",
- "Delete" : "Radera",
- "Reshare" : "Dela vidare",
- "Default language" : "Standardspråk",
- "Common languages" : "Vanliga språk",
- "Other languages" : "Andra språk",
- "Password change is disabled because the master key is disabled" : "Lösenordsbyte är inaktiverat eftersom huvudnyckeln är inaktiverad",
- "No accounts" : "Inga konton",
- "Loading accounts …" : "Laddar konton ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista över konton. Denna lista är inte helt återgiven av prestandaskäl. Konton kommer att renderas när du navigerar genom listan.",
- "Manager" : "Chef",
- "Set line manager" : "Ange linjechef",
- "Account name will be autogenerated" : "Kontonamn kommer att autogenereras",
- "Account name (required)" : "Kontonamn (obligatoriskt)",
- "Failed to search groups" : "Kunde inte söka efter grupper",
- "New account" : "Nytt konto",
- "Display name" : "Visningsnamn",
- "Either password or email is required" : "Antingen lösenord eller e-post krävs",
- "Password (required)" : "Lösenord (obligatoriskt)",
- "Email (required)" : "E-post (obligatoriskt)",
- "Email" : "E-post",
- "Member of the following groups (required)" : "Medlem i följande grupper (obligatoriskt)",
- "Member of the following groups" : "Medlem i följande grupper",
- "Set account groups" : "Ställ in kontogrupper",
- "Admin of the following groups" : "Administratör för följande grupper",
- "Set account as admin for …" : "Ange konto som administratör för ...",
- "Quota" : "Lagringsutrymme",
- "Set account quota" : "Ställ in kvot för konto",
- "Language" : "Språk",
- "Set default language" : "Ställ in standardspråk",
- "Add new account" : "Lägg till nytt konto",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} konto …","{userCount} konton …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} konto","{userCount} konton"],
- "Total rows summary" : "Sammanfattning antal rader",
- "Scroll to load more rows" : "Bläddra för att ladda fler rader",
- "Password or insufficient permissions message" : "Lösenord eller meddelande om otillräckliga behörigheter",
- "Avatar" : "Avatar",
- "Account name" : "Kontonamn",
- "Group admin for" : "Gruppadministratör för",
- "Storage location" : "Lagringsplats",
- "Last login" : "Senaste inloggning",
- "Account actions" : "Kontoåtgärder",
- "{size} used" : "{size} använt",
- "Delete account" : "Radera konto",
- "Disconnect all devices and delete local data" : "Koppla bort alla enheter och radera lokalt data",
- "Disable account" : "Inaktivera konto",
- "Enable account" : "Aktivera konto",
- "Resend welcome email" : "Skicka om välkomstmeddelande via e-post",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Om användaren förlorar sin enhet eller lämnar organisationen, kan all Nextcloud-data fjärrensas från alla enheter associerade med {userid}. Fungerar bara om enheterna är anslutna till internet.",
- "Remote wipe of devices" : "Fjärrensning av enheter",
- "Wipe {userid}'s devices" : "Rensa enheter för {userid}",
- "Wiped {userid}'s devices" : "Rensade enheter för {userid}",
- "Failed to load groups with details" : "Kunde inte läsa in grupper med detaljer",
- "Failed to update line manager" : "Kunde inte uppdatera linjechef",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Fullständig radering av konto för {userid} inklusive alla personliga filer, appdata etc.",
- "Account deletion" : "Radering av konto",
- "Delete {userid}'s account" : "Ta bort konto för {userid}",
- "Display name was successfully changed" : "Visningsnamnet har ändrats",
- "Password can't be empty" : "Lösenord får inte vara tomt",
- "Password was successfully changed" : "Lösenordet har ändrats",
- "Email can't be empty" : "E-post får inte vara tomt",
- "Email was successfully changed" : "E-postadressen har ändrats",
- "Welcome mail sent!" : "Välkomstmeddelande skickat via e-post!",
- "Loading account …" : "Laddar konto ...",
- "Change display name" : "Ändra visningsnamn",
- "Set new password" : "Ange nytt lösenord",
- "You do not have permissions to see the details of this account" : "Du har inte behörighet att se detaljerna för detta konto.",
- "Set new email address" : "Ange ny e-postadress",
- "Add account to group" : "Lägg till konto till grupp",
- "Set account as admin for" : "Ange konto som administratör för",
- "Select account quota" : "Välj kvot för konto",
- "Set the language" : "Ställ in språk",
- "Toggle account actions menu" : "Växla menyn med kontoåtgärder",
- "Done" : "Färdig",
- "Edit" : "Redigera",
- "Account management settings" : "Inställningar kontohantering",
- "Visibility" : "Synlighet",
- "Show language" : "Visa språk",
- "Show storage path" : "Visa lagringsväg",
- "Show last login" : "Visa senaste inloggning",
- "Sorting" : "Sortering",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Systemkonfigurationen tvingar sortering av grupper efter namn. Detta inaktiverar också visning av medlemsantal.",
- "Group list sorting" : "Sortering av grupplistor",
- "By member count" : "Efter medlemsantal",
- "By name" : "Efter namn",
- "Send email" : "Skicka e-post",
- "Send welcome email to new accounts" : "Skicka välkomstmail till nya konton",
- "Defaults" : "Standardvärden",
- "Default quota" : "Standard kvot",
- "Select default quota" : "Välj standard kvot",
- "Server error while trying to complete WebAuthn device registration" : "Serverfel när du försökte slutföra registreringen av en WebAuthn-enhet",
- "Passwordless authentication requires a secure connection." : "Lösenordsfri autentisering kräver en säker anslutning.",
- "Add WebAuthn device" : "Lägg till WebAuthn-enhet",
- "Please authorize your WebAuthn device." : "Godkänn din WebAuthn-enhet.",
- "Adding your device …" : "Lägger till din enhet ....",
- "Unnamed device" : "Namnlös enhet",
- "Passwordless Authentication" : "Lösenordsfri autentisering",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Ställ in ditt konto för lösenordsfri autentisering som följer FIDO2-standarden.",
- "No devices configured." : "Inga enheter konfigurerade.",
- "The following devices are configured for your account:" : "Följande enheter är konfigurerade för ditt konto:",
- "Your browser does not support WebAuthn." : "Din webbläsare stödjer inte WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Som administratör kan du fininställa delningsbeteendet. Vänligen se dokumentationen för mer information.",
- "You need to enable the File sharing App." : "Du måste aktivera fildelnings-appen.",
- "App Store" : "App Store",
- "Loading app list" : "Laddar applista",
- "Loading categories" : "Laddar kategorier",
- "Developer documentation ↗" : "Utvecklardokumentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-licensierad",
- "All accounts" : "Alla konton",
- "Admins" : "Administratörer",
- "Account group: {group}" : "Kontogrupp: {group}",
- "Account management" : "Kontohantering",
"Sending…" : "Skickar...",
"Email sent" : "E-post skickad",
"Location" : "Plats",
@@ -620,6 +370,7 @@ OC.L10N.register(
"Date of birth" : "Födelsedatum",
"Full name" : "Namn",
"Additional email" : "Ytterligare e-postadress",
+ "Email" : "E-post",
"Fediverse (e.g. Mastodon)" : "Fediverse (t.ex. Mastodon)",
"Headline" : "Rubrik",
"Organisation" : "Organisation",
@@ -629,6 +380,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (tidigare Twitter)",
"Website" : "Webbplats",
"Profile visibility" : "Profilsynlighet",
+ "Language" : "Språk",
"Locale" : "Plats",
"First day of week" : "Första dagen i veckan",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Inte tillgänglig då denna inställning krävs för essentiell funktionalitet såsom fildelning och kalenderinbjudningar",
@@ -644,11 +396,13 @@ OC.L10N.register(
"Show to everyone" : "Visa för alla",
"Show to logged in accounts only" : "Visa endast till inloggade konton",
"Hide" : "Dölj",
+ "Update to {version}" : "Uppdatera till {version}",
"Download and enable" : "Hämta och aktivera",
"Disable" : "Inaktivera",
"Allow untested app" : "Tillåt otestad app",
"The app will be downloaded from the App Store" : "Appen kommer hämtas från appbutiken",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Den här appen är inte markerad som kompatibel med din Nextcloud-version. Om du fortsätter kan du fortfarande installera appen. Observera att appen kanske inte fungerar som förväntat.",
+ "{size} used" : "{size} använt",
"Unknown" : "Okänd",
"Never" : "Aldrig",
"Could not register device: Network error" : "Kunde inte registrera enheten: Nätverksfel",
@@ -666,8 +420,10 @@ OC.L10N.register(
"Could not set group sorting" : "Kunde inte ställa in gruppsortering",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Det kom för många förfrågningar från ditt nätverk. Försök senare eller kontakta din administratör om detta är ett fel.",
"Error" : "Fel",
+ "Default quota" : "Standard kvot",
"Account documentation" : "Användardokumentation",
"Administration documentation" : "Administratörsdokumentation",
+ "Documentation" : "Dokumentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud hjälp- och sekretessresurser",
"General documentation" : "Dokumentationsöversikt",
@@ -690,6 +446,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP-lösenord",
"Save" : "Spara",
"Test and verify email settings" : "Testa och verifiera e-postinställningar",
+ "Send email" : "Skicka e-post",
"Security & setup warnings" : "Säkerhet & systemvarningar",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Det är viktigt för säkerhet och prestanda av din instans att allt är korrekt konfigurerat. För att hjälpa dig med det gör vi några automatiska kontroller. Se den länkade dokumentationen för mer information.",
"All checks passed." : "Alla kontroller lyckades!",
@@ -709,45 +466,10 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Använd en andra faktor utöver ditt lösenord för att öka säkerheten för ditt konto.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Om du använder tredje-parts applikationer för att ansluta till Nextcloud vänligen skapa och konfigurera ett applösenord för varje innan två-faktor autentisering aktiveras.",
"Logged in account must be a subadmin" : "Inloggat konto måste vara en underadministratör",
- "Missing optional index \"%s\" in table \"%s\"." : "Saknar valfri index \"%s\" i tabellen \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Databasen saknar några index. Dessa adderas inte automatsikt då indexering av stora tabeller kan ta tid. Med kommandot \"occ db:add-missing-indices\" kan de saknade indices läggas till manuellt utan att instansen behöver stoppas. Indexerade tabeller ger oftast mycket snabbare svar.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "För att denna kontroll ska kunna köra måste du se till att webbservern kan ansluta till sig själv. Den måste alltså kunna finna och ansluta till minst en av sina \"trusted_domains\" eller \"overwrite.cli.url\":en. Detta misslyckande kan vara resultatet av en DNS missmatch på serversidan eller utgående brandväggs-regler.",
"File locking" : "Fillåsning",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transaktionsbaserad fillåsning är inaktiverad, detta kan leda till problem med konflikter. Aktivera \"filelocking.enabled\" i config.php för att undvika dessa problem.",
"The PHP memory limit is below the recommended value of %s." : "Minnesgränsen för PHP är under det rekommenderade värdet på %s.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du kör för närvarande PHP %s. PHP 8.0 är nu föråldrat i Nextcloud 27. Nextcloud 28 kan kräva minst PHP 8.1. Vänligen uppgradera till en av de officiellt stödda PHP-versionerna som tillhandahålls av PHP Group så snart som möjligt.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver MariaDB 10.2 eller högre.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL-versionen \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver MySQL 8.0 eller MariaDB 10.2 eller högre.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL-versionen \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver PostgreSQL 9.6 eller högre.",
- "Speech-To-Text" : "Tal-till-text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Tal-till-text kan implementeras av olika appar. Här kan du ställa in vilken app som ska användas.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ingen av dina installerade appar tillhandahåller tal-till-text-funktionalitet",
- "None of your currently installed apps provide Text processing functionality" : "Ingen av dina installerade appar tillhandahåller textbearbetningsfunktioner",
- "Set default expiration date for shares" : "Ställ in standardutgångsdatum för delningar",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Tillåt autokomplettering av användarnamn i delningsdialogen och tillåt åtkomst till systemets adressbok",
- "Your biography" : "Din biografi",
- "You are using <strong>{usage}</strong>" : "Du använder <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Du använder <strong>{usage}</strong> av <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Ställ in användarhanterare",
- "Username will be autogenerated" : "Användarnamn kommer att autogenereras",
- "Username (required)" : "Användarnamn (obligatoriskt)",
- "New user" : "Ny användare",
- "Groups (required)" : "Grupper (obligatoriskt)",
- "Set user groups" : "Ställ in användargrupper",
- "Administered groups" : "Administrerade grupper",
- "Set user as admin for …" : "Ange användare som administratör för...",
- "Set user quota" : "Ställ in användarkvot",
- "Add new user" : "Lägg till ny användare",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} användare …","{userCount} användare …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} användare","{userCount} användare"],
- "Loading users …" : "Laddar användare …",
- "Username" : "Användarnamn",
- "User backend" : "Användarbackend",
- "User actions" : "Användaråtgärder",
- "Add user to group" : "Lägg till användare i grupp",
- "Server error while trying to add WebAuthn device" : "Serverfel när du försökte lägga till en WebAuthn-enhet",
- "Name your device" : "Namnge din enhet",
- "Active accounts" : "Aktiva konton",
- "Follow us on Twitter" : "Följ oss på Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "För att denna kontroll ska kunna köra måste du se till att webbservern kan ansluta till sig själv. Den måste alltså kunna finna och ansluta till minst en av sina \"trusted_domains\" eller \"overwrite.cli.url\":en. Detta misslyckande kan vara resultatet av en DNS missmatch på serversidan eller utgående brandväggs-regler."
+ "Set default expiration date for shares" : "Ställ in standardutgångsdatum för delningar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/sv.json b/apps/settings/l10n/sv.json
index e4e10d0a990..d5a05aee292 100644
--- a/apps/settings/l10n/sv.json
+++ b/apps/settings/l10n/sv.json
@@ -315,69 +315,6 @@
"Could not load section content from app store." : "Det gick inte att ladda avsnittsinnehåll från app store.",
"Loading" : "Läser in",
"Fetching the latest news…" : "Hämtar de senaste nyheterna...",
- "Carousel" : "Karusell",
- "Previous slide" : "Föregående sida",
- "Next slide" : "Nästa sida",
- "Choose slide to display" : "Välj sida att visa",
- "{index} of {total}" : "{index} av {total}",
- "Daemon" : "Demon",
- "Type" : "Typ",
- "Display Name" : "Visningsnamn",
- "Learn more" : "Läs mer",
- "Confirm" : "Bekräfta",
- "Cancel" : "Avbryt",
- "Description" : "Beskrivning",
- "View in store" : "Visa i butik",
- "Visit website" : "Besök webbplats",
- "Usage documentation" : "Användardokumentation",
- "Admin documentation" : "Administratörsdokumentation",
- "Developer documentation" : "Utvecklardokumentation",
- "Details" : "Detaljer",
- "All" : "Alla",
- "Limit app usage to groups" : "Begränsa appanvändning till grupper",
- "No results" : "Inga resultat",
- "Update to {version}" : "Uppdatera till {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen lägsta Nextcloud-version tilldelad. Detta kommer att innebära ett problem i framtiden.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen minimum Nextcloud-version tilldelad. Detta kommer att innebära ett problem i framtiden.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Denna applikation kan inte installeras då följande beroenden inte är uppfyllda: %s",
- "Latest updated" : "Senast uppdaterad",
- "Author" : "Upphovsman",
- "Categories" : "Kategorier",
- "Resources" : "Resurser",
- "Documentation" : "Dokumentation",
- "Interact" : "Interagera",
- "Report a bug" : "Rapportera ett problem",
- "Request feature" : "Begär egenskap",
- "Ask questions or discuss" : "Ställ frågor eller diskutera",
- "Rate the app" : "Betygsätt appen",
- "Rate" : "Betygsätt",
- "Changelog" : "Ändringslogg",
- "Google Chrome for Android" : "Google Chrome för Android",
- "{productName} iOS app" : "{productName} iOS app",
- "{productName} Android app" : "{productName} Android app",
- "{productName} Talk for iOS" : "{productName} Talk för iOS",
- "{productName} Talk for Android" : "{productName} Talk för Android",
- "Sync client" : "Synkklient",
- "This session" : "Denna session ",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Enhetsnamn",
- "Cancel renaming" : "Avbryt namnändring",
- "Save new name" : "Spara nya namnet",
- "Marked for remote wipe" : "Markerad för fjärrensning",
- "Device settings" : "Enhetsinställningar",
- "Allow filesystem access" : "Tillåt åtkomst till filsystemet",
- "Rename" : "Byt namn",
- "Revoke" : "Återkalla",
- "Wipe device" : "Rensa enhet",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Återkallning kan förhindra att enheten rensas om inte rensningen redan har startat.",
- "Device" : "Enhet",
- "Last activity" : "Senaste aktivitet",
- "Devices & sessions" : "Enheter & sessioner",
- "Web, desktop and mobile clients currently logged in to your account." : "Webb-, skrivbords- och mobila klienter som är inloggade på ditt konto just nu.",
- "Error while creating device token" : "Fel vid skapande av enhetstoken",
- "App name" : "Appnamn",
- "Create new app password" : "Skapa nytt applösenord",
"App password copied!" : "Applösenordet har kopierats!",
"Copy app password" : "Kopiera applösenord",
"Login name copied!" : "Inloggningsnamnet kopierat!",
@@ -402,6 +339,7 @@
"Unable to update profile default setting" : "Det gick inte att uppdatera profilens standardinställning",
"Profile" : "Profil",
"Enable or disable profile by default for new accounts." : "Aktivera eller inaktivera profil som standard för nya konton.",
+ "Password confirmation is required" : "Lösenordsbekräftelse krävs",
"Failed to save setting" : "Kunde inte spara inställning",
"Unable to update server side encryption config" : "Kunde inte uppdatera serversidans krypteringskonfiguration",
"Server-side encryption" : "Serverkryptering",
@@ -417,199 +355,11 @@
"Be aware that encryption always increases the file size." : "OBS! Observera att kryptering alltid ökar filstorleken",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det är alltid en god ide att skapa regelbundna säkerhetskopior av din data, om kryptering används var säker på att även krypteringsnycklarna säkerhetskopieras tillsammans med din data.",
"This is the final warning: Do you really want to enable encryption?" : "Detta är en slutgiltig varning: Vill du verkligen aktivera kryptering?",
- "Failed to remove group \"{group}\"" : "Det gick inte att ta bort gruppen \"{group}\"",
"Please confirm the group removal" : "Bekräfta borttagning av gruppen",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "Du håller på att ta bort gruppen \"{group}\". Kontona kommer INTE att raderas.",
+ "Cancel" : "Avbryt",
+ "Confirm" : "Bekräfta",
"Submit" : "Skicka",
"Rename group" : "Byt namn på grupp",
- "Remove group" : "Ta bort grupp",
- "Current password" : "Nuvarande lösenord",
- "New password" : "Nytt lösenord",
- "Change password" : "Ändra lösenord",
- "Choose your profile picture" : "Välj din profilbild",
- "Please select a valid png or jpg file" : "Välj en giltig png- eller jpg-fil",
- "Error setting profile picture" : "Fel vid inställning av profilbild",
- "Error cropping profile picture" : "Det gick inte att beskära profilbilden",
- "Error saving profile picture" : "Det gick inte att spara profilbilden",
- "Error removing profile picture" : "Det gick inte att ta bort profilbilden",
- "Your profile picture" : "Din profilbild",
- "Upload profile picture" : "Ladda upp profilbild",
- "Choose profile picture from Files" : "Välj profilbild från filer",
- "Remove profile picture" : "Ta bort profilbild",
- "The file must be a PNG or JPG" : "Filen måste vara en PNG eller JPG",
- "Picture provided by original account" : "Bild gjordes tillgänglig av orginalkonto",
- "Set as profile picture" : "Ställ in som profilbild",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Observera att det kan ta upp till 24 timmar för din profilbild att uppdateras överallt.",
- "Your biography. Markdown is supported." : "Din biografi. Markdown stöds.",
- "Unable to update date of birth" : "Det gick inte att uppdatera födelsedatum",
- "Enter your date of birth" : "Ange ditt födelsedatum",
- "You are using {s}{usage}{/s}" : "Du använder {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "Du använder {s}{usage}{/s} av {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "Du är medlem i följande grupper:",
- "Your full name" : "Ditt fullständiga namn",
- "Email options" : "E-postinställningar",
- "Options for additional email address {index}" : "Alternativ för ytterligare e-postadress {index}",
- "Remove primary email" : "Ta bort primär e-postadress",
- "Delete email" : "Ta bort e-post",
- "This address is not confirmed" : "Denna adress är inte verifierad",
- "Unset as primary email" : "Ta bort som primär e-post",
- "Set as primary email" : "Välj som primär e-post",
- "Additional email address {index}" : "Ytterligare e-postadress {index}",
- "Unable to delete primary email address" : "Kunde inte ta bort primär e-postadress",
- "Unable to update primary email address" : "Kunde inte uppdatera primär e-postadress",
- "Unable to add additional email address" : "Kunde inte lägga till ytterligare e-postadress",
- "Unable to update additional email address" : "Kunde inte uppdatera ytterligare e-postadress",
- "Unable to delete additional email address" : "Kunde inte ta bort ytterligare e-postadress",
- "Primary email for password reset and notifications" : "Primär e-postadress för notifikationer och återställning av lösenord",
- "No email address set" : "Ingen e-postadress angiven",
- "Your handle" : "Ditt kontonamn",
- "Derived from your locale ({weekDayName})" : "Härledd från din plats ({weekDayName})",
- "Unable to update first day of week" : "Kunde inte uppdatera första veckodagen",
- "Day to use as the first day of week" : "Dag att använda som första veckodag",
- "Your headline" : "Din rubrik",
- "Unable to update language" : "Kunde inte uppdatera språk",
- "Languages" : "Språk",
- "Help translate" : "Hjälp till med översättningarna",
- "No language set" : "Inget språk angivet",
- "Unable to update locale" : "Det gick inte att uppdatera språk",
- "Locales" : "Platser",
- "Week starts on {firstDayOfWeek}" : "Veckan börjar med {firstDayOfWeek}",
- "No locale set" : "Inget språk angivet",
- "Your city" : "Din stad",
- "Your organisation" : "Din organisation",
- "Your phone number" : "Ditt telefonnummer",
- "Edit your Profile visibility" : "Ändra synligheten för din profil",
- "Unable to update profile enabled state" : "Kunde inte uppdatera profilaktivering",
- "Enable profile" : "Aktivera profil",
- "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." : "Den mer restriktiva inställningen av antingen synlighet eller omfattning respekteras på din profil. Till exempel, om synlighet är inställd på \"Visa för alla\" och omfattningen är inställd på \"Privat\", respekteras \"Privat\".",
- "Unable to update visibility of {displayId}" : "Kunde inte uppdatera synlighet för {displayId}",
- "she/her" : "hon/henne",
- "he/him" : "han/honom",
- "they/them" : "de/dem",
- "Your role" : "Din roll",
- "Your X (formerly Twitter) handle" : "Ditt användarnamn på X (tidigare Twitter)",
- "Your website" : "Din webbsida",
- "Invalid value" : "Ogiltigt värde",
- "Unable to update {property}" : "Det gick inte att uppdatera {property}",
- "No {property} set" : "Ingen {property} inställd",
- "Change scope level of {property}, current scope is {scope}" : "Ändra omfattningsnivå för {property}, nuvarande omfattning är {scope}",
- "Unable to update federation scope of the primary {property}" : "Det gick inte att uppdatera federationsomfånget för den primära {property}",
- "Unable to update federation scope of additional {property}" : "Det gick inte att uppdatera federationens omfattning för ytterligare {property}",
- "Add additional email" : "Lägg till ytterligare e-post",
- "Add" : "Lägg till",
- "Create" : "Skapa",
- "Change" : "Ändra",
- "Delete" : "Radera",
- "Reshare" : "Dela vidare",
- "Default language" : "Standardspråk",
- "Common languages" : "Vanliga språk",
- "Other languages" : "Andra språk",
- "Password change is disabled because the master key is disabled" : "Lösenordsbyte är inaktiverat eftersom huvudnyckeln är inaktiverad",
- "No accounts" : "Inga konton",
- "Loading accounts …" : "Laddar konton ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Lista över konton. Denna lista är inte helt återgiven av prestandaskäl. Konton kommer att renderas när du navigerar genom listan.",
- "Manager" : "Chef",
- "Set line manager" : "Ange linjechef",
- "Account name will be autogenerated" : "Kontonamn kommer att autogenereras",
- "Account name (required)" : "Kontonamn (obligatoriskt)",
- "Failed to search groups" : "Kunde inte söka efter grupper",
- "New account" : "Nytt konto",
- "Display name" : "Visningsnamn",
- "Either password or email is required" : "Antingen lösenord eller e-post krävs",
- "Password (required)" : "Lösenord (obligatoriskt)",
- "Email (required)" : "E-post (obligatoriskt)",
- "Email" : "E-post",
- "Member of the following groups (required)" : "Medlem i följande grupper (obligatoriskt)",
- "Member of the following groups" : "Medlem i följande grupper",
- "Set account groups" : "Ställ in kontogrupper",
- "Admin of the following groups" : "Administratör för följande grupper",
- "Set account as admin for …" : "Ange konto som administratör för ...",
- "Quota" : "Lagringsutrymme",
- "Set account quota" : "Ställ in kvot för konto",
- "Language" : "Språk",
- "Set default language" : "Ställ in standardspråk",
- "Add new account" : "Lägg till nytt konto",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} konto …","{userCount} konton …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} konto","{userCount} konton"],
- "Total rows summary" : "Sammanfattning antal rader",
- "Scroll to load more rows" : "Bläddra för att ladda fler rader",
- "Password or insufficient permissions message" : "Lösenord eller meddelande om otillräckliga behörigheter",
- "Avatar" : "Avatar",
- "Account name" : "Kontonamn",
- "Group admin for" : "Gruppadministratör för",
- "Storage location" : "Lagringsplats",
- "Last login" : "Senaste inloggning",
- "Account actions" : "Kontoåtgärder",
- "{size} used" : "{size} använt",
- "Delete account" : "Radera konto",
- "Disconnect all devices and delete local data" : "Koppla bort alla enheter och radera lokalt data",
- "Disable account" : "Inaktivera konto",
- "Enable account" : "Aktivera konto",
- "Resend welcome email" : "Skicka om välkomstmeddelande via e-post",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Om användaren förlorar sin enhet eller lämnar organisationen, kan all Nextcloud-data fjärrensas från alla enheter associerade med {userid}. Fungerar bara om enheterna är anslutna till internet.",
- "Remote wipe of devices" : "Fjärrensning av enheter",
- "Wipe {userid}'s devices" : "Rensa enheter för {userid}",
- "Wiped {userid}'s devices" : "Rensade enheter för {userid}",
- "Failed to load groups with details" : "Kunde inte läsa in grupper med detaljer",
- "Failed to update line manager" : "Kunde inte uppdatera linjechef",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Fullständig radering av konto för {userid} inklusive alla personliga filer, appdata etc.",
- "Account deletion" : "Radering av konto",
- "Delete {userid}'s account" : "Ta bort konto för {userid}",
- "Display name was successfully changed" : "Visningsnamnet har ändrats",
- "Password can't be empty" : "Lösenord får inte vara tomt",
- "Password was successfully changed" : "Lösenordet har ändrats",
- "Email can't be empty" : "E-post får inte vara tomt",
- "Email was successfully changed" : "E-postadressen har ändrats",
- "Welcome mail sent!" : "Välkomstmeddelande skickat via e-post!",
- "Loading account …" : "Laddar konto ...",
- "Change display name" : "Ändra visningsnamn",
- "Set new password" : "Ange nytt lösenord",
- "You do not have permissions to see the details of this account" : "Du har inte behörighet att se detaljerna för detta konto.",
- "Set new email address" : "Ange ny e-postadress",
- "Add account to group" : "Lägg till konto till grupp",
- "Set account as admin for" : "Ange konto som administratör för",
- "Select account quota" : "Välj kvot för konto",
- "Set the language" : "Ställ in språk",
- "Toggle account actions menu" : "Växla menyn med kontoåtgärder",
- "Done" : "Färdig",
- "Edit" : "Redigera",
- "Account management settings" : "Inställningar kontohantering",
- "Visibility" : "Synlighet",
- "Show language" : "Visa språk",
- "Show storage path" : "Visa lagringsväg",
- "Show last login" : "Visa senaste inloggning",
- "Sorting" : "Sortering",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Systemkonfigurationen tvingar sortering av grupper efter namn. Detta inaktiverar också visning av medlemsantal.",
- "Group list sorting" : "Sortering av grupplistor",
- "By member count" : "Efter medlemsantal",
- "By name" : "Efter namn",
- "Send email" : "Skicka e-post",
- "Send welcome email to new accounts" : "Skicka välkomstmail till nya konton",
- "Defaults" : "Standardvärden",
- "Default quota" : "Standard kvot",
- "Select default quota" : "Välj standard kvot",
- "Server error while trying to complete WebAuthn device registration" : "Serverfel när du försökte slutföra registreringen av en WebAuthn-enhet",
- "Passwordless authentication requires a secure connection." : "Lösenordsfri autentisering kräver en säker anslutning.",
- "Add WebAuthn device" : "Lägg till WebAuthn-enhet",
- "Please authorize your WebAuthn device." : "Godkänn din WebAuthn-enhet.",
- "Adding your device …" : "Lägger till din enhet ....",
- "Unnamed device" : "Namnlös enhet",
- "Passwordless Authentication" : "Lösenordsfri autentisering",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Ställ in ditt konto för lösenordsfri autentisering som följer FIDO2-standarden.",
- "No devices configured." : "Inga enheter konfigurerade.",
- "The following devices are configured for your account:" : "Följande enheter är konfigurerade för ditt konto:",
- "Your browser does not support WebAuthn." : "Din webbläsare stödjer inte WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Som administratör kan du fininställa delningsbeteendet. Vänligen se dokumentationen för mer information.",
- "You need to enable the File sharing App." : "Du måste aktivera fildelnings-appen.",
- "App Store" : "App Store",
- "Loading app list" : "Laddar applista",
- "Loading categories" : "Laddar kategorier",
- "Developer documentation ↗" : "Utvecklardokumentation ↗",
- "Version {version}, {license}-licensed" : "Version {version}, {license}-licensierad",
- "All accounts" : "Alla konton",
- "Admins" : "Administratörer",
- "Account group: {group}" : "Kontogrupp: {group}",
- "Account management" : "Kontohantering",
"Sending…" : "Skickar...",
"Email sent" : "E-post skickad",
"Location" : "Plats",
@@ -618,6 +368,7 @@
"Date of birth" : "Födelsedatum",
"Full name" : "Namn",
"Additional email" : "Ytterligare e-postadress",
+ "Email" : "E-post",
"Fediverse (e.g. Mastodon)" : "Fediverse (t.ex. Mastodon)",
"Headline" : "Rubrik",
"Organisation" : "Organisation",
@@ -627,6 +378,7 @@
"X (formerly Twitter)" : "X (tidigare Twitter)",
"Website" : "Webbplats",
"Profile visibility" : "Profilsynlighet",
+ "Language" : "Språk",
"Locale" : "Plats",
"First day of week" : "Första dagen i veckan",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Inte tillgänglig då denna inställning krävs för essentiell funktionalitet såsom fildelning och kalenderinbjudningar",
@@ -642,11 +394,13 @@
"Show to everyone" : "Visa för alla",
"Show to logged in accounts only" : "Visa endast till inloggade konton",
"Hide" : "Dölj",
+ "Update to {version}" : "Uppdatera till {version}",
"Download and enable" : "Hämta och aktivera",
"Disable" : "Inaktivera",
"Allow untested app" : "Tillåt otestad app",
"The app will be downloaded from the App Store" : "Appen kommer hämtas från appbutiken",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Den här appen är inte markerad som kompatibel med din Nextcloud-version. Om du fortsätter kan du fortfarande installera appen. Observera att appen kanske inte fungerar som förväntat.",
+ "{size} used" : "{size} använt",
"Unknown" : "Okänd",
"Never" : "Aldrig",
"Could not register device: Network error" : "Kunde inte registrera enheten: Nätverksfel",
@@ -664,8 +418,10 @@
"Could not set group sorting" : "Kunde inte ställa in gruppsortering",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Det kom för många förfrågningar från ditt nätverk. Försök senare eller kontakta din administratör om detta är ett fel.",
"Error" : "Fel",
+ "Default quota" : "Standard kvot",
"Account documentation" : "Användardokumentation",
"Administration documentation" : "Administratörsdokumentation",
+ "Documentation" : "Dokumentation",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud hjälp- och sekretessresurser",
"General documentation" : "Dokumentationsöversikt",
@@ -688,6 +444,7 @@
"SMTP Password" : "SMTP-lösenord",
"Save" : "Spara",
"Test and verify email settings" : "Testa och verifiera e-postinställningar",
+ "Send email" : "Skicka e-post",
"Security & setup warnings" : "Säkerhet & systemvarningar",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Det är viktigt för säkerhet och prestanda av din instans att allt är korrekt konfigurerat. För att hjälpa dig med det gör vi några automatiska kontroller. Se den länkade dokumentationen för mer information.",
"All checks passed." : "Alla kontroller lyckades!",
@@ -707,45 +464,10 @@
"Use a second factor besides your password to increase security for your account." : "Använd en andra faktor utöver ditt lösenord för att öka säkerheten för ditt konto.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Om du använder tredje-parts applikationer för att ansluta till Nextcloud vänligen skapa och konfigurera ett applösenord för varje innan två-faktor autentisering aktiveras.",
"Logged in account must be a subadmin" : "Inloggat konto måste vara en underadministratör",
- "Missing optional index \"%s\" in table \"%s\"." : "Saknar valfri index \"%s\" i tabellen \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Databasen saknar några index. Dessa adderas inte automatsikt då indexering av stora tabeller kan ta tid. Med kommandot \"occ db:add-missing-indices\" kan de saknade indices läggas till manuellt utan att instansen behöver stoppas. Indexerade tabeller ger oftast mycket snabbare svar.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "För att denna kontroll ska kunna köra måste du se till att webbservern kan ansluta till sig själv. Den måste alltså kunna finna och ansluta till minst en av sina \"trusted_domains\" eller \"overwrite.cli.url\":en. Detta misslyckande kan vara resultatet av en DNS missmatch på serversidan eller utgående brandväggs-regler.",
"File locking" : "Fillåsning",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Transaktionsbaserad fillåsning är inaktiverad, detta kan leda till problem med konflikter. Aktivera \"filelocking.enabled\" i config.php för att undvika dessa problem.",
"The PHP memory limit is below the recommended value of %s." : "Minnesgränsen för PHP är under det rekommenderade värdet på %s.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Du kör för närvarande PHP %s. PHP 8.0 är nu föråldrat i Nextcloud 27. Nextcloud 28 kan kräva minst PHP 8.1. Vänligen uppgradera till en av de officiellt stödda PHP-versionerna som tillhandahålls av PHP Group så snart som möjligt.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB version \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver MariaDB 10.2 eller högre.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL-versionen \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver MySQL 8.0 eller MariaDB 10.2 eller högre.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL-versionen \"%s\" används. Nextcloud 21 och högre stöder inte denna version och kräver PostgreSQL 9.6 eller högre.",
- "Speech-To-Text" : "Tal-till-text",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Tal-till-text kan implementeras av olika appar. Här kan du ställa in vilken app som ska användas.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Ingen av dina installerade appar tillhandahåller tal-till-text-funktionalitet",
- "None of your currently installed apps provide Text processing functionality" : "Ingen av dina installerade appar tillhandahåller textbearbetningsfunktioner",
- "Set default expiration date for shares" : "Ställ in standardutgångsdatum för delningar",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Tillåt autokomplettering av användarnamn i delningsdialogen och tillåt åtkomst till systemets adressbok",
- "Your biography" : "Din biografi",
- "You are using <strong>{usage}</strong>" : "Du använder <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Du använder <strong>{usage}</strong> av <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Ställ in användarhanterare",
- "Username will be autogenerated" : "Användarnamn kommer att autogenereras",
- "Username (required)" : "Användarnamn (obligatoriskt)",
- "New user" : "Ny användare",
- "Groups (required)" : "Grupper (obligatoriskt)",
- "Set user groups" : "Ställ in användargrupper",
- "Administered groups" : "Administrerade grupper",
- "Set user as admin for …" : "Ange användare som administratör för...",
- "Set user quota" : "Ställ in användarkvot",
- "Add new user" : "Lägg till ny användare",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} användare …","{userCount} användare …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} användare","{userCount} användare"],
- "Loading users …" : "Laddar användare …",
- "Username" : "Användarnamn",
- "User backend" : "Användarbackend",
- "User actions" : "Användaråtgärder",
- "Add user to group" : "Lägg till användare i grupp",
- "Server error while trying to add WebAuthn device" : "Serverfel när du försökte lägga till en WebAuthn-enhet",
- "Name your device" : "Namnge din enhet",
- "Active accounts" : "Aktiva konton",
- "Follow us on Twitter" : "Följ oss på Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "För att denna kontroll ska kunna köra måste du se till att webbservern kan ansluta till sig själv. Den måste alltså kunna finna och ansluta till minst en av sina \"trusted_domains\" eller \"overwrite.cli.url\":en. Detta misslyckande kan vara resultatet av en DNS missmatch på serversidan eller utgående brandväggs-regler."
+ "Set default expiration date for shares" : "Ställ in standardutgångsdatum för delningar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/th.js b/apps/settings/l10n/th.js
index 1fb141f89cd..6035d448063 100644
--- a/apps/settings/l10n/th.js
+++ b/apps/settings/l10n/th.js
@@ -103,47 +103,6 @@ OC.L10N.register(
"_%n app has an update available_::_%n apps have an update available_" : ["%n แอปมีอัปเดตใหม่"],
"Group name" : "ชื่อกลุ่ม",
"Loading" : "กำลังโหลด",
- "Type" : "ประเภท",
- "Confirm" : "ยืนยัน",
- "Cancel" : "ยกเลิก",
- "Description" : "คำอธิบาย",
- "View in store" : "ดูในร้านค้า",
- "Visit website" : "เข้าสู่เว็บไซต์",
- "Admin documentation" : "เอกสารประกอบสำหรับผู้ดูแลระบบ",
- "Developer documentation" : "เอกสารประกอบสำหรับนักพัฒนา",
- "Details" : "รายละเอียด",
- "All" : "ทั้งหมด",
- "Limit app usage to groups" : "จำกัดการใช้แอปสำหรับกลุ่ม",
- "No results" : "ไม่มีผลลัพธ์",
- "Update to {version}" : "อัปเดตเป็น {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "แอปนี้ไม่ได้ระบุรุ่นขั้นต่ำของ Nextcloud ซึ่งอาจเป็นปัญหาในอนาคตได้",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "แอปนี้ไม่ได้ระบุรุ่นสูงสุดของ Nextcloud ซึ่งอาจเป็นปัญหาในอนาคตได้",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "ไม่สามารถติดตั้งแอปนี้ เนื่องจากสิ่งที่พึ่งพาต่อไปนี้ยังไม่ครบ:",
- "Categories" : "หมวดหมู่",
- "Resources" : "ทรัพยากร",
- "Documentation" : "เอกสารประกอบ",
- "Report a bug" : "รายงานข้อผิดพลาด",
- "Changelog" : "บันทึกการเปลี่ยนแปลง",
- "Google Chrome for Android" : "Google Chrome สำหรับ Android",
- "{productName} iOS app" : "แอป {productName} สำหรับ iOS",
- "{productName} Android app" : "แอป {productName} สำหรับ Android",
- "{productName} Talk for iOS" : "{productName} Talk สำหรับ iOS",
- "{productName} Talk for Android" : "{productName} Talk สำหรับ Android",
- "Sync client" : "ไคลเอ็นต์ซิงค์",
- "This session" : "เซสชันนี้",
- "Marked for remote wipe" : "ระบุสำหรับการล้างระยะไกลแล้ว",
- "Device settings" : "การตั้งค่าอุปกรณ์",
- "Allow filesystem access" : "อนุญาตให้เข้าถึงระบบไฟล์",
- "Rename" : "เปลี่ยนชื่อ",
- "Revoke" : "เพิกถอน",
- "Wipe device" : "ล้างอุปกรณ์",
- "Device" : "อุปกรณ์",
- "Last activity" : "กิจกรรมล่าสุด",
- "Devices & sessions" : "อุปกรณ์และเซสซัน",
- "Web, desktop and mobile clients currently logged in to your account." : "ไคลเอ็นต์เว็บ เดสก์ท็อป และมือถือที่เข้าสู่ระบบบัญชีของคุณอยู่",
- "Error while creating device token" : "ข้อผิดพลาดขณะสร้างโทเค็นอุปกรณ์",
- "App name" : "ชื่อแอป",
- "Create new app password" : "สร้างรหัสผ่านแอปใหม่",
"Could not copy app password. Please copy it manually." : "ไม่สามารถคัดลอกรหัสผ่านแอป โปรดคัดลอกด้วยตนเอง",
"Login" : "เข้าสู่ระบบ",
"Password" : "รหัสผ่าน",
@@ -158,73 +117,19 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "โปรดทราบว่าการเข้ารหัสไฟล์จะทำให้ขนาดของไฟล์ใหญ่ขึ้นเสมอ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "การสำรองข้อมูลของคุณเป็นประจำเป็นเรื่องที่ดีเสมอ ในกรณีของการเข้ารหัส อย่าลืมสำรองคีย์เข้ารหัสพร้อมข้อมูลของคุณด้วย",
"This is the final warning: Do you really want to enable encryption?" : "นี่คือการเตือนครั้งสุดท้าย: คุณต้องการเปิดใช้การเข้ารหัสจริง ๆ หรือไม่?",
+ "Cancel" : "ยกเลิก",
+ "Confirm" : "ยืนยัน",
"Submit" : "ส่ง",
- "Remove group" : "ลบกลุ่ม",
- "Current password" : "รหัสผ่านปัจจุบัน",
- "New password" : "รหัสผ่านใหม่",
- "Change password" : "เปลี่ยนรหัสผ่าน",
- "Picture provided by original account" : "ใช้รูปภาพจากบัญชีเดิม",
- "Email options" : "ตัวเลือกอีเมล",
- "Remove primary email" : "ลบอีเมลหลักออก",
- "Delete email" : "ลบอีเมล",
- "Additional email address {index}" : "ที่อยู่อีเมลเพิ่มเติม {index}",
- "Primary email for password reset and notifications" : "อีเมลหลักสำหรับการตั้งรหัสผ่านใหม่และการแจ้งเตือน",
- "No email address set" : "ไม่ได้ระบุที่อยู่อีเมล",
- "Help translate" : "ช่วยแปล",
- "No language set" : "ไม่ได้ตั้งภาษา",
- "Add" : "เพิ่ม",
- "Create" : "สร้าง",
- "Change" : "เปลี่ยนแปลง",
- "Delete" : "ลบ",
- "Default language" : "ภาษาค่าเริ่มต้น",
- "Common languages" : "ภาษาที่นิยม",
- "Password change is disabled because the master key is disabled" : "การเปลี่ยนรหัสผ่านถูกปิดการใช้งาน เนื่องจากคีย์หลักถูกปิดการใช้งาน",
- "Display name" : "ชื่อที่แสดง",
- "Email" : "อีเมล",
- "Quota" : "โควต้า",
- "Language" : "ภาษา",
- "Avatar" : "ภาพแทนตัว",
- "Account name" : "ชื่อบัญชี",
- "Group admin for" : "ผู้ดูแลกลุ่มสำหรับ",
- "Storage location" : "สถานที่จัดเก็บข้อมูล",
- "Last login" : "เข้าสู่ระบบล่าสุด",
- "{size} used" : "ใช้ไป {size}",
- "Delete account" : "ลบบัญชี",
- "Resend welcome email" : "ส่งอีเมลยินดีต้อนรับซ้ำ",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "ในกรณีที่อุปกรณ์สูญหายหรือออกจากองค์กร ตัวเลือกนี้สามารถล้างข้อมูล Nextcloud จากทุกอุปกรณ์ที่เชื่อมโยงกับ {userid} จากระยะไกล การล้างข้อมูลจะทำงานเฉพาะเมื่ออุปกรณ์เชื่อมต่อกับอินเทอร์เน็ตเท่านั้น",
- "Remote wipe of devices" : "ล้างอุปกรณ์จากระยะไกล",
- "Wipe {userid}'s devices" : "ล้างอุปกรณ์ของ {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "ลบบัญชีของ {userid} ทั้งหมด รวมถึงไฟล์ส่วนตัว ข้อมูลแอป และอื่น ๆ ทั้งหมด",
- "Account deletion" : "การลบบัญชี",
- "Delete {userid}'s account" : "ลบบัญชีของ {userid}",
- "Welcome mail sent!" : "ส่งอีเมลยินดีต้อนรับแล้ว!",
- "Done" : "เสร็จสิ้น",
- "Edit" : "แก้ไข",
- "Show storage path" : "แสดงเส้นทางจัดเก็บข้อมูล",
- "Show last login" : "แสดงการเข้าสู่ระบบล่าสุด",
- "Send email" : "ส่งอีเมล",
- "Default quota" : "ค่าโควต้าเริ่มต้น",
- "Select default quota" : "เลือกค่าโควต้าเริ่มต้น",
- "Server error while trying to complete WebAuthn device registration" : "เกิดข้อผิดพลาดเซิร์ฟเวอร์ขณะกำลังพยายามลงทะเบียนอุปกรณ์ WebAuthn ให้เสร็จสิ้น",
- "Passwordless authentication requires a secure connection." : "การรับรองความถูกต้องแบบไร้รหัสผ่านต้องใช้การเชื่อมต่อที่ปลอดภัย",
- "Add WebAuthn device" : "เพิ่มอุปกรณ์ WebAuthn",
- "Please authorize your WebAuthn device." : "โปรดอนุมัติอุปกรณ์ WebAuthn ของคุณ",
- "Adding your device …" : "กำลังเพิ่มอุปกรณ์ …",
- "Unnamed device" : "อุปกรณ์ไม่มีชื่อ",
- "Passwordless Authentication" : "การรับรองความถูกต้องแบบไร้รหัสผ่าน",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "ตั้งค่าบัญชีของคุณเพื่อใช้การรับรองความถูกต้องแบบไร้รหัสผ่านตามมาตรฐาน FIDO2",
- "No devices configured." : "ไม่มีอุปกรณ์ที่กำหนดค่า",
- "The following devices are configured for your account:" : "อุปกรณ์เหล่านี้มีการกำหนดค่าสำหรับบัญชีของคุณแล้ว:",
- "Your browser does not support WebAuthn." : "เบราว์เซอร์ของคุณไม่รองรับ WebAuthn",
- "Admins" : "ผู้ดูแลระบบ",
"Sending…" : "กำลังส่ง....",
"Email sent" : "ส่งอีเมลแล้ว",
"Location" : "ตำแหน่ง",
"Profile picture" : "รูปภาพโปรไฟล์",
"About" : "เกี่ยวกับ",
"Full name" : "ชื่อเต็ม",
+ "Email" : "อีเมล",
"Phone number" : "หมายเลขโทรศัพท์",
"Website" : "เว็บไซต์",
+ "Language" : "ภาษา",
"Locale" : "ตำแหน่งที่ตั้ง",
"Your apps" : "แอปของคุณ",
"Active apps" : "แอปที่เปิดใช้งานอยู่",
@@ -233,10 +138,12 @@ OC.L10N.register(
"App bundles" : "ชุดรวมแอป",
"Featured apps" : "แอปแนะนำ",
"Hide" : "ซ๋อน",
+ "Update to {version}" : "อัปเดตเป็น {version}",
"Download and enable" : "ดาวน์โหลดและเปิดใช้งาน",
"Disable" : "ปิดใช้งาน",
"The app will be downloaded from the App Store" : "แอปจะถูกดาวน์โหลดจากร้านค้าแอป",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "แอปนี้ยังไม่ถูกระบุว่ารองรับกับรุ่น Nextcloud ของคุณ หากคุณดำเนินการต่อ คุณจะสามารถติดตั้งแอปได้ แต่แอปอาจไม่ทำงานอย่างที่คาดหวังไว้",
+ "{size} used" : "ใช้ไป {size}",
"Unknown" : "ไม่ทราบ",
"Never" : "ไม่เคย",
"Error: This app cannot be enabled because it makes the server unstable" : "ข้อผิดพลาด: ไม่สามารถเปิดใช้งานแอปนี้เพราะทำให้เซิร์ฟเวอร์ไม่เสถียร",
@@ -248,6 +155,8 @@ OC.L10N.register(
"Error while updating device token scope" : "ข้อผิดพลาดขณะอัปเดตขอบเขตโทเค็นอุปกรณ์",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "มีการส่งคำขอจากเครือข่ายของคุณมากเกินไป กรุณาลองอีกครั้งในภายหลัง หรือติดต่อผู้ดูแลระบบหากเป็นข้อผิดพลาด",
"Error" : "ข้อผิดพลาด",
+ "Default quota" : "ค่าโควต้าเริ่มต้น",
+ "Documentation" : "เอกสารประกอบ",
"Forum" : "ฟอรัม",
"SSL" : "SSL",
"Open documentation" : "เปิดเอกสารประกอบ",
@@ -263,6 +172,7 @@ OC.L10N.register(
"Credentials" : "ข้อมูลส่วนตัวสำหรับเข้าระบบ",
"SMTP Password" : "รหัสผ่าน SMTP",
"Save" : "บันทึก",
+ "Send email" : "ส่งอีเมล",
"Security & setup warnings" : "คำเตือนความปลอดภัยและการติดตั้ง",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "การกำหนดค่าทุกอย่างให้ถูกต้องเป็นสิ่งสำคัญสำหรับความปลอดภัยและประสิทธิภาพของเซิร์ฟเวอร์ของคุณ เพื่อช่วยคุณในเรื่องนี้ เรากำลังทำการตรวจสอบอัตโนมัติ โปรดดูเอกสารประกอบที่ลิงก์มาสำหรับข้อมูลเพิ่มเติม",
"All checks passed." : "ผ่านการตรวจสอบทั้งหมด",
@@ -273,12 +183,6 @@ OC.L10N.register(
"Check the security of your Nextcloud over <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">our security scan ↗</a>." : "ตรวจสอบความปลอดภัยของ Nextcloud ของคุณผ่าน<a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">การสแกนความปลอดภัยของเรา ↗</a>",
"Reasons to use Nextcloud in your organization" : "เหตุผลที่ควรใช้ Nextcloud ในองค์กรของคุณ",
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "รุ่นที่ออกโดยชุมชนของ Nextcloud นี้ไม่ได้รับการสนับสนุน และไม่สามารถใช้งานการแจ้งเตือนทันทีได้",
- "Set default expiration date for shares" : "ตั้งวันหมดอายุค่าเริ่มต้นสำหรับการแชร์",
- "New user" : "ผู้ใช้ใหม่",
- "Username" : "ชื่อผู้ใช้",
- "User backend" : "แบ็กเอนด์ของผู้ใช้",
- "Add user to group" : "เพิ่มผู้ใช้เข้ากลุ่ม",
- "Server error while trying to add WebAuthn device" : "เกิดข้อผิดพลาดเซิร์ฟเวอร์ขณะกำลังพยายามเพิ่มอุปกรณ์ WebAuthn",
- "Name your device" : "ตั้งชื่ออุปกรณ์ของคุณ"
+ "Set default expiration date for shares" : "ตั้งวันหมดอายุค่าเริ่มต้นสำหรับการแชร์"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/th.json b/apps/settings/l10n/th.json
index 9d6648c4398..dc0fc7fbb04 100644
--- a/apps/settings/l10n/th.json
+++ b/apps/settings/l10n/th.json
@@ -101,47 +101,6 @@
"_%n app has an update available_::_%n apps have an update available_" : ["%n แอปมีอัปเดตใหม่"],
"Group name" : "ชื่อกลุ่ม",
"Loading" : "กำลังโหลด",
- "Type" : "ประเภท",
- "Confirm" : "ยืนยัน",
- "Cancel" : "ยกเลิก",
- "Description" : "คำอธิบาย",
- "View in store" : "ดูในร้านค้า",
- "Visit website" : "เข้าสู่เว็บไซต์",
- "Admin documentation" : "เอกสารประกอบสำหรับผู้ดูแลระบบ",
- "Developer documentation" : "เอกสารประกอบสำหรับนักพัฒนา",
- "Details" : "รายละเอียด",
- "All" : "ทั้งหมด",
- "Limit app usage to groups" : "จำกัดการใช้แอปสำหรับกลุ่ม",
- "No results" : "ไม่มีผลลัพธ์",
- "Update to {version}" : "อัปเดตเป็น {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "แอปนี้ไม่ได้ระบุรุ่นขั้นต่ำของ Nextcloud ซึ่งอาจเป็นปัญหาในอนาคตได้",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "แอปนี้ไม่ได้ระบุรุ่นสูงสุดของ Nextcloud ซึ่งอาจเป็นปัญหาในอนาคตได้",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "ไม่สามารถติดตั้งแอปนี้ เนื่องจากสิ่งที่พึ่งพาต่อไปนี้ยังไม่ครบ:",
- "Categories" : "หมวดหมู่",
- "Resources" : "ทรัพยากร",
- "Documentation" : "เอกสารประกอบ",
- "Report a bug" : "รายงานข้อผิดพลาด",
- "Changelog" : "บันทึกการเปลี่ยนแปลง",
- "Google Chrome for Android" : "Google Chrome สำหรับ Android",
- "{productName} iOS app" : "แอป {productName} สำหรับ iOS",
- "{productName} Android app" : "แอป {productName} สำหรับ Android",
- "{productName} Talk for iOS" : "{productName} Talk สำหรับ iOS",
- "{productName} Talk for Android" : "{productName} Talk สำหรับ Android",
- "Sync client" : "ไคลเอ็นต์ซิงค์",
- "This session" : "เซสชันนี้",
- "Marked for remote wipe" : "ระบุสำหรับการล้างระยะไกลแล้ว",
- "Device settings" : "การตั้งค่าอุปกรณ์",
- "Allow filesystem access" : "อนุญาตให้เข้าถึงระบบไฟล์",
- "Rename" : "เปลี่ยนชื่อ",
- "Revoke" : "เพิกถอน",
- "Wipe device" : "ล้างอุปกรณ์",
- "Device" : "อุปกรณ์",
- "Last activity" : "กิจกรรมล่าสุด",
- "Devices & sessions" : "อุปกรณ์และเซสซัน",
- "Web, desktop and mobile clients currently logged in to your account." : "ไคลเอ็นต์เว็บ เดสก์ท็อป และมือถือที่เข้าสู่ระบบบัญชีของคุณอยู่",
- "Error while creating device token" : "ข้อผิดพลาดขณะสร้างโทเค็นอุปกรณ์",
- "App name" : "ชื่อแอป",
- "Create new app password" : "สร้างรหัสผ่านแอปใหม่",
"Could not copy app password. Please copy it manually." : "ไม่สามารถคัดลอกรหัสผ่านแอป โปรดคัดลอกด้วยตนเอง",
"Login" : "เข้าสู่ระบบ",
"Password" : "รหัสผ่าน",
@@ -156,73 +115,19 @@
"Be aware that encryption always increases the file size." : "โปรดทราบว่าการเข้ารหัสไฟล์จะทำให้ขนาดของไฟล์ใหญ่ขึ้นเสมอ",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "การสำรองข้อมูลของคุณเป็นประจำเป็นเรื่องที่ดีเสมอ ในกรณีของการเข้ารหัส อย่าลืมสำรองคีย์เข้ารหัสพร้อมข้อมูลของคุณด้วย",
"This is the final warning: Do you really want to enable encryption?" : "นี่คือการเตือนครั้งสุดท้าย: คุณต้องการเปิดใช้การเข้ารหัสจริง ๆ หรือไม่?",
+ "Cancel" : "ยกเลิก",
+ "Confirm" : "ยืนยัน",
"Submit" : "ส่ง",
- "Remove group" : "ลบกลุ่ม",
- "Current password" : "รหัสผ่านปัจจุบัน",
- "New password" : "รหัสผ่านใหม่",
- "Change password" : "เปลี่ยนรหัสผ่าน",
- "Picture provided by original account" : "ใช้รูปภาพจากบัญชีเดิม",
- "Email options" : "ตัวเลือกอีเมล",
- "Remove primary email" : "ลบอีเมลหลักออก",
- "Delete email" : "ลบอีเมล",
- "Additional email address {index}" : "ที่อยู่อีเมลเพิ่มเติม {index}",
- "Primary email for password reset and notifications" : "อีเมลหลักสำหรับการตั้งรหัสผ่านใหม่และการแจ้งเตือน",
- "No email address set" : "ไม่ได้ระบุที่อยู่อีเมล",
- "Help translate" : "ช่วยแปล",
- "No language set" : "ไม่ได้ตั้งภาษา",
- "Add" : "เพิ่ม",
- "Create" : "สร้าง",
- "Change" : "เปลี่ยนแปลง",
- "Delete" : "ลบ",
- "Default language" : "ภาษาค่าเริ่มต้น",
- "Common languages" : "ภาษาที่นิยม",
- "Password change is disabled because the master key is disabled" : "การเปลี่ยนรหัสผ่านถูกปิดการใช้งาน เนื่องจากคีย์หลักถูกปิดการใช้งาน",
- "Display name" : "ชื่อที่แสดง",
- "Email" : "อีเมล",
- "Quota" : "โควต้า",
- "Language" : "ภาษา",
- "Avatar" : "ภาพแทนตัว",
- "Account name" : "ชื่อบัญชี",
- "Group admin for" : "ผู้ดูแลกลุ่มสำหรับ",
- "Storage location" : "สถานที่จัดเก็บข้อมูล",
- "Last login" : "เข้าสู่ระบบล่าสุด",
- "{size} used" : "ใช้ไป {size}",
- "Delete account" : "ลบบัญชี",
- "Resend welcome email" : "ส่งอีเมลยินดีต้อนรับซ้ำ",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "ในกรณีที่อุปกรณ์สูญหายหรือออกจากองค์กร ตัวเลือกนี้สามารถล้างข้อมูล Nextcloud จากทุกอุปกรณ์ที่เชื่อมโยงกับ {userid} จากระยะไกล การล้างข้อมูลจะทำงานเฉพาะเมื่ออุปกรณ์เชื่อมต่อกับอินเทอร์เน็ตเท่านั้น",
- "Remote wipe of devices" : "ล้างอุปกรณ์จากระยะไกล",
- "Wipe {userid}'s devices" : "ล้างอุปกรณ์ของ {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "ลบบัญชีของ {userid} ทั้งหมด รวมถึงไฟล์ส่วนตัว ข้อมูลแอป และอื่น ๆ ทั้งหมด",
- "Account deletion" : "การลบบัญชี",
- "Delete {userid}'s account" : "ลบบัญชีของ {userid}",
- "Welcome mail sent!" : "ส่งอีเมลยินดีต้อนรับแล้ว!",
- "Done" : "เสร็จสิ้น",
- "Edit" : "แก้ไข",
- "Show storage path" : "แสดงเส้นทางจัดเก็บข้อมูล",
- "Show last login" : "แสดงการเข้าสู่ระบบล่าสุด",
- "Send email" : "ส่งอีเมล",
- "Default quota" : "ค่าโควต้าเริ่มต้น",
- "Select default quota" : "เลือกค่าโควต้าเริ่มต้น",
- "Server error while trying to complete WebAuthn device registration" : "เกิดข้อผิดพลาดเซิร์ฟเวอร์ขณะกำลังพยายามลงทะเบียนอุปกรณ์ WebAuthn ให้เสร็จสิ้น",
- "Passwordless authentication requires a secure connection." : "การรับรองความถูกต้องแบบไร้รหัสผ่านต้องใช้การเชื่อมต่อที่ปลอดภัย",
- "Add WebAuthn device" : "เพิ่มอุปกรณ์ WebAuthn",
- "Please authorize your WebAuthn device." : "โปรดอนุมัติอุปกรณ์ WebAuthn ของคุณ",
- "Adding your device …" : "กำลังเพิ่มอุปกรณ์ …",
- "Unnamed device" : "อุปกรณ์ไม่มีชื่อ",
- "Passwordless Authentication" : "การรับรองความถูกต้องแบบไร้รหัสผ่าน",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "ตั้งค่าบัญชีของคุณเพื่อใช้การรับรองความถูกต้องแบบไร้รหัสผ่านตามมาตรฐาน FIDO2",
- "No devices configured." : "ไม่มีอุปกรณ์ที่กำหนดค่า",
- "The following devices are configured for your account:" : "อุปกรณ์เหล่านี้มีการกำหนดค่าสำหรับบัญชีของคุณแล้ว:",
- "Your browser does not support WebAuthn." : "เบราว์เซอร์ของคุณไม่รองรับ WebAuthn",
- "Admins" : "ผู้ดูแลระบบ",
"Sending…" : "กำลังส่ง....",
"Email sent" : "ส่งอีเมลแล้ว",
"Location" : "ตำแหน่ง",
"Profile picture" : "รูปภาพโปรไฟล์",
"About" : "เกี่ยวกับ",
"Full name" : "ชื่อเต็ม",
+ "Email" : "อีเมล",
"Phone number" : "หมายเลขโทรศัพท์",
"Website" : "เว็บไซต์",
+ "Language" : "ภาษา",
"Locale" : "ตำแหน่งที่ตั้ง",
"Your apps" : "แอปของคุณ",
"Active apps" : "แอปที่เปิดใช้งานอยู่",
@@ -231,10 +136,12 @@
"App bundles" : "ชุดรวมแอป",
"Featured apps" : "แอปแนะนำ",
"Hide" : "ซ๋อน",
+ "Update to {version}" : "อัปเดตเป็น {version}",
"Download and enable" : "ดาวน์โหลดและเปิดใช้งาน",
"Disable" : "ปิดใช้งาน",
"The app will be downloaded from the App Store" : "แอปจะถูกดาวน์โหลดจากร้านค้าแอป",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "แอปนี้ยังไม่ถูกระบุว่ารองรับกับรุ่น Nextcloud ของคุณ หากคุณดำเนินการต่อ คุณจะสามารถติดตั้งแอปได้ แต่แอปอาจไม่ทำงานอย่างที่คาดหวังไว้",
+ "{size} used" : "ใช้ไป {size}",
"Unknown" : "ไม่ทราบ",
"Never" : "ไม่เคย",
"Error: This app cannot be enabled because it makes the server unstable" : "ข้อผิดพลาด: ไม่สามารถเปิดใช้งานแอปนี้เพราะทำให้เซิร์ฟเวอร์ไม่เสถียร",
@@ -246,6 +153,8 @@
"Error while updating device token scope" : "ข้อผิดพลาดขณะอัปเดตขอบเขตโทเค็นอุปกรณ์",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "มีการส่งคำขอจากเครือข่ายของคุณมากเกินไป กรุณาลองอีกครั้งในภายหลัง หรือติดต่อผู้ดูแลระบบหากเป็นข้อผิดพลาด",
"Error" : "ข้อผิดพลาด",
+ "Default quota" : "ค่าโควต้าเริ่มต้น",
+ "Documentation" : "เอกสารประกอบ",
"Forum" : "ฟอรัม",
"SSL" : "SSL",
"Open documentation" : "เปิดเอกสารประกอบ",
@@ -261,6 +170,7 @@
"Credentials" : "ข้อมูลส่วนตัวสำหรับเข้าระบบ",
"SMTP Password" : "รหัสผ่าน SMTP",
"Save" : "บันทึก",
+ "Send email" : "ส่งอีเมล",
"Security & setup warnings" : "คำเตือนความปลอดภัยและการติดตั้ง",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "การกำหนดค่าทุกอย่างให้ถูกต้องเป็นสิ่งสำคัญสำหรับความปลอดภัยและประสิทธิภาพของเซิร์ฟเวอร์ของคุณ เพื่อช่วยคุณในเรื่องนี้ เรากำลังทำการตรวจสอบอัตโนมัติ โปรดดูเอกสารประกอบที่ลิงก์มาสำหรับข้อมูลเพิ่มเติม",
"All checks passed." : "ผ่านการตรวจสอบทั้งหมด",
@@ -271,12 +181,6 @@
"Check the security of your Nextcloud over <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">our security scan ↗</a>." : "ตรวจสอบความปลอดภัยของ Nextcloud ของคุณผ่าน<a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">การสแกนความปลอดภัยของเรา ↗</a>",
"Reasons to use Nextcloud in your organization" : "เหตุผลที่ควรใช้ Nextcloud ในองค์กรของคุณ",
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "รุ่นที่ออกโดยชุมชนของ Nextcloud นี้ไม่ได้รับการสนับสนุน และไม่สามารถใช้งานการแจ้งเตือนทันทีได้",
- "Set default expiration date for shares" : "ตั้งวันหมดอายุค่าเริ่มต้นสำหรับการแชร์",
- "New user" : "ผู้ใช้ใหม่",
- "Username" : "ชื่อผู้ใช้",
- "User backend" : "แบ็กเอนด์ของผู้ใช้",
- "Add user to group" : "เพิ่มผู้ใช้เข้ากลุ่ม",
- "Server error while trying to add WebAuthn device" : "เกิดข้อผิดพลาดเซิร์ฟเวอร์ขณะกำลังพยายามเพิ่มอุปกรณ์ WebAuthn",
- "Name your device" : "ตั้งชื่ออุปกรณ์ของคุณ"
+ "Set default expiration date for shares" : "ตั้งวันหมดอายุค่าเริ่มต้นสำหรับการแชร์"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js
index 4c7266683a5..e7362bd32a0 100644
--- a/apps/settings/l10n/tr.js
+++ b/apps/settings/l10n/tr.js
@@ -119,7 +119,7 @@ OC.L10N.register(
"Availability" : "Uygunluk",
"Calendar" : "Takvim",
"Personal info" : "Kişisel bilgiler",
- "Mobile & desktop" : "Mobil ve masaüstü",
+ "Mobile & desktop" : "Mobil ve bilgisayar",
"Email server" : "E-posta sunucusu",
"Mail Providers" : "E-posta hizmeti sağlayıcıları",
"Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "E-posta hizmeti sağlayıcısı, e-postaları doğrudan kullanıcının kişisel e-posta hesabı üzerinden göndermeyi sağlar. Şu anda, bu özellik takvim davetleriyle sınırlıdır. Nextcloud Posta 4.1 ve Nextcloud Posta üzerinde kullanıcının Nextcloud e-posta adresiyle eşleşen bir e-posta hesabı gerekir.",
@@ -138,10 +138,10 @@ OC.L10N.register(
"App directories owner" : "Uygulama klasörleri sahibi",
"Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:\n%s" : "Bazı uygulama klasörlerinin sahipliği site sunucusunun kullandığından başka bir kullanıcıya ait. Bu durum, uygulamalar el ile kurulduğunda ortaya çıkabilir. Şu uygulama klasörlerinin izinlerini denetleyin:\n%s",
"App directories have the correct owner \"%s\"" : "Uygulama klasörlerinin sahibi \"%s\" ve doğru",
- "Brute-force Throttle" : "Kaba kuvvet sınırlaması",
+ "Brute-force Throttle" : "Kaba kuvvet saldırısı sınırlaması",
"Your remote address could not be determined." : "Uzak adresiniz belirlenemedi.",
- "Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Uzak adresiniz \"%s\" olarak belirlendi ve şu anda çeşitli isteklerin yerine getirilmesini yavaşlatacak şekilde kaba kuvvet saldırısı nedeniyle kısıtlanıyor. Uzak adres sizin adresiniz değilse bu, vekil sunucusunun doğru şekilde yapılandırılmadığını gösteriyor olabilir.",
- "Your remote address \"%s\" is not brute-force throttled." : "\"%s\" uzak adresinize kaba kuvvet sınırlaması uygulanmıyor.",
+ "Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Uzak adresiniz \"%s\" olarak belirlendi ve şu anda çeşitli isteklerin yerine getirilmesini yavaşlatacak şekilde kaba kuvvet saldırısı koruması nedeniyle kısıtlanıyor. Uzak adres sizin adresiniz değilse bu, vekil sunucusunun doğru şekilde yapılandırılmadığını gösteriyor olabilir.",
+ "Your remote address \"%s\" is not brute-force throttled." : "\"%s\" uzak adresinize kaba kuvvet saldırısı sınırlaması uygulanmıyor.",
"Old administration imported certificates" : "Eski yönetimin içe aktarılmış sertifikaları",
"A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Yönetim tarafından içe aktarılmış SSL sertifikalarını denetleyen bir arka plan görevi bekliyor. Lütfen bir süre sonra yeniden denetleyin.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Yönetim tarafından içe aktarılmış ancak artık Nextcloud 21 ile kullanılmayan bazı SSL sertifikaları var. Bunlar, komut satırından \"occ security:certificates:import\" komutu ile içe aktarılabilir. Veri klasörü içindeki yollarını aşağıda görebilirsiniz.",
@@ -164,23 +164,23 @@ OC.L10N.register(
"Database missing indices" : "Veri tabanında dizinler eksik",
"Missing indices:" : "Dizinler eksik:",
"\"%s\" in table \"%s\"" : "\"%s\", \"%s\" tablosunda",
- "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "İsteğe bağlı bazı dizinlerin eksik olduğu bulundu. Bazen veri tabanı başarımını iyileştirmek için yeni dizinler eklenir (Nextcloud veya kurulmuş uygulamalar tarafından). Dizinleri eklemek bazen biraz zaman alabilir ve başarımı geçici olarak düşürebilir, bu nedenle yükseltmeler sırasında bu işlem otomatik olarak yapılmaz. Dizinler eklendikten sonra, bu tablolara yapılan sorguların daha hızlı olması beklenir. Bunları eklemek için `occ db:add-missing-indices` komutunu kullanın.",
+ "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "İsteğe bağlı bazı dizinlerin eksik olduğu bulundu. Bazen veri tabanı başarımını iyileştirmek için yeni dizinler eklenir (Nextcloud veya kurulmuş uygulamalar tarafından). Dizinleri eklemek bazen biraz zaman alabilir ve başarımı geçici olarak düşürebilir. Bu nedenle yükseltmeler sırasında bu işlem otomatik olarak yapılmaz. Dizinler eklendikten sonra, bu tablolara yapılan sorguların daha hızlı olması beklenir. Bunları eklemek için `occ db:add-missing-indices` komutunu kullanın.",
"Database missing primary keys" : "Veri tabanında birincil anahtarlar eksik",
"Missing primary key on table \"%s\"." : "\"%s\" tablosunda birincil dizin anahtarı eksik.",
"The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running \"occ db:add-missing-primary-keys\" those missing primary keys could be added manually while the instance keeps running." : "Veri tabanında bazı birincil dizin anahtarları eksik. Büyük tablolara birincil anahtarların eklenmesi uzun sürebildiğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken eksik birincil anahtarları el ile eklemek için \"occ db:add-missing-primary-keys\" komutunu yürütün.",
"Database pending bigint migrations" : "Veri tabanı büyük tam sayı dönüşümleri bekliyor",
"Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \"occ db:convert-filecache-bigint\" those pending changes could be applied manually. This operation needs to be made while the instance is offline." : "Veri tabanında büyük tam sayıya dönüştürülecek bazı sütunlar eksik. Sütun türlerini büyük tablolara dönüştürme işlemi uzun sürebileceğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken bekleyen değişiklikleri el ile uygulamak için \"occ db:convert-filecache-bigint\" komutunu yürütün. Bu işlem yapılırken Nextcloud kopyası çevrim dışı olur.",
"Debug mode" : "Hata ayıklama kipi",
- "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Bu kopya hata ayıklama kipinde çalışıyor. Bu seçeneği yalnızca yerel geliştirme ortamında kullanıma alın, üretim ortamlarında kullanmayın.",
- "Debug mode is disabled." : "Hata ayıklama kipi kullanımdan kaldırıldı.",
+ "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Bu kopya hata ayıklama kipinde çalışıyor. Bu seçeneği yalnızca yerel geliştirme ortamında açın, üretim ortamlarında kullanmayın.",
+ "Debug mode is disabled." : "Hata ayıklama kipi kapatıldı.",
"Default phone region" : "Varsayılan telefon alan kodu",
"Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Kurulumunuz için bir varsayılan telefon bölgesi ayarlanmamış. Bu bölge telefon numaralarının bir ülke kodu belirtilmeden doğrulanmasını sağlar. Telefon numaralarının ülke kodu olmadan yazılabilmesini istiyorsanız, yapılandırma dosyasına \"default_phone_region\" seçeneğini ekleyerek ilgili ISO 3166-1 bölge kodunu yazın.",
"Email test" : "E-posta sınaması",
- "Mail delivery is disabled by instance config \"%s\"." : "E-posta gönderimi kopyanın yapılandırmasından kullanımdan kaldırılmış \"%s\".",
+ "Mail delivery is disabled by instance config \"%s\"." : "E-posta gönderimi kopyanın yapılandırmasında kapatılmış \"%s\".",
"Email test was successfully sent" : "E-posta sınaması gönderildi",
"You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "E-posta sunucusu yapılandırmanızı henüz ayarlamadınız veya doğrulamadınız. Ayarları yapmak için \"Temel ayarlar\" bölümüne gidin. Ardından, ayarlarınızı doğrulamak için formun altındaki \"E-posta gönder\" düğmesine tıklayın.",
"Transactional File Locking" : "İşlemsel dosya kilidi",
- "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "İşlemsel dosya kilidi kullanımdan kaldırılmış. Bu yapılandırma desteklenmez ve dosyaların bozulması gibi çözülmesi zor sorunlara yol açabilir. Bu sorunları önlemek için lütfen `config.php` dosyanızdan `'filelocking.enabled' => false` yapılandırma kaydını kaldırın.",
+ "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "İşlemsel dosya kilidi kapatılmış. Bu yapılandırma desteklenmez ve dosyaların bozulması gibi çözülmesi zor sorunlara yol açabilir. Bu sorunları önlemek için lütfen `config.php` dosyanızdan `'filelocking.enabled' => false` yapılandırma kaydını kaldırın.",
"The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Veri tabanı, işlemsel dosya kilitleme için kullanılır. Başarımı yükseltmek için varsa lütfen memcache yapılandırmasını ayarlayın.",
"Forwarded for headers" : "Üst bilgi yönlendirmesi",
"Your \"trusted_proxies\" setting is not correctly set, it should be an array." : "\"trusted_proxies\" ayarınız düzgün yapılmamış. Bu bir dizi olmalıdır.",
@@ -195,7 +195,7 @@ OC.L10N.register(
"Your instance is generating insecure URLs. If you access your instance over HTTPS, this likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly." : "Kopyanız güvenli olmayan adresler üretiyor. Kopyanıza HTTPS üzerinden erişiyorsanız, bu durum genellikle bir ters vekil sunucunun arkasında bulunmanızdan ve Nextcloud `overwrite*` yapılandırma değerlerinin doğru olarak ayarlanmamış olmasından kaynaklanır.",
"You are accessing your instance over a secure connection, and your instance is generating secure URLs." : "Kopyanıza güvenli bir bağlantı üzerinden erişiyorsunuz ve kopyanız güvenli adresler oluşturuyor.",
"Internet connectivity" : "İnternet bağlantısı",
- "Internet connectivity is disabled in configuration file." : "İnternet bağlantısı yapılandırma dosyasında kullanımdan kaldırılmış.",
+ "Internet connectivity is disabled in configuration file." : "İnternet bağlantısı yapılandırma dosyasında kapatılmış.",
"This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden çok uç noktaya erişilemez. Bu durumda dış depolama alanı bağlama, güncelleme bildirimleri ya da üçüncü taraf uygulamalarını kurmak gibi bazı özellikler çalışmaz. Dosyalara uzaktan erişim ve bildirim e-postalarının gönderilmesi işlemleri de yapılamaz. Tüm bu özelliklerin kullanılabilmesi için sunucuyu İnternet üzerine bağlamanız önerilir.",
"JavaScript modules support" : "JavaScript modülleri desteği",
"Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "JavaScript desteği denetlenemedi. Lütfen site sunucunuzun JavaScript MIME türünü kullanarak `.mjs` dosyalarını sunup sunmadığını el ile denetleyin.",
@@ -203,8 +203,8 @@ OC.L10N.register(
"JavaScript source map support" : "JavaScript kaynak haritası desteği",
"Your webserver is not set up to serve `.js.map` files. Without these files, JavaScript Source Maps won't function properly, making it more challenging to troubleshoot and debug any issues that may arise." : "Site sunucunuz `.js.map` dosyalarını sunacak şekilde ayarlanmamış. Bu dosyalar olmadan, JavaScript kaynak haritaları düzgün çalışmaz. Bu durum ortaya çıkabilecek sorunların giderilmesini ve hata ayıklamasını zorlaştırır.",
"Old server-side-encryption" : "Eski sunucu tarafı şifreleme",
- "Disabled" : "Kullanımdan kaldırılmış",
- "The old server-side-encryption format is enabled. We recommend disabling this." : "Eski sunucu tarafı şifreleme biçimi kullanıma alınmış. Bu seçeneği kullanımdan kaldırmanız önerilir.",
+ "Disabled" : "Kapalı",
+ "The old server-side-encryption format is enabled. We recommend disabling this." : "Eski sunucu tarafı şifreleme biçimi açılmış. Bu seçeneği kapatmanız önerilir.",
"Logging level" : "Günlük kaydı düzeyi",
"The %1$s configuration option must be a valid integer value." : "%1$s yapılandırma seçeneği geçerli bir tam sayı olmalıdır.",
"The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Günlük kaydı hata ayıklama düzeyine ayarlanmış. Hata ayıklama düzeyini yalnızca bulmanız gereken bir sorununuz olduğunda kullanın ve ardından daha az ayrıntılı bir düzeye döndürün. Bu düzey çok fazla bilgi kaydeder ve sunucunuzun başarımını etkileyebilir.",
@@ -223,11 +223,11 @@ OC.L10N.register(
"One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations." : "Bir veya birkaç mimetype aktarımı var. Bazen belirli dosya türlerini daha iyi işlemek için yeni mimetype seçenekleri eklenir. Büyük kopyalarda mimetype aktarımları uzun zaman alır. Bu nedenle aktarım, yükseltmeler sırasında otomatik olarak yapılmaz. Bu durumda aktarımları gerçekleştirmek için `occ maintenance:repair --include-expensive` komutunu kullanın.",
"MySQL row format" : "MySQL satır biçimi",
"You are not using MySQL" : "MySQL kullanmıyorsunuz",
- "None of your tables use ROW_FORMAT=Compressed" : "Hiç bir tablonuzda ROW_FORMAT=Compressed kullanılmıyor",
+ "None of your tables use ROW_FORMAT=Compressed" : "Hiçbir tablonuzda ROW_FORMAT=Compressed kullanılmıyor",
"Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Veri tabanınızda yanlış satır biçimi bulundu. ROW_FORMAT=Dynamic, Nextcloud için en iyi veri tabanı başarımını sunar. Lütfen aşağıdaki listedeki satır biçimini güncelleyin: %s.",
"MySQL Unicode support" : "MySQL Unikod desteği",
"MySQL is used as database and does support 4-byte characters" : "Veri tabanı olarak MySQL kullanılıyor ve 4 baytlık karakterler destekleniyor",
- "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL." : "Veri tabanı olarak MySQL kullanılıyor ancak 4 bayt uzunluğundaki karakterler desteklenmiyor. 4 bayt uzunluğundaki karaktelerin (emoji simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin kullanıma alınması önerilir.",
+ "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL." : "Veri tabanı olarak MySQL kullanılıyor ancak 4 bayt uzunluğundaki karakterler desteklenmiyor. 4 bayt uzunluğundaki karakterlerin (emoji simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin etkinleştirilmesi önerilir.",
"OCS provider resolving" : "OCS hizmet sağlayıcısı çözümleniyor",
"Could not check if your web server properly resolves the OCM and OCS provider URLs." : "Site sunucunuzun OCM ve OCS hizmet sağlayıcı adreslerini doğru şekilde çözümleyip çözümlemediği denetlenemedi.",
"Your web server is not properly set up to resolve %1$s.\nThis is most likely related to a web server configuration that was not updated to deliver this folder directly.\nPlease compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx.\nOn Nginx those are typically the lines starting with \"location ~\" that need an update." : "Site sunucunuz %1$s adresini doğru olarak çözümleyecek şekilde yapılandırılmamış.\nBu sorun genellikle site sunucusu yapılandırmasının bu klasörü doğrudan aktaracak şekilde güncellenmemiş olmamasından kaynaklanır.\nLütfen kendi yapılandırmanızı, Apache için uygulama ile gelen \".htaccess\" dosyasındaki rewrite komutları ile ya da Nginx için belgeler bölümünde bulunan ayarlar ile karşılaştırın.\nNginx üzerinde genellikle \"location ~\" ile başlayan satırların güncellenmesi gerekir.",
@@ -264,14 +264,14 @@ OC.L10N.register(
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s" : "Bu kopyada önerilen bazı PHP modülleri eksik. Daha iyi başarım ve uyumluluk için bu modüllerin kurulması önemle önerilir:\n%s",
"PHP opcache" : "PHP opcache",
"The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP OPcache modülü yüklenmemiş. Daha iyi başarım sağlamak için PHP kurulumunuza eklemeniz önerilir.",
- "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache kullanımdan kaldırılmış. Daha iyi başarım için PHP yapılandırmanızda \"opcache.enable=1\" seçeneğini ayarlamanız önerilir.",
- "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only." : "Paylaşılan bellek temelli OPcache kullanımdan kaldırılmış. Başarımı iyileştirmek için PHP yapılandırmanızda \"opcache.file_cache_only=0\" seçeneğini ayarlamanız ve dosya ön belleğini yalnızca ikinci düzey ön bellek olarak kullanmanız önerilir.",
+ "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache kullanılmıyor. Daha iyi başarım için PHP yapılandırmanızda \"opcache.enable=1\" seçeneğini ayarlamanız önerilir.",
+ "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only." : "Paylaşılan bellek temelli OPcache kullanılmıyor. Başarımı iyileştirmek için PHP yapılandırmanızda \"opcache.file_cache_only=0\" seçeneğini ayarlamanız ve dosya ön belleğini yalnızca ikinci düzey ön bellek olarak kullanmanız önerilir.",
"OPcache is not working as it should, opcache_get_status() returns false, please check configuration." : "OPcache olması gerektiği gibi çalışmıyor, opcache_get_status() işlevi false değerini döndürüyor. Lütfen yapılandırmayı denetleyin.",
"The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply \"opcache.max_accelerated_files\" to your PHP configuration with a value higher than \"%s\"." : "En fazla OPcache anahtar sayısına neredeyse erişildi. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.max_accelerated_files\" uygulamanız önerilir.",
"The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply \"opcache.memory_consumption\" to your PHP configuration with a value higher than \"%s\"." : "OPcache ara belleği neredeyse dolu. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.memory_consumption\" uygulamanız önerilir.",
"The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply \"opcache.interned_strings_buffer\" to your PHP configuration with a value higher than \"%s\"." : "OPcache interned dizge ara belleği neredeyse dolu. Yinelenen dizgelerin etkin bir şekilde ön belleğe alınabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.interned_strings_buffer\" uygulamanız önerilir.",
"OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache, kod yorumlarını kaldıracak şekilde yapılandırılmış. OPcache kullanıma alındığında Nextcloud uygulamasının çalışması için \"opcache.save_comments=1\" ayarı yapılmalıdır.",
- "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache kullanıma alındığında, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için \"opcache.restrict_api\" ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını kullanımdan kaldırmak için bu ayarı kaldırmanız önemle önerilir.",
+ "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache kullanıma alındığında, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında oluşabilecek hataları önlemek için \"opcache.restrict_api\" ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını kapatmak için bu ayarı kaldırmanız önemle önerilir.",
"Checking from CLI, OPcache checks have been skipped." : "Komut satırından denetleniyor, OPcache denetimleri atlanmış.",
"The PHP OPcache module is not properly configured. %s." : "PHP OPcache modülü doğru yapılandırılmamış. %s.",
"Correctly configured" : "Doğru yapılandırılmış",
@@ -279,7 +279,7 @@ OC.L10N.register(
"You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Şu anda PHP %1$s kullanıyorsunuz. PHP %2$s son olarak Nextcloud %3$s sürümünde destekleniyor. Nextcloud %4$s için en az PHP %5$s gerekebilir. Lütfen olabilecek en kısa sürede PHP Group tarafından sağlanan resmi olarak desteklenen PHP sürümlerinden birine yükseltin.",
"You are currently running PHP %s." : "Şu anda PHP %s kullanıyorsunuz.",
"PHP \"output_buffering\" option" : "PHP \"output_buffering\" seçeneği",
- "PHP configuration option \"output_buffering\" must be disabled" : "PHP \"option output_buffering\" yapılandırma seçeneği kullanımdan kaldırılmalıdır",
+ "PHP configuration option \"output_buffering\" must be disabled" : "PHP \"option output_buffering\" yapılandırma seçeneği kapatılmalıdır",
"Push service" : "Anında bildirim hizmeti",
"Valid enterprise license" : "Geçerli Enterprise lisansı",
"Free push service" : "Ücretsiz anında bildirim hizmeti",
@@ -288,7 +288,7 @@ OC.L10N.register(
"No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP tarafında uygun bir rastgelelik kaynağı bulunamadı. Güvenlik nedeniyle kesinlikle önerilir.",
"Secure" : "Güvenli",
"Configuration file access rights" : "Yapılandırma dosyasının erişim izinleri",
- "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Salt okunur yapılandırma kullanıma alınmış. Bu yapılandırma, bazı ayarların site arayüzünden yapılmasını önler. Ayrıca, bu dosyanın her güncelleme öncesinde el ile yazılabilir yapılması gerekir.",
+ "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Salt okunur yapılandırma açık. Bu yapılandırma, bazı ayarların site arayüzünden yapılmasını önler. Ayrıca, bu dosyanın izinlerinin her güncelleme öncesinde el ile yazılabilir olarak ayarlanması gerekir.",
"Nextcloud configuration file is writable" : "Nextcloud yapılandırma dosyası yazılabilir",
"Scheduling objects table size" : "Zamanlama nesneler tablosu boyutu",
"You have more than %s rows in the scheduling objects table. Please run the expensive repair jobs via occ maintenance:repair --include-expensive." : "Zamanlama nesneleri tablosunda %s üzerinde satır var. Lütfen büyük onarım işlerini occ maintenance:repair --include-expensive komutu ile yapın",
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP üst bilgileri",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP üst bilgisi `%2$s` şeklinde ayarlanmamış. Bu durum bazı özelliklerin düzgün çalışmasını engelleyebileceğinden bu ayarın belirtildiği gibi yapılması önerilir.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP üst bilgisi `%2$s` şeklinde ayarlanmamış. Bu durum olası bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarın belirtildiği gibi yapılması önerilir.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP üst bilgisinde `%2$s` bulunmuyor. Bu durum olası bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarın belirtildiği gibi yapılması önerilir.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP üst bilgisi `%2$s`, `%3$s`, `%4$s`, `%5$s` ya da `%6$s` olarak ayarlanmamış. Bu durum yönlendiren bilgisinin sızmasına neden olabilir. {w3c-recommendation} bölümüne bakın.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTP üst bilgisi en azından `%d` saniye olarak ayarlanmamış (geçerli değer: `%d`). Güvenliği artırmak için uzun bir HSTS ilkesi kullanılması önerilir.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTP üst bilgisi doğru biçimde değil: `%s`. Güvenliği artırmak için HSTS kullanılması önerilir.",
@@ -310,14 +309,18 @@ OC.L10N.register(
"MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MariaDB \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MariaDB sürümünün %2$s ile %3$s arasında olması önerilir.",
"MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MySQL \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MySQL sürümünün %2$s ile %3$s arasında olması önerilir.",
"PostgreSQL version \"%1$s\" detected. PostgreSQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için PostgreSQL sürümünün %2$s ile %3$s arasında olması önerilir.",
- "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\"." : "Şu anda arka uç veri tabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veri tabanı arka ucuna geçmenizi öneririz. Bu özellikle dosya eşitlemesi için masaüstü istemcisini kullanırken önerilir. Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\".",
+ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\"." : "Şu anda veri tabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veri tabanına geçmenizi öneririz. Bu özellikle dosya eşitlemesi için bilgisayar istemcisini kullanırken önerilir. Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\".",
"Unknown database platform" : "Veri tabanı platformu bilinmiyor",
"Architecture" : "Mimari",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "32 bit bir PHP sürümü çalıştırıyorsunuz gibi görünüyor. Nextcloud uygulamasının iyi çalışması için 64 bit bir PHP sürümü kullanılmalıdır. Lütfen işletim sisteminizi ve PHP sürümünüzü 64 bit olacak şekilde yükseltin!",
+ "Task Processing pickup speed" : "İşlenecek görevi alma hızı",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Son %n saatte zamanlanmış bir görev yok.","Son %n saatte zamanlanmış bir görev yok."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Son %n saatte zamanlanmış işlenecek görevi alma hızı iyi.","Son %n saatte zamanlanmış işlenecek görevi alma hızı iyi."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["İşlenecek görevi alma hızı son %n saatte yavaştı. Birçok görevin alınması 4 dakikadan uzun sürdü. Görevlerin arka planda işlenmesi için bir işlem ayarlamayı değerlendirin.","İşlenecek görevi alma hızı son %n saatte yavaştı. Birçok görevin alınması 4 dakikadan uzun sürdü. Görevlerin arka planda işlenmesi için bir işlem ayarlamayı değerlendirin."],
"Temporary space available" : "Geçici alan kullanılabilir",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Geçici PHP yolu denetlenirken sorun çıktı. Doğru şekilde bir klasöre ayarlanmamış. Döndürülen değer: %s",
- "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP \"disk_free_space\" işlevi kullanımdan kaldırıldığından geçici klasörlerde yeterli alan olup olmadığı denetlenemedi.",
+ "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP \"disk_free_space\" işlevi kullanılamadığından geçici klasörlerde yeterli alan olup olmadığı denetlenemedi.",
"Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s" : "Geçici PHP yolunun kullanılabilir disk alanı denetlenirken sorun çıktı veya boş disk alanı döndürülmedi. Geçici yol: %s",
"- %.1f GiB available in %s (PHP temporary directory)" : "- %s içinde %.1f GiB kullanılabilir (PHP geçici klasörü)",
"- %.1f GiB available in %s (Nextcloud temporary directory)" : "- %s içinde %.1f GiB kullanılabilir (Nextcloud geçici klasörü)",
@@ -336,21 +339,21 @@ OC.L10N.register(
"Could not check for {extension} loading support. Please check manually if your webserver serves `.{extension}` files." : "{extension} yükleme desteği denetlenemedi. Lütfen site sunucunuzun `.{extension}` dosyalarını sunup sunmadığını el ile denetleyin.",
"Your web server is not properly set up to deliver .{extension} files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustment to also deliver .{extension} files. Compare your Nginx configuration to the recommended configuration in our documentation." : "Site sunucunuz .{extension} dosyalarını aktaracak şekilde yapılandırılmamış. Bu sık karşılaşılan bir Nginx yapılandırma sorunudur. Nextcloud 15 için .{extension} dosyalarını da aktaracak ek bir ayar yapılması gereklidir. Kullandığınız Nginx yapılandırmasını belgeler bölümünde bulunan önerilen yapılandırma dosyası ile karşılaştırın.",
"Profile information" : "Profil bilgileri",
- "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profil görseli, tam ad, e-posta adresi, telefon numarası, adres, site, Twitter, kuruluş, rol, başlık, özgeçmiş ve profilde kullanıma alınmış diğer bilgiler",
+ "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profil görseli, tam ad, e-posta adresi, telefon numarası, adres, site, Twitter, kuruluş, rol, başlık, özgeçmiş ve profilde kullanılan diğer bilgiler",
"Nextcloud settings" : "Nextcloud ayarları",
"Unified task processing" : "Birleştirilmiş görev işleme",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Yapay zeka görevleri farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.",
"Task:" : "Görev:",
"Enable" : "Kullanıma al",
- "None of your currently installed apps provide Task processing functionality" : "Şu anda kurulu uygulamaların hiç birinde görev işleme özelliği yok",
+ "None of your currently installed apps provide Task processing functionality" : "Kurulu uygulamaların hiçbirinde görev işleme özelliği yok",
"Machine translation" : "Makine çevirisi",
"Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment." : "Makine çevirisi, farklı uygulamalardan sağlanabilir. Buradan, şu anda kurulu makine çevirisi uygulamalarının önceliğini belirtebilirsiniz.",
"Image generation" : "Görsel oluşturma",
"Image generation can be implemented by different apps. Here you can set which app should be used." : "Görsel oluşturma özelliği farklı uygulamalardan sağlanabilir. Buradan, hangi uygulamanın kullanılacağını ayarlayabilirsiniz.",
- "None of your currently installed apps provide image generation functionality" : "Şu anda kurulu uygulamaların hiç birinde görsel oluşturma özelliği yok",
+ "None of your currently installed apps provide image generation functionality" : "Kurulu uygulamaların hiçbirinde görsel oluşturma özelliği yok",
"Text processing" : "Metin işleme",
"Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Metin işleme özelliği farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.",
- "None of your currently installed apps provide text processing functionality using the Text Processing API." : "Kurulu uygulamaların hiç birinde Metin İşleme API uygulamasını kullanan bir metin işleme özelliği yok",
+ "None of your currently installed apps provide text processing functionality using the Text Processing API." : "Kurulu uygulamaların hiçbirinde Metin İşleme API uygulamasını kullanan bir metin işleme özelliği yok",
"Here you can decide which group can access certain sections of the administration settings." : "Hangi yönetici ayarlarına hangi grubun erişebileceğini bu bölümden belirleyebilirsiniz.",
"Unable to modify setting" : "Ayar değiştirilemedi",
"None" : "Yok",
@@ -365,7 +368,7 @@ OC.L10N.register(
"Allow users to share via link and emails" : "Kullanıcılar bağlantı ve e-posta ile paylaşabilsin",
"Allow public uploads" : "Herkes yükleyebilsin",
"Always ask for a password" : "Her zaman parola sorulsun",
- "Enforce password protection" : "Parola koruması dayatılsın",
+ "Enforce password protection" : "Parola koruması zorunlu kılınsın",
"Exclude groups from password requirements" : "Parola gereksinimlerine katılmayacak gruplar",
"Exclude groups from creating link shares" : "Bağlantı paylaşımı oluşturamayacak gruplar",
"Allow users to set custom share link tokens" : "Kullanıcılar özel paylaşım bağlantısı kodları ayarlayabilsin",
@@ -379,18 +382,18 @@ OC.L10N.register(
"Groups excluded from sharing" : "Paylaşıma katılmayacak gruplar",
"Not allowed groups will still be able to receive shares, but not to initiate them." : "İzin verilmeyen gruplar paylaşımları almayı sürdürebilir ancak paylaşım yapamaz.",
"Set default expiration date for internal shares" : "İç paylaşımlar için varsayılan kullanma süresi sonunu ayarlayın",
- "Enforce expiration date" : "Geçerlilik sonu tarihi dayatılsın",
+ "Enforce expiration date" : "Geçerlilik sonu tarihi zorunlu kılınsın",
"Default expiration time of new shares in days" : "Yeni paylaşımların gün olarak varsayılan geçerlilik süresi",
"Expire shares after x days" : "Paylaşımların geçerlilik süresi x gün sonra dolsun",
"Set default expiration date for shares to other servers" : "Diğer sunuculara yapılan paylaşımlar için varsayılan geçerlilik sonu tarihi ayarlansın",
- "Enforce expiration date for remote shares" : "Uzak paylaşımlar için geçerlilik sonu tarihi dayatılsın",
+ "Enforce expiration date for remote shares" : "Uzak paylaşımlar için geçerlilik sonu tarihi zorunlu kılınsın",
"Default expiration time of remote shares in days" : "Uzak paylaşımların gün olarak varsayılan geçerlilik süresi",
"Expire remote shares after x days" : "Uzak paylaşımların geçerlilik süresi x gün sonra dolsun",
"Set default expiration date for shares via link or mail" : "Bağlantı ya da e-posta ile yapılan paylaşımlar için varsayılan geçerlilik sonu tarihini ayarlansın",
"Default expiration time of shares in days" : "Paylaşımların gün olarak varsayılan geçerlilik süresi",
"Privacy settings for sharing" : "Paylaşım için gizlilik ayarı",
"Allow account name autocompletion in share dialog and allow access to the system address book" : "Paylaşım penceresinde hesap adının otomatik tamamlanmasına ve sistem adres defterine erişilmesine izin verilsin",
- "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\" kullanıma alınmış ise. Kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.",
+ "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\" seçeneklerinin ikisi de açıksa, kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.",
"Restrict account name autocompletion and system address book access to users within the same groups" : "Hesap adının otomatik tamamlanması ve sistem adres defterine erişim aynı gruplardaki kullanıcılarla kısıtlansın",
"Restrict account name autocompletion to users based on phone number integration" : "Hesap adlarının telefon numarası bütünleştirmesi eşleşmelerine göre otomatik olarak tamamlanması kısıtlansın",
"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)",
@@ -399,15 +402,15 @@ OC.L10N.register(
"This text will be shown on the public link upload page when the file list is hidden." : "Dosya listesi gizliyken herkese açık bağlantı yükleme sayfasında görüntülenecek sorumluluk reddi bildirimi metnini buraya yazabilirsiniz.",
"Default share permissions" : "Varsayılan paylaşım izinleri",
"Two-Factor Authentication" : "İki adımlı doğrulama",
- "Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system." : "Tüm hesaplar ve belirli gruplar için iki adımlı doğrulama kullanılır. İki adımlı doğrulama hizmeti sağlayıcısını yapılandırmayan kullanıcılar oturum açamaz.",
- "Enforce two-factor authentication" : "İki adımlı doğrulama dayatılsın",
+ "Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system." : "Tüm hesaplar ve belirli gruplar için iki adımlı doğrulama zorunlu kılınabilir. İki adımlı doğrulama hizmeti sağlayıcısını yapılandırmayan kullanıcılar oturum açamaz.",
+ "Enforce two-factor authentication" : "İki adımlı doğrulama zorunlu kılınsın",
"Limit to groups" : "Sınırlanacak gruplar",
- "Enforcement of two-factor authentication can be set for certain groups only." : "İki adımlı doğrulama yalnızca belirli gruplar için sınırlanabilir.",
- "Two-factor authentication is enforced for all members of the following groups." : "Belirtilen grupların tüm üyeleri için iki adımlı doğrulama kullanımı zorunlu olur.",
- "Enforced groups" : "Uygulanacak gruplar",
- "Two-factor authentication is not enforced for members of the following groups." : "Belirtilen grupların tüm üyeleri için iki adımlı doğrulama kullanımı zorunlu olmaz.",
+ "Enforcement of two-factor authentication can be set for certain groups only." : "İki adımlı doğrulama yalnızca belirli gruplar için zorunlu kılınabilir.",
+ "Two-factor authentication is enforced for all members of the following groups." : "Belirtilen grupların tüm üyeleri için iki adımlı doğrulama kullanılması zorunlu kılınır.",
+ "Enforced groups" : "Zorunlu kılınacak gruplar",
+ "Two-factor authentication is not enforced for members of the following groups." : "Belirtilen grupların tüm üyeleri için iki adımlı doğrulama kullanımı zorunlu kılınmaz.",
"Excluded groups" : "Uygulanmayacak gruplar",
- "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Uygulanan ya da uygulanmayan gruplar belirtildiğinde, bir hesabın iki adımlı doğrulama kullanıp kullanmayacağına şu şekilde karar verilir. Herhangi bir grup belirtilmemiş ise, uygulanmayan grupların üyeleri dışındaki tüm üyeler için iki adımlı doğrulama kullanılır. Belirtilmiş gruplar varsa, uygulanan bu grupların üyeleri için iki adımlı doğrulama kullanılır. Bir hesabın hem uygulanan hem de uygulanmayan gruplarda üyeliği varsa, uygulanan grupların önceliği vardır ve iki adımlı doğrulama kullanılır.",
+ "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Uygulanan ya da uygulanmayan gruplar belirtildiğinde, bir hesap için iki adımlı doğrulamanın zorunlu kılınıp kılınmayacağına şu şekilde karar verilir. Herhangi bir grup belirtilmemiş ise, uygulanmayan grupların üyeleri dışındaki tüm üyeler için iki adımlı doğrulama kullanılır. Belirtilmiş gruplar varsa, uygulanan bu grupların üyeleri için iki adımlı doğrulama kullanılır. Bir hesabın hem uygulanan hem de uygulanmayan gruplarda üyeliği varsa, uygulanan grupların önceliği vardır ve iki adımlı doğrulama zorunlu kılınır.",
"Save changes" : "Değişiklikleri kaydet",
"Show details for {appName} app" : "{appName} uygulamasının ayrıntılarını görüntüle",
"Update to {update}" : "{update} sürümüne güncelle",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Uygulama mağazasından bölüm içeriği yüklenemedi.",
"Loading" : "Yükleniyor",
"Fetching the latest news…" : "Son haberler alınıyor…",
- "Carousel" : "Dönme dolap",
- "Previous slide" : "Önceki slayt",
- "Next slide" : "Sonraki slayt",
- "Choose slide to display" : "Görüntülenecek slaytı seçin",
- "{index} of {total}" : "{index} / {total}",
- "Daemon" : "Arka plan işlemi",
- "Deploy Daemon" : "Dağıtım arka plan işlemi",
- "Type" : "Tür",
- "Display Name" : "Görüntülenecek ad",
- "GPUs support" : "Grafik işlemci desteği",
- "Compute device" : "Hesaplama aygıtı",
- "Advanced deploy options" : "Gelişmiş dağıtma seçenekleri",
- "Edit ExApp deploy options before installation" : "ExApp dağıtma seçeneklerini kurulumdan önce düzenleyin",
- "Configured ExApp deploy options. Can be set only during installation" : "Yapılandırılmış ExApp dağıtım seçenekleri. Yalnızca kurulum sırasında ayarlanabilir",
- "Learn more" : "Ayrıntılı bilgi alın",
- "Environment variables" : "Ortam değişkenleri",
- "ExApp container environment variables" : "ExApp kapsayıcısı ortam değişkenleri",
- "No environment variables defined" : "Herhangi bir ortam değişkeni tanımlanmamış",
- "Mounts" : "Takılanlar",
- "Define host folder mounts to bind to the ExApp container" : "ExApp kapsayıcısına takılacak sunucu klasörü bağlantılarını tanımlayın",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "ExApp kurmadan önce sunucuda dağıtım işlemi var olmalıdır",
- "Host path" : "Sunucu yolu",
- "Container path" : "Kapsayıcı yolu",
- "Read-only" : "Salt okunur",
- "Remove mount" : "Takmayı kaldır",
- "New mount" : "Yeni takma",
- "Enter path to host folder" : "Sunucu klasörünün yolunu yazın",
- "Enter path to container folder" : "Kapsayıcı klasörünün yolunu yazın",
- "Toggle read-only mode" : "Salt okunur kipi aç/kapat",
- "Confirm adding new mount" : "Yeni takma eklemeyi onayla",
- "Confirm" : "Onayla",
- "Cancel adding mount" : "Takma eklemeyi iptal et",
- "Cancel" : "İptal",
- "Add mount" : "Takma ekle",
- "ExApp container mounts" : "ExApp kapsayıcı takmaları",
- "No mounts defined" : "Herhangi bir takma tanımlanmamış",
- "Description" : "Açıklama",
- "View in store" : "Mağazada görüntüle",
- "Visit website" : "Siteye bakın",
- "Usage documentation" : "Kullanım belgeleri",
- "Admin documentation" : "Yönetici belgeleri",
- "Developer documentation" : "Geliştirici belgeleri",
- "Details" : "Ayrıntılar",
- "All" : "Tümü",
- "Limit app usage to groups" : "Uygulama kullanımı şu gruplarla sınırlansın",
- "No results" : "Herhangi bir sonuç bulunamadı",
- "Update to {version}" : "{version} sürümüne güncelle",
- "Deploy options" : "Dağıtım seçenekleri",
- "Default Deploy daemon is not accessible" : "Varsayılan dağıtım arka plan işlemine erişilemedi",
- "Delete data on remove" : "Kaldırıldığında veriler silinsin",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için en düşük Nextcloud sürümü belirtilmemiş. Bu durum ileride sorun çıkarır.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için en yüksek Nextcloud sürümü belirtilmemiş. Bu durum ileride sorun çıkarır.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Aşağıdaki bağımlılıklar sağlanmadığından bu uygulama kurulamıyor:",
- "Latest updated" : "Son güncellenen",
- "Author" : "İlgili",
- "Categories" : "Kategoriler",
- "Resources" : "Kaynaklar",
- "Documentation" : "Belgeler",
- "Interact" : "Ulaşın",
- "Report a bug" : "Hata bildirin",
- "Request feature" : "Özellik isteyin",
- "Ask questions or discuss" : "Soru sorun ya da tartışın",
- "Rate the app" : "Uygulamayı değerlendir",
- "Rate" : "Değerlendirin",
- "Changelog" : "Değişiklik günlüğü",
- "Google Chrome for Android" : "Android için Google Chrome",
- "{productName} iOS app" : "{productName} iOS uygulaması",
- "{productName} Android app" : "{productName} Android uygulaması",
- "{productName} Talk for iOS" : "{productName} iOS için Konuş",
- "{productName} Talk for Android" : "{productName} Android için Konuş",
- "Sync client" : "İstemciyi eşitle",
- "This session" : "Bu oturum",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Aygıt adı",
- "Cancel renaming" : "Yeniden adlandırmayı iptal et",
- "Save new name" : "Yeni adı kaydet",
- "Marked for remote wipe" : "Uzaktan silme için işaretlendi",
- "Device settings" : "Aygıt ayarları",
- "Allow filesystem access" : "Dosya sistemine erişilebilsin",
- "Rename" : "Yeniden adlandır",
- "Revoke" : "Geri al",
- "Wipe device" : "Aygıtı sil",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Silme işlemi henüz başlamamış ise bu kodun geri çekilmesi aygıtınızın silinmesini engelleyebilir.",
- "Device" : "Aygıt",
- "Last activity" : "Son işlem",
- "Devices & sessions" : "Aygıt ve oturumlar",
- "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza oturum açmış internet, masaüstü ve mobil istemcileri.",
- "Error while creating device token" : "Aygıt kodu oluşturulurken sorun çıktı",
- "App name" : "Uygulama adı",
- "Create new app password" : "Yeni uygulama parolası oluştur",
"App password copied!" : "Uygulama parolası kopyalandı!",
"Copy app password" : "Uygulama parolasını kopyala",
"Login name copied!" : "Kullanıcı adı kopyalandı!",
@@ -544,7 +456,7 @@ OC.L10N.register(
"Use the credentials below to configure your app or device. For security reasons this password will only be shown once." : "Uygulamanızı veya aygıtınızı yapılandırmak için aşağıdaki kimlik doğrulama bilgilerini kullanın. Güvenlik nedeniyle bu parola yalnızca bir kez görüntülenecek.",
"Login" : "Oturum açın",
"Password" : "Parola",
- "Show QR code for mobile apps" : "Mobil uygulamalar için QR kodu görüntülensin",
+ "Show QR code for mobile apps" : "Mobil uygulamalar için kare kod görüntülensin",
"Use system cron service to call the cron.php file every 5 minutes." : "5 dakikada bir cron.php dosyasının çağrılması için sistem cron hizmeti kullanılsın.",
"The cron.php needs to be executed by the system account \"{user}\"." : "cron.php dosyası \"{user}\" sistem hesabı tarafından yürütülmelidir.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "PHP POSIX eklentisi gereklidir. Ayrıntılı bilgi almak için {linkstart}PHP belgelerine{linkend} bakabilirsiniz.",
@@ -560,229 +472,38 @@ OC.L10N.register(
"Cron (Recommended)" : "Cron (önerilen)",
"Unable to update profile default setting" : "Profil varsayılan ayarı güncellenemedi",
"Profile" : "Profil",
- "Enable or disable profile by default for new accounts." : "Bu seçenek kullanıma alındığında, profil yeni hesaplar için varsayılan olur.",
+ "Enable or disable profile by default for new accounts." : "Yeni hesaplar için profilleri varsayılan olarak kullanıma al ya da kaldır.",
+ "Password confirmation is required" : "Parola onayının yazılması zorunludur",
"Failed to save setting" : "Ayar kaydedilemedi",
"{app}'s declarative setting field: {name}" : "{app} uygulamasının bildirdiği ayar alanı: {name}",
"Unable to update server side encryption config" : "Sunucu tarafı şifreleme yapılandırması güncellenemedi",
"Server-side encryption" : "Sunucu tarafı şifreleme",
- "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Sunucu tarafındaki şifreleme, sunucuya yüklenen dosyaların şifrelenebilmesini sağlar. Bu özellik genel başarımı düşürdüğünden yalnızca gerek varsa kullanıma alın.",
+ "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Sunucu tarafındaki şifreleme, sunucuya yüklenen dosyaların şifrelenebilmesini sağlar. Bu özellik genel başarımı düşürdüğünden yalnızca gerek varsa açın.",
"To encrypt all existing files run this OCC command:" : "Var olan tüm dosyaları şifrelemek için şu OCC komutunu kullanın:",
"Enable server-side encryption" : "Sunucu tarafı şifreleme kullanılsın",
"Disabling server side encryption is only possible using OCC, please refer to the documentation." : "Sunucu tarafındaki şifreleme yalnızca OCC ile kapatılabilir. Lütfen belgelere bakın.",
- "No encryption module loaded, please enable an encryption module in the app menu." : "Herhangi bir şifreleme modülü yüklenmemiş. Lütfen uygulama menüsünden bir şifreleme modülünü kullanıma alın.",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Herhangi bir şifreleme modülü yüklenmemiş. Lütfen uygulama menüsünden bir şifreleme modülünü açın.",
"Select default encryption module:" : "Varsayılan şifreleme modülünü seçin:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine aktarmalısınız. Lütfen \"Varsayılan şifreleme modülü\"nü kullanıma alıp {command} komutunu yürütün",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine aktarmalısınız. Lütfen bir \"Varsayılan şifreleme modülü\" açıp {command} komutunu yürütün",
"Cancel encryption" : "Şifrelemeyi kapat",
"Enable encryption" : "Şifreleme kullanılsın",
"Confirm enabling encryption" : "Şifrelemeyi açmayı onayla",
- "Please read carefully before activating server-side encryption:" : "Lütfen sunucu tarafında şifrelemeyi kullanıma almadan önce dikkatlice okuyun:",
- "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Şifreleme kullanıma alındığında, kullanıma alma anından sonra sunucuya yüklenen tüm dosyalar şifrelenir. Şifreleme daha sonra kullanımdan kaldırılmak istenirse, kullanımdaki şifreleme modülünün bu özelliği desteklemesi ve tüm ön koşulların (örneğin kurtarma anahtarı oluşturulması) yerine getirilmesi gerekir.",
+ "Please read carefully before activating server-side encryption:" : "Sunucu tarafında şifrelemeyi açmadan önce lütfen dikkatlice okuyun:",
+ "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Şifreleme açıldığında, bu andan itibaren sunucuya yüklenen tüm dosyalar şifrelenir. Şifreleme daha sonra kapatılmak istenirse, kullanımdaki şifreleme modülünün bu özelliği desteklemesi ve tüm ön koşulların (örneğin kurtarma anahtarı oluşturulması) yerine getirilmesi gerekir.",
"By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "Varsayılan olarak tüm kopya için bir ana anahtar oluşturulur. Lütfen bu erişim düzeyinin gereksinimlerinize uygun olup olmadığını kontrol edin.",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Şifreleme tek başına sistemin güvenliğini garanti etmez. Lütfen şifreleme uygulamasının nasıl çalıştığı ve desteklenen kullanım şekilleri hakkında ayrıntılı bilgi almak için belgelere bakabilirsiniz.",
"Be aware that encryption always increases the file size." : "Şifreleme işleminin dosya boyutlarını büyüteceğini unutmayın.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Verilerinizi düzenli yedekleyin ve şifreleme kullanıyorsanız şifreleme anahtarlarınızın da verilerinizle birlikte yedeklendiğinden emin olun.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Var olan dosyaların el ile nasıl şifreleneceğini öğrenmek için yönetici belgelerine bakın.",
- "This is the final warning: Do you really want to enable encryption?" : "Son uyarı: Şifrelemeyi kullanıma almak istiyor musunuz?",
- "Failed to remove group \"{group}\"" : "\"{group}\" grubu silinemedi",
+ "This is the final warning: Do you really want to enable encryption?" : "Son uyarı: Şifrelemeyi açmak istiyor musunuz?",
+ "Failed to delete group \"{group}\"" : "\"{group}\" grubu silinemedi",
"Please confirm the group removal" : "Grubu silme işlemini onaylayın",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "\"{group}\" grubunu silmek üzeresiniz. Hesaplar SİLİNMEYECEK.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "\"{group}\" grubunu silmek üzeresiniz. Hesaplar SİLİNMEYECEK.",
+ "Cancel" : "İptal",
+ "Confirm" : "Onayla",
"Submit" : "Gönder",
"Rename group" : "Grubu yeniden adlandır",
- "Remove group" : "Grubu sil",
- "Current password" : "Geçerli parola",
- "New password" : "Yeni parola",
- "Change password" : "Parola değiştir",
- "Choose your profile picture" : "Profil görselinizi seçin",
- "Please select a valid png or jpg file" : "Lütfen geçerli bir png ya da jpg dosyası seçin",
- "Error setting profile picture" : "Profil görseli ayarlanırken sorun çıktı",
- "Error cropping profile picture" : "Profil görseli kırpılırken sorun çıktı",
- "Error saving profile picture" : "Profil görseli kaydediliirken sorun çıktı",
- "Error removing profile picture" : "Profil görseli kaldırılırken sorun çıktı",
- "Your profile picture" : "Profil görseliniz",
- "Upload profile picture" : "Profil görseli yükle",
- "Choose profile picture from Files" : "Dosyalar uygulamasından profil görseli seçin",
- "Remove profile picture" : "Profil görselini kaldır",
- "The file must be a PNG or JPG" : "Dosya PNG ya da JPG biçiminde olmalıdır",
- "Picture provided by original account" : "Görsel özgün hesabınız tarafından sağlanıyor",
- "Set as profile picture" : "Profil görseli olarak ayarla",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Lütfen profil görselinizin her yerde güncellenmesinin 24 saat kadar sürebileceğini unutmayın.",
- "Your biography. Markdown is supported." : "Özgeçmişiniz. Markdown kullanılabilir.",
- "Unable to update date of birth" : "Doğum tarihi güncellenemedi",
- "Enter your date of birth" : "Doğum tarihinizi yazın",
- "You are using {s}{usage}{/s}" : "{s}{usage}{/s} kullanıyorsunuz",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "{s}{usage}{/s} / {s}{totalSpace}{/s} kullanıyorsunuz ({s}%{usageRelative}{/s})",
- "You are a member of the following groups:" : "Şu gruplara üyesiniz:",
- "Your full name" : "Tam adınız",
- "Email options" : "E-posta seçenekleri",
- "Options for additional email address {index}" : "{index}. ek e-posta adresi seçenekleri",
- "Remove primary email" : "Birincil e-posta adresini sil",
- "Delete email" : "E-posta adresini sil",
- "This address is not confirmed" : "Bu adres doğrulanmamış",
- "Unset as primary email" : "Birincil e-posta işaretini kaldır",
- "Set as primary email" : "Birincil e-posta olarak ayarla",
- "Additional email address {index}" : "{index}. ek e-posta adresi",
- "Unable to delete primary email address" : "Birincil e-posta adresi silinemedi",
- "Unable to update primary email address" : "Birincil e-posta adresi güncellenemedi",
- "Unable to add additional email address" : "Ek e-posta adresi eklenemedi",
- "Unable to update additional email address" : "Ek e-posta adresi güncellenemedi",
- "Unable to delete additional email address" : "Ek e-posta adresi silinemedi",
- "Primary email for password reset and notifications" : "Parola sıfırlama ve bildirimler için birincil e-posta adresi",
- "No email address set" : "E-posta adresi belirtilmemiş",
- "Your handle" : "Kodunuz",
- "Derived from your locale ({weekDayName})" : "Yerel ayarlarınızdan alınan ({weekDayName})",
- "Unable to update first day of week" : "Haftanın ilk günü güncellenemedi",
- "Day to use as the first day of week" : "Haftanın ilk günü olarak kullanılacak gün",
- "Your headline" : "Başlığınız",
- "Unable to update language" : "Dil güncellenemedi",
- "Languages" : "Diller",
- "Help translate" : "Çeviriye yardım edin",
- "No language set" : "Herhangi bir dil ayarlanmamış",
- "Unable to update locale" : "Yerel ayar güncellenemedi",
- "Locales" : "Yerel ayarlar",
- "Week starts on {firstDayOfWeek}" : "Hafta başlangıcı: {firstDayOfWeek}",
- "No locale set" : "Herhangi bir yerel ayar seçilmemiş",
- "Your city" : "İliniz",
- "Your organisation" : "Kuruluşunuz",
- "Your phone number" : "Telefon numaranız",
- "Edit your Profile visibility" : "Profilinizin görünürlüğü değiştirin",
- "Unable to update profile enabled state" : "Profilin kullanıma alınma durumu güncellenemedi",
- "Enable profile" : "Profili kullanıma al",
- "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." : "Profilinizde daha kısıtlayıcı olan görünürlük veya kapsam ayarına uyulur - Örneğin, görünürlük \"Herkese görüntülensin\" ve kapsam \"Özel\" olarak ayarlanmışsa, \"Özel\" seçimine uyulur.",
- "Unable to update visibility of {displayId}" : "{displayId} görünürlüğü güncellenemedi",
- "she/her" : "hanım",
- "he/him" : "bey",
- "they/them" : "kişi",
- "Your role" : "Pozisyonunuz",
- "Your X (formerly Twitter) handle" : "X (eski Twitter) kullanıcı adınız",
- "Your website" : "Sitenizin adresi",
- "Invalid value" : "Değer geçersiz",
- "Unable to update {property}" : "{property} güncellenemedi",
- "No {property} set" : "Herhangi bir {property} ayarlanmamış",
- "Change scope level of {property}, current scope is {scope}" : "{property} kapsam düzeyini değiştir. Geçerli kapsam: {scope}",
- "Unable to update federation scope of the primary {property}" : "Birincil {property} birleşik kapsamı güncellenemedi",
- "Unable to update federation scope of additional {property}" : "Ek {property} birleşik kapsamı güncellenemedi",
- "Add additional email" : "Ek e-posta adresi ekle",
- "Add" : "Ekle",
- "Create" : "Ekle",
- "Change" : "Değiştir",
- "Delete" : "Sil",
- "Reshare" : "Yeniden paylaş",
- "Default language" : "Varsayılan dil",
- "Common languages" : "Sık kullanılan diller",
- "Other languages" : "Diğer diller",
- "Password change is disabled because the master key is disabled" : "Ana anahtar kullanımdan kaldırıldığından parola değişikliği kullanımdan kaldırıldı.",
- "No accounts" : "Henüz bir hesap yok",
- "Loading accounts …" : "Hesaplar yükleniyor...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Hesap listesi. Başarımı olumsuz etkilememek için listenin tümü görüntülenmiyor. Listede ilerledikçe diğer hesaplar görüntülenecek.",
- "Manager" : "Yönetici",
- "Set line manager" : "Satır yöneticisini ayarla",
- "Account name will be autogenerated" : "Hesap adı otomatik olarak oluşturulacak",
- "Account name (required)" : "Hesap adı (zorunlu)",
- "Failed to search groups" : "Gruplar aranamadı",
- "New account" : "Hesap ekle",
- "Display name" : "Görüntülenecek ad",
- "Either password or email is required" : "Parola ya da e-posta adresi zorunludur",
- "Password (required)" : "Parola (zorunlu)",
- "Email (required)" : "E-posta adresi (zorunlu)",
- "Email" : "E-posta",
- "Member of the following groups (required)" : "Şu grupların üyesi (zorunlu)",
- "Member of the following groups" : "Şu grupların üyesi",
- "Set account groups" : "Hesap gruplarını ayarla",
- "Admin of the following groups" : "Şu grupların yöneticisi",
- "Set account as admin for …" : "Hesabı şunun yöneticisi olarak ayarla…",
- "Quota" : "Kota",
- "Set account quota" : "Hesap kotasını ayarla",
- "Language" : "Dil",
- "Set default language" : "Varsayılan dili ayarla",
- "Add new account" : "Yeni hesap ekle",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} hesap…","{userCount} hesap…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} hesap","{userCount} hesap"],
- "Total rows summary" : "Toplam satır özeti",
- "Scroll to load more rows" : "Diğer satırları görüntülemek için aşağı kaydırın",
- "Password or insufficient permissions message" : "Parola ya da izinler yetersiz iletisi",
- "Avatar" : "Avatar",
- "Account name" : "Hesap adı",
- "Group admin for" : "Şunun grup yöneticisi",
- "Account backend" : "Hesap arka ucu",
- "Storage location" : "Depolama konumu",
- "First login" : "İlk oturum açma",
- "Last login" : "Son oturum açma",
- "Account actions" : "Hesap işlemleri",
- "{size} used" : "{size} kullanılmış",
- "Delete account" : "Hesabı sil",
- "Disconnect all devices and delete local data" : "Tüm aygıtların bağlantısını kes ve yerel verileri sil",
- "Disable account" : "Hesabı kullanımdan kaldır",
- "Enable account" : "Hesabı kullanıma al",
- "Resend welcome email" : "Karşılama e-postasını yeniden gönder",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Aygıt kaybedildiğinde ya da kuruluş ile çalışma sona erdirildiğinde, bu özellik {userid} ile ilişkili tüm aygıtlardaki Nextcloud verilerini silebilir. Bu özellik yalnızca aygıtların İnternet bağlantısı olduğunda kullanılabilir.",
- "Remote wipe of devices" : "Uzaktan aygıt temizleme",
- "Wipe {userid}'s devices" : "{userid} aygıtlarını temizle",
- "Wiped {userid}'s devices" : "{userid} kullanıcısının aygıtları silindi",
- "Failed to load groups with details" : "Gruplar ayrıntıları ile yüklenemedi",
- "Failed to load sub admin groups with details" : "Alt yönetici grupları ayrıntıları ile yüklenemedi",
- "Failed to update line manager" : "Satır yöneticisi güncellenemedi",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} için kişisel dosyalar ve uygulama verileri gibi tüm hesap bilgilerini tamamen siler",
- "Account deletion" : "Hesap silme",
- "Delete {userid}'s account" : "{userid} hesabını sil",
- "Display name was successfully changed" : "Görüntülenecek ad değiştirildi",
- "Password can't be empty" : "Parola boş olamaz",
- "Password was successfully changed" : "Parola değiştirildi",
- "Email can't be empty" : "E-posta adresi boş olamaz",
- "Email was successfully changed" : "E-posta adresi değiştirildi",
- "Welcome mail sent!" : "Karşılama e-postası gönderildi!",
- "Loading account …" : "Hesap yükleniyor…",
- "Change display name" : "Görüntülenecek adı değiştir",
- "Set new password" : "Yeni parola ayarla",
- "You do not have permissions to see the details of this account" : "Bu hesabın ayrıntılarını görüntüleme izniniz yok",
- "Set new email address" : "Yeni e-posta adresi ayarla",
- "Add account to group" : "Hesabı gruba ekle",
- "Set account as admin for" : "Hesabı şurada yönetici yap",
- "Select account quota" : "Hesap kotasını seçin",
- "Set the language" : "Dili ayarla",
- "Toggle account actions menu" : "Hesap işlemleri menüsünü aç/kapat",
- "Done" : "Tamam",
- "Edit" : "Düzenle",
- "Account management settings" : "Hesap yönetimi ayarları",
- "Visibility" : "Görünürlük",
- "Show language" : "Görüntülenecek dil",
- "Show account backend" : "Hesap arka ucu görüntülensin",
- "Show storage path" : "Depolama yolu görüntülensin",
- "Show first login" : "İlk oturum açma zamanı görüntülensin",
- "Show last login" : "Son oturum açma zamanı görüntülensin",
- "Sorting" : "Sıralama",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Sistem yapılandırması, grupların ada göre sıralanmasını zorunlu kılar. Bu aynı zamanda üye sayısının görüntülenmesini de kapatır.",
- "Group list sorting" : "Grup listesi sıralaması",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Başarımı olumsuz etkilememek için sıralama şu anda yalnızca yüklü olan gruplara uygulanıyor. Listede ilerledikçe ya da aradıkça gruplar yüklenecek.",
- "By member count" : "Üye sayısına göre",
- "By name" : "Ada göre",
- "Send email" : "E-posta gönder",
- "Send welcome email to new accounts" : "Yeni hesaplara hoş geldiniz e-postası gönderilsin",
- "Defaults" : "Varsayılanlar",
- "Default quota" : "Varsayılan kota",
- "Select default quota" : "Varsayılan kota değerini seçin",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn aygıtı kaydedilirken sunucu sorunu çıktı",
- "Passwordless authentication requires a secure connection." : "Parolasız kimlik doğrulama özelliği güvenli bir bağlantı üzerinden kullanılabilir.",
- "Add WebAuthn device" : "WebAuthn aygıtı ekle",
- "Please authorize your WebAuthn device." : "Lütfen WebAuthn aygıtınızın kimliğini doğrulayın.",
- "Adding your device …" : "Aygıtınız ekleniyor …",
- "Unnamed device" : "Adsız aygıt",
- "Passwordless Authentication" : "Parolasız kimlik doğrulaması",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Hesabınız için FIDO2 standardına uygun parolasız kimlik doğrulamasını kurun.",
- "No devices configured." : "Herhangi bir aygıt yapılandırılmamış.",
- "The following devices are configured for your account:" : "Hesabınız için şu aygıtlar yapılandırılmış:",
- "Your browser does not support WebAuthn." : "Tarayıcınız WebAuthn desteklemiyor.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Yönetici olarak paylaşma davranışı ile ilgili ince ayarları yapabilirsiniz. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.",
- "You need to enable the File sharing App." : "Dosya paylaşımı uygulamasını kullanıma almalısınız.",
- "App Store" : "Uygulama mağazası",
- "Loading app list" : "Uygulama listesi yükleniyor",
- "Loading categories" : "Kategoriler yükleniyor",
- "Developer documentation ↗" : "Geliştirici belgeleri ↗",
- "Version {version}, {license}-licensed" : "{version} sürümü, {license} lisansı",
- "Version {version}" : "{version} sürümü",
- "All accounts" : "Tüm hesaplar",
- "Admins" : "Yöneticiler",
- "Account group: {group}" : "Hesap grubu: {group}",
- "Account management" : "Hesap yönetimi",
+ "Delete group" : "Grubu sil",
"Sending…" : "Gönderiliyor …",
"Email sent" : "E-posta gönderildi",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Bir Nextcloud sunucusunda şifrelemeyi açtığınızda, başarımı korumak için yalnızca yeni ve değiştirilen dosyalar şifrelenir.",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "Doğum tarihi",
"Full name" : "Tam ad",
"Additional email" : "Ek e-posta",
+ "Email" : "E-posta",
"Fediverse (e.g. Mastodon)" : "Fediverse (Mastodon gibi)",
"Headline" : "Başlık",
"Organisation" : "Kuruluş",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (eski Twitter)",
"Website" : "Site",
"Profile visibility" : "Profil görünürlüğü",
+ "Language" : "Dil",
"Locale" : "Yerel Ayar",
"First day of week" : "Haftanın ilk günü",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Bu özellik, dosya paylaşımı ve takvim davetleri gibi temel işlevler için gerekli olduğundan kullanılamıyor",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "Yalnızca oturum açmış hesaplara görüntülensin",
"Hide" : "Gizlensin",
"Manually installed apps cannot be updated" : "El ile kurulmuş uygulamalar güncellenemez",
+ "Update to {version}" : "{version} sürümüne güncelle",
"{progress}% Deploying …" : "Dağıtılıyor %{progress}…",
"{progress}% Initializing …" : "Hazırlanıyor %{progress}…",
"Health checking" : "Sağlık denetimi",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "Denenmemiş uygulamalar kullanılabilsin",
"The app will be downloaded from the App Store" : "Uygulama uygulama mağazasından indirilecek",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Bu uygulamanın kullandığınız Nextcloud sürümü ile uyumluluğu denetlenmemiş. İşlemi sürdürerek uygulamayı kurabilirsiniz. Ancak uygulama beklendiği gibi çalışmayabilir.",
+ "{size} used" : "{size} kullanılmış",
"Unknown" : "Bilinmiyor",
"Never" : "Asla",
"Could not register device: Network error" : "Aygıt kaydedilemedi: Ağ sorunu",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "Grup sıralaması ayarlanamadı",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ağınızdan çok fazla istekte bulunuldu. Bir süre sonra yeniden deneyin ya da bir sorun olduğunu düşünüyorsanız BT yöneticiniz ile görüşün.",
"Error" : "Hata",
+ "Default quota" : "Varsayılan kota",
"Account documentation" : "Hesap belgeleri",
"Administration documentation" : "Yönetim belgeleri",
+ "Documentation" : "Belgeler",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud yardım ve gizlilik kaynakları",
"General documentation" : "Genel belgeler",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP parolası",
"Save" : "Kaydet",
"Test and verify email settings" : "E-posta ayarlarını sınayın ve doğrulayın",
+ "Send email" : "E-posta gönder",
"Security & setup warnings" : "Güvenlik ve kurulum uyarıları",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Kopyanızın güvenli ve yüksek başarımla çalışması için ayarların doğru yapılmış olması önemlidir. Bunu sağlamak için bazı otomatik denetimler yapılır. Ayrıntılı bilgi almak için İpuçları bölümüne ve belgelere bakın.",
"All checks passed." : "Tüm denetimlerden geçti.",
@@ -886,53 +614,16 @@ OC.L10N.register(
"Subscribe to our newsletter" : "Bültenimize abone olun",
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Bu Nextcloud topluluk sürümü desteklenmiyor ve anlık bildirimler kullanılamıyor.",
"Use a second factor besides your password to increase security for your account." : "Parolanızın yanında ikinci bir doğrulama kullanarak hesabınızın güvenliğini arttırabilirsiniz.",
- "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud bağlantısı kurmak için üçüncü taraf uygulamaları kullanıyorsanız, lütfen iki adımlı doğrulamayı kullanıma almadan önce her biri için bir uygulama parolası oluşturduğunuzdan ve yapılandırdığınızdan emin olun.",
+ "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud bağlantısı kurmak için üçüncü taraf uygulamaları kullanıyorsanız, lütfen iki adımlı doğrulamayı açmadan önce her biri için bir uygulama parolası oluşturduğunuzdan ve yapılandırdığınızdan emin olun.",
"Logged in account must be a subadmin" : "Oturum açmış hesap bir alt yönetici olmalıdır",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Bu denetimi çalıştırabilmek için site sunucunuzun kendisine bağlanabildiğinden emin olmanız gerekir. Bu nedenle, `trusted_domains` ya da `overwrite.cli.url` değerlerinden en az birini çözümleyebilmeli ve bunlara bağlanabilmelidir.",
- "Missing optional index \"%s\" in table \"%s\"." : "İsteğe bağlı \"%s\" dizini \"%s\" tablosunda eksik.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Veri tabanında bazı dizinler eksik. Büyük tablolara dizinlerin eklenmesi uzun sürebildiğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken eksik dizinleri el ile eklemek için \"occ db:add-missing-indices\" komutunu yürütün. Dizinler eklendikten sonra bu tablolar üzerindeki sorgular çok daha hızlı yürütülür.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Bu denetimi çalıştırabilmek için site sunucunuzun kendisine bağlanabildiğinden emin olmanız gerekir. Bu nedenle, `trusted_domains` ya da `overwrite.cli.url` değerlerinden en az birini çözümleyebilmeli ve bunlara bağlanabilmelidir. Bu sorun, sunucu tarafındaki bir DNS uyumsuzluğunun veya giden güvenlik duvarı kuralının sonucu olabilir.",
"File locking" : "Dosya kilitleme",
- "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "İşlemsel dosya kilidi kullanımdan kaldırılmış. Bu durum yarış koşullarında (race condition) sorun çıkarabilir. Bu sorunlardan kaçınmak için config.php dosyasındaki \"filelocking.enabled\" seçeneğini kullanıma alın.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "`trusted_domains` ya da `overwrite.cli.url` değerlerinden biri ile JavaScript desteği olup olmadığ denetlenemedi. Bu durum, sunucu tarafı DNS uyuşmazlığından ya da giden güvenlik duvarı kuralından kaynaklanıyor olabilir. Lütfen site sunucunuzun JavaScript MIME türünü kullanarak `.mjs` dosyalarını sunup sunmadığını el ile denetleyin.",
+ "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "İşlemsel dosya kilidi kapalı. Bu durum yarış koşullarında (race condition) sorun çıkarabilir. Bu sorunlardan kaçınmak için config.php dosyasındaki \"filelocking.enabled\" seçeneğini açın.",
"The PHP memory limit is below the recommended value of %s." : "PHP bellek sınırı önerilen %s değerinden küçük.",
"for WebAuthn passwordless login" : "WebAuthn parolasız oturum açma için",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn parolasız oturum açma ve SFTP depolama alanı için",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Şu anda PHP %s kullanıyorsunuz. PHP 8.0 son olarak Nextcloud 27 sürümünde destekleniyor. Nextcloud 28 için en az PHP 8.1 gerekebilir. Lütfen olabilecek en kısa sürede PHP Group tarafından sağlanan resmi olarak desteklenen PHP sürümlerinden birine yükseltin.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB \"%s\" sürümü kullanılıyor. Nextcloud 21 ve üzerinde bu sürüm desteklenmiyor. MariaDB 10.2 ve üzerindeki bir sürüm kullanılmalıdır.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL \"%s\" sürümü kullanılıyor. Nextcloud 21 sürümünde bu sürüm desteklenmiyor. MySQL 8.0 ya da MariaDB 10.2 ve üzerindeki bir sürüm kullanılmalıdır.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL \"%s\" sürümü kullanılıyor. Nextcloud 21 sürümünde bu sürüm desteklenmiyor. PostgreSQL 9.6 ve üzerindeki bir sürüm kullanılmalıdır.",
- "Speech-To-Text" : "Konuşmadan metne",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Konuşmadan metne dönüştürme özelliği farklı uygulamalardan sağlanabilir. Buradan, hangi uygulamanın kullanılacağını ayarlayabilirsiniz.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Şu anda kurulu uygulamaların hiç birinde konuşmadan metne dönüştürme özelliği yok",
- "None of your currently installed apps provide Text processing functionality" : "Şu anda kurulu uygulamaların hiç birinde metin işleme özelliği yok",
- "Set default expiration date for shares" : "Paylaşımlar için varsayılan geçerlilik süresi sonu ayarlansın",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Paylaşım penceresinde kullanıcı adının otomatik tamamlanmasına ve sistem adres defterine erişilmesine izin verilsin",
- "Your biography" : "Özgeçmişiniz",
- "You are using <strong>{usage}</strong>" : "<strong>{usage}</strong> kullanıyorsunuz",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "<strong>{usage}</strong> / <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>) kullanıyorsunuz",
- "Set user manager" : "Kullanıcı yöneticisi ayarla",
- "Username will be autogenerated" : "Kullanıcı adı otomatik olarak oluşturulacak",
- "Username (required)" : "Kullanıcı adı (zorunlu)",
- "New user" : "Yeni kullanıcı",
- "Groups (required)" : "Gruplar (zorunlu)",
- "Set user groups" : "Kullanıcı gruplarını ayarla",
- "Administered groups" : "Yönetilen gruplar",
- "Set user as admin for …" : "Kullanıcıyı şunun yöneticisi yap…",
- "Set user quota" : "Kullanıcı kotasını ayarla",
- "Add new user" : "Yeni kullanıcı ekle",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} kullanıcı…","{userCount} kullanıcı…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} kullanıcı","{userCount} kullanıcı"],
- "Loading users …" : "Kullanıcılar yükleniyor…",
- "Username" : "Kullanıcı adı",
- "User backend" : "Kullanıcı arka ucu",
- "User actions" : "Kullanıcı işlemleri",
- "Add user to group" : "Gruba kullanıcı ekle",
- "Server error while trying to add WebAuthn device" : "WebAuthn aygıtı eklenirken sunucu sorunu çıktı",
- "Name your device" : "Aygıtınıza bir ad verin",
- "Active accounts" : "Etkin hesaplar",
- "Follow us on Twitter" : "Bizi Twitter üzerinde izleyin",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Bu denetimi çalıştırabilmek için site sunucunuzun kendisine bağlanabildiğinden emin olmanız gerekir. Bu nedenle, `trusted_domains` ya da `overwrite.cli.url` değerlerinden en az birini çözümleyebilmeli ve bunlara bağlanabilmelidir. Bu sorun, sunucu tarafındaki bir DNS uyumsuzluğunun veya giden güvenlik duvarı kuralının sonucu olabilir.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP üst bilgisinde `%2$s` bulunmuyor. Bu durum olası bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarın belirtildiği gibi yapılması önerilir.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için PostgreSQL sürümünün 12 ile 16 arasında olması önerilir.",
- "Failed to load subadmin groups with details" : "Alt yönetici grupları ayrıntıları ile yüklenemedi"
+ "Set default expiration date for shares" : "Paylaşımlar için varsayılan geçerlilik süresi sonu ayarlansın"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json
index 92e35aa4ac2..7f1b187f58e 100644
--- a/apps/settings/l10n/tr.json
+++ b/apps/settings/l10n/tr.json
@@ -117,7 +117,7 @@
"Availability" : "Uygunluk",
"Calendar" : "Takvim",
"Personal info" : "Kişisel bilgiler",
- "Mobile & desktop" : "Mobil ve masaüstü",
+ "Mobile & desktop" : "Mobil ve bilgisayar",
"Email server" : "E-posta sunucusu",
"Mail Providers" : "E-posta hizmeti sağlayıcıları",
"Mail provider enables sending emails directly through the user's personal email account. At present, this functionality is limited to calendar invitations. It requires Nextcloud Mail 4.1 and an email account in Nextcloud Mail that matches the user's email address in Nextcloud." : "E-posta hizmeti sağlayıcısı, e-postaları doğrudan kullanıcının kişisel e-posta hesabı üzerinden göndermeyi sağlar. Şu anda, bu özellik takvim davetleriyle sınırlıdır. Nextcloud Posta 4.1 ve Nextcloud Posta üzerinde kullanıcının Nextcloud e-posta adresiyle eşleşen bir e-posta hesabı gerekir.",
@@ -136,10 +136,10 @@
"App directories owner" : "Uygulama klasörleri sahibi",
"Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:\n%s" : "Bazı uygulama klasörlerinin sahipliği site sunucusunun kullandığından başka bir kullanıcıya ait. Bu durum, uygulamalar el ile kurulduğunda ortaya çıkabilir. Şu uygulama klasörlerinin izinlerini denetleyin:\n%s",
"App directories have the correct owner \"%s\"" : "Uygulama klasörlerinin sahibi \"%s\" ve doğru",
- "Brute-force Throttle" : "Kaba kuvvet sınırlaması",
+ "Brute-force Throttle" : "Kaba kuvvet saldırısı sınırlaması",
"Your remote address could not be determined." : "Uzak adresiniz belirlenemedi.",
- "Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Uzak adresiniz \"%s\" olarak belirlendi ve şu anda çeşitli isteklerin yerine getirilmesini yavaşlatacak şekilde kaba kuvvet saldırısı nedeniyle kısıtlanıyor. Uzak adres sizin adresiniz değilse bu, vekil sunucusunun doğru şekilde yapılandırılmadığını gösteriyor olabilir.",
- "Your remote address \"%s\" is not brute-force throttled." : "\"%s\" uzak adresinize kaba kuvvet sınırlaması uygulanmıyor.",
+ "Your remote address was identified as \"%s\" and is brute-force throttled at the moment slowing down the performance of various requests. If the remote address is not your address this can be an indication that a proxy is not configured correctly." : "Uzak adresiniz \"%s\" olarak belirlendi ve şu anda çeşitli isteklerin yerine getirilmesini yavaşlatacak şekilde kaba kuvvet saldırısı koruması nedeniyle kısıtlanıyor. Uzak adres sizin adresiniz değilse bu, vekil sunucusunun doğru şekilde yapılandırılmadığını gösteriyor olabilir.",
+ "Your remote address \"%s\" is not brute-force throttled." : "\"%s\" uzak adresinize kaba kuvvet saldırısı sınırlaması uygulanmıyor.",
"Old administration imported certificates" : "Eski yönetimin içe aktarılmış sertifikaları",
"A background job is pending that checks for administration imported SSL certificates. Please check back later." : "Yönetim tarafından içe aktarılmış SSL sertifikalarını denetleyen bir arka plan görevi bekliyor. Lütfen bir süre sonra yeniden denetleyin.",
"There are some administration imported SSL certificates present, that are not used anymore with Nextcloud 21. They can be imported on the command line via \"occ security:certificates:import\" command. Their paths inside the data directory are shown below." : "Yönetim tarafından içe aktarılmış ancak artık Nextcloud 21 ile kullanılmayan bazı SSL sertifikaları var. Bunlar, komut satırından \"occ security:certificates:import\" komutu ile içe aktarılabilir. Veri klasörü içindeki yollarını aşağıda görebilirsiniz.",
@@ -162,23 +162,23 @@
"Database missing indices" : "Veri tabanında dizinler eksik",
"Missing indices:" : "Dizinler eksik:",
"\"%s\" in table \"%s\"" : "\"%s\", \"%s\" tablosunda",
- "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "İsteğe bağlı bazı dizinlerin eksik olduğu bulundu. Bazen veri tabanı başarımını iyileştirmek için yeni dizinler eklenir (Nextcloud veya kurulmuş uygulamalar tarafından). Dizinleri eklemek bazen biraz zaman alabilir ve başarımı geçici olarak düşürebilir, bu nedenle yükseltmeler sırasında bu işlem otomatik olarak yapılmaz. Dizinler eklendikten sonra, bu tablolara yapılan sorguların daha hızlı olması beklenir. Bunları eklemek için `occ db:add-missing-indices` komutunu kullanın.",
+ "Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them." : "İsteğe bağlı bazı dizinlerin eksik olduğu bulundu. Bazen veri tabanı başarımını iyileştirmek için yeni dizinler eklenir (Nextcloud veya kurulmuş uygulamalar tarafından). Dizinleri eklemek bazen biraz zaman alabilir ve başarımı geçici olarak düşürebilir. Bu nedenle yükseltmeler sırasında bu işlem otomatik olarak yapılmaz. Dizinler eklendikten sonra, bu tablolara yapılan sorguların daha hızlı olması beklenir. Bunları eklemek için `occ db:add-missing-indices` komutunu kullanın.",
"Database missing primary keys" : "Veri tabanında birincil anahtarlar eksik",
"Missing primary key on table \"%s\"." : "\"%s\" tablosunda birincil dizin anahtarı eksik.",
"The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running \"occ db:add-missing-primary-keys\" those missing primary keys could be added manually while the instance keeps running." : "Veri tabanında bazı birincil dizin anahtarları eksik. Büyük tablolara birincil anahtarların eklenmesi uzun sürebildiğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken eksik birincil anahtarları el ile eklemek için \"occ db:add-missing-primary-keys\" komutunu yürütün.",
"Database pending bigint migrations" : "Veri tabanı büyük tam sayı dönüşümleri bekliyor",
"Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \"occ db:convert-filecache-bigint\" those pending changes could be applied manually. This operation needs to be made while the instance is offline." : "Veri tabanında büyük tam sayıya dönüştürülecek bazı sütunlar eksik. Sütun türlerini büyük tablolara dönüştürme işlemi uzun sürebileceğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken bekleyen değişiklikleri el ile uygulamak için \"occ db:convert-filecache-bigint\" komutunu yürütün. Bu işlem yapılırken Nextcloud kopyası çevrim dışı olur.",
"Debug mode" : "Hata ayıklama kipi",
- "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Bu kopya hata ayıklama kipinde çalışıyor. Bu seçeneği yalnızca yerel geliştirme ortamında kullanıma alın, üretim ortamlarında kullanmayın.",
- "Debug mode is disabled." : "Hata ayıklama kipi kullanımdan kaldırıldı.",
+ "This instance is running in debug mode. Only enable this for local development and not in production environments." : "Bu kopya hata ayıklama kipinde çalışıyor. Bu seçeneği yalnızca yerel geliştirme ortamında açın, üretim ortamlarında kullanmayın.",
+ "Debug mode is disabled." : "Hata ayıklama kipi kapatıldı.",
"Default phone region" : "Varsayılan telefon alan kodu",
"Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective ISO 3166-1 code of the region to your config file." : "Kurulumunuz için bir varsayılan telefon bölgesi ayarlanmamış. Bu bölge telefon numaralarının bir ülke kodu belirtilmeden doğrulanmasını sağlar. Telefon numaralarının ülke kodu olmadan yazılabilmesini istiyorsanız, yapılandırma dosyasına \"default_phone_region\" seçeneğini ekleyerek ilgili ISO 3166-1 bölge kodunu yazın.",
"Email test" : "E-posta sınaması",
- "Mail delivery is disabled by instance config \"%s\"." : "E-posta gönderimi kopyanın yapılandırmasından kullanımdan kaldırılmış \"%s\".",
+ "Mail delivery is disabled by instance config \"%s\"." : "E-posta gönderimi kopyanın yapılandırmasında kapatılmış \"%s\".",
"Email test was successfully sent" : "E-posta sınaması gönderildi",
"You have not set or verified your email server configuration, yet. Please head over to the \"Basic settings\" in order to set them. Afterwards, use the \"Send email\" button below the form to verify your settings." : "E-posta sunucusu yapılandırmanızı henüz ayarlamadınız veya doğrulamadınız. Ayarları yapmak için \"Temel ayarlar\" bölümüne gidin. Ardından, ayarlarınızı doğrulamak için formun altındaki \"E-posta gönder\" düğmesine tıklayın.",
"Transactional File Locking" : "İşlemsel dosya kilidi",
- "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "İşlemsel dosya kilidi kullanımdan kaldırılmış. Bu yapılandırma desteklenmez ve dosyaların bozulması gibi çözülmesi zor sorunlara yol açabilir. Bu sorunları önlemek için lütfen `config.php` dosyanızdan `'filelocking.enabled' => false` yapılandırma kaydını kaldırın.",
+ "Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `'filelocking.enabled' => false` configuration entry from your `config.php` to avoid these problems." : "İşlemsel dosya kilidi kapatılmış. Bu yapılandırma desteklenmez ve dosyaların bozulması gibi çözülmesi zor sorunlara yol açabilir. Bu sorunları önlemek için lütfen `config.php` dosyanızdan `'filelocking.enabled' => false` yapılandırma kaydını kaldırın.",
"The database is used for transactional file locking. To enhance performance, please configure memcache, if available." : "Veri tabanı, işlemsel dosya kilitleme için kullanılır. Başarımı yükseltmek için varsa lütfen memcache yapılandırmasını ayarlayın.",
"Forwarded for headers" : "Üst bilgi yönlendirmesi",
"Your \"trusted_proxies\" setting is not correctly set, it should be an array." : "\"trusted_proxies\" ayarınız düzgün yapılmamış. Bu bir dizi olmalıdır.",
@@ -193,7 +193,7 @@
"Your instance is generating insecure URLs. If you access your instance over HTTPS, this likely means that your instance is behind a reverse proxy and the Nextcloud `overwrite*` config values are not set correctly." : "Kopyanız güvenli olmayan adresler üretiyor. Kopyanıza HTTPS üzerinden erişiyorsanız, bu durum genellikle bir ters vekil sunucunun arkasında bulunmanızdan ve Nextcloud `overwrite*` yapılandırma değerlerinin doğru olarak ayarlanmamış olmasından kaynaklanır.",
"You are accessing your instance over a secure connection, and your instance is generating secure URLs." : "Kopyanıza güvenli bir bağlantı üzerinden erişiyorsunuz ve kopyanız güvenli adresler oluşturuyor.",
"Internet connectivity" : "İnternet bağlantısı",
- "Internet connectivity is disabled in configuration file." : "İnternet bağlantısı yapılandırma dosyasında kullanımdan kaldırılmış.",
+ "Internet connectivity is disabled in configuration file." : "İnternet bağlantısı yapılandırma dosyasında kapatılmış.",
"This server has no working internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the internet to enjoy all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden çok uç noktaya erişilemez. Bu durumda dış depolama alanı bağlama, güncelleme bildirimleri ya da üçüncü taraf uygulamalarını kurmak gibi bazı özellikler çalışmaz. Dosyalara uzaktan erişim ve bildirim e-postalarının gönderilmesi işlemleri de yapılamaz. Tüm bu özelliklerin kullanılabilmesi için sunucuyu İnternet üzerine bağlamanız önerilir.",
"JavaScript modules support" : "JavaScript modülleri desteği",
"Unable to run check for JavaScript support. Please remedy or confirm manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "JavaScript desteği denetlenemedi. Lütfen site sunucunuzun JavaScript MIME türünü kullanarak `.mjs` dosyalarını sunup sunmadığını el ile denetleyin.",
@@ -201,8 +201,8 @@
"JavaScript source map support" : "JavaScript kaynak haritası desteği",
"Your webserver is not set up to serve `.js.map` files. Without these files, JavaScript Source Maps won't function properly, making it more challenging to troubleshoot and debug any issues that may arise." : "Site sunucunuz `.js.map` dosyalarını sunacak şekilde ayarlanmamış. Bu dosyalar olmadan, JavaScript kaynak haritaları düzgün çalışmaz. Bu durum ortaya çıkabilecek sorunların giderilmesini ve hata ayıklamasını zorlaştırır.",
"Old server-side-encryption" : "Eski sunucu tarafı şifreleme",
- "Disabled" : "Kullanımdan kaldırılmış",
- "The old server-side-encryption format is enabled. We recommend disabling this." : "Eski sunucu tarafı şifreleme biçimi kullanıma alınmış. Bu seçeneği kullanımdan kaldırmanız önerilir.",
+ "Disabled" : "Kapalı",
+ "The old server-side-encryption format is enabled. We recommend disabling this." : "Eski sunucu tarafı şifreleme biçimi açılmış. Bu seçeneği kapatmanız önerilir.",
"Logging level" : "Günlük kaydı düzeyi",
"The %1$s configuration option must be a valid integer value." : "%1$s yapılandırma seçeneği geçerli bir tam sayı olmalıdır.",
"The logging level is set to debug level. Use debug level only when you have a problem to diagnose, and then reset your log level to a less-verbose level as it outputs a lot of information, and can affect your server performance." : "Günlük kaydı hata ayıklama düzeyine ayarlanmış. Hata ayıklama düzeyini yalnızca bulmanız gereken bir sorununuz olduğunda kullanın ve ardından daha az ayrıntılı bir düzeye döndürün. Bu düzey çok fazla bilgi kaydeder ve sunucunuzun başarımını etkileyebilir.",
@@ -221,11 +221,11 @@
"One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations." : "Bir veya birkaç mimetype aktarımı var. Bazen belirli dosya türlerini daha iyi işlemek için yeni mimetype seçenekleri eklenir. Büyük kopyalarda mimetype aktarımları uzun zaman alır. Bu nedenle aktarım, yükseltmeler sırasında otomatik olarak yapılmaz. Bu durumda aktarımları gerçekleştirmek için `occ maintenance:repair --include-expensive` komutunu kullanın.",
"MySQL row format" : "MySQL satır biçimi",
"You are not using MySQL" : "MySQL kullanmıyorsunuz",
- "None of your tables use ROW_FORMAT=Compressed" : "Hiç bir tablonuzda ROW_FORMAT=Compressed kullanılmıyor",
+ "None of your tables use ROW_FORMAT=Compressed" : "Hiçbir tablonuzda ROW_FORMAT=Compressed kullanılmıyor",
"Incorrect row format found in your database. ROW_FORMAT=Dynamic offers the best database performances for Nextcloud. Please update row format on the following list: %s." : "Veri tabanınızda yanlış satır biçimi bulundu. ROW_FORMAT=Dynamic, Nextcloud için en iyi veri tabanı başarımını sunar. Lütfen aşağıdaki listedeki satır biçimini güncelleyin: %s.",
"MySQL Unicode support" : "MySQL Unikod desteği",
"MySQL is used as database and does support 4-byte characters" : "Veri tabanı olarak MySQL kullanılıyor ve 4 baytlık karakterler destekleniyor",
- "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL." : "Veri tabanı olarak MySQL kullanılıyor ancak 4 bayt uzunluğundaki karakterler desteklenmiyor. 4 bayt uzunluğundaki karaktelerin (emoji simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin kullanıma alınması önerilir.",
+ "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL." : "Veri tabanı olarak MySQL kullanılıyor ancak 4 bayt uzunluğundaki karakterler desteklenmiyor. 4 bayt uzunluğundaki karakterlerin (emoji simgeleri gibi) dosya adları ya da yorumlarda sorun çıkmadan işlenebilmesi için MySQL üzerinde 4 bayt desteğinin etkinleştirilmesi önerilir.",
"OCS provider resolving" : "OCS hizmet sağlayıcısı çözümleniyor",
"Could not check if your web server properly resolves the OCM and OCS provider URLs." : "Site sunucunuzun OCM ve OCS hizmet sağlayıcı adreslerini doğru şekilde çözümleyip çözümlemediği denetlenemedi.",
"Your web server is not properly set up to resolve %1$s.\nThis is most likely related to a web server configuration that was not updated to deliver this folder directly.\nPlease compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx.\nOn Nginx those are typically the lines starting with \"location ~\" that need an update." : "Site sunucunuz %1$s adresini doğru olarak çözümleyecek şekilde yapılandırılmamış.\nBu sorun genellikle site sunucusu yapılandırmasının bu klasörü doğrudan aktaracak şekilde güncellenmemiş olmamasından kaynaklanır.\nLütfen kendi yapılandırmanızı, Apache için uygulama ile gelen \".htaccess\" dosyasındaki rewrite komutları ile ya da Nginx için belgeler bölümünde bulunan ayarlar ile karşılaştırın.\nNginx üzerinde genellikle \"location ~\" ile başlayan satırların güncellenmesi gerekir.",
@@ -262,14 +262,14 @@
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them:\n%s" : "Bu kopyada önerilen bazı PHP modülleri eksik. Daha iyi başarım ve uyumluluk için bu modüllerin kurulması önemle önerilir:\n%s",
"PHP opcache" : "PHP opcache",
"The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP OPcache modülü yüklenmemiş. Daha iyi başarım sağlamak için PHP kurulumunuza eklemeniz önerilir.",
- "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache kullanımdan kaldırılmış. Daha iyi başarım için PHP yapılandırmanızda \"opcache.enable=1\" seçeneğini ayarlamanız önerilir.",
- "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only." : "Paylaşılan bellek temelli OPcache kullanımdan kaldırılmış. Başarımı iyileştirmek için PHP yapılandırmanızda \"opcache.file_cache_only=0\" seçeneğini ayarlamanız ve dosya ön belleğini yalnızca ikinci düzey ön bellek olarak kullanmanız önerilir.",
+ "OPcache is disabled. For better performance, it is recommended to apply \"opcache.enable=1\" to your PHP configuration." : "OPcache kullanılmıyor. Daha iyi başarım için PHP yapılandırmanızda \"opcache.enable=1\" seçeneğini ayarlamanız önerilir.",
+ "The shared memory based OPcache is disabled. For better performance, it is recommended to apply \"opcache.file_cache_only=0\" to your PHP configuration and use the file cache as second level cache only." : "Paylaşılan bellek temelli OPcache kullanılmıyor. Başarımı iyileştirmek için PHP yapılandırmanızda \"opcache.file_cache_only=0\" seçeneğini ayarlamanız ve dosya ön belleğini yalnızca ikinci düzey ön bellek olarak kullanmanız önerilir.",
"OPcache is not working as it should, opcache_get_status() returns false, please check configuration." : "OPcache olması gerektiği gibi çalışmıyor, opcache_get_status() işlevi false değerini döndürüyor. Lütfen yapılandırmayı denetleyin.",
"The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply \"opcache.max_accelerated_files\" to your PHP configuration with a value higher than \"%s\"." : "En fazla OPcache anahtar sayısına neredeyse erişildi. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.max_accelerated_files\" uygulamanız önerilir.",
"The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply \"opcache.memory_consumption\" to your PHP configuration with a value higher than \"%s\"." : "OPcache ara belleği neredeyse dolu. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.memory_consumption\" uygulamanız önerilir.",
"The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply \"opcache.interned_strings_buffer\" to your PHP configuration with a value higher than \"%s\"." : "OPcache interned dizge ara belleği neredeyse dolu. Yinelenen dizgelerin etkin bir şekilde ön belleğe alınabilmesini sağlamak için, PHP yapılandırmanıza \"%s\" üzerinde bir değerle \"opcache.interned_strings_buffer\" uygulamanız önerilir.",
"OPcache is configured to remove code comments. With OPcache enabled, \"opcache.save_comments=1\" must be set for Nextcloud to function." : "OPcache, kod yorumlarını kaldıracak şekilde yapılandırılmış. OPcache kullanıma alındığında Nextcloud uygulamasının çalışması için \"opcache.save_comments=1\" ayarı yapılmalıdır.",
- "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache kullanıma alındığında, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için \"opcache.restrict_api\" ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını kullanımdan kaldırmak için bu ayarı kaldırmanız önemle önerilir.",
+ "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with \"opcache.restrict_api\" or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache kullanıma alındığında, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında oluşabilecek hataları önlemek için \"opcache.restrict_api\" ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını kapatmak için bu ayarı kaldırmanız önemle önerilir.",
"Checking from CLI, OPcache checks have been skipped." : "Komut satırından denetleniyor, OPcache denetimleri atlanmış.",
"The PHP OPcache module is not properly configured. %s." : "PHP OPcache modülü doğru yapılandırılmamış. %s.",
"Correctly configured" : "Doğru yapılandırılmış",
@@ -277,7 +277,7 @@
"You are currently running PHP %1$s. PHP %2$s is deprecated since Nextcloud %3$s. Nextcloud %4$s may require at least PHP %5$s. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Şu anda PHP %1$s kullanıyorsunuz. PHP %2$s son olarak Nextcloud %3$s sürümünde destekleniyor. Nextcloud %4$s için en az PHP %5$s gerekebilir. Lütfen olabilecek en kısa sürede PHP Group tarafından sağlanan resmi olarak desteklenen PHP sürümlerinden birine yükseltin.",
"You are currently running PHP %s." : "Şu anda PHP %s kullanıyorsunuz.",
"PHP \"output_buffering\" option" : "PHP \"output_buffering\" seçeneği",
- "PHP configuration option \"output_buffering\" must be disabled" : "PHP \"option output_buffering\" yapılandırma seçeneği kullanımdan kaldırılmalıdır",
+ "PHP configuration option \"output_buffering\" must be disabled" : "PHP \"option output_buffering\" yapılandırma seçeneği kapatılmalıdır",
"Push service" : "Anında bildirim hizmeti",
"Valid enterprise license" : "Geçerli Enterprise lisansı",
"Free push service" : "Ücretsiz anında bildirim hizmeti",
@@ -286,7 +286,7 @@
"No suitable source for randomness found by PHP which is highly discouraged for security reasons." : "PHP tarafında uygun bir rastgelelik kaynağı bulunamadı. Güvenlik nedeniyle kesinlikle önerilir.",
"Secure" : "Güvenli",
"Configuration file access rights" : "Yapılandırma dosyasının erişim izinleri",
- "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Salt okunur yapılandırma kullanıma alınmış. Bu yapılandırma, bazı ayarların site arayüzünden yapılmasını önler. Ayrıca, bu dosyanın her güncelleme öncesinde el ile yazılabilir yapılması gerekir.",
+ "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Salt okunur yapılandırma açık. Bu yapılandırma, bazı ayarların site arayüzünden yapılmasını önler. Ayrıca, bu dosyanın izinlerinin her güncelleme öncesinde el ile yazılabilir olarak ayarlanması gerekir.",
"Nextcloud configuration file is writable" : "Nextcloud yapılandırma dosyası yazılabilir",
"Scheduling objects table size" : "Zamanlama nesneler tablosu boyutu",
"You have more than %s rows in the scheduling objects table. Please run the expensive repair jobs via occ maintenance:repair --include-expensive." : "Zamanlama nesneleri tablosunda %s üzerinde satır var. Lütfen büyük onarım işlerini occ maintenance:repair --include-expensive komutu ile yapın",
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP üst bilgileri",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP üst bilgisi `%2$s` şeklinde ayarlanmamış. Bu durum bazı özelliklerin düzgün çalışmasını engelleyebileceğinden bu ayarın belirtildiği gibi yapılması önerilir.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP üst bilgisi `%2$s` şeklinde ayarlanmamış. Bu durum olası bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarın belirtildiği gibi yapılması önerilir.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP üst bilgisinde `%2$s` bulunmuyor. Bu durum olası bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarın belirtildiği gibi yapılması önerilir.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP üst bilgisi `%2$s`, `%3$s`, `%4$s`, `%5$s` ya da `%6$s` olarak ayarlanmamış. Bu durum yönlendiren bilgisinin sızmasına neden olabilir. {w3c-recommendation} bölümüne bakın.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTP üst bilgisi en azından `%d` saniye olarak ayarlanmamış (geçerli değer: `%d`). Güvenliği artırmak için uzun bir HSTS ilkesi kullanılması önerilir.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTP üst bilgisi doğru biçimde değil: `%s`. Güvenliği artırmak için HSTS kullanılması önerilir.",
@@ -308,14 +307,18 @@
"MariaDB version \"%1$s\" detected. MariaDB >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MariaDB \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MariaDB sürümünün %2$s ile %3$s arasında olması önerilir.",
"MySQL version \"%1$s\" detected. MySQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "MySQL \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için MySQL sürümünün %2$s ile %3$s arasında olması önerilir.",
"PostgreSQL version \"%1$s\" detected. PostgreSQL >=%2$s and <=%3$s is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%1$s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için PostgreSQL sürümünün %2$s ile %3$s arasında olması önerilir.",
- "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\"." : "Şu anda arka uç veri tabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veri tabanı arka ucuna geçmenizi öneririz. Bu özellikle dosya eşitlemesi için masaüstü istemcisini kullanırken önerilir. Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\".",
+ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend. This is particularly recommended when using the desktop client for file synchronisation. To migrate to another database use the command line tool: \"occ db:convert-type\"." : "Şu anda veri tabanı olarak SQLite kullanılıyor. Daha büyük kurulumlar için farklı bir veri tabanına geçmenizi öneririz. Bu özellikle dosya eşitlemesi için bilgisayar istemcisini kullanırken önerilir. Başka bir veri tabanına geçmek için komut satırı aracını kullanın: \"occ db:convert-type\".",
"Unknown database platform" : "Veri tabanı platformu bilinmiyor",
"Architecture" : "Mimari",
"64-bit" : "64-bit",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "32 bit bir PHP sürümü çalıştırıyorsunuz gibi görünüyor. Nextcloud uygulamasının iyi çalışması için 64 bit bir PHP sürümü kullanılmalıdır. Lütfen işletim sisteminizi ve PHP sürümünüzü 64 bit olacak şekilde yükseltin!",
+ "Task Processing pickup speed" : "İşlenecek görevi alma hızı",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["Son %n saatte zamanlanmış bir görev yok.","Son %n saatte zamanlanmış bir görev yok."],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["Son %n saatte zamanlanmış işlenecek görevi alma hızı iyi.","Son %n saatte zamanlanmış işlenecek görevi alma hızı iyi."],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["İşlenecek görevi alma hızı son %n saatte yavaştı. Birçok görevin alınması 4 dakikadan uzun sürdü. Görevlerin arka planda işlenmesi için bir işlem ayarlamayı değerlendirin.","İşlenecek görevi alma hızı son %n saatte yavaştı. Birçok görevin alınması 4 dakikadan uzun sürdü. Görevlerin arka planda işlenmesi için bir işlem ayarlamayı değerlendirin."],
"Temporary space available" : "Geçici alan kullanılabilir",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "Geçici PHP yolu denetlenirken sorun çıktı. Doğru şekilde bir klasöre ayarlanmamış. Döndürülen değer: %s",
- "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP \"disk_free_space\" işlevi kullanımdan kaldırıldığından geçici klasörlerde yeterli alan olup olmadığı denetlenemedi.",
+ "The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP \"disk_free_space\" işlevi kullanılamadığından geçici klasörlerde yeterli alan olup olmadığı denetlenemedi.",
"Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s" : "Geçici PHP yolunun kullanılabilir disk alanı denetlenirken sorun çıktı veya boş disk alanı döndürülmedi. Geçici yol: %s",
"- %.1f GiB available in %s (PHP temporary directory)" : "- %s içinde %.1f GiB kullanılabilir (PHP geçici klasörü)",
"- %.1f GiB available in %s (Nextcloud temporary directory)" : "- %s içinde %.1f GiB kullanılabilir (Nextcloud geçici klasörü)",
@@ -334,21 +337,21 @@
"Could not check for {extension} loading support. Please check manually if your webserver serves `.{extension}` files." : "{extension} yükleme desteği denetlenemedi. Lütfen site sunucunuzun `.{extension}` dosyalarını sunup sunmadığını el ile denetleyin.",
"Your web server is not properly set up to deliver .{extension} files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustment to also deliver .{extension} files. Compare your Nginx configuration to the recommended configuration in our documentation." : "Site sunucunuz .{extension} dosyalarını aktaracak şekilde yapılandırılmamış. Bu sık karşılaşılan bir Nginx yapılandırma sorunudur. Nextcloud 15 için .{extension} dosyalarını da aktaracak ek bir ayar yapılması gereklidir. Kullandığınız Nginx yapılandırmasını belgeler bölümünde bulunan önerilen yapılandırma dosyası ile karşılaştırın.",
"Profile information" : "Profil bilgileri",
- "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profil görseli, tam ad, e-posta adresi, telefon numarası, adres, site, Twitter, kuruluş, rol, başlık, özgeçmiş ve profilde kullanıma alınmış diğer bilgiler",
+ "Profile picture, full name, email, phone number, address, website, Twitter, organisation, role, headline, biography, and whether your profile is enabled" : "Profil görseli, tam ad, e-posta adresi, telefon numarası, adres, site, Twitter, kuruluş, rol, başlık, özgeçmiş ve profilde kullanılan diğer bilgiler",
"Nextcloud settings" : "Nextcloud ayarları",
"Unified task processing" : "Birleştirilmiş görev işleme",
"AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Yapay zeka görevleri farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.",
"Task:" : "Görev:",
"Enable" : "Kullanıma al",
- "None of your currently installed apps provide Task processing functionality" : "Şu anda kurulu uygulamaların hiç birinde görev işleme özelliği yok",
+ "None of your currently installed apps provide Task processing functionality" : "Kurulu uygulamaların hiçbirinde görev işleme özelliği yok",
"Machine translation" : "Makine çevirisi",
"Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment." : "Makine çevirisi, farklı uygulamalardan sağlanabilir. Buradan, şu anda kurulu makine çevirisi uygulamalarının önceliğini belirtebilirsiniz.",
"Image generation" : "Görsel oluşturma",
"Image generation can be implemented by different apps. Here you can set which app should be used." : "Görsel oluşturma özelliği farklı uygulamalardan sağlanabilir. Buradan, hangi uygulamanın kullanılacağını ayarlayabilirsiniz.",
- "None of your currently installed apps provide image generation functionality" : "Şu anda kurulu uygulamaların hiç birinde görsel oluşturma özelliği yok",
+ "None of your currently installed apps provide image generation functionality" : "Kurulu uygulamaların hiçbirinde görsel oluşturma özelliği yok",
"Text processing" : "Metin işleme",
"Text processing tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Metin işleme özelliği farklı uygulamalardan sağlanabilir. Buradan, bu görev için hangi uygulamanın kullanılacağını ayarlayabilirsiniz.",
- "None of your currently installed apps provide text processing functionality using the Text Processing API." : "Kurulu uygulamaların hiç birinde Metin İşleme API uygulamasını kullanan bir metin işleme özelliği yok",
+ "None of your currently installed apps provide text processing functionality using the Text Processing API." : "Kurulu uygulamaların hiçbirinde Metin İşleme API uygulamasını kullanan bir metin işleme özelliği yok",
"Here you can decide which group can access certain sections of the administration settings." : "Hangi yönetici ayarlarına hangi grubun erişebileceğini bu bölümden belirleyebilirsiniz.",
"Unable to modify setting" : "Ayar değiştirilemedi",
"None" : "Yok",
@@ -363,7 +366,7 @@
"Allow users to share via link and emails" : "Kullanıcılar bağlantı ve e-posta ile paylaşabilsin",
"Allow public uploads" : "Herkes yükleyebilsin",
"Always ask for a password" : "Her zaman parola sorulsun",
- "Enforce password protection" : "Parola koruması dayatılsın",
+ "Enforce password protection" : "Parola koruması zorunlu kılınsın",
"Exclude groups from password requirements" : "Parola gereksinimlerine katılmayacak gruplar",
"Exclude groups from creating link shares" : "Bağlantı paylaşımı oluşturamayacak gruplar",
"Allow users to set custom share link tokens" : "Kullanıcılar özel paylaşım bağlantısı kodları ayarlayabilsin",
@@ -377,18 +380,18 @@
"Groups excluded from sharing" : "Paylaşıma katılmayacak gruplar",
"Not allowed groups will still be able to receive shares, but not to initiate them." : "İzin verilmeyen gruplar paylaşımları almayı sürdürebilir ancak paylaşım yapamaz.",
"Set default expiration date for internal shares" : "İç paylaşımlar için varsayılan kullanma süresi sonunu ayarlayın",
- "Enforce expiration date" : "Geçerlilik sonu tarihi dayatılsın",
+ "Enforce expiration date" : "Geçerlilik sonu tarihi zorunlu kılınsın",
"Default expiration time of new shares in days" : "Yeni paylaşımların gün olarak varsayılan geçerlilik süresi",
"Expire shares after x days" : "Paylaşımların geçerlilik süresi x gün sonra dolsun",
"Set default expiration date for shares to other servers" : "Diğer sunuculara yapılan paylaşımlar için varsayılan geçerlilik sonu tarihi ayarlansın",
- "Enforce expiration date for remote shares" : "Uzak paylaşımlar için geçerlilik sonu tarihi dayatılsın",
+ "Enforce expiration date for remote shares" : "Uzak paylaşımlar için geçerlilik sonu tarihi zorunlu kılınsın",
"Default expiration time of remote shares in days" : "Uzak paylaşımların gün olarak varsayılan geçerlilik süresi",
"Expire remote shares after x days" : "Uzak paylaşımların geçerlilik süresi x gün sonra dolsun",
"Set default expiration date for shares via link or mail" : "Bağlantı ya da e-posta ile yapılan paylaşımlar için varsayılan geçerlilik sonu tarihini ayarlansın",
"Default expiration time of shares in days" : "Paylaşımların gün olarak varsayılan geçerlilik süresi",
"Privacy settings for sharing" : "Paylaşım için gizlilik ayarı",
"Allow account name autocompletion in share dialog and allow access to the system address book" : "Paylaşım penceresinde hesap adının otomatik tamamlanmasına ve sistem adres defterine erişilmesine izin verilsin",
- "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\" kullanıma alınmış ise. Kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.",
+ "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\" seçeneklerinin ikisi de açıksa, kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.",
"Restrict account name autocompletion and system address book access to users within the same groups" : "Hesap adının otomatik tamamlanması ve sistem adres defterine erişim aynı gruplardaki kullanıcılarla kısıtlansın",
"Restrict account name autocompletion to users based on phone number integration" : "Hesap adlarının telefon numarası bütünleştirmesi eşleşmelerine göre otomatik olarak tamamlanması kısıtlansın",
"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)",
@@ -397,15 +400,15 @@
"This text will be shown on the public link upload page when the file list is hidden." : "Dosya listesi gizliyken herkese açık bağlantı yükleme sayfasında görüntülenecek sorumluluk reddi bildirimi metnini buraya yazabilirsiniz.",
"Default share permissions" : "Varsayılan paylaşım izinleri",
"Two-Factor Authentication" : "İki adımlı doğrulama",
- "Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system." : "Tüm hesaplar ve belirli gruplar için iki adımlı doğrulama kullanılır. İki adımlı doğrulama hizmeti sağlayıcısını yapılandırmayan kullanıcılar oturum açamaz.",
- "Enforce two-factor authentication" : "İki adımlı doğrulama dayatılsın",
+ "Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system." : "Tüm hesaplar ve belirli gruplar için iki adımlı doğrulama zorunlu kılınabilir. İki adımlı doğrulama hizmeti sağlayıcısını yapılandırmayan kullanıcılar oturum açamaz.",
+ "Enforce two-factor authentication" : "İki adımlı doğrulama zorunlu kılınsın",
"Limit to groups" : "Sınırlanacak gruplar",
- "Enforcement of two-factor authentication can be set for certain groups only." : "İki adımlı doğrulama yalnızca belirli gruplar için sınırlanabilir.",
- "Two-factor authentication is enforced for all members of the following groups." : "Belirtilen grupların tüm üyeleri için iki adımlı doğrulama kullanımı zorunlu olur.",
- "Enforced groups" : "Uygulanacak gruplar",
- "Two-factor authentication is not enforced for members of the following groups." : "Belirtilen grupların tüm üyeleri için iki adımlı doğrulama kullanımı zorunlu olmaz.",
+ "Enforcement of two-factor authentication can be set for certain groups only." : "İki adımlı doğrulama yalnızca belirli gruplar için zorunlu kılınabilir.",
+ "Two-factor authentication is enforced for all members of the following groups." : "Belirtilen grupların tüm üyeleri için iki adımlı doğrulama kullanılması zorunlu kılınır.",
+ "Enforced groups" : "Zorunlu kılınacak gruplar",
+ "Two-factor authentication is not enforced for members of the following groups." : "Belirtilen grupların tüm üyeleri için iki adımlı doğrulama kullanımı zorunlu kılınmaz.",
"Excluded groups" : "Uygulanmayacak gruplar",
- "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Uygulanan ya da uygulanmayan gruplar belirtildiğinde, bir hesabın iki adımlı doğrulama kullanıp kullanmayacağına şu şekilde karar verilir. Herhangi bir grup belirtilmemiş ise, uygulanmayan grupların üyeleri dışındaki tüm üyeler için iki adımlı doğrulama kullanılır. Belirtilmiş gruplar varsa, uygulanan bu grupların üyeleri için iki adımlı doğrulama kullanılır. Bir hesabın hem uygulanan hem de uygulanmayan gruplarda üyeliği varsa, uygulanan grupların önceliği vardır ve iki adımlı doğrulama kullanılır.",
+ "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Uygulanan ya da uygulanmayan gruplar belirtildiğinde, bir hesap için iki adımlı doğrulamanın zorunlu kılınıp kılınmayacağına şu şekilde karar verilir. Herhangi bir grup belirtilmemiş ise, uygulanmayan grupların üyeleri dışındaki tüm üyeler için iki adımlı doğrulama kullanılır. Belirtilmiş gruplar varsa, uygulanan bu grupların üyeleri için iki adımlı doğrulama kullanılır. Bir hesabın hem uygulanan hem de uygulanmayan gruplarda üyeliği varsa, uygulanan grupların önceliği vardır ve iki adımlı doğrulama zorunlu kılınır.",
"Save changes" : "Değişiklikleri kaydet",
"Show details for {appName} app" : "{appName} uygulamasının ayrıntılarını görüntüle",
"Update to {update}" : "{update} sürümüne güncelle",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "Uygulama mağazasından bölüm içeriği yüklenemedi.",
"Loading" : "Yükleniyor",
"Fetching the latest news…" : "Son haberler alınıyor…",
- "Carousel" : "Dönme dolap",
- "Previous slide" : "Önceki slayt",
- "Next slide" : "Sonraki slayt",
- "Choose slide to display" : "Görüntülenecek slaytı seçin",
- "{index} of {total}" : "{index} / {total}",
- "Daemon" : "Arka plan işlemi",
- "Deploy Daemon" : "Dağıtım arka plan işlemi",
- "Type" : "Tür",
- "Display Name" : "Görüntülenecek ad",
- "GPUs support" : "Grafik işlemci desteği",
- "Compute device" : "Hesaplama aygıtı",
- "Advanced deploy options" : "Gelişmiş dağıtma seçenekleri",
- "Edit ExApp deploy options before installation" : "ExApp dağıtma seçeneklerini kurulumdan önce düzenleyin",
- "Configured ExApp deploy options. Can be set only during installation" : "Yapılandırılmış ExApp dağıtım seçenekleri. Yalnızca kurulum sırasında ayarlanabilir",
- "Learn more" : "Ayrıntılı bilgi alın",
- "Environment variables" : "Ortam değişkenleri",
- "ExApp container environment variables" : "ExApp kapsayıcısı ortam değişkenleri",
- "No environment variables defined" : "Herhangi bir ortam değişkeni tanımlanmamış",
- "Mounts" : "Takılanlar",
- "Define host folder mounts to bind to the ExApp container" : "ExApp kapsayıcısına takılacak sunucu klasörü bağlantılarını tanımlayın",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "ExApp kurmadan önce sunucuda dağıtım işlemi var olmalıdır",
- "Host path" : "Sunucu yolu",
- "Container path" : "Kapsayıcı yolu",
- "Read-only" : "Salt okunur",
- "Remove mount" : "Takmayı kaldır",
- "New mount" : "Yeni takma",
- "Enter path to host folder" : "Sunucu klasörünün yolunu yazın",
- "Enter path to container folder" : "Kapsayıcı klasörünün yolunu yazın",
- "Toggle read-only mode" : "Salt okunur kipi aç/kapat",
- "Confirm adding new mount" : "Yeni takma eklemeyi onayla",
- "Confirm" : "Onayla",
- "Cancel adding mount" : "Takma eklemeyi iptal et",
- "Cancel" : "İptal",
- "Add mount" : "Takma ekle",
- "ExApp container mounts" : "ExApp kapsayıcı takmaları",
- "No mounts defined" : "Herhangi bir takma tanımlanmamış",
- "Description" : "Açıklama",
- "View in store" : "Mağazada görüntüle",
- "Visit website" : "Siteye bakın",
- "Usage documentation" : "Kullanım belgeleri",
- "Admin documentation" : "Yönetici belgeleri",
- "Developer documentation" : "Geliştirici belgeleri",
- "Details" : "Ayrıntılar",
- "All" : "Tümü",
- "Limit app usage to groups" : "Uygulama kullanımı şu gruplarla sınırlansın",
- "No results" : "Herhangi bir sonuç bulunamadı",
- "Update to {version}" : "{version} sürümüne güncelle",
- "Deploy options" : "Dağıtım seçenekleri",
- "Default Deploy daemon is not accessible" : "Varsayılan dağıtım arka plan işlemine erişilemedi",
- "Delete data on remove" : "Kaldırıldığında veriler silinsin",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için en düşük Nextcloud sürümü belirtilmemiş. Bu durum ileride sorun çıkarır.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için en yüksek Nextcloud sürümü belirtilmemiş. Bu durum ileride sorun çıkarır.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Aşağıdaki bağımlılıklar sağlanmadığından bu uygulama kurulamıyor:",
- "Latest updated" : "Son güncellenen",
- "Author" : "İlgili",
- "Categories" : "Kategoriler",
- "Resources" : "Kaynaklar",
- "Documentation" : "Belgeler",
- "Interact" : "Ulaşın",
- "Report a bug" : "Hata bildirin",
- "Request feature" : "Özellik isteyin",
- "Ask questions or discuss" : "Soru sorun ya da tartışın",
- "Rate the app" : "Uygulamayı değerlendir",
- "Rate" : "Değerlendirin",
- "Changelog" : "Değişiklik günlüğü",
- "Google Chrome for Android" : "Android için Google Chrome",
- "{productName} iOS app" : "{productName} iOS uygulaması",
- "{productName} Android app" : "{productName} Android uygulaması",
- "{productName} Talk for iOS" : "{productName} iOS için Konuş",
- "{productName} Talk for Android" : "{productName} Android için Konuş",
- "Sync client" : "İstemciyi eşitle",
- "This session" : "Bu oturum",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "Aygıt adı",
- "Cancel renaming" : "Yeniden adlandırmayı iptal et",
- "Save new name" : "Yeni adı kaydet",
- "Marked for remote wipe" : "Uzaktan silme için işaretlendi",
- "Device settings" : "Aygıt ayarları",
- "Allow filesystem access" : "Dosya sistemine erişilebilsin",
- "Rename" : "Yeniden adlandır",
- "Revoke" : "Geri al",
- "Wipe device" : "Aygıtı sil",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Silme işlemi henüz başlamamış ise bu kodun geri çekilmesi aygıtınızın silinmesini engelleyebilir.",
- "Device" : "Aygıt",
- "Last activity" : "Son işlem",
- "Devices & sessions" : "Aygıt ve oturumlar",
- "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza oturum açmış internet, masaüstü ve mobil istemcileri.",
- "Error while creating device token" : "Aygıt kodu oluşturulurken sorun çıktı",
- "App name" : "Uygulama adı",
- "Create new app password" : "Yeni uygulama parolası oluştur",
"App password copied!" : "Uygulama parolası kopyalandı!",
"Copy app password" : "Uygulama parolasını kopyala",
"Login name copied!" : "Kullanıcı adı kopyalandı!",
@@ -542,7 +454,7 @@
"Use the credentials below to configure your app or device. For security reasons this password will only be shown once." : "Uygulamanızı veya aygıtınızı yapılandırmak için aşağıdaki kimlik doğrulama bilgilerini kullanın. Güvenlik nedeniyle bu parola yalnızca bir kez görüntülenecek.",
"Login" : "Oturum açın",
"Password" : "Parola",
- "Show QR code for mobile apps" : "Mobil uygulamalar için QR kodu görüntülensin",
+ "Show QR code for mobile apps" : "Mobil uygulamalar için kare kod görüntülensin",
"Use system cron service to call the cron.php file every 5 minutes." : "5 dakikada bir cron.php dosyasının çağrılması için sistem cron hizmeti kullanılsın.",
"The cron.php needs to be executed by the system account \"{user}\"." : "cron.php dosyası \"{user}\" sistem hesabı tarafından yürütülmelidir.",
"The PHP POSIX extension is required. See {linkstart}PHP documentation{linkend} for more details." : "PHP POSIX eklentisi gereklidir. Ayrıntılı bilgi almak için {linkstart}PHP belgelerine{linkend} bakabilirsiniz.",
@@ -558,229 +470,38 @@
"Cron (Recommended)" : "Cron (önerilen)",
"Unable to update profile default setting" : "Profil varsayılan ayarı güncellenemedi",
"Profile" : "Profil",
- "Enable or disable profile by default for new accounts." : "Bu seçenek kullanıma alındığında, profil yeni hesaplar için varsayılan olur.",
+ "Enable or disable profile by default for new accounts." : "Yeni hesaplar için profilleri varsayılan olarak kullanıma al ya da kaldır.",
+ "Password confirmation is required" : "Parola onayının yazılması zorunludur",
"Failed to save setting" : "Ayar kaydedilemedi",
"{app}'s declarative setting field: {name}" : "{app} uygulamasının bildirdiği ayar alanı: {name}",
"Unable to update server side encryption config" : "Sunucu tarafı şifreleme yapılandırması güncellenemedi",
"Server-side encryption" : "Sunucu tarafı şifreleme",
- "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Sunucu tarafındaki şifreleme, sunucuya yüklenen dosyaların şifrelenebilmesini sağlar. Bu özellik genel başarımı düşürdüğünden yalnızca gerek varsa kullanıma alın.",
+ "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Sunucu tarafındaki şifreleme, sunucuya yüklenen dosyaların şifrelenebilmesini sağlar. Bu özellik genel başarımı düşürdüğünden yalnızca gerek varsa açın.",
"To encrypt all existing files run this OCC command:" : "Var olan tüm dosyaları şifrelemek için şu OCC komutunu kullanın:",
"Enable server-side encryption" : "Sunucu tarafı şifreleme kullanılsın",
"Disabling server side encryption is only possible using OCC, please refer to the documentation." : "Sunucu tarafındaki şifreleme yalnızca OCC ile kapatılabilir. Lütfen belgelere bakın.",
- "No encryption module loaded, please enable an encryption module in the app menu." : "Herhangi bir şifreleme modülü yüklenmemiş. Lütfen uygulama menüsünden bir şifreleme modülünü kullanıma alın.",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Herhangi bir şifreleme modülü yüklenmemiş. Lütfen uygulama menüsünden bir şifreleme modülünü açın.",
"Select default encryption module:" : "Varsayılan şifreleme modülünü seçin:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine aktarmalısınız. Lütfen \"Varsayılan şifreleme modülü\"nü kullanıma alıp {command} komutunu yürütün",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run {command}" : "Şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine aktarmalısınız. Lütfen bir \"Varsayılan şifreleme modülü\" açıp {command} komutunu yürütün",
"Cancel encryption" : "Şifrelemeyi kapat",
"Enable encryption" : "Şifreleme kullanılsın",
"Confirm enabling encryption" : "Şifrelemeyi açmayı onayla",
- "Please read carefully before activating server-side encryption:" : "Lütfen sunucu tarafında şifrelemeyi kullanıma almadan önce dikkatlice okuyun:",
- "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Şifreleme kullanıma alındığında, kullanıma alma anından sonra sunucuya yüklenen tüm dosyalar şifrelenir. Şifreleme daha sonra kullanımdan kaldırılmak istenirse, kullanımdaki şifreleme modülünün bu özelliği desteklemesi ve tüm ön koşulların (örneğin kurtarma anahtarı oluşturulması) yerine getirilmesi gerekir.",
+ "Please read carefully before activating server-side encryption:" : "Sunucu tarafında şifrelemeyi açmadan önce lütfen dikkatlice okuyun:",
+ "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Şifreleme açıldığında, bu andan itibaren sunucuya yüklenen tüm dosyalar şifrelenir. Şifreleme daha sonra kapatılmak istenirse, kullanımdaki şifreleme modülünün bu özelliği desteklemesi ve tüm ön koşulların (örneğin kurtarma anahtarı oluşturulması) yerine getirilmesi gerekir.",
"By default a master key for the whole instance will be generated. Please check if that level of access is compliant with your needs." : "Varsayılan olarak tüm kopya için bir ana anahtar oluşturulur. Lütfen bu erişim düzeyinin gereksinimlerinize uygun olup olmadığını kontrol edin.",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Şifreleme tek başına sistemin güvenliğini garanti etmez. Lütfen şifreleme uygulamasının nasıl çalıştığı ve desteklenen kullanım şekilleri hakkında ayrıntılı bilgi almak için belgelere bakabilirsiniz.",
"Be aware that encryption always increases the file size." : "Şifreleme işleminin dosya boyutlarını büyüteceğini unutmayın.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Verilerinizi düzenli yedekleyin ve şifreleme kullanıyorsanız şifreleme anahtarlarınızın da verilerinizle birlikte yedeklendiğinden emin olun.",
"Refer to the admin documentation on how to manually also encrypt existing files." : "Var olan dosyaların el ile nasıl şifreleneceğini öğrenmek için yönetici belgelerine bakın.",
- "This is the final warning: Do you really want to enable encryption?" : "Son uyarı: Şifrelemeyi kullanıma almak istiyor musunuz?",
- "Failed to remove group \"{group}\"" : "\"{group}\" grubu silinemedi",
+ "This is the final warning: Do you really want to enable encryption?" : "Son uyarı: Şifrelemeyi açmak istiyor musunuz?",
+ "Failed to delete group \"{group}\"" : "\"{group}\" grubu silinemedi",
"Please confirm the group removal" : "Grubu silme işlemini onaylayın",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "\"{group}\" grubunu silmek üzeresiniz. Hesaplar SİLİNMEYECEK.",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "\"{group}\" grubunu silmek üzeresiniz. Hesaplar SİLİNMEYECEK.",
+ "Cancel" : "İptal",
+ "Confirm" : "Onayla",
"Submit" : "Gönder",
"Rename group" : "Grubu yeniden adlandır",
- "Remove group" : "Grubu sil",
- "Current password" : "Geçerli parola",
- "New password" : "Yeni parola",
- "Change password" : "Parola değiştir",
- "Choose your profile picture" : "Profil görselinizi seçin",
- "Please select a valid png or jpg file" : "Lütfen geçerli bir png ya da jpg dosyası seçin",
- "Error setting profile picture" : "Profil görseli ayarlanırken sorun çıktı",
- "Error cropping profile picture" : "Profil görseli kırpılırken sorun çıktı",
- "Error saving profile picture" : "Profil görseli kaydediliirken sorun çıktı",
- "Error removing profile picture" : "Profil görseli kaldırılırken sorun çıktı",
- "Your profile picture" : "Profil görseliniz",
- "Upload profile picture" : "Profil görseli yükle",
- "Choose profile picture from Files" : "Dosyalar uygulamasından profil görseli seçin",
- "Remove profile picture" : "Profil görselini kaldır",
- "The file must be a PNG or JPG" : "Dosya PNG ya da JPG biçiminde olmalıdır",
- "Picture provided by original account" : "Görsel özgün hesabınız tarafından sağlanıyor",
- "Set as profile picture" : "Profil görseli olarak ayarla",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Lütfen profil görselinizin her yerde güncellenmesinin 24 saat kadar sürebileceğini unutmayın.",
- "Your biography. Markdown is supported." : "Özgeçmişiniz. Markdown kullanılabilir.",
- "Unable to update date of birth" : "Doğum tarihi güncellenemedi",
- "Enter your date of birth" : "Doğum tarihinizi yazın",
- "You are using {s}{usage}{/s}" : "{s}{usage}{/s} kullanıyorsunuz",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "{s}{usage}{/s} / {s}{totalSpace}{/s} kullanıyorsunuz ({s}%{usageRelative}{/s})",
- "You are a member of the following groups:" : "Şu gruplara üyesiniz:",
- "Your full name" : "Tam adınız",
- "Email options" : "E-posta seçenekleri",
- "Options for additional email address {index}" : "{index}. ek e-posta adresi seçenekleri",
- "Remove primary email" : "Birincil e-posta adresini sil",
- "Delete email" : "E-posta adresini sil",
- "This address is not confirmed" : "Bu adres doğrulanmamış",
- "Unset as primary email" : "Birincil e-posta işaretini kaldır",
- "Set as primary email" : "Birincil e-posta olarak ayarla",
- "Additional email address {index}" : "{index}. ek e-posta adresi",
- "Unable to delete primary email address" : "Birincil e-posta adresi silinemedi",
- "Unable to update primary email address" : "Birincil e-posta adresi güncellenemedi",
- "Unable to add additional email address" : "Ek e-posta adresi eklenemedi",
- "Unable to update additional email address" : "Ek e-posta adresi güncellenemedi",
- "Unable to delete additional email address" : "Ek e-posta adresi silinemedi",
- "Primary email for password reset and notifications" : "Parola sıfırlama ve bildirimler için birincil e-posta adresi",
- "No email address set" : "E-posta adresi belirtilmemiş",
- "Your handle" : "Kodunuz",
- "Derived from your locale ({weekDayName})" : "Yerel ayarlarınızdan alınan ({weekDayName})",
- "Unable to update first day of week" : "Haftanın ilk günü güncellenemedi",
- "Day to use as the first day of week" : "Haftanın ilk günü olarak kullanılacak gün",
- "Your headline" : "Başlığınız",
- "Unable to update language" : "Dil güncellenemedi",
- "Languages" : "Diller",
- "Help translate" : "Çeviriye yardım edin",
- "No language set" : "Herhangi bir dil ayarlanmamış",
- "Unable to update locale" : "Yerel ayar güncellenemedi",
- "Locales" : "Yerel ayarlar",
- "Week starts on {firstDayOfWeek}" : "Hafta başlangıcı: {firstDayOfWeek}",
- "No locale set" : "Herhangi bir yerel ayar seçilmemiş",
- "Your city" : "İliniz",
- "Your organisation" : "Kuruluşunuz",
- "Your phone number" : "Telefon numaranız",
- "Edit your Profile visibility" : "Profilinizin görünürlüğü değiştirin",
- "Unable to update profile enabled state" : "Profilin kullanıma alınma durumu güncellenemedi",
- "Enable profile" : "Profili kullanıma al",
- "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." : "Profilinizde daha kısıtlayıcı olan görünürlük veya kapsam ayarına uyulur - Örneğin, görünürlük \"Herkese görüntülensin\" ve kapsam \"Özel\" olarak ayarlanmışsa, \"Özel\" seçimine uyulur.",
- "Unable to update visibility of {displayId}" : "{displayId} görünürlüğü güncellenemedi",
- "she/her" : "hanım",
- "he/him" : "bey",
- "they/them" : "kişi",
- "Your role" : "Pozisyonunuz",
- "Your X (formerly Twitter) handle" : "X (eski Twitter) kullanıcı adınız",
- "Your website" : "Sitenizin adresi",
- "Invalid value" : "Değer geçersiz",
- "Unable to update {property}" : "{property} güncellenemedi",
- "No {property} set" : "Herhangi bir {property} ayarlanmamış",
- "Change scope level of {property}, current scope is {scope}" : "{property} kapsam düzeyini değiştir. Geçerli kapsam: {scope}",
- "Unable to update federation scope of the primary {property}" : "Birincil {property} birleşik kapsamı güncellenemedi",
- "Unable to update federation scope of additional {property}" : "Ek {property} birleşik kapsamı güncellenemedi",
- "Add additional email" : "Ek e-posta adresi ekle",
- "Add" : "Ekle",
- "Create" : "Ekle",
- "Change" : "Değiştir",
- "Delete" : "Sil",
- "Reshare" : "Yeniden paylaş",
- "Default language" : "Varsayılan dil",
- "Common languages" : "Sık kullanılan diller",
- "Other languages" : "Diğer diller",
- "Password change is disabled because the master key is disabled" : "Ana anahtar kullanımdan kaldırıldığından parola değişikliği kullanımdan kaldırıldı.",
- "No accounts" : "Henüz bir hesap yok",
- "Loading accounts …" : "Hesaplar yükleniyor...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "Hesap listesi. Başarımı olumsuz etkilememek için listenin tümü görüntülenmiyor. Listede ilerledikçe diğer hesaplar görüntülenecek.",
- "Manager" : "Yönetici",
- "Set line manager" : "Satır yöneticisini ayarla",
- "Account name will be autogenerated" : "Hesap adı otomatik olarak oluşturulacak",
- "Account name (required)" : "Hesap adı (zorunlu)",
- "Failed to search groups" : "Gruplar aranamadı",
- "New account" : "Hesap ekle",
- "Display name" : "Görüntülenecek ad",
- "Either password or email is required" : "Parola ya da e-posta adresi zorunludur",
- "Password (required)" : "Parola (zorunlu)",
- "Email (required)" : "E-posta adresi (zorunlu)",
- "Email" : "E-posta",
- "Member of the following groups (required)" : "Şu grupların üyesi (zorunlu)",
- "Member of the following groups" : "Şu grupların üyesi",
- "Set account groups" : "Hesap gruplarını ayarla",
- "Admin of the following groups" : "Şu grupların yöneticisi",
- "Set account as admin for …" : "Hesabı şunun yöneticisi olarak ayarla…",
- "Quota" : "Kota",
- "Set account quota" : "Hesap kotasını ayarla",
- "Language" : "Dil",
- "Set default language" : "Varsayılan dili ayarla",
- "Add new account" : "Yeni hesap ekle",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} hesap…","{userCount} hesap…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} hesap","{userCount} hesap"],
- "Total rows summary" : "Toplam satır özeti",
- "Scroll to load more rows" : "Diğer satırları görüntülemek için aşağı kaydırın",
- "Password or insufficient permissions message" : "Parola ya da izinler yetersiz iletisi",
- "Avatar" : "Avatar",
- "Account name" : "Hesap adı",
- "Group admin for" : "Şunun grup yöneticisi",
- "Account backend" : "Hesap arka ucu",
- "Storage location" : "Depolama konumu",
- "First login" : "İlk oturum açma",
- "Last login" : "Son oturum açma",
- "Account actions" : "Hesap işlemleri",
- "{size} used" : "{size} kullanılmış",
- "Delete account" : "Hesabı sil",
- "Disconnect all devices and delete local data" : "Tüm aygıtların bağlantısını kes ve yerel verileri sil",
- "Disable account" : "Hesabı kullanımdan kaldır",
- "Enable account" : "Hesabı kullanıma al",
- "Resend welcome email" : "Karşılama e-postasını yeniden gönder",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Aygıt kaybedildiğinde ya da kuruluş ile çalışma sona erdirildiğinde, bu özellik {userid} ile ilişkili tüm aygıtlardaki Nextcloud verilerini silebilir. Bu özellik yalnızca aygıtların İnternet bağlantısı olduğunda kullanılabilir.",
- "Remote wipe of devices" : "Uzaktan aygıt temizleme",
- "Wipe {userid}'s devices" : "{userid} aygıtlarını temizle",
- "Wiped {userid}'s devices" : "{userid} kullanıcısının aygıtları silindi",
- "Failed to load groups with details" : "Gruplar ayrıntıları ile yüklenemedi",
- "Failed to load sub admin groups with details" : "Alt yönetici grupları ayrıntıları ile yüklenemedi",
- "Failed to update line manager" : "Satır yöneticisi güncellenemedi",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} için kişisel dosyalar ve uygulama verileri gibi tüm hesap bilgilerini tamamen siler",
- "Account deletion" : "Hesap silme",
- "Delete {userid}'s account" : "{userid} hesabını sil",
- "Display name was successfully changed" : "Görüntülenecek ad değiştirildi",
- "Password can't be empty" : "Parola boş olamaz",
- "Password was successfully changed" : "Parola değiştirildi",
- "Email can't be empty" : "E-posta adresi boş olamaz",
- "Email was successfully changed" : "E-posta adresi değiştirildi",
- "Welcome mail sent!" : "Karşılama e-postası gönderildi!",
- "Loading account …" : "Hesap yükleniyor…",
- "Change display name" : "Görüntülenecek adı değiştir",
- "Set new password" : "Yeni parola ayarla",
- "You do not have permissions to see the details of this account" : "Bu hesabın ayrıntılarını görüntüleme izniniz yok",
- "Set new email address" : "Yeni e-posta adresi ayarla",
- "Add account to group" : "Hesabı gruba ekle",
- "Set account as admin for" : "Hesabı şurada yönetici yap",
- "Select account quota" : "Hesap kotasını seçin",
- "Set the language" : "Dili ayarla",
- "Toggle account actions menu" : "Hesap işlemleri menüsünü aç/kapat",
- "Done" : "Tamam",
- "Edit" : "Düzenle",
- "Account management settings" : "Hesap yönetimi ayarları",
- "Visibility" : "Görünürlük",
- "Show language" : "Görüntülenecek dil",
- "Show account backend" : "Hesap arka ucu görüntülensin",
- "Show storage path" : "Depolama yolu görüntülensin",
- "Show first login" : "İlk oturum açma zamanı görüntülensin",
- "Show last login" : "Son oturum açma zamanı görüntülensin",
- "Sorting" : "Sıralama",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Sistem yapılandırması, grupların ada göre sıralanmasını zorunlu kılar. Bu aynı zamanda üye sayısının görüntülenmesini de kapatır.",
- "Group list sorting" : "Grup listesi sıralaması",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "Başarımı olumsuz etkilememek için sıralama şu anda yalnızca yüklü olan gruplara uygulanıyor. Listede ilerledikçe ya da aradıkça gruplar yüklenecek.",
- "By member count" : "Üye sayısına göre",
- "By name" : "Ada göre",
- "Send email" : "E-posta gönder",
- "Send welcome email to new accounts" : "Yeni hesaplara hoş geldiniz e-postası gönderilsin",
- "Defaults" : "Varsayılanlar",
- "Default quota" : "Varsayılan kota",
- "Select default quota" : "Varsayılan kota değerini seçin",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn aygıtı kaydedilirken sunucu sorunu çıktı",
- "Passwordless authentication requires a secure connection." : "Parolasız kimlik doğrulama özelliği güvenli bir bağlantı üzerinden kullanılabilir.",
- "Add WebAuthn device" : "WebAuthn aygıtı ekle",
- "Please authorize your WebAuthn device." : "Lütfen WebAuthn aygıtınızın kimliğini doğrulayın.",
- "Adding your device …" : "Aygıtınız ekleniyor …",
- "Unnamed device" : "Adsız aygıt",
- "Passwordless Authentication" : "Parolasız kimlik doğrulaması",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Hesabınız için FIDO2 standardına uygun parolasız kimlik doğrulamasını kurun.",
- "No devices configured." : "Herhangi bir aygıt yapılandırılmamış.",
- "The following devices are configured for your account:" : "Hesabınız için şu aygıtlar yapılandırılmış:",
- "Your browser does not support WebAuthn." : "Tarayıcınız WebAuthn desteklemiyor.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Yönetici olarak paylaşma davranışı ile ilgili ince ayarları yapabilirsiniz. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.",
- "You need to enable the File sharing App." : "Dosya paylaşımı uygulamasını kullanıma almalısınız.",
- "App Store" : "Uygulama mağazası",
- "Loading app list" : "Uygulama listesi yükleniyor",
- "Loading categories" : "Kategoriler yükleniyor",
- "Developer documentation ↗" : "Geliştirici belgeleri ↗",
- "Version {version}, {license}-licensed" : "{version} sürümü, {license} lisansı",
- "Version {version}" : "{version} sürümü",
- "All accounts" : "Tüm hesaplar",
- "Admins" : "Yöneticiler",
- "Account group: {group}" : "Hesap grubu: {group}",
- "Account management" : "Hesap yönetimi",
+ "Delete group" : "Grubu sil",
"Sending…" : "Gönderiliyor …",
"Email sent" : "E-posta gönderildi",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "Bir Nextcloud sunucusunda şifrelemeyi açtığınızda, başarımı korumak için yalnızca yeni ve değiştirilen dosyalar şifrelenir.",
@@ -790,6 +511,7 @@
"Date of birth" : "Doğum tarihi",
"Full name" : "Tam ad",
"Additional email" : "Ek e-posta",
+ "Email" : "E-posta",
"Fediverse (e.g. Mastodon)" : "Fediverse (Mastodon gibi)",
"Headline" : "Başlık",
"Organisation" : "Kuruluş",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X (eski Twitter)",
"Website" : "Site",
"Profile visibility" : "Profil görünürlüğü",
+ "Language" : "Dil",
"Locale" : "Yerel Ayar",
"First day of week" : "Haftanın ilk günü",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Bu özellik, dosya paylaşımı ve takvim davetleri gibi temel işlevler için gerekli olduğundan kullanılamıyor",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "Yalnızca oturum açmış hesaplara görüntülensin",
"Hide" : "Gizlensin",
"Manually installed apps cannot be updated" : "El ile kurulmuş uygulamalar güncellenemez",
+ "Update to {version}" : "{version} sürümüne güncelle",
"{progress}% Deploying …" : "Dağıtılıyor %{progress}…",
"{progress}% Initializing …" : "Hazırlanıyor %{progress}…",
"Health checking" : "Sağlık denetimi",
@@ -825,6 +549,7 @@
"Allow untested app" : "Denenmemiş uygulamalar kullanılabilsin",
"The app will be downloaded from the App Store" : "Uygulama uygulama mağazasından indirilecek",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Bu uygulamanın kullandığınız Nextcloud sürümü ile uyumluluğu denetlenmemiş. İşlemi sürdürerek uygulamayı kurabilirsiniz. Ancak uygulama beklendiği gibi çalışmayabilir.",
+ "{size} used" : "{size} kullanılmış",
"Unknown" : "Bilinmiyor",
"Never" : "Asla",
"Could not register device: Network error" : "Aygıt kaydedilemedi: Ağ sorunu",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "Grup sıralaması ayarlanamadı",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ağınızdan çok fazla istekte bulunuldu. Bir süre sonra yeniden deneyin ya da bir sorun olduğunu düşünüyorsanız BT yöneticiniz ile görüşün.",
"Error" : "Hata",
+ "Default quota" : "Varsayılan kota",
"Account documentation" : "Hesap belgeleri",
"Administration documentation" : "Yönetim belgeleri",
+ "Documentation" : "Belgeler",
"Forum" : "Forum",
"Nextcloud help & privacy resources" : "Nextcloud yardım ve gizlilik kaynakları",
"General documentation" : "Genel belgeler",
@@ -867,6 +594,7 @@
"SMTP Password" : "SMTP parolası",
"Save" : "Kaydet",
"Test and verify email settings" : "E-posta ayarlarını sınayın ve doğrulayın",
+ "Send email" : "E-posta gönder",
"Security & setup warnings" : "Güvenlik ve kurulum uyarıları",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Kopyanızın güvenli ve yüksek başarımla çalışması için ayarların doğru yapılmış olması önemlidir. Bunu sağlamak için bazı otomatik denetimler yapılır. Ayrıntılı bilgi almak için İpuçları bölümüne ve belgelere bakın.",
"All checks passed." : "Tüm denetimlerden geçti.",
@@ -884,53 +612,16 @@
"Subscribe to our newsletter" : "Bültenimize abone olun",
"This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Bu Nextcloud topluluk sürümü desteklenmiyor ve anlık bildirimler kullanılamıyor.",
"Use a second factor besides your password to increase security for your account." : "Parolanızın yanında ikinci bir doğrulama kullanarak hesabınızın güvenliğini arttırabilirsiniz.",
- "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud bağlantısı kurmak için üçüncü taraf uygulamaları kullanıyorsanız, lütfen iki adımlı doğrulamayı kullanıma almadan önce her biri için bir uygulama parolası oluşturduğunuzdan ve yapılandırdığınızdan emin olun.",
+ "If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud bağlantısı kurmak için üçüncü taraf uygulamaları kullanıyorsanız, lütfen iki adımlı doğrulamayı açmadan önce her biri için bir uygulama parolası oluşturduğunuzdan ve yapılandırdığınızdan emin olun.",
"Logged in account must be a subadmin" : "Oturum açmış hesap bir alt yönetici olmalıdır",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "Bu denetimi çalıştırabilmek için site sunucunuzun kendisine bağlanabildiğinden emin olmanız gerekir. Bu nedenle, `trusted_domains` ya da `overwrite.cli.url` değerlerinden en az birini çözümleyebilmeli ve bunlara bağlanabilmelidir.",
- "Missing optional index \"%s\" in table \"%s\"." : "İsteğe bağlı \"%s\" dizini \"%s\" tablosunda eksik.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Veri tabanında bazı dizinler eksik. Büyük tablolara dizinlerin eklenmesi uzun sürebildiğinden bu işlem otomatik olarak yapılmaz. Sunucunuz normal çalışırken eksik dizinleri el ile eklemek için \"occ db:add-missing-indices\" komutunu yürütün. Dizinler eklendikten sonra bu tablolar üzerindeki sorgular çok daha hızlı yürütülür.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Bu denetimi çalıştırabilmek için site sunucunuzun kendisine bağlanabildiğinden emin olmanız gerekir. Bu nedenle, `trusted_domains` ya da `overwrite.cli.url` değerlerinden en az birini çözümleyebilmeli ve bunlara bağlanabilmelidir. Bu sorun, sunucu tarafındaki bir DNS uyumsuzluğunun veya giden güvenlik duvarı kuralının sonucu olabilir.",
"File locking" : "Dosya kilitleme",
- "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "İşlemsel dosya kilidi kullanımdan kaldırılmış. Bu durum yarış koşullarında (race condition) sorun çıkarabilir. Bu sorunlardan kaçınmak için config.php dosyasındaki \"filelocking.enabled\" seçeneğini kullanıma alın.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "`trusted_domains` ya da `overwrite.cli.url` değerlerinden biri ile JavaScript desteği olup olmadığ denetlenemedi. Bu durum, sunucu tarafı DNS uyuşmazlığından ya da giden güvenlik duvarı kuralından kaynaklanıyor olabilir. Lütfen site sunucunuzun JavaScript MIME türünü kullanarak `.mjs` dosyalarını sunup sunmadığını el ile denetleyin.",
+ "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "İşlemsel dosya kilidi kapalı. Bu durum yarış koşullarında (race condition) sorun çıkarabilir. Bu sorunlardan kaçınmak için config.php dosyasındaki \"filelocking.enabled\" seçeneğini açın.",
"The PHP memory limit is below the recommended value of %s." : "PHP bellek sınırı önerilen %s değerinden küçük.",
"for WebAuthn passwordless login" : "WebAuthn parolasız oturum açma için",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn parolasız oturum açma ve SFTP depolama alanı için",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Şu anda PHP %s kullanıyorsunuz. PHP 8.0 son olarak Nextcloud 27 sürümünde destekleniyor. Nextcloud 28 için en az PHP 8.1 gerekebilir. Lütfen olabilecek en kısa sürede PHP Group tarafından sağlanan resmi olarak desteklenen PHP sürümlerinden birine yükseltin.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB \"%s\" sürümü kullanılıyor. Nextcloud 21 ve üzerinde bu sürüm desteklenmiyor. MariaDB 10.2 ve üzerindeki bir sürüm kullanılmalıdır.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL \"%s\" sürümü kullanılıyor. Nextcloud 21 sürümünde bu sürüm desteklenmiyor. MySQL 8.0 ya da MariaDB 10.2 ve üzerindeki bir sürüm kullanılmalıdır.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL \"%s\" sürümü kullanılıyor. Nextcloud 21 sürümünde bu sürüm desteklenmiyor. PostgreSQL 9.6 ve üzerindeki bir sürüm kullanılmalıdır.",
- "Speech-To-Text" : "Konuşmadan metne",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Konuşmadan metne dönüştürme özelliği farklı uygulamalardan sağlanabilir. Buradan, hangi uygulamanın kullanılacağını ayarlayabilirsiniz.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Şu anda kurulu uygulamaların hiç birinde konuşmadan metne dönüştürme özelliği yok",
- "None of your currently installed apps provide Text processing functionality" : "Şu anda kurulu uygulamaların hiç birinde metin işleme özelliği yok",
- "Set default expiration date for shares" : "Paylaşımlar için varsayılan geçerlilik süresi sonu ayarlansın",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Paylaşım penceresinde kullanıcı adının otomatik tamamlanmasına ve sistem adres defterine erişilmesine izin verilsin",
- "Your biography" : "Özgeçmişiniz",
- "You are using <strong>{usage}</strong>" : "<strong>{usage}</strong> kullanıyorsunuz",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "<strong>{usage}</strong> / <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>) kullanıyorsunuz",
- "Set user manager" : "Kullanıcı yöneticisi ayarla",
- "Username will be autogenerated" : "Kullanıcı adı otomatik olarak oluşturulacak",
- "Username (required)" : "Kullanıcı adı (zorunlu)",
- "New user" : "Yeni kullanıcı",
- "Groups (required)" : "Gruplar (zorunlu)",
- "Set user groups" : "Kullanıcı gruplarını ayarla",
- "Administered groups" : "Yönetilen gruplar",
- "Set user as admin for …" : "Kullanıcıyı şunun yöneticisi yap…",
- "Set user quota" : "Kullanıcı kotasını ayarla",
- "Add new user" : "Yeni kullanıcı ekle",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} kullanıcı…","{userCount} kullanıcı…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} kullanıcı","{userCount} kullanıcı"],
- "Loading users …" : "Kullanıcılar yükleniyor…",
- "Username" : "Kullanıcı adı",
- "User backend" : "Kullanıcı arka ucu",
- "User actions" : "Kullanıcı işlemleri",
- "Add user to group" : "Gruba kullanıcı ekle",
- "Server error while trying to add WebAuthn device" : "WebAuthn aygıtı eklenirken sunucu sorunu çıktı",
- "Name your device" : "Aygıtınıza bir ad verin",
- "Active accounts" : "Etkin hesaplar",
- "Follow us on Twitter" : "Bizi Twitter üzerinde izleyin",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Bu denetimi çalıştırabilmek için site sunucunuzun kendisine bağlanabildiğinden emin olmanız gerekir. Bu nedenle, `trusted_domains` ya da `overwrite.cli.url` değerlerinden en az birini çözümleyebilmeli ve bunlara bağlanabilmelidir. Bu sorun, sunucu tarafındaki bir DNS uyumsuzluğunun veya giden güvenlik duvarı kuralının sonucu olabilir.",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "`%1$s` HTTP üst bilgisinde `%2$s` bulunmuyor. Bu durum olası bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarın belirtildiği gibi yapılması önerilir.",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL \"%s\" sürümü bulundu. Bu Nextcloud sürümüyle en iyi başarım, kararlılık ve işlevsellik sağlamak için PostgreSQL sürümünün 12 ile 16 arasında olması önerilir.",
- "Failed to load subadmin groups with details" : "Alt yönetici grupları ayrıntıları ile yüklenemedi"
+ "Set default expiration date for shares" : "Paylaşımlar için varsayılan geçerlilik süresi sonu ayarlansın"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/ug.js b/apps/settings/l10n/ug.js
index e88901688dd..62ad2c3ddd7 100644
--- a/apps/settings/l10n/ug.js
+++ b/apps/settings/l10n/ug.js
@@ -271,7 +271,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP ماۋزۇلىرى",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- \"%1 $ s\" HTTP ماۋزۇسى%2 $ s قىلىپ تەڭشەلمىدى. بۇ ئىقتىدارنى مۇۋاپىق تەڭشەش تەۋسىيە قىلىنغانلىقتىن ، بەزى ئىقتىدارلار نورمال ئىشلىمەسلىكى مۇمكىن.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- \"%1 $ s\" HTTP ماۋزۇسى%2 $ s قىلىپ تەڭشەلمىدى. بۇ تەڭشەكنى ماس ھالدا تەڭشەش تەۋسىيە قىلىنغانلىقتىن ، بۇ يوشۇرۇن بىخەتەرلىك ياكى مەخپىيەتلىك خەۋىپى.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "-%1 $ s` HTTP ماۋزۇسىدا%2 $ s` يوق. بۇ تەڭشەكنى ماس ھالدا تەڭشەش تەۋسىيە قىلىنغانلىقتىن ، بۇ يوشۇرۇن بىخەتەرلىك ياكى مەخپىيەتلىك خەۋىپى.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- \"%1 $ s\" HTTP بەت بېشى \"%2 $ s\" ، \"%3 $ s\" ، \"%4 $ s\" ، \"%5 $ s\" ياكى \"%6 $ s\" قىلىپ بېكىتىلمىگەن. بۇ رېفېراندۇم ئۇچۇرلىرىنى ئاشكارىلىشى مۇمكىن. {w3c-recommendation}-recommendation}- تەۋسىيە} گە قاراڭ.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- «قاتتىق قاتناش-بىخەتەرلىك» HTTP ماۋزۇسى كەم دېگەندە% d` سېكۇنت قىلىپ بېكىتىلمىگەن (ھازىرقى قىممىتى:% d`). بىخەتەرلىكنى كۈچەيتىش ئۈچۈن ، ئۇزۇن HSTS سىياسىتىنى ئىشلىتىش تەۋسىيە قىلىنىدۇ.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- \"قاتتىق-قاتناش-بىخەتەرلىك\" HTTP ماۋزۇسى خاتا: \"% s\". كۈچەيتىلگەن بىخەتەرلىك ئۈچۈن ، HSTS نى قوزغىتىش تەۋسىيە قىلىنىدۇ.",
@@ -408,73 +407,6 @@ OC.L10N.register(
"Could not load section content from app store." : "ئەپ دۇكىنىدىن بۆلەك مەزمۇنىنى يۈكلىيەلمىدى.",
"Loading" : "يۈكلەۋاتىدۇ",
"Fetching the latest news…" : "ئەڭ يېڭى خەۋەرلەرگە ئېرىشىش…",
- "Carousel" : "Carousel",
- "Previous slide" : "ئالدىنقى تام تەسۋىر",
- "Next slide" : "كېيىنكى تام تەسۋىر",
- "Choose slide to display" : "كۆرسىتىش ئۈچۈن تام تەسۋىرنى تاللاڭ",
- "{index} of {total}" : "{index} of {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon نى ئورۇنلاشتۇرۇڭ",
- "Type" : "تىپ",
- "Display Name" : "كۆرسىتىش ئىسمى",
- "GPUs support" : "GPUs نى قوللايدۇ",
- "Compute device" : "ھېسابلاش ئۈسكۈنىسى",
- "Confirm" : "جەزملەشتۈرۈڭ",
- "Cancel" : "ۋاز كەچ",
- "Description" : "چۈشەندۈرۈش",
- "View in store" : "دۇكاندا كۆرۈش",
- "Visit website" : "توربېكەتنى زىيارەت قىلىڭ",
- "Usage documentation" : "ئىشلىتىش ھۆججىتى",
- "Admin documentation" : "باشقۇرغۇچى ھۆججەتلىرى",
- "Developer documentation" : "ئاچقۇچىلار ھۆججىتى",
- "Details" : "تەپسىلاتى",
- "All" : "ھەممىسى",
- "Limit app usage to groups" : "گۇرۇپپىلارغا ئەپ ئىشلىتىشنى چەكلەڭ",
- "No results" : "ھېچقانداق نەتىجە يوق",
- "Update to {version}" : "{version}غا يېڭىلاش",
- "Default Deploy daemon is not accessible" : "سۈكۈتتىكى ئورۇنلاشتۇرۇش daemon نى زىيارەت قىلغىلى بولمايدۇ",
- "Delete data on remove" : "ئۆچۈرۈش ھەققىدىكى سانلىق مەلۇماتلارنى ئۆچۈرۈڭ",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "بۇ ئەپنىڭ ئەڭ تۆۋەن Nextcloud نەشرى يوق. بۇ كەلگۈسىدە خاتالىق بولىدۇ.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "بۇ ئەپنىڭ ئەڭ چوڭ Nextcloud نەشرى بېكىتىلمىگەن. بۇ كەلگۈسىدە خاتالىق بولىدۇ.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "تۆۋەندىكى باغلىنىشلار ئەمەلگە ئاشمىغاچقا ، بۇ دېتالنى قاچىلىغىلى بولمايدۇ:",
- "Latest updated" : "ئەڭ يېڭى يېڭىلاندى",
- "Author" : "ئاپتور",
- "Categories" : "سەھىپىلەر",
- "Resources" : "بايلىق",
- "Documentation" : "قوللانما",
- "Interact" : "Interact",
- "Report a bug" : "خاتالىق مەلۇم قىلىڭ",
- "Request feature" : "تەلەپ قىلىش ئىقتىدارى",
- "Ask questions or discuss" : "سوئال سوراڭ ياكى مۇلاھىزە قىلىڭ",
- "Rate the app" : "ئەپكە باھا بېرىڭ",
- "Rate" : "باھا",
- "Changelog" : "Changelog",
- "Google Chrome for Android" : "ئاندىرويىد ئۈچۈن Google Chrome",
- "{productName} iOS app" : "{productName} iOS دېتالى",
- "{productName} Android app" : "{productName} Android ئەپ",
- "{productName} Talk for iOS" : "{productName} iOS iOS ئۈچۈن پاراڭ",
- "{productName} Talk for Android" : "{productName} Android ئاندىرويىد ئۈچۈن پاراڭ",
- "Sync client" : "ماس قەدەملىك خېرىدار",
- "This session" : "بۇ يىغىن",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "ئۈسكۈنىنىڭ ئىسمى",
- "Cancel renaming" : "ئىسىم ئۆزگەرتىشنى ئەمەلدىن قالدۇرۇڭ",
- "Save new name" : "يېڭى ئىسىمنى ساقلاڭ",
- "Marked for remote wipe" : "يىراقتىن سۈرتۈشكە بەلگە قويۇلغان",
- "Device settings" : "ئۈسكۈنىنىڭ تەڭشىكى",
- "Allow filesystem access" : "ھۆججەت سىستېمىسىنىڭ زىيارەت قىلىشىغا يول قويۇڭ",
- "Rename" : "ئات ئۆزگەرت",
- "Revoke" : "بىكار قىلىش",
- "Wipe device" : "ئۈسكۈنىنى سۈرتۈڭ",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "بۇ بەلگە ئەمەلدىن قالدۇرۇلسا ئۈسكۈنىڭىزنىڭ سۈرتۈلۈشىنىڭ ئالدىنى ئالىدۇ.",
- "Device" : "ئۈسكۈنە",
- "Last activity" : "ئاخىرقى پائالىيەت",
- "Devices & sessions" : "ئۈسكۈنىلەر ۋە ئولتۇرۇشلار",
- "Web, desktop and mobile clients currently logged in to your account." : "تور ، ئۈستەل يۈزى ۋە كۆچمە خېرىدارلار ھازىر ھېساباتىڭىزغا كىردى.",
- "Error while creating device token" : "ئۈسكۈنە بەلگىسىنى قۇرغاندا خاتالىق",
- "App name" : "ئەپ ئىسمى",
- "Create new app password" : "يېڭى ئەپ پارولى قۇر",
"App password copied!" : "ئەپ پارولى كۆچۈرۈلدى!",
"Copy app password" : "ئەپ پارولىنى كۆچۈرۈڭ",
"Login name copied!" : "كىرىش ئىسمى كۆچۈرۈلدى!",
@@ -518,194 +450,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "شۇنىڭغا دىققەت قىلىڭكى ، شىفىرلاش ھەمىشە ھۆججەتنىڭ چوڭ-كىچىكلىكىنى ئاشۇرىدۇ.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "شىفىرلانغان ئەھۋال ئاستىدا شىفىرلاش كۇنۇپكىسىنى سانلىق مەلۇماتلىرىڭىز بىلەن بىللە زاپاسلاشنى جەزملەشتۈرۈڭ.",
"This is the final warning: Do you really want to enable encryption?" : "بۇ ئاخىرقى ئاگاھلاندۇرۇش: مەخپىيلەشتۈرۈشنى قوزغىتىشنى خالامسىز؟",
- "Failed to remove group \"{group}\"" : "«{group}» گۇرۇپپىسىنى ئۆچۈرەلمىدى",
"Please confirm the group removal" : "گۇرۇپپا ئۆچۈرۈلگەنلىكىنى جەزملەشتۈرۈڭ",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "سىز «{group}» گۇرۇپپىسىنى ئۆچۈرمەكچى بولۇۋاتىسىز. ھېساباتلار ئۆچۈرۈلمەيدۇ.",
+ "Cancel" : "ۋاز كەچ",
+ "Confirm" : "جەزملەشتۈرۈڭ",
"Submit" : "يوللاڭ",
"Rename group" : "گۇرۇپپىنىڭ نامىنى ئۆزگەرتىش",
- "Remove group" : "گۇرۇپپىنى ئۆچۈرۈڭ",
- "Current password" : "نۆۋەتتىكى ئىم",
- "New password" : "يېڭى ئىم",
- "Change password" : "ئىم ئۆزگەرت",
- "Choose your profile picture" : "ئارخىپ رەسىمىڭىزنى تاللاڭ",
- "Please select a valid png or jpg file" : "ئىناۋەتلىك png ياكى jpg ھۆججىتىنى تاللاڭ",
- "Error setting profile picture" : "ئارخىپ رەسىمىنى تەڭشەشتە خاتالىق",
- "Error cropping profile picture" : "ئارخىپ رەسىمىنى كېسىشتە خاتالىق",
- "Error saving profile picture" : "ئارخىپ رەسىمىنى ساقلاشتا خاتالىق",
- "Error removing profile picture" : "ئارخىپ رەسىمىنى ئۆچۈرۈشتە خاتالىق",
- "Your profile picture" : "ئارخىپ رەسىمىڭىز",
- "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" : "رەسىم ئەسلى ھېسابات بىلەن تەمىنلەنگەن",
- "Set as profile picture" : "ئارخىپ رەسىمى قىلىپ تەڭشەڭ",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "شۇنىڭغا دىققەت قىلىڭكى ، ئارخىپ رەسىمىڭىزنىڭ ھەممە يەردە يېڭىلىنىشى ئۈچۈن 24 سائەت ۋاقىت كېتىدۇ.",
- "Unable to update date of birth" : "تۇغۇلغان ۋاقتىنى يېڭىلاشقا ئامالسىز",
- "Enter your date of birth" : "تۇغۇلغان ۋاقتىڭىزنى كىرگۈزۈڭ",
- "You are using {s}{usage}{/s}" : "سىز {s} {usage} {/s} نى ئىشلىتىۋاتىسىز",
- "You are a member of the following groups:" : "سىز تۆۋەندىكى گۇرۇپپىلارنىڭ ئەزاسى:",
- "Your full name" : "تولۇق ئىسمىڭىز",
- "Email options" : "ئېلېكترونلۇق خەت تاللانمىلىرى",
- "Options for additional email address {index}" : "قوشۇمچە ئېلېكترونلۇق خەت ئادرېسى {index}",
- "Remove primary email" : "دەسلەپكى ئېلېكترونلۇق خەتنى ئۆچۈرۈڭ",
- "Delete email" : "ئېلېكترونلۇق خەتنى ئۆچۈرۈڭ",
- "This address is not confirmed" : "بۇ ئادرېس جەزملەشتۈرۈلمىدى",
- "Unset as primary email" : "دەسلەپكى ئېلېكترونلۇق خەت سۈپىتىدە تەڭشەڭ",
- "Set as primary email" : "دەسلەپكى ئېلېكترونلۇق خەت قىلىپ تەڭشەڭ",
- "Additional email address {index}" : "قوشۇمچە ئېلخەت ئادرېسى {index}",
- "Unable to delete primary email address" : "دەسلەپكى ئېلېكترونلۇق خەت ئادرېسىنى ئۆچۈرەلمىدى",
- "Unable to update primary email address" : "دەسلەپكى ئېلېكترونلۇق خەت ئادرېسىنى يېڭىلاشقا ئامالسىز",
- "Unable to add additional email address" : "قوشۇمچە ئېلېكترونلۇق خەت ئادرېسىنى قوشالمىدى",
- "Unable to update additional email address" : "قوشۇمچە ئېلېكترونلۇق خەت ئادرېسىنى يېڭىلاشقا ئامالسىز",
- "Unable to delete additional email address" : "قوشۇمچە ئېلېكترونلۇق خەت ئادرېسىنى ئۆچۈرەلمىدى",
- "Primary email for password reset and notifications" : "پارولنى ئەسلىگە كەلتۈرۈش ۋە ئۇقتۇرۇش ئۈچۈن دەسلەپكى ئېلېكترونلۇق خەت",
- "No email address set" : "ئېلېكترونلۇق خەت ئادرېسى يوق",
- "Your handle" : "قولىڭىز",
- "Derived from your locale ({weekDayName})" : "يەرلىكتىن كەلگەن ({weekDayName})",
- "Unable to update first day of week" : "ھەپتىنىڭ بىرىنچى كۈنى يېڭىلانمىدى",
- "Day to use as the first day of week" : "ھەپتىنىڭ بىرىنچى كۈنى سۈپىتىدە ئىشلىتىدىغان كۈن",
- "Your headline" : "ماۋزۇ",
- "Unable to update language" : "تىلنى يېڭىلاشقا ئامالسىز",
- "Languages" : "تىللار",
- "Help translate" : "تەرجىمىگە ياردەم",
- "No language set" : "تىل يوق",
- "Unable to update locale" : "يەرلىكنى يېڭىلاشقا ئامالسىز",
- "Locales" : "Locales",
- "Week starts on {firstDayOfWeek}" : "ھەپتە {firstDayOfWeek} on دا باشلىنىدۇ",
- "No locale set" : "يەرلىك ئورۇن يوق",
- "Your city" : "شەھىرىڭىز",
- "Your organisation" : "تەشكىلاتىڭىز",
- "Your phone number" : "تېلېفون نومۇرىڭىز",
- "Edit your Profile visibility" : "ئارخىپىڭىزنىڭ كۆرۈنۈشچانلىقىنى تەھرىرلەڭ",
- "Unable to update profile enabled state" : "ئارخىپ قوزغىتىلغان ھالەتنى يېڭىلاشقا ئامالسىز",
- "Enable profile" : "ئارخىپنى قوزغىتىڭ",
- "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." : "كۆرۈنۈش ياكى دائىرىنىڭ تېخىمۇ چەكلىمىگە ئۇچرايدىغان تەڭشىكى ئارخىپىڭىزغا ھۆرمەت قىلىنىدۇ. مەسىلەن ، كۆرۈنۈشچانلىقى «ھەممەيلەنگە كۆرسىتىش» قىلىپ بېكىتىلسە ، دائىرىسى «شەخسىي» قىلىپ بېكىتىلسە ، «شەخسىي» ھۆرمەت قىلىنىدۇ.",
- "Unable to update visibility of {displayId}" : "{displayId} vis نىڭ كۆرۈنۈشچانلىقىنى يېڭىلاشقا ئامالسىز",
- "she/her" : "she / her",
- "he/him" : "he / him",
- "they/them" : "ئۇلار / ئۇلار",
- "Your role" : "سىزنىڭ رولىڭىز",
- "Your X (formerly Twitter) handle" : "سىزنىڭ X (ئىلگىرىكى Twitter) تۇتقۇچى",
- "Your website" : "تور بېتىڭىز",
- "Invalid value" : "ئىناۋەتسىز قىممەت",
- "Unable to update {property}" : "يېڭىلاشقا ئامالسىز {property}",
- "No {property} set" : "No {property} set",
- "Change scope level of {property}, current scope is {scope}" : "دائىرە دەرىجىسىنى ئۆزگەرتىش {property} ، نۆۋەتتىكى دائىرە {scope}",
- "Unable to update federation scope of the primary {property}" : "دەسلەپكى {property} فېدېراتسىيە دائىرىسىنى يېڭىلاشقا ئامالسىز",
- "Unable to update federation scope of additional {property}" : "قوشۇمچە {property} فېدېراتسىيە دائىرىسىنى يېڭىلاشقا ئامالسىز",
- "Add additional email" : "قوشۇمچە ئېلېكترونلۇق خەت قوشۇڭ",
- "Add" : "قوش",
- "Create" : "قۇر",
- "Change" : "ئۆزگەرتىش",
- "Delete" : "ئۆچۈر",
- "Reshare" : "قايتا قۇرۇش",
- "Default language" : "كۆڭۈلدىكى تىل",
- "Common languages" : "ئورتاق تىل",
- "Other languages" : "باشقا تىللار",
- "Password change is disabled because the master key is disabled" : "ئاساسىي ئاچقۇچ چەكلەنگەنلىكتىن پارول ئۆزگەرتىش چەكلەنگەن",
- "No accounts" : "ھېسابات يوق",
- "Loading accounts …" : "ھېسابات يۈكلەۋاتىدۇ…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "ھېسابات تىزىملىكى. بۇ تىزىملىك ئىقتىدار سەۋەبىدىن تولۇق كۆرسىتىلمىگەن. ھېساباتلار تىزىملىكتىن ئۆتكەندە كۆرسىتىلىدۇ.",
- "Manager" : "باشقۇرغۇچى",
- "Set line manager" : "قۇر باشقۇرغۇچىنى بەلگىلەڭ",
- "Account name will be autogenerated" : "ھېسابات ئىسمى ئاپتوماتىك بولىدۇ",
- "Account name (required)" : "ھېسابات ئىسمى (تەلەپ)",
- "New account" : "يېڭى ھېسابات",
- "Display name" : "كۆرسىتىش ئىسمى",
- "Either password or email is required" : "پارول ياكى ئېلېكترونلۇق خەت تەلەپ قىلىنىدۇ",
- "Password (required)" : "پارول (تەلەپ)",
- "Email (required)" : "ئېلخەت (تەلەپ)",
- "Email" : "تورخەت",
- "Member of the following groups (required)" : "تۆۋەندىكى گۇرۇپپىلارنىڭ ئەزاسى (تەلەپ قىلىنىدۇ)",
- "Member of the following groups" : "تۆۋەندىكى گۇرۇپپىلارنىڭ ئەزاسى",
- "Set account groups" : "ھېسابات گۇرۇپپىسىنى بەلگىلەڭ",
- "Admin of the following groups" : "تۆۋەندىكى گۇرۇپپىلارنىڭ باشقۇرغۇچىسى",
- "Set account as admin for …" : "ھېساباتنى باشقۇرغۇچى قىلىپ تەڭشەڭ…",
- "Quota" : "Quota",
- "Set account quota" : "ھېسابات نورمىسىنى بەلگىلەڭ",
- "Language" : "تىل",
- "Set default language" : "سۈكۈتتىكى تىل بەلگىلەڭ",
- "Add new account" : "يېڭى ھېسابات قوشۇڭ",
- "Total rows summary" : "ئومۇمىي قۇر خۇلاسىسى",
- "Scroll to load more rows" : "تېخىمۇ كۆپ قۇرلارنى يۈكلەڭ",
- "Password or insufficient permissions message" : "پارول ياكى يېتەرلىك ئىجازەت ئۇچۇرى",
- "Avatar" : "Avatar",
- "Account name" : "ھېسابات ئىسمى",
- "Group admin for" : "گۇرۇپپا باشقۇرغۇچى",
- "Account backend" : "ھېسابات ئارقا سۇپىسى",
- "Storage location" : "ساقلاش ئورنى",
- "Last login" : "ئاخىرقى كىرىش",
- "Account actions" : "ھېسابات ھەرىكىتى",
- "{size} used" : "{size} ئىشلىتىلگەن",
- "Delete account" : "ھېساباتنى ئۆچۈرۈڭ",
- "Disconnect all devices and delete local data" : "بارلىق ئۈسكۈنىلەرنى ئۈزۈۋېتىڭ ۋە يەرلىك سانلىق مەلۇماتلارنى ئۆچۈرۈڭ",
- "Disable account" : "ھېساباتنى چەكلەش",
- "Enable account" : "ھېساباتنى قوزغىتىش",
- "Resend welcome email" : "قارشى ئالىدىغان ئېلېكترونلۇق خەتنى ئەۋەتىڭ",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "ئۈسكۈنە يۈتۈپ كەتسە ياكى تەشكىلاتتىن چىقسا ، بۇ {userid} associated غا مۇناسىۋەتلىك بارلىق ئۈسكۈنىلەردىن Nextcloud سانلىق مەلۇماتلىرىنى يىراقتىن ئۆچۈرەلەيدۇ. ئۈسكۈنىلەر تورغا ئۇلانغاندىلا ئىشلەيدۇ.",
- "Remote wipe of devices" : "ئۈسكۈنىلەرنى يىراقتىن سۈرتۈش",
- "Wipe {userid}'s devices" : "{userid} ئۈسكۈنىلىرىنى ئۆچۈرۈڭ",
- "Wiped {userid}'s devices" : "{userid} ئۈسكۈنىلىرىنى ئۆچۈرۈۋەتتى",
- "Failed to update line manager" : "قۇر باشقۇرغۇچىنى يېڭىلاش مەغلۇب بولدى",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} account نىڭ بارلىق شەخسىي ھۆججەتلىرى ، ئەپ سانلىق مەلۇماتلىرى قاتارلىقلارنى ئۆز ئىچىگە ئالىدۇ.",
- "Account deletion" : "ھېسابات ئۆچۈرۈش",
- "Delete {userid}'s account" : "{userid} account نىڭ ھېساباتىنى ئۆچۈرۈڭ",
- "Display name was successfully changed" : "كۆرسىتىش ئىسمى مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى",
- "Password was successfully changed" : "پارول مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى",
- "Email was successfully changed" : "ئېلېكترونلۇق خەت مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى",
- "Welcome mail sent!" : "ئەۋەتىلگەن خەتنى قارشى ئالىمىز!",
- "Loading account …" : "ھېسابات يۈكلەۋاتىدۇ…",
- "Change display name" : "كۆرسىتىش نامىنى ئۆزگەرتىڭ",
- "Set new password" : "يېڭى پارول بەلگىلەڭ",
- "You do not have permissions to see the details of this account" : "بۇ ھېساباتنىڭ تەپسىلاتلىرىنى كۆرۈش ھوقۇقىڭىز يوق",
- "Set new email address" : "يېڭى ئېلېكترونلۇق خەت ئادرېسىنى بەلگىلەڭ",
- "Add account to group" : "گۇرۇپپىغا ھېسابات قوشۇڭ",
- "Set account as admin for" : "ھېساباتنى باشقۇرغۇچى قىلىپ بەلگىلەڭ",
- "Select account quota" : "ھېسابات نورمىسىنى تاللاڭ",
- "Set the language" : "تىل بەلگىلەڭ",
- "Toggle account actions menu" : "ھېسابات ھەرىكەت تىزىملىكى",
- "Done" : "Done",
- "Edit" : "تەھرىر",
- "Account management settings" : "ھېسابات باشقۇرۇش تەڭشەكلىرى",
- "Visibility" : "كۆرۈنۈشچانلىقى",
- "Show language" : "تىل كۆرسەت",
- "Show account backend" : "ھېسابات ئارقا كۆرۈنۈشىنى كۆرسەت",
- "Show storage path" : "ساقلاش يولىنى كۆرسەت",
- "Show last login" : "ئاخىرقى كىرىشنى كۆرسەت",
- "Sorting" : "تەرتىپلەش",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "سىستېما سەپلىمىسى گۇرۇپپىلارنى ئىسىم بويىچە رەتلەشنى ئىجرا قىلىدۇ. بۇمۇ ئەزا سانىنى كۆرسىتىشنى چەكلەيدۇ.",
- "Group list sorting" : "گۇرۇپپا تىزىملىكىنى رەتلەش",
- "By member count" : "ئەزا سانى بويىچە",
- "By name" : "ئىسمى بىلەن",
- "Send email" : "ئېلېكترونلۇق خەت ئەۋەتىڭ",
- "Send welcome email to new accounts" : "يېڭى ھېساباتلارغا قارشى ئېلخەت ئەۋەتىڭ",
- "Defaults" : "سۈكۈت",
- "Default quota" : "سۈكۈتتىكى نورما",
- "Select default quota" : "سۈكۈتتىكى نورمىنى تاللاڭ",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn ئۈسكۈنىسىنى تىزىملاشنى تاماملىغاندا مۇلازىمېتىر خاتالىقى",
- "Passwordless authentication requires a secure connection." : "پارولسىز دەلىللەش بىخەتەر ئۇلىنىشنى تەلەپ قىلىدۇ.",
- "Add WebAuthn device" : "WebAuthn ئۈسكۈنىسىنى قوشۇڭ",
- "Please authorize your WebAuthn device." : "WebAuthn ئۈسكۈنىڭىزگە ھوقۇق بېرىڭ.",
- "Adding your device …" : "ئۈسكۈنىڭىزنى قوشۇش…",
- "Unnamed device" : "نامسىز ئۈسكۈنە",
- "Passwordless Authentication" : "پارولسىز دەلىللەش",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "ھېساباتىڭىزنى FIDO2 ئۆلچىمىگە ئاساسەن مەخپىي نومۇرسىز دەلىللەش ئۈچۈن تەڭشەڭ.",
- "No devices configured." : "ھېچقانداق ئۈسكۈنى سەپلەنمىگەن.",
- "The following devices are configured for your account:" : "ھېساباتىڭىزغا تۆۋەندىكى ئۈسكۈنىلەر سەپلەندى:",
- "Your browser does not support WebAuthn." : "توركۆرگۈڭىز WebAuthn نى قوللىمايدۇ.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "باشقۇرغۇچى بولۇش سۈپىتىڭىز بىلەن ھەمبەھىرلىنىش ھەرىكىتىنى ياخشى تەڭشىيەلەيسىز. تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىش ئۈچۈن بۇ ھۆججەتلەرنى كۆرۈڭ.",
- "You need to enable the File sharing App." : "ھۆججەت ئورتاقلىشىش دېتالىنى قوزغىتىشىڭىز كېرەك.",
- "App Store" : "ئەپ دۇكىنى",
- "Loading app list" : "ئەپ تىزىملىكى",
- "Loading categories" : "تۈرلەرنى يۈكلەۋاتىدۇ",
- "Developer documentation ↗" : "ئاچقۇچىلار ھۆججىتى ↗",
- "Version {version}, {license}-licensed" : "نەشرى {version} ، {license} ئىجازەتنامىسى",
- "Version {version}" : "نەشرى {version}",
- "All accounts" : "بارلىق ھېساباتلار",
- "Admins" : "باشقۇرغۇچى",
- "Account group: {group}" : "ھېسابات گۇرۇپپىسى: {group}",
- "Account management" : "ھېسابات باشقۇرۇش",
"Sending…" : "ئەۋەتىش…",
"Email sent" : "ئېلخەت يوللاندى",
"Location" : "ئورنى",
@@ -714,6 +463,7 @@ OC.L10N.register(
"Date of birth" : "تۇغۇلغان ۋاقتى",
"Full name" : "تولۇق ئىسمى",
"Additional email" : "قوشۇمچە ئېلخەت",
+ "Email" : "تورخەت",
"Fediverse (e.g. Mastodon)" : "Fediverse (مەسىلەن Mastodon)",
"Headline" : "ماۋزۇ",
"Organisation" : "تەشكىلات",
@@ -723,6 +473,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (ئىلگىرىكى Twitter)",
"Website" : "تور بېكەت",
"Profile visibility" : "ئارخىپنىڭ كۆرۈنۈشچانلىقى",
+ "Language" : "تىل",
"Locale" : "Locale",
"First day of week" : "ھەپتىنىڭ بىرىنچى كۈنى",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "ھۆججەت ئورتاقلىشىش ۋە كالېندار تەكلىپنامىسىنى ئۆز ئىچىگە ئالغان يادرولۇق ئىقتىدارلار ئۈچۈن بۇ مۈلۈك تەلەپ قىلىنمىغاچقا",
@@ -739,6 +490,7 @@ OC.L10N.register(
"Show to everyone" : "كۆپچىلىككە كۆرسەت",
"Show to logged in accounts only" : "پەقەت ھېساباتقا كىرگەنلىكىنى كۆرسەت",
"Hide" : "يوشۇر",
+ "Update to {version}" : "{version}غا يېڭىلاش",
"{progress}% Deploying …" : "{progress}% ئورۇنلاشتۇرۇش…",
"{progress}% Initializing …" : "{progress}% باشلاش…",
"Health checking" : "سالامەتلىك تەكشۈرتۈش",
@@ -748,6 +500,7 @@ OC.L10N.register(
"Allow untested app" : "سىناق قىلىنمىغان ئەپكە يول قويۇڭ",
"The app will be downloaded from the App Store" : "بۇ ئەپ ئەپ دۇكىنىدىن چۈشۈرۈلىدۇ",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "بۇ ئەپ سىزنىڭ Nextcloud نەشرىڭىزگە ماس كەلمەيدۇ. داۋاملاشتۇرسىڭىز يەنىلا ئەپنى قاچىلىيالايسىز. شۇنىڭغا دىققەت قىلىڭكى ، بۇ دېتال مۆلچەردىكىدەك ئىشلىمەسلىكى مۇمكىن.",
+ "{size} used" : "{size} ئىشلىتىلگەن",
"Unknown" : "نامەلۇم",
"Never" : "ھەرگىز بولمايدۇ",
"Could not register device: Network error" : "ئۈسكۈنىنى تىزىملىيالمىدى: تور خاتالىقى",
@@ -766,8 +519,10 @@ OC.L10N.register(
"Could not set group sorting" : "گۇرۇپپا رەتلەشنى تەڭشىيەلمىدى",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "تورىڭىزدىن بەك كۆپ تەلەپلەر بار ئىدى. كېيىن قايتا سىناڭ ياكى باشقۇرغۇچى بىلەن ئالاقىلىشىڭ.",
"Error" : "خاتالىق",
+ "Default quota" : "سۈكۈتتىكى نورما",
"Account documentation" : "ھېسابات ھۆججىتى",
"Administration documentation" : "باشقۇرۇش ھۆججىتى",
+ "Documentation" : "قوللانما",
"Forum" : "مۇنبەر",
"Nextcloud help & privacy resources" : "Nextcloud ياردەم ۋە مەخپىيەتلىك مەنبەلىرى",
"General documentation" : "ئادەتتىكى ھۆججەتلەر",
@@ -790,6 +545,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP پارول",
"Save" : "ساقلا",
"Test and verify email settings" : "ئېلېكترونلۇق خەت تەڭشىكىنى سىناش ۋە دەلىللەش",
+ "Send email" : "ئېلېكترونلۇق خەت ئەۋەتىڭ",
"Security & setup warnings" : "بىخەتەرلىك ۋە تەڭشەش ئاگاھلاندۇرۇشى",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "ھەممە ئىشنىڭ توغرا تەڭشەلگەنلىكىڭىزنىڭ بىخەتەرلىكى ۋە ئىقتىدارى ئۈچۈن ئىنتايىن مۇھىم. سىزگە ياردەم قىلىش ئۈچۈن بىز ئاپتوماتىك تەكشۈرۈش ئېلىپ بېرىۋاتىمىز. تېخىمۇ كۆپ ئۇچۇرغا ئۇلانغان ھۆججەتلەرنى كۆرۈڭ.",
"All checks passed." : "بارلىق تەكشۈرۈشلەر ئۆتۈپ كەتتى.",
@@ -808,48 +564,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "ھېساباتىڭىزنىڭ بىخەتەرلىكىنى ئاشۇرۇش ئۈچۈن پارولىڭىزدىن باشقا ئىككىنچى ئامىلنى ئىشلىتىڭ.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud غا ئۇلىنىش ئۈچۈن ئۈچىنچى تەرەپ قوللىنىشچان پروگراممىلىرىنى ئىشلەتسىڭىز ، ئىككىنچى ئامىل دەلىللەشنى قوزغىتىشتىن بۇرۇن ھەر بىرسىگە ئەپ پارولى قۇرۇش ۋە تەڭشەشنى جەزملەشتۈرۈڭ.",
"Logged in account must be a subadmin" : "ھېساباتقا تىزىملاتقانلار چوقۇم تارماق باشقۇرغۇچى بولۇشى كېرەك",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "بۇ تەكشۈرۈشنىڭ ئىجرا قىلىنىشى ئۈچۈن تور مۇلازىمېتىرىڭىزنىڭ ئۆزىگە ئۇلىنالايدىغانلىقىغا كاپالەتلىك قىلىشىڭىز كېرەك. شۇڭلاشقا ئۇ چوقۇم كەم دېگەندە بىر «ئىشەنچلىك_ دائىرە» ياكى «overrite.cli.url» نى ھەل قىلالايدۇ ۋە ئۇلىيالايدۇ.",
- "Missing optional index \"%s\" in table \"%s\"." : "جەدۋەلدىكى «% s» تاللاش كۆرسەتكۈچى يوقاپ كەتتى.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "سانداندا بەزى كۆرسەتكۈچلەر كەم. چوڭ جەدۋەللەرگە كۆرسەتكۈچ قوشۇشقا بىر ئاز ۋاقىت كېتىشى مۇمكىن بولغاچقا ، ئۇلار ئاپتوماتىك قوشۇلمىدى. \"Occ db: add-missing-indices\" نى ئىجرا قىلىش ئارقىلىق ، يوقاپ كەتكەن كۆرسەتكۈچلەرنى قولدا قوشقىلى بولىدۇ. كۆرسەتكۈچلەر بۇ جەدۋەللەرگە سوئال قوشۇلغاندىن كېيىن ، ئادەتتە تېخىمۇ تېز بولىدۇ.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "بۇ تەكشۈرۈشنىڭ ئىجرا قىلىنىشى ئۈچۈن تور مۇلازىمېتىرىڭىزنىڭ ئۆزىگە ئۇلىنالايدىغانلىقىغا كاپالەتلىك قىلىشىڭىز كېرەك. شۇڭلاشقا ئۇ چوقۇم كەم دېگەندە ئۇنىڭ «ئىشەنچلىك_ دائىرە» ياكى «overrite.cli.url» دىن بىرنى ھەل قىلالايدىغان ۋە ئۇلىيالايدىغان بولۇشى كېرەك. بۇ مەغلۇبىيەت بەلكىم مۇلازىمېتىر تەرەپتىكى DNS ماسلاشماسلىق ياكى سىرتقا چىقىپ كېتىشتىن مۇداپىئەلىنىش قائىدىسىنىڭ نەتىجىسى بولۇشى مۇمكىن.",
"File locking" : "ھۆججەت قۇلۇپلاش",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "سودا ھۆججىتىنى قۇلۇپلاش چەكلەنگەن ، بۇ مۇسابىقە شارائىتىدىكى مەسىلىلەرنى كەلتۈرۈپ چىقىرىشى مۇمكىن. بۇ مەسىلىلەردىن ساقلىنىش ئۈچۈن config.php دىكى \"filelocking.enabled\" نى قوزغىتىڭ.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "JavaScript قوللاشنى ھېچقانداق «ئىشەنچلىك_ دائىرە» ياكى «overrite.cli.url» ئارقىلىق تەكشۈرەلمىدىڭىز. بۇ بەلكىم مۇلازىمېتىر تەرەپتىكى DNS ماسلاشماسلىق ياكى سىرتقا چىقىپ كېتىشتىن مۇداپىئەلىنىش قائىدىسىنىڭ نەتىجىسى بولۇشى مۇمكىن. ئەگەر توركۆرگۈڭىز JavaScript MIME تىپى ئارقىلىق `.mjs ھۆججىتىگە مۇلازىمەت قىلسا قولدا تەكشۈرۈپ بېقىڭ.",
"The PHP memory limit is below the recommended value of %s." : "PHP ئىچكى ساقلىغۇچ چەكلىمىسى تەۋسىيە قىلىنغان% s دىن تۆۋەن.",
"for WebAuthn passwordless login" : "WebAuthn پارولسىز كىرىش ئۈچۈن",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn پارولسىز كىرىش ۋە SFTP ساقلاش ئۈچۈن",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "سىز ھازىر PHP% s نى ئىجرا قىلىۋاتىسىز. PHP 8.0 ھازىر Nextcloud 27 دە ئەمەلدىن قالدۇرۇلدى. Nextcloud 28 كەم دېگەندە PHP 8.1 نى تەلەپ قىلىشى مۇمكىن. PHP گورۇھى تەمىنلىگەن رەسمىي قوللايدىغان PHP نەشرىنىڭ بىرىنى تېزدىن يېڭىلاڭ.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB نەشرى \"% s\" ئىشلىتىلگەن. Nextcloud 21 ۋە ئۇنىڭدىن يۇقىرى نەشرى بۇ نەشرىنى قوللىمايدۇ ھەمدە MariaDB 10.2 ياكى ئۇنىڭدىن يۇقىرى نەشرىنى تەلەپ قىلىدۇ.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL نەشرى \"% s\" ئىشلىتىلگەن. Nextcloud 21 ۋە ئۇنىڭدىن يۇقىرى نەشرى بۇ نەشرىنى قوللىمايدۇ ھەمدە MySQL 8.0 ياكى MariaDB 10.2 ياكى ئۇنىڭدىن يۇقىرى نەشرىنى تەلەپ قىلىدۇ.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL نەشرى \"% s\" ئىشلىتىلىدۇ. Nextcloud 21 ۋە ئۇنىڭدىن يۇقىرى نەشرى بۇ نەشرىنى قوللىمايدۇ ھەمدە PostgreSQL 9.6 ياكى ئۇنىڭدىن يۇقىرى نەشرىنى تەلەپ قىلىدۇ.",
- "Speech-To-Text" : "سۆزلەشتىن تېكىست",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "نۇتۇقتىن تېكىستنى ئوخشىمىغان ئەپلەر ئارقىلىق يولغا قويغىلى بولىدۇ. بۇ يەردە قايسى ئەپنى ئىشلىتىش كېرەكلىكىنى بەلگىلىيەلەيسىز.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "ھازىر قاچىلانغان ئەپلەرنىڭ ھېچقايسىسى Speech-To-Text ئىقتىدارىنى تەمىنلىمەيدۇ",
- "None of your currently installed apps provide Text processing functionality" : "ھازىر قاچىلانغان ئەپلەرنىڭ ھېچقايسىسى تېكىست بىر تەرەپ قىلىش ئىقتىدارى بىلەن تەمىنلىمەيدۇ",
- "Set default expiration date for shares" : "پاي چېكىنىڭ سۈكۈتتىكى مۇددىتىنى بەلگىلەڭ",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "ئورتاقلىشىش دىئالوگىدا ئىشلەتكۈچى نامىنىڭ ئۆزلۈكىدىن تاماملىنىشىغا يول قويۇڭ ۋە سىستېما ئادرېس دەپتىرىنى زىيارەت قىلالايسىز",
- "Your biography" : "تەرجىمىھالىڭىز",
- "You are using <strong>{usage}</strong>" : "سىز <strong> {usage} </strong> نى ئىشلىتىۋاتىسىز",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "سىز <strong> {usage} </strong> نىڭ <strong> {totalSpace} </strong> نى ئىشلىتىۋاتىسىز (<strong> {usageRelative}% </strong>)",
- "Set user manager" : "ئىشلەتكۈچى باشقۇرغۇچىنى بەلگىلەڭ",
- "Username will be autogenerated" : "ئىشلەتكۈچى ئىسمى ئۆزلۈكىدىن ھاسىل بولىدۇ",
- "Username (required)" : "ئىشلەتكۈچى ئىسمى (تەلەپ قىلىنغان)",
- "New user" : "يېڭى ئىشلەتكۈچى",
- "Groups (required)" : "گۇرۇپپىلار (تەلەپ قىلىنغان)",
- "Set user groups" : "ئىشلەتكۈچى گۇرۇپپىسىنى بەلگىلەڭ",
- "Administered groups" : "باشقۇرۇلىدىغان گۇرۇپپىلار",
- "Set user as admin for …" : "ئىشلەتكۈچىنى باشقۇرغۇچى قىلىپ تەڭشەڭ…",
- "Set user quota" : "ئىشلەتكۈچى نورمىسىنى بەلگىلەڭ",
- "Add new user" : "يېڭى ئىشلەتكۈچى قوشۇڭ",
- "Loading users …" : "ئىشلەتكۈچىلەر يۈكلەۋاتىدۇ…",
- "Username" : "ئىشلەتكۈچى ئاتى",
- "User backend" : "ئىشلەتكۈچى ئارقا سەھنىسى",
- "User actions" : "ئىشلەتكۈچى ھەرىكىتى",
- "Add user to group" : "گۇرۇپپىغا ئىشلەتكۈچى قوشۇڭ",
- "Server error while trying to add WebAuthn device" : "WebAuthn ئۈسكۈنىسىنى قوشماقچى بولغاندا مۇلازىمېتىر خاتالىقى",
- "Name your device" : "ئۈسكۈنىڭىزگە ئىسىم قويۇڭ",
- "Active accounts" : "ئاكتىپ ھېسابات",
- "Follow us on Twitter" : "Twitter دا بىزگە ئەگىشىڭ",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "بۇ تەكشۈرۈشنىڭ ئىجرا قىلىنىشى ئۈچۈن تور مۇلازىمېتىرىڭىزنىڭ ئۆزىگە ئۇلىنالايدىغانلىقىغا كاپالەتلىك قىلىشىڭىز كېرەك. شۇڭلاشقا ئۇ چوقۇم كەم دېگەندە ئۇنىڭ «ئىشەنچلىك_ دائىرە» ياكى «overrite.cli.url» دىن بىرنى ھەل قىلالايدىغان ۋە ئۇلىيالايدىغان بولۇشى كېرەك. بۇ مەغلۇبىيەت بەلكىم مۇلازىمېتىر تەرەپتىكى DNS ماسلاشماسلىق ياكى سىرتقا چىقىپ كېتىشتىن مۇداپىئەلىنىش قائىدىسىنىڭ نەتىجىسى بولۇشى مۇمكىن.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL نەشرى \"% s\" بايقالدى. PostgreSQL> = 12 ۋە <= 16 Nextcloud نىڭ بۇ نەشرى بىلەن ئەڭ ياخشى ئىقتىدار ، مۇقىملىق ۋە ئىقتىدار ئۈچۈن تەۋسىيە قىلىنىدۇ."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "-%1 $ s` HTTP ماۋزۇسىدا%2 $ s` يوق. بۇ تەڭشەكنى ماس ھالدا تەڭشەش تەۋسىيە قىلىنغانلىقتىن ، بۇ يوشۇرۇن بىخەتەرلىك ياكى مەخپىيەتلىك خەۋىپى.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL نەشرى \"% s\" بايقالدى. PostgreSQL> = 12 ۋە <= 16 Nextcloud نىڭ بۇ نەشرى بىلەن ئەڭ ياخشى ئىقتىدار ، مۇقىملىق ۋە ئىقتىدار ئۈچۈن تەۋسىيە قىلىنىدۇ.",
+ "Set default expiration date for shares" : "پاي چېكىنىڭ سۈكۈتتىكى مۇددىتىنى بەلگىلەڭ"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/settings/l10n/ug.json b/apps/settings/l10n/ug.json
index 82d08c5236f..cce071e924e 100644
--- a/apps/settings/l10n/ug.json
+++ b/apps/settings/l10n/ug.json
@@ -269,7 +269,6 @@
"HTTP headers" : "HTTP ماۋزۇلىرى",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- \"%1 $ s\" HTTP ماۋزۇسى%2 $ s قىلىپ تەڭشەلمىدى. بۇ ئىقتىدارنى مۇۋاپىق تەڭشەش تەۋسىيە قىلىنغانلىقتىن ، بەزى ئىقتىدارلار نورمال ئىشلىمەسلىكى مۇمكىن.",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- \"%1 $ s\" HTTP ماۋزۇسى%2 $ s قىلىپ تەڭشەلمىدى. بۇ تەڭشەكنى ماس ھالدا تەڭشەش تەۋسىيە قىلىنغانلىقتىن ، بۇ يوشۇرۇن بىخەتەرلىك ياكى مەخپىيەتلىك خەۋىپى.",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "-%1 $ s` HTTP ماۋزۇسىدا%2 $ s` يوق. بۇ تەڭشەكنى ماس ھالدا تەڭشەش تەۋسىيە قىلىنغانلىقتىن ، بۇ يوشۇرۇن بىخەتەرلىك ياكى مەخپىيەتلىك خەۋىپى.",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- \"%1 $ s\" HTTP بەت بېشى \"%2 $ s\" ، \"%3 $ s\" ، \"%4 $ s\" ، \"%5 $ s\" ياكى \"%6 $ s\" قىلىپ بېكىتىلمىگەن. بۇ رېفېراندۇم ئۇچۇرلىرىنى ئاشكارىلىشى مۇمكىن. {w3c-recommendation}-recommendation}- تەۋسىيە} گە قاراڭ.",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- «قاتتىق قاتناش-بىخەتەرلىك» HTTP ماۋزۇسى كەم دېگەندە% d` سېكۇنت قىلىپ بېكىتىلمىگەن (ھازىرقى قىممىتى:% d`). بىخەتەرلىكنى كۈچەيتىش ئۈچۈن ، ئۇزۇن HSTS سىياسىتىنى ئىشلىتىش تەۋسىيە قىلىنىدۇ.",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- \"قاتتىق-قاتناش-بىخەتەرلىك\" HTTP ماۋزۇسى خاتا: \"% s\". كۈچەيتىلگەن بىخەتەرلىك ئۈچۈن ، HSTS نى قوزغىتىش تەۋسىيە قىلىنىدۇ.",
@@ -406,73 +405,6 @@
"Could not load section content from app store." : "ئەپ دۇكىنىدىن بۆلەك مەزمۇنىنى يۈكلىيەلمىدى.",
"Loading" : "يۈكلەۋاتىدۇ",
"Fetching the latest news…" : "ئەڭ يېڭى خەۋەرلەرگە ئېرىشىش…",
- "Carousel" : "Carousel",
- "Previous slide" : "ئالدىنقى تام تەسۋىر",
- "Next slide" : "كېيىنكى تام تەسۋىر",
- "Choose slide to display" : "كۆرسىتىش ئۈچۈن تام تەسۋىرنى تاللاڭ",
- "{index} of {total}" : "{index} of {total}",
- "Daemon" : "Daemon",
- "Deploy Daemon" : "Daemon نى ئورۇنلاشتۇرۇڭ",
- "Type" : "تىپ",
- "Display Name" : "كۆرسىتىش ئىسمى",
- "GPUs support" : "GPUs نى قوللايدۇ",
- "Compute device" : "ھېسابلاش ئۈسكۈنىسى",
- "Confirm" : "جەزملەشتۈرۈڭ",
- "Cancel" : "ۋاز كەچ",
- "Description" : "چۈشەندۈرۈش",
- "View in store" : "دۇكاندا كۆرۈش",
- "Visit website" : "توربېكەتنى زىيارەت قىلىڭ",
- "Usage documentation" : "ئىشلىتىش ھۆججىتى",
- "Admin documentation" : "باشقۇرغۇچى ھۆججەتلىرى",
- "Developer documentation" : "ئاچقۇچىلار ھۆججىتى",
- "Details" : "تەپسىلاتى",
- "All" : "ھەممىسى",
- "Limit app usage to groups" : "گۇرۇپپىلارغا ئەپ ئىشلىتىشنى چەكلەڭ",
- "No results" : "ھېچقانداق نەتىجە يوق",
- "Update to {version}" : "{version}غا يېڭىلاش",
- "Default Deploy daemon is not accessible" : "سۈكۈتتىكى ئورۇنلاشتۇرۇش daemon نى زىيارەت قىلغىلى بولمايدۇ",
- "Delete data on remove" : "ئۆچۈرۈش ھەققىدىكى سانلىق مەلۇماتلارنى ئۆچۈرۈڭ",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "بۇ ئەپنىڭ ئەڭ تۆۋەن Nextcloud نەشرى يوق. بۇ كەلگۈسىدە خاتالىق بولىدۇ.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "بۇ ئەپنىڭ ئەڭ چوڭ Nextcloud نەشرى بېكىتىلمىگەن. بۇ كەلگۈسىدە خاتالىق بولىدۇ.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "تۆۋەندىكى باغلىنىشلار ئەمەلگە ئاشمىغاچقا ، بۇ دېتالنى قاچىلىغىلى بولمايدۇ:",
- "Latest updated" : "ئەڭ يېڭى يېڭىلاندى",
- "Author" : "ئاپتور",
- "Categories" : "سەھىپىلەر",
- "Resources" : "بايلىق",
- "Documentation" : "قوللانما",
- "Interact" : "Interact",
- "Report a bug" : "خاتالىق مەلۇم قىلىڭ",
- "Request feature" : "تەلەپ قىلىش ئىقتىدارى",
- "Ask questions or discuss" : "سوئال سوراڭ ياكى مۇلاھىزە قىلىڭ",
- "Rate the app" : "ئەپكە باھا بېرىڭ",
- "Rate" : "باھا",
- "Changelog" : "Changelog",
- "Google Chrome for Android" : "ئاندىرويىد ئۈچۈن Google Chrome",
- "{productName} iOS app" : "{productName} iOS دېتالى",
- "{productName} Android app" : "{productName} Android ئەپ",
- "{productName} Talk for iOS" : "{productName} iOS iOS ئۈچۈن پاراڭ",
- "{productName} Talk for Android" : "{productName} Android ئاندىرويىد ئۈچۈن پاراڭ",
- "Sync client" : "ماس قەدەملىك خېرىدار",
- "This session" : "بۇ يىغىن",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "ئۈسكۈنىنىڭ ئىسمى",
- "Cancel renaming" : "ئىسىم ئۆزگەرتىشنى ئەمەلدىن قالدۇرۇڭ",
- "Save new name" : "يېڭى ئىسىمنى ساقلاڭ",
- "Marked for remote wipe" : "يىراقتىن سۈرتۈشكە بەلگە قويۇلغان",
- "Device settings" : "ئۈسكۈنىنىڭ تەڭشىكى",
- "Allow filesystem access" : "ھۆججەت سىستېمىسىنىڭ زىيارەت قىلىشىغا يول قويۇڭ",
- "Rename" : "ئات ئۆزگەرت",
- "Revoke" : "بىكار قىلىش",
- "Wipe device" : "ئۈسكۈنىنى سۈرتۈڭ",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "بۇ بەلگە ئەمەلدىن قالدۇرۇلسا ئۈسكۈنىڭىزنىڭ سۈرتۈلۈشىنىڭ ئالدىنى ئالىدۇ.",
- "Device" : "ئۈسكۈنە",
- "Last activity" : "ئاخىرقى پائالىيەت",
- "Devices & sessions" : "ئۈسكۈنىلەر ۋە ئولتۇرۇشلار",
- "Web, desktop and mobile clients currently logged in to your account." : "تور ، ئۈستەل يۈزى ۋە كۆچمە خېرىدارلار ھازىر ھېساباتىڭىزغا كىردى.",
- "Error while creating device token" : "ئۈسكۈنە بەلگىسىنى قۇرغاندا خاتالىق",
- "App name" : "ئەپ ئىسمى",
- "Create new app password" : "يېڭى ئەپ پارولى قۇر",
"App password copied!" : "ئەپ پارولى كۆچۈرۈلدى!",
"Copy app password" : "ئەپ پارولىنى كۆچۈرۈڭ",
"Login name copied!" : "كىرىش ئىسمى كۆچۈرۈلدى!",
@@ -516,194 +448,11 @@
"Be aware that encryption always increases the file size." : "شۇنىڭغا دىققەت قىلىڭكى ، شىفىرلاش ھەمىشە ھۆججەتنىڭ چوڭ-كىچىكلىكىنى ئاشۇرىدۇ.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "شىفىرلانغان ئەھۋال ئاستىدا شىفىرلاش كۇنۇپكىسىنى سانلىق مەلۇماتلىرىڭىز بىلەن بىللە زاپاسلاشنى جەزملەشتۈرۈڭ.",
"This is the final warning: Do you really want to enable encryption?" : "بۇ ئاخىرقى ئاگاھلاندۇرۇش: مەخپىيلەشتۈرۈشنى قوزغىتىشنى خالامسىز؟",
- "Failed to remove group \"{group}\"" : "«{group}» گۇرۇپپىسىنى ئۆچۈرەلمىدى",
"Please confirm the group removal" : "گۇرۇپپا ئۆچۈرۈلگەنلىكىنى جەزملەشتۈرۈڭ",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "سىز «{group}» گۇرۇپپىسىنى ئۆچۈرمەكچى بولۇۋاتىسىز. ھېساباتلار ئۆچۈرۈلمەيدۇ.",
+ "Cancel" : "ۋاز كەچ",
+ "Confirm" : "جەزملەشتۈرۈڭ",
"Submit" : "يوللاڭ",
"Rename group" : "گۇرۇپپىنىڭ نامىنى ئۆزگەرتىش",
- "Remove group" : "گۇرۇپپىنى ئۆچۈرۈڭ",
- "Current password" : "نۆۋەتتىكى ئىم",
- "New password" : "يېڭى ئىم",
- "Change password" : "ئىم ئۆزگەرت",
- "Choose your profile picture" : "ئارخىپ رەسىمىڭىزنى تاللاڭ",
- "Please select a valid png or jpg file" : "ئىناۋەتلىك png ياكى jpg ھۆججىتىنى تاللاڭ",
- "Error setting profile picture" : "ئارخىپ رەسىمىنى تەڭشەشتە خاتالىق",
- "Error cropping profile picture" : "ئارخىپ رەسىمىنى كېسىشتە خاتالىق",
- "Error saving profile picture" : "ئارخىپ رەسىمىنى ساقلاشتا خاتالىق",
- "Error removing profile picture" : "ئارخىپ رەسىمىنى ئۆچۈرۈشتە خاتالىق",
- "Your profile picture" : "ئارخىپ رەسىمىڭىز",
- "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" : "رەسىم ئەسلى ھېسابات بىلەن تەمىنلەنگەن",
- "Set as profile picture" : "ئارخىپ رەسىمى قىلىپ تەڭشەڭ",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "شۇنىڭغا دىققەت قىلىڭكى ، ئارخىپ رەسىمىڭىزنىڭ ھەممە يەردە يېڭىلىنىشى ئۈچۈن 24 سائەت ۋاقىت كېتىدۇ.",
- "Unable to update date of birth" : "تۇغۇلغان ۋاقتىنى يېڭىلاشقا ئامالسىز",
- "Enter your date of birth" : "تۇغۇلغان ۋاقتىڭىزنى كىرگۈزۈڭ",
- "You are using {s}{usage}{/s}" : "سىز {s} {usage} {/s} نى ئىشلىتىۋاتىسىز",
- "You are a member of the following groups:" : "سىز تۆۋەندىكى گۇرۇپپىلارنىڭ ئەزاسى:",
- "Your full name" : "تولۇق ئىسمىڭىز",
- "Email options" : "ئېلېكترونلۇق خەت تاللانمىلىرى",
- "Options for additional email address {index}" : "قوشۇمچە ئېلېكترونلۇق خەت ئادرېسى {index}",
- "Remove primary email" : "دەسلەپكى ئېلېكترونلۇق خەتنى ئۆچۈرۈڭ",
- "Delete email" : "ئېلېكترونلۇق خەتنى ئۆچۈرۈڭ",
- "This address is not confirmed" : "بۇ ئادرېس جەزملەشتۈرۈلمىدى",
- "Unset as primary email" : "دەسلەپكى ئېلېكترونلۇق خەت سۈپىتىدە تەڭشەڭ",
- "Set as primary email" : "دەسلەپكى ئېلېكترونلۇق خەت قىلىپ تەڭشەڭ",
- "Additional email address {index}" : "قوشۇمچە ئېلخەت ئادرېسى {index}",
- "Unable to delete primary email address" : "دەسلەپكى ئېلېكترونلۇق خەت ئادرېسىنى ئۆچۈرەلمىدى",
- "Unable to update primary email address" : "دەسلەپكى ئېلېكترونلۇق خەت ئادرېسىنى يېڭىلاشقا ئامالسىز",
- "Unable to add additional email address" : "قوشۇمچە ئېلېكترونلۇق خەت ئادرېسىنى قوشالمىدى",
- "Unable to update additional email address" : "قوشۇمچە ئېلېكترونلۇق خەت ئادرېسىنى يېڭىلاشقا ئامالسىز",
- "Unable to delete additional email address" : "قوشۇمچە ئېلېكترونلۇق خەت ئادرېسىنى ئۆچۈرەلمىدى",
- "Primary email for password reset and notifications" : "پارولنى ئەسلىگە كەلتۈرۈش ۋە ئۇقتۇرۇش ئۈچۈن دەسلەپكى ئېلېكترونلۇق خەت",
- "No email address set" : "ئېلېكترونلۇق خەت ئادرېسى يوق",
- "Your handle" : "قولىڭىز",
- "Derived from your locale ({weekDayName})" : "يەرلىكتىن كەلگەن ({weekDayName})",
- "Unable to update first day of week" : "ھەپتىنىڭ بىرىنچى كۈنى يېڭىلانمىدى",
- "Day to use as the first day of week" : "ھەپتىنىڭ بىرىنچى كۈنى سۈپىتىدە ئىشلىتىدىغان كۈن",
- "Your headline" : "ماۋزۇ",
- "Unable to update language" : "تىلنى يېڭىلاشقا ئامالسىز",
- "Languages" : "تىللار",
- "Help translate" : "تەرجىمىگە ياردەم",
- "No language set" : "تىل يوق",
- "Unable to update locale" : "يەرلىكنى يېڭىلاشقا ئامالسىز",
- "Locales" : "Locales",
- "Week starts on {firstDayOfWeek}" : "ھەپتە {firstDayOfWeek} on دا باشلىنىدۇ",
- "No locale set" : "يەرلىك ئورۇن يوق",
- "Your city" : "شەھىرىڭىز",
- "Your organisation" : "تەشكىلاتىڭىز",
- "Your phone number" : "تېلېفون نومۇرىڭىز",
- "Edit your Profile visibility" : "ئارخىپىڭىزنىڭ كۆرۈنۈشچانلىقىنى تەھرىرلەڭ",
- "Unable to update profile enabled state" : "ئارخىپ قوزغىتىلغان ھالەتنى يېڭىلاشقا ئامالسىز",
- "Enable profile" : "ئارخىپنى قوزغىتىڭ",
- "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." : "كۆرۈنۈش ياكى دائىرىنىڭ تېخىمۇ چەكلىمىگە ئۇچرايدىغان تەڭشىكى ئارخىپىڭىزغا ھۆرمەت قىلىنىدۇ. مەسىلەن ، كۆرۈنۈشچانلىقى «ھەممەيلەنگە كۆرسىتىش» قىلىپ بېكىتىلسە ، دائىرىسى «شەخسىي» قىلىپ بېكىتىلسە ، «شەخسىي» ھۆرمەت قىلىنىدۇ.",
- "Unable to update visibility of {displayId}" : "{displayId} vis نىڭ كۆرۈنۈشچانلىقىنى يېڭىلاشقا ئامالسىز",
- "she/her" : "she / her",
- "he/him" : "he / him",
- "they/them" : "ئۇلار / ئۇلار",
- "Your role" : "سىزنىڭ رولىڭىز",
- "Your X (formerly Twitter) handle" : "سىزنىڭ X (ئىلگىرىكى Twitter) تۇتقۇچى",
- "Your website" : "تور بېتىڭىز",
- "Invalid value" : "ئىناۋەتسىز قىممەت",
- "Unable to update {property}" : "يېڭىلاشقا ئامالسىز {property}",
- "No {property} set" : "No {property} set",
- "Change scope level of {property}, current scope is {scope}" : "دائىرە دەرىجىسىنى ئۆزگەرتىش {property} ، نۆۋەتتىكى دائىرە {scope}",
- "Unable to update federation scope of the primary {property}" : "دەسلەپكى {property} فېدېراتسىيە دائىرىسىنى يېڭىلاشقا ئامالسىز",
- "Unable to update federation scope of additional {property}" : "قوشۇمچە {property} فېدېراتسىيە دائىرىسىنى يېڭىلاشقا ئامالسىز",
- "Add additional email" : "قوشۇمچە ئېلېكترونلۇق خەت قوشۇڭ",
- "Add" : "قوش",
- "Create" : "قۇر",
- "Change" : "ئۆزگەرتىش",
- "Delete" : "ئۆچۈر",
- "Reshare" : "قايتا قۇرۇش",
- "Default language" : "كۆڭۈلدىكى تىل",
- "Common languages" : "ئورتاق تىل",
- "Other languages" : "باشقا تىللار",
- "Password change is disabled because the master key is disabled" : "ئاساسىي ئاچقۇچ چەكلەنگەنلىكتىن پارول ئۆزگەرتىش چەكلەنگەن",
- "No accounts" : "ھېسابات يوق",
- "Loading accounts …" : "ھېسابات يۈكلەۋاتىدۇ…",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "ھېسابات تىزىملىكى. بۇ تىزىملىك ئىقتىدار سەۋەبىدىن تولۇق كۆرسىتىلمىگەن. ھېساباتلار تىزىملىكتىن ئۆتكەندە كۆرسىتىلىدۇ.",
- "Manager" : "باشقۇرغۇچى",
- "Set line manager" : "قۇر باشقۇرغۇچىنى بەلگىلەڭ",
- "Account name will be autogenerated" : "ھېسابات ئىسمى ئاپتوماتىك بولىدۇ",
- "Account name (required)" : "ھېسابات ئىسمى (تەلەپ)",
- "New account" : "يېڭى ھېسابات",
- "Display name" : "كۆرسىتىش ئىسمى",
- "Either password or email is required" : "پارول ياكى ئېلېكترونلۇق خەت تەلەپ قىلىنىدۇ",
- "Password (required)" : "پارول (تەلەپ)",
- "Email (required)" : "ئېلخەت (تەلەپ)",
- "Email" : "تورخەت",
- "Member of the following groups (required)" : "تۆۋەندىكى گۇرۇپپىلارنىڭ ئەزاسى (تەلەپ قىلىنىدۇ)",
- "Member of the following groups" : "تۆۋەندىكى گۇرۇپپىلارنىڭ ئەزاسى",
- "Set account groups" : "ھېسابات گۇرۇپپىسىنى بەلگىلەڭ",
- "Admin of the following groups" : "تۆۋەندىكى گۇرۇپپىلارنىڭ باشقۇرغۇچىسى",
- "Set account as admin for …" : "ھېساباتنى باشقۇرغۇچى قىلىپ تەڭشەڭ…",
- "Quota" : "Quota",
- "Set account quota" : "ھېسابات نورمىسىنى بەلگىلەڭ",
- "Language" : "تىل",
- "Set default language" : "سۈكۈتتىكى تىل بەلگىلەڭ",
- "Add new account" : "يېڭى ھېسابات قوشۇڭ",
- "Total rows summary" : "ئومۇمىي قۇر خۇلاسىسى",
- "Scroll to load more rows" : "تېخىمۇ كۆپ قۇرلارنى يۈكلەڭ",
- "Password or insufficient permissions message" : "پارول ياكى يېتەرلىك ئىجازەت ئۇچۇرى",
- "Avatar" : "Avatar",
- "Account name" : "ھېسابات ئىسمى",
- "Group admin for" : "گۇرۇپپا باشقۇرغۇچى",
- "Account backend" : "ھېسابات ئارقا سۇپىسى",
- "Storage location" : "ساقلاش ئورنى",
- "Last login" : "ئاخىرقى كىرىش",
- "Account actions" : "ھېسابات ھەرىكىتى",
- "{size} used" : "{size} ئىشلىتىلگەن",
- "Delete account" : "ھېساباتنى ئۆچۈرۈڭ",
- "Disconnect all devices and delete local data" : "بارلىق ئۈسكۈنىلەرنى ئۈزۈۋېتىڭ ۋە يەرلىك سانلىق مەلۇماتلارنى ئۆچۈرۈڭ",
- "Disable account" : "ھېساباتنى چەكلەش",
- "Enable account" : "ھېساباتنى قوزغىتىش",
- "Resend welcome email" : "قارشى ئالىدىغان ئېلېكترونلۇق خەتنى ئەۋەتىڭ",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "ئۈسكۈنە يۈتۈپ كەتسە ياكى تەشكىلاتتىن چىقسا ، بۇ {userid} associated غا مۇناسىۋەتلىك بارلىق ئۈسكۈنىلەردىن Nextcloud سانلىق مەلۇماتلىرىنى يىراقتىن ئۆچۈرەلەيدۇ. ئۈسكۈنىلەر تورغا ئۇلانغاندىلا ئىشلەيدۇ.",
- "Remote wipe of devices" : "ئۈسكۈنىلەرنى يىراقتىن سۈرتۈش",
- "Wipe {userid}'s devices" : "{userid} ئۈسكۈنىلىرىنى ئۆچۈرۈڭ",
- "Wiped {userid}'s devices" : "{userid} ئۈسكۈنىلىرىنى ئۆچۈرۈۋەتتى",
- "Failed to update line manager" : "قۇر باشقۇرغۇچىنى يېڭىلاش مەغلۇب بولدى",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "{userid} account نىڭ بارلىق شەخسىي ھۆججەتلىرى ، ئەپ سانلىق مەلۇماتلىرى قاتارلىقلارنى ئۆز ئىچىگە ئالىدۇ.",
- "Account deletion" : "ھېسابات ئۆچۈرۈش",
- "Delete {userid}'s account" : "{userid} account نىڭ ھېساباتىنى ئۆچۈرۈڭ",
- "Display name was successfully changed" : "كۆرسىتىش ئىسمى مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى",
- "Password was successfully changed" : "پارول مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى",
- "Email was successfully changed" : "ئېلېكترونلۇق خەت مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى",
- "Welcome mail sent!" : "ئەۋەتىلگەن خەتنى قارشى ئالىمىز!",
- "Loading account …" : "ھېسابات يۈكلەۋاتىدۇ…",
- "Change display name" : "كۆرسىتىش نامىنى ئۆزگەرتىڭ",
- "Set new password" : "يېڭى پارول بەلگىلەڭ",
- "You do not have permissions to see the details of this account" : "بۇ ھېساباتنىڭ تەپسىلاتلىرىنى كۆرۈش ھوقۇقىڭىز يوق",
- "Set new email address" : "يېڭى ئېلېكترونلۇق خەت ئادرېسىنى بەلگىلەڭ",
- "Add account to group" : "گۇرۇپپىغا ھېسابات قوشۇڭ",
- "Set account as admin for" : "ھېساباتنى باشقۇرغۇچى قىلىپ بەلگىلەڭ",
- "Select account quota" : "ھېسابات نورمىسىنى تاللاڭ",
- "Set the language" : "تىل بەلگىلەڭ",
- "Toggle account actions menu" : "ھېسابات ھەرىكەت تىزىملىكى",
- "Done" : "Done",
- "Edit" : "تەھرىر",
- "Account management settings" : "ھېسابات باشقۇرۇش تەڭشەكلىرى",
- "Visibility" : "كۆرۈنۈشچانلىقى",
- "Show language" : "تىل كۆرسەت",
- "Show account backend" : "ھېسابات ئارقا كۆرۈنۈشىنى كۆرسەت",
- "Show storage path" : "ساقلاش يولىنى كۆرسەت",
- "Show last login" : "ئاخىرقى كىرىشنى كۆرسەت",
- "Sorting" : "تەرتىپلەش",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "سىستېما سەپلىمىسى گۇرۇپپىلارنى ئىسىم بويىچە رەتلەشنى ئىجرا قىلىدۇ. بۇمۇ ئەزا سانىنى كۆرسىتىشنى چەكلەيدۇ.",
- "Group list sorting" : "گۇرۇپپا تىزىملىكىنى رەتلەش",
- "By member count" : "ئەزا سانى بويىچە",
- "By name" : "ئىسمى بىلەن",
- "Send email" : "ئېلېكترونلۇق خەت ئەۋەتىڭ",
- "Send welcome email to new accounts" : "يېڭى ھېساباتلارغا قارشى ئېلخەت ئەۋەتىڭ",
- "Defaults" : "سۈكۈت",
- "Default quota" : "سۈكۈتتىكى نورما",
- "Select default quota" : "سۈكۈتتىكى نورمىنى تاللاڭ",
- "Server error while trying to complete WebAuthn device registration" : "WebAuthn ئۈسكۈنىسىنى تىزىملاشنى تاماملىغاندا مۇلازىمېتىر خاتالىقى",
- "Passwordless authentication requires a secure connection." : "پارولسىز دەلىللەش بىخەتەر ئۇلىنىشنى تەلەپ قىلىدۇ.",
- "Add WebAuthn device" : "WebAuthn ئۈسكۈنىسىنى قوشۇڭ",
- "Please authorize your WebAuthn device." : "WebAuthn ئۈسكۈنىڭىزگە ھوقۇق بېرىڭ.",
- "Adding your device …" : "ئۈسكۈنىڭىزنى قوشۇش…",
- "Unnamed device" : "نامسىز ئۈسكۈنە",
- "Passwordless Authentication" : "پارولسىز دەلىللەش",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "ھېساباتىڭىزنى FIDO2 ئۆلچىمىگە ئاساسەن مەخپىي نومۇرسىز دەلىللەش ئۈچۈن تەڭشەڭ.",
- "No devices configured." : "ھېچقانداق ئۈسكۈنى سەپلەنمىگەن.",
- "The following devices are configured for your account:" : "ھېساباتىڭىزغا تۆۋەندىكى ئۈسكۈنىلەر سەپلەندى:",
- "Your browser does not support WebAuthn." : "توركۆرگۈڭىز WebAuthn نى قوللىمايدۇ.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "باشقۇرغۇچى بولۇش سۈپىتىڭىز بىلەن ھەمبەھىرلىنىش ھەرىكىتىنى ياخشى تەڭشىيەلەيسىز. تېخىمۇ كۆپ ئۇچۇرغا ئېرىشىش ئۈچۈن بۇ ھۆججەتلەرنى كۆرۈڭ.",
- "You need to enable the File sharing App." : "ھۆججەت ئورتاقلىشىش دېتالىنى قوزغىتىشىڭىز كېرەك.",
- "App Store" : "ئەپ دۇكىنى",
- "Loading app list" : "ئەپ تىزىملىكى",
- "Loading categories" : "تۈرلەرنى يۈكلەۋاتىدۇ",
- "Developer documentation ↗" : "ئاچقۇچىلار ھۆججىتى ↗",
- "Version {version}, {license}-licensed" : "نەشرى {version} ، {license} ئىجازەتنامىسى",
- "Version {version}" : "نەشرى {version}",
- "All accounts" : "بارلىق ھېساباتلار",
- "Admins" : "باشقۇرغۇچى",
- "Account group: {group}" : "ھېسابات گۇرۇپپىسى: {group}",
- "Account management" : "ھېسابات باشقۇرۇش",
"Sending…" : "ئەۋەتىش…",
"Email sent" : "ئېلخەت يوللاندى",
"Location" : "ئورنى",
@@ -712,6 +461,7 @@
"Date of birth" : "تۇغۇلغان ۋاقتى",
"Full name" : "تولۇق ئىسمى",
"Additional email" : "قوشۇمچە ئېلخەت",
+ "Email" : "تورخەت",
"Fediverse (e.g. Mastodon)" : "Fediverse (مەسىلەن Mastodon)",
"Headline" : "ماۋزۇ",
"Organisation" : "تەشكىلات",
@@ -721,6 +471,7 @@
"X (formerly Twitter)" : "X (ئىلگىرىكى Twitter)",
"Website" : "تور بېكەت",
"Profile visibility" : "ئارخىپنىڭ كۆرۈنۈشچانلىقى",
+ "Language" : "تىل",
"Locale" : "Locale",
"First day of week" : "ھەپتىنىڭ بىرىنچى كۈنى",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "ھۆججەت ئورتاقلىشىش ۋە كالېندار تەكلىپنامىسىنى ئۆز ئىچىگە ئالغان يادرولۇق ئىقتىدارلار ئۈچۈن بۇ مۈلۈك تەلەپ قىلىنمىغاچقا",
@@ -737,6 +488,7 @@
"Show to everyone" : "كۆپچىلىككە كۆرسەت",
"Show to logged in accounts only" : "پەقەت ھېساباتقا كىرگەنلىكىنى كۆرسەت",
"Hide" : "يوشۇر",
+ "Update to {version}" : "{version}غا يېڭىلاش",
"{progress}% Deploying …" : "{progress}% ئورۇنلاشتۇرۇش…",
"{progress}% Initializing …" : "{progress}% باشلاش…",
"Health checking" : "سالامەتلىك تەكشۈرتۈش",
@@ -746,6 +498,7 @@
"Allow untested app" : "سىناق قىلىنمىغان ئەپكە يول قويۇڭ",
"The app will be downloaded from the App Store" : "بۇ ئەپ ئەپ دۇكىنىدىن چۈشۈرۈلىدۇ",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "بۇ ئەپ سىزنىڭ Nextcloud نەشرىڭىزگە ماس كەلمەيدۇ. داۋاملاشتۇرسىڭىز يەنىلا ئەپنى قاچىلىيالايسىز. شۇنىڭغا دىققەت قىلىڭكى ، بۇ دېتال مۆلچەردىكىدەك ئىشلىمەسلىكى مۇمكىن.",
+ "{size} used" : "{size} ئىشلىتىلگەن",
"Unknown" : "نامەلۇم",
"Never" : "ھەرگىز بولمايدۇ",
"Could not register device: Network error" : "ئۈسكۈنىنى تىزىملىيالمىدى: تور خاتالىقى",
@@ -764,8 +517,10 @@
"Could not set group sorting" : "گۇرۇپپا رەتلەشنى تەڭشىيەلمىدى",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "تورىڭىزدىن بەك كۆپ تەلەپلەر بار ئىدى. كېيىن قايتا سىناڭ ياكى باشقۇرغۇچى بىلەن ئالاقىلىشىڭ.",
"Error" : "خاتالىق",
+ "Default quota" : "سۈكۈتتىكى نورما",
"Account documentation" : "ھېسابات ھۆججىتى",
"Administration documentation" : "باشقۇرۇش ھۆججىتى",
+ "Documentation" : "قوللانما",
"Forum" : "مۇنبەر",
"Nextcloud help & privacy resources" : "Nextcloud ياردەم ۋە مەخپىيەتلىك مەنبەلىرى",
"General documentation" : "ئادەتتىكى ھۆججەتلەر",
@@ -788,6 +543,7 @@
"SMTP Password" : "SMTP پارول",
"Save" : "ساقلا",
"Test and verify email settings" : "ئېلېكترونلۇق خەت تەڭشىكىنى سىناش ۋە دەلىللەش",
+ "Send email" : "ئېلېكترونلۇق خەت ئەۋەتىڭ",
"Security & setup warnings" : "بىخەتەرلىك ۋە تەڭشەش ئاگاھلاندۇرۇشى",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "ھەممە ئىشنىڭ توغرا تەڭشەلگەنلىكىڭىزنىڭ بىخەتەرلىكى ۋە ئىقتىدارى ئۈچۈن ئىنتايىن مۇھىم. سىزگە ياردەم قىلىش ئۈچۈن بىز ئاپتوماتىك تەكشۈرۈش ئېلىپ بېرىۋاتىمىز. تېخىمۇ كۆپ ئۇچۇرغا ئۇلانغان ھۆججەتلەرنى كۆرۈڭ.",
"All checks passed." : "بارلىق تەكشۈرۈشلەر ئۆتۈپ كەتتى.",
@@ -806,48 +562,14 @@
"Use a second factor besides your password to increase security for your account." : "ھېساباتىڭىزنىڭ بىخەتەرلىكىنى ئاشۇرۇش ئۈچۈن پارولىڭىزدىن باشقا ئىككىنچى ئامىلنى ئىشلىتىڭ.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Nextcloud غا ئۇلىنىش ئۈچۈن ئۈچىنچى تەرەپ قوللىنىشچان پروگراممىلىرىنى ئىشلەتسىڭىز ، ئىككىنچى ئامىل دەلىللەشنى قوزغىتىشتىن بۇرۇن ھەر بىرسىگە ئەپ پارولى قۇرۇش ۋە تەڭشەشنى جەزملەشتۈرۈڭ.",
"Logged in account must be a subadmin" : "ھېساباتقا تىزىملاتقانلار چوقۇم تارماق باشقۇرغۇچى بولۇشى كېرەك",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "بۇ تەكشۈرۈشنىڭ ئىجرا قىلىنىشى ئۈچۈن تور مۇلازىمېتىرىڭىزنىڭ ئۆزىگە ئۇلىنالايدىغانلىقىغا كاپالەتلىك قىلىشىڭىز كېرەك. شۇڭلاشقا ئۇ چوقۇم كەم دېگەندە بىر «ئىشەنچلىك_ دائىرە» ياكى «overrite.cli.url» نى ھەل قىلالايدۇ ۋە ئۇلىيالايدۇ.",
- "Missing optional index \"%s\" in table \"%s\"." : "جەدۋەلدىكى «% s» تاللاش كۆرسەتكۈچى يوقاپ كەتتى.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "سانداندا بەزى كۆرسەتكۈچلەر كەم. چوڭ جەدۋەللەرگە كۆرسەتكۈچ قوشۇشقا بىر ئاز ۋاقىت كېتىشى مۇمكىن بولغاچقا ، ئۇلار ئاپتوماتىك قوشۇلمىدى. \"Occ db: add-missing-indices\" نى ئىجرا قىلىش ئارقىلىق ، يوقاپ كەتكەن كۆرسەتكۈچلەرنى قولدا قوشقىلى بولىدۇ. كۆرسەتكۈچلەر بۇ جەدۋەللەرگە سوئال قوشۇلغاندىن كېيىن ، ئادەتتە تېخىمۇ تېز بولىدۇ.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "بۇ تەكشۈرۈشنىڭ ئىجرا قىلىنىشى ئۈچۈن تور مۇلازىمېتىرىڭىزنىڭ ئۆزىگە ئۇلىنالايدىغانلىقىغا كاپالەتلىك قىلىشىڭىز كېرەك. شۇڭلاشقا ئۇ چوقۇم كەم دېگەندە ئۇنىڭ «ئىشەنچلىك_ دائىرە» ياكى «overrite.cli.url» دىن بىرنى ھەل قىلالايدىغان ۋە ئۇلىيالايدىغان بولۇشى كېرەك. بۇ مەغلۇبىيەت بەلكىم مۇلازىمېتىر تەرەپتىكى DNS ماسلاشماسلىق ياكى سىرتقا چىقىپ كېتىشتىن مۇداپىئەلىنىش قائىدىسىنىڭ نەتىجىسى بولۇشى مۇمكىن.",
"File locking" : "ھۆججەت قۇلۇپلاش",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "سودا ھۆججىتىنى قۇلۇپلاش چەكلەنگەن ، بۇ مۇسابىقە شارائىتىدىكى مەسىلىلەرنى كەلتۈرۈپ چىقىرىشى مۇمكىن. بۇ مەسىلىلەردىن ساقلىنىش ئۈچۈن config.php دىكى \"filelocking.enabled\" نى قوزغىتىڭ.",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "JavaScript قوللاشنى ھېچقانداق «ئىشەنچلىك_ دائىرە» ياكى «overrite.cli.url» ئارقىلىق تەكشۈرەلمىدىڭىز. بۇ بەلكىم مۇلازىمېتىر تەرەپتىكى DNS ماسلاشماسلىق ياكى سىرتقا چىقىپ كېتىشتىن مۇداپىئەلىنىش قائىدىسىنىڭ نەتىجىسى بولۇشى مۇمكىن. ئەگەر توركۆرگۈڭىز JavaScript MIME تىپى ئارقىلىق `.mjs ھۆججىتىگە مۇلازىمەت قىلسا قولدا تەكشۈرۈپ بېقىڭ.",
"The PHP memory limit is below the recommended value of %s." : "PHP ئىچكى ساقلىغۇچ چەكلىمىسى تەۋسىيە قىلىنغان% s دىن تۆۋەن.",
"for WebAuthn passwordless login" : "WebAuthn پارولسىز كىرىش ئۈچۈن",
"for WebAuthn passwordless login, and SFTP storage" : "WebAuthn پارولسىز كىرىش ۋە SFTP ساقلاش ئۈچۈن",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "سىز ھازىر PHP% s نى ئىجرا قىلىۋاتىسىز. PHP 8.0 ھازىر Nextcloud 27 دە ئەمەلدىن قالدۇرۇلدى. Nextcloud 28 كەم دېگەندە PHP 8.1 نى تەلەپ قىلىشى مۇمكىن. PHP گورۇھى تەمىنلىگەن رەسمىي قوللايدىغان PHP نەشرىنىڭ بىرىنى تېزدىن يېڭىلاڭ.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "MariaDB نەشرى \"% s\" ئىشلىتىلگەن. Nextcloud 21 ۋە ئۇنىڭدىن يۇقىرى نەشرى بۇ نەشرىنى قوللىمايدۇ ھەمدە MariaDB 10.2 ياكى ئۇنىڭدىن يۇقىرى نەشرىنى تەلەپ قىلىدۇ.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "MySQL نەشرى \"% s\" ئىشلىتىلگەن. Nextcloud 21 ۋە ئۇنىڭدىن يۇقىرى نەشرى بۇ نەشرىنى قوللىمايدۇ ھەمدە MySQL 8.0 ياكى MariaDB 10.2 ياكى ئۇنىڭدىن يۇقىرى نەشرىنى تەلەپ قىلىدۇ.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "PostgreSQL نەشرى \"% s\" ئىشلىتىلىدۇ. Nextcloud 21 ۋە ئۇنىڭدىن يۇقىرى نەشرى بۇ نەشرىنى قوللىمايدۇ ھەمدە PostgreSQL 9.6 ياكى ئۇنىڭدىن يۇقىرى نەشرىنى تەلەپ قىلىدۇ.",
- "Speech-To-Text" : "سۆزلەشتىن تېكىست",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "نۇتۇقتىن تېكىستنى ئوخشىمىغان ئەپلەر ئارقىلىق يولغا قويغىلى بولىدۇ. بۇ يەردە قايسى ئەپنى ئىشلىتىش كېرەكلىكىنى بەلگىلىيەلەيسىز.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "ھازىر قاچىلانغان ئەپلەرنىڭ ھېچقايسىسى Speech-To-Text ئىقتىدارىنى تەمىنلىمەيدۇ",
- "None of your currently installed apps provide Text processing functionality" : "ھازىر قاچىلانغان ئەپلەرنىڭ ھېچقايسىسى تېكىست بىر تەرەپ قىلىش ئىقتىدارى بىلەن تەمىنلىمەيدۇ",
- "Set default expiration date for shares" : "پاي چېكىنىڭ سۈكۈتتىكى مۇددىتىنى بەلگىلەڭ",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "ئورتاقلىشىش دىئالوگىدا ئىشلەتكۈچى نامىنىڭ ئۆزلۈكىدىن تاماملىنىشىغا يول قويۇڭ ۋە سىستېما ئادرېس دەپتىرىنى زىيارەت قىلالايسىز",
- "Your biography" : "تەرجىمىھالىڭىز",
- "You are using <strong>{usage}</strong>" : "سىز <strong> {usage} </strong> نى ئىشلىتىۋاتىسىز",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "سىز <strong> {usage} </strong> نىڭ <strong> {totalSpace} </strong> نى ئىشلىتىۋاتىسىز (<strong> {usageRelative}% </strong>)",
- "Set user manager" : "ئىشلەتكۈچى باشقۇرغۇچىنى بەلگىلەڭ",
- "Username will be autogenerated" : "ئىشلەتكۈچى ئىسمى ئۆزلۈكىدىن ھاسىل بولىدۇ",
- "Username (required)" : "ئىشلەتكۈچى ئىسمى (تەلەپ قىلىنغان)",
- "New user" : "يېڭى ئىشلەتكۈچى",
- "Groups (required)" : "گۇرۇپپىلار (تەلەپ قىلىنغان)",
- "Set user groups" : "ئىشلەتكۈچى گۇرۇپپىسىنى بەلگىلەڭ",
- "Administered groups" : "باشقۇرۇلىدىغان گۇرۇپپىلار",
- "Set user as admin for …" : "ئىشلەتكۈچىنى باشقۇرغۇچى قىلىپ تەڭشەڭ…",
- "Set user quota" : "ئىشلەتكۈچى نورمىسىنى بەلگىلەڭ",
- "Add new user" : "يېڭى ئىشلەتكۈچى قوشۇڭ",
- "Loading users …" : "ئىشلەتكۈچىلەر يۈكلەۋاتىدۇ…",
- "Username" : "ئىشلەتكۈچى ئاتى",
- "User backend" : "ئىشلەتكۈچى ئارقا سەھنىسى",
- "User actions" : "ئىشلەتكۈچى ھەرىكىتى",
- "Add user to group" : "گۇرۇپپىغا ئىشلەتكۈچى قوشۇڭ",
- "Server error while trying to add WebAuthn device" : "WebAuthn ئۈسكۈنىسىنى قوشماقچى بولغاندا مۇلازىمېتىر خاتالىقى",
- "Name your device" : "ئۈسكۈنىڭىزگە ئىسىم قويۇڭ",
- "Active accounts" : "ئاكتىپ ھېسابات",
- "Follow us on Twitter" : "Twitter دا بىزگە ئەگىشىڭ",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "بۇ تەكشۈرۈشنىڭ ئىجرا قىلىنىشى ئۈچۈن تور مۇلازىمېتىرىڭىزنىڭ ئۆزىگە ئۇلىنالايدىغانلىقىغا كاپالەتلىك قىلىشىڭىز كېرەك. شۇڭلاشقا ئۇ چوقۇم كەم دېگەندە ئۇنىڭ «ئىشەنچلىك_ دائىرە» ياكى «overrite.cli.url» دىن بىرنى ھەل قىلالايدىغان ۋە ئۇلىيالايدىغان بولۇشى كېرەك. بۇ مەغلۇبىيەت بەلكىم مۇلازىمېتىر تەرەپتىكى DNS ماسلاشماسلىق ياكى سىرتقا چىقىپ كېتىشتىن مۇداپىئەلىنىش قائىدىسىنىڭ نەتىجىسى بولۇشى مۇمكىن.",
- "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL نەشرى \"% s\" بايقالدى. PostgreSQL> = 12 ۋە <= 16 Nextcloud نىڭ بۇ نەشرى بىلەن ئەڭ ياخشى ئىقتىدار ، مۇقىملىق ۋە ئىقتىدار ئۈچۈن تەۋسىيە قىلىنىدۇ."
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "-%1 $ s` HTTP ماۋزۇسىدا%2 $ s` يوق. بۇ تەڭشەكنى ماس ھالدا تەڭشەش تەۋسىيە قىلىنغانلىقتىن ، بۇ يوشۇرۇن بىخەتەرلىك ياكى مەخپىيەتلىك خەۋىپى.",
+ "PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "PostgreSQL نەشرى \"% s\" بايقالدى. PostgreSQL> = 12 ۋە <= 16 Nextcloud نىڭ بۇ نەشرى بىلەن ئەڭ ياخشى ئىقتىدار ، مۇقىملىق ۋە ئىقتىدار ئۈچۈن تەۋسىيە قىلىنىدۇ.",
+ "Set default expiration date for shares" : "پاي چېكىنىڭ سۈكۈتتىكى مۇددىتىنى بەلگىلەڭ"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/settings/l10n/uk.js b/apps/settings/l10n/uk.js
index 6030bd4fc4e..8c451ba2d0d 100644
--- a/apps/settings/l10n/uk.js
+++ b/apps/settings/l10n/uk.js
@@ -367,71 +367,6 @@ OC.L10N.register(
"Could not load section content from app store." : "Не вдалося отримати розділ вмісту із крамнички.",
"Loading" : "Завантаження",
"Fetching the latest news…" : "Отримання останніх оновлень...",
- "Carousel" : "Карусель",
- "Previous slide" : "Попередній слайд",
- "Next slide" : "Наступний слайд",
- "Choose slide to display" : "Виберіть слайд для показу",
- "{index} of {total}" : "{index} із {total}",
- "Daemon" : "Демон",
- "Type" : "Тип",
- "Display Name" : "Назва для показу",
- "GPUs support" : "Підтримка GPU",
- "Compute device" : "Пристрій для обчислення",
- "Learn more" : "Дізнатися більше",
- "Read-only" : "Тільки для читання",
- "Toggle read-only mode" : "Перемкнути режим тільки для читання",
- "Confirm" : "Підтвердити",
- "Cancel" : "Скасувати",
- "Description" : "Опис",
- "View in store" : "Переглянути у крамниці застосунків",
- "Visit website" : "Перейти на вебсайт",
- "Usage documentation" : "Документація користувача",
- "Admin documentation" : "Документація адміністратора",
- "Developer documentation" : "Документація для розробника",
- "Details" : "Деталі",
- "All" : "Всі",
- "Limit app usage to groups" : "Обмежити використання застосунку певними групами",
- "No results" : "Немає результатів",
- "Update to {version}" : "Оновити до {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Цей застосунок не має обмежень щодо мінімальної версії Nextcloud. В майбутньому це може викликати певні помилки.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Для цього застосунку не визначено найвищу версію Nextcloud. Це може викликати помилку в майбутньому.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Цей застосунок не буде встановлено, оскільки такі залежності неможливо виконати:",
- "Latest updated" : "Останнє оновлення",
- "Author" : "Автор",
- "Categories" : "Категорії",
- "Resources" : "Ресурси",
- "Documentation" : "Документація",
- "Interact" : "Взаємодія",
- "Report a bug" : "Повідомити про помилку",
- "Request feature" : "Запит на удосконалення",
- "Ask questions or discuss" : "Ставте запитання або обговорюйте",
- "Rate the app" : "Оцініть додаток",
- "Rate" : "Рейтинг",
- "Changelog" : "Зміни",
- "Google Chrome for Android" : "Google Chrome для Android",
- "{productName} iOS app" : "Застосунок для iOS {productName}",
- "{productName} Android app" : "Застосунок для Android {productName}",
- "{productName} Talk for iOS" : "{productName} Talk для iOS",
- "{productName} Talk for Android" : "{productName} Talk для Android",
- "Sync client" : "Синхронізувати клієнт",
- "This session" : "Цей сеанс",
- "Device name" : "Назва пристрою",
- "Cancel renaming" : "Відхилити перейменування",
- "Save new name" : "Зберегти нове ім'я",
- "Marked for remote wipe" : "Позначено для віддаленого стирання",
- "Device settings" : "Налаштування пристрою",
- "Allow filesystem access" : "Дозволити доступ до файлової системи",
- "Rename" : "Перейменувати",
- "Revoke" : "Відкликати",
- "Wipe device" : "Стерти дані на пристрої",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Відкликання цього токена може запобігти вилучення даних з вашого пристрою, якщо очищення ще не розпочалося.",
- "Device" : "Пристрій",
- "Last activity" : "Остання активність",
- "Devices & sessions" : "Пристрої та сеанси",
- "Web, desktop and mobile clients currently logged in to your account." : "Вебдоступ, стільничі клієнти та мобільні застосунки, які було авторизовано з вашим обліковим записом.",
- "Error while creating device token" : "Помилка під час створення токена пристрою",
- "App name" : "Зазначте назву застосунку",
- "Create new app password" : "Створіть новий пароль застосунку",
"App password copied!" : "Пароль на застосунок скопійовано!",
"Copy app password" : "Копіювати пароль на застосунок",
"Login name copied!" : "Лоґін скопійовано!",
@@ -457,6 +392,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "Не вдалося оновити стандартні налаштування профілю",
"Profile" : "Профіль",
"Enable or disable profile by default for new accounts." : "Увімкнути або вимкнути стандартний профіль для нових акаунтів.",
+ "Password confirmation is required" : "Необхідне підтвердження паролем",
"Failed to save setting" : "Не вдалося зберегти налаштування",
"Unable to update server side encryption config" : "Не вдалося оновити конфігурацію шифрування на стороні сервера",
"Server-side encryption" : "Шифрування на сервері",
@@ -473,189 +409,12 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Майте на увазі, що шифрування завжди збільшує розмір файлів.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Завжди корисно регулярно створювати резервні копії ваших даних, у разі шифрування обов’язково зробіть резервну копію ключів шифрування разом із вашими даними.",
"This is the final warning: Do you really want to enable encryption?" : "Це останнє попередження: Ви справді хочете ввімкнути шифрування?",
- "Failed to remove group \"{group}\"" : "Не вдалося вилучити групу \"{group}\"",
"Please confirm the group removal" : "Підтвердіть вилучення групи",
+ "Cancel" : "Скасувати",
+ "Confirm" : "Підтвердити",
"Submit" : "Продовжити",
"Rename group" : "Перейменувати групу",
- "Remove group" : "Вилучити групу",
- "Current password" : "Поточний пароль",
- "New password" : "Новий пароль",
- "Change password" : "Змінити пароль",
- "Choose your profile picture" : "Виберіть зображення профілю",
- "Please select a valid png or jpg file" : "Виберіть дійсний файл png або jpg",
- "Error setting profile picture" : "Помилка налаштування зображення профілю",
- "Error cropping profile picture" : "Помилка кадрування зображення профілю",
- "Error saving profile picture" : "Помилка збереження зображення профілю",
- "Error removing profile picture" : "Помилка вилучення зображення профілю",
- "Your profile picture" : "Ваше зображення профілю",
- "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" : "Картинка надана оригінальним обліковим записом",
- "Set as profile picture" : "Установити як зображення профілю",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Зауважте, що повсюдне оновлення зображення профілю може зайняти до 24 годин.",
- "Unable to update date of birth" : "Не вдалося оновити дату народження",
- "Enter your date of birth" : "Зазначте дату вашого народження",
- "You are a member of the following groups:" : "Ви є учасником груп:",
- "Your full name" : "Ваше повне ім'я",
- "Email options" : "Параметри електронної пошти",
- "Options for additional email address {index}" : "Параметри додаткової ел.адреси {index}",
- "Remove primary email" : "Вилучити основну електронну адресу",
- "Delete email" : "Вилучити",
- "This address is not confirmed" : "Це непідтверджена адреса",
- "Unset as primary email" : "Скасувати як основну електронну адресу",
- "Set as primary email" : "Зробити основною",
- "Additional email address {index}" : "Додаткова електронна адреса {index}",
- "Unable to delete primary email address" : "Не вдалося вилучити основну електронну адресу",
- "Unable to update primary email address" : "Не вдалося оновити основну електронну адресу",
- "Unable to add additional email address" : "Не вдалося додати додаткову електронну адресу",
- "Unable to update additional email address" : "Не вдалося оновити додаткову електронну адресу",
- "Unable to delete additional email address" : "Не вдалося вилучити додаткову електронну адресу",
- "Primary email for password reset and notifications" : "Основна адреса ел.пошти для надсилання пароля та сповіщень",
- "No email address set" : "E-mail не вказано",
- "Your handle" : "Ви керуєте",
- "Derived from your locale ({weekDayName})" : "{weekDayName} (визначено автоматично)",
- "Unable to update first day of week" : "Не вдалося оновити значення першого дня тижня",
- "Day to use as the first day of week" : "Тиждень починається з",
- "Your headline" : "Ваш заголовок",
- "Unable to update language" : "Не вдалося оновити мову",
- "Languages" : "Мови",
- "Help translate" : "Допомогти з перекладом",
- "No language set" : "Мову не визначено",
- "Unable to update locale" : "Не вдалося оновити мову",
- "Locales" : "Регіональні налаштування",
- "Week starts on {firstDayOfWeek}" : "Тиждень починається у {firstDayOfWeek}",
- "No locale set" : "Локаль не встановлено",
- "Your city" : "Ваше місто",
- "Your organisation" : "Ваша організація",
- "Your phone number" : "Ваш номер телефону",
- "Edit your Profile visibility" : "Встановіть видимість профілю",
- "Unable to update profile enabled state" : "Неможливо оновити стан профілю",
- "Enable profile" : "Увімкнути профіль",
- "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." : "Для вашого профілю можна встановити певні обмеження з показу інформації про вас. Наприклад, якщо встановлено значення \"Показувати всім\", а для певного значення \"Приватне\", значення \"Приватне\" буде мати вищий пріоритет.",
- "Unable to update visibility of {displayId}" : "Не вдалося оновити видимість {displayId}",
- "she/her" : "вона/їй",
- "he/him" : "він/йому",
- "they/them" : "вони/їм",
- "Your role" : "Ваша роль",
- "Your X (formerly Twitter) handle" : "Ваш ідентифікатор в X (раніше відомій як Twitter)",
- "Your website" : "Ваш сайт",
- "Invalid value" : "Помилкове значення",
- "Unable to update {property}" : "Не вдалося оновити {property}",
- "No {property} set" : "{property} не встановлено",
- "Change scope level of {property}, current scope is {scope}" : "Змінити рівень дії {property}, поточна область – {scope}",
- "Unable to update federation scope of the primary {property}" : "Не вдалося оновити область об'єднаної хмари основного {property}",
- "Unable to update federation scope of additional {property}" : "Не вдається оновити область об'єднаної хмари додаткового {property}",
- "Add additional email" : "Додайте додаткову електронну адресу",
- "Add" : "Додати",
- "Create" : "Створити",
- "Change" : "Змінити",
- "Delete" : "Вилучити",
- "Reshare" : "Надати у спільний доступ",
- "Default language" : "Типова мова",
- "Common languages" : "Основні мови",
- "Other languages" : "Інші мови",
- "Password change is disabled because the master key is disabled" : "Зміну пароля вимкнено, оскільки майстер-ключ відключений",
- "No accounts" : "Немає облікових записів",
- "Loading accounts …" : "Завантаження облікових записів ...",
- "Manager" : "Менеджер",
- "Set line manager" : "Встановити безпосереднього начальника",
- "Account name will be autogenerated" : "Ім'я користувача буде автоматично створено",
- "Account name (required)" : "Ім'я користувача (обов'язково)",
- "New account" : "Новий обліковий запис",
- "Display name" : "Ім'я для показу",
- "Either password or email is required" : "Потрібно зазначити або пароль, або адресу ел.пошти",
- "Password (required)" : "Пароль (обов'язково)",
- "Email (required)" : "Ел. пошта (обов'язково)",
- "Email" : "E-mail",
- "Member of the following groups" : "Учасник(-ця) таких груп",
- "Set account groups" : "Додати користувача до груп",
- "Admin of the following groups" : "Адміністратор таких груп",
- "Set account as admin for …" : "Встановити адміністратором для ...",
- "Quota" : "Квота",
- "Set account quota" : "Встановити квоту для користувача",
- "Language" : "Мова",
- "Set default language" : "Встановити типову мову",
- "Add new account" : "Створити нового користувача",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} обліковий запис …","{userCount} облікові записи …","{userCount} облікових записів …","{userCount} облікових записів …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} обліковий запис","{userCount} облікові записи","{userCount} облікових записів","{userCount} обліковий запис"],
- "Total rows summary" : "Загалом рядків",
- "Scroll to load more rows" : "Прокрутіть для завантаження наступних записів",
- "Password or insufficient permissions message" : "Повідомлення про потребу ввести пароль або недостатній рівень доступу",
- "Avatar" : "Світлина",
- "Account name" : "Назва облікового запису",
- "Group admin for" : "Адміністратор групи",
- "Storage location" : "Місце розташування сховища",
- "First login" : "Перший вхід",
- "Last login" : "Останній вхід",
- "Account actions" : "Дії з обліковим записом",
- "{size} used" : "{size} використано",
- "Delete account" : "Вилучити обліковий запис",
- "Disconnect all devices and delete local data" : "Від'єднайте всі пристрої та видаліть локальні дані",
- "Disable account" : "Вимкнути обліковий запис",
- "Enable account" : "Увімкнути обліковий запис",
- "Resend welcome email" : "Надіслати запрошення ще раз",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "У разі втрати пристрою або виходу з організації це може віддалено стерти дані Nextcloud з усіх пристроїв, пов’язаних з {userid}. Працює, лише якщо пристрої підключено до Інтернету.",
- "Remote wipe of devices" : "Віддалене стирання даних на пристрої",
- "Wipe {userid}'s devices" : "Стерти пристрої {userid}",
- "Wiped {userid}'s devices" : "Стерті пристрої {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Повністю вилучає обліковий запис {userid} включно з особистими файлами, даними застосунків тощо.",
- "Account deletion" : "Вилучення облікового запису",
- "Delete {userid}'s account" : "Вилучити обліковий запис {userid}",
- "Display name was successfully changed" : "Ім'я для показу успішно змінено",
- "Password was successfully changed" : "Пароль успішно змінено",
- "Email was successfully changed" : "Адресу електронної пошти успішно змінено",
- "Welcome mail sent!" : "Запрошення надіслано!",
- "Loading account …" : "Завантаження облікового запису ...",
- "Change display name" : "Зміни ім'я для показу",
- "Set new password" : "Встановіть новий пароль",
- "You do not have permissions to see the details of this account" : "Відсутні повноваження на перегляд інформації про цей обліковий запис",
- "Set new email address" : "Встановіть нову адресу електронної пошти",
- "Add account to group" : "Додати обліковий запис до групи",
- "Set account as admin for" : "Встановити адміністратором для",
- "Select account quota" : "Встановити квоту",
- "Set the language" : "Встановити мову",
- "Toggle account actions menu" : "Переключити меню дій облікового запису",
- "Done" : "Готово",
- "Edit" : "Редагувати",
- "Account management settings" : "Налаштування",
- "Visibility" : "Видимість",
- "Show language" : "Показувати мову",
- "Show account backend" : "Показувати бекенд користувача",
- "Show storage path" : "Показувати шлях до сховища даних",
- "Show last login" : "Показувати останній вхід",
- "Sorting" : "Впорядкування",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Системні наталаштування визначають впорядкування груп за іменем. Ці налаштування також вимикають лічильник учасників.",
- "Group list sorting" : "Впорядкування списку груп",
- "By member count" : "За лічильником учасників",
- "By name" : "Зі ім'ям",
- "Send email" : "Запрошення",
- "Send welcome email to new accounts" : "Надсилати вітальний лист щойно створеним обліковим записам",
- "Defaults" : "Стандартні",
- "Default quota" : "Типова квота",
- "Select default quota" : "Встановити типову квоту",
- "Server error while trying to complete WebAuthn device registration" : "Помилка сервера під час спроби завершити реєстрацію пристрою WebAuthn",
- "Passwordless authentication requires a secure connection." : "Авторизація без пароля вимагає безпечного з'єднання.",
- "Add WebAuthn device" : "Додайте пристрій WebAuthn",
- "Please authorize your WebAuthn device." : "Авторизуйте свій пристрій WebAuthn.",
- "Adding your device …" : "Додавання вашого пристрою...",
- "Unnamed device" : "Неназваний пристрій",
- "Passwordless Authentication" : "Авторизація без пароля",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Налаштуйте ваш обліковий запис для авторизації без пароля згідно зі стандартами FIDO2.",
- "No devices configured." : "Жодного пристрою не налаштовано.",
- "The following devices are configured for your account:" : "Для вашого облікового запису налаштовано такі пристрої:",
- "Your browser does not support WebAuthn." : "Ваш браузер не підтримує WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Як адміністратор ви можете точно налаштувати поведінку спільного використання. Будь ласка, перегляньте документацію для отримання додаткової інформації.",
- "You need to enable the File sharing App." : "Потрібно увімкнути застосунок для обміну файлами.",
- "Loading app list" : "Завантаження переліку застосунків",
- "Loading categories" : "Завантаження категорій",
- "Developer documentation ↗" : "Документація розробника ↗",
- "Version {version}" : "Версія {version}",
- "All accounts" : "Всі облікові записи",
- "Admins" : "Адміністратори",
- "Account group: {group}" : "Група облікового запису: {group}",
- "Account management" : "Керування обліковими записами",
+ "Delete group" : "Вилучити групу",
"Sending…" : "Надсилання...",
"Email sent" : "Лист надіслано",
"Location" : "Місце розташування",
@@ -664,6 +423,7 @@ OC.L10N.register(
"Date of birth" : "Дата народження",
"Full name" : "Повне ім'я",
"Additional email" : "Додаткова електронна адреса",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (напр., Mastodon)",
"Headline" : "Заголовок",
"Organisation" : "Організація",
@@ -673,6 +433,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X (раніше відома як Twitter)",
"Website" : "Вебсайт",
"Profile visibility" : "Видимість профілю",
+ "Language" : "Мова",
"Locale" : "Локаль",
"First day of week" : "Тиждень починається",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Недоступно, оскільки ця властивість необхідна для основних функцій, включно спільний доступ до файлів та запрошення в календарі",
@@ -689,12 +450,14 @@ OC.L10N.register(
"Show to everyone" : "Показувати всім",
"Show to logged in accounts only" : "Показувати тільки для авторизованих",
"Hide" : "Сховати",
+ "Update to {version}" : "Оновити до {version}",
"Health checking" : "Перевірка доступности",
"Download and enable" : "Звантажити та увімкнути",
"Disable" : "Вимкнути",
"Allow untested app" : "Дозволити непротестовані застосунки",
"The app will be downloaded from the App Store" : "Застосунок буде звантажено з крамниці застосунків",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Відсутня інформація щодо підтримки цього застосунку вашою версією Nextcloud. Ви зможете встановити цей застосунок, проте він може працювати не так, як ви очікуєте.",
+ "{size} used" : "{size} використано",
"Unknown" : "Невідомо",
"Never" : "Ніколи",
"Could not register device: Network error" : "Не вдалося зареєструвати пристрій: помилка мережі",
@@ -711,8 +474,10 @@ OC.L10N.register(
"Error while updating device token scope" : "Помилка під час оновлення області токена пристрою",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Забагато запитів із вашої мережі. Повторіть спробу пізніше або зверніться до адміністратора, якщо це помилка.",
"Error" : "Помилка",
+ "Default quota" : "Типова квота",
"Account documentation" : "Документація для користувача",
"Administration documentation" : "Документація для адміністратора",
+ "Documentation" : "Документація",
"Forum" : "Форум",
"Nextcloud help & privacy resources" : "Допомога із Nextcloud та ресурси, пов'язані з конфіденційністю",
"General documentation" : "Загальна документація",
@@ -734,6 +499,7 @@ OC.L10N.register(
"SMTP Password" : "Пароль SMTP",
"Save" : "Зберегти",
"Test and verify email settings" : "Перевірити налаштування електронної пошти",
+ "Send email" : "Запрошення",
"Security & setup warnings" : "Перевірка налаштувань та захисту системи",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Для безпеки та продуктивності вашого сервера важливо, щоб все було налаштовано правильно. Щоб допомогти вам, ми робимо деякі автоматичні перевірки. Будь ласка, перегляньте пов'язану документацію для отримання додаткової інформації.",
"All checks passed." : "Всі перевірки виконано.",
@@ -753,47 +519,12 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "Використовуйте додатковий фактор на додаток до пароля, це підвищить безпеку вашого облікового запису.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Якщо ви використовуєте застосунки сторонніх розробників, які з'єднуються з хмарою Nextcloud, переконайтеся, що ви створили та налаштували паролі на кожен окремий застосунок, перш ніж вмикати двофакторну авторизацію.",
"Logged in account must be a subadmin" : "Користувач, який увійшов, має бути субадміністратором",
- "Missing optional index \"%s\" in table \"%s\"." : "Відсутній необов'язковий індекс \"%s\" у таблиці \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "У базі даних відсутні деякі індекси. Через те, що додавання індексів у великі таблиці могло зайняти деякий час, їх не було створено автоматично. Для створення індексів вручну, будь ласка, виконайте команду \"occ db:add-missing-indices\". Після додавання індексів запити до цих таблиць зазвичай виконуються набагато швидше.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Щоби дозволити запуск цієї перевірки, потрібно пересвідчитися, що ваш вебсервер може з'єднуватися з самим собою, що передбачає можливість резолвити та з'єднуватися з одним з `trusted_domains` або `overwrite.cli.url`. Неможливість цього може бути результатом незбігу DNS на стороні сервера або встановленими правилами брандмауера.",
"File locking" : "Блокування файлів",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Транзакційне блокування файлів вимкнено. Це може призвести до потенційних помилок під час одночасної роботи з файлами. Увімкніть параметр \"filelocking.enabled\" у конфігураційному файлі config.php, щоби уникнути цих помилок. ",
"The PHP memory limit is below the recommended value of %s." : "Обмеження пам'яті PHP нижче рекомендованого значення %s.",
"for WebAuthn passwordless login" : "для безпарольного входу за допомогою WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "для безпарольного входу за допомогою WebAuthn та сховище SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "У вас встановлено PHP версії %s. Починаючи з версії Nextcloud 27, PHP 8.0 вже вважається застарілим. Версія Nextcloud 28 може вимагати версію PHP 8.1 та вище. Просимо якнайшвидше оновити версію PHP від PHP Group до офіційно підтримуваної.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Використовується версія MariaDB \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують MariaDB 10.2 або вище.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Використовується версія MySQL \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують MySQL 8.0 або MariaDB 10.2 або вище.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Використовується версія PostgreSQL \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують PostgreSQL 9.6 або вище.",
- "Speech-To-Text" : "Голос-у-текст",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Перетворення голосу у текст може здійснюватися за допомогою декількох застосунків. Тут можна визначити, який саме застосунків потрібно використати.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Жодний із встановлених застосунків не надає функцій перетворення голосу у текст.",
- "None of your currently installed apps provide Text processing functionality" : "Жодний із встановлених застосунків не надає функцій обробки тексту.",
- "Set default expiration date for shares" : "Встановити типовий термін дії для спільних ресурсів",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Дозволити автозаповнення імени користувача в діалоговому вікні спільного доступу, дозволити доступ до системної адресної книги",
- "Your biography" : "Коротко про себе",
- "You are using <strong>{usage}</strong>" : "Ви використовуєте <strong>{usage}",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Ви використовуєте <strong>{usage}</strong> із <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Встановити менеджера користувача",
- "Username will be autogenerated" : "Ім'я користувача буде автоматично створено",
- "Username (required)" : "Ім'я користувача (обов'язково)",
- "New user" : "Новий користувач",
- "Groups (required)" : "Групи (обов'язково)",
- "Set user groups" : "Створити групи користувачів",
- "Administered groups" : "Адміністровані групи",
- "Set user as admin for …" : "Встановити користувача адміністратором для ...",
- "Set user quota" : "Встановити квоту для користувача",
- "Add new user" : "Додати нового користувача",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} користувач …","{userCount} користувача …","{userCount} користувачів …","{userCount} користувачів …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} користувач","{userCount} користувача","{userCount} користувачів","{userCount} користувачів"],
- "Loading users …" : "Завантаження користувачів ...",
- "Username" : "Ім'я користувача",
- "User backend" : "Сервер користувача",
- "User actions" : "Дії користувачів",
- "Add user to group" : "Додати користувача до групи",
- "Server error while trying to add WebAuthn device" : "Помилка сервера під час спроби додати пристрій WebAuthn",
- "Name your device" : "Дайте назву вашому пристрою",
- "Active accounts" : "Активні облікові записи",
- "Follow us on Twitter" : "Слідкуйте за нами в Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Щоби дозволити запуск цієї перевірки, потрібно пересвідчитися, що ваш вебсервер може з'єднуватися з самим собою, що передбачає можливість резолвити та з'єднуватися з одним з `trusted_domains` або `overwrite.cli.url`. Неможливість цього може бути результатом незбігу DNS на стороні сервера або встановленими правилами брандмауера."
+ "Set default expiration date for shares" : "Встановити типовий термін дії для спільних ресурсів"
},
"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/settings/l10n/uk.json b/apps/settings/l10n/uk.json
index b7725f9489f..e355b78022c 100644
--- a/apps/settings/l10n/uk.json
+++ b/apps/settings/l10n/uk.json
@@ -365,71 +365,6 @@
"Could not load section content from app store." : "Не вдалося отримати розділ вмісту із крамнички.",
"Loading" : "Завантаження",
"Fetching the latest news…" : "Отримання останніх оновлень...",
- "Carousel" : "Карусель",
- "Previous slide" : "Попередній слайд",
- "Next slide" : "Наступний слайд",
- "Choose slide to display" : "Виберіть слайд для показу",
- "{index} of {total}" : "{index} із {total}",
- "Daemon" : "Демон",
- "Type" : "Тип",
- "Display Name" : "Назва для показу",
- "GPUs support" : "Підтримка GPU",
- "Compute device" : "Пристрій для обчислення",
- "Learn more" : "Дізнатися більше",
- "Read-only" : "Тільки для читання",
- "Toggle read-only mode" : "Перемкнути режим тільки для читання",
- "Confirm" : "Підтвердити",
- "Cancel" : "Скасувати",
- "Description" : "Опис",
- "View in store" : "Переглянути у крамниці застосунків",
- "Visit website" : "Перейти на вебсайт",
- "Usage documentation" : "Документація користувача",
- "Admin documentation" : "Документація адміністратора",
- "Developer documentation" : "Документація для розробника",
- "Details" : "Деталі",
- "All" : "Всі",
- "Limit app usage to groups" : "Обмежити використання застосунку певними групами",
- "No results" : "Немає результатів",
- "Update to {version}" : "Оновити до {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Цей застосунок не має обмежень щодо мінімальної версії Nextcloud. В майбутньому це може викликати певні помилки.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Для цього застосунку не визначено найвищу версію Nextcloud. Це може викликати помилку в майбутньому.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Цей застосунок не буде встановлено, оскільки такі залежності неможливо виконати:",
- "Latest updated" : "Останнє оновлення",
- "Author" : "Автор",
- "Categories" : "Категорії",
- "Resources" : "Ресурси",
- "Documentation" : "Документація",
- "Interact" : "Взаємодія",
- "Report a bug" : "Повідомити про помилку",
- "Request feature" : "Запит на удосконалення",
- "Ask questions or discuss" : "Ставте запитання або обговорюйте",
- "Rate the app" : "Оцініть додаток",
- "Rate" : "Рейтинг",
- "Changelog" : "Зміни",
- "Google Chrome for Android" : "Google Chrome для Android",
- "{productName} iOS app" : "Застосунок для iOS {productName}",
- "{productName} Android app" : "Застосунок для Android {productName}",
- "{productName} Talk for iOS" : "{productName} Talk для iOS",
- "{productName} Talk for Android" : "{productName} Talk для Android",
- "Sync client" : "Синхронізувати клієнт",
- "This session" : "Цей сеанс",
- "Device name" : "Назва пристрою",
- "Cancel renaming" : "Відхилити перейменування",
- "Save new name" : "Зберегти нове ім'я",
- "Marked for remote wipe" : "Позначено для віддаленого стирання",
- "Device settings" : "Налаштування пристрою",
- "Allow filesystem access" : "Дозволити доступ до файлової системи",
- "Rename" : "Перейменувати",
- "Revoke" : "Відкликати",
- "Wipe device" : "Стерти дані на пристрої",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Відкликання цього токена може запобігти вилучення даних з вашого пристрою, якщо очищення ще не розпочалося.",
- "Device" : "Пристрій",
- "Last activity" : "Остання активність",
- "Devices & sessions" : "Пристрої та сеанси",
- "Web, desktop and mobile clients currently logged in to your account." : "Вебдоступ, стільничі клієнти та мобільні застосунки, які було авторизовано з вашим обліковим записом.",
- "Error while creating device token" : "Помилка під час створення токена пристрою",
- "App name" : "Зазначте назву застосунку",
- "Create new app password" : "Створіть новий пароль застосунку",
"App password copied!" : "Пароль на застосунок скопійовано!",
"Copy app password" : "Копіювати пароль на застосунок",
"Login name copied!" : "Лоґін скопійовано!",
@@ -455,6 +390,7 @@
"Unable to update profile default setting" : "Не вдалося оновити стандартні налаштування профілю",
"Profile" : "Профіль",
"Enable or disable profile by default for new accounts." : "Увімкнути або вимкнути стандартний профіль для нових акаунтів.",
+ "Password confirmation is required" : "Необхідне підтвердження паролем",
"Failed to save setting" : "Не вдалося зберегти налаштування",
"Unable to update server side encryption config" : "Не вдалося оновити конфігурацію шифрування на стороні сервера",
"Server-side encryption" : "Шифрування на сервері",
@@ -471,189 +407,12 @@
"Be aware that encryption always increases the file size." : "Майте на увазі, що шифрування завжди збільшує розмір файлів.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Завжди корисно регулярно створювати резервні копії ваших даних, у разі шифрування обов’язково зробіть резервну копію ключів шифрування разом із вашими даними.",
"This is the final warning: Do you really want to enable encryption?" : "Це останнє попередження: Ви справді хочете ввімкнути шифрування?",
- "Failed to remove group \"{group}\"" : "Не вдалося вилучити групу \"{group}\"",
"Please confirm the group removal" : "Підтвердіть вилучення групи",
+ "Cancel" : "Скасувати",
+ "Confirm" : "Підтвердити",
"Submit" : "Продовжити",
"Rename group" : "Перейменувати групу",
- "Remove group" : "Вилучити групу",
- "Current password" : "Поточний пароль",
- "New password" : "Новий пароль",
- "Change password" : "Змінити пароль",
- "Choose your profile picture" : "Виберіть зображення профілю",
- "Please select a valid png or jpg file" : "Виберіть дійсний файл png або jpg",
- "Error setting profile picture" : "Помилка налаштування зображення профілю",
- "Error cropping profile picture" : "Помилка кадрування зображення профілю",
- "Error saving profile picture" : "Помилка збереження зображення профілю",
- "Error removing profile picture" : "Помилка вилучення зображення профілю",
- "Your profile picture" : "Ваше зображення профілю",
- "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" : "Картинка надана оригінальним обліковим записом",
- "Set as profile picture" : "Установити як зображення профілю",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Зауважте, що повсюдне оновлення зображення профілю може зайняти до 24 годин.",
- "Unable to update date of birth" : "Не вдалося оновити дату народження",
- "Enter your date of birth" : "Зазначте дату вашого народження",
- "You are a member of the following groups:" : "Ви є учасником груп:",
- "Your full name" : "Ваше повне ім'я",
- "Email options" : "Параметри електронної пошти",
- "Options for additional email address {index}" : "Параметри додаткової ел.адреси {index}",
- "Remove primary email" : "Вилучити основну електронну адресу",
- "Delete email" : "Вилучити",
- "This address is not confirmed" : "Це непідтверджена адреса",
- "Unset as primary email" : "Скасувати як основну електронну адресу",
- "Set as primary email" : "Зробити основною",
- "Additional email address {index}" : "Додаткова електронна адреса {index}",
- "Unable to delete primary email address" : "Не вдалося вилучити основну електронну адресу",
- "Unable to update primary email address" : "Не вдалося оновити основну електронну адресу",
- "Unable to add additional email address" : "Не вдалося додати додаткову електронну адресу",
- "Unable to update additional email address" : "Не вдалося оновити додаткову електронну адресу",
- "Unable to delete additional email address" : "Не вдалося вилучити додаткову електронну адресу",
- "Primary email for password reset and notifications" : "Основна адреса ел.пошти для надсилання пароля та сповіщень",
- "No email address set" : "E-mail не вказано",
- "Your handle" : "Ви керуєте",
- "Derived from your locale ({weekDayName})" : "{weekDayName} (визначено автоматично)",
- "Unable to update first day of week" : "Не вдалося оновити значення першого дня тижня",
- "Day to use as the first day of week" : "Тиждень починається з",
- "Your headline" : "Ваш заголовок",
- "Unable to update language" : "Не вдалося оновити мову",
- "Languages" : "Мови",
- "Help translate" : "Допомогти з перекладом",
- "No language set" : "Мову не визначено",
- "Unable to update locale" : "Не вдалося оновити мову",
- "Locales" : "Регіональні налаштування",
- "Week starts on {firstDayOfWeek}" : "Тиждень починається у {firstDayOfWeek}",
- "No locale set" : "Локаль не встановлено",
- "Your city" : "Ваше місто",
- "Your organisation" : "Ваша організація",
- "Your phone number" : "Ваш номер телефону",
- "Edit your Profile visibility" : "Встановіть видимість профілю",
- "Unable to update profile enabled state" : "Неможливо оновити стан профілю",
- "Enable profile" : "Увімкнути профіль",
- "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." : "Для вашого профілю можна встановити певні обмеження з показу інформації про вас. Наприклад, якщо встановлено значення \"Показувати всім\", а для певного значення \"Приватне\", значення \"Приватне\" буде мати вищий пріоритет.",
- "Unable to update visibility of {displayId}" : "Не вдалося оновити видимість {displayId}",
- "she/her" : "вона/їй",
- "he/him" : "він/йому",
- "they/them" : "вони/їм",
- "Your role" : "Ваша роль",
- "Your X (formerly Twitter) handle" : "Ваш ідентифікатор в X (раніше відомій як Twitter)",
- "Your website" : "Ваш сайт",
- "Invalid value" : "Помилкове значення",
- "Unable to update {property}" : "Не вдалося оновити {property}",
- "No {property} set" : "{property} не встановлено",
- "Change scope level of {property}, current scope is {scope}" : "Змінити рівень дії {property}, поточна область – {scope}",
- "Unable to update federation scope of the primary {property}" : "Не вдалося оновити область об'єднаної хмари основного {property}",
- "Unable to update federation scope of additional {property}" : "Не вдається оновити область об'єднаної хмари додаткового {property}",
- "Add additional email" : "Додайте додаткову електронну адресу",
- "Add" : "Додати",
- "Create" : "Створити",
- "Change" : "Змінити",
- "Delete" : "Вилучити",
- "Reshare" : "Надати у спільний доступ",
- "Default language" : "Типова мова",
- "Common languages" : "Основні мови",
- "Other languages" : "Інші мови",
- "Password change is disabled because the master key is disabled" : "Зміну пароля вимкнено, оскільки майстер-ключ відключений",
- "No accounts" : "Немає облікових записів",
- "Loading accounts …" : "Завантаження облікових записів ...",
- "Manager" : "Менеджер",
- "Set line manager" : "Встановити безпосереднього начальника",
- "Account name will be autogenerated" : "Ім'я користувача буде автоматично створено",
- "Account name (required)" : "Ім'я користувача (обов'язково)",
- "New account" : "Новий обліковий запис",
- "Display name" : "Ім'я для показу",
- "Either password or email is required" : "Потрібно зазначити або пароль, або адресу ел.пошти",
- "Password (required)" : "Пароль (обов'язково)",
- "Email (required)" : "Ел. пошта (обов'язково)",
- "Email" : "E-mail",
- "Member of the following groups" : "Учасник(-ця) таких груп",
- "Set account groups" : "Додати користувача до груп",
- "Admin of the following groups" : "Адміністратор таких груп",
- "Set account as admin for …" : "Встановити адміністратором для ...",
- "Quota" : "Квота",
- "Set account quota" : "Встановити квоту для користувача",
- "Language" : "Мова",
- "Set default language" : "Встановити типову мову",
- "Add new account" : "Створити нового користувача",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} обліковий запис …","{userCount} облікові записи …","{userCount} облікових записів …","{userCount} облікових записів …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} обліковий запис","{userCount} облікові записи","{userCount} облікових записів","{userCount} обліковий запис"],
- "Total rows summary" : "Загалом рядків",
- "Scroll to load more rows" : "Прокрутіть для завантаження наступних записів",
- "Password or insufficient permissions message" : "Повідомлення про потребу ввести пароль або недостатній рівень доступу",
- "Avatar" : "Світлина",
- "Account name" : "Назва облікового запису",
- "Group admin for" : "Адміністратор групи",
- "Storage location" : "Місце розташування сховища",
- "First login" : "Перший вхід",
- "Last login" : "Останній вхід",
- "Account actions" : "Дії з обліковим записом",
- "{size} used" : "{size} використано",
- "Delete account" : "Вилучити обліковий запис",
- "Disconnect all devices and delete local data" : "Від'єднайте всі пристрої та видаліть локальні дані",
- "Disable account" : "Вимкнути обліковий запис",
- "Enable account" : "Увімкнути обліковий запис",
- "Resend welcome email" : "Надіслати запрошення ще раз",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "У разі втрати пристрою або виходу з організації це може віддалено стерти дані Nextcloud з усіх пристроїв, пов’язаних з {userid}. Працює, лише якщо пристрої підключено до Інтернету.",
- "Remote wipe of devices" : "Віддалене стирання даних на пристрої",
- "Wipe {userid}'s devices" : "Стерти пристрої {userid}",
- "Wiped {userid}'s devices" : "Стерті пристрої {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Повністю вилучає обліковий запис {userid} включно з особистими файлами, даними застосунків тощо.",
- "Account deletion" : "Вилучення облікового запису",
- "Delete {userid}'s account" : "Вилучити обліковий запис {userid}",
- "Display name was successfully changed" : "Ім'я для показу успішно змінено",
- "Password was successfully changed" : "Пароль успішно змінено",
- "Email was successfully changed" : "Адресу електронної пошти успішно змінено",
- "Welcome mail sent!" : "Запрошення надіслано!",
- "Loading account …" : "Завантаження облікового запису ...",
- "Change display name" : "Зміни ім'я для показу",
- "Set new password" : "Встановіть новий пароль",
- "You do not have permissions to see the details of this account" : "Відсутні повноваження на перегляд інформації про цей обліковий запис",
- "Set new email address" : "Встановіть нову адресу електронної пошти",
- "Add account to group" : "Додати обліковий запис до групи",
- "Set account as admin for" : "Встановити адміністратором для",
- "Select account quota" : "Встановити квоту",
- "Set the language" : "Встановити мову",
- "Toggle account actions menu" : "Переключити меню дій облікового запису",
- "Done" : "Готово",
- "Edit" : "Редагувати",
- "Account management settings" : "Налаштування",
- "Visibility" : "Видимість",
- "Show language" : "Показувати мову",
- "Show account backend" : "Показувати бекенд користувача",
- "Show storage path" : "Показувати шлях до сховища даних",
- "Show last login" : "Показувати останній вхід",
- "Sorting" : "Впорядкування",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "Системні наталаштування визначають впорядкування груп за іменем. Ці налаштування також вимикають лічильник учасників.",
- "Group list sorting" : "Впорядкування списку груп",
- "By member count" : "За лічильником учасників",
- "By name" : "Зі ім'ям",
- "Send email" : "Запрошення",
- "Send welcome email to new accounts" : "Надсилати вітальний лист щойно створеним обліковим записам",
- "Defaults" : "Стандартні",
- "Default quota" : "Типова квота",
- "Select default quota" : "Встановити типову квоту",
- "Server error while trying to complete WebAuthn device registration" : "Помилка сервера під час спроби завершити реєстрацію пристрою WebAuthn",
- "Passwordless authentication requires a secure connection." : "Авторизація без пароля вимагає безпечного з'єднання.",
- "Add WebAuthn device" : "Додайте пристрій WebAuthn",
- "Please authorize your WebAuthn device." : "Авторизуйте свій пристрій WebAuthn.",
- "Adding your device …" : "Додавання вашого пристрою...",
- "Unnamed device" : "Неназваний пристрій",
- "Passwordless Authentication" : "Авторизація без пароля",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Налаштуйте ваш обліковий запис для авторизації без пароля згідно зі стандартами FIDO2.",
- "No devices configured." : "Жодного пристрою не налаштовано.",
- "The following devices are configured for your account:" : "Для вашого облікового запису налаштовано такі пристрої:",
- "Your browser does not support WebAuthn." : "Ваш браузер не підтримує WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Як адміністратор ви можете точно налаштувати поведінку спільного використання. Будь ласка, перегляньте документацію для отримання додаткової інформації.",
- "You need to enable the File sharing App." : "Потрібно увімкнути застосунок для обміну файлами.",
- "Loading app list" : "Завантаження переліку застосунків",
- "Loading categories" : "Завантаження категорій",
- "Developer documentation ↗" : "Документація розробника ↗",
- "Version {version}" : "Версія {version}",
- "All accounts" : "Всі облікові записи",
- "Admins" : "Адміністратори",
- "Account group: {group}" : "Група облікового запису: {group}",
- "Account management" : "Керування обліковими записами",
+ "Delete group" : "Вилучити групу",
"Sending…" : "Надсилання...",
"Email sent" : "Лист надіслано",
"Location" : "Місце розташування",
@@ -662,6 +421,7 @@
"Date of birth" : "Дата народження",
"Full name" : "Повне ім'я",
"Additional email" : "Додаткова електронна адреса",
+ "Email" : "E-mail",
"Fediverse (e.g. Mastodon)" : "Fediverse (напр., Mastodon)",
"Headline" : "Заголовок",
"Organisation" : "Організація",
@@ -671,6 +431,7 @@
"X (formerly Twitter)" : "X (раніше відома як Twitter)",
"Website" : "Вебсайт",
"Profile visibility" : "Видимість профілю",
+ "Language" : "Мова",
"Locale" : "Локаль",
"First day of week" : "Тиждень починається",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Недоступно, оскільки ця властивість необхідна для основних функцій, включно спільний доступ до файлів та запрошення в календарі",
@@ -687,12 +448,14 @@
"Show to everyone" : "Показувати всім",
"Show to logged in accounts only" : "Показувати тільки для авторизованих",
"Hide" : "Сховати",
+ "Update to {version}" : "Оновити до {version}",
"Health checking" : "Перевірка доступности",
"Download and enable" : "Звантажити та увімкнути",
"Disable" : "Вимкнути",
"Allow untested app" : "Дозволити непротестовані застосунки",
"The app will be downloaded from the App Store" : "Застосунок буде звантажено з крамниці застосунків",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Відсутня інформація щодо підтримки цього застосунку вашою версією Nextcloud. Ви зможете встановити цей застосунок, проте він може працювати не так, як ви очікуєте.",
+ "{size} used" : "{size} використано",
"Unknown" : "Невідомо",
"Never" : "Ніколи",
"Could not register device: Network error" : "Не вдалося зареєструвати пристрій: помилка мережі",
@@ -709,8 +472,10 @@
"Error while updating device token scope" : "Помилка під час оновлення області токена пристрою",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Забагато запитів із вашої мережі. Повторіть спробу пізніше або зверніться до адміністратора, якщо це помилка.",
"Error" : "Помилка",
+ "Default quota" : "Типова квота",
"Account documentation" : "Документація для користувача",
"Administration documentation" : "Документація для адміністратора",
+ "Documentation" : "Документація",
"Forum" : "Форум",
"Nextcloud help & privacy resources" : "Допомога із Nextcloud та ресурси, пов'язані з конфіденційністю",
"General documentation" : "Загальна документація",
@@ -732,6 +497,7 @@
"SMTP Password" : "Пароль SMTP",
"Save" : "Зберегти",
"Test and verify email settings" : "Перевірити налаштування електронної пошти",
+ "Send email" : "Запрошення",
"Security & setup warnings" : "Перевірка налаштувань та захисту системи",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Для безпеки та продуктивності вашого сервера важливо, щоб все було налаштовано правильно. Щоб допомогти вам, ми робимо деякі автоматичні перевірки. Будь ласка, перегляньте пов'язану документацію для отримання додаткової інформації.",
"All checks passed." : "Всі перевірки виконано.",
@@ -751,47 +517,12 @@
"Use a second factor besides your password to increase security for your account." : "Використовуйте додатковий фактор на додаток до пароля, це підвищить безпеку вашого облікового запису.",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "Якщо ви використовуєте застосунки сторонніх розробників, які з'єднуються з хмарою Nextcloud, переконайтеся, що ви створили та налаштували паролі на кожен окремий застосунок, перш ніж вмикати двофакторну авторизацію.",
"Logged in account must be a subadmin" : "Користувач, який увійшов, має бути субадміністратором",
- "Missing optional index \"%s\" in table \"%s\"." : "Відсутній необов'язковий індекс \"%s\" у таблиці \"%s\".",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "У базі даних відсутні деякі індекси. Через те, що додавання індексів у великі таблиці могло зайняти деякий час, їх не було створено автоматично. Для створення індексів вручну, будь ласка, виконайте команду \"occ db:add-missing-indices\". Після додавання індексів запити до цих таблиць зазвичай виконуються набагато швидше.",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Щоби дозволити запуск цієї перевірки, потрібно пересвідчитися, що ваш вебсервер може з'єднуватися з самим собою, що передбачає можливість резолвити та з'єднуватися з одним з `trusted_domains` або `overwrite.cli.url`. Неможливість цього може бути результатом незбігу DNS на стороні сервера або встановленими правилами брандмауера.",
"File locking" : "Блокування файлів",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "Транзакційне блокування файлів вимкнено. Це може призвести до потенційних помилок під час одночасної роботи з файлами. Увімкніть параметр \"filelocking.enabled\" у конфігураційному файлі config.php, щоби уникнути цих помилок. ",
"The PHP memory limit is below the recommended value of %s." : "Обмеження пам'яті PHP нижче рекомендованого значення %s.",
"for WebAuthn passwordless login" : "для безпарольного входу за допомогою WebAuthn",
"for WebAuthn passwordless login, and SFTP storage" : "для безпарольного входу за допомогою WebAuthn та сховище SFTP",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "У вас встановлено PHP версії %s. Починаючи з версії Nextcloud 27, PHP 8.0 вже вважається застарілим. Версія Nextcloud 28 може вимагати версію PHP 8.1 та вище. Просимо якнайшвидше оновити версію PHP від PHP Group до офіційно підтримуваної.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Використовується версія MariaDB \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують MariaDB 10.2 або вище.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Використовується версія MySQL \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують MySQL 8.0 або MariaDB 10.2 або вище.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Використовується версія PostgreSQL \"%s\". Nextcloud 21 і вище не підтримують цю версію і потребують PostgreSQL 9.6 або вище.",
- "Speech-To-Text" : "Голос-у-текст",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Перетворення голосу у текст може здійснюватися за допомогою декількох застосунків. Тут можна визначити, який саме застосунків потрібно використати.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Жодний із встановлених застосунків не надає функцій перетворення голосу у текст.",
- "None of your currently installed apps provide Text processing functionality" : "Жодний із встановлених застосунків не надає функцій обробки тексту.",
- "Set default expiration date for shares" : "Встановити типовий термін дії для спільних ресурсів",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Дозволити автозаповнення імени користувача в діалоговому вікні спільного доступу, дозволити доступ до системної адресної книги",
- "Your biography" : "Коротко про себе",
- "You are using <strong>{usage}</strong>" : "Ви використовуєте <strong>{usage}",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Ви використовуєте <strong>{usage}</strong> із <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "Встановити менеджера користувача",
- "Username will be autogenerated" : "Ім'я користувача буде автоматично створено",
- "Username (required)" : "Ім'я користувача (обов'язково)",
- "New user" : "Новий користувач",
- "Groups (required)" : "Групи (обов'язково)",
- "Set user groups" : "Створити групи користувачів",
- "Administered groups" : "Адміністровані групи",
- "Set user as admin for …" : "Встановити користувача адміністратором для ...",
- "Set user quota" : "Встановити квоту для користувача",
- "Add new user" : "Додати нового користувача",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} користувач …","{userCount} користувача …","{userCount} користувачів …","{userCount} користувачів …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} користувач","{userCount} користувача","{userCount} користувачів","{userCount} користувачів"],
- "Loading users …" : "Завантаження користувачів ...",
- "Username" : "Ім'я користувача",
- "User backend" : "Сервер користувача",
- "User actions" : "Дії користувачів",
- "Add user to group" : "Додати користувача до групи",
- "Server error while trying to add WebAuthn device" : "Помилка сервера під час спроби додати пристрій WebAuthn",
- "Name your device" : "Дайте назву вашому пристрою",
- "Active accounts" : "Активні облікові записи",
- "Follow us on Twitter" : "Слідкуйте за нами в Twitter",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "Щоби дозволити запуск цієї перевірки, потрібно пересвідчитися, що ваш вебсервер може з'єднуватися з самим собою, що передбачає можливість резолвити та з'єднуватися з одним з `trusted_domains` або `overwrite.cli.url`. Неможливість цього може бути результатом незбігу DNS на стороні сервера або встановленими правилами брандмауера."
+ "Set default expiration date for shares" : "Встановити типовий термін дії для спільних ресурсів"
},"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/settings/l10n/vi.js b/apps/settings/l10n/vi.js
index 8194c674fce..f534ce2b97e 100644
--- a/apps/settings/l10n/vi.js
+++ b/apps/settings/l10n/vi.js
@@ -196,50 +196,6 @@ OC.L10N.register(
"Group name" : "Tên nhóm",
"Please enter a valid group name" : "Vui lòng nhập tên nhóm hợp lệ",
"Loading" : "Đang tải",
- "Type" : "Loại",
- "Learn more" : "Đọc nhiều hơn",
- "Confirm" : "Xác nhận",
- "Cancel" : "Hủy",
- "Description" : "Mô tả",
- "View in store" : "Xem tại cửa hàng",
- "Visit website" : "Truy cập trang web",
- "Admin documentation" : "Tài liệu quản trị",
- "Developer documentation" : "Tài liệu dành cho nhà phát triển",
- "Details" : "Thông tin",
- "All" : "Tất cả",
- "Limit app usage to groups" : "Giới hạn sử dụng ứng dụng cho các nhóm",
- "No results" : "Không có kết quả",
- "Update to {version}" : "Cập nhật tới {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ứng dụng này không có phiên bản Nextcloud tối thiểu được chỉ định. Đây sẽ là một lỗi trong tương lai.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ứng dụng này không có phiên bản Nextcloud tối đa được chỉ định. Đây sẽ là một lỗi trong tương lai.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ứng dụng này không thể được cài đặt vì các điều kiện phụ thuộc sau không được đáp ứng:",
- "Categories" : "Các hạng mục",
- "Resources" : "Các nguồn lực",
- "Documentation" : "Tài liệu",
- "Report a bug" : "Báo cáo lỗi",
- "Request feature" : "Yêu cầu tính năng",
- "Ask questions or discuss" : "Hỏi các câu hỏi hoặc thảo luận",
- "Rate" : "Đánh giá",
- "Changelog" : "Sổ cập nhập thay đổi",
- "Google Chrome for Android" : "Google Chrome cho Android",
- "{productName} iOS app" : "Ứng dụng iOS {productName}",
- "{productName} Android app" : "Ứng dụng Android {productName}",
- "This session" : "Phiên này",
- "Device name" : "Tên thiết bị",
- "Marked for remote wipe" : "Đánh dấu để xóa từ xa",
- "Device settings" : "Cài đặt thiết bị",
- "Allow filesystem access" : "Cho phép truy cập file hệ thống",
- "Rename" : "Đổi tên",
- "Revoke" : "Thu hồi",
- "Wipe device" : "Xóa thiết bị",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Việc thu hồi mã thông báo này có thể ngăn quá trình xóa thiết bị của bạn nếu thiết bị chưa bắt đầu quá trình xóa.",
- "Device" : "Thiết bị",
- "Last activity" : "Hoạt động cuối",
- "Devices & sessions" : "Thiết bị và phiên truy cập",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, máy tính để bàn và máy khách di động hiện đang đăng nhập vào tài khoản của bạn.",
- "Error while creating device token" : "Lỗi trong khi tạo mã thông báo thiết bị",
- "App name" : "Tên ứng dụng",
- "Create new app password" : "Tạo ứng dụng mật khẩu mới",
"Could not copy app password. Please copy it manually." : "Không thể sao chép ứng dụng mật khẩu. Vui lòng sao chép thủ công.",
"Login" : "Đăng nhập",
"Password" : "Mật khẩu",
@@ -268,135 +224,11 @@ OC.L10N.register(
"Be aware that encryption always increases the file size." : "Xin lưu ý rằng mã hóa luôn làm tăng kích thước tệp.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Việc tạo bản sao lưu thường xuyên cho dữ liệu của bạn luôn là điều tốt, trong trường hợp mã hóa, hãy đảm bảo sao lưu các khóa mã hóa cùng với dữ liệu của bạn.",
"This is the final warning: Do you really want to enable encryption?" : "Cảnh báo lần cuối: Bạn có thực sự muốn kích hoạt tính năng mã hoá?",
- "Failed to remove group \"{group}\"" : "Không xóa được nhóm \"{group}\"",
"Please confirm the group removal" : "Vui lòng xác nhận việc xóa nhóm",
+ "Cancel" : "Hủy",
+ "Confirm" : "Xác nhận",
"Submit" : "Gửi đi",
"Rename group" : "Đổi tên nhóm",
- "Remove group" : "Xóa nhóm",
- "Current password" : "Mật khẩu cũ",
- "New password" : "Mật khẩu mới",
- "Change password" : "Đổi mật khẩu",
- "Choose your profile picture" : "Chọn ảnh hồ sơ của bạn",
- "Please select a valid png or jpg file" : "Vui lòng chọn tệp png hoặc jpg hợp lệ",
- "Error setting profile picture" : "Lỗi cài đặt ảnh hồ sơ",
- "Error cropping profile picture" : "Lỗi cắt ảnh hồ sơ",
- "Error saving profile picture" : "Lỗi lưu ảnh hồ sơ",
- "Error removing profile picture" : "Lỗi xóa ảnh hồ sơ",
- "Your profile picture" : "Hình ảnh cá nhân của bạn",
- "Upload profile picture" : "Tải ảnh hồ sơ lên",
- "Choose profile picture from Files" : "Chọn ảnh hồ sơ từ Tệp",
- "Remove profile picture" : "Xóa ảnh hồ sơ",
- "The file must be a PNG or JPG" : "Tệp phải là PNG hoặc JPG",
- "Picture provided by original account" : "Hình ảnh do tài khoản gốc cung cấp",
- "Set as profile picture" : "Thiết lập như là hình ảnh hồ sơ cá nhân",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Xin lưu ý rằng có thể mất tới 24 giờ để ảnh hồ sơ của bạn được cập nhật ở mọi nơi.",
- "You are a member of the following groups:" : "Bạn là thành viên của các nhóm sau:",
- "Your full name" : "Tên đầy đủ của bạn",
- "Email options" : "Tùy chọn email",
- "Remove primary email" : "Xóa email chính",
- "Delete email" : "Xóa email",
- "This address is not confirmed" : "Địa chỉ này chưa được xác nhận",
- "Unset as primary email" : "Bỏ đặt làm email chính",
- "Set as primary email" : "Đặt làm email chính",
- "Additional email address {index}" : "Địa chỉ email bổ sung {index}",
- "Unable to delete primary email address" : "Không thể xóa địa chỉ email chính",
- "Unable to update primary email address" : "Không thể cập nhật địa chỉ email chính",
- "Unable to add additional email address" : "Không thể thêm địa chỉ email bổ sung",
- "Unable to update additional email address" : "Không thể cập nhật địa chỉ email bổ sung",
- "Unable to delete additional email address" : "Không thể xóa địa chỉ email bổ sung",
- "Primary email for password reset and notifications" : "Email chính để đặt lại mật khẩu và thông báo",
- "No email address set" : "Chưa thiết lập địa chỉ email",
- "Your headline" : "Tiêu đề của bạn",
- "Unable to update language" : "Không thể cập nhật ngôn ngữ",
- "Help translate" : "Hỗ trợ dịch thuật",
- "No language set" : "Không có ngôn ngữ",
- "Unable to update locale" : "Không thể cập nhật ngôn ngữ",
- "Week starts on {firstDayOfWeek}" : "Tuần bắt đầu vào {firstDayOfWeek}",
- "No locale set" : "Không có ngôn ngữ nào được đặt",
- "Your city" : "Thành phố",
- "Your organisation" : "Tổ chức",
- "Your phone number" : "Số điện thoại",
- "Edit your Profile visibility" : "Chỉnh sửa khả năng hiển thị Hồ sơ của bạn",
- "Unable to update profile enabled state" : "Không thể cập nhật trạng thái kích hoạt hồ sơ",
- "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." : "Cài đặt hạn chế hơn về khả năng hiển thị hoặc phạm vi được tôn trọng trên Hồ sơ của bạn. Ví dụ: nếu mức độ hiển thị được đặt thành \"Hiển thị cho mọi người\" và phạm vi được đặt thành \"Riêng tư\" thì \"Riêng tư\" sẽ được tôn trọng.",
- "Unable to update visibility of {displayId}" : "Không thể cập nhật mức độ hiển thị của {displayId}",
- "Your role" : "Vai trò của bạn",
- "Your website" : "Trang web của bạn",
- "Unable to update {property}" : "Không thể cập nhật {property}",
- "No {property} set" : "Không có {property} nào được đặt",
- "Change scope level of {property}, current scope is {scope}" : "Thay đổi cấp độ phạm vi của {property}, phạm vi hiện tại là {scope}",
- "Unable to update federation scope of the primary {property}" : "Không thể cập nhật phạm vi liên kết của {property} chính",
- "Unable to update federation scope of additional {property}" : "Không thể cập nhật phạm vi liên kết của {property} bổ sung",
- "Add additional email" : "Thêm email bổ sung",
- "Add" : "Thêm",
- "Create" : "Tạo mới",
- "Change" : "Chỉnh sửa",
- "Delete" : "Xóa",
- "Reshare" : "Chia sẻ lại",
- "Default language" : "Ngôn ngữ mặc định",
- "Common languages" : "Ngôn ngữ thông dụng",
- "Other languages" : "Những ngôn ngữ khác",
- "Password change is disabled because the master key is disabled" : "Thay đổi mật khẩu bị vô hiệu hóa vì khóa chính bị vô hiệu hóa",
- "Manager" : "Giám đốc",
- "Display name" : "Tên hiển thị",
- "Either password or email is required" : "Cần có mật khẩu hoặc email",
- "Password (required)" : "Mật khẩu (được yêu câu)",
- "Email (required)" : "Email (bắt buộc)",
- "Email" : "Email",
- "Quota" : "Hạn ngạch",
- "Language" : "Ngôn ngữ",
- "Set default language" : "Đặt ngôn ngữ mặc định",
- "Total rows summary" : "Tóm tắt tổng số hàng",
- "Scroll to load more rows" : "Cuộn để tải thêm hàng",
- "Password or insufficient permissions message" : "Mật khẩu hoặc thông báo không đủ quyền",
- "Avatar" : "Hình đại diện",
- "Account name" : "Tên tài khoản",
- "Group admin for" : "Quản trị viên nhóm",
- "Storage location" : "Khu vực lưu trữ",
- "Last login" : "Lần đăng nhập cuối",
- "Account actions" : "Hành động với tài khoản",
- "{size} used" : "{size} đã sử dụng",
- "Delete account" : "Xóa tài khoản",
- "Resend welcome email" : "Gửi lại email chào mừng",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Trong trường hợp thiết bị bị mất hoặc thoát khỏi tổ chức, thao tác này có thể xóa từ xa dữ liệu Nextcloud khỏi tất cả các thiết bị được liên kết với {userid}. Chỉ hoạt động nếu các thiết bị được kết nối với internet.",
- "Remote wipe of devices" : "Xóa thiết bị từ xa",
- "Wipe {userid}'s devices" : "Xóa thiết bị của {userid}",
- "Wiped {userid}'s devices" : "Đã xóa thiết bị của {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Xóa hoàn toàn tài khoản của {userid}, bao gồm tất cả các tệp cá nhân, dữ liệu ứng dụng của họ, v.v.",
- "Account deletion" : "Xóa tài khoản",
- "Delete {userid}'s account" : "Xóa tài khoản của {userid}",
- "Display name was successfully changed" : "Tên hiển thị đã được thay đổi thành công",
- "Password was successfully changed" : "Mật khẩu đã được thay đổi thành công",
- "Email was successfully changed" : "Email đã được thay đổi thành công",
- "Welcome mail sent!" : "Thư chào mừng đã được gửi!",
- "Change display name" : "Thay đổi tên hiển thị",
- "Set new password" : "Đặt mật khẩu mới",
- "Set new email address" : "Đặt địa chỉ email mới",
- "Set the language" : "Đặt ngôn ngữ",
- "Done" : "Hoàn thành",
- "Edit" : "Chỉnh sửa",
- "Visibility" : "Hiển thị",
- "Show language" : "Hiển thị ngôn ngữ",
- "Show storage path" : "Hiển thị đường dẫn lưu trữ",
- "Show last login" : "Hiển thị lần cuối đăng nhập",
- "Send email" : "Gửi email",
- "Defaults" : "Mặc định",
- "Default quota" : "Hạn ngạch mặc định",
- "Select default quota" : "Chọn hạn ngạch mặc định",
- "Server error while trying to complete WebAuthn device registration" : "Lỗi máy chủ khi cố gắng hoàn tất đăng ký thiết bị WebAuthn",
- "Passwordless authentication requires a secure connection." : "Xác thực không cần mật khẩu yêu cầu kết nối an toàn.",
- "Add WebAuthn device" : "Thêm thiết bị WebAuthn",
- "Please authorize your WebAuthn device." : "Vui lòng ủy quyền cho thiết bị WebAuthn của bạn.",
- "Adding your device …" : "Đang thêm thiết bị của bạn…",
- "Unnamed device" : "Thiết bị chưa được đặt tên",
- "Passwordless Authentication" : "Xác thực không cần mật khẩu",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Thiết lập tài khoản của bạn để xác thực không cần mật khẩu theo tiêu chuẩn FIDO2.",
- "No devices configured." : "Không có thiết bị nào được định cấu hình.",
- "The following devices are configured for your account:" : "Các thiết bị sau được định cấu hình cho tài khoản của bạn:",
- "Your browser does not support WebAuthn." : "Trình duyệt của bạn không hỗ trợ WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Với tư cách là quản trị viên, bạn có thể tinh chỉnh hành vi chia sẻ. Vui lòng xem tài liệu để biết thêm thông tin.",
- "You need to enable the File sharing App." : "Bạn cần kích hoạt Ứng dụng chia sẻ tệp.",
- "Admins" : "Quản trị viên",
"Sending…" : "Đang gửi...",
"Email sent" : "Email đã được gửi",
"Location" : "Vị trí",
@@ -404,12 +236,14 @@ OC.L10N.register(
"About" : "Giới thiệu",
"Full name" : "Tên đầy đủ",
"Additional email" : "Thư điện tử bổ sung",
+ "Email" : "Email",
"Headline" : "Tiêu đề",
"Organisation" : "Tổ chức",
"Phone number" : "Số điện thoại",
"Role" : "Vai trò",
"Website" : "Website",
"Profile visibility" : "Tấm nhìn hồ sơ",
+ "Language" : "Ngôn ngữ",
"Locale" : "Ngôn ngữ",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Không có sẵn vì thuộc tính này là bắt buộc đối với chức năng cốt lõi bao gồm chia sẻ tệp và lời mời lịch",
"Your apps" : "Ứng dụng của bạn",
@@ -421,11 +255,13 @@ OC.L10N.register(
"Supported apps" : "Ứng dụng được hỗ trợ",
"Show to everyone" : "Hiển thị cho mọi người",
"Hide" : "Ẩn",
+ "Update to {version}" : "Cập nhật tới {version}",
"Download and enable" : "Tải xuống và kích hoạt",
"Disable" : "Tắt",
"Allow untested app" : "Cho phép ứng dụng chưa được kiểm tra",
"The app will be downloaded from the App Store" : "Ứng dụng sẽ được tải xuống từ App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ứng dụng này không được đánh dấu là tương thích với phiên bản Nextcloud của bạn. Nếu bạn tiếp tục, bạn vẫn có thể cài đặt ứng dụng. Lưu ý rằng ứng dụng có thể không hoạt động như mong đợi.",
+ "{size} used" : "{size} đã sử dụng",
"Unknown" : "Không xác định",
"Never" : "Không bao giờ",
"An error occurred during the request. Unable to proceed." : "Đã xảy ra lỗi trong quá trình yêu cầu. Không thể tiếp tục.",
@@ -438,8 +274,10 @@ OC.L10N.register(
"Error while updating device token scope" : "Lỗi trong khi cập nhật phạm vi mã thông báo thiết bị",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Có quá nhiều yêu cầu từ mạng của bạn. Thử lại sau hoặc liên hệ với quản trị viên của bạn nếu đây là lỗi.",
"Error" : "Lỗi",
+ "Default quota" : "Hạn ngạch mặc định",
"Account documentation" : "Tài liệu tài khoản",
"Administration documentation" : "Tài liệu hành chính",
+ "Documentation" : "Tài liệu",
"Forum" : "Diễn đàn",
"General documentation" : "Tài liệu chung",
"Legal notice" : "Thông cáo pháp lý",
@@ -458,6 +296,7 @@ OC.L10N.register(
"SMTP Password" : "Mật khẩu SMTP",
"Save" : "Lưu",
"Test and verify email settings" : "Kiểm tra và xác minh cài đặt email",
+ "Send email" : "Gửi email",
"Security & setup warnings" : "Bảo mật và thiết lập cảnh báo",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Điều quan trọng đối với tính bảo mật và hiệu suất của phiên bản của bạn là mọi thứ đều được đặt cấu hình chính xác. Để giúp bạn điều đó, chúng tôi đang thực hiện một số kiểm tra tự động. Vui lòng xem tài liệu được liên kết để biết thêm thông tin.",
"All checks passed." : "Tất cả các kiểm tra đã thoả điều kiện",
@@ -465,38 +304,6 @@ OC.L10N.register(
"There are some warnings regarding your setup." : "Có một số cảnh báo liên quan đến thiết lập của bạn.",
"Checking for system and security issues." : "Kiểm tra các vấn đề về hệ thống và bảo mật.",
"Use a second factor besides your password to increase security for your account." : "Sử dụng yếu tố thứ hai ngoài mật khẩu để tăng tính bảo mật cho tài khoản của bạn.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Cơ sở dữ liệu thiếu một số mục. Do thực tế là việc thêm mục trên các bảng lớn có thể mất một chút thời gian, chúng không được thêm tự động. Bằng cách chạy \"occ db:add-missing-indices\", các mục bị thiếu đó có thể được thêm thủ công trong khi phiên bản tiếp tục chạy. Sau khi các mục được thêm vào, các truy vấn vào các bảng đó thường nhanh hơn nhiều.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Bạn hiện đang chạy PHP %s. PHP 8.0 hiện không được dùng nữa trong Nextcloud 27. Nextcloud 28 có thể yêu cầu ít nhất PHP 8.1. Vui lòng nâng cấp lên một trong các phiên bản PHP được hỗ trợ chính thức do Nhóm PHP cung cấp càng sớm càng tốt.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Phiên bản MariaDB \"%s\" được sử dụng. Nextcloud 21 trở lên không hỗ trợ phiên bản này và yêu cầu MariaDB 10.2 trở lên.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Phiên bản MySQL \"%s\" được sử dụng. Nextcloud 21 trở lên không hỗ trợ phiên bản này và yêu cầu MySQL 8.0 hoặc MariaDB 10.2 trở lên.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Phiên bản PostgreSQL \"%s\" được sử dụng. Nextcloud 21 trở lên không hỗ trợ phiên bản này và yêu cầu PostgreSQL 9.6 trở lên.",
- "Speech-To-Text" : "Chuyển giọng nói thành văn bản",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Chuyển giọng nói thành văn bản có thể được triển khai bởi các ứng dụng khác nhau. Tại đây bạn có thể đặt ứng dụng nào sẽ được sử dụng.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Không có ứng dụng nào bạn cài đặt hiện tại cung cấp chức năng Chuyển giọng nói thành văn bản",
- "None of your currently installed apps provide Text processing functionality" : "Không có ứng dụng nào bạn cài đặt hiện tại cung cấp chức năng xử lý văn bản",
- "Set default expiration date for shares" : "Đặt ngày hết hạn mặc định cho cổ phiếu",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Cho phép tự động hoàn thành tên người dùng trong hộp thoại chia sẻ và cho phép truy cập vào sổ địa chỉ hệ thống",
- "Your biography" : "Tiểu sử của bạn",
- "You are using <strong>{usage}</strong>" : "Bạn đang sử dụng {usage}",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Bạn đang sử dụng {usage} trên {totalSpace} ({usageRelative}%)",
- "Set user manager" : "Đặt trình quản lý người dùng",
- "Username will be autogenerated" : "Tên người dùng sẽ được tạo tự động",
- "Username (required)" : "Tên người dùng (bắt buộc)",
- "New user" : "Người dùng mới",
- "Groups (required)" : "Nhóm (bắt buộc)",
- "Set user groups" : "Đặt nhóm người dùng",
- "Administered groups" : "Nhóm được quản lý",
- "Set user as admin for …" : "Đặt người dùng làm quản trị viên cho…",
- "Set user quota" : "Đặt hạn ngạch người dùng",
- "Add new user" : "Thêm người dùng mới",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} người dùng…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} người dùng"],
- "Loading users …" : "Đang tải người dùng…",
- "Username" : "Tên đăng nhập",
- "User backend" : "Trang cài đặt người dùng",
- "User actions" : "Hành động của người dùng",
- "Add user to group" : "Thêm người dùng vào nhóm",
- "Server error while trying to add WebAuthn device" : "Lỗi máy chủ khi cố gắng thêm thiết bị WebAuthn",
- "Name your device" : "Đặt tên cho thiết bị của bạn"
+ "Set default expiration date for shares" : "Đặt ngày hết hạn mặc định cho cổ phiếu"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/vi.json b/apps/settings/l10n/vi.json
index 26144a3a72e..90ce8354649 100644
--- a/apps/settings/l10n/vi.json
+++ b/apps/settings/l10n/vi.json
@@ -194,50 +194,6 @@
"Group name" : "Tên nhóm",
"Please enter a valid group name" : "Vui lòng nhập tên nhóm hợp lệ",
"Loading" : "Đang tải",
- "Type" : "Loại",
- "Learn more" : "Đọc nhiều hơn",
- "Confirm" : "Xác nhận",
- "Cancel" : "Hủy",
- "Description" : "Mô tả",
- "View in store" : "Xem tại cửa hàng",
- "Visit website" : "Truy cập trang web",
- "Admin documentation" : "Tài liệu quản trị",
- "Developer documentation" : "Tài liệu dành cho nhà phát triển",
- "Details" : "Thông tin",
- "All" : "Tất cả",
- "Limit app usage to groups" : "Giới hạn sử dụng ứng dụng cho các nhóm",
- "No results" : "Không có kết quả",
- "Update to {version}" : "Cập nhật tới {version}",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ứng dụng này không có phiên bản Nextcloud tối thiểu được chỉ định. Đây sẽ là một lỗi trong tương lai.",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ứng dụng này không có phiên bản Nextcloud tối đa được chỉ định. Đây sẽ là một lỗi trong tương lai.",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "Ứng dụng này không thể được cài đặt vì các điều kiện phụ thuộc sau không được đáp ứng:",
- "Categories" : "Các hạng mục",
- "Resources" : "Các nguồn lực",
- "Documentation" : "Tài liệu",
- "Report a bug" : "Báo cáo lỗi",
- "Request feature" : "Yêu cầu tính năng",
- "Ask questions or discuss" : "Hỏi các câu hỏi hoặc thảo luận",
- "Rate" : "Đánh giá",
- "Changelog" : "Sổ cập nhập thay đổi",
- "Google Chrome for Android" : "Google Chrome cho Android",
- "{productName} iOS app" : "Ứng dụng iOS {productName}",
- "{productName} Android app" : "Ứng dụng Android {productName}",
- "This session" : "Phiên này",
- "Device name" : "Tên thiết bị",
- "Marked for remote wipe" : "Đánh dấu để xóa từ xa",
- "Device settings" : "Cài đặt thiết bị",
- "Allow filesystem access" : "Cho phép truy cập file hệ thống",
- "Rename" : "Đổi tên",
- "Revoke" : "Thu hồi",
- "Wipe device" : "Xóa thiết bị",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "Việc thu hồi mã thông báo này có thể ngăn quá trình xóa thiết bị của bạn nếu thiết bị chưa bắt đầu quá trình xóa.",
- "Device" : "Thiết bị",
- "Last activity" : "Hoạt động cuối",
- "Devices & sessions" : "Thiết bị và phiên truy cập",
- "Web, desktop and mobile clients currently logged in to your account." : "Web, máy tính để bàn và máy khách di động hiện đang đăng nhập vào tài khoản của bạn.",
- "Error while creating device token" : "Lỗi trong khi tạo mã thông báo thiết bị",
- "App name" : "Tên ứng dụng",
- "Create new app password" : "Tạo ứng dụng mật khẩu mới",
"Could not copy app password. Please copy it manually." : "Không thể sao chép ứng dụng mật khẩu. Vui lòng sao chép thủ công.",
"Login" : "Đăng nhập",
"Password" : "Mật khẩu",
@@ -266,135 +222,11 @@
"Be aware that encryption always increases the file size." : "Xin lưu ý rằng mã hóa luôn làm tăng kích thước tệp.",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Việc tạo bản sao lưu thường xuyên cho dữ liệu của bạn luôn là điều tốt, trong trường hợp mã hóa, hãy đảm bảo sao lưu các khóa mã hóa cùng với dữ liệu của bạn.",
"This is the final warning: Do you really want to enable encryption?" : "Cảnh báo lần cuối: Bạn có thực sự muốn kích hoạt tính năng mã hoá?",
- "Failed to remove group \"{group}\"" : "Không xóa được nhóm \"{group}\"",
"Please confirm the group removal" : "Vui lòng xác nhận việc xóa nhóm",
+ "Cancel" : "Hủy",
+ "Confirm" : "Xác nhận",
"Submit" : "Gửi đi",
"Rename group" : "Đổi tên nhóm",
- "Remove group" : "Xóa nhóm",
- "Current password" : "Mật khẩu cũ",
- "New password" : "Mật khẩu mới",
- "Change password" : "Đổi mật khẩu",
- "Choose your profile picture" : "Chọn ảnh hồ sơ của bạn",
- "Please select a valid png or jpg file" : "Vui lòng chọn tệp png hoặc jpg hợp lệ",
- "Error setting profile picture" : "Lỗi cài đặt ảnh hồ sơ",
- "Error cropping profile picture" : "Lỗi cắt ảnh hồ sơ",
- "Error saving profile picture" : "Lỗi lưu ảnh hồ sơ",
- "Error removing profile picture" : "Lỗi xóa ảnh hồ sơ",
- "Your profile picture" : "Hình ảnh cá nhân của bạn",
- "Upload profile picture" : "Tải ảnh hồ sơ lên",
- "Choose profile picture from Files" : "Chọn ảnh hồ sơ từ Tệp",
- "Remove profile picture" : "Xóa ảnh hồ sơ",
- "The file must be a PNG or JPG" : "Tệp phải là PNG hoặc JPG",
- "Picture provided by original account" : "Hình ảnh do tài khoản gốc cung cấp",
- "Set as profile picture" : "Thiết lập như là hình ảnh hồ sơ cá nhân",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "Xin lưu ý rằng có thể mất tới 24 giờ để ảnh hồ sơ của bạn được cập nhật ở mọi nơi.",
- "You are a member of the following groups:" : "Bạn là thành viên của các nhóm sau:",
- "Your full name" : "Tên đầy đủ của bạn",
- "Email options" : "Tùy chọn email",
- "Remove primary email" : "Xóa email chính",
- "Delete email" : "Xóa email",
- "This address is not confirmed" : "Địa chỉ này chưa được xác nhận",
- "Unset as primary email" : "Bỏ đặt làm email chính",
- "Set as primary email" : "Đặt làm email chính",
- "Additional email address {index}" : "Địa chỉ email bổ sung {index}",
- "Unable to delete primary email address" : "Không thể xóa địa chỉ email chính",
- "Unable to update primary email address" : "Không thể cập nhật địa chỉ email chính",
- "Unable to add additional email address" : "Không thể thêm địa chỉ email bổ sung",
- "Unable to update additional email address" : "Không thể cập nhật địa chỉ email bổ sung",
- "Unable to delete additional email address" : "Không thể xóa địa chỉ email bổ sung",
- "Primary email for password reset and notifications" : "Email chính để đặt lại mật khẩu và thông báo",
- "No email address set" : "Chưa thiết lập địa chỉ email",
- "Your headline" : "Tiêu đề của bạn",
- "Unable to update language" : "Không thể cập nhật ngôn ngữ",
- "Help translate" : "Hỗ trợ dịch thuật",
- "No language set" : "Không có ngôn ngữ",
- "Unable to update locale" : "Không thể cập nhật ngôn ngữ",
- "Week starts on {firstDayOfWeek}" : "Tuần bắt đầu vào {firstDayOfWeek}",
- "No locale set" : "Không có ngôn ngữ nào được đặt",
- "Your city" : "Thành phố",
- "Your organisation" : "Tổ chức",
- "Your phone number" : "Số điện thoại",
- "Edit your Profile visibility" : "Chỉnh sửa khả năng hiển thị Hồ sơ của bạn",
- "Unable to update profile enabled state" : "Không thể cập nhật trạng thái kích hoạt hồ sơ",
- "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." : "Cài đặt hạn chế hơn về khả năng hiển thị hoặc phạm vi được tôn trọng trên Hồ sơ của bạn. Ví dụ: nếu mức độ hiển thị được đặt thành \"Hiển thị cho mọi người\" và phạm vi được đặt thành \"Riêng tư\" thì \"Riêng tư\" sẽ được tôn trọng.",
- "Unable to update visibility of {displayId}" : "Không thể cập nhật mức độ hiển thị của {displayId}",
- "Your role" : "Vai trò của bạn",
- "Your website" : "Trang web của bạn",
- "Unable to update {property}" : "Không thể cập nhật {property}",
- "No {property} set" : "Không có {property} nào được đặt",
- "Change scope level of {property}, current scope is {scope}" : "Thay đổi cấp độ phạm vi của {property}, phạm vi hiện tại là {scope}",
- "Unable to update federation scope of the primary {property}" : "Không thể cập nhật phạm vi liên kết của {property} chính",
- "Unable to update federation scope of additional {property}" : "Không thể cập nhật phạm vi liên kết của {property} bổ sung",
- "Add additional email" : "Thêm email bổ sung",
- "Add" : "Thêm",
- "Create" : "Tạo mới",
- "Change" : "Chỉnh sửa",
- "Delete" : "Xóa",
- "Reshare" : "Chia sẻ lại",
- "Default language" : "Ngôn ngữ mặc định",
- "Common languages" : "Ngôn ngữ thông dụng",
- "Other languages" : "Những ngôn ngữ khác",
- "Password change is disabled because the master key is disabled" : "Thay đổi mật khẩu bị vô hiệu hóa vì khóa chính bị vô hiệu hóa",
- "Manager" : "Giám đốc",
- "Display name" : "Tên hiển thị",
- "Either password or email is required" : "Cần có mật khẩu hoặc email",
- "Password (required)" : "Mật khẩu (được yêu câu)",
- "Email (required)" : "Email (bắt buộc)",
- "Email" : "Email",
- "Quota" : "Hạn ngạch",
- "Language" : "Ngôn ngữ",
- "Set default language" : "Đặt ngôn ngữ mặc định",
- "Total rows summary" : "Tóm tắt tổng số hàng",
- "Scroll to load more rows" : "Cuộn để tải thêm hàng",
- "Password or insufficient permissions message" : "Mật khẩu hoặc thông báo không đủ quyền",
- "Avatar" : "Hình đại diện",
- "Account name" : "Tên tài khoản",
- "Group admin for" : "Quản trị viên nhóm",
- "Storage location" : "Khu vực lưu trữ",
- "Last login" : "Lần đăng nhập cuối",
- "Account actions" : "Hành động với tài khoản",
- "{size} used" : "{size} đã sử dụng",
- "Delete account" : "Xóa tài khoản",
- "Resend welcome email" : "Gửi lại email chào mừng",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "Trong trường hợp thiết bị bị mất hoặc thoát khỏi tổ chức, thao tác này có thể xóa từ xa dữ liệu Nextcloud khỏi tất cả các thiết bị được liên kết với {userid}. Chỉ hoạt động nếu các thiết bị được kết nối với internet.",
- "Remote wipe of devices" : "Xóa thiết bị từ xa",
- "Wipe {userid}'s devices" : "Xóa thiết bị của {userid}",
- "Wiped {userid}'s devices" : "Đã xóa thiết bị của {userid}",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "Xóa hoàn toàn tài khoản của {userid}, bao gồm tất cả các tệp cá nhân, dữ liệu ứng dụng của họ, v.v.",
- "Account deletion" : "Xóa tài khoản",
- "Delete {userid}'s account" : "Xóa tài khoản của {userid}",
- "Display name was successfully changed" : "Tên hiển thị đã được thay đổi thành công",
- "Password was successfully changed" : "Mật khẩu đã được thay đổi thành công",
- "Email was successfully changed" : "Email đã được thay đổi thành công",
- "Welcome mail sent!" : "Thư chào mừng đã được gửi!",
- "Change display name" : "Thay đổi tên hiển thị",
- "Set new password" : "Đặt mật khẩu mới",
- "Set new email address" : "Đặt địa chỉ email mới",
- "Set the language" : "Đặt ngôn ngữ",
- "Done" : "Hoàn thành",
- "Edit" : "Chỉnh sửa",
- "Visibility" : "Hiển thị",
- "Show language" : "Hiển thị ngôn ngữ",
- "Show storage path" : "Hiển thị đường dẫn lưu trữ",
- "Show last login" : "Hiển thị lần cuối đăng nhập",
- "Send email" : "Gửi email",
- "Defaults" : "Mặc định",
- "Default quota" : "Hạn ngạch mặc định",
- "Select default quota" : "Chọn hạn ngạch mặc định",
- "Server error while trying to complete WebAuthn device registration" : "Lỗi máy chủ khi cố gắng hoàn tất đăng ký thiết bị WebAuthn",
- "Passwordless authentication requires a secure connection." : "Xác thực không cần mật khẩu yêu cầu kết nối an toàn.",
- "Add WebAuthn device" : "Thêm thiết bị WebAuthn",
- "Please authorize your WebAuthn device." : "Vui lòng ủy quyền cho thiết bị WebAuthn của bạn.",
- "Adding your device …" : "Đang thêm thiết bị của bạn…",
- "Unnamed device" : "Thiết bị chưa được đặt tên",
- "Passwordless Authentication" : "Xác thực không cần mật khẩu",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "Thiết lập tài khoản của bạn để xác thực không cần mật khẩu theo tiêu chuẩn FIDO2.",
- "No devices configured." : "Không có thiết bị nào được định cấu hình.",
- "The following devices are configured for your account:" : "Các thiết bị sau được định cấu hình cho tài khoản của bạn:",
- "Your browser does not support WebAuthn." : "Trình duyệt của bạn không hỗ trợ WebAuthn.",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Với tư cách là quản trị viên, bạn có thể tinh chỉnh hành vi chia sẻ. Vui lòng xem tài liệu để biết thêm thông tin.",
- "You need to enable the File sharing App." : "Bạn cần kích hoạt Ứng dụng chia sẻ tệp.",
- "Admins" : "Quản trị viên",
"Sending…" : "Đang gửi...",
"Email sent" : "Email đã được gửi",
"Location" : "Vị trí",
@@ -402,12 +234,14 @@
"About" : "Giới thiệu",
"Full name" : "Tên đầy đủ",
"Additional email" : "Thư điện tử bổ sung",
+ "Email" : "Email",
"Headline" : "Tiêu đề",
"Organisation" : "Tổ chức",
"Phone number" : "Số điện thoại",
"Role" : "Vai trò",
"Website" : "Website",
"Profile visibility" : "Tấm nhìn hồ sơ",
+ "Language" : "Ngôn ngữ",
"Locale" : "Ngôn ngữ",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "Không có sẵn vì thuộc tính này là bắt buộc đối với chức năng cốt lõi bao gồm chia sẻ tệp và lời mời lịch",
"Your apps" : "Ứng dụng của bạn",
@@ -419,11 +253,13 @@
"Supported apps" : "Ứng dụng được hỗ trợ",
"Show to everyone" : "Hiển thị cho mọi người",
"Hide" : "Ẩn",
+ "Update to {version}" : "Cập nhật tới {version}",
"Download and enable" : "Tải xuống và kích hoạt",
"Disable" : "Tắt",
"Allow untested app" : "Cho phép ứng dụng chưa được kiểm tra",
"The app will be downloaded from the App Store" : "Ứng dụng sẽ được tải xuống từ App Store",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Ứng dụng này không được đánh dấu là tương thích với phiên bản Nextcloud của bạn. Nếu bạn tiếp tục, bạn vẫn có thể cài đặt ứng dụng. Lưu ý rằng ứng dụng có thể không hoạt động như mong đợi.",
+ "{size} used" : "{size} đã sử dụng",
"Unknown" : "Không xác định",
"Never" : "Không bao giờ",
"An error occurred during the request. Unable to proceed." : "Đã xảy ra lỗi trong quá trình yêu cầu. Không thể tiếp tục.",
@@ -436,8 +272,10 @@
"Error while updating device token scope" : "Lỗi trong khi cập nhật phạm vi mã thông báo thiết bị",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Có quá nhiều yêu cầu từ mạng của bạn. Thử lại sau hoặc liên hệ với quản trị viên của bạn nếu đây là lỗi.",
"Error" : "Lỗi",
+ "Default quota" : "Hạn ngạch mặc định",
"Account documentation" : "Tài liệu tài khoản",
"Administration documentation" : "Tài liệu hành chính",
+ "Documentation" : "Tài liệu",
"Forum" : "Diễn đàn",
"General documentation" : "Tài liệu chung",
"Legal notice" : "Thông cáo pháp lý",
@@ -456,6 +294,7 @@
"SMTP Password" : "Mật khẩu SMTP",
"Save" : "Lưu",
"Test and verify email settings" : "Kiểm tra và xác minh cài đặt email",
+ "Send email" : "Gửi email",
"Security & setup warnings" : "Bảo mật và thiết lập cảnh báo",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "Điều quan trọng đối với tính bảo mật và hiệu suất của phiên bản của bạn là mọi thứ đều được đặt cấu hình chính xác. Để giúp bạn điều đó, chúng tôi đang thực hiện một số kiểm tra tự động. Vui lòng xem tài liệu được liên kết để biết thêm thông tin.",
"All checks passed." : "Tất cả các kiểm tra đã thoả điều kiện",
@@ -463,38 +302,6 @@
"There are some warnings regarding your setup." : "Có một số cảnh báo liên quan đến thiết lập của bạn.",
"Checking for system and security issues." : "Kiểm tra các vấn đề về hệ thống và bảo mật.",
"Use a second factor besides your password to increase security for your account." : "Sử dụng yếu tố thứ hai ngoài mật khẩu để tăng tính bảo mật cho tài khoản của bạn.",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "Cơ sở dữ liệu thiếu một số mục. Do thực tế là việc thêm mục trên các bảng lớn có thể mất một chút thời gian, chúng không được thêm tự động. Bằng cách chạy \"occ db:add-missing-indices\", các mục bị thiếu đó có thể được thêm thủ công trong khi phiên bản tiếp tục chạy. Sau khi các mục được thêm vào, các truy vấn vào các bảng đó thường nhanh hơn nhiều.",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "Bạn hiện đang chạy PHP %s. PHP 8.0 hiện không được dùng nữa trong Nextcloud 27. Nextcloud 28 có thể yêu cầu ít nhất PHP 8.1. Vui lòng nâng cấp lên một trong các phiên bản PHP được hỗ trợ chính thức do Nhóm PHP cung cấp càng sớm càng tốt.",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "Phiên bản MariaDB \"%s\" được sử dụng. Nextcloud 21 trở lên không hỗ trợ phiên bản này và yêu cầu MariaDB 10.2 trở lên.",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "Phiên bản MySQL \"%s\" được sử dụng. Nextcloud 21 trở lên không hỗ trợ phiên bản này và yêu cầu MySQL 8.0 hoặc MariaDB 10.2 trở lên.",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "Phiên bản PostgreSQL \"%s\" được sử dụng. Nextcloud 21 trở lên không hỗ trợ phiên bản này và yêu cầu PostgreSQL 9.6 trở lên.",
- "Speech-To-Text" : "Chuyển giọng nói thành văn bản",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "Chuyển giọng nói thành văn bản có thể được triển khai bởi các ứng dụng khác nhau. Tại đây bạn có thể đặt ứng dụng nào sẽ được sử dụng.",
- "None of your currently installed apps provide Speech-To-Text functionality" : "Không có ứng dụng nào bạn cài đặt hiện tại cung cấp chức năng Chuyển giọng nói thành văn bản",
- "None of your currently installed apps provide Text processing functionality" : "Không có ứng dụng nào bạn cài đặt hiện tại cung cấp chức năng xử lý văn bản",
- "Set default expiration date for shares" : "Đặt ngày hết hạn mặc định cho cổ phiếu",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "Cho phép tự động hoàn thành tên người dùng trong hộp thoại chia sẻ và cho phép truy cập vào sổ địa chỉ hệ thống",
- "Your biography" : "Tiểu sử của bạn",
- "You are using <strong>{usage}</strong>" : "Bạn đang sử dụng {usage}",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "Bạn đang sử dụng {usage} trên {totalSpace} ({usageRelative}%)",
- "Set user manager" : "Đặt trình quản lý người dùng",
- "Username will be autogenerated" : "Tên người dùng sẽ được tạo tự động",
- "Username (required)" : "Tên người dùng (bắt buộc)",
- "New user" : "Người dùng mới",
- "Groups (required)" : "Nhóm (bắt buộc)",
- "Set user groups" : "Đặt nhóm người dùng",
- "Administered groups" : "Nhóm được quản lý",
- "Set user as admin for …" : "Đặt người dùng làm quản trị viên cho…",
- "Set user quota" : "Đặt hạn ngạch người dùng",
- "Add new user" : "Thêm người dùng mới",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} người dùng…"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} người dùng"],
- "Loading users …" : "Đang tải người dùng…",
- "Username" : "Tên đăng nhập",
- "User backend" : "Trang cài đặt người dùng",
- "User actions" : "Hành động của người dùng",
- "Add user to group" : "Thêm người dùng vào nhóm",
- "Server error while trying to add WebAuthn device" : "Lỗi máy chủ khi cố gắng thêm thiết bị WebAuthn",
- "Name your device" : "Đặt tên cho thiết bị của bạn"
+ "Set default expiration date for shares" : "Đặt ngày hết hạn mặc định cho cổ phiếu"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/zh_CN.js b/apps/settings/l10n/zh_CN.js
index 096172d5a37..8854653742e 100644
--- a/apps/settings/l10n/zh_CN.js
+++ b/apps/settings/l10n/zh_CN.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP标头",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 标头未设置为 `%2$s`。 某些功能可能无法正常工作,建议相应地调整此设置。",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP标头未设置为 `%2$s`。这可能是潜在的安全或隐私风险,建议调整此设置。",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 标头不包含 `%2$s`。这是一个潜在的安全或隐私风险,建议相应地调整此设置。",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP 头未设置为 `%2$s`、`%3$s`、`%4$s`、`%5$s` 或 `%6$s`。这可能会泄露引用地址信息。请参阅相关文档以获取更多信息:{w3c-recommendation}。",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Strict-Transport-Security` HTTP 头未设置为至少`%d` 秒(当前值:`%d`)。为了增强安全性,建议采用更长的 HSTS 策略。",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Strict-Transport-Security HTTP 头格式不正确:%s。为增强安全性,建议启用 HSTS。",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "建筑风格",
"64-bit" : "64位",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "您似乎正在使用32位的PHP版本。Nextcloud需要64位的PHP版本以便良好运行。请升级您的系统和PHP版本至64位!",
+ "Task Processing pickup speed" : "任务处理拾取速度",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["过去 %n 小时内没有安排任务。"],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["在过去的 %n 小时内,任务拾取速度正常。"],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["在过去的 %n 小时内,任务拾取速度缓慢。许多任务的处理时间超过 4 分钟。请考虑设置一个工作线程在后台处理任务。"],
"Temporary space available" : "可用临时空间",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "检查临时 PHP 路径时出错 - 未正确设置为目录。 返回值: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP 函数 \"disk_free_space\" 被禁用,这会阻止检查临时目录中是否有足够的空间。",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "无法从应用商店加载部分内容。",
"Loading" : "加载中",
"Fetching the latest news…" : "正在获取最新消息...",
- "Carousel" : "轮播",
- "Previous slide" : "上一张幻灯片",
- "Next slide" : "下一张幻灯片",
- "Choose slide to display" : "选择要显示的幻灯片",
- "{index} of {total}" : "第 {index} 页,共 {total} 页",
- "Daemon" : "守护进程",
- "Deploy Daemon" : "部署守护进程",
- "Type" : "类型",
- "Display Name" : "显示名称",
- "GPUs support" : "GPU 支持",
- "Compute device" : "计算设备",
- "Advanced deploy options" : "高级部署选项",
- "Edit ExApp deploy options before installation" : "安装前编辑外部应用部署选项",
- "Configured ExApp deploy options. Can be set only during installation" : "已配置外部应用部署选项,只能在安装过程中设置",
- "Learn more" : "了解更多",
- "Environment variables" : "环境变量",
- "ExApp container environment variables" : "外部应用容器环境变量",
- "No environment variables defined" : "未定义环境变量",
- "Mounts" : "挂载",
- "Define host folder mounts to bind to the ExApp container" : "定义要绑定到外部应用容器的主机文件夹挂载",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "安装外部应用之前,必须存在于部署守护进程主机上",
- "Host path" : "主机路径",
- "Container path" : "容器路径",
- "Read-only" : "只读",
- "Remove mount" : "移除挂载",
- "New mount" : "新挂载",
- "Enter path to host folder" : "输入主机文件夹路径",
- "Enter path to container folder" : "输入容器文件夹的路径",
- "Toggle read-only mode" : "切换只读模式",
- "Confirm adding new mount" : "确认添加新挂载",
- "Confirm" : "确认",
- "Cancel adding mount" : "取消添加挂载",
- "Cancel" : "取消",
- "Add mount" : "添加挂载",
- "ExApp container mounts" : "外部应用容器挂载",
- "No mounts defined" : "未定义挂载",
- "Description" : "描述",
- "View in store" : "在商店中查看",
- "Visit website" : "访问网站",
- "Usage documentation" : "使用手册",
- "Admin documentation" : "管理员文档",
- "Developer documentation" : "开发者文档",
- "Details" : "详情",
- "All" : "全部",
- "Limit app usage to groups" : "限制可使用应用的分组",
- "No results" : "没有结果",
- "Update to {version}" : "更新至 {version}",
- "Deploy options" : "部署选项",
- "Default Deploy daemon is not accessible" : "默认部署守护程序不可访问",
- "Delete data on remove" : "移除时删除数据",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最低版本。可能会在将来出现问题。",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最高版本。可能会在将来出现问题。",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "无法安装应用,因为无法满足下列依赖:",
- "Latest updated" : "最近更新",
- "Author" : "作者",
- "Categories" : "分类",
- "Resources" : "资源",
- "Documentation" : "文档",
- "Interact" : "交互",
- "Report a bug" : "报告问题",
- "Request feature" : "请求功能",
- "Ask questions or discuss" : "提问或讨论",
- "Rate the app" : "对应用进行评分",
- "Rate" : "评价",
- "Changelog" : "更改日志",
- "Google Chrome for Android" : "Android 版 Google Chrome",
- "{productName} iOS app" : "{productName} iOS 应用",
- "{productName} Android app" : "{productName} 安卓应用",
- "{productName} Talk for iOS" : "{productName} iOS 版通话应用",
- "{productName} Talk for Android" : "{productName} Android 版通话应用",
- "Sync client" : "同步客户端",
- "This session" : "当前会话",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "设备名称",
- "Cancel renaming" : "取消重命名",
- "Save new name" : "保存新名称",
- "Marked for remote wipe" : "标记为远程擦除",
- "Device settings" : "设备设置",
- "Allow filesystem access" : "允许访问文件系统",
- "Rename" : "重命名",
- "Revoke" : "撤销",
- "Wipe device" : "擦除设备",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "如果您的设备还没有开始擦除,撤销这个令牌可能会阻止擦除它。",
- "Device" : "设备",
- "Last activity" : "最后活跃",
- "Devices & sessions" : "设备和活动链接",
- "Web, desktop and mobile clients currently logged in to your account." : "您账号当前登录的网页版,桌面和移动客户端。",
- "Error while creating device token" : "创建设备令牌时出错",
- "App name" : "应用名",
- "Create new app password" : "创建新应用密码",
"App password copied!" : "应用程序密码已复制!",
"Copy app password" : "复制应用程序密码",
"Login name copied!" : "登录名称已复制!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "无法更新个人资料默认设置",
"Profile" : "个人资料",
"Enable or disable profile by default for new accounts." : "默认情况下为新账号启用或禁用配置文件。",
+ "Password confirmation is required" : "需要密码确认",
"Failed to save setting" : "保存设置失败",
"{app}'s declarative setting field: {name}" : "{app} 的声明性设置字段:{name}",
"Unable to update server side encryption config" : "无法更新服务端加密设置",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定期备份数据有助于保证数据完整,并且确保备份您的加密数据和加密密钥。",
"Refer to the admin documentation on how to manually also encrypt existing files." : "请参阅管理员文档,了解如何手动加密现有文件。",
"This is the final warning: Do you really want to enable encryption?" : "这是最后一次警告:您确定要启用加密?",
- "Failed to remove group \"{group}\"" : "删除群组 “{group}” 失败",
+ "Failed to delete group \"{group}\"" : "无法删除群组“{group}”",
"Please confirm the group removal" : "请确认移除该群组",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "您即将删除组 \"{group}\" 。 这些帐户不会被删除。",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "您即将删除群组“{group}”。账号将不会被删除。",
+ "Cancel" : "取消",
+ "Confirm" : "确认",
"Submit" : "提交",
"Rename group" : "重命名分组",
- "Remove group" : "删除分组",
- "Current password" : "当前密码",
- "New password" : "新密码",
- "Change password" : "修改密码",
- "Choose your profile picture" : "选择您的个人资料图片",
- "Please select a valid png or jpg file" : "请选择有效的 png 或 jpg 文件",
- "Error setting profile picture" : "设置个人资料图片出错 ",
- "Error cropping profile picture" : "剪裁个人资料图片出错",
- "Error saving profile picture" : "保存个人资料图片出错",
- "Error removing profile picture" : "移除个人资料图片出错",
- "Your profile picture" : "您的个人资料图片",
- "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" : "初始账号提供的图片",
- "Set as profile picture" : "设置为个人资料图片",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "请注意,您的个人资料图片可能需要 24 小时才能在所有地方更新完成。",
- "Your biography. Markdown is supported." : "您的传记,支持 Markdown。",
- "Unable to update date of birth" : "无法更新出生日期",
- "Enter your date of birth" : "輸入您的出生日期",
- "You are using {s}{usage}{/s}" : "您正在使用 {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "您已使用 {s}{usage}{/s},总容量 {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "您是以下群组的成员:",
- "Your full name" : "您的全名",
- "Email options" : "电子邮件选项",
- "Options for additional email address {index}" : "其他电子邮件地址 {index} 的选项",
- "Remove primary email" : "删除主邮件地址",
- "Delete email" : "删除电子邮件",
- "This address is not confirmed" : "此地址未经确认",
- "Unset as primary email" : "取消设为主邮件地址",
- "Set as primary email" : "设为主电子邮件地址",
- "Additional email address {index}" : "附加邮件地址 {index}",
- "Unable to delete primary email address" : "无法删除主电邮地址",
- "Unable to update primary email address" : "无法更新主电邮地址",
- "Unable to add additional email address" : "无法新增附加电邮地址",
- "Unable to update additional email address" : "无法更新附加电邮地址",
- "Unable to delete additional email address" : "无法删除附加电邮地址",
- "Primary email for password reset and notifications" : "用于重设密码和通知的主邮件",
- "No email address set" : "尚未设置 Email 地址",
- "Your handle" : "您的别名",
- "Derived from your locale ({weekDayName})" : "源自你的区域设置 ({weekDayName})",
- "Unable to update first day of week" : "无法更新每周的第一天",
- "Day to use as the first day of week" : "选择星期几作为每周的第一天",
- "Your headline" : "您的标题",
- "Unable to update language" : "无法更新语言",
- "Languages" : "语言",
- "Help translate" : "帮助翻译",
- "No language set" : "没有设置语言",
- "Unable to update locale" : "无法更新语系",
- "Locales" : "地区语系",
- "Week starts on {firstDayOfWeek}" : "每周开始于 {firstDayOfWeek}",
- "No locale set" : "没有设置语系",
- "Your city" : "您的城市",
- "Your organisation" : "您的组织",
- "Your phone number" : "您的电话号码",
- "Edit your Profile visibility" : "编辑个人资料可见性",
- "Unable to update profile enabled state" : "无法更新个人资料启用状态",
- "Enable profile" : "启用简介",
- "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." : "系统将遵循个人资料的 “可见性” 和 “范围” 设置中限制更严格那个。例如,当 “可见性” 设置为 “显示给所有人”,而 “范围” 设置为 “私密” 时,系统将按照 “私密” 来设置您个人资料",
- "Unable to update visibility of {displayId}" : "无法更新 {displayId} 的可见性",
- "she/her" : "她",
- "he/him" : "他",
- "they/them" : "他们",
- "Your role" : "您的角色",
- "Your X (formerly Twitter) handle" : "您的X(原Twitter)用户名",
- "Your website" : "您的网站",
- "Invalid value" : "无效的值",
- "Unable to update {property}" : "无法更新 {property}",
- "No {property} set" : "没有设置 {property}",
- "Change scope level of {property}, current scope is {scope}" : "更改 {property} 的范围级别,当前范围为 {scope}",
- "Unable to update federation scope of the primary {property}" : "无法更新主要 {property} 的联盟范围",
- "Unable to update federation scope of additional {property}" : "无法更新额外 {property} 的联盟范围",
- "Add additional email" : "添加额外的电子邮箱",
- "Add" : "添加",
- "Create" : "创建",
- "Change" : "修改",
- "Delete" : "删除",
- "Reshare" : "再次共享",
- "Default language" : "默认语言",
- "Common languages" : "常用语言",
- "Other languages" : "其他语言",
- "Password change is disabled because the master key is disabled" : "密码修改被禁用,因为主密码被禁用",
- "No accounts" : "没有账号",
- "Loading accounts …" : "正在加载账号...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "帐户列表。 出于性能原因,此列表未完全呈现。 当您浏览列表时,将呈现帐户。",
- "Manager" : "管理者",
- "Set line manager" : "设置行管理员",
- "Account name will be autogenerated" : "账号名称将自动生成",
- "Account name (required)" : "账号名称(必填)",
- "Failed to search groups" : "无法搜索群组",
- "New account" : "新建账号",
- "Display name" : "显示名称",
- "Either password or email is required" : "需要密码或者电子邮件地址",
- "Password (required)" : "密码(必填)",
- "Email (required)" : "电子邮件(必填)",
- "Email" : "电子邮件",
- "Member of the following groups (required)" : "以下群组的成员(必填)",
- "Member of the following groups" : "以下群组的成员",
- "Set account groups" : "设置帐户组",
- "Admin of the following groups" : "以下群组的管理员",
- "Set account as admin for …" : "将帐户设置为管理员...",
- "Quota" : "配额",
- "Set account quota" : "设置账号配额",
- "Language" : "语言",
- "Set default language" : "设置默认语言",
- "Add new account" : "添加新账号",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} 个账号…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} 个账号"],
- "Total rows summary" : "总行摘要",
- "Scroll to load more rows" : "滚动以加载更多列。",
- "Password or insufficient permissions message" : "密码错误或权限不足的提示消息",
- "Avatar" : "头像",
- "Account name" : "账号名称",
- "Group admin for" : "分组管理员",
- "Account backend" : "账户后端",
- "Storage location" : "存储位置",
- "First login" : "首次登录",
- "Last login" : "最后登录",
- "Account actions" : "账号操作",
- "{size} used" : "已使用 {size}",
- "Delete account" : "删除账号",
- "Disconnect all devices and delete local data" : "断开所有设备并删除本地数据",
- "Disable account" : "禁用账号",
- "Enable account" : "启用账号",
- "Resend welcome email" : "重新发送欢迎邮件",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "如果设备丢失或退出组织,这可以从与 {userid} 关联的所有设备中远程擦除 Nextcloud 数据。 仅当设备连接到互联网时才有效。",
- "Remote wipe of devices" : "远程擦除设备",
- "Wipe {userid}'s devices" : "擦除 {userid} 的设备",
- "Wiped {userid}'s devices" : "已抹除 {userid} 的设备",
- "Failed to load groups with details" : "无法加载包含详情的群组",
- "Failed to load sub admin groups with details" : "无法加载包含详情的子管理员群组",
- "Failed to update line manager" : "更新行管理员失败",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "完全删除 {userid} 的账号,包括其所有个人文件,应用程序数据等。",
- "Account deletion" : "账号删除",
- "Delete {userid}'s account" : "删除 {userid} 的账号",
- "Display name was successfully changed" : "显示名称更改成功",
- "Password can't be empty" : "密码不能为空",
- "Password was successfully changed" : "密码更改成功",
- "Email can't be empty" : "电子邮件不能为空",
- "Email was successfully changed" : "电子邮件已成功更改",
- "Welcome mail sent!" : "欢迎邮件已经发送!",
- "Loading account …" : "正在加载账号…",
- "Change display name" : "更改显示名称",
- "Set new password" : "设置新密码",
- "You do not have permissions to see the details of this account" : "你无权限查看此账号的详情",
- "Set new email address" : "设置新电子邮件地址",
- "Add account to group" : "将账号添加到组",
- "Set account as admin for" : "将账号设置为管理员",
- "Select account quota" : "选择账号限额",
- "Set the language" : "设置语言",
- "Toggle account actions menu" : "切换账号操作菜单",
- "Done" : "完成",
- "Edit" : "编辑",
- "Account management settings" : "账号管理设置",
- "Visibility" : "可见性",
- "Show language" : "显示语言",
- "Show account backend" : "显示账号后台",
- "Show storage path" : "显示存储路径",
- "Show first login" : "显示首次登录",
- "Show last login" : "显示最后登录",
- "Sorting" : "正在排序",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "系统配置强制按名称对组进行排序。 这也会禁用显示成员计数。",
- "Group list sorting" : "群组列表排序",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "出于性能原因,排序仅适用于当前加载的群组。当您在列表中导航或搜索时,将加载群组。",
- "By member count" : "按成员数量",
- "By name" : "按用户名",
- "Send email" : "发送电子邮件",
- "Send welcome email to new accounts" : "向新帐号发送欢迎邮件",
- "Defaults" : "默认",
- "Default quota" : "默认配额",
- "Select default quota" : "选择默认存储限额",
- "Server error while trying to complete WebAuthn device registration" : "尝试完成 WebAuthn 设备注册时出现服务器错误",
- "Passwordless authentication requires a secure connection." : "无密码身份验证需要安全的连接。",
- "Add WebAuthn device" : "添加 WebAuthn 设备",
- "Please authorize your WebAuthn device." : "请授权您的 WebAuthn 设备。",
- "Adding your device …" : "正在添加您的设备...",
- "Unnamed device" : "未命名的设备",
- "Passwordless Authentication" : "无密码认证",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "遵循 FIDO2 标准为无密码身份验证设置您的账号。",
- "No devices configured." : "未配置任何设备。",
- "The following devices are configured for your account:" : "为您的帐户配置了以下设备:",
- "Your browser does not support WebAuthn." : "您的浏览器不支持 WebAuthn。",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "作为管理员,您可以调整共享行为。 有关详细信息,请参阅文档。",
- "You need to enable the File sharing App." : "您需要启用文件共享应用",
- "App Store" : "应用商店",
- "Loading app list" : "正在加载应用程序列表",
- "Loading categories" : "正在加载分类",
- "Developer documentation ↗" : "开发者文档 ↗",
- "Version {version}, {license}-licensed" : "版本 {version},授权:{license}",
- "Version {version}" : "版本 {version}",
- "All accounts" : "所有账号",
- "Admins" : "管理员",
- "Account group: {group}" : "账号群组:{group}",
- "Account management" : "账号管理",
+ "Delete group" : "删除群组",
"Sending…" : "正在发送 ...",
"Email sent" : "邮件已发送",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "出于性能原因,当您在 Nextcloud 服务器上启用加密时,仅加密新文件和更改的文件。",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "出生日期",
"Full name" : "全名",
"Additional email" : "附加邮箱",
+ "Email" : "电子邮件",
"Fediverse (e.g. Mastodon)" : "联邦宇宙(例如 Mastodon)",
"Headline" : "标题",
"Organisation" : "组织",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X(原Twitter)",
"Website" : "网站",
"Profile visibility" : "个人资料可见性",
+ "Language" : "语言",
"Locale" : "地区语系",
"First day of week" : "每周的第一天",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "不可用,因为包括文件共享和日历邀请在内的核心功能需要此属性",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "仅向已登录账号显示",
"Hide" : "隐藏",
"Manually installed apps cannot be updated" : "无法更新手动安装的应用",
+ "Update to {version}" : "更新至 {version}",
"{progress}% Deploying …" : "{progress}% 部署…",
"{progress}% Initializing …" : "{progress}% 初始化…",
"Health checking" : "健康检查",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "允许未经测试的应用",
"The app will be downloaded from the App Store" : "将从应用商店下载应用",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "此应用被标记为与您的 Nextcloud 版本不兼容。如果您要继续,您仍可安装此应用。请注意此应用可能不会正常工作。",
+ "{size} used" : "已使用 {size}",
"Unknown" : "未知",
"Never" : "从不",
"Could not register device: Network error" : "无法注册设备:网络错误",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "无法设置群组排序",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "您的网络请求过多。如果出现错误,请稍后重试或与您的管理员联系。",
"Error" : "错误",
+ "Default quota" : "默认配额",
"Account documentation" : "账号文档",
"Administration documentation" : "管理文档",
+ "Documentation" : "文档",
"Forum" : "论坛",
"Nextcloud help & privacy resources" : "Nextcloud 帮助和隐私资源",
"General documentation" : "一般文档",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP 密码",
"Save" : "保存",
"Test and verify email settings" : "测试并验证电子邮箱设置",
+ "Send email" : "发送电子邮件",
"Security & setup warnings" : "安全与设置警告",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "您的每项配置对于实例的安全性和性能都至关重要。 为了帮助您,我们正在做一些自动检查。 有关详细信息,请参阅文档链接。",
"All checks passed." : "所有检查已通过。",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "使用除您密码之外的第二种方法来增强您账号的安全性。",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "如果您使用第三方应用程序连接到 Nextcloud,请确保在启用双因素身份验证之前为每个应用程序创建和配置应用程序密码。",
"Logged in account must be a subadmin" : "登录的账号必须是子管理员",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "要允许此检查运行,您必须确保您的网络服务器可以连接到自身。 因此,它必须能够解析并连接到至少一个 `trusted_domains` 或 `overwrite.cli.url`。",
- "Missing optional index \"%s\" in table \"%s\"." : "索引 \"%s\" 不存在于表 \"%s\"。",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。您可以在 Nextcloud 运行时通过命令行手动执行“occ db:add-missing-indices”命令修复丢失的索引。索引修复后会大大提高相应表的查询速度。",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "要允许此检查运行,您必须确保您的 Web 服务器可以连接到自身。因此,它必须能够解析并连接到其 \"trusted_domains\" 或 \"overwrite.cli.url\" 中的至少一个。此失败可能是服务端 DNS 不匹配或出站防火墙规则的结果。",
"File locking" : "文件锁定",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "事务性文件锁定已禁用,可能会引发争用问题。请在 config.php 中启用 filelocking.enabled 以避免这类问题的发生。",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "无法通过您的任何 “trusted_domains\" 或 \"overwrite.cli.url\" 检查 JavaScript 支持。 这可能是服务端 DNS 不匹配或出站防火墙规则造成的。 请手动检查您的网络服务器是否使用 JavaScript MIME 类型提供 \".mjs\" 文件。",
"The PHP memory limit is below the recommended value of %s." : "PHP 内存限制低于建议值 %s。",
"for WebAuthn passwordless login" : "用于 WebAuthn 无密码登录",
"for WebAuthn passwordless login, and SFTP storage" : "用于 WebAuthn 无密码登录和 SFTP 存储",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "您当前正在使用 PHP %s。在 Nextcloud 27 中 PHP 8.0 已过时,而在 Nextcloud 28 中可能最低需要 PHP 8.1。请尽快升级 PHP 至官方支持的最新版本。",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "正在使用 MariaDB 版本“%s”。Nextcloud 21 及更新版本不再支持此版本,需要 MariaDB 10.2 或更高版本。",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "正在使用 MySQL 版本“%s”。Nextcloud 21 及更新版本不再支持此版本,需要 MySQL 8.0 或 MariaDB 10.2 或更高版本。",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "正在使用 PostgreSQL 版本“%s”。Nextcloud 21 及更新版本不再支持此版本,需要 PostgreSQL 9.6 或更高版本。",
- "Speech-To-Text" : "语音转文本",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "语音转文本可由不同的应用程序实现。您可以在此设置使用哪个应用程序。",
- "None of your currently installed apps provide Speech-To-Text functionality" : "您当前安装的应用程序均不提供语音转文本功能",
- "None of your currently installed apps provide Text processing functionality" : "您当前安装的应用程序均不提供文本处理功能",
- "Set default expiration date for shares" : "设置共享的默认截止日期",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "允许在分享对话框中自动补全用户名并访问系统通讯录",
- "Your biography" : "个人简介",
- "You are using <strong>{usage}</strong>" : "您已使用<strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "您已使用 <strong>{totalSpace}</strong> 中的 <strong>{usage}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "设置用户管理者",
- "Username will be autogenerated" : "用户名将自动生成",
- "Username (required)" : "用户名(必填)",
- "New user" : "新建用户",
- "Groups (required)" : "群组(必填)",
- "Set user groups" : "设置用户群组",
- "Administered groups" : "被管理的群组",
- "Set user as admin for …" : "将用户设置为以下群组的管理员 ...",
- "Set user quota" : "设置用户配额",
- "Add new user" : "添加新用户",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} 个用户 ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} 个用户"],
- "Loading users …" : "正在加载用户 ...",
- "Username" : "用户名",
- "User backend" : "用户来源",
- "User actions" : "用户操作",
- "Add user to group" : "添加用户到组",
- "Server error while trying to add WebAuthn device" : "尝试添加 WebAuthn 设备时出现服务器错误",
- "Name your device" : "为您的设备命名",
- "Active accounts" : "活跃账号",
- "Follow us on Twitter" : "在 Twitter 上关注我们!",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "要允许此检查运行,您必须确保您的 Web 服务器可以连接到自身。因此,它必须能够解析并连接到其 \"trusted_domains\" 或 \"overwrite.cli.url\" 中的至少一个。此失败可能是服务端 DNS 不匹配或出站防火墙规则的结果。",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 标头不包含 `%2$s`。这是一个潜在的安全或隐私风险,建议相应地调整此设置。",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "检测到 PostgreSQL 版本\"%s\"。建议使用 PostgreSQL >=12 和 <=16,以获得此版本 Nextcloud 的最佳性能、稳定性和功能。",
- "Failed to load subadmin groups with details" : "无法加载包含详情的子管理员群组"
+ "Set default expiration date for shares" : "设置共享的默认截止日期"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/zh_CN.json b/apps/settings/l10n/zh_CN.json
index 91535dacb4f..f7305101549 100644
--- a/apps/settings/l10n/zh_CN.json
+++ b/apps/settings/l10n/zh_CN.json
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP标头",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 标头未设置为 `%2$s`。 某些功能可能无法正常工作,建议相应地调整此设置。",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP标头未设置为 `%2$s`。这可能是潜在的安全或隐私风险,建议调整此设置。",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 标头不包含 `%2$s`。这是一个潜在的安全或隐私风险,建议相应地调整此设置。",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP 头未设置为 `%2$s`、`%3$s`、`%4$s`、`%5$s` 或 `%6$s`。这可能会泄露引用地址信息。请参阅相关文档以获取更多信息:{w3c-recommendation}。",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- Strict-Transport-Security` HTTP 头未设置为至少`%d` 秒(当前值:`%d`)。为了增强安全性,建议采用更长的 HSTS 策略。",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- Strict-Transport-Security HTTP 头格式不正确:%s。为增强安全性,建议启用 HSTS。",
@@ -313,6 +312,10 @@
"Architecture" : "建筑风格",
"64-bit" : "64位",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "您似乎正在使用32位的PHP版本。Nextcloud需要64位的PHP版本以便良好运行。请升级您的系统和PHP版本至64位!",
+ "Task Processing pickup speed" : "任务处理拾取速度",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["过去 %n 小时内没有安排任务。"],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["在过去的 %n 小时内,任务拾取速度正常。"],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["在过去的 %n 小时内,任务拾取速度缓慢。许多任务的处理时间超过 4 分钟。请考虑设置一个工作线程在后台处理任务。"],
"Temporary space available" : "可用临时空间",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "检查临时 PHP 路径时出错 - 未正确设置为目录。 返回值: %s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP 函数 \"disk_free_space\" 被禁用,这会阻止检查临时目录中是否有足够的空间。",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "无法从应用商店加载部分内容。",
"Loading" : "加载中",
"Fetching the latest news…" : "正在获取最新消息...",
- "Carousel" : "轮播",
- "Previous slide" : "上一张幻灯片",
- "Next slide" : "下一张幻灯片",
- "Choose slide to display" : "选择要显示的幻灯片",
- "{index} of {total}" : "第 {index} 页,共 {total} 页",
- "Daemon" : "守护进程",
- "Deploy Daemon" : "部署守护进程",
- "Type" : "类型",
- "Display Name" : "显示名称",
- "GPUs support" : "GPU 支持",
- "Compute device" : "计算设备",
- "Advanced deploy options" : "高级部署选项",
- "Edit ExApp deploy options before installation" : "安装前编辑外部应用部署选项",
- "Configured ExApp deploy options. Can be set only during installation" : "已配置外部应用部署选项,只能在安装过程中设置",
- "Learn more" : "了解更多",
- "Environment variables" : "环境变量",
- "ExApp container environment variables" : "外部应用容器环境变量",
- "No environment variables defined" : "未定义环境变量",
- "Mounts" : "挂载",
- "Define host folder mounts to bind to the ExApp container" : "定义要绑定到外部应用容器的主机文件夹挂载",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "安装外部应用之前,必须存在于部署守护进程主机上",
- "Host path" : "主机路径",
- "Container path" : "容器路径",
- "Read-only" : "只读",
- "Remove mount" : "移除挂载",
- "New mount" : "新挂载",
- "Enter path to host folder" : "输入主机文件夹路径",
- "Enter path to container folder" : "输入容器文件夹的路径",
- "Toggle read-only mode" : "切换只读模式",
- "Confirm adding new mount" : "确认添加新挂载",
- "Confirm" : "确认",
- "Cancel adding mount" : "取消添加挂载",
- "Cancel" : "取消",
- "Add mount" : "添加挂载",
- "ExApp container mounts" : "外部应用容器挂载",
- "No mounts defined" : "未定义挂载",
- "Description" : "描述",
- "View in store" : "在商店中查看",
- "Visit website" : "访问网站",
- "Usage documentation" : "使用手册",
- "Admin documentation" : "管理员文档",
- "Developer documentation" : "开发者文档",
- "Details" : "详情",
- "All" : "全部",
- "Limit app usage to groups" : "限制可使用应用的分组",
- "No results" : "没有结果",
- "Update to {version}" : "更新至 {version}",
- "Deploy options" : "部署选项",
- "Default Deploy daemon is not accessible" : "默认部署守护程序不可访问",
- "Delete data on remove" : "移除时删除数据",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最低版本。可能会在将来出现问题。",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最高版本。可能会在将来出现问题。",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "无法安装应用,因为无法满足下列依赖:",
- "Latest updated" : "最近更新",
- "Author" : "作者",
- "Categories" : "分类",
- "Resources" : "资源",
- "Documentation" : "文档",
- "Interact" : "交互",
- "Report a bug" : "报告问题",
- "Request feature" : "请求功能",
- "Ask questions or discuss" : "提问或讨论",
- "Rate the app" : "对应用进行评分",
- "Rate" : "评价",
- "Changelog" : "更改日志",
- "Google Chrome for Android" : "Android 版 Google Chrome",
- "{productName} iOS app" : "{productName} iOS 应用",
- "{productName} Android app" : "{productName} 安卓应用",
- "{productName} Talk for iOS" : "{productName} iOS 版通话应用",
- "{productName} Talk for Android" : "{productName} Android 版通话应用",
- "Sync client" : "同步客户端",
- "This session" : "当前会话",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "设备名称",
- "Cancel renaming" : "取消重命名",
- "Save new name" : "保存新名称",
- "Marked for remote wipe" : "标记为远程擦除",
- "Device settings" : "设备设置",
- "Allow filesystem access" : "允许访问文件系统",
- "Rename" : "重命名",
- "Revoke" : "撤销",
- "Wipe device" : "擦除设备",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "如果您的设备还没有开始擦除,撤销这个令牌可能会阻止擦除它。",
- "Device" : "设备",
- "Last activity" : "最后活跃",
- "Devices & sessions" : "设备和活动链接",
- "Web, desktop and mobile clients currently logged in to your account." : "您账号当前登录的网页版,桌面和移动客户端。",
- "Error while creating device token" : "创建设备令牌时出错",
- "App name" : "应用名",
- "Create new app password" : "创建新应用密码",
"App password copied!" : "应用程序密码已复制!",
"Copy app password" : "复制应用程序密码",
"Login name copied!" : "登录名称已复制!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "无法更新个人资料默认设置",
"Profile" : "个人资料",
"Enable or disable profile by default for new accounts." : "默认情况下为新账号启用或禁用配置文件。",
+ "Password confirmation is required" : "需要密码确认",
"Failed to save setting" : "保存设置失败",
"{app}'s declarative setting field: {name}" : "{app} 的声明性设置字段:{name}",
"Unable to update server side encryption config" : "无法更新服务端加密设置",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定期备份数据有助于保证数据完整,并且确保备份您的加密数据和加密密钥。",
"Refer to the admin documentation on how to manually also encrypt existing files." : "请参阅管理员文档,了解如何手动加密现有文件。",
"This is the final warning: Do you really want to enable encryption?" : "这是最后一次警告:您确定要启用加密?",
- "Failed to remove group \"{group}\"" : "删除群组 “{group}” 失败",
+ "Failed to delete group \"{group}\"" : "无法删除群组“{group}”",
"Please confirm the group removal" : "请确认移除该群组",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "您即将删除组 \"{group}\" 。 这些帐户不会被删除。",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "您即将删除群组“{group}”。账号将不会被删除。",
+ "Cancel" : "取消",
+ "Confirm" : "确认",
"Submit" : "提交",
"Rename group" : "重命名分组",
- "Remove group" : "删除分组",
- "Current password" : "当前密码",
- "New password" : "新密码",
- "Change password" : "修改密码",
- "Choose your profile picture" : "选择您的个人资料图片",
- "Please select a valid png or jpg file" : "请选择有效的 png 或 jpg 文件",
- "Error setting profile picture" : "设置个人资料图片出错 ",
- "Error cropping profile picture" : "剪裁个人资料图片出错",
- "Error saving profile picture" : "保存个人资料图片出错",
- "Error removing profile picture" : "移除个人资料图片出错",
- "Your profile picture" : "您的个人资料图片",
- "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" : "初始账号提供的图片",
- "Set as profile picture" : "设置为个人资料图片",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "请注意,您的个人资料图片可能需要 24 小时才能在所有地方更新完成。",
- "Your biography. Markdown is supported." : "您的传记,支持 Markdown。",
- "Unable to update date of birth" : "无法更新出生日期",
- "Enter your date of birth" : "輸入您的出生日期",
- "You are using {s}{usage}{/s}" : "您正在使用 {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "您已使用 {s}{usage}{/s},总容量 {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "您是以下群组的成员:",
- "Your full name" : "您的全名",
- "Email options" : "电子邮件选项",
- "Options for additional email address {index}" : "其他电子邮件地址 {index} 的选项",
- "Remove primary email" : "删除主邮件地址",
- "Delete email" : "删除电子邮件",
- "This address is not confirmed" : "此地址未经确认",
- "Unset as primary email" : "取消设为主邮件地址",
- "Set as primary email" : "设为主电子邮件地址",
- "Additional email address {index}" : "附加邮件地址 {index}",
- "Unable to delete primary email address" : "无法删除主电邮地址",
- "Unable to update primary email address" : "无法更新主电邮地址",
- "Unable to add additional email address" : "无法新增附加电邮地址",
- "Unable to update additional email address" : "无法更新附加电邮地址",
- "Unable to delete additional email address" : "无法删除附加电邮地址",
- "Primary email for password reset and notifications" : "用于重设密码和通知的主邮件",
- "No email address set" : "尚未设置 Email 地址",
- "Your handle" : "您的别名",
- "Derived from your locale ({weekDayName})" : "源自你的区域设置 ({weekDayName})",
- "Unable to update first day of week" : "无法更新每周的第一天",
- "Day to use as the first day of week" : "选择星期几作为每周的第一天",
- "Your headline" : "您的标题",
- "Unable to update language" : "无法更新语言",
- "Languages" : "语言",
- "Help translate" : "帮助翻译",
- "No language set" : "没有设置语言",
- "Unable to update locale" : "无法更新语系",
- "Locales" : "地区语系",
- "Week starts on {firstDayOfWeek}" : "每周开始于 {firstDayOfWeek}",
- "No locale set" : "没有设置语系",
- "Your city" : "您的城市",
- "Your organisation" : "您的组织",
- "Your phone number" : "您的电话号码",
- "Edit your Profile visibility" : "编辑个人资料可见性",
- "Unable to update profile enabled state" : "无法更新个人资料启用状态",
- "Enable profile" : "启用简介",
- "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." : "系统将遵循个人资料的 “可见性” 和 “范围” 设置中限制更严格那个。例如,当 “可见性” 设置为 “显示给所有人”,而 “范围” 设置为 “私密” 时,系统将按照 “私密” 来设置您个人资料",
- "Unable to update visibility of {displayId}" : "无法更新 {displayId} 的可见性",
- "she/her" : "她",
- "he/him" : "他",
- "they/them" : "他们",
- "Your role" : "您的角色",
- "Your X (formerly Twitter) handle" : "您的X(原Twitter)用户名",
- "Your website" : "您的网站",
- "Invalid value" : "无效的值",
- "Unable to update {property}" : "无法更新 {property}",
- "No {property} set" : "没有设置 {property}",
- "Change scope level of {property}, current scope is {scope}" : "更改 {property} 的范围级别,当前范围为 {scope}",
- "Unable to update federation scope of the primary {property}" : "无法更新主要 {property} 的联盟范围",
- "Unable to update federation scope of additional {property}" : "无法更新额外 {property} 的联盟范围",
- "Add additional email" : "添加额外的电子邮箱",
- "Add" : "添加",
- "Create" : "创建",
- "Change" : "修改",
- "Delete" : "删除",
- "Reshare" : "再次共享",
- "Default language" : "默认语言",
- "Common languages" : "常用语言",
- "Other languages" : "其他语言",
- "Password change is disabled because the master key is disabled" : "密码修改被禁用,因为主密码被禁用",
- "No accounts" : "没有账号",
- "Loading accounts …" : "正在加载账号...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "帐户列表。 出于性能原因,此列表未完全呈现。 当您浏览列表时,将呈现帐户。",
- "Manager" : "管理者",
- "Set line manager" : "设置行管理员",
- "Account name will be autogenerated" : "账号名称将自动生成",
- "Account name (required)" : "账号名称(必填)",
- "Failed to search groups" : "无法搜索群组",
- "New account" : "新建账号",
- "Display name" : "显示名称",
- "Either password or email is required" : "需要密码或者电子邮件地址",
- "Password (required)" : "密码(必填)",
- "Email (required)" : "电子邮件(必填)",
- "Email" : "电子邮件",
- "Member of the following groups (required)" : "以下群组的成员(必填)",
- "Member of the following groups" : "以下群组的成员",
- "Set account groups" : "设置帐户组",
- "Admin of the following groups" : "以下群组的管理员",
- "Set account as admin for …" : "将帐户设置为管理员...",
- "Quota" : "配额",
- "Set account quota" : "设置账号配额",
- "Language" : "语言",
- "Set default language" : "设置默认语言",
- "Add new account" : "添加新账号",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} 个账号…"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} 个账号"],
- "Total rows summary" : "总行摘要",
- "Scroll to load more rows" : "滚动以加载更多列。",
- "Password or insufficient permissions message" : "密码错误或权限不足的提示消息",
- "Avatar" : "头像",
- "Account name" : "账号名称",
- "Group admin for" : "分组管理员",
- "Account backend" : "账户后端",
- "Storage location" : "存储位置",
- "First login" : "首次登录",
- "Last login" : "最后登录",
- "Account actions" : "账号操作",
- "{size} used" : "已使用 {size}",
- "Delete account" : "删除账号",
- "Disconnect all devices and delete local data" : "断开所有设备并删除本地数据",
- "Disable account" : "禁用账号",
- "Enable account" : "启用账号",
- "Resend welcome email" : "重新发送欢迎邮件",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "如果设备丢失或退出组织,这可以从与 {userid} 关联的所有设备中远程擦除 Nextcloud 数据。 仅当设备连接到互联网时才有效。",
- "Remote wipe of devices" : "远程擦除设备",
- "Wipe {userid}'s devices" : "擦除 {userid} 的设备",
- "Wiped {userid}'s devices" : "已抹除 {userid} 的设备",
- "Failed to load groups with details" : "无法加载包含详情的群组",
- "Failed to load sub admin groups with details" : "无法加载包含详情的子管理员群组",
- "Failed to update line manager" : "更新行管理员失败",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "完全删除 {userid} 的账号,包括其所有个人文件,应用程序数据等。",
- "Account deletion" : "账号删除",
- "Delete {userid}'s account" : "删除 {userid} 的账号",
- "Display name was successfully changed" : "显示名称更改成功",
- "Password can't be empty" : "密码不能为空",
- "Password was successfully changed" : "密码更改成功",
- "Email can't be empty" : "电子邮件不能为空",
- "Email was successfully changed" : "电子邮件已成功更改",
- "Welcome mail sent!" : "欢迎邮件已经发送!",
- "Loading account …" : "正在加载账号…",
- "Change display name" : "更改显示名称",
- "Set new password" : "设置新密码",
- "You do not have permissions to see the details of this account" : "你无权限查看此账号的详情",
- "Set new email address" : "设置新电子邮件地址",
- "Add account to group" : "将账号添加到组",
- "Set account as admin for" : "将账号设置为管理员",
- "Select account quota" : "选择账号限额",
- "Set the language" : "设置语言",
- "Toggle account actions menu" : "切换账号操作菜单",
- "Done" : "完成",
- "Edit" : "编辑",
- "Account management settings" : "账号管理设置",
- "Visibility" : "可见性",
- "Show language" : "显示语言",
- "Show account backend" : "显示账号后台",
- "Show storage path" : "显示存储路径",
- "Show first login" : "显示首次登录",
- "Show last login" : "显示最后登录",
- "Sorting" : "正在排序",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "系统配置强制按名称对组进行排序。 这也会禁用显示成员计数。",
- "Group list sorting" : "群组列表排序",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "出于性能原因,排序仅适用于当前加载的群组。当您在列表中导航或搜索时,将加载群组。",
- "By member count" : "按成员数量",
- "By name" : "按用户名",
- "Send email" : "发送电子邮件",
- "Send welcome email to new accounts" : "向新帐号发送欢迎邮件",
- "Defaults" : "默认",
- "Default quota" : "默认配额",
- "Select default quota" : "选择默认存储限额",
- "Server error while trying to complete WebAuthn device registration" : "尝试完成 WebAuthn 设备注册时出现服务器错误",
- "Passwordless authentication requires a secure connection." : "无密码身份验证需要安全的连接。",
- "Add WebAuthn device" : "添加 WebAuthn 设备",
- "Please authorize your WebAuthn device." : "请授权您的 WebAuthn 设备。",
- "Adding your device …" : "正在添加您的设备...",
- "Unnamed device" : "未命名的设备",
- "Passwordless Authentication" : "无密码认证",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "遵循 FIDO2 标准为无密码身份验证设置您的账号。",
- "No devices configured." : "未配置任何设备。",
- "The following devices are configured for your account:" : "为您的帐户配置了以下设备:",
- "Your browser does not support WebAuthn." : "您的浏览器不支持 WebAuthn。",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "作为管理员,您可以调整共享行为。 有关详细信息,请参阅文档。",
- "You need to enable the File sharing App." : "您需要启用文件共享应用",
- "App Store" : "应用商店",
- "Loading app list" : "正在加载应用程序列表",
- "Loading categories" : "正在加载分类",
- "Developer documentation ↗" : "开发者文档 ↗",
- "Version {version}, {license}-licensed" : "版本 {version},授权:{license}",
- "Version {version}" : "版本 {version}",
- "All accounts" : "所有账号",
- "Admins" : "管理员",
- "Account group: {group}" : "账号群组:{group}",
- "Account management" : "账号管理",
+ "Delete group" : "删除群组",
"Sending…" : "正在发送 ...",
"Email sent" : "邮件已发送",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "出于性能原因,当您在 Nextcloud 服务器上启用加密时,仅加密新文件和更改的文件。",
@@ -790,6 +511,7 @@
"Date of birth" : "出生日期",
"Full name" : "全名",
"Additional email" : "附加邮箱",
+ "Email" : "电子邮件",
"Fediverse (e.g. Mastodon)" : "联邦宇宙(例如 Mastodon)",
"Headline" : "标题",
"Organisation" : "组织",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X(原Twitter)",
"Website" : "网站",
"Profile visibility" : "个人资料可见性",
+ "Language" : "语言",
"Locale" : "地区语系",
"First day of week" : "每周的第一天",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "不可用,因为包括文件共享和日历邀请在内的核心功能需要此属性",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "仅向已登录账号显示",
"Hide" : "隐藏",
"Manually installed apps cannot be updated" : "无法更新手动安装的应用",
+ "Update to {version}" : "更新至 {version}",
"{progress}% Deploying …" : "{progress}% 部署…",
"{progress}% Initializing …" : "{progress}% 初始化…",
"Health checking" : "健康检查",
@@ -825,6 +549,7 @@
"Allow untested app" : "允许未经测试的应用",
"The app will be downloaded from the App Store" : "将从应用商店下载应用",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "此应用被标记为与您的 Nextcloud 版本不兼容。如果您要继续,您仍可安装此应用。请注意此应用可能不会正常工作。",
+ "{size} used" : "已使用 {size}",
"Unknown" : "未知",
"Never" : "从不",
"Could not register device: Network error" : "无法注册设备:网络错误",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "无法设置群组排序",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "您的网络请求过多。如果出现错误,请稍后重试或与您的管理员联系。",
"Error" : "错误",
+ "Default quota" : "默认配额",
"Account documentation" : "账号文档",
"Administration documentation" : "管理文档",
+ "Documentation" : "文档",
"Forum" : "论坛",
"Nextcloud help & privacy resources" : "Nextcloud 帮助和隐私资源",
"General documentation" : "一般文档",
@@ -867,6 +594,7 @@
"SMTP Password" : "SMTP 密码",
"Save" : "保存",
"Test and verify email settings" : "测试并验证电子邮箱设置",
+ "Send email" : "发送电子邮件",
"Security & setup warnings" : "安全与设置警告",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "您的每项配置对于实例的安全性和性能都至关重要。 为了帮助您,我们正在做一些自动检查。 有关详细信息,请参阅文档链接。",
"All checks passed." : "所有检查已通过。",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "使用除您密码之外的第二种方法来增强您账号的安全性。",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "如果您使用第三方应用程序连接到 Nextcloud,请确保在启用双因素身份验证之前为每个应用程序创建和配置应用程序密码。",
"Logged in account must be a subadmin" : "登录的账号必须是子管理员",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "要允许此检查运行,您必须确保您的网络服务器可以连接到自身。 因此,它必须能够解析并连接到至少一个 `trusted_domains` 或 `overwrite.cli.url`。",
- "Missing optional index \"%s\" in table \"%s\"." : "索引 \"%s\" 不存在于表 \"%s\"。",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。您可以在 Nextcloud 运行时通过命令行手动执行“occ db:add-missing-indices”命令修复丢失的索引。索引修复后会大大提高相应表的查询速度。",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "要允许此检查运行,您必须确保您的 Web 服务器可以连接到自身。因此,它必须能够解析并连接到其 \"trusted_domains\" 或 \"overwrite.cli.url\" 中的至少一个。此失败可能是服务端 DNS 不匹配或出站防火墙规则的结果。",
"File locking" : "文件锁定",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "事务性文件锁定已禁用,可能会引发争用问题。请在 config.php 中启用 filelocking.enabled 以避免这类问题的发生。",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "无法通过您的任何 “trusted_domains\" 或 \"overwrite.cli.url\" 检查 JavaScript 支持。 这可能是服务端 DNS 不匹配或出站防火墙规则造成的。 请手动检查您的网络服务器是否使用 JavaScript MIME 类型提供 \".mjs\" 文件。",
"The PHP memory limit is below the recommended value of %s." : "PHP 内存限制低于建议值 %s。",
"for WebAuthn passwordless login" : "用于 WebAuthn 无密码登录",
"for WebAuthn passwordless login, and SFTP storage" : "用于 WebAuthn 无密码登录和 SFTP 存储",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "您当前正在使用 PHP %s。在 Nextcloud 27 中 PHP 8.0 已过时,而在 Nextcloud 28 中可能最低需要 PHP 8.1。请尽快升级 PHP 至官方支持的最新版本。",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "正在使用 MariaDB 版本“%s”。Nextcloud 21 及更新版本不再支持此版本,需要 MariaDB 10.2 或更高版本。",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "正在使用 MySQL 版本“%s”。Nextcloud 21 及更新版本不再支持此版本,需要 MySQL 8.0 或 MariaDB 10.2 或更高版本。",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "正在使用 PostgreSQL 版本“%s”。Nextcloud 21 及更新版本不再支持此版本,需要 PostgreSQL 9.6 或更高版本。",
- "Speech-To-Text" : "语音转文本",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "语音转文本可由不同的应用程序实现。您可以在此设置使用哪个应用程序。",
- "None of your currently installed apps provide Speech-To-Text functionality" : "您当前安装的应用程序均不提供语音转文本功能",
- "None of your currently installed apps provide Text processing functionality" : "您当前安装的应用程序均不提供文本处理功能",
- "Set default expiration date for shares" : "设置共享的默认截止日期",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "允许在分享对话框中自动补全用户名并访问系统通讯录",
- "Your biography" : "个人简介",
- "You are using <strong>{usage}</strong>" : "您已使用<strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "您已使用 <strong>{totalSpace}</strong> 中的 <strong>{usage}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "设置用户管理者",
- "Username will be autogenerated" : "用户名将自动生成",
- "Username (required)" : "用户名(必填)",
- "New user" : "新建用户",
- "Groups (required)" : "群组(必填)",
- "Set user groups" : "设置用户群组",
- "Administered groups" : "被管理的群组",
- "Set user as admin for …" : "将用户设置为以下群组的管理员 ...",
- "Set user quota" : "设置用户配额",
- "Add new user" : "添加新用户",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} 个用户 ..."],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} 个用户"],
- "Loading users …" : "正在加载用户 ...",
- "Username" : "用户名",
- "User backend" : "用户来源",
- "User actions" : "用户操作",
- "Add user to group" : "添加用户到组",
- "Server error while trying to add WebAuthn device" : "尝试添加 WebAuthn 设备时出现服务器错误",
- "Name your device" : "为您的设备命名",
- "Active accounts" : "活跃账号",
- "Follow us on Twitter" : "在 Twitter 上关注我们!",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "要允许此检查运行,您必须确保您的 Web 服务器可以连接到自身。因此,它必须能够解析并连接到其 \"trusted_domains\" 或 \"overwrite.cli.url\" 中的至少一个。此失败可能是服务端 DNS 不匹配或出站防火墙规则的结果。",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 标头不包含 `%2$s`。这是一个潜在的安全或隐私风险,建议相应地调整此设置。",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "检测到 PostgreSQL 版本\"%s\"。建议使用 PostgreSQL >=12 和 <=16,以获得此版本 Nextcloud 的最佳性能、稳定性和功能。",
- "Failed to load subadmin groups with details" : "无法加载包含详情的子管理员群组"
+ "Set default expiration date for shares" : "设置共享的默认截止日期"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/zh_HK.js b/apps/settings/l10n/zh_HK.js
index d86e967118e..8ccb8b892c7 100644
--- a/apps/settings/l10n/zh_HK.js
+++ b/apps/settings/l10n/zh_HK.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP 標頭",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`。部份功能可能無法正常運作,建議調整此項設定。",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並不包含 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`、`%3$s`、`%4$s`、`%5$s` 或 `%6$s`。這可能會洩漏參照位址資訊。請見 {w3c-recommendation}。",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTP 標頭並未設定為至少 `%d` 秒(目前值:`%d`)。為了強化安全性,建議使用較長的 HSTS 政策。",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTP 標頭格式錯誤:`%s`。為了強化安全性,建議啟用 HSTS。",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "建築學",
"64-bit" : "64 位元",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "您似乎正在執行 32 位元版本的 PHP。Nextcloud 需要 64 位元才能運作良好。請將您的作業系統與 PHP 升級至 64 位元!",
+ "Task Processing pickup speed" : "任務處理提取速度",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["最近 %n 小時內沒有預先安排好的的任務。"],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["在最近 %n 小時內,任務的提取速度正常。"],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["最近 %n 小時內,任務提取速度較慢。許多任務花了超過4分鐘才被提取。考慮設置一個工作人員在背景中處理任務。"],
"Temporary space available" : "可用臨時空間",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "檢查臨時 PHP 路徑時發生錯誤 - 未正確設定為目錄。回傳值:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP 函式「disk_free_space」已停用,這會導致無法檢查臨時目錄中的剩餘空間。",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "無法從應用程式商店載入部份內容。",
"Loading" : "加載中",
"Fetching the latest news…" : "正在擷取最新新聞 …",
- "Carousel" : "輪播",
- "Previous slide" : "上一張投影片",
- "Next slide" : "下一張投影片",
- "Choose slide to display" : "選擇要顯示的投影片",
- "{index} of {total}" : "第 {index} 張,共 {total} 張",
- "Daemon" : "守護程式",
- "Deploy Daemon" : "部署幕後程式",
- "Type" : "類型",
- "Display Name" : "顯示名稱",
- "GPUs support" : "GPUs 支援",
- "Compute device" : "計算裝置",
- "Advanced deploy options" : "進階部署選項",
- "Edit ExApp deploy options before installation" : "在安裝前編輯 ExApp 部署選項",
- "Configured ExApp deploy options. Can be set only during installation" : "設定的 ExApp 部署選項。僅能在安裝時設定",
- "Learn more" : "了解更多",
- "Environment variables" : "環境變數",
- "ExApp container environment variables" : "ExApp 容器環境變數",
- "No environment variables defined" : "未定義環境變數",
- "Mounts" : "掛載",
- "Define host folder mounts to bind to the ExApp container" : "定義要綁紮到 ExApp 容器的主機資料夾掛載",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "在安裝 ExApp 前,必須存在於部署幕後程式主機上",
- "Host path" : "主機路徑",
- "Container path" : "容器路徑",
- "Read-only" : "唯讀",
- "Remove mount" : "移除掛載",
- "New mount" : "新掛載",
- "Enter path to host folder" : "輸入主機資料夾的路徑",
- "Enter path to container folder" : "輸入容器資料夾的路徑",
- "Toggle read-only mode" : "切換唯讀模式",
- "Confirm adding new mount" : "確認新增掛載",
- "Confirm" : "確認",
- "Cancel adding mount" : "取消新增掛載",
- "Cancel" : "取消",
- "Add mount" : "新增掛載",
- "ExApp container mounts" : "ExApp 容器掛載",
- "No mounts defined" : "未定義掛載",
- "Description" : "描述",
- "View in store" : "在商店中檢視",
- "Visit website" : "造訪網站",
- "Usage documentation" : "使用手冊",
- "Admin documentation" : "管理員使用手冊",
- "Developer documentation" : "開發人員使用手冊",
- "Details" : "詳細資訊",
- "All" : "所有",
- "Limit app usage to groups" : "限制特定群組使用應用程式",
- "No results" : "沒有結果",
- "Update to {version}" : "更新到 {version}",
- "Deploy options" : "部署選項",
- "Default Deploy daemon is not accessible" : "默認部署幕後程式無法使用",
- "Delete data on remove" : "移除時刪除數據",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "此應用程式並未指定最低的 Nextcloud 版本。未來可能會出現錯誤。",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "此應用程式並未指定最高的 Nextcloud 版本。未來可能會出現錯誤。",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "無法安裝此應用程式,因為無法滿足下列的依賴關係:",
- "Latest updated" : "最近更新",
- "Author" : "作者",
- "Categories" : "分類",
- "Resources" : "資源",
- "Documentation" : "使用手冊",
- "Interact" : "相互作用",
- "Report a bug" : "舉報錯誤",
- "Request feature" : "請求功能",
- "Ask questions or discuss" : "發問或討論",
- "Rate the app" : "評價此應用程式",
- "Rate" : "評價",
- "Changelog" : "軟件更新紀錄",
- "Google Chrome for Android" : "Android 版 Google Chrome",
- "{productName} iOS app" : "{productName} iOS 應用程式",
- "{productName} Android app" : "{productName} Android 應用程式",
- "{productName} Talk for iOS" : "{productName} Talk - iOS 版",
- "{productName} Talk for Android" : "{productName} Talk - Android 版",
- "Sync client" : "同步客戶端",
- "This session" : "此節",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "裝置名字",
- "Cancel renaming" : "取消重新命名",
- "Save new name" : "儲存新名稱",
- "Marked for remote wipe" : "標記為可遠端抹除",
- "Device settings" : "裝置設定",
- "Allow filesystem access" : "允許檔案系統的存取",
- "Rename" : "重新命名",
- "Revoke" : "撤銷",
- "Wipe device" : "抹除裝置",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。",
- "Device" : "裝置",
- "Last activity" : "上次活動",
- "Devices & sessions" : "裝置和時段",
- "Web, desktop and mobile clients currently logged in to your account." : "目前登入您帳戶的網絡、桌面和流動裝置客戶端。",
- "Error while creating device token" : "建立裝置權杖時發生錯誤",
- "App name" : "應用程式名稱",
- "Create new app password" : "建立新的應用程式密碼",
"App password copied!" : "已複製應用程式密碼!",
"Copy app password" : "複製應用程式密碼",
"Login name copied!" : "已複製登入名稱!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "無法更新個人檔案默認設定。",
"Profile" : "個人設定",
"Enable or disable profile by default for new accounts." : "預設情況下為新帳戶啟用或停用個人檔案。",
+ "Password confirmation is required" : "需要密碼確認",
"Failed to save setting" : "儲存設定失敗",
"{app}'s declarative setting field: {name}" : "{app} 的聲明性設定欄位:{name}",
"Unable to update server side encryption config" : "無法更新伺服器端加密配置",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定時備份您的資料沒有壞處,若您有啟用加密,請確保您也有備份加密金鑰。",
"Refer to the admin documentation on how to manually also encrypt existing files." : "請參考管理說明書,了解如何手動加密現有檔案。",
"This is the final warning: Do you really want to enable encryption?" : "這是最後的警告:請問您真的要開啟加密模式?",
- "Failed to remove group \"{group}\"" : "移除群組「{group}」失敗",
+ "Failed to delete group \"{group}\"" : "無法刪除群組「{group}」",
"Please confirm the group removal" : "請確認移除群組",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "您將要移除群組「{group}」。帳戶將不會被刪除。",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "您將要刪除群組「{group}」。帳戶將不會被刪除。",
+ "Cancel" : "取消",
+ "Confirm" : "確認",
"Submit" : "遞交",
"Rename group" : "重新命名群組",
- "Remove group" : "移除群組",
- "Current password" : "目前密碼",
- "New password" : "新密碼",
- "Change password" : "更改密碼",
- "Choose your profile picture" : "選擇您的個人資料圖片",
- "Please select a valid png or jpg file" : "請選擇有效的 png 或 jpg 檔案",
- "Error setting profile picture" : "設定個人資料圖片時出錯",
- "Error cropping profile picture" : "裁剪個人資料圖片時出錯",
- "Error saving profile picture" : "儲存個人資料圖片時出錯",
- "Error removing profile picture" : "移除個人資料圖片時出錯",
- "Your profile picture" : "您的個人資料圖片",
- "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" : "原始帳戶提供的圖片",
- "Set as profile picture" : "設定為個人資料圖片",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "請注意,您的個人資料圖片最長可能需要24小時才能在所有地方更新。",
- "Your biography. Markdown is supported." : "您的自傳。支援 Markdown。",
- "Unable to update date of birth" : "無法更新出生日期",
- "Enter your date of birth" : "輸入您的出生日期",
- "You are using {s}{usage}{/s}" : "您正在使用 {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "您正在使用 {s}{usage}{/s},總儲存空間 {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "你是下列群組的成員︰",
- "Your full name" : "您的全名",
- "Email options" : "電子郵件通知選項",
- "Options for additional email address {index}" : "額外的電郵地址 {index} 的選項",
- "Remove primary email" : "刪除主要電郵地址",
- "Delete email" : "刪除電郵地址",
- "This address is not confirmed" : "此地址尚未確認",
- "Unset as primary email" : "取消設定為主要電郵地址",
- "Set as primary email" : "設為主要電郵地址",
- "Additional email address {index}" : "附加電郵地址 {index}",
- "Unable to delete primary email address" : "無法刪除主電郵地址",
- "Unable to update primary email address" : "無法更新主電郵地址",
- "Unable to add additional email address" : "無法添加其他電郵地址",
- "Unable to update additional email address" : "無法更新其他電郵地址",
- "Unable to delete additional email address" : "無法刪除其他電郵地址",
- "Primary email for password reset and notifications" : "用於密碼重設和通告信件的主要電郵地址",
- "No email address set" : "未設定電郵地址",
- "Your handle" : "您的別名",
- "Derived from your locale ({weekDayName})" : "根據您的區域設置推定({weekDayName})",
- "Unable to update first day of week" : "無法更新一星期的第一天",
- "Day to use as the first day of week" : "選擇星期幾作為每星期的第一天",
- "Your headline" : "您的標題",
- "Unable to update language" : "無法更新語言",
- "Languages" : "語言",
- "Help translate" : "協助翻譯",
- "No language set" : "未設定語言",
- "Unable to update locale" : "無法更新語言場景",
- "Locales" : "地區設定",
- "Week starts on {firstDayOfWeek}" : "一星期從 {firstDayOfWeek} 開始",
- "No locale set" : "沒有設置語言場景",
- "Your city" : "您的城市",
- "Your organisation" : "您的機構",
- "Your phone number" : "您的電話號碼",
- "Edit your Profile visibility" : "編輯個人檔案能見度",
- "Unable to update profile enabled state" : "無法更新個人資料啟用狀態",
- "Enable profile" : "啟用簡介",
- "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." : "將會遵循您個人檔案中「能見度」與「範圍」較嚴格的設定。舉例來說,當「能見度」設定為「對所有人顯示」,而「範圍」設定為「私人」時。將使用「私人」的設定。",
- "Unable to update visibility of {displayId}" : "無法更新 {displayId} 的可見性",
- "she/her" : "她",
- "he/him" : "他",
- "they/them" : "他們",
- "Your role" : "你的角色",
- "Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號",
- "Your website" : "您的網站",
- "Invalid value" : "無效的意義",
- "Unable to update {property}" : "無法更新 (property)",
- "No {property} set" : "沒有設置 {property} ",
- "Change scope level of {property}, current scope is {scope}" : "更改 {property} 的範圍級別,目前範圍為 {scope}",
- "Unable to update federation scope of the primary {property}" : "無法更新主要 {property} 的聯盟範圍",
- "Unable to update federation scope of additional {property}" : "無法更新額外 {property} 的聯盟範圍",
- "Add additional email" : "添加額外電郵地址",
- "Add" : "新增",
- "Create" : "建立",
- "Change" : "更改",
- "Delete" : "刪除",
- "Reshare" : "重新分享",
- "Default language" : "預設語言",
- "Common languages" : "常用語言",
- "Other languages" : "其他語言",
- "Password change is disabled because the master key is disabled" : "已停用密碼變更,因為主控密鑰已停用",
- "No accounts" : "沒有帳戶",
- "Loading accounts …" : "正在加载帳戶 ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "帳戶清單。出於性能考量,此清單未完全呈現。帳戶將在您瀏覽清單時呈現。",
- "Manager" : "管理者",
- "Set line manager" : "設定行管理員",
- "Account name will be autogenerated" : "將會自動產生帳戶名稱",
- "Account name (required)" : "帳戶名稱(必填)",
- "Failed to search groups" : "無法搜尋群組",
- "New account" : "新帳戶",
- "Display name" : "顯示名稱",
- "Either password or email is required" : "需要密碼或電郵地址",
- "Password (required)" : "密碼(必填)",
- "Email (required)" : "電郵地址(必填)",
- "Email" : "電郵地址",
- "Member of the following groups (required)" : "以下群組的成員(必需)",
- "Member of the following groups" : "以下群組的成員(必需)",
- "Set account groups" : "設定帳號群組",
- "Admin of the following groups" : "以下群組的管理員",
- "Set account as admin for …" : "將帳號設定為管理員……",
- "Quota" : "容量限制",
- "Set account quota" : "設定帳號容量限制",
- "Language" : "語言",
- "Set default language" : "設置默認語言",
- "Add new account" : "添加新帳戶",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} 個帳戶 …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} 個帳戶"],
- "Total rows summary" : "總列摘要",
- "Scroll to load more rows" : "捲動以載入更多列",
- "Password or insufficient permissions message" : "密碼或權限不足訊息",
- "Avatar" : "虛擬化身大頭照",
- "Account name" : "帳戶名稱",
- "Group admin for" : "群組管理員",
- "Account backend" : "帳戶後端",
- "Storage location" : "儲存位置",
- "First login" : "首次登入",
- "Last login" : "最後登入",
- "Account actions" : "帳戶操作",
- "{size} used" : "已使用 {size}",
- "Delete account" : "刪除帳戶",
- "Disconnect all devices and delete local data" : "中斷所有裝置連結並刪除近端數據",
- "Disable account" : "停用帳戶",
- "Enable account" : "啟用帳戶",
- "Resend welcome email" : "重新傳送歡迎電子郵件",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "如果遺失裝置或退出組織,這可以從與 {userid} 相關的所有裝置遠端抹除 Nextcloud 資料。僅當裝置連線到網際網路時才有效。",
- "Remote wipe of devices" : "遠端抹除裝置",
- "Wipe {userid}'s devices" : "抹除 {userid} 的裝置",
- "Wiped {userid}'s devices" : "抹除了 {userid} 的裝置",
- "Failed to load groups with details" : "無法加載包含詳情的群組",
- "Failed to load sub admin groups with details" : "無法加載包含詳情的副管理員群組",
- "Failed to update line manager" : "更新行管理員失敗",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "完全刪除 {userid} 的帳戶,包含他們所有的個人檔案、應用程式資料等等。",
- "Account deletion" : "帳戶刪除",
- "Delete {userid}'s account" : "刪除 {userid} 的帳戶",
- "Display name was successfully changed" : "成功更新顯示名稱",
- "Password can't be empty" : "密碼不可為空白",
- "Password was successfully changed" : "成功更新密碼",
- "Email can't be empty" : "電郵地址不可為空白",
- "Email was successfully changed" : "成功更新電郵地址",
- "Welcome mail sent!" : "已傳送歡迎郵件!",
- "Loading account …" : "正在加载帳戶 ...",
- "Change display name" : "更改顯示名稱",
- "Set new password" : "設置新密碼",
- "You do not have permissions to see the details of this account" : "您沒有檢視此帳戶詳細資料的權限",
- "Set new email address" : "設置新電郵地址",
- "Add account to group" : "在群組中新增帳戶",
- "Set account as admin for" : "將帳戶設定為管理員",
- "Select account quota" : "選擇帳戶容量限制",
- "Set the language" : "設置語言",
- "Toggle account actions menu" : "切換帳戶操作選單",
- "Done" : "完成",
- "Edit" : "編輯",
- "Account management settings" : "帳戶管理設定",
- "Visibility" : "可見性",
- "Show language" : "顯示語言",
- "Show account backend" : "顯示帳戶後端系統",
- "Show storage path" : "顯示儲存路徑",
- "Show first login" : "顯示首次登入",
- "Show last login" : "顯示上次登入時間",
- "Sorting" : "排序",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "系統設定強制按名稱對群組排序。這也會停用顯示成員數量。",
- "Group list sorting" : "群組清單排序",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "出於性能考慮,排序僅適用於當前加載的群組。當您瀏覽或搜尋列表時,群組將會被加載。",
- "By member count" : "按成員數量",
- "By name" : "按名稱",
- "Send email" : "傳送測試電郵",
- "Send welcome email to new accounts" : "向新帳戶發送歡迎電子郵件",
- "Defaults" : "默認",
- "Default quota" : "默認儲存容量限制",
- "Select default quota" : "選擇預設容量限制",
- "Server error while trying to complete WebAuthn device registration" : "嘗試完成 WebAuthn 裝置註冊時發生伺服器錯誤。",
- "Passwordless authentication requires a secure connection." : "無密碼身分驗證需要安全連線。",
- "Add WebAuthn device" : "新增 WebAuthn 裝置",
- "Please authorize your WebAuthn device." : "請驗證您的 WebAuthn 裝置。",
- "Adding your device …" : "正在新增您的裝置……",
- "Unnamed device" : "未命名的裝置",
- "Passwordless Authentication" : "無密碼驗證",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "按照 FIDO2 標準設定您帳戶的無密碼驗證",
- "No devices configured." : "未設定裝置。",
- "The following devices are configured for your account:" : "為您的帳戶設定了以下裝置。",
- "Your browser does not support WebAuthn." : "您的瀏覽器不支援 WebAuthn。",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "系統管理員可以微調分享行為。請查閱說明文件以獲得更多資訊。",
- "You need to enable the File sharing App." : "您需要啟用檔案分享應用程式。",
- "App Store" : "應用程式商店",
- "Loading app list" : "正在載入應用程式清單",
- "Loading categories" : "正在加載分類",
- "Developer documentation ↗" : "開發人員使用手冊 ↗",
- "Version {version}, {license}-licensed" : "版本 {version},授權條款:{license}",
- "Version {version}" : "版本 {version}",
- "All accounts" : "所有帳戶",
- "Admins" : "管理員",
- "Account group: {group}" : "帳戶群組:{group}",
- "Account management" : "帳戶管理",
+ "Delete group" : "刪除群組",
"Sending…" : "正在傳送……",
"Email sent" : "電子郵件已寄出",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "出於性能考慮,當您在 Nextcloud 伺服器上啟用加密時,僅會加密新檔案和已更改的檔案。",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "出生日期",
"Full name" : "全名",
"Additional email" : "附加電郵地址",
+ "Email" : "電郵地址",
"Fediverse (e.g. Mastodon)" : "Fediverse(如 Mastodon)",
"Headline" : "標題",
"Organisation" : "機構",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X(前身為 Twitter)",
"Website" : "網站",
"Profile visibility" : "個人檔案能見度",
+ "Language" : "語言",
"Locale" : "地區設定",
"First day of week" : "一星期的第一天",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "無法使用,因為此屬性是核心功能(包括檔案分享和日曆邀請)所必需的。",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "僅顯示給已登錄的帳戶",
"Hide" : "隱藏",
"Manually installed apps cannot be updated" : "無法更新手動安裝的應用程式",
+ "Update to {version}" : "更新到 {version}",
"{progress}% Deploying …" : "{progress}% 部署中 ...",
"{progress}% Initializing …" : "{progress}% 初始化中 ...",
"Health checking" : "健康檢查",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "允許未經測試的應用程式",
"The app will be downloaded from the App Store" : "將會從 App Store 下載這個應用程式",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "此應用程式未被標記為與您的 Nextcloud 版本相容。如果繼續,您仍可安裝應用程式。但請注意應用程式可能無法正常運作。",
+ "{size} used" : "已使用 {size}",
"Unknown" : "不詳",
"Never" : "絕不",
"Could not register device: Network error" : "無法註冊裝置:網絡錯誤",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "無法設定群組排序",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "有太多請求來自你的網路,請稍後再試,若你認為這不該發生,請回報系統管理員這項錯誤。",
"Error" : "錯誤",
+ "Default quota" : "默認儲存容量限制",
"Account documentation" : "帳戶使用手冊",
"Administration documentation" : "管理使用手冊",
+ "Documentation" : "使用手冊",
"Forum" : "論壇",
"Nextcloud help & privacy resources" : "Nextcloud 說明與隱私資源",
"General documentation" : "一般使用手冊",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP 密碼",
"Save" : "儲存",
"Test and verify email settings" : "測試及驗證電子郵件設定",
+ "Send email" : "傳送測試電郵",
"Security & setup warnings" : "安全及設定警示",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "為確保您 Nextcloud 實例安全和性能,正確配置至關重要。為幫助您達到這一目標,我們正在進行一些自動檢查。請參閱連結的說明書以獲取更多詳細信息。",
"All checks passed." : "所有檢查皆通過。",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "使用密碼以外的第二因數來增強您帳戶的安全性。",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "如果您使用第三方應用程式來連線到 Nextcloud,請確保在啟用雙重認證前為每個應用程式設定應用程式密碼。",
"Logged in account must be a subadmin" : "登入的帳戶必須為子管理員",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "要執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須至少能解析並連線至 `trusted_domains` 或 `overwrite.cli.url` 其中一個。",
- "Missing optional index \"%s\" in table \"%s\"." : "非強制的索引 \"%s\" 缺少於數據庫表 \"%s\" 中。",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "數據庫缺少某些索引值。由於將索引添加到大型數據庫表可能需要一段時間,安裝程序因此不會自動添加索引。您可執行 “occ db:add-missing-indices” 來手動新增那些缺少的索引值。當索引值新增完成後,查詢的速度通常會變得快許多。",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "若要允許執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須可以解析並連線到 `trusted_domains` 或 `overwrite.cli.url` 至少其中一個。此失敗可能是因為伺服器端 DNS 不符或連出防火牆規則造成的。",
"File locking" : "檔案鎖定",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "交易檔案鎖定已停用,這可能會導致競爭條件問題。在 config.php 中啟用「filelocking.enabled」可以避免這些問題。",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "無法透過您的任何「trusted_domains」或「overwrite.cli.url」檢查 JavaScript 支援。這可能是伺服器端 DNS 不符或連出防火牆規則造成的。請手動檢查您的網頁伺服器是否使用 JavaScript MIME 類型提供「.mjs」檔案。",
"The PHP memory limit is below the recommended value of %s." : "目前的 PHP 的記憶體限制設定低於建議值 %s。",
"for WebAuthn passwordless login" : "用於 WebAuthn 無密碼登入",
"for WebAuthn passwordless login, and SFTP storage" : "用於 WebAuthn 無密碼登入與 SFTP 儲存空間",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "您目前正在運行 PHP %s。Nextcloud 27 已棄用 PHP 8.0。Nextcloud 28 需要 PHP 8.1 或更新版本。請盡快升級至 PHP Group 提供官方支援的其中一個版本。",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "正在使用 MariaDB 版本「%s」。Nextcloud 21 及更新版本不再支援此版本,並需要 MariaDB 10.2 或更新版本。",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "正在使用 MySQL 版本「%s」。Nextcloud 21 及更新版本不再支援此版本,並需要 MySQL 8.0 或 MariaDB 10.2 或更新版本。",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "正在使用 PostgreSQL 版本「%s」。Nextcloud 21 及更新版本不再支援此版本,並需要 PostgreSQL 9.6 或更新版本。",
- "Speech-To-Text" : "音頻轉文字",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "音頻轉文本可以由不同的應用程式實現。您可以在此處設置應使用哪個應用程式。",
- "None of your currently installed apps provide Speech-To-Text functionality" : "您目前安裝的應用程式均不提供音頻轉文字功能",
- "None of your currently installed apps provide Text processing functionality" : "您目前安裝的應用程式均不提供文字處理功能",
- "Set default expiration date for shares" : "設定分享的預設到期日",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "允許在分享對話方塊中自動補齊用戶名並允許存取系統通訊錄",
- "Your biography" : "個人小傳",
- "You are using <strong>{usage}</strong>" : "您已使用了 <strong>{usage}</strong> 的存儲空間",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "您已使用了 <strong>{totalSpace}</strong> 中的 <strong>{usage}</strong>(<strong>{usageRelative} %</strong>)",
- "Set user manager" : "設置用戶管理者",
- "Username will be autogenerated" : "用戶名將自動生成",
- "Username (required)" : "用戶名(必填)",
- "New user" : "新用戶",
- "Groups (required)" : "群組(必填)",
- "Set user groups" : "設置用戶群組",
- "Administered groups" : "被管理的群組",
- "Set user as admin for …" : "將用戶設置為以下群組的管理員...",
- "Set user quota" : "設置用戶配額",
- "Add new user" : "添加新用戶",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} 個用戶 …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} 個用戶"],
- "Loading users …" : "用戶加載中 ...",
- "Username" : "用戶名稱",
- "User backend" : "用戶後端系統",
- "User actions" : "用戶操作",
- "Add user to group" : "在群組中新增用戶",
- "Server error while trying to add WebAuthn device" : "嘗試新增 WebAuthn 裝置時發生伺服器錯誤",
- "Name your device" : "請為您的裝置命名",
- "Active accounts" : "活躍帳戶",
- "Follow us on Twitter" : "在 Twitter 上追蹤我們",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "若要允許執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須可以解析並連線到 `trusted_domains` 或 `overwrite.cli.url` 至少其中一個。此失敗可能是因為伺服器端 DNS 不符或連出防火牆規則造成的。",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並不包含 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "偵測到 PostgreSQL 版本「%s」。建議使用 PostgreSQL >=12 且 <=16 以取得此版本 Nextcloud 的最佳效能、穩定性與功能。",
- "Failed to load subadmin groups with details" : "無法加載包含詳情的副管理員群組"
+ "Set default expiration date for shares" : "設定分享的預設到期日"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/zh_HK.json b/apps/settings/l10n/zh_HK.json
index e061f406203..8d81538d289 100644
--- a/apps/settings/l10n/zh_HK.json
+++ b/apps/settings/l10n/zh_HK.json
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP 標頭",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`。部份功能可能無法正常運作,建議調整此項設定。",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並不包含 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`、`%3$s`、`%4$s`、`%5$s` 或 `%6$s`。這可能會洩漏參照位址資訊。請見 {w3c-recommendation}。",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTP 標頭並未設定為至少 `%d` 秒(目前值:`%d`)。為了強化安全性,建議使用較長的 HSTS 政策。",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTP 標頭格式錯誤:`%s`。為了強化安全性,建議啟用 HSTS。",
@@ -313,6 +312,10 @@
"Architecture" : "建築學",
"64-bit" : "64 位元",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "您似乎正在執行 32 位元版本的 PHP。Nextcloud 需要 64 位元才能運作良好。請將您的作業系統與 PHP 升級至 64 位元!",
+ "Task Processing pickup speed" : "任務處理提取速度",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["最近 %n 小時內沒有預先安排好的的任務。"],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["在最近 %n 小時內,任務的提取速度正常。"],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["最近 %n 小時內,任務提取速度較慢。許多任務花了超過4分鐘才被提取。考慮設置一個工作人員在背景中處理任務。"],
"Temporary space available" : "可用臨時空間",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "檢查臨時 PHP 路徑時發生錯誤 - 未正確設定為目錄。回傳值:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP 函式「disk_free_space」已停用,這會導致無法檢查臨時目錄中的剩餘空間。",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "無法從應用程式商店載入部份內容。",
"Loading" : "加載中",
"Fetching the latest news…" : "正在擷取最新新聞 …",
- "Carousel" : "輪播",
- "Previous slide" : "上一張投影片",
- "Next slide" : "下一張投影片",
- "Choose slide to display" : "選擇要顯示的投影片",
- "{index} of {total}" : "第 {index} 張,共 {total} 張",
- "Daemon" : "守護程式",
- "Deploy Daemon" : "部署幕後程式",
- "Type" : "類型",
- "Display Name" : "顯示名稱",
- "GPUs support" : "GPUs 支援",
- "Compute device" : "計算裝置",
- "Advanced deploy options" : "進階部署選項",
- "Edit ExApp deploy options before installation" : "在安裝前編輯 ExApp 部署選項",
- "Configured ExApp deploy options. Can be set only during installation" : "設定的 ExApp 部署選項。僅能在安裝時設定",
- "Learn more" : "了解更多",
- "Environment variables" : "環境變數",
- "ExApp container environment variables" : "ExApp 容器環境變數",
- "No environment variables defined" : "未定義環境變數",
- "Mounts" : "掛載",
- "Define host folder mounts to bind to the ExApp container" : "定義要綁紮到 ExApp 容器的主機資料夾掛載",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "在安裝 ExApp 前,必須存在於部署幕後程式主機上",
- "Host path" : "主機路徑",
- "Container path" : "容器路徑",
- "Read-only" : "唯讀",
- "Remove mount" : "移除掛載",
- "New mount" : "新掛載",
- "Enter path to host folder" : "輸入主機資料夾的路徑",
- "Enter path to container folder" : "輸入容器資料夾的路徑",
- "Toggle read-only mode" : "切換唯讀模式",
- "Confirm adding new mount" : "確認新增掛載",
- "Confirm" : "確認",
- "Cancel adding mount" : "取消新增掛載",
- "Cancel" : "取消",
- "Add mount" : "新增掛載",
- "ExApp container mounts" : "ExApp 容器掛載",
- "No mounts defined" : "未定義掛載",
- "Description" : "描述",
- "View in store" : "在商店中檢視",
- "Visit website" : "造訪網站",
- "Usage documentation" : "使用手冊",
- "Admin documentation" : "管理員使用手冊",
- "Developer documentation" : "開發人員使用手冊",
- "Details" : "詳細資訊",
- "All" : "所有",
- "Limit app usage to groups" : "限制特定群組使用應用程式",
- "No results" : "沒有結果",
- "Update to {version}" : "更新到 {version}",
- "Deploy options" : "部署選項",
- "Default Deploy daemon is not accessible" : "默認部署幕後程式無法使用",
- "Delete data on remove" : "移除時刪除數據",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "此應用程式並未指定最低的 Nextcloud 版本。未來可能會出現錯誤。",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "此應用程式並未指定最高的 Nextcloud 版本。未來可能會出現錯誤。",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "無法安裝此應用程式,因為無法滿足下列的依賴關係:",
- "Latest updated" : "最近更新",
- "Author" : "作者",
- "Categories" : "分類",
- "Resources" : "資源",
- "Documentation" : "使用手冊",
- "Interact" : "相互作用",
- "Report a bug" : "舉報錯誤",
- "Request feature" : "請求功能",
- "Ask questions or discuss" : "發問或討論",
- "Rate the app" : "評價此應用程式",
- "Rate" : "評價",
- "Changelog" : "軟件更新紀錄",
- "Google Chrome for Android" : "Android 版 Google Chrome",
- "{productName} iOS app" : "{productName} iOS 應用程式",
- "{productName} Android app" : "{productName} Android 應用程式",
- "{productName} Talk for iOS" : "{productName} Talk - iOS 版",
- "{productName} Talk for Android" : "{productName} Talk - Android 版",
- "Sync client" : "同步客戶端",
- "This session" : "此節",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "裝置名字",
- "Cancel renaming" : "取消重新命名",
- "Save new name" : "儲存新名稱",
- "Marked for remote wipe" : "標記為可遠端抹除",
- "Device settings" : "裝置設定",
- "Allow filesystem access" : "允許檔案系統的存取",
- "Rename" : "重新命名",
- "Revoke" : "撤銷",
- "Wipe device" : "抹除裝置",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "如果還沒開始抹除,則撤銷此權杖可能會導致無法抹除您的裝置。",
- "Device" : "裝置",
- "Last activity" : "上次活動",
- "Devices & sessions" : "裝置和時段",
- "Web, desktop and mobile clients currently logged in to your account." : "目前登入您帳戶的網絡、桌面和流動裝置客戶端。",
- "Error while creating device token" : "建立裝置權杖時發生錯誤",
- "App name" : "應用程式名稱",
- "Create new app password" : "建立新的應用程式密碼",
"App password copied!" : "已複製應用程式密碼!",
"Copy app password" : "複製應用程式密碼",
"Login name copied!" : "已複製登入名稱!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "無法更新個人檔案默認設定。",
"Profile" : "個人設定",
"Enable or disable profile by default for new accounts." : "預設情況下為新帳戶啟用或停用個人檔案。",
+ "Password confirmation is required" : "需要密碼確認",
"Failed to save setting" : "儲存設定失敗",
"{app}'s declarative setting field: {name}" : "{app} 的聲明性設定欄位:{name}",
"Unable to update server side encryption config" : "無法更新伺服器端加密配置",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定時備份您的資料沒有壞處,若您有啟用加密,請確保您也有備份加密金鑰。",
"Refer to the admin documentation on how to manually also encrypt existing files." : "請參考管理說明書,了解如何手動加密現有檔案。",
"This is the final warning: Do you really want to enable encryption?" : "這是最後的警告:請問您真的要開啟加密模式?",
- "Failed to remove group \"{group}\"" : "移除群組「{group}」失敗",
+ "Failed to delete group \"{group}\"" : "無法刪除群組「{group}」",
"Please confirm the group removal" : "請確認移除群組",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "您將要移除群組「{group}」。帳戶將不會被刪除。",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "您將要刪除群組「{group}」。帳戶將不會被刪除。",
+ "Cancel" : "取消",
+ "Confirm" : "確認",
"Submit" : "遞交",
"Rename group" : "重新命名群組",
- "Remove group" : "移除群組",
- "Current password" : "目前密碼",
- "New password" : "新密碼",
- "Change password" : "更改密碼",
- "Choose your profile picture" : "選擇您的個人資料圖片",
- "Please select a valid png or jpg file" : "請選擇有效的 png 或 jpg 檔案",
- "Error setting profile picture" : "設定個人資料圖片時出錯",
- "Error cropping profile picture" : "裁剪個人資料圖片時出錯",
- "Error saving profile picture" : "儲存個人資料圖片時出錯",
- "Error removing profile picture" : "移除個人資料圖片時出錯",
- "Your profile picture" : "您的個人資料圖片",
- "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" : "原始帳戶提供的圖片",
- "Set as profile picture" : "設定為個人資料圖片",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "請注意,您的個人資料圖片最長可能需要24小時才能在所有地方更新。",
- "Your biography. Markdown is supported." : "您的自傳。支援 Markdown。",
- "Unable to update date of birth" : "無法更新出生日期",
- "Enter your date of birth" : "輸入您的出生日期",
- "You are using {s}{usage}{/s}" : "您正在使用 {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "您正在使用 {s}{usage}{/s},總儲存空間 {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "你是下列群組的成員︰",
- "Your full name" : "您的全名",
- "Email options" : "電子郵件通知選項",
- "Options for additional email address {index}" : "額外的電郵地址 {index} 的選項",
- "Remove primary email" : "刪除主要電郵地址",
- "Delete email" : "刪除電郵地址",
- "This address is not confirmed" : "此地址尚未確認",
- "Unset as primary email" : "取消設定為主要電郵地址",
- "Set as primary email" : "設為主要電郵地址",
- "Additional email address {index}" : "附加電郵地址 {index}",
- "Unable to delete primary email address" : "無法刪除主電郵地址",
- "Unable to update primary email address" : "無法更新主電郵地址",
- "Unable to add additional email address" : "無法添加其他電郵地址",
- "Unable to update additional email address" : "無法更新其他電郵地址",
- "Unable to delete additional email address" : "無法刪除其他電郵地址",
- "Primary email for password reset and notifications" : "用於密碼重設和通告信件的主要電郵地址",
- "No email address set" : "未設定電郵地址",
- "Your handle" : "您的別名",
- "Derived from your locale ({weekDayName})" : "根據您的區域設置推定({weekDayName})",
- "Unable to update first day of week" : "無法更新一星期的第一天",
- "Day to use as the first day of week" : "選擇星期幾作為每星期的第一天",
- "Your headline" : "您的標題",
- "Unable to update language" : "無法更新語言",
- "Languages" : "語言",
- "Help translate" : "協助翻譯",
- "No language set" : "未設定語言",
- "Unable to update locale" : "無法更新語言場景",
- "Locales" : "地區設定",
- "Week starts on {firstDayOfWeek}" : "一星期從 {firstDayOfWeek} 開始",
- "No locale set" : "沒有設置語言場景",
- "Your city" : "您的城市",
- "Your organisation" : "您的機構",
- "Your phone number" : "您的電話號碼",
- "Edit your Profile visibility" : "編輯個人檔案能見度",
- "Unable to update profile enabled state" : "無法更新個人資料啟用狀態",
- "Enable profile" : "啟用簡介",
- "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." : "將會遵循您個人檔案中「能見度」與「範圍」較嚴格的設定。舉例來說,當「能見度」設定為「對所有人顯示」,而「範圍」設定為「私人」時。將使用「私人」的設定。",
- "Unable to update visibility of {displayId}" : "無法更新 {displayId} 的可見性",
- "she/her" : "她",
- "he/him" : "他",
- "they/them" : "他們",
- "Your role" : "你的角色",
- "Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號",
- "Your website" : "您的網站",
- "Invalid value" : "無效的意義",
- "Unable to update {property}" : "無法更新 (property)",
- "No {property} set" : "沒有設置 {property} ",
- "Change scope level of {property}, current scope is {scope}" : "更改 {property} 的範圍級別,目前範圍為 {scope}",
- "Unable to update federation scope of the primary {property}" : "無法更新主要 {property} 的聯盟範圍",
- "Unable to update federation scope of additional {property}" : "無法更新額外 {property} 的聯盟範圍",
- "Add additional email" : "添加額外電郵地址",
- "Add" : "新增",
- "Create" : "建立",
- "Change" : "更改",
- "Delete" : "刪除",
- "Reshare" : "重新分享",
- "Default language" : "預設語言",
- "Common languages" : "常用語言",
- "Other languages" : "其他語言",
- "Password change is disabled because the master key is disabled" : "已停用密碼變更,因為主控密鑰已停用",
- "No accounts" : "沒有帳戶",
- "Loading accounts …" : "正在加载帳戶 ...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "帳戶清單。出於性能考量,此清單未完全呈現。帳戶將在您瀏覽清單時呈現。",
- "Manager" : "管理者",
- "Set line manager" : "設定行管理員",
- "Account name will be autogenerated" : "將會自動產生帳戶名稱",
- "Account name (required)" : "帳戶名稱(必填)",
- "Failed to search groups" : "無法搜尋群組",
- "New account" : "新帳戶",
- "Display name" : "顯示名稱",
- "Either password or email is required" : "需要密碼或電郵地址",
- "Password (required)" : "密碼(必填)",
- "Email (required)" : "電郵地址(必填)",
- "Email" : "電郵地址",
- "Member of the following groups (required)" : "以下群組的成員(必需)",
- "Member of the following groups" : "以下群組的成員(必需)",
- "Set account groups" : "設定帳號群組",
- "Admin of the following groups" : "以下群組的管理員",
- "Set account as admin for …" : "將帳號設定為管理員……",
- "Quota" : "容量限制",
- "Set account quota" : "設定帳號容量限制",
- "Language" : "語言",
- "Set default language" : "設置默認語言",
- "Add new account" : "添加新帳戶",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} 個帳戶 …"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} 個帳戶"],
- "Total rows summary" : "總列摘要",
- "Scroll to load more rows" : "捲動以載入更多列",
- "Password or insufficient permissions message" : "密碼或權限不足訊息",
- "Avatar" : "虛擬化身大頭照",
- "Account name" : "帳戶名稱",
- "Group admin for" : "群組管理員",
- "Account backend" : "帳戶後端",
- "Storage location" : "儲存位置",
- "First login" : "首次登入",
- "Last login" : "最後登入",
- "Account actions" : "帳戶操作",
- "{size} used" : "已使用 {size}",
- "Delete account" : "刪除帳戶",
- "Disconnect all devices and delete local data" : "中斷所有裝置連結並刪除近端數據",
- "Disable account" : "停用帳戶",
- "Enable account" : "啟用帳戶",
- "Resend welcome email" : "重新傳送歡迎電子郵件",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "如果遺失裝置或退出組織,這可以從與 {userid} 相關的所有裝置遠端抹除 Nextcloud 資料。僅當裝置連線到網際網路時才有效。",
- "Remote wipe of devices" : "遠端抹除裝置",
- "Wipe {userid}'s devices" : "抹除 {userid} 的裝置",
- "Wiped {userid}'s devices" : "抹除了 {userid} 的裝置",
- "Failed to load groups with details" : "無法加載包含詳情的群組",
- "Failed to load sub admin groups with details" : "無法加載包含詳情的副管理員群組",
- "Failed to update line manager" : "更新行管理員失敗",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "完全刪除 {userid} 的帳戶,包含他們所有的個人檔案、應用程式資料等等。",
- "Account deletion" : "帳戶刪除",
- "Delete {userid}'s account" : "刪除 {userid} 的帳戶",
- "Display name was successfully changed" : "成功更新顯示名稱",
- "Password can't be empty" : "密碼不可為空白",
- "Password was successfully changed" : "成功更新密碼",
- "Email can't be empty" : "電郵地址不可為空白",
- "Email was successfully changed" : "成功更新電郵地址",
- "Welcome mail sent!" : "已傳送歡迎郵件!",
- "Loading account …" : "正在加载帳戶 ...",
- "Change display name" : "更改顯示名稱",
- "Set new password" : "設置新密碼",
- "You do not have permissions to see the details of this account" : "您沒有檢視此帳戶詳細資料的權限",
- "Set new email address" : "設置新電郵地址",
- "Add account to group" : "在群組中新增帳戶",
- "Set account as admin for" : "將帳戶設定為管理員",
- "Select account quota" : "選擇帳戶容量限制",
- "Set the language" : "設置語言",
- "Toggle account actions menu" : "切換帳戶操作選單",
- "Done" : "完成",
- "Edit" : "編輯",
- "Account management settings" : "帳戶管理設定",
- "Visibility" : "可見性",
- "Show language" : "顯示語言",
- "Show account backend" : "顯示帳戶後端系統",
- "Show storage path" : "顯示儲存路徑",
- "Show first login" : "顯示首次登入",
- "Show last login" : "顯示上次登入時間",
- "Sorting" : "排序",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "系統設定強制按名稱對群組排序。這也會停用顯示成員數量。",
- "Group list sorting" : "群組清單排序",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "出於性能考慮,排序僅適用於當前加載的群組。當您瀏覽或搜尋列表時,群組將會被加載。",
- "By member count" : "按成員數量",
- "By name" : "按名稱",
- "Send email" : "傳送測試電郵",
- "Send welcome email to new accounts" : "向新帳戶發送歡迎電子郵件",
- "Defaults" : "默認",
- "Default quota" : "默認儲存容量限制",
- "Select default quota" : "選擇預設容量限制",
- "Server error while trying to complete WebAuthn device registration" : "嘗試完成 WebAuthn 裝置註冊時發生伺服器錯誤。",
- "Passwordless authentication requires a secure connection." : "無密碼身分驗證需要安全連線。",
- "Add WebAuthn device" : "新增 WebAuthn 裝置",
- "Please authorize your WebAuthn device." : "請驗證您的 WebAuthn 裝置。",
- "Adding your device …" : "正在新增您的裝置……",
- "Unnamed device" : "未命名的裝置",
- "Passwordless Authentication" : "無密碼驗證",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "按照 FIDO2 標準設定您帳戶的無密碼驗證",
- "No devices configured." : "未設定裝置。",
- "The following devices are configured for your account:" : "為您的帳戶設定了以下裝置。",
- "Your browser does not support WebAuthn." : "您的瀏覽器不支援 WebAuthn。",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "系統管理員可以微調分享行為。請查閱說明文件以獲得更多資訊。",
- "You need to enable the File sharing App." : "您需要啟用檔案分享應用程式。",
- "App Store" : "應用程式商店",
- "Loading app list" : "正在載入應用程式清單",
- "Loading categories" : "正在加載分類",
- "Developer documentation ↗" : "開發人員使用手冊 ↗",
- "Version {version}, {license}-licensed" : "版本 {version},授權條款:{license}",
- "Version {version}" : "版本 {version}",
- "All accounts" : "所有帳戶",
- "Admins" : "管理員",
- "Account group: {group}" : "帳戶群組:{group}",
- "Account management" : "帳戶管理",
+ "Delete group" : "刪除群組",
"Sending…" : "正在傳送……",
"Email sent" : "電子郵件已寄出",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "出於性能考慮,當您在 Nextcloud 伺服器上啟用加密時,僅會加密新檔案和已更改的檔案。",
@@ -790,6 +511,7 @@
"Date of birth" : "出生日期",
"Full name" : "全名",
"Additional email" : "附加電郵地址",
+ "Email" : "電郵地址",
"Fediverse (e.g. Mastodon)" : "Fediverse(如 Mastodon)",
"Headline" : "標題",
"Organisation" : "機構",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X(前身為 Twitter)",
"Website" : "網站",
"Profile visibility" : "個人檔案能見度",
+ "Language" : "語言",
"Locale" : "地區設定",
"First day of week" : "一星期的第一天",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "無法使用,因為此屬性是核心功能(包括檔案分享和日曆邀請)所必需的。",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "僅顯示給已登錄的帳戶",
"Hide" : "隱藏",
"Manually installed apps cannot be updated" : "無法更新手動安裝的應用程式",
+ "Update to {version}" : "更新到 {version}",
"{progress}% Deploying …" : "{progress}% 部署中 ...",
"{progress}% Initializing …" : "{progress}% 初始化中 ...",
"Health checking" : "健康檢查",
@@ -825,6 +549,7 @@
"Allow untested app" : "允許未經測試的應用程式",
"The app will be downloaded from the App Store" : "將會從 App Store 下載這個應用程式",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "此應用程式未被標記為與您的 Nextcloud 版本相容。如果繼續,您仍可安裝應用程式。但請注意應用程式可能無法正常運作。",
+ "{size} used" : "已使用 {size}",
"Unknown" : "不詳",
"Never" : "絕不",
"Could not register device: Network error" : "無法註冊裝置:網絡錯誤",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "無法設定群組排序",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "有太多請求來自你的網路,請稍後再試,若你認為這不該發生,請回報系統管理員這項錯誤。",
"Error" : "錯誤",
+ "Default quota" : "默認儲存容量限制",
"Account documentation" : "帳戶使用手冊",
"Administration documentation" : "管理使用手冊",
+ "Documentation" : "使用手冊",
"Forum" : "論壇",
"Nextcloud help & privacy resources" : "Nextcloud 說明與隱私資源",
"General documentation" : "一般使用手冊",
@@ -867,6 +594,7 @@
"SMTP Password" : "SMTP 密碼",
"Save" : "儲存",
"Test and verify email settings" : "測試及驗證電子郵件設定",
+ "Send email" : "傳送測試電郵",
"Security & setup warnings" : "安全及設定警示",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "為確保您 Nextcloud 實例安全和性能,正確配置至關重要。為幫助您達到這一目標,我們正在進行一些自動檢查。請參閱連結的說明書以獲取更多詳細信息。",
"All checks passed." : "所有檢查皆通過。",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "使用密碼以外的第二因數來增強您帳戶的安全性。",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "如果您使用第三方應用程式來連線到 Nextcloud,請確保在啟用雙重認證前為每個應用程式設定應用程式密碼。",
"Logged in account must be a subadmin" : "登入的帳戶必須為子管理員",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "要執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須至少能解析並連線至 `trusted_domains` 或 `overwrite.cli.url` 其中一個。",
- "Missing optional index \"%s\" in table \"%s\"." : "非強制的索引 \"%s\" 缺少於數據庫表 \"%s\" 中。",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "數據庫缺少某些索引值。由於將索引添加到大型數據庫表可能需要一段時間,安裝程序因此不會自動添加索引。您可執行 “occ db:add-missing-indices” 來手動新增那些缺少的索引值。當索引值新增完成後,查詢的速度通常會變得快許多。",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "若要允許執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須可以解析並連線到 `trusted_domains` 或 `overwrite.cli.url` 至少其中一個。此失敗可能是因為伺服器端 DNS 不符或連出防火牆規則造成的。",
"File locking" : "檔案鎖定",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "交易檔案鎖定已停用,這可能會導致競爭條件問題。在 config.php 中啟用「filelocking.enabled」可以避免這些問題。",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "無法透過您的任何「trusted_domains」或「overwrite.cli.url」檢查 JavaScript 支援。這可能是伺服器端 DNS 不符或連出防火牆規則造成的。請手動檢查您的網頁伺服器是否使用 JavaScript MIME 類型提供「.mjs」檔案。",
"The PHP memory limit is below the recommended value of %s." : "目前的 PHP 的記憶體限制設定低於建議值 %s。",
"for WebAuthn passwordless login" : "用於 WebAuthn 無密碼登入",
"for WebAuthn passwordless login, and SFTP storage" : "用於 WebAuthn 無密碼登入與 SFTP 儲存空間",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "您目前正在運行 PHP %s。Nextcloud 27 已棄用 PHP 8.0。Nextcloud 28 需要 PHP 8.1 或更新版本。請盡快升級至 PHP Group 提供官方支援的其中一個版本。",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "正在使用 MariaDB 版本「%s」。Nextcloud 21 及更新版本不再支援此版本,並需要 MariaDB 10.2 或更新版本。",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "正在使用 MySQL 版本「%s」。Nextcloud 21 及更新版本不再支援此版本,並需要 MySQL 8.0 或 MariaDB 10.2 或更新版本。",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "正在使用 PostgreSQL 版本「%s」。Nextcloud 21 及更新版本不再支援此版本,並需要 PostgreSQL 9.6 或更新版本。",
- "Speech-To-Text" : "音頻轉文字",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "音頻轉文本可以由不同的應用程式實現。您可以在此處設置應使用哪個應用程式。",
- "None of your currently installed apps provide Speech-To-Text functionality" : "您目前安裝的應用程式均不提供音頻轉文字功能",
- "None of your currently installed apps provide Text processing functionality" : "您目前安裝的應用程式均不提供文字處理功能",
- "Set default expiration date for shares" : "設定分享的預設到期日",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "允許在分享對話方塊中自動補齊用戶名並允許存取系統通訊錄",
- "Your biography" : "個人小傳",
- "You are using <strong>{usage}</strong>" : "您已使用了 <strong>{usage}</strong> 的存儲空間",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "您已使用了 <strong>{totalSpace}</strong> 中的 <strong>{usage}</strong>(<strong>{usageRelative} %</strong>)",
- "Set user manager" : "設置用戶管理者",
- "Username will be autogenerated" : "用戶名將自動生成",
- "Username (required)" : "用戶名(必填)",
- "New user" : "新用戶",
- "Groups (required)" : "群組(必填)",
- "Set user groups" : "設置用戶群組",
- "Administered groups" : "被管理的群組",
- "Set user as admin for …" : "將用戶設置為以下群組的管理員...",
- "Set user quota" : "設置用戶配額",
- "Add new user" : "添加新用戶",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} 個用戶 …"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} 個用戶"],
- "Loading users …" : "用戶加載中 ...",
- "Username" : "用戶名稱",
- "User backend" : "用戶後端系統",
- "User actions" : "用戶操作",
- "Add user to group" : "在群組中新增用戶",
- "Server error while trying to add WebAuthn device" : "嘗試新增 WebAuthn 裝置時發生伺服器錯誤",
- "Name your device" : "請為您的裝置命名",
- "Active accounts" : "活躍帳戶",
- "Follow us on Twitter" : "在 Twitter 上追蹤我們",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "若要允許執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須可以解析並連線到 `trusted_domains` 或 `overwrite.cli.url` 至少其中一個。此失敗可能是因為伺服器端 DNS 不符或連出防火牆規則造成的。",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並不包含 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "偵測到 PostgreSQL 版本「%s」。建議使用 PostgreSQL >=12 且 <=16 以取得此版本 Nextcloud 的最佳效能、穩定性與功能。",
- "Failed to load subadmin groups with details" : "無法加載包含詳情的副管理員群組"
+ "Set default expiration date for shares" : "設定分享的預設到期日"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/settings/l10n/zh_TW.js b/apps/settings/l10n/zh_TW.js
index ac7e5a7c804..c15284d14fa 100644
--- a/apps/settings/l10n/zh_TW.js
+++ b/apps/settings/l10n/zh_TW.js
@@ -296,7 +296,6 @@ OC.L10N.register(
"HTTP headers" : "HTTP 標頭",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`。部份功能可能無法正常運作,建議調整此項設定。",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並不包含 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`、`%3$s`、`%4$s`、`%5$s` 或 `%6$s`。這可能會洩漏參照位址資訊。請見 {w3c-recommendation}。",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTP 標頭並未設定為至少 `%d` 秒(目前值:`%d`)。為了強化安全性,建議使用較長的 HSTS 政策。",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTP 標頭格式錯誤:`%s`。為了強化安全性,建議啟用 HSTS。",
@@ -315,6 +314,10 @@ OC.L10N.register(
"Architecture" : "架構",
"64-bit" : "64 位元",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "您似乎正在執行 32 位元版本的 PHP。Nextcloud 需要 64 位元才能運作良好。請將您的作業系統與 PHP 升級至 64 位元!",
+ "Task Processing pickup speed" : "任務處理擷取速度",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["最近%n小時內沒有安排好的任務。"],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["最近%n小時內的任務擷取速度正常。"],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["最近%n小時內,任務擷取速度緩慢。許多任務的擷取時間超過4分鐘。請考慮設定 worker 在背景處理任務。"],
"Temporary space available" : "可用臨時空間",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "檢查臨時 PHP 路徑時發生錯誤 - 未正確設定為目錄。回傳值:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP 函式「disk_free_space」已停用,這會阻止檢查暫存目錄中是否有足夠的空間。",
@@ -443,97 +446,6 @@ OC.L10N.register(
"Could not load section content from app store." : "無法從應用程式商店載入部份內容。",
"Loading" : "正在載入",
"Fetching the latest news…" : "正在擷取最新新聞……",
- "Carousel" : "輪播",
- "Previous slide" : "上一張投影片",
- "Next slide" : "下一張投影片",
- "Choose slide to display" : "選擇要顯示的投影片",
- "{index} of {total}" : "第 {index} 張,共 {total} 張",
- "Daemon" : "守護程式",
- "Deploy Daemon" : "部署幕後程式",
- "Type" : "類型",
- "Display Name" : "顯示名稱",
- "GPUs support" : "GPU 支援",
- "Compute device" : "計算裝置",
- "Advanced deploy options" : "進階部署選項",
- "Edit ExApp deploy options before installation" : "在安裝前編輯 ExApp 部署選項",
- "Configured ExApp deploy options. Can be set only during installation" : "設定的 ExApp 部署選項。僅能在安裝時設定",
- "Learn more" : "瞭解更多",
- "Environment variables" : "環境變數",
- "ExApp container environment variables" : "ExApp 容器環境變數",
- "No environment variables defined" : "未定義環境變數",
- "Mounts" : "掛載",
- "Define host folder mounts to bind to the ExApp container" : "定義要綁紮到 ExApp 容器的主機資料夾掛載",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "在安裝 ExApp 前,必須存在於部署幕後程式主機上",
- "Host path" : "主機路徑",
- "Container path" : "容器路徑",
- "Read-only" : "唯讀",
- "Remove mount" : "移除掛載",
- "New mount" : "新掛載",
- "Enter path to host folder" : "輸入主機資料夾的路徑",
- "Enter path to container folder" : "輸入容器資料夾的路徑",
- "Toggle read-only mode" : "切換唯讀模式",
- "Confirm adding new mount" : "確認新增掛載",
- "Confirm" : "確認",
- "Cancel adding mount" : "取消新增掛載",
- "Cancel" : "取消",
- "Add mount" : "新增掛載",
- "ExApp container mounts" : "ExApp 容器掛載",
- "No mounts defined" : "未定義掛載",
- "Description" : "描述",
- "View in store" : "在商店中檢視",
- "Visit website" : "造訪網站",
- "Usage documentation" : "使用方式說明文件",
- "Admin documentation" : "管理員文件",
- "Developer documentation" : "開發者文件",
- "Details" : "詳細資料",
- "All" : "所有",
- "Limit app usage to groups" : "限制特定群組使用應用程式",
- "No results" : "沒有結果",
- "Update to {version}" : "更新到 {version}",
- "Deploy options" : "部署選項",
- "Default Deploy daemon is not accessible" : "預設部署幕後程式無法使用",
- "Delete data on remove" : "移除時刪除資料",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "此應用程式並未指定最低的 Nextcloud 版本。未來可能會出現錯誤。",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "此應用程式並未指定最高的 Nextcloud 版本。未來可能會出現錯誤。",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "無法滿足下列的依賴關係,故無法安裝此應用程式:",
- "Latest updated" : "最近更新",
- "Author" : "作者",
- "Categories" : "分類",
- "Resources" : "資源",
- "Documentation" : "文件",
- "Interact" : "相互影響",
- "Report a bug" : "回報問題",
- "Request feature" : "要求功能",
- "Ask questions or discuss" : "發問或討論",
- "Rate the app" : "應用程式評價",
- "Rate" : "評價",
- "Changelog" : "變更紀錄",
- "Google Chrome for Android" : "Android 版 Google Chrome",
- "{productName} iOS app" : "{productName} iOS 應用程式",
- "{productName} Android app" : "{productName} Android 應用程式",
- "{productName} Talk for iOS" : "iOS 版的 {productName} Talk",
- "{productName} Talk for Android" : "Android 版的 {productName} Talk",
- "Sync client" : "同步客戶端",
- "This session" : "此工作階段",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "裝置名稱",
- "Cancel renaming" : "取消重新命名",
- "Save new name" : "儲存新名稱",
- "Marked for remote wipe" : "標記為可遠端抹除",
- "Device settings" : "裝置設定",
- "Allow filesystem access" : "允許檔案系統的存取",
- "Rename" : "重新命名",
- "Revoke" : "撤銷",
- "Wipe device" : "抹除裝置",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "若尚未開始抹除,則撤銷此代符可能會無法抹除您的裝置。",
- "Device" : "裝置",
- "Last activity" : "最近活動狀態",
- "Devices & sessions" : "裝置和工作階段",
- "Web, desktop and mobile clients currently logged in to your account." : "目前登入您的帳號的網頁、桌面和行動裝置客戶端。",
- "Error while creating device token" : "建立裝置代符時發生錯誤",
- "App name" : "應用程式名稱",
- "Create new app password" : "建立新的應用程式密碼",
"App password copied!" : "已複製應用程式密碼!",
"Copy app password" : "複製應用程式密碼",
"Login name copied!" : "已複製登入名稱!",
@@ -561,6 +473,7 @@ OC.L10N.register(
"Unable to update profile default setting" : "無法更新個人檔案預設設定",
"Profile" : "個人檔案",
"Enable or disable profile by default for new accounts." : "預設情況下為新帳號啟用或停用個人檔案",
+ "Password confirmation is required" : "需要密碼確認",
"Failed to save setting" : "儲存設定失敗",
"{app}'s declarative setting field: {name}" : "{app} 的聲明性設定欄位:{name}",
"Unable to update server side encryption config" : "無法更新伺服器端加密組態設定",
@@ -583,206 +496,14 @@ OC.L10N.register(
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定期備份您的資料常有幫助,若您有啟用加密,請確保您也有備份加密金鑰。",
"Refer to the admin documentation on how to manually also encrypt existing files." : "請參考管理說明文件,了解如何手動加密現有檔案。",
"This is the final warning: Do you really want to enable encryption?" : "這是最後的警告:請問您真的要開啟加密模式?",
- "Failed to remove group \"{group}\"" : "移除群組「{group}」失敗",
+ "Failed to delete group \"{group}\"" : "刪除群組「{group}」失敗",
"Please confirm the group removal" : "請確認移除群組",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "您將要移除群組「{group}」。帳號將不會被刪除。",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "您將要刪除群組「{group}」。帳號將不會被刪除。",
+ "Cancel" : "取消",
+ "Confirm" : "確認",
"Submit" : "提交",
"Rename group" : "重新命名群組",
- "Remove group" : "移除群組",
- "Current password" : "目前密碼",
- "New password" : "新密碼",
- "Change password" : "變更密碼",
- "Choose your profile picture" : "選擇您的個人檔案圖片",
- "Please select a valid png or jpg file" : "請選取有效的 png 或 jpg 檔案",
- "Error setting profile picture" : "設定個人檔案圖片時發生錯誤",
- "Error cropping profile picture" : "裁剪個人檔案圖片時發生錯誤",
- "Error saving profile picture" : "儲存個人檔案圖片時發生錯誤",
- "Error removing profile picture" : "移除個人檔案圖片時發生錯誤",
- "Your profile picture" : "您的個人檔案圖片",
- "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" : "原始帳號提供的圖片",
- "Set as profile picture" : "設定為個人檔案圖片",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "請注意,您的個人檔案圖片最長可能需要 24 小時才能在所有地方更新。",
- "Your biography. Markdown is supported." : "您的自傳。支援 Markdown。",
- "Unable to update date of birth" : "無法更新出生日期",
- "Enter your date of birth" : "輸入您的出生日期",
- "You are using {s}{usage}{/s}" : "您已使用 {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "您已使用 {s}{usage}{/s},總儲存空間{s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "您是下列群組的成員︰",
- "Your full name" : "您的全名",
- "Email options" : "電子郵件選項",
- "Options for additional email address {index}" : "額外的電子郵件地址 {index} 的選項",
- "Remove primary email" : "移除主要電子郵件地址",
- "Delete email" : "刪除電子郵件地址",
- "This address is not confirmed" : "此地址尚未確認",
- "Unset as primary email" : "取消設定為主要電子郵件",
- "Set as primary email" : "設定為主要電子郵件",
- "Additional email address {index}" : "額外的電子郵件地址 {index}",
- "Unable to delete primary email address" : "無法刪除主要電子郵件地址",
- "Unable to update primary email address" : "無法更新主要電子郵件地址",
- "Unable to add additional email address" : "無法新增額外的電子郵件地址",
- "Unable to update additional email address" : "無法更新額外的電子郵件地址",
- "Unable to delete additional email address" : "無法刪除額外的電子郵件地址",
- "Primary email for password reset and notifications" : "用於密碼重設與通知的主要電子郵件地址",
- "No email address set" : "未設定電子郵件地址",
- "Your handle" : "您的社交帳號",
- "Derived from your locale ({weekDayName})" : "源自您的區域設定({weekDayName})",
- "Unable to update first day of week" : "無法更新每週的第一天",
- "Day to use as the first day of week" : "要作為每週第一天的星期幾",
- "Your headline" : "您的重要經歷",
- "Unable to update language" : "無法更新語言",
- "Languages" : "語言",
- "Help translate" : "協助翻譯",
- "No language set" : "未設定語言",
- "Unable to update locale" : "無法更新地區設定",
- "Locales" : "地區設定",
- "Week starts on {firstDayOfWeek}" : "一週從 {firstDayOfWeek} 開始",
- "No locale set" : "未設定地區設定",
- "Your city" : "您的城市",
- "Your organisation" : "您的組織單位",
- "Your phone number" : "您的電話號碼",
- "Edit your Profile visibility" : "編輯您的個人檔案能見度",
- "Unable to update profile enabled state" : "無法更新個人檔案啟用狀態",
- "Enable profile" : "啟用個人檔案",
- "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." : "將會遵循您個人檔案中「能見度」與「範圍」中較嚴格的設定。舉例來說,當「能見度」設定為「對所有人顯示」,而「範圍」設定為「私人」時,將使用「私人」的設定。",
- "Unable to update visibility of {displayId}" : "無法更新 {displayId} 的能見度",
- "she/her" : "她",
- "he/him" : "他",
- "they/them" : "他們",
- "Your role" : "您的職位",
- "Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號",
- "Your website" : "您的網站",
- "Invalid value" : "無效值",
- "Unable to update {property}" : "無法更新 {property}",
- "No {property} set" : "未設定 {property}",
- "Change scope level of {property}, current scope is {scope}" : "變更 {property} 的範圍層級,目前的範圍是 {scope}",
- "Unable to update federation scope of the primary {property}" : "無法更新主要 {property} 的聯邦範圍",
- "Unable to update federation scope of additional {property}" : "無法更新額外 {property} 的聯邦範圍",
- "Add additional email" : "新增額外電子郵件",
- "Add" : "新增",
- "Create" : "建立",
- "Change" : "更改",
- "Delete" : "刪除",
- "Reshare" : "轉發分享",
- "Default language" : "預設語言",
- "Common languages" : "常用語言",
- "Other languages" : "其他語言",
- "Password change is disabled because the master key is disabled" : "由於主控金鑰已停用,已停用密碼變更",
- "No accounts" : "無帳號",
- "Loading accounts …" : "少女祈禱中...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "帳號清單。出於效能考量,此清單未完全呈現。帳號將在您瀏覽清單時呈現。",
- "Manager" : "管理員",
- "Set line manager" : "設定行管理員",
- "Account name will be autogenerated" : "將會自動產生帳號名稱",
- "Account name (required)" : "帳號名稱(必填)",
- "Failed to search groups" : "搜尋群組失敗",
- "New account" : "新帳號",
- "Display name" : "顯示名稱",
- "Either password or email is required" : "需要密碼或電子郵件地址",
- "Password (required)" : "密碼(必填)",
- "Email (required)" : "電子郵件(必填)",
- "Email" : "電子郵件",
- "Member of the following groups (required)" : "以下群組的成員(必要)",
- "Member of the following groups" : "以下群組的成員",
- "Set account groups" : "設定帳號群組",
- "Admin of the following groups" : "以下群組的管理員",
- "Set account as admin for …" : "將帳號設定為管理員……",
- "Quota" : "容量限制",
- "Set account quota" : "設定帳號容量限制",
- "Language" : "語言",
- "Set default language" : "設定預設語言",
- "Add new account" : "新增帳號",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} 個帳號……"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} 個帳號"],
- "Total rows summary" : "總列摘要",
- "Scroll to load more rows" : "捲動以載入更多列",
- "Password or insufficient permissions message" : "密碼或超出權限訊息",
- "Avatar" : "頭像",
- "Account name" : "帳號名稱",
- "Group admin for" : "群組管理員",
- "Account backend" : "帳號後端",
- "Storage location" : "儲存位置",
- "First login" : "首次登入",
- "Last login" : "上次登入",
- "Account actions" : "帳戶動作",
- "{size} used" : "已使用 {size}",
- "Delete account" : "刪除帳號",
- "Disconnect all devices and delete local data" : "取消連結所有裝置並刪除本機資料",
- "Disable account" : "停用帳號",
- "Enable account" : "啟用帳號",
- "Resend welcome email" : "重新傳送歡迎電子郵件",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "如果遺失裝置或退出組織,可以從與 {userid} 相關的所有裝置遠端抹除 Nextcloud 資料。僅當裝置連線到網際網路時才有效。",
- "Remote wipe of devices" : "遠端抹除裝置",
- "Wipe {userid}'s devices" : "抹除 {userid} 的裝置",
- "Wiped {userid}'s devices" : "抹除了 {userid} 的裝置",
- "Failed to load groups with details" : "無法載入包含詳細資訊的群組",
- "Failed to load sub admin groups with details" : "載入包含詳細資訊的子管理員群組失敗",
- "Failed to update line manager" : "更新行管理員失敗",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "完全刪除 {userid} 的帳號,包含他們所有的個人檔案、應用程式資料等等。",
- "Account deletion" : "帳號刪除",
- "Delete {userid}'s account" : "刪除 {userid} 的帳號",
- "Display name was successfully changed" : "成功變更顯示名稱",
- "Password can't be empty" : "密碼不能為空",
- "Password was successfully changed" : "成功變更密碼",
- "Email can't be empty" : "電子郵件不能為空",
- "Email was successfully changed" : "成功更新電子郵件",
- "Welcome mail sent!" : "已傳送歡迎郵件!",
- "Loading account …" : "正在載入帳號……",
- "Change display name" : "變更顯示名稱",
- "Set new password" : "設定新密碼",
- "You do not have permissions to see the details of this account" : "您沒有檢視此帳號詳細資料的權限",
- "Set new email address" : "設定新電子郵件地址",
- "Add account to group" : "新增帳號至群組",
- "Set account as admin for" : "將帳號設定為管理員",
- "Select account quota" : "選取帳號容量限制",
- "Set the language" : "設定語言",
- "Toggle account actions menu" : "切換帳號動作選單",
- "Done" : "完成",
- "Edit" : "編輯",
- "Account management settings" : "帳號管理員設定",
- "Visibility" : "能見度",
- "Show language" : "顯示語言",
- "Show account backend" : "顯示帳號後端",
- "Show storage path" : "顯示儲存路徑",
- "Show first login" : "顯示首次登入",
- "Show last login" : "顯示上次登入時間",
- "Sorting" : "排序",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "系統設定強制按名稱對群組排序。這也會停用顯示成員數量。",
- "Group list sorting" : "群組清單排序",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "出於效能考量,排序只適用於目前載入的群組。當您在清單中瀏覽或搜尋時,會載入群組。",
- "By member count" : "按成員數量",
- "By name" : "按名稱",
- "Send email" : "傳送電子郵件",
- "Send welcome email to new accounts" : "向新帳號傳送歡迎電子郵件",
- "Defaults" : "預設",
- "Default quota" : "預設儲存容量限制",
- "Select default quota" : "選取預設容量限制",
- "Server error while trying to complete WebAuthn device registration" : "嘗試完成 WebAuthn 裝置註冊時發生伺服器錯誤",
- "Passwordless authentication requires a secure connection." : "無密碼身份認證需要安全連線。",
- "Add WebAuthn device" : "新增 WebAuthn 裝置",
- "Please authorize your WebAuthn device." : "請授權您的 WebAuthn 裝置。",
- "Adding your device …" : "正在新增您的裝置…",
- "Unnamed device" : "未命名的裝置",
- "Passwordless Authentication" : "無密碼認證",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "按照 FIDO2 標準設定您帳號的無密碼認證。",
- "No devices configured." : "未設定裝置組態。",
- "The following devices are configured for your account:" : "為您的帳號設定了以下裝置:",
- "Your browser does not support WebAuthn." : "您的瀏覽器不支援 WebAuthn。",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "系統管理員可以微調分享行為。請查閱文件以獲得更多資訊。",
- "You need to enable the File sharing App." : "您必須啟用檔案分享應用程式。",
- "App Store" : "應用程式商店",
- "Loading app list" : "正在載入應用程式清單",
- "Loading categories" : "正在載入分類",
- "Developer documentation ↗" : "開發者文件 ↗",
- "Version {version}, {license}-licensed" : "版本 {version},授權條款:{license}",
- "Version {version}" : "版本 {version}",
- "All accounts" : "所有帳號",
- "Admins" : "管理員",
- "Account group: {group}" : "帳號群組:{group}",
- "Account management" : "帳號管理",
+ "Delete group" : "刪除群組",
"Sending…" : "正在傳送…",
"Email sent" : "電子郵件已寄出",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "出於效能考量,當您在 Nextcloud 上啟用加密時,僅會加密新檔案與已變更的檔案。",
@@ -792,6 +513,7 @@ OC.L10N.register(
"Date of birth" : "出生日期",
"Full name" : "全名",
"Additional email" : "額外的電子郵件",
+ "Email" : "電子郵件",
"Fediverse (e.g. Mastodon)" : "聯邦宇宙(例如 Mastodon)",
"Headline" : "重要經歷",
"Organisation" : "組織單位",
@@ -801,6 +523,7 @@ OC.L10N.register(
"X (formerly Twitter)" : "X(前身為 Twitter)",
"Website" : "網站",
"Profile visibility" : "個人檔案能見度",
+ "Language" : "語言",
"Locale" : "地區設定",
"First day of week" : "每週的第一天",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "無法使用;因為此屬性是核心功能,包括檔案分享和行事曆邀請等的必要項目",
@@ -818,6 +541,7 @@ OC.L10N.register(
"Show to logged in accounts only" : "僅對已登入的帳號顯示",
"Hide" : "隱藏",
"Manually installed apps cannot be updated" : "無法更新手動安裝的應用程式",
+ "Update to {version}" : "更新到 {version}",
"{progress}% Deploying …" : "{progress}% 正在部署……",
"{progress}% Initializing …" : "{progress}% 正在初始化……",
"Health checking" : "健康檢查",
@@ -827,6 +551,7 @@ OC.L10N.register(
"Allow untested app" : "允許未經測試的應用程式",
"The app will be downloaded from the App Store" : "將會從應用程式商店下載這個應用程式",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "此應用程式未被標記為與您的 Nextcloud 版本相容。如果繼續,您仍可安裝應用程式。但請注意應用程式可能無法正常運作。",
+ "{size} used" : "已使用 {size}",
"Unknown" : "未知",
"Never" : "永不",
"Could not register device: Network error" : "無法註冊裝置:網路錯誤",
@@ -845,8 +570,10 @@ OC.L10N.register(
"Could not set group sorting" : "無法設定群組排序",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "有太多請求來自您的網路,請稍後再試。若您認為這不該發生,請聯絡系統管理員這是錯誤。",
"Error" : "錯誤",
+ "Default quota" : "預設儲存容量限制",
"Account documentation" : "帳號文件",
"Administration documentation" : "管理文件",
+ "Documentation" : "文件",
"Forum" : "論壇",
"Nextcloud help & privacy resources" : "Nextcloud 說明與隱私資源",
"General documentation" : "一般文件",
@@ -869,6 +596,7 @@ OC.L10N.register(
"SMTP Password" : "SMTP 密碼",
"Save" : "儲存",
"Test and verify email settings" : "測試並驗證電子郵件設定",
+ "Send email" : "傳送電子郵件",
"Security & setup warnings" : "安全及設定警告",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "正確設定每項事物對您的站台安全性與效能來說非常重要。為了協助您,我們正在進行一些自動檢查。請參閱連結資訊以了解更多資訊。",
"All checks passed." : "所有檢查皆通過。",
@@ -888,51 +616,14 @@ OC.L10N.register(
"Use a second factor besides your password to increase security for your account." : "使用密碼以外的第二因素來提升您帳號的安全性。",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "如果您使用第三方應用程式連線到 Nextcloud,請確保在啟用雙因子認證前,已為每個應用程式設定應用程式密碼。",
"Logged in account must be a subadmin" : "登入的帳號必須為子管理員",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "要執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須至少能解析並連線至 `trusted_domains` 或 `overwrite.cli.url` 其中一個。",
- "Missing optional index \"%s\" in table \"%s\"." : "資料表「%s」中缺少選擇性索引「%s」。",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "資料庫缺少了某些索引。由於在一個龐大的表中新增索引需要一些時間,因此它們並不會被自動新增。您可以執行「occ db:add-missing-indices」來手動新增那些缺少的索值。當索值新增完成後,查詢的速度通常會變得快許多。",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "若要允許執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須可以解析並連線到 `trusted_domains` 或 `overwrite.cli.url` 至少其中一個。此失敗可能是因為伺服器端 DNS 不符或連出防火牆規則造成的。",
"File locking" : "檔案鎖定",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "交易檔案鎖定已停用,這可能會導致競爭條件問題。在 config.php 中啟用「filelocking.enabled」可以避免這些問題。",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "無法透過您的任何「trusted_domains」或「overwrite.cli.url」檢查 JavaScript 支援。這可能是伺服器端 DNS 不符或連出防火牆規則造成的。請手動檢查您的網頁伺服器是否使用 JavaScript MIME 類型提供「.mjs」檔案。",
"The PHP memory limit is below the recommended value of %s." : "目前的 PHP 的記憶體限制設定低於建議值 %s。",
"for WebAuthn passwordless login" : "用於 WebAuthn 無密碼登入",
"for WebAuthn passwordless login, and SFTP storage" : "用於 WebAuthn 無密碼登入與 SFTP 儲存空間",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "您正在執行 PHP %s。Nextcloud 27 已棄用 PHP 8.0。Nextcloud 28 需要 PHP 8.1 或更高版本。請盡快升級至 PHP Group 提供官方支援的其中一個版本。",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "正在使用 MariaDB 版本「%s」。Nextcloud 21 或更高版本不支援此版本,並需要 MariaDB 10.2 或更高版本。",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "正在使用 MySQL 版本「%s」。Nextcloud 21 或更高版本不支援此版本,並需要 MySQL 8.0 或 MariaDB 10.2 或更高版本。",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "正在使用 PostgreSQL 版本「%s」。Nextcloud 21 或更高版本不支援此版本,並需要 PostgreSQL 9.6 或更高版本。",
- "Speech-To-Text" : "語音轉文字",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "語音轉文字可以透過不同的應用程式實作。您可以在此處設定要使用哪個應用程式。",
- "None of your currently installed apps provide Speech-To-Text functionality" : "您目前安裝的應用程式均不提供語音轉文字功能",
- "None of your currently installed apps provide Text processing functionality" : "您目前安裝的應用程式均不提供文字處理功能",
- "Set default expiration date for shares" : "設定分享的預設到期日",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "允許在分享對話方塊中自動補齊使用者名稱,並允許存取系統通訊錄",
- "Your biography" : "您的自傳",
- "You are using <strong>{usage}</strong>" : "您已使用 <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "您已使用 <strong>{totalSpace}</strong> 中的 <strong>{usage}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "設定使用者管理員",
- "Username will be autogenerated" : "使用者名稱將會自動產生",
- "Username (required)" : "使用者名稱(必填)",
- "New user" : "新使用者",
- "Groups (required)" : "群組(必填)",
- "Set user groups" : "設定使用者群組",
- "Administered groups" : "管理群組",
- "Set user as admin for …" : "將使用者設定為以下群組的管理員…",
- "Set user quota" : "設定使用者容量限制",
- "Add new user" : "新增使用者",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} 個使用者……"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} 個使用者"],
- "Loading users …" : "正在載入使用者…",
- "Username" : "使用者名稱",
- "User backend" : "使用者資料後端",
- "User actions" : "使用者動作",
- "Add user to group" : "新增使用者到群組",
- "Server error while trying to add WebAuthn device" : "嘗試新增 WebAuthn 裝置時發生伺服器錯誤",
- "Name your device" : "請為您的裝置命名",
- "Active accounts" : "活躍帳號",
- "Follow us on Twitter" : "在 Twitter 上追蹤我們",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "若要允許執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須可以解析並連線到 `trusted_domains` 或 `overwrite.cli.url` 至少其中一個。此失敗可能是因為伺服器端 DNS 不符或連出防火牆規則造成的。",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並不包含 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "偵測到 PostgreSQL 版本「%s」。建議使用 PostgreSQL >=12 且 <=16 以取得此版本 Nextcloud 的最佳效能、穩定性與功能。",
- "Failed to load subadmin groups with details" : "載入包含詳細資訊的子管理員群組失敗"
+ "Set default expiration date for shares" : "設定分享的預設到期日"
},
"nplurals=1; plural=0;");
diff --git a/apps/settings/l10n/zh_TW.json b/apps/settings/l10n/zh_TW.json
index 7dfbc9616dd..3bad7a0b2a0 100644
--- a/apps/settings/l10n/zh_TW.json
+++ b/apps/settings/l10n/zh_TW.json
@@ -294,7 +294,6 @@
"HTTP headers" : "HTTP 標頭",
"- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`。部份功能可能無法正常運作,建議調整此項設定。",
"- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
- "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並不包含 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
"- The `%1$s` HTTP header is not set to `%2$s`, `%3$s`, `%4$s`, `%5$s` or `%6$s`. This can leak referer information. See the {w3c-recommendation}." : "- `%1$s` HTTP 標頭並非設定為 `%2$s`、`%3$s`、`%4$s`、`%5$s` 或 `%6$s`。這可能會洩漏參照位址資訊。請見 {w3c-recommendation}。",
"- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy." : "- `Strict-Transport-Security` HTTP 標頭並未設定為至少 `%d` 秒(目前值:`%d`)。為了強化安全性,建議使用較長的 HSTS 政策。",
"- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS." : "- `Strict-Transport-Security` HTTP 標頭格式錯誤:`%s`。為了強化安全性,建議啟用 HSTS。",
@@ -313,6 +312,10 @@
"Architecture" : "架構",
"64-bit" : "64 位元",
"It seems like you are running a 32-bit PHP version. Nextcloud needs 64-bit to run well. Please upgrade your OS and PHP to 64-bit!" : "您似乎正在執行 32 位元版本的 PHP。Nextcloud 需要 64 位元才能運作良好。請將您的作業系統與 PHP 升級至 64 位元!",
+ "Task Processing pickup speed" : "任務處理擷取速度",
+ "_No scheduled tasks in the last %n hour._::_No scheduled tasks in the last %n hours._" : ["最近%n小時內沒有安排好的任務。"],
+ "_The task pickup speed has been ok in the last %n hour._::_The task pickup speed has been ok in the last %n hours._" : ["最近%n小時內的任務擷取速度正常。"],
+ "_The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._::_The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background._" : ["最近%n小時內,任務擷取速度緩慢。許多任務的擷取時間超過4分鐘。請考慮設定 worker 在背景處理任務。"],
"Temporary space available" : "可用臨時空間",
"Error while checking the temporary PHP path - it was not properly set to a directory. Returned value: %s" : "檢查臨時 PHP 路徑時發生錯誤 - 未正確設定為目錄。回傳值:%s",
"The PHP function \"disk_free_space\" is disabled, which prevents the check for enough space in the temporary directories." : "PHP 函式「disk_free_space」已停用,這會阻止檢查暫存目錄中是否有足夠的空間。",
@@ -441,97 +444,6 @@
"Could not load section content from app store." : "無法從應用程式商店載入部份內容。",
"Loading" : "正在載入",
"Fetching the latest news…" : "正在擷取最新新聞……",
- "Carousel" : "輪播",
- "Previous slide" : "上一張投影片",
- "Next slide" : "下一張投影片",
- "Choose slide to display" : "選擇要顯示的投影片",
- "{index} of {total}" : "第 {index} 張,共 {total} 張",
- "Daemon" : "守護程式",
- "Deploy Daemon" : "部署幕後程式",
- "Type" : "類型",
- "Display Name" : "顯示名稱",
- "GPUs support" : "GPU 支援",
- "Compute device" : "計算裝置",
- "Advanced deploy options" : "進階部署選項",
- "Edit ExApp deploy options before installation" : "在安裝前編輯 ExApp 部署選項",
- "Configured ExApp deploy options. Can be set only during installation" : "設定的 ExApp 部署選項。僅能在安裝時設定",
- "Learn more" : "瞭解更多",
- "Environment variables" : "環境變數",
- "ExApp container environment variables" : "ExApp 容器環境變數",
- "No environment variables defined" : "未定義環境變數",
- "Mounts" : "掛載",
- "Define host folder mounts to bind to the ExApp container" : "定義要綁紮到 ExApp 容器的主機資料夾掛載",
- "Must exist on the Deploy daemon host prior to installing the ExApp" : "在安裝 ExApp 前,必須存在於部署幕後程式主機上",
- "Host path" : "主機路徑",
- "Container path" : "容器路徑",
- "Read-only" : "唯讀",
- "Remove mount" : "移除掛載",
- "New mount" : "新掛載",
- "Enter path to host folder" : "輸入主機資料夾的路徑",
- "Enter path to container folder" : "輸入容器資料夾的路徑",
- "Toggle read-only mode" : "切換唯讀模式",
- "Confirm adding new mount" : "確認新增掛載",
- "Confirm" : "確認",
- "Cancel adding mount" : "取消新增掛載",
- "Cancel" : "取消",
- "Add mount" : "新增掛載",
- "ExApp container mounts" : "ExApp 容器掛載",
- "No mounts defined" : "未定義掛載",
- "Description" : "描述",
- "View in store" : "在商店中檢視",
- "Visit website" : "造訪網站",
- "Usage documentation" : "使用方式說明文件",
- "Admin documentation" : "管理員文件",
- "Developer documentation" : "開發者文件",
- "Details" : "詳細資料",
- "All" : "所有",
- "Limit app usage to groups" : "限制特定群組使用應用程式",
- "No results" : "沒有結果",
- "Update to {version}" : "更新到 {version}",
- "Deploy options" : "部署選項",
- "Default Deploy daemon is not accessible" : "預設部署幕後程式無法使用",
- "Delete data on remove" : "移除時刪除資料",
- "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "此應用程式並未指定最低的 Nextcloud 版本。未來可能會出現錯誤。",
- "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "此應用程式並未指定最高的 Nextcloud 版本。未來可能會出現錯誤。",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "無法滿足下列的依賴關係,故無法安裝此應用程式:",
- "Latest updated" : "最近更新",
- "Author" : "作者",
- "Categories" : "分類",
- "Resources" : "資源",
- "Documentation" : "文件",
- "Interact" : "相互影響",
- "Report a bug" : "回報問題",
- "Request feature" : "要求功能",
- "Ask questions or discuss" : "發問或討論",
- "Rate the app" : "應用程式評價",
- "Rate" : "評價",
- "Changelog" : "變更紀錄",
- "Google Chrome for Android" : "Android 版 Google Chrome",
- "{productName} iOS app" : "{productName} iOS 應用程式",
- "{productName} Android app" : "{productName} Android 應用程式",
- "{productName} Talk for iOS" : "iOS 版的 {productName} Talk",
- "{productName} Talk for Android" : "Android 版的 {productName} Talk",
- "Sync client" : "同步客戶端",
- "This session" : "此工作階段",
- "{client} - {version} ({system})" : "{client} - {version} ({system})",
- "{client} - {version}" : "{client} - {version}",
- "Device name" : "裝置名稱",
- "Cancel renaming" : "取消重新命名",
- "Save new name" : "儲存新名稱",
- "Marked for remote wipe" : "標記為可遠端抹除",
- "Device settings" : "裝置設定",
- "Allow filesystem access" : "允許檔案系統的存取",
- "Rename" : "重新命名",
- "Revoke" : "撤銷",
- "Wipe device" : "抹除裝置",
- "Revoking this token might prevent the wiping of your device if it has not started the wipe yet." : "若尚未開始抹除,則撤銷此代符可能會無法抹除您的裝置。",
- "Device" : "裝置",
- "Last activity" : "最近活動狀態",
- "Devices & sessions" : "裝置和工作階段",
- "Web, desktop and mobile clients currently logged in to your account." : "目前登入您的帳號的網頁、桌面和行動裝置客戶端。",
- "Error while creating device token" : "建立裝置代符時發生錯誤",
- "App name" : "應用程式名稱",
- "Create new app password" : "建立新的應用程式密碼",
"App password copied!" : "已複製應用程式密碼!",
"Copy app password" : "複製應用程式密碼",
"Login name copied!" : "已複製登入名稱!",
@@ -559,6 +471,7 @@
"Unable to update profile default setting" : "無法更新個人檔案預設設定",
"Profile" : "個人檔案",
"Enable or disable profile by default for new accounts." : "預設情況下為新帳號啟用或停用個人檔案",
+ "Password confirmation is required" : "需要密碼確認",
"Failed to save setting" : "儲存設定失敗",
"{app}'s declarative setting field: {name}" : "{app} 的聲明性設定欄位:{name}",
"Unable to update server side encryption config" : "無法更新伺服器端加密組態設定",
@@ -581,206 +494,14 @@
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定期備份您的資料常有幫助,若您有啟用加密,請確保您也有備份加密金鑰。",
"Refer to the admin documentation on how to manually also encrypt existing files." : "請參考管理說明文件,了解如何手動加密現有檔案。",
"This is the final warning: Do you really want to enable encryption?" : "這是最後的警告:請問您真的要開啟加密模式?",
- "Failed to remove group \"{group}\"" : "移除群組「{group}」失敗",
+ "Failed to delete group \"{group}\"" : "刪除群組「{group}」失敗",
"Please confirm the group removal" : "請確認移除群組",
- "You are about to remove the group \"{group}\". The accounts will NOT be deleted." : "您將要移除群組「{group}」。帳號將不會被刪除。",
+ "You are about to delete the group \"{group}\". The accounts will NOT be deleted." : "您將要刪除群組「{group}」。帳號將不會被刪除。",
+ "Cancel" : "取消",
+ "Confirm" : "確認",
"Submit" : "提交",
"Rename group" : "重新命名群組",
- "Remove group" : "移除群組",
- "Current password" : "目前密碼",
- "New password" : "新密碼",
- "Change password" : "變更密碼",
- "Choose your profile picture" : "選擇您的個人檔案圖片",
- "Please select a valid png or jpg file" : "請選取有效的 png 或 jpg 檔案",
- "Error setting profile picture" : "設定個人檔案圖片時發生錯誤",
- "Error cropping profile picture" : "裁剪個人檔案圖片時發生錯誤",
- "Error saving profile picture" : "儲存個人檔案圖片時發生錯誤",
- "Error removing profile picture" : "移除個人檔案圖片時發生錯誤",
- "Your profile picture" : "您的個人檔案圖片",
- "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" : "原始帳號提供的圖片",
- "Set as profile picture" : "設定為個人檔案圖片",
- "Please note that it can take up to 24 hours for your profile picture to be updated everywhere." : "請注意,您的個人檔案圖片最長可能需要 24 小時才能在所有地方更新。",
- "Your biography. Markdown is supported." : "您的自傳。支援 Markdown。",
- "Unable to update date of birth" : "無法更新出生日期",
- "Enter your date of birth" : "輸入您的出生日期",
- "You are using {s}{usage}{/s}" : "您已使用 {s}{usage}{/s}",
- "You are using {s}{usage}{/s} of {s}{totalSpace}{/s} ({s}{usageRelative}%{/s})" : "您已使用 {s}{usage}{/s},總儲存空間{s}{totalSpace}{/s} ({s}{usageRelative}%{/s})",
- "You are a member of the following groups:" : "您是下列群組的成員︰",
- "Your full name" : "您的全名",
- "Email options" : "電子郵件選項",
- "Options for additional email address {index}" : "額外的電子郵件地址 {index} 的選項",
- "Remove primary email" : "移除主要電子郵件地址",
- "Delete email" : "刪除電子郵件地址",
- "This address is not confirmed" : "此地址尚未確認",
- "Unset as primary email" : "取消設定為主要電子郵件",
- "Set as primary email" : "設定為主要電子郵件",
- "Additional email address {index}" : "額外的電子郵件地址 {index}",
- "Unable to delete primary email address" : "無法刪除主要電子郵件地址",
- "Unable to update primary email address" : "無法更新主要電子郵件地址",
- "Unable to add additional email address" : "無法新增額外的電子郵件地址",
- "Unable to update additional email address" : "無法更新額外的電子郵件地址",
- "Unable to delete additional email address" : "無法刪除額外的電子郵件地址",
- "Primary email for password reset and notifications" : "用於密碼重設與通知的主要電子郵件地址",
- "No email address set" : "未設定電子郵件地址",
- "Your handle" : "您的社交帳號",
- "Derived from your locale ({weekDayName})" : "源自您的區域設定({weekDayName})",
- "Unable to update first day of week" : "無法更新每週的第一天",
- "Day to use as the first day of week" : "要作為每週第一天的星期幾",
- "Your headline" : "您的重要經歷",
- "Unable to update language" : "無法更新語言",
- "Languages" : "語言",
- "Help translate" : "協助翻譯",
- "No language set" : "未設定語言",
- "Unable to update locale" : "無法更新地區設定",
- "Locales" : "地區設定",
- "Week starts on {firstDayOfWeek}" : "一週從 {firstDayOfWeek} 開始",
- "No locale set" : "未設定地區設定",
- "Your city" : "您的城市",
- "Your organisation" : "您的組織單位",
- "Your phone number" : "您的電話號碼",
- "Edit your Profile visibility" : "編輯您的個人檔案能見度",
- "Unable to update profile enabled state" : "無法更新個人檔案啟用狀態",
- "Enable profile" : "啟用個人檔案",
- "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." : "將會遵循您個人檔案中「能見度」與「範圍」中較嚴格的設定。舉例來說,當「能見度」設定為「對所有人顯示」,而「範圍」設定為「私人」時,將使用「私人」的設定。",
- "Unable to update visibility of {displayId}" : "無法更新 {displayId} 的能見度",
- "she/her" : "她",
- "he/him" : "他",
- "they/them" : "他們",
- "Your role" : "您的職位",
- "Your X (formerly Twitter) handle" : "您的 X(前身為 Twitter)帳號",
- "Your website" : "您的網站",
- "Invalid value" : "無效值",
- "Unable to update {property}" : "無法更新 {property}",
- "No {property} set" : "未設定 {property}",
- "Change scope level of {property}, current scope is {scope}" : "變更 {property} 的範圍層級,目前的範圍是 {scope}",
- "Unable to update federation scope of the primary {property}" : "無法更新主要 {property} 的聯邦範圍",
- "Unable to update federation scope of additional {property}" : "無法更新額外 {property} 的聯邦範圍",
- "Add additional email" : "新增額外電子郵件",
- "Add" : "新增",
- "Create" : "建立",
- "Change" : "更改",
- "Delete" : "刪除",
- "Reshare" : "轉發分享",
- "Default language" : "預設語言",
- "Common languages" : "常用語言",
- "Other languages" : "其他語言",
- "Password change is disabled because the master key is disabled" : "由於主控金鑰已停用,已停用密碼變更",
- "No accounts" : "無帳號",
- "Loading accounts …" : "少女祈禱中...",
- "List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list." : "帳號清單。出於效能考量,此清單未完全呈現。帳號將在您瀏覽清單時呈現。",
- "Manager" : "管理員",
- "Set line manager" : "設定行管理員",
- "Account name will be autogenerated" : "將會自動產生帳號名稱",
- "Account name (required)" : "帳號名稱(必填)",
- "Failed to search groups" : "搜尋群組失敗",
- "New account" : "新帳號",
- "Display name" : "顯示名稱",
- "Either password or email is required" : "需要密碼或電子郵件地址",
- "Password (required)" : "密碼(必填)",
- "Email (required)" : "電子郵件(必填)",
- "Email" : "電子郵件",
- "Member of the following groups (required)" : "以下群組的成員(必要)",
- "Member of the following groups" : "以下群組的成員",
- "Set account groups" : "設定帳號群組",
- "Admin of the following groups" : "以下群組的管理員",
- "Set account as admin for …" : "將帳號設定為管理員……",
- "Quota" : "容量限制",
- "Set account quota" : "設定帳號容量限制",
- "Language" : "語言",
- "Set default language" : "設定預設語言",
- "Add new account" : "新增帳號",
- "_{userCount} account …_::_{userCount} accounts …_" : ["{userCount} 個帳號……"],
- "_{userCount} account_::_{userCount} accounts_" : ["{userCount} 個帳號"],
- "Total rows summary" : "總列摘要",
- "Scroll to load more rows" : "捲動以載入更多列",
- "Password or insufficient permissions message" : "密碼或超出權限訊息",
- "Avatar" : "頭像",
- "Account name" : "帳號名稱",
- "Group admin for" : "群組管理員",
- "Account backend" : "帳號後端",
- "Storage location" : "儲存位置",
- "First login" : "首次登入",
- "Last login" : "上次登入",
- "Account actions" : "帳戶動作",
- "{size} used" : "已使用 {size}",
- "Delete account" : "刪除帳號",
- "Disconnect all devices and delete local data" : "取消連結所有裝置並刪除本機資料",
- "Disable account" : "停用帳號",
- "Enable account" : "啟用帳號",
- "Resend welcome email" : "重新傳送歡迎電子郵件",
- "In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet." : "如果遺失裝置或退出組織,可以從與 {userid} 相關的所有裝置遠端抹除 Nextcloud 資料。僅當裝置連線到網際網路時才有效。",
- "Remote wipe of devices" : "遠端抹除裝置",
- "Wipe {userid}'s devices" : "抹除 {userid} 的裝置",
- "Wiped {userid}'s devices" : "抹除了 {userid} 的裝置",
- "Failed to load groups with details" : "無法載入包含詳細資訊的群組",
- "Failed to load sub admin groups with details" : "載入包含詳細資訊的子管理員群組失敗",
- "Failed to update line manager" : "更新行管理員失敗",
- "Fully delete {userid}'s account including all their personal files, app data, etc." : "完全刪除 {userid} 的帳號,包含他們所有的個人檔案、應用程式資料等等。",
- "Account deletion" : "帳號刪除",
- "Delete {userid}'s account" : "刪除 {userid} 的帳號",
- "Display name was successfully changed" : "成功變更顯示名稱",
- "Password can't be empty" : "密碼不能為空",
- "Password was successfully changed" : "成功變更密碼",
- "Email can't be empty" : "電子郵件不能為空",
- "Email was successfully changed" : "成功更新電子郵件",
- "Welcome mail sent!" : "已傳送歡迎郵件!",
- "Loading account …" : "正在載入帳號……",
- "Change display name" : "變更顯示名稱",
- "Set new password" : "設定新密碼",
- "You do not have permissions to see the details of this account" : "您沒有檢視此帳號詳細資料的權限",
- "Set new email address" : "設定新電子郵件地址",
- "Add account to group" : "新增帳號至群組",
- "Set account as admin for" : "將帳號設定為管理員",
- "Select account quota" : "選取帳號容量限制",
- "Set the language" : "設定語言",
- "Toggle account actions menu" : "切換帳號動作選單",
- "Done" : "完成",
- "Edit" : "編輯",
- "Account management settings" : "帳號管理員設定",
- "Visibility" : "能見度",
- "Show language" : "顯示語言",
- "Show account backend" : "顯示帳號後端",
- "Show storage path" : "顯示儲存路徑",
- "Show first login" : "顯示首次登入",
- "Show last login" : "顯示上次登入時間",
- "Sorting" : "排序",
- "The system config enforces sorting the groups by name. This also disables showing the member count." : "系統設定強制按名稱對群組排序。這也會停用顯示成員數量。",
- "Group list sorting" : "群組清單排序",
- "Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list." : "出於效能考量,排序只適用於目前載入的群組。當您在清單中瀏覽或搜尋時,會載入群組。",
- "By member count" : "按成員數量",
- "By name" : "按名稱",
- "Send email" : "傳送電子郵件",
- "Send welcome email to new accounts" : "向新帳號傳送歡迎電子郵件",
- "Defaults" : "預設",
- "Default quota" : "預設儲存容量限制",
- "Select default quota" : "選取預設容量限制",
- "Server error while trying to complete WebAuthn device registration" : "嘗試完成 WebAuthn 裝置註冊時發生伺服器錯誤",
- "Passwordless authentication requires a secure connection." : "無密碼身份認證需要安全連線。",
- "Add WebAuthn device" : "新增 WebAuthn 裝置",
- "Please authorize your WebAuthn device." : "請授權您的 WebAuthn 裝置。",
- "Adding your device …" : "正在新增您的裝置…",
- "Unnamed device" : "未命名的裝置",
- "Passwordless Authentication" : "無密碼認證",
- "Set up your account for passwordless authentication following the FIDO2 standard." : "按照 FIDO2 標準設定您帳號的無密碼認證。",
- "No devices configured." : "未設定裝置組態。",
- "The following devices are configured for your account:" : "為您的帳號設定了以下裝置:",
- "Your browser does not support WebAuthn." : "您的瀏覽器不支援 WebAuthn。",
- "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "系統管理員可以微調分享行為。請查閱文件以獲得更多資訊。",
- "You need to enable the File sharing App." : "您必須啟用檔案分享應用程式。",
- "App Store" : "應用程式商店",
- "Loading app list" : "正在載入應用程式清單",
- "Loading categories" : "正在載入分類",
- "Developer documentation ↗" : "開發者文件 ↗",
- "Version {version}, {license}-licensed" : "版本 {version},授權條款:{license}",
- "Version {version}" : "版本 {version}",
- "All accounts" : "所有帳號",
- "Admins" : "管理員",
- "Account group: {group}" : "帳號群組:{group}",
- "Account management" : "帳號管理",
+ "Delete group" : "刪除群組",
"Sending…" : "正在傳送…",
"Email sent" : "電子郵件已寄出",
"For performance reasons, when you enable encryption on a Nextcloud server only new and changed files are encrypted." : "出於效能考量,當您在 Nextcloud 上啟用加密時,僅會加密新檔案與已變更的檔案。",
@@ -790,6 +511,7 @@
"Date of birth" : "出生日期",
"Full name" : "全名",
"Additional email" : "額外的電子郵件",
+ "Email" : "電子郵件",
"Fediverse (e.g. Mastodon)" : "聯邦宇宙(例如 Mastodon)",
"Headline" : "重要經歷",
"Organisation" : "組織單位",
@@ -799,6 +521,7 @@
"X (formerly Twitter)" : "X(前身為 Twitter)",
"Website" : "網站",
"Profile visibility" : "個人檔案能見度",
+ "Language" : "語言",
"Locale" : "地區設定",
"First day of week" : "每週的第一天",
"Not available as this property is required for core functionality including file sharing and calendar invitations" : "無法使用;因為此屬性是核心功能,包括檔案分享和行事曆邀請等的必要項目",
@@ -816,6 +539,7 @@
"Show to logged in accounts only" : "僅對已登入的帳號顯示",
"Hide" : "隱藏",
"Manually installed apps cannot be updated" : "無法更新手動安裝的應用程式",
+ "Update to {version}" : "更新到 {version}",
"{progress}% Deploying …" : "{progress}% 正在部署……",
"{progress}% Initializing …" : "{progress}% 正在初始化……",
"Health checking" : "健康檢查",
@@ -825,6 +549,7 @@
"Allow untested app" : "允許未經測試的應用程式",
"The app will be downloaded from the App Store" : "將會從應用程式商店下載這個應用程式",
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "此應用程式未被標記為與您的 Nextcloud 版本相容。如果繼續,您仍可安裝應用程式。但請注意應用程式可能無法正常運作。",
+ "{size} used" : "已使用 {size}",
"Unknown" : "未知",
"Never" : "永不",
"Could not register device: Network error" : "無法註冊裝置:網路錯誤",
@@ -843,8 +568,10 @@
"Could not set group sorting" : "無法設定群組排序",
"There were too many requests from your network. Retry later or contact your administrator if this is an error." : "有太多請求來自您的網路,請稍後再試。若您認為這不該發生,請聯絡系統管理員這是錯誤。",
"Error" : "錯誤",
+ "Default quota" : "預設儲存容量限制",
"Account documentation" : "帳號文件",
"Administration documentation" : "管理文件",
+ "Documentation" : "文件",
"Forum" : "論壇",
"Nextcloud help & privacy resources" : "Nextcloud 說明與隱私資源",
"General documentation" : "一般文件",
@@ -867,6 +594,7 @@
"SMTP Password" : "SMTP 密碼",
"Save" : "儲存",
"Test and verify email settings" : "測試並驗證電子郵件設定",
+ "Send email" : "傳送電子郵件",
"Security & setup warnings" : "安全及設定警告",
"It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the linked documentation for more information." : "正確設定每項事物對您的站台安全性與效能來說非常重要。為了協助您,我們正在進行一些自動檢查。請參閱連結資訊以了解更多資訊。",
"All checks passed." : "所有檢查皆通過。",
@@ -886,51 +614,14 @@
"Use a second factor besides your password to increase security for your account." : "使用密碼以外的第二因素來提升您帳號的安全性。",
"If you use third party applications to connect to Nextcloud, please make sure to create and configure an app password for each before enabling second factor authentication." : "如果您使用第三方應用程式連線到 Nextcloud,請確保在啟用雙因子認證前,已為每個應用程式設定應用程式密碼。",
"Logged in account must be a subadmin" : "登入的帳號必須為子管理員",
- "To allow this check to run you have to make sure that your webserver can connect to itself. Therefor it must be able to resolve and connect to at least one its `trusted_domains` or the `overwrite.cli.url`." : "要執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須至少能解析並連線至 `trusted_domains` 或 `overwrite.cli.url` 其中一個。",
- "Missing optional index \"%s\" in table \"%s\"." : "資料表「%s」中缺少選擇性索引「%s」。",
- "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "資料庫缺少了某些索引。由於在一個龐大的表中新增索引需要一些時間,因此它們並不會被自動新增。您可以執行「occ db:add-missing-indices」來手動新增那些缺少的索值。當索值新增完成後,查詢的速度通常會變得快許多。",
+ "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "若要允許執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須可以解析並連線到 `trusted_domains` 或 `overwrite.cli.url` 至少其中一個。此失敗可能是因為伺服器端 DNS 不符或連出防火牆規則造成的。",
"File locking" : "檔案鎖定",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems." : "交易檔案鎖定已停用,這可能會導致競爭條件問題。在 config.php 中啟用「filelocking.enabled」可以避免這些問題。",
- "Could not check for JavaScript support via any of your `trusted_domains` nor `overwrite.cli.url`. This may be the result of a server-side DNS mismatch or outbound firewall rule. Please check manually if your webserver serves `.mjs` files using the JavaScript MIME type." : "無法透過您的任何「trusted_domains」或「overwrite.cli.url」檢查 JavaScript 支援。這可能是伺服器端 DNS 不符或連出防火牆規則造成的。請手動檢查您的網頁伺服器是否使用 JavaScript MIME 類型提供「.mjs」檔案。",
"The PHP memory limit is below the recommended value of %s." : "目前的 PHP 的記憶體限制設定低於建議值 %s。",
"for WebAuthn passwordless login" : "用於 WebAuthn 無密碼登入",
"for WebAuthn passwordless login, and SFTP storage" : "用於 WebAuthn 無密碼登入與 SFTP 儲存空間",
- "You are currently running PHP %s. PHP 8.0 is now deprecated in Nextcloud 27. Nextcloud 28 may require at least PHP 8.1. Please upgrade to one of the officially supported PHP versions provided by the PHP Group as soon as possible." : "您正在執行 PHP %s。Nextcloud 27 已棄用 PHP 8.0。Nextcloud 28 需要 PHP 8.1 或更高版本。請盡快升級至 PHP Group 提供官方支援的其中一個版本。",
- "MariaDB version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher." : "正在使用 MariaDB 版本「%s」。Nextcloud 21 或更高版本不支援此版本,並需要 MariaDB 10.2 或更高版本。",
- "MySQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher." : "正在使用 MySQL 版本「%s」。Nextcloud 21 或更高版本不支援此版本,並需要 MySQL 8.0 或 MariaDB 10.2 或更高版本。",
- "PostgreSQL version \"%s\" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher." : "正在使用 PostgreSQL 版本「%s」。Nextcloud 21 或更高版本不支援此版本,並需要 PostgreSQL 9.6 或更高版本。",
- "Speech-To-Text" : "語音轉文字",
- "Speech-To-Text can be implemented by different apps. Here you can set which app should be used." : "語音轉文字可以透過不同的應用程式實作。您可以在此處設定要使用哪個應用程式。",
- "None of your currently installed apps provide Speech-To-Text functionality" : "您目前安裝的應用程式均不提供語音轉文字功能",
- "None of your currently installed apps provide Text processing functionality" : "您目前安裝的應用程式均不提供文字處理功能",
- "Set default expiration date for shares" : "設定分享的預設到期日",
- "Allow username autocompletion in share dialog and allow access to the system address book" : "允許在分享對話方塊中自動補齊使用者名稱,並允許存取系統通訊錄",
- "Your biography" : "您的自傳",
- "You are using <strong>{usage}</strong>" : "您已使用 <strong>{usage}</strong>",
- "You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)" : "您已使用 <strong>{totalSpace}</strong> 中的 <strong>{usage}</strong> (<strong>{usageRelative}%</strong>)",
- "Set user manager" : "設定使用者管理員",
- "Username will be autogenerated" : "使用者名稱將會自動產生",
- "Username (required)" : "使用者名稱(必填)",
- "New user" : "新使用者",
- "Groups (required)" : "群組(必填)",
- "Set user groups" : "設定使用者群組",
- "Administered groups" : "管理群組",
- "Set user as admin for …" : "將使用者設定為以下群組的管理員…",
- "Set user quota" : "設定使用者容量限制",
- "Add new user" : "新增使用者",
- "_{userCount} user …_::_{userCount} users …_" : ["{userCount} 個使用者……"],
- "_{userCount} user_::_{userCount} users_" : ["{userCount} 個使用者"],
- "Loading users …" : "正在載入使用者…",
- "Username" : "使用者名稱",
- "User backend" : "使用者資料後端",
- "User actions" : "使用者動作",
- "Add user to group" : "新增使用者到群組",
- "Server error while trying to add WebAuthn device" : "嘗試新增 WebAuthn 裝置時發生伺服器錯誤",
- "Name your device" : "請為您的裝置命名",
- "Active accounts" : "活躍帳號",
- "Follow us on Twitter" : "在 Twitter 上追蹤我們",
- "To allow this check to run you have to make sure that your Web server can connect to itself. Therefore it must be able to resolve and connect to at least one of its `trusted_domains` or the `overwrite.cli.url`. This failure may be the result of a server-side DNS mismatch or outbound firewall rule." : "若要允許執行此檢查,您必須確保您的網路伺服器可以連線到其自身。因此,其必須可以解析並連線到 `trusted_domains` 或 `overwrite.cli.url` 至少其中一個。此失敗可能是因為伺服器端 DNS 不符或連出防火牆規則造成的。",
+ "- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "- `%1$s` HTTP 標頭並不包含 `%2$s`。這可能是潛在的安全性或隱私風險,建議調整此項設定。",
"PostgreSQL version \"%s\" detected. PostgreSQL >=12 and <=16 is suggested for best performance, stability and functionality with this version of Nextcloud." : "偵測到 PostgreSQL 版本「%s」。建議使用 PostgreSQL >=12 且 <=16 以取得此版本 Nextcloud 的最佳效能、穩定性與功能。",
- "Failed to load subadmin groups with details" : "載入包含詳細資訊的子管理員群組失敗"
+ "Set default expiration date for shares" : "設定分享的預設到期日"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/settings/lib/AppInfo/Application.php b/apps/settings/lib/AppInfo/Application.php
index f4737468716..6e59e56fe82 100644
--- a/apps/settings/lib/AppInfo/Application.php
+++ b/apps/settings/lib/AppInfo/Application.php
@@ -70,6 +70,7 @@ use OCA\Settings\SetupChecks\SchedulingTableSize;
use OCA\Settings\SetupChecks\SecurityHeaders;
use OCA\Settings\SetupChecks\SupportedDatabase;
use OCA\Settings\SetupChecks\SystemIs64bit;
+use OCA\Settings\SetupChecks\TaskProcessingPickupSpeed;
use OCA\Settings\SetupChecks\TempSpaceAvailable;
use OCA\Settings\SetupChecks\TransactionIsolation;
use OCA\Settings\SetupChecks\WellKnownUrls;
@@ -206,6 +207,7 @@ class Application extends App implements IBootstrap {
$context->registerSetupCheck(SchedulingTableSize::class);
$context->registerSetupCheck(SupportedDatabase::class);
$context->registerSetupCheck(SystemIs64bit::class);
+ $context->registerSetupCheck(TaskProcessingPickupSpeed::class);
$context->registerSetupCheck(TempSpaceAvailable::class);
$context->registerSetupCheck(TransactionIsolation::class);
$context->registerSetupCheck(PushService::class);
diff --git a/apps/settings/lib/Controller/CommonSettingsTrait.php b/apps/settings/lib/Controller/CommonSettingsTrait.php
index 56760c10f81..67398d1357b 100644
--- a/apps/settings/lib/Controller/CommonSettingsTrait.php
+++ b/apps/settings/lib/Controller/CommonSettingsTrait.php
@@ -144,6 +144,14 @@ trait CommonSettingsTrait {
$this->declarativeSettingsManager->loadSchemas();
$declarativeSettings = $this->declarativeSettingsManager->getFormsWithValues($user, $type, $section);
+ foreach ($declarativeSettings as &$form) {
+ foreach ($form['fields'] as &$field) {
+ if (isset($field['sensitive']) && $field['sensitive'] === true && !empty($field['value'])) {
+ $field['value'] = 'dummySecret';
+ }
+ }
+ }
+
if ($type === 'personal') {
$settings = array_values($this->settingsManager->getPersonalSettings($section));
if ($section === 'theming') {
diff --git a/apps/settings/lib/Controller/DeclarativeSettingsController.php b/apps/settings/lib/Controller/DeclarativeSettingsController.php
index eb9d45839de..4e4bee4043c 100644
--- a/apps/settings/lib/Controller/DeclarativeSettingsController.php
+++ b/apps/settings/lib/Controller/DeclarativeSettingsController.php
@@ -15,6 +15,7 @@ use OC\AppFramework\Middleware\Security\Exceptions\NotLoggedInException;
use OCA\Settings\ResponseDefinitions;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
+use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCSController;
@@ -53,6 +54,45 @@ class DeclarativeSettingsController extends OCSController {
*/
#[NoAdminRequired]
public function setValue(string $app, string $formId, string $fieldId, mixed $value): DataResponse {
+ return $this->saveValue($app, $formId, $fieldId, $value);
+ }
+
+ /**
+ * Sets a declarative settings value.
+ * Password confirmation is required for sensitive values.
+ *
+ * @param string $app ID of the app
+ * @param string $formId ID of the form
+ * @param string $fieldId ID of the field
+ * @param mixed $value Value to be saved
+ * @return DataResponse<Http::STATUS_OK, null, array{}>
+ * @throws NotLoggedInException Not logged in or not an admin user
+ * @throws NotAdminException Not logged in or not an admin user
+ * @throws OCSBadRequestException Invalid arguments to save value
+ *
+ * 200: Value set successfully
+ */
+ #[NoAdminRequired]
+ #[PasswordConfirmationRequired]
+ public function setSensitiveValue(string $app, string $formId, string $fieldId, mixed $value): DataResponse {
+ return $this->saveValue($app, $formId, $fieldId, $value);
+ }
+
+ /**
+ * Sets a declarative settings value.
+ *
+ * @param string $app ID of the app
+ * @param string $formId ID of the form
+ * @param string $fieldId ID of the field
+ * @param mixed $value Value to be saved
+ * @return DataResponse<Http::STATUS_OK, null, array{}>
+ * @throws NotLoggedInException Not logged in or not an admin user
+ * @throws NotAdminException Not logged in or not an admin user
+ * @throws OCSBadRequestException Invalid arguments to save value
+ *
+ * 200: Value set successfully
+ */
+ private function saveValue(string $app, string $formId, string $fieldId, mixed $value): DataResponse {
$user = $this->userSession->getUser();
if ($user === null) {
throw new NotLoggedInException();
diff --git a/apps/settings/lib/ResponseDefinitions.php b/apps/settings/lib/ResponseDefinitions.php
index 0f3d6bffccf..12adefda91f 100644
--- a/apps/settings/lib/ResponseDefinitions.php
+++ b/apps/settings/lib/ResponseDefinitions.php
@@ -20,6 +20,7 @@ namespace OCA\Settings;
* default: mixed,
* options?: list<string|array{name: string, value: mixed}>,
* value: string|int|float|bool|list<string>,
+ * sensitive?: boolean,
* }
*
* @psalm-type SettingsDeclarativeForm = array{
diff --git a/apps/settings/lib/Settings/Admin/Mail.php b/apps/settings/lib/Settings/Admin/Mail.php
index 728be01f3d8..566cdea310f 100644
--- a/apps/settings/lib/Settings/Admin/Mail.php
+++ b/apps/settings/lib/Settings/Admin/Mail.php
@@ -9,6 +9,7 @@ use OCP\AppFramework\Http\TemplateResponse;
use OCP\IBinaryFinder;
use OCP\IConfig;
use OCP\IL10N;
+use OCP\Server;
use OCP\Settings\IDelegatedSettings;
class Mail implements IDelegatedSettings {
@@ -26,7 +27,7 @@ class Mail implements IDelegatedSettings {
* @return TemplateResponse
*/
public function getForm() {
- $finder = \OCP\Server::get(IBinaryFinder::class);
+ $finder = Server::get(IBinaryFinder::class);
$parameters = [
// Mail
diff --git a/apps/settings/lib/Settings/Personal/PersonalInfo.php b/apps/settings/lib/Settings/Personal/PersonalInfo.php
index 1032f97361b..84b379f2e87 100644
--- a/apps/settings/lib/Settings/Personal/PersonalInfo.php
+++ b/apps/settings/lib/Settings/Personal/PersonalInfo.php
@@ -29,6 +29,7 @@ use OCP\L10N\IFactory;
use OCP\Notification\IManager;
use OCP\Server;
use OCP\Settings\ISettings;
+use OCP\Util;
class PersonalInfo implements ISettings {
@@ -71,7 +72,7 @@ class PersonalInfo implements ISettings {
if ($storageInfo['quota'] === FileInfo::SPACE_UNLIMITED) {
$totalSpace = $this->l->t('Unlimited');
} else {
- $totalSpace = \OC_Helper::humanFileSize($storageInfo['total']);
+ $totalSpace = Util::humanFileSize($storageInfo['total']);
}
$messageParameters = $this->getMessageParameters($account);
@@ -88,7 +89,7 @@ class PersonalInfo implements ISettings {
'groups' => $this->getGroups($user),
'quota' => $storageInfo['quota'],
'totalSpace' => $totalSpace,
- 'usage' => \OC_Helper::humanFileSize($storageInfo['used']),
+ 'usage' => Util::humanFileSize($storageInfo['used']),
'usageRelative' => round($storageInfo['relative']),
'displayName' => $this->getProperty($account, IAccountManager::PROPERTY_DISPLAYNAME),
'emailMap' => $this->getEmailMap($account),
diff --git a/apps/settings/lib/SetupChecks/MimeTypeMigrationAvailable.php b/apps/settings/lib/SetupChecks/MimeTypeMigrationAvailable.php
index 98c8eacbfda..cf237f68670 100644
--- a/apps/settings/lib/SetupChecks/MimeTypeMigrationAvailable.php
+++ b/apps/settings/lib/SetupChecks/MimeTypeMigrationAvailable.php
@@ -10,18 +10,15 @@ namespace OCA\Settings\SetupChecks;
use OC\Repair\RepairMimeTypes;
use OCP\IL10N;
-use OCP\L10N\IFactory;
use OCP\SetupCheck\ISetupCheck;
use OCP\SetupCheck\SetupResult;
class MimeTypeMigrationAvailable implements ISetupCheck {
- private IL10N $l10n;
public function __construct(
- IFactory $l10nFactory,
private RepairMimeTypes $repairMimeTypes,
+ private IL10N $l10n,
) {
- $this->l10n = $l10nFactory->get('core');
}
public function getCategory(): string {
diff --git a/apps/settings/lib/SetupChecks/SecurityHeaders.php b/apps/settings/lib/SetupChecks/SecurityHeaders.php
index ed4e56218da..9cc6856a170 100644
--- a/apps/settings/lib/SetupChecks/SecurityHeaders.php
+++ b/apps/settings/lib/SetupChecks/SecurityHeaders.php
@@ -72,11 +72,6 @@ class SecurityHeaders implements ISetupCheck {
}
}
- $xssFields = array_map('trim', explode(';', $response->getHeader('X-XSS-Protection')));
- if (!in_array('1', $xssFields) || !in_array('mode=block', $xssFields)) {
- $msg .= $this->l10n->t('- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.', ['X-XSS-Protection', '1; mode=block']) . "\n";
- }
-
$referrerPolicy = $response->getHeader('Referrer-Policy');
if (!preg_match('/(no-referrer(-when-downgrade)?|strict-origin(-when-cross-origin)?|same-origin)(,|$)/', $referrerPolicy)) {
$msg .= $this->l10n->t(
diff --git a/apps/settings/lib/SetupChecks/TaskProcessingPickupSpeed.php b/apps/settings/lib/SetupChecks/TaskProcessingPickupSpeed.php
new file mode 100644
index 00000000000..83168ac0f3e
--- /dev/null
+++ b/apps/settings/lib/SetupChecks/TaskProcessingPickupSpeed.php
@@ -0,0 +1,63 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Settings\SetupChecks;
+
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\IL10N;
+use OCP\SetupCheck\ISetupCheck;
+use OCP\SetupCheck\SetupResult;
+use OCP\TaskProcessing\IManager;
+
+class TaskProcessingPickupSpeed implements ISetupCheck {
+ public const MAX_SLOW_PERCENTAGE = 0.2;
+ public const TIME_SPAN = 24;
+
+ public function __construct(
+ private IL10N $l10n,
+ private IManager $taskProcessingManager,
+ private ITimeFactory $timeFactory,
+ ) {
+ }
+
+ public function getCategory(): string {
+ return 'ai';
+ }
+
+ public function getName(): string {
+ return $this->l10n->t('Task Processing pickup speed');
+ }
+
+ public function run(): SetupResult {
+ $tasks = $this->taskProcessingManager->getTasks(userId: '', scheduleAfter: $this->timeFactory->now()->getTimestamp() - 60 * 60 * self::TIME_SPAN); // userId: '' means no filter, whereas null would mean guest
+ $taskCount = count($tasks);
+ if ($taskCount === 0) {
+ return SetupResult::success($this->l10n->n('No scheduled tasks in the last %n hour.', 'No scheduled tasks in the last %n hours.', self::TIME_SPAN));
+ }
+ $slowCount = 0;
+ foreach ($tasks as $task) {
+ if ($task->getStartedAt() === null) {
+ continue; // task was not picked up yet
+ }
+ if ($task->getScheduledAt() === null) {
+ continue; // task was not scheduled yet -- should not happen, but the API specifies null as return value
+ }
+ $pickupDelay = $task->getScheduledAt() - $task->getStartedAt();
+ if ($pickupDelay > 60 * 4) {
+ $slowCount++; // task pickup took longer than 4 minutes
+ }
+ }
+
+ if ($slowCount / $taskCount < self::MAX_SLOW_PERCENTAGE) {
+ return SetupResult::success($this->l10n->n('The task pickup speed has been ok in the last %n hour.', 'The task pickup speed has been ok in the last %n hours.', self::TIME_SPAN));
+ } else {
+ return SetupResult::warning($this->l10n->n('The task pickup speed has been slow in the last %n hour. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background.', 'The task pickup speed has been slow in the last %n hours. Many tasks took longer than 4 minutes to be picked up. Consider setting up a worker to process tasks in the background.', self::TIME_SPAN), 'https://docs.nextcloud.com/server/latest/admin_manual/ai/overview.html#improve-ai-task-pickup-speed');
+ }
+ }
+}
diff --git a/apps/settings/lib/UserMigration/AccountMigrator.php b/apps/settings/lib/UserMigration/AccountMigrator.php
index 15ac06687b6..1c51aec5104 100644
--- a/apps/settings/lib/UserMigration/AccountMigrator.php
+++ b/apps/settings/lib/UserMigration/AccountMigrator.php
@@ -35,8 +35,6 @@ class AccountMigrator implements IMigrator, ISizeEstimationMigrator {
private ProfileManager $profileManager;
- private ProfileConfigMapper $configMapper;
-
private const PATH_ROOT = Application::APP_ID . '/';
private const PATH_ACCOUNT_FILE = AccountMigrator::PATH_ROOT . 'account.json';
@@ -49,11 +47,10 @@ class AccountMigrator implements IMigrator, ISizeEstimationMigrator {
private IAccountManager $accountManager,
private IAvatarManager $avatarManager,
ProfileManager $profileManager,
- ProfileConfigMapper $configMapper,
+ private ProfileConfigMapper $configMapper,
private IL10N $l10n,
) {
$this->profileManager = $profileManager;
- $this->configMapper = $configMapper;
}
/**
diff --git a/apps/settings/openapi-full.json b/apps/settings/openapi-full.json
index e12598a2584..d592051507b 100644
--- a/apps/settings/openapi-full.json
+++ b/apps/settings/openapi-full.json
@@ -169,6 +169,9 @@
}
}
]
+ },
+ "sensitive": {
+ "type": "boolean"
}
}
},
@@ -373,6 +376,140 @@
}
}
},
+ "/ocs/v2.php/settings/api/declarative/value-sensitive": {
+ "post": {
+ "operationId": "declarative_settings-set-sensitive-value",
+ "summary": "Sets a declarative settings value. Password confirmation is required for sensitive values.",
+ "description": "This endpoint requires password confirmation",
+ "tags": [
+ "declarative_settings"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "app",
+ "formId",
+ "fieldId",
+ "value"
+ ],
+ "properties": {
+ "app": {
+ "type": "string",
+ "description": "ID of the app"
+ },
+ "formId": {
+ "type": "string",
+ "description": "ID of the form"
+ },
+ "fieldId": {
+ "type": "string",
+ "description": "ID of the field"
+ },
+ "value": {
+ "type": "object",
+ "description": "Value to be saved"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Value set successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "nullable": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Not logged in or not an admin user",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid arguments to save value",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/settings/api/declarative/forms": {
"get": {
"operationId": "declarative_settings-get-forms",
diff --git a/apps/settings/openapi.json b/apps/settings/openapi.json
index f81b18bdc70..f38960aa244 100644
--- a/apps/settings/openapi.json
+++ b/apps/settings/openapi.json
@@ -169,6 +169,9 @@
}
}
]
+ },
+ "sensitive": {
+ "type": "boolean"
}
}
},
@@ -332,6 +335,140 @@
}
}
},
+ "/ocs/v2.php/settings/api/declarative/value-sensitive": {
+ "post": {
+ "operationId": "declarative_settings-set-sensitive-value",
+ "summary": "Sets a declarative settings value. Password confirmation is required for sensitive values.",
+ "description": "This endpoint requires password confirmation",
+ "tags": [
+ "declarative_settings"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "app",
+ "formId",
+ "fieldId",
+ "value"
+ ],
+ "properties": {
+ "app": {
+ "type": "string",
+ "description": "ID of the app"
+ },
+ "formId": {
+ "type": "string",
+ "description": "ID of the form"
+ },
+ "fieldId": {
+ "type": "string",
+ "description": "ID of the field"
+ },
+ "value": {
+ "type": "object",
+ "description": "Value to be saved"
+ }
+ }
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Value set successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "nullable": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Not logged in or not an admin user",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid arguments to save value",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {}
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/ocs/v2.php/settings/api/declarative/forms": {
"get": {
"operationId": "declarative_settings-get-forms",
diff --git a/apps/settings/src/components/AppList.vue b/apps/settings/src/components/AppList.vue
index cfc778fe409..3e40e08b257 100644
--- a/apps/settings/src/components/AppList.vue
+++ b/apps/settings/src/components/AppList.vue
@@ -200,9 +200,13 @@ export default {
const apps = [...this.$store.getters.getAllApps, ...exApps]
.filter(app => app.name.toLowerCase().search(this.search.toLowerCase()) !== -1)
.sort(function(a, b) {
- const sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1) + a.name
- const sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1) + b.name
- return OC.Util.naturalSortCompare(sortStringA, sortStringB)
+ const natSortDiff = OC.Util.naturalSortCompare(a, b)
+ if (natSortDiff === 0) {
+ const sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1)
+ const sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1)
+ return Number(sortStringA) - Number(sortStringB)
+ }
+ return natSortDiff
})
if (this.category === 'installed') {
diff --git a/apps/settings/src/components/AppNavigationGroupList.vue b/apps/settings/src/components/AppNavigationGroupList.vue
index 5c648a17098..2be7cce2f8b 100644
--- a/apps/settings/src/components/AppNavigationGroupList.vue
+++ b/apps/settings/src/components/AppNavigationGroupList.vue
@@ -42,7 +42,7 @@
<NcAppNavigationList class="account-management__group-list"
aria-describedby="group-list-desc"
data-cy-users-settings-navigation-groups="custom">
- <GroupListItem v-for="group in userGroups"
+ <GroupListItem v-for="group in filteredGroups"
:id="group.id"
ref="groupListItems"
:key="group.id"
@@ -96,7 +96,11 @@ const selectedGroup = computed(() => route.params?.selectedGroup)
/** Current active group - URL decoded */
const selectedGroupDecoded = computed(() => selectedGroup.value ? decodeURIComponent(selectedGroup.value) : null)
/** All available groups */
-const groups = computed(() => store.getters.getSortedGroups)
+const groups = computed(() => {
+ return isAdminOrDelegatedAdmin.value
+ ? store.getters.getSortedGroups
+ : store.getters.getSubAdminGroups
+})
/** User groups */
const { userGroups } = useFormatGroups(groups)
/** Server settings for current user */
@@ -119,6 +123,14 @@ const loadingGroups = ref(false)
const offset = ref(0)
/** Search query for groups */
const groupsSearchQuery = ref('')
+const filteredGroups = computed(() => {
+ if (isAdminOrDelegatedAdmin.value) {
+ return userGroups.value
+ }
+
+ const substring = groupsSearchQuery.value.toLowerCase()
+ return userGroups.value.filter(group => group.id.toLowerCase().search(substring) !== -1 || group.title.toLowerCase().search(substring) !== -1)
+})
const groupListItems = ref([])
const lastGroupListItem = computed(() => {
diff --git a/apps/settings/src/components/DeclarativeSettings/DeclarativeSection.vue b/apps/settings/src/components/DeclarativeSettings/DeclarativeSection.vue
index 334739337e1..9ee1680516e 100644
--- a/apps/settings/src/components/DeclarativeSettings/DeclarativeSection.vue
+++ b/apps/settings/src/components/DeclarativeSettings/DeclarativeSection.vue
@@ -119,6 +119,7 @@ import NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'
import NcInputField from '@nextcloud/vue/components/NcInputField'
import NcSelect from '@nextcloud/vue/components/NcSelect'
import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'
+import { confirmPassword } from '@nextcloud/password-confirmation'
export default {
name: 'DeclarativeSection',
@@ -202,9 +203,19 @@ export default {
}
},
- updateDeclarativeSettingsValue(formField, value = null) {
+ async updateDeclarativeSettingsValue(formField, value = null) {
try {
- return axios.post(generateOcsUrl('settings/api/declarative/value'), {
+ let url = generateOcsUrl('settings/api/declarative/value')
+ if (formField?.sensitive === true) {
+ url = generateOcsUrl('settings/api/declarative/value-sensitive')
+ try {
+ await confirmPassword()
+ } catch (err) {
+ showError(t('settings', 'Password confirmation is required'))
+ return
+ }
+ }
+ return axios.post(url, {
app: this.formApp,
formId: this.form.id.replace(this.formApp + '_', ''), // Remove app prefix to send clean form id
fieldId: formField.id,
diff --git a/apps/settings/src/components/GroupListItem.vue b/apps/settings/src/components/GroupListItem.vue
index 65d46136ec1..76088fa74db 100644
--- a/apps/settings/src/components/GroupListItem.vue
+++ b/apps/settings/src/components/GroupListItem.vue
@@ -13,7 +13,7 @@
</h2>
<NcNoteCard type="warning"
show-alert>
- {{ t('settings', 'You are about to remove the group "{group}". The accounts will NOT be deleted.', { group: name }) }}
+ {{ t('settings', 'You are about to delete the group "{group}". The accounts will NOT be deleted.', { group: name }) }}
</NcNoteCard>
<div class="modal__button-row">
<NcButton type="secondary"
@@ -62,7 +62,7 @@
<template #icon>
<Delete :size="20" />
</template>
- {{ t('settings', 'Remove group') }}
+ {{ t('settings', 'Delete group') }}
</NcActionButton>
</template>
</NcAppNavigationItem>
@@ -179,7 +179,7 @@ export default {
await this.$store.dispatch('removeGroup', this.id)
this.showRemoveGroupModal = false
} catch (error) {
- showError(t('settings', 'Failed to remove group "{group}"', { group: this.name }))
+ showError(t('settings', 'Failed to delete group "{group}"', { group: this.name }))
}
},
},
diff --git a/apps/settings/src/components/PersonalInfo/PronounsSection.vue b/apps/settings/src/components/PersonalInfo/PronounsSection.vue
index fb35b1800c5..e345cb8e225 100644
--- a/apps/settings/src/components/PersonalInfo/PronounsSection.vue
+++ b/apps/settings/src/components/PersonalInfo/PronounsSection.vue
@@ -8,16 +8,18 @@
:placeholder="randomPronounsPlaceholder" />
</template>
-<script>
-import { loadState } from '@nextcloud/initial-state'
+<script lang="ts">
+import type { IAccountProperty } from '../../constants/AccountPropertyConstants.ts'
+import { loadState } from '@nextcloud/initial-state'
+import { t } from '@nextcloud/l10n'
+import { defineComponent } from 'vue'
import AccountPropertySection from './shared/AccountPropertySection.vue'
+import { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.ts'
-import { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'
-
-const { pronouns } = loadState('settings', 'personalInfoParameters', {})
+const { pronouns } = loadState<{ pronouns: IAccountProperty }>('settings', 'personalInfoParameters')
-export default {
+export default defineComponent({
name: 'PronounsSection',
components: {
@@ -33,13 +35,13 @@ export default {
computed: {
randomPronounsPlaceholder() {
const pronouns = [
- this.t('settings', 'she/her'),
- this.t('settings', 'he/him'),
- this.t('settings', 'they/them'),
+ t('settings', 'she/her'),
+ t('settings', 'he/him'),
+ t('settings', 'they/them'),
]
const pronounsExample = pronouns[Math.floor(Math.random() * pronouns.length)]
- return this.t('settings', `Your pronouns. E.g. ${pronounsExample}`, { pronounsExample })
+ return t('settings', 'Your pronouns. E.g. {pronounsExample}', { pronounsExample })
},
},
-}
+})
</script>
diff --git a/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue b/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue
index 8cdde6b7d9a..d039641ec72 100644
--- a/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue
+++ b/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue
@@ -155,6 +155,7 @@ export default {
methods: {
async updateProperty(value) {
try {
+ this.hasError = false
const responseData = await savePrimaryAccountProperty(
this.name,
value,
@@ -180,10 +181,8 @@ export default {
this.isSuccess = true
setTimeout(() => { this.isSuccess = false }, 2000)
} else {
- this.$emit('update:value', this.initialValue)
handleError(error, errorMessage)
this.hasError = true
- setTimeout(() => { this.hasError = false }, 2000)
}
},
},
diff --git a/apps/settings/src/components/Users/NewUserDialog.vue b/apps/settings/src/components/Users/NewUserDialog.vue
index 19445bc187e..ef401b565fa 100644
--- a/apps/settings/src/components/Users/NewUserDialog.vue
+++ b/apps/settings/src/components/Users/NewUserDialog.vue
@@ -86,7 +86,7 @@
:input-label="t('settings', 'Admin of the following groups')"
:placeholder="t('settings', 'Set account as admin for …')"
:disabled="loading.groups || loading.all"
- :options="subAdminsGroups"
+ :options="availableGroups"
:close-on-select="false"
:multiple="true"
label="name"
@@ -179,7 +179,6 @@ export default {
data() {
return {
- availableGroups: [],
possibleManagers: [],
// TRANSLATORS This string describes a manager in the context of an organization
managerInputLabel: t('settings', 'Manager'),
@@ -210,9 +209,12 @@ export default {
return this.$store.getters.getPasswordPolicyMinLength
},
- subAdminsGroups() {
- // data provided php side
- return this.availableGroups.filter(group => group.id !== 'admin' && group.id !== '__nc_internal_recent' && group.id !== 'disabled')
+ availableGroups() {
+ const groups = (this.settings.isAdmin || this.settings.isDelegatedAdmin)
+ ? this.$store.getters.getSortedGroups
+ : this.$store.getters.getSubAdminGroups
+
+ return groups.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled')
},
languages() {
@@ -236,13 +238,6 @@ export default {
},
mounted() {
- // admins also can assign the system groups
- if (this.isAdmin || this.isDelegatedAdmin) {
- this.availableGroups = this.$store.getters.getSortedGroups.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled')
- } else {
- this.availableGroups = [...this.$store.getters.getSubAdminGroups]
- }
-
this.$refs.username?.focus?.()
},
@@ -281,7 +276,7 @@ export default {
},
async searchGroups(query, toggleLoading) {
- if (!this.isAdmin && !this.isDelegatedAdmin) {
+ if (!this.settings.isAdmin && !this.settings.isDelegatedAdmin) {
// managers cannot search for groups
return
}
@@ -297,7 +292,10 @@ export default {
limit: 25,
})
const groups = await this.promise
- this.availableGroups = groups
+ // Populate store from server request
+ for (const group of groups) {
+ this.$store.commit('addGroup', group)
+ }
} catch (error) {
logger.error(t('settings', 'Failed to search groups'), { error })
}
@@ -315,7 +313,6 @@ export default {
this.loading.groups = true
try {
await this.$store.dispatch('addGroup', gid)
- this.availableGroups.push({ id: gid, name: gid })
this.newUser.groups.push({ id: gid, name: gid })
} catch (error) {
logger.error(t('settings', 'Failed to create group'), { error })
@@ -349,7 +346,7 @@ export default {
const validQuota = OC.Util.computerFileSize(quota)
if (validQuota !== null && validQuota >= 0) {
// unify format output
- quota = formatFileSize(parseFileSize(quota))
+ quota = formatFileSize(parseFileSize(quota, true))
this.newUser.quota = { id: quota, label: quota }
return this.newUser.quota
}
diff --git a/apps/settings/src/components/Users/UserRow.vue b/apps/settings/src/components/Users/UserRow.vue
index 987cf84492a..43668725972 100644
--- a/apps/settings/src/components/Users/UserRow.vue
+++ b/apps/settings/src/components/Users/UserRow.vue
@@ -255,16 +255,17 @@
data-cy-user-list-input-manager
:data-loading="loading.manager || undefined"
:input-id="'manager' + uniqueId"
- :close-on-select="true"
:disabled="isLoadingField"
- :append-to-body="false"
:loading="loadingPossibleManagers || loading.manager"
- label="displayname"
:options="possibleManagers"
:placeholder="managerLabel"
+ label="displayname"
+ :filterable="false"
+ :internal-search="false"
+ :clearable="true"
@open="searchInitialUserManager"
@search="searchUserManager"
- @option:selected="updateUserManager" />
+ @update:model-value="updateUserManager" />
</template>
<span v-else-if="!isObfuscated">
{{ user.manager }}
@@ -410,15 +411,35 @@ export default {
return encodeURIComponent(this.user.id + this.rand)
},
+ availableGroups() {
+ const groups = (this.settings.isAdmin || this.settings.isDelegatedAdmin)
+ ? this.$store.getters.getSortedGroups
+ : this.$store.getters.getSubAdminGroups
+
+ return groups.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled')
+ },
+
+ availableSubAdminGroups() {
+ return this.availableGroups.filter(group => group.id !== 'admin')
+ },
+
userGroupsLabels() {
return this.userGroups
- .map(group => group.name ?? group.id)
+ .map(group => {
+ // Try to match with more extensive group data
+ const availableGroup = this.availableGroups.find(g => g.id === group.id)
+ return availableGroup?.name ?? group.name ?? group.id
+ })
.join(', ')
},
userSubAdminGroupsLabels() {
return this.userSubAdminGroups
- .map(group => group.name ?? group.id)
+ .map(group => {
+ // Try to match with more extensive group data
+ const availableGroup = this.availableSubAdminGroups.find(g => g.id === group.id)
+ return availableGroup?.name ?? group.name ?? group.id
+ })
.join(', ')
},
@@ -502,7 +523,6 @@ export default {
return this.languages[0].languages.concat(this.languages[1].languages)
},
},
-
async beforeMount() {
if (this.user.manager) {
await this.initManager(this.user.manager)
@@ -559,7 +579,11 @@ export default {
this.loading.groupsDetails = true
try {
const groups = await loadUserGroups({ userId: this.user.id })
- this.availableGroups = this.availableGroups.map(availableGroup => groups.find(group => group.id === availableGroup.id) ?? availableGroup)
+ // Populate store from server request
+ for (const group of groups) {
+ this.$store.commit('addGroup', group)
+ }
+ this.selectedGroups = this.selectedGroups.map(selectedGroup => groups.find(group => group.id === selectedGroup.id) ?? selectedGroup)
} catch (error) {
logger.error(t('settings', 'Failed to load groups with details'), { error })
}
@@ -572,7 +596,11 @@ export default {
this.loading.subAdminGroupsDetails = true
try {
const groups = await loadUserSubAdminGroups({ userId: this.user.id })
- this.availableSubAdminGroups = this.availableSubAdminGroups.map(availableGroup => groups.find(group => group.id === availableGroup.id) ?? availableGroup)
+ // Populate store from server request
+ for (const group of groups) {
+ this.$store.commit('addGroup', group)
+ }
+ this.selectedSubAdminGroups = this.selectedSubAdminGroups.map(selectedGroup => groups.find(group => group.id === selectedGroup.id) ?? selectedGroup)
} catch (error) {
logger.error(t('settings', 'Failed to load sub admin groups with details'), { error })
}
@@ -595,8 +623,10 @@ export default {
limit: 25,
})
const groups = await this.promise
- this.availableGroups = groups
- this.availableSubAdminGroups = groups.filter(group => group.id !== 'admin')
+ // Populate store from server request
+ for (const group of groups) {
+ this.$store.commit('addGroup', group)
+ }
} catch (error) {
logger.error(t('settings', 'Failed to search groups'), { error })
}
@@ -613,11 +643,12 @@ export default {
})
},
- async updateUserManager(manager) {
- if (manager === null) {
- this.currentManager = ''
- }
+ async updateUserManager() {
this.loading.manager = true
+
+ // Store the current manager before making changes
+ const previousManager = this.user.manager
+
try {
await this.$store.dispatch('setUserData', {
userid: this.user.id,
@@ -627,7 +658,10 @@ export default {
} catch (error) {
// TRANSLATORS This string describes a line manager in the context of an organization
showError(t('settings', 'Failed to update line manager'))
- console.error(error)
+ logger.error('Failed to update manager:', { error })
+
+ // Revert to the previous manager in the UI on error
+ this.currentManager = previousManager
} finally {
this.loading.manager = false
}
@@ -753,8 +787,6 @@ export default {
this.loading.groups = true
try {
await this.$store.dispatch('addGroup', gid)
- this.availableGroups.push({ id: gid, name: gid })
- this.availableSubAdminGroups.push({ id: gid, name: gid })
const userid = this.user.id
await this.$store.dispatch('addUserGroup', { userid, gid })
this.userGroups.push({ id: gid, name: gid })
diff --git a/apps/settings/src/composables/useGroupsNavigation.ts b/apps/settings/src/composables/useGroupsNavigation.ts
index 6235088f944..d9f0637843b 100644
--- a/apps/settings/src/composables/useGroupsNavigation.ts
+++ b/apps/settings/src/composables/useGroupsNavigation.ts
@@ -17,14 +17,12 @@ function formatGroupMenu(group?: IGroup) {
return null
}
- const item = {
+ return {
id: group.id,
title: group.name,
- usercount: group.usercount,
- count: Math.max(0, group.usercount - group.disabled),
+ usercount: group.usercount ?? 0,
+ count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)),
}
-
- return item
}
export const useFormatGroups = (groups: Ref<IGroup[]>|ComputedRef<IGroup[]>) => {
diff --git a/apps/settings/src/main-declarative-settings-forms.ts b/apps/settings/src/main-declarative-settings-forms.ts
index 6e2d71b69ca..d6f5973baea 100644
--- a/apps/settings/src/main-declarative-settings-forms.ts
+++ b/apps/settings/src/main-declarative-settings-forms.ts
@@ -20,6 +20,7 @@ interface DeclarativeFormField {
options: Array<unknown>|null,
value: unknown,
default: unknown,
+ sensitive: boolean,
}
interface DeclarativeForm {
diff --git a/apps/settings/src/mixins/UserRowMixin.js b/apps/settings/src/mixins/UserRowMixin.js
index 2cb69ff2e96..9e46d8e25d7 100644
--- a/apps/settings/src/mixins/UserRowMixin.js
+++ b/apps/settings/src/mixins/UserRowMixin.js
@@ -43,8 +43,8 @@ export default {
},
data() {
return {
- availableGroups: this.user.groups.map(id => ({ id, name: id })),
- availableSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })),
+ selectedGroups: this.user.groups.map(id => ({ id, name: id })),
+ selectedSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })),
userGroups: this.user.groups.map(id => ({ id, name: id })),
userSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })),
}
diff --git a/apps/settings/src/store/users.js b/apps/settings/src/store/users.js
index 3734b7008df..7e4b9c4aebb 100644
--- a/apps/settings/src/store/users.js
+++ b/apps/settings/src/store/users.js
@@ -767,24 +767,25 @@ const actions = {
*/
async setUserData(context, { userid, key, value }) {
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'
- && (
- (allowedEmpty.indexOf(key) === -1 && value.length > 0)
- || allowedEmpty.indexOf(key) !== -1
- )
- ) {
- try {
- await api.requireAdmin()
- await api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })
- return context.commit('setUserData', { userid, key, value })
- } catch (error) {
- context.commit('API_FAILURE', { userid, error })
- }
- }
+ const validKeys = ['email', 'language', 'quota', 'displayname', 'password', 'manager']
+
+ if (!validKeys.includes(key)) {
+ throw new Error('Invalid request data')
+ }
+
+ // If value is empty and the key doesn't allow empty values, throw error
+ if (value === '' && !allowedEmpty.includes(key)) {
+ throw new Error('Value cannot be empty for this field')
+ }
+
+ try {
+ await api.requireAdmin()
+ await api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })
+ return context.commit('setUserData', { userid, key, value })
+ } catch (error) {
+ context.commit('API_FAILURE', { userid, error })
+ throw error
}
- return Promise.reject(new Error('Invalid request data'))
},
/**
diff --git a/apps/settings/tests/Activity/SecurityFilterTest.php b/apps/settings/tests/Activity/SecurityFilterTest.php
index f3f94df3d21..22ef03816d3 100644
--- a/apps/settings/tests/Activity/SecurityFilterTest.php
+++ b/apps/settings/tests/Activity/SecurityFilterTest.php
@@ -12,15 +12,9 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SecurityFilterTest extends TestCase {
-
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
-
- /** @var IL10N|MockObject */
- private $l10n;
-
- /** @var SecurityFilter */
- private $filter;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IL10N&MockObject $l10n;
+ private SecurityFilter $filter;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/settings/tests/Activity/SecurityProviderTest.php b/apps/settings/tests/Activity/SecurityProviderTest.php
index 35526995a67..1687f116871 100644
--- a/apps/settings/tests/Activity/SecurityProviderTest.php
+++ b/apps/settings/tests/Activity/SecurityProviderTest.php
@@ -16,27 +16,19 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SecurityProviderTest extends TestCase {
-
- /** @var IFactory|MockObject */
- private $l10n;
-
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
-
- /** @var IManager|MockObject */
- private $activityManager;
-
- /** @var SecurityProvider */
- private $provider;
+ private IFactory&MockObject $l10nFactory;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IManager&MockObject $activityManager;
+ private SecurityProvider $provider;
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->createMock(IFactory::class);
+ $this->l10nFactory = $this->createMock(IFactory::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->activityManager = $this->createMock(IManager::class);
- $this->provider = new SecurityProvider($this->l10n, $this->urlGenerator, $this->activityManager);
+ $this->provider = new SecurityProvider($this->l10nFactory, $this->urlGenerator, $this->activityManager);
}
public function testParseUnrelated(): void {
@@ -50,7 +42,7 @@ class SecurityProviderTest extends TestCase {
$this->provider->parse($lang, $event);
}
- public function subjectData() {
+ public static function subjectData(): array {
return [
['twofactor_success'],
['twofactor_failed'],
@@ -60,7 +52,7 @@ class SecurityProviderTest extends TestCase {
/**
* @dataProvider subjectData
*/
- public function testParse($subject): void {
+ public function testParse(string $subject): void {
$lang = 'ru';
$event = $this->createMock(IEvent::class);
$l = $this->createMock(IL10N::class);
@@ -68,7 +60,7 @@ class SecurityProviderTest extends TestCase {
$event->expects($this->once())
->method('getType')
->willReturn('security');
- $this->l10n->expects($this->once())
+ $this->l10nFactory->expects($this->once())
->method('get')
->with('settings', $lang)
->willReturn($l);
@@ -104,7 +96,7 @@ class SecurityProviderTest extends TestCase {
$event->expects($this->once())
->method('getType')
->willReturn('security');
- $this->l10n->expects($this->once())
+ $this->l10nFactory->expects($this->once())
->method('get')
->with('settings', $lang)
->willReturn($l);
diff --git a/apps/settings/tests/Activity/SecuritySettingTest.php b/apps/settings/tests/Activity/SecuritySettingTest.php
index 1b2b0e3361c..c109a9f7fdf 100644
--- a/apps/settings/tests/Activity/SecuritySettingTest.php
+++ b/apps/settings/tests/Activity/SecuritySettingTest.php
@@ -12,8 +12,8 @@ use Test\TestCase;
class SecuritySettingTest extends TestCase {
private $l10n;
- /** @var SecuritySetting */
- private $setting;
+ /** @var */
+ private SecuritySetting $setting;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/settings/tests/AppInfo/ApplicationTest.php b/apps/settings/tests/AppInfo/ApplicationTest.php
index 677efdc64bf..85be8c56178 100644
--- a/apps/settings/tests/AppInfo/ApplicationTest.php
+++ b/apps/settings/tests/AppInfo/ApplicationTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -26,11 +28,8 @@ use Test\TestCase;
* @group DB
*/
class ApplicationTest extends TestCase {
- /** @var Application */
- protected $app;
-
- /** @var IAppContainer */
- protected $container;
+ protected Application $app;
+ protected IAppContainer $container;
protected function setUp(): void {
parent::setUp();
@@ -43,7 +42,7 @@ class ApplicationTest extends TestCase {
$this->assertEquals('settings', $this->container->getAppName());
}
- public function dataContainerQuery() {
+ public static function dataContainerQuery(): array {
return [
[AdminSettingsController::class, Controller::class],
[AppSettingsController::class, Controller::class],
@@ -59,10 +58,8 @@ class ApplicationTest extends TestCase {
/**
* @dataProvider dataContainerQuery
- * @param string $service
- * @param string $expected
*/
- public function testContainerQuery($service, $expected): void {
+ public function testContainerQuery(string $service, string $expected): void {
$this->assertTrue($this->container->query($service) instanceof $expected);
}
}
diff --git a/apps/settings/tests/Controller/AppSettingsControllerTest.php b/apps/settings/tests/Controller/AppSettingsControllerTest.php
index f72bd45a3d2..5194ca2cc33 100644
--- a/apps/settings/tests/Controller/AppSettingsControllerTest.php
+++ b/apps/settings/tests/Controller/AppSettingsControllerTest.php
@@ -37,39 +37,23 @@ use Test\TestCase;
* @group DB
*/
class AppSettingsControllerTest extends TestCase {
- /** @var AppSettingsController */
- private $appSettingsController;
- /** @var IRequest|MockObject */
- private $request;
- /** @var IL10N|MockObject */
- private $l10n;
- /** @var IConfig|MockObject */
- private $config;
- /** @var INavigationManager|MockObject */
- private $navigationManager;
+ private IRequest&MockObject $request;
+ private IL10N&MockObject $l10n;
+ private IConfig&MockObject $config;
+ private INavigationManager&MockObject $navigationManager;
private AppManager&MockObject $appManager;
- /** @var CategoryFetcher|MockObject */
- private $categoryFetcher;
- /** @var AppFetcher|MockObject */
- private $appFetcher;
- /** @var IFactory|MockObject */
- private $l10nFactory;
- /** @var BundleFetcher|MockObject */
- private $bundleFetcher;
- /** @var Installer|MockObject */
- private $installer;
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
- /** @var LoggerInterface|MockObject */
- private $logger;
- /** @var IInitialState|MockObject */
- private $initialState;
- /** @var IAppDataFactory|MockObject */
- private $appDataFactory;
- /** @var AppDiscoverFetcher|MockObject */
- private $discoverFetcher;
- /** @var IClientService|MockObject */
- private $clientService;
+ private CategoryFetcher&MockObject $categoryFetcher;
+ private AppFetcher&MockObject $appFetcher;
+ private IFactory&MockObject $l10nFactory;
+ private BundleFetcher&MockObject $bundleFetcher;
+ private Installer&MockObject $installer;
+ private IURLGenerator&MockObject $urlGenerator;
+ private LoggerInterface&MockObject $logger;
+ private IInitialState&MockObject $initialState;
+ private IAppDataFactory&MockObject $appDataFactory;
+ private AppDiscoverFetcher&MockObject $discoverFetcher;
+ private IClientService&MockObject $clientService;
+ private AppSettingsController $appSettingsController;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/settings/tests/Controller/AuthSettingsControllerTest.php b/apps/settings/tests/Controller/AuthSettingsControllerTest.php
index 13213992d94..bb6068ffe94 100644
--- a/apps/settings/tests/Controller/AuthSettingsControllerTest.php
+++ b/apps/settings/tests/Controller/AuthSettingsControllerTest.php
@@ -28,24 +28,15 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class AuthSettingsControllerTest extends TestCase {
-
- /** @var AuthSettingsController */
- private $controller;
- /** @var IRequest|MockObject */
- private $request;
- /** @var IProvider|MockObject */
- private $tokenProvider;
- /** @var ISession|MockObject */
- private $session;
- /** @var IUserSession|MockObject */
- private $userSession;
- /** @var ISecureRandom|MockObject */
- private $secureRandom;
- /** @var IManager|MockObject */
- private $activityManager;
- /** @var RemoteWipe|MockObject */
- private $remoteWipe;
- private $uid = 'jane';
+ private IRequest&MockObject $request;
+ private IProvider&MockObject $tokenProvider;
+ private ISession&MockObject $session;
+ private IUserSession&MockObject $userSession;
+ private ISecureRandom&MockObject $secureRandom;
+ private IManager&MockObject $activityManager;
+ private RemoteWipe&MockObject $remoteWipe;
+ private string $uid = 'jane';
+ private AuthSettingsController $controller;
protected function setUp(): void {
parent::setUp();
@@ -57,7 +48,7 @@ class AuthSettingsControllerTest extends TestCase {
$this->secureRandom = $this->createMock(ISecureRandom::class);
$this->activityManager = $this->createMock(IManager::class);
$this->remoteWipe = $this->createMock(RemoteWipe::class);
- /** @var LoggerInterface|MockObject $logger */
+ /** @var LoggerInterface&MockObject $logger */
$logger = $this->createMock(LoggerInterface::class);
$this->controller = new AuthSettingsController(
@@ -214,7 +205,7 @@ class AuthSettingsControllerTest extends TestCase {
$this->assertSame(\OCP\AppFramework\Http::STATUS_NOT_FOUND, $response->getStatus());
}
- public function dataRenameToken(): array {
+ public static function dataRenameToken(): array {
return [
'App password => Other token name' => ['App password', 'Other token name'],
'Other token name => App password' => ['Other token name', 'App password'],
@@ -223,9 +214,6 @@ class AuthSettingsControllerTest extends TestCase {
/**
* @dataProvider dataRenameToken
- *
- * @param string $name
- * @param string $newName
*/
public function testUpdateRename(string $name, string $newName): void {
$tokenId = 42;
@@ -257,7 +245,7 @@ class AuthSettingsControllerTest extends TestCase {
$this->assertSame([], $this->controller->update($tokenId, [IToken::SCOPE_FILESYSTEM => true], $newName));
}
- public function dataUpdateFilesystemScope(): array {
+ public static function dataUpdateFilesystemScope(): array {
return [
'Grant filesystem access' => [false, true],
'Revoke filesystem access' => [true, false],
@@ -266,9 +254,6 @@ class AuthSettingsControllerTest extends TestCase {
/**
* @dataProvider dataUpdateFilesystemScope
- *
- * @param bool $filesystem
- * @param bool $newFilesystem
*/
public function testUpdateFilesystemScope(bool $filesystem, bool $newFilesystem): void {
$tokenId = 42;
diff --git a/apps/settings/tests/Controller/CheckSetupControllerTest.php b/apps/settings/tests/Controller/CheckSetupControllerTest.php
index 27f7aa1b696..a8e89260573 100644
--- a/apps/settings/tests/Controller/CheckSetupControllerTest.php
+++ b/apps/settings/tests/Controller/CheckSetupControllerTest.php
@@ -29,59 +29,40 @@ use Test\TestCase;
* @package Tests\Settings\Controller
*/
class CheckSetupControllerTest extends TestCase {
- /** @var CheckSetupController | \PHPUnit\Framework\MockObject\MockObject */
- private $checkSetupController;
- /** @var IRequest | \PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IURLGenerator | \PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
- /** @var IL10N | \PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
- /** @var LoggerInterface */
- private $logger;
- /** @var Checker|\PHPUnit\Framework\MockObject\MockObject */
- private $checker;
- /** @var ISetupCheckManager|MockObject */
- private $setupCheckManager;
+ private IRequest&MockObject $request;
+ private IConfig&MockObject $config;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IL10N&MockObject $l10n;
+ private LoggerInterface&MockObject $logger;
+ private Checker&MockObject $checker;
+ private ISetupCheckManager&MockObject $setupCheckManager;
+ private CheckSetupController $checkSetupController;
protected function setUp(): void {
parent::setUp();
- $this->request = $this->getMockBuilder(IRequest::class)
- ->disableOriginalConstructor()->getMock();
- $this->config = $this->getMockBuilder(IConfig::class)
- ->disableOriginalConstructor()->getMock();
- $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)
- ->disableOriginalConstructor()->getMock();
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->request = $this->createMock(IRequest::class);
+ $this->config = $this->createMock(IConfig::class);
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
return vsprintf($message, $replace);
});
- $this->checker = $this->getMockBuilder('\OC\IntegrityCheck\Checker')
- ->disableOriginalConstructor()->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)->getMock();
+ $this->checker = $this->createMock(Checker::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->setupCheckManager = $this->createMock(ISetupCheckManager::class);
- $this->checkSetupController = $this->getMockBuilder(CheckSetupController::class)
- ->setConstructorArgs([
- 'settings',
- $this->request,
- $this->config,
- $this->urlGenerator,
- $this->l10n,
- $this->checker,
- $this->logger,
- $this->setupCheckManager,
- ])
- ->setMethods([
- 'getCurlVersion',
- 'isPhpOutdated',
- 'isPHPMailerUsed',
- ])->getMock();
+ $this->checkSetupController = new CheckSetupController(
+ 'settings',
+ $this->request,
+ $this->config,
+ $this->urlGenerator,
+ $this->l10n,
+ $this->checker,
+ $this->logger,
+ $this->setupCheckManager,
+ );
}
public function testCheck(): void {
diff --git a/apps/settings/tests/Controller/DelegationControllerTest.php b/apps/settings/tests/Controller/DelegationControllerTest.php
index 5994ddf298d..c4cbe67466b 100644
--- a/apps/settings/tests/Controller/DelegationControllerTest.php
+++ b/apps/settings/tests/Controller/DelegationControllerTest.php
@@ -10,23 +10,18 @@ use OC\Settings\AuthorizedGroup;
use OCA\Settings\Controller\AuthorizedGroupController;
use OCA\Settings\Service\AuthorizedGroupService;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class DelegationControllerTest extends TestCase {
-
- /** @var AuthorizedGroupService */
- private $service;
-
- /** @var IRequest */
- private $request;
-
- /** @var AuthorizedGroupController */
- private $controller;
+ private AuthorizedGroupService&MockObject $service;
+ private IRequest&MockObject $request;
+ private AuthorizedGroupController $controller;
protected function setUp(): void {
parent::setUp();
- $this->request = $this->getMockBuilder(IRequest::class)->getMock();
- $this->service = $this->getMockBuilder(AuthorizedGroupService::class)->disableOriginalConstructor()->getMock();
+ $this->request = $this->createMock(IRequest::class);
+ $this->service = $this->createMock(AuthorizedGroupService::class);
$this->controller = new AuthorizedGroupController(
'settings', $this->request, $this->service
);
@@ -41,7 +36,7 @@ class DelegationControllerTest extends TestCase {
$this->service->expects($this->once())
->method('findExistingGroupsForClass')
->with('MySecretSetting')
- ->will($this->returnValue($oldGroups));
+ ->willReturn($oldGroups);
$this->service->expects($this->once())
->method('delete')
@@ -50,7 +45,7 @@ class DelegationControllerTest extends TestCase {
$this->service->expects($this->once())
->method('create')
->with('world', 'MySecretSetting')
- ->will($this->returnValue(AuthorizedGroup::fromParams(['groupId' => 'world', 'class' => $setting])));
+ ->willReturn(AuthorizedGroup::fromParams(['groupId' => 'world', 'class' => $setting]));
$result = $this->controller->saveSettings([['gid' => 'hello'], ['gid' => 'world']], 'MySecretSetting');
diff --git a/apps/settings/tests/Controller/MailSettingsControllerTest.php b/apps/settings/tests/Controller/MailSettingsControllerTest.php
index 2a0028738dd..dcb1e3efef4 100644
--- a/apps/settings/tests/Controller/MailSettingsControllerTest.php
+++ b/apps/settings/tests/Controller/MailSettingsControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,25 +18,18 @@ use OCP\IURLGenerator;
use OCP\IUserSession;
use OCP\Mail\IEMailTemplate;
use OCP\Mail\IMailer;
+use PHPUnit\Framework\MockObject\MockObject;
/**
* @package Tests\Settings\Controller
*/
class MailSettingsControllerTest extends \Test\TestCase {
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
- /** @var IMailer|\PHPUnit\Framework\MockObject\MockObject */
- private $mailer;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l;
- /** @var IURLGenerator */
- private $urlGenerator;
-
- /** @var MailSettingsController */
- private $mailController;
+ private IConfig&MockObject $config;
+ private IUserSession&MockObject $userSession;
+ private IMailer&MockObject $mailer;
+ private IL10N&MockObject $l;
+ private IURLGenerator&MockObject $urlGenerator;
+ private MailSettingsController $mailController;
protected function setUp(): void {
parent::setUp();
@@ -44,7 +39,7 @@ class MailSettingsControllerTest extends \Test\TestCase {
$this->userSession = $this->createMock(IUserSession::class);
$this->mailer = $this->createMock(IMailer::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject $request */
+ /** @var IRequest&MockObject $request */
$request = $this->createMock(IRequest::class);
$this->mailController = new MailSettingsController(
'settings',
@@ -54,37 +49,40 @@ class MailSettingsControllerTest extends \Test\TestCase {
$this->userSession,
$this->urlGenerator,
$this->mailer,
- 'no-reply@nextcloud.com'
);
}
public function testSetMailSettings(): void {
+ $calls = [
+ [[
+ 'mail_domain' => 'nextcloud.com',
+ 'mail_from_address' => 'demo@nextcloud.com',
+ 'mail_smtpmode' => 'smtp',
+ 'mail_smtpsecure' => 'ssl',
+ 'mail_smtphost' => 'mx.nextcloud.org',
+ 'mail_smtpauth' => 1,
+ 'mail_smtpport' => '25',
+ 'mail_sendmailmode' => 'smtp',
+ ]],
+ [[
+ 'mail_domain' => 'nextcloud.com',
+ 'mail_from_address' => 'demo@nextcloud.com',
+ 'mail_smtpmode' => 'smtp',
+ 'mail_smtpsecure' => 'ssl',
+ 'mail_smtphost' => 'mx.nextcloud.org',
+ 'mail_smtpauth' => null,
+ 'mail_smtpport' => '25',
+ 'mail_smtpname' => null,
+ 'mail_smtppassword' => null,
+ 'mail_sendmailmode' => 'smtp',
+ ]],
+ ];
$this->config->expects($this->exactly(2))
->method('setSystemValues')
- ->withConsecutive(
- [[
- 'mail_domain' => 'nextcloud.com',
- 'mail_from_address' => 'demo@nextcloud.com',
- 'mail_smtpmode' => 'smtp',
- 'mail_smtpsecure' => 'ssl',
- 'mail_smtphost' => 'mx.nextcloud.org',
- 'mail_smtpauth' => 1,
- 'mail_smtpport' => '25',
- 'mail_sendmailmode' => 'smtp',
- ]],
- [[
- 'mail_domain' => 'nextcloud.com',
- 'mail_from_address' => 'demo@nextcloud.com',
- 'mail_smtpmode' => 'smtp',
- 'mail_smtpsecure' => 'ssl',
- 'mail_smtphost' => 'mx.nextcloud.org',
- 'mail_smtpauth' => null,
- 'mail_smtpport' => '25',
- 'mail_smtpname' => null,
- 'mail_smtppassword' => null,
- 'mail_sendmailmode' => 'smtp',
- ]]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
// With authentication
$response = $this->mailController->setMailSettings(
@@ -93,7 +91,7 @@ class MailSettingsControllerTest extends \Test\TestCase {
'smtp',
'ssl',
'mx.nextcloud.org',
- 1,
+ '1',
'25',
'smtp'
);
@@ -106,7 +104,7 @@ class MailSettingsControllerTest extends \Test\TestCase {
'smtp',
'ssl',
'mx.nextcloud.org',
- 0,
+ '0',
'25',
'smtp'
);
diff --git a/apps/settings/tests/Controller/TwoFactorSettingsControllerTest.php b/apps/settings/tests/Controller/TwoFactorSettingsControllerTest.php
index c34b2907dfd..9f8d53d4f9f 100644
--- a/apps/settings/tests/Controller/TwoFactorSettingsControllerTest.php
+++ b/apps/settings/tests/Controller/TwoFactorSettingsControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -14,15 +16,9 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class TwoFactorSettingsControllerTest extends TestCase {
-
- /** @var IRequest|MockObject */
- private $request;
-
- /** @var MandatoryTwoFactor|MockObject */
- private $mandatoryTwoFactor;
-
- /** @var TwoFactorSettingsController */
- private $controller;
+ private IRequest&MockObject $request;
+ private MandatoryTwoFactor&MockObject $mandatoryTwoFactor;
+ private TwoFactorSettingsController $controller;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/settings/tests/Controller/UsersControllerTest.php b/apps/settings/tests/Controller/UsersControllerTest.php
index 96823e5ceed..d5fe38ad458 100644
--- a/apps/settings/tests/Controller/UsersControllerTest.php
+++ b/apps/settings/tests/Controller/UsersControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2014-2015 ownCloud, Inc.
@@ -40,38 +42,22 @@ use PHPUnit\Framework\MockObject\MockObject;
* @package Tests\Settings\Controller
*/
class UsersControllerTest extends \Test\TestCase {
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- private $groupManager;
- /** @var UserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IMailer|\PHPUnit\Framework\MockObject\MockObject */
- private $mailer;
- /** @var IFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $l10nFactory;
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l;
- /** @var AccountManager|\PHPUnit\Framework\MockObject\MockObject */
- private $accountManager;
- /** @var IJobList | \PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
- /** @var \OC\Security\IdentityProof\Manager|\PHPUnit\Framework\MockObject\MockObject */
- private $securityManager;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $encryptionManager;
- /** @var KnownUserService|\PHPUnit\Framework\MockObject\MockObject */
- private $knownUserService;
- /** @var IEncryptionModule|\PHPUnit\Framework\MockObject\MockObject */
- private $encryptionModule;
- /** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
- private $dispatcher;
- /** @var IInitialState|\PHPUnit\Framework\MockObject\MockObject */
- private $initialState;
+ private IGroupManager&MockObject $groupManager;
+ private UserManager&MockObject $userManager;
+ private IUserSession&MockObject $userSession;
+ private IConfig&MockObject $config;
+ private IMailer&MockObject $mailer;
+ private IFactory&MockObject $l10nFactory;
+ private IAppManager&MockObject $appManager;
+ private IL10N&MockObject $l;
+ private AccountManager&MockObject $accountManager;
+ private IJobList&MockObject $jobList;
+ private \OC\Security\IdentityProof\Manager&MockObject $securityManager;
+ private IManager&MockObject $encryptionManager;
+ private KnownUserService&MockObject $knownUserService;
+ private IEncryptionModule&MockObject $encryptionModule;
+ private IEventDispatcher&MockObject $dispatcher;
+ private IInitialState&MockObject $initialState;
protected function setUp(): void {
parent::setUp();
@@ -85,7 +71,7 @@ class UsersControllerTest extends \Test\TestCase {
$this->l10nFactory = $this->createMock(IFactory::class);
$this->appManager = $this->createMock(IAppManager::class);
$this->accountManager = $this->createMock(AccountManager::class);
- $this->securityManager = $this->getMockBuilder(\OC\Security\IdentityProof\Manager::class)->disableOriginalConstructor()->getMock();
+ $this->securityManager = $this->createMock(\OC\Security\IdentityProof\Manager::class);
$this->jobList = $this->createMock(IJobList::class);
$this->encryptionManager = $this->createMock(IManager::class);
$this->knownUserService = $this->createMock(KnownUserService::class);
@@ -106,9 +92,9 @@ class UsersControllerTest extends \Test\TestCase {
/**
* @param bool $isAdmin
- * @return UsersController | \PHPUnit\Framework\MockObject\MockObject
+ * @return UsersController|MockObject
*/
- protected function getController($isAdmin = false, $mockedMethods = []) {
+ protected function getController(bool $isAdmin = false, array $mockedMethods = []) {
$this->groupManager->expects($this->any())
->method('isAdmin')
->willReturn($isAdmin);
@@ -155,7 +141,9 @@ class UsersControllerTest extends \Test\TestCase {
$this->dispatcher,
$this->initialState,
]
- )->onlyMethods($mockedMethods)->getMock();
+ )
+ ->onlyMethods($mockedMethods)
+ ->getMock();
}
}
@@ -177,7 +165,7 @@ class UsersControllerTest extends \Test\TestCase {
return $property;
}
- protected function getDefaultAccountMock(bool $useDefaultValues = true): MockObject {
+ protected function getDefaultAccountMock(): MockObject {
$propertyMocks = [
IAccountManager::PROPERTY_DISPLAYNAME => $this->buildPropertyMock(
IAccountManager::PROPERTY_DISPLAYNAME,
@@ -249,12 +237,8 @@ class UsersControllerTest extends \Test\TestCase {
/**
* @dataProvider dataTestSetUserSettings
- *
- * @param string $email
- * @param bool $validEmail
- * @param $expectedStatus
*/
- public function testSetUserSettings($email, $validEmail, $expectedStatus): void {
+ public function testSetUserSettings(string $email, bool $validEmail, int $expectedStatus): void {
$controller = $this->getController(false, ['saveUserSettings']);
$user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('johndoe');
@@ -305,7 +289,7 @@ class UsersControllerTest extends \Test\TestCase {
$this->assertSame($expectedStatus, $result->getStatus());
}
- public function dataTestSetUserSettings() {
+ public static function dataTestSetUserSettings(): array {
return [
['', true, Http::STATUS_OK],
['', false, Http::STATUS_OK],
@@ -515,18 +499,15 @@ class UsersControllerTest extends \Test\TestCase {
/**
* @dataProvider dataTestSetUserSettingsSubset
- *
- * @param string $property
- * @param string $propertyValue
*/
- public function testSetUserSettingsSubset($property, $propertyValue): void {
+ public function testSetUserSettingsSubset(string $property, string $propertyValue): void {
$controller = $this->getController(false, ['saveUserSettings']);
$user = $this->createMock(IUser::class);
$user->method('getUID')->willReturn('johndoe');
$this->userSession->method('getUser')->willReturn($user);
- /** @var IAccount|MockObject $userAccount */
+ /** @var IAccount&MockObject $userAccount */
$userAccount = $this->getDefaultAccountMock();
$this->accountManager->expects($this->once())
@@ -554,9 +535,9 @@ class UsersControllerTest extends \Test\TestCase {
$pronouns = ($property === 'pronouns') ? $propertyValue : null;
$pronounsScope = ($property === 'pronounsScope') ? $propertyValue : null;
- /** @var IAccountProperty[]|MockObject[] $expectedProperties */
+ /** @var IAccountProperty[]&MockObject[] $expectedProperties */
$expectedProperties = $userAccount->getProperties();
- $isScope = strrpos($property, 'Scope') === strlen($property) - strlen(5);
+ $isScope = strrpos($property, 'Scope') === strlen($property) - strlen('5');
switch ($property) {
case 'avatarScope':
$propertyId = IAccountManager::PROPERTY_AVATAR;
@@ -636,7 +617,7 @@ class UsersControllerTest extends \Test\TestCase {
);
}
- public function dataTestSetUserSettingsSubset() {
+ public static function dataTestSetUserSettingsSubset(): array {
return [
['avatarScope', IAccountManager::SCOPE_PUBLISHED],
['displayName', 'Display name'],
@@ -662,15 +643,8 @@ class UsersControllerTest extends \Test\TestCase {
/**
* @dataProvider dataTestSaveUserSettings
- *
- * @param array $data
- * @param ?string $oldEmailAddress
- * @param ?string $oldDisplayName
*/
- public function testSaveUserSettings($data,
- $oldEmailAddress,
- $oldDisplayName,
- ): void {
+ public function testSaveUserSettings(array $data, ?string $oldEmailAddress, ?string $oldDisplayName): void {
$controller = $this->getController();
$user = $this->createMock(IUser::class);
@@ -722,7 +696,7 @@ class UsersControllerTest extends \Test\TestCase {
$this->invokePrivate($controller, 'saveUserSettings', [$account]);
}
- public function dataTestSaveUserSettings() {
+ public static function dataTestSaveUserSettings(): array {
return [
[
[
@@ -833,7 +807,7 @@ class UsersControllerTest extends \Test\TestCase {
}
- public function dataTestSaveUserSettingsException() {
+ public static function dataTestSaveUserSettingsException(): array {
return [
[
[
@@ -870,14 +844,9 @@ class UsersControllerTest extends \Test\TestCase {
}
/**
- * @param string $account
- * @param string $type
- * @param array $dataBefore
- * @param array $expectedData
- *
* @dataProvider dataTestGetVerificationCode
*/
- public function testGetVerificationCode($account, $type, $dataBefore, $expectedData, $onlyVerificationCode): void {
+ public function testGetVerificationCode(string $account, string $type, array $dataBefore, array $expectedData, bool $onlyVerificationCode): void {
$message = 'Use my Federated Cloud ID to share with me: user@nextcloud.com';
$signature = 'theSignature';
@@ -936,7 +905,7 @@ class UsersControllerTest extends \Test\TestCase {
$this->assertSame($code, $data['code']);
}
- public function dataTestGetVerificationCode() {
+ public static function dataTestGetVerificationCode(): array {
$accountDataBefore = [
IAccountManager::PROPERTY_WEBSITE => ['value' => 'https://nextcloud.com', 'verified' => IAccountManager::NOT_VERIFIED],
IAccountManager::PROPERTY_TWITTER => ['value' => '@nextclouders', 'verified' => IAccountManager::NOT_VERIFIED, 'signature' => 'theSignature'],
@@ -973,16 +942,13 @@ class UsersControllerTest extends \Test\TestCase {
/**
* @dataProvider dataTestCanAdminChangeUserPasswords
- *
- * @param bool $encryptionEnabled
- * @param bool $encryptionModuleLoaded
- * @param bool $masterKeyEnabled
- * @param bool $expected
*/
- public function testCanAdminChangeUserPasswords($encryptionEnabled,
- $encryptionModuleLoaded,
- $masterKeyEnabled,
- $expected): void {
+ public function testCanAdminChangeUserPasswords(
+ bool $encryptionEnabled,
+ bool $encryptionModuleLoaded,
+ bool $masterKeyEnabled,
+ bool $expected,
+ ): void {
$controller = $this->getController();
$this->encryptionManager->expects($this->any())
@@ -1005,7 +971,7 @@ class UsersControllerTest extends \Test\TestCase {
$this->assertSame($expected, $result);
}
- public function dataTestCanAdminChangeUserPasswords() {
+ public static function dataTestCanAdminChangeUserPasswords(): array {
return [
// encryptionEnabled, encryptionModuleLoaded, masterKeyEnabled, expectedResult
[true, true, true, true],
diff --git a/apps/settings/tests/Mailer/NewUserMailHelperTest.php b/apps/settings/tests/Mailer/NewUserMailHelperTest.php
index 1a1fc20354b..26a2bf5a6b6 100644
--- a/apps/settings/tests/Mailer/NewUserMailHelperTest.php
+++ b/apps/settings/tests/Mailer/NewUserMailHelperTest.php
@@ -20,29 +20,20 @@ use OCP\Mail\IEMailTemplate;
use OCP\Mail\IMailer;
use OCP\Security\ICrypto;
use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class NewUserMailHelperTest extends TestCase {
- /** @var Defaults|\PHPUnit\Framework\MockObject\MockObject */
- private $defaults;
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
- /** @var IFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $l10nFactory;
- /** @var IMailer|\PHPUnit\Framework\MockObject\MockObject */
- private $mailer;
- /** @var ISecureRandom|\PHPUnit\Framework\MockObject\MockObject */
- private $secureRandom;
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var ICrypto|\PHPUnit\Framework\MockObject\MockObject */
- private $crypto;
- /** @var NewUserMailHelper */
- private $newUserMailHelper;
+ private Defaults&MockObject $defaults;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IL10N&MockObject $l10n;
+ private IFactory&MockObject $l10nFactory;
+ private IMailer&MockObject $mailer;
+ private ISecureRandom&MockObject $secureRandom;
+ private ITimeFactory&MockObject $timeFactory;
+ private IConfig&MockObject $config;
+ private ICrypto&MockObject $crypto;
+ private NewUserMailHelper $newUserMailHelper;
protected function setUp(): void {
parent::setUp();
@@ -113,7 +104,7 @@ class NewUserMailHelperTest extends TestCase {
->expects($this->once())
->method('getTime')
->willReturn(12345);
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject $user */
+ /** @var IUser&MockObject $user */
$user = $this->createMock(IUser::class);
$user
->expects($this->any())
@@ -371,7 +362,7 @@ EOF;
['myLogo',''],
]);
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject $user */
+ /** @var IUser&MockObject $user */
$user = $this->createMock(IUser::class);
$user
->expects($this->any())
@@ -611,7 +602,7 @@ EOF;
['myLogo', ''],
]);
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject $user */
+ /** @var IUser&MockObject $user */
$user = $this->createMock(IUser::class);
$user
->expects($this->any())
@@ -830,7 +821,7 @@ EOF;
}
public function testSendMail(): void {
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject $user */
+ /** @var IUser&MockObject $user */
$user = $this->createMock(IUser::class);
$user
->expects($this->once())
@@ -840,7 +831,7 @@ EOF;
->expects($this->once())
->method('getDisplayName')
->willReturn('John Doe');
- /** @var IEMailTemplate|\PHPUnit\Framework\MockObject\MockObject $emailTemplate */
+ /** @var IEMailTemplate&MockObject $emailTemplate */
$emailTemplate = $this->createMock(IEMailTemplate::class);
$message = $this->createMock(Message::class);
$message
diff --git a/apps/settings/tests/Middleware/SubadminMiddlewareTest.php b/apps/settings/tests/Middleware/SubadminMiddlewareTest.php
index 2992810af6c..37cfb5ccc59 100644
--- a/apps/settings/tests/Middleware/SubadminMiddlewareTest.php
+++ b/apps/settings/tests/Middleware/SubadminMiddlewareTest.php
@@ -29,7 +29,6 @@ use PHPUnit\Framework\MockObject\MockObject;
*/
class SubadminMiddlewareTest extends \Test\TestCase {
private SubadminMiddleware $subadminMiddleware;
-
private IUserSession&MockObject $userSession;
private ISubAdmin&MockObject $subAdminManager;
private ControllerMethodReflector&MockObject $reflector;
@@ -38,8 +37,7 @@ class SubadminMiddlewareTest extends \Test\TestCase {
protected function setUp(): void {
parent::setUp();
- $this->reflector = $this->getMockBuilder(ControllerMethodReflector::class)
- ->disableOriginalConstructor()->getMock();
+ $this->reflector = $this->createMock(ControllerMethodReflector::class);
$this->userSession = $this->createMock(IUserSession::class);
$this->subAdminManager = $this->createMock(ISubAdmin::class);
$this->l10n = $this->createMock(IL10N::class);
@@ -51,8 +49,7 @@ class SubadminMiddlewareTest extends \Test\TestCase {
$this->l10n,
);
- $this->controller = $this->getMockBuilder(Controller::class)
- ->disableOriginalConstructor()->getMock();
+ $this->controller = $this->createMock(Controller::class);
$this->userSession
->expects(self::any())
@@ -67,10 +64,10 @@ class SubadminMiddlewareTest extends \Test\TestCase {
$this->reflector
->expects($this->exactly(2))
->method('hasAnnotation')
- ->withConsecutive(
- ['NoSubAdminRequired'],
- ['AuthorizedAdminSetting'],
- )->willReturn(false);
+ ->willReturnMap([
+ ['NoSubAdminRequired', false],
+ ['AuthorizedAdminSetting', false],
+ ]);
$this->subAdminManager
->expects(self::once())
@@ -99,10 +96,10 @@ class SubadminMiddlewareTest extends \Test\TestCase {
$this->reflector
->expects($this->exactly(2))
->method('hasAnnotation')
- ->withConsecutive(
- ['NoSubAdminRequired'],
- ['AuthorizedAdminSetting'],
- )->willReturn(false);
+ ->willReturnMap([
+ ['NoSubAdminRequired', false],
+ ['AuthorizedAdminSetting', false],
+ ]);
$this->subAdminManager
->expects(self::once())
diff --git a/apps/settings/tests/Settings/Admin/MailTest.php b/apps/settings/tests/Settings/Admin/MailTest.php
index 560e4f8e997..37d7cb7d56d 100644
--- a/apps/settings/tests/Settings/Admin/MailTest.php
+++ b/apps/settings/tests/Settings/Admin/MailTest.php
@@ -21,8 +21,8 @@ class MailTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->config = $this->getMockBuilder(IConfig::class)->getMock();
- $this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
+ $this->config = $this->createMock(IConfig::class);
+ $this->l10n = $this->createMock(IL10N::class);
$this->admin = new Mail(
$this->config,
diff --git a/apps/settings/tests/Settings/Admin/SecurityTest.php b/apps/settings/tests/Settings/Admin/SecurityTest.php
index 95b5e988397..63b52dd8616 100644
--- a/apps/settings/tests/Settings/Admin/SecurityTest.php
+++ b/apps/settings/tests/Settings/Admin/SecurityTest.php
@@ -16,21 +16,16 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SecurityTest extends TestCase {
- /** @var Security */
- private $admin;
- /** @var Manager */
- private $manager;
- /** @var IUserManager */
- private $userManager;
- /** @var MandatoryTwoFactor|MockObject */
- private $mandatoryTwoFactor;
- /** @var IInitialState|MockObject */
- private $initialState;
+ private Manager $manager;
+ private IUserManager $userManager;
+ private MandatoryTwoFactor&MockObject $mandatoryTwoFactor;
+ private IInitialState&MockObject $initialState;
+ private Security $admin;
protected function setUp(): void {
parent::setUp();
- $this->manager = $this->getMockBuilder(Manager::class)->disableOriginalConstructor()->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock();
+ $this->manager = $this->createMock(Manager::class);
+ $this->userManager = $this->createMock(IUserManager::class);
$this->mandatoryTwoFactor = $this->createMock(MandatoryTwoFactor::class);
$this->initialState = $this->createMock(IInitialState::class);
@@ -43,10 +38,7 @@ class SecurityTest extends TestCase {
);
}
- /**
- * @return array
- */
- public function encryptionSettingsProvider() {
+ public static function encryptionSettingsProvider(): array {
return [
[true],
[false],
@@ -55,9 +47,8 @@ class SecurityTest extends TestCase {
/**
* @dataProvider encryptionSettingsProvider
- * @param bool $enabled
*/
- public function testGetFormWithOnlyOneBackend($enabled): void {
+ public function testGetFormWithOnlyOneBackend(bool $enabled): void {
$this->manager
->expects($this->once())
->method('isEnabled')
diff --git a/apps/settings/tests/Settings/Admin/ServerTest.php b/apps/settings/tests/Settings/Admin/ServerTest.php
index 35a8a3ce7f7..e2ca4cff3c6 100644
--- a/apps/settings/tests/Settings/Admin/ServerTest.php
+++ b/apps/settings/tests/Settings/Admin/ServerTest.php
@@ -25,24 +25,15 @@ use Test\TestCase;
* @group DB
*/
class ServerTest extends TestCase {
- /** @var IDBConnection */
- private $connection;
- /** @var Server&MockObject */
- private $admin;
- /** @var IInitialState&MockObject */
- private $initialStateService;
- /** @var ProfileManager&MockObject */
- private $profileManager;
- /** @var ITimeFactory&MockObject */
- private $timeFactory;
- /** @var IConfig&MockObject */
- private $config;
- /** @var IAppConfig&MockObject */
- private $appConfig;
- /** @var IL10N&MockObject */
- private $l10n;
- /** @var IUrlGenerator&MockObject */
- private $urlGenerator;
+ private IDBConnection $connection;
+ private Server&MockObject $admin;
+ private IInitialState&MockObject $initialStateService;
+ private ProfileManager&MockObject $profileManager;
+ private ITimeFactory&MockObject $timeFactory;
+ private IConfig&MockObject $config;
+ private IAppConfig&MockObject $appConfig;
+ private IL10N&MockObject $l10n;
+ private IUrlGenerator&MockObject $urlGenerator;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/settings/tests/Settings/Admin/SharingTest.php b/apps/settings/tests/Settings/Admin/SharingTest.php
index 048634be1e0..bd1a7a1045b 100644
--- a/apps/settings/tests/Settings/Admin/SharingTest.php
+++ b/apps/settings/tests/Settings/Admin/SharingTest.php
@@ -18,34 +18,22 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SharingTest extends TestCase {
- /** @var Sharing */
- private $admin;
- /** @var IConfig&MockObject */
- private $config;
- /** @var IL10N&MockObject */
- private $l10n;
- /** @var IManager|MockObject */
- private $shareManager;
- /** @var IAppManager|MockObject */
- private $appManager;
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
- /** @var IInitialState|MockObject */
- private $initialState;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IManager&MockObject $shareManager;
+ private IAppManager&MockObject $appManager;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IInitialState&MockObject $initialState;
+ private Sharing $admin;
protected function setUp(): void {
parent::setUp();
- $this->config = $this->getMockBuilder(IConfig::class)->getMock();
- $this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
-
- /** @var IManager|MockObject */
- $this->shareManager = $this->getMockBuilder(IManager::class)->getMock();
- /** @var IAppManager|MockObject */
- $this->appManager = $this->getMockBuilder(IAppManager::class)->getMock();
- /** @var IURLGenerator|MockObject */
- $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->getMock();
- /** @var IInitialState|MockObject */
- $this->initialState = $this->getMockBuilder(IInitialState::class)->getMock();
+ $this->config = $this->createMock(IConfig::class);
+ $this->l10n = $this->createMock(IL10N::class);
+ $this->shareManager = $this->createMock(IManager::class);
+ $this->appManager = $this->createMock(IAppManager::class);
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
+ $this->initialState = $this->createMock(IInitialState::class);
$this->admin = new Sharing(
$this->config,
@@ -104,7 +92,7 @@ class SharingTest extends TestCase {
->willReturnCallback(function (string $key) use (&$initialStateCalls): void {
$initialStateCalls[$key] = func_get_args();
});
-
+
$expectedInitialStateCalls = [
'sharingAppEnabled' => false,
'sharingDocumentation' => '',
diff --git a/apps/settings/tests/Settings/Personal/Security/AuthtokensTest.php b/apps/settings/tests/Settings/Personal/Security/AuthtokensTest.php
index 44641ee98b3..f6f82ab311a 100644
--- a/apps/settings/tests/Settings/Personal/Security/AuthtokensTest.php
+++ b/apps/settings/tests/Settings/Personal/Security/AuthtokensTest.php
@@ -20,24 +20,12 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AuthtokensTest extends TestCase {
-
- /** @var IAuthTokenProvider|MockObject */
- private $authTokenProvider;
-
- /** @var ISession|MockObject */
- private $session;
-
- /** @var IUserSession|MockObject */
- private $userSession;
-
- /** @var IInitialState|MockObject */
- private $initialState;
-
- /** @var string */
- private $uid;
-
- /** @var Authtokens */
- private $section;
+ private IAuthTokenProvider&MockObject $authTokenProvider;
+ private ISession&MockObject $session;
+ private IUserSession&MockObject $userSession;
+ private IInitialState&MockObject $initialState;
+ private string $uid;
+ private Authtokens $section;
protected function setUp(): void {
parent::setUp();
@@ -80,34 +68,39 @@ class AuthtokensTest extends TestCase {
->method('getToken')
->with('session123')
->willReturn($sessionToken);
+
+ $calls = [
+ [
+ 'app_tokens', [
+ [
+ 'id' => 100,
+ 'name' => null,
+ 'lastActivity' => 0,
+ 'type' => 0,
+ 'canDelete' => false,
+ 'current' => true,
+ 'scope' => [IToken::SCOPE_FILESYSTEM => true],
+ 'canRename' => false,
+ ],
+ [
+ 'id' => 200,
+ 'name' => null,
+ 'lastActivity' => 0,
+ 'type' => 0,
+ 'canDelete' => true,
+ 'scope' => [IToken::SCOPE_FILESYSTEM => true],
+ 'canRename' => true,
+ ],
+ ]
+ ],
+ ['can_create_app_token', true],
+ ];
$this->initialState->expects($this->exactly(2))
->method('provideInitialState')
- ->withConsecutive(
- [
- 'app_tokens', [
- [
- 'id' => 100,
- 'name' => null,
- 'lastActivity' => 0,
- 'type' => 0,
- 'canDelete' => false,
- 'current' => true,
- 'scope' => [IToken::SCOPE_FILESYSTEM => true],
- 'canRename' => false,
- ],
- [
- 'id' => 200,
- 'name' => null,
- 'lastActivity' => 0,
- 'type' => 0,
- 'canDelete' => true,
- 'scope' => [IToken::SCOPE_FILESYSTEM => true],
- 'canRename' => true,
- ],
- ]
- ],
- ['can_create_app_token', true],
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$form = $this->section->getForm();
diff --git a/apps/settings/tests/Settings/Personal/Security/PasswordTest.php b/apps/settings/tests/Settings/Personal/Security/PasswordTest.php
index 62f2c998943..34a4b8e296f 100644
--- a/apps/settings/tests/Settings/Personal/Security/PasswordTest.php
+++ b/apps/settings/tests/Settings/Personal/Security/PasswordTest.php
@@ -16,15 +16,9 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class PasswordTest extends TestCase {
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var string */
- private $uid;
-
- /** @var Password */
- private $section;
+ private IUserManager&MockObject $userManager;
+ private string $uid;
+ private Password $section;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/settings/tests/SetupChecks/AppDirsWithDifferentOwnerTest.php b/apps/settings/tests/SetupChecks/AppDirsWithDifferentOwnerTest.php
index db3141e3a26..423f932dcf5 100644
--- a/apps/settings/tests/SetupChecks/AppDirsWithDifferentOwnerTest.php
+++ b/apps/settings/tests/SetupChecks/AppDirsWithDifferentOwnerTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\AppDirsWithDifferentOwner;
use OCP\IL10N;
@@ -26,8 +26,7 @@ class AppDirsWithDifferentOwnerTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
diff --git a/apps/settings/tests/SetupChecks/CodeIntegrityTest.php b/apps/settings/tests/SetupChecks/CodeIntegrityTest.php
index 52101aed901..4dd54a644f5 100644
--- a/apps/settings/tests/SetupChecks/CodeIntegrityTest.php
+++ b/apps/settings/tests/SetupChecks/CodeIntegrityTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OC\IntegrityCheck\Checker;
use OCA\Settings\SetupChecks\CodeIntegrity;
@@ -17,7 +17,7 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CodeIntegrityTest extends TestCase {
-
+
private IL10N&MockObject $l10n;
private IURLGenerator&MockObject $urlGenerator;
private Checker&MockObject $checker;
@@ -25,8 +25,7 @@ class CodeIntegrityTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
diff --git a/apps/settings/tests/SetupChecks/DataDirectoryProtectedTest.php b/apps/settings/tests/SetupChecks/DataDirectoryProtectedTest.php
index 51dffe58787..a48c6296aff 100644
--- a/apps/settings/tests/SetupChecks/DataDirectoryProtectedTest.php
+++ b/apps/settings/tests/SetupChecks/DataDirectoryProtectedTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\DataDirectoryProtected;
use OCP\Http\Client\IClientService;
@@ -30,9 +30,7 @@ class DataDirectoryProtectedTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- /** @var IL10N&MockObject */
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
diff --git a/apps/settings/tests/SetupChecks/ForwardedForHeadersTest.php b/apps/settings/tests/SetupChecks/ForwardedForHeadersTest.php
index b8b25e74c63..b57eb852d80 100644
--- a/apps/settings/tests/SetupChecks/ForwardedForHeadersTest.php
+++ b/apps/settings/tests/SetupChecks/ForwardedForHeadersTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\ForwardedForHeaders;
use OCP\IConfig;
@@ -26,8 +26,7 @@ class ForwardedForHeadersTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
@@ -68,7 +67,7 @@ class ForwardedForHeadersTest extends TestCase {
);
}
- public function dataForwardedForHeadersWorking(): array {
+ public static function dataForwardedForHeadersWorking(): array {
return [
// description => trusted proxies, getHeader('REMOTE_ADDR'), getRemoteAddr, expected result
'no trusted proxies' => [[], '2.2.2.2', '2.2.2.2', SetupResult::SUCCESS],
diff --git a/apps/settings/tests/SetupChecks/LoggingLevelTest.php b/apps/settings/tests/SetupChecks/LoggingLevelTest.php
index d87f66bb484..9d588a4e486 100644
--- a/apps/settings/tests/SetupChecks/LoggingLevelTest.php
+++ b/apps/settings/tests/SetupChecks/LoggingLevelTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\LoggingLevel;
use OCP\IConfig;
@@ -60,7 +60,7 @@ class LoggingLevelTest extends TestCase {
}
/** @dataProvider dataRun */
- public function testRun(mixed $value, string $expected): void {
+ public function testRun(string|int $value, string $expected): void {
$this->urlGenerator->method('linkToDocs')->willReturn('admin-logging');
$this->config->expects(self::once())
diff --git a/apps/settings/tests/SetupChecks/OcxProvicersTest.php b/apps/settings/tests/SetupChecks/OcxProvicersTest.php
index 4c2b36a8325..8e5a2c1b88b 100644
--- a/apps/settings/tests/SetupChecks/OcxProvicersTest.php
+++ b/apps/settings/tests/SetupChecks/OcxProvicersTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\OcxProviders;
use OCP\Http\Client\IClientService;
@@ -30,9 +30,7 @@ class OcxProvicersTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- /** @var IL10N|MockObject */
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
diff --git a/apps/settings/tests/SetupChecks/PhpDefaultCharsetTest.php b/apps/settings/tests/SetupChecks/PhpDefaultCharsetTest.php
index 4fba60cf72f..3722346219a 100644
--- a/apps/settings/tests/SetupChecks/PhpDefaultCharsetTest.php
+++ b/apps/settings/tests/SetupChecks/PhpDefaultCharsetTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\PhpDefaultCharset;
use OCP\IL10N;
@@ -21,8 +21,7 @@ class PhpDefaultCharsetTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
diff --git a/apps/settings/tests/SetupChecks/PhpOutputBufferingTest.php b/apps/settings/tests/SetupChecks/PhpOutputBufferingTest.php
index 69194df81c5..de509347044 100644
--- a/apps/settings/tests/SetupChecks/PhpOutputBufferingTest.php
+++ b/apps/settings/tests/SetupChecks/PhpOutputBufferingTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\PhpOutputBuffering;
use OCP\IL10N;
@@ -21,8 +21,7 @@ class PhpOutputBufferingTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
diff --git a/apps/settings/tests/SetupChecks/SecurityHeadersTest.php b/apps/settings/tests/SetupChecks/SecurityHeadersTest.php
index d8bb51d47c6..17e631b0025 100644
--- a/apps/settings/tests/SetupChecks/SecurityHeadersTest.php
+++ b/apps/settings/tests/SetupChecks/SecurityHeadersTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\SecurityHeaders;
use OCP\Http\Client\IClientService;
@@ -20,19 +20,17 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class SecurityHeadersTest extends TestCase {
- private IL10N|MockObject $l10n;
- private IConfig|MockObject $config;
- private IURLGenerator|MockObject $urlGenerator;
- private IClientService|MockObject $clientService;
- private LoggerInterface|MockObject $logger;
- private SecurityHeaders|MockObject $setupcheck;
+ private IL10N&MockObject $l10n;
+ private IConfig&MockObject $config;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IClientService&MockObject $clientService;
+ private LoggerInterface&MockObject $logger;
+ private SecurityHeaders&MockObject $setupcheck;
protected function setUp(): void {
parent::setUp();
- /** @var IL10N|MockObject */
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
@@ -86,17 +84,16 @@ class SecurityHeadersTest extends TestCase {
$result = $this->setupcheck->run();
$this->assertEquals(
- "Some headers are not set correctly on your instance\n- The `X-Content-Type-Options` HTTP header is not set to `nosniff`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.\n- The `X-XSS-Protection` HTTP header does not contain `1; mode=block`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.\n",
+ "Some headers are not set correctly on your instance\n- The `X-Content-Type-Options` HTTP header is not set to `nosniff`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.\n",
$result->getDescription()
);
$this->assertEquals(SetupResult::WARNING, $result->getSeverity());
}
- public function dataSuccess(): array {
+ public static function dataSuccess(): array {
return [
// description => modifiedHeaders
'basic' => [[]],
- 'extra-xss-protection' => [['X-XSS-Protection' => '1; mode=block; report=https://example.com']],
'no-space-in-x-robots' => [['X-Robots-Tag' => 'noindex,nofollow']],
'strict-origin-when-cross-origin' => [['Referrer-Policy' => 'strict-origin-when-cross-origin']],
'referrer-no-referrer-when-downgrade' => [['Referrer-Policy' => 'no-referrer-when-downgrade']],
@@ -112,10 +109,9 @@ class SecurityHeadersTest extends TestCase {
/**
* @dataProvider dataSuccess
*/
- public function testSuccess($headers): void {
+ public function testSuccess(array $headers): void {
$headers = array_merge(
[
- 'X-XSS-Protection' => '1; mode=block',
'X-Content-Type-Options' => 'nosniff',
'X-Robots-Tag' => 'noindex, nofollow',
'X-Frame-Options' => 'SAMEORIGIN',
@@ -138,12 +134,10 @@ class SecurityHeadersTest extends TestCase {
$this->assertEquals(SetupResult::SUCCESS, $result->getSeverity());
}
- public function dataFailure(): array {
+ public static function dataFailure(): array {
return [
// description => modifiedHeaders
'x-robots-none' => [['X-Robots-Tag' => 'none'], "- The `X-Robots-Tag` HTTP header is not set to `noindex,nofollow`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.\n"],
- 'xss-protection-1' => [['X-XSS-Protection' => '1'], "- The `X-XSS-Protection` HTTP header does not contain `1; mode=block`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.\n"],
- 'xss-protection-0' => [['X-XSS-Protection' => '0'], "- The `X-XSS-Protection` HTTP header does not contain `1; mode=block`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.\n"],
'referrer-origin' => [['Referrer-Policy' => 'origin'], "- The `Referrer-Policy` HTTP header is not set to `no-referrer`, `no-referrer-when-downgrade`, `strict-origin`, `strict-origin-when-cross-origin` or `same-origin`. This can leak referer information. See the {w3c-recommendation}.\n"],
'referrer-origin-when-cross-origin' => [['Referrer-Policy' => 'origin-when-cross-origin'], "- The `Referrer-Policy` HTTP header is not set to `no-referrer`, `no-referrer-when-downgrade`, `strict-origin`, `strict-origin-when-cross-origin` or `same-origin`. This can leak referer information. See the {w3c-recommendation}.\n"],
'referrer-unsafe-url' => [['Referrer-Policy' => 'unsafe-url'], "- The `Referrer-Policy` HTTP header is not set to `no-referrer`, `no-referrer-when-downgrade`, `strict-origin`, `strict-origin-when-cross-origin` or `same-origin`. This can leak referer information. See the {w3c-recommendation}.\n"],
@@ -159,7 +153,6 @@ class SecurityHeadersTest extends TestCase {
public function testFailure(array $headers, string $msg): void {
$headers = array_merge(
[
- 'X-XSS-Protection' => '1; mode=block',
'X-Content-Type-Options' => 'nosniff',
'X-Robots-Tag' => 'noindex, nofollow',
'X-Frame-Options' => 'SAMEORIGIN',
diff --git a/apps/settings/tests/SetupChecks/SupportedDatabaseTest.php b/apps/settings/tests/SetupChecks/SupportedDatabaseTest.php
index 4bf529da6bb..6c75df47aa0 100644
--- a/apps/settings/tests/SetupChecks/SupportedDatabaseTest.php
+++ b/apps/settings/tests/SetupChecks/SupportedDatabaseTest.php
@@ -6,12 +6,12 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\SupportedDatabase;
use OCP\IDBConnection;
use OCP\IL10N;
-use OCP\IUrlGenerator;
+use OCP\IURLGenerator;
use OCP\Server;
use OCP\SetupCheck\SetupResult;
use Test\TestCase;
@@ -29,8 +29,8 @@ class SupportedDatabaseTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
- $this->urlGenerator = $this->getMockBuilder(IUrlGenerator::class)->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->connection = Server::get(IDBConnection::class);
$this->check = new SupportedDatabase(
diff --git a/apps/settings/tests/SetupChecks/TaskProcessingPickupSpeedTest.php b/apps/settings/tests/SetupChecks/TaskProcessingPickupSpeedTest.php
new file mode 100644
index 00000000000..6375d9f6e7f
--- /dev/null
+++ b/apps/settings/tests/SetupChecks/TaskProcessingPickupSpeedTest.php
@@ -0,0 +1,73 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Settings\Tests;
+
+use OCA\Settings\SetupChecks\TaskProcessingPickupSpeed;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\IL10N;
+use OCP\SetupCheck\SetupResult;
+use OCP\TaskProcessing\IManager;
+use OCP\TaskProcessing\Task;
+use Test\TestCase;
+
+class TaskProcessingPickupSpeedTest extends TestCase {
+ private IL10N $l10n;
+ private ITimeFactory $timeFactory;
+ private IManager $taskProcessingManager;
+
+ private TaskProcessingPickupSpeed $check;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
+ $this->timeFactory = $this->getMockBuilder(ITimeFactory::class)->getMock();
+ $this->taskProcessingManager = $this->getMockBuilder(IManager::class)->getMock();
+
+ $this->check = new TaskProcessingPickupSpeed(
+ $this->l10n,
+ $this->taskProcessingManager,
+ $this->timeFactory,
+ );
+ }
+
+ public function testPass(): void {
+ $tasks = [];
+ for ($i = 0; $i < 100; $i++) {
+ $task = new Task('test', ['test' => 'test'], 'settings', 'user' . $i);
+ $task->setStartedAt(0);
+ if ($i < 15) {
+ $task->setScheduledAt(60 * 5); // 15% get 5mins
+ } else {
+ $task->setScheduledAt(60); // the rest gets 1min
+ }
+ $tasks[] = $task;
+ }
+ $this->taskProcessingManager->method('getTasks')->willReturn($tasks);
+
+ $this->assertEquals(SetupResult::SUCCESS, $this->check->run()->getSeverity());
+ }
+
+ public function testFail(): void {
+ $tasks = [];
+ for ($i = 0; $i < 100; $i++) {
+ $task = new Task('test', ['test' => 'test'], 'settings', 'user' . $i);
+ $task->setStartedAt(0);
+ if ($i < 30) {
+ $task->setScheduledAt(60 * 5); // 30% get 5mins
+ } else {
+ $task->setScheduledAt(60); // the rest gets 1min
+ }
+ $tasks[] = $task;
+ }
+ $this->taskProcessingManager->method('getTasks')->willReturn($tasks);
+
+ $this->assertEquals(SetupResult::WARNING, $this->check->run()->getSeverity());
+ }
+}
diff --git a/apps/settings/tests/SetupChecks/WellKnownUrlsTest.php b/apps/settings/tests/SetupChecks/WellKnownUrlsTest.php
index 983f2c427ad..14473a540ba 100644
--- a/apps/settings/tests/SetupChecks/WellKnownUrlsTest.php
+++ b/apps/settings/tests/SetupChecks/WellKnownUrlsTest.php
@@ -6,7 +6,7 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Settings\Tests;
+namespace OCA\Settings\Tests\SetupChecks;
use OCA\Settings\SetupChecks\WellKnownUrls;
use OCP\Http\Client\IClientService;
@@ -20,19 +20,18 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class WellKnownUrlsTest extends TestCase {
- private IL10N|MockObject $l10n;
- private IConfig|MockObject $config;
- private IURLGenerator|MockObject $urlGenerator;
- private IClientService|MockObject $clientService;
- private LoggerInterface|MockObject $logger;
- private WellKnownUrls|MockObject $setupcheck;
+ private IL10N&MockObject $l10n;
+ private IConfig&MockObject $config;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IClientService&MockObject $clientService;
+ private LoggerInterface&MockObject $logger;
+ private WellKnownUrls&MockObject $setupcheck;
protected function setUp(): void {
parent::setUp();
- /** @var IL10N|MockObject */
- $this->l10n = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()->getMock();
+ /** @var IL10N&MockObject */
+ $this->l10n = $this->createMock(IL10N::class);
$this->l10n->expects($this->any())
->method('t')
->willReturnCallback(function ($message, array $replace) {
@@ -116,7 +115,7 @@ class WellKnownUrlsTest extends TestCase {
}
public function dataTestResponses(): array {
- $createResponse = function (int $statuscode, array $header = []): IResponse|MockObject {
+ $createResponse = function (int $statuscode, array $header = []): IResponse&MockObject {
$response = $this->createMock(IResponse::class);
$response->expects($this->any())
->method('getStatusCode')
diff --git a/apps/settings/tests/UserMigration/AccountMigratorTest.php b/apps/settings/tests/UserMigration/AccountMigratorTest.php
index cd3fd2f7aeb..ded905d226c 100644
--- a/apps/settings/tests/UserMigration/AccountMigratorTest.php
+++ b/apps/settings/tests/UserMigration/AccountMigratorTest.php
@@ -27,21 +27,12 @@ use Test\TestCase;
* @group DB
*/
class AccountMigratorTest extends TestCase {
-
private IUserManager $userManager;
-
private IAvatarManager $avatarManager;
-
private AccountMigrator $migrator;
-
- /** @var IImportSource|MockObject */
- private $importSource;
-
- /** @var IExportDestination|MockObject */
- private $exportDestination;
-
- /** @var OutputInterface|MockObject */
- private $output;
+ private IImportSource&MockObject $importSource;
+ private IExportDestination&MockObject $exportDestination;
+ private OutputInterface&MockObject $output;
private const ASSETS_DIR = __DIR__ . '/assets/';
@@ -72,9 +63,9 @@ class AccountMigratorTest extends TestCase {
parent::tearDown();
}
- public function dataImportExportAccount(): array {
+ public static function dataImportExportAccount(): array {
return array_map(
- function (string $filename) {
+ static function (string $filename): array {
$dataPath = static::ASSETS_DIR . $filename;
// For each account json file there is an avatar image and a config json file with the same basename
$basename = pathinfo($filename, PATHINFO_FILENAME);
@@ -111,17 +102,18 @@ class AccountMigratorTest extends TestCase {
->with($this->migrator->getId())
->willReturn(1);
+ $calls = [
+ [static::REGEX_ACCOUNT_FILE, json_encode($importData)],
+ [static::REGEX_CONFIG_FILE, json_encode($importConfig)],
+ ];
$this->importSource
->expects($this->exactly(2))
->method('getFileContents')
- ->withConsecutive(
- [$this->matchesRegularExpression(static::REGEX_ACCOUNT_FILE)],
- [$this->matchesRegularExpression(static::REGEX_CONFIG_FILE)],
- )
- ->willReturnOnConsecutiveCalls(
- json_encode($importData),
- json_encode($importConfig),
- );
+ ->willReturnCallback(function ($path) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertMatchesRegularExpression($expected[0], $path);
+ return $expected[1];
+ });
$this->importSource
->expects($this->once())
@@ -152,13 +144,18 @@ class AccountMigratorTest extends TestCase {
);
}
+ $calls = [
+ [static::REGEX_ACCOUNT_FILE, new JsonMatches(json_encode($importData))],
+ [static::REGEX_CONFIG_FILE,new JsonMatches(json_encode($importConfig))],
+ ];
$this->exportDestination
->expects($this->exactly(2))
->method('addFileContents')
- ->withConsecutive(
- [$this->matchesRegularExpression(static::REGEX_ACCOUNT_FILE), new JsonMatches(json_encode($exportData))],
- [$this->matchesRegularExpression(static::REGEX_CONFIG_FILE), new JsonMatches(json_encode($exportConfig))],
- );
+ ->willReturnCallback(function ($path) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertMatchesRegularExpression($expected[0], $path);
+ return $expected[1];
+ });
$this->exportDestination
->expects($this->once())
diff --git a/apps/sharebymail/l10n/ar.js b/apps/sharebymail/l10n/ar.js
index 86b3159d9dd..a84854083a0 100644
--- a/apps/sharebymail/l10n/ar.js
+++ b/apps/sharebymail/l10n/ar.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "تعذّر تحديث إعدادات المشاركة بالبريد الإلكتروني",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "تمكين الأشخاص من المشاركة المخصصة لملف أو مجلد عن طريق تحديد حساب البريد الإلكتروني",
"Send password by mail" : "إرسال كلمة مرور بالبريد الإلكتروني",
- "Reply to initiator" : "رد على المنشيء",
- "%1$s shared »%2$s« with you" : "%1$s شارك »%2$s« معك",
- "%1$s shared »%2$s« with you." : "%1$s شَارَكَ »%2$s« معك.",
- "Click the button below to open it." : "أنقر على الزر أدناه لفتحه.",
- "Open »%s«" : "فتح »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "كلمة مرور للوصول إلى »%1$s« تمّت مُشاركتها معك من قِبَل %2$s",
- "Password to access »%s«" : "كلمة مرور للوصول إلى »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s شارك »%2$s« معك و يرغب في إضافة:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s شارك »%2$s« معك و يرغب في إضافة",
- "»%s« added a note to a file shared with you" : "»%s« أضافة ملاحظة لملفٍ سلفت مشاركته معك",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "أنت شاركت للتّوِّ »%1$s« مع %2$s. تمّ إرسال المشاركة إلى وجهتها. بسبب السياسة الأمنية الموضوعة من قبل مسؤول النظام %3$s كل مشاركة يجب أن تكون محمية بكلمة مرور و التي يجب إلّا يتم إرسالها مباشرة إلى المستخدم المقصود. لذا بجب أن تقوم بتحويلها إليه يدويّاً.",
- "Password to access »%1$s« shared by you with %2$s" : "كلمة مرور للوصول إلى »%1$s« تمّت مشاركتها مع %2$s"
+ "Reply to initiator" : "رد على المنشيء"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/sharebymail/l10n/ar.json b/apps/sharebymail/l10n/ar.json
index 69ffb9f45b1..f1cd796e842 100644
--- a/apps/sharebymail/l10n/ar.json
+++ b/apps/sharebymail/l10n/ar.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "تعذّر تحديث إعدادات المشاركة بالبريد الإلكتروني",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "تمكين الأشخاص من المشاركة المخصصة لملف أو مجلد عن طريق تحديد حساب البريد الإلكتروني",
"Send password by mail" : "إرسال كلمة مرور بالبريد الإلكتروني",
- "Reply to initiator" : "رد على المنشيء",
- "%1$s shared »%2$s« with you" : "%1$s شارك »%2$s« معك",
- "%1$s shared »%2$s« with you." : "%1$s شَارَكَ »%2$s« معك.",
- "Click the button below to open it." : "أنقر على الزر أدناه لفتحه.",
- "Open »%s«" : "فتح »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "كلمة مرور للوصول إلى »%1$s« تمّت مُشاركتها معك من قِبَل %2$s",
- "Password to access »%s«" : "كلمة مرور للوصول إلى »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s شارك »%2$s« معك و يرغب في إضافة:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s شارك »%2$s« معك و يرغب في إضافة",
- "»%s« added a note to a file shared with you" : "»%s« أضافة ملاحظة لملفٍ سلفت مشاركته معك",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "أنت شاركت للتّوِّ »%1$s« مع %2$s. تمّ إرسال المشاركة إلى وجهتها. بسبب السياسة الأمنية الموضوعة من قبل مسؤول النظام %3$s كل مشاركة يجب أن تكون محمية بكلمة مرور و التي يجب إلّا يتم إرسالها مباشرة إلى المستخدم المقصود. لذا بجب أن تقوم بتحويلها إليه يدويّاً.",
- "Password to access »%1$s« shared by you with %2$s" : "كلمة مرور للوصول إلى »%1$s« تمّت مشاركتها مع %2$s"
+ "Reply to initiator" : "رد على المنشيء"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ast.js b/apps/sharebymail/l10n/ast.js
index 96f7eb8ac72..9238d202aaf 100644
--- a/apps/sharebymail/l10n/ast.js
+++ b/apps/sharebymail/l10n/ast.js
@@ -28,17 +28,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Nun ye posible anovar l'elementu compartíu pela configuración de corréu electrónicu",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite a les persones compartir un enllaz personalizáu a un ficheru o carpeta poniendo una direición de corréu.",
"Send password by mail" : "Unviar la contraseña per corréu electrónicu",
- "Reply to initiator" : "Responder al usuariu que comparte l'elementu",
- "%1$s shared »%2$s« with you" : "%1$s compartió «%2$s» contigo",
- "%1$s shared »%2$s« with you." : "%1$s compartió «%2$s» contigo.",
- "Click the button below to open it." : "Calca nel botón p'abrilo.",
- "Open »%s«" : "Abrir «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s compartió contigo la contraseña p'acceder a «%1$s»",
- "Password to access »%s«" : "La contraseña p'acceder a «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartío «%2$s» contigo y quier amestar:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartío «%2$s» contigo y quier amestar",
- "»%s« added a note to a file shared with you" : "«%s» amestó una nota a un ficheru compartíu contigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Tas acabante de compartir «%1$s» con %2$s. L'elementu compartíu yá s'unvió al destinatariu. Pola mor de les polítiques de seguranza definíes pola alministración de %3$s cada elementu tien de tar protexíu con una contraseña y nun se permite unviar la contraseña direutamente al destinatariu. Poro, tienes de reunviar la contraseña manualmente al destinatariu.",
- "Password to access »%1$s« shared by you with %2$s" : "Compartiesti la contraseña p'acceder a «%1$s» con %2$s"
+ "Reply to initiator" : "Responder al usuariu que comparte l'elementu"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/ast.json b/apps/sharebymail/l10n/ast.json
index 10b9d2e6d29..c2947476e97 100644
--- a/apps/sharebymail/l10n/ast.json
+++ b/apps/sharebymail/l10n/ast.json
@@ -26,17 +26,6 @@
"Unable to update share by mail config" : "Nun ye posible anovar l'elementu compartíu pela configuración de corréu electrónicu",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite a les persones compartir un enllaz personalizáu a un ficheru o carpeta poniendo una direición de corréu.",
"Send password by mail" : "Unviar la contraseña per corréu electrónicu",
- "Reply to initiator" : "Responder al usuariu que comparte l'elementu",
- "%1$s shared »%2$s« with you" : "%1$s compartió «%2$s» contigo",
- "%1$s shared »%2$s« with you." : "%1$s compartió «%2$s» contigo.",
- "Click the button below to open it." : "Calca nel botón p'abrilo.",
- "Open »%s«" : "Abrir «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s compartió contigo la contraseña p'acceder a «%1$s»",
- "Password to access »%s«" : "La contraseña p'acceder a «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartío «%2$s» contigo y quier amestar:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartío «%2$s» contigo y quier amestar",
- "»%s« added a note to a file shared with you" : "«%s» amestó una nota a un ficheru compartíu contigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Tas acabante de compartir «%1$s» con %2$s. L'elementu compartíu yá s'unvió al destinatariu. Pola mor de les polítiques de seguranza definíes pola alministración de %3$s cada elementu tien de tar protexíu con una contraseña y nun se permite unviar la contraseña direutamente al destinatariu. Poro, tienes de reunviar la contraseña manualmente al destinatariu.",
- "Password to access »%1$s« shared by you with %2$s" : "Compartiesti la contraseña p'acceder a «%1$s» con %2$s"
+ "Reply to initiator" : "Responder al usuariu que comparte l'elementu"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/bg.js b/apps/sharebymail/l10n/bg.js
index a0a4800169c..1fcbe05dc5d 100644
--- a/apps/sharebymail/l10n/bg.js
+++ b/apps/sharebymail/l10n/bg.js
@@ -26,17 +26,6 @@ OC.L10N.register(
"Share provider which allows you to share files by mail" : "Доставчик на споделяне, който ви позволява да споделяте файлове по имейл",
"Unable to update share by mail config" : "Не може да се актуализира конфигурацията за споделяне по поща",
"Send password by mail" : "Изпращане на парола по имейл",
- "Reply to initiator" : "Отговор към инициатора",
- "%1$s shared »%2$s« with you" : "%1$s сподели »%2$s« с вас",
- "%1$s shared »%2$s« with you." : "%1$s сподели »%2$s« с вас.",
- "Click the button below to open it." : "Щракнете върху долния бутон, за да го отворите.",
- "Open »%s«" : "Отвори »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Парола за достъп »%1$s» е споделенас вас от %2$s",
- "Password to access »%s«" : "Парола за достъп »%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s сподели »%2$s« с вас и иска да добави:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s сподели »%2$s« с вас и иска да добави",
- "»%s« added a note to a file shared with you" : "»%s« добави бележка към файл, споделен с вас ",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Току-що споделихте »%1$s« с %2$s. Споделянето вече е изпратено до получателя. Поради политиките за сигурност, дефинирани от администратора на %3$s, всяка споделена информация трябва да бъде защитена с парола и не е позволено паролата да се изпраща директно на получателя. Следователно трябва да препратите паролата ръчно на получателя.",
- "Password to access »%1$s« shared by you with %2$s" : "Парола за достъп »%1$s» е споделена от вас с %2$s"
+ "Reply to initiator" : "Отговор към инициатора"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/bg.json b/apps/sharebymail/l10n/bg.json
index ecda3c82447..c5087a06467 100644
--- a/apps/sharebymail/l10n/bg.json
+++ b/apps/sharebymail/l10n/bg.json
@@ -24,17 +24,6 @@
"Share provider which allows you to share files by mail" : "Доставчик на споделяне, който ви позволява да споделяте файлове по имейл",
"Unable to update share by mail config" : "Не може да се актуализира конфигурацията за споделяне по поща",
"Send password by mail" : "Изпращане на парола по имейл",
- "Reply to initiator" : "Отговор към инициатора",
- "%1$s shared »%2$s« with you" : "%1$s сподели »%2$s« с вас",
- "%1$s shared »%2$s« with you." : "%1$s сподели »%2$s« с вас.",
- "Click the button below to open it." : "Щракнете върху долния бутон, за да го отворите.",
- "Open »%s«" : "Отвори »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Парола за достъп »%1$s» е споделенас вас от %2$s",
- "Password to access »%s«" : "Парола за достъп »%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s сподели »%2$s« с вас и иска да добави:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s сподели »%2$s« с вас и иска да добави",
- "»%s« added a note to a file shared with you" : "»%s« добави бележка към файл, споделен с вас ",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Току-що споделихте »%1$s« с %2$s. Споделянето вече е изпратено до получателя. Поради политиките за сигурност, дефинирани от администратора на %3$s, всяка споделена информация трябва да бъде защитена с парола и не е позволено паролата да се изпраща директно на получателя. Следователно трябва да препратите паролата ръчно на получателя.",
- "Password to access »%1$s« shared by you with %2$s" : "Парола за достъп »%1$s» е споделена от вас с %2$s"
+ "Reply to initiator" : "Отговор към инициатора"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ca.js b/apps/sharebymail/l10n/ca.js
index 7f6727c7fe1..b37d69513a5 100644
--- a/apps/sharebymail/l10n/ca.js
+++ b/apps/sharebymail/l10n/ca.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "No s'ha pogut actualitzar la configuració d'ús compartit per correu electrònic",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permet que la gent comparteixi un enllaç personalitzat a un fitxer o carpeta indicant una adreça electrònica.",
"Send password by mail" : "Envia la contrasenya per correu electrònic",
- "Reply to initiator" : "Respon a l'usuari que comparteix l'element",
- "%1$s shared »%2$s« with you" : "%1$s ha compartit «%2$s» amb vós",
- "%1$s shared »%2$s« with you." : "%1$s ha compartit «%2$s» amb vós.",
- "Click the button below to open it." : "Feu clic en el botó següent per a obrir-ho.",
- "Open »%s«" : "Obre «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s ha compartit amb vós la contrasenya per a accedir a «%1$s»",
- "Password to access »%s«" : "Contrasenya per a accedir a «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s ha compartit «%2$s» amb vós i vol afegir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s ha compartit «%2$s» amb vós i vol afegir",
- "»%s« added a note to a file shared with you" : "%s ha afegit una nota a un fitxer compartit amb vós",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabeu de compartir «%1$s» amb %2$s. Ja s'ha enviat l'element compartit al destinatari. A causa de les polítiques de seguretat definides per l'administrador del %3$s, cada element compartit s'ha de protegir amb contrasenya i no es permet enviar-la directament al destinatari. Per tant, li heu de fer arribar manualment per un altre canal.",
- "Password to access »%1$s« shared by you with %2$s" : "Heu compartit amb %2$s la contrasenya per a accedir a «%1$s»"
+ "Reply to initiator" : "Respon a l'usuari que comparteix l'element"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/ca.json b/apps/sharebymail/l10n/ca.json
index fd6d299ea44..58495d9c8a5 100644
--- a/apps/sharebymail/l10n/ca.json
+++ b/apps/sharebymail/l10n/ca.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "No s'ha pogut actualitzar la configuració d'ús compartit per correu electrònic",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permet que la gent comparteixi un enllaç personalitzat a un fitxer o carpeta indicant una adreça electrònica.",
"Send password by mail" : "Envia la contrasenya per correu electrònic",
- "Reply to initiator" : "Respon a l'usuari que comparteix l'element",
- "%1$s shared »%2$s« with you" : "%1$s ha compartit «%2$s» amb vós",
- "%1$s shared »%2$s« with you." : "%1$s ha compartit «%2$s» amb vós.",
- "Click the button below to open it." : "Feu clic en el botó següent per a obrir-ho.",
- "Open »%s«" : "Obre «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s ha compartit amb vós la contrasenya per a accedir a «%1$s»",
- "Password to access »%s«" : "Contrasenya per a accedir a «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s ha compartit «%2$s» amb vós i vol afegir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s ha compartit «%2$s» amb vós i vol afegir",
- "»%s« added a note to a file shared with you" : "%s ha afegit una nota a un fitxer compartit amb vós",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabeu de compartir «%1$s» amb %2$s. Ja s'ha enviat l'element compartit al destinatari. A causa de les polítiques de seguretat definides per l'administrador del %3$s, cada element compartit s'ha de protegir amb contrasenya i no es permet enviar-la directament al destinatari. Per tant, li heu de fer arribar manualment per un altre canal.",
- "Password to access »%1$s« shared by you with %2$s" : "Heu compartit amb %2$s la contrasenya per a accedir a «%1$s»"
+ "Reply to initiator" : "Respon a l'usuari que comparteix l'element"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/cs.js b/apps/sharebymail/l10n/cs.js
index da33f76e7f4..685f00d565b 100644
--- a/apps/sharebymail/l10n/cs.js
+++ b/apps/sharebymail/l10n/cs.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Nedaří se aktualizovat sdílení nastavením e-mailu",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Dovoluje lidem odeslat personalizovaný odkaz na soubor nebo složku po zadání e-mailové adresy.",
"Send password by mail" : "Odeslat heslo e-mailem",
- "Reply to initiator" : "Odpovědět iniciátorovi",
- "%1$s shared »%2$s« with you" : "%1$s s vámi sdílí „%2$s“",
- "%1$s shared »%2$s« with you." : "%1$s vám nasdílel(a) „%2$s“.",
- "Click the button below to open it." : "Pro otevření klikněte na tlačítko níže.",
- "Open »%s«" : "Otevřít „%s“",
- "Password to access »%1$s« shared to you by %2$s" : "Heslo pro přístup k „%1$s“, které vám nasdílel(a) %2$s",
- "Password to access »%s«" : "Heslo pro přístup k „%s “",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s sdílí „%2$s“ a dodává:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s sdílí „%2$s“ a dodává",
- "»%s« added a note to a file shared with you" : "„%s“ dodává poznámku k nasdílenému souboru",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Právě jste s „%1$s“ nasdílel(a) %2$s. Sdílení bylo už příjemci zasláno. Kvůli bezpečnostní politice nastavené administrátorem %3$s musí být každé sdílení chráněno heslem a toto heslo nemůže být příjemci zasláno přímo. Kvůli tomu ho budete muset ručně přeposlat.",
- "Password to access »%1$s« shared by you with %2$s" : "Heslo pro přístup k „%1$s“ nasdílenému vámi pro %2$s"
+ "Reply to initiator" : "Odpovědět iniciátorovi"
},
"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/sharebymail/l10n/cs.json b/apps/sharebymail/l10n/cs.json
index c57765761a2..1d4688afe4f 100644
--- a/apps/sharebymail/l10n/cs.json
+++ b/apps/sharebymail/l10n/cs.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Nedaří se aktualizovat sdílení nastavením e-mailu",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Dovoluje lidem odeslat personalizovaný odkaz na soubor nebo složku po zadání e-mailové adresy.",
"Send password by mail" : "Odeslat heslo e-mailem",
- "Reply to initiator" : "Odpovědět iniciátorovi",
- "%1$s shared »%2$s« with you" : "%1$s s vámi sdílí „%2$s“",
- "%1$s shared »%2$s« with you." : "%1$s vám nasdílel(a) „%2$s“.",
- "Click the button below to open it." : "Pro otevření klikněte na tlačítko níže.",
- "Open »%s«" : "Otevřít „%s“",
- "Password to access »%1$s« shared to you by %2$s" : "Heslo pro přístup k „%1$s“, které vám nasdílel(a) %2$s",
- "Password to access »%s«" : "Heslo pro přístup k „%s “",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s sdílí „%2$s“ a dodává:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s sdílí „%2$s“ a dodává",
- "»%s« added a note to a file shared with you" : "„%s“ dodává poznámku k nasdílenému souboru",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Právě jste s „%1$s“ nasdílel(a) %2$s. Sdílení bylo už příjemci zasláno. Kvůli bezpečnostní politice nastavené administrátorem %3$s musí být každé sdílení chráněno heslem a toto heslo nemůže být příjemci zasláno přímo. Kvůli tomu ho budete muset ručně přeposlat.",
- "Password to access »%1$s« shared by you with %2$s" : "Heslo pro přístup k „%1$s“ nasdílenému vámi pro %2$s"
+ "Reply to initiator" : "Odpovědět iniciátorovi"
},"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/sharebymail/l10n/da.js b/apps/sharebymail/l10n/da.js
index fbbb043fa40..a243d04f14c 100644
--- a/apps/sharebymail/l10n/da.js
+++ b/apps/sharebymail/l10n/da.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Kan ikke opdatere del via mail konfigurationen",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Giver folk mulighed for at dele et personlig link til en fil eller mappe ved at indsætte en mail adresse.",
"Send password by mail" : "Send kodeord på mail",
- "Reply to initiator" : "Svar til initiativtager",
- "%1$s shared »%2$s« with you" : "%1$s delte »%2$s« med dig",
- "%1$s shared »%2$s« with you." : "%1$s delte »%2$s« med dig",
- "Click the button below to open it." : "Klik på knappen nedenunder for at åbne.",
- "Open »%s«" : "Åbn »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Adgangskode for at få adgang »%1$s« delt til dig af %2$s",
- "Password to access »%s«" : "Kodeord for adgang til »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s delte »%2$s« med dig og vil gerne tilføje:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s delte »%2$s« med dig og vil gerne tilføje",
- "»%s« added a note to a file shared with you" : "»%s« har tilføjet en note til en fil delt med dig",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du har lige delt »%1$s« med %2$s. Delingen blev allerede sendt til modtageren. På grund af sikkerhedspolitikkerne defineret af administratoren af %3$s skal hver deling beskyttes med adgangskode, og det er ikke tilladt at sende adgangskoden direkte til modtageren. Derfor skal du sende adgangskoden manuelt til modtageren.",
- "Password to access »%1$s« shared by you with %2$s" : "Adgangskode til adgang til »%1$s« delt af dig med %2$s"
+ "Reply to initiator" : "Svar til initiativtager"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/da.json b/apps/sharebymail/l10n/da.json
index be00311c6a4..ee19f408af3 100644
--- a/apps/sharebymail/l10n/da.json
+++ b/apps/sharebymail/l10n/da.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Kan ikke opdatere del via mail konfigurationen",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Giver folk mulighed for at dele et personlig link til en fil eller mappe ved at indsætte en mail adresse.",
"Send password by mail" : "Send kodeord på mail",
- "Reply to initiator" : "Svar til initiativtager",
- "%1$s shared »%2$s« with you" : "%1$s delte »%2$s« med dig",
- "%1$s shared »%2$s« with you." : "%1$s delte »%2$s« med dig",
- "Click the button below to open it." : "Klik på knappen nedenunder for at åbne.",
- "Open »%s«" : "Åbn »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Adgangskode for at få adgang »%1$s« delt til dig af %2$s",
- "Password to access »%s«" : "Kodeord for adgang til »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s delte »%2$s« med dig og vil gerne tilføje:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s delte »%2$s« med dig og vil gerne tilføje",
- "»%s« added a note to a file shared with you" : "»%s« har tilføjet en note til en fil delt med dig",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du har lige delt »%1$s« med %2$s. Delingen blev allerede sendt til modtageren. På grund af sikkerhedspolitikkerne defineret af administratoren af %3$s skal hver deling beskyttes med adgangskode, og det er ikke tilladt at sende adgangskoden direkte til modtageren. Derfor skal du sende adgangskoden manuelt til modtageren.",
- "Password to access »%1$s« shared by you with %2$s" : "Adgangskode til adgang til »%1$s« delt af dig med %2$s"
+ "Reply to initiator" : "Svar til initiativtager"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/de.js b/apps/sharebymail/l10n/de.js
index bbbe6d400f2..fb16121514f 100644
--- a/apps/sharebymail/l10n/de.js
+++ b/apps/sharebymail/l10n/de.js
@@ -13,7 +13,7 @@ OC.L10N.register(
"{actor} unshared {file} from {email} by mail" : "{actor} teilt {file} nicht mehr mit {email} via E-Mail",
"Password to access {file} was sent to {email}" : "Passwort für den Zugriff auf {file} wurde an {email} versandt ",
"Password to access {file} was sent to you" : "Passwort für den Zugriff auf {file} wurde an dich gesendet",
- "Share by mail" : "Geteilt über eine E-Mail",
+ "Share by mail" : "Teilen per E-Mail",
"Sharing %1$s failed, because this item is already shared with the account %2$s" : "Freigeben von %1$s ist fehlgeschlagen, da dieses Element schon mit dem Konto %2$s geteilt wurde",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Automatisch erzeugtes Passwort kann nicht versandt werden. Bitte gib in deinen persönlichen Einstellungen eine gültige E-Mail-Adresse ein und versuche es erneut.",
"Failed to send share by email. Got an invalid email address" : "Die Freigabe per E-Mail konnte nicht gesendet werden. Habe eine ungültige E-Mail-Adresse erhalten.",
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Einstellungen zum Teilen via E-Mail konnten nicht aktualisiert werden",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Ermöglicht Personen, einen personalisierten Link zu einer Datei oder einem Ordner durch Eingabe einer E-Mail-Adresse zu teilen.",
"Send password by mail" : "Passwort per E-Mail senden",
- "Reply to initiator" : "Antwort an Initiator",
- "%1$s shared »%2$s« with you" : "%1$s hat »%2$s« mit dir geteilt",
- "%1$s shared »%2$s« with you." : "%1$s hat »%2$s« mit dir geteilt.",
- "Click the button below to open it." : "Klicke zum Öffnen auf die untere Schaltfläche",
- "Open »%s«" : "Öffne »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Das Passwort zum Zugriff auf %1$s wurde durch %2$s mit dir geteilt.",
- "Password to access »%s«" : "Passwort für den Zugriff auf »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s hat »%2$s« mit dir geteilt und möchte folgendes hinzufügen:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s hat »%2$s« mit dir geteilt und möchte folgendes hinzufügen",
- "»%s« added a note to a file shared with you" : "»%s« hat eine Bemerkung zu einer mit dir geteilten Datei hinzugefügt",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du hast »%1$s« mit %2$s geteilt. Die Freigabe wurde an den Empfänger gesandt. Aufgrund der Sicherheits-Richtlinien, die der Administrator von %3$s vorgegeben hat, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu senden. Aus diesem Grund musst du das Passwort selbst an den Empfänger senden.",
- "Password to access »%1$s« shared by you with %2$s" : "Passwort zum Zugriff auf »%1$s« wurde von dir mit %2$s geteilt"
+ "Reply to initiator" : "Antwort an Initiator"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/de.json b/apps/sharebymail/l10n/de.json
index a98ad30a28d..2895dfee855 100644
--- a/apps/sharebymail/l10n/de.json
+++ b/apps/sharebymail/l10n/de.json
@@ -11,7 +11,7 @@
"{actor} unshared {file} from {email} by mail" : "{actor} teilt {file} nicht mehr mit {email} via E-Mail",
"Password to access {file} was sent to {email}" : "Passwort für den Zugriff auf {file} wurde an {email} versandt ",
"Password to access {file} was sent to you" : "Passwort für den Zugriff auf {file} wurde an dich gesendet",
- "Share by mail" : "Geteilt über eine E-Mail",
+ "Share by mail" : "Teilen per E-Mail",
"Sharing %1$s failed, because this item is already shared with the account %2$s" : "Freigeben von %1$s ist fehlgeschlagen, da dieses Element schon mit dem Konto %2$s geteilt wurde",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Automatisch erzeugtes Passwort kann nicht versandt werden. Bitte gib in deinen persönlichen Einstellungen eine gültige E-Mail-Adresse ein und versuche es erneut.",
"Failed to send share by email. Got an invalid email address" : "Die Freigabe per E-Mail konnte nicht gesendet werden. Habe eine ungültige E-Mail-Adresse erhalten.",
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Einstellungen zum Teilen via E-Mail konnten nicht aktualisiert werden",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Ermöglicht Personen, einen personalisierten Link zu einer Datei oder einem Ordner durch Eingabe einer E-Mail-Adresse zu teilen.",
"Send password by mail" : "Passwort per E-Mail senden",
- "Reply to initiator" : "Antwort an Initiator",
- "%1$s shared »%2$s« with you" : "%1$s hat »%2$s« mit dir geteilt",
- "%1$s shared »%2$s« with you." : "%1$s hat »%2$s« mit dir geteilt.",
- "Click the button below to open it." : "Klicke zum Öffnen auf die untere Schaltfläche",
- "Open »%s«" : "Öffne »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Das Passwort zum Zugriff auf %1$s wurde durch %2$s mit dir geteilt.",
- "Password to access »%s«" : "Passwort für den Zugriff auf »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s hat »%2$s« mit dir geteilt und möchte folgendes hinzufügen:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s hat »%2$s« mit dir geteilt und möchte folgendes hinzufügen",
- "»%s« added a note to a file shared with you" : "»%s« hat eine Bemerkung zu einer mit dir geteilten Datei hinzugefügt",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du hast »%1$s« mit %2$s geteilt. Die Freigabe wurde an den Empfänger gesandt. Aufgrund der Sicherheits-Richtlinien, die der Administrator von %3$s vorgegeben hat, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu senden. Aus diesem Grund musst du das Passwort selbst an den Empfänger senden.",
- "Password to access »%1$s« shared by you with %2$s" : "Passwort zum Zugriff auf »%1$s« wurde von dir mit %2$s geteilt"
+ "Reply to initiator" : "Antwort an Initiator"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/de_DE.js b/apps/sharebymail/l10n/de_DE.js
index 338d60108cd..9787275ca31 100644
--- a/apps/sharebymail/l10n/de_DE.js
+++ b/apps/sharebymail/l10n/de_DE.js
@@ -13,7 +13,7 @@ OC.L10N.register(
"{actor} unshared {file} from {email} by mail" : "{actor} teilt {file} nicht mehr mit {email} via E-Mail",
"Password to access {file} was sent to {email}" : "Passwort für den Zugriff auf {file} wurde an {email} versandt ",
"Password to access {file} was sent to you" : "Passwort für den Zugriff auf {file} wurde an Sie versandt ",
- "Share by mail" : "Geteilt über eine E-Mail",
+ "Share by mail" : "Teilen per E-Mail",
"Sharing %1$s failed, because this item is already shared with the account %2$s" : "Freigeben von %1$s ist fehlgeschlagen, da dieses Element schon mit dem Konto %2$s geteilt wurde",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Automatisch erzeugtes Passwort kann nicht versandt werden. Bitte geben Sie in Ihren persönlichen Einstellungen eine gültige E-Mail-Adresse ein und versuche Sie es erneut.",
"Failed to send share by email. Got an invalid email address" : "Die Freigabe per E-Mail konnte nicht gesendet werden. Es wurde eine ungültige E-Mail-Adresse angegeben.",
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Einstellungen zum Teilen via E-Mail konnten nicht aktualisiert werden",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Ermöglicht Personen, einen personalisierten Link zu einer Datei oder einem Ordner durch Eingabe einer E-Mail-Adresse zu teilen.",
"Send password by mail" : "Passwort per Mail senden",
- "Reply to initiator" : "Antwort an Initiator",
- "%1$s shared »%2$s« with you" : "%1$s hat »%2$s« mit Ihnen geteilt",
- "%1$s shared »%2$s« with you." : "%1$s hat »%2$s« mit Ihnen geteilt.",
- "Click the button below to open it." : "Klicken Sie zum Öffnen auf die untere Schaltfläche",
- "Open »%s«" : "Öffne »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Das Passwort zum Zugriff auf %1$s wurde durch %2$s mit Ihnen geteilt.",
- "Password to access »%s«" : "Passwort für den Zugriff auf »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s hat »%2$s« mit Ihnen geteilt und möchte folgendes hinzufügen:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s hat »%2$s« mit Ihnen geteilt und möchte folgendes hinzufügen",
- "»%s« added a note to a file shared with you" : "»%s« hat eine Bemerkung zu einer mit Ihnen geteilten Datei hinzugefügt",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Sie haben »%1$s« mit %2$s geteilt. Die Freigabe wurde an den Empfänger gesandt. Aufgrund der Sicherheits-Richtlinien, die der Administrator von %3$s vorgegeben hat, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund müssen Sie das Passwort selbst an den Empfänger senden.",
- "Password to access »%1$s« shared by you with %2$s" : "Passwort zum Zugriff auf »%1$s« wurde von Ihnen mit %2$s geteilt"
+ "Reply to initiator" : "Antwort an Initiator"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/de_DE.json b/apps/sharebymail/l10n/de_DE.json
index 27ee126b8f0..4b7aa4a630c 100644
--- a/apps/sharebymail/l10n/de_DE.json
+++ b/apps/sharebymail/l10n/de_DE.json
@@ -11,7 +11,7 @@
"{actor} unshared {file} from {email} by mail" : "{actor} teilt {file} nicht mehr mit {email} via E-Mail",
"Password to access {file} was sent to {email}" : "Passwort für den Zugriff auf {file} wurde an {email} versandt ",
"Password to access {file} was sent to you" : "Passwort für den Zugriff auf {file} wurde an Sie versandt ",
- "Share by mail" : "Geteilt über eine E-Mail",
+ "Share by mail" : "Teilen per E-Mail",
"Sharing %1$s failed, because this item is already shared with the account %2$s" : "Freigeben von %1$s ist fehlgeschlagen, da dieses Element schon mit dem Konto %2$s geteilt wurde",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Automatisch erzeugtes Passwort kann nicht versandt werden. Bitte geben Sie in Ihren persönlichen Einstellungen eine gültige E-Mail-Adresse ein und versuche Sie es erneut.",
"Failed to send share by email. Got an invalid email address" : "Die Freigabe per E-Mail konnte nicht gesendet werden. Es wurde eine ungültige E-Mail-Adresse angegeben.",
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Einstellungen zum Teilen via E-Mail konnten nicht aktualisiert werden",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Ermöglicht Personen, einen personalisierten Link zu einer Datei oder einem Ordner durch Eingabe einer E-Mail-Adresse zu teilen.",
"Send password by mail" : "Passwort per Mail senden",
- "Reply to initiator" : "Antwort an Initiator",
- "%1$s shared »%2$s« with you" : "%1$s hat »%2$s« mit Ihnen geteilt",
- "%1$s shared »%2$s« with you." : "%1$s hat »%2$s« mit Ihnen geteilt.",
- "Click the button below to open it." : "Klicken Sie zum Öffnen auf die untere Schaltfläche",
- "Open »%s«" : "Öffne »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Das Passwort zum Zugriff auf %1$s wurde durch %2$s mit Ihnen geteilt.",
- "Password to access »%s«" : "Passwort für den Zugriff auf »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s hat »%2$s« mit Ihnen geteilt und möchte folgendes hinzufügen:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s hat »%2$s« mit Ihnen geteilt und möchte folgendes hinzufügen",
- "»%s« added a note to a file shared with you" : "»%s« hat eine Bemerkung zu einer mit Ihnen geteilten Datei hinzugefügt",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Sie haben »%1$s« mit %2$s geteilt. Die Freigabe wurde an den Empfänger gesandt. Aufgrund der Sicherheits-Richtlinien, die der Administrator von %3$s vorgegeben hat, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund müssen Sie das Passwort selbst an den Empfänger senden.",
- "Password to access »%1$s« shared by you with %2$s" : "Passwort zum Zugriff auf »%1$s« wurde von Ihnen mit %2$s geteilt"
+ "Reply to initiator" : "Antwort an Initiator"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/el.js b/apps/sharebymail/l10n/el.js
index 80383d6901e..9f92b1fec01 100644
--- a/apps/sharebymail/l10n/el.js
+++ b/apps/sharebymail/l10n/el.js
@@ -28,17 +28,6 @@ OC.L10N.register(
"Share provider which allows you to share files by mail" : "Πάροχος διαμοιρασμού που σας επιτρέπει να διαμοιράζεστε αρχεία μέσω mail",
"Unable to update share by mail config" : "Αδυναμία ενημέρωσης των ρυθμίσεων κοινής χρήσης μέσω mail",
"Send password by mail" : "Αποστολή συνθηματικου με ηλεκτρονική αλληλογραφία",
- "Reply to initiator" : "Απάντηση στον αποστολέα",
- "%1$s shared »%2$s« with you" : "Ο %1$s διαμοιράστηκε το »%2$s« με εσάς.",
- "%1$s shared »%2$s« with you." : "%1$s διαμοιράστηκε »%2$s« με εσάς.",
- "Click the button below to open it." : "Κάντε κλικ στο παρακάτω κουμπί για να το ανοίξετε.",
- "Open »%s«" : "Ανοίξτε »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Συνθηματικό για πρόσβαση στο »%1$s« διαμοιράστηκε μαζί σας μέσω %2$s",
- "Password to access »%s«" : "Συνθηματικό για πρόσβαση στο »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "Ο %1$s διαμοιράστηκε το »%2$s« με εσάς και θέλει να προσθέσει:",
- "%1$s shared »%2$s« with you and wants to add" : "Ο %1$s διαμοιράστηκε το »%2$s« με εσάς και θέλει να προσθέσει",
- "»%s« added a note to a file shared with you" : "Ο »%s« πρόσθεσε μια σημείωση στο κοινόχρηστο αρχείο",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Έχετε μόλις διαμοιραστεί »%1$s« με %2$s. Ο διαμοιρασμός έχει ήδη σταλθεί στον παραλήπτη. Βάση των πολιτικών ασφαλείας που έχουν ορισθεί από τον διαχειριστή του %3$s ο κάθε διαμοιρασμός χρειάζεται να προστατεύεται από ένα συνθηματικό και δεν επιτρέπετε να σταλθεί το συνθηματικό απευθείας στον παραλήπτη. Επομένως χρειάζεται να προωθήσετε το συνθηματικό χειροκίνητα στον παραλήπτη.",
- "Password to access »%1$s« shared by you with %2$s" : "Συνθηματικό για πρόσβαση στο »%1$s« διαμοιράστηκε με %2$s"
+ "Reply to initiator" : "Απάντηση στον αποστολέα"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/el.json b/apps/sharebymail/l10n/el.json
index 0687b30f256..b1aa088faa6 100644
--- a/apps/sharebymail/l10n/el.json
+++ b/apps/sharebymail/l10n/el.json
@@ -26,17 +26,6 @@
"Share provider which allows you to share files by mail" : "Πάροχος διαμοιρασμού που σας επιτρέπει να διαμοιράζεστε αρχεία μέσω mail",
"Unable to update share by mail config" : "Αδυναμία ενημέρωσης των ρυθμίσεων κοινής χρήσης μέσω mail",
"Send password by mail" : "Αποστολή συνθηματικου με ηλεκτρονική αλληλογραφία",
- "Reply to initiator" : "Απάντηση στον αποστολέα",
- "%1$s shared »%2$s« with you" : "Ο %1$s διαμοιράστηκε το »%2$s« με εσάς.",
- "%1$s shared »%2$s« with you." : "%1$s διαμοιράστηκε »%2$s« με εσάς.",
- "Click the button below to open it." : "Κάντε κλικ στο παρακάτω κουμπί για να το ανοίξετε.",
- "Open »%s«" : "Ανοίξτε »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Συνθηματικό για πρόσβαση στο »%1$s« διαμοιράστηκε μαζί σας μέσω %2$s",
- "Password to access »%s«" : "Συνθηματικό για πρόσβαση στο »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "Ο %1$s διαμοιράστηκε το »%2$s« με εσάς και θέλει να προσθέσει:",
- "%1$s shared »%2$s« with you and wants to add" : "Ο %1$s διαμοιράστηκε το »%2$s« με εσάς και θέλει να προσθέσει",
- "»%s« added a note to a file shared with you" : "Ο »%s« πρόσθεσε μια σημείωση στο κοινόχρηστο αρχείο",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Έχετε μόλις διαμοιραστεί »%1$s« με %2$s. Ο διαμοιρασμός έχει ήδη σταλθεί στον παραλήπτη. Βάση των πολιτικών ασφαλείας που έχουν ορισθεί από τον διαχειριστή του %3$s ο κάθε διαμοιρασμός χρειάζεται να προστατεύεται από ένα συνθηματικό και δεν επιτρέπετε να σταλθεί το συνθηματικό απευθείας στον παραλήπτη. Επομένως χρειάζεται να προωθήσετε το συνθηματικό χειροκίνητα στον παραλήπτη.",
- "Password to access »%1$s« shared by you with %2$s" : "Συνθηματικό για πρόσβαση στο »%1$s« διαμοιράστηκε με %2$s"
+ "Reply to initiator" : "Απάντηση στον αποστολέα"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/en_GB.js b/apps/sharebymail/l10n/en_GB.js
index c0237f85359..9fb45e4ab29 100644
--- a/apps/sharebymail/l10n/en_GB.js
+++ b/apps/sharebymail/l10n/en_GB.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Unable to update share by mail config",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Allows people to share a personalized link to a file or folder by putting in an email address.",
"Send password by mail" : "Send password by mail",
- "Reply to initiator" : "Reply to initiator",
- "%1$s shared »%2$s« with you" : "%1$s shared »%2$s« with you",
- "%1$s shared »%2$s« with you." : "%1$s shared »%2$s« with you.",
- "Click the button below to open it." : "Click the button below to open it.",
- "Open »%s«" : "Open »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Password to access »%1$s« shared to you by %2$s",
- "Password to access »%s«" : "Password to access »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s shared »%2$s« with you and wants to add:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
- "»%s« added a note to a file shared with you" : "»%s« added a note to a file shared with you",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.",
- "Password to access »%1$s« shared by you with %2$s" : "Password to access »%1$s« shared by you with %2$s"
+ "Reply to initiator" : "Reply to initiator"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/en_GB.json b/apps/sharebymail/l10n/en_GB.json
index a651c9f5437..41edba8140f 100644
--- a/apps/sharebymail/l10n/en_GB.json
+++ b/apps/sharebymail/l10n/en_GB.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Unable to update share by mail config",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Allows people to share a personalized link to a file or folder by putting in an email address.",
"Send password by mail" : "Send password by mail",
- "Reply to initiator" : "Reply to initiator",
- "%1$s shared »%2$s« with you" : "%1$s shared »%2$s« with you",
- "%1$s shared »%2$s« with you." : "%1$s shared »%2$s« with you.",
- "Click the button below to open it." : "Click the button below to open it.",
- "Open »%s«" : "Open »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Password to access »%1$s« shared to you by %2$s",
- "Password to access »%s«" : "Password to access »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s shared »%2$s« with you and wants to add:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
- "»%s« added a note to a file shared with you" : "»%s« added a note to a file shared with you",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.",
- "Password to access »%1$s« shared by you with %2$s" : "Password to access »%1$s« shared by you with %2$s"
+ "Reply to initiator" : "Reply to initiator"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es.js b/apps/sharebymail/l10n/es.js
index 3025a95e473..66b4e46ae4e 100644
--- a/apps/sharebymail/l10n/es.js
+++ b/apps/sharebymail/l10n/es.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "No se puede actualizar la configuración de compartir por correo",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite a los usuarios compartir un enlace personalizado a un archivo o carpeta colocando una dirección de correo electrónico.",
"Send password by mail" : "Enviar contraseñas por email",
- "Reply to initiator" : "Responder al iniciador",
- "%1$s shared »%2$s« with you" : "%1$s ha compartido «%2$s» contigo",
- "%1$s shared »%2$s« with you." : "%1$s ha compartido «%2$s» contigo.",
- "Click the button below to open it." : "Haga click en el botón debajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Contraseña para acceder a «%1$s» compartida contigo por %2$s",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s ha compartido «%2$s» contigo y quiere añadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s ha compartido «%2$s» contigo y quiere añadir",
- "»%s« added a note to a file shared with you" : "«%s» ha añadido una nota a un archivo compartido contigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Has compartido »%1$s« con %2$s. El enlace ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %3$s cada elemento compartido necesita ser protegido con contraseña y no está permitido enviar directamente esta clave al destinatario. Por lo tanto necesita reenviar la contraseña manualmente al destinatario.",
- "Password to access »%1$s« shared by you with %2$s" : "Contraseña para acceder a «%1$s» compartida por tí con %2$s"
+ "Reply to initiator" : "Responder al iniciador"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/sharebymail/l10n/es.json b/apps/sharebymail/l10n/es.json
index f8bc4a413ca..7852ee52f69 100644
--- a/apps/sharebymail/l10n/es.json
+++ b/apps/sharebymail/l10n/es.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "No se puede actualizar la configuración de compartir por correo",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite a los usuarios compartir un enlace personalizado a un archivo o carpeta colocando una dirección de correo electrónico.",
"Send password by mail" : "Enviar contraseñas por email",
- "Reply to initiator" : "Responder al iniciador",
- "%1$s shared »%2$s« with you" : "%1$s ha compartido «%2$s» contigo",
- "%1$s shared »%2$s« with you." : "%1$s ha compartido «%2$s» contigo.",
- "Click the button below to open it." : "Haga click en el botón debajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Contraseña para acceder a «%1$s» compartida contigo por %2$s",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s ha compartido «%2$s» contigo y quiere añadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s ha compartido «%2$s» contigo y quiere añadir",
- "»%s« added a note to a file shared with you" : "«%s» ha añadido una nota a un archivo compartido contigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Has compartido »%1$s« con %2$s. El enlace ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %3$s cada elemento compartido necesita ser protegido con contraseña y no está permitido enviar directamente esta clave al destinatario. Por lo tanto necesita reenviar la contraseña manualmente al destinatario.",
- "Password to access »%1$s« shared by you with %2$s" : "Contraseña para acceder a «%1$s» compartida por tí con %2$s"
+ "Reply to initiator" : "Responder al iniciador"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_419.js b/apps/sharebymail/l10n/es_419.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_419.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_419.json b/apps/sharebymail/l10n/es_419.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_419.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_AR.js b/apps/sharebymail/l10n/es_AR.js
index 10b67749467..732448988da 100644
--- a/apps/sharebymail/l10n/es_AR.js
+++ b/apps/sharebymail/l10n/es_AR.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "No se puede actualizar la configuración de compartir por correo",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite a los usuarios compartir un enlace personalizado a un archivo o carpeta colocando una dirección de correo electrónico.",
"Send password by mail" : "La contraseña ha sido enviada por correo",
- "Reply to initiator" : "Responder al remitente",
- "%1$s shared »%2$s« with you" : "%1$s compartió »%2$s« contigo",
- "%1$s shared »%2$s« with you." : "%1$s compartió »%2$s« contigo.",
- "Click the button below to open it." : "Haga click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Contraseña para acceder a »%1$s« compartido con usted por %2$s",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartió »%2$s« contigo y quiere añadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartió »%2$s« contigo y quiere añadir",
- "»%s« added a note to a file shared with you" : "%s añadió una nota a un archivo compartido con Ud.",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acaba de compartir »%1$s« con %2$s. El recurso compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %3$s, cada recurso compartido debe estar protegido con contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto, debe enviarle manualmente la contraseña.",
- "Password to access »%1$s« shared by you with %2$s" : "Contraseña para acceder a »%1$s« compartido por usted con %2$s"
+ "Reply to initiator" : "Responder al remitente"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/sharebymail/l10n/es_AR.json b/apps/sharebymail/l10n/es_AR.json
index 1490708d240..e17027730e4 100644
--- a/apps/sharebymail/l10n/es_AR.json
+++ b/apps/sharebymail/l10n/es_AR.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "No se puede actualizar la configuración de compartir por correo",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite a los usuarios compartir un enlace personalizado a un archivo o carpeta colocando una dirección de correo electrónico.",
"Send password by mail" : "La contraseña ha sido enviada por correo",
- "Reply to initiator" : "Responder al remitente",
- "%1$s shared »%2$s« with you" : "%1$s compartió »%2$s« contigo",
- "%1$s shared »%2$s« with you." : "%1$s compartió »%2$s« contigo.",
- "Click the button below to open it." : "Haga click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Contraseña para acceder a »%1$s« compartido con usted por %2$s",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartió »%2$s« contigo y quiere añadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartió »%2$s« contigo y quiere añadir",
- "»%s« added a note to a file shared with you" : "%s añadió una nota a un archivo compartido con Ud.",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acaba de compartir »%1$s« con %2$s. El recurso compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %3$s, cada recurso compartido debe estar protegido con contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto, debe enviarle manualmente la contraseña.",
- "Password to access »%1$s« shared by you with %2$s" : "Contraseña para acceder a »%1$s« compartido por usted con %2$s"
+ "Reply to initiator" : "Responder al remitente"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_CL.js b/apps/sharebymail/l10n/es_CL.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_CL.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_CL.json b/apps/sharebymail/l10n/es_CL.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_CL.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_CO.js b/apps/sharebymail/l10n/es_CO.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_CO.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_CO.json b/apps/sharebymail/l10n/es_CO.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_CO.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_CR.js b/apps/sharebymail/l10n/es_CR.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_CR.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_CR.json b/apps/sharebymail/l10n/es_CR.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_CR.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_DO.js b/apps/sharebymail/l10n/es_DO.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_DO.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_DO.json b/apps/sharebymail/l10n/es_DO.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_DO.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_EC.js b/apps/sharebymail/l10n/es_EC.js
index 69ccb6e0652..41c6056f404 100644
--- a/apps/sharebymail/l10n/es_EC.js
+++ b/apps/sharebymail/l10n/es_EC.js
@@ -26,17 +26,6 @@ OC.L10N.register(
"Share provider which allows you to share files by mail" : "Proveedor de compartidos que te permite compartir archivos por correo electrónico",
"Unable to update share by mail config" : "No se pudo actualizar la configuración de compartido por correo",
"Send password by mail" : "La contraseña ha sido enviada por correo",
- "Reply to initiator" : "Responder al remitente",
- "%1$s shared »%2$s« with you" : "%1$s compartió »%2$s« contigo",
- "%1$s shared »%2$s« with you." : "%1$s compartió »%2$s« contigo.",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Contraseña para acceder a »%1$s« compartida contigo por %2$s",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartió »%2$s« contigo y quiere añadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartió »%2$s« contigo y quiere añadir",
- "»%s« added a note to a file shared with you" : "»%s« añadió una nota a un archivo compartido contigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%1$s« con %2$s. El compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %3$s, cada compartido debe estar protegido con una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto, debes enviar manualmente la contraseña al destinatario.",
- "Password to access »%1$s« shared by you with %2$s" : "Contraseña para acceder a »%1$s« compartido por ti con %2$s"
+ "Reply to initiator" : "Responder al remitente"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/sharebymail/l10n/es_EC.json b/apps/sharebymail/l10n/es_EC.json
index 035cd5da4f1..9deec8ecff6 100644
--- a/apps/sharebymail/l10n/es_EC.json
+++ b/apps/sharebymail/l10n/es_EC.json
@@ -24,17 +24,6 @@
"Share provider which allows you to share files by mail" : "Proveedor de compartidos que te permite compartir archivos por correo electrónico",
"Unable to update share by mail config" : "No se pudo actualizar la configuración de compartido por correo",
"Send password by mail" : "La contraseña ha sido enviada por correo",
- "Reply to initiator" : "Responder al remitente",
- "%1$s shared »%2$s« with you" : "%1$s compartió »%2$s« contigo",
- "%1$s shared »%2$s« with you." : "%1$s compartió »%2$s« contigo.",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Contraseña para acceder a »%1$s« compartida contigo por %2$s",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartió »%2$s« contigo y quiere añadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartió »%2$s« contigo y quiere añadir",
- "»%s« added a note to a file shared with you" : "»%s« añadió una nota a un archivo compartido contigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%1$s« con %2$s. El compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %3$s, cada compartido debe estar protegido con una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto, debes enviar manualmente la contraseña al destinatario.",
- "Password to access »%1$s« shared by you with %2$s" : "Contraseña para acceder a »%1$s« compartido por ti con %2$s"
+ "Reply to initiator" : "Responder al remitente"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_GT.js b/apps/sharebymail/l10n/es_GT.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_GT.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_GT.json b/apps/sharebymail/l10n/es_GT.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_GT.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_HN.js b/apps/sharebymail/l10n/es_HN.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_HN.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_HN.json b/apps/sharebymail/l10n/es_HN.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_HN.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_MX.js b/apps/sharebymail/l10n/es_MX.js
index 037238c50dc..1bb0a00c440 100644
--- a/apps/sharebymail/l10n/es_MX.js
+++ b/apps/sharebymail/l10n/es_MX.js
@@ -40,17 +40,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "No se pudo actualizar la configuración del recurso compartido por correo",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite a los usuarios compartir un enlace personalizado a un archivo o carpeta colocando una dirección de correo electrónico.",
"Send password by mail" : "La contraseña ha sido enviada por correo",
- "Reply to initiator" : "Responder al iniciador",
- "%1$s shared »%2$s« with you" : "%1$s compartió »%2$s« contigo",
- "%1$s shared »%2$s« with you." : "%1$s compartió »%2$s« contigo.",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Contraseña para acceder a »%1$s« compartido con usted por %2$s",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartió »%2$s« contigo y quiere añadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartió »%2$s« contigo y quiere añadir",
- "»%s« added a note to a file shared with you" : "»%s« añadió una nota a un archivo compartido contigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acaba de compartir »%1$s« con %2$s. El recurso compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %3$s, cada recurso compartido debe estar protegido con contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto, debe enviarle manualmente la contraseña.",
- "Password to access »%1$s« shared by you with %2$s" : "Contraseña para acceder a »%1$s« compartido por usted con %2$s"
+ "Reply to initiator" : "Responder al iniciador"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/sharebymail/l10n/es_MX.json b/apps/sharebymail/l10n/es_MX.json
index e0bc418c660..f0a0e7c3cf3 100644
--- a/apps/sharebymail/l10n/es_MX.json
+++ b/apps/sharebymail/l10n/es_MX.json
@@ -38,17 +38,6 @@
"Unable to update share by mail config" : "No se pudo actualizar la configuración del recurso compartido por correo",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite a los usuarios compartir un enlace personalizado a un archivo o carpeta colocando una dirección de correo electrónico.",
"Send password by mail" : "La contraseña ha sido enviada por correo",
- "Reply to initiator" : "Responder al iniciador",
- "%1$s shared »%2$s« with you" : "%1$s compartió »%2$s« contigo",
- "%1$s shared »%2$s« with you." : "%1$s compartió »%2$s« contigo.",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Contraseña para acceder a »%1$s« compartido con usted por %2$s",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartió »%2$s« contigo y quiere añadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartió »%2$s« contigo y quiere añadir",
- "»%s« added a note to a file shared with you" : "»%s« añadió una nota a un archivo compartido contigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acaba de compartir »%1$s« con %2$s. El recurso compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %3$s, cada recurso compartido debe estar protegido con contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto, debe enviarle manualmente la contraseña.",
- "Password to access »%1$s« shared by you with %2$s" : "Contraseña para acceder a »%1$s« compartido por usted con %2$s"
+ "Reply to initiator" : "Responder al iniciador"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_NI.js b/apps/sharebymail/l10n/es_NI.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_NI.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_NI.json b/apps/sharebymail/l10n/es_NI.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_NI.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_PA.js b/apps/sharebymail/l10n/es_PA.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_PA.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_PA.json b/apps/sharebymail/l10n/es_PA.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_PA.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_PE.js b/apps/sharebymail/l10n/es_PE.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_PE.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_PE.json b/apps/sharebymail/l10n/es_PE.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_PE.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_PR.js b/apps/sharebymail/l10n/es_PR.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_PR.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_PR.json b/apps/sharebymail/l10n/es_PR.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_PR.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_PY.js b/apps/sharebymail/l10n/es_PY.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_PY.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_PY.json b/apps/sharebymail/l10n/es_PY.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_PY.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_SV.js b/apps/sharebymail/l10n/es_SV.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_SV.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_SV.json b/apps/sharebymail/l10n/es_SV.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_SV.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/es_UY.js b/apps/sharebymail/l10n/es_UY.js
deleted file mode 100644
index cf3503e8536..00000000000
--- a/apps/sharebymail/l10n/es_UY.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/es_UY.json b/apps/sharebymail/l10n/es_UY.json
deleted file mode 100644
index e553f22d3f6..00000000000
--- a/apps/sharebymail/l10n/es_UY.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartido con %1$s",
- "Shared with {email}" : "Compartido con {email}",
- "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
- "Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
- "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
- "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
- "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado",
- "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo",
- "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ",
- "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo",
- "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s",
- "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}",
- "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado",
- "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada",
- "Share by mail" : "Compartir por correo",
- "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico",
- "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%s«" : "Contraseña para acceder »%s«",
- "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ",
- "Could not find share" : "No fue posible encontrar el elemento compartido",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ",
- "Send password by mail" : "La contraseña ha sido enviada por correo",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.",
- "Enforce password protection" : "Forzar protección con contraseña"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/et_EE.js b/apps/sharebymail/l10n/et_EE.js
index 23062f6ead6..c47755cfca4 100644
--- a/apps/sharebymail/l10n/et_EE.js
+++ b/apps/sharebymail/l10n/et_EE.js
@@ -3,30 +3,39 @@ OC.L10N.register(
{
"Shared with {email}" : "Jagatud aadressile {email}",
"Shared with {email} by {actor}" : "Jagatud aadressile {email} {actor} poolt",
- "Password for mail share sent to {email}" : "Meiliga jagamise parool saadetud aadressile {email}",
- "Password for mail share sent to you" : "Meiliga jagamise parool sulle saadetud",
- "Password to access {file} was sent to {email}" : "Parool {file} ligipääsuks saadeti aadressile {email}",
- "Password to access {file} was sent to you" : "Sulle saadeti {file} ligipääsuparool",
+ "Unshared from {email}" : "Jagamine {email} aadressile on lõpetatud",
+ "Unshared from {email} by {actor}" : "{actor} lõpetas jagamise {email} aadressile",
+ "Password for mail share sent to {email}" : "E-kirjaga jagamise salasõna on saadetud aadressile {email}",
+ "Password for mail share sent to you" : "Sulle saadetud e-kirjaga jagamise salasõna",
+ "Password to access {file} was sent to {email}" : "Salasõna ligipääsuks „{file}“ failile saadeti aadressile {email}",
+ "Password to access {file} was sent to you" : "Sulle saadeti salasõna ligipääsuks „{file}“ failile",
"Share by mail" : "Jaga e-postiga",
"Sharing %1$s failed, because this item is already shared with the account %2$s" : "%1$s jagamine ebaõnnestus, kuna seda üksust on juba jagatud kontoga %2$s",
+ "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Me ei saa sulle automaatselt loodud salasõna saata. Palun määra oma isiklikes seadistustes korrektne e-posti aadress ja proovi uuesti.",
+ "Failed to send share by email. Got an invalid email address" : "Jaosmeedia saatmine e-postiga ei õnnestunud. Ilmselt oli e-posti aadress vale.",
+ "Failed to send share by email" : "Jaosmeediat polnud võimalik e-kirjaga saata",
"%1$s shared %2$s with you" : "%1$s jagas sinuga: %2$s",
"Note:" : "Märkus:",
+ "This share is valid until %s at midnight" : "See jaosmeedia kehtib vaid %s keskööni",
+ "Expiration:" : "Aegumine:",
"Open %s" : "Ava %s ",
"%1$s via %2$s" : "%1$s %2$s kaudu",
- "It is protected with the following password:" : "See on kaitstud järgneva parooliga:",
+ "%1$s shared %2$s with you. You should have already received a separate mail with a link to access it." : "%2$s jagas sulle „%1$s“ jaosmeediat. Peaksid juba olema saanud eraldi e-kirja ligipääsuks vajaliku lingiga.",
+ "Password to access %1$s shared to you by %2$s" : "Salasõna ligipääsuks „%1$s“ jaosmeediale, mida sulle jagas %2$s",
+ "Password to access %s" : "Salasõna ligipääsuks „%s“ jaosmeediale",
+ "It is protected with the following password:" : "See on kaitstud järgneva salasõnaga:",
+ "This password will expire at %s" : "See salasõna aegub %s",
"%1$s shared %2$s with you and wants to add:" : "%1$s jagas sinuga %2$s ning soovib lisada:",
"%1$s shared %2$s with you and wants to add" : "%1$s jagas sinuga %2$s ning soovib lisada",
"%s added a note to a file shared with you" : "%s jagas koos sulle jagatud failiga ka märget",
+ "You just shared %1$s with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Sa just jagasid „%1$s“ meediat kasutajale „%2$s“. Jaosmeedia teave on juba saadetud kasutajale. Kuna %3$s serveri peakasutaja on kehtestanud turvareeglid, siis iga jaosmeedia peab olema kaitstud salasõnaga ning salasõna ei tohi kasutajale otse saata. Seetõttu pead salasõna saajale edastama käsitsi.",
+ "Password to access %1$s shared by you with %2$s" : "%2$s jagas sinuga salasõna ligipääsuks „%1$s“ jaosmeediale",
+ "This is the password:" : "See on vajalik salasõna:",
+ "You can choose a different password at any time in the share dialog." : "Salasõna saad alati jagamisvaatest muuta.",
"Could not find share" : "Jagamist ei leitud.",
- "Send password by mail" : "Saada parool e-postiga",
- "%1$s shared »%2$s« with you" : "„%1$s“ jagas sinuga „%2$s“",
- "%1$s shared »%2$s« with you." : "%1$s jagas sinuga „%2$s“ faili.",
- "Click the button below to open it." : "Vajuta allolevat nuppu, et see avada.",
- "Open »%s«" : "Ava »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "»%1$s« ligipääsu parool jagati sulle %2$s poolt",
- "Password to access »%s«" : "Parool ligipääsuks: %s",
- "%1$s shared »%2$s« with you and wants to add:" : "„%1$s“ jagas sinuga „%2$s“ ning soovib lisada:",
- "%1$s shared »%2$s« with you and wants to add" : "„%1$s“ jagas sinuga „%2$s“ ning soovib lisada",
- "»%s« added a note to a file shared with you" : "„%s“ jagas koos sulle jagatud failiga ka märget"
+ "Share provider which allows you to share files by mail" : "Jagamisteenuse pakkuja, mis võimaldab sul meediat jagada e-posti vahendusel",
+ "Unable to update share by mail config" : "E-postiga jagamise seadistuste uuendamine ei õnnestu.",
+ "Send password by mail" : "Saada salasõna e-postiga",
+ "Reply to initiator" : "Vasta algatajale"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/et_EE.json b/apps/sharebymail/l10n/et_EE.json
index af674928c18..ad4029da1e0 100644
--- a/apps/sharebymail/l10n/et_EE.json
+++ b/apps/sharebymail/l10n/et_EE.json
@@ -1,30 +1,39 @@
{ "translations": {
"Shared with {email}" : "Jagatud aadressile {email}",
"Shared with {email} by {actor}" : "Jagatud aadressile {email} {actor} poolt",
- "Password for mail share sent to {email}" : "Meiliga jagamise parool saadetud aadressile {email}",
- "Password for mail share sent to you" : "Meiliga jagamise parool sulle saadetud",
- "Password to access {file} was sent to {email}" : "Parool {file} ligipääsuks saadeti aadressile {email}",
- "Password to access {file} was sent to you" : "Sulle saadeti {file} ligipääsuparool",
+ "Unshared from {email}" : "Jagamine {email} aadressile on lõpetatud",
+ "Unshared from {email} by {actor}" : "{actor} lõpetas jagamise {email} aadressile",
+ "Password for mail share sent to {email}" : "E-kirjaga jagamise salasõna on saadetud aadressile {email}",
+ "Password for mail share sent to you" : "Sulle saadetud e-kirjaga jagamise salasõna",
+ "Password to access {file} was sent to {email}" : "Salasõna ligipääsuks „{file}“ failile saadeti aadressile {email}",
+ "Password to access {file} was sent to you" : "Sulle saadeti salasõna ligipääsuks „{file}“ failile",
"Share by mail" : "Jaga e-postiga",
"Sharing %1$s failed, because this item is already shared with the account %2$s" : "%1$s jagamine ebaõnnestus, kuna seda üksust on juba jagatud kontoga %2$s",
+ "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Me ei saa sulle automaatselt loodud salasõna saata. Palun määra oma isiklikes seadistustes korrektne e-posti aadress ja proovi uuesti.",
+ "Failed to send share by email. Got an invalid email address" : "Jaosmeedia saatmine e-postiga ei õnnestunud. Ilmselt oli e-posti aadress vale.",
+ "Failed to send share by email" : "Jaosmeediat polnud võimalik e-kirjaga saata",
"%1$s shared %2$s with you" : "%1$s jagas sinuga: %2$s",
"Note:" : "Märkus:",
+ "This share is valid until %s at midnight" : "See jaosmeedia kehtib vaid %s keskööni",
+ "Expiration:" : "Aegumine:",
"Open %s" : "Ava %s ",
"%1$s via %2$s" : "%1$s %2$s kaudu",
- "It is protected with the following password:" : "See on kaitstud järgneva parooliga:",
+ "%1$s shared %2$s with you. You should have already received a separate mail with a link to access it." : "%2$s jagas sulle „%1$s“ jaosmeediat. Peaksid juba olema saanud eraldi e-kirja ligipääsuks vajaliku lingiga.",
+ "Password to access %1$s shared to you by %2$s" : "Salasõna ligipääsuks „%1$s“ jaosmeediale, mida sulle jagas %2$s",
+ "Password to access %s" : "Salasõna ligipääsuks „%s“ jaosmeediale",
+ "It is protected with the following password:" : "See on kaitstud järgneva salasõnaga:",
+ "This password will expire at %s" : "See salasõna aegub %s",
"%1$s shared %2$s with you and wants to add:" : "%1$s jagas sinuga %2$s ning soovib lisada:",
"%1$s shared %2$s with you and wants to add" : "%1$s jagas sinuga %2$s ning soovib lisada",
"%s added a note to a file shared with you" : "%s jagas koos sulle jagatud failiga ka märget",
+ "You just shared %1$s with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Sa just jagasid „%1$s“ meediat kasutajale „%2$s“. Jaosmeedia teave on juba saadetud kasutajale. Kuna %3$s serveri peakasutaja on kehtestanud turvareeglid, siis iga jaosmeedia peab olema kaitstud salasõnaga ning salasõna ei tohi kasutajale otse saata. Seetõttu pead salasõna saajale edastama käsitsi.",
+ "Password to access %1$s shared by you with %2$s" : "%2$s jagas sinuga salasõna ligipääsuks „%1$s“ jaosmeediale",
+ "This is the password:" : "See on vajalik salasõna:",
+ "You can choose a different password at any time in the share dialog." : "Salasõna saad alati jagamisvaatest muuta.",
"Could not find share" : "Jagamist ei leitud.",
- "Send password by mail" : "Saada parool e-postiga",
- "%1$s shared »%2$s« with you" : "„%1$s“ jagas sinuga „%2$s“",
- "%1$s shared »%2$s« with you." : "%1$s jagas sinuga „%2$s“ faili.",
- "Click the button below to open it." : "Vajuta allolevat nuppu, et see avada.",
- "Open »%s«" : "Ava »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "»%1$s« ligipääsu parool jagati sulle %2$s poolt",
- "Password to access »%s«" : "Parool ligipääsuks: %s",
- "%1$s shared »%2$s« with you and wants to add:" : "„%1$s“ jagas sinuga „%2$s“ ning soovib lisada:",
- "%1$s shared »%2$s« with you and wants to add" : "„%1$s“ jagas sinuga „%2$s“ ning soovib lisada",
- "»%s« added a note to a file shared with you" : "„%s“ jagas koos sulle jagatud failiga ka märget"
+ "Share provider which allows you to share files by mail" : "Jagamisteenuse pakkuja, mis võimaldab sul meediat jagada e-posti vahendusel",
+ "Unable to update share by mail config" : "E-postiga jagamise seadistuste uuendamine ei õnnestu.",
+ "Send password by mail" : "Saada salasõna e-postiga",
+ "Reply to initiator" : "Vasta algatajale"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/eu.js b/apps/sharebymail/l10n/eu.js
index 580419af6b0..0bed3e0555b 100644
--- a/apps/sharebymail/l10n/eu.js
+++ b/apps/sharebymail/l10n/eu.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Ezin da eguneratu partekatzea posta konfigurazioaren bidez",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Pertsonei fitxategi edo karpeta baterako esteka pertsonalizatua partekatzeko aukera ematen die helbide elektronikoa jarriz.",
"Send password by mail" : "Bidali pasahitza posta bidez",
- "Reply to initiator" : "Erantzun hasieragailuari",
- "%1$s shared »%2$s« with you" : "%1$serabiltzaileak »%2$s« partekatu du zurekin",
- "%1$s shared »%2$s« with you." : "%1$serabiltzaileak »%2$s« partekatu du zurekin",
- "Click the button below to open it." : "Egin klik beheko botoian hura irekitzeko",
- "Open »%s«" : "Ireki »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "»%1$s« atzitzeko pasahitza partekatu du zurekin %2$s(e)k",
- "Password to access »%s«" : "»%s« atzitzeko pasahitza",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$serabiltzaileak »%2$s« partekatu du zurekin eta hau gehitu nahi du:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$serabiltzaileak »%2$s« partekatu du zurekin eta hau gehitu nahi du",
- "»%s« added a note to a file shared with you" : "»%s« erabiltzaileak nota bat gehitu dio partekatu dizun fitxategi batean",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%1$spartekatu duzu %2$s-(a)rekin. Partekatzea dgoeneko hartzaileari bidali zaio. %3$s-(e)ko administratzaileak zehaztutako segurtasun politikak direla eta, partekatze bakoitza pasahitz bidez babestu behar da eta ezin da pasahitza zuzenean hartzaileari bidali. Beraz, pasahitza eskuz birbidali behar diozu hartzaileari.",
- "Password to access »%1$s« shared by you with %2$s" : "»%1$s«  atzitzeko pasahitza partekatu duzu %2$s-(a)rekin"
+ "Reply to initiator" : "Erantzun hasieragailuari"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/eu.json b/apps/sharebymail/l10n/eu.json
index c4b6b3623c1..ef922e9373b 100644
--- a/apps/sharebymail/l10n/eu.json
+++ b/apps/sharebymail/l10n/eu.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Ezin da eguneratu partekatzea posta konfigurazioaren bidez",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Pertsonei fitxategi edo karpeta baterako esteka pertsonalizatua partekatzeko aukera ematen die helbide elektronikoa jarriz.",
"Send password by mail" : "Bidali pasahitza posta bidez",
- "Reply to initiator" : "Erantzun hasieragailuari",
- "%1$s shared »%2$s« with you" : "%1$serabiltzaileak »%2$s« partekatu du zurekin",
- "%1$s shared »%2$s« with you." : "%1$serabiltzaileak »%2$s« partekatu du zurekin",
- "Click the button below to open it." : "Egin klik beheko botoian hura irekitzeko",
- "Open »%s«" : "Ireki »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "»%1$s« atzitzeko pasahitza partekatu du zurekin %2$s(e)k",
- "Password to access »%s«" : "»%s« atzitzeko pasahitza",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$serabiltzaileak »%2$s« partekatu du zurekin eta hau gehitu nahi du:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$serabiltzaileak »%2$s« partekatu du zurekin eta hau gehitu nahi du",
- "»%s« added a note to a file shared with you" : "»%s« erabiltzaileak nota bat gehitu dio partekatu dizun fitxategi batean",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%1$spartekatu duzu %2$s-(a)rekin. Partekatzea dgoeneko hartzaileari bidali zaio. %3$s-(e)ko administratzaileak zehaztutako segurtasun politikak direla eta, partekatze bakoitza pasahitz bidez babestu behar da eta ezin da pasahitza zuzenean hartzaileari bidali. Beraz, pasahitza eskuz birbidali behar diozu hartzaileari.",
- "Password to access »%1$s« shared by you with %2$s" : "»%1$s«  atzitzeko pasahitza partekatu duzu %2$s-(a)rekin"
+ "Reply to initiator" : "Erantzun hasieragailuari"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/fa.js b/apps/sharebymail/l10n/fa.js
index c0d0212b6ed..e9328c5b102 100644
--- a/apps/sharebymail/l10n/fa.js
+++ b/apps/sharebymail/l10n/fa.js
@@ -14,29 +14,24 @@ OC.L10N.register(
"Password to access {file} was sent to {email}" : "رمز عبور برای دسترسی به {file} به {email} ارسال شد",
"Password to access {file} was sent to you" : "رمز ورود برای دسترسی به {file} برای شما ارسال شد",
"Share by mail" : "اشتراک از طریق پست",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "اشتراک‌گذاری %1$s ناموفق بود، زیرا این مورد قبلاً با حساب %2$s به اشتراک گذاشته شده است",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "ما نمی توانیم رمز عبور ایجاد شده به صورت خودکار را برای شما ارسال کنیم. لطفاً یک آدرس ایمیل معتبر در تنظیمات شخصی خود تنظیم کنید و دوباره امتحان کنید.",
"Failed to send share by email. Got an invalid email address" : "اشتراک از طریق ایمیل ارسال نشد. یک آدرس ایمیل نامعتبر دریافت کردم",
"Failed to send share by email" : "ارسال اشتراک از طریق ایمیل انجام نشد",
+ "%1$s shared %2$s with you" : "%1$s %2$s را با شما به اشتراک گذاشت",
+ "Open %s" : "باز کردن %s",
"%1$s via %2$s" : "%1$s از طریق %2$s",
"It is protected with the following password:" : "با رمز عبور زیر محافظت می شود:",
"This password will expire at %s" : "این رمز عبور در تاریخ منقضی می شود %s",
+ "%1$s shared %2$s with you and wants to add:" : "%1$s %2$s را با شما به اشتراک گذاشت و می‌خواهد اضافه کند:",
+ "%1$s shared %2$s with you and wants to add" : "%1$s %2$s را با شما به اشتراک گذاشت و می‌خواهد اضافه کند",
+ "%s added a note to a file shared with you" : "%s یک یادداشت به فایلی که با شما به اشتراک گذاشته شده است اضافه کرد",
"This is the password:" : "این رمز عبور است:",
"You can choose a different password at any time in the share dialog." : "می توانید در هر زمان و در گفتگوی اشتراک ، رمزعبور دیگری را انتخاب کنید.",
"Could not find share" : "اشتراک یافت نشد",
"Share provider which allows you to share files by mail" : "ارائه دهنده به شما امکان می دهد پرونده ها را از طریق پست به اشتراک بگذارید",
"Unable to update share by mail config" : "به‌روزرسانی اشتراک‌گذاری با پیکربندی ایمیل امکان‌پذیر نیست",
"Send password by mail" : "ارسال رمز عبور از طریق پست",
- "Reply to initiator" : "پاسخ به آغازگر",
- "%1$s shared »%2$s« with you" : "%1$s به اشتراک گذاشته » %2$s« با شما",
- "%1$s shared »%2$s« with you." : "%1$s به اشتراک گذاشته » %2$s« با شما",
- "Click the button below to open it." : "برای باز کردن آن روی دکمه زیر کلیک کنید.",
- "Open »%s«" : "باز کن »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "برای دسترسی به رمز عبور »%1$s« توسط شما %2$s به اشتراک گذاشته شده است",
- "Password to access »%s«" : "برای دسترسی به رمز عبور »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s به اشتراک گذاشته شده »%2$s« با شماست و می خواهد اضافه کند:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s به اشتراک گذاشته شده »%2$s« با شماست و می خواهد اضافه کند:",
- "»%s« added a note to a file shared with you" : "»%s« یادداشتی را به پرونده ای که با شما به اشتراک گذاشته شده است اضافه کرد",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "شما فقط به اشتراک گذاشته اید »%1$s« با%2$s . سهم قبلاً برای گیرنده ارسال شده بود. با توجه به سیاست های امنیتی تعریف شده توسط سرپرست %3$s هر سهم ، باید با رمز محافظت شود و مجاز نیست رمز عبور را مستقیماً به گیرنده ارسال کنید. بنابراین باید گذرواژه را به صورت دستی به گیرنده ارسال کنید.",
- "Password to access »%1$s« shared by you with %2$s" : "گذرواژه برای دسترسی »%1$s« به اشتراک گذاشته شده توسط شما %2$s"
+ "Reply to initiator" : "پاسخ به آغازگر"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/sharebymail/l10n/fa.json b/apps/sharebymail/l10n/fa.json
index b2d73202181..4459f308770 100644
--- a/apps/sharebymail/l10n/fa.json
+++ b/apps/sharebymail/l10n/fa.json
@@ -12,29 +12,24 @@
"Password to access {file} was sent to {email}" : "رمز عبور برای دسترسی به {file} به {email} ارسال شد",
"Password to access {file} was sent to you" : "رمز ورود برای دسترسی به {file} برای شما ارسال شد",
"Share by mail" : "اشتراک از طریق پست",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "اشتراک‌گذاری %1$s ناموفق بود، زیرا این مورد قبلاً با حساب %2$s به اشتراک گذاشته شده است",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "ما نمی توانیم رمز عبور ایجاد شده به صورت خودکار را برای شما ارسال کنیم. لطفاً یک آدرس ایمیل معتبر در تنظیمات شخصی خود تنظیم کنید و دوباره امتحان کنید.",
"Failed to send share by email. Got an invalid email address" : "اشتراک از طریق ایمیل ارسال نشد. یک آدرس ایمیل نامعتبر دریافت کردم",
"Failed to send share by email" : "ارسال اشتراک از طریق ایمیل انجام نشد",
+ "%1$s shared %2$s with you" : "%1$s %2$s را با شما به اشتراک گذاشت",
+ "Open %s" : "باز کردن %s",
"%1$s via %2$s" : "%1$s از طریق %2$s",
"It is protected with the following password:" : "با رمز عبور زیر محافظت می شود:",
"This password will expire at %s" : "این رمز عبور در تاریخ منقضی می شود %s",
+ "%1$s shared %2$s with you and wants to add:" : "%1$s %2$s را با شما به اشتراک گذاشت و می‌خواهد اضافه کند:",
+ "%1$s shared %2$s with you and wants to add" : "%1$s %2$s را با شما به اشتراک گذاشت و می‌خواهد اضافه کند",
+ "%s added a note to a file shared with you" : "%s یک یادداشت به فایلی که با شما به اشتراک گذاشته شده است اضافه کرد",
"This is the password:" : "این رمز عبور است:",
"You can choose a different password at any time in the share dialog." : "می توانید در هر زمان و در گفتگوی اشتراک ، رمزعبور دیگری را انتخاب کنید.",
"Could not find share" : "اشتراک یافت نشد",
"Share provider which allows you to share files by mail" : "ارائه دهنده به شما امکان می دهد پرونده ها را از طریق پست به اشتراک بگذارید",
"Unable to update share by mail config" : "به‌روزرسانی اشتراک‌گذاری با پیکربندی ایمیل امکان‌پذیر نیست",
"Send password by mail" : "ارسال رمز عبور از طریق پست",
- "Reply to initiator" : "پاسخ به آغازگر",
- "%1$s shared »%2$s« with you" : "%1$s به اشتراک گذاشته » %2$s« با شما",
- "%1$s shared »%2$s« with you." : "%1$s به اشتراک گذاشته » %2$s« با شما",
- "Click the button below to open it." : "برای باز کردن آن روی دکمه زیر کلیک کنید.",
- "Open »%s«" : "باز کن »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "برای دسترسی به رمز عبور »%1$s« توسط شما %2$s به اشتراک گذاشته شده است",
- "Password to access »%s«" : "برای دسترسی به رمز عبور »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s به اشتراک گذاشته شده »%2$s« با شماست و می خواهد اضافه کند:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s به اشتراک گذاشته شده »%2$s« با شماست و می خواهد اضافه کند:",
- "»%s« added a note to a file shared with you" : "»%s« یادداشتی را به پرونده ای که با شما به اشتراک گذاشته شده است اضافه کرد",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "شما فقط به اشتراک گذاشته اید »%1$s« با%2$s . سهم قبلاً برای گیرنده ارسال شده بود. با توجه به سیاست های امنیتی تعریف شده توسط سرپرست %3$s هر سهم ، باید با رمز محافظت شود و مجاز نیست رمز عبور را مستقیماً به گیرنده ارسال کنید. بنابراین باید گذرواژه را به صورت دستی به گیرنده ارسال کنید.",
- "Password to access »%1$s« shared by you with %2$s" : "گذرواژه برای دسترسی »%1$s« به اشتراک گذاشته شده توسط شما %2$s"
+ "Reply to initiator" : "پاسخ به آغازگر"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/fi.js b/apps/sharebymail/l10n/fi.js
index aeb9c2f36f3..245d187eb6b 100644
--- a/apps/sharebymail/l10n/fi.js
+++ b/apps/sharebymail/l10n/fi.js
@@ -24,14 +24,6 @@ OC.L10N.register(
"You can choose a different password at any time in the share dialog." : "Voit valita muun salasanan koska tahansa jakovalikossa.",
"Could not find share" : "Jakoa ei löytynyt",
"Send password by mail" : "Lähetä salasana sähköpostitse",
- "Reply to initiator" : "Vastaa aloitteentekijälle",
- "%1$s shared »%2$s« with you" : "%1$s jakoi kohteen »%2$s« kanssasi",
- "%1$s shared »%2$s« with you." : "%1$s jakoi kohteen »%2$s« kanssasi.",
- "Click the button below to open it." : "Napsauta alla olevaa linkkiä avataksesi sen.",
- "Open »%s«" : "Avaa »%s«",
- "Password to access »%s«" : "Salasana kohteen »%s« käyttöön",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s jakoi kohteen »%2$s« kanssasi ja haluaa lisätä:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s jakoi kohteen »%2$s« kanssasi ja haluaa lisätä",
- "»%s« added a note to a file shared with you" : "»%s« lisäsi huomion jakamaasi tiedostoon"
+ "Reply to initiator" : "Vastaa aloitteentekijälle"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/fi.json b/apps/sharebymail/l10n/fi.json
index 6a2b21973a1..66d78b5f170 100644
--- a/apps/sharebymail/l10n/fi.json
+++ b/apps/sharebymail/l10n/fi.json
@@ -22,14 +22,6 @@
"You can choose a different password at any time in the share dialog." : "Voit valita muun salasanan koska tahansa jakovalikossa.",
"Could not find share" : "Jakoa ei löytynyt",
"Send password by mail" : "Lähetä salasana sähköpostitse",
- "Reply to initiator" : "Vastaa aloitteentekijälle",
- "%1$s shared »%2$s« with you" : "%1$s jakoi kohteen »%2$s« kanssasi",
- "%1$s shared »%2$s« with you." : "%1$s jakoi kohteen »%2$s« kanssasi.",
- "Click the button below to open it." : "Napsauta alla olevaa linkkiä avataksesi sen.",
- "Open »%s«" : "Avaa »%s«",
- "Password to access »%s«" : "Salasana kohteen »%s« käyttöön",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s jakoi kohteen »%2$s« kanssasi ja haluaa lisätä:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s jakoi kohteen »%2$s« kanssasi ja haluaa lisätä",
- "»%s« added a note to a file shared with you" : "»%s« lisäsi huomion jakamaasi tiedostoon"
+ "Reply to initiator" : "Vastaa aloitteentekijälle"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/fr.js b/apps/sharebymail/l10n/fr.js
index 748e6173dab..fe6c091a941 100644
--- a/apps/sharebymail/l10n/fr.js
+++ b/apps/sharebymail/l10n/fr.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Impossible de mettre à jour la configuration du partage par e-mail",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Autoriser les personnes à partager un lien personnalisé vers un fichier ou un dossier en renseignant une adresse e-mail.",
"Send password by mail" : "Envoyer le mot de passe par e-mail",
- "Reply to initiator" : "Répondre à l'initiateur",
- "%1$s shared »%2$s« with you" : "%1$s a partagé « %2$s » avec vous",
- "%1$s shared »%2$s« with you." : "%1$s a partagé « %2$s » avec vous.",
- "Click the button below to open it." : "Cliquez sur le bouton ci-dessous pour l'ouvrir.",
- "Open »%s«" : "Ouvrir « %s »",
- "Password to access »%1$s« shared to you by %2$s" : "Mot de passe pour accéder à « %1$s » partagé avec vous par %2$s",
- "Password to access »%s«" : "Mot de passe pour accéder à « %s »",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s a partagé « %2$s » avec vous et souhaite ajouter :",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s a partagé « %2$s » avec vous et souhaite ajouter ",
- "»%s« added a note to a file shared with you" : "%s a ajouté une note à un fichier partagé avec vous.",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Vous venez de partager « %1$s » avec %2$s. Le partage a déjà été envoyé au destinataire. En raison de la politique de sécurité définie par l'administrateur de %3$s, chaque partage doit être protégé par mot de passe et il n'est pas autorisé d'envoyer le mot de passe directement au destinataire. C'est pourquoi vous devez transmettre le mot de passe manuellement au destinataire.",
- "Password to access »%1$s« shared by you with %2$s" : "Mot de passe pour accéder à « %1$s » partagé par vous avec %2$s"
+ "Reply to initiator" : "Répondre à l'initiateur"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/sharebymail/l10n/fr.json b/apps/sharebymail/l10n/fr.json
index 25cf1f6b5e7..b6a22382300 100644
--- a/apps/sharebymail/l10n/fr.json
+++ b/apps/sharebymail/l10n/fr.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Impossible de mettre à jour la configuration du partage par e-mail",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Autoriser les personnes à partager un lien personnalisé vers un fichier ou un dossier en renseignant une adresse e-mail.",
"Send password by mail" : "Envoyer le mot de passe par e-mail",
- "Reply to initiator" : "Répondre à l'initiateur",
- "%1$s shared »%2$s« with you" : "%1$s a partagé « %2$s » avec vous",
- "%1$s shared »%2$s« with you." : "%1$s a partagé « %2$s » avec vous.",
- "Click the button below to open it." : "Cliquez sur le bouton ci-dessous pour l'ouvrir.",
- "Open »%s«" : "Ouvrir « %s »",
- "Password to access »%1$s« shared to you by %2$s" : "Mot de passe pour accéder à « %1$s » partagé avec vous par %2$s",
- "Password to access »%s«" : "Mot de passe pour accéder à « %s »",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s a partagé « %2$s » avec vous et souhaite ajouter :",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s a partagé « %2$s » avec vous et souhaite ajouter ",
- "»%s« added a note to a file shared with you" : "%s a ajouté une note à un fichier partagé avec vous.",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Vous venez de partager « %1$s » avec %2$s. Le partage a déjà été envoyé au destinataire. En raison de la politique de sécurité définie par l'administrateur de %3$s, chaque partage doit être protégé par mot de passe et il n'est pas autorisé d'envoyer le mot de passe directement au destinataire. C'est pourquoi vous devez transmettre le mot de passe manuellement au destinataire.",
- "Password to access »%1$s« shared by you with %2$s" : "Mot de passe pour accéder à « %1$s » partagé par vous avec %2$s"
+ "Reply to initiator" : "Répondre à l'initiateur"
},"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/sharebymail/l10n/ga.js b/apps/sharebymail/l10n/ga.js
index 317c064caf8..7aef3efe062 100644
--- a/apps/sharebymail/l10n/ga.js
+++ b/apps/sharebymail/l10n/ga.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Níorbh fhéidir an chumraíocht sciar tríd an ríomhphost a nuashonrú",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Ligeann sé do dhaoine nasc pearsantaithe chuig comhad nó fillteán a roinnt trí sheoladh ríomhphoist a chur isteach.",
"Send password by mail" : "Seol pasfhocal tríd an bpost",
- "Reply to initiator" : "Freagra don thionscnóir",
- "%1$s shared »%2$s« with you" : "Roinn %1$s »%2$s« leat",
- "%1$s shared »%2$s« with you." : "Roinn %1$s »%2$s« leat.",
- "Click the button below to open it." : "Cliceáil ar an gcnaipe thíos chun é a oscailt.",
- "Open »%s«" : "Oscail »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Tá pasfhocal chun rochtain a fháil ar »%1$s« roinnte agat ag %2$s",
- "Password to access »%s«" : "Pasfhocal le rochtain »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s shared »%2$s« with you and wants to add:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
- "»%s« added a note to a file shared with you" : "Chuir »%s« nóta le comhad a roinntear leat",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Roinn tú »%1$s« le %2$s. Seoladh an sciar chuig an bhfaighteoir cheana féin. De bharr na bpolasaithe slándála atá sainmhínithe ag riarthóir %3$s ní mór gach sciar a chosaint le pasfhocal agus ní cheadaítear an pasfhocal a sheoladh go díreach chuig an bhfaighteoir. Mar sin ní mór duit an pasfhocal a chur ar aghaidh de láimh chuig an bhfaighteoir.",
- "Password to access »%1$s« shared by you with %2$s" : "Pasfocal chun rochtain a fháil ar »%1$s« arna chomhroinnt agat le %2$s"
+ "Reply to initiator" : "Freagra don thionscnóir"
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/sharebymail/l10n/ga.json b/apps/sharebymail/l10n/ga.json
index 97746ed65ca..b1e60f26fcf 100644
--- a/apps/sharebymail/l10n/ga.json
+++ b/apps/sharebymail/l10n/ga.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Níorbh fhéidir an chumraíocht sciar tríd an ríomhphost a nuashonrú",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Ligeann sé do dhaoine nasc pearsantaithe chuig comhad nó fillteán a roinnt trí sheoladh ríomhphoist a chur isteach.",
"Send password by mail" : "Seol pasfhocal tríd an bpost",
- "Reply to initiator" : "Freagra don thionscnóir",
- "%1$s shared »%2$s« with you" : "Roinn %1$s »%2$s« leat",
- "%1$s shared »%2$s« with you." : "Roinn %1$s »%2$s« leat.",
- "Click the button below to open it." : "Cliceáil ar an gcnaipe thíos chun é a oscailt.",
- "Open »%s«" : "Oscail »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Tá pasfhocal chun rochtain a fháil ar »%1$s« roinnte agat ag %2$s",
- "Password to access »%s«" : "Pasfhocal le rochtain »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s shared »%2$s« with you and wants to add:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
- "»%s« added a note to a file shared with you" : "Chuir »%s« nóta le comhad a roinntear leat",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Roinn tú »%1$s« le %2$s. Seoladh an sciar chuig an bhfaighteoir cheana féin. De bharr na bpolasaithe slándála atá sainmhínithe ag riarthóir %3$s ní mór gach sciar a chosaint le pasfhocal agus ní cheadaítear an pasfhocal a sheoladh go díreach chuig an bhfaighteoir. Mar sin ní mór duit an pasfhocal a chur ar aghaidh de láimh chuig an bhfaighteoir.",
- "Password to access »%1$s« shared by you with %2$s" : "Pasfocal chun rochtain a fháil ar »%1$s« arna chomhroinnt agat le %2$s"
+ "Reply to initiator" : "Freagra don thionscnóir"
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/gl.js b/apps/sharebymail/l10n/gl.js
index cc35b180083..bb39a878487 100644
--- a/apps/sharebymail/l10n/gl.js
+++ b/apps/sharebymail/l10n/gl.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Non é posíbel actualizar a configuración para compartir por correo",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite que a xente comparta unha ligazón personalizada ou un ficheiro ou cartafol enviándoo a un enderezo de correo.",
"Send password by mail" : "Enviar contrasinal por correo",
- "Reply to initiator" : "Resposta ao iniciador",
- "%1$s shared »%2$s« with you" : "%1$s compartiu «%2$s» con Vde.",
- "%1$s shared »%2$s« with you." : "%1$s compartiu «%2$s» con Vde.",
- "Click the button below to open it." : "Prema no botón de embaixo para abrilo.",
- "Open »%s«" : "Abrir «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "O contrasinal para acceder a «%1$s» foi compartido con Vde. por %2$s",
- "Password to access »%s«" : "Contrasinal para acceder a «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartiu «%2$s» con Vde. e quere engadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartiu «%2$s» con Vde. e quere engadir",
- "»%s« added a note to a file shared with you" : "«%s» engadiu unha nota a un ficheiro compartido con Vde.",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Vén de de compartir «%1$s» con %2$s. A compartición xa foi enviada ao destinatario. Por mor das directivas de seguranza definidas polo administrador de %3$s cada compartición necesita ser protexida por un contrasinal e non está permitido que Vde. envíe o contrasinal directamente ao destinatario. Daquela, necesita enviar manualmente o contrasinal ao destinatario.",
- "Password to access »%1$s« shared by you with %2$s" : "Contrasinal para acceder a «%1$s» compartida por Vde. con %2$s"
+ "Reply to initiator" : "Resposta ao iniciador"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/gl.json b/apps/sharebymail/l10n/gl.json
index adc29054bc1..ff19b1f1674 100644
--- a/apps/sharebymail/l10n/gl.json
+++ b/apps/sharebymail/l10n/gl.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Non é posíbel actualizar a configuración para compartir por correo",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite que a xente comparta unha ligazón personalizada ou un ficheiro ou cartafol enviándoo a un enderezo de correo.",
"Send password by mail" : "Enviar contrasinal por correo",
- "Reply to initiator" : "Resposta ao iniciador",
- "%1$s shared »%2$s« with you" : "%1$s compartiu «%2$s» con Vde.",
- "%1$s shared »%2$s« with you." : "%1$s compartiu «%2$s» con Vde.",
- "Click the button below to open it." : "Prema no botón de embaixo para abrilo.",
- "Open »%s«" : "Abrir «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "O contrasinal para acceder a «%1$s» foi compartido con Vde. por %2$s",
- "Password to access »%s«" : "Contrasinal para acceder a «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartiu «%2$s» con Vde. e quere engadir:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartiu «%2$s» con Vde. e quere engadir",
- "»%s« added a note to a file shared with you" : "«%s» engadiu unha nota a un ficheiro compartido con Vde.",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Vén de de compartir «%1$s» con %2$s. A compartición xa foi enviada ao destinatario. Por mor das directivas de seguranza definidas polo administrador de %3$s cada compartición necesita ser protexida por un contrasinal e non está permitido que Vde. envíe o contrasinal directamente ao destinatario. Daquela, necesita enviar manualmente o contrasinal ao destinatario.",
- "Password to access »%1$s« shared by you with %2$s" : "Contrasinal para acceder a «%1$s» compartida por Vde. con %2$s"
+ "Reply to initiator" : "Resposta ao iniciador"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/he.js b/apps/sharebymail/l10n/he.js
index 21e5c328749..c2596a9961d 100644
--- a/apps/sharebymail/l10n/he.js
+++ b/apps/sharebymail/l10n/he.js
@@ -22,17 +22,6 @@ OC.L10N.register(
"You can choose a different password at any time in the share dialog." : "ניתן לבחור בססמה אחרת בכל עת בתיבת דו־שיח השיתוף.",
"Could not find share" : "לא ניתן למצוא את השיתוף",
"Share provider which allows you to share files by mail" : "ספק השיתוף שמאפשר לך לשתף קבצים בדוא״ל",
- "Send password by mail" : "שליחת ססמה בדוא״ל",
- "%1$s shared »%2$s« with you" : "„%2$s” שותף אתך על ידי %1$s",
- "%1$s shared »%2$s« with you." : "„%2$s” שותף אתך על ידי %1$s.",
- "Click the button below to open it." : "יש ללחוץ על הכפתור שלהלן כדי לפתוח אותו.",
- "Open »%s«" : "פתיחת „%s”",
- "Password to access »%1$s« shared to you by %2$s" : "סיסמא לגישה ל-»%1$s« משותף לך על ידי %2$s",
- "Password to access »%s«" : "ססמת הגישה אל „%s”",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s שיתף » %2$s« איתך, ורוצה להוסיף:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$sשיתף »%2$s« איתך, ורוצה להוסיף:",
- "»%s« added a note to a file shared with you" : "התווספה הערה על קובץ ששותף את על ידי „%s”",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "כרגע שיתפת את »%1$s« עם %2$s. השיתוף כבר נשלח לנמען. בשל מדיניות האבטחה שהגדיר מנהל המערכת של %3$s, יש להגן כל שיתוף על ידי סיסמה, ואינו רשאי לשלוח את הסיסמה ישירות לנמען. לכן, עליך להעביר את הסיסמה באופן ידני לנמען.",
- "Password to access »%1$s« shared by you with %2$s" : "ססמה לגשת אל „%1$s” ששותף על ידיך עם %2$s"
+ "Send password by mail" : "שליחת ססמה בדוא״ל"
},
"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;");
diff --git a/apps/sharebymail/l10n/he.json b/apps/sharebymail/l10n/he.json
index f06a47bb83a..dc46cfaa6e1 100644
--- a/apps/sharebymail/l10n/he.json
+++ b/apps/sharebymail/l10n/he.json
@@ -20,17 +20,6 @@
"You can choose a different password at any time in the share dialog." : "ניתן לבחור בססמה אחרת בכל עת בתיבת דו־שיח השיתוף.",
"Could not find share" : "לא ניתן למצוא את השיתוף",
"Share provider which allows you to share files by mail" : "ספק השיתוף שמאפשר לך לשתף קבצים בדוא״ל",
- "Send password by mail" : "שליחת ססמה בדוא״ל",
- "%1$s shared »%2$s« with you" : "„%2$s” שותף אתך על ידי %1$s",
- "%1$s shared »%2$s« with you." : "„%2$s” שותף אתך על ידי %1$s.",
- "Click the button below to open it." : "יש ללחוץ על הכפתור שלהלן כדי לפתוח אותו.",
- "Open »%s«" : "פתיחת „%s”",
- "Password to access »%1$s« shared to you by %2$s" : "סיסמא לגישה ל-»%1$s« משותף לך על ידי %2$s",
- "Password to access »%s«" : "ססמת הגישה אל „%s”",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s שיתף » %2$s« איתך, ורוצה להוסיף:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$sשיתף »%2$s« איתך, ורוצה להוסיף:",
- "»%s« added a note to a file shared with you" : "התווספה הערה על קובץ ששותף את על ידי „%s”",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "כרגע שיתפת את »%1$s« עם %2$s. השיתוף כבר נשלח לנמען. בשל מדיניות האבטחה שהגדיר מנהל המערכת של %3$s, יש להגן כל שיתוף על ידי סיסמה, ואינו רשאי לשלוח את הסיסמה ישירות לנמען. לכן, עליך להעביר את הסיסמה באופן ידני לנמען.",
- "Password to access »%1$s« shared by you with %2$s" : "ססמה לגשת אל „%1$s” ששותף על ידיך עם %2$s"
+ "Send password by mail" : "שליחת ססמה בדוא״ל"
},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/hr.js b/apps/sharebymail/l10n/hr.js
index ee1df5cd421..f292d3e683b 100644
--- a/apps/sharebymail/l10n/hr.js
+++ b/apps/sharebymail/l10n/hr.js
@@ -23,17 +23,6 @@ OC.L10N.register(
"Could not find share" : "Nije moguće pronaći dijeljenje",
"Share provider which allows you to share files by mail" : "Davatelj usluge dijeljenja koji vam omogućuje dijeljenje datoteka poštom",
"Send password by mail" : "Pošalji zaporku poštom",
- "Reply to initiator" : "Odgovori pokretaču",
- "%1$s shared »%2$s« with you" : "%1$s dijeli »%2$s« s vama",
- "%1$s shared »%2$s« with you." : "%1$s dijeli »%2$s« s vama.",
- "Click the button below to open it." : "Kliknite gumb u nastavku za otvaranje.",
- "Open »%s«" : "Otvori »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Zaporku za pristupanje »%1$s« s vama dijeli %2$s",
- "Password to access »%s«" : "Zaporka za pristupanje »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s dijeli »%2$s« s vama i želi dodati:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s dijeli »%2$s« s vama i želi dodati",
- "»%s« added a note to a file shared with you" : "»%s« je dodao bilješku datoteci koju dijeli s vama",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Upravo ste podijelili »%1$s« s %2$s. Dijeljenje je već poslano primatelju. Zbog sigurnosnih pravila koje je definirao administrator %3$s, svako dijeljenje mora biti zaštićeno zaporkom i nije dopušteno slati zaporku izravno primatelju. Stoga zaporku morate ručno proslijediti primatelju.",
- "Password to access »%1$s« shared by you with %2$s" : "Zaporka za pristupanje »%1$s« koju ste podijelili s %2$s"
+ "Reply to initiator" : "Odgovori pokretaču"
},
"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/sharebymail/l10n/hr.json b/apps/sharebymail/l10n/hr.json
index 846fa4ab02e..2e4ce30f408 100644
--- a/apps/sharebymail/l10n/hr.json
+++ b/apps/sharebymail/l10n/hr.json
@@ -21,17 +21,6 @@
"Could not find share" : "Nije moguće pronaći dijeljenje",
"Share provider which allows you to share files by mail" : "Davatelj usluge dijeljenja koji vam omogućuje dijeljenje datoteka poštom",
"Send password by mail" : "Pošalji zaporku poštom",
- "Reply to initiator" : "Odgovori pokretaču",
- "%1$s shared »%2$s« with you" : "%1$s dijeli »%2$s« s vama",
- "%1$s shared »%2$s« with you." : "%1$s dijeli »%2$s« s vama.",
- "Click the button below to open it." : "Kliknite gumb u nastavku za otvaranje.",
- "Open »%s«" : "Otvori »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Zaporku za pristupanje »%1$s« s vama dijeli %2$s",
- "Password to access »%s«" : "Zaporka za pristupanje »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s dijeli »%2$s« s vama i želi dodati:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s dijeli »%2$s« s vama i želi dodati",
- "»%s« added a note to a file shared with you" : "»%s« je dodao bilješku datoteci koju dijeli s vama",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Upravo ste podijelili »%1$s« s %2$s. Dijeljenje je već poslano primatelju. Zbog sigurnosnih pravila koje je definirao administrator %3$s, svako dijeljenje mora biti zaštićeno zaporkom i nije dopušteno slati zaporku izravno primatelju. Stoga zaporku morate ručno proslijediti primatelju.",
- "Password to access »%1$s« shared by you with %2$s" : "Zaporka za pristupanje »%1$s« koju ste podijelili s %2$s"
+ "Reply to initiator" : "Odgovori pokretaču"
},"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/sharebymail/l10n/hu.js b/apps/sharebymail/l10n/hu.js
index 95e0daca4b8..6d530b01081 100644
--- a/apps/sharebymail/l10n/hu.js
+++ b/apps/sharebymail/l10n/hu.js
@@ -28,17 +28,6 @@ OC.L10N.register(
"Share provider which allows you to share files by mail" : "Megosztási szolgáltató, amely lehetővé teszi fájlok e-mailben történő megosztását",
"Unable to update share by mail config" : "Az e-mailes megosztás beállításai nem frissíthetők",
"Send password by mail" : "Jelszó kiküldése e-mailben",
- "Reply to initiator" : "Válasz a kezdeményezőnek",
- "%1$s shared »%2$s« with you" : "%1$s megosztotta Önnel a következőt: „%2$s”",
- "%1$s shared »%2$s« with you." : "%1$s megosztotta Önnel a következőt: „%2$s”.",
- "Click the button below to open it." : "Kattintson a lenti gombra a megnyitásához.",
- "Open »%s«" : "„%s” megnyitása",
- "Password to access »%1$s« shared to you by %2$s" : "Jelszó a(z) %2$s által megosztott „%1$s” eléréséhez",
- "Password to access »%s«" : "Jelszó a(z) „%s” eléréséhez",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s megosztotta Önnel a(z) „%2$s” elemet, és a következőt fűzi hozzá:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s megosztotta Önnel a(z) „%2$s” elemet, és a következőt fűzi hozzá",
- "»%s« added a note to a file shared with you" : "„%s” megjegyzést fűzött az Önnel megosztott fájlhoz",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Most osztotta meg a(z) „%1$s” elemet a következővel: %2$s. A megosztást már el lett küldve a címzettnek. A(z) %3$s rendszergazdája által meghatározott biztonsági házirend miatt minden megosztást jelszóval kell védeni, és nem szabad közvetlenül a címzettnek elküldeni a jelszót. Ezért kézzel kell a jelszót továbbítania a címzettnek.",
- "Password to access »%1$s« shared by you with %2$s" : "Jelszó a(z) „%1$s” elem eléréséhez, amelyet %2$s osztott meg Önnel"
+ "Reply to initiator" : "Válasz a kezdeményezőnek"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/hu.json b/apps/sharebymail/l10n/hu.json
index 7de070dcf22..6def5b9b95a 100644
--- a/apps/sharebymail/l10n/hu.json
+++ b/apps/sharebymail/l10n/hu.json
@@ -26,17 +26,6 @@
"Share provider which allows you to share files by mail" : "Megosztási szolgáltató, amely lehetővé teszi fájlok e-mailben történő megosztását",
"Unable to update share by mail config" : "Az e-mailes megosztás beállításai nem frissíthetők",
"Send password by mail" : "Jelszó kiküldése e-mailben",
- "Reply to initiator" : "Válasz a kezdeményezőnek",
- "%1$s shared »%2$s« with you" : "%1$s megosztotta Önnel a következőt: „%2$s”",
- "%1$s shared »%2$s« with you." : "%1$s megosztotta Önnel a következőt: „%2$s”.",
- "Click the button below to open it." : "Kattintson a lenti gombra a megnyitásához.",
- "Open »%s«" : "„%s” megnyitása",
- "Password to access »%1$s« shared to you by %2$s" : "Jelszó a(z) %2$s által megosztott „%1$s” eléréséhez",
- "Password to access »%s«" : "Jelszó a(z) „%s” eléréséhez",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s megosztotta Önnel a(z) „%2$s” elemet, és a következőt fűzi hozzá:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s megosztotta Önnel a(z) „%2$s” elemet, és a következőt fűzi hozzá",
- "»%s« added a note to a file shared with you" : "„%s” megjegyzést fűzött az Önnel megosztott fájlhoz",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Most osztotta meg a(z) „%1$s” elemet a következővel: %2$s. A megosztást már el lett küldve a címzettnek. A(z) %3$s rendszergazdája által meghatározott biztonsági házirend miatt minden megosztást jelszóval kell védeni, és nem szabad közvetlenül a címzettnek elküldeni a jelszót. Ezért kézzel kell a jelszót továbbítania a címzettnek.",
- "Password to access »%1$s« shared by you with %2$s" : "Jelszó a(z) „%1$s” elem eléréséhez, amelyet %2$s osztott meg Önnel"
+ "Reply to initiator" : "Válasz a kezdeményezőnek"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ia.js b/apps/sharebymail/l10n/ia.js
deleted file mode 100644
index cae560e0c20..00000000000
--- a/apps/sharebymail/l10n/ia.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Compartite con %1$s",
- "Shared with {email}" : "Compartite con {email}",
- "Shared with %1$s by %2$s" : "Compartite con %1$s per %2$s",
- "Shared with {email} by {actor}" : "Compartite con {email} per {actor}",
- "You shared %1$s with %2$s by mail" : "Tu compartiva %1$s con %2$s per e-posta",
- "You shared {file} with {email} by mail" : "Tu compartiva {file} con {email} per e-posta",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartiva %1$s con %2$s per e-posta",
- "{actor} shared {file} with {email} by mail" : "{actor} compartiva {file} con {email} per e-posta",
- "Sharing %s failed, this item is already shared with %s" : "Compartir %s falleva, iste elemento ja es compartite con %s",
- "Failed to send share by E-mail" : "Invio de compartite per e-posta falleva",
- "%s shared »%s« with you" : "%s compartiva »%s« con te",
- "%s shared »%s« with you on behalf of %s" : "%s compartiva »%s« con te in nomine de %s",
- "Failed to create the E-mail" : "Creation de E-Posta falleva",
- "Could not find share" : "Impossibile trovar le compartite",
- "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Holla,\n\n%s compartiva »%s« con te in nomine de %s.\n\n%s\n\n",
- "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Holla,\n\n%s compartiva »%s« con te.\n\n%s\n\n",
- "Cheers!" : "Congratulationes!",
- "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Holla,<br><br>%s compartiva <a href=\"%s\">%s</a> con te in nomine de %s.<br><br>",
- "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Holla,<br><br>%s compartiva <a href=\"%s\">%s</a> con te.<br><br>"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/ia.json b/apps/sharebymail/l10n/ia.json
deleted file mode 100644
index ccb58d80cc1..00000000000
--- a/apps/sharebymail/l10n/ia.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Compartite con %1$s",
- "Shared with {email}" : "Compartite con {email}",
- "Shared with %1$s by %2$s" : "Compartite con %1$s per %2$s",
- "Shared with {email} by {actor}" : "Compartite con {email} per {actor}",
- "You shared %1$s with %2$s by mail" : "Tu compartiva %1$s con %2$s per e-posta",
- "You shared {file} with {email} by mail" : "Tu compartiva {file} con {email} per e-posta",
- "%3$s shared %1$s with %2$s by mail" : "%3$s compartiva %1$s con %2$s per e-posta",
- "{actor} shared {file} with {email} by mail" : "{actor} compartiva {file} con {email} per e-posta",
- "Sharing %s failed, this item is already shared with %s" : "Compartir %s falleva, iste elemento ja es compartite con %s",
- "Failed to send share by E-mail" : "Invio de compartite per e-posta falleva",
- "%s shared »%s« with you" : "%s compartiva »%s« con te",
- "%s shared »%s« with you on behalf of %s" : "%s compartiva »%s« con te in nomine de %s",
- "Failed to create the E-mail" : "Creation de E-Posta falleva",
- "Could not find share" : "Impossibile trovar le compartite",
- "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Holla,\n\n%s compartiva »%s« con te in nomine de %s.\n\n%s\n\n",
- "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Holla,\n\n%s compartiva »%s« con te.\n\n%s\n\n",
- "Cheers!" : "Congratulationes!",
- "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Holla,<br><br>%s compartiva <a href=\"%s\">%s</a> con te in nomine de %s.<br><br>",
- "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Holla,<br><br>%s compartiva <a href=\"%s\">%s</a> con te.<br><br>"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/id.js b/apps/sharebymail/l10n/id.js
deleted file mode 100644
index 60e6a7eb561..00000000000
--- a/apps/sharebymail/l10n/id.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "Berbagi dengan %1$s",
- "Shared with {email}" : "Berbagi dengan {email}",
- "Shared with %1$s by %2$s" : "Berbagi dengan %1$s oleh %2$s",
- "Shared with {email} by {actor}" : "Berbagi dengan {email} oleh {actor}",
- "You shared %1$s with %2$s by mail" : "Anda membagikan %1$s dengan %2$s lewat surel",
- "You shared {file} with {email} by mail" : "Anda membagikan {file} dengan {email} lewat surel",
- "%3$s shared %1$s with %2$s by mail" : "%3$s membagikan %1$s dengan %2$s lewat surel",
- "{actor} shared {file} with {email} by mail" : "{actor} membagikan {file} dengan {email} lewat surel",
- "Sharing %s failed, this item is already shared with %s" : "Berbagi %s gagal, item ini telah dibagikan dengan %s",
- "Failed to send share by E-mail" : "Gagal untuk mengirim berbagi lewat surel",
- "%s shared »%s« with you" : "%s membagikan »%s« dengan anda",
- "%s shared »%s« with you on behalf of %s" : "%s membagikan »%s« dengan anda atas nama %s",
- "Failed to create the E-mail" : "Gagal untuk membuat surel",
- "Could not find share" : "Tidak menemukan berbagi",
- "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hai bro,\n\n%s membagikan »%s« dengan anda atas nama %s.\n\n%s\n\n",
- "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hai bro,\n\n%s membagikan »%s« dengan anda.\n\n%s\n\n",
- "Cheers!" : "Senyum!",
- "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hai bro,<br><br>%s membagikan <a href=\"%s\">%s</a> dengan anda atas nama %s.<br><br>",
- "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hai bro,<br><br>%s membagikan <a href=\"%s\">%s</a> dengan anda.<br><br>"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/sharebymail/l10n/id.json b/apps/sharebymail/l10n/id.json
deleted file mode 100644
index 97e987101cb..00000000000
--- a/apps/sharebymail/l10n/id.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "Berbagi dengan %1$s",
- "Shared with {email}" : "Berbagi dengan {email}",
- "Shared with %1$s by %2$s" : "Berbagi dengan %1$s oleh %2$s",
- "Shared with {email} by {actor}" : "Berbagi dengan {email} oleh {actor}",
- "You shared %1$s with %2$s by mail" : "Anda membagikan %1$s dengan %2$s lewat surel",
- "You shared {file} with {email} by mail" : "Anda membagikan {file} dengan {email} lewat surel",
- "%3$s shared %1$s with %2$s by mail" : "%3$s membagikan %1$s dengan %2$s lewat surel",
- "{actor} shared {file} with {email} by mail" : "{actor} membagikan {file} dengan {email} lewat surel",
- "Sharing %s failed, this item is already shared with %s" : "Berbagi %s gagal, item ini telah dibagikan dengan %s",
- "Failed to send share by E-mail" : "Gagal untuk mengirim berbagi lewat surel",
- "%s shared »%s« with you" : "%s membagikan »%s« dengan anda",
- "%s shared »%s« with you on behalf of %s" : "%s membagikan »%s« dengan anda atas nama %s",
- "Failed to create the E-mail" : "Gagal untuk membuat surel",
- "Could not find share" : "Tidak menemukan berbagi",
- "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hai bro,\n\n%s membagikan »%s« dengan anda atas nama %s.\n\n%s\n\n",
- "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hai bro,\n\n%s membagikan »%s« dengan anda.\n\n%s\n\n",
- "Cheers!" : "Senyum!",
- "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hai bro,<br><br>%s membagikan <a href=\"%s\">%s</a> dengan anda atas nama %s.<br><br>",
- "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hai bro,<br><br>%s membagikan <a href=\"%s\">%s</a> dengan anda.<br><br>"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/is.js b/apps/sharebymail/l10n/is.js
index 571cd277367..12b4b2ac202 100644
--- a/apps/sharebymail/l10n/is.js
+++ b/apps/sharebymail/l10n/is.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Get ekki uppfært stillingar á deilingu með tölvupósti",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Gerir notendum kleift að deila sérsniðnum tengli á skrá eða möppu með því að setja inn tölvupóstfang.",
"Send password by mail" : "Senda lykilorð með pósti",
- "Reply to initiator" : "Svara til upphafsaðila",
- "%1$s shared »%2$s« with you" : "%1$s deildi »%2$s« með þér",
- "%1$s shared »%2$s« with you." : "%1$s deildi »%2$s« með þér.",
- "Click the button below to open it." : "Smelltu á tengilinn hér fyrir neðan til að opna það.",
- "Open »%s«" : "Opna »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Lykilorði fyrir aðgang að »%1$s« var deilt með þér af %2$s",
- "Password to access »%s«" : "Lykilorð fyrir aðgang að »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s deildi »%2$s« með þér og vill bæta við:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s deildi »%2$s« með þér og vill bæta við",
- "»%s« added a note to a file shared with you" : "»%s« bætti minnispunkti við skrá sem deilt er með þér",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Þú varst í þessu að deila »%1$s« með %2$s. Sameignin var þegar send til viðtakandans. Vegna öryggisskilmála sem skilgreindir hafa verið af kerfisstjóra %3$s þarf hver sameign að vera varin með lykilorði og að ekki er leyfilegt að senda það lykilorð beint til viðtakandans. Því er nauðsynlegt að þú homir lykilorðinu beint til sjálfs viðtakandans.",
- "Password to access »%1$s« shared by you with %2$s" : "Lykilorði fyrir aðgang að »%1$s« var deilt af þér með %2$s"
+ "Reply to initiator" : "Svara til upphafsaðila"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/sharebymail/l10n/is.json b/apps/sharebymail/l10n/is.json
index 8e5d08c5aa4..7e722bf842c 100644
--- a/apps/sharebymail/l10n/is.json
+++ b/apps/sharebymail/l10n/is.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Get ekki uppfært stillingar á deilingu með tölvupósti",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Gerir notendum kleift að deila sérsniðnum tengli á skrá eða möppu með því að setja inn tölvupóstfang.",
"Send password by mail" : "Senda lykilorð með pósti",
- "Reply to initiator" : "Svara til upphafsaðila",
- "%1$s shared »%2$s« with you" : "%1$s deildi »%2$s« með þér",
- "%1$s shared »%2$s« with you." : "%1$s deildi »%2$s« með þér.",
- "Click the button below to open it." : "Smelltu á tengilinn hér fyrir neðan til að opna það.",
- "Open »%s«" : "Opna »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Lykilorði fyrir aðgang að »%1$s« var deilt með þér af %2$s",
- "Password to access »%s«" : "Lykilorð fyrir aðgang að »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s deildi »%2$s« með þér og vill bæta við:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s deildi »%2$s« með þér og vill bæta við",
- "»%s« added a note to a file shared with you" : "»%s« bætti minnispunkti við skrá sem deilt er með þér",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Þú varst í þessu að deila »%1$s« með %2$s. Sameignin var þegar send til viðtakandans. Vegna öryggisskilmála sem skilgreindir hafa verið af kerfisstjóra %3$s þarf hver sameign að vera varin með lykilorði og að ekki er leyfilegt að senda það lykilorð beint til viðtakandans. Því er nauðsynlegt að þú homir lykilorðinu beint til sjálfs viðtakandans.",
- "Password to access »%1$s« shared by you with %2$s" : "Lykilorði fyrir aðgang að »%1$s« var deilt af þér með %2$s"
+ "Reply to initiator" : "Svara til upphafsaðila"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/it.js b/apps/sharebymail/l10n/it.js
index 98e5802e05d..699537a6595 100644
--- a/apps/sharebymail/l10n/it.js
+++ b/apps/sharebymail/l10n/it.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Impossibile aggiornare la configurazione della condivisione per email",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Consente alle persone di condividere un collegamento personalizzato a un file o a una cartella inserendo un indirizzo e-mail.",
"Send password by mail" : "Invia password tramite posta",
- "Reply to initiator" : "Rispondi all'iniziatore",
- "%1$s shared »%2$s« with you" : "%1$s ha condiviso «%2$s» con te",
- "%1$s shared »%2$s« with you." : "%1$s ha condiviso «%2$s» con te.",
- "Click the button below to open it." : "Fai clic sul pulsante sotto per aprirlo.",
- "Open »%s«" : "Apri «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "Password per accedere a «%1$s» condivisa con te da %2$s",
- "Password to access »%s«" : "Password per accedere a «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s ha condiviso «%2$s» con te e vuole aggiungere:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s ha condiviso «%2$s» con te e vuole aggiungere",
- "»%s« added a note to a file shared with you" : "«%s» ha aggiunto una nota a un file condiviso con te",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Hai appena condiviso «%1$s» con %2$s. La condivisione è già stata inviata al destinatario. A causa dei criteri di sicurezza definiti dall'amministratore di %3$s, ogni condivisione deve essere protetta con password e non è consentito inviare la password direttamente al destinatario. Per questo motivo, devi inoltrare la password manualmente al destinatario.",
- "Password to access »%1$s« shared by you with %2$s" : "Password per accedere a «%1$s» condivisa da te con %2$s"
+ "Reply to initiator" : "Rispondi all'iniziatore"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/sharebymail/l10n/it.json b/apps/sharebymail/l10n/it.json
index cc600cd1452..e75e14c7f42 100644
--- a/apps/sharebymail/l10n/it.json
+++ b/apps/sharebymail/l10n/it.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Impossibile aggiornare la configurazione della condivisione per email",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Consente alle persone di condividere un collegamento personalizzato a un file o a una cartella inserendo un indirizzo e-mail.",
"Send password by mail" : "Invia password tramite posta",
- "Reply to initiator" : "Rispondi all'iniziatore",
- "%1$s shared »%2$s« with you" : "%1$s ha condiviso «%2$s» con te",
- "%1$s shared »%2$s« with you." : "%1$s ha condiviso «%2$s» con te.",
- "Click the button below to open it." : "Fai clic sul pulsante sotto per aprirlo.",
- "Open »%s«" : "Apri «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "Password per accedere a «%1$s» condivisa con te da %2$s",
- "Password to access »%s«" : "Password per accedere a «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s ha condiviso «%2$s» con te e vuole aggiungere:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s ha condiviso «%2$s» con te e vuole aggiungere",
- "»%s« added a note to a file shared with you" : "«%s» ha aggiunto una nota a un file condiviso con te",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Hai appena condiviso «%1$s» con %2$s. La condivisione è già stata inviata al destinatario. A causa dei criteri di sicurezza definiti dall'amministratore di %3$s, ogni condivisione deve essere protetta con password e non è consentito inviare la password direttamente al destinatario. Per questo motivo, devi inoltrare la password manualmente al destinatario.",
- "Password to access »%1$s« shared by you with %2$s" : "Password per accedere a «%1$s» condivisa da te con %2$s"
+ "Reply to initiator" : "Rispondi all'iniziatore"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ja.js b/apps/sharebymail/l10n/ja.js
index cc6001a68ac..943501fd186 100644
--- a/apps/sharebymail/l10n/ja.js
+++ b/apps/sharebymail/l10n/ja.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "メール共有の設定の更新に失敗しました",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "ユーザーがメールアドレスを使ってファイルやフォルダーへの個人リンクを共有することを許可します。",
"Send password by mail" : "メールでパスワード送信",
- "Reply to initiator" : "返信先を共有開始者にする",
- "%1$s shared »%2$s« with you" : "%1$sが あなたと >> %2$s <<を共有しました",
- "%1$s shared »%2$s« with you." : "%1$sが あなたと >> %2$s <<を共有しました。",
- "Click the button below to open it." : "以下のリンクをクリックすると開きます。",
- "Open »%s«" : "»%s«を開く",
- "Password to access »%1$s« shared to you by %2$s" : "»%1$s«への共有アクセスのパスワードが %2$s から共有されました",
- "Password to access »%s«" : "»%s« にアクセスするパスワード",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s さんが »%2$s« にノートを追加しました。",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s さんが »%2$s« にノートを追加しました。",
- "»%s« added a note to a file shared with you" : "»%s« あなたと共有しているファイルにノートを追加しました。 ",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%1$sを%2$sと共有しました。共有は受信者に送信されています。セキュリティポリシーにより%3$sの管理者が共有はパスワードで保護されるべきで、直接受信者に送信するべきではないと定めている場合、手動で受信者にメールを転送する必要があります。",
- "Password to access »%1$s« shared by you with %2$s" : "%2$s と共有した »%1$s« にアクセスするパスワード"
+ "Reply to initiator" : "返信先を共有開始者にする"
},
"nplurals=1; plural=0;");
diff --git a/apps/sharebymail/l10n/ja.json b/apps/sharebymail/l10n/ja.json
index ce06b801f6b..6030aa64df2 100644
--- a/apps/sharebymail/l10n/ja.json
+++ b/apps/sharebymail/l10n/ja.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "メール共有の設定の更新に失敗しました",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "ユーザーがメールアドレスを使ってファイルやフォルダーへの個人リンクを共有することを許可します。",
"Send password by mail" : "メールでパスワード送信",
- "Reply to initiator" : "返信先を共有開始者にする",
- "%1$s shared »%2$s« with you" : "%1$sが あなたと >> %2$s <<を共有しました",
- "%1$s shared »%2$s« with you." : "%1$sが あなたと >> %2$s <<を共有しました。",
- "Click the button below to open it." : "以下のリンクをクリックすると開きます。",
- "Open »%s«" : "»%s«を開く",
- "Password to access »%1$s« shared to you by %2$s" : "»%1$s«への共有アクセスのパスワードが %2$s から共有されました",
- "Password to access »%s«" : "»%s« にアクセスするパスワード",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s さんが »%2$s« にノートを追加しました。",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s さんが »%2$s« にノートを追加しました。",
- "»%s« added a note to a file shared with you" : "»%s« あなたと共有しているファイルにノートを追加しました。 ",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%1$sを%2$sと共有しました。共有は受信者に送信されています。セキュリティポリシーにより%3$sの管理者が共有はパスワードで保護されるべきで、直接受信者に送信するべきではないと定めている場合、手動で受信者にメールを転送する必要があります。",
- "Password to access »%1$s« shared by you with %2$s" : "%2$s と共有した »%1$s« にアクセスするパスワード"
+ "Reply to initiator" : "返信先を共有開始者にする"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ka.js b/apps/sharebymail/l10n/ka.js
index f622893e3d3..e2e9800ef24 100644
--- a/apps/sharebymail/l10n/ka.js
+++ b/apps/sharebymail/l10n/ka.js
@@ -26,17 +26,6 @@ OC.L10N.register(
"Share provider which allows you to share files by mail" : "Share provider which allows you to share files by mail",
"Unable to update share by mail config" : "Unable to update share by mail config",
"Send password by mail" : "Send password by mail",
- "Reply to initiator" : "Reply to initiator",
- "%1$s shared »%2$s« with you" : "%1$s shared »%2$s« with you",
- "%1$s shared »%2$s« with you." : "%1$s shared »%2$s« with you.",
- "Click the button below to open it." : "Click the button below to open it.",
- "Open »%s«" : "Open »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Password to access »%1$s« shared to you by %2$s",
- "Password to access »%s«" : "Password to access »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s shared »%2$s« with you and wants to add:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
- "»%s« added a note to a file shared with you" : "»%s« added a note to a file shared with you",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.",
- "Password to access »%1$s« shared by you with %2$s" : "Password to access »%1$s« shared by you with %2$s"
+ "Reply to initiator" : "Reply to initiator"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/sharebymail/l10n/ka.json b/apps/sharebymail/l10n/ka.json
index 69c041542ae..2f19b89cce8 100644
--- a/apps/sharebymail/l10n/ka.json
+++ b/apps/sharebymail/l10n/ka.json
@@ -24,17 +24,6 @@
"Share provider which allows you to share files by mail" : "Share provider which allows you to share files by mail",
"Unable to update share by mail config" : "Unable to update share by mail config",
"Send password by mail" : "Send password by mail",
- "Reply to initiator" : "Reply to initiator",
- "%1$s shared »%2$s« with you" : "%1$s shared »%2$s« with you",
- "%1$s shared »%2$s« with you." : "%1$s shared »%2$s« with you.",
- "Click the button below to open it." : "Click the button below to open it.",
- "Open »%s«" : "Open »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Password to access »%1$s« shared to you by %2$s",
- "Password to access »%s«" : "Password to access »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s shared »%2$s« with you and wants to add:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
- "»%s« added a note to a file shared with you" : "»%s« added a note to a file shared with you",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.",
- "Password to access »%1$s« shared by you with %2$s" : "Password to access »%1$s« shared by you with %2$s"
+ "Reply to initiator" : "Reply to initiator"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ka_GE.js b/apps/sharebymail/l10n/ka_GE.js
deleted file mode 100644
index 43c580b4f60..00000000000
--- a/apps/sharebymail/l10n/ka_GE.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "გაზიარებულია მომხმარებელთან %1$s",
- "Shared with {email}" : "გაზიარებულია მისამართთან {email}",
- "Shared with %1$s by %2$s" : "%2$s მომხმარებელმა გააზიარა მომხმარებელთან %1$s",
- "Shared with {email} by {actor}" : "{actor} მომხმარებელმა გააზიარა მისამართთან {email}",
- "Password for mail share sent to %1$s" : "პაროლი საფოსტო გაზიარებისთვის გაიგზავნა მისამართზე %1$s",
- "Password for mail share sent to {email}" : "პაროლი საფოსტო გაზიარებისთვის გაიგზავნა მისამართზე {email}",
- "Password for mail share sent to you" : "საფოსტო გაზიარებისთვის გამოგეგზავნათ პაროლი",
- "You shared %1$s with %2$s by mail" : "თქვენ %2$s ფოსტით გააზიარეთ მისამართთან %1$s",
- "You shared {file} with {email} by mail" : "თქვენ {file} ფოსტით გააზიარეთ მისამართთან {email}",
- "%3$s shared %1$s with %2$s by mail" : "%3$s მომხმარებელმა ფოსტით გააზიარა %1$s მისამართთან %2$s",
- "{actor} shared {file} with {email} by mail" : "{actor} მომხმარებელმა ფოსტით გააზიარა {file} მისამართთან {email}",
- "Password to access %1$s was sent to %2s" : "პაროლი %1$s წვდომისთვის გაეგზავანა მისამართს %2s",
- "Password to access {file} was sent to {email}" : "პაროლი {file} წვდომისთვის გაეგზავნა მისამართს {email}",
- "Password to access %1$s was sent to you" : "გამოგეგზავნათ პაროლი %1$s წვდომისთვის",
- "Password to access {file} was sent to you" : "პაროლი {file} წვდომისთვის გამოგეგზავნათ",
- "Share by mail" : "გაზიარება ელ-ფოსტით",
- "Failed to send share by email" : "საოფსტო გაზიარების გაგზავნა ვერ მოხერხდა",
- "Click the button below to open it." : "გასახსნელად დააწკაპუნეთ ქვემოთ მოცემულ ღილაკს.",
- "Open »%s«" : "»%s«-ის გახსნა",
- "Password to access »%s«" : "პაროლი წვდომისთვის »%s«",
- "You can choose a different password at any time in the share dialog." : "გაზიარების დიალოგის მეშვეობით, ნებისმიერ დროს შეგიძლიათ აირჩიოთ სხვა პაროლი.",
- "Could not find share" : "გაზიარება ვერ იქნა ნაპოვნი",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "მიეცით უფლება მომხმარებლებს ელ-მისამართში მოთავსებით, ფაილზე ან დირექტორიაზე გააზიარონ პერსონალიზირებული ბმულები",
- "Send password by mail" : "პაროლის გაგზავნა ფოსტით",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "ავტო-გენერირებულ პაროლს ვერ გიგზავნით. გთხოვთ პირად პარამეტრებში დააყენოთ სწორი ელ-ფოსტის მისამართი და სცადოთ ახლიდან.",
- "Enforce password protection" : "პროლით დაცვის იძულება"
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/sharebymail/l10n/ka_GE.json b/apps/sharebymail/l10n/ka_GE.json
deleted file mode 100644
index 942600852d7..00000000000
--- a/apps/sharebymail/l10n/ka_GE.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "გაზიარებულია მომხმარებელთან %1$s",
- "Shared with {email}" : "გაზიარებულია მისამართთან {email}",
- "Shared with %1$s by %2$s" : "%2$s მომხმარებელმა გააზიარა მომხმარებელთან %1$s",
- "Shared with {email} by {actor}" : "{actor} მომხმარებელმა გააზიარა მისამართთან {email}",
- "Password for mail share sent to %1$s" : "პაროლი საფოსტო გაზიარებისთვის გაიგზავნა მისამართზე %1$s",
- "Password for mail share sent to {email}" : "პაროლი საფოსტო გაზიარებისთვის გაიგზავნა მისამართზე {email}",
- "Password for mail share sent to you" : "საფოსტო გაზიარებისთვის გამოგეგზავნათ პაროლი",
- "You shared %1$s with %2$s by mail" : "თქვენ %2$s ფოსტით გააზიარეთ მისამართთან %1$s",
- "You shared {file} with {email} by mail" : "თქვენ {file} ფოსტით გააზიარეთ მისამართთან {email}",
- "%3$s shared %1$s with %2$s by mail" : "%3$s მომხმარებელმა ფოსტით გააზიარა %1$s მისამართთან %2$s",
- "{actor} shared {file} with {email} by mail" : "{actor} მომხმარებელმა ფოსტით გააზიარა {file} მისამართთან {email}",
- "Password to access %1$s was sent to %2s" : "პაროლი %1$s წვდომისთვის გაეგზავანა მისამართს %2s",
- "Password to access {file} was sent to {email}" : "პაროლი {file} წვდომისთვის გაეგზავნა მისამართს {email}",
- "Password to access %1$s was sent to you" : "გამოგეგზავნათ პაროლი %1$s წვდომისთვის",
- "Password to access {file} was sent to you" : "პაროლი {file} წვდომისთვის გამოგეგზავნათ",
- "Share by mail" : "გაზიარება ელ-ფოსტით",
- "Failed to send share by email" : "საოფსტო გაზიარების გაგზავნა ვერ მოხერხდა",
- "Click the button below to open it." : "გასახსნელად დააწკაპუნეთ ქვემოთ მოცემულ ღილაკს.",
- "Open »%s«" : "»%s«-ის გახსნა",
- "Password to access »%s«" : "პაროლი წვდომისთვის »%s«",
- "You can choose a different password at any time in the share dialog." : "გაზიარების დიალოგის მეშვეობით, ნებისმიერ დროს შეგიძლიათ აირჩიოთ სხვა პაროლი.",
- "Could not find share" : "გაზიარება ვერ იქნა ნაპოვნი",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "მიეცით უფლება მომხმარებლებს ელ-მისამართში მოთავსებით, ფაილზე ან დირექტორიაზე გააზიარონ პერსონალიზირებული ბმულები",
- "Send password by mail" : "პაროლის გაგზავნა ფოსტით",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "ავტო-გენერირებულ პაროლს ვერ გიგზავნით. გთხოვთ პირად პარამეტრებში დააყენოთ სწორი ელ-ფოსტის მისამართი და სცადოთ ახლიდან.",
- "Enforce password protection" : "პროლით დაცვის იძულება"
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ko.js b/apps/sharebymail/l10n/ko.js
deleted file mode 100644
index 92f0d2dd6c8..00000000000
--- a/apps/sharebymail/l10n/ko.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with {email}" : "{email} 님과 공유함",
- "Shared with {email} by {actor}" : "{actor} 님이 {email} 님과 공유함",
- "Password for mail share sent to {email}" : "이메일 공유 암호를 {email}(으)로 보냄",
- "Password for mail share sent to you" : "이메일 공유 암호를 내게 보냄",
- "You shared {file} with {email} by mail" : "{email} 님과 {file}을(를) 이메일로 공유함",
- "{actor} shared {file} with {email} by mail" : "{actor} 님이 {email} 님과 {file}을(를) 이메일로 공유함",
- "Password to access {file} was sent to {email}" : "{file}에 접근할 수 있는 암호를 {email}(으)로 보냄",
- "Password to access {file} was sent to you" : "{file}에 접근할 수 있는 암호를 내게 보냄",
- "Share by mail" : "이메일로 공유",
- "Sharing %1$s failed, because this item is already shared with the account %2$s" : "%1$s을(를) 공유할 수 없습니다. 이 항목을 이미 %2$s 계정과 공유하고 있습니다",
- "Failed to send share by email" : "이메일로 공유를 보낼 수 없음",
- "Note:" : "메모:",
- "%1$s via %2$s" : "%1$s(%2$s 경유)",
- "It is protected with the following password:" : "다음 암호로 보호됩니다:",
- "This is the password:" : "암호:",
- "You can choose a different password at any time in the share dialog." : "공유 대화 상자에서 언제든지 다른 암호를 선택할 수 있습니다.",
- "Could not find share" : "공유를 찾을 수 없음",
- "Send password by mail" : "이메일로 암호 보내기",
- "%1$s shared »%2$s« with you" : "%1$s 님이 \"%2$s\" 항목을 공유했습니다",
- "%1$s shared »%2$s« with you." : "%1$s 님이 »%2$s« 항목을 공유했습니다",
- "Click the button below to open it." : "아래 단추를 눌러서 열 수 있습니다.",
- "Open »%s«" : "%s 열기",
- "Password to access »%s«" : "%s에 접근할 수 있는 암호",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s님이 %2$s을(를) 당신과 공유하며, 다음을 추가하고자 함:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s님이 %2$s을(를) 당신과 공유하며 다음을 추가하고자 함",
- "»%s« added a note to a file shared with you" : "%s님이 당신과 공유한 파일에 메모를 추가함"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/sharebymail/l10n/ko.json b/apps/sharebymail/l10n/ko.json
deleted file mode 100644
index 5ed6e8d402e..00000000000
--- a/apps/sharebymail/l10n/ko.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with {email}" : "{email} 님과 공유함",
- "Shared with {email} by {actor}" : "{actor} 님이 {email} 님과 공유함",
- "Password for mail share sent to {email}" : "이메일 공유 암호를 {email}(으)로 보냄",
- "Password for mail share sent to you" : "이메일 공유 암호를 내게 보냄",
- "You shared {file} with {email} by mail" : "{email} 님과 {file}을(를) 이메일로 공유함",
- "{actor} shared {file} with {email} by mail" : "{actor} 님이 {email} 님과 {file}을(를) 이메일로 공유함",
- "Password to access {file} was sent to {email}" : "{file}에 접근할 수 있는 암호를 {email}(으)로 보냄",
- "Password to access {file} was sent to you" : "{file}에 접근할 수 있는 암호를 내게 보냄",
- "Share by mail" : "이메일로 공유",
- "Sharing %1$s failed, because this item is already shared with the account %2$s" : "%1$s을(를) 공유할 수 없습니다. 이 항목을 이미 %2$s 계정과 공유하고 있습니다",
- "Failed to send share by email" : "이메일로 공유를 보낼 수 없음",
- "Note:" : "메모:",
- "%1$s via %2$s" : "%1$s(%2$s 경유)",
- "It is protected with the following password:" : "다음 암호로 보호됩니다:",
- "This is the password:" : "암호:",
- "You can choose a different password at any time in the share dialog." : "공유 대화 상자에서 언제든지 다른 암호를 선택할 수 있습니다.",
- "Could not find share" : "공유를 찾을 수 없음",
- "Send password by mail" : "이메일로 암호 보내기",
- "%1$s shared »%2$s« with you" : "%1$s 님이 \"%2$s\" 항목을 공유했습니다",
- "%1$s shared »%2$s« with you." : "%1$s 님이 »%2$s« 항목을 공유했습니다",
- "Click the button below to open it." : "아래 단추를 눌러서 열 수 있습니다.",
- "Open »%s«" : "%s 열기",
- "Password to access »%s«" : "%s에 접근할 수 있는 암호",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s님이 %2$s을(를) 당신과 공유하며, 다음을 추가하고자 함:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s님이 %2$s을(를) 당신과 공유하며 다음을 추가하고자 함",
- "»%s« added a note to a file shared with you" : "%s님이 당신과 공유한 파일에 메모를 추가함"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/lt_LT.js b/apps/sharebymail/l10n/lt_LT.js
index e66e5cb26a5..79f32a984cd 100644
--- a/apps/sharebymail/l10n/lt_LT.js
+++ b/apps/sharebymail/l10n/lt_LT.js
@@ -24,17 +24,6 @@ OC.L10N.register(
"Could not find share" : "Nepavyko rasti viešinio",
"Share provider which allows you to share files by mail" : "Bendrinimo teikėjas, kuris leidžia bendrinti failus el. paštu",
"Send password by mail" : "Siųsti slaptažodį el. paštu",
- "Reply to initiator" : "Atsakyti iniciatoriui",
- "%1$s shared »%2$s« with you" : "%1$s pasidalino „%2$s“ su jumis",
- "%1$s shared »%2$s« with you." : "%1$s pasidalino „%2$s“ su jumis.",
- "Click the button below to open it." : "Norėdami atverti failą, spustelėkite žemiau esantį mygtuką.",
- "Open »%s«" : "Atverti „%s“",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s pasidalino slaptažodžiu, reikalingu atverti „%1$s“",
- "Password to access »%s«" : "Slaptažodis, skirtas prieigai prie „%s“",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s pasidalino „%2$s“ su jumis ir parašė pastabą:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s pasidalino „%2$s“ su jumis ir parašė pastabą",
- "»%s« added a note to a file shared with you" : "„%s“ parašė pastabą su jumis pasidalintam failui",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ką tik su %2$s pradėjote bendrinti „%1$s“. Viešinys jau išsiųstas gavėjui. Dėl %3$s administratoriaus apibrėžtų saugumo politikų, kiekvienas viešinys turi būti apsaugotas slaptažodžiu, o slaptažodžio neleidžiama siųsti tiesiogiai gavėjui. Todėl turėsite persiųsti slaptažodį gavėjui rankiniu būdu.",
- "Password to access »%1$s« shared by you with %2$s" : "Pasidalinote slaptažodžiu, reikalingu atverti „%1$s“ su %2$s"
+ "Reply to initiator" : "Atsakyti iniciatoriui"
},
"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/sharebymail/l10n/lt_LT.json b/apps/sharebymail/l10n/lt_LT.json
index c2f816c55eb..ec315d578ec 100644
--- a/apps/sharebymail/l10n/lt_LT.json
+++ b/apps/sharebymail/l10n/lt_LT.json
@@ -22,17 +22,6 @@
"Could not find share" : "Nepavyko rasti viešinio",
"Share provider which allows you to share files by mail" : "Bendrinimo teikėjas, kuris leidžia bendrinti failus el. paštu",
"Send password by mail" : "Siųsti slaptažodį el. paštu",
- "Reply to initiator" : "Atsakyti iniciatoriui",
- "%1$s shared »%2$s« with you" : "%1$s pasidalino „%2$s“ su jumis",
- "%1$s shared »%2$s« with you." : "%1$s pasidalino „%2$s“ su jumis.",
- "Click the button below to open it." : "Norėdami atverti failą, spustelėkite žemiau esantį mygtuką.",
- "Open »%s«" : "Atverti „%s“",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s pasidalino slaptažodžiu, reikalingu atverti „%1$s“",
- "Password to access »%s«" : "Slaptažodis, skirtas prieigai prie „%s“",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s pasidalino „%2$s“ su jumis ir parašė pastabą:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s pasidalino „%2$s“ su jumis ir parašė pastabą",
- "»%s« added a note to a file shared with you" : "„%s“ parašė pastabą su jumis pasidalintam failui",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ką tik su %2$s pradėjote bendrinti „%1$s“. Viešinys jau išsiųstas gavėjui. Dėl %3$s administratoriaus apibrėžtų saugumo politikų, kiekvienas viešinys turi būti apsaugotas slaptažodžiu, o slaptažodžio neleidžiama siųsti tiesiogiai gavėjui. Todėl turėsite persiųsti slaptažodį gavėjui rankiniu būdu.",
- "Password to access »%1$s« shared by you with %2$s" : "Pasidalinote slaptažodžiu, reikalingu atverti „%1$s“ su %2$s"
+ "Reply to initiator" : "Atsakyti iniciatoriui"
},"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/sharebymail/l10n/mk.js b/apps/sharebymail/l10n/mk.js
index 5ee3aedf39e..0214fc1ca2c 100644
--- a/apps/sharebymail/l10n/mk.js
+++ b/apps/sharebymail/l10n/mk.js
@@ -29,17 +29,6 @@ OC.L10N.register(
"Share provider which allows you to share files by mail" : "Провајдер за споделување кој дозволува споделување преки е-пошта",
"Unable to update share by mail config" : "Неможе да се ажурираат параметрите за споделување со е-пошта",
"Send password by mail" : "Испрати лозинка преку е-пошта",
- "Reply to initiator" : "Одговор до иницијаторот",
- "%1$s shared »%2$s« with you" : "%1$s сподели »%2$s« со вас",
- "%1$s shared »%2$s« with you." : "%1$s сподели »%2$s« со вас.",
- "Click the button below to open it." : "Кликнете на копчето подолу за да ја отворите.",
- "Open »%s«" : "Отвори »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Лозинката за пристап до »%1$s« е споделена со вас од %2$s",
- "Password to access »%s«" : "Лозинка за пристап »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s ја сподели папката »%2$s« и додаде:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s ја сподели папката »%2$s« и додаде",
- "»%s« added a note to a file shared with you" : "»%s« додаде белешка до датотеката што ја сподели со вас",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вие ја споделивте »%1$s« со %2$s. Споделувањето веќе е испратено до примачот. Поради безбедносни причини дефинирани од администраторот на %3$s секое споделување треба да биде заштитено со лозинка и лозинката не смее да се испраќаa директно на примачот. Затоа треба оваа лозинка да му ја препратите на примачот.",
- "Password to access »%1$s« shared by you with %2$s" : "Лозинката за пристап до »%1$s« ја споделивте со %2$s"
+ "Reply to initiator" : "Одговор до иницијаторот"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/sharebymail/l10n/mk.json b/apps/sharebymail/l10n/mk.json
index 77a550af146..5b8e3d45405 100644
--- a/apps/sharebymail/l10n/mk.json
+++ b/apps/sharebymail/l10n/mk.json
@@ -27,17 +27,6 @@
"Share provider which allows you to share files by mail" : "Провајдер за споделување кој дозволува споделување преки е-пошта",
"Unable to update share by mail config" : "Неможе да се ажурираат параметрите за споделување со е-пошта",
"Send password by mail" : "Испрати лозинка преку е-пошта",
- "Reply to initiator" : "Одговор до иницијаторот",
- "%1$s shared »%2$s« with you" : "%1$s сподели »%2$s« со вас",
- "%1$s shared »%2$s« with you." : "%1$s сподели »%2$s« со вас.",
- "Click the button below to open it." : "Кликнете на копчето подолу за да ја отворите.",
- "Open »%s«" : "Отвори »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Лозинката за пристап до »%1$s« е споделена со вас од %2$s",
- "Password to access »%s«" : "Лозинка за пристап »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s ја сподели папката »%2$s« и додаде:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s ја сподели папката »%2$s« и додаде",
- "»%s« added a note to a file shared with you" : "»%s« додаде белешка до датотеката што ја сподели со вас",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вие ја споделивте »%1$s« со %2$s. Споделувањето веќе е испратено до примачот. Поради безбедносни причини дефинирани од администраторот на %3$s секое споделување треба да биде заштитено со лозинка и лозинката не смее да се испраќаa директно на примачот. Затоа треба оваа лозинка да му ја препратите на примачот.",
- "Password to access »%1$s« shared by you with %2$s" : "Лозинката за пристап до »%1$s« ја споделивте со %2$s"
+ "Reply to initiator" : "Одговор до иницијаторот"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/nb.js b/apps/sharebymail/l10n/nb.js
index 11a1fa5cc86..bdac2e92692 100644
--- a/apps/sharebymail/l10n/nb.js
+++ b/apps/sharebymail/l10n/nb.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Kan ikke oppdatere deling via e-postkonfigurasjon",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Tillater personer å dele en personalisert lenke til en fil eller mappe ved å skrive inn en e-postadresse.",
"Send password by mail" : "Send passord via e-post",
- "Reply to initiator" : "Svar til initiativtaker",
- "%1$s shared »%2$s« with you" : "%1$s delte »%2$s« med deg",
- "%1$s shared »%2$s« with you." : "%1$s delte »%2$s« med deg.",
- "Click the button below to open it." : "Klikk på knappen nedenfor for å åpne den.",
- "Open »%s«" : "Åpne »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Passord for tilgang til »%1$s« delt med deg av %2$s",
- "Password to access »%s«" : "Passord for å benytte »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s delte »%2$s« med deg og vil legge til:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s delte »%2$s« med deg og vil legge til",
- "»%s« added a note to a file shared with you" : "»%s« la til en melding til en fil delt med deg",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du har nettopp delt »%1$s« med %2$s. Delingen er allerede sendt til mottakeren. På grunn av sikkerhetsreglene som er definert av administratoren for %3$s, må hver delt passord beskyttes og det er ikke tillatt å sende passordet direkte til mottakeren. Derfor må du videresende passordet manuelt til mottakeren.",
- "Password to access »%1$s« shared by you with %2$s" : "Passord for å få tilgang til »%1$s« delt av deg med %2$s"
+ "Reply to initiator" : "Svar til initiativtaker"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/nb.json b/apps/sharebymail/l10n/nb.json
index 7d1f334bdf4..6a8685ecb45 100644
--- a/apps/sharebymail/l10n/nb.json
+++ b/apps/sharebymail/l10n/nb.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Kan ikke oppdatere deling via e-postkonfigurasjon",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Tillater personer å dele en personalisert lenke til en fil eller mappe ved å skrive inn en e-postadresse.",
"Send password by mail" : "Send passord via e-post",
- "Reply to initiator" : "Svar til initiativtaker",
- "%1$s shared »%2$s« with you" : "%1$s delte »%2$s« med deg",
- "%1$s shared »%2$s« with you." : "%1$s delte »%2$s« med deg.",
- "Click the button below to open it." : "Klikk på knappen nedenfor for å åpne den.",
- "Open »%s«" : "Åpne »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Passord for tilgang til »%1$s« delt med deg av %2$s",
- "Password to access »%s«" : "Passord for å benytte »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s delte »%2$s« med deg og vil legge til:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s delte »%2$s« med deg og vil legge til",
- "»%s« added a note to a file shared with you" : "»%s« la til en melding til en fil delt med deg",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du har nettopp delt »%1$s« med %2$s. Delingen er allerede sendt til mottakeren. På grunn av sikkerhetsreglene som er definert av administratoren for %3$s, må hver delt passord beskyttes og det er ikke tillatt å sende passordet direkte til mottakeren. Derfor må du videresende passordet manuelt til mottakeren.",
- "Password to access »%1$s« shared by you with %2$s" : "Passord for å få tilgang til »%1$s« delt av deg med %2$s"
+ "Reply to initiator" : "Svar til initiativtaker"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/nl.js b/apps/sharebymail/l10n/nl.js
index 470fd09f192..c2b96958a58 100644
--- a/apps/sharebymail/l10n/nl.js
+++ b/apps/sharebymail/l10n/nl.js
@@ -14,28 +14,33 @@ OC.L10N.register(
"Password to access {file} was sent to {email}" : "Wachtwoord voor toegang tot {file} is gestuurd naar {email}",
"Password to access {file} was sent to you" : "Wachtwoord voor toegang tot {file} is naar je verstuurd",
"Share by mail" : "Delen via email",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "Het delen van%1$s is mislukt, omdat dit item al gedeeld wordt met het account %2$s",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "We kunnen je geen automatisch gegenereerd wachtwoord toesturen. Vermeld een geldig e-mailadres in je persoonlijke instellingen en probeer het nogmaals.",
"Failed to send share by email. Got an invalid email address" : "Het delen van het bestand per e-mail is mislukt. Ongeldig e-mailadres",
"Failed to send share by email" : "Versturen share per e-mail is mislukt",
+ "%1$s shared %2$s with you" : "%1$s deelde %2$s met jou",
"Note:" : "Notitie:",
+ "This share is valid until %s at midnight" : "Deze share is geldig tot %s middernacht",
+ "Expiration:" : "Vervaldatum:",
+ "Open %s" : "%s openen",
"%1$s via %2$s" : "%1$s via %2$s",
+ "%1$s shared %2$s with you. You should have already received a separate mail with a link to access it." : "%1$s deelde %2$s met jou. Je zou een aparte e-mail hebben moeten ontvangen met een link om er toegang toe te krijgen.",
+ "Password to access %1$s shared to you by %2$s" : "Wachtwoord om toegang te krijgen tot %1$sdat met jou gedeeld werd door %2$s",
+ "Password to access %s" : "Wachtwoord om toegang te krijgen tot %s",
"It is protected with the following password:" : "Het is beveiligd met het volgende wachtwoord:",
+ "This password will expire at %s" : "Dit wachtwoord verloopt op %s",
+ "%1$s shared %2$s with you and wants to add:" : "%1$s deelde %2$s met jou en wil toevoegen:",
+ "%1$s shared %2$s with you and wants to add" : "%1$s deelde %2$s met jou en wil toevoegen",
+ "%s added a note to a file shared with you" : "%s heeft een notitie toegevoegd aan een bestand dat met jou werd gedeeld",
+ "You just shared %1$s with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Je deelde %1$s met %2$s. Het deling werd al naar de ontvanger gestuurd. Vanwege het beveiligingsbeleid dat is gedefinieerd door de beheerder van %3$s moet elke share worden beveiligd met een wachtwoord en het is niet toegestaan het wachtwoord rechtstreeks naar de ontvanger te sturen. Daarom moet je het wachtwoord handmatig doorsturen naar de ontvanger.",
+ "Password to access %1$s shared by you with %2$s" : "Wachtwoord om toegang te krijgen tot %1$s door jou gedeeld met %2$s",
"This is the password:" : "Dit is het wachtwoord:",
"You can choose a different password at any time in the share dialog." : "Je kunt in de Delen-dialoog altijd een ander wachtwoord kiezen.",
"Could not find share" : "Kon gedeeld niet vinden",
"Share provider which allows you to share files by mail" : "Share provider waarmee je bestanden via de mail kunt delen",
+ "Unable to update share by mail config" : "Kan share niet bijwerken via mailconfiguratie",
+ "Allows people to share a personalized link to a file or folder by putting in an email address." : "Hiermee kunnen mensen een gepersonaliseerde link naar een bestand of map delen door een e-mailadres in te voeren.",
"Send password by mail" : "Wachtwoord per email verzenden",
- "Reply to initiator" : "Antwoord aan oproeper",
- "%1$s shared »%2$s« with you" : "%1$s deelde \"%2$s\" met jou",
- "%1$s shared »%2$s« with you." : "%1$s deelde \"%2$s\" met jou.",
- "Click the button below to open it." : "Klik op onderstaande link om te openen.",
- "Open »%s«" : "Open \"%s\"",
- "Password to access »%1$s« shared to you by %2$s" : "Wachtwoord voor toegang tot \"%1$s\" gedeeld met je door %2$s",
- "Password to access »%s«" : "Wachtwoord om binnen te komen \"%s\"",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s deelde \"%2$s\" met jou en wil toevoegen:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s deelde \"%2$s\" met jou en wil toevoegen",
- "»%s« added a note to a file shared with you" : "\"%s\" voegde een notitie toe aan een bestand dat met jou is gedeeld",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Je deelde \"%1$s\" met %2$s. De link is al gestuurd naar de geadresseerde. Vanwege de beveiligingsinstellingen, zoals ingesteld door de beheerder van %3$s, moet het delen worden beveiligd met een wachtwoord en is het niet toegestaan het wachtwoord rechtstreeks naar de ontvanger te versturen. Hierdoor moet je het wachtwoord zelf handmatig naar de ontvanger sturen.",
- "Password to access »%1$s« shared by you with %2$s" : "Wachtwoord voor toegang tot \"%1$s\" door jou gedeeld met %2$s"
+ "Reply to initiator" : "Antwoord aan oproeper"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/nl.json b/apps/sharebymail/l10n/nl.json
index 3118ca77617..260dd9c4912 100644
--- a/apps/sharebymail/l10n/nl.json
+++ b/apps/sharebymail/l10n/nl.json
@@ -12,28 +12,33 @@
"Password to access {file} was sent to {email}" : "Wachtwoord voor toegang tot {file} is gestuurd naar {email}",
"Password to access {file} was sent to you" : "Wachtwoord voor toegang tot {file} is naar je verstuurd",
"Share by mail" : "Delen via email",
+ "Sharing %1$s failed, because this item is already shared with the account %2$s" : "Het delen van%1$s is mislukt, omdat dit item al gedeeld wordt met het account %2$s",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "We kunnen je geen automatisch gegenereerd wachtwoord toesturen. Vermeld een geldig e-mailadres in je persoonlijke instellingen en probeer het nogmaals.",
"Failed to send share by email. Got an invalid email address" : "Het delen van het bestand per e-mail is mislukt. Ongeldig e-mailadres",
"Failed to send share by email" : "Versturen share per e-mail is mislukt",
+ "%1$s shared %2$s with you" : "%1$s deelde %2$s met jou",
"Note:" : "Notitie:",
+ "This share is valid until %s at midnight" : "Deze share is geldig tot %s middernacht",
+ "Expiration:" : "Vervaldatum:",
+ "Open %s" : "%s openen",
"%1$s via %2$s" : "%1$s via %2$s",
+ "%1$s shared %2$s with you. You should have already received a separate mail with a link to access it." : "%1$s deelde %2$s met jou. Je zou een aparte e-mail hebben moeten ontvangen met een link om er toegang toe te krijgen.",
+ "Password to access %1$s shared to you by %2$s" : "Wachtwoord om toegang te krijgen tot %1$sdat met jou gedeeld werd door %2$s",
+ "Password to access %s" : "Wachtwoord om toegang te krijgen tot %s",
"It is protected with the following password:" : "Het is beveiligd met het volgende wachtwoord:",
+ "This password will expire at %s" : "Dit wachtwoord verloopt op %s",
+ "%1$s shared %2$s with you and wants to add:" : "%1$s deelde %2$s met jou en wil toevoegen:",
+ "%1$s shared %2$s with you and wants to add" : "%1$s deelde %2$s met jou en wil toevoegen",
+ "%s added a note to a file shared with you" : "%s heeft een notitie toegevoegd aan een bestand dat met jou werd gedeeld",
+ "You just shared %1$s with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Je deelde %1$s met %2$s. Het deling werd al naar de ontvanger gestuurd. Vanwege het beveiligingsbeleid dat is gedefinieerd door de beheerder van %3$s moet elke share worden beveiligd met een wachtwoord en het is niet toegestaan het wachtwoord rechtstreeks naar de ontvanger te sturen. Daarom moet je het wachtwoord handmatig doorsturen naar de ontvanger.",
+ "Password to access %1$s shared by you with %2$s" : "Wachtwoord om toegang te krijgen tot %1$s door jou gedeeld met %2$s",
"This is the password:" : "Dit is het wachtwoord:",
"You can choose a different password at any time in the share dialog." : "Je kunt in de Delen-dialoog altijd een ander wachtwoord kiezen.",
"Could not find share" : "Kon gedeeld niet vinden",
"Share provider which allows you to share files by mail" : "Share provider waarmee je bestanden via de mail kunt delen",
+ "Unable to update share by mail config" : "Kan share niet bijwerken via mailconfiguratie",
+ "Allows people to share a personalized link to a file or folder by putting in an email address." : "Hiermee kunnen mensen een gepersonaliseerde link naar een bestand of map delen door een e-mailadres in te voeren.",
"Send password by mail" : "Wachtwoord per email verzenden",
- "Reply to initiator" : "Antwoord aan oproeper",
- "%1$s shared »%2$s« with you" : "%1$s deelde \"%2$s\" met jou",
- "%1$s shared »%2$s« with you." : "%1$s deelde \"%2$s\" met jou.",
- "Click the button below to open it." : "Klik op onderstaande link om te openen.",
- "Open »%s«" : "Open \"%s\"",
- "Password to access »%1$s« shared to you by %2$s" : "Wachtwoord voor toegang tot \"%1$s\" gedeeld met je door %2$s",
- "Password to access »%s«" : "Wachtwoord om binnen te komen \"%s\"",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s deelde \"%2$s\" met jou en wil toevoegen:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s deelde \"%2$s\" met jou en wil toevoegen",
- "»%s« added a note to a file shared with you" : "\"%s\" voegde een notitie toe aan een bestand dat met jou is gedeeld",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Je deelde \"%1$s\" met %2$s. De link is al gestuurd naar de geadresseerde. Vanwege de beveiligingsinstellingen, zoals ingesteld door de beheerder van %3$s, moet het delen worden beveiligd met een wachtwoord en is het niet toegestaan het wachtwoord rechtstreeks naar de ontvanger te versturen. Hierdoor moet je het wachtwoord zelf handmatig naar de ontvanger sturen.",
- "Password to access »%1$s« shared by you with %2$s" : "Wachtwoord voor toegang tot \"%1$s\" door jou gedeeld met %2$s"
+ "Reply to initiator" : "Antwoord aan oproeper"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/pl.js b/apps/sharebymail/l10n/pl.js
index 413afbc8d7e..56cf9611ec4 100644
--- a/apps/sharebymail/l10n/pl.js
+++ b/apps/sharebymail/l10n/pl.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Shared with {email}" : "Udostępniono {email}",
"Shared with {email} by {actor}" : "Udostępniono {email} przez {actor}",
- "Unshared from {email}" : "Udostępnianie zatrzymane od {email}",
- "Unshared from {email} by {actor}" : "Udostępnianie zatrzymane od {email} przez {actor}",
+ "Unshared from {email}" : "Udostępnienie zatrzymane dla {email}",
+ "Unshared from {email} by {actor}" : "Udostępnienie zatrzymane dla {email} przez {actor}",
"Password for mail share sent to {email}" : "Hasło dostępu do pliku zostało wysłane na {email}",
"Password for mail share sent to you" : "Hasło dostępu do pliku zostało do Ciebie wysłane",
"You shared {file} with {email} by mail" : "Udostępniasz {file} dla {email}",
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Nie można zaktualizować konfiguracji udostępniania przez pocztę",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Umożliwia użytkownikom udostępnianie spersonalizowanego linku do pliku lub katalogu poprzez podanie adresu e-mail.",
"Send password by mail" : "Wyślij hasło e-mailem",
- "Reply to initiator" : "Odpowiedz inicjatorowi",
- "%1$s shared »%2$s« with you" : "%1$s udostępnił »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s udostępnił »%2$s«.",
- "Click the button below to open it." : "Kliknij przycisk poniżej, aby go otworzyć.",
- "Open »%s«" : "Otwórz »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Hasło dostępu do %1$s udostępnionego przez %2$s.",
- "Password to access »%s«" : "Hasło dostępu do »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s udostępnił »%2$s« z informacją:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s udostępnił »%2$s« z informacją dla Ciebie",
- "»%s« added a note to a file shared with you" : "»%s« dodał notatkę do pliku udostępnionego Tobie",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Właśnie udostępniłeś »%1$s« z %2$s. Udostępnienie zostało już wysłane do odbiorcy. Ze względu na polityki bezpieczeństwa określone przez administratora %3$s, każda akcja musi być chroniona hasłem i nie wolno wysyłać hasła bezpośrednio do odbiorcy. Dlatego musisz ręcznie wysłać hasło do odbiorcy.",
- "Password to access »%1$s« shared by you with %2$s" : "Hasło dostępu do »%1$s« udostępnione przez %2$s"
+ "Reply to initiator" : "Odpowiedz inicjatorowi"
},
"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/sharebymail/l10n/pl.json b/apps/sharebymail/l10n/pl.json
index b360096132e..6bd33562909 100644
--- a/apps/sharebymail/l10n/pl.json
+++ b/apps/sharebymail/l10n/pl.json
@@ -1,8 +1,8 @@
{ "translations": {
"Shared with {email}" : "Udostępniono {email}",
"Shared with {email} by {actor}" : "Udostępniono {email} przez {actor}",
- "Unshared from {email}" : "Udostępnianie zatrzymane od {email}",
- "Unshared from {email} by {actor}" : "Udostępnianie zatrzymane od {email} przez {actor}",
+ "Unshared from {email}" : "Udostępnienie zatrzymane dla {email}",
+ "Unshared from {email} by {actor}" : "Udostępnienie zatrzymane dla {email} przez {actor}",
"Password for mail share sent to {email}" : "Hasło dostępu do pliku zostało wysłane na {email}",
"Password for mail share sent to you" : "Hasło dostępu do pliku zostało do Ciebie wysłane",
"You shared {file} with {email} by mail" : "Udostępniasz {file} dla {email}",
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Nie można zaktualizować konfiguracji udostępniania przez pocztę",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Umożliwia użytkownikom udostępnianie spersonalizowanego linku do pliku lub katalogu poprzez podanie adresu e-mail.",
"Send password by mail" : "Wyślij hasło e-mailem",
- "Reply to initiator" : "Odpowiedz inicjatorowi",
- "%1$s shared »%2$s« with you" : "%1$s udostępnił »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s udostępnił »%2$s«.",
- "Click the button below to open it." : "Kliknij przycisk poniżej, aby go otworzyć.",
- "Open »%s«" : "Otwórz »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Hasło dostępu do %1$s udostępnionego przez %2$s.",
- "Password to access »%s«" : "Hasło dostępu do »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s udostępnił »%2$s« z informacją:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s udostępnił »%2$s« z informacją dla Ciebie",
- "»%s« added a note to a file shared with you" : "»%s« dodał notatkę do pliku udostępnionego Tobie",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Właśnie udostępniłeś »%1$s« z %2$s. Udostępnienie zostało już wysłane do odbiorcy. Ze względu na polityki bezpieczeństwa określone przez administratora %3$s, każda akcja musi być chroniona hasłem i nie wolno wysyłać hasła bezpośrednio do odbiorcy. Dlatego musisz ręcznie wysłać hasło do odbiorcy.",
- "Password to access »%1$s« shared by you with %2$s" : "Hasło dostępu do »%1$s« udostępnione przez %2$s"
+ "Reply to initiator" : "Odpowiedz inicjatorowi"
},"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/sharebymail/l10n/pt_BR.js b/apps/sharebymail/l10n/pt_BR.js
index f1df5f45ec2..b1e860a1e8a 100644
--- a/apps/sharebymail/l10n/pt_BR.js
+++ b/apps/sharebymail/l10n/pt_BR.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Não foi possível atualizar a configuração do aplicativo compartilhamento por e-mail",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite que as pessoas compartilhem um link personalizado para um arquivo ou pasta inserindo um endereço de e-mail.",
"Send password by mail" : "Enviar senha por e-mail",
- "Reply to initiator" : "Responder ao iniciador",
- "%1$s shared »%2$s« with you" : "%1$s compartilhou »%2$s« com você",
- "%1$s shared »%2$s« with you." : "%1$s compartilhou »%2$s« com você.",
- "Click the button below to open it." : "Clique no botão abaixo para abri-lo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Senha de acesso »%1$s« compartilhada com você por %2$s",
- "Password to access »%s«" : "Senha para acessar »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartilhou »%2$s« com você e quer adicionar:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartilhou »%2$s« com você e quer adicionar",
- "»%s« added a note to a file shared with you" : "»%s« adicionou uma nota a um arquivo compartilhado com você",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Você compartilhou »%1$s« com %2$s. O compartilhamento já foi enviado para o destinatário. Devido às políticas de segurança definidas pelo administrador de %3$scada compartilhamento precisa ser protegido por senha e não é permitido enviá-la diretamente ao destinatário. Portanto, você precisa encaminhar a senha manualmente. ",
- "Password to access »%1$s« shared by you with %2$s" : "A senha para acessar »%1$s« compartilhada por você com %2$s"
+ "Reply to initiator" : "Responder ao iniciador"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/sharebymail/l10n/pt_BR.json b/apps/sharebymail/l10n/pt_BR.json
index 8133e52a1ef..a5ebc64f295 100644
--- a/apps/sharebymail/l10n/pt_BR.json
+++ b/apps/sharebymail/l10n/pt_BR.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Não foi possível atualizar a configuração do aplicativo compartilhamento por e-mail",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Permite que as pessoas compartilhem um link personalizado para um arquivo ou pasta inserindo um endereço de e-mail.",
"Send password by mail" : "Enviar senha por e-mail",
- "Reply to initiator" : "Responder ao iniciador",
- "%1$s shared »%2$s« with you" : "%1$s compartilhou »%2$s« com você",
- "%1$s shared »%2$s« with you." : "%1$s compartilhou »%2$s« com você.",
- "Click the button below to open it." : "Clique no botão abaixo para abri-lo.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Senha de acesso »%1$s« compartilhada com você por %2$s",
- "Password to access »%s«" : "Senha para acessar »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s compartilhou »%2$s« com você e quer adicionar:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s compartilhou »%2$s« com você e quer adicionar",
- "»%s« added a note to a file shared with you" : "»%s« adicionou uma nota a um arquivo compartilhado com você",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Você compartilhou »%1$s« com %2$s. O compartilhamento já foi enviado para o destinatário. Devido às políticas de segurança definidas pelo administrador de %3$scada compartilhamento precisa ser protegido por senha e não é permitido enviá-la diretamente ao destinatário. Portanto, você precisa encaminhar a senha manualmente. ",
- "Password to access »%1$s« shared by you with %2$s" : "A senha para acessar »%1$s« compartilhada por você com %2$s"
+ "Reply to initiator" : "Responder ao iniciador"
},"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/sharebymail/l10n/pt_PT.js b/apps/sharebymail/l10n/pt_PT.js
deleted file mode 100644
index 2a2ec6019df..00000000000
--- a/apps/sharebymail/l10n/pt_PT.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with {email}" : "Partilhado com {email}",
- "Shared with {email} by {actor}" : "Partilhado com {email} por {actor}",
- "Unshared from {email}" : "Despartilhado de {email}",
- "Unshared from {email} by {actor}" : "Despartilhado de {email} para {actor}",
- "Password for mail share sent to {email}" : "Palavra-chave da partilha por email enviada para {email}",
- "Password for mail share sent to you" : "Palavra-chave da partilha por email enviada para si",
- "You shared {file} with {email} by mail" : "Partilhou {file} com {email} por e-mail",
- "{actor} shared {file} with {email} by mail" : "{actor} partilhou {file} com {email} por e-mail",
- "You unshared {file} from {email} by mail" : "Despartilhaste {file} de {email} por email",
- "{actor} unshared {file} from {email} by mail" : "{actor} despartilhado {file} de {email} por email",
- "Password to access {file} was sent to {email}" : "Palavra-chave de acesso a {file} enviada para {email}",
- "Password to access {file} was sent to you" : "Palavra-chave de acesso a {file} enviada para si",
- "Share by mail" : "Partilhado por e-mail",
- "Failed to send share by email" : "Falhou o envio da partilha por email.",
- "%1$s via %2$s" : "%1$s via %2$s",
- "It is protected with the following password:" : "Está protegido com a seguinte palavra-chave:",
- "This is the password:" : "Esta é a palavra passe: ",
- "You can choose a different password at any time in the share dialog." : "Pode escolher uma palavra-chave diferente a qualquer altura utilizando a caixa de diálogo \"partilha\".",
- "Could not find share" : "Não foi possível encontrar a partilha",
- "Send password by mail" : "Enviar palavra-chave por e-mail",
- "%1$s shared »%2$s« with you" : "%1$s partilhado »%2$s« contigo",
- "%1$s shared »%2$s« with you." : "%1$s partilhado »%2$s« contigo.",
- "Click the button below to open it." : "Clicar no botão abaixo para abrir.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Palavra passe para aceder »%1$s« partilhado por si %2$s",
- "Password to access »%s«" : "Palavra-chave de acesso »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s partilhado »%2$s« consigo e quer adicionar:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s partilhado »%2$s« consigo e quer adicionar:",
- "»%s« added a note to a file shared with you" : "»%s« adicionou uma nota a um ficheiro partilhado consigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Partilhou »%1$s« com %2$s. A partilha já foi enviada ao destinatário. Devido à política de segurança definida pelo administrador de %3$s cada partilha deverá ser protegida por uma palavra-chave e não é permitido o envio da mesma diretamente para o destinatário. Assim, necessita enviar a palavra-chave manualmente para o respetivo destinatário.",
- "Password to access »%1$s« shared by you with %2$s" : "Palavra passe para aceder »%1$s« partilhado por si %2$s"
-},
-"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/sharebymail/l10n/pt_PT.json b/apps/sharebymail/l10n/pt_PT.json
deleted file mode 100644
index 4d1bf04ffe7..00000000000
--- a/apps/sharebymail/l10n/pt_PT.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Shared with {email}" : "Partilhado com {email}",
- "Shared with {email} by {actor}" : "Partilhado com {email} por {actor}",
- "Unshared from {email}" : "Despartilhado de {email}",
- "Unshared from {email} by {actor}" : "Despartilhado de {email} para {actor}",
- "Password for mail share sent to {email}" : "Palavra-chave da partilha por email enviada para {email}",
- "Password for mail share sent to you" : "Palavra-chave da partilha por email enviada para si",
- "You shared {file} with {email} by mail" : "Partilhou {file} com {email} por e-mail",
- "{actor} shared {file} with {email} by mail" : "{actor} partilhou {file} com {email} por e-mail",
- "You unshared {file} from {email} by mail" : "Despartilhaste {file} de {email} por email",
- "{actor} unshared {file} from {email} by mail" : "{actor} despartilhado {file} de {email} por email",
- "Password to access {file} was sent to {email}" : "Palavra-chave de acesso a {file} enviada para {email}",
- "Password to access {file} was sent to you" : "Palavra-chave de acesso a {file} enviada para si",
- "Share by mail" : "Partilhado por e-mail",
- "Failed to send share by email" : "Falhou o envio da partilha por email.",
- "%1$s via %2$s" : "%1$s via %2$s",
- "It is protected with the following password:" : "Está protegido com a seguinte palavra-chave:",
- "This is the password:" : "Esta é a palavra passe: ",
- "You can choose a different password at any time in the share dialog." : "Pode escolher uma palavra-chave diferente a qualquer altura utilizando a caixa de diálogo \"partilha\".",
- "Could not find share" : "Não foi possível encontrar a partilha",
- "Send password by mail" : "Enviar palavra-chave por e-mail",
- "%1$s shared »%2$s« with you" : "%1$s partilhado »%2$s« contigo",
- "%1$s shared »%2$s« with you." : "%1$s partilhado »%2$s« contigo.",
- "Click the button below to open it." : "Clicar no botão abaixo para abrir.",
- "Open »%s«" : "Abrir »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Palavra passe para aceder »%1$s« partilhado por si %2$s",
- "Password to access »%s«" : "Palavra-chave de acesso »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s partilhado »%2$s« consigo e quer adicionar:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s partilhado »%2$s« consigo e quer adicionar:",
- "»%s« added a note to a file shared with you" : "»%s« adicionou uma nota a um ficheiro partilhado consigo",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Partilhou »%1$s« com %2$s. A partilha já foi enviada ao destinatário. Devido à política de segurança definida pelo administrador de %3$s cada partilha deverá ser protegida por uma palavra-chave e não é permitido o envio da mesma diretamente para o destinatário. Assim, necessita enviar a palavra-chave manualmente para o respetivo destinatário.",
- "Password to access »%1$s« shared by you with %2$s" : "Palavra passe para aceder »%1$s« partilhado por si %2$s"
-},"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/sharebymail/l10n/ro.js b/apps/sharebymail/l10n/ro.js
deleted file mode 100644
index 2c5555ef25d..00000000000
--- a/apps/sharebymail/l10n/ro.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with {email}" : "Partajat cu {email}",
- "Shared with {email} by {actor}" : "Partajat cu {email} de {actor}",
- "Unshared from {email}" : "Partajarea cu {email} eliminată",
- "Unshared from {email} by {actor}" : "Partajarea cu {email} eliminată de {actor}",
- "Password for mail share sent to {email}" : "Parola pentru partajare a fost trimisă către {email}",
- "Password for mail share sent to you" : "V-s fot trimisă parola pentru partajare",
- "Share by mail" : "Partajază prin mail",
- "%1$s shared »%2$s« with you" : "%1$s a partajat »%2$s« cu tine",
- "%1$s shared »%2$s« with you." : "%1$sa partajat »%2$s« cu tine.",
- "Click the button below to open it." : "Apasă pe butonul de jos pentru a deschide.",
- "Open »%s«" : "Deschide »%s«",
- "%1$s via %2$s" : "%1$sprin %2$s",
- "Password to access »%1$s« shared to you by %2$s" : "Parola pentru a accesa »%1$s« partajată cu tine de către %2$s",
- "Password to access »%s«" : "Parola pentru access »%s«",
- "It is protected with the following password:" : "Este protejat cu urmatoarea parolă:",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s a partajat »%2$s« cu tine și vrea să adauge",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s a partajat »%2$s« cu tine și vrea să adauge",
- "»%s« added a note to a file shared with you" : "%s« a adaugat un comentariu la un fișier partajat cu tine",
- "This is the password:" : "Aceasta este parola:",
- "You can choose a different password at any time in the share dialog." : "Puteți schimba parola oricând în dialogul de partajare.",
- "Could not find share" : "Nu am putut găsi partajarea",
- "Send password by mail" : "Trimite parola prin mail"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/sharebymail/l10n/ro.json b/apps/sharebymail/l10n/ro.json
deleted file mode 100644
index 4a3978e82e0..00000000000
--- a/apps/sharebymail/l10n/ro.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "Shared with {email}" : "Partajat cu {email}",
- "Shared with {email} by {actor}" : "Partajat cu {email} de {actor}",
- "Unshared from {email}" : "Partajarea cu {email} eliminată",
- "Unshared from {email} by {actor}" : "Partajarea cu {email} eliminată de {actor}",
- "Password for mail share sent to {email}" : "Parola pentru partajare a fost trimisă către {email}",
- "Password for mail share sent to you" : "V-s fot trimisă parola pentru partajare",
- "Share by mail" : "Partajază prin mail",
- "%1$s shared »%2$s« with you" : "%1$s a partajat »%2$s« cu tine",
- "%1$s shared »%2$s« with you." : "%1$sa partajat »%2$s« cu tine.",
- "Click the button below to open it." : "Apasă pe butonul de jos pentru a deschide.",
- "Open »%s«" : "Deschide »%s«",
- "%1$s via %2$s" : "%1$sprin %2$s",
- "Password to access »%1$s« shared to you by %2$s" : "Parola pentru a accesa »%1$s« partajată cu tine de către %2$s",
- "Password to access »%s«" : "Parola pentru access »%s«",
- "It is protected with the following password:" : "Este protejat cu urmatoarea parolă:",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s a partajat »%2$s« cu tine și vrea să adauge",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s a partajat »%2$s« cu tine și vrea să adauge",
- "»%s« added a note to a file shared with you" : "%s« a adaugat un comentariu la un fișier partajat cu tine",
- "This is the password:" : "Aceasta este parola:",
- "You can choose a different password at any time in the share dialog." : "Puteți schimba parola oricând în dialogul de partajare.",
- "Could not find share" : "Nu am putut găsi partajarea",
- "Send password by mail" : "Trimite parola prin mail"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ru.js b/apps/sharebymail/l10n/ru.js
index 6ef404c6f52..0ee054c416f 100644
--- a/apps/sharebymail/l10n/ru.js
+++ b/apps/sharebymail/l10n/ru.js
@@ -18,12 +18,22 @@ OC.L10N.register(
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Мы не можем отправить вам автоматически сгенерированный пароль. Укажите действующий адрес электронной почты в личных настройках и повторите попытку.",
"Failed to send share by email. Got an invalid email address" : "Не удалось отправить ссылку общего доступа по электронной почте. Получен неверный адрес электронной почты",
"Failed to send share by email" : "Не удалось предоставить общий доступ по адресу электронной почты",
+ "%1$s shared %2$s with you" : "%1$s поделился(ась) %2$s с вами",
"Note:" : "Примечание:",
+ "This share is valid until %s at midnight" : "Общий ресурс будет действителен до полуночи %s",
+ "Expiration:" : "Срок действия:",
"Open %s" : "Открыть %s",
"%1$s via %2$s" : "%1$s через %2$s",
+ "%1$s shared %2$s with you. You should have already received a separate mail with a link to access it." : "%1$s поделился(ась) с вами %2$s. Вы должны были получить отдельное письмо со ссылкой для доступа.",
+ "Password to access %1$s shared to you by %2$s" : "Пароль для доступа к %1$s, предоставленному вам пользователем %2$s",
"Password to access %s" : "Пароль для доступа к %s",
"It is protected with the following password:" : "Доступ защищён следующим паролем: ",
"This password will expire at %s" : "Срок действия этого пароля завершится %s",
+ "%1$s shared %2$s with you and wants to add:" : "%1$s поделился(ась) %2$s с вами и хочет добавить:",
+ "%1$s shared %2$s with you and wants to add" : "%1$s поделился(ась) %2$s с вами и хочет добавить",
+ "%s added a note to a file shared with you" : "%s добавил(а) заметку к файлу, которым поделился(ась) с вами",
+ "You just shared %1$s with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что поделились %1$s с %2$s. Ссылка на доступ уже отправлена получателю. Согласно политике безопасности, установленной администратором %3$s, каждый общий ресурс должен быть защищён паролем, и его запрещено отправлять пароль напрямую получателю. Пожалуйста, передайте пароль самостоятельно.",
+ "Password to access %1$s shared by you with %2$s" : "Пароль для доступа к %1$s, которым вы поделились с %2$s",
"This is the password:" : "Пароль: ",
"You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой пароль в диалоге «Общий доступ».",
"Could not find share" : "Не удалось найти общий ресурс",
@@ -31,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Невозможно обновить конфигурацию общего доступа по почте",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Позволить пользователям делиться персонализированной ссылкой на файл или папку, указав адрес электронной почты.",
"Send password by mail" : "Отправлять пароль по электронной почте",
- "Reply to initiator" : "Направлять ответ инициатору",
- "%1$s shared »%2$s« with you" : "%1$s предоставил(а) вам доступ к «%2$s»",
- "%1$s shared »%2$s« with you." : "%1$s предоставил(а) вам доступ к «%2$s».",
- "Click the button below to open it." : "Для открытия нажмите на кнопку, расположенную ниже.",
- "Open »%s«" : "Открыть «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "Пароль для доступа к «%1$s», общий доступ к которому предоставлен вам пользователем %2$s",
- "Password to access »%s«" : "Пароль для доступа к «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s предоставил(а) вам доступ к «%2$s» и хочет добавить:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s предоставил(а) вам доступ к «%2$s» и хочет добавить",
- "»%s« added a note to a file shared with you" : "%s добавил(а) примечание к файлу, к которому вам открыт доступ",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что предоставили общий доступ к «%1$s» пользователю %2$s. Уведомление о предоставлении доступа было отправлено получателю. В соответствии с политиками безопасности, заданными администратором %3$s, каждый общий ресурс должен быть защищён паролем, а также не допускается непосредственное отправление пароля получателю, поэтому вам потребуется самостоятельно перенаправить получателю пароль для доступа.",
- "Password to access »%1$s« shared by you with %2$s" : "Пароль для доступа к «%1$s», общий доступ к которому предоставлен вами пользователю %2$s"
+ "Reply to initiator" : "Направлять ответ инициатору"
},
"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/sharebymail/l10n/ru.json b/apps/sharebymail/l10n/ru.json
index 4b1a5e510be..d7bf86c5657 100644
--- a/apps/sharebymail/l10n/ru.json
+++ b/apps/sharebymail/l10n/ru.json
@@ -16,12 +16,22 @@
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Мы не можем отправить вам автоматически сгенерированный пароль. Укажите действующий адрес электронной почты в личных настройках и повторите попытку.",
"Failed to send share by email. Got an invalid email address" : "Не удалось отправить ссылку общего доступа по электронной почте. Получен неверный адрес электронной почты",
"Failed to send share by email" : "Не удалось предоставить общий доступ по адресу электронной почты",
+ "%1$s shared %2$s with you" : "%1$s поделился(ась) %2$s с вами",
"Note:" : "Примечание:",
+ "This share is valid until %s at midnight" : "Общий ресурс будет действителен до полуночи %s",
+ "Expiration:" : "Срок действия:",
"Open %s" : "Открыть %s",
"%1$s via %2$s" : "%1$s через %2$s",
+ "%1$s shared %2$s with you. You should have already received a separate mail with a link to access it." : "%1$s поделился(ась) с вами %2$s. Вы должны были получить отдельное письмо со ссылкой для доступа.",
+ "Password to access %1$s shared to you by %2$s" : "Пароль для доступа к %1$s, предоставленному вам пользователем %2$s",
"Password to access %s" : "Пароль для доступа к %s",
"It is protected with the following password:" : "Доступ защищён следующим паролем: ",
"This password will expire at %s" : "Срок действия этого пароля завершится %s",
+ "%1$s shared %2$s with you and wants to add:" : "%1$s поделился(ась) %2$s с вами и хочет добавить:",
+ "%1$s shared %2$s with you and wants to add" : "%1$s поделился(ась) %2$s с вами и хочет добавить",
+ "%s added a note to a file shared with you" : "%s добавил(а) заметку к файлу, которым поделился(ась) с вами",
+ "You just shared %1$s with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что поделились %1$s с %2$s. Ссылка на доступ уже отправлена получателю. Согласно политике безопасности, установленной администратором %3$s, каждый общий ресурс должен быть защищён паролем, и его запрещено отправлять пароль напрямую получателю. Пожалуйста, передайте пароль самостоятельно.",
+ "Password to access %1$s shared by you with %2$s" : "Пароль для доступа к %1$s, которым вы поделились с %2$s",
"This is the password:" : "Пароль: ",
"You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой пароль в диалоге «Общий доступ».",
"Could not find share" : "Не удалось найти общий ресурс",
@@ -29,17 +39,6 @@
"Unable to update share by mail config" : "Невозможно обновить конфигурацию общего доступа по почте",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Позволить пользователям делиться персонализированной ссылкой на файл или папку, указав адрес электронной почты.",
"Send password by mail" : "Отправлять пароль по электронной почте",
- "Reply to initiator" : "Направлять ответ инициатору",
- "%1$s shared »%2$s« with you" : "%1$s предоставил(а) вам доступ к «%2$s»",
- "%1$s shared »%2$s« with you." : "%1$s предоставил(а) вам доступ к «%2$s».",
- "Click the button below to open it." : "Для открытия нажмите на кнопку, расположенную ниже.",
- "Open »%s«" : "Открыть «%s»",
- "Password to access »%1$s« shared to you by %2$s" : "Пароль для доступа к «%1$s», общий доступ к которому предоставлен вам пользователем %2$s",
- "Password to access »%s«" : "Пароль для доступа к «%s»",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s предоставил(а) вам доступ к «%2$s» и хочет добавить:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s предоставил(а) вам доступ к «%2$s» и хочет добавить",
- "»%s« added a note to a file shared with you" : "%s добавил(а) примечание к файлу, к которому вам открыт доступ",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что предоставили общий доступ к «%1$s» пользователю %2$s. Уведомление о предоставлении доступа было отправлено получателю. В соответствии с политиками безопасности, заданными администратором %3$s, каждый общий ресурс должен быть защищён паролем, а также не допускается непосредственное отправление пароля получателю, поэтому вам потребуется самостоятельно перенаправить получателю пароль для доступа.",
- "Password to access »%1$s« shared by you with %2$s" : "Пароль для доступа к «%1$s», общий доступ к которому предоставлен вами пользователю %2$s"
+ "Reply to initiator" : "Направлять ответ инициатору"
},"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/sharebymail/l10n/sc.js b/apps/sharebymail/l10n/sc.js
index 78883ccf1e9..c149fddf7bc 100644
--- a/apps/sharebymail/l10n/sc.js
+++ b/apps/sharebymail/l10n/sc.js
@@ -23,17 +23,6 @@ OC.L10N.register(
"Could not find share" : "No at fatu a agatare sa cumpartzidura",
"Share provider which allows you to share files by mail" : "Frunidore de cumpartzidura chi ti permitit de cumpartzire archìvios tràmite posta eletrònica",
"Send password by mail" : "Imbia crae tràmite posta eletrònica",
- "Reply to initiator" : "Risponde a chie cumintzat",
- "%1$s shared »%2$s« with you" : "%1$s at cumpartzidu »%2$s cun tegus",
- "%1$s shared »%2$s« with you." : "%1$s at cumpartzidu »%2$s cun tegus.",
- "Click the button below to open it." : "Incarca su butone a suta pro dd'abèrrere.",
- "Open »%s«" : "Aberi »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Crae pro s'atzessu »%1$s« cumpartzida cun te dae %2$s",
- "Password to access »%s«" : "Crae pro s'atzessu »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s at cumpartzidu »%2$s« cun tegus e bolet agiùnghere:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s at cumpartzidu »%2$s« cun tegus e bolet agiùnghere",
- "»%s« added a note to a file shared with you" : "»%s« at agiuntu una nota a un'archìviu cumpartzidu cun tegus",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "As apenas cumpartzidu »%1$s« cun %2$s. Sa cumpartzidura est giai istada imbiada a sa persone destinatària. Pro more de is polìticas de seguresa istabilidas dae s'amministratzione de %3$s ogni cumpartzidura depet èssere amparada dae una crae e no est permìtidu a imbiare sa crae deretu a sa persone destinatària. Duncas, ddi as a dèpere imbiare sa crae a manu.",
- "Password to access »%1$s« shared by you with %2$s" : "Crae pro s'atzessu a »%1$s« cumpartzida dae tue cun %2$s"
+ "Reply to initiator" : "Risponde a chie cumintzat"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/sc.json b/apps/sharebymail/l10n/sc.json
index 936bb9fbd24..22fae4e8265 100644
--- a/apps/sharebymail/l10n/sc.json
+++ b/apps/sharebymail/l10n/sc.json
@@ -21,17 +21,6 @@
"Could not find share" : "No at fatu a agatare sa cumpartzidura",
"Share provider which allows you to share files by mail" : "Frunidore de cumpartzidura chi ti permitit de cumpartzire archìvios tràmite posta eletrònica",
"Send password by mail" : "Imbia crae tràmite posta eletrònica",
- "Reply to initiator" : "Risponde a chie cumintzat",
- "%1$s shared »%2$s« with you" : "%1$s at cumpartzidu »%2$s cun tegus",
- "%1$s shared »%2$s« with you." : "%1$s at cumpartzidu »%2$s cun tegus.",
- "Click the button below to open it." : "Incarca su butone a suta pro dd'abèrrere.",
- "Open »%s«" : "Aberi »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Crae pro s'atzessu »%1$s« cumpartzida cun te dae %2$s",
- "Password to access »%s«" : "Crae pro s'atzessu »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s at cumpartzidu »%2$s« cun tegus e bolet agiùnghere:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s at cumpartzidu »%2$s« cun tegus e bolet agiùnghere",
- "»%s« added a note to a file shared with you" : "»%s« at agiuntu una nota a un'archìviu cumpartzidu cun tegus",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "As apenas cumpartzidu »%1$s« cun %2$s. Sa cumpartzidura est giai istada imbiada a sa persone destinatària. Pro more de is polìticas de seguresa istabilidas dae s'amministratzione de %3$s ogni cumpartzidura depet èssere amparada dae una crae e no est permìtidu a imbiare sa crae deretu a sa persone destinatària. Duncas, ddi as a dèpere imbiare sa crae a manu.",
- "Password to access »%1$s« shared by you with %2$s" : "Crae pro s'atzessu a »%1$s« cumpartzida dae tue cun %2$s"
+ "Reply to initiator" : "Risponde a chie cumintzat"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/sk.js b/apps/sharebymail/l10n/sk.js
index b7791b3d4d0..65282aba5c1 100644
--- a/apps/sharebymail/l10n/sk.js
+++ b/apps/sharebymail/l10n/sk.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Nepodarila sa aktualizovať konfigurácia zdieľania prostredníctvom e-mailu",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Umožňuje ľuďom zdieľať prispôsobený odkaz na súbor alebo priečinok zadaním e-mailovej adresy.",
"Send password by mail" : "Odoslať heslo e-mailom",
- "Reply to initiator" : "Odpovedať iniciátorovi",
- "%1$s shared »%2$s« with you" : "%1$s vám sprístupnil »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s vám sprístupnil »%2$s«.",
- "Click the button below to open it." : "Stlačte tlačidlo nižšie pre otvorenie.",
- "Open »%s«" : "Otvoriť »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Heslo pre prístup k »%1$s« Vám sprístupnil %2$s",
- "Password to access »%s«" : "Heslo pre prístup k »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s vám sprístupnil »%2$s« s poznámkou:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s vám sprístupnil »%2$s« s poznámkou",
- "»%s« added a note to a file shared with you" : "»%s« pridal poznámku k súboru ktorý s Vami zdieľa",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Práve ste zdieľali „%1$s“ s %2$s. Zdieľanie už bolo odoslané príjemcovi. Z dôvodu bezpečnostných pravidiel definovaných správcom %3$s musí byť každá zdieľaná položka chránená heslom, ktoré nemôže byť priamo poslané príjemcovi. Preto musíte heslo poslať príjemcovi ručne.",
- "Password to access »%1$s« shared by you with %2$s" : "Heslo pre prístup k „%1$s“, ktoré zdieľate s %2$s"
+ "Reply to initiator" : "Odpovedať iniciátorovi"
},
"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/sharebymail/l10n/sk.json b/apps/sharebymail/l10n/sk.json
index f9b2c743568..f88f46854c7 100644
--- a/apps/sharebymail/l10n/sk.json
+++ b/apps/sharebymail/l10n/sk.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Nepodarila sa aktualizovať konfigurácia zdieľania prostredníctvom e-mailu",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Umožňuje ľuďom zdieľať prispôsobený odkaz na súbor alebo priečinok zadaním e-mailovej adresy.",
"Send password by mail" : "Odoslať heslo e-mailom",
- "Reply to initiator" : "Odpovedať iniciátorovi",
- "%1$s shared »%2$s« with you" : "%1$s vám sprístupnil »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s vám sprístupnil »%2$s«.",
- "Click the button below to open it." : "Stlačte tlačidlo nižšie pre otvorenie.",
- "Open »%s«" : "Otvoriť »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "Heslo pre prístup k »%1$s« Vám sprístupnil %2$s",
- "Password to access »%s«" : "Heslo pre prístup k »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s vám sprístupnil »%2$s« s poznámkou:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s vám sprístupnil »%2$s« s poznámkou",
- "»%s« added a note to a file shared with you" : "»%s« pridal poznámku k súboru ktorý s Vami zdieľa",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Práve ste zdieľali „%1$s“ s %2$s. Zdieľanie už bolo odoslané príjemcovi. Z dôvodu bezpečnostných pravidiel definovaných správcom %3$s musí byť každá zdieľaná položka chránená heslom, ktoré nemôže byť priamo poslané príjemcovi. Preto musíte heslo poslať príjemcovi ručne.",
- "Password to access »%1$s« shared by you with %2$s" : "Heslo pre prístup k „%1$s“, ktoré zdieľate s %2$s"
+ "Reply to initiator" : "Odpovedať iniciátorovi"
},"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/sharebymail/l10n/sl.js b/apps/sharebymail/l10n/sl.js
index e7b0bedb151..cebd8761152 100644
--- a/apps/sharebymail/l10n/sl.js
+++ b/apps/sharebymail/l10n/sl.js
@@ -26,17 +26,6 @@ OC.L10N.register(
"Could not find share" : "Mape v souporabi ni mogoče najti",
"Share provider which allows you to share files by mail" : "Ponudnik souporabe, ki omogoča souporabo datotek prek elektronske pošte",
"Send password by mail" : "Pošlji geslo po elektronski pošti",
- "Reply to initiator" : "Odgovori pošiljatelju",
- "%1$s shared »%2$s« with you" : "%1$s vam omogoča souporabo »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s vam omogoča souporabo »%2$s«.",
- "Click the button below to open it." : "Kliknite na gumb za odpiranje.",
- "Open »%s«" : "Odpri »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s vam pošilja geslo za dostop do datoteke »%1$s«.",
- "Password to access »%s«" : "Geslo za dostop do »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s vam omogoča souporabo »%2$s« in želi dodati:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s vam omogoča souporabo »%2$s« in želi dodati",
- "»%s« added a note to a file shared with you" : "»%s« doda opombo k datoteki v souporabi",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Omogočili ste skupno rabo datoteke »%1$s« (%2$s). Souporaba je že dodeljena, vendar je treba zaradi varnostnih pravil, ki jih je določil skrbnik %3$s, vsako mesto v souporabi zaščititi z geslom. Gesla tudi ni dovoljeno poslati neposredno prejemniku. Pošljite ga prek drugega kanala.",
- "Password to access »%1$s« shared by you with %2$s" : "%2$s vam pošilja geslo za dostop do datoteke »%1$s«."
+ "Reply to initiator" : "Odgovori pošiljatelju"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/sharebymail/l10n/sl.json b/apps/sharebymail/l10n/sl.json
index 9c39a5c2710..b3b0ca9667b 100644
--- a/apps/sharebymail/l10n/sl.json
+++ b/apps/sharebymail/l10n/sl.json
@@ -24,17 +24,6 @@
"Could not find share" : "Mape v souporabi ni mogoče najti",
"Share provider which allows you to share files by mail" : "Ponudnik souporabe, ki omogoča souporabo datotek prek elektronske pošte",
"Send password by mail" : "Pošlji geslo po elektronski pošti",
- "Reply to initiator" : "Odgovori pošiljatelju",
- "%1$s shared »%2$s« with you" : "%1$s vam omogoča souporabo »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s vam omogoča souporabo »%2$s«.",
- "Click the button below to open it." : "Kliknite na gumb za odpiranje.",
- "Open »%s«" : "Odpri »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s vam pošilja geslo za dostop do datoteke »%1$s«.",
- "Password to access »%s«" : "Geslo za dostop do »%s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s vam omogoča souporabo »%2$s« in želi dodati:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s vam omogoča souporabo »%2$s« in želi dodati",
- "»%s« added a note to a file shared with you" : "»%s« doda opombo k datoteki v souporabi",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Omogočili ste skupno rabo datoteke »%1$s« (%2$s). Souporaba je že dodeljena, vendar je treba zaradi varnostnih pravil, ki jih je določil skrbnik %3$s, vsako mesto v souporabi zaščititi z geslom. Gesla tudi ni dovoljeno poslati neposredno prejemniku. Pošljite ga prek drugega kanala.",
- "Password to access »%1$s« shared by you with %2$s" : "%2$s vam pošilja geslo za dostop do datoteke »%1$s«."
+ "Reply to initiator" : "Odgovori pošiljatelju"
},"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/sharebymail/l10n/sq.js b/apps/sharebymail/l10n/sq.js
deleted file mode 100644
index dd3f9f38255..00000000000
--- a/apps/sharebymail/l10n/sq.js
+++ /dev/null
@@ -1,31 +0,0 @@
-OC.L10N.register(
- "sharebymail",
- {
- "Shared with %1$s" : "E ndarë me %1$s ",
- "Shared with {email}" : "Të shpërndara me {email}",
- "Shared with %1$s by %2$s" : "E ndarë me %1$s nga %2$s",
- "Shared with {email} by {actor}" : "Ndarë me {email} nga {actor}",
- "Password for mail share sent to %1$s" : "Fjalëkalimi per ndarjen e mail-it dërguar tek %1$s",
- "Password for mail share sent to {email}" : "Fjalëkali për ndarje mail-i u dërgua tek {email}",
- "Password for mail share sent to you" : "Fjalëkalimi për ndarjen e mail ju është dërguar ",
- "You shared %1$s with %2$s by mail" : "Ju ndatë %1$s me %2$s me anë të mail",
- "You shared {file} with {email} by mail" : "Ju ndatë {skedarin} me {email} me anë të mailit ",
- "%3$s shared %1$s with %2$s by mail" : "%3$s ndau %1$s me%2$s me anë të mail",
- "{actor} shared {file} with {email} by mail" : "{aktori} shpërndau {skedarin} me{email} nga email",
- "Password to access %1$s was sent to %2s" : "Fjalëkalimi për akses %1$s ju dërgua %2s",
- "Password to access {file} was sent to {email}" : "Fjalëkalimi për akses {file} dërguar tek {email}",
- "Password to access %1$s was sent to you" : "Fjalëkalimi për të aksesuar %1$s ju është dërguar",
- "Password to access {file} was sent to you" : "Fjalëkalimi për akses {file} tu dërgua ",
- "Share by mail" : "Shpërnda me mail",
- "Failed to send share by email" : "Ndarja e dërguar me anë të email dështoi ",
- "Click the button below to open it." : "Klikoni butonin poshtë për ta hapur.",
- "Open »%s«" : "Hap »%s«",
- "Password to access »%s«" : "Fjalëkalimi për akses »%s«",
- "You can choose a different password at any time in the share dialog." : "Ju mund të zgjidhni një fjalëkalim tjetër në çdo kohë në dialogun e ndarjes.",
- "Could not find share" : "Nuk mund të gjej shpërndarje",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Lejo përdoruesit të ndajnë një lidhje të personalizuar me një skedar ose dosje duke e vendosur në një adresë e-mail.",
- "Send password by mail" : "Dërgo fjalëkalimin me mail",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "S'mund t'jua dergojmë fjalëkalimin e gjeneruar automatikisht. Ju lutem vendosni një adresë emaili të vlefshme ne mjedisin tuaj personal dhe provoni përseri. ",
- "Enforce password protection" : "Forco mbrojtjen e fjalëkalimit"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/sq.json b/apps/sharebymail/l10n/sq.json
deleted file mode 100644
index 73d2c9a0bf5..00000000000
--- a/apps/sharebymail/l10n/sq.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{ "translations": {
- "Shared with %1$s" : "E ndarë me %1$s ",
- "Shared with {email}" : "Të shpërndara me {email}",
- "Shared with %1$s by %2$s" : "E ndarë me %1$s nga %2$s",
- "Shared with {email} by {actor}" : "Ndarë me {email} nga {actor}",
- "Password for mail share sent to %1$s" : "Fjalëkalimi per ndarjen e mail-it dërguar tek %1$s",
- "Password for mail share sent to {email}" : "Fjalëkali për ndarje mail-i u dërgua tek {email}",
- "Password for mail share sent to you" : "Fjalëkalimi për ndarjen e mail ju është dërguar ",
- "You shared %1$s with %2$s by mail" : "Ju ndatë %1$s me %2$s me anë të mail",
- "You shared {file} with {email} by mail" : "Ju ndatë {skedarin} me {email} me anë të mailit ",
- "%3$s shared %1$s with %2$s by mail" : "%3$s ndau %1$s me%2$s me anë të mail",
- "{actor} shared {file} with {email} by mail" : "{aktori} shpërndau {skedarin} me{email} nga email",
- "Password to access %1$s was sent to %2s" : "Fjalëkalimi për akses %1$s ju dërgua %2s",
- "Password to access {file} was sent to {email}" : "Fjalëkalimi për akses {file} dërguar tek {email}",
- "Password to access %1$s was sent to you" : "Fjalëkalimi për të aksesuar %1$s ju është dërguar",
- "Password to access {file} was sent to you" : "Fjalëkalimi për akses {file} tu dërgua ",
- "Share by mail" : "Shpërnda me mail",
- "Failed to send share by email" : "Ndarja e dërguar me anë të email dështoi ",
- "Click the button below to open it." : "Klikoni butonin poshtë për ta hapur.",
- "Open »%s«" : "Hap »%s«",
- "Password to access »%s«" : "Fjalëkalimi për akses »%s«",
- "You can choose a different password at any time in the share dialog." : "Ju mund të zgjidhni një fjalëkalim tjetër në çdo kohë në dialogun e ndarjes.",
- "Could not find share" : "Nuk mund të gjej shpërndarje",
- "Allows users to share a personalized link to a file or folder by putting in an email address." : "Lejo përdoruesit të ndajnë një lidhje të personalizuar me një skedar ose dosje duke e vendosur në një adresë e-mail.",
- "Send password by mail" : "Dërgo fjalëkalimin me mail",
- "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "S'mund t'jua dergojmë fjalëkalimin e gjeneruar automatikisht. Ju lutem vendosni një adresë emaili të vlefshme ne mjedisin tuaj personal dhe provoni përseri. ",
- "Enforce password protection" : "Forco mbrojtjen e fjalëkalimit"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/sr.js b/apps/sharebymail/l10n/sr.js
index 3ff273a5a02..335a67828cb 100644
--- a/apps/sharebymail/l10n/sr.js
+++ b/apps/sharebymail/l10n/sr.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Није успело ажурирање конфигурације дељења путем и-мејла",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Дозвољава да људи поделе персонализовани линк на фајл или фолдер уносом имејл адресе.",
"Send password by mail" : "Пошаљи лозинку е-поштом",
- "Reply to initiator" : "Одговор иницијатору",
- "%1$s shared »%2$s« with you" : "%1$s је поделио „%2$s“ са Вама",
- "%1$s shared »%2$s« with you." : "%1$s је поделио „%2$s“ са Вама.",
- "Click the button below to open it." : "Кликните на дугме испод да га отворите.",
- "Open »%s«" : "Отвори „%s“",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s Вам је поделио/ла лозинку за приступ „%1$s“",
- "Password to access »%s«" : "Лозинка за приступ „%s“",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s је поделио „%2$s“ са Вама и жели да дода:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s је поделио „%2$s“ са Вама и жели да дода",
- "»%s« added a note to a file shared with you" : "„%s“ је додао белешку на фајл који дели са Вама",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Управо сте поделили „%1$s“ са корисником %2$s. Дељење је већ послато примаоцу. Због безбедоносне политике коју је дефинисао администратор инстанце %3$s, свако дељење мора бити заштићено лозинком и није дозвољено да пошаљете лозинку директно кориснику. Због тога морате ручно послати лозинку примаоцу.",
- "Password to access »%1$s« shared by you with %2$s" : "Корисник %2$s је поделио са Вама лозинку за приступ „%1$s“"
+ "Reply to initiator" : "Одговор иницијатору"
},
"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/sharebymail/l10n/sr.json b/apps/sharebymail/l10n/sr.json
index 6c2c43b3764..9b6c9b524b8 100644
--- a/apps/sharebymail/l10n/sr.json
+++ b/apps/sharebymail/l10n/sr.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Није успело ажурирање конфигурације дељења путем и-мејла",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Дозвољава да људи поделе персонализовани линк на фајл или фолдер уносом имејл адресе.",
"Send password by mail" : "Пошаљи лозинку е-поштом",
- "Reply to initiator" : "Одговор иницијатору",
- "%1$s shared »%2$s« with you" : "%1$s је поделио „%2$s“ са Вама",
- "%1$s shared »%2$s« with you." : "%1$s је поделио „%2$s“ са Вама.",
- "Click the button below to open it." : "Кликните на дугме испод да га отворите.",
- "Open »%s«" : "Отвори „%s“",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s Вам је поделио/ла лозинку за приступ „%1$s“",
- "Password to access »%s«" : "Лозинка за приступ „%s“",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s је поделио „%2$s“ са Вама и жели да дода:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s је поделио „%2$s“ са Вама и жели да дода",
- "»%s« added a note to a file shared with you" : "„%s“ је додао белешку на фајл који дели са Вама",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Управо сте поделили „%1$s“ са корисником %2$s. Дељење је већ послато примаоцу. Због безбедоносне политике коју је дефинисао администратор инстанце %3$s, свако дељење мора бити заштићено лозинком и није дозвољено да пошаљете лозинку директно кориснику. Због тога морате ручно послати лозинку примаоцу.",
- "Password to access »%1$s« shared by you with %2$s" : "Корисник %2$s је поделио са Вама лозинку за приступ „%1$s“"
+ "Reply to initiator" : "Одговор иницијатору"
},"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/sharebymail/l10n/sv.js b/apps/sharebymail/l10n/sv.js
index 5a11d8f057b..7190a681b07 100644
--- a/apps/sharebymail/l10n/sv.js
+++ b/apps/sharebymail/l10n/sv.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Kunde inte uppdatera konfiguration för delning via e-post",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Tillåter personer att dela en personlig länk till en fil eller mapp genom att ange en e-postadress.",
"Send password by mail" : "Skicka lösenord via e-post",
- "Reply to initiator" : "Svara till avsändaren",
- "%1$s shared »%2$s« with you" : "%1$s delade \"%2$s\" med dig",
- "%1$s shared »%2$s« with you." : "%1$s delade \"%2$s\" med dig.",
- "Click the button below to open it." : "Klicka på knappen nedan för att öppna.",
- "Open »%s«" : "Öppna \"%s\"",
- "Password to access »%1$s« shared to you by %2$s" : "Lösenord för åtkomst till \"%1$s\" delad med dig av %2$s",
- "Password to access »%s«" : "Lösenord för att komma åt \"%s\"",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s delade \"%2$s\" med dig och vill lägga till:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s delade \"%2$s\" med dig och vill lägga till",
- "»%s« added a note to a file shared with you" : "\"%s\" lade till en kommentar till en fil som delats med dig",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delade precis \"%1$s\" med %2$s. Delningen var redan skickat till mottagaren. På grund av den definierade säkerhetspolicyn av %3$s så måste varje delning vara lösenordsskyddad, och det är inte tillåtet att skicka lösenordet direkt till mottagaren. Du behöver därför vidarebefordra lösenordet manuellt till mottagaren.",
- "Password to access »%1$s« shared by you with %2$s" : "Lösenord för åtkomst till \"%1$s\" delad av dig med %2$s"
+ "Reply to initiator" : "Svara till avsändaren"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/sv.json b/apps/sharebymail/l10n/sv.json
index 162e7770e00..1fa40a5a2e1 100644
--- a/apps/sharebymail/l10n/sv.json
+++ b/apps/sharebymail/l10n/sv.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Kunde inte uppdatera konfiguration för delning via e-post",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Tillåter personer att dela en personlig länk till en fil eller mapp genom att ange en e-postadress.",
"Send password by mail" : "Skicka lösenord via e-post",
- "Reply to initiator" : "Svara till avsändaren",
- "%1$s shared »%2$s« with you" : "%1$s delade \"%2$s\" med dig",
- "%1$s shared »%2$s« with you." : "%1$s delade \"%2$s\" med dig.",
- "Click the button below to open it." : "Klicka på knappen nedan för att öppna.",
- "Open »%s«" : "Öppna \"%s\"",
- "Password to access »%1$s« shared to you by %2$s" : "Lösenord för åtkomst till \"%1$s\" delad med dig av %2$s",
- "Password to access »%s«" : "Lösenord för att komma åt \"%s\"",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s delade \"%2$s\" med dig och vill lägga till:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s delade \"%2$s\" med dig och vill lägga till",
- "»%s« added a note to a file shared with you" : "\"%s\" lade till en kommentar till en fil som delats med dig",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delade precis \"%1$s\" med %2$s. Delningen var redan skickat till mottagaren. På grund av den definierade säkerhetspolicyn av %3$s så måste varje delning vara lösenordsskyddad, och det är inte tillåtet att skicka lösenordet direkt till mottagaren. Du behöver därför vidarebefordra lösenordet manuellt till mottagaren.",
- "Password to access »%1$s« shared by you with %2$s" : "Lösenord för åtkomst till \"%1$s\" delad av dig med %2$s"
+ "Reply to initiator" : "Svara till avsändaren"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/tr.js b/apps/sharebymail/l10n/tr.js
index 9353562bb1a..bf8ca8713eb 100644
--- a/apps/sharebymail/l10n/tr.js
+++ b/apps/sharebymail/l10n/tr.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "E-posta ile paylaşım yapılandırması güncellenemedi",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Kişilerin bir e-posta adresi yazarak bir dosya ya da klasör için kişisel bir bağlantı paylaşmasını sağlar.",
"Send password by mail" : "Parola e-posta ile gönderilsin",
- "Reply to initiator" : "Başlatan yanıtlansın",
- "%1$s shared »%2$s« with you" : "%1$s, sizinle »%2$s« ögesini paylaştı",
- "%1$s shared »%2$s« with you." : "%1$s, sizinle »%2$s« ögesini paylaştı.",
- "Click the button below to open it." : "Açmak için aşağıdaki düğmeye tıklayın.",
- "Open »%s«" : "»%s« aç",
- "Password to access »%1$s« shared to you by %2$s" : "»%1$s« için sizin tarafınızdan %2$s üzerinden paylaşılan erişim parolası",
- "Password to access »%s«" : "»%s« erişim parolası",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s sizinle »%2$s« ögesini paylaştı ve eklemenizi istiyor:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s sizinle »%2$s« ögesini paylaştı ve eklemenizi istiyor",
- "»%s« added a note to a file shared with you" : "»%s« sizinle paylaştığı bir dosyaya bir not ekledi",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "»%1$s« ögesini %2$s ile paylaştınız. Paylaşım alıcıya gönderildi. %3$s yöneticisi tarafından belirlenmiş güvenlik ilkelerine göre her bir paylaşım için bir parola belirtilmesi ve bu parolanın alıcıya doğrudan gönderilmemesi gerekiyor. Bu nedenle parolayı alıcıya el ile siz iletmelisiniz.",
- "Password to access »%1$s« shared by you with %2$s" : "»%1$s« için %2$s üzerinden paylaştığınız erişim parolası"
+ "Reply to initiator" : "Başlatan yanıtlansın"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/sharebymail/l10n/tr.json b/apps/sharebymail/l10n/tr.json
index daeffd77076..50ee7163686 100644
--- a/apps/sharebymail/l10n/tr.json
+++ b/apps/sharebymail/l10n/tr.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "E-posta ile paylaşım yapılandırması güncellenemedi",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Kişilerin bir e-posta adresi yazarak bir dosya ya da klasör için kişisel bir bağlantı paylaşmasını sağlar.",
"Send password by mail" : "Parola e-posta ile gönderilsin",
- "Reply to initiator" : "Başlatan yanıtlansın",
- "%1$s shared »%2$s« with you" : "%1$s, sizinle »%2$s« ögesini paylaştı",
- "%1$s shared »%2$s« with you." : "%1$s, sizinle »%2$s« ögesini paylaştı.",
- "Click the button below to open it." : "Açmak için aşağıdaki düğmeye tıklayın.",
- "Open »%s«" : "»%s« aç",
- "Password to access »%1$s« shared to you by %2$s" : "»%1$s« için sizin tarafınızdan %2$s üzerinden paylaşılan erişim parolası",
- "Password to access »%s«" : "»%s« erişim parolası",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s sizinle »%2$s« ögesini paylaştı ve eklemenizi istiyor:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s sizinle »%2$s« ögesini paylaştı ve eklemenizi istiyor",
- "»%s« added a note to a file shared with you" : "»%s« sizinle paylaştığı bir dosyaya bir not ekledi",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "»%1$s« ögesini %2$s ile paylaştınız. Paylaşım alıcıya gönderildi. %3$s yöneticisi tarafından belirlenmiş güvenlik ilkelerine göre her bir paylaşım için bir parola belirtilmesi ve bu parolanın alıcıya doğrudan gönderilmemesi gerekiyor. Bu nedenle parolayı alıcıya el ile siz iletmelisiniz.",
- "Password to access »%1$s« shared by you with %2$s" : "»%1$s« için %2$s üzerinden paylaştığınız erişim parolası"
+ "Reply to initiator" : "Başlatan yanıtlansın"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ug.js b/apps/sharebymail/l10n/ug.js
index e572914176d..9b895fee9e1 100644
--- a/apps/sharebymail/l10n/ug.js
+++ b/apps/sharebymail/l10n/ug.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "خەت سەپلىمىسى ئارقىلىق ھەمبەھىرنى يېڭىلاشقا ئامالسىز",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "كىشىلەرنىڭ ئېلېكترونلۇق خەت ئادرېسى ئارقىلىق ھۆججەت ياكى ھۆججەت قىسقۇچقا خاسلاشتۇرۇلغان ئۇلىنىشنى ھەمبەھىرلىشىگە يول قويىدۇ.",
"Send password by mail" : "خەت ئارقىلىق پارول ئەۋەتىڭ",
- "Reply to initiator" : "تەشەببۇس قىلغۇچىغا جاۋاب قايتۇرۇڭ",
- "%1$s shared »%2$s« with you" : "%1 $ s ئورتاقلاشتى »%2 $ s« سىز بىلەن",
- "%1$s shared »%2$s« with you." : "%1 $ s ئورتاقلاشتى »%2 $ s« سىز بىلەن.",
- "Click the button below to open it." : "ئۇنى ئېچىش ئۈچۈن تۆۋەندىكى كۇنۇپكىنى بېسىڭ.",
- "Open »%s«" : "ئېچىڭ »% s«",
- "Password to access »%1$s« shared to you by %2$s" : "زىيارەت قىلىش پارولى »%1 $ s«%2 $ s بىلەن ئورتاقلاشتى",
- "Password to access »%s«" : "زىيارەت قىلىش پارولى »% s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1 $ s ھەمبەھىر »%2 $ s« سىز بىلەن قوشماقچى:",
- "%1$s shared »%2$s« with you and wants to add" : "%1 $ s ئورتاقلاشتى »%2 $ s« سىز بىلەن قوشماقچى",
- "»%s« added a note to a file shared with you" : "»% S« سىز بىلەن ئورتاقلاشقان ھۆججەتكە خاتىرە قوشتى",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "سىز پەقەت%2 $ s بىلەن ئورتاقلاشتىڭىز. بۇ ئۈلۈش ئاللىبۇرۇن تاپشۇرۇۋالغۇچىغا ئەۋەتىلگەن. باشقۇرغۇچى تەرىپىدىن بېكىتىلگەن بىخەتەرلىك سىياسىتى سەۋەبىدىن%3 $ s ھەر بىر پاينى مەخپىي نومۇر بىلەن قوغداش كېرەك ، پارولنى تاپشۇرۇۋالغۇچىغا بىۋاسىتە ئەۋەتىشكە بولمايدۇ. شۇڭلاشقا پارولنى تاپشۇرۇۋالغۇچىغا قولدا يوللىشىڭىز كېرەك.",
- "Password to access »%1$s« shared by you with %2$s" : "زىيارەت قىلىش پارولى »%1 $ s« سىز بىلەن ئورتاقلاشقان%2 $ s"
+ "Reply to initiator" : "تەشەببۇس قىلغۇچىغا جاۋاب قايتۇرۇڭ"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/ug.json b/apps/sharebymail/l10n/ug.json
index 49ea5a9d0c5..a1e645522ae 100644
--- a/apps/sharebymail/l10n/ug.json
+++ b/apps/sharebymail/l10n/ug.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "خەت سەپلىمىسى ئارقىلىق ھەمبەھىرنى يېڭىلاشقا ئامالسىز",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "كىشىلەرنىڭ ئېلېكترونلۇق خەت ئادرېسى ئارقىلىق ھۆججەت ياكى ھۆججەت قىسقۇچقا خاسلاشتۇرۇلغان ئۇلىنىشنى ھەمبەھىرلىشىگە يول قويىدۇ.",
"Send password by mail" : "خەت ئارقىلىق پارول ئەۋەتىڭ",
- "Reply to initiator" : "تەشەببۇس قىلغۇچىغا جاۋاب قايتۇرۇڭ",
- "%1$s shared »%2$s« with you" : "%1 $ s ئورتاقلاشتى »%2 $ s« سىز بىلەن",
- "%1$s shared »%2$s« with you." : "%1 $ s ئورتاقلاشتى »%2 $ s« سىز بىلەن.",
- "Click the button below to open it." : "ئۇنى ئېچىش ئۈچۈن تۆۋەندىكى كۇنۇپكىنى بېسىڭ.",
- "Open »%s«" : "ئېچىڭ »% s«",
- "Password to access »%1$s« shared to you by %2$s" : "زىيارەت قىلىش پارولى »%1 $ s«%2 $ s بىلەن ئورتاقلاشتى",
- "Password to access »%s«" : "زىيارەت قىلىش پارولى »% s«",
- "%1$s shared »%2$s« with you and wants to add:" : "%1 $ s ھەمبەھىر »%2 $ s« سىز بىلەن قوشماقچى:",
- "%1$s shared »%2$s« with you and wants to add" : "%1 $ s ئورتاقلاشتى »%2 $ s« سىز بىلەن قوشماقچى",
- "»%s« added a note to a file shared with you" : "»% S« سىز بىلەن ئورتاقلاشقان ھۆججەتكە خاتىرە قوشتى",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "سىز پەقەت%2 $ s بىلەن ئورتاقلاشتىڭىز. بۇ ئۈلۈش ئاللىبۇرۇن تاپشۇرۇۋالغۇچىغا ئەۋەتىلگەن. باشقۇرغۇچى تەرىپىدىن بېكىتىلگەن بىخەتەرلىك سىياسىتى سەۋەبىدىن%3 $ s ھەر بىر پاينى مەخپىي نومۇر بىلەن قوغداش كېرەك ، پارولنى تاپشۇرۇۋالغۇچىغا بىۋاسىتە ئەۋەتىشكە بولمايدۇ. شۇڭلاشقا پارولنى تاپشۇرۇۋالغۇچىغا قولدا يوللىشىڭىز كېرەك.",
- "Password to access »%1$s« shared by you with %2$s" : "زىيارەت قىلىش پارولى »%1 $ s« سىز بىلەن ئورتاقلاشقان%2 $ s"
+ "Reply to initiator" : "تەشەببۇس قىلغۇچىغا جاۋاب قايتۇرۇڭ"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/uk.js b/apps/sharebymail/l10n/uk.js
index 5d02a752a5e..ccbd680f25c 100644
--- a/apps/sharebymail/l10n/uk.js
+++ b/apps/sharebymail/l10n/uk.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "Не вдається оновити конфігурацію спільного доступу за допомогою пошти",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Дозволяє користувачам надавати персоналізоване посилання на файл або каталог шляхом додавання адреси ел. пошти.",
"Send password by mail" : "Надіслати пароль поштою",
- "Reply to initiator" : "Відповідь ініціатору",
- "%1$s shared »%2$s« with you" : "%1$s надав вам доступ до \"%2$s\"",
- "%1$s shared »%2$s« with you." : "%1$s надав вам доступ до \"%2$s\".",
- "Click the button below to open it." : "Для відкриття натисніть кнопку нижче.",
- "Open »%s«" : "Відкрити \"%s\"",
- "Password to access »%1$s« shared to you by %2$s" : "Паролем для доступу до %1$s, яким поділив(-ла-)ся з вами %2$s",
- "Password to access »%s«" : "Пароль для доступу \"%s\"",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s надав(-ла) доступ до \"%2$s\" та хоче додати:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s надав(-ла) доступ до \"%2$s\" та хоче додати",
- "»%s« added a note to a file shared with you" : "\"%s\" додано примітку до файлу у спільному доступі",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ви щойно надали доступ %2$s до \"%1$s\" . Через політику безпеки, яку визначено адміністратором, кожен спільний ресурс %3$s має бути захищено паролем, а пароль не можна напряму надсилати одержувачу. Будь ласка, надішліть пароль отримувачу вручну.",
- "Password to access »%1$s« shared by you with %2$s" : "Пароль для доступу до \"%1$s\", яким ви поділилися з %2$s"
+ "Reply to initiator" : "Відповідь ініціатору"
},
"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/sharebymail/l10n/uk.json b/apps/sharebymail/l10n/uk.json
index 5a6e7855774..a3caf787c87 100644
--- a/apps/sharebymail/l10n/uk.json
+++ b/apps/sharebymail/l10n/uk.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "Не вдається оновити конфігурацію спільного доступу за допомогою пошти",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "Дозволяє користувачам надавати персоналізоване посилання на файл або каталог шляхом додавання адреси ел. пошти.",
"Send password by mail" : "Надіслати пароль поштою",
- "Reply to initiator" : "Відповідь ініціатору",
- "%1$s shared »%2$s« with you" : "%1$s надав вам доступ до \"%2$s\"",
- "%1$s shared »%2$s« with you." : "%1$s надав вам доступ до \"%2$s\".",
- "Click the button below to open it." : "Для відкриття натисніть кнопку нижче.",
- "Open »%s«" : "Відкрити \"%s\"",
- "Password to access »%1$s« shared to you by %2$s" : "Паролем для доступу до %1$s, яким поділив(-ла-)ся з вами %2$s",
- "Password to access »%s«" : "Пароль для доступу \"%s\"",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s надав(-ла) доступ до \"%2$s\" та хоче додати:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s надав(-ла) доступ до \"%2$s\" та хоче додати",
- "»%s« added a note to a file shared with you" : "\"%s\" додано примітку до файлу у спільному доступі",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ви щойно надали доступ %2$s до \"%1$s\" . Через політику безпеки, яку визначено адміністратором, кожен спільний ресурс %3$s має бути захищено паролем, а пароль не можна напряму надсилати одержувачу. Будь ласка, надішліть пароль отримувачу вручну.",
- "Password to access »%1$s« shared by you with %2$s" : "Пароль для доступу до \"%1$s\", яким ви поділилися з %2$s"
+ "Reply to initiator" : "Відповідь ініціатору"
},"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/sharebymail/l10n/zh_CN.js b/apps/sharebymail/l10n/zh_CN.js
index 11e3ef966d6..5ff72c65228 100644
--- a/apps/sharebymail/l10n/zh_CN.js
+++ b/apps/sharebymail/l10n/zh_CN.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "无法通过邮箱设置更新分享",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "允许用户通过填入邮箱以分享文件或文件夹的私人链接。",
"Send password by mail" : "通过电子邮件发送密码",
- "Reply to initiator" : "回复发起人",
- "%1$s shared »%2$s« with you" : "%1$s 对您共享了 »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s 对您共享了 »%2$s«。",
- "Click the button below to open it." : "点击下面的按钮打开它。",
- "Open »%s«" : "打开 »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "访问 »%1$s« 的密码通过 %2$s 共享给你",
- "Password to access »%s«" : "访问 »%s« 的密码",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s 给您共享了 »%2$s« 并希望添加:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s 给您共享了 »%2$s« 并希望添加",
- "»%s« added a note to a file shared with you" : "»%s« 在与你共享的文件中添加了备注",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您刚刚与 %2$s 分享了 »%1$s«。此共享已发送给收件人。根据管理员定义的安全策略 %3$s,每个共享都需要受密码保护,并且不允许直接向收件人发送密码。因此,您需要将密码手动转发给收件人。",
- "Password to access »%1$s« shared by you with %2$s" : "用于访问您给 %2$s 共享的 »%1$s« 的密码"
+ "Reply to initiator" : "回复发起人"
},
"nplurals=1; plural=0;");
diff --git a/apps/sharebymail/l10n/zh_CN.json b/apps/sharebymail/l10n/zh_CN.json
index 8bc24601957..88b226e8c7a 100644
--- a/apps/sharebymail/l10n/zh_CN.json
+++ b/apps/sharebymail/l10n/zh_CN.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "无法通过邮箱设置更新分享",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "允许用户通过填入邮箱以分享文件或文件夹的私人链接。",
"Send password by mail" : "通过电子邮件发送密码",
- "Reply to initiator" : "回复发起人",
- "%1$s shared »%2$s« with you" : "%1$s 对您共享了 »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s 对您共享了 »%2$s«。",
- "Click the button below to open it." : "点击下面的按钮打开它。",
- "Open »%s«" : "打开 »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "访问 »%1$s« 的密码通过 %2$s 共享给你",
- "Password to access »%s«" : "访问 »%s« 的密码",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s 给您共享了 »%2$s« 并希望添加:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s 给您共享了 »%2$s« 并希望添加",
- "»%s« added a note to a file shared with you" : "»%s« 在与你共享的文件中添加了备注",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您刚刚与 %2$s 分享了 »%1$s«。此共享已发送给收件人。根据管理员定义的安全策略 %3$s,每个共享都需要受密码保护,并且不允许直接向收件人发送密码。因此,您需要将密码手动转发给收件人。",
- "Password to access »%1$s« shared by you with %2$s" : "用于访问您给 %2$s 共享的 »%1$s« 的密码"
+ "Reply to initiator" : "回复发起人"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/zh_HK.js b/apps/sharebymail/l10n/zh_HK.js
index 70b3bd82648..dafd502fba6 100644
--- a/apps/sharebymail/l10n/zh_HK.js
+++ b/apps/sharebymail/l10n/zh_HK.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "無法更新通過郵件分享配置",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "允許人仕透過輸入電子郵件地址來分享到檔案或資料夾的個人化連結。",
"Send password by mail" : "通過電郵發送密碼",
- "Reply to initiator" : "回覆發起人",
- "%1$s shared »%2$s« with you" : "%1$s 與您分享了 »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s 與您分享了 »%2$s«。",
- "Click the button below to open it." : "點擊下面的按鈕以打開它。",
- "Open »%s«" : "打開 »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s 與您分享了的訪問 »%1$s« 的密碼",
- "Password to access »%s«" : "存取 »%s« 的密碼",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s 與您分享了 »%2$s« 並希望添加:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s 與您分享了 »%2$s« 並希望添加",
- "»%s« added a note to a file shared with you" : "»%s« 在與您分享的檔案中添加了備註",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您剛剛與 %2$s 分享了 »%1$s«。此共享已發送給收件人。根據管理員定義的安全策略 %3$s,每個共享都需要受密碼保護,並且不允許直接向收件人發送密碼。因此,您需要將密碼手動轉發給收件人。",
- "Password to access »%1$s« shared by you with %2$s" : "您與 %2$s 分享了存取 »%1$s« 的密碼"
+ "Reply to initiator" : "回覆發起人"
},
"nplurals=1; plural=0;");
diff --git a/apps/sharebymail/l10n/zh_HK.json b/apps/sharebymail/l10n/zh_HK.json
index 26012634f39..462a6f31c44 100644
--- a/apps/sharebymail/l10n/zh_HK.json
+++ b/apps/sharebymail/l10n/zh_HK.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "無法更新通過郵件分享配置",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "允許人仕透過輸入電子郵件地址來分享到檔案或資料夾的個人化連結。",
"Send password by mail" : "通過電郵發送密碼",
- "Reply to initiator" : "回覆發起人",
- "%1$s shared »%2$s« with you" : "%1$s 與您分享了 »%2$s«",
- "%1$s shared »%2$s« with you." : "%1$s 與您分享了 »%2$s«。",
- "Click the button below to open it." : "點擊下面的按鈕以打開它。",
- "Open »%s«" : "打開 »%s«",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s 與您分享了的訪問 »%1$s« 的密碼",
- "Password to access »%s«" : "存取 »%s« 的密碼",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s 與您分享了 »%2$s« 並希望添加:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s 與您分享了 »%2$s« 並希望添加",
- "»%s« added a note to a file shared with you" : "»%s« 在與您分享的檔案中添加了備註",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您剛剛與 %2$s 分享了 »%1$s«。此共享已發送給收件人。根據管理員定義的安全策略 %3$s,每個共享都需要受密碼保護,並且不允許直接向收件人發送密碼。因此,您需要將密碼手動轉發給收件人。",
- "Password to access »%1$s« shared by you with %2$s" : "您與 %2$s 分享了存取 »%1$s« 的密碼"
+ "Reply to initiator" : "回覆發起人"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/zh_TW.js b/apps/sharebymail/l10n/zh_TW.js
index a9740765162..d6db8bc408b 100644
--- a/apps/sharebymail/l10n/zh_TW.js
+++ b/apps/sharebymail/l10n/zh_TW.js
@@ -41,17 +41,6 @@ OC.L10N.register(
"Unable to update share by mail config" : "無法更新經由郵件分享組態設定",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "允許使用者透過輸入電子郵件地址來分享到檔案或資料夾的個人化連結。",
"Send password by mail" : "經由電子郵件寄送密碼",
- "Reply to initiator" : "回覆給發起人",
- "%1$s shared »%2$s« with you" : "%1$s 與您分享了「%2$s」",
- "%1$s shared »%2$s« with you." : "%1$s 與您分享了「%2$s」。",
- "Click the button below to open it." : "點擊下方的按鈕將其打開。",
- "Open »%s«" : "開啟「%s」",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s 已與您分享存取「%1$s」的密碼",
- "Password to access »%s«" : "存取「%s」的密碼",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s 與您分享了「%2$s 」,且想要新增:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s 與您分享了「%2$s」,且想要新增",
- "»%s« added a note to a file shared with you" : "「%s」在與您分享的檔案中加入了備註",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您剛與 %2$s 分享了「%1$s」。分享已寄送給收件者。由於管理員定義的安全策略 %3$s,每個分享都需要使用密碼保護,且不允許將密碼直接傳送給收件者。因此,您必須手動將密碼轉寄給收件者。",
- "Password to access »%1$s« shared by you with %2$s" : "您與 %2$s 分享了存取「%1$s」的密碼"
+ "Reply to initiator" : "回覆給發起人"
},
"nplurals=1; plural=0;");
diff --git a/apps/sharebymail/l10n/zh_TW.json b/apps/sharebymail/l10n/zh_TW.json
index 307549bfb34..223dde4ca70 100644
--- a/apps/sharebymail/l10n/zh_TW.json
+++ b/apps/sharebymail/l10n/zh_TW.json
@@ -39,17 +39,6 @@
"Unable to update share by mail config" : "無法更新經由郵件分享組態設定",
"Allows people to share a personalized link to a file or folder by putting in an email address." : "允許使用者透過輸入電子郵件地址來分享到檔案或資料夾的個人化連結。",
"Send password by mail" : "經由電子郵件寄送密碼",
- "Reply to initiator" : "回覆給發起人",
- "%1$s shared »%2$s« with you" : "%1$s 與您分享了「%2$s」",
- "%1$s shared »%2$s« with you." : "%1$s 與您分享了「%2$s」。",
- "Click the button below to open it." : "點擊下方的按鈕將其打開。",
- "Open »%s«" : "開啟「%s」",
- "Password to access »%1$s« shared to you by %2$s" : "%2$s 已與您分享存取「%1$s」的密碼",
- "Password to access »%s«" : "存取「%s」的密碼",
- "%1$s shared »%2$s« with you and wants to add:" : "%1$s 與您分享了「%2$s 」,且想要新增:",
- "%1$s shared »%2$s« with you and wants to add" : "%1$s 與您分享了「%2$s」,且想要新增",
- "»%s« added a note to a file shared with you" : "「%s」在與您分享的檔案中加入了備註",
- "You just shared »%1$s« with %2$s. The share was already sent to the recipient. Due to the security policies defined by the administrator of %3$s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您剛與 %2$s 分享了「%1$s」。分享已寄送給收件者。由於管理員定義的安全策略 %3$s,每個分享都需要使用密碼保護,且不允許將密碼直接傳送給收件者。因此,您必須手動將密碼轉寄給收件者。",
- "Password to access »%1$s« shared by you with %2$s" : "您與 %2$s 分享了存取「%1$s」的密碼"
+ "Reply to initiator" : "回覆給發起人"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php
index e6e1cf509e9..194a402848e 100644
--- a/apps/sharebymail/lib/ShareByMailProvider.php
+++ b/apps/sharebymail/lib/ShareByMailProvider.php
@@ -1112,6 +1112,17 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
}
public function getSharesInFolder($userId, Folder $node, $reshares, $shallow = true): array {
+ return $this->getSharesInFolderInternal($userId, $node, $reshares);
+ }
+
+ public function getAllSharesInFolder(Folder $node): array {
+ return $this->getSharesInFolderInternal(null, $node, null);
+ }
+
+ /**
+ * @return array<int, list<IShare>>
+ */
+ private function getSharesInFolderInternal(?string $userId, Folder $node, ?bool $reshares): array {
$qb = $this->dbConnection->getQueryBuilder();
$qb->select('*')
->from('share', 's')
@@ -1120,18 +1131,20 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_EMAIL))
);
- /**
- * Reshares for this user are shares where they are the owner.
- */
- if ($reshares === false) {
- $qb->andWhere($qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId)));
- } else {
- $qb->andWhere(
- $qb->expr()->orX(
- $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)),
- $qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId))
- )
- );
+ if ($userId !== null) {
+ /**
+ * Reshares for this user are shares where they are the owner.
+ */
+ if ($reshares !== true) {
+ $qb->andWhere($qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId)));
+ } else {
+ $qb->andWhere(
+ $qb->expr()->orX(
+ $qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)),
+ $qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId))
+ )
+ );
+ }
}
$qb->innerJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'));
diff --git a/apps/sharebymail/tests/CapabilitiesTest.php b/apps/sharebymail/tests/CapabilitiesTest.php
index d38618650b3..0e3e74f5d2d 100644
--- a/apps/sharebymail/tests/CapabilitiesTest.php
+++ b/apps/sharebymail/tests/CapabilitiesTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,25 +11,18 @@ use OCA\ShareByMail\Capabilities;
use OCA\ShareByMail\Settings\SettingsManager;
use OCP\App\IAppManager;
use OCP\Share\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CapabilitiesTest extends TestCase {
- /** @var Capabilities */
- private $capabilities;
-
- /** @var IManager | \PHPUnit\Framework\MockObject\MockObject */
- private $manager;
-
- /** @var IManager | \PHPUnit\Framework\MockObject\MockObject */
- private $settingsManager;
-
- /** @var IAppManager | \PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
+ private IManager&MockObject $manager;
+ private SettingsManager&MockObject $settingsManager;
+ private IAppManager&MockObject $appManager;
+ private Capabilities $capabilities;
protected function setUp(): void {
parent::setUp();
-
$this->manager = $this::createMock(IManager::class);
$this->settingsManager = $this::createMock(SettingsManager::class);
$this->appManager = $this::createMock(IAppManager::class);
diff --git a/apps/sharebymail/tests/ShareByMailProviderTest.php b/apps/sharebymail/tests/ShareByMailProviderTest.php
index b8bcb4151f0..f0a69b5cf7c 100644
--- a/apps/sharebymail/tests/ShareByMailProviderTest.php
+++ b/apps/sharebymail/tests/ShareByMailProviderTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -47,7 +49,7 @@ use Test\TestCase;
* @group DB
*/
class ShareByMailProviderTest extends TestCase {
-
+
private IDBConnection $connection;
private IL10N&MockObject $l;
@@ -71,25 +73,25 @@ class ShareByMailProviderTest extends TestCase {
$this->connection = Server::get(IDBConnection::class);
- $this->l = $this->getMockBuilder(IL10N::class)->getMock();
+ $this->l = $this->createMock(IL10N::class);
$this->l->method('t')
->willReturnCallback(function ($text, $parameters = []) {
return vsprintf($text, $parameters);
});
- $this->config = $this->getMockBuilder(IConfig::class)->getMock();
- $this->logger = $this->getMockBuilder(LoggerInterface::class)->getMock();
- $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock();
- $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock();
- $this->secureRandom = $this->getMockBuilder('\OCP\Security\ISecureRandom')->getMock();
- $this->mailer = $this->getMockBuilder('\OCP\Mail\IMailer')->getMock();
- $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->getMock();
- $this->share = $this->getMockBuilder(IShare::class)->getMock();
- $this->activityManager = $this->getMockBuilder('OCP\Activity\IManager')->getMock();
- $this->settingsManager = $this->getMockBuilder(SettingsManager::class)->disableOriginalConstructor()->getMock();
+ $this->config = $this->createMock(IConfig::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
+ $this->rootFolder = $this->createMock('OCP\Files\IRootFolder');
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->secureRandom = $this->createMock('\OCP\Security\ISecureRandom');
+ $this->mailer = $this->createMock('\OCP\Mail\IMailer');
+ $this->urlGenerator = $this->createMock(IURLGenerator::class);
+ $this->share = $this->createMock(IShare::class);
+ $this->activityManager = $this->createMock('OCP\Activity\IManager');
+ $this->settingsManager = $this->createMock(SettingsManager::class);
$this->defaults = $this->createMock(Defaults::class);
- $this->hasher = $this->getMockBuilder(IHasher::class)->getMock();
- $this->eventDispatcher = $this->getMockBuilder(IEventDispatcher::class)->getMock();
- $this->shareManager = $this->getMockBuilder(IManager::class)->getMock();
+ $this->hasher = $this->createMock(IHasher::class);
+ $this->eventDispatcher = $this->createMock(IEventDispatcher::class);
+ $this->shareManager = $this->createMock(IManager::class);
$this->userManager->expects($this->any())->method('userExists')->willReturn(true);
$this->config->expects($this->any())->method('getAppValue')->with('core', 'enforce_strict_email_check')->willReturn('yes');
@@ -103,7 +105,7 @@ class ShareByMailProviderTest extends TestCase {
*/
private function getInstance(array $mockedMethods = []) {
if (!empty($mockedMethods)) {
- return $this->getMockBuilder('OCA\ShareByMail\ShareByMailProvider')
+ return $this->getMockBuilder(ShareByMailProvider::class)
->setConstructorArgs([
$this->config,
$this->connection,
@@ -119,9 +121,9 @@ class ShareByMailProviderTest extends TestCase {
$this->defaults,
$this->hasher,
$this->eventDispatcher,
- $this->shareManager
+ $this->shareManager,
])
- ->setMethods($mockedMethods)
+ ->onlyMethods($mockedMethods)
->getMock();
}
@@ -140,7 +142,7 @@ class ShareByMailProviderTest extends TestCase {
$this->defaults,
$this->hasher,
$this->eventDispatcher,
- $this->shareManager
+ $this->shareManager,
);
}
@@ -156,10 +158,10 @@ class ShareByMailProviderTest extends TestCase {
public function testCreate(): void {
$expectedShare = $this->createMock(IShare::class);
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedWith')->willReturn('user1');
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('filename');
$instance = $this->getInstance(['getSharedWith', 'createMailShare', 'getRawShare', 'createShareObject', 'createShareActivity', 'sendEmail', 'sendPassword']);
@@ -185,10 +187,10 @@ class ShareByMailProviderTest extends TestCase {
public function testCreateSendPasswordByMailWithoutEnforcedPasswordProtection(): void {
$expectedShare = $this->createMock(IShare::class);
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('filename');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedWith')->willReturn('receiver@examplelölöl.com');
$share->expects($this->any())->method('getSendPasswordByTalk')->willReturn(false);
$share->expects($this->any())->method('getSharedBy')->willReturn('owner');
@@ -227,10 +229,10 @@ class ShareByMailProviderTest extends TestCase {
public function testCreateSendPasswordByMailWithPasswordAndWithoutEnforcedPasswordProtectionWithPermanentPassword(): void {
$expectedShare = $this->createMock(IShare::class);
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('filename');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedWith')->willReturn('receiver@example.com');
$share->expects($this->any())->method('getSendPasswordByTalk')->willReturn(false);
$share->expects($this->any())->method('getSharedBy')->willReturn('owner');
@@ -273,10 +275,10 @@ class ShareByMailProviderTest extends TestCase {
public function testCreateSendPasswordByMailWithPasswordAndWithoutEnforcedPasswordProtectionWithoutPermanentPassword(): void {
$expectedShare = $this->createMock(IShare::class);
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('filename');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedWith')->willReturn('receiver@example.com');
$share->expects($this->any())->method('getSendPasswordByTalk')->willReturn(false);
$share->expects($this->any())->method('getSharedBy')->willReturn('owner');
@@ -326,10 +328,10 @@ class ShareByMailProviderTest extends TestCase {
public function testCreateSendPasswordByMailWithEnforcedPasswordProtectionWithPermanentPassword(): void {
$expectedShare = $this->createMock(IShare::class);
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('filename');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedWith')->willReturn('receiver@example.com');
$share->expects($this->any())->method('getSendPasswordByTalk')->willReturn(false);
$share->expects($this->any())->method('getSharedBy')->willReturn('owner');
@@ -374,26 +376,36 @@ class ShareByMailProviderTest extends TestCase {
$message = $this->createMock(IMessage::class);
$message->expects($this->exactly(2))->method('setTo')->with(['receiver@example.com']);
$this->mailer->expects($this->exactly(2))->method('createMessage')->willReturn($message);
- $this->mailer->expects($this->exactly(2))->method('createEMailTemplate')
- ->withConsecutive([
- 'sharebymail.RecipientNotification', [
+ $calls = [
+ [
+ 'sharebymail.RecipientNotification',
+ [
'filename' => 'filename',
'link' => 'https://example.com/file.txt',
'initiator' => 'owner',
'expiration' => null,
'shareWith' => 'receiver@example.com',
- 'note' => ''
- ]
+ 'note' => '',
+ ],
],
+ [
+ 'sharebymail.RecipientPasswordNotification',
[
- 'sharebymail.RecipientPasswordNotification', [
- 'filename' => 'filename',
- 'password' => 'autogeneratedPassword',
- 'initiator' => 'owner',
- 'initiatorEmail' => null,
- 'shareWith' => 'receiver@example.com',
- ]
- ]);
+ 'filename' => 'filename',
+ 'password' => 'autogeneratedPassword',
+ 'initiator' => 'owner',
+ 'initiatorEmail' => null,
+ 'shareWith' => 'receiver@example.com',
+ ],
+ ],
+ ];
+ $this->mailer->expects($this->exactly(2))
+ ->method('createEMailTemplate')
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return $this->createMock(IEMailTemplate::class);
+ });
// Main email notification is sent as well as the password
// to the recipient because shareApiLinkEnforcePassword is enabled.
@@ -407,10 +419,10 @@ class ShareByMailProviderTest extends TestCase {
public function testCreateSendPasswordByMailWithPasswordAndWithEnforcedPasswordProtectionWithPermanentPassword(): void {
$expectedShare = $this->createMock(IShare::class);
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('filename');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedWith')->willReturn('receiver@example.com');
$share->expects($this->any())->method('getSendPasswordByTalk')->willReturn(false);
$share->expects($this->any())->method('getSharedBy')->willReturn('owner');
@@ -448,26 +460,37 @@ class ShareByMailProviderTest extends TestCase {
$message = $this->createMock(IMessage::class);
$message->expects($this->exactly(2))->method('setTo')->with(['receiver@example.com']);
$this->mailer->expects($this->exactly(2))->method('createMessage')->willReturn($message);
- $this->mailer->expects($this->exactly(2))->method('createEMailTemplate')
- ->withConsecutive([
- 'sharebymail.RecipientNotification', [
+
+ $calls = [
+ [
+ 'sharebymail.RecipientNotification',
+ [
'filename' => 'filename',
'link' => 'https://example.com/file.txt',
'initiator' => 'owner',
'expiration' => null,
'shareWith' => 'receiver@example.com',
- 'note' => ''
- ]
+ 'note' => '',
+ ],
],
+ [
+ 'sharebymail.RecipientPasswordNotification',
[
- 'sharebymail.RecipientPasswordNotification', [
- 'filename' => 'filename',
- 'password' => 'password',
- 'initiator' => 'owner',
- 'initiatorEmail' => null,
- 'shareWith' => 'receiver@example.com',
- ]
- ]);
+ 'filename' => 'filename',
+ 'password' => 'password',
+ 'initiator' => 'owner',
+ 'initiatorEmail' => null,
+ 'shareWith' => 'receiver@example.com',
+ ],
+ ],
+ ];
+ $this->mailer->expects($this->exactly(2))
+ ->method('createEMailTemplate')
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return $this->createMock(IEMailTemplate::class);
+ });
// Main email notification is sent as well as the password
// to the recipient because the password is set.
@@ -482,15 +505,15 @@ class ShareByMailProviderTest extends TestCase {
$expectedShare = $this->createMock(IShare::class);
// The owner of the share.
- $owner = $this->getMockBuilder(IUser::class)->getMock();
+ $owner = $this->createMock(IUser::class);
$this->userManager->expects($this->any())->method('get')->with('owner')->willReturn($owner);
$owner->expects($this->any())->method('getEMailAddress')->willReturn('owner@example.com');
$owner->expects($this->any())->method('getDisplayName')->willReturn('owner');
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('filename');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedWith')->willReturn('receiver@example.com');
$share->expects($this->any())->method('getSendPasswordByTalk')->willReturn(true);
$share->expects($this->any())->method('getSharedBy')->willReturn('owner');
@@ -525,28 +548,49 @@ class ShareByMailProviderTest extends TestCase {
$instance->expects($this->once())->method('autoGeneratePassword')->with($share)->willReturn('autogeneratedPassword');
$message = $this->createMock(IMessage::class);
- $message->expects($this->exactly(2))->method('setTo')->withConsecutive([['receiver@example.com']], [['owner@example.com' => 'owner']]);
+ $setToCalls = [
+ [['receiver@example.com']],
+ [['owner@example.com' => 'owner']],
+ ];
+ $message->expects($this->exactly(2))
+ ->method('setTo')
+ ->willReturnCallback(function () use (&$setToCalls, $message) {
+ $expected = array_shift($setToCalls);
+ $this->assertEquals($expected, func_get_args());
+ return $message;
+ });
$this->mailer->expects($this->exactly(2))->method('createMessage')->willReturn($message);
- $this->mailer->expects($this->exactly(2))->method('createEMailTemplate')
- ->withConsecutive([
- 'sharebymail.RecipientNotification', [
+
+ $calls = [
+ [
+ 'sharebymail.RecipientNotification',
+ [
'filename' => 'filename',
'link' => 'https://example.com/file.txt',
'initiator' => 'owner',
'expiration' => null,
'shareWith' => 'receiver@example.com',
- 'note' => ''
- ]
+ 'note' => '',
+ ],
],
+ [
+ 'sharebymail.OwnerPasswordNotification',
[
- 'sharebymail.OwnerPasswordNotification', [
- 'filename' => 'filename',
- 'password' => 'autogeneratedPassword',
- 'initiator' => 'owner',
- 'initiatorEmail' => 'owner@example.com',
- 'shareWith' => 'receiver@example.com',
- ]
- ]);
+ 'filename' => 'filename',
+ 'password' => 'autogeneratedPassword',
+ 'initiator' => 'owner',
+ 'initiatorEmail' => 'owner@example.com',
+ 'shareWith' => 'receiver@example.com',
+ ],
+ ],
+ ];
+ $this->mailer->expects($this->exactly(2))
+ ->method('createEMailTemplate')
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return $this->createMock(IEMailTemplate::class);
+ });
// Main email notification is sent as well as the password to owner
// because the password is set and SendPasswordByTalk is enabled.
@@ -560,10 +604,10 @@ class ShareByMailProviderTest extends TestCase {
public function sendNotificationToMultipleEmails() {
$expectedShare = $this->createMock(IShare::class);
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('filename');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedWith')->willReturn('');
$share->expects($this->any())->method('getSendPasswordByTalk')->willReturn(false);
$share->expects($this->any())->method('getSharedBy')->willReturn('owner');
@@ -572,7 +616,7 @@ class ShareByMailProviderTest extends TestCase {
$share->expects($this->any())->method('getNote')->willReturn('');
$share->expects($this->any())->method('getToken')->willReturn('token');
- $attributes = $this->getMockBuilder(IAttributes::class)->getMock();
+ $attributes = $this->createMock(IAttributes::class);
$share->expects($this->any())->method('getAttributes')->willReturn($attributes);
$attributes->expects($this->any())->method('getAttribute')->with('shareWith', 'emails')->willReturn([
'receiver1@example.com',
@@ -607,8 +651,8 @@ class ShareByMailProviderTest extends TestCase {
->with($share, ['receiver1@example.com', 'receiver2@example.com', 'receiver3@example.com']);
$instance->expects($this->once())->method('sendPassword')->with($share, 'password');
$instance->expects($this->never())->method('sendPasswordToOwner');
-
-
+
+
$message = $this->createMock(IMessage::class);
$message->expects($this->never())->method('setTo');
$message->expects($this->exactly(2))->method('setBcc')->with(['receiver1@example.com', 'receiver2@example.com', 'receiver3@example.com']);
@@ -626,7 +670,7 @@ class ShareByMailProviderTest extends TestCase {
$this->expectException(\Exception::class);
$this->share->expects($this->once())->method('getSharedWith')->willReturn('user1');
- $node = $this->getMockBuilder('OCP\Files\Node')->getMock();
+ $node = $this->createMock('OCP\Files\Node');
$node->expects($this->any())->method('getName')->willReturn('fileName');
$this->share->expects($this->any())->method('getNode')->willReturn($node);
@@ -650,7 +694,7 @@ class ShareByMailProviderTest extends TestCase {
$this->share->expects($this->any())->method('getNote')->willReturn('Check this!');
$this->share->expects($this->any())->method('getMailSend')->willReturn(true);
- $node = $this->getMockBuilder('OCP\Files\Node')->getMock();
+ $node = $this->createMock('OCP\Files\Node');
$node->expects($this->any())->method('getName')->willReturn('fileName');
$this->share->expects($this->any())->method('getNode')->willReturn($node);
@@ -788,7 +832,7 @@ class ShareByMailProviderTest extends TestCase {
$this->assertSame($note, $result[0]['note']);
}
- public function dataUpdateSendPassword() {
+ public static function dataUpdateSendPassword(): array {
return [
['password', 'hashed', 'hashed new', false, false, true],
['', 'hashed', 'hashed new', false, false, false],
@@ -802,28 +846,21 @@ class ShareByMailProviderTest extends TestCase {
/**
* @dataProvider dataUpdateSendPassword
- *
- * @param string|null plainTextPassword
- * @param string originalPassword
- * @param string newPassword
- * @param string originalSendPasswordByTalk
- * @param string newSendPasswordByTalk
- * @param bool sendMail
*/
- public function testUpdateSendPassword($plainTextPassword, string $originalPassword, string $newPassword, $originalSendPasswordByTalk, $newSendPasswordByTalk, bool $sendMail): void {
+ public function testUpdateSendPassword(?string $plainTextPassword, string $originalPassword, string $newPassword, bool $originalSendPasswordByTalk, bool $newSendPasswordByTalk, bool $sendMail): void {
$node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('filename');
$this->settingsManager->method('sendPasswordByMail')->willReturn(true);
- $originalShare = $this->getMockBuilder(IShare::class)->getMock();
+ $originalShare = $this->createMock(IShare::class);
$originalShare->expects($this->any())->method('getSharedWith')->willReturn('receiver@example.com');
$originalShare->expects($this->any())->method('getNode')->willReturn($node);
$originalShare->expects($this->any())->method('getId')->willReturn(42);
$originalShare->expects($this->any())->method('getPassword')->willReturn($originalPassword);
$originalShare->expects($this->any())->method('getSendPasswordByTalk')->willReturn($originalSendPasswordByTalk);
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedWith')->willReturn('receiver@example.com');
$share->expects($this->any())->method('getNode')->willReturn($node);
$share->expects($this->any())->method('getId')->willReturn(42);
@@ -1155,8 +1192,8 @@ class ShareByMailProviderTest extends TestCase {
$provider = $this->getInstance(['sendMailNotification', 'createShareActivity']);
$this->mailer->expects($this->any())->method('validateMailAddress')->willReturn(true);
- $u1 = $userManager->createUser('testFed', md5(time()));
- $u2 = $userManager->createUser('testFed2', md5(time()));
+ $u1 = $userManager->createUser('testFed', md5((string)time()));
+ $u2 = $userManager->createUser('testFed2', md5((string)time()));
$folder1 = $rootFolder->getUserFolder($u1->getUID())->newFolder('foo');
$file1 = $folder1->newFile('bar1');
@@ -1202,8 +1239,8 @@ class ShareByMailProviderTest extends TestCase {
$provider = $this->getInstance(['sendMailNotification', 'createShareActivity']);
$this->mailer->expects($this->any())->method('validateMailAddress')->willReturn(true);
- $u1 = $userManager->createUser('testFed', md5(time()));
- $u2 = $userManager->createUser('testFed2', md5(time()));
+ $u1 = $userManager->createUser('testFed', md5((string)time()));
+ $u2 = $userManager->createUser('testFed2', md5((string)time()));
$folder = $rootFolder->getUserFolder($u1->getUID())->newFolder('foo');
@@ -1347,17 +1384,17 @@ class ShareByMailProviderTest extends TestCase {
->with('files_sharing.sharecontroller.showShare', ['token' => 'token'])
->willReturn('https://example.com/file.txt');
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('file.txt');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedBy')->willReturn('OwnerUser');
$share->expects($this->any())->method('getSharedWith')->willReturn('john@doe.com');
$share->expects($this->any())->method('getNode')->willReturn($node);
$share->expects($this->any())->method('getId')->willReturn(42);
$share->expects($this->any())->method('getNote')->willReturn('');
$share->expects($this->any())->method('getToken')->willReturn('token');
-
+
self::invokePrivate(
$provider,
'sendMailNotification',
@@ -1469,17 +1506,17 @@ class ShareByMailProviderTest extends TestCase {
->with('files_sharing.sharecontroller.showShare', ['token' => 'token'])
->willReturn('https://example.com/file.txt');
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('file.txt');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedBy')->willReturn('OwnerUser');
$share->expects($this->any())->method('getSharedWith')->willReturn('john@doe.com');
$share->expects($this->any())->method('getNode')->willReturn($node);
$share->expects($this->any())->method('getId')->willReturn(42);
$share->expects($this->any())->method('getNote')->willReturn('This is a note to the recipient');
$share->expects($this->any())->method('getToken')->willReturn('token');
-
+
self::invokePrivate(
$provider,
'sendMailNotification',
@@ -1596,10 +1633,10 @@ class ShareByMailProviderTest extends TestCase {
->with('files_sharing.sharecontroller.showShare', ['token' => 'token'])
->willReturn('https://example.com/file.txt');
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('file.txt');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedBy')->willReturn('OwnerUser');
$share->expects($this->any())->method('getSharedWith')->willReturn('john@doe.com');
$share->expects($this->any())->method('getNode')->willReturn($node);
@@ -1607,7 +1644,7 @@ class ShareByMailProviderTest extends TestCase {
$share->expects($this->any())->method('getNote')->willReturn('');
$share->expects($this->any())->method('getExpirationDate')->willReturn($expiration);
$share->expects($this->any())->method('getToken')->willReturn('token');
-
+
self::invokePrivate(
$provider,
'sendMailNotification',
@@ -1694,10 +1731,10 @@ class ShareByMailProviderTest extends TestCase {
->with('files_sharing.sharecontroller.showShare', ['token' => 'token'])
->willReturn('https://example.com/file.txt');
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('file.txt');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedBy')->willReturn('InitiatorUser');
$share->expects($this->any())->method('getSharedWith')->willReturn('john@doe.com');
$share->expects($this->any())->method('getNode')->willReturn($node);
@@ -1795,10 +1832,10 @@ class ShareByMailProviderTest extends TestCase {
->with('files_sharing.sharecontroller.showShare', ['token' => 'token'])
->willReturn('https://example.com/file.txt');
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('file.txt');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedBy')->willReturn('OwnerUser');
$share->expects($this->any())->method('getSharedWith')->willReturn('john@doe.com');
$share->expects($this->any())->method('getNode')->willReturn($node);
@@ -1892,10 +1929,10 @@ class ShareByMailProviderTest extends TestCase {
->with('files_sharing.sharecontroller.showShare', ['token' => 'token'])
->willReturn('https://example.com/file.txt');
- $node = $this->getMockBuilder(File::class)->getMock();
+ $node = $this->createMock(File::class);
$node->expects($this->any())->method('getName')->willReturn('file.txt');
- $share = $this->getMockBuilder(IShare::class)->getMock();
+ $share = $this->createMock(IShare::class);
$share->expects($this->any())->method('getSharedBy')->willReturn('InitiatorUser');
$share->expects($this->any())->method('getSharedWith')->willReturn('john@doe.com');
$share->expects($this->any())->method('getNode')->willReturn($node);
diff --git a/apps/systemtags/l10n/ar.js b/apps/systemtags/l10n/ar.js
index 6c3ec1103f3..3a14ca8b317 100644
--- a/apps/systemtags/l10n/ar.js
+++ b/apps/systemtags/l10n/ar.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "توجد سمة بنفس الاسم مسبقاً",
"Failed to load tags for file" : "تعذّر تحميل وسوم الملف",
"Failed to set tag for file" : "تعذّر وضع وسم على الملف",
- "Failed to delete tag for file" : "تعذّر حذف وسم من على ملف",
- "This file has the tag {tag}" : "هذا الملف له الوسم {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "هذا الملف له واصفات {firstTags} و {lastTag}"
+ "Failed to delete tag for file" : "تعذّر حذف وسم من على ملف"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/systemtags/l10n/ar.json b/apps/systemtags/l10n/ar.json
index 3dfbc543dab..75b5b0c1584 100644
--- a/apps/systemtags/l10n/ar.json
+++ b/apps/systemtags/l10n/ar.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "توجد سمة بنفس الاسم مسبقاً",
"Failed to load tags for file" : "تعذّر تحميل وسوم الملف",
"Failed to set tag for file" : "تعذّر وضع وسم على الملف",
- "Failed to delete tag for file" : "تعذّر حذف وسم من على ملف",
- "This file has the tag {tag}" : "هذا الملف له الوسم {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "هذا الملف له واصفات {firstTags} و {lastTag}"
+ "Failed to delete tag for file" : "تعذّر حذف وسم من على ملف"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ast.js b/apps/systemtags/l10n/ast.js
index c05916ff6bf..89980772b0c 100644
--- a/apps/systemtags/l10n/ast.js
+++ b/apps/systemtags/l10n/ast.js
@@ -82,8 +82,6 @@ OC.L10N.register(
"Missing \"Content-Location\" header" : "Falta la peñera «Content-Location»",
"Failed to load tags for file" : "Nun se puen cargar les etiquetes pal ficheru",
"Failed to set tag for file" : "Nun se puen afitar la etiqueta pal ficheru",
- "Failed to delete tag for file" : "Nun se pue desaniciar la etiqueta pal ficheru",
- "This file has the tag {tag}" : "Esti ficheru tien la etiqueta «{tag}»",
- "This file has the tags {firstTags} and {lastTag}" : "Esti ficheru tien les etiquetes «{firstTags}» y «{lastTag}»"
+ "Failed to delete tag for file" : "Nun se pue desaniciar la etiqueta pal ficheru"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/ast.json b/apps/systemtags/l10n/ast.json
index 5711620538e..79b47ddff75 100644
--- a/apps/systemtags/l10n/ast.json
+++ b/apps/systemtags/l10n/ast.json
@@ -80,8 +80,6 @@
"Missing \"Content-Location\" header" : "Falta la peñera «Content-Location»",
"Failed to load tags for file" : "Nun se puen cargar les etiquetes pal ficheru",
"Failed to set tag for file" : "Nun se puen afitar la etiqueta pal ficheru",
- "Failed to delete tag for file" : "Nun se pue desaniciar la etiqueta pal ficheru",
- "This file has the tag {tag}" : "Esti ficheru tien la etiqueta «{tag}»",
- "This file has the tags {firstTags} and {lastTag}" : "Esti ficheru tien les etiquetes «{firstTags}» y «{lastTag}»"
+ "Failed to delete tag for file" : "Nun se pue desaniciar la etiqueta pal ficheru"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/az.js b/apps/systemtags/l10n/az.js
deleted file mode 100644
index 8f0ba9e28c6..00000000000
--- a/apps/systemtags/l10n/az.js
+++ /dev/null
@@ -1,11 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "Işarələr",
- "No files in here" : "Burda fayl yoxdur",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Name" : "Ad",
- "Size" : "Həcm",
- "Modified" : "Dəyişdirildi"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/az.json b/apps/systemtags/l10n/az.json
deleted file mode 100644
index a5ab7f9e5bd..00000000000
--- a/apps/systemtags/l10n/az.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "translations": {
- "Tags" : "Işarələr",
- "No files in here" : "Burda fayl yoxdur",
- "No entries found in this folder" : "Bu qovluqda heç bir verilən tapılmadı",
- "Name" : "Ad",
- "Size" : "Həcm",
- "Modified" : "Dəyişdirildi"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/bn_BD.js b/apps/systemtags/l10n/bn_BD.js
deleted file mode 100644
index f96d6f01737..00000000000
--- a/apps/systemtags/l10n/bn_BD.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "ট্যাগ",
- "Name" : "নাম",
- "Size" : "আকার",
- "Modified" : "পরিবর্তিত"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/bn_BD.json b/apps/systemtags/l10n/bn_BD.json
deleted file mode 100644
index addec02b139..00000000000
--- a/apps/systemtags/l10n/bn_BD.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Tags" : "ট্যাগ",
- "Name" : "নাম",
- "Size" : "আকার",
- "Modified" : "পরিবর্তিত"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/bs.js b/apps/systemtags/l10n/bs.js
deleted file mode 100644
index 2a5a7390721..00000000000
--- a/apps/systemtags/l10n/bs.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Name" : "Ime",
- "Size" : "Veličina",
- "Modified" : "Izmijenjeno"
-},
-"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/systemtags/l10n/bs.json b/apps/systemtags/l10n/bs.json
deleted file mode 100644
index b9c36e5a8d3..00000000000
--- a/apps/systemtags/l10n/bs.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Name" : "Ime",
- "Size" : "Veličina",
- "Modified" : "Izmijenjeno"
-},"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/systemtags/l10n/ca.js b/apps/systemtags/l10n/ca.js
index 8f9776d1254..cbafa330c5f 100644
--- a/apps/systemtags/l10n/ca.js
+++ b/apps/systemtags/l10n/ca.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Ja existeix una etiqueta amb el mateix nom",
"Failed to load tags for file" : "No s'han pogut carregar les etiquetes del fitxer",
"Failed to set tag for file" : "No s'ha pogut definit l'etiqueta per al fitxer",
- "Failed to delete tag for file" : "No s'ha pogut suprimir l'etiqueta del fitxer",
- "This file has the tag {tag}" : "Aquest fitxer té l'etiqueta {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Aquest fitxer té les etiquetes {firstTags} i {lastTag}"
+ "Failed to delete tag for file" : "No s'ha pogut suprimir l'etiqueta del fitxer"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/ca.json b/apps/systemtags/l10n/ca.json
index b48f0ebd4ac..878a761dcf5 100644
--- a/apps/systemtags/l10n/ca.json
+++ b/apps/systemtags/l10n/ca.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Ja existeix una etiqueta amb el mateix nom",
"Failed to load tags for file" : "No s'han pogut carregar les etiquetes del fitxer",
"Failed to set tag for file" : "No s'ha pogut definit l'etiqueta per al fitxer",
- "Failed to delete tag for file" : "No s'ha pogut suprimir l'etiqueta del fitxer",
- "This file has the tag {tag}" : "Aquest fitxer té l'etiqueta {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Aquest fitxer té les etiquetes {firstTags} i {lastTag}"
+ "Failed to delete tag for file" : "No s'ha pogut suprimir l'etiqueta del fitxer"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/cs.js b/apps/systemtags/l10n/cs.js
index fe31838f8c4..849106ee0ed 100644
--- a/apps/systemtags/l10n/cs.js
+++ b/apps/systemtags/l10n/cs.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Takto znazvaný štítek už existuje",
"Failed to load tags for file" : "Nepodařilo se načíst štítky pro soubor",
"Failed to set tag for file" : "Nepodařilo se nastavit štítek pro soubor",
- "Failed to delete tag for file" : "Nepodařilo se smazat štítek pro soubor",
- "This file has the tag {tag}" : "Tento soubor má štítek {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Tento soubor má štítky {firstTags} a {lastTag}"
+ "Failed to delete tag for file" : "Nepodařilo se smazat štítek pro soubor"
},
"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/systemtags/l10n/cs.json b/apps/systemtags/l10n/cs.json
index a4018017333..a9c1bf3a893 100644
--- a/apps/systemtags/l10n/cs.json
+++ b/apps/systemtags/l10n/cs.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Takto znazvaný štítek už existuje",
"Failed to load tags for file" : "Nepodařilo se načíst štítky pro soubor",
"Failed to set tag for file" : "Nepodařilo se nastavit štítek pro soubor",
- "Failed to delete tag for file" : "Nepodařilo se smazat štítek pro soubor",
- "This file has the tag {tag}" : "Tento soubor má štítek {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Tento soubor má štítky {firstTags} a {lastTag}"
+ "Failed to delete tag for file" : "Nepodařilo se smazat štítek pro soubor"
},"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/systemtags/l10n/cy_GB.js b/apps/systemtags/l10n/cy_GB.js
deleted file mode 100644
index 37e0926605c..00000000000
--- a/apps/systemtags/l10n/cy_GB.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "Tagiau",
- "Name" : "Enw",
- "Size" : "Maint",
- "Modified" : "Addaswyd"
-},
-"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/apps/systemtags/l10n/cy_GB.json b/apps/systemtags/l10n/cy_GB.json
deleted file mode 100644
index d076240de44..00000000000
--- a/apps/systemtags/l10n/cy_GB.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Tags" : "Tagiau",
- "Name" : "Enw",
- "Size" : "Maint",
- "Modified" : "Addaswyd"
-},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/da.js b/apps/systemtags/l10n/da.js
index 5618ca4a7d9..432ba06df18 100644
--- a/apps/systemtags/l10n/da.js
+++ b/apps/systemtags/l10n/da.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Et mærke med samme navn findes allerede",
"Failed to load tags for file" : "Kunne ikke indlæse tags til fil",
"Failed to set tag for file" : "Failed to set tag for file",
- "Failed to delete tag for file" : "Failed to delete tag for file",
- "This file has the tag {tag}" : "Denne fil har tagget {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Denne fil har taggene {firstTags} og {lastTag}"
+ "Failed to delete tag for file" : "Failed to delete tag for file"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/da.json b/apps/systemtags/l10n/da.json
index 75b8526d953..1f8e3edb66d 100644
--- a/apps/systemtags/l10n/da.json
+++ b/apps/systemtags/l10n/da.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Et mærke med samme navn findes allerede",
"Failed to load tags for file" : "Kunne ikke indlæse tags til fil",
"Failed to set tag for file" : "Failed to set tag for file",
- "Failed to delete tag for file" : "Failed to delete tag for file",
- "This file has the tag {tag}" : "Denne fil har tagget {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Denne fil har taggene {firstTags} og {lastTag}"
+ "Failed to delete tag for file" : "Failed to delete tag for file"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/de.js b/apps/systemtags/l10n/de.js
index bae01f498d9..6d68e5315ea 100644
--- a/apps/systemtags/l10n/de.js
+++ b/apps/systemtags/l10n/de.js
@@ -42,7 +42,7 @@ OC.L10N.register(
"Tags" : "Tags",
"All tagged %s …" : "Alle Schlagworte %s hinzugefügt …",
"tagged %s" : "Schlagwort %s hinzugefügt",
- "Collaborative tags" : "Kollaborative Tags",
+ "Collaborative tags" : "Kollaborative Schlagworte",
"Collaborative tagging functionality which shares tags among people." : "Gemeinschaftliche Schlagwort-Funktionalität, welche Schlagworte unter den Benutzern teilt.",
"Collaborative tagging functionality which shares tags among people. 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.)" : "Schlagwort-Funktionalität für die Zusammenarbeit, die das Teilen von Schlagworten unter Benutzern ermöglicht. Sehr gut für Gruppen geeignet.\n\t(In eine Mehrkundeninstallation sollte diese App deaktiviert werden, da sonst die Schlagworte mit allen Kunden geteilt werden.)",
"Public" : "Öffentlich",
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Ein Schlagwort mit demselben Namen existiert bereits",
"Failed to load tags for file" : "Schlagworte für Datei konnten nicht geladen werden",
"Failed to set tag for file" : "Schlagwort für Datei konnte nicht gesetzt werden",
- "Failed to delete tag for file" : "Schlagwort für Datei konnte nicht gelöscht werden",
- "This file has the tag {tag}" : "Diese Datei trägt das Schlagwort {tag}.",
- "This file has the tags {firstTags} and {lastTag}" : "Diese Datei trägt die Schlagworte {firstTags} und {lastTag}."
+ "Failed to delete tag for file" : "Schlagwort für Datei konnte nicht gelöscht werden"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/de.json b/apps/systemtags/l10n/de.json
index 83fc4b6daf6..c211ecdc865 100644
--- a/apps/systemtags/l10n/de.json
+++ b/apps/systemtags/l10n/de.json
@@ -40,7 +40,7 @@
"Tags" : "Tags",
"All tagged %s …" : "Alle Schlagworte %s hinzugefügt …",
"tagged %s" : "Schlagwort %s hinzugefügt",
- "Collaborative tags" : "Kollaborative Tags",
+ "Collaborative tags" : "Kollaborative Schlagworte",
"Collaborative tagging functionality which shares tags among people." : "Gemeinschaftliche Schlagwort-Funktionalität, welche Schlagworte unter den Benutzern teilt.",
"Collaborative tagging functionality which shares tags among people. 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.)" : "Schlagwort-Funktionalität für die Zusammenarbeit, die das Teilen von Schlagworten unter Benutzern ermöglicht. Sehr gut für Gruppen geeignet.\n\t(In eine Mehrkundeninstallation sollte diese App deaktiviert werden, da sonst die Schlagworte mit allen Kunden geteilt werden.)",
"Public" : "Öffentlich",
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Ein Schlagwort mit demselben Namen existiert bereits",
"Failed to load tags for file" : "Schlagworte für Datei konnten nicht geladen werden",
"Failed to set tag for file" : "Schlagwort für Datei konnte nicht gesetzt werden",
- "Failed to delete tag for file" : "Schlagwort für Datei konnte nicht gelöscht werden",
- "This file has the tag {tag}" : "Diese Datei trägt das Schlagwort {tag}.",
- "This file has the tags {firstTags} and {lastTag}" : "Diese Datei trägt die Schlagworte {firstTags} und {lastTag}."
+ "Failed to delete tag for file" : "Schlagwort für Datei konnte nicht gelöscht werden"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/de_DE.js b/apps/systemtags/l10n/de_DE.js
index 447cb344bce..b2f27431679 100644
--- a/apps/systemtags/l10n/de_DE.js
+++ b/apps/systemtags/l10n/de_DE.js
@@ -89,7 +89,7 @@ OC.L10N.register(
"Failed to load selected tags" : "Ausgewählte Schlagworte konnten nicht geladen werden",
"Failed to select tag" : "Schlagwort konnte nicht ausgewählt werden",
"System admin disabled tag creation. You can only use existing ones." : "Die Systemadministration hat die Erstellung von Schlagworten deaktiviert. Sie können nur vorhandene Schlagworte verwenden.",
- "Loading collaborative tags …" : "Lade kollaborative Schlagworte …",
+ "Loading collaborative tags …" : "Kollaborative Schlagworte laden…",
"Search or create collaborative tags" : "Suchen oder erstellen von kollaborativen Schlagworten",
"No tags to select, type to create a new tag" : "Keine Schlagworte zur Auswahl, geben Sie ein, um ein neues Schlagwort zu erstellen",
"Unable to update setting" : "Einstellung konnte nicht aktualisiert werden",
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Ein Schlagwort mit demselben Namen existiert bereits",
"Failed to load tags for file" : "Schlagworte für Datei konnten nicht geladen werden",
"Failed to set tag for file" : "Schlagwort für Datei konnte nicht gesetzt werden",
- "Failed to delete tag for file" : "Schlagwort für Datei konnte nicht gelöscht werden",
- "This file has the tag {tag}" : "Diese Datei trägt das Schlagwort {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Diese Datei trägt die Schlagworte {firstTags} und {lastTag}"
+ "Failed to delete tag for file" : "Schlagwort für Datei konnte nicht gelöscht werden"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/de_DE.json b/apps/systemtags/l10n/de_DE.json
index cc905e232d5..e84d2b4b4de 100644
--- a/apps/systemtags/l10n/de_DE.json
+++ b/apps/systemtags/l10n/de_DE.json
@@ -87,7 +87,7 @@
"Failed to load selected tags" : "Ausgewählte Schlagworte konnten nicht geladen werden",
"Failed to select tag" : "Schlagwort konnte nicht ausgewählt werden",
"System admin disabled tag creation. You can only use existing ones." : "Die Systemadministration hat die Erstellung von Schlagworten deaktiviert. Sie können nur vorhandene Schlagworte verwenden.",
- "Loading collaborative tags …" : "Lade kollaborative Schlagworte …",
+ "Loading collaborative tags …" : "Kollaborative Schlagworte laden…",
"Search or create collaborative tags" : "Suchen oder erstellen von kollaborativen Schlagworten",
"No tags to select, type to create a new tag" : "Keine Schlagworte zur Auswahl, geben Sie ein, um ein neues Schlagwort zu erstellen",
"Unable to update setting" : "Einstellung konnte nicht aktualisiert werden",
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Ein Schlagwort mit demselben Namen existiert bereits",
"Failed to load tags for file" : "Schlagworte für Datei konnten nicht geladen werden",
"Failed to set tag for file" : "Schlagwort für Datei konnte nicht gesetzt werden",
- "Failed to delete tag for file" : "Schlagwort für Datei konnte nicht gelöscht werden",
- "This file has the tag {tag}" : "Diese Datei trägt das Schlagwort {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Diese Datei trägt die Schlagworte {firstTags} und {lastTag}"
+ "Failed to delete tag for file" : "Schlagwort für Datei konnte nicht gelöscht werden"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/el.js b/apps/systemtags/l10n/el.js
index c96b9a78ff0..fba18e951c6 100644
--- a/apps/systemtags/l10n/el.js
+++ b/apps/systemtags/l10n/el.js
@@ -56,8 +56,6 @@ OC.L10N.register(
"Failed to load tags" : "Απέτυχε η φόρτωση ετικετών",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Οι ετικέτες σε συνεργασία είναι διαθέσιμες για όλους τους χρήστες. Οι περιορισμένες ετικέτες είναι ορατές στους χρήστες, αλλά δεν μπορούν να τους ανατεθούν. Οι κρυφές ετικέτες είναι για εσωτερική χρήση, όμως οι χρήστες δεν μπορούν να τις δουν ή να τις αναθέσουν.",
"Open in Files" : "Άνοιγμα στα Αρχεία",
- "No tags found" : "Δεν βρέθηκαν ετικέτες",
- "This file has the tag {tag}" : "Αυτό το αρχείο έχει την ετικέτα {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Αυτό το αρχείο έχει τις ετικέτες {firstTags} και {lastTag}"
+ "No tags found" : "Δεν βρέθηκαν ετικέτες"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/el.json b/apps/systemtags/l10n/el.json
index f9c54f3b35c..904fb8bb7b0 100644
--- a/apps/systemtags/l10n/el.json
+++ b/apps/systemtags/l10n/el.json
@@ -54,8 +54,6 @@
"Failed to load tags" : "Απέτυχε η φόρτωση ετικετών",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Οι ετικέτες σε συνεργασία είναι διαθέσιμες για όλους τους χρήστες. Οι περιορισμένες ετικέτες είναι ορατές στους χρήστες, αλλά δεν μπορούν να τους ανατεθούν. Οι κρυφές ετικέτες είναι για εσωτερική χρήση, όμως οι χρήστες δεν μπορούν να τις δουν ή να τις αναθέσουν.",
"Open in Files" : "Άνοιγμα στα Αρχεία",
- "No tags found" : "Δεν βρέθηκαν ετικέτες",
- "This file has the tag {tag}" : "Αυτό το αρχείο έχει την ετικέτα {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Αυτό το αρχείο έχει τις ετικέτες {firstTags} και {lastTag}"
+ "No tags found" : "Δεν βρέθηκαν ετικέτες"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/en_GB.js b/apps/systemtags/l10n/en_GB.js
index ade233a41ab..123f6eaf922 100644
--- a/apps/systemtags/l10n/en_GB.js
+++ b/apps/systemtags/l10n/en_GB.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "A tag with the same name already exists",
"Failed to load tags for file" : "Failed to load tags for file",
"Failed to set tag for file" : "Failed to set tag for file",
- "Failed to delete tag for file" : "Failed to delete tag for file",
- "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}"
+ "Failed to delete tag for file" : "Failed to delete tag for file"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/en_GB.json b/apps/systemtags/l10n/en_GB.json
index 8e074a47060..5432aa5f990 100644
--- a/apps/systemtags/l10n/en_GB.json
+++ b/apps/systemtags/l10n/en_GB.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "A tag with the same name already exists",
"Failed to load tags for file" : "Failed to load tags for file",
"Failed to set tag for file" : "Failed to set tag for file",
- "Failed to delete tag for file" : "Failed to delete tag for file",
- "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}"
+ "Failed to delete tag for file" : "Failed to delete tag for file"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/eo.js b/apps/systemtags/l10n/eo.js
deleted file mode 100644
index 10711f43170..00000000000
--- a/apps/systemtags/l10n/eo.js
+++ /dev/null
@@ -1,62 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "System tag %1$s added by the system" : "Sistema etikedo %1$s aldonita de la sistemo",
- "Added system tag {systemtag}" : "Sistema etikedo {systemtag} aldonita",
- "Added system tag %1$s" : "Sistema etikedo %1$s aldonita",
- "%1$s added system tag %2$s" : "%1$s aldonis sisteman etikedon %2$s",
- "{actor} added system tag {systemtag}" : "{actor} aldonis sisteman etikedon {systemtag}",
- "System tag %1$s removed by the system" : "Sistema etikedo %1$s forigita de la sistemo",
- "Removed system tag {systemtag}" : "Sistema etikedo {systemtag} forigita",
- "Removed system tag %1$s" : "Sistema etikedo %1$s forigita",
- "%1$s removed system tag %2$s" : "%1$s forigis sisteman etikedon %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} forigis sisteman etikedon {systemtag}",
- "You created system tag %1$s" : "Vi kreis sisteman etikedon %1$s",
- "You created system tag {systemtag}" : "Vi kreis sisteman etikedon {systemtag}",
- "%1$s created system tag %2$s" : "%1$s kreis sisteman etikedon %2$s",
- "{actor} created system tag {systemtag}" : "{actor} kreis sisteman etikedon {systemtag}",
- "You deleted system tag %1$s" : "Vi forigis sisteman etikedon %1$s",
- "You deleted system tag {systemtag}" : "Vi forigis sisteman etikedon {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s forigis sisteman etikedon %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} forigis sisteman etikedon {systemtag}",
- "You updated system tag %2$s to %1$s" : "Vi ĝisdatigis sisteman etikedon %2$s al %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Vi ĝisdatigis sisteman etikedon {oldsystemtag} al {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s ĝisdatigis sisteman etikedon %3$s al %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} ĝisdatigis sisteman etikedon {oldsystemtag} al {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "Sisteman etikedon %2$s aldonis al %1$s la sistemo",
- "System tag {systemtag} was added to {file} by the system" : "Sisteman etikedon {systemtag} aldonis al {file} la sistemo",
- "You added system tag %2$s to %1$s" : "Vi aldonis sisteman etikedon %2$s al %1$s",
- "You added system tag {systemtag} to {file}" : "Vi aldonis sisteman etikedon {systemtag} al {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s aldonis sisteman etikedon %3$s al %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} aldonis sisteman etikedon {systemtag} al {file}",
- "System tag %2$s was removed from %1$s by the system" : "Sisteman etikedon %2$s forigis el %1$s la sistemo",
- "System tag {systemtag} was removed from {file} by the system" : "Sisteman etikedon {systemtag} forigis el {file} la sistemo",
- "You removed system tag %2$s from %1$s" : "Vi forigis sisteman etikedon %2$s el %1$s",
- "You removed system tag {systemtag} from {file}" : "Vi forigis sisteman etikedon {systemtag} el {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s forigis sisteman etikedon %3$s el %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} forigis sisteman etikedon {systemtag} el {file}",
- "%s (restricted)" : "%s (limigita)",
- "%s (invisible)" : "%s (nevidebla)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Sistemaj etikedoj</strong> por dosiero modifiĝis",
- "Tags" : "Etikedoj",
- "Collaborative tags" : "Kunlaboraj etikedoj",
- "Create" : "Krei",
- "Update" : "Ĝisdatigi",
- "Delete" : "Forigi",
- "Reset" : "Restarigi",
- "Loading …" : "Ŝargado...",
- "Public" : "Publika",
- "Restricted" : "Limigita",
- "Invisible" : "Nevidebla",
- "Failed to load tags" : "Ŝargo de la etikedoj malsukcesis",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Kunlaboraj etikedoj disponeblas al ĉiuj uzantoj. Limigitaj etikedoj videblas de uzantoj, kiuj tamen ne povas atribui ilin. Nevideblaj etikedoj servas por interna uzo, ĉar uzantoj nek vidas nek povas atribui ilin.",
- "No tags found" : "Neniu etikedo troviĝis ",
- "Collaborative tagging functionality which shares tags among users." : "Kunlabora etikedado por kunhavigi etikedojn inter uzantoj.",
- "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.)" : "Kunlabora etikedado por kunhavigi etikedojn inter uzantoj. Taŭga por teamoj.\n\n(Se vi estas provizanto kun plurklienta instalado, oni konsilas malŝalti tiun aplikaĵon, alimaniere etikedoj estus kunhavigitaj inter ĉiuj klientoj.)",
- "No files in here" : "Neniu dosiero estas ĉi tie",
- "No entries found in this folder" : "Neniu elemento troviĝas en ĉi tiu dosierujo",
- "Name" : "Nomo",
- "Size" : "Grando",
- "Modified" : "Modifita"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/eo.json b/apps/systemtags/l10n/eo.json
deleted file mode 100644
index 667158b8830..00000000000
--- a/apps/systemtags/l10n/eo.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{ "translations": {
- "System tag %1$s added by the system" : "Sistema etikedo %1$s aldonita de la sistemo",
- "Added system tag {systemtag}" : "Sistema etikedo {systemtag} aldonita",
- "Added system tag %1$s" : "Sistema etikedo %1$s aldonita",
- "%1$s added system tag %2$s" : "%1$s aldonis sisteman etikedon %2$s",
- "{actor} added system tag {systemtag}" : "{actor} aldonis sisteman etikedon {systemtag}",
- "System tag %1$s removed by the system" : "Sistema etikedo %1$s forigita de la sistemo",
- "Removed system tag {systemtag}" : "Sistema etikedo {systemtag} forigita",
- "Removed system tag %1$s" : "Sistema etikedo %1$s forigita",
- "%1$s removed system tag %2$s" : "%1$s forigis sisteman etikedon %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} forigis sisteman etikedon {systemtag}",
- "You created system tag %1$s" : "Vi kreis sisteman etikedon %1$s",
- "You created system tag {systemtag}" : "Vi kreis sisteman etikedon {systemtag}",
- "%1$s created system tag %2$s" : "%1$s kreis sisteman etikedon %2$s",
- "{actor} created system tag {systemtag}" : "{actor} kreis sisteman etikedon {systemtag}",
- "You deleted system tag %1$s" : "Vi forigis sisteman etikedon %1$s",
- "You deleted system tag {systemtag}" : "Vi forigis sisteman etikedon {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s forigis sisteman etikedon %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} forigis sisteman etikedon {systemtag}",
- "You updated system tag %2$s to %1$s" : "Vi ĝisdatigis sisteman etikedon %2$s al %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Vi ĝisdatigis sisteman etikedon {oldsystemtag} al {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s ĝisdatigis sisteman etikedon %3$s al %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} ĝisdatigis sisteman etikedon {oldsystemtag} al {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "Sisteman etikedon %2$s aldonis al %1$s la sistemo",
- "System tag {systemtag} was added to {file} by the system" : "Sisteman etikedon {systemtag} aldonis al {file} la sistemo",
- "You added system tag %2$s to %1$s" : "Vi aldonis sisteman etikedon %2$s al %1$s",
- "You added system tag {systemtag} to {file}" : "Vi aldonis sisteman etikedon {systemtag} al {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s aldonis sisteman etikedon %3$s al %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} aldonis sisteman etikedon {systemtag} al {file}",
- "System tag %2$s was removed from %1$s by the system" : "Sisteman etikedon %2$s forigis el %1$s la sistemo",
- "System tag {systemtag} was removed from {file} by the system" : "Sisteman etikedon {systemtag} forigis el {file} la sistemo",
- "You removed system tag %2$s from %1$s" : "Vi forigis sisteman etikedon %2$s el %1$s",
- "You removed system tag {systemtag} from {file}" : "Vi forigis sisteman etikedon {systemtag} el {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s forigis sisteman etikedon %3$s el %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} forigis sisteman etikedon {systemtag} el {file}",
- "%s (restricted)" : "%s (limigita)",
- "%s (invisible)" : "%s (nevidebla)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Sistemaj etikedoj</strong> por dosiero modifiĝis",
- "Tags" : "Etikedoj",
- "Collaborative tags" : "Kunlaboraj etikedoj",
- "Create" : "Krei",
- "Update" : "Ĝisdatigi",
- "Delete" : "Forigi",
- "Reset" : "Restarigi",
- "Loading …" : "Ŝargado...",
- "Public" : "Publika",
- "Restricted" : "Limigita",
- "Invisible" : "Nevidebla",
- "Failed to load tags" : "Ŝargo de la etikedoj malsukcesis",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Kunlaboraj etikedoj disponeblas al ĉiuj uzantoj. Limigitaj etikedoj videblas de uzantoj, kiuj tamen ne povas atribui ilin. Nevideblaj etikedoj servas por interna uzo, ĉar uzantoj nek vidas nek povas atribui ilin.",
- "No tags found" : "Neniu etikedo troviĝis ",
- "Collaborative tagging functionality which shares tags among users." : "Kunlabora etikedado por kunhavigi etikedojn inter uzantoj.",
- "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.)" : "Kunlabora etikedado por kunhavigi etikedojn inter uzantoj. Taŭga por teamoj.\n\n(Se vi estas provizanto kun plurklienta instalado, oni konsilas malŝalti tiun aplikaĵon, alimaniere etikedoj estus kunhavigitaj inter ĉiuj klientoj.)",
- "No files in here" : "Neniu dosiero estas ĉi tie",
- "No entries found in this folder" : "Neniu elemento troviĝas en ĉi tiu dosierujo",
- "Name" : "Nomo",
- "Size" : "Grando",
- "Modified" : "Modifita"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es.js b/apps/systemtags/l10n/es.js
index 69cf48cebff..3b0330bec8f 100644
--- a/apps/systemtags/l10n/es.js
+++ b/apps/systemtags/l10n/es.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Ya existe una etiqueta con el mismo nombre",
"Failed to load tags for file" : "Fallo al cargar las etiquetas del archivo",
"Failed to set tag for file" : "Fallo al asignar la etiqueta al archivo",
- "Failed to delete tag for file" : "Fallo al borrar la etiqueta del archivo",
- "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}"
+ "Failed to delete tag for file" : "Fallo al borrar la etiqueta del archivo"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es.json b/apps/systemtags/l10n/es.json
index 0ec3151f63d..13c3ccfcfb6 100644
--- a/apps/systemtags/l10n/es.json
+++ b/apps/systemtags/l10n/es.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Ya existe una etiqueta con el mismo nombre",
"Failed to load tags for file" : "Fallo al cargar las etiquetas del archivo",
"Failed to set tag for file" : "Fallo al asignar la etiqueta al archivo",
- "Failed to delete tag for file" : "Fallo al borrar la etiqueta del archivo",
- "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}"
+ "Failed to delete tag for file" : "Fallo al borrar la etiqueta del archivo"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_419.js b/apps/systemtags/l10n/es_419.js
deleted file mode 100644
index 2ba94fa5b0c..00000000000
--- a/apps/systemtags/l10n/es_419.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta {systemtag}",
- "Removed system tag %1$s" : "Etiqueta %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creó la etiqueta %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_419.json b/apps/systemtags/l10n/es_419.json
deleted file mode 100644
index 8bc408e09fb..00000000000
--- a/apps/systemtags/l10n/es_419.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta {systemtag}",
- "Removed system tag %1$s" : "Etiqueta %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creó la etiqueta %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_AR.js b/apps/systemtags/l10n/es_AR.js
deleted file mode 100644
index 2ba94fa5b0c..00000000000
--- a/apps/systemtags/l10n/es_AR.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta {systemtag}",
- "Removed system tag %1$s" : "Etiqueta %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creó la etiqueta %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_AR.json b/apps/systemtags/l10n/es_AR.json
deleted file mode 100644
index 8bc408e09fb..00000000000
--- a/apps/systemtags/l10n/es_AR.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta {systemtag}",
- "Removed system tag %1$s" : "Etiqueta %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creó la etiqueta %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_CL.js b/apps/systemtags/l10n/es_CL.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_CL.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_CL.json b/apps/systemtags/l10n/es_CL.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_CL.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_CO.js b/apps/systemtags/l10n/es_CO.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_CO.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_CO.json b/apps/systemtags/l10n/es_CO.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_CO.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_CR.js b/apps/systemtags/l10n/es_CR.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_CR.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_CR.json b/apps/systemtags/l10n/es_CR.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_CR.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_DO.js b/apps/systemtags/l10n/es_DO.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_DO.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_DO.json b/apps/systemtags/l10n/es_DO.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_DO.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_EC.js b/apps/systemtags/l10n/es_EC.js
index 188ac100f77..080c11ea9b5 100644
--- a/apps/systemtags/l10n/es_EC.js
+++ b/apps/systemtags/l10n/es_EC.js
@@ -65,8 +65,6 @@ OC.L10N.register(
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Las etiquetas colaborativas están disponibles para todos los usuarios. Las etiquetas restringidas son visibles para los usuarios, pero no pueden asignarlas. Las etiquetas invisibles son para uso interno, ya que los usuarios no pueden verlas ni asignarlas.",
"No tags found" : "No se encontraron etiquetas",
"Failed to load last used tags" : "Error al cargar las últimas etiquetas utilizadas",
- "Missing \"Content-Location\" header" : "Falta el encabezado \"Content-Location\"",
- "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}."
+ "Missing \"Content-Location\" header" : "Falta el encabezado \"Content-Location\""
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_EC.json b/apps/systemtags/l10n/es_EC.json
index 375f81a799a..830a7c9e0a2 100644
--- a/apps/systemtags/l10n/es_EC.json
+++ b/apps/systemtags/l10n/es_EC.json
@@ -63,8 +63,6 @@
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Las etiquetas colaborativas están disponibles para todos los usuarios. Las etiquetas restringidas son visibles para los usuarios, pero no pueden asignarlas. Las etiquetas invisibles son para uso interno, ya que los usuarios no pueden verlas ni asignarlas.",
"No tags found" : "No se encontraron etiquetas",
"Failed to load last used tags" : "Error al cargar las últimas etiquetas utilizadas",
- "Missing \"Content-Location\" header" : "Falta el encabezado \"Content-Location\"",
- "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}."
+ "Missing \"Content-Location\" header" : "Falta el encabezado \"Content-Location\""
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_GT.js b/apps/systemtags/l10n/es_GT.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_GT.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_GT.json b/apps/systemtags/l10n/es_GT.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_GT.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_HN.js b/apps/systemtags/l10n/es_HN.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_HN.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_HN.json b/apps/systemtags/l10n/es_HN.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_HN.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_MX.js b/apps/systemtags/l10n/es_MX.js
index f7a2d15bd16..20465f3ba80 100644
--- a/apps/systemtags/l10n/es_MX.js
+++ b/apps/systemtags/l10n/es_MX.js
@@ -81,8 +81,6 @@ OC.L10N.register(
"Missing \"Content-Location\" header" : "Falta el encabezado \"Contenido-Ubicación\"",
"Failed to load tags for file" : "No se pudieron cargar las etiquetas del archivo",
"Failed to set tag for file" : "No se pudo establecer la etiqueta del archivo",
- "Failed to delete tag for file" : "No se pudo eliminar la etiqueta del archivo",
- "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}"
+ "Failed to delete tag for file" : "No se pudo eliminar la etiqueta del archivo"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_MX.json b/apps/systemtags/l10n/es_MX.json
index d0892949470..48d9519d2b6 100644
--- a/apps/systemtags/l10n/es_MX.json
+++ b/apps/systemtags/l10n/es_MX.json
@@ -79,8 +79,6 @@
"Missing \"Content-Location\" header" : "Falta el encabezado \"Contenido-Ubicación\"",
"Failed to load tags for file" : "No se pudieron cargar las etiquetas del archivo",
"Failed to set tag for file" : "No se pudo establecer la etiqueta del archivo",
- "Failed to delete tag for file" : "No se pudo eliminar la etiqueta del archivo",
- "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}"
+ "Failed to delete tag for file" : "No se pudo eliminar la etiqueta del archivo"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_NI.js b/apps/systemtags/l10n/es_NI.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_NI.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_NI.json b/apps/systemtags/l10n/es_NI.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_NI.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_PA.js b/apps/systemtags/l10n/es_PA.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_PA.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_PA.json b/apps/systemtags/l10n/es_PA.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_PA.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_PE.js b/apps/systemtags/l10n/es_PE.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_PE.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_PE.json b/apps/systemtags/l10n/es_PE.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_PE.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_PR.js b/apps/systemtags/l10n/es_PR.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_PR.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_PR.json b/apps/systemtags/l10n/es_PR.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_PR.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_PY.js b/apps/systemtags/l10n/es_PY.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_PY.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_PY.json b/apps/systemtags/l10n/es_PY.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_PY.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_SV.js b/apps/systemtags/l10n/es_SV.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_SV.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_SV.json b/apps/systemtags/l10n/es_SV.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_SV.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/es_UY.js b/apps/systemtags/l10n/es_UY.js
deleted file mode 100644
index 9f3c7032f64..00000000000
--- a/apps/systemtags/l10n/es_UY.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/es_UY.json b/apps/systemtags/l10n/es_UY.json
deleted file mode 100644
index 3cc1abb01fc..00000000000
--- a/apps/systemtags/l10n/es_UY.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada",
- "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada",
- "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}",
- "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}",
- "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada",
- "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}",
- "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s",
- "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}",
- "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s",
- "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringido)",
- "%s (invisible)" : "%s (invisible) ",
- "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas",
- "Files" : "Archivo",
- "Tags" : "Etiquetas",
- "Collaborative tags" : "Etiquetas colaborativas",
- "Create" : "Crear",
- "Update" : "Actualizar",
- "Delete" : "Borrar",
- "Reset" : "Restaurar",
- "Public" : "Público",
- "Restricted" : "Restringido",
- "Invisible" : "Invisible",
- "No tags found" : "No se encontraron etiquetas",
- "No files in here" : "No hay archivos aquí",
- "No entries found in this folder" : "No se encontraron elementos en esta carpeta",
- "Name" : "Nombre",
- "Size" : "Tamaño",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/et_EE.js b/apps/systemtags/l10n/et_EE.js
index d8d288528d7..7a6af25cd8f 100644
--- a/apps/systemtags/l10n/et_EE.js
+++ b/apps/systemtags/l10n/et_EE.js
@@ -103,15 +103,13 @@ OC.L10N.register(
"Open in Files" : "Ava failirakenduses",
"List of tags and their associated files and folders." : "Siltude ja nendega seotud failide ja kaustade loend.",
"No tags found" : "Silte ei leidinud",
- "Tags you have created will show up here." : "Sinu loodud sildid saavad olema nähtavad siin.",
+ "Tags you have created will show up here." : "Sinu loodud sildid saavad olema nähtavad siin.",
"Failed to load tag" : "Sildi laadimine ei õnnestunud",
"Failed to load last used tags" : "Viimatikasutatud siltide laadimine ei õnnestunud",
"Missing \"Content-Location\" header" : "„Content-Location“ päisekirje on puudu",
"A tag with the same name already exists" : "Sellise nimega silt on juba olemas",
"Failed to load tags for file" : "Faili silte ei õnnestunud laadida",
"Failed to set tag for file" : "Failile ei õnnestunud silte lisada",
- "Failed to delete tag for file" : "Faililt ei õnnestunud silte eemaldada",
- "This file has the tag {tag}" : "See fail on seotud sildiga „{tag}“",
- "This file has the tags {firstTags} and {lastTag}" : "See fail on seotud siltidega „{firstTags}“ ja „{lastTag}“"
+ "Failed to delete tag for file" : "Faililt ei õnnestunud silte eemaldada"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/et_EE.json b/apps/systemtags/l10n/et_EE.json
index bf15f8b79ed..e79001a411c 100644
--- a/apps/systemtags/l10n/et_EE.json
+++ b/apps/systemtags/l10n/et_EE.json
@@ -101,15 +101,13 @@
"Open in Files" : "Ava failirakenduses",
"List of tags and their associated files and folders." : "Siltude ja nendega seotud failide ja kaustade loend.",
"No tags found" : "Silte ei leidinud",
- "Tags you have created will show up here." : "Sinu loodud sildid saavad olema nähtavad siin.",
+ "Tags you have created will show up here." : "Sinu loodud sildid saavad olema nähtavad siin.",
"Failed to load tag" : "Sildi laadimine ei õnnestunud",
"Failed to load last used tags" : "Viimatikasutatud siltide laadimine ei õnnestunud",
"Missing \"Content-Location\" header" : "„Content-Location“ päisekirje on puudu",
"A tag with the same name already exists" : "Sellise nimega silt on juba olemas",
"Failed to load tags for file" : "Faili silte ei õnnestunud laadida",
"Failed to set tag for file" : "Failile ei õnnestunud silte lisada",
- "Failed to delete tag for file" : "Faililt ei õnnestunud silte eemaldada",
- "This file has the tag {tag}" : "See fail on seotud sildiga „{tag}“",
- "This file has the tags {firstTags} and {lastTag}" : "See fail on seotud siltidega „{firstTags}“ ja „{lastTag}“"
+ "Failed to delete tag for file" : "Faililt ei õnnestunud silte eemaldada"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/eu.js b/apps/systemtags/l10n/eu.js
index 3f37f577b01..9339281ad0a 100644
--- a/apps/systemtags/l10n/eu.js
+++ b/apps/systemtags/l10n/eu.js
@@ -95,8 +95,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Izen bereko etiketa bat dagoeneko existitzen da",
"Failed to load tags for file" : "Fitxategiarentzako etiketak kargatzeak huts egin du",
"Failed to set tag for file" : "Fitxategiarentzako etiketa ezartzeak huts egin du",
- "Failed to delete tag for file" : "Fitxategiaren etiketa ezabatzeak huts egin du",
- "This file has the tag {tag}" : "Fitxategi honek {tag} etiketa dauka",
- "This file has the tags {firstTags} and {lastTag}" : "Fitxategi honek {firstTags} eta {lastTag} etiketak ditu"
+ "Failed to delete tag for file" : "Fitxategiaren etiketa ezabatzeak huts egin du"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/eu.json b/apps/systemtags/l10n/eu.json
index 67ac014c494..094cea90ba1 100644
--- a/apps/systemtags/l10n/eu.json
+++ b/apps/systemtags/l10n/eu.json
@@ -93,8 +93,6 @@
"A tag with the same name already exists" : "Izen bereko etiketa bat dagoeneko existitzen da",
"Failed to load tags for file" : "Fitxategiarentzako etiketak kargatzeak huts egin du",
"Failed to set tag for file" : "Fitxategiarentzako etiketa ezartzeak huts egin du",
- "Failed to delete tag for file" : "Fitxategiaren etiketa ezabatzeak huts egin du",
- "This file has the tag {tag}" : "Fitxategi honek {tag} etiketa dauka",
- "This file has the tags {firstTags} and {lastTag}" : "Fitxategi honek {firstTags} eta {lastTag} etiketak ditu"
+ "Failed to delete tag for file" : "Fitxategiaren etiketa ezabatzeak huts egin du"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/fa.js b/apps/systemtags/l10n/fa.js
index 8ecf18b947d..ff0c4bba17b 100644
--- a/apps/systemtags/l10n/fa.js
+++ b/apps/systemtags/l10n/fa.js
@@ -53,6 +53,7 @@ OC.L10N.register(
"Update" : "به روز رسانی",
"Delete" : "حذف",
"Reset" : "ریست",
+ "Loading …" : "در حال بارگذاری...",
"Manage tags" : "مدیریت برچسب ها",
"Cancel" : "منصرف شدن",
"Failed to load tags" : "بارگیری برچسب ها انجام نشد",
@@ -65,8 +66,6 @@ OC.L10N.register(
"Open in Files" : "در فایل باز کنید",
"No tags found" : "هیچ برچسبی یافت نشد",
"Failed to load last used tags" : "Failed to load last used tags",
- "Missing \"Content-Location\" header" : "Missing \"Content-Location\" header",
- "This file has the tag {tag}" : "این فایل دارای تگ {tag} است",
- "This file has the tags {firstTags} and {lastTag}" : "این فایل دارای تگ‌های {firstTags} و {lastTag} است."
+ "Missing \"Content-Location\" header" : "Missing \"Content-Location\" header"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/systemtags/l10n/fa.json b/apps/systemtags/l10n/fa.json
index ea3f2f48e21..7a542ff1a52 100644
--- a/apps/systemtags/l10n/fa.json
+++ b/apps/systemtags/l10n/fa.json
@@ -51,6 +51,7 @@
"Update" : "به روز رسانی",
"Delete" : "حذف",
"Reset" : "ریست",
+ "Loading …" : "در حال بارگذاری...",
"Manage tags" : "مدیریت برچسب ها",
"Cancel" : "منصرف شدن",
"Failed to load tags" : "بارگیری برچسب ها انجام نشد",
@@ -63,8 +64,6 @@
"Open in Files" : "در فایل باز کنید",
"No tags found" : "هیچ برچسبی یافت نشد",
"Failed to load last used tags" : "Failed to load last used tags",
- "Missing \"Content-Location\" header" : "Missing \"Content-Location\" header",
- "This file has the tag {tag}" : "این فایل دارای تگ {tag} است",
- "This file has the tags {firstTags} and {lastTag}" : "این فایل دارای تگ‌های {firstTags} و {lastTag} است."
+ "Missing \"Content-Location\" header" : "Missing \"Content-Location\" header"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/fi.js b/apps/systemtags/l10n/fi.js
index 03c747933f2..cf623f7baf3 100644
--- a/apps/systemtags/l10n/fi.js
+++ b/apps/systemtags/l10n/fi.js
@@ -67,8 +67,6 @@ OC.L10N.register(
"Open in Files" : "Avaa tiedostosovelluksessa",
"No tags found" : "Tunnisteita ei löytynyt",
"Tags you have created will show up here." : "Luomasi tunnisteet näkyvät täällä.",
- "Missing \"Content-Location\" header" : "\"Content-Location\"-otsake puuttuu",
- "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}"
+ "Missing \"Content-Location\" header" : "\"Content-Location\"-otsake puuttuu"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/fi.json b/apps/systemtags/l10n/fi.json
index 8bc960c2759..65cbc052849 100644
--- a/apps/systemtags/l10n/fi.json
+++ b/apps/systemtags/l10n/fi.json
@@ -65,8 +65,6 @@
"Open in Files" : "Avaa tiedostosovelluksessa",
"No tags found" : "Tunnisteita ei löytynyt",
"Tags you have created will show up here." : "Luomasi tunnisteet näkyvät täällä.",
- "Missing \"Content-Location\" header" : "\"Content-Location\"-otsake puuttuu",
- "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}"
+ "Missing \"Content-Location\" header" : "\"Content-Location\"-otsake puuttuu"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/fr.js b/apps/systemtags/l10n/fr.js
index 6cf71ed14c3..eb98fc5abd9 100644
--- a/apps/systemtags/l10n/fr.js
+++ b/apps/systemtags/l10n/fr.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Une étiquette portant le même nom existe déjà",
"Failed to load tags for file" : "Impossible de charger les étiquettes du fichier",
"Failed to set tag for file" : "Impossible d'attribuer l'étiquette au fichier",
- "Failed to delete tag for file" : "Impossible de supprimer l'étiquette au fichier",
- "This file has the tag {tag}" : "Ce fichier porte l'étiquette {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Ce fichier porte les étiquettes {firstTags} et {lastTag}"
+ "Failed to delete tag for file" : "Impossible de supprimer l'étiquette au fichier"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/fr.json b/apps/systemtags/l10n/fr.json
index 543b5a83889..22be89bc601 100644
--- a/apps/systemtags/l10n/fr.json
+++ b/apps/systemtags/l10n/fr.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Une étiquette portant le même nom existe déjà",
"Failed to load tags for file" : "Impossible de charger les étiquettes du fichier",
"Failed to set tag for file" : "Impossible d'attribuer l'étiquette au fichier",
- "Failed to delete tag for file" : "Impossible de supprimer l'étiquette au fichier",
- "This file has the tag {tag}" : "Ce fichier porte l'étiquette {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Ce fichier porte les étiquettes {firstTags} et {lastTag}"
+ "Failed to delete tag for file" : "Impossible de supprimer l'étiquette au fichier"
},"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/systemtags/l10n/ga.js b/apps/systemtags/l10n/ga.js
index b87b0e2a353..a4affab405b 100644
--- a/apps/systemtags/l10n/ga.js
+++ b/apps/systemtags/l10n/ga.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Tá clib leis an ainm céanna ann cheana féin",
"Failed to load tags for file" : "Theip ar lódáil clibeanna don chomhad",
"Failed to set tag for file" : "Theip ar chlib a shocrú don chomhad",
- "Failed to delete tag for file" : "Theip ar scriosadh an chlib don chomhad",
- "This file has the tag {tag}" : "Tá an chlib {tag} ag an gcomhad seo",
- "This file has the tags {firstTags} and {lastTag}" : "Tá na clibeanna {firstTags} agus {lastTag} sa chomhad seo"
+ "Failed to delete tag for file" : "Theip ar scriosadh an chlib don chomhad"
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/systemtags/l10n/ga.json b/apps/systemtags/l10n/ga.json
index e67d205cca8..b1a3dc61c7f 100644
--- a/apps/systemtags/l10n/ga.json
+++ b/apps/systemtags/l10n/ga.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Tá clib leis an ainm céanna ann cheana féin",
"Failed to load tags for file" : "Theip ar lódáil clibeanna don chomhad",
"Failed to set tag for file" : "Theip ar chlib a shocrú don chomhad",
- "Failed to delete tag for file" : "Theip ar scriosadh an chlib don chomhad",
- "This file has the tag {tag}" : "Tá an chlib {tag} ag an gcomhad seo",
- "This file has the tags {firstTags} and {lastTag}" : "Tá na clibeanna {firstTags} agus {lastTag} sa chomhad seo"
+ "Failed to delete tag for file" : "Theip ar scriosadh an chlib don chomhad"
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/gl.js b/apps/systemtags/l10n/gl.js
index 40dda4fd935..8a6568bcd5a 100644
--- a/apps/systemtags/l10n/gl.js
+++ b/apps/systemtags/l10n/gl.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Xa existe outra etiqueta co mesmo nome",
"Failed to load tags for file" : "Produciuse un fallo ao cargar as etiquetas do ficheiro",
"Failed to set tag for file" : "Produciuse un fallo ao definir a etiqueta para o ficheiro",
- "Failed to delete tag for file" : "Produciuse un fallo ao eliminar a etiqueta do ficheiro",
- "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}"
+ "Failed to delete tag for file" : "Produciuse un fallo ao eliminar a etiqueta do ficheiro"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/gl.json b/apps/systemtags/l10n/gl.json
index 50a4a62c824..bce171c733b 100644
--- a/apps/systemtags/l10n/gl.json
+++ b/apps/systemtags/l10n/gl.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Xa existe outra etiqueta co mesmo nome",
"Failed to load tags for file" : "Produciuse un fallo ao cargar as etiquetas do ficheiro",
"Failed to set tag for file" : "Produciuse un fallo ao definir a etiqueta para o ficheiro",
- "Failed to delete tag for file" : "Produciuse un fallo ao eliminar a etiqueta do ficheiro",
- "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}"
+ "Failed to delete tag for file" : "Produciuse un fallo ao eliminar a etiqueta do ficheiro"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/hr.js b/apps/systemtags/l10n/hr.js
deleted file mode 100644
index 4ad78026105..00000000000
--- a/apps/systemtags/l10n/hr.js
+++ /dev/null
@@ -1,58 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "System tag %1$s added by the system" : "Sustav je dodao oznaku sustava %1$s",
- "Added system tag {systemtag}" : "Dodana oznaka sustava {systemtag}",
- "Added system tag %1$s" : "Dodana oznaka sustava %1$s",
- "%1$s added system tag %2$s" : "%1$s je dodao oznaku sustava %2$s",
- "{actor} added system tag {systemtag}" : "{actor} je dodao oznaku sustava {systemtag}",
- "System tag %1$s removed by the system" : "Sustav je uklonio oznaku sustava %1$s",
- "Removed system tag {systemtag}" : "Uklonjena oznaka sustava {systemtag}",
- "Removed system tag %1$s" : "Uklonjena oznaka sustava %1$s",
- "%1$s removed system tag %2$s" : "%1$s je uklonio oznaku sustava %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} je uklonio oznaku sustava {systemtag}",
- "You created system tag %1$s" : "Stvorili ste oznaku sustava %1$s",
- "You created system tag {systemtag}" : "Stvorili ste oznaku sustava {systemtag}",
- "%1$s created system tag %2$s" : "%1$s je stvorio oznaku sustava %2$s",
- "{actor} created system tag {systemtag}" : "{actor} je stvorio oznaku sustava {systemtag}",
- "You deleted system tag %1$s" : "Izbrisali ste oznaku sustava %1$s",
- "You deleted system tag {systemtag}" : "Izbrisali ste oznaku sustava {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s je izbrisao oznaku sustava %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} je izbrisao oznaku sustava {systemtag}",
- "You updated system tag %2$s to %1$s" : "Ažurirali ste oznaku sustava %2$s na %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Ažurirali ste oznaku sustava {oldsystemtag} na {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s je ažurirao oznaku sustava %3$s na %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} je ažurirao oznaku sustava {oldsystemtag} na {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "Sustav je dodao u %1$s oznaku sustava %2$s",
- "System tag {systemtag} was added to {file} by the system" : "Sustav je dodao u {file} oznaku sustava {systemtag}",
- "You added system tag %2$s to %1$s" : "Dodali ste oznaku sustava %2$s u %1$s",
- "You added system tag {systemtag} to {file}" : "Dodali ste oznaku sustava {systemtag} u {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s je dodao oznaku sustava %3$s u %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} je dodao oznaku sustava {systemtag} u {file}",
- "System tag %2$s was removed from %1$s by the system" : "Sustav je uklonio iz %1$s oznaku sustava %2$s",
- "System tag {systemtag} was removed from {file} by the system" : "Sustav je uklonio iz {file} oznaku sustava {systemtag}",
- "You removed system tag %2$s from %1$s" : "Uklonili ste oznaku sustava %2$s iz %1$s",
- "You removed system tag {systemtag} from {file}" : "Uklonili ste oznaku sustava {systemtag} iz {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s je uklonio oznaku sustava %3$s iz %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} je uklonio oznaku sustava {systemtag} iz {file}",
- "%s (restricted)" : "%s (ograničeno)",
- "%s (invisible)" : "%s (nevidljivo)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Oznake sustava</strong> za datoteku su izmijenjene",
- "Files" : "Datoteke",
- "Tags" : "Oznake",
- "Collaborative tags" : "Oznake za suradnju",
- "Public" : "Javna",
- "Restricted" : "Ograničena",
- "Invisible" : "Nevidljiva",
- "Create" : "Stvori",
- "Update" : "Ažuriraj",
- "Delete" : "Izbriši",
- "Reset" : "Resetiraj",
- "Loading …" : "Učitavanje…",
- "Manage tags" : "Upravljaj oznakama",
- "Cancel" : "Odustani",
- "Failed to load tags" : "Učitavanje oznaka nije uspjelo",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Oznake za suradnju dostupne su svim korisnicima. Ograničene oznake vidljive su korisnicima, ali ih ne mogu dodijeliti. Nevidljive oznake služe za internu uporabu jer ih korisnici ne mogu vidjeti niti dodijeliti.",
- "No tags found" : "Nema pronađenih oznaka"
-},
-"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/systemtags/l10n/hr.json b/apps/systemtags/l10n/hr.json
deleted file mode 100644
index 860dd1836c2..00000000000
--- a/apps/systemtags/l10n/hr.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{ "translations": {
- "System tag %1$s added by the system" : "Sustav je dodao oznaku sustava %1$s",
- "Added system tag {systemtag}" : "Dodana oznaka sustava {systemtag}",
- "Added system tag %1$s" : "Dodana oznaka sustava %1$s",
- "%1$s added system tag %2$s" : "%1$s je dodao oznaku sustava %2$s",
- "{actor} added system tag {systemtag}" : "{actor} je dodao oznaku sustava {systemtag}",
- "System tag %1$s removed by the system" : "Sustav je uklonio oznaku sustava %1$s",
- "Removed system tag {systemtag}" : "Uklonjena oznaka sustava {systemtag}",
- "Removed system tag %1$s" : "Uklonjena oznaka sustava %1$s",
- "%1$s removed system tag %2$s" : "%1$s je uklonio oznaku sustava %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} je uklonio oznaku sustava {systemtag}",
- "You created system tag %1$s" : "Stvorili ste oznaku sustava %1$s",
- "You created system tag {systemtag}" : "Stvorili ste oznaku sustava {systemtag}",
- "%1$s created system tag %2$s" : "%1$s je stvorio oznaku sustava %2$s",
- "{actor} created system tag {systemtag}" : "{actor} je stvorio oznaku sustava {systemtag}",
- "You deleted system tag %1$s" : "Izbrisali ste oznaku sustava %1$s",
- "You deleted system tag {systemtag}" : "Izbrisali ste oznaku sustava {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s je izbrisao oznaku sustava %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} je izbrisao oznaku sustava {systemtag}",
- "You updated system tag %2$s to %1$s" : "Ažurirali ste oznaku sustava %2$s na %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Ažurirali ste oznaku sustava {oldsystemtag} na {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s je ažurirao oznaku sustava %3$s na %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} je ažurirao oznaku sustava {oldsystemtag} na {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "Sustav je dodao u %1$s oznaku sustava %2$s",
- "System tag {systemtag} was added to {file} by the system" : "Sustav je dodao u {file} oznaku sustava {systemtag}",
- "You added system tag %2$s to %1$s" : "Dodali ste oznaku sustava %2$s u %1$s",
- "You added system tag {systemtag} to {file}" : "Dodali ste oznaku sustava {systemtag} u {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s je dodao oznaku sustava %3$s u %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} je dodao oznaku sustava {systemtag} u {file}",
- "System tag %2$s was removed from %1$s by the system" : "Sustav je uklonio iz %1$s oznaku sustava %2$s",
- "System tag {systemtag} was removed from {file} by the system" : "Sustav je uklonio iz {file} oznaku sustava {systemtag}",
- "You removed system tag %2$s from %1$s" : "Uklonili ste oznaku sustava %2$s iz %1$s",
- "You removed system tag {systemtag} from {file}" : "Uklonili ste oznaku sustava {systemtag} iz {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s je uklonio oznaku sustava %3$s iz %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} je uklonio oznaku sustava {systemtag} iz {file}",
- "%s (restricted)" : "%s (ograničeno)",
- "%s (invisible)" : "%s (nevidljivo)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Oznake sustava</strong> za datoteku su izmijenjene",
- "Files" : "Datoteke",
- "Tags" : "Oznake",
- "Collaborative tags" : "Oznake za suradnju",
- "Public" : "Javna",
- "Restricted" : "Ograničena",
- "Invisible" : "Nevidljiva",
- "Create" : "Stvori",
- "Update" : "Ažuriraj",
- "Delete" : "Izbriši",
- "Reset" : "Resetiraj",
- "Loading …" : "Učitavanje…",
- "Manage tags" : "Upravljaj oznakama",
- "Cancel" : "Odustani",
- "Failed to load tags" : "Učitavanje oznaka nije uspjelo",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Oznake za suradnju dostupne su svim korisnicima. Ograničene oznake vidljive su korisnicima, ali ih ne mogu dodijeliti. Nevidljive oznake služe za internu uporabu jer ih korisnici ne mogu vidjeti niti dodijeliti.",
- "No tags found" : "Nema pronađenih oznaka"
-},"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/systemtags/l10n/hu.js b/apps/systemtags/l10n/hu.js
index 563c7d48566..c959edc656e 100644
--- a/apps/systemtags/l10n/hu.js
+++ b/apps/systemtags/l10n/hu.js
@@ -77,8 +77,6 @@ OC.L10N.register(
"No tags found" : "Nem találhatók címkék",
"Tags you have created will show up here." : "A saját címkék itt jelennek meg.",
"Failed to load last used tags" : "A legutóbb használt címkék betöltése sikertelen",
- "Missing \"Content-Location\" header" : "Hiányzó „Content-Location” fejléc",
- "This file has the tag {tag}" : "Ennek a fájlnak ez a címkéje: {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Ennek a fájlnak ezek a címkéi: {firstTags} és {lastTag}"
+ "Missing \"Content-Location\" header" : "Hiányzó „Content-Location” fejléc"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/hu.json b/apps/systemtags/l10n/hu.json
index e5b26e61213..e12841fce9a 100644
--- a/apps/systemtags/l10n/hu.json
+++ b/apps/systemtags/l10n/hu.json
@@ -75,8 +75,6 @@
"No tags found" : "Nem találhatók címkék",
"Tags you have created will show up here." : "A saját címkék itt jelennek meg.",
"Failed to load last used tags" : "A legutóbb használt címkék betöltése sikertelen",
- "Missing \"Content-Location\" header" : "Hiányzó „Content-Location” fejléc",
- "This file has the tag {tag}" : "Ennek a fájlnak ez a címkéje: {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Ennek a fájlnak ezek a címkéi: {firstTags} és {lastTag}"
+ "Missing \"Content-Location\" header" : "Hiányzó „Content-Location” fejléc"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/hy.js b/apps/systemtags/l10n/hy.js
deleted file mode 100644
index 57a5000ebc2..00000000000
--- a/apps/systemtags/l10n/hy.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "No files in here" : "Ֆայլեր չկան այստեղ",
- "Name" : "Անուն",
- "Size" : "Չափս",
- "Modified" : "Փոփոխված"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/hy.json b/apps/systemtags/l10n/hy.json
deleted file mode 100644
index bb499722f50..00000000000
--- a/apps/systemtags/l10n/hy.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "No files in here" : "Ֆայլեր չկան այստեղ",
- "Name" : "Անուն",
- "Size" : "Չափս",
- "Modified" : "Փոփոխված"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ia.js b/apps/systemtags/l10n/ia.js
deleted file mode 100644
index d774dba5d75..00000000000
--- a/apps/systemtags/l10n/ia.js
+++ /dev/null
@@ -1,51 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Etiquetta de systema {systemtag} addite",
- "Added system tag %1$s" : "Etiquetta de systema %1$s addite",
- "%1$s added system tag %2$s" : "%1$s addeva le etiquetta de systema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} addeva le etiquetta de systema {systemtag}",
- "Removed system tag {systemtag}" : "Etiquetta de systema {systemtag} removite",
- "Removed system tag %1$s" : "Etiquetta de systema %1$s removite",
- "%1$s removed system tag %2$s" : "%1$s removeva le etiquetta de systema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} removeva le etiquetta de systema {systemtag}",
- "You created system tag %1$s" : "Tu creava le etiquetta de systema %1$s",
- "You created system tag {systemtag}" : "Tu creava le etiquetta de systema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creava le etiquetta de systema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creava le etiquetta de systema {systemtag}",
- "You deleted system tag %1$s" : "Tu deleva le etiquetta de systema %1$s",
- "You deleted system tag {systemtag}" : "Tu deleva le etiquetta de systema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s deleva le etiquetta de systema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} deleva le etiquetta de systema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Tu actualisava le etiquetta de systema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Tu actualisava le etiquetta de systema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualisava le etiquetta de systema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualisava le etiquetta de systema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Tu addeva le etiquetta de systema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Tu addeva le etiquetta de systema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s addeva le etiquetta de systema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} addeva le etiquetta de systema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Tu removeva le etiquetta de systema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Tu removeva le etiquetta de systema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s removeva le etiquetta de systema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} removeva le etiquetta de systema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringite)",
- "%s (invisible)" : "%s (invisibile)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Le etiquettas de systema</strong> de un file esseva modificate",
- "Tags" : "Etiquettas",
- "Collaborative tags" : "Etiquettas collaborative",
- "Create" : "Crear",
- "Update" : "Actualisation",
- "Delete" : "Deler",
- "Reset" : "Reinitialisar",
- "Public" : "Public",
- "Restricted" : "Restringite",
- "Invisible" : "Invisibile",
- "No tags found" : "Nulle etiquettas trovate",
- "No files in here" : "Nulle files ci",
- "No entries found in this folder" : "Nulle entratas trovate in iste dossier",
- "Name" : "Nomine",
- "Size" : "Dimension",
- "Modified" : "Modificate"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/ia.json b/apps/systemtags/l10n/ia.json
deleted file mode 100644
index f78ce39fab2..00000000000
--- a/apps/systemtags/l10n/ia.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Etiquetta de systema {systemtag} addite",
- "Added system tag %1$s" : "Etiquetta de systema %1$s addite",
- "%1$s added system tag %2$s" : "%1$s addeva le etiquetta de systema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} addeva le etiquetta de systema {systemtag}",
- "Removed system tag {systemtag}" : "Etiquetta de systema {systemtag} removite",
- "Removed system tag %1$s" : "Etiquetta de systema %1$s removite",
- "%1$s removed system tag %2$s" : "%1$s removeva le etiquetta de systema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} removeva le etiquetta de systema {systemtag}",
- "You created system tag %1$s" : "Tu creava le etiquetta de systema %1$s",
- "You created system tag {systemtag}" : "Tu creava le etiquetta de systema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s creava le etiquetta de systema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} creava le etiquetta de systema {systemtag}",
- "You deleted system tag %1$s" : "Tu deleva le etiquetta de systema %1$s",
- "You deleted system tag {systemtag}" : "Tu deleva le etiquetta de systema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s deleva le etiquetta de systema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} deleva le etiquetta de systema {systemtag}",
- "You updated system tag %2$s to %1$s" : "Tu actualisava le etiquetta de systema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Tu actualisava le etiquetta de systema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s actualisava le etiquetta de systema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualisava le etiquetta de systema {oldsystemtag} a {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Tu addeva le etiquetta de systema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "Tu addeva le etiquetta de systema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s addeva le etiquetta de systema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} addeva le etiquetta de systema {systemtag} a {file}",
- "You removed system tag %2$s from %1$s" : "Tu removeva le etiquetta de systema %2$s de %1$s",
- "You removed system tag {systemtag} from {file}" : "Tu removeva le etiquetta de systema {systemtag} de {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s removeva le etiquetta de systema %3$s de %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} removeva le etiquetta de systema {systemtag} de {file}",
- "%s (restricted)" : "%s (restringite)",
- "%s (invisible)" : "%s (invisibile)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Le etiquettas de systema</strong> de un file esseva modificate",
- "Tags" : "Etiquettas",
- "Collaborative tags" : "Etiquettas collaborative",
- "Create" : "Crear",
- "Update" : "Actualisation",
- "Delete" : "Deler",
- "Reset" : "Reinitialisar",
- "Public" : "Public",
- "Restricted" : "Restringite",
- "Invisible" : "Invisibile",
- "No tags found" : "Nulle etiquettas trovate",
- "No files in here" : "Nulle files ci",
- "No entries found in this folder" : "Nulle entratas trovate in iste dossier",
- "Name" : "Nomine",
- "Size" : "Dimension",
- "Modified" : "Modificate"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/id.js b/apps/systemtags/l10n/id.js
deleted file mode 100644
index f6b9d6468bf..00000000000
--- a/apps/systemtags/l10n/id.js
+++ /dev/null
@@ -1,42 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "Tag",
- "Update" : "Pembaruan",
- "Create" : "Buat",
- "Select tag…" : "Pilih tag...",
- "Tagged files" : "Berkas ter-tag",
- "Select tags to filter by" : "Pilih tag untuk disaring",
- "Please select tags to filter by" : "Mohon pilih tag untuk disaring",
- "No files found for the selected tags" : "Berkas tidak ditemukan untuk tag yang dipilih",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Tag sistem</strong> untuk sebuah berkas telah dimodifikasi",
- "You created system tag %2$s" : "Anda membuat tag sistem %2$s",
- "%1$s created system tag %2$s" : "%1$s membuat tag sistem %2$s",
- "You deleted system tag %2$s" : "Anda menghapus tag sistem %2$s",
- "%1$s deleted system tag %2$s" : "%1$s menghapus tag sistem %2$s",
- "You updated system tag %3$s to %2$s" : "Anda memperbarui tag sistem %3$s ke %2$s",
- "%1$s updated system tag %3$s to %2$s" : "%1$s memperbarui tag sistem %3$s ke %2$s",
- "%s (restricted)" : "%s (terbatas)",
- "%s (invisible)" : "%s (tersembunyi)",
- "Collaborative tags" : "Tag kolaboratif",
- "Name" : "Nama",
- "Delete" : "Hapus",
- "Public" : "Publik",
- "Restricted" : "Terbatas",
- "Invisible" : "Tersembunyi",
- "Reset" : "Atur ulang",
- "No files in here" : "Tidak ada berkas disini",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Size" : "Ukuran",
- "Modified" : "Dimodifikasi",
- "You assigned system tag %3$s" : "Anda memberikan tag sistem %3$s",
- "%1$s assigned system tag %3$s" : "%1$s memberikan tag sistem %3$s",
- "You unassigned system tag %3$s" : "Anda melepas tag sistem %3$s",
- "%1$s unassigned system tag %3$s" : "%1$s melepas tag sistem %3$s",
- "You assigned system tag %3$s to %2$s" : "Anda memberikan tag sistem %3$s ke %2$s",
- "%1$s assigned system tag %3$s to %2$s" : "%1$s memberikan tag sistem %3$s ke %2$s",
- "You unassigned system tag %3$s from %2$s" : "Anda melepas tag sistem %3$s ke %2$s",
- "%1$s unassigned system tag %3$s from %2$s" : "%1$s melepas tag sistem %3$s ke %2$s",
- "%s (not-assignable)" : "%s (tidak dapat disematkan)"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/id.json b/apps/systemtags/l10n/id.json
deleted file mode 100644
index 8549c5864a9..00000000000
--- a/apps/systemtags/l10n/id.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{ "translations": {
- "Tags" : "Tag",
- "Update" : "Pembaruan",
- "Create" : "Buat",
- "Select tag…" : "Pilih tag...",
- "Tagged files" : "Berkas ter-tag",
- "Select tags to filter by" : "Pilih tag untuk disaring",
- "Please select tags to filter by" : "Mohon pilih tag untuk disaring",
- "No files found for the selected tags" : "Berkas tidak ditemukan untuk tag yang dipilih",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Tag sistem</strong> untuk sebuah berkas telah dimodifikasi",
- "You created system tag %2$s" : "Anda membuat tag sistem %2$s",
- "%1$s created system tag %2$s" : "%1$s membuat tag sistem %2$s",
- "You deleted system tag %2$s" : "Anda menghapus tag sistem %2$s",
- "%1$s deleted system tag %2$s" : "%1$s menghapus tag sistem %2$s",
- "You updated system tag %3$s to %2$s" : "Anda memperbarui tag sistem %3$s ke %2$s",
- "%1$s updated system tag %3$s to %2$s" : "%1$s memperbarui tag sistem %3$s ke %2$s",
- "%s (restricted)" : "%s (terbatas)",
- "%s (invisible)" : "%s (tersembunyi)",
- "Collaborative tags" : "Tag kolaboratif",
- "Name" : "Nama",
- "Delete" : "Hapus",
- "Public" : "Publik",
- "Restricted" : "Terbatas",
- "Invisible" : "Tersembunyi",
- "Reset" : "Atur ulang",
- "No files in here" : "Tidak ada berkas disini",
- "No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
- "Size" : "Ukuran",
- "Modified" : "Dimodifikasi",
- "You assigned system tag %3$s" : "Anda memberikan tag sistem %3$s",
- "%1$s assigned system tag %3$s" : "%1$s memberikan tag sistem %3$s",
- "You unassigned system tag %3$s" : "Anda melepas tag sistem %3$s",
- "%1$s unassigned system tag %3$s" : "%1$s melepas tag sistem %3$s",
- "You assigned system tag %3$s to %2$s" : "Anda memberikan tag sistem %3$s ke %2$s",
- "%1$s assigned system tag %3$s to %2$s" : "%1$s memberikan tag sistem %3$s ke %2$s",
- "You unassigned system tag %3$s from %2$s" : "Anda melepas tag sistem %3$s ke %2$s",
- "%1$s unassigned system tag %3$s from %2$s" : "%1$s melepas tag sistem %3$s ke %2$s",
- "%s (not-assignable)" : "%s (tidak dapat disematkan)"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/is.js b/apps/systemtags/l10n/is.js
index ea26eb9d4ba..f442ae96ed3 100644
--- a/apps/systemtags/l10n/is.js
+++ b/apps/systemtags/l10n/is.js
@@ -92,8 +92,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Merki með sama heiti er þegar til staðar",
"Failed to load tags for file" : "Mistókst að hlaða inn merkjum af skrá",
"Failed to set tag for file" : "Mistókst að setja merki á skrá",
- "Failed to delete tag for file" : "Mistókst að eyða merki á skrá",
- "This file has the tag {tag}" : "Þessi skrá er með merkið {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Þessi skrá er með merkin {firstTags} og {lastTag}"
+ "Failed to delete tag for file" : "Mistókst að eyða merki á skrá"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/systemtags/l10n/is.json b/apps/systemtags/l10n/is.json
index 0aa680b3d24..6745c460665 100644
--- a/apps/systemtags/l10n/is.json
+++ b/apps/systemtags/l10n/is.json
@@ -90,8 +90,6 @@
"A tag with the same name already exists" : "Merki með sama heiti er þegar til staðar",
"Failed to load tags for file" : "Mistókst að hlaða inn merkjum af skrá",
"Failed to set tag for file" : "Mistókst að setja merki á skrá",
- "Failed to delete tag for file" : "Mistókst að eyða merki á skrá",
- "This file has the tag {tag}" : "Þessi skrá er með merkið {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Þessi skrá er með merkin {firstTags} og {lastTag}"
+ "Failed to delete tag for file" : "Mistókst að eyða merki á skrá"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/it.js b/apps/systemtags/l10n/it.js
index 0ec7f67bc4e..5da80b216ab 100644
--- a/apps/systemtags/l10n/it.js
+++ b/apps/systemtags/l10n/it.js
@@ -94,8 +94,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Esiste già un tag con lo stesso nome",
"Failed to load tags for file" : "Caricamento delle etichette per il file fallito",
"Failed to set tag for file" : "Impostazione dell'etichetta per il file fallita",
- "Failed to delete tag for file" : "Eliminazione dell'etichetta per il file fallita",
- "This file has the tag {tag}" : "Questo file ha l'etichetta {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Il file ha le etichette {firstTags} e {lastTag}"
+ "Failed to delete tag for file" : "Eliminazione dell'etichetta per il file fallita"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/it.json b/apps/systemtags/l10n/it.json
index 8b06f2c3236..a97eabc5113 100644
--- a/apps/systemtags/l10n/it.json
+++ b/apps/systemtags/l10n/it.json
@@ -92,8 +92,6 @@
"A tag with the same name already exists" : "Esiste già un tag con lo stesso nome",
"Failed to load tags for file" : "Caricamento delle etichette per il file fallito",
"Failed to set tag for file" : "Impostazione dell'etichetta per il file fallita",
- "Failed to delete tag for file" : "Eliminazione dell'etichetta per il file fallita",
- "This file has the tag {tag}" : "Questo file ha l'etichetta {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Il file ha le etichette {firstTags} e {lastTag}"
+ "Failed to delete tag for file" : "Eliminazione dell'etichetta per il file fallita"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ja.js b/apps/systemtags/l10n/ja.js
index ccc2a61e749..ea066055c35 100644
--- a/apps/systemtags/l10n/ja.js
+++ b/apps/systemtags/l10n/ja.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "同じ名前のタグがすでに存在しています",
"Failed to load tags for file" : "ファイルのタグのロードに失敗しました",
"Failed to set tag for file" : "ファイルのタグの設定に失敗しました",
- "Failed to delete tag for file" : "ファイルのタグを削除できませんでした",
- "This file has the tag {tag}" : "このファイルには {tag} タグがあります。",
- "This file has the tags {firstTags} and {lastTag}" : "このファイルには {firstTags} と {lastTag} というタグがあります"
+ "Failed to delete tag for file" : "ファイルのタグを削除できませんでした"
},
"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/ja.json b/apps/systemtags/l10n/ja.json
index f39b8a65363..7af3c11f9ae 100644
--- a/apps/systemtags/l10n/ja.json
+++ b/apps/systemtags/l10n/ja.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "同じ名前のタグがすでに存在しています",
"Failed to load tags for file" : "ファイルのタグのロードに失敗しました",
"Failed to set tag for file" : "ファイルのタグの設定に失敗しました",
- "Failed to delete tag for file" : "ファイルのタグを削除できませんでした",
- "This file has the tag {tag}" : "このファイルには {tag} タグがあります。",
- "This file has the tags {firstTags} and {lastTag}" : "このファイルには {firstTags} と {lastTag} というタグがあります"
+ "Failed to delete tag for file" : "ファイルのタグを削除できませんでした"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ka.js b/apps/systemtags/l10n/ka.js
index 9fe36aed7b6..b2abbcbc514 100644
--- a/apps/systemtags/l10n/ka.js
+++ b/apps/systemtags/l10n/ka.js
@@ -78,8 +78,6 @@ OC.L10N.register(
"Missing \"Content-Location\" header" : "Missing \"Content-Location\" header",
"Failed to load tags for file" : "Failed to load tags for file",
"Failed to set tag for file" : "Failed to set tag for file",
- "Failed to delete tag for file" : "Failed to delete tag for file",
- "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}"
+ "Failed to delete tag for file" : "Failed to delete tag for file"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/systemtags/l10n/ka.json b/apps/systemtags/l10n/ka.json
index 205cd2225a5..587bdc4d5d9 100644
--- a/apps/systemtags/l10n/ka.json
+++ b/apps/systemtags/l10n/ka.json
@@ -76,8 +76,6 @@
"Missing \"Content-Location\" header" : "Missing \"Content-Location\" header",
"Failed to load tags for file" : "Failed to load tags for file",
"Failed to set tag for file" : "Failed to set tag for file",
- "Failed to delete tag for file" : "Failed to delete tag for file",
- "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}"
+ "Failed to delete tag for file" : "Failed to delete tag for file"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ka_GE.js b/apps/systemtags/l10n/ka_GE.js
deleted file mode 100644
index d347ae25011..00000000000
--- a/apps/systemtags/l10n/ka_GE.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "სისტემური ტეგის დამატება {systemtag}",
- "Added system tag %1$s" : "სისტემური ტეგის დამატება %1$s",
- "%1$s added system tag %2$s" : " %1$s მომხმარებელმა დაამატა სისტემური ტეგი %2$s",
- "{actor} added system tag {systemtag}" : "{actor} მომხმარებელმა დაამატა სისტემური ტეგი {systemtag}",
- "Removed system tag {systemtag}" : "გაუქმდა სისტემური ტეგი {systemtag}",
- "Removed system tag %1$s" : "გაუქმდა სისტემური ტეგი %1$s",
- "%1$s removed system tag %2$s" : "%1$s მომხმარებელმა გააუქმა სისტემური ტეგი %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} მომხმარებელმა გააუქმა სისტემური ტეგი {systemtag}",
- "You created system tag %1$s" : "თქვენ შექმენით სისტემური ტეგი %1$s",
- "You created system tag {systemtag}" : "თქვენ შექმენით სისტემური ტეგი {systemtag}",
- "%1$s created system tag %2$s" : "%1$s მომხმარებელმა შექმნა სისტემური ტეგი %2$s",
- "{actor} created system tag {systemtag}" : "{actor} მომხმარებლემა შექმნმა სისტემური ტეგი {systemtag}",
- "You deleted system tag %1$s" : "თქვენ გააუქმეთ სისტემური ტეგი %1$s",
- "You deleted system tag {systemtag}" : "თქვენ გააუქმეთ სისტემური ტეგი {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s მომხმარებელმა გააუქმა სისტემური ტეგი %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} მომხმარებელმა გააუქმა სისტემური ტეგი {systemtag}",
- "You updated system tag %2$s to %1$s" : "სისტემური ტეგი %2$s განაახლეთ %1$s-ზე",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "სისტემური ტეგი {oldsystemtag} განაახლეთ {newsystemtag}-ზე",
- "%1$s updated system tag %3$s to %2$s" : "%1$s მომხმარებელმა სისტემური ტეგი %3$s განაახლა %2$s-ზე",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} მომხმარებელმა სისტემური ტეგი {oldsystemtag} განაახლა {newsystemtag}-ზე",
- "You added system tag %2$s to %1$s" : "თქვენ %1$s ფაილს დაუმატეთ სისტემური ტეგი %2$s",
- "You added system tag {systemtag} to {file}" : "თქვენ {file} ფაილს დაუმატეთ სისტემური ტეგი {systemtag}",
- "%1$s added system tag %3$s to %2$s" : "%1$s მომხმარებელმა სისტემური ტეგი %3$s დაუმატა ფაილს %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} მომხმარებელმა სისტემური ტეგი {systemtag} დაუმატა ფაილს {file}",
- "You removed system tag %2$s from %1$s" : "თქვენ სისტემური ტეგი %2$s მოაშორეთ ფაილს %1$s",
- "You removed system tag {systemtag} from {file}" : "თქვენ სისტემური ტეგი {systemtag} მოაშორეთ ფაილს {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s მომხმარებელმა სისტემური ტეგი %3$s მოაშორა ფაილს %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} მომხმარებელმა სისტემური ტეგი {systemtag} მოაშორა ფაილს {file}",
- "%s (restricted)" : "%s (აკრძალული)",
- "%s (invisible)" : "%s (უჩინარი)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>სისტემური ტეგები</strong> ფაილისთვის შეიცვალა",
- "Tags" : "ტეგები",
- "Collaborative tags" : "თანამშრომლობის ტეგები",
- "Create" : "შექმნა",
- "Update" : "განახლება",
- "Delete" : "გაუქმება",
- "Reset" : "საწყის მდომგარეობაში დაბრუნება",
- "Public" : "ღია",
- "Restricted" : "აკრძალული",
- "Invisible" : "უჩინარი",
- "No tags found" : "ტეგები ვერ მოიძებნა",
- "Cancel" : "გაუქმება",
- "No files in here" : "აქ ფაილები არაა",
- "No entries found in this folder" : "ამ დირექტორიაში შენატანების მოძებნა ვერ მოხერხდა",
- "Name" : "სახელი",
- "Size" : "ზომა",
- "Modified" : "შეცვლილია"
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/systemtags/l10n/ka_GE.json b/apps/systemtags/l10n/ka_GE.json
deleted file mode 100644
index 1c7ab5be464..00000000000
--- a/apps/systemtags/l10n/ka_GE.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "სისტემური ტეგის დამატება {systemtag}",
- "Added system tag %1$s" : "სისტემური ტეგის დამატება %1$s",
- "%1$s added system tag %2$s" : " %1$s მომხმარებელმა დაამატა სისტემური ტეგი %2$s",
- "{actor} added system tag {systemtag}" : "{actor} მომხმარებელმა დაამატა სისტემური ტეგი {systemtag}",
- "Removed system tag {systemtag}" : "გაუქმდა სისტემური ტეგი {systemtag}",
- "Removed system tag %1$s" : "გაუქმდა სისტემური ტეგი %1$s",
- "%1$s removed system tag %2$s" : "%1$s მომხმარებელმა გააუქმა სისტემური ტეგი %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} მომხმარებელმა გააუქმა სისტემური ტეგი {systemtag}",
- "You created system tag %1$s" : "თქვენ შექმენით სისტემური ტეგი %1$s",
- "You created system tag {systemtag}" : "თქვენ შექმენით სისტემური ტეგი {systemtag}",
- "%1$s created system tag %2$s" : "%1$s მომხმარებელმა შექმნა სისტემური ტეგი %2$s",
- "{actor} created system tag {systemtag}" : "{actor} მომხმარებლემა შექმნმა სისტემური ტეგი {systemtag}",
- "You deleted system tag %1$s" : "თქვენ გააუქმეთ სისტემური ტეგი %1$s",
- "You deleted system tag {systemtag}" : "თქვენ გააუქმეთ სისტემური ტეგი {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s მომხმარებელმა გააუქმა სისტემური ტეგი %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} მომხმარებელმა გააუქმა სისტემური ტეგი {systemtag}",
- "You updated system tag %2$s to %1$s" : "სისტემური ტეგი %2$s განაახლეთ %1$s-ზე",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "სისტემური ტეგი {oldsystemtag} განაახლეთ {newsystemtag}-ზე",
- "%1$s updated system tag %3$s to %2$s" : "%1$s მომხმარებელმა სისტემური ტეგი %3$s განაახლა %2$s-ზე",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} მომხმარებელმა სისტემური ტეგი {oldsystemtag} განაახლა {newsystemtag}-ზე",
- "You added system tag %2$s to %1$s" : "თქვენ %1$s ფაილს დაუმატეთ სისტემური ტეგი %2$s",
- "You added system tag {systemtag} to {file}" : "თქვენ {file} ფაილს დაუმატეთ სისტემური ტეგი {systemtag}",
- "%1$s added system tag %3$s to %2$s" : "%1$s მომხმარებელმა სისტემური ტეგი %3$s დაუმატა ფაილს %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} მომხმარებელმა სისტემური ტეგი {systemtag} დაუმატა ფაილს {file}",
- "You removed system tag %2$s from %1$s" : "თქვენ სისტემური ტეგი %2$s მოაშორეთ ფაილს %1$s",
- "You removed system tag {systemtag} from {file}" : "თქვენ სისტემური ტეგი {systemtag} მოაშორეთ ფაილს {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s მომხმარებელმა სისტემური ტეგი %3$s მოაშორა ფაილს %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} მომხმარებელმა სისტემური ტეგი {systemtag} მოაშორა ფაილს {file}",
- "%s (restricted)" : "%s (აკრძალული)",
- "%s (invisible)" : "%s (უჩინარი)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>სისტემური ტეგები</strong> ფაილისთვის შეიცვალა",
- "Tags" : "ტეგები",
- "Collaborative tags" : "თანამშრომლობის ტეგები",
- "Create" : "შექმნა",
- "Update" : "განახლება",
- "Delete" : "გაუქმება",
- "Reset" : "საწყის მდომგარეობაში დაბრუნება",
- "Public" : "ღია",
- "Restricted" : "აკრძალული",
- "Invisible" : "უჩინარი",
- "No tags found" : "ტეგები ვერ მოიძებნა",
- "Cancel" : "გაუქმება",
- "No files in here" : "აქ ფაილები არაა",
- "No entries found in this folder" : "ამ დირექტორიაში შენატანების მოძებნა ვერ მოხერხდა",
- "Name" : "სახელი",
- "Size" : "ზომა",
- "Modified" : "შეცვლილია"
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/km.js b/apps/systemtags/l10n/km.js
deleted file mode 100644
index 509d2ed766c..00000000000
--- a/apps/systemtags/l10n/km.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "ស្លាក",
- "Name" : "ឈ្មោះ",
- "Size" : "ទំហំ",
- "Modified" : "បាន​កែ​ប្រែ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/km.json b/apps/systemtags/l10n/km.json
deleted file mode 100644
index 0664f9a9e48..00000000000
--- a/apps/systemtags/l10n/km.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Tags" : "ស្លាក",
- "Name" : "ឈ្មោះ",
- "Size" : "ទំហំ",
- "Modified" : "បាន​កែ​ប្រែ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/kn.js b/apps/systemtags/l10n/kn.js
deleted file mode 100644
index cded0333e54..00000000000
--- a/apps/systemtags/l10n/kn.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Name" : "ಹೆಸರು",
- "Size" : " ಗಾತ್ರ",
- "Modified" : "ಬದಲಾಯಿಸಿದ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/kn.json b/apps/systemtags/l10n/kn.json
deleted file mode 100644
index 48561659786..00000000000
--- a/apps/systemtags/l10n/kn.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Name" : "ಹೆಸರು",
- "Size" : " ಗಾತ್ರ",
- "Modified" : "ಬದಲಾಯಿಸಿದ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ko.js b/apps/systemtags/l10n/ko.js
index 690efe2a6df..9e12ad88bb6 100644
--- a/apps/systemtags/l10n/ko.js
+++ b/apps/systemtags/l10n/ko.js
@@ -79,8 +79,6 @@ OC.L10N.register(
"Failed to load last used tags" : "최근 사용된 태그 불러오기 실패",
"Failed to load tags for file" : "파일에 대한 태그 불러오기 실패",
"Failed to set tag for file" : "파일에 태그 지정하기 실패",
- "Failed to delete tag for file" : "파일에 태그 지정 해제하기 실패",
- "This file has the tag {tag}" : "이 파일에 {tag} 태그가 있음",
- "This file has the tags {firstTags} and {lastTag}" : "이 파일에 {firstTags}와 {lastTag} 태그가 있음"
+ "Failed to delete tag for file" : "파일에 태그 지정 해제하기 실패"
},
"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/ko.json b/apps/systemtags/l10n/ko.json
index 7239e166380..3a1356a81f7 100644
--- a/apps/systemtags/l10n/ko.json
+++ b/apps/systemtags/l10n/ko.json
@@ -77,8 +77,6 @@
"Failed to load last used tags" : "최근 사용된 태그 불러오기 실패",
"Failed to load tags for file" : "파일에 대한 태그 불러오기 실패",
"Failed to set tag for file" : "파일에 태그 지정하기 실패",
- "Failed to delete tag for file" : "파일에 태그 지정 해제하기 실패",
- "This file has the tag {tag}" : "이 파일에 {tag} 태그가 있음",
- "This file has the tags {firstTags} and {lastTag}" : "이 파일에 {firstTags}와 {lastTag} 태그가 있음"
+ "Failed to delete tag for file" : "파일에 태그 지정 해제하기 실패"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/lb.js b/apps/systemtags/l10n/lb.js
deleted file mode 100644
index 6af879ce2f4..00000000000
--- a/apps/systemtags/l10n/lb.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "Etiketten",
- "Tagged files" : "Etikettéiert Fichieren",
- "Select tags to filter by" : "Wiel d'Etiketten fir ze siften aus",
- "Please select tags to filter by" : "Wiel w.e.g. d'Etiketten fir ze siften aus",
- "No files found for the selected tags" : "Keng Fichieren fir d'ausgewielten Etiketten fonnt",
- "<strong>System tags</strong> for a file have been modified" : "<strong>System Etiketten</strong> fir e Fichier goufen verännert",
- "You assigned system tag %3$s" : "Du hues d'System Etikett %3$s zougewisen ",
- "%1$s assigned system tag %3$s" : "%1$s zougewise System Etikett %3$s",
- "You unassigned system tag %3$s" : "Du hues d'System Etikett %3$s ewechgeholl",
- "%1$s unassigned system tag %3$s" : "%1$s System Etikett ewechgeholl %3$s",
- "You created system tag %2$s" : "Du hues d'System Etikett %2$s erschafen",
- "%1$s created system tag %2$s" : "%1$s System Etikett erschaf %2$s ",
- "You deleted system tag %2$s" : "Du hues d'System Etikett %2$s ewechgeholl",
- "%1$s deleted system tag %2$s" : "%1$s System Etikett ewechgeholl %2$s",
- "You updated system tag %3$s to %2$s" : "Du hues d'System Etikett %3$s op %2$s erneiert",
- "%1$s updated system tag %3$s to %2$s" : "%1$s System Etikett erneiert %3$s op %2$s",
- "You assigned system tag %3$s to %2$s" : "Du hues d'System Etikett %3$s op %2$s zougewisen",
- "%1$s assigned system tag %3$s to %2$s" : "%1$s zougewise System Etikett %3$s op %2$s",
- "You unassigned system tag %3$s from %2$s" : "Du hues d'System Etikett %3$s vum %2$s ewechgeholl",
- "%1$s unassigned system tag %3$s from %2$s" : "%1$s System Etikett ewechgeholl %3$s vum %2$s",
- "%s (restricted)" : "%s (ageschränkt)",
- "%s (invisible)" : "%s (onsiichtbar)",
- "No files in here" : "Hei sinn keng Fichieren",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Name" : "Numm",
- "Size" : "Gréisst",
- "Modified" : "Geännert"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/lb.json b/apps/systemtags/l10n/lb.json
deleted file mode 100644
index c94e08b607b..00000000000
--- a/apps/systemtags/l10n/lb.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Tags" : "Etiketten",
- "Tagged files" : "Etikettéiert Fichieren",
- "Select tags to filter by" : "Wiel d'Etiketten fir ze siften aus",
- "Please select tags to filter by" : "Wiel w.e.g. d'Etiketten fir ze siften aus",
- "No files found for the selected tags" : "Keng Fichieren fir d'ausgewielten Etiketten fonnt",
- "<strong>System tags</strong> for a file have been modified" : "<strong>System Etiketten</strong> fir e Fichier goufen verännert",
- "You assigned system tag %3$s" : "Du hues d'System Etikett %3$s zougewisen ",
- "%1$s assigned system tag %3$s" : "%1$s zougewise System Etikett %3$s",
- "You unassigned system tag %3$s" : "Du hues d'System Etikett %3$s ewechgeholl",
- "%1$s unassigned system tag %3$s" : "%1$s System Etikett ewechgeholl %3$s",
- "You created system tag %2$s" : "Du hues d'System Etikett %2$s erschafen",
- "%1$s created system tag %2$s" : "%1$s System Etikett erschaf %2$s ",
- "You deleted system tag %2$s" : "Du hues d'System Etikett %2$s ewechgeholl",
- "%1$s deleted system tag %2$s" : "%1$s System Etikett ewechgeholl %2$s",
- "You updated system tag %3$s to %2$s" : "Du hues d'System Etikett %3$s op %2$s erneiert",
- "%1$s updated system tag %3$s to %2$s" : "%1$s System Etikett erneiert %3$s op %2$s",
- "You assigned system tag %3$s to %2$s" : "Du hues d'System Etikett %3$s op %2$s zougewisen",
- "%1$s assigned system tag %3$s to %2$s" : "%1$s zougewise System Etikett %3$s op %2$s",
- "You unassigned system tag %3$s from %2$s" : "Du hues d'System Etikett %3$s vum %2$s ewechgeholl",
- "%1$s unassigned system tag %3$s from %2$s" : "%1$s System Etikett ewechgeholl %3$s vum %2$s",
- "%s (restricted)" : "%s (ageschränkt)",
- "%s (invisible)" : "%s (onsiichtbar)",
- "No files in here" : "Hei sinn keng Fichieren",
- "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
- "Name" : "Numm",
- "Size" : "Gréisst",
- "Modified" : "Geännert"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/lt_LT.js b/apps/systemtags/l10n/lt_LT.js
index e0d76cad5d1..d6301984b63 100644
--- a/apps/systemtags/l10n/lt_LT.js
+++ b/apps/systemtags/l10n/lt_LT.js
@@ -75,7 +75,6 @@ OC.L10N.register(
"Tags you have created will show up here." : "Čia bus rodomos jūsų sukurtos žymos.",
"Failed to load tag" : "Nepavyko įkelti žymos",
"Failed to load last used tags" : "Nepavyko įkelti paskutinių naudotų žymų",
- "Failed to load tags for file" : "Nepavyko įkelti failo žymų",
- "This file has the tag {tag}" : "Šis failas turi žymą {tag}"
+ "Failed to load tags for file" : "Nepavyko įkelti failo žymų"
},
"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/systemtags/l10n/lt_LT.json b/apps/systemtags/l10n/lt_LT.json
index aaaffdaf78c..ee7048df3b8 100644
--- a/apps/systemtags/l10n/lt_LT.json
+++ b/apps/systemtags/l10n/lt_LT.json
@@ -73,7 +73,6 @@
"Tags you have created will show up here." : "Čia bus rodomos jūsų sukurtos žymos.",
"Failed to load tag" : "Nepavyko įkelti žymos",
"Failed to load last used tags" : "Nepavyko įkelti paskutinių naudotų žymų",
- "Failed to load tags for file" : "Nepavyko įkelti failo žymų",
- "This file has the tag {tag}" : "Šis failas turi žymą {tag}"
+ "Failed to load tags for file" : "Nepavyko įkelti failo žymų"
},"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/systemtags/l10n/lv.js b/apps/systemtags/l10n/lv.js
index f59d6a826ab..6bbd17c5d52 100644
--- a/apps/systemtags/l10n/lv.js
+++ b/apps/systemtags/l10n/lv.js
@@ -15,8 +15,8 @@ OC.L10N.register(
"You created system tag {systemtag}" : "Tu izveidoji sistēmas birku {systemtag}",
"%1$s created system tag %2$s" : "%1$s izveidoja sistēmas birku %2$s",
"{actor} created system tag {systemtag}" : "{actor} izveidoja sistēmas birku {systemtag}",
- "You deleted system tag %1$s" : "Jūs izdzēsāt sistēmas birku %1$s",
- "You deleted system tag {systemtag}" : "Jūs izdzēsāt sistēmas birku {systemtag}",
+ "You deleted system tag %1$s" : "Tu izdzēsi sistēmas birku %1$s",
+ "You deleted system tag {systemtag}" : "Tu izdzēsi sistēmas birku {systemtag}",
"%1$s deleted system tag %2$s" : "%1$s izdzēsa sistēmas birku %2$s",
"{actor} deleted system tag {systemtag}" : "{actor} izdzēsa sistēmas birku {systemtag}",
"You updated system tag %2$s to %1$s" : "Tu atjaunināji sistēmas birku %2$s uz %1$s",
@@ -46,16 +46,19 @@ OC.L10N.register(
"Invisible" : "Neredzama",
"Updated tag" : "Birka atjaunināta",
"Failed to update tag" : "Birku neizdevās atjaunināt",
+ "Failed to delete tag" : "Neizdevās izdzēst birku",
"Create" : "Izveidot",
"Update" : "Atjaunināt",
"Delete" : "Izdzēst",
"Reset" : "Atiestatīt",
"Loading …" : "Ielādē…",
"Cancel" : "Atcelt",
+ "Failed to load selected tags" : "Neizdevās ielādēt atlasītās birkas",
"System admin disabled tag creation. You can only use existing ones." : "Sistēmas pārvaldītājs atspējoja birku izveidošanu. Ir iespējams izmantot tikai esošās.",
"System tag creation is now restricted to administrators" : "Sistēmas birku izveidošana tagad ir pieejama tikai pārvaldītājiem",
"System tag creation is now allowed for everybody" : "Sistēmas birku izveidošana tagad ir ļauta visiem",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Sadarbības birkas ir pieejamas visiem lietotājiem. Ierobežotās birkas ir redzamas lietotājiem, bet viņi tās nevar piešķirt. Neredzamās birkas ir paredzētas iekšējai lietošanai, jo lietotāji nevar tās redzēt vai piešķirt.",
- "No tags found" : "Netika atrasta neviena birka"
+ "No tags found" : "Netika atrasta neviena birka",
+ "Failed to delete tag for file" : "Neizdevās izdzēst birku vai datni"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/systemtags/l10n/lv.json b/apps/systemtags/l10n/lv.json
index 882ce15c799..254571a47ef 100644
--- a/apps/systemtags/l10n/lv.json
+++ b/apps/systemtags/l10n/lv.json
@@ -13,8 +13,8 @@
"You created system tag {systemtag}" : "Tu izveidoji sistēmas birku {systemtag}",
"%1$s created system tag %2$s" : "%1$s izveidoja sistēmas birku %2$s",
"{actor} created system tag {systemtag}" : "{actor} izveidoja sistēmas birku {systemtag}",
- "You deleted system tag %1$s" : "Jūs izdzēsāt sistēmas birku %1$s",
- "You deleted system tag {systemtag}" : "Jūs izdzēsāt sistēmas birku {systemtag}",
+ "You deleted system tag %1$s" : "Tu izdzēsi sistēmas birku %1$s",
+ "You deleted system tag {systemtag}" : "Tu izdzēsi sistēmas birku {systemtag}",
"%1$s deleted system tag %2$s" : "%1$s izdzēsa sistēmas birku %2$s",
"{actor} deleted system tag {systemtag}" : "{actor} izdzēsa sistēmas birku {systemtag}",
"You updated system tag %2$s to %1$s" : "Tu atjaunināji sistēmas birku %2$s uz %1$s",
@@ -44,16 +44,19 @@
"Invisible" : "Neredzama",
"Updated tag" : "Birka atjaunināta",
"Failed to update tag" : "Birku neizdevās atjaunināt",
+ "Failed to delete tag" : "Neizdevās izdzēst birku",
"Create" : "Izveidot",
"Update" : "Atjaunināt",
"Delete" : "Izdzēst",
"Reset" : "Atiestatīt",
"Loading …" : "Ielādē…",
"Cancel" : "Atcelt",
+ "Failed to load selected tags" : "Neizdevās ielādēt atlasītās birkas",
"System admin disabled tag creation. You can only use existing ones." : "Sistēmas pārvaldītājs atspējoja birku izveidošanu. Ir iespējams izmantot tikai esošās.",
"System tag creation is now restricted to administrators" : "Sistēmas birku izveidošana tagad ir pieejama tikai pārvaldītājiem",
"System tag creation is now allowed for everybody" : "Sistēmas birku izveidošana tagad ir ļauta visiem",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Sadarbības birkas ir pieejamas visiem lietotājiem. Ierobežotās birkas ir redzamas lietotājiem, bet viņi tās nevar piešķirt. Neredzamās birkas ir paredzētas iekšējai lietošanai, jo lietotāji nevar tās redzēt vai piešķirt.",
- "No tags found" : "Netika atrasta neviena birka"
+ "No tags found" : "Netika atrasta neviena birka",
+ "Failed to delete tag for file" : "Neizdevās izdzēst birku vai datni"
},"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/systemtags/l10n/mk.js b/apps/systemtags/l10n/mk.js
index fb7c327f92a..0ceb835081e 100644
--- a/apps/systemtags/l10n/mk.js
+++ b/apps/systemtags/l10n/mk.js
@@ -66,8 +66,6 @@ OC.L10N.register(
"No tags found" : "Не се пронајдени ознаки",
"Tags you have created will show up here." : "Ознаките што ги имате креирано ќе се појават овде",
"Failed to load last used tags" : "Неуспешно вчитување на последно користените ознаки",
- "Missing \"Content-Location\" header" : "Недостасува \"Content-Location\" заглавие",
- "This file has the tag {tag}" : "Оваа датотека има ознака {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Оваа датотека има ознаки {firstTags} и {lastTag}"
+ "Missing \"Content-Location\" header" : "Недостасува \"Content-Location\" заглавие"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/systemtags/l10n/mk.json b/apps/systemtags/l10n/mk.json
index 7e9b489cad5..02677e2e88b 100644
--- a/apps/systemtags/l10n/mk.json
+++ b/apps/systemtags/l10n/mk.json
@@ -64,8 +64,6 @@
"No tags found" : "Не се пронајдени ознаки",
"Tags you have created will show up here." : "Ознаките што ги имате креирано ќе се појават овде",
"Failed to load last used tags" : "Неуспешно вчитување на последно користените ознаки",
- "Missing \"Content-Location\" header" : "Недостасува \"Content-Location\" заглавие",
- "This file has the tag {tag}" : "Оваа датотека има ознака {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Оваа датотека има ознаки {firstTags} и {lastTag}"
+ "Missing \"Content-Location\" header" : "Недостасува \"Content-Location\" заглавие"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ms_MY.js b/apps/systemtags/l10n/ms_MY.js
deleted file mode 100644
index 2958617429c..00000000000
--- a/apps/systemtags/l10n/ms_MY.js
+++ /dev/null
@@ -1,8 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Name" : "Nama",
- "Size" : "Saiz",
- "Modified" : "Dimodifikasi"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/ms_MY.json b/apps/systemtags/l10n/ms_MY.json
deleted file mode 100644
index 646640c0134..00000000000
--- a/apps/systemtags/l10n/ms_MY.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{ "translations": {
- "Name" : "Nama",
- "Size" : "Saiz",
- "Modified" : "Dimodifikasi"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/nb.js b/apps/systemtags/l10n/nb.js
index bfb1213c5c1..d98d1f8366c 100644
--- a/apps/systemtags/l10n/nb.js
+++ b/apps/systemtags/l10n/nb.js
@@ -95,8 +95,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "En merkelapp med det navnet finnes allerede",
"Failed to load tags for file" : "Lasting av merkelapper for filen feilet",
"Failed to set tag for file" : "Kunne ikke angi merkelapp for fil",
- "Failed to delete tag for file" : "Sletting av merkelappen for filen feilet",
- "This file has the tag {tag}" : "Denne filen har merket {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Denne filen har merkene {firstTags} og {lastTag}"
+ "Failed to delete tag for file" : "Sletting av merkelappen for filen feilet"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/nb.json b/apps/systemtags/l10n/nb.json
index 958c45be8f0..217d425bfa2 100644
--- a/apps/systemtags/l10n/nb.json
+++ b/apps/systemtags/l10n/nb.json
@@ -93,8 +93,6 @@
"A tag with the same name already exists" : "En merkelapp med det navnet finnes allerede",
"Failed to load tags for file" : "Lasting av merkelapper for filen feilet",
"Failed to set tag for file" : "Kunne ikke angi merkelapp for fil",
- "Failed to delete tag for file" : "Sletting av merkelappen for filen feilet",
- "This file has the tag {tag}" : "Denne filen har merket {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Denne filen har merkene {firstTags} og {lastTag}"
+ "Failed to delete tag for file" : "Sletting av merkelappen for filen feilet"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/nn_NO.js b/apps/systemtags/l10n/nn_NO.js
deleted file mode 100644
index 02260061f6c..00000000000
--- a/apps/systemtags/l10n/nn_NO.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "Emneord",
- "Name" : "Namn",
- "Size" : "Storleik",
- "Modified" : "Endra"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/nn_NO.json b/apps/systemtags/l10n/nn_NO.json
deleted file mode 100644
index 8e504bf6b2a..00000000000
--- a/apps/systemtags/l10n/nn_NO.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Tags" : "Emneord",
- "Name" : "Namn",
- "Size" : "Storleik",
- "Modified" : "Endra"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/oc.js b/apps/systemtags/l10n/oc.js
deleted file mode 100644
index cd891a0c3a3..00000000000
--- a/apps/systemtags/l10n/oc.js
+++ /dev/null
@@ -1,12 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "Etiquetas",
- "%s (invisible)" : "%s (invisible)",
- "No files in here" : "Pas cap de fichièr aicí",
- "No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
- "Name" : "Nom",
- "Size" : "Talha",
- "Modified" : "Modificat"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/systemtags/l10n/oc.json b/apps/systemtags/l10n/oc.json
deleted file mode 100644
index c9521db3579..00000000000
--- a/apps/systemtags/l10n/oc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "translations": {
- "Tags" : "Etiquetas",
- "%s (invisible)" : "%s (invisible)",
- "No files in here" : "Pas cap de fichièr aicí",
- "No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
- "Name" : "Nom",
- "Size" : "Talha",
- "Modified" : "Modificat"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/pl.js b/apps/systemtags/l10n/pl.js
index b93e3993d3a..4f17a7e686c 100644
--- a/apps/systemtags/l10n/pl.js
+++ b/apps/systemtags/l10n/pl.js
@@ -80,8 +80,6 @@ OC.L10N.register(
"Open in Files" : "Otwórz w Plikach",
"List of tags and their associated files and folders." : "Lista etykiet i związanych z nimi plików i katalogów.",
"No tags found" : "Nie znaleziono etykiet",
- "Failed to load tag" : "Nie udało się pobrać etykiety",
- "This file has the tag {tag}" : "Ten plik posiada etykietę {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Ten plik posiada etykiety {firstTags} i {lastTag}"
+ "Failed to load tag" : "Nie udało się pobrać etykiety"
},
"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/systemtags/l10n/pl.json b/apps/systemtags/l10n/pl.json
index baf4f3ba4d2..9011fd21103 100644
--- a/apps/systemtags/l10n/pl.json
+++ b/apps/systemtags/l10n/pl.json
@@ -78,8 +78,6 @@
"Open in Files" : "Otwórz w Plikach",
"List of tags and their associated files and folders." : "Lista etykiet i związanych z nimi plików i katalogów.",
"No tags found" : "Nie znaleziono etykiet",
- "Failed to load tag" : "Nie udało się pobrać etykiety",
- "This file has the tag {tag}" : "Ten plik posiada etykietę {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Ten plik posiada etykiety {firstTags} i {lastTag}"
+ "Failed to load tag" : "Nie udało się pobrać etykiety"
},"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/systemtags/l10n/pt_BR.js b/apps/systemtags/l10n/pt_BR.js
index c6f064c87ab..837e5c4eb06 100644
--- a/apps/systemtags/l10n/pt_BR.js
+++ b/apps/systemtags/l10n/pt_BR.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Uma etiqueta com o mesmo nome já existe",
"Failed to load tags for file" : "Falha ao carregar etiquetas para arquivo",
"Failed to set tag for file" : "Falha ao definir etiqueta para arquivo",
- "Failed to delete tag for file" : "Falha ao excluir etiqueta do arquivo",
- "This file has the tag {tag}" : "Este arquivo tem a etiqueta {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Este arquivo tem as etiquetas {firstTags} e {lastTag}"
+ "Failed to delete tag for file" : "Falha ao excluir etiqueta do arquivo"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/systemtags/l10n/pt_BR.json b/apps/systemtags/l10n/pt_BR.json
index 86862874fec..a9cd3841135 100644
--- a/apps/systemtags/l10n/pt_BR.json
+++ b/apps/systemtags/l10n/pt_BR.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Uma etiqueta com o mesmo nome já existe",
"Failed to load tags for file" : "Falha ao carregar etiquetas para arquivo",
"Failed to set tag for file" : "Falha ao definir etiqueta para arquivo",
- "Failed to delete tag for file" : "Falha ao excluir etiqueta do arquivo",
- "This file has the tag {tag}" : "Este arquivo tem a etiqueta {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Este arquivo tem as etiquetas {firstTags} e {lastTag}"
+ "Failed to delete tag for file" : "Falha ao excluir etiqueta do arquivo"
},"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/systemtags/l10n/pt_PT.js b/apps/systemtags/l10n/pt_PT.js
deleted file mode 100644
index d5844a64985..00000000000
--- a/apps/systemtags/l10n/pt_PT.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "Etiquetas",
- "Tagged files" : "Ficheiros etiquetados",
- "Select tags to filter by" : "Selecionar etiquetas para filtrar",
- "Please select tags to filter by" : "Por favor, selecione etiquetas para filtrar",
- "No files found for the selected tags" : "Não foram encontrados ficheiros para as etiquetas selecionadas",
- "<strong>System tags</strong> for a file have been modified" : "As <strong>etiquetas do Sistema</strong> para um ficheiro foram alteradas",
- "You assigned system tag %3$s" : "Atribuiu a etiqueta do sistema %3$s",
- "%1$s assigned system tag %3$s" : "%1$s atribuiu a etiqueta do sistema %3$s",
- "You unassigned system tag %3$s" : "Removeu a etiqueta do sistema %3$s",
- "%1$s unassigned system tag %3$s" : "%1$s removeu a etiqueta do sistema %3$s",
- "You created system tag %2$s" : "Criou a etiqueta do sistema %2$s",
- "%1$s created system tag %2$s" : "%1$s criou a etiqueta do sistema %2$s",
- "You deleted system tag %2$s" : "Eliminou etiqueta do sistema %2$s",
- "%1$s deleted system tag %2$s" : "%1$s eliminou a etiqueta do sistema %2$s",
- "You updated system tag %3$s to %2$s" : "Atualizou a etiqueta do sistema %3$s para %2$s",
- "%1$s updated system tag %3$s to %2$s" : "%1$s atualizou a etiqueta %3$s para %2$s",
- "You assigned system tag %3$s to %2$s" : "Atribuiu a etiqueta do sistema %3$s para %2$s",
- "%1$s assigned system tag %3$s to %2$s" : "%1$s atribuiu a etiqueta %3$s para %2$s",
- "You unassigned system tag %3$s from %2$s" : "Removeu a etiqueta do sistema %3$s de %2$s",
- "%1$s unassigned system tag %3$s from %2$s" : "%1$s removeu a etiqueta do sistema %3$s de %2$s",
- "%s (restricted)" : "%s (limitado)",
- "%s (invisible)" : "%s (invisível)",
- "Name" : "Nome",
- "No files in here" : "Nenhuns ficheiros aqui",
- "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
- "Size" : "Tamanho",
- "Modified" : "Modificado"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/pt_PT.json b/apps/systemtags/l10n/pt_PT.json
deleted file mode 100644
index 59565b8053e..00000000000
--- a/apps/systemtags/l10n/pt_PT.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Tags" : "Etiquetas",
- "Tagged files" : "Ficheiros etiquetados",
- "Select tags to filter by" : "Selecionar etiquetas para filtrar",
- "Please select tags to filter by" : "Por favor, selecione etiquetas para filtrar",
- "No files found for the selected tags" : "Não foram encontrados ficheiros para as etiquetas selecionadas",
- "<strong>System tags</strong> for a file have been modified" : "As <strong>etiquetas do Sistema</strong> para um ficheiro foram alteradas",
- "You assigned system tag %3$s" : "Atribuiu a etiqueta do sistema %3$s",
- "%1$s assigned system tag %3$s" : "%1$s atribuiu a etiqueta do sistema %3$s",
- "You unassigned system tag %3$s" : "Removeu a etiqueta do sistema %3$s",
- "%1$s unassigned system tag %3$s" : "%1$s removeu a etiqueta do sistema %3$s",
- "You created system tag %2$s" : "Criou a etiqueta do sistema %2$s",
- "%1$s created system tag %2$s" : "%1$s criou a etiqueta do sistema %2$s",
- "You deleted system tag %2$s" : "Eliminou etiqueta do sistema %2$s",
- "%1$s deleted system tag %2$s" : "%1$s eliminou a etiqueta do sistema %2$s",
- "You updated system tag %3$s to %2$s" : "Atualizou a etiqueta do sistema %3$s para %2$s",
- "%1$s updated system tag %3$s to %2$s" : "%1$s atualizou a etiqueta %3$s para %2$s",
- "You assigned system tag %3$s to %2$s" : "Atribuiu a etiqueta do sistema %3$s para %2$s",
- "%1$s assigned system tag %3$s to %2$s" : "%1$s atribuiu a etiqueta %3$s para %2$s",
- "You unassigned system tag %3$s from %2$s" : "Removeu a etiqueta do sistema %3$s de %2$s",
- "%1$s unassigned system tag %3$s from %2$s" : "%1$s removeu a etiqueta do sistema %3$s de %2$s",
- "%s (restricted)" : "%s (limitado)",
- "%s (invisible)" : "%s (invisível)",
- "Name" : "Nome",
- "No files in here" : "Nenhuns ficheiros aqui",
- "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
- "Size" : "Tamanho",
- "Modified" : "Modificado"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ro.js b/apps/systemtags/l10n/ro.js
deleted file mode 100644
index 4a2ee02f325..00000000000
--- a/apps/systemtags/l10n/ro.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "Cuvinte cheie",
- "Tagged files" : "Fișiere etichetate",
- "Select tags to filter by" : "Alege etichete după care să filtrezi",
- "Please select tags to filter by" : "Te rugăm selectează etichete după care să filtrezi",
- "No files found for the selected tags" : "Nu au fost găsite fișiere care să corespundă etichetelor alese",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Etichete de siste</strong> pentru un fișier au fost modificate",
- "You assigned system tag %3$s" : "Ai alocat eticheta de sistem %3$s",
- "%1$s assigned system tag %3$s" : "%1$s a alocat eticheta de sistem %3$s",
- "You unassigned system tag %3$s" : "Ai înlăturat eticheta de sistem %3$s",
- "%1$s unassigned system tag %3$s" : "%1$s a înlăturat eticheta de sistem %3$s",
- "You created system tag %2$s" : "Ai creat eticheta de sistem %2$s",
- "%1$s created system tag %2$s" : "%1$s a creat eticheta de sistem %2$s",
- "You deleted system tag %2$s" : "Ai șters eticheta de sistem %2$s",
- "%1$s deleted system tag %2$s" : "%1$s a șters eticheta de sistem %2$s",
- "You updated system tag %3$s to %2$s" : "Ai actualizat eticheta de sistem %3$s la %2$s",
- "%1$s updated system tag %3$s to %2$s" : "%1$s a actualizat eticheta de sistem %3$s la %2$s",
- "You assigned system tag %3$s to %2$s" : "Ai atribuit eticheta de sistem %3$s la %2$s",
- "%1$s assigned system tag %3$s to %2$s" : "%1$s a atribuit eticheta de sistem %3$s la %2$s",
- "You unassigned system tag %3$s from %2$s" : "Ai înlăturat eticheta de sistem %3$s de la %2$s",
- "%1$s unassigned system tag %3$s from %2$s" : "%1$s a înlăturat eticheta de sistem %3$s de la %2$s",
- "%s (restricted)" : "%s (restricționat)",
- "%s (invisible)" : "%s (invizibil)",
- "Name" : "Nume",
- "No files in here" : "Niciun fișier aici",
- "No entries found in this folder" : "Niciun element găsit în acest director",
- "Size" : "Mărime",
- "Modified" : "Modificat"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/systemtags/l10n/ro.json b/apps/systemtags/l10n/ro.json
deleted file mode 100644
index 20517cf41a2..00000000000
--- a/apps/systemtags/l10n/ro.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Tags" : "Cuvinte cheie",
- "Tagged files" : "Fișiere etichetate",
- "Select tags to filter by" : "Alege etichete după care să filtrezi",
- "Please select tags to filter by" : "Te rugăm selectează etichete după care să filtrezi",
- "No files found for the selected tags" : "Nu au fost găsite fișiere care să corespundă etichetelor alese",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Etichete de siste</strong> pentru un fișier au fost modificate",
- "You assigned system tag %3$s" : "Ai alocat eticheta de sistem %3$s",
- "%1$s assigned system tag %3$s" : "%1$s a alocat eticheta de sistem %3$s",
- "You unassigned system tag %3$s" : "Ai înlăturat eticheta de sistem %3$s",
- "%1$s unassigned system tag %3$s" : "%1$s a înlăturat eticheta de sistem %3$s",
- "You created system tag %2$s" : "Ai creat eticheta de sistem %2$s",
- "%1$s created system tag %2$s" : "%1$s a creat eticheta de sistem %2$s",
- "You deleted system tag %2$s" : "Ai șters eticheta de sistem %2$s",
- "%1$s deleted system tag %2$s" : "%1$s a șters eticheta de sistem %2$s",
- "You updated system tag %3$s to %2$s" : "Ai actualizat eticheta de sistem %3$s la %2$s",
- "%1$s updated system tag %3$s to %2$s" : "%1$s a actualizat eticheta de sistem %3$s la %2$s",
- "You assigned system tag %3$s to %2$s" : "Ai atribuit eticheta de sistem %3$s la %2$s",
- "%1$s assigned system tag %3$s to %2$s" : "%1$s a atribuit eticheta de sistem %3$s la %2$s",
- "You unassigned system tag %3$s from %2$s" : "Ai înlăturat eticheta de sistem %3$s de la %2$s",
- "%1$s unassigned system tag %3$s from %2$s" : "%1$s a înlăturat eticheta de sistem %3$s de la %2$s",
- "%s (restricted)" : "%s (restricționat)",
- "%s (invisible)" : "%s (invizibil)",
- "Name" : "Nume",
- "No files in here" : "Niciun fișier aici",
- "No entries found in this folder" : "Niciun element găsit în acest director",
- "Size" : "Mărime",
- "Modified" : "Modificat"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ru.js b/apps/systemtags/l10n/ru.js
index b8771b44e66..527a2c47aad 100644
--- a/apps/systemtags/l10n/ru.js
+++ b/apps/systemtags/l10n/ru.js
@@ -65,18 +65,39 @@ OC.L10N.register(
"Delete" : "Удалить",
"Reset" : "Сбросить",
"Loading …" : "Загрузка…",
+ "_{tag1} will be set and {tag2} will be removed from 1 file._::_{tag1} will be set and {tag2} will be removed from {count} files._" : ["{tag1} будет добавлен, а {tag2} будет удалён из 1 файла.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов."],
+ "_{tag} will be set to 1 file._::_{tag} will be set to {count} files._" : ["{tag}будет добавлен к 1 файлу.","{tag} будет добавлен к {count} файлам.","{tag} будет добавлен к {count} файлов.","{tag} будет добавлен к {count} файлов."],
+ "_{tag} will be removed from 1 file._::_{tag} will be removed from {count} files._" : ["{tag} будет удалён из 1 файла.","{tag} будет удалён из {count} файлов.","{tag} будет удалён из {count} файлов.","{tag} будет удалён из {count} файлов."],
+ "_{tags} and {lastTag} will be set to 1 file._::_{tags} and {lastTag} will be set to {count} files._" : ["{tags} и {lastTag} будут добавлены к 1 файлу.","{tags} и {lastTag} будут добавлены к {count} файлам.","{tags} и {lastTag} будут добавлены к {count}файлам.","{tags} и {lastTag} будут добавлены к {count} файлам."],
+ "_{tags} and {lastTag} will be removed from 1 file._::_{tags} and {lastTag} will be removed from {count} files._" : ["{tags} и {lastTag} будут удалены из 1 файла.","{tags} и {lastTag} будут удалены из {count} файлов.","{tags} и {lastTag} будут удалены из {count} файлов.","{tags} и {lastTag} будут удалены из {count} файлов."],
+ "{displayName} (hidden)" : "{displayName} (скрыто)",
+ "{displayName} (restricted)" : "{displayName} (ограничено)",
+ "Only admins can create new tags" : "Только администраторы могут создать новые метки",
"Failed to apply tags changes" : "Не удалось применить изменения тегов",
+ "File tags modification canceled" : "Изменение меток отменено",
"Manage tags" : "Управление метками",
+ "Applying tags changes…" : "Изменение меток…",
"Search or create tag" : "Найти или создать тег",
+ "Search tag" : "Найти метку",
+ "Change tag color" : "Изменить цвет метки",
"Create new tag" : "Создать новый тег",
+ "Select or create tags to apply to all selected files" : "Выберите или создайте метки для применения ко всем выбранным файлам",
+ "Select tags to apply to all selected files" : "Выберите метки для применения ко всем выбранным файлам",
"Cancel" : "Отмена",
"Apply changes" : "Применить изменения",
"Failed to load tags" : "Не удалось загрузить метки",
"Failed to load selected tags" : "Не удалось загрузить выбранный тег",
"Failed to select tag" : "Не удалось выбрать тег",
+ "System admin disabled tag creation. You can only use existing ones." : "Создание меток отключено системным администратором. Вы можете использовать только существующие.",
"Loading collaborative tags …" : "Загрузка совместных тегов ...",
"Search or create collaborative tags" : "Поиск или создание совместных тегов",
"No tags to select, type to create a new tag" : "Нет тегов для выбора. Введите что-нибудь для создания нового тега",
+ "Unable to update setting" : "Не удалось обновить настройку",
+ "System tag creation is now restricted to administrators" : "Создание системных меток теперь разрешено только администраторам",
+ "System tag creation is now allowed for everybody" : "Создание системных меток теперь разрешено всем пользователям",
+ "System tag management" : "Управление системными метками",
+ "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Если включено, только администраторы смогут создавать и редактировать метки. Пользователи всё ещё смогут назначать и удалять их с файлов.",
+ "Restrict tag creation and editing to administrators" : "Разрешить создание и редактирование меток только администраторам",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Совместные теги доступны для всех пользователей. Ограниченные теги видны пользователям, но не могут быть назначены ими. Невидимые теги предназначены для внутреннего использования, поскольку пользователи не могут их видеть или назначать.",
"Assigned collaborative tags" : "Присвоенные теги для совместной работы",
"Open in Files" : "Открыть в приложении «Файлы»",
@@ -86,10 +107,9 @@ OC.L10N.register(
"Failed to load tag" : "Не удалось загрузить тег",
"Failed to load last used tags" : "Не удалось загрузить последние использованные метки",
"Missing \"Content-Location\" header" : "Отсутствует заголовок «Content-Location»",
+ "A tag with the same name already exists" : "Метка с таким именем уже существует",
"Failed to load tags for file" : "Не удалось загрузить метки для файла",
"Failed to set tag for file" : "Не удалось поставить метку файлу",
- "Failed to delete tag for file" : "Не удалось удалить метку у файла",
- "This file has the tag {tag}" : "У этого файла есть тэг: {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "У этого файла есть тэги: {firstTags} и {lastTag}"
+ "Failed to delete tag for file" : "Не удалось удалить метку у файла"
},
"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/systemtags/l10n/ru.json b/apps/systemtags/l10n/ru.json
index b64df86316a..1b74ab93bc1 100644
--- a/apps/systemtags/l10n/ru.json
+++ b/apps/systemtags/l10n/ru.json
@@ -63,18 +63,39 @@
"Delete" : "Удалить",
"Reset" : "Сбросить",
"Loading …" : "Загрузка…",
+ "_{tag1} will be set and {tag2} will be removed from 1 file._::_{tag1} will be set and {tag2} will be removed from {count} files._" : ["{tag1} будет добавлен, а {tag2} будет удалён из 1 файла.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов.","{tag1} будет добавлен, а {tag2} будет удалён из {count} файлов."],
+ "_{tag} will be set to 1 file._::_{tag} will be set to {count} files._" : ["{tag}будет добавлен к 1 файлу.","{tag} будет добавлен к {count} файлам.","{tag} будет добавлен к {count} файлов.","{tag} будет добавлен к {count} файлов."],
+ "_{tag} will be removed from 1 file._::_{tag} will be removed from {count} files._" : ["{tag} будет удалён из 1 файла.","{tag} будет удалён из {count} файлов.","{tag} будет удалён из {count} файлов.","{tag} будет удалён из {count} файлов."],
+ "_{tags} and {lastTag} will be set to 1 file._::_{tags} and {lastTag} will be set to {count} files._" : ["{tags} и {lastTag} будут добавлены к 1 файлу.","{tags} и {lastTag} будут добавлены к {count} файлам.","{tags} и {lastTag} будут добавлены к {count}файлам.","{tags} и {lastTag} будут добавлены к {count} файлам."],
+ "_{tags} and {lastTag} will be removed from 1 file._::_{tags} and {lastTag} will be removed from {count} files._" : ["{tags} и {lastTag} будут удалены из 1 файла.","{tags} и {lastTag} будут удалены из {count} файлов.","{tags} и {lastTag} будут удалены из {count} файлов.","{tags} и {lastTag} будут удалены из {count} файлов."],
+ "{displayName} (hidden)" : "{displayName} (скрыто)",
+ "{displayName} (restricted)" : "{displayName} (ограничено)",
+ "Only admins can create new tags" : "Только администраторы могут создать новые метки",
"Failed to apply tags changes" : "Не удалось применить изменения тегов",
+ "File tags modification canceled" : "Изменение меток отменено",
"Manage tags" : "Управление метками",
+ "Applying tags changes…" : "Изменение меток…",
"Search or create tag" : "Найти или создать тег",
+ "Search tag" : "Найти метку",
+ "Change tag color" : "Изменить цвет метки",
"Create new tag" : "Создать новый тег",
+ "Select or create tags to apply to all selected files" : "Выберите или создайте метки для применения ко всем выбранным файлам",
+ "Select tags to apply to all selected files" : "Выберите метки для применения ко всем выбранным файлам",
"Cancel" : "Отмена",
"Apply changes" : "Применить изменения",
"Failed to load tags" : "Не удалось загрузить метки",
"Failed to load selected tags" : "Не удалось загрузить выбранный тег",
"Failed to select tag" : "Не удалось выбрать тег",
+ "System admin disabled tag creation. You can only use existing ones." : "Создание меток отключено системным администратором. Вы можете использовать только существующие.",
"Loading collaborative tags …" : "Загрузка совместных тегов ...",
"Search or create collaborative tags" : "Поиск или создание совместных тегов",
"No tags to select, type to create a new tag" : "Нет тегов для выбора. Введите что-нибудь для создания нового тега",
+ "Unable to update setting" : "Не удалось обновить настройку",
+ "System tag creation is now restricted to administrators" : "Создание системных меток теперь разрешено только администраторам",
+ "System tag creation is now allowed for everybody" : "Создание системных меток теперь разрешено всем пользователям",
+ "System tag management" : "Управление системными метками",
+ "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Если включено, только администраторы смогут создавать и редактировать метки. Пользователи всё ещё смогут назначать и удалять их с файлов.",
+ "Restrict tag creation and editing to administrators" : "Разрешить создание и редактирование меток только администраторам",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Совместные теги доступны для всех пользователей. Ограниченные теги видны пользователям, но не могут быть назначены ими. Невидимые теги предназначены для внутреннего использования, поскольку пользователи не могут их видеть или назначать.",
"Assigned collaborative tags" : "Присвоенные теги для совместной работы",
"Open in Files" : "Открыть в приложении «Файлы»",
@@ -84,10 +105,9 @@
"Failed to load tag" : "Не удалось загрузить тег",
"Failed to load last used tags" : "Не удалось загрузить последние использованные метки",
"Missing \"Content-Location\" header" : "Отсутствует заголовок «Content-Location»",
+ "A tag with the same name already exists" : "Метка с таким именем уже существует",
"Failed to load tags for file" : "Не удалось загрузить метки для файла",
"Failed to set tag for file" : "Не удалось поставить метку файлу",
- "Failed to delete tag for file" : "Не удалось удалить метку у файла",
- "This file has the tag {tag}" : "У этого файла есть тэг: {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "У этого файла есть тэги: {firstTags} и {lastTag}"
+ "Failed to delete tag for file" : "Не удалось удалить метку у файла"
},"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/systemtags/l10n/sc.js b/apps/systemtags/l10n/sc.js
deleted file mode 100644
index 397d99f5c60..00000000000
--- a/apps/systemtags/l10n/sc.js
+++ /dev/null
@@ -1,61 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "System tag %1$s added by the system" : "Eticheta de sistema %1$s agiunta dae su sistema",
- "Added system tag {systemtag}" : "Agiunta s'eticheta de sistema {systemtag}",
- "Added system tag %1$s" : "Agiunta s'eticheta de sistema %1$s",
- "%1$s added system tag %2$s" : "%1$sat agiuntu s'eticheta de sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} at agiuntu s'eticheta de sistema {systemtag}",
- "System tag %1$s removed by the system" : "Eticheta de sistema %1$s bogada dae su sistema",
- "Removed system tag {systemtag}" : "Bogada s'eticheta de sistema {systemtag}",
- "Removed system tag %1$s" : "Bogada s'eticheta de sistema %1$s",
- "%1$s removed system tag %2$s" : "%1$snch'at bogadu s'eticheta de sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} nch'at bogadu s'eticheta de sistema {systemtag}",
- "You created system tag %1$s" : "As creadu s'eticheta de sistema %1$s",
- "You created system tag {systemtag}" : "As creadu s'eticheta de sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s at creadu s'eticheta de sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} at creadu s'eticheta de sistema {systemtag}",
- "You deleted system tag %1$s" : "As cantzelladu s'eticheta de sistema %1$s",
- "You deleted system tag {systemtag}" : "As cantzelladu s'eticheta de sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s at cantzelladu s'eticheta de sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} at cantzelladu s'eticheta de sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "As agiornadu s'eticheta de sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "As agiornadu s'eticheta de sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$sat agiornadu s'eticheta de sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} at agiornadu s'eticheta de sistema {oldsystemtag} a {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "S'eticheta de sistema %2$s est istada agiunta in %1$s dae su sistema",
- "System tag {systemtag} was added to {file} by the system" : "S'eticheta de sistema {systemtag} est istada agiunta a {file} dae su sistema",
- "You added system tag %2$s to %1$s" : "As agiuntu s'eticheta de sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "As agiuntu s'eticheta de sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s at agiuntu s'eticheta de sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} at agiuntu s'eticheta de sistema {systemtag} a {file}",
- "System tag %2$s was removed from %1$s by the system" : "S'eticheta de sistema %2$s est istada bogada dae %1$s dae su sistema",
- "System tag {systemtag} was removed from {file} by the system" : "S'eticheta de sistema {systemtag} est istada bogada dae {file} dae su sistema",
- "You removed system tag %2$s from %1$s" : "Nch'as bogadu s'eticheta de sistema %2$s dae %1$s",
- "You removed system tag {systemtag} from {file}" : "Nch'as bogadu s'eticheta de sistema {systemtag} dae {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s nch'at bogadu s'eticheta de sistema %3$s dae%2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} nch'at bogadu s'eticheta de sistema {systemtag} dae {file}",
- "%s (restricted)" : "%s (limitadu)",
- "%s (invisible)" : "%s (invisìbile)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Etichetas de sistema</strong> pro un'archìviu sunt istada modificadas",
- "Files" : "Archìvios",
- "Tags" : "Etichetas",
- "Collaborative tags" : "Etichetas collaborativas",
- "Public" : "Pùblicu",
- "Restricted" : "Limitadu",
- "Invisible" : "Invisìbile",
- "Create" : "Crea",
- "Update" : "Agiorna",
- "Delete" : "Cantzella",
- "Reset" : "Ripristina",
- "Loading …" : "Carrigamentu …",
- "Manage tags" : "Gesti etichetas",
- "Cancel" : "Annulla",
- "Failed to load tags" : "No at fatu a carrigare is etichetas",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Is etichetas collaborativas sunt a disponimentu pro totu is utentes. Is etichetas limitadas podent èssere bidas dae is utentes, chi però no ddas podent assignare. Is etichetas visìbiles sunt pro un'impreu de intro, ca is utentes no ddas podent nen bìdere nen assignare.",
- "Open in Files" : "Aberi in Archìvios",
- "No tags found" : "Peruna eticheta agatada",
- "This file has the tag {tag}" : "Custu archìviu tenet s'eticheta {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Custu archìviu tenet is etichetas {firstTags} e {lastTag}"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/sc.json b/apps/systemtags/l10n/sc.json
deleted file mode 100644
index aa2d89922ee..00000000000
--- a/apps/systemtags/l10n/sc.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{ "translations": {
- "System tag %1$s added by the system" : "Eticheta de sistema %1$s agiunta dae su sistema",
- "Added system tag {systemtag}" : "Agiunta s'eticheta de sistema {systemtag}",
- "Added system tag %1$s" : "Agiunta s'eticheta de sistema %1$s",
- "%1$s added system tag %2$s" : "%1$sat agiuntu s'eticheta de sistema %2$s",
- "{actor} added system tag {systemtag}" : "{actor} at agiuntu s'eticheta de sistema {systemtag}",
- "System tag %1$s removed by the system" : "Eticheta de sistema %1$s bogada dae su sistema",
- "Removed system tag {systemtag}" : "Bogada s'eticheta de sistema {systemtag}",
- "Removed system tag %1$s" : "Bogada s'eticheta de sistema %1$s",
- "%1$s removed system tag %2$s" : "%1$snch'at bogadu s'eticheta de sistema %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} nch'at bogadu s'eticheta de sistema {systemtag}",
- "You created system tag %1$s" : "As creadu s'eticheta de sistema %1$s",
- "You created system tag {systemtag}" : "As creadu s'eticheta de sistema {systemtag}",
- "%1$s created system tag %2$s" : "%1$s at creadu s'eticheta de sistema %2$s",
- "{actor} created system tag {systemtag}" : "{actor} at creadu s'eticheta de sistema {systemtag}",
- "You deleted system tag %1$s" : "As cantzelladu s'eticheta de sistema %1$s",
- "You deleted system tag {systemtag}" : "As cantzelladu s'eticheta de sistema {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s at cantzelladu s'eticheta de sistema %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} at cantzelladu s'eticheta de sistema {systemtag}",
- "You updated system tag %2$s to %1$s" : "As agiornadu s'eticheta de sistema %2$s a %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "As agiornadu s'eticheta de sistema {oldsystemtag} a {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$sat agiornadu s'eticheta de sistema %3$s a %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} at agiornadu s'eticheta de sistema {oldsystemtag} a {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "S'eticheta de sistema %2$s est istada agiunta in %1$s dae su sistema",
- "System tag {systemtag} was added to {file} by the system" : "S'eticheta de sistema {systemtag} est istada agiunta a {file} dae su sistema",
- "You added system tag %2$s to %1$s" : "As agiuntu s'eticheta de sistema %2$s a %1$s",
- "You added system tag {systemtag} to {file}" : "As agiuntu s'eticheta de sistema {systemtag} a {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s at agiuntu s'eticheta de sistema %3$s a %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} at agiuntu s'eticheta de sistema {systemtag} a {file}",
- "System tag %2$s was removed from %1$s by the system" : "S'eticheta de sistema %2$s est istada bogada dae %1$s dae su sistema",
- "System tag {systemtag} was removed from {file} by the system" : "S'eticheta de sistema {systemtag} est istada bogada dae {file} dae su sistema",
- "You removed system tag %2$s from %1$s" : "Nch'as bogadu s'eticheta de sistema %2$s dae %1$s",
- "You removed system tag {systemtag} from {file}" : "Nch'as bogadu s'eticheta de sistema {systemtag} dae {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s nch'at bogadu s'eticheta de sistema %3$s dae%2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} nch'at bogadu s'eticheta de sistema {systemtag} dae {file}",
- "%s (restricted)" : "%s (limitadu)",
- "%s (invisible)" : "%s (invisìbile)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Etichetas de sistema</strong> pro un'archìviu sunt istada modificadas",
- "Files" : "Archìvios",
- "Tags" : "Etichetas",
- "Collaborative tags" : "Etichetas collaborativas",
- "Public" : "Pùblicu",
- "Restricted" : "Limitadu",
- "Invisible" : "Invisìbile",
- "Create" : "Crea",
- "Update" : "Agiorna",
- "Delete" : "Cantzella",
- "Reset" : "Ripristina",
- "Loading …" : "Carrigamentu …",
- "Manage tags" : "Gesti etichetas",
- "Cancel" : "Annulla",
- "Failed to load tags" : "No at fatu a carrigare is etichetas",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Is etichetas collaborativas sunt a disponimentu pro totu is utentes. Is etichetas limitadas podent èssere bidas dae is utentes, chi però no ddas podent assignare. Is etichetas visìbiles sunt pro un'impreu de intro, ca is utentes no ddas podent nen bìdere nen assignare.",
- "Open in Files" : "Aberi in Archìvios",
- "No tags found" : "Peruna eticheta agatada",
- "This file has the tag {tag}" : "Custu archìviu tenet s'eticheta {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Custu archìviu tenet is etichetas {firstTags} e {lastTag}"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/sk.js b/apps/systemtags/l10n/sk.js
index c7664081c66..85a87363586 100644
--- a/apps/systemtags/l10n/sk.js
+++ b/apps/systemtags/l10n/sk.js
@@ -99,8 +99,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Štítok s rovnakým menom už existuje",
"Failed to load tags for file" : "Nepodarilo sa načítať štítky pre súbor",
"Failed to set tag for file" : "Nepodarilo sa nastaviť štítok pre súbor",
- "Failed to delete tag for file" : "Nepodarilo sa odstrániť štítok pre súbor",
- "This file has the tag {tag}" : "Tento súbor má štítok {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Tento súbor má štítky {firstTags} a {lastTag}"
+ "Failed to delete tag for file" : "Nepodarilo sa odstrániť štítok pre súbor"
},
"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/systemtags/l10n/sk.json b/apps/systemtags/l10n/sk.json
index 2652860d2c0..90c0b66bc06 100644
--- a/apps/systemtags/l10n/sk.json
+++ b/apps/systemtags/l10n/sk.json
@@ -97,8 +97,6 @@
"A tag with the same name already exists" : "Štítok s rovnakým menom už existuje",
"Failed to load tags for file" : "Nepodarilo sa načítať štítky pre súbor",
"Failed to set tag for file" : "Nepodarilo sa nastaviť štítok pre súbor",
- "Failed to delete tag for file" : "Nepodarilo sa odstrániť štítok pre súbor",
- "This file has the tag {tag}" : "Tento súbor má štítok {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Tento súbor má štítky {firstTags} a {lastTag}"
+ "Failed to delete tag for file" : "Nepodarilo sa odstrániť štítok pre súbor"
},"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/systemtags/l10n/sl.js b/apps/systemtags/l10n/sl.js
index 352028fb253..2388326acc5 100644
--- a/apps/systemtags/l10n/sl.js
+++ b/apps/systemtags/l10n/sl.js
@@ -66,8 +66,6 @@ OC.L10N.register(
"Failed to load tags" : "Nalaganje oznak je spodletelo",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Sodelovalne oznake so na voljo vsem uporabnikom, omejitvene so uporabnikom vidne, a jih ni mogoče dodeliti, nevidne pa so namenjene sistemski rabi, uporabniki jih niti ne vidijo niti jih ne morejo dodeliti.",
"Open in Files" : "Odpri v mapi",
- "No tags found" : "Ni najdenih oznak",
- "This file has the tag {tag}" : "Datoteka je označena z oznako {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Ta datoteka ima oznake {firstTags} in {lastTag}"
+ "No tags found" : "Ni najdenih oznak"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/systemtags/l10n/sl.json b/apps/systemtags/l10n/sl.json
index e7c7b88d5a6..d1d4b22cbf0 100644
--- a/apps/systemtags/l10n/sl.json
+++ b/apps/systemtags/l10n/sl.json
@@ -64,8 +64,6 @@
"Failed to load tags" : "Nalaganje oznak je spodletelo",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Sodelovalne oznake so na voljo vsem uporabnikom, omejitvene so uporabnikom vidne, a jih ni mogoče dodeliti, nevidne pa so namenjene sistemski rabi, uporabniki jih niti ne vidijo niti jih ne morejo dodeliti.",
"Open in Files" : "Odpri v mapi",
- "No tags found" : "Ni najdenih oznak",
- "This file has the tag {tag}" : "Datoteka je označena z oznako {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Ta datoteka ima oznake {firstTags} in {lastTag}"
+ "No tags found" : "Ni najdenih oznak"
},"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/systemtags/l10n/sq.js b/apps/systemtags/l10n/sq.js
deleted file mode 100644
index e4128ee8881..00000000000
--- a/apps/systemtags/l10n/sq.js
+++ /dev/null
@@ -1,52 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Added system tag {systemtag}" : "Tagu i shtuar i sistemit{systemtag}",
- "Added system tag %1$s" : "U shtua etiketa %1$s e sistemit ",
- "%1$s added system tag %2$s" : "%1$s shtoi etiketën %2$s të sistemit ",
- "{actor} added system tag {systemtag}" : "{actor} shtoi etiketën e sistemit {systemtag}",
- "Removed system tag {systemtag}" : "Hoqi etiketën e sistemit {systemtag}",
- "Removed system tag %1$s" : "Hoqi etiketën %1$s të sistemit ",
- "%1$s removed system tag %2$s" : "%1$s hoqi etiketën %2$s të sistemit ",
- "{actor} removed system tag {systemtag}" : "{actor} hoqi etiketën e sistemit {systemtag}",
- "You created system tag %1$s" : "Ju krijuat etiketën %1$s të sistemit",
- "You created system tag {systemtag}" : "Ju keni krijuar etiketimin e sistemit {systemtag}",
- "%1$s created system tag %2$s" : "%1$s krijoi etiketën e sistemit %2$s",
- "{actor} created system tag {systemtag}" : "{actor} krijoi etiketimin e sistemit {systemtag}",
- "You deleted system tag %1$s" : "Ju fshit etiketën %1$s të sistemit",
- "You deleted system tag {systemtag}" : "Ju fshit etiketën {systemtag} të sistemit",
- "%1$s deleted system tag %2$s" : "%1$s fshiu etiketën e sistemit %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} fshiu etiketën {systemtag} të sistemit",
- "You updated system tag %2$s to %1$s" : "Ju përditësuat etiketën e sistemit nga %2$s në %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Ju përditësuat etiketën e sistemit nga {oldsystemtag} në {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s përditësoi etiketën e sistemit %3$s si %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} përditësoi etiketimin e sistemit {oldsystemtag} në {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Ju shtuat tagun e sistemit%2$s në %1$s",
- "You added system tag {systemtag} to {file}" : "Ju shtuat tagun e sistemit{systemtag} në{file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s shtoi etiketën e sistemit %3$s në %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} shtoi etiketimin e sistemit {systemtag} në {file}",
- "You removed system tag %2$s from %1$s" : "Ju hoqët etiketimin e sistemit %2$s nga %1$s",
- "You removed system tag {systemtag} from {file}" : "Hoqët etiketën e sistemit {systemtag} nga {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s hoqi etiketimin e sistemit %3$s nga %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} hoqi etiketimin e sistemit {systemtag} nga {file}",
- "%s (restricted)" : "%s (e kufizuar)",
- "%s (invisible)" : "%s (e padukshme)",
- "<strong>System tags</strong> for a file have been modified" : "U ndryshyan <strong>etiketa sistemi</strong>për një kartelë",
- "Files" : "Skedarë",
- "Tags" : "Etiketa",
- "Collaborative tags" : "Etiketa bashkëpunuese",
- "Create" : "Krijo",
- "Update" : "Përditëso",
- "Delete" : "Fshije",
- "Reset" : "Rivendos",
- "Public" : "Publik",
- "Restricted" : "I/E kufizuar",
- "Invisible" : "I padukshëm",
- "No tags found" : "Asnjë etiket nuk u gjet",
- "No files in here" : "S’ka kartela këtu",
- "No entries found in this folder" : "S’u gjetën zëra në këtë dosje",
- "Name" : "Emër",
- "Size" : "Madhësi",
- "Modified" : "Ndryshuar më"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/sq.json b/apps/systemtags/l10n/sq.json
deleted file mode 100644
index a1f8655642b..00000000000
--- a/apps/systemtags/l10n/sq.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{ "translations": {
- "Added system tag {systemtag}" : "Tagu i shtuar i sistemit{systemtag}",
- "Added system tag %1$s" : "U shtua etiketa %1$s e sistemit ",
- "%1$s added system tag %2$s" : "%1$s shtoi etiketën %2$s të sistemit ",
- "{actor} added system tag {systemtag}" : "{actor} shtoi etiketën e sistemit {systemtag}",
- "Removed system tag {systemtag}" : "Hoqi etiketën e sistemit {systemtag}",
- "Removed system tag %1$s" : "Hoqi etiketën %1$s të sistemit ",
- "%1$s removed system tag %2$s" : "%1$s hoqi etiketën %2$s të sistemit ",
- "{actor} removed system tag {systemtag}" : "{actor} hoqi etiketën e sistemit {systemtag}",
- "You created system tag %1$s" : "Ju krijuat etiketën %1$s të sistemit",
- "You created system tag {systemtag}" : "Ju keni krijuar etiketimin e sistemit {systemtag}",
- "%1$s created system tag %2$s" : "%1$s krijoi etiketën e sistemit %2$s",
- "{actor} created system tag {systemtag}" : "{actor} krijoi etiketimin e sistemit {systemtag}",
- "You deleted system tag %1$s" : "Ju fshit etiketën %1$s të sistemit",
- "You deleted system tag {systemtag}" : "Ju fshit etiketën {systemtag} të sistemit",
- "%1$s deleted system tag %2$s" : "%1$s fshiu etiketën e sistemit %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} fshiu etiketën {systemtag} të sistemit",
- "You updated system tag %2$s to %1$s" : "Ju përditësuat etiketën e sistemit nga %2$s në %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Ju përditësuat etiketën e sistemit nga {oldsystemtag} në {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s përditësoi etiketën e sistemit %3$s si %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} përditësoi etiketimin e sistemit {oldsystemtag} në {newsystemtag}",
- "You added system tag %2$s to %1$s" : "Ju shtuat tagun e sistemit%2$s në %1$s",
- "You added system tag {systemtag} to {file}" : "Ju shtuat tagun e sistemit{systemtag} në{file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s shtoi etiketën e sistemit %3$s në %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} shtoi etiketimin e sistemit {systemtag} në {file}",
- "You removed system tag %2$s from %1$s" : "Ju hoqët etiketimin e sistemit %2$s nga %1$s",
- "You removed system tag {systemtag} from {file}" : "Hoqët etiketën e sistemit {systemtag} nga {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s hoqi etiketimin e sistemit %3$s nga %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} hoqi etiketimin e sistemit {systemtag} nga {file}",
- "%s (restricted)" : "%s (e kufizuar)",
- "%s (invisible)" : "%s (e padukshme)",
- "<strong>System tags</strong> for a file have been modified" : "U ndryshyan <strong>etiketa sistemi</strong>për një kartelë",
- "Files" : "Skedarë",
- "Tags" : "Etiketa",
- "Collaborative tags" : "Etiketa bashkëpunuese",
- "Create" : "Krijo",
- "Update" : "Përditëso",
- "Delete" : "Fshije",
- "Reset" : "Rivendos",
- "Public" : "Publik",
- "Restricted" : "I/E kufizuar",
- "Invisible" : "I padukshëm",
- "No tags found" : "Asnjë etiket nuk u gjet",
- "No files in here" : "S’ka kartela këtu",
- "No entries found in this folder" : "S’u gjetën zëra në këtë dosje",
- "Name" : "Emër",
- "Size" : "Madhësi",
- "Modified" : "Ndryshuar më"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/sr.js b/apps/systemtags/l10n/sr.js
index 1e5da31786f..7c92cd43c49 100644
--- a/apps/systemtags/l10n/sr.js
+++ b/apps/systemtags/l10n/sr.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Већ постоји ознака са истим именом",
"Failed to load tags for file" : "Није успело учитавање ознака за фајл",
"Failed to set tag for file" : "Није успело постављање ознака за фајл",
- "Failed to delete tag for file" : "Није успело брисање ознака за фајл",
- "This file has the tag {tag}" : "Овај фајл има ознаку {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Овај фајл има ознаке {firstTags} и {lastTag}"
+ "Failed to delete tag for file" : "Није успело брисање ознака за фајл"
},
"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/systemtags/l10n/sr.json b/apps/systemtags/l10n/sr.json
index 2c6d6faace9..47ce18faf6d 100644
--- a/apps/systemtags/l10n/sr.json
+++ b/apps/systemtags/l10n/sr.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Већ постоји ознака са истим именом",
"Failed to load tags for file" : "Није успело учитавање ознака за фајл",
"Failed to set tag for file" : "Није успело постављање ознака за фајл",
- "Failed to delete tag for file" : "Није успело брисање ознака за фајл",
- "This file has the tag {tag}" : "Овај фајл има ознаку {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Овај фајл има ознаке {firstTags} и {lastTag}"
+ "Failed to delete tag for file" : "Није успело брисање ознака за фајл"
},"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/systemtags/l10n/sr@latin.js b/apps/systemtags/l10n/sr@latin.js
deleted file mode 100644
index 090fa44934b..00000000000
--- a/apps/systemtags/l10n/sr@latin.js
+++ /dev/null
@@ -1,11 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Tags" : "Oznake",
- "No files in here" : "Ovde nema fajlova",
- "No entries found in this folder" : "Nema ničega u ovoj fascikli",
- "Name" : "naziv",
- "Size" : "veličina",
- "Modified" : "Izmenjen"
-},
-"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/systemtags/l10n/sr@latin.json b/apps/systemtags/l10n/sr@latin.json
deleted file mode 100644
index b4e0d396af8..00000000000
--- a/apps/systemtags/l10n/sr@latin.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "translations": {
- "Tags" : "Oznake",
- "No files in here" : "Ovde nema fajlova",
- "No entries found in this folder" : "Nema ničega u ovoj fascikli",
- "Name" : "naziv",
- "Size" : "veličina",
- "Modified" : "Izmenjen"
-},"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/systemtags/l10n/sv.js b/apps/systemtags/l10n/sv.js
index f072d6aac72..c37f4a91668 100644
--- a/apps/systemtags/l10n/sv.js
+++ b/apps/systemtags/l10n/sv.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "En tagg med samma namn finns redan",
"Failed to load tags for file" : "Kunde inte läsa in taggar för filen",
"Failed to set tag for file" : "Kunde inte sätta tagg för filen",
- "Failed to delete tag for file" : "Kunde inte ta bort tagg för filen",
- "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}"
+ "Failed to delete tag for file" : "Kunde inte ta bort tagg för filen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/sv.json b/apps/systemtags/l10n/sv.json
index d3b3b5de3c6..7dce00c18b9 100644
--- a/apps/systemtags/l10n/sv.json
+++ b/apps/systemtags/l10n/sv.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "En tagg med samma namn finns redan",
"Failed to load tags for file" : "Kunde inte läsa in taggar för filen",
"Failed to set tag for file" : "Kunde inte sätta tagg för filen",
- "Failed to delete tag for file" : "Kunde inte ta bort tagg för filen",
- "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}"
+ "Failed to delete tag for file" : "Kunde inte ta bort tagg för filen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/th.js b/apps/systemtags/l10n/th.js
deleted file mode 100644
index 64466da1429..00000000000
--- a/apps/systemtags/l10n/th.js
+++ /dev/null
@@ -1,54 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "System tag %1$s added by the system" : "แท็กระบบ %1$s ถูกเพิ่มโดยระบบ",
- "Added system tag {systemtag}" : "เพิ่มแท็กระบบ {systemtag} แล้ว",
- "Added system tag %1$s" : "เพิ่มแท็กระบบ %1$s แล้ว",
- "%1$s added system tag %2$s" : "%1$s ได้เพิ่มแท็กระบบ %2$s",
- "{actor} added system tag {systemtag}" : "{actor} ได้เพิ่มแท็กระบบ {systemtag}",
- "System tag %1$s removed by the system" : "แท็กระบบ %1$s ถูกเอาออกโดยระบบ",
- "Removed system tag {systemtag}" : "เอาแท็กระบบ {systemtag} ออกแล้ว",
- "Removed system tag %1$s" : "เอาแท็กระบบ %1$s ออกแล้ว",
- "%1$s removed system tag %2$s" : "%1$s ได้เอาแท็กระบบ %2$s ออก",
- "{actor} removed system tag {systemtag}" : "{actor} ได้เอาแท็กระบบ {systemtag} ออก",
- "You created system tag %1$s" : "คุณได้เพิ่มแท็กระบบ %1$s",
- "You created system tag {systemtag}" : "คุณได้เพิ่มแท็กระบบ {systemtag}",
- "%1$s created system tag %2$s" : "%1$s ได้สร้างแท็กระบบ %2$s",
- "{actor} created system tag {systemtag}" : "{actor} ได้เพิ่มแท็กระบบ {systemtag}",
- "You deleted system tag %1$s" : "คุณได้ลบแท็กระบบ %1$s",
- "You deleted system tag {systemtag}" : "คุณได้ลบแท็กระบบ {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s ได้ลบแท็กระบบ %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} ได้ลบแท็กระบบ {systemtag}",
- "You updated system tag %2$s to %1$s" : "คุณได้อัปเดตแท็กระบบจาก %2$s เป็น %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "คุณได้อัปเดตแท็กระบบจาก {oldsystemtag} เป็น {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s ได้อัปเดตแท็กระบบจาก %3$s เป็น %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} ได้อัปเดตแท็กระบบจาก {oldsystemtag} เป็น {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "แท็กระบบ %2$s ถูกเพิ่มไปยัง %1$s โดยระบบ",
- "System tag {systemtag} was added to {file} by the system" : "แท็กระบบ {systemtag} ถูกเพิ่มไปยัง {file} โดยระบบ",
- "You added system tag %2$s to %1$s" : "คุณได้เพิ่มแท็กระบบ %2$sไปยัง %1$s",
- "You added system tag {systemtag} to {file}" : "คุณได้เพิ่มแท็กระบบ {systemtag} ไปยัง {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s ได้เพิ่มแท็กระบบ %3$s ไปยัง %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} ได้เพิ่มแท็กระบบ {systemtag} ไปยัง {file}",
- "System tag %2$s was removed from %1$s by the system" : "แท็กระบบ %2$s ถูกเอาออกจาก %1$s โดยระบบ",
- "System tag {systemtag} was removed from {file} by the system" : "แท็กระบบ {systemtag} ถูกเอาออกจาก {file} โดยระบบ",
- "You removed system tag %2$s from %1$s" : "คุณได้เอาแท็กระบบ %2$sออกจาก %1$s",
- "You removed system tag {systemtag} from {file}" : "คุณได้เอาแท็กระบบ {systemtag} ออกจาก {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s ได้เอาแท็กระบบ %3$s ออกจาก %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} ได้เอาแท็กระบบ {systemtag} ออกจาก {file}",
- "%s (restricted)" : "%s (ถูกจำกัด)",
- "%s (invisible)" : "%s (ไม่แสดงสถานะ)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>แท็กระบบ</strong> สำหรับไฟล์ที่ได้รับการแก้ไข",
- "Tags" : "แท็ก",
- "Collaborative tags" : "แท็กแบบทำงานร่วมกัน",
- "Create" : "สร้าง",
- "Update" : "อัปเดต",
- "Delete" : "ลบ",
- "Reset" : "ตั้งค่าใหม่",
- "Public" : "สาธารณะ",
- "Restricted" : "ถูกจำกัด",
- "Invisible" : "มองไม่เห็น",
- "Cancel" : "ยกเลิก",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "ผู้ใช้ทุกคนสามารถใช้แท็กแบบทำงานร่วมกันได้ แท็กที่ถูกจำกัดสามารถมองเห็นได้โดยผู้ใช้ แต่ผู้ใช้ไม่สามารถจัดสรรได้ แท็กที่มองไม่เห็นใช้สำหรับภายใน เนื่องจากผู้ใช้ไม่สามารถเห็นหรือจัดสรรแท็กเหล่านั้น",
- "No tags found" : "ไม่พบแท็ก"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/th.json b/apps/systemtags/l10n/th.json
deleted file mode 100644
index 2e12b9d8d3b..00000000000
--- a/apps/systemtags/l10n/th.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{ "translations": {
- "System tag %1$s added by the system" : "แท็กระบบ %1$s ถูกเพิ่มโดยระบบ",
- "Added system tag {systemtag}" : "เพิ่มแท็กระบบ {systemtag} แล้ว",
- "Added system tag %1$s" : "เพิ่มแท็กระบบ %1$s แล้ว",
- "%1$s added system tag %2$s" : "%1$s ได้เพิ่มแท็กระบบ %2$s",
- "{actor} added system tag {systemtag}" : "{actor} ได้เพิ่มแท็กระบบ {systemtag}",
- "System tag %1$s removed by the system" : "แท็กระบบ %1$s ถูกเอาออกโดยระบบ",
- "Removed system tag {systemtag}" : "เอาแท็กระบบ {systemtag} ออกแล้ว",
- "Removed system tag %1$s" : "เอาแท็กระบบ %1$s ออกแล้ว",
- "%1$s removed system tag %2$s" : "%1$s ได้เอาแท็กระบบ %2$s ออก",
- "{actor} removed system tag {systemtag}" : "{actor} ได้เอาแท็กระบบ {systemtag} ออก",
- "You created system tag %1$s" : "คุณได้เพิ่มแท็กระบบ %1$s",
- "You created system tag {systemtag}" : "คุณได้เพิ่มแท็กระบบ {systemtag}",
- "%1$s created system tag %2$s" : "%1$s ได้สร้างแท็กระบบ %2$s",
- "{actor} created system tag {systemtag}" : "{actor} ได้เพิ่มแท็กระบบ {systemtag}",
- "You deleted system tag %1$s" : "คุณได้ลบแท็กระบบ %1$s",
- "You deleted system tag {systemtag}" : "คุณได้ลบแท็กระบบ {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s ได้ลบแท็กระบบ %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} ได้ลบแท็กระบบ {systemtag}",
- "You updated system tag %2$s to %1$s" : "คุณได้อัปเดตแท็กระบบจาก %2$s เป็น %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "คุณได้อัปเดตแท็กระบบจาก {oldsystemtag} เป็น {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s ได้อัปเดตแท็กระบบจาก %3$s เป็น %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} ได้อัปเดตแท็กระบบจาก {oldsystemtag} เป็น {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "แท็กระบบ %2$s ถูกเพิ่มไปยัง %1$s โดยระบบ",
- "System tag {systemtag} was added to {file} by the system" : "แท็กระบบ {systemtag} ถูกเพิ่มไปยัง {file} โดยระบบ",
- "You added system tag %2$s to %1$s" : "คุณได้เพิ่มแท็กระบบ %2$sไปยัง %1$s",
- "You added system tag {systemtag} to {file}" : "คุณได้เพิ่มแท็กระบบ {systemtag} ไปยัง {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s ได้เพิ่มแท็กระบบ %3$s ไปยัง %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} ได้เพิ่มแท็กระบบ {systemtag} ไปยัง {file}",
- "System tag %2$s was removed from %1$s by the system" : "แท็กระบบ %2$s ถูกเอาออกจาก %1$s โดยระบบ",
- "System tag {systemtag} was removed from {file} by the system" : "แท็กระบบ {systemtag} ถูกเอาออกจาก {file} โดยระบบ",
- "You removed system tag %2$s from %1$s" : "คุณได้เอาแท็กระบบ %2$sออกจาก %1$s",
- "You removed system tag {systemtag} from {file}" : "คุณได้เอาแท็กระบบ {systemtag} ออกจาก {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s ได้เอาแท็กระบบ %3$s ออกจาก %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} ได้เอาแท็กระบบ {systemtag} ออกจาก {file}",
- "%s (restricted)" : "%s (ถูกจำกัด)",
- "%s (invisible)" : "%s (ไม่แสดงสถานะ)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>แท็กระบบ</strong> สำหรับไฟล์ที่ได้รับการแก้ไข",
- "Tags" : "แท็ก",
- "Collaborative tags" : "แท็กแบบทำงานร่วมกัน",
- "Create" : "สร้าง",
- "Update" : "อัปเดต",
- "Delete" : "ลบ",
- "Reset" : "ตั้งค่าใหม่",
- "Public" : "สาธารณะ",
- "Restricted" : "ถูกจำกัด",
- "Invisible" : "มองไม่เห็น",
- "Cancel" : "ยกเลิก",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "ผู้ใช้ทุกคนสามารถใช้แท็กแบบทำงานร่วมกันได้ แท็กที่ถูกจำกัดสามารถมองเห็นได้โดยผู้ใช้ แต่ผู้ใช้ไม่สามารถจัดสรรได้ แท็กที่มองไม่เห็นใช้สำหรับภายใน เนื่องจากผู้ใช้ไม่สามารถเห็นหรือจัดสรรแท็กเหล่านั้น",
- "No tags found" : "ไม่พบแท็ก"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/tr.js b/apps/systemtags/l10n/tr.js
index 22dbfa01517..31075e67578 100644
--- a/apps/systemtags/l10n/tr.js
+++ b/apps/systemtags/l10n/tr.js
@@ -96,7 +96,7 @@ OC.L10N.register(
"System tag creation is now restricted to administrators" : "Sistem etiketlerini yalnızca yöneticiler oluşturabilir",
"System tag creation is now allowed for everybody" : "Sistem etiketlerini tüm kullanıcılar oluşturabilir",
"System tag management" : "Sistem etiket yönetimi",
- "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Bu seçenek kullanıma alındığında, etiketleri yalnızca yöneticiler ekleyebilir ve düzenleyebilir. Kullanıcı hesapları yalnızca dosyalara atayabilir ve kaldırabilir.",
+ "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Açıksa, etiketleri yalnızca yöneticiler ekleyebilir ve düzenleyebilir. Kullanıcı hesapları etiketleri yalnızca dosyalara atayabilir ve kaldırabilir.",
"Restrict tag creation and editing to administrators" : "Etiket ekleme ve düzenleme yöneticilerle sınırlansın",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "İş birlikli etiketleri tüm kullanıcılar kullanabilir. Kısıtlanmış etiketleri kullanıcılar görebilir ancak atayamaz. Görünmeyen etiketler iç kullanım içindir ve kullanıcılar tarafından görülüp ve atanamaz.",
"Assigned collaborative tags" : "Atanmış iş birlikli etiketler",
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Aynı adlı bir etiket zaten var",
"Failed to load tags for file" : "Dosyanın etiketleri yüklenemedi",
"Failed to set tag for file" : "Dosyanın etiketi ayarlanamadı",
- "Failed to delete tag for file" : "Dosyanın etiketi silinemedi",
- "This file has the tag {tag}" : "Dosya {tag} olarak etiketlenmiş",
- "This file has the tags {firstTags} and {lastTag}" : "Dosya {firstTags} ve {lastTag} olarak etiketlenmiş"
+ "Failed to delete tag for file" : "Dosyanın etiketi silinemedi"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/systemtags/l10n/tr.json b/apps/systemtags/l10n/tr.json
index 90fec55dc14..d95835e0175 100644
--- a/apps/systemtags/l10n/tr.json
+++ b/apps/systemtags/l10n/tr.json
@@ -94,7 +94,7 @@
"System tag creation is now restricted to administrators" : "Sistem etiketlerini yalnızca yöneticiler oluşturabilir",
"System tag creation is now allowed for everybody" : "Sistem etiketlerini tüm kullanıcılar oluşturabilir",
"System tag management" : "Sistem etiket yönetimi",
- "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Bu seçenek kullanıma alındığında, etiketleri yalnızca yöneticiler ekleyebilir ve düzenleyebilir. Kullanıcı hesapları yalnızca dosyalara atayabilir ve kaldırabilir.",
+ "If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files." : "Açıksa, etiketleri yalnızca yöneticiler ekleyebilir ve düzenleyebilir. Kullanıcı hesapları etiketleri yalnızca dosyalara atayabilir ve kaldırabilir.",
"Restrict tag creation and editing to administrators" : "Etiket ekleme ve düzenleme yöneticilerle sınırlansın",
"Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "İş birlikli etiketleri tüm kullanıcılar kullanabilir. Kısıtlanmış etiketleri kullanıcılar görebilir ancak atayamaz. Görünmeyen etiketler iç kullanım içindir ve kullanıcılar tarafından görülüp ve atanamaz.",
"Assigned collaborative tags" : "Atanmış iş birlikli etiketler",
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "Aynı adlı bir etiket zaten var",
"Failed to load tags for file" : "Dosyanın etiketleri yüklenemedi",
"Failed to set tag for file" : "Dosyanın etiketi ayarlanamadı",
- "Failed to delete tag for file" : "Dosyanın etiketi silinemedi",
- "This file has the tag {tag}" : "Dosya {tag} olarak etiketlenmiş",
- "This file has the tags {firstTags} and {lastTag}" : "Dosya {firstTags} ve {lastTag} olarak etiketlenmiş"
+ "Failed to delete tag for file" : "Dosyanın etiketi silinemedi"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ug.js b/apps/systemtags/l10n/ug.js
index 23692f02ef7..d81f5158c86 100644
--- a/apps/systemtags/l10n/ug.js
+++ b/apps/systemtags/l10n/ug.js
@@ -93,8 +93,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "ئوخشاش ئىسىمدىكى بەلگە ئاللىبۇرۇن مەۋجۇت",
"Failed to load tags for file" : "ھۆججەتنىڭ خەتكۈچلىرىنى يۈكلىيەلمىدى",
"Failed to set tag for file" : "ھۆججەتكە بەلگە بەلگىلەش مەغلۇپ بولدى",
- "Failed to delete tag for file" : "ھۆججەتنىڭ بەلگىسىنى ئۆچۈرەلمىدى",
- "This file has the tag {tag}" : "بۇ ھۆججەتنىڭ بەلگىسى {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "بۇ ھۆججەتنىڭ خەتكۈچلىرى {firstTags} ۋە {lastTag}"
+ "Failed to delete tag for file" : "ھۆججەتنىڭ بەلگىسىنى ئۆچۈرەلمىدى"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/ug.json b/apps/systemtags/l10n/ug.json
index b05c0d8a474..1aba9a6fb2c 100644
--- a/apps/systemtags/l10n/ug.json
+++ b/apps/systemtags/l10n/ug.json
@@ -91,8 +91,6 @@
"A tag with the same name already exists" : "ئوخشاش ئىسىمدىكى بەلگە ئاللىبۇرۇن مەۋجۇت",
"Failed to load tags for file" : "ھۆججەتنىڭ خەتكۈچلىرىنى يۈكلىيەلمىدى",
"Failed to set tag for file" : "ھۆججەتكە بەلگە بەلگىلەش مەغلۇپ بولدى",
- "Failed to delete tag for file" : "ھۆججەتنىڭ بەلگىسىنى ئۆچۈرەلمىدى",
- "This file has the tag {tag}" : "بۇ ھۆججەتنىڭ بەلگىسى {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "بۇ ھۆججەتنىڭ خەتكۈچلىرى {firstTags} ۋە {lastTag}"
+ "Failed to delete tag for file" : "ھۆججەتنىڭ بەلگىسىنى ئۆچۈرەلمىدى"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/uk.js b/apps/systemtags/l10n/uk.js
index de269bd867f..0911b417f0d 100644
--- a/apps/systemtags/l10n/uk.js
+++ b/apps/systemtags/l10n/uk.js
@@ -94,8 +94,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "Мітка з таким ім'ям вже присутня",
"Failed to load tags for file" : "Не вдалося завантажити мітки для файлу",
"Failed to set tag for file" : "Не вдалося встановити мітку для файлу",
- "Failed to delete tag for file" : "Не вдалося вилучить мітку для файлу",
- "This file has the tag {tag}" : "Цей файл має мітку {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Цей файл має мітку {firstTags} та {lastTag}"
+ "Failed to delete tag for file" : "Не вдалося вилучить мітку для файлу"
},
"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/systemtags/l10n/uk.json b/apps/systemtags/l10n/uk.json
index d318066613f..a908c34bb7a 100644
--- a/apps/systemtags/l10n/uk.json
+++ b/apps/systemtags/l10n/uk.json
@@ -92,8 +92,6 @@
"A tag with the same name already exists" : "Мітка з таким ім'ям вже присутня",
"Failed to load tags for file" : "Не вдалося завантажити мітки для файлу",
"Failed to set tag for file" : "Не вдалося встановити мітку для файлу",
- "Failed to delete tag for file" : "Не вдалося вилучить мітку для файлу",
- "This file has the tag {tag}" : "Цей файл має мітку {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Цей файл має мітку {firstTags} та {lastTag}"
+ "Failed to delete tag for file" : "Не вдалося вилучить мітку для файлу"
},"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/systemtags/l10n/ur_PK.js b/apps/systemtags/l10n/ur_PK.js
deleted file mode 100644
index 7635cc73899..00000000000
--- a/apps/systemtags/l10n/ur_PK.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "Name" : "اسم"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/systemtags/l10n/ur_PK.json b/apps/systemtags/l10n/ur_PK.json
deleted file mode 100644
index 92dc68bea5d..00000000000
--- a/apps/systemtags/l10n/ur_PK.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Name" : "اسم"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/vi.js b/apps/systemtags/l10n/vi.js
deleted file mode 100644
index 9a7ee5d820a..00000000000
--- a/apps/systemtags/l10n/vi.js
+++ /dev/null
@@ -1,61 +0,0 @@
-OC.L10N.register(
- "systemtags",
- {
- "System tag %1$s added by the system" : "Thẻ hệ thống %1$s được hệ thống thêm vào",
- "Added system tag {systemtag}" : "Nhãn hệ thống được thêm vào {systemtag}",
- "Added system tag %1$s" : "Đã thêm nhãn hệ thống %1$s",
- "%1$s added system tag %2$s" : "%1$s đã thêm nhãn hệ thống %2$s",
- "{actor} added system tag {systemtag}" : "{actor} đã thêm nhãn hệ thống {systemtag}",
- "System tag %1$s removed by the system" : "Thẻ hệ thống %1$s được hệ thống xóa đi",
- "Removed system tag {systemtag}" : "Đã xóa nhãn hệ thống {systemtag}",
- "Removed system tag %1$s" : "Đã xóa nhãn hệ thống %1$s",
- "%1$s removed system tag %2$s" : "%1$s đã xóa nhãn hệ thống %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} đã xóa nhãn {systemtag}",
- "You created system tag %1$s" : "Bạn đã tạo nhãn %1$s",
- "You created system tag {systemtag}" : "Bạn đã tạo nhãn {systemtag}",
- "%1$s created system tag %2$s" : "%1$s đã tạo nhãn %2$s",
- "{actor} created system tag {systemtag}" : "{actor} đã tạo nhãn {systemtag}",
- "You deleted system tag %1$s" : "Bạn đã xóa nhãn %1$s",
- "You deleted system tag {systemtag}" : "Bạn đã xóa nhãn {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s đã xóa nhãn %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} đã xóa nhãn {systemtag}",
- "You updated system tag %2$s to %1$s" : "Bạn đã cập nhật nhãn %2$s to %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Bạn đã cập nhật nhãn {oldsystemtag} thành {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s đã cập nhật nhãn %3$s thành%2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} đã cập nhật nhãn {oldsystemtag} thành {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "Thẻ hệ thống %2$s được hệ thống thêm vào %1$s",
- "System tag {systemtag} was added to {file} by the system" : "Thẻ hệ thống {systemtag} được hệ thống thêm vào {file}",
- "You added system tag %2$s to %1$s" : "Bạn đã dán nhãn %2$s vào %1$s",
- "You added system tag {systemtag} to {file}" : "Bạn đã dán nhãn {systemtag} vào {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s đã dán nhãn %3$s vào %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} đã dán nhãn {systemtag} vào {file}",
- "System tag %2$s was removed from %1$s by the system" : "Thẻ hệ thống %2$s được hệ thống xóa khỏi %1$s",
- "System tag {systemtag} was removed from {file} by the system" : "Thẻ hệ thống {systemtag} được hệ thống xóa khỏi {file}",
- "You removed system tag %2$s from %1$s" : "Bạn đã xóa nhãn %2$s khỏi %1$s",
- "You removed system tag {systemtag} from {file}" : "Bạn đã xóa nhãn {systemtag} khỏi {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s đã xóa nhãn %3$s khỏi %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} đã xóa nhãn {systemtag} khỏi {file}",
- "%s (restricted)" : "%s (bị hạn chế)",
- "%s (invisible)" : "%s (vô hình)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Nhãn</strong> cho một tập tin đã được sửa đổi",
- "Files" : "Tệp tin",
- "Tags" : "Nhãn",
- "Collaborative tags" : "Thẻ cộng tác",
- "Public" : "Công khai",
- "Restricted" : "Bị giới hạn",
- "Invisible" : "Vô hình",
- "Create" : "Tạo",
- "Update" : "Cập nhật",
- "Delete" : "Xóa bỏ",
- "Reset" : "Đặt lại",
- "Loading …" : "Đang tải …",
- "Manage tags" : "Quản lý nhãn",
- "Cancel" : "Hủy bỏ",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Các thẻ hợp tác là có sẵn cho tất cả người dùng. Các thẻ giới hạn có thể được người dùng nhìn thấy nhưng không thể được họ phân công. Các thẻ vô hình là dành cho việc sử dụng nội bộ, vì những người dùng không thể thấy hay phân công chúng.",
- "Open in Files" : "Mở trong Tệp",
- "No tags found" : "Không tìm thấy nhãn",
- "Tags you have created will show up here." : "Thẻ bạn đã tạo sẽ hiển thị ở đây",
- "This file has the tag {tag}" : "Tập tin này có nhãn {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Tệp tin này có nhãn {firstTags} và {lastTag}"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/vi.json b/apps/systemtags/l10n/vi.json
deleted file mode 100644
index e2d84511304..00000000000
--- a/apps/systemtags/l10n/vi.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{ "translations": {
- "System tag %1$s added by the system" : "Thẻ hệ thống %1$s được hệ thống thêm vào",
- "Added system tag {systemtag}" : "Nhãn hệ thống được thêm vào {systemtag}",
- "Added system tag %1$s" : "Đã thêm nhãn hệ thống %1$s",
- "%1$s added system tag %2$s" : "%1$s đã thêm nhãn hệ thống %2$s",
- "{actor} added system tag {systemtag}" : "{actor} đã thêm nhãn hệ thống {systemtag}",
- "System tag %1$s removed by the system" : "Thẻ hệ thống %1$s được hệ thống xóa đi",
- "Removed system tag {systemtag}" : "Đã xóa nhãn hệ thống {systemtag}",
- "Removed system tag %1$s" : "Đã xóa nhãn hệ thống %1$s",
- "%1$s removed system tag %2$s" : "%1$s đã xóa nhãn hệ thống %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} đã xóa nhãn {systemtag}",
- "You created system tag %1$s" : "Bạn đã tạo nhãn %1$s",
- "You created system tag {systemtag}" : "Bạn đã tạo nhãn {systemtag}",
- "%1$s created system tag %2$s" : "%1$s đã tạo nhãn %2$s",
- "{actor} created system tag {systemtag}" : "{actor} đã tạo nhãn {systemtag}",
- "You deleted system tag %1$s" : "Bạn đã xóa nhãn %1$s",
- "You deleted system tag {systemtag}" : "Bạn đã xóa nhãn {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s đã xóa nhãn %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} đã xóa nhãn {systemtag}",
- "You updated system tag %2$s to %1$s" : "Bạn đã cập nhật nhãn %2$s to %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "Bạn đã cập nhật nhãn {oldsystemtag} thành {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s đã cập nhật nhãn %3$s thành%2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} đã cập nhật nhãn {oldsystemtag} thành {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "Thẻ hệ thống %2$s được hệ thống thêm vào %1$s",
- "System tag {systemtag} was added to {file} by the system" : "Thẻ hệ thống {systemtag} được hệ thống thêm vào {file}",
- "You added system tag %2$s to %1$s" : "Bạn đã dán nhãn %2$s vào %1$s",
- "You added system tag {systemtag} to {file}" : "Bạn đã dán nhãn {systemtag} vào {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s đã dán nhãn %3$s vào %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} đã dán nhãn {systemtag} vào {file}",
- "System tag %2$s was removed from %1$s by the system" : "Thẻ hệ thống %2$s được hệ thống xóa khỏi %1$s",
- "System tag {systemtag} was removed from {file} by the system" : "Thẻ hệ thống {systemtag} được hệ thống xóa khỏi {file}",
- "You removed system tag %2$s from %1$s" : "Bạn đã xóa nhãn %2$s khỏi %1$s",
- "You removed system tag {systemtag} from {file}" : "Bạn đã xóa nhãn {systemtag} khỏi {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s đã xóa nhãn %3$s khỏi %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} đã xóa nhãn {systemtag} khỏi {file}",
- "%s (restricted)" : "%s (bị hạn chế)",
- "%s (invisible)" : "%s (vô hình)",
- "<strong>System tags</strong> for a file have been modified" : "<strong>Nhãn</strong> cho một tập tin đã được sửa đổi",
- "Files" : "Tệp tin",
- "Tags" : "Nhãn",
- "Collaborative tags" : "Thẻ cộng tác",
- "Public" : "Công khai",
- "Restricted" : "Bị giới hạn",
- "Invisible" : "Vô hình",
- "Create" : "Tạo",
- "Update" : "Cập nhật",
- "Delete" : "Xóa bỏ",
- "Reset" : "Đặt lại",
- "Loading …" : "Đang tải …",
- "Manage tags" : "Quản lý nhãn",
- "Cancel" : "Hủy bỏ",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Các thẻ hợp tác là có sẵn cho tất cả người dùng. Các thẻ giới hạn có thể được người dùng nhìn thấy nhưng không thể được họ phân công. Các thẻ vô hình là dành cho việc sử dụng nội bộ, vì những người dùng không thể thấy hay phân công chúng.",
- "Open in Files" : "Mở trong Tệp",
- "No tags found" : "Không tìm thấy nhãn",
- "Tags you have created will show up here." : "Thẻ bạn đã tạo sẽ hiển thị ở đây",
- "This file has the tag {tag}" : "Tập tin này có nhãn {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "Tệp tin này có nhãn {firstTags} và {lastTag}"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/systemtags/l10n/zh_CN.js b/apps/systemtags/l10n/zh_CN.js
index 793692665ab..7651ca79c65 100644
--- a/apps/systemtags/l10n/zh_CN.js
+++ b/apps/systemtags/l10n/zh_CN.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "同名标签已存在",
"Failed to load tags for file" : "无法加载该文件的标签",
"Failed to set tag for file" : "无法设置该文件的标签",
- "Failed to delete tag for file" : "无法删除该文件的标签",
- "This file has the tag {tag}" : "这个文件有 {tag} 标签",
- "This file has the tags {firstTags} and {lastTag}" : "这个文件有 {firstTags} 和 {lastTag} 标签"
+ "Failed to delete tag for file" : "无法删除该文件的标签"
},
"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/zh_CN.json b/apps/systemtags/l10n/zh_CN.json
index 823b4440551..70b25916aa9 100644
--- a/apps/systemtags/l10n/zh_CN.json
+++ b/apps/systemtags/l10n/zh_CN.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "同名标签已存在",
"Failed to load tags for file" : "无法加载该文件的标签",
"Failed to set tag for file" : "无法设置该文件的标签",
- "Failed to delete tag for file" : "无法删除该文件的标签",
- "This file has the tag {tag}" : "这个文件有 {tag} 标签",
- "This file has the tags {firstTags} and {lastTag}" : "这个文件有 {firstTags} 和 {lastTag} 标签"
+ "Failed to delete tag for file" : "无法删除该文件的标签"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/zh_HK.js b/apps/systemtags/l10n/zh_HK.js
index 13d491b8167..680e95f2595 100644
--- a/apps/systemtags/l10n/zh_HK.js
+++ b/apps/systemtags/l10n/zh_HK.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "另一個同名的標籤已經存在",
"Failed to load tags for file" : "無法載入檔案的標籤",
"Failed to set tag for file" : "無法設定檔案的標籤",
- "Failed to delete tag for file" : "無法刪除檔案的標籤",
- "This file has the tag {tag}" : "此檔案帶有 {tag} 標籤",
- "This file has the tags {firstTags} and {lastTag}" : "此檔案帶有 {firstTags} 及 {lastTag} 標籤"
+ "Failed to delete tag for file" : "無法刪除檔案的標籤"
},
"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/zh_HK.json b/apps/systemtags/l10n/zh_HK.json
index 22b1237e9cc..1134f00f734 100644
--- a/apps/systemtags/l10n/zh_HK.json
+++ b/apps/systemtags/l10n/zh_HK.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "另一個同名的標籤已經存在",
"Failed to load tags for file" : "無法載入檔案的標籤",
"Failed to set tag for file" : "無法設定檔案的標籤",
- "Failed to delete tag for file" : "無法刪除檔案的標籤",
- "This file has the tag {tag}" : "此檔案帶有 {tag} 標籤",
- "This file has the tags {firstTags} and {lastTag}" : "此檔案帶有 {firstTags} 及 {lastTag} 標籤"
+ "Failed to delete tag for file" : "無法刪除檔案的標籤"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/zh_TW.js b/apps/systemtags/l10n/zh_TW.js
index 87cf1329796..b3291e73bac 100644
--- a/apps/systemtags/l10n/zh_TW.js
+++ b/apps/systemtags/l10n/zh_TW.js
@@ -110,8 +110,6 @@ OC.L10N.register(
"A tag with the same name already exists" : "已有相同名稱的標籤",
"Failed to load tags for file" : "檔案的標籤載入失敗",
"Failed to set tag for file" : "檔案的標籤設定失敗",
- "Failed to delete tag for file" : "檔案的標籤刪除失敗",
- "This file has the tag {tag}" : "此檔案有標籤 {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "此檔案有標籤 {firstTags} 與 {lastTag}"
+ "Failed to delete tag for file" : "檔案的標籤刪除失敗"
},
"nplurals=1; plural=0;");
diff --git a/apps/systemtags/l10n/zh_TW.json b/apps/systemtags/l10n/zh_TW.json
index c1f1a450ec2..c691bf59378 100644
--- a/apps/systemtags/l10n/zh_TW.json
+++ b/apps/systemtags/l10n/zh_TW.json
@@ -108,8 +108,6 @@
"A tag with the same name already exists" : "已有相同名稱的標籤",
"Failed to load tags for file" : "檔案的標籤載入失敗",
"Failed to set tag for file" : "檔案的標籤設定失敗",
- "Failed to delete tag for file" : "檔案的標籤刪除失敗",
- "This file has the tag {tag}" : "此檔案有標籤 {tag}",
- "This file has the tags {firstTags} and {lastTag}" : "此檔案有標籤 {firstTags} 與 {lastTag}"
+ "Failed to delete tag for file" : "檔案的標籤刪除失敗"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/systemtags/src/components/SystemTagPicker.vue b/apps/systemtags/src/components/SystemTagPicker.vue
index 601e48ea910..9a3b8e19b68 100644
--- a/apps/systemtags/src/components/SystemTagPicker.vue
+++ b/apps/systemtags/src/components/SystemTagPicker.vue
@@ -241,7 +241,7 @@ export default defineComponent({
}
return this.sortedTags
- .filter(tag => tag.displayName.normalize().includes(this.input.normalize()))
+ .filter(tag => tag.displayName.normalize().toLowerCase().includes(this.input.normalize().toLowerCase()))
},
hasChanges(): boolean {
diff --git a/apps/systemtags/src/components/SystemTags.vue b/apps/systemtags/src/components/SystemTags.vue
index 08dbb59d1c9..e9181cbb1ad 100644
--- a/apps/systemtags/src/components/SystemTags.vue
+++ b/apps/systemtags/src/components/SystemTags.vue
@@ -8,52 +8,56 @@
<NcLoadingIcon v-if="loadingTags"
:name="t('systemtags', 'Loading collaborative tags …')"
:size="32" />
- <template v-else>
- <NcSelectTags class="system-tags__select"
- :input-label="t('systemtags', 'Search or create collaborative tags')"
- :placeholder="t('systemtags', 'Collaborative tags …')"
- :options="sortedTags"
- :value="selectedTags"
- :create-option="createOption"
- :disabled="disabled"
- :taggable="true"
- :passthru="true"
- :fetch-tags="false"
- :loading="loading"
- @input="handleInput"
- @option:selected="handleSelect"
- @option:created="handleCreate"
- @option:deselected="handleDeselect">
- <template #no-options>
- {{ t('systemtags', 'No tags to select, type to create a new tag') }}
- </template>
- </NcSelectTags>
- </template>
+
+ <NcSelectTags v-show="!loadingTags"
+ class="system-tags__select"
+ :input-label="t('systemtags', 'Search or create collaborative tags')"
+ :placeholder="t('systemtags', 'Collaborative tags …')"
+ :options="sortedTags"
+ :value="selectedTags"
+ :create-option="createOption"
+ :disabled="disabled"
+ :taggable="true"
+ :passthru="true"
+ :fetch-tags="false"
+ :loading="loading"
+ @input="handleInput"
+ @option:selected="handleSelect"
+ @option:created="handleCreate"
+ @option:deselected="handleDeselect">
+ <template #no-options>
+ {{ t('systemtags', 'No tags to select, type to create a new tag') }}
+ </template>
+ </NcSelectTags>
</div>
</template>
<script lang="ts">
// FIXME Vue TypeScript ESLint errors
/* eslint-disable */
+import type { Node } from '@nextcloud/files'
+import type { Tag, TagWithId } from '../types.js'
+
import Vue from 'vue'
import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'
import NcSelectTags from '@nextcloud/vue/components/NcSelectTags'
-import { translate as t } from '@nextcloud/l10n'
+import { emit, subscribe } from '@nextcloud/event-bus'
+import { loadState } from '@nextcloud/initial-state'
import { showError } from '@nextcloud/dialogs'
+import { t } from '@nextcloud/l10n'
import { defaultBaseTag } from '../utils.js'
import { fetchLastUsedTagIds, fetchTags } from '../services/api.js'
+import { fetchNode } from '../../../files/src/services/WebdavClient.js'
import {
createTagForFile,
deleteTagForFile,
fetchTagsForFile,
setTagForFile,
} from '../services/files.js'
+import logger from '../logger.js'
-import { loadState } from '@nextcloud/initial-state'
-
-import type { Tag, TagWithId } from '../types.js'
export default Vue.extend({
name: 'SystemTags',
@@ -125,6 +129,10 @@ export default Vue.extend({
},
},
+ mounted() {
+ subscribe('systemtags:node:updated', this.onTagUpdated)
+ },
+
methods: {
t,
@@ -179,6 +187,8 @@ export default Vue.extend({
showError(t('systemtags', 'Failed to select tag'))
}
this.loading = false
+
+ this.updateAndDispatchNodeTagsEvent(this.fileId)
},
async handleCreate(tag: Tag) {
@@ -197,6 +207,8 @@ export default Vue.extend({
showError(t('systemtags', 'Failed to create tag'))
}
this.loading = false
+
+ this.updateAndDispatchNodeTagsEvent(this.fileId)
},
async handleDeselect(tag: TagWithId) {
@@ -207,6 +219,35 @@ export default Vue.extend({
showError(t('systemtags', 'Failed to delete tag'))
}
this.loading = false
+
+ this.updateAndDispatchNodeTagsEvent(this.fileId)
+ },
+
+ async onTagUpdated(node: Node) {
+ if (node.fileid !== this.fileId) {
+ return
+ }
+
+ this.loadingTags = true
+ try {
+ this.selectedTags = await fetchTagsForFile(this.fileId)
+ } catch (error) {
+ showError(t('systemtags', 'Failed to load selected tags'))
+ }
+
+ this.loadingTags = false
+ },
+
+ async updateAndDispatchNodeTagsEvent(fileId: number) {
+ const path = window.OCA?.Files?.Sidebar?.file || ''
+ try {
+ const node = await fetchNode(path)
+ if (node) {
+ emit('systemtags:node:updated', node)
+ }
+ } catch (error) {
+ logger.error('Failed to fetch node for system tags update', { error, fileId })
+ }
},
},
})
diff --git a/apps/systemtags/src/components/SystemTagsCreationControl.vue b/apps/systemtags/src/components/SystemTagsCreationControl.vue
index 1b69983839f..2133387ec06 100644
--- a/apps/systemtags/src/components/SystemTagsCreationControl.vue
+++ b/apps/systemtags/src/components/SystemTagsCreationControl.vue
@@ -6,17 +6,17 @@
<template>
<div id="system-tags-creation-control">
<h4 class="inlineblock">
- {{ t('settings', 'System tag management') }}
+ {{ t('systemtags', 'System tag management') }}
</h4>
<p class="settings-hint">
- {{ t('settings', 'If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files.') }}
+ {{ t('systemtags', 'If enabled, only administrators can create and edit tags. Accounts can still assign and remove them from files.') }}
</p>
<NcCheckboxRadioSwitch type="switch"
:checked.sync="systemTagsCreationRestrictedToAdmin"
@update:checked="updateSystemTagsDefault">
- {{ t('settings', 'Restrict tag creation and editing to administrators') }}
+ {{ t('systemtags', 'Restrict tag creation and editing to administrators') }}
</NcCheckboxRadioSwitch>
</div>
</template>
@@ -47,7 +47,7 @@ export default {
data() {
return {
// By default, system tags creation is not restricted to admins
- systemTagsCreationRestrictedToAdmin: loadState('settings', 'restrictSystemTagsCreationToAdmin', false),
+ systemTagsCreationRestrictedToAdmin: loadState('systemtags', 'restrictSystemTagsCreationToAdmin', false),
}
},
methods: {
@@ -61,7 +61,7 @@ export default {
})
} catch (e) {
this.handleResponse({
- errorMessage: t('settings', 'Unable to update setting'),
+ errorMessage: t('systemtags', 'Unable to update setting'),
error: e,
})
}
@@ -71,8 +71,8 @@ export default {
if (status === 'ok') {
this.systemTagsCreationRestrictedToAdmin = isRestricted
showSuccess(isRestricted
- ? t('settings', 'System tag creation is now restricted to administrators')
- : t('settings', 'System tag creation is now allowed for everybody'),
+ ? t('systemtags', 'System tag creation is now restricted to administrators')
+ : t('systemtags', 'System tag creation is now allowed for everybody'),
)
return
}
diff --git a/apps/systemtags/src/services/HotKeysService.spec.ts b/apps/systemtags/src/services/HotKeysService.spec.ts
index 2e329444f54..92d9f56f56d 100644
--- a/apps/systemtags/src/services/HotKeysService.spec.ts
+++ b/apps/systemtags/src/services/HotKeysService.spec.ts
@@ -42,15 +42,24 @@ describe('HotKeysService testing', () => {
})
it('Pressing t should open the tag management dialog', () => {
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT' }))
+ dispatchEvent({ key: 't', code: 'KeyT' })
// Modifier keys should not trigger the action
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT', ctrlKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT', altKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT', shiftKey: true }))
- window.dispatchEvent(new KeyboardEvent('keydown', { key: 't', code: 'KeyT', metaKey: true }))
+ dispatchEvent({ key: 't', code: 'KeyT', ctrlKey: true })
+ dispatchEvent({ key: 't', code: 'KeyT', altKey: true })
+ dispatchEvent({ key: 't', code: 'KeyT', shiftKey: true })
+ dispatchEvent({ key: 't', code: 'KeyT', metaKey: true })
expect(bulkSystemTagsAction.enabled).toHaveReturnedWith(true)
expect(bulkSystemTagsAction.exec).toHaveBeenCalledOnce()
})
})
+
+/**
+ * Helper to dispatch the correct event.
+ *
+ * @param init - KeyboardEvent options
+ */
+function dispatchEvent(init: KeyboardEventInit) {
+ document.body.dispatchEvent(new KeyboardEvent('keydown', { ...init, bubbles: true }))
+}
diff --git a/apps/testing/composer/composer/autoload_classmap.php b/apps/testing/composer/composer/autoload_classmap.php
index e7f1ce74466..9be96aaf617 100644
--- a/apps/testing/composer/composer/autoload_classmap.php
+++ b/apps/testing/composer/composer/autoload_classmap.php
@@ -13,6 +13,7 @@ return array(
'OCA\\Testing\\Controller\\LockingController' => $baseDir . '/../lib/Controller/LockingController.php',
'OCA\\Testing\\Controller\\RateLimitTestController' => $baseDir . '/../lib/Controller/RateLimitTestController.php',
'OCA\\Testing\\Conversion\\ConversionProvider' => $baseDir . '/../lib/Conversion/ConversionProvider.php',
+ 'OCA\\Testing\\HiddenGroupBackend' => $baseDir . '/../lib/HiddenGroupBackend.php',
'OCA\\Testing\\Listener\\GetDeclarativeSettingsValueListener' => $baseDir . '/../lib/Listener/GetDeclarativeSettingsValueListener.php',
'OCA\\Testing\\Listener\\RegisterDeclarativeSettingsListener' => $baseDir . '/../lib/Listener/RegisterDeclarativeSettingsListener.php',
'OCA\\Testing\\Listener\\SetDeclarativeSettingsValueListener' => $baseDir . '/../lib/Listener/SetDeclarativeSettingsValueListener.php',
diff --git a/apps/testing/composer/composer/autoload_static.php b/apps/testing/composer/composer/autoload_static.php
index f87a822aaf2..bd557c37f6b 100644
--- a/apps/testing/composer/composer/autoload_static.php
+++ b/apps/testing/composer/composer/autoload_static.php
@@ -28,6 +28,7 @@ class ComposerStaticInitTesting
'OCA\\Testing\\Controller\\LockingController' => __DIR__ . '/..' . '/../lib/Controller/LockingController.php',
'OCA\\Testing\\Controller\\RateLimitTestController' => __DIR__ . '/..' . '/../lib/Controller/RateLimitTestController.php',
'OCA\\Testing\\Conversion\\ConversionProvider' => __DIR__ . '/..' . '/../lib/Conversion/ConversionProvider.php',
+ 'OCA\\Testing\\HiddenGroupBackend' => __DIR__ . '/..' . '/../lib/HiddenGroupBackend.php',
'OCA\\Testing\\Listener\\GetDeclarativeSettingsValueListener' => __DIR__ . '/..' . '/../lib/Listener/GetDeclarativeSettingsValueListener.php',
'OCA\\Testing\\Listener\\RegisterDeclarativeSettingsListener' => __DIR__ . '/..' . '/../lib/Listener/RegisterDeclarativeSettingsListener.php',
'OCA\\Testing\\Listener\\SetDeclarativeSettingsValueListener' => __DIR__ . '/..' . '/../lib/Listener/SetDeclarativeSettingsValueListener.php',
diff --git a/apps/testing/lib/AppInfo/Application.php b/apps/testing/lib/AppInfo/Application.php
index bbd9e288cc1..0b86c2be78e 100644
--- a/apps/testing/lib/AppInfo/Application.php
+++ b/apps/testing/lib/AppInfo/Application.php
@@ -8,6 +8,7 @@ namespace OCA\Testing\AppInfo;
use OCA\Testing\AlternativeHomeUserBackend;
use OCA\Testing\Conversion\ConversionProvider;
+use OCA\Testing\HiddenGroupBackend;
use OCA\Testing\Listener\GetDeclarativeSettingsValueListener;
use OCA\Testing\Listener\RegisterDeclarativeSettingsListener;
use OCA\Testing\Listener\SetDeclarativeSettingsValueListener;
@@ -26,6 +27,7 @@ use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
+use OCP\IGroupManager;
use OCP\Settings\Events\DeclarativeSettingsGetValueEvent;
use OCP\Settings\Events\DeclarativeSettingsRegisterFormEvent;
use OCP\Settings\Events\DeclarativeSettingsSetValueEvent;
@@ -68,5 +70,8 @@ class Application extends App implements IBootstrap {
$userManager->clearBackends();
$userManager->registerBackend($context->getAppContainer()->get(AlternativeHomeUserBackend::class));
}
+
+ $groupManager = $server->get(IGroupManager::class);
+ $groupManager->addBackend($server->get(HiddenGroupBackend::class));
}
}
diff --git a/apps/testing/lib/HiddenGroupBackend.php b/apps/testing/lib/HiddenGroupBackend.php
new file mode 100644
index 00000000000..4f7004aae0a
--- /dev/null
+++ b/apps/testing/lib/HiddenGroupBackend.php
@@ -0,0 +1,47 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Testing;
+
+use OCP\Group\Backend\ABackend;
+use OCP\Group\Backend\IHideFromCollaborationBackend;
+
+class HiddenGroupBackend extends ABackend implements IHideFromCollaborationBackend {
+ private string $groupName;
+
+ public function __construct(
+ string $groupName = 'hidden_group',
+ ) {
+ $this->groupName = $groupName;
+ }
+
+ public function inGroup($uid, $gid): bool {
+ return false;
+ }
+
+ public function getUserGroups($uid): array {
+ return [];
+ }
+
+ public function getGroups($search = '', $limit = -1, $offset = 0): array {
+ return $offset === 0 ? [$this->groupName] : [];
+ }
+
+ public function groupExists($gid): bool {
+ return $gid === $this->groupName;
+ }
+
+ public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0): array {
+ return [];
+ }
+
+ public function hideGroup(string $groupId): bool {
+ return true;
+ }
+}
diff --git a/apps/testing/lib/Settings/DeclarativeSettingsForm.php b/apps/testing/lib/Settings/DeclarativeSettingsForm.php
index dd83e9c9e89..55e44cbcbea 100644
--- a/apps/testing/lib/Settings/DeclarativeSettingsForm.php
+++ b/apps/testing/lib/Settings/DeclarativeSettingsForm.php
@@ -169,6 +169,36 @@ class DeclarativeSettingsForm implements IDeclarativeSettingsForm {
],
],
],
+ [
+ 'id' => 'test_sensitive_field',
+ 'title' => 'Sensitive text field',
+ 'description' => 'Set some secure value setting that is stored encrypted',
+ 'type' => DeclarativeSettingsTypes::TEXT,
+ 'label' => 'Sensitive field',
+ 'placeholder' => 'Set secure value',
+ 'default' => '',
+ 'sensitive' => true, // only for TEXT, PASSWORD types
+ ],
+ [
+ 'id' => 'test_sensitive_field_2',
+ 'title' => 'Sensitive password field',
+ 'description' => 'Set some password setting that is stored encrypted',
+ 'type' => DeclarativeSettingsTypes::PASSWORD,
+ 'label' => 'Sensitive field',
+ 'placeholder' => 'Set secure value',
+ 'default' => '',
+ 'sensitive' => true, // only for TEXT, PASSWORD types
+ ],
+ [
+ 'id' => 'test_non_sensitive_field',
+ 'title' => 'Password field',
+ 'description' => 'Set some password setting',
+ 'type' => DeclarativeSettingsTypes::PASSWORD,
+ 'label' => 'Password field',
+ 'placeholder' => 'Set secure value',
+ 'default' => '',
+ 'sensitive' => false,
+ ],
],
];
}
diff --git a/apps/theming/l10n/af.js b/apps/theming/l10n/af.js
deleted file mode 100644
index 355e5168651..00000000000
--- a/apps/theming/l10n/af.js
+++ /dev/null
@@ -1,48 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Laai voorskou…",
- "Admin" : "Admin",
- "Saved" : "Bewaar",
- "a safe home for all your data" : "’n veilige tuiste vir al u data",
- "Name cannot be empty" : "Naam kan nie leeg wees nie",
- "The given name is too long" : "Die gegewe naam is te lank",
- "The given web address is too long" : "Die gegewe webadres is te lank",
- "The given legal notice address is too long" : "Die gegewe regskennisgewingsadres is te lank",
- "The given privacy policy address is too long" : "Die gegewe privaatheidsbeleidadres is te lank",
- "The given slogan is too long" : "Gegewe slagspreuk is te lank",
- "The given color is invalid" : "Die gegewe kleur is ongeldig",
- "The file was uploaded" : "Die lêer is opgelaai",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die opgelaaide lêer oorskry die upload_max_filesize riglyn in php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die opgelaaide lêer oorskry die MAX_FILE_SIZE riglyn wat in die HTML vorm gespesifiseer is",
- "The file was only partially uploaded" : "Die lêer is slegs gedeeltelik op gelaai",
- "No file was uploaded" : "Geen lêer is opgelaai",
- "Missing a temporary folder" : "Ontbrekende tydelike gids",
- "A PHP extension stopped the file upload" : "’n PHP-uitbreiding het die oplaai gestaak",
- "No file uploaded" : "Geen lêer opgelaai",
- "Dark theme" : "Donker Tema",
- "Dyslexia font" : "Disleksie-font",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic is ’n gratis lettertipe/font wat ontwerp is om sommige van die algemene leesfoute wat deur disleksie veroorsaak word, te versag.",
- "High contrast mode" : "Hoëkontrasmodus",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "’n Hoëkontrasmodus om u navigasie te vergemaklik. Visuele kwaliteit sal verminder word, maar die duidelikheid sal verbeter.",
- "Legal notice" : "Regskennisgewing",
- "Privacy policy" : "Privaatheidsbeleid",
- "Adjust the Nextcloud theme" : "Pas die Nextcloud-tema aan",
- "Keyboard shortcuts" : "Sneltoetse",
- "Background" : "Agtergrond",
- "Open documentation" : "Open dokumentasie",
- "Name" : "Naam",
- "Reset to default" : "Herstel na verstek",
- "Web link" : "Webskakel",
- "Slogan" : "Slagspreuk",
- "Color" : "Kleur",
- "Logo" : "Logo",
- "Upload new logo" : "Laai nuwe logo op",
- "Login image" : "Aantekenbeeld",
- "Upload new login background" : "Laai nuwe aantekenagtergrond op",
- "Remove background image" : "Verwyder agtergrondbeeld",
- "Advanced options" : "Gevorderde opsies",
- "Legal notice link" : "Regskennisgewingskakel",
- "Privacy policy link" : "Privaatheidsbeleidskakel"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/af.json b/apps/theming/l10n/af.json
deleted file mode 100644
index 5d4563d2968..00000000000
--- a/apps/theming/l10n/af.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Laai voorskou…",
- "Admin" : "Admin",
- "Saved" : "Bewaar",
- "a safe home for all your data" : "’n veilige tuiste vir al u data",
- "Name cannot be empty" : "Naam kan nie leeg wees nie",
- "The given name is too long" : "Die gegewe naam is te lank",
- "The given web address is too long" : "Die gegewe webadres is te lank",
- "The given legal notice address is too long" : "Die gegewe regskennisgewingsadres is te lank",
- "The given privacy policy address is too long" : "Die gegewe privaatheidsbeleidadres is te lank",
- "The given slogan is too long" : "Gegewe slagspreuk is te lank",
- "The given color is invalid" : "Die gegewe kleur is ongeldig",
- "The file was uploaded" : "Die lêer is opgelaai",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die opgelaaide lêer oorskry die upload_max_filesize riglyn in php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die opgelaaide lêer oorskry die MAX_FILE_SIZE riglyn wat in die HTML vorm gespesifiseer is",
- "The file was only partially uploaded" : "Die lêer is slegs gedeeltelik op gelaai",
- "No file was uploaded" : "Geen lêer is opgelaai",
- "Missing a temporary folder" : "Ontbrekende tydelike gids",
- "A PHP extension stopped the file upload" : "’n PHP-uitbreiding het die oplaai gestaak",
- "No file uploaded" : "Geen lêer opgelaai",
- "Dark theme" : "Donker Tema",
- "Dyslexia font" : "Disleksie-font",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic is ’n gratis lettertipe/font wat ontwerp is om sommige van die algemene leesfoute wat deur disleksie veroorsaak word, te versag.",
- "High contrast mode" : "Hoëkontrasmodus",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "’n Hoëkontrasmodus om u navigasie te vergemaklik. Visuele kwaliteit sal verminder word, maar die duidelikheid sal verbeter.",
- "Legal notice" : "Regskennisgewing",
- "Privacy policy" : "Privaatheidsbeleid",
- "Adjust the Nextcloud theme" : "Pas die Nextcloud-tema aan",
- "Keyboard shortcuts" : "Sneltoetse",
- "Background" : "Agtergrond",
- "Open documentation" : "Open dokumentasie",
- "Name" : "Naam",
- "Reset to default" : "Herstel na verstek",
- "Web link" : "Webskakel",
- "Slogan" : "Slagspreuk",
- "Color" : "Kleur",
- "Logo" : "Logo",
- "Upload new logo" : "Laai nuwe logo op",
- "Login image" : "Aantekenbeeld",
- "Upload new login background" : "Laai nuwe aantekenagtergrond op",
- "Remove background image" : "Verwyder agtergrondbeeld",
- "Advanced options" : "Gevorderde opsies",
- "Legal notice link" : "Regskennisgewingskakel",
- "Privacy policy link" : "Privaatheidsbeleidskakel"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/ar.js b/apps/theming/l10n/ar.js
index 1f21666c495..5448c47f589 100644
--- a/apps/theming/l10n/ar.js
+++ b/apps/theming/l10n/ar.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "اعادة تعيين الافتراضيات",
"Upload" : "تحميل",
"Remove background image" : "إزالة صورة الخلفية",
- "Color" : "لون",
"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." : "الوصول الشامل مهم جدا بالنسبة لنا. نحن نتبع معايير ويب صارمة ونتأكد من أن كل شيء يمكن إستعماله حتى دون الحاجة للفأرة أو إلى أي برامج مساعدة مثل برامج قراءة الشاشة. هدفنا أن نكون متوافقين مع {guidelines} توجيهات تسهيل إستعمال محتوى الويب {linkend} 2.1 بمستوى AA، ومتوافقين مع مظهر تباين الألوان العالي بمستوى يصل حتى إلى AAA.",
- ". Unable to apply the setting." : ". غير قادر على تطبيق الإعداد.",
- "Background" : "خلفية الشاشة",
- "Set a custom background" : "تعيين خلفية مخصصة",
- "Change color" : "غيّر اللون",
- "No background" : "لا خلفية"
+ ". Unable to apply the setting." : ". غير قادر على تطبيق الإعداد."
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/theming/l10n/ar.json b/apps/theming/l10n/ar.json
index 2e1d96c91ee..a1c36610926 100644
--- a/apps/theming/l10n/ar.json
+++ b/apps/theming/l10n/ar.json
@@ -117,12 +117,7 @@
"Reset to default" : "اعادة تعيين الافتراضيات",
"Upload" : "تحميل",
"Remove background image" : "إزالة صورة الخلفية",
- "Color" : "لون",
"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." : "الوصول الشامل مهم جدا بالنسبة لنا. نحن نتبع معايير ويب صارمة ونتأكد من أن كل شيء يمكن إستعماله حتى دون الحاجة للفأرة أو إلى أي برامج مساعدة مثل برامج قراءة الشاشة. هدفنا أن نكون متوافقين مع {guidelines} توجيهات تسهيل إستعمال محتوى الويب {linkend} 2.1 بمستوى AA، ومتوافقين مع مظهر تباين الألوان العالي بمستوى يصل حتى إلى AAA.",
- ". Unable to apply the setting." : ". غير قادر على تطبيق الإعداد.",
- "Background" : "خلفية الشاشة",
- "Set a custom background" : "تعيين خلفية مخصصة",
- "Change color" : "غيّر اللون",
- "No background" : "لا خلفية"
+ ". Unable to apply the setting." : ". غير قادر على تطبيق الإعداد."
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/ast.js b/apps/theming/l10n/ast.js
index a090f59b766..34c922f78c1 100644
--- a/apps/theming/l10n/ast.js
+++ b/apps/theming/l10n/ast.js
@@ -105,11 +105,6 @@ OC.L10N.register(
"Reset to default" : "Reafitar los valores",
"Upload" : "Xunir",
"Remove background image" : "Quitar la imaxe del fondu",
- "Color" : "Color",
- "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." : "L'accesu universal ye mui importante pa nós. Siguimos los estándares web y comprobamos que too se pueda usar tamién ensin el mur y con programes d'asistencia, como los llectores de pantalla. Queremos cumplir les {guidelines}Pautes d'accesibilidá del conteníu web{linkend} 2.1 nel nivel AA y col estilu de contraste altu nel nivel AAA.",
- "Background" : "Fondu",
- "Set a custom background" : "Afitar un fondu personalizáu",
- "Change color" : "Camudar el color",
- "No background" : "Nun hai nengún fondu"
+ "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." : "L'accesu universal ye mui importante pa nós. Siguimos los estándares web y comprobamos que too se pueda usar tamién ensin el mur y con programes d'asistencia, como los llectores de pantalla. Queremos cumplir les {guidelines}Pautes d'accesibilidá del conteníu web{linkend} 2.1 nel nivel AA y col estilu de contraste altu nel nivel AAA."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/ast.json b/apps/theming/l10n/ast.json
index f07703650c5..501a08173a6 100644
--- a/apps/theming/l10n/ast.json
+++ b/apps/theming/l10n/ast.json
@@ -103,11 +103,6 @@
"Reset to default" : "Reafitar los valores",
"Upload" : "Xunir",
"Remove background image" : "Quitar la imaxe del fondu",
- "Color" : "Color",
- "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." : "L'accesu universal ye mui importante pa nós. Siguimos los estándares web y comprobamos que too se pueda usar tamién ensin el mur y con programes d'asistencia, como los llectores de pantalla. Queremos cumplir les {guidelines}Pautes d'accesibilidá del conteníu web{linkend} 2.1 nel nivel AA y col estilu de contraste altu nel nivel AAA.",
- "Background" : "Fondu",
- "Set a custom background" : "Afitar un fondu personalizáu",
- "Change color" : "Camudar el color",
- "No background" : "Nun hai nengún fondu"
+ "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." : "L'accesu universal ye mui importante pa nós. Siguimos los estándares web y comprobamos que too se pueda usar tamién ensin el mur y con programes d'asistencia, como los llectores de pantalla. Queremos cumplir les {guidelines}Pautes d'accesibilidá del conteníu web{linkend} 2.1 nel nivel AA y col estilu de contraste altu nel nivel AAA."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/bg.js b/apps/theming/l10n/bg.js
index 04d79ee069c..abf27362f89 100644
--- a/apps/theming/l10n/bg.js
+++ b/apps/theming/l10n/bg.js
@@ -82,11 +82,6 @@ OC.L10N.register(
"Reset to default" : "Настройки по подразбиране",
"Upload" : "Качване",
"Remove background image" : "Премахни фоновото изображение",
- "Color" : "Цвят",
- "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." : "Универсалният достъп е много важен за нас. Следваме уеб стандартите и проверяваме, за да направим всичко използваемо и без мишка, и помощен софтуер, като екранни четци. Ние се стремим да бъдем съобразени с {guidelines}Насоки за достъпност на уеб съдържанието {linkend} 2.1 на ниво АА, с темата за висок контраст дори на ниво AAA.",
- "Background" : "Фон",
- "Set a custom background" : "Задаване на персонализиран фон",
- "Change color" : "Промяна на цвета",
- "No background" : "Без фон"
+ "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." : "Универсалният достъп е много важен за нас. Следваме уеб стандартите и проверяваме, за да направим всичко използваемо и без мишка, и помощен софтуер, като екранни четци. Ние се стремим да бъдем съобразени с {guidelines}Насоки за достъпност на уеб съдържанието {linkend} 2.1 на ниво АА, с темата за висок контраст дори на ниво AAA."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/bg.json b/apps/theming/l10n/bg.json
index 02bcf8a24cb..d9b981ce49f 100644
--- a/apps/theming/l10n/bg.json
+++ b/apps/theming/l10n/bg.json
@@ -80,11 +80,6 @@
"Reset to default" : "Настройки по подразбиране",
"Upload" : "Качване",
"Remove background image" : "Премахни фоновото изображение",
- "Color" : "Цвят",
- "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." : "Универсалният достъп е много важен за нас. Следваме уеб стандартите и проверяваме, за да направим всичко използваемо и без мишка, и помощен софтуер, като екранни четци. Ние се стремим да бъдем съобразени с {guidelines}Насоки за достъпност на уеб съдържанието {linkend} 2.1 на ниво АА, с темата за висок контраст дори на ниво AAA.",
- "Background" : "Фон",
- "Set a custom background" : "Задаване на персонализиран фон",
- "Change color" : "Промяна на цвета",
- "No background" : "Без фон"
+ "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." : "Универсалният достъп е много важен за нас. Следваме уеб стандартите и проверяваме, за да направим всичко използваемо и без мишка, и помощен софтуер, като екранни четци. Ние се стремим да бъдем съобразени с {guidelines}Насоки за достъпност на уеб съдържанието {linkend} 2.1 на ниво АА, с темата за висок контраст дори на ниво AAA."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/ca.js b/apps/theming/l10n/ca.js
index 26e83ca4222..208be5cd13b 100644
--- a/apps/theming/l10n/ca.js
+++ b/apps/theming/l10n/ca.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Reinicialitza els valors per defecte",
"Upload" : "Puja",
"Remove background image" : "Suprimeix la imatge de fons",
- "Color" : "Color",
"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." : "L'accés universal és molt important per a nosaltres. Seguim els estàndards web i comprovem que tot es pugui utilitzar també sense el ratolí i amb programes d'assistència, com ara els lectors de pantalla. Volem complir les {guidelines}Pautes d'accessibilitat del contingut web{linkend} 2.1 a nivell AA i amb el tema de contrast alt fins i tot a nivell AAA.",
- ". Unable to apply the setting." : ". No es pot aplicar el paràmetre.",
- "Background" : "Fons",
- "Set a custom background" : "Definiu un fons personalitzat",
- "Change color" : "Canvia el color",
- "No background" : "Sense fons"
+ ". Unable to apply the setting." : ". No es pot aplicar el paràmetre."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/ca.json b/apps/theming/l10n/ca.json
index c3b0db7d2fe..795adcd8e68 100644
--- a/apps/theming/l10n/ca.json
+++ b/apps/theming/l10n/ca.json
@@ -117,12 +117,7 @@
"Reset to default" : "Reinicialitza els valors per defecte",
"Upload" : "Puja",
"Remove background image" : "Suprimeix la imatge de fons",
- "Color" : "Color",
"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." : "L'accés universal és molt important per a nosaltres. Seguim els estàndards web i comprovem que tot es pugui utilitzar també sense el ratolí i amb programes d'assistència, com ara els lectors de pantalla. Volem complir les {guidelines}Pautes d'accessibilitat del contingut web{linkend} 2.1 a nivell AA i amb el tema de contrast alt fins i tot a nivell AAA.",
- ". Unable to apply the setting." : ". No es pot aplicar el paràmetre.",
- "Background" : "Fons",
- "Set a custom background" : "Definiu un fons personalitzat",
- "Change color" : "Canvia el color",
- "No background" : "Sense fons"
+ ". Unable to apply the setting." : ". No es pot aplicar el paràmetre."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/cs.js b/apps/theming/l10n/cs.js
index d15806a56f5..906dad2f4fa 100644
--- a/apps/theming/l10n/cs.js
+++ b/apps/theming/l10n/cs.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Vrátit zpět na výchozí hodnoty",
"Upload" : "Nahrát",
"Remove background image" : "Odebrat obrázek z pozadí",
- "Color" : "Barva",
"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." : "Přístupnost pro všechny je pro nás velmi důležitá. Splňujeme webové standardy a zajišťujeme, aby všechno bylo použitelné i bez myši a s asistenčním software, jako například čtečkami obrazovky. Máme za cíl být v souladu s doporučeními {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 na úrovni AA, při použití motivu vzhledu s vysokým kontrastem dokonce na úrovni AAA.",
- ". Unable to apply the setting." : ". Nastavení nebylo možné uplatnit.",
- "Background" : "Pozadí",
- "Set a custom background" : "Nastavit uživatelsky určené pozadí",
- "Change color" : "Změnit barvu",
- "No background" : "Žádné pozadí"
+ ". Unable to apply the setting." : ". Nastavení nebylo možné uplatnit."
},
"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/theming/l10n/cs.json b/apps/theming/l10n/cs.json
index 50621a72474..5161f215194 100644
--- a/apps/theming/l10n/cs.json
+++ b/apps/theming/l10n/cs.json
@@ -117,12 +117,7 @@
"Reset to default" : "Vrátit zpět na výchozí hodnoty",
"Upload" : "Nahrát",
"Remove background image" : "Odebrat obrázek z pozadí",
- "Color" : "Barva",
"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." : "Přístupnost pro všechny je pro nás velmi důležitá. Splňujeme webové standardy a zajišťujeme, aby všechno bylo použitelné i bez myši a s asistenčním software, jako například čtečkami obrazovky. Máme za cíl být v souladu s doporučeními {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 na úrovni AA, při použití motivu vzhledu s vysokým kontrastem dokonce na úrovni AAA.",
- ". Unable to apply the setting." : ". Nastavení nebylo možné uplatnit.",
- "Background" : "Pozadí",
- "Set a custom background" : "Nastavit uživatelsky určené pozadí",
- "Change color" : "Změnit barvu",
- "No background" : "Žádné pozadí"
+ ". Unable to apply the setting." : ". Nastavení nebylo možné uplatnit."
},"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/theming/l10n/da.js b/apps/theming/l10n/da.js
index 1bb6012dfd2..54312ac2fc7 100644
--- a/apps/theming/l10n/da.js
+++ b/apps/theming/l10n/da.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Nulstil",
"Upload" : "Upload",
"Remove background image" : "Fjern baggrundsbillede",
- "Color" : "Farve",
"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." : "Universel adgang er meget vigtig for os. Vi følger webstandarder og sikrer os at gøre alt tilgængeligt også uden mus, eller med hjælpesoftware såsom skærmlæsere. Vi stræber etfer at følge {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 og AA niveau, endda med højt kontrast tema på AAA niveau.",
- ". Unable to apply the setting." : ". Indstillingen kunne ikke anvendes.",
- "Background" : "Baggrund",
- "Set a custom background" : "Angiv en brugerdefineret baggrund",
- "Change color" : "Skift farve",
- "No background" : "Ingen baggrund"
+ ". Unable to apply the setting." : ". Indstillingen kunne ikke anvendes."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/da.json b/apps/theming/l10n/da.json
index eb2b2c71a29..c38af4f22c5 100644
--- a/apps/theming/l10n/da.json
+++ b/apps/theming/l10n/da.json
@@ -117,12 +117,7 @@
"Reset to default" : "Nulstil",
"Upload" : "Upload",
"Remove background image" : "Fjern baggrundsbillede",
- "Color" : "Farve",
"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." : "Universel adgang er meget vigtig for os. Vi følger webstandarder og sikrer os at gøre alt tilgængeligt også uden mus, eller med hjælpesoftware såsom skærmlæsere. Vi stræber etfer at følge {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 og AA niveau, endda med højt kontrast tema på AAA niveau.",
- ". Unable to apply the setting." : ". Indstillingen kunne ikke anvendes.",
- "Background" : "Baggrund",
- "Set a custom background" : "Angiv en brugerdefineret baggrund",
- "Change color" : "Skift farve",
- "No background" : "Ingen baggrund"
+ ". Unable to apply the setting." : ". Indstillingen kunne ikke anvendes."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/de.js b/apps/theming/l10n/de.js
index 702a47c76ec..93ca61f7df5 100644
--- a/apps/theming/l10n/de.js
+++ b/apps/theming/l10n/de.js
@@ -82,7 +82,7 @@ OC.L10N.register(
"Misc accessibility options" : "Verschiedene Barrierefreiheitsoptionen",
"Enable blur background filter (may increase GPU load)" : "Filter für unscharfes Hintergrundbild aktivieren (kann die GPU-Auslastung erhöhen)",
"Customization has been disabled by your administrator" : "Diese Anpassungsmöglichkeit wurde von deiner Administration deaktiviert",
- "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Legen eine Primärfarbe fest, um wichtige Elemente hervorzuheben. Die für Elemente wie Primärschaltflächen verwendete Farbe kann etwas abweichen, da sie angepasst wird, um die Zugänglichkeitsanforderungen zu erfüllen.",
+ "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Lege eine Primärfarbe fest, um wichtige Elemente hervorzuheben. Die für Elemente wie Primärschaltflächen verwendete Farbe kann etwas abweichen, da sie angepasst wird, um die Zugänglichkeitsanforderungen zu erfüllen.",
"Background and color" : "Hintergrund und Farbe",
"The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "Als Hintergrund kann ein Bild aus dem Standardsatz, ein benutzerdefiniertes hochgeladenes Bild oder eine einfache Farbe ausgewählt werden.",
"Keyboard shortcuts" : "Tastaturkürzel",
@@ -95,16 +95,16 @@ OC.L10N.register(
"Select background" : "Hintergrund wählen",
"No background has been selected" : "Es wurde kein Hintergrund ausgewählt",
"Custom background" : "Benutzerdefinierter Hintergrund",
- "Plain background" : "Einfacher Hintergrund",
+ "Plain background" : "Einfarbiger Hintergrund",
"Default background" : "Standardhintergrund",
"Theme selection is enforced" : "Designauswahl wird erzwungen",
"Could not set the app order" : "Die App-Reihenfolge konnte nicht festgelegt werden.",
- "Could not reset the app order" : "Standard App-Reihenfolge konnte nicht zurückgesetzt werden.",
+ "Could not reset the app order" : "Standard-App-Reihenfolge konnte nicht zurückgesetzt werden",
"Navigation bar settings" : "Einstellungen der Navigationsleiste",
"You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Du kannst die App-Reihenfolge für die Navigationsleiste konfigurieren. Der erste Eintrag ist die Standard-App, die nach der Anmeldung oder beim Klicken auf das Logo geöffnet wird.",
"The default app can not be changed because it was configured by the administrator." : "Die Standard-App kann nicht geändert werden, da sie von der Administration konfiguriert wurde.",
"The app order was changed, to see it in action you have to reload the page." : "Die App-Reihenfolge wurde geändert. Um die Änderungen zu sehen, musst du die Seite neu laden.",
- "Reset default app order" : "Standard App-Reihenfolge zurücksetzen",
+ "Reset default app order" : "Standard-App-Reihenfolge zurücksetzen",
"Could not set primary color" : "Primärfarbe konnte nicht festgelegt werden",
"Reset primary color" : "Primärfarbe zurücksetzen",
"Could not set global default apps" : "Globale Standard-Apps konnten nicht festgelegt werden.",
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Auf Standard zurücksetzen ",
"Upload" : "Hochladen",
"Remove background image" : "Hintergrundbild entfernen",
- "Color" : "Farbe",
"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." : "Der barrierefreie Zugang ist für uns sehr wichtig. Wir halten uns an Webstandards und prüfen, ob alles auch ohne Maus und unterstützende Software wie Screenreader nutzbar ist. Wir streben die Einhaltung der {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 auf AA-Niveau an, mit dem kontrastreichen Design sogar auf AAA-Niveau.",
- ". Unable to apply the setting." : ". Fehler beim Anwenden der Einstellung.",
- "Background" : "Hintergrund",
- "Set a custom background" : "Einen benutzerdefinierten Hintergrund setzen",
- "Change color" : "Farbe ändern",
- "No background" : "Kein Hintergrund"
+ ". Unable to apply the setting." : ". Fehler beim Anwenden der Einstellung."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/de.json b/apps/theming/l10n/de.json
index 97051ce93c9..db84ce8fca5 100644
--- a/apps/theming/l10n/de.json
+++ b/apps/theming/l10n/de.json
@@ -80,7 +80,7 @@
"Misc accessibility options" : "Verschiedene Barrierefreiheitsoptionen",
"Enable blur background filter (may increase GPU load)" : "Filter für unscharfes Hintergrundbild aktivieren (kann die GPU-Auslastung erhöhen)",
"Customization has been disabled by your administrator" : "Diese Anpassungsmöglichkeit wurde von deiner Administration deaktiviert",
- "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Legen eine Primärfarbe fest, um wichtige Elemente hervorzuheben. Die für Elemente wie Primärschaltflächen verwendete Farbe kann etwas abweichen, da sie angepasst wird, um die Zugänglichkeitsanforderungen zu erfüllen.",
+ "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Lege eine Primärfarbe fest, um wichtige Elemente hervorzuheben. Die für Elemente wie Primärschaltflächen verwendete Farbe kann etwas abweichen, da sie angepasst wird, um die Zugänglichkeitsanforderungen zu erfüllen.",
"Background and color" : "Hintergrund und Farbe",
"The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "Als Hintergrund kann ein Bild aus dem Standardsatz, ein benutzerdefiniertes hochgeladenes Bild oder eine einfache Farbe ausgewählt werden.",
"Keyboard shortcuts" : "Tastaturkürzel",
@@ -93,16 +93,16 @@
"Select background" : "Hintergrund wählen",
"No background has been selected" : "Es wurde kein Hintergrund ausgewählt",
"Custom background" : "Benutzerdefinierter Hintergrund",
- "Plain background" : "Einfacher Hintergrund",
+ "Plain background" : "Einfarbiger Hintergrund",
"Default background" : "Standardhintergrund",
"Theme selection is enforced" : "Designauswahl wird erzwungen",
"Could not set the app order" : "Die App-Reihenfolge konnte nicht festgelegt werden.",
- "Could not reset the app order" : "Standard App-Reihenfolge konnte nicht zurückgesetzt werden.",
+ "Could not reset the app order" : "Standard-App-Reihenfolge konnte nicht zurückgesetzt werden",
"Navigation bar settings" : "Einstellungen der Navigationsleiste",
"You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Du kannst die App-Reihenfolge für die Navigationsleiste konfigurieren. Der erste Eintrag ist die Standard-App, die nach der Anmeldung oder beim Klicken auf das Logo geöffnet wird.",
"The default app can not be changed because it was configured by the administrator." : "Die Standard-App kann nicht geändert werden, da sie von der Administration konfiguriert wurde.",
"The app order was changed, to see it in action you have to reload the page." : "Die App-Reihenfolge wurde geändert. Um die Änderungen zu sehen, musst du die Seite neu laden.",
- "Reset default app order" : "Standard App-Reihenfolge zurücksetzen",
+ "Reset default app order" : "Standard-App-Reihenfolge zurücksetzen",
"Could not set primary color" : "Primärfarbe konnte nicht festgelegt werden",
"Reset primary color" : "Primärfarbe zurücksetzen",
"Could not set global default apps" : "Globale Standard-Apps konnten nicht festgelegt werden.",
@@ -117,12 +117,7 @@
"Reset to default" : "Auf Standard zurücksetzen ",
"Upload" : "Hochladen",
"Remove background image" : "Hintergrundbild entfernen",
- "Color" : "Farbe",
"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." : "Der barrierefreie Zugang ist für uns sehr wichtig. Wir halten uns an Webstandards und prüfen, ob alles auch ohne Maus und unterstützende Software wie Screenreader nutzbar ist. Wir streben die Einhaltung der {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 auf AA-Niveau an, mit dem kontrastreichen Design sogar auf AAA-Niveau.",
- ". Unable to apply the setting." : ". Fehler beim Anwenden der Einstellung.",
- "Background" : "Hintergrund",
- "Set a custom background" : "Einen benutzerdefinierten Hintergrund setzen",
- "Change color" : "Farbe ändern",
- "No background" : "Kein Hintergrund"
+ ". Unable to apply the setting." : ". Fehler beim Anwenden der Einstellung."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/de_DE.js b/apps/theming/l10n/de_DE.js
index c122e73ec49..4c4258f54bb 100644
--- a/apps/theming/l10n/de_DE.js
+++ b/apps/theming/l10n/de_DE.js
@@ -50,7 +50,7 @@ OC.L10N.register(
"The default light appearance." : "Das helle Standarddesign.",
"Legal notice" : "Impressum",
"Privacy policy" : "Datenschutzerklärung",
- "Adjust the Nextcloud theme" : "Passe das Design von Nextcloud an",
+ "Adjust the Nextcloud theme" : "Passen Sie das Design von Nextcloud an",
"Name" : "Name",
"Web link" : "Internet-Link",
"a safe home for all your data" : "Ein sicheres Zuhause für Ihre Daten",
@@ -95,16 +95,16 @@ OC.L10N.register(
"Select background" : "Hintergrund wählen",
"No background has been selected" : "Es wurde kein Hintergrund ausgewählt",
"Custom background" : "Benutzerdefinierter Hintergrund",
- "Plain background" : "Einfacher Hintergrund",
+ "Plain background" : "Einfarbiger Hintergrund",
"Default background" : "Standardhintergrund",
"Theme selection is enforced" : "Designauswahl wird erzwungen",
"Could not set the app order" : "Die App-Reihenfolge konnte nicht festgelegt werden",
- "Could not reset the app order" : "Standard App-Reihenfolge konnte nicht zurückgesetzt werden",
+ "Could not reset the app order" : "Standard-App-Reihenfolge konnte nicht zurückgesetzt werden",
"Navigation bar settings" : "Einstellungen der Navigationsleiste",
"You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Sie können die App-Reihenfolge für die Navigationsleiste konfigurieren. Der erste Eintrag ist die Standard-App, die nach der Anmeldung oder beim Klicken auf das Logo geöffnet wird.",
"The default app can not be changed because it was configured by the administrator." : "Die Standard-App kann nicht geändert werden, da sie von der Administration konfiguriert wurde.",
"The app order was changed, to see it in action you have to reload the page." : "Die App-Reihenfolge wurde geändert. Um die Änderungen zu sehen, müssen Sie die Seite neu laden.",
- "Reset default app order" : "Standard App-Reihenfolge zurücksetzen",
+ "Reset default app order" : "Standard-App-Reihenfolge zurücksetzen",
"Could not set primary color" : "Primärfarbe konnte nicht festgelegt werden",
"Reset primary color" : "Primärfarbe zurücksetzen",
"Could not set global default apps" : "Globale Standard-Apps konnten nicht festgelegt werden",
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Auf Standard zurücksetzen ",
"Upload" : "Hochladen",
"Remove background image" : "Hintergrundbild entfernen",
- "Color" : "Farbe",
"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." : "Der barrierefreie Zugang ist für uns sehr wichtig. Wir halten uns an Webstandards und prüfen, ob alles auch ohne Maus und unterstützende Software wie Screenreader nutzbar ist. Wir streben die Einhaltung der {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 auf AA-Niveau an, mit dem kontrastreichen Design sogar auf AAA-Niveau.",
- ". Unable to apply the setting." : ". Fehler beim Anwenden der Einstellung.",
- "Background" : "Hintergrund",
- "Set a custom background" : "Einen benutzerdefinierten Hintergrund setzen",
- "Change color" : "Farbe ändern",
- "No background" : "Kein Hintergrund"
+ ". Unable to apply the setting." : ". Fehler beim Anwenden der Einstellung."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/de_DE.json b/apps/theming/l10n/de_DE.json
index d62d9039ab4..252db90954e 100644
--- a/apps/theming/l10n/de_DE.json
+++ b/apps/theming/l10n/de_DE.json
@@ -48,7 +48,7 @@
"The default light appearance." : "Das helle Standarddesign.",
"Legal notice" : "Impressum",
"Privacy policy" : "Datenschutzerklärung",
- "Adjust the Nextcloud theme" : "Passe das Design von Nextcloud an",
+ "Adjust the Nextcloud theme" : "Passen Sie das Design von Nextcloud an",
"Name" : "Name",
"Web link" : "Internet-Link",
"a safe home for all your data" : "Ein sicheres Zuhause für Ihre Daten",
@@ -93,16 +93,16 @@
"Select background" : "Hintergrund wählen",
"No background has been selected" : "Es wurde kein Hintergrund ausgewählt",
"Custom background" : "Benutzerdefinierter Hintergrund",
- "Plain background" : "Einfacher Hintergrund",
+ "Plain background" : "Einfarbiger Hintergrund",
"Default background" : "Standardhintergrund",
"Theme selection is enforced" : "Designauswahl wird erzwungen",
"Could not set the app order" : "Die App-Reihenfolge konnte nicht festgelegt werden",
- "Could not reset the app order" : "Standard App-Reihenfolge konnte nicht zurückgesetzt werden",
+ "Could not reset the app order" : "Standard-App-Reihenfolge konnte nicht zurückgesetzt werden",
"Navigation bar settings" : "Einstellungen der Navigationsleiste",
"You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Sie können die App-Reihenfolge für die Navigationsleiste konfigurieren. Der erste Eintrag ist die Standard-App, die nach der Anmeldung oder beim Klicken auf das Logo geöffnet wird.",
"The default app can not be changed because it was configured by the administrator." : "Die Standard-App kann nicht geändert werden, da sie von der Administration konfiguriert wurde.",
"The app order was changed, to see it in action you have to reload the page." : "Die App-Reihenfolge wurde geändert. Um die Änderungen zu sehen, müssen Sie die Seite neu laden.",
- "Reset default app order" : "Standard App-Reihenfolge zurücksetzen",
+ "Reset default app order" : "Standard-App-Reihenfolge zurücksetzen",
"Could not set primary color" : "Primärfarbe konnte nicht festgelegt werden",
"Reset primary color" : "Primärfarbe zurücksetzen",
"Could not set global default apps" : "Globale Standard-Apps konnten nicht festgelegt werden",
@@ -117,12 +117,7 @@
"Reset to default" : "Auf Standard zurücksetzen ",
"Upload" : "Hochladen",
"Remove background image" : "Hintergrundbild entfernen",
- "Color" : "Farbe",
"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." : "Der barrierefreie Zugang ist für uns sehr wichtig. Wir halten uns an Webstandards und prüfen, ob alles auch ohne Maus und unterstützende Software wie Screenreader nutzbar ist. Wir streben die Einhaltung der {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 auf AA-Niveau an, mit dem kontrastreichen Design sogar auf AAA-Niveau.",
- ". Unable to apply the setting." : ". Fehler beim Anwenden der Einstellung.",
- "Background" : "Hintergrund",
- "Set a custom background" : "Einen benutzerdefinierten Hintergrund setzen",
- "Change color" : "Farbe ändern",
- "No background" : "Kein Hintergrund"
+ ". Unable to apply the setting." : ". Fehler beim Anwenden der Einstellung."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/el.js b/apps/theming/l10n/el.js
index 2f129f02c54..cc09b6c8688 100644
--- a/apps/theming/l10n/el.js
+++ b/apps/theming/l10n/el.js
@@ -73,10 +73,6 @@ OC.L10N.register(
"Reset to default" : "Επαναφορά στα προεπιλεγμένα",
"Upload" : "Μεταφόρτωση",
"Remove background image" : "Αφαίρεση εικόνας παρασκηνίου",
- "Color" : "Χρώμα",
- "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." : "Η πρόσβαση από όλους είναι πολύ σημαντική για εμάς. Ακολουθούμε τα πρότυπα του διαδικτύου και ελέγχουμε ότι τα πάντα μπορούν να χρησιμοποιηθούν χωρίς ποντίκι και βοηθητικό λογισμικό όπως προγράμματα ανάγνωσης οθόνης. Στόχος μας είναι να συμμορφωνόμαστε με τις {guidelines}Προδιαγραφές πρόσβασης περιεχομένου Ιστού{linkend} 2.1 σε επίπεδο AA, με το θέμα υψηλής αντίθεσης ακόμη και σε επίπεδο ΑΑΑ.",
- "Background" : "Φόντο",
- "Set a custom background" : "Ορισμός προσαρμοσμένου φόντου",
- "Change color" : "Αλλαγή χρώματος"
+ "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." : "Η πρόσβαση από όλους είναι πολύ σημαντική για εμάς. Ακολουθούμε τα πρότυπα του διαδικτύου και ελέγχουμε ότι τα πάντα μπορούν να χρησιμοποιηθούν χωρίς ποντίκι και βοηθητικό λογισμικό όπως προγράμματα ανάγνωσης οθόνης. Στόχος μας είναι να συμμορφωνόμαστε με τις {guidelines}Προδιαγραφές πρόσβασης περιεχομένου Ιστού{linkend} 2.1 σε επίπεδο AA, με το θέμα υψηλής αντίθεσης ακόμη και σε επίπεδο ΑΑΑ."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/el.json b/apps/theming/l10n/el.json
index 91419471f55..941211fb928 100644
--- a/apps/theming/l10n/el.json
+++ b/apps/theming/l10n/el.json
@@ -71,10 +71,6 @@
"Reset to default" : "Επαναφορά στα προεπιλεγμένα",
"Upload" : "Μεταφόρτωση",
"Remove background image" : "Αφαίρεση εικόνας παρασκηνίου",
- "Color" : "Χρώμα",
- "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." : "Η πρόσβαση από όλους είναι πολύ σημαντική για εμάς. Ακολουθούμε τα πρότυπα του διαδικτύου και ελέγχουμε ότι τα πάντα μπορούν να χρησιμοποιηθούν χωρίς ποντίκι και βοηθητικό λογισμικό όπως προγράμματα ανάγνωσης οθόνης. Στόχος μας είναι να συμμορφωνόμαστε με τις {guidelines}Προδιαγραφές πρόσβασης περιεχομένου Ιστού{linkend} 2.1 σε επίπεδο AA, με το θέμα υψηλής αντίθεσης ακόμη και σε επίπεδο ΑΑΑ.",
- "Background" : "Φόντο",
- "Set a custom background" : "Ορισμός προσαρμοσμένου φόντου",
- "Change color" : "Αλλαγή χρώματος"
+ "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." : "Η πρόσβαση από όλους είναι πολύ σημαντική για εμάς. Ακολουθούμε τα πρότυπα του διαδικτύου και ελέγχουμε ότι τα πάντα μπορούν να χρησιμοποιηθούν χωρίς ποντίκι και βοηθητικό λογισμικό όπως προγράμματα ανάγνωσης οθόνης. Στόχος μας είναι να συμμορφωνόμαστε με τις {guidelines}Προδιαγραφές πρόσβασης περιεχομένου Ιστού{linkend} 2.1 σε επίπεδο AA, με το θέμα υψηλής αντίθεσης ακόμη και σε επίπεδο ΑΑΑ."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/en_GB.js b/apps/theming/l10n/en_GB.js
index 55b8720165b..a37c07fb532 100644
--- a/apps/theming/l10n/en_GB.js
+++ b/apps/theming/l10n/en_GB.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Reset to default",
"Upload" : "Upload",
"Remove background image" : "Remove background image",
- "Color" : "Colour",
"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." : "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.",
- ". Unable to apply the setting." : ". Unable to apply the setting.",
- "Background" : "Background",
- "Set a custom background" : "Set a custom background",
- "Change color" : "Change colour",
- "No background" : "No background"
+ ". Unable to apply the setting." : ". Unable to apply the setting."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/en_GB.json b/apps/theming/l10n/en_GB.json
index 4cafd5e7ee8..7692ed2d4d8 100644
--- a/apps/theming/l10n/en_GB.json
+++ b/apps/theming/l10n/en_GB.json
@@ -117,12 +117,7 @@
"Reset to default" : "Reset to default",
"Upload" : "Upload",
"Remove background image" : "Remove background image",
- "Color" : "Colour",
"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." : "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.",
- ". Unable to apply the setting." : ". Unable to apply the setting.",
- "Background" : "Background",
- "Set a custom background" : "Set a custom background",
- "Change color" : "Change colour",
- "No background" : "No background"
+ ". Unable to apply the setting." : ". Unable to apply the setting."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/eo.js b/apps/theming/l10n/eo.js
deleted file mode 100644
index 8da0c17f161..00000000000
--- a/apps/theming/l10n/eo.js
+++ /dev/null
@@ -1,64 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "The given name is too long" : "Tiu nomo tro longas",
- "The given web address is too long" : "Tiu TTT-adreso tro longas",
- "The given web address is not a valid URL" : "Tiu TTT-adreso ne estas valida retadreso",
- "The given legal notice address is too long" : "Tiu adreso pri leĝa regularo tro longas",
- "The given legal notice address is not a valid URL" : "La adreso al leĝa regularo ne estas valida retadreso",
- "The given privacy policy address is too long" : "Tiu adreso pri privateca regularo tro longas",
- "The given privacy policy address is not a valid URL" : "La adreso al privateca regularo ne estas valida retadreso",
- "The given slogan is too long" : "Tiu frapfrazo tro longas",
- "The given color is invalid" : "Tiu koloro ne validas",
- "Saved" : "Konservita",
- "The file was uploaded" : "La dosiero alŝutiĝis.",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "La dosiero alŝutita superas la regulon „upload_max_filesize“ el „php.ini“",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "La dosiero alŝutita superas la regulon MAX_FILE_SIZE, kiu estas difinita en la HTML-formularo",
- "The file was only partially uploaded" : "La dosiero alŝutiĝis nur parte",
- "No file was uploaded" : "Neniu dosiero alŝutiĝis.",
- "Missing a temporary folder" : "Mankas provizora dosierujo",
- "Could not write file to disk" : "Ne eblis skribi dosieron sur diskon",
- "A PHP extension stopped the file upload" : "PHP-modulo haltigis la dosieralŝuton",
- "No file uploaded" : "Neniu dosiero alŝutiĝis",
- "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",
- "Adjust the Nextcloud theme" : "Modifi la Nextcloud-etoson",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Etosoj ebligas facilan ŝanĝon en la fasado de via servilo kaj de subtenataj klientoj. Tion vidos ĉiuj uzantoj.",
- "Advanced options" : "Detalaj agordoj",
- "Name" : "Nomo",
- "Web link" : "Reta ligilo",
- "a safe home for all your data" : "sekura hejmo por ĉiuj viaj datumoj",
- "Slogan" : "Frapfrazo",
- "Color" : "Koloro",
- "Logo" : "Emblemo",
- "Upload new logo" : "Alŝuti novan emblemon",
- "Legal notice link" : "Ligilo al leĝa regularo",
- "Privacy policy link" : "Ligilo al privateca regularo",
- "Header logo" : "Paĝokapa emblemo",
- "Upload new header logo" : "Alŝuti novan paĝokapan emblemon",
- "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",
- "Loading preview…" : "Ŝargo de antaŭrigardo...",
- "Admin" : "Administranto",
- "Name cannot be empty" : "Nomo ne povas mapleni",
- "Open documentation" : "Malfermi la dokumentaron",
- "https://…" : "https://…",
- "Upload new login background" : "Alŝuti novan ensalutan fonan bildon",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instalu la PHP-modulon „Imagemagick“ kun SVG-subteno por aŭtomate krei retpaĝsimbolon, kiu devenos de la alŝutita emblemo kaj koloro."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/eo.json b/apps/theming/l10n/eo.json
deleted file mode 100644
index 96eea1d2cf6..00000000000
--- a/apps/theming/l10n/eo.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{ "translations": {
- "The given name is too long" : "Tiu nomo tro longas",
- "The given web address is too long" : "Tiu TTT-adreso tro longas",
- "The given web address is not a valid URL" : "Tiu TTT-adreso ne estas valida retadreso",
- "The given legal notice address is too long" : "Tiu adreso pri leĝa regularo tro longas",
- "The given legal notice address is not a valid URL" : "La adreso al leĝa regularo ne estas valida retadreso",
- "The given privacy policy address is too long" : "Tiu adreso pri privateca regularo tro longas",
- "The given privacy policy address is not a valid URL" : "La adreso al privateca regularo ne estas valida retadreso",
- "The given slogan is too long" : "Tiu frapfrazo tro longas",
- "The given color is invalid" : "Tiu koloro ne validas",
- "Saved" : "Konservita",
- "The file was uploaded" : "La dosiero alŝutiĝis.",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "La dosiero alŝutita superas la regulon „upload_max_filesize“ el „php.ini“",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "La dosiero alŝutita superas la regulon MAX_FILE_SIZE, kiu estas difinita en la HTML-formularo",
- "The file was only partially uploaded" : "La dosiero alŝutiĝis nur parte",
- "No file was uploaded" : "Neniu dosiero alŝutiĝis.",
- "Missing a temporary folder" : "Mankas provizora dosierujo",
- "Could not write file to disk" : "Ne eblis skribi dosieron sur diskon",
- "A PHP extension stopped the file upload" : "PHP-modulo haltigis la dosieralŝuton",
- "No file uploaded" : "Neniu dosiero alŝutiĝis",
- "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",
- "Adjust the Nextcloud theme" : "Modifi la Nextcloud-etoson",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Etosoj ebligas facilan ŝanĝon en la fasado de via servilo kaj de subtenataj klientoj. Tion vidos ĉiuj uzantoj.",
- "Advanced options" : "Detalaj agordoj",
- "Name" : "Nomo",
- "Web link" : "Reta ligilo",
- "a safe home for all your data" : "sekura hejmo por ĉiuj viaj datumoj",
- "Slogan" : "Frapfrazo",
- "Color" : "Koloro",
- "Logo" : "Emblemo",
- "Upload new logo" : "Alŝuti novan emblemon",
- "Legal notice link" : "Ligilo al leĝa regularo",
- "Privacy policy link" : "Ligilo al privateca regularo",
- "Header logo" : "Paĝokapa emblemo",
- "Upload new header logo" : "Alŝuti novan paĝokapan emblemon",
- "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",
- "Loading preview…" : "Ŝargo de antaŭrigardo...",
- "Admin" : "Administranto",
- "Name cannot be empty" : "Nomo ne povas mapleni",
- "Open documentation" : "Malfermi la dokumentaron",
- "https://…" : "https://…",
- "Upload new login background" : "Alŝuti novan ensalutan fonan bildon",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instalu la PHP-modulon „Imagemagick“ kun SVG-subteno por aŭtomate krei retpaĝsimbolon, kiu devenos de la alŝutita emblemo kaj koloro."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es.js b/apps/theming/l10n/es.js
index 0ffadce346b..e7cd2cf669a 100644
--- a/apps/theming/l10n/es.js
+++ b/apps/theming/l10n/es.js
@@ -117,11 +117,6 @@ OC.L10N.register(
"Reset to default" : "Vovler a configuración por defecto",
"Upload" : "Subir",
"Remove background image" : "Eliminar imagen de fondo",
- "Color" : "Color",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos para asegurarnos de que todo sea utilizable incluso sin ratón y con software de asistencia tales como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines}Directrices de Accesibilidad para el Contenido Web{linkend} 2.1 en el nivel AA, incluso con el tema de alto contraste en el nivel AAA.",
- "Background" : "Imagen de fondo",
- "Set a custom background" : "Establecer un fondo personalizado",
- "Change color" : "Cambiar color",
- "No background" : "Sin imagen de fondo"
+ "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos para asegurarnos de que todo sea utilizable incluso sin ratón y con software de asistencia tales como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines}Directrices de Accesibilidad para el Contenido Web{linkend} 2.1 en el nivel AA, incluso con el tema de alto contraste en el nivel AAA."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es.json b/apps/theming/l10n/es.json
index 8491da31132..c9f5ed3b1a7 100644
--- a/apps/theming/l10n/es.json
+++ b/apps/theming/l10n/es.json
@@ -115,11 +115,6 @@
"Reset to default" : "Vovler a configuración por defecto",
"Upload" : "Subir",
"Remove background image" : "Eliminar imagen de fondo",
- "Color" : "Color",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos para asegurarnos de que todo sea utilizable incluso sin ratón y con software de asistencia tales como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines}Directrices de Accesibilidad para el Contenido Web{linkend} 2.1 en el nivel AA, incluso con el tema de alto contraste en el nivel AAA.",
- "Background" : "Imagen de fondo",
- "Set a custom background" : "Establecer un fondo personalizado",
- "Change color" : "Cambiar color",
- "No background" : "Sin imagen de fondo"
+ "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos para asegurarnos de que todo sea utilizable incluso sin ratón y con software de asistencia tales como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines}Directrices de Accesibilidad para el Contenido Web{linkend} 2.1 en el nivel AA, incluso con el tema de alto contraste en el nivel AAA."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/es_419.js b/apps/theming/l10n/es_419.js
deleted file mode 100644
index 7b9091a2905..00000000000
--- a/apps/theming/l10n/es_419.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Legal notice link" : "Enlace de aviso legal",
- "Privacy policy link" : "Enlace de política de seguridad",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Subir nuevo logo de encabezado",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/es_419.json b/apps/theming/l10n/es_419.json
deleted file mode 100644
index f70248ecffe..00000000000
--- a/apps/theming/l10n/es_419.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Legal notice link" : "Enlace de aviso legal",
- "Privacy policy link" : "Enlace de política de seguridad",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Subir nuevo logo de encabezado",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_AR.js b/apps/theming/l10n/es_AR.js
deleted file mode 100644
index a6b86bef5e7..00000000000
--- a/apps/theming/l10n/es_AR.js
+++ /dev/null
@@ -1,41 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Saved" : "Guardado",
- "a safe home for all your data" : "un lugar seguro para todos sus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo subido sobrepasa el valor MAX_FILE_SIZE especificada en el formulario HTML",
- "No file was uploaded" : "No se subió ningún archivo ",
- "Missing a temporary folder" : "Falta un directorio temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema oscuro",
- "Enable dark theme" : "Habilitar tema nocturno",
- "Dyslexia font" : "Dislexia fuente",
- "Enable dyslexia font" : "Habilitar la fuente para personas con dislexia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es un tipo de letra/fuente gratuita diseñada para mitigar algunos de los errores comunes de lectura causados ​​por la dislexia.",
- "High contrast mode" : "Modo alto contraste",
- "Enable high contrast mode" : "Habilitar modo de Contraste Alto",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un modo de alto contraste para facilitar su navegación. Se reducirá la calidad visual pero se aumentará la claridad.",
- "Privacy policy" : "Políticas de privacidad",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo se pueda usar también sin mouse y software de asistencia, como lectores de pantalla. Nuestro objetivo es cumplir con las {pautas} Accesibilidad al contenido web {linkend} 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA.",
- "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Si encuentra algún problema, no dude en informarlo en {issuetracker}nuestro rastreador de problemas {linkend}. Y si desea participar, ¡únase a {designteam}a nuestro equipo de diseño {linkend}!",
- "Open documentation" : "Abrir documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve su instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es_AR.json b/apps/theming/l10n/es_AR.json
deleted file mode 100644
index 3924f562e98..00000000000
--- a/apps/theming/l10n/es_AR.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Saved" : "Guardado",
- "a safe home for all your data" : "un lugar seguro para todos sus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo subido sobrepasa el valor MAX_FILE_SIZE especificada en el formulario HTML",
- "No file was uploaded" : "No se subió ningún archivo ",
- "Missing a temporary folder" : "Falta un directorio temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema oscuro",
- "Enable dark theme" : "Habilitar tema nocturno",
- "Dyslexia font" : "Dislexia fuente",
- "Enable dyslexia font" : "Habilitar la fuente para personas con dislexia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es un tipo de letra/fuente gratuita diseñada para mitigar algunos de los errores comunes de lectura causados ​​por la dislexia.",
- "High contrast mode" : "Modo alto contraste",
- "Enable high contrast mode" : "Habilitar modo de Contraste Alto",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un modo de alto contraste para facilitar su navegación. Se reducirá la calidad visual pero se aumentará la claridad.",
- "Privacy policy" : "Políticas de privacidad",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo se pueda usar también sin mouse y software de asistencia, como lectores de pantalla. Nuestro objetivo es cumplir con las {pautas} Accesibilidad al contenido web {linkend} 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA.",
- "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Si encuentra algún problema, no dude en informarlo en {issuetracker}nuestro rastreador de problemas {linkend}. Y si desea participar, ¡únase a {designteam}a nuestro equipo de diseño {linkend}!",
- "Open documentation" : "Abrir documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve su instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_CL.js b/apps/theming/l10n/es_CL.js
deleted file mode 100644
index 4deb05cebcf..00000000000
--- a/apps/theming/l10n/es_CL.js
+++ /dev/null
@@ -1,56 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema Oscuro",
- "Enable dark theme" : "Habilitar el tema oscuro",
- "Dyslexia font" : "Fuente para las personas con dislexia",
- "Enable dyslexia font" : "Habilita la fuente para personas con dislexia",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Habilitar modo de contraste alto",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Modo de alto contraste facilita tu navegación. La calidad visual puede ser menor pero se incrementa la claridad.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es_CL.json b/apps/theming/l10n/es_CL.json
deleted file mode 100644
index 93bce319127..00000000000
--- a/apps/theming/l10n/es_CL.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{ "translations": {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema Oscuro",
- "Enable dark theme" : "Habilitar el tema oscuro",
- "Dyslexia font" : "Fuente para las personas con dislexia",
- "Enable dyslexia font" : "Habilita la fuente para personas con dislexia",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Habilitar modo de contraste alto",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Modo de alto contraste facilita tu navegación. La calidad visual puede ser menor pero se incrementa la claridad.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_CO.js b/apps/theming/l10n/es_CO.js
deleted file mode 100644
index aa5f15e2bc3..00000000000
--- a/apps/theming/l10n/es_CO.js
+++ /dev/null
@@ -1,57 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema oscuro",
- "Enable dark theme" : "Habilitar tema oscuro",
- "Dyslexia font" : "Ayuda para disléxicos",
- "Enable dyslexia font" : "Habilitar ayuda para disléxicos",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDislexic es una herramienta libre diseñada para mitigar algunos de los errores más comunes causados por la dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Habilitar alto contraste",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "El modo de alto contraste se usa para facilitar la navegación. Se reducirá la calidad visual pero aumentará la claridad.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "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." : "Acceso universal es muy importante para nosotros. Nosotros seguimos los estándares del internet y revisamos que todo este usable hasta sin ratón, y programas ayudantes como lectores de pantalla. Nosotros aspiramos de conformar con las {guidelines} Guías de Contenido Accesible del Web {linkend} 2.1 a nivel de AA y con un nivel de AAA con el tema de alto contraste. ",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es_CO.json b/apps/theming/l10n/es_CO.json
deleted file mode 100644
index 6e79c75881c..00000000000
--- a/apps/theming/l10n/es_CO.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{ "translations": {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema oscuro",
- "Enable dark theme" : "Habilitar tema oscuro",
- "Dyslexia font" : "Ayuda para disléxicos",
- "Enable dyslexia font" : "Habilitar ayuda para disléxicos",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDislexic es una herramienta libre diseñada para mitigar algunos de los errores más comunes causados por la dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Habilitar alto contraste",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "El modo de alto contraste se usa para facilitar la navegación. Se reducirá la calidad visual pero aumentará la claridad.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "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." : "Acceso universal es muy importante para nosotros. Nosotros seguimos los estándares del internet y revisamos que todo este usable hasta sin ratón, y programas ayudantes como lectores de pantalla. Nosotros aspiramos de conformar con las {guidelines} Guías de Contenido Accesible del Web {linkend} 2.1 a nivel de AA y con un nivel de AAA con el tema de alto contraste. ",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_CR.js b/apps/theming/l10n/es_CR.js
deleted file mode 100644
index 761d9e8a7c1..00000000000
--- a/apps/theming/l10n/es_CR.js
+++ /dev/null
@@ -1,57 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema oscuro",
- "Enable dark theme" : "Activar el tema oscuro",
- "Dyslexia font" : "Fuente para dislexia",
- "Enable dyslexia font" : "Activar la fuente para dislexia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es una tipografía/fuente diseñada para mitigar algunos de los problemas de lectura causados por la dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Activar el modo de alto contraste",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un modo de alto contraste facilita la navegación. La calidad visual se reducirá, pero la claridad aumentará.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo pueda utilizarse sin un ratón, y programas de asistencia como lectores de pantalla. Nuestro objetivo es cumplir con los [guidelines]Lineamientos de Accesibilidad de Contenido Web[linkend] 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA.",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es_CR.json b/apps/theming/l10n/es_CR.json
deleted file mode 100644
index cae5fd42c2f..00000000000
--- a/apps/theming/l10n/es_CR.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{ "translations": {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema oscuro",
- "Enable dark theme" : "Activar el tema oscuro",
- "Dyslexia font" : "Fuente para dislexia",
- "Enable dyslexia font" : "Activar la fuente para dislexia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es una tipografía/fuente diseñada para mitigar algunos de los problemas de lectura causados por la dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Activar el modo de alto contraste",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un modo de alto contraste facilita la navegación. La calidad visual se reducirá, pero la claridad aumentará.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo pueda utilizarse sin un ratón, y programas de asistencia como lectores de pantalla. Nuestro objetivo es cumplir con los [guidelines]Lineamientos de Accesibilidad de Contenido Web[linkend] 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA.",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_DO.js b/apps/theming/l10n/es_DO.js
deleted file mode 100644
index 9af4a7bb302..00000000000
--- a/apps/theming/l10n/es_DO.js
+++ /dev/null
@@ -1,57 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema Oscuro",
- "Enable dark theme" : "Habilita el tema oscuro",
- "Dyslexia font" : "Fuente para las personas con dislexia",
- "Enable dyslexia font" : "Habilita la fuente de dislexia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es un tipo de letra o fuente gratuito diseñado para mitigar algunos de los errores de lectura comunes causados ​​por la dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Habilita el modo de alto contraste",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un modo de alto contraste para mejorar tu navegacion. La calidad visual se vera reducida pero la claridad se mejorara.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo se pueda usar también sin mouse y software de asistencia, como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines}Pautas de accesibilidad al contenido web{linkend} 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA.",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es_DO.json b/apps/theming/l10n/es_DO.json
deleted file mode 100644
index 3fd46ff94e9..00000000000
--- a/apps/theming/l10n/es_DO.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{ "translations": {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema Oscuro",
- "Enable dark theme" : "Habilita el tema oscuro",
- "Dyslexia font" : "Fuente para las personas con dislexia",
- "Enable dyslexia font" : "Habilita la fuente de dislexia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es un tipo de letra o fuente gratuito diseñado para mitigar algunos de los errores de lectura comunes causados ​​por la dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Habilita el modo de alto contraste",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un modo de alto contraste para mejorar tu navegacion. La calidad visual se vera reducida pero la claridad se mejorara.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo se pueda usar también sin mouse y software de asistencia, como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines}Pautas de accesibilidad al contenido web{linkend} 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA.",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_EC.js b/apps/theming/l10n/es_EC.js
index f9def1840b7..3f5356231c7 100644
--- a/apps/theming/l10n/es_EC.js
+++ b/apps/theming/l10n/es_EC.js
@@ -82,11 +82,6 @@ OC.L10N.register(
"Reset to default" : "Restablecer al predeterminado",
"Upload" : "Cargar",
"Remove background image" : "Eliminar imagen de fondo",
- "Color" : "Color",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable también sin mouse y software de asistencia, como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines} Directrices de accesibilidad al contenido web {linkend} 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA.",
- "Background" : "Fondo",
- "Set a custom background" : "Establecer un fondo personalizado",
- "Change color" : "Cambiar color",
- "No background" : "Sin fondo"
+ "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable también sin mouse y software de asistencia, como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines} Directrices de accesibilidad al contenido web {linkend} 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es_EC.json b/apps/theming/l10n/es_EC.json
index 41089a74c54..01cd1c783ac 100644
--- a/apps/theming/l10n/es_EC.json
+++ b/apps/theming/l10n/es_EC.json
@@ -80,11 +80,6 @@
"Reset to default" : "Restablecer al predeterminado",
"Upload" : "Cargar",
"Remove background image" : "Eliminar imagen de fondo",
- "Color" : "Color",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable también sin mouse y software de asistencia, como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines} Directrices de accesibilidad al contenido web {linkend} 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA.",
- "Background" : "Fondo",
- "Set a custom background" : "Establecer un fondo personalizado",
- "Change color" : "Cambiar color",
- "No background" : "Sin fondo"
+ "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable también sin mouse y software de asistencia, como lectores de pantalla. Nuestro objetivo es cumplir con las {guidelines} Directrices de accesibilidad al contenido web {linkend} 2.1 en el nivel AA, con el tema de alto contraste incluso en el nivel AAA."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/es_GT.js b/apps/theming/l10n/es_GT.js
deleted file mode 100644
index bf82d442226..00000000000
--- a/apps/theming/l10n/es_GT.js
+++ /dev/null
@@ -1,57 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema Oscuro",
- "Enable dark theme" : "Habilitar el tema oscuro",
- "Dyslexia font" : "Fuente para las personas con dislexia",
- "Enable dyslexia font" : "Habilita la fuente para personas con dislexia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es un tipo de letra libre diseñada para reducir algunos de los errores de lectura comunes causados por la dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Habilitar modo de contraste alto",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Modo de alto contraste facilita tu navegación. La calidad visual puede ser menor pero se incrementa la claridad.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste.",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es_GT.json b/apps/theming/l10n/es_GT.json
deleted file mode 100644
index a70da3cf713..00000000000
--- a/apps/theming/l10n/es_GT.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{ "translations": {
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "Saved" : "Guardado",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Dark theme" : "Tema Oscuro",
- "Enable dark theme" : "Habilitar el tema oscuro",
- "Dyslexia font" : "Fuente para las personas con dislexia",
- "Enable dyslexia font" : "Habilita la fuente para personas con dislexia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es un tipo de letra libre diseñada para reducir algunos de los errores de lectura comunes causados por la dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Habilitar modo de contraste alto",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Modo de alto contraste facilita tu navegación. La calidad visual puede ser menor pero se incrementa la claridad.",
- "Legal notice" : "Aviso legal",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Advanced options" : "Opciones avanzadas",
- "Name" : "Nombre",
- "Web link" : "Enlace web",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Keyboard shortcuts" : "Atajos del teclado",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste.",
- "Reset to default" : "Restablecer al predeterminado",
- "Upload" : "Cargar",
- "Remove background image" : "Eliminar imagen de fondo",
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "Open documentation" : "Abrir la documentación",
- "https://…" : "https://…",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_HN.js b/apps/theming/l10n/es_HN.js
deleted file mode 100644
index a8a0cb95952..00000000000
--- a/apps/theming/l10n/es_HN.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/es_HN.json b/apps/theming/l10n/es_HN.json
deleted file mode 100644
index 766e123ebbb..00000000000
--- a/apps/theming/l10n/es_HN.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_MX.js b/apps/theming/l10n/es_MX.js
index ac5521835e3..23a886e8ba8 100644
--- a/apps/theming/l10n/es_MX.js
+++ b/apps/theming/l10n/es_MX.js
@@ -117,11 +117,6 @@ OC.L10N.register(
"Reset to default" : "Restablecer al predeterminado",
"Upload" : "Cargar",
"Remove background image" : "Eliminar imagen de fondo",
- "Color" : "Color",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste.",
- "Background" : "Fondo",
- "Set a custom background" : "Establecer un fondo personalizado",
- "Change color" : "Cambiar color",
- "No background" : "Sin fondo"
+ "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es_MX.json b/apps/theming/l10n/es_MX.json
index 143ab209462..43e22978767 100644
--- a/apps/theming/l10n/es_MX.json
+++ b/apps/theming/l10n/es_MX.json
@@ -115,11 +115,6 @@
"Reset to default" : "Restablecer al predeterminado",
"Upload" : "Cargar",
"Remove background image" : "Eliminar imagen de fondo",
- "Color" : "Color",
- "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste.",
- "Background" : "Fondo",
- "Set a custom background" : "Establecer un fondo personalizado",
- "Change color" : "Cambiar color",
- "No background" : "Sin fondo"
+ "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." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/es_NI.js b/apps/theming/l10n/es_NI.js
deleted file mode 100644
index a8a0cb95952..00000000000
--- a/apps/theming/l10n/es_NI.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/es_NI.json b/apps/theming/l10n/es_NI.json
deleted file mode 100644
index 766e123ebbb..00000000000
--- a/apps/theming/l10n/es_NI.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_PA.js b/apps/theming/l10n/es_PA.js
deleted file mode 100644
index a8a0cb95952..00000000000
--- a/apps/theming/l10n/es_PA.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/es_PA.json b/apps/theming/l10n/es_PA.json
deleted file mode 100644
index 766e123ebbb..00000000000
--- a/apps/theming/l10n/es_PA.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_PE.js b/apps/theming/l10n/es_PE.js
deleted file mode 100644
index a8a0cb95952..00000000000
--- a/apps/theming/l10n/es_PE.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/es_PE.json b/apps/theming/l10n/es_PE.json
deleted file mode 100644
index 766e123ebbb..00000000000
--- a/apps/theming/l10n/es_PE.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_PR.js b/apps/theming/l10n/es_PR.js
deleted file mode 100644
index a8a0cb95952..00000000000
--- a/apps/theming/l10n/es_PR.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/es_PR.json b/apps/theming/l10n/es_PR.json
deleted file mode 100644
index 766e123ebbb..00000000000
--- a/apps/theming/l10n/es_PR.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_PY.js b/apps/theming/l10n/es_PY.js
deleted file mode 100644
index a8a0cb95952..00000000000
--- a/apps/theming/l10n/es_PY.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/es_PY.json b/apps/theming/l10n/es_PY.json
deleted file mode 100644
index 766e123ebbb..00000000000
--- a/apps/theming/l10n/es_PY.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_SV.js b/apps/theming/l10n/es_SV.js
deleted file mode 100644
index f51fa47b0ac..00000000000
--- a/apps/theming/l10n/es_SV.js
+++ /dev/null
@@ -1,48 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Saved" : "Guardado",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Legal notice" : "Aviso legal",
- "Keyboard shortcuts" : "Atajos del teclado",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Web link" : "Enlace web",
- "https://…" : "https://…",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/es_SV.json b/apps/theming/l10n/es_SV.json
deleted file mode 100644
index d7937f36889..00000000000
--- a/apps/theming/l10n/es_SV.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Admin" : "Administración",
- "Saved" : "Guardado",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "Name cannot be empty" : "El nombre no puede estar en blanco",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given legal notice address is too long" : "La dirección del aviso legal es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The file was uploaded" : "El archivo fue cargado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "Could not write file to disk" : "No fue posible escribir a disco",
- "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
- "No file uploaded" : "No hay archivos cargados",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
- "Theming" : "Tematizar",
- "Legal notice" : "Aviso legal",
- "Keyboard shortcuts" : "Atajos del teclado",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Web link" : "Enlace web",
- "https://…" : "https://…",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Legal notice link" : "Enlace al aviso legal",
- "Header logo" : "Logo del encabezado",
- "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Cargar un nuevo favicon",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/es_UY.js b/apps/theming/l10n/es_UY.js
deleted file mode 100644
index a8a0cb95952..00000000000
--- a/apps/theming/l10n/es_UY.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/es_UY.json b/apps/theming/l10n/es_UY.json
deleted file mode 100644
index 766e123ebbb..00000000000
--- a/apps/theming/l10n/es_UY.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Cargando vista previa...",
- "Saved" : "Guardado",
- "Admin" : "Administración",
- "a safe home for all your data" : "un lugar seguro para todos tus datos",
- "The given name is too long" : "El nombre dado es demasiado largo",
- "The given web address is too long" : "La dirección web dada es demasiado larga",
- "The given slogan is too long" : "El lema dado es demasiado largo",
- "The given color is invalid" : "El color dado es inválido",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
- "No file was uploaded" : "No se cargó el archivo",
- "Missing a temporary folder" : "Falta una carpeta temporal",
- "No file uploaded" : "No hay archivos cargados",
- "Theming" : "Tematizar",
- "Open documentation" : "Abrir la documentación",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
- "Name" : "Nombre",
- "Reset to default" : "Restablecer al predeterminado",
- "Slogan" : "Lema",
- "Color" : "Color",
- "Logo" : "Logotipo",
- "Upload new logo" : "Cargar nuevo logotipo",
- "Login image" : "Imágen de inicio de sesión",
- "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
- "Remove background image" : "Eliminar imagen de fondo",
- "Advanced options" : "Opciones avanzadas",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/et_EE.js b/apps/theming/l10n/et_EE.js
index eb3bee9203b..8c9c4cf4a11 100644
--- a/apps/theming/l10n/et_EE.js
+++ b/apps/theming/l10n/et_EE.js
@@ -58,7 +58,7 @@ OC.L10N.register(
"Primary color" : "Põhivärv",
"The primary color is used for highlighting elements like important buttons. It might get slightly adjusted depending on the current color schema." : "Põhivärv on mõeldud lehe oluliste elementude rõhutamiseks. Vastavalt valitud üldkujundusele võib see värv ka natuke kohenduda.",
"Legal notice link" : "Juriidilise teabe link",
- "Privacy policy link" : "Privaatsusreeglite link",
+ "Privacy policy link" : "Privaatsustingimuste link",
"Header logo" : "Päiselogo",
"Upload new header logo" : "Laadi üles uus päiselogo",
"Favicon" : "Saidi favikon",
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Taasta vaikeseaded",
"Upload" : "Laadi üles",
"Remove background image" : "Eemalda taustapilt",
- "Color" : "Värv",
"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." : "Universaalne juurdepääs on meie jaoks väga oluline. Me järgime veebistandardeid ja kontrollime, et kõik oleks kasutatav ka ilma hiireta ja abitarkvara, näiteks ekraani lugejateta. Meie eesmärk on olla vastavuses {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA-tasemel, kõrge kontrastsusega kujunduse puhull isegi AAA-tasemel. ",
- ". Unable to apply the setting." : ". Seadistuse rakendamine pole võimalik.",
- "Background" : "Taust",
- "Set a custom background" : "Lisa oma taust",
- "Change color" : "Muuda värvi",
- "No background" : "Tausta pole"
+ ". Unable to apply the setting." : ". Seadistuse rakendamine pole võimalik."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/et_EE.json b/apps/theming/l10n/et_EE.json
index 47060ecc273..e790923b127 100644
--- a/apps/theming/l10n/et_EE.json
+++ b/apps/theming/l10n/et_EE.json
@@ -56,7 +56,7 @@
"Primary color" : "Põhivärv",
"The primary color is used for highlighting elements like important buttons. It might get slightly adjusted depending on the current color schema." : "Põhivärv on mõeldud lehe oluliste elementude rõhutamiseks. Vastavalt valitud üldkujundusele võib see värv ka natuke kohenduda.",
"Legal notice link" : "Juriidilise teabe link",
- "Privacy policy link" : "Privaatsusreeglite link",
+ "Privacy policy link" : "Privaatsustingimuste link",
"Header logo" : "Päiselogo",
"Upload new header logo" : "Laadi üles uus päiselogo",
"Favicon" : "Saidi favikon",
@@ -117,12 +117,7 @@
"Reset to default" : "Taasta vaikeseaded",
"Upload" : "Laadi üles",
"Remove background image" : "Eemalda taustapilt",
- "Color" : "Värv",
"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." : "Universaalne juurdepääs on meie jaoks väga oluline. Me järgime veebistandardeid ja kontrollime, et kõik oleks kasutatav ka ilma hiireta ja abitarkvara, näiteks ekraani lugejateta. Meie eesmärk on olla vastavuses {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA-tasemel, kõrge kontrastsusega kujunduse puhull isegi AAA-tasemel. ",
- ". Unable to apply the setting." : ". Seadistuse rakendamine pole võimalik.",
- "Background" : "Taust",
- "Set a custom background" : "Lisa oma taust",
- "Change color" : "Muuda värvi",
- "No background" : "Tausta pole"
+ ". Unable to apply the setting." : ". Seadistuse rakendamine pole võimalik."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/eu.js b/apps/theming/l10n/eu.js
index 476028cfea3..4ed87e22808 100644
--- a/apps/theming/l10n/eu.js
+++ b/apps/theming/l10n/eu.js
@@ -117,11 +117,6 @@ OC.L10N.register(
"Reset to default" : "Berezarri balio lehenetsira",
"Upload" : "Igo",
"Remove background image" : "Kendu atzeko-planoko irudia",
- "Color" : "Kolorea",
- "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." : "Sarbide unibertsala izatea oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta guztia sagurik gabe erabili ahal izatea bermatzen dugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino betez.",
- "Background" : "Atzeko planoa",
- "Set a custom background" : "Ezarri atzeko planoko irudi pertsonalizatua",
- "Change color" : "Aldatu kolorea",
- "No background" : "atzeko planorik ez"
+ "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." : "Sarbide unibertsala izatea oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta guztia sagurik gabe erabili ahal izatea bermatzen dugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino betez."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/eu.json b/apps/theming/l10n/eu.json
index 4e49f9e42aa..55df7980145 100644
--- a/apps/theming/l10n/eu.json
+++ b/apps/theming/l10n/eu.json
@@ -115,11 +115,6 @@
"Reset to default" : "Berezarri balio lehenetsira",
"Upload" : "Igo",
"Remove background image" : "Kendu atzeko-planoko irudia",
- "Color" : "Kolorea",
- "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." : "Sarbide unibertsala izatea oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta guztia sagurik gabe erabili ahal izatea bermatzen dugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino betez.",
- "Background" : "Atzeko planoa",
- "Set a custom background" : "Ezarri atzeko planoko irudi pertsonalizatua",
- "Change color" : "Aldatu kolorea",
- "No background" : "atzeko planorik ez"
+ "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." : "Sarbide unibertsala izatea oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta guztia sagurik gabe erabili ahal izatea bermatzen dugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino betez."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/fa.js b/apps/theming/l10n/fa.js
index 2d7ce092d3b..1d1ff5288db 100644
--- a/apps/theming/l10n/fa.js
+++ b/apps/theming/l10n/fa.js
@@ -82,11 +82,6 @@ OC.L10N.register(
"Reset to default" : "بازنشانی به پیش‌گزیده",
"Upload" : "بارگذاری",
"Remove background image" : "برداشتن تصویر پس‌زمینه",
- "Color" : "رنگ",
- "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." : "دسترسی جهانی برای ما بسیار مهم است. ما از استانداردهای وب پیروی می‌کنیم و دقیت می‌کنیم تا همه چیز بدون موش‌واره و نرم‌افزارهای کمکی مانند صفحه‌خوان‌ها نیز قابل استفاده باشند. هدف ما این است که مطابق با دستورالعمل {guidelines}راهنماهای دسترس‌پذیری محتوا تحت وب{linkend} نسخه 2.1 در سطح AA، و حتی با زمینه کنتراست بالا در سطح AAA باشیم.",
- "Background" : "پس‌زمینه",
- "Set a custom background" : "تنظیم پس‌زمینه‌ای شخصی",
- "Change color" : "تغییر رنگ",
- "No background" : "No background"
+ "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." : "دسترسی جهانی برای ما بسیار مهم است. ما از استانداردهای وب پیروی می‌کنیم و دقیت می‌کنیم تا همه چیز بدون موش‌واره و نرم‌افزارهای کمکی مانند صفحه‌خوان‌ها نیز قابل استفاده باشند. هدف ما این است که مطابق با دستورالعمل {guidelines}راهنماهای دسترس‌پذیری محتوا تحت وب{linkend} نسخه 2.1 در سطح AA، و حتی با زمینه کنتراست بالا در سطح AAA باشیم."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/theming/l10n/fa.json b/apps/theming/l10n/fa.json
index e2209dae314..6779e8e5715 100644
--- a/apps/theming/l10n/fa.json
+++ b/apps/theming/l10n/fa.json
@@ -80,11 +80,6 @@
"Reset to default" : "بازنشانی به پیش‌گزیده",
"Upload" : "بارگذاری",
"Remove background image" : "برداشتن تصویر پس‌زمینه",
- "Color" : "رنگ",
- "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." : "دسترسی جهانی برای ما بسیار مهم است. ما از استانداردهای وب پیروی می‌کنیم و دقیت می‌کنیم تا همه چیز بدون موش‌واره و نرم‌افزارهای کمکی مانند صفحه‌خوان‌ها نیز قابل استفاده باشند. هدف ما این است که مطابق با دستورالعمل {guidelines}راهنماهای دسترس‌پذیری محتوا تحت وب{linkend} نسخه 2.1 در سطح AA، و حتی با زمینه کنتراست بالا در سطح AAA باشیم.",
- "Background" : "پس‌زمینه",
- "Set a custom background" : "تنظیم پس‌زمینه‌ای شخصی",
- "Change color" : "تغییر رنگ",
- "No background" : "No background"
+ "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." : "دسترسی جهانی برای ما بسیار مهم است. ما از استانداردهای وب پیروی می‌کنیم و دقیت می‌کنیم تا همه چیز بدون موش‌واره و نرم‌افزارهای کمکی مانند صفحه‌خوان‌ها نیز قابل استفاده باشند. هدف ما این است که مطابق با دستورالعمل {guidelines}راهنماهای دسترس‌پذیری محتوا تحت وب{linkend} نسخه 2.1 در سطح AA، و حتی با زمینه کنتراست بالا در سطح AAA باشیم."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/fi.js b/apps/theming/l10n/fi.js
index 1e556293707..3c121a097d8 100644
--- a/apps/theming/l10n/fi.js
+++ b/apps/theming/l10n/fi.js
@@ -84,11 +84,6 @@ OC.L10N.register(
"Reset to default" : "Palauta oletukseksi",
"Upload" : "Lähetä",
"Remove background image" : "Poista taustakuva",
- "Color" : "Väri",
- "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." : "Saavutettavuus on erittäin tärkeää meille. Seuraamme verkkostandardeja ja varmistamme, että kaikki on käytettävissä ilman hiirtä sekä avustavien ohjelmistojen kuten ruudunlukijoiden avulla. Pyrimme olemaan yhteensopivia {guidelines}Web Content Accessibility Guidelines{linkend} -ohjeistuksen version 2.1 AA-tason kanssa, suuren kontrastin teemalla pyrimme jopa AAA-tasoon.",
- "Background" : "Tausta",
- "Set a custom background" : "Aseta mukautettu tausta",
- "Change color" : "Vaihda väriä",
- "No background" : "Ei taustakuvaa"
+ "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." : "Saavutettavuus on erittäin tärkeää meille. Seuraamme verkkostandardeja ja varmistamme, että kaikki on käytettävissä ilman hiirtä sekä avustavien ohjelmistojen kuten ruudunlukijoiden avulla. Pyrimme olemaan yhteensopivia {guidelines}Web Content Accessibility Guidelines{linkend} -ohjeistuksen version 2.1 AA-tason kanssa, suuren kontrastin teemalla pyrimme jopa AAA-tasoon."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/fi.json b/apps/theming/l10n/fi.json
index a96463b1751..73e04274155 100644
--- a/apps/theming/l10n/fi.json
+++ b/apps/theming/l10n/fi.json
@@ -82,11 +82,6 @@
"Reset to default" : "Palauta oletukseksi",
"Upload" : "Lähetä",
"Remove background image" : "Poista taustakuva",
- "Color" : "Väri",
- "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." : "Saavutettavuus on erittäin tärkeää meille. Seuraamme verkkostandardeja ja varmistamme, että kaikki on käytettävissä ilman hiirtä sekä avustavien ohjelmistojen kuten ruudunlukijoiden avulla. Pyrimme olemaan yhteensopivia {guidelines}Web Content Accessibility Guidelines{linkend} -ohjeistuksen version 2.1 AA-tason kanssa, suuren kontrastin teemalla pyrimme jopa AAA-tasoon.",
- "Background" : "Tausta",
- "Set a custom background" : "Aseta mukautettu tausta",
- "Change color" : "Vaihda väriä",
- "No background" : "Ei taustakuvaa"
+ "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." : "Saavutettavuus on erittäin tärkeää meille. Seuraamme verkkostandardeja ja varmistamme, että kaikki on käytettävissä ilman hiirtä sekä avustavien ohjelmistojen kuten ruudunlukijoiden avulla. Pyrimme olemaan yhteensopivia {guidelines}Web Content Accessibility Guidelines{linkend} -ohjeistuksen version 2.1 AA-tason kanssa, suuren kontrastin teemalla pyrimme jopa AAA-tasoon."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/fr.js b/apps/theming/l10n/fr.js
index e6c3bc562a2..074ab2a9cdf 100644
--- a/apps/theming/l10n/fr.js
+++ b/apps/theming/l10n/fr.js
@@ -75,7 +75,9 @@ OC.L10N.register(
"Background and login image" : "Image d'arrière-plan et de connexion",
"Advanced options" : "Options avancées",
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Installez l'extension PHP ImageMagick qui prend en charge les images SVG pour générer automatiquement des favicons à partir du logo téléversé et de la couleur indiquée.",
+ "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 {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "L’accès universel est très important pour nous. Nous suivons les standards du web et nous assurons que tout soit également utilisable sans souris et avec des logiciels d’assistance technique tels que les lecteurs d’écran. Nous visons à respecter les {linkstart}Règles pour l’accessibilité des contenus Web{linkend} 2.1 de niveau AA et même de niveau AAA avec le thème à fort contraste.",
"If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Si vous rencontrez des problèmes, n'hésitez pas à les signaler sur {issuetracker}notre outil de suivi des problèmes{linkend}. Et si vous voulez vous impliquer, venez rejoindre {designteam}notre équipe de design{linkend} !",
+ "Unable to apply the setting." : "Impossible d'appliquer le réglage.",
"Appearance and accessibility settings" : "Paramètres d’apparence et d’accessibilité",
"Misc accessibility options" : "Diverses options d'accessibilité",
"Enable blur background filter (may increase GPU load)" : "Activer le filtre flou de l'arrière-plan (peut augmenter la charge du GPU)",
@@ -117,11 +119,7 @@ OC.L10N.register(
"Reset to default" : "Restaurer les valeurs par défaut",
"Upload" : "Téléverser",
"Remove background image" : "Retirer l'image d'arrière-plan",
- "Color" : "Couleur",
"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." : "L'accès universel est très important pour nous. Nous suivons les standards du web et nous vérifions que tout est utilisable même sans souris et sans logiciel d'assistance comme les lecteurs d'écran. Nous visons à respecter les {guidelines}Règles pour l'accessibilité des contenus Web{linkend} 2.1 de niveau AA et même de niveau AAA avec le thème à fort contraste.",
- "Background" : "Arrière-plan",
- "Set a custom background" : "Définir un arrière-plan personnalisé",
- "Change color" : "Changer la couleur",
- "No background" : "Pas d'arrière-plan"
+ ". Unable to apply the setting." : ". Impossible d'appliquer le réglage."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/fr.json b/apps/theming/l10n/fr.json
index 68e65957cdf..8daa7ef3e89 100644
--- a/apps/theming/l10n/fr.json
+++ b/apps/theming/l10n/fr.json
@@ -73,7 +73,9 @@
"Background and login image" : "Image d'arrière-plan et de connexion",
"Advanced options" : "Options avancées",
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Installez l'extension PHP ImageMagick qui prend en charge les images SVG pour générer automatiquement des favicons à partir du logo téléversé et de la couleur indiquée.",
+ "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 {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "L’accès universel est très important pour nous. Nous suivons les standards du web et nous assurons que tout soit également utilisable sans souris et avec des logiciels d’assistance technique tels que les lecteurs d’écran. Nous visons à respecter les {linkstart}Règles pour l’accessibilité des contenus Web{linkend} 2.1 de niveau AA et même de niveau AAA avec le thème à fort contraste.",
"If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Si vous rencontrez des problèmes, n'hésitez pas à les signaler sur {issuetracker}notre outil de suivi des problèmes{linkend}. Et si vous voulez vous impliquer, venez rejoindre {designteam}notre équipe de design{linkend} !",
+ "Unable to apply the setting." : "Impossible d'appliquer le réglage.",
"Appearance and accessibility settings" : "Paramètres d’apparence et d’accessibilité",
"Misc accessibility options" : "Diverses options d'accessibilité",
"Enable blur background filter (may increase GPU load)" : "Activer le filtre flou de l'arrière-plan (peut augmenter la charge du GPU)",
@@ -115,11 +117,7 @@
"Reset to default" : "Restaurer les valeurs par défaut",
"Upload" : "Téléverser",
"Remove background image" : "Retirer l'image d'arrière-plan",
- "Color" : "Couleur",
"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." : "L'accès universel est très important pour nous. Nous suivons les standards du web et nous vérifions que tout est utilisable même sans souris et sans logiciel d'assistance comme les lecteurs d'écran. Nous visons à respecter les {guidelines}Règles pour l'accessibilité des contenus Web{linkend} 2.1 de niveau AA et même de niveau AAA avec le thème à fort contraste.",
- "Background" : "Arrière-plan",
- "Set a custom background" : "Définir un arrière-plan personnalisé",
- "Change color" : "Changer la couleur",
- "No background" : "Pas d'arrière-plan"
+ ". Unable to apply the setting." : ". Impossible d'appliquer le réglage."
},"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/theming/l10n/ga.js b/apps/theming/l10n/ga.js
index 473898f9381..f4048d65971 100644
--- a/apps/theming/l10n/ga.js
+++ b/apps/theming/l10n/ga.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Athshocraigh go réamhshocrú",
"Upload" : "Uaslódáil",
"Remove background image" : "Bain íomhá cúlra",
- "Color" : "Dath",
"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." : "Is tábhachtach go mór dúinn rochtain uilepháirtíoch a chur ar fáil. Leanaimid na caighdeáin ghréasáin agus déanaimid seiceáil chun gach rud a úsáid a dhéanamh gan luchóg, agus bogearraí chabhrach cosúil le léitheoirí scáileáin. Táimid ag tógáil leis an gcomhlíonadh {guidelines}Treoracha Rochtanaíochta Ábhar Gréasáin{linkend} 2.1 ar leibhéal AA, leis an téama ardshaincheaptha fiú ar leibhéal AAA.",
- ". Unable to apply the setting." : ". Ní féidir an socrú a chur i bhfeidhm.",
- "Background" : "Cúlra",
- "Set a custom background" : "Socraigh cúlra saincheaptha",
- "Change color" : "Athraigh dath",
- "No background" : "Gan cúlra"
+ ". Unable to apply the setting." : ". Ní féidir an socrú a chur i bhfeidhm."
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/theming/l10n/ga.json b/apps/theming/l10n/ga.json
index 87ad82af5f0..05cafbbe6d4 100644
--- a/apps/theming/l10n/ga.json
+++ b/apps/theming/l10n/ga.json
@@ -117,12 +117,7 @@
"Reset to default" : "Athshocraigh go réamhshocrú",
"Upload" : "Uaslódáil",
"Remove background image" : "Bain íomhá cúlra",
- "Color" : "Dath",
"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." : "Is tábhachtach go mór dúinn rochtain uilepháirtíoch a chur ar fáil. Leanaimid na caighdeáin ghréasáin agus déanaimid seiceáil chun gach rud a úsáid a dhéanamh gan luchóg, agus bogearraí chabhrach cosúil le léitheoirí scáileáin. Táimid ag tógáil leis an gcomhlíonadh {guidelines}Treoracha Rochtanaíochta Ábhar Gréasáin{linkend} 2.1 ar leibhéal AA, leis an téama ardshaincheaptha fiú ar leibhéal AAA.",
- ". Unable to apply the setting." : ". Ní féidir an socrú a chur i bhfeidhm.",
- "Background" : "Cúlra",
- "Set a custom background" : "Socraigh cúlra saincheaptha",
- "Change color" : "Athraigh dath",
- "No background" : "Gan cúlra"
+ ". Unable to apply the setting." : ". Ní féidir an socrú a chur i bhfeidhm."
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/gl.js b/apps/theming/l10n/gl.js
index 1dba821d5c7..1f9d5bd0019 100644
--- a/apps/theming/l10n/gl.js
+++ b/apps/theming/l10n/gl.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Restabelecer os valores predeterminados",
"Upload" : "Enviar",
"Remove background image" : "Retirar a imaxe de fondo",
- "Color" : "Cor",
"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." : "Para nós o acceso universal é moi importante. Seguimos os estándares web e comprobamos que todo poida ser utilizado sen rato e software de axuda como os lectores de pantalla. O noso obxectivo é ter cumprir ás {guidelines}Directrices de accesibilidade ao contido web{linkend} 2.1 a nivel AA, co tema de alto contraste incluso a nivel AAA.",
- ". Unable to apply the setting." : ". Non é posíbel aplicar o axuste.",
- "Background" : "Fondo",
- "Set a custom background" : "Definir un fondo personalizado",
- "Change color" : "Cambiar a cor",
- "No background" : "Sen fondo"
+ ". Unable to apply the setting." : ". Non é posíbel aplicar o axuste."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/gl.json b/apps/theming/l10n/gl.json
index c479b6ddc12..ce7508c9149 100644
--- a/apps/theming/l10n/gl.json
+++ b/apps/theming/l10n/gl.json
@@ -117,12 +117,7 @@
"Reset to default" : "Restabelecer os valores predeterminados",
"Upload" : "Enviar",
"Remove background image" : "Retirar a imaxe de fondo",
- "Color" : "Cor",
"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." : "Para nós o acceso universal é moi importante. Seguimos os estándares web e comprobamos que todo poida ser utilizado sen rato e software de axuda como os lectores de pantalla. O noso obxectivo é ter cumprir ás {guidelines}Directrices de accesibilidade ao contido web{linkend} 2.1 a nivel AA, co tema de alto contraste incluso a nivel AAA.",
- ". Unable to apply the setting." : ". Non é posíbel aplicar o axuste.",
- "Background" : "Fondo",
- "Set a custom background" : "Definir un fondo personalizado",
- "Change color" : "Cambiar a cor",
- "No background" : "Sen fondo"
+ ". Unable to apply the setting." : ". Non é posíbel aplicar o axuste."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/he.js b/apps/theming/l10n/he.js
deleted file mode 100644
index cb1011ee65c..00000000000
--- a/apps/theming/l10n/he.js
+++ /dev/null
@@ -1,62 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "The given name is too long" : "השם שסופק ארוך מדי",
- "The given web address is too long" : "הכתובת שסופקה ארוכה מדי",
- "The given web address is not a valid URL" : "הכתובת שסופקה אינה תקנית",
- "The given legal notice address is too long" : "כתובת ההצהרה המשפטית שסופקה ארוכה מדי",
- "The given legal notice address is not a valid URL" : "כתובת ההצהרה המשפטית שסופקה אינה תקינה",
- "The given privacy policy address is too long" : "כתובת מדיניות הפרטיות שסופקה ארוכה מדי",
- "The given privacy policy address is not a valid URL" : "כתובת מדיניות הפרטיות שסופקה אינה תקינה",
- "The given slogan is too long" : "שורת הכותרת שסופקה ארוכה מדי",
- "The given color is invalid" : "הצבע שסופק שגוי",
- "Saved" : "נשמר",
- "The file was uploaded" : "הקובץ הועלה",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "הקובץ שהועלה חורג מהנחיית ה־upload_max_filesize ב־php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "הקובץ שהועלה חורג מההנחיה MAX_FILE_SIZE שהוגדרה בטופס ה־HTML",
- "The file was only partially uploaded" : "הקובץ הועלה באופן חלקי",
- "No file was uploaded" : "לא הועלו קבצים",
- "Missing a temporary folder" : "חסרה תיקייה זמנית",
- "Could not write file to disk" : "לא ניתן לכתוב לכונן",
- "A PHP extension stopped the file upload" : "הרחבת PHP עצרה את העלאת הקובץ",
- "No file uploaded" : "לא הועלה קובץ",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "כבר נעשה שימוש בערכת עיצוב מותאמת אישית. יכול להיות שהגדרות יישומון ערכות העיצוב יידרסו.",
- "Theming" : "ערכות נושא",
- "Appearance and accessibility" : "תצוגה ונגישות",
- "Dark theme" : "ערכת עיצוב כהה",
- "Enable dark theme" : "הפעלת ערכת עיצוב כהה",
- "Dyslexia font" : "גופן דיסלקציה",
- "Enable dyslexia font" : "הפעלת גופן דיסלקציה",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic הוא גופן חופשי שתוכנן לפתור חלק משגיאות הקריאה הנפוצות שנגרמות עקב דיסלקציה.",
- "High contrast mode" : "מצב ניגודיות גבוהה",
- "Enable high contrast mode" : "הפעלת מצב ניגודיות גבוהה",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "מצב ניגודיות גבוהה מקלה על הניווט שלך. האיכות החזותית תיפגע אך השימוש יהיה ברור יותר.",
- "Legal notice" : "הצהרה משפטית",
- "Privacy policy" : "מדיניות פרטיות",
- "Adjust the Nextcloud theme" : "התאמת ערכת העיצוב של Nextcloud",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "עם ערכות עיצוב ניתן להתאים את המראה והתחושה של המערכת ושל הלקוחות הנתמכים שלך. אלו תהיינה גלויות לכל המשתמשים.",
- "Upload new logo" : "העלאת לוגו חדש",
- "Logo" : "לוגו",
- "Advanced options" : "אפשרויות מתקדמות",
- "Name" : "שם",
- "Web link" : "קישור",
- "a safe home for all your data" : "מקום בטוח לכל הנתונים שלך",
- "Slogan" : "שורת כותרת",
- "Legal notice link" : "קישור להצהרה המשפטית",
- "Privacy policy link" : "קישור למדיניות הפרטיות",
- "Header logo" : "לוגו כותרת",
- "Upload new header logo" : "העלאת לוגו כותרת",
- "Favicon" : "סמל כותרת",
- "Upload new favicon" : "העלאת סמל כותרת חדש",
- "User settings" : "הגדרות משתמש",
- "Keyboard shortcuts" : "קיצורי מקלדת",
- "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." : "גישה אוניברסלית מאוד חשובה לנו, אנו נצמדים לתקני אינטרנט ובודקים כדי לוודא שהכול שמיש גם ללא עכבר ומול תכניות סיוע כגון מקריאי מסך. אנו חותרים להיות תואמים ל{guidelines}הנחיות הנגישות לתוכן אינטרנט{linkend} 2.1 ברמת AA ועם ערכת הניגודיות הגבוהה אפילו ברמת AAA.",
- "Move down" : "להוריד למטה",
- "Plain background" : "רקע רגיל",
- "Reset to default" : "איפוס לבררת מחדל",
- "Upload" : "העלאה",
- "Remove background image" : "הסרת תמונת רקע",
- "Color" : "צבע",
- "Change color" : "החלפת צבע"
-},
-"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;");
diff --git a/apps/theming/l10n/he.json b/apps/theming/l10n/he.json
deleted file mode 100644
index 0f165b80246..00000000000
--- a/apps/theming/l10n/he.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{ "translations": {
- "The given name is too long" : "השם שסופק ארוך מדי",
- "The given web address is too long" : "הכתובת שסופקה ארוכה מדי",
- "The given web address is not a valid URL" : "הכתובת שסופקה אינה תקנית",
- "The given legal notice address is too long" : "כתובת ההצהרה המשפטית שסופקה ארוכה מדי",
- "The given legal notice address is not a valid URL" : "כתובת ההצהרה המשפטית שסופקה אינה תקינה",
- "The given privacy policy address is too long" : "כתובת מדיניות הפרטיות שסופקה ארוכה מדי",
- "The given privacy policy address is not a valid URL" : "כתובת מדיניות הפרטיות שסופקה אינה תקינה",
- "The given slogan is too long" : "שורת הכותרת שסופקה ארוכה מדי",
- "The given color is invalid" : "הצבע שסופק שגוי",
- "Saved" : "נשמר",
- "The file was uploaded" : "הקובץ הועלה",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "הקובץ שהועלה חורג מהנחיית ה־upload_max_filesize ב־php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "הקובץ שהועלה חורג מההנחיה MAX_FILE_SIZE שהוגדרה בטופס ה־HTML",
- "The file was only partially uploaded" : "הקובץ הועלה באופן חלקי",
- "No file was uploaded" : "לא הועלו קבצים",
- "Missing a temporary folder" : "חסרה תיקייה זמנית",
- "Could not write file to disk" : "לא ניתן לכתוב לכונן",
- "A PHP extension stopped the file upload" : "הרחבת PHP עצרה את העלאת הקובץ",
- "No file uploaded" : "לא הועלה קובץ",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "כבר נעשה שימוש בערכת עיצוב מותאמת אישית. יכול להיות שהגדרות יישומון ערכות העיצוב יידרסו.",
- "Theming" : "ערכות נושא",
- "Appearance and accessibility" : "תצוגה ונגישות",
- "Dark theme" : "ערכת עיצוב כהה",
- "Enable dark theme" : "הפעלת ערכת עיצוב כהה",
- "Dyslexia font" : "גופן דיסלקציה",
- "Enable dyslexia font" : "הפעלת גופן דיסלקציה",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic הוא גופן חופשי שתוכנן לפתור חלק משגיאות הקריאה הנפוצות שנגרמות עקב דיסלקציה.",
- "High contrast mode" : "מצב ניגודיות גבוהה",
- "Enable high contrast mode" : "הפעלת מצב ניגודיות גבוהה",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "מצב ניגודיות גבוהה מקלה על הניווט שלך. האיכות החזותית תיפגע אך השימוש יהיה ברור יותר.",
- "Legal notice" : "הצהרה משפטית",
- "Privacy policy" : "מדיניות פרטיות",
- "Adjust the Nextcloud theme" : "התאמת ערכת העיצוב של Nextcloud",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "עם ערכות עיצוב ניתן להתאים את המראה והתחושה של המערכת ושל הלקוחות הנתמכים שלך. אלו תהיינה גלויות לכל המשתמשים.",
- "Upload new logo" : "העלאת לוגו חדש",
- "Logo" : "לוגו",
- "Advanced options" : "אפשרויות מתקדמות",
- "Name" : "שם",
- "Web link" : "קישור",
- "a safe home for all your data" : "מקום בטוח לכל הנתונים שלך",
- "Slogan" : "שורת כותרת",
- "Legal notice link" : "קישור להצהרה המשפטית",
- "Privacy policy link" : "קישור למדיניות הפרטיות",
- "Header logo" : "לוגו כותרת",
- "Upload new header logo" : "העלאת לוגו כותרת",
- "Favicon" : "סמל כותרת",
- "Upload new favicon" : "העלאת סמל כותרת חדש",
- "User settings" : "הגדרות משתמש",
- "Keyboard shortcuts" : "קיצורי מקלדת",
- "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." : "גישה אוניברסלית מאוד חשובה לנו, אנו נצמדים לתקני אינטרנט ובודקים כדי לוודא שהכול שמיש גם ללא עכבר ומול תכניות סיוע כגון מקריאי מסך. אנו חותרים להיות תואמים ל{guidelines}הנחיות הנגישות לתוכן אינטרנט{linkend} 2.1 ברמת AA ועם ערכת הניגודיות הגבוהה אפילו ברמת AAA.",
- "Move down" : "להוריד למטה",
- "Plain background" : "רקע רגיל",
- "Reset to default" : "איפוס לבררת מחדל",
- "Upload" : "העלאה",
- "Remove background image" : "הסרת תמונת רקע",
- "Color" : "צבע",
- "Change color" : "החלפת צבע"
-},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/hr.js b/apps/theming/l10n/hr.js
deleted file mode 100644
index 6b09f5418aa..00000000000
--- a/apps/theming/l10n/hr.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "The given name is too long" : "Naziv je predug",
- "The given web address is too long" : "Navedena adresa web-mjesta je preduga",
- "The given web address is not a valid URL" : "Navedena adresa web-mjesta nije važeći URL",
- "The given legal notice address is too long" : "Navedena adresa pravne obavijesti je preduga",
- "The given legal notice address is not a valid URL" : "Navedena adresa pravne obavijesti nije važeći URL",
- "The given privacy policy address is too long" : "Navedena adresa pravila o privatnosti je preduga",
- "The given privacy policy address is not a valid URL" : "Navedena adresa pravila o privatnosti nije važeći URL",
- "The given slogan is too long" : "Navedeni slogan je predug",
- "The given color is invalid" : "Navedena boja nije važeća",
- "Saved" : "Spremljeno",
- "The file was uploaded" : "Datoteka je otpremljena",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Otpremljena datoteka premašuje postavku upload_max_filesize u datoteci php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Otpremljena datoteka premašuje postavku MAX_FILE_SIZE koja je navedena u obrascu HTML-a",
- "The file was only partially uploaded" : "Datoteka je samo djelomično otpremljena",
- "No file was uploaded" : "Nije otpremljena nijedna datoteka",
- "Missing a temporary folder" : "Nedostaje privremena mapa",
- "Could not write file to disk" : "Nije moguće zapisati datoteku na disk",
- "A PHP extension stopped the file upload" : "Proširenje PHP-a zaustavilo je otpremanje datoteke",
- "No file uploaded" : "Nije otpremljena nijedna datoteka",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Već koristite prilagođenu temu. Te postavke mogu biti zamijenjene postavkama aplikacije za upravljanje temama.",
- "Theming" : "Upravljanje temama",
- "Dark theme" : "Tamna tema",
- "Enable dark theme" : "Omogući tamnu temu",
- "Dyslexia font" : "Font za osobe s disleksijom",
- "Enable dyslexia font" : "Omogući font za osobe s disleksijom",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic je besplatan font/izgled slova posebno osmišljen za ublažavanje nekih uobičajenih pogrešaka pri čitanju uzrokovanih disleksijom.",
- "High contrast mode" : "Način jakog kontrasta",
- "Enable high contrast mode" : "Omogući način jakog kontrasta",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Način jakog kontrasta olakšava navigaciju. Smanjuje vizualnu kvalitetu, ali povećava jasnoću prikaza.",
- "Legal notice" : "Pravna obavijest",
- "Privacy policy" : "Pravila o privatnosti",
- "Adjust the Nextcloud theme" : "Prilagodi temu Nextclouda",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Upravljanje temama omogućuje jednostavno prilagođavanje izgleda vaše instance i podržanih klijenata. To će biti vidljivo svim korisnicima.",
- "Upload new logo" : "Otpremi novi logotip",
- "Logo" : "Logotip",
- "Advanced options" : "Napredne opcije",
- "Name" : "Naziv",
- "Web link" : "Web poveznica",
- "a safe home for all your data" : "siguran dom za sve vaše podatke",
- "Slogan" : "Slogan",
- "Legal notice link" : "Poveznica na pravnu obavijest",
- "Privacy policy link" : "Poveznica na pravila o privatnosti",
- "Header logo" : "Logotip zaglavlja",
- "Upload new header logo" : "Otpremi novi logotip zaglavlja",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Otpremi novi favicon",
- "User settings" : "Korisničke postavke",
- "Keyboard shortcuts" : "Tipkovni prečaci",
- "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." : "Nama je vrlo važno osigurati univerzalan pristup. Pratimo sve internetske i mrežne standarde i provjeravamo je li sustav upotrebljiv bez miša i pomoćnog softvera, kao što je čitač zaslona. Naš je cilj postići sukladnost sa {guidelines}Smjernicama pristupačnosti web-sadržaja{linkend} 2.1 na razini AA s temom jakog kontrasta na razini AAA.",
- "Move up" : "Premjesti gore",
- "Move down" : "Premjesti dolje",
- "Plain background" : "Obična pozadina",
- "Reset to default" : "Vrati na zadanu postavku",
- "Upload" : "Otpremi",
- "Remove background image" : "Ukloni pozadinsku sliku",
- "Color" : "Boja",
- "Background" : "Pozadina",
- "Change color" : "Promijeni boju"
-},
-"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/theming/l10n/hr.json b/apps/theming/l10n/hr.json
deleted file mode 100644
index 0f2f865d89f..00000000000
--- a/apps/theming/l10n/hr.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given name is too long" : "Naziv je predug",
- "The given web address is too long" : "Navedena adresa web-mjesta je preduga",
- "The given web address is not a valid URL" : "Navedena adresa web-mjesta nije važeći URL",
- "The given legal notice address is too long" : "Navedena adresa pravne obavijesti je preduga",
- "The given legal notice address is not a valid URL" : "Navedena adresa pravne obavijesti nije važeći URL",
- "The given privacy policy address is too long" : "Navedena adresa pravila o privatnosti je preduga",
- "The given privacy policy address is not a valid URL" : "Navedena adresa pravila o privatnosti nije važeći URL",
- "The given slogan is too long" : "Navedeni slogan je predug",
- "The given color is invalid" : "Navedena boja nije važeća",
- "Saved" : "Spremljeno",
- "The file was uploaded" : "Datoteka je otpremljena",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Otpremljena datoteka premašuje postavku upload_max_filesize u datoteci php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Otpremljena datoteka premašuje postavku MAX_FILE_SIZE koja je navedena u obrascu HTML-a",
- "The file was only partially uploaded" : "Datoteka je samo djelomično otpremljena",
- "No file was uploaded" : "Nije otpremljena nijedna datoteka",
- "Missing a temporary folder" : "Nedostaje privremena mapa",
- "Could not write file to disk" : "Nije moguće zapisati datoteku na disk",
- "A PHP extension stopped the file upload" : "Proširenje PHP-a zaustavilo je otpremanje datoteke",
- "No file uploaded" : "Nije otpremljena nijedna datoteka",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Već koristite prilagođenu temu. Te postavke mogu biti zamijenjene postavkama aplikacije za upravljanje temama.",
- "Theming" : "Upravljanje temama",
- "Dark theme" : "Tamna tema",
- "Enable dark theme" : "Omogući tamnu temu",
- "Dyslexia font" : "Font za osobe s disleksijom",
- "Enable dyslexia font" : "Omogući font za osobe s disleksijom",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic je besplatan font/izgled slova posebno osmišljen za ublažavanje nekih uobičajenih pogrešaka pri čitanju uzrokovanih disleksijom.",
- "High contrast mode" : "Način jakog kontrasta",
- "Enable high contrast mode" : "Omogući način jakog kontrasta",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Način jakog kontrasta olakšava navigaciju. Smanjuje vizualnu kvalitetu, ali povećava jasnoću prikaza.",
- "Legal notice" : "Pravna obavijest",
- "Privacy policy" : "Pravila o privatnosti",
- "Adjust the Nextcloud theme" : "Prilagodi temu Nextclouda",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Upravljanje temama omogućuje jednostavno prilagođavanje izgleda vaše instance i podržanih klijenata. To će biti vidljivo svim korisnicima.",
- "Upload new logo" : "Otpremi novi logotip",
- "Logo" : "Logotip",
- "Advanced options" : "Napredne opcije",
- "Name" : "Naziv",
- "Web link" : "Web poveznica",
- "a safe home for all your data" : "siguran dom za sve vaše podatke",
- "Slogan" : "Slogan",
- "Legal notice link" : "Poveznica na pravnu obavijest",
- "Privacy policy link" : "Poveznica na pravila o privatnosti",
- "Header logo" : "Logotip zaglavlja",
- "Upload new header logo" : "Otpremi novi logotip zaglavlja",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Otpremi novi favicon",
- "User settings" : "Korisničke postavke",
- "Keyboard shortcuts" : "Tipkovni prečaci",
- "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." : "Nama je vrlo važno osigurati univerzalan pristup. Pratimo sve internetske i mrežne standarde i provjeravamo je li sustav upotrebljiv bez miša i pomoćnog softvera, kao što je čitač zaslona. Naš je cilj postići sukladnost sa {guidelines}Smjernicama pristupačnosti web-sadržaja{linkend} 2.1 na razini AA s temom jakog kontrasta na razini AAA.",
- "Move up" : "Premjesti gore",
- "Move down" : "Premjesti dolje",
- "Plain background" : "Obična pozadina",
- "Reset to default" : "Vrati na zadanu postavku",
- "Upload" : "Otpremi",
- "Remove background image" : "Ukloni pozadinsku sliku",
- "Color" : "Boja",
- "Background" : "Pozadina",
- "Change color" : "Promijeni boju"
-},"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/theming/l10n/hu.js b/apps/theming/l10n/hu.js
index 8a6b5c40382..3b6ad529091 100644
--- a/apps/theming/l10n/hu.js
+++ b/apps/theming/l10n/hu.js
@@ -29,7 +29,7 @@ OC.L10N.register(
"Appearance and accessibility" : "Megjelenés és akadálymentesítés",
"PHP Imagick module" : "PHP Imagick modul",
"The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Az „imagick” PHP-modul nem engedélyezett, de a témázó alkalmazás igen. A webhelyikonok előállításához telepítenie és engedélyeznie kell ezt a modult.",
- "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Az \"imagick\" PHP modul ebben az esetben nem támogatja az SVG-t. A jobb kompatibilitás érdekében ajánlott telepíteni.",
+ "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Az „imagick” PHP-modul ebben az esetben nem támogatja az SVG-t. A jobb kompatibilitás érdekében ajánlott telepíteni.",
"Dark theme with high contrast mode" : "Sötét téma magas kontrasztú móddal",
"Enable dark high contrast mode" : "Sötét, magas kontrasztú mód engedélyezése",
"Similar to the high contrast mode, but with dark colours." : "Hasonló a magas kontrasztú módhoz, de sötét színekkel.",
@@ -78,9 +78,9 @@ OC.L10N.register(
"If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Ha problémákat tapasztal, jelentse a {issuetracker}hibakövetőnkben{linkend}. És ha segíteni szeretne, csatlakozzon a {designteam}dizájn csapatunkhoz{linkend}!",
"Appearance and accessibility settings" : "Megjelenési és akadálymentesítési beállítások",
"Misc accessibility options" : "Egyéb kisegítő lehetőségek",
- "Enable blur background filter (may increase GPU load)" : "Elmosódott háttérszűrő engedélyezése (megnövelheti a GPU terhelést)",
+ "Enable blur background filter (may increase GPU load)" : "Háttérelmosó szűrő engedélyezése (megnövelheti a GPU terhelést)",
"Customization has been disabled by your administrator" : "A testreszabást letiltotta a rendszergazda",
- "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "A fontos elemek kiemeléséhez állítson be elsődleges színt. Az olyan elemek színe, mint az elsődleges gombok, kissé eltérhet, ahogyan a kisegítő lehetőségekhez igazodik.",
+ "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Elsődleges szín beállítása a fontos elemek kiemeléséhez. Az olyan elemek színe, mint az elsődleges gombok, kissé eltérhetnek, ahogyan az akadálymentesítési követelményekhez igazodnak.",
"Background and color" : "Háttér és szín",
"The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "A háttér beállítható az alapértelmezett készletből származó képre, egyéni feltöltött képre vagy sima színre.",
"Keyboard shortcuts" : "Gyorsbillentyűk",
@@ -117,11 +117,6 @@ OC.L10N.register(
"Reset to default" : "Visszaállítás alapértelmezettre",
"Upload" : "Feltöltés",
"Remove background image" : "Háttérkép eltávolítása",
- "Color" : "Szín",
- "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." : "Az akadálymentesítés fontos számunka. A webes szabványokat követjük, és ellenőrizzük, hogy minden használható egér nélkül, illetve akadálymentesítési technológiákkal, például képernyőolvasókkal. Arra törekszünk, hogy a {guidelines}Webes tartalomra vonatkozó akadálymentesítési irányelvek{linkend} 2.1-es változatának AA szinten, a magas kontrasztú témával pedig AAA szinten megfeleljünk.",
- "Background" : "Háttér",
- "Set a custom background" : "Egyéni háttér beállítása",
- "Change color" : "Szín módosítása",
- "No background" : "Nincs háttér"
+ "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." : "Az akadálymentesítés fontos számunka. A webes szabványokat követjük, és ellenőrizzük, hogy minden használható egér nélkül, illetve akadálymentesítési technológiákkal, például képernyőolvasókkal. Arra törekszünk, hogy a {guidelines}Webes tartalomra vonatkozó akadálymentesítési irányelvek{linkend} 2.1-es változatának AA szinten, a magas kontrasztú témával pedig AAA szinten megfeleljünk."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/hu.json b/apps/theming/l10n/hu.json
index 38e1eb9b270..92963ccc3b2 100644
--- a/apps/theming/l10n/hu.json
+++ b/apps/theming/l10n/hu.json
@@ -27,7 +27,7 @@
"Appearance and accessibility" : "Megjelenés és akadálymentesítés",
"PHP Imagick module" : "PHP Imagick modul",
"The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Az „imagick” PHP-modul nem engedélyezett, de a témázó alkalmazás igen. A webhelyikonok előállításához telepítenie és engedélyeznie kell ezt a modult.",
- "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Az \"imagick\" PHP modul ebben az esetben nem támogatja az SVG-t. A jobb kompatibilitás érdekében ajánlott telepíteni.",
+ "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Az „imagick” PHP-modul ebben az esetben nem támogatja az SVG-t. A jobb kompatibilitás érdekében ajánlott telepíteni.",
"Dark theme with high contrast mode" : "Sötét téma magas kontrasztú móddal",
"Enable dark high contrast mode" : "Sötét, magas kontrasztú mód engedélyezése",
"Similar to the high contrast mode, but with dark colours." : "Hasonló a magas kontrasztú módhoz, de sötét színekkel.",
@@ -76,9 +76,9 @@
"If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Ha problémákat tapasztal, jelentse a {issuetracker}hibakövetőnkben{linkend}. És ha segíteni szeretne, csatlakozzon a {designteam}dizájn csapatunkhoz{linkend}!",
"Appearance and accessibility settings" : "Megjelenési és akadálymentesítési beállítások",
"Misc accessibility options" : "Egyéb kisegítő lehetőségek",
- "Enable blur background filter (may increase GPU load)" : "Elmosódott háttérszűrő engedélyezése (megnövelheti a GPU terhelést)",
+ "Enable blur background filter (may increase GPU load)" : "Háttérelmosó szűrő engedélyezése (megnövelheti a GPU terhelést)",
"Customization has been disabled by your administrator" : "A testreszabást letiltotta a rendszergazda",
- "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "A fontos elemek kiemeléséhez állítson be elsődleges színt. Az olyan elemek színe, mint az elsődleges gombok, kissé eltérhet, ahogyan a kisegítő lehetőségekhez igazodik.",
+ "Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Elsődleges szín beállítása a fontos elemek kiemeléséhez. Az olyan elemek színe, mint az elsődleges gombok, kissé eltérhetnek, ahogyan az akadálymentesítési követelményekhez igazodnak.",
"Background and color" : "Háttér és szín",
"The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "A háttér beállítható az alapértelmezett készletből származó képre, egyéni feltöltött képre vagy sima színre.",
"Keyboard shortcuts" : "Gyorsbillentyűk",
@@ -115,11 +115,6 @@
"Reset to default" : "Visszaállítás alapértelmezettre",
"Upload" : "Feltöltés",
"Remove background image" : "Háttérkép eltávolítása",
- "Color" : "Szín",
- "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." : "Az akadálymentesítés fontos számunka. A webes szabványokat követjük, és ellenőrizzük, hogy minden használható egér nélkül, illetve akadálymentesítési technológiákkal, például képernyőolvasókkal. Arra törekszünk, hogy a {guidelines}Webes tartalomra vonatkozó akadálymentesítési irányelvek{linkend} 2.1-es változatának AA szinten, a magas kontrasztú témával pedig AAA szinten megfeleljünk.",
- "Background" : "Háttér",
- "Set a custom background" : "Egyéni háttér beállítása",
- "Change color" : "Szín módosítása",
- "No background" : "Nincs háttér"
+ "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." : "Az akadálymentesítés fontos számunka. A webes szabványokat követjük, és ellenőrizzük, hogy minden használható egér nélkül, illetve akadálymentesítési technológiákkal, például képernyőolvasókkal. Arra törekszünk, hogy a {guidelines}Webes tartalomra vonatkozó akadálymentesítési irányelvek{linkend} 2.1-es változatának AA szinten, a magas kontrasztú témával pedig AAA szinten megfeleljünk."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/id.js b/apps/theming/l10n/id.js
deleted file mode 100644
index af38885a718..00000000000
--- a/apps/theming/l10n/id.js
+++ /dev/null
@@ -1,41 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Memuat pratinjau",
- "Admin" : "Admin",
- "Saved" : "Disimpan",
- "a safe home for all your data" : "rumah yang aman untuk semua datamu",
- "The given name is too long" : "Pemberian nama terlalu panjang",
- "The given web address is too long" : "Pemberian alamat web terlalu panjang",
- "The given slogan is too long" : "Pemberian slogan terlalu panjang",
- "The file was uploaded" : "Berkas terunggah",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Berkas terunggah melampau parameter upload_max_filesize pada php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Berkas yang diunggah melampaui direktif MAX_FILE_SIZE yang ditentukan dalam formulir HTML.",
- "The file was only partially uploaded" : "Berkas hanya sebagian terunggah",
- "No file was uploaded" : "Tidak ada berkas yang diunggah",
- "Missing a temporary folder" : "Folder sementara tidak ada",
- "Could not write file to disk" : "Tidak dapat menulis berkas ke disk",
- "A PHP extension stopped the file upload" : "Ekstensi PHP menghentikan proses unggah berkas",
- "No file uploaded" : "Tidak ada file diunggah",
- "Theming" : "Tema",
- "Dark theme" : "Tema gelap",
- "Enable dark theme" : "Aktifkan tema gelap",
- "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tema gelap dapat membuat mata anda tidak cepat lelah dengan mengurangi tingkat kecerahan dan banyaknya cahaya. Fitur ini masih dalam tahap pengembangan, tolong laporkan masalah yang anda temui.",
- "Dyslexia font" : "Font disleksia",
- "Enable dyslexia font" : "Aktifkan fon disleksia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic adalah typeface/font gratis yang didesain untuk mengurangi kesalahan membaca oleh penderita disleksia",
- "High contrast mode" : "Mode kontras tinggi",
- "Enable high contrast mode" : "Aktifkan mode kontras tinggi",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Mode kontras tinggi untuk memudahkan navigasi Anda. Kualitas visual akan berkurang tetapi kejelasan akan meningkat.",
- "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." : "Akses universal sangat penting bagi kami. Kami mengikuti standar web dan memeriksa agar semua dapat digunakan, bahkan saat tanpa menggunakan tetikus, dan lainnya seperti perangkat lunak pembantu pembaca layar. Kami bertujuan untuk mematuhi {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 pada tingkat AA, dengan tema kontras tinggi bahkan pada tingkat AAA.",
- "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Jika Anda menemukan isu, jangan sungkan untuk melaporkan pada {issuetracker}pelacakan isu kami{linkend}. Silakan gabung dan berkontribusi dengan {designteam}tim desain kami{linkend} jika Anda ingin!",
- "Open documentation" : "Buka dokumentasi",
- "Name" : "Nama",
- "Slogan" : "Slogan",
- "Color" : "Warna",
- "Logo" : "Logo",
- "Upload new logo" : "Unggah Logo baru",
- "Login image" : "Gambar ketika masuk",
- "Advanced options" : "Opsi lanjutan"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/theming/l10n/id.json b/apps/theming/l10n/id.json
deleted file mode 100644
index 559a76df7eb..00000000000
--- a/apps/theming/l10n/id.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Memuat pratinjau",
- "Admin" : "Admin",
- "Saved" : "Disimpan",
- "a safe home for all your data" : "rumah yang aman untuk semua datamu",
- "The given name is too long" : "Pemberian nama terlalu panjang",
- "The given web address is too long" : "Pemberian alamat web terlalu panjang",
- "The given slogan is too long" : "Pemberian slogan terlalu panjang",
- "The file was uploaded" : "Berkas terunggah",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Berkas terunggah melampau parameter upload_max_filesize pada php.ini",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Berkas yang diunggah melampaui direktif MAX_FILE_SIZE yang ditentukan dalam formulir HTML.",
- "The file was only partially uploaded" : "Berkas hanya sebagian terunggah",
- "No file was uploaded" : "Tidak ada berkas yang diunggah",
- "Missing a temporary folder" : "Folder sementara tidak ada",
- "Could not write file to disk" : "Tidak dapat menulis berkas ke disk",
- "A PHP extension stopped the file upload" : "Ekstensi PHP menghentikan proses unggah berkas",
- "No file uploaded" : "Tidak ada file diunggah",
- "Theming" : "Tema",
- "Dark theme" : "Tema gelap",
- "Enable dark theme" : "Aktifkan tema gelap",
- "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tema gelap dapat membuat mata anda tidak cepat lelah dengan mengurangi tingkat kecerahan dan banyaknya cahaya. Fitur ini masih dalam tahap pengembangan, tolong laporkan masalah yang anda temui.",
- "Dyslexia font" : "Font disleksia",
- "Enable dyslexia font" : "Aktifkan fon disleksia",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic adalah typeface/font gratis yang didesain untuk mengurangi kesalahan membaca oleh penderita disleksia",
- "High contrast mode" : "Mode kontras tinggi",
- "Enable high contrast mode" : "Aktifkan mode kontras tinggi",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Mode kontras tinggi untuk memudahkan navigasi Anda. Kualitas visual akan berkurang tetapi kejelasan akan meningkat.",
- "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." : "Akses universal sangat penting bagi kami. Kami mengikuti standar web dan memeriksa agar semua dapat digunakan, bahkan saat tanpa menggunakan tetikus, dan lainnya seperti perangkat lunak pembantu pembaca layar. Kami bertujuan untuk mematuhi {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 pada tingkat AA, dengan tema kontras tinggi bahkan pada tingkat AAA.",
- "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Jika Anda menemukan isu, jangan sungkan untuk melaporkan pada {issuetracker}pelacakan isu kami{linkend}. Silakan gabung dan berkontribusi dengan {designteam}tim desain kami{linkend} jika Anda ingin!",
- "Open documentation" : "Buka dokumentasi",
- "Name" : "Nama",
- "Slogan" : "Slogan",
- "Color" : "Warna",
- "Logo" : "Logo",
- "Upload new logo" : "Unggah Logo baru",
- "Login image" : "Gambar ketika masuk",
- "Advanced options" : "Opsi lanjutan"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/is.js b/apps/theming/l10n/is.js
index c513da10fae..d21e6d86b24 100644
--- a/apps/theming/l10n/is.js
+++ b/apps/theming/l10n/is.js
@@ -106,11 +106,6 @@ OC.L10N.register(
"Reset to default" : "Endurstilla á sjálfgefið",
"Upload" : "Senda inn",
"Remove background image" : "Fjarlægja bakgrunnsmynd",
- "Color" : "Litur",
- "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." : "Aðgengi fyrir alla er okkur mikilvægt. Við fylgjum vefstöðlum oggöngum úr skugga um að allt sé nothæft án þess að nota tölvumús, auk þess að hjálpartæki á borð við skjálesara virki. Við miðum að samhæfni við {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 á stigi AA, og höfum meira að segja háskerpuþemað miðað við stig AAA.",
- "Background" : "Background",
- "Set a custom background" : "Setja sérsniðinn bakgrunn",
- "Change color" : "Breyta lit",
- "No background" : "Enginn bakgrunnur"
+ "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." : "Aðgengi fyrir alla er okkur mikilvægt. Við fylgjum vefstöðlum oggöngum úr skugga um að allt sé nothæft án þess að nota tölvumús, auk þess að hjálpartæki á borð við skjálesara virki. Við miðum að samhæfni við {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 á stigi AA, og höfum meira að segja háskerpuþemað miðað við stig AAA."
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/theming/l10n/is.json b/apps/theming/l10n/is.json
index 3501fdacd09..74876777d65 100644
--- a/apps/theming/l10n/is.json
+++ b/apps/theming/l10n/is.json
@@ -104,11 +104,6 @@
"Reset to default" : "Endurstilla á sjálfgefið",
"Upload" : "Senda inn",
"Remove background image" : "Fjarlægja bakgrunnsmynd",
- "Color" : "Litur",
- "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." : "Aðgengi fyrir alla er okkur mikilvægt. Við fylgjum vefstöðlum oggöngum úr skugga um að allt sé nothæft án þess að nota tölvumús, auk þess að hjálpartæki á borð við skjálesara virki. Við miðum að samhæfni við {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 á stigi AA, og höfum meira að segja háskerpuþemað miðað við stig AAA.",
- "Background" : "Background",
- "Set a custom background" : "Setja sérsniðinn bakgrunn",
- "Change color" : "Breyta lit",
- "No background" : "Enginn bakgrunnur"
+ "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." : "Aðgengi fyrir alla er okkur mikilvægt. Við fylgjum vefstöðlum oggöngum úr skugga um að allt sé nothæft án þess að nota tölvumús, auk þess að hjálpartæki á borð við skjálesara virki. Við miðum að samhæfni við {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 á stigi AA, og höfum meira að segja háskerpuþemað miðað við stig AAA."
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/it.js b/apps/theming/l10n/it.js
index acaa87d3f70..c80ae5afad3 100644
--- a/apps/theming/l10n/it.js
+++ b/apps/theming/l10n/it.js
@@ -117,12 +117,7 @@ OC.L10N.register(
"Reset to default" : "Ripristina valori predefiniti",
"Upload" : "Carica",
"Remove background image" : "Rimuovi immagine di sfondo",
- "Color" : "Colore",
"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." : "L'accesso universale è molto importante per noi. Seguiamo gli standard web e cerchiamo di rendere tutto utilizzabile anche senza mouse, e programmi di assistenza come i lettori dello schermo. Il nostro obiettivo è la compatibilità con la {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 a livello AA, con il tema ad alto contrasto anche a livello AAA. ",
- ". Unable to apply the setting." : "Impossiblie applicare l'impostazione.",
- "Background" : "Sfondo",
- "Set a custom background" : "Imposta uno sfondo personalizzato",
- "Change color" : "Cambia colore",
- "No background" : "Nessuno sfondo"
+ ". Unable to apply the setting." : "Impossiblie applicare l'impostazione."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/it.json b/apps/theming/l10n/it.json
index 9861dbc4920..1f8e838ca5f 100644
--- a/apps/theming/l10n/it.json
+++ b/apps/theming/l10n/it.json
@@ -115,12 +115,7 @@
"Reset to default" : "Ripristina valori predefiniti",
"Upload" : "Carica",
"Remove background image" : "Rimuovi immagine di sfondo",
- "Color" : "Colore",
"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." : "L'accesso universale è molto importante per noi. Seguiamo gli standard web e cerchiamo di rendere tutto utilizzabile anche senza mouse, e programmi di assistenza come i lettori dello schermo. Il nostro obiettivo è la compatibilità con la {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 a livello AA, con il tema ad alto contrasto anche a livello AAA. ",
- ". Unable to apply the setting." : "Impossiblie applicare l'impostazione.",
- "Background" : "Sfondo",
- "Set a custom background" : "Imposta uno sfondo personalizzato",
- "Change color" : "Cambia colore",
- "No background" : "Nessuno sfondo"
+ ". Unable to apply the setting." : "Impossiblie applicare l'impostazione."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/ja.js b/apps/theming/l10n/ja.js
index 5d01f161793..c995ea41a0a 100644
--- a/apps/theming/l10n/ja.js
+++ b/apps/theming/l10n/ja.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "デフォルトに戻す",
"Upload" : "アップロード",
"Remove background image" : "背景画像を削除",
- "Color" : "色",
"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." : "ユニバーサルアクセスは私たちにとって非常に重要なことです。そのためウェブ標準に従い、マウスやスクリーンリーダーなどの支援ソフトウェアが無くても全ての機能をご利用いただけるようにチェックしています。AAAレベルのハイコントラストのテーマを採用することで、{guidelines} Webコンテンツアクセシビリティガイドライン2.1 {linkend} のAAAレベルに準拠することを目指しています。",
- ". Unable to apply the setting." : "設定を適用できません。",
- "Background" : "背景",
- "Set a custom background" : "背景を設定",
- "Change color" : "色を変える",
- "No background" : "背景なし"
+ ". Unable to apply the setting." : "設定を適用できません。"
},
"nplurals=1; plural=0;");
diff --git a/apps/theming/l10n/ja.json b/apps/theming/l10n/ja.json
index bd84b276857..1ea09903abe 100644
--- a/apps/theming/l10n/ja.json
+++ b/apps/theming/l10n/ja.json
@@ -117,12 +117,7 @@
"Reset to default" : "デフォルトに戻す",
"Upload" : "アップロード",
"Remove background image" : "背景画像を削除",
- "Color" : "色",
"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." : "ユニバーサルアクセスは私たちにとって非常に重要なことです。そのためウェブ標準に従い、マウスやスクリーンリーダーなどの支援ソフトウェアが無くても全ての機能をご利用いただけるようにチェックしています。AAAレベルのハイコントラストのテーマを採用することで、{guidelines} Webコンテンツアクセシビリティガイドライン2.1 {linkend} のAAAレベルに準拠することを目指しています。",
- ". Unable to apply the setting." : "設定を適用できません。",
- "Background" : "背景",
- "Set a custom background" : "背景を設定",
- "Change color" : "色を変える",
- "No background" : "背景なし"
+ ". Unable to apply the setting." : "設定を適用できません。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/ka.js b/apps/theming/l10n/ka.js
index ba1953cacb9..88febe7c7fa 100644
--- a/apps/theming/l10n/ka.js
+++ b/apps/theming/l10n/ka.js
@@ -102,11 +102,6 @@ OC.L10N.register(
"Reset to default" : "Reset to default",
"Upload" : "Upload",
"Remove background image" : "Remove background image",
- "Color" : "Color",
- "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." : "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.",
- "Background" : "Background",
- "Set a custom background" : "Set a custom background",
- "Change color" : "Change color",
- "No background" : "No background"
+ "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." : "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."
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/theming/l10n/ka.json b/apps/theming/l10n/ka.json
index b140ae62462..75e4581c082 100644
--- a/apps/theming/l10n/ka.json
+++ b/apps/theming/l10n/ka.json
@@ -100,11 +100,6 @@
"Reset to default" : "Reset to default",
"Upload" : "Upload",
"Remove background image" : "Remove background image",
- "Color" : "Color",
- "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." : "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.",
- "Background" : "Background",
- "Set a custom background" : "Set a custom background",
- "Change color" : "Change color",
- "No background" : "No background"
+ "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." : "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."
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/ka_GE.js b/apps/theming/l10n/ka_GE.js
deleted file mode 100644
index e6f5f3906dd..00000000000
--- a/apps/theming/l10n/ka_GE.js
+++ /dev/null
@@ -1,46 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "პრევიუს ჩატვირთვა…",
- "Admin" : "ადმინისტრაცია",
- "Saved" : "შენახულია",
- "a safe home for all your data" : "უსაფრთხო სახლი მთელი თქვენი მონაცემებისათვის",
- "Name cannot be empty" : "სახელი ვერ იქნება ცარიელი",
- "The given name is too long" : "მოცემული სახელი ძალიან გრძელია",
- "The given web address is too long" : "მოცემული ვებ-მისამართი ძალიან გრძელია",
- "The given slogan is too long" : "მოცემული ლოზუნგი ძალიან გრძელია",
- "The given color is invalid" : "მოცემული ფერი არასწორია",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "ატვირთული ფაილი აჭარბებს php.ini-ში დაყენებულ upload_max_filesize დირექტივას",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ატვირთული ფაილი აჭარბებს HTML ფორამაში მითითებულ MAX_FILE_SIZE დირექტივას",
- "No file was uploaded" : "ფაილი არ აიტვირთა",
- "Missing a temporary folder" : "დროებითი დირექტორია არ არსებობს",
- "No file uploaded" : "ფაილი არ იქნა ატვირთული",
- "Theming" : "ვიზუალური თემები",
- "Dark theme" : "მუქი თემა",
- "Enable dark theme" : "მუქი თემის გააქტიურება",
- "Dyslexia font" : "შრიფტი Dyslexia ",
- "Enable dyslexia font" : "ჩართე დისლექსიის შრიფტი",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic-ი უფასო გარნიტურა/შრიფტია, რომელიც შექმნილია დისლექსიით გამოწვეული წაკითხვის ზოგიერთი პრობლემის აღმოსაფხვრელად.",
- "High contrast mode" : "მაღალ-კონტრასტული რეჟიმი",
- "Enable high contrast mode" : "ჩართე მაღალ-კონტრასტული რეჟიმი",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "მაღალ-კონტრასტული რეჟიმი თქვენი ნავიგაციის გასამარტივებლად. ვიზუალური ხარისხი შემცირდება, თუმცა, გაიზრდება სიმკვეთრე. ",
- "Keyboard shortcuts" : "კლავიატურის კომბინაციები",
- "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." : "უნივერსალური წვდომა ჩვენთვის ძალზედ მნივნელოვანია. ჩვენ მივსდევთ ინტერნეტის სტანდარტებს და ვცდილობთ გავხადოთ ყველაფერი ხელმისაწვდომი მაუსის და დამხამრე პროგრამული უზრუნველყოფის გარეშე, ისეთის როგორიცაა ეკრანის წამკითხველი. ჩვენი მიზანია შესაბამისობაში ვიყოთ {guidelines}ქსელის შიგთავსის ხელმისაწვდომობის სახელმძღვანელო{linkend} 2.1-თან AA დონეზე, ხოლო მაღალ-კონტრასტული თემით AAA დონეზეც კი.",
- "Pick from Files" : "აირჩიე ფაილებიდან",
- "Plain background" : "ცარიელი ფონი",
- "Insert from {productName}" : "შეავსეთ {productName}-დან",
- "Open documentation" : "ღია დოკუმენტაცია",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "ვიზუალური თემები საშუალებას გაძლევთ თქვენს ინსტანციას და მხარდაჭერილ კლიენტებს მარტივად გაუწიოთ გამოსახულებას პერსონალიზაცია. ეს გამოჩნდება ყველა მომხმარებელთან.",
- "Name" : "სახელი",
- "Reset to default" : "საწყის მდგომარეობაში დაბრუნება",
- "Slogan" : "ლოზუნგი",
- "Color" : "ფერი",
- "Logo" : "ლოგო",
- "Upload new logo" : "ახალი ლოგოს ატვირთვა",
- "Login image" : "ლოგინის სურათი",
- "Upload new login background" : "ლოგინის ახალი ფონის ატვირთვა",
- "Remove background image" : "ფონური სურათის მოშორება",
- "Advanced options" : "დამატებითი ოპციონები",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "SVG სურთების მხარდაჭერის მქონე Imagemagick PHP გაფართოების დაყენება ფავიკონებს ატვირთული ლოგოსა და ფერის მიხევით დააგენერირებს ავტომატურად."
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/theming/l10n/ka_GE.json b/apps/theming/l10n/ka_GE.json
deleted file mode 100644
index ef942d720c6..00000000000
--- a/apps/theming/l10n/ka_GE.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{ "translations": {
- "Loading preview…" : "პრევიუს ჩატვირთვა…",
- "Admin" : "ადმინისტრაცია",
- "Saved" : "შენახულია",
- "a safe home for all your data" : "უსაფრთხო სახლი მთელი თქვენი მონაცემებისათვის",
- "Name cannot be empty" : "სახელი ვერ იქნება ცარიელი",
- "The given name is too long" : "მოცემული სახელი ძალიან გრძელია",
- "The given web address is too long" : "მოცემული ვებ-მისამართი ძალიან გრძელია",
- "The given slogan is too long" : "მოცემული ლოზუნგი ძალიან გრძელია",
- "The given color is invalid" : "მოცემული ფერი არასწორია",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "ატვირთული ფაილი აჭარბებს php.ini-ში დაყენებულ upload_max_filesize დირექტივას",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ატვირთული ფაილი აჭარბებს HTML ფორამაში მითითებულ MAX_FILE_SIZE დირექტივას",
- "No file was uploaded" : "ფაილი არ აიტვირთა",
- "Missing a temporary folder" : "დროებითი დირექტორია არ არსებობს",
- "No file uploaded" : "ფაილი არ იქნა ატვირთული",
- "Theming" : "ვიზუალური თემები",
- "Dark theme" : "მუქი თემა",
- "Enable dark theme" : "მუქი თემის გააქტიურება",
- "Dyslexia font" : "შრიფტი Dyslexia ",
- "Enable dyslexia font" : "ჩართე დისლექსიის შრიფტი",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic-ი უფასო გარნიტურა/შრიფტია, რომელიც შექმნილია დისლექსიით გამოწვეული წაკითხვის ზოგიერთი პრობლემის აღმოსაფხვრელად.",
- "High contrast mode" : "მაღალ-კონტრასტული რეჟიმი",
- "Enable high contrast mode" : "ჩართე მაღალ-კონტრასტული რეჟიმი",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "მაღალ-კონტრასტული რეჟიმი თქვენი ნავიგაციის გასამარტივებლად. ვიზუალური ხარისხი შემცირდება, თუმცა, გაიზრდება სიმკვეთრე. ",
- "Keyboard shortcuts" : "კლავიატურის კომბინაციები",
- "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." : "უნივერსალური წვდომა ჩვენთვის ძალზედ მნივნელოვანია. ჩვენ მივსდევთ ინტერნეტის სტანდარტებს და ვცდილობთ გავხადოთ ყველაფერი ხელმისაწვდომი მაუსის და დამხამრე პროგრამული უზრუნველყოფის გარეშე, ისეთის როგორიცაა ეკრანის წამკითხველი. ჩვენი მიზანია შესაბამისობაში ვიყოთ {guidelines}ქსელის შიგთავსის ხელმისაწვდომობის სახელმძღვანელო{linkend} 2.1-თან AA დონეზე, ხოლო მაღალ-კონტრასტული თემით AAA დონეზეც კი.",
- "Pick from Files" : "აირჩიე ფაილებიდან",
- "Plain background" : "ცარიელი ფონი",
- "Insert from {productName}" : "შეავსეთ {productName}-დან",
- "Open documentation" : "ღია დოკუმენტაცია",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "ვიზუალური თემები საშუალებას გაძლევთ თქვენს ინსტანციას და მხარდაჭერილ კლიენტებს მარტივად გაუწიოთ გამოსახულებას პერსონალიზაცია. ეს გამოჩნდება ყველა მომხმარებელთან.",
- "Name" : "სახელი",
- "Reset to default" : "საწყის მდგომარეობაში დაბრუნება",
- "Slogan" : "ლოზუნგი",
- "Color" : "ფერი",
- "Logo" : "ლოგო",
- "Upload new logo" : "ახალი ლოგოს ატვირთვა",
- "Login image" : "ლოგინის სურათი",
- "Upload new login background" : "ლოგინის ახალი ფონის ატვირთვა",
- "Remove background image" : "ფონური სურათის მოშორება",
- "Advanced options" : "დამატებითი ოპციონები",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "SVG სურთების მხარდაჭერის მქონე Imagemagick PHP გაფართოების დაყენება ფავიკონებს ატვირთული ლოგოსა და ფერის მიხევით დააგენერირებს ავტომატურად."
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/ko.js b/apps/theming/l10n/ko.js
index 00e15bbebb9..db70d350a82 100644
--- a/apps/theming/l10n/ko.js
+++ b/apps/theming/l10n/ko.js
@@ -85,11 +85,6 @@ OC.L10N.register(
"Reset to default" : "기본값으로 초기화",
"Upload" : "업로드",
"Remove background image" : "배경 그림 삭제",
- "Color" : "색",
- "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." : "보편적 접근성은 매우 중요합니다. 저희는 웹 표준을 준수하며, 마우스 혹은 스크린리더와 같은 보조 소프트웨어 없이도 정상적인 사용이 가능한지에 대해 확인하고 있습니다. 또한, {guidelines}웹 콘텐츠 접근성 가이드라인{linkend} 2.1을 AA 수준 및 AAA 수준의 고대비 테마에서 준수하기 위해 노력하고 있습니다. ",
- "Background" : "배경",
- "Set a custom background" : "나만의 배경화면 설정",
- "Change color" : "색깔 바꾸기",
- "No background" : "배경화면 없음"
+ "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." : "보편적 접근성은 매우 중요합니다. 저희는 웹 표준을 준수하며, 마우스 혹은 스크린리더와 같은 보조 소프트웨어 없이도 정상적인 사용이 가능한지에 대해 확인하고 있습니다. 또한, {guidelines}웹 콘텐츠 접근성 가이드라인{linkend} 2.1을 AA 수준 및 AAA 수준의 고대비 테마에서 준수하기 위해 노력하고 있습니다. "
},
"nplurals=1; plural=0;");
diff --git a/apps/theming/l10n/ko.json b/apps/theming/l10n/ko.json
index 80d14da4ce5..a450194dd07 100644
--- a/apps/theming/l10n/ko.json
+++ b/apps/theming/l10n/ko.json
@@ -83,11 +83,6 @@
"Reset to default" : "기본값으로 초기화",
"Upload" : "업로드",
"Remove background image" : "배경 그림 삭제",
- "Color" : "색",
- "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." : "보편적 접근성은 매우 중요합니다. 저희는 웹 표준을 준수하며, 마우스 혹은 스크린리더와 같은 보조 소프트웨어 없이도 정상적인 사용이 가능한지에 대해 확인하고 있습니다. 또한, {guidelines}웹 콘텐츠 접근성 가이드라인{linkend} 2.1을 AA 수준 및 AAA 수준의 고대비 테마에서 준수하기 위해 노력하고 있습니다. ",
- "Background" : "배경",
- "Set a custom background" : "나만의 배경화면 설정",
- "Change color" : "색깔 바꾸기",
- "No background" : "배경화면 없음"
+ "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." : "보편적 접근성은 매우 중요합니다. 저희는 웹 표준을 준수하며, 마우스 혹은 스크린리더와 같은 보조 소프트웨어 없이도 정상적인 사용이 가능한지에 대해 확인하고 있습니다. 또한, {guidelines}웹 콘텐츠 접근성 가이드라인{linkend} 2.1을 AA 수준 및 AAA 수준의 고대비 테마에서 준수하기 위해 노력하고 있습니다. "
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/lt_LT.js b/apps/theming/l10n/lt_LT.js
index 7d09fc6578c..40031003879 100644
--- a/apps/theming/l10n/lt_LT.js
+++ b/apps/theming/l10n/lt_LT.js
@@ -68,10 +68,6 @@ OC.L10N.register(
"Reset to default" : "Atstatyti į numatytąjį",
"Upload" : "Įkelti",
"Remove background image" : "Šalinti foninį paveikslą",
- "Color" : "Spalva",
- "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." : "Mums universalioji prieiga yra labai svarbi. Mes sekame saityno standartus ir stengiamės, kad būtų galima viskuobe pelės ir pagalbinės programinės įrangos, tokios kaip ekrano skaitytuvė. Stengiamės atitikti {guidelines}Saityno turinio prieinamumo gairėms{linkend} 2.1 pagal AA lygmenį, o su didelio kontrasto apipavidalinimu netgi pagal AAA lygmenį.",
- "Background" : "Fonas",
- "Set a custom background" : "Nustatyti tinkintą foną",
- "Change color" : "Keisti spalvą"
+ "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." : "Mums universalioji prieiga yra labai svarbi. Mes sekame saityno standartus ir stengiamės, kad būtų galima viskuobe pelės ir pagalbinės programinės įrangos, tokios kaip ekrano skaitytuvė. Stengiamės atitikti {guidelines}Saityno turinio prieinamumo gairėms{linkend} 2.1 pagal AA lygmenį, o su didelio kontrasto apipavidalinimu netgi pagal AAA lygmenį."
},
"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/theming/l10n/lt_LT.json b/apps/theming/l10n/lt_LT.json
index 715813d6b47..b11ac2a0413 100644
--- a/apps/theming/l10n/lt_LT.json
+++ b/apps/theming/l10n/lt_LT.json
@@ -66,10 +66,6 @@
"Reset to default" : "Atstatyti į numatytąjį",
"Upload" : "Įkelti",
"Remove background image" : "Šalinti foninį paveikslą",
- "Color" : "Spalva",
- "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." : "Mums universalioji prieiga yra labai svarbi. Mes sekame saityno standartus ir stengiamės, kad būtų galima viskuobe pelės ir pagalbinės programinės įrangos, tokios kaip ekrano skaitytuvė. Stengiamės atitikti {guidelines}Saityno turinio prieinamumo gairėms{linkend} 2.1 pagal AA lygmenį, o su didelio kontrasto apipavidalinimu netgi pagal AAA lygmenį.",
- "Background" : "Fonas",
- "Set a custom background" : "Nustatyti tinkintą foną",
- "Change color" : "Keisti spalvą"
+ "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." : "Mums universalioji prieiga yra labai svarbi. Mes sekame saityno standartus ir stengiamės, kad būtų galima viskuobe pelės ir pagalbinės programinės įrangos, tokios kaip ekrano skaitytuvė. Stengiamės atitikti {guidelines}Saityno turinio prieinamumo gairėms{linkend} 2.1 pagal AA lygmenį, o su didelio kontrasto apipavidalinimu netgi pagal AAA lygmenį."
},"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/theming/l10n/lv.js b/apps/theming/l10n/lv.js
deleted file mode 100644
index 313a2fb8f8e..00000000000
--- a/apps/theming/l10n/lv.js
+++ /dev/null
@@ -1,40 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Ielādē priekšskatījumu...",
- "Admin" : "Admin",
- "Saved" : "Saglabāts",
- "a safe home for all your data" : "droša vieta visiem jūsu datiem",
- "The given name is too long" : "Norādītais nosaukums ir pārāk garš",
- "The given web address is too long" : "Norādītā adrese ir pārāk gara",
- "The given slogan is too long" : "Norādītais teiciens ir pārāk garšs",
- "The given color is invalid" : "Norādītā krāsa ir nederīga",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā",
- "No file was uploaded" : "Neviena datne netika augšupielādēta",
- "Missing a temporary folder" : "Trūkst pagaidu mapes",
- "No file uploaded" : "Nav augšupielādēta datne",
- "Theming" : "Dizains",
- "Dark theme" : "Tumšais motīvs",
- "Enable dark theme" : "Iespējot tumšo motīvu",
- "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tumšais motīvs atslogo Tavas acis samazinot kopējo atspīdumu un spilgtumu. Tas joprojām atrodas izstrādes režīmā, tādēļ dod ziņu par jebkurām atrastajām problēmām.",
- "Dyslexia font" : "Dislektisks fonts",
- "Enable dyslexia font" : "Iespējot disleksijas fontu",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic ir bezmaksas fonts, kas veidots, lai mazinātu tipiskākos lasīšanas traucējumus, ko izraisa disleksija.",
- "High contrast mode" : "Augsta kontrasta režīms",
- "Enable high contrast mode" : "Iespējot augsta kontrasta režīmu",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Augsta kontrasta režīms atvieglo navigāciju. Vizuālā kvalitāte tiks samazināta, bet skaidrība paaugstināsies.",
- "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." : "Universāla pieejamība mums ir ļoti svarīga. Mēs sekojam tīmekļa standartiem un panākam ka visu var lietot arī bez datorpeles, un palīgprogrammatūras, kā ekrāna lasītāja. Mēs mērķējam uz būšanu piekāpīgi ar {vadlīnijām}Tīmekļa satura pieejamības vadlīnijas{piesaistīts} 2.1 uz AA līmeņa, ar augsta kontrasta režīmu pat AAA līmenī",
- "Open documentation" : "Atvērt dokumentāciju",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Tēmošana padara iespējamu viegli pielāgot savas instances un atbalstošo klientaplikāciju izskatu un sajūtu. Tas būs redzams visiem lietotājiem.",
- "Name" : "Nosaukums",
- "Reset to default" : "Atiestatīt",
- "Slogan" : "Sauklis",
- "Color" : "Krāsa",
- "Logo" : "Logo",
- "Upload new logo" : "Augšupielādēt jaunu logo",
- "Login image" : "Pieteikšanās fona attēls",
- "Upload new login background" : "Augšupielādēt jaunu pieteikšanās fona attēlu",
- "Remove background image" : "Noņemt fona attēlu",
- "Advanced options" : "Papildu opcijas"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/theming/l10n/lv.json b/apps/theming/l10n/lv.json
deleted file mode 100644
index 0b9fa8d7389..00000000000
--- a/apps/theming/l10n/lv.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Ielādē priekšskatījumu...",
- "Admin" : "Admin",
- "Saved" : "Saglabāts",
- "a safe home for all your data" : "droša vieta visiem jūsu datiem",
- "The given name is too long" : "Norādītais nosaukums ir pārāk garš",
- "The given web address is too long" : "Norādītā adrese ir pārāk gara",
- "The given slogan is too long" : "Norādītais teiciens ir pārāk garšs",
- "The given color is invalid" : "Norādītā krāsa ir nederīga",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā",
- "No file was uploaded" : "Neviena datne netika augšupielādēta",
- "Missing a temporary folder" : "Trūkst pagaidu mapes",
- "No file uploaded" : "Nav augšupielādēta datne",
- "Theming" : "Dizains",
- "Dark theme" : "Tumšais motīvs",
- "Enable dark theme" : "Iespējot tumšo motīvu",
- "A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tumšais motīvs atslogo Tavas acis samazinot kopējo atspīdumu un spilgtumu. Tas joprojām atrodas izstrādes režīmā, tādēļ dod ziņu par jebkurām atrastajām problēmām.",
- "Dyslexia font" : "Dislektisks fonts",
- "Enable dyslexia font" : "Iespējot disleksijas fontu",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic ir bezmaksas fonts, kas veidots, lai mazinātu tipiskākos lasīšanas traucējumus, ko izraisa disleksija.",
- "High contrast mode" : "Augsta kontrasta režīms",
- "Enable high contrast mode" : "Iespējot augsta kontrasta režīmu",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Augsta kontrasta režīms atvieglo navigāciju. Vizuālā kvalitāte tiks samazināta, bet skaidrība paaugstināsies.",
- "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." : "Universāla pieejamība mums ir ļoti svarīga. Mēs sekojam tīmekļa standartiem un panākam ka visu var lietot arī bez datorpeles, un palīgprogrammatūras, kā ekrāna lasītāja. Mēs mērķējam uz būšanu piekāpīgi ar {vadlīnijām}Tīmekļa satura pieejamības vadlīnijas{piesaistīts} 2.1 uz AA līmeņa, ar augsta kontrasta režīmu pat AAA līmenī",
- "Open documentation" : "Atvērt dokumentāciju",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Tēmošana padara iespējamu viegli pielāgot savas instances un atbalstošo klientaplikāciju izskatu un sajūtu. Tas būs redzams visiem lietotājiem.",
- "Name" : "Nosaukums",
- "Reset to default" : "Atiestatīt",
- "Slogan" : "Sauklis",
- "Color" : "Krāsa",
- "Logo" : "Logo",
- "Upload new logo" : "Augšupielādēt jaunu logo",
- "Login image" : "Pieteikšanās fona attēls",
- "Upload new login background" : "Augšupielādēt jaunu pieteikšanās fona attēlu",
- "Remove background image" : "Noņemt fona attēlu",
- "Advanced options" : "Papildu opcijas"
-},"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/theming/l10n/mk.js b/apps/theming/l10n/mk.js
index e3c96aa1858..2fb8dc9710e 100644
--- a/apps/theming/l10n/mk.js
+++ b/apps/theming/l10n/mk.js
@@ -107,11 +107,6 @@ OC.L10N.register(
"Reset to default" : "Ресетирај на стандардно",
"Upload" : "Прикачи",
"Remove background image" : "Избриши ја позадинската слика",
- "Color" : "Боја",
- "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." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {guidelines} {linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА.",
- "Background" : "Позадина",
- "Set a custom background" : "Постави позадина",
- "Change color" : "Промени боја",
- "No background" : "Без позадина"
+ "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." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {guidelines} {linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА."
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/theming/l10n/mk.json b/apps/theming/l10n/mk.json
index ad195ae2326..6cf4a674311 100644
--- a/apps/theming/l10n/mk.json
+++ b/apps/theming/l10n/mk.json
@@ -105,11 +105,6 @@
"Reset to default" : "Ресетирај на стандардно",
"Upload" : "Прикачи",
"Remove background image" : "Избриши ја позадинската слика",
- "Color" : "Боја",
- "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." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {guidelines} {linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА.",
- "Background" : "Позадина",
- "Set a custom background" : "Постави позадина",
- "Change color" : "Промени боја",
- "No background" : "Без позадина"
+ "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." : "Универзалниот пристап е многу важен за нас. Ние ги следиме веб-стандардите и ги имплементираме за да го направиме користењето попристапно, како користење без маус, и помошни апликации за читање на екранот. Наша цел е да бидеме во согласност со {guidelines} {linkend}2.1 на ниво АА, со висока контрастна тема дури и на ниво на ААА."
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/mn.js b/apps/theming/l10n/mn.js
deleted file mode 100644
index 942ea752eab..00000000000
--- a/apps/theming/l10n/mn.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Урьдчилсан харагдцыг дуудаж байна...",
- "Saved" : "Хадгалах",
- "Admin" : "Админ",
- "a safe home for all your data" : "Таны өгөгдлүүдийн аюулгүй гэр",
- "The given name is too long" : "Өгсөн нэр хэтэрхий урт байна",
- "The given web address is too long" : "Өгсөн вэб хаяг хэтэрхий урт байна",
- "The given slogan is too long" : "Өгсөн уриа үг хэтэрхий урт байна",
- "The given color is invalid" : "Өнгө буруу байна",
- "No file uploaded" : "Файл илгээгдсэнгүй",
- "Unsupported image type" : "Дэмжигдэхгүй зургийн төрөл байна",
- "Theming" : "Загварчлал",
- "Name" : "Нэр",
- "Reset to default" : "Анхны байдлаар сэргээх",
- "Web address" : "Вэб хаяг",
- "Web address https://…" : "Вэб хаяг https://...",
- "Slogan" : "Уриа үг",
- "Color" : "Өнгө",
- "Logo" : "Бэлгэ тэмдэг",
- "Upload new logo" : "Шинэ бэлгэ тэмдэг байршуулах",
- "Login image" : "Нэвтрэх зураг",
- "Upload new login background" : "Нэвтрэх ханын зураг байршуулах",
- "Remove background image" : "Ханын зургийг хасах",
- "You are already using a custom theme" : "Та тусгай загварчлал ашиглаж байна",
- "reset to default" : "анхныхаар сэргээх"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/mn.json b/apps/theming/l10n/mn.json
deleted file mode 100644
index bce38de201b..00000000000
--- a/apps/theming/l10n/mn.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Урьдчилсан харагдцыг дуудаж байна...",
- "Saved" : "Хадгалах",
- "Admin" : "Админ",
- "a safe home for all your data" : "Таны өгөгдлүүдийн аюулгүй гэр",
- "The given name is too long" : "Өгсөн нэр хэтэрхий урт байна",
- "The given web address is too long" : "Өгсөн вэб хаяг хэтэрхий урт байна",
- "The given slogan is too long" : "Өгсөн уриа үг хэтэрхий урт байна",
- "The given color is invalid" : "Өнгө буруу байна",
- "No file uploaded" : "Файл илгээгдсэнгүй",
- "Unsupported image type" : "Дэмжигдэхгүй зургийн төрөл байна",
- "Theming" : "Загварчлал",
- "Name" : "Нэр",
- "Reset to default" : "Анхны байдлаар сэргээх",
- "Web address" : "Вэб хаяг",
- "Web address https://…" : "Вэб хаяг https://...",
- "Slogan" : "Уриа үг",
- "Color" : "Өнгө",
- "Logo" : "Бэлгэ тэмдэг",
- "Upload new logo" : "Шинэ бэлгэ тэмдэг байршуулах",
- "Login image" : "Нэвтрэх зураг",
- "Upload new login background" : "Нэвтрэх ханын зураг байршуулах",
- "Remove background image" : "Ханын зургийг хасах",
- "You are already using a custom theme" : "Та тусгай загварчлал ашиглаж байна",
- "reset to default" : "анхныхаар сэргээх"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/nb.js b/apps/theming/l10n/nb.js
index 215fee70534..1899d40cc79 100644
--- a/apps/theming/l10n/nb.js
+++ b/apps/theming/l10n/nb.js
@@ -117,11 +117,6 @@ OC.L10N.register(
"Reset to default" : "Tilbakestill til standard",
"Upload" : "Last opp",
"Remove background image" : "Fjern bakgrunnsbilde",
- "Color" : "Farge",
- "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." : "Universell utforming er viktig for oss. Vi følger web-standarder og tester for full funksjonalitet, både uten mus og med hjelpeprogrammer, slik som skjermlesere. Vi etterstreber å følge {guidelines}Retningslinjer for tilgjengelighet på nettsider{linkend} 2.1 på nivå AA, og med temaet for høy kontrast også nivå AAA.",
- "Background" : "Bakgrunn",
- "Set a custom background" : "Angi en egendefinert bakgrunn",
- "Change color" : "Endre farge",
- "No background" : "Ingen bakgrunn"
+ "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." : "Universell utforming er viktig for oss. Vi følger web-standarder og tester for full funksjonalitet, både uten mus og med hjelpeprogrammer, slik som skjermlesere. Vi etterstreber å følge {guidelines}Retningslinjer for tilgjengelighet på nettsider{linkend} 2.1 på nivå AA, og med temaet for høy kontrast også nivå AAA."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/nb.json b/apps/theming/l10n/nb.json
index 87695dfa444..425df751e38 100644
--- a/apps/theming/l10n/nb.json
+++ b/apps/theming/l10n/nb.json
@@ -115,11 +115,6 @@
"Reset to default" : "Tilbakestill til standard",
"Upload" : "Last opp",
"Remove background image" : "Fjern bakgrunnsbilde",
- "Color" : "Farge",
- "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." : "Universell utforming er viktig for oss. Vi følger web-standarder og tester for full funksjonalitet, både uten mus og med hjelpeprogrammer, slik som skjermlesere. Vi etterstreber å følge {guidelines}Retningslinjer for tilgjengelighet på nettsider{linkend} 2.1 på nivå AA, og med temaet for høy kontrast også nivå AAA.",
- "Background" : "Bakgrunn",
- "Set a custom background" : "Angi en egendefinert bakgrunn",
- "Change color" : "Endre farge",
- "No background" : "Ingen bakgrunn"
+ "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." : "Universell utforming er viktig for oss. Vi følger web-standarder og tester for full funksjonalitet, både uten mus og med hjelpeprogrammer, slik som skjermlesere. Vi etterstreber å følge {guidelines}Retningslinjer for tilgjengelighet på nettsider{linkend} 2.1 på nivå AA, og med temaet for høy kontrast også nivå AAA."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/nl.js b/apps/theming/l10n/nl.js
index 64eb5295dc6..46a95ffa9d6 100644
--- a/apps/theming/l10n/nl.js
+++ b/apps/theming/l10n/nl.js
@@ -54,8 +54,8 @@ OC.L10N.register(
"Privacy policy link" : "Privacybeleid link",
"Header logo" : "Top logo",
"Upload new header logo" : "Upload een nieuwe top afbeelding",
- "Favicon" : "Favorietenpictogram",
- "Upload new favicon" : "Upload een nieuwe favorietenpictogram",
+ "Favicon" : "Favicon",
+ "Upload new favicon" : "Nieuw favicon uploaden",
"User settings" : "Instellingen gebruiker",
"Disable user theming" : "Gebruiker thema's uitschakelen",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Thematiseren maakt het mogelijk om uiterlijk en gevoel van je systeem en ondersteunde clients aan te passen. Dit wordt zichtbaar voor alle gebruikers.",
@@ -79,11 +79,6 @@ OC.L10N.register(
"Reset to default" : "Herstellen naar standaard",
"Upload" : "Uploaden",
"Remove background image" : "Achtergrond beeld verwijderen",
- "Color" : "Kleur",
- "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." : "Universele toegang is heel belangrijk voor ons. We volgen webstandaarden en controleren dat alles ook zonder muis en met ondersteunende software zoals schermlezers bruikbaar is. We streven om de {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 op AA-niveau te volgen, en met het hoge contrast thema zelfs op AAA-niveau.",
- "Background" : "Achtergrond",
- "Set a custom background" : "Stel persoonlijke achtergrond in",
- "Change color" : "Wijzigen kleur",
- "No background" : "Geen achtergrond"
+ "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." : "Universele toegang is heel belangrijk voor ons. We volgen webstandaarden en controleren dat alles ook zonder muis en met ondersteunende software zoals schermlezers bruikbaar is. We streven om de {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 op AA-niveau te volgen, en met het hoge contrast thema zelfs op AAA-niveau."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/nl.json b/apps/theming/l10n/nl.json
index 5029121f38c..9871f78bbf2 100644
--- a/apps/theming/l10n/nl.json
+++ b/apps/theming/l10n/nl.json
@@ -52,8 +52,8 @@
"Privacy policy link" : "Privacybeleid link",
"Header logo" : "Top logo",
"Upload new header logo" : "Upload een nieuwe top afbeelding",
- "Favicon" : "Favorietenpictogram",
- "Upload new favicon" : "Upload een nieuwe favorietenpictogram",
+ "Favicon" : "Favicon",
+ "Upload new favicon" : "Nieuw favicon uploaden",
"User settings" : "Instellingen gebruiker",
"Disable user theming" : "Gebruiker thema's uitschakelen",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Thematiseren maakt het mogelijk om uiterlijk en gevoel van je systeem en ondersteunde clients aan te passen. Dit wordt zichtbaar voor alle gebruikers.",
@@ -77,11 +77,6 @@
"Reset to default" : "Herstellen naar standaard",
"Upload" : "Uploaden",
"Remove background image" : "Achtergrond beeld verwijderen",
- "Color" : "Kleur",
- "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." : "Universele toegang is heel belangrijk voor ons. We volgen webstandaarden en controleren dat alles ook zonder muis en met ondersteunende software zoals schermlezers bruikbaar is. We streven om de {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 op AA-niveau te volgen, en met het hoge contrast thema zelfs op AAA-niveau.",
- "Background" : "Achtergrond",
- "Set a custom background" : "Stel persoonlijke achtergrond in",
- "Change color" : "Wijzigen kleur",
- "No background" : "Geen achtergrond"
+ "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." : "Universele toegang is heel belangrijk voor ons. We volgen webstandaarden en controleren dat alles ook zonder muis en met ondersteunende software zoals schermlezers bruikbaar is. We streven om de {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 op AA-niveau te volgen, en met het hoge contrast thema zelfs op AAA-niveau."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/pl.js b/apps/theming/l10n/pl.js
index 1de7a221101..abad4875661 100644
--- a/apps/theming/l10n/pl.js
+++ b/apps/theming/l10n/pl.js
@@ -104,11 +104,6 @@ OC.L10N.register(
"Reset to default" : "Przywróć domyślne",
"Upload" : "Wyślij",
"Remove background image" : "Usuń obraz tła",
- "Color" : "Kolor",
- "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." : "Uniwersalny dostęp jest dla nas bardzo ważny. Przestrzegamy standardów internetowych i sprawdzamy, aby wszystko było użyteczne również bez myszy i oprogramowania pomocniczego, takiego jak czytniki ekranu. Naszym celem jest zgodność z {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 na poziomie AA, z motywem o wysokim kontraście nawet na poziomie AAA.",
- "Background" : "Tło",
- "Set a custom background" : "Ustaw niestandardowe tło",
- "Change color" : "Zmień kolor",
- "No background" : "Bez tła"
+ "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." : "Uniwersalny dostęp jest dla nas bardzo ważny. Przestrzegamy standardów internetowych i sprawdzamy, aby wszystko było użyteczne również bez myszy i oprogramowania pomocniczego, takiego jak czytniki ekranu. Naszym celem jest zgodność z {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 na poziomie AA, z motywem o wysokim kontraście nawet na poziomie AAA."
},
"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/theming/l10n/pl.json b/apps/theming/l10n/pl.json
index a7f23197c8a..e31da72d4c8 100644
--- a/apps/theming/l10n/pl.json
+++ b/apps/theming/l10n/pl.json
@@ -102,11 +102,6 @@
"Reset to default" : "Przywróć domyślne",
"Upload" : "Wyślij",
"Remove background image" : "Usuń obraz tła",
- "Color" : "Kolor",
- "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." : "Uniwersalny dostęp jest dla nas bardzo ważny. Przestrzegamy standardów internetowych i sprawdzamy, aby wszystko było użyteczne również bez myszy i oprogramowania pomocniczego, takiego jak czytniki ekranu. Naszym celem jest zgodność z {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 na poziomie AA, z motywem o wysokim kontraście nawet na poziomie AAA.",
- "Background" : "Tło",
- "Set a custom background" : "Ustaw niestandardowe tło",
- "Change color" : "Zmień kolor",
- "No background" : "Bez tła"
+ "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." : "Uniwersalny dostęp jest dla nas bardzo ważny. Przestrzegamy standardów internetowych i sprawdzamy, aby wszystko było użyteczne również bez myszy i oprogramowania pomocniczego, takiego jak czytniki ekranu. Naszym celem jest zgodność z {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 na poziomie AA, z motywem o wysokim kontraście nawet na poziomie AAA."
},"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/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js
index b938e562585..6e455a29922 100644
--- a/apps/theming/l10n/pt_BR.js
+++ b/apps/theming/l10n/pt_BR.js
@@ -29,9 +29,9 @@ OC.L10N.register(
"Appearance and accessibility" : "Aparência e acessibilidade",
"PHP Imagick module" : "Módulo PHP Imagick",
"The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "O módulo PHP \"imagick\" não está habilitado, embora o aplicativo de temas esteja. Para que a geração de favicon funcione corretamente, você precisa instalar e habilitar este módulo.",
- "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "O módulo PHP \"imagick\" neste caso não tem suporte a SVG. Para melhor compatibilidade é recomendado instalá-lo.",
+ "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "O módulo PHP \"imagick\" nesta instância não tem suporte a SVG. Para melhor compatibilidade é recomendado instalá-lo.",
"Dark theme with high contrast mode" : "Tema escuro com modo de alto contraste",
- "Enable dark high contrast mode" : "Ative o modo escuro de alto contraste",
+ "Enable dark high contrast mode" : "Ativar o modo escuro de alto contraste",
"Similar to the high contrast mode, but with dark colours." : "Semelhante ao modo de alto contraste, mas com cores escuras.",
"Dark theme" : "Tema escuro",
"Enable dark theme" : "Ativar o tema escuro",
@@ -71,16 +71,16 @@ OC.L10N.register(
"Background color" : "Cor de fundo",
"Upload new logo" : "Enviar novo logotipo",
"Logo" : "Logotipo",
- "Upload new background and login image" : "Envie um novo papel de parede e imagem de login",
+ "Upload new background and login image" : "Carregar nova imagem de fundo e de login",
"Background and login image" : "Plano de fundo e imagem de login",
"Advanced options" : "Opções avançadas",
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instale a extensão PHP ImageMagick com suporte para imagens SVG para gerar automaticamente favicons com base no logotipo carregado e na cor.",
- "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 {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 no nível AA, com o tema de alto contraste até mesmo no nível AAA.",
- "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em denunciá-lo em {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se a {designteam}nossa equipe de design{linkend}!",
+ "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 {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e com software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {linkstart}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 (Web Content Accessibility Guidelines 2.1) no nível AA, com o tema de alto contraste até mesmo no nível AAA.",
+ "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em relatá-lo em {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se a {designteam}nossa equipe de design{linkend}!",
"Unable to apply the setting." : "Não foi possível aplicar a configuração.",
"Appearance and accessibility settings" : "Configurações de aparência e acessibilidade",
"Misc accessibility options" : "Opções de acessibilidade diversas",
- "Enable blur background filter (may increase GPU load)" : "Ativar o filtro de fundo de desfoque (pode aumentar a carga da GPU)",
+ "Enable blur background filter (may increase GPU load)" : "Ativar o filtro de desfoque de fundo (pode aumentar a carga da GPU)",
"Customization has been disabled by your administrator" : "A personalização foi desativada por seu administrador",
"Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Defina uma cor primária para destacar elementos importantes. A cor usada para elementos como botões primários pode ser um pouco diferente, pois é ajustada para atender aos requisitos de acessibilidade.",
"Background and color" : "Plano de fundo e cor",
@@ -91,40 +91,35 @@ OC.L10N.register(
"Current selected app: {app}, position {position} of {total}" : "Aplicativo atualmente selecionado: {app}, posição {position} de {total}",
"Move up" : "Mover para cima",
"Move down" : "Mover para baixo",
- "Select a background from your files" : "Selecione o papel de parede de seus arquivos",
- "Select background" : "Selecione o plano de fundo",
+ "Select a background from your files" : "Selecione um plano de fundo de seus arquivos",
+ "Select background" : "Selecione plano de fundo",
"No background has been selected" : "Nenhum plano de fundo foi selecionado",
"Custom background" : "Plano de fundo personalizado",
"Plain background" : "Plano de fundo liso",
"Default background" : "Plano de fundo padrão",
- "Theme selection is enforced" : "A seleção do tema é aplicada",
- "Could not set the app order" : "Não foi possível definir a ordem do aplicativo",
- "Could not reset the app order" : "Não foi possível redefinir a ordem do aplicativo",
+ "Theme selection is enforced" : "A seleção do tema é imposta",
+ "Could not set the app order" : "Não foi possível definir a ordem dos aplicativos",
+ "Could not reset the app order" : "Não foi possível redefinir a ordem dos aplicativos",
"Navigation bar settings" : "Configurações da barra de navegação",
- "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Você pode configurar a ordem do aplicativo usada na barra de navegação. A primeira entrada será o aplicativo padrão, aberto após o login ou ao clicar no logotipo.",
+ "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Você pode configurar a ordem dos aplicativos usada na barra de navegação. A primeira entrada será o aplicativo padrão, aberto após o login ou ao clicar no logotipo.",
"The default app can not be changed because it was configured by the administrator." : "O aplicativo padrão não pode ser alterado porque foi configurado pelo administrador.",
- "The app order was changed, to see it in action you have to reload the page." : "A ordem do aplicativo foi alterada, para vê-lo em ação é necessário recarregar a página.",
+ "The app order was changed, to see it in action you have to reload the page." : "A ordem dos aplicativos foi alterada, para vê-la em ação é necessário recarregar a página.",
"Reset default app order" : "Redefinir a ordem padrão dos aplicativos",
"Could not set primary color" : "Não foi possível definir a cor primária",
"Reset primary color" : "Redefinir cor primária",
"Could not set global default apps" : "Não foi possível definir aplicativos padrão globais",
"Default app" : "Aplicativo padrão",
- "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "O aplicativo padrão é o aplicativo que é, por exemplo. aberto após o login ou quando o logotipo no menu é clicado.",
+ "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "O aplicativo padrão é o aplicativo que é, p. ex., aberto após o login ou quando o logotipo no menu é clicado.",
"Use custom default app" : "Usar aplicativo padrão personalizado",
"Global default app" : "Aplicativo padrão global",
"Global default apps" : "Aplicativos padrão globais",
- "Default app priority" : "Prioridade padrão do aplicativo",
+ "Default app priority" : "Prioridade padrão de aplicativos",
"If an app is not enabled for a user, the next app with lower priority is used." : "Se um aplicativo não estiver habilitado para um usuário, o próximo aplicativo com prioridade mais baixa será usado.",
"Select a custom color" : "Selecione uma cor personalizada",
"Reset to default" : "Redefinir para o padrão",
- "Upload" : "Enviar",
+ "Upload" : "Carregar",
"Remove background image" : "Excluir a imagem de fundo",
- "Color" : "Cor",
- "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e nos certificamos de tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
- ". Unable to apply the setting." : ". Não foi possível aplicar a configuração.",
- "Background" : "Fundo",
- "Set a custom background" : "Defina um plano de fundo personalizado",
- "Change color" : "Trocar a cor",
- "No background" : "Sem fundo"
+ "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e com software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 (Web Content Accessibility Guidelines 2.1) no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
+ ". Unable to apply the setting." : ". Não foi possível aplicar a configuração."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json
index 49051cc39e1..18160e12ccf 100644
--- a/apps/theming/l10n/pt_BR.json
+++ b/apps/theming/l10n/pt_BR.json
@@ -27,9 +27,9 @@
"Appearance and accessibility" : "Aparência e acessibilidade",
"PHP Imagick module" : "Módulo PHP Imagick",
"The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "O módulo PHP \"imagick\" não está habilitado, embora o aplicativo de temas esteja. Para que a geração de favicon funcione corretamente, você precisa instalar e habilitar este módulo.",
- "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "O módulo PHP \"imagick\" neste caso não tem suporte a SVG. Para melhor compatibilidade é recomendado instalá-lo.",
+ "The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "O módulo PHP \"imagick\" nesta instância não tem suporte a SVG. Para melhor compatibilidade é recomendado instalá-lo.",
"Dark theme with high contrast mode" : "Tema escuro com modo de alto contraste",
- "Enable dark high contrast mode" : "Ative o modo escuro de alto contraste",
+ "Enable dark high contrast mode" : "Ativar o modo escuro de alto contraste",
"Similar to the high contrast mode, but with dark colours." : "Semelhante ao modo de alto contraste, mas com cores escuras.",
"Dark theme" : "Tema escuro",
"Enable dark theme" : "Ativar o tema escuro",
@@ -69,16 +69,16 @@
"Background color" : "Cor de fundo",
"Upload new logo" : "Enviar novo logotipo",
"Logo" : "Logotipo",
- "Upload new background and login image" : "Envie um novo papel de parede e imagem de login",
+ "Upload new background and login image" : "Carregar nova imagem de fundo e de login",
"Background and login image" : "Plano de fundo e imagem de login",
"Advanced options" : "Opções avançadas",
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instale a extensão PHP ImageMagick com suporte para imagens SVG para gerar automaticamente favicons com base no logotipo carregado e na cor.",
- "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 {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 no nível AA, com o tema de alto contraste até mesmo no nível AAA.",
- "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em denunciá-lo em {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se a {designteam}nossa equipe de design{linkend}!",
+ "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 {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e com software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {linkstart}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 (Web Content Accessibility Guidelines 2.1) no nível AA, com o tema de alto contraste até mesmo no nível AAA.",
+ "If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em relatá-lo em {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se a {designteam}nossa equipe de design{linkend}!",
"Unable to apply the setting." : "Não foi possível aplicar a configuração.",
"Appearance and accessibility settings" : "Configurações de aparência e acessibilidade",
"Misc accessibility options" : "Opções de acessibilidade diversas",
- "Enable blur background filter (may increase GPU load)" : "Ativar o filtro de fundo de desfoque (pode aumentar a carga da GPU)",
+ "Enable blur background filter (may increase GPU load)" : "Ativar o filtro de desfoque de fundo (pode aumentar a carga da GPU)",
"Customization has been disabled by your administrator" : "A personalização foi desativada por seu administrador",
"Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Defina uma cor primária para destacar elementos importantes. A cor usada para elementos como botões primários pode ser um pouco diferente, pois é ajustada para atender aos requisitos de acessibilidade.",
"Background and color" : "Plano de fundo e cor",
@@ -89,40 +89,35 @@
"Current selected app: {app}, position {position} of {total}" : "Aplicativo atualmente selecionado: {app}, posição {position} de {total}",
"Move up" : "Mover para cima",
"Move down" : "Mover para baixo",
- "Select a background from your files" : "Selecione o papel de parede de seus arquivos",
- "Select background" : "Selecione o plano de fundo",
+ "Select a background from your files" : "Selecione um plano de fundo de seus arquivos",
+ "Select background" : "Selecione plano de fundo",
"No background has been selected" : "Nenhum plano de fundo foi selecionado",
"Custom background" : "Plano de fundo personalizado",
"Plain background" : "Plano de fundo liso",
"Default background" : "Plano de fundo padrão",
- "Theme selection is enforced" : "A seleção do tema é aplicada",
- "Could not set the app order" : "Não foi possível definir a ordem do aplicativo",
- "Could not reset the app order" : "Não foi possível redefinir a ordem do aplicativo",
+ "Theme selection is enforced" : "A seleção do tema é imposta",
+ "Could not set the app order" : "Não foi possível definir a ordem dos aplicativos",
+ "Could not reset the app order" : "Não foi possível redefinir a ordem dos aplicativos",
"Navigation bar settings" : "Configurações da barra de navegação",
- "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Você pode configurar a ordem do aplicativo usada na barra de navegação. A primeira entrada será o aplicativo padrão, aberto após o login ou ao clicar no logotipo.",
+ "You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo." : "Você pode configurar a ordem dos aplicativos usada na barra de navegação. A primeira entrada será o aplicativo padrão, aberto após o login ou ao clicar no logotipo.",
"The default app can not be changed because it was configured by the administrator." : "O aplicativo padrão não pode ser alterado porque foi configurado pelo administrador.",
- "The app order was changed, to see it in action you have to reload the page." : "A ordem do aplicativo foi alterada, para vê-lo em ação é necessário recarregar a página.",
+ "The app order was changed, to see it in action you have to reload the page." : "A ordem dos aplicativos foi alterada, para vê-la em ação é necessário recarregar a página.",
"Reset default app order" : "Redefinir a ordem padrão dos aplicativos",
"Could not set primary color" : "Não foi possível definir a cor primária",
"Reset primary color" : "Redefinir cor primária",
"Could not set global default apps" : "Não foi possível definir aplicativos padrão globais",
"Default app" : "Aplicativo padrão",
- "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "O aplicativo padrão é o aplicativo que é, por exemplo. aberto após o login ou quando o logotipo no menu é clicado.",
+ "The default app is the app that is e.g. opened after login or when the logo in the menu is clicked." : "O aplicativo padrão é o aplicativo que é, p. ex., aberto após o login ou quando o logotipo no menu é clicado.",
"Use custom default app" : "Usar aplicativo padrão personalizado",
"Global default app" : "Aplicativo padrão global",
"Global default apps" : "Aplicativos padrão globais",
- "Default app priority" : "Prioridade padrão do aplicativo",
+ "Default app priority" : "Prioridade padrão de aplicativos",
"If an app is not enabled for a user, the next app with lower priority is used." : "Se um aplicativo não estiver habilitado para um usuário, o próximo aplicativo com prioridade mais baixa será usado.",
"Select a custom color" : "Selecione uma cor personalizada",
"Reset to default" : "Redefinir para o padrão",
- "Upload" : "Enviar",
+ "Upload" : "Carregar",
"Remove background image" : "Excluir a imagem de fundo",
- "Color" : "Cor",
- "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e nos certificamos de tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
- ". Unable to apply the setting." : ". Não foi possível aplicar a configuração.",
- "Background" : "Fundo",
- "Set a custom background" : "Defina um plano de fundo personalizado",
- "Change color" : "Trocar a cor",
- "No background" : "Sem fundo"
+ "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da Web e verificamos se tudo pode ser usado também sem mouse e com software de assistência, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 (Web Content Accessibility Guidelines 2.1) no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
+ ". Unable to apply the setting." : ". Não foi possível aplicar a configuração."
},"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/theming/l10n/pt_PT.js b/apps/theming/l10n/pt_PT.js
deleted file mode 100644
index 16973ced9a4..00000000000
--- a/apps/theming/l10n/pt_PT.js
+++ /dev/null
@@ -1,67 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "The given name is too long" : "O nome atribuído é demasiado longo",
- "The given web address is too long" : "O endereço web atribuído é demasiado longo",
- "The given web address is not a valid URL" : "O endereço web indicado não é um URL válido",
- "The given privacy policy address is too long" : "O endereço da política de privacidade é muito longo",
- "The given privacy policy address is not a valid URL" : "O endereço da política de privacidade não é um URL válido",
- "The given slogan is too long" : "O slogan atribuído é demasiado longo",
- "The given color is invalid" : "A cor atribuída é inválida",
- "Saved" : "Guardado",
- "The file was uploaded" : "O ficheiro foi carregado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O ficheiro carregado excede a directiva upload_max_filesize no php.ini ",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O ficheiro carregado excedo a directiva MAX_FILE_SIZE especificada no formulário HTML",
- "The file was only partially uploaded" : "O ficheiro foi apenas parcialmente carregado",
- "No file was uploaded" : "O ficheiro foi carregado",
- "Missing a temporary folder" : "Falta uma pasta temporária",
- "Could not write file to disk" : "Não foi possível escrever o ficheiro no disco.",
- "A PHP extension stopped the file upload" : "Uma extensão PHP parou o carregamento do ficheiro",
- "No file uploaded" : "Nenhum ficheiro carregado",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Já está a usar um tema personalizado. As configurações da aplicação Theming podem ser substituídas por isso.",
- "Theming" : "Temática",
- "Dark theme" : "Tema escuro",
- "Enable dark theme" : "Ativar tema escuro",
- "Dyslexia font" : "Tipo de letra \"Dyslexia\"",
- "Enable dyslexia font" : "Ativar tipo de letra \"Dyslexia\"",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic é um tipo de letra gratuito, desenhado para mitigar alguns dos problemas causados pela dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Ativar modo de alto contraste",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Um modo de alto contraste para facilitar sua navegação. A qualidade visual será reduzida, mas a clareza será aumentada.",
- "Legal notice" : "Informação legal",
- "Privacy policy" : "Política de privacidade",
- "Adjust the Nextcloud theme" : "Configurar o tema do Nextcloud",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "A tematização possibilita a fácil personalização da aparência da sua instância e clientes suportados. Isto será visível para todos os utilizadores",
- "Advanced options" : "Opções avançadas",
- "Name" : "Nome",
- "Web link" : "Hiperligação da Web",
- "a safe home for all your data" : "Um local seguro para todos os seus dados",
- "Slogan" : "Slogan",
- "Color" : "Cor",
- "Logo" : "Logótipo",
- "Upload new logo" : "Carregar novo logótipo",
- "Legal notice link" : "Ligação da informação legal",
- "Privacy policy link" : "Ligação da politica de privacidade",
- "Header logo" : "Logótipo do cabeçalho",
- "Upload new header logo" : "Carregar logótipo do cabeçalho",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Carregar novo favicon",
- "Keyboard shortcuts" : "Atalhos de teclado",
- "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem rato e software auxiliar, como leitores de ecrã. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
- "Move up" : "Mover para cima",
- "Move down" : "Mover para baixo",
- "Reset to default" : "Repor original",
- "Upload" : "Enviar",
- "Remove background image" : "Remover imagem de segundo plano",
- "Loading preview…" : "A carregar pre-visualização...",
- "Admin" : "Administrador",
- "Name cannot be empty" : "O Nome não pode estar vazio",
- "Pick from Files" : "Escolha a partir dos Ficheiros",
- "Plain background" : "Fundo simples",
- "Insert from {productName}" : "Inserir de {productName}",
- "Open documentation" : "Abrir documentação",
- "https://…" : "https://…",
- "Upload new login background" : "Carregar imagem de segundo plano de Login",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instale a extensão PHP Imagemagick com suporte para imagens SVG para gerar automaticamente favicons com base na cor e no logotipo carregado."
-},
-"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/theming/l10n/pt_PT.json b/apps/theming/l10n/pt_PT.json
deleted file mode 100644
index 2305c70443a..00000000000
--- a/apps/theming/l10n/pt_PT.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{ "translations": {
- "The given name is too long" : "O nome atribuído é demasiado longo",
- "The given web address is too long" : "O endereço web atribuído é demasiado longo",
- "The given web address is not a valid URL" : "O endereço web indicado não é um URL válido",
- "The given privacy policy address is too long" : "O endereço da política de privacidade é muito longo",
- "The given privacy policy address is not a valid URL" : "O endereço da política de privacidade não é um URL válido",
- "The given slogan is too long" : "O slogan atribuído é demasiado longo",
- "The given color is invalid" : "A cor atribuída é inválida",
- "Saved" : "Guardado",
- "The file was uploaded" : "O ficheiro foi carregado",
- "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O ficheiro carregado excede a directiva upload_max_filesize no php.ini ",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O ficheiro carregado excedo a directiva MAX_FILE_SIZE especificada no formulário HTML",
- "The file was only partially uploaded" : "O ficheiro foi apenas parcialmente carregado",
- "No file was uploaded" : "O ficheiro foi carregado",
- "Missing a temporary folder" : "Falta uma pasta temporária",
- "Could not write file to disk" : "Não foi possível escrever o ficheiro no disco.",
- "A PHP extension stopped the file upload" : "Uma extensão PHP parou o carregamento do ficheiro",
- "No file uploaded" : "Nenhum ficheiro carregado",
- "You are already using a custom theme. Theming app settings might be overwritten by that." : "Já está a usar um tema personalizado. As configurações da aplicação Theming podem ser substituídas por isso.",
- "Theming" : "Temática",
- "Dark theme" : "Tema escuro",
- "Enable dark theme" : "Ativar tema escuro",
- "Dyslexia font" : "Tipo de letra \"Dyslexia\"",
- "Enable dyslexia font" : "Ativar tipo de letra \"Dyslexia\"",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic é um tipo de letra gratuito, desenhado para mitigar alguns dos problemas causados pela dislexia.",
- "High contrast mode" : "Modo de alto contraste",
- "Enable high contrast mode" : "Ativar modo de alto contraste",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Um modo de alto contraste para facilitar sua navegação. A qualidade visual será reduzida, mas a clareza será aumentada.",
- "Legal notice" : "Informação legal",
- "Privacy policy" : "Política de privacidade",
- "Adjust the Nextcloud theme" : "Configurar o tema do Nextcloud",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "A tematização possibilita a fácil personalização da aparência da sua instância e clientes suportados. Isto será visível para todos os utilizadores",
- "Advanced options" : "Opções avançadas",
- "Name" : "Nome",
- "Web link" : "Hiperligação da Web",
- "a safe home for all your data" : "Um local seguro para todos os seus dados",
- "Slogan" : "Slogan",
- "Color" : "Cor",
- "Logo" : "Logótipo",
- "Upload new logo" : "Carregar novo logótipo",
- "Legal notice link" : "Ligação da informação legal",
- "Privacy policy link" : "Ligação da politica de privacidade",
- "Header logo" : "Logótipo do cabeçalho",
- "Upload new header logo" : "Carregar logótipo do cabeçalho",
- "Favicon" : "Favicon",
- "Upload new favicon" : "Carregar novo favicon",
- "Keyboard shortcuts" : "Atalhos de teclado",
- "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e verificamos para tornar tudo utilizável também sem rato e software auxiliar, como leitores de ecrã. O nosso objetivo é estar em conformidade com as {guidelines} Diretrizes de acessibilidade para o conteúdo da Web {linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
- "Move up" : "Mover para cima",
- "Move down" : "Mover para baixo",
- "Reset to default" : "Repor original",
- "Upload" : "Enviar",
- "Remove background image" : "Remover imagem de segundo plano",
- "Loading preview…" : "A carregar pre-visualização...",
- "Admin" : "Administrador",
- "Name cannot be empty" : "O Nome não pode estar vazio",
- "Pick from Files" : "Escolha a partir dos Ficheiros",
- "Plain background" : "Fundo simples",
- "Insert from {productName}" : "Inserir de {productName}",
- "Open documentation" : "Abrir documentação",
- "https://…" : "https://…",
- "Upload new login background" : "Carregar imagem de segundo plano de Login",
- "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instale a extensão PHP Imagemagick com suporte para imagens SVG para gerar automaticamente favicons com base na cor e no logotipo carregado."
-},"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/theming/l10n/ru.js b/apps/theming/l10n/ru.js
index 41a8c3e2107..a31a75731c9 100644
--- a/apps/theming/l10n/ru.js
+++ b/apps/theming/l10n/ru.js
@@ -75,7 +75,9 @@ OC.L10N.register(
"Background and login image" : "Фоновое изображение и изображение входа в систему",
"Advanced options" : "Дополнительные параметры",
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Для автоматической генерации favicon на основе загруженного логотипа и цвета нужно установить PHP расширение ImageMagick с поддержкой изображений SVG ",
+ "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 {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Универсальный доступ очень важен для нас. Мы следуем веб-стандартам и проверяем, чтобы всё было пригодно для использования без мыши и вспомогательного программного обеспечения, такого как программы чтения с экрана. Мы стремимся соответствовать {linkstart}Руководству по обеспечению доступности веб-контента{linkend} 2.1 на уровне AA, а с темой высокой контрастности — даже на уровне AAA.",
"If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker}на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}нашей команде дизайнеров{linkend}!",
+ "Unable to apply the setting." : "Невозможно применить настройку.",
"Appearance and accessibility settings" : "Внешний вид и доступность",
"Misc accessibility options" : "Различные параметры специальных возможностей",
"Enable blur background filter (may increase GPU load)" : "Включить фильтр размытия фона (может увеличить нагрузку на графический процессор)",
@@ -117,11 +119,7 @@ OC.L10N.register(
"Reset to default" : "Сбросить изменения",
"Upload" : "Отправить",
"Remove background image" : "Убрать фоновое изображение ",
- "Color" : "Цвет",
"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." : "Доступная среда очень важна для нас. При разработке мы следуем веб-стандартам, контролируя возможность пользования всем сервисом без помощи мыши и с использованием вспомогательных программ, например, выполняющих чтение с экрана. Мы стремимся к выполнению рекомендаций {guidelines}Руководства доступности Веб-Контента{linkend} 2.1 на уровне АА, а при использовании режима высокой контрастности — даже на уровне ААА.",
- "Background" : "Фон",
- "Set a custom background" : "Установить пользовательский фон",
- "Change color" : "Изменить цвет",
- "No background" : "Без фона"
+ ". Unable to apply the setting." : ". Невозможно применить настройку."
},
"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/theming/l10n/ru.json b/apps/theming/l10n/ru.json
index 5d6e4ceaeda..e7b99b0a47a 100644
--- a/apps/theming/l10n/ru.json
+++ b/apps/theming/l10n/ru.json
@@ -73,7 +73,9 @@
"Background and login image" : "Фоновое изображение и изображение входа в систему",
"Advanced options" : "Дополнительные параметры",
"Install the ImageMagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Для автоматической генерации favicon на основе загруженного логотипа и цвета нужно установить PHP расширение ImageMagick с поддержкой изображений SVG ",
+ "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 {linkstart}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Универсальный доступ очень важен для нас. Мы следуем веб-стандартам и проверяем, чтобы всё было пригодно для использования без мыши и вспомогательного программного обеспечения, такого как программы чтения с экрана. Мы стремимся соответствовать {linkstart}Руководству по обеспечению доступности веб-контента{linkend} 2.1 на уровне AA, а с темой высокой контрастности — даже на уровне AAA.",
"If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker}на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}нашей команде дизайнеров{linkend}!",
+ "Unable to apply the setting." : "Невозможно применить настройку.",
"Appearance and accessibility settings" : "Внешний вид и доступность",
"Misc accessibility options" : "Различные параметры специальных возможностей",
"Enable blur background filter (may increase GPU load)" : "Включить фильтр размытия фона (может увеличить нагрузку на графический процессор)",
@@ -115,11 +117,7 @@
"Reset to default" : "Сбросить изменения",
"Upload" : "Отправить",
"Remove background image" : "Убрать фоновое изображение ",
- "Color" : "Цвет",
"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." : "Доступная среда очень важна для нас. При разработке мы следуем веб-стандартам, контролируя возможность пользования всем сервисом без помощи мыши и с использованием вспомогательных программ, например, выполняющих чтение с экрана. Мы стремимся к выполнению рекомендаций {guidelines}Руководства доступности Веб-Контента{linkend} 2.1 на уровне АА, а при использовании режима высокой контрастности — даже на уровне ААА.",
- "Background" : "Фон",
- "Set a custom background" : "Установить пользовательский фон",
- "Change color" : "Изменить цвет",
- "No background" : "Без фона"
+ ". Unable to apply the setting." : ". Невозможно применить настройку."
},"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/theming/l10n/sc.js b/apps/theming/l10n/sc.js
index fb7f87aae8d..fd75e53174d 100644
--- a/apps/theming/l10n/sc.js
+++ b/apps/theming/l10n/sc.js
@@ -83,11 +83,6 @@ OC.L10N.register(
"Reset to default" : "Torra a sa cunfiguratzione predefinida",
"Upload" : "Càrriga",
"Remove background image" : "Boga immàgine de fundu",
- "Color" : "Colore",
- "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." : "S'atzessu universale est de importu mannu pro nois. Sighimus is istandard de sa rete e chircamus de fàghere chi totu si potzat impreare chene cursore puru, e cun programmas de assistèntzia comente leghidores de ischermu. S'intentu nostru est de acumprire is inditos de is {guidelines}Lìnias ghia de atzessibilidade pro is cuntenutos de rete{linkend} 2.1 a su livellu AA, cun su tema de cuntrastu artu a su livellu AAA.",
- "Background" : "Isfundu",
- "Set a custom background" : "Cunfigura un'isfundu personalizadu",
- "Change color" : "Càmbia colore",
- "No background" : "Perunu isfundu"
+ "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." : "S'atzessu universale est de importu mannu pro nois. Sighimus is istandard de sa rete e chircamus de fàghere chi totu si potzat impreare chene cursore puru, e cun programmas de assistèntzia comente leghidores de ischermu. S'intentu nostru est de acumprire is inditos de is {guidelines}Lìnias ghia de atzessibilidade pro is cuntenutos de rete{linkend} 2.1 a su livellu AA, cun su tema de cuntrastu artu a su livellu AAA."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/sc.json b/apps/theming/l10n/sc.json
index 2c661d3ecbc..298dca47e64 100644
--- a/apps/theming/l10n/sc.json
+++ b/apps/theming/l10n/sc.json
@@ -81,11 +81,6 @@
"Reset to default" : "Torra a sa cunfiguratzione predefinida",
"Upload" : "Càrriga",
"Remove background image" : "Boga immàgine de fundu",
- "Color" : "Colore",
- "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." : "S'atzessu universale est de importu mannu pro nois. Sighimus is istandard de sa rete e chircamus de fàghere chi totu si potzat impreare chene cursore puru, e cun programmas de assistèntzia comente leghidores de ischermu. S'intentu nostru est de acumprire is inditos de is {guidelines}Lìnias ghia de atzessibilidade pro is cuntenutos de rete{linkend} 2.1 a su livellu AA, cun su tema de cuntrastu artu a su livellu AAA.",
- "Background" : "Isfundu",
- "Set a custom background" : "Cunfigura un'isfundu personalizadu",
- "Change color" : "Càmbia colore",
- "No background" : "Perunu isfundu"
+ "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." : "S'atzessu universale est de importu mannu pro nois. Sighimus is istandard de sa rete e chircamus de fàghere chi totu si potzat impreare chene cursore puru, e cun programmas de assistèntzia comente leghidores de ischermu. S'intentu nostru est de acumprire is inditos de is {guidelines}Lìnias ghia de atzessibilidade pro is cuntenutos de rete{linkend} 2.1 a su livellu AA, cun su tema de cuntrastu artu a su livellu AAA."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/sk.js b/apps/theming/l10n/sk.js
index 8740effb3c4..8e47cc40478 100644
--- a/apps/theming/l10n/sk.js
+++ b/apps/theming/l10n/sk.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Nastaviť predvolené",
"Upload" : "Nahrať",
"Remove background image" : "Odstrániť obrázok pozadia",
- "Color" : "Farba",
"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." : "Univerzálny prístup je pre nás veľmi dôležitý. Dodržiavame webové štandardy a kontrolujeme, aby bolo všetko použiteľné aj bez myši a pomocného softvéru, ako sú čítačky obrazovky. Naším cieľom je byť v súlade s {guidelines}pokynmi pre prístup k webovému obsahu {linkend} 2.1 na úrovni AA, v režime vysokého kontrastu dokonca na úrovni AAA.",
- ". Unable to apply the setting." : ". Nepodarilo sa použiť nastavenia.",
- "Background" : "Pozadie",
- "Set a custom background" : "Nastaviť vlastné pozadie",
- "Change color" : "Zmeniť farbu",
- "No background" : "Žiadne pozadie"
+ ". Unable to apply the setting." : ". Nepodarilo sa použiť nastavenia."
},
"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/theming/l10n/sk.json b/apps/theming/l10n/sk.json
index 817d62381d2..eb7e4cfadc9 100644
--- a/apps/theming/l10n/sk.json
+++ b/apps/theming/l10n/sk.json
@@ -117,12 +117,7 @@
"Reset to default" : "Nastaviť predvolené",
"Upload" : "Nahrať",
"Remove background image" : "Odstrániť obrázok pozadia",
- "Color" : "Farba",
"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." : "Univerzálny prístup je pre nás veľmi dôležitý. Dodržiavame webové štandardy a kontrolujeme, aby bolo všetko použiteľné aj bez myši a pomocného softvéru, ako sú čítačky obrazovky. Naším cieľom je byť v súlade s {guidelines}pokynmi pre prístup k webovému obsahu {linkend} 2.1 na úrovni AA, v režime vysokého kontrastu dokonca na úrovni AAA.",
- ". Unable to apply the setting." : ". Nepodarilo sa použiť nastavenia.",
- "Background" : "Pozadie",
- "Set a custom background" : "Nastaviť vlastné pozadie",
- "Change color" : "Zmeniť farbu",
- "No background" : "Žiadne pozadie"
+ ". Unable to apply the setting." : ". Nepodarilo sa použiť nastavenia."
},"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/theming/l10n/sl.js b/apps/theming/l10n/sl.js
index fcdc54b0c4f..582a7cda3cd 100644
--- a/apps/theming/l10n/sl.js
+++ b/apps/theming/l10n/sl.js
@@ -96,11 +96,6 @@ OC.L10N.register(
"Reset to default" : "Ponastavi na privzeto",
"Upload" : "Pošlji",
"Remove background image" : "Odstrani sliko ozadja",
- "Color" : "Barva vmesnika",
- "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." : "Enostaven dostop do možnosti je za nas zelo pomemben. Sledimo spletnim standardom in preverjamo, da je vmesnik uporaben tudi brez uporabe miške in brez podporne programske opreme, kot so zaslonski bralniki in podobno. Zagotavljamo skladnost s smernicami {guidelines}Dostopnosti spletne vsebine{linkend} 2.1 na ravni AA, pri visoko kontrastni temi pa tudi na ravni AAA.",
- "Background" : "Ozadje",
- "Set a custom background" : "Nastavi ozadje po meri",
- "Change color" : "Spremeni barvo",
- "No background" : "Brez ozadja"
+ "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." : "Enostaven dostop do možnosti je za nas zelo pomemben. Sledimo spletnim standardom in preverjamo, da je vmesnik uporaben tudi brez uporabe miške in brez podporne programske opreme, kot so zaslonski bralniki in podobno. Zagotavljamo skladnost s smernicami {guidelines}Dostopnosti spletne vsebine{linkend} 2.1 na ravni AA, pri visoko kontrastni temi pa tudi na ravni AAA."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/theming/l10n/sl.json b/apps/theming/l10n/sl.json
index aa0934e4200..6c308354272 100644
--- a/apps/theming/l10n/sl.json
+++ b/apps/theming/l10n/sl.json
@@ -94,11 +94,6 @@
"Reset to default" : "Ponastavi na privzeto",
"Upload" : "Pošlji",
"Remove background image" : "Odstrani sliko ozadja",
- "Color" : "Barva vmesnika",
- "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." : "Enostaven dostop do možnosti je za nas zelo pomemben. Sledimo spletnim standardom in preverjamo, da je vmesnik uporaben tudi brez uporabe miške in brez podporne programske opreme, kot so zaslonski bralniki in podobno. Zagotavljamo skladnost s smernicami {guidelines}Dostopnosti spletne vsebine{linkend} 2.1 na ravni AA, pri visoko kontrastni temi pa tudi na ravni AAA.",
- "Background" : "Ozadje",
- "Set a custom background" : "Nastavi ozadje po meri",
- "Change color" : "Spremeni barvo",
- "No background" : "Brez ozadja"
+ "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." : "Enostaven dostop do možnosti je za nas zelo pomemben. Sledimo spletnim standardom in preverjamo, da je vmesnik uporaben tudi brez uporabe miške in brez podporne programske opreme, kot so zaslonski bralniki in podobno. Zagotavljamo skladnost s smernicami {guidelines}Dostopnosti spletne vsebine{linkend} 2.1 na ravni AA, pri visoko kontrastni temi pa tudi na ravni AAA."
},"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/theming/l10n/sq.js b/apps/theming/l10n/sq.js
deleted file mode 100644
index f388d6dd3b5..00000000000
--- a/apps/theming/l10n/sq.js
+++ /dev/null
@@ -1,41 +0,0 @@
-OC.L10N.register(
- "theming",
- {
- "Loading preview…" : "Duke ngarkuar pamjen paraprake...",
- "Admin" : "Admin",
- "Saved" : "E ruajtur",
- "a safe home for all your data" : "një vënd i sigurtë për të dhënat e tua ",
- "The given name is too long" : "Emri i dhënë është tepër i gjatë ",
- "The given web address is too long" : "Adresa e dhënë e ueb-it është tepër e gjate ",
- "The given slogan is too long" : "Slogani i dhënë është shumë i gjatë ",
- "The given color is invalid" : "Ngjyra e dhënë është invalide ",
- "The file was uploaded" : "Skedari u ngarkua",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Kartela e ngarkuar tejkalon udhëzimin MAX_FILE_SIZE që qe përcaktuar te formulari HTML",
- "No file was uploaded" : "S’u ngarkua kartelë",
- "Missing a temporary folder" : "Mungon një dosje e përkohshme",
- "No file uploaded" : "Asnjë skedar i ngarkuar",
- "Theming" : "Duke vendosur theme-n",
- "Dark theme" : "Temë e errët",
- "Enable dark theme" : "Aktivizo temën e errët",
- "Dyslexia font" : "Fonti Dyslexia",
- "Enable dyslexia font" : "Aktivizo fontin e disleksisë",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic është një font / karakter tipografik i lirë i dizajnuar për të zbutur disa nga gabimet e zakonshme të leximit të shkaktuara nga disleksija.",
- "High contrast mode" : "Modalitet me kontrast të lartë",
- "Enable high contrast mode" : "Aktivizoni modalitetin me kontrast të lartë",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Një modalitet me kontrast të lartë për të lehtësuar lundrimin. Cilësia vizuale do të reduktohet por qartësia do të rritet",
- "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." : "Qasja universale është shumë e rëndësishme për ne. Ne ndjekim standardet e uebit dhe kontrollojmë që çdo gjë të jetë e përdorshme edhe pa miun, dhe softuerë ndihmës siç janë lexuesit e ekranit. Ne synojmë të jemi në përputhje me {udhëzimet}Udhëzimet mbi Aksesueshmërinë për Përmbajtjen në Internet{linkend} 2.1 në nivelin AA, me temën e kontrastit të lartë edhe në nivelin AAA.",
- "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Nëse gjeni ndonjë problem, mos hezitoni t'i raportoni ato në {issuetracker}gjurmuesi ynë i çështjeve{linkend}. Dhe nëse doni të përfshiheni, ejani bashkohuni me {designteam}ekipin tonë të dizajnit{linkend}!",
- "Open documentation" : "Dokumentacion i hapur",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Theming bën të mundur për të përshtatur lehtësisht pamjen dhe ndjenjën e instancës suaj dhe klientëve të mbështetur. Kjo do të jetë e dukshme për të gjithë përdoruesit.",
- "Name" : "Emri",
- "Reset to default" : "Rivendos tek të paracaktuarat",
- "Slogan" : "Sllogan",
- "Color" : "Ngjyrë ",
- "Logo" : "Logo",
- "Upload new logo" : "Ngarko logo të re ",
- "Login image" : "Imazhi i hyrjes",
- "Upload new login background" : "Ngarko background të ri hyrjeje",
- "Remove background image" : "Hiqni imazhin në sfond",
- "Advanced options" : "Opsione të avancuara"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/sq.json b/apps/theming/l10n/sq.json
deleted file mode 100644
index 7fa7b58ad25..00000000000
--- a/apps/theming/l10n/sq.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{ "translations": {
- "Loading preview…" : "Duke ngarkuar pamjen paraprake...",
- "Admin" : "Admin",
- "Saved" : "E ruajtur",
- "a safe home for all your data" : "një vënd i sigurtë për të dhënat e tua ",
- "The given name is too long" : "Emri i dhënë është tepër i gjatë ",
- "The given web address is too long" : "Adresa e dhënë e ueb-it është tepër e gjate ",
- "The given slogan is too long" : "Slogani i dhënë është shumë i gjatë ",
- "The given color is invalid" : "Ngjyra e dhënë është invalide ",
- "The file was uploaded" : "Skedari u ngarkua",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Kartela e ngarkuar tejkalon udhëzimin MAX_FILE_SIZE që qe përcaktuar te formulari HTML",
- "No file was uploaded" : "S’u ngarkua kartelë",
- "Missing a temporary folder" : "Mungon një dosje e përkohshme",
- "No file uploaded" : "Asnjë skedar i ngarkuar",
- "Theming" : "Duke vendosur theme-n",
- "Dark theme" : "Temë e errët",
- "Enable dark theme" : "Aktivizo temën e errët",
- "Dyslexia font" : "Fonti Dyslexia",
- "Enable dyslexia font" : "Aktivizo fontin e disleksisë",
- "OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic është një font / karakter tipografik i lirë i dizajnuar për të zbutur disa nga gabimet e zakonshme të leximit të shkaktuara nga disleksija.",
- "High contrast mode" : "Modalitet me kontrast të lartë",
- "Enable high contrast mode" : "Aktivizoni modalitetin me kontrast të lartë",
- "A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Një modalitet me kontrast të lartë për të lehtësuar lundrimin. Cilësia vizuale do të reduktohet por qartësia do të rritet",
- "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." : "Qasja universale është shumë e rëndësishme për ne. Ne ndjekim standardet e uebit dhe kontrollojmë që çdo gjë të jetë e përdorshme edhe pa miun, dhe softuerë ndihmës siç janë lexuesit e ekranit. Ne synojmë të jemi në përputhje me {udhëzimet}Udhëzimet mbi Aksesueshmërinë për Përmbajtjen në Internet{linkend} 2.1 në nivelin AA, me temën e kontrastit të lartë edhe në nivelin AAA.",
- "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Nëse gjeni ndonjë problem, mos hezitoni t'i raportoni ato në {issuetracker}gjurmuesi ynë i çështjeve{linkend}. Dhe nëse doni të përfshiheni, ejani bashkohuni me {designteam}ekipin tonë të dizajnit{linkend}!",
- "Open documentation" : "Dokumentacion i hapur",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Theming bën të mundur për të përshtatur lehtësisht pamjen dhe ndjenjën e instancës suaj dhe klientëve të mbështetur. Kjo do të jetë e dukshme për të gjithë përdoruesit.",
- "Name" : "Emri",
- "Reset to default" : "Rivendos tek të paracaktuarat",
- "Slogan" : "Sllogan",
- "Color" : "Ngjyrë ",
- "Logo" : "Logo",
- "Upload new logo" : "Ngarko logo të re ",
- "Login image" : "Imazhi i hyrjes",
- "Upload new login background" : "Ngarko background të ri hyrjeje",
- "Remove background image" : "Hiqni imazhin në sfond",
- "Advanced options" : "Opsione të avancuara"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/theming/l10n/sr.js b/apps/theming/l10n/sr.js
index 2f5a777a908..a449a572e3a 100644
--- a/apps/theming/l10n/sr.js
+++ b/apps/theming/l10n/sr.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Врати на подразумевано",
"Upload" : "Отпреми",
"Remove background image" : "Уклони позадинску слику",
- "Color" : "Боја",
"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." : "Универзални приступ нам је веома важан. Пратимо веб стандарде и проверавамо да све буде употребљиво и без миша а и са помоћним софтвером попут читача екрана. Циљ нам је да будемо усклађени са документом {guidelines}Смернице приступачности веб садржаја{linkend} 2.1 на АА нивоу а са темом високог контраста и на ААА нивоу.",
- ". Unable to apply the setting." : ". Подешавање није могло да се примени.",
- "Background" : "Позадина",
- "Set a custom background" : "Постави пролагођену позадину",
- "Change color" : "Промени боју",
- "No background" : "Без позадине"
+ ". Unable to apply the setting." : ". Подешавање није могло да се примени."
},
"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/theming/l10n/sr.json b/apps/theming/l10n/sr.json
index 591315e1fc4..3e889d46e18 100644
--- a/apps/theming/l10n/sr.json
+++ b/apps/theming/l10n/sr.json
@@ -117,12 +117,7 @@
"Reset to default" : "Врати на подразумевано",
"Upload" : "Отпреми",
"Remove background image" : "Уклони позадинску слику",
- "Color" : "Боја",
"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." : "Универзални приступ нам је веома важан. Пратимо веб стандарде и проверавамо да све буде употребљиво и без миша а и са помоћним софтвером попут читача екрана. Циљ нам је да будемо усклађени са документом {guidelines}Смернице приступачности веб садржаја{linkend} 2.1 на АА нивоу а са темом високог контраста и на ААА нивоу.",
- ". Unable to apply the setting." : ". Подешавање није могло да се примени.",
- "Background" : "Позадина",
- "Set a custom background" : "Постави пролагођену позадину",
- "Change color" : "Промени боју",
- "No background" : "Без позадине"
+ ". Unable to apply the setting." : ". Подешавање није могло да се примени."
},"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/theming/l10n/sv.js b/apps/theming/l10n/sv.js
index 8da22617a8c..dd311b73b08 100644
--- a/apps/theming/l10n/sv.js
+++ b/apps/theming/l10n/sv.js
@@ -109,11 +109,6 @@ OC.L10N.register(
"Reset to default" : "Återställ till grundinställningar",
"Upload" : "Ladda upp",
"Remove background image" : "Ta bort bakgrundsbild",
- "Color" : "Färg",
- "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." : "Allmän åtkomst är mycket viktig för oss. Vi följer webbstandarder och kontrollerar att allt är användbart även utan mus och hjälpmedel som skärmläsare. Vi strävar efter att följa {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 på AA-nivå, med temat hög kontrast även på AAA-nivå.",
- "Background" : "Bakgrund",
- "Set a custom background" : "Ställ in en anpassad bakgrund",
- "Change color" : "Ändra färg",
- "No background" : "Ingen bakgrund"
+ "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." : "Allmän åtkomst är mycket viktig för oss. Vi följer webbstandarder och kontrollerar att allt är användbart även utan mus och hjälpmedel som skärmläsare. Vi strävar efter att följa {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 på AA-nivå, med temat hög kontrast även på AAA-nivå."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/sv.json b/apps/theming/l10n/sv.json
index c5a70ca319a..615f7618b41 100644
--- a/apps/theming/l10n/sv.json
+++ b/apps/theming/l10n/sv.json
@@ -107,11 +107,6 @@
"Reset to default" : "Återställ till grundinställningar",
"Upload" : "Ladda upp",
"Remove background image" : "Ta bort bakgrundsbild",
- "Color" : "Färg",
- "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." : "Allmän åtkomst är mycket viktig för oss. Vi följer webbstandarder och kontrollerar att allt är användbart även utan mus och hjälpmedel som skärmläsare. Vi strävar efter att följa {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 på AA-nivå, med temat hög kontrast även på AAA-nivå.",
- "Background" : "Bakgrund",
- "Set a custom background" : "Ställ in en anpassad bakgrund",
- "Change color" : "Ändra färg",
- "No background" : "Ingen bakgrund"
+ "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." : "Allmän åtkomst är mycket viktig för oss. Vi följer webbstandarder och kontrollerar att allt är användbart även utan mus och hjälpmedel som skärmläsare. Vi strävar efter att följa {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 på AA-nivå, med temat hög kontrast även på AAA-nivå."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/tr.js b/apps/theming/l10n/tr.js
index 1f5e6106157..418bc837641 100644
--- a/apps/theming/l10n/tr.js
+++ b/apps/theming/l10n/tr.js
@@ -28,7 +28,7 @@ OC.L10N.register(
"Theming" : "Tema",
"Appearance and accessibility" : "Görünüm ve erişilebilirlik",
"PHP Imagick module" : "PHP Imagick modülü",
- "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Tema uygulamasında olmasına rağmen \"imagick\" PHP modülü kullanıma alınmamış. Favicon oluşturma işleminin doğru çalışması için bu modülü kurmanız ve kullanıma almanız gerekir.",
+ "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Tema uygulamasında olmasına rağmen \"imagick\" PHP modülü kullanıma alınmamış. Favicon oluşturma işleminin yapılabilmesi için bu modülü kurmanız ve kullanıma almanız gerekir.",
"The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Bu kopyadaki PHP \"imagick\" modülünde SVG desteği yok. Daha iyi başarım ve uyumluluk için bu modülün kurulması önemle önerilir.",
"Dark theme with high contrast mode" : "Koyu tema ve yüksek renk karşıtlığı kipi",
"Enable dark high contrast mode" : "Koyu yüksek renk karşıtlığı kipi kullanılsın",
@@ -65,7 +65,7 @@ OC.L10N.register(
"Upload new favicon" : "Yeni favicon yükle",
"User settings" : "Kullanıcı ayarları",
"Disable user theming" : "Kullanıcı teması kullanımdan kaldırılsın",
- "Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Kopyanızı seçip özelleştirebilmenize rağmen, kullanıcılar arka planlarını ve renklerini değiştirebilir. Özelleştirmenizi dayatmak istiyorsanız, bu seçeneği kullanıma alabilirsiniz.",
+ "Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Kopyanızı seçip özelleştirebilmenize rağmen, kullanıcılar arka planlarını ve renklerini değiştirebilir. Özelleştirmenizi zorunlu kılmak istiyorsanız, bu seçeneği açabilirsiniz.",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Temalar kullandığınız kopyanın ve desteklenen istemcilerin genel görünümün kolayca değiştirilmesini sağlar. Tüm kullanıcılara görüntülenir.",
"Instead of a background image you can also configure a plain background color. If you use a background image changing this color will influence the color of the app menu icons." : "Arka plan görseli yerine düz bir arka plan rengi de yapılandırabilirsiniz. Arka plan görseli kullanıyorsanız bu rengi değiştirmek uygulama menüsü simgelerinin rengini etkiler.",
"Background color" : "Arka plan rengi",
@@ -81,7 +81,7 @@ OC.L10N.register(
"Appearance and accessibility settings" : "Görünüm ve erişilebilirlik ayarları",
"Misc accessibility options" : "Çeşitli erişilebilirlik seçenekleri",
"Enable blur background filter (may increase GPU load)" : "Arka plan bulanıklaştırılsın (grafik işlemci yükünü artırabilir)",
- "Customization has been disabled by your administrator" : "Özelleştirme yöneticiniz tarafından kullanımdan kaldırılmış",
+ "Customization has been disabled by your administrator" : "Özelleştirme özelliği yöneticiniz tarafından kapatılmış",
"Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Önemli ögeleri vurgulamak için bir birincil renk ayarlayın. Birincil düğmeler gibi ögeler için kullanılan renk, erişilebilirlik gereksinimlerini karşılamak üzere ayarlandığında biraz farklılık gösterebilir.",
"Background and color" : "Arka plan ve renk",
"The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "Arka plan varsayılan ayardaki bir görsele, özel olarak yüklenen bir görsele veya düz bir renge ayarlanabilir.",
@@ -97,7 +97,7 @@ OC.L10N.register(
"Custom background" : "Özel arka plan",
"Plain background" : "Düz arka plan",
"Default background" : "Varsayılan arka plan",
- "Theme selection is enforced" : "Tema seçimi zorunludur",
+ "Theme selection is enforced" : "Tema seçimi zorunlu kılınmış",
"Could not set the app order" : "Uygulama sırası ayarlanamadı",
"Could not reset the app order" : "Uygulama sırasını sıfırla",
"Navigation bar settings" : "Gezinme çubuğu ayarları",
@@ -114,17 +114,12 @@ OC.L10N.register(
"Global default app" : "Genel varsayılan uygulama",
"Global default apps" : "Genel varsayılan uygulamalar",
"Default app priority" : "Varsayılan uygulama önceliği",
- "If an app is not enabled for a user, the next app with lower priority is used." : "Bir uygulama bir kullanıcıda kullanıma alınmamışsa, daha düşük öncelikli bir sonraki uygulama kullanılır.",
+ "If an app is not enabled for a user, the next app with lower priority is used." : "Bir uygulama, bir kullanıcı için kullanıma alınmamışsa, daha düşük öncelikli bir sonraki uygulama kullanılır.",
"Select a custom color" : "Özel bir renk seçin",
"Reset to default" : "Varsayılanlara dön",
"Upload" : "Yükle",
"Remove background image" : "Arka plan görselini kaldır",
- "Color" : "Renk",
"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." : "Uygulamalarımızı herkesin kullanabilmesini çok önemsiyoruz. internet sitesi standartlarını izleyerek, işlemlerin fare olmadan da yapılabilmesini ve ekran okuyucular gibi yardımcı yazılımların kullanılabilmesini sağlıyoruz. AAA düzeyinde yüksek renk karşıtlığı teması ile AA düzeyinde {guidelines}İnternet Sitesi İçeriği Erişilebilirlik Kuralları{linkend} 2.1 ile uyumlu olmayı amaçladık.",
- ". Unable to apply the setting." : ". Ayar uygulanamadı.",
- "Background" : "Arka plan",
- "Set a custom background" : "Özel bir arka plan ayarlayın",
- "Change color" : "Rengi değiştir",
- "No background" : "Arka plan olmasın"
+ ". Unable to apply the setting." : ". Ayar uygulanamadı."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/theming/l10n/tr.json b/apps/theming/l10n/tr.json
index 98bb3b6fc36..3642c44db8f 100644
--- a/apps/theming/l10n/tr.json
+++ b/apps/theming/l10n/tr.json
@@ -26,7 +26,7 @@
"Theming" : "Tema",
"Appearance and accessibility" : "Görünüm ve erişilebilirlik",
"PHP Imagick module" : "PHP Imagick modülü",
- "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Tema uygulamasında olmasına rağmen \"imagick\" PHP modülü kullanıma alınmamış. Favicon oluşturma işleminin doğru çalışması için bu modülü kurmanız ve kullanıma almanız gerekir.",
+ "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Tema uygulamasında olmasına rağmen \"imagick\" PHP modülü kullanıma alınmamış. Favicon oluşturma işleminin yapılabilmesi için bu modülü kurmanız ve kullanıma almanız gerekir.",
"The PHP module \"imagick\" in this instance has no SVG support. For better compatibility it is recommended to install it." : "Bu kopyadaki PHP \"imagick\" modülünde SVG desteği yok. Daha iyi başarım ve uyumluluk için bu modülün kurulması önemle önerilir.",
"Dark theme with high contrast mode" : "Koyu tema ve yüksek renk karşıtlığı kipi",
"Enable dark high contrast mode" : "Koyu yüksek renk karşıtlığı kipi kullanılsın",
@@ -63,7 +63,7 @@
"Upload new favicon" : "Yeni favicon yükle",
"User settings" : "Kullanıcı ayarları",
"Disable user theming" : "Kullanıcı teması kullanımdan kaldırılsın",
- "Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Kopyanızı seçip özelleştirebilmenize rağmen, kullanıcılar arka planlarını ve renklerini değiştirebilir. Özelleştirmenizi dayatmak istiyorsanız, bu seçeneği kullanıma alabilirsiniz.",
+ "Although you can select and customize your instance, users can change their background and colors. If you want to enforce your customization, you can toggle this on." : "Kopyanızı seçip özelleştirebilmenize rağmen, kullanıcılar arka planlarını ve renklerini değiştirebilir. Özelleştirmenizi zorunlu kılmak istiyorsanız, bu seçeneği açabilirsiniz.",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Temalar kullandığınız kopyanın ve desteklenen istemcilerin genel görünümün kolayca değiştirilmesini sağlar. Tüm kullanıcılara görüntülenir.",
"Instead of a background image you can also configure a plain background color. If you use a background image changing this color will influence the color of the app menu icons." : "Arka plan görseli yerine düz bir arka plan rengi de yapılandırabilirsiniz. Arka plan görseli kullanıyorsanız bu rengi değiştirmek uygulama menüsü simgelerinin rengini etkiler.",
"Background color" : "Arka plan rengi",
@@ -79,7 +79,7 @@
"Appearance and accessibility settings" : "Görünüm ve erişilebilirlik ayarları",
"Misc accessibility options" : "Çeşitli erişilebilirlik seçenekleri",
"Enable blur background filter (may increase GPU load)" : "Arka plan bulanıklaştırılsın (grafik işlemci yükünü artırabilir)",
- "Customization has been disabled by your administrator" : "Özelleştirme yöneticiniz tarafından kullanımdan kaldırılmış",
+ "Customization has been disabled by your administrator" : "Özelleştirme özelliği yöneticiniz tarafından kapatılmış",
"Set a primary color to highlight important elements. The color used for elements such as primary buttons might differ a bit as it gets adjusted to fulfill accessibility requirements." : "Önemli ögeleri vurgulamak için bir birincil renk ayarlayın. Birincil düğmeler gibi ögeler için kullanılan renk, erişilebilirlik gereksinimlerini karşılamak üzere ayarlandığında biraz farklılık gösterebilir.",
"Background and color" : "Arka plan ve renk",
"The background can be set to an image from the default set, a custom uploaded image, or a plain color." : "Arka plan varsayılan ayardaki bir görsele, özel olarak yüklenen bir görsele veya düz bir renge ayarlanabilir.",
@@ -95,7 +95,7 @@
"Custom background" : "Özel arka plan",
"Plain background" : "Düz arka plan",
"Default background" : "Varsayılan arka plan",
- "Theme selection is enforced" : "Tema seçimi zorunludur",
+ "Theme selection is enforced" : "Tema seçimi zorunlu kılınmış",
"Could not set the app order" : "Uygulama sırası ayarlanamadı",
"Could not reset the app order" : "Uygulama sırasını sıfırla",
"Navigation bar settings" : "Gezinme çubuğu ayarları",
@@ -112,17 +112,12 @@
"Global default app" : "Genel varsayılan uygulama",
"Global default apps" : "Genel varsayılan uygulamalar",
"Default app priority" : "Varsayılan uygulama önceliği",
- "If an app is not enabled for a user, the next app with lower priority is used." : "Bir uygulama bir kullanıcıda kullanıma alınmamışsa, daha düşük öncelikli bir sonraki uygulama kullanılır.",
+ "If an app is not enabled for a user, the next app with lower priority is used." : "Bir uygulama, bir kullanıcı için kullanıma alınmamışsa, daha düşük öncelikli bir sonraki uygulama kullanılır.",
"Select a custom color" : "Özel bir renk seçin",
"Reset to default" : "Varsayılanlara dön",
"Upload" : "Yükle",
"Remove background image" : "Arka plan görselini kaldır",
- "Color" : "Renk",
"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." : "Uygulamalarımızı herkesin kullanabilmesini çok önemsiyoruz. internet sitesi standartlarını izleyerek, işlemlerin fare olmadan da yapılabilmesini ve ekran okuyucular gibi yardımcı yazılımların kullanılabilmesini sağlıyoruz. AAA düzeyinde yüksek renk karşıtlığı teması ile AA düzeyinde {guidelines}İnternet Sitesi İçeriği Erişilebilirlik Kuralları{linkend} 2.1 ile uyumlu olmayı amaçladık.",
- ". Unable to apply the setting." : ". Ayar uygulanamadı.",
- "Background" : "Arka plan",
- "Set a custom background" : "Özel bir arka plan ayarlayın",
- "Change color" : "Rengi değiştir",
- "No background" : "Arka plan olmasın"
+ ". Unable to apply the setting." : ". Ayar uygulanamadı."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/ug.js b/apps/theming/l10n/ug.js
index 4f379c4bb31..a7f0e89c285 100644
--- a/apps/theming/l10n/ug.js
+++ b/apps/theming/l10n/ug.js
@@ -117,11 +117,6 @@ OC.L10N.register(
"Reset to default" : "سۈكۈتتىكى ھالىتىگە قايتىڭ",
"Upload" : "يۈكلە",
"Remove background image" : "تەگلىك سۈرىتىنى ئۆچۈرۈڭ",
- "Color" : "رەڭ",
- "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." : "ھەممىباب زىيارەت قىلىش بىز ئۈچۈن ئىنتايىن مۇھىم. بىز تور ئۆلچىمىگە ئەمەل قىلىپ ، مائۇسسىز ۋە ئېكران ئوقۇغۇچ قاتارلىق ياردەمچى يۇمشاق دېتاللارنىڭ ھەممىسىنى ئىشلىتىشكە بولىدىغانلىقىنى تەكشۈرۈپ تۇرىمىز. بىز AA سەۋىيىسىدىكى {guidelines} تور مەزمۇنىنىڭ زىيارەت قىلىش قوللانمىسى {linkend} 2.1 گە ماسلىشىشنى مەقسەت قىلىمىز ، يۇقىرى سېلىشتۇرما تېمىسى ھەتتا AAA سەۋىيىسىدە.",
- "Background" : "تەگلىك",
- "Set a custom background" : "ئىختىيارى تەگلىك بەلگىلەڭ",
- "Change color" : "رەڭنى ئۆزگەرتىش",
- "No background" : "تەگلىك يوق"
+ "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." : "ھەممىباب زىيارەت قىلىش بىز ئۈچۈن ئىنتايىن مۇھىم. بىز تور ئۆلچىمىگە ئەمەل قىلىپ ، مائۇسسىز ۋە ئېكران ئوقۇغۇچ قاتارلىق ياردەمچى يۇمشاق دېتاللارنىڭ ھەممىسىنى ئىشلىتىشكە بولىدىغانلىقىنى تەكشۈرۈپ تۇرىمىز. بىز AA سەۋىيىسىدىكى {guidelines} تور مەزمۇنىنىڭ زىيارەت قىلىش قوللانمىسى {linkend} 2.1 گە ماسلىشىشنى مەقسەت قىلىمىز ، يۇقىرى سېلىشتۇرما تېمىسى ھەتتا AAA سەۋىيىسىدە."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/ug.json b/apps/theming/l10n/ug.json
index 804107a16b7..265de7c6456 100644
--- a/apps/theming/l10n/ug.json
+++ b/apps/theming/l10n/ug.json
@@ -115,11 +115,6 @@
"Reset to default" : "سۈكۈتتىكى ھالىتىگە قايتىڭ",
"Upload" : "يۈكلە",
"Remove background image" : "تەگلىك سۈرىتىنى ئۆچۈرۈڭ",
- "Color" : "رەڭ",
- "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." : "ھەممىباب زىيارەت قىلىش بىز ئۈچۈن ئىنتايىن مۇھىم. بىز تور ئۆلچىمىگە ئەمەل قىلىپ ، مائۇسسىز ۋە ئېكران ئوقۇغۇچ قاتارلىق ياردەمچى يۇمشاق دېتاللارنىڭ ھەممىسىنى ئىشلىتىشكە بولىدىغانلىقىنى تەكشۈرۈپ تۇرىمىز. بىز AA سەۋىيىسىدىكى {guidelines} تور مەزمۇنىنىڭ زىيارەت قىلىش قوللانمىسى {linkend} 2.1 گە ماسلىشىشنى مەقسەت قىلىمىز ، يۇقىرى سېلىشتۇرما تېمىسى ھەتتا AAA سەۋىيىسىدە.",
- "Background" : "تەگلىك",
- "Set a custom background" : "ئىختىيارى تەگلىك بەلگىلەڭ",
- "Change color" : "رەڭنى ئۆزگەرتىش",
- "No background" : "تەگلىك يوق"
+ "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." : "ھەممىباب زىيارەت قىلىش بىز ئۈچۈن ئىنتايىن مۇھىم. بىز تور ئۆلچىمىگە ئەمەل قىلىپ ، مائۇسسىز ۋە ئېكران ئوقۇغۇچ قاتارلىق ياردەمچى يۇمشاق دېتاللارنىڭ ھەممىسىنى ئىشلىتىشكە بولىدىغانلىقىنى تەكشۈرۈپ تۇرىمىز. بىز AA سەۋىيىسىدىكى {guidelines} تور مەزمۇنىنىڭ زىيارەت قىلىش قوللانمىسى {linkend} 2.1 گە ماسلىشىشنى مەقسەت قىلىمىز ، يۇقىرى سېلىشتۇرما تېمىسى ھەتتا AAA سەۋىيىسىدە."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/uk.js b/apps/theming/l10n/uk.js
index 003df4f1be0..f24ffde5f72 100644
--- a/apps/theming/l10n/uk.js
+++ b/apps/theming/l10n/uk.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "Скинути до типового",
"Upload" : "Завантажити",
"Remove background image" : "Вилучити зображення тла",
- "Color" : "Колір",
"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." : "Для нас дуже важливо забезпечити доступ для всіх. Ми дотримуємось сучасних стандартів розробки у вебі, намагаємося забезпечити зручність користування без комп'ютерної миші, а також за допомогою допоміжного програмного забезпечення, наприклад, застосунки зчитування з екрана. Ми прагнемо відповідати {guidelines} Правилам доступу до вмісту у мережі {linkend} 2.1 на рівні AA, а з темою високої контрастності навіть на рівні AAA.",
- ". Unable to apply the setting." : ". Не вдалося застосувати налаштування.",
- "Background" : "Тло",
- "Set a custom background" : "Встановити спеціальне зображення тла",
- "Change color" : "Змінити колір",
- "No background" : "Без тла"
+ ". Unable to apply the setting." : ". Не вдалося застосувати налаштування."
},
"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/theming/l10n/uk.json b/apps/theming/l10n/uk.json
index e24475bac8a..aa6a292e7a3 100644
--- a/apps/theming/l10n/uk.json
+++ b/apps/theming/l10n/uk.json
@@ -117,12 +117,7 @@
"Reset to default" : "Скинути до типового",
"Upload" : "Завантажити",
"Remove background image" : "Вилучити зображення тла",
- "Color" : "Колір",
"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." : "Для нас дуже важливо забезпечити доступ для всіх. Ми дотримуємось сучасних стандартів розробки у вебі, намагаємося забезпечити зручність користування без комп'ютерної миші, а також за допомогою допоміжного програмного забезпечення, наприклад, застосунки зчитування з екрана. Ми прагнемо відповідати {guidelines} Правилам доступу до вмісту у мережі {linkend} 2.1 на рівні AA, а з темою високої контрастності навіть на рівні AAA.",
- ". Unable to apply the setting." : ". Не вдалося застосувати налаштування.",
- "Background" : "Тло",
- "Set a custom background" : "Встановити спеціальне зображення тла",
- "Change color" : "Змінити колір",
- "No background" : "Без тла"
+ ". Unable to apply the setting." : ". Не вдалося застосувати налаштування."
},"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/theming/l10n/vi.js b/apps/theming/l10n/vi.js
index bab10f5dc69..f8d3a6d370c 100644
--- a/apps/theming/l10n/vi.js
+++ b/apps/theming/l10n/vi.js
@@ -102,11 +102,6 @@ OC.L10N.register(
"Reset to default" : "Đặt lại về mặc định",
"Upload" : "Tải lên",
"Remove background image" : "Xóa bỏ ảnh nền",
- "Color" : "Màu sắc",
- "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." : "Sự truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines}Nguyên Tắc Truy Cập Cho Nội Dung Mạng{linkend} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA",
- "Background" : "Nền",
- "Set a custom background" : "Đặt nền tùy chỉnh",
- "Change color" : "Thay đổi màu sắc",
- "No background" : "Không có nền"
+ "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." : "Sự truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines}Nguyên Tắc Truy Cập Cho Nội Dung Mạng{linkend} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA"
},
"nplurals=1; plural=0;");
diff --git a/apps/theming/l10n/vi.json b/apps/theming/l10n/vi.json
index 44d222339e1..e3dd1bf1050 100644
--- a/apps/theming/l10n/vi.json
+++ b/apps/theming/l10n/vi.json
@@ -100,11 +100,6 @@
"Reset to default" : "Đặt lại về mặc định",
"Upload" : "Tải lên",
"Remove background image" : "Xóa bỏ ảnh nền",
- "Color" : "Màu sắc",
- "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." : "Sự truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines}Nguyên Tắc Truy Cập Cho Nội Dung Mạng{linkend} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA",
- "Background" : "Nền",
- "Set a custom background" : "Đặt nền tùy chỉnh",
- "Change color" : "Thay đổi màu sắc",
- "No background" : "Không có nền"
+ "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." : "Sự truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines}Nguyên Tắc Truy Cập Cho Nội Dung Mạng{linkend} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/zh_CN.js b/apps/theming/l10n/zh_CN.js
index 1c414d55219..8a4cde098e1 100644
--- a/apps/theming/l10n/zh_CN.js
+++ b/apps/theming/l10n/zh_CN.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "重置为默认设置",
"Upload" : "上传",
"Remove background image" : "删除背景图片",
- "Color" : "颜色",
"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." : "通用访问对我们非常重要。我们遵循网络标准,并进行检查以确保所有内容都可以在没有鼠标或辅助软件(例如屏幕阅读器)的情况下使用。我们的目标是达到 {guidelines}Web 内容可访问性指南 {linkend} 2.1 中的 AA 级别,并另外通过高对比度主题达到 AAA 级别。",
- ". Unable to apply the setting." : "。无法应用此设置。",
- "Background" : "背景",
- "Set a custom background" : "选择自定义背景",
- "Change color" : "更改颜色",
- "No background" : "没有背景"
+ ". Unable to apply the setting." : "。无法应用此设置。"
},
"nplurals=1; plural=0;");
diff --git a/apps/theming/l10n/zh_CN.json b/apps/theming/l10n/zh_CN.json
index 6ab7ff340e6..051f16217d7 100644
--- a/apps/theming/l10n/zh_CN.json
+++ b/apps/theming/l10n/zh_CN.json
@@ -117,12 +117,7 @@
"Reset to default" : "重置为默认设置",
"Upload" : "上传",
"Remove background image" : "删除背景图片",
- "Color" : "颜色",
"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." : "通用访问对我们非常重要。我们遵循网络标准,并进行检查以确保所有内容都可以在没有鼠标或辅助软件(例如屏幕阅读器)的情况下使用。我们的目标是达到 {guidelines}Web 内容可访问性指南 {linkend} 2.1 中的 AA 级别,并另外通过高对比度主题达到 AAA 级别。",
- ". Unable to apply the setting." : "。无法应用此设置。",
- "Background" : "背景",
- "Set a custom background" : "选择自定义背景",
- "Change color" : "更改颜色",
- "No background" : "没有背景"
+ ". Unable to apply the setting." : "。无法应用此设置。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/zh_HK.js b/apps/theming/l10n/zh_HK.js
index b57097a6dab..df062a8b2c7 100644
--- a/apps/theming/l10n/zh_HK.js
+++ b/apps/theming/l10n/zh_HK.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "恢復預設值",
"Upload" : "上傳",
"Remove background image" : "移除背景圖片",
- "Color" : "顏色",
"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." : "我們非常重視無障礙使用。我們遵循網路標準,並透過檢查來確保所有內容皆可在沒有滑鼠或輔助軟體(例如螢幕閱讀器)的情況下使用。我們目標是能達到 {guidelines} 網頁內容可及性指引{linkend} 2.1 版的 AA 等級,加上高對比度主題甚至還能到 AAA 等級。",
- ". Unable to apply the setting." : "。無法套用該設定。",
- "Background" : "背景",
- "Set a custom background" : "設置自定義背景",
- "Change color" : "變更顏色",
- "No background" : "無背景"
+ ". Unable to apply the setting." : "。無法套用該設定。"
},
"nplurals=1; plural=0;");
diff --git a/apps/theming/l10n/zh_HK.json b/apps/theming/l10n/zh_HK.json
index 6e003040067..d58924476c2 100644
--- a/apps/theming/l10n/zh_HK.json
+++ b/apps/theming/l10n/zh_HK.json
@@ -117,12 +117,7 @@
"Reset to default" : "恢復預設值",
"Upload" : "上傳",
"Remove background image" : "移除背景圖片",
- "Color" : "顏色",
"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." : "我們非常重視無障礙使用。我們遵循網路標準,並透過檢查來確保所有內容皆可在沒有滑鼠或輔助軟體(例如螢幕閱讀器)的情況下使用。我們目標是能達到 {guidelines} 網頁內容可及性指引{linkend} 2.1 版的 AA 等級,加上高對比度主題甚至還能到 AAA 等級。",
- ". Unable to apply the setting." : "。無法套用該設定。",
- "Background" : "背景",
- "Set a custom background" : "設置自定義背景",
- "Change color" : "變更顏色",
- "No background" : "無背景"
+ ". Unable to apply the setting." : "。無法套用該設定。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/zh_TW.js b/apps/theming/l10n/zh_TW.js
index 5db873909f3..af17fe6bea8 100644
--- a/apps/theming/l10n/zh_TW.js
+++ b/apps/theming/l10n/zh_TW.js
@@ -119,12 +119,7 @@ OC.L10N.register(
"Reset to default" : "重設為預設值",
"Upload" : "上傳",
"Remove background image" : "移除背景圖片",
- "Color" : "顏色",
"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." : "我們非常重視無障礙存取。我們遵循網頁標準,並透過檢查來確保所有內容皆可在沒有滑鼠,或是在輔助軟體,例如螢幕閱讀器的情況下使用。我們目標是能達到《{guidelines}網頁內容無障礙指引{linkend}》2.1 版的 AA 等級,加上高對比度主題後,甚至還能達到 AAA 等級。",
- ". Unable to apply the setting." : "無法套用設定。",
- "Background" : "背景",
- "Set a custom background" : "設定自訂背景",
- "Change color" : "變更顏色",
- "No background" : "無背景"
+ ". Unable to apply the setting." : "無法套用設定。"
},
"nplurals=1; plural=0;");
diff --git a/apps/theming/l10n/zh_TW.json b/apps/theming/l10n/zh_TW.json
index 8f319c14ff1..34d79acb58f 100644
--- a/apps/theming/l10n/zh_TW.json
+++ b/apps/theming/l10n/zh_TW.json
@@ -117,12 +117,7 @@
"Reset to default" : "重設為預設值",
"Upload" : "上傳",
"Remove background image" : "移除背景圖片",
- "Color" : "顏色",
"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." : "我們非常重視無障礙存取。我們遵循網頁標準,並透過檢查來確保所有內容皆可在沒有滑鼠,或是在輔助軟體,例如螢幕閱讀器的情況下使用。我們目標是能達到《{guidelines}網頁內容無障礙指引{linkend}》2.1 版的 AA 等級,加上高對比度主題後,甚至還能達到 AAA 等級。",
- ". Unable to apply the setting." : "無法套用設定。",
- "Background" : "背景",
- "Set a custom background" : "設定自訂背景",
- "Change color" : "變更顏色",
- "No background" : "無背景"
+ ". Unable to apply the setting." : "無法套用設定。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/theming/lib/Capabilities.php b/apps/theming/lib/Capabilities.php
index b6145298d95..c9bc98036f5 100644
--- a/apps/theming/lib/Capabilities.php
+++ b/apps/theming/lib/Capabilities.php
@@ -41,6 +41,7 @@ class Capabilities implements IPublicCapability {
* @return array{
* theming: array{
* name: string,
+ * productName: string,
* url: string,
* slogan: string,
* color: string,
@@ -94,6 +95,7 @@ class Capabilities implements IPublicCapability {
return [
'theming' => [
'name' => $this->theming->getName(),
+ 'productName' => $this->theming->getProductName(),
'url' => $this->theming->getBaseUrl(),
'slogan' => $this->theming->getSlogan(),
'color' => $color,
diff --git a/apps/theming/lib/IconBuilder.php b/apps/theming/lib/IconBuilder.php
index 4ab9857e2ce..55e0a1e930c 100644
--- a/apps/theming/lib/IconBuilder.php
+++ b/apps/theming/lib/IconBuilder.php
@@ -90,18 +90,17 @@ class IconBuilder {
* Render app icon on themed background color
* fallback to logo
*
- * @param $app string app name
- * @param $size int size of the icon in px
+ * @param string $app app name
+ * @param int $size size of the icon in px
* @return Imagick|false
*/
public function renderAppIcon($app, $size) {
$appIcon = $this->util->getAppIcon($app);
- if ($appIcon === false) {
- return false;
- }
if ($appIcon instanceof ISimpleFile) {
$appIconContent = $appIcon->getContent();
$mime = $appIcon->getMimeType();
+ } elseif (!file_exists($appIcon)) {
+ return false;
} else {
$appIconContent = file_get_contents($appIcon);
$mime = mime_content_type($appIcon);
@@ -187,13 +186,13 @@ class IconBuilder {
}
/**
- * @param $app string app name
- * @param $image string relative path to svg file in app directory
+ * @param string $app app name
+ * @param string $image relative path to svg file in app directory
* @return string|false content of a colorized svg file
*/
public function colorSvg($app, $image) {
$imageFile = $this->util->getAppImage($app, $image);
- if ($imageFile === false || $imageFile === '') {
+ if ($imageFile === false || $imageFile === '' || !file_exists($imageFile)) {
return false;
}
$svg = file_get_contents($imageFile);
diff --git a/apps/theming/openapi.json b/apps/theming/openapi.json
index 2518f4acb73..66ee05413b3 100644
--- a/apps/theming/openapi.json
+++ b/apps/theming/openapi.json
@@ -79,6 +79,7 @@
"type": "object",
"required": [
"name",
+ "productName",
"url",
"slogan",
"color",
@@ -98,6 +99,9 @@
"name": {
"type": "string"
},
+ "productName": {
+ "type": "string"
+ },
"url": {
"type": "string"
},
@@ -701,6 +705,7 @@
"color": {
"type": "string",
"nullable": true,
+ "default": null,
"description": "Color for the background"
}
}
diff --git a/apps/theming/tests/CapabilitiesTest.php b/apps/theming/tests/CapabilitiesTest.php
index 1274be929ef..16cc6d51ba9 100644
--- a/apps/theming/tests/CapabilitiesTest.php
+++ b/apps/theming/tests/CapabilitiesTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -24,22 +26,12 @@ use Test\TestCase;
* @package OCA\Theming\Tests
*/
class CapabilitiesTest extends TestCase {
- /** @var ThemingDefaults|MockObject */
- protected $theming;
-
- /** @var IURLGenerator|MockObject */
- protected $url;
-
- /** @var IConfig|MockObject */
- protected $config;
-
- /** @var Util|MockObject */
- protected $util;
-
+ protected ThemingDefaults&MockObject $theming;
+ protected IURLGenerator&MockObject $url;
+ protected IConfig&MockObject $config;
+ protected Util&MockObject $util;
protected IUserSession $userSession;
-
- /** @var Capabilities */
- protected $capabilities;
+ protected Capabilities $capabilities;
protected function setUp(): void {
parent::setUp();
@@ -58,10 +50,11 @@ class CapabilitiesTest extends TestCase {
);
}
- public function dataGetCapabilities() {
+ public static function dataGetCapabilities(): array {
return [
['name', 'url', 'slogan', '#FFFFFF', '#000000', 'logo', 'background', '#fff', '#000', 'http://absolute/', true, [
'name' => 'name',
+ 'productName' => 'name',
'url' => 'url',
'slogan' => 'slogan',
'color' => '#FFFFFF',
@@ -79,6 +72,7 @@ class CapabilitiesTest extends TestCase {
]],
['name1', 'url2', 'slogan3', '#01e4a0', '#ffffff', 'logo5', 'background6', '#fff', '#000', 'http://localhost/', false, [
'name' => 'name1',
+ 'productName' => 'name1',
'url' => 'url2',
'slogan' => 'slogan3',
'color' => '#01e4a0',
@@ -96,6 +90,7 @@ class CapabilitiesTest extends TestCase {
]],
['name1', 'url2', 'slogan3', '#000000', '#ffffff', 'logo5', 'backgroundColor', '#000000', '#ffffff', 'http://localhost/', true, [
'name' => 'name1',
+ 'productName' => 'name1',
'url' => 'url2',
'slogan' => 'slogan3',
'color' => '#000000',
@@ -113,6 +108,7 @@ class CapabilitiesTest extends TestCase {
]],
['name1', 'url2', 'slogan3', '#000000', '#ffffff', 'logo5', 'backgroundColor', '#000000', '#ffffff', 'http://localhost/', false, [
'name' => 'name1',
+ 'productName' => 'name1',
'url' => 'url2',
'slogan' => 'slogan3',
'color' => '#000000',
@@ -133,18 +129,9 @@ class CapabilitiesTest extends TestCase {
/**
* @dataProvider dataGetCapabilities
- * @param string $name
- * @param string $url
- * @param string $slogan
- * @param string $color
- * @param string $textColor
- * @param string $logo
- * @param string $background
- * @param string $baseUrl
- * @param bool $backgroundThemed
- * @param string[] $expected
+ * @param non-empty-array<string, string> $expected
*/
- public function testGetCapabilities($name, $url, $slogan, $color, $textColor, $logo, $background, $backgroundColor, $backgroundTextColor, $baseUrl, $backgroundThemed, array $expected): void {
+ public function testGetCapabilities(string $name, string $url, string $slogan, string $color, string $textColor, string $logo, string $background, string $backgroundColor, string $backgroundTextColor, string $baseUrl, bool $backgroundThemed, array $expected): void {
$this->config->expects($this->once())
->method('getAppValue')
->willReturn($background);
@@ -152,6 +139,9 @@ class CapabilitiesTest extends TestCase {
->method('getName')
->willReturn($name);
$this->theming->expects($this->once())
+ ->method('getProductName')
+ ->willReturn($name);
+ $this->theming->expects($this->once())
->method('getBaseUrl')
->willReturn($url);
$this->theming->expects($this->once())
diff --git a/apps/theming/tests/Controller/IconControllerTest.php b/apps/theming/tests/Controller/IconControllerTest.php
index 42e841e9a0f..329ad429bc5 100644
--- a/apps/theming/tests/Controller/IconControllerTest.php
+++ b/apps/theming/tests/Controller/IconControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -17,29 +19,19 @@ use OCP\AppFramework\Http\DataDisplayResponse;
use OCP\AppFramework\Http\FileDisplayResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Files\NotFoundException;
-use OCP\IConfig;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class IconControllerTest extends TestCase {
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var ThemingDefaults|\PHPUnit\Framework\MockObject\MockObject */
- private $themingDefaults;
- /** @var ITimeFactory */
- private $timeFactory;
- /** @var IconController|\PHPUnit\Framework\MockObject\MockObject */
- private $iconController;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IconBuilder|\PHPUnit\Framework\MockObject\MockObject */
- private $iconBuilder;
- /** @var FileAccessHelper|\PHPUnit\Framework\MockObject\MockObject */
- private $fileAccessHelper;
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
- /** @var ImageManager */
- private $imageManager;
+ private IRequest&MockObject $request;
+ private ThemingDefaults&MockObject $themingDefaults;
+ private ITimeFactory&MockObject $timeFactory;
+ private IconBuilder&MockObject $iconBuilder;
+ private FileAccessHelper&MockObject $fileAccessHelper;
+ private IAppManager&MockObject $appManager;
+ private ImageManager&MockObject $imageManager;
+ private IconController $iconController;
protected function setUp(): void {
$this->request = $this->createMock(IRequest::class);
diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php
index 6dfbb72bb77..6fb9be64ad3 100644
--- a/apps/theming/tests/Controller/ThemingControllerTest.php
+++ b/apps/theming/tests/Controller/ThemingControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -82,7 +84,7 @@ class ThemingControllerTest extends TestCase {
parent::setUp();
}
- public function dataUpdateStylesheetSuccess() {
+ public static function dataUpdateStylesheetSuccess(): array {
return [
['name', str_repeat('a', 250), 'Saved'],
['url', 'https://nextcloud.com/' . str_repeat('a', 478), 'Saved'],
@@ -97,12 +99,8 @@ class ThemingControllerTest extends TestCase {
/**
* @dataProvider dataUpdateStylesheetSuccess
- *
- * @param string $setting
- * @param string $value
- * @param string $message
*/
- public function testUpdateStylesheetSuccess($setting, $value, $message): void {
+ public function testUpdateStylesheetSuccess(string $setting, string $value, string $message): void {
$this->themingDefaults
->expects($this->once())
->method('set')
@@ -126,7 +124,7 @@ class ThemingControllerTest extends TestCase {
$this->assertEquals($expected, $this->themingController->updateStylesheet($setting, $value));
}
- public function dataUpdateStylesheetError() {
+ public static function dataUpdateStylesheetError(): array {
$urls = [
'url' => 'web address',
'imprintUrl' => 'legal notice address',
@@ -159,12 +157,8 @@ class ThemingControllerTest extends TestCase {
/**
* @dataProvider dataUpdateStylesheetError
- *
- * @param string $setting
- * @param string $value
- * @param string $message
*/
- public function testUpdateStylesheetError($setting, $value, $message): void {
+ public function testUpdateStylesheetError(string $setting, string $value, string $message): void {
$this->themingDefaults
->expects($this->never())
->method('set')
@@ -254,9 +248,6 @@ class ThemingControllerTest extends TestCase {
/**
* Checks that trying to upload an SVG favicon without imagemagick
* results in an unsupported media type response.
- *
- * @test
- * @return void
*/
public function testUploadSVGFaviconWithoutImagemagick(): void {
$this->imageManager
@@ -344,7 +335,7 @@ class ThemingControllerTest extends TestCase {
$this->assertEquals($expected, $this->themingController->uploadImage());
}
- public function dataUpdateImages() {
+ public static function dataUpdateImages(): array {
return [
['image/jpeg', false],
['image/jpeg', true],
@@ -355,8 +346,10 @@ class ThemingControllerTest extends TestCase {
];
}
- /** @dataProvider dataUpdateImages */
- public function testUpdateLogoNormalLogoUpload($mimeType, $folderExists = true): void {
+ /**
+ * @dataProvider dataUpdateImages
+ */
+ public function testUpdateLogoNormalLogoUpload(string $mimeType, bool $folderExists = true): void {
$tmpLogo = Server::get(ITempManager::class)->getTemporaryFolder() . '/logo.svg';
$destination = Server::get(ITempManager::class)->getTemporaryFolder();
@@ -407,8 +400,7 @@ class ThemingControllerTest extends TestCase {
$this->assertEquals($expected, $this->themingController->uploadImage());
}
- /** @dataProvider dataUpdateImages */
- public function testUpdateLogoLoginScreenUpload($folderExists): void {
+ public function testUpdateLogoLoginScreenUpload(): void {
$tmpLogo = Server::get(ITempManager::class)->getTemporaryFolder() . 'logo.png';
touch($tmpLogo);
@@ -500,7 +492,7 @@ class ThemingControllerTest extends TestCase {
$this->assertEquals($expected, $this->themingController->uploadImage());
}
- public function dataPhpUploadErrors() {
+ public static function dataPhpUploadErrors(): array {
return [
[UPLOAD_ERR_INI_SIZE, 'The uploaded file exceeds the upload_max_filesize directive in php.ini'],
[UPLOAD_ERR_FORM_SIZE, 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'],
@@ -515,7 +507,7 @@ class ThemingControllerTest extends TestCase {
/**
* @dataProvider dataPhpUploadErrors
*/
- public function testUpdateLogoLoginScreenUploadWithInvalidImageUpload($error, $expectedErrorMessage): void {
+ public function testUpdateLogoLoginScreenUploadWithInvalidImageUpload(int $error, string $expectedErrorMessage): void {
$this->request
->expects($this->once())
->method('getParam')
@@ -615,15 +607,17 @@ class ThemingControllerTest extends TestCase {
$this->assertEquals($expected, $this->themingController->undo('MySetting'));
}
- public function dataUndoDelete() {
+ public static function dataUndoDelete(): array {
return [
[ 'backgroundMime', 'background' ],
[ 'logoMime', 'logo' ]
];
}
- /** @dataProvider dataUndoDelete */
- public function testUndoDelete($value, $filename): void {
+ /**
+ * @dataProvider dataUndoDelete
+ */
+ public function testUndoDelete(string $value, string $filename): void {
$this->l10n
->expects($this->once())
->method('t')
@@ -722,7 +716,9 @@ class ThemingControllerTest extends TestCase {
];
}
- /** @dataProvider dataGetManifest */
+ /**
+ * @dataProvider dataGetManifest
+ */
public function testGetManifest(bool $standalone): void {
$this->config
->expects($this->once())
diff --git a/apps/theming/tests/Controller/UserThemeControllerTest.php b/apps/theming/tests/Controller/UserThemeControllerTest.php
index 7d369463c0d..b830bb5b065 100644
--- a/apps/theming/tests/Controller/UserThemeControllerTest.php
+++ b/apps/theming/tests/Controller/UserThemeControllerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -27,25 +29,17 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class UserThemeControllerTest extends TestCase {
- /** @var UserThemeController */
- private $userThemeController;
-
- /** @var IRequest|MockObject */
- private $request;
- /** @var IConfig|MockObject */
- private $config;
- /** @var IUserSession|MockObject */
- private $userSession;
- /** @var ThemeService|MockObject */
- private $themesService;
- /** @var ThemingDefaults */
- private $themingDefaults;
- /** @var BackgroundService|MockObject */
- private $backgroundService;
+ private IRequest&MockObject $request;
+ private IConfig&MockObject $config;
+ private IUserSession&MockObject $userSession;
+ private ThemesService&MockObject $themesService;
+ private ThemingDefaults&MockObject $themingDefaults;
+ private BackgroundService&MockObject $backgroundService;
+ private UserThemeController $userThemeController;
/** @var ITheme[] */
- private $themes;
+ private array $themes;
protected function setUp(): void {
$this->request = $this->createMock(IRequest::class);
@@ -85,7 +79,7 @@ class UserThemeControllerTest extends TestCase {
parent::setUp();
}
- public function dataTestThemes() {
+ public static function dataTestThemes(): array {
return [
['default'],
['light'],
@@ -100,11 +94,8 @@ class UserThemeControllerTest extends TestCase {
/**
* @dataProvider dataTestThemes
- *
- * @param string $themeId
- * @param string $exception
*/
- public function testEnableTheme($themeId, ?string $exception = null): void {
+ public function testEnableTheme(string $themeId, ?string $exception = null): void {
$this->themesService
->expects($this->any())
->method('getThemes')
@@ -120,11 +111,8 @@ class UserThemeControllerTest extends TestCase {
/**
* @dataProvider dataTestThemes
- *
- * @param string $themeId
- * @param string $exception
*/
- public function testDisableTheme($themeId, ?string $exception = null): void {
+ public function testDisableTheme(string $themeId, ?string $exception = null): void {
$this->themesService
->expects($this->any())
->method('getThemes')
diff --git a/apps/theming/tests/IconBuilderTest.php b/apps/theming/tests/IconBuilderTest.php
index ec7bd8bcc55..5eb75e7e694 100644
--- a/apps/theming/tests/IconBuilderTest.php
+++ b/apps/theming/tests/IconBuilderTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -14,25 +16,17 @@ use OCP\App\IAppManager;
use OCP\Files\NotFoundException;
use OCP\IConfig;
use OCP\ServerVersion;
-use PHPUnit\Framework\Error\Warning;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class IconBuilderTest extends TestCase {
-
- /** @var IConfig */
- protected $config;
- /** @var AppData */
- protected $appData;
- /** @var ThemingDefaults */
- protected $themingDefaults;
- /** @var Util */
- protected $util;
- /** @var ImageManager */
- protected $imageManager;
- /** @var IconBuilder */
- protected $iconBuilder;
- /** @var IAppManager */
- protected $appManager;
+ protected IConfig&MockObject $config;
+ protected AppData&MockObject $appData;
+ protected ThemingDefaults&MockObject $themingDefaults;
+ protected ImageManager&MockObject $imageManager;
+ protected IAppManager&MockObject $appManager;
+ protected Util $util;
+ protected IconBuilder $iconBuilder;
protected function setUp(): void {
parent::setUp();
@@ -59,7 +53,7 @@ class IconBuilderTest extends TestCase {
}
}
- public function dataRenderAppIcon() {
+ public static function dataRenderAppIcon(): array {
return [
['core', '#0082c9', 'touch-original.png'],
['core', '#FF0000', 'touch-core-red.png'],
@@ -71,11 +65,8 @@ class IconBuilderTest extends TestCase {
/**
* @dataProvider dataRenderAppIcon
- * @param $app
- * @param $color
- * @param $file
*/
- public function testRenderAppIcon($app, $color, $file): void {
+ public function testRenderAppIcon(string $app, string $color, string $file): void {
$this->checkImagick();
$this->themingDefaults->expects($this->once())
->method('getColorPrimary')
@@ -100,11 +91,8 @@ class IconBuilderTest extends TestCase {
/**
* @dataProvider dataRenderAppIcon
- * @param $app
- * @param $color
- * @param $file
*/
- public function testGetTouchIcon($app, $color, $file): void {
+ public function testGetTouchIcon(string $app, string $color, string $file): void {
$this->checkImagick();
$this->themingDefaults->expects($this->once())
->method('getColorPrimary')
@@ -130,11 +118,8 @@ class IconBuilderTest extends TestCase {
/**
* @dataProvider dataRenderAppIcon
- * @param $app
- * @param $color
- * @param $file
*/
- public function testGetFavicon($app, $color, $file): void {
+ public function testGetFavicon(string $app, string $color, string $file): void {
$this->checkImagick();
$this->imageManager->expects($this->once())
->method('shouldReplaceIcons')
@@ -165,8 +150,7 @@ class IconBuilderTest extends TestCase {
public function testGetFaviconNotFound(): void {
$this->checkImagick();
- $this->expectWarning(Warning::class);
- $util = $this->getMockBuilder(Util::class)->disableOriginalConstructor()->getMock();
+ $util = $this->createMock(Util::class);
$iconBuilder = new IconBuilder($this->themingDefaults, $util, $this->imageManager);
$this->imageManager->expects($this->once())
->method('shouldReplaceIcons')
@@ -179,8 +163,7 @@ class IconBuilderTest extends TestCase {
public function testGetTouchIconNotFound(): void {
$this->checkImagick();
- $this->expectWarning(Warning::class);
- $util = $this->getMockBuilder(Util::class)->disableOriginalConstructor()->getMock();
+ $util = $this->createMock(Util::class);
$iconBuilder = new IconBuilder($this->themingDefaults, $util, $this->imageManager);
$util->expects($this->once())
->method('getAppIcon')
@@ -190,8 +173,7 @@ class IconBuilderTest extends TestCase {
public function testColorSvgNotFound(): void {
$this->checkImagick();
- $this->expectWarning(Warning::class);
- $util = $this->getMockBuilder(Util::class)->disableOriginalConstructor()->getMock();
+ $util = $this->createMock(Util::class);
$iconBuilder = new IconBuilder($this->themingDefaults, $util, $this->imageManager);
$util->expects($this->once())
->method('getAppImage')
diff --git a/apps/theming/tests/ImageManagerTest.php b/apps/theming/tests/ImageManagerTest.php
index 68c8a06ee2f..c9b930ca8c9 100644
--- a/apps/theming/tests/ImageManagerTest.php
+++ b/apps/theming/tests/ImageManagerTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,24 +22,14 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class ImageManagerTest extends TestCase {
- /** @var IConfig|MockObject */
- protected $config;
- /** @var IAppData|MockObject */
- protected $appData;
- /** @var ImageManager */
- protected $imageManager;
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
- /** @var ICacheFactory|MockObject */
- private $cacheFactory;
- /** @var LoggerInterface|MockObject */
- private $logger;
- /** @var ITempManager|MockObject */
- private $tempManager;
- /** @var ISimpleFolder|MockObject */
- private $rootFolder;
- /** @var BackgroundService|MockObject */
- private $backgroundService;
+ protected IConfig&MockObject $config;
+ protected IAppData&MockObject $appData;
+ private IURLGenerator&MockObject $urlGenerator;
+ private ICacheFactory&MockObject $cacheFactory;
+ private LoggerInterface&MockObject $logger;
+ private ITempManager&MockObject $tempManager;
+ private ISimpleFolder&MockObject $rootFolder;
+ protected ImageManager $imageManager;
protected function setUp(): void {
parent::setUp();
@@ -48,7 +40,7 @@ class ImageManagerTest extends TestCase {
$this->logger = $this->createMock(LoggerInterface::class);
$this->tempManager = $this->createMock(ITempManager::class);
$this->rootFolder = $this->createMock(ISimpleFolder::class);
- $this->backgroundService = $this->createMock(BackgroundService::class);
+ $backgroundService = $this->createMock(BackgroundService::class);
$this->imageManager = new ImageManager(
$this->config,
$this->appData,
@@ -56,7 +48,7 @@ class ImageManagerTest extends TestCase {
$this->cacheFactory,
$this->logger,
$this->tempManager,
- $this->backgroundService,
+ $backgroundService,
);
$this->appData
->expects($this->any())
@@ -309,7 +301,7 @@ class ImageManagerTest extends TestCase {
}
- public function dataUpdateImage() {
+ public static function dataUpdateImage(): array {
return [
['background', __DIR__ . '/../../../tests/data/testimage.png', true, false],
['background', __DIR__ . '/../../../tests/data/testimage.png', false, false],
@@ -324,7 +316,7 @@ class ImageManagerTest extends TestCase {
/**
* @dataProvider dataUpdateImage
*/
- public function testUpdateImage($key, $tmpFile, $folderExists, $shouldConvert): void {
+ public function testUpdateImage(string $key, string $tmpFile, bool $folderExists, bool $shouldConvert): void {
$file = $this->createMock(ISimpleFile::class);
$folder = $this->createMock(ISimpleFolder::class);
$oldFile = $this->createMock(ISimpleFile::class);
diff --git a/apps/theming/tests/Service/ThemesServiceTest.php b/apps/theming/tests/Service/ThemesServiceTest.php
index 1b242c956e4..a2c3111fbd1 100644
--- a/apps/theming/tests/Service/ThemesServiceTest.php
+++ b/apps/theming/tests/Service/ThemesServiceTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -28,21 +30,15 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class ThemesServiceTest extends TestCase {
- /** @var ThemesService */
- private $themesService;
-
- /** @var IUserSession|MockObject */
- private $userSession;
- /** @var IConfig|MockObject */
- private $config;
- /** @var LoggerInterface|MockObject */
- private $logger;
+ private IUserSession&MockObject $userSession;
+ private IConfig&MockObject $config;
+ private LoggerInterface&MockObject $logger;
- /** @var ThemingDefaults|MockObject */
- private $themingDefaults;
+ private ThemingDefaults&MockObject $themingDefaults;
+ private ThemesService $themesService;
/** @var ITheme[] */
- private $themes;
+ private array $themes;
protected function setUp(): void {
$this->userSession = $this->createMock(IUserSession::class);
@@ -119,7 +115,7 @@ class ThemesServiceTest extends TestCase {
$this->assertEquals($expected, array_keys($this->themesService->getThemes()));
}
- public function dataTestEnableTheme() {
+ public static function dataTestEnableTheme(): array {
return [
['default', ['default'], ['default']],
['dark', ['default'], ['dark']],
@@ -132,7 +128,6 @@ class ThemesServiceTest extends TestCase {
/**
* @dataProvider dataTestEnableTheme
*
- * @param string $toEnable
* @param string[] $enabledThemes
* @param string[] $expectedEnabled
*/
@@ -154,7 +149,7 @@ class ThemesServiceTest extends TestCase {
}
- public function dataTestDisableTheme() {
+ public static function dataTestDisableTheme(): array {
return [
['dark', ['default'], ['default']],
['dark', ['dark'], []],
@@ -166,7 +161,6 @@ class ThemesServiceTest extends TestCase {
/**
* @dataProvider dataTestDisableTheme
*
- * @param string $toEnable
* @param string[] $enabledThemes
* @param string[] $expectedEnabled
*/
@@ -189,7 +183,7 @@ class ThemesServiceTest extends TestCase {
}
- public function dataTestIsEnabled() {
+ public static function dataTestIsEnabled(): array {
return [
['dark', [], false],
['dark', ['dark'], true],
@@ -201,10 +195,9 @@ class ThemesServiceTest extends TestCase {
/**
* @dataProvider dataTestIsEnabled
*
- * @param string $toEnable
* @param string[] $enabledThemes
*/
- public function testIsEnabled(string $themeId, array $enabledThemes, $expected): void {
+ public function testIsEnabled(string $themeId, array $enabledThemes, bool $expected): void {
$user = $this->createMock(IUser::class);
$this->userSession->expects($this->any())
->method('getUser')
@@ -267,7 +260,7 @@ class ThemesServiceTest extends TestCase {
}
- public function dataTestSetEnabledThemes() {
+ public static function dataTestSetEnabledThemes(): array {
return [
[[], []],
[['light'], ['light']],
diff --git a/apps/theming/tests/ServicesTest.php b/apps/theming/tests/ServicesTest.php
index 516a1fca776..c9b9a44be0b 100644
--- a/apps/theming/tests/ServicesTest.php
+++ b/apps/theming/tests/ServicesTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -26,11 +28,9 @@ use Test\TestCase;
* @package OCA\Theming\Tests
*/
class ServicesTest extends TestCase {
- /** @var \OCA\Activity\AppInfo\Application */
- protected $app;
+ protected App $app;
- /** @var IAppContainer */
- protected $container;
+ protected IAppContainer $container;
protected function setUp(): void {
parent::setUp();
@@ -38,7 +38,7 @@ class ServicesTest extends TestCase {
$this->container = $this->app->getContainer();
}
- public function queryData() {
+ public static function queryData(): array {
return [
[IL10N::class],
@@ -62,13 +62,11 @@ class ServicesTest extends TestCase {
/**
* @dataProvider queryData
- * @param string $service
- * @param string $expected
*/
- public function testContainerQuery($service, $expected = null): void {
+ public function testContainerQuery(string $service, ?string $expected = null): void {
if ($expected === null) {
$expected = $service;
}
- $this->assertTrue($this->container->query($service) instanceof $expected);
+ $this->assertInstanceOf($expected, $this->container->query($service));
}
}
diff --git a/apps/theming/tests/Settings/AdminSectionTest.php b/apps/theming/tests/Settings/AdminSectionTest.php
index a73eca1cc5a..ecb889f264b 100644
--- a/apps/theming/tests/Settings/AdminSectionTest.php
+++ b/apps/theming/tests/Settings/AdminSectionTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,15 +11,13 @@ use OCA\Theming\AppInfo\Application;
use OCA\Theming\Settings\AdminSection;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AdminSectionTest extends TestCase {
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $url;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l;
- /** @var AdminSection */
- private $section;
+ private IURLGenerator&MockObject $url;
+ private IL10N&MockObject $l;
+ private AdminSection $section;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/theming/tests/Settings/AdminTest.php b/apps/theming/tests/Settings/AdminTest.php
index 189a91bae3a..277b94900a8 100644
--- a/apps/theming/tests/Settings/AdminTest.php
+++ b/apps/theming/tests/Settings/AdminTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -15,17 +17,18 @@ use OCP\IConfig;
use OCP\IL10N;
use OCP\INavigationManager;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AdminTest extends TestCase {
private Admin $admin;
- private IConfig $config;
- private ThemingDefaults $themingDefaults;
- private IInitialState $initialState;
- private IURLGenerator $urlGenerator;
- private ImageManager $imageManager;
- private IL10N $l10n;
- private INavigationManager $navigationManager;
+ private IConfig&MockObject $config;
+ private ThemingDefaults&MockObject $themingDefaults;
+ private IInitialState&MockObject $initialState;
+ private IURLGenerator&MockObject $urlGenerator;
+ private ImageManager&MockObject $imageManager;
+ private IL10N&MockObject $l10n;
+ private INavigationManager&MockObject $navigationManager;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/theming/tests/Settings/PersonalTest.php b/apps/theming/tests/Settings/PersonalTest.php
index 4630ef48c8a..e70ef623809 100644
--- a/apps/theming/tests/Settings/PersonalTest.php
+++ b/apps/theming/tests/Settings/PersonalTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -39,7 +41,7 @@ class PersonalTest extends TestCase {
private Personal $admin;
/** @var ITheme[] */
- private $themes;
+ private array $themes;
protected function setUp(): void {
parent::setUp();
@@ -67,8 +69,7 @@ class PersonalTest extends TestCase {
);
}
-
- public function dataTestGetForm() {
+ public function dataTestGetForm(): array {
return [
['', [
$this->formatThemeForm('default'),
@@ -88,10 +89,9 @@ class PersonalTest extends TestCase {
/**
* @dataProvider dataTestGetForm
*
- * @param string $toEnable
* @param string[] $enabledThemes
*/
- public function testGetForm(string $enforcedTheme, $themesState): void {
+ public function testGetForm(string $enforcedTheme, array $themesState): void {
$this->config->expects($this->once())
->method('getSystemValueString')
->with('enforce_theme', '')
diff --git a/apps/theming/tests/Themes/AccessibleThemeTestCase.php b/apps/theming/tests/Themes/AccessibleThemeTestCase.php
index a1327a04f0b..f3dc2ed53b4 100644
--- a/apps/theming/tests/Themes/AccessibleThemeTestCase.php
+++ b/apps/theming/tests/Themes/AccessibleThemeTestCase.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -16,10 +18,10 @@ class AccessibleThemeTestCase extends TestCase {
/**
* Set to true to check for WCAG AAA level accessibility
*/
- protected bool $WCAGaaa = false;
+ protected static bool $WCAGaaa = false;
- public function dataAccessibilityPairs() {
- $textContrast = $this->WCAGaaa ? 7.0 : 4.5;
+ public static function dataAccessibilityPairs(): array {
+ $textContrast = self::$WCAGaaa ? 7.0 : 4.5;
$elementContrast = 3.0;
return [
@@ -148,7 +150,7 @@ class AccessibleThemeTestCase extends TestCase {
/**
* @dataProvider dataAccessibilityPairs
*/
- public function testAccessibilityOfVariables($mainColors, $backgroundColors, $minContrast): void {
+ public function testAccessibilityOfVariables(array $mainColors, array $backgroundColors, float $minContrast): void {
if (!isset($this->theme)) {
$this->markTestSkipped('You need to setup $this->theme in your setUp function');
} elseif (!isset($this->util)) {
diff --git a/apps/theming/tests/Themes/DarkHighContrastThemeTest.php b/apps/theming/tests/Themes/DarkHighContrastThemeTest.php
index 16f7e86d217..ff4808149ad 100644
--- a/apps/theming/tests/Themes/DarkHighContrastThemeTest.php
+++ b/apps/theming/tests/Themes/DarkHighContrastThemeTest.php
@@ -22,23 +22,16 @@ use OCP\ServerVersion;
use PHPUnit\Framework\MockObject\MockObject;
class DarkHighContrastThemeTest extends AccessibleThemeTestCase {
- /** @var ThemingDefaults|MockObject */
- private $themingDefaults;
- /** @var IUserSession|MockObject */
- private $userSession;
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
- /** @var ImageManager|MockObject */
- private $imageManager;
- /** @var IConfig|MockObject */
- private $config;
- /** @var IL10N|MockObject */
- private $l10n;
- /** @var IAppManager|MockObject */
- private $appManager;
+ private ThemingDefaults&MockObject $themingDefaults;
+ private IUserSession&MockObject $userSession;
+ private IURLGenerator&MockObject $urlGenerator;
+ private ImageManager&MockObject $imageManager;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IAppManager&MockObject $appManager;
// !! important: Enable WCAG AAA tests
- protected bool $WCAGaaa = true;
+ protected static bool $WCAGaaa = true;
protected function setUp(): void {
$this->themingDefaults = $this->createMock(ThemingDefaults::class);
diff --git a/apps/theming/tests/Themes/DarkThemeTest.php b/apps/theming/tests/Themes/DarkThemeTest.php
index ea570adf21d..656779b5b24 100644
--- a/apps/theming/tests/Themes/DarkThemeTest.php
+++ b/apps/theming/tests/Themes/DarkThemeTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -22,20 +24,13 @@ use OCP\ServerVersion;
use PHPUnit\Framework\MockObject\MockObject;
class DarkThemeTest extends AccessibleThemeTestCase {
- /** @var ThemingDefaults|MockObject */
- private $themingDefaults;
- /** @var IUserSession|MockObject */
- private $userSession;
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
- /** @var ImageManager|MockObject */
- private $imageManager;
- /** @var IConfig|MockObject */
- private $config;
- /** @var IL10N|MockObject */
- private $l10n;
- /** @var IAppManager|MockObject */
- private $appManager;
+ private ThemingDefaults&MockObject $themingDefaults;
+ private IUserSession&MockObject $userSession;
+ private IURLGenerator&MockObject $urlGenerator;
+ private ImageManager&MockObject $imageManager;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IAppManager&MockObject $appManager;
protected function setUp(): void {
$this->themingDefaults = $this->createMock(ThemingDefaults::class);
diff --git a/apps/theming/tests/Themes/DefaultThemeTest.php b/apps/theming/tests/Themes/DefaultThemeTest.php
index b463cf4567c..d2606ffc275 100644
--- a/apps/theming/tests/Themes/DefaultThemeTest.php
+++ b/apps/theming/tests/Themes/DefaultThemeTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -22,20 +24,13 @@ use OCP\ServerVersion;
use PHPUnit\Framework\MockObject\MockObject;
class DefaultThemeTest extends AccessibleThemeTestCase {
- /** @var ThemingDefaults|MockObject */
- private $themingDefaults;
- /** @var IUserSession|MockObject */
- private $userSession;
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
- /** @var ImageManager|MockObject */
- private $imageManager;
- /** @var IConfig|MockObject */
- private $config;
- /** @var IL10N|MockObject */
- private $l10n;
- /** @var IAppManager|MockObject */
- private $appManager;
+ private ThemingDefaults&MockObject $themingDefaults;
+ private IUserSession&MockObject $userSession;
+ private IURLGenerator&MockObject $urlGenerator;
+ private ImageManager&MockObject $imageManager;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IAppManager&MockObject $appManager;
protected function setUp(): void {
$this->themingDefaults = $this->createMock(ThemingDefaults::class);
diff --git a/apps/theming/tests/Themes/DyslexiaFontTest.php b/apps/theming/tests/Themes/DyslexiaFontTest.php
index 4bd8b329f2d..ba27ab592f7 100644
--- a/apps/theming/tests/Themes/DyslexiaFontTest.php
+++ b/apps/theming/tests/Themes/DyslexiaFontTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -25,20 +27,13 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class DyslexiaFontTest extends TestCase {
- /** @var ThemingDefaults|MockObject */
- private $themingDefaults;
- /** @var IUserSession|MockObject */
- private $userSession;
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
- /** @var ImageManager|MockObject */
- private $imageManager;
- /** @var IConfig|MockObject */
- private $config;
- /** @var IL10N|MockObject */
- private $l10n;
- /** @var IAppManager|MockObject */
- private $appManager;
+ private ThemingDefaults&MockObject $themingDefaults;
+ private IUserSession&MockObject $userSession;
+ private IURLGenerator $urlGenerator;
+ private ImageManager&MockObject $imageManager;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IAppManager&MockObject $appManager;
private DyslexiaFont $dyslexiaFont;
@@ -141,7 +136,7 @@ class DyslexiaFontTest extends TestCase {
$this->assertStringStartsWith('OpenDyslexic', $this->dyslexiaFont->getCSSVariables()['--font-face']);
}
- public function dataTestGetCustomCss() {
+ public static function dataTestGetCustomCss(): array {
return [
['', true],
['', false],
@@ -155,11 +150,8 @@ class DyslexiaFontTest extends TestCase {
*
* Ensure the fonts are always loaded from the web root
* despite having url rewriting enabled or not
- *
- * @param string $webRoot
- * @param bool $prettyUrlsEnabled
*/
- public function testGetCustomCss($webRoot, $prettyUrlsEnabled): void {
+ public function testGetCustomCss(string $webRoot, bool $prettyUrlsEnabled): void {
\OC::$WEBROOT = $webRoot;
$this->config->expects($this->any())
->method('getSystemValue')
diff --git a/apps/theming/tests/Themes/HighContrastThemeTest.php b/apps/theming/tests/Themes/HighContrastThemeTest.php
index 71576caf841..94f87d7433b 100644
--- a/apps/theming/tests/Themes/HighContrastThemeTest.php
+++ b/apps/theming/tests/Themes/HighContrastThemeTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -22,23 +24,16 @@ use OCP\ServerVersion;
use PHPUnit\Framework\MockObject\MockObject;
class HighContrastThemeTest extends AccessibleThemeTestCase {
- /** @var ThemingDefaults|MockObject */
- private $themingDefaults;
- /** @var IUserSession|MockObject */
- private $userSession;
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
- /** @var ImageManager|MockObject */
- private $imageManager;
- /** @var IConfig|MockObject */
- private $config;
- /** @var IL10N|MockObject */
- private $l10n;
- /** @var IAppManager|MockObject */
- private $appManager;
+ private ThemingDefaults&MockObject $themingDefaults;
+ private IUserSession&MockObject $userSession;
+ private IURLGenerator&MockObject $urlGenerator;
+ private ImageManager&MockObject $imageManager;
+ private IConfig&MockObject $config;
+ private IL10N&MockObject $l10n;
+ private IAppManager&MockObject $appManager;
// !! important: Enable WCAG AAA tests
- protected bool $WCAGaaa = true;
+ protected static bool $WCAGaaa = true;
protected function setUp(): void {
$this->themingDefaults = $this->createMock(ThemingDefaults::class);
diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php
index b8b6c6869cd..2a0fee6cf16 100644
--- a/apps/theming/tests/ThemingDefaultsTest.php
+++ b/apps/theming/tests/ThemingDefaultsTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -27,29 +29,17 @@ class ThemingDefaultsTest extends TestCase {
private IAppConfig&MockObject $appConfig;
private IConfig&MockObject $config;
private \OC_Defaults $defaults;
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
- /** @var ICacheFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $cacheFactory;
- /** @var ThemingDefaults */
- private $template;
- /** @var Util|\PHPUnit\Framework\MockObject\MockObject */
- private $util;
- /** @var ICache|\PHPUnit\Framework\MockObject\MockObject */
- private $cache;
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
- /** @var ImageManager|\PHPUnit\Framework\MockObject\MockObject */
- private $imageManager;
- /** @var INavigationManager|\PHPUnit\Framework\MockObject\MockObject */
- private $navigationManager;
- /** @var BackgroundService|\PHPUnit\Framework\MockObject\MockObject */
- private $backgroundService;
+ private IL10N|MockObject $l10n;
+ private IUserSession&MockObject $userSession;
+ private IURLGenerator&MockObject $urlGenerator;
+ private ICacheFactory&MockObject $cacheFactory;
+ private Util&MockObject $util;
+ private ICache&MockObject $cache;
+ private IAppManager&MockObject $appManager;
+ private ImageManager&MockObject $imageManager;
+ private INavigationManager&MockObject $navigationManager;
+ private BackgroundService&MockObject $backgroundService;
+ private ThemingDefaults $template;
protected function setUp(): void {
parent::setUp();
@@ -186,18 +176,17 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals('https://example.com/', $this->template->getBaseUrl());
}
- public function legalUrlProvider() {
+ public static function legalUrlProvider(): array {
return [
- [ '' ],
- [ 'https://example.com/legal.html']
+ [''],
+ ['https://example.com/legal.html'],
];
}
/**
- * @param $imprintUrl
* @dataProvider legalUrlProvider
*/
- public function testGetImprintURL($imprintUrl): void {
+ public function testGetImprintURL(string $imprintUrl): void {
$this->config
->expects($this->once())
->method('getAppValue')
@@ -208,10 +197,9 @@ class ThemingDefaultsTest extends TestCase {
}
/**
- * @param $privacyUrl
* @dataProvider legalUrlProvider
*/
- public function testGetPrivacyURL($privacyUrl): void {
+ public function testGetPrivacyURL(string $privacyUrl): void {
$this->config
->expects($this->once())
->method('getAppValue')
@@ -351,7 +339,7 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals('<a href="url" target="_blank" rel="noreferrer noopener" class="entity-name">Name</a> – Slogan<br/><span class="footer__legal-links"><a href="https://example.com/imprint" class="legal" target="_blank" rel="noreferrer noopener">Legal notice</a> · <a href="https://example.com/privacy" class="legal" target="_blank" rel="noreferrer noopener">Privacy policy</a></span>', $this->template->getShortFooter());
}
- public function invalidLegalUrlProvider() {
+ public static function invalidLegalUrlProvider(): array {
return [
['example.com/legal'], # missing scheme
['https:///legal'], # missing host
@@ -359,10 +347,9 @@ class ThemingDefaultsTest extends TestCase {
}
/**
- * @param $invalidImprintUrl
* @dataProvider invalidLegalUrlProvider
*/
- public function testGetShortFooterInvalidImprint($invalidImprintUrl): void {
+ public function testGetShortFooterInvalidImprint(string $invalidImprintUrl): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->config
->expects($this->exactly(5))
@@ -379,10 +366,9 @@ class ThemingDefaultsTest extends TestCase {
}
/**
- * @param $invalidPrivacyUrl
* @dataProvider invalidLegalUrlProvider
*/
- public function testGetShortFooterInvalidPrivacy($invalidPrivacyUrl): void {
+ public function testGetShortFooterInvalidPrivacy(string $invalidPrivacyUrl): void {
$this->navigationManager->expects($this->once())->method('getAll')->with(INavigationManager::TYPE_GUEST)->willReturn([]);
$this->config
->expects($this->exactly(5))
@@ -428,7 +414,7 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals('#fff', $this->template->getColorPrimary());
}
- public function dataGetColorPrimary() {
+ public static function dataGetColorPrimary(): array {
return [
'with fallback default' => [
'disableTheming' => false,
@@ -803,7 +789,7 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals('1234567890', $this->template->getiTunesAppId());
}
- public function dataReplaceImagePath() {
+ public static function dataReplaceImagePath(): array {
return [
['core', 'test.png', false],
['core', 'manifest.json'],
@@ -812,8 +798,10 @@ class ThemingDefaultsTest extends TestCase {
];
}
- /** @dataProvider dataReplaceImagePath */
- public function testReplaceImagePath($app, $image, $result = 'themingRoute?v=1234abcd'): void {
+ /**
+ * @dataProvider dataReplaceImagePath
+ */
+ public function testReplaceImagePath(string $app, string $image, string|bool $result = 'themingRoute?v=1234abcd'): void {
$this->cache->expects($this->any())
->method('get')
->with('shouldReplaceIcons')
diff --git a/apps/theming/tests/UtilTest.php b/apps/theming/tests/UtilTest.php
index f664a46733d..c0629e425e7 100644
--- a/apps/theming/tests/UtilTest.php
+++ b/apps/theming/tests/UtilTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -35,7 +37,7 @@ class UtilTest extends TestCase {
$this->util = new Util($this->createMock(ServerVersion::class), $this->config, $this->appManager, $this->appData, $this->imageManager);
}
- public function dataColorContrast() {
+ public static function dataColorContrast(): array {
return [
['#ffffff', '#FFFFFF', 1],
['#000000', '#000000', 1],
@@ -49,11 +51,11 @@ class UtilTest extends TestCase {
/**
* @dataProvider dataColorContrast
*/
- public function testColorContrast(string $color1, string $color2, $contrast): void {
+ public function testColorContrast(string $color1, string $color2, int|float $contrast): void {
$this->assertEqualsWithDelta($contrast, $this->util->colorContrast($color1, $color2), .001);
}
- public function dataInvertTextColor() {
+ public static function dataInvertTextColor(): array {
return [
['#ffffff', true],
['#000000', false],
@@ -64,7 +66,7 @@ class UtilTest extends TestCase {
/**
* @dataProvider dataInvertTextColor
*/
- public function testInvertTextColor($color, $expected): void {
+ public function testInvertTextColor(string $color, bool $expected): void {
$invert = $this->util->invertTextColor($color);
$this->assertEquals($expected, $invert);
}
@@ -144,7 +146,7 @@ class UtilTest extends TestCase {
/**
* @dataProvider dataGetAppIcon
*/
- public function testGetAppIcon($app, $expected): void {
+ public function testGetAppIcon(string $app, string $expected): void {
$this->appData->expects($this->any())
->method('getFolder')
->with('global/images')
@@ -153,7 +155,7 @@ class UtilTest extends TestCase {
$this->assertEquals($expected, $icon);
}
- public function dataGetAppIcon() {
+ public static function dataGetAppIcon(): array {
return [
['user_ldap', Server::get(IAppManager::class)->getAppPath('user_ldap') . '/img/app.svg'],
['noapplikethis', \OC::$SERVERROOT . '/core/img/logo/logo.svg'],
@@ -179,11 +181,11 @@ class UtilTest extends TestCase {
/**
* @dataProvider dataGetAppImage
*/
- public function testGetAppImage($app, $image, $expected): void {
+ public function testGetAppImage(string $app, string $image, string|bool $expected): void {
$this->assertEquals($expected, $this->util->getAppImage($app, $image));
}
- public function dataGetAppImage() {
+ public static function dataGetAppImage(): array {
return [
['core', 'logo/logo.svg', \OC::$SERVERROOT . '/core/img/logo/logo.svg'],
['files', 'folder', \OC::$SERVERROOT . '/apps/files/img/folder.svg'],
@@ -217,7 +219,7 @@ class UtilTest extends TestCase {
$this->assertTrue($actual);
}
- public function dataIsBackgroundThemed() {
+ public static function dataIsBackgroundThemed(): array {
return [
['', false],
['png', true],
@@ -227,7 +229,7 @@ class UtilTest extends TestCase {
/**
* @dataProvider dataIsBackgroundThemed
*/
- public function testIsBackgroundThemed($backgroundMime, $expected): void {
+ public function testIsBackgroundThemed(string $backgroundMime, bool $expected): void {
$this->config->expects($this->once())
->method('getAppValue')
->with('theming', 'backgroundMime', '')
diff --git a/apps/twofactor_backupcodes/l10n/af.js b/apps/twofactor_backupcodes/l10n/af.js
index 92ed7522e5d..cdd9083fbc7 100644
--- a/apps/twofactor_backupcodes/l10n/af.js
+++ b/apps/twofactor_backupcodes/l10n/af.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Druk rugsteunkodes",
"Regenerate backup codes" : "Hergenereer rugsteunkodes",
"If you regenerate backup codes, you automatically invalidate old codes." : "Indien u rugsteunkodes hergenereer maak u outomaties die ou kodes ongeldig.",
- "Submit" : "Dien in",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dit is u rugsteunkodes. Bewaar dit of druk dit af aangesien u later nie hierdie kodes sal kan lees nie"
+ "Submit" : "Dien in"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/af.json b/apps/twofactor_backupcodes/l10n/af.json
index 5abdcda0772..c4fc9d35c4c 100644
--- a/apps/twofactor_backupcodes/l10n/af.json
+++ b/apps/twofactor_backupcodes/l10n/af.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Druk rugsteunkodes",
"Regenerate backup codes" : "Hergenereer rugsteunkodes",
"If you regenerate backup codes, you automatically invalidate old codes." : "Indien u rugsteunkodes hergenereer maak u outomaties die ou kodes ongeldig.",
- "Submit" : "Dien in",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dit is u rugsteunkodes. Bewaar dit of druk dit af aangesien u later nie hierdie kodes sal kan lees nie"
+ "Submit" : "Dien in"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/ar.js b/apps/twofactor_backupcodes/l10n/ar.js
index 11c625330e1..0c5f32cbf3d 100644
--- a/apps/twofactor_backupcodes/l10n/ar.js
+++ b/apps/twofactor_backupcodes/l10n/ar.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "عندما تقوم بتوليد أكواد احتياطية جديدة، فإن الأكواد القديمة تفقد صلاحيتها تلقائيّتاً.",
"{name} backup codes" : "{name} أكواد احتياطية",
"Use one of the backup codes you saved when setting up two-factor authentication." : "استخدم واحداً من الأكواد الاحتياطية التي سبق و أن خزنتها عند تجهيز إعدادات التحقق ثنائي العوامل من الهويّة.",
- "Submit" : "إرسال ",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "هذه هي الأكواد الاحتياطية. رجاءً إحفظها أو إطبعها حيث أنك لن تستطيع قراءتها مجدّداً في المستقبل"
+ "Submit" : "إرسال "
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/twofactor_backupcodes/l10n/ar.json b/apps/twofactor_backupcodes/l10n/ar.json
index a2501f62084..0e496b1fb71 100644
--- a/apps/twofactor_backupcodes/l10n/ar.json
+++ b/apps/twofactor_backupcodes/l10n/ar.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "عندما تقوم بتوليد أكواد احتياطية جديدة، فإن الأكواد القديمة تفقد صلاحيتها تلقائيّتاً.",
"{name} backup codes" : "{name} أكواد احتياطية",
"Use one of the backup codes you saved when setting up two-factor authentication." : "استخدم واحداً من الأكواد الاحتياطية التي سبق و أن خزنتها عند تجهيز إعدادات التحقق ثنائي العوامل من الهويّة.",
- "Submit" : "إرسال ",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "هذه هي الأكواد الاحتياطية. رجاءً إحفظها أو إطبعها حيث أنك لن تستطيع قراءتها مجدّداً في المستقبل"
+ "Submit" : "إرسال "
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/ast.js b/apps/twofactor_backupcodes/l10n/ast.js
index e909b7f8431..787fc3bf72f 100644
--- a/apps/twofactor_backupcodes/l10n/ast.js
+++ b/apps/twofactor_backupcodes/l10n/ast.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vuelves xenerar los códigos de recuperación, anules automáticamente los antiguos.",
"{name} backup codes" : "Códigos de recuperación de: {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Usa unu de los códigos de recuperación que guardesti cuando configuresti l'autenticación en dos pasos.",
- "Submit" : "Unviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son los tos códigos de recuperación. Guárdalos ya/o impréntalos, darréu que nun vas ser a volver velos"
+ "Submit" : "Unviar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/ast.json b/apps/twofactor_backupcodes/l10n/ast.json
index a4705b3d0a8..ff63a8a9cf4 100644
--- a/apps/twofactor_backupcodes/l10n/ast.json
+++ b/apps/twofactor_backupcodes/l10n/ast.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vuelves xenerar los códigos de recuperación, anules automáticamente los antiguos.",
"{name} backup codes" : "Códigos de recuperación de: {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Usa unu de los códigos de recuperación que guardesti cuando configuresti l'autenticación en dos pasos.",
- "Submit" : "Unviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son los tos códigos de recuperación. Guárdalos ya/o impréntalos, darréu que nun vas ser a volver velos"
+ "Submit" : "Unviar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/bg.js b/apps/twofactor_backupcodes/l10n/bg.js
index 99cacfd5b51..a690b5d6afe 100644
--- a/apps/twofactor_backupcodes/l10n/bg.js
+++ b/apps/twofactor_backupcodes/l10n/bg.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "При регенерирането на резервния код, стария код автоматично бива анулиран.",
"{name} backup codes" : "{name} резервни кодове",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Използвайте един от резервните кодове, които сте запазили, когато настройвате двустепенно удостоверяване.",
- "Submit" : "Изпращане",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Това е вашия резервен код. Моля, запишете го (или го принтирайте) защото по-късно няма да имате възможност да го видите."
+ "Submit" : "Изпращане"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/bg.json b/apps/twofactor_backupcodes/l10n/bg.json
index 2539ab46bdd..8a60d037158 100644
--- a/apps/twofactor_backupcodes/l10n/bg.json
+++ b/apps/twofactor_backupcodes/l10n/bg.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "При регенерирането на резервния код, стария код автоматично бива анулиран.",
"{name} backup codes" : "{name} резервни кодове",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Използвайте един от резервните кодове, които сте запазили, когато настройвате двустепенно удостоверяване.",
- "Submit" : "Изпращане",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Това е вашия резервен код. Моля, запишете го (или го принтирайте) защото по-късно няма да имате възможност да го видите."
+ "Submit" : "Изпращане"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/ca.js b/apps/twofactor_backupcodes/l10n/ca.js
index a818f115920..a530ac84138 100644
--- a/apps/twofactor_backupcodes/l10n/ca.js
+++ b/apps/twofactor_backupcodes/l10n/ca.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Si torneu a generar els codis de reserva, anul·lareu automàticament els codis antics.",
"{name} backup codes" : "Codis de seguretat per a {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilitzeu un dels codis de reserva que vau desar en configurar l'autenticació de dos factors.",
- "Submit" : "Envia",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Aquests són els vostres codis de reserva. Deseu-los o imprimiu-los, ja que no podreu tornar-los a consultar més tard"
+ "Submit" : "Envia"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/ca.json b/apps/twofactor_backupcodes/l10n/ca.json
index 8cd53c90a83..a57edf504f4 100644
--- a/apps/twofactor_backupcodes/l10n/ca.json
+++ b/apps/twofactor_backupcodes/l10n/ca.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Si torneu a generar els codis de reserva, anul·lareu automàticament els codis antics.",
"{name} backup codes" : "Codis de seguretat per a {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilitzeu un dels codis de reserva que vau desar en configurar l'autenticació de dos factors.",
- "Submit" : "Envia",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Aquests són els vostres codis de reserva. Deseu-los o imprimiu-los, ja que no podreu tornar-los a consultar més tard"
+ "Submit" : "Envia"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/cs.js b/apps/twofactor_backupcodes/l10n/cs.js
index 7e3b6427f80..cfb0cf59dc3 100644
--- a/apps/twofactor_backupcodes/l10n/cs.js
+++ b/apps/twofactor_backupcodes/l10n/cs.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Pokud necháte vytvořit nové záložní kódy, staré budou automaticky zneplatněny.",
"{name} backup codes" : "{name} záložní kódy",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Použijte jeden ze svých záložních kódů které jste si uložili při nastavování dvoufázového ověřování.",
- "Submit" : "Odeslat",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Zde jsou vaše záložní kódy. Kódy si uložte a/nebo vytiskněte, protože už je nebude možné zobrazit znovu."
+ "Submit" : "Odeslat"
},
"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/twofactor_backupcodes/l10n/cs.json b/apps/twofactor_backupcodes/l10n/cs.json
index 51b697ca524..199c42c7e99 100644
--- a/apps/twofactor_backupcodes/l10n/cs.json
+++ b/apps/twofactor_backupcodes/l10n/cs.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Pokud necháte vytvořit nové záložní kódy, staré budou automaticky zneplatněny.",
"{name} backup codes" : "{name} záložní kódy",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Použijte jeden ze svých záložních kódů které jste si uložili při nastavování dvoufázového ověřování.",
- "Submit" : "Odeslat",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Zde jsou vaše záložní kódy. Kódy si uložte a/nebo vytiskněte, protože už je nebude možné zobrazit znovu."
+ "Submit" : "Odeslat"
},"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/twofactor_backupcodes/l10n/da.js b/apps/twofactor_backupcodes/l10n/da.js
index 9e8f1b9be9d..29ba82cb980 100644
--- a/apps/twofactor_backupcodes/l10n/da.js
+++ b/apps/twofactor_backupcodes/l10n/da.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Hvis du genererer nye backupkoder, så vil de gamle koder blive ubrugelige.",
"{name} backup codes" : "{name} backup-koder",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Brug en af de backupkoder, du har gemt, når du konfigurerer to-faktor-godkendelse.",
- "Submit" : "Tilføj",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dett er dine backup koder. Gem eller udskriv dem venligst da det ikke vil være muligt at læse koderne her igen senere."
+ "Submit" : "Tilføj"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/da.json b/apps/twofactor_backupcodes/l10n/da.json
index e8cdd7625c1..21e8083f0f6 100644
--- a/apps/twofactor_backupcodes/l10n/da.json
+++ b/apps/twofactor_backupcodes/l10n/da.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Hvis du genererer nye backupkoder, så vil de gamle koder blive ubrugelige.",
"{name} backup codes" : "{name} backup-koder",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Brug en af de backupkoder, du har gemt, når du konfigurerer to-faktor-godkendelse.",
- "Submit" : "Tilføj",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dett er dine backup koder. Gem eller udskriv dem venligst da det ikke vil være muligt at læse koderne her igen senere."
+ "Submit" : "Tilføj"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/de.js b/apps/twofactor_backupcodes/l10n/de.js
index 84b83e42bac..a4e7c13ab45 100644
--- a/apps/twofactor_backupcodes/l10n/de.js
+++ b/apps/twofactor_backupcodes/l10n/de.js
@@ -7,8 +7,8 @@ OC.L10N.register(
"You enabled two-factor authentication but did not generate backup codes yet. They are needed to restore access to your account in case you lose your second factor." : "Du hast die Zwei-Faktor-Authentifizierung aktiviert, aber noch keine Backup-Codes erzeugt. Diese werden für den Fall benötigt, dass du den Zugriff auf deinen zweiten Faktor verloren hast.",
"Backup code" : "Backup-Code",
"Use backup code" : "Verwende Backup-Code",
- "Two factor backup codes" : "Zweifaktor-Backup-Codes",
- "A two-factor auth backup codes provider" : "Ein Anbieter für Zweifaktor-Backup-Codes",
+ "Two factor backup codes" : "Zwei-Faktor-Backup-Codes",
+ "A two-factor auth backup codes provider" : "Ein Anbieter für Zwei-Faktor-Backup-Codes",
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen deiner Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da du die Codes später nicht mehr abrufen kannst.",
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Wenn du Backup-Codes erneuerst, werden alte automatisch ungültig.",
"{name} backup codes" : "{name} Backup-Codes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Verwende einen der Backup-Codes, den du bei der Einrichtung der Zwei-Faktor-Authentifizierung gespeichert hast.",
- "Submit" : "Übermitteln",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dies sind deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da diese Codes später nicht mehr angezeigt werden können"
+ "Submit" : "Übermitteln"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/de.json b/apps/twofactor_backupcodes/l10n/de.json
index 0b4b9fdc282..290f9f47be3 100644
--- a/apps/twofactor_backupcodes/l10n/de.json
+++ b/apps/twofactor_backupcodes/l10n/de.json
@@ -5,8 +5,8 @@
"You enabled two-factor authentication but did not generate backup codes yet. They are needed to restore access to your account in case you lose your second factor." : "Du hast die Zwei-Faktor-Authentifizierung aktiviert, aber noch keine Backup-Codes erzeugt. Diese werden für den Fall benötigt, dass du den Zugriff auf deinen zweiten Faktor verloren hast.",
"Backup code" : "Backup-Code",
"Use backup code" : "Verwende Backup-Code",
- "Two factor backup codes" : "Zweifaktor-Backup-Codes",
- "A two-factor auth backup codes provider" : "Ein Anbieter für Zweifaktor-Backup-Codes",
+ "Two factor backup codes" : "Zwei-Faktor-Backup-Codes",
+ "A two-factor auth backup codes provider" : "Ein Anbieter für Zwei-Faktor-Backup-Codes",
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen deiner Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da du die Codes später nicht mehr abrufen kannst.",
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Wenn du Backup-Codes erneuerst, werden alte automatisch ungültig.",
"{name} backup codes" : "{name} Backup-Codes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Verwende einen der Backup-Codes, den du bei der Einrichtung der Zwei-Faktor-Authentifizierung gespeichert hast.",
- "Submit" : "Übermitteln",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dies sind deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da diese Codes später nicht mehr angezeigt werden können"
+ "Submit" : "Übermitteln"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/de_DE.js b/apps/twofactor_backupcodes/l10n/de_DE.js
index 7020b01bdd1..800e3e112c1 100644
--- a/apps/twofactor_backupcodes/l10n/de_DE.js
+++ b/apps/twofactor_backupcodes/l10n/de_DE.js
@@ -7,8 +7,8 @@ OC.L10N.register(
"You enabled two-factor authentication but did not generate backup codes yet. They are needed to restore access to your account in case you lose your second factor." : "Sie haben die Zwei-Faktor-Authentifizierung aktiviert, aber noch keine Backup-Codes erzeugt. Diese werden für den Fall benötigt, dass Sie den Zugriff auf Ihren zweiten Faktor verlieren.",
"Backup code" : "Backup-Code",
"Use backup code" : "Backup-Code verwenden",
- "Two factor backup codes" : "Zweifaktor-Backup-Codes",
- "A two-factor auth backup codes provider" : "Ein Anbieter für Zweifaktor-Backup-Codes",
+ "Two factor backup codes" : "Zwei-Faktor-Backup-Codes",
+ "A two-factor auth backup codes provider" : "Ein Anbieter für Zwei-Faktor-Backup-Codes",
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen Ihrer Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind Ihre Backup-Codes. Bitte speichern und/oder drucken Sie diese aus, da Sie die Codes später nicht mehr abrufen können.",
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Wenn Sie die Backup-Codes erneuern, werden die alten Codes automatisch ungültig.",
"{name} backup codes" : "{name} Backup-Codes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Verwenden Sie einen der Backup-Codes, den Sie bei der Einrichtung der Zwei-Faktor-Authentifizierung gespeichert haben.",
- "Submit" : "Übermitteln",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dies sind Ihre Backup-Codes. Bitte speichern und/oder drucken Sie diese, da diese Codes später nicht mehr gelesen werden können"
+ "Submit" : "Übermitteln"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/de_DE.json b/apps/twofactor_backupcodes/l10n/de_DE.json
index d50865d7e0d..04f73e1e330 100644
--- a/apps/twofactor_backupcodes/l10n/de_DE.json
+++ b/apps/twofactor_backupcodes/l10n/de_DE.json
@@ -5,8 +5,8 @@
"You enabled two-factor authentication but did not generate backup codes yet. They are needed to restore access to your account in case you lose your second factor." : "Sie haben die Zwei-Faktor-Authentifizierung aktiviert, aber noch keine Backup-Codes erzeugt. Diese werden für den Fall benötigt, dass Sie den Zugriff auf Ihren zweiten Faktor verlieren.",
"Backup code" : "Backup-Code",
"Use backup code" : "Backup-Code verwenden",
- "Two factor backup codes" : "Zweifaktor-Backup-Codes",
- "A two-factor auth backup codes provider" : "Ein Anbieter für Zweifaktor-Backup-Codes",
+ "Two factor backup codes" : "Zwei-Faktor-Backup-Codes",
+ "A two-factor auth backup codes provider" : "Ein Anbieter für Zwei-Faktor-Backup-Codes",
"An error occurred while generating your backup codes" : "Es ist ein Fehler beim Erstellen Ihrer Backup-Codes aufgetreten",
"Backup codes have been generated. {used} of {total} codes have been used." : "Backup-Codes wurden erzeugt. {used} von {total} Codes wurden benutzt.",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later." : "Dies sind Ihre Backup-Codes. Bitte speichern und/oder drucken Sie diese aus, da Sie die Codes später nicht mehr abrufen können.",
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Wenn Sie die Backup-Codes erneuern, werden die alten Codes automatisch ungültig.",
"{name} backup codes" : "{name} Backup-Codes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Verwenden Sie einen der Backup-Codes, den Sie bei der Einrichtung der Zwei-Faktor-Authentifizierung gespeichert haben.",
- "Submit" : "Übermitteln",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dies sind Ihre Backup-Codes. Bitte speichern und/oder drucken Sie diese, da diese Codes später nicht mehr gelesen werden können"
+ "Submit" : "Übermitteln"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/el.js b/apps/twofactor_backupcodes/l10n/el.js
index e317f86b5a9..cda1c9ba2bb 100644
--- a/apps/twofactor_backupcodes/l10n/el.js
+++ b/apps/twofactor_backupcodes/l10n/el.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Εάν αναδημιουργήσετε εφεδρικούς κωδικούς, οι παλιοί κωδικοί ακυρώνονται αυτόματα.",
"{name} backup codes" : "{name} εφεδρικοί κωδικοί",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Χρησιμοποιήστε έναν από τους εφεδρικούς κωδικούς που αποθηκεύσατε όταν ρυθμίζετε τον έλεγχο ταυτότητας δύο παραγόντων.",
- "Submit" : "Υποβολή",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Αυτοί είναι είναι οι εφεδρικοί σας κωδικοί. Παρακαλούμε αποθηκεύστε τους και/ή εκτυπώστε τους καθώς δεν θα είστε σε θέση να τους διαβάσετε ξανά αργότερα."
+ "Submit" : "Υποβολή"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/el.json b/apps/twofactor_backupcodes/l10n/el.json
index aa55c89df95..1f43bf0c068 100644
--- a/apps/twofactor_backupcodes/l10n/el.json
+++ b/apps/twofactor_backupcodes/l10n/el.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Εάν αναδημιουργήσετε εφεδρικούς κωδικούς, οι παλιοί κωδικοί ακυρώνονται αυτόματα.",
"{name} backup codes" : "{name} εφεδρικοί κωδικοί",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Χρησιμοποιήστε έναν από τους εφεδρικούς κωδικούς που αποθηκεύσατε όταν ρυθμίζετε τον έλεγχο ταυτότητας δύο παραγόντων.",
- "Submit" : "Υποβολή",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Αυτοί είναι είναι οι εφεδρικοί σας κωδικοί. Παρακαλούμε αποθηκεύστε τους και/ή εκτυπώστε τους καθώς δεν θα είστε σε θέση να τους διαβάσετε ξανά αργότερα."
+ "Submit" : "Υποβολή"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/en_GB.js b/apps/twofactor_backupcodes/l10n/en_GB.js
index f51fc5b7a13..e2426b031c8 100644
--- a/apps/twofactor_backupcodes/l10n/en_GB.js
+++ b/apps/twofactor_backupcodes/l10n/en_GB.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "If you regenerate backup codes, you automatically invalidate old codes.",
"{name} backup codes" : "{name} backup codes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use one of the backup codes you saved when setting up two-factor authentication.",
- "Submit" : "Submit",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later"
+ "Submit" : "Submit"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/en_GB.json b/apps/twofactor_backupcodes/l10n/en_GB.json
index 5ad78f92cbd..2b255e97cd7 100644
--- a/apps/twofactor_backupcodes/l10n/en_GB.json
+++ b/apps/twofactor_backupcodes/l10n/en_GB.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "If you regenerate backup codes, you automatically invalidate old codes.",
"{name} backup codes" : "{name} backup codes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use one of the backup codes you saved when setting up two-factor authentication.",
- "Submit" : "Submit",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later"
+ "Submit" : "Submit"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/eo.js b/apps/twofactor_backupcodes/l10n/eo.js
index d6c20ad4875..8cf8ac95ce5 100644
--- a/apps/twofactor_backupcodes/l10n/eo.js
+++ b/apps/twofactor_backupcodes/l10n/eo.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vi regeneras rezervkodojn, vi aŭtomate senvalidigas la antaŭajn.",
"{name} backup codes" : "{name} rezervkodoj",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Uzu unu el viaj rezervkodoj, kiujn vi konservis dum agordo de dufaza aŭtentigo.",
- "Submit" : "Sendi",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Jen viaj rezervkodoj. Bv. konservi aŭ presi ilin, ĉar vi ne plu povos vidi tiujn kodojn poste"
+ "Submit" : "Sendi"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/eo.json b/apps/twofactor_backupcodes/l10n/eo.json
index e9c8ca00946..44cc0c9660f 100644
--- a/apps/twofactor_backupcodes/l10n/eo.json
+++ b/apps/twofactor_backupcodes/l10n/eo.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vi regeneras rezervkodojn, vi aŭtomate senvalidigas la antaŭajn.",
"{name} backup codes" : "{name} rezervkodoj",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Uzu unu el viaj rezervkodoj, kiujn vi konservis dum agordo de dufaza aŭtentigo.",
- "Submit" : "Sendi",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Jen viaj rezervkodoj. Bv. konservi aŭ presi ilin, ĉar vi ne plu povos vidi tiujn kodojn poste"
+ "Submit" : "Sendi"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es.js b/apps/twofactor_backupcodes/l10n/es.js
index b0455dba125..2a53036ac9d 100644
--- a/apps/twofactor_backupcodes/l10n/es.js
+++ b/apps/twofactor_backupcodes/l10n/es.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regenera los códigos de respaldo, automáticamente invalidará los antiguos.",
"{name} backup codes" : "Códigos de respaldo {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Usa uno de los códigos de respaldo que guardaste cuando activaste la autenticación de dos factores.",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son sus códigos de respaldo. Por favor guardelos y/o imprimalos ya que no podrá obtenerlos de nuevo."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es.json b/apps/twofactor_backupcodes/l10n/es.json
index 987f1bedf8c..da669378de8 100644
--- a/apps/twofactor_backupcodes/l10n/es.json
+++ b/apps/twofactor_backupcodes/l10n/es.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regenera los códigos de respaldo, automáticamente invalidará los antiguos.",
"{name} backup codes" : "Códigos de respaldo {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Usa uno de los códigos de respaldo que guardaste cuando activaste la autenticación de dos factores.",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son sus códigos de respaldo. Por favor guardelos y/o imprimalos ya que no podrá obtenerlos de nuevo."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_419.js b/apps/twofactor_backupcodes/l10n/es_419.js
index cbd64f51007..bda75e326ad 100644
--- a/apps/twofactor_backupcodes/l10n/es_419.js
+++ b/apps/twofactor_backupcodes/l10n/es_419.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_419.json b/apps/twofactor_backupcodes/l10n/es_419.json
index cc4aea1d9a9..67d4525548f 100644
--- a/apps/twofactor_backupcodes/l10n/es_419.json
+++ b/apps/twofactor_backupcodes/l10n/es_419.json
@@ -9,7 +9,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_AR.js b/apps/twofactor_backupcodes/l10n/es_AR.js
index 6193b38afcf..dac1122e86b 100644
--- a/apps/twofactor_backupcodes/l10n/es_AR.js
+++ b/apps/twofactor_backupcodes/l10n/es_AR.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si usted regenera los códigos de respaldo, automáticamente invalidará los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son sus códigos de respaldo. Favor de resguardarlos y/o imprimirlos ya que no podrá leerlos otra vez después. "
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_AR.json b/apps/twofactor_backupcodes/l10n/es_AR.json
index a414d609fb1..425dd987e3e 100644
--- a/apps/twofactor_backupcodes/l10n/es_AR.json
+++ b/apps/twofactor_backupcodes/l10n/es_AR.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si usted regenera los códigos de respaldo, automáticamente invalidará los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son sus códigos de respaldo. Favor de resguardarlos y/o imprimirlos ya que no podrá leerlos otra vez después. "
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_CL.js b/apps/twofactor_backupcodes/l10n/es_CL.js
index d6b168f2a04..bd9cbba24a9 100644
--- a/apps/twofactor_backupcodes/l10n/es_CL.js
+++ b/apps/twofactor_backupcodes/l10n/es_CL.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_CL.json b/apps/twofactor_backupcodes/l10n/es_CL.json
index 6d4ed4cf46d..3798120620d 100644
--- a/apps/twofactor_backupcodes/l10n/es_CL.json
+++ b/apps/twofactor_backupcodes/l10n/es_CL.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_CO.js b/apps/twofactor_backupcodes/l10n/es_CO.js
index d6b168f2a04..bd9cbba24a9 100644
--- a/apps/twofactor_backupcodes/l10n/es_CO.js
+++ b/apps/twofactor_backupcodes/l10n/es_CO.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_CO.json b/apps/twofactor_backupcodes/l10n/es_CO.json
index 6d4ed4cf46d..3798120620d 100644
--- a/apps/twofactor_backupcodes/l10n/es_CO.json
+++ b/apps/twofactor_backupcodes/l10n/es_CO.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_CR.js b/apps/twofactor_backupcodes/l10n/es_CR.js
index d6b168f2a04..bd9cbba24a9 100644
--- a/apps/twofactor_backupcodes/l10n/es_CR.js
+++ b/apps/twofactor_backupcodes/l10n/es_CR.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_CR.json b/apps/twofactor_backupcodes/l10n/es_CR.json
index 6d4ed4cf46d..3798120620d 100644
--- a/apps/twofactor_backupcodes/l10n/es_CR.json
+++ b/apps/twofactor_backupcodes/l10n/es_CR.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_DO.js b/apps/twofactor_backupcodes/l10n/es_DO.js
index d6b168f2a04..bd9cbba24a9 100644
--- a/apps/twofactor_backupcodes/l10n/es_DO.js
+++ b/apps/twofactor_backupcodes/l10n/es_DO.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_DO.json b/apps/twofactor_backupcodes/l10n/es_DO.json
index 6d4ed4cf46d..3798120620d 100644
--- a/apps/twofactor_backupcodes/l10n/es_DO.json
+++ b/apps/twofactor_backupcodes/l10n/es_DO.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_EC.js b/apps/twofactor_backupcodes/l10n/es_EC.js
index f9affd22da0..14f349562cd 100644
--- a/apps/twofactor_backupcodes/l10n/es_EC.js
+++ b/apps/twofactor_backupcodes/l10n/es_EC.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"{name} backup codes" : "Códigos de respaldo de {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utiliza uno de los códigos de respaldo que guardaste al configurar la autenticación de dos factores.",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_EC.json b/apps/twofactor_backupcodes/l10n/es_EC.json
index 242d3552ac2..7747d76faa5 100644
--- a/apps/twofactor_backupcodes/l10n/es_EC.json
+++ b/apps/twofactor_backupcodes/l10n/es_EC.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"{name} backup codes" : "Códigos de respaldo de {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utiliza uno de los códigos de respaldo que guardaste al configurar la autenticación de dos factores.",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_GT.js b/apps/twofactor_backupcodes/l10n/es_GT.js
index d6b168f2a04..bd9cbba24a9 100644
--- a/apps/twofactor_backupcodes/l10n/es_GT.js
+++ b/apps/twofactor_backupcodes/l10n/es_GT.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_GT.json b/apps/twofactor_backupcodes/l10n/es_GT.json
index 6d4ed4cf46d..3798120620d 100644
--- a/apps/twofactor_backupcodes/l10n/es_GT.json
+++ b/apps/twofactor_backupcodes/l10n/es_GT.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_HN.js b/apps/twofactor_backupcodes/l10n/es_HN.js
index cbd64f51007..bda75e326ad 100644
--- a/apps/twofactor_backupcodes/l10n/es_HN.js
+++ b/apps/twofactor_backupcodes/l10n/es_HN.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_HN.json b/apps/twofactor_backupcodes/l10n/es_HN.json
index cc4aea1d9a9..67d4525548f 100644
--- a/apps/twofactor_backupcodes/l10n/es_HN.json
+++ b/apps/twofactor_backupcodes/l10n/es_HN.json
@@ -9,7 +9,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_MX.js b/apps/twofactor_backupcodes/l10n/es_MX.js
index e1cb734118d..b6860f03ea7 100644
--- a/apps/twofactor_backupcodes/l10n/es_MX.js
+++ b/apps/twofactor_backupcodes/l10n/es_MX.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"{name} backup codes" : "Códigos de respaldo {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilice uno de los códigos de respaldo que guardó al configurar la autentificación de dos factores.",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_MX.json b/apps/twofactor_backupcodes/l10n/es_MX.json
index 2f67f4c508b..5256ae1025a 100644
--- a/apps/twofactor_backupcodes/l10n/es_MX.json
+++ b/apps/twofactor_backupcodes/l10n/es_MX.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
"{name} backup codes" : "Códigos de respaldo {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilice uno de los códigos de respaldo que guardó al configurar la autentificación de dos factores.",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_NI.js b/apps/twofactor_backupcodes/l10n/es_NI.js
index cbd64f51007..bda75e326ad 100644
--- a/apps/twofactor_backupcodes/l10n/es_NI.js
+++ b/apps/twofactor_backupcodes/l10n/es_NI.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_NI.json b/apps/twofactor_backupcodes/l10n/es_NI.json
index cc4aea1d9a9..67d4525548f 100644
--- a/apps/twofactor_backupcodes/l10n/es_NI.json
+++ b/apps/twofactor_backupcodes/l10n/es_NI.json
@@ -9,7 +9,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_PA.js b/apps/twofactor_backupcodes/l10n/es_PA.js
index cbd64f51007..bda75e326ad 100644
--- a/apps/twofactor_backupcodes/l10n/es_PA.js
+++ b/apps/twofactor_backupcodes/l10n/es_PA.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_PA.json b/apps/twofactor_backupcodes/l10n/es_PA.json
index cc4aea1d9a9..67d4525548f 100644
--- a/apps/twofactor_backupcodes/l10n/es_PA.json
+++ b/apps/twofactor_backupcodes/l10n/es_PA.json
@@ -9,7 +9,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_PE.js b/apps/twofactor_backupcodes/l10n/es_PE.js
index cbd64f51007..bda75e326ad 100644
--- a/apps/twofactor_backupcodes/l10n/es_PE.js
+++ b/apps/twofactor_backupcodes/l10n/es_PE.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_PE.json b/apps/twofactor_backupcodes/l10n/es_PE.json
index cc4aea1d9a9..67d4525548f 100644
--- a/apps/twofactor_backupcodes/l10n/es_PE.json
+++ b/apps/twofactor_backupcodes/l10n/es_PE.json
@@ -9,7 +9,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_PR.js b/apps/twofactor_backupcodes/l10n/es_PR.js
index cbd64f51007..bda75e326ad 100644
--- a/apps/twofactor_backupcodes/l10n/es_PR.js
+++ b/apps/twofactor_backupcodes/l10n/es_PR.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_PR.json b/apps/twofactor_backupcodes/l10n/es_PR.json
index cc4aea1d9a9..67d4525548f 100644
--- a/apps/twofactor_backupcodes/l10n/es_PR.json
+++ b/apps/twofactor_backupcodes/l10n/es_PR.json
@@ -9,7 +9,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_PY.js b/apps/twofactor_backupcodes/l10n/es_PY.js
index cbd64f51007..bda75e326ad 100644
--- a/apps/twofactor_backupcodes/l10n/es_PY.js
+++ b/apps/twofactor_backupcodes/l10n/es_PY.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_PY.json b/apps/twofactor_backupcodes/l10n/es_PY.json
index cc4aea1d9a9..67d4525548f 100644
--- a/apps/twofactor_backupcodes/l10n/es_PY.json
+++ b/apps/twofactor_backupcodes/l10n/es_PY.json
@@ -9,7 +9,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_SV.js b/apps/twofactor_backupcodes/l10n/es_SV.js
index d6b168f2a04..bd9cbba24a9 100644
--- a/apps/twofactor_backupcodes/l10n/es_SV.js
+++ b/apps/twofactor_backupcodes/l10n/es_SV.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_SV.json b/apps/twofactor_backupcodes/l10n/es_SV.json
index 6d4ed4cf46d..3798120620d 100644
--- a/apps/twofactor_backupcodes/l10n/es_SV.json
+++ b/apps/twofactor_backupcodes/l10n/es_SV.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_UY.js b/apps/twofactor_backupcodes/l10n/es_UY.js
index cbd64f51007..bda75e326ad 100644
--- a/apps/twofactor_backupcodes/l10n/es_UY.js
+++ b/apps/twofactor_backupcodes/l10n/es_UY.js
@@ -11,7 +11,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/es_UY.json b/apps/twofactor_backupcodes/l10n/es_UY.json
index cc4aea1d9a9..67d4525548f 100644
--- a/apps/twofactor_backupcodes/l10n/es_UY.json
+++ b/apps/twofactor_backupcodes/l10n/es_UY.json
@@ -9,7 +9,6 @@
"Print backup codes" : "Imprimir códigos de respaldo",
"Regenerate backup codes" : "Regenerar códigos de respaldo",
"If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después."
+ "Submit" : "Enviar"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/et_EE.js b/apps/twofactor_backupcodes/l10n/et_EE.js
index 795674d8f15..8f62eea86ee 100644
--- a/apps/twofactor_backupcodes/l10n/et_EE.js
+++ b/apps/twofactor_backupcodes/l10n/et_EE.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Kui genereerid varukoodid uuesti, muudad vanad koodid automaatselt kehtetuks.",
"{name} backup codes" : "{name} varukoodid",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Kasuta üht kaheastmelise autentimise seadistamisel salvestatud varukoodidest.",
- "Submit" : "Saada",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Need on su varukoodid. Palun salvesta ja/või trüki need välja, sest rohkem sa neid vaadata ei saa."
+ "Submit" : "Saada"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/et_EE.json b/apps/twofactor_backupcodes/l10n/et_EE.json
index 9cdabd0af66..9cc7ebced77 100644
--- a/apps/twofactor_backupcodes/l10n/et_EE.json
+++ b/apps/twofactor_backupcodes/l10n/et_EE.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Kui genereerid varukoodid uuesti, muudad vanad koodid automaatselt kehtetuks.",
"{name} backup codes" : "{name} varukoodid",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Kasuta üht kaheastmelise autentimise seadistamisel salvestatud varukoodidest.",
- "Submit" : "Saada",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Need on su varukoodid. Palun salvesta ja/või trüki need välja, sest rohkem sa neid vaadata ei saa."
+ "Submit" : "Saada"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/eu.js b/apps/twofactor_backupcodes/l10n/eu.js
index 54bab69dfba..51bbef86537 100644
--- a/apps/twofactor_backupcodes/l10n/eu.js
+++ b/apps/twofactor_backupcodes/l10n/eu.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Segurtasun kodeak berriz sortzen badituzu, zaharrak desaktibatu egingo dira.",
"{name} backup codes" : "{name} segurtasun kodeak",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Erabili bi faktoreko autentifikazioa aktibatu zenuenean sortutako segurtasun kodeetako bat",
- "Submit" : "Bidali",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Hauexek dira zure segurtasun kodeak. Gorde edo/eta inprimatu itzazu ez baitira berriz agertuko."
+ "Submit" : "Bidali"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/eu.json b/apps/twofactor_backupcodes/l10n/eu.json
index 4790ab4b135..23655c5bbcc 100644
--- a/apps/twofactor_backupcodes/l10n/eu.json
+++ b/apps/twofactor_backupcodes/l10n/eu.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Segurtasun kodeak berriz sortzen badituzu, zaharrak desaktibatu egingo dira.",
"{name} backup codes" : "{name} segurtasun kodeak",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Erabili bi faktoreko autentifikazioa aktibatu zenuenean sortutako segurtasun kodeetako bat",
- "Submit" : "Bidali",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Hauexek dira zure segurtasun kodeak. Gorde edo/eta inprimatu itzazu ez baitira berriz agertuko."
+ "Submit" : "Bidali"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/fa.js b/apps/twofactor_backupcodes/l10n/fa.js
index cee79ef30ff..123700613c3 100644
--- a/apps/twofactor_backupcodes/l10n/fa.js
+++ b/apps/twofactor_backupcodes/l10n/fa.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "اگر کدهای پشتیبان را دوباره تولید کنید، به طور خودکار کدهای قدیمی را باطل می کنید.",
"{name} backup codes" : "کدهای پشتیبان {نام}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "از یکی از کدهای پشتیبان که هنگام تنظیم احراز هویت دو مرحله ای ذخیره کرده اید استفاده کنید.",
- "Submit" : "ارسال",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "اینها کدهای پشتیبان شما هستند. لطفاً آنها را ذخیره و/یا چاپ کنید زیرا بعداً نمی توانید دوباره کدها را بخوانید."
+ "Submit" : "ارسال"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/twofactor_backupcodes/l10n/fa.json b/apps/twofactor_backupcodes/l10n/fa.json
index 7bc8fcb87f1..c1c2d24f30e 100644
--- a/apps/twofactor_backupcodes/l10n/fa.json
+++ b/apps/twofactor_backupcodes/l10n/fa.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "اگر کدهای پشتیبان را دوباره تولید کنید، به طور خودکار کدهای قدیمی را باطل می کنید.",
"{name} backup codes" : "کدهای پشتیبان {نام}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "از یکی از کدهای پشتیبان که هنگام تنظیم احراز هویت دو مرحله ای ذخیره کرده اید استفاده کنید.",
- "Submit" : "ارسال",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "اینها کدهای پشتیبان شما هستند. لطفاً آنها را ذخیره و/یا چاپ کنید زیرا بعداً نمی توانید دوباره کدها را بخوانید."
+ "Submit" : "ارسال"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/fi.js b/apps/twofactor_backupcodes/l10n/fi.js
index b18c811b796..6a408e16400 100644
--- a/apps/twofactor_backupcodes/l10n/fi.js
+++ b/apps/twofactor_backupcodes/l10n/fi.js
@@ -13,7 +13,6 @@ OC.L10N.register(
"Print backup codes" : "Tulosta varakoodit",
"Regenerate backup codes" : "Luo varakoodit uudelleen",
"If you regenerate backup codes, you automatically invalidate old codes." : "Jos luot varakoodit uudelleen, vanhat koodit poistetaan automaattisesti käytöstä.",
- "Submit" : "Lähetä",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Nämä ovat varakoodisi. Tallenna ja/tai tulosta ne, koska et voi lukea koodeja myöhemmin"
+ "Submit" : "Lähetä"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/fi.json b/apps/twofactor_backupcodes/l10n/fi.json
index d090d9557e3..ce82c32a30f 100644
--- a/apps/twofactor_backupcodes/l10n/fi.json
+++ b/apps/twofactor_backupcodes/l10n/fi.json
@@ -11,7 +11,6 @@
"Print backup codes" : "Tulosta varakoodit",
"Regenerate backup codes" : "Luo varakoodit uudelleen",
"If you regenerate backup codes, you automatically invalidate old codes." : "Jos luot varakoodit uudelleen, vanhat koodit poistetaan automaattisesti käytöstä.",
- "Submit" : "Lähetä",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Nämä ovat varakoodisi. Tallenna ja/tai tulosta ne, koska et voi lukea koodeja myöhemmin"
+ "Submit" : "Lähetä"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/fr.js b/apps/twofactor_backupcodes/l10n/fr.js
index e380157908d..c49e09edc8f 100644
--- a/apps/twofactor_backupcodes/l10n/fr.js
+++ b/apps/twofactor_backupcodes/l10n/fr.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vous régénérez les codes de récupération, vous invalidez automatiquement les anciens codes.",
"{name} backup codes" : "{name} codes de récupération",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilisez l'un des codes de récupération que vous avez enregistrés lors de la configuration de l'authentification à deux facteurs.",
- "Submit" : "Soumettre",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Voici vos codes de récupération. Veuillez les sauvegarder et/ou les imprimer car vous ne pourrez plus y avoir accès ultérieurement"
+ "Submit" : "Soumettre"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/fr.json b/apps/twofactor_backupcodes/l10n/fr.json
index d82d2d596a1..04f04ae2c6e 100644
--- a/apps/twofactor_backupcodes/l10n/fr.json
+++ b/apps/twofactor_backupcodes/l10n/fr.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Si vous régénérez les codes de récupération, vous invalidez automatiquement les anciens codes.",
"{name} backup codes" : "{name} codes de récupération",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Utilisez l'un des codes de récupération que vous avez enregistrés lors de la configuration de l'authentification à deux facteurs.",
- "Submit" : "Soumettre",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Voici vos codes de récupération. Veuillez les sauvegarder et/ou les imprimer car vous ne pourrez plus y avoir accès ultérieurement"
+ "Submit" : "Soumettre"
},"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/twofactor_backupcodes/l10n/ga.js b/apps/twofactor_backupcodes/l10n/ga.js
index df11990ea42..92afbed005f 100644
--- a/apps/twofactor_backupcodes/l10n/ga.js
+++ b/apps/twofactor_backupcodes/l10n/ga.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Má athghineann tú cóid chúltaca, déanann tú sean-chóid neamhbhailí go huathoibríoch.",
"{name} backup codes" : "cóid chúltaca {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Bain úsáid as ceann de na cóid chúltaca a shábháil tú agus fíordheimhniú dhá-fhachtóir á socrú agat.",
- "Submit" : "Cuir isteach",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Seo iad do chóid chúltaca. Sábháil agus/nó priontáil iad mar ní bheidh tú in ann na cóid a léamh arís ar ball le do thoil"
+ "Submit" : "Cuir isteach"
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/twofactor_backupcodes/l10n/ga.json b/apps/twofactor_backupcodes/l10n/ga.json
index f63e91d7cef..b610ac4d1b7 100644
--- a/apps/twofactor_backupcodes/l10n/ga.json
+++ b/apps/twofactor_backupcodes/l10n/ga.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Má athghineann tú cóid chúltaca, déanann tú sean-chóid neamhbhailí go huathoibríoch.",
"{name} backup codes" : "cóid chúltaca {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Bain úsáid as ceann de na cóid chúltaca a shábháil tú agus fíordheimhniú dhá-fhachtóir á socrú agat.",
- "Submit" : "Cuir isteach",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Seo iad do chóid chúltaca. Sábháil agus/nó priontáil iad mar ní bheidh tú in ann na cóid a léamh arís ar ball le do thoil"
+ "Submit" : "Cuir isteach"
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/gl.js b/apps/twofactor_backupcodes/l10n/gl.js
index 1a6a7a75667..76a82fe9ebc 100644
--- a/apps/twofactor_backupcodes/l10n/gl.js
+++ b/apps/twofactor_backupcodes/l10n/gl.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Se volve xerar os códigos de recuperación, automaticamente invalidara os antigos códigos.",
"{name} backup codes" : "Códigos de recuperación {name} ",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use un dos códigos de recuperación que gardou cando axustou a autenticación de dous factores.",
- "Submit" : "Enviar ",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estes son os seus códigos de recuperación. Gárdeos e/ou imprímaos xa que non poderá volver lelos de novo"
+ "Submit" : "Enviar "
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/gl.json b/apps/twofactor_backupcodes/l10n/gl.json
index e43ef86bcf7..47cc4a174f4 100644
--- a/apps/twofactor_backupcodes/l10n/gl.json
+++ b/apps/twofactor_backupcodes/l10n/gl.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Se volve xerar os códigos de recuperación, automaticamente invalidara os antigos códigos.",
"{name} backup codes" : "Códigos de recuperación {name} ",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use un dos códigos de recuperación que gardou cando axustou a autenticación de dous factores.",
- "Submit" : "Enviar ",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estes son os seus códigos de recuperación. Gárdeos e/ou imprímaos xa que non poderá volver lelos de novo"
+ "Submit" : "Enviar "
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/hr.js b/apps/twofactor_backupcodes/l10n/hr.js
index c2988b7203b..8fecb092274 100644
--- a/apps/twofactor_backupcodes/l10n/hr.js
+++ b/apps/twofactor_backupcodes/l10n/hr.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Ako ponovno generirate pričuvne šifre, automatski poništavate stare šifre.",
"{name} backup codes" : "{name} pričuvnih šifri",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Upotrijebite jednu od pričuvnih šifri koje ste spremili prilikom postavljanja dvofaktorske autentifikacije.",
- "Submit" : "Šalji",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ovo su vaše pričuvne šifre. Spremite ih i/ili ih ispišite jer ih kasnije više nećete moći pročitati"
+ "Submit" : "Šalji"
},
"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/twofactor_backupcodes/l10n/hr.json b/apps/twofactor_backupcodes/l10n/hr.json
index fd80cfd4513..049d4a601fa 100644
--- a/apps/twofactor_backupcodes/l10n/hr.json
+++ b/apps/twofactor_backupcodes/l10n/hr.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Ako ponovno generirate pričuvne šifre, automatski poništavate stare šifre.",
"{name} backup codes" : "{name} pričuvnih šifri",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Upotrijebite jednu od pričuvnih šifri koje ste spremili prilikom postavljanja dvofaktorske autentifikacije.",
- "Submit" : "Šalji",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ovo su vaše pričuvne šifre. Spremite ih i/ili ih ispišite jer ih kasnije više nećete moći pročitati"
+ "Submit" : "Šalji"
},"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/twofactor_backupcodes/l10n/hu.js b/apps/twofactor_backupcodes/l10n/hu.js
index 24051dd8b78..1ddbcdb4277 100644
--- a/apps/twofactor_backupcodes/l10n/hu.js
+++ b/apps/twofactor_backupcodes/l10n/hu.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Ha újra előállítja a biztonsági kódokat, akkor a régiek automatikusan érvénytelenítve lesznek.",
"{name} backup codes" : "{name} biztonsági kódjai",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Használjon egy biztonsági kódot, amikor beállítja a kétlépcsős hitelesítést.",
- "Submit" : "Küldés",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ezek a biztonsági kódjai. Mentse el vagy nyomtassa ki őket úgy, hogy később is meglegyenek."
+ "Submit" : "Küldés"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/hu.json b/apps/twofactor_backupcodes/l10n/hu.json
index 38523694613..514b09a7896 100644
--- a/apps/twofactor_backupcodes/l10n/hu.json
+++ b/apps/twofactor_backupcodes/l10n/hu.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Ha újra előállítja a biztonsági kódokat, akkor a régiek automatikusan érvénytelenítve lesznek.",
"{name} backup codes" : "{name} biztonsági kódjai",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Használjon egy biztonsági kódot, amikor beállítja a kétlépcsős hitelesítést.",
- "Submit" : "Küldés",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ezek a biztonsági kódjai. Mentse el vagy nyomtassa ki őket úgy, hogy később is meglegyenek."
+ "Submit" : "Küldés"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/is.js b/apps/twofactor_backupcodes/l10n/is.js
index 6a6b53e4703..c43e3779337 100644
--- a/apps/twofactor_backupcodes/l10n/is.js
+++ b/apps/twofactor_backupcodes/l10n/is.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Ef þú endurnýjar öryggisafritunarkóða, gerir þú sjálfkrafa eldri kóða ógilda.",
"{name} backup codes" : "{name} öryggisafritunarkóðar",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Notaðu einn af öryggisafritunarkóðunum sem þú vistaðir þegar þú settir upp tveggja-þátta auðkenningu.",
- "Submit" : "Senda inn",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Þetta eru öryggisafritunarkóðarnir þínir. Vistaðu þá og/eða prentaðu þá út, því þú munt ekki geta lesið þá aftur síðar í ferlinu"
+ "Submit" : "Senda inn"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/twofactor_backupcodes/l10n/is.json b/apps/twofactor_backupcodes/l10n/is.json
index 22e1040a1bc..2141b6e51bc 100644
--- a/apps/twofactor_backupcodes/l10n/is.json
+++ b/apps/twofactor_backupcodes/l10n/is.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Ef þú endurnýjar öryggisafritunarkóða, gerir þú sjálfkrafa eldri kóða ógilda.",
"{name} backup codes" : "{name} öryggisafritunarkóðar",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Notaðu einn af öryggisafritunarkóðunum sem þú vistaðir þegar þú settir upp tveggja-þátta auðkenningu.",
- "Submit" : "Senda inn",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Þetta eru öryggisafritunarkóðarnir þínir. Vistaðu þá og/eða prentaðu þá út, því þú munt ekki geta lesið þá aftur síðar í ferlinu"
+ "Submit" : "Senda inn"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/it.js b/apps/twofactor_backupcodes/l10n/it.js
index 14ffbaf4a3e..4ccc170b59c 100644
--- a/apps/twofactor_backupcodes/l10n/it.js
+++ b/apps/twofactor_backupcodes/l10n/it.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Se rigeneri i codici di backup, invaliderai automaticamente i vecchi codici.",
"{name} backup codes" : "Codici di backup di {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Usa uno dei codici di backup che hai salvato quando configuri l'autenticazione a due fattori.",
- "Submit" : "Invia",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Questi sono i tuoi codici di backup. Salvali e/o stampali poiché non potrai più leggerli successivamente"
+ "Submit" : "Invia"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/it.json b/apps/twofactor_backupcodes/l10n/it.json
index 6f39b0d4022..cc13db71619 100644
--- a/apps/twofactor_backupcodes/l10n/it.json
+++ b/apps/twofactor_backupcodes/l10n/it.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Se rigeneri i codici di backup, invaliderai automaticamente i vecchi codici.",
"{name} backup codes" : "Codici di backup di {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Usa uno dei codici di backup che hai salvato quando configuri l'autenticazione a due fattori.",
- "Submit" : "Invia",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Questi sono i tuoi codici di backup. Salvali e/o stampali poiché non potrai più leggerli successivamente"
+ "Submit" : "Invia"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/ja.js b/apps/twofactor_backupcodes/l10n/ja.js
index 8f99cc9b67f..52fd8935dba 100644
--- a/apps/twofactor_backupcodes/l10n/ja.js
+++ b/apps/twofactor_backupcodes/l10n/ja.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "バックアップコードを再生成すると、自動的に古いコードが無効になります。",
"{name} backup codes" : "{name} バックアップコード",
"Use one of the backup codes you saved when setting up two-factor authentication." : "二要素認証を設定するときに保存したバックアップコードのいずれかを使用します。",
- "Submit" : "了解",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "以下はあなたのバックアップコードです。 後からこのコードを見ることはできないので、保存するか印刷しておいてください"
+ "Submit" : "了解"
},
"nplurals=1; plural=0;");
diff --git a/apps/twofactor_backupcodes/l10n/ja.json b/apps/twofactor_backupcodes/l10n/ja.json
index 17801022266..a813c3102ca 100644
--- a/apps/twofactor_backupcodes/l10n/ja.json
+++ b/apps/twofactor_backupcodes/l10n/ja.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "バックアップコードを再生成すると、自動的に古いコードが無効になります。",
"{name} backup codes" : "{name} バックアップコード",
"Use one of the backup codes you saved when setting up two-factor authentication." : "二要素認証を設定するときに保存したバックアップコードのいずれかを使用します。",
- "Submit" : "了解",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "以下はあなたのバックアップコードです。 後からこのコードを見ることはできないので、保存するか印刷しておいてください"
+ "Submit" : "了解"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/ka.js b/apps/twofactor_backupcodes/l10n/ka.js
index 7756618a719..fb9029941b0 100644
--- a/apps/twofactor_backupcodes/l10n/ka.js
+++ b/apps/twofactor_backupcodes/l10n/ka.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "If you regenerate backup codes, you automatically invalidate old codes.",
"{name} backup codes" : "{name} backup codes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use one of the backup codes you saved when setting up two-factor authentication.",
- "Submit" : "Submit",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later"
+ "Submit" : "Submit"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/twofactor_backupcodes/l10n/ka.json b/apps/twofactor_backupcodes/l10n/ka.json
index b56cec43fef..f663ce8ddff 100644
--- a/apps/twofactor_backupcodes/l10n/ka.json
+++ b/apps/twofactor_backupcodes/l10n/ka.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "If you regenerate backup codes, you automatically invalidate old codes.",
"{name} backup codes" : "{name} backup codes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use one of the backup codes you saved when setting up two-factor authentication.",
- "Submit" : "Submit",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later"
+ "Submit" : "Submit"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/ka_GE.js b/apps/twofactor_backupcodes/l10n/ka_GE.js
index 7e7e65d36a2..2155dcba759 100644
--- a/apps/twofactor_backupcodes/l10n/ka_GE.js
+++ b/apps/twofactor_backupcodes/l10n/ka_GE.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "ბექაფის კოდების ამობეჭდვა",
"Regenerate backup codes" : "ბექაფის კოდების გენერაცია",
"If you regenerate backup codes, you automatically invalidate old codes." : "ძველი კოდები, ახალი ბექაფის კოდების რეგენერაციისას დაკარგავენ მოქმდების ძალას.",
- "Submit" : "გაგზავნა",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "ეს თქვენი ბექაფის კოდებია. გთხოვთ შეინახოთ ან ამობეჭდოთ ისინი, კოდებს მეტი ვეღარ წაიკითხავთ"
+ "Submit" : "გაგზავნა"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/twofactor_backupcodes/l10n/ka_GE.json b/apps/twofactor_backupcodes/l10n/ka_GE.json
index 16486bf53a0..bf5bc6ebff3 100644
--- a/apps/twofactor_backupcodes/l10n/ka_GE.json
+++ b/apps/twofactor_backupcodes/l10n/ka_GE.json
@@ -10,7 +10,6 @@
"Print backup codes" : "ბექაფის კოდების ამობეჭდვა",
"Regenerate backup codes" : "ბექაფის კოდების გენერაცია",
"If you regenerate backup codes, you automatically invalidate old codes." : "ძველი კოდები, ახალი ბექაფის კოდების რეგენერაციისას დაკარგავენ მოქმდების ძალას.",
- "Submit" : "გაგზავნა",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "ეს თქვენი ბექაფის კოდებია. გთხოვთ შეინახოთ ან ამობეჭდოთ ისინი, კოდებს მეტი ვეღარ წაიკითხავთ"
+ "Submit" : "გაგზავნა"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/ko.js b/apps/twofactor_backupcodes/l10n/ko.js
index cbaac3bf18d..d292d78e9a1 100644
--- a/apps/twofactor_backupcodes/l10n/ko.js
+++ b/apps/twofactor_backupcodes/l10n/ko.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "백업 코드를 다시 생성하면 이전 코드는 자동으로 무효화됩니다.",
"{name} backup codes" : "{name} 백업 코드",
"Use one of the backup codes you saved when setting up two-factor authentication." : "2단계 인증을 설정할 때 저장한 백업 코드를 사용하십시오.",
- "Submit" : "제출",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "다음은 백업 코드입니다. 이 코드는 나중에 다시 확인할 수 없으므로 저장하거나 인쇄하십시오."
+ "Submit" : "제출"
},
"nplurals=1; plural=0;");
diff --git a/apps/twofactor_backupcodes/l10n/ko.json b/apps/twofactor_backupcodes/l10n/ko.json
index 49883b5e70e..29ec38258a5 100644
--- a/apps/twofactor_backupcodes/l10n/ko.json
+++ b/apps/twofactor_backupcodes/l10n/ko.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "백업 코드를 다시 생성하면 이전 코드는 자동으로 무효화됩니다.",
"{name} backup codes" : "{name} 백업 코드",
"Use one of the backup codes you saved when setting up two-factor authentication." : "2단계 인증을 설정할 때 저장한 백업 코드를 사용하십시오.",
- "Submit" : "제출",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "다음은 백업 코드입니다. 이 코드는 나중에 다시 확인할 수 없으므로 저장하거나 인쇄하십시오."
+ "Submit" : "제출"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/lt_LT.js b/apps/twofactor_backupcodes/l10n/lt_LT.js
index b668befde5f..206e3dc2ed2 100644
--- a/apps/twofactor_backupcodes/l10n/lt_LT.js
+++ b/apps/twofactor_backupcodes/l10n/lt_LT.js
@@ -15,7 +15,6 @@ OC.L10N.register(
"Regenerate backup codes" : "Iš naujo generuoti atsarginius kodus",
"If you regenerate backup codes, you automatically invalidate old codes." : "Jeigu iš naujo generuosite atsarginius kodus, automatiškai paversite senuosius kodus nebegaliojančiais.",
"{name} backup codes" : "{name} atsarginiai kodai",
- "Submit" : "Pateikti",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Tai yra jūsų atsarginiai kodai. Įsirašykite ir/arba atspausdinkite juos, nes vėliau nebegalėsite dar kartą jų perskaityti"
+ "Submit" : "Pateikti"
},
"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/twofactor_backupcodes/l10n/lt_LT.json b/apps/twofactor_backupcodes/l10n/lt_LT.json
index 08a56895a0f..bb37a06a21b 100644
--- a/apps/twofactor_backupcodes/l10n/lt_LT.json
+++ b/apps/twofactor_backupcodes/l10n/lt_LT.json
@@ -13,7 +13,6 @@
"Regenerate backup codes" : "Iš naujo generuoti atsarginius kodus",
"If you regenerate backup codes, you automatically invalidate old codes." : "Jeigu iš naujo generuosite atsarginius kodus, automatiškai paversite senuosius kodus nebegaliojančiais.",
"{name} backup codes" : "{name} atsarginiai kodai",
- "Submit" : "Pateikti",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Tai yra jūsų atsarginiai kodai. Įsirašykite ir/arba atspausdinkite juos, nes vėliau nebegalėsite dar kartą jų perskaityti"
+ "Submit" : "Pateikti"
},"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/twofactor_backupcodes/l10n/lv.js b/apps/twofactor_backupcodes/l10n/lv.js
index 85a51e0e69c..7c0eaf63c4b 100644
--- a/apps/twofactor_backupcodes/l10n/lv.js
+++ b/apps/twofactor_backupcodes/l10n/lv.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"twofactor_backupcodes",
{
- "You created two-factor backup codes for your account" : "Jūs izveidojāt divpakāpju dublējumu kodus savam kontam",
+ "You created two-factor backup codes for your account" : "Tu savam kontam izveidoji divpakāpju rezerves kopiju kodus",
"Second-factor backup codes" : "Second-factor dublēšanas kodi",
"Generate backup codes" : "Izveidot rezerves kodus",
"Backup code" : "Dublēšanas kods",
@@ -11,7 +11,6 @@ OC.L10N.register(
"Print backup codes" : "Drukāt dublējuma kodus",
"Regenerate backup codes" : "Atjaunot dublējuma kodus",
"If you regenerate backup codes, you automatically invalidate old codes." : "Ja atjaunot dublējum kodus, tiek automātiski anulēti vecie kodi.",
- "Submit" : "Iesniegt",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Šie ir jūsu dublējuma kodi. Lūdzu saglabāt un / vai izdrukāt tos, jūs nevarēsiet izlasīt kodus vēlreiz"
+ "Submit" : "Iesniegt"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/twofactor_backupcodes/l10n/lv.json b/apps/twofactor_backupcodes/l10n/lv.json
index acda7e895b6..871dee78b2c 100644
--- a/apps/twofactor_backupcodes/l10n/lv.json
+++ b/apps/twofactor_backupcodes/l10n/lv.json
@@ -1,5 +1,5 @@
{ "translations": {
- "You created two-factor backup codes for your account" : "Jūs izveidojāt divpakāpju dublējumu kodus savam kontam",
+ "You created two-factor backup codes for your account" : "Tu savam kontam izveidoji divpakāpju rezerves kopiju kodus",
"Second-factor backup codes" : "Second-factor dublēšanas kodi",
"Generate backup codes" : "Izveidot rezerves kodus",
"Backup code" : "Dublēšanas kods",
@@ -9,7 +9,6 @@
"Print backup codes" : "Drukāt dublējuma kodus",
"Regenerate backup codes" : "Atjaunot dublējuma kodus",
"If you regenerate backup codes, you automatically invalidate old codes." : "Ja atjaunot dublējum kodus, tiek automātiski anulēti vecie kodi.",
- "Submit" : "Iesniegt",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Šie ir jūsu dublējuma kodi. Lūdzu saglabāt un / vai izdrukāt tos, jūs nevarēsiet izlasīt kodus vēlreiz"
+ "Submit" : "Iesniegt"
},"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/twofactor_backupcodes/l10n/mk.js b/apps/twofactor_backupcodes/l10n/mk.js
index 6179440cd86..f6447ece31d 100644
--- a/apps/twofactor_backupcodes/l10n/mk.js
+++ b/apps/twofactor_backupcodes/l10n/mk.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Доколку генерирате повторно резервни кодови, старите кодови нема да бидат во употреба.",
"{name} backup codes" : "{name} резервни кодови",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Искористи еден од резервните кодови што ги зачувавте кога активиравте двофакторна автентикација.",
- "Submit" : "Испрати",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ова се вашите резервни кодови. Ве молиме зачувајте ги и/или испечатете ги бидејќи нема да бидете во можност да ги видите повторно"
+ "Submit" : "Испрати"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/twofactor_backupcodes/l10n/mk.json b/apps/twofactor_backupcodes/l10n/mk.json
index ed8090b1733..8ff2522dd78 100644
--- a/apps/twofactor_backupcodes/l10n/mk.json
+++ b/apps/twofactor_backupcodes/l10n/mk.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Доколку генерирате повторно резервни кодови, старите кодови нема да бидат во употреба.",
"{name} backup codes" : "{name} резервни кодови",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Искористи еден од резервните кодови што ги зачувавте кога активиравте двофакторна автентикација.",
- "Submit" : "Испрати",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ова се вашите резервни кодови. Ве молиме зачувајте ги и/или испечатете ги бидејќи нема да бидете во можност да ги видите повторно"
+ "Submit" : "Испрати"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/mn.js b/apps/twofactor_backupcodes/l10n/mn.js
index 7c7e7a263a5..7c6cf17b2eb 100644
--- a/apps/twofactor_backupcodes/l10n/mn.js
+++ b/apps/twofactor_backupcodes/l10n/mn.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Нөөц кодыг хэвлэх",
"Regenerate backup codes" : "Нөөц кодыг дахин сэргээх",
"If you regenerate backup codes, you automatically invalidate old codes." : "хэрвээ нөөц кодыг дахин сэргээх бол, та хуучин кодыг автоматаар хүчингүй болгоно",
- "Submit" : "мэдэгдэх",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Эдгээр нь таны нөөц код юм. Дараа нь дахин кодыг уншиж чадахгүй тул та тэдгээрийг хадгалах буюу хэвлэх боломжтой"
+ "Submit" : "мэдэгдэх"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/mn.json b/apps/twofactor_backupcodes/l10n/mn.json
index 1c1d21019d4..17763574b64 100644
--- a/apps/twofactor_backupcodes/l10n/mn.json
+++ b/apps/twofactor_backupcodes/l10n/mn.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Нөөц кодыг хэвлэх",
"Regenerate backup codes" : "Нөөц кодыг дахин сэргээх",
"If you regenerate backup codes, you automatically invalidate old codes." : "хэрвээ нөөц кодыг дахин сэргээх бол, та хуучин кодыг автоматаар хүчингүй болгоно",
- "Submit" : "мэдэгдэх",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Эдгээр нь таны нөөц код юм. Дараа нь дахин кодыг уншиж чадахгүй тул та тэдгээрийг хадгалах буюу хэвлэх боломжтой"
+ "Submit" : "мэдэгдэх"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/nb.js b/apps/twofactor_backupcodes/l10n/nb.js
index b4b9cf108f0..ff76337d31a 100644
--- a/apps/twofactor_backupcodes/l10n/nb.js
+++ b/apps/twofactor_backupcodes/l10n/nb.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Hvis du regenererer nye sikkerhetskoder, blir de gamle kodene ugyldige.",
"{name} backup codes" : "{name} sikkerhetskoder",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Bruk en av sikkerhetskodene du lagret når du opprettet to-faktor autentisering.",
- "Submit" : "Send",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dette er sikkerhetskodene. Lagre og/eller skriv dem ut siden du ikke kan se disse her igjen"
+ "Submit" : "Send"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/nb.json b/apps/twofactor_backupcodes/l10n/nb.json
index de0694d80dd..739b785fc98 100644
--- a/apps/twofactor_backupcodes/l10n/nb.json
+++ b/apps/twofactor_backupcodes/l10n/nb.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Hvis du regenererer nye sikkerhetskoder, blir de gamle kodene ugyldige.",
"{name} backup codes" : "{name} sikkerhetskoder",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Bruk en av sikkerhetskodene du lagret når du opprettet to-faktor autentisering.",
- "Submit" : "Send",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dette er sikkerhetskodene. Lagre og/eller skriv dem ut siden du ikke kan se disse her igjen"
+ "Submit" : "Send"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/nl.js b/apps/twofactor_backupcodes/l10n/nl.js
index a3eee760c6b..641e12060a9 100644
--- a/apps/twofactor_backupcodes/l10n/nl.js
+++ b/apps/twofactor_backupcodes/l10n/nl.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Als je back-upcodes opnieuw genereert, worden oude codes automatisch ongeldig gemaakt.",
"{name} backup codes" : "{name} back-upcodes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Gebruik een van de back-upcodes die je bewaarde bij het inschakelen van de tweefactorauthenticatie.",
- "Submit" : "Verwerken",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dit zijn je back-upcodes. Bewaar ze en/of druk ze alsjeblieft af, want je ze kunt niet later nog een keer opvragen."
+ "Submit" : "Verwerken"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/nl.json b/apps/twofactor_backupcodes/l10n/nl.json
index f2277b03ced..e4638fbb0f9 100644
--- a/apps/twofactor_backupcodes/l10n/nl.json
+++ b/apps/twofactor_backupcodes/l10n/nl.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Als je back-upcodes opnieuw genereert, worden oude codes automatisch ongeldig gemaakt.",
"{name} backup codes" : "{name} back-upcodes",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Gebruik een van de back-upcodes die je bewaarde bij het inschakelen van de tweefactorauthenticatie.",
- "Submit" : "Verwerken",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dit zijn je back-upcodes. Bewaar ze en/of druk ze alsjeblieft af, want je ze kunt niet later nog een keer opvragen."
+ "Submit" : "Verwerken"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/pl.js b/apps/twofactor_backupcodes/l10n/pl.js
index 5c55784a372..52840c4641b 100644
--- a/apps/twofactor_backupcodes/l10n/pl.js
+++ b/apps/twofactor_backupcodes/l10n/pl.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Jeśli generujesz kody zapasowe ponownie, automatycznie unieważniasz stare kody.",
"{name} backup codes" : "Kody kopii zapasowej {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Użyj jednego z kodów zapasowych zapisanych podczas konfigurowania uwierzytelniania dwuskładnikowego.",
- "Submit" : "Wyślij",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "To są kody zapasowe. Proszę je zapisać i/lub wydrukować, ponieważ później nie będzie można ich ponownie odczytać"
+ "Submit" : "Wyślij"
},
"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/twofactor_backupcodes/l10n/pl.json b/apps/twofactor_backupcodes/l10n/pl.json
index f1937fd8b9d..e8ecbb3a095 100644
--- a/apps/twofactor_backupcodes/l10n/pl.json
+++ b/apps/twofactor_backupcodes/l10n/pl.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Jeśli generujesz kody zapasowe ponownie, automatycznie unieważniasz stare kody.",
"{name} backup codes" : "Kody kopii zapasowej {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Użyj jednego z kodów zapasowych zapisanych podczas konfigurowania uwierzytelniania dwuskładnikowego.",
- "Submit" : "Wyślij",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "To są kody zapasowe. Proszę je zapisać i/lub wydrukować, ponieważ później nie będzie można ich ponownie odczytać"
+ "Submit" : "Wyślij"
},"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/twofactor_backupcodes/l10n/pt_BR.js b/apps/twofactor_backupcodes/l10n/pt_BR.js
index 37b203a6a6a..c3803a5f156 100644
--- a/apps/twofactor_backupcodes/l10n/pt_BR.js
+++ b/apps/twofactor_backupcodes/l10n/pt_BR.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Se você gerar novamente os códigos de backup, invalidará automaticamente os códigos antigos.",
"{name} backup codes" : "Códigos de backup {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use um dos códigos de backup que você salvou ao configurar a autenticação de dois fatores.",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estes são os seus códigos de backup. Salve e/ou imprima-os, pois não será possível ler os códigos novamente mais tarde"
+ "Submit" : "Enviar"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/pt_BR.json b/apps/twofactor_backupcodes/l10n/pt_BR.json
index 479eb3356b7..1f7d46bda90 100644
--- a/apps/twofactor_backupcodes/l10n/pt_BR.json
+++ b/apps/twofactor_backupcodes/l10n/pt_BR.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Se você gerar novamente os códigos de backup, invalidará automaticamente os códigos antigos.",
"{name} backup codes" : "Códigos de backup {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Use um dos códigos de backup que você salvou ao configurar a autenticação de dois fatores.",
- "Submit" : "Enviar",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estes são os seus códigos de backup. Salve e/ou imprima-os, pois não será possível ler os códigos novamente mais tarde"
+ "Submit" : "Enviar"
},"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/twofactor_backupcodes/l10n/pt_PT.js b/apps/twofactor_backupcodes/l10n/pt_PT.js
index 4497fe8d7f5..16cc27277b7 100644
--- a/apps/twofactor_backupcodes/l10n/pt_PT.js
+++ b/apps/twofactor_backupcodes/l10n/pt_PT.js
@@ -10,7 +10,6 @@ OC.L10N.register(
"Print backup codes" : "Imprimir códigos de segurança",
"Regenerate backup codes" : "Voltar a gerar os códigos de segurança",
"If you regenerate backup codes, you automatically invalidate old codes." : "Se voltar a gerar os códigos de segurança os seus códigos antigos serão automaticamente invalidados.",
- "Submit" : "Submeter",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estes são os seus códigos de segurança. Por favor, guarde ou imprima-os pois estes códigos não serão possíveis de visualizar novamente."
+ "Submit" : "Submeter"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/twofactor_backupcodes/l10n/pt_PT.json b/apps/twofactor_backupcodes/l10n/pt_PT.json
index 35e58ddf43f..7e132a94af5 100644
--- a/apps/twofactor_backupcodes/l10n/pt_PT.json
+++ b/apps/twofactor_backupcodes/l10n/pt_PT.json
@@ -8,7 +8,6 @@
"Print backup codes" : "Imprimir códigos de segurança",
"Regenerate backup codes" : "Voltar a gerar os códigos de segurança",
"If you regenerate backup codes, you automatically invalidate old codes." : "Se voltar a gerar os códigos de segurança os seus códigos antigos serão automaticamente invalidados.",
- "Submit" : "Submeter",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estes são os seus códigos de segurança. Por favor, guarde ou imprima-os pois estes códigos não serão possíveis de visualizar novamente."
+ "Submit" : "Submeter"
},"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/twofactor_backupcodes/l10n/ru.js b/apps/twofactor_backupcodes/l10n/ru.js
index 958d7d03c9d..76e1baf9d6d 100644
--- a/apps/twofactor_backupcodes/l10n/ru.js
+++ b/apps/twofactor_backupcodes/l10n/ru.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "При перевыпуске резервных кодов, старые автоматически становятся недействительными.",
"{name} backup codes" : "Резервные коды {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Использовать для двухфакторной аутентификации один из ранее выпущенных резервных кодов.",
- "Submit" : "Отправить",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Это ваши резервные коды доступа. Пожалуйста, сохраните и/или распечатайте их, так как вы не сможете увидеть эти коды снова."
+ "Submit" : "Отправить"
},
"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/twofactor_backupcodes/l10n/ru.json b/apps/twofactor_backupcodes/l10n/ru.json
index 476561600c7..9202e3136f1 100644
--- a/apps/twofactor_backupcodes/l10n/ru.json
+++ b/apps/twofactor_backupcodes/l10n/ru.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "При перевыпуске резервных кодов, старые автоматически становятся недействительными.",
"{name} backup codes" : "Резервные коды {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Использовать для двухфакторной аутентификации один из ранее выпущенных резервных кодов.",
- "Submit" : "Отправить",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Это ваши резервные коды доступа. Пожалуйста, сохраните и/или распечатайте их, так как вы не сможете увидеть эти коды снова."
+ "Submit" : "Отправить"
},"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/twofactor_backupcodes/l10n/sc.js b/apps/twofactor_backupcodes/l10n/sc.js
index a4e34b29562..850261f3774 100644
--- a/apps/twofactor_backupcodes/l10n/sc.js
+++ b/apps/twofactor_backupcodes/l10n/sc.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Si torras a generare is còdighes de còpia de seguresa, in automàticu is còdighes betzos non sunt prus vàlidos.",
"{name} backup codes" : "{name} còdighes de còpia de seguresa",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Imprea unu de is còdighes de còpia de seguresa chi as sarvadu cando cunfiguras s'autenticatzione a duos fatores.",
- "Submit" : "Imbia",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Custos sunt is còdighes de còpia de seguresa tuos. Sarva·ddos e/o imprenta·ddos ca non ddos as a pòdere bìdere àteras bortas"
+ "Submit" : "Imbia"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/sc.json b/apps/twofactor_backupcodes/l10n/sc.json
index f1e2a57a3f3..3d0bc7d37ac 100644
--- a/apps/twofactor_backupcodes/l10n/sc.json
+++ b/apps/twofactor_backupcodes/l10n/sc.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Si torras a generare is còdighes de còpia de seguresa, in automàticu is còdighes betzos non sunt prus vàlidos.",
"{name} backup codes" : "{name} còdighes de còpia de seguresa",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Imprea unu de is còdighes de còpia de seguresa chi as sarvadu cando cunfiguras s'autenticatzione a duos fatores.",
- "Submit" : "Imbia",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Custos sunt is còdighes de còpia de seguresa tuos. Sarva·ddos e/o imprenta·ddos ca non ddos as a pòdere bìdere àteras bortas"
+ "Submit" : "Imbia"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/sk.js b/apps/twofactor_backupcodes/l10n/sk.js
index 5fad35daeba..d5d51c5b935 100644
--- a/apps/twofactor_backupcodes/l10n/sk.js
+++ b/apps/twofactor_backupcodes/l10n/sk.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Ak vytvoríte nové záložné kódy, staré sa automaticky zneplatnia.",
"{name} backup codes" : "{name} záložné kódy",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Pri nastavovaní dvojfaktorového overovania totožnosti použite jeden zo záložných kódov, ktoré ste uložili.",
- "Submit" : "Odoslať",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Tu sú vaše záložné kódy. Uložte si ich prosím alebo vytlačte, pretože ich nebude možné neskôr znovu zobraziť."
+ "Submit" : "Odoslať"
},
"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/twofactor_backupcodes/l10n/sk.json b/apps/twofactor_backupcodes/l10n/sk.json
index d49d55f0c4d..cc32c1f9721 100644
--- a/apps/twofactor_backupcodes/l10n/sk.json
+++ b/apps/twofactor_backupcodes/l10n/sk.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Ak vytvoríte nové záložné kódy, staré sa automaticky zneplatnia.",
"{name} backup codes" : "{name} záložné kódy",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Pri nastavovaní dvojfaktorového overovania totožnosti použite jeden zo záložných kódov, ktoré ste uložili.",
- "Submit" : "Odoslať",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Tu sú vaše záložné kódy. Uložte si ich prosím alebo vytlačte, pretože ich nebude možné neskôr znovu zobraziť."
+ "Submit" : "Odoslať"
},"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/twofactor_backupcodes/l10n/sl.js b/apps/twofactor_backupcodes/l10n/sl.js
index 79b1bdd5125..1d0310064a7 100644
--- a/apps/twofactor_backupcodes/l10n/sl.js
+++ b/apps/twofactor_backupcodes/l10n/sl.js
@@ -17,7 +17,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Z osvežitvijo varnostnih kod bo preklicana veljavnost starih.",
"{name} backup codes" : "Varnostne kode {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Uporabite eno izmed varnostnih kod, ki ste jo shranili pri nastavljanju dvostopenjske overitve",
- "Submit" : "Pošlji",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Varnostne kode je priporočljivo shraniti oziroma natisniti, saj jih v tej obliki prebrati ne bo več mogoče."
+ "Submit" : "Pošlji"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/twofactor_backupcodes/l10n/sl.json b/apps/twofactor_backupcodes/l10n/sl.json
index 9980c72caec..eea353bedc7 100644
--- a/apps/twofactor_backupcodes/l10n/sl.json
+++ b/apps/twofactor_backupcodes/l10n/sl.json
@@ -15,7 +15,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Z osvežitvijo varnostnih kod bo preklicana veljavnost starih.",
"{name} backup codes" : "Varnostne kode {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Uporabite eno izmed varnostnih kod, ki ste jo shranili pri nastavljanju dvostopenjske overitve",
- "Submit" : "Pošlji",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Varnostne kode je priporočljivo shraniti oziroma natisniti, saj jih v tej obliki prebrati ne bo več mogoče."
+ "Submit" : "Pošlji"
},"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/twofactor_backupcodes/l10n/sq.js b/apps/twofactor_backupcodes/l10n/sq.js
index 8182cdcdb32..74167ba33e4 100644
--- a/apps/twofactor_backupcodes/l10n/sq.js
+++ b/apps/twofactor_backupcodes/l10n/sq.js
@@ -12,7 +12,6 @@ OC.L10N.register(
"Print backup codes" : "Printo kodet rezervë ",
"Regenerate backup codes" : "Gjenero kodet e kopjuara",
"If you regenerate backup codes, you automatically invalidate old codes." : "Nëse gjeneroni kode rezervë, automaktikisht ju çaktivizoni kodet e vjetra.",
- "Submit" : "Dërgo",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Këto janë kodet tuaja rezervë. Ju lutemi ruajini dhe/ose printojini ato pasi nuk do të jeni në gjendje që ti lexoni më vonë"
+ "Submit" : "Dërgo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/sq.json b/apps/twofactor_backupcodes/l10n/sq.json
index 08588e118c5..9448cacbdc4 100644
--- a/apps/twofactor_backupcodes/l10n/sq.json
+++ b/apps/twofactor_backupcodes/l10n/sq.json
@@ -10,7 +10,6 @@
"Print backup codes" : "Printo kodet rezervë ",
"Regenerate backup codes" : "Gjenero kodet e kopjuara",
"If you regenerate backup codes, you automatically invalidate old codes." : "Nëse gjeneroni kode rezervë, automaktikisht ju çaktivizoni kodet e vjetra.",
- "Submit" : "Dërgo",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Këto janë kodet tuaja rezervë. Ju lutemi ruajini dhe/ose printojini ato pasi nuk do të jeni në gjendje që ti lexoni më vonë"
+ "Submit" : "Dërgo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/sr.js b/apps/twofactor_backupcodes/l10n/sr.js
index 3c00877d861..58ba0cfca8d 100644
--- a/apps/twofactor_backupcodes/l10n/sr.js
+++ b/apps/twofactor_backupcodes/l10n/sr.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Ако поново генеришете резервне кодове, стари аутоматски престају да важе.",
"{name} backup codes" : "{name} резервни кодови",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Искористите један од резервних кодова које сте сачували када се подешавали двофакторску проверу идентитета.",
- "Submit" : "Пошаљи",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ово су Ваши резервни кодови. Сачувајте их и/или их одштампајте пошто више нећете моћи да их прочитате."
+ "Submit" : "Пошаљи"
},
"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/twofactor_backupcodes/l10n/sr.json b/apps/twofactor_backupcodes/l10n/sr.json
index 1bc710f775e..0a5be0547be 100644
--- a/apps/twofactor_backupcodes/l10n/sr.json
+++ b/apps/twofactor_backupcodes/l10n/sr.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Ако поново генеришете резервне кодове, стари аутоматски престају да важе.",
"{name} backup codes" : "{name} резервни кодови",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Искористите један од резервних кодова које сте сачували када се подешавали двофакторску проверу идентитета.",
- "Submit" : "Пошаљи",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ово су Ваши резервни кодови. Сачувајте их и/или их одштампајте пошто више нећете моћи да их прочитате."
+ "Submit" : "Пошаљи"
},"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/twofactor_backupcodes/l10n/sv.js b/apps/twofactor_backupcodes/l10n/sv.js
index f500d4243f6..4ac01e1d46a 100644
--- a/apps/twofactor_backupcodes/l10n/sv.js
+++ b/apps/twofactor_backupcodes/l10n/sv.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Om du skapar nya återställningsnycklar så kommer de gamla automatiskt att sluta fungera.",
"{name} backup codes" : "{name} återställningsnycklar",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Använd en av återställningsnycklarna du sparade när du konfigurerar tvåfaktorsautentisering.",
- "Submit" : "Skicka",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Detta är dina återställningsnycklar. Vänligen spara och/eller skriv ut dem eftersom du inte kommer kunna se dessa nycklar igen."
+ "Submit" : "Skicka"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/sv.json b/apps/twofactor_backupcodes/l10n/sv.json
index 435a5405a04..f579d7633aa 100644
--- a/apps/twofactor_backupcodes/l10n/sv.json
+++ b/apps/twofactor_backupcodes/l10n/sv.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Om du skapar nya återställningsnycklar så kommer de gamla automatiskt att sluta fungera.",
"{name} backup codes" : "{name} återställningsnycklar",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Använd en av återställningsnycklarna du sparade när du konfigurerar tvåfaktorsautentisering.",
- "Submit" : "Skicka",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Detta är dina återställningsnycklar. Vänligen spara och/eller skriv ut dem eftersom du inte kommer kunna se dessa nycklar igen."
+ "Submit" : "Skicka"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/tr.js b/apps/twofactor_backupcodes/l10n/tr.js
index 35e4a937897..5d2bb802e55 100644
--- a/apps/twofactor_backupcodes/l10n/tr.js
+++ b/apps/twofactor_backupcodes/l10n/tr.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Yedek kodlarını yeniden oluşturursanız, eski kodlar geçersiz olur.",
"{name} backup codes" : "{name} yedek kodları",
"Use one of the backup codes you saved when setting up two-factor authentication." : "İki adımlı doğrulamayı ayarlarken yedek kodlarından birini kullanın.",
- "Submit" : "Gönder",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Yedek kodlarınızı burada görebilirsiniz. Kodları daha sonra göremeyeceğiniz için bu kodları kaydedin ya da yazdırın"
+ "Submit" : "Gönder"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/twofactor_backupcodes/l10n/tr.json b/apps/twofactor_backupcodes/l10n/tr.json
index 560423ac3a7..2ad03bb0a87 100644
--- a/apps/twofactor_backupcodes/l10n/tr.json
+++ b/apps/twofactor_backupcodes/l10n/tr.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Yedek kodlarını yeniden oluşturursanız, eski kodlar geçersiz olur.",
"{name} backup codes" : "{name} yedek kodları",
"Use one of the backup codes you saved when setting up two-factor authentication." : "İki adımlı doğrulamayı ayarlarken yedek kodlarından birini kullanın.",
- "Submit" : "Gönder",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Yedek kodlarınızı burada görebilirsiniz. Kodları daha sonra göremeyeceğiniz için bu kodları kaydedin ya da yazdırın"
+ "Submit" : "Gönder"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/ug.js b/apps/twofactor_backupcodes/l10n/ug.js
index bfef7a44f69..351a95adf06 100644
--- a/apps/twofactor_backupcodes/l10n/ug.js
+++ b/apps/twofactor_backupcodes/l10n/ug.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "زاپاسلاش كودىنى ئەسلىگە كەلتۈرسىڭىز ، كونا كودلارنى ئاپتوماتىك ئىناۋەتسىز قىلىسىز.",
"{name} backup codes" : "{name} زاپاسلاش كودى",
"Use one of the backup codes you saved when setting up two-factor authentication." : "ئىككى ئامىللىق دەلىللەشنى تەڭشىگەندە ساقلىغان زاپاسلاش كودىدىن بىرنى ئىشلىتىڭ.",
- "Submit" : "يوللاڭ",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "بۇلار سىزنىڭ زاپاسلاش كودىڭىز. كېيىن كودلارنى قايتا ئوقۇيالمىغاچقا ساقلىۋېلىڭ ۋە ياكى بېسىڭ"
+ "Submit" : "يوللاڭ"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/ug.json b/apps/twofactor_backupcodes/l10n/ug.json
index 96c99aff1d9..be886f61abf 100644
--- a/apps/twofactor_backupcodes/l10n/ug.json
+++ b/apps/twofactor_backupcodes/l10n/ug.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "زاپاسلاش كودىنى ئەسلىگە كەلتۈرسىڭىز ، كونا كودلارنى ئاپتوماتىك ئىناۋەتسىز قىلىسىز.",
"{name} backup codes" : "{name} زاپاسلاش كودى",
"Use one of the backup codes you saved when setting up two-factor authentication." : "ئىككى ئامىللىق دەلىللەشنى تەڭشىگەندە ساقلىغان زاپاسلاش كودىدىن بىرنى ئىشلىتىڭ.",
- "Submit" : "يوللاڭ",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "بۇلار سىزنىڭ زاپاسلاش كودىڭىز. كېيىن كودلارنى قايتا ئوقۇيالمىغاچقا ساقلىۋېلىڭ ۋە ياكى بېسىڭ"
+ "Submit" : "يوللاڭ"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/uk.js b/apps/twofactor_backupcodes/l10n/uk.js
index fb8e6581462..6c4f1d63169 100644
--- a/apps/twofactor_backupcodes/l10n/uk.js
+++ b/apps/twofactor_backupcodes/l10n/uk.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Після повторного створення резервних кодів попередні автоматично стануть недійсними",
"{name} backup codes" : "Резервні коди {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Скористайтеся одним з резервних кодів, які ви зберегли під час встановлення двофакторної авторизації.",
- "Submit" : "Гаразд",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Це ваші резервні коди. Будь ласка, збережіть їх, у разі потреби роздрукуйте, оскільки подалі вони ніде не будуть показуватися."
+ "Submit" : "Гаразд"
},
"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/twofactor_backupcodes/l10n/uk.json b/apps/twofactor_backupcodes/l10n/uk.json
index 9f2165f9fd9..0a05102a3b4 100644
--- a/apps/twofactor_backupcodes/l10n/uk.json
+++ b/apps/twofactor_backupcodes/l10n/uk.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Після повторного створення резервних кодів попередні автоматично стануть недійсними",
"{name} backup codes" : "Резервні коди {name}",
"Use one of the backup codes you saved when setting up two-factor authentication." : "Скористайтеся одним з резервних кодів, які ви зберегли під час встановлення двофакторної авторизації.",
- "Submit" : "Гаразд",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Це ваші резервні коди. Будь ласка, збережіть їх, у разі потреби роздрукуйте, оскільки подалі вони ніде не будуть показуватися."
+ "Submit" : "Гаразд"
},"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/twofactor_backupcodes/l10n/zh_CN.js b/apps/twofactor_backupcodes/l10n/zh_CN.js
index 651ffff2dc4..34a772fd64c 100644
--- a/apps/twofactor_backupcodes/l10n/zh_CN.js
+++ b/apps/twofactor_backupcodes/l10n/zh_CN.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "如果您重新生成了备用码,旧的代码将自动失效。",
"{name} backup codes" : "{name} 备用码",
"Use one of the backup codes you saved when setting up two-factor authentication." : "在设置两步验证时使用您保存的其中一个备用码",
- "Submit" : "提交",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "下列是您的备用码。备用码无法重复查看,请将其保存或打印存储。"
+ "Submit" : "提交"
},
"nplurals=1; plural=0;");
diff --git a/apps/twofactor_backupcodes/l10n/zh_CN.json b/apps/twofactor_backupcodes/l10n/zh_CN.json
index a8b1594d7ad..d08d943029e 100644
--- a/apps/twofactor_backupcodes/l10n/zh_CN.json
+++ b/apps/twofactor_backupcodes/l10n/zh_CN.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "如果您重新生成了备用码,旧的代码将自动失效。",
"{name} backup codes" : "{name} 备用码",
"Use one of the backup codes you saved when setting up two-factor authentication." : "在设置两步验证时使用您保存的其中一个备用码",
- "Submit" : "提交",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "下列是您的备用码。备用码无法重复查看,请将其保存或打印存储。"
+ "Submit" : "提交"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/zh_HK.js b/apps/twofactor_backupcodes/l10n/zh_HK.js
index 8b40679a635..c9de2b58d3b 100644
--- a/apps/twofactor_backupcodes/l10n/zh_HK.js
+++ b/apps/twofactor_backupcodes/l10n/zh_HK.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "若您重新產生備用碼,原來舊的備用碼將自動失效。",
"{name} backup codes" : "{name} 備用驗證碼",
"Use one of the backup codes you saved when setting up two-factor authentication." : "設定啟用雙重認證時,可輸入其中一個您已儲存的備用碼。",
- "Submit" : "遞交",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "以下是您的備用碼,由於備用碼不會再次顯示,請儲存 並/或 列印。"
+ "Submit" : "遞交"
},
"nplurals=1; plural=0;");
diff --git a/apps/twofactor_backupcodes/l10n/zh_HK.json b/apps/twofactor_backupcodes/l10n/zh_HK.json
index 2f697373502..416a88eed9e 100644
--- a/apps/twofactor_backupcodes/l10n/zh_HK.json
+++ b/apps/twofactor_backupcodes/l10n/zh_HK.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "若您重新產生備用碼,原來舊的備用碼將自動失效。",
"{name} backup codes" : "{name} 備用驗證碼",
"Use one of the backup codes you saved when setting up two-factor authentication." : "設定啟用雙重認證時,可輸入其中一個您已儲存的備用碼。",
- "Submit" : "遞交",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "以下是您的備用碼,由於備用碼不會再次顯示,請儲存 並/或 列印。"
+ "Submit" : "遞交"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/zh_TW.js b/apps/twofactor_backupcodes/l10n/zh_TW.js
index ea8447334cf..2c2ae1710a6 100644
--- a/apps/twofactor_backupcodes/l10n/zh_TW.js
+++ b/apps/twofactor_backupcodes/l10n/zh_TW.js
@@ -18,7 +18,6 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "若您重新產生備用碼,原來舊的備用碼將自動失效。",
"{name} backup codes" : "{name} 備用碼",
"Use one of the backup codes you saved when setting up two-factor authentication." : "設定啟用雙因子認證時,可輸入其中一組您已儲存的備用碼。",
- "Submit" : "提交",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "以下是您的備用碼。由於備用碼不會再次顯示,請儲存或列印出來"
+ "Submit" : "提交"
},
"nplurals=1; plural=0;");
diff --git a/apps/twofactor_backupcodes/l10n/zh_TW.json b/apps/twofactor_backupcodes/l10n/zh_TW.json
index 21fc37dd665..23d922a1cca 100644
--- a/apps/twofactor_backupcodes/l10n/zh_TW.json
+++ b/apps/twofactor_backupcodes/l10n/zh_TW.json
@@ -16,7 +16,6 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "若您重新產生備用碼,原來舊的備用碼將自動失效。",
"{name} backup codes" : "{name} 備用碼",
"Use one of the backup codes you saved when setting up two-factor authentication." : "設定啟用雙因子認證時,可輸入其中一組您已儲存的備用碼。",
- "Submit" : "提交",
- "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "以下是您的備用碼。由於備用碼不會再次顯示,請儲存或列印出來"
+ "Submit" : "提交"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/tests/Db/BackupCodeMapperTest.php b/apps/twofactor_backupcodes/tests/Db/BackupCodeMapperTest.php
index 6b668f53119..19cab51969b 100644
--- a/apps/twofactor_backupcodes/tests/Db/BackupCodeMapperTest.php
+++ b/apps/twofactor_backupcodes/tests/Db/BackupCodeMapperTest.php
@@ -19,15 +19,9 @@ use Test\TestCase;
* @group DB
*/
class BackupCodeMapperTest extends TestCase {
-
- /** @var IDBConnection */
- private $db;
-
- /** @var BackupCodeMapper */
- private $mapper;
-
- /** @var string */
- private $testUID = 'test123456';
+ private IDBConnection $db;
+ private BackupCodeMapper $mapper;
+ private string $testUID = 'test123456';
private function resetDB() {
$qb = $this->db->getQueryBuilder();
diff --git a/apps/twofactor_backupcodes/tests/Service/BackupCodeStorageTest.php b/apps/twofactor_backupcodes/tests/Service/BackupCodeStorageTest.php
index b556828b924..38d3bd55d11 100644
--- a/apps/twofactor_backupcodes/tests/Service/BackupCodeStorageTest.php
+++ b/apps/twofactor_backupcodes/tests/Service/BackupCodeStorageTest.php
@@ -13,21 +13,16 @@ use OCP\IUser;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
/**
* @group DB
*/
class BackupCodeStorageTest extends TestCase {
-
- /** @var BackupCodeStorage */
- private $storage;
-
- /** @var string */
- private $testUID = 'test123456789';
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $notificationManager;
+ private IManager&MockObject $notificationManager;
+ private string $testUID = 'test123456789';
+ private BackupCodeStorage $storage;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php b/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php
index e41db8b0a32..a3c6d15902a 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php
@@ -15,21 +15,14 @@ use OCP\Activity\IManager;
use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\L10N\IFactory;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ProviderTest extends TestCase {
-
- /** @var IFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $activityManager;
-
- /** @var Provider */
- private $provider;
+ private IFactory&MockObject $l10n;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IManager&MockObject $activityManager;
+ private Provider $provider;
protected function setUp(): void {
parent::setUp();
@@ -52,7 +45,7 @@ class ProviderTest extends TestCase {
$this->provider->parse($lang, $event);
}
- public function subjectData() {
+ public static function subjectData(): array {
return [
['codes_generated'],
];
@@ -61,7 +54,7 @@ class ProviderTest extends TestCase {
/**
* @dataProvider subjectData
*/
- public function testParse($subject): void {
+ public function testParse(string $subject): void {
$lang = 'ru';
$event = $this->createMock(IEvent::class);
$l = $this->createMock(IL10N::class);
diff --git a/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/CheckBackupCodeTest.php b/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/CheckBackupCodeTest.php
index 5b8281e278e..87bc65e4309 100644
--- a/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/CheckBackupCodeTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/CheckBackupCodeTest.php
@@ -20,24 +20,12 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CheckBackupCodeTest extends TestCase {
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var IJobList|MockObject */
- private $jobList;
-
- /** @var IRegistry|MockObject */
- private $registry;
-
- /** @var Manager|MockObject */
- private $manager;
-
- /** @var IUser|MockObject */
- private $user;
-
- /** @var CheckBackupCodes */
- private $checkBackupCodes;
+ private IUserManager&MockObject $userManager;
+ private IJobList&MockObject $jobList;
+ private IRegistry&MockObject $registry;
+ private Manager&MockObject $manager;
+ private IUser&MockObject $user;
+ private CheckBackupCodes $checkBackupCodes;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php b/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php
index 31b7d514246..16a0e8012f7 100644
--- a/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/BackgroundJob/RememberBackupCodesJobTest.php
@@ -17,27 +17,16 @@ use OCP\IUserManager;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RememberBackupCodesJobTest extends TestCase {
-
- /** @var IRegistry|\PHPUnit\Framework\MockObject\MockObject */
- private $registry;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $time;
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $notificationManager;
-
- /** @var IJobList|\PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var RememberBackupCodesJob */
- private $job;
+ private IRegistry&MockObject $registry;
+ private IUserManager&MockObject $userManager;
+ private ITimeFactory&MockObject $time;
+ private IManager&MockObject $notificationManager;
+ private IJobList&MockObject $jobList;
+ private RememberBackupCodesJob $job;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/twofactor_backupcodes/tests/Unit/Controller/SettingsControllerTest.php b/apps/twofactor_backupcodes/tests/Unit/Controller/SettingsControllerTest.php
index 85b23e88fee..02c42b65148 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Controller/SettingsControllerTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Controller/SettingsControllerTest.php
@@ -14,36 +14,27 @@ use OCP\AppFramework\Http\JSONResponse;
use OCP\IRequest;
use OCP\IUser;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SettingsControllerTest extends TestCase {
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
-
- /** @var BackupCodeStorage|\PHPUnit\Framework\MockObject\MockObject */
- private $storage;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
-
- /** @var SettingsController */
- private $controller;
+ private IRequest&MockObject $request;
+ private BackupCodeStorage&MockObject $storage;
+ private IUserSession&MockObject $userSession;
+ private SettingsController $controller;
protected function setUp(): void {
parent::setUp();
- $this->request = $this->getMockBuilder(IRequest::class)->getMock();
- $this->storage = $this->getMockBuilder(BackupCodeStorage::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->userSession = $this->getMockBuilder(IUserSession::class)->getMock();
+ $this->request = $this->createMock(IRequest::class);
+ $this->storage = $this->createMock(BackupCodeStorage::class);
+ $this->userSession = $this->createMock(IUserSession::class);
$this->controller = new SettingsController('twofactor_backupcodes', $this->request, $this->storage, $this->userSession);
}
public function testCreateCodes(): void {
- $user = $this->getMockBuilder(IUser::class)->getMock();
+ $user = $this->createMock(IUser::class);
$codes = ['a', 'b'];
$this->userSession->expects($this->once())
diff --git a/apps/twofactor_backupcodes/tests/Unit/Listener/ActivityPublisherTest.php b/apps/twofactor_backupcodes/tests/Unit/Listener/ActivityPublisherTest.php
index 72ca91ed8eb..bd944dc2396 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Listener/ActivityPublisherTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Listener/ActivityPublisherTest.php
@@ -19,14 +19,9 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class ActivityPublisherTest extends TestCase {
- /** @var IManager|MockObject */
- private $activityManager;
-
- /** @var LoggerInterface */
- private $logger;
-
- /** @var ActivityPublisher */
- private $listener;
+ private IManager&MockObject $activityManager;
+ private LoggerInterface&MockObject $logger;
+ private ActivityPublisher $listener;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php b/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php
index bbefbfbece1..fc80344ac57 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Listener/ClearNotificationsTest.php
@@ -15,15 +15,12 @@ use OCP\IUser;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ClearNotificationsTest extends TestCase {
-
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $notificationManager;
-
- /** @var ClearNotifications */
- private $listener;
+ private IManager&MockObject $notificationManager;
+ private ClearNotifications $listener;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/twofactor_backupcodes/tests/Unit/Listener/ProviderDisabledTest.php b/apps/twofactor_backupcodes/tests/Unit/Listener/ProviderDisabledTest.php
index 7f7b5dc3011..ea4f530cab4 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Listener/ProviderDisabledTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Listener/ProviderDisabledTest.php
@@ -15,11 +15,12 @@ use OCP\Authentication\TwoFactorAuth\TwoFactorProviderForUserUnregistered;
use OCP\BackgroundJob\IJobList;
use OCP\EventDispatcher\Event;
use OCP\IUser;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ProviderDisabledTest extends TestCase {
- private IRegistry $registy;
- private IJobList $jobList;
+ private IRegistry&MockObject $registy;
+ private IJobList&MockObject $jobList;
private ProviderDisabled $listener;
protected function setUp(): void {
diff --git a/apps/twofactor_backupcodes/tests/Unit/Listener/ProviderEnabledTest.php b/apps/twofactor_backupcodes/tests/Unit/Listener/ProviderEnabledTest.php
index 145944fccca..50aac6139c0 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Listener/ProviderEnabledTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Listener/ProviderEnabledTest.php
@@ -15,11 +15,12 @@ use OCP\Authentication\TwoFactorAuth\TwoFactorProviderForUserRegistered;
use OCP\BackgroundJob\IJobList;
use OCP\EventDispatcher\Event;
use OCP\IUser;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ProviderEnabledTest extends TestCase {
- private IRegistry $registy;
- private IJobList $jobList;
+ private IRegistry&MockObject $registy;
+ private IJobList&MockObject $jobList;
private ProviderEnabled $listener;
protected function setUp(): void {
diff --git a/apps/twofactor_backupcodes/tests/Unit/Listener/RegistryUpdaterTest.php b/apps/twofactor_backupcodes/tests/Unit/Listener/RegistryUpdaterTest.php
index 4f724f888d7..86d890f0d5e 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Listener/RegistryUpdaterTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Listener/RegistryUpdaterTest.php
@@ -14,18 +14,13 @@ use OCA\TwoFactorBackupCodes\Provider\BackupCodesProvider;
use OCP\Authentication\TwoFactorAuth\IRegistry;
use OCP\EventDispatcher\Event;
use OCP\IUser;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RegistryUpdaterTest extends TestCase {
-
- /** @var IRegistry */
- private $registry;
-
- /** @var BackupCodesProvider */
- private $provider;
-
- /** @var RegistryUpdater */
- private $listener;
+ private IRegistry&MockObject $registry;
+ private BackupCodesProvider&MockObject $provider;
+ private RegistryUpdater $listener;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/twofactor_backupcodes/tests/Unit/Migration/CheckBackupCodeTest.php b/apps/twofactor_backupcodes/tests/Unit/Migration/CheckBackupCodeTest.php
index bb959ff08b3..c68ab185116 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Migration/CheckBackupCodeTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Migration/CheckBackupCodeTest.php
@@ -11,15 +11,12 @@ namespace OCA\TwoFactorBackupCodes\Tests\Unit\Migration;
use OCA\TwoFactorBackupCodes\Migration\CheckBackupCodes;
use OCP\BackgroundJob\IJobList;
use OCP\Migration\IOutput;
+use PHPunit\Framework\MockObject\MockObject;
use Test\TestCase;
class CheckBackupCodeTest extends TestCase {
-
- /** @var IJobList|\PHPunit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var CheckBackupCodes */
- private $checkBackupsCodes;
+ private IJobList&MockObject $jobList;
+ private CheckBackupCodes $checkBackupsCodes;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/twofactor_backupcodes/tests/Unit/Notification/NotifierTest.php b/apps/twofactor_backupcodes/tests/Unit/Notification/NotifierTest.php
index cbda9dd868b..b091d57dbd2 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Notification/NotifierTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Notification/NotifierTest.php
@@ -17,15 +17,10 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class NotifierTest extends TestCase {
- /** @var Notifier */
- protected $notifier;
-
- /** @var IFactory|MockObject */
- protected $factory;
- /** @var IURLGenerator|MockObject */
- protected $url;
- /** @var IL10N|MockObject */
- protected $l;
+ protected IFactory&MockObject $factory;
+ protected IURLGenerator&MockObject $url;
+ protected IL10N&MockObject $l;
+ protected Notifier $notifier;
protected function setUp(): void {
parent::setUp();
@@ -52,7 +47,7 @@ class NotifierTest extends TestCase {
public function testPrepareWrongApp(): void {
$this->expectException(\InvalidArgumentException::class);
- /** @var INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
+ /** @var INotification|MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
->method('getApp')
@@ -67,7 +62,7 @@ class NotifierTest extends TestCase {
public function testPrepareWrongSubject(): void {
$this->expectException(\InvalidArgumentException::class);
- /** @var INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
+ /** @var INotification|MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
->method('getApp')
@@ -80,7 +75,7 @@ class NotifierTest extends TestCase {
}
public function testPrepare(): void {
- /** @var INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
+ /** @var INotification&MockObject $notification */
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
diff --git a/apps/twofactor_backupcodes/tests/Unit/Service/BackupCodeStorageTest.php b/apps/twofactor_backupcodes/tests/Unit/Service/BackupCodeStorageTest.php
index 67124a7a928..069e50b71fd 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Service/BackupCodeStorageTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Service/BackupCodeStorageTest.php
@@ -16,24 +16,15 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\IUser;
use OCP\Security\IHasher;
use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class BackupCodeStorageTest extends TestCase {
-
- /** @var BackupCodeMapper|\PHPUnit\Framework\MockObject\MockObject */
- private $mapper;
-
- /** @var ISecureRandom|\PHPUnit\Framework\MockObject\MockObject */
- private $random;
-
- /** @var IHasher|\PHPUnit\Framework\MockObject\MockObject */
- private $hasher;
-
- /** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
- private $eventDispatcher;
-
- /** @var BackupCodeStorage */
- private $storage;
+ private BackupCodeMapper&MockObject $mapper;
+ private ISecureRandom&MockObject $random;
+ private IHasher&MockObject $hasher;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private BackupCodeStorage $storage;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/updatenotification/composer/autoload.php b/apps/updatenotification/composer/autoload.php
index 36afdad067f..a1e9eceb11c 100644
--- a/apps/updatenotification/composer/autoload.php
+++ b/apps/updatenotification/composer/autoload.php
@@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
- trigger_error(
- $err,
- E_USER_ERROR
- );
+ throw new RuntimeException($err);
}
require_once __DIR__ . '/composer/autoload_real.php';
diff --git a/apps/updatenotification/composer/composer/autoload_classmap.php b/apps/updatenotification/composer/composer/autoload_classmap.php
index 4aa401f661e..a03003ef3b2 100644
--- a/apps/updatenotification/composer/composer/autoload_classmap.php
+++ b/apps/updatenotification/composer/composer/autoload_classmap.php
@@ -18,7 +18,6 @@ return array(
'OCA\\UpdateNotification\\Listener\\AppUpdateEventListener' => $baseDir . '/../lib/Listener/AppUpdateEventListener.php',
'OCA\\UpdateNotification\\Listener\\BeforeTemplateRenderedEventListener' => $baseDir . '/../lib/Listener/BeforeTemplateRenderedEventListener.php',
'OCA\\UpdateNotification\\Manager' => $baseDir . '/../lib/Manager.php',
- 'OCA\\UpdateNotification\\Migration\\Version011901Date20240305120000' => $baseDir . '/../lib/Migration/Version011901Date20240305120000.php',
'OCA\\UpdateNotification\\Notification\\AppUpdateNotifier' => $baseDir . '/../lib/Notification/AppUpdateNotifier.php',
'OCA\\UpdateNotification\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php',
'OCA\\UpdateNotification\\ResponseDefinitions' => $baseDir . '/../lib/ResponseDefinitions.php',
diff --git a/apps/updatenotification/composer/composer/autoload_static.php b/apps/updatenotification/composer/composer/autoload_static.php
index 9e1fdd09def..57eedf5e075 100644
--- a/apps/updatenotification/composer/composer/autoload_static.php
+++ b/apps/updatenotification/composer/composer/autoload_static.php
@@ -33,7 +33,6 @@ class ComposerStaticInitUpdateNotification
'OCA\\UpdateNotification\\Listener\\AppUpdateEventListener' => __DIR__ . '/..' . '/../lib/Listener/AppUpdateEventListener.php',
'OCA\\UpdateNotification\\Listener\\BeforeTemplateRenderedEventListener' => __DIR__ . '/..' . '/../lib/Listener/BeforeTemplateRenderedEventListener.php',
'OCA\\UpdateNotification\\Manager' => __DIR__ . '/..' . '/../lib/Manager.php',
- 'OCA\\UpdateNotification\\Migration\\Version011901Date20240305120000' => __DIR__ . '/..' . '/../lib/Migration/Version011901Date20240305120000.php',
'OCA\\UpdateNotification\\Notification\\AppUpdateNotifier' => __DIR__ . '/..' . '/../lib/Notification/AppUpdateNotifier.php',
'OCA\\UpdateNotification\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php',
'OCA\\UpdateNotification\\ResponseDefinitions' => __DIR__ . '/..' . '/../lib/ResponseDefinitions.php',
diff --git a/apps/updatenotification/l10n/af.js b/apps/updatenotification/l10n/af.js
deleted file mode 100644
index 3bd4b3c5570..00000000000
--- a/apps/updatenotification/l10n/af.js
+++ /dev/null
@@ -1,25 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} is beskikbaar. Kry meer inligting oor hoe om by te werk.",
- "Update notifications" : "Werk kennisgewings by",
- "Channel updated" : "Kanaal bygewerk",
- "The update server could not be reached since %d days to check for new updates." : "Die bywerkingsbediener kan al vir %d dae nie bereik word om nuwe bywerkings te soek nie.",
- "Please check the Nextcloud and server log files for errors." : "Gaan die Nextcloud- en bedienerloglêers na vir foute.",
- "Update to %1$s is available." : "Bywerking vir %1$s is beskikbaar.",
- "Update for %1$s to version %2$s is available." : "Bywerking vir %1$s na weergawe %2$s is beskikbaar.",
- "Update for {app} to version %s is available." : "Bywerking vir {app} na weergawe %s is beskikbaar.",
- "Open updater" : "Open bywerker",
- "Your version is up to date." : "U weergawe is op datum.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "U kan altyd na ’n nuwer weergawe / eksperimentele kanaal bywerk. U kan egter nooit na ’n stabieler kanaal afgradeer nie.",
- "Notify members of the following groups about available updates:" : "Stel lede van die volgende groepe in kennis van beskikbare bywerkings:",
- "Only notification for app updates are available." : "Slegs kennisgewing vir toepbywerking is beskikbaar.",
- "The selected update channel does not support updates of the server." : "Die gekose bywerkkanaal ondersteun nie bedienerbywerkings nie.",
- "Could not start updater, please try the manual update" : "Bywerker kon nie begin nie, probeer handmatig bywerk",
- "A new version is available: %s" : "’n nuwe weergawe is beskikbaar: %s",
- "Download now" : "Laai nou af",
- "Checked on %s" : "Gekyk op %s",
- "Update channel:" : "Werk kanaal by:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Die gekose bywerkingskanaal maak toegewyde bedienerkennisgewings oorbodig."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/af.json b/apps/updatenotification/l10n/af.json
deleted file mode 100644
index cd927925168..00000000000
--- a/apps/updatenotification/l10n/af.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} is beskikbaar. Kry meer inligting oor hoe om by te werk.",
- "Update notifications" : "Werk kennisgewings by",
- "Channel updated" : "Kanaal bygewerk",
- "The update server could not be reached since %d days to check for new updates." : "Die bywerkingsbediener kan al vir %d dae nie bereik word om nuwe bywerkings te soek nie.",
- "Please check the Nextcloud and server log files for errors." : "Gaan die Nextcloud- en bedienerloglêers na vir foute.",
- "Update to %1$s is available." : "Bywerking vir %1$s is beskikbaar.",
- "Update for %1$s to version %2$s is available." : "Bywerking vir %1$s na weergawe %2$s is beskikbaar.",
- "Update for {app} to version %s is available." : "Bywerking vir {app} na weergawe %s is beskikbaar.",
- "Open updater" : "Open bywerker",
- "Your version is up to date." : "U weergawe is op datum.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "U kan altyd na ’n nuwer weergawe / eksperimentele kanaal bywerk. U kan egter nooit na ’n stabieler kanaal afgradeer nie.",
- "Notify members of the following groups about available updates:" : "Stel lede van die volgende groepe in kennis van beskikbare bywerkings:",
- "Only notification for app updates are available." : "Slegs kennisgewing vir toepbywerking is beskikbaar.",
- "The selected update channel does not support updates of the server." : "Die gekose bywerkkanaal ondersteun nie bedienerbywerkings nie.",
- "Could not start updater, please try the manual update" : "Bywerker kon nie begin nie, probeer handmatig bywerk",
- "A new version is available: %s" : "’n nuwe weergawe is beskikbaar: %s",
- "Download now" : "Laai nou af",
- "Checked on %s" : "Gekyk op %s",
- "Update channel:" : "Werk kanaal by:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Die gekose bywerkingskanaal maak toegewyde bedienerkennisgewings oorbodig."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/az.js b/apps/updatenotification/l10n/az.js
deleted file mode 100644
index 4e2a947c404..00000000000
--- a/apps/updatenotification/l10n/az.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Updater" : "Yeniləyici",
- "A new version is available: %s" : "Yeni versiya mövcuddur: %s"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/az.json b/apps/updatenotification/l10n/az.json
deleted file mode 100644
index 81ad8b46130..00000000000
--- a/apps/updatenotification/l10n/az.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Updater" : "Yeniləyici",
- "A new version is available: %s" : "Yeni versiya mövcuddur: %s"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/bn_BD.js b/apps/updatenotification/l10n/bn_BD.js
deleted file mode 100644
index f86c8f51d6d..00000000000
--- a/apps/updatenotification/l10n/bn_BD.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Updater" : "পরিবর্ধনকারী"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/bn_BD.json b/apps/updatenotification/l10n/bn_BD.json
deleted file mode 100644
index 09a72a17e2c..00000000000
--- a/apps/updatenotification/l10n/bn_BD.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Updater" : "পরিবর্ধনকারী"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/bs.js b/apps/updatenotification/l10n/bs.js
deleted file mode 100644
index 63d9986a300..00000000000
--- a/apps/updatenotification/l10n/bs.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Updater" : "Unapređivač",
- "A new version is available: %s" : "Dostupna je nova verzija: %s"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/updatenotification/l10n/bs.json b/apps/updatenotification/l10n/bs.json
deleted file mode 100644
index 6bf82bb0714..00000000000
--- a/apps/updatenotification/l10n/bs.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Updater" : "Unapređivač",
- "A new version is available: %s" : "Dostupna je nova verzija: %s"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/de.js b/apps/updatenotification/l10n/de.js
index 50ac9a9b277..cf9fcf00e7c 100644
--- a/apps/updatenotification/l10n/de.js
+++ b/apps/updatenotification/l10n/de.js
@@ -28,7 +28,7 @@ OC.L10N.register(
"Enterprise" : "Version für Unternehmen",
"For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
"Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die neueste Hauptversion aktualisiert.",
"Beta" : "Beta",
"A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
"Update" : "Aktualisieren",
@@ -49,7 +49,7 @@ OC.L10N.register(
"Changing the update channel 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." : "Das Ändern des Update-Kanals wirkt sich auch auf die Verwaltungsseite der Apps aus. So werden z.B. nach dem Wechsel auf den Beta-Kanal auf der App-Verwaltungsseite Beta-App-Updates angeboten.",
"Current update channel:" : "Aktueller Update-Kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ",
- "Notify members of the following groups about available updates:" : "Informiere die Mitglieder der folgenden Gruppen über verfügbare Updates:",
+ "Notify members of the following groups about available updates:" : "Die Mitglieder der folgenden Gruppen über verfügbare Updates informieren:",
"No groups" : "Keine Gruppen",
"Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Aktualisierungskanal macht dedizierte Benachrichtigungen für Server Aktualisierungen obsolet.",
diff --git a/apps/updatenotification/l10n/de.json b/apps/updatenotification/l10n/de.json
index c1f338b7ec3..a77fea41a3e 100644
--- a/apps/updatenotification/l10n/de.json
+++ b/apps/updatenotification/l10n/de.json
@@ -26,7 +26,7 @@
"Enterprise" : "Version für Unternehmen",
"For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
"Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die neueste Hauptversion aktualisiert.",
"Beta" : "Beta",
"A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
"Update" : "Aktualisieren",
@@ -47,7 +47,7 @@
"Changing the update channel 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." : "Das Ändern des Update-Kanals wirkt sich auch auf die Verwaltungsseite der Apps aus. So werden z.B. nach dem Wechsel auf den Beta-Kanal auf der App-Verwaltungsseite Beta-App-Updates angeboten.",
"Current update channel:" : "Aktueller Update-Kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ",
- "Notify members of the following groups about available updates:" : "Informiere die Mitglieder der folgenden Gruppen über verfügbare Updates:",
+ "Notify members of the following groups about available updates:" : "Die Mitglieder der folgenden Gruppen über verfügbare Updates informieren:",
"No groups" : "Keine Gruppen",
"Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Aktualisierungskanal macht dedizierte Benachrichtigungen für Server Aktualisierungen obsolet.",
diff --git a/apps/updatenotification/l10n/de_DE.js b/apps/updatenotification/l10n/de_DE.js
index 9f61cc05037..b824162664b 100644
--- a/apps/updatenotification/l10n/de_DE.js
+++ b/apps/updatenotification/l10n/de_DE.js
@@ -28,7 +28,7 @@ OC.L10N.register(
"Enterprise" : "Version für Unternehmen",
"For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
"Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die neueste Hauptversion aktualisiert.",
"Beta" : "Beta",
"A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion, die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
"Update" : "Aktualisierung",
@@ -49,7 +49,7 @@ OC.L10N.register(
"Changing the update channel 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." : "Das Ändern des Update-Kanals wirkt sich auch auf die Verwaltungsseite der Apps aus. So werden z.B. nach dem Wechsel auf den Beta-Kanal auf der App-Verwaltungsseite Beta-App-Updates angeboten.",
"Current update channel:" : "Aktueller Update-Kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ",
- "Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:",
+ "Notify members of the following groups about available updates:" : "Die Mitglieder der folgenden Gruppen über verfügbare Updates informieren:",
"No groups" : "Keine Gruppen",
"Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Update-Kanal macht dedizierte Benachrichtigungen für Serveraktualisierungen obsolet.",
diff --git a/apps/updatenotification/l10n/de_DE.json b/apps/updatenotification/l10n/de_DE.json
index fd9a4d0c322..de59ee49b35 100644
--- a/apps/updatenotification/l10n/de_DE.json
+++ b/apps/updatenotification/l10n/de_DE.json
@@ -26,7 +26,7 @@
"Enterprise" : "Version für Unternehmen",
"For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
"Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die neueste Hauptversion aktualisiert.",
"Beta" : "Beta",
"A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion, die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
"Update" : "Aktualisierung",
@@ -47,7 +47,7 @@
"Changing the update channel 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." : "Das Ändern des Update-Kanals wirkt sich auch auf die Verwaltungsseite der Apps aus. So werden z.B. nach dem Wechsel auf den Beta-Kanal auf der App-Verwaltungsseite Beta-App-Updates angeboten.",
"Current update channel:" : "Aktueller Update-Kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ",
- "Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:",
+ "Notify members of the following groups about available updates:" : "Die Mitglieder der folgenden Gruppen über verfügbare Updates informieren:",
"No groups" : "Keine Gruppen",
"Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Update-Kanal macht dedizierte Benachrichtigungen für Serveraktualisierungen obsolet.",
diff --git a/apps/updatenotification/l10n/es_419.js b/apps/updatenotification/l10n/es_419.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_419.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_419.json b/apps/updatenotification/l10n/es_419.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_419.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_CL.js b/apps/updatenotification/l10n/es_CL.js
deleted file mode 100644
index f09f9942fa9..00000000000
--- a/apps/updatenotification/l10n/es_CL.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es_CL.json b/apps/updatenotification/l10n/es_CL.json
deleted file mode 100644
index 3e2c0df5e36..00000000000
--- a/apps/updatenotification/l10n/es_CL.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_CO.js b/apps/updatenotification/l10n/es_CO.js
deleted file mode 100644
index f09f9942fa9..00000000000
--- a/apps/updatenotification/l10n/es_CO.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es_CO.json b/apps/updatenotification/l10n/es_CO.json
deleted file mode 100644
index 3e2c0df5e36..00000000000
--- a/apps/updatenotification/l10n/es_CO.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_CR.js b/apps/updatenotification/l10n/es_CR.js
deleted file mode 100644
index f09f9942fa9..00000000000
--- a/apps/updatenotification/l10n/es_CR.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es_CR.json b/apps/updatenotification/l10n/es_CR.json
deleted file mode 100644
index 3e2c0df5e36..00000000000
--- a/apps/updatenotification/l10n/es_CR.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_DO.js b/apps/updatenotification/l10n/es_DO.js
deleted file mode 100644
index f09f9942fa9..00000000000
--- a/apps/updatenotification/l10n/es_DO.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es_DO.json b/apps/updatenotification/l10n/es_DO.json
deleted file mode 100644
index 3e2c0df5e36..00000000000
--- a/apps/updatenotification/l10n/es_DO.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_GT.js b/apps/updatenotification/l10n/es_GT.js
deleted file mode 100644
index 8df5ff2384e..00000000000
--- a/apps/updatenotification/l10n/es_GT.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update channel:" : "Actualizar el canal:"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es_GT.json b/apps/updatenotification/l10n/es_GT.json
deleted file mode 100644
index 873d99c4031..00000000000
--- a/apps/updatenotification/l10n/es_GT.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update channel:" : "Actualizar el canal:"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_HN.js b/apps/updatenotification/l10n/es_HN.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_HN.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_HN.json b/apps/updatenotification/l10n/es_HN.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_HN.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_NI.js b/apps/updatenotification/l10n/es_NI.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_NI.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_NI.json b/apps/updatenotification/l10n/es_NI.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_NI.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_PA.js b/apps/updatenotification/l10n/es_PA.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_PA.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_PA.json b/apps/updatenotification/l10n/es_PA.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_PA.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_PE.js b/apps/updatenotification/l10n/es_PE.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_PE.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_PE.json b/apps/updatenotification/l10n/es_PE.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_PE.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_PR.js b/apps/updatenotification/l10n/es_PR.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_PR.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_PR.json b/apps/updatenotification/l10n/es_PR.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_PR.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_PY.js b/apps/updatenotification/l10n/es_PY.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_PY.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_PY.json b/apps/updatenotification/l10n/es_PY.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_PY.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_SV.js b/apps/updatenotification/l10n/es_SV.js
deleted file mode 100644
index f09f9942fa9..00000000000
--- a/apps/updatenotification/l10n/es_SV.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es_SV.json b/apps/updatenotification/l10n/es_SV.json
deleted file mode 100644
index 3e2c0df5e36..00000000000
--- a/apps/updatenotification/l10n/es_SV.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "Update" : "Actualizar",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible."
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_UY.js b/apps/updatenotification/l10n/es_UY.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_UY.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_UY.json b/apps/updatenotification/l10n/es_UY.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_UY.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/et_EE.js b/apps/updatenotification/l10n/et_EE.js
index 09ff9d145df..6c2ea50b26c 100644
--- a/apps/updatenotification/l10n/et_EE.js
+++ b/apps/updatenotification/l10n/et_EE.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Channel updated" : "Kanal värskendatud",
"Web updater is disabled" : "Veebiuuendaja on keelatud",
- "App updated" : "Rakendus uuendatud",
- "See what's new" : "Kae, mis uut",
+ "App updated" : "Rakendus on uuendatud",
+ "See what's new" : "Kae, mida uut leidub",
"{app} updated to version {version}" : "{app} uuendati versioonile {version}",
"Update notifications" : "Uuendusmärguanded",
"The update server could not be reached since %d days to check for new updates." : "Uuenduste serveriga ei ole uuenduste otsimiseks saadud ühendust %d päeva.",
@@ -13,26 +13,49 @@ OC.L10N.register(
"Update for {app} to version %s is available." : "Uuendus {app} versioonile %s on saadaval.",
"Update notification" : "Uuendusmärguanne",
"Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Näitab uuendusmärguannet Nexticloudi, rakenduste uuenduste puhul ja pakub SSO linki nende uuendamiseks.",
- "Give feedback" : "Anna tagasisidet",
+ "Give feedback" : "Jaga tagasisidet",
"Get started" : "Alusta",
"No changelog available" : "Muudatuste logi pole saadaval",
"What's new in {app} {version}" : "Mida uut {app} {version} sisaldab",
"A new version is available: <strong>{newVersionString}</strong>" : "Saadaval on uus versioon: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Palun arvesta, et peale uue versiooni ilmumist teave pole kohe saadaval. Me jagame uute versioonide levituse ajas laiali ning vigade tuvastamisel võime ka levitamise katkestada. Lisateave uuenduste ja uuenduskanalite kohta leidub siin: {link}",
"Checked on {lastCheckedDate} - Open changelog" : "Kontrollitud {lastCheckedDate} - Ava muudatuste logi",
+ "Checking apps for compatible versions" : "Kontrollin rakenduste ühilduvaid versioone",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Palun kontrolli, et selle serveri config.php failis poleks <samp>appstoreenabled</samp> võtme väärtuseks „false“.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kas rakendustepoega polnud võimalik ühendust luua või päringu vastuses polnud uuenduste teavet. Otsi uuendusi käsitsi või kontrolli, et serveri internetiühendus toimib ja tal on võimalik rakendustepoe liidesele ligi saada.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Kõikidel</strong> rakendustel on selle Nextcloudi versiooniga ühilduv versioon.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["1%n1 rakenduse versioon ei ühildus selle Nextcloudi versiooniga.","<strong>%n</strong> rakenduse versioon ei ühildus selle Nextcloudi versiooniga."],
+ "Enterprise" : "Suurorganisatsioonide versioon",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Mõeldud suurorganisatsioonidele. Tagab alati, et viimased pisiparandused on lisatud, kuid järgmine suurem uuendus mitte. See on võimalik alles siis, kui Nextcloud GmbH on lisanud tugevdusmeetmeid ja läbinud suurte ning missioonikriitiliste paigalduste kontekstis vajaliku testimise. See uuenduskanal on saadaval vaid lepingulistele klientidele ning on osa Nextcloudi paketist suurorganisatsioonidele (Nextcloud Enterprise).",
+ "Stable" : "Stabiilne versioon",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Viimane stabiilne versioon. Sobib tavakasutuseks ning alati sisaldab uuendamist viimase põhiversioonini.",
+ "Beta" : "Beetaversioon",
+ "A pre-release version only for testing new features, not for production environments." : "Eelversioon uute funktsionaalsuste testimiseks ning ei sobi kasutamiseks igapäevases tarvekeskkonnas.",
"Update" : "Uuenda",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Versiooni, mida kasutad, ei uuendata enam. Palun uuenda toetatud versioonile võimalikult kiiresti.",
"Apps missing compatible version" : "Rakendustel puuduvad toetatud versioonid",
"View in store" : "Vaata poes",
"Apps with compatible version" : "Rakendused toetatud versiooniga",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Palun arvesta, et veebipõhine uuendaja pole soovitatav, kui serveris on üle 100 kasutajakonto! Sel puhul kasuta käsureapõhist uuendajat!",
"Open updater" : "Ava uuendaja",
"Download now" : "Laadi kohe alla",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Veebipõhine uuendaja pole kasutusel. Palun kasuta tarkvara uuendamiseks käsureapõhist uuendajat või sinu paigalduse meetodile ettenähtud lahendust (nt. Docker pull).",
"What's new?" : "Mida on uut?",
"View changelog" : "Vaata muudatuste logi",
"The update check is not yet finished. Please refresh the page." : "Uuenduste kontrollimine pole veel lõppenud. Palun värskendage lehte.",
"Your version is up to date." : "Su versioon on ajakohane.",
+ "A non-default update server is in use to be checked for updates:" : "Uuenduste kontrollimiseks on kasutav vaikimisi serverist erinev server:",
"Update channel" : "Uuenduste kanal",
+ "Changing the update channel 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." : "Uuenduskanalite muutmine mõjutab ka rakenduste haldamise lehte. Kui võtad serveri jaoks kasutusele beetaversiooni, siis pakutakse sulle selles vaates ka rakenduste beetaversioone.",
"Current update channel:" : "Praegune uuenduste kanal:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sa saad alati uuendada järgmisele stabiilsele versioonile, kuid ei saa kasutusele võtta eelmist stabiilset versiooni.",
"Notify members of the following groups about available updates:" : "Teavita jägmiste gruppide liikmeid saadaval olevatest uuendustest:",
+ "No groups" : "Gruppe pole",
+ "Only notifications for app updates are available." : "Vaid rakenduste uuenduste märguanded on saadaval.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Valitud uuenduskanal muudab serveri uuendusmärguanded mõttetuks.",
+ "The selected update channel does not support updates of the server." : "Valitud uuenduskanal ei toeta selle serveri uuendamist.",
+ "Changelog for app {app}" : "{app} rakenduse muudatuste logi",
+ "What's new in {app} version {version}" : "Mida uut {app} {version} sisaldab",
"{version} is available. Get more information on how to update." : "{version} on saadaval. Vaata lisainfot uuendamise kohta."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/et_EE.json b/apps/updatenotification/l10n/et_EE.json
index c90d20ec341..5fb637195ae 100644
--- a/apps/updatenotification/l10n/et_EE.json
+++ b/apps/updatenotification/l10n/et_EE.json
@@ -1,8 +1,8 @@
{ "translations": {
"Channel updated" : "Kanal värskendatud",
"Web updater is disabled" : "Veebiuuendaja on keelatud",
- "App updated" : "Rakendus uuendatud",
- "See what's new" : "Kae, mis uut",
+ "App updated" : "Rakendus on uuendatud",
+ "See what's new" : "Kae, mida uut leidub",
"{app} updated to version {version}" : "{app} uuendati versioonile {version}",
"Update notifications" : "Uuendusmärguanded",
"The update server could not be reached since %d days to check for new updates." : "Uuenduste serveriga ei ole uuenduste otsimiseks saadud ühendust %d päeva.",
@@ -11,26 +11,49 @@
"Update for {app} to version %s is available." : "Uuendus {app} versioonile %s on saadaval.",
"Update notification" : "Uuendusmärguanne",
"Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Näitab uuendusmärguannet Nexticloudi, rakenduste uuenduste puhul ja pakub SSO linki nende uuendamiseks.",
- "Give feedback" : "Anna tagasisidet",
+ "Give feedback" : "Jaga tagasisidet",
"Get started" : "Alusta",
"No changelog available" : "Muudatuste logi pole saadaval",
"What's new in {app} {version}" : "Mida uut {app} {version} sisaldab",
"A new version is available: <strong>{newVersionString}</strong>" : "Saadaval on uus versioon: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Palun arvesta, et peale uue versiooni ilmumist teave pole kohe saadaval. Me jagame uute versioonide levituse ajas laiali ning vigade tuvastamisel võime ka levitamise katkestada. Lisateave uuenduste ja uuenduskanalite kohta leidub siin: {link}",
"Checked on {lastCheckedDate} - Open changelog" : "Kontrollitud {lastCheckedDate} - Ava muudatuste logi",
+ "Checking apps for compatible versions" : "Kontrollin rakenduste ühilduvaid versioone",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Palun kontrolli, et selle serveri config.php failis poleks <samp>appstoreenabled</samp> võtme väärtuseks „false“.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kas rakendustepoega polnud võimalik ühendust luua või päringu vastuses polnud uuenduste teavet. Otsi uuendusi käsitsi või kontrolli, et serveri internetiühendus toimib ja tal on võimalik rakendustepoe liidesele ligi saada.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Kõikidel</strong> rakendustel on selle Nextcloudi versiooniga ühilduv versioon.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["1%n1 rakenduse versioon ei ühildus selle Nextcloudi versiooniga.","<strong>%n</strong> rakenduse versioon ei ühildus selle Nextcloudi versiooniga."],
+ "Enterprise" : "Suurorganisatsioonide versioon",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Mõeldud suurorganisatsioonidele. Tagab alati, et viimased pisiparandused on lisatud, kuid järgmine suurem uuendus mitte. See on võimalik alles siis, kui Nextcloud GmbH on lisanud tugevdusmeetmeid ja läbinud suurte ning missioonikriitiliste paigalduste kontekstis vajaliku testimise. See uuenduskanal on saadaval vaid lepingulistele klientidele ning on osa Nextcloudi paketist suurorganisatsioonidele (Nextcloud Enterprise).",
+ "Stable" : "Stabiilne versioon",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Viimane stabiilne versioon. Sobib tavakasutuseks ning alati sisaldab uuendamist viimase põhiversioonini.",
+ "Beta" : "Beetaversioon",
+ "A pre-release version only for testing new features, not for production environments." : "Eelversioon uute funktsionaalsuste testimiseks ning ei sobi kasutamiseks igapäevases tarvekeskkonnas.",
"Update" : "Uuenda",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Versiooni, mida kasutad, ei uuendata enam. Palun uuenda toetatud versioonile võimalikult kiiresti.",
"Apps missing compatible version" : "Rakendustel puuduvad toetatud versioonid",
"View in store" : "Vaata poes",
"Apps with compatible version" : "Rakendused toetatud versiooniga",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Palun arvesta, et veebipõhine uuendaja pole soovitatav, kui serveris on üle 100 kasutajakonto! Sel puhul kasuta käsureapõhist uuendajat!",
"Open updater" : "Ava uuendaja",
"Download now" : "Laadi kohe alla",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Veebipõhine uuendaja pole kasutusel. Palun kasuta tarkvara uuendamiseks käsureapõhist uuendajat või sinu paigalduse meetodile ettenähtud lahendust (nt. Docker pull).",
"What's new?" : "Mida on uut?",
"View changelog" : "Vaata muudatuste logi",
"The update check is not yet finished. Please refresh the page." : "Uuenduste kontrollimine pole veel lõppenud. Palun värskendage lehte.",
"Your version is up to date." : "Su versioon on ajakohane.",
+ "A non-default update server is in use to be checked for updates:" : "Uuenduste kontrollimiseks on kasutav vaikimisi serverist erinev server:",
"Update channel" : "Uuenduste kanal",
+ "Changing the update channel 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." : "Uuenduskanalite muutmine mõjutab ka rakenduste haldamise lehte. Kui võtad serveri jaoks kasutusele beetaversiooni, siis pakutakse sulle selles vaates ka rakenduste beetaversioone.",
"Current update channel:" : "Praegune uuenduste kanal:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sa saad alati uuendada järgmisele stabiilsele versioonile, kuid ei saa kasutusele võtta eelmist stabiilset versiooni.",
"Notify members of the following groups about available updates:" : "Teavita jägmiste gruppide liikmeid saadaval olevatest uuendustest:",
+ "No groups" : "Gruppe pole",
+ "Only notifications for app updates are available." : "Vaid rakenduste uuenduste märguanded on saadaval.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Valitud uuenduskanal muudab serveri uuendusmärguanded mõttetuks.",
+ "The selected update channel does not support updates of the server." : "Valitud uuenduskanal ei toeta selle serveri uuendamist.",
+ "Changelog for app {app}" : "{app} rakenduse muudatuste logi",
+ "What's new in {app} version {version}" : "Mida uut {app} {version} sisaldab",
"{version} is available. Get more information on how to update." : "{version} on saadaval. Vaata lisainfot uuendamise kohta."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/he.js b/apps/updatenotification/l10n/he.js
deleted file mode 100644
index 153f9c82be1..00000000000
--- a/apps/updatenotification/l10n/he.js
+++ /dev/null
@@ -1,32 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} זמינה. ניתן לקבל מידע נוסף על איך לעדכן.",
- "Channel updated" : "הערוץ התעדכן",
- "Update notifications" : "עדכון דיווחים",
- "The update server could not be reached since %d days to check for new updates." : "לא ניתן לגשת אל שרת העדכון מזה %d ימים כדי לבדוק אם יש עדכונים חדשים.",
- "Please check the Nextcloud and server log files for errors." : "נא לחפש שגיאות בקובצי היומן של Nextcloud ושל השרת.",
- "Update to %1$s is available." : "קיים עדכון ל־%1$s.",
- "Update for {app} to version %s is available." : "קיים עדכון עבור {app} לגרסה %s.",
- "Update notification" : "התראה על עדכון",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "מציג התראות עדכון ל־Nextcloud ומספק SSO (גישה אחודה) למעדכן.",
- "Update" : "עדכון",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "הגרסה שפועלת אצלך אינה מתוחזקת יותר. נא לוודא לעדכן לגרסה נתמכת במהירות האפשרית.",
- "View in store" : "הצגה בחנות",
- "Open updater" : "פתיחת המעדכן",
- "Download now" : "להוריד כעת",
- "What's new?" : "מה חדש?",
- "View changelog" : "הצגת יומן שינויים",
- "The update check is not yet finished. Please refresh the page." : "בדיקת העדכונים לא הסתיימה עדיין. נא לעדכן את העמוד.",
- "Your version is up to date." : "הגרסה שבידך מעודכנת.",
- "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:" : "דיווח למשתמשים של קבוצות אלו על עדכונים זמינים:",
- "The selected update channel does not support updates of the server." : "ערוץ העדכון הנבחר לא תומך בעדכון השרת.",
- "A new version is available: <strong>{newVersionString}</strong>" : "גרסה חדשה זמינה: <strong>{newVersionString}</strong>",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "נא לוודא שב־config.php שלך ה־<samp>appstoreenabled</samp> לא מוגדר ל‏־false.",
- "Stable" : "יציב",
- "Beta" : "בטא",
- "Update channel:" : "עדכון ערוץ:",
- "Checked on {lastCheckedDate}" : "נבדק לאחרונה ב־{lastCheckedDate}"
-},
-"nplurals=3; 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/updatenotification/l10n/he.json b/apps/updatenotification/l10n/he.json
deleted file mode 100644
index 1c6963f59af..00000000000
--- a/apps/updatenotification/l10n/he.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} זמינה. ניתן לקבל מידע נוסף על איך לעדכן.",
- "Channel updated" : "הערוץ התעדכן",
- "Update notifications" : "עדכון דיווחים",
- "The update server could not be reached since %d days to check for new updates." : "לא ניתן לגשת אל שרת העדכון מזה %d ימים כדי לבדוק אם יש עדכונים חדשים.",
- "Please check the Nextcloud and server log files for errors." : "נא לחפש שגיאות בקובצי היומן של Nextcloud ושל השרת.",
- "Update to %1$s is available." : "קיים עדכון ל־%1$s.",
- "Update for {app} to version %s is available." : "קיים עדכון עבור {app} לגרסה %s.",
- "Update notification" : "התראה על עדכון",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "מציג התראות עדכון ל־Nextcloud ומספק SSO (גישה אחודה) למעדכן.",
- "Update" : "עדכון",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "הגרסה שפועלת אצלך אינה מתוחזקת יותר. נא לוודא לעדכן לגרסה נתמכת במהירות האפשרית.",
- "View in store" : "הצגה בחנות",
- "Open updater" : "פתיחת המעדכן",
- "Download now" : "להוריד כעת",
- "What's new?" : "מה חדש?",
- "View changelog" : "הצגת יומן שינויים",
- "The update check is not yet finished. Please refresh the page." : "בדיקת העדכונים לא הסתיימה עדיין. נא לעדכן את העמוד.",
- "Your version is up to date." : "הגרסה שבידך מעודכנת.",
- "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:" : "דיווח למשתמשים של קבוצות אלו על עדכונים זמינים:",
- "The selected update channel does not support updates of the server." : "ערוץ העדכון הנבחר לא תומך בעדכון השרת.",
- "A new version is available: <strong>{newVersionString}</strong>" : "גרסה חדשה זמינה: <strong>{newVersionString}</strong>",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "נא לוודא שב־config.php שלך ה־<samp>appstoreenabled</samp> לא מוגדר ל‏־false.",
- "Stable" : "יציב",
- "Beta" : "בטא",
- "Update channel:" : "עדכון ערוץ:",
- "Checked on {lastCheckedDate}" : "נבדק לאחרונה ב־{lastCheckedDate}"
-},"pluralForm" :"nplurals=3; 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/updatenotification/l10n/ia.js b/apps/updatenotification/l10n/ia.js
deleted file mode 100644
index b6849f18f23..00000000000
--- a/apps/updatenotification/l10n/ia.js
+++ /dev/null
@@ -1,23 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} es disponibile. Obtene plus informationes super como actualisar.",
- "Open updater" : "Aperir actualisator",
- "Your version is up to date." : "Tu version es actualisate.",
- "Update channel:" : "Canal de actualisation:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Tu sempre pote actualisar a un version plus nove o a un canal experimental. Ma tu non potera jammais retrogradar a un canal plus stabile.",
- "Notify members of the following groups about available updates:" : "Notifica membros del gruppos sequente super actualisationes disponibile:",
- "Only notification for app updates are available." : "Notification es disponibile solmente pro actualisationes de applicationes.",
- "The selected update channel does not support updates of the server." : "Le canal de actualisation seligite non supporta actualisationes del servitor.",
- "Could not start updater, please try the manual update" : "Impossibile initiar le actualisator, per favor tenta le actualisation manual",
- "Update notifications" : "Actualisar notificationes",
- "Channel updated" : "Canal actualisate",
- "Update to %1$s is available." : "Un actualisation a %1$s es disponibile.",
- "Update for %1$s to version %2$s is available." : "Un actualisation de %1$s al version %2$s es disponibile.",
- "Update for {app} to version %s is available." : "Un actualisation del {app} al version %s es disponibile.",
- "A new version is available: %s" : "Un nove version es disponibile: %s",
- "Download now" : "Discargar ora",
- "Checked on %s" : "Verificate in %s",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Le canal de actualisation selectionate face le notificationes dedicate al servitor esser obsolete."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/ia.json b/apps/updatenotification/l10n/ia.json
deleted file mode 100644
index 22d0d52760d..00000000000
--- a/apps/updatenotification/l10n/ia.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} es disponibile. Obtene plus informationes super como actualisar.",
- "Open updater" : "Aperir actualisator",
- "Your version is up to date." : "Tu version es actualisate.",
- "Update channel:" : "Canal de actualisation:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Tu sempre pote actualisar a un version plus nove o a un canal experimental. Ma tu non potera jammais retrogradar a un canal plus stabile.",
- "Notify members of the following groups about available updates:" : "Notifica membros del gruppos sequente super actualisationes disponibile:",
- "Only notification for app updates are available." : "Notification es disponibile solmente pro actualisationes de applicationes.",
- "The selected update channel does not support updates of the server." : "Le canal de actualisation seligite non supporta actualisationes del servitor.",
- "Could not start updater, please try the manual update" : "Impossibile initiar le actualisator, per favor tenta le actualisation manual",
- "Update notifications" : "Actualisar notificationes",
- "Channel updated" : "Canal actualisate",
- "Update to %1$s is available." : "Un actualisation a %1$s es disponibile.",
- "Update for %1$s to version %2$s is available." : "Un actualisation de %1$s al version %2$s es disponibile.",
- "Update for {app} to version %s is available." : "Un actualisation del {app} al version %s es disponibile.",
- "A new version is available: %s" : "Un nove version es disponibile: %s",
- "Download now" : "Discargar ora",
- "Checked on %s" : "Verificate in %s",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Le canal de actualisation selectionate face le notificationes dedicate al servitor esser obsolete."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/id.js b/apps/updatenotification/l10n/id.js
deleted file mode 100644
index 3eae35382b8..00000000000
--- a/apps/updatenotification/l10n/id.js
+++ /dev/null
@@ -1,23 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} tersedia. Dapatkan informasi lebih lanjut cara memperbaruinya.",
- "Open updater" : "Buka updater",
- "Your version is up to date." : "Versi Anda saat ini adalah yang terbaru.",
- "Update channel:" : "Saluran update:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Anda dapat memperbarui ke versi yang lebih baru / saluran percobaan. Namun Anda tidak dapat menurunkan ke saluran stabil.",
- "Notify members of the following groups about available updates:" : "Beritahu anggota grup tentang pembaruan yang tersedia:",
- "Only notification for app updates are available." : "Hanya pemberitahuan untuk pembaruan aplikasi tersedia.",
- "The selected update channel does not support updates of the server." : "Kanal pembaruan yang terpilih tidak mendukung pembaruan server.",
- "Could not start updater, please try the manual update" : "Tidak dapat menjalankan updater, harap coba perbarui manual",
- "Update notifications" : "Perbarui pemberitahuan",
- "Channel updated" : "Kanal diperbarui",
- "Update to %1$s is available." : "Pembaruan untuk %1$s tersedia.",
- "Update for %1$s to version %2$s is available." : "Pembaruan untuk %1$s ke versi %2$s tersedia.",
- "Update for {app} to version %s is available." : "Pembaruan untuk {app} ke versi %s tersedia.",
- "A new version is available: %s" : "Versi baru tersedia: %s",
- "Download now" : "Unduh sekarang",
- "Checked on %s" : "Dicek pada %s",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Kanal pembaruan yang terpilih membuat pemberitahuan terdedikasi untuk server usang."
-},
-"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/id.json b/apps/updatenotification/l10n/id.json
deleted file mode 100644
index 60ab84f3016..00000000000
--- a/apps/updatenotification/l10n/id.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} tersedia. Dapatkan informasi lebih lanjut cara memperbaruinya.",
- "Open updater" : "Buka updater",
- "Your version is up to date." : "Versi Anda saat ini adalah yang terbaru.",
- "Update channel:" : "Saluran update:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Anda dapat memperbarui ke versi yang lebih baru / saluran percobaan. Namun Anda tidak dapat menurunkan ke saluran stabil.",
- "Notify members of the following groups about available updates:" : "Beritahu anggota grup tentang pembaruan yang tersedia:",
- "Only notification for app updates are available." : "Hanya pemberitahuan untuk pembaruan aplikasi tersedia.",
- "The selected update channel does not support updates of the server." : "Kanal pembaruan yang terpilih tidak mendukung pembaruan server.",
- "Could not start updater, please try the manual update" : "Tidak dapat menjalankan updater, harap coba perbarui manual",
- "Update notifications" : "Perbarui pemberitahuan",
- "Channel updated" : "Kanal diperbarui",
- "Update to %1$s is available." : "Pembaruan untuk %1$s tersedia.",
- "Update for %1$s to version %2$s is available." : "Pembaruan untuk %1$s ke versi %2$s tersedia.",
- "Update for {app} to version %s is available." : "Pembaruan untuk {app} ke versi %s tersedia.",
- "A new version is available: %s" : "Versi baru tersedia: %s",
- "Download now" : "Unduh sekarang",
- "Checked on %s" : "Dicek pada %s",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Kanal pembaruan yang terpilih membuat pemberitahuan terdedikasi untuk server usang."
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ka_GE.js b/apps/updatenotification/l10n/ka_GE.js
deleted file mode 100644
index 54d0a50708f..00000000000
--- a/apps/updatenotification/l10n/ka_GE.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} ხელმისაწვდომია. მოიპოვეთ მეტი ინფორმაცია იმაზე, თუ როგორ განაახლოთ.",
- "Channel updated" : "განახლების შეჩერება",
- "Update notifications" : "განახლების შეტყობინებები",
- "The update server could not be reached since %d days to check for new updates." : "განახლების სერვერი გალახლებების შესამოწმებლად %d დღე მიუწვდომელია.",
- "Please check the Nextcloud and server log files for errors." : "შეცდომებისთვის გთხოვთ შეამოწმოთ Nextcloud-ი სერვერის ლოგები.",
- "Update to %1$s is available." : "განახლება %1$s-ზე ხელმისაწვდომია.",
- "Update for %1$s to version %2$s is available." : "%1$s-ის განახლება %2$s ვერსიაზე ხელმისაწვდომია.",
- "Update for {app} to version %s is available." : "განახლება აპლიკაციისთვის {app} ვერსიაზე %s ხელმისაწვდომია.",
- "Update notification" : "შეტყობინების განახლება",
- "View in store" : "იხილეთ store-ში",
- "Open updater" : "განმანახლებლის ჩართვა",
- "Download now" : "ჩამოტვირთვა",
- "The update check is not yet finished. Please refresh the page." : "განახლება ჯერ არ დასრულებულა. გთხოვთ განაახლოთ გვერდი.",
- "Your version is up to date." : "თქვენ იყენბთ ბოლო ვერსიას.",
- "A non-default update server is in use to be checked for updates:" : "განახლებების შესამოწმებლად მოქმედია არა-საწყისი სერვერი:",
- "Update channel:" : "განახლების არხი:",
- "Notify members of the following groups about available updates:" : "შემდეგი ჯგუფის წევრებს გაუგზავნეთ შეტყობინება ხელმისაწვდომ განახლებებზე:",
- "Only notification 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." : "არჩეული განახლების არხი არ უჭერს მხარს სერვერის განახლებას.",
- "Checked on {lastCheckedDate}" : "შემოწმდა {lastCheckedDate}-ზე",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "გთხოვთ დარწმუნდეთ რომ თქვენს config.php-ში <samp>appstoreenabled</samp>-ის მნიშვნელობა არაა false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Appstore-ს ვერ დავუკავშირდით ან არ დაბრუნდა პასუხი განახლებების შესახებ. განახლებები მოძებნეთ მექანიკურად ან დარწმუნდით, რომ თქვენს სერვერს გააჩნია წვდომა ინტერნეტთან და უკავშირდება appstore-ს.",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "გაითვალისწინეთ, ახალი რელიზი აქ გამოჩენამდე, საჭიროებს გარკვეულ დროს. ჩვენ მომხმარებლებისთვის ვუშვებთ ახალ ვერსიებს და ხანდახან პრობლემების პოვნისას ზოგიერთ ვერსიას ვტოვებთ."
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/updatenotification/l10n/ka_GE.json b/apps/updatenotification/l10n/ka_GE.json
deleted file mode 100644
index 5bb7759ef9e..00000000000
--- a/apps/updatenotification/l10n/ka_GE.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} ხელმისაწვდომია. მოიპოვეთ მეტი ინფორმაცია იმაზე, თუ როგორ განაახლოთ.",
- "Channel updated" : "განახლების შეჩერება",
- "Update notifications" : "განახლების შეტყობინებები",
- "The update server could not be reached since %d days to check for new updates." : "განახლების სერვერი გალახლებების შესამოწმებლად %d დღე მიუწვდომელია.",
- "Please check the Nextcloud and server log files for errors." : "შეცდომებისთვის გთხოვთ შეამოწმოთ Nextcloud-ი სერვერის ლოგები.",
- "Update to %1$s is available." : "განახლება %1$s-ზე ხელმისაწვდომია.",
- "Update for %1$s to version %2$s is available." : "%1$s-ის განახლება %2$s ვერსიაზე ხელმისაწვდომია.",
- "Update for {app} to version %s is available." : "განახლება აპლიკაციისთვის {app} ვერსიაზე %s ხელმისაწვდომია.",
- "Update notification" : "შეტყობინების განახლება",
- "View in store" : "იხილეთ store-ში",
- "Open updater" : "განმანახლებლის ჩართვა",
- "Download now" : "ჩამოტვირთვა",
- "The update check is not yet finished. Please refresh the page." : "განახლება ჯერ არ დასრულებულა. გთხოვთ განაახლოთ გვერდი.",
- "Your version is up to date." : "თქვენ იყენბთ ბოლო ვერსიას.",
- "A non-default update server is in use to be checked for updates:" : "განახლებების შესამოწმებლად მოქმედია არა-საწყისი სერვერი:",
- "Update channel:" : "განახლების არხი:",
- "Notify members of the following groups about available updates:" : "შემდეგი ჯგუფის წევრებს გაუგზავნეთ შეტყობინება ხელმისაწვდომ განახლებებზე:",
- "Only notification 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." : "არჩეული განახლების არხი არ უჭერს მხარს სერვერის განახლებას.",
- "Checked on {lastCheckedDate}" : "შემოწმდა {lastCheckedDate}-ზე",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "გთხოვთ დარწმუნდეთ რომ თქვენს config.php-ში <samp>appstoreenabled</samp>-ის მნიშვნელობა არაა false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Appstore-ს ვერ დავუკავშირდით ან არ დაბრუნდა პასუხი განახლებების შესახებ. განახლებები მოძებნეთ მექანიკურად ან დარწმუნდით, რომ თქვენს სერვერს გააჩნია წვდომა ინტერნეტთან და უკავშირდება appstore-ს.",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "გაითვალისწინეთ, ახალი რელიზი აქ გამოჩენამდე, საჭიროებს გარკვეულ დროს. ჩვენ მომხმარებლებისთვის ვუშვებთ ახალ ვერსიებს და ხანდახან პრობლემების პოვნისას ზოგიერთ ვერსიას ვტოვებთ."
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/lb.js b/apps/updatenotification/l10n/lb.js
deleted file mode 100644
index e877f169fc4..00000000000
--- a/apps/updatenotification/l10n/lb.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Update notifications" : "Notifikatiounen aktualiséieren",
- "{version} is available. Get more information on how to update." : "{Versioun} ass verfügbar. Kréi méi Informatiounen doriwwer wéi d'Aktualiséierung ofleeft.",
- "Updated channel" : "Aktualiséierte Kanal",
- "ownCloud core" : "ownCloud Kär",
- "Update for %1$s to version %2$s is available." : "D'Aktualiséierung fir %1$s op d'Versioun %2$s ass verfügbar.",
- "A new version is available: %s" : "Eng nei Versioun ass verfügbar: %s",
- "Open updater" : "Den Aktualiséierungsprogramm opmaachen",
- "Your version is up to date." : "Déng Versioun ass aktualiséiert.",
- "Checked on %s" : "Gepréift um %s",
- "Update channel:" : "Kanal updaten:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/lb.json b/apps/updatenotification/l10n/lb.json
deleted file mode 100644
index a43883f6c3e..00000000000
--- a/apps/updatenotification/l10n/lb.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Update notifications" : "Notifikatiounen aktualiséieren",
- "{version} is available. Get more information on how to update." : "{Versioun} ass verfügbar. Kréi méi Informatiounen doriwwer wéi d'Aktualiséierung ofleeft.",
- "Updated channel" : "Aktualiséierte Kanal",
- "ownCloud core" : "ownCloud Kär",
- "Update for %1$s to version %2$s is available." : "D'Aktualiséierung fir %1$s op d'Versioun %2$s ass verfügbar.",
- "A new version is available: %s" : "Eng nei Versioun ass verfügbar: %s",
- "Open updater" : "Den Aktualiséierungsprogramm opmaachen",
- "Your version is up to date." : "Déng Versioun ass aktualiséiert.",
- "Checked on %s" : "Gepréift um %s",
- "Update channel:" : "Kanal updaten:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/lv.js b/apps/updatenotification/l10n/lv.js
deleted file mode 100644
index 6d649177409..00000000000
--- a/apps/updatenotification/l10n/lv.js
+++ /dev/null
@@ -1,25 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} ir pieejama. Iegūstiet vairāk informācijas par to, kā atjaunināt.",
- "Update notifications" : "Atjauninājumu paziņojumi",
- "Channel updated" : "Kanāls atjaunots",
- "Update to %1$s is available." : "Atjauninājums uz %1$s ir pieejams.",
- "Update for %1$s to version %2$s is available." : "Atjauninājums %1$s uz versiju %2$s ir pieejams.",
- "Update for {app} to version %s is available." : "Atjauninājums {app} uz versiju %s ir pieejams.",
- "Open updater" : "Atveriet atjauninātāju",
- "Your version is up to date." : "Jums ir jaunākā versija.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Jūs vienmēr varat atjaunināt to uz jaunāku versiju / eksperimentālo versiju. Bet nekad nevar atgriezties uz stabilāku versiju.",
- "Notify members of the following groups about available updates:" : "Paziņot šo grupu locekļiem par pieejamajiem atjauninājumiem:",
- "Only notification for app updates are available." : "Tikai paziņojumi par programmu atjauninājumiem ir pieejami.",
- "The selected update channel does not support updates of the server." : "Izvēlēto atjauninājumu kanāls neatbalsta servera atjauninājumus.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Ir pieejama jauna versija: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Pārbaudīts {lastCheckedDate}",
- "Could not start updater, please try the manual update" : "Nevar sākt atjauninājumu, lūdzu, mēģiniet manuālo atjauninājumu",
- "A new version is available: %s" : "Ir pieejama jauna versija: %s",
- "Download now" : "Lejupielādēt tagad",
- "Checked on %s" : "Pārbaudīts %s",
- "Update channel:" : "Atjaunināt kanālu:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Izvēlētais atjauninājumu kanāls rādīs īpašus paziņojumus ja serveris novecojis."
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/updatenotification/l10n/lv.json b/apps/updatenotification/l10n/lv.json
deleted file mode 100644
index a40a3fbde1a..00000000000
--- a/apps/updatenotification/l10n/lv.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} ir pieejama. Iegūstiet vairāk informācijas par to, kā atjaunināt.",
- "Update notifications" : "Atjauninājumu paziņojumi",
- "Channel updated" : "Kanāls atjaunots",
- "Update to %1$s is available." : "Atjauninājums uz %1$s ir pieejams.",
- "Update for %1$s to version %2$s is available." : "Atjauninājums %1$s uz versiju %2$s ir pieejams.",
- "Update for {app} to version %s is available." : "Atjauninājums {app} uz versiju %s ir pieejams.",
- "Open updater" : "Atveriet atjauninātāju",
- "Your version is up to date." : "Jums ir jaunākā versija.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Jūs vienmēr varat atjaunināt to uz jaunāku versiju / eksperimentālo versiju. Bet nekad nevar atgriezties uz stabilāku versiju.",
- "Notify members of the following groups about available updates:" : "Paziņot šo grupu locekļiem par pieejamajiem atjauninājumiem:",
- "Only notification for app updates are available." : "Tikai paziņojumi par programmu atjauninājumiem ir pieejami.",
- "The selected update channel does not support updates of the server." : "Izvēlēto atjauninājumu kanāls neatbalsta servera atjauninājumus.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Ir pieejama jauna versija: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Pārbaudīts {lastCheckedDate}",
- "Could not start updater, please try the manual update" : "Nevar sākt atjauninājumu, lūdzu, mēģiniet manuālo atjauninājumu",
- "A new version is available: %s" : "Ir pieejama jauna versija: %s",
- "Download now" : "Lejupielādēt tagad",
- "Checked on %s" : "Pārbaudīts %s",
- "Update channel:" : "Atjaunināt kanālu:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Izvēlētais atjauninājumu kanāls rādīs īpašus paziņojumus ja serveris novecojis."
-},"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/updatenotification/l10n/oc.js b/apps/updatenotification/l10n/oc.js
deleted file mode 100644
index e1e930ba805..00000000000
--- a/apps/updatenotification/l10n/oc.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "La version {version} es disponibla. Obtenètz mai d'informacions a prepaus d'aquesta mesa a jorn.",
- "Updated channel" : "Canal mes a jorn",
- "Update channel:" : "Canal de mesa a jorn :",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Podètz a tot moment metre a jorn cap a una version mai recenta o un canal experimental. Pasmens, poiretz pas jamai tornar a un canal mai estable."
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/updatenotification/l10n/oc.json b/apps/updatenotification/l10n/oc.json
deleted file mode 100644
index 16c52460813..00000000000
--- a/apps/updatenotification/l10n/oc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "La version {version} es disponibla. Obtenètz mai d'informacions a prepaus d'aquesta mesa a jorn.",
- "Updated channel" : "Canal mes a jorn",
- "Update channel:" : "Canal de mesa a jorn :",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Podètz a tot moment metre a jorn cap a una version mai recenta o un canal experimental. Pasmens, poiretz pas jamai tornar a un canal mai estable."
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/pt_PT.js b/apps/updatenotification/l10n/pt_PT.js
deleted file mode 100644
index 728048689b8..00000000000
--- a/apps/updatenotification/l10n/pt_PT.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Update notifications" : "Notificações de atualização",
- "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informação sobre como atualizar.",
- "Updated channel" : "Canal atualizado",
- "Update for %1$s to version %2$s is available." : "Está disponível a atualização para %1$s para a versão %2$s.",
- "Updater" : "Atualizador",
- "A new version is available: %s" : "Está disponível uma nova versão: %s",
- "Open updater" : "Abrir atualizador",
- "Your version is up to date." : "A sua versão está atualizada.",
- "Checked on %s" : "Verificada em %s",
- "Update channel:" : "Canal de atualização:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Pode atualizar sempre para uma nova versão / canal experimental. Mas nunca poderá voltar para um canal mais estável.",
- "Notify members of the following groups about available updates:" : "Notifique os membros dos seguintes grupos sobre as atualizações disponíveis:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/pt_PT.json b/apps/updatenotification/l10n/pt_PT.json
deleted file mode 100644
index 161e1e5f05a..00000000000
--- a/apps/updatenotification/l10n/pt_PT.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "Update notifications" : "Notificações de atualização",
- "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informação sobre como atualizar.",
- "Updated channel" : "Canal atualizado",
- "Update for %1$s to version %2$s is available." : "Está disponível a atualização para %1$s para a versão %2$s.",
- "Updater" : "Atualizador",
- "A new version is available: %s" : "Está disponível uma nova versão: %s",
- "Open updater" : "Abrir atualizador",
- "Your version is up to date." : "A sua versão está atualizada.",
- "Checked on %s" : "Verificada em %s",
- "Update channel:" : "Canal de atualização:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Pode atualizar sempre para uma nova versão / canal experimental. Mas nunca poderá voltar para um canal mais estável.",
- "Notify members of the following groups about available updates:" : "Notifique os membros dos seguintes grupos sobre as atualizações disponíveis:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ro.js b/apps/updatenotification/l10n/ro.js
deleted file mode 100644
index efc1068b6d9..00000000000
--- a/apps/updatenotification/l10n/ro.js
+++ /dev/null
@@ -1,30 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} este disponibil. Află mai multe informații despre cum să faci o actualizare.",
- "Channel updated" : "Canal actualizat",
- "Web updater is disabled" : "Actualizatorul web este dezactivat",
- "Update notifications" : "Notificări de actualizare",
- "The update server could not be reached since %d days to check for new updates." : "Serverul de actualizare nu a mai putut fi contactat de %d zile pentru a verifica dacă există actualizări noi.",
- "Please check the Nextcloud and server log files for errors." : "Vă rugăm să verificați dacă există erori în fișierele jurnal Nextcloud și în fișierele jurnal ale serverului.",
- "Update to %1$s is available." : " Actualizarea la %1$s este disponibilă.",
- "Update for {app} to version %s is available." : "Actualizarea pentru {app} la versiunea %s este disponibilă.",
- "Update notification" : "Notificare de actualizare",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Afișează notificările de actualizare pentru Nextcloud și oferă SSO pentru actualizator.",
- "Update" : "Actualizare",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Versiunea pe care o executați nu mai este întreținută. Vă rugăm să vă asigurați că actualizați cât mai curând posibil la o versiune compatibilă.",
- "Apps missing compatible version" : "Aplicații fără versiune compatibilă",
- "View in store" : "Vezi în magazin",
- "Apps with compatible version" : "Aplicații cu versiune compatibilă",
- "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Vă rugăm să rețineți că actualizatorul web nu este recomandat pentru mai mult de 100 de utilizatori! Vă rugăm să folosiți în schimb actualizatorul de linie de comandă!",
- "Open updater" : "Deschide unealta pentru actualizare",
- "Download now" : "Descarcă acum",
- "Please use the command line updater to update." : "Vă rugăm să utilizați programul de actualizare din linia de comandă pentru a efectua actualizarea.",
- "What's new?" : "Ce este nou?",
- "View changelog" : "Vezi changelog",
- "The update check is not yet finished. Please refresh the page." : "Verificarea actualizării nu este încă finalizată. Vă rugăm să reîmprospătați pagina.",
- "Your version is up to date." : "Versiunea curentă este la zi.",
- "Beta" : "Beta",
- "Update channel:" : "Canal pentru actualizări:"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/updatenotification/l10n/ro.json b/apps/updatenotification/l10n/ro.json
deleted file mode 100644
index 8582d6780b4..00000000000
--- a/apps/updatenotification/l10n/ro.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} este disponibil. Află mai multe informații despre cum să faci o actualizare.",
- "Channel updated" : "Canal actualizat",
- "Web updater is disabled" : "Actualizatorul web este dezactivat",
- "Update notifications" : "Notificări de actualizare",
- "The update server could not be reached since %d days to check for new updates." : "Serverul de actualizare nu a mai putut fi contactat de %d zile pentru a verifica dacă există actualizări noi.",
- "Please check the Nextcloud and server log files for errors." : "Vă rugăm să verificați dacă există erori în fișierele jurnal Nextcloud și în fișierele jurnal ale serverului.",
- "Update to %1$s is available." : " Actualizarea la %1$s este disponibilă.",
- "Update for {app} to version %s is available." : "Actualizarea pentru {app} la versiunea %s este disponibilă.",
- "Update notification" : "Notificare de actualizare",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Afișează notificările de actualizare pentru Nextcloud și oferă SSO pentru actualizator.",
- "Update" : "Actualizare",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Versiunea pe care o executați nu mai este întreținută. Vă rugăm să vă asigurați că actualizați cât mai curând posibil la o versiune compatibilă.",
- "Apps missing compatible version" : "Aplicații fără versiune compatibilă",
- "View in store" : "Vezi în magazin",
- "Apps with compatible version" : "Aplicații cu versiune compatibilă",
- "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Vă rugăm să rețineți că actualizatorul web nu este recomandat pentru mai mult de 100 de utilizatori! Vă rugăm să folosiți în schimb actualizatorul de linie de comandă!",
- "Open updater" : "Deschide unealta pentru actualizare",
- "Download now" : "Descarcă acum",
- "Please use the command line updater to update." : "Vă rugăm să utilizați programul de actualizare din linia de comandă pentru a efectua actualizarea.",
- "What's new?" : "Ce este nou?",
- "View changelog" : "Vezi changelog",
- "The update check is not yet finished. Please refresh the page." : "Verificarea actualizării nu este încă finalizată. Vă rugăm să reîmprospătați pagina.",
- "Your version is up to date." : "Versiunea curentă este la zi.",
- "Beta" : "Beta",
- "Update channel:" : "Canal pentru actualizări:"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sq.js b/apps/updatenotification/l10n/sq.js
deleted file mode 100644
index 19e44ea99b4..00000000000
--- a/apps/updatenotification/l10n/sq.js
+++ /dev/null
@@ -1,26 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "Është gati {version}. Merrni më tepër informacion se si ta përditësoni.",
- "Update notifications" : "Njoftime përditësimesh",
- "Channel updated" : "Kanali u përditësua",
- "The update server could not be reached since %d days to check for new updates." : "Përditësimi i serverit nuk mund të arrihej deri sa %dtë kontrollohen për përditësime të reja.",
- "Please check the Nextcloud and server log files for errors." : "Ju lutemi kontrolloni dosjet e Nextcloud dhe te server log-ut per gabimet",
- "Update to %1$s is available." : "Përditësimi te%1$s është në dispozicion.",
- "Update for %1$s to version %2$s is available." : "Është gati përditësimi për %1$s në version %2$s.",
- "Update for {app} to version %s is available." : "Përditësimi për {app} në versionin %s është në dispozicion",
- "Open updater" : "Hape përditësuesin",
- "Download now" : "Shkarko tani",
- "Your version is up to date." : "Versioni juaj është i përditësuar.",
- "Update channel:" : "Kanal përditësimesh:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Mundeni përherë ta përditësoni me një version të ri / kanal eksperimental. Por nuk mund ta ulni kurrë versionin në një version më të qëndrueshëm.",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Vini re se pas një lëshimi të ri mund të duhet pak kohë para se të shfaqet këtu. Ne hapim versione të reja të shpërndara me kalimin e kohës tek përdoruesit tanë dhe nganjëherë kalojmë një version kur gjenden çështjet.",
- "Notify members of the following groups about available updates:" : "Njoftoji anëtarët e grupeve vijues për përditësime të gatshme:",
- "Only notification for app updates are available." : "Vetëm njoftime për përditësime aplikacionesh janë të disponueshme.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Kanali i zgjedhur i përditësimit i bën njoftimet për shërbyesin të papërdorshme.",
- "The selected update channel does not support updates of the server." : "Kanali i zgjdhur i përditësimit nuk mbështet përditësime të shvrbyesit.",
- "Could not start updater, please try the manual update" : "Nuk mundi të filloj përditësuesi, ju lutemi të provoni përditësimin manual",
- "A new version is available: %s" : "Ka gati një version të ri: %s",
- "Checked on %s" : "Kontrolluar më %s"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/sq.json b/apps/updatenotification/l10n/sq.json
deleted file mode 100644
index b7309a1bdda..00000000000
--- a/apps/updatenotification/l10n/sq.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "Është gati {version}. Merrni më tepër informacion se si ta përditësoni.",
- "Update notifications" : "Njoftime përditësimesh",
- "Channel updated" : "Kanali u përditësua",
- "The update server could not be reached since %d days to check for new updates." : "Përditësimi i serverit nuk mund të arrihej deri sa %dtë kontrollohen për përditësime të reja.",
- "Please check the Nextcloud and server log files for errors." : "Ju lutemi kontrolloni dosjet e Nextcloud dhe te server log-ut per gabimet",
- "Update to %1$s is available." : "Përditësimi te%1$s është në dispozicion.",
- "Update for %1$s to version %2$s is available." : "Është gati përditësimi për %1$s në version %2$s.",
- "Update for {app} to version %s is available." : "Përditësimi për {app} në versionin %s është në dispozicion",
- "Open updater" : "Hape përditësuesin",
- "Download now" : "Shkarko tani",
- "Your version is up to date." : "Versioni juaj është i përditësuar.",
- "Update channel:" : "Kanal përditësimesh:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Mundeni përherë ta përditësoni me një version të ri / kanal eksperimental. Por nuk mund ta ulni kurrë versionin në një version më të qëndrueshëm.",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Vini re se pas një lëshimi të ri mund të duhet pak kohë para se të shfaqet këtu. Ne hapim versione të reja të shpërndara me kalimin e kohës tek përdoruesit tanë dhe nganjëherë kalojmë një version kur gjenden çështjet.",
- "Notify members of the following groups about available updates:" : "Njoftoji anëtarët e grupeve vijues për përditësime të gatshme:",
- "Only notification for app updates are available." : "Vetëm njoftime për përditësime aplikacionesh janë të disponueshme.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Kanali i zgjedhur i përditësimit i bën njoftimet për shërbyesin të papërdorshme.",
- "The selected update channel does not support updates of the server." : "Kanali i zgjdhur i përditësimit nuk mbështet përditësime të shvrbyesit.",
- "Could not start updater, please try the manual update" : "Nuk mundi të filloj përditësuesi, ju lutemi të provoni përditësimin manual",
- "A new version is available: %s" : "Ka gati një version të ri: %s",
- "Checked on %s" : "Kontrolluar më %s"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/tr.js b/apps/updatenotification/l10n/tr.js
index 48135c5ea24..ebb3dc4d84b 100644
--- a/apps/updatenotification/l10n/tr.js
+++ b/apps/updatenotification/l10n/tr.js
@@ -2,7 +2,7 @@ OC.L10N.register(
"updatenotification",
{
"Channel updated" : "Kanal güncellendi",
- "Web updater is disabled" : "Güncelleyici kullanımdan kaldırılmış",
+ "Web updater is disabled" : "Güncelleyici kapalı",
"App updated" : "Uygulama güncellendi",
"See what's new" : "Yeniliklere bakın",
"{app} updated to version {version}" : "{app}, {version} sürümüne güncellendi",
@@ -39,7 +39,7 @@ OC.L10N.register(
"Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "100 hesap üzerinde site arayüzündeki güncelleyicinin kullanılmasının önerilmediğini unutmayın! Lütfen bunun yerine komut satırı güncelleyicisini kullanın!",
"Open updater" : "Güncelleyici aç",
"Download now" : "İndir",
- "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi kullanımdan kaldırılmış. Güncellemek için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi kapalı. Güncelleme için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.",
"What's new?" : "Yenilikler neler?",
"View changelog" : "Değişiklik günlüğünü görüntüle",
"The update check is not yet finished. Please refresh the page." : "Güncelleme denetimi henüz tamamlanmadı. Lütfen sayfayı yenileyin.",
diff --git a/apps/updatenotification/l10n/tr.json b/apps/updatenotification/l10n/tr.json
index a5c28d84d0d..da5e33a4c01 100644
--- a/apps/updatenotification/l10n/tr.json
+++ b/apps/updatenotification/l10n/tr.json
@@ -1,6 +1,6 @@
{ "translations": {
"Channel updated" : "Kanal güncellendi",
- "Web updater is disabled" : "Güncelleyici kullanımdan kaldırılmış",
+ "Web updater is disabled" : "Güncelleyici kapalı",
"App updated" : "Uygulama güncellendi",
"See what's new" : "Yeniliklere bakın",
"{app} updated to version {version}" : "{app}, {version} sürümüne güncellendi",
@@ -37,7 +37,7 @@
"Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "100 hesap üzerinde site arayüzündeki güncelleyicinin kullanılmasının önerilmediğini unutmayın! Lütfen bunun yerine komut satırı güncelleyicisini kullanın!",
"Open updater" : "Güncelleyici aç",
"Download now" : "İndir",
- "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi kullanımdan kaldırılmış. Güncellemek için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi kapalı. Güncelleme için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.",
"What's new?" : "Yenilikler neler?",
"View changelog" : "Değişiklik günlüğünü görüntüle",
"The update check is not yet finished. Please refresh the page." : "Güncelleme denetimi henüz tamamlanmadı. Lütfen sayfayı yenileyin.",
diff --git a/apps/updatenotification/l10n/vi.js b/apps/updatenotification/l10n/vi.js
deleted file mode 100644
index 3819e2f27e5..00000000000
--- a/apps/updatenotification/l10n/vi.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} có sẵn. Tìm hiểu thêm thông tin về cách cập nhật.",
- "Your version is up to date." : "Phiên bản của bạn được cập nhật.",
- "Update channel:" : "Cập nhật kênh:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Bạn luôn có thể cập nhật lên phiên bản / kênh thử nghiệm mới hơn. Nhưng bạn không bao giờ có thể downgrade vào một kênh ổn định hơn.",
- "Notify members of the following groups about available updates:" : "Thông báo cho các thành viên của các nhóm sau đây về các cập nhật có sẵn:",
- "Could not start updater, please try the manual update" : "Không thể bắt đầu cập nhật, vui lòng thử cập nhật thủ công",
- "Update notifications" : "Cập nhật thông báo",
- "Channel updated" : "Đã cập nhật kênh",
- "Update to %1$s is available." : "Cập nhật lên %1$s có sẵn.",
- "Update for %1$s to version %2$s is available." : "Cập nhật %1$s lên phiên bản %2$s có sẵn.",
- "Update for {app} to version %s is available." : "Cập nhật {app} lên phiên bản %s có sẵn.",
- "A new version is available: %s" : "Đã có phiên bản mới: %s",
- "Open updater" : "Mở trình cập nhật",
- "Download now" : "Tải ngay",
- "Checked on %s" : "Đã kiểm tra lúc %s"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/vi.json b/apps/updatenotification/l10n/vi.json
deleted file mode 100644
index 97cb8ee34a6..00000000000
--- a/apps/updatenotification/l10n/vi.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} có sẵn. Tìm hiểu thêm thông tin về cách cập nhật.",
- "Your version is up to date." : "Phiên bản của bạn được cập nhật.",
- "Update channel:" : "Cập nhật kênh:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Bạn luôn có thể cập nhật lên phiên bản / kênh thử nghiệm mới hơn. Nhưng bạn không bao giờ có thể downgrade vào một kênh ổn định hơn.",
- "Notify members of the following groups about available updates:" : "Thông báo cho các thành viên của các nhóm sau đây về các cập nhật có sẵn:",
- "Could not start updater, please try the manual update" : "Không thể bắt đầu cập nhật, vui lòng thử cập nhật thủ công",
- "Update notifications" : "Cập nhật thông báo",
- "Channel updated" : "Đã cập nhật kênh",
- "Update to %1$s is available." : "Cập nhật lên %1$s có sẵn.",
- "Update for %1$s to version %2$s is available." : "Cập nhật %1$s lên phiên bản %2$s có sẵn.",
- "Update for {app} to version %s is available." : "Cập nhật {app} lên phiên bản %s có sẵn.",
- "A new version is available: %s" : "Đã có phiên bản mới: %s",
- "Open updater" : "Mở trình cập nhật",
- "Download now" : "Tải ngay",
- "Checked on %s" : "Đã kiểm tra lúc %s"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/lib/AppInfo/Application.php b/apps/updatenotification/lib/AppInfo/Application.php
index d34429e9e73..56012667bb4 100644
--- a/apps/updatenotification/lib/AppInfo/Application.php
+++ b/apps/updatenotification/lib/AppInfo/Application.php
@@ -73,7 +73,7 @@ class Application extends App implements IBootstrap {
}
if ($updateChecker->getUpdateState() !== []) {
- Util::addScript('updatenotification', 'update-notification-legacy');
+ Util::addScript(self::APP_NAME, 'update-notification-legacy');
$updateChecker->setInitialState();
}
}
diff --git a/apps/updatenotification/lib/BackgroundJob/UpdateAvailableNotifications.php b/apps/updatenotification/lib/BackgroundJob/UpdateAvailableNotifications.php
index f55bbe01dba..8879bb0c223 100644
--- a/apps/updatenotification/lib/BackgroundJob/UpdateAvailableNotifications.php
+++ b/apps/updatenotification/lib/BackgroundJob/UpdateAvailableNotifications.php
@@ -10,6 +10,7 @@ namespace OCA\UpdateNotification\BackgroundJob;
use OC\Installer;
use OC\Updater\VersionCheck;
+use OCA\UpdateNotification\AppInfo\Application;
use OCP\App\IAppManager;
use OCP\AppFramework\Services\IAppConfig;
use OCP\AppFramework\Utility\ITimeFactory;
@@ -21,10 +22,15 @@ use OCP\Notification\IManager;
use OCP\ServerVersion;
class UpdateAvailableNotifications extends TimedJob {
- protected $connectionNotifications = [3, 7, 14, 30];
- /** @var string[] */
- protected $users;
+ /**
+ * Numbers of failed updater connection to report error as notification.
+ * @var list<int>
+ */
+ protected const CONNECTION_NOTIFICATIONS = [3, 7, 14, 30];
+
+ /** @var ?string[] */
+ protected $users = null;
public function __construct(
ITimeFactory $timeFactory,
@@ -64,9 +70,14 @@ class UpdateAvailableNotifications extends TimedJob {
}
/**
- * Check for ownCloud update
+ * Check for Nextcloud server update
*/
- protected function checkCoreUpdate() {
+ protected function checkCoreUpdate(): void {
+ if (!$this->config->getSystemValueBool('updatechecker', true)) {
+ // update checker is disabled so no core update check!
+ return;
+ }
+
if (\in_array($this->serverVersion->getChannel(), ['daily', 'git'], true)) {
// "These aren't the update channels you're looking for." - Ben Obi-Wan Kenobi
return;
@@ -77,7 +88,7 @@ class UpdateAvailableNotifications extends TimedJob {
$errors = 1 + $this->appConfig->getAppValueInt('update_check_errors', 0);
$this->appConfig->setAppValueInt('update_check_errors', $errors);
- if (\in_array($errors, $this->connectionNotifications, true)) {
+ if (\in_array($errors, self::CONNECTION_NOTIFICATIONS, true)) {
$this->sendErrorNotifications($errors);
}
} elseif (\is_array($status)) {
@@ -94,14 +105,14 @@ class UpdateAvailableNotifications extends TimedJob {
* Send a message to the admin when the update server could not be reached
* @param int $numDays
*/
- protected function sendErrorNotifications($numDays) {
+ protected function sendErrorNotifications($numDays): void {
$this->clearErrorNotifications();
$notification = $this->notificationManager->createNotification();
try {
- $notification->setApp('updatenotification')
+ $notification->setApp(Application::APP_NAME)
->setDateTime(new \DateTime())
- ->setObject('updatenotification', 'error')
+ ->setObject(Application::APP_NAME, 'error')
->setSubject('connection_error', ['days' => $numDays]);
foreach ($this->getUsersToNotify() as $uid) {
@@ -116,12 +127,12 @@ class UpdateAvailableNotifications extends TimedJob {
/**
* Remove error notifications again
*/
- protected function clearErrorNotifications() {
+ protected function clearErrorNotifications(): void {
$notification = $this->notificationManager->createNotification();
try {
- $notification->setApp('updatenotification')
+ $notification->setApp(Application::APP_NAME)
->setSubject('connection_error')
- ->setObject('updatenotification', 'error');
+ ->setObject(Application::APP_NAME, 'error');
} catch (\InvalidArgumentException $e) {
return;
}
@@ -131,7 +142,7 @@ class UpdateAvailableNotifications extends TimedJob {
/**
* Check all installed apps for updates
*/
- protected function checkAppUpdates() {
+ protected function checkAppUpdates(): void {
$apps = $this->appManager->getEnabledApps();
foreach ($apps as $app) {
$update = $this->isUpdateAvailable($app);
@@ -148,7 +159,7 @@ class UpdateAvailableNotifications extends TimedJob {
* @param string $version
* @param string $visibleVersion
*/
- protected function createNotifications($app, $version, $visibleVersion = '') {
+ protected function createNotifications($app, $version, $visibleVersion = ''): void {
$lastNotification = $this->appConfig->getAppValueString($app, '');
if ($lastNotification === $version) {
// We already notified about this update
@@ -162,7 +173,7 @@ class UpdateAvailableNotifications extends TimedJob {
$notification = $this->notificationManager->createNotification();
try {
- $notification->setApp('updatenotification')
+ $notification->setApp(Application::APP_NAME)
->setDateTime(new \DateTime())
->setObject($app, $version);
@@ -212,12 +223,12 @@ class UpdateAvailableNotifications extends TimedJob {
* @param string $app
* @param string $version
*/
- protected function deleteOutdatedNotifications($app, $version) {
+ protected function deleteOutdatedNotifications($app, $version): void {
$notification = $this->notificationManager->createNotification();
try {
- $notification->setApp('updatenotification')
+ $notification->setApp(Application::APP_NAME)
->setObject($app, $version);
- } catch (\InvalidArgumentException $e) {
+ } catch (\InvalidArgumentException) {
return;
}
$this->notificationManager->markProcessed($notification);
diff --git a/apps/updatenotification/lib/Command/Check.php b/apps/updatenotification/lib/Command/Check.php
index c7de570cd2c..d93e4935012 100644
--- a/apps/updatenotification/lib/Command/Check.php
+++ b/apps/updatenotification/lib/Command/Check.php
@@ -17,24 +17,12 @@ use Symfony\Component\Console\Output\OutputInterface;
class Check extends Command {
- /**
- * @var Installer $installer
- */
- private $installer;
-
- /**
- * @var AppManager $appManager
- */
- private $appManager;
-
public function __construct(
- AppManager $appManager,
+ private AppManager $appManager,
private UpdateChecker $updateChecker,
- Installer $installer,
+ private Installer $installer,
) {
parent::__construct();
- $this->installer = $installer;
- $this->appManager = $appManager;
}
protected function configure(): void {
diff --git a/apps/updatenotification/lib/Controller/APIController.php b/apps/updatenotification/lib/Controller/APIController.php
index c96a5101e0f..4360d814dd2 100644
--- a/apps/updatenotification/lib/Controller/APIController.php
+++ b/apps/updatenotification/lib/Controller/APIController.php
@@ -26,8 +26,7 @@ use OCP\L10N\IFactory;
*/
class APIController extends OCSController {
- /** @var string */
- protected $language;
+ protected ?string $language = null;
/**
* List of apps that were in the appstore but are now shipped and don't have
@@ -95,7 +94,7 @@ class APIController extends OCSController {
$this->appFetcher->setVersion($newVersion, 'future-apps.json', false);
// Apps available on the app store for that version
- $availableApps = array_map(static function (array $app) {
+ $availableApps = array_map(static function (array $app): string {
return $app['id'];
}, $this->appFetcher->get());
@@ -106,8 +105,6 @@ class APIController extends OCSController {
], Http::STATUS_NOT_FOUND);
}
- $this->language = $this->l10nFactory->getUserLanguage($this->userSession->getUser());
-
// Ignore apps that are deployed from git
$installedApps = array_filter($installedApps, function (string $appId) {
try {
@@ -139,14 +136,20 @@ class APIController extends OCSController {
*/
protected function getAppDetails(string $appId): array {
$app = $this->appManager->getAppInfo($appId, false, $this->language);
- /** @var ?string $name */
- $name = $app['name'];
+ $name = $app['name'] ?? $appId;
return [
'appId' => $appId,
- 'appName' => $name ?? $appId,
+ 'appName' => $name,
];
}
+ protected function getLanguage(): string {
+ if ($this->language === null) {
+ $this->language = $this->l10nFactory->getUserLanguage($this->userSession->getUser());
+ }
+ return $this->language;
+ }
+
/**
* Get changelog entry for an app
*
diff --git a/apps/updatenotification/lib/Controller/AdminController.php b/apps/updatenotification/lib/Controller/AdminController.php
index 6e7f9935d93..26745948890 100644
--- a/apps/updatenotification/lib/Controller/AdminController.php
+++ b/apps/updatenotification/lib/Controller/AdminController.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\UpdateNotification\Controller;
@@ -36,8 +37,8 @@ class AdminController extends Controller {
parent::__construct($appName, $request);
}
- private function isUpdaterEnabled() {
- return !$this->config->getSystemValue('upgrade.disable-web', false);
+ private function isUpdaterEnabled(): bool {
+ return !$this->config->getSystemValueBool('upgrade.disable-web');
}
/**
diff --git a/apps/updatenotification/lib/Manager.php b/apps/updatenotification/lib/Manager.php
index b6f455f93fe..ebc1c83a9b4 100644
--- a/apps/updatenotification/lib/Manager.php
+++ b/apps/updatenotification/lib/Manager.php
@@ -73,7 +73,7 @@ class Manager {
/**
* Retrieve a log entry from the changelog
- * @param string $path The path to the changlog file
+ * @param string $path The path to the changelog file
* @param string $version The version to query (make sure to only pass in "{major}.{minor}(.{patch}" format)
*/
protected function retrieveChangelogEntry(string $path, string $version): ?string {
diff --git a/apps/updatenotification/lib/Migration/Version011901Date20240305120000.php b/apps/updatenotification/lib/Migration/Version011901Date20240305120000.php
deleted file mode 100644
index 6c608df313d..00000000000
--- a/apps/updatenotification/lib/Migration/Version011901Date20240305120000.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/**
- * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
- * SPDX-License-Identifier: AGPL-3.0-or-later
- */
-
-namespace OCA\UpdateNotification\Migration;
-
-use OCA\UpdateNotification\BackgroundJob\ResetToken;
-use OCA\UpdateNotification\Notification\BackgroundJob;
-use OCA\UpdateNotification\ResetTokenBackgroundJob;
-use OCP\BackgroundJob\IJobList;
-use OCP\Migration\IOutput;
-use OCP\Migration\SimpleMigrationStep;
-
-/**
- * Drop this with Nextcloud 30
- */
-class Version011901Date20240305120000 extends SimpleMigrationStep {
-
- public function __construct(
- private IJobList $joblist,
- ) {
- }
-
- public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options): void {
- /**
- * Remove and replace the reset-updater-token background job
- * This class was renamed so it is now unknow but we still need to remove it
- * @psalm-suppress UndefinedClass, InvalidArgument
- */
- $hasOldResetToken = $this->joblist->has(ResetTokenBackgroundJob::class, null);
- $hasNewResetToken = $this->joblist->has(ResetToken::class, null);
- if ($hasOldResetToken) {
- /**
- * @psalm-suppress UndefinedClass, InvalidArgument
- */
- $this->joblist->remove(ResetTokenBackgroundJob::class);
- if (!$hasNewResetToken) {
- $this->joblist->add(ResetToken::class);
- }
- }
-
- /**
- * Remove the "has updates" background job, the new one is automatically started from the info.xml
- * @psalm-suppress UndefinedClass, InvalidArgument
- */
- if ($this->joblist->has(BackgroundJob::class, null)) {
- /**
- * @psalm-suppress UndefinedClass, InvalidArgument
- */
- $this->joblist->remove(BackgroundJob::class);
- }
- }
-}
diff --git a/apps/updatenotification/lib/Notification/Notifier.php b/apps/updatenotification/lib/Notification/Notifier.php
index 8ce6bfc2d3d..787675bd98d 100644
--- a/apps/updatenotification/lib/Notification/Notifier.php
+++ b/apps/updatenotification/lib/Notification/Notifier.php
@@ -8,8 +8,9 @@ declare(strict_types=1);
*/
namespace OCA\UpdateNotification\Notification;
+use OCA\UpdateNotification\AppInfo\Application;
use OCP\App\IAppManager;
-use OCP\IConfig;
+use OCP\AppFramework\Services\IAppConfig;
use OCP\IGroupManager;
use OCP\IURLGenerator;
use OCP\IUser;
@@ -28,17 +29,10 @@ class Notifier implements INotifier {
/**
* Notifier constructor.
- *
- * @param IURLGenerator $url
- * @param IConfig $config
- * @param IManager $notificationManager
- * @param IFactory $l10NFactory
- * @param IUserSession $userSession
- * @param IGroupManager $groupManager
*/
public function __construct(
protected IURLGenerator $url,
- protected IConfig $config,
+ protected IAppConfig $appConfig,
protected IManager $notificationManager,
protected IFactory $l10NFactory,
protected IUserSession $userSession,
@@ -56,7 +50,7 @@ class Notifier implements INotifier {
* @since 17.0.0
*/
public function getID(): string {
- return 'updatenotification';
+ return Application::APP_NAME;
}
/**
@@ -66,7 +60,7 @@ class Notifier implements INotifier {
* @since 17.0.0
*/
public function getName(): string {
- return $this->l10NFactory->get('updatenotification')->t('Update notifications');
+ return $this->l10NFactory->get(Application::APP_NAME)->t('Update notifications');
}
/**
@@ -78,7 +72,7 @@ class Notifier implements INotifier {
* @since 9.0.0
*/
public function prepare(INotification $notification, string $languageCode): INotification {
- if ($notification->getApp() !== 'updatenotification') {
+ if ($notification->getApp() !== Application::APP_NAME) {
throw new UnknownNotificationException('Unknown app id');
}
@@ -86,9 +80,9 @@ class Notifier implements INotifier {
throw new UnknownNotificationException('Unknown subject');
}
- $l = $this->l10NFactory->get('updatenotification', $languageCode);
+ $l = $this->l10NFactory->get(Application::APP_NAME, $languageCode);
if ($notification->getSubject() === 'connection_error') {
- $errors = (int)$this->config->getAppValue('updatenotification', 'update_check_errors', '0');
+ $errors = $this->appConfig->getAppValueInt('update_check_errors', 0);
if ($errors === 0) {
throw new AlreadyProcessedException();
}
@@ -133,7 +127,7 @@ class Notifier implements INotifier {
}
}
- $notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath('updatenotification', 'notification.svg')));
+ $notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath(Application::APP_NAME, 'notification.svg')));
return $notification;
}
diff --git a/apps/updatenotification/lib/Settings/Admin.php b/apps/updatenotification/lib/Settings/Admin.php
index a5f75dc99e6..22228f1bccc 100644
--- a/apps/updatenotification/lib/Settings/Admin.php
+++ b/apps/updatenotification/lib/Settings/Admin.php
@@ -8,6 +8,7 @@ declare(strict_types=1);
*/
namespace OCA\UpdateNotification\Settings;
+use OCA\UpdateNotification\AppInfo\Application;
use OCA\UpdateNotification\UpdateChecker;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Services\IInitialState;
@@ -17,9 +18,9 @@ use OCP\IDateTimeFormatter;
use OCP\IGroupManager;
use OCP\IUserManager;
use OCP\L10N\IFactory;
+use OCP\ServerVersion;
use OCP\Settings\ISettings;
use OCP\Support\Subscription\IRegistry;
-use OCP\Util;
use Psr\Log\LoggerInterface;
class Admin implements ISettings {
@@ -34,6 +35,7 @@ class Admin implements ISettings {
private IUserManager $userManager,
private LoggerInterface $logger,
private IInitialState $initialState,
+ private ServerVersion $serverVersion,
) {
}
@@ -47,14 +49,14 @@ class Admin implements ISettings {
'stable',
'production',
];
- $currentChannel = Util::getChannel();
+ $currentChannel = $this->serverVersion->getChannel();
if ($currentChannel === 'git') {
$channels[] = 'git';
}
$updateState = $this->updateChecker->getUpdateState();
- $notifyGroups = json_decode($this->config->getAppValue('updatenotification', 'notify_groups', '["admin"]'), true);
+ $notifyGroups = $this->appConfig->getValueArray(Application::APP_NAME, 'notify_groups', ['admin']);
$defaultUpdateServerURL = 'https://updates.nextcloud.com/updater_server/';
$updateServerURL = $this->config->getSystemValue('updater.server.url', $defaultUpdateServerURL);
@@ -112,7 +114,7 @@ class Admin implements ISettings {
}
/**
- * @param list<string> $groupIds
+ * @param string[] $groupIds
* @return list<array{id: string, displayname: string}>
*/
protected function getSelectedGroups(array $groupIds): array {
@@ -130,7 +132,12 @@ class Admin implements ISettings {
return $result;
}
- public function getSection(): string {
+ public function getSection(): ?string {
+ if (!$this->config->getSystemValueBool('updatechecker', true)) {
+ // update checker is disabled so we do not show the section at all
+ return null;
+ }
+
return 'overview';
}
diff --git a/apps/updatenotification/lib/UpdateChecker.php b/apps/updatenotification/lib/UpdateChecker.php
index 76afc8f6a54..b206ba4a3e4 100644
--- a/apps/updatenotification/lib/UpdateChecker.php
+++ b/apps/updatenotification/lib/UpdateChecker.php
@@ -4,6 +4,7 @@ declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\UpdateNotification;
diff --git a/apps/updatenotification/openapi.json b/apps/updatenotification/openapi.json
index 969dfc7cfaa..f635b0839ef 100644
--- a/apps/updatenotification/openapi.json
+++ b/apps/updatenotification/openapi.json
@@ -248,7 +248,8 @@
"description": "The version to search the changelog entry for (defaults to the latest installed)",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
diff --git a/apps/updatenotification/tests/BackgroundJob/ResetTokenTest.php b/apps/updatenotification/tests/BackgroundJob/ResetTokenTest.php
index 1b0fe0cbc59..c03d4c48827 100644
--- a/apps/updatenotification/tests/BackgroundJob/ResetTokenTest.php
+++ b/apps/updatenotification/tests/BackgroundJob/ResetTokenTest.php
@@ -16,9 +16,9 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ResetTokenTest extends TestCase {
- private IConfig|MockObject $config;
- private IAppConfig|MockObject $appConfig;
- private ITimeFactory|MockObject $timeFactory;
+ private IConfig&MockObject $config;
+ private IAppConfig&MockObject $appConfig;
+ private ITimeFactory&MockObject $timeFactory;
private BackgroundJobResetToken $resetTokenBackgroundJob;
protected function setUp(): void {
diff --git a/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php b/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php
index c795c1dfee5..51237cf012e 100644
--- a/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php
+++ b/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php
@@ -25,15 +25,15 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class UpdateAvailableNotificationsTest extends TestCase {
- private ServerVersion $serverVersion;
- private IConfig|MockObject $config;
- private IManager|MockObject $notificationManager;
- private IGroupManager|MockObject $groupManager;
- private IAppManager|MockObject $appManager;
- private IAppConfig|MockObject $appConfig;
- private ITimeFactory|MockObject $timeFactory;
- private Installer|MockObject $installer;
- private VersionCheck|MockObject $versionCheck;
+ private ServerVersion&MockObject $serverVersion;
+ private IConfig&MockObject $config;
+ private IManager&MockObject $notificationManager;
+ private IGroupManager&MockObject $groupManager;
+ private IAppManager&MockObject $appManager;
+ private IAppConfig&MockObject $appConfig;
+ private ITimeFactory&MockObject $timeFactory;
+ private Installer&MockObject $installer;
+ private VersionCheck&MockObject $versionCheck;
protected function setUp(): void {
parent::setUp();
@@ -50,10 +50,9 @@ class UpdateAvailableNotificationsTest extends TestCase {
}
/**
- * @param array $methods
* @return UpdateAvailableNotifications|MockObject
*/
- protected function getJob(array $methods = []) {
+ protected function getJob(array $methods = []): UpdateAvailableNotifications {
if (empty($methods)) {
return new UpdateAvailableNotifications(
$this->timeFactory,
@@ -96,13 +95,12 @@ class UpdateAvailableNotificationsTest extends TestCase {
$job->expects($this->once())
->method('checkAppUpdates');
- $this->config->expects($this->exactly(2))
+ $this->config->expects(self::exactly(2))
->method('getSystemValueBool')
->willReturnMap([
- ['has_internet_connection', true, true],
['debug', false, true],
+ ['has_internet_connection', true, true],
]);
-
self::invokePrivate($job, 'run', [null]);
}
@@ -117,14 +115,16 @@ class UpdateAvailableNotificationsTest extends TestCase {
$job->expects($this->never())
->method('checkAppUpdates');
- $this->config->method('getSystemValueBool')
+ $this->config
+ ->expects(self::once())
+ ->method('getSystemValueBool')
->with('has_internet_connection', true)
->willReturn(false);
self::invokePrivate($job, 'run', [null]);
}
- public function dataCheckCoreUpdate(): array {
+ public static function dataCheckCoreUpdate(): array {
return [
['daily', null, null, null, null],
['git', null, null, null, null],
@@ -154,14 +154,8 @@ class UpdateAvailableNotificationsTest extends TestCase {
/**
* @dataProvider dataCheckCoreUpdate
- *
- * @param string $channel
- * @param mixed $versionCheck
- * @param null|string $version
- * @param null|string $readableVersion
- * @param null|int $errorDays
*/
- public function testCheckCoreUpdate(string $channel, $versionCheck, $version, $readableVersion, $errorDays): void {
+ public function testCheckCoreUpdate(string $channel, mixed $versionCheck, mixed $version, ?string $readableVersion, ?int $errorDays): void {
$job = $this->getJob([
'createNotifications',
'clearErrorNotifications',
@@ -212,10 +206,17 @@ class UpdateAvailableNotificationsTest extends TestCase {
->with('core', $version, $readableVersion);
}
+ $this->config->expects(self::any())
+ ->method('getSystemValueBool')
+ ->willReturnMap([
+ ['updatechecker', true, true],
+ ['has_internet_connection', true, true],
+ ]);
+
self::invokePrivate($job, 'checkCoreUpdate');
}
- public function dataCheckAppUpdates(): array {
+ public static function dataCheckAppUpdates(): array {
return [
[
['app1', 'app2'],
@@ -232,10 +233,6 @@ class UpdateAvailableNotificationsTest extends TestCase {
/**
* @dataProvider dataCheckAppUpdates
- *
- * @param string[] $apps
- * @param array $isUpdateAvailable
- * @param array $notifications
*/
public function testCheckAppUpdates(array $apps, array $isUpdateAvailable, array $notifications): void {
$job = $this->getJob([
@@ -263,7 +260,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
self::invokePrivate($job, 'checkAppUpdates');
}
- public function dataCreateNotifications(): array {
+ public static function dataCreateNotifications(): array {
return [
['app1', '1.0.0', '1.0.0', false, false, null, null],
['app2', '1.0.1', '1.0.0', '1.0.0', true, ['user1'], [['user1']]],
@@ -273,16 +270,8 @@ class UpdateAvailableNotificationsTest extends TestCase {
/**
* @dataProvider dataCreateNotifications
- *
- * @param string $app
- * @param string $version
- * @param string|false $lastNotification
- * @param string|false $callDelete
- * @param bool $createNotification
- * @param string[]|null $users
- * @param array|null $userNotifications
*/
- public function testCreateNotifications(string $app, string $version, $lastNotification, $callDelete, $createNotification, $users, $userNotifications): void {
+ public function testCreateNotifications(string $app, string $version, string|false $lastNotification, string|false $callDelete, bool $createNotification, ?array $users, ?array $userNotifications): void {
$job = $this->getJob([
'deleteOutdatedNotifications',
'getUsersToNotify',
@@ -355,7 +344,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
self::invokePrivate($job, 'createNotifications', [$app, $version]);
}
- public function dataGetUsersToNotify(): array {
+ public static function dataGetUsersToNotify(): array {
return [
[['g1', 'g2'], ['g1' => null, 'g2' => ['u1', 'u2']], ['u1', 'u2']],
[['g3', 'g4'], ['g3' => ['u1', 'u2'], 'g4' => ['u2', 'u3']], ['u1', 'u2', 'u3']],
@@ -364,9 +353,6 @@ class UpdateAvailableNotificationsTest extends TestCase {
/**
* @dataProvider dataGetUsersToNotify
- * @param string[] $groups
- * @param array $groupUsers
- * @param string[] $expected
*/
public function testGetUsersToNotify(array $groups, array $groupUsers, array $expected): void {
$job = $this->getJob();
@@ -400,7 +386,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
$this->assertEquals($expected, $result);
}
- public function dataDeleteOutdatedNotifications(): array {
+ public static function dataDeleteOutdatedNotifications(): array {
return [
['app1', '1.1.0'],
['app2', '1.2.0'],
diff --git a/apps/updatenotification/tests/Controller/AdminControllerTest.php b/apps/updatenotification/tests/Controller/AdminControllerTest.php
index 877a0276373..2263495fc14 100644
--- a/apps/updatenotification/tests/Controller/AdminControllerTest.php
+++ b/apps/updatenotification/tests/Controller/AdminControllerTest.php
@@ -22,13 +22,13 @@ use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AdminControllerTest extends TestCase {
- private IRequest|MockObject $request;
- private IJobList|MockObject $jobList;
- private ISecureRandom|MockObject $secureRandom;
- private IConfig|MockObject $config;
- private ITimeFactory|MockObject $timeFactory;
- private IL10N|MockObject $l10n;
- private IAppConfig|MockObject $appConfig;
+ private IRequest&MockObject $request;
+ private IJobList&MockObject $jobList;
+ private ISecureRandom&MockObject $secureRandom;
+ private IConfig&MockObject $config;
+ private ITimeFactory&MockObject $timeFactory;
+ private IL10N&MockObject $l10n;
+ private IAppConfig&MockObject $appConfig;
private AdminController $adminController;
diff --git a/apps/updatenotification/tests/Notification/NotifierTest.php b/apps/updatenotification/tests/Notification/NotifierTest.php
index 45c4fc9960f..6d47d0c6b89 100644
--- a/apps/updatenotification/tests/Notification/NotifierTest.php
+++ b/apps/updatenotification/tests/Notification/NotifierTest.php
@@ -4,13 +4,14 @@ declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\UpdateNotification\Tests\Notification;
use OCA\UpdateNotification\Notification\Notifier;
use OCP\App\IAppManager;
-use OCP\IConfig;
+use OCP\AppFramework\Services\IAppConfig;
use OCP\IGroupManager;
use OCP\IURLGenerator;
use OCP\IUserSession;
@@ -25,7 +26,7 @@ use Test\TestCase;
class NotifierTest extends TestCase {
protected IURLGenerator&MockObject $urlGenerator;
- protected IConfig&MockObject $config;
+ protected IAppConfig&MockObject $appConfig;
protected IManager&MockObject $notificationManager;
protected IFactory&MockObject $l10nFactory;
protected IUserSession&MockObject $userSession;
@@ -37,7 +38,7 @@ class NotifierTest extends TestCase {
parent::setUp();
$this->urlGenerator = $this->createMock(IURLGenerator::class);
- $this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
$this->notificationManager = $this->createMock(IManager::class);
$this->l10nFactory = $this->createMock(IFactory::class);
$this->userSession = $this->createMock(IUserSession::class);
@@ -48,13 +49,13 @@ class NotifierTest extends TestCase {
/**
* @param array $methods
- * @return Notifier|\PHPUnit\Framework\MockObject\MockObject
+ * @return Notifier|MockObject
*/
- protected function getNotifier(array $methods = []) {
+ protected function getNotifier(array $methods = []): Notifier {
if (empty($methods)) {
return new Notifier(
$this->urlGenerator,
- $this->config,
+ $this->appConfig,
$this->notificationManager,
$this->l10nFactory,
$this->userSession,
@@ -67,7 +68,7 @@ class NotifierTest extends TestCase {
return $this->getMockBuilder(Notifier::class)
->setConstructorArgs([
$this->urlGenerator,
- $this->config,
+ $this->appConfig,
$this->notificationManager,
$this->l10nFactory,
$this->userSession,
@@ -80,7 +81,7 @@ class NotifierTest extends TestCase {
}
}
- public function dataUpdateAlreadyInstalledCheck(): array {
+ public static function dataUpdateAlreadyInstalledCheck(): array {
return [
['1.1.0', '1.0.0', false],
['1.1.0', '1.1.0', true],
@@ -90,10 +91,6 @@ class NotifierTest extends TestCase {
/**
* @dataProvider dataUpdateAlreadyInstalledCheck
- *
- * @param string $versionNotification
- * @param string $versionInstalled
- * @param bool $exception
*/
public function testUpdateAlreadyInstalledCheck(string $versionNotification, string $versionInstalled, bool $exception): void {
$notifier = $this->getNotifier();
diff --git a/apps/updatenotification/tests/Settings/AdminTest.php b/apps/updatenotification/tests/Settings/AdminTest.php
index ed0b12ab10f..cb815bc8b69 100644
--- a/apps/updatenotification/tests/Settings/AdminTest.php
+++ b/apps/updatenotification/tests/Settings/AdminTest.php
@@ -4,10 +4,12 @@ declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\UpdateNotification\Tests\Settings;
+use OCA\UpdateNotification\AppInfo\Application;
use OCA\UpdateNotification\Settings\Admin;
use OCA\UpdateNotification\UpdateChecker;
use OCP\AppFramework\Http\TemplateResponse;
@@ -20,34 +22,25 @@ use OCP\IGroupManager;
use OCP\IUserManager;
use OCP\L10N\IFactory;
use OCP\L10N\ILanguageIterator;
+use OCP\ServerVersion;
use OCP\Support\Subscription\IRegistry;
-use OCP\Util;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
class AdminTest extends TestCase {
- /** @var IFactory|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10nFactory;
- /** @var Admin */
- private $admin;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IAppConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $appConfig;
- /** @var UpdateChecker|\PHPUnit\Framework\MockObject\MockObject */
- private $updateChecker;
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- private $groupManager;
- /** @var IDateTimeFormatter|\PHPUnit\Framework\MockObject\MockObject */
- private $dateTimeFormatter;
- /** @var IRegistry|\PHPUnit\Framework\MockObject\MockObject */
- private $subscriptionRegistry;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logger;
- /** IInitialState|\PHPUnit\Framework\MockObject\MockObject */
- private $initialState;
+ private IFactory&MockObject $l10nFactory;
+ private IConfig&MockObject $config;
+ private IAppConfig&MockObject $appConfig;
+ private UpdateChecker&MockObject $updateChecker;
+ private IGroupManager&MockObject $groupManager;
+ private IDateTimeFormatter&MockObject $dateTimeFormatter;
+ private IRegistry&MockObject $subscriptionRegistry;
+ private IUserManager&MockObject $userManager;
+ private LoggerInterface&MockObject $logger;
+ private IInitialState&MockObject $initialState;
+ private ServerVersion&MockObject $serverVersion;
+ private Admin $admin;
protected function setUp(): void {
parent::setUp();
@@ -62,6 +55,7 @@ class AdminTest extends TestCase {
$this->userManager = $this->createMock(IUserManager::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->initialState = $this->createMock(IInitialState::class);
+ $this->serverVersion = $this->createMock(ServerVersion::class);
$this->admin = new Admin(
$this->config,
@@ -73,11 +67,15 @@ class AdminTest extends TestCase {
$this->subscriptionRegistry,
$this->userManager,
$this->logger,
- $this->initialState
+ $this->initialState,
+ $this->serverVersion,
);
}
public function testGetFormWithUpdate(): void {
+ $this->serverVersion->expects(self::atLeastOnce())
+ ->method('getChannel')
+ ->willReturn('daily');
$this->userManager
->expects($this->once())
->method('countUsersTotal')
@@ -88,26 +86,27 @@ class AdminTest extends TestCase {
'stable',
'production',
];
- $currentChannel = Util::getChannel();
- if ($currentChannel === 'git') {
- $channels[] = 'git';
- }
$this->appConfig
->expects($this->once())
->method('getValueInt')
->with('core', 'lastupdatedat', 0)
->willReturn(12345);
- $this->config
+ $this->appConfig
->expects($this->once())
- ->method('getAppValue')
- ->with('updatenotification', 'notify_groups', '["admin"]')
- ->willReturn('["admin"]');
+ ->method('getValueArray')
+ ->with(Application::APP_NAME, 'notify_groups', ['admin'])
+ ->willReturn(['admin']);
$this->config
->method('getSystemValue')
->willReturnMap([
['updater.server.url', 'https://updates.nextcloud.com/updater_server/', 'https://updates.nextcloud.com/updater_server/'],
['upgrade.disable-web', false, false],
]);
+ $this->config
+ ->expects(self::any())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(true);
$this->dateTimeFormatter
->expects($this->once())
->method('formatDateTime')
@@ -149,7 +148,7 @@ class AdminTest extends TestCase {
'isNewVersionAvailable' => true,
'isUpdateChecked' => true,
'lastChecked' => 'LastCheckedReturnValue',
- 'currentChannel' => Util::getChannel(),
+ 'currentChannel' => 'daily',
'channels' => $channels,
'newVersion' => '8.1.2',
'newVersionString' => 'Nextcloud 8.1.2',
@@ -167,11 +166,14 @@ class AdminTest extends TestCase {
'hasValidSubscription' => true,
]);
- $expected = new TemplateResponse('updatenotification', 'admin', [], '');
+ $expected = new TemplateResponse(Application::APP_NAME, 'admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());
}
public function testGetFormWithUpdateAndChangedUpdateServer(): void {
+ $this->serverVersion->expects(self::atLeastOnce())
+ ->method('getChannel')
+ ->willReturn('beta');
$this->userManager
->expects($this->once())
->method('countUsersTotal')
@@ -182,10 +184,6 @@ class AdminTest extends TestCase {
'stable',
'production',
];
- $currentChannel = Util::getChannel();
- if ($currentChannel === 'git') {
- $channels[] = 'git';
- }
$this->appConfig
->expects($this->once())
@@ -193,10 +191,15 @@ class AdminTest extends TestCase {
->with('core', 'lastupdatedat', 0)
->willReturn(12345);
$this->config
+ ->expects(self::any())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(true);
+ $this->appConfig
->expects($this->once())
- ->method('getAppValue')
- ->with('updatenotification', 'notify_groups', '["admin"]')
- ->willReturn('["admin"]');
+ ->method('getValueArray')
+ ->with(Application::APP_NAME, 'notify_groups', ['admin'])
+ ->willReturn(['admin']);
$this->config
->method('getSystemValue')
->willReturnMap([
@@ -244,7 +247,7 @@ class AdminTest extends TestCase {
'isNewVersionAvailable' => true,
'isUpdateChecked' => true,
'lastChecked' => 'LastCheckedReturnValue',
- 'currentChannel' => Util::getChannel(),
+ 'currentChannel' => 'beta',
'channels' => $channels,
'newVersion' => '8.1.2',
'newVersionString' => 'Nextcloud 8.1.2',
@@ -262,11 +265,14 @@ class AdminTest extends TestCase {
'hasValidSubscription' => true,
]);
- $expected = new TemplateResponse('updatenotification', 'admin', [], '');
+ $expected = new TemplateResponse(Application::APP_NAME, 'admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());
}
public function testGetFormWithUpdateAndCustomersUpdateServer(): void {
+ $this->serverVersion->expects(self::atLeastOnce())
+ ->method('getChannel')
+ ->willReturn('production');
$this->userManager
->expects($this->once())
->method('countUsersTotal')
@@ -277,10 +283,6 @@ class AdminTest extends TestCase {
'stable',
'production',
];
- $currentChannel = Util::getChannel();
- if ($currentChannel === 'git') {
- $channels[] = 'git';
- }
$this->appConfig
->expects($this->once())
@@ -288,10 +290,15 @@ class AdminTest extends TestCase {
->with('core', 'lastupdatedat', 0)
->willReturn(12345);
$this->config
- ->expects($this->once())
- ->method('getAppValue')
- ->with('updatenotification', 'notify_groups', '["admin"]')
- ->willReturn('["admin"]');
+ ->expects(self::any())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(true);
+ $this->appConfig
+ ->expects(self::once())
+ ->method('getValueArray')
+ ->with(Application::APP_NAME, 'notify_groups', ['admin'])
+ ->willReturn(['admin']);
$this->config
->method('getSystemValue')
->willReturnMap([
@@ -339,7 +346,7 @@ class AdminTest extends TestCase {
'isNewVersionAvailable' => true,
'isUpdateChecked' => true,
'lastChecked' => 'LastCheckedReturnValue',
- 'currentChannel' => Util::getChannel(),
+ 'currentChannel' => 'production',
'channels' => $channels,
'newVersion' => '8.1.2',
'newVersionString' => 'Nextcloud 8.1.2',
@@ -357,20 +364,36 @@ class AdminTest extends TestCase {
'hasValidSubscription' => true,
]);
- $expected = new TemplateResponse('updatenotification', 'admin', [], '');
+ $expected = new TemplateResponse(Application::APP_NAME, 'admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());
}
public function testGetSection(): void {
+ $this->config
+ ->expects(self::atLeastOnce())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(true);
+
$this->assertSame('overview', $this->admin->getSection());
}
+ public function testGetSectionDisabled(): void {
+ $this->config
+ ->expects(self::atLeastOnce())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(false);
+
+ $this->assertNull($this->admin->getSection());
+ }
+
public function testGetPriority(): void {
$this->assertSame(11, $this->admin->getPriority());
}
- public function changesProvider() {
+ public static function changesProvider(): array {
return [
[ #0, all info, en
[
diff --git a/apps/user_ldap/ajax/deleteConfiguration.php b/apps/user_ldap/ajax/deleteConfiguration.php
index f09295355ac..68bce69f982 100644
--- a/apps/user_ldap/ajax/deleteConfiguration.php
+++ b/apps/user_ldap/ajax/deleteConfiguration.php
@@ -1,8 +1,6 @@
<?php
use OCA\User_LDAP\Helper;
-use OCP\IConfig;
-use OCP\IDBConnection;
use OCP\Server;
use OCP\Util;
@@ -17,7 +15,7 @@ use OCP\Util;
\OC_JSON::callCheck();
$prefix = (string)$_POST['ldap_serverconfig_chooser'];
-$helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+$helper = Server::get(Helper::class);
if ($helper->deleteServerConfiguration($prefix)) {
\OC_JSON::success();
} else {
diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php
index e8746a7c1b1..e5ba6375c73 100644
--- a/apps/user_ldap/ajax/getNewServerConfigPrefix.php
+++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php
@@ -2,8 +2,6 @@
use OCA\User_LDAP\Configuration;
use OCA\User_LDAP\Helper;
-use OCP\IConfig;
-use OCP\IDBConnection;
use OCP\Server;
/**
@@ -16,7 +14,7 @@ use OCP\Server;
\OC_JSON::checkAppEnabled('user_ldap');
\OC_JSON::callCheck();
-$helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+$helper = Server::get(Helper::class);
$serverConnections = $helper->getServerConfigurationPrefixes();
sort($serverConnections);
$lk = array_pop($serverConnections);
diff --git a/apps/user_ldap/css/renewPassword.css b/apps/user_ldap/css/renewPassword.css
index 0fe8c4d183e..8acd97254fa 100644
--- a/apps/user_ldap/css/renewPassword.css
+++ b/apps/user_ldap/css/renewPassword.css
@@ -33,7 +33,6 @@
letter-spacing:normal;
line-break:auto;
line-height:1.6;
- text-align:left;
text-align:start;
text-decoration:none;
text-shadow:none;
diff --git a/apps/user_ldap/css/settings.css b/apps/user_ldap/css/settings.css
index 3aa9b2a168e..a1048031fa2 100644
--- a/apps/user_ldap/css/settings.css
+++ b/apps/user_ldap/css/settings.css
@@ -202,10 +202,12 @@ select[multiple=multiple] + button {
width: 16px;
vertical-align: text-bottom;
}
+
.ldap_config_state_indicator_sign.success {
background: #37ce02;
border-radius: 8px;
}
+
.ldap_config_state_indicator_sign.error {
background: #ce3702;
}
diff --git a/apps/user_ldap/l10n/ach.js b/apps/user_ldap/l10n/ach.js
deleted file mode 100644
index 95c97db2f9c..00000000000
--- a/apps/user_ldap/l10n/ach.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_ldap/l10n/ach.json b/apps/user_ldap/l10n/ach.json
deleted file mode 100644
index 8e0cd6f6783..00000000000
--- a/apps/user_ldap/l10n/ach.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ady.js b/apps/user_ldap/l10n/ady.js
deleted file mode 100644
index 37042a4f412..00000000000
--- a/apps/user_ldap/l10n/ady.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/ady.json b/apps/user_ldap/l10n/ady.json
deleted file mode 100644
index 521de7ba1a8..00000000000
--- a/apps/user_ldap/l10n/ady.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ak.js b/apps/user_ldap/l10n/ak.js
deleted file mode 100644
index a88c80b7933..00000000000
--- a/apps/user_ldap/l10n/ak.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=n > 1;");
diff --git a/apps/user_ldap/l10n/ak.json b/apps/user_ldap/l10n/ak.json
deleted file mode 100644
index 58fcef711ee..00000000000
--- a/apps/user_ldap/l10n/ak.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=n > 1;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/am_ET.js b/apps/user_ldap/l10n/am_ET.js
deleted file mode 100644
index 37042a4f412..00000000000
--- a/apps/user_ldap/l10n/am_ET.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/am_ET.json b/apps/user_ldap/l10n/am_ET.json
deleted file mode 100644
index 521de7ba1a8..00000000000
--- a/apps/user_ldap/l10n/am_ET.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ast.js b/apps/user_ldap/l10n/ast.js
deleted file mode 100644
index 2561ee32f6b..00000000000
--- a/apps/user_ldap/l10n/ast.js
+++ /dev/null
@@ -1,152 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to clear the mappings." : "Fallu al llimpiar los mapeos.",
- "Failed to delete the server configuration" : "Fallu al desaniciar la configuración del sirvidor",
- "Valid configuration, connection established!" : "¡Configuración válida, afitóse la conexón!",
- "Invalid configuration. Please have a look at the logs for further details." : "Configuración non válida. Écha-yos un güeyu a los rexistros pa más detalles, por favor.",
- "No action specified" : "Nun s'especificó l'aición",
- "No configuration specified" : "Nun s'especificó la configuración",
- "No data specified" : "Nun s'especificaron los datos",
- " Could not set configuration %s" : "Nun pudo afitase la configuración %s",
- "Action does not exist" : "L'acción nun esiste",
- "Renewing …" : "Renovando...",
- "Very weak password" : "Contraseña perfeble",
- "Weak password" : "Contraseña feble",
- "So-so password" : "Contraseña normalina",
- "Good password" : "Contraseña bona",
- "Strong password" : "Contraseña fuerte",
- "The Base DN appears to be wrong" : "La base DN paez tar mal",
- "Testing configuration…" : "Probando configuración...",
- "Configuration incorrect" : "Configuración incorreuta",
- "Configuration incomplete" : "Configuración incompleta",
- "Configuration OK" : "Configuración correuta",
- "Select groups" : "Esbillar grupos",
- "Select object classes" : "Esbillar les clases d'oxetu",
- "Please check the credentials, they seem to be wrong." : "Por favor, compruebe les credenciales, que paecen tar mal.",
- "Please specify the port, it could not be auto-detected." : "Por favor especifica'l puertu, nun puede ser detectáu automáticamente .",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN nun puede ser detectada automáticamente, por favor revisa les credenciales, host yá'l puertu.",
- "Could not detect Base DN, please enter it manually." : "Nun se detectó base DN, por favor introduzla manualmente .",
- "{nthServer}. Server" : "{nthServer}. Sirvidor",
- "No object found in the given Base DN. Please revise." : "Nun s'atopó nengún oxetu na Base DN dada. Por favor, revísalo.",
- "More than 1,000 directory entries available." : "Más de 1.000 entraes de directoriu disponibles.",
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Asocedió un erru. Por favor, compruebe la Base DN , amás de la configuración de conexón y les credenciales.",
- "Do you really want to delete the current Server Configuration?" : "¿Daveres que quies desaniciar la configuración actual del sirvidor?",
- "Confirm Deletion" : "Confirmar desaniciu",
- "Mappings cleared successfully!" : "¡Asignaciones borraes correutamente!",
- "Error while clearing the mappings." : "Fallu mientres desaniciaben les asignaciones.",
- "Anonymous bind is not allowed. Please provide a User DN and Password." : "Nun s'almite l'enllaz anónimu. Por favor apurre un usuariu DN y contraseña.",
- "LDAP Operations error. Anonymous bind might not be allowed." : "Erru d'operaciones LDAP . Enllaz anónimu nun s'almite.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Nun pudo guardase. Por favor asegúrate que la base de datos ta en funcionamientu. Actualiza enantes de siguir.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar el mou va habilitar les consultes LDAP automátiques . Dependiendo del to tamañu de LDAP puede llevar un tiempu. ¿Inda deseya camudar el mou?",
- "Select attributes" : "Esbillar atributos",
- "User found and settings verified." : "Usuariu atopáu y la configuración verificada.",
- "An unspecified error occurred. Please check log and settings." : "Asocedió un fallu non especificáu. Comprueba'l rexistru y los axustes, por favor.",
- "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtru de busca nun ye válidu , probablemente por cuenta de problemes de sintaxis como'l númberu impar de soportes abiertos y zarraos. Por favor revisalo.",
- "Please provide a login name to test against" : "Por favor, proporcione un nombre de inicio de sesión para comprobar en contra",
- "Your password will expire today." : "Güei caduca la to contraseña.",
- "Could not find the desired feature" : "Nun pudo alcontrase la carauterística deseyada",
- "Invalid Host" : "Agospiu non válidu",
- "Test Configuration" : "Configuración de prueba",
- "Help" : "Ayuda",
- "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios tán disponibles en %s:",
- "Only these object classes:" : "Namái d'estes clases d'oxetu:",
- "Only from these groups:" : "Namái d'estos grupos:",
- "Search groups" : "Esbillar grupos",
- "Available groups" : "Grupos disponibles",
- "Selected groups" : "Grupos seleicionaos",
- "Edit LDAP Query" : "Editar consulta LDAP",
- "LDAP Filter:" : "Filtru LDAP:",
- "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtru especifica qué grupos LDAP van tener accesu a %s.",
- "Verify settings and count the groups" : "Verificar axustes y contar los grupos",
- "When logging in, %s will find the user based on the following attributes:" : "Al empecipiar sesión, %s atópase l'usuariu en función de los siguientes atributos :",
- "Other Attributes:" : "Otros atributos:",
- "Test Loginname" : "Preba de Nome d'Aniciu de Sesión",
- "Verify settings" : "Comprobar los axustes",
- "%s. Server:" : "%s. Sirvidor:",
- "Copy current configuration into new directory binding" : "Copiar configuración actual nel nuevu directoriu obligatoriu",
- "Delete the current configuration" : "Desaniciar la configuración actual",
- "Host" : "Equipu",
- "Port" : "Puertu",
- "Detect Port" : "Detectar Puertu",
- "User DN" : "DN usuariu",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del usuariu veceru col que va facese l'asociación, p.ex. uid=axente,dc=exemplu,dc=com. P'accesu anónimu, dexa DN y contraseña baleros.",
- "Password" : "Contraseña",
- "For anonymous access, leave DN and Password empty." : "Pa un accesu anónimu, dexar el DN y la contraseña baleros.",
- "One Base DN per line" : "Un DN Base por llinia",
- "You can specify Base DN for users and groups in the Advanced tab" : "Pues especificar el DN base pa usuarios y grupos na llingüeta Avanzáu",
- "Detect Base DN" : "Detectar Base DN",
- "Test Base DN" : "Probar Base DN",
- "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita peticiones automátiques de LDAP. Meyor pa grandes configuraciones, pero rique mayor conocimientu de LDAP.",
- "Manually enter LDAP filters (recommended for large directories)" : "Inxerta manualmente los filtros de LDAP (recomendáu pa direutorios llargos)",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Les clases d'oxetos más comunes pa los usuarios d'Internet son organizationalPerson, persona, usuariu y inetOrgPerson . Si nun ta seguro de qué clase d'oxetu escoyer, por favor consulte al so alministrador de directorios.",
- "The filter specifies which LDAP users shall have access to the %s instance." : "El filtru especifica qué usuarios LDAP puen tener accesu a %s.",
- "Verify settings and count users" : "Comprobar la configuración y usuarios de recuentu",
- "Saving" : "Guardando",
- "Back" : "Atrás",
- "Continue" : "Continuar",
- "Please renew your password." : "Renueva la to contraseña, por favor.",
- "An internal error occurred." : "Asocedió un fallu internu.",
- "Please try again or contact your administrator." : "Volvi tentalo o contauta col to alministrador, por favor.",
- "Current password" : "Contraseña actual",
- "New password" : "Contraseña nueva",
- "Renew password" : "Renovar contraseña",
- "Wrong password." : "Contraseña incorreuta.",
- "Cancel" : "Encaboxar",
- "Server" : "Sirvidor",
- "Users" : "Usuarios",
- "Login Attributes" : "Los atributos d'aniciu de sesión",
- "Groups" : "Grupos",
- "Expert" : "Espertu",
- "Advanced" : "Avanzáu",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Avisu:</b> El módulu LDAP de PHP nun ta instaláu, el sistema nun va funcionar. Por favor consulta al alministrador del sistema pa instalalu.",
- "Connection Settings" : "Axustes de conexón",
- "Configuration Active" : "Configuración activa",
- "When unchecked, this configuration will be skipped." : "Cuando nun tea conseñáu, saltaráse esta configuración.",
- "Backup (Replica) Host" : "Sirvidor de copia de seguranza (Réplica)",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Dar un sirvidor de copia de seguranza opcional. Tien de ser una réplica del sirvidor principal LDAP / AD.",
- "Backup (Replica) Port" : "Puertu pa copies de seguranza (Réplica)",
- "Disable Main Server" : "Deshabilitar sirvidor principal",
- "Only connect to the replica server." : "Coneutar namái col sirvidor de réplica.",
- "Turn off SSL certificate validation." : "Apagar la validación del certificáu SSL.",
- "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Nun se recomienda, ¡úsalu namái pa pruebes! Si la conexón namái funciona con esta opción, importa'l certificáu SSL del sirvidor LDAP nel to sirvidor %s.",
- "Cache Time-To-Live" : "Cache Time-To-Live",
- "in seconds. A change empties the cache." : "en segundos. Un cambéu vacia la caché.",
- "Directory Settings" : "Axustes del direutoriu",
- "User Display Name Field" : "Campu de nome d'usuariu a amosar",
- "The LDAP attribute to use to generate the user's display name." : "El campu LDAP a usar pa xenerar el nome p'amosar del usuariu.",
- "2nd User Display Name Field" : "2ª usuariu amuesa Nome del campu",
- "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributu LDAP que s'amesta al nome de visualización ente paréntesis. Los resultaos en, por exemplu, »John Doe (john.doe@example.org)«.",
- "Base User Tree" : "Árbol base d'usuariu",
- "One User Base DN per line" : "Un DN Base d'Usuariu por llinia",
- "User Search Attributes" : "Atributos de la gueta d'usuariu",
- "Optional; one attribute per line" : "Opcional; un atributu por llinia",
- "Group Display Name Field" : "Campu de nome de grupu a amosar",
- "The LDAP attribute to use to generate the groups's display name." : "El campu LDAP a usar pa xenerar el nome p'amosar del grupu.",
- "Base Group Tree" : "Árbol base de grupu",
- "One Group Base DN per line" : "Un DN Base de Grupu por llinia",
- "Group Search Attributes" : "Atributos de gueta de grupu",
- "Group-Member association" : "Asociación Grupu-Miembru",
- "Dynamic Group Member URL" : "URL Dinámica de Grupu d'Usuarios",
- "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "L'atributu LDAP que nos oxetos de grupu contien una gueta de URLs de LDAP que determina qué oxetos pertenecen al grupu. (Un axuste vacíu desanicia la funcionalidá dinámica de pertenencia al grupu.)",
- "Nested Groups" : "Grupos añeraos",
- "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando s'active, van permitise grupos que contengan otros grupos (namái funciona si l'atributu de miembru de grupu contién DNs).",
- "Paging chunksize" : "Tamañu de los fragmentos de paxinación",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Tamañu de los fragmentos usáu pa busques LDAP paxinaes que puen devolver resultaos voluminosos, como enubmeración d'usuarios o de grupos. (Si s'afita en 0, van deshabilitase les busques LDAP paxinaes neses situaciones.)",
- "(New password is sent as plain text to LDAP)" : "(La contraseña únviase como testu planu a LDAP)",
- "Special Attributes" : "Atributos especiales",
- "Quota Field" : "Cuota",
- "Quota Default" : "Cuota por defeutu",
- "Email Field" : "E-mail",
- "User Home Folder Naming Rule" : "Regla pa la carpeta Home d'usuariu",
- "Internal Username" : "Nome d'usuariu internu",
- "Internal Username Attribute:" : "Atributu Nome d'usuariu Internu:",
- "Override UUID detection" : "Sobrescribir la deteición UUID",
- "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defeutu, l'atributu UUID autodetéutase. Esti atributu úsase pa identificar induldablemente usuarios y grupos LDAP. Arriendes, el nome d'usuariu internu va crease en bas al UUID, si nun s'especificó otru comportamientu arriba. Pues sobrescribir la configuración y pasar un atributu de la to eleición. Tienes d'asegurate de que l'atributu de la to eleición seya accesible polos usuarios y grupos y ser únicu. Déxalu en blanco pa usar el comportamientu por defeutu. Los cambeos van tener efeutu namái nos usuarios y grupos de LDAP mapeaos (amestaos) recién.",
- "UUID Attribute for Users:" : "Atributu UUID pa usuarios:",
- "UUID Attribute for Groups:" : "Atributu UUID pa Grupos:",
- "Username-LDAP User Mapping" : "Asignación del Nome d'usuariu LDAP",
- "Clear Username-LDAP User Mapping" : "Llimpiar l'asignación de los Nomes d'usuariu de los usuarios LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Llimpiar l'asignación de los Nomes de grupu de los grupos de LDAP"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/ast.json b/apps/user_ldap/l10n/ast.json
deleted file mode 100644
index 8d3e332c21f..00000000000
--- a/apps/user_ldap/l10n/ast.json
+++ /dev/null
@@ -1,150 +0,0 @@
-{ "translations": {
- "Failed to clear the mappings." : "Fallu al llimpiar los mapeos.",
- "Failed to delete the server configuration" : "Fallu al desaniciar la configuración del sirvidor",
- "Valid configuration, connection established!" : "¡Configuración válida, afitóse la conexón!",
- "Invalid configuration. Please have a look at the logs for further details." : "Configuración non válida. Écha-yos un güeyu a los rexistros pa más detalles, por favor.",
- "No action specified" : "Nun s'especificó l'aición",
- "No configuration specified" : "Nun s'especificó la configuración",
- "No data specified" : "Nun s'especificaron los datos",
- " Could not set configuration %s" : "Nun pudo afitase la configuración %s",
- "Action does not exist" : "L'acción nun esiste",
- "Renewing …" : "Renovando...",
- "Very weak password" : "Contraseña perfeble",
- "Weak password" : "Contraseña feble",
- "So-so password" : "Contraseña normalina",
- "Good password" : "Contraseña bona",
- "Strong password" : "Contraseña fuerte",
- "The Base DN appears to be wrong" : "La base DN paez tar mal",
- "Testing configuration…" : "Probando configuración...",
- "Configuration incorrect" : "Configuración incorreuta",
- "Configuration incomplete" : "Configuración incompleta",
- "Configuration OK" : "Configuración correuta",
- "Select groups" : "Esbillar grupos",
- "Select object classes" : "Esbillar les clases d'oxetu",
- "Please check the credentials, they seem to be wrong." : "Por favor, compruebe les credenciales, que paecen tar mal.",
- "Please specify the port, it could not be auto-detected." : "Por favor especifica'l puertu, nun puede ser detectáu automáticamente .",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN nun puede ser detectada automáticamente, por favor revisa les credenciales, host yá'l puertu.",
- "Could not detect Base DN, please enter it manually." : "Nun se detectó base DN, por favor introduzla manualmente .",
- "{nthServer}. Server" : "{nthServer}. Sirvidor",
- "No object found in the given Base DN. Please revise." : "Nun s'atopó nengún oxetu na Base DN dada. Por favor, revísalo.",
- "More than 1,000 directory entries available." : "Más de 1.000 entraes de directoriu disponibles.",
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Asocedió un erru. Por favor, compruebe la Base DN , amás de la configuración de conexón y les credenciales.",
- "Do you really want to delete the current Server Configuration?" : "¿Daveres que quies desaniciar la configuración actual del sirvidor?",
- "Confirm Deletion" : "Confirmar desaniciu",
- "Mappings cleared successfully!" : "¡Asignaciones borraes correutamente!",
- "Error while clearing the mappings." : "Fallu mientres desaniciaben les asignaciones.",
- "Anonymous bind is not allowed. Please provide a User DN and Password." : "Nun s'almite l'enllaz anónimu. Por favor apurre un usuariu DN y contraseña.",
- "LDAP Operations error. Anonymous bind might not be allowed." : "Erru d'operaciones LDAP . Enllaz anónimu nun s'almite.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Nun pudo guardase. Por favor asegúrate que la base de datos ta en funcionamientu. Actualiza enantes de siguir.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar el mou va habilitar les consultes LDAP automátiques . Dependiendo del to tamañu de LDAP puede llevar un tiempu. ¿Inda deseya camudar el mou?",
- "Select attributes" : "Esbillar atributos",
- "User found and settings verified." : "Usuariu atopáu y la configuración verificada.",
- "An unspecified error occurred. Please check log and settings." : "Asocedió un fallu non especificáu. Comprueba'l rexistru y los axustes, por favor.",
- "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtru de busca nun ye válidu , probablemente por cuenta de problemes de sintaxis como'l númberu impar de soportes abiertos y zarraos. Por favor revisalo.",
- "Please provide a login name to test against" : "Por favor, proporcione un nombre de inicio de sesión para comprobar en contra",
- "Your password will expire today." : "Güei caduca la to contraseña.",
- "Could not find the desired feature" : "Nun pudo alcontrase la carauterística deseyada",
- "Invalid Host" : "Agospiu non válidu",
- "Test Configuration" : "Configuración de prueba",
- "Help" : "Ayuda",
- "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios tán disponibles en %s:",
- "Only these object classes:" : "Namái d'estes clases d'oxetu:",
- "Only from these groups:" : "Namái d'estos grupos:",
- "Search groups" : "Esbillar grupos",
- "Available groups" : "Grupos disponibles",
- "Selected groups" : "Grupos seleicionaos",
- "Edit LDAP Query" : "Editar consulta LDAP",
- "LDAP Filter:" : "Filtru LDAP:",
- "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtru especifica qué grupos LDAP van tener accesu a %s.",
- "Verify settings and count the groups" : "Verificar axustes y contar los grupos",
- "When logging in, %s will find the user based on the following attributes:" : "Al empecipiar sesión, %s atópase l'usuariu en función de los siguientes atributos :",
- "Other Attributes:" : "Otros atributos:",
- "Test Loginname" : "Preba de Nome d'Aniciu de Sesión",
- "Verify settings" : "Comprobar los axustes",
- "%s. Server:" : "%s. Sirvidor:",
- "Copy current configuration into new directory binding" : "Copiar configuración actual nel nuevu directoriu obligatoriu",
- "Delete the current configuration" : "Desaniciar la configuración actual",
- "Host" : "Equipu",
- "Port" : "Puertu",
- "Detect Port" : "Detectar Puertu",
- "User DN" : "DN usuariu",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del usuariu veceru col que va facese l'asociación, p.ex. uid=axente,dc=exemplu,dc=com. P'accesu anónimu, dexa DN y contraseña baleros.",
- "Password" : "Contraseña",
- "For anonymous access, leave DN and Password empty." : "Pa un accesu anónimu, dexar el DN y la contraseña baleros.",
- "One Base DN per line" : "Un DN Base por llinia",
- "You can specify Base DN for users and groups in the Advanced tab" : "Pues especificar el DN base pa usuarios y grupos na llingüeta Avanzáu",
- "Detect Base DN" : "Detectar Base DN",
- "Test Base DN" : "Probar Base DN",
- "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita peticiones automátiques de LDAP. Meyor pa grandes configuraciones, pero rique mayor conocimientu de LDAP.",
- "Manually enter LDAP filters (recommended for large directories)" : "Inxerta manualmente los filtros de LDAP (recomendáu pa direutorios llargos)",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Les clases d'oxetos más comunes pa los usuarios d'Internet son organizationalPerson, persona, usuariu y inetOrgPerson . Si nun ta seguro de qué clase d'oxetu escoyer, por favor consulte al so alministrador de directorios.",
- "The filter specifies which LDAP users shall have access to the %s instance." : "El filtru especifica qué usuarios LDAP puen tener accesu a %s.",
- "Verify settings and count users" : "Comprobar la configuración y usuarios de recuentu",
- "Saving" : "Guardando",
- "Back" : "Atrás",
- "Continue" : "Continuar",
- "Please renew your password." : "Renueva la to contraseña, por favor.",
- "An internal error occurred." : "Asocedió un fallu internu.",
- "Please try again or contact your administrator." : "Volvi tentalo o contauta col to alministrador, por favor.",
- "Current password" : "Contraseña actual",
- "New password" : "Contraseña nueva",
- "Renew password" : "Renovar contraseña",
- "Wrong password." : "Contraseña incorreuta.",
- "Cancel" : "Encaboxar",
- "Server" : "Sirvidor",
- "Users" : "Usuarios",
- "Login Attributes" : "Los atributos d'aniciu de sesión",
- "Groups" : "Grupos",
- "Expert" : "Espertu",
- "Advanced" : "Avanzáu",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Avisu:</b> El módulu LDAP de PHP nun ta instaláu, el sistema nun va funcionar. Por favor consulta al alministrador del sistema pa instalalu.",
- "Connection Settings" : "Axustes de conexón",
- "Configuration Active" : "Configuración activa",
- "When unchecked, this configuration will be skipped." : "Cuando nun tea conseñáu, saltaráse esta configuración.",
- "Backup (Replica) Host" : "Sirvidor de copia de seguranza (Réplica)",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Dar un sirvidor de copia de seguranza opcional. Tien de ser una réplica del sirvidor principal LDAP / AD.",
- "Backup (Replica) Port" : "Puertu pa copies de seguranza (Réplica)",
- "Disable Main Server" : "Deshabilitar sirvidor principal",
- "Only connect to the replica server." : "Coneutar namái col sirvidor de réplica.",
- "Turn off SSL certificate validation." : "Apagar la validación del certificáu SSL.",
- "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Nun se recomienda, ¡úsalu namái pa pruebes! Si la conexón namái funciona con esta opción, importa'l certificáu SSL del sirvidor LDAP nel to sirvidor %s.",
- "Cache Time-To-Live" : "Cache Time-To-Live",
- "in seconds. A change empties the cache." : "en segundos. Un cambéu vacia la caché.",
- "Directory Settings" : "Axustes del direutoriu",
- "User Display Name Field" : "Campu de nome d'usuariu a amosar",
- "The LDAP attribute to use to generate the user's display name." : "El campu LDAP a usar pa xenerar el nome p'amosar del usuariu.",
- "2nd User Display Name Field" : "2ª usuariu amuesa Nome del campu",
- "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributu LDAP que s'amesta al nome de visualización ente paréntesis. Los resultaos en, por exemplu, »John Doe (john.doe@example.org)«.",
- "Base User Tree" : "Árbol base d'usuariu",
- "One User Base DN per line" : "Un DN Base d'Usuariu por llinia",
- "User Search Attributes" : "Atributos de la gueta d'usuariu",
- "Optional; one attribute per line" : "Opcional; un atributu por llinia",
- "Group Display Name Field" : "Campu de nome de grupu a amosar",
- "The LDAP attribute to use to generate the groups's display name." : "El campu LDAP a usar pa xenerar el nome p'amosar del grupu.",
- "Base Group Tree" : "Árbol base de grupu",
- "One Group Base DN per line" : "Un DN Base de Grupu por llinia",
- "Group Search Attributes" : "Atributos de gueta de grupu",
- "Group-Member association" : "Asociación Grupu-Miembru",
- "Dynamic Group Member URL" : "URL Dinámica de Grupu d'Usuarios",
- "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "L'atributu LDAP que nos oxetos de grupu contien una gueta de URLs de LDAP que determina qué oxetos pertenecen al grupu. (Un axuste vacíu desanicia la funcionalidá dinámica de pertenencia al grupu.)",
- "Nested Groups" : "Grupos añeraos",
- "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando s'active, van permitise grupos que contengan otros grupos (namái funciona si l'atributu de miembru de grupu contién DNs).",
- "Paging chunksize" : "Tamañu de los fragmentos de paxinación",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Tamañu de los fragmentos usáu pa busques LDAP paxinaes que puen devolver resultaos voluminosos, como enubmeración d'usuarios o de grupos. (Si s'afita en 0, van deshabilitase les busques LDAP paxinaes neses situaciones.)",
- "(New password is sent as plain text to LDAP)" : "(La contraseña únviase como testu planu a LDAP)",
- "Special Attributes" : "Atributos especiales",
- "Quota Field" : "Cuota",
- "Quota Default" : "Cuota por defeutu",
- "Email Field" : "E-mail",
- "User Home Folder Naming Rule" : "Regla pa la carpeta Home d'usuariu",
- "Internal Username" : "Nome d'usuariu internu",
- "Internal Username Attribute:" : "Atributu Nome d'usuariu Internu:",
- "Override UUID detection" : "Sobrescribir la deteición UUID",
- "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defeutu, l'atributu UUID autodetéutase. Esti atributu úsase pa identificar induldablemente usuarios y grupos LDAP. Arriendes, el nome d'usuariu internu va crease en bas al UUID, si nun s'especificó otru comportamientu arriba. Pues sobrescribir la configuración y pasar un atributu de la to eleición. Tienes d'asegurate de que l'atributu de la to eleición seya accesible polos usuarios y grupos y ser únicu. Déxalu en blanco pa usar el comportamientu por defeutu. Los cambeos van tener efeutu namái nos usuarios y grupos de LDAP mapeaos (amestaos) recién.",
- "UUID Attribute for Users:" : "Atributu UUID pa usuarios:",
- "UUID Attribute for Groups:" : "Atributu UUID pa Grupos:",
- "Username-LDAP User Mapping" : "Asignación del Nome d'usuariu LDAP",
- "Clear Username-LDAP User Mapping" : "Llimpiar l'asignación de los Nomes d'usuariu de los usuarios LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Llimpiar l'asignación de los Nomes de grupu de los grupos de LDAP"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/az.js b/apps/user_ldap/l10n/az.js
deleted file mode 100644
index b431ba72723..00000000000
--- a/apps/user_ldap/l10n/az.js
+++ /dev/null
@@ -1,37 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to clear the mappings." : "Xəritələnməni silmək mümkün olmadı",
- "Failed to delete the server configuration" : "Server configini silmək mümkün olmadı",
- "The configuration is valid and the connection could be established!" : "Configurasiya doğrudur və qoşulmaq mümkündür!",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Configurasiya doğrudur yalnız, birləşmədə səhv oldu. Xahiş olunur server quraşdırmalarını və daxil etdiyiniz verilənlərin düzgünlüyünü yoxlayasınız.",
- "The configuration is invalid. Please have a look at the logs for further details." : "Configurasiya dügün deyil. Əlavə detallar üçün xahiş edirik jurnal faylına baxasınız.",
- "No action specified" : "Heç bir iş təyin edilməyib",
- "No configuration specified" : "Təyin edilmiş konfiqurasiya yoxdur",
- "No data specified" : "Təyin edilmiş data yoxdur",
- " Could not set configuration %s" : "%s configi təyin etmək mümkün olmadı",
- "Configuration incorrect" : "Konfiqurasiya düzgün deyil",
- "Configuration incomplete" : "Konfiqruasiya bitmiş deyil",
- "Configuration OK" : "Konfiqurasiya OK-dir",
- "Select groups" : "Qrupları seç",
- "Select object classes" : "object class-larını seç",
- "{nthServer}. Server" : "{nthServer}. Server",
- "Do you really want to delete the current Server Configuration?" : "Siz hal-hazırki server konfiqini silmək istədiyinizdən həqiqətən əminsinizmi?",
- "Confirm Deletion" : "Silinmənin təsdiqi",
- "Select attributes" : "Atributları seç",
- "_%s group found_::_%s groups found_" : ["%s qruplar tapıldı","%s qruplar tapıldı"],
- "_%s user found_::_%s users found_" : ["%s istifadəçilər tapıldı","%s istifadəçilər tapıldı"],
- "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "İstifadəçinin ekran atributu adını təyin etmək mümkün deyil. Xahiş olunur sizin özünüz onu əllə ldap konfiqində təyin edəsiniz.",
- "Could not find the desired feature" : "Arzulanılan imkanı tapmaq mümkün deyil",
- "Invalid Host" : "Yalnış Host",
- "Server" : "Server",
- "Users" : "İstifadəçilər",
- "Groups" : "Qruplar",
- "Test Configuration" : "Konfiqurasiya testi",
- "Help" : "Kömək",
- "Host" : "Şəbəkədə ünvan",
- "Port" : "Port",
- "Password" : "Şifrə",
- "Advanced" : "İrəliləmiş"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/az.json b/apps/user_ldap/l10n/az.json
deleted file mode 100644
index aa5e52cb346..00000000000
--- a/apps/user_ldap/l10n/az.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{ "translations": {
- "Failed to clear the mappings." : "Xəritələnməni silmək mümkün olmadı",
- "Failed to delete the server configuration" : "Server configini silmək mümkün olmadı",
- "The configuration is valid and the connection could be established!" : "Configurasiya doğrudur və qoşulmaq mümkündür!",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Configurasiya doğrudur yalnız, birləşmədə səhv oldu. Xahiş olunur server quraşdırmalarını və daxil etdiyiniz verilənlərin düzgünlüyünü yoxlayasınız.",
- "The configuration is invalid. Please have a look at the logs for further details." : "Configurasiya dügün deyil. Əlavə detallar üçün xahiş edirik jurnal faylına baxasınız.",
- "No action specified" : "Heç bir iş təyin edilməyib",
- "No configuration specified" : "Təyin edilmiş konfiqurasiya yoxdur",
- "No data specified" : "Təyin edilmiş data yoxdur",
- " Could not set configuration %s" : "%s configi təyin etmək mümkün olmadı",
- "Configuration incorrect" : "Konfiqurasiya düzgün deyil",
- "Configuration incomplete" : "Konfiqruasiya bitmiş deyil",
- "Configuration OK" : "Konfiqurasiya OK-dir",
- "Select groups" : "Qrupları seç",
- "Select object classes" : "object class-larını seç",
- "{nthServer}. Server" : "{nthServer}. Server",
- "Do you really want to delete the current Server Configuration?" : "Siz hal-hazırki server konfiqini silmək istədiyinizdən həqiqətən əminsinizmi?",
- "Confirm Deletion" : "Silinmənin təsdiqi",
- "Select attributes" : "Atributları seç",
- "_%s group found_::_%s groups found_" : ["%s qruplar tapıldı","%s qruplar tapıldı"],
- "_%s user found_::_%s users found_" : ["%s istifadəçilər tapıldı","%s istifadəçilər tapıldı"],
- "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "İstifadəçinin ekran atributu adını təyin etmək mümkün deyil. Xahiş olunur sizin özünüz onu əllə ldap konfiqində təyin edəsiniz.",
- "Could not find the desired feature" : "Arzulanılan imkanı tapmaq mümkün deyil",
- "Invalid Host" : "Yalnış Host",
- "Server" : "Server",
- "Users" : "İstifadəçilər",
- "Groups" : "Qruplar",
- "Test Configuration" : "Konfiqurasiya testi",
- "Help" : "Kömək",
- "Host" : "Şəbəkədə ünvan",
- "Port" : "Port",
- "Password" : "Şifrə",
- "Advanced" : "İrəliləmiş"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/be.js b/apps/user_ldap/l10n/be.js
deleted file mode 100644
index 99117026327..00000000000
--- a/apps/user_ldap/l10n/be.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Advanced" : "Дасведчаны"
-},
-"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/user_ldap/l10n/be.json b/apps/user_ldap/l10n/be.json
deleted file mode 100644
index 987589ccd81..00000000000
--- a/apps/user_ldap/l10n/be.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Advanced" : "Дасведчаны"
-},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/bg.js b/apps/user_ldap/l10n/bg.js
index 6daa97a170b..4cef2c94481 100644
--- a/apps/user_ldap/l10n/bg.js
+++ b/apps/user_ldap/l10n/bg.js
@@ -199,6 +199,9 @@ OC.L10N.register(
"User profile Headline will be set from the specified attribute" : "Заглавието на потребителския профил ще бъде зададено от определения атрибут",
"Biography Field" : "Поле за Биография",
"User profile Biography will be set from the specified attribute" : "Биографията на потребителския профил ще бъде зададена от определения атрибут",
+ "User profile Date of birth will be set from the specified attribute" : "Датата на раждане в потребителския профил ще се зададе от този атрибут",
+ "Pronouns Field" : "Поле за обръщение",
+ "User profile Pronouns 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/bg.json b/apps/user_ldap/l10n/bg.json
index df01a29b205..edb583c67e1 100644
--- a/apps/user_ldap/l10n/bg.json
+++ b/apps/user_ldap/l10n/bg.json
@@ -197,6 +197,9 @@
"User profile Headline will be set from the specified attribute" : "Заглавието на потребителския профил ще бъде зададено от определения атрибут",
"Biography Field" : "Поле за Биография",
"User profile Biography will be set from the specified attribute" : "Биографията на потребителския профил ще бъде зададена от определения атрибут",
+ "User profile Date of birth will be set from the specified attribute" : "Датата на раждане в потребителския профил ще се зададе от този атрибут",
+ "Pronouns Field" : "Поле за обръщение",
+ "User profile Pronouns 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/bn_BD.js b/apps/user_ldap/l10n/bn_BD.js
deleted file mode 100644
index c74a22160e6..00000000000
--- a/apps/user_ldap/l10n/bn_BD.js
+++ /dev/null
@@ -1,80 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to clear the mappings." : "মানচিত্রায়ন মুছতে ব্যার্থ হলো।",
- "Failed to delete the server configuration" : "সার্ভার কনফিগারেশন মোছা ব্যার্থ হলো",
- "The configuration is valid and the connection could be established!" : "কনফিগারেশনটি বৈধ এবং যোগাযোগ প্রতিষ্ঠা করা যায়!",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "কনফিগারেশনটি বৈধ তবে Bind ব্যার্থ। দয়া করে সার্ভার নিয়ামকসমূহ এবং ব্যবহারকারী পরীক্ষা করুন।",
- "The configuration is invalid. Please have a look at the logs for further details." : "কনফিহারেশনটি অবৈধ। বিস্তারিত জানতে দয়া করে লগ দেখুন।",
- "No action specified" : "কোন কার্যাদেশ সুনির্দিষ্ট নয়",
- "No configuration specified" : " কোন কনফিগারেসন সুনির্দিষ্ট নয়",
- "No data specified" : "কোন ডাটা সুনির্দিষ্ট নয়",
- " Could not set configuration %s" : "%s কনফিগারেসন ঠিক করা গেল না",
- "Configuration incorrect" : "ভুল কনফিগারেসন",
- "Configuration incomplete" : "অসম্পূর্ণ কনফিগারেসন",
- "Configuration OK" : "কনফিগারেসন ঠিক আছে",
- "Select groups" : "গ্রুপ নির্ধারণ",
- "Select object classes" : "অবজেক্ট ক্লাস নির্ধারণ",
- "{nthServer}. Server" : "{nthServer}. সার্ভার",
- "Do you really want to delete the current Server Configuration?" : "আপনি কি সত্যিই চলতি সার্ভার কনফিগারেসন মুছতে চান?",
- "Confirm Deletion" : "মোছার আদেশ নিশ্চিত করুন",
- "Select attributes" : "বৈশিষ্ট্য নির্ধারণ",
- "_%s group found_::_%s groups found_" : ["%s গ্রুপ পাওয়া গেছে","%s গ্রুপ পাওয়া গেছে"],
- "_%s user found_::_%s users found_" : ["%s ব্যাবহারকারী পাওয়া গেছে","%s ব্যাবহারকারী পাওয়া গেছে"],
- "Could not find the desired feature" : "চাহিদামাফিক ফিচারটি পাওয়া গেলনা",
- "Invalid Host" : "অবৈধ হোস্ট",
- "Server" : "সার্ভার",
- "Users" : "ব্যবহারকারী",
- "Groups" : "গোষ্ঠীসমূহ",
- "Test Configuration" : "পরীক্ষামূলক কনফিগারেসন",
- "Help" : "সহায়িকা",
- "Groups meeting these criteria are available in %s:" : "প্রদত্ত বৈশিষ্ট্য অনুযায়ী %s এ প্রাপ্তব্য গ্রুপসমূহ:",
- "The filter specifies which LDAP groups shall have access to the %s instance." : "ফিল্টারটি %s সার্ভারে কোন কোন LDAP গ্রুপ প্রবেশাধিকার পাবে তা নির্ধারণ করে।",
- "Other Attributes:" : "অন্যান্য বৈশিষ্ট্য:",
- "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "প্রবেশ প্রচেষ্টা নিলে প্রযোজ্য ফিল্টার নির্ধারণ করে। প্রবেশকালে %%uid ব্যাবহারকারীর নামকে প্রতিস্থাপন করে। ঊদাহরণ: \"uid=%%uid\"",
- "1. Server" : "1. সার্ভার",
- "%s. Server:" : "%s. সার্ভার:",
- "Host" : "হোস্ট",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL আবশ্যক না হলে আপনি এই প্রটোকলটি মুছে ফেলতে পারেন । এরপর শুরু করুন এটা দিয়ে ldaps://",
- "Port" : "পোর্ট",
- "User DN" : "ব্যবহারকারি DN",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. পরিচয় গোপন রেখে অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।",
- "Password" : "কূটশব্দ",
- "For anonymous access, leave DN and Password empty." : "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।",
- "One Base DN per line" : "লাইনপ্রতি একটি Base DN",
- "You can specify Base DN for users and groups in the Advanced tab" : "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।",
- "The filter specifies which LDAP users shall have access to the %s instance." : "এই ফিল্টারটি কোন কোন LDAP ব্যবহারকারী %s সার্ভারে প্রবেশ করবেন তা বাছাই করে।",
- "Back" : "পেছনে যাও",
- "Continue" : "চালিয়ে যাও",
- "Expert" : "দক্ষ",
- "Advanced" : "সুচারু",
- "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warning:</b> Apps user_ldap and user_webdavauth কম্প্যাটিবল নয়। আপনি অবান্ছিত জটিলতার মুখোমুখি হতে পারেন। সিস্টেম প্রশাসককে যেকোন একটি অকার্যকর করে দিতে বলুন।",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Warning:</b> PHP LDAP মডিউল ইনস্টল করা নেই, ব্যাকএন্ড কাজ করবেনা। সিস্টেম প্রশাসককে এটি ইনস্টল করতে বলুন।",
- "Connection Settings" : "সংযোগ নিয়ামকসমূহ",
- "Configuration Active" : "কনফিগারেসন সক্রিয়",
- "When unchecked, this configuration will be skipped." : "চেকমার্ক তুলে দিলে কনফিগারেসন এড়িয়ে যাবে।",
- "Backup (Replica) Host" : "ব্যাকআপ (নকল) হোস্ট",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "একটি ঐচ্ছিক ব্যাকআপ হোস্ট দিন। এটি মূল LDAP/AD সার্ভারের নকল হবে।",
- "Backup (Replica) Port" : "ব্যাকআপ (নকল) পোর্ট",
- "Disable Main Server" : "মূল সার্ভারকে অকার্যকর কর",
- "Only connect to the replica server." : "শুধুমাত্র নকল সার্ভারে সংযোগ দাও।",
- "Turn off SSL certificate validation." : "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।",
- "Cache Time-To-Live" : "ক্যাশে টাইম-টু-লিভ",
- "in seconds. A change empties the cache." : "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।",
- "Directory Settings" : "ডিরেক্টরি নিয়ামকসমূহ",
- "User Display Name Field" : "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র",
- "The LDAP attribute to use to generate the user's display name." : "ব্যবহারকারীর প্রদর্শনীয় নাম তৈরি করার জন্য ব্যবহৃত LDAP বৈশিষ্ট্য।",
- "Base User Tree" : "ভিত্তি ব্যবহারকারি বৃক্ষাকারে",
- "Group Display Name Field" : "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র",
- "Base Group Tree" : "ভিত্তি গোষ্ঠী বৃক্ষাকারে",
- "Group Search Attributes" : "গ্রুপ খোঁজার বৈশিষ্ট্য",
- "Group-Member association" : "গোষ্ঠী-সদস্য সংস্থাপন",
- "Nested Groups" : "একতাবদ্ধ গোষ্ঠিসমূহ",
- "Special Attributes" : "বিশেষ বৈশিষ্ট্যসমূহ",
- "Quota Field" : "কোটা",
- "Quota Default" : "পূর্বনির্ধারিত কোটা",
- "in bytes" : "বাইটে",
- "Email Field" : "ইমেইল ক্ষেত্র",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/bn_BD.json b/apps/user_ldap/l10n/bn_BD.json
deleted file mode 100644
index 68883909add..00000000000
--- a/apps/user_ldap/l10n/bn_BD.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{ "translations": {
- "Failed to clear the mappings." : "মানচিত্রায়ন মুছতে ব্যার্থ হলো।",
- "Failed to delete the server configuration" : "সার্ভার কনফিগারেশন মোছা ব্যার্থ হলো",
- "The configuration is valid and the connection could be established!" : "কনফিগারেশনটি বৈধ এবং যোগাযোগ প্রতিষ্ঠা করা যায়!",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "কনফিগারেশনটি বৈধ তবে Bind ব্যার্থ। দয়া করে সার্ভার নিয়ামকসমূহ এবং ব্যবহারকারী পরীক্ষা করুন।",
- "The configuration is invalid. Please have a look at the logs for further details." : "কনফিহারেশনটি অবৈধ। বিস্তারিত জানতে দয়া করে লগ দেখুন।",
- "No action specified" : "কোন কার্যাদেশ সুনির্দিষ্ট নয়",
- "No configuration specified" : " কোন কনফিগারেসন সুনির্দিষ্ট নয়",
- "No data specified" : "কোন ডাটা সুনির্দিষ্ট নয়",
- " Could not set configuration %s" : "%s কনফিগারেসন ঠিক করা গেল না",
- "Configuration incorrect" : "ভুল কনফিগারেসন",
- "Configuration incomplete" : "অসম্পূর্ণ কনফিগারেসন",
- "Configuration OK" : "কনফিগারেসন ঠিক আছে",
- "Select groups" : "গ্রুপ নির্ধারণ",
- "Select object classes" : "অবজেক্ট ক্লাস নির্ধারণ",
- "{nthServer}. Server" : "{nthServer}. সার্ভার",
- "Do you really want to delete the current Server Configuration?" : "আপনি কি সত্যিই চলতি সার্ভার কনফিগারেসন মুছতে চান?",
- "Confirm Deletion" : "মোছার আদেশ নিশ্চিত করুন",
- "Select attributes" : "বৈশিষ্ট্য নির্ধারণ",
- "_%s group found_::_%s groups found_" : ["%s গ্রুপ পাওয়া গেছে","%s গ্রুপ পাওয়া গেছে"],
- "_%s user found_::_%s users found_" : ["%s ব্যাবহারকারী পাওয়া গেছে","%s ব্যাবহারকারী পাওয়া গেছে"],
- "Could not find the desired feature" : "চাহিদামাফিক ফিচারটি পাওয়া গেলনা",
- "Invalid Host" : "অবৈধ হোস্ট",
- "Server" : "সার্ভার",
- "Users" : "ব্যবহারকারী",
- "Groups" : "গোষ্ঠীসমূহ",
- "Test Configuration" : "পরীক্ষামূলক কনফিগারেসন",
- "Help" : "সহায়িকা",
- "Groups meeting these criteria are available in %s:" : "প্রদত্ত বৈশিষ্ট্য অনুযায়ী %s এ প্রাপ্তব্য গ্রুপসমূহ:",
- "The filter specifies which LDAP groups shall have access to the %s instance." : "ফিল্টারটি %s সার্ভারে কোন কোন LDAP গ্রুপ প্রবেশাধিকার পাবে তা নির্ধারণ করে।",
- "Other Attributes:" : "অন্যান্য বৈশিষ্ট্য:",
- "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "প্রবেশ প্রচেষ্টা নিলে প্রযোজ্য ফিল্টার নির্ধারণ করে। প্রবেশকালে %%uid ব্যাবহারকারীর নামকে প্রতিস্থাপন করে। ঊদাহরণ: \"uid=%%uid\"",
- "1. Server" : "1. সার্ভার",
- "%s. Server:" : "%s. সার্ভার:",
- "Host" : "হোস্ট",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL আবশ্যক না হলে আপনি এই প্রটোকলটি মুছে ফেলতে পারেন । এরপর শুরু করুন এটা দিয়ে ldaps://",
- "Port" : "পোর্ট",
- "User DN" : "ব্যবহারকারি DN",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. পরিচয় গোপন রেখে অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।",
- "Password" : "কূটশব্দ",
- "For anonymous access, leave DN and Password empty." : "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।",
- "One Base DN per line" : "লাইনপ্রতি একটি Base DN",
- "You can specify Base DN for users and groups in the Advanced tab" : "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।",
- "The filter specifies which LDAP users shall have access to the %s instance." : "এই ফিল্টারটি কোন কোন LDAP ব্যবহারকারী %s সার্ভারে প্রবেশ করবেন তা বাছাই করে।",
- "Back" : "পেছনে যাও",
- "Continue" : "চালিয়ে যাও",
- "Expert" : "দক্ষ",
- "Advanced" : "সুচারু",
- "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warning:</b> Apps user_ldap and user_webdavauth কম্প্যাটিবল নয়। আপনি অবান্ছিত জটিলতার মুখোমুখি হতে পারেন। সিস্টেম প্রশাসককে যেকোন একটি অকার্যকর করে দিতে বলুন।",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Warning:</b> PHP LDAP মডিউল ইনস্টল করা নেই, ব্যাকএন্ড কাজ করবেনা। সিস্টেম প্রশাসককে এটি ইনস্টল করতে বলুন।",
- "Connection Settings" : "সংযোগ নিয়ামকসমূহ",
- "Configuration Active" : "কনফিগারেসন সক্রিয়",
- "When unchecked, this configuration will be skipped." : "চেকমার্ক তুলে দিলে কনফিগারেসন এড়িয়ে যাবে।",
- "Backup (Replica) Host" : "ব্যাকআপ (নকল) হোস্ট",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "একটি ঐচ্ছিক ব্যাকআপ হোস্ট দিন। এটি মূল LDAP/AD সার্ভারের নকল হবে।",
- "Backup (Replica) Port" : "ব্যাকআপ (নকল) পোর্ট",
- "Disable Main Server" : "মূল সার্ভারকে অকার্যকর কর",
- "Only connect to the replica server." : "শুধুমাত্র নকল সার্ভারে সংযোগ দাও।",
- "Turn off SSL certificate validation." : "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।",
- "Cache Time-To-Live" : "ক্যাশে টাইম-টু-লিভ",
- "in seconds. A change empties the cache." : "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।",
- "Directory Settings" : "ডিরেক্টরি নিয়ামকসমূহ",
- "User Display Name Field" : "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র",
- "The LDAP attribute to use to generate the user's display name." : "ব্যবহারকারীর প্রদর্শনীয় নাম তৈরি করার জন্য ব্যবহৃত LDAP বৈশিষ্ট্য।",
- "Base User Tree" : "ভিত্তি ব্যবহারকারি বৃক্ষাকারে",
- "Group Display Name Field" : "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র",
- "Base Group Tree" : "ভিত্তি গোষ্ঠী বৃক্ষাকারে",
- "Group Search Attributes" : "গ্রুপ খোঁজার বৈশিষ্ট্য",
- "Group-Member association" : "গোষ্ঠী-সদস্য সংস্থাপন",
- "Nested Groups" : "একতাবদ্ধ গোষ্ঠিসমূহ",
- "Special Attributes" : "বিশেষ বৈশিষ্ট্যসমূহ",
- "Quota Field" : "কোটা",
- "Quota Default" : "পূর্বনির্ধারিত কোটা",
- "in bytes" : "বাইটে",
- "Email Field" : "ইমেইল ক্ষেত্র",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/bs.js b/apps/user_ldap/l10n/bs.js
deleted file mode 100644
index a30255595fe..00000000000
--- a/apps/user_ldap/l10n/bs.js
+++ /dev/null
@@ -1,12 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Users" : "Korisnici",
- "Groups" : "Grupe",
- "Help" : "Pomoć",
- "Port" : "Priključak",
- "Password" : "Lozinka",
- "Continue" : "Nastavi",
- "Advanced" : "Napredno"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/user_ldap/l10n/bs.json b/apps/user_ldap/l10n/bs.json
deleted file mode 100644
index 3172f54cf89..00000000000
--- a/apps/user_ldap/l10n/bs.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "translations": {
- "Users" : "Korisnici",
- "Groups" : "Grupe",
- "Help" : "Pomoć",
- "Port" : "Priključak",
- "Password" : "Lozinka",
- "Continue" : "Nastavi",
- "Advanced" : "Napredno"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/cy_GB.js b/apps/user_ldap/l10n/cy_GB.js
deleted file mode 100644
index 3d47b3b4e66..00000000000
--- a/apps/user_ldap/l10n/cy_GB.js
+++ /dev/null
@@ -1,10 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Users" : "Defnyddwyr",
- "Groups" : "Grwpiau",
- "Help" : "Cymorth",
- "Password" : "Cyfrinair",
- "Advanced" : "Uwch"
-},
-"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
diff --git a/apps/user_ldap/l10n/cy_GB.json b/apps/user_ldap/l10n/cy_GB.json
deleted file mode 100644
index 8140e36f49d..00000000000
--- a/apps/user_ldap/l10n/cy_GB.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "translations": {
- "Users" : "Defnyddwyr",
- "Groups" : "Grwpiau",
- "Help" : "Cymorth",
- "Password" : "Cyfrinair",
- "Advanced" : "Uwch"
-},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/da.js b/apps/user_ldap/l10n/da.js
index 1982f52351f..0c909bddbf0 100644
--- a/apps/user_ldap/l10n/da.js
+++ b/apps/user_ldap/l10n/da.js
@@ -20,10 +20,10 @@ OC.L10N.register(
"Good password" : "God adgangskode",
"Strong password" : "Stærk adgangskode",
"The Base DN appears to be wrong" : "Base DN synes at være forkert",
- "Testing configuration…" : "Test af konfiguration...",
- "Configuration incorrect" : "Indstilling forkert",
+ "Testing configuration…" : "Tester konfiguration...",
+ "Configuration incorrect" : "Konfiguration forkert",
"Configuration incomplete" : "Konfiguration ufuldstændig",
- "Configuration OK" : "Indstilling OK",
+ "Configuration OK" : "Konfiguration OK",
"Select groups" : "Vælg grupper",
"Select object classes" : "Vælg objektklasser",
"Please check the credentials, they seem to be wrong." : "Tjek venligst legitimationerne.",
@@ -35,7 +35,7 @@ OC.L10N.register(
"More than 1,000 directory entries available." : "Mere end 1.000 mappeindgange til rådighed.",
"_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} indgang tilgængelig i den givne Base DN","{objectsFound} poster tilgængelige inden for den givne Base DN"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN samt tilslutningsindstillinger og legitimationsoplysninger.",
- "Do you really want to delete the current Server Configuration?" : "Vil du virkelig slette den aktuelle serverindstilling?",
+ "Do you really want to delete the current Server Configuration?" : "Vil du virkelig slette den aktuelle server konfiguration?",
"Confirm Deletion" : "Bekræft sletning",
"Mappings cleared successfully!" : "Mappings ryddet med succes!",
"Error while clearing the mappings." : "Fejl under rydning af tilknytninger.",
@@ -46,7 +46,7 @@ OC.L10N.register(
"Mode switch" : "Tilstandsafbryder",
"Select attributes" : "Vælg attributter",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Brugeren ikke fundet. Tjek venligst dine login attributter og brugernavn. Effektiv filter (til copy- and - paste til kommandolinjevalidering): < br / >",
- "User found and settings verified." : "Brugerfundet og indstillinger verificeret.",
+ "User found and settings verified." : "Bruger fundet og indstillinger verificeret.",
"Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Overvej at indsnævre din søgning, som det omfattede mange brugere, kun den første af dem vil være i stand til at logge ind.",
"An unspecified error occurred. Please check log and settings." : "En uspecificeret fejl opstod. Tjek log og indstillinger.",
"The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Søgefilteret er ugyldigt, sandsynligvis på grund af syntaksspørgsmål som ulige antal åbne og lukkede parenteser. Vær venlig at revidere.",
@@ -101,7 +101,7 @@ OC.L10N.register(
"When logging in, %s will find the user based on the following attributes:" : "Når du logger ind, vil %s finde brugeren baseret på følgende egenskaber:",
"LDAP/AD Username:" : "LDAP / AD Brugernavn:",
"Allows login against the LDAP/AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Tillader login mod LDAP / AD brugernavn, som er enten \"uid\" eller \"SAMAccountName\" og vil blive opdaget.",
- "LDAP/AD Email Address:" : "LDAP / AD Email adresse:",
+ "LDAP/AD Email Address:" : "LDAP / AD E-mail adresse:",
"Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Tillader login mod en e- mail- attribut. \"mail\" og \"mailPrimaryAddress\" tilladt.",
"Other Attributes:" : "Andre attributter:",
"Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer det filter der skal anvendes, når login er forsøgt. \"%% uid\" erstatter brugernavnet i login-handlingen. Eksempel: \"uid =%% uid\"",
@@ -131,7 +131,7 @@ OC.L10N.register(
"The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest almindelige objektklasser for brugere er organisationalPerson, person, bruger og inetOrgPerson. Hvis du ikke er sikker på hvilken objektklasse du skal vælge, bedes du konsultere din mappe- admin.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Filteret angiver, hvilke LDAP-brugere der skal have adgang til %s instansen.",
"Verify settings and count users" : "Verificér indstillinger og tæller brugere",
- "Saving" : "Gemning",
+ "Saving" : "Gemmer",
"Back" : "Tilbage",
"Continue" : "Fortsæt",
"Please renew your password." : "Venligst forny din adgangskode.",
diff --git a/apps/user_ldap/l10n/da.json b/apps/user_ldap/l10n/da.json
index 22050580fcb..99ad292499e 100644
--- a/apps/user_ldap/l10n/da.json
+++ b/apps/user_ldap/l10n/da.json
@@ -18,10 +18,10 @@
"Good password" : "God adgangskode",
"Strong password" : "Stærk adgangskode",
"The Base DN appears to be wrong" : "Base DN synes at være forkert",
- "Testing configuration…" : "Test af konfiguration...",
- "Configuration incorrect" : "Indstilling forkert",
+ "Testing configuration…" : "Tester konfiguration...",
+ "Configuration incorrect" : "Konfiguration forkert",
"Configuration incomplete" : "Konfiguration ufuldstændig",
- "Configuration OK" : "Indstilling OK",
+ "Configuration OK" : "Konfiguration OK",
"Select groups" : "Vælg grupper",
"Select object classes" : "Vælg objektklasser",
"Please check the credentials, they seem to be wrong." : "Tjek venligst legitimationerne.",
@@ -33,7 +33,7 @@
"More than 1,000 directory entries available." : "Mere end 1.000 mappeindgange til rådighed.",
"_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} indgang tilgængelig i den givne Base DN","{objectsFound} poster tilgængelige inden for den givne Base DN"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN samt tilslutningsindstillinger og legitimationsoplysninger.",
- "Do you really want to delete the current Server Configuration?" : "Vil du virkelig slette den aktuelle serverindstilling?",
+ "Do you really want to delete the current Server Configuration?" : "Vil du virkelig slette den aktuelle server konfiguration?",
"Confirm Deletion" : "Bekræft sletning",
"Mappings cleared successfully!" : "Mappings ryddet med succes!",
"Error while clearing the mappings." : "Fejl under rydning af tilknytninger.",
@@ -44,7 +44,7 @@
"Mode switch" : "Tilstandsafbryder",
"Select attributes" : "Vælg attributter",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Brugeren ikke fundet. Tjek venligst dine login attributter og brugernavn. Effektiv filter (til copy- and - paste til kommandolinjevalidering): < br / >",
- "User found and settings verified." : "Brugerfundet og indstillinger verificeret.",
+ "User found and settings verified." : "Bruger fundet og indstillinger verificeret.",
"Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Overvej at indsnævre din søgning, som det omfattede mange brugere, kun den første af dem vil være i stand til at logge ind.",
"An unspecified error occurred. Please check log and settings." : "En uspecificeret fejl opstod. Tjek log og indstillinger.",
"The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Søgefilteret er ugyldigt, sandsynligvis på grund af syntaksspørgsmål som ulige antal åbne og lukkede parenteser. Vær venlig at revidere.",
@@ -99,7 +99,7 @@
"When logging in, %s will find the user based on the following attributes:" : "Når du logger ind, vil %s finde brugeren baseret på følgende egenskaber:",
"LDAP/AD Username:" : "LDAP / AD Brugernavn:",
"Allows login against the LDAP/AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Tillader login mod LDAP / AD brugernavn, som er enten \"uid\" eller \"SAMAccountName\" og vil blive opdaget.",
- "LDAP/AD Email Address:" : "LDAP / AD Email adresse:",
+ "LDAP/AD Email Address:" : "LDAP / AD E-mail adresse:",
"Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Tillader login mod en e- mail- attribut. \"mail\" og \"mailPrimaryAddress\" tilladt.",
"Other Attributes:" : "Andre attributter:",
"Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer det filter der skal anvendes, når login er forsøgt. \"%% uid\" erstatter brugernavnet i login-handlingen. Eksempel: \"uid =%% uid\"",
@@ -129,7 +129,7 @@
"The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest almindelige objektklasser for brugere er organisationalPerson, person, bruger og inetOrgPerson. Hvis du ikke er sikker på hvilken objektklasse du skal vælge, bedes du konsultere din mappe- admin.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Filteret angiver, hvilke LDAP-brugere der skal have adgang til %s instansen.",
"Verify settings and count users" : "Verificér indstillinger og tæller brugere",
- "Saving" : "Gemning",
+ "Saving" : "Gemmer",
"Back" : "Tilbage",
"Continue" : "Fortsæt",
"Please renew your password." : "Venligst forny din adgangskode.",
diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js
index 2744c7b7384..37546227625 100644
--- a/apps/user_ldap/l10n/de.js
+++ b/apps/user_ldap/l10n/de.js
@@ -37,7 +37,7 @@ OC.L10N.register(
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfe die Base DN sowie die Verbindungs- und Anmeldeeinstellungen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
- "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!",
+ "Mappings cleared successfully!" : "Zuordnungen gelöscht!",
"Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.",
"Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte eine Benutzer-DN und ein Passwort angeben.",
"LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymes binden ist scheinbar nicht erlaubt.",
diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json
index 5cf218b924a..801f94a3907 100644
--- a/apps/user_ldap/l10n/de.json
+++ b/apps/user_ldap/l10n/de.json
@@ -35,7 +35,7 @@
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfe die Base DN sowie die Verbindungs- und Anmeldeeinstellungen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
- "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!",
+ "Mappings cleared successfully!" : "Zuordnungen gelöscht!",
"Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.",
"Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte eine Benutzer-DN und ein Passwort angeben.",
"LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymes binden ist scheinbar nicht erlaubt.",
diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js
index 5cc130582c8..142a82913d8 100644
--- a/apps/user_ldap/l10n/de_DE.js
+++ b/apps/user_ldap/l10n/de_DE.js
@@ -37,7 +37,7 @@ OC.L10N.register(
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.",
"Do you really want to delete the current Server Configuration?" : "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?",
"Confirm Deletion" : "Löschen bestätigen",
- "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!",
+ "Mappings cleared successfully!" : "Zuordnungen gelöscht!",
"Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.",
"Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte geben Sie eine Benutzer-DN und ein Passwort angeben.",
"LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymous Bind ist anscheinend nicht erlaubt.",
diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json
index 288e84d4cde..c8bcf0d8640 100644
--- a/apps/user_ldap/l10n/de_DE.json
+++ b/apps/user_ldap/l10n/de_DE.json
@@ -35,7 +35,7 @@
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.",
"Do you really want to delete the current Server Configuration?" : "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?",
"Confirm Deletion" : "Löschen bestätigen",
- "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!",
+ "Mappings cleared successfully!" : "Zuordnungen gelöscht!",
"Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.",
"Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte geben Sie eine Benutzer-DN und ein Passwort angeben.",
"LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymous Bind ist anscheinend nicht erlaubt.",
diff --git a/apps/user_ldap/l10n/eo.js b/apps/user_ldap/l10n/eo.js
deleted file mode 100644
index 25c880dbdc5..00000000000
--- a/apps/user_ldap/l10n/eo.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to delete the server configuration" : "Malsukcesis forigo de la agordo de servilo",
- "Action does not exist" : "Ago ne ekzistas",
- "Configuration incorrect" : "La agordaro malĝustas",
- "Configuration incomplete" : "La agordaro neplenas",
- "Configuration OK" : "La agordaro ĝustas",
- "Select groups" : "Elekti grupojn",
- "Select object classes" : "Elekti objektoklasojn",
- "{nthServer}. Server" : "{nthServer}. Servilo",
- "Confirm Deletion" : "Konfirmi forigon",
- "Select attributes" : "Elekti atribuojn",
- "_%s group found_::_%s groups found_" : ["%s grupo troviĝis","%s grupoj troviĝis"],
- "_%s user found_::_%s users found_" : ["%s uzanto troviĝis","%s uzanto troviĝis"],
- "Invalid Host" : "Nevalida gastigo",
- "Server" : "Servilo",
- "Users" : "Uzantoj",
- "Groups" : "Grupoj",
- "Test Configuration" : "Provi agordon",
- "Help" : "Helpo",
- "Other Attributes:" : "Aliaj atribuoj:",
- "1. Server" : "1. Servilo",
- "%s. Server:" : "%s. Servilo:",
- "Host" : "Gastigo",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Vi povas neglekti la protokolon, escepte se vi bezonas SSL-on. Tiuokaze, komencu per ldaps://",
- "Port" : "Pordo",
- "User DN" : "Uzanto-DN",
- "Password" : "Pasvorto",
- "For anonymous access, leave DN and Password empty." : "Por sennoman aliron, lasu DN-on kaj Pasvorton malplenaj.",
- "Saving" : "Konservante",
- "Back" : "Antaŭen",
- "Continue" : "Daŭri",
- "LDAP" : "LDAP",
- "Expert" : "Sperta",
- "Advanced" : "Progresinta",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Averto</b>: la PHP-modulo LDAP ne instalatas; la motoro ne funkcios. Bonvolu peti vian sistemadministranton instali ĝin.",
- "Connection Settings" : "Agordo de konekto",
- "Disable Main Server" : "Malkapabligi la ĉefan servilon",
- "Turn off SSL certificate validation." : "Malkapabligi validkontrolon de SSL-atestiloj.",
- "Cache Time-To-Live" : "Vivotempo de la kaŝmemoro",
- "in seconds. A change empties the cache." : "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.",
- "Directory Settings" : "Agordo de dosierujo",
- "User Display Name Field" : "Kampo de vidignomo de uzanto",
- "Base User Tree" : "Baza uzantarbo",
- "User Search Attributes" : "Atributoj de serĉo de uzanto",
- "Optional; one attribute per line" : "Malnepra; po unu atribuo por linio",
- "Group Display Name Field" : "Kampo de vidignomo de grupo",
- "Base Group Tree" : "Baza gruparbo",
- "Group Search Attributes" : "Atribuoj de gruposerĉo",
- "Group-Member association" : "Asocio de grupo kaj membro",
- "Nested Groups" : "Ingitaj grupoj",
- "Special Attributes" : "Specialaj atribuoj",
- "Quota Field" : "Kampo de kvoto",
- "in bytes" : "duumoke",
- "Email Field" : "Kampo de retpoŝto",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon.",
- "Internal Username" : "Ena uzantonomo",
- "Internal Username Attribute:" : "Atribuo de ena uzantonomo:",
- "UUID Attribute for Users:" : "UUID-atribuo por uzantoj:",
- "UUID Attribute for Groups:" : "UUID-atribuo por grupoj:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/eo.json b/apps/user_ldap/l10n/eo.json
deleted file mode 100644
index 37cdc4e2519..00000000000
--- a/apps/user_ldap/l10n/eo.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "Failed to delete the server configuration" : "Malsukcesis forigo de la agordo de servilo",
- "Action does not exist" : "Ago ne ekzistas",
- "Configuration incorrect" : "La agordaro malĝustas",
- "Configuration incomplete" : "La agordaro neplenas",
- "Configuration OK" : "La agordaro ĝustas",
- "Select groups" : "Elekti grupojn",
- "Select object classes" : "Elekti objektoklasojn",
- "{nthServer}. Server" : "{nthServer}. Servilo",
- "Confirm Deletion" : "Konfirmi forigon",
- "Select attributes" : "Elekti atribuojn",
- "_%s group found_::_%s groups found_" : ["%s grupo troviĝis","%s grupoj troviĝis"],
- "_%s user found_::_%s users found_" : ["%s uzanto troviĝis","%s uzanto troviĝis"],
- "Invalid Host" : "Nevalida gastigo",
- "Server" : "Servilo",
- "Users" : "Uzantoj",
- "Groups" : "Grupoj",
- "Test Configuration" : "Provi agordon",
- "Help" : "Helpo",
- "Other Attributes:" : "Aliaj atribuoj:",
- "1. Server" : "1. Servilo",
- "%s. Server:" : "%s. Servilo:",
- "Host" : "Gastigo",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Vi povas neglekti la protokolon, escepte se vi bezonas SSL-on. Tiuokaze, komencu per ldaps://",
- "Port" : "Pordo",
- "User DN" : "Uzanto-DN",
- "Password" : "Pasvorto",
- "For anonymous access, leave DN and Password empty." : "Por sennoman aliron, lasu DN-on kaj Pasvorton malplenaj.",
- "Saving" : "Konservante",
- "Back" : "Antaŭen",
- "Continue" : "Daŭri",
- "LDAP" : "LDAP",
- "Expert" : "Sperta",
- "Advanced" : "Progresinta",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Averto</b>: la PHP-modulo LDAP ne instalatas; la motoro ne funkcios. Bonvolu peti vian sistemadministranton instali ĝin.",
- "Connection Settings" : "Agordo de konekto",
- "Disable Main Server" : "Malkapabligi la ĉefan servilon",
- "Turn off SSL certificate validation." : "Malkapabligi validkontrolon de SSL-atestiloj.",
- "Cache Time-To-Live" : "Vivotempo de la kaŝmemoro",
- "in seconds. A change empties the cache." : "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.",
- "Directory Settings" : "Agordo de dosierujo",
- "User Display Name Field" : "Kampo de vidignomo de uzanto",
- "Base User Tree" : "Baza uzantarbo",
- "User Search Attributes" : "Atributoj de serĉo de uzanto",
- "Optional; one attribute per line" : "Malnepra; po unu atribuo por linio",
- "Group Display Name Field" : "Kampo de vidignomo de grupo",
- "Base Group Tree" : "Baza gruparbo",
- "Group Search Attributes" : "Atribuoj de gruposerĉo",
- "Group-Member association" : "Asocio de grupo kaj membro",
- "Nested Groups" : "Ingitaj grupoj",
- "Special Attributes" : "Specialaj atribuoj",
- "Quota Field" : "Kampo de kvoto",
- "in bytes" : "duumoke",
- "Email Field" : "Kampo de retpoŝto",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon.",
- "Internal Username" : "Ena uzantonomo",
- "Internal Username Attribute:" : "Atribuo de ena uzantonomo:",
- "UUID Attribute for Users:" : "UUID-atribuo por uzantoj:",
- "UUID Attribute for Groups:" : "UUID-atribuo por grupoj:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/et_EE.js b/apps/user_ldap/l10n/et_EE.js
index 46695f1973a..a024012d43d 100644
--- a/apps/user_ldap/l10n/et_EE.js
+++ b/apps/user_ldap/l10n/et_EE.js
@@ -5,18 +5,20 @@ OC.L10N.register(
"Failed to delete the server configuration" : "Serveri seadistuse kustutamine ebaõnnestus",
"Invalid configuration: Anonymous binding is not allowed." : "Vale seadistus: anonüümne sidumine pole lubatud.",
"Valid configuration, connection established!" : "Korrektne seadistus, ühendus on loodud!",
+ "Valid configuration, but binding failed. Please check the server settings and credentials." : "Seadistus on korrektne, kuid sidumine ei õnnestunud. Palun kontrolli serveri seadistusi ja ühenduse kasutajanime/salasõna.",
"Invalid configuration: %s" : "Vigane seadistus: %s",
"No action specified" : "Tegevusi pole määratletud",
"No configuration specified" : "Seadistust pole määratletud",
"No data specified" : "Andmeid pole määratletud",
+ "Invalid data specified" : "Kirjeldatud on vigased andmed",
"Could not set configuration %1$s to %2$s" : "Ei õnnestunud muuta „%1$s“ seadistuse väärtuseks „%2$s“",
"Action does not exist" : "Toimingut pole olemas",
"Renewing …" : "Värskendamine ...",
- "Very weak password" : "Väga nõrk parool",
- "Weak password" : "Nõrk parool",
- "So-so password" : "Enam-vähem sobiv parool",
- "Good password" : "Hea parool",
- "Strong password" : "Väga hea parool",
+ "Very weak password" : "Väga nõrk salasõna",
+ "Weak password" : "Nõrk salasõna",
+ "So-so password" : "Enam-vähem sobiv salasõna",
+ "Good password" : "Hea salasõna",
+ "Strong password" : "Väga hea salasõna",
"The Base DN appears to be wrong" : "Näib, et Base DN on vale",
"Testing configuration…" : "Seadistuse testimine",
"Configuration incorrect" : "Seadistus on vigane",
@@ -30,11 +32,15 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "BaasDN-i tuvastamine ebaõnnestus. Palun sisesta see käsitsi.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "BaasDN-is ei leitu ühtegi objekti.",
- "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogi kirjet.",
+ "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogikirjet.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["„Base DN“ alusel on saadaval {objectsFound} kirje","„Base DN“ alusel on saadaval {objectsFound} kirjet"],
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Tekkis viga. Palun kontrolli, kas „Base DN“ on õige, ühendus toimib ning kasutajanimi/salasõna on korrektsed.",
"Do you really want to delete the current Server Configuration?" : "Oled kindel, et tahad kustutada praegust serveri seadistust?",
"Confirm Deletion" : "Kinnita kustutamine",
"Mappings cleared successfully!" : "Vastandused on eemaldatud!",
"Error while clearing the mappings." : "Viga vastanduse/seose eemaldamisel.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonüümne sidumine pole lubatud. Palun sisesta kasutaja „User DN“ ja salasõna.",
+ "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP päringu viga. Anonüümne sidumine pole ilmselt lubatud.",
"Mode switch" : "Režiimi lüliti",
"Select attributes" : "Vali atribuudid",
"User found and settings verified." : "Kasutaja leiti ja seaded on kontrollitud.",
@@ -42,10 +48,19 @@ OC.L10N.register(
"Password change rejected. Hint: %s" : "Salasõna muutmine polnud võimalik. Selgitus: %s",
"Mandatory field \"%s\" left empty" : "Kohustuslik väli „%s“ on jäänud tühjaks",
"Login filter does not contain %s placeholder." : "Kasutajanimede filtris puudub kohatäitja „%s“",
- "Please login with the new password" : "Palun logi uue parooliga sisse",
- "Your password will expire tomorrow." : "Su parool aegub homme.",
- "Your password will expire today." : "Su parool aegub täna.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Su parool aegub %n päeva jooksul.","Su parool aegub %n päeva jooksul."],
+ "Please login with the new password" : "Palun logi uue salasõnaga sisse",
+ "LDAP User backend" : "LPAD-i põhine tausteteenus kasutajate jaoks",
+ "Your password will expire tomorrow." : "Su salasõna aegub homme.",
+ "Your password will expire today." : "Su salasõna aegub täna.",
+ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Su salasõna aegub %n päeva jooksul.","Su salasõna aegub %n päeva jooksul."],
+ "LDAP/AD integration" : "LDAP/AD lõiming",
+ "LDAP Connection" : "LDAP ühendus",
+ "Invalid LDAP UUIDs" : "Vigased LDAP UUID-d",
+ "None found" : "Mitte midagi ei leidu",
+ "_%n group found_::_%n groups found_" : ["Leidus %n grupp","Leidus %n gruppi"],
+ "> 1000 groups found" : "Leidus üle 1000 grupi",
+ "> 1000 users found" : "Leidus üle 1000 kasutaja",
+ "_%n user found_::_%n users found_" : ["Leidus %n kasutaja","Leidus %n kasutajat"],
"Could not find the desired feature" : "Ei suuda leida soovitud funktsioonaalsust",
"Invalid Host" : "Vigane server",
"Test Configuration" : "Testi seadistust",
@@ -55,7 +70,7 @@ OC.L10N.register(
"Only from these groups:" : "Ainult neist gruppidest:",
"Search groups" : "Otsi gruppe",
"Available groups" : "Saadaolevad grupid",
- "Selected groups" : "Validut grupid",
+ "Selected groups" : "Valitud grupid",
"Edit LDAP Query" : "Muuda LDAP päringut",
"LDAP Filter:" : "LDAP filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filter määrab millised LDAP grupid saavad ligipääsu sellele %s instantsile.",
@@ -68,9 +83,9 @@ OC.L10N.register(
"Port" : "Port",
"Detect Port" : "Tuvasta port",
"User DN" : "Kasutaja DN",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja parool tühjaks.",
- "Password" : "Parool",
- "For anonymous access, leave DN and Password empty." : "Anonüümseks ligipääsuks jäta DN ja parool tühjaks.",
+ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja salasõna tühjaks.",
+ "Password" : "Salasõna",
+ "For anonymous access, leave DN and Password empty." : "Anonüümseks ligipääsuks jäta DN ja salasõna tühjaks.",
"Save Credentials" : "Salvesta kasutajaandmed",
"One Base DN per line" : "Üks baas-DN rea kohta",
"You can specify Base DN for users and groups in the Advanced tab" : "Sa saad kasutajate ja gruppide baas DN-i määrata lisavalikute vahekaardilt",
@@ -84,13 +99,13 @@ OC.L10N.register(
"Saving" : "Salvestamine",
"Back" : "Tagasi",
"Continue" : "Jätka",
- "Please renew your password." : "Palun uuenda oma parool.",
+ "Please renew your password." : "Palun uuenda oma salasõna.",
"An internal error occurred." : "Tekkis sisemine tõrge.",
"Please try again or contact your administrator." : "Proovi uuesti või võta ühendust administraatoriga.",
- "Current password" : "Praegune parool",
- "New password" : "Uus parool",
- "Renew password" : "Uuenda parooli",
- "Wrong password." : "Vale parool.",
+ "Current password" : "Praegune salasõna",
+ "New password" : "Uus salasõna",
+ "Renew password" : "Uuenda salasõna",
+ "Wrong password." : "Vale salasõna.",
"Cancel" : "Loobu",
"Server" : "Server",
"Users" : "Kasutajad",
diff --git a/apps/user_ldap/l10n/et_EE.json b/apps/user_ldap/l10n/et_EE.json
index 8e9306fb653..3d90e2d17ce 100644
--- a/apps/user_ldap/l10n/et_EE.json
+++ b/apps/user_ldap/l10n/et_EE.json
@@ -3,18 +3,20 @@
"Failed to delete the server configuration" : "Serveri seadistuse kustutamine ebaõnnestus",
"Invalid configuration: Anonymous binding is not allowed." : "Vale seadistus: anonüümne sidumine pole lubatud.",
"Valid configuration, connection established!" : "Korrektne seadistus, ühendus on loodud!",
+ "Valid configuration, but binding failed. Please check the server settings and credentials." : "Seadistus on korrektne, kuid sidumine ei õnnestunud. Palun kontrolli serveri seadistusi ja ühenduse kasutajanime/salasõna.",
"Invalid configuration: %s" : "Vigane seadistus: %s",
"No action specified" : "Tegevusi pole määratletud",
"No configuration specified" : "Seadistust pole määratletud",
"No data specified" : "Andmeid pole määratletud",
+ "Invalid data specified" : "Kirjeldatud on vigased andmed",
"Could not set configuration %1$s to %2$s" : "Ei õnnestunud muuta „%1$s“ seadistuse väärtuseks „%2$s“",
"Action does not exist" : "Toimingut pole olemas",
"Renewing …" : "Värskendamine ...",
- "Very weak password" : "Väga nõrk parool",
- "Weak password" : "Nõrk parool",
- "So-so password" : "Enam-vähem sobiv parool",
- "Good password" : "Hea parool",
- "Strong password" : "Väga hea parool",
+ "Very weak password" : "Väga nõrk salasõna",
+ "Weak password" : "Nõrk salasõna",
+ "So-so password" : "Enam-vähem sobiv salasõna",
+ "Good password" : "Hea salasõna",
+ "Strong password" : "Väga hea salasõna",
"The Base DN appears to be wrong" : "Näib, et Base DN on vale",
"Testing configuration…" : "Seadistuse testimine",
"Configuration incorrect" : "Seadistus on vigane",
@@ -28,11 +30,15 @@
"Could not detect Base DN, please enter it manually." : "BaasDN-i tuvastamine ebaõnnestus. Palun sisesta see käsitsi.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "BaasDN-is ei leitu ühtegi objekti.",
- "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogi kirjet.",
+ "More than 1,000 directory entries available." : "Saadaval on rohkem kui 1000 kataloogikirjet.",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["„Base DN“ alusel on saadaval {objectsFound} kirje","„Base DN“ alusel on saadaval {objectsFound} kirjet"],
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Tekkis viga. Palun kontrolli, kas „Base DN“ on õige, ühendus toimib ning kasutajanimi/salasõna on korrektsed.",
"Do you really want to delete the current Server Configuration?" : "Oled kindel, et tahad kustutada praegust serveri seadistust?",
"Confirm Deletion" : "Kinnita kustutamine",
"Mappings cleared successfully!" : "Vastandused on eemaldatud!",
"Error while clearing the mappings." : "Viga vastanduse/seose eemaldamisel.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonüümne sidumine pole lubatud. Palun sisesta kasutaja „User DN“ ja salasõna.",
+ "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP päringu viga. Anonüümne sidumine pole ilmselt lubatud.",
"Mode switch" : "Režiimi lüliti",
"Select attributes" : "Vali atribuudid",
"User found and settings verified." : "Kasutaja leiti ja seaded on kontrollitud.",
@@ -40,10 +46,19 @@
"Password change rejected. Hint: %s" : "Salasõna muutmine polnud võimalik. Selgitus: %s",
"Mandatory field \"%s\" left empty" : "Kohustuslik väli „%s“ on jäänud tühjaks",
"Login filter does not contain %s placeholder." : "Kasutajanimede filtris puudub kohatäitja „%s“",
- "Please login with the new password" : "Palun logi uue parooliga sisse",
- "Your password will expire tomorrow." : "Su parool aegub homme.",
- "Your password will expire today." : "Su parool aegub täna.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Su parool aegub %n päeva jooksul.","Su parool aegub %n päeva jooksul."],
+ "Please login with the new password" : "Palun logi uue salasõnaga sisse",
+ "LDAP User backend" : "LPAD-i põhine tausteteenus kasutajate jaoks",
+ "Your password will expire tomorrow." : "Su salasõna aegub homme.",
+ "Your password will expire today." : "Su salasõna aegub täna.",
+ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Su salasõna aegub %n päeva jooksul.","Su salasõna aegub %n päeva jooksul."],
+ "LDAP/AD integration" : "LDAP/AD lõiming",
+ "LDAP Connection" : "LDAP ühendus",
+ "Invalid LDAP UUIDs" : "Vigased LDAP UUID-d",
+ "None found" : "Mitte midagi ei leidu",
+ "_%n group found_::_%n groups found_" : ["Leidus %n grupp","Leidus %n gruppi"],
+ "> 1000 groups found" : "Leidus üle 1000 grupi",
+ "> 1000 users found" : "Leidus üle 1000 kasutaja",
+ "_%n user found_::_%n users found_" : ["Leidus %n kasutaja","Leidus %n kasutajat"],
"Could not find the desired feature" : "Ei suuda leida soovitud funktsioonaalsust",
"Invalid Host" : "Vigane server",
"Test Configuration" : "Testi seadistust",
@@ -53,7 +68,7 @@
"Only from these groups:" : "Ainult neist gruppidest:",
"Search groups" : "Otsi gruppe",
"Available groups" : "Saadaolevad grupid",
- "Selected groups" : "Validut grupid",
+ "Selected groups" : "Valitud grupid",
"Edit LDAP Query" : "Muuda LDAP päringut",
"LDAP Filter:" : "LDAP filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filter määrab millised LDAP grupid saavad ligipääsu sellele %s instantsile.",
@@ -66,9 +81,9 @@
"Port" : "Port",
"Detect Port" : "Tuvasta port",
"User DN" : "Kasutaja DN",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja parool tühjaks.",
- "Password" : "Parool",
- "For anonymous access, leave DN and Password empty." : "Anonüümseks ligipääsuks jäta DN ja parool tühjaks.",
+ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja salasõna tühjaks.",
+ "Password" : "Salasõna",
+ "For anonymous access, leave DN and Password empty." : "Anonüümseks ligipääsuks jäta DN ja salasõna tühjaks.",
"Save Credentials" : "Salvesta kasutajaandmed",
"One Base DN per line" : "Üks baas-DN rea kohta",
"You can specify Base DN for users and groups in the Advanced tab" : "Sa saad kasutajate ja gruppide baas DN-i määrata lisavalikute vahekaardilt",
@@ -82,13 +97,13 @@
"Saving" : "Salvestamine",
"Back" : "Tagasi",
"Continue" : "Jätka",
- "Please renew your password." : "Palun uuenda oma parool.",
+ "Please renew your password." : "Palun uuenda oma salasõna.",
"An internal error occurred." : "Tekkis sisemine tõrge.",
"Please try again or contact your administrator." : "Proovi uuesti või võta ühendust administraatoriga.",
- "Current password" : "Praegune parool",
- "New password" : "Uus parool",
- "Renew password" : "Uuenda parooli",
- "Wrong password." : "Vale parool.",
+ "Current password" : "Praegune salasõna",
+ "New password" : "Uus salasõna",
+ "Renew password" : "Uuenda salasõna",
+ "Wrong password." : "Vale salasõna.",
"Cancel" : "Loobu",
"Server" : "Server",
"Users" : "Kasutajad",
diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js
index cf6df1a9362..8f5aaf91239 100644
--- a/apps/user_ldap/l10n/fr.js
+++ b/apps/user_ldap/l10n/fr.js
@@ -6,10 +6,12 @@ OC.L10N.register(
"Invalid configuration: Anonymous binding is not allowed." : "Configuration non valable : Le lien anonyme n'est pas autorisé.",
"Valid configuration, connection established!" : "Configuration valide, connexion établie !",
"Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuration valide, mais le lien a échoué. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.",
+ "Invalid configuration: %s" : "Configuration non valide : %s",
"No action specified" : "Aucune action spécifiée",
"No configuration specified" : "Aucune configuration spécifiée",
"No data specified" : "Aucune donnée spécifiée",
"Invalid data specified" : "Données spécifiées invalides",
+ "Could not set configuration %1$s to %2$s" : "Impossible de changer la configuration %1$s pour %2$s",
"Action does not exist" : "L'action n'existe pas",
"Renewing …" : "Renouvellement en cours...",
"Very weak password" : "Mot de passe très faible",
@@ -52,6 +54,14 @@ OC.L10N.register(
"The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "La chaîne \"%uid\" est manquante. Cette chaîne est remplacée par l'identifiant de connexion lors des requêtes LDAP/AD.",
"Please provide a login name to test against" : "Veuillez indiquer un identifiant de connexion avec lequel tester.",
"The group box was disabled, because the LDAP/AD server does not support memberOf." : "Les groupes sont désactivés car le serveur LDAP/AD ne prend pas en charge memberOf.",
+ "Password change rejected. Hint: %s" : "Changement du mot de passe rejetée. Astuce : %s",
+ "Mandatory field \"%s\" left empty" : "Le champ obligatoire \"%s\" n'est pas renseigné",
+ "A password is given, but not an LDAP agent" : "Un mot de passe est indiqué, mais pas un agent LDAP",
+ "No password is given for the user agent" : "Aucun mot de passe n'est indiqué pour l'agent utilisateur",
+ "No LDAP base DN was given" : "Aucun DN de base LDAP n'a été indiqué",
+ "User base DN is not a subnode of global base DN" : "Le DN de base utilisateur n'est pas un sous-noeud du DN de base global",
+ "Group base DN is not a subnode of global base DN" : "Le DN de base du groupe n'est pas un sous-noeud du DN de base global",
+ "Login filter does not contain %s placeholder." : "Le filtre de connexion ne doit pas contenir l'élément de substitution %s",
"Please login with the new password" : "Veuillez vous connecter avec le nouveau mot de passe",
"LDAP User backend" : "Infrastructure utilisateur LDAP",
"Your password will expire tomorrow." : "Votre mot de passe expirera demain",
diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json
index 1b3111a060c..666b4fac5b4 100644
--- a/apps/user_ldap/l10n/fr.json
+++ b/apps/user_ldap/l10n/fr.json
@@ -4,10 +4,12 @@
"Invalid configuration: Anonymous binding is not allowed." : "Configuration non valable : Le lien anonyme n'est pas autorisé.",
"Valid configuration, connection established!" : "Configuration valide, connexion établie !",
"Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuration valide, mais le lien a échoué. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.",
+ "Invalid configuration: %s" : "Configuration non valide : %s",
"No action specified" : "Aucune action spécifiée",
"No configuration specified" : "Aucune configuration spécifiée",
"No data specified" : "Aucune donnée spécifiée",
"Invalid data specified" : "Données spécifiées invalides",
+ "Could not set configuration %1$s to %2$s" : "Impossible de changer la configuration %1$s pour %2$s",
"Action does not exist" : "L'action n'existe pas",
"Renewing …" : "Renouvellement en cours...",
"Very weak password" : "Mot de passe très faible",
@@ -50,6 +52,14 @@
"The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "La chaîne \"%uid\" est manquante. Cette chaîne est remplacée par l'identifiant de connexion lors des requêtes LDAP/AD.",
"Please provide a login name to test against" : "Veuillez indiquer un identifiant de connexion avec lequel tester.",
"The group box was disabled, because the LDAP/AD server does not support memberOf." : "Les groupes sont désactivés car le serveur LDAP/AD ne prend pas en charge memberOf.",
+ "Password change rejected. Hint: %s" : "Changement du mot de passe rejetée. Astuce : %s",
+ "Mandatory field \"%s\" left empty" : "Le champ obligatoire \"%s\" n'est pas renseigné",
+ "A password is given, but not an LDAP agent" : "Un mot de passe est indiqué, mais pas un agent LDAP",
+ "No password is given for the user agent" : "Aucun mot de passe n'est indiqué pour l'agent utilisateur",
+ "No LDAP base DN was given" : "Aucun DN de base LDAP n'a été indiqué",
+ "User base DN is not a subnode of global base DN" : "Le DN de base utilisateur n'est pas un sous-noeud du DN de base global",
+ "Group base DN is not a subnode of global base DN" : "Le DN de base du groupe n'est pas un sous-noeud du DN de base global",
+ "Login filter does not contain %s placeholder." : "Le filtre de connexion ne doit pas contenir l'élément de substitution %s",
"Please login with the new password" : "Veuillez vous connecter avec le nouveau mot de passe",
"LDAP User backend" : "Infrastructure utilisateur LDAP",
"Your password will expire tomorrow." : "Votre mot de passe expirera demain",
diff --git a/apps/user_ldap/l10n/fy_NL.js b/apps/user_ldap/l10n/fy_NL.js
deleted file mode 100644
index 37042a4f412..00000000000
--- a/apps/user_ldap/l10n/fy_NL.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/fy_NL.json b/apps/user_ldap/l10n/fy_NL.json
deleted file mode 100644
index 521de7ba1a8..00000000000
--- a/apps/user_ldap/l10n/fy_NL.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/gl.js b/apps/user_ldap/l10n/gl.js
index d97ec49e13c..a39e92ab1f8 100644
--- a/apps/user_ldap/l10n/gl.js
+++ b/apps/user_ldap/l10n/gl.js
@@ -61,6 +61,7 @@ OC.L10N.register(
"No LDAP base DN was given" : "Non se indicou un DN base de LDAP",
"User base DN is not a subnode of global base DN" : "O DN base do usuario non é un subnodo do DN base global",
"Group base DN is not a subnode of global base DN" : "O DN base de grupo non é un subnodo do DN base global",
+ "Login filter does not contain %s placeholder." : "O filtro de inicio de sesión non contén o marcador de substitución %s.",
"Please login with the new password" : "Acceda co novo contrasinal",
"LDAP User backend" : "Infraestrutura do usuario LDAP",
"Your password will expire tomorrow." : "O seu contrasinal caduca mañá.",
diff --git a/apps/user_ldap/l10n/gl.json b/apps/user_ldap/l10n/gl.json
index 952066b7994..58b0658ebf0 100644
--- a/apps/user_ldap/l10n/gl.json
+++ b/apps/user_ldap/l10n/gl.json
@@ -59,6 +59,7 @@
"No LDAP base DN was given" : "Non se indicou un DN base de LDAP",
"User base DN is not a subnode of global base DN" : "O DN base do usuario non é un subnodo do DN base global",
"Group base DN is not a subnode of global base DN" : "O DN base de grupo non é un subnodo do DN base global",
+ "Login filter does not contain %s placeholder." : "O filtro de inicio de sesión non contén o marcador de substitución %s.",
"Please login with the new password" : "Acceda co novo contrasinal",
"LDAP User backend" : "Infraestrutura do usuario LDAP",
"Your password will expire tomorrow." : "O seu contrasinal caduca mañá.",
diff --git a/apps/user_ldap/l10n/gu.js b/apps/user_ldap/l10n/gu.js
deleted file mode 100644
index 37042a4f412..00000000000
--- a/apps/user_ldap/l10n/gu.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/gu.json b/apps/user_ldap/l10n/gu.json
deleted file mode 100644
index 521de7ba1a8..00000000000
--- a/apps/user_ldap/l10n/gu.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/hy.js b/apps/user_ldap/l10n/hy.js
deleted file mode 100644
index 6e3fc1a22c8..00000000000
--- a/apps/user_ldap/l10n/hy.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Groups" : "Խմբեր",
- "Help" : "Օգնություն",
- "Password" : "Գաղտնաբառ",
- "Continue" : "Շարունակել"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/hy.json b/apps/user_ldap/l10n/hy.json
deleted file mode 100644
index cff0593a7be..00000000000
--- a/apps/user_ldap/l10n/hy.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Groups" : "Խմբեր",
- "Help" : "Օգնություն",
- "Password" : "Գաղտնաբառ",
- "Continue" : "Շարունակել"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ia.js b/apps/user_ldap/l10n/ia.js
deleted file mode 100644
index c129620ee87..00000000000
--- a/apps/user_ldap/l10n/ia.js
+++ /dev/null
@@ -1,12 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Users" : "Usatores",
- "Groups" : "Gruppos",
- "Help" : "Adjuta",
- "Password" : "Contrasigno",
- "Back" : "Retro",
- "Continue" : "Continuar",
- "Advanced" : "Avantiate"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/ia.json b/apps/user_ldap/l10n/ia.json
deleted file mode 100644
index 86b535fd079..00000000000
--- a/apps/user_ldap/l10n/ia.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "translations": {
- "Users" : "Usatores",
- "Groups" : "Gruppos",
- "Help" : "Adjuta",
- "Password" : "Contrasigno",
- "Back" : "Retro",
- "Continue" : "Continuar",
- "Advanced" : "Avantiate"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/io.js b/apps/user_ldap/l10n/io.js
deleted file mode 100644
index 37042a4f412..00000000000
--- a/apps/user_ldap/l10n/io.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/io.json b/apps/user_ldap/l10n/io.json
deleted file mode 100644
index 521de7ba1a8..00000000000
--- a/apps/user_ldap/l10n/io.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/is.js b/apps/user_ldap/l10n/is.js
deleted file mode 100644
index 72b38e80231..00000000000
--- a/apps/user_ldap/l10n/is.js
+++ /dev/null
@@ -1,100 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to clear the mappings." : "Mistókst að hreinsa varpanir.",
- "Failed to delete the server configuration" : "Mistókst að eyða uppsetningu þjónsins",
- "Valid configuration, connection established!" : "Gild uppsetning, tengingu komið á!",
- "Valid configuration, but binding failed. Please check the server settings and credentials." : "Uppsetningin er gild, en binding mistókst. Skoðaðu stillingar þjónsins og auðkenni.",
- "Invalid configuration. Please have a look at the logs for further details." : "Uppsetningin er ógild. Skoðaðu atvikaskrárnar til að sjá nánari upplýsingar.",
- "No action specified" : "Engin aðgerð tiltekin",
- "No configuration specified" : "Engin uppsetning tiltekin",
- "No data specified" : "Engin gögn tiltekin",
- " Could not set configuration %s" : "Gat ekki sett uppsetningu %s",
- "Action does not exist" : "Aðgerð er ekki til",
- "Renewing …" : "Endurnýja …",
- "Very weak password" : "Mjög veikt lykilorð",
- "Weak password" : "Veikt lykilorð",
- "So-so password" : "Miðlungs lykilorð",
- "Good password" : "Gott lykilorð",
- "Strong password" : "Sterkt lykilorð",
- "Testing configuration…" : "Prófa stillingar…",
- "Configuration incorrect" : "Röng uppsetning",
- "Configuration incomplete" : "Ófullgerð uppsetning",
- "Configuration OK" : "Stillingar eru í lagi",
- "Select groups" : "Veldu hópa",
- "Please check the credentials, they seem to be wrong." : "Athugaðu auðkennin, þau líta út fyrir að vera röng.",
- "{nthServer}. Server" : "{nthServer}. Þjónn",
- "More than 1,000 directory entries available." : "Meira en 1,000 möppufærslur tiltækar.",
- "Do you really want to delete the current Server Configuration?" : "Ertu viss um að þú viljir eyða núgildandi uppsetningu á þjóninum?",
- "Confirm Deletion" : "Staðfesta eyðingu",
- "Mappings cleared successfully!" : "Það tókst að hreinsa varpanir!",
- "Error while clearing the mappings." : "Villa við að hreinsa út varpanir.",
- "Mode switch" : "Skipta um ham",
- "Select attributes" : "Veldu eigindi",
- "User found and settings verified." : "Notandi fannst og stillingar yfirfarnar.",
- "Password change rejected. Hint: " : "Breytingu á lykilorði hafnað. Ábending: ",
- "Please login with the new password" : "Skráðu þig inn með nýja lykilorðinu",
- "Your password will expire tomorrow." : "Lykilorðið þitt rennur út á morgun.",
- "Your password will expire today." : "Lykilorðið þitt rennur út í dag.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Lykilorðið þitt rennur út innan %n dags.","Lykilorðið þitt rennur út innan %n daga."],
- "_%s group found_::_%s groups found_" : ["%s hópur fannst","%s hópar fundust"],
- "_%s user found_::_%s users found_" : ["%s notandi fannst","%s notendur fundust"],
- "Could not find the desired feature" : "Gat ekki fundið eiginleika sem óskað var eftir",
- "Invalid Host" : "Ógild vél",
- "LDAP user and group backend" : "LDAP notandi og bakendi hóps",
- "Test Configuration" : "Prófa uppsetningu",
- "Help" : "Hjálp",
- "Only from these groups:" : "Aðeins úr þessum hópum:",
- "Search groups" : "Leita í hópum",
- "Available groups" : "Tiltækir hópar",
- "Selected groups" : "Valdir hópar",
- "Edit LDAP Query" : "Breyta LDAP-fyrirspurn",
- "LDAP Filter:" : "LDAP sía:",
- "Verify settings and count the groups" : "Sannprófa stillingar og telja hópa",
- "Other Attributes:" : "Önnur eigindi:",
- "Test Loginname" : "Prófa innskráningarnafn",
- "Verify settings" : "Sannprófa stillingar",
- "%s. Server:" : "%s. Þjónn:",
- "Add a new configuration" : "Bæta við nýrri uppsetningu",
- "Delete the current configuration" : "Eyða núgildandi uppsetningu",
- "Host" : "Hýsill",
- "Port" : "Gátt",
- "Detect Port" : "Finna gátt",
- "User DN" : "DN notanda",
- "Password" : "Lykilorð",
- "Save Credentials" : "Vista auðkenni",
- "Verify settings and count users" : "Sannprófa stillingar og telja notendur",
- "Saving" : "Vistun",
- "Back" : "Til baka",
- "Continue" : "Halda áfram",
- "Please renew your password." : "Endurnýjaðu lykilorðið þitt",
- "An internal error occurred." : "Innri villa kom upp.",
- "Please try again or contact your administrator." : "Reyndu aftur eða hafðu samband við kerfisstjóra.",
- "Current password" : "Núverandi lykilorð",
- "New password" : "Nýtt lykilorð",
- "Renew password" : "Endurnýja lykilorð",
- "Wrong password." : "Rangt lykilorð.",
- "Cancel" : "Hætta við",
- "Server" : "Þjónn",
- "Users" : "Notendur",
- "Login Attributes" : "Eigindi innskráningar",
- "Groups" : "Hópar",
- "Expert" : "Snillingur",
- "Advanced" : "Ítarlegt",
- "Connection Settings" : "Valkostir tengingar ",
- "Configuration Active" : "Uppsetning er virk",
- "Disable Main Server" : "Gera aðalþjón óvirkan",
- "Turn off SSL certificate validation." : "Slökkva á sannvottun SSL-skilríkja.",
- "in seconds. A change empties the cache." : "í sekúndum. Breyting tæmir skyndiminnið.",
- "Directory Settings" : "Stillingar möppu",
- "Nested Groups" : "Faldaðir hópar",
- "(New password is sent as plain text to LDAP)" : "(Nýtt lykilorð er sent sem hreinn texti til LDAP)",
- "Default password policy DN" : "Sjálfgefin lykilorðastefna DN",
- "Special Attributes" : "Sérstök eigindi",
- "Quota Field" : "Gagnasvið fyrir kvóta",
- "Quota Default" : "Sjálfgefinn kvóti",
- "Email Field" : "Gagnasvið fyrir netfang",
- "Internal Username" : "Innra notandanafn",
- "UUID Attribute for Groups:" : "UUID-eigindi fyrir hópa:"
-},
-"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/user_ldap/l10n/is.json b/apps/user_ldap/l10n/is.json
deleted file mode 100644
index f66fd4a3edb..00000000000
--- a/apps/user_ldap/l10n/is.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{ "translations": {
- "Failed to clear the mappings." : "Mistókst að hreinsa varpanir.",
- "Failed to delete the server configuration" : "Mistókst að eyða uppsetningu þjónsins",
- "Valid configuration, connection established!" : "Gild uppsetning, tengingu komið á!",
- "Valid configuration, but binding failed. Please check the server settings and credentials." : "Uppsetningin er gild, en binding mistókst. Skoðaðu stillingar þjónsins og auðkenni.",
- "Invalid configuration. Please have a look at the logs for further details." : "Uppsetningin er ógild. Skoðaðu atvikaskrárnar til að sjá nánari upplýsingar.",
- "No action specified" : "Engin aðgerð tiltekin",
- "No configuration specified" : "Engin uppsetning tiltekin",
- "No data specified" : "Engin gögn tiltekin",
- " Could not set configuration %s" : "Gat ekki sett uppsetningu %s",
- "Action does not exist" : "Aðgerð er ekki til",
- "Renewing …" : "Endurnýja …",
- "Very weak password" : "Mjög veikt lykilorð",
- "Weak password" : "Veikt lykilorð",
- "So-so password" : "Miðlungs lykilorð",
- "Good password" : "Gott lykilorð",
- "Strong password" : "Sterkt lykilorð",
- "Testing configuration…" : "Prófa stillingar…",
- "Configuration incorrect" : "Röng uppsetning",
- "Configuration incomplete" : "Ófullgerð uppsetning",
- "Configuration OK" : "Stillingar eru í lagi",
- "Select groups" : "Veldu hópa",
- "Please check the credentials, they seem to be wrong." : "Athugaðu auðkennin, þau líta út fyrir að vera röng.",
- "{nthServer}. Server" : "{nthServer}. Þjónn",
- "More than 1,000 directory entries available." : "Meira en 1,000 möppufærslur tiltækar.",
- "Do you really want to delete the current Server Configuration?" : "Ertu viss um að þú viljir eyða núgildandi uppsetningu á þjóninum?",
- "Confirm Deletion" : "Staðfesta eyðingu",
- "Mappings cleared successfully!" : "Það tókst að hreinsa varpanir!",
- "Error while clearing the mappings." : "Villa við að hreinsa út varpanir.",
- "Mode switch" : "Skipta um ham",
- "Select attributes" : "Veldu eigindi",
- "User found and settings verified." : "Notandi fannst og stillingar yfirfarnar.",
- "Password change rejected. Hint: " : "Breytingu á lykilorði hafnað. Ábending: ",
- "Please login with the new password" : "Skráðu þig inn með nýja lykilorðinu",
- "Your password will expire tomorrow." : "Lykilorðið þitt rennur út á morgun.",
- "Your password will expire today." : "Lykilorðið þitt rennur út í dag.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Lykilorðið þitt rennur út innan %n dags.","Lykilorðið þitt rennur út innan %n daga."],
- "_%s group found_::_%s groups found_" : ["%s hópur fannst","%s hópar fundust"],
- "_%s user found_::_%s users found_" : ["%s notandi fannst","%s notendur fundust"],
- "Could not find the desired feature" : "Gat ekki fundið eiginleika sem óskað var eftir",
- "Invalid Host" : "Ógild vél",
- "LDAP user and group backend" : "LDAP notandi og bakendi hóps",
- "Test Configuration" : "Prófa uppsetningu",
- "Help" : "Hjálp",
- "Only from these groups:" : "Aðeins úr þessum hópum:",
- "Search groups" : "Leita í hópum",
- "Available groups" : "Tiltækir hópar",
- "Selected groups" : "Valdir hópar",
- "Edit LDAP Query" : "Breyta LDAP-fyrirspurn",
- "LDAP Filter:" : "LDAP sía:",
- "Verify settings and count the groups" : "Sannprófa stillingar og telja hópa",
- "Other Attributes:" : "Önnur eigindi:",
- "Test Loginname" : "Prófa innskráningarnafn",
- "Verify settings" : "Sannprófa stillingar",
- "%s. Server:" : "%s. Þjónn:",
- "Add a new configuration" : "Bæta við nýrri uppsetningu",
- "Delete the current configuration" : "Eyða núgildandi uppsetningu",
- "Host" : "Hýsill",
- "Port" : "Gátt",
- "Detect Port" : "Finna gátt",
- "User DN" : "DN notanda",
- "Password" : "Lykilorð",
- "Save Credentials" : "Vista auðkenni",
- "Verify settings and count users" : "Sannprófa stillingar og telja notendur",
- "Saving" : "Vistun",
- "Back" : "Til baka",
- "Continue" : "Halda áfram",
- "Please renew your password." : "Endurnýjaðu lykilorðið þitt",
- "An internal error occurred." : "Innri villa kom upp.",
- "Please try again or contact your administrator." : "Reyndu aftur eða hafðu samband við kerfisstjóra.",
- "Current password" : "Núverandi lykilorð",
- "New password" : "Nýtt lykilorð",
- "Renew password" : "Endurnýja lykilorð",
- "Wrong password." : "Rangt lykilorð.",
- "Cancel" : "Hætta við",
- "Server" : "Þjónn",
- "Users" : "Notendur",
- "Login Attributes" : "Eigindi innskráningar",
- "Groups" : "Hópar",
- "Expert" : "Snillingur",
- "Advanced" : "Ítarlegt",
- "Connection Settings" : "Valkostir tengingar ",
- "Configuration Active" : "Uppsetning er virk",
- "Disable Main Server" : "Gera aðalþjón óvirkan",
- "Turn off SSL certificate validation." : "Slökkva á sannvottun SSL-skilríkja.",
- "in seconds. A change empties the cache." : "í sekúndum. Breyting tæmir skyndiminnið.",
- "Directory Settings" : "Stillingar möppu",
- "Nested Groups" : "Faldaðir hópar",
- "(New password is sent as plain text to LDAP)" : "(Nýtt lykilorð er sent sem hreinn texti til LDAP)",
- "Default password policy DN" : "Sjálfgefin lykilorðastefna DN",
- "Special Attributes" : "Sérstök eigindi",
- "Quota Field" : "Gagnasvið fyrir kvóta",
- "Quota Default" : "Sjálfgefinn kvóti",
- "Email Field" : "Gagnasvið fyrir netfang",
- "Internal Username" : "Innra notandanafn",
- "UUID Attribute for Groups:" : "UUID-eigindi fyrir hópa:"
-},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/km.js b/apps/user_ldap/l10n/km.js
deleted file mode 100644
index a42ee7b14f1..00000000000
--- a/apps/user_ldap/l10n/km.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to delete the server configuration" : "លុប​ការ​កំណត់​រចនា​សម្ព័ន្ធ​ម៉ាស៊ីន​បម្រើ មិន​បាន​សម្រេច",
- "Do you really want to delete the current Server Configuration?" : "តើ​អ្នក​ពិត​ជា​ចង់​លុប​ការ​កំណត់​រចនាសម្ព័ន្ធ​ម៉ាស៊ីន​បម្រើ​បច្ចុប្បន្ន​មែន​ទេ?",
- "Confirm Deletion" : "បញ្ជាក់​ការ​លុប",
- "Users" : "អ្នកប្រើ",
- "Groups" : "ក្រុ",
- "Help" : "ជំនួយ",
- "Host" : "ម៉ាស៊ីន​ផ្ទុក",
- "Port" : "ច្រក",
- "Password" : "ពាក្យសម្ងាត់",
- "Back" : "ត្រឡប់ក្រោយ",
- "Continue" : "បន្ត",
- "Advanced" : "កម្រិត​ខ្ពស់"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/km.json b/apps/user_ldap/l10n/km.json
deleted file mode 100644
index 5c8ec8897ba..00000000000
--- a/apps/user_ldap/l10n/km.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "Failed to delete the server configuration" : "លុប​ការ​កំណត់​រចនា​សម្ព័ន្ធ​ម៉ាស៊ីន​បម្រើ មិន​បាន​សម្រេច",
- "Do you really want to delete the current Server Configuration?" : "តើ​អ្នក​ពិត​ជា​ចង់​លុប​ការ​កំណត់​រចនាសម្ព័ន្ធ​ម៉ាស៊ីន​បម្រើ​បច្ចុប្បន្ន​មែន​ទេ?",
- "Confirm Deletion" : "បញ្ជាក់​ការ​លុប",
- "Users" : "អ្នកប្រើ",
- "Groups" : "ក្រុ",
- "Help" : "ជំនួយ",
- "Host" : "ម៉ាស៊ីន​ផ្ទុក",
- "Port" : "ច្រក",
- "Password" : "ពាក្យសម្ងាត់",
- "Back" : "ត្រឡប់ក្រោយ",
- "Continue" : "បន្ត",
- "Advanced" : "កម្រិត​ខ្ពស់"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/kn.js b/apps/user_ldap/l10n/kn.js
deleted file mode 100644
index f70fc699983..00000000000
--- a/apps/user_ldap/l10n/kn.js
+++ /dev/null
@@ -1,12 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Users" : "ಬಳಕೆದಾರರು",
- "Groups" : "ಗುಂಪುಗಳು",
- "Help" : "ಸಹಾಯ",
- "Host" : "ಅತಿಥೆಯ-ಗಣಕ",
- "Port" : "ರೇವು",
- "Password" : "ಗುಪ್ತ ಪದ",
- "Continue" : "ಮುಂದುವರಿಸಿ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/kn.json b/apps/user_ldap/l10n/kn.json
deleted file mode 100644
index 39705ffba6a..00000000000
--- a/apps/user_ldap/l10n/kn.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "translations": {
- "Users" : "ಬಳಕೆದಾರರು",
- "Groups" : "ಗುಂಪುಗಳು",
- "Help" : "ಸಹಾಯ",
- "Host" : "ಅತಿಥೆಯ-ಗಣಕ",
- "Port" : "ರೇವು",
- "Password" : "ಗುಪ್ತ ಪದ",
- "Continue" : "ಮುಂದುವರಿಸಿ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/lb.js b/apps/user_ldap/l10n/lb.js
deleted file mode 100644
index f62d2924488..00000000000
--- a/apps/user_ldap/l10n/lb.js
+++ /dev/null
@@ -1,51 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to delete the server configuration" : "D'Server-Konfiguratioun konnt net geläscht ginn",
- "The configuration is invalid: anonymous bind is not allowed." : "Dës Konfiguratioun ass ongëlteg: eng anonym Bindung ass net erlaabt.",
- "Action does not exist" : "Dës Aktioun gëtt et net",
- "Testing configuration…" : "D'Konfiguratioun gëtt getest...",
- "Configuration incorrect" : "D'Konfiguratioun ass net korrekt",
- "Configuration incomplete" : "D'Konfiguratioun ass net komplett",
- "Configuration OK" : "Konfiguratioun OK",
- "Select groups" : "Wiel Gruppen äus",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "D'Späicheren huet net geklappt. W.e.g. géi sécher dass Datebank an der Operatioun ass. Lued nach emol éiers de weider fiers.",
- "Select attributes" : "Wiel Attributer aus",
- "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "De Benotzer konnt net fonnt ginn. W.e.g. kuck deng Login Attributer a Benotzernumm no. \n ",
- "_%s group found_::_%s groups found_" : ["%s Grupp fonnt","%s Gruppe fonnt"],
- "_%s user found_::_%s users found_" : ["%s Benotzer fonnt","%s Benotzere fonnt"],
- "Could not find the desired feature" : "Déi gewënschte Funktioun konnt net fonnt ginn",
- "Server" : "Server",
- "Users" : "Benotzer",
- "Groups" : "Gruppen",
- "Test Configuration" : "Konfiguratiounstest",
- "Help" : "Hëllef",
- "Groups meeting these criteria are available in %s:" : "D'Gruppen, déi dës Critèren erfëllen sinn am %s:",
- "Only these object classes:" : "Nëmmen des Klass vun Objeten:",
- "Only from these groups:" : "Nëmme vun dëse Gruppen:",
- "Search groups" : "Sich Gruppen",
- "Available groups" : "Disponibel Gruppen",
- "Selected groups" : "Ausgewielte Gruppen",
- "Test Loginname" : "Test Benotzernumm",
- "Verify settings" : "Astellungen iwwerpréiwen",
- "1. Server" : "1. Server",
- "%s. Server:" : "%s. Server",
- "Delete the current configuration" : "Läsch déi aktuell Konfiguratioun",
- "Host" : "Host",
- "Port" : "Port",
- "User DN" : "Benotzer DN",
- "Password" : "Passwuert",
- "Saving" : "Speicheren...",
- "Back" : "Zeréck",
- "Continue" : "Weider",
- "Advanced" : "Erweidert",
- "Connection Settings" : "D'Astellunge vun der Verbindung",
- "Configuration Active" : "D'Konfiguratioun ass aktiv",
- "When unchecked, this configuration will be skipped." : "Ouni Iwwerpréiwung wäert dës Konfiguratioun iwwergaange ginn.",
- "Directory Settings" : "Dossier's Astellungen",
- "in bytes" : "A Bytes",
- "Email Field" : "Email Feld",
- "Internal Username" : "Interne Benotzernumm",
- "Internal Username Attribute:" : "Interne Benotzernumm Attribut:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/lb.json b/apps/user_ldap/l10n/lb.json
deleted file mode 100644
index e869a5821b1..00000000000
--- a/apps/user_ldap/l10n/lb.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{ "translations": {
- "Failed to delete the server configuration" : "D'Server-Konfiguratioun konnt net geläscht ginn",
- "The configuration is invalid: anonymous bind is not allowed." : "Dës Konfiguratioun ass ongëlteg: eng anonym Bindung ass net erlaabt.",
- "Action does not exist" : "Dës Aktioun gëtt et net",
- "Testing configuration…" : "D'Konfiguratioun gëtt getest...",
- "Configuration incorrect" : "D'Konfiguratioun ass net korrekt",
- "Configuration incomplete" : "D'Konfiguratioun ass net komplett",
- "Configuration OK" : "Konfiguratioun OK",
- "Select groups" : "Wiel Gruppen äus",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "D'Späicheren huet net geklappt. W.e.g. géi sécher dass Datebank an der Operatioun ass. Lued nach emol éiers de weider fiers.",
- "Select attributes" : "Wiel Attributer aus",
- "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "De Benotzer konnt net fonnt ginn. W.e.g. kuck deng Login Attributer a Benotzernumm no. \n ",
- "_%s group found_::_%s groups found_" : ["%s Grupp fonnt","%s Gruppe fonnt"],
- "_%s user found_::_%s users found_" : ["%s Benotzer fonnt","%s Benotzere fonnt"],
- "Could not find the desired feature" : "Déi gewënschte Funktioun konnt net fonnt ginn",
- "Server" : "Server",
- "Users" : "Benotzer",
- "Groups" : "Gruppen",
- "Test Configuration" : "Konfiguratiounstest",
- "Help" : "Hëllef",
- "Groups meeting these criteria are available in %s:" : "D'Gruppen, déi dës Critèren erfëllen sinn am %s:",
- "Only these object classes:" : "Nëmmen des Klass vun Objeten:",
- "Only from these groups:" : "Nëmme vun dëse Gruppen:",
- "Search groups" : "Sich Gruppen",
- "Available groups" : "Disponibel Gruppen",
- "Selected groups" : "Ausgewielte Gruppen",
- "Test Loginname" : "Test Benotzernumm",
- "Verify settings" : "Astellungen iwwerpréiwen",
- "1. Server" : "1. Server",
- "%s. Server:" : "%s. Server",
- "Delete the current configuration" : "Läsch déi aktuell Konfiguratioun",
- "Host" : "Host",
- "Port" : "Port",
- "User DN" : "Benotzer DN",
- "Password" : "Passwuert",
- "Saving" : "Speicheren...",
- "Back" : "Zeréck",
- "Continue" : "Weider",
- "Advanced" : "Erweidert",
- "Connection Settings" : "D'Astellunge vun der Verbindung",
- "Configuration Active" : "D'Konfiguratioun ass aktiv",
- "When unchecked, this configuration will be skipped." : "Ouni Iwwerpréiwung wäert dës Konfiguratioun iwwergaange ginn.",
- "Directory Settings" : "Dossier's Astellungen",
- "in bytes" : "A Bytes",
- "Email Field" : "Email Feld",
- "Internal Username" : "Interne Benotzernumm",
- "Internal Username Attribute:" : "Interne Benotzernumm Attribut:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/lo.js b/apps/user_ldap/l10n/lo.js
deleted file mode 100644
index 5494dcae62e..00000000000
--- a/apps/user_ldap/l10n/lo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : [""],
- "_%s user found_::_%s users found_" : [""]
-},
-"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/lo.json b/apps/user_ldap/l10n/lo.json
deleted file mode 100644
index 75f0f056cc4..00000000000
--- a/apps/user_ldap/l10n/lo.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : [""],
- "_%s user found_::_%s users found_" : [""]
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/lv.js b/apps/user_ldap/l10n/lv.js
deleted file mode 100644
index 2c623018a21..00000000000
--- a/apps/user_ldap/l10n/lv.js
+++ /dev/null
@@ -1,114 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to clear the mappings." : "Neizdevās nodzēstu samērošanu.",
- "Failed to delete the server configuration" : "Neizdevās izdzēst servera konfigurāciju",
- "No action specified" : "Nav norādīta darbība",
- "No configuration specified" : "Nav norādīta konfigurācija",
- "No data specified" : "Nav norādīti dati",
- " Could not set configuration %s" : "Nevarēja iestatīt konfigurāciju %s",
- "Action does not exist" : "Darbība neeksistē",
- "Very weak password" : "Ļoti vāja parole",
- "Weak password" : "Vāja parole",
- "So-so password" : "Normāla parole",
- "Good password" : "Laba parole",
- "Strong password" : "Lieliska parole",
- "The Base DN appears to be wrong" : "DN bāze šķiet nepareiza",
- "Testing configuration…" : "Konfigurācijas pārbaude...",
- "Configuration incorrect" : "Nepareiza konfigurācija",
- "Configuration incomplete" : "Nepilnīga konfigurācija",
- "Configuration OK" : "Konfigurācija OK",
- "Select groups" : "Izvēlieties grupas",
- "Select object classes" : "Atlasiet objektu klases",
- "Please check the credentials, they seem to be wrong." : "Lūdzu, pārbaudiet akreditācijas datus, tie šķiet nepareizi.",
- "Please specify the port, it could not be auto-detected." : "Lūdzu, norādiet portu, tas nevarēja būt noteikts automātiski.",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "DN bāzi nevarēja noteikt, lūdzu, pārskatiet datus, resursdatoru un portu.",
- "Could not detect Base DN, please enter it manually." : "Nevarēja noteikt DN bāzi, lūdzu, ievadiet to manuāli.",
- "{nthServer}. Server" : "{nthServer}. Serveris",
- "No object found in the given Base DN. Please revise." : "Neviens objekts nav atrasts konkrētā DN bāzē. Lūdzu pārskatīt.",
- "More than 1,000 directory entries available." : "Vairāk nekā 1,000 kataloga ieraksti ir pieejami.",
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Radās kļūda. Lūdzu, pārbaudiet bāzes DN, kā arī savienojuma iestatījumus vai akreditācijas datus.",
- "Do you really want to delete the current Server Configuration?" : "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?",
- "Confirm Deletion" : "Apstiprināt dzēšanu",
- "Mappings cleared successfully!" : "Kartējumi notīrīta veiksmīgi!",
- "Error while clearing the mappings." : "Kļūda, dzēšot kartējumus.",
- "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP operācijas kļūda. Anonīma sasaiste, iespējams, nav atļauta.",
- "Select attributes" : "Atlasīt atribūtus",
- "Password change rejected. Hint: " : "Paroles maiņas noraidīja. Padoms:",
- "Invalid Host" : "Nederīgs resursdators",
- "Test Configuration" : "Testa konfigurācija",
- "Help" : "Palīdzība",
- "Only these object classes:" : "Tikai šo objektu kategorijas:",
- "Only from these groups:" : "Tikai no šīm grupām:",
- "Search groups" : "Meklēt grupas",
- "Available groups" : "Pieejamās grupas",
- "Selected groups" : "Izvēlētās grupas",
- "Edit LDAP Query" : "Labot LDAP vaicājumu",
- "LDAP Filter:" : "LDAP filtrs:",
- "Verify settings and count the groups" : "Pārbaudiet iestatījumus un saskaitiet grupas",
- "Other Attributes:" : "Citi atribūti:",
- "Test Loginname" : "Pārbaudiet lietotājvārdu",
- "Verify settings" : "Pārbaudīt iestatījumus",
- "%s. Server:" : "%s. Serveris:",
- "Host" : "Resursdators",
- "Port" : "Ports",
- "Detect Port" : "Noteikt portu",
- "User DN" : "Lietotāja DN",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.",
- "Password" : "Parole",
- "For anonymous access, leave DN and Password empty." : "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.",
- "One Base DN per line" : "Viena bāzes DN rindā",
- "You can specify Base DN for users and groups in the Advanced tab" : "Lietotājiem un grupām var norādīt bāzes DN cilnē “Paplašināti”",
- "Detect Base DN" : "Noteikt bāzes DN",
- "Test Base DN" : "Testēt bāzes DN",
- "Verify settings and count users" : "Pārbaudiet iestatījumus un saskaitiet lietotājus",
- "Saving" : "Saglabā",
- "Back" : "Atpakaļ",
- "Continue" : "Turpināt",
- "An internal error occurred." : "Radās iekšēja kļūda.",
- "Please try again or contact your administrator." : "Lūdzu, mēģiniet vēlreiz vai sazinieties ar administratoru.",
- "Current password" : "Pašreizējā parole",
- "New password" : "Jauna parole",
- "Wrong password." : "Nepareiza parole.",
- "Cancel" : "Atcelt",
- "Server" : "Serveris",
- "Users" : "Lietotāji",
- "Login Attributes" : "Pieteikšanās atribūti",
- "Groups" : "Grupas",
- "Expert" : "Eksperts",
- "Advanced" : "Paplašināti",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Brīdinājums:</b> PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.",
- "Connection Settings" : "Savienojuma iestatījumi",
- "Configuration Active" : "Konfigurācija ir aktīva",
- "When unchecked, this configuration will be skipped." : "Ja nav atzīmēts, šī konfigurācija tiks izlaista.",
- "Backup (Replica) Host" : "Rezerves (kopija) serveris",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai.",
- "Backup (Replica) Port" : "Rezerves (kopijas) ports",
- "Disable Main Server" : "Deaktivēt galveno serveri",
- "Turn off SSL certificate validation." : "Izslēgt SSL sertifikātu validēšanu.",
- "Cache Time-To-Live" : "Kešatmiņas dzīvlaiks",
- "in seconds. A change empties the cache." : "sekundēs. Izmaiņas iztukšos kešatmiņu.",
- "Directory Settings" : "Direktorijas iestatījumi",
- "User Display Name Field" : "Lietotāja redzamā vārda lauks",
- "Base User Tree" : "Bāzes lietotāju koks",
- "One User Base DN per line" : "Viens lietotājs bāzes DN rindā",
- "User Search Attributes" : "Lietotāju meklēšanas atribūts",
- "Optional; one attribute per line" : "Neobligāti; viens atribūts rindā",
- "Group Display Name Field" : "Grupas redzamā nosaukuma lauks",
- "Base Group Tree" : "Bāzes grupu koks",
- "One Group Base DN per line" : "Viena grupu bāzes DN rindā",
- "Group Search Attributes" : "Grupu meklēšanas atribūts",
- "Group-Member association" : "Grupu piederības asociācija",
- "Enable LDAP password changes per user" : "Iespējot LDAP paroles maiņu katram lietotājam",
- "(New password is sent as plain text to LDAP)" : "(Jaunā parole tiek nosūtīta kā vienkāršs teksts ar LDAP)",
- "Special Attributes" : "Īpašie atribūti",
- "Quota Field" : "Kvotu lauks",
- "Quota Default" : "Kvotas noklusējums",
- "Email Field" : "E-pasta lauks",
- "User Home Folder Naming Rule" : "Lietotāja mājas mapes nosaukšanas kārtula",
- "Internal Username" : "Iekšējais lietotājvārds",
- "Override UUID detection" : "Ignorēt UUID noteikšanu",
- "UUID Attribute for Users:" : "UUID atribūti lietotājiem:",
- "UUID Attribute for Groups:" : "UUID atribūti grupām:"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/user_ldap/l10n/lv.json b/apps/user_ldap/l10n/lv.json
deleted file mode 100644
index fdebc4b2287..00000000000
--- a/apps/user_ldap/l10n/lv.json
+++ /dev/null
@@ -1,112 +0,0 @@
-{ "translations": {
- "Failed to clear the mappings." : "Neizdevās nodzēstu samērošanu.",
- "Failed to delete the server configuration" : "Neizdevās izdzēst servera konfigurāciju",
- "No action specified" : "Nav norādīta darbība",
- "No configuration specified" : "Nav norādīta konfigurācija",
- "No data specified" : "Nav norādīti dati",
- " Could not set configuration %s" : "Nevarēja iestatīt konfigurāciju %s",
- "Action does not exist" : "Darbība neeksistē",
- "Very weak password" : "Ļoti vāja parole",
- "Weak password" : "Vāja parole",
- "So-so password" : "Normāla parole",
- "Good password" : "Laba parole",
- "Strong password" : "Lieliska parole",
- "The Base DN appears to be wrong" : "DN bāze šķiet nepareiza",
- "Testing configuration…" : "Konfigurācijas pārbaude...",
- "Configuration incorrect" : "Nepareiza konfigurācija",
- "Configuration incomplete" : "Nepilnīga konfigurācija",
- "Configuration OK" : "Konfigurācija OK",
- "Select groups" : "Izvēlieties grupas",
- "Select object classes" : "Atlasiet objektu klases",
- "Please check the credentials, they seem to be wrong." : "Lūdzu, pārbaudiet akreditācijas datus, tie šķiet nepareizi.",
- "Please specify the port, it could not be auto-detected." : "Lūdzu, norādiet portu, tas nevarēja būt noteikts automātiski.",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "DN bāzi nevarēja noteikt, lūdzu, pārskatiet datus, resursdatoru un portu.",
- "Could not detect Base DN, please enter it manually." : "Nevarēja noteikt DN bāzi, lūdzu, ievadiet to manuāli.",
- "{nthServer}. Server" : "{nthServer}. Serveris",
- "No object found in the given Base DN. Please revise." : "Neviens objekts nav atrasts konkrētā DN bāzē. Lūdzu pārskatīt.",
- "More than 1,000 directory entries available." : "Vairāk nekā 1,000 kataloga ieraksti ir pieejami.",
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Radās kļūda. Lūdzu, pārbaudiet bāzes DN, kā arī savienojuma iestatījumus vai akreditācijas datus.",
- "Do you really want to delete the current Server Configuration?" : "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?",
- "Confirm Deletion" : "Apstiprināt dzēšanu",
- "Mappings cleared successfully!" : "Kartējumi notīrīta veiksmīgi!",
- "Error while clearing the mappings." : "Kļūda, dzēšot kartējumus.",
- "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP operācijas kļūda. Anonīma sasaiste, iespējams, nav atļauta.",
- "Select attributes" : "Atlasīt atribūtus",
- "Password change rejected. Hint: " : "Paroles maiņas noraidīja. Padoms:",
- "Invalid Host" : "Nederīgs resursdators",
- "Test Configuration" : "Testa konfigurācija",
- "Help" : "Palīdzība",
- "Only these object classes:" : "Tikai šo objektu kategorijas:",
- "Only from these groups:" : "Tikai no šīm grupām:",
- "Search groups" : "Meklēt grupas",
- "Available groups" : "Pieejamās grupas",
- "Selected groups" : "Izvēlētās grupas",
- "Edit LDAP Query" : "Labot LDAP vaicājumu",
- "LDAP Filter:" : "LDAP filtrs:",
- "Verify settings and count the groups" : "Pārbaudiet iestatījumus un saskaitiet grupas",
- "Other Attributes:" : "Citi atribūti:",
- "Test Loginname" : "Pārbaudiet lietotājvārdu",
- "Verify settings" : "Pārbaudīt iestatījumus",
- "%s. Server:" : "%s. Serveris:",
- "Host" : "Resursdators",
- "Port" : "Ports",
- "Detect Port" : "Noteikt portu",
- "User DN" : "Lietotāja DN",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.",
- "Password" : "Parole",
- "For anonymous access, leave DN and Password empty." : "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.",
- "One Base DN per line" : "Viena bāzes DN rindā",
- "You can specify Base DN for users and groups in the Advanced tab" : "Lietotājiem un grupām var norādīt bāzes DN cilnē “Paplašināti”",
- "Detect Base DN" : "Noteikt bāzes DN",
- "Test Base DN" : "Testēt bāzes DN",
- "Verify settings and count users" : "Pārbaudiet iestatījumus un saskaitiet lietotājus",
- "Saving" : "Saglabā",
- "Back" : "Atpakaļ",
- "Continue" : "Turpināt",
- "An internal error occurred." : "Radās iekšēja kļūda.",
- "Please try again or contact your administrator." : "Lūdzu, mēģiniet vēlreiz vai sazinieties ar administratoru.",
- "Current password" : "Pašreizējā parole",
- "New password" : "Jauna parole",
- "Wrong password." : "Nepareiza parole.",
- "Cancel" : "Atcelt",
- "Server" : "Serveris",
- "Users" : "Lietotāji",
- "Login Attributes" : "Pieteikšanās atribūti",
- "Groups" : "Grupas",
- "Expert" : "Eksperts",
- "Advanced" : "Paplašināti",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Brīdinājums:</b> PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.",
- "Connection Settings" : "Savienojuma iestatījumi",
- "Configuration Active" : "Konfigurācija ir aktīva",
- "When unchecked, this configuration will be skipped." : "Ja nav atzīmēts, šī konfigurācija tiks izlaista.",
- "Backup (Replica) Host" : "Rezerves (kopija) serveris",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai.",
- "Backup (Replica) Port" : "Rezerves (kopijas) ports",
- "Disable Main Server" : "Deaktivēt galveno serveri",
- "Turn off SSL certificate validation." : "Izslēgt SSL sertifikātu validēšanu.",
- "Cache Time-To-Live" : "Kešatmiņas dzīvlaiks",
- "in seconds. A change empties the cache." : "sekundēs. Izmaiņas iztukšos kešatmiņu.",
- "Directory Settings" : "Direktorijas iestatījumi",
- "User Display Name Field" : "Lietotāja redzamā vārda lauks",
- "Base User Tree" : "Bāzes lietotāju koks",
- "One User Base DN per line" : "Viens lietotājs bāzes DN rindā",
- "User Search Attributes" : "Lietotāju meklēšanas atribūts",
- "Optional; one attribute per line" : "Neobligāti; viens atribūts rindā",
- "Group Display Name Field" : "Grupas redzamā nosaukuma lauks",
- "Base Group Tree" : "Bāzes grupu koks",
- "One Group Base DN per line" : "Viena grupu bāzes DN rindā",
- "Group Search Attributes" : "Grupu meklēšanas atribūts",
- "Group-Member association" : "Grupu piederības asociācija",
- "Enable LDAP password changes per user" : "Iespējot LDAP paroles maiņu katram lietotājam",
- "(New password is sent as plain text to LDAP)" : "(Jaunā parole tiek nosūtīta kā vienkāršs teksts ar LDAP)",
- "Special Attributes" : "Īpašie atribūti",
- "Quota Field" : "Kvotu lauks",
- "Quota Default" : "Kvotas noklusējums",
- "Email Field" : "E-pasta lauks",
- "User Home Folder Naming Rule" : "Lietotāja mājas mapes nosaukšanas kārtula",
- "Internal Username" : "Iekšējais lietotājvārds",
- "Override UUID detection" : "Ignorēt UUID noteikšanu",
- "UUID Attribute for Users:" : "UUID atribūti lietotājiem:",
- "UUID Attribute for Groups:" : "UUID atribūti grupām:"
-},"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/user_ldap/l10n/mg.js b/apps/user_ldap/l10n/mg.js
deleted file mode 100644
index 95c97db2f9c..00000000000
--- a/apps/user_ldap/l10n/mg.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_ldap/l10n/mg.json b/apps/user_ldap/l10n/mg.json
deleted file mode 100644
index 8e0cd6f6783..00000000000
--- a/apps/user_ldap/l10n/mg.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/mk.js b/apps/user_ldap/l10n/mk.js
deleted file mode 100644
index 39fe8f5da90..00000000000
--- a/apps/user_ldap/l10n/mk.js
+++ /dev/null
@@ -1,18 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to clear the mappings." : "Неуспешно бришење на мапирањстс.",
- "Select groups" : "Одбери групи",
- "Confirm Deletion" : "Потврдете го бришењето",
- "Users" : "Корисници",
- "Groups" : "Групи",
- "Help" : "Помош",
- "Host" : "Домаќин",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://",
- "Port" : "Порта",
- "Password" : "Лозинка",
- "Back" : "Назад",
- "Continue" : "Продолжи",
- "Advanced" : "Напредно"
-},
-"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/user_ldap/l10n/mk.json b/apps/user_ldap/l10n/mk.json
deleted file mode 100644
index 238bd2a8ebc..00000000000
--- a/apps/user_ldap/l10n/mk.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{ "translations": {
- "Failed to clear the mappings." : "Неуспешно бришење на мапирањстс.",
- "Select groups" : "Одбери групи",
- "Confirm Deletion" : "Потврдете го бришењето",
- "Users" : "Корисници",
- "Groups" : "Групи",
- "Help" : "Помош",
- "Host" : "Домаќин",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://",
- "Port" : "Порта",
- "Password" : "Лозинка",
- "Back" : "Назад",
- "Continue" : "Продолжи",
- "Advanced" : "Напредно"
-},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ml.js b/apps/user_ldap/l10n/ml.js
deleted file mode 100644
index 37042a4f412..00000000000
--- a/apps/user_ldap/l10n/ml.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/ml.json b/apps/user_ldap/l10n/ml.json
deleted file mode 100644
index 521de7ba1a8..00000000000
--- a/apps/user_ldap/l10n/ml.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/mn.js b/apps/user_ldap/l10n/mn.js
deleted file mode 100644
index 304c0247840..00000000000
--- a/apps/user_ldap/l10n/mn.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Password" : "Нууц үг"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/mn.json b/apps/user_ldap/l10n/mn.json
deleted file mode 100644
index 13788221f43..00000000000
--- a/apps/user_ldap/l10n/mn.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Password" : "Нууц үг"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/mr.js b/apps/user_ldap/l10n/mr.js
deleted file mode 100644
index 37042a4f412..00000000000
--- a/apps/user_ldap/l10n/mr.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/mr.json b/apps/user_ldap/l10n/mr.json
deleted file mode 100644
index 521de7ba1a8..00000000000
--- a/apps/user_ldap/l10n/mr.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ms_MY.js b/apps/user_ldap/l10n/ms_MY.js
deleted file mode 100644
index 74bdc1b820f..00000000000
--- a/apps/user_ldap/l10n/ms_MY.js
+++ /dev/null
@@ -1,11 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Users" : "Pengguna",
- "Groups" : "Kumpulan",
- "Help" : "Bantuan",
- "Password" : "Kata laluan",
- "Back" : "Kembali",
- "Advanced" : "Maju"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/ms_MY.json b/apps/user_ldap/l10n/ms_MY.json
deleted file mode 100644
index 1d26cfcaf3d..00000000000
--- a/apps/user_ldap/l10n/ms_MY.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{ "translations": {
- "Users" : "Pengguna",
- "Groups" : "Kumpulan",
- "Help" : "Bantuan",
- "Password" : "Kata laluan",
- "Back" : "Kembali",
- "Advanced" : "Maju"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/mt_MT.js b/apps/user_ldap/l10n/mt_MT.js
deleted file mode 100644
index 8b3fcfae910..00000000000
--- a/apps/user_ldap/l10n/mt_MT.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["","","",""],
- "_%s user found_::_%s users found_" : ["","","",""]
-},
-"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);");
diff --git a/apps/user_ldap/l10n/mt_MT.json b/apps/user_ldap/l10n/mt_MT.json
deleted file mode 100644
index cbda8c83cca..00000000000
--- a/apps/user_ldap/l10n/mt_MT.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["","","",""],
- "_%s user found_::_%s users found_" : ["","","",""]
-},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/nn_NO.js b/apps/user_ldap/l10n/nn_NO.js
deleted file mode 100644
index c14fc8b78b9..00000000000
--- a/apps/user_ldap/l10n/nn_NO.js
+++ /dev/null
@@ -1,14 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Select groups" : "Vel grupper",
- "Users" : "Brukarar",
- "Groups" : "Grupper",
- "Help" : "Hjelp",
- "Host" : "Tenar",
- "Password" : "Passord",
- "Back" : "Tilbake",
- "Continue" : "Gå vidare",
- "Advanced" : "Avansert"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/nn_NO.json b/apps/user_ldap/l10n/nn_NO.json
deleted file mode 100644
index 4cd54c39e08..00000000000
--- a/apps/user_ldap/l10n/nn_NO.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{ "translations": {
- "Select groups" : "Vel grupper",
- "Users" : "Brukarar",
- "Groups" : "Grupper",
- "Help" : "Hjelp",
- "Host" : "Tenar",
- "Password" : "Passord",
- "Back" : "Tilbake",
- "Continue" : "Gå vidare",
- "Advanced" : "Avansert"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/nqo.js b/apps/user_ldap/l10n/nqo.js
deleted file mode 100644
index 5494dcae62e..00000000000
--- a/apps/user_ldap/l10n/nqo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : [""],
- "_%s user found_::_%s users found_" : [""]
-},
-"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/nqo.json b/apps/user_ldap/l10n/nqo.json
deleted file mode 100644
index 75f0f056cc4..00000000000
--- a/apps/user_ldap/l10n/nqo.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : [""],
- "_%s user found_::_%s users found_" : [""]
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/oc.js b/apps/user_ldap/l10n/oc.js
deleted file mode 100644
index 4a06d436198..00000000000
--- a/apps/user_ldap/l10n/oc.js
+++ /dev/null
@@ -1,157 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to clear the mappings." : "Error al moment de la supression de las associacions.",
- "Failed to delete the server configuration" : "Fracàs de la supression de la configuracion del servidor",
- "The configuration is invalid: anonymous bind is not allowed." : "La configuracion es pas valida : lo ligam anonim es pas autorizat.",
- "The configuration is valid and the connection could be established!" : "La configuracion es valida e la connexion pòt èsser establida !",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuracion es valabla, mas lo bind a fracassat. Verificatz los paramètres del servidor e tanben vòstres identificants de connexion.",
- "The configuration is invalid. Please have a look at the logs for further details." : "La configuracion es pas valabla. Consultatz los logs per mai de detalhs.",
- "No action specified" : "Cap d'accion pas especificada",
- "No configuration specified" : "Cap de configuration pas especificada",
- "No data specified" : "Cap de donada pas especificada",
- " Could not set configuration %s" : "Impossible d'especificar la configuracion %s",
- "Action does not exist" : "L'accion existís pas",
- "The Base DN appears to be wrong" : "Lo DN de basa es erronèu",
- "Configuration incorrect" : "Configuracion incorrècta",
- "Configuration incomplete" : "Configuracion incompleta",
- "Configuration OK" : "Configuracion OK",
- "Select groups" : "Seleccionatz los gropes",
- "Select object classes" : "Seleccionar las classas d'objècte",
- "Please check the credentials, they seem to be wrong." : "Verificatz vòstras informacions d'identificacion",
- "Please specify the port, it could not be auto-detected." : "Especificatz lo pòrt, a pas pogut èsser detectat automaticament",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "Lo DN de basa a pas pogut èsser detectat automaticament. Verificatz las informacions d'identificacion, l'òste e lo pòrt.",
- "Could not detect Base DN, please enter it manually." : "Impossible de detectar lo DN de basa, especificatz-lo manualament",
- "{nthServer}. Server" : "{nthServer}. Servidor",
- "No object found in the given Base DN. Please revise." : "Cap d'objècte pas trobat dins lo DN de basa especificat. Verificatz-lo.",
- "More than 1,000 directory entries available." : "I a mai de 1000 entradas de repertòri disponiblas.",
- " entries available within the provided Base DN" : "entradas disponiblas dins lo DN de basa especificat",
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Una error s'es produsida. Verificatz lo DN de basa, e tanben los paramètres de connexion e las informacions d'identificacion.",
- "Do you really want to delete the current Server Configuration?" : "Sètz segur que volètz escafar la configuracion servidor actuala ?",
- "Confirm Deletion" : "Confirmar la supression",
- "Mappings cleared successfully!" : "Associacions suprimidas amb succès !",
- "Error while clearing the mappings." : "Error al moment de la supression de las associacions.",
- "Anonymous bind is not allowed. Please provide a User DN and Password." : "Lo ligam anonim es pas autorizat. Mercé de provesir lo DN d'un utilizaire e un senhal.",
- "LDAP Operations error. Anonymous bind might not be allowed." : "Error LDAP. La connexion anonima al servidor es probablament pas acceptada.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lo salvament a fracassat. Verificatz que la banca de donadas es operacionala. Recargatz abans de contunhar.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar de mòde activarà las requèstas LDAP automaticas. Segon la talha de vòstre annuari LDAP, aquò pòt préner del temps. Volètz totjorn cambiar de mòde ?",
- "Mode switch" : "Cambiar de mòde",
- "Select attributes" : "Seleccionar los atributs",
- "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilizaire introbable. Verificatz los atributs de login e lo nom d'utilizaire. Filtre efectiu (de copiar-pegar per validar en linha de comanda):<br/>",
- "User found and settings verified." : "Utilizaire trobat e paramètres verificats.",
- "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres verificats, mas sol lo primièr utilizaire se poirà connectar. Utilizatz puslèu un filtre mens restrictiu.",
- "An unspecified error occurred. Please check the settings and the log." : "Una error desconeguda s'es produsida. Verificatz los paramètres e lo log.",
- "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Lo filtre de recèrca es pas valid, probablament a causa de problèmas de sintaxi tals coma de parentèsis mancantas. Corregissètz-los.",
- "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Una error s'es produsida al moment de la connexion al LDAP / AD. Verificatz l'òste, lo pòrt e las informacions d'identificacion.",
- "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La cadena %uid es mancanta. Aquesta cadena es remplaçada per l'identificant de connexion al moment de las requèstas LDAP / AD.",
- "Please provide a login name to test against" : "Indicatz un identificant de connexion amb lo qual cal testar.",
- "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Los gropes son desactivats perque lo servidor LDAP / AD pren pas en carga memberOf.",
- "_%s group found_::_%s groups found_" : ["%s grop trobat","%s gropes trobats"],
- "_%s user found_::_%s users found_" : ["%s utilizaire trobat","%s utilizaires trobats"],
- "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Impossible de detectar l'atribut que conten lo nom d'afichatge des utilizaires. Indicatz-lo vos-meteis dins los paramètres ldap avançats.",
- "Could not find the desired feature" : "Impossible de trobar la foncion desirada",
- "Invalid Host" : "Òste invalid",
- "Server" : "Servidor",
- "Users" : "Utilizaires",
- "Login Attributes" : "Atributs de login",
- "Groups" : "Gropes",
- "Test Configuration" : "Testar la configuracion",
- "Help" : "Ajuda",
- "Groups meeting these criteria are available in %s:" : "Los gropes que respèctan aquestes critèris son disponibles dins %s :",
- "Only these object classes:" : "Solament aquestas classes d'objèctes :",
- "Only from these groups:" : "Solament dins aquestes gropes :",
- "Search groups" : "Cercar dins los gropes",
- "Available groups" : "Gropes disponibles",
- "Selected groups" : "Gropes seleccionats",
- "Edit LDAP Query" : "Modificar la requèsta LDAP",
- "LDAP Filter:" : "Filtre LDAP :",
- "The filter specifies which LDAP groups shall have access to the %s instance." : "Lo filtre especifica quins gropes LDAP an accès a l'instància %s.",
- "Verify settings and count groups" : "Verificar los paramètres e comptar los gropes",
- "When logging in, %s will find the user based on the following attributes:" : "Al login, %s cercarà l'utilizaire sus basa d'aquestes atributs :",
- "LDAP / AD Username:" : "Nom d'utilizaire LDAP / AD :",
- "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autorizar lo login amb lo nom d'utilizaire LDAP / AD (uid o samaccountname, la deteccion es automatica). ",
- "LDAP / AD Email Address:" : "Adreça mail LDAP / AD :",
- "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Autorizar lo login amb una adreça mail. Mail e mailPrimaryAddress son autorizats.",
- "Other Attributes:" : "Autres atributs :",
- "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definís lo filtre d'aplicar al moment d'una temptativa de connexion. %%uid remplaça lo nom d'utilizaire. Exemple : \"uid=%%uid\"",
- "Test Loginname" : "Loginname de tèst",
- "Verify settings" : "Testar los paramètres",
- "1. Server" : "1. Servidor",
- "%s. Server:" : "%s. Servidor :",
- "Add a new and blank configuration" : "Apondre una novèla configuracion verge",
- "Copy current configuration into new directory binding" : "Copiar la configuracion actuala cap a una novèla",
- "Delete the current configuration" : "Suprimir la configuracion actuala",
- "Host" : "Òste",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podètz ometre lo protocòl, levat se avètz besonh de SSL. Dins aqueste cas, prefixatz amb ldaps://",
- "Port" : "Pòrt",
- "Detect Port" : "Detectar lo pòrt",
- "User DN" : "DN Utilizaire",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilizaire client pel qual la ligason se deu far, per exemple uid=agent,dc=example,dc=com. Per un accès anonim, daissar lo DN e lo senhal voids.",
- "Password" : "Senhal",
- "For anonymous access, leave DN and Password empty." : "Per un accès anonim, daissar lo DN utilizaire e lo senhal voids.",
- "One Base DN per line" : "Un DN de basa per linha",
- "You can specify Base DN for users and groups in the Advanced tab" : "Podètz especificar los DN de basa de vòstres utilizaires e gropes via l'onglet Avançat",
- "Detect Base DN" : "Detectar lo DN de basa",
- "Test Base DN" : "Testar lo DN de basa",
- "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita las requèstas LDAP automaticas. Melhor per las installacions de grand ample, mas demanda de coneissenças en LDAP.",
- "Manually enter LDAP filters (recommended for large directories)" : "Sasir los filtres LDAP manualament (recomandat pels annuaris de grand ample)",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las classas d'objèctes frequentas pels utilizaires son : organizationalPerson, person, user e inetOrgPerson. Se sètz pas segur de la classa d'utilizar, demandatz a l'administrator de l'annuari.",
- "The filter specifies which LDAP users shall have access to the %s instance." : "Lo filtre especifica quins utilizaires LDAP auràn accès a l'instància %s.",
- "Verify settings and count users" : "Verificar los paramètres e comptar los utilizaires",
- "Saving" : "Enregistrament...",
- "Back" : "Retorn",
- "Continue" : "Contunhar",
- "LDAP" : "LDAP",
- "Expert" : "Expèrt",
- "Advanced" : "Avançat",
- "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertiment :</b> Las aplicacions user_ldap e user_webdavauth son incompatiblas. De disfoncionaments se pòdon provesir. Contactatz vòstre administrator sistèma per que ne desactive una.",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atencion :</b> Lo modul php LDAP es pas installat, per consequéncia aquesta extension poirà pas foncionar. Contactatz vòstre administrator sistèma per tal que l'installe.",
- "Connection Settings" : "Paramètres de connexion",
- "Configuration Active" : "Configuracion activa",
- "When unchecked, this configuration will be skipped." : "Quand pas marcada, la configuracion serà ignorada.",
- "Backup (Replica) Host" : "Servidor de backup (replica)",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Provesir un servidor de backup opcional. Se deu agir d'una replica del servidor LDAP/AD principal.",
- "Backup (Replica) Port" : "Pòrt del servidor de backup (replica)",
- "Disable Main Server" : "Desactivar lo servidor principal",
- "Only connect to the replica server." : "Se connectar unicament a la replica",
- "Turn off SSL certificate validation." : "Desactivar la validacion dels certificats SSL",
- "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Pas recomandat, d'utilizar amb d'objectius de tèsts unicament. Se la connexion fonciona pas qu'amb aquesta opcion, importatz lo certificat SSL del servidor LDAP dins lo servidor %s.",
- "Cache Time-To-Live" : "Durada de vida de l'escondedor (TTL)",
- "in seconds. A change empties the cache." : "en segondas. Tot cambiament voida l'escondedor.",
- "Directory Settings" : "Paramètres del repertòri",
- "User Display Name Field" : "Camp \"nom d'afichatge\" de l'utilizaire",
- "The LDAP attribute to use to generate the user's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge de l'utilizaire.",
- "Base User Tree" : "DN raiç de l'arbre utilizaires",
- "One User Base DN per line" : "Un DN de basa utilizaire per linha",
- "User Search Attributes" : "Atributs de recèrca utilizaires",
- "Optional; one attribute per line" : "Opcional, un atribut per linha",
- "Group Display Name Field" : "Camp \"nom d'afichatge\" del grop",
- "The LDAP attribute to use to generate the groups's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge del grop.",
- "Base Group Tree" : "DN raiç de l'arbre gropes",
- "One Group Base DN per line" : "Un DN de basa grop per linha",
- "Group Search Attributes" : "Atributs de recèrca des gropes",
- "Group-Member association" : "Associacion grop-membre",
- "Nested Groups" : "Gropes imbricats",
- "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se activat, los gropes que contenon d'autres gropes son preses en carga (fonciona unicament se l'atribut membre del grop conten de DNs).",
- "Paging chunksize" : "Paging chunksize",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilizada per las recèrcas LDAP paginadas que pòdon tornar de resultats per lòts coma una enumeracion d'utilizaires o de gropes. (Configurar a 0 per desactivar las recèrcas LDAP paginadas)",
- "Special Attributes" : "Atributs especials",
- "Quota Field" : "Camp del quòta",
- "Quota Default" : "Quòta per defaut",
- "in bytes" : "en octets",
- "Email Field" : "Camp Email",
- "User Home Folder Naming Rule" : "Règla de nomenatge del repertòri utilizaire",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Daissar void per user name (defaut). Podètz tanben especificar un atribut LDAP / AD.",
- "Internal Username" : "Nom d'utilizaire intèrne",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Per defaut lo nom d'utilizaire intèrne serà creat a partir de l'atribut UUID. Aquò permet d'assegurar que lo nom d'utilizaire es unic e que los caractèrs necessitan pas de conversion. Lo nom d'utilizaire intèrne deu contenir unicament los caractèrs seguents : [ a-zA-Z0-9_.@- ]. Los autres caractèrs son remplaçats per lor correspondéncia ASCII o simplament omeses. En cas de collision, un nombre es apondut/incrementat. Lo nom d'utilizaire intèrne es utilizat per identificar l'utilizaire al dintre del sistèma. Es tanben lo nom per defaut del repertòri utilizaire dins ownCloud. Fa tanben partida de certans URL de servicis, per exemple per totes los servicis *DAV. Lo comportament per defaut pòt èsser modificat amb l'ajuda d'aqueste paramètre. Per obtenir un comportament similar a las versions precedentas a ownCloud 5, sasir lo nom d'utilizaire d'afichar dins lo camp seguent. Daissar a blanc pel comportement per defaut. Las modificacions prendràn efièch solament pels novèls (aponduts) utilizaires LDAP.",
- "Internal Username Attribute:" : "Nom d'utilizaire intèrne :",
- "Override UUID detection" : "Passar outra la deteccion des UUID",
- "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Per defaut, l'atribut UUID es detectat automaticament. Aqueste atribut es utilizat per identificar los utilizaires e gropes de faiçon fisabla. Un nom d'utilizaire intèrne basat sus l'UUID serà automaticament creat, levat s'es especificat autrament çaisús. Podètz modificar aqueste comportament e definir l'atribut que volètz. Vos cal alara vos assegurar que l'atribut que volètz pòt èsser recuperat pels utilizaires e tanben pels gropes e que siá unic. Daissar a blanc pel comportament per defaut. Las modificacions seràn efectivas unicament pels novèls (aponduts) utilizaires e gropes LDAP.",
- "UUID Attribute for Users:" : "Atribut UUID pels Utilizaires :",
- "UUID Attribute for Groups:" : "Atribut UUID pels Gropes :",
- "Username-LDAP User Mapping" : "Associacion Nom d'utilizaire-Utilizaire LDAP",
- "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los noms d'utilizaires son utilizats per l'emmagazinatge e l'assignacion de (meta) donadas. Per identificar e reconéisser precisament los utilizaires, cada utilizaire LDAP aurà un nom intèrne especific. Aquò requerís l'associacion d'un nom d'utilizaire ownCloud a un nom d'utilizaire LDAP. Lo nom d'utilizaire creat es associat a l'atribut UUID de l'utilizaire LDAP. Amai, lo DN es memorizat en escondedor per limitar las interaccions LDAP mas es pas utilizat per l'identificacion. Se lo DN es modificat, aquelas modificacions seràn retrobadas. Sol lo nom intèrne a ownCloud es utilizat al dintre del produch. Suprimir las associacions crearà d'orfanèls e l'accion afectarà totas las configuracions LDAP. SUPRIMISSÈTZ PAS JAMAI LAS ASSOCIACIONS EN ENVIRONAMENT DE PRODUCCION, mas unicament sus d'environaments de tèsts e d'experimentacions.",
- "Clear Username-LDAP User Mapping" : "Suprimir l'associacion utilizaire intèrne-utilizaire LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Suprimir l'associacion nom de grop-grop LDAP"
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_ldap/l10n/oc.json b/apps/user_ldap/l10n/oc.json
deleted file mode 100644
index ed63543180a..00000000000
--- a/apps/user_ldap/l10n/oc.json
+++ /dev/null
@@ -1,155 +0,0 @@
-{ "translations": {
- "Failed to clear the mappings." : "Error al moment de la supression de las associacions.",
- "Failed to delete the server configuration" : "Fracàs de la supression de la configuracion del servidor",
- "The configuration is invalid: anonymous bind is not allowed." : "La configuracion es pas valida : lo ligam anonim es pas autorizat.",
- "The configuration is valid and the connection could be established!" : "La configuracion es valida e la connexion pòt èsser establida !",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuracion es valabla, mas lo bind a fracassat. Verificatz los paramètres del servidor e tanben vòstres identificants de connexion.",
- "The configuration is invalid. Please have a look at the logs for further details." : "La configuracion es pas valabla. Consultatz los logs per mai de detalhs.",
- "No action specified" : "Cap d'accion pas especificada",
- "No configuration specified" : "Cap de configuration pas especificada",
- "No data specified" : "Cap de donada pas especificada",
- " Could not set configuration %s" : "Impossible d'especificar la configuracion %s",
- "Action does not exist" : "L'accion existís pas",
- "The Base DN appears to be wrong" : "Lo DN de basa es erronèu",
- "Configuration incorrect" : "Configuracion incorrècta",
- "Configuration incomplete" : "Configuracion incompleta",
- "Configuration OK" : "Configuracion OK",
- "Select groups" : "Seleccionatz los gropes",
- "Select object classes" : "Seleccionar las classas d'objècte",
- "Please check the credentials, they seem to be wrong." : "Verificatz vòstras informacions d'identificacion",
- "Please specify the port, it could not be auto-detected." : "Especificatz lo pòrt, a pas pogut èsser detectat automaticament",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "Lo DN de basa a pas pogut èsser detectat automaticament. Verificatz las informacions d'identificacion, l'òste e lo pòrt.",
- "Could not detect Base DN, please enter it manually." : "Impossible de detectar lo DN de basa, especificatz-lo manualament",
- "{nthServer}. Server" : "{nthServer}. Servidor",
- "No object found in the given Base DN. Please revise." : "Cap d'objècte pas trobat dins lo DN de basa especificat. Verificatz-lo.",
- "More than 1,000 directory entries available." : "I a mai de 1000 entradas de repertòri disponiblas.",
- " entries available within the provided Base DN" : "entradas disponiblas dins lo DN de basa especificat",
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Una error s'es produsida. Verificatz lo DN de basa, e tanben los paramètres de connexion e las informacions d'identificacion.",
- "Do you really want to delete the current Server Configuration?" : "Sètz segur que volètz escafar la configuracion servidor actuala ?",
- "Confirm Deletion" : "Confirmar la supression",
- "Mappings cleared successfully!" : "Associacions suprimidas amb succès !",
- "Error while clearing the mappings." : "Error al moment de la supression de las associacions.",
- "Anonymous bind is not allowed. Please provide a User DN and Password." : "Lo ligam anonim es pas autorizat. Mercé de provesir lo DN d'un utilizaire e un senhal.",
- "LDAP Operations error. Anonymous bind might not be allowed." : "Error LDAP. La connexion anonima al servidor es probablament pas acceptada.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lo salvament a fracassat. Verificatz que la banca de donadas es operacionala. Recargatz abans de contunhar.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar de mòde activarà las requèstas LDAP automaticas. Segon la talha de vòstre annuari LDAP, aquò pòt préner del temps. Volètz totjorn cambiar de mòde ?",
- "Mode switch" : "Cambiar de mòde",
- "Select attributes" : "Seleccionar los atributs",
- "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilizaire introbable. Verificatz los atributs de login e lo nom d'utilizaire. Filtre efectiu (de copiar-pegar per validar en linha de comanda):<br/>",
- "User found and settings verified." : "Utilizaire trobat e paramètres verificats.",
- "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres verificats, mas sol lo primièr utilizaire se poirà connectar. Utilizatz puslèu un filtre mens restrictiu.",
- "An unspecified error occurred. Please check the settings and the log." : "Una error desconeguda s'es produsida. Verificatz los paramètres e lo log.",
- "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Lo filtre de recèrca es pas valid, probablament a causa de problèmas de sintaxi tals coma de parentèsis mancantas. Corregissètz-los.",
- "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Una error s'es produsida al moment de la connexion al LDAP / AD. Verificatz l'òste, lo pòrt e las informacions d'identificacion.",
- "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La cadena %uid es mancanta. Aquesta cadena es remplaçada per l'identificant de connexion al moment de las requèstas LDAP / AD.",
- "Please provide a login name to test against" : "Indicatz un identificant de connexion amb lo qual cal testar.",
- "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Los gropes son desactivats perque lo servidor LDAP / AD pren pas en carga memberOf.",
- "_%s group found_::_%s groups found_" : ["%s grop trobat","%s gropes trobats"],
- "_%s user found_::_%s users found_" : ["%s utilizaire trobat","%s utilizaires trobats"],
- "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Impossible de detectar l'atribut que conten lo nom d'afichatge des utilizaires. Indicatz-lo vos-meteis dins los paramètres ldap avançats.",
- "Could not find the desired feature" : "Impossible de trobar la foncion desirada",
- "Invalid Host" : "Òste invalid",
- "Server" : "Servidor",
- "Users" : "Utilizaires",
- "Login Attributes" : "Atributs de login",
- "Groups" : "Gropes",
- "Test Configuration" : "Testar la configuracion",
- "Help" : "Ajuda",
- "Groups meeting these criteria are available in %s:" : "Los gropes que respèctan aquestes critèris son disponibles dins %s :",
- "Only these object classes:" : "Solament aquestas classes d'objèctes :",
- "Only from these groups:" : "Solament dins aquestes gropes :",
- "Search groups" : "Cercar dins los gropes",
- "Available groups" : "Gropes disponibles",
- "Selected groups" : "Gropes seleccionats",
- "Edit LDAP Query" : "Modificar la requèsta LDAP",
- "LDAP Filter:" : "Filtre LDAP :",
- "The filter specifies which LDAP groups shall have access to the %s instance." : "Lo filtre especifica quins gropes LDAP an accès a l'instància %s.",
- "Verify settings and count groups" : "Verificar los paramètres e comptar los gropes",
- "When logging in, %s will find the user based on the following attributes:" : "Al login, %s cercarà l'utilizaire sus basa d'aquestes atributs :",
- "LDAP / AD Username:" : "Nom d'utilizaire LDAP / AD :",
- "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autorizar lo login amb lo nom d'utilizaire LDAP / AD (uid o samaccountname, la deteccion es automatica). ",
- "LDAP / AD Email Address:" : "Adreça mail LDAP / AD :",
- "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Autorizar lo login amb una adreça mail. Mail e mailPrimaryAddress son autorizats.",
- "Other Attributes:" : "Autres atributs :",
- "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definís lo filtre d'aplicar al moment d'una temptativa de connexion. %%uid remplaça lo nom d'utilizaire. Exemple : \"uid=%%uid\"",
- "Test Loginname" : "Loginname de tèst",
- "Verify settings" : "Testar los paramètres",
- "1. Server" : "1. Servidor",
- "%s. Server:" : "%s. Servidor :",
- "Add a new and blank configuration" : "Apondre una novèla configuracion verge",
- "Copy current configuration into new directory binding" : "Copiar la configuracion actuala cap a una novèla",
- "Delete the current configuration" : "Suprimir la configuracion actuala",
- "Host" : "Òste",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podètz ometre lo protocòl, levat se avètz besonh de SSL. Dins aqueste cas, prefixatz amb ldaps://",
- "Port" : "Pòrt",
- "Detect Port" : "Detectar lo pòrt",
- "User DN" : "DN Utilizaire",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilizaire client pel qual la ligason se deu far, per exemple uid=agent,dc=example,dc=com. Per un accès anonim, daissar lo DN e lo senhal voids.",
- "Password" : "Senhal",
- "For anonymous access, leave DN and Password empty." : "Per un accès anonim, daissar lo DN utilizaire e lo senhal voids.",
- "One Base DN per line" : "Un DN de basa per linha",
- "You can specify Base DN for users and groups in the Advanced tab" : "Podètz especificar los DN de basa de vòstres utilizaires e gropes via l'onglet Avançat",
- "Detect Base DN" : "Detectar lo DN de basa",
- "Test Base DN" : "Testar lo DN de basa",
- "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita las requèstas LDAP automaticas. Melhor per las installacions de grand ample, mas demanda de coneissenças en LDAP.",
- "Manually enter LDAP filters (recommended for large directories)" : "Sasir los filtres LDAP manualament (recomandat pels annuaris de grand ample)",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las classas d'objèctes frequentas pels utilizaires son : organizationalPerson, person, user e inetOrgPerson. Se sètz pas segur de la classa d'utilizar, demandatz a l'administrator de l'annuari.",
- "The filter specifies which LDAP users shall have access to the %s instance." : "Lo filtre especifica quins utilizaires LDAP auràn accès a l'instància %s.",
- "Verify settings and count users" : "Verificar los paramètres e comptar los utilizaires",
- "Saving" : "Enregistrament...",
- "Back" : "Retorn",
- "Continue" : "Contunhar",
- "LDAP" : "LDAP",
- "Expert" : "Expèrt",
- "Advanced" : "Avançat",
- "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertiment :</b> Las aplicacions user_ldap e user_webdavauth son incompatiblas. De disfoncionaments se pòdon provesir. Contactatz vòstre administrator sistèma per que ne desactive una.",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atencion :</b> Lo modul php LDAP es pas installat, per consequéncia aquesta extension poirà pas foncionar. Contactatz vòstre administrator sistèma per tal que l'installe.",
- "Connection Settings" : "Paramètres de connexion",
- "Configuration Active" : "Configuracion activa",
- "When unchecked, this configuration will be skipped." : "Quand pas marcada, la configuracion serà ignorada.",
- "Backup (Replica) Host" : "Servidor de backup (replica)",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Provesir un servidor de backup opcional. Se deu agir d'una replica del servidor LDAP/AD principal.",
- "Backup (Replica) Port" : "Pòrt del servidor de backup (replica)",
- "Disable Main Server" : "Desactivar lo servidor principal",
- "Only connect to the replica server." : "Se connectar unicament a la replica",
- "Turn off SSL certificate validation." : "Desactivar la validacion dels certificats SSL",
- "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Pas recomandat, d'utilizar amb d'objectius de tèsts unicament. Se la connexion fonciona pas qu'amb aquesta opcion, importatz lo certificat SSL del servidor LDAP dins lo servidor %s.",
- "Cache Time-To-Live" : "Durada de vida de l'escondedor (TTL)",
- "in seconds. A change empties the cache." : "en segondas. Tot cambiament voida l'escondedor.",
- "Directory Settings" : "Paramètres del repertòri",
- "User Display Name Field" : "Camp \"nom d'afichatge\" de l'utilizaire",
- "The LDAP attribute to use to generate the user's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge de l'utilizaire.",
- "Base User Tree" : "DN raiç de l'arbre utilizaires",
- "One User Base DN per line" : "Un DN de basa utilizaire per linha",
- "User Search Attributes" : "Atributs de recèrca utilizaires",
- "Optional; one attribute per line" : "Opcional, un atribut per linha",
- "Group Display Name Field" : "Camp \"nom d'afichatge\" del grop",
- "The LDAP attribute to use to generate the groups's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge del grop.",
- "Base Group Tree" : "DN raiç de l'arbre gropes",
- "One Group Base DN per line" : "Un DN de basa grop per linha",
- "Group Search Attributes" : "Atributs de recèrca des gropes",
- "Group-Member association" : "Associacion grop-membre",
- "Nested Groups" : "Gropes imbricats",
- "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se activat, los gropes que contenon d'autres gropes son preses en carga (fonciona unicament se l'atribut membre del grop conten de DNs).",
- "Paging chunksize" : "Paging chunksize",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilizada per las recèrcas LDAP paginadas que pòdon tornar de resultats per lòts coma una enumeracion d'utilizaires o de gropes. (Configurar a 0 per desactivar las recèrcas LDAP paginadas)",
- "Special Attributes" : "Atributs especials",
- "Quota Field" : "Camp del quòta",
- "Quota Default" : "Quòta per defaut",
- "in bytes" : "en octets",
- "Email Field" : "Camp Email",
- "User Home Folder Naming Rule" : "Règla de nomenatge del repertòri utilizaire",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Daissar void per user name (defaut). Podètz tanben especificar un atribut LDAP / AD.",
- "Internal Username" : "Nom d'utilizaire intèrne",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Per defaut lo nom d'utilizaire intèrne serà creat a partir de l'atribut UUID. Aquò permet d'assegurar que lo nom d'utilizaire es unic e que los caractèrs necessitan pas de conversion. Lo nom d'utilizaire intèrne deu contenir unicament los caractèrs seguents : [ a-zA-Z0-9_.@- ]. Los autres caractèrs son remplaçats per lor correspondéncia ASCII o simplament omeses. En cas de collision, un nombre es apondut/incrementat. Lo nom d'utilizaire intèrne es utilizat per identificar l'utilizaire al dintre del sistèma. Es tanben lo nom per defaut del repertòri utilizaire dins ownCloud. Fa tanben partida de certans URL de servicis, per exemple per totes los servicis *DAV. Lo comportament per defaut pòt èsser modificat amb l'ajuda d'aqueste paramètre. Per obtenir un comportament similar a las versions precedentas a ownCloud 5, sasir lo nom d'utilizaire d'afichar dins lo camp seguent. Daissar a blanc pel comportement per defaut. Las modificacions prendràn efièch solament pels novèls (aponduts) utilizaires LDAP.",
- "Internal Username Attribute:" : "Nom d'utilizaire intèrne :",
- "Override UUID detection" : "Passar outra la deteccion des UUID",
- "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Per defaut, l'atribut UUID es detectat automaticament. Aqueste atribut es utilizat per identificar los utilizaires e gropes de faiçon fisabla. Un nom d'utilizaire intèrne basat sus l'UUID serà automaticament creat, levat s'es especificat autrament çaisús. Podètz modificar aqueste comportament e definir l'atribut que volètz. Vos cal alara vos assegurar que l'atribut que volètz pòt èsser recuperat pels utilizaires e tanben pels gropes e que siá unic. Daissar a blanc pel comportament per defaut. Las modificacions seràn efectivas unicament pels novèls (aponduts) utilizaires e gropes LDAP.",
- "UUID Attribute for Users:" : "Atribut UUID pels Utilizaires :",
- "UUID Attribute for Groups:" : "Atribut UUID pels Gropes :",
- "Username-LDAP User Mapping" : "Associacion Nom d'utilizaire-Utilizaire LDAP",
- "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los noms d'utilizaires son utilizats per l'emmagazinatge e l'assignacion de (meta) donadas. Per identificar e reconéisser precisament los utilizaires, cada utilizaire LDAP aurà un nom intèrne especific. Aquò requerís l'associacion d'un nom d'utilizaire ownCloud a un nom d'utilizaire LDAP. Lo nom d'utilizaire creat es associat a l'atribut UUID de l'utilizaire LDAP. Amai, lo DN es memorizat en escondedor per limitar las interaccions LDAP mas es pas utilizat per l'identificacion. Se lo DN es modificat, aquelas modificacions seràn retrobadas. Sol lo nom intèrne a ownCloud es utilizat al dintre del produch. Suprimir las associacions crearà d'orfanèls e l'accion afectarà totas las configuracions LDAP. SUPRIMISSÈTZ PAS JAMAI LAS ASSOCIACIONS EN ENVIRONAMENT DE PRODUCCION, mas unicament sus d'environaments de tèsts e d'experimentacions.",
- "Clear Username-LDAP User Mapping" : "Suprimir l'associacion utilizaire intèrne-utilizaire LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Suprimir l'associacion nom de grop-grop LDAP"
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ro.js b/apps/user_ldap/l10n/ro.js
deleted file mode 100644
index 47788d4b17b..00000000000
--- a/apps/user_ldap/l10n/ro.js
+++ /dev/null
@@ -1,101 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to clear the mappings." : "Ștergerea mapărilor a eșuat.",
- "Failed to delete the server configuration" : "Ștergerea configurației serverului a eșuat.",
- "Valid configuration, connection established!" : "Configurație validată, conexiune stabilită!",
- "No action specified" : "Nu este specificată nicio acțiune ",
- "No configuration specified" : "Nu este specificată nicio configurație",
- "No data specified" : "Nu au fost specificate date",
- " Could not set configuration %s" : "Nu a putut fi setată configurația %s",
- "Action does not exist" : "Acțiunea nu există",
- "Renewing …" : "Reînnoiesc ...",
- "Very weak password" : "Parolă foarte slabă",
- "Weak password" : "Parolă slabă",
- "So-so password" : "Parolă medie",
- "Good password" : "Parolă bună",
- "Strong password" : "Parolă puternică",
- "The Base DN appears to be wrong" : "DN-ul de bază pare a fi greșit",
- "Testing configuration…" : "Se testează configurația...",
- "Configuration incorrect" : "Configurație incorectă",
- "Configuration incomplete" : "Configurație incompletă",
- "Configuration OK" : "Configurație validă",
- "Select groups" : "Selectează grupuri ",
- "Select object classes" : "Selectează clase de obiecte",
- "Please check the credentials, they seem to be wrong." : "Verifică datele de autentificare, ele par a fi greșite.",
- "Please specify the port, it could not be auto-detected." : "Specifică portul, nu a putut fi detectat automat.",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "DN-ul de bază nu a putut fi detectat automat, te rugăm revizuiește datele de autentificare, gazda și portul.",
- "Could not detect Base DN, please enter it manually." : "DN-ul de bază nu a putut fi detectat, introdu-l manual.",
- "{nthServer}. Server" : "{nthServer}. Server",
- "More than 1,000 directory entries available." : "Mai mult de 1000 de directoare disponibile.",
- "Do you really want to delete the current Server Configuration?" : "Sigur vrei să ștergi configurația curentă a serverului?",
- "Confirm Deletion" : "Confirmă ștergerea",
- "Mappings cleared successfully!" : "Asocierile au fost șterse!",
- "Error while clearing the mappings." : "Eroare la ștergerea asocierilor.",
- "Select attributes" : "Selectaţi caracteristici",
- "Your password will expire tomorrow." : "Parola ta va expira mâine.",
- "Your password will expire today." : "Parola ta va expira astăzi.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Parola ta va expira în %n zi.","Parola ta va expira în %n zile.","Parola ta va expira în %n zile."],
- "Could not find the desired feature" : "Nu s-a putut găsi funcționalitatea dorită.",
- "Invalid Host" : "Host invalid",
- "Test Configuration" : "Configurare test",
- "Help" : "Ajutor",
- "Search groups" : "Caută grupuri",
- "Available groups" : "Grupuri disponibile",
- "Selected groups" : "Grupurile selectate",
- "LDAP Filter:" : "Filtru LDAP:",
- "Other Attributes:" : "Alte caracteristici :",
- "Verify settings" : "Verifică setările",
- "%s. Server:" : "%s. Server:",
- "Delete the current configuration" : "Șterge configurația curentă",
- "Host" : "Gazdă",
- "Port" : "Portul",
- "Detect Port" : "Detectează portul",
- "User DN" : "DN-ul utilizatorului",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN-ul utilizatorului cu care se va efectua asocierea, de exemplu uid=agent,dc=example,dc=com. Pentru acces anonim, lasă DN-ul și parola libere.",
- "Password" : "Parolă",
- "For anonymous access, leave DN and Password empty." : "Pentru acces anonim, lasă DN-ul și parola libere.",
- "Save Credentials" : "Salvează datele de autentificare",
- "One Base DN per line" : "Un DN de bază pe linie",
- "You can specify Base DN for users and groups in the Advanced tab" : "Poți specifica DN-ul de bază pentru utilizatori și grupuri în fila Avansat",
- "Detect Base DN" : "Detectează DN-ul de bază",
- "Test Base DN" : "Testează DN-ul de bază",
- "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evită solicitările LDAP automate. De preferat pentru instalările mai complexe, dar necesită câteva cunoștințe LDAP.",
- "Manually enter LDAP filters (recommended for large directories)" : "Introdu filtrele LDAP manual (recomandat pentru medii LDAP largi)",
- "Verify settings and count users" : "Verifică setările și numără utilizatorii",
- "Saving" : "Se salvează",
- "Back" : "Înapoi",
- "Continue" : "Continuă",
- "Please renew your password." : "Te rog reînnoiește parola.",
- "An internal error occurred." : "A apărut o eroare internă.",
- "Please try again or contact your administrator." : "Încearcă din nou sau contactează-ți administratorul.",
- "Current password" : "Parola curentă",
- "New password" : "Noua parolă",
- "Renew password" : "Reînnoiește parola",
- "Wrong password." : "Parolă greșită.",
- "Cancel" : "Anulează",
- "Server" : "Server",
- "Users" : "Utilizatori",
- "Login Attributes" : "Atribute de autentificare",
- "Groups" : "Grupuri",
- "Expert" : "Expert",
- "Advanced" : "Avansat",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atenție</b> Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala.",
- "Connection Settings" : "Setările de conexiune",
- "Configuration Active" : "Configurație activă",
- "When unchecked, this configuration will be skipped." : "Dacă este debifat, se va sări peste această configurație.",
- "Disable Main Server" : "Dezactivaţi serverul principal",
- "Turn off SSL certificate validation." : "Oprește validarea certificatelor SSL ",
- "in seconds. A change empties the cache." : "în secunde. O schimbare curăță memoria tampon.",
- "Directory Settings" : "Setările directorului",
- "User Display Name Field" : "Câmpul cu numele vizibil al utilizatorului",
- "Base User Tree" : "Arborele de bază al utilizatorilor",
- "One User Base DN per line" : "Un DN utilizator de bază pe linie",
- "Group Display Name Field" : "Câmpul cu numele grupului",
- "Base Group Tree" : "Arborele de bază al Grupurilor",
- "One Group Base DN per line" : "Un Group Base DN pe linie",
- "Group-Member association" : "Asocierea Grup-Membru",
- "Special Attributes" : "Caracteristici speciale ",
- "Internal Username" : "Nume utilizator intern"
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/user_ldap/l10n/ro.json b/apps/user_ldap/l10n/ro.json
deleted file mode 100644
index f5fca02f43d..00000000000
--- a/apps/user_ldap/l10n/ro.json
+++ /dev/null
@@ -1,99 +0,0 @@
-{ "translations": {
- "Failed to clear the mappings." : "Ștergerea mapărilor a eșuat.",
- "Failed to delete the server configuration" : "Ștergerea configurației serverului a eșuat.",
- "Valid configuration, connection established!" : "Configurație validată, conexiune stabilită!",
- "No action specified" : "Nu este specificată nicio acțiune ",
- "No configuration specified" : "Nu este specificată nicio configurație",
- "No data specified" : "Nu au fost specificate date",
- " Could not set configuration %s" : "Nu a putut fi setată configurația %s",
- "Action does not exist" : "Acțiunea nu există",
- "Renewing …" : "Reînnoiesc ...",
- "Very weak password" : "Parolă foarte slabă",
- "Weak password" : "Parolă slabă",
- "So-so password" : "Parolă medie",
- "Good password" : "Parolă bună",
- "Strong password" : "Parolă puternică",
- "The Base DN appears to be wrong" : "DN-ul de bază pare a fi greșit",
- "Testing configuration…" : "Se testează configurația...",
- "Configuration incorrect" : "Configurație incorectă",
- "Configuration incomplete" : "Configurație incompletă",
- "Configuration OK" : "Configurație validă",
- "Select groups" : "Selectează grupuri ",
- "Select object classes" : "Selectează clase de obiecte",
- "Please check the credentials, they seem to be wrong." : "Verifică datele de autentificare, ele par a fi greșite.",
- "Please specify the port, it could not be auto-detected." : "Specifică portul, nu a putut fi detectat automat.",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "DN-ul de bază nu a putut fi detectat automat, te rugăm revizuiește datele de autentificare, gazda și portul.",
- "Could not detect Base DN, please enter it manually." : "DN-ul de bază nu a putut fi detectat, introdu-l manual.",
- "{nthServer}. Server" : "{nthServer}. Server",
- "More than 1,000 directory entries available." : "Mai mult de 1000 de directoare disponibile.",
- "Do you really want to delete the current Server Configuration?" : "Sigur vrei să ștergi configurația curentă a serverului?",
- "Confirm Deletion" : "Confirmă ștergerea",
- "Mappings cleared successfully!" : "Asocierile au fost șterse!",
- "Error while clearing the mappings." : "Eroare la ștergerea asocierilor.",
- "Select attributes" : "Selectaţi caracteristici",
- "Your password will expire tomorrow." : "Parola ta va expira mâine.",
- "Your password will expire today." : "Parola ta va expira astăzi.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Parola ta va expira în %n zi.","Parola ta va expira în %n zile.","Parola ta va expira în %n zile."],
- "Could not find the desired feature" : "Nu s-a putut găsi funcționalitatea dorită.",
- "Invalid Host" : "Host invalid",
- "Test Configuration" : "Configurare test",
- "Help" : "Ajutor",
- "Search groups" : "Caută grupuri",
- "Available groups" : "Grupuri disponibile",
- "Selected groups" : "Grupurile selectate",
- "LDAP Filter:" : "Filtru LDAP:",
- "Other Attributes:" : "Alte caracteristici :",
- "Verify settings" : "Verifică setările",
- "%s. Server:" : "%s. Server:",
- "Delete the current configuration" : "Șterge configurația curentă",
- "Host" : "Gazdă",
- "Port" : "Portul",
- "Detect Port" : "Detectează portul",
- "User DN" : "DN-ul utilizatorului",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN-ul utilizatorului cu care se va efectua asocierea, de exemplu uid=agent,dc=example,dc=com. Pentru acces anonim, lasă DN-ul și parola libere.",
- "Password" : "Parolă",
- "For anonymous access, leave DN and Password empty." : "Pentru acces anonim, lasă DN-ul și parola libere.",
- "Save Credentials" : "Salvează datele de autentificare",
- "One Base DN per line" : "Un DN de bază pe linie",
- "You can specify Base DN for users and groups in the Advanced tab" : "Poți specifica DN-ul de bază pentru utilizatori și grupuri în fila Avansat",
- "Detect Base DN" : "Detectează DN-ul de bază",
- "Test Base DN" : "Testează DN-ul de bază",
- "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evită solicitările LDAP automate. De preferat pentru instalările mai complexe, dar necesită câteva cunoștințe LDAP.",
- "Manually enter LDAP filters (recommended for large directories)" : "Introdu filtrele LDAP manual (recomandat pentru medii LDAP largi)",
- "Verify settings and count users" : "Verifică setările și numără utilizatorii",
- "Saving" : "Se salvează",
- "Back" : "Înapoi",
- "Continue" : "Continuă",
- "Please renew your password." : "Te rog reînnoiește parola.",
- "An internal error occurred." : "A apărut o eroare internă.",
- "Please try again or contact your administrator." : "Încearcă din nou sau contactează-ți administratorul.",
- "Current password" : "Parola curentă",
- "New password" : "Noua parolă",
- "Renew password" : "Reînnoiește parola",
- "Wrong password." : "Parolă greșită.",
- "Cancel" : "Anulează",
- "Server" : "Server",
- "Users" : "Utilizatori",
- "Login Attributes" : "Atribute de autentificare",
- "Groups" : "Grupuri",
- "Expert" : "Expert",
- "Advanced" : "Avansat",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atenție</b> Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala.",
- "Connection Settings" : "Setările de conexiune",
- "Configuration Active" : "Configurație activă",
- "When unchecked, this configuration will be skipped." : "Dacă este debifat, se va sări peste această configurație.",
- "Disable Main Server" : "Dezactivaţi serverul principal",
- "Turn off SSL certificate validation." : "Oprește validarea certificatelor SSL ",
- "in seconds. A change empties the cache." : "în secunde. O schimbare curăță memoria tampon.",
- "Directory Settings" : "Setările directorului",
- "User Display Name Field" : "Câmpul cu numele vizibil al utilizatorului",
- "Base User Tree" : "Arborele de bază al utilizatorilor",
- "One User Base DN per line" : "Un DN utilizator de bază pe linie",
- "Group Display Name Field" : "Câmpul cu numele grupului",
- "Base Group Tree" : "Arborele de bază al Grupurilor",
- "One Group Base DN per line" : "Un Group Base DN pe linie",
- "Group-Member association" : "Asocierea Grup-Membru",
- "Special Attributes" : "Caracteristici speciale ",
- "Internal Username" : "Nume utilizator intern"
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js
index b434ed93e98..30ab9ad0e15 100644
--- a/apps/user_ldap/l10n/ru.js
+++ b/apps/user_ldap/l10n/ru.js
@@ -6,10 +6,12 @@ OC.L10N.register(
"Invalid configuration: Anonymous binding is not allowed." : "Неверная конфигурация: анонимное связывание не разрешается.",
"Valid configuration, connection established!" : "Конфигурация настроена верно, связь установлена!",
"Valid configuration, but binding failed. Please check the server settings and credentials." : "Конфигурация настроена верно, но связывание не удалось. Проверьте настройки сервера и реквизиты доступа.",
+ "Invalid configuration: %s" : "Недопустимая конфигурация: %s",
"No action specified" : "Действие не указано",
"No configuration specified" : "Конфигурация не указана",
"No data specified" : "Нет данных",
"Invalid data specified" : "Указаны некорректные данные",
+ "Could not set configuration %1$s to %2$s" : "Не удалось задать конфигурацию %1$s для %2$s",
"Action does not exist" : "Действие не существует",
"Renewing …" : "Обновление…",
"Very weak password" : "Очень слабый пароль",
@@ -24,12 +26,12 @@ OC.L10N.register(
"Configuration OK" : "Конфигурация в порядке",
"Select groups" : "Выберите группы",
"Select object classes" : "Выберите объектные классы",
- "Please check the credentials, they seem to be wrong." : "Пожалуйста проверьте учетный данные, возможно они не верны.",
+ "Please check the credentials, they seem to be wrong." : "Пожалуйста, проверьте учётные данные — возможно, они указаны неверно.",
"Please specify the port, it could not be auto-detected." : "Пожалуйста укажите порт, он не может быть определен автоматически.",
"Base DN could not be auto-detected, please revise credentials, host and port." : "База поиска не может быть определена автоматически, пожалуйста перепроверьте учетные данные, адрес и порт.",
"Could not detect Base DN, please enter it manually." : "Невозможно обнаружить Base DN, пожалуйста, задайте вручную.",
"{nthServer}. Server" : "Сервер {nthServer}.",
- "No object found in the given Base DN. Please revise." : "Не найдено объектов в Base DN. Пожалуйста перепроверьте.",
+ "No object found in the given Base DN. Please revise." : "В указанной базовой DN не найден ни один объект. Пожалуйста, перепроверьте.",
"More than 1,000 directory entries available." : "В каталоге доступно более 1,000 записей.",
"_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} элемент доступен в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Произошла ошибка. Пожалуйста проверьте базу поиска DN, а также настройки подключения и учетные данные.",
@@ -52,6 +54,14 @@ OC.L10N.register(
"The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Заполнитель \"%uid\" отсутствует. Он будет заменён именем пользователя при запросе LDAP/AD.",
"Please provide a login name to test against" : "Пожалуйста, укажите логин для проверки",
"The group box was disabled, because the LDAP/AD server does not support memberOf." : "Блок группы был отключен, поскольку сервер LDAP/AD не поддерживает memberOf.",
+ "Password change rejected. Hint: %s" : "Изменение пароля отклонено. Подсказка: %s",
+ "Mandatory field \"%s\" left empty" : "Обязательное поле «%s» оставлено пустым",
+ "A password is given, but not an LDAP agent" : "Пароль задан, но не указан LDAP-агент",
+ "No password is given for the user agent" : "Пароль для LDAP-агента не задан",
+ "No LDAP base DN was given" : "Не указана базовая DN LDAP",
+ "User base DN is not a subnode of global base DN" : "Базовая DN пользователей не является подузлом глобальной базовой DN",
+ "Group base DN is not a subnode of global base DN" : " Базовая DN групп не является подузлом глобальной базовой DN",
+ "Login filter does not contain %s placeholder." : "Фильтр входа не содержит плейсхолдер %s.",
"Please login with the new password" : "Войдите в систему со своим новым паролем",
"LDAP User backend" : "Механизм учета пользователей LDAP",
"Your password will expire tomorrow." : "Завтра истекает срок действия пароля.",
@@ -59,6 +69,10 @@ OC.L10N.register(
"_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Срок действия пароля истекает через %n день.","Срок действия пароля истекает через %n дня.","Срок действия пароля истекает через %n дней.","Срок действия пароля истекает через %n день."],
"LDAP/AD integration" : "LDAP/AD интеграция",
"LDAP Connection" : "Подключение по протоколу LDAP",
+ "_Binding failed for this LDAP configuration: %s_::_Binding failed for %n LDAP configurations: %s_" : ["Не удалось выполнить привязку для этой конфигурации LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s"],
+ "_Searching failed for this LDAP configuration: %s_::_Searching failed for %n LDAP configurations: %s_" : ["Ошибка поиска в этой конфигурации LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s"],
+ "_There is an inactive LDAP configuration: %s_::_There are %n inactive LDAP configurations: %s_" : ["Найдена неактивная конфигурация LDAP: %s","Найдено %n неактивных конфигурации LDAP: %s","Найдено %n неактивных конфигураций LDAP: %s","Найдено %n неактивных конфигураций LDAP: %s"],
+ "_Binding and searching works on the configured LDAP connection (%s)_::_Binding and searching works on all of the %n configured LDAP connections (%s)_" : [" Привязка и поиск работают в настроенном LDAP-соединении (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"],
"Invalid LDAP UUIDs" : "Недопустимые UUID LDAP",
"None found" : "Ничего не найдено",
"Invalid UUIDs of LDAP accounts or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Обнаружены недопустимые идентификаторы UUID учетных записей или групп LDAP. Пожалуйста, ознакомьтесь с вашими настройками \"Переопределение обнаружения UUID\" в экспертной части конфигурации LDAP и используйте \"occ ldap:update-uuid\", чтобы обновить их.",
@@ -207,6 +221,8 @@ OC.L10N.register(
"User profile Biography will be set from the specified attribute" : "Биография в профиле пользователя будет установлена из указанного атрибута",
"Birthdate Field" : "Поле Даты рождения",
"User profile Date of birth will be set from the specified attribute" : "Дата рождения профиля пользователя будет установлена на основе указанного атрибута",
+ "Pronouns Field" : " Поле местоимений",
+ "User profile Pronouns 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 c02b19e87ee..eea51dcf3a7 100644
--- a/apps/user_ldap/l10n/ru.json
+++ b/apps/user_ldap/l10n/ru.json
@@ -4,10 +4,12 @@
"Invalid configuration: Anonymous binding is not allowed." : "Неверная конфигурация: анонимное связывание не разрешается.",
"Valid configuration, connection established!" : "Конфигурация настроена верно, связь установлена!",
"Valid configuration, but binding failed. Please check the server settings and credentials." : "Конфигурация настроена верно, но связывание не удалось. Проверьте настройки сервера и реквизиты доступа.",
+ "Invalid configuration: %s" : "Недопустимая конфигурация: %s",
"No action specified" : "Действие не указано",
"No configuration specified" : "Конфигурация не указана",
"No data specified" : "Нет данных",
"Invalid data specified" : "Указаны некорректные данные",
+ "Could not set configuration %1$s to %2$s" : "Не удалось задать конфигурацию %1$s для %2$s",
"Action does not exist" : "Действие не существует",
"Renewing …" : "Обновление…",
"Very weak password" : "Очень слабый пароль",
@@ -22,12 +24,12 @@
"Configuration OK" : "Конфигурация в порядке",
"Select groups" : "Выберите группы",
"Select object classes" : "Выберите объектные классы",
- "Please check the credentials, they seem to be wrong." : "Пожалуйста проверьте учетный данные, возможно они не верны.",
+ "Please check the credentials, they seem to be wrong." : "Пожалуйста, проверьте учётные данные — возможно, они указаны неверно.",
"Please specify the port, it could not be auto-detected." : "Пожалуйста укажите порт, он не может быть определен автоматически.",
"Base DN could not be auto-detected, please revise credentials, host and port." : "База поиска не может быть определена автоматически, пожалуйста перепроверьте учетные данные, адрес и порт.",
"Could not detect Base DN, please enter it manually." : "Невозможно обнаружить Base DN, пожалуйста, задайте вручную.",
"{nthServer}. Server" : "Сервер {nthServer}.",
- "No object found in the given Base DN. Please revise." : "Не найдено объектов в Base DN. Пожалуйста перепроверьте.",
+ "No object found in the given Base DN. Please revise." : "В указанной базовой DN не найден ни один объект. Пожалуйста, перепроверьте.",
"More than 1,000 directory entries available." : "В каталоге доступно более 1,000 записей.",
"_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} элемент доступен в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN","{objectsFound} элементов доступно в предоставленном базовом DN"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Произошла ошибка. Пожалуйста проверьте базу поиска DN, а также настройки подключения и учетные данные.",
@@ -50,6 +52,14 @@
"The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP/AD." : "Заполнитель \"%uid\" отсутствует. Он будет заменён именем пользователя при запросе LDAP/AD.",
"Please provide a login name to test against" : "Пожалуйста, укажите логин для проверки",
"The group box was disabled, because the LDAP/AD server does not support memberOf." : "Блок группы был отключен, поскольку сервер LDAP/AD не поддерживает memberOf.",
+ "Password change rejected. Hint: %s" : "Изменение пароля отклонено. Подсказка: %s",
+ "Mandatory field \"%s\" left empty" : "Обязательное поле «%s» оставлено пустым",
+ "A password is given, but not an LDAP agent" : "Пароль задан, но не указан LDAP-агент",
+ "No password is given for the user agent" : "Пароль для LDAP-агента не задан",
+ "No LDAP base DN was given" : "Не указана базовая DN LDAP",
+ "User base DN is not a subnode of global base DN" : "Базовая DN пользователей не является подузлом глобальной базовой DN",
+ "Group base DN is not a subnode of global base DN" : " Базовая DN групп не является подузлом глобальной базовой DN",
+ "Login filter does not contain %s placeholder." : "Фильтр входа не содержит плейсхолдер %s.",
"Please login with the new password" : "Войдите в систему со своим новым паролем",
"LDAP User backend" : "Механизм учета пользователей LDAP",
"Your password will expire tomorrow." : "Завтра истекает срок действия пароля.",
@@ -57,6 +67,10 @@
"_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Срок действия пароля истекает через %n день.","Срок действия пароля истекает через %n дня.","Срок действия пароля истекает через %n дней.","Срок действия пароля истекает через %n день."],
"LDAP/AD integration" : "LDAP/AD интеграция",
"LDAP Connection" : "Подключение по протоколу LDAP",
+ "_Binding failed for this LDAP configuration: %s_::_Binding failed for %n LDAP configurations: %s_" : ["Не удалось выполнить привязку для этой конфигурации LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s","Не удалось выполнить привязку для %n конфигураций LDAP: %s"],
+ "_Searching failed for this LDAP configuration: %s_::_Searching failed for %n LDAP configurations: %s_" : ["Ошибка поиска в этой конфигурации LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s","Ошибка поиска в %n конфигурациях LDAP: %s"],
+ "_There is an inactive LDAP configuration: %s_::_There are %n inactive LDAP configurations: %s_" : ["Найдена неактивная конфигурация LDAP: %s","Найдено %n неактивных конфигурации LDAP: %s","Найдено %n неактивных конфигураций LDAP: %s","Найдено %n неактивных конфигураций LDAP: %s"],
+ "_Binding and searching works on the configured LDAP connection (%s)_::_Binding and searching works on all of the %n configured LDAP connections (%s)_" : [" Привязка и поиск работают в настроенном LDAP-соединении (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"," Привязка и поиск работают во всех %n настроенных LDAP-соединениях (%s)"],
"Invalid LDAP UUIDs" : "Недопустимые UUID LDAP",
"None found" : "Ничего не найдено",
"Invalid UUIDs of LDAP accounts or groups have been found. Please review your \"Override UUID detection\" settings in the Expert part of the LDAP configuration and use \"occ ldap:update-uuid\" to update them." : "Обнаружены недопустимые идентификаторы UUID учетных записей или групп LDAP. Пожалуйста, ознакомьтесь с вашими настройками \"Переопределение обнаружения UUID\" в экспертной части конфигурации LDAP и используйте \"occ ldap:update-uuid\", чтобы обновить их.",
@@ -205,6 +219,8 @@
"User profile Biography will be set from the specified attribute" : "Биография в профиле пользователя будет установлена из указанного атрибута",
"Birthdate Field" : "Поле Даты рождения",
"User profile Date of birth will be set from the specified attribute" : "Дата рождения профиля пользователя будет установлена на основе указанного атрибута",
+ "Pronouns Field" : " Поле местоимений",
+ "User profile Pronouns 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/sr@latin.js b/apps/user_ldap/l10n/sr@latin.js
deleted file mode 100644
index 7769a4b6bda..00000000000
--- a/apps/user_ldap/l10n/sr@latin.js
+++ /dev/null
@@ -1,14 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Server" : "Server",
- "Users" : "Korisnici",
- "Groups" : "Grupe",
- "Help" : "Pomoć",
- "Host" : "Računar",
- "Port" : "Port",
- "Password" : "Lozinka",
- "Continue" : "Nastavi",
- "Advanced" : "Napredno"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/user_ldap/l10n/sr@latin.json b/apps/user_ldap/l10n/sr@latin.json
deleted file mode 100644
index ad4492827f7..00000000000
--- a/apps/user_ldap/l10n/sr@latin.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{ "translations": {
- "Server" : "Server",
- "Users" : "Korisnici",
- "Groups" : "Grupe",
- "Help" : "Pomoć",
- "Host" : "Računar",
- "Port" : "Port",
- "Password" : "Lozinka",
- "Continue" : "Nastavi",
- "Advanced" : "Napredno"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/su.js b/apps/user_ldap/l10n/su.js
deleted file mode 100644
index 5494dcae62e..00000000000
--- a/apps/user_ldap/l10n/su.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : [""],
- "_%s user found_::_%s users found_" : [""]
-},
-"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/su.json b/apps/user_ldap/l10n/su.json
deleted file mode 100644
index 75f0f056cc4..00000000000
--- a/apps/user_ldap/l10n/su.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : [""],
- "_%s user found_::_%s users found_" : [""]
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/sw_KE.js b/apps/user_ldap/l10n/sw_KE.js
deleted file mode 100644
index 37042a4f412..00000000000
--- a/apps/user_ldap/l10n/sw_KE.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/sw_KE.json b/apps/user_ldap/l10n/sw_KE.json
deleted file mode 100644
index 521de7ba1a8..00000000000
--- a/apps/user_ldap/l10n/sw_KE.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/tg_TJ.js b/apps/user_ldap/l10n/tg_TJ.js
deleted file mode 100644
index 37042a4f412..00000000000
--- a/apps/user_ldap/l10n/tg_TJ.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/tg_TJ.json b/apps/user_ldap/l10n/tg_TJ.json
deleted file mode 100644
index 521de7ba1a8..00000000000
--- a/apps/user_ldap/l10n/tg_TJ.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/tl_PH.js b/apps/user_ldap/l10n/tl_PH.js
deleted file mode 100644
index 95c97db2f9c..00000000000
--- a/apps/user_ldap/l10n/tl_PH.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_ldap/l10n/tl_PH.json b/apps/user_ldap/l10n/tl_PH.json
deleted file mode 100644
index 8e0cd6f6783..00000000000
--- a/apps/user_ldap/l10n/tl_PH.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js
index 52a58012d90..d0f0f55c247 100644
--- a/apps/user_ldap/l10n/tr.js
+++ b/apps/user_ldap/l10n/tr.js
@@ -42,7 +42,7 @@ OC.L10N.register(
"Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonim atamaya izin verilmiyor. Lütfen bir Kullanıcı DN ve parola belirtin.",
"LDAP Operations error. Anonymous bind might not be allowed." : "LDAP işleminde sorun çıktı. Anonim bağlamaya izin verilmiyor.",
"Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Kaydedilemedi. Veri tabanının çalışıyor olduğundan emin olun. İlerlemeden önce yeniden yükleyin.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını kullanıma alır. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını açar. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?",
"Mode switch" : "Kip değişimi",
"Select attributes" : "Öznitelikleri seçin",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Kullanıcı bulunamadı. Lütfen oturum açma özniteliklerini ve kullanıcı adını denetleyin. Etkin süzgeç (komut satırı doğrulamasında kullanmak için kopyalayıp yapıştırın): <br/>",
@@ -148,7 +148,7 @@ OC.L10N.register(
"Groups" : "Gruplar",
"Expert" : "Uzman",
"Advanced" : "Gelişmiş",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Uyarı:</b> PHP LDAP modülü kurulmamış, arka uç çalışmayacak. Lütfen kurması için BT yöneticiniz ile görüşün.",
+ "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Uyarı:</b> PHP LDAP modülü kurulmamış, arka yüz çalışmayacak. Lütfen kurması için BT yöneticiniz ile görüşün.",
"Connection Settings" : "Bağlantı Ayarları",
"Configuration Active" : "Yapılandırma etkin",
"When unchecked, this configuration will be skipped." : "Bu seçenek işaretli değilse, bu yapılandırma atlanır.",
@@ -158,7 +158,7 @@ OC.L10N.register(
"Disable Main Server" : "Ana sunucuyu kullanımdan kaldır",
"Only connect to the replica server." : "Yalnızca yedek sunucu ile bağlantı kurulsun.",
"Turn off SSL certificate validation." : "SSL sertifika doğrulaması kullanılmasın.",
- "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnız bu seçenek kullanıma alındığında çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.",
+ "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnızca bu seçenek ile çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.",
"Cache Time-To-Live" : "Ön Bellek Time-To-Live Değeri",
"in seconds. A change empties the cache." : "saniye cinsinden. Değişiklik ön belleği temizler.",
"Directory Settings" : "Dizin Ayarları",
@@ -171,7 +171,7 @@ OC.L10N.register(
"User Search Attributes" : "Kullanıcı arama öznitelikleri",
"Optional; one attribute per line" : "İsteğe bağlı; her satıra bir öznitelik",
"Disable users missing from LDAP" : "LDAP üzerinde bulunmayan kullanıcılar kullanımdan kaldırılsın",
- "When switched on, users imported from LDAP which are then missing will be disabled" : "Bu seçenek açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır",
+ "When switched on, users imported from LDAP which are then missing will be disabled" : "Açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır",
"Group Display Name Field" : "Görüntülenecek Grup Adı Alanı",
"The LDAP attribute to use to generate the groups's display name." : "Görüntülenecek grup adını üretmek için kullanılacak LDAP özniteliği.",
"Base Group Tree" : "Temel Grup Ağacı",
@@ -179,16 +179,16 @@ OC.L10N.register(
"Group Search Attributes" : "Grup Arama Öznitelikleri",
"Group-Member association" : "Grup-Üye İlişkisi",
"Dynamic Group Member URL" : "Devingen Grup Üye Adresi",
- "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kullanımdan kaldırılır).",
+ "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kapatılır).",
"Nested Groups" : "İç İçe Gruplar",
- "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Bu seçenek kullanıma alındığında, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliği DN içeriyorsa çalışır).",
+ "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Açılırsa, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliğinde DN bulunuyorsa çalışır).",
"Paging chunksize" : "Sayfalandırma yığın boyutu",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kullanımdan kaldırılır).",
+ "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kapatılır).",
"Enable LDAP password changes per user" : "Kullanıcılar LDAP parolalarını değiştirebilsin",
- "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : " Bu seçenek kullanıma alındığında, LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucuya uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucuya düz metin biçiminde aktarıldığından, LDAP sunucu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.",
+ "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucusuna uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucusuna düz metin biçiminde aktarıldığından, LDAP sunucusu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.",
"(New password is sent as plain text to LDAP)" : "(Yeni parola LDAP üzerine düz metin olarak gönderildi)",
"Default password policy DN" : "Varsayılan parola ilkesi DN",
- "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği kullanıma alınmış ise çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kullanımdan kaldırılmak için boş bırakın.",
+ "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği açıksa çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kapatmak için boş bırakın.",
"Special Attributes" : "Özel Öznitelikler",
"Quota Field" : "Kota Alanı",
"Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Kullanıcının varsayılan kotasının kullanılması için boş bırakın ya da bir LDAP/AD özniteliği belirtin.",
diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json
index a9e01755a8e..f5c2c7306dd 100644
--- a/apps/user_ldap/l10n/tr.json
+++ b/apps/user_ldap/l10n/tr.json
@@ -40,7 +40,7 @@
"Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonim atamaya izin verilmiyor. Lütfen bir Kullanıcı DN ve parola belirtin.",
"LDAP Operations error. Anonymous bind might not be allowed." : "LDAP işleminde sorun çıktı. Anonim bağlamaya izin verilmiyor.",
"Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Kaydedilemedi. Veri tabanının çalışıyor olduğundan emin olun. İlerlemeden önce yeniden yükleyin.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını kullanıma alır. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Kipi değiştirmek otomatik LDAP sorgularını açar. LDAP sisteminizin boyutlarına göre bu işlem uzun sürebilir. Kipi yine de değiştirmek istiyor musunuz?",
"Mode switch" : "Kip değişimi",
"Select attributes" : "Öznitelikleri seçin",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Kullanıcı bulunamadı. Lütfen oturum açma özniteliklerini ve kullanıcı adını denetleyin. Etkin süzgeç (komut satırı doğrulamasında kullanmak için kopyalayıp yapıştırın): <br/>",
@@ -146,7 +146,7 @@
"Groups" : "Gruplar",
"Expert" : "Uzman",
"Advanced" : "Gelişmiş",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Uyarı:</b> PHP LDAP modülü kurulmamış, arka uç çalışmayacak. Lütfen kurması için BT yöneticiniz ile görüşün.",
+ "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Uyarı:</b> PHP LDAP modülü kurulmamış, arka yüz çalışmayacak. Lütfen kurması için BT yöneticiniz ile görüşün.",
"Connection Settings" : "Bağlantı Ayarları",
"Configuration Active" : "Yapılandırma etkin",
"When unchecked, this configuration will be skipped." : "Bu seçenek işaretli değilse, bu yapılandırma atlanır.",
@@ -156,7 +156,7 @@
"Disable Main Server" : "Ana sunucuyu kullanımdan kaldır",
"Only connect to the replica server." : "Yalnızca yedek sunucu ile bağlantı kurulsun.",
"Turn off SSL certificate validation." : "SSL sertifika doğrulaması kullanılmasın.",
- "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnız bu seçenek kullanıma alındığında çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.",
+ "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Önerilmez, yalnızca deneme amacıyla kullanın! Bağlantı yalnızca bu seçenek ile çalışıyorsa LDAP sunucusunun SSL sertifikasını %s sunucuzun içine aktarın.",
"Cache Time-To-Live" : "Ön Bellek Time-To-Live Değeri",
"in seconds. A change empties the cache." : "saniye cinsinden. Değişiklik ön belleği temizler.",
"Directory Settings" : "Dizin Ayarları",
@@ -169,7 +169,7 @@
"User Search Attributes" : "Kullanıcı arama öznitelikleri",
"Optional; one attribute per line" : "İsteğe bağlı; her satıra bir öznitelik",
"Disable users missing from LDAP" : "LDAP üzerinde bulunmayan kullanıcılar kullanımdan kaldırılsın",
- "When switched on, users imported from LDAP which are then missing will be disabled" : "Bu seçenek açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır",
+ "When switched on, users imported from LDAP which are then missing will be disabled" : "Açıldığında, LDAP üzerinden içe aktarılmış ancak daha sonra kaybolmuş kullanıcılar kullanımdan kaldırılır",
"Group Display Name Field" : "Görüntülenecek Grup Adı Alanı",
"The LDAP attribute to use to generate the groups's display name." : "Görüntülenecek grup adını üretmek için kullanılacak LDAP özniteliği.",
"Base Group Tree" : "Temel Grup Ağacı",
@@ -177,16 +177,16 @@
"Group Search Attributes" : "Grup Arama Öznitelikleri",
"Group-Member association" : "Grup-Üye İlişkisi",
"Dynamic Group Member URL" : "Devingen Grup Üye Adresi",
- "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kullanımdan kaldırılır).",
+ "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "Bu grup nesneleri üzerindeki LDAP özniteliğinde, gruba hangi nesnelerin ait olduğunu bulan bir LDAP arama adresi bulunuyor (seçenek boş bırakıldığında dinamik grup üyeliği özelliği kapatılır).",
"Nested Groups" : "İç İçe Gruplar",
- "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Bu seçenek kullanıma alındığında, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliği DN içeriyorsa çalışır).",
+ "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Açılırsa, gruplar içinde gruplar desteklenir (Yalnızca grup üyesi özniteliğinde DN bulunuyorsa çalışır).",
"Paging chunksize" : "Sayfalandırma yığın boyutu",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kullanımdan kaldırılır).",
+ "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Yığın boyutu, kullanıcı ya da grup listeleri gibi, çok sayıda sonuç verebilen sayfalandırılmış LDAP aramaları için kullanılır (0 olarak ayarlandığında bu durumlarda sayfalandırılmış LDAP aramaları kapatılır).",
"Enable LDAP password changes per user" : "Kullanıcılar LDAP parolalarını değiştirebilsin",
- "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : " Bu seçenek kullanıma alındığında, LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucuya uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucuya düz metin biçiminde aktarıldığından, LDAP sunucu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.",
+ "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP kullanıcıları kendi parolalarını değiştirebilir ve Süper Yöneticiler ile Grup Yöneticileri kendi LDAP kullanıcılarının parolalarını değiştirebilir. Yalnızca erişim denetimi ilkeleri LDAP sunucusuna uygun olarak yapılandırılmış ise çalışır. Parolalar LDAP sunucusuna düz metin biçiminde aktarıldığından, LDAP sunucusu üzerinde aktarım şifrelemesi ve parola karması kullanılmalıdır.",
"(New password is sent as plain text to LDAP)" : "(Yeni parola LDAP üzerine düz metin olarak gönderildi)",
"Default password policy DN" : "Varsayılan parola ilkesi DN",
- "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği kullanıma alınmış ise çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kullanımdan kaldırılmak için boş bırakın.",
+ "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Parola geçerlilik süresinin sona erme işlemleri için kullanılacak varsayılan parola ilkesinin etki alanı adı (DN). Yalnızca her kullanıcı için LDAP parola değişikliği açıksa çalışır ve yalnızca OpenLDAP tarafından desteklenir. Parola süresi sona erme işlemlerini kapatmak için boş bırakın.",
"Special Attributes" : "Özel Öznitelikler",
"Quota Field" : "Kota Alanı",
"Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Kullanıcının varsayılan kotasının kullanılması için boş bırakın ya da bir LDAP/AD özniteliği belirtin.",
diff --git a/apps/user_ldap/l10n/tzm.js b/apps/user_ldap/l10n/tzm.js
deleted file mode 100644
index 1d621c04a77..00000000000
--- a/apps/user_ldap/l10n/tzm.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},
-"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;");
diff --git a/apps/user_ldap/l10n/tzm.json b/apps/user_ldap/l10n/tzm.json
deleted file mode 100644
index 2c3a3581b99..00000000000
--- a/apps/user_ldap/l10n/tzm.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "_%s group found_::_%s groups found_" : ["",""],
- "_%s user found_::_%s users found_" : ["",""]
-},"pluralForm" :"nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ur_PK.js b/apps/user_ldap/l10n/ur_PK.js
deleted file mode 100644
index 693a42b0543..00000000000
--- a/apps/user_ldap/l10n/ur_PK.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Users" : "صارفین",
- "Help" : "مدد",
- "Password" : "پاسورڈ",
- "Advanced" : "ایڈوانسڈ"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/ur_PK.json b/apps/user_ldap/l10n/ur_PK.json
deleted file mode 100644
index 26ff4cf5671..00000000000
--- a/apps/user_ldap/l10n/ur_PK.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "Users" : "صارفین",
- "Help" : "مدد",
- "Password" : "پاسورڈ",
- "Advanced" : "ایڈوانسڈ"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/vi.js b/apps/user_ldap/l10n/vi.js
deleted file mode 100644
index e20feb8abba..00000000000
--- a/apps/user_ldap/l10n/vi.js
+++ /dev/null
@@ -1,45 +0,0 @@
-OC.L10N.register(
- "user_ldap",
- {
- "Failed to clear the mappings." : "Lỗi khi xóa ánh xạ.",
- "Failed to delete the server configuration" : "Lỗi khi xóa cấu hình máy chủ",
- "Select groups" : "Chọn nhóm",
- "Invalid Host" : "Host không hợp lệ",
- "Server" : "Máy chủ",
- "Users" : "Người dùng",
- "Groups" : "Nhóm",
- "Test Configuration" : "Kiểm tra cấu hình",
- "Help" : "Giúp đỡ",
- "Other Attributes:" : "Thuộc tính khác",
- "1. Server" : "1. Máy chủ",
- "%s. Server:" : "%s. Máy chủ:",
- "Host" : "Máy chủ",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Bạn có thể bỏ qua các giao thức, ngoại trừ SSL. Sau đó bắt đầu với ldaps://",
- "Port" : "Cổng",
- "User DN" : "Người dùng DN",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Các DN của người sử dụng đã được thực hiện, ví dụ như uid =agent , dc = example, dc = com. Để truy cập nặc danh ,DN và mật khẩu trống.",
- "Password" : "Mật khẩu",
- "For anonymous access, leave DN and Password empty." : "Cho phép truy cập nặc danh , DN và mật khẩu trống.",
- "You can specify Base DN for users and groups in the Advanced tab" : "Bạn có thể chỉ định DN cơ bản cho người dùng và các nhóm trong tab Advanced",
- "Back" : "Trở lại",
- "Continue" : "Tiếp tục",
- "Advanced" : "Nâng cao",
- "Connection Settings" : "Connection Settings",
- "Backup (Replica) Port" : "Cổng sao lưu (Replica)",
- "Disable Main Server" : "Tắt máy chủ chính",
- "Turn off SSL certificate validation." : "Tắt xác thực chứng nhận SSL",
- "in seconds. A change empties the cache." : "trong vài giây. Một sự thay đổi bộ nhớ cache.",
- "Directory Settings" : "Directory Settings",
- "User Display Name Field" : "Hiển thị tên người sử dụng",
- "Base User Tree" : "Cây người dùng cơ bản",
- "User Search Attributes" : "User Search Attributes",
- "Optional; one attribute per line" : "Optional; one attribute per line",
- "Group Display Name Field" : "Hiển thị tên nhóm",
- "Base Group Tree" : "Cây nhóm cơ bản",
- "Group Search Attributes" : "Group Search Attributes",
- "Group-Member association" : "Nhóm thành viên Cộng đồng",
- "Special Attributes" : "Special Attributes",
- "in bytes" : "Theo Byte",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/vi.json b/apps/user_ldap/l10n/vi.json
deleted file mode 100644
index ffbeff90189..00000000000
--- a/apps/user_ldap/l10n/vi.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{ "translations": {
- "Failed to clear the mappings." : "Lỗi khi xóa ánh xạ.",
- "Failed to delete the server configuration" : "Lỗi khi xóa cấu hình máy chủ",
- "Select groups" : "Chọn nhóm",
- "Invalid Host" : "Host không hợp lệ",
- "Server" : "Máy chủ",
- "Users" : "Người dùng",
- "Groups" : "Nhóm",
- "Test Configuration" : "Kiểm tra cấu hình",
- "Help" : "Giúp đỡ",
- "Other Attributes:" : "Thuộc tính khác",
- "1. Server" : "1. Máy chủ",
- "%s. Server:" : "%s. Máy chủ:",
- "Host" : "Máy chủ",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Bạn có thể bỏ qua các giao thức, ngoại trừ SSL. Sau đó bắt đầu với ldaps://",
- "Port" : "Cổng",
- "User DN" : "Người dùng DN",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Các DN của người sử dụng đã được thực hiện, ví dụ như uid =agent , dc = example, dc = com. Để truy cập nặc danh ,DN và mật khẩu trống.",
- "Password" : "Mật khẩu",
- "For anonymous access, leave DN and Password empty." : "Cho phép truy cập nặc danh , DN và mật khẩu trống.",
- "You can specify Base DN for users and groups in the Advanced tab" : "Bạn có thể chỉ định DN cơ bản cho người dùng và các nhóm trong tab Advanced",
- "Back" : "Trở lại",
- "Continue" : "Tiếp tục",
- "Advanced" : "Nâng cao",
- "Connection Settings" : "Connection Settings",
- "Backup (Replica) Port" : "Cổng sao lưu (Replica)",
- "Disable Main Server" : "Tắt máy chủ chính",
- "Turn off SSL certificate validation." : "Tắt xác thực chứng nhận SSL",
- "in seconds. A change empties the cache." : "trong vài giây. Một sự thay đổi bộ nhớ cache.",
- "Directory Settings" : "Directory Settings",
- "User Display Name Field" : "Hiển thị tên người sử dụng",
- "Base User Tree" : "Cây người dùng cơ bản",
- "User Search Attributes" : "User Search Attributes",
- "Optional; one attribute per line" : "Optional; one attribute per line",
- "Group Display Name Field" : "Hiển thị tên nhóm",
- "Base Group Tree" : "Cây nhóm cơ bản",
- "Group Search Attributes" : "Group Search Attributes",
- "Group-Member association" : "Nhóm thành viên Cộng đồng",
- "Special Attributes" : "Special Attributes",
- "in bytes" : "Theo Byte",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/user_ldap/lib/Command/Search.php b/apps/user_ldap/lib/Command/Search.php
index ad13c94c84a..85906b20e9a 100644
--- a/apps/user_ldap/lib/Command/Search.php
+++ b/apps/user_ldap/lib/Command/Search.php
@@ -12,7 +12,6 @@ use OCA\User_LDAP\Helper;
use OCA\User_LDAP\LDAP;
use OCA\User_LDAP\User_Proxy;
use OCP\IConfig;
-use OCP\IDBConnection;
use OCP\Server;
use Symfony\Component\Console\Command\Command;
@@ -83,7 +82,7 @@ class Search extends Command {
}
protected function execute(InputInterface $input, OutputInterface $output): int {
- $helper = new Helper($this->ocConfig, Server::get(IDBConnection::class));
+ $helper = Server::get(Helper::class);
$configPrefixes = $helper->getServerConfigurationPrefixes(true);
$ldapWrapper = new LDAP();
diff --git a/apps/user_ldap/lib/Command/SetConfig.php b/apps/user_ldap/lib/Command/SetConfig.php
index 5a0b65a2c3e..7e9efcf34d0 100644
--- a/apps/user_ldap/lib/Command/SetConfig.php
+++ b/apps/user_ldap/lib/Command/SetConfig.php
@@ -11,8 +11,6 @@ use OCA\User_LDAP\Configuration;
use OCA\User_LDAP\ConnectionFactory;
use OCA\User_LDAP\Helper;
use OCA\User_LDAP\LDAP;
-use OCP\IConfig;
-use OCP\IDBConnection;
use OCP\Server;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
@@ -43,7 +41,7 @@ class SetConfig extends Command {
}
protected function execute(InputInterface $input, OutputInterface $output): int {
- $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+ $helper = Server::get(Helper::class);
$availableConfigs = $helper->getServerConfigurationPrefixes();
$configID = $input->getArgument('configID');
if (!in_array($configID, $availableConfigs)) {
diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php
index 78a5f93d29e..b25a2e72b2b 100644
--- a/apps/user_ldap/lib/Connection.php
+++ b/apps/user_ldap/lib/Connection.php
@@ -11,8 +11,6 @@ use OC\ServerNotAvailableException;
use OCA\User_LDAP\Exceptions\ConfigurationIssueException;
use OCP\ICache;
use OCP\ICacheFactory;
-use OCP\IConfig;
-use OCP\IDBConnection;
use OCP\IL10N;
use OCP\Server;
use OCP\Util;
@@ -156,7 +154,7 @@ class Connection extends LDAPUtility {
if ($memcache->isAvailable()) {
$this->cache = $memcache->createDistributed();
}
- $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+ $helper = Server::get(Helper::class);
$this->doNotValidate = !in_array($this->configPrefix,
$helper->getServerConfigurationPrefixes());
$this->logger = Server::get(LoggerInterface::class);
diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php
index 27c19e6c4f5..d3abf04fd1e 100644
--- a/apps/user_ldap/lib/Helper.php
+++ b/apps/user_ldap/lib/Helper.php
@@ -9,7 +9,7 @@ namespace OCA\User_LDAP;
use OCP\Cache\CappedMemoryCache;
use OCP\DB\QueryBuilder\IQueryBuilder;
-use OCP\IConfig;
+use OCP\IAppConfig;
use OCP\IDBConnection;
use OCP\Server;
@@ -18,7 +18,7 @@ class Helper {
protected CappedMemoryCache $sanitizeDnCache;
public function __construct(
- private IConfig $config,
+ private IAppConfig $appConfig,
private IDBConnection $connection,
) {
$this->sanitizeDnCache = new CappedMemoryCache(10000);
@@ -45,21 +45,37 @@ class Helper {
* except the default (first) server shall be connected to.
*
*/
- public function getServerConfigurationPrefixes($activeConfigurations = false): array {
+ public function getServerConfigurationPrefixes(bool $activeConfigurations = false): array {
+ $all = $this->getAllServerConfigurationPrefixes();
+ if (!$activeConfigurations) {
+ return $all;
+ }
+ return array_values(array_filter(
+ $all,
+ fn (string $prefix): bool => ($this->appConfig->getValueString('user_ldap', $prefix . 'ldap_configuration_active') === '1')
+ ));
+ }
+
+ protected function getAllServerConfigurationPrefixes(): array {
+ $unfilled = ['UNFILLED'];
+ $prefixes = $this->appConfig->getValueArray('user_ldap', 'configuration_prefixes', $unfilled);
+ if ($prefixes !== $unfilled) {
+ return $prefixes;
+ }
+
+ /* Fallback to browsing key for migration from Nextcloud<32 */
$referenceConfigkey = 'ldap_configuration_active';
$keys = $this->getServersConfig($referenceConfigkey);
$prefixes = [];
foreach ($keys as $key) {
- if ($activeConfigurations && $this->config->getAppValue('user_ldap', $key, '0') !== '1') {
- continue;
- }
-
$len = strlen($key) - strlen($referenceConfigkey);
$prefixes[] = substr($key, 0, $len);
}
- asort($prefixes);
+ sort($prefixes);
+
+ $this->appConfig->setValueArray('user_ldap', 'configuration_prefixes', $prefixes);
return $prefixes;
}
@@ -68,46 +84,45 @@ class Helper {
*
* determines the host for every configured connection
*
- * @return array an array with configprefix as keys
+ * @return array<string,string> an array with configprefix as keys
*
*/
- public function getServerConfigurationHosts() {
- $referenceConfigkey = 'ldap_host';
-
- $keys = $this->getServersConfig($referenceConfigkey);
+ public function getServerConfigurationHosts(): array {
+ $prefixes = $this->getServerConfigurationPrefixes();
+ $referenceConfigkey = 'ldap_host';
$result = [];
- foreach ($keys as $key) {
- $len = strlen($key) - strlen($referenceConfigkey);
- $prefix = substr($key, 0, $len);
- $result[$prefix] = $this->config->getAppValue('user_ldap', $key);
+ foreach ($prefixes as $prefix) {
+ $result[$prefix] = $this->appConfig->getValueString('user_ldap', $prefix . $referenceConfigkey);
}
return $result;
}
/**
- * return the next available configuration prefix
- *
- * @return string
+ * return the next available configuration prefix and register it as used
*/
- public function getNextServerConfigurationPrefix() {
- $serverConnections = $this->getServerConfigurationPrefixes();
-
- if (count($serverConnections) === 0) {
- return 's01';
+ public function getNextServerConfigurationPrefix(): string {
+ $prefixes = $this->getServerConfigurationPrefixes();
+
+ if (count($prefixes) === 0) {
+ $prefix = 's01';
+ } else {
+ sort($prefixes);
+ $lastKey = array_pop($prefixes);
+ $lastNumber = (int)str_replace('s', '', $lastKey);
+ $prefix = 's' . str_pad((string)($lastNumber + 1), 2, '0', STR_PAD_LEFT);
}
- sort($serverConnections);
- $lastKey = array_pop($serverConnections);
- $lastNumber = (int)str_replace('s', '', $lastKey);
- return 's' . str_pad((string)($lastNumber + 1), 2, '0', STR_PAD_LEFT);
+ $prefixes[] = $prefix;
+ $this->appConfig->setValueArray('user_ldap', 'configuration_prefixes', $prefixes);
+ return $prefix;
}
private function getServersConfig(string $value): array {
$regex = '/' . $value . '$/S';
- $keys = $this->config->getAppKeys('user_ldap');
+ $keys = $this->appConfig->getKeys('user_ldap');
$result = [];
foreach ($keys as $key) {
if (preg_match($regex, $key) === 1) {
@@ -125,7 +140,9 @@ class Helper {
* @return bool true on success, false otherwise
*/
public function deleteServerConfiguration($prefix) {
- if (!in_array($prefix, self::getServerConfigurationPrefixes())) {
+ $prefixes = $this->getServerConfigurationPrefixes();
+ $index = array_search($prefix, $prefixes);
+ if ($index === false) {
return false;
}
@@ -144,7 +161,11 @@ class Helper {
$query->andWhere($query->expr()->notLike('configkey', $query->createNamedParameter('s%')));
}
- $deletedRows = $query->execute();
+ $deletedRows = $query->executeStatement();
+
+ unset($prefixes[$index]);
+ $this->appConfig->setValueArray('user_ldap', 'configuration_prefixes', array_values($prefixes));
+
return $deletedRows !== 0;
}
@@ -152,10 +173,13 @@ class Helper {
* checks whether there is one or more disabled LDAP configurations
*/
public function haveDisabledConfigurations(): bool {
- $all = $this->getServerConfigurationPrefixes(false);
- $active = $this->getServerConfigurationPrefixes(true);
-
- return count($all) !== count($active) || count($all) === 0;
+ $all = $this->getServerConfigurationPrefixes();
+ foreach ($all as $prefix) {
+ if ($this->appConfig->getValueString('user_ldap', $prefix . 'ldap_configuration_active') !== '1') {
+ return true;
+ }
+ }
+ return false;
}
/**
diff --git a/apps/user_ldap/lib/Jobs/CleanUp.php b/apps/user_ldap/lib/Jobs/CleanUp.php
index 7cfc473c950..a1309c0c463 100644
--- a/apps/user_ldap/lib/Jobs/CleanUp.php
+++ b/apps/user_ldap/lib/Jobs/CleanUp.php
@@ -67,7 +67,7 @@ class CleanUp extends TimedJob {
if (isset($arguments['helper'])) {
$this->ldapHelper = $arguments['helper'];
} else {
- $this->ldapHelper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+ $this->ldapHelper = Server::get(Helper::class);
}
if (isset($arguments['ocConfig'])) {
diff --git a/apps/user_ldap/lib/LDAP.php b/apps/user_ldap/lib/LDAP.php
index 50af2556c72..1cf20c4b939 100644
--- a/apps/user_ldap/lib/LDAP.php
+++ b/apps/user_ldap/lib/LDAP.php
@@ -11,6 +11,7 @@ use OC\ServerNotAvailableException;
use OCA\User_LDAP\DataCollector\LdapDataCollector;
use OCA\User_LDAP\Exceptions\ConstraintViolationException;
use OCP\IConfig;
+use OCP\ILogger;
use OCP\Profiler\IProfiler;
use OCP\Server;
use Psr\Log\LoggerInterface;
@@ -18,6 +19,7 @@ use Psr\Log\LoggerInterface;
class LDAP implements ILDAPWrapper {
protected array $curArgs = [];
protected LoggerInterface $logger;
+ protected IConfig $config;
private ?LdapDataCollector $dataCollector = null;
@@ -32,6 +34,7 @@ class LDAP implements ILDAPWrapper {
}
$this->logger = Server::get(LoggerInterface::class);
+ $this->config = Server::get(IConfig::class);
}
/**
@@ -291,6 +294,21 @@ class LDAP implements ILDAPWrapper {
return null;
}
+ /**
+ * Turn resources into string, and removes potentially problematic cookie string to avoid breaking logfiles
+ */
+ private function sanitizeFunctionParameters(array $args): array {
+ return array_map(function ($item) {
+ if ($this->isResource($item)) {
+ return '(resource)';
+ }
+ if (isset($item[0]['value']['cookie']) && $item[0]['value']['cookie'] !== '') {
+ $item[0]['value']['cookie'] = '*opaque cookie*';
+ }
+ return $item;
+ }, $args);
+ }
+
private function preFunctionCall(string $functionName, array $args): void {
$this->curArgs = $args;
if (strcasecmp($functionName, 'ldap_bind') === 0 || strcasecmp($functionName, 'ldap_exop_passwd') === 0) {
@@ -301,32 +319,24 @@ class LDAP implements ILDAPWrapper {
$args[2] = IConfig::SENSITIVE_VALUE;
}
- $this->logger->debug('Calling LDAP function {func} with parameters {args}', [
- 'app' => 'user_ldap',
- 'func' => $functionName,
- 'args' => json_encode($args),
- ]);
+ if ($this->config->getSystemValue('loglevel') === ILogger::DEBUG) {
+ /* Only running this if debug loglevel is on, to avoid processing parameters on production */
+ $this->logger->debug('Calling LDAP function {func} with parameters {args}', [
+ 'app' => 'user_ldap',
+ 'func' => $functionName,
+ 'args' => $this->sanitizeFunctionParameters($args),
+ ]);
+ }
if ($this->dataCollector !== null) {
- $args = array_map(function ($item) {
- if ($this->isResource($item)) {
- return '(resource)';
- }
- if (isset($item[0]['value']['cookie']) && $item[0]['value']['cookie'] !== '') {
- $item[0]['value']['cookie'] = '*opaque cookie*';
- }
- return $item;
- }, $this->curArgs);
-
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
- $this->dataCollector->startLdapRequest($functionName, $args, $backtrace);
+ $this->dataCollector->startLdapRequest($functionName, $this->sanitizeFunctionParameters($args), $backtrace);
}
if ($this->logFile !== '' && is_writable(dirname($this->logFile)) && (!file_exists($this->logFile) || is_writable($this->logFile))) {
- $args = array_map(fn ($item) => (!$this->isResource($item) ? $item : '(resource)'), $this->curArgs);
file_put_contents(
$this->logFile,
- $functionName . '::' . json_encode($args) . "\n",
+ $functionName . '::' . json_encode($this->sanitizeFunctionParameters($args)) . "\n",
FILE_APPEND
);
}
diff --git a/apps/user_ldap/lib/Settings/Admin.php b/apps/user_ldap/lib/Settings/Admin.php
index 014210ca8f0..49868eb68c7 100644
--- a/apps/user_ldap/lib/Settings/Admin.php
+++ b/apps/user_ldap/lib/Settings/Admin.php
@@ -8,8 +8,6 @@ namespace OCA\User_LDAP\Settings;
use OCA\User_LDAP\Configuration;
use OCA\User_LDAP\Helper;
use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IConfig;
-use OCP\IDBConnection;
use OCP\IL10N;
use OCP\Server;
use OCP\Settings\IDelegatedSettings;
@@ -26,7 +24,7 @@ class Admin implements IDelegatedSettings {
* @return TemplateResponse
*/
public function getForm() {
- $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+ $helper = Server::get(Helper::class);
$prefixes = $helper->getServerConfigurationPrefixes();
if (count($prefixes) === 0) {
$newPrefix = $helper->getNextServerConfigurationPrefix();
diff --git a/apps/user_ldap/lib/User/User.php b/apps/user_ldap/lib/User/User.php
index f97867e98d4..1dff026e7d8 100644
--- a/apps/user_ldap/lib/User/User.php
+++ b/apps/user_ldap/lib/User/User.php
@@ -515,7 +515,7 @@ class User {
* fetch all the user's attributes in one call and use the fetched values in this function.
* The expected value for that parameter is a string describing the quota for the user. Valid
* values are 'none' (unlimited), 'default' (the Nextcloud's default quota), '1234' (quota in
- * bytes), '1234 MB' (quota in MB - check the \OC_Helper::computerFileSize method for more info)
+ * bytes), '1234 MB' (quota in MB - check the \OCP\Util::computerFileSize method for more info)
*
* fetches the quota from LDAP and stores it as Nextcloud user value
* @param ?string $valueFromLDAP the quota attribute's value can be passed,
@@ -563,7 +563,7 @@ class User {
}
private function verifyQuotaValue(string $quotaValue): bool {
- return $quotaValue === 'none' || $quotaValue === 'default' || \OC_Helper::computerFileSize($quotaValue) !== false;
+ return $quotaValue === 'none' || $quotaValue === 'default' || Util::computerFileSize($quotaValue) !== false;
}
/**
diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php
index dba6e5480d5..eafaeb76403 100644
--- a/apps/user_ldap/tests/AccessTest.php
+++ b/apps/user_ldap/tests/AccessTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -23,7 +25,6 @@ use OCP\HintException;
use OCP\IAppConfig;
use OCP\IAvatarManager;
use OCP\IConfig;
-use OCP\IDBConnection;
use OCP\Image;
use OCP\IUserManager;
use OCP\Notification\IManager as INotificationManager;
@@ -41,36 +42,25 @@ use Test\TestCase;
* @package OCA\User_LDAP\Tests
*/
class AccessTest extends TestCase {
- /** @var UserMapping|MockObject */
- protected $userMapper;
- /** @var IManager|MockObject */
- protected $shareManager;
- /** @var GroupMapping|MockObject */
- protected $groupMapper;
- /** @var Connection|MockObject */
- private $connection;
- /** @var LDAP|MockObject */
- private $ldap;
- /** @var Manager|MockObject */
- private $userManager;
- /** @var Helper|MockObject */
- private $helper;
- /** @var IConfig|MockObject */
- private $config;
- /** @var IUserManager|MockObject */
- private $ncUserManager;
-
+ protected UserMapping&MockObject $userMapper;
+ protected IManager&MockObject $shareManager;
+ protected GroupMapping&MockObject $groupMapper;
+ private Connection&MockObject $connection;
+ private LDAP&MockObject $ldap;
+ private Manager&MockObject $userManager;
+ private Helper&MockObject $helper;
+ private IConfig&MockObject $config;
+ private IUserManager&MockObject $ncUserManager;
private LoggerInterface&MockObject $logger;
-
private IAppConfig&MockObject $appConfig;
-
- /** @var IEventDispatcher|MockObject */
- private $dispatcher;
+ private IEventDispatcher&MockObject $dispatcher;
private Access $access;
protected function setUp(): void {
- $this->connection = $this->createMock(Connection::class);
$this->ldap = $this->createMock(LDAP::class);
+ $this->connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->ldap])
+ ->getMock();
$this->userManager = $this->createMock(Manager::class);
$this->helper = $this->createMock(Helper::class);
$this->config = $this->createMock(IConfig::class);
@@ -119,26 +109,26 @@ class AccessTest extends TestCase {
$this->createMock(INotificationManager::class),
$this->shareManager])
->getMock();
- $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+ $helper = Server::get(Helper::class);
return [$lw, $connector, $um, $helper];
}
public function testEscapeFilterPartValidChars(): void {
$input = 'okay';
- $this->assertTrue($input === $this->access->escapeFilterPart($input));
+ $this->assertSame($input, $this->access->escapeFilterPart($input));
}
public function testEscapeFilterPartEscapeWildcard(): void {
$input = '*';
$expected = '\\2a';
- $this->assertTrue($expected === $this->access->escapeFilterPart($input));
+ $this->assertSame($expected, $this->access->escapeFilterPart($input));
}
public function testEscapeFilterPartEscapeWildcard2(): void {
$input = 'foo*bar';
$expected = 'foo\\2abar';
- $this->assertTrue($expected === $this->access->escapeFilterPart($input));
+ $this->assertSame($expected, $this->access->escapeFilterPart($input));
}
/**
@@ -151,7 +141,7 @@ class AccessTest extends TestCase {
$this->assertSame($sidExpected, $this->access->convertSID2Str($sidBinary));
}
- public function convertSID2StrSuccessData() {
+ public static function convertSID2StrSuccessData(): array {
return [
[
[
@@ -209,55 +199,53 @@ class AccessTest extends TestCase {
$this->assertSame($expected, $this->access->getDomainDNFromDN($inputDN));
}
- public function dnInputDataProvider() {
- return [[
+ public static function dnInputDataProvider(): array {
+ return [
[
- 'input' => 'foo=bar,bar=foo,dc=foobar',
- 'interResult' => [
+ 'foo=bar,bar=foo,dc=foobar',
+ [
'count' => 3,
0 => 'foo=bar',
1 => 'bar=foo',
2 => 'dc=foobar'
],
- 'expectedResult' => true
+ true
],
[
- 'input' => 'foobarbarfoodcfoobar',
- 'interResult' => false,
- 'expectedResult' => false
+ 'foobarbarfoodcfoobar',
+ false,
+ false
]
- ]];
+ ];
}
/**
* @dataProvider dnInputDataProvider
- * @param array $case
*/
- public function testStringResemblesDN($case): void {
+ public function testStringResemblesDN(string $input, array|bool $interResult, bool $expectedResult): void {
[$lw, $con, $um, $helper] = $this->getConnectorAndLdapMock();
- /** @var IConfig|MockObject $config */
+ /** @var IConfig&MockObject $config */
$config = $this->createMock(IConfig::class);
$access = new Access($lw, $con, $um, $helper, $config, $this->ncUserManager, $this->logger, $this->appConfig, $this->dispatcher);
$lw->expects($this->exactly(1))
->method('explodeDN')
- ->willReturnCallback(function ($dn) use ($case) {
- if ($dn === $case['input']) {
- return $case['interResult'];
+ ->willReturnCallback(function ($dn) use ($input, $interResult) {
+ if ($dn === $input) {
+ return $interResult;
}
return null;
});
- $this->assertSame($case['expectedResult'], $access->stringResemblesDN($case['input']));
+ $this->assertSame($expectedResult, $access->stringResemblesDN($input));
}
/**
* @dataProvider dnInputDataProvider
- * @param $case
*/
- public function testStringResemblesDNLDAPmod($case): void {
+ public function testStringResemblesDNLDAPmod(string $input, array|bool $interResult, bool $expectedResult): void {
[, $con, $um, $helper] = $this->getConnectorAndLdapMock();
- /** @var IConfig|MockObject $config */
+ /** @var IConfig&MockObject $config */
$config = $this->createMock(IConfig::class);
$lw = new LDAP();
$access = new Access($lw, $con, $um, $helper, $config, $this->ncUserManager, $this->logger, $this->appConfig, $this->dispatcher);
@@ -266,7 +254,7 @@ class AccessTest extends TestCase {
$this->markTestSkipped('LDAP Module not available');
}
- $this->assertSame($case['expectedResult'], $access->stringResemblesDN($case['input']));
+ $this->assertSame($expectedResult, $access->stringResemblesDN($input));
}
public function testCacheUserHome(): void {
@@ -290,7 +278,7 @@ class AccessTest extends TestCase {
->method('getAttributes')
->willReturn(['displayname' => ['bar', 'count' => 1]]);
- /** @var UserMapping|MockObject $mapperMock */
+ /** @var UserMapping&MockObject $mapperMock */
$mapperMock = $this->createMock(UserMapping::class);
$mapperMock->expects($this->any())
->method('getNameByDN')
@@ -335,7 +323,7 @@ class AccessTest extends TestCase {
}
public function testBatchApplyUserAttributesSkipped(): void {
- /** @var UserMapping|MockObject $mapperMock */
+ /** @var UserMapping&MockObject $mapperMock */
$mapperMock = $this->createMock(UserMapping::class);
$mapperMock->expects($this->any())
->method('getNameByDN')
@@ -376,7 +364,7 @@ class AccessTest extends TestCase {
}
public function testBatchApplyUserAttributesDontSkip(): void {
- /** @var UserMapping|MockObject $mapperMock */
+ /** @var UserMapping&MockObject $mapperMock */
$mapperMock = $this->createMock(UserMapping::class);
$mapperMock->expects($this->any())
->method('getNameByDN')
@@ -416,7 +404,7 @@ class AccessTest extends TestCase {
$this->access->batchApplyUserAttributes($data);
}
- public function dNAttributeProvider() {
+ public static function dNAttributeProvider(): array {
// corresponds to Access::resemblesDN()
return [
'dn' => ['dn'],
@@ -428,11 +416,10 @@ class AccessTest extends TestCase {
/**
* @dataProvider dNAttributeProvider
- * @param $attribute
*/
- public function testSanitizeDN($attribute): void {
+ public function testSanitizeDN(string $attribute): void {
[$lw, $con, $um, $helper] = $this->getConnectorAndLdapMock();
- /** @var IConfig|MockObject $config */
+ /** @var IConfig&MockObject $config */
$config = $this->createMock(IConfig::class);
$dnFromServer = 'cn=Mixed Cases,ou=Are Sufficient To,ou=Test,dc=example,dc=org';
@@ -628,7 +615,7 @@ class AccessTest extends TestCase {
$this->userMapper->expects($this->exactly($fakeLdapEntries['count']))
->method('getNameByDN')
->willReturnCallback(function ($fdn) {
- $parts = ldap_explode_dn($fdn, false);
+ $parts = ldap_explode_dn($fdn, 0);
return $parts[0];
});
@@ -676,7 +663,7 @@ class AccessTest extends TestCase {
$this->assertSame('Another Good Team', $groups[1]['cn'][0]);
}
- public function intUsernameProvider() {
+ public static function intUsernameProvider(): array {
return [
['alice', 'alice'],
['b/ob', 'bob'],
@@ -694,7 +681,7 @@ class AccessTest extends TestCase {
];
}
- public function groupIDCandidateProvider() {
+ public static function groupIDCandidateProvider(): array {
return [
['alice', 'alice'],
['b/ob', 'b/ob'],
@@ -713,11 +700,8 @@ class AccessTest extends TestCase {
/**
* @dataProvider intUsernameProvider
- *
- * @param $name
- * @param $expected
*/
- public function testSanitizeUsername($name, $expected): void {
+ public function testSanitizeUsername(string $name, ?string $expected): void {
if ($expected === null) {
$this->expectException(\InvalidArgumentException::class);
}
@@ -752,7 +736,7 @@ class AccessTest extends TestCase {
->with('detta')
->willReturnOnConsecutiveCalls($offlineUserMock, $regularUserMock);
- /** @var UserMapping|MockObject $mapperMock */
+ /** @var UserMapping&MockObject $mapperMock */
$mapperMock = $this->createMock(UserMapping::class);
$mapperMock->expects($this->any())
->method('getNameByDN')
diff --git a/apps/user_ldap/tests/ConfigurationTest.php b/apps/user_ldap/tests/ConfigurationTest.php
index cced8334bf5..dd6bd020f7b 100644
--- a/apps/user_ldap/tests/ConfigurationTest.php
+++ b/apps/user_ldap/tests/ConfigurationTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,15 +11,14 @@ namespace OCA\User_LDAP\Tests;
use OCA\User_LDAP\Configuration;
class ConfigurationTest extends \Test\TestCase {
- /** @var Configuration */
- protected $configuration;
+ protected Configuration $configuration;
protected function setUp(): void {
parent::setUp();
$this->configuration = new Configuration('t01', false);
}
- public function configurationDataProvider() {
+ public static function configurationDataProvider(): array {
$inputWithDN = [
'cn=someUsers,dc=example,dc=org',
' ',
@@ -89,12 +89,12 @@ class ConfigurationTest extends \Test\TestCase {
/**
* @dataProvider configurationDataProvider
*/
- public function testSetValue($key, $input, $expected): void {
+ public function testSetValue(string $key, string|array $input, string|array $expected): void {
$this->configuration->setConfiguration([$key => $input]);
$this->assertSame($this->configuration->$key, $expected);
}
- public function avatarRuleValueProvider() {
+ public static function avatarRuleValueProvider(): array {
return [
['none', []],
['data:selfie', ['selfie']],
@@ -108,7 +108,7 @@ class ConfigurationTest extends \Test\TestCase {
/**
* @dataProvider avatarRuleValueProvider
*/
- public function testGetAvatarAttributes($setting, $expected): void {
+ public function testGetAvatarAttributes(string $setting, array $expected): void {
$this->configuration->setConfiguration(['ldapUserAvatarRule' => $setting]);
$this->assertSame($expected, $this->configuration->getAvatarAttributes());
}
@@ -116,7 +116,7 @@ class ConfigurationTest extends \Test\TestCase {
/**
* @dataProvider avatarRuleValueProvider
*/
- public function testResolveRule($setting, $expected): void {
+ public function testResolveRule(string $setting, array $expected): void {
$this->configuration->setConfiguration(['ldapUserAvatarRule' => $setting]);
// so far the only thing that can get resolved :)
$this->assertSame($expected, $this->configuration->resolveRule('avatar'));
diff --git a/apps/user_ldap/tests/ConnectionTest.php b/apps/user_ldap/tests/ConnectionTest.php
index 9cb19891b3d..601611fcc2f 100644
--- a/apps/user_ldap/tests/ConnectionTest.php
+++ b/apps/user_ldap/tests/ConnectionTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,6 +11,7 @@ namespace OCA\User_LDAP\Tests;
use OC\ServerNotAvailableException;
use OCA\User_LDAP\Connection;
use OCA\User_LDAP\ILDAPWrapper;
+use PHPUnit\Framework\MockObject\MockObject;
/**
* Class Test_Connection
@@ -19,19 +21,16 @@ use OCA\User_LDAP\ILDAPWrapper;
* @package OCA\User_LDAP\Tests
*/
class ConnectionTest extends \Test\TestCase {
- /** @var ILDAPWrapper|\PHPUnit\Framework\MockObject\MockObject */
- protected $ldap;
-
- /** @var Connection */
- protected $connection;
+ protected ILDAPWrapper&MockObject $ldap;
+ protected Connection $connection;
protected function setUp(): void {
parent::setUp();
$this->ldap = $this->createMock(ILDAPWrapper::class);
// we use a mock here to replace the cache mechanism, due to missing DI in LDAP backend.
- $this->connection = $this->getMockBuilder('OCA\User_LDAP\Connection')
- ->setMethods(['getFromCache', 'writeToCache'])
+ $this->connection = $this->getMockBuilder(Connection::class)
+ ->onlyMethods(['getFromCache', 'writeToCache'])
->setConstructorArgs([$this->ldap, '', null])
->getMock();
diff --git a/apps/user_ldap/tests/GroupLDAPPluginTest.php b/apps/user_ldap/tests/GroupLDAPPluginTest.php
index f67de32c2e9..9f4cff64d6b 100644
--- a/apps/user_ldap/tests/GroupLDAPPluginTest.php
+++ b/apps/user_ldap/tests/GroupLDAPPluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,27 +11,23 @@ use OCA\User_LDAP\GroupPluginManager;
use OCP\GroupInterface;
class GroupLDAPPluginTest extends \Test\TestCase {
-
- /**
- * @return GroupPluginManager
- */
- private function getGroupPluginManager() {
+ private function getGroupPluginManager(): GroupPluginManager {
return new GroupPluginManager();
}
public function testImplementsActions(): void {
$pluginManager = $this->getGroupPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy')
- ->setMethods(['respondToActions'])
+ $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class)
+ ->onlyMethods(['respondToActions'])
->getMock();
$plugin->expects($this->any())
->method('respondToActions')
->willReturn(GroupInterface::CREATE_GROUP);
- $plugin2 = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy')
- ->setMethods(['respondToActions'])
+ $plugin2 = $this->getMockBuilder(LDAPGroupPluginDummy::class)
+ ->onlyMethods(['respondToActions'])
->getMock();
$plugin2->expects($this->any())
@@ -47,8 +45,8 @@ class GroupLDAPPluginTest extends \Test\TestCase {
public function testCreateGroup(): void {
$pluginManager = $this->getGroupPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy')
- ->setMethods(['respondToActions', 'createGroup'])
+ $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'createGroup'])
->getMock();
$plugin->expects($this->any())
@@ -77,8 +75,8 @@ class GroupLDAPPluginTest extends \Test\TestCase {
public function testDeleteGroup(): void {
$pluginManager = $this->getGroupPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy')
- ->setMethods(['respondToActions', 'deleteGroup'])
+ $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'deleteGroup'])
->getMock();
$plugin->expects($this->any())
@@ -107,8 +105,8 @@ class GroupLDAPPluginTest extends \Test\TestCase {
public function testAddToGroup(): void {
$pluginManager = $this->getGroupPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy')
- ->setMethods(['respondToActions', 'addToGroup'])
+ $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'addToGroup'])
->getMock();
$plugin->expects($this->any())
@@ -138,8 +136,8 @@ class GroupLDAPPluginTest extends \Test\TestCase {
public function testRemoveFromGroup(): void {
$pluginManager = $this->getGroupPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy')
- ->setMethods(['respondToActions', 'removeFromGroup'])
+ $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'removeFromGroup'])
->getMock();
$plugin->expects($this->any())
@@ -169,8 +167,8 @@ class GroupLDAPPluginTest extends \Test\TestCase {
public function testCountUsersInGroup(): void {
$pluginManager = $this->getGroupPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy')
- ->setMethods(['respondToActions', 'countUsersInGroup'])
+ $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'countUsersInGroup'])
->getMock();
$plugin->expects($this->any())
@@ -200,8 +198,8 @@ class GroupLDAPPluginTest extends \Test\TestCase {
public function testgetGroupDetails(): void {
$pluginManager = $this->getGroupPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy')
- ->setMethods(['respondToActions', 'getGroupDetails'])
+ $plugin = $this->getMockBuilder(LDAPGroupPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'getGroupDetails'])
->getMock();
$plugin->expects($this->any())
diff --git a/apps/user_ldap/tests/Group_LDAPTest.php b/apps/user_ldap/tests/Group_LDAPTest.php
index ad97d5024b1..d2634548f4f 100644
--- a/apps/user_ldap/tests/Group_LDAPTest.php
+++ b/apps/user_ldap/tests/Group_LDAPTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -34,10 +35,10 @@ use Test\TestCase;
* @package OCA\User_LDAP\Tests
*/
class Group_LDAPTest extends TestCase {
- private MockObject|Access $access;
- private MockObject|GroupPluginManager $pluginManager;
- private MockObject|IConfig $config;
- private MockObject|IUserManager $ncUserManager;
+ private Access&MockObject $access;
+ private GroupPluginManager&MockObject $pluginManager;
+ private IConfig&MockObject $config;
+ private IUserManager&MockObject $ncUserManager;
private GroupLDAP $groupBackend;
public function setUp(): void {
@@ -96,30 +97,19 @@ class Group_LDAPTest extends TestCase {
* @return MockObject|Access
*/
private function getAccessMock() {
- static $conMethods;
- static $accMethods;
-
- if (is_null($conMethods) || is_null($accMethods)) {
- $conMethods = get_class_methods(Connection::class);
- $accMethods = get_class_methods(Access::class);
- }
$lw = $this->createMock(ILDAPWrapper::class);
-
$connector = $this->getMockBuilder(Connection::class)
- ->setMethods($conMethods)
->setConstructorArgs([$lw, '', null])
->getMock();
$this->access = $this->createMock(Access::class);
-
$this->access->connection = $connector;
-
$this->access->userManager = $this->createMock(Manager::class);
return $this->access;
}
- private function enableGroups() {
+ private function enableGroups(): void {
$this->access->connection->expects($this->any())
->method('__get')
->willReturnCallback(function ($name) {
@@ -179,7 +169,7 @@ class Group_LDAPTest extends TestCase {
public function testCountUsersWithPlugin(): void {
/** @var GroupPluginManager|MockObject $pluginManager */
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'countUsersInGroup'])
+ ->onlyMethods(['implementsActions', 'countUsersInGroup'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -470,7 +460,7 @@ class Group_LDAPTest extends TestCase {
$this->groupBackend->inGroup($uid, $gid);
}
- public function groupWithMembersProvider() {
+ public static function groupWithMembersProvider(): array {
return [
[
'someGroup',
@@ -574,7 +564,7 @@ class Group_LDAPTest extends TestCase {
$memberUids = [];
$userRecords = [];
foreach ($memberDNs as $dn) {
- $memberUids[] = ldap_explode_dn($dn, false)[0];
+ $memberUids[] = ldap_explode_dn($dn, 0)[0];
$userRecords[] = ['dn' => [$dn]];
}
@@ -876,8 +866,8 @@ class Group_LDAPTest extends TestCase {
$this->initBackend();
$returnedGroups = $this->groupBackend->getUserGroups('userX');
$this->assertCount(2, $returnedGroups);
- $this->assertTrue(in_array('groupB', $returnedGroups));
- $this->assertTrue(in_array('groupF', $returnedGroups));
+ $this->assertContains('groupB', $returnedGroups);
+ $this->assertContains('groupF', $returnedGroups);
}
/**
@@ -903,8 +893,8 @@ class Group_LDAPTest extends TestCase {
$this->initBackend();
$returnedGroups = $this->groupBackend->getUserGroups('userX');
$this->assertCount(2, $returnedGroups);
- $this->assertTrue(in_array('groupB', $returnedGroups));
- $this->assertTrue(in_array('groupF', $returnedGroups));
+ $this->assertContains('groupB', $returnedGroups);
+ $this->assertContains('groupF', $returnedGroups);
}
public function testGetUserGroupsUnrecognizedOfflineUser(): void {
@@ -946,11 +936,11 @@ class Group_LDAPTest extends TestCase {
$this->initBackend();
$returnedGroups = $this->groupBackend->getUserGroups('userX');
$this->assertCount(2, $returnedGroups);
- $this->assertTrue(in_array('groupB', $returnedGroups));
- $this->assertTrue(in_array('groupF', $returnedGroups));
+ $this->assertContains('groupB', $returnedGroups);
+ $this->assertContains('groupF', $returnedGroups);
}
- public function nestedGroupsProvider(): array {
+ public static function nestedGroupsProvider(): array {
return [
[true],
[false],
@@ -1076,7 +1066,7 @@ class Group_LDAPTest extends TestCase {
public function testCreateGroupWithPlugin(): void {
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'createGroup'])
+ ->onlyMethods(['implementsActions', 'createGroup'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1090,7 +1080,7 @@ class Group_LDAPTest extends TestCase {
->willReturn('result');
$this->initBackend();
- $this->assertEquals($this->groupBackend->createGroup('gid'), true);
+ $this->assertTrue($this->groupBackend->createGroup('gid'));
}
@@ -1098,7 +1088,7 @@ class Group_LDAPTest extends TestCase {
$this->expectException(\Exception::class);
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'createGroup'])
+ ->onlyMethods(['implementsActions', 'createGroup'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1112,7 +1102,7 @@ class Group_LDAPTest extends TestCase {
public function testDeleteGroupWithPlugin(): void {
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'deleteGroup'])
+ ->onlyMethods(['implementsActions', 'deleteGroup'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1126,7 +1116,7 @@ class Group_LDAPTest extends TestCase {
->willReturn(true);
$mapper = $this->getMockBuilder(GroupMapping::class)
- ->setMethods(['unmap'])
+ ->onlyMethods(['unmap'])
->disableOriginalConstructor()
->getMock();
@@ -1143,7 +1133,7 @@ class Group_LDAPTest extends TestCase {
$this->expectException(\Exception::class);
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'deleteGroup'])
+ ->onlyMethods(['implementsActions', 'deleteGroup'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1157,7 +1147,7 @@ class Group_LDAPTest extends TestCase {
public function testAddToGroupWithPlugin(): void {
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'addToGroup'])
+ ->onlyMethods(['implementsActions', 'addToGroup'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1171,7 +1161,7 @@ class Group_LDAPTest extends TestCase {
->willReturn('result');
$this->initBackend();
- $this->assertEquals($this->groupBackend->addToGroup('uid', 'gid'), 'result');
+ $this->assertEquals('result', $this->groupBackend->addToGroup('uid', 'gid'));
}
@@ -1179,7 +1169,7 @@ class Group_LDAPTest extends TestCase {
$this->expectException(\Exception::class);
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'addToGroup'])
+ ->onlyMethods(['implementsActions', 'addToGroup'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1193,7 +1183,7 @@ class Group_LDAPTest extends TestCase {
public function testRemoveFromGroupWithPlugin(): void {
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'removeFromGroup'])
+ ->onlyMethods(['implementsActions', 'removeFromGroup'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1207,7 +1197,7 @@ class Group_LDAPTest extends TestCase {
->willReturn('result');
$this->initBackend();
- $this->assertEquals($this->groupBackend->removeFromGroup('uid', 'gid'), 'result');
+ $this->assertEquals('result', $this->groupBackend->removeFromGroup('uid', 'gid'));
}
@@ -1215,7 +1205,7 @@ class Group_LDAPTest extends TestCase {
$this->expectException(\Exception::class);
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'removeFromGroup'])
+ ->onlyMethods(['implementsActions', 'removeFromGroup'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1230,7 +1220,7 @@ class Group_LDAPTest extends TestCase {
public function testGetGroupDetailsWithPlugin(): void {
/** @var GroupPluginManager|MockObject $pluginManager */
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'getGroupDetails'])
+ ->onlyMethods(['implementsActions', 'getGroupDetails'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1244,14 +1234,14 @@ class Group_LDAPTest extends TestCase {
->willReturn('result');
$this->initBackend();
- $this->assertEquals($this->groupBackend->getGroupDetails('gid'), 'result');
+ $this->assertEquals('result', $this->groupBackend->getGroupDetails('gid'));
}
public function testGetGroupDetailsFailing(): void {
$this->expectException(\Exception::class);
$this->pluginManager = $this->getMockBuilder(GroupPluginManager::class)
- ->setMethods(['implementsActions', 'getGroupDetails'])
+ ->onlyMethods(['implementsActions', 'getGroupDetails'])
->getMock();
$this->pluginManager->expects($this->once())
@@ -1263,7 +1253,7 @@ class Group_LDAPTest extends TestCase {
$this->groupBackend->getGroupDetails('gid');
}
- public function groupMemberProvider() {
+ public static function groupMemberProvider(): array {
$base = 'dc=species,dc=earth';
$birdsDn = [
@@ -1332,10 +1322,9 @@ class Group_LDAPTest extends TestCase {
}
/**
- * @param string[] $expectedMembers
* @dataProvider groupMemberProvider
*/
- public function testGroupMembers(array $expectedResult, ?array $groupsInfo = null): void {
+ public function testGroupMembers(array $expectedResult, array $groupsInfo): void {
$this->access->expects($this->any())
->method('readAttribute')
->willReturnCallback(function ($group) use ($groupsInfo) {
@@ -1360,11 +1349,13 @@ class Group_LDAPTest extends TestCase {
foreach ($expectedResult as $groupDN => $expectedMembers) {
$resultingMembers = $this->invokePrivate($this->groupBackend, '_groupMembers', [$groupDN]);
- $this->assertEqualsCanonicalizing($expectedMembers, $resultingMembers);
+ sort($expectedMembers);
+ sort($resultingMembers);
+ $this->assertEquals($expectedMembers, $resultingMembers);
}
}
- public function displayNameProvider() {
+ public static function displayNameProvider(): array {
return [
['Graphic Novelists', ['Graphic Novelists']],
['', false],
@@ -1374,7 +1365,7 @@ class Group_LDAPTest extends TestCase {
/**
* @dataProvider displayNameProvider
*/
- public function testGetDisplayName(string $expected, $ldapResult): void {
+ public function testGetDisplayName(string $expected, bool|array $ldapResult): void {
$gid = 'graphic_novelists';
$this->access->expects($this->atLeastOnce())
diff --git a/apps/user_ldap/tests/HelperTest.php b/apps/user_ldap/tests/HelperTest.php
index eee5c162b53..adea600d900 100644
--- a/apps/user_ldap/tests/HelperTest.php
+++ b/apps/user_ldap/tests/HelperTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -6,56 +8,62 @@
namespace OCA\User_LDAP\Tests;
use OCA\User_LDAP\Helper;
-use OCP\IConfig;
+use OCP\IAppConfig;
use OCP\IDBConnection;
use OCP\Server;
+use PHPUnit\Framework\MockObject\MockObject;
/**
* @group DB
*/
class HelperTest extends \Test\TestCase {
+ private IAppConfig&MockObject $appConfig;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
-
- /** @var Helper */
- private $helper;
+ private Helper $helper;
protected function setUp(): void {
parent::setUp();
- $this->config = $this->createMock(IConfig::class);
- $this->helper = new Helper($this->config, Server::get(IDBConnection::class));
+ $this->appConfig = $this->createMock(IAppConfig::class);
+ $this->helper = new Helper(
+ $this->appConfig,
+ Server::get(IDBConnection::class)
+ );
}
public function testGetServerConfigurationPrefixes(): void {
- $this->config->method('getAppKeys')
- ->with($this->equalTo('user_ldap'))
+ $this->appConfig->method('getKeys')
+ ->with('user_ldap')
->willReturn([
'foo',
'ldap_configuration_active',
's1ldap_configuration_active',
]);
+ $this->appConfig->method('getValueArray')
+ ->with('user_ldap', 'configuration_prefixes')
+ -> willReturnArgument(2);
+
$result = $this->helper->getServerConfigurationPrefixes(false);
$this->assertEquals(['', 's1'], $result);
}
public function testGetServerConfigurationPrefixesActive(): void {
- $this->config->method('getAppKeys')
- ->with($this->equalTo('user_ldap'))
+ $this->appConfig->method('getKeys')
+ ->with('user_ldap')
->willReturn([
'foo',
'ldap_configuration_active',
's1ldap_configuration_active',
]);
- $this->config->method('getAppValue')
+ $this->appConfig->method('getValueArray')
+ ->with('user_ldap', 'configuration_prefixes')
+ -> willReturnArgument(2);
+
+ $this->appConfig->method('getValueString')
->willReturnCallback(function ($app, $key, $default) {
- if ($app !== 'user_ldap') {
- $this->fail('wrong app');
- }
if ($key === 's1ldap_configuration_active') {
return '1';
}
@@ -67,21 +75,58 @@ class HelperTest extends \Test\TestCase {
$this->assertEquals(['s1'], $result);
}
- public function testGetServerConfigurationHost(): void {
- $this->config->method('getAppKeys')
- ->with($this->equalTo('user_ldap'))
+ public function testGetServerConfigurationHostFromAppKeys(): void {
+ $this->appConfig->method('getKeys')
+ ->with('user_ldap')
->willReturn([
'foo',
'ldap_host',
's1ldap_host',
's02ldap_host',
+ 'ldap_configuration_active',
+ 's1ldap_configuration_active',
+ 's02ldap_configuration_active',
]);
- $this->config->method('getAppValue')
+ $this->appConfig->method('getValueArray')
+ ->with('user_ldap', 'configuration_prefixes')
+ -> willReturnArgument(2);
+
+ $this->appConfig->method('getValueString')
->willReturnCallback(function ($app, $key, $default) {
- if ($app !== 'user_ldap') {
- $this->fail('wrong app');
+ if ($key === 'ldap_host') {
+ return 'example.com';
}
+ if ($key === 's1ldap_host') {
+ return 'foo.bar.com';
+ }
+ return $default;
+ });
+
+ $result = $this->helper->getServerConfigurationHosts();
+
+ $this->assertEquals([
+ '' => 'example.com',
+ 's1' => 'foo.bar.com',
+ 's02' => '',
+ ], $result);
+ }
+
+ public function testGetServerConfigurationHost(): void {
+ $this->appConfig
+ ->expects(self::never())
+ ->method('getKeys');
+
+ $this->appConfig->method('getValueArray')
+ ->with('user_ldap', 'configuration_prefixes')
+ -> willReturn([
+ '',
+ 's1',
+ 's02',
+ ]);
+
+ $this->appConfig->method('getValueString')
+ ->willReturnCallback(function ($app, $key, $default) {
if ($key === 'ldap_host') {
return 'example.com';
}
diff --git a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php
index be8d7702cd1..00f8be18586 100644
--- a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php
+++ b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php
@@ -16,7 +16,6 @@ use OCA\User_LDAP\User\Manager;
use OCA\User_LDAP\UserPluginManager;
use OCP\IAvatarManager;
use OCP\IConfig;
-use OCP\IDBConnection;
use OCP\Image;
use OCP\IUserManager;
use OCP\Server;
@@ -125,7 +124,7 @@ abstract class AbstractIntegrationTest {
* initializes the test Helper
*/
protected function initHelper() {
- $this->helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+ $this->helper = Server::get(Helper::class);
}
/**
diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php
index e45238fa978..ae1709edd22 100644
--- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php
+++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php
@@ -3,7 +3,7 @@
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\user_ldap\tests\Integration\Lib;
+namespace OCA\User_LDAP\Tests\Integration\Lib;
use OCA\User_LDAP\Group_LDAP;
use OCA\User_LDAP\GroupPluginManager;
diff --git a/apps/user_ldap/tests/Jobs/CleanUpTest.php b/apps/user_ldap/tests/Jobs/CleanUpTest.php
index 582b6fba5d7..cefc9cc86b5 100644
--- a/apps/user_ldap/tests/Jobs/CleanUpTest.php
+++ b/apps/user_ldap/tests/Jobs/CleanUpTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,13 +19,11 @@ use OCP\IDBConnection;
use Test\TestCase;
class CleanUpTest extends TestCase {
- /** @var CleanUp */
- protected $bgJob;
-
- /** @var array */
- protected $mocks;
+ protected CleanUp $bgJob;
+ protected array $mocks;
public function setUp(): void {
+ parent::setUp();
$this->createMocks();
$this->bgJob = new CleanUp($this->mocks['timeFactory'], $this->mocks['userBackend'], $this->mocks['deletedUsersIndex']);
$this->bgJob->setArguments($this->mocks);
diff --git a/apps/user_ldap/tests/Jobs/SyncTest.php b/apps/user_ldap/tests/Jobs/SyncTest.php
index 8277e7d48a9..20489ea0901 100644
--- a/apps/user_ldap/tests/Jobs/SyncTest.php
+++ b/apps/user_ldap/tests/Jobs/SyncTest.php
@@ -1,4 +1,5 @@
<?php
+
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -26,32 +27,23 @@ use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
+/**
+ * @group DB
+ */
class SyncTest extends TestCase {
- /** @var array */
- protected $arguments;
- /** @var Helper|MockObject */
- protected $helper;
- /** @var LDAP|MockObject */
- protected $ldapWrapper;
- /** @var Manager|MockObject */
- protected $userManager;
- /** @var UserMapping|MockObject */
- protected $mapper;
+ protected Helper&MockObject $helper;
+ protected LDAP&MockObject $ldapWrapper;
+ protected Manager&MockObject $userManager;
+ protected UserMapping&MockObject $mapper;
+ protected IConfig&MockObject $config;
+ protected IAvatarManager&MockObject $avatarManager;
+ protected IDBConnection&MockObject $dbc;
+ protected IUserManager&MockObject $ncUserManager;
+ protected IManager&MockObject $notificationManager;
+ protected ConnectionFactory&MockObject $connectionFactory;
+ protected AccessFactory&MockObject $accessFactory;
+ protected array $arguments = [];
protected Sync $sync;
- /** @var IConfig|MockObject */
- protected $config;
- /** @var IAvatarManager|MockObject */
- protected $avatarManager;
- /** @var IDBConnection|MockObject */
- protected $dbc;
- /** @var IUserManager|MockObject */
- protected $ncUserManager;
- /** @var IManager|MockObject */
- protected $notificationManager;
- /** @var ConnectionFactory|MockObject */
- protected $connectionFactory;
- /** @var AccessFactory|MockObject */
- protected $accessFactory;
protected function setUp(): void {
parent::setUp();
@@ -65,7 +57,11 @@ class SyncTest extends TestCase {
$this->dbc = $this->createMock(IDBConnection::class);
$this->ncUserManager = $this->createMock(IUserManager::class);
$this->notificationManager = $this->createMock(IManager::class);
- $this->connectionFactory = $this->createMock(ConnectionFactory::class);
+ $this->connectionFactory = $this->getMockBuilder(ConnectionFactory::class)
+ ->setConstructorArgs([
+ $this->ldapWrapper,
+ ])
+ ->getMock();
$this->accessFactory = $this->createMock(AccessFactory::class);
$this->sync = new Sync(
@@ -86,7 +82,7 @@ class SyncTest extends TestCase {
$this->sync->overwritePropertiesForTest($this->ldapWrapper);
}
- public function intervalDataProvider(): array {
+ public static function intervalDataProvider(): array {
return [
[
0, 1000, 750
@@ -139,7 +135,7 @@ class SyncTest extends TestCase {
$this->sync->updateInterval();
}
- public function moreResultsProvider() {
+ public static function moreResultsProvider(): array {
return [
[ 3, 3, true ],
[ 3, 5, true ],
@@ -153,7 +149,11 @@ class SyncTest extends TestCase {
* @dataProvider moreResultsProvider
*/
public function testMoreResults($pagingSize, $results, $expected): void {
- $connection = $this->createMock(Connection::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([
+ $this->ldapWrapper,
+ ])
+ ->getMock();
$this->connectionFactory->expects($this->any())
->method('get')
->willReturn($connection);
@@ -166,7 +166,7 @@ class SyncTest extends TestCase {
return null;
});
- /** @var Access|MockObject $access */
+ /** @var Access&MockObject $access */
$access = $this->createMock(Access::class);
$this->accessFactory->expects($this->any())
->method('get')
@@ -191,7 +191,7 @@ class SyncTest extends TestCase {
$this->assertSame($expected, $hasMoreResults);
}
- public function cycleDataProvider() {
+ public static function cycleDataProvider(): array {
$lastCycle = ['prefix' => 's01', 'offset' => 1000];
$lastCycle2 = ['prefix' => '', 'offset' => 1000];
return [
@@ -207,19 +207,23 @@ class SyncTest extends TestCase {
/**
* @dataProvider cycleDataProvider
*/
- public function testDetermineNextCycle($cycleData, $prefixes, $expectedCycle): void {
+ public function testDetermineNextCycle(?array $cycleData, array $prefixes, ?array $expectedCycle): void {
$this->helper->expects($this->any())
->method('getServerConfigurationPrefixes')
->with(true)
->willReturn($prefixes);
if (is_array($expectedCycle)) {
+ $calls = [
+ ['user_ldap', 'background_sync_prefix', $expectedCycle['prefix']],
+ ['user_ldap', 'background_sync_offset', $expectedCycle['offset']],
+ ];
$this->config->expects($this->exactly(2))
->method('setAppValue')
- ->withConsecutive(
- ['user_ldap', 'background_sync_prefix', $expectedCycle['prefix']],
- ['user_ldap', 'background_sync_offset', $expectedCycle['offset']]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
} else {
$this->config->expects($this->never())
->method('setAppValue');
@@ -248,7 +252,7 @@ class SyncTest extends TestCase {
$this->assertFalse($this->sync->qualifiesToRun($cycleData));
}
- public function runDataProvider(): array {
+ public static function runDataProvider(): array {
return [
#0 - one LDAP server, reset
[[
@@ -283,7 +287,7 @@ class SyncTest extends TestCase {
/**
* @dataProvider runDataProvider
*/
- public function testRun($runData): void {
+ public function testRun(array $runData): void {
$this->config->expects($this->any())
->method('getAppValue')
->willReturnCallback(function ($app, $key, $default) use ($runData) {
@@ -310,13 +314,18 @@ class SyncTest extends TestCase {
return $default;
});
+
+ $calls = [
+ ['user_ldap', 'background_sync_prefix', $runData['expectedNextCycle']['prefix']],
+ ['user_ldap', 'background_sync_offset', $runData['expectedNextCycle']['offset']],
+ ['user_ldap', 'background_sync_interval', '43200'],
+ ];
$this->config->expects($this->exactly(3))
->method('setAppValue')
- ->withConsecutive(
- ['user_ldap', 'background_sync_prefix', $runData['expectedNextCycle']['prefix']],
- ['user_ldap', 'background_sync_offset', $runData['expectedNextCycle']['offset']],
- ['user_ldap', 'background_sync_interval', $this->anything()]
- );
+ ->willReturnCallback(function () use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$this->config->expects($this->any())
->method('getAppKeys')
->with('user_ldap')
@@ -327,7 +336,11 @@ class SyncTest extends TestCase {
->with(true)
->willReturn($runData['prefixes']);
- $connection = $this->createMock(Connection::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([
+ $this->ldapWrapper,
+ ])
+ ->getMock();
$this->connectionFactory->expects($this->any())
->method('get')
->willReturn($connection);
@@ -340,7 +353,7 @@ class SyncTest extends TestCase {
return null;
});
- /** @var Access|MockObject $access */
+ /** @var Access&MockObject $access */
$access = $this->createMock(Access::class);
$this->accessFactory->expects($this->any())
->method('get')
diff --git a/apps/user_ldap/tests/LDAPGroupPluginDummy.php b/apps/user_ldap/tests/LDAPGroupPluginDummy.php
index 0d47fbbd290..5ea1a491f14 100644
--- a/apps/user_ldap/tests/LDAPGroupPluginDummy.php
+++ b/apps/user_ldap/tests/LDAPGroupPluginDummy.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/apps/user_ldap/tests/LDAPProviderTest.php b/apps/user_ldap/tests/LDAPProviderTest.php
index 9b0830ae513..57323e374aa 100644
--- a/apps/user_ldap/tests/LDAPProviderTest.php
+++ b/apps/user_ldap/tests/LDAPProviderTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -12,13 +14,13 @@ use OCA\User_LDAP\Connection;
use OCA\User_LDAP\Group_LDAP;
use OCA\User_LDAP\Helper;
use OCA\User_LDAP\IGroupLDAP;
+use OCA\User_LDAP\ILDAPWrapper;
use OCA\User_LDAP\IUserLDAP;
use OCA\User_LDAP\LDAPProviderFactory;
use OCA\User_LDAP\User_LDAP;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\ICacheFactory;
use OCP\IConfig;
-use OCP\IDBConnection;
use OCP\IServerContainer;
use OCP\Server;
use Psr\Log\LoggerInterface;
@@ -31,13 +33,9 @@ use Psr\Log\LoggerInterface;
* @package OCA\User_LDAP\Tests
*/
class LDAPProviderTest extends \Test\TestCase {
- protected function setUp(): void {
- parent::setUp();
- }
-
private function getServerMock(IUserLDAP $userBackend, IGroupLDAP $groupBackend) {
$server = $this->getMockBuilder('OC\Server')
- ->setMethods(['getUserManager', 'getBackends', 'getGroupManager'])
+ ->onlyMethods(['getUserManager', 'getGroupManager'])
->setConstructorArgs(['', new Config(\OC::$configDir)])
->getMock();
$server->expects($this->any())
@@ -46,16 +44,13 @@ class LDAPProviderTest extends \Test\TestCase {
$server->expects($this->any())
->method('getGroupManager')
->willReturn($this->getGroupManagerMock($groupBackend));
- $server->expects($this->any())
- ->method($this->anything())
- ->willReturnSelf();
return $server;
}
private function getUserManagerMock(IUserLDAP $userBackend) {
$userManager = $this->getMockBuilder(Manager::class)
- ->setMethods(['getBackends'])
+ ->onlyMethods(['getBackends'])
->setConstructorArgs([
$this->createMock(IConfig::class),
$this->createMock(ICacheFactory::class),
@@ -71,7 +66,7 @@ class LDAPProviderTest extends \Test\TestCase {
private function getGroupManagerMock(IGroupLDAP $groupBackend) {
$groupManager = $this->getMockBuilder('OC\Group\Manager')
- ->setMethods(['getBackends'])
+ ->onlyMethods(['getBackends'])
->disableOriginalConstructor()
->getMock();
$groupManager->expects($this->any())
@@ -98,8 +93,8 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('User id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
@@ -110,20 +105,25 @@ class LDAPProviderTest extends \Test\TestCase {
$ldapProvider->getUserDN('nonexisting_user');
}
+
public function testGetUserDN(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists', 'getLDAPAccess', 'username2dn'])
+ $userAccess = $this->getMockBuilder(Access::class)
+ ->onlyMethods(['username2dn'])
+ ->disableOriginalConstructor()
+ ->getMock();
+ $userAccess->expects($this->once())
+ ->method('username2dn')
+ ->willReturn('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org');
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists', 'getLDAPAccess'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->once())
->method('userExists')
->willReturn(true);
- $userBackend->expects($this->once())
- ->method('username2dn')
- ->willReturn('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org');
$userBackend->expects($this->any())
- ->method($this->anything())
- ->willReturnSelf();
+ ->method('getLDAPAccess')
+ ->willReturn($userAccess);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
@@ -137,12 +137,9 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Group id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->disableOriginalConstructor()
- ->getMock();
-
- $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP')
- ->setMethods(['groupExists'])
+ $userBackend = $this->createMock(User_LDAP::class);
+ $groupBackend = $this->getMockBuilder(Group_LDAP::class)
+ ->onlyMethods(['groupExists'])
->disableOriginalConstructor()
->getMock();
@@ -155,25 +152,23 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetGroupDN(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists', 'getLDAPAccess', 'username2dn'])
- ->disableOriginalConstructor()
- ->getMock();
+ $userBackend = $this->createMock(User_LDAP::class);
- $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP')
- ->setMethods(['groupExists', 'getLDAPAccess', 'groupname2dn'])
+ $groupBackend = $this->getMockBuilder(Group_LDAP::class)
+ ->onlyMethods(['groupExists', 'getLDAPAccess'])
->disableOriginalConstructor()
->getMock();
+ $groupAccess = $this->createMock(Access::class);
+ $groupAccess->expects($this->once())
+ ->method('groupname2dn')
+ ->willReturn('cn=existing_group,ou=Are Sufficient To,ou=Test,dc=example,dc=org');
$groupBackend->expects($this->once())
->method('groupExists')
->willReturn(true);
- $groupBackend->expects($this->once())
- ->method('groupname2dn')
- ->willReturn('cn=existing_group,ou=Are Sufficient To,ou=Test,dc=example,dc=org');
$groupBackend->expects($this->any())
- ->method($this->anything())
- ->willReturnSelf();
+ ->method('getLDAPAccess')
+ ->willReturn($groupAccess);
$server = $this->getServerMock($userBackend, $groupBackend);
@@ -183,8 +178,8 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetUserName(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['dn2UserName'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['dn2UserName'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())
@@ -199,14 +194,11 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testDNasBaseParameter(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods([])
- ->disableOriginalConstructor()
- ->getMock();
+ $userBackend = $this->createMock(User_LDAP::class);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
- $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+ $helper = Server::get(Helper::class);
$ldapProvider = $this->getLDAPProvider($server);
$this->assertEquals(
@@ -215,14 +207,11 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testSanitizeDN(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods([])
- ->disableOriginalConstructor()
- ->getMock();
+ $userBackend = $this->createMock(User_LDAP::class);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
- $helper = new Helper(Server::get(IConfig::class), Server::get(IDBConnection::class));
+ $helper = Server::get(Helper::class);
$ldapProvider = $this->getLDAPProvider($server);
$this->assertEquals(
@@ -235,10 +224,7 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('User id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists'])
- ->disableOriginalConstructor()
- ->getMock();
+ $userBackend = $this->createMock(User_LDAP::class);
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
@@ -248,8 +234,8 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetLDAPConnection(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists', 'getNewLDAPConnection'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists', 'getNewLDAPConnection'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())
@@ -271,12 +257,9 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Group id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->disableOriginalConstructor()
- ->getMock();
-
- $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP')
- ->setMethods(['groupExists'])
+ $userBackend = $this->createMock(User_LDAP::class);
+ $groupBackend = $this->getMockBuilder(Group_LDAP::class)
+ ->onlyMethods(['groupExists'])
->disableOriginalConstructor()
->getMock();
@@ -289,12 +272,9 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetGroupLDAPConnection(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->disableOriginalConstructor()
- ->getMock();
-
- $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP')
- ->setMethods(['groupExists','getNewLDAPConnection'])
+ $userBackend = $this->createMock(User_LDAP::class);
+ $groupBackend = $this->getMockBuilder(Group_LDAP::class)
+ ->onlyMethods(['groupExists','getNewLDAPConnection'])
->disableOriginalConstructor()
->getMock();
@@ -318,8 +298,8 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('User id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
@@ -337,7 +317,9 @@ class LDAPProviderTest extends \Test\TestCase {
];
$dn = 'uid=malik,' . $bases[1];
- $connection = $this->createMock(Connection::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
$connection->expects($this->any())
->method('__get')
->willReturnCallback(function ($key) use ($bases) {
@@ -359,8 +341,8 @@ class LDAPProviderTest extends \Test\TestCase {
->method('username2dn')
->willReturn($dn);
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists', 'getLDAPAccess'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->atLeastOnce())
@@ -381,8 +363,8 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('User id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
@@ -399,7 +381,9 @@ class LDAPProviderTest extends \Test\TestCase {
'ou=groups,ou=barfoo,dc=example,dc=org',
];
- $connection = $this->createMock(Connection::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
$connection->expects($this->any())
->method('__get')
->willReturnCallback(function ($key) use ($bases) {
@@ -415,8 +399,8 @@ class LDAPProviderTest extends \Test\TestCase {
->method('getConnection')
->willReturn($connection);
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists', 'getLDAPAccess'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())
@@ -437,8 +421,8 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('User id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
@@ -450,19 +434,25 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testClearCache(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'clearCache'])
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
+ $connection->expects($this->once())
+ ->method('clearCache')
+ ->willReturn(true);
+ $access = $this->createMock(Access::class);
+ $access->method('getConnection')
+ ->willReturn($connection);
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists', 'getLDAPAccess'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->once())
->method('userExists')
->willReturn(true);
- $userBackend->expects($this->once())
- ->method('clearCache')
- ->willReturn(true);
$userBackend->expects($this->any())
- ->method($this->anything())
- ->willReturnSelf();
+ ->method('getLDAPAccess')
+ ->willReturn($access);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
@@ -476,11 +466,11 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Group id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
->disableOriginalConstructor()
->getMock();
- $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP')
- ->setMethods(['groupExists'])
+ $groupBackend = $this->getMockBuilder(Group_LDAP::class)
+ ->onlyMethods(['groupExists'])
->disableOriginalConstructor()
->getMock();
$groupBackend->expects($this->any())->method('groupExists')->willReturn(false);
@@ -492,22 +482,26 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testClearGroupCache(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->disableOriginalConstructor()
+ $userBackend = $this->createMock(User_LDAP::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
->getMock();
- $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP')
- ->setMethods(['groupExists', 'getLDAPAccess', 'getConnection', 'clearCache'])
+ $connection->expects($this->once())
+ ->method('clearCache')
+ ->willReturn(true);
+ $access = $this->createMock(Access::class);
+ $access->method('getConnection')
+ ->willReturn($connection);
+ $groupBackend = $this->getMockBuilder(Group_LDAP::class)
+ ->onlyMethods(['groupExists', 'getLDAPAccess'])
->disableOriginalConstructor()
->getMock();
$groupBackend->expects($this->once())
->method('groupExists')
->willReturn(true);
- $groupBackend->expects($this->once())
- ->method('clearCache')
- ->willReturn(true);
$groupBackend->expects($this->any())
- ->method($this->anything())
- ->willReturnSelf();
+ ->method('getLDAPAccess')
+ ->willReturn($access);
$server = $this->getServerMock($userBackend, $groupBackend);
@@ -517,8 +511,8 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testDnExists(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['dn2UserName'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['dn2UserName'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())
@@ -532,11 +526,7 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testFlagRecord(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods([])
- ->disableOriginalConstructor()
- ->getMock();
-
+ $userBackend = $this->createMock(User_LDAP::class);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
@@ -545,11 +535,7 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testUnflagRecord(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods([])
- ->disableOriginalConstructor()
- ->getMock();
-
+ $userBackend = $this->createMock(User_LDAP::class);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
$ldapProvider = $this->getLDAPProvider($server);
@@ -562,8 +548,8 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('User id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
@@ -575,19 +561,25 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetLDAPDisplayNameField(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration'])
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
+ $connection->expects($this->once())
+ ->method('getConfiguration')
+ ->willReturn(['ldap_display_name' => 'displayName']);
+ $access = $this->createMock(Access::class);
+ $access->method('getConnection')
+ ->willReturn($connection);
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists', 'getLDAPAccess'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->once())
->method('userExists')
->willReturn(true);
- $userBackend->expects($this->once())
- ->method('getConfiguration')
- ->willReturn(['ldap_display_name' => 'displayName']);
$userBackend->expects($this->any())
- ->method($this->anything())
- ->willReturnSelf();
+ ->method('getLDAPAccess')
+ ->willReturn($access);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
@@ -600,8 +592,8 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('User id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists'])
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->any())->method('userExists')->willReturn(false);
@@ -613,19 +605,25 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetLDAPEmailField(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration'])
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
+ $connection->expects($this->once())
+ ->method('getConfiguration')
+ ->willReturn(['ldap_email_attr' => 'mail']);
+ $access = $this->createMock(Access::class);
+ $access->method('getConnection')
+ ->willReturn($connection);
+ $userBackend = $this->getMockBuilder(User_LDAP::class)
+ ->onlyMethods(['userExists', 'getLDAPAccess'])
->disableOriginalConstructor()
->getMock();
$userBackend->expects($this->once())
->method('userExists')
->willReturn(true);
- $userBackend->expects($this->once())
- ->method('getConfiguration')
- ->willReturn(['ldap_email_attr' => 'mail']);
$userBackend->expects($this->any())
- ->method($this->anything())
- ->willReturnSelf();
+ ->method('getLDAPAccess')
+ ->willReturn($access);
$server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock());
@@ -638,16 +636,15 @@ class LDAPProviderTest extends \Test\TestCase {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('Group id not found in LDAP');
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->disableOriginalConstructor()
- ->getMock();
-
- $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP')
- ->setMethods(['groupExists'])
+ $userBackend = $this->createMock(User_LDAP::class);
+ $groupBackend = $this->getMockBuilder(Group_LDAP::class)
+ ->onlyMethods(['groupExists'])
->disableOriginalConstructor()
->getMock();
- $groupBackend->expects($this->any())->method('groupExists')->willReturn(false);
+ $groupBackend->expects($this->any())
+ ->method('groupExists')
+ ->willReturn(false);
$server = $this->getServerMock($userBackend, $groupBackend);
@@ -656,12 +653,19 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testgetLDAPGroupMemberAssoc(): void {
- $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP')
- ->disableOriginalConstructor()
- ->getMock();
+ $userBackend = $this->createMock(User_LDAP::class);
- $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP')
- ->setMethods(['groupExists', 'getLDAPAccess', 'getConnection', 'getConfiguration'])
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
+ $connection->expects($this->once())
+ ->method('getConfiguration')
+ ->willReturn(['ldap_group_member_assoc_attribute' => 'assoc_type']);
+ $access = $this->createMock(Access::class);
+ $access->method('getConnection')
+ ->willReturn($connection);
+ $groupBackend = $this->getMockBuilder(Group_LDAP::class)
+ ->onlyMethods(['groupExists', 'getLDAPAccess'])
->disableOriginalConstructor()
->getMock();
@@ -669,11 +673,8 @@ class LDAPProviderTest extends \Test\TestCase {
->method('groupExists')
->willReturn(true);
$groupBackend->expects($this->any())
- ->method('getConfiguration')
- ->willReturn(['ldap_group_member_assoc_attribute' => 'assoc_type']);
- $groupBackend->expects($this->any())
- ->method($this->anything())
- ->willReturnSelf();
+ ->method('getLDAPAccess')
+ ->willReturn($access);
$server = $this->getServerMock($userBackend, $groupBackend);
@@ -698,7 +699,9 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetMultiValueUserAttributeCacheHit(): void {
- $connection = $this->createMock(Connection::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
$connection->expects(self::once())
->method('getFromCache')
->with('admin-mailAlias')
@@ -723,7 +726,9 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetMultiValueUserAttributeLdapError(): void {
- $connection = $this->createMock(Connection::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
$connection->expects(self::once())
->method('getFromCache')
->with('admin-mailAlias')
@@ -760,7 +765,9 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetMultiValueUserAttribute(): void {
- $connection = $this->createMock(Connection::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
$connection->expects(self::once())
->method('getFromCache')
->with('admin-mailAlias')
@@ -797,7 +804,9 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetUserAttributeLdapError(): void {
- $connection = $this->createMock(Connection::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
$connection->expects(self::once())
->method('getFromCache')
->with('admin-mailAlias')
@@ -834,7 +843,9 @@ class LDAPProviderTest extends \Test\TestCase {
}
public function testGetUserAttribute(): void {
- $connection = $this->createMock(Connection::class);
+ $connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
$connection->expects(self::once())
->method('getFromCache')
->with('admin-mailAlias')
diff --git a/apps/user_ldap/tests/LDAPTest.php b/apps/user_ldap/tests/LDAPTest.php
index a29751555cb..936a1a27d3d 100644
--- a/apps/user_ldap/tests/LDAPTest.php
+++ b/apps/user_ldap/tests/LDAPTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -6,20 +8,20 @@
namespace OCA\User_LDAP\Tests;
use OCA\User_LDAP\LDAP;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class LDAPTest extends TestCase {
- /** @var LDAP|\PHPUnit\Framework\MockObject\MockObject */
- private $ldap;
+ private LDAP&MockObject $ldap;
protected function setUp(): void {
parent::setUp();
$this->ldap = $this->getMockBuilder(LDAP::class)
- ->setMethods(['invokeLDAPMethod'])
+ ->onlyMethods(['invokeLDAPMethod'])
->getMock();
}
- public function errorProvider() {
+ public static function errorProvider(): array {
return [
[
'ldap_search(): Partial search results returned: Sizelimit exceeded at /srv/http/nextcloud/master/apps/user_ldap/lib/LDAP.php#292',
@@ -32,8 +34,6 @@ class LDAPTest extends TestCase {
}
/**
- * @param string $errorMessage
- * @param bool $passThrough
* @dataProvider errorProvider
*/
public function testSearchWithErrorHandler(string $errorMessage, bool $passThrough): void {
diff --git a/apps/user_ldap/tests/LDAPUserPluginDummy.php b/apps/user_ldap/tests/LDAPUserPluginDummy.php
index f6edf3df63b..8d4870406ae 100644
--- a/apps/user_ldap/tests/LDAPUserPluginDummy.php
+++ b/apps/user_ldap/tests/LDAPUserPluginDummy.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -39,4 +41,12 @@ class LDAPUserPluginDummy implements ILDAPUserPlugin {
public function countUsers() {
return null;
}
+
+ public function canDeleteUser() {
+ return true;
+ }
+
+ public function deleteUser($uid) {
+ return null;
+ }
}
diff --git a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php b/apps/user_ldap/tests/Mapping/AbstractMappingTestCase.php
index f1e9b1b67bc..8efee4e2085 100644
--- a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php
+++ b/apps/user_ldap/tests/Mapping/AbstractMappingTestCase.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -11,7 +12,7 @@ use OCA\User_LDAP\Mapping\AbstractMapping;
use OCP\IDBConnection;
use OCP\Server;
-abstract class AbstractMappingTest extends \Test\TestCase {
+abstract class AbstractMappingTestCase extends \Test\TestCase {
abstract public function getMapper(IDBConnection $dbMock);
/**
@@ -29,8 +30,8 @@ abstract class AbstractMappingTest extends \Test\TestCase {
* returns an array of test entries with dn, name and uuid as keys
* @return array
*/
- protected function getTestData() {
- $data = [
+ protected static function getTestData(): array {
+ return [
[
'dn' => 'uid=foobar,dc=example,dc=org',
'name' => 'Foobar',
@@ -47,8 +48,6 @@ abstract class AbstractMappingTest extends \Test\TestCase {
'uuid' => '3333-CCCC-1234-CDEF',
]
];
-
- return $data;
}
/**
@@ -56,7 +55,7 @@ abstract class AbstractMappingTest extends \Test\TestCase {
* @param AbstractMapping $mapper
* @param array $data
*/
- protected function mapEntries($mapper, $data) {
+ protected function mapEntries(AbstractMapping $mapper, array $data): void {
foreach ($data as $entry) {
$done = $mapper->map($entry['dn'], $entry['name'], $entry['uuid']);
$this->assertTrue($done);
@@ -70,7 +69,7 @@ abstract class AbstractMappingTest extends \Test\TestCase {
* @return array 0 = \OCA\User_LDAP\Mapping\AbstractMapping, 1 = array of
* users or groups
*/
- private function initTest() {
+ private function initTest(): array {
$dbc = Server::get(IDBConnection::class);
$mapper = $this->getMapper($dbc);
$data = $this->getTestData();
@@ -157,13 +156,13 @@ abstract class AbstractMappingTest extends \Test\TestCase {
[$mapper,] = $this->initTest();
$names = $mapper->getNamesBySearch('oo', '%', '%');
- $this->assertTrue(is_array($names));
+ $this->assertIsArray($names);
$this->assertSame(2, count($names));
- $this->assertTrue(in_array('Foobar', $names));
- $this->assertTrue(in_array('Barfoo', $names));
+ $this->assertContains('Foobar', $names);
+ $this->assertContains('Barfoo', $names);
$names = $mapper->getNamesBySearch('nada');
- $this->assertTrue(is_array($names));
- $this->assertSame(0, count($names));
+ $this->assertIsArray($names);
+ $this->assertCount(0, $names);
}
/**
@@ -250,20 +249,20 @@ abstract class AbstractMappingTest extends \Test\TestCase {
// get all entries without specifying offset or limit
$results = $mapper->getList();
- $this->assertSame(3, count($results));
+ $this->assertCount(3, $results);
// get all-1 entries by specifying offset, and an high limit
// specifying only offset without limit will not work by underlying lib
$results = $mapper->getList(1, 999);
- $this->assertSame(count($data) - 1, count($results));
+ $this->assertCount(count($data) - 1, $results);
// get first 2 entries by limit, but not offset
$results = $mapper->getList(0, 2);
- $this->assertSame(2, count($results));
+ $this->assertCount(2, $results);
// get 2nd entry by specifying both offset and limit
$results = $mapper->getList(1, 1);
- $this->assertSame(1, count($results));
+ $this->assertCount(1, $results);
}
public function testGetListOfIdsByDn(): void {
@@ -282,6 +281,6 @@ abstract class AbstractMappingTest extends \Test\TestCase {
}
$result = $mapper->getListOfIdsByDn($listOfDNs);
- $this->assertSame(66640 / 20, count($result));
+ $this->assertCount(66640 / 20, $result);
}
}
diff --git a/apps/user_ldap/tests/Mapping/GroupMappingTest.php b/apps/user_ldap/tests/Mapping/GroupMappingTest.php
index efa42e47863..5729058d10e 100644
--- a/apps/user_ldap/tests/Mapping/GroupMappingTest.php
+++ b/apps/user_ldap/tests/Mapping/GroupMappingTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -17,7 +18,7 @@ use OCP\IDBConnection;
*
* @package OCA\User_LDAP\Tests\Mapping
*/
-class GroupMappingTest extends AbstractMappingTest {
+class GroupMappingTest extends AbstractMappingTestCase {
public function getMapper(IDBConnection $dbMock) {
return new GroupMapping($dbMock);
}
diff --git a/apps/user_ldap/tests/Mapping/UserMappingTest.php b/apps/user_ldap/tests/Mapping/UserMappingTest.php
index 07980ba470c..4346fe1d23f 100644
--- a/apps/user_ldap/tests/Mapping/UserMappingTest.php
+++ b/apps/user_ldap/tests/Mapping/UserMappingTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -18,7 +19,7 @@ use OCP\Support\Subscription\IAssertion;
*
* @package OCA\User_LDAP\Tests\Mapping
*/
-class UserMappingTest extends AbstractMappingTest {
+class UserMappingTest extends AbstractMappingTestCase {
public function getMapper(IDBConnection $dbMock) {
return new UserMapping($dbMock, $this->createMock(IAssertion::class));
}
diff --git a/apps/user_ldap/tests/Migration/AbstractUUIDFixTest.php b/apps/user_ldap/tests/Migration/AbstractUUIDFixTestCase.php
index f8abcaeb482..7a85b885bc1 100644
--- a/apps/user_ldap/tests/Migration/AbstractUUIDFixTest.php
+++ b/apps/user_ldap/tests/Migration/AbstractUUIDFixTestCase.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -13,17 +15,18 @@ use OCA\User_LDAP\Migration\UUIDFix;
use OCA\User_LDAP\Proxy;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IConfig;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
-abstract class AbstractUUIDFixTest extends TestCase {
- protected Helper $helper;
- protected IConfig $config;
- protected LDAP $ldap;
+abstract class AbstractUUIDFixTestCase extends TestCase {
+ protected Helper&MockObject $helper;
+ protected IConfig&MockObject $config;
+ protected LDAP&MockObject $ldap;
protected AbstractMapping $mapper;
protected UUIDFix $job;
protected Proxy $proxy;
- protected Access $access;
- protected ITimeFactory $time;
+ protected Access&MockObject $access;
+ protected ITimeFactory&MockObject $time;
protected bool $isUser = true;
protected function setUp(): void {
@@ -141,19 +144,23 @@ abstract class AbstractUUIDFixTest extends TestCase {
$this->access->expects($this->exactly(3))
->method('getUUID')
- ->withConsecutive(
- [$args['records'][0]['dn'], $this->isUser],
- [$args['records'][1]['dn'], $this->isUser],
- [$args['records'][2]['dn'], $this->isUser]
- )
- ->willReturnOnConsecutiveCalls($correctUUIDs[0], $correctUUIDs[1], $correctUUIDs[2]);
-
+ ->willReturnMap([
+ [$args['records'][0]['dn'], $this->isUser, null, $correctUUIDs[0]],
+ [$args['records'][1]['dn'], $this->isUser, null, $correctUUIDs[1]],
+ [$args['records'][2]['dn'], $this->isUser, null, $correctUUIDs[2]],
+ ]);
+
+ $calls = [
+ [$correctUUIDs[0], $args['records'][0]['dn']],
+ [$correctUUIDs[2], $args['records'][2]['dn']],
+ ];
$this->mapper->expects($this->exactly(2))
->method('setUUIDbyDN')
- ->withConsecutive(
- [$correctUUIDs[0], $args['records'][0]['dn']],
- [$correctUUIDs[2], $args['records'][2]['dn']]
- );
+ ->willReturnCallback(function ($i, $j) use (&$calls) {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ return true;
+ });
$this->job->run($args);
}
diff --git a/apps/user_ldap/tests/Migration/UUIDFixGroupTest.php b/apps/user_ldap/tests/Migration/UUIDFixGroupTest.php
index ab8fe03d6d2..89d880f4acb 100644
--- a/apps/user_ldap/tests/Migration/UUIDFixGroupTest.php
+++ b/apps/user_ldap/tests/Migration/UUIDFixGroupTest.php
@@ -1,14 +1,15 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\Group_LDAP\Tests\Migration;
+namespace OCA\User_LDAP\Tests\Migration;
use OCA\User_LDAP\Group_Proxy;
use OCA\User_LDAP\Mapping\GroupMapping;
use OCA\User_LDAP\Migration\UUIDFixGroup;
-use OCA\User_LDAP\Tests\Migration\AbstractUUIDFixTest;
/**
* Class UUIDFixGroupTest
@@ -16,7 +17,7 @@ use OCA\User_LDAP\Tests\Migration\AbstractUUIDFixTest;
* @package OCA\Group_LDAP\Tests\Migration
* @group DB
*/
-class UUIDFixGroupTest extends AbstractUUIDFixTest {
+class UUIDFixGroupTest extends AbstractUUIDFixTestCase {
protected function setUp(): void {
$this->isUser = false;
parent::setUp();
diff --git a/apps/user_ldap/tests/Migration/UUIDFixInsertTest.php b/apps/user_ldap/tests/Migration/UUIDFixInsertTest.php
index f31da43c584..0fc601c7d2e 100644
--- a/apps/user_ldap/tests/Migration/UUIDFixInsertTest.php
+++ b/apps/user_ldap/tests/Migration/UUIDFixInsertTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -11,23 +13,15 @@ use OCA\User_LDAP\Migration\UUIDFixInsert;
use OCP\BackgroundJob\IJobList;
use OCP\IConfig;
use OCP\Migration\IOutput;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class UUIDFixInsertTest extends TestCase {
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
-
- /** @var UserMapping|\PHPUnit\Framework\MockObject\MockObject */
- protected $userMapper;
-
- /** @var GroupMapping|\PHPUnit\Framework\MockObject\MockObject */
- protected $groupMapper;
-
- /** @var IJobList|\PHPUnit\Framework\MockObject\MockObject */
- protected $jobList;
-
- /** @var UUIDFixInsert */
- protected $job;
+ protected IConfig&MockObject $config;
+ protected UserMapping&MockObject $userMapper;
+ protected GroupMapping&MockObject $groupMapper;
+ protected IJobList&MockObject $jobList;
+ protected UUIDFixInsert $job;
protected function setUp(): void {
parent::setUp();
@@ -48,13 +42,12 @@ class UUIDFixInsertTest extends TestCase {
$this->assertSame('Insert UUIDFix background job for user and group in batches', $this->job->getName());
}
- public function recordProvider() {
+ public static function recordProvider(): array {
$record = [
'dn' => 'cn=somerecord,dc=somewhere',
'name' => 'Something',
'uuid' => 'AB12-3456-CDEF7-8GH9'
];
- array_fill(0, 50, $record);
$userBatches = [
0 => array_fill(0, 50, $record),
@@ -71,13 +64,12 @@ class UUIDFixInsertTest extends TestCase {
];
}
- public function recordProviderTooLongAndNone() {
+ public static function recordProviderTooLongAndNone(): array {
$record = [
'dn' => 'cn=somerecord,dc=somewhere',
'name' => 'Something',
'uuid' => 'AB12-3456-CDEF7-8GH9'
];
- array_fill(0, 50, $record);
$userBatches = [
0 => array_fill(0, 50, $record),
@@ -97,7 +89,7 @@ class UUIDFixInsertTest extends TestCase {
/**
* @dataProvider recordProvider
*/
- public function testRun($userBatches, $groupBatches): void {
+ public function testRun(array $userBatches, array $groupBatches): void {
$this->config->expects($this->once())
->method('getAppValue')
->with('user_ldap', 'installed_version', '1.2.1')
@@ -105,8 +97,11 @@ class UUIDFixInsertTest extends TestCase {
$this->userMapper->expects($this->exactly(3))
->method('getList')
- ->withConsecutive([0, 50], [50, 50], [100, 50])
- ->willReturnOnConsecutiveCalls($userBatches[0], $userBatches[1], $userBatches[2]);
+ ->willReturnMap([
+ [0, 50, false, $userBatches[0]],
+ [50, 50, false, $userBatches[1]],
+ [100, 50, false, $userBatches[2]],
+ ]);
$this->groupMapper->expects($this->exactly(1))
->method('getList')
@@ -124,7 +119,7 @@ class UUIDFixInsertTest extends TestCase {
/**
* @dataProvider recordProviderTooLongAndNone
*/
- public function testRunWithManyAndNone($userBatches, $groupBatches): void {
+ public function testRunWithManyAndNone(array $userBatches, array $groupBatches): void {
$this->config->expects($this->once())
->method('getAppValue')
->with('user_ldap', 'installed_version', '1.2.1')
@@ -132,8 +127,13 @@ class UUIDFixInsertTest extends TestCase {
$this->userMapper->expects($this->exactly(5))
->method('getList')
- ->withConsecutive([0, 50], [0, 40], [0, 32], [32, 32], [64, 32])
- ->willReturnOnConsecutiveCalls($userBatches[0], $userBatches[1], $userBatches[2], $userBatches[3], $userBatches[4]);
+ ->willReturnMap([
+ [0, 50, false, $userBatches[0]],
+ [0, 40, false, $userBatches[1]],
+ [0, 32, false, $userBatches[2]],
+ [32, 32, false, $userBatches[3]],
+ [64, 32, false, $userBatches[4]],
+ ]);
$this->groupMapper->expects($this->once())
->method('getList')
diff --git a/apps/user_ldap/tests/Migration/UUIDFixUserTest.php b/apps/user_ldap/tests/Migration/UUIDFixUserTest.php
index dfa1898450f..a582fd677fa 100644
--- a/apps/user_ldap/tests/Migration/UUIDFixUserTest.php
+++ b/apps/user_ldap/tests/Migration/UUIDFixUserTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -15,7 +17,7 @@ use OCA\User_LDAP\User_Proxy;
* @package OCA\User_LDAP\Tests\Migration
* @group DB
*/
-class UUIDFixUserTest extends AbstractUUIDFixTest {
+class UUIDFixUserTest extends AbstractUUIDFixTestCase {
protected function setUp(): void {
$this->isUser = true;
parent::setUp();
diff --git a/apps/user_ldap/tests/Service/BirthdateParserServiceTest.php b/apps/user_ldap/tests/Service/BirthdateParserServiceTest.php
index 79450d6913e..85d6a6ba5f7 100644
--- a/apps/user_ldap/tests/Service/BirthdateParserServiceTest.php
+++ b/apps/user_ldap/tests/Service/BirthdateParserServiceTest.php
@@ -1,11 +1,12 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\user_ldap\tests\Service;
+namespace OCA\User_LDAP\Tests\Service;
use DateTimeImmutable;
use OCA\User_LDAP\Service\BirthdateParserService;
@@ -20,7 +21,7 @@ class BirthdateParserServiceTest extends TestCase {
$this->service = new BirthdateParserService();
}
- public function parseBirthdateDataProvider(): array {
+ public static function parseBirthdateDataProvider(): array {
return [
['2024-01-01', new DateTimeImmutable('2024-01-01'), false],
['20240101', new DateTimeImmutable('2024-01-01'), false],
diff --git a/apps/user_ldap/tests/Service/UpdateGroupsServiceTest.php b/apps/user_ldap/tests/Service/UpdateGroupsServiceTest.php
index 84aefb484bb..601aee86602 100644
--- a/apps/user_ldap/tests/Service/UpdateGroupsServiceTest.php
+++ b/apps/user_ldap/tests/Service/UpdateGroupsServiceTest.php
@@ -6,17 +6,15 @@ declare(strict_types=1);
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\user_ldap\tests\Service;
+namespace OCA\User_LDAP\Tests\Service;
use OCA\User_LDAP\Db\GroupMembership;
use OCA\User_LDAP\Db\GroupMembershipMapper;
use OCA\User_LDAP\Group_Proxy;
use OCA\User_LDAP\Service\UpdateGroupsService;
-use OCP\AppFramework\Utility\ITimeFactory;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Group\Events\UserAddedEvent;
use OCP\Group\Events\UserRemovedEvent;
-use OCP\IConfig;
use OCP\IGroup;
use OCP\IGroupManager;
use OCP\IUser;
@@ -26,23 +24,12 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class UpdateGroupsServiceTest extends TestCase {
- /** @var Group_Proxy|MockObject */
- protected $groupBackend;
- /** @var IEventDispatcher|MockObject */
- protected $dispatcher;
- /** @var IGroupManager|MockObject */
- protected $groupManager;
- /** @var IUserManager|MockObject */
- protected $userManager;
- /** @var LoggerInterface|MockObject */
- protected $logger;
- /** @var GroupMembershipMapper|MockObject */
- protected $groupMembershipMapper;
- /** @var IConfig|MockObject */
- protected $config;
- /** @var ITimeFactory|MockObject */
- protected $timeFactory;
-
+ protected Group_Proxy&MockObject $groupBackend;
+ protected IEventDispatcher&MockObject $dispatcher;
+ protected IGroupManager&MockObject $groupManager;
+ protected IUserManager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected GroupMembershipMapper&MockObject $groupMembershipMapper;
protected UpdateGroupsService $updateGroupsService;
public function setUp(): void {
@@ -52,8 +39,6 @@ class UpdateGroupsServiceTest extends TestCase {
$this->userManager = $this->createMock(IUserManager::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->groupMembershipMapper = $this->createMock(GroupMembershipMapper::class);
- $this->config = $this->createMock(IConfig::class);
- $this->timeFactory = $this->createMock(ITimeFactory::class);
$this->updateGroupsService = new UpdateGroupsService(
$this->groupBackend,
@@ -62,8 +47,6 @@ class UpdateGroupsServiceTest extends TestCase {
$this->userManager,
$this->logger,
$this->groupMembershipMapper,
- $this->config,
- $this->timeFactory
);
}
diff --git a/apps/user_ldap/tests/Settings/AdminTest.php b/apps/user_ldap/tests/Settings/AdminTest.php
index 05b9697e4c8..b17e96c1a68 100644
--- a/apps/user_ldap/tests/Settings/AdminTest.php
+++ b/apps/user_ldap/tests/Settings/AdminTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -20,13 +22,12 @@ use Test\TestCase;
*/
class AdminTest extends TestCase {
private IL10N&MockObject $l10n;
-
private ITemplateManager $templateManager;
private Admin $admin;
protected function setUp(): void {
parent::setUp();
- $this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->templateManager = Server::get(ITemplateManager::class);
$this->admin = new Admin(
@@ -35,9 +36,6 @@ class AdminTest extends TestCase {
);
}
- /**
- * @UseDB
- */
public function testGetForm(): void {
$prefixes = ['s01'];
$hosts = ['s01' => ''];
diff --git a/apps/user_ldap/tests/Settings/SectionTest.php b/apps/user_ldap/tests/Settings/SectionTest.php
index 722581713d1..3f9ae1e56d4 100644
--- a/apps/user_ldap/tests/Settings/SectionTest.php
+++ b/apps/user_ldap/tests/Settings/SectionTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -8,15 +10,13 @@ namespace OCA\User_LDAP\Tests\Settings;
use OCA\User_LDAP\Settings\Section;
use OCP\IL10N;
use OCP\IURLGenerator;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SectionTest extends TestCase {
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $url;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l;
- /** @var Section */
- private $section;
+ private IURLGenerator&MockObject $url;
+ private IL10N&MockObject $l;
+ private Section $section;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/user_ldap/tests/User/DeletedUsersIndexTest.php b/apps/user_ldap/tests/User/DeletedUsersIndexTest.php
index 64e443a064f..b245e52fe6e 100644
--- a/apps/user_ldap/tests/User/DeletedUsersIndexTest.php
+++ b/apps/user_ldap/tests/User/DeletedUsersIndexTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -11,6 +13,7 @@ use OCP\IConfig;
use OCP\IDBConnection;
use OCP\Server;
use OCP\Share\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
/**
* Class DeletedUsersIndexTest
@@ -20,19 +23,11 @@ use OCP\Share\IManager;
* @package OCA\User_LDAP\Tests\User
*/
class DeletedUsersIndexTest extends \Test\TestCase {
- /** @var DeletedUsersIndex */
- protected $dui;
-
- /** @var IConfig */
- protected $config;
-
- /** @var IDBConnection */
- protected $db;
-
- /** @var UserMapping|\PHPUnit\Framework\MockObject\MockObject */
- protected $mapping;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $shareManager;
+ protected DeletedUsersIndex $dui;
+ protected IConfig $config;
+ protected IDBConnection $db;
+ protected UserMapping&MockObject $mapping;
+ protected IManager&MockObject $shareManager;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/user_ldap/tests/User/ManagerTest.php b/apps/user_ldap/tests/User/ManagerTest.php
index 4f504ff5f7a..3f8b3aa174f 100644
--- a/apps/user_ldap/tests/User/ManagerTest.php
+++ b/apps/user_ldap/tests/User/ManagerTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -19,6 +20,7 @@ use OCP\Image;
use OCP\IUserManager;
use OCP\Notification\IManager as INotificationManager;
use OCP\Share\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
/**
@@ -29,40 +31,18 @@ use Psr\Log\LoggerInterface;
* @package OCA\User_LDAP\Tests\User
*/
class ManagerTest extends \Test\TestCase {
- /** @var Access|\PHPUnit\Framework\MockObject\MockObject */
- protected $access;
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
-
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
-
- /** @var IAvatarManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $avatarManager;
-
- /** @var Image|\PHPUnit\Framework\MockObject\MockObject */
- protected $image;
-
- /** @var IDBConnection|\PHPUnit\Framework\MockObject\MockObject */
- protected $dbc;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $ncUserManager;
-
- /** @var INotificationManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $notificationManager;
-
- /** @var ILDAPWrapper|\PHPUnit\Framework\MockObject\MockObject */
- protected $ldapWrapper;
-
- /** @var Connection */
- protected $connection;
-
- /** @var Manager */
- protected $manager;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $shareManager;
+ protected Access&MockObject $access;
+ protected IConfig&MockObject $config;
+ protected LoggerInterface&MockObject $logger;
+ protected IAvatarManager&MockObject $avatarManager;
+ protected Image&MockObject $image;
+ protected IDBConnection&MockObject $dbc;
+ protected IUserManager&MockObject $ncUserManager;
+ protected INotificationManager&MockObject $notificationManager;
+ protected ILDAPWrapper&MockObject $ldapWrapper;
+ protected Connection $connection;
+ protected IManager&MockObject $shareManager;
+ protected Manager $manager;
protected function setUp(): void {
parent::setUp();
@@ -97,7 +77,7 @@ class ManagerTest extends \Test\TestCase {
$this->manager->setLdapAccess($this->access);
}
- public function dnProvider() {
+ public static function dnProvider(): array {
return [
['cn=foo,dc=foobar,dc=bar'],
['uid=foo,o=foobar,c=bar'],
@@ -197,7 +177,7 @@ class ManagerTest extends \Test\TestCase {
$this->assertNull($user);
}
- public function attributeRequestProvider() {
+ public static function attributeRequestProvider(): array {
return [
[false],
[true],
@@ -217,10 +197,10 @@ class ManagerTest extends \Test\TestCase {
$attributes = $this->manager->getAttributes($minimal);
- $this->assertTrue(in_array('dn', $attributes));
- $this->assertTrue(in_array(strtolower($this->access->getConnection()->ldapEmailAttribute), $attributes));
- $this->assertTrue(!in_array($this->access->getConnection()->ldapEmailAttribute, $attributes)); #cases check
- $this->assertFalse(in_array('', $attributes));
+ $this->assertContains('dn', $attributes);
+ $this->assertContains(strtolower($this->access->getConnection()->ldapEmailAttribute), $attributes);
+ $this->assertNotContains($this->access->getConnection()->ldapEmailAttribute, $attributes); #cases check
+ $this->assertNotContains('', $attributes);
$this->assertSame(!$minimal, in_array('jpegphoto', $attributes));
$this->assertSame(!$minimal, in_array('thumbnailphoto', $attributes));
$valueCounts = array_count_values($attributes);
diff --git a/apps/user_ldap/tests/User/OfflineUserTest.php b/apps/user_ldap/tests/User/OfflineUserTest.php
index e53bfca7f47..5ef89303111 100644
--- a/apps/user_ldap/tests/User/OfflineUserTest.php
+++ b/apps/user_ldap/tests/User/OfflineUserTest.php
@@ -13,20 +13,15 @@ use OCA\User_LDAP\User\OfflineUser;
use OCP\IConfig;
use OCP\Share\IManager;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class OfflineUserTest extends TestCase {
-
- /** @var OfflineUser */
- protected $offlineUser;
- /** @var UserMapping|\PHPUnit\Framework\MockObject\MockObject */
- protected $mapping;
- /** @var string */
- protected $uid;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $shareManager;
+ protected UserMapping&MockObject $mapping;
+ protected string $uid;
+ protected IConfig&MockObject $config;
+ protected IManager&MockObject $shareManager;
+ protected OfflineUser $offlineUser;
public function setUp(): void {
$this->uid = 'deborah';
@@ -42,7 +37,7 @@ class OfflineUserTest extends TestCase {
);
}
- public function shareOwnerProvider(): array {
+ public static function shareOwnerProvider(): array {
return [
[[], false],
[[IShare::TYPE_USER], true],
diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php
index badbca7f476..d9075af1569 100644
--- a/apps/user_ldap/tests/User/UserTest.php
+++ b/apps/user_ldap/tests/User/UserTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -9,6 +10,7 @@ namespace OCA\User_LDAP\Tests\User;
use OCA\User_LDAP\Access;
use OCA\User_LDAP\Connection;
+use OCA\User_LDAP\ILDAPWrapper;
use OCA\User_LDAP\User\User;
use OCP\IAvatar;
use OCP\IAvatarManager;
@@ -19,6 +21,7 @@ use OCP\IUserManager;
use OCP\Notification\IManager as INotificationManager;
use OCP\Notification\INotification;
use OCP\Util;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
/**
@@ -29,33 +32,24 @@ use Psr\Log\LoggerInterface;
* @package OCA\User_LDAP\Tests\User
*/
class UserTest extends \Test\TestCase {
- /** @var Access|\PHPUnit\Framework\MockObject\MockObject */
- protected $access;
- /** @var Connection|\PHPUnit\Framework\MockObject\MockObject */
- protected $connection;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
- /** @var INotificationManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $notificationManager;
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $userManager;
- /** @var Image|\PHPUnit\Framework\MockObject\MockObject */
- protected $image;
- /** @var IAvatarManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $avatarManager;
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- protected $logger;
- /** @var string */
- protected $uid = 'alice';
- /** @var string */
- protected $dn = 'uid=alice,dc=foo,dc=bar';
- /** @var User */
- protected $user;
+ protected Access&MockObject $access;
+ protected Connection&MockObject $connection;
+ protected IConfig&MockObject $config;
+ protected INotificationManager&MockObject $notificationManager;
+ protected IUserManager&MockObject $userManager;
+ protected Image&MockObject $image;
+ protected IAvatarManager&MockObject $avatarManager;
+ protected LoggerInterface&MockObject $logger;
+ protected string $uid = 'alice';
+ protected string $dn = 'uid=alice,dc=foo,dc=bar';
+ protected User $user;
protected function setUp(): void {
parent::setUp();
- $this->connection = $this->createMock(Connection::class);
+ $this->connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
$this->access = $this->createMock(Access::class);
$this->access->connection = $this->connection;
@@ -100,9 +94,7 @@ class UserTest extends \Test\TestCase {
$this->equalTo('email'))
->willReturn(['alice@foo.bar']);
- $coreUser = $this->getMockBuilder(IUser::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $coreUser = $this->createMock(IUser::class);
$coreUser->expects($this->once())
->method('setSystemEMailAddress')
->with('alice@foo.bar');
@@ -506,7 +498,7 @@ class UserTest extends \Test\TestCase {
$avatar = $this->createMock(IAvatar::class);
$avatar->expects($this->once())
->method('set')
- ->with($this->isInstanceOf($this->image));
+ ->with($this->image);
$this->avatarManager->expects($this->once())
->method('getAvatar')
@@ -617,7 +609,7 @@ class UserTest extends \Test\TestCase {
$avatar = $this->createMock(IAvatar::class);
$avatar->expects($this->once())
->method('set')
- ->with($this->isInstanceOf($this->image));
+ ->with($this->image);
$this->avatarManager->expects($this->once())
->method('getAvatar')
@@ -723,7 +715,7 @@ class UserTest extends \Test\TestCase {
$avatar = $this->createMock(IAvatar::class);
$avatar->expects($this->once())
->method('set')
- ->with($this->isInstanceOf($this->image))
+ ->with($this->image)
->willThrowException(new \Exception());
$this->avatarManager->expects($this->once())
@@ -780,7 +772,7 @@ class UserTest extends \Test\TestCase {
$this->user->updateAvatar();
}
- public function extStorageHomeDataProvider() {
+ public static function extStorageHomeDataProvider(): array {
return [
[ 'myFolder', null ],
[ '', null, false ],
@@ -865,7 +857,7 @@ class UserTest extends \Test\TestCase {
$this->assertFalse($this->user->getAvatarImage());
}
- public function imageDataProvider() {
+ public static function imageDataProvider(): array {
return [
[ false, false ],
[ 'corruptData', false ],
@@ -884,7 +876,7 @@ class UserTest extends \Test\TestCase {
'updateExtStorageHome',
];
- /** @var User|\PHPUnit\Framework\MockObject\MockObject $userMock */
+ /** @var User&MockObject $userMock */
$userMock = $this->getMockBuilder(User::class)
->setConstructorArgs([
$this->uid,
@@ -897,7 +889,7 @@ class UserTest extends \Test\TestCase {
$this->userManager,
$this->notificationManager
])
- ->setMethods($requiredMethods)
+ ->onlyMethods($requiredMethods)
->getMock();
$this->connection->setConfiguration([
@@ -937,7 +929,7 @@ class UserTest extends \Test\TestCase {
\OC_Hook::emit('OC_User', 'post_login', ['uid' => $this->uid]);
}
- public function emptyHomeFolderAttributeValueProvider() {
+ public static function emptyHomeFolderAttributeValueProvider(): array {
return [
'empty' => [''],
'prefixOnly' => ['attr:'],
@@ -947,7 +939,7 @@ class UserTest extends \Test\TestCase {
/**
* @dataProvider emptyHomeFolderAttributeValueProvider
*/
- public function testGetHomePathNotConfigured($attributeValue): void {
+ public function testGetHomePathNotConfigured(string $attributeValue): void {
$this->connection->expects($this->any())
->method('__get')
->with($this->equalTo('homeFolderNamingRule'))
@@ -1011,7 +1003,7 @@ class UserTest extends \Test\TestCase {
$this->user->getHomePath();
}
- public function displayNameProvider() {
+ public static function displayNameProvider(): array {
return [
['Roland Deschain', '', 'Roland Deschain', false],
['Roland Deschain', '', 'Roland Deschain', true],
@@ -1023,7 +1015,7 @@ class UserTest extends \Test\TestCase {
/**
* @dataProvider displayNameProvider
*/
- public function testComposeAndStoreDisplayName($part1, $part2, $expected, $expectTriggerChange): void {
+ public function testComposeAndStoreDisplayName(string $part1, string $part2, string $expected, bool $expectTriggerChange): void {
$this->config->expects($this->once())
->method('setUserValue');
$oldName = $expectTriggerChange ? 'xxGunslingerxx' : null;
diff --git a/apps/user_ldap/tests/UserLDAPPluginTest.php b/apps/user_ldap/tests/UserLDAPPluginTest.php
index 5f11f817771..8a065374e61 100644
--- a/apps/user_ldap/tests/UserLDAPPluginTest.php
+++ b/apps/user_ldap/tests/UserLDAPPluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,27 +11,23 @@ use OC\User\Backend;
use OCA\User_LDAP\UserPluginManager;
class UserLDAPPluginTest extends \Test\TestCase {
-
- /**
- * @return UserPluginManager
- */
- private function getUserPluginManager() {
+ private function getUserPluginManager(): UserPluginManager {
return new UserPluginManager();
}
public function testImplementsActions(): void {
$pluginManager = $this->getUserPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions'])
+ $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions'])
->getMock();
$plugin->expects($this->any())
->method('respondToActions')
->willReturn(Backend::CREATE_USER);
- $plugin2 = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions'])
+ $plugin2 = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions'])
->getMock();
$plugin2->expects($this->any())
@@ -47,8 +45,8 @@ class UserLDAPPluginTest extends \Test\TestCase {
public function testCreateUser(): void {
$pluginManager = $this->getUserPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions', 'createUser'])
+ $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'createUser'])
->getMock();
$plugin->expects($this->any())
@@ -66,7 +64,7 @@ class UserLDAPPluginTest extends \Test\TestCase {
$pluginManager->createUser('user', 'password');
}
-
+
public function testCreateUserNotRegistered(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('No plugin implements createUser in this LDAP Backend.');
@@ -78,8 +76,8 @@ class UserLDAPPluginTest extends \Test\TestCase {
public function testSetPassword(): void {
$pluginManager = $this->getUserPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions', 'setPassword'])
+ $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'setPassword'])
->getMock();
$plugin->expects($this->any())
@@ -97,7 +95,7 @@ class UserLDAPPluginTest extends \Test\TestCase {
$pluginManager->setPassword('user', 'password');
}
-
+
public function testSetPasswordNotRegistered(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('No plugin implements setPassword in this LDAP Backend.');
@@ -109,8 +107,8 @@ class UserLDAPPluginTest extends \Test\TestCase {
public function testGetHome(): void {
$pluginManager = $this->getUserPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions', 'getHome'])
+ $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'getHome'])
->getMock();
$plugin->expects($this->any())
@@ -127,7 +125,7 @@ class UserLDAPPluginTest extends \Test\TestCase {
$pluginManager->getHome('uid');
}
-
+
public function testGetHomeNotRegistered(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('No plugin implements getHome in this LDAP Backend.');
@@ -139,8 +137,8 @@ class UserLDAPPluginTest extends \Test\TestCase {
public function testGetDisplayName(): void {
$pluginManager = $this->getUserPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions', 'getDisplayName'])
+ $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'getDisplayName'])
->getMock();
$plugin->expects($this->any())
@@ -157,7 +155,7 @@ class UserLDAPPluginTest extends \Test\TestCase {
$pluginManager->getDisplayName('uid');
}
-
+
public function testGetDisplayNameNotRegistered(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('No plugin implements getDisplayName in this LDAP Backend.');
@@ -169,8 +167,8 @@ class UserLDAPPluginTest extends \Test\TestCase {
public function testSetDisplayName(): void {
$pluginManager = $this->getUserPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions', 'setDisplayName'])
+ $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'setDisplayName'])
->getMock();
$plugin->expects($this->any())
@@ -188,7 +186,7 @@ class UserLDAPPluginTest extends \Test\TestCase {
$pluginManager->setDisplayName('user', 'password');
}
-
+
public function testSetDisplayNameNotRegistered(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('No plugin implements setDisplayName in this LDAP Backend.');
@@ -200,8 +198,8 @@ class UserLDAPPluginTest extends \Test\TestCase {
public function testCanChangeAvatar(): void {
$pluginManager = $this->getUserPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions', 'canChangeAvatar'])
+ $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'canChangeAvatar'])
->getMock();
$plugin->expects($this->any())
@@ -218,7 +216,7 @@ class UserLDAPPluginTest extends \Test\TestCase {
$pluginManager->canChangeAvatar('uid');
}
-
+
public function testCanChangeAvatarNotRegistered(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('No plugin implements canChangeAvatar in this LDAP Backend.');
@@ -230,8 +228,8 @@ class UserLDAPPluginTest extends \Test\TestCase {
public function testCountUsers(): void {
$pluginManager = $this->getUserPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions', 'countUsers'])
+ $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'countUsers'])
->getMock();
$plugin->expects($this->any())
@@ -245,7 +243,7 @@ class UserLDAPPluginTest extends \Test\TestCase {
$pluginManager->countUsers();
}
-
+
public function testCountUsersNotRegistered(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('No plugin implements countUsers in this LDAP Backend.');
@@ -257,8 +255,8 @@ class UserLDAPPluginTest extends \Test\TestCase {
public function testDeleteUser(): void {
$pluginManager = $this->getUserPluginManager();
- $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy')
- ->setMethods(['respondToActions', 'canDeleteUser','deleteUser'])
+ $plugin = $this->getMockBuilder(LDAPUserPluginDummy::class)
+ ->onlyMethods(['respondToActions', 'canDeleteUser','deleteUser'])
->getMock();
$plugin->expects($this->any())
@@ -281,7 +279,7 @@ class UserLDAPPluginTest extends \Test\TestCase {
$pluginManager->deleteUser('uid');
}
-
+
public function testDeleteUserNotRegistered(): void {
$this->expectException(\Exception::class);
$this->expectExceptionMessage('No plugin implements deleteUser in this LDAP Backend.');
diff --git a/apps/user_ldap/tests/User_LDAPTest.php b/apps/user_ldap/tests/User_LDAPTest.php
index ede7123bd36..5be01d5e414 100644
--- a/apps/user_ldap/tests/User_LDAPTest.php
+++ b/apps/user_ldap/tests/User_LDAPTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -10,6 +11,7 @@ namespace OCA\User_LDAP\Tests;
use OC\User\Backend;
use OCA\User_LDAP\Access;
use OCA\User_LDAP\Connection;
+use OCA\User_LDAP\ILDAPWrapper;
use OCA\User_LDAP\Mapping\AbstractMapping;
use OCA\User_LDAP\Mapping\UserMapping;
use OCA\User_LDAP\User\DeletedUsersIndex;
@@ -38,24 +40,15 @@ use Test\TestCase;
* @package OCA\User_LDAP\Tests
*/
class User_LDAPTest extends TestCase {
- /** @var User_LDAP */
- protected $backend;
- /** @var Access|MockObject */
- protected $access;
- /** @var OfflineUser|MockObject */
- protected $offlineUser;
- /** @var INotificationManager|MockObject */
- protected $notificationManager;
- /** @var UserPluginManager|MockObject */
- protected $pluginManager;
- /** @var Connection|MockObject */
- protected $connection;
- /** @var Manager|MockObject */
- protected $userManager;
- /** @var LoggerInterface|MockObject */
- protected $logger;
- /** @var DeletedUsersIndex|MockObject */
- protected $deletedUsersIndex;
+ protected Access&MockObject $access;
+ protected OfflineUser&MockObject $offlineUser;
+ protected INotificationManager&MockObject $notificationManager;
+ protected UserPluginManager&MockObject $pluginManager;
+ protected Connection&MockObject $connection;
+ protected Manager&MockObject $userManager;
+ protected LoggerInterface&MockObject $logger;
+ protected DeletedUsersIndex&MockObject $deletedUsersIndex;
+ protected User_LDAP $backend;
protected function setUp(): void {
parent::setUp();
@@ -63,7 +56,9 @@ class User_LDAPTest extends TestCase {
Server::get(IUserManager::class)->clearBackends();
Server::get(IGroupManager::class)->clearBackends();
- $this->connection = $this->createMock(Connection::class);
+ $this->connection = $this->getMockBuilder(Connection::class)
+ ->setConstructorArgs([$this->createMock(ILDAPWrapper::class)])
+ ->getMock();
$this->userManager = $this->createMock(Manager::class);
$this->access = $this->createMock(Access::class);
@@ -86,7 +81,7 @@ class User_LDAPTest extends TestCase {
);
}
- private function prepareMockForUserExists() {
+ private function prepareMockForUserExists(): void {
$this->access->expects($this->any())
->method('username2dn')
->willReturnCallback(function ($uid) {
@@ -114,10 +109,8 @@ class User_LDAPTest extends TestCase {
/**
* Prepares the Access mock for checkPassword tests
- * @param bool $noDisplayName
- * @return void
*/
- private function prepareAccessForCheckPassword($noDisplayName = false) {
+ private function prepareAccessForCheckPassword(bool $noDisplayName = false): void {
$this->connection->expects($this->any())
->method('__get')
->willReturnCallback(function ($name) {
@@ -347,7 +340,7 @@ class User_LDAPTest extends TestCase {
->method('invalidate')
->with('uid');
- $this->assertEquals(true, $this->backend->deleteUser('uid'));
+ $this->assertTrue($this->backend->deleteUser('uid'));
}
/**
@@ -404,7 +397,7 @@ class User_LDAPTest extends TestCase {
$backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex);
$result = $backend->getUsers();
- $this->assertEquals(3, count($result));
+ $this->assertCount(3, $result);
}
public function testGetUsersLimitOffset(): void {
@@ -412,7 +405,7 @@ class User_LDAPTest extends TestCase {
$backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex);
$result = $backend->getUsers('', 1, 2);
- $this->assertEquals(1, count($result));
+ $this->assertCount(1, $result);
}
public function testGetUsersLimitOffset2(): void {
@@ -420,7 +413,7 @@ class User_LDAPTest extends TestCase {
$backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex);
$result = $backend->getUsers('', 2, 1);
- $this->assertEquals(2, count($result));
+ $this->assertCount(2, $result);
}
public function testGetUsersSearchWithResult(): void {
@@ -428,7 +421,7 @@ class User_LDAPTest extends TestCase {
$backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex);
$result = $backend->getUsers('yo');
- $this->assertEquals(2, count($result));
+ $this->assertCount(2, $result);
}
public function testGetUsersSearchEmptyResult(): void {
@@ -436,7 +429,7 @@ class User_LDAPTest extends TestCase {
$backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex);
$result = $backend->getUsers('nix');
- $this->assertEquals(0, count($result));
+ $this->assertCount(0, $result);
}
private function getUsers($search = '', $limit = null, $offset = null) {
@@ -453,7 +446,7 @@ class User_LDAPTest extends TestCase {
Server::get(IUserManager::class)->registerBackend($backend);
$result = $this->getUsers();
- $this->assertEquals(3, count($result));
+ $this->assertCount(3, $result);
}
public function testGetUsersViaAPILimitOffset(): void {
@@ -462,7 +455,7 @@ class User_LDAPTest extends TestCase {
Server::get(IUserManager::class)->registerBackend($backend);
$result = $this->getUsers('', 1, 2);
- $this->assertEquals(1, count($result));
+ $this->assertCount(1, $result);
}
public function testGetUsersViaAPILimitOffset2(): void {
@@ -471,7 +464,7 @@ class User_LDAPTest extends TestCase {
Server::get(IUserManager::class)->registerBackend($backend);
$result = $this->getUsers('', 2, 1);
- $this->assertEquals(2, count($result));
+ $this->assertCount(2, $result);
}
public function testGetUsersViaAPISearchWithResult(): void {
@@ -480,7 +473,7 @@ class User_LDAPTest extends TestCase {
Server::get(IUserManager::class)->registerBackend($backend);
$result = $this->getUsers('yo');
- $this->assertEquals(2, count($result));
+ $this->assertCount(2, $result);
}
public function testGetUsersViaAPISearchEmptyResult(): void {
@@ -489,15 +482,13 @@ class User_LDAPTest extends TestCase {
Server::get(IUserManager::class)->registerBackend($backend);
$result = $this->getUsers('nix');
- $this->assertEquals(0, count($result));
+ $this->assertCount(0, $result);
}
public function testUserExists(): void {
$backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex);
$this->prepareMockForUserExists();
- $user = $this->createMock(User::class);
-
$this->userManager->expects($this->never())
->method('get');
$this->userManager->expects($this->once())
@@ -1182,8 +1173,6 @@ class User_LDAPTest extends TestCase {
/**
* Prepares the Access mock for setPassword tests
- *
- * @param bool $enablePasswordChange
*/
private function prepareAccessForSetPassword($enablePasswordChange = true) {
$this->connection->expects($this->any())
@@ -1328,7 +1317,7 @@ class User_LDAPTest extends TestCase {
$this->assertEquals($this->backend->setPassword('uid', 'password'), 'result');
}
- public function avatarDataProvider() {
+ public static function avatarDataProvider(): array {
return [
[ 'validImageData', false ],
[ 'corruptImageData', true ],
@@ -1336,8 +1325,10 @@ class User_LDAPTest extends TestCase {
];
}
- /** @dataProvider avatarDataProvider */
- public function testCanChangeAvatar($imageData, $expected): void {
+ /**
+ * @dataProvider avatarDataProvider
+ */
+ public function testCanChangeAvatar(string|bool $imageData, bool $expected): void {
$isValidImage = str_starts_with((string)$imageData, 'valid');
$user = $this->createMock(User::class);
@@ -1451,9 +1442,9 @@ class User_LDAPTest extends TestCase {
$this->assertFalse($this->backend->createUser('uid', 'password'));
}
- public function actionProvider() {
+ public static function actionProvider(): array {
return [
- [ 'ldapUserAvatarRule', 'default', Backend::PROVIDE_AVATAR, true] ,
+ [ 'ldapUserAvatarRule', 'default', Backend::PROVIDE_AVATAR, true],
[ 'ldapUserAvatarRule', 'data:selfiePhoto', Backend::PROVIDE_AVATAR, true],
[ 'ldapUserAvatarRule', 'none', Backend::PROVIDE_AVATAR, false],
[ 'turnOnPasswordChange', 0, Backend::SET_PASSWORD, false],
@@ -1464,7 +1455,7 @@ class User_LDAPTest extends TestCase {
/**
* @dataProvider actionProvider
*/
- public function testImplementsAction($configurable, $value, $actionCode, $expected): void {
+ public function testImplementsAction(string $configurable, string|int $value, int $actionCode, bool $expected): void {
$this->pluginManager->expects($this->once())
->method('getImplementedActions')
->willReturn(0);
diff --git a/apps/user_ldap/tests/User_ProxyTest.php b/apps/user_ldap/tests/User_ProxyTest.php
index 4544276a714..38f94af33a7 100644
--- a/apps/user_ldap/tests/User_ProxyTest.php
+++ b/apps/user_ldap/tests/User_ProxyTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -17,22 +19,14 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class User_ProxyTest extends TestCase {
- /** @var Helper|MockObject */
- protected $helper;
- /** @var ILDAPWrapper|MockObject */
- private $ldapWrapper;
- /** @var AccessFactory|MockObject */
- private $accessFactory;
- /** @var INotificationManager|MockObject */
- private $notificationManager;
- /** @var User_Proxy|MockObject */
- private $proxy;
- /** @var UserPluginManager|MockObject */
- private $userPluginManager;
- /** @var LoggerInterface|MockObject */
- protected $logger;
- /** @var DeletedUsersIndex|MockObject */
- protected $deletedUsersIndex;
+ protected Helper&MockObject $helper;
+ private ILDAPWrapper&MockObject $ldapWrapper;
+ private AccessFactory&MockObject $accessFactory;
+ private INotificationManager&MockObject $notificationManager;
+ private User_Proxy&MockObject $proxy;
+ private UserPluginManager&MockObject $userPluginManager;
+ protected LoggerInterface&MockObject $logger;
+ protected DeletedUsersIndex&MockObject $deletedUsersIndex;
protected function setUp(): void {
parent::setUp();
@@ -54,7 +48,7 @@ class User_ProxyTest extends TestCase {
$this->logger,
$this->deletedUsersIndex,
])
- ->setMethods(['handleRequest'])
+ ->onlyMethods(['handleRequest'])
->getMock();
}
diff --git a/apps/user_ldap/tests/WizardTest.php b/apps/user_ldap/tests/WizardTest.php
index 31fd28e2fa1..3ae9a409e88 100644
--- a/apps/user_ldap/tests/WizardTest.php
+++ b/apps/user_ldap/tests/WizardTest.php
@@ -1,5 +1,6 @@
<?php
+declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
@@ -35,32 +36,28 @@ class WizardTest extends TestCase {
}
}
- private function getWizardAndMocks() {
+ private function getWizardAndMocks(): array {
static $confMethods;
- static $connMethods;
- static $accMethods;
if (is_null($confMethods)) {
$confMethods = get_class_methods('\OCA\User_LDAP\Configuration');
- $connMethods = get_class_methods('\OCA\User_LDAP\Connection');
- $accMethods = get_class_methods('\OCA\User_LDAP\Access');
}
- /** @var ILDAPWrapper|\PHPUnit\Framework\MockObject\MockObject $lw */
+ /** @var ILDAPWrapper&MockObject $lw */
$lw = $this->createMock(ILDAPWrapper::class);
- /** @var Configuration|\PHPUnit\Framework\MockObject\MockObject $conf */
+ /** @var Configuration&MockObject $conf */
$conf = $this->getMockBuilder(Configuration::class)
- ->setMethods($confMethods)
+ ->onlyMethods($confMethods)
->setConstructorArgs(['', true])
->getMock();
- /** @var Access|\PHPUnit\Framework\MockObject\MockObject $access */
+ /** @var Access&MockObject $access */
$access = $this->createMock(Access::class);
return [new Wizard($conf, $lw, $access), $conf, $lw, $access];
}
- private function prepareLdapWrapperForConnections(MockObject &$ldap) {
+ private function prepareLdapWrapperForConnections(MockObject $ldap) {
$ldap->expects($this->once())
->method('connect')
//dummy value
@@ -346,7 +343,7 @@ class WizardTest extends TestCase {
});
$result = $wizard->detectEmailAttribute();
- $this->assertSame(false, $result->hasChanges());
+ $this->assertFalse($result->hasChanges());
}
public function testCumulativeSearchOnAttributeSkipReadDN(): void {
@@ -423,7 +420,7 @@ class WizardTest extends TestCase {
// The following expectations are the real test
$filters = ['f1', 'f2', '*'];
$resultArray = $wizard->cumulativeSearchOnAttribute($filters, 'cn', 0);
- $this->assertSame(6, count($resultArray));
+ $this->assertCount(6, $resultArray);
unset($mark);
}
}
diff --git a/apps/user_status/l10n/bg.js b/apps/user_status/l10n/bg.js
index c100350511e..c0cca7e6c43 100644
--- a/apps/user_status/l10n/bg.js
+++ b/apps/user_status/l10n/bg.js
@@ -4,7 +4,7 @@ OC.L10N.register(
"Recent statuses" : "Последни състояния",
"No recent status changes" : "Няма скорошни промени в състоянието",
"In a meeting" : "В среща",
- "Commuting" : "Работно пътуване",
+ "Commuting" : "Пътувам до работа",
"Out sick" : "Болничен",
"Vacationing" : "Отпуск",
"Out of office" : "Извън офиса",
@@ -12,7 +12,7 @@ OC.L10N.register(
"In a call" : "В обаждане",
"User status" : "Потребителско състояние",
"Clear status after" : "Изчистване на състоянието след",
- "What is your status?" : "Какъв е вашият статус?",
+ "What is your status?" : "Какво е вашето състояние?",
"Previously set" : "Предишно зададени",
"Reset status" : "Възстановяване на състоянието",
"Reset status to \"{icon} {message}\"" : "Възстановяване на състоянието на „{icon} {message}“",
@@ -22,11 +22,13 @@ OC.L10N.register(
"There was an error clearing the status" : "Възникна грешка при изчистване на състоянието",
"There was an error reverting the status" : "Имаше грешка при връщане на състоянието",
"Set status" : "Задаване на състояние",
- "Online status" : "Състояние на линия",
+ "Online status" : "Състояние",
"Status message" : "Съобщение за състояние",
+ "Set absence period" : "Задай период на отсъствие",
+ "Set absence period and replacement" : "Задай период на отсъствие и заместник.",
"Your status was set automatically" : "Състоянието ви беше зададено автоматично",
- "Clear status message" : "Изчистване на съобщението за състояние",
- "Set status message" : "Задаване на съобщение за състояние",
+ "Clear status message" : "Изчисти състоянието",
+ "Set status message" : "Задай състояние",
"Don't clear" : "Да не се изчиства",
"Today" : "Днес",
"This week" : "Тази седмица",
@@ -38,7 +40,7 @@ OC.L10N.register(
"There was an error saving the new status" : "Възникна грешка при запазване на новото състояние",
"30 minutes" : "30 минути",
"1 hour" : "1 час",
- "4 hours" : "4 часа",
+ "4 hours" : "4 чàса",
"Mute all notifications" : "Заглушаване на всички известия",
"Appear offline" : "Показване като офлайн"
},
diff --git a/apps/user_status/l10n/bg.json b/apps/user_status/l10n/bg.json
index 3d0cd96280c..0909badbed2 100644
--- a/apps/user_status/l10n/bg.json
+++ b/apps/user_status/l10n/bg.json
@@ -2,7 +2,7 @@
"Recent statuses" : "Последни състояния",
"No recent status changes" : "Няма скорошни промени в състоянието",
"In a meeting" : "В среща",
- "Commuting" : "Работно пътуване",
+ "Commuting" : "Пътувам до работа",
"Out sick" : "Болничен",
"Vacationing" : "Отпуск",
"Out of office" : "Извън офиса",
@@ -10,7 +10,7 @@
"In a call" : "В обаждане",
"User status" : "Потребителско състояние",
"Clear status after" : "Изчистване на състоянието след",
- "What is your status?" : "Какъв е вашият статус?",
+ "What is your status?" : "Какво е вашето състояние?",
"Previously set" : "Предишно зададени",
"Reset status" : "Възстановяване на състоянието",
"Reset status to \"{icon} {message}\"" : "Възстановяване на състоянието на „{icon} {message}“",
@@ -20,11 +20,13 @@
"There was an error clearing the status" : "Възникна грешка при изчистване на състоянието",
"There was an error reverting the status" : "Имаше грешка при връщане на състоянието",
"Set status" : "Задаване на състояние",
- "Online status" : "Състояние на линия",
+ "Online status" : "Състояние",
"Status message" : "Съобщение за състояние",
+ "Set absence period" : "Задай период на отсъствие",
+ "Set absence period and replacement" : "Задай период на отсъствие и заместник.",
"Your status was set automatically" : "Състоянието ви беше зададено автоматично",
- "Clear status message" : "Изчистване на съобщението за състояние",
- "Set status message" : "Задаване на съобщение за състояние",
+ "Clear status message" : "Изчисти състоянието",
+ "Set status message" : "Задай състояние",
"Don't clear" : "Да не се изчиства",
"Today" : "Днес",
"This week" : "Тази седмица",
@@ -36,7 +38,7 @@
"There was an error saving the new status" : "Възникна грешка при запазване на новото състояние",
"30 minutes" : "30 минути",
"1 hour" : "1 час",
- "4 hours" : "4 часа",
+ "4 hours" : "4 чàса",
"Mute all notifications" : "Заглушаване на всички известия",
"Appear offline" : "Показване като офлайн"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/user_status/l10n/es_AR.js b/apps/user_status/l10n/es_AR.js
deleted file mode 100644
index 4e9b8b095c7..00000000000
--- a/apps/user_status/l10n/es_AR.js
+++ /dev/null
@@ -1,22 +0,0 @@
-OC.L10N.register(
- "user_status",
- {
- "Set status" : "Establecer estado",
- "Online status" : "Estado en línea",
- "Status message" : "Mensaje de estado",
- "Clear status message" : "Limpiar mensaje de estado",
- "Set status message" : "Establecer mensaje de estado",
- "Away" : "Lejos",
- "Do not disturb" : "No molestar",
- "Don't clear" : "No vaciar",
- "Today" : "Hoy",
- "This week" : "Esta semana",
- "Online" : "En línea",
- "Invisible" : "Invisible",
- "Offline" : "Sin conexión",
- "30 minutes" : "30 minutos",
- "1 hour" : "1 hora",
- "4 hours" : "4 horas",
- "Clear status message after" : "Limpiar mensaje de estado después"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/user_status/l10n/es_AR.json b/apps/user_status/l10n/es_AR.json
deleted file mode 100644
index b510ed89617..00000000000
--- a/apps/user_status/l10n/es_AR.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{ "translations": {
- "Set status" : "Establecer estado",
- "Online status" : "Estado en línea",
- "Status message" : "Mensaje de estado",
- "Clear status message" : "Limpiar mensaje de estado",
- "Set status message" : "Establecer mensaje de estado",
- "Away" : "Lejos",
- "Do not disturb" : "No molestar",
- "Don't clear" : "No vaciar",
- "Today" : "Hoy",
- "This week" : "Esta semana",
- "Online" : "En línea",
- "Invisible" : "Invisible",
- "Offline" : "Sin conexión",
- "30 minutes" : "30 minutos",
- "1 hour" : "1 hora",
- "4 hours" : "4 horas",
- "Clear status message after" : "Limpiar mensaje de estado después"
-},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/user_status/l10n/hu.js b/apps/user_status/l10n/hu.js
index 2075d1dce52..c24669860aa 100644
--- a/apps/user_status/l10n/hu.js
+++ b/apps/user_status/l10n/hu.js
@@ -26,6 +26,8 @@ OC.L10N.register(
"Set status" : "Állapot beállítása",
"Online status" : "Elérhető állapot",
"Status message" : "Állapotüzenet",
+ "Set absence period" : "Távolléti időszak beállítása",
+ "Set absence period and replacement" : "Távolléti időszak és helyettes beállítása",
"Your status was set automatically" : "Az állapota automatikusan lett beállítva",
"Clear status message" : "Állapotüzenet törlése",
"Set status message" : "Állapotüzenet beállítása",
diff --git a/apps/user_status/l10n/hu.json b/apps/user_status/l10n/hu.json
index 313b66be2ed..dcbe3b70f3b 100644
--- a/apps/user_status/l10n/hu.json
+++ b/apps/user_status/l10n/hu.json
@@ -24,6 +24,8 @@
"Set status" : "Állapot beállítása",
"Online status" : "Elérhető állapot",
"Status message" : "Állapotüzenet",
+ "Set absence period" : "Távolléti időszak beállítása",
+ "Set absence period and replacement" : "Távolléti időszak és helyettes beállítása",
"Your status was set automatically" : "Az állapota automatikusan lett beállítva",
"Clear status message" : "Állapotüzenet törlése",
"Set status message" : "Állapotüzenet beállítása",
diff --git a/apps/user_status/l10n/lo.js b/apps/user_status/l10n/lo.js
deleted file mode 100644
index 1038b87d53e..00000000000
--- a/apps/user_status/l10n/lo.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "user_status",
- {
- "Set status" : "ຕັ້ງຄ່າສະຖານະພາບ",
- "Online status" : "ສະຖານະພາບອອນລາຍ",
- "Status message" : "ສະຖານະຂໍ້ຄວາມ",
- "Clear status message" : "ລ້າງສະຖານະພາບຂໍ້ຄວາມ",
- "Set status message" : "ຕັ້ງຄ່າສະຖານະພາບຂໍ້ຄວາມ",
- "Away" : "ອອກໄປ",
- "Do not disturb" : "ຫ້າມລົບກວນ",
- "Don't clear" : "ບໍ່ຈະແຈ້ງ",
- "Today" : "ມື້ນີ້",
- "This week" : "ທິດນີ້",
- "Online" : "ອອນລາຍ",
- "Invisible" : "ເບິ່ງບໍ່ເຫັນ",
- "Offline" : "ອັອບລາຍ",
- "30 minutes" : "30 ນາທີ",
- "1 hour" : "1 ຊົ່ວໂມງ",
- "4 hours" : "4 ຊົ່ວໂມງ",
- "Mute all notifications" : "ປິດການແຈ້ງເຕືອນທັງໝົດ",
- "Appear offline" : "ເປີດອັອບລາຍ",
- "Clear status message after" : "ລ້າງສະຖານະພາບຂໍ້ຄວາມພາຍຫຼັງ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/user_status/l10n/lo.json b/apps/user_status/l10n/lo.json
deleted file mode 100644
index afba4141134..00000000000
--- a/apps/user_status/l10n/lo.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Set status" : "ຕັ້ງຄ່າສະຖານະພາບ",
- "Online status" : "ສະຖານະພາບອອນລາຍ",
- "Status message" : "ສະຖານະຂໍ້ຄວາມ",
- "Clear status message" : "ລ້າງສະຖານະພາບຂໍ້ຄວາມ",
- "Set status message" : "ຕັ້ງຄ່າສະຖານະພາບຂໍ້ຄວາມ",
- "Away" : "ອອກໄປ",
- "Do not disturb" : "ຫ້າມລົບກວນ",
- "Don't clear" : "ບໍ່ຈະແຈ້ງ",
- "Today" : "ມື້ນີ້",
- "This week" : "ທິດນີ້",
- "Online" : "ອອນລາຍ",
- "Invisible" : "ເບິ່ງບໍ່ເຫັນ",
- "Offline" : "ອັອບລາຍ",
- "30 minutes" : "30 ນາທີ",
- "1 hour" : "1 ຊົ່ວໂມງ",
- "4 hours" : "4 ຊົ່ວໂມງ",
- "Mute all notifications" : "ປິດການແຈ້ງເຕືອນທັງໝົດ",
- "Appear offline" : "ເປີດອັອບລາຍ",
- "Clear status message after" : "ລ້າງສະຖານະພາບຂໍ້ຄວາມພາຍຫຼັງ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/user_status/l10n/nl.js b/apps/user_status/l10n/nl.js
index 1f9f157d3a1..99655a094fc 100644
--- a/apps/user_status/l10n/nl.js
+++ b/apps/user_status/l10n/nl.js
@@ -17,11 +17,17 @@ OC.L10N.register(
"Predefined statuses" : "Voorgedefinieerde statussen",
"Previously set" : "Eerder ingesteld",
"Reset status" : "Reset status",
+ "Reset status to \"{icon} {message}\"" : "Status terugzetten naar \"{icon} {message}\"",
+ "Reset status to \"{message}\"" : "Status terugzetten naar \"{message}\"",
+ "Reset status to \"{icon}\"" : "Status terugzetten naar \"{icon}\"",
"There was an error saving the status" : "Er is een fout opgetreden bij het bewaren van de status",
"There was an error clearing the status" : "Er is een fout opgetreden bij het leegmaken van de status",
+ "There was an error reverting the status" : "Er was een fout bij het terugdraaien van de status",
"Set status" : "Status instellen",
"Online status" : "Online status",
"Status message" : "Statusbericht",
+ "Set absence period" : "Afwezigheidsperiode instellen",
+ "Set absence period and replacement" : "Afwezigheidsperiode en vervanging instellen",
"Your status was set automatically" : "Uw status is automatisch ingesteld",
"Clear status message" : "Statusbericht wissen",
"Set status message" : "Statusbericht instellen",
diff --git a/apps/user_status/l10n/nl.json b/apps/user_status/l10n/nl.json
index 58cfe0c305e..f345b68c6ef 100644
--- a/apps/user_status/l10n/nl.json
+++ b/apps/user_status/l10n/nl.json
@@ -15,11 +15,17 @@
"Predefined statuses" : "Voorgedefinieerde statussen",
"Previously set" : "Eerder ingesteld",
"Reset status" : "Reset status",
+ "Reset status to \"{icon} {message}\"" : "Status terugzetten naar \"{icon} {message}\"",
+ "Reset status to \"{message}\"" : "Status terugzetten naar \"{message}\"",
+ "Reset status to \"{icon}\"" : "Status terugzetten naar \"{icon}\"",
"There was an error saving the status" : "Er is een fout opgetreden bij het bewaren van de status",
"There was an error clearing the status" : "Er is een fout opgetreden bij het leegmaken van de status",
+ "There was an error reverting the status" : "Er was een fout bij het terugdraaien van de status",
"Set status" : "Status instellen",
"Online status" : "Online status",
"Status message" : "Statusbericht",
+ "Set absence period" : "Afwezigheidsperiode instellen",
+ "Set absence period and replacement" : "Afwezigheidsperiode en vervanging instellen",
"Your status was set automatically" : "Uw status is automatisch ingesteld",
"Clear status message" : "Statusbericht wissen",
"Set status message" : "Statusbericht instellen",
diff --git a/apps/user_status/l10n/pt_BR.js b/apps/user_status/l10n/pt_BR.js
index cfc1d55a3b0..210a4e3c28b 100644
--- a/apps/user_status/l10n/pt_BR.js
+++ b/apps/user_status/l10n/pt_BR.js
@@ -24,7 +24,7 @@ OC.L10N.register(
"There was an error clearing the status" : "Ocorreu um erro ao limpar o status",
"There was an error reverting the status" : "Ocorreu um erro ao reverter o status",
"Set status" : "Definir status",
- "Online status" : "Status online",
+ "Online status" : "Status on-line",
"Status message" : "Mensagem de status",
"Set absence period" : "Definir período de ausência",
"Set absence period and replacement" : "Definir período de ausência e substituição",
@@ -34,16 +34,16 @@ OC.L10N.register(
"Don't clear" : "Não limpe",
"Today" : "Hoje",
"This week" : "Esta semana",
- "Online" : "Online",
+ "Online" : "On-line",
"Away" : "Fora",
"Do not disturb" : "Não perturbe",
"Invisible" : "Invisível",
- "Offline" : "Offline",
+ "Offline" : "Off-line",
"There was an error saving the new status" : "Ocorreu um erro ao salvar o novo status",
"30 minutes" : "30 minutos",
"1 hour" : "1 hora",
"4 hours" : "4 horas",
"Mute all notifications" : "Silenciar todas as notificações",
- "Appear offline" : "Aparecer offline"
+ "Appear offline" : "Aparecer off-line"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/user_status/l10n/pt_BR.json b/apps/user_status/l10n/pt_BR.json
index 06ad883dd68..0450fd6790b 100644
--- a/apps/user_status/l10n/pt_BR.json
+++ b/apps/user_status/l10n/pt_BR.json
@@ -22,7 +22,7 @@
"There was an error clearing the status" : "Ocorreu um erro ao limpar o status",
"There was an error reverting the status" : "Ocorreu um erro ao reverter o status",
"Set status" : "Definir status",
- "Online status" : "Status online",
+ "Online status" : "Status on-line",
"Status message" : "Mensagem de status",
"Set absence period" : "Definir período de ausência",
"Set absence period and replacement" : "Definir período de ausência e substituição",
@@ -32,16 +32,16 @@
"Don't clear" : "Não limpe",
"Today" : "Hoje",
"This week" : "Esta semana",
- "Online" : "Online",
+ "Online" : "On-line",
"Away" : "Fora",
"Do not disturb" : "Não perturbe",
"Invisible" : "Invisível",
- "Offline" : "Offline",
+ "Offline" : "Off-line",
"There was an error saving the new status" : "Ocorreu um erro ao salvar o novo status",
"30 minutes" : "30 minutos",
"1 hour" : "1 hora",
"4 hours" : "4 horas",
"Mute all notifications" : "Silenciar todas as notificações",
- "Appear offline" : "Aparecer offline"
+ "Appear offline" : "Aparecer off-line"
},"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/user_status/l10n/ru.js b/apps/user_status/l10n/ru.js
index 4f518bdcede..901c313f537 100644
--- a/apps/user_status/l10n/ru.js
+++ b/apps/user_status/l10n/ru.js
@@ -2,46 +2,48 @@ OC.L10N.register(
"user_status",
{
"Recent statuses" : "Недавние статусы",
- "No recent status changes" : "Недавние изменения статуса отсуствуют ",
+ "No recent status changes" : "Нет недавних изменений статуса",
"In a meeting" : "На встрече",
"Commuting" : "В пути",
- "Out sick" : "Болею",
+ "Out sick" : "Болен",
"Vacationing" : "В отпуске",
"Out of office" : "Вне офиса",
- "Working remotely" : "Удалённая работа",
- "In a call" : "В звонке",
+ "Working remotely" : "Удалённо",
+ "In a call" : "В вызове",
"User status" : "Статус пользователя",
- "Clear status after" : "Удалить статус через",
- "Emoji for your status message" : "Эмодзи для вашего сообщения о состоянии",
- "What is your status?" : "Какой у вас статус?",
+ "Clear status after" : "Очистить статус после",
+ "Emoji for your status message" : "Эмодзи для вашего сообщения к статусу",
+ "What is your status?" : "Какой у Вас статус?",
"Predefined statuses" : "Предопределенные статусы",
"Previously set" : "Установлено ранее",
"Reset status" : "Сбросить статус",
"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 saving the status" : "Произошла ошибка при сохранении статуса",
+ "There was an error clearing the status" : "Произошла ошибка при удалении статуса",
"There was an error reverting the status" : "Произошла ошибка при сбросе статуса",
"Set status" : "Установить статус",
- "Online status" : "Статус работы в сети",
+ "Online status" : "Онлайн статус",
"Status message" : "Описание статуса",
+ "Set absence period" : "Задать период отсутствия",
+ "Set absence period and replacement" : "Задать период отсутствия и замену",
"Your status was set automatically" : "Ваш статус был установлен автоматически",
- "Clear status message" : "Удалить описание статуса",
- "Set status message" : "Установить описание статуса",
+ "Clear status message" : "Удалить сообщение к статусу",
+ "Set status message" : "Установить сообщение к статусу",
"Don't clear" : "Не очищать",
"Today" : "Сегодня",
"This week" : "Эта неделя",
- "Online" : "На связи",
- "Away" : "Отошёл",
+ "Online" : "В сети",
+ "Away" : "Неактивен",
"Do not disturb" : "Не беспокоить",
- "Invisible" : "Невидимка",
- "Offline" : "Автономно",
- "There was an error saving the new status" : "Не удалось сохранить новый статус",
+ "Invisible" : "Невидимый",
+ "Offline" : "Не в сети",
+ "There was an error saving the new status" : "Произошла ошибка при сохранении нового статуса",
"30 minutes" : "30 минут",
"1 hour" : "1 час",
"4 hours" : "4 часа",
"Mute all notifications" : "Отключить все уведомления",
- "Appear offline" : "Возможно, не в сети"
+ "Appear offline" : "\"Не в сети\" для остальных"
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/user_status/l10n/ru.json b/apps/user_status/l10n/ru.json
index e6dc51b2f9d..8a1967e1196 100644
--- a/apps/user_status/l10n/ru.json
+++ b/apps/user_status/l10n/ru.json
@@ -1,45 +1,47 @@
{ "translations": {
"Recent statuses" : "Недавние статусы",
- "No recent status changes" : "Недавние изменения статуса отсуствуют ",
+ "No recent status changes" : "Нет недавних изменений статуса",
"In a meeting" : "На встрече",
"Commuting" : "В пути",
- "Out sick" : "Болею",
+ "Out sick" : "Болен",
"Vacationing" : "В отпуске",
"Out of office" : "Вне офиса",
- "Working remotely" : "Удалённая работа",
- "In a call" : "В звонке",
+ "Working remotely" : "Удалённо",
+ "In a call" : "В вызове",
"User status" : "Статус пользователя",
- "Clear status after" : "Удалить статус через",
- "Emoji for your status message" : "Эмодзи для вашего сообщения о состоянии",
- "What is your status?" : "Какой у вас статус?",
+ "Clear status after" : "Очистить статус после",
+ "Emoji for your status message" : "Эмодзи для вашего сообщения к статусу",
+ "What is your status?" : "Какой у Вас статус?",
"Predefined statuses" : "Предопределенные статусы",
"Previously set" : "Установлено ранее",
"Reset status" : "Сбросить статус",
"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 saving the status" : "Произошла ошибка при сохранении статуса",
+ "There was an error clearing the status" : "Произошла ошибка при удалении статуса",
"There was an error reverting the status" : "Произошла ошибка при сбросе статуса",
"Set status" : "Установить статус",
- "Online status" : "Статус работы в сети",
+ "Online status" : "Онлайн статус",
"Status message" : "Описание статуса",
+ "Set absence period" : "Задать период отсутствия",
+ "Set absence period and replacement" : "Задать период отсутствия и замену",
"Your status was set automatically" : "Ваш статус был установлен автоматически",
- "Clear status message" : "Удалить описание статуса",
- "Set status message" : "Установить описание статуса",
+ "Clear status message" : "Удалить сообщение к статусу",
+ "Set status message" : "Установить сообщение к статусу",
"Don't clear" : "Не очищать",
"Today" : "Сегодня",
"This week" : "Эта неделя",
- "Online" : "На связи",
- "Away" : "Отошёл",
+ "Online" : "В сети",
+ "Away" : "Неактивен",
"Do not disturb" : "Не беспокоить",
- "Invisible" : "Невидимка",
- "Offline" : "Автономно",
- "There was an error saving the new status" : "Не удалось сохранить новый статус",
+ "Invisible" : "Невидимый",
+ "Offline" : "Не в сети",
+ "There was an error saving the new status" : "Произошла ошибка при сохранении нового статуса",
"30 minutes" : "30 минут",
"1 hour" : "1 час",
"4 hours" : "4 часа",
"Mute all notifications" : "Отключить все уведомления",
- "Appear offline" : "Возможно, не в сети"
+ "Appear offline" : "\"Не в сети\" для остальных"
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/user_status/l10n/sw.js b/apps/user_status/l10n/sw.js
new file mode 100644
index 00000000000..5470b5c623f
--- /dev/null
+++ b/apps/user_status/l10n/sw.js
@@ -0,0 +1,28 @@
+OC.L10N.register(
+ "user_status",
+ {
+ "Out of office" : "Nje ya ofisi",
+ "User status" : "Hadhi ya mtumiaji",
+ "Emoji for your status message" : "Emoji kwa ujumbe wako wa hadhi",
+ "What is your status?" : "Hadhi yako ni nini?",
+ "Previously set" : "Imepangiliwa mwanzo",
+ "Reset status" : "Pangilia hali",
+ "Set status" : "Panglia hali",
+ "Online status" : "Hadhi ya mtandaoni",
+ "Status message" : "Ujumbe wa hadhi",
+ "Your status was set automatically" : "Hadhi yako ilipangiliwa moja kwa moja",
+ "Clear status message" : "Futa jumbe za wadhifa",
+ "Set status message" : "Pangilia hali ya ujumbe",
+ "Don't clear" : "Usifute",
+ "Today" : "Leo",
+ "This week" : "Wiki hii",
+ "Online" : "Mtandaoni",
+ "Away" : "Mbali",
+ "Do not disturb" : "Acha kusumbua",
+ "Invisible" : "Haionekani",
+ "Offline" : "Nje ya mtandao",
+ "30 minutes" : "Dakika 30",
+ "1 hour" : "Saa 1",
+ "4 hours" : "Masaa 4"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_status/l10n/sw.json b/apps/user_status/l10n/sw.json
new file mode 100644
index 00000000000..6e0c9c6a77c
--- /dev/null
+++ b/apps/user_status/l10n/sw.json
@@ -0,0 +1,26 @@
+{ "translations": {
+ "Out of office" : "Nje ya ofisi",
+ "User status" : "Hadhi ya mtumiaji",
+ "Emoji for your status message" : "Emoji kwa ujumbe wako wa hadhi",
+ "What is your status?" : "Hadhi yako ni nini?",
+ "Previously set" : "Imepangiliwa mwanzo",
+ "Reset status" : "Pangilia hali",
+ "Set status" : "Panglia hali",
+ "Online status" : "Hadhi ya mtandaoni",
+ "Status message" : "Ujumbe wa hadhi",
+ "Your status was set automatically" : "Hadhi yako ilipangiliwa moja kwa moja",
+ "Clear status message" : "Futa jumbe za wadhifa",
+ "Set status message" : "Pangilia hali ya ujumbe",
+ "Don't clear" : "Usifute",
+ "Today" : "Leo",
+ "This week" : "Wiki hii",
+ "Online" : "Mtandaoni",
+ "Away" : "Mbali",
+ "Do not disturb" : "Acha kusumbua",
+ "Invisible" : "Haionekani",
+ "Offline" : "Nje ya mtandao",
+ "30 minutes" : "Dakika 30",
+ "1 hour" : "Saa 1",
+ "4 hours" : "Masaa 4"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/user_status/lib/Service/StatusService.php b/apps/user_status/lib/Service/StatusService.php
index 9adc13e4dbf..188eb26d1d7 100644
--- a/apps/user_status/lib/Service/StatusService.php
+++ b/apps/user_status/lib/Service/StatusService.php
@@ -167,7 +167,7 @@ class StatusService {
$userStatus->setIsBackup(false);
if ($userStatus->getId() === null) {
- return $this->mapper->insert($userStatus);
+ return $this->insertWithoutThrowingUniqueConstrain($userStatus);
}
return $this->mapper->update($userStatus);
@@ -211,7 +211,7 @@ class StatusService {
$userStatus->setStatusMessageTimestamp($this->timeFactory->now()->getTimestamp());
if ($userStatus->getId() === null) {
- return $this->mapper->insert($userStatus);
+ return $this->insertWithoutThrowingUniqueConstrain($userStatus);
}
return $this->mapper->update($userStatus);
@@ -313,7 +313,7 @@ class StatusService {
if ($userStatus->getId() !== null) {
return $this->mapper->update($userStatus);
}
- return $this->mapper->insert($userStatus);
+ return $this->insertWithoutThrowingUniqueConstrain($userStatus);
}
/**
@@ -360,7 +360,7 @@ class StatusService {
$userStatus->setStatusMessageTimestamp($this->timeFactory->now()->getTimestamp());
if ($userStatus->getId() === null) {
- return $this->mapper->insert($userStatus);
+ return $this->insertWithoutThrowingUniqueConstrain($userStatus);
}
return $this->mapper->update($userStatus);
@@ -584,4 +584,16 @@ class StatusService {
// For users that matched restore the previous status
$this->mapper->restoreBackupStatuses($restoreIds);
}
+
+ protected function insertWithoutThrowingUniqueConstrain(UserStatus $userStatus): UserStatus {
+ try {
+ return $this->mapper->insert($userStatus);
+ } catch (Exception $e) {
+ // Ignore if a parallel request already set the status
+ if ($e->getReason() !== Exception::REASON_UNIQUE_CONSTRAINT_VIOLATION) {
+ throw $e;
+ }
+ }
+ return $userStatus;
+ }
}
diff --git a/apps/user_status/openapi.json b/apps/user_status/openapi.json
index a0d30693e37..65d9af59fef 100644
--- a/apps/user_status/openapi.json
+++ b/apps/user_status/openapi.json
@@ -427,7 +427,8 @@
"schema": {
"type": "integer",
"format": "int64",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -438,6 +439,7 @@
"type": "integer",
"format": "int64",
"nullable": true,
+ "default": null,
"minimum": 0
}
},
diff --git a/apps/user_status/tests/Unit/BackgroundJob/ClearOldStatusesBackgroundJobTest.php b/apps/user_status/tests/Unit/BackgroundJob/ClearOldStatusesBackgroundJobTest.php
index 90c85bcdaac..66142082343 100644
--- a/apps/user_status/tests/Unit/BackgroundJob/ClearOldStatusesBackgroundJobTest.php
+++ b/apps/user_status/tests/Unit/BackgroundJob/ClearOldStatusesBackgroundJobTest.php
@@ -11,18 +11,13 @@ namespace OCA\UserStatus\Tests\BackgroundJob;
use OCA\UserStatus\BackgroundJob\ClearOldStatusesBackgroundJob;
use OCA\UserStatus\Db\UserStatusMapper;
use OCP\AppFramework\Utility\ITimeFactory;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ClearOldStatusesBackgroundJobTest extends TestCase {
-
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $time;
-
- /** @var UserStatusMapper|\PHPUnit\Framework\MockObject\MockObject */
- private $mapper;
-
- /** @var ClearOldStatusesBackgroundJob */
- private $job;
+ private ITimeFactory&MockObject $time;
+ private UserStatusMapper&MockObject $mapper;
+ private ClearOldStatusesBackgroundJob $job;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/user_status/tests/Unit/CapabilitiesTest.php b/apps/user_status/tests/Unit/CapabilitiesTest.php
index 9e72d49fe31..ef721eaa90b 100644
--- a/apps/user_status/tests/Unit/CapabilitiesTest.php
+++ b/apps/user_status/tests/Unit/CapabilitiesTest.php
@@ -10,15 +10,12 @@ namespace OCA\UserStatus\Tests;
use OCA\UserStatus\Capabilities;
use OCP\IEmojiHelper;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CapabilitiesTest extends TestCase {
-
- /** @var IEmojiHelper|\PHPUnit\Framework\MockObject\MockObject */
- private $emojiHelper;
-
- /** @var Capabilities */
- private $capabilities;
+ private IEmojiHelper&MockObject $emojiHelper;
+ private Capabilities $capabilities;
protected function setUp(): void {
parent::setUp();
@@ -28,8 +25,6 @@ class CapabilitiesTest extends TestCase {
}
/**
- * @param bool $supportsEmojis
- *
* @dataProvider getCapabilitiesDataProvider
*/
public function testGetCapabilities(bool $supportsEmojis): void {
@@ -46,7 +41,7 @@ class CapabilitiesTest extends TestCase {
], $this->capabilities->getCapabilities());
}
- public function getCapabilitiesDataProvider(): array {
+ public static function getCapabilitiesDataProvider(): array {
return [
[true],
[false],
diff --git a/apps/user_status/tests/Unit/Connector/UserStatusProviderTest.php b/apps/user_status/tests/Unit/Connector/UserStatusProviderTest.php
index 7e2da883af4..df6c55488d5 100644
--- a/apps/user_status/tests/Unit/Connector/UserStatusProviderTest.php
+++ b/apps/user_status/tests/Unit/Connector/UserStatusProviderTest.php
@@ -11,15 +11,12 @@ namespace OCA\UserStatus\Tests\Connector;
use OCA\UserStatus\Connector\UserStatusProvider;
use OCA\UserStatus\Db\UserStatus;
use OCA\UserStatus\Service\StatusService;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class UserStatusProviderTest extends TestCase {
-
- /** @var \PHPUnit\Framework\MockObject\MockObject */
- private $service;
-
- /** @var UserStatusProvider */
- private $provider;
+ private StatusService&MockObject $service;
+ private UserStatusProvider $provider;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/user_status/tests/Unit/Controller/PredefinedStatusControllerTest.php b/apps/user_status/tests/Unit/Controller/PredefinedStatusControllerTest.php
index 5709cdc89cf..0f96f41a524 100644
--- a/apps/user_status/tests/Unit/Controller/PredefinedStatusControllerTest.php
+++ b/apps/user_status/tests/Unit/Controller/PredefinedStatusControllerTest.php
@@ -11,15 +11,12 @@ namespace OCA\UserStatus\Tests\Controller;
use OCA\UserStatus\Controller\PredefinedStatusController;
use OCA\UserStatus\Service\PredefinedStatusService;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class PredefinedStatusControllerTest extends TestCase {
-
- /** @var PredefinedStatusService|\PHPUnit\Framework\MockObject\MockObject */
- private $service;
-
- /** @var PredefinedStatusController */
- private $controller;
+ private PredefinedStatusService&MockObject $service;
+ private PredefinedStatusController $controller;
protected function setUp(): void {
parent::setUp();
@@ -27,8 +24,7 @@ class PredefinedStatusControllerTest extends TestCase {
$request = $this->createMock(IRequest::class);
$this->service = $this->createMock(PredefinedStatusService::class);
- $this->controller = new PredefinedStatusController('user_status', $request,
- $this->service);
+ $this->controller = new PredefinedStatusController('user_status', $request, $this->service);
}
public function testFindAll(): void {
diff --git a/apps/user_status/tests/Unit/Controller/StatusesControllerTest.php b/apps/user_status/tests/Unit/Controller/StatusesControllerTest.php
index fe3e1c56a7e..76d337879c3 100644
--- a/apps/user_status/tests/Unit/Controller/StatusesControllerTest.php
+++ b/apps/user_status/tests/Unit/Controller/StatusesControllerTest.php
@@ -14,15 +14,12 @@ use OCA\UserStatus\Service\StatusService;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class StatusesControllerTest extends TestCase {
-
- /** @var StatusService|\PHPUnit\Framework\MockObject\MockObject */
- private $service;
-
- /** @var StatusesController */
- private $controller;
+ private StatusService&MockObject $service;
+ private StatusesController $controller;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php b/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php
index 26b29bcc74c..45ee9c4fdba 100644
--- a/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php
+++ b/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php
@@ -21,22 +21,16 @@ use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
use Test\TestCase;
use Throwable;
class UserStatusControllerTest extends TestCase {
- /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */
- private $logger;
-
- /** @var StatusService|\PHPUnit\Framework\MockObject\MockObject */
- private $statusService;
-
- /** @var CalendarStatusService|\PHPUnit\Framework\MockObject\MockObject $calendarStatusService */
- private $calendarStatusService;
-
- /** @var UserStatusController */
- private $controller;
+ private LoggerInterface&MockObject $logger;
+ private StatusService&MockObject $statusService;
+ private CalendarStatusService&MockObject $calendarStatusService;
+ private UserStatusController $controller;
protected function setUp(): void {
parent::setUp();
@@ -94,19 +88,10 @@ class UserStatusControllerTest extends TestCase {
}
/**
- * @param string $statusType
- * @param string|null $statusIcon
- * @param string|null $message
- * @param int|null $clearAt
- * @param bool $expectSuccess
- * @param bool $expectException
- * @param Throwable|null $exception
- * @param bool $expectLogger
- * @param string|null $expectedLogMessage
- *
* @dataProvider setStatusDataProvider
*/
- public function testSetStatus(string $statusType,
+ public function testSetStatus(
+ string $statusType,
?string $statusIcon,
?string $message,
?int $clearAt,
@@ -114,7 +99,8 @@ class UserStatusControllerTest extends TestCase {
bool $expectException,
?Throwable $exception,
bool $expectLogger,
- ?string $expectedLogMessage): void {
+ ?string $expectedLogMessage,
+ ): void {
$userStatus = $this->getUserStatus();
if ($expectException) {
@@ -155,7 +141,7 @@ class UserStatusControllerTest extends TestCase {
}
}
- public function setStatusDataProvider(): array {
+ public static function setStatusDataProvider(): array {
return [
['busy', '👨🏽‍💻', 'Busy developing the status feature', 500, true, false, null, false, null],
['busy', '👨🏽‍💻', 'Busy developing the status feature', 500, false, true, new InvalidStatusTypeException('Original exception message'), true,
@@ -164,23 +150,17 @@ class UserStatusControllerTest extends TestCase {
}
/**
- * @param string $messageId
- * @param int|null $clearAt
- * @param bool $expectSuccess
- * @param bool $expectException
- * @param Throwable|null $exception
- * @param bool $expectLogger
- * @param string|null $expectedLogMessage
- *
* @dataProvider setPredefinedMessageDataProvider
*/
- public function testSetPredefinedMessage(string $messageId,
+ public function testSetPredefinedMessage(
+ string $messageId,
?int $clearAt,
bool $expectSuccess,
bool $expectException,
?Throwable $exception,
bool $expectLogger,
- ?string $expectedLogMessage): void {
+ ?string $expectedLogMessage,
+ ): void {
$userStatus = $this->getUserStatus();
if ($expectException) {
@@ -221,7 +201,7 @@ class UserStatusControllerTest extends TestCase {
}
}
- public function setPredefinedMessageDataProvider(): array {
+ public static function setPredefinedMessageDataProvider(): array {
return [
['messageId-42', 500, true, false, null, false, null],
['messageId-42', 500, false, true, new InvalidClearAtException('Original exception message'), true,
@@ -232,19 +212,10 @@ class UserStatusControllerTest extends TestCase {
}
/**
- * @param string|null $statusIcon
- * @param string $message
- * @param int|null $clearAt
- * @param bool $expectSuccess
- * @param bool $expectException
- * @param Throwable|null $exception
- * @param bool $expectLogger
- * @param string|null $expectedLogMessage
- * @param bool $expectSuccessAsReset
- *
* @dataProvider setCustomMessageDataProvider
*/
- public function testSetCustomMessage(?string $statusIcon,
+ public function testSetCustomMessage(
+ ?string $statusIcon,
string $message,
?int $clearAt,
bool $expectSuccess,
@@ -252,7 +223,8 @@ class UserStatusControllerTest extends TestCase {
?Throwable $exception,
bool $expectLogger,
?string $expectedLogMessage,
- bool $expectSuccessAsReset = false): void {
+ bool $expectSuccessAsReset = false,
+ ): void {
$userStatus = $this->getUserStatus();
if ($expectException) {
@@ -308,7 +280,7 @@ class UserStatusControllerTest extends TestCase {
}
}
- public function setCustomMessageDataProvider(): array {
+ public static function setCustomMessageDataProvider(): array {
return [
['👨🏽‍💻', 'Busy developing the status feature', 500, true, false, null, false, null],
['👨🏽‍💻', '', 500, true, false, null, false, null, false],
diff --git a/apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php b/apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php
index e776837fac8..8773b04c95f 100644
--- a/apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php
+++ b/apps/user_status/tests/Unit/Dashboard/UserStatusWidgetTest.php
@@ -16,33 +16,18 @@ use OCP\IL10N;
use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class UserStatusWidgetTest extends TestCase {
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
-
- /** @var IDateTimeFormatter|\PHPUnit\Framework\MockObject\MockObject */
- private $dateTimeFormatter;
-
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
-
- /** @var IInitialState|\PHPUnit\Framework\MockObject\MockObject */
- private $initialState;
-
- /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */
- private $userManager;
-
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
-
- /** @var StatusService|\PHPUnit\Framework\MockObject\MockObject */
- private $service;
-
- /** @var UserStatusWidget */
- private $widget;
+ private IL10N&MockObject $l10n;
+ private IDateTimeFormatter&MockObject $dateTimeFormatter;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IInitialState&MockObject $initialState;
+ private IUserManager&MockObject $userManager;
+ private IUserSession&MockObject $userSession;
+ private StatusService&MockObject $service;
+ private UserStatusWidget $widget;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php b/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php
index 46147c6a822..c9bda492210 100644
--- a/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php
+++ b/apps/user_status/tests/Unit/Db/UserStatusMapperTest.php
@@ -15,9 +15,7 @@ use OCP\DB\Exception;
use Test\TestCase;
class UserStatusMapperTest extends TestCase {
-
- /** @var UserStatusMapper */
- private $mapper;
+ private UserStatusMapper $mapper;
protected function setUp(): void {
parent::setUp();
@@ -137,11 +135,6 @@ class UserStatusMapperTest extends TestCase {
}
/**
- * @param string $status
- * @param bool $isUserDefined
- * @param int $timestamp
- * @param bool $expectsClean
- *
* @dataProvider clearStatusesOlderThanDataProvider
*/
public function testClearStatusesOlderThan(string $status, bool $isUserDefined, int $timestamp, bool $expectsClean): void {
@@ -169,7 +162,7 @@ class UserStatusMapperTest extends TestCase {
}
}
- public function clearStatusesOlderThanDataProvider(): array {
+ public static function clearStatusesOlderThanDataProvider(): array {
return [
['offline', false, 6000, false],
['online', true, 6000, false],
@@ -231,7 +224,7 @@ class UserStatusMapperTest extends TestCase {
$this->mapper->insert($userStatus3);
}
- public function dataCreateBackupStatus(): array {
+ public static function dataCreateBackupStatus(): array {
return [
[false, false, false],
[true, false, true],
@@ -242,9 +235,6 @@ class UserStatusMapperTest extends TestCase {
/**
* @dataProvider dataCreateBackupStatus
- * @param bool $hasStatus
- * @param bool $hasBackup
- * @param bool $backupCreated
*/
public function testCreateBackupStatus(bool $hasStatus, bool $hasBackup, bool $backupCreated): void {
if ($hasStatus) {
diff --git a/apps/user_status/tests/Unit/Listener/UserDeletedListenerTest.php b/apps/user_status/tests/Unit/Listener/UserDeletedListenerTest.php
index 128b5c78c48..fbcea23338d 100644
--- a/apps/user_status/tests/Unit/Listener/UserDeletedListenerTest.php
+++ b/apps/user_status/tests/Unit/Listener/UserDeletedListenerTest.php
@@ -13,15 +13,12 @@ use OCA\UserStatus\Service\StatusService;
use OCP\EventDispatcher\GenericEvent;
use OCP\IUser;
use OCP\User\Events\UserDeletedEvent;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class UserDeletedListenerTest extends TestCase {
-
- /** @var StatusService|\PHPUnit\Framework\MockObject\MockObject */
- private $service;
-
- /** @var UserDeletedListener */
- private $listener;
+ private StatusService&MockObject $service;
+ private UserDeletedListener $listener;
protected function setUp(): void {
parent::setUp();
diff --git a/apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php b/apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php
index 421cce046df..c94315a7a93 100644
--- a/apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php
+++ b/apps/user_status/tests/Unit/Listener/UserLiveStatusListenerTest.php
@@ -11,7 +11,6 @@ namespace OCA\UserStatus\Tests\Listener;
use OCA\DAV\CalDAV\Status\StatusService as CalendarStatusService;
use OCA\UserStatus\Db\UserStatus;
use OCA\UserStatus\Db\UserStatusMapper;
-use OCA\UserStatus\Listener\UserDeletedListener;
use OCA\UserStatus\Listener\UserLiveStatusListener;
use OCA\UserStatus\Service\StatusService;
use OCP\AppFramework\Db\DoesNotExistException;
@@ -24,20 +23,13 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class UserLiveStatusListenerTest extends TestCase {
+ private UserStatusMapper&MockObject $mapper;
+ private StatusService&MockObject $statusService;
+ private ITimeFactory&MockObject $timeFactory;
+ private CalendarStatusService&MockObject $calendarStatusService;
- /** @var UserStatusMapper|MockObject */
- private $mapper;
- /** @var StatusService|MockObject */
- private $statusService;
- /** @var ITimeFactory|MockObject */
- private $timeFactory;
-
- /** @var UserDeletedListener */
- private $listener;
-
- private CalendarStatusService|MockObject $calendarStatusService;
-
- private LoggerInterface|MockObject $logger;
+ private LoggerInterface&MockObject $logger;
+ private UserLiveStatusListener $listener;
protected function setUp(): void {
parent::setUp();
@@ -58,25 +50,18 @@ class UserLiveStatusListenerTest extends TestCase {
}
/**
- * @param string $userId
- * @param string $previousStatus
- * @param int $previousTimestamp
- * @param bool $previousIsUserDefined
- * @param string $eventStatus
- * @param int $eventTimestamp
- * @param bool $expectExisting
- * @param bool $expectUpdate
- *
* @dataProvider handleEventWithCorrectEventDataProvider
*/
- public function testHandleWithCorrectEvent(string $userId,
+ public function testHandleWithCorrectEvent(
+ string $userId,
string $previousStatus,
int $previousTimestamp,
bool $previousIsUserDefined,
string $eventStatus,
int $eventTimestamp,
bool $expectExisting,
- bool $expectUpdate): void {
+ bool $expectUpdate,
+ ): void {
$userStatus = new UserStatus();
if ($expectExisting) {
@@ -143,7 +128,7 @@ class UserLiveStatusListenerTest extends TestCase {
}
}
- public function handleEventWithCorrectEventDataProvider(): array {
+ public static function handleEventWithCorrectEventDataProvider(): array {
return [
['john.doe', 'offline', 0, false, 'online', 5000, true, true],
['john.doe', 'offline', 0, false, 'online', 5000, false, true],
diff --git a/apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php b/apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php
index 12b34ed0b4d..091466637f0 100644
--- a/apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php
+++ b/apps/user_status/tests/Unit/Service/PredefinedStatusServiceTest.php
@@ -10,15 +10,12 @@ namespace OCA\UserStatus\Tests\Service;
use OCA\UserStatus\Service\PredefinedStatusService;
use OCP\IL10N;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class PredefinedStatusServiceTest extends TestCase {
-
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10n;
-
- /** @var PredefinedStatusService */
- protected $service;
+ protected IL10N&MockObject $l10n;
+ protected PredefinedStatusService $service;
protected function setUp(): void {
parent::setUp();
@@ -97,9 +94,6 @@ class PredefinedStatusServiceTest extends TestCase {
}
/**
- * @param string $id
- * @param string|null $expectedIcon
- *
* @dataProvider getIconForIdDataProvider
*/
public function testGetIconForId(string $id, ?string $expectedIcon): void {
@@ -107,10 +101,7 @@ class PredefinedStatusServiceTest extends TestCase {
$this->assertEquals($expectedIcon, $actual);
}
- /**
- * @return array
- */
- public function getIconForIdDataProvider(): array {
+ public static function getIconForIdDataProvider(): array {
return [
['meeting', '📅'],
['commuting', '🚌'],
@@ -123,9 +114,6 @@ class PredefinedStatusServiceTest extends TestCase {
}
/**
- * @param string $id
- * @param string|null $expected
- *
* @dataProvider getTranslatedStatusForIdDataProvider
*/
public function testGetTranslatedStatusForId(string $id, ?string $expected): void {
@@ -136,10 +124,7 @@ class PredefinedStatusServiceTest extends TestCase {
$this->assertEquals($expected, $actual);
}
- /**
- * @return array
- */
- public function getTranslatedStatusForIdDataProvider(): array {
+ public static function getTranslatedStatusForIdDataProvider(): array {
return [
['meeting', 'In a meeting'],
['commuting', 'Commuting'],
@@ -152,9 +137,6 @@ class PredefinedStatusServiceTest extends TestCase {
}
/**
- * @param string $id
- * @param bool $expected
- *
* @dataProvider isValidIdDataProvider
*/
public function testIsValidId(string $id, bool $expected): void {
@@ -162,10 +144,7 @@ class PredefinedStatusServiceTest extends TestCase {
$this->assertEquals($expected, $actual);
}
- /**
- * @return array
- */
- public function isValidIdDataProvider(): array {
+ public static function isValidIdDataProvider(): array {
return [
['meeting', true],
['commuting', true],
diff --git a/apps/user_status/tests/Unit/Service/StatusServiceTest.php b/apps/user_status/tests/Unit/Service/StatusServiceTest.php
index 801d0cea0fc..7aeb1d48448 100644
--- a/apps/user_status/tests/Unit/Service/StatusServiceTest.php
+++ b/apps/user_status/tests/Unit/Service/StatusServiceTest.php
@@ -31,27 +31,13 @@ use Psr\Log\LoggerInterface;
use Test\TestCase;
class StatusServiceTest extends TestCase {
-
- /** @var UserStatusMapper|MockObject */
- private $mapper;
-
- /** @var ITimeFactory|MockObject */
- private $timeFactory;
-
- /** @var PredefinedStatusService|MockObject */
- private $predefinedStatusService;
-
- /** @var IEmojiHelper|MockObject */
- private $emojiHelper;
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IUserManager|MockObject */
- private $userManager;
-
- /** @var LoggerInterface|MockObject */
- private $logger;
+ private UserStatusMapper&MockObject $mapper;
+ private ITimeFactory&MockObject $timeFactory;
+ private PredefinedStatusService&MockObject $predefinedStatusService;
+ private IEmojiHelper&MockObject $emojiHelper;
+ private IConfig&MockObject $config;
+ private IUserManager&MockObject $userManager;
+ private LoggerInterface&MockObject $logger;
private StatusService $service;
@@ -236,20 +222,10 @@ class StatusServiceTest extends TestCase {
}
/**
- * @param string $userId
- * @param string $status
- * @param int|null $statusTimestamp
- * @param bool $isUserDefined
- * @param bool $expectExisting
- * @param bool $expectSuccess
- * @param bool $expectTimeFactory
- * @param bool $expectException
- * @param string|null $expectedExceptionClass
- * @param string|null $expectedExceptionMessage
- *
* @dataProvider setStatusDataProvider
*/
- public function testSetStatus(string $userId,
+ public function testSetStatus(
+ string $userId,
string $status,
?int $statusTimestamp,
bool $isUserDefined,
@@ -258,7 +234,8 @@ class StatusServiceTest extends TestCase {
bool $expectTimeFactory,
bool $expectException,
?string $expectedExceptionClass,
- ?string $expectedExceptionMessage): void {
+ ?string $expectedExceptionMessage,
+ ): void {
$userStatus = new UserStatus();
if ($expectExisting) {
@@ -309,7 +286,7 @@ class StatusServiceTest extends TestCase {
}
}
- public function setStatusDataProvider(): array {
+ public static function setStatusDataProvider(): array {
return [
['john.doe', 'online', 50, true, true, true, false, false, null, null],
['john.doe', 'online', 50, true, false, true, false, false, null, null],
@@ -368,19 +345,10 @@ class StatusServiceTest extends TestCase {
}
/**
- * @param string $userId
- * @param string $messageId
- * @param bool $isValidMessageId
- * @param int|null $clearAt
- * @param bool $expectExisting
- * @param bool $expectSuccess
- * @param bool $expectException
- * @param string|null $expectedExceptionClass
- * @param string|null $expectedExceptionMessage
- *
* @dataProvider setPredefinedMessageDataProvider
*/
- public function testSetPredefinedMessage(string $userId,
+ public function testSetPredefinedMessage(
+ string $userId,
string $messageId,
bool $isValidMessageId,
?int $clearAt,
@@ -388,7 +356,8 @@ class StatusServiceTest extends TestCase {
bool $expectSuccess,
bool $expectException,
?string $expectedExceptionClass,
- ?string $expectedExceptionMessage): void {
+ ?string $expectedExceptionMessage,
+ ): void {
$userStatus = new UserStatus();
if ($expectExisting) {
@@ -451,7 +420,7 @@ class StatusServiceTest extends TestCase {
}
}
- public function setPredefinedMessageDataProvider(): array {
+ public static function setPredefinedMessageDataProvider(): array {
return [
['john.doe', 'sick-leave', true, null, true, true, false, null, null],
['john.doe', 'sick-leave', true, null, false, true, false, null, null],
@@ -465,20 +434,10 @@ class StatusServiceTest extends TestCase {
}
/**
- * @param string $userId
- * @param string|null $statusIcon
- * @param bool $supportsEmoji
- * @param string $message
- * @param int|null $clearAt
- * @param bool $expectExisting
- * @param bool $expectSuccess
- * @param bool $expectException
- * @param string|null $expectedExceptionClass
- * @param string|null $expectedExceptionMessage
- *
* @dataProvider setCustomMessageDataProvider
*/
- public function testSetCustomMessage(string $userId,
+ public function testSetCustomMessage(
+ string $userId,
?string $statusIcon,
bool $supportsEmoji,
string $message,
@@ -487,7 +446,8 @@ class StatusServiceTest extends TestCase {
bool $expectSuccess,
bool $expectException,
?string $expectedExceptionClass,
- ?string $expectedExceptionMessage): void {
+ ?string $expectedExceptionMessage,
+ ): void {
$userStatus = new UserStatus();
if ($expectExisting) {
@@ -548,7 +508,7 @@ class StatusServiceTest extends TestCase {
}
}
- public function setCustomMessageDataProvider(): array {
+ public static function setCustomMessageDataProvider(): array {
return [
['john.doe', '😁', true, 'Custom message', null, true, true, false, null, null],
['john.doe', '😁', true, 'Custom message', null, false, true, false, null, null],
@@ -815,7 +775,7 @@ class StatusServiceTest extends TestCase {
$this->service->revertMultipleUserStatus(['john', 'nobackup', 'backuponly', 'nobackupanddnd'], 'call');
}
- public function dataSetUserStatus(): array {
+ public static function dataSetUserStatus(): array {
return [
[IUserStatus::MESSAGE_CALENDAR_BUSY, '', false],
diff --git a/apps/weather_status/l10n/af.js b/apps/weather_status/l10n/af.js
deleted file mode 100644
index 848d6a6abc9..00000000000
--- a/apps/weather_status/l10n/af.js
+++ /dev/null
@@ -1,30 +0,0 @@
-OC.L10N.register(
- "weather_status",
- {
- "Unknown address" : "Onbekende adres",
- "No result." : "Geen resultaat.",
- "Error" : "Fout",
- "Weather status" : "Weerstatus",
- "Weather status in your dashboard" : "Weerstatus in u beheerpaneel",
- "Detect location" : "Bespeur ligging",
- "Favorites" : "Gunstelinge",
- "{temperature} {unit} Clear sky at {time}" : "{temperature} {unit} Helder lug om {time}",
- "{temperature} {unit} Cloudy at {time}" : "{temperature} {unit} Bewolk om {time}",
- "{temperature} {unit} Partly cloudy at {time}" : "{temperature} {unit} Gedeeltelik bewolk om {time}",
- "{temperature} {unit} Foggy at {time}" : "{temperature} {unit} Mistig om {time}",
- "{temperature} {unit} Light rain at {time}" : "{temperature} {unit} Ligte reën om {time}",
- "{temperature} {unit} Rain at {time}" : "{temperature} {unit} Reën om {time}",
- "{temperature} {unit} Heavy rain at {time}" : "{temperature} {unit} Swaar reën om {time}",
- "{temperature} {unit} Rain showers at {time}" : "{temperature} {unit} Reënbuie om {time}",
- "{temperature} {unit} Light rain showers at {time}" : "{temperature} {unit} Ligte reënbuie om {time}",
- "{temperature} {unit} Heavy rain showers at {time}" : "{temperature} {unit} Swaar reënbuie om {time}",
- "More weather for {adr}" : "Nog weer vir {adr}",
- "Loading weather" : "Laai tans weer",
- "Set location for weather" : "Stel ligging vir weer",
- "Remove from favorites" : "Verwyder uit gunstelinge",
- "Add as favorite" : "Voeg toe as gunsteling",
- "You are not logged in." : "U is nie aangeteken nie.",
- "No weather information found" : "Geen weerinligting gevind",
- "Location not found" : "Ligging nie gevind"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/weather_status/l10n/af.json b/apps/weather_status/l10n/af.json
deleted file mode 100644
index 1b144cba060..00000000000
--- a/apps/weather_status/l10n/af.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{ "translations": {
- "Unknown address" : "Onbekende adres",
- "No result." : "Geen resultaat.",
- "Error" : "Fout",
- "Weather status" : "Weerstatus",
- "Weather status in your dashboard" : "Weerstatus in u beheerpaneel",
- "Detect location" : "Bespeur ligging",
- "Favorites" : "Gunstelinge",
- "{temperature} {unit} Clear sky at {time}" : "{temperature} {unit} Helder lug om {time}",
- "{temperature} {unit} Cloudy at {time}" : "{temperature} {unit} Bewolk om {time}",
- "{temperature} {unit} Partly cloudy at {time}" : "{temperature} {unit} Gedeeltelik bewolk om {time}",
- "{temperature} {unit} Foggy at {time}" : "{temperature} {unit} Mistig om {time}",
- "{temperature} {unit} Light rain at {time}" : "{temperature} {unit} Ligte reën om {time}",
- "{temperature} {unit} Rain at {time}" : "{temperature} {unit} Reën om {time}",
- "{temperature} {unit} Heavy rain at {time}" : "{temperature} {unit} Swaar reën om {time}",
- "{temperature} {unit} Rain showers at {time}" : "{temperature} {unit} Reënbuie om {time}",
- "{temperature} {unit} Light rain showers at {time}" : "{temperature} {unit} Ligte reënbuie om {time}",
- "{temperature} {unit} Heavy rain showers at {time}" : "{temperature} {unit} Swaar reënbuie om {time}",
- "More weather for {adr}" : "Nog weer vir {adr}",
- "Loading weather" : "Laai tans weer",
- "Set location for weather" : "Stel ligging vir weer",
- "Remove from favorites" : "Verwyder uit gunstelinge",
- "Add as favorite" : "Voeg toe as gunsteling",
- "You are not logged in." : "U is nie aangeteken nie.",
- "No weather information found" : "Geen weerinligting gevind",
- "Location not found" : "Ligging nie gevind"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/weather_status/l10n/bg.js b/apps/weather_status/l10n/bg.js
index 6bcb4bdb01f..7b4543b4de4 100644
--- a/apps/weather_status/l10n/bg.js
+++ b/apps/weather_status/l10n/bg.js
@@ -7,10 +7,23 @@ OC.L10N.register(
"Error" : "Грешка",
"Weather status" : "Метеорологично състояние",
"Weather status in your dashboard" : "Метеорологично състояние във вашето табло",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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Тази информация може да бъде използвана и на други места, като например приложението Календар.",
"{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} snow and thunder later today" : "{temperature}{unit}сняг и гръмотевици по-късно днес",
+ "{temperature} {unit} snow and thunder" : "{temperature}{unit}сняг и гръмотевици",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature}{unit}снеговалеж и гръмотевици по-късно днес",
+ "{temperature} {unit} snow showers and thunder" : "{temperature}{unit}снеговалеж и гръмотевици",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature}{unit}снеговалеж, гръмотевици и полярен здрач по-късно днес",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature}{unit}снеговалеж, гръмотевици и полярен здрач",
+ "{temperature} {unit} snow showers later today" : "{temperature}{unit}снеговалеж по-късно днес",
+ "{temperature} {unit} snow showers" : "{temperature}{unit}снеговалеж",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature}{unit}снеговалеж и полярен здрач по-късно днес",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature}{unit}снеговалеж и полярен здрач",
+ "{temperature} {unit} snow later today" : "{temperature}{unit}снеговалеж по-късно днес",
+ "{temperature} {unit} snow" : "{temperature}{unit}сняг",
"{temperature} {unit} fair weather later today" : "{temperature} {unit} по-късно днес времето ще е хубаво",
"{temperature} {unit} fair weather" : "{temperature} {unit} хубаво време",
"{temperature} {unit} partly cloudy later today" : "{temperature} {unit} по късно днес ще има частична облачност",
@@ -29,7 +42,7 @@ OC.L10N.register(
"{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}",
+ "More weather for {adr}" : "Още за времето в {adr}",
"Loading weather" : "Зареждане на времето",
"Set location for weather" : "Задаване на местоположение за метеорологично време",
"Remove from favorites" : "Премахни от любимите",
@@ -42,8 +55,9 @@ OC.L10N.register(
"There was an error setting the location." : "Възникна грешка при задаване на местоположението.",
"There was an error saving the mode." : "Възникна грешка при запазването на режима.",
"There was an error using personal address." : "Възникна грешка при използването на личния адрес.",
+ "Unknown weather code" : "Непознат код за време",
"Detect location" : "Откриване на местоположение",
- "Set custom address" : "Задаване на персонализиран адрес",
+ "Set custom address" : "Задай локация",
"Favorites" : "Любими"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/weather_status/l10n/bg.json b/apps/weather_status/l10n/bg.json
index bcc7a03ecdf..16464e473bc 100644
--- a/apps/weather_status/l10n/bg.json
+++ b/apps/weather_status/l10n/bg.json
@@ -5,10 +5,23 @@
"Error" : "Грешка",
"Weather status" : "Метеорологично състояние",
"Weather status in your dashboard" : "Метеорологично състояние във вашето табло",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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Тази информация може да бъде използвана и на други места, като например приложението Календар.",
"{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} snow and thunder later today" : "{temperature}{unit}сняг и гръмотевици по-късно днес",
+ "{temperature} {unit} snow and thunder" : "{temperature}{unit}сняг и гръмотевици",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature}{unit}снеговалеж и гръмотевици по-късно днес",
+ "{temperature} {unit} snow showers and thunder" : "{temperature}{unit}снеговалеж и гръмотевици",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature}{unit}снеговалеж, гръмотевици и полярен здрач по-късно днес",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature}{unit}снеговалеж, гръмотевици и полярен здрач",
+ "{temperature} {unit} snow showers later today" : "{temperature}{unit}снеговалеж по-късно днес",
+ "{temperature} {unit} snow showers" : "{temperature}{unit}снеговалеж",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature}{unit}снеговалеж и полярен здрач по-късно днес",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature}{unit}снеговалеж и полярен здрач",
+ "{temperature} {unit} snow later today" : "{temperature}{unit}снеговалеж по-късно днес",
+ "{temperature} {unit} snow" : "{temperature}{unit}сняг",
"{temperature} {unit} fair weather later today" : "{temperature} {unit} по-късно днес времето ще е хубаво",
"{temperature} {unit} fair weather" : "{temperature} {unit} хубаво време",
"{temperature} {unit} partly cloudy later today" : "{temperature} {unit} по късно днес ще има частична облачност",
@@ -27,7 +40,7 @@
"{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}",
+ "More weather for {adr}" : "Още за времето в {adr}",
"Loading weather" : "Зареждане на времето",
"Set location for weather" : "Задаване на местоположение за метеорологично време",
"Remove from favorites" : "Премахни от любимите",
@@ -40,8 +53,9 @@
"There was an error setting the location." : "Възникна грешка при задаване на местоположението.",
"There was an error saving the mode." : "Възникна грешка при запазването на режима.",
"There was an error using personal address." : "Възникна грешка при използването на личния адрес.",
+ "Unknown weather code" : "Непознат код за време",
"Detect location" : "Откриване на местоположение",
- "Set custom address" : "Задаване на персонализиран адрес",
+ "Set custom address" : "Задай локация",
"Favorites" : "Любими"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/weather_status/l10n/he.js b/apps/weather_status/l10n/he.js
deleted file mode 100644
index 6b4b14c5cbf..00000000000
--- a/apps/weather_status/l10n/he.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "weather_status",
- {
- "Unknown address" : "כתובת לא ידועה",
- "No result." : "אין תוצאות.",
- "Malformed JSON data." : "נתוני JSON פגומים.",
- "Error" : "שגיאה",
- "Weather status" : "מצב מזג אוויר",
- "Weather status in your dashboard" : "מצב מזג אוויר בלוח המחוונים שלך.",
- "Detect location" : "איתור מיקום",
- "Set custom address" : "הגדרת כתובת משלך",
- "Favorites" : "מועדפים",
- "More weather for {adr}" : "מזג אוויר נוסף עבור {adr}",
- "Loading weather" : "מזג האוויר נטען",
- "Remove from favorites" : "הסרה מהמועדפים",
- "Add as favorite" : "הוספה למועדפים",
- "You are not logged in." : "לא נכנסת.",
- "There was an error getting the weather status information." : "אירעה שגיאה בקבלת פרטי מצב מזג האוויר.",
- "No weather information found" : "לא נמצאו פרטי מזג אוויר",
- "Location not found" : "המיקום לא נמצא",
- "There was an error setting the location address." : "אירעה שגיאה בהגדרות כתובת המיקום.",
- "There was an error setting the location." : "אירעה שגיאה בהגדרת המיקום.",
- "There was an error saving the mode." : "אירעה שגיאה בשמירת המצב.",
- "There was an error using personal address." : "אירעה שגיאה בשימוש בכתובת האישית.",
- "Set location for weather" : "הגדרת מיקום למזג האוויר"
-},
-"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/weather_status/l10n/he.json b/apps/weather_status/l10n/he.json
deleted file mode 100644
index d1931df8451..00000000000
--- a/apps/weather_status/l10n/he.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "Unknown address" : "כתובת לא ידועה",
- "No result." : "אין תוצאות.",
- "Malformed JSON data." : "נתוני JSON פגומים.",
- "Error" : "שגיאה",
- "Weather status" : "מצב מזג אוויר",
- "Weather status in your dashboard" : "מצב מזג אוויר בלוח המחוונים שלך.",
- "Detect location" : "איתור מיקום",
- "Set custom address" : "הגדרת כתובת משלך",
- "Favorites" : "מועדפים",
- "More weather for {adr}" : "מזג אוויר נוסף עבור {adr}",
- "Loading weather" : "מזג האוויר נטען",
- "Remove from favorites" : "הסרה מהמועדפים",
- "Add as favorite" : "הוספה למועדפים",
- "You are not logged in." : "לא נכנסת.",
- "There was an error getting the weather status information." : "אירעה שגיאה בקבלת פרטי מצב מזג האוויר.",
- "No weather information found" : "לא נמצאו פרטי מזג אוויר",
- "Location not found" : "המיקום לא נמצא",
- "There was an error setting the location address." : "אירעה שגיאה בהגדרות כתובת המיקום.",
- "There was an error setting the location." : "אירעה שגיאה בהגדרת המיקום.",
- "There was an error saving the mode." : "אירעה שגיאה בשמירת המצב.",
- "There was an error using personal address." : "אירעה שגיאה בשימוש בכתובת האישית.",
- "Set location for weather" : "הגדרת מיקום למזג האוויר"
-},"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/weather_status/l10n/hr.js b/apps/weather_status/l10n/hr.js
deleted file mode 100644
index d4ab4f709dc..00000000000
--- a/apps/weather_status/l10n/hr.js
+++ /dev/null
@@ -1,28 +0,0 @@
-OC.L10N.register(
- "weather_status",
- {
- "Unknown address" : "Nepoznata adresa",
- "No result." : "Nema rezultata.",
- "Malformed JSON data." : "Pogrešni JSON podaci.",
- "Error" : "Pogreška",
- "Weather status" : "Status vremenske prognoze",
- "Weather status in your dashboard" : "Status vremenske prognoze u nadzornoj ploči",
- "Detect location" : "Otkrij lokaciju",
- "Set custom address" : "Odaberi prilagođenu adresu",
- "Favorites" : "Favoriti",
- "More weather for {adr}" : "Više vremenskih prognoza za {adr}",
- "Loading weather" : "Učitavanje vremenske prognoze",
- "Remove from favorites" : "Ukloni iz favorita",
- "Add as favorite" : "Dodaj kao omiljeno",
- "You are not logged in." : "Niste prijavljeni.",
- "There was an error getting the weather status information." : "Došlo je do pogreške pri dohvaćanju podataka o vremenskoj prognozi.",
- "No weather information found" : "Nisu pronađene informacije o vremenskoj prognozi",
- "Location not found" : "Lokacija nije pronađena",
- "There was an error setting the location address." : "Došlo je do pogreške pri postavljanju adrese lokacije.",
- "There was an error setting the location." : "Došlo je do pogreške pri postavljanju lokacije.",
- "There was an error saving the mode." : "Došlo je do pogreške pri spremanju načina rada.",
- "There was an error using personal address." : "Došlo je do pogreške pri spremanju osobne adrese.",
- "Set location for weather" : "Postavite lokaciju za vremensku prognozu",
- "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." : "Status vremenske prognoze integriran u aplikaciju nadzorne ploče.\n Lokacija korisnika može se automatski odrediti ili ručno definirati. Zatim se prikazuje vremenska prognoza za sljedećih 6 sati.\n Ovaj se status može integrirati i na druga mjesta, primjerice u aplikaciju Calendar."
-},
-"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/weather_status/l10n/hr.json b/apps/weather_status/l10n/hr.json
deleted file mode 100644
index 4104ce9df00..00000000000
--- a/apps/weather_status/l10n/hr.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{ "translations": {
- "Unknown address" : "Nepoznata adresa",
- "No result." : "Nema rezultata.",
- "Malformed JSON data." : "Pogrešni JSON podaci.",
- "Error" : "Pogreška",
- "Weather status" : "Status vremenske prognoze",
- "Weather status in your dashboard" : "Status vremenske prognoze u nadzornoj ploči",
- "Detect location" : "Otkrij lokaciju",
- "Set custom address" : "Odaberi prilagođenu adresu",
- "Favorites" : "Favoriti",
- "More weather for {adr}" : "Više vremenskih prognoza za {adr}",
- "Loading weather" : "Učitavanje vremenske prognoze",
- "Remove from favorites" : "Ukloni iz favorita",
- "Add as favorite" : "Dodaj kao omiljeno",
- "You are not logged in." : "Niste prijavljeni.",
- "There was an error getting the weather status information." : "Došlo je do pogreške pri dohvaćanju podataka o vremenskoj prognozi.",
- "No weather information found" : "Nisu pronađene informacije o vremenskoj prognozi",
- "Location not found" : "Lokacija nije pronađena",
- "There was an error setting the location address." : "Došlo je do pogreške pri postavljanju adrese lokacije.",
- "There was an error setting the location." : "Došlo je do pogreške pri postavljanju lokacije.",
- "There was an error saving the mode." : "Došlo je do pogreške pri spremanju načina rada.",
- "There was an error using personal address." : "Došlo je do pogreške pri spremanju osobne adrese.",
- "Set location for weather" : "Postavite lokaciju za vremensku prognozu",
- "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." : "Status vremenske prognoze integriran u aplikaciju nadzorne ploče.\n Lokacija korisnika može se automatski odrediti ili ručno definirati. Zatim se prikazuje vremenska prognoza za sljedećih 6 sati.\n Ovaj se status može integrirati i na druga mjesta, primjerice u aplikaciju Calendar."
-},"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/weather_status/l10n/ko.js b/apps/weather_status/l10n/ko.js
index 6f28af490e8..9af97446624 100644
--- a/apps/weather_status/l10n/ko.js
+++ b/apps/weather_status/l10n/ko.js
@@ -7,11 +7,44 @@ OC.L10N.register(
"Error" : "오류",
"Weather status" : "날씨 현황",
"Weather status in your dashboard" : "내 대시보드에 있는 날씨 현황",
- "Detect location" : "위치 감지",
- "Set custom address" : "주소 설정",
- "Favorites" : "즐겨찾기",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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날씨 현황은 달력 앱과 같이 다른 곳에서도 통합될 수 있습니다.",
+ "{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} snow and thunder later today" : "{temperature} {unit} 오늘 오후 늦게 천둥·번개를 동반한 눈",
+ "{temperature} {unit} snow and thunder" : "{temperature} {unit} 천둥·번개를 동반한 눈",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} 오늘 오후 늦게 천둥·번개를 동반한 소나기눈",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} 천둥·번개를 동반한 소나기눈",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} 오늘 오후 늦게 천둥·번개와 극야를 동반한 소나기눈",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} 천둥·번개와 극야를 동반한 소나기눈",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit} 오늘 오후 늦게 소나기눈",
+ "{temperature} {unit} snow showers" : "{temperature} {unit} 소나기눈",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} 오늘 오후 늦게 극야를 동반한 소나기눈",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} 극야를 동반한 소나기눈",
+ "{temperature} {unit} snow later today" : "{temperature} {unit} 오늘 오후 늦게 눈",
+ "{temperature} {unit} snow" : "{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" : "날씨 불러오는 중",
+ "Set location for weather" : "날씨 위치 설정",
"Remove from favorites" : "즐겨찾기에서 제거",
"Add as favorite" : "즐겨찾기로 추가",
"You are not logged in." : "당신은 로그인하지 않았습니다.",
@@ -22,7 +55,9 @@ OC.L10N.register(
"There was an error setting the location." : "주소를 설정하는 동안 오류가 발생했습니다.",
"There was an error saving the mode." : "모드 저장에 오류가 있습니다.",
"There was an error using personal address." : "개인 주소를 사용하는 동안 오류가 발생했습니다.",
- "Set location for weather" : "날씨 위치 설정",
- "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날씨 현황은 달력 앱과 같이 다른 곳에서도 통합될 수 있습니다."
+ "Unknown weather code" : "알 수 없는 날씨 코드",
+ "Detect location" : "위치 감지",
+ "Set custom address" : "주소 설정",
+ "Favorites" : "즐겨찾기"
},
"nplurals=1; plural=0;");
diff --git a/apps/weather_status/l10n/ko.json b/apps/weather_status/l10n/ko.json
index b07606e36ae..1a7bbaa4d64 100644
--- a/apps/weather_status/l10n/ko.json
+++ b/apps/weather_status/l10n/ko.json
@@ -5,11 +5,44 @@
"Error" : "오류",
"Weather status" : "날씨 현황",
"Weather status in your dashboard" : "내 대시보드에 있는 날씨 현황",
- "Detect location" : "위치 감지",
- "Set custom address" : "주소 설정",
- "Favorites" : "즐겨찾기",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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날씨 현황은 달력 앱과 같이 다른 곳에서도 통합될 수 있습니다.",
+ "{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} snow and thunder later today" : "{temperature} {unit} 오늘 오후 늦게 천둥·번개를 동반한 눈",
+ "{temperature} {unit} snow and thunder" : "{temperature} {unit} 천둥·번개를 동반한 눈",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} 오늘 오후 늦게 천둥·번개를 동반한 소나기눈",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} 천둥·번개를 동반한 소나기눈",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} 오늘 오후 늦게 천둥·번개와 극야를 동반한 소나기눈",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} 천둥·번개와 극야를 동반한 소나기눈",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit} 오늘 오후 늦게 소나기눈",
+ "{temperature} {unit} snow showers" : "{temperature} {unit} 소나기눈",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} 오늘 오후 늦게 극야를 동반한 소나기눈",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} 극야를 동반한 소나기눈",
+ "{temperature} {unit} snow later today" : "{temperature} {unit} 오늘 오후 늦게 눈",
+ "{temperature} {unit} snow" : "{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" : "날씨 불러오는 중",
+ "Set location for weather" : "날씨 위치 설정",
"Remove from favorites" : "즐겨찾기에서 제거",
"Add as favorite" : "즐겨찾기로 추가",
"You are not logged in." : "당신은 로그인하지 않았습니다.",
@@ -20,7 +53,9 @@
"There was an error setting the location." : "주소를 설정하는 동안 오류가 발생했습니다.",
"There was an error saving the mode." : "모드 저장에 오류가 있습니다.",
"There was an error using personal address." : "개인 주소를 사용하는 동안 오류가 발생했습니다.",
- "Set location for weather" : "날씨 위치 설정",
- "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날씨 현황은 달력 앱과 같이 다른 곳에서도 통합될 수 있습니다."
+ "Unknown weather code" : "알 수 없는 날씨 코드",
+ "Detect location" : "위치 감지",
+ "Set custom address" : "주소 설정",
+ "Favorites" : "즐겨찾기"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/weather_status/l10n/nl.js b/apps/weather_status/l10n/nl.js
index cc1d6f74cd7..44c10c74402 100644
--- a/apps/weather_status/l10n/nl.js
+++ b/apps/weather_status/l10n/nl.js
@@ -7,12 +7,21 @@ OC.L10N.register(
"Error" : "Fout",
"Weather status" : "Weerstatus",
"Weather status in your dashboard" : "Weerstatus in je dashboard",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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." : "Weerstatus geïntegreerd in de Dashboard-app.\n De geografische locatie kan automatisch worden bepaald of handmatig worden gedefinieerd. Vervolgens wordt een voorspelling van 6 uur weergegeven.\n Deze status kan ook op andere plaatsen worden geïntegreerd, zoals de Agenda-app.",
"{temperature} {unit} clear sky later today" : "{temperature}{unit} later vandaag onbewolkt ",
"{temperature} {unit} clear sky" : "{temperature}{unit} onbewolkt",
"{temperature} {unit} cloudy later today" : "{temperature} {unit} bewolkt later vandaag",
"{temperature} {unit} cloudy" : "{temperature} {unit} bewolkt",
"{temperature} {unit} snow and thunder later today" : "{temperature}{unit} sneeuw en onweer later vandaag",
"{temperature} {unit} snow and thunder" : "{temperature}{unit} sneeuw en onweer",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} sneeuwbuien en onweer later vandaag",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} sneeuwbuien en onweer",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} sneeuwbuien, onweer en poolschemering later vandaag",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} sneeuwbuien, onweer en poolschemering",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit} snow showers later today",
+ "{temperature} {unit} snow showers" : "{temperature} {unit} sneeuwbuien",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} sneeuwbuien en poolschemering later vandaag",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} sneeuwbuien en poolschemering",
"{temperature} {unit} snow later today" : "{temperature}{unit} sneeuw later vandaag",
"{temperature} {unit} snow" : "{temperature}{unit}sneeuw",
"{temperature} {unit} fair weather later today" : "{temperature} {unit} lekker weer later vandaag",
@@ -46,6 +55,7 @@ OC.L10N.register(
"There was an error setting the location." : "Er is een fout opgetreden bij het vastleggen van de locatie.",
"There was an error saving the mode." : "Er was een fout in het vastleggen van de modus.",
"There was an error using personal address." : "Er was een fout bij het gebruiken van je persoonlijke adres.",
+ "Unknown weather code" : "Onbekende weercode",
"Detect location" : "Locatie detecteren",
"Set custom address" : "Aangepast adres instellen",
"Favorites" : "Favorieten"
diff --git a/apps/weather_status/l10n/nl.json b/apps/weather_status/l10n/nl.json
index 231859c70ee..2786990bf5c 100644
--- a/apps/weather_status/l10n/nl.json
+++ b/apps/weather_status/l10n/nl.json
@@ -5,12 +5,21 @@
"Error" : "Fout",
"Weather status" : "Weerstatus",
"Weather status in your dashboard" : "Weerstatus in je dashboard",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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." : "Weerstatus geïntegreerd in de Dashboard-app.\n De geografische locatie kan automatisch worden bepaald of handmatig worden gedefinieerd. Vervolgens wordt een voorspelling van 6 uur weergegeven.\n Deze status kan ook op andere plaatsen worden geïntegreerd, zoals de Agenda-app.",
"{temperature} {unit} clear sky later today" : "{temperature}{unit} later vandaag onbewolkt ",
"{temperature} {unit} clear sky" : "{temperature}{unit} onbewolkt",
"{temperature} {unit} cloudy later today" : "{temperature} {unit} bewolkt later vandaag",
"{temperature} {unit} cloudy" : "{temperature} {unit} bewolkt",
"{temperature} {unit} snow and thunder later today" : "{temperature}{unit} sneeuw en onweer later vandaag",
"{temperature} {unit} snow and thunder" : "{temperature}{unit} sneeuw en onweer",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} sneeuwbuien en onweer later vandaag",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} sneeuwbuien en onweer",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} sneeuwbuien, onweer en poolschemering later vandaag",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} sneeuwbuien, onweer en poolschemering",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit} snow showers later today",
+ "{temperature} {unit} snow showers" : "{temperature} {unit} sneeuwbuien",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} sneeuwbuien en poolschemering later vandaag",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} sneeuwbuien en poolschemering",
"{temperature} {unit} snow later today" : "{temperature}{unit} sneeuw later vandaag",
"{temperature} {unit} snow" : "{temperature}{unit}sneeuw",
"{temperature} {unit} fair weather later today" : "{temperature} {unit} lekker weer later vandaag",
@@ -44,6 +53,7 @@
"There was an error setting the location." : "Er is een fout opgetreden bij het vastleggen van de locatie.",
"There was an error saving the mode." : "Er was een fout in het vastleggen van de modus.",
"There was an error using personal address." : "Er was een fout bij het gebruiken van je persoonlijke adres.",
+ "Unknown weather code" : "Onbekende weercode",
"Detect location" : "Locatie detecteren",
"Set custom address" : "Aangepast adres instellen",
"Favorites" : "Favorieten"
diff --git a/apps/weather_status/l10n/pt_BR.js b/apps/weather_status/l10n/pt_BR.js
index 1a699e5b1c0..439fd045f4e 100644
--- a/apps/weather_status/l10n/pt_BR.js
+++ b/apps/weather_status/l10n/pt_BR.js
@@ -5,43 +5,43 @@ OC.L10N.register(
"No result." : "Nenhum resultado.",
"Malformed JSON data." : "Dados JSON mal formatados.",
"Error" : "Erro",
- "Weather status" : "Status do tempo",
- "Weather status in your dashboard" : "Status do tempo no seu painel",
- "Weather status integrated in the Dashboard app.\n The geographic location 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." : "Status do tempo integrado no aplicativo Dashboard. \n A localização geográfica pode ser determinada automaticamente ou definida manualmente. Uma previsão de 6 horas é então exibida. \n Esse status também pode ser integrado em outros locais, como o aplicativo Calendário.",
+ "Weather status" : "Status do tempo meteorológico",
+ "Weather status in your dashboard" : "Status do tempo meteorológico no seu painel",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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." : "Status do tempo meteorológico integrado no aplicativo Painel. \n A localização geográfica pode ser determinada automaticamente ou definida manualmente. Em seguida, é exibida uma previsão de 6 horas.\n Este status também pode ser integrado em outros locais, como o aplicativo Calendário.",
"{temperature} {unit} clear sky later today" : "{temperature} {unit} céu claro mais tarde hoje",
"{temperature} {unit} clear sky" : "{temperature} {unit} céu claro",
"{temperature} {unit} cloudy later today" : "{temperature} {unit} nublado mais tarde hoje",
"{temperature} {unit} cloudy" : "{temperature} {unit} nublado",
- "{temperature} {unit} snow and thunder later today" : "{temperature} {unit}neve e trovoadas ainda hoje",
+ "{temperature} {unit} snow and thunder later today" : "{temperature} {unit} neve e trovoada mais tarde hoje",
"{temperature} {unit} snow and thunder" : "{temperature} {unit} neve e trovoadas",
- "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit}pancadas de neve e trovoadas ainda hoje ",
- "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} pancadas de neve e trovoadas",
- "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit}pancadas de neve, trovoadas e crepúsculo polar ainda hoje ",
- "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} pancadas de neve, trovoadas e crepúsculo polar",
- "{temperature} {unit} snow showers later today" : "{temperature} {unit} pancadas de neve ainda hoje",
- "{temperature} {unit} snow showers" : "{temperature} {unit} pancadas de neve",
- "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} pancadas de neve e crepúsculo polar ainda hoje",
- "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} pancadas de neve e crepúsculo polar",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} nevascas e trovoadas mais tarde hoje",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} nevascas e trovoadas",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} nevascas, trovoadas e crepúsculo polar mais tarde hoje",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} nevascas, trovoadas e crepúsculo polar",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit} nevascas mais tarde hoje",
+ "{temperature} {unit} snow showers" : "{temperature} {unit} nevascas",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} nevascas e crepúsculo polar mais tarde hoje",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} nevascas e crepúsculo polar",
"{temperature} {unit} snow later today" : "{temperature} {unit} neve mais tarde hoje",
"{temperature} {unit} snow" : "{temperature} {unit} neve",
- "{temperature} {unit} fair weather later today" : "{temperature} {unit} tempo bom mais tarde hoje",
- "{temperature} {unit} fair weather" : "{temperature} {unit} tempo bom",
+ "{temperature} {unit} fair weather later today" : "{temperature} {unit} bom tempo mais tarde hoje",
+ "{temperature} {unit} fair weather" : "{temperature} {unit} bom tempo",
"{temperature} {unit} partly cloudy later today" : "{temperature} {unit} parcialmente nublado hoje mais tarde",
"{temperature} {unit} partly cloudy" : "{temperature} {unit} parcialmente nublado",
"{temperature} {unit} foggy later today" : "{temperature} {unit} nevoeiro mais tarde hoje",
"{temperature} {unit} foggy" : "{temperature} {unit} nevoeiro",
- "{temperature} {unit} light rainfall later today" : "{temperature} {unit} chuva fraca hoje mais tarde",
- "{temperature} {unit} light rainfall" : "{temperature} {unit} chuva fraca hoje mais tarde",
- "{temperature} {unit} rainfall later today" : "{temperature} {unit} chuva fraca hoje mais tarde",
- "{temperature} {unit} rainfall" : "{temperature} {unit} precipitação",
+ "{temperature} {unit} light rainfall later today" : "{temperature} {unit} chuva fraca mais tarde hoje",
+ "{temperature} {unit} light rainfall" : "{temperature} {unit} chuva fraca",
+ "{temperature} {unit} rainfall later today" : "{temperature} {unit} chuva mais tarde hoje",
+ "{temperature} {unit} rainfall" : "{temperature} {unit} chuva",
"{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} chuva forte mais tarde hoje",
- "{temperature} {unit} heavy rainfall" : "{temperature} {unit} heavy rainfall",
+ "{temperature} {unit} heavy rainfall" : "{temperature} {unit} chuva forte",
"{temperature} {unit} rainfall showers later today" : "{temperature} {unit} pancadas de chuva mais tarde hoje",
"{temperature} {unit} rainfall showers" : "{temperature} {unit} pancadas de chuva",
"{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} pancadas de chuva leves mais tarde hoje",
- "{temperature} {unit} light rainfall showers" : "{temperature} {unit} chuvas leves",
- "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} pancadas de chuva forte mais tarde hoje",
- "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} chuvas fortes",
+ "{temperature} {unit} light rainfall showers" : "{temperature} {unit} pancadas de chuva leves",
+ "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} pancadas de chuva fortes mais tarde hoje",
+ "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} pancadas de chuva fortes",
"More weather for {adr}" : "Ver mais tempo para {adr}",
"Loading weather" : "Carregando tempo",
"Set location for weather" : "Definir localização para o tempo",
diff --git a/apps/weather_status/l10n/pt_BR.json b/apps/weather_status/l10n/pt_BR.json
index 3a1789d9db9..82846701716 100644
--- a/apps/weather_status/l10n/pt_BR.json
+++ b/apps/weather_status/l10n/pt_BR.json
@@ -3,43 +3,43 @@
"No result." : "Nenhum resultado.",
"Malformed JSON data." : "Dados JSON mal formatados.",
"Error" : "Erro",
- "Weather status" : "Status do tempo",
- "Weather status in your dashboard" : "Status do tempo no seu painel",
- "Weather status integrated in the Dashboard app.\n The geographic location 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." : "Status do tempo integrado no aplicativo Dashboard. \n A localização geográfica pode ser determinada automaticamente ou definida manualmente. Uma previsão de 6 horas é então exibida. \n Esse status também pode ser integrado em outros locais, como o aplicativo Calendário.",
+ "Weather status" : "Status do tempo meteorológico",
+ "Weather status in your dashboard" : "Status do tempo meteorológico no seu painel",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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." : "Status do tempo meteorológico integrado no aplicativo Painel. \n A localização geográfica pode ser determinada automaticamente ou definida manualmente. Em seguida, é exibida uma previsão de 6 horas.\n Este status também pode ser integrado em outros locais, como o aplicativo Calendário.",
"{temperature} {unit} clear sky later today" : "{temperature} {unit} céu claro mais tarde hoje",
"{temperature} {unit} clear sky" : "{temperature} {unit} céu claro",
"{temperature} {unit} cloudy later today" : "{temperature} {unit} nublado mais tarde hoje",
"{temperature} {unit} cloudy" : "{temperature} {unit} nublado",
- "{temperature} {unit} snow and thunder later today" : "{temperature} {unit}neve e trovoadas ainda hoje",
+ "{temperature} {unit} snow and thunder later today" : "{temperature} {unit} neve e trovoada mais tarde hoje",
"{temperature} {unit} snow and thunder" : "{temperature} {unit} neve e trovoadas",
- "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit}pancadas de neve e trovoadas ainda hoje ",
- "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} pancadas de neve e trovoadas",
- "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit}pancadas de neve, trovoadas e crepúsculo polar ainda hoje ",
- "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} pancadas de neve, trovoadas e crepúsculo polar",
- "{temperature} {unit} snow showers later today" : "{temperature} {unit} pancadas de neve ainda hoje",
- "{temperature} {unit} snow showers" : "{temperature} {unit} pancadas de neve",
- "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} pancadas de neve e crepúsculo polar ainda hoje",
- "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} pancadas de neve e crepúsculo polar",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit} nevascas e trovoadas mais tarde hoje",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit} nevascas e trovoadas",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit} nevascas, trovoadas e crepúsculo polar mais tarde hoje",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit} nevascas, trovoadas e crepúsculo polar",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit} nevascas mais tarde hoje",
+ "{temperature} {unit} snow showers" : "{temperature} {unit} nevascas",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit} nevascas e crepúsculo polar mais tarde hoje",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit} nevascas e crepúsculo polar",
"{temperature} {unit} snow later today" : "{temperature} {unit} neve mais tarde hoje",
"{temperature} {unit} snow" : "{temperature} {unit} neve",
- "{temperature} {unit} fair weather later today" : "{temperature} {unit} tempo bom mais tarde hoje",
- "{temperature} {unit} fair weather" : "{temperature} {unit} tempo bom",
+ "{temperature} {unit} fair weather later today" : "{temperature} {unit} bom tempo mais tarde hoje",
+ "{temperature} {unit} fair weather" : "{temperature} {unit} bom tempo",
"{temperature} {unit} partly cloudy later today" : "{temperature} {unit} parcialmente nublado hoje mais tarde",
"{temperature} {unit} partly cloudy" : "{temperature} {unit} parcialmente nublado",
"{temperature} {unit} foggy later today" : "{temperature} {unit} nevoeiro mais tarde hoje",
"{temperature} {unit} foggy" : "{temperature} {unit} nevoeiro",
- "{temperature} {unit} light rainfall later today" : "{temperature} {unit} chuva fraca hoje mais tarde",
- "{temperature} {unit} light rainfall" : "{temperature} {unit} chuva fraca hoje mais tarde",
- "{temperature} {unit} rainfall later today" : "{temperature} {unit} chuva fraca hoje mais tarde",
- "{temperature} {unit} rainfall" : "{temperature} {unit} precipitação",
+ "{temperature} {unit} light rainfall later today" : "{temperature} {unit} chuva fraca mais tarde hoje",
+ "{temperature} {unit} light rainfall" : "{temperature} {unit} chuva fraca",
+ "{temperature} {unit} rainfall later today" : "{temperature} {unit} chuva mais tarde hoje",
+ "{temperature} {unit} rainfall" : "{temperature} {unit} chuva",
"{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} chuva forte mais tarde hoje",
- "{temperature} {unit} heavy rainfall" : "{temperature} {unit} heavy rainfall",
+ "{temperature} {unit} heavy rainfall" : "{temperature} {unit} chuva forte",
"{temperature} {unit} rainfall showers later today" : "{temperature} {unit} pancadas de chuva mais tarde hoje",
"{temperature} {unit} rainfall showers" : "{temperature} {unit} pancadas de chuva",
"{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} pancadas de chuva leves mais tarde hoje",
- "{temperature} {unit} light rainfall showers" : "{temperature} {unit} chuvas leves",
- "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} pancadas de chuva forte mais tarde hoje",
- "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} chuvas fortes",
+ "{temperature} {unit} light rainfall showers" : "{temperature} {unit} pancadas de chuva leves",
+ "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} pancadas de chuva fortes mais tarde hoje",
+ "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} pancadas de chuva fortes",
"More weather for {adr}" : "Ver mais tempo para {adr}",
"Loading weather" : "Carregando tempo",
"Set location for weather" : "Definir localização para o tempo",
diff --git a/apps/weather_status/l10n/ru.js b/apps/weather_status/l10n/ru.js
index 0cdcea62e40..7fb7690025c 100644
--- a/apps/weather_status/l10n/ru.js
+++ b/apps/weather_status/l10n/ru.js
@@ -7,10 +7,23 @@ OC.L10N.register(
"Error" : "Ошибка",
"Weather status" : "Прогноз погоды",
"Weather status in your dashboard" : "Виджет для просмотра прогноза погоды",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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 Он также может быть интегрирован в другие приложения, например в «Календарь».",
"{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} snow and thunder later today" : "{temperature} {unit}, позже сегодня снег с грозой",
+ "{temperature} {unit} snow and thunder" : "{temperature} {unit}, снег с грозой",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit}, позже сегодня кратковременный снег с грозой",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit}, кратковременный снег с грозой",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit}, позже сегодня кратковременный снег, гроза и полярные сумерки",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit}, кратковременный снег, гроза и полярные сумерки",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit}, позже сегодня кратковременный снег",
+ "{temperature} {unit} snow showers" : "{temperature} {unit}, кратковременный снег",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit}, позже сегодня кратковременный снег и полярные сумерки",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit}, кратковременный снег и полярные сумерки",
+ "{temperature} {unit} snow later today" : "{temperature} {unit}, позже сегодня снег",
+ "{temperature} {unit} snow" : "{temperature} {unit}, снег",
"{temperature} {unit} fair weather later today" : "{temperature} {unit} сегодня обещают хорошую погоду",
"{temperature} {unit} fair weather" : "{temperature} {unit} хорошая погода",
"{temperature} {unit} partly cloudy later today" : "{temperature} {unit} сегодня обещают местами облачно",
@@ -42,6 +55,7 @@ OC.L10N.register(
"There was an error setting the location." : "Не удалось настроить местоположение.",
"There was an error saving the mode." : "Не удалось сохранить режим.",
"There was an error using personal address." : "Не удалось использовать личный адрес.",
+ "Unknown weather code" : "Неизвестный код погоды",
"Detect location" : "Определить местоположение",
"Set custom address" : "Задать адрес",
"Favorites" : "Избранное"
diff --git a/apps/weather_status/l10n/ru.json b/apps/weather_status/l10n/ru.json
index 44664f978db..0156625bf7a 100644
--- a/apps/weather_status/l10n/ru.json
+++ b/apps/weather_status/l10n/ru.json
@@ -5,10 +5,23 @@
"Error" : "Ошибка",
"Weather status" : "Прогноз погоды",
"Weather status in your dashboard" : "Виджет для просмотра прогноза погоды",
+ "Weather status integrated in the Dashboard app.\n The geographic location 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 Он также может быть интегрирован в другие приложения, например в «Календарь».",
"{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} snow and thunder later today" : "{temperature} {unit}, позже сегодня снег с грозой",
+ "{temperature} {unit} snow and thunder" : "{temperature} {unit}, снег с грозой",
+ "{temperature} {unit} snow showers and thunder later today" : "{temperature} {unit}, позже сегодня кратковременный снег с грозой",
+ "{temperature} {unit} snow showers and thunder" : "{temperature} {unit}, кратковременный снег с грозой",
+ "{temperature} {unit} snow showers, thunder and polar twilight later today" : "{temperature} {unit}, позже сегодня кратковременный снег, гроза и полярные сумерки",
+ "{temperature} {unit} snow showers, thunder and polar twilight" : "{temperature} {unit}, кратковременный снег, гроза и полярные сумерки",
+ "{temperature} {unit} snow showers later today" : "{temperature} {unit}, позже сегодня кратковременный снег",
+ "{temperature} {unit} snow showers" : "{temperature} {unit}, кратковременный снег",
+ "{temperature} {unit} snow showers and polar twilight later today" : "{temperature} {unit}, позже сегодня кратковременный снег и полярные сумерки",
+ "{temperature} {unit} snow showers and polar twilight" : "{temperature} {unit}, кратковременный снег и полярные сумерки",
+ "{temperature} {unit} snow later today" : "{temperature} {unit}, позже сегодня снег",
+ "{temperature} {unit} snow" : "{temperature} {unit}, снег",
"{temperature} {unit} fair weather later today" : "{temperature} {unit} сегодня обещают хорошую погоду",
"{temperature} {unit} fair weather" : "{temperature} {unit} хорошая погода",
"{temperature} {unit} partly cloudy later today" : "{temperature} {unit} сегодня обещают местами облачно",
@@ -40,6 +53,7 @@
"There was an error setting the location." : "Не удалось настроить местоположение.",
"There was an error saving the mode." : "Не удалось сохранить режим.",
"There was an error using personal address." : "Не удалось использовать личный адрес.",
+ "Unknown weather code" : "Неизвестный код погоды",
"Detect location" : "Определить местоположение",
"Set custom address" : "Задать адрес",
"Favorites" : "Избранное"
diff --git a/apps/weather_status/l10n/sc.js b/apps/weather_status/l10n/sc.js
deleted file mode 100644
index 7730aaa768b..00000000000
--- a/apps/weather_status/l10n/sc.js
+++ /dev/null
@@ -1,28 +0,0 @@
-OC.L10N.register(
- "weather_status",
- {
- "Unknown address" : "Indiritzu disconnotu",
- "No result." : "Perunu resultadu.",
- "Malformed JSON data." : "Datos JSON non bàlidos.",
- "Error" : "Errore",
- "Weather status" : "Istadu de su tempus",
- "Weather status in your dashboard" : "Istadu de su tempus in su pannellu de controllu tuo",
- "Detect location" : "Rileva positzione",
- "Set custom address" : "Cunfigura indiritzu personalizadu",
- "Favorites" : "Preferidos",
- "More weather for {adr}" : "Àteru tempus pro {adr}",
- "Loading weather" : "Carrigamentu tempus",
- "Remove from favorites" : "Boga·nche dae preferidos",
- "Add as favorite" : "Agiunghe comente preferidu",
- "You are not logged in." : "No as fatu s'atzessu.",
- "There was an error getting the weather status information." : "B'at àpidu un'errore in su recùperu de is informatziones de su tempus.",
- "No weather information found" : "Peruna informatzione de su tempus agatada",
- "Location not found" : "Positzione no agatada",
- "There was an error setting the location address." : "B'at àpidu un'errore impostende s'indiritzu de sa positzione.",
- "There was an error setting the location." : "B'at àpidu un'errore impostende sa positzione.",
- "There was an error saving the mode." : "B'at àpidu un'errore sarvende sa modalidade.",
- "There was an error using personal address." : "B'at àpidu un'errore impreende s'indiritzu personale.",
- "Set location for weather" : "Cunfigura sa positzione pro su tempus",
- "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." : "Istadu de su tempus integradu in s'aplicatzione de su pannellu de controllu.\n Sa positzione de s'utente si podet determinare in automàticu o definire a manu. Luegu si mustrant previsiones pro 6 oras.\n S'istadu si podet integrare puru in àteros logos comente in s'aplicatzione de su calendàriu."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/weather_status/l10n/sc.json b/apps/weather_status/l10n/sc.json
deleted file mode 100644
index 25611ffde9d..00000000000
--- a/apps/weather_status/l10n/sc.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{ "translations": {
- "Unknown address" : "Indiritzu disconnotu",
- "No result." : "Perunu resultadu.",
- "Malformed JSON data." : "Datos JSON non bàlidos.",
- "Error" : "Errore",
- "Weather status" : "Istadu de su tempus",
- "Weather status in your dashboard" : "Istadu de su tempus in su pannellu de controllu tuo",
- "Detect location" : "Rileva positzione",
- "Set custom address" : "Cunfigura indiritzu personalizadu",
- "Favorites" : "Preferidos",
- "More weather for {adr}" : "Àteru tempus pro {adr}",
- "Loading weather" : "Carrigamentu tempus",
- "Remove from favorites" : "Boga·nche dae preferidos",
- "Add as favorite" : "Agiunghe comente preferidu",
- "You are not logged in." : "No as fatu s'atzessu.",
- "There was an error getting the weather status information." : "B'at àpidu un'errore in su recùperu de is informatziones de su tempus.",
- "No weather information found" : "Peruna informatzione de su tempus agatada",
- "Location not found" : "Positzione no agatada",
- "There was an error setting the location address." : "B'at àpidu un'errore impostende s'indiritzu de sa positzione.",
- "There was an error setting the location." : "B'at àpidu un'errore impostende sa positzione.",
- "There was an error saving the mode." : "B'at àpidu un'errore sarvende sa modalidade.",
- "There was an error using personal address." : "B'at àpidu un'errore impreende s'indiritzu personale.",
- "Set location for weather" : "Cunfigura sa positzione pro su tempus",
- "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." : "Istadu de su tempus integradu in s'aplicatzione de su pannellu de controllu.\n Sa positzione de s'utente si podet determinare in automàticu o definire a manu. Luegu si mustrant previsiones pro 6 oras.\n S'istadu si podet integrare puru in àteros logos comente in s'aplicatzione de su calendàriu."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/webhook_listeners/l10n/et_EE.js b/apps/webhook_listeners/l10n/et_EE.js
new file mode 100644
index 00000000000..39fc925dfc4
--- /dev/null
+++ b/apps/webhook_listeners/l10n/et_EE.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "webhook_listeners",
+ {
+ "Webhooks" : "Veebihaagid",
+ "Nextcloud webhook support" : "Veebihaakide (webhook) tugi Nextcloudi jaoks"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/webhook_listeners/l10n/et_EE.json b/apps/webhook_listeners/l10n/et_EE.json
new file mode 100644
index 00000000000..62ac64b0765
--- /dev/null
+++ b/apps/webhook_listeners/l10n/et_EE.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "Webhooks" : "Veebihaagid",
+ "Nextcloud webhook support" : "Veebihaakide (webhook) tugi Nextcloudi jaoks"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/webhook_listeners/l10n/ja.js b/apps/webhook_listeners/l10n/ja.js
new file mode 100644
index 00000000000..43230a54aa6
--- /dev/null
+++ b/apps/webhook_listeners/l10n/ja.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "webhook_listeners",
+ {
+ "Webhooks" : "Webhooks",
+ "Nextcloud webhook support" : "Nextcloud webhook サポート"
+},
+"nplurals=1; plural=0;");
diff --git a/apps/webhook_listeners/l10n/ja.json b/apps/webhook_listeners/l10n/ja.json
new file mode 100644
index 00000000000..a1cfd883551
--- /dev/null
+++ b/apps/webhook_listeners/l10n/ja.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "Webhooks" : "Webhooks",
+ "Nextcloud webhook support" : "Nextcloud webhook サポート"
+},"pluralForm" :"nplurals=1; plural=0;"
+} \ No newline at end of file
diff --git a/apps/webhook_listeners/l10n/nl.js b/apps/webhook_listeners/l10n/nl.js
new file mode 100644
index 00000000000..f5599bc67cf
--- /dev/null
+++ b/apps/webhook_listeners/l10n/nl.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "webhook_listeners",
+ {
+ "Webhooks" : "Webhooks",
+ "Nextcloud webhook support" : "Nextcloud ondersteuning voor webhooks"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/webhook_listeners/l10n/nl.json b/apps/webhook_listeners/l10n/nl.json
new file mode 100644
index 00000000000..b5c62c28cdd
--- /dev/null
+++ b/apps/webhook_listeners/l10n/nl.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "Webhooks" : "Webhooks",
+ "Nextcloud webhook support" : "Nextcloud ondersteuning voor webhooks"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/webhook_listeners/lib/BackgroundJobs/WebhookCall.php b/apps/webhook_listeners/lib/BackgroundJobs/WebhookCall.php
index a2619e0db47..c8d06ca7047 100644
--- a/apps/webhook_listeners/lib/BackgroundJobs/WebhookCall.php
+++ b/apps/webhook_listeners/lib/BackgroundJobs/WebhookCall.php
@@ -74,7 +74,8 @@ class WebhookCall extends QueuedJob {
} elseif (!$exApp['enabled']) {
throw new RuntimeException('ExApp ' . $exAppId . ' is disabled.');
}
- $response = $appApiFunctions->exAppRequest($exAppId, $webhookUri, $webhookListener->getUserId(), $webhookListener->getHttpMethod(), [], $options);
+ $userId = ($data['user'] ?? [])['uid'] ?? null;
+ $response = $appApiFunctions->exAppRequest($exAppId, $webhookUri, $userId, $webhookListener->getHttpMethod(), [], $options);
if (is_array($response) && isset($response['error'])) {
throw new RuntimeException(sprintf('Error during request to ExApp(%s): %s', $exAppId, $response['error']));
}
diff --git a/apps/webhook_listeners/lib/Controller/WebhooksController.php b/apps/webhook_listeners/lib/Controller/WebhooksController.php
index cf541487951..97bc8aa875e 100644
--- a/apps/webhook_listeners/lib/Controller/WebhooksController.php
+++ b/apps/webhook_listeners/lib/Controller/WebhooksController.php
@@ -137,7 +137,7 @@ class WebhooksController extends OCSController {
): DataResponse {
$appId = null;
if ($this->session->get('app_api') === true) {
- $appId = $this->request->getHeader('EX-APP-ID');
+ $appId = $this->request->getHeader('ex-app-id');
}
try {
$authMethod = AuthMethod::from($authMethod ?? AuthMethod::None->value);
@@ -206,7 +206,7 @@ class WebhooksController extends OCSController {
): DataResponse {
$appId = null;
if ($this->session->get('app_api') === true) {
- $appId = $this->request->getHeader('EX-APP-ID');
+ $appId = $this->request->getHeader('ex-app-id');
}
try {
$authMethod = AuthMethod::from($authMethod ?? AuthMethod::None->value);
@@ -271,7 +271,7 @@ class WebhooksController extends OCSController {
/**
* Remove all existing webhook registration mapped to an AppAPI app id
*
- * @param string $appid id of the app, as in the EX-APP-ID for creation
+ * @param string $appid id of the app, as in the ex-app-id for creation
*
* @return DataResponse<Http::STATUS_OK, int, array{}>
*
diff --git a/apps/webhook_listeners/lib/Listener/WebhooksEventListener.php b/apps/webhook_listeners/lib/Listener/WebhooksEventListener.php
index 6b40af1463e..6cd3af98368 100644
--- a/apps/webhook_listeners/lib/Listener/WebhooksEventListener.php
+++ b/apps/webhook_listeners/lib/Listener/WebhooksEventListener.php
@@ -41,6 +41,7 @@ class WebhooksEventListener implements IEventListener {
// TODO add group membership to be able to filter on it
$data = [
'event' => $this->serializeEvent($event),
+ /* Do not remove 'user' from here, see BackgroundJobs/WebhookCall.php */
'user' => (is_null($user) ? null : JsonSerializer::serializeUser($user)),
'time' => time(),
];
diff --git a/apps/webhook_listeners/openapi.json b/apps/webhook_listeners/openapi.json
index 9e7acc5c6f8..340d2d21337 100644
--- a/apps/webhook_listeners/openapi.json
+++ b/apps/webhook_listeners/openapi.json
@@ -121,7 +121,8 @@
"description": "The callback URI to filter by",
"schema": {
"type": "string",
- "nullable": true
+ "nullable": true,
+ "default": null
}
},
{
@@ -255,6 +256,13 @@
},
"parameters": [
{
+ "name": "ex-app-id",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
@@ -548,6 +556,13 @@
}
},
{
+ "name": "ex-app-id",
+ "in": "header",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
"name": "OCS-APIRequest",
"in": "header",
"description": "Required to be true for the API request to pass",
@@ -794,7 +809,7 @@
{
"name": "appid",
"in": "path",
- "description": "id of the app, as in the EX-APP-ID for creation",
+ "description": "id of the app, as in the ex-app-id for creation",
"required": true,
"schema": {
"type": "string"
diff --git a/apps/webhook_listeners/tests/Db/WebhookListenerMapperTest.php b/apps/webhook_listeners/tests/Db/WebhookListenerMapperTest.php
index be99bccb677..45d66090eae 100644
--- a/apps/webhook_listeners/tests/Db/WebhookListenerMapperTest.php
+++ b/apps/webhook_listeners/tests/Db/WebhookListenerMapperTest.php
@@ -44,7 +44,7 @@ class WebhookListenerMapperTest extends TestCase {
parent::tearDown();
}
- protected function pruneTables() {
+ protected function pruneTables(): void {
$query = $this->connection->getQueryBuilder();
$query->delete(WebhookListenerMapper::TABLE_NAME)->executeStatement();
}
diff --git a/apps/workflowengine/l10n/bg.js b/apps/workflowengine/l10n/bg.js
index fa3ac3b5022..ab2ed6cb1a4 100644
--- a/apps/workflowengine/l10n/bg.js
+++ b/apps/workflowengine/l10n/bg.js
@@ -44,10 +44,11 @@ OC.L10N.register(
"The provided check value is too long" : "Предоставената стойност за проверка е твърде дълга",
"Check #%s does not exist" : "Проверка #%s не съществува",
"Check %s is invalid or does not exist" : "Проверка %s не е валидна или несъществува",
- "Flow" : "Поток",
+ "Flow" : "Автоматизация",
"Nextcloud workflow engine" : "Система на работния поток на Nextcloud",
"Select a filter" : "Избор на филтър",
"Select a comparator" : "Избор на инструмент за сравняване",
+ "Remove filter" : "Премахни филтър",
"Folder" : "Папка",
"Images" : "Изображения",
"Office documents" : "Офис документи",
@@ -69,7 +70,7 @@ OC.L10N.register(
"Select groups" : "Избери Групи",
"Groups" : "Групи",
"At least one event must be selected" : "Трябва да бъде избрано поне едно събитие",
- "Add new flow" : "Добавяне на нов поток",
+ "Add new flow" : "Добавяне на нова автоматизация",
"The configuration is invalid" : "Конфигурацията е невалидна",
"Active" : "Активен",
"Save" : "Запази",
@@ -77,14 +78,17 @@ OC.L10N.register(
"and" : "и",
"Cancel" : "Отказ",
"Delete" : "Изтриване",
- "Available flows" : "Налични потоци",
+ "Available flows" : "Налични автоматизации",
"For details on how to write your own flow, check out the development documentation." : "За подробности как да напишете свой собствен поток, вижте документацията за разработка.",
- "More flows" : "Още потоци",
+ "No flows installed" : "Няма инсталирани автоматизации",
+ "Ask your administrator to install new flows." : "Помолете системния администратор да инсталира нови автоматизации",
+ "More flows" : "Още поточни автоматизации",
"Browse the App Store" : "Преглед на магазина за приложения /App Store/",
"Show less" : "Покажи по-малко",
"Show more" : "Покажи повече",
- "Configured flows" : "Конфигурирани потоци",
- "Your flows" : "Вашите потоци ",
+ "Configured flows" : "Конфигурирани поточни автоматизации",
+ "Your flows" : "Вашите автоматизации",
+ "No flows configured" : "Няма конфигурирани автоматизации",
"matches" : "съвпадения",
"does not match" : "не съвпада",
"is" : "е",
diff --git a/apps/workflowengine/l10n/bg.json b/apps/workflowengine/l10n/bg.json
index 90d90b480a7..44c7d29a6f5 100644
--- a/apps/workflowengine/l10n/bg.json
+++ b/apps/workflowengine/l10n/bg.json
@@ -42,10 +42,11 @@
"The provided check value is too long" : "Предоставената стойност за проверка е твърде дълга",
"Check #%s does not exist" : "Проверка #%s не съществува",
"Check %s is invalid or does not exist" : "Проверка %s не е валидна или несъществува",
- "Flow" : "Поток",
+ "Flow" : "Автоматизация",
"Nextcloud workflow engine" : "Система на работния поток на Nextcloud",
"Select a filter" : "Избор на филтър",
"Select a comparator" : "Избор на инструмент за сравняване",
+ "Remove filter" : "Премахни филтър",
"Folder" : "Папка",
"Images" : "Изображения",
"Office documents" : "Офис документи",
@@ -67,7 +68,7 @@
"Select groups" : "Избери Групи",
"Groups" : "Групи",
"At least one event must be selected" : "Трябва да бъде избрано поне едно събитие",
- "Add new flow" : "Добавяне на нов поток",
+ "Add new flow" : "Добавяне на нова автоматизация",
"The configuration is invalid" : "Конфигурацията е невалидна",
"Active" : "Активен",
"Save" : "Запази",
@@ -75,14 +76,17 @@
"and" : "и",
"Cancel" : "Отказ",
"Delete" : "Изтриване",
- "Available flows" : "Налични потоци",
+ "Available flows" : "Налични автоматизации",
"For details on how to write your own flow, check out the development documentation." : "За подробности как да напишете свой собствен поток, вижте документацията за разработка.",
- "More flows" : "Още потоци",
+ "No flows installed" : "Няма инсталирани автоматизации",
+ "Ask your administrator to install new flows." : "Помолете системния администратор да инсталира нови автоматизации",
+ "More flows" : "Още поточни автоматизации",
"Browse the App Store" : "Преглед на магазина за приложения /App Store/",
"Show less" : "Покажи по-малко",
"Show more" : "Покажи повече",
- "Configured flows" : "Конфигурирани потоци",
- "Your flows" : "Вашите потоци ",
+ "Configured flows" : "Конфигурирани поточни автоматизации",
+ "Your flows" : "Вашите автоматизации",
+ "No flows configured" : "Няма конфигурирани автоматизации",
"matches" : "съвпадения",
"does not match" : "не съвпада",
"is" : "е",
diff --git a/apps/workflowengine/l10n/es_419.js b/apps/workflowengine/l10n/es_419.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_419.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_419.json b/apps/workflowengine/l10n/es_419.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_419.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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
deleted file mode 100644
index e1d744c4139..00000000000
--- a/apps/workflowengine/l10n/es_AR.js
+++ /dev/null
@@ -1,62 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe",
- "Folder" : "Carpeta",
- "Images" : "Imágenes",
- "Files WebDAV" : "Archivos en WebDAV",
- "Android client" : "Cliente Android",
- "iOS client" : "Cliente iOS",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Eliminar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File name" : "Nombre",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menor",
- "less or equals" : "menor o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "Predefined URLs" : "URLs predefinidos",
- "Others" : "Otros"
-},
-"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
deleted file mode 100644
index 4d4f1da546b..00000000000
--- a/apps/workflowengine/l10n/es_AR.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe",
- "Folder" : "Carpeta",
- "Images" : "Imágenes",
- "Files WebDAV" : "Archivos en WebDAV",
- "Android client" : "Cliente Android",
- "iOS client" : "Cliente iOS",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Eliminar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File name" : "Nombre",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menor",
- "less or equals" : "menor o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "Predefined URLs" : "URLs predefinidos",
- "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_CL.js b/apps/workflowengine/l10n/es_CL.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_CL.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_CL.json b/apps/workflowengine/l10n/es_CL.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_CL.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_CO.js b/apps/workflowengine/l10n/es_CO.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_CO.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_CO.json b/apps/workflowengine/l10n/es_CO.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_CO.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_CR.js b/apps/workflowengine/l10n/es_CR.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_CR.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_CR.json b/apps/workflowengine/l10n/es_CR.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_CR.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_DO.js b/apps/workflowengine/l10n/es_DO.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_DO.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_DO.json b/apps/workflowengine/l10n/es_DO.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_DO.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_GT.js b/apps/workflowengine/l10n/es_GT.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_GT.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_GT.json b/apps/workflowengine/l10n/es_GT.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_GT.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_HN.js b/apps/workflowengine/l10n/es_HN.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_HN.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_HN.json b/apps/workflowengine/l10n/es_HN.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_HN.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_NI.js b/apps/workflowengine/l10n/es_NI.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_NI.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_NI.json b/apps/workflowengine/l10n/es_NI.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_NI.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_PA.js b/apps/workflowengine/l10n/es_PA.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_PA.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_PA.json b/apps/workflowengine/l10n/es_PA.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_PA.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_PE.js b/apps/workflowengine/l10n/es_PE.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_PE.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_PE.json b/apps/workflowengine/l10n/es_PE.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_PE.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_PR.js b/apps/workflowengine/l10n/es_PR.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_PR.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_PR.json b/apps/workflowengine/l10n/es_PR.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_PR.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_PY.js b/apps/workflowengine/l10n/es_PY.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_PY.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_PY.json b/apps/workflowengine/l10n/es_PY.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_PY.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_SV.js b/apps/workflowengine/l10n/es_SV.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_SV.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_SV.json b/apps/workflowengine/l10n/es_SV.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_SV.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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_UY.js b/apps/workflowengine/l10n/es_UY.js
deleted file mode 100644
index 1ec3bc45344..00000000000
--- a/apps/workflowengine/l10n/es_UY.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},
-"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_UY.json b/apps/workflowengine/l10n/es_UY.json
deleted file mode 100644
index 54d9e0e5740..00000000000
--- a/apps/workflowengine/l10n/es_UY.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "El operador indicado es inválido",
- "The given regular expression is invalid" : "La expresión regular indicada es inválida",
- "The given file size is invalid" : "El tamaño de archivo indicado es inválido",
- "The given tag id is invalid" : "El id de la etiqueta es inválido",
- "The given IP range is invalid" : "El rango de IP's es inválido",
- "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4",
- "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6",
- "The given time span is invalid" : "El espacio de tiempo dado es inválido",
- "The given start time is invalid" : "El tiempo inicial dado no es válido",
- "The given end time is invalid" : "El tiempo final dado no es válido",
- "The given group does not exist" : "El grupo dado no existe",
- "File" : "Archivo",
- "Operation #%s does not exist" : "La operación #%s no existe",
- "Operation %s does not exist" : "La operación %s no existe",
- "Operation %s is invalid" : "La operación %s es inválida",
- "Check %s does not exist" : "La validación %s no existe",
- "Check %s is invalid" : "La validación %s no es inválida",
- "Check #%s does not exist" : "La validación #%s no existe",
- "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",
- "Desktop client" : "Cliente de escritorio",
- "Cancel" : "Cancelar",
- "Delete" : "Borrar",
- "Save" : "Guardar",
- "matches" : "coincide",
- "does not match" : "No coincide",
- "is" : "es",
- "is not" : "no es",
- "File MIME type" : "Tipo MIME del archivo",
- "File size (upload)" : "Tamaño del archivo (carga)",
- "less" : "menos",
- "less or equals" : "menos o igual",
- "greater or equals" : "mayor o igual",
- "greater" : "mayor",
- "Request remote address" : "Solicitar dirección remota",
- "matches IPv4" : "coincide con IPv4",
- "does not match IPv4" : "no coincide con IPv4",
- "matches IPv6" : "coincide con IPv6",
- "does not match IPv6" : "no coincide con IPv6",
- "File system tag" : "Etiqueta del sistema de archivos",
- "is tagged with" : "está etiquetado con",
- "is not tagged with" : "no está etiquetado con",
- "Request URL" : "Solicitar URL",
- "Request time" : "Tiempo de la solicitud",
- "between" : "entre",
- "not between" : "no entre",
- "Request user agent" : "Solicitar agente de usuario",
- "User group membership" : "Membresia al grupo de usuarios",
- "is member of" : "es miembro de",
- "is not member of" : "no es miembro de",
- "No results" : "No hay resultados",
- "%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
-},"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/et_EE.js b/apps/workflowengine/l10n/et_EE.js
deleted file mode 100644
index 753f3211f33..00000000000
--- a/apps/workflowengine/l10n/et_EE.js
+++ /dev/null
@@ -1,74 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given regular expression is invalid" : "Antud regulaaravaldis on vigane",
- "The given file size is invalid" : "Antud faili suurus on vigane",
- "The given tag id is invalid" : "Antud sildi ID on vigane",
- "The given IP range is invalid" : "Antud IP vahemik on vigane",
- "The given IP range is not valid for IPv4" : "Antud IP vahemik ei kehti IPv4 kohta",
- "The given IP range is not valid for IPv6" : "Antud IP vahemik ei kehti IPv6 kohta",
- "The given time span is invalid" : "Antud ajavahemik on vigane",
- "The given start time is invalid" : "Antud algusaeg on vigane",
- "The given end time is invalid" : "Antud lõppaeg on vigane",
- "The given group does not exist" : "Antud gruppi ei leitud",
- "File" : "Fail",
- "File deleted" : "Fail on kustutatud",
- "Operation #%s does not exist" : "Tegevus # %s ei leitud",
- "Operation %s does not exist" : "Tegevust %s ei leitud",
- "Operation %s is invalid" : "Tegevus %s on vigane",
- "Folder" : "Kaust",
- "Images" : "Pildid",
- "No results" : "Vasteid ei leitud",
- "%s (invisible)" : "%s (nähtamatu)",
- "%s (restricted)" : "%s (piiratud)",
- "Predefined URLs" : "Eelmääratletud URL-id",
- "Files WebDAV" : "WebDAV failid",
- "Android client" : "Android klient",
- "iOS client" : "iOS klient",
- "Desktop client" : "Töölaua klient",
- "Cancel" : "Loobu",
- "Delete" : "Kustuta",
- "Save" : "Salvesta",
- "matches" : "kattub",
- "does not match" : "ei kattu",
- "is" : "on",
- "is not" : "ei ole",
- "File MIME type" : "Faili MIME tüüp",
- "File size (upload)" : "Faili suurus (üleslaadimine)",
- "less" : "väiksem",
- "less or equals" : "väiksem või võrdne",
- "greater or equals" : "suurem või võrdne",
- "greater" : "suurem",
- "Request remote address" : "Päringu kaugaadress",
- "matches IPv4" : "kattub IPv4 aadressiga",
- "does not match IPv4" : "Ei kattu IPv4 aadressiga",
- "matches IPv6" : "kattub IPv6 aadressiga",
- "does not match IPv6" : "Ei kattu IPv6 aadressiga",
- "File system tag" : "Faili süsteemi silt",
- "is tagged with" : "on sildiga",
- "is not tagged with" : "ei ole sildiga",
- "Request URL" : "Päringu URL",
- "Request time" : "Päringu aeg",
- "between" : "vahemikus",
- "not between" : "ei ole vahemikus",
- "Request user agent" : "Päringu \"user agent\"",
- "User group membership" : "Kasutajagrupi liige",
- "is member of" : "on liige",
- "is not member of" : "ei ole liige",
- "Example: {placeholder}" : "Näide: {placeholder}",
- "Select tag…" : "Vali silt...",
- "Start" : "Algus",
- "End" : "Lõpp",
- "Select timezone…" : "Vali ajavöönd",
- "Sync clients" : "Kliendiprogrammid",
- "Short rule description" : "Reegli lühikirjeldus",
- "Add rule" : "Lisa reegel",
- "Reset" : "Lähtesta",
- "Saving…" : "Salvestamine...",
- "Saved" : "Salvestatud",
- "Saving failed:" : "Salvestamine ebaõnnestus:",
- "Add rule group" : "Lisa reegligrupp",
- "Open documentation" : "Ava dokumentatsioon",
- "Loading…" : "Laadimine..."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/et_EE.json b/apps/workflowengine/l10n/et_EE.json
deleted file mode 100644
index 5f3e4831ad5..00000000000
--- a/apps/workflowengine/l10n/et_EE.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{ "translations": {
- "The given regular expression is invalid" : "Antud regulaaravaldis on vigane",
- "The given file size is invalid" : "Antud faili suurus on vigane",
- "The given tag id is invalid" : "Antud sildi ID on vigane",
- "The given IP range is invalid" : "Antud IP vahemik on vigane",
- "The given IP range is not valid for IPv4" : "Antud IP vahemik ei kehti IPv4 kohta",
- "The given IP range is not valid for IPv6" : "Antud IP vahemik ei kehti IPv6 kohta",
- "The given time span is invalid" : "Antud ajavahemik on vigane",
- "The given start time is invalid" : "Antud algusaeg on vigane",
- "The given end time is invalid" : "Antud lõppaeg on vigane",
- "The given group does not exist" : "Antud gruppi ei leitud",
- "File" : "Fail",
- "File deleted" : "Fail on kustutatud",
- "Operation #%s does not exist" : "Tegevus # %s ei leitud",
- "Operation %s does not exist" : "Tegevust %s ei leitud",
- "Operation %s is invalid" : "Tegevus %s on vigane",
- "Folder" : "Kaust",
- "Images" : "Pildid",
- "No results" : "Vasteid ei leitud",
- "%s (invisible)" : "%s (nähtamatu)",
- "%s (restricted)" : "%s (piiratud)",
- "Predefined URLs" : "Eelmääratletud URL-id",
- "Files WebDAV" : "WebDAV failid",
- "Android client" : "Android klient",
- "iOS client" : "iOS klient",
- "Desktop client" : "Töölaua klient",
- "Cancel" : "Loobu",
- "Delete" : "Kustuta",
- "Save" : "Salvesta",
- "matches" : "kattub",
- "does not match" : "ei kattu",
- "is" : "on",
- "is not" : "ei ole",
- "File MIME type" : "Faili MIME tüüp",
- "File size (upload)" : "Faili suurus (üleslaadimine)",
- "less" : "väiksem",
- "less or equals" : "väiksem või võrdne",
- "greater or equals" : "suurem või võrdne",
- "greater" : "suurem",
- "Request remote address" : "Päringu kaugaadress",
- "matches IPv4" : "kattub IPv4 aadressiga",
- "does not match IPv4" : "Ei kattu IPv4 aadressiga",
- "matches IPv6" : "kattub IPv6 aadressiga",
- "does not match IPv6" : "Ei kattu IPv6 aadressiga",
- "File system tag" : "Faili süsteemi silt",
- "is tagged with" : "on sildiga",
- "is not tagged with" : "ei ole sildiga",
- "Request URL" : "Päringu URL",
- "Request time" : "Päringu aeg",
- "between" : "vahemikus",
- "not between" : "ei ole vahemikus",
- "Request user agent" : "Päringu \"user agent\"",
- "User group membership" : "Kasutajagrupi liige",
- "is member of" : "on liige",
- "is not member of" : "ei ole liige",
- "Example: {placeholder}" : "Näide: {placeholder}",
- "Select tag…" : "Vali silt...",
- "Start" : "Algus",
- "End" : "Lõpp",
- "Select timezone…" : "Vali ajavöönd",
- "Sync clients" : "Kliendiprogrammid",
- "Short rule description" : "Reegli lühikirjeldus",
- "Add rule" : "Lisa reegel",
- "Reset" : "Lähtesta",
- "Saving…" : "Salvestamine...",
- "Saved" : "Salvestatud",
- "Saving failed:" : "Salvestamine ebaõnnestus:",
- "Add rule group" : "Lisa reegligrupp",
- "Open documentation" : "Ava dokumentatsioon",
- "Loading…" : "Laadimine..."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/ia.js b/apps/workflowengine/l10n/ia.js
deleted file mode 100644
index a6428d4e19c..00000000000
--- a/apps/workflowengine/l10n/ia.js
+++ /dev/null
@@ -1,46 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "is" : "es",
- "is not" : "non es",
- "matches" : "corresponde",
- "does not match" : "non corresponde",
- "Example: {placeholder}" : "Exemplo: {placeholder}",
- "File size (upload)" : "Dimension de file (incarga)",
- "less" : "minus",
- "less or equals" : "minus o equal",
- "greater or equals" : "major o equal",
- "greater" : "major",
- "File system tag" : "Etiquetta de systema de file",
- "is tagged with" : "es etiquettate con",
- "is not tagged with" : "non es etiquettate con",
- "Select tag…" : "Selectionar etiquetta...",
- "Request remote address" : "Demandar adresse remote",
- "matches IPv4" : "corresponde a IPv4",
- "does not match IPv4" : "non corresponde a IPv4",
- "matches IPv6" : "corresponde a IPv6",
- "does not match IPv6" : "non corresponde a IPv6",
- "Request time" : "Demandar tempore",
- "between" : "inter",
- "not between" : "non inter",
- "Start" : "Initio",
- "End" : "Fin",
- "Select timezone…" : "Selectionar fuso horari ...",
- "Request URL" : "Demandar URL",
- "Predefined URLs" : "URLs predefinite",
- "Files WebDAV" : "Files WebDAV",
- "Sync clients" : "Synchronisar clientes",
- "Android client" : "Cliente Android",
- "iOS client" : "Cliente iOS",
- "Desktop client" : "Cliente de Scriptorio",
- "is member of" : "es membro de",
- "is not member of" : "non es membro de",
- "Add rule" : "Adder regula",
- "Reset" : "Reinitialisar",
- "Save" : "Salveguardar",
- "Saving…" : "Salveguardante...",
- "Saving failed:" : "Salveguardata falleva:",
- "Open documentation" : "Aperir documentation",
- "Loading…" : "Cargante..."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/ia.json b/apps/workflowengine/l10n/ia.json
deleted file mode 100644
index c5bfa310359..00000000000
--- a/apps/workflowengine/l10n/ia.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{ "translations": {
- "is" : "es",
- "is not" : "non es",
- "matches" : "corresponde",
- "does not match" : "non corresponde",
- "Example: {placeholder}" : "Exemplo: {placeholder}",
- "File size (upload)" : "Dimension de file (incarga)",
- "less" : "minus",
- "less or equals" : "minus o equal",
- "greater or equals" : "major o equal",
- "greater" : "major",
- "File system tag" : "Etiquetta de systema de file",
- "is tagged with" : "es etiquettate con",
- "is not tagged with" : "non es etiquettate con",
- "Select tag…" : "Selectionar etiquetta...",
- "Request remote address" : "Demandar adresse remote",
- "matches IPv4" : "corresponde a IPv4",
- "does not match IPv4" : "non corresponde a IPv4",
- "matches IPv6" : "corresponde a IPv6",
- "does not match IPv6" : "non corresponde a IPv6",
- "Request time" : "Demandar tempore",
- "between" : "inter",
- "not between" : "non inter",
- "Start" : "Initio",
- "End" : "Fin",
- "Select timezone…" : "Selectionar fuso horari ...",
- "Request URL" : "Demandar URL",
- "Predefined URLs" : "URLs predefinite",
- "Files WebDAV" : "Files WebDAV",
- "Sync clients" : "Synchronisar clientes",
- "Android client" : "Cliente Android",
- "iOS client" : "Cliente iOS",
- "Desktop client" : "Cliente de Scriptorio",
- "is member of" : "es membro de",
- "is not member of" : "non es membro de",
- "Add rule" : "Adder regula",
- "Reset" : "Reinitialisar",
- "Save" : "Salveguardar",
- "Saving…" : "Salveguardante...",
- "Saving failed:" : "Salveguardata falleva:",
- "Open documentation" : "Aperir documentation",
- "Loading…" : "Cargante..."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/id.js b/apps/workflowengine/l10n/id.js
deleted file mode 100644
index 62205b7d858..00000000000
--- a/apps/workflowengine/l10n/id.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "Operator yang diberikan tidak sah",
- "The given regular expression is invalid" : "Regular expression yang diberikan tidak sah",
- "The given file size is invalid" : "Ukuran berkas yang diberikan tidak sah",
- "The given tag id is invalid" : "Tag ID yang diberikan tidak sah",
- "The given IP range is invalid" : "Rentang IP yang diberikan tidak sah",
- "The given IP range is not valid for IPv4" : "Rentang IP yang diberikan tidak sah untuk IPv4",
- "The given IP range is not valid for IPv6" : "Rentang IP yang diberikan tidak sah untuk IPv6",
- "The given time span is invalid" : "Rentang waktu yang diberikan tidak sah",
- "The given start time is invalid" : "Waktu mulai yang diberikan tidak sah",
- "The given end time is invalid" : "Waktu selesai yang diberikan tidak sah",
- "The given group does not exist" : "Grup yang diberikan tidak ada",
- "File" : "Berkas",
- "Operation #%s does not exist" : "Operasi #%s tidak ada",
- "Operation %s does not exist" : "Operasi %s tidak ada",
- "Operation %s is invalid" : "Operasi %s tidak valid",
- "Check %s does not exist" : "Cek %s tidak ada",
- "Check %s is invalid" : "Cek %s tidak valid",
- "Check #%s does not exist" : "Cek #%s tidak ada",
- "Check %s is invalid or does not exist" : "Cek %s tidak valid atau tidak ada",
- "Folder" : "Folder",
- "Images" : "Gambar",
- "Predefined URLs" : "URL terdefinisi",
- "Files WebDAV" : "Berkas WebDAV",
- "Android client" : "Klien Android",
- "iOS client" : "Klien iOS",
- "Desktop client" : "Klien desktop",
- "Cancel" : "Membatalkan",
- "Delete" : "Hapus",
- "Save" : "Simpan",
- "matches" : "cocok dengan",
- "does not match" : "tidak cocok dengan",
- "is" : "adalah",
- "is not" : "bukan",
- "File MIME type" : "Berkas tipe MIME",
- "File size (upload)" : "Ukuran berkas (unggah)",
- "less" : "kurang dari",
- "less or equals" : "kurang dari atau sama dengan",
- "greater or equals" : "lebih dari atau sama dengan",
- "greater" : "lebih dari",
- "Request remote address" : "Minta alamat remote",
- "matches IPv4" : "cocok dengan IPv4",
- "does not match IPv4" : "tidak cocok dengan IPv4",
- "matches IPv6" : "cocok dengan IPv6",
- "does not match IPv6" : "tidak cocok dengan IPv6",
- "File system tag" : "Tag sistem berkas",
- "is tagged with" : "di tag dengan",
- "is not tagged with" : "tidak di tag dengan",
- "Request URL" : "Minta URL",
- "Request time" : "Waktu permintaan",
- "between" : "diantara",
- "not between" : "tidak diantara",
- "Request user agent" : "Minta user agent",
- "User group membership" : "Keanggotaan grup pengguna",
- "is member of" : "anggota dari",
- "is not member of" : "bukan anggota dari",
- "No results" : "Tidak ada hasil",
- "%s (invisible)" : "%s (tersembunyi)",
- "%s (restricted)" : "%s (terbatas)"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/workflowengine/l10n/id.json b/apps/workflowengine/l10n/id.json
deleted file mode 100644
index 9af33f6fd0f..00000000000
--- a/apps/workflowengine/l10n/id.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "Operator yang diberikan tidak sah",
- "The given regular expression is invalid" : "Regular expression yang diberikan tidak sah",
- "The given file size is invalid" : "Ukuran berkas yang diberikan tidak sah",
- "The given tag id is invalid" : "Tag ID yang diberikan tidak sah",
- "The given IP range is invalid" : "Rentang IP yang diberikan tidak sah",
- "The given IP range is not valid for IPv4" : "Rentang IP yang diberikan tidak sah untuk IPv4",
- "The given IP range is not valid for IPv6" : "Rentang IP yang diberikan tidak sah untuk IPv6",
- "The given time span is invalid" : "Rentang waktu yang diberikan tidak sah",
- "The given start time is invalid" : "Waktu mulai yang diberikan tidak sah",
- "The given end time is invalid" : "Waktu selesai yang diberikan tidak sah",
- "The given group does not exist" : "Grup yang diberikan tidak ada",
- "File" : "Berkas",
- "Operation #%s does not exist" : "Operasi #%s tidak ada",
- "Operation %s does not exist" : "Operasi %s tidak ada",
- "Operation %s is invalid" : "Operasi %s tidak valid",
- "Check %s does not exist" : "Cek %s tidak ada",
- "Check %s is invalid" : "Cek %s tidak valid",
- "Check #%s does not exist" : "Cek #%s tidak ada",
- "Check %s is invalid or does not exist" : "Cek %s tidak valid atau tidak ada",
- "Folder" : "Folder",
- "Images" : "Gambar",
- "Predefined URLs" : "URL terdefinisi",
- "Files WebDAV" : "Berkas WebDAV",
- "Android client" : "Klien Android",
- "iOS client" : "Klien iOS",
- "Desktop client" : "Klien desktop",
- "Cancel" : "Membatalkan",
- "Delete" : "Hapus",
- "Save" : "Simpan",
- "matches" : "cocok dengan",
- "does not match" : "tidak cocok dengan",
- "is" : "adalah",
- "is not" : "bukan",
- "File MIME type" : "Berkas tipe MIME",
- "File size (upload)" : "Ukuran berkas (unggah)",
- "less" : "kurang dari",
- "less or equals" : "kurang dari atau sama dengan",
- "greater or equals" : "lebih dari atau sama dengan",
- "greater" : "lebih dari",
- "Request remote address" : "Minta alamat remote",
- "matches IPv4" : "cocok dengan IPv4",
- "does not match IPv4" : "tidak cocok dengan IPv4",
- "matches IPv6" : "cocok dengan IPv6",
- "does not match IPv6" : "tidak cocok dengan IPv6",
- "File system tag" : "Tag sistem berkas",
- "is tagged with" : "di tag dengan",
- "is not tagged with" : "tidak di tag dengan",
- "Request URL" : "Minta URL",
- "Request time" : "Waktu permintaan",
- "between" : "diantara",
- "not between" : "tidak diantara",
- "Request user agent" : "Minta user agent",
- "User group membership" : "Keanggotaan grup pengguna",
- "is member of" : "anggota dari",
- "is not member of" : "bukan anggota dari",
- "No results" : "Tidak ada hasil",
- "%s (invisible)" : "%s (tersembunyi)",
- "%s (restricted)" : "%s (terbatas)"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/ka_GE.js b/apps/workflowengine/l10n/ka_GE.js
deleted file mode 100644
index 48a7c852f2b..00000000000
--- a/apps/workflowengine/l10n/ka_GE.js
+++ /dev/null
@@ -1,63 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "მოცემული ოპერატორი არაა სწორი",
- "The given regular expression is invalid" : "მოცემული რეგულარული გამოსახულება არაა სწორი",
- "The given file size is invalid" : "მოცემული ფაილის ზომა არაა სწორი",
- "The given tag id is invalid" : "მოცემული ტეგის id არაა სწორი",
- "The given IP range is invalid" : "მოცემული IP დიაპაზონი არაა სწორი",
- "The given IP range is not valid for IPv4" : "მოცემული IP დიაპაზონი არაა სწორი IPv4-ისთვის",
- "The given IP range is not valid for IPv6" : "მოცემული IP დიაპაზონი არაა სწორი IPv6-ისთვის",
- "The given time span is invalid" : "მოცემული დროის ინტერვალი არაა სწორი",
- "The given start time is invalid" : "მოცემული საწყისი დრო არაა სწორი",
- "The given end time is invalid" : "მოცემული დროის დასასრული არაა სწორი",
- "The given group does not exist" : "მოცემული ჯგუფი არ არსებობს",
- "File" : "ფაილი",
- "Operation #%s does not exist" : "ოპერაცია #%s არ არსებობს",
- "Operation %s does not exist" : "ოპერაცია %s არ არსებობს",
- "Operation %s is invalid" : "ოპერაცია %s არაა სწორი",
- "Check %s does not exist" : "შეამოწმეთ %s არ არსებობს",
- "Check %s is invalid" : "შეამოწმეთ %s არასწორია",
- "Check #%s does not exist" : "შეამოწმეთ #%s არ არსებობს",
- "Check %s is invalid or does not exist" : "შეამოწმეთ %s არასწორია ან არ არსებობს",
- "Folder" : "დირექტორია",
- "Images" : "სურათები",
- "Predefined URLs" : "წინასწარ განსაზღვრული URL-ები",
- "Files WebDAV" : "ფაილები WebDAV",
- "Android client" : "Android კლიენტი",
- "iOS client" : "iOS კლიენტი",
- "Desktop client" : "დესკტოპ კლიენტი",
- "Cancel" : "უარყოფა",
- "Delete" : "წაშლა",
- "Save" : "შენახვა",
- "matches" : "ემთხვევა",
- "does not match" : "არ ემთხვევა",
- "is" : "არის",
- "is not" : "არ არის",
- "File MIME type" : "ფაილის MIME სახეობა",
- "File size (upload)" : "ფაილის ზომა (ატვირთვა)",
- "less" : "უფრო ნაკლები",
- "less or equals" : "უფრო ნაკლები ან ტოლი",
- "greater or equals" : "უფრო მეტი ან ტოლი",
- "greater" : "უფრო მეტი",
- "Request remote address" : "დისტანციური მისამართის მოთხოვნა",
- "matches IPv4" : "ემთხვევა IPv4-ს",
- "does not match IPv4" : "არ ემთხვევა IPv4-ს",
- "matches IPv6" : "ემთხვევა IPv6-ს",
- "does not match IPv6" : "არ ემთხვევა IPv6-ს",
- "File system tag" : "ფაილის სისტემური ტეგი",
- "is tagged with" : "დატეგილია როგორც",
- "is not tagged with" : "არაა დატეგილი როგორც",
- "Request URL" : "მოთხოვნის URL",
- "Request time" : "მოთხოვნის დრო",
- "between" : "შორის",
- "not between" : "არა შორის",
- "Request user agent" : "მოთხოვნის მომხმარებლის აგენტი",
- "User group membership" : "მომხმარებლის ჯგუფის წევრიანობა",
- "is member of" : "არის წევრი ჯგუფისა",
- "is not member of" : "არ არის წევრი ჯგუფისა",
- "No results" : "შედეგები არაა",
- "%s (invisible)" : "%s (უჩინარი)",
- "%s (restricted)" : "%s (აკრძალული)"
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/workflowengine/l10n/ka_GE.json b/apps/workflowengine/l10n/ka_GE.json
deleted file mode 100644
index 3fdb17c8be5..00000000000
--- a/apps/workflowengine/l10n/ka_GE.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "მოცემული ოპერატორი არაა სწორი",
- "The given regular expression is invalid" : "მოცემული რეგულარული გამოსახულება არაა სწორი",
- "The given file size is invalid" : "მოცემული ფაილის ზომა არაა სწორი",
- "The given tag id is invalid" : "მოცემული ტეგის id არაა სწორი",
- "The given IP range is invalid" : "მოცემული IP დიაპაზონი არაა სწორი",
- "The given IP range is not valid for IPv4" : "მოცემული IP დიაპაზონი არაა სწორი IPv4-ისთვის",
- "The given IP range is not valid for IPv6" : "მოცემული IP დიაპაზონი არაა სწორი IPv6-ისთვის",
- "The given time span is invalid" : "მოცემული დროის ინტერვალი არაა სწორი",
- "The given start time is invalid" : "მოცემული საწყისი დრო არაა სწორი",
- "The given end time is invalid" : "მოცემული დროის დასასრული არაა სწორი",
- "The given group does not exist" : "მოცემული ჯგუფი არ არსებობს",
- "File" : "ფაილი",
- "Operation #%s does not exist" : "ოპერაცია #%s არ არსებობს",
- "Operation %s does not exist" : "ოპერაცია %s არ არსებობს",
- "Operation %s is invalid" : "ოპერაცია %s არაა სწორი",
- "Check %s does not exist" : "შეამოწმეთ %s არ არსებობს",
- "Check %s is invalid" : "შეამოწმეთ %s არასწორია",
- "Check #%s does not exist" : "შეამოწმეთ #%s არ არსებობს",
- "Check %s is invalid or does not exist" : "შეამოწმეთ %s არასწორია ან არ არსებობს",
- "Folder" : "დირექტორია",
- "Images" : "სურათები",
- "Predefined URLs" : "წინასწარ განსაზღვრული URL-ები",
- "Files WebDAV" : "ფაილები WebDAV",
- "Android client" : "Android კლიენტი",
- "iOS client" : "iOS კლიენტი",
- "Desktop client" : "დესკტოპ კლიენტი",
- "Cancel" : "უარყოფა",
- "Delete" : "წაშლა",
- "Save" : "შენახვა",
- "matches" : "ემთხვევა",
- "does not match" : "არ ემთხვევა",
- "is" : "არის",
- "is not" : "არ არის",
- "File MIME type" : "ფაილის MIME სახეობა",
- "File size (upload)" : "ფაილის ზომა (ატვირთვა)",
- "less" : "უფრო ნაკლები",
- "less or equals" : "უფრო ნაკლები ან ტოლი",
- "greater or equals" : "უფრო მეტი ან ტოლი",
- "greater" : "უფრო მეტი",
- "Request remote address" : "დისტანციური მისამართის მოთხოვნა",
- "matches IPv4" : "ემთხვევა IPv4-ს",
- "does not match IPv4" : "არ ემთხვევა IPv4-ს",
- "matches IPv6" : "ემთხვევა IPv6-ს",
- "does not match IPv6" : "არ ემთხვევა IPv6-ს",
- "File system tag" : "ფაილის სისტემური ტეგი",
- "is tagged with" : "დატეგილია როგორც",
- "is not tagged with" : "არაა დატეგილი როგორც",
- "Request URL" : "მოთხოვნის URL",
- "Request time" : "მოთხოვნის დრო",
- "between" : "შორის",
- "not between" : "არა შორის",
- "Request user agent" : "მოთხოვნის მომხმარებლის აგენტი",
- "User group membership" : "მომხმარებლის ჯგუფის წევრიანობა",
- "is member of" : "არის წევრი ჯგუფისა",
- "is not member of" : "არ არის წევრი ჯგუფისა",
- "No results" : "შედეგები არაა",
- "%s (invisible)" : "%s (უჩინარი)",
- "%s (restricted)" : "%s (აკრძალული)"
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/lv.js b/apps/workflowengine/l10n/lv.js
index a70d5ddba19..088196c0081 100644
--- a/apps/workflowengine/l10n/lv.js
+++ b/apps/workflowengine/l10n/lv.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"The given group does not exist" : "Norādītā grupa nepastāv.",
"File" : "Datne",
"File renamed" : "Datne pārdēvēta",
+ "%s renamed %s" : "%s pārdēvēja %s",
"Operation #%s does not exist" : "Operation #%s does not exist",
"Operation %s does not exist" : "Darbība %s nepastāv",
"Operation %s is invalid" : "Darbība %s ir nederīga",
diff --git a/apps/workflowengine/l10n/lv.json b/apps/workflowengine/l10n/lv.json
index 24a24e9dd25..3dce9342e1e 100644
--- a/apps/workflowengine/l10n/lv.json
+++ b/apps/workflowengine/l10n/lv.json
@@ -12,6 +12,7 @@
"The given group does not exist" : "Norādītā grupa nepastāv.",
"File" : "Datne",
"File renamed" : "Datne pārdēvēta",
+ "%s renamed %s" : "%s pārdēvēja %s",
"Operation #%s does not exist" : "Operation #%s does not exist",
"Operation %s does not exist" : "Darbība %s nepastāv",
"Operation %s is invalid" : "Darbība %s ir nederīga",
diff --git a/apps/workflowengine/l10n/mn.js b/apps/workflowengine/l10n/mn.js
deleted file mode 100644
index 75bb0f58126..00000000000
--- a/apps/workflowengine/l10n/mn.js
+++ /dev/null
@@ -1,70 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "Өгөгдсөн оператор буруу байна",
- "The given regular expression is invalid" : "Өгөгдсөн тогтмол илэрхийлэл буруу байна",
- "The given file size is invalid" : "Өгөгдсөн файлын хэмжээ буруу байна",
- "The given tag id is invalid" : "Өгөгдсөн шошго буруу байна",
- "The given IP range is invalid" : "Өгөгдсөн IP хязгаар буруу байна",
- "The given IP range is not valid for IPv4" : "Өгөгдсөн IP хүрээ , IPv4-д хүчингүй байна",
- "The given IP range is not valid for IPv6" : "Өгөгдсөн IP хүрээ IPv6-д хүчингүй байна",
- "The given time span is invalid" : "Өгөгдсөн цаг хугацаа буруу байна",
- "The given start time is invalid" : " эхлэх цаг буруу байна",
- "The given end time is invalid" : "төгсөглийн хугацаа буруу байна",
- "The given group does not exist" : "Өгөгдсөн бүлэг байхгүй байна",
- "File" : "File",
- "Operation #%s does not exist" : "%s үйл ажиллагаа байхгүй",
- "Check %s is invalid or does not exist" : "%sшалгахад хүчингүй эсвэл байхгүй байна",
- "Images" : "Зургууд",
- "No results" : "Үр дүн байхгүй",
- "Predefined URLs" : "Урьдчилан тодорхойлсон URLууд",
- "Files WebDAV" : "WebDAV файлууд",
- "Android client" : "Android хэрэглэгч",
- "iOS client" : "iOS үйлчлүүлэгч",
- "Desktop client" : "захиалагчийн дэлгэц",
- "Cancel" : "болиулах",
- "Delete" : "Устгах",
- "Save" : "хадгалах",
- "matches" : "тохируулах",
- "does not match" : "таарахгүй байна",
- "is" : "бол",
- "is not" : "биш",
- "File MIME type" : "Файлын MIME төрөл",
- "File size (upload)" : "файлын хэмжээ (байршуулсан)",
- "less" : "бага",
- "less or equals" : "Бага буюу тэнцүү",
- "greater or equals" : "Их буюу тэнцүү",
- "greater" : "илүү их",
- "Request remote address" : "алсын хаяг авах хүсэлт",
- "matches IPv4" : "IPv4 тохируулах ",
- "does not match IPv4" : "IPv4 тохируулагдаагүй байна",
- "matches IPv6" : "IPv6 тохируулах ",
- "does not match IPv6" : "IPv6 тохируулагдаанүй байна",
- "File system tag" : "Файлын системийн хаяг",
- "is tagged with" : "Тэмдэглэгдсэн байна",
- "is not tagged with" : "тэмдэглэгдээгүй байна",
- "Request URL" : "URL-н хүсэлт",
- "Request time" : "Хүсэлт гаргах хугацаа",
- "between" : "хооронд",
- "not between" : "Хооронд биш",
- "User group membership" : "хэрэглэгчийн бүлгийн гишүүнчлэл",
- "is member of" : "-ын гишүүн ",
- "is not member of" : "-ын гишүүн биш",
- "Short rule description" : "Дүрмийн тайлбар товч",
- "Add rule" : "Дүрэм нэмэх",
- "Reset" : "тохируулах",
- "Saving…" : "хадгалж байна",
- "Saved" : "Хадгалсан",
- "Saving failed:" : "Хадгалалт бүтэлгүйтэв:",
- "Add rule group" : "Бүлэгт дүрэм нэмэх",
- "Example: {placeholder}" : "Жишээ нь: {байрлал}",
- "Select tag…" : "хаяг сонгоно уу",
- "Start" : "эхлэх",
- "End" : "дуусгах",
- "Select timezone…" : "Timezone сонго ...",
- "Workflow" : "ажлын үйл явц",
- "Files workflow engine" : "файлууд нь ажлын үйл явцын хэрэгсэл ",
- "Open documentation" : "Нээлттэй баримт бичиг",
- "Loading…" : "уншиж байна"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/mn.json b/apps/workflowengine/l10n/mn.json
deleted file mode 100644
index 9e5d8e60f10..00000000000
--- a/apps/workflowengine/l10n/mn.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "Өгөгдсөн оператор буруу байна",
- "The given regular expression is invalid" : "Өгөгдсөн тогтмол илэрхийлэл буруу байна",
- "The given file size is invalid" : "Өгөгдсөн файлын хэмжээ буруу байна",
- "The given tag id is invalid" : "Өгөгдсөн шошго буруу байна",
- "The given IP range is invalid" : "Өгөгдсөн IP хязгаар буруу байна",
- "The given IP range is not valid for IPv4" : "Өгөгдсөн IP хүрээ , IPv4-д хүчингүй байна",
- "The given IP range is not valid for IPv6" : "Өгөгдсөн IP хүрээ IPv6-д хүчингүй байна",
- "The given time span is invalid" : "Өгөгдсөн цаг хугацаа буруу байна",
- "The given start time is invalid" : " эхлэх цаг буруу байна",
- "The given end time is invalid" : "төгсөглийн хугацаа буруу байна",
- "The given group does not exist" : "Өгөгдсөн бүлэг байхгүй байна",
- "File" : "File",
- "Operation #%s does not exist" : "%s үйл ажиллагаа байхгүй",
- "Check %s is invalid or does not exist" : "%sшалгахад хүчингүй эсвэл байхгүй байна",
- "Images" : "Зургууд",
- "No results" : "Үр дүн байхгүй",
- "Predefined URLs" : "Урьдчилан тодорхойлсон URLууд",
- "Files WebDAV" : "WebDAV файлууд",
- "Android client" : "Android хэрэглэгч",
- "iOS client" : "iOS үйлчлүүлэгч",
- "Desktop client" : "захиалагчийн дэлгэц",
- "Cancel" : "болиулах",
- "Delete" : "Устгах",
- "Save" : "хадгалах",
- "matches" : "тохируулах",
- "does not match" : "таарахгүй байна",
- "is" : "бол",
- "is not" : "биш",
- "File MIME type" : "Файлын MIME төрөл",
- "File size (upload)" : "файлын хэмжээ (байршуулсан)",
- "less" : "бага",
- "less or equals" : "Бага буюу тэнцүү",
- "greater or equals" : "Их буюу тэнцүү",
- "greater" : "илүү их",
- "Request remote address" : "алсын хаяг авах хүсэлт",
- "matches IPv4" : "IPv4 тохируулах ",
- "does not match IPv4" : "IPv4 тохируулагдаагүй байна",
- "matches IPv6" : "IPv6 тохируулах ",
- "does not match IPv6" : "IPv6 тохируулагдаанүй байна",
- "File system tag" : "Файлын системийн хаяг",
- "is tagged with" : "Тэмдэглэгдсэн байна",
- "is not tagged with" : "тэмдэглэгдээгүй байна",
- "Request URL" : "URL-н хүсэлт",
- "Request time" : "Хүсэлт гаргах хугацаа",
- "between" : "хооронд",
- "not between" : "Хооронд биш",
- "User group membership" : "хэрэглэгчийн бүлгийн гишүүнчлэл",
- "is member of" : "-ын гишүүн ",
- "is not member of" : "-ын гишүүн биш",
- "Short rule description" : "Дүрмийн тайлбар товч",
- "Add rule" : "Дүрэм нэмэх",
- "Reset" : "тохируулах",
- "Saving…" : "хадгалж байна",
- "Saved" : "Хадгалсан",
- "Saving failed:" : "Хадгалалт бүтэлгүйтэв:",
- "Add rule group" : "Бүлэгт дүрэм нэмэх",
- "Example: {placeholder}" : "Жишээ нь: {байрлал}",
- "Select tag…" : "хаяг сонгоно уу",
- "Start" : "эхлэх",
- "End" : "дуусгах",
- "Select timezone…" : "Timezone сонго ...",
- "Workflow" : "ажлын үйл явц",
- "Files workflow engine" : "файлууд нь ажлын үйл явцын хэрэгсэл ",
- "Open documentation" : "Нээлттэй баримт бичиг",
- "Loading…" : "уншиж байна"
-},"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 abcf9e7bd0c..a86b92ea72c 100644
--- a/apps/workflowengine/l10n/nl.js
+++ b/apps/workflowengine/l10n/nl.js
@@ -69,6 +69,7 @@ OC.L10N.register(
"Select a user agent" : "Selecteer een 'user agent'",
"Select groups" : "Selecteer groepen",
"Groups" : "Groepen",
+ "Type to search for group …" : "Type om groep te zoeken …",
"Select a trigger" : "Selecteer een trigger",
"At least one event must be selected" : "Er moet minimaal één gebeurtenis worden geselecteerd",
"Add new flow" : "Nieuwe flow toevoegen",
@@ -82,12 +83,15 @@ OC.L10N.register(
"Delete" : "Verwijderen",
"Available flows" : "Beschikbare flows",
"For details on how to write your own flow, check out the development documentation." : "Raadpleeg de ontwikkeldocumentatie voor meer informatie over het ontwikkelen van je eigen flow.",
+ "No flows installed" : "Geen flows geïnstalleerd",
+ "Ask your administrator to install new flows." : "Vraag de beheerder om nieuwe flows te installeren.",
"More flows" : "Meer flows",
"Browse the App Store" : "Blader door de App Store",
"Show less" : "Toon minder",
"Show more" : "Toon meer",
"Configured flows" : "Geconfigureerde flows",
"Your flows" : "Jouw flows",
+ "No flows configured" : "Geen flows geconfigureerd",
"matches" : "komt overeen",
"does not match" : "komt niet overeen",
"is" : "is",
@@ -112,6 +116,7 @@ OC.L10N.register(
"between" : "tussen",
"not between" : "niet tussen",
"Request user agent" : "Useragent aanvraag",
+ "Group membership" : "Groepslidmaatschap",
"is member of" : "is lid van",
"is not member of" : "is geen lid van"
},
diff --git a/apps/workflowengine/l10n/nl.json b/apps/workflowengine/l10n/nl.json
index 065cb70e943..d2679c172d3 100644
--- a/apps/workflowengine/l10n/nl.json
+++ b/apps/workflowengine/l10n/nl.json
@@ -67,6 +67,7 @@
"Select a user agent" : "Selecteer een 'user agent'",
"Select groups" : "Selecteer groepen",
"Groups" : "Groepen",
+ "Type to search for group …" : "Type om groep te zoeken …",
"Select a trigger" : "Selecteer een trigger",
"At least one event must be selected" : "Er moet minimaal één gebeurtenis worden geselecteerd",
"Add new flow" : "Nieuwe flow toevoegen",
@@ -80,12 +81,15 @@
"Delete" : "Verwijderen",
"Available flows" : "Beschikbare flows",
"For details on how to write your own flow, check out the development documentation." : "Raadpleeg de ontwikkeldocumentatie voor meer informatie over het ontwikkelen van je eigen flow.",
+ "No flows installed" : "Geen flows geïnstalleerd",
+ "Ask your administrator to install new flows." : "Vraag de beheerder om nieuwe flows te installeren.",
"More flows" : "Meer flows",
"Browse the App Store" : "Blader door de App Store",
"Show less" : "Toon minder",
"Show more" : "Toon meer",
"Configured flows" : "Geconfigureerde flows",
"Your flows" : "Jouw flows",
+ "No flows configured" : "Geen flows geconfigureerd",
"matches" : "komt overeen",
"does not match" : "komt niet overeen",
"is" : "is",
@@ -110,6 +114,7 @@
"between" : "tussen",
"not between" : "niet tussen",
"Request user agent" : "Useragent aanvraag",
+ "Group membership" : "Groepslidmaatschap",
"is member of" : "is lid van",
"is not member of" : "is geen lid van"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/workflowengine/l10n/pt_BR.js b/apps/workflowengine/l10n/pt_BR.js
index 82bfeb4b852..8d40914252d 100644
--- a/apps/workflowengine/l10n/pt_BR.js
+++ b/apps/workflowengine/l10n/pt_BR.js
@@ -67,9 +67,9 @@ OC.L10N.register(
"Thunderbird & Outlook addons" : "Extensões para Thunderbird & Outlook",
"Custom user agent" : "Agente do usuário personalizado",
"Select a user agent" : "Selecione um agente de usuário",
- "Select groups" : "Selecionar grupos",
+ "Select groups" : "Selecione grupos",
"Groups" : "Grupos",
- "Type to search for group …" : "Digite para pesquisar o grupo…",
+ "Type to search for group …" : "Digite para pesquisar um grupo …",
"Select a trigger" : "Selecione um gatilho",
"At least one event must be selected" : "É necessário selecionar ao menos um evento",
"Add new flow" : "Adicionar novo fluxo",
@@ -86,13 +86,13 @@ OC.L10N.register(
"No flows installed" : "Nenhum fluxo instalado",
"Ask your administrator to install new flows." : "Peça ao seu administrador para instalar novos fluxos.",
"More flows" : "Mais fluxos",
- "Browse the App Store" : "Navegar pela loja de aplicativos",
+ "Browse the App Store" : "Navegar pela Loja de Aplicativos",
"Show less" : "Mostrar menos",
"Show more" : "Mostrar mais",
"Configured flows" : "Fluxos configurados",
"Your flows" : "Seus fluxos",
"No flows configured" : "Nenhum fluxo configurado",
- "matches" : "coincide",
+ "matches" : "corresponde",
"does not match" : "não coincide",
"is" : "é",
"is not" : "não é",
@@ -104,10 +104,10 @@ OC.L10N.register(
"greater or equals" : "maior ou igual a",
"greater" : "maior que",
"Request remote address" : "Endereço da requisição",
- "matches IPv4" : "IPv4 coincide",
- "does not match IPv4" : "IPV4 não coincide",
- "matches IPv6" : "IPV6 coincide",
- "does not match IPv6" : "IPV6 não coincide",
+ "matches IPv4" : "corresponde a IPv4",
+ "does not match IPv4" : "não corresponde a IPv4",
+ "matches IPv6" : "corresponde a IPv6",
+ "does not match IPv6" : "não corresponde a IPv6",
"File system tag" : "Etiqueta do sistema de arquivos",
"is tagged with" : "está etiquetado com",
"is not tagged with" : "não está etiquetado com",
diff --git a/apps/workflowengine/l10n/pt_BR.json b/apps/workflowengine/l10n/pt_BR.json
index ec2134ca3f5..2cbde62dc24 100644
--- a/apps/workflowengine/l10n/pt_BR.json
+++ b/apps/workflowengine/l10n/pt_BR.json
@@ -65,9 +65,9 @@
"Thunderbird & Outlook addons" : "Extensões para Thunderbird & Outlook",
"Custom user agent" : "Agente do usuário personalizado",
"Select a user agent" : "Selecione um agente de usuário",
- "Select groups" : "Selecionar grupos",
+ "Select groups" : "Selecione grupos",
"Groups" : "Grupos",
- "Type to search for group …" : "Digite para pesquisar o grupo…",
+ "Type to search for group …" : "Digite para pesquisar um grupo …",
"Select a trigger" : "Selecione um gatilho",
"At least one event must be selected" : "É necessário selecionar ao menos um evento",
"Add new flow" : "Adicionar novo fluxo",
@@ -84,13 +84,13 @@
"No flows installed" : "Nenhum fluxo instalado",
"Ask your administrator to install new flows." : "Peça ao seu administrador para instalar novos fluxos.",
"More flows" : "Mais fluxos",
- "Browse the App Store" : "Navegar pela loja de aplicativos",
+ "Browse the App Store" : "Navegar pela Loja de Aplicativos",
"Show less" : "Mostrar menos",
"Show more" : "Mostrar mais",
"Configured flows" : "Fluxos configurados",
"Your flows" : "Seus fluxos",
"No flows configured" : "Nenhum fluxo configurado",
- "matches" : "coincide",
+ "matches" : "corresponde",
"does not match" : "não coincide",
"is" : "é",
"is not" : "não é",
@@ -102,10 +102,10 @@
"greater or equals" : "maior ou igual a",
"greater" : "maior que",
"Request remote address" : "Endereço da requisição",
- "matches IPv4" : "IPv4 coincide",
- "does not match IPv4" : "IPV4 não coincide",
- "matches IPv6" : "IPV6 coincide",
- "does not match IPv6" : "IPV6 não coincide",
+ "matches IPv4" : "corresponde a IPv4",
+ "does not match IPv4" : "não corresponde a IPv4",
+ "matches IPv6" : "corresponde a IPv6",
+ "does not match IPv6" : "não corresponde a IPv6",
"File system tag" : "Etiqueta do sistema de arquivos",
"is tagged with" : "está etiquetado com",
"is not tagged with" : "não está etiquetado com",
diff --git a/apps/workflowengine/l10n/sq.js b/apps/workflowengine/l10n/sq.js
deleted file mode 100644
index e8c63d79062..00000000000
--- a/apps/workflowengine/l10n/sq.js
+++ /dev/null
@@ -1,62 +0,0 @@
-OC.L10N.register(
- "workflowengine",
- {
- "The given operator is invalid" : "Operatori i dhënë nuk është i vlefshëm",
- "The given regular expression is invalid" : "Shprehja e rregullt e dhënë është e pavlefshme",
- "The given file size is invalid" : "Madhësia e dhënë e skedarit është e pavlefshme",
- "The given tag id is invalid" : "Id-ja e dhënë e etiketës është e pavlefshme",
- "The given IP range is invalid" : "Rangu i dhënë i IP është i pavlefshëm",
- "The given IP range is not valid for IPv4" : "Rangu i dhënë i IP nuk është i vlefshëm për IPv4",
- "The given IP range is not valid for IPv6" : "Rangu i dhënë i IP nuk është i vlefshëm për IPv6",
- "The given time span is invalid" : "Hapsira kohore e dhënë është e pavlefshme",
- "The given start time is invalid" : "Koha e fillimit është e pavlefshme",
- "The given end time is invalid" : "Koha e mbarimit është e pavlefshme",
- "The given group does not exist" : "Grupi i dhënë nuk ekziston",
- "File" : "Skedar ",
- "Operation #%s does not exist" : "Operacioni #%s nuk ekziston",
- "Operation %s does not exist" : "Operacioni %s nuk ekziston",
- "Operation %s is invalid" : "Operacioni %s është i pavlefshëm",
- "Check %s does not exist" : "Kontrolli %s nuk ekziston",
- "Check %s is invalid" : "Kontrolli %s është i pavlefshëm",
- "Check #%s does not exist" : "Kontrolli #%s nuk ekziston",
- "Check %s is invalid or does not exist" : "Kontrolli %s është i pavlefshëm ose nuk ekziston",
- "Folder" : "Skedari",
- "Images" : "Imazhe ",
- "Files WebDAV" : "Skedarët WebDAV ",
- "Android client" : "Klient Android",
- "iOS client" : "Klient IOS",
- "Desktop client" : "Klient Desktop",
- "Thunderbird & Outlook addons" : "Shtojcat e Thunderbird & Outlook",
- "Cancel" : "Anullo",
- "Delete" : "Delete",
- "Save" : "Ruaj",
- "matches" : "përputhje",
- "does not match" : "nuk përputhet",
- "is" : "është",
- "is not" : "nuk është",
- "File name" : "Emri i skedarit",
- "File MIME type" : "Skedari i tipit MIME",
- "File size (upload)" : "Madhësia e skedarit (ngarko)",
- "less" : "më pak",
- "less or equals" : "më pak ose e barabartë",
- "greater or equals" : "më e madhe ose e barabartë",
- "greater" : "më e madhe",
- "Request remote address" : "Adresa e kërkesës remote",
- "matches IPv4" : "përputhet me IPv4",
- "does not match IPv4" : "nuk përputhet me IPv4",
- "matches IPv6" : "përputhet me IPv6",
- "does not match IPv6" : "nuk përputhet me IPv6",
- "File system tag" : "Etiketë e skedarit të sistemit",
- "is tagged with" : "është e etiketuar me",
- "is not tagged with" : "nuk është e etiketuar me",
- "Request URL" : "Kërko URL",
- "Request time" : "Koha e kërkesës",
- "between" : "midis",
- "not between" : "nuk është midis",
- "Request user agent" : "Kërko agjentin përdorues",
- "User group membership" : "Anëtarësia në grupet e përdoruesit",
- "is member of" : "është anëtarë i",
- "is not member of" : "nuk është anëtarë i",
- "Predefined URLs" : "URL të paracaktuara"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/sq.json b/apps/workflowengine/l10n/sq.json
deleted file mode 100644
index fe79ec152ce..00000000000
--- a/apps/workflowengine/l10n/sq.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{ "translations": {
- "The given operator is invalid" : "Operatori i dhënë nuk është i vlefshëm",
- "The given regular expression is invalid" : "Shprehja e rregullt e dhënë është e pavlefshme",
- "The given file size is invalid" : "Madhësia e dhënë e skedarit është e pavlefshme",
- "The given tag id is invalid" : "Id-ja e dhënë e etiketës është e pavlefshme",
- "The given IP range is invalid" : "Rangu i dhënë i IP është i pavlefshëm",
- "The given IP range is not valid for IPv4" : "Rangu i dhënë i IP nuk është i vlefshëm për IPv4",
- "The given IP range is not valid for IPv6" : "Rangu i dhënë i IP nuk është i vlefshëm për IPv6",
- "The given time span is invalid" : "Hapsira kohore e dhënë është e pavlefshme",
- "The given start time is invalid" : "Koha e fillimit është e pavlefshme",
- "The given end time is invalid" : "Koha e mbarimit është e pavlefshme",
- "The given group does not exist" : "Grupi i dhënë nuk ekziston",
- "File" : "Skedar ",
- "Operation #%s does not exist" : "Operacioni #%s nuk ekziston",
- "Operation %s does not exist" : "Operacioni %s nuk ekziston",
- "Operation %s is invalid" : "Operacioni %s është i pavlefshëm",
- "Check %s does not exist" : "Kontrolli %s nuk ekziston",
- "Check %s is invalid" : "Kontrolli %s është i pavlefshëm",
- "Check #%s does not exist" : "Kontrolli #%s nuk ekziston",
- "Check %s is invalid or does not exist" : "Kontrolli %s është i pavlefshëm ose nuk ekziston",
- "Folder" : "Skedari",
- "Images" : "Imazhe ",
- "Files WebDAV" : "Skedarët WebDAV ",
- "Android client" : "Klient Android",
- "iOS client" : "Klient IOS",
- "Desktop client" : "Klient Desktop",
- "Thunderbird & Outlook addons" : "Shtojcat e Thunderbird & Outlook",
- "Cancel" : "Anullo",
- "Delete" : "Delete",
- "Save" : "Ruaj",
- "matches" : "përputhje",
- "does not match" : "nuk përputhet",
- "is" : "është",
- "is not" : "nuk është",
- "File name" : "Emri i skedarit",
- "File MIME type" : "Skedari i tipit MIME",
- "File size (upload)" : "Madhësia e skedarit (ngarko)",
- "less" : "më pak",
- "less or equals" : "më pak ose e barabartë",
- "greater or equals" : "më e madhe ose e barabartë",
- "greater" : "më e madhe",
- "Request remote address" : "Adresa e kërkesës remote",
- "matches IPv4" : "përputhet me IPv4",
- "does not match IPv4" : "nuk përputhet me IPv4",
- "matches IPv6" : "përputhet me IPv6",
- "does not match IPv6" : "nuk përputhet me IPv6",
- "File system tag" : "Etiketë e skedarit të sistemit",
- "is tagged with" : "është e etiketuar me",
- "is not tagged with" : "nuk është e etiketuar me",
- "Request URL" : "Kërko URL",
- "Request time" : "Koha e kërkesës",
- "between" : "midis",
- "not between" : "nuk është midis",
- "Request user agent" : "Kërko agjentin përdorues",
- "User group membership" : "Anëtarësia në grupet e përdoruesit",
- "is member of" : "është anëtarë i",
- "is not member of" : "nuk është anëtarë i",
- "Predefined URLs" : "URL të paracaktuara"
-},"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 cee360ea5df..41f1f784099 100644
--- a/apps/workflowengine/l10n/tr.js
+++ b/apps/workflowengine/l10n/tr.js
@@ -63,7 +63,7 @@ OC.L10N.register(
"Select a request URL" : "Bir istek adresi seçin",
"Android client" : "Android istemcisi",
"iOS client" : "iOS istemcisi",
- "Desktop client" : "Masaüstü istemcisi",
+ "Desktop client" : "Bilgisayar istemcisi",
"Thunderbird & Outlook addons" : "Thunderbird ve Outlook eklentileri",
"Custom user agent" : "Özel kullanıcı uygulaması",
"Select a user agent" : "Bir kullanıcı uygulaması seçin",
diff --git a/apps/workflowengine/l10n/tr.json b/apps/workflowengine/l10n/tr.json
index 7eec04eb32b..eb5dccff499 100644
--- a/apps/workflowengine/l10n/tr.json
+++ b/apps/workflowengine/l10n/tr.json
@@ -61,7 +61,7 @@
"Select a request URL" : "Bir istek adresi seçin",
"Android client" : "Android istemcisi",
"iOS client" : "iOS istemcisi",
- "Desktop client" : "Masaüstü istemcisi",
+ "Desktop client" : "Bilgisayar istemcisi",
"Thunderbird & Outlook addons" : "Thunderbird ve Outlook eklentileri",
"Custom user agent" : "Özel kullanıcı uygulaması",
"Select a user agent" : "Bir kullanıcı uygulaması seçin",
diff --git a/apps/workflowengine/src/components/Checks/RequestUserGroup.vue b/apps/workflowengine/src/components/Checks/RequestUserGroup.vue
index 978732aed09..f9606b7ca26 100644
--- a/apps/workflowengine/src/components/Checks/RequestUserGroup.vue
+++ b/apps/workflowengine/src/components/Checks/RequestUserGroup.vue
@@ -25,6 +25,7 @@ import axios from '@nextcloud/axios'
import NcSelect from '@nextcloud/vue/components/NcSelect'
const groups = []
+const wantedGroups = []
const status = {
isLoading: false,
}
@@ -49,6 +50,7 @@ export default {
return {
groups,
status,
+ wantedGroups,
newValue: '',
}
},
@@ -82,6 +84,13 @@ export default {
searchAsync(searchQuery) {
if (this.status.isLoading) {
+ if (searchQuery) {
+ // The first 20 groups are loaded up front (indicated by an
+ // empty searchQuery parameter), afterwards we may load
+ // groups that have not been fetched yet, but are used
+ // in existing rules.
+ this.enqueueWantedGroup(searchQuery)
+ }
return
}
@@ -94,11 +103,15 @@ export default {
})
})
this.status.isLoading = false
+ this.findGroupByQueue()
}, (error) => {
console.error('Error while loading group list', error.response)
})
},
- updateInternalValue() {
+ async updateInternalValue() {
+ if (!this.newValue) {
+ await this.searchAsync(this.modelValue)
+ }
this.newValue = this.modelValue
},
addGroup(group) {
@@ -107,10 +120,32 @@ export default {
this.groups.push(group)
}
},
+ hasGroup(group) {
+ const index = this.groups.findIndex((item) => item.id === group)
+ return index > -1
+ },
update(value) {
this.newValue = value.id
this.$emit('update:model-value', this.newValue)
},
+ enqueueWantedGroup(expectedGroupId) {
+ const index = this.wantedGroups.findIndex((groupId) => groupId === expectedGroupId)
+ if (index === -1) {
+ this.wantedGroups.push(expectedGroupId)
+ }
+ },
+ async findGroupByQueue() {
+ let nextQuery
+ do {
+ nextQuery = this.wantedGroups.shift()
+ if (this.hasGroup(nextQuery)) {
+ nextQuery = undefined
+ }
+ } while (!nextQuery && this.wantedGroups.length > 0)
+ if (nextQuery) {
+ await this.searchAsync(nextQuery)
+ }
+ },
},
}
</script>
diff --git a/apps/workflowengine/tests/Check/AbstractStringCheckTest.php b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php
index 774f866bf12..d10fcfb4cc3 100644
--- a/apps/workflowengine/tests/Check/AbstractStringCheckTest.php
+++ b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php
@@ -1,4 +1,7 @@
<?php
+
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -7,9 +10,10 @@ namespace OCA\WorkflowEngine\Tests\Check;
use OCA\WorkflowEngine\Check\AbstractStringCheck;
use OCP\IL10N;
+use PHPUnit\Framework\MockObject\MockObject;
class AbstractStringCheckTest extends \Test\TestCase {
- protected function getCheckMock() {
+ protected function getCheckMock(): AbstractStringCheck|MockObject {
$l = $this->getMockBuilder(IL10N::class)
->disableOriginalConstructor()
->getMock();
@@ -19,7 +23,7 @@ class AbstractStringCheckTest extends \Test\TestCase {
return sprintf($string, $args);
});
- $check = $this->getMockBuilder('OCA\WorkflowEngine\Check\AbstractStringCheck')
+ $check = $this->getMockBuilder(AbstractStringCheck::class)
->setConstructorArgs([
$l,
])
@@ -32,7 +36,7 @@ class AbstractStringCheckTest extends \Test\TestCase {
return $check;
}
- public function dataExecuteStringCheck() {
+ public static function dataExecuteStringCheck(): array {
return [
['is', 'same', 'same', true],
['is', 'different', 'not the same', false],
@@ -48,19 +52,15 @@ class AbstractStringCheckTest extends \Test\TestCase {
/**
* @dataProvider dataExecuteStringCheck
- * @param string $operation
- * @param string $checkValue
- * @param string $actualValue
- * @param bool $expected
*/
- public function testExecuteStringCheck($operation, $checkValue, $actualValue, $expected): void {
+ public function testExecuteStringCheck(string $operation, string $checkValue, string $actualValue, bool $expected): void {
$check = $this->getCheckMock();
/** @var AbstractStringCheck $check */
$this->assertEquals($expected, $this->invokePrivate($check, 'executeStringCheck', [$operation, $checkValue, $actualValue]));
}
- public function dataValidateCheck() {
+ public static function dataValidateCheck(): array {
return [
['is', '/Invalid(Regex/'],
['!is', '/Invalid(Regex/'],
@@ -71,10 +71,8 @@ class AbstractStringCheckTest extends \Test\TestCase {
/**
* @dataProvider dataValidateCheck
- * @param string $operator
- * @param string $value
*/
- public function testValidateCheck($operator, $value): void {
+ public function testValidateCheck(string $operator, string $value): void {
$check = $this->getCheckMock();
/** @var AbstractStringCheck $check */
@@ -83,7 +81,7 @@ class AbstractStringCheckTest extends \Test\TestCase {
$this->addToAssertionCount(1);
}
- public function dataValidateCheckInvalid() {
+ public static function dataValidateCheckInvalid(): array {
return [
['!!is', '', 1, 'The given operator is invalid'],
['less', '', 1, 'The given operator is invalid'],
@@ -94,12 +92,8 @@ class AbstractStringCheckTest extends \Test\TestCase {
/**
* @dataProvider dataValidateCheckInvalid
- * @param $operator
- * @param $value
- * @param $exceptionCode
- * @param $exceptionMessage
*/
- public function testValidateCheckInvalid($operator, $value, $exceptionCode, $exceptionMessage): void {
+ public function testValidateCheckInvalid(string $operator, string $value, int $exceptionCode, string $exceptionMessage): void {
$check = $this->getCheckMock();
try {
@@ -111,7 +105,7 @@ class AbstractStringCheckTest extends \Test\TestCase {
}
}
- public function dataMatch() {
+ public static function dataMatch(): array {
return [
['/valid/', 'valid', [], true],
['/valid/', 'valid', [md5('/valid/') => [md5('valid') => false]], false], // Cache hit
@@ -120,12 +114,8 @@ class AbstractStringCheckTest extends \Test\TestCase {
/**
* @dataProvider dataMatch
- * @param string $pattern
- * @param string $subject
- * @param array[] $matches
- * @param bool $expected
*/
- public function testMatch($pattern, $subject, $matches, $expected): void {
+ public function testMatch(string $pattern, string $subject, array $matches, bool $expected): void {
$check = $this->getCheckMock();
$this->invokePrivate($check, 'matches', [$matches]);
diff --git a/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php b/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php
index 47b9138819e..f2f8026e666 100644
--- a/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php
+++ b/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php
@@ -1,4 +1,7 @@
<?php
+
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -8,19 +11,14 @@ namespace OCA\WorkflowEngine\Tests\Check;
use OCA\WorkflowEngine\Check\RequestRemoteAddress;
use OCP\IL10N;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
class RequestRemoteAddressTest extends \Test\TestCase {
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- protected $request;
+ protected IRequest&MockObject $request;
- /**
- * @return IL10N|\PHPUnit\Framework\MockObject\MockObject
- */
- protected function getL10NMock() {
- $l = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getL10NMock(): IL10N&MockObject {
+ $l = $this->createMock(IL10N::class);
$l->expects($this->any())
->method('t')
->willReturnCallback(function ($string, $args) {
@@ -32,11 +30,10 @@ class RequestRemoteAddressTest extends \Test\TestCase {
protected function setUp(): void {
parent::setUp();
- $this->request = $this->getMockBuilder(IRequest::class)
- ->getMock();
+ $this->request = $this->createMock(IRequest::class);
}
- public function dataExecuteCheckIPv4() {
+ public static function dataExecuteCheckIPv4(): array {
return [
['127.0.0.1/32', '127.0.0.1', true],
['127.0.0.1/32', '127.0.0.0', false],
@@ -49,11 +46,8 @@ class RequestRemoteAddressTest extends \Test\TestCase {
/**
* @dataProvider dataExecuteCheckIPv4
- * @param string $value
- * @param string $ip
- * @param bool $expected
*/
- public function testExecuteCheckMatchesIPv4($value, $ip, $expected): void {
+ public function testExecuteCheckMatchesIPv4(string $value, string $ip, bool $expected): void {
$check = new RequestRemoteAddress($this->getL10NMock(), $this->request);
$this->request->expects($this->once())
@@ -65,11 +59,8 @@ class RequestRemoteAddressTest extends \Test\TestCase {
/**
* @dataProvider dataExecuteCheckIPv4
- * @param string $value
- * @param string $ip
- * @param bool $expected
*/
- public function testExecuteCheckNotMatchesIPv4($value, $ip, $expected): void {
+ public function testExecuteCheckNotMatchesIPv4(string $value, string $ip, bool $expected): void {
$check = new RequestRemoteAddress($this->getL10NMock(), $this->request);
$this->request->expects($this->once())
@@ -79,7 +70,7 @@ class RequestRemoteAddressTest extends \Test\TestCase {
$this->assertEquals(!$expected, $check->executeCheck('!matchesIPv4', $value));
}
- public function dataExecuteCheckIPv6() {
+ public static function dataExecuteCheckIPv6(): array {
return [
['::1/128', '::1', true],
['::2/128', '::3', false],
@@ -93,11 +84,8 @@ class RequestRemoteAddressTest extends \Test\TestCase {
/**
* @dataProvider dataExecuteCheckIPv6
- * @param string $value
- * @param string $ip
- * @param bool $expected
*/
- public function testExecuteCheckMatchesIPv6($value, $ip, $expected): void {
+ public function testExecuteCheckMatchesIPv6(string $value, string $ip, bool $expected): void {
$check = new RequestRemoteAddress($this->getL10NMock(), $this->request);
$this->request->expects($this->once())
@@ -109,11 +97,8 @@ class RequestRemoteAddressTest extends \Test\TestCase {
/**
* @dataProvider dataExecuteCheckIPv6
- * @param string $value
- * @param string $ip
- * @param bool $expected
*/
- public function testExecuteCheckNotMatchesIPv6($value, $ip, $expected): void {
+ public function testExecuteCheckNotMatchesIPv6(string $value, string $ip, bool $expected): void {
$check = new RequestRemoteAddress($this->getL10NMock(), $this->request);
$this->request->expects($this->once())
diff --git a/apps/workflowengine/tests/Check/RequestTimeTest.php b/apps/workflowengine/tests/Check/RequestTimeTest.php
index 6b56bb9427a..21127d4d56e 100644
--- a/apps/workflowengine/tests/Check/RequestTimeTest.php
+++ b/apps/workflowengine/tests/Check/RequestTimeTest.php
@@ -1,4 +1,7 @@
<?php
+
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -8,19 +11,13 @@ namespace OCA\WorkflowEngine\Tests\Check;
use OCA\WorkflowEngine\Check\RequestTime;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IL10N;
+use PHPUnit\Framework\MockObject\MockObject;
class RequestTimeTest extends \Test\TestCase {
+ protected ITimeFactory&MockObject $timeFactory;
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- protected $timeFactory;
-
- /**
- * @return IL10N|\PHPUnit\Framework\MockObject\MockObject
- */
- protected function getL10NMock() {
- $l = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()
- ->getMock();
+ protected function getL10NMock(): IL10N&MockObject {
+ $l = $this->createMock(IL10N::class);
$l->expects($this->any())
->method('t')
->willReturnCallback(function ($string, $args) {
@@ -32,11 +29,10 @@ class RequestTimeTest extends \Test\TestCase {
protected function setUp(): void {
parent::setUp();
- $this->timeFactory = $this->getMockBuilder('OCP\AppFramework\Utility\ITimeFactory')
- ->getMock();
+ $this->timeFactory = $this->createMock(ITimeFactory::class);
}
- public function dataExecuteCheck() {
+ public static function dataExecuteCheck(): array {
return [
[json_encode(['08:00 Europe/Berlin', '17:00 Europe/Berlin']), 1467870105, false], // 2016-07-07T07:41:45+02:00
[json_encode(['08:00 Europe/Berlin', '17:00 Europe/Berlin']), 1467873705, true], // 2016-07-07T08:41:45+02:00
@@ -69,11 +65,8 @@ class RequestTimeTest extends \Test\TestCase {
/**
* @dataProvider dataExecuteCheck
- * @param string $value
- * @param int $timestamp
- * @param bool $expected
*/
- public function testExecuteCheckIn($value, $timestamp, $expected): void {
+ public function testExecuteCheckIn(string $value, int $timestamp, bool $expected): void {
$check = new RequestTime($this->getL10NMock(), $this->timeFactory);
$this->timeFactory->expects($this->once())
@@ -85,11 +78,8 @@ class RequestTimeTest extends \Test\TestCase {
/**
* @dataProvider dataExecuteCheck
- * @param string $value
- * @param int $timestamp
- * @param bool $expected
*/
- public function testExecuteCheckNotIn($value, $timestamp, $expected): void {
+ public function testExecuteCheckNotIn(string $value, int $timestamp, bool $expected): void {
$check = new RequestTime($this->getL10NMock(), $this->timeFactory);
$this->timeFactory->expects($this->once())
@@ -99,7 +89,7 @@ class RequestTimeTest extends \Test\TestCase {
$this->assertEquals(!$expected, $check->executeCheck('!in', $value));
}
- public function dataValidateCheck() {
+ public static function dataValidateCheck(): array {
return [
['in', '["08:00 Europe/Berlin","17:00 Europe/Berlin"]'],
['!in', '["08:00 Europe/Berlin","17:00 America/North_Dakota/Beulah"]'],
@@ -109,16 +99,14 @@ class RequestTimeTest extends \Test\TestCase {
/**
* @dataProvider dataValidateCheck
- * @param string $operator
- * @param string $value
*/
- public function testValidateCheck($operator, $value): void {
+ public function testValidateCheck(string $operator, string $value): void {
$check = new RequestTime($this->getL10NMock(), $this->timeFactory);
$check->validateCheck($operator, $value);
$this->addToAssertionCount(1);
}
- public function dataValidateCheckInvalid() {
+ public static function dataValidateCheckInvalid(): array {
return [
['!!in', '["08:00 Europe/Berlin","17:00 Europe/Berlin"]', 1, 'The given operator is invalid'],
['in', '["28:00 Europe/Berlin","17:00 Europe/Berlin"]', 2, 'The given time span is invalid'],
@@ -132,12 +120,8 @@ class RequestTimeTest extends \Test\TestCase {
/**
* @dataProvider dataValidateCheckInvalid
- * @param string $operator
- * @param string $value
- * @param int $exceptionCode
- * @param string $exceptionMessage
*/
- public function testValidateCheckInvalid($operator, $value, $exceptionCode, $exceptionMessage): void {
+ public function testValidateCheckInvalid(string $operator, string $value, int $exceptionCode, string $exceptionMessage): void {
$check = new RequestTime($this->getL10NMock(), $this->timeFactory);
try {
diff --git a/apps/workflowengine/tests/Check/RequestUserAgentTest.php b/apps/workflowengine/tests/Check/RequestUserAgentTest.php
index 30e389c8236..2fe96bf3bdb 100644
--- a/apps/workflowengine/tests/Check/RequestUserAgentTest.php
+++ b/apps/workflowengine/tests/Check/RequestUserAgentTest.php
@@ -1,4 +1,7 @@
<?php
+
+declare(strict_types=1);
+
/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
@@ -9,24 +12,19 @@ use OCA\WorkflowEngine\Check\AbstractStringCheck;
use OCA\WorkflowEngine\Check\RequestUserAgent;
use OCP\IL10N;
use OCP\IRequest;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class RequestUserAgentTest extends TestCase {
-
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- protected $request;
-
- /** @var RequestUserAgent */
- protected $check;
+ protected IRequest&MockObject $request;
+ protected RequestUserAgent $check;
protected function setUp(): void {
parent::setUp();
$this->request = $this->createMock(IRequest::class);
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject $l */
- $l = $this->getMockBuilder(IL10N::class)
- ->disableOriginalConstructor()
- ->getMock();
+ /** @var IL10N&MockObject $l */
+ $l = $this->createMock(IL10N::class);
$l->expects($this->any())
->method('t')
->willReturnCallback(function ($string, $args) {
@@ -36,7 +34,7 @@ class RequestUserAgentTest extends TestCase {
$this->check = new RequestUserAgent($l, $this->request);
}
- public function dataExecuteCheck() {
+ public static function dataExecuteCheck(): array {
return [
['is', 'android', 'Mozilla/5.0 (Android) Nextcloud-android/2.2.0', true],
['is', 'android', 'Mozilla/5.0 (iOS) Nextcloud-iOS/2.2.0', false],
@@ -86,12 +84,8 @@ class RequestUserAgentTest extends TestCase {
/**
* @dataProvider dataExecuteCheck
- * @param string $operation
- * @param string $checkValue
- * @param string $actualValue
- * @param bool $expected
*/
- public function testExecuteCheck($operation, $checkValue, $actualValue, $expected): void {
+ public function testExecuteCheck(string $operation, string $checkValue, string $actualValue, bool $expected): void {
$this->request->expects($this->once())
->method('getHeader')
->willReturn($actualValue);